@verdant-web/store 2.0.1 → 2.0.3

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 (569) hide show
  1. package/dist/cjs/BackoffScheduler.d.ts +19 -19
  2. package/dist/cjs/BackoffScheduler.js +44 -44
  3. package/dist/cjs/DocumentManager.d.ts +28 -28
  4. package/dist/cjs/DocumentManager.js +44 -44
  5. package/dist/cjs/IDBService.d.ts +9 -9
  6. package/dist/cjs/IDBService.js +46 -46
  7. package/dist/cjs/UndoHistory.d.ts +16 -16
  8. package/dist/cjs/UndoHistory.js +50 -50
  9. package/dist/cjs/__tests__/batching.test.d.ts +1 -1
  10. package/dist/cjs/__tests__/batching.test.js +44 -44
  11. package/dist/cjs/__tests__/documents.test.d.ts +1 -1
  12. package/dist/cjs/__tests__/documents.test.js +398 -398
  13. package/dist/cjs/__tests__/fixtures/testStorage.d.ts +118 -118
  14. package/dist/cjs/__tests__/fixtures/testStorage.js +115 -115
  15. package/dist/cjs/__tests__/queries.test.d.ts +1 -1
  16. package/dist/cjs/__tests__/queries.test.js +262 -262
  17. package/dist/cjs/__tests__/setup/indexedDB.d.ts +1 -1
  18. package/dist/cjs/__tests__/setup/indexedDB.js +3 -3
  19. package/dist/cjs/__tests__/undo.test.d.ts +1 -1
  20. package/dist/cjs/__tests__/undo.test.js +86 -86
  21. package/dist/cjs/client/Client.d.ts +86 -86
  22. package/dist/cjs/client/Client.js +226 -226
  23. package/dist/cjs/client/ClientDescriptor.d.ts +62 -62
  24. package/dist/cjs/client/ClientDescriptor.js +108 -108
  25. package/dist/cjs/constants.d.ts +1 -1
  26. package/dist/cjs/constants.js +4 -4
  27. package/dist/cjs/context.d.ts +17 -17
  28. package/dist/cjs/context.js +2 -2
  29. package/dist/cjs/files/EntityFile.d.ts +27 -27
  30. package/dist/cjs/files/EntityFile.js +71 -71
  31. package/dist/cjs/files/FileManager.d.ts +42 -42
  32. package/dist/cjs/files/FileManager.js +145 -145
  33. package/dist/cjs/files/FileStorage.d.ts +27 -27
  34. package/dist/cjs/files/FileStorage.js +93 -93
  35. package/dist/cjs/files/utils.d.ts +8 -8
  36. package/dist/cjs/files/utils.js +55 -55
  37. package/dist/cjs/files/utils.test.d.ts +1 -1
  38. package/dist/cjs/files/utils.test.js +80 -80
  39. package/dist/cjs/idb.d.ts +8 -8
  40. package/dist/cjs/idb.js +87 -87
  41. package/dist/cjs/index.d.ts +19 -19
  42. package/dist/cjs/index.js +20 -20
  43. package/dist/cjs/indexes.d.ts +3 -3
  44. package/dist/cjs/indexes.js +19 -19
  45. package/dist/cjs/metadata/AckInfoStore.d.ts +10 -10
  46. package/dist/cjs/metadata/AckInfoStore.js +25 -25
  47. package/dist/cjs/metadata/BaselinesStore.d.ts +33 -33
  48. package/dist/cjs/metadata/BaselinesStore.js +59 -59
  49. package/dist/cjs/metadata/LocalReplicaStore.d.ts +17 -17
  50. package/dist/cjs/metadata/LocalReplicaStore.js +47 -47
  51. package/dist/cjs/metadata/MessageCreator.d.ts +19 -19
  52. package/dist/cjs/metadata/MessageCreator.js +127 -127
  53. package/dist/cjs/metadata/Metadata.d.ts +106 -106
  54. package/dist/cjs/metadata/Metadata.js +336 -336
  55. package/dist/cjs/metadata/OperationsStore.d.ts +50 -50
  56. package/dist/cjs/metadata/OperationsStore.js +145 -145
  57. package/dist/cjs/metadata/SchemaStore.d.ts +9 -9
  58. package/dist/cjs/metadata/SchemaStore.js +38 -38
  59. package/dist/cjs/metadata/openMetadataDatabase.d.ts +8 -8
  60. package/dist/cjs/metadata/openMetadataDatabase.js +105 -105
  61. package/dist/cjs/openDocumentDatabase.d.ts +12 -12
  62. package/dist/cjs/openDocumentDatabase.js +424 -424
  63. package/dist/cjs/queries2/BaseQuery.d.ts +39 -39
  64. package/dist/cjs/queries2/BaseQuery.js +98 -98
  65. package/dist/cjs/queries2/CollectionQueries.d.ts +55 -55
  66. package/dist/cjs/queries2/CollectionQueries.js +82 -82
  67. package/dist/cjs/queries2/FindAllQuery.d.ts +11 -11
  68. package/dist/cjs/queries2/FindAllQuery.js +33 -33
  69. package/dist/cjs/queries2/FindInfiniteQuery.d.ts +18 -18
  70. package/dist/cjs/queries2/FindInfiniteQuery.js +60 -60
  71. package/dist/cjs/queries2/FindOneQuery.d.ts +11 -11
  72. package/dist/cjs/queries2/FindOneQuery.js +33 -33
  73. package/dist/cjs/queries2/FindPageQuery.d.ts +23 -23
  74. package/dist/cjs/queries2/FindPageQuery.js +67 -67
  75. package/dist/cjs/queries2/GetQuery.d.ts +10 -10
  76. package/dist/cjs/queries2/GetQuery.js +29 -29
  77. package/dist/cjs/queries2/QueryCache.d.ts +16 -16
  78. package/dist/cjs/queries2/QueryCache.js +39 -39
  79. package/dist/cjs/queries2/dbQueries.d.ts +22 -22
  80. package/dist/cjs/queries2/dbQueries.js +125 -125
  81. package/dist/cjs/queries2/keys.d.ts +10 -10
  82. package/dist/cjs/queries2/keys.js +33 -33
  83. package/dist/cjs/queries2/ranges.d.ts +2 -2
  84. package/dist/cjs/queries2/ranges.js +69 -69
  85. package/dist/cjs/queries2/types.d.ts +6 -6
  86. package/dist/cjs/queries2/types.js +2 -2
  87. package/dist/cjs/queries2/utils.d.ts +1 -1
  88. package/dist/cjs/queries2/utils.js +19 -19
  89. package/dist/cjs/reactives/DocumentFamiliyCache.d.ts +51 -47
  90. package/dist/cjs/reactives/DocumentFamiliyCache.js +214 -210
  91. package/dist/cjs/reactives/DocumentFamiliyCache.js.map +1 -1
  92. package/dist/cjs/reactives/Entity.d.ts +192 -191
  93. package/dist/cjs/reactives/Entity.js +466 -462
  94. package/dist/cjs/reactives/Entity.js.map +1 -1
  95. package/dist/cjs/reactives/EntityStore.d.ts +84 -84
  96. package/dist/cjs/reactives/EntityStore.js +425 -421
  97. package/dist/cjs/reactives/EntityStore.js.map +1 -1
  98. package/dist/cjs/reactives/FakeWeakRef.d.ts +11 -11
  99. package/dist/cjs/reactives/FakeWeakRef.js +18 -18
  100. package/dist/cjs/sync/FileSync.d.ts +23 -23
  101. package/dist/cjs/sync/FileSync.js +84 -84
  102. package/dist/cjs/sync/Heartbeat.d.ts +24 -24
  103. package/dist/cjs/sync/Heartbeat.js +55 -55
  104. package/dist/cjs/sync/PresenceManager.d.ts +41 -41
  105. package/dist/cjs/sync/PresenceManager.js +107 -107
  106. package/dist/cjs/sync/PushPullSync.d.ts +36 -36
  107. package/dist/cjs/sync/PushPullSync.js +141 -141
  108. package/dist/cjs/sync/ServerSyncEndpointProvider.d.ts +27 -27
  109. package/dist/cjs/sync/ServerSyncEndpointProvider.js +64 -64
  110. package/dist/cjs/sync/Sync.d.ts +127 -127
  111. package/dist/cjs/sync/Sync.js +244 -244
  112. package/dist/cjs/sync/WebSocketSync.d.ts +41 -41
  113. package/dist/cjs/sync/WebSocketSync.js +183 -183
  114. package/dist/cjs/types.d.ts +5 -5
  115. package/dist/cjs/types.js +2 -2
  116. package/dist/cjs/utils/Disposable.d.ts +6 -6
  117. package/dist/cjs/utils/Disposable.js +18 -18
  118. package/dist/cjs/utils/Resolvable.d.ts +8 -8
  119. package/dist/cjs/utils/Resolvable.js +22 -22
  120. package/dist/esm/BackoffScheduler.d.ts +19 -19
  121. package/dist/esm/BackoffScheduler.js +39 -39
  122. package/dist/esm/DocumentManager.d.ts +28 -28
  123. package/dist/esm/DocumentManager.js +40 -40
  124. package/dist/esm/IDBService.d.ts +9 -9
  125. package/dist/esm/IDBService.js +42 -42
  126. package/dist/esm/UndoHistory.d.ts +16 -16
  127. package/dist/esm/UndoHistory.js +46 -46
  128. package/dist/esm/__tests__/batching.test.d.ts +1 -1
  129. package/dist/esm/__tests__/batching.test.js +42 -42
  130. package/dist/esm/__tests__/documents.test.d.ts +1 -1
  131. package/dist/esm/__tests__/documents.test.js +396 -396
  132. package/dist/esm/__tests__/fixtures/testStorage.d.ts +118 -118
  133. package/dist/esm/__tests__/fixtures/testStorage.js +111 -111
  134. package/dist/esm/__tests__/queries.test.d.ts +1 -1
  135. package/dist/esm/__tests__/queries.test.js +260 -260
  136. package/dist/esm/__tests__/setup/indexedDB.d.ts +1 -1
  137. package/dist/esm/__tests__/setup/indexedDB.js +1 -1
  138. package/dist/esm/__tests__/undo.test.d.ts +1 -1
  139. package/dist/esm/__tests__/undo.test.js +84 -84
  140. package/dist/esm/client/Client.d.ts +86 -86
  141. package/dist/esm/client/Client.js +222 -222
  142. package/dist/esm/client/ClientDescriptor.d.ts +62 -62
  143. package/dist/esm/client/ClientDescriptor.js +104 -104
  144. package/dist/esm/constants.d.ts +1 -1
  145. package/dist/esm/constants.js +1 -1
  146. package/dist/esm/context.d.ts +17 -17
  147. package/dist/esm/context.js +1 -1
  148. package/dist/esm/files/EntityFile.d.ts +27 -27
  149. package/dist/esm/files/EntityFile.js +67 -67
  150. package/dist/esm/files/FileManager.d.ts +42 -42
  151. package/dist/esm/files/FileManager.js +141 -141
  152. package/dist/esm/files/FileStorage.d.ts +27 -27
  153. package/dist/esm/files/FileStorage.js +88 -88
  154. package/dist/esm/files/utils.d.ts +8 -8
  155. package/dist/esm/files/utils.js +46 -46
  156. package/dist/esm/files/utils.test.d.ts +1 -1
  157. package/dist/esm/files/utils.test.js +78 -78
  158. package/dist/esm/idb.d.ts +8 -8
  159. package/dist/esm/idb.js +79 -79
  160. package/dist/esm/index.d.ts +19 -19
  161. package/dist/esm/index.js +11 -11
  162. package/dist/esm/indexes.d.ts +3 -3
  163. package/dist/esm/indexes.js +14 -14
  164. package/dist/esm/metadata/AckInfoStore.d.ts +10 -10
  165. package/dist/esm/metadata/AckInfoStore.js +21 -21
  166. package/dist/esm/metadata/BaselinesStore.d.ts +33 -33
  167. package/dist/esm/metadata/BaselinesStore.js +55 -55
  168. package/dist/esm/metadata/LocalReplicaStore.d.ts +17 -17
  169. package/dist/esm/metadata/LocalReplicaStore.js +40 -40
  170. package/dist/esm/metadata/MessageCreator.d.ts +19 -19
  171. package/dist/esm/metadata/MessageCreator.js +123 -123
  172. package/dist/esm/metadata/Metadata.d.ts +106 -106
  173. package/dist/esm/metadata/Metadata.js +332 -332
  174. package/dist/esm/metadata/OperationsStore.d.ts +50 -50
  175. package/dist/esm/metadata/OperationsStore.js +141 -141
  176. package/dist/esm/metadata/SchemaStore.d.ts +9 -9
  177. package/dist/esm/metadata/SchemaStore.js +34 -34
  178. package/dist/esm/metadata/openMetadataDatabase.d.ts +8 -8
  179. package/dist/esm/metadata/openMetadataDatabase.js +101 -101
  180. package/dist/esm/openDocumentDatabase.d.ts +12 -12
  181. package/dist/esm/openDocumentDatabase.js +420 -420
  182. package/dist/esm/queries2/BaseQuery.d.ts +39 -39
  183. package/dist/esm/queries2/BaseQuery.js +94 -94
  184. package/dist/esm/queries2/CollectionQueries.d.ts +55 -55
  185. package/dist/esm/queries2/CollectionQueries.js +78 -78
  186. package/dist/esm/queries2/FindAllQuery.d.ts +11 -11
  187. package/dist/esm/queries2/FindAllQuery.js +29 -29
  188. package/dist/esm/queries2/FindInfiniteQuery.d.ts +18 -18
  189. package/dist/esm/queries2/FindInfiniteQuery.js +56 -56
  190. package/dist/esm/queries2/FindOneQuery.d.ts +11 -11
  191. package/dist/esm/queries2/FindOneQuery.js +29 -29
  192. package/dist/esm/queries2/FindPageQuery.d.ts +23 -23
  193. package/dist/esm/queries2/FindPageQuery.js +63 -63
  194. package/dist/esm/queries2/GetQuery.d.ts +10 -10
  195. package/dist/esm/queries2/GetQuery.js +25 -25
  196. package/dist/esm/queries2/QueryCache.d.ts +16 -16
  197. package/dist/esm/queries2/QueryCache.js +35 -35
  198. package/dist/esm/queries2/dbQueries.d.ts +22 -22
  199. package/dist/esm/queries2/dbQueries.js +119 -119
  200. package/dist/esm/queries2/keys.d.ts +10 -10
  201. package/dist/esm/queries2/keys.js +29 -29
  202. package/dist/esm/queries2/ranges.d.ts +2 -2
  203. package/dist/esm/queries2/ranges.js +65 -65
  204. package/dist/esm/queries2/types.d.ts +6 -6
  205. package/dist/esm/queries2/types.js +1 -1
  206. package/dist/esm/queries2/utils.d.ts +1 -1
  207. package/dist/esm/queries2/utils.js +15 -15
  208. package/dist/esm/reactives/DocumentFamiliyCache.d.ts +51 -47
  209. package/dist/esm/reactives/DocumentFamiliyCache.js +210 -206
  210. package/dist/esm/reactives/DocumentFamiliyCache.js.map +1 -1
  211. package/dist/esm/reactives/Entity.d.ts +192 -191
  212. package/dist/esm/reactives/Entity.js +461 -457
  213. package/dist/esm/reactives/Entity.js.map +1 -1
  214. package/dist/esm/reactives/EntityStore.d.ts +84 -84
  215. package/dist/esm/reactives/EntityStore.js +421 -417
  216. package/dist/esm/reactives/EntityStore.js.map +1 -1
  217. package/dist/esm/reactives/FakeWeakRef.d.ts +11 -11
  218. package/dist/esm/reactives/FakeWeakRef.js +14 -14
  219. package/dist/esm/sync/FileSync.d.ts +23 -23
  220. package/dist/esm/sync/FileSync.js +80 -80
  221. package/dist/esm/sync/Heartbeat.d.ts +24 -24
  222. package/dist/esm/sync/Heartbeat.js +51 -51
  223. package/dist/esm/sync/PresenceManager.d.ts +41 -41
  224. package/dist/esm/sync/PresenceManager.js +103 -103
  225. package/dist/esm/sync/PushPullSync.d.ts +36 -36
  226. package/dist/esm/sync/PushPullSync.js +137 -137
  227. package/dist/esm/sync/ServerSyncEndpointProvider.d.ts +27 -27
  228. package/dist/esm/sync/ServerSyncEndpointProvider.js +57 -57
  229. package/dist/esm/sync/Sync.d.ts +127 -127
  230. package/dist/esm/sync/Sync.js +239 -239
  231. package/dist/esm/sync/{WebsocketSync.d.ts → WebSocketSync.d.ts} +41 -41
  232. package/dist/esm/sync/{WebsocketSync.js → WebSocketSync.js} +179 -179
  233. package/dist/esm/types.d.ts +5 -5
  234. package/dist/esm/types.js +1 -1
  235. package/dist/esm/utils/Disposable.d.ts +6 -6
  236. package/dist/esm/utils/Disposable.js +14 -14
  237. package/dist/esm/utils/Resolvable.d.ts +8 -8
  238. package/dist/esm/utils/Resolvable.js +18 -18
  239. package/dist/tsconfig-cjs.tsbuildinfo +1 -1
  240. package/dist/tsconfig.tsbuildinfo +1 -1
  241. package/package.json +2 -2
  242. package/src/reactives/DocumentFamiliyCache.ts +4 -0
  243. package/src/reactives/Entity.ts +8 -1
  244. package/src/reactives/EntityStore.ts +18 -13
  245. package/dist/cjs/AckInfoStore.d.ts +0 -10
  246. package/dist/cjs/AckInfoStore.js +0 -26
  247. package/dist/cjs/AckInfoStore.js.map +0 -1
  248. package/dist/cjs/BaselinesStore.d.ts +0 -10
  249. package/dist/cjs/BaselinesStore.js +0 -36
  250. package/dist/cjs/BaselinesStore.js.map +0 -1
  251. package/dist/cjs/Entity.d.ts +0 -96
  252. package/dist/cjs/Entity.js +0 -345
  253. package/dist/cjs/Entity.js.map +0 -1
  254. package/dist/cjs/EntityStore.d.ts +0 -36
  255. package/dist/cjs/EntityStore.js +0 -172
  256. package/dist/cjs/EntityStore.js.map +0 -1
  257. package/dist/cjs/LocalHistoryStore.d.ts +0 -15
  258. package/dist/cjs/LocalHistoryStore.js +0 -53
  259. package/dist/cjs/LocalHistoryStore.js.map +0 -1
  260. package/dist/cjs/LocalReplicaStore.d.ts +0 -13
  261. package/dist/cjs/LocalReplicaStore.js +0 -49
  262. package/dist/cjs/LocalReplicaStore.js.map +0 -1
  263. package/dist/cjs/MessageCreator.d.ts +0 -19
  264. package/dist/cjs/MessageCreator.js +0 -104
  265. package/dist/cjs/MessageCreator.js.map +0 -1
  266. package/dist/cjs/Metadata.d.ts +0 -91
  267. package/dist/cjs/Metadata.js +0 -250
  268. package/dist/cjs/Metadata.js.map +0 -1
  269. package/dist/cjs/OperationsStore.d.ts +0 -38
  270. package/dist/cjs/OperationsStore.js +0 -146
  271. package/dist/cjs/OperationsStore.js.map +0 -1
  272. package/dist/cjs/PresenceManager.d.ts +0 -30
  273. package/dist/cjs/PresenceManager.js +0 -89
  274. package/dist/cjs/PresenceManager.js.map +0 -1
  275. package/dist/cjs/Query.d.ts +0 -26
  276. package/dist/cjs/Query.js +0 -86
  277. package/dist/cjs/Query.js.map +0 -1
  278. package/dist/cjs/QueryMaker.d.ts +0 -18
  279. package/dist/cjs/QueryMaker.js +0 -98
  280. package/dist/cjs/QueryMaker.js.map +0 -1
  281. package/dist/cjs/QueryStore.d.ts +0 -38
  282. package/dist/cjs/QueryStore.js +0 -146
  283. package/dist/cjs/QueryStore.js.map +0 -1
  284. package/dist/cjs/SchemaStore.d.ts +0 -9
  285. package/dist/cjs/SchemaStore.js +0 -35
  286. package/dist/cjs/SchemaStore.js.map +0 -1
  287. package/dist/cjs/Storage.d.ts +0 -147
  288. package/dist/cjs/Storage.js +0 -346
  289. package/dist/cjs/Storage.js.map +0 -1
  290. package/dist/cjs/Sync.d.ts +0 -117
  291. package/dist/cjs/Sync.js +0 -561
  292. package/dist/cjs/Sync.js.map +0 -1
  293. package/dist/cjs/SyncHarness.d.ts +0 -45
  294. package/dist/cjs/SyncHarness.js +0 -110
  295. package/dist/cjs/SyncHarness.js.map +0 -1
  296. package/dist/cjs/metadata/LocalHistoryStore.d.ts +0 -15
  297. package/dist/cjs/metadata/LocalHistoryStore.js +0 -53
  298. package/dist/cjs/metadata/LocalHistoryStore.js.map +0 -1
  299. package/dist/cjs/queries/LiveQuery.d.ts +0 -28
  300. package/dist/cjs/queries/LiveQuery.js +0 -96
  301. package/dist/cjs/queries/LiveQuery.js.map +0 -1
  302. package/dist/cjs/queries/LiveQueryMaker.d.ts +0 -15
  303. package/dist/cjs/queries/LiveQueryMaker.js +0 -42
  304. package/dist/cjs/queries/LiveQueryMaker.js.map +0 -1
  305. package/dist/cjs/queries/LiveQueryStore.d.ts +0 -33
  306. package/dist/cjs/queries/LiveQueryStore.js +0 -85
  307. package/dist/cjs/queries/LiveQueryStore.js.map +0 -1
  308. package/dist/cjs/queries/Query.d.ts +0 -18
  309. package/dist/cjs/queries/Query.js +0 -36
  310. package/dist/cjs/queries/Query.js.map +0 -1
  311. package/dist/cjs/queries/QueryMaker.d.ts +0 -14
  312. package/dist/cjs/queries/QueryMaker.js +0 -42
  313. package/dist/cjs/queries/QueryMaker.js.map +0 -1
  314. package/dist/cjs/queries/QueryStore.d.ts +0 -35
  315. package/dist/cjs/queries/QueryStore.js +0 -130
  316. package/dist/cjs/queries/QueryStore.js.map +0 -1
  317. package/dist/cjs/queries/ranges.d.ts +0 -2
  318. package/dist/cjs/queries/ranges.js +0 -70
  319. package/dist/cjs/queries/ranges.js.map +0 -1
  320. package/dist/cjs/v2/AckInfoStore.d.ts +0 -10
  321. package/dist/cjs/v2/AckInfoStore.js +0 -26
  322. package/dist/cjs/v2/AckInfoStore.js.map +0 -1
  323. package/dist/cjs/v2/BaselinesStore.d.ts +0 -10
  324. package/dist/cjs/v2/BaselinesStore.js +0 -36
  325. package/dist/cjs/v2/BaselinesStore.js.map +0 -1
  326. package/dist/cjs/v2/DocumentManager.d.ts +0 -19
  327. package/dist/cjs/v2/DocumentManager.js +0 -47
  328. package/dist/cjs/v2/DocumentManager.js.map +0 -1
  329. package/dist/cjs/v2/Entity.d.ts +0 -87
  330. package/dist/cjs/v2/Entity.js +0 -305
  331. package/dist/cjs/v2/Entity.js.map +0 -1
  332. package/dist/cjs/v2/EntityStore.d.ts +0 -37
  333. package/dist/cjs/v2/EntityStore.js +0 -165
  334. package/dist/cjs/v2/EntityStore.js.map +0 -1
  335. package/dist/cjs/v2/IDBService.d.ts +0 -7
  336. package/dist/cjs/v2/IDBService.js +0 -26
  337. package/dist/cjs/v2/IDBService.js.map +0 -1
  338. package/dist/cjs/v2/LocalHistoryStore.d.ts +0 -15
  339. package/dist/cjs/v2/LocalHistoryStore.js +0 -53
  340. package/dist/cjs/v2/LocalHistoryStore.js.map +0 -1
  341. package/dist/cjs/v2/LocalReplicaStore.d.ts +0 -14
  342. package/dist/cjs/v2/LocalReplicaStore.js +0 -49
  343. package/dist/cjs/v2/LocalReplicaStore.js.map +0 -1
  344. package/dist/cjs/v2/MessageCreator.d.ts +0 -19
  345. package/dist/cjs/v2/MessageCreator.js +0 -99
  346. package/dist/cjs/v2/MessageCreator.js.map +0 -1
  347. package/dist/cjs/v2/Metadata.d.ts +0 -90
  348. package/dist/cjs/v2/Metadata.js +0 -251
  349. package/dist/cjs/v2/Metadata.js.map +0 -1
  350. package/dist/cjs/v2/OperationsStore.d.ts +0 -38
  351. package/dist/cjs/v2/OperationsStore.js +0 -146
  352. package/dist/cjs/v2/OperationsStore.js.map +0 -1
  353. package/dist/cjs/v2/PresenceManager.d.ts +0 -24
  354. package/dist/cjs/v2/PresenceManager.js +0 -73
  355. package/dist/cjs/v2/PresenceManager.js.map +0 -1
  356. package/dist/cjs/v2/Query.d.ts +0 -24
  357. package/dist/cjs/v2/Query.js +0 -79
  358. package/dist/cjs/v2/Query.js.map +0 -1
  359. package/dist/cjs/v2/QueryMaker.d.ts +0 -16
  360. package/dist/cjs/v2/QueryMaker.js +0 -84
  361. package/dist/cjs/v2/QueryMaker.js.map +0 -1
  362. package/dist/cjs/v2/QueryStore.d.ts +0 -26
  363. package/dist/cjs/v2/QueryStore.js +0 -136
  364. package/dist/cjs/v2/QueryStore.js.map +0 -1
  365. package/dist/cjs/v2/SchemaStore.d.ts +0 -9
  366. package/dist/cjs/v2/SchemaStore.js +0 -35
  367. package/dist/cjs/v2/SchemaStore.js.map +0 -1
  368. package/dist/cjs/v2/Storage.d.ts +0 -80
  369. package/dist/cjs/v2/Storage.js +0 -154
  370. package/dist/cjs/v2/Storage.js.map +0 -1
  371. package/dist/cjs/v2/Sync.d.ts +0 -42
  372. package/dist/cjs/v2/Sync.js +0 -98
  373. package/dist/cjs/v2/Sync.js.map +0 -1
  374. package/dist/cjs/v2/SyncHarness.d.ts +0 -45
  375. package/dist/cjs/v2/SyncHarness.js +0 -110
  376. package/dist/cjs/v2/SyncHarness.js.map +0 -1
  377. package/dist/cjs/v2/__tests__/documents.test.d.ts +0 -1
  378. package/dist/cjs/v2/__tests__/documents.test.js +0 -185
  379. package/dist/cjs/v2/__tests__/documents.test.js.map +0 -1
  380. package/dist/cjs/v2/__tests__/fixtures/testStorage.d.ts +0 -189
  381. package/dist/cjs/v2/__tests__/fixtures/testStorage.js +0 -93
  382. package/dist/cjs/v2/__tests__/fixtures/testStorage.js.map +0 -1
  383. package/dist/cjs/v2/__tests__/queries.test.d.ts +0 -1
  384. package/dist/cjs/v2/__tests__/queries.test.js +0 -92
  385. package/dist/cjs/v2/__tests__/queries.test.js.map +0 -1
  386. package/dist/cjs/v2/__tests__/setup/indexedDB.d.ts +0 -1
  387. package/dist/cjs/v2/__tests__/setup/indexedDB.js +0 -4
  388. package/dist/cjs/v2/__tests__/setup/indexedDB.js.map +0 -1
  389. package/dist/cjs/v2/constants.d.ts +0 -1
  390. package/dist/cjs/v2/constants.js +0 -5
  391. package/dist/cjs/v2/constants.js.map +0 -1
  392. package/dist/cjs/v2/idb.d.ts +0 -6
  393. package/dist/cjs/v2/idb.js +0 -71
  394. package/dist/cjs/v2/idb.js.map +0 -1
  395. package/dist/cjs/v2/index.d.ts +0 -6
  396. package/dist/cjs/v2/index.js +0 -14
  397. package/dist/cjs/v2/index.js.map +0 -1
  398. package/dist/cjs/v2/indexes.d.ts +0 -3
  399. package/dist/cjs/v2/indexes.js +0 -20
  400. package/dist/cjs/v2/indexes.js.map +0 -1
  401. package/dist/cjs/v2/openDocumentDatabase.d.ts +0 -9
  402. package/dist/cjs/v2/openDocumentDatabase.js +0 -100
  403. package/dist/cjs/v2/openDocumentDatabase.js.map +0 -1
  404. package/dist/cjs/v2/types.d.ts +0 -3
  405. package/dist/cjs/v2/types.js +0 -3
  406. package/dist/cjs/v2/types.js.map +0 -1
  407. package/dist/esm/AckInfoStore.d.ts +0 -10
  408. package/dist/esm/AckInfoStore.js +0 -22
  409. package/dist/esm/AckInfoStore.js.map +0 -1
  410. package/dist/esm/BaselinesStore.d.ts +0 -10
  411. package/dist/esm/BaselinesStore.js +0 -32
  412. package/dist/esm/BaselinesStore.js.map +0 -1
  413. package/dist/esm/Entity.d.ts +0 -96
  414. package/dist/esm/Entity.js +0 -337
  415. package/dist/esm/Entity.js.map +0 -1
  416. package/dist/esm/EntityStore.d.ts +0 -36
  417. package/dist/esm/EntityStore.js +0 -168
  418. package/dist/esm/EntityStore.js.map +0 -1
  419. package/dist/esm/LocalHistoryStore.d.ts +0 -15
  420. package/dist/esm/LocalHistoryStore.js +0 -49
  421. package/dist/esm/LocalHistoryStore.js.map +0 -1
  422. package/dist/esm/LocalReplicaStore.d.ts +0 -13
  423. package/dist/esm/LocalReplicaStore.js +0 -42
  424. package/dist/esm/LocalReplicaStore.js.map +0 -1
  425. package/dist/esm/MessageCreator.d.ts +0 -19
  426. package/dist/esm/MessageCreator.js +0 -97
  427. package/dist/esm/MessageCreator.js.map +0 -1
  428. package/dist/esm/Metadata.d.ts +0 -91
  429. package/dist/esm/Metadata.js +0 -245
  430. package/dist/esm/Metadata.js.map +0 -1
  431. package/dist/esm/OperationsStore.d.ts +0 -38
  432. package/dist/esm/OperationsStore.js +0 -142
  433. package/dist/esm/OperationsStore.js.map +0 -1
  434. package/dist/esm/PresenceManager.d.ts +0 -30
  435. package/dist/esm/PresenceManager.js +0 -85
  436. package/dist/esm/PresenceManager.js.map +0 -1
  437. package/dist/esm/Query.d.ts +0 -26
  438. package/dist/esm/Query.js +0 -82
  439. package/dist/esm/Query.js.map +0 -1
  440. package/dist/esm/QueryMaker.d.ts +0 -18
  441. package/dist/esm/QueryMaker.js +0 -94
  442. package/dist/esm/QueryMaker.js.map +0 -1
  443. package/dist/esm/QueryStore.d.ts +0 -38
  444. package/dist/esm/QueryStore.js +0 -142
  445. package/dist/esm/QueryStore.js.map +0 -1
  446. package/dist/esm/SchemaStore.d.ts +0 -9
  447. package/dist/esm/SchemaStore.js +0 -31
  448. package/dist/esm/SchemaStore.js.map +0 -1
  449. package/dist/esm/Storage.d.ts +0 -147
  450. package/dist/esm/Storage.js +0 -341
  451. package/dist/esm/Storage.js.map +0 -1
  452. package/dist/esm/Sync.d.ts +0 -117
  453. package/dist/esm/Sync.js +0 -553
  454. package/dist/esm/Sync.js.map +0 -1
  455. package/dist/esm/SyncHarness.d.ts +0 -45
  456. package/dist/esm/SyncHarness.js +0 -105
  457. package/dist/esm/SyncHarness.js.map +0 -1
  458. package/dist/esm/metadata/LocalHistoryStore.d.ts +0 -15
  459. package/dist/esm/metadata/LocalHistoryStore.js +0 -49
  460. package/dist/esm/metadata/LocalHistoryStore.js.map +0 -1
  461. package/dist/esm/queries/LiveQuery.d.ts +0 -28
  462. package/dist/esm/queries/LiveQuery.js +0 -92
  463. package/dist/esm/queries/LiveQuery.js.map +0 -1
  464. package/dist/esm/queries/LiveQueryMaker.d.ts +0 -15
  465. package/dist/esm/queries/LiveQueryMaker.js +0 -38
  466. package/dist/esm/queries/LiveQueryMaker.js.map +0 -1
  467. package/dist/esm/queries/LiveQueryStore.d.ts +0 -33
  468. package/dist/esm/queries/LiveQueryStore.js +0 -81
  469. package/dist/esm/queries/LiveQueryStore.js.map +0 -1
  470. package/dist/esm/queries/Query.d.ts +0 -18
  471. package/dist/esm/queries/Query.js +0 -32
  472. package/dist/esm/queries/Query.js.map +0 -1
  473. package/dist/esm/queries/QueryMaker.d.ts +0 -14
  474. package/dist/esm/queries/QueryMaker.js +0 -38
  475. package/dist/esm/queries/QueryMaker.js.map +0 -1
  476. package/dist/esm/queries/QueryStore.d.ts +0 -35
  477. package/dist/esm/queries/QueryStore.js +0 -126
  478. package/dist/esm/queries/QueryStore.js.map +0 -1
  479. package/dist/esm/queries/ranges.d.ts +0 -2
  480. package/dist/esm/queries/ranges.js +0 -66
  481. package/dist/esm/queries/ranges.js.map +0 -1
  482. package/dist/esm/v2/AckInfoStore.d.ts +0 -10
  483. package/dist/esm/v2/AckInfoStore.js +0 -22
  484. package/dist/esm/v2/AckInfoStore.js.map +0 -1
  485. package/dist/esm/v2/BaselinesStore.d.ts +0 -10
  486. package/dist/esm/v2/BaselinesStore.js +0 -32
  487. package/dist/esm/v2/BaselinesStore.js.map +0 -1
  488. package/dist/esm/v2/DocumentManager.d.ts +0 -19
  489. package/dist/esm/v2/DocumentManager.js +0 -43
  490. package/dist/esm/v2/DocumentManager.js.map +0 -1
  491. package/dist/esm/v2/Entity.d.ts +0 -91
  492. package/dist/esm/v2/Entity.js +0 -305
  493. package/dist/esm/v2/Entity.js.map +0 -1
  494. package/dist/esm/v2/EntityStore.d.ts +0 -37
  495. package/dist/esm/v2/EntityStore.js +0 -166
  496. package/dist/esm/v2/EntityStore.js.map +0 -1
  497. package/dist/esm/v2/IDBService.d.ts +0 -7
  498. package/dist/esm/v2/IDBService.js +0 -22
  499. package/dist/esm/v2/IDBService.js.map +0 -1
  500. package/dist/esm/v2/LocalHistoryStore.d.ts +0 -15
  501. package/dist/esm/v2/LocalHistoryStore.js +0 -49
  502. package/dist/esm/v2/LocalHistoryStore.js.map +0 -1
  503. package/dist/esm/v2/LocalReplicaStore.d.ts +0 -14
  504. package/dist/esm/v2/LocalReplicaStore.js +0 -42
  505. package/dist/esm/v2/LocalReplicaStore.js.map +0 -1
  506. package/dist/esm/v2/MessageCreator.d.ts +0 -19
  507. package/dist/esm/v2/MessageCreator.js +0 -92
  508. package/dist/esm/v2/MessageCreator.js.map +0 -1
  509. package/dist/esm/v2/Metadata.d.ts +0 -90
  510. package/dist/esm/v2/Metadata.js +0 -246
  511. package/dist/esm/v2/Metadata.js.map +0 -1
  512. package/dist/esm/v2/OperationsStore.d.ts +0 -38
  513. package/dist/esm/v2/OperationsStore.js +0 -142
  514. package/dist/esm/v2/OperationsStore.js.map +0 -1
  515. package/dist/esm/v2/PresenceManager.d.ts +0 -24
  516. package/dist/esm/v2/PresenceManager.js +0 -69
  517. package/dist/esm/v2/PresenceManager.js.map +0 -1
  518. package/dist/esm/v2/Query.d.ts +0 -24
  519. package/dist/esm/v2/Query.js +0 -75
  520. package/dist/esm/v2/Query.js.map +0 -1
  521. package/dist/esm/v2/QueryMaker.d.ts +0 -16
  522. package/dist/esm/v2/QueryMaker.js +0 -80
  523. package/dist/esm/v2/QueryMaker.js.map +0 -1
  524. package/dist/esm/v2/QueryStore.d.ts +0 -26
  525. package/dist/esm/v2/QueryStore.js +0 -132
  526. package/dist/esm/v2/QueryStore.js.map +0 -1
  527. package/dist/esm/v2/SchemaStore.d.ts +0 -9
  528. package/dist/esm/v2/SchemaStore.js +0 -31
  529. package/dist/esm/v2/SchemaStore.js.map +0 -1
  530. package/dist/esm/v2/Storage.d.ts +0 -80
  531. package/dist/esm/v2/Storage.js +0 -149
  532. package/dist/esm/v2/Storage.js.map +0 -1
  533. package/dist/esm/v2/Sync.d.ts +0 -42
  534. package/dist/esm/v2/Sync.js +0 -94
  535. package/dist/esm/v2/Sync.js.map +0 -1
  536. package/dist/esm/v2/SyncHarness.d.ts +0 -45
  537. package/dist/esm/v2/SyncHarness.js +0 -105
  538. package/dist/esm/v2/SyncHarness.js.map +0 -1
  539. package/dist/esm/v2/__tests__/documents.test.d.ts +0 -1
  540. package/dist/esm/v2/__tests__/documents.test.js +0 -208
  541. package/dist/esm/v2/__tests__/documents.test.js.map +0 -1
  542. package/dist/esm/v2/__tests__/fixtures/testStorage.d.ts +0 -223
  543. package/dist/esm/v2/__tests__/fixtures/testStorage.js +0 -106
  544. package/dist/esm/v2/__tests__/fixtures/testStorage.js.map +0 -1
  545. package/dist/esm/v2/__tests__/queries.test.d.ts +0 -1
  546. package/dist/esm/v2/__tests__/queries.test.js +0 -90
  547. package/dist/esm/v2/__tests__/queries.test.js.map +0 -1
  548. package/dist/esm/v2/__tests__/setup/indexedDB.d.ts +0 -1
  549. package/dist/esm/v2/__tests__/setup/indexedDB.js +0 -2
  550. package/dist/esm/v2/__tests__/setup/indexedDB.js.map +0 -1
  551. package/dist/esm/v2/constants.d.ts +0 -1
  552. package/dist/esm/v2/constants.js +0 -2
  553. package/dist/esm/v2/constants.js.map +0 -1
  554. package/dist/esm/v2/idb.d.ts +0 -6
  555. package/dist/esm/v2/idb.js +0 -65
  556. package/dist/esm/v2/idb.js.map +0 -1
  557. package/dist/esm/v2/index.d.ts +0 -6
  558. package/dist/esm/v2/index.js +0 -5
  559. package/dist/esm/v2/index.js.map +0 -1
  560. package/dist/esm/v2/indexes.d.ts +0 -3
  561. package/dist/esm/v2/indexes.js +0 -15
  562. package/dist/esm/v2/indexes.js.map +0 -1
  563. package/dist/esm/v2/openDocumentDatabase.d.ts +0 -9
  564. package/dist/esm/v2/openDocumentDatabase.js +0 -96
  565. package/dist/esm/v2/openDocumentDatabase.js.map +0 -1
  566. package/dist/esm/v2/types.d.ts +0 -3
  567. package/dist/esm/v2/types.js +0 -2
  568. package/dist/esm/v2/types.js.map +0 -1
  569. /package/dist/esm/sync/{WebsocketSync.js.map → WebSocketSync.js.map} +0 -0
