@verdant-web/store 3.3.2 → 3.4.0-next.0

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 (336) hide show
  1. package/dist/bundle/index.js +8 -8
  2. package/dist/bundle/index.js.map +4 -4
  3. package/dist/esm/BackoffScheduler.js.map +1 -1
  4. package/dist/esm/IDBService.js.map +1 -1
  5. package/dist/esm/UndoHistory.js.map +1 -1
  6. package/dist/esm/__tests__/documents.test.js.map +1 -1
  7. package/dist/esm/__tests__/queries.test.js.map +1 -1
  8. package/dist/esm/backup.js.map +1 -1
  9. package/dist/esm/client/Client.js +7 -0
  10. package/dist/esm/client/Client.js.map +1 -1
  11. package/dist/esm/client/ClientDescriptor.js.map +1 -1
  12. package/dist/esm/entities/Entity.js.map +1 -1
  13. package/dist/esm/entities/EntityCache.js.map +1 -1
  14. package/dist/esm/entities/EntityMetadata.js.map +1 -1
  15. package/dist/esm/entities/EntityStore.js.map +1 -1
  16. package/dist/esm/entities/OperationBatcher.js.map +1 -1
  17. package/dist/esm/files/EntityFile.js.map +1 -1
  18. package/dist/esm/files/FileManager.js +3 -0
  19. package/dist/esm/files/FileManager.js.map +1 -1
  20. package/dist/esm/files/FileStorage.js.map +1 -1
  21. package/dist/esm/files/utils.js.map +1 -1
  22. package/dist/esm/idb.js.map +1 -1
  23. package/dist/esm/metadata/AckInfoStore.js.map +1 -1
  24. package/dist/esm/metadata/LocalReplicaStore.js.map +1 -1
  25. package/dist/esm/metadata/MessageCreator.js.map +1 -1
  26. package/dist/esm/metadata/Metadata.js.map +1 -1
  27. package/dist/esm/metadata/OperationsStore.js.map +1 -1
  28. package/dist/esm/metadata/SchemaStore.js.map +1 -1
  29. package/dist/esm/metadata/openMetadataDatabase.js.map +1 -1
  30. package/dist/esm/migration/db.js.map +1 -1
  31. package/dist/esm/migration/openDatabase.js.map +1 -1
  32. package/dist/esm/migration/paths.js.map +1 -1
  33. package/dist/esm/queries/BaseQuery.js.map +1 -1
  34. package/dist/esm/queries/QueryCache.js.map +1 -1
  35. package/dist/esm/queries/QueryableStorage.js.map +1 -1
  36. package/dist/esm/queries/dbQueries.js.map +1 -1
  37. package/dist/esm/queries/keys.js.map +1 -1
  38. package/dist/esm/queries/ranges.js.map +1 -1
  39. package/dist/esm/queries/utils.js.map +1 -1
  40. package/dist/esm/sync/FileSync.js.map +1 -1
  41. package/dist/esm/sync/Heartbeat.js.map +1 -1
  42. package/dist/esm/sync/PresenceManager.js.map +1 -1
  43. package/dist/esm/sync/PushPullSync.js.map +1 -1
  44. package/dist/esm/sync/ServerSyncEndpointProvider.js.map +1 -1
  45. package/dist/esm/sync/Sync.js.map +1 -1
  46. package/dist/esm/sync/WebSocketSync.js.map +1 -1
  47. package/package.json +9 -10
  48. package/src/client/Client.ts +8 -1
  49. package/src/files/FileManager.ts +4 -0
  50. package/src/sync/Sync.ts +2 -2
  51. package/dist/cjs/BackoffScheduler.d.ts +0 -19
  52. package/dist/cjs/BackoffScheduler.js +0 -45
  53. package/dist/cjs/BackoffScheduler.js.map +0 -1
  54. package/dist/cjs/DocumentManager.d.ts +0 -28
  55. package/dist/cjs/DocumentManager.js +0 -45
  56. package/dist/cjs/DocumentManager.js.map +0 -1
  57. package/dist/cjs/FakeWeakRef.d.ts +0 -11
  58. package/dist/cjs/FakeWeakRef.js +0 -19
  59. package/dist/cjs/FakeWeakRef.js.map +0 -1
  60. package/dist/cjs/IDBService.d.ts +0 -30
  61. package/dist/cjs/IDBService.js +0 -101
  62. package/dist/cjs/IDBService.js.map +0 -1
  63. package/dist/cjs/UndoHistory.d.ts +0 -16
  64. package/dist/cjs/UndoHistory.js +0 -55
  65. package/dist/cjs/UndoHistory.js.map +0 -1
  66. package/dist/cjs/__tests__/batching.test.d.ts +0 -1
  67. package/dist/cjs/__tests__/batching.test.js +0 -47
  68. package/dist/cjs/__tests__/batching.test.js.map +0 -1
  69. package/dist/cjs/__tests__/documents.test.d.ts +0 -1
  70. package/dist/cjs/__tests__/documents.test.js +0 -468
  71. package/dist/cjs/__tests__/documents.test.js.map +0 -1
  72. package/dist/cjs/__tests__/fixtures/testStorage.d.ts +0 -76
  73. package/dist/cjs/__tests__/fixtures/testStorage.js +0 -96
  74. package/dist/cjs/__tests__/fixtures/testStorage.js.map +0 -1
  75. package/dist/cjs/__tests__/legacyOids.test.d.ts +0 -1
  76. package/dist/cjs/__tests__/legacyOids.test.js +0 -354
  77. package/dist/cjs/__tests__/legacyOids.test.js.map +0 -1
  78. package/dist/cjs/__tests__/mutations.test.d.ts +0 -1
  79. package/dist/cjs/__tests__/mutations.test.js +0 -48
  80. package/dist/cjs/__tests__/mutations.test.js.map +0 -1
  81. package/dist/cjs/__tests__/queries.test.d.ts +0 -1
  82. package/dist/cjs/__tests__/queries.test.js +0 -323
  83. package/dist/cjs/__tests__/queries.test.js.map +0 -1
  84. package/dist/cjs/__tests__/setup/indexedDB.d.ts +0 -1
  85. package/dist/cjs/__tests__/setup/indexedDB.js +0 -16
  86. package/dist/cjs/__tests__/setup/indexedDB.js.map +0 -1
  87. package/dist/cjs/__tests__/undo.test.d.ts +0 -1
  88. package/dist/cjs/__tests__/undo.test.js +0 -94
  89. package/dist/cjs/__tests__/undo.test.js.map +0 -1
  90. package/dist/cjs/backup.d.ts +0 -10
  91. package/dist/cjs/backup.js +0 -58
  92. package/dist/cjs/backup.js.map +0 -1
  93. package/dist/cjs/client/Client.d.ts +0 -120
  94. package/dist/cjs/client/Client.js +0 -300
  95. package/dist/cjs/client/Client.js.map +0 -1
  96. package/dist/cjs/client/ClientDescriptor.d.ts +0 -76
  97. package/dist/cjs/client/ClientDescriptor.js +0 -213
  98. package/dist/cjs/client/ClientDescriptor.js.map +0 -1
  99. package/dist/cjs/client/constants.d.ts +0 -1
  100. package/dist/cjs/client/constants.js +0 -5
  101. package/dist/cjs/client/constants.js.map +0 -1
  102. package/dist/cjs/constants.d.ts +0 -1
  103. package/dist/cjs/constants.js +0 -5
  104. package/dist/cjs/constants.js.map +0 -1
  105. package/dist/cjs/context.d.ts +0 -38
  106. package/dist/cjs/context.js +0 -3
  107. package/dist/cjs/context.js.map +0 -1
  108. package/dist/cjs/entities/Entity.d.ts +0 -148
  109. package/dist/cjs/entities/Entity.js +0 -711
  110. package/dist/cjs/entities/Entity.js.map +0 -1
  111. package/dist/cjs/entities/Entity.test.d.ts +0 -1
  112. package/dist/cjs/entities/Entity.test.js +0 -194
  113. package/dist/cjs/entities/Entity.test.js.map +0 -1
  114. package/dist/cjs/entities/EntityCache.d.ts +0 -15
  115. package/dist/cjs/entities/EntityCache.js +0 -39
  116. package/dist/cjs/entities/EntityCache.js.map +0 -1
  117. package/dist/cjs/entities/EntityMetadata.d.ts +0 -68
  118. package/dist/cjs/entities/EntityMetadata.js +0 -261
  119. package/dist/cjs/entities/EntityMetadata.js.map +0 -1
  120. package/dist/cjs/entities/EntityStore.d.ts +0 -80
  121. package/dist/cjs/entities/EntityStore.js +0 -352
  122. package/dist/cjs/entities/EntityStore.js.map +0 -1
  123. package/dist/cjs/entities/OperationBatcher.d.ts +0 -52
  124. package/dist/cjs/entities/OperationBatcher.js +0 -165
  125. package/dist/cjs/entities/OperationBatcher.js.map +0 -1
  126. package/dist/cjs/entities/types.d.ts +0 -103
  127. package/dist/cjs/entities/types.js +0 -3
  128. package/dist/cjs/entities/types.js.map +0 -1
  129. package/dist/cjs/files/EntityFile.d.ts +0 -35
  130. package/dist/cjs/files/EntityFile.js +0 -81
  131. package/dist/cjs/files/EntityFile.js.map +0 -1
  132. package/dist/cjs/files/FileManager.d.ts +0 -46
  133. package/dist/cjs/files/FileManager.js +0 -174
  134. package/dist/cjs/files/FileManager.js.map +0 -1
  135. package/dist/cjs/files/FileStorage.d.ts +0 -39
  136. package/dist/cjs/files/FileStorage.js +0 -110
  137. package/dist/cjs/files/FileStorage.js.map +0 -1
  138. package/dist/cjs/files/utils.d.ts +0 -10
  139. package/dist/cjs/files/utils.js +0 -62
  140. package/dist/cjs/files/utils.js.map +0 -1
  141. package/dist/cjs/files/utils.test.d.ts +0 -1
  142. package/dist/cjs/files/utils.test.js +0 -81
  143. package/dist/cjs/files/utils.test.js.map +0 -1
  144. package/dist/cjs/idb.d.ts +0 -13
  145. package/dist/cjs/idb.js +0 -158
  146. package/dist/cjs/idb.js.map +0 -1
  147. package/dist/cjs/index.d.ts +0 -23
  148. package/dist/cjs/index.js +0 -25
  149. package/dist/cjs/index.js.map +0 -1
  150. package/dist/cjs/metadata/AckInfoStore.d.ts +0 -10
  151. package/dist/cjs/metadata/AckInfoStore.js +0 -26
  152. package/dist/cjs/metadata/AckInfoStore.js.map +0 -1
  153. package/dist/cjs/metadata/BaselinesStore.d.ts +0 -40
  154. package/dist/cjs/metadata/BaselinesStore.js +0 -106
  155. package/dist/cjs/metadata/BaselinesStore.js.map +0 -1
  156. package/dist/cjs/metadata/LocalReplicaStore.d.ts +0 -18
  157. package/dist/cjs/metadata/LocalReplicaStore.js +0 -62
  158. package/dist/cjs/metadata/LocalReplicaStore.js.map +0 -1
  159. package/dist/cjs/metadata/MessageCreator.d.ts +0 -19
  160. package/dist/cjs/metadata/MessageCreator.js +0 -128
  161. package/dist/cjs/metadata/MessageCreator.js.map +0 -1
  162. package/dist/cjs/metadata/Metadata.d.ts +0 -135
  163. package/dist/cjs/metadata/Metadata.js +0 -408
  164. package/dist/cjs/metadata/Metadata.js.map +0 -1
  165. package/dist/cjs/metadata/OperationsStore.d.ts +0 -62
  166. package/dist/cjs/metadata/OperationsStore.js +0 -179
  167. package/dist/cjs/metadata/OperationsStore.js.map +0 -1
  168. package/dist/cjs/metadata/SchemaStore.d.ts +0 -9
  169. package/dist/cjs/metadata/SchemaStore.js +0 -39
  170. package/dist/cjs/metadata/SchemaStore.js.map +0 -1
  171. package/dist/cjs/metadata/openMetadataDatabase.d.ts +0 -19
  172. package/dist/cjs/metadata/openMetadataDatabase.js +0 -220
  173. package/dist/cjs/metadata/openMetadataDatabase.js.map +0 -1
  174. package/dist/cjs/migration/db.d.ts +0 -8
  175. package/dist/cjs/migration/db.js +0 -112
  176. package/dist/cjs/migration/db.js.map +0 -1
  177. package/dist/cjs/migration/errors.d.ts +0 -5
  178. package/dist/cjs/migration/errors.js +0 -12
  179. package/dist/cjs/migration/errors.js.map +0 -1
  180. package/dist/cjs/migration/openDatabase.d.ts +0 -20
  181. package/dist/cjs/migration/openDatabase.js +0 -468
  182. package/dist/cjs/migration/openDatabase.js.map +0 -1
  183. package/dist/cjs/migration/paths.d.ts +0 -6
  184. package/dist/cjs/migration/paths.js +0 -53
  185. package/dist/cjs/migration/paths.js.map +0 -1
  186. package/dist/cjs/migration/paths.test.d.ts +0 -1
  187. package/dist/cjs/migration/paths.test.js +0 -91
  188. package/dist/cjs/migration/paths.test.js.map +0 -1
  189. package/dist/cjs/queries/BaseQuery.d.ts +0 -53
  190. package/dist/cjs/queries/BaseQuery.js +0 -148
  191. package/dist/cjs/queries/BaseQuery.js.map +0 -1
  192. package/dist/cjs/queries/CollectionQueries.d.ts +0 -55
  193. package/dist/cjs/queries/CollectionQueries.js +0 -92
  194. package/dist/cjs/queries/CollectionQueries.js.map +0 -1
  195. package/dist/cjs/queries/FindAllQuery.d.ts +0 -12
  196. package/dist/cjs/queries/FindAllQuery.js +0 -44
  197. package/dist/cjs/queries/FindAllQuery.js.map +0 -1
  198. package/dist/cjs/queries/FindInfiniteQuery.d.ts +0 -19
  199. package/dist/cjs/queries/FindInfiniteQuery.js +0 -70
  200. package/dist/cjs/queries/FindInfiniteQuery.js.map +0 -1
  201. package/dist/cjs/queries/FindOneQuery.d.ts +0 -12
  202. package/dist/cjs/queries/FindOneQuery.js +0 -43
  203. package/dist/cjs/queries/FindOneQuery.js.map +0 -1
  204. package/dist/cjs/queries/FindPageQuery.d.ts +0 -24
  205. package/dist/cjs/queries/FindPageQuery.js +0 -77
  206. package/dist/cjs/queries/FindPageQuery.js.map +0 -1
  207. package/dist/cjs/queries/GetQuery.d.ts +0 -10
  208. package/dist/cjs/queries/GetQuery.js +0 -30
  209. package/dist/cjs/queries/GetQuery.js.map +0 -1
  210. package/dist/cjs/queries/QueryCache.d.ts +0 -17
  211. package/dist/cjs/queries/QueryCache.js +0 -46
  212. package/dist/cjs/queries/QueryCache.js.map +0 -1
  213. package/dist/cjs/queries/QueryableStorage.d.ts +0 -20
  214. package/dist/cjs/queries/QueryableStorage.js +0 -94
  215. package/dist/cjs/queries/QueryableStorage.js.map +0 -1
  216. package/dist/cjs/queries/dbQueries.d.ts +0 -22
  217. package/dist/cjs/queries/dbQueries.js +0 -136
  218. package/dist/cjs/queries/dbQueries.js.map +0 -1
  219. package/dist/cjs/queries/keys.d.ts +0 -10
  220. package/dist/cjs/queries/keys.js +0 -34
  221. package/dist/cjs/queries/keys.js.map +0 -1
  222. package/dist/cjs/queries/ranges.d.ts +0 -2
  223. package/dist/cjs/queries/ranges.js +0 -70
  224. package/dist/cjs/queries/ranges.js.map +0 -1
  225. package/dist/cjs/queries/types.d.ts +0 -6
  226. package/dist/cjs/queries/types.js +0 -3
  227. package/dist/cjs/queries/types.js.map +0 -1
  228. package/dist/cjs/queries/utils.d.ts +0 -3
  229. package/dist/cjs/queries/utils.js +0 -25
  230. package/dist/cjs/queries/utils.js.map +0 -1
  231. package/dist/cjs/sync/FileSync.d.ts +0 -24
  232. package/dist/cjs/sync/FileSync.js +0 -87
  233. package/dist/cjs/sync/FileSync.js.map +0 -1
  234. package/dist/cjs/sync/Heartbeat.d.ts +0 -25
  235. package/dist/cjs/sync/Heartbeat.js +0 -64
  236. package/dist/cjs/sync/Heartbeat.js.map +0 -1
  237. package/dist/cjs/sync/PresenceManager.d.ts +0 -55
  238. package/dist/cjs/sync/PresenceManager.js +0 -126
  239. package/dist/cjs/sync/PresenceManager.js.map +0 -1
  240. package/dist/cjs/sync/PushPullSync.d.ts +0 -39
  241. package/dist/cjs/sync/PushPullSync.js +0 -159
  242. package/dist/cjs/sync/PushPullSync.js.map +0 -1
  243. package/dist/cjs/sync/ServerSyncEndpointProvider.d.ts +0 -34
  244. package/dist/cjs/sync/ServerSyncEndpointProvider.js +0 -69
  245. package/dist/cjs/sync/ServerSyncEndpointProvider.js.map +0 -1
  246. package/dist/cjs/sync/Sync.d.ts +0 -160
  247. package/dist/cjs/sync/Sync.js +0 -293
  248. package/dist/cjs/sync/Sync.js.map +0 -1
  249. package/dist/cjs/sync/WebSocketSync.d.ts +0 -44
  250. package/dist/cjs/sync/WebSocketSync.js +0 -221
  251. package/dist/cjs/sync/WebSocketSync.js.map +0 -1
  252. package/dist/cjs/types.d.ts +0 -12
  253. package/dist/cjs/types.js +0 -3
  254. package/dist/cjs/types.js.map +0 -1
  255. package/dist/cjs/utils/Disposable.d.ts +0 -6
  256. package/dist/cjs/utils/Disposable.js +0 -19
  257. package/dist/cjs/utils/Disposable.js.map +0 -1
  258. package/dist/cjs/utils/Resolvable.d.ts +0 -8
  259. package/dist/cjs/utils/Resolvable.js +0 -23
  260. package/dist/cjs/utils/Resolvable.js.map +0 -1
  261. package/dist/cjs/vanilla.d.ts +0 -1
  262. package/dist/cjs/vanilla.js +0 -28
  263. package/dist/cjs/vanilla.js.map +0 -1
  264. package/dist/esm/BackoffScheduler.d.ts +0 -19
  265. package/dist/esm/DocumentManager.d.ts +0 -28
  266. package/dist/esm/FakeWeakRef.d.ts +0 -11
  267. package/dist/esm/IDBService.d.ts +0 -30
  268. package/dist/esm/UndoHistory.d.ts +0 -16
  269. package/dist/esm/__tests__/batching.test.d.ts +0 -1
  270. package/dist/esm/__tests__/documents.test.d.ts +0 -1
  271. package/dist/esm/__tests__/fixtures/testStorage.d.ts +0 -76
  272. package/dist/esm/__tests__/legacyOids.test.d.ts +0 -1
  273. package/dist/esm/__tests__/mutations.test.d.ts +0 -1
  274. package/dist/esm/__tests__/queries.test.d.ts +0 -1
  275. package/dist/esm/__tests__/setup/indexedDB.d.ts +0 -1
  276. package/dist/esm/__tests__/undo.test.d.ts +0 -1
  277. package/dist/esm/backup.d.ts +0 -10
  278. package/dist/esm/client/Client.d.ts +0 -120
  279. package/dist/esm/client/ClientDescriptor.d.ts +0 -76
  280. package/dist/esm/client/constants.d.ts +0 -1
  281. package/dist/esm/constants.d.ts +0 -1
  282. package/dist/esm/context.d.ts +0 -38
  283. package/dist/esm/entities/Entity.d.ts +0 -148
  284. package/dist/esm/entities/Entity.test.d.ts +0 -1
  285. package/dist/esm/entities/EntityCache.d.ts +0 -15
  286. package/dist/esm/entities/EntityMetadata.d.ts +0 -68
  287. package/dist/esm/entities/EntityStore.d.ts +0 -80
  288. package/dist/esm/entities/OperationBatcher.d.ts +0 -52
  289. package/dist/esm/entities/types.d.ts +0 -103
  290. package/dist/esm/files/EntityFile.d.ts +0 -35
  291. package/dist/esm/files/FileManager.d.ts +0 -46
  292. package/dist/esm/files/FileStorage.d.ts +0 -39
  293. package/dist/esm/files/utils.d.ts +0 -10
  294. package/dist/esm/files/utils.test.d.ts +0 -1
  295. package/dist/esm/idb.d.ts +0 -13
  296. package/dist/esm/index.d.ts +0 -23
  297. package/dist/esm/metadata/AckInfoStore.d.ts +0 -10
  298. package/dist/esm/metadata/BaselinesStore.d.ts +0 -40
  299. package/dist/esm/metadata/LocalReplicaStore.d.ts +0 -18
  300. package/dist/esm/metadata/MessageCreator.d.ts +0 -19
  301. package/dist/esm/metadata/Metadata.d.ts +0 -135
  302. package/dist/esm/metadata/OperationsStore.d.ts +0 -62
  303. package/dist/esm/metadata/SchemaStore.d.ts +0 -9
  304. package/dist/esm/metadata/openMetadataDatabase.d.ts +0 -19
  305. package/dist/esm/migration/db.d.ts +0 -8
  306. package/dist/esm/migration/errors.d.ts +0 -5
  307. package/dist/esm/migration/openDatabase.d.ts +0 -20
  308. package/dist/esm/migration/paths.d.ts +0 -6
  309. package/dist/esm/migration/paths.test.d.ts +0 -1
  310. package/dist/esm/queries/BaseQuery.d.ts +0 -53
  311. package/dist/esm/queries/CollectionQueries.d.ts +0 -55
  312. package/dist/esm/queries/FindAllQuery.d.ts +0 -12
  313. package/dist/esm/queries/FindInfiniteQuery.d.ts +0 -19
  314. package/dist/esm/queries/FindOneQuery.d.ts +0 -12
  315. package/dist/esm/queries/FindPageQuery.d.ts +0 -24
  316. package/dist/esm/queries/GetQuery.d.ts +0 -10
  317. package/dist/esm/queries/QueryCache.d.ts +0 -17
  318. package/dist/esm/queries/QueryableStorage.d.ts +0 -20
  319. package/dist/esm/queries/dbQueries.d.ts +0 -22
  320. package/dist/esm/queries/keys.d.ts +0 -10
  321. package/dist/esm/queries/ranges.d.ts +0 -2
  322. package/dist/esm/queries/types.d.ts +0 -6
  323. package/dist/esm/queries/utils.d.ts +0 -3
  324. package/dist/esm/sync/FileSync.d.ts +0 -24
  325. package/dist/esm/sync/Heartbeat.d.ts +0 -25
  326. package/dist/esm/sync/PresenceManager.d.ts +0 -55
  327. package/dist/esm/sync/PushPullSync.d.ts +0 -39
  328. package/dist/esm/sync/ServerSyncEndpointProvider.d.ts +0 -34
  329. package/dist/esm/sync/Sync.d.ts +0 -160
  330. package/dist/esm/sync/WebSocketSync.d.ts +0 -44
  331. package/dist/esm/types.d.ts +0 -12
  332. package/dist/esm/utils/Disposable.d.ts +0 -6
  333. package/dist/esm/utils/Resolvable.d.ts +0 -8
  334. package/dist/esm/vanilla.d.ts +0 -1
  335. package/dist/tsconfig-cjs.tsbuildinfo +0 -1
  336. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"EntityMetadata.js","sourceRoot":"","sources":["../../../src/entities/EntityMetadata.ts"],"names":[],"mappings":"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"}
