cojson 0.19.22 → 0.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +66 -0
  3. package/dist/PeerState.d.ts +6 -1
  4. package/dist/PeerState.d.ts.map +1 -1
  5. package/dist/PeerState.js +18 -3
  6. package/dist/PeerState.js.map +1 -1
  7. package/dist/coValueContentMessage.d.ts +0 -2
  8. package/dist/coValueContentMessage.d.ts.map +1 -1
  9. package/dist/coValueContentMessage.js +0 -8
  10. package/dist/coValueContentMessage.js.map +1 -1
  11. package/dist/coValueCore/SessionMap.d.ts +4 -2
  12. package/dist/coValueCore/SessionMap.d.ts.map +1 -1
  13. package/dist/coValueCore/SessionMap.js +30 -0
  14. package/dist/coValueCore/SessionMap.js.map +1 -1
  15. package/dist/coValueCore/coValueCore.d.ts +70 -5
  16. package/dist/coValueCore/coValueCore.d.ts.map +1 -1
  17. package/dist/coValueCore/coValueCore.js +302 -31
  18. package/dist/coValueCore/coValueCore.js.map +1 -1
  19. package/dist/coValueCore/verifiedState.d.ts +6 -1
  20. package/dist/coValueCore/verifiedState.d.ts.map +1 -1
  21. package/dist/coValueCore/verifiedState.js +9 -0
  22. package/dist/coValueCore/verifiedState.js.map +1 -1
  23. package/dist/coValues/coList.d.ts +4 -2
  24. package/dist/coValues/coList.d.ts.map +1 -1
  25. package/dist/coValues/coList.js +3 -0
  26. package/dist/coValues/coList.js.map +1 -1
  27. package/dist/coValues/group.d.ts.map +1 -1
  28. package/dist/coValues/group.js +3 -6
  29. package/dist/coValues/group.js.map +1 -1
  30. package/dist/config.d.ts +2 -8
  31. package/dist/config.d.ts.map +1 -1
  32. package/dist/config.js +4 -12
  33. package/dist/config.js.map +1 -1
  34. package/dist/crypto/NapiCrypto.d.ts +1 -2
  35. package/dist/crypto/NapiCrypto.d.ts.map +1 -1
  36. package/dist/crypto/NapiCrypto.js +19 -4
  37. package/dist/crypto/NapiCrypto.js.map +1 -1
  38. package/dist/crypto/RNCrypto.d.ts.map +1 -1
  39. package/dist/crypto/RNCrypto.js +19 -4
  40. package/dist/crypto/RNCrypto.js.map +1 -1
  41. package/dist/crypto/WasmCrypto.d.ts +11 -4
  42. package/dist/crypto/WasmCrypto.d.ts.map +1 -1
  43. package/dist/crypto/WasmCrypto.js +52 -10
  44. package/dist/crypto/WasmCrypto.js.map +1 -1
  45. package/dist/crypto/WasmCryptoEdge.d.ts +1 -0
  46. package/dist/crypto/WasmCryptoEdge.d.ts.map +1 -1
  47. package/dist/crypto/WasmCryptoEdge.js +4 -1
  48. package/dist/crypto/WasmCryptoEdge.js.map +1 -1
  49. package/dist/crypto/crypto.d.ts +3 -3
  50. package/dist/crypto/crypto.d.ts.map +1 -1
  51. package/dist/crypto/crypto.js +6 -1
  52. package/dist/crypto/crypto.js.map +1 -1
  53. package/dist/exports.d.ts +5 -5
  54. package/dist/exports.d.ts.map +1 -1
  55. package/dist/exports.js +4 -3
  56. package/dist/exports.js.map +1 -1
  57. package/dist/ids.d.ts +4 -1
  58. package/dist/ids.d.ts.map +1 -1
  59. package/dist/ids.js +4 -0
  60. package/dist/ids.js.map +1 -1
  61. package/dist/knownState.d.ts +2 -0
  62. package/dist/knownState.d.ts.map +1 -1
  63. package/dist/localNode.d.ts +12 -0
  64. package/dist/localNode.d.ts.map +1 -1
  65. package/dist/localNode.js +14 -0
  66. package/dist/localNode.js.map +1 -1
  67. package/dist/platformUtils.d.ts +3 -0
  68. package/dist/platformUtils.d.ts.map +1 -0
  69. package/dist/platformUtils.js +24 -0
  70. package/dist/platformUtils.js.map +1 -0
  71. package/dist/queue/LinkedList.d.ts +9 -3
  72. package/dist/queue/LinkedList.d.ts.map +1 -1
  73. package/dist/queue/LinkedList.js +30 -1
  74. package/dist/queue/LinkedList.js.map +1 -1
  75. package/dist/queue/OutgoingLoadQueue.d.ts +95 -0
  76. package/dist/queue/OutgoingLoadQueue.d.ts.map +1 -0
  77. package/dist/queue/OutgoingLoadQueue.js +240 -0
  78. package/dist/queue/OutgoingLoadQueue.js.map +1 -0
  79. package/dist/storage/DeletedCoValuesEraserScheduler.d.ts +30 -0
  80. package/dist/storage/DeletedCoValuesEraserScheduler.d.ts.map +1 -0
  81. package/dist/storage/DeletedCoValuesEraserScheduler.js +84 -0
  82. package/dist/storage/DeletedCoValuesEraserScheduler.js.map +1 -0
  83. package/dist/storage/sqlite/client.d.ts +3 -0
  84. package/dist/storage/sqlite/client.d.ts.map +1 -1
  85. package/dist/storage/sqlite/client.js +44 -0
  86. package/dist/storage/sqlite/client.js.map +1 -1
  87. package/dist/storage/sqlite/sqliteMigrations.d.ts.map +1 -1
  88. package/dist/storage/sqlite/sqliteMigrations.js +7 -0
  89. package/dist/storage/sqlite/sqliteMigrations.js.map +1 -1
  90. package/dist/storage/sqliteAsync/client.d.ts +3 -0
  91. package/dist/storage/sqliteAsync/client.d.ts.map +1 -1
  92. package/dist/storage/sqliteAsync/client.js +42 -0
  93. package/dist/storage/sqliteAsync/client.js.map +1 -1
  94. package/dist/storage/storageAsync.d.ts +7 -0
  95. package/dist/storage/storageAsync.d.ts.map +1 -1
  96. package/dist/storage/storageAsync.js +48 -0
  97. package/dist/storage/storageAsync.js.map +1 -1
  98. package/dist/storage/storageSync.d.ts +6 -0
  99. package/dist/storage/storageSync.d.ts.map +1 -1
  100. package/dist/storage/storageSync.js +42 -0
  101. package/dist/storage/storageSync.js.map +1 -1
  102. package/dist/storage/types.d.ts +59 -0
  103. package/dist/storage/types.d.ts.map +1 -1
  104. package/dist/storage/types.js +12 -1
  105. package/dist/storage/types.js.map +1 -1
  106. package/dist/sync.d.ts.map +1 -1
  107. package/dist/sync.js +66 -43
  108. package/dist/sync.js.map +1 -1
  109. package/dist/tests/DeletedCoValuesEraserScheduler.test.d.ts +2 -0
  110. package/dist/tests/DeletedCoValuesEraserScheduler.test.d.ts.map +1 -0
  111. package/dist/tests/DeletedCoValuesEraserScheduler.test.js +149 -0
  112. package/dist/tests/DeletedCoValuesEraserScheduler.test.js.map +1 -0
  113. package/dist/tests/GarbageCollector.test.js +5 -6
  114. package/dist/tests/GarbageCollector.test.js.map +1 -1
  115. package/dist/tests/LinkedList.test.js +90 -0
  116. package/dist/tests/LinkedList.test.js.map +1 -1
  117. package/dist/tests/OutgoingLoadQueue.test.d.ts +2 -0
  118. package/dist/tests/OutgoingLoadQueue.test.d.ts.map +1 -0
  119. package/dist/tests/OutgoingLoadQueue.test.js +814 -0
  120. package/dist/tests/OutgoingLoadQueue.test.js.map +1 -0
  121. package/dist/tests/StorageApiAsync.test.js +484 -152
  122. package/dist/tests/StorageApiAsync.test.js.map +1 -1
  123. package/dist/tests/StorageApiSync.test.js +505 -136
  124. package/dist/tests/StorageApiSync.test.js.map +1 -1
  125. package/dist/tests/WasmCrypto.test.js +6 -3
  126. package/dist/tests/WasmCrypto.test.js.map +1 -1
  127. package/dist/tests/coValueCore.loadFromStorage.test.js +3 -0
  128. package/dist/tests/coValueCore.loadFromStorage.test.js.map +1 -1
  129. package/dist/tests/coValueCore.test.js +34 -13
  130. package/dist/tests/coValueCore.test.js.map +1 -1
  131. package/dist/tests/coreWasm.test.js +127 -4
  132. package/dist/tests/coreWasm.test.js.map +1 -1
  133. package/dist/tests/crypto.test.js +89 -93
  134. package/dist/tests/crypto.test.js.map +1 -1
  135. package/dist/tests/deleteCoValue.test.d.ts +2 -0
  136. package/dist/tests/deleteCoValue.test.d.ts.map +1 -0
  137. package/dist/tests/deleteCoValue.test.js +313 -0
  138. package/dist/tests/deleteCoValue.test.js.map +1 -0
  139. package/dist/tests/group.removeMember.test.js +18 -30
  140. package/dist/tests/group.removeMember.test.js.map +1 -1
  141. package/dist/tests/knownState.lazyLoading.test.js +3 -0
  142. package/dist/tests/knownState.lazyLoading.test.js.map +1 -1
  143. package/dist/tests/sync.concurrentLoad.test.d.ts +2 -0
  144. package/dist/tests/sync.concurrentLoad.test.d.ts.map +1 -0
  145. package/dist/tests/sync.concurrentLoad.test.js +481 -0
  146. package/dist/tests/sync.concurrentLoad.test.js.map +1 -0
  147. package/dist/tests/sync.deleted.test.d.ts +2 -0
  148. package/dist/tests/sync.deleted.test.d.ts.map +1 -0
  149. package/dist/tests/sync.deleted.test.js +214 -0
  150. package/dist/tests/sync.deleted.test.js.map +1 -0
  151. package/dist/tests/sync.mesh.test.js +3 -2
  152. package/dist/tests/sync.mesh.test.js.map +1 -1
  153. package/dist/tests/sync.storage.test.js +4 -3
  154. package/dist/tests/sync.storage.test.js.map +1 -1
  155. package/dist/tests/sync.test.js +3 -2
  156. package/dist/tests/sync.test.js.map +1 -1
  157. package/dist/tests/testStorage.d.ts +3 -0
  158. package/dist/tests/testStorage.d.ts.map +1 -1
  159. package/dist/tests/testStorage.js +17 -1
  160. package/dist/tests/testStorage.js.map +1 -1
  161. package/dist/tests/testUtils.d.ts +7 -3
  162. package/dist/tests/testUtils.d.ts.map +1 -1
  163. package/dist/tests/testUtils.js +19 -4
  164. package/dist/tests/testUtils.js.map +1 -1
  165. package/package.json +6 -16
  166. package/src/PeerState.ts +26 -3
  167. package/src/coValueContentMessage.ts +0 -14
  168. package/src/coValueCore/SessionMap.ts +43 -1
  169. package/src/coValueCore/coValueCore.ts +415 -27
  170. package/src/coValueCore/verifiedState.ts +26 -3
  171. package/src/coValues/coList.ts +9 -3
  172. package/src/coValues/group.ts +5 -6
  173. package/src/config.ts +4 -13
  174. package/src/crypto/NapiCrypto.ts +29 -13
  175. package/src/crypto/RNCrypto.ts +29 -11
  176. package/src/crypto/WasmCrypto.ts +67 -20
  177. package/src/crypto/WasmCryptoEdge.ts +5 -1
  178. package/src/crypto/crypto.ts +16 -4
  179. package/src/exports.ts +4 -2
  180. package/src/ids.ts +11 -1
  181. package/src/localNode.ts +15 -0
  182. package/src/platformUtils.ts +26 -0
  183. package/src/queue/LinkedList.ts +34 -4
  184. package/src/queue/OutgoingLoadQueue.ts +307 -0
  185. package/src/storage/DeletedCoValuesEraserScheduler.ts +124 -0
  186. package/src/storage/sqlite/client.ts +77 -0
  187. package/src/storage/sqlite/sqliteMigrations.ts +7 -0
  188. package/src/storage/sqliteAsync/client.ts +75 -0
  189. package/src/storage/storageAsync.ts +62 -0
  190. package/src/storage/storageSync.ts +58 -0
  191. package/src/storage/types.ts +69 -0
  192. package/src/sync.ts +78 -46
  193. package/src/tests/DeletedCoValuesEraserScheduler.test.ts +185 -0
  194. package/src/tests/GarbageCollector.test.ts +6 -10
  195. package/src/tests/LinkedList.test.ts +111 -0
  196. package/src/tests/OutgoingLoadQueue.test.ts +1129 -0
  197. package/src/tests/StorageApiAsync.test.ts +572 -162
  198. package/src/tests/StorageApiSync.test.ts +580 -143
  199. package/src/tests/WasmCrypto.test.ts +8 -3
  200. package/src/tests/coValueCore.loadFromStorage.test.ts +6 -0
  201. package/src/tests/coValueCore.test.ts +49 -14
  202. package/src/tests/coreWasm.test.ts +319 -10
  203. package/src/tests/crypto.test.ts +141 -150
  204. package/src/tests/deleteCoValue.test.ts +528 -0
  205. package/src/tests/group.removeMember.test.ts +35 -35
  206. package/src/tests/knownState.lazyLoading.test.ts +6 -0
  207. package/src/tests/sync.concurrentLoad.test.ts +650 -0
  208. package/src/tests/sync.deleted.test.ts +294 -0
  209. package/src/tests/sync.mesh.test.ts +5 -2
  210. package/src/tests/sync.storage.test.ts +6 -3
  211. package/src/tests/sync.test.ts +5 -2
  212. package/src/tests/testStorage.ts +31 -2
  213. package/src/tests/testUtils.ts +31 -10
  214. package/dist/crypto/PureJSCrypto.d.ts +0 -77
  215. package/dist/crypto/PureJSCrypto.d.ts.map +0 -1
  216. package/dist/crypto/PureJSCrypto.js +0 -236
  217. package/dist/crypto/PureJSCrypto.js.map +0 -1
  218. package/dist/tests/PureJSCrypto.test.d.ts +0 -2
  219. package/dist/tests/PureJSCrypto.test.d.ts.map +0 -1
  220. package/dist/tests/PureJSCrypto.test.js +0 -145
  221. package/dist/tests/PureJSCrypto.test.js.map +0 -1
  222. package/src/crypto/PureJSCrypto.ts +0 -429
  223. package/src/tests/PureJSCrypto.test.ts +0 -217
