@verdant-web/store 3.3.1 → 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 (338) 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 +7 -4
  27. package/dist/esm/metadata/Metadata.js.map +1 -1
  28. package/dist/esm/metadata/OperationsStore.js.map +1 -1
  29. package/dist/esm/metadata/SchemaStore.js.map +1 -1
  30. package/dist/esm/metadata/openMetadataDatabase.js.map +1 -1
  31. package/dist/esm/migration/db.js.map +1 -1
  32. package/dist/esm/migration/openDatabase.js.map +1 -1
  33. package/dist/esm/migration/paths.js.map +1 -1
  34. package/dist/esm/queries/BaseQuery.js.map +1 -1
  35. package/dist/esm/queries/QueryCache.js.map +1 -1
  36. package/dist/esm/queries/QueryableStorage.js.map +1 -1
  37. package/dist/esm/queries/dbQueries.js.map +1 -1
  38. package/dist/esm/queries/keys.js.map +1 -1
  39. package/dist/esm/queries/ranges.js.map +1 -1
  40. package/dist/esm/queries/utils.js.map +1 -1
  41. package/dist/esm/sync/FileSync.js.map +1 -1
  42. package/dist/esm/sync/Heartbeat.js.map +1 -1
  43. package/dist/esm/sync/PresenceManager.js.map +1 -1
  44. package/dist/esm/sync/PushPullSync.js.map +1 -1
  45. package/dist/esm/sync/ServerSyncEndpointProvider.js.map +1 -1
  46. package/dist/esm/sync/Sync.js.map +1 -1
  47. package/dist/esm/sync/WebSocketSync.js.map +1 -1
  48. package/package.json +9 -10
  49. package/src/client/Client.ts +8 -1
  50. package/src/files/FileManager.ts +4 -0
  51. package/src/metadata/Metadata.ts +11 -7
  52. package/src/sync/Sync.ts +2 -2
  53. package/dist/cjs/BackoffScheduler.d.ts +0 -19
  54. package/dist/cjs/BackoffScheduler.js +0 -45
  55. package/dist/cjs/BackoffScheduler.js.map +0 -1
  56. package/dist/cjs/DocumentManager.d.ts +0 -28
  57. package/dist/cjs/DocumentManager.js +0 -45
  58. package/dist/cjs/DocumentManager.js.map +0 -1
  59. package/dist/cjs/FakeWeakRef.d.ts +0 -11
  60. package/dist/cjs/FakeWeakRef.js +0 -19
  61. package/dist/cjs/FakeWeakRef.js.map +0 -1
  62. package/dist/cjs/IDBService.d.ts +0 -30
  63. package/dist/cjs/IDBService.js +0 -101
  64. package/dist/cjs/IDBService.js.map +0 -1
  65. package/dist/cjs/UndoHistory.d.ts +0 -16
  66. package/dist/cjs/UndoHistory.js +0 -55
  67. package/dist/cjs/UndoHistory.js.map +0 -1
  68. package/dist/cjs/__tests__/batching.test.d.ts +0 -1
  69. package/dist/cjs/__tests__/batching.test.js +0 -47
  70. package/dist/cjs/__tests__/batching.test.js.map +0 -1
  71. package/dist/cjs/__tests__/documents.test.d.ts +0 -1
  72. package/dist/cjs/__tests__/documents.test.js +0 -468
  73. package/dist/cjs/__tests__/documents.test.js.map +0 -1
  74. package/dist/cjs/__tests__/fixtures/testStorage.d.ts +0 -76
  75. package/dist/cjs/__tests__/fixtures/testStorage.js +0 -96
  76. package/dist/cjs/__tests__/fixtures/testStorage.js.map +0 -1
  77. package/dist/cjs/__tests__/legacyOids.test.d.ts +0 -1
  78. package/dist/cjs/__tests__/legacyOids.test.js +0 -354
  79. package/dist/cjs/__tests__/legacyOids.test.js.map +0 -1
  80. package/dist/cjs/__tests__/mutations.test.d.ts +0 -1
  81. package/dist/cjs/__tests__/mutations.test.js +0 -48
  82. package/dist/cjs/__tests__/mutations.test.js.map +0 -1
  83. package/dist/cjs/__tests__/queries.test.d.ts +0 -1
  84. package/dist/cjs/__tests__/queries.test.js +0 -323
  85. package/dist/cjs/__tests__/queries.test.js.map +0 -1
  86. package/dist/cjs/__tests__/setup/indexedDB.d.ts +0 -1
  87. package/dist/cjs/__tests__/setup/indexedDB.js +0 -16
  88. package/dist/cjs/__tests__/setup/indexedDB.js.map +0 -1
  89. package/dist/cjs/__tests__/undo.test.d.ts +0 -1
  90. package/dist/cjs/__tests__/undo.test.js +0 -94
  91. package/dist/cjs/__tests__/undo.test.js.map +0 -1
  92. package/dist/cjs/backup.d.ts +0 -10
  93. package/dist/cjs/backup.js +0 -58
  94. package/dist/cjs/backup.js.map +0 -1
  95. package/dist/cjs/client/Client.d.ts +0 -120
  96. package/dist/cjs/client/Client.js +0 -300
  97. package/dist/cjs/client/Client.js.map +0 -1
  98. package/dist/cjs/client/ClientDescriptor.d.ts +0 -76
  99. package/dist/cjs/client/ClientDescriptor.js +0 -213
  100. package/dist/cjs/client/ClientDescriptor.js.map +0 -1
  101. package/dist/cjs/client/constants.d.ts +0 -1
  102. package/dist/cjs/client/constants.js +0 -5
  103. package/dist/cjs/client/constants.js.map +0 -1
  104. package/dist/cjs/constants.d.ts +0 -1
  105. package/dist/cjs/constants.js +0 -5
  106. package/dist/cjs/constants.js.map +0 -1
  107. package/dist/cjs/context.d.ts +0 -38
  108. package/dist/cjs/context.js +0 -3
  109. package/dist/cjs/context.js.map +0 -1
  110. package/dist/cjs/entities/Entity.d.ts +0 -148
  111. package/dist/cjs/entities/Entity.js +0 -711
  112. package/dist/cjs/entities/Entity.js.map +0 -1
  113. package/dist/cjs/entities/Entity.test.d.ts +0 -1
  114. package/dist/cjs/entities/Entity.test.js +0 -194
  115. package/dist/cjs/entities/Entity.test.js.map +0 -1
  116. package/dist/cjs/entities/EntityCache.d.ts +0 -15
  117. package/dist/cjs/entities/EntityCache.js +0 -39
  118. package/dist/cjs/entities/EntityCache.js.map +0 -1
  119. package/dist/cjs/entities/EntityMetadata.d.ts +0 -68
  120. package/dist/cjs/entities/EntityMetadata.js +0 -261
  121. package/dist/cjs/entities/EntityMetadata.js.map +0 -1
  122. package/dist/cjs/entities/EntityStore.d.ts +0 -80
  123. package/dist/cjs/entities/EntityStore.js +0 -352
  124. package/dist/cjs/entities/EntityStore.js.map +0 -1
  125. package/dist/cjs/entities/OperationBatcher.d.ts +0 -52
  126. package/dist/cjs/entities/OperationBatcher.js +0 -165
  127. package/dist/cjs/entities/OperationBatcher.js.map +0 -1
  128. package/dist/cjs/entities/types.d.ts +0 -103
  129. package/dist/cjs/entities/types.js +0 -3
  130. package/dist/cjs/entities/types.js.map +0 -1
  131. package/dist/cjs/files/EntityFile.d.ts +0 -35
  132. package/dist/cjs/files/EntityFile.js +0 -81
  133. package/dist/cjs/files/EntityFile.js.map +0 -1
  134. package/dist/cjs/files/FileManager.d.ts +0 -46
  135. package/dist/cjs/files/FileManager.js +0 -174
  136. package/dist/cjs/files/FileManager.js.map +0 -1
  137. package/dist/cjs/files/FileStorage.d.ts +0 -39
  138. package/dist/cjs/files/FileStorage.js +0 -110
  139. package/dist/cjs/files/FileStorage.js.map +0 -1
  140. package/dist/cjs/files/utils.d.ts +0 -10
  141. package/dist/cjs/files/utils.js +0 -62
  142. package/dist/cjs/files/utils.js.map +0 -1
  143. package/dist/cjs/files/utils.test.d.ts +0 -1
  144. package/dist/cjs/files/utils.test.js +0 -81
  145. package/dist/cjs/files/utils.test.js.map +0 -1
  146. package/dist/cjs/idb.d.ts +0 -13
  147. package/dist/cjs/idb.js +0 -158
  148. package/dist/cjs/idb.js.map +0 -1
  149. package/dist/cjs/index.d.ts +0 -23
  150. package/dist/cjs/index.js +0 -25
  151. package/dist/cjs/index.js.map +0 -1
  152. package/dist/cjs/metadata/AckInfoStore.d.ts +0 -10
  153. package/dist/cjs/metadata/AckInfoStore.js +0 -26
  154. package/dist/cjs/metadata/AckInfoStore.js.map +0 -1
  155. package/dist/cjs/metadata/BaselinesStore.d.ts +0 -40
  156. package/dist/cjs/metadata/BaselinesStore.js +0 -106
  157. package/dist/cjs/metadata/BaselinesStore.js.map +0 -1
  158. package/dist/cjs/metadata/LocalReplicaStore.d.ts +0 -18
  159. package/dist/cjs/metadata/LocalReplicaStore.js +0 -62
  160. package/dist/cjs/metadata/LocalReplicaStore.js.map +0 -1
  161. package/dist/cjs/metadata/MessageCreator.d.ts +0 -19
  162. package/dist/cjs/metadata/MessageCreator.js +0 -128
  163. package/dist/cjs/metadata/MessageCreator.js.map +0 -1
  164. package/dist/cjs/metadata/Metadata.d.ts +0 -134
  165. package/dist/cjs/metadata/Metadata.js +0 -405
  166. package/dist/cjs/metadata/Metadata.js.map +0 -1
  167. package/dist/cjs/metadata/OperationsStore.d.ts +0 -62
  168. package/dist/cjs/metadata/OperationsStore.js +0 -179
  169. package/dist/cjs/metadata/OperationsStore.js.map +0 -1
  170. package/dist/cjs/metadata/SchemaStore.d.ts +0 -9
  171. package/dist/cjs/metadata/SchemaStore.js +0 -39
  172. package/dist/cjs/metadata/SchemaStore.js.map +0 -1
  173. package/dist/cjs/metadata/openMetadataDatabase.d.ts +0 -19
  174. package/dist/cjs/metadata/openMetadataDatabase.js +0 -220
  175. package/dist/cjs/metadata/openMetadataDatabase.js.map +0 -1
  176. package/dist/cjs/migration/db.d.ts +0 -8
  177. package/dist/cjs/migration/db.js +0 -112
  178. package/dist/cjs/migration/db.js.map +0 -1
  179. package/dist/cjs/migration/errors.d.ts +0 -5
  180. package/dist/cjs/migration/errors.js +0 -12
  181. package/dist/cjs/migration/errors.js.map +0 -1
  182. package/dist/cjs/migration/openDatabase.d.ts +0 -20
  183. package/dist/cjs/migration/openDatabase.js +0 -468
  184. package/dist/cjs/migration/openDatabase.js.map +0 -1
  185. package/dist/cjs/migration/paths.d.ts +0 -6
  186. package/dist/cjs/migration/paths.js +0 -53
  187. package/dist/cjs/migration/paths.js.map +0 -1
  188. package/dist/cjs/migration/paths.test.d.ts +0 -1
  189. package/dist/cjs/migration/paths.test.js +0 -91
  190. package/dist/cjs/migration/paths.test.js.map +0 -1
  191. package/dist/cjs/queries/BaseQuery.d.ts +0 -53
  192. package/dist/cjs/queries/BaseQuery.js +0 -148
  193. package/dist/cjs/queries/BaseQuery.js.map +0 -1
  194. package/dist/cjs/queries/CollectionQueries.d.ts +0 -55
  195. package/dist/cjs/queries/CollectionQueries.js +0 -92
  196. package/dist/cjs/queries/CollectionQueries.js.map +0 -1
  197. package/dist/cjs/queries/FindAllQuery.d.ts +0 -12
  198. package/dist/cjs/queries/FindAllQuery.js +0 -44
  199. package/dist/cjs/queries/FindAllQuery.js.map +0 -1
  200. package/dist/cjs/queries/FindInfiniteQuery.d.ts +0 -19
  201. package/dist/cjs/queries/FindInfiniteQuery.js +0 -70
  202. package/dist/cjs/queries/FindInfiniteQuery.js.map +0 -1
  203. package/dist/cjs/queries/FindOneQuery.d.ts +0 -12
  204. package/dist/cjs/queries/FindOneQuery.js +0 -43
  205. package/dist/cjs/queries/FindOneQuery.js.map +0 -1
  206. package/dist/cjs/queries/FindPageQuery.d.ts +0 -24
  207. package/dist/cjs/queries/FindPageQuery.js +0 -77
  208. package/dist/cjs/queries/FindPageQuery.js.map +0 -1
  209. package/dist/cjs/queries/GetQuery.d.ts +0 -10
  210. package/dist/cjs/queries/GetQuery.js +0 -30
  211. package/dist/cjs/queries/GetQuery.js.map +0 -1
  212. package/dist/cjs/queries/QueryCache.d.ts +0 -17
  213. package/dist/cjs/queries/QueryCache.js +0 -46
  214. package/dist/cjs/queries/QueryCache.js.map +0 -1
  215. package/dist/cjs/queries/QueryableStorage.d.ts +0 -20
  216. package/dist/cjs/queries/QueryableStorage.js +0 -94
  217. package/dist/cjs/queries/QueryableStorage.js.map +0 -1
  218. package/dist/cjs/queries/dbQueries.d.ts +0 -22
  219. package/dist/cjs/queries/dbQueries.js +0 -136
  220. package/dist/cjs/queries/dbQueries.js.map +0 -1
  221. package/dist/cjs/queries/keys.d.ts +0 -10
  222. package/dist/cjs/queries/keys.js +0 -34
  223. package/dist/cjs/queries/keys.js.map +0 -1
  224. package/dist/cjs/queries/ranges.d.ts +0 -2
  225. package/dist/cjs/queries/ranges.js +0 -70
  226. package/dist/cjs/queries/ranges.js.map +0 -1
  227. package/dist/cjs/queries/types.d.ts +0 -6
  228. package/dist/cjs/queries/types.js +0 -3
  229. package/dist/cjs/queries/types.js.map +0 -1
  230. package/dist/cjs/queries/utils.d.ts +0 -3
  231. package/dist/cjs/queries/utils.js +0 -25
  232. package/dist/cjs/queries/utils.js.map +0 -1
  233. package/dist/cjs/sync/FileSync.d.ts +0 -24
  234. package/dist/cjs/sync/FileSync.js +0 -87
  235. package/dist/cjs/sync/FileSync.js.map +0 -1
  236. package/dist/cjs/sync/Heartbeat.d.ts +0 -25
  237. package/dist/cjs/sync/Heartbeat.js +0 -64
  238. package/dist/cjs/sync/Heartbeat.js.map +0 -1
  239. package/dist/cjs/sync/PresenceManager.d.ts +0 -55
  240. package/dist/cjs/sync/PresenceManager.js +0 -126
  241. package/dist/cjs/sync/PresenceManager.js.map +0 -1
  242. package/dist/cjs/sync/PushPullSync.d.ts +0 -39
  243. package/dist/cjs/sync/PushPullSync.js +0 -159
  244. package/dist/cjs/sync/PushPullSync.js.map +0 -1
  245. package/dist/cjs/sync/ServerSyncEndpointProvider.d.ts +0 -34
  246. package/dist/cjs/sync/ServerSyncEndpointProvider.js +0 -69
  247. package/dist/cjs/sync/ServerSyncEndpointProvider.js.map +0 -1
  248. package/dist/cjs/sync/Sync.d.ts +0 -160
  249. package/dist/cjs/sync/Sync.js +0 -293
  250. package/dist/cjs/sync/Sync.js.map +0 -1
  251. package/dist/cjs/sync/WebSocketSync.d.ts +0 -44
  252. package/dist/cjs/sync/WebSocketSync.js +0 -221
  253. package/dist/cjs/sync/WebSocketSync.js.map +0 -1
  254. package/dist/cjs/types.d.ts +0 -12
  255. package/dist/cjs/types.js +0 -3
  256. package/dist/cjs/types.js.map +0 -1
  257. package/dist/cjs/utils/Disposable.d.ts +0 -6
  258. package/dist/cjs/utils/Disposable.js +0 -19
  259. package/dist/cjs/utils/Disposable.js.map +0 -1
  260. package/dist/cjs/utils/Resolvable.d.ts +0 -8
  261. package/dist/cjs/utils/Resolvable.js +0 -23
  262. package/dist/cjs/utils/Resolvable.js.map +0 -1
  263. package/dist/cjs/vanilla.d.ts +0 -1
  264. package/dist/cjs/vanilla.js +0 -28
  265. package/dist/cjs/vanilla.js.map +0 -1
  266. package/dist/esm/BackoffScheduler.d.ts +0 -19
  267. package/dist/esm/DocumentManager.d.ts +0 -28
  268. package/dist/esm/FakeWeakRef.d.ts +0 -11
  269. package/dist/esm/IDBService.d.ts +0 -30
  270. package/dist/esm/UndoHistory.d.ts +0 -16
  271. package/dist/esm/__tests__/batching.test.d.ts +0 -1
  272. package/dist/esm/__tests__/documents.test.d.ts +0 -1
  273. package/dist/esm/__tests__/fixtures/testStorage.d.ts +0 -76
  274. package/dist/esm/__tests__/legacyOids.test.d.ts +0 -1
  275. package/dist/esm/__tests__/mutations.test.d.ts +0 -1
  276. package/dist/esm/__tests__/queries.test.d.ts +0 -1
  277. package/dist/esm/__tests__/setup/indexedDB.d.ts +0 -1
  278. package/dist/esm/__tests__/undo.test.d.ts +0 -1
  279. package/dist/esm/backup.d.ts +0 -10
  280. package/dist/esm/client/Client.d.ts +0 -120
  281. package/dist/esm/client/ClientDescriptor.d.ts +0 -76
  282. package/dist/esm/client/constants.d.ts +0 -1
  283. package/dist/esm/constants.d.ts +0 -1
  284. package/dist/esm/context.d.ts +0 -38
  285. package/dist/esm/entities/Entity.d.ts +0 -148
  286. package/dist/esm/entities/Entity.test.d.ts +0 -1
  287. package/dist/esm/entities/EntityCache.d.ts +0 -15
  288. package/dist/esm/entities/EntityMetadata.d.ts +0 -68
  289. package/dist/esm/entities/EntityStore.d.ts +0 -80
  290. package/dist/esm/entities/OperationBatcher.d.ts +0 -52
  291. package/dist/esm/entities/types.d.ts +0 -103
  292. package/dist/esm/files/EntityFile.d.ts +0 -35
  293. package/dist/esm/files/FileManager.d.ts +0 -46
  294. package/dist/esm/files/FileStorage.d.ts +0 -39
  295. package/dist/esm/files/utils.d.ts +0 -10
  296. package/dist/esm/files/utils.test.d.ts +0 -1
  297. package/dist/esm/idb.d.ts +0 -13
  298. package/dist/esm/index.d.ts +0 -23
  299. package/dist/esm/metadata/AckInfoStore.d.ts +0 -10
  300. package/dist/esm/metadata/BaselinesStore.d.ts +0 -40
  301. package/dist/esm/metadata/LocalReplicaStore.d.ts +0 -18
  302. package/dist/esm/metadata/MessageCreator.d.ts +0 -19
  303. package/dist/esm/metadata/Metadata.d.ts +0 -134
  304. package/dist/esm/metadata/OperationsStore.d.ts +0 -62
  305. package/dist/esm/metadata/SchemaStore.d.ts +0 -9
  306. package/dist/esm/metadata/openMetadataDatabase.d.ts +0 -19
  307. package/dist/esm/migration/db.d.ts +0 -8
  308. package/dist/esm/migration/errors.d.ts +0 -5
  309. package/dist/esm/migration/openDatabase.d.ts +0 -20
  310. package/dist/esm/migration/paths.d.ts +0 -6
  311. package/dist/esm/migration/paths.test.d.ts +0 -1
  312. package/dist/esm/queries/BaseQuery.d.ts +0 -53
  313. package/dist/esm/queries/CollectionQueries.d.ts +0 -55
  314. package/dist/esm/queries/FindAllQuery.d.ts +0 -12
  315. package/dist/esm/queries/FindInfiniteQuery.d.ts +0 -19
  316. package/dist/esm/queries/FindOneQuery.d.ts +0 -12
  317. package/dist/esm/queries/FindPageQuery.d.ts +0 -24
  318. package/dist/esm/queries/GetQuery.d.ts +0 -10
  319. package/dist/esm/queries/QueryCache.d.ts +0 -17
  320. package/dist/esm/queries/QueryableStorage.d.ts +0 -20
  321. package/dist/esm/queries/dbQueries.d.ts +0 -22
  322. package/dist/esm/queries/keys.d.ts +0 -10
  323. package/dist/esm/queries/ranges.d.ts +0 -2
  324. package/dist/esm/queries/types.d.ts +0 -6
  325. package/dist/esm/queries/utils.d.ts +0 -3
  326. package/dist/esm/sync/FileSync.d.ts +0 -24
  327. package/dist/esm/sync/Heartbeat.d.ts +0 -25
  328. package/dist/esm/sync/PresenceManager.d.ts +0 -55
  329. package/dist/esm/sync/PushPullSync.d.ts +0 -39
  330. package/dist/esm/sync/ServerSyncEndpointProvider.d.ts +0 -34
  331. package/dist/esm/sync/Sync.d.ts +0 -160
  332. package/dist/esm/sync/WebSocketSync.d.ts +0 -44
  333. package/dist/esm/types.d.ts +0 -12
  334. package/dist/esm/utils/Disposable.d.ts +0 -6
  335. package/dist/esm/utils/Resolvable.d.ts +0 -8
  336. package/dist/esm/vanilla.d.ts +0 -1
  337. package/dist/tsconfig-cjs.tsbuildinfo +0 -1
  338. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,103 +0,0 @@
