on master help sign in
Replace JSON file persistence with LiteDB: use embedded database for contacts, messages, and settings
commit2f625d9c41584a5754cdff38fe9d7799f1f4ad97 authoriko <mail@iko.soy> dateFri 10 Apr 2026, 11:43 (6 months ago) parent64e0fdc
40 files changed+229−68
client/Skrepka.fsproj+1 client/Store.fs+66−53 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+15−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+9−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/PublishOutputs.42f28df682.txt+1 client/obj/Debug/net10.0-ios/iossimulator-arm64/Skrepka.AssemblyInfo.fs+1−1 client/obj/Debug/net10.0-ios/iossimulator-arm64/Skrepka.AssemblyInfoInputs.cache+1−1 client/obj/Debug/net10.0-ios/iossimulator-arm64/Skrepka.dll client/obj/Debug/net10.0-ios/iossimulator-arm64/Skrepka.fsproj.AssemblyReference.cache client/obj/Debug/net10.0-ios/iossimulator-arm64/Skrepka.fsproj.CoreCompileInputs.cache+1−1 client/obj/Debug/net10.0-ios/iossimulator-arm64/Skrepka.fsproj.FileListAbsolute.txt+2 client/obj/Debug/net10.0-ios/iossimulator-arm64/Skrepka.pdb client/obj/Debug/net10.0-ios/iossimulator-arm64/Skrepka.sourcelink.json+1−1 client/obj/Debug/net10.0-ios/iossimulator-arm64/nativelibraries/aot-output/arm64/System.Private.CoreLib.dll.o 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/PublishOutputs.efd59590f0.txt+1 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.fsproj.AssemblyReference.cache client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/Skrepka.fsproj.CoreCompileInputs.cache+1−1 client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/Skrepka.fsproj.FileListAbsolute.txt+2 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/nativelibraries/aot-output/arm64/System.Private.CoreLib.dll.o client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/ref/Skrepka.dll client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/refint/Skrepka.dll client/obj/Skrepka.fsproj.nuget.dgspec.json+10 client/obj/Skrepka.fsproj.nuget.g.props+2 client/obj/project.assets.json+110 client/obj/project.nuget.cache+2−1
client/Skrepka.fsproj+1
@@ -58,6 +58,7 @@
5858 <ItemGroup>
5959 <PackageReference Include="Fabulous.MauiControls" Version="9.0.0-pre9" />
6060 <PackageReference Include="Microsoft.Maui.Controls" Version="10.0.0" />
61+ <PackageReference Include="LiteDB" Version="5.0.21" />
6162 <PackageReference Include="Sodium.Core" Version="1.4.0" />
6263 <PackageReference Include="FSharp.Core" Version="9.0.100" />
6364 </ItemGroup>
client/Store.fs+66−53
@@ -1,31 +1,21 @@
11namespace Skrepka
22
33open System
4−open System.Collections.Generic
54open System.IO
6−open System.Text.Json
7−open System.Text.Json.Serialization
5+open LiteDB
86open Microsoft.Maui.Storage
97
108module Store =
119
1210 [<CLIMutable>]
1311 type Contact =
14− { Pubkey: string
12+ { [<BsonId>] Pubkey: string
1513 Nickname: string }
1614
17− type private UnixDateTimeOffsetConverter() =
18− inherit JsonConverter<DateTimeOffset>()
19− override _.Read(reader, _, _) =
20− DateTimeOffset.FromUnixTimeSeconds(reader.GetInt64())
21− override _.Write(writer, value, _) =
22− writer.WriteNumberValue(value.ToUnixTimeSeconds())
23−
24− [<CLIMutable>]
2515 type ChatMessage =
2616 { Id: string
2717 Body: string
28− [<JsonPropertyName("TimestampUnix")>] Timestamp: DateTimeOffset
18+ Timestamp: DateTimeOffset
2919 IsOutgoing: bool }
3020
3121 type Data =
@@ -35,19 +25,21 @@ module Store =
3525 PollCursor: uint64 }
3626
3727 [<CLIMutable>]
38− type private DataDto =
39− { Contacts: Contact array
40− Messages: Dictionary<string, ChatMessage array>
41− ServerUrl: string
42− PollCursor: uint64 }
28+ type private MessageDoc =
29+ { [<BsonId>] Id: string
30+ ConversationId: string
31+ Body: string
32+ TimestampUnix: int64
33+ IsOutgoing: bool }
4334
44− let private jsonOpts =
45− let opts = JsonSerializerOptions(WriteIndented = true, PropertyNameCaseInsensitive = true)
46− opts.Converters.Add(UnixDateTimeOffsetConverter())
47− opts
35+ [<CLIMutable>]
36+ type private SettingsDoc =
37+ { [<BsonId>] Id: string
38+ ServerUrl: string
39+ PollCursor: int64 }
4840
49− let private dataPath () =
50− Path.Combine(FileSystem.AppDataDirectory, "data.json")
41+ let private openDb () =
42+ new LiteDatabase(Path.Combine(FileSystem.AppDataDirectory, "skrepka.db"))
5143
5244 let loadIdentity () =
5345 async {
@@ -75,42 +67,63 @@ module Store =
7567 }
7668
7769 let loadData () : Data option =
78− let path = dataPath ()
70+ try
71+ use db = openDb ()
72+ let settings = db.GetCollection<SettingsDoc>("settings").FindById(BsonValue "settings")
7973
80− if File.Exists path then
81− try
82− let json = File.ReadAllText path
83− let dto = JsonSerializer.Deserialize<DataDto>(json, jsonOpts)
74+ if box settings |> isNull then
75+ None
76+ else
77+ let contacts = db.GetCollection<Contact>("contacts").FindAll() |> Seq.toList
78+
79+ let messages =
80+ db.GetCollection<MessageDoc>("messages").FindAll()
81+ |> Seq.groupBy _.ConversationId
82+ |> Seq.map (fun (convId, docs) ->
83+ convId,
84+ docs
85+ |> Seq.map (fun d ->
86+ { ChatMessage.Id = d.Id
87+ Body = d.Body
88+ Timestamp = DateTimeOffset.FromUnixTimeSeconds d.TimestampUnix
89+ IsOutgoing = d.IsOutgoing })
90+ |> Seq.sortBy _.Timestamp
91+ |> Seq.toList)
92+ |> Map.ofSeq
8493
8594 Some
86− { Contacts =
87− if isNull dto.Contacts then [] else dto.Contacts |> Array.toList
88− Messages =
89− if isNull dto.Messages then
90− Map.empty
91− else
92− dto.Messages
93− |> Seq.map (fun (KeyValue(pk, msgs)) -> pk, msgs |> Array.toList)
94− |> Map.ofSeq
95− ServerUrl = if isNull dto.ServerUrl then "" else dto.ServerUrl
96− PollCursor = dto.PollCursor }
97− with _ ->
98− None
99− else
95+ { Contacts = contacts
96+ Messages = messages
97+ ServerUrl = settings.ServerUrl
98+ PollCursor = uint64 settings.PollCursor }
99+ with _ ->
100100 None
101101
102102 let saveData (data: Data) =
103103 try
104− let messageDtos = Dictionary<string, ChatMessage array>()
105− data.Messages |> Map.iter (fun pk msgs -> messageDtos[pk] <- msgs |> Array.ofList)
106−
107− let dto: DataDto =
108− { Contacts = data.Contacts |> Array.ofList
109− Messages = messageDtos
104+ use db = openDb ()
105+ let contacts = db.GetCollection<Contact>("contacts")
106+ let messages = db.GetCollection<MessageDoc>("messages")
107+ let settings = db.GetCollection<SettingsDoc>("settings")
108+
109+ for c in data.Contacts do
110+ contacts.Upsert c |> ignore
111+
112+ data.Messages
113+ |> Map.iter (fun convId msgs ->
114+ for m in msgs do
115+ messages.Upsert
116+ { Id = m.Id
117+ ConversationId = convId
118+ Body = m.Body
119+ TimestampUnix = m.Timestamp.ToUnixTimeSeconds()
120+ IsOutgoing = m.IsOutgoing }
121+ |> ignore)
122+
123+ settings.Upsert
124+ { Id = "settings"
110125 ServerUrl = data.ServerUrl
111− PollCursor = data.PollCursor }
112−
113− let json = JsonSerializer.Serialize(dto, jsonOpts)
114− File.WriteAllText(dataPath (), json)
126+ PollCursor = int64 data.PollCursor }
127+ |> ignore
115128 with _ ->
116129 ()
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+15−4
@@ -28,6 +28,10 @@
2828 <data>
2929 m96ofwll7AgsnmJ6k8Mhg6rEh+k=
3030 </data>
31+ <key>LiteDB.dll</key>
32+ <data>
33+ vxA0uDp+BuUEE5Xf1wcoVCW/EYs=
34+ </data>
3135 <key>MauiSplash.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib</key>
3236 <data>
3337 Y78DTyz7+rkuDbhphGJe+YK2rLQ=
@@ -158,11 +162,11 @@
158162 </data>
159163 <key>Skrepka.dll</key>
160164 <data>
161− m/JtNDTwXk9X/g1/AaE5Vwl4W2M=
165+ fWgnzhQubQm/pXCMxdaeASe90IU=
162166 </data>
163167 <key>Skrepka.pdb</key>
164168 <data>
165− 73CrYxr59vU0P2RRGGZKrbhrupU=
169+ EreX5kfzNb2S+VnlrBsyMswiGnM=
166170 </data>
167171 <key>Sodium.Core.dll</key>
168172 <data>
@@ -1150,6 +1154,13 @@
11501154 qpZJG5sHLu7WLZdd3Hp9GLV8v5gqy7cr5m0iSkYjBXc=
11511155 </data>
11521156 </dict>
1157+ <key>LiteDB.dll</key>
1158+ <dict>
1159+ <key>hash2</key>
1160+ <data>
1161+ rjGsapNUkhe56LgUl9HugxZYrebfnh7iDyg48i3l4hg=
1162+ </data>
1163+ </dict>
11531164 <key>MauiSplash.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib</key>
11541165 <dict>
11551166 <key>hash2</key>
@@ -1371,14 +1382,14 @@
13711382 <dict>
13721383 <key>hash2</key>
13731384 <data>
1374− ZF4F2VwuJgNcoxdnMOVcFjYX5wbJbSBws4JgwK9hrXc=
1385+ kLMnGG+nlD35s66fyt9JcYg7ILRHQOazpZrn0F9ecAs=
13751386 </data>
13761387 </dict>
13771388 <key>Skrepka.pdb</key>
13781389 <dict>
13791390 <key>hash2</key>
13801391 <data>
1381− V7wCsBDqyaA4e02MG2zYiouDtDEgDU3uuJzwQbBfAgY=
1392+ SO6AxLeTTGVHAEWR0d25BmHOxy5yz4NIYe7juescHjM=
13821393 </data>
13831394 </dict>
13841395 <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+9−2
@@ -68,6 +68,13 @@
6868 qpZJG5sHLu7WLZdd3Hp9GLV8v5gqy7cr5m0iSkYjBXc=
6969 </data>
7070 </dict>
71+ <key>MonoBundle/LiteDB.dll</key>
72+ <dict>
73+ <key>hash2</key>
74+ <data>
75+ rjGsapNUkhe56LgUl9HugxZYrebfnh7iDyg48i3l4hg=
76+ </data>
77+ </dict>
7178 <key>MonoBundle/Microsoft.CSharp.dll</key>
7279 <dict>
7380 <key>hash2</key>
@@ -240,14 +247,14 @@
240247 <dict>
241248 <key>hash2</key>
242249 <data>
243− XU+yAt7vNt9BpnKXVtjK7OrVVcCx0NV5yVFk70jDuKA=
250+ Ll855YGoZZ4EHbGdnm7YJ2/UrFtklAGRlFW9NlLbdXI=
244251 </data>
245252 </dict>
246253 <key>MonoBundle/Skrepka.pdb</key>
247254 <dict>
248255 <key>hash2</key>
249256 <data>
250− 1rsqlbs6EGxpr47/dseRdpvX9mqCbc9lJ7fOrIUjaqs=
257+ J4e+LdQyWbJGoueMWBhlFQg9tI6hYFwkIT6qA3pNgNU=
251258 </data>
252259 </dict>
253260 <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/PublishOutputs.42f28df682.txt+1
@@ -49,6 +49,7 @@
4949/Users/iko/Developer/skrepka/client/bin/Debug/net10.0-ios/iossimulator-arm64/publish/../Skrepka.app/Fabulous.dll
5050/Users/iko/Developer/skrepka/client/bin/Debug/net10.0-ios/iossimulator-arm64/publish/../Skrepka.app/Fabulous.MauiControls.dll
5151/Users/iko/Developer/skrepka/client/bin/Debug/net10.0-ios/iossimulator-arm64/publish/../Skrepka.app/FSharp.Core.dll
52+/Users/iko/Developer/skrepka/client/bin/Debug/net10.0-ios/iossimulator-arm64/publish/../Skrepka.app/LiteDB.dll
5253/Users/iko/Developer/skrepka/client/bin/Debug/net10.0-ios/iossimulator-arm64/publish/../Skrepka.app/Microsoft.Extensions.Configuration.dll
5354/Users/iko/Developer/skrepka/client/bin/Debug/net10.0-ios/iossimulator-arm64/publish/../Skrepka.app/Microsoft.Extensions.Configuration.Abstractions.dll
5455/Users/iko/Developer/skrepka/client/bin/Debug/net10.0-ios/iossimulator-arm64/publish/../Skrepka.app/Microsoft.Extensions.DependencyInjection.dll
client/obj/Debug/net10.0-ios/iossimulator-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+76838374041f6fc059855075419f13397f59e5a7")>]
13+[<assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0+64e0fdcd67fd42117a3538c089bb99c276931127")>]
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-ios/iossimulator-arm64/Skrepka.AssemblyInfoInputs.cache+1−1
@@ -1 +1 @@
1−dd20f702ea45de2b35fefe109126bb1926d11d2ae1a444ce530a8ae2250bc38e
1+e50f958afa3607e0c2176340e354fd0c5d565507a4ce35d8cd858d8feeb3f6a1
client/obj/Debug/net10.0-ios/iossimulator-arm64/Skrepka.dll

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/Skrepka.fsproj.AssemblyReference.cache

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/Skrepka.fsproj.CoreCompileInputs.cache+1−1
@@ -1 +1 @@
1−2216f8a345100d0cead52a75571b23423658891765293a7281aed4c708bdb260
1+69642e04cc9acf8f904dc028dba9bb2fb594ca3a355cba1325fba75dad676d69
client/obj/Debug/net10.0-ios/iossimulator-arm64/Skrepka.fsproj.FileListAbsolute.txt+2
@@ -355,3 +355,5 @@
355355/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/resourcestamps/Microsoft.Maui.Graphics.stamp
356356/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/resourcestamps/Sodium.Core.stamp
357357/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
358+/Users/iko/Developer/skrepka/client/bin/Debug/net10.0-ios/iossimulator-arm64/LiteDB.dll
359+/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-ios/iossimulator-arm64/resourcestamps/LiteDB.stamp
client/obj/Debug/net10.0-ios/iossimulator-arm64/Skrepka.pdb

Binary file not shown.

client/obj/Debug/net10.0-ios/iossimulator-arm64/Skrepka.sourcelink.json+1−1
@@ -1 +1 @@
1−{"documents":{"/Users/iko/Developer/skrepka/*":"https://raw.githubusercontent.com/ilyakooo0/skrepka/76838374041f6fc059855075419f13397f59e5a7/*"}}
1+{"documents":{"/Users/iko/Developer/skrepka/*":"https://raw.githubusercontent.com/ilyakooo0/skrepka/64e0fdcd67fd42117a3538c089bb99c276931127/*"}}
client/obj/Debug/net10.0-ios/iossimulator-arm64/nativelibraries/aot-output/arm64/System.Private.CoreLib.dll.o

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/PublishOutputs.efd59590f0.txt+1
@@ -49,6 +49,7 @@
4949/Users/iko/Developer/skrepka/client/bin/Debug/net10.0-maccatalyst/maccatalyst-arm64/publish/../Skrepka.app/Contents/MonoBundle/Fabulous.dll
5050/Users/iko/Developer/skrepka/client/bin/Debug/net10.0-maccatalyst/maccatalyst-arm64/publish/../Skrepka.app/Contents/MonoBundle/Fabulous.MauiControls.dll
5151/Users/iko/Developer/skrepka/client/bin/Debug/net10.0-maccatalyst/maccatalyst-arm64/publish/../Skrepka.app/Contents/MonoBundle/FSharp.Core.dll
52+/Users/iko/Developer/skrepka/client/bin/Debug/net10.0-maccatalyst/maccatalyst-arm64/publish/../Skrepka.app/Contents/MonoBundle/LiteDB.dll
5253/Users/iko/Developer/skrepka/client/bin/Debug/net10.0-maccatalyst/maccatalyst-arm64/publish/../Skrepka.app/Contents/MonoBundle/Microsoft.Extensions.Configuration.dll
5354/Users/iko/Developer/skrepka/client/bin/Debug/net10.0-maccatalyst/maccatalyst-arm64/publish/../Skrepka.app/Contents/MonoBundle/Microsoft.Extensions.Configuration.Abstractions.dll
5455/Users/iko/Developer/skrepka/client/bin/Debug/net10.0-maccatalyst/maccatalyst-arm64/publish/../Skrepka.app/Contents/MonoBundle/Microsoft.Extensions.DependencyInjection.dll
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+76838374041f6fc059855075419f13397f59e5a7")>]
13+[<assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0+64e0fdcd67fd42117a3538c089bb99c276931127")>]
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−62969b024266df7d019288251e98d3dfefb398a7f9289e5449cd17e5adb6c704
1+be435fd044969cb8957c158b5e1a656e1e9260e869cd5e4059efeccf555209e5
client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/Skrepka.dll

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/Skrepka.fsproj.AssemblyReference.cache

Binary file not shown.

client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/Skrepka.fsproj.CoreCompileInputs.cache+1−1
@@ -1 +1 @@
1−6b4f2ff0c8a36db93ba0242efaacfe4c365d973eced5156b3c65b39c8c644b10
1+6202acc233295b7d078b1e7cc174d976ebb69fcd5075adc57d9dd3761c9e9f75
client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/Skrepka.fsproj.FileListAbsolute.txt+2
@@ -344,3 +344,5 @@
344344/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/resourcestamps/Microsoft.Maui.Graphics.stamp
345345/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/resourcestamps/Sodium.Core.stamp
346346/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/unpack/Microsoft.Maui.Essentials/BundleResource/xml/microsoft_maui_essentials_fileprovider_file_paths.xml
347+/Users/iko/Developer/skrepka/client/bin/Debug/net10.0-maccatalyst/maccatalyst-arm64/LiteDB.dll
348+/Users/iko/Developer/skrepka/client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/resourcestamps/LiteDB.stamp
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/76838374041f6fc059855075419f13397f59e5a7/*"}}
1+{"documents":{"/Users/iko/Developer/skrepka/*":"https://raw.githubusercontent.com/ilyakooo0/skrepka/64e0fdcd67fd42117a3538c089bb99c276931127/*"}}
client/obj/Debug/net10.0-maccatalyst/maccatalyst-arm64/nativelibraries/aot-output/arm64/System.Private.CoreLib.dll.o

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.

client/obj/Skrepka.fsproj.nuget.dgspec.json+10
@@ -57,6 +57,11 @@
5757 "version": "[9.0.0-pre9, )",
5858 "generatePathProperty": true
5959 },
60+ "LiteDB": {
61+ "target": "Package",
62+ "version": "[5.0.21, )",
63+ "generatePathProperty": true
64+ },
6065 "Microsoft.Maui.Controls": {
6166 "target": "Package",
6267 "version": "[10.0.0, )",
@@ -386,6 +391,11 @@
386391 "version": "[9.0.0-pre9, )",
387392 "generatePathProperty": true
388393 },
394+ "LiteDB": {
395+ "target": "Package",
396+ "version": "[5.0.21, )",
397+ "generatePathProperty": true
398+ },
389399 "Microsoft.Maui.Controls": {
390400 "target": "Package",
391401 "version": "[10.0.0, )",
client/obj/Skrepka.fsproj.nuget.g.props+2
@@ -28,6 +28,7 @@
2828 <PkgSodium_Core Condition=" '$(PkgSodium_Core)' == '' ">/Users/iko/.nuget/packages/sodium.core/1.4.0</PkgSodium_Core>
2929 <PkgMicrosoft_NET_ILLink_Tasks Condition=" '$(PkgMicrosoft_NET_ILLink_Tasks)' == '' ">/Users/iko/.nuget/packages/microsoft.net.illink.tasks/10.0.5</PkgMicrosoft_NET_ILLink_Tasks>
3030 <PkgMicrosoft_Maui_Controls Condition=" '$(PkgMicrosoft_Maui_Controls)' == '' ">/Users/iko/.nuget/packages/microsoft.maui.controls/10.0.0</PkgMicrosoft_Maui_Controls>
31+ <PkgLiteDB Condition=" '$(PkgLiteDB)' == '' ">/Users/iko/.nuget/packages/litedb/5.0.21</PkgLiteDB>
3132 <PkgFSharp_Core Condition=" '$(PkgFSharp_Core)' == '' ">/Users/iko/.nuget/packages/fsharp.core/9.0.100</PkgFSharp_Core>
3233 <PkgFabulous_MauiControls Condition=" '$(PkgFabulous_MauiControls)' == '' ">/Users/iko/.nuget/packages/fabulous.mauicontrols/9.0.0-pre9</PkgFabulous_MauiControls>
3334 </PropertyGroup>
@@ -35,6 +36,7 @@
3536 <PkgSodium_Core Condition=" '$(PkgSodium_Core)' == '' ">/Users/iko/.nuget/packages/sodium.core/1.4.0</PkgSodium_Core>
3637 <PkgMicrosoft_NET_ILLink_Tasks Condition=" '$(PkgMicrosoft_NET_ILLink_Tasks)' == '' ">/Users/iko/.nuget/packages/microsoft.net.illink.tasks/10.0.5</PkgMicrosoft_NET_ILLink_Tasks>
3738 <PkgMicrosoft_Maui_Controls Condition=" '$(PkgMicrosoft_Maui_Controls)' == '' ">/Users/iko/.nuget/packages/microsoft.maui.controls/10.0.0</PkgMicrosoft_Maui_Controls>
39+ <PkgLiteDB Condition=" '$(PkgLiteDB)' == '' ">/Users/iko/.nuget/packages/litedb/5.0.21</PkgLiteDB>
3840 <PkgFSharp_Core Condition=" '$(PkgFSharp_Core)' == '' ">/Users/iko/.nuget/packages/fsharp.core/9.0.100</PkgFSharp_Core>
3941 <PkgFabulous_MauiControls Condition=" '$(PkgFabulous_MauiControls)' == '' ">/Users/iko/.nuget/packages/fabulous.mauicontrols/9.0.0-pre9</PkgFabulous_MauiControls>
4042 </PropertyGroup>
client/obj/project.assets.json+110
@@ -155,6 +155,19 @@
155155 }
156156 }
157157 },
158+ "LiteDB/5.0.21": {
159+ "type": "package",
160+ "compile": {
161+ "lib/netstandard2.0/LiteDB.dll": {
162+ "related": ".xml"
163+ }
164+ },
165+ "runtime": {
166+ "lib/netstandard2.0/LiteDB.dll": {
167+ "related": ".xml"
168+ }
169+ }
170+ },
158171 "Microsoft.Extensions.Configuration/10.0.0": {
159172 "type": "package",
160173 "dependencies": {
@@ -728,6 +741,19 @@
728741 "runtimes/ios-arm64/native/libsodium.a": {}
729742 }
730743 },
744+ "LiteDB/5.0.21": {
745+ "type": "package",
746+ "compile": {
747+ "lib/netstandard2.0/LiteDB.dll": {
748+ "related": ".xml"
749+ }
750+ },
751+ "runtime": {
752+ "lib/netstandard2.0/LiteDB.dll": {
753+ "related": ".xml"
754+ }
755+ }
756+ },
731757 "Microsoft.Extensions.Configuration/10.0.0": {
732758 "type": "package",
733759 "dependencies": {
@@ -1301,6 +1327,19 @@
13011327 "runtimes/maccatalyst-arm64/native/libsodium.a": {}
13021328 }
13031329 },
1330+ "LiteDB/5.0.21": {
1331+ "type": "package",
1332+ "compile": {
1333+ "lib/netstandard2.0/LiteDB.dll": {
1334+ "related": ".xml"
1335+ }
1336+ },
1337+ "runtime": {
1338+ "lib/netstandard2.0/LiteDB.dll": {
1339+ "related": ".xml"
1340+ }
1341+ }
1342+ },
13041343 "Microsoft.Extensions.Configuration/10.0.0": {
13051344 "type": "package",
13061345 "dependencies": {
@@ -1933,6 +1972,19 @@
19331972 }
19341973 }
19351974 },
1975+ "LiteDB/5.0.21": {
1976+ "type": "package",
1977+ "compile": {
1978+ "lib/netstandard2.0/LiteDB.dll": {
1979+ "related": ".xml"
1980+ }
1981+ },
1982+ "runtime": {
1983+ "lib/netstandard2.0/LiteDB.dll": {
1984+ "related": ".xml"
1985+ }
1986+ }
1987+ },
19361988 "Microsoft.Extensions.Configuration/10.0.0": {
19371989 "type": "package",
19381990 "dependencies": {
@@ -2506,6 +2558,19 @@
25062558 "runtimes/ios-arm64/native/libsodium.a": {}
25072559 }
25082560 },
2561+ "LiteDB/5.0.21": {
2562+ "type": "package",
2563+ "compile": {
2564+ "lib/netstandard2.0/LiteDB.dll": {
2565+ "related": ".xml"
2566+ }
2567+ },
2568+ "runtime": {
2569+ "lib/netstandard2.0/LiteDB.dll": {
2570+ "related": ".xml"
2571+ }
2572+ }
2573+ },
25092574 "Microsoft.Extensions.Configuration/10.0.0": {
25102575 "type": "package",
25112576 "dependencies": {
@@ -3079,6 +3144,19 @@
30793144 "runtimes/maccatalyst-arm64/native/libsodium.a": {}
30803145 }
30813146 },
3147+ "LiteDB/5.0.21": {
3148+ "type": "package",
3149+ "compile": {
3150+ "lib/netstandard2.0/LiteDB.dll": {
3151+ "related": ".xml"
3152+ }
3153+ },
3154+ "runtime": {
3155+ "lib/netstandard2.0/LiteDB.dll": {
3156+ "related": ".xml"
3157+ }
3158+ }
3159+ },
30823160 "Microsoft.Extensions.Configuration/10.0.0": {
30833161 "type": "package",
30843162 "dependencies": {
@@ -3662,6 +3740,26 @@
36623740 "runtimes/win-x86/native/libsodium.dll"
36633741 ]
36643742 },
3743+ "LiteDB/5.0.21": {
3744+ "sha512": "ykJ7ffFl7P9YQKR/PLci6zupiLrsSCNkOTiw6OtzntH7d2kCYp5L1+3a/pksKgTEHcJBoPXFtg7VZSGVBseN9w==",
3745+ "type": "package",
3746+ "path": "litedb/5.0.21",
3747+ "files": [
3748+ ".nupkg.metadata",
3749+ ".signature.p7s",
3750+ "AppVeyorSettings.json",
3751+ "LICENSE",
3752+ "icon_64x64.png",
3753+ "lib/net45/LiteDB.dll",
3754+ "lib/net45/LiteDB.xml",
3755+ "lib/netstandard1.3/LiteDB.dll",
3756+ "lib/netstandard1.3/LiteDB.xml",
3757+ "lib/netstandard2.0/LiteDB.dll",
3758+ "lib/netstandard2.0/LiteDB.xml",
3759+ "litedb.5.0.21.nupkg.sha512",
3760+ "litedb.nuspec"
3761+ ]
3762+ },
36653763 "Microsoft.Extensions.Configuration/10.0.0": {
36663764 "sha512": "H4SWETCh/cC5L1WtWchHR6LntGk3rDTTznZMssr4cL8IbDmMWBxY+MOGDc/ASnqNolLKPIWHWeuC1ddiL/iNPw==",
36673765 "type": "package",
@@ -4834,6 +4932,7 @@
48344932 "net10.0-ios26.2": [
48354933 "FSharp.Core >= 9.0.100",
48364934 "Fabulous.MauiControls >= 9.0.0-pre9",
4935+ "LiteDB >= 5.0.21",
48374936 "Microsoft.Maui.Controls >= 10.0.0",
48384937 "Microsoft.NET.ILLink.Tasks >= 10.0.5",
48394938 "Sodium.Core >= 1.4.0"
@@ -4841,6 +4940,7 @@
48414940 "net10.0-maccatalyst26.2": [
48424941 "FSharp.Core >= 9.0.100",
48434942 "Fabulous.MauiControls >= 9.0.0-pre9",
4943+ "LiteDB >= 5.0.21",
48444944 "Microsoft.Maui.Controls >= 10.0.0",
48454945 "Microsoft.NET.ILLink.Tasks >= 10.0.5",
48464946 "Sodium.Core >= 1.4.0"
@@ -4902,6 +5002,11 @@
49025002 "version": "[9.0.0-pre9, )",
49035003 "generatePathProperty": true
49045004 },
5005+ "LiteDB": {
5006+ "target": "Package",
5007+ "version": "[5.0.21, )",
5008+ "generatePathProperty": true
5009+ },
49055010 "Microsoft.Maui.Controls": {
49065011 "target": "Package",
49075012 "version": "[10.0.0, )",
@@ -5231,6 +5336,11 @@
52315336 "version": "[9.0.0-pre9, )",
52325337 "generatePathProperty": true
52335338 },
5339+ "LiteDB": {
5340+ "target": "Package",
5341+ "version": "[5.0.21, )",
5342+ "generatePathProperty": true
5343+ },
52345344 "Microsoft.Maui.Controls": {
52355345 "target": "Package",
52365346 "version": "[10.0.0, )",
client/obj/project.nuget.cache+2−1
@@ -1,6 +1,6 @@
11{
22 "version": 2,
3− "dgSpecHash": "p3N3d4zcPQg=",
3+ "dgSpecHash": "VeBMJNb5HXc=",
44 "success": true,
55 "projectFilePath": "/Users/iko/Developer/skrepka/client/Skrepka.fsproj",
66 "expectedPackageFiles": [
@@ -8,6 +8,7 @@
88 "/Users/iko/.nuget/packages/fabulous.mauicontrols/9.0.0-pre9/fabulous.mauicontrols.9.0.0-pre9.nupkg.sha512",
99 "/Users/iko/.nuget/packages/fsharp.core/9.0.100/fsharp.core.9.0.100.nupkg.sha512",
1010 "/Users/iko/.nuget/packages/libsodium/1.0.20.1/libsodium.1.0.20.1.nupkg.sha512",
11+ "/Users/iko/.nuget/packages/litedb/5.0.21/litedb.5.0.21.nupkg.sha512",
1112 "/Users/iko/.nuget/packages/microsoft.extensions.configuration/10.0.0/microsoft.extensions.configuration.10.0.0.nupkg.sha512",
1213 "/Users/iko/.nuget/packages/microsoft.extensions.configuration.abstractions/10.0.0/microsoft.extensions.configuration.abstractions.10.0.0.nupkg.sha512",
1314 "/Users/iko/.nuget/packages/microsoft.extensions.dependencyinjection/10.0.0/microsoft.extensions.dependencyinjection.10.0.0.nupkg.sha512",