@@ -0,0 +1,30 @@
1
+ export type DeletedCoValuesEraserSchedulerRunResult = {
2
+ hasMore: boolean;
3
+ };
4
+ export type DeletedCoValuesEraserSchedulerOpts = {
5
+ throttleMs: number;
6
+ startupDelayMs: number;
7
+ followUpDelayMs: number;
8
+ };
9
+ export declare const DEFAULT_DELETE_SCHEDULE_OPTS: {
10
+ throttleMs: number;
11
+ startupDelayMs: number;
12
+ followUpDelayMs: number;
13
+ };
14
+ export declare class DeletedCoValuesEraserScheduler {
15
+ private readonly runCallback;
16
+ private readonly opts;
17
+ private state;
18
+ private isDisposed;
19
+ private scheduledTimeout;
20
+ constructor({ run, opts, }: {
21
+ run: () => Promise<DeletedCoValuesEraserSchedulerRunResult>;
22
+ opts?: DeletedCoValuesEraserSchedulerOpts;
23
+ });
24
+ scheduleStartupDrain(): void;
25
+ onEnqueueDeletedCoValue(): void;
26
+ dispose(): void;
27
+ private scheduleTimer;
28
+ private run;
29
+ }
30
+ //# sourceMappingURL=DeletedCoValuesEraserScheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeletedCoValuesEraserScheduler.d.ts","sourceRoot":"","sources":["../../src/storage/DeletedCoValuesEraserScheduler.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,uCAAuC,GAAG;IACpD,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAUF,eAAO,MAAM,4BAA4B;;;;CAIK,CAAC;AAE/C,qBAAa,8BAA8B;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyD;IACrF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqC;IAE1D,OAAO,CAAC,KAAK,CAA0B;IAEvC,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,gBAAgB,CAA4C;gBAExD,EACV,GAAG,EACH,IAAI,GACL,EAAE;QACD,GAAG,EAAE,MAAM,OAAO,CAAC,uCAAuC,CAAC,CAAC;QAC5D,IAAI,CAAC,EAAE,kCAAkC,CAAC;KAC3C;IAKD,oBAAoB;IASpB,uBAAuB;IAWvB,OAAO;IAQP,OAAO,CAAC,aAAa;YAcP,GAAG;CAgClB"}
@@ -0,0 +1,84 @@
1
+ import { logger } from "../logger.js";
2
+ export const DEFAULT_DELETE_SCHEDULE_OPTS = {
3
+ throttleMs: 60000,
4
+ startupDelayMs: 1000,
5
+ followUpDelayMs: 1000,
6
+ };
7
+ export class DeletedCoValuesEraserScheduler {
8
+ isDisposed() {
9
+ return this.state === "disposed";
10
+ }
11
+ constructor({ run, opts, }) {
12
+ this.state = "idle";
13
+ this.runCallback = run;
14
+ this.opts = opts || DEFAULT_DELETE_SCHEDULE_OPTS;
15
+ }
16
+ scheduleStartupDrain() {
17
+ if (this.isDisposed())
18
+ return;
19
+ // Only schedule startup drain if nothing is already scheduled/running.
20
+ if (this.state !== "idle")
21
+ return;
22
+ this.scheduleTimer("startup_scheduled", this.opts.startupDelayMs);
23
+ }
24
+ onEnqueueDeletedCoValue() {
25
+ if (this.isDisposed())
26
+ return;
27
+ // While we're already draining (or have a follow-up scheduled), ignore enqueue
28
+ // to avoid overlapping phases. The active drain loop will pick up new work.
29
+ if (this.state !== "idle")
30
+ return;
31
+ // Only idle reaches here.
32
+ this.scheduleTimer("throttle_scheduled", this.opts.throttleMs);
33
+ }
34
+ dispose() {
35
+ if (this.isDisposed())
36
+ return;
37
+ this.state = "disposed";
38
+ if (this.scheduledTimeout)
39
+ clearTimeout(this.scheduledTimeout);
40
+ this.scheduledTimeout = undefined;
41
+ }
42
+ scheduleTimer(state, delayMs) {
43
+ if (this.isDisposed())
44
+ return;
45
+ if (this.scheduledTimeout)
46
+ return;
47
+ this.state = state;
48
+ this.scheduledTimeout = setTimeout(() => {
49
+ this.scheduledTimeout = undefined;
50
+ void this.run();
51
+ }, delayMs);
52
+ }
53
+ async run() {
54
+ if (this.isDisposed())
55
+ return;
56
+ // Clear any pre-run scheduled state and enter running state.
57
+ this.state = "running";
58
+ let result;
59
+ try {
60
+ result = await this.runCallback();
61
+ }
62
+ catch (error) {
63
+ logger.error("Error running deleted co values eraser scheduler", {
64
+ err: error,
65
+ });
66
+ // If the run callback fails, recover to idle so future enqueues/startup drains
67
+ // can retry instead of getting stuck in "running".
68
+ if (!this.isDisposed()) {
69
+ this.state = "idle";
70
+ }
71
+ return;
72
+ }
73
+ if (this.isDisposed())
74
+ return;
75
+ if (result.hasMore) {
76
+ // One follow-up phase at a time. Further enqueues while follow-up is scheduled
77
+ // are ignored.
78
+ this.scheduleTimer("followup_scheduled", this.opts.followUpDelayMs);
79
+ return;
80
+ }
81
+ this.state = "idle";
82
+ }
83
+ }
84
+ //# sourceMappingURL=DeletedCoValuesEraserScheduler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeletedCoValuesEraserScheduler.js","sourceRoot":"","sources":["../../src/storage/DeletedCoValuesEraserScheduler.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,9 @@ export declare class SQLiteClient implements DBClientInterfaceSync, DBTransactio
25
25
  getSignatures(sessionRowId: number, firstNewTxIdx: number): SignatureAfterRow[];
