@verdant-web/store 2.0.1 → 2.0.2

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