@verdant-web/store 2.7.5 → 2.7.7-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 (717) hide show
  1. package/dist/bundle/index.js +9 -9
  2. package/dist/bundle/index.js.map +4 -4
  3. package/dist/cjs/AckInfoStore.d.ts +10 -0
  4. package/dist/cjs/AckInfoStore.js +26 -0
  5. package/dist/cjs/AckInfoStore.js.map +1 -0
  6. package/dist/cjs/BackoffScheduler.d.ts +19 -19
  7. package/dist/cjs/BackoffScheduler.js +44 -44
  8. package/dist/cjs/BaselinesStore.d.ts +10 -0
  9. package/dist/cjs/BaselinesStore.js +36 -0
  10. package/dist/cjs/BaselinesStore.js.map +1 -0
  11. package/dist/cjs/DocumentManager.d.ts +31 -28
  12. package/dist/cjs/DocumentManager.js +44 -44
  13. package/dist/cjs/Entity.d.ts +96 -0
  14. package/dist/cjs/Entity.js +345 -0
  15. package/dist/cjs/Entity.js.map +1 -0
  16. package/dist/cjs/EntityStore.d.ts +36 -0
  17. package/dist/cjs/EntityStore.js +172 -0
  18. package/dist/cjs/EntityStore.js.map +1 -0
  19. package/dist/cjs/FakeWeakRef.d.ts +11 -11
  20. package/dist/cjs/FakeWeakRef.js +18 -18
  21. package/dist/cjs/IDBService.d.ts +9 -9
  22. package/dist/cjs/IDBService.js +63 -63
  23. package/dist/cjs/LocalHistoryStore.d.ts +15 -0
  24. package/dist/cjs/LocalHistoryStore.js +53 -0
  25. package/dist/cjs/LocalHistoryStore.js.map +1 -0
  26. package/dist/cjs/LocalReplicaStore.d.ts +13 -0
  27. package/dist/cjs/LocalReplicaStore.js +49 -0
  28. package/dist/cjs/LocalReplicaStore.js.map +1 -0
  29. package/dist/cjs/MessageCreator.d.ts +19 -0
  30. package/dist/cjs/MessageCreator.js +104 -0
  31. package/dist/cjs/MessageCreator.js.map +1 -0
  32. package/dist/cjs/Metadata.d.ts +91 -0
  33. package/dist/cjs/Metadata.js +250 -0
  34. package/dist/cjs/Metadata.js.map +1 -0
  35. package/dist/cjs/OperationsStore.d.ts +38 -0
  36. package/dist/cjs/OperationsStore.js +146 -0
  37. package/dist/cjs/OperationsStore.js.map +1 -0
  38. package/dist/cjs/PresenceManager.d.ts +30 -0
  39. package/dist/cjs/PresenceManager.js +89 -0
  40. package/dist/cjs/PresenceManager.js.map +1 -0
  41. package/dist/cjs/Query.d.ts +26 -0
  42. package/dist/cjs/Query.js +86 -0
  43. package/dist/cjs/Query.js.map +1 -0
  44. package/dist/cjs/QueryMaker.d.ts +18 -0
  45. package/dist/cjs/QueryMaker.js +98 -0
  46. package/dist/cjs/QueryMaker.js.map +1 -0
  47. package/dist/cjs/QueryStore.d.ts +38 -0
  48. package/dist/cjs/QueryStore.js +146 -0
  49. package/dist/cjs/QueryStore.js.map +1 -0
  50. package/dist/cjs/SchemaStore.d.ts +9 -0
  51. package/dist/cjs/SchemaStore.js +35 -0
  52. package/dist/cjs/SchemaStore.js.map +1 -0
  53. package/dist/cjs/Storage.d.ts +147 -0
  54. package/dist/cjs/Storage.js +346 -0
  55. package/dist/cjs/Storage.js.map +1 -0
  56. package/dist/cjs/Sync.d.ts +117 -0
  57. package/dist/cjs/Sync.js +561 -0
  58. package/dist/cjs/Sync.js.map +1 -0
  59. package/dist/cjs/SyncHarness.d.ts +45 -0
  60. package/dist/cjs/SyncHarness.js +110 -0
  61. package/dist/cjs/SyncHarness.js.map +1 -0
  62. package/dist/cjs/UndoHistory.d.ts +16 -16
  63. package/dist/cjs/UndoHistory.js +50 -50
  64. package/dist/cjs/__tests__/batching.test.d.ts +1 -1
  65. package/dist/cjs/__tests__/batching.test.js +44 -44
  66. package/dist/cjs/__tests__/documents.test.d.ts +1 -1
  67. package/dist/cjs/__tests__/documents.test.js +415 -415
  68. package/dist/cjs/__tests__/fixtures/testStorage.d.ts +123 -122
  69. package/dist/cjs/__tests__/fixtures/testStorage.js +117 -115
  70. package/dist/cjs/__tests__/fixtures/testStorage.js.map +1 -1
  71. package/dist/cjs/__tests__/legacyOids.test.d.ts +1 -1
  72. package/dist/cjs/__tests__/legacyOids.test.js +309 -123
  73. package/dist/cjs/__tests__/legacyOids.test.js.map +1 -1
  74. package/dist/cjs/__tests__/mutations.test.d.ts +1 -1
  75. package/dist/cjs/__tests__/mutations.test.js +41 -41
  76. package/dist/cjs/__tests__/queries.test.d.ts +1 -1
  77. package/dist/cjs/__tests__/queries.test.js +318 -318
  78. package/dist/cjs/__tests__/setup/indexedDB.d.ts +1 -1
  79. package/dist/cjs/__tests__/setup/indexedDB.js +3 -3
  80. package/dist/cjs/__tests__/undo.test.d.ts +1 -1
  81. package/dist/cjs/__tests__/undo.test.js +86 -86
  82. package/dist/cjs/client/Client.d.ts +98 -99
  83. package/dist/cjs/client/Client.js +227 -227
  84. package/dist/cjs/client/ClientDescriptor.d.ts +76 -74
  85. package/dist/cjs/client/ClientDescriptor.js +197 -194
  86. package/dist/cjs/client/ClientDescriptor.js.map +1 -1
  87. package/dist/cjs/client/constants.d.ts +1 -0
  88. package/dist/cjs/client/constants.js +5 -0
  89. package/dist/cjs/client/constants.js.map +1 -0
  90. package/dist/cjs/constants.d.ts +1 -1
  91. package/dist/cjs/constants.js +4 -4
  92. package/dist/cjs/context.d.ts +29 -29
  93. package/dist/cjs/context.js +2 -2
  94. package/dist/cjs/entities/DocumentFamiliyCache.d.ts +90 -90
  95. package/dist/cjs/entities/DocumentFamiliyCache.js +282 -282
  96. package/dist/cjs/entities/Entity.d.ts +206 -203
  97. package/dist/cjs/entities/Entity.js +520 -520
  98. package/dist/cjs/entities/EntityStore.d.ts +85 -85
  99. package/dist/cjs/entities/EntityStore.js +479 -479
  100. package/dist/cjs/files/EntityFile.d.ts +31 -31
  101. package/dist/cjs/files/EntityFile.js +76 -76
  102. package/dist/cjs/files/FileManager.d.ts +42 -42
  103. package/dist/cjs/files/FileManager.js +152 -152
  104. package/dist/cjs/files/FileStorage.d.ts +28 -28
  105. package/dist/cjs/files/FileStorage.js +104 -104
  106. package/dist/cjs/files/utils.d.ts +8 -8
  107. package/dist/cjs/files/utils.js +55 -55
  108. package/dist/cjs/files/utils.test.d.ts +1 -1
  109. package/dist/cjs/files/utils.test.js +80 -80
  110. package/dist/cjs/idb.d.ts +11 -11
  111. package/dist/cjs/idb.js +111 -111
  112. package/dist/cjs/index.d.ts +21 -21
  113. package/dist/cjs/index.js +23 -23
  114. package/dist/cjs/indexes.d.ts +3 -0
  115. package/dist/cjs/indexes.js +20 -0
  116. package/dist/cjs/indexes.js.map +1 -0
  117. package/dist/cjs/metadata/AckInfoStore.d.ts +10 -10
  118. package/dist/cjs/metadata/AckInfoStore.js +25 -25
  119. package/dist/cjs/metadata/BaselinesStore.d.ts +33 -33
  120. package/dist/cjs/metadata/BaselinesStore.js +89 -89
  121. package/dist/cjs/metadata/LocalHistoryStore.d.ts +15 -0
  122. package/dist/cjs/metadata/LocalHistoryStore.js +53 -0
  123. package/dist/cjs/metadata/LocalHistoryStore.js.map +1 -0
  124. package/dist/cjs/metadata/LocalReplicaStore.d.ts +17 -17
  125. package/dist/cjs/metadata/LocalReplicaStore.js +47 -47
  126. package/dist/cjs/metadata/MessageCreator.d.ts +19 -19
  127. package/dist/cjs/metadata/MessageCreator.js +127 -127
  128. package/dist/cjs/metadata/Metadata.d.ts +112 -112
  129. package/dist/cjs/metadata/Metadata.js +352 -352
  130. package/dist/cjs/metadata/OperationsStore.d.ts +53 -53
  131. package/dist/cjs/metadata/OperationsStore.js +152 -152
  132. package/dist/cjs/metadata/SchemaStore.d.ts +9 -9
  133. package/dist/cjs/metadata/SchemaStore.js +38 -38
  134. package/dist/cjs/metadata/openMetadataDatabase.d.ts +19 -17
  135. package/dist/cjs/metadata/openMetadataDatabase.js +219 -158
  136. package/dist/cjs/metadata/openMetadataDatabase.js.map +1 -1
  137. package/dist/cjs/migration/db.d.ts +8 -8
  138. package/dist/cjs/migration/db.js +111 -111
  139. package/dist/cjs/migration/errors.d.ts +5 -5
  140. package/dist/cjs/migration/errors.js +11 -11
  141. package/dist/cjs/migration/openDatabase.d.ts +20 -20
  142. package/dist/cjs/migration/openDatabase.js +428 -428
  143. package/dist/cjs/migration/paths.d.ts +6 -6
  144. package/dist/cjs/migration/paths.js +52 -52
  145. package/dist/cjs/migration/paths.test.d.ts +1 -1
  146. package/dist/cjs/migration/paths.test.js +90 -90
  147. package/dist/cjs/openDocumentDatabase.d.ts +12 -0
  148. package/dist/cjs/openDocumentDatabase.js +432 -0
  149. package/dist/cjs/openDocumentDatabase.js.map +1 -0
  150. package/dist/cjs/queries/BaseQuery.d.ts +53 -53
  151. package/dist/cjs/queries/BaseQuery.js +135 -135
  152. package/dist/cjs/queries/CollectionQueries.d.ts +55 -55
  153. package/dist/cjs/queries/CollectionQueries.js +91 -91
  154. package/dist/cjs/queries/FindAllQuery.d.ts +12 -12
  155. package/dist/cjs/queries/FindAllQuery.js +42 -42
  156. package/dist/cjs/queries/FindInfiniteQuery.d.ts +19 -19
  157. package/dist/cjs/queries/FindInfiniteQuery.js +69 -69
  158. package/dist/cjs/queries/FindOneQuery.d.ts +12 -12
  159. package/dist/cjs/queries/FindOneQuery.js +42 -42
  160. package/dist/cjs/queries/FindPageQuery.d.ts +24 -24
  161. package/dist/cjs/queries/FindPageQuery.js +76 -76
  162. package/dist/cjs/queries/GetQuery.d.ts +10 -10
  163. package/dist/cjs/queries/GetQuery.js +29 -29
  164. package/dist/cjs/queries/LiveQuery.d.ts +28 -0
  165. package/dist/cjs/queries/LiveQuery.js +96 -0
  166. package/dist/cjs/queries/LiveQuery.js.map +1 -0
  167. package/dist/cjs/queries/LiveQueryMaker.d.ts +15 -0
  168. package/dist/cjs/queries/LiveQueryMaker.js +42 -0
  169. package/dist/cjs/queries/LiveQueryMaker.js.map +1 -0
  170. package/dist/cjs/queries/LiveQueryStore.d.ts +33 -0
  171. package/dist/cjs/queries/LiveQueryStore.js +85 -0
  172. package/dist/cjs/queries/LiveQueryStore.js.map +1 -0
  173. package/dist/cjs/queries/Query.d.ts +18 -0
  174. package/dist/cjs/queries/Query.js +36 -0
  175. package/dist/cjs/queries/Query.js.map +1 -0
  176. package/dist/cjs/queries/QueryCache.d.ts +16 -16
  177. package/dist/cjs/queries/QueryCache.js +41 -41
  178. package/dist/cjs/queries/QueryMaker.d.ts +14 -0
  179. package/dist/cjs/queries/QueryMaker.js +42 -0
  180. package/dist/cjs/queries/QueryMaker.js.map +1 -0
  181. package/dist/cjs/queries/QueryStore.d.ts +35 -0
  182. package/dist/cjs/queries/QueryStore.js +130 -0
  183. package/dist/cjs/queries/QueryStore.js.map +1 -0
  184. package/dist/cjs/queries/dbQueries.d.ts +22 -22
  185. package/dist/cjs/queries/dbQueries.js +125 -125
  186. package/dist/cjs/queries/keys.d.ts +10 -10
  187. package/dist/cjs/queries/keys.js +33 -33
  188. package/dist/cjs/queries/ranges.d.ts +2 -2
  189. package/dist/cjs/queries/ranges.js +69 -69
  190. package/dist/cjs/queries/types.d.ts +6 -6
  191. package/dist/cjs/queries/types.js +2 -2
  192. package/dist/cjs/queries/utils.d.ts +3 -3
  193. package/dist/cjs/queries/utils.js +24 -24
  194. package/dist/cjs/queries2/BaseQuery.d.ts +39 -0
  195. package/dist/cjs/queries2/BaseQuery.js +99 -0
  196. package/dist/cjs/queries2/BaseQuery.js.map +1 -0
  197. package/dist/cjs/queries2/CollectionQueries.d.ts +55 -0
  198. package/dist/cjs/queries2/CollectionQueries.js +83 -0
  199. package/dist/cjs/queries2/CollectionQueries.js.map +1 -0
  200. package/dist/cjs/queries2/FindAllQuery.d.ts +11 -0
  201. package/dist/cjs/queries2/FindAllQuery.js +34 -0
  202. package/dist/cjs/queries2/FindAllQuery.js.map +1 -0
  203. package/dist/cjs/queries2/FindInfiniteQuery.d.ts +18 -0
  204. package/dist/cjs/queries2/FindInfiniteQuery.js +61 -0
  205. package/dist/cjs/queries2/FindInfiniteQuery.js.map +1 -0
  206. package/dist/cjs/queries2/FindOneQuery.d.ts +11 -0
  207. package/dist/cjs/queries2/FindOneQuery.js +34 -0
  208. package/dist/cjs/queries2/FindOneQuery.js.map +1 -0
  209. package/dist/cjs/queries2/FindPageQuery.d.ts +23 -0
  210. package/dist/cjs/queries2/FindPageQuery.js +68 -0
  211. package/dist/cjs/queries2/FindPageQuery.js.map +1 -0
  212. package/dist/cjs/queries2/GetQuery.d.ts +10 -0
  213. package/dist/cjs/queries2/GetQuery.js +30 -0
  214. package/dist/cjs/queries2/GetQuery.js.map +1 -0
  215. package/dist/cjs/queries2/QueryCache.d.ts +16 -0
  216. package/dist/cjs/queries2/QueryCache.js +40 -0
  217. package/dist/cjs/queries2/QueryCache.js.map +1 -0
  218. package/dist/cjs/queries2/dbQueries.d.ts +22 -0
  219. package/dist/cjs/queries2/dbQueries.js +126 -0
  220. package/dist/cjs/queries2/dbQueries.js.map +1 -0
  221. package/dist/cjs/queries2/keys.d.ts +10 -0
  222. package/dist/cjs/queries2/keys.js +34 -0
  223. package/dist/cjs/queries2/keys.js.map +1 -0
  224. package/dist/cjs/queries2/ranges.d.ts +2 -0
  225. package/dist/cjs/queries2/ranges.js +70 -0
  226. package/dist/cjs/queries2/ranges.js.map +1 -0
  227. package/dist/cjs/queries2/types.d.ts +6 -0
  228. package/dist/cjs/queries2/types.js +3 -0
  229. package/dist/cjs/queries2/types.js.map +1 -0
  230. package/dist/cjs/queries2/utils.d.ts +1 -0
  231. package/dist/cjs/queries2/utils.js +20 -0
  232. package/dist/cjs/queries2/utils.js.map +1 -0
  233. package/dist/cjs/reactives/DocumentFamiliyCache.d.ts +47 -0
  234. package/dist/cjs/reactives/DocumentFamiliyCache.js +211 -0
  235. package/dist/cjs/reactives/DocumentFamiliyCache.js.map +1 -0
  236. package/dist/cjs/reactives/Entity.d.ts +191 -0
  237. package/dist/cjs/reactives/Entity.js +463 -0
  238. package/dist/cjs/reactives/Entity.js.map +1 -0
  239. package/dist/cjs/reactives/EntityStore.d.ts +84 -0
  240. package/dist/cjs/reactives/EntityStore.js +422 -0
  241. package/dist/cjs/reactives/EntityStore.js.map +1 -0
  242. package/dist/cjs/reactives/FakeWeakRef.d.ts +11 -0
  243. package/dist/cjs/reactives/FakeWeakRef.js +19 -0
  244. package/dist/cjs/reactives/FakeWeakRef.js.map +1 -0
  245. package/dist/cjs/sync/FileSync.d.ts +23 -23
  246. package/dist/cjs/sync/FileSync.js +84 -84
  247. package/dist/cjs/sync/Heartbeat.d.ts +25 -25
  248. package/dist/cjs/sync/Heartbeat.js +63 -63
  249. package/dist/cjs/sync/PresenceManager.d.ts +43 -43
  250. package/dist/cjs/sync/PresenceManager.js +119 -119
  251. package/dist/cjs/sync/PushPullSync.d.ts +36 -36
  252. package/dist/cjs/sync/PushPullSync.js +143 -143
  253. package/dist/cjs/sync/ServerSyncEndpointProvider.d.ts +27 -27
  254. package/dist/cjs/sync/ServerSyncEndpointProvider.js +64 -64
  255. package/dist/cjs/sync/Sync.d.ts +146 -146
  256. package/dist/cjs/sync/Sync.js +270 -270
  257. package/dist/cjs/sync/Sync.js.map +1 -1
  258. package/dist/cjs/sync/WebSocketSync.d.ts +41 -41
  259. package/dist/cjs/sync/WebSocketSync.js +190 -190
  260. package/dist/cjs/types.d.ts +12 -12
  261. package/dist/cjs/types.js +2 -2
  262. package/dist/cjs/utils/Disposable.d.ts +6 -6
  263. package/dist/cjs/utils/Disposable.js +18 -18
  264. package/dist/cjs/utils/Resolvable.d.ts +8 -8
  265. package/dist/cjs/utils/Resolvable.js +22 -22
  266. package/dist/cjs/v2/AckInfoStore.d.ts +10 -0
  267. package/dist/cjs/v2/AckInfoStore.js +26 -0
  268. package/dist/cjs/v2/AckInfoStore.js.map +1 -0
  269. package/dist/cjs/v2/BaselinesStore.d.ts +10 -0
  270. package/dist/cjs/v2/BaselinesStore.js +36 -0
  271. package/dist/cjs/v2/BaselinesStore.js.map +1 -0
  272. package/dist/cjs/v2/DocumentManager.d.ts +19 -0
  273. package/dist/cjs/v2/DocumentManager.js +47 -0
  274. package/dist/cjs/v2/DocumentManager.js.map +1 -0
  275. package/dist/cjs/v2/Entity.d.ts +87 -0
  276. package/dist/cjs/v2/Entity.js +305 -0
  277. package/dist/cjs/v2/Entity.js.map +1 -0
  278. package/dist/cjs/v2/EntityStore.d.ts +37 -0
  279. package/dist/cjs/v2/EntityStore.js +165 -0
  280. package/dist/cjs/v2/EntityStore.js.map +1 -0
  281. package/dist/cjs/v2/IDBService.d.ts +7 -0
  282. package/dist/cjs/v2/IDBService.js +26 -0
  283. package/dist/cjs/v2/IDBService.js.map +1 -0
  284. package/dist/cjs/v2/LocalHistoryStore.d.ts +15 -0
  285. package/dist/cjs/v2/LocalHistoryStore.js +53 -0
  286. package/dist/cjs/v2/LocalHistoryStore.js.map +1 -0
  287. package/dist/cjs/v2/LocalReplicaStore.d.ts +14 -0
  288. package/dist/cjs/v2/LocalReplicaStore.js +49 -0
  289. package/dist/cjs/v2/LocalReplicaStore.js.map +1 -0
  290. package/dist/cjs/v2/MessageCreator.d.ts +19 -0
  291. package/dist/cjs/v2/MessageCreator.js +99 -0
  292. package/dist/cjs/v2/MessageCreator.js.map +1 -0
  293. package/dist/cjs/v2/Metadata.d.ts +90 -0
  294. package/dist/cjs/v2/Metadata.js +251 -0
  295. package/dist/cjs/v2/Metadata.js.map +1 -0
  296. package/dist/cjs/v2/OperationsStore.d.ts +38 -0
  297. package/dist/cjs/v2/OperationsStore.js +146 -0
  298. package/dist/cjs/v2/OperationsStore.js.map +1 -0
  299. package/dist/cjs/v2/PresenceManager.d.ts +24 -0
  300. package/dist/cjs/v2/PresenceManager.js +73 -0
  301. package/dist/cjs/v2/PresenceManager.js.map +1 -0
  302. package/dist/cjs/v2/Query.d.ts +24 -0
  303. package/dist/cjs/v2/Query.js +79 -0
  304. package/dist/cjs/v2/Query.js.map +1 -0
  305. package/dist/cjs/v2/QueryMaker.d.ts +16 -0
  306. package/dist/cjs/v2/QueryMaker.js +84 -0
  307. package/dist/cjs/v2/QueryMaker.js.map +1 -0
  308. package/dist/cjs/v2/QueryStore.d.ts +26 -0
  309. package/dist/cjs/v2/QueryStore.js +136 -0
  310. package/dist/cjs/v2/QueryStore.js.map +1 -0
  311. package/dist/cjs/v2/SchemaStore.d.ts +9 -0
  312. package/dist/cjs/v2/SchemaStore.js +35 -0
  313. package/dist/cjs/v2/SchemaStore.js.map +1 -0
  314. package/dist/cjs/v2/Storage.d.ts +80 -0
  315. package/dist/cjs/v2/Storage.js +154 -0
  316. package/dist/cjs/v2/Storage.js.map +1 -0
  317. package/dist/cjs/v2/Sync.d.ts +42 -0
  318. package/dist/cjs/v2/Sync.js +98 -0
  319. package/dist/cjs/v2/Sync.js.map +1 -0
  320. package/dist/cjs/v2/SyncHarness.d.ts +45 -0
  321. package/dist/cjs/v2/SyncHarness.js +110 -0
  322. package/dist/cjs/v2/SyncHarness.js.map +1 -0
  323. package/dist/cjs/v2/__tests__/documents.test.d.ts +1 -0
  324. package/dist/cjs/v2/__tests__/documents.test.js +185 -0
  325. package/dist/cjs/v2/__tests__/documents.test.js.map +1 -0
  326. package/dist/cjs/v2/__tests__/fixtures/testStorage.d.ts +189 -0
  327. package/dist/cjs/v2/__tests__/fixtures/testStorage.js +93 -0
  328. package/dist/cjs/v2/__tests__/fixtures/testStorage.js.map +1 -0
  329. package/dist/cjs/v2/__tests__/queries.test.d.ts +1 -0
  330. package/dist/cjs/v2/__tests__/queries.test.js +92 -0
  331. package/dist/cjs/v2/__tests__/queries.test.js.map +1 -0
  332. package/dist/cjs/v2/__tests__/setup/indexedDB.d.ts +1 -0
  333. package/dist/cjs/v2/__tests__/setup/indexedDB.js +4 -0
  334. package/dist/cjs/v2/__tests__/setup/indexedDB.js.map +1 -0
  335. package/dist/cjs/v2/constants.d.ts +1 -0
  336. package/dist/cjs/v2/constants.js +5 -0
  337. package/dist/cjs/v2/constants.js.map +1 -0
  338. package/dist/cjs/v2/idb.d.ts +6 -0
  339. package/dist/cjs/v2/idb.js +71 -0
  340. package/dist/cjs/v2/idb.js.map +1 -0
  341. package/dist/cjs/v2/index.d.ts +6 -0
  342. package/dist/cjs/v2/index.js +14 -0
  343. package/dist/cjs/v2/index.js.map +1 -0
  344. package/dist/cjs/v2/indexes.d.ts +3 -0
  345. package/dist/cjs/v2/indexes.js +20 -0
  346. package/dist/cjs/v2/indexes.js.map +1 -0
  347. package/dist/cjs/v2/openDocumentDatabase.d.ts +9 -0
  348. package/dist/cjs/v2/openDocumentDatabase.js +100 -0
  349. package/dist/cjs/v2/openDocumentDatabase.js.map +1 -0
  350. package/dist/cjs/v2/types.d.ts +3 -0
  351. package/dist/cjs/v2/types.js +3 -0
  352. package/dist/cjs/v2/types.js.map +1 -0
  353. package/dist/cjs/vanilla.d.ts +1 -1
  354. package/dist/cjs/vanilla.js +27 -27
  355. package/dist/esm/AckInfoStore.d.ts +10 -0
  356. package/dist/esm/AckInfoStore.js +22 -0
  357. package/dist/esm/AckInfoStore.js.map +1 -0
  358. package/dist/esm/BackoffScheduler.d.ts +19 -19
  359. package/dist/esm/BackoffScheduler.js +39 -39
  360. package/dist/esm/BaselinesStore.d.ts +10 -0
  361. package/dist/esm/BaselinesStore.js +32 -0
  362. package/dist/esm/BaselinesStore.js.map +1 -0
  363. package/dist/esm/DocumentManager.d.ts +28 -28
  364. package/dist/esm/DocumentManager.js +40 -40
  365. package/dist/esm/Entity.d.ts +96 -0
  366. package/dist/esm/Entity.js +337 -0
  367. package/dist/esm/Entity.js.map +1 -0
  368. package/dist/esm/EntityStore.d.ts +36 -0
  369. package/dist/esm/EntityStore.js +168 -0
  370. package/dist/esm/EntityStore.js.map +1 -0
  371. package/dist/esm/FakeWeakRef.d.ts +11 -11
  372. package/dist/esm/FakeWeakRef.js +14 -14
  373. package/dist/esm/IDBService.d.ts +9 -9
  374. package/dist/esm/IDBService.js +59 -59
  375. package/dist/esm/LocalHistoryStore.d.ts +15 -0
  376. package/dist/esm/LocalHistoryStore.js +49 -0
  377. package/dist/esm/LocalHistoryStore.js.map +1 -0
  378. package/dist/esm/LocalReplicaStore.d.ts +13 -0
  379. package/dist/esm/LocalReplicaStore.js +42 -0
  380. package/dist/esm/LocalReplicaStore.js.map +1 -0
  381. package/dist/esm/MessageCreator.d.ts +19 -0
  382. package/dist/esm/MessageCreator.js +97 -0
  383. package/dist/esm/MessageCreator.js.map +1 -0
  384. package/dist/esm/Metadata.d.ts +91 -0
  385. package/dist/esm/Metadata.js +245 -0
  386. package/dist/esm/Metadata.js.map +1 -0
  387. package/dist/esm/OperationsStore.d.ts +38 -0
  388. package/dist/esm/OperationsStore.js +142 -0
  389. package/dist/esm/OperationsStore.js.map +1 -0
  390. package/dist/esm/PresenceManager.d.ts +30 -0
  391. package/dist/esm/PresenceManager.js +85 -0
  392. package/dist/esm/PresenceManager.js.map +1 -0
  393. package/dist/esm/Query.d.ts +26 -0
  394. package/dist/esm/Query.js +82 -0
  395. package/dist/esm/Query.js.map +1 -0
  396. package/dist/esm/QueryMaker.d.ts +18 -0
  397. package/dist/esm/QueryMaker.js +94 -0
  398. package/dist/esm/QueryMaker.js.map +1 -0
  399. package/dist/esm/QueryStore.d.ts +38 -0
  400. package/dist/esm/QueryStore.js +142 -0
  401. package/dist/esm/QueryStore.js.map +1 -0
  402. package/dist/esm/SchemaStore.d.ts +9 -0
  403. package/dist/esm/SchemaStore.js +31 -0
  404. package/dist/esm/SchemaStore.js.map +1 -0
  405. package/dist/esm/Storage.d.ts +147 -0
  406. package/dist/esm/Storage.js +341 -0
  407. package/dist/esm/Storage.js.map +1 -0
  408. package/dist/esm/Sync.d.ts +117 -0
  409. package/dist/esm/Sync.js +553 -0
  410. package/dist/esm/Sync.js.map +1 -0
  411. package/dist/esm/SyncHarness.d.ts +45 -0
  412. package/dist/esm/SyncHarness.js +105 -0
  413. package/dist/esm/SyncHarness.js.map +1 -0
  414. package/dist/esm/UndoHistory.d.ts +16 -16
  415. package/dist/esm/UndoHistory.js +46 -46
  416. package/dist/esm/__tests__/batching.test.d.ts +1 -1
  417. package/dist/esm/__tests__/batching.test.js +42 -42
  418. package/dist/esm/__tests__/documents.test.d.ts +1 -1
  419. package/dist/esm/__tests__/documents.test.js +413 -413
  420. package/dist/esm/__tests__/fixtures/testStorage.d.ts +123 -122
  421. package/dist/esm/__tests__/fixtures/testStorage.js +113 -111
  422. package/dist/esm/__tests__/fixtures/testStorage.js.map +1 -1
  423. package/dist/esm/__tests__/legacyOids.test.d.ts +1 -1
  424. package/dist/esm/__tests__/legacyOids.test.js +307 -121
  425. package/dist/esm/__tests__/legacyOids.test.js.map +1 -1
  426. package/dist/esm/__tests__/mutations.test.d.ts +1 -1
  427. package/dist/esm/__tests__/mutations.test.js +39 -39
  428. package/dist/esm/__tests__/queries.test.d.ts +1 -1
  429. package/dist/esm/__tests__/queries.test.js +316 -316
  430. package/dist/esm/__tests__/setup/indexedDB.d.ts +1 -1
  431. package/dist/esm/__tests__/setup/indexedDB.js +1 -1
  432. package/dist/esm/__tests__/undo.test.d.ts +1 -1
  433. package/dist/esm/__tests__/undo.test.js +84 -84
  434. package/dist/esm/client/Client.d.ts +99 -99
  435. package/dist/esm/client/Client.js +223 -223
  436. package/dist/esm/client/ClientDescriptor.d.ts +76 -74
  437. package/dist/esm/client/ClientDescriptor.js +193 -190
  438. package/dist/esm/client/ClientDescriptor.js.map +1 -1
  439. package/dist/esm/client/constants.d.ts +1 -0
  440. package/dist/esm/client/constants.js +2 -0
  441. package/dist/esm/client/constants.js.map +1 -0
  442. package/dist/esm/constants.d.ts +1 -1
  443. package/dist/esm/constants.js +1 -1
  444. package/dist/esm/context.d.ts +29 -29
  445. package/dist/esm/context.js +1 -1
  446. package/dist/esm/entities/DocumentFamiliyCache.d.ts +90 -90
  447. package/dist/esm/entities/DocumentFamiliyCache.js +278 -278
  448. package/dist/esm/entities/Entity.d.ts +206 -203
  449. package/dist/esm/entities/Entity.js +515 -515
  450. package/dist/esm/entities/EntityStore.d.ts +85 -85
  451. package/dist/esm/entities/EntityStore.js +475 -475
  452. package/dist/esm/files/EntityFile.d.ts +31 -31
  453. package/dist/esm/files/EntityFile.js +72 -72
  454. package/dist/esm/files/FileManager.d.ts +42 -42
  455. package/dist/esm/files/FileManager.js +148 -148
  456. package/dist/esm/files/FileStorage.d.ts +28 -28
  457. package/dist/esm/files/FileStorage.js +99 -99
  458. package/dist/esm/files/utils.d.ts +8 -8
  459. package/dist/esm/files/utils.js +46 -46
  460. package/dist/esm/files/utils.test.d.ts +1 -1
  461. package/dist/esm/files/utils.test.js +78 -78
  462. package/dist/esm/idb.d.ts +11 -11
  463. package/dist/esm/idb.js +100 -100
  464. package/dist/esm/index.d.ts +21 -21
  465. package/dist/esm/index.js +12 -12
  466. package/dist/esm/indexes.d.ts +3 -0
  467. package/dist/esm/indexes.js +15 -0
  468. package/dist/esm/indexes.js.map +1 -0
  469. package/dist/esm/metadata/AckInfoStore.d.ts +10 -10
  470. package/dist/esm/metadata/AckInfoStore.js +21 -21
  471. package/dist/esm/metadata/BaselinesStore.d.ts +33 -33
  472. package/dist/esm/metadata/BaselinesStore.js +85 -85
  473. package/dist/esm/metadata/LocalHistoryStore.d.ts +15 -0
  474. package/dist/esm/metadata/LocalHistoryStore.js +49 -0
  475. package/dist/esm/metadata/LocalHistoryStore.js.map +1 -0
  476. package/dist/esm/metadata/LocalReplicaStore.d.ts +17 -17
  477. package/dist/esm/metadata/LocalReplicaStore.js +40 -40
  478. package/dist/esm/metadata/MessageCreator.d.ts +19 -19
  479. package/dist/esm/metadata/MessageCreator.js +123 -123
  480. package/dist/esm/metadata/Metadata.d.ts +112 -112
  481. package/dist/esm/metadata/Metadata.js +348 -348
  482. package/dist/esm/metadata/OperationsStore.d.ts +53 -53
  483. package/dist/esm/metadata/OperationsStore.js +148 -148
  484. package/dist/esm/metadata/SchemaStore.d.ts +9 -9
  485. package/dist/esm/metadata/SchemaStore.js +34 -34
  486. package/dist/esm/metadata/openMetadataDatabase.d.ts +19 -17
  487. package/dist/esm/metadata/openMetadataDatabase.js +214 -153
  488. package/dist/esm/metadata/openMetadataDatabase.js.map +1 -1
  489. package/dist/esm/migration/db.d.ts +8 -8
  490. package/dist/esm/migration/db.js +103 -103
  491. package/dist/esm/migration/errors.d.ts +5 -5
  492. package/dist/esm/migration/errors.js +7 -7
  493. package/dist/esm/migration/openDatabase.d.ts +20 -20
  494. package/dist/esm/migration/openDatabase.js +423 -423
  495. package/dist/esm/migration/paths.d.ts +6 -6
  496. package/dist/esm/migration/paths.js +48 -48
  497. package/dist/esm/migration/paths.test.d.ts +1 -1
  498. package/dist/esm/migration/paths.test.js +88 -88
  499. package/dist/esm/openDocumentDatabase.d.ts +12 -0
  500. package/dist/esm/openDocumentDatabase.js +428 -0
  501. package/dist/esm/openDocumentDatabase.js.map +1 -0
  502. package/dist/esm/queries/BaseQuery.d.ts +53 -53
  503. package/dist/esm/queries/BaseQuery.js +131 -131
  504. package/dist/esm/queries/CollectionQueries.d.ts +55 -55
  505. package/dist/esm/queries/CollectionQueries.js +87 -87
  506. package/dist/esm/queries/FindAllQuery.d.ts +12 -12
  507. package/dist/esm/queries/FindAllQuery.js +38 -38
  508. package/dist/esm/queries/FindInfiniteQuery.d.ts +19 -19
  509. package/dist/esm/queries/FindInfiniteQuery.js +65 -65
  510. package/dist/esm/queries/FindOneQuery.d.ts +12 -12
  511. package/dist/esm/queries/FindOneQuery.js +38 -38
  512. package/dist/esm/queries/FindPageQuery.d.ts +24 -24
  513. package/dist/esm/queries/FindPageQuery.js +72 -72
  514. package/dist/esm/queries/GetQuery.d.ts +10 -10
  515. package/dist/esm/queries/GetQuery.js +25 -25
  516. package/dist/esm/queries/LiveQuery.d.ts +28 -0
  517. package/dist/esm/queries/LiveQuery.js +92 -0
  518. package/dist/esm/queries/LiveQuery.js.map +1 -0
  519. package/dist/esm/queries/LiveQueryMaker.d.ts +15 -0
  520. package/dist/esm/queries/LiveQueryMaker.js +38 -0
  521. package/dist/esm/queries/LiveQueryMaker.js.map +1 -0
  522. package/dist/esm/queries/LiveQueryStore.d.ts +33 -0
  523. package/dist/esm/queries/LiveQueryStore.js +81 -0
  524. package/dist/esm/queries/LiveQueryStore.js.map +1 -0
  525. package/dist/esm/queries/Query.d.ts +18 -0
  526. package/dist/esm/queries/Query.js +32 -0
  527. package/dist/esm/queries/Query.js.map +1 -0
  528. package/dist/esm/queries/QueryCache.d.ts +16 -16
  529. package/dist/esm/queries/QueryCache.js +37 -37
  530. package/dist/esm/queries/QueryMaker.d.ts +14 -0
  531. package/dist/esm/queries/QueryMaker.js +38 -0
  532. package/dist/esm/queries/QueryMaker.js.map +1 -0
  533. package/dist/esm/queries/QueryStore.d.ts +35 -0
  534. package/dist/esm/queries/QueryStore.js +126 -0
  535. package/dist/esm/queries/QueryStore.js.map +1 -0
  536. package/dist/esm/queries/dbQueries.d.ts +22 -22
  537. package/dist/esm/queries/dbQueries.js +119 -119
  538. package/dist/esm/queries/keys.d.ts +10 -10
  539. package/dist/esm/queries/keys.js +29 -29
  540. package/dist/esm/queries/ranges.d.ts +2 -2
  541. package/dist/esm/queries/ranges.js +65 -65
  542. package/dist/esm/queries/types.d.ts +6 -6
  543. package/dist/esm/queries/types.js +1 -1
  544. package/dist/esm/queries/utils.d.ts +3 -3
  545. package/dist/esm/queries/utils.js +19 -19
  546. package/dist/esm/queries2/BaseQuery.d.ts +39 -0
  547. package/dist/esm/queries2/BaseQuery.js +95 -0
  548. package/dist/esm/queries2/BaseQuery.js.map +1 -0
  549. package/dist/esm/queries2/CollectionQueries.d.ts +55 -0
  550. package/dist/esm/queries2/CollectionQueries.js +79 -0
  551. package/dist/esm/queries2/CollectionQueries.js.map +1 -0
  552. package/dist/esm/queries2/FindAllQuery.d.ts +11 -0
  553. package/dist/esm/queries2/FindAllQuery.js +30 -0
  554. package/dist/esm/queries2/FindAllQuery.js.map +1 -0
  555. package/dist/esm/queries2/FindInfiniteQuery.d.ts +18 -0
  556. package/dist/esm/queries2/FindInfiniteQuery.js +57 -0
  557. package/dist/esm/queries2/FindInfiniteQuery.js.map +1 -0
  558. package/dist/esm/queries2/FindOneQuery.d.ts +11 -0
  559. package/dist/esm/queries2/FindOneQuery.js +30 -0
  560. package/dist/esm/queries2/FindOneQuery.js.map +1 -0
  561. package/dist/esm/queries2/FindPageQuery.d.ts +23 -0
  562. package/dist/esm/queries2/FindPageQuery.js +64 -0
  563. package/dist/esm/queries2/FindPageQuery.js.map +1 -0
  564. package/dist/esm/queries2/GetQuery.d.ts +10 -0
  565. package/dist/esm/queries2/GetQuery.js +26 -0
  566. package/dist/esm/queries2/GetQuery.js.map +1 -0
  567. package/dist/esm/queries2/QueryCache.d.ts +16 -0
  568. package/dist/esm/queries2/QueryCache.js +36 -0
  569. package/dist/esm/queries2/QueryCache.js.map +1 -0
  570. package/dist/esm/queries2/dbQueries.d.ts +22 -0
  571. package/dist/esm/queries2/dbQueries.js +120 -0
  572. package/dist/esm/queries2/dbQueries.js.map +1 -0
  573. package/dist/esm/queries2/keys.d.ts +10 -0
  574. package/dist/esm/queries2/keys.js +30 -0
  575. package/dist/esm/queries2/keys.js.map +1 -0
  576. package/dist/esm/queries2/ranges.d.ts +2 -0
  577. package/dist/esm/queries2/ranges.js +66 -0
  578. package/dist/esm/queries2/ranges.js.map +1 -0
  579. package/dist/esm/queries2/types.d.ts +6 -0
  580. package/dist/esm/queries2/types.js +2 -0
  581. package/dist/esm/queries2/types.js.map +1 -0
  582. package/dist/esm/queries2/utils.d.ts +1 -0
  583. package/dist/esm/queries2/utils.js +16 -0
  584. package/dist/esm/queries2/utils.js.map +1 -0
  585. package/dist/esm/reactives/DocumentFamiliyCache.d.ts +47 -0
  586. package/dist/esm/reactives/DocumentFamiliyCache.js +207 -0
  587. package/dist/esm/reactives/DocumentFamiliyCache.js.map +1 -0
  588. package/dist/esm/reactives/Entity.d.ts +191 -0
  589. package/dist/esm/reactives/Entity.js +458 -0
  590. package/dist/esm/reactives/Entity.js.map +1 -0
  591. package/dist/esm/reactives/EntityStore.d.ts +84 -0
  592. package/dist/esm/reactives/EntityStore.js +418 -0
  593. package/dist/esm/reactives/EntityStore.js.map +1 -0
  594. package/dist/esm/reactives/FakeWeakRef.d.ts +11 -0
  595. package/dist/esm/reactives/FakeWeakRef.js +15 -0
  596. package/dist/esm/reactives/FakeWeakRef.js.map +1 -0
  597. package/dist/esm/sync/FileSync.d.ts +23 -23
  598. package/dist/esm/sync/FileSync.js +80 -80
  599. package/dist/esm/sync/Heartbeat.d.ts +25 -25
  600. package/dist/esm/sync/Heartbeat.js +59 -59
  601. package/dist/esm/sync/PresenceManager.d.ts +43 -43
  602. package/dist/esm/sync/PresenceManager.js +115 -115
  603. package/dist/esm/sync/PushPullSync.d.ts +36 -36
  604. package/dist/esm/sync/PushPullSync.js +139 -139
  605. package/dist/esm/sync/ServerSyncEndpointProvider.d.ts +27 -27
  606. package/dist/esm/sync/ServerSyncEndpointProvider.js +57 -57
  607. package/dist/esm/sync/Sync.d.ts +146 -146
  608. package/dist/esm/sync/Sync.js +265 -265
  609. package/dist/esm/sync/Sync.js.map +1 -1
  610. package/dist/esm/sync/{WebSocketSync.d.ts → WebsocketSync.d.ts} +41 -41
  611. package/dist/esm/sync/{WebSocketSync.js → WebsocketSync.js} +186 -186
  612. package/dist/esm/types.d.ts +12 -12
  613. package/dist/esm/types.js +1 -1
  614. package/dist/esm/utils/Disposable.d.ts +6 -6
  615. package/dist/esm/utils/Disposable.js +14 -14
  616. package/dist/esm/utils/Resolvable.d.ts +8 -8
  617. package/dist/esm/utils/Resolvable.js +18 -18
  618. package/dist/esm/v2/AckInfoStore.d.ts +10 -0
  619. package/dist/esm/v2/AckInfoStore.js +22 -0
  620. package/dist/esm/v2/AckInfoStore.js.map +1 -0
  621. package/dist/esm/v2/BaselinesStore.d.ts +10 -0
  622. package/dist/esm/v2/BaselinesStore.js +32 -0
  623. package/dist/esm/v2/BaselinesStore.js.map +1 -0
  624. package/dist/esm/v2/DocumentManager.d.ts +19 -0
  625. package/dist/esm/v2/DocumentManager.js +43 -0
  626. package/dist/esm/v2/DocumentManager.js.map +1 -0
  627. package/dist/esm/v2/Entity.d.ts +91 -0
  628. package/dist/esm/v2/Entity.js +305 -0
  629. package/dist/esm/v2/Entity.js.map +1 -0
  630. package/dist/esm/v2/EntityStore.d.ts +37 -0
  631. package/dist/esm/v2/EntityStore.js +166 -0
  632. package/dist/esm/v2/EntityStore.js.map +1 -0
  633. package/dist/esm/v2/IDBService.d.ts +7 -0
  634. package/dist/esm/v2/IDBService.js +22 -0
  635. package/dist/esm/v2/IDBService.js.map +1 -0
  636. package/dist/esm/v2/LocalHistoryStore.d.ts +15 -0
  637. package/dist/esm/v2/LocalHistoryStore.js +49 -0
  638. package/dist/esm/v2/LocalHistoryStore.js.map +1 -0
  639. package/dist/esm/v2/LocalReplicaStore.d.ts +14 -0
  640. package/dist/esm/v2/LocalReplicaStore.js +42 -0
  641. package/dist/esm/v2/LocalReplicaStore.js.map +1 -0
  642. package/dist/esm/v2/MessageCreator.d.ts +19 -0
  643. package/dist/esm/v2/MessageCreator.js +92 -0
  644. package/dist/esm/v2/MessageCreator.js.map +1 -0
  645. package/dist/esm/v2/Metadata.d.ts +90 -0
  646. package/dist/esm/v2/Metadata.js +246 -0
  647. package/dist/esm/v2/Metadata.js.map +1 -0
  648. package/dist/esm/v2/OperationsStore.d.ts +38 -0
  649. package/dist/esm/v2/OperationsStore.js +142 -0
  650. package/dist/esm/v2/OperationsStore.js.map +1 -0
  651. package/dist/esm/v2/PresenceManager.d.ts +24 -0
  652. package/dist/esm/v2/PresenceManager.js +69 -0
  653. package/dist/esm/v2/PresenceManager.js.map +1 -0
  654. package/dist/esm/v2/Query.d.ts +24 -0
  655. package/dist/esm/v2/Query.js +75 -0
  656. package/dist/esm/v2/Query.js.map +1 -0
  657. package/dist/esm/v2/QueryMaker.d.ts +16 -0
  658. package/dist/esm/v2/QueryMaker.js +80 -0
  659. package/dist/esm/v2/QueryMaker.js.map +1 -0
  660. package/dist/esm/v2/QueryStore.d.ts +26 -0
  661. package/dist/esm/v2/QueryStore.js +132 -0
  662. package/dist/esm/v2/QueryStore.js.map +1 -0
  663. package/dist/esm/v2/SchemaStore.d.ts +9 -0
  664. package/dist/esm/v2/SchemaStore.js +31 -0
  665. package/dist/esm/v2/SchemaStore.js.map +1 -0
  666. package/dist/esm/v2/Storage.d.ts +80 -0
  667. package/dist/esm/v2/Storage.js +149 -0
  668. package/dist/esm/v2/Storage.js.map +1 -0
  669. package/dist/esm/v2/Sync.d.ts +42 -0
  670. package/dist/esm/v2/Sync.js +94 -0
  671. package/dist/esm/v2/Sync.js.map +1 -0
  672. package/dist/esm/v2/SyncHarness.d.ts +45 -0
  673. package/dist/esm/v2/SyncHarness.js +105 -0
  674. package/dist/esm/v2/SyncHarness.js.map +1 -0
  675. package/dist/esm/v2/__tests__/documents.test.d.ts +1 -0
  676. package/dist/esm/v2/__tests__/documents.test.js +208 -0
  677. package/dist/esm/v2/__tests__/documents.test.js.map +1 -0
  678. package/dist/esm/v2/__tests__/fixtures/testStorage.d.ts +223 -0
  679. package/dist/esm/v2/__tests__/fixtures/testStorage.js +106 -0
  680. package/dist/esm/v2/__tests__/fixtures/testStorage.js.map +1 -0
  681. package/dist/esm/v2/__tests__/queries.test.d.ts +1 -0
  682. package/dist/esm/v2/__tests__/queries.test.js +90 -0
  683. package/dist/esm/v2/__tests__/queries.test.js.map +1 -0
  684. package/dist/esm/v2/__tests__/setup/indexedDB.d.ts +1 -0
  685. package/dist/esm/v2/__tests__/setup/indexedDB.js +2 -0
  686. package/dist/esm/v2/__tests__/setup/indexedDB.js.map +1 -0
  687. package/dist/esm/v2/constants.d.ts +1 -0
  688. package/dist/esm/v2/constants.js +2 -0
  689. package/dist/esm/v2/constants.js.map +1 -0
  690. package/dist/esm/v2/idb.d.ts +6 -0
  691. package/dist/esm/v2/idb.js +65 -0
  692. package/dist/esm/v2/idb.js.map +1 -0
  693. package/dist/esm/v2/index.d.ts +6 -0
  694. package/dist/esm/v2/index.js +5 -0
  695. package/dist/esm/v2/index.js.map +1 -0
  696. package/dist/esm/v2/indexes.d.ts +3 -0
  697. package/dist/esm/v2/indexes.js +15 -0
  698. package/dist/esm/v2/indexes.js.map +1 -0
  699. package/dist/esm/v2/openDocumentDatabase.d.ts +9 -0
  700. package/dist/esm/v2/openDocumentDatabase.js +96 -0
  701. package/dist/esm/v2/openDocumentDatabase.js.map +1 -0
  702. package/dist/esm/v2/types.d.ts +3 -0
  703. package/dist/esm/v2/types.js +2 -0
  704. package/dist/esm/v2/types.js.map +1 -0
  705. package/dist/esm/vanilla.d.ts +1 -1
  706. package/dist/esm/vanilla.js +2 -2
  707. package/dist/tsconfig-cjs.tsbuildinfo +1 -1
  708. package/dist/tsconfig.tsbuildinfo +1 -1
  709. package/package.json +2 -2
  710. package/src/__tests__/fixtures/testStorage.ts +8 -1
  711. package/src/__tests__/legacyOids.test.ts +240 -49
  712. package/src/client/ClientDescriptor.ts +6 -0
  713. package/src/client/constants.ts +1 -0
  714. package/src/entities/Entity.ts +10 -2
  715. package/src/metadata/openMetadataDatabase.ts +65 -2
  716. package/src/sync/Sync.ts +1 -0
  717. /package/dist/esm/sync/{WebSocketSync.js.map → WebsocketSync.js.map} +0 -0