@@ -1,80 +0,0 @@
1
- import { DocumentBaseline, ObjectIdentifier, Operation } from '@verdant-web/common';
2
- import { Context } from '../context.js';
3
- import { Metadata } from '../metadata/Metadata.js';
4
- import { Entity } from './Entity.js';
5
- import { Disposable } from '../utils/Disposable.js';
6
- import { FileManager } from '../files/FileManager.js';
7
- import { WeakEvent } from 'weak-event';
8
- import { abort } from 'process';
9
- export type EntityStoreEventData = {
10
- oid: ObjectIdentifier;
11
- operations?: Record<string, Operation[]>;
12
- baselines?: DocumentBaseline[];
13
- isLocal: boolean;
14
- };
15
- export type EntityStoreEvents = {
16
- add: WeakEvent<EntityStore, EntityStoreEventData>;
17
- replace: WeakEvent<EntityStore, EntityStoreEventData>;
18
- resetAll: WeakEvent<EntityStore, void>;
19
- };
20
- type IncomingData = {
21
- operations?: Operation[];
22
- baselines?: DocumentBaseline[];
23
- reset?: boolean;
24
- isLocal?: boolean;
25
- };
26
- export declare class EntityStore extends Disposable {
27
- private ctx;
28
- private meta;
29
- private files;
30
- private batcher;
31
- private queryableStorage;
32
- private events;
33
- private cache;
34
- private pendingEntityPromises;
35
- private abortDataQueueController;
36
- private ongoingResetPromise;
37
- private entityFinalizationRegistry;
38
- constructor({ ctx, meta, files, }: {
39
- ctx: Context;
40
- meta: Metadata;
41
- files: FileManager;
42
- });
43
- get batch(): ({ undoable, batchName, max, timeout, }?: {
44
- undoable?: boolean | undefined;
45
- batchName?: string | undefined;
46
- max?: number | null | undefined;
47
- timeout?: number | null | undefined;
48
- }) => import("./OperationBatcher.js").OperationBatch;
49
- get flushAllBatches(): () => Promise<any[]>;
50
- addData: (data: IncomingData) => Promise<void>;
51
- private resetData;
52
- private processData;
53
- hydrate: (oid: string, opts?: {
54
- abort: AbortSignal;
55
- }) => Promise<Entity | null>;
56
- destroy: () => Promise<void>;
57
- /**
58
- * Creates a new Entity with the given initial data.
59
- */
60
- create: (initial: any, oid: ObjectIdentifier, { undoable }?: {
61
- undoable?: boolean | undefined;
62
- }) => Promise<Entity<any, any, any>>;
63
- deleteAll: (oids: ObjectIdentifier[], options?: {
64
- undoable?: boolean;
65
- }) => Promise<void>;
66
- delete: (oid: ObjectIdentifier, options?: {
67
- undoable?: boolean;
68
- }) => Promise<void>;
69
- private getCollectionSchema;
70
- /**
71
- * Constructs an entity from an OID, but does not load it.
72
- */
73
- private constructEntity;
74
- private onPendingOperations;
75
- /**
76
- * Loads initial Entity data from storage
77
- */
78
- private loadEntity;
79
- }
80
- export {};
@@ -1,352 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EntityStore = void 0;
4
- const common_1 = require("@verdant-web/common");
5
- const Entity_js_1 = require("./Entity.js");
6
- const Disposable_js_1 = require("../utils/Disposable.js");
7
- const EntityMetadata_js_1 = require("./EntityMetadata.js");
8
- const OperationBatcher_js_1 = require("./OperationBatcher.js");
9
- const QueryableStorage_js_1 = require("../queries/QueryableStorage.js");
10
- const weak_event_1 = require("weak-event");
11
- const utils_js_1 = require("../files/utils.js");
12
- var AbortReason;
13
- (function (AbortReason) {
14
- AbortReason[AbortReason["Reset"] = 0] = "Reset";
15
- })(AbortReason || (AbortReason = {}));
16
- class EntityStore extends Disposable_js_1.Disposable {
17
- constructor({ ctx, meta, files, }) {
18
- super();
19
- this.events = {
20
- add: new weak_event_1.WeakEvent(),
21
- replace: new weak_event_1.WeakEvent(),
22
- resetAll: new weak_event_1.WeakEvent(),
23
- };
24
- this.cache = new Map();
25
- this.pendingEntityPromises = new Map();
26
- // halts the current data queue processing
27
- this.abortDataQueueController = new AbortController();
28
- this.ongoingResetPromise = null;
29
- this.entityFinalizationRegistry = new FinalizationRegistry((oid) => {
30
- this.ctx.log('debug', 'Entity GC', oid);
31
- });
32
- // internal-ish API to load remote / stored data
33
- this.addData = async (data) => {
34
- if (this.disposed) {
35
- this.ctx.log('warn', 'EntityStore is disposed, not adding incoming data');
36
- return;
37
- }
38
- // for resets - abort any other changes, reset everything,
39
- // then proceed
40
- if (data.reset) {
41
- this.ctx.log('info', 'Resetting local store to replicate remote synced data - dropping any current transactions');
42
- // cancel any other ongoing data - it will all
43
- // be replaced by the reset
44
- this.abortDataQueueController.abort(AbortReason.Reset);
45
- this.abortDataQueueController = new AbortController();
46
- this.ongoingResetPromise = this.resetData().finally(() => {
47
- this.ongoingResetPromise = null;
48
- });
49
- }
50
- // await either the reset we just started, or any that was
51
- // in progress when this data came in.
52
- if (this.ongoingResetPromise) {
53
- this.ctx.log('debug', 'Waiting for ongoing reset to complete');
54
- await this.ongoingResetPromise;
55
- this.ctx.log('debug', 'Ongoing reset complete');
56
- }
57
- await this.processData(data);
58
- };
59
- this.resetData = async () => {
60
- if (this.disposed) {
61
- this.ctx.log('warn', 'EntityStore is disposed, not resetting local data');
62
- return;
63
- }
64
- await this.meta.reset();
65
- await this.queryableStorage.reset();
66
- this.events.resetAll.invoke(this);
67
- };
68
- this.processData = async (data) => {
69
- var _a, _b, _c;
70
- if (this.disposed) {
71
- this.ctx.log('warn', 'EntityStore is disposed, not processing incoming data');
72
- return;
73
- }
74
- const baselines = (_a = data === null || data === void 0 ? void 0 : data.baselines) !== null && _a !== void 0 ? _a : [];
75
- const operations = (_b = data === null || data === void 0 ? void 0 : data.operations) !== null && _b !== void 0 ? _b : [];
76
- this.ctx.log('debug', 'Processing incoming data', {
77
- operations: operations.length,
78
- baselines: baselines.length,
79
- reset: !!data.reset,
80
- });
81
- const allDocumentOids = Array.from(new Set(baselines
82
- .map((b) => (0, common_1.getOidRoot)(b.oid))
83
- .concat(operations.map((o) => (0, common_1.getOidRoot)(o.oid)))));
84
- const baselinesGroupedByOid = (0, common_1.groupBaselinesByRootOid)(baselines);
85
- const operationsGroupedByOid = (0, common_1.groupPatchesByRootOid)(operations);
86
- this.ctx.log('debug', 'Applying data to live entities');
87
- // synchronously add/replace data in any open entities via eventing
88
- for (const oid of allDocumentOids) {
89
- const baselines = baselinesGroupedByOid[oid];
90
- const operations = (_c = operationsGroupedByOid[oid]) !== null && _c !== void 0 ? _c : [];
91
- const groupedOperations = (0, common_1.groupPatchesByOid)(operations);
92
- // what happens if an entity is being hydrated
93
- // while this is happening? - we wait for the hydration promise
94
- // to complete, then invoke the event
95
- const event = data.reset ? this.events.replace : this.events.add;
96
- const hydrationPromise = this.pendingEntityPromises.get(oid);
97
- if (hydrationPromise) {
98
- hydrationPromise.then(() => {
99
- event.invoke(this, {
100
- oid,
101
- baselines,
102
- operations: groupedOperations,
103
- isLocal: false,
104
- });
105
- });
106
- }
107
- else {
108
- if (this.cache.has(oid)) {
109
- this.ctx.log('debug', 'Cache has', oid, ', an event should follow.');
110
- }
111
- event.invoke(this, {
112
- oid,
113
- baselines,
114
- operations: groupedOperations,
115
- isLocal: false,
116
- });
117
- }
118
- }
119
- const abortOptions = {
120
- abort: this.abortDataQueueController.signal,
121
- };
122
- // then, asynchronously add to the database
123
- await this.meta.insertData(data, abortOptions);
124
- // FIXME: entities hydrated here are not seeing
125
- // the operations just inserted above!!
126
- // IDEA: can we coordinate here with hydrate promises
127
- // based on affected OIDs?
128
- // recompute all affected documents for querying
129
- const entities = await Promise.all(allDocumentOids.map(async (oid) => {
130
- const entity = await this.hydrate(oid, abortOptions);
131
- // if the entity is not found, we return a stub that
132
- // indicates it's deleted and should be cleared
133
- return (entity !== null && entity !== void 0 ? entity : {
134
- oid,
135
- getSnapshot() {
136
- return null;
137
- },
138
- });
139
- }));
140
- try {
141
- await this.queryableStorage.saveEntities(entities, abortOptions);
142
- }
143
- catch (err) {
144
- if (this.disposed) {
145
- this.ctx.log('warn', 'Error saving entities to queryable storage - EntityStore is disposed', err);
146
- }
147
- else {
148
- this.ctx.log('error', 'Error saving entities to queryable storage', err);
149
- }
150
- }
151
- };
152
- // internal-ish API for creating Entities from OIDs
153
- // when query results come in
154
- this.hydrate = async (oid, opts) => {
155
- if (!(0, common_1.isRootOid)(oid)) {
156
- throw new Error('Cannot hydrate non-root entity');
157
- }
158
- if (this.cache.has(oid)) {
159
- this.ctx.log('debug', 'Hydrating entity from cache', oid);
160
- const cached = this.cache.get(oid);
161
- if (cached) {
162
- const entity = cached.deref();
163
- if (entity) {
164
- if (entity.deleted) {
165
- return null;
166
- }
167
- return entity;
168
- }
169
- else {
170
- this.ctx.log('debug', "Removing GC'd entity from cache", oid);
171
- this.cache.delete(oid);
172
- }
173
- }
174
- }
175
- // we don't want to hydrate two entities in parallel, so
176
- // we use a promise to ensure that only one is ever
177
- // constructed at a time
178
- const pendingPromise = this.pendingEntityPromises.get(oid);
179
- if (!pendingPromise) {
180
- this.ctx.log('debug', 'Hydrating entity from storage', oid);
181
- const entity = this.constructEntity(oid);
182
- if (!entity) {
183
- return null;
184
- }
185
- const pendingPromise = this.loadEntity(entity, opts);
186
- pendingPromise.finally(() => {
187
- this.pendingEntityPromises.delete(oid);
188
- });
189
- this.pendingEntityPromises.set(oid, pendingPromise);
190
- return pendingPromise;
191
- }
192
- else {
193
- this.ctx.log('debug', 'Waiting for entity hydration', oid);
194
- return pendingPromise;
195
- }
196
- };
197
- this.destroy = async () => {
198
- this.dispose();
199
- await this.batcher.flushAll();
200
- };
201
- // public APIs for manipulating entities
202
- /**
203
- * Creates a new Entity with the given initial data.
204
- */
205
- this.create = async (initial, oid, { undoable = true } = {}) => {
206
- this.ctx.log('debug', 'Creating new entity', oid);
207
- const { collection } = (0, common_1.decomposeOid)(oid);
208
- // remove any OID associations from the initial data
209
- (0, common_1.removeOidsFromAllSubObjects)(initial);
210
- // grab files and replace them with refs
211
- const processed = (0, utils_js_1.processValueFiles)(initial, this.files.add);
212
- (0, common_1.assignOid)(processed, oid);
213
- // creating a new Entity with no data, then preloading the operations
214
- const entity = this.constructEntity(oid);
215
- if (!entity) {
216
- throw new Error(`Could not put new document: no schema exists for collection ${collection}`);
217
- }
218
- const operations = this.meta.patchCreator.createInitialize(processed, oid);
219
- await this.batcher.commitOperations(operations, {
220
- undoable: !!undoable,
221
- source: entity,
222
- });
223
- // TODO: what happens if you create an entity with an OID that already
224
- // exists?
225
- // we still need to synchronously add the initial operations to the Entity
226
- // even though they are flowing through the system
227
- // TODO: this could be better aligned to avoid grouping here
228
- const operationsGroupedByOid = (0, common_1.groupPatchesByOid)(operations);
229
- this.events.add.invoke(this, {
230
- operations: operationsGroupedByOid,
231
- isLocal: true,
232
- oid,
233
- });
234
- this.cache.set(oid, this.ctx.weakRef(entity));
235
- return entity;
236
- };
237
- this.deleteAll = async (oids, options) => {
238
- this.ctx.log('info', 'Deleting documents', oids);
239
- (0, common_1.assert)(oids.every((oid) => oid === (0, common_1.getOidRoot)(oid)), 'Only root documents may be deleted via client methods');
240
- const allOids = await Promise.all(oids.flatMap(async (oid) => {
241
- var _a;
242
- const entity = await this.hydrate(oid);
243
- return (_a = entity === null || entity === void 0 ? void 0 : entity.__getFamilyOids__()) !== null && _a !== void 0 ? _a : [];
244
- }));
245
- // remove the entities from cache
246
- oids.forEach((oid) => {
247
- this.cache.delete(oid);
248
- this.ctx.log('debug', 'Deleted document from cache', oid);
249
- });
250
- // create the delete patches and wait for them to be applied
251
- const operations = this.meta.patchCreator.createDeleteAll(allOids.flat());
252
- await this.batcher.commitOperations(operations, {
253
- undoable: (options === null || options === void 0 ? void 0 : options.undoable) === undefined ? true : options.undoable,
254
- });
255
- };
256
- this.delete = async (oid, options) => {
257
- return this.deleteAll([oid], options);
258
- };
259
- this.getCollectionSchema = (collectionName) => {
260
- const schema = this.ctx.schema.collections[collectionName];
261
- if (!schema) {
262
- this.ctx.log('warn', `Missing schema for collection: ${collectionName}`);
263
- return {
264
- schema: null,
265
- readonlyKeys: [],
266
- };
267
- }
268
- return {
269
- // convert to object schema for compatibility
270
- schema: {
271
- type: 'object',
272
- nullable: false,
273
- properties: schema.fields,
274
- },
275
- readonlyKeys: [schema.primaryKey],
276
- };
277
- };
278
- /**
279
- * Constructs an entity from an OID, but does not load it.
280
- */
281
- this.constructEntity = (oid) => {
282
- const { collection } = (0, common_1.decomposeOid)(oid);
283
- const { schema, readonlyKeys } = this.getCollectionSchema(collection);
284
- if (!schema) {
285
- return null;
286
- }
287
- if (this.disposed) {
288
- throw new Error('Cannot hydrate entity after store has been disposed');
289
- }
290
- const metadataFamily = new EntityMetadata_js_1.EntityFamilyMetadata({
291
- ctx: this.ctx,
292
- onPendingOperations: this.onPendingOperations,
293
- rootOid: oid,
294
- });
295
- // this is created synchronously so it's immediately available
296
- // to begin capturing incoming data.
297
- return new Entity_js_1.Entity({
298
- ctx: this.ctx,
299
- oid,
300
- schema,
301
- readonlyKeys,
302
- files: this.files,
303
- metadataFamily: metadataFamily,
304
- patchCreator: this.meta.patchCreator,
305
- events: this.events,
306
- });
307
- };
308
- this.onPendingOperations = (operations) => {
309
- this.batcher.addOperations(operations);
310
- };
311
- /**
312
- * Loads initial Entity data from storage
313
- */
314
- this.loadEntity = async (entity, opts) => {
315
- const { operations, baselines } = await this.meta.getDocumentData(entity.oid, opts);
316
- if (!baselines.length && !Object.keys(operations).length) {
317
- this.ctx.log('debug', 'No data found for entity', entity.oid);
318
- return null;
319
- }
320
- this.ctx.log('debug', 'Loaded entity from storage', entity.oid);
321
- this.events.replace.invoke(this, {
322
- oid: entity.oid,
323
- baselines,
324
- operations,
325
- isLocal: false,
326
- });
327
- // only set the cache after loading.
328
- // TODO: is this cache/promise stuff redundant?
329
- this.cache.set(entity.oid, this.ctx.weakRef(entity));
330
- this.entityFinalizationRegistry.register(entity, entity.oid);
331
- return entity;
332
- };
333
- this.ctx = ctx;
334
- this.meta = meta;
335
- this.files = files;
336
- this.queryableStorage = new QueryableStorage_js_1.QueryableStorage({ ctx });
337
- this.batcher = new OperationBatcher_js_1.OperationBatcher({
338
- ctx,
339
- meta,
340
- entities: this,
341
- });
342
- }
343
- // expose batch APIs
344
- get batch() {
345
- return this.batcher.batch;
346
- }
347
- get flushAllBatches() {
348
- return this.batcher.flushAll;
349
- }
350
- }
351
- exports.EntityStore = EntityStore;
352
- //# sourceMappingURL=EntityStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EntityStore.js","sourceRoot":"","sources":["../../../src/entities/EntityStore.ts"],"names":[],"mappings":"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"}
@@ -1,52 +0,0 @@
1
- import { Operation } from '@verdant-web/common';
2
- import { Metadata } from '../metadata/Metadata.js';
3
- import { Context } from '../context.js';
4
- import type { EntityStore } from './EntityStore.js';
5
- import { Entity } from './Entity.js';
6
- export interface OperationBatch {
7
- run: (fn: () => void) => this;
8
- /** @deprecated - use commit() */
9
- flush: () => Promise<void>;
10
- commit: () => Promise<void>;
11
- discard: () => void;
12
- }
13
- export declare class OperationBatcher {
14
- private batcher;
15
- private currentBatchKey;
16
- private defaultBatchTimeout;
17
- private meta;
18
- private ctx;
19
- private entities;
20
- constructor({ batchTimeout, meta, ctx, entities, }: {
21
- batchTimeout?: number;
22
- meta: Metadata;
23
- ctx: Context;
24
- entities: EntityStore;
25
- });
26
- get isDefaultBatch(): boolean;
27
- private flushOperations;
28
- /**
29
- * Immediately flushes operations to storage / sync.
30
- * Providing source to second arg skips hydrating related
31
- * Entity from storage, which is useful when that Entity
32
- * isn't in storage (i.e. still creating) or just to speed
33
- * up the commit.
34
- */
35
- commitOperations: (operations: Operation[], meta: {
36
- undoable?: boolean;
37
- source?: Entity;
38
- }) => Promise<void>;
39
- /**
40
- * Adds operations to the active batch.
41
- */
42
- addOperations: (operations: Operation[]) => void;
43
- batch: ({ undoable, batchName, max, timeout, }?: {
44
- undoable?: boolean | undefined;
45
- batchName?: string | undefined;
46
- max?: number | null | undefined;
47
- timeout?: number | null | undefined;
48
- }) => OperationBatch;
49
- flushAll: () => Promise<any[]>;
50
- private createUndo;
51
- private getInverseOperations;
52
- }