26
26
  getCoValueRowID(id: RawCoID): number | undefined;
27
27
  upsertCoValue(id: RawCoID, header?: CoValueHeader): number | undefined;
28
+ markCoValueAsDeleted(id: RawCoID): void;
29
+ eraseCoValueButKeepTombstone(coValueId: RawCoID): void;
30
+ getAllCoValuesWaitingForDelete(): RawCoID[];
28
31
  addSessionUpdate({ sessionUpdate }: {
29
32
  sessionUpdate: SessionRow;
30
33
  }): number;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/storage/sqlite/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACZ,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,KAAK,EACV,qBAAqB,EACrB,0BAA0B,EAC1B,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,UAE7C;AAED,qBAAa,YACX,YAAW,qBAAqB,EAAE,0BAA0B;IAE5D,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAuB;gBAE9B,EAAE,EAAE,oBAAoB;IAIpC,UAAU,CAAC,SAAS,EAAE,OAAO,GAAG,gBAAgB,GAAG,SAAS;IA0B5D,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAO5D,uBAAuB,CACrB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,SAAS,GACnB,gBAAgB,GAAG,SAAS;IAO/B,0BAA0B,CACxB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,cAAc,EAAE;IAiBnB,aAAa,CACX,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GACpB,iBAAiB,EAAE;IAOtB,eAAe,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS;IAQhD,aAAa,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS;IAmBtE,gBAAgB,CAAC,EAAE,aAAa,EAAE,EAAE;QAAE,aAAa,EAAE,UAAU,CAAA;KAAE,GAAG,MAAM;IAqB1E,cAAc,CACZ,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,WAAW;IAS7B,iBAAiB,CAAC,EAChB,YAAY,EACZ,GAAG,EACH,SAAS,GACV,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,SAAS,CAAC;KACtB;IAOD,WAAW,CAAC,kBAAkB,EAAE,CAAC,EAAE,EAAE,0BAA0B,KAAK,OAAO;IAK3E,qBAAqB,IAAI,OAAO,EAAE;IAQlC,sBAAsB,CACpB,OAAO,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,EAAE,GAC1D,IAAI;IAgBP,qBAAqB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAIxC,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;CA6BvE"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/storage/sqlite/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACZ,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,KAAK,EACV,qBAAqB,EACrB,0BAA0B,EAC1B,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACf,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAMF,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,UAE7C;AAED,qBAAa,YACX,YAAW,qBAAqB,EAAE,0BAA0B;IAE5D,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAuB;gBAE9B,EAAE,EAAE,oBAAoB;IAIpC,UAAU,CAAC,SAAS,EAAE,OAAO,GAAG,gBAAgB,GAAG,SAAS;IA0B5D,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAO5D,uBAAuB,CACrB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,SAAS,GACnB,gBAAgB,GAAG,SAAS;IAO/B,0BAA0B,CACxB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,cAAc,EAAE;IAiBnB,aAAa,CACX,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GACpB,iBAAiB,EAAE;IAOtB,eAAe,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS;IAQhD,aAAa,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS;IAmBtE,oBAAoB,CAAC,EAAE,EAAE,OAAO;IAShC,4BAA4B,CAAC,SAAS,EAAE,OAAO;IAoD/C,8BAA8B,IAAI,OAAO,EAAE;IAW3C,gBAAgB,CAAC,EAAE,aAAa,EAAE,EAAE;QAAE,aAAa,EAAE,UAAU,CAAA;KAAE,GAAG,MAAM;IAqB1E,cAAc,CACZ,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,WAAW;IAS7B,iBAAiB,CAAC,EAChB,YAAY,EACZ,GAAG,EACH,SAAS,GACV,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,SAAS,CAAC;KACtB;IAOD,WAAW,CAAC,kBAAkB,EAAE,CAAC,EAAE,EAAE,0BAA0B,KAAK,OAAO;IAK3E,qBAAqB,IAAI,OAAO,EAAE;IAQlC,sBAAsB,CACpB,OAAO,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,EAAE,GAC1D,IAAI;IAgBP,qBAAqB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAIxC,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;CA6BvE"}
