on master help sign in
Simplify code and improve type safety: introduce AuthResult/PruneResult types, replace helper functions with cleaner patterns
commit06f6fccd5eca861f9f6aea926abad74a25306378 authoriko <mail@iko.soy> dateThu 9 Apr 2026, 23:25 (6 months ago) parent82cb0cd
407 files changed+100−148
client/ApiClient.fs+7−6 client/App.fs+13−18 client/Crypto.fs+4−2 client/Store.fs+10−19 client/bin/Debug/net10.0-ios/iossimulator-arm64/Skrepka.app/Skrepka.dll client/bin/Debug/net10.0-ios/iossimulator-arm64/Skrepka.app/Skrepka.pdb client/bin/Debug/net10.0-ios/iossimulator-arm64/Skrepka.app/_CodeSignature/CodeResources+4−4 client/bin/Debug/net10.0-ios/iossimulator-arm64/Skrepka.dll client/bin/Debug/net10.0-ios/iossimulator-arm64/Skrepka.pdb client/bin/Debug/net10.0-maccatalyst/maccatalyst-arm64/Skrepka.app/Contents/MonoBundle/Skrepka.dll client/bin/Debug/net10.0-maccatalyst/maccatalyst-arm64/Skrepka.app/Contents/MonoBundle/Skrepka.pdb client/bin/Debug/net10.0-maccatalyst/maccatalyst-arm64/Skrepka.app/Contents/_CodeSignature/CodeResources+2−2 client/bin/Debug/net10.0-maccatalyst/maccatalyst-arm64/Skrepka.dll client/bin/Debug/net10.0-maccatalyst/maccatalyst-arm64/Skrepka.pdb client/obj/Debug/net10.0-ios/iossimulator-arm64/Skrepka.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/Skrepka.fsproj.FileListAbsolute.txt−22 client/obj/Debug/net10.0-ios/iossimulator-arm64/Skrepka.pdb client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Fabulous.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.CSharp.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Extensions.Configuration.Abstractions.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Extensions.Configuration.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Extensions.DependencyInjection.Abstractions.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Extensions.DependencyInjection.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Extensions.Diagnostics.Abstractions.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Extensions.FileProviders.Abstractions.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Extensions.Hosting.Abstractions.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Extensions.Logging.Abstractions.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Extensions.Logging.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Extensions.Options.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Extensions.Primitives.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Maui.Controls.Compatibility.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Maui.Controls.Xaml.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Maui.Essentials.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Maui.Graphics.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Maui.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.VisualBasic.Core.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.VisualBasic.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Win32.Primitives.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Win32.Registry.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Skrepka.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Skrepka.pdb client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Sodium.Core.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.AppContext.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Buffers.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Collections.Concurrent.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Collections.Immutable.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Collections.NonGeneric.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Collections.Specialized.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Collections.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.ComponentModel.Annotations.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.ComponentModel.DataAnnotations.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.ComponentModel.EventBasedAsync.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.ComponentModel.Primitives.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.ComponentModel.TypeConverter.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.ComponentModel.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Configuration.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Console.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Core.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Data.Common.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Data.DataSetExtensions.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Data.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Diagnostics.Contracts.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Diagnostics.Debug.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Diagnostics.DiagnosticSource.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Diagnostics.FileVersionInfo.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Diagnostics.Process.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Diagnostics.StackTrace.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Diagnostics.TextWriterTraceListener.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Diagnostics.Tools.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Diagnostics.TraceSource.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Diagnostics.Tracing.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Drawing.Primitives.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Drawing.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Dynamic.Runtime.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Formats.Asn1.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Formats.Tar.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Globalization.Calendars.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Globalization.Extensions.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Globalization.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.Compression.Brotli.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.Compression.FileSystem.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.Compression.ZipFile.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.Compression.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.FileSystem.AccessControl.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.FileSystem.DriveInfo.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.FileSystem.Primitives.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.FileSystem.Watcher.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.FileSystem.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.IsolatedStorage.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.MemoryMappedFiles.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.Pipelines.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.Pipes.AccessControl.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.Pipes.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.UnmanagedMemoryStream.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Linq.AsyncEnumerable.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Linq.Expressions.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Linq.Parallel.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Linq.Queryable.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Linq.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Memory.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.Http.Json.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.Http.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.HttpListener.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.Mail.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.NameResolution.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.NetworkInformation.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.Ping.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.Primitives.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.Quic.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.Requests.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.Security.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.ServerSentEvents.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.ServicePoint.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.Sockets.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.WebClient.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.WebHeaderCollection.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.WebProxy.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.WebSockets.Client.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.WebSockets.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Numerics.Vectors.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Numerics.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.ObjectModel.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Private.DataContractSerialization.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Private.Uri.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Private.Xml.Linq.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Reflection.DispatchProxy.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Reflection.Emit.ILGeneration.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Reflection.Emit.Lightweight.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Reflection.Emit.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Reflection.Extensions.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Reflection.Metadata.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Reflection.Primitives.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Reflection.TypeExtensions.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Reflection.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Resources.Reader.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Resources.ResourceManager.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Resources.Writer.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.CompilerServices.Unsafe.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.CompilerServices.VisualC.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.Extensions.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.Handles.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.InteropServices.JavaScript.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.InteropServices.RuntimeInformation.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.InteropServices.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.Intrinsics.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.Loader.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.Numerics.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.Serialization.Formatters.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.Serialization.Json.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.Serialization.Primitives.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.Serialization.Xml.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.Serialization.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.AccessControl.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.Claims.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.Cryptography.Algorithms.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.Cryptography.Cng.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.Cryptography.Csp.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.Cryptography.Encoding.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.Cryptography.OpenSsl.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.Cryptography.Primitives.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.Cryptography.X509Certificates.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.Cryptography.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.Principal.Windows.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.Principal.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.SecureString.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.ServiceModel.Web.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.ServiceProcess.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Text.Encoding.CodePages.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Text.Encoding.Extensions.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Text.Encoding.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Text.Encodings.Web.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Text.Json.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Text.RegularExpressions.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Threading.AccessControl.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Threading.Channels.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Threading.Overlapped.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Threading.Tasks.Dataflow.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Threading.Tasks.Extensions.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Threading.Tasks.Parallel.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Threading.Tasks.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Threading.Thread.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Threading.ThreadPool.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Threading.Timer.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Threading.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Transactions.Local.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Transactions.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.ValueTuple.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Web.HttpUtility.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Web.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Windows.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Xml.Linq.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Xml.ReaderWriter.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Xml.Serialization.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Xml.XDocument.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Xml.XPath.XDocument.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Xml.XPath.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Xml.XmlDocument.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Xml.XmlSerializer.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Xml.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/WindowsBase.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/mscorlib.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/netstandard.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/ref/Skrepka.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/refint/Skrepka.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/Skrepka.AssemblyInfo.fs+1−1 client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/Skrepka.AssemblyInfoInputs.cache+1−1 client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/Skrepka.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/Skrepka.pdb client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/Skrepka.sourcelink.json+1−1 client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Fabulous.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.CSharp.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Extensions.Configuration.Abstractions.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Extensions.Configuration.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Extensions.DependencyInjection.Abstractions.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Extensions.DependencyInjection.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Extensions.Diagnostics.Abstractions.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Extensions.FileProviders.Abstractions.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Extensions.Hosting.Abstractions.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Extensions.Logging.Abstractions.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Extensions.Logging.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Extensions.Options.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Extensions.Primitives.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Maui.Controls.Compatibility.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Maui.Controls.Xaml.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Maui.Essentials.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Maui.Graphics.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Maui.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.VisualBasic.Core.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.VisualBasic.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Win32.Primitives.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Win32.Registry.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Skrepka.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Skrepka.pdb client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Sodium.Core.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.AppContext.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Buffers.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Collections.Concurrent.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Collections.Immutable.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Collections.NonGeneric.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Collections.Specialized.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Collections.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.ComponentModel.Annotations.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.ComponentModel.DataAnnotations.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.ComponentModel.EventBasedAsync.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.ComponentModel.Primitives.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.ComponentModel.TypeConverter.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.ComponentModel.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Configuration.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Console.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Core.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Data.Common.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Data.DataSetExtensions.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Data.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Diagnostics.Contracts.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Diagnostics.Debug.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Diagnostics.DiagnosticSource.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Diagnostics.FileVersionInfo.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Diagnostics.Process.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Diagnostics.StackTrace.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Diagnostics.TextWriterTraceListener.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Diagnostics.Tools.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Diagnostics.TraceSource.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Diagnostics.Tracing.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Drawing.Primitives.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Drawing.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Dynamic.Runtime.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Formats.Asn1.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Formats.Tar.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Globalization.Calendars.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Globalization.Extensions.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Globalization.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.Compression.Brotli.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.Compression.FileSystem.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.Compression.ZipFile.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.Compression.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.FileSystem.AccessControl.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.FileSystem.DriveInfo.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.FileSystem.Primitives.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.FileSystem.Watcher.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.FileSystem.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.IsolatedStorage.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.MemoryMappedFiles.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.Pipelines.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.Pipes.AccessControl.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.Pipes.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.UnmanagedMemoryStream.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Linq.AsyncEnumerable.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Linq.Expressions.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Linq.Parallel.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Linq.Queryable.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Linq.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Memory.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.Http.Json.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.Http.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.HttpListener.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.Mail.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.NameResolution.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.NetworkInformation.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.Ping.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.Primitives.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.Quic.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.Requests.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.Security.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.ServerSentEvents.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.ServicePoint.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.Sockets.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.WebClient.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.WebHeaderCollection.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.WebProxy.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.WebSockets.Client.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.WebSockets.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Numerics.Vectors.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Numerics.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.ObjectModel.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Private.DataContractSerialization.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Private.Uri.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Private.Xml.Linq.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Reflection.DispatchProxy.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Reflection.Emit.ILGeneration.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Reflection.Emit.Lightweight.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Reflection.Emit.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Reflection.Extensions.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Reflection.Metadata.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Reflection.Primitives.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Reflection.TypeExtensions.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Reflection.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Resources.Reader.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Resources.ResourceManager.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Resources.Writer.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.CompilerServices.Unsafe.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.CompilerServices.VisualC.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.Extensions.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.Handles.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.InteropServices.JavaScript.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.InteropServices.RuntimeInformation.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.InteropServices.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.Intrinsics.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.Loader.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.Numerics.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.Serialization.Formatters.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.Serialization.Json.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.Serialization.Primitives.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.Serialization.Xml.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.Serialization.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.AccessControl.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.Claims.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.Cryptography.Algorithms.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.Cryptography.Cng.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.Cryptography.Csp.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.Cryptography.Encoding.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.Cryptography.OpenSsl.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.Cryptography.Primitives.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.Cryptography.X509Certificates.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.Cryptography.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.Principal.Windows.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.Principal.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.SecureString.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.ServiceModel.Web.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.ServiceProcess.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Text.Encoding.CodePages.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Text.Encoding.Extensions.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Text.Encoding.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Text.Encodings.Web.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Text.Json.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Text.RegularExpressions.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Threading.AccessControl.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Threading.Channels.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Threading.Overlapped.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Threading.Tasks.Dataflow.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Threading.Tasks.Extensions.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Threading.Tasks.Parallel.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Threading.Tasks.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Threading.Thread.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Threading.ThreadPool.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Threading.Timer.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Threading.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Transactions.Local.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Transactions.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.ValueTuple.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Web.HttpUtility.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Web.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Windows.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Xml.Linq.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Xml.ReaderWriter.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Xml.Serialization.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Xml.XDocument.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Xml.XPath.XDocument.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Xml.XPath.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Xml.XmlDocument.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Xml.XmlSerializer.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Xml.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/WindowsBase.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/mscorlib.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/netstandard.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/ref/Skrepka.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/refint/Skrepka.dll server.knot+57−72
client/ApiClient.fs+7−6
@@ -8,6 +8,8 @@ open System.Threading.Tasks
88
99module ApiClient =
1010
11+ type PollEvent = { Id: string; EventType: string; Payload: JsonElement }
12+
1113 /// Awaits a Task without converting TaskCanceledException to F# async
1214 /// cancellation (which bypasses try...with). Re-raises it as a regular exception.
1315 let private awaitTask (t: Task<'T>) : Async<'T> =
@@ -109,10 +111,10 @@ module ApiClient =
109111 let events =
110112 [ for e in events.EnumerateArray() do
111113 if e.ValueKind = JsonValueKind.Object then
112− let id = e.GetProperty("id").GetString()
113− let evtType = e.GetProperty("eventType").GetString()
114− let payload = e.GetProperty("payload")
115− yield (id, evtType, payload) ]
114+ yield
115+ { Id = e.GetProperty("id").GetString()
116+ EventType = e.GetProperty("eventType").GetString()
117+ Payload = e.GetProperty("payload") } ]
116118
117119 return (events, cursor)
118120 }
@@ -123,6 +125,5 @@ module ApiClient =
123125 messageIds |> List.map (fun id -> $"\"{id}\"") |> String.concat ", "
124126
125127 let body = $"""{{ "messageIds": [{idsJson}] }}"""
126− let! _ = postJson $"{serverUrl}/messages/ack" body (Some token)
127− return ()
128+ do! postJson $"{serverUrl}/messages/ack" body (Some token) |> Async.Ignore
128129 }
client/App.fs+13−18
@@ -34,7 +34,7 @@ module App =
3434 | AddContact
3535 | Settings
3636
37− type Identity = { PrivKey: byte[]; PubKeyHex: string }
37+ type Identity = Crypto.Identity
3838
3939 type Session = { Url: string; Token: string; Identity: Identity }
4040
@@ -82,7 +82,7 @@ module App =
8282 | DoPoll
8383 | CopyPubKey
8484 | DismissError
85− | StateLoaded of identity: (byte[] * string) option * data: Store.DataDto option
85+ | StateLoaded of Identity option * Store.DataDto option
8686
8787 // ── CmdMsg ──
8888
@@ -93,7 +93,7 @@ module App =
9393 | CmdPoll of session: Session * cursor: uint64
9494 | CmdCopyToClipboard of string
9595 | CmdLoadState
96− | CmdSaveIdentity of privKey: byte[] * pubKeyHex: string
96+ | CmdSaveIdentity of Identity
9797 | CmdSaveData of contacts: Contact list * messages: Map<string, ChatMessage list> * serverUrl: string * cursor: uint64
9898
9999 // ── Helpers ──
@@ -159,7 +159,7 @@ module App =
159159
160160 | IdentityReady identity ->
161161 { model with Identity = Some identity; Page = Settings },
162− [ CmdSaveIdentity(identity.PrivKey, identity.PubKeyHex) ]
162+ [ CmdSaveIdentity identity ]
163163
164164 | SetServerUrl url -> { model with ServerUrl = url }, []
165165
@@ -276,9 +276,7 @@ module App =
276276 | StateLoaded(identityOpt, dataOpt) ->
277277 match identityOpt with
278278 | None -> model, []
279− | Some(privKey, pubKeyHex) ->
280− let identity = { PrivKey = privKey; PubKeyHex = pubKeyHex }
281−
279+ | Some identity ->
282280 let model' =
283281 match dataOpt with
284282 | Some data ->
@@ -361,10 +359,7 @@ module App =
361359 let mapCmd cmdMsg =
362360 match cmdMsg with
363361 | CmdGenIdentity ->
364− asyncCmd (async {
365− let priv, pub = Crypto.generateIdentity ()
366− return IdentityReady { PrivKey = priv; PubKeyHex = Crypto.toHex pub }
367− })
362+ asyncCmd (async { return IdentityReady(Crypto.generateIdentity ()) })
368363
369364 | CmdConnect(url, identity) ->
370365 asyncCmd (async {
@@ -384,7 +379,7 @@ module App =
384379 | CmdSend(session, recipientHex, text, messageId) ->
385380 asyncCmd (async {
386381 try
387− let pubKey = session.Identity.PrivKey.[32..63]
382+ let pubKey = Crypto.fromHex session.Identity.PubKeyHex
388383 let recipPub = Crypto.fromHex recipientHex
389384 let ts = DateTimeOffset.UtcNow.ToUnixTimeSeconds()
390385
@@ -405,11 +400,11 @@ module App =
405400 let! (events, newCursor) = ApiClient.poll session.Url session.Token cursor
406401 let messages, ackIds, errors =
407402 events
408− |> List.fold (fun (msgs, acks, errs) (evtId, evtType, payload) ->
409− if evtType <> "message" then (msgs, acks, errs)
403+ |> List.fold (fun (msgs, acks, errs) evt ->
404+ if evt.EventType <> "message" then (msgs, acks, errs)
410405 else
411− match decryptEvent session.Identity.PrivKey payload with
412− | Ok msg -> (msg :: msgs, evtId :: acks, errs)
406+ match decryptEvent session.Identity.PrivKey evt.Payload with
407+ | Ok msg -> (msg :: msgs, evt.Id :: acks, errs)
413408 | Error err -> (msgs, acks, err :: errs))
414409 ([], [], [])
415410
@@ -444,8 +439,8 @@ module App =
444439 return StateLoaded(identity, data)
445440 })
446441
447− | CmdSaveIdentity(privKey, pubKeyHex) ->
448− Cmd.ofEffect (fun _ -> Store.saveIdentity privKey pubKeyHex |> ignore)
442+ | CmdSaveIdentity identity ->
443+ Cmd.ofEffect (fun _ -> Store.saveIdentity identity |> ignore)
449444
450445 | CmdSaveData(contacts, messages, serverUrl, cursor) ->
451446 Cmd.ofEffect (fun _ ->
client/Crypto.fs+4−2
@@ -7,15 +7,17 @@ open Sodium
77
88module Crypto =
99
10+ type Identity = { PrivKey: byte[]; PubKeyHex: string }
11+
1012 let toHex (bytes: byte[]) : string =
1113 Convert.ToHexString(bytes).ToLowerInvariant()
1214
1315 let fromHex (hex: string) : byte[] =
1416 Convert.FromHexString(hex)
1517
16− let generateIdentity () : byte[] * byte[] =
18+ let generateIdentity () : Identity =
1719 let kp = PublicKeyAuth.GenerateKeyPair()
18− (kp.PrivateKey, kp.PublicKey)
20+ { PrivKey = kp.PrivateKey; PubKeyHex = toHex kp.PublicKey }
1921
2022 let signChallenge (privKey: byte[]) (challenge: string) : string =
2123 let message = Encoding.UTF8.GetBytes(challenge)
client/Store.fs+10−19
@@ -46,13 +46,16 @@ module Store =
4646 if isNull privKeyB64 || isNull pubKeyHex then
4747 return None
4848 else
49− return Some(Convert.FromBase64String privKeyB64, pubKeyHex)
49+ return
50+ Some
51+ { Crypto.Identity.PrivKey = Convert.FromBase64String privKeyB64
52+ PubKeyHex = pubKeyHex }
5053 }
5154
52− let saveIdentity (privKey: byte[]) (pubKeyHex: string) =
55+ let saveIdentity (identity: Crypto.Identity) =
5356 task {
54− do! SecureStorage.Default.SetAsync("identity_privkey", Convert.ToBase64String privKey)
55− do! SecureStorage.Default.SetAsync("identity_pubkey", pubKeyHex)
57+ do! SecureStorage.Default.SetAsync("identity_privkey", Convert.ToBase64String identity.PrivKey)
58+ do! SecureStorage.Default.SetAsync("identity_pubkey", identity.PubKeyHex)
5659 }
5760
5861 let loadData () =
@@ -64,21 +67,9 @@ module Store =
6467 let dto = JsonSerializer.Deserialize<DataDto>(json, jsonOpts)
6568
6669 Some
67− { Contacts =
68− if Object.ReferenceEquals(dto.Contacts, null) then
69− [||]
70− else
71− dto.Contacts
72− Messages =
73− if Object.ReferenceEquals(dto.Messages, null) then
74− Dictionary()
75− else
76− dto.Messages
77− ServerUrl =
78− if Object.ReferenceEquals(dto.ServerUrl, null) then
79− ""
80− else
81− dto.ServerUrl
70+ { Contacts = if isNull dto.Contacts then [||] else dto.Contacts
71+ Messages = if isNull dto.Messages then Dictionary() else dto.Messages
72+ ServerUrl = if isNull dto.ServerUrl then "" else dto.ServerUrl
8273 PollCursor = dto.PollCursor }
8374 with _ ->
8475 None
client/bin/Debug/net10.0-ios/iossimulator-arm64/Skrepka.app/Skrepka.dll

Binary file not shown.

client/bin/Debug/net10.0-ios/iossimulator-arm64/Skrepka.app/Skrepka.pdb

Binary file not shown.

client/bin/Debug/net10.0-ios/iossimulator-arm64/Skrepka.app/_CodeSignature/CodeResources+4−4
@@ -162,11 +162,11 @@
162162 </data>
163163 <key>Skrepka.dll</key>
164164 <data>
165− w0DNyNBaWuiqu3JZ6IK1CiXdyds=
165+ rK3Q2GMAAOH7mw6whUQMTQM2Dl0=
166166 </data>
167167 <key>Skrepka.pdb</key>
168168 <data>
169− hNL2aGSgObSukvwWpEaqXFxLTBo=
169+ qSfttE+LsqZyzZqy4ce53JCfLw0=
170170 </data>
171171 <key>Sodium.Core.dll</key>
172172 <data>
@@ -1382,14 +1382,14 @@
13821382 <dict>
13831383 <key>hash2</key>
13841384 <data>
1385− yNVPEWWcGVOLcPWRCJjH6KBfR5tg8HAAMmICMYmZsjw=
1385+ bmz/8C04/LrxBHwBSYggqDMl+SC4akk35Fz+PlhLyBQ=
13861386 </data>
13871387 </dict>
13881388 <key>Skrepka.pdb</key>
13891389 <dict>
13901390 <key>hash2</key>
13911391 <data>
1392− MgZLilBsY5Eg6Pq6+oq50VZhoEZaSvPWBs2XmbQDLbU=
1392+ 8Lkk+eXjqar1/r6qqdn1V+eKUjcsUgk3DaMRqXBaJv4=
13931393 </data>
13941394 </dict>
13951395 <key>Sodium.Core.dll</key>
client/bin/Debug/net10.0-ios/iossimulator-arm64/Skrepka.dll

Binary file not shown.

client/bin/Debug/net10.0-ios/iossimulator-arm64/Skrepka.pdb

Binary file not shown.

client/bin/Debug/net10.0-maccatalyst/maccatalyst-arm64/Skrepka.app/Contents/MonoBundle/Skrepka.dll

Binary file not shown.

client/bin/Debug/net10.0-maccatalyst/maccatalyst-arm64/Skrepka.app/Contents/MonoBundle/Skrepka.pdb

Binary file not shown.

client/bin/Debug/net10.0-maccatalyst/maccatalyst-arm64/Skrepka.app/Contents/_CodeSignature/CodeResources+2−2
@@ -240,14 +240,14 @@
240240 <dict>
241241 <key>hash2</key>
242242 <data>
243− /uLW7Tc9NVMGFfD1b32rCguDE4br7LeNsm+PES0pAks=
243+ LkDCh+ubGunFcjz8qWzXW1tjdiCj2lBbmxoT8W7C5NM=
244244 </data>
245245 </dict>
246246 <key>MonoBundle/Skrepka.pdb</key>
247247 <dict>
248248 <key>hash2</key>
249249 <data>
250− qfBPe8FloTdTl+WOYlEwzh8tv0jPIazccIUsJqaDSNE=
250+ e7kwgHJk6BV6whbuyHSB3JGotK3DZoiv9GVZ8KeDhuY=
251251 </data>
252252 </dict>
253253 <key>MonoBundle/Sodium.Core.dll</key>
client/bin/Debug/net10.0-maccatalyst/maccatalyst-arm64/Skrepka.dll

Binary file not shown.

client/bin/Debug/net10.0-maccatalyst/maccatalyst-arm64/Skrepka.pdb

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/Skrepka.dll

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/Skrepka.fsproj.FileListAbsolute.txt−22
@@ -333,25 +333,3 @@
333333/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/Skrepka.pdb
334334/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/Skrepka.genruntimeconfig.cache
335335/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/ref/Skrepka.dll
336−/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/resourcestamps/Fabulous.stamp
337−/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/resourcestamps/Fabulous.MauiControls.stamp
338−/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/resourcestamps/FSharp.Core.stamp
339−/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/resourcestamps/Microsoft.Extensions.Configuration.Abstractions.stamp
340−/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/resourcestamps/Microsoft.Extensions.Configuration.stamp
341−/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/resourcestamps/Microsoft.Extensions.DependencyInjection.Abstractions.stamp
342−/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/resourcestamps/Microsoft.Extensions.DependencyInjection.stamp
343−/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/resourcestamps/Microsoft.Extensions.Diagnostics.Abstractions.stamp
344−/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/resourcestamps/Microsoft.Extensions.FileProviders.Abstractions.stamp
345−/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/resourcestamps/Microsoft.Extensions.Hosting.Abstractions.stamp
346−/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/resourcestamps/Microsoft.Extensions.Logging.Abstractions.stamp
347−/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/resourcestamps/Microsoft.Extensions.Logging.stamp
348−/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/resourcestamps/Microsoft.Extensions.Options.stamp
349−/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/resourcestamps/Microsoft.Extensions.Primitives.stamp
350−/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/resourcestamps/Microsoft.Maui.Controls.Compatibility.stamp
351−/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/resourcestamps/Microsoft.Maui.Controls.stamp
352−/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/resourcestamps/Microsoft.Maui.Controls.Xaml.stamp
353−/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/resourcestamps/Microsoft.Maui.stamp
354−/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/resourcestamps/Microsoft.Maui.Essentials.stamp
355−/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/resourcestamps/Microsoft.Maui.Graphics.stamp
356−/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/resourcestamps/Sodium.Core.stamp
357−/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/unpack/Microsoft.Maui.Essentials/BundleResource/xml/microsoft_maui_essentials_fileprovider_file_paths.xml
client/obj/Debug/net10.0-ios/iossimulator-arm64/Skrepka.pdb

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Fabulous.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.CSharp.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Extensions.Configuration.Abstractions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Extensions.Configuration.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Extensions.DependencyInjection.Abstractions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Extensions.DependencyInjection.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Extensions.Diagnostics.Abstractions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Extensions.FileProviders.Abstractions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Extensions.Hosting.Abstractions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Extensions.Logging.Abstractions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Extensions.Logging.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Extensions.Options.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Extensions.Primitives.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Maui.Controls.Compatibility.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Maui.Controls.Xaml.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Maui.Essentials.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Maui.Graphics.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Maui.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.VisualBasic.Core.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.VisualBasic.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Win32.Primitives.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Microsoft.Win32.Registry.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Skrepka.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Skrepka.pdbdeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/Sodium.Core.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.AppContext.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Buffers.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Collections.Concurrent.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Collections.Immutable.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Collections.NonGeneric.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Collections.Specialized.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Collections.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.ComponentModel.Annotations.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.ComponentModel.DataAnnotations.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.ComponentModel.EventBasedAsync.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.ComponentModel.Primitives.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.ComponentModel.TypeConverter.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.ComponentModel.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Configuration.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Console.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Core.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Data.Common.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Data.DataSetExtensions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Data.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Diagnostics.Contracts.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Diagnostics.Debug.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Diagnostics.DiagnosticSource.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Diagnostics.FileVersionInfo.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Diagnostics.Process.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Diagnostics.StackTrace.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Diagnostics.TextWriterTraceListener.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Diagnostics.Tools.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Diagnostics.TraceSource.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Diagnostics.Tracing.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Drawing.Primitives.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Drawing.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Dynamic.Runtime.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Formats.Asn1.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Formats.Tar.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Globalization.Calendars.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Globalization.Extensions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Globalization.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.Compression.Brotli.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.Compression.FileSystem.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.Compression.ZipFile.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.Compression.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.FileSystem.AccessControl.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.FileSystem.DriveInfo.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.FileSystem.Primitives.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.FileSystem.Watcher.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.FileSystem.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.IsolatedStorage.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.MemoryMappedFiles.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.Pipelines.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.Pipes.AccessControl.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.Pipes.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.UnmanagedMemoryStream.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.IO.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Linq.AsyncEnumerable.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Linq.Expressions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Linq.Parallel.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Linq.Queryable.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Linq.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Memory.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.Http.Json.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.Http.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.HttpListener.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.Mail.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.NameResolution.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.NetworkInformation.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.Ping.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.Primitives.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.Quic.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.Requests.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.Security.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.ServerSentEvents.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.ServicePoint.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.Sockets.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.WebClient.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.WebHeaderCollection.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.WebProxy.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.WebSockets.Client.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.WebSockets.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Net.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Numerics.Vectors.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Numerics.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.ObjectModel.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Private.DataContractSerialization.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Private.Uri.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Private.Xml.Linq.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Reflection.DispatchProxy.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Reflection.Emit.ILGeneration.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Reflection.Emit.Lightweight.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Reflection.Emit.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Reflection.Extensions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Reflection.Metadata.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Reflection.Primitives.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Reflection.TypeExtensions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Reflection.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Resources.Reader.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Resources.ResourceManager.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Resources.Writer.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.CompilerServices.Unsafe.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.CompilerServices.VisualC.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.Extensions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.Handles.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.InteropServices.JavaScript.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.InteropServices.RuntimeInformation.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.InteropServices.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.Intrinsics.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.Loader.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.Numerics.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.Serialization.Formatters.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.Serialization.Json.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.Serialization.Primitives.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.Serialization.Xml.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.Serialization.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Runtime.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.AccessControl.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.Claims.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.Cryptography.Algorithms.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.Cryptography.Cng.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.Cryptography.Csp.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.Cryptography.Encoding.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.Cryptography.OpenSsl.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.Cryptography.Primitives.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.Cryptography.X509Certificates.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.Cryptography.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.Principal.Windows.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.Principal.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.SecureString.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Security.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.ServiceModel.Web.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.ServiceProcess.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Text.Encoding.CodePages.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Text.Encoding.Extensions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Text.Encoding.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Text.Encodings.Web.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Text.Json.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Text.RegularExpressions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Threading.AccessControl.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Threading.Channels.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Threading.Overlapped.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Threading.Tasks.Dataflow.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Threading.Tasks.Extensions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Threading.Tasks.Parallel.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Threading.Tasks.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Threading.Thread.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Threading.ThreadPool.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Threading.Timer.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Threading.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Transactions.Local.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Transactions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.ValueTuple.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Web.HttpUtility.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Web.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Windows.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Xml.Linq.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Xml.ReaderWriter.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Xml.Serialization.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Xml.XDocument.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Xml.XPath.XDocument.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Xml.XPath.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Xml.XmlDocument.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Xml.XmlSerializer.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.Xml.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/System.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/WindowsBase.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/mscorlib.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/linked/netstandard.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/ref/Skrepka.dll

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/refint/Skrepka.dll

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/Skrepka.AssemblyInfo.fs+1−1
@@ -10,7 +10,7 @@ open System.Reflection
1010[<assembly: System.Reflection.AssemblyCompanyAttribute("Skrepka")>]
1111[<assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")>]
1212[<assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")>]
13−[<assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0+064c373a75a8e5a105124031d8e31ae203b8d89e")>]
13+[<assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0+82cb0cdcfaf50735d5a3e12b5af1927d4f49fc36")>]
1414[<assembly: System.Reflection.AssemblyProductAttribute("Skrepka")>]
1515[<assembly: System.Reflection.AssemblyTitleAttribute("Skrepka")>]
1616[<assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")>]
client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/Skrepka.AssemblyInfoInputs.cache+1−1
@@ -1 +1 @@
1−6c134c0e309419636d3e51226a485ae9feaa2ce98c5cbcd888b8c9cc4e35dc78
1+0bbb41c3894493c03411870767791bedda64dcf1f142b06567da559d981710a3
client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/Skrepka.dll

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/Skrepka.pdb

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/Skrepka.sourcelink.json+1−1
@@ -1 +1 @@
1−{"documents":{"/Users/iko/Developer/skrepka/*":"https://raw.githubusercontent.com/ilyakooo0/skrepka/064c373a75a8e5a105124031d8e31ae203b8d89e/*"}}
1+{"documents":{"/Users/iko/Developer/skrepka/*":"https://raw.githubusercontent.com/ilyakooo0/skrepka/82cb0cdcfaf50735d5a3e12b5af1927d4f49fc36/*"}}
client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Fabulous.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.CSharp.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Extensions.Configuration.Abstractions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Extensions.Configuration.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Extensions.DependencyInjection.Abstractions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Extensions.DependencyInjection.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Extensions.Diagnostics.Abstractions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Extensions.FileProviders.Abstractions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Extensions.Hosting.Abstractions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Extensions.Logging.Abstractions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Extensions.Logging.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Extensions.Options.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Extensions.Primitives.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Maui.Controls.Compatibility.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Maui.Controls.Xaml.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Maui.Essentials.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Maui.Graphics.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Maui.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.VisualBasic.Core.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.VisualBasic.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Win32.Primitives.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Microsoft.Win32.Registry.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Skrepka.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Skrepka.pdbdeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/Sodium.Core.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.AppContext.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Buffers.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Collections.Concurrent.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Collections.Immutable.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Collections.NonGeneric.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Collections.Specialized.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Collections.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.ComponentModel.Annotations.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.ComponentModel.DataAnnotations.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.ComponentModel.EventBasedAsync.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.ComponentModel.Primitives.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.ComponentModel.TypeConverter.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.ComponentModel.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Configuration.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Console.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Core.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Data.Common.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Data.DataSetExtensions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Data.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Diagnostics.Contracts.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Diagnostics.Debug.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Diagnostics.DiagnosticSource.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Diagnostics.FileVersionInfo.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Diagnostics.Process.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Diagnostics.StackTrace.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Diagnostics.TextWriterTraceListener.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Diagnostics.Tools.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Diagnostics.TraceSource.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Diagnostics.Tracing.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Drawing.Primitives.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Drawing.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Dynamic.Runtime.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Formats.Asn1.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Formats.Tar.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Globalization.Calendars.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Globalization.Extensions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Globalization.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.Compression.Brotli.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.Compression.FileSystem.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.Compression.ZipFile.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.Compression.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.FileSystem.AccessControl.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.FileSystem.DriveInfo.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.FileSystem.Primitives.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.FileSystem.Watcher.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.FileSystem.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.IsolatedStorage.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.MemoryMappedFiles.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.Pipelines.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.Pipes.AccessControl.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.Pipes.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.UnmanagedMemoryStream.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.IO.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Linq.AsyncEnumerable.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Linq.Expressions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Linq.Parallel.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Linq.Queryable.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Linq.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Memory.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.Http.Json.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.Http.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.HttpListener.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.Mail.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.NameResolution.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.NetworkInformation.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.Ping.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.Primitives.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.Quic.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.Requests.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.Security.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.ServerSentEvents.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.ServicePoint.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.Sockets.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.WebClient.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.WebHeaderCollection.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.WebProxy.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.WebSockets.Client.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.WebSockets.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Net.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Numerics.Vectors.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Numerics.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.ObjectModel.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Private.DataContractSerialization.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Private.Uri.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Private.Xml.Linq.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Reflection.DispatchProxy.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Reflection.Emit.ILGeneration.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Reflection.Emit.Lightweight.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Reflection.Emit.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Reflection.Extensions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Reflection.Metadata.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Reflection.Primitives.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Reflection.TypeExtensions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Reflection.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Resources.Reader.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Resources.ResourceManager.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Resources.Writer.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.CompilerServices.Unsafe.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.CompilerServices.VisualC.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.Extensions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.Handles.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.InteropServices.JavaScript.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.InteropServices.RuntimeInformation.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.InteropServices.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.Intrinsics.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.Loader.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.Numerics.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.Serialization.Formatters.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.Serialization.Json.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.Serialization.Primitives.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.Serialization.Xml.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.Serialization.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Runtime.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.AccessControl.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.Claims.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.Cryptography.Algorithms.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.Cryptography.Cng.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.Cryptography.Csp.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.Cryptography.Encoding.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.Cryptography.OpenSsl.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.Cryptography.Primitives.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.Cryptography.X509Certificates.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.Cryptography.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.Principal.Windows.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.Principal.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.SecureString.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Security.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.ServiceModel.Web.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.ServiceProcess.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Text.Encoding.CodePages.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Text.Encoding.Extensions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Text.Encoding.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Text.Encodings.Web.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Text.Json.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Text.RegularExpressions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Threading.AccessControl.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Threading.Channels.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Threading.Overlapped.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Threading.Tasks.Dataflow.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Threading.Tasks.Extensions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Threading.Tasks.Parallel.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Threading.Tasks.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Threading.Thread.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Threading.ThreadPool.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Threading.Timer.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Threading.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Transactions.Local.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Transactions.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.ValueTuple.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Web.HttpUtility.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Web.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Windows.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Xml.Linq.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Xml.ReaderWriter.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Xml.Serialization.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Xml.XDocument.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Xml.XPath.XDocument.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Xml.XPath.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Xml.XmlDocument.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Xml.XmlSerializer.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.Xml.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/System.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/WindowsBase.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/mscorlib.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/linked/netstandard.dlldeleted

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/ref/Skrepka.dll

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/refint/Skrepka.dll

Binary file not shown.

server.knot+57−72
@@ -64,6 +64,8 @@ type Message = {messageId: MessageIdHex, toKey: PubkeyHex, fromKey: PubkeyHex, e
6464type PresenceEntry = {pubkey: PubkeyHex, server: Text, expiresAt: Timestamp, timestamp: Timestamp}
6565type ForwardEntry = {messageId: MessageIdHex, toServer: ServerName, createdAt: Timestamp, toKey: PubkeyHex, fromKey: PubkeyHex, encryptedBlob: BlobHex, timestamp: Timestamp}
6666type AckedEntry = {messageId: MessageIdHex, toKey: PubkeyHex, ackedAt: Timestamp, originServer: ServerName}
67+type AuthResult = {authorized: Bool, pubkey: Text}
68+type PruneResult = {expiredLocal: [PresenceEntry], peerServers: [Text]}
6769
6870-- ============================================
6971-- Persisted State
@@ -138,11 +140,9 @@ route Api = AuthApi | ClientApi | FederationApi | MaintenanceApi
138140
139141any = \xs pred -> count (do x <- xs; where pred x; yield x) > 0
140142none = \xs pred -> not (any xs pred)
141−isJust = \m -> case m of
142− Nothing {} -> False {}
143− _ -> True {}
144−
145−firstOf = \items -> fold (\acc s -> if acc == "" then s else acc) "" items
143+headOf = \items -> fold (\acc x -> case acc of
144+ Nothing {} -> Just {value: x}
145+ _ -> acc) Nothing {} items
146146
147147msToS : Int<Ms> -> Int<S>
148148msToS = \x -> x / 1000
@@ -355,18 +355,15 @@ isBadServerName = \s ->
355355 || (isDigitChar (take 1 sn) && isAllDigitsOrDotsUntilColonOrEnd sn)
356356 || isHighOctetPrefix sn
357357
358−lookupSession = \sessions token t ->
358+authenticateSession : [Session] -> Text -> Timestamp -> AuthResult
359+authenticateSession = \sessions token t ->
359360 fold (\acc s ->
360− let matches = safeCompare s.token token in
361− if matches && s.expiresAt > t
362− then case acc of
363− Nothing {} -> Just {value: s}
364− _ -> acc
365− else acc) Nothing {} sessions
366−
367−sessionPubkey = \session -> case session of
368− Nothing {} -> ""
369− Just {value: s} -> s.pubkey
361+ if acc.authorized then acc
362+ else
363+ let matches = safeCompare s.token token in
364+ if matches && s.expiresAt > t
365+ then {authorized: True {}, pubkey: s.pubkey}
366+ else acc) {authorized: False {}, pubkey: ""} sessions
370367
371368extractToken = \authHeader ->
372369 if toLower (take 7 authHeader) == "bearer "
@@ -521,16 +518,12 @@ validGossipEvents = \events validRequest t eventType ->
521518
522519sendToEach : [Text] -> (Text -> (a {})) -> a {}
523520sendToEach = \servers action ->
524− if count servers == 0
525− then yield {}
526− else do
527− let server = firstOf servers
521+ case headOf servers of
522+ Nothing {} -> yield {}
523+ Just {value: server} -> do
528524 let rest = do s <- servers; where not (s == server); yield s
529− if server == ""
530− then yield {}
531− else do
532− fork (action server)
533− sendToEach rest action
525+ fork (action server)
526+ sendToEach rest action
534527
535528pruneExpired = \t -> do
536529 set *challenges = do
@@ -621,24 +614,22 @@ removeForward = \mid srv -> atomic do
621614
622615retryForwardsForServer : [{encryptedBlob: BlobHex, fromKey: PubkeyHex, messageId: MessageIdHex, timestamp: Timestamp, toKey: PubkeyHex, toServer: ServerName}] -> Int -> IO {network} {}
623616retryForwardsForServer = \entries remaining ->
624− if count entries == 0 || remaining <= 0
617+ if remaining <= 0
625618 then yield {}
626− else do
627− let f = fold (\acc x -> if acc.messageId == "" then x else acc) {messageId: "", toServer: "", toKey: "", fromKey: "", encryptedBlob: "", timestamp: 0} entries
628− let rest = do x <- entries; where not (x.messageId == f.messageId); yield x
629− if f.messageId == ""
630− then yield {}
631− else do
632− result <- fetch (federationScheme ++ f.toServer) (ForwardMessage {
633− toKey: f.toKey, fromKey: f.fromKey, encryptedBlob: f.encryptedBlob,
634− timestamp: f.timestamp, originServer: serverHostN, messageId: f.messageId,
635− authorization: "Bearer " ++ federationSecret})
636− case result of
637− Ok _ -> do
638− removeForward f.messageId f.toServer
639− yield {}
640− Err _ -> yield {}
641− retryForwardsForServer rest (remaining - 1)
619+ else case headOf entries of
620+ Nothing {} -> yield {}
621+ Just {value: f} -> do
622+ let rest = do x <- entries; where not (x.messageId == f.messageId); yield x
623+ result <- fetch (federationScheme ++ f.toServer) (ForwardMessage {
624+ toKey: f.toKey, fromKey: f.fromKey, encryptedBlob: f.encryptedBlob,
625+ timestamp: f.timestamp, originServer: serverHostN, messageId: f.messageId,
626+ authorization: "Bearer " ++ federationSecret})
627+ case result of
628+ Ok _ -> do
629+ removeForward f.messageId f.toServer
630+ yield {}
631+ Err _ -> yield {}
632+ retryForwardsForServer rest (remaining - 1)
642633
643634retryPendingForwards : [{encryptedBlob: BlobHex, fromKey: PubkeyHex, messageId: MessageIdHex, timestamp: Timestamp, toKey: PubkeyHex, toServer: ServerName}] -> IO {network} {}
644635retryPendingForwards = \pending -> do
@@ -701,19 +692,17 @@ pollOnce = \token cursor -> do
701692 sessions <- *sessions
702693 messages <- *messages
703694 seqCounter <- *seqCounter
704− let session = lookupSession sessions token t
695+ let auth = authenticateSession sessions token t
705696 let cursorCeil = if seqCounter > t then seqCounter else t
706697 let clampedCursor = if cursor < 0 then 0 else if cursor > cursorCeil then cursorCeil else cursor
707− let matchingMsgs = case session of
708− Nothing {} -> []
709− Just {value: s} -> do
698+ let matchingMsgs = if not auth.authorized then []
699+ else do
710700 m <- messages
711− where m.toKey == s.pubkey
701+ where m.toKey == auth.pubkey
712702 where m.receivedAt >= t - messageMaxAge
713703 where m.receivedAt > clampedCursor
714704 yield m
715705 let limitedMsgs = boundedSmallest matchingMsgs maxPollEvents (\m -> m.receivedAt)
716− let authorized = isJust session
717706 let evts = do
718707 m <- limitedMsgs
719708 yield {id: m.messageId, eventType: "message",
@@ -721,10 +710,8 @@ pollOnce = \token cursor -> do
721710 encryptedBlob: m.encryptedBlob,
722711 timestamp: m.timestamp}}
723712 let lastReceivedAt = fold (\acc m -> if m.receivedAt > acc then m.receivedAt else acc) clampedCursor limitedMsgs
724− let newCursor = case session of
725− Nothing {} -> -1
726− _ -> lastReceivedAt
727− yield {events: evts, cursor: newCursor, authorized: authorized}
713+ let newCursor = if not auth.authorized then -1 else lastReceivedAt
714+ yield {events: evts, cursor: newCursor, authorized: auth.authorized}
728715
729716pollLoop : Text -> Int -> Int -> IO {clock} {authorized: Bool, cursor: Int, events: [PollEvent]}
730717pollLoop = \token cursor deadline -> do
@@ -849,9 +836,9 @@ serve = \req -> case req of
849836 sessions <- *sessions
850837 messages <- *messages
851838 presence <- *presence
852− let session = lookupSession sessions (extractToken authorization) t
853− let fromKey = sessionPubkey session
854− let authorized = isJust session
839+ let auth = authenticateSession sessions (extractToken authorization) t
840+ let fromKey = auth.pubkey
841+ let authorized = auth.authorized
855842 seqCounter <- *seqCounter
856843 let seqTs = nextSeqTs t seqCounter
857844 let recipientMsgCount = countMessagesFor messages to t
@@ -909,14 +896,13 @@ serve = \req -> case req of
909896 pr <- maybePrune t
910897 sessions <- *sessions
911898 messages <- *messages
912− let session = lookupSession sessions (extractToken authorization) t
913− let ackedMessages = case session of
914− Nothing {} -> []
915− Just {value: s} -> do
899+ let auth = authenticateSession sessions (extractToken authorization) t
900+ let ackedMessages = if not auth.authorized then []
901+ else do
916902 m <- messages
917903 mid <- dedupedIds
918904 where m.messageId == mid
919− where m.toKey == s.pubkey
905+ where m.toKey == auth.pubkey
920906 yield m
921907 set *messages = diff messages ackedMessages
922908 let ackedFederated = do
@@ -931,7 +917,7 @@ serve = \req -> case req of
931917 let evictedEntries = if excessCount <= 0 then []
932918 else diff combinedAckedIds afterEviction
933919 set *ackedIds = afterEviction
934− let ok = isJust session
920+ let ok = auth.authorized
935921 yield {ok: ok, ackedMessages: ackedMessages, expiredLocal: pr.expiredLocal, peerServers: pr.peerServers, evictedEntries: evictedEntries}
936922 let fedMessages = do
937923 m <- result.ackedMessages
@@ -988,21 +974,20 @@ serve = \req -> case req of
988974 pr <- maybePrune t
989975 sessions <- *sessions
990976 presence <- *presence
991− let session = lookupSession sessions (extractToken authorization) t
992− let authorized = isJust session
977+ let auth = authenticateSession sessions (extractToken authorization) t
978+ let authorized = auth.authorized
993979 let valid = do
994980 p <- presence
995981 where p.pubkey == pubkey
996982 where p.expiresAt > t
997983 yield p
998− let foundServer = case session of
999− Nothing {} -> ""
1000− Just {value: _} ->
1001− if count valid == 0
1002− then ""
1003− else if any valid (\p -> p.server == serverHostN)
1004− then serverHostN
1005− else (fold (\acc p -> if p.expiresAt > acc.best then {server: p.server, best: p.expiresAt} else acc) {server: "", best: 0} valid).server
984+ let foundServer = if not authorized
985+ then ""
986+ else if count valid == 0
987+ then ""
988+ else if any valid (\p -> p.server == serverHostN)
989+ then serverHostN
990+ else (fold (\acc p -> if p.expiresAt > acc.best then {server: p.server, best: p.expiresAt} else acc) {server: "", best: 0} valid).server
1006991 yield {foundServer: foundServer, authorized: authorized, expiredLocal: pr.expiredLocal, peerServers: pr.peerServers}
1007992 forkBroadcastOffline t result
1008993 yield (respond {online: not (result.foundServer == ""), server: result.foundServer, authorized: result.authorized})
@@ -1018,7 +1003,7 @@ serve = \req -> case req of
10181003 let filteredOnline = do
10191004 e <- onlineEntries
10201005 where none offlineEntries (\o -> o.server == fromServer && samePubkeyServer o e && o.timestamp > e.timestamp)
1021− yield {pubkey: e.pubkey, server: e.server, expiresAt: e.expiresAt, timestamp: e.timestamp, ttl: e.ttl}
1006+ yield e
10221007 let affectedKeys = union
10231008 (do
10241009 e <- onlineEntries