1
- import { ObjectIdentifier } from '@verdant-web/common';
2
- import type { Entity } from './Entity.js';
3
- export type AccessibleEntityProperty<T> = T extends Array<any> ? number : T extends object ? keyof T : never;
4
- export type DataFromInit<Init> = Init extends {
5
- [key: string]: any;
6
- } ? {
7
- [Key in keyof Init]: Init[Key];
8
- } : Init extends Array<any> ? Init : any;
9
- export type DeletableKeys<T> = keyof {
10
- [Key in keyof T as IfNullableThen<T[Key], Key>]: Key;
11
- };
12
- type IfNullableThen<T, Out> = undefined extends T ? Out : null extends T ? Out : never;
13
- export type EntityShape<E extends Entity<any, any>> = E extends Entity<infer Value, any> ? Value : never;
14
- export type BaseEntityValue = {
15
- [Key: string]: any;
16
- } | any[];
17
- export interface EntityChange {
18
- oid: ObjectIdentifier;
19
- isLocal: boolean;
20
- }
21
- export interface EntityChangeInfo {
22
- isLocal?: boolean;
23
- }
24
- export type EntityEvents = {
25
- change: (info: EntityChangeInfo) => void;
26
- changeDeep: (target: BaseEntity<any, any, any>, info: EntityChangeInfo) => void;
27
- delete: (info: EntityChangeInfo) => void;
28
- restore: (info: EntityChangeInfo) => void;
29
- };
30
- export interface BaseEntity<Init, Value extends BaseEntityValue, Snapshot = DataFromInit<Init>> {
31
- dispose: () => void;
32
- subscribe<EventName extends keyof EntityEvents>(event: EventName, callback: EntityEvents[EventName]): () => void;
33
- get<Key extends keyof Value>(key: Key): Value[Key];
34
- getAll(): Value;
35
- getSnapshot(): Snapshot;
36
- readonly deleted: boolean;
37
- readonly updatedAt: number;
38
- readonly uid: string;
39
- }
40
- export type DeepPartial<T> = T extends object ? {
41
- [P in keyof T]?: DeepPartial<T[P]>;
42
- } : T;
43
- export interface ObjectEntity<Init, Value extends BaseEntityValue, Snapshot = DataFromInit<Init>> extends BaseEntity<Init, Value, Snapshot> {
44
- keys(): string[];
45
- entries(): [string, Exclude<Value[keyof Value], undefined>][];
46
- values(): Exclude<Value[keyof Value], undefined>[];
47
- set<Key extends keyof Init>(key: Key, value: Init[Key]): void;
48
- delete(key: DeletableKeys<Value>): void;
49
- update(value: DeepPartial<Init>, options?: {
50
- /**
51
- * Forces the replacement of sub-objects in the update payload - rather than
52
- * Verdant keeping their identities intact and merging changes, your update
53
- * will replace these objects entirely, overwriting any other changes from other
54
- * sources.
55
- *
56
- * Useful when the update you're making is logically replacing sub-objects, rather
57
- * than simply modifying them.
58
- *
59
- * Default: false
60
- */
61
- replaceSubObjects?: boolean;
62
- /**
63
- * If set to false, this will drop any keys in the object which were
64
- * not provided in your update payload, while also merging the ones that
65
- * were. This option only works for `map` and `any` type fields; you cannot
66
- * use it with defined `object` type fields.
67
- *
68
- * Default: true
69
- */
70
- merge?: boolean;
71
- }): void;
72
- readonly isList: false;
73
- }
74
- export interface ListEntity<Init, Value extends BaseEntityValue, Snapshot = DataFromInit<Init>> extends Iterable<ListItemValue<Value>>, BaseEntity<Init, Value, Snapshot> {
75
- readonly isList: true;
76
- readonly length: number;
77
- push(value: ListItemInit<Init>): void;
78
- insert(index: number, value: ListItemInit<Init>): void;
79
- move(from: number, to: number): void;
80
- moveItem(item: ListItemValue<Value>, to: number): void;
81
- /**
82
- * A Set operation which adds a value if an equivalent value is not already present.
83
- * Object values are never the same.
84
- */
85
- add(value: ListItemValue<Value>): void;
86
- removeAll(item: ListItemValue<Value>): void;
87
- removeFirst(item: ListItemValue<Value>): void;
88
- removeLast(item: ListItemValue<Value>): void;
89
- map<U>(callback: (value: ListItemValue<Value>, index: number) => U): U[];
90
- filter(callback: (value: ListItemValue<Value>, index: number) => boolean): ListItemValue<Value>[];
91
- delete(index: number): void;
92
- has(value: ListItemValue<Value>): boolean;
93
- forEach(callback: (value: ListItemValue<Value>, index: number) => void): void;
94
- some(predicate: (value: ListItemValue<Value>) => boolean): boolean;
95
- every(predicate: (value: ListItemValue<Value>) => boolean): boolean;
96
- find(predicate: (value: ListItemValue<Value>) => boolean): ListItemValue<Value> | undefined;
97
- includes(value: ListItemValue<Value>): boolean;
98
- }
99
- export type AnyEntity<Init, KeyValue extends BaseEntityValue, Snapshot extends any> = ListEntity<Init, KeyValue, Snapshot> | ObjectEntity<Init, KeyValue, Snapshot>;
100
- export type ListItemValue<KeyValue> = KeyValue extends Array<infer T> ? T : never;
101
- export type ListItemInit<Init> = Init extends Array<infer T> ? T : never;
102
- export type EntityDestructured<T extends AnyEntity<any, any, any> | null> = (T extends ListEntity<any, infer KeyValue, any> ? KeyValue : T extends ObjectEntity<any, infer KeyValue, any> ? KeyValue : never) | (T extends null ? null : never);
103
- export {};
@@ -1,35 +0,0 @@
1
- import { EventSubscriber, FileData } from '@verdant-web/common';
2
- export type EntityFileEvents = {
3
- change: () => void;
4
- };
5
- export declare const UPDATE: unique symbol;
6
- export declare const MARK_FAILED: unique symbol;
7
- export type EntityFileSnapshot = {
8
- id: string;
9
- url?: string | null;
10
- };
11
- /**
12
- * Provides a consistent interface for files used in an app via
13
- * Entity access.
14
- */
15
- export declare class EntityFile extends EventSubscriber<EntityFileEvents> {
16
- readonly id: string;
17
- private _objectUrl;
18
- private _fileData;
19
- private _loading;
20
- private _failed;
21
- private _downloadRemote;
22
- constructor(id: string, { downloadRemote, }?: {
23
- downloadRemote?: boolean;
24
- });
25
- get downloadRemote(): boolean;
26
- [UPDATE]: (fileData: FileData) => void;
27
- [MARK_FAILED]: () => void;
28
- get url(): string | null;
29
- get name(): string | null;
30
- get type(): string | null;
31
- get loading(): boolean;
32
- get failed(): boolean;
33
- destroy: () => void;
34
- getSnapshot(): EntityFileSnapshot;
35
- }
@@ -1,46 +0,0 @@
1
- import { FileData } from '@verdant-web/common';
2
- import { Context } from '../context.js';
3
- import { Metadata } from '../metadata/Metadata.js';
4
- import { Sync } from '../sync/Sync.js';
5
- import { EntityFile } from './EntityFile.js';
6
- import { ReturnedFileData } from './FileStorage.js';
7
- export interface FileManagerConfig {
8
- /**
9
- * Override the heuristic for deciding when a deleted file can be cleaned up.
10
- * By default this waits 3 days since deletion, then deletes the file data.
11
- * If the file has been synchronized to a server, it could still be restored
12
- * if the server has not yet deleted it.
13
- */
14
- canCleanupDeletedFile?: (file: ReturnedFileData) => boolean;
15
- }
16
- export declare class FileManager {
17
- private storage;
18
- private sync;
19
- private context;
20
- private files;
21
- private config;
22
- private meta;
23
- constructor({ db, sync, context, meta, config, }: {
24
- db: IDBDatabase;
25
- sync: Sync;
26
- context: Context;
27
- config?: FileManagerConfig;
28
- meta: Metadata;
29
- });
30
- add: (fileInput: Omit<FileData, 'remote'>) => Promise<void>;
31
- private uploadFile;
32
- /**
33
- * Immediately returns an EntityFile to use, then either loads
34
- * the file from cache, local database, or the server.
35
- */
36
- get: (id: string, options?: {
37
- downloadRemote?: boolean;
38
- }) => EntityFile;
39
- private load;
40
- listUnsynced: () => Promise<ReturnedFileData[]>;
41
- exportAll: (downloadRemote?: boolean) => Promise<ReturnedFileData[]>;
42
- importAll: (files: ReturnedFileData[]) => Promise<void>;
43
- private onOnlineChange;
44
- private tryCleanupDeletedFiles;
45
- private handleFileRefsDeleted;
46
- }
@@ -1,39 +0,0 @@
1
- import { FileData } from '@verdant-web/common';
2
- import { IDBService } from '../IDBService.js';
3
- /**
4
- * When stored in IDB, replace the file blob with an array buffer
5
- * since it's more compatible, and replace remote boolean with
6
- * a string since IDB doesn't support boolean indexes.
7
- */
8
- export interface StoredFileData extends Omit<FileData, 'remote' | 'file'> {
9
- remote: 'true' | 'false';
10
- buffer?: ArrayBuffer;
11
- deletedAt: number | null;
12
- }
13
- export interface ReturnedFileData extends FileData {
14
- deletedAt: number | null;
15
- }
16
- export declare class FileStorage extends IDBService {
17
- addFile: (file: FileData, { transaction, downloadRemote, }?: {
18
- transaction?: IDBTransaction | undefined;
19
- downloadRemote?: boolean | undefined;
20
- }) => Promise<IDBValidKey>;
21
- private hydrateFileData;
22
- markUploaded: (id: string, { transaction }?: {
23
- transaction?: IDBTransaction | undefined;
24
- }) => Promise<IDBValidKey>;
25
- private getFileRaw;
26
- getFile: (id: string, { transaction }?: {
27
- transaction?: IDBTransaction | undefined;
28
- }) => Promise<ReturnedFileData | undefined>;
29
- deleteFile(id: string, { transaction }?: {
30
- transaction?: IDBTransaction;
31
- }): Promise<undefined>;
32
- markPendingDelete: (id: string, { transaction }?: {
33
- transaction?: IDBTransaction | undefined;
34
- }) => Promise<IDBValidKey>;
35
- listUnsynced: () => Promise<ReturnedFileData[]>;
36
- iterateOverPendingDelete: (iterator: (file: ReturnedFileData, store: IDBObjectStore) => void, transaction?: IDBTransaction) => Promise<void>;
37
- getAll: () => Promise<ReturnedFileData[]>;
38
- }
39
- export declare function arrayBufferToBlob(buffer: ArrayBuffer, type: string): Blob;
@@ -1,10 +0,0 @@
1
- import { FileData } from '@verdant-web/common';
2
- export declare function createFileData(file: File): FileData;
3
- export declare function isFile(value: any): value is File;
4
- /**
5
- * MUTATES the value.
6
- * Replaces File values with refs and returns the normalized value.
7
- * The list of files passed to the second argument will be populated with the files found in the value.
8
- */
9
- export declare function processValueFiles(value: any, onFileIdentified: (fileData: FileData) => void): any;
10
- export declare function fileToArrayBuffer(file: File | Blob): Promise<ArrayBuffer>;
@@ -1 +0,0 @@
1
- export {};
package/dist/esm/idb.d.ts DELETED
@@ -1,13 +0,0 @@
1
- export declare function isAbortError(err: unknown): boolean;
2
- export declare function storeRequestPromise<T>(request: IDBRequest<T>): Promise<T>;
3
- export declare function cursorIterator<T>(request: IDBRequest<IDBCursorWithValue | null>, callback: (value: T | null) => boolean): Promise<void>;
4
- export declare function getSizeOfObjectStore(database: IDBDatabase, storeName: string): Promise<{
5
- count: number;
6
- size: number;
7
- }>;
8
- export declare function getAllFromObjectStores(db: IDBDatabase, stores: string[]): Promise<any[][]>;
9
- export declare function closeDatabase(db: IDBDatabase): Promise<void>;
10
- export declare function deleteAllDatabases(namespace: string, indexedDB?: IDBFactory): Promise<void>;
11
- export declare function deleteDatabase(name: string, indexedDB?: IDBFactory): Promise<IDBDatabase>;
12
- export declare function getAllDatabaseNamesAndVersions(indexedDB?: IDBFactory): Promise<IDBDatabaseInfo[]>;
13
- export declare function createAbortableTransaction(db: IDBDatabase, storeNames: string[], mode: 'readonly' | 'readwrite', abortSignal?: AbortSignal, log?: (...args: any[]) => void): IDBTransaction;
@@ -1,23 +0,0 @@
1
- import { ClientDescriptor, ClientDescriptorOptions } from './client/ClientDescriptor.js';
2
- import { Client } from './client/Client.js';
3
- export type { ClientWithCollections } from './client/Client.js';
4
- export { ClientDescriptor };
5
- export { Client };
6
- export { ClientDescriptor as StorageDescriptor };
7
- export { Client as Storage };
8
- export type { ClientDescriptorOptions };
9
- export type { ClientDescriptorOptions as StorageInitOptions };
10
- export { Entity } from './entities/Entity.js';
11
- export type { ObjectEntity, ListEntity, EntityShape, AccessibleEntityProperty, AnyEntity, EntityDestructured, } from './entities/types.js';
12
- export { ServerSync } from './sync/Sync.js';
13
- export type { SyncTransportMode } from './sync/Sync.js';
14
- export { EntityFile, type EntityFileSnapshot } from './files/EntityFile.js';
15
- export {
16
- /** @deprecated - use schema.collection */
17
- collection, schema, createDefaultMigration, migrate, createMigration, } from '@verdant-web/common';
18
- export type { StorageDocument, StorageSchema, StorageCollectionSchema, StorageAnyFieldSchema, StorageArrayFieldSchema, StorageObjectFieldSchema, StorageBooleanFieldSchema, StorageFieldSchema, StorageFileFieldSchema, StorageMapFieldSchema, StorageNumberFieldSchema, StorageStringFieldSchema, StorageFieldsSchema, IndexValueTag, Migration, } from '@verdant-web/common';
19
- export type { UserInfo } from '@verdant-web/common';
20
- export type { Query } from './queries/types.js';
21
- export type { QueryStatus } from './queries/BaseQuery.js';
22
- export type { CollectionQueries } from './queries/CollectionQueries.js';
23
- export { MigrationPathError } from './migration/errors.js';
@@ -1,10 +0,0 @@
1
- import { IDBService } from '../IDBService.js';
2
- type AckInfo = {
3
- type: 'ack';
4
- globalAckTimestamp: string | null;
5
- };
6
- export declare class AckInfoStore extends IDBService {
7
- getAckInfo: () => Promise<AckInfo>;
8
- setGlobalAck: (ack: string) => Promise<void>;
9
- }
10
- export {};
@@ -1,40 +0,0 @@
1
- import { DocumentBaseline, ObjectIdentifier } from '@verdant-web/common';
2
- import { IDBService } from '../IDBService.js';
3
- import { Context } from '../context.js';
4
- export declare class BaselinesStore extends IDBService {
5
- constructor(db: IDBDatabase, opts: {
6
- log?: Context['log'];
7
- });
8
- getAllForDocument: (oid: ObjectIdentifier, { mode, transaction, }?: {
9
- mode?: "readonly" | "readwrite" | undefined;
10
- transaction?: IDBTransaction | undefined;
11
- }) => Promise<DocumentBaseline<any>[]>;
12
- iterateOverAllForDocument: (oid: ObjectIdentifier, iterator: (baseline: DocumentBaseline, store: IDBObjectStore) => void, { mode, transaction, }?: {
13
- mode?: "readonly" | "readwrite" | undefined;
14
- transaction?: IDBTransaction | undefined;
15
- }) => Promise<void>;
16
- iterateOverAllForCollection: (collection: string, iterator: (baseline: DocumentBaseline, store: IDBObjectStore) => void, { mode, transaction, }?: {
17
- mode?: "readonly" | "readwrite" | undefined;
18
- transaction?: IDBTransaction | undefined;
19
- }) => Promise<void>;
20
- getAllForMultipleDocuments: (docOids: string[], { mode }?: {
21
- mode?: "readonly" | "readwrite" | undefined;
22
- }) => Promise<DocumentBaseline<any>[]>;
23
- getAllSince: (timestamp: string | null, { mode }?: {
24
- mode?: "readonly" | "readwrite" | undefined;
25
- }) => Promise<DocumentBaseline<any>[]>;
26
- get: (oid: ObjectIdentifier, { transaction, mode, }?: {
27
- transaction?: IDBTransaction | undefined;
28
- mode?: "readonly" | "readwrite" | undefined;
29
- }) => Promise<DocumentBaseline<any>>;
30
- set: <T>(baseline: DocumentBaseline<T>, { transaction }?: {
31
- transaction?: IDBTransaction | undefined;
32
- }) => Promise<void>;
33
- setAll: <T>(baselines: DocumentBaseline<T>[], { transaction }?: {
34
- transaction?: IDBTransaction | undefined;
35
- }) => Promise<void>;
36
- reset: () => Promise<undefined>;
37
- delete: (oid: ObjectIdentifier, { transaction }: {
38
- transaction?: IDBTransaction | undefined;
39
- }) => Promise<void>;
40
- }
@@ -1,18 +0,0 @@
1
- import { IDBService } from '../IDBService.js';
2
- export type LocalReplicaInfo = {
3
- type: 'localReplicaInfo';
4
- id: string;
5
- ackedLogicalTime: string | null;
6
- lastSyncedLogicalTime: string | null;
7
- };
8
- export declare class LocalReplicaStore extends IDBService {
9
- private _creating;
10
- private cached;
11
- get: ({ transaction, }?: {
12
- transaction?: IDBTransaction | undefined;
13
- }) => Promise<LocalReplicaInfo>;
14
- update: (data: Partial<LocalReplicaInfo>, { transaction }?: {
15
- transaction?: IDBTransaction | undefined;
16
- }) => Promise<void>;
17
- reset: () => Promise<void>;
18
- }
@@ -1,19 +0,0 @@
1
- import { AckMessage, HeartbeatMessage, OperationMessage, PresenceUpdateMessage, SyncMessage } from '@verdant-web/common';
2
- import { Metadata } from './Metadata.js';
3
- export declare class MessageCreator {
4
- private meta;
5
- constructor(meta: Metadata);
6
- createOperation: (init: Pick<OperationMessage, 'operations'> & {
7
- timestamp?: string;
8
- }) => Promise<OperationMessage>;
9
- createMigrationOperation: ({ targetVersion, ...init }: Pick<OperationMessage, "operations"> & {
10
- targetVersion: number;
11
- }) => Promise<OperationMessage>;
12
- /**
13
- * @param since - override local understanding of last sync time
14
- */
15
- createSyncStep1: (since?: string | null) => Promise<SyncMessage>;
16
- createPresenceUpdate: (presence: any) => Promise<PresenceUpdateMessage>;
17
- createHeartbeat: () => Promise<HeartbeatMessage>;
18
- createAck: (nonce: string) => Promise<AckMessage>;
19
- }
@@ -1,134 +0,0 @@
1
- import { ClientMessage, DocumentBaseline, EventSubscriber, FileRef, HybridLogicalClockTimestampProvider, ObjectIdentifier, Operation, PatchCreator, StorageSchema } from '@verdant-web/common';
2
- import { AckInfoStore } from './AckInfoStore.js';
3
- import { BaselinesStore } from './BaselinesStore.js';
4
- import { LocalReplicaInfo, LocalReplicaStore } from './LocalReplicaStore.js';
5
- import { MessageCreator } from './MessageCreator.js';
6
- import { OperationsStore } from './OperationsStore.js';
7
- import { SchemaStore } from './SchemaStore.js';
8
- import { Context } from '../context.js';
9
- export interface ExportData {
10
- operations: Operation[];
11
- baselines: DocumentBaseline[];
12
- localReplica: LocalReplicaInfo;
13
- schema: StorageSchema;
14
- }
15
- export declare class Metadata extends EventSubscriber<{
16
- message: (message: ClientMessage) => void;
17
- rebase: (baselines: DocumentBaseline[]) => void;
18
- filesDeleted: (files: FileRef[]) => void;
19
- }> {
20
- readonly operations: OperationsStore;
21
- readonly baselines: BaselinesStore;
22
- readonly localReplica: LocalReplicaStore;
23
- readonly ackInfo: AckInfoStore;
24
- readonly messageCreator: MessageCreator;
25
- readonly patchCreator: PatchCreator;
26
- readonly schema: SchemaStore;
27
- readonly time: HybridLogicalClockTimestampProvider;
28
- private readonly disableRebasing;
29
- /**
30
- * indicates the client is shutting down and we should stop
31
- * accessing the database.
32
- */
33
- private _closing;
34
- private context;
35
- constructor({ disableRebasing, context, }: {
36
- disableRebasing?: boolean;
37
- context: Omit<Context, 'documentDb' | 'getNow'>;
38
- });
39
- private get db();
40
- private get log();
41
- setContext: (context: Context) => void;
42
- get now(): string;
43
- close: () => void;
44
- /**
45
- * Methods for accessing data
46
- */
47
- createTransaction: (stores: ('operations' | 'baselines')[], opts?: {
48
- abort?: AbortSignal;
49
- }) => IDBTransaction;
50
- /**
51
- * Gets the OID and every sub-object OID for a given document.
52
- * Includes any sub-objects that are not referenced by the root object
53
- * but still happen to be in storage.
54
- */
55
- getAllDocumentRelatedOids: (oid: ObjectIdentifier) => Promise<string[]>;
56
- getAllCollectionRelatedOids: (oid: ObjectIdentifier) => Promise<string[]>;
57
- getDocumentSnapshot: (oid: ObjectIdentifier, options?: {
58
- to?: string;
59
- }) => Promise<any>;
60
- getDocumentData: (oid: ObjectIdentifier, opts?: {
61
- abort?: AbortSignal;
62
- }) => Promise<{
63
- baselines: DocumentBaseline<any>[];
64
- operations: Record<string, Operation[]>;
65
- }>;
66
- /**
67
- * Methods for writing data
68
- */
69
- /**
70
- * Acks that we have seen a timestamp to the server
71
- * and stores it as our local ackedLogicalTime if it's
72
- * greater than our current ackedLogicalTime.
73
- */
74
- ack: (timestamp: string) => Promise<void>;
75
- /**
76
- * Applies a patch to the document and stores it in the database.
77
- * @returns the oldest local history timestamp
78
- */
79
- insertLocalOperations: (operations: Operation[], opts?: {
80
- transaction?: IDBTransaction;
81
- }) => Promise<void>;
82
- /**
83
- * Inserts remote operations. This does not affect local history.
84
- * @returns a list of affected document OIDs
85
- */
86
- insertRemoteOperations: (operations: Operation[], opts?: {
87
- transaction?: IDBTransaction;
88
- }) => Promise<string[]>;
89
- insertRemoteBaselines: (baselines: DocumentBaseline[], opts?: {
90
- transaction?: IDBTransaction;
91
- }) => Promise<string[]>;
92
- insertData: (data: {
93
- baselines?: DocumentBaseline[];
94
- operations?: Operation[];
95
- isLocal?: boolean;
96
- }, opts?: {
97
- abort: AbortSignal;
98
- }) => Promise<void>;
99
- updateLastSynced: (timestamp: string) => Promise<void>;
100
- lastSyncedTimestamp: () => Promise<string | null>;
101
- private tryAutonomousRebase;
102
- /**
103
- * Attempt to autonomously rebase local documents without server intervention.
104
- * This can currently only happen for a client who has never synced before.
105
- * The goal is to allow local-only clients to compress their history to exactly
106
- * their undo stack.
107
- */
108
- private runRebase;
109
- rebase: (oid: ObjectIdentifier, upTo: string, providedTx?: IDBTransaction) => Promise<{
110
- oid: string;
111
- snapshot: any;
112
- timestamp: string;
113
- }>;
114
- reset: () => Promise<void>;
115
- updateSchema: (schema: StorageSchema, overrideConflict?: number) => Promise<void>;
116
- setGlobalAck: (timestamp: string) => Promise<void>;
117
- export: () => Promise<ExportData>;
118
- /**
119
- * Resets local metadata and clears operation/baseline stores.
120
- * DOES NOT add operations/baselines - this should be done
121
- * through the normal higher level systems.
122
- */
123
- resetFrom: (data: ExportData) => Promise<void>;
124
- stats: () => Promise<{
125
- operationsSize: {
126
- count: number;
127
- size: number;
128
- };
129
- baselinesSize: {
130
- count: number;
131
- size: number;
132
- };
133
- }>;
134
- }
@@ -1,62 +0,0 @@
1
- import { ObjectIdentifier, Operation } from '@verdant-web/common';
2
- import { IDBService } from '../IDBService.js';
3
- export type ClientOperation = Operation & {
4
- isLocal: boolean;
5
- };
6
- export type StoredClientOperation = ClientOperation & {
7
- oid_timestamp: string;
8
- l_t: string;
9
- d_t: string;
10
- };
11
- export declare class OperationsStore extends IDBService {
12
- constructor(db: IDBDatabase, opts: {
13
- log?: (...args: any[]) => void;
14
- });
15
- /**
16
- * Iterates over every patch for the root and every sub-object
17
- * of a given document. Optionally limit by timestamp.
18
- */
19
- iterateOverAllOperationsForDocument: (oid: ObjectIdentifier, iterator: (patch: StoredClientOperation, store: IDBObjectStore) => void, { to, from, after, mode, transaction: providedTx, }?: {
20
- to?: string | undefined;
21
- from?: string | undefined;
22
- after?: string | undefined;
23
- mode?: "readonly" | "readwrite" | undefined;
24
- transaction?: IDBTransaction | undefined;
25
- }) => Promise<void>;
26
- iterateOverAllOperationsForEntity: (oid: ObjectIdentifier, iterator: (patch: StoredClientOperation, store: IDBObjectStore) => void, { after, to, mode, transaction: providedTx, }: {
27
- after?: string | undefined;
28
- to?: string | undefined;
29
- mode?: "readonly" | "readwrite" | undefined;
30
- transaction?: IDBTransaction | undefined;
31
- }) => Promise<void>;
32
- iterateOverAllOperationsForCollection: (collection: string, iterator: (patch: StoredClientOperation, store: IDBObjectStore) => void, { after, to, mode, transaction: providedTx, }: {
33
- after?: string | undefined;
34
- to?: string | undefined;
35
- mode?: "readonly" | "readwrite" | undefined;
36
- transaction?: IDBTransaction | undefined;
37
- }) => Promise<void>;
38
- iterateOverAllLocalOperations: (iterator: (patch: ClientOperation, store: IDBObjectStore) => void, { before, after, mode, transaction: providedTx, }: {
39
- before?: string | null | undefined;
40
- after?: string | null | undefined;
41
- mode?: "readonly" | "readwrite" | undefined;
42
- transaction?: IDBTransaction | undefined;
43
- }) => Promise<void>;
44
- iterateOverAllOperations: (iterator: (patch: ClientOperation, store: IDBObjectStore) => void, { before, transaction, mode, from, }: {
45
- /** Ending timestamp, exclusive */
46
- before?: string | null | undefined;
47
- /** Starting timestamp, inclusive */
48
- from?: string | null | undefined;
49
- transaction?: IDBTransaction | undefined;
50
- mode?: "readonly" | "readwrite" | undefined;
51
- }) => Promise<void>;
52
- /**
53
- * Adds a set of patches to the database.
54
- * @returns a list of affected root document OIDs.
55
- */
56
- addOperations: (patches: ClientOperation[], { transaction }?: {
57
- transaction?: IDBTransaction | undefined;
58
- }) => Promise<ObjectIdentifier[]>;
59
- private addCompoundIndexes;
60
- private insert;
61
- reset: () => Promise<undefined>;
62
- }
@@ -1,9 +0,0 @@
1
- import { StorageSchema } from '@verdant-web/common';
2
- export declare class SchemaStore {
3
- private readonly db;
4
- readonly currentVersion: number;
5
- private cached;
6
- constructor(db: IDBDatabase, currentVersion: number);
7
- get: () => Promise<StorageSchema<any> | null>;
8
- set: (schema: StorageSchema<any>) => Promise<void>;
9
- }
@@ -1,19 +0,0 @@
1
- export declare function openMetadataDatabase({ indexedDB, namespace, log, metadataVersion, }: {
2
- indexedDB?: IDBFactory;
3
- namespace: string;
4
- log?: (...args: any[]) => void;
5
- metadataVersion?: number;
6
- }): Promise<{
7
- wasInitialized: boolean;
8
- db: IDBDatabase;
9
- }>;
10
- export declare function openWIPMetadataDatabase({ wipNamespace, namespace, indexedDB, log, metadataVersion, }: {
11
- indexedDB?: IDBFactory;
12
- namespace: string;
13
- wipNamespace: string;
14
- log?: (...args: any[]) => void;
15
- metadataVersion?: number;
16
- }): Promise<{
17
- wasInitialized: boolean;
18
- db: IDBDatabase;
19
- }>;
@@ -1,8 +0,0 @@
1
- export declare function getDatabaseVersion(indexedDB: IDBFactory, namespace: string, version: number, log?: (...args: any[]) => void): Promise<number>;
2
- export declare function closeDatabase(db: IDBDatabase): Promise<void>;
3
- /**
4
- * Upgrades the database to the given version, using the given upgrader function.
5
- */
6
- export declare function upgradeDatabase(indexedDb: IDBFactory, namespace: string, version: number, upgrader: (transaction: IDBTransaction, db: IDBDatabase, event: IDBVersionChangeEvent) => void, log?: (...args: any[]) => void): Promise<void>;
7
- export declare function acquireLock(namespace: string, procedure: () => Promise<void>): Promise<void>;
8
- export declare function openDatabase(indexedDb: IDBFactory, namespace: string, version: number, log?: (...args: any[]) => void): Promise<IDBDatabase>;
@@ -1,5 +0,0 @@
1
- export declare class MigrationPathError extends Error {
2
- readonly message: string;
3
- readonly name = "MigrationPathError";
4
- constructor(message: string);
5
- }
@@ -1,20 +0,0 @@
1
- import { Migration } from '@verdant-web/common';
2
- import { Context } from '../context.js';
3
- import { Metadata } from '../metadata/Metadata.js';
4
- type OpenDocumentDbContext = Omit<Context, 'documentDb'>;
5
- export declare function openDocumentDatabase({ version, indexedDB, migrations, meta, context, }: {
6
- version: number;
7
- migrations: Migration<any>[];
8
- indexedDB?: IDBFactory;
9
- meta: Metadata;
10
- context: OpenDocumentDbContext;
11
- }): Promise<IDBDatabase>;
12
- export declare function openWIPDocumentDatabase({ version, indexedDB, migrations, meta, context, wipNamespace, }: {
13
- version: number;
14
- migrations: Migration<any>[];
15
- indexedDB?: IDBFactory;
16
- meta: Metadata;
17
- context: OpenDocumentDbContext;
18
- wipNamespace: string;
19
- }): Promise<IDBDatabase>;
20
- export {};
@@ -1,6 +0,0 @@
1
- import { Migration } from '@verdant-web/common';
2
- export declare function getMigrationPath({ currentVersion, targetVersion, migrations, }: {
3
- currentVersion: number;
4
- targetVersion: number;
5
- migrations: Migration[];
6
- }): Migration<any, any>[];
@@ -1 +0,0 @@
1
- export {};