@@ -1,4 +1,5 @@
1
1
  import { logger } from "../../logger.js";
2
+ import { DeletedCoValueDeletionStatus } from "../types.js";
2
3
  export function getErrorMessage(error) {
3
4
  return error instanceof Error ? error.message : "Unknown error";
4
5
  }
@@ -65,6 +66,49 @@ export class SQLiteClient {
65
66
  }
66
67
  return result.rowID;
67
68
  }
69
+ markCoValueAsDeleted(id) {
70
+ // Work queue entry. Table only stores the coValueID.
71
+ // Idempotent by design.
72
+ this.db.run(`INSERT INTO deletedCoValues (coValueID) VALUES (?) ON CONFLICT(coValueID) DO NOTHING`, [id]);
73
+ }
74
+ eraseCoValueButKeepTombstone(coValueId) {
75
+ const coValueRow = this.db.get("SELECT rowID FROM coValues WHERE id = ?", [coValueId]);
76
+ if (!coValueRow) {
77
+ logger.warn(`CoValue ${coValueId} not found, skipping deletion`);
78
+ return;
79
+ }
80
+ this.transaction(() => {
81
+ this.db.run(`DELETE FROM transactions
82
+ WHERE ses IN (
83
+ SELECT rowID FROM sessions
84
+ WHERE coValue = ?
85
+ AND sessionID NOT LIKE '%$'
86
+ )`, [coValueRow.rowID]);
87
+ this.db.run(`DELETE FROM signatureAfter
88
+ WHERE ses IN (
89
+ SELECT rowID FROM sessions
90
+ WHERE coValue = ?
91
+ AND sessionID NOT LIKE '%$'
92
+ )`, [coValueRow.rowID]);
93
+ this.db.run(`DELETE FROM sessions
94
+ WHERE coValue = ?
95
+ AND sessionID NOT LIKE '%$'`, [coValueRow.rowID]);
96
+ // Mark the delete as done
97
+ this.db.run(`INSERT INTO deletedCoValues (coValueID, status) VALUES (?, ?)
98
+ ON CONFLICT(coValueID) DO UPDATE SET status=?`, [
99
+ coValueId,
100
+ DeletedCoValueDeletionStatus.Done,
101
+ DeletedCoValueDeletionStatus.Done,
102
+ ]);
103
+ });
104
+ }
105
+ getAllCoValuesWaitingForDelete() {
106
+ return this.db
107
+ .query(`SELECT coValueID as id
108
+ FROM deletedCoValues
109
+ WHERE status = ?`, [DeletedCoValueDeletionStatus.Pending])
110
+ .map((r) => r.id);
111
+ }
68
112
  addSessionUpdate({ sessionUpdate }) {
69
113
  const result = this.db.get(`INSERT INTO sessions (coValue, sessionID, lastIdx, lastSignature, bytesSinceLastSignature) VALUES (?, ?, ?, ?, ?)
70
114
  ON CONFLICT(coValue, sessionID) DO UPDATE SET lastIdx=excluded.lastIdx, lastSignature=excluded.lastSignature, bytesSinceLastSignature=excluded.bytesSinceLastSignature
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/storage/sqlite/client.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAuBzC,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;AAClE,CAAC;AAED,MAAM,OAAO,YAAY;IAKvB,YAAY,EAAwB;QAClC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED,UAAU,CAAC,SAAkB;QAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAC5B,qCAAqC,EACrC,CAAC,SAAS,CAAC,CACZ,CAAC;QAEF,IAAI,CAAC,UAAU;YAAE,OAAO;QAExB,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,MAAM;gBACtC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAkB,CAAC;YAElD,OAAO;gBACL,GAAG,UAAU;gBACb,MAAM,EAAE,YAAY;aACrB,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,WAAW,GAAG,UAAU,EAAE,MAAM,IAAI,EAAE,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,2BAA2B,WAAW,EAAE,EAAE;gBACpD,EAAE,EAAE,SAAS;gBACb,GAAG,EAAE,CAAC;aACP,CAAC,CAAC;YACH,OAAO;QACT,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,YAAoB;QACrC,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAClB,0CAA0C,EAC1C,CAAC,YAAY,CAAC,CACO,CAAC;IAC1B,CAAC;IAED,uBAAuB,CACrB,YAAoB,EACpB,SAAoB;QAEpB,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAChB,4DAA4D,EAC5D,CAAC,YAAY,EAAE,SAAS,CAAC,CAC1B,CAAC;IACJ,CAAC;IAED,0BAA0B,CACxB,YAAoB,EACpB,OAAe,EACf,KAAa;QAEb,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CACvB,oEAAoE,EACpE,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,CACR,CAAC;QAEzB,IAAI,CAAC;YACH,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;gBAClC,GAAG,cAAc;gBACjB,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAgB;aACjD,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACvD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,aAAa,CACX,YAAoB,EACpB,aAAqB;QAErB,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAClB,yDAAyD,EACzD,CAAC,YAAY,EAAE,aAAa,CAAC,CACP,CAAC;IAC3B,CAAC;IAED,eAAe,CAAC,EAAW;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CACrB,yCAAyC,EACzC,CAAC,EAAE,CAAC,CACL,CAAC;QACF,OAAO,GAAG,EAAE,KAAK,CAAC;IACpB,CAAC;IAED,aAAa,CAAC,EAAW,EAAE,MAAsB;QAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CACxB;;uBAEiB,EACjB,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAC7B,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,gBAAgB,CAAC,EAAE,aAAa,EAAiC;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CACxB;;4CAEsC,EACtC;YACE,aAAa,CAAC,OAAO;YACrB,aAAa,CAAC,SAAS;YACvB,aAAa,CAAC,OAAO;YACrB,aAAa,CAAC,aAAa;YAC3B,aAAa,CAAC,uBAAuB;SACtC,CACF,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,cAAc,CACZ,YAAoB,EACpB,OAAe,EACf,cAA2B;QAE3B,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,0DAA0D,EAAE;YACtE,YAAY;YACZ,OAAO;YACP,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB,CAAC,EAChB,YAAY,EACZ,GAAG,EACH,SAAS,GAKV;QACC,IAAI,CAAC,EAAE,CAAC,GAAG,CACT,mEAAmE,EACnE,CAAC,YAAY,EAAE,GAAG,EAAE,SAAS,CAAC,CAC/B,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,kBAA+D;QACzE,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,qBAAqB;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CACxB,oDAAoD,EACpD,EAAE,CAC2B,CAAC;QAChC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC5C,CAAC;IAED,sBAAsB,CACpB,OAA2D;QAE3D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,IAAI,CAAC,EAAE,CAAC,GAAG,CACT,qEAAqE,EACrE,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAC3B,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,EAAE,CAAC,GAAG,CACT,+EAA+E,EAC/E,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAC3B,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,qBAAqB,CAAC,EAAW;QAC/B,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,qDAAqD,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,oBAAoB,CAAC,SAAiB;QACpC,oCAAoC;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAC5B,yCAAyC,EACzC,CAAC,SAAS,CAAC,CACZ,CAAC;QAEF,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,wDAAwD;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAC5B,2DAA2D,EAC3D,CAAC,UAAU,CAAC,KAAK,CAAC,CACnB,CAAC;QAEF,MAAM,UAAU,GAAsB;YACpC,EAAE,EAAE,SAAoB;YACxB,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;QAC3D,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/storage/sqlite/client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sqliteMigrations.d.ts","sourceRoot":"","sources":["../../../src/storage/sqlite/sqliteMigrations.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CA0C/C,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,CAMtE"}
1
+ {"version":3,"file":"sqliteMigrations.d.ts","sourceRoot":"","sources":["../../../src/storage/sqlite/sqliteMigrations.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAiD/C,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,CAMtE"}
@@ -40,6 +40,13 @@ export const migrations = {
40
40
  );`,
41
41
  "CREATE INDEX IF NOT EXISTS idx_unsynced_covalues_co_value_id ON unsynced_covalues(co_value_id);",
42
42
  ],
43
+ 5: [
44
+ `CREATE TABLE IF NOT EXISTS deletedCoValues (
45
+ coValueID TEXT PRIMARY KEY,
46
+ status INTEGER NOT NULL DEFAULT 0
47
+ ) WITHOUT ROWID;`,
48
+ "CREATE INDEX IF NOT EXISTS deletedCoValuesByStatus ON deletedCoValues (status);",
49
+ ],
43
50
  };