@@ -1,420 +1,420 @@
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
- Object.defineProperty(exports, "__esModule", { value: true });
14
- const common_1 = require("@verdant-web/common");
15
- const vitest_1 = require("vitest");
16
- const testStorage_js_1 = require("./fixtures/testStorage.js");
17
- async function waitForStoragePropagation(mock) {
18
- await new Promise((resolve, reject) => {
19
- // timeout after 3s waiting
20
- const timeout = setTimeout(() => reject(new Error('Waiting for storage change timed out')), 3000);
21
- const interval = setInterval(() => {
22
- if (mock.mock.calls.length > 0) {
23
- clearInterval(interval);
24
- clearTimeout(timeout);
25
- resolve();
26
- }
27
- }, 0);
28
- });
29
- }
30
- (0, vitest_1.describe)('storage documents', () => {
31
- (0, vitest_1.it)('should fill in default values', async () => {
32
- const storage = await (0, testStorage_js_1.createTestStorage)();
33
- const item = await storage.todos.put({
34
- content: 'item',
35
- category: 'general',
36
- attachments: [
37
- {
38
- name: 'thing',
39
- },
40
- ],
41
- });
42
- (0, vitest_1.expect)(item.get('id')).toBeDefined();
43
- (0, vitest_1.expect)(item.get('done')).toBe(false);
44
- (0, vitest_1.expect)(item.get('tags').length).toBe(0);
45
- (0, vitest_1.expect)(item.get('attachments').get(0).get('test')).toBe(1);
46
- });
47
- (0, vitest_1.it)('should have a stable identity across different queries when subscribed', async () => {
48
- const storage = await (0, testStorage_js_1.createTestStorage)();
49
- const item1 = await storage.todos.put({
50
- content: 'item 1',
51
- done: false,
52
- tags: [],
53
- category: 'general',
54
- attachments: [],
55
- });
56
- await storage.todos.put({
57
- content: 'item 2',
58
- done: true,
59
- tags: [],
60
- category: 'general',
61
- attachments: [],
62
- });
63
- const singleItemQuery = storage.todos.get(item1.get('id'));
64
- const singleItemResult = await singleItemQuery.resolved;
65
- (0, vitest_1.expect)(singleItemResult).toBeTruthy();
66
- (0, common_1.assert)(!!singleItemResult);
67
- singleItemResult.subscribe('change', vitest_1.vi.fn());
68
- const allItemsQuery = storage.todos.findAll();
69
- const allItemsResult = await allItemsQuery.resolved;
70
- const allItemsReferenceToItem1 = allItemsResult.find((item) => item.get('id') === item1.get('id'));
71
- (0, vitest_1.expect)(singleItemResult).toBe(allItemsReferenceToItem1);
72
- });
73
- (0, vitest_1.it)('should immediately reflect mutations', async () => {
74
- const storage = await (0, testStorage_js_1.createTestStorage)();
75
- const item1 = await storage.todos.put({
76
- content: 'item 1',
77
- done: false,
78
- tags: [],
79
- category: 'general',
80
- attachments: [],
81
- });
82
- item1.set('done', true);
83
- (0, vitest_1.expect)(item1.get('done')).toBe(true);
84
- });
85
- (0, vitest_1.it)('should notify about changes', async () => {
86
- const storage = await (0, testStorage_js_1.createTestStorage)();
87
- const item1 = await storage.todos.put({
88
- content: 'item 1',
89
- done: false,
90
- tags: [],
91
- category: 'general',
92
- attachments: [],
93
- });
94
- const liveItem1 = await storage.todos.get(item1.get('id')).resolved;
95
- (0, vitest_1.expect)(liveItem1).toBeTruthy();
96
- (0, common_1.assert)(!!liveItem1);
97
- const callback = vitest_1.vi.fn();
98
- liveItem1.subscribe('change', callback);
99
- liveItem1.set('done', true);
100
- liveItem1.set('content', 'item 1 updated');
101
- await waitForStoragePropagation(callback);
102
- // only 1 callback - changes are batched.
103
- // expect(callback).toBeCalledTimes(1); // FIXME: called twice, once for immediate in-memory change and once after propagation. can this be 1?
104
- (0, vitest_1.expect)(liveItem1.getSnapshot()).toEqual({
105
- id: liveItem1.get('id'),
106
- content: 'item 1 updated',
107
- done: true,
108
- tags: [],
109
- category: 'general',
110
- attachments: [],
111
- });
112
- const callbackDeep = vitest_1.vi.fn();
113
- liveItem1.subscribe('changeDeep', callbackDeep);
114
- liveItem1.update({
115
- tags: ['tag 1', 'tag 2'],
116
- });
117
- await waitForStoragePropagation(callbackDeep);
118
- (0, vitest_1.expect)(liveItem1.getSnapshot().tags).toEqual(['tag 1', 'tag 2']);
119
- });
120
- (0, vitest_1.it)('should expose array mutators on nested arrays', async () => {
121
- const storage = await (0, testStorage_js_1.createTestStorage)();
122
- const item1 = await storage.todos.put({
123
- content: 'item 1',
124
- done: false,
125
- tags: [],
126
- category: 'general',
127
- attachments: [],
128
- });
129
- const callback = vitest_1.vi.fn();
130
- item1.get('tags').subscribe('change', callback);
131
- item1.get('tags').push('tag 1');
132
- item1.get('tags').push('tag 2');
133
- item1.get('tags').push('tag 3');
134
- item1.get('tags').move(1, 2);
135
- // fields are immediately updated
136
- (0, vitest_1.expect)(item1.get('tags').get(0)).toEqual('tag 1');
137
- (0, vitest_1.expect)(item1.get('tags').get(1)).toEqual('tag 3');
138
- (0, vitest_1.expect)(item1.get('tags').get(2)).toEqual('tag 2');
139
- await waitForStoragePropagation(callback);
140
- (0, vitest_1.expect)(callback).toBeCalledTimes(4);
141
- (0, vitest_1.expect)(item1.getSnapshot()).toEqual({
142
- id: item1.get('id'),
143
- content: 'item 1',
144
- done: false,
145
- tags: ['tag 1', 'tag 3', 'tag 2'],
146
- category: 'general',
147
- attachments: [],
148
- });
149
- });
150
- (0, vitest_1.it)('should expose array accessors on nested arrays', async () => {
151
- const storage = await (0, testStorage_js_1.createTestStorage)();
152
- const item1 = await storage.todos.put({
153
- content: 'item 1',
154
- done: false,
155
- tags: ['tag 1', 'tag 2'],
156
- category: 'general',
157
- attachments: [
158
- {
159
- name: 'attachment 1',
160
- },
161
- ],
162
- });
163
- for (const attachment of item1.get('attachments')) {
164
- (0, vitest_1.expect)(attachment.get('name')).toBe('attachment 1');
165
- }
166
- let i = 0;
167
- for (const tag of item1.get('tags')) {
168
- (0, vitest_1.expect)(tag).toBe('tag ' + ++i);
169
- }
170
- (0, vitest_1.expect)(item1.get('tags').filter((tag) => tag === 'tag 1')).toEqual([
171
- 'tag 1',
172
- ]);
173
- item1.get('attachments').push({
174
- name: 'attachment 2',
175
- });
176
- (0, vitest_1.expect)(item1.get('attachments').getSnapshot()).toEqual([
177
- { name: 'attachment 1', test: 1 },
178
- { name: 'attachment 2', test: 1 },
179
- ]);
180
- });
181
- (0, vitest_1.it)('should provide a reasonable way to interact with unknown data', async () => {
182
- /**
183
- * 'any' field types should basically just stop type checking, but still
184
- * provide full reactive entity access for nested data.
185
- */
186
- const storage = await (0, testStorage_js_1.createTestStorage)();
187
- const item1 = await storage.weirds.put({
188
- weird: {
189
- foo: 'bar',
190
- baz: [
191
- {
192
- corge: 3,
193
- },
194
- ],
195
- },
196
- map: {},
197
- objectMap: {},
198
- });
199
- (0, vitest_1.expect)(item1.get('weird').get('foo')).toBe('bar');
200
- (0, vitest_1.expect)(item1.get('weird').get('baz').get(0).get('corge')).toBe(3);
201
- (0, vitest_1.expect)(item1.get('weird').getSnapshot()).toEqual({
202
- foo: 'bar',
203
- baz: [{ corge: 3 }],
204
- });
205
- item1.get('weird').get('baz').push({ corge: 4 });
206
- (0, vitest_1.expect)(item1.get('weird').get('baz').getSnapshot()).toEqual([
207
- { corge: 3 },
208
- { corge: 4 },
209
- ]);
210
- });
211
- (0, vitest_1.it)('should provide access and updates for map-type fields', async () => {
212
- const storage = await (0, testStorage_js_1.createTestStorage)();
213
- const item1 = await storage.weirds.put({
214
- weird: null,
215
- map: {
216
- foo: 'bar',
217
- baz: 'qux',
218
- },
219
- objectMap: {
220
- foo: {
221
- content: 'bar',
222
- },
223
- },
224
- });
225
- (0, vitest_1.expect)(item1.get('map').get('foo')).toBe('bar');
226
- (0, vitest_1.expect)(item1.get('map').get('baz')).toBe('qux');
227
- (0, vitest_1.expect)(item1.get('map').getSnapshot()).toEqual({
228
- foo: 'bar',
229
- baz: 'qux',
230
- });
231
- (0, vitest_1.expect)(item1.get('objectMap').get('foo').get('content')).toBe('bar');
232
- (0, vitest_1.expect)(item1.get('objectMap').get('baz')).toBe(undefined);
233
- item1.get('objectMap').set('baz', { content: 'qux' });
234
- (0, vitest_1.expect)(item1.get('objectMap').get('baz').get('content')).toBe('qux');
235
- });
236
- (0, vitest_1.it)('should merge .update fields and not discard undefined ones', async () => {
237
- const storage = await (0, testStorage_js_1.createTestStorage)();
238
- const item1 = await storage.weirds.put({
239
- weird: null,
240
- map: {
241
- foo: 'bar',
242
- baz: 'qux',
243
- },
244
- objectMap: {
245
- foo: {
246
- content: 'bar',
247
- },
248
- },
249
- });
250
- item1.update({
251
- weird: 'foo',
252
- });
253
- (0, vitest_1.expect)(item1.get('weird')).toBe('foo');
254
- (0, vitest_1.expect)(item1.get('map').get('foo')).toBe('bar');
255
- item1.update({
256
- weird: undefined,
257
- });
258
- (0, vitest_1.expect)(item1.get('weird')).toBe('foo');
259
- });
260
- (0, vitest_1.it)('should delete undefined fields in .update if merge is false', async () => {
261
- const storage = await (0, testStorage_js_1.createTestStorage)();
262
- const item1 = await storage.weirds.put({
263
- weird: {
264
- bar: 2,
265
- qux: 3,
266
- },
267
- map: {
268
- foo: 'bar',
269
- baz: 'qux',
270
- },
271
- objectMap: {
272
- foo: {
273
- content: 'bar',
274
- },
275
- },
276
- });
277
- item1.get('weird').update({
278
- bar: 1,
279
- }, {
280
- merge: false,
281
- });
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
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ const common_1 = require("@verdant-web/common");
15
+ const vitest_1 = require("vitest");
16
+ const testStorage_js_1 = require("./fixtures/testStorage.js");
17
+ async function waitForStoragePropagation(mock) {
18
+ await new Promise((resolve, reject) => {
19
+ // timeout after 3s waiting
20
+ const timeout = setTimeout(() => reject(new Error('Waiting for storage change timed out')), 3000);
21
+ const interval = setInterval(() => {
22
+ if (mock.mock.calls.length > 0) {
23
+ clearInterval(interval);
24
+ clearTimeout(timeout);
25
+ resolve();
26
+ }
27
+ }, 0);
28
+ });
29
+ }
30
+ (0, vitest_1.describe)('storage documents', () => {
31
+ (0, vitest_1.it)('should fill in default values', async () => {
32
+ const storage = await (0, testStorage_js_1.createTestStorage)();
33
+ const item = await storage.todos.put({
34
+ content: 'item',
35
+ category: 'general',
36
+ attachments: [
37
+ {
38
+ name: 'thing',
39
+ },
40
+ ],
41
+ });
42
+ (0, vitest_1.expect)(item.get('id')).toBeDefined();
43
+ (0, vitest_1.expect)(item.get('done')).toBe(false);
44
+ (0, vitest_1.expect)(item.get('tags').length).toBe(0);
45
+ (0, vitest_1.expect)(item.get('attachments').get(0).get('test')).toBe(1);
46
+ });
47
+ (0, vitest_1.it)('should have a stable identity across different queries when subscribed', async () => {
48
+ const storage = await (0, testStorage_js_1.createTestStorage)();
49
+ const item1 = await storage.todos.put({
50
+ content: 'item 1',
51
+ done: false,
52
+ tags: [],
53
+ category: 'general',
54
+ attachments: [],
55
+ });
56
+ await storage.todos.put({
57
+ content: 'item 2',
58
+ done: true,
59
+ tags: [],
60
+ category: 'general',
61
+ attachments: [],
62
+ });
63
+ const singleItemQuery = storage.todos.get(item1.get('id'));
64
+ const singleItemResult = await singleItemQuery.resolved;
65
+ (0, vitest_1.expect)(singleItemResult).toBeTruthy();
66
+ (0, common_1.assert)(!!singleItemResult);
67
+ singleItemResult.subscribe('change', vitest_1.vi.fn());
68
+ const allItemsQuery = storage.todos.findAll();
69
+ const allItemsResult = await allItemsQuery.resolved;
70
+ const allItemsReferenceToItem1 = allItemsResult.find((item) => item.get('id') === item1.get('id'));
71
+ (0, vitest_1.expect)(singleItemResult).toBe(allItemsReferenceToItem1);
72
+ });
73
+ (0, vitest_1.it)('should immediately reflect mutations', async () => {
74
+ const storage = await (0, testStorage_js_1.createTestStorage)();
75
+ const item1 = await storage.todos.put({
76
+ content: 'item 1',
77
+ done: false,
78
+ tags: [],
79
+ category: 'general',
80
+ attachments: [],
81
+ });
82
+ item1.set('done', true);
83
+ (0, vitest_1.expect)(item1.get('done')).toBe(true);
84
+ });
85
+ (0, vitest_1.it)('should notify about changes', async () => {
86
+ const storage = await (0, testStorage_js_1.createTestStorage)();
87
+ const item1 = await storage.todos.put({
88
+ content: 'item 1',
89
+ done: false,
90
+ tags: [],
91
+ category: 'general',
92
+ attachments: [],
93
+ });
94
+ const liveItem1 = await storage.todos.get(item1.get('id')).resolved;
95
+ (0, vitest_1.expect)(liveItem1).toBeTruthy();
96
+ (0, common_1.assert)(!!liveItem1);
97
+ const callback = vitest_1.vi.fn();
98
+ liveItem1.subscribe('change', callback);
99
+ liveItem1.set('done', true);
100
+ liveItem1.set('content', 'item 1 updated');
101
+ await waitForStoragePropagation(callback);
102
+ // only 1 callback - changes are batched.
103
+ // expect(callback).toBeCalledTimes(1); // FIXME: called twice, once for immediate in-memory change and once after propagation. can this be 1?
104
+ (0, vitest_1.expect)(liveItem1.getSnapshot()).toEqual({
105
+ id: liveItem1.get('id'),
106
+ content: 'item 1 updated',
107
+ done: true,
108
+ tags: [],
109
+ category: 'general',
110
+ attachments: [],
111
+ });
112
+ const callbackDeep = vitest_1.vi.fn();
113
+ liveItem1.subscribe('changeDeep', callbackDeep);
114
+ liveItem1.update({
115
+ tags: ['tag 1', 'tag 2'],
116
+ });
117
+ await waitForStoragePropagation(callbackDeep);
118
+ (0, vitest_1.expect)(liveItem1.getSnapshot().tags).toEqual(['tag 1', 'tag 2']);
119
+ });
120
+ (0, vitest_1.it)('should expose array mutators on nested arrays', async () => {
121
+ const storage = await (0, testStorage_js_1.createTestStorage)();
122
+ const item1 = await storage.todos.put({
123
+ content: 'item 1',
124
+ done: false,
125
+ tags: [],
126
+ category: 'general',
127
+ attachments: [],
128
+ });
129
+ const callback = vitest_1.vi.fn();
130
+ item1.get('tags').subscribe('change', callback);
131
+ item1.get('tags').push('tag 1');
132
+ item1.get('tags').push('tag 2');
133
+ item1.get('tags').push('tag 3');
134
+ item1.get('tags').move(1, 2);
135
+ // fields are immediately updated
136
+ (0, vitest_1.expect)(item1.get('tags').get(0)).toEqual('tag 1');
137
+ (0, vitest_1.expect)(item1.get('tags').get(1)).toEqual('tag 3');
138
+ (0, vitest_1.expect)(item1.get('tags').get(2)).toEqual('tag 2');
139
+ await waitForStoragePropagation(callback);
140
+ (0, vitest_1.expect)(callback).toBeCalledTimes(4);
141
+ (0, vitest_1.expect)(item1.getSnapshot()).toEqual({
142
+ id: item1.get('id'),
143
+ content: 'item 1',
144
+ done: false,
145
+ tags: ['tag 1', 'tag 3', 'tag 2'],
146
+ category: 'general',
147
+ attachments: [],
148
+ });
149
+ });
150
+ (0, vitest_1.it)('should expose array accessors on nested arrays', async () => {
151
+ const storage = await (0, testStorage_js_1.createTestStorage)();
152
+ const item1 = await storage.todos.put({
153
+ content: 'item 1',
154
+ done: false,
155
+ tags: ['tag 1', 'tag 2'],
156
+ category: 'general',
157
+ attachments: [
158
+ {
159
+ name: 'attachment 1',
160
+ },
161
+ ],
162
+ });
163
+ for (const attachment of item1.get('attachments')) {
164
+ (0, vitest_1.expect)(attachment.get('name')).toBe('attachment 1');
165
+ }
166
+ let i = 0;
167
+ for (const tag of item1.get('tags')) {
168
+ (0, vitest_1.expect)(tag).toBe('tag ' + ++i);
169
+ }
170
+ (0, vitest_1.expect)(item1.get('tags').filter((tag) => tag === 'tag 1')).toEqual([
171
+ 'tag 1',
172
+ ]);
173
+ item1.get('attachments').push({
174
+ name: 'attachment 2',
175
+ });
176
+ (0, vitest_1.expect)(item1.get('attachments').getSnapshot()).toEqual([
177
+ { name: 'attachment 1', test: 1 },
178
+ { name: 'attachment 2', test: 1 },
179
+ ]);
180
+ });
181
+ (0, vitest_1.it)('should provide a reasonable way to interact with unknown data', async () => {
182
+ /**
183
+ * 'any' field types should basically just stop type checking, but still
184
+ * provide full reactive entity access for nested data.
185
+ */
186
+ const storage = await (0, testStorage_js_1.createTestStorage)();
187
+ const item1 = await storage.weirds.put({
188
+ weird: {
189
+ foo: 'bar',
190
+ baz: [
191
+ {
192
+ corge: 3,
193
+ },
194
+ ],
195
+ },
196
+ map: {},
197
+ objectMap: {},
198
+ });
199
+ (0, vitest_1.expect)(item1.get('weird').get('foo')).toBe('bar');
200
+ (0, vitest_1.expect)(item1.get('weird').get('baz').get(0).get('corge')).toBe(3);
201
+ (0, vitest_1.expect)(item1.get('weird').getSnapshot()).toEqual({
202
+ foo: 'bar',
203
+ baz: [{ corge: 3 }],
204
+ });
205
+ item1.get('weird').get('baz').push({ corge: 4 });
206
+ (0, vitest_1.expect)(item1.get('weird').get('baz').getSnapshot()).toEqual([
207
+ { corge: 3 },
208
+ { corge: 4 },
209
+ ]);
210
+ });
211
+ (0, vitest_1.it)('should provide access and updates for map-type fields', async () => {
212
+ const storage = await (0, testStorage_js_1.createTestStorage)();
213
+ const item1 = await storage.weirds.put({
214
+ weird: null,
215
+ map: {
216
+ foo: 'bar',
217
+ baz: 'qux',
218
+ },
219
+ objectMap: {
220
+ foo: {
221
+ content: 'bar',
222
+ },
223
+ },
224
+ });
225
+ (0, vitest_1.expect)(item1.get('map').get('foo')).toBe('bar');
226
+ (0, vitest_1.expect)(item1.get('map').get('baz')).toBe('qux');
227
+ (0, vitest_1.expect)(item1.get('map').getSnapshot()).toEqual({
228
+ foo: 'bar',
229
+ baz: 'qux',
230
+ });
231
+ (0, vitest_1.expect)(item1.get('objectMap').get('foo').get('content')).toBe('bar');
232
+ (0, vitest_1.expect)(item1.get('objectMap').get('baz')).toBe(undefined);
233
+ item1.get('objectMap').set('baz', { content: 'qux' });
234
+ (0, vitest_1.expect)(item1.get('objectMap').get('baz').get('content')).toBe('qux');
235
+ });
236
+ (0, vitest_1.it)('should merge .update fields and not discard undefined ones', async () => {
237
+ const storage = await (0, testStorage_js_1.createTestStorage)();
238
+ const item1 = await storage.weirds.put({
239
+ weird: null,
240
+ map: {
241
+ foo: 'bar',
242
+ baz: 'qux',
243
+ },
244
+ objectMap: {
245
+ foo: {
246
+ content: 'bar',
247
+ },
248
+ },
249
+ });
250
+ item1.update({
251
+ weird: 'foo',
252
+ });
253
+ (0, vitest_1.expect)(item1.get('weird')).toBe('foo');
254
+ (0, vitest_1.expect)(item1.get('map').get('foo')).toBe('bar');
255
+ item1.update({
256
+ weird: undefined,
257
+ });
258
+ (0, vitest_1.expect)(item1.get('weird')).toBe('foo');
259
+ });
260
+ (0, vitest_1.it)('should delete undefined fields in .update if merge is false', async () => {
261
+ const storage = await (0, testStorage_js_1.createTestStorage)();
262
+ const item1 = await storage.weirds.put({
263
+ weird: {
264
+ bar: 2,
265
+ qux: 3,
266
+ },
267
+ map: {
268
+ foo: 'bar',
269
+ baz: 'qux',
270
+ },
271
+ objectMap: {
272
+ foo: {
273
+ content: 'bar',
274
+ },
275
+ },
276
+ });
277
+ item1.get('weird').update({
278
+ bar: 1,
279
+ }, {
280
+ merge: false,
281
+ });
282
282
  (0, vitest_1.expect)(item1.get('weird').getSnapshot()).toMatchInlineSnapshot(`
283
283
  {
284
284
  "bar": 1,
285
285
  }
286
- `);
287
- });
288
- (0, vitest_1.it)('should not allow merge: false in strict schema field updates', async () => {
289
- const storage = await (0, testStorage_js_1.createTestStorage)();
290
- const item1 = await storage.todos.put({
291
- content: 'item 1',
292
- done: false,
293
- tags: [],
294
- category: 'general',
295
- attachments: [],
296
- });
297
- (0, vitest_1.expect)(() => {
298
- item1.update({ content: 'bar' }, { merge: false });
299
- }).toThrowErrorMatchingInlineSnapshot('"Cannot use .update without merge if the field has a strict schema type. merge: false is only available on \\"any\\" or \\"map\\" types."');
300
- });
301
- (0, vitest_1.it)('should apply defaults to created sub-objects in .update', async () => {
302
- const storage = await (0, testStorage_js_1.createTestStorage)();
303
- const item1 = await storage.todos.put({
304
- content: 'item 1',
305
- done: false,
306
- tags: [],
307
- category: 'general',
308
- attachments: [],
309
- });
310
- item1.update({
311
- attachments: [
312
- {
313
- name: 'attachment 1',
314
- },
315
- ],
316
- });
317
- (0, vitest_1.expect)(item1.get('attachments').get(0).get('test')).toBe(1);
318
- });
319
- (0, vitest_1.it)('should remove items from list when .delete is called', async () => {
320
- const storage = await (0, testStorage_js_1.createTestStorage)();
321
- const item1 = await storage.todos.put({
322
- content: 'item 1',
323
- done: false,
324
- tags: [],
325
- category: 'general',
326
- attachments: [],
327
- });
328
- item1.get('attachments').push({
329
- name: 'attachment 1',
330
- });
331
- item1.get('attachments').push({
332
- name: 'attachment 2',
333
- });
334
- item1.get('attachments').push({
335
- name: 'attachment 3',
336
- });
337
- item1.get('attachments').delete(1);
338
- (0, vitest_1.expect)(item1.get('attachments').length).toBe(2);
339
- (0, vitest_1.expect)(item1.get('attachments').get(0).get('name')).toBe('attachment 1');
340
- (0, vitest_1.expect)(item1.get('attachments').get(1).get('name')).toBe('attachment 3');
341
- // should work on lists which are not field-validated
342
- const item2 = await storage.weirds.put({
343
- weird: ['foo', 'bar', 'baz'],
344
- });
345
- item2.get('weird').delete(1);
346
- (0, vitest_1.expect)(item2.get('weird').length).toBe(2);
347
- (0, vitest_1.expect)(item2.get('weird').get(0)).toBe('foo');
348
- (0, vitest_1.expect)(item2.get('weird').get(1)).toBe('baz');
349
- });
350
- (0, vitest_1.it)('should expose updatedAt', async () => {
351
- const storage = await (0, testStorage_js_1.createTestStorage)();
352
- let time = new Date();
353
- vitest_1.vitest.setSystemTime(time);
354
- const item1 = await storage.todos.put({
355
- content: 'item 1',
356
- done: false,
357
- tags: [],
358
- category: 'general',
359
- attachments: [],
360
- });
361
- (0, vitest_1.expect)(item1.updatedAt).toEqual(time.getTime());
362
- time = new Date(time.getTime() + 1000);
363
- vitest_1.vitest.setSystemTime(time);
364
- item1.update({
365
- content: 'item 1 updated',
366
- });
367
- (0, vitest_1.expect)(item1.updatedAt).toEqual(time.getTime());
368
- // works on nested fields
369
- time = new Date(time.getTime() + 1000);
370
- vitest_1.vitest.setSystemTime(time);
371
- item1.get('attachments').push({
372
- name: 'attachment 1',
373
- });
374
- (0, vitest_1.expect)(item1.deepUpdatedAt).toEqual(time.getTime());
375
- time = new Date(time.getTime() + 1000);
376
- vitest_1.vitest.setSystemTime(time);
377
- item1.get('attachments').get(0).set('name', 'attachment 1 updated');
378
- (0, vitest_1.expect)(item1.deepUpdatedAt).toEqual(time.getTime());
379
- // but other items have their own updatedAt
380
- (0, vitest_1.expect)(item1.get('tags').deepUpdatedAt).not.toEqual(time.getTime());
381
- });
382
- (0, vitest_1.it)('should allow creating a new document from another document snapshot', async () => {
383
- const storage = await (0, testStorage_js_1.createTestStorage)();
384
- const item1 = await storage.todos.put({
385
- content: 'item 1',
386
- done: false,
387
- tags: ['tag 1'],
388
- category: 'general',
389
- attachments: [
390
- {
391
- name: 'attachment 1',
392
- },
393
- ],
394
- });
395
- const _a = item1.getSnapshot(), { id } = _a, snapshot = __rest(_a, ["id"]);
396
- const item2 = await storage.todos.put(snapshot);
397
- (0, vitest_1.expect)(item2.get('tags').length).toBe(1);
398
- (0, vitest_1.expect)(item2.get('attachments').length).toBe(1);
399
- item2.get('attachments').get(0).set('name', 'attachment 2');
400
- (0, vitest_1.expect)(item1.get('attachments').get(0).get('name')).toBe('attachment 1');
401
- });
402
- (0, vitest_1.it)('should not allow modifying the primary key', async () => {
403
- const storage = await (0, testStorage_js_1.createTestStorage)();
404
- const item1 = await storage.todos.put({
405
- content: 'item 1',
406
- done: false,
407
- tags: ['tag 1'],
408
- category: 'general',
409
- attachments: [
410
- {
411
- name: 'attachment 1',
412
- },
413
- ],
414
- });
415
- (0, vitest_1.expect)(() => {
416
- item1.set('id', 'foo');
417
- }).toThrowErrorMatchingInlineSnapshot('"Cannot set readonly key id"');
418
- });
419
- });
286
+ `);
287
+ });
288
+ (0, vitest_1.it)('should not allow merge: false in strict schema field updates', async () => {
289
+ const storage = await (0, testStorage_js_1.createTestStorage)();
290
+ const item1 = await storage.todos.put({
291
+ content: 'item 1',
292
+ done: false,
293
+ tags: [],
294
+ category: 'general',
295
+ attachments: [],
296
+ });
297
+ (0, vitest_1.expect)(() => {
298
+ item1.update({ content: 'bar' }, { merge: false });
299
+ }).toThrowErrorMatchingInlineSnapshot('"Cannot use .update without merge if the field has a strict schema type. merge: false is only available on \\"any\\" or \\"map\\" types."');
300
+ });
301
+ (0, vitest_1.it)('should apply defaults to created sub-objects in .update', async () => {
302
+ const storage = await (0, testStorage_js_1.createTestStorage)();
303
+ const item1 = await storage.todos.put({
304
+ content: 'item 1',
305
+ done: false,
306
+ tags: [],
307
+ category: 'general',
308
+ attachments: [],
309
+ });
310
+ item1.update({
311
+ attachments: [
312
+ {
313
+ name: 'attachment 1',
314
+ },
315
+ ],
316
+ });
317
+ (0, vitest_1.expect)(item1.get('attachments').get(0).get('test')).toBe(1);
318
+ });
319
+ (0, vitest_1.it)('should remove items from list when .delete is called', async () => {
320
+ const storage = await (0, testStorage_js_1.createTestStorage)();
321
+ const item1 = await storage.todos.put({
322
+ content: 'item 1',
323
+ done: false,
324
+ tags: [],
325
+ category: 'general',
326
+ attachments: [],
327
+ });
328
+ item1.get('attachments').push({
329
+ name: 'attachment 1',
330
+ });
331
+ item1.get('attachments').push({
332
+ name: 'attachment 2',
333
+ });
334
+ item1.get('attachments').push({
335
+ name: 'attachment 3',
336
+ });
337
+ item1.get('attachments').delete(1);
338
+ (0, vitest_1.expect)(item1.get('attachments').length).toBe(2);
339
+ (0, vitest_1.expect)(item1.get('attachments').get(0).get('name')).toBe('attachment 1');
340
+ (0, vitest_1.expect)(item1.get('attachments').get(1).get('name')).toBe('attachment 3');
341
+ // should work on lists which are not field-validated
342
+ const item2 = await storage.weirds.put({
343
+ weird: ['foo', 'bar', 'baz'],
344
+ });
345
+ item2.get('weird').delete(1);
346
+ (0, vitest_1.expect)(item2.get('weird').length).toBe(2);
347
+ (0, vitest_1.expect)(item2.get('weird').get(0)).toBe('foo');
348
+ (0, vitest_1.expect)(item2.get('weird').get(1)).toBe('baz');
349
+ });
350
+ (0, vitest_1.it)('should expose updatedAt', async () => {
351
+ const storage = await (0, testStorage_js_1.createTestStorage)();
352
+ let time = new Date();
353
+ vitest_1.vitest.setSystemTime(time);
354
+ const item1 = await storage.todos.put({
355
+ content: 'item 1',
356
+ done: false,
357
+ tags: [],
358
+ category: 'general',
359
+ attachments: [],
360
+ });
361
+ (0, vitest_1.expect)(item1.updatedAt).toEqual(time.getTime());
362
+ time = new Date(time.getTime() + 1000);
363
+ vitest_1.vitest.setSystemTime(time);
364
+ item1.update({
365
+ content: 'item 1 updated',
366
+ });
367
+ (0, vitest_1.expect)(item1.updatedAt).toEqual(time.getTime());
368
+ // works on nested fields
369
+ time = new Date(time.getTime() + 1000);
370
+ vitest_1.vitest.setSystemTime(time);
371
+ item1.get('attachments').push({
372
+ name: 'attachment 1',
373
+ });
374
+ (0, vitest_1.expect)(item1.deepUpdatedAt).toEqual(time.getTime());
375
+ time = new Date(time.getTime() + 1000);
376
+ vitest_1.vitest.setSystemTime(time);
377
+ item1.get('attachments').get(0).set('name', 'attachment 1 updated');
378
+ (0, vitest_1.expect)(item1.deepUpdatedAt).toEqual(time.getTime());
379
+ // but other items have their own updatedAt
380
+ (0, vitest_1.expect)(item1.get('tags').deepUpdatedAt).not.toEqual(time.getTime());
381
+ });
382
+ (0, vitest_1.it)('should allow creating a new document from another document snapshot', async () => {
383
+ const storage = await (0, testStorage_js_1.createTestStorage)();
384
+ const item1 = await storage.todos.put({
385
+ content: 'item 1',
386
+ done: false,
387
+ tags: ['tag 1'],
388
+ category: 'general',
389
+ attachments: [
390
+ {
391
+ name: 'attachment 1',
392
+ },
393
+ ],
394
+ });
395
+ const _a = item1.getSnapshot(), { id } = _a, snapshot = __rest(_a, ["id"]);
396
+ const item2 = await storage.todos.put(snapshot);
397
+ (0, vitest_1.expect)(item2.get('tags').length).toBe(1);
398
+ (0, vitest_1.expect)(item2.get('attachments').length).toBe(1);
399
+ item2.get('attachments').get(0).set('name', 'attachment 2');
400
+ (0, vitest_1.expect)(item1.get('attachments').get(0).get('name')).toBe('attachment 1');
401
+ });
402
+ (0, vitest_1.it)('should not allow modifying the primary key', async () => {
403
+ const storage = await (0, testStorage_js_1.createTestStorage)();
404
+ const item1 = await storage.todos.put({
405
+ content: 'item 1',
406
+ done: false,
407
+ tags: ['tag 1'],
408
+ category: 'general',
409
+ attachments: [
410
+ {
411
+ name: 'attachment 1',
412
+ },
413
+ ],
414
+ });
415
+ (0, vitest_1.expect)(() => {
416
+ item1.set('id', 'foo');
417
+ }).toThrowErrorMatchingInlineSnapshot('"Cannot set readonly key id"');
418
+ });
419
+ });
420
420
  //# sourceMappingURL=documents.test.js.map