@@ -1,14 +0,0 @@
1
- import { IDBService } from './IDBService.js';
2
- declare type LocalReplicaInfo = {
3
- type: 'localReplicaInfo';
4
- id: string;
5
- ackedLogicalTime: string | null;
6
- lastSyncedLogicalTime: string | null;
7
- };
8
- export declare class LocalReplicaStore extends IDBService {
9
- private cached;
10
- get: () => Promise<LocalReplicaInfo>;
11
- update: (data: Partial<LocalReplicaInfo>) => Promise<void>;
12
- reset: () => Promise<void>;
13
- }
14
- export {};
@@ -1,42 +0,0 @@
1
- import cuid from 'cuid';
2
- import { IDBService } from './IDBService.js';
3
- export class LocalReplicaStore extends IDBService {
4
- constructor() {
5
- super(...arguments);
6
- this.get = async () => {
7
- if (this.cached) {
8
- return this.cached;
9
- }
10
- const db = this.db;
11
- const lookup = await this.run('info', (store) => store.get('localReplicaInfo'));
12
- if (!lookup) {
13
- // create our own replica info now
14
- const replicaId = cuid();
15
- const replicaInfo = {
16
- type: 'localReplicaInfo',
17
- id: replicaId,
18
- ackedLogicalTime: null,
19
- lastSyncedLogicalTime: null,
20
- };
21
- await this.run('info', (store) => store.add(replicaInfo), 'readwrite');
22
- this.cached = replicaInfo;
23
- return replicaInfo;
24
- }
25
- this.cached = lookup;
26
- return lookup;
27
- };
28
- this.update = async (data) => {
29
- const localReplicaInfo = await this.get();
30
- Object.assign(localReplicaInfo, data);
31
- await this.run('info', (store) => store.put(localReplicaInfo), 'readwrite');
32
- this.cached = localReplicaInfo;
33
- };
34
- this.reset = async () => {
35
- const localInfo = await this.get();
36
- localInfo.ackedLogicalTime = null;
37
- localInfo.lastSyncedLogicalTime = null;
38
- await this.run('info', (store) => store.put(localInfo), 'readwrite');
39
- };
40
- }
41
- }
42
- //# sourceMappingURL=LocalReplicaStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LocalReplicaStore.js","sourceRoot":"","sources":["../../../src/v2/LocalReplicaStore.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAS7C,MAAM,OAAO,iBAAkB,SAAQ,UAAU;IAAjD;;QAGC,QAAG,GAAG,KAAK,IAAI,EAAE;YAChB,IAAI,IAAI,CAAC,MAAM,EAAE;gBAChB,OAAO,IAAI,CAAC,MAAM,CAAC;aACnB;YAED,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAmB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CACjE,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAC7B,CAAC;YAEF,IAAI,CAAC,MAAM,EAAE;gBACZ,kCAAkC;gBAClC,MAAM,SAAS,GAAG,IAAI,EAAE,CAAC;gBACzB,MAAM,WAAW,GAAqB;oBACrC,IAAI,EAAE,kBAAkB;oBACxB,EAAE,EAAE,SAAS;oBACb,gBAAgB,EAAE,IAAI;oBACtB,qBAAqB,EAAE,IAAI;iBAC3B,CAAC;gBACF,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;gBACvE,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;gBAC1B,OAAO,WAAW,CAAC;aACnB;YAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,OAAO,MAAM,CAAC;QACf,CAAC,CAAC;QAEF,WAAM,GAAG,KAAK,EAAE,IAA+B,EAAE,EAAE;YAClD,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;YACtC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,WAAW,CAAC,CAAC;YAC5E,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC;QAChC,CAAC,CAAC;QAEF,UAAK,GAAG,KAAK,IAAI,EAAE;YAClB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;YACnC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAClC,SAAS,CAAC,qBAAqB,GAAG,IAAI,CAAC;YACvC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC;QACtE,CAAC,CAAC;IACH,CAAC;CAAA"}
@@ -1,19 +0,0 @@
1
- import { HeartbeatMessage, PresenceUpdateMessage, SyncMessage, SyncResponseMessage, SyncStep2Message, OperationMessage } from '@lo-fi/common';
2
- import { Metadata } from './Metadata.js';
3
- export declare class MessageCreator {
4
- private meta;
5
- constructor(meta: Metadata);
6
- createOperation: (init: Pick<OperationMessage, 'operations' | 'oldestHistoryTimestamp'> & {
7
- timestamp?: string;
8
- }) => Promise<OperationMessage>;
9
- createMigrationOperation: ({ targetVersion, ...init }: Pick<OperationMessage, "operations" | "oldestHistoryTimestamp"> & {
10
- targetVersion: number;
11
- }) => Promise<OperationMessage>;
12
- createSyncStep1: (resyncAll?: boolean) => Promise<SyncMessage>;
13
- /**
14
- * Pulls all local operations the server has not seen.
15
- */
16
- createSyncStep2: (provideChangesSince: SyncResponseMessage['provideChangesSince']) => Promise<SyncStep2Message>;
17
- createPresenceUpdate: (presence: any) => Promise<PresenceUpdateMessage>;
18
- createHeartbeat: () => Promise<HeartbeatMessage>;
19
- }
@@ -1,92 +0,0 @@
1
- var __rest = (this && this.__rest) || function (s, e) {
2
- var t = {};
3
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
- t[p] = s[p];
5
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
- t[p[i]] = s[p[i]];
9
- }
10
- return t;
11
- };
12
- import { getOidRoot, } from '@lo-fi/common';
13
- import cuid from 'cuid';
14
- export class MessageCreator {
15
- constructor(meta) {
16
- this.meta = meta;
17
- this.createOperation = async (init) => {
18
- const localInfo = await this.meta.localReplica.get();
19
- const opId = cuid();
20
- return {
21
- type: 'op',
22
- timestamp: this.meta.now,
23
- replicaId: localInfo.id,
24
- operations: init.operations,
25
- oldestHistoryTimestamp: init.oldestHistoryTimestamp,
26
- };
27
- };
28
- this.createMigrationOperation = async (_a) => {
29
- var { targetVersion } = _a, init = __rest(_a, ["targetVersion"]);
30
- const localInfo = await this.meta.localReplica.get();
31
- return {
32
- type: 'op',
33
- operations: init.operations.map((op) => (Object.assign(Object.assign({}, op), { timestamp: this.meta.sync.time.zero(targetVersion) }))),
34
- timestamp: this.meta.sync.time.zero(targetVersion),
35
- replicaId: localInfo.id,
36
- };
37
- };
38
- this.createSyncStep1 = async (resyncAll) => {
39
- const localReplicaInfo = await this.meta.localReplica.get();
40
- return {
41
- type: 'sync',
42
- schemaVersion: this.meta.schema.currentVersion,
43
- timestamp: this.meta.now,
44
- replicaId: localReplicaInfo.id,
45
- resyncAll,
46
- };
47
- };
48
- /**
49
- * Pulls all local operations the server has not seen.
50
- */
51
- this.createSyncStep2 = async (provideChangesSince) => {
52
- const localReplicaInfo = await this.meta.localReplica.get();
53
- // collect all of our operations that are newer than the server's last operation
54
- // if server replica isn't stored, we're syncing for the first time.
55
- const operations = [];
56
- await this.meta.operations.iterateOverAllLocalOperations((patch) => {
57
- operations.push(patch);
58
- }, {
59
- after: provideChangesSince,
60
- });
61
- // for now we just send every baseline for every
62
- // affected document... TODO: optimize this
63
- const affectedDocs = new Set(operations.map((patch) => getOidRoot(patch.oid)));
64
- const baselines = await this.meta.baselines.getAllForMultipleDocuments(Array.from(affectedDocs));
65
- return {
66
- type: 'sync-step2',
67
- timestamp: this.meta.now,
68
- operations,
69
- // don't send empty baselines
70
- baselines: baselines.filter(Boolean),
71
- replicaId: localReplicaInfo.id,
72
- };
73
- };
74
- this.createPresenceUpdate = async (presence) => {
75
- const localReplicaInfo = await this.meta.localReplica.get();
76
- return {
77
- type: 'presence-update',
78
- presence,
79
- replicaId: localReplicaInfo.id,
80
- };
81
- };
82
- this.createHeartbeat = async () => {
83
- const localReplicaInfo = await this.meta.localReplica.get();
84
- return {
85
- type: 'heartbeat',
86
- timestamp: this.meta.now,
87
- replicaId: localReplicaInfo.id,
88
- };
89
- };
90
- }
91
- }
92
- //# sourceMappingURL=MessageCreator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MessageCreator.js","sourceRoot":"","sources":["../../../src/v2/MessageCreator.ts"],"names":[],"mappings":"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"}
@@ -1,90 +0,0 @@
1
- import { ObjectIdentifier, Operation, PatchCreator, StorageSchema } from '@lo-fi/common';
2
- import { AckInfoStore } from './AckInfoStore.js';
3
- import { BaselinesStore } from './BaselinesStore.js';
4
- import { LocalHistoryStore } from './LocalHistoryStore.js';
5
- import { LocalReplicaStore } from './LocalReplicaStore.js';
6
- import { MessageCreator } from './MessageCreator.js';
7
- import { OperationsStore } from './OperationsStore.js';
8
- import { SchemaStore } from './SchemaStore.js';
9
- import type { Sync } from './Sync.js';
10
- export declare class Metadata {
11
- private readonly db;
12
- readonly sync: Sync;
13
- private readonly schemaDefinition;
14
- readonly operations: OperationsStore;
15
- readonly baselines: BaselinesStore;
16
- readonly localReplica: LocalReplicaStore;
17
- readonly ackInfo: AckInfoStore;
18
- readonly schema: SchemaStore;
19
- readonly localHistory: LocalHistoryStore;
20
- readonly messageCreator: MessageCreator;
21
- readonly patchCreator: PatchCreator;
22
- constructor(db: IDBDatabase, sync: Sync, schemaDefinition: StorageSchema<any>);
23
- get now(): string;
24
- /**
25
- * Methods for accessing data
26
- */
27
- /**
28
- * Recomputes an entire document from stored operations and baselines.
29
- */
30
- getComputedDocument: <T = any>(oid: ObjectIdentifier, upToTimestamp?: string) => Promise<T | undefined>;
31
- /**
32
- * Recomputes a normalized view of a single entity object from stored operations
33
- * and baseline.
34
- */
35
- getComputedEntity: <T = any>(oid: ObjectIdentifier, upToTimestamp?: string) => Promise<T | undefined>;
36
- /**
37
- * Methods for writing data
38
- */
39
- /**
40
- * Acks that we have seen a timestamp to the server
41
- * and stores it as our local ackedLogicalTime if it's
42
- * greater than our current ackedLogicalTime.
43
- */
44
- ack: (timestamp: string) => Promise<void>;
45
- /**
46
- * Applies a patch to the document and stores it in the database.
47
- * @returns the oldest local history timestamp
48
- */
49
- insertLocalOperation: (operations: Operation[]) => Promise<string | undefined>;
50
- /**
51
- * Inserts remote operations. This does not affect local history.
52
- * @returns a list of affected document OIDs
53
- */
54
- insertRemoteOperations: (operations: Operation[]) => Promise<string[]>;
55
- updateLastSynced: () => Promise<void>;
56
- lastSyncedTimestamp: () => Promise<string | null>;
57
- /**
58
- * Determines if the local client can do independent rebases.
59
- * This is only the case if the client has never synced
60
- * with a server (entirely offline mode)
61
- *
62
- * TODO:
63
- * This might be able to be expanded in the future, I feel
64
- * like there's some combination of "history is all my changes"
65
- * plus global ack which could allow squashing operations for
66
- * single objects.
67
- */
68
- private canAutonomouslyRebase;
69
- /**
70
- * Attempt to autonomously rebase local documents without server intervention.
71
- * This can currently only happen for a client who has never synced before.
72
- * The goal is to allow local-only clients to compress their history to exactly
73
- * their undo stack.
74
- */
75
- private tryAutonomousRebase;
76
- rebase: (oid: ObjectIdentifier, upTo: string) => Promise<void>;
77
- reset: () => Promise<void>;
78
- stats: () => Promise<{
79
- localHistoryLength: number;
80
- operationsSize: {
81
- count: number;
82
- size: number;
83
- };
84
- baselinesSize: {
85
- count: number;
86
- size: number;
87
- };
88
- }>;
89
- }
90
- export declare function openMetadataDatabase(namespace: string, indexedDB?: IDBFactory): Promise<IDBDatabase>;
@@ -1,246 +0,0 @@
1
- import { applyPatch, assignOid, PatchCreator, substituteRefsWithObjects, } from '@lo-fi/common';
2
- import { AckInfoStore } from './AckInfoStore.js';
3
- import { BaselinesStore } from './BaselinesStore.js';
4
- import { getSizeOfObjectStore } from './idb.js';
5
- import { LocalHistoryStore } from './LocalHistoryStore.js';
6
- import { LocalReplicaStore } from './LocalReplicaStore.js';
7
- import { MessageCreator } from './MessageCreator.js';
8
- import { OperationsStore } from './OperationsStore.js';
9
- import { SchemaStore } from './SchemaStore.js';
10
- export class Metadata {
11
- constructor(db, sync, schemaDefinition) {
12
- this.db = db;
13
- this.sync = sync;
14
- this.schemaDefinition = schemaDefinition;
15
- this.operations = new OperationsStore(this.db);
16
- this.baselines = new BaselinesStore(this.db);
17
- this.localReplica = new LocalReplicaStore(this.db);
18
- this.ackInfo = new AckInfoStore(this.db);
19
- this.schema = new SchemaStore(this.db, this.schemaDefinition.version);
20
- this.localHistory = new LocalHistoryStore(this.db);
21
- this.messageCreator = new MessageCreator(this);
22
- this.patchCreator = new PatchCreator(() => this.now);
23
- /**
24
- * Methods for accessing data
25
- */
26
- /**
27
- * Recomputes an entire document from stored operations and baselines.
28
- */
29
- this.getComputedDocument = async (oid, upToTimestamp) => {
30
- const baselines = await this.baselines.getAllForDocument(oid);
31
- const subObjectsMappedByOid = new Map();
32
- for (const baseline of baselines) {
33
- subObjectsMappedByOid.set(baseline.oid, baseline.snapshot);
34
- }
35
- let lastPatchWasDelete = false;
36
- await this.operations.iterateOverAllOperationsForDocument(oid, (patch) => {
37
- let current = subObjectsMappedByOid.get(patch.oid);
38
- current = applyPatch(current, patch.data);
39
- subObjectsMappedByOid.set(patch.oid, current);
40
- lastPatchWasDelete = patch.data.op === 'delete';
41
- // TODO: user-configurable delete-wins or delete-loses behavior?
42
- // one way to do that would be to ignore delete ops until the end,
43
- // and only return nothing if the last op was a delete.
44
- }, {
45
- to: upToTimestamp,
46
- });
47
- // assemble the various sub-objects into the document by
48
- // placing them where their ref is
49
- const rootBaseline = subObjectsMappedByOid.get(oid);
50
- // critical: attach metadata
51
- if (rootBaseline) {
52
- assignOid(rootBaseline, oid);
53
- const usedOids = substituteRefsWithObjects(rootBaseline, subObjectsMappedByOid);
54
- }
55
- // FIXME: this is a fragile check for deleted
56
- if (lastPatchWasDelete || !rootBaseline) {
57
- return undefined;
58
- }
59
- return rootBaseline;
60
- };
61
- /**
62
- * Recomputes a normalized view of a single entity object from stored operations
63
- * and baseline.
64
- */
65
- this.getComputedEntity = async (oid, upToTimestamp) => {
66
- const baseline = await this.baselines.get(oid);
67
- let current = (baseline === null || baseline === void 0 ? void 0 : baseline.snapshot) || undefined;
68
- let operationsApplied = 0;
69
- await this.operations.iterateOverAllOperationsForEntity(oid, (patch) => {
70
- current = applyPatch(current, patch.data);
71
- operationsApplied++;
72
- }, {
73
- to: upToTimestamp,
74
- });
75
- return current;
76
- };
77
- /**
78
- * Methods for writing data
79
- */
80
- /**
81
- * Acks that we have seen a timestamp to the server
82
- * and stores it as our local ackedLogicalTime if it's
83
- * greater than our current ackedLogicalTime.
84
- */
85
- this.ack = async (timestamp) => {
86
- const localReplicaInfo = await this.localReplica.get();
87
- this.sync.send({
88
- type: 'ack',
89
- replicaId: localReplicaInfo.id,
90
- timestamp,
91
- });
92
- if (!localReplicaInfo.ackedLogicalTime ||
93
- timestamp > localReplicaInfo.ackedLogicalTime) {
94
- this.localReplica.update({ ackedLogicalTime: timestamp });
95
- }
96
- };
97
- /**
98
- * Applies a patch to the document and stores it in the database.
99
- * @returns the oldest local history timestamp
100
- */
101
- this.insertLocalOperation = async (operations) => {
102
- if (operations.length === 0)
103
- return;
104
- const localReplicaInfo = await this.localReplica.get();
105
- await this.operations.addOperations(operations.map((patch) => (Object.assign(Object.assign({}, patch), { isLocal: true }))));
106
- const oldestHistoryTimestamp = await this.localHistory.add({
107
- timestamp: operations[operations.length - 1].timestamp,
108
- });
109
- this.tryAutonomousRebase(oldestHistoryTimestamp);
110
- return oldestHistoryTimestamp;
111
- };
112
- /**
113
- * Inserts remote operations. This does not affect local history.
114
- * @returns a list of affected document OIDs
115
- */
116
- this.insertRemoteOperations = async (operations) => {
117
- if (operations.length === 0)
118
- return [];
119
- const affectedOids = await this.operations.addOperations(operations.map((patch) => (Object.assign(Object.assign({}, patch), { isLocal: false }))));
120
- this.ack(operations[operations.length - 1].timestamp);
121
- return affectedOids;
122
- };
123
- this.updateLastSynced = async () => {
124
- return this.localReplica.update({
125
- lastSyncedLogicalTime: this.now,
126
- });
127
- };
128
- this.lastSyncedTimestamp = async () => {
129
- const localReplicaInfo = await this.localReplica.get();
130
- return localReplicaInfo.lastSyncedLogicalTime;
131
- };
132
- /**
133
- * Attempt to autonomously rebase local documents without server intervention.
134
- * This can currently only happen for a client who has never synced before.
135
- * The goal is to allow local-only clients to compress their history to exactly
136
- * their undo stack.
137
- */
138
- this.tryAutonomousRebase = async (oldestHistoryTimestamp) => {
139
- if (!(await this.canAutonomouslyRebase())) {
140
- return;
141
- }
142
- const localInfo = await this.localReplica.get();
143
- // find all operations before the oldest history timestamp
144
- const priorOperations = new Array();
145
- await this.operations.iterateOverAllLocalOperations((patch) => {
146
- priorOperations.push(patch);
147
- }, {
148
- before: oldestHistoryTimestamp,
149
- });
150
- if (!priorOperations.length) {
151
- return;
152
- }
153
- // gather all oids affected
154
- const toRebase = new Set();
155
- for (const op of priorOperations) {
156
- toRebase.add(op.oid);
157
- }
158
- const lastOperation = priorOperations[priorOperations.length - 1];
159
- // rebase each affected document
160
- for (const oid of toRebase) {
161
- await this.rebase(oid, lastOperation.timestamp);
162
- }
163
- };
164
- this.rebase = async (oid, upTo) => {
165
- console.log('Rebasing', oid, 'up to', upTo);
166
- const view = await this.getComputedEntity(oid, upTo);
167
- await this.baselines.set({
168
- oid,
169
- snapshot: view,
170
- timestamp: upTo,
171
- });
172
- // separate iteration to ensure the above has completed before destructive
173
- // actions. TODO: use a transaction instead
174
- await this.operations.iterateOverAllOperationsForEntity(oid, (op, store) => {
175
- store.delete(op.oid_timestamp);
176
- }, {
177
- to: upTo,
178
- mode: 'readwrite',
179
- });
180
- console.log('successfully rebased', oid, 'up to', upTo, ':', view);
181
- };
182
- this.reset = async () => {
183
- await this.operations.reset();
184
- await this.baselines.reset();
185
- await this.localHistory.reset();
186
- await this.localReplica.reset();
187
- };
188
- this.stats = async () => {
189
- const db = this.db;
190
- const history = await this.localHistory.get();
191
- const operationsSize = await getSizeOfObjectStore(db, 'operations');
192
- const baselinesSize = await getSizeOfObjectStore(db, 'baselines');
193
- return {
194
- localHistoryLength: (history === null || history === void 0 ? void 0 : history.items.length) || 0,
195
- operationsSize,
196
- baselinesSize,
197
- };
198
- };
199
- }
200
- get now() {
201
- return this.sync.time.now(this.schema.currentVersion);
202
- }
203
- /**
204
- * Determines if the local client can do independent rebases.
205
- * This is only the case if the client has never synced
206
- * with a server (entirely offline mode)
207
- *
208
- * TODO:
209
- * This might be able to be expanded in the future, I feel
210
- * like there's some combination of "history is all my changes"
211
- * plus global ack which could allow squashing operations for
212
- * single objects.
213
- */
214
- async canAutonomouslyRebase() {
215
- return !(await this.localReplica.get()).lastSyncedLogicalTime;
216
- }
217
- }
218
- export function openMetadataDatabase(namespace, indexedDB = window.indexedDB) {
219
- return new Promise((resolve, reject) => {
220
- const request = indexedDB.open([namespace, 'meta'].join('_'), 1);
221
- request.onupgradeneeded = (event) => {
222
- const db = request.result;
223
- // version 1: operations list, baselines, and local info
224
- if (!event.oldVersion) {
225
- const baselinesStore = db.createObjectStore('baselines', {
226
- keyPath: 'oid',
227
- });
228
- const operationsStore = db.createObjectStore('operations', {
229
- keyPath: 'oid_timestamp',
230
- });
231
- const infoStore = db.createObjectStore('info', { keyPath: 'type' });
232
- baselinesStore.createIndex('timestamp', 'timestamp');
233
- operationsStore.createIndex('isLocal_timestamp', 'isLocal_timestamp');
234
- operationsStore.createIndex('documentOid_timestamp', 'documentOid_timestamp');
235
- }
236
- };
237
- request.onerror = () => {
238
- console.error('Error opening database', request.error);
239
- reject(request.error);
240
- };
241
- request.onsuccess = () => {
242
- resolve(request.result);
243
- };
244
- });
245
- }
246
- //# sourceMappingURL=Metadata.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Metadata.js","sourceRoot":"","sources":["../../../src/v2/Metadata.ts"],"names":[],"mappings":"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"}
@@ -1,38 +0,0 @@
1
- import { ObjectIdentifier, Operation } from '@lo-fi/common';
2
- import { IDBService } from './IDBService.js';
3
- export declare type ClientOperation = Operation & {
4
- isLocal: boolean;
5
- };
6
- export declare type StoredClientOperation = ClientOperation & {
7
- oid_timestamp: string;
8
- isLocal_timestamp: string;
9
- documentOid_timestamp: string;
10
- };
11
- export declare class OperationsStore extends IDBService {
12
- /**
13
- * Iterates over every patch for the root and every sub-object
14
- * of a given document. Optionally limit by timestamp.
15
- */
16
- iterateOverAllOperationsForDocument: (oid: ObjectIdentifier, iterator: (patch: StoredClientOperation, store: IDBObjectStore) => void, { to, from, after, mode, }?: {
17
- to?: string | undefined;
18
- from?: string | undefined;
19
- after?: string | undefined;
20
- mode?: "readonly" | "readwrite" | undefined;
21
- }) => Promise<void>;
22
- iterateOverAllOperationsForEntity: (oid: ObjectIdentifier, iterator: (patch: StoredClientOperation, store: IDBObjectStore) => void, { to, mode, }: {
23
- to?: string | undefined;
24
- mode?: "readonly" | "readwrite" | undefined;
25
- }) => Promise<void>;
26
- iterateOverAllLocalOperations: (iterator: (patch: ClientOperation, store: IDBObjectStore) => void, { before, after, }: {
27
- before?: string | null | undefined;
28
- after?: string | null | undefined;
29
- }) => Promise<void>;
30
- /**
31
- * Adds a set of patches to the database.
32
- * @returns a list of affected root document OIDs.
33
- */
34
- addOperations: (patches: ClientOperation[]) => Promise<ObjectIdentifier[]>;
35
- private addCompoundIndexes;
36
- private insert;
37
- reset: () => Promise<undefined>;
38
- }