44
51
  export function getSQLiteMigrationQueries(version) {
45
52
  return Object.keys(migrations)
@@ -1 +1 @@
1
- {"version":3,"file":"sqliteMigrations.js","sourceRoot":"","sources":["../../../src/storage/sqlite/sqliteMigrations.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAA6B;IAClD,CAAC,EAAE;QACD;;;;;qBAKiB;QACjB;;;;;;;OAOG;QACH,qEAAqE;QACrE;;;;OAIG;QACH,2DAA2D;KAC5D;IACD,CAAC,EAAE;QACD;;;;;qBAKiB;QACjB,kEAAkE;KACnE;IACD,CAAC,EAAE;QACD;;;;;OAKG;QACH,iGAAiG;KAClG;CACF,CAAC;AAOF,MAAM,UAAU,yBAAyB,CAAC,OAAe;IACvD,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;SAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SAClC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC;SAC1B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;SACrB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"sqliteMigrations.js","sourceRoot":"","sources":["../../../src/storage/sqlite/sqliteMigrations.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAA6B;IAClD,CAAC,EAAE;QACD;;;;;qBAKiB;QACjB;;;;;;;OAOG;QACH,qEAAqE;QACrE;;;;OAIG;QACH,2DAA2D;KAC5D;IACD,CAAC,EAAE;QACD;;;;;qBAKiB;QACjB,kEAAkE;KACnE;IACD,CAAC,EAAE;QACD;;;;;OAKG;QACH,iGAAiG;KAClG;IACD,CAAC,EAAE;QACD;;;qBAGiB;QACjB,iFAAiF;KAClF;CACF,CAAC;AAOF,MAAM,UAAU,yBAAyB,CAAC,OAAe;IACvD,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;SAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SAClC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC;SAC1B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;SACrB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAChE,CAAC"}
@@ -25,6 +25,9 @@ export declare class SQLiteClientAsync implements DBClientInterfaceAsync, DBTran
25
25
  getSignatures(sessionRowId: number, firstNewTxIdx: number): Promise<SignatureAfterRow[]>;
26
26
  getCoValueRowID(id: RawCoID): Promise<number | undefined>;
27
27
  upsertCoValue(id: RawCoID, header?: CoValueHeader): Promise<number | undefined>;
28
+ markCoValueAsDeleted(id: RawCoID): Promise<void>;
29
+ eraseCoValueButKeepTombstone(coValueId: RawCoID): Promise<void>;
30
+ getAllCoValuesWaitingForDelete(): Promise<RawCoID[]>;
28
31
  addSessionUpdate({ sessionUpdate, }: {
29
32
  sessionUpdate: SessionRow;
30
33
  }): Promise<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/storage/sqliteAsync/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/storage/sqliteAsync/client.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { logger } from "../../logger.js";
2
+ import { DeletedCoValueDeletionStatus } from "../types.js";
2
3
  export function getErrorMessage(error) {
3
4
  return error instanceof Error ? error.message : "Unknown error";
4
5
  }
@@ -65,6 +66,47 @@ export class SQLiteClientAsync {
65
66
  }
66
67
  return result.rowID;
67
68
  }
69
+ async markCoValueAsDeleted(id) {
70
+ // Work queue entry. Table only stores the coValueID.
71
+ // Idempotent by design.
72
+ await this.db.run(`INSERT INTO deletedCoValues (coValueID) VALUES (?) ON CONFLICT(coValueID) DO NOTHING`, [id]);
73
+ }
74
+ async eraseCoValueButKeepTombstone(coValueId) {
75
+ const coValueRow = await this.db.get("SELECT * FROM coValues WHERE id = ?", [coValueId]);
76
+ if (!coValueRow) {
77
+ logger.warn(`CoValue ${coValueId} not found, skipping deletion`);
78
+ return;
79
+ }
80
+ await this.transaction(async () => {
81
+ await this.db.run(`DELETE FROM transactions
82
+ WHERE ses IN (
83
+ SELECT rowID FROM sessions
84
+ WHERE coValue = ?
85
+ AND sessionID NOT LIKE '%$'
86
+ )`, [coValueRow.rowID]);
87
+ await this.db.run(`DELETE FROM signatureAfter
88
+ WHERE ses IN (
89
+ SELECT rowID FROM sessions
90
+ WHERE coValue = ?
91
+ AND sessionID NOT LIKE '%$'
92
+ )`, [coValueRow.rowID]);
93
+ await this.db.run(`DELETE FROM sessions
94
+ WHERE coValue = ?
95
+ AND sessionID NOT LIKE '%$'`, [coValueRow.rowID]);
96
+ await this.db.run(`INSERT INTO deletedCoValues (coValueID, status) VALUES (?, ?)
97
+ ON CONFLICT(coValueID) DO UPDATE SET status=?`, [
98
+ coValueId,
99
+ DeletedCoValueDeletionStatus.Done,
100
+ DeletedCoValueDeletionStatus.Done,
101
+ ]);
102
+ });
103
+ }
104
+ async getAllCoValuesWaitingForDelete() {
105
+ const rows = await this.db.query(`SELECT coValueID as id
106
+ FROM deletedCoValues
107
+ WHERE status = ?`, [DeletedCoValueDeletionStatus.Pending]);
108
+ return rows.map((r) => r.id);
109
+ }
68
110
  async addSessionUpdate({ sessionUpdate, }) {
69
111
  const result = await this.db.get(`INSERT INTO sessions (coValue, sessionID, lastIdx, lastSignature, bytesSinceLastSignature) VALUES (?, ?, ?, ?, ?)
70
112
  ON CONFLICT(coValue, sessionID) DO UPDATE SET lastIdx=excluded.lastIdx, lastSignature=excluded.lastSignature, bytesSinceLastSignature=excluded.bytesSinceLastSignature
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/storage/sqliteAsync/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/storage/sqliteAsync/client.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,8 @@ import { StorageKnownState } from "./knownState.js";
6
6
  import type { CorrectionCallback, DBClientInterfaceAsync } from "./types.js";
7
7
  export declare class StorageApiAsync implements StorageAPI {
8
8
  private readonly dbClient;
9
+ private deletedCoValuesEraserScheduler;
10
+ private eraserController;
9
11
  /**
10
12
  * Keeps track of CoValues that are in memory, to avoid reloading them from storage
11
13
  * when it isn't necessary
@@ -21,6 +23,8 @@ export declare class StorageApiAsync implements StorageAPI {
21
23
  private pushContentWithDependencies;
22
24
  storeQueue: StoreQueue;
23
25
  store(msg: NewContentMessage, correctionCallback: CorrectionCallback): Promise<void>;
26
+ private interruptEraser;
27
+ eraseAllDeletedCoValues(): Promise<void>;
24
28
  /**
25
29
  * This function is called when the storage lacks the information required to store the incoming content.
26
30
  *
@@ -31,6 +35,9 @@ export declare class StorageApiAsync implements StorageAPI {
31
35
  private handleCorrection;
32
36
  private storeSingle;
33
37
  private putNewTxs;
38
+ deletedValues: Set<`co_z${string}`>;
39
+ markDeleteAsValid(id: RawCoID): void;
40
+ enableDeletedCoValuesErasure(): void;
34
41
  waitForSync(id: string, coValue: CoValueCore): Promise<void>;
35
42
  trackCoValuesSyncState(updates: {
36
43
  id: RawCoID;
@@ -1 +1 @@
1
- {"version":3,"file":"storageAsync.d.ts","sourceRoot":"","sources":["../../src/storage/storageAsync.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,OAAO,EAEZ,KAAK,UAAU,EAEhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EACL,iBAAiB,EAGlB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAMpD,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EAKvB,MAAM,YAAY,CAAC;AAEpB,qBAAa,eAAgB,YAAW,UAAU;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAElD;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAAsB;IAG9C,OAAO,CAAC,sBAAsB,CAG1B;gBAEQ,QAAQ,EAAE,sBAAsB;IAI5C,WAAW,oBAA2B;IAEtC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB;IAI5C,cAAc,CACZ,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,CAAC,UAAU,EAAE,iBAAiB,GAAG,SAAS,KAAK,IAAI,GAC5D,IAAI;IA0CD,IAAI,CACR,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,EAC3C,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;IAK1B,WAAW,CACf,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,EAC3C,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;YAoHlB,2BAA2B;IA6BzC,UAAU,aAAoB;IAExB,KAAK,CAAC,GAAG,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB;IAY1E;;;;;;OAMG;YACW,gBAAgB;YA+BhB,WAAW;YAsEX,SAAS;IAkEvB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW;IAI5C,sBAAsB,CACpB,OAAO,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,EAAE,EAC3D,IAAI,CAAC,EAAE,MAAM,IAAI,GAChB,IAAI;IAIP,qBAAqB,CACnB,QAAQ,EAAE,CAAC,kBAAkB,EAAE,OAAO,EAAE,KAAK,IAAI,GAChD,IAAI;IAIP,qBAAqB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAIxC,kBAAkB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAIrC,KAAK;CAIN"}
1
+ {"version":3,"file":"storageAsync.d.ts","sourceRoot":"","sources":["../../src/storage/storageAsync.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,OAAO,EAEZ,KAAK,UAAU,EAEhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EACL,iBAAiB,EAGlB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAOpD,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EAKvB,MAAM,YAAY,CAAC;AAGpB,qBAAa,eAAgB,YAAW,UAAU;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAElD,OAAO,CAAC,8BAA8B,CAExB;IACd,OAAO,CAAC,gBAAgB,CAA8B;IACtD;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAAsB;IAG9C,OAAO,CAAC,sBAAsB,CAG1B;gBAEQ,QAAQ,EAAE,sBAAsB;IAI5C,WAAW,oBAA2B;IAEtC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB;IAI5C,cAAc,CACZ,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,CAAC,UAAU,EAAE,iBAAiB,GAAG,SAAS,KAAK,IAAI,GAC5D,IAAI;IA0CD,IAAI,CACR,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,EAC3C,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;IAK1B,WAAW,CACf,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,EAC3C,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;YAqHlB,2BAA2B;IA6BzC,UAAU,aAAoB;IAExB,KAAK,CAAC,GAAG,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB;IAa1E,OAAO,CAAC,eAAe;IASjB,uBAAuB;IAe7B;;;;;;OAMG;YACW,gBAAgB;YA+BhB,WAAW;YA2EX,SAAS;IAkEvB,aAAa,uBAAsB;IAEnC,iBAAiB,CAAC,EAAE,EAAE,OAAO;IAQ7B,4BAA4B;IAc5B,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW;IAI5C,sBAAsB,CACpB,OAAO,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,EAAE,EAC3D,IAAI,CAAC,EAAE,MAAM,IAAI,GAChB,IAAI;IAIP,qBAAqB,CACnB,QAAQ,EAAE,CAAC,kBAAkB,EAAE,OAAO,EAAE,KAAK,IAAI,GAChD,IAAI;IAIP,qBAAqB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAIxC,kBAAkB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAIrC,KAAK;CAKN"}
@@ -3,7 +3,9 @@ import { logger, } from "../exports.js";
3
3
  import { StoreQueue } from "../queue/StoreQueue.js";
4
4
  import { emptyKnownState, setSessionCounter, } from "../knownState.js";
5
5
  import { StorageKnownState } from "./knownState.js";
6
+ import { DeletedCoValuesEraserScheduler } from "./DeletedCoValuesEraserScheduler.js";
6
7
  import { collectNewTxs, getDependedOnCoValues, getNewTransactionsSize, } from "./syncUtils.js";
8
+ import { isDeleteSessionID } from "../ids.js";
7
9
  export class StorageApiAsync {
8
10
  constructor(dbClient) {
9
11
  /**
@@ -15,6 +17,7 @@ export class StorageApiAsync {
15
17
  this.pendingKnownStateLoads = new Map();
16
18
  this.knownStates = new StorageKnownState();
17
19
  this.storeQueue = new StoreQueue();
20
+ this.deletedValues = new Set();
18
21
  this.dbClient = dbClient;
19
22
  }
20
23
  getKnownState(id) {
@@ -62,6 +65,7 @@ export class StorageApiAsync {
62
65
  await this.loadCoValue(id, callback, done);
63
66
  }
64
67
  async loadCoValue(id, callback, done) {
68
+ this.interruptEraser("load");
65
69
  const coValueRow = await this.dbClient.getCoValue(id);
66
70
  if (!coValueRow) {
67
71
  done?.(false);
@@ -145,9 +149,29 @@ export class StorageApiAsync {
145
149
  */
146
150
  this.storeQueue.push(msg, correctionCallback);
147
151
  this.storeQueue.processQueue(async (data, correctionCallback) => {
152
+ this.interruptEraser("store");
148
153
  return this.storeSingle(data, correctionCallback);
149
154
  });
150
155
  }
156
+ interruptEraser(reason) {
157
+ // Cooperative cancellation: a DB transaction already in progress will complete,
158
+ // but the eraser loop will stop starting further work at its next abort check.
159
+ if (this.eraserController) {
160
+ this.eraserController.abort(reason);
161
+ this.eraserController = undefined;
162
+ }
163
+ }
164
+ async eraseAllDeletedCoValues() {
165
+ const ids = await this.dbClient.getAllCoValuesWaitingForDelete();
166
+ this.eraserController = new AbortController();
167
+ const signal = this.eraserController.signal;
168
+ for (const id of ids) {
169
+ if (signal.aborted) {
170
+ return;
171
+ }
172
+ await this.dbClient.eraseCoValueButKeepTombstone(id);
173
+ }
174
+ }
151
175
  /**
152
176
  * This function is called when the storage lacks the information required to store the incoming content.
153
177
  *
@@ -179,6 +203,7 @@ export class StorageApiAsync {
179
203
  return true;
180
204
  }
181
205
  async storeSingle(msg, correctionCallback) {
206
+ this.interruptEraser("store");
182
207
  if (this.storeQueue.closed) {
183
208
  return false;
184
209
  }
@@ -195,6 +220,9 @@ export class StorageApiAsync {
195
220
  for (const sessionID of Object.keys(msg.new)) {
196
221
  await this.dbClient.transaction(async (tx) => {
197
222
  const sessionRow = await tx.getSingleCoValueSession(storedCoValueRowID, sessionID);
223
+ if (this.deletedValues.has(id) && isDeleteSessionID(sessionID)) {
224
+ await tx.markCoValueAsDeleted(id);
225
+ }
198
226
  if (sessionRow) {
199
227
  setSessionCounter(knownState.sessions, sessionRow.sessionID, sessionRow.lastIdx);
200
228
  }
@@ -259,6 +287,25 @@ export class StorageApiAsync {
259
287
  await Promise.all(actuallyNewTransactions.map((newTransaction, i) => tx.addTransaction(sessionRowID, nextIdx + i, newTransaction)));
260
288
  return newLastIdx;
261
289
  }
290
+ markDeleteAsValid(id) {
291
+ this.deletedValues.add(id);
292
+ if (this.deletedCoValuesEraserScheduler) {
293
+ this.deletedCoValuesEraserScheduler.onEnqueueDeletedCoValue();
294
+ }
295
+ }
296
+ enableDeletedCoValuesErasure() {
297
+ if (this.deletedCoValuesEraserScheduler)
298
+ return;
299
+ this.deletedCoValuesEraserScheduler = new DeletedCoValuesEraserScheduler({
300
+ run: async () => {
301
+ // Async storage: no max-time budgeting; drain to completion when scheduled.
302
+ await this.eraseAllDeletedCoValues();
303
+ const remaining = await this.dbClient.getAllCoValuesWaitingForDelete();
304
+ return { hasMore: remaining.length > 0 };
305
+ },
306
+ });
307
+ this.deletedCoValuesEraserScheduler.scheduleStartupDrain();
308
+ }
262
309
  waitForSync(id, coValue) {
263
310
  return this.knownStates.waitForSync(id, coValue);
264
311
  }
@@ -275,6 +322,7 @@ export class StorageApiAsync {
275
322
  this.inMemoryCoValues.delete(id);
276
323
  }
277
324
  close() {
325
+ this.deletedCoValuesEraserScheduler?.dispose();
278
326
  this.inMemoryCoValues.clear();
279
327
  return this.storeQueue.close();
280
328
  }
@@ -1 +1 @@
1
- {"version":3,"file":"storageAsync.js","sourceRoot":"","sources":["../../src/storage/storageAsync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storageAsync.js","sourceRoot":"","sources":["../../src/storage/storageAsync.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import type { CorrectionCallback, DBClientInterfaceSync } from "./types.js";
6
6
  import { StorageStreamingQueue } from "../queue/StorageStreamingQueue.js";
7
7
  export declare class StorageApiSync implements StorageAPI {
8
8
  private readonly dbClient;
9
+ private deletedCoValuesEraserScheduler;
9
10
  /**
10
11
  * Keeps track of CoValues that are in memory, to avoid reloading them from storage
11
12
  * when it isn't necessary
@@ -33,6 +34,11 @@ export declare class StorageApiSync implements StorageAPI {
33
34
  private handleCorrection;
34
35
  private storeSingle;
35
36
  private putNewTxs;
37
+ deletedValues: Set<`co_z${string}`>;
38
+ markDeleteAsValid(id: RawCoID): void;
39
+ eraseAllDeletedCoValues(): Promise<void>;
40
+ enableDeletedCoValuesErasure(): void;
41
+ private eraseDeletedCoValuesOnceBudgeted;
36
42
  waitForSync(id: string, coValue: CoValueCore): Promise<void>;
37
43
  trackCoValuesSyncState(updates: {
38
44
  id: RawCoID;
@@ -1 +1 @@
1
- {"version":3,"file":"storageSync.d.ts","sourceRoot":"","sources":["../../src/storage/storageSync.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,EACX,OAAO,EAEP,KAAK,UAAU,EAEhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACL,iBAAiB,EAGlB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EAKtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,qBAAqB,EACtB,MAAM,mCAAmC,CAAC;AAG3C,qBAAa,cAAe,YAAW,UAAU;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IACjD;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAAsB;IAE9C;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;gBAEnC,QAAQ,EAAE,qBAAqB;IAK3C,WAAW,oBAA2B;IAEtC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB;IAI5C,cAAc,CACZ,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,CAAC,UAAU,EAAE,iBAAiB,GAAG,SAAS,KAAK,IAAI,GAC5D,IAAI;IAmBD,IAAI,CACR,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,EAC3C,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;IAKhC,WAAW,CACT,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,EAC3C,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;IAsIjC,OAAO,CAAC,uBAAuB;YAqBjB,2BAA2B;IAqBzC,KAAK,CAAC,GAAG,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB;IAIpE;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IA8BxB,OAAO,CAAC,WAAW;IA4DnB,OAAO,CAAC,SAAS;IAiEjB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW;IAI5C,sBAAsB,CACpB,OAAO,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,EAAE,EAC3D,IAAI,CAAC,EAAE,MAAM,IAAI,GAChB,IAAI;IAKP,qBAAqB,CACnB,QAAQ,EAAE,CAAC,kBAAkB,EAAE,OAAO,EAAE,KAAK,IAAI,GAChD,IAAI;IAKP,qBAAqB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAIxC,kBAAkB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAIrC,KAAK;CAIN"}
1
+ {"version":3,"file":"storageSync.d.ts","sourceRoot":"","sources":["../../src/storage/storageSync.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,EACX,OAAO,EAEP,KAAK,UAAU,EAEhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACL,iBAAiB,EAGlB,MAAM,kBAAkB,CAAC;AAO1B,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EAKtB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAEL,qBAAqB,EACtB,MAAM,mCAAmC,CAAC;AAK3C,qBAAa,cAAe,YAAW,UAAU;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IAEjD,OAAO,CAAC,8BAA8B,CAExB;IACd;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAAsB;IAE9C;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;gBAEnC,QAAQ,EAAE,qBAAqB;IAK3C,WAAW,oBAA2B;IAEtC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB;IAI5C,cAAc,CACZ,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,CAAC,UAAU,EAAE,iBAAiB,GAAG,SAAS,KAAK,IAAI,GAC5D,IAAI;IAmBD,IAAI,CACR,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,EAC3C,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;IAKhC,WAAW,CACT,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,EAC3C,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;IAsIjC,OAAO,CAAC,uBAAuB;YAqBjB,2BAA2B;IAqBzC,KAAK,CAAC,GAAG,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB;IAIpE;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IA8BxB,OAAO,CAAC,WAAW;IAgEnB,OAAO,CAAC,SAAS;IAiEjB,aAAa,uBAAsB;IAEnC,iBAAiB,CAAC,EAAE,EAAE,OAAO;IAQvB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9C,4BAA4B;IAS5B,OAAO,CAAC,gCAAgC;IAkBxC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW;IAI5C,sBAAsB,CACpB,OAAO,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,EAAE,EAC3D,IAAI,CAAC,EAAE,MAAM,IAAI,GAChB,IAAI;IAKP,qBAAqB,CACnB,QAAQ,EAAE,CAAC,kBAAkB,EAAE,OAAO,EAAE,KAAK,IAAI,GAChD,IAAI;IAKP,qBAAqB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAIxC,kBAAkB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAIrC,KAAK;CAKN"}