@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,213 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ClientDescriptor = void 0;
4
- const common_1 = require("@verdant-web/common");
5
- const Metadata_js_1 = require("../metadata/Metadata.js");
6
- const openMetadataDatabase_js_1 = require("../metadata/openMetadataDatabase.js");
7
- const openDatabase_js_1 = require("../migration/openDatabase.js");
8
- const UndoHistory_js_1 = require("../UndoHistory.js");
9
- const Client_js_1 = require("./Client.js");
10
- const idb_js_1 = require("../idb.js");
11
- const FakeWeakRef_js_1 = require("../FakeWeakRef.js");
12
- const constants_js_1 = require("./constants.js");
13
- /**
14
- * Since storage initialization is async, this class wraps the core
15
- * Storage creation promise and exposes some metadata which can
16
- * be useful immediately.
17
- */
18
- class ClientDescriptor {
19
- get namespace() {
20
- return this._namespace;
21
- }
22
- constructor(init) {
23
- this.init = init;
24
- this._initializing = false;
25
- this.initialize = async (init) => {
26
- // if server-side and no alternative IndexedDB implementation was provided,
27
- // we can't initialize the storage
28
- if (typeof window === 'undefined' && !init.indexedDb) {
29
- throw new Error('A verdant client was initialized in an environment without IndexedDB. If you are using verdant in a server-rendered framework, you must enforce that all clients are initialized on the client-side, or you must provide some mock interface of IDBFactory to the ClientDescriptor options.');
30
- }
31
- if (this._initializing || this._resolvedValue) {
32
- return this._readyPromise;
33
- }
34
- this._initializing = true;
35
- try {
36
- let storage;
37
- if (init.schema.wip) {
38
- storage = await this.initializeWIPDatabases(init);
39
- }
40
- else {
41
- storage = await this.initializeDatabases(init);
42
- this.cleanupWIPDatabases(init);
43
- }
44
- this.resolveReady(storage);
45
- this._resolvedValue = storage;
46
- return storage;
47
- }
48
- catch (err) {
49
- if (err instanceof Error) {
50
- this.rejectReady(err);
51
- throw err;
52
- }
53
- else {
54
- throw new Error('Unknown error initializing storage');
55
- }
56
- }
57
- finally {
58
- this._initializing = false;
59
- }
60
- };
61
- this.initializeDatabases = async (init) => {
62
- const metadataVersion = init[constants_js_1.METADATA_VERSION_KEY];
63
- const { db: metaDb } = await (0, openMetadataDatabase_js_1.openMetadataDatabase)({
64
- indexedDB: init.indexedDb,
65
- log: init.log,
66
- namespace: init.namespace,
67
- metadataVersion,
68
- });
69
- const context = {
70
- namespace: this._namespace,
71
- metaDb,
72
- schema: init.schema,
73
- log: init.log || (() => { }),
74
- undoHistory: init.undoHistory || new UndoHistory_js_1.UndoHistory(),
75
- entityEvents: new common_1.EventSubscriber(),
76
- globalEvents: new common_1.EventSubscriber(),
77
- internalEvents: new common_1.EventSubscriber(),
78
- weakRef: (value) => {
79
- if (init.EXPERIMENTAL_weakRefs) {
80
- return new WeakRef(value);
81
- }
82
- else {
83
- return new FakeWeakRef_js_1.FakeWeakRef(value);
84
- }
85
- },
86
- migrations: init.migrations,
87
- };
88
- const meta = new Metadata_js_1.Metadata({
89
- context,
90
- disableRebasing: init.disableRebasing,
91
- });
92
- // verify schema integrity
93
- await meta.updateSchema(init.schema, init.overrideSchemaConflict);
94
- const contextWithNow = Object.assign(context, {
95
- getNow: () => meta.now,
96
- });
97
- const documentDb = await (0, openDatabase_js_1.openDocumentDatabase)({
98
- context: contextWithNow,
99
- version: init.schema.version,
100
- meta,
101
- migrations: init.migrations,
102
- indexedDB: init.indexedDb,
103
- });
104
- const fullContext = Object.assign(contextWithNow, { documentDb });
105
- const storage = new Client_js_1.Client({
106
- syncConfig: init.sync,
107
- migrations: init.migrations,
108
- files: init.files,
109
- }, fullContext, {
110
- meta,
111
- });
112
- return storage;
113
- };
114
- this.initializeWIPDatabases = async (init) => {
115
- const schemaHash = (0, common_1.hashObject)(init.schema);
116
- console.info(`WIP schema in use. Opening database with hash ${schemaHash}`);
117
- const wipNamespace = `@@wip_${init.namespace}_${schemaHash}`;
118
- const { db: metaDb } = await (0, openMetadataDatabase_js_1.openWIPMetadataDatabase)({
119
- indexedDB: init.indexedDb,
120
- log: init.log,
121
- namespace: init.namespace,
122
- wipNamespace: wipNamespace,
123
- });
124
- const context = {
125
- namespace: this._namespace,
126
- metaDb,
127
- schema: init.schema,
128
- log: init.log || (() => { }),
129
- undoHistory: init.undoHistory || new UndoHistory_js_1.UndoHistory(),
130
- entityEvents: new common_1.EventSubscriber(),
131
- globalEvents: new common_1.EventSubscriber(),
132
- internalEvents: new common_1.EventSubscriber(),
133
- weakRef: (value) => {
134
- if (init.EXPERIMENTAL_weakRefs) {
135
- return new WeakRef(value);
136
- }
137
- else {
138
- return new FakeWeakRef_js_1.FakeWeakRef(value);
139
- }
140
- },
141
- migrations: init.migrations,
142
- };
143
- const meta = new Metadata_js_1.Metadata({
144
- context,
145
- disableRebasing: init.disableRebasing,
146
- });
147
- const contextWithNow = Object.assign(context, {
148
- getNow: () => meta.now,
149
- });
150
- // verify schema integrity
151
- await meta.updateSchema(init.schema, init.overrideSchemaConflict);
152
- const documentDb = await (0, openDatabase_js_1.openWIPDocumentDatabase)({
153
- context: contextWithNow,
154
- version: init.schema.version,
155
- meta,
156
- migrations: init.migrations,
157
- indexedDB: init.indexedDb,
158
- wipNamespace,
159
- });
160
- const fullContext = Object.assign(contextWithNow, { documentDb });
161
- const storage = new Client_js_1.Client({
162
- syncConfig: init.sync,
163
- migrations: init.migrations,
164
- files: init.files,
165
- }, fullContext, {
166
- meta,
167
- });
168
- return storage;
169
- };
170
- this.cleanupWIPDatabases = async (init) => {
171
- const databaseInfo = await (0, idb_js_1.getAllDatabaseNamesAndVersions)(init.indexedDb);
172
- const wipDatabases = databaseInfo
173
- .filter((db) => { var _a; return (_a = db.name) === null || _a === void 0 ? void 0 : _a.startsWith('@@wip_'); })
174
- .map((db) => db.name);
175
- // don't clear a current WIP database.
176
- const wipDatabasesToDelete = wipDatabases.filter((db) => !db.startsWith(`@@wip_${init.namespace}_${(0, common_1.hashObject)(init.schema)}`));
177
- for (const db of wipDatabasesToDelete) {
178
- await (0, idb_js_1.deleteDatabase)(db, init.indexedDb);
179
- }
180
- };
181
- this.open = () => this.initialize(this.init);
182
- this.close = async () => {
183
- if (this._resolvedValue) {
184
- this._resolvedValue.close();
185
- }
186
- if (this._initializing) {
187
- (await this._readyPromise).close();
188
- }
189
- };
190
- this.__dangerous__resetLocal = async () => {
191
- await (0, idb_js_1.deleteAllDatabases)(this.namespace);
192
- };
193
- this._readyPromise = new Promise((resolve, reject) => {
194
- this.resolveReady = resolve;
195
- this.rejectReady = reject;
196
- });
197
- this._namespace = init.namespace;
198
- }
199
- get current() {
200
- // exposing an immediate value if already resolved lets us
201
- // skip the promise microtask when accessing this externally if
202
- // the initialization has been completed.
203
- return this._resolvedValue;
204
- }
205
- get readyPromise() {
206
- return this._readyPromise;
207
- }
208
- get schema() {
209
- return this.init.schema;
210
- }
211
- }
212
- exports.ClientDescriptor = ClientDescriptor;
213
- //# sourceMappingURL=ClientDescriptor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ClientDescriptor.js","sourceRoot":"","sources":["../../../src/client/ClientDescriptor.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export declare const METADATA_VERSION_KEY: unique symbol;
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.METADATA_VERSION_KEY = void 0;
4
- exports.METADATA_VERSION_KEY = Symbol('metadataVersion');
5
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/client/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export declare const TEST_API = "__unsafe__test_api__";
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TEST_API = void 0;
4
- exports.TEST_API = '__unsafe__test_api__';
5
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG,sBAAsB,CAAC"}
@@ -1,38 +0,0 @@
1
- import { EventSubscriber, Migration, ObjectIdentifier, StorageSchema } from '@verdant-web/common';
2
- import { UndoHistory } from './UndoHistory.js';
3
- /**
4
- * Common components utilized across various client
5
- * services.
6
- */
7
- export interface Context {
8
- namespace: string;
9
- metaDb: IDBDatabase;
10
- documentDb: IDBDatabase;
11
- undoHistory: UndoHistory;
12
- schema: StorageSchema;
13
- log: (...args: any[]) => void;
14
- entityEvents: EventSubscriber<{
15
- collectionsChanged: (names: string[]) => void;
16
- documentChanged: (oid: ObjectIdentifier) => void;
17
- }>;
18
- internalEvents: EventSubscriber<{
19
- documentDbChanged: (db: IDBDatabase) => void;
20
- }>;
21
- globalEvents: EventSubscriber<{
22
- /**
23
- * A change from a future version of the application has been
24
- * witnessed. These changes are not applied but it indicates
25
- * the app has been updated and we should prompt the user
26
- * to reload or have their app user manually reload.
27
- *
28
- * The parameter is the timestamp of the future change.
29
- */
30
- futureSeen: (timestamp: string) => void;
31
- }>;
32
- weakRef<T extends object>(value: T): WeakRef<T>;
33
- migrations: Migration<any>[];
34
- /**
35
- * Get the current logical timestamp
36
- */
37
- getNow(): string;
38
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":""}
@@ -1,148 +0,0 @@
1
- import { EntityValidationProblem, EventSubscriber, ObjectIdentifier, PatchCreator, StorageFieldSchema } from '@verdant-web/common';
2
- import { Context } from '../context.js';
3
- import { FileManager } from '../files/FileManager.js';
4
- import { EntityCache } from './EntityCache.js';
5
- import { EntityFamilyMetadata, EntityMetadataView } from './EntityMetadata.js';
6
- import { BaseEntityValue, DataFromInit, EntityChange, EntityEvents, ListEntity, ListItemInit, ListItemValue, ObjectEntity } from './types.js';
7
- import { EntityStoreEvents } from './EntityStore.js';
8
- export interface EntityInit {
9
- oid: ObjectIdentifier;
10
- schema: StorageFieldSchema;
11
- entityFamily?: EntityCache;
12
- metadataFamily: EntityFamilyMetadata;
13
- parent?: Entity;
14
- ctx: Context;
15
- files: FileManager;
16
- readonlyKeys?: string[];
17
- fieldPath?: (string | number)[];
18
- patchCreator: PatchCreator;
19
- events: EntityStoreEvents;
20
- }
21
- export declare class Entity<Init = any, KeyValue extends BaseEntityValue = any, Snapshot extends any = DataFromInit<Init>> extends EventSubscriber<EntityEvents> implements ObjectEntity<Init, KeyValue, Snapshot>, ListEntity<Init, KeyValue, Snapshot> {
22
- readonly oid: ObjectIdentifier;
23
- private readonlyKeys;
24
- private fieldPath;
25
- private entityFamily;
26
- private metadataFamily;
27
- private schema;
28
- private parent;
29
- private ctx;
30
- private files;
31
- private patchCreator;
32
- private events;
33
- private _viewData;
34
- private validationError;
35
- private cachedDeepUpdatedAt;
36
- private wasDeletedLastChange;
37
- private cachedView;
38
- constructor({ oid, schema, entityFamily: childCache, parent, ctx, metadataFamily, readonlyKeys, files, patchCreator, events, }: EntityInit);
39
- private onAdd;
40
- private onReplace;
41
- private onResetAll;
42
- private get metadata();
43
- /**
44
- * The view of this Entity, not including nested
45
- * entities (that's the snapshot - see #getSnapshot())
46
- *
47
- * Nested entities are represented by refs.
48
- */
49
- private get viewData();
50
- /** convenience getter for viewData.view */
51
- private get rawView();
52
- /**
53
- * An Entity's View includes the rendering of its underlying data,
54
- * connecting of children where refs were, and validation
55
- * and pruning according to schema.
56
- */
57
- private get view();
58
- private childIsNull;
59
- get uid(): string;
60
- get deleted(): boolean;
61
- get invalid(): boolean;
62
- get isList(): any;
63
- get updatedAt(): number;
64
- get deepUpdatedAt(): number;
65
- /**
66
- * @internal - this is relevant to Verdant's system, not users.
67
- *
68
- * Indicates whether this document is from an outdated version
69
- * of the schema - which means it cannot be used until it is upgraded.
70
- */
71
- get isOutdatedVersion(): boolean;
72
- /**
73
- * Pruning - when entities have invalid children, we 'prune' that
74
- * data up to the nearest prunable point - a nullable field,
75
- * or a list.
76
- */
77
- protected validate: (...args: unknown[]) => EntityValidationProblem | undefined;
78
- private viewWithMappedChildren;
79
- /**
80
- * A current snapshot of this Entity's data, including nested
81
- * Entities.
82
- */
83
- getSnapshot: () => any;
84
- private addPendingOperations;
85
- private addConfirmedData;
86
- private replaceAllData;
87
- private resetAllData;
88
- private change;
89
- protected deepChange: (target: Entity, ev: EntityChange) => void;
90
- private getChild;
91
- /**
92
- * Gets a value from this Entity. If the value
93
- * is an object, it will be wrapped in another
94
- * Entity.
95
- */
96
- get: <Key extends keyof KeyValue>(key: Key) => KeyValue[Key];
97
- private processInputValue;
98
- private getDeleteMode;
99
- /**
100
- * Returns the referent value of an item in the list, used for
101
- * operations which act on items. if the item is an object,
102
- * it will attempt to create an OID reference to it. If it
103
- * is a primitive, it will return the primitive.
104
- */
105
- private getItemRefValue;
106
- set: <Key extends keyof Init>(key: Key, value: Init[Key]) => void;
107
- /**
108
- * Returns a destructured version of this Entity, where child
109
- * Entities are accessible at their respective keys.
110
- */
111
- getAll: () => KeyValue;
112
- delete: (key: any) => void;
113
- keys: () => string[];
114
- entries: () => [string, Exclude<KeyValue[keyof KeyValue], undefined>][];
115
- values: () => Exclude<KeyValue[keyof KeyValue], undefined>[];
116
- update: (data: any, { merge, replaceSubObjects, }?: {
117
- replaceSubObjects?: boolean | undefined;
118
- merge?: boolean | undefined;
119
- }) => void;
120
- get length(): number;
121
- push: (value: ListItemInit<Init>) => void;
122
- insert: (index: number, value: ListItemInit<Init>) => void;
123
- move: (from: number, to: number) => void;
124
- moveItem: (item: ListItemValue<KeyValue>, to: number) => void;
125
- add: (value: ListItemValue<KeyValue>) => void;
126
- removeAll: (item: ListItemValue<KeyValue>) => void;
127
- removeFirst: (item: ListItemValue<KeyValue>) => void;
128
- removeLast: (item: ListItemValue<KeyValue>) => void;
129
- [Symbol.iterator](): {
130
- next: () => {
131
- readonly value: ListItemValue<KeyValue>;
132
- readonly done: false;
133
- } | {
134
- readonly value: undefined;
135
- readonly done: true;
136
- };
137
- };
138
- map: <U>(callback: (value: ListItemValue<KeyValue>, index: number) => U) => U[];
139
- filter: (callback: (value: ListItemValue<KeyValue>, index: number) => boolean) => ListItemValue<KeyValue>[];
140
- has: (value: ListItemValue<KeyValue>) => boolean;
141
- forEach: (callback: (value: ListItemValue<KeyValue>, index: number) => void) => void;
142
- some: (predicate: (value: ListItemValue<KeyValue>) => boolean) => boolean;
143
- every: (predicate: (value: ListItemValue<KeyValue>) => boolean) => boolean;
144
- find: (predicate: (value: ListItemValue<KeyValue>) => boolean) => ListItemValue<KeyValue> | undefined;
145
- includes: (value: ListItemValue<KeyValue>) => boolean;
146
- __getViewData__: (oid: ObjectIdentifier, type: 'confirmed' | 'pending') => EntityMetadataView;
147
- __getFamilyOids__: () => string[];
148
- }