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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (336) hide show
  1. package/dist/bundle/index.js +8 -8
  2. package/dist/bundle/index.js.map +4 -4
  3. package/dist/esm/BackoffScheduler.js.map +1 -1
  4. package/dist/esm/IDBService.js.map +1 -1
  5. package/dist/esm/UndoHistory.js.map +1 -1
  6. package/dist/esm/__tests__/documents.test.js.map +1 -1
  7. package/dist/esm/__tests__/queries.test.js.map +1 -1
  8. package/dist/esm/backup.js.map +1 -1
  9. package/dist/esm/client/Client.js +7 -0
  10. package/dist/esm/client/Client.js.map +1 -1
  11. package/dist/esm/client/ClientDescriptor.js.map +1 -1
  12. package/dist/esm/entities/Entity.js.map +1 -1
  13. package/dist/esm/entities/EntityCache.js.map +1 -1
  14. package/dist/esm/entities/EntityMetadata.js.map +1 -1
  15. package/dist/esm/entities/EntityStore.js.map +1 -1
  16. package/dist/esm/entities/OperationBatcher.js.map +1 -1
  17. package/dist/esm/files/EntityFile.js.map +1 -1
  18. package/dist/esm/files/FileManager.js +3 -0
  19. package/dist/esm/files/FileManager.js.map +1 -1
  20. package/dist/esm/files/FileStorage.js.map +1 -1
  21. package/dist/esm/files/utils.js.map +1 -1
  22. package/dist/esm/idb.js.map +1 -1
  23. package/dist/esm/metadata/AckInfoStore.js.map +1 -1
  24. package/dist/esm/metadata/LocalReplicaStore.js.map +1 -1
  25. package/dist/esm/metadata/MessageCreator.js.map +1 -1
  26. package/dist/esm/metadata/Metadata.js.map +1 -1
  27. package/dist/esm/metadata/OperationsStore.js.map +1 -1
  28. package/dist/esm/metadata/SchemaStore.js.map +1 -1
  29. package/dist/esm/metadata/openMetadataDatabase.js.map +1 -1
  30. package/dist/esm/migration/db.js.map +1 -1
  31. package/dist/esm/migration/openDatabase.js.map +1 -1
  32. package/dist/esm/migration/paths.js.map +1 -1
  33. package/dist/esm/queries/BaseQuery.js.map +1 -1
  34. package/dist/esm/queries/QueryCache.js.map +1 -1
  35. package/dist/esm/queries/QueryableStorage.js.map +1 -1
  36. package/dist/esm/queries/dbQueries.js.map +1 -1
  37. package/dist/esm/queries/keys.js.map +1 -1
  38. package/dist/esm/queries/ranges.js.map +1 -1
  39. package/dist/esm/queries/utils.js.map +1 -1
  40. package/dist/esm/sync/FileSync.js.map +1 -1
  41. package/dist/esm/sync/Heartbeat.js.map +1 -1
  42. package/dist/esm/sync/PresenceManager.js.map +1 -1
  43. package/dist/esm/sync/PushPullSync.js.map +1 -1
  44. package/dist/esm/sync/ServerSyncEndpointProvider.js.map +1 -1
  45. package/dist/esm/sync/Sync.js.map +1 -1
  46. package/dist/esm/sync/WebSocketSync.js.map +1 -1
  47. package/package.json +9 -10
  48. package/src/client/Client.ts +8 -1
  49. package/src/files/FileManager.ts +4 -0
  50. package/src/sync/Sync.ts +2 -2
  51. package/dist/cjs/BackoffScheduler.d.ts +0 -19
  52. package/dist/cjs/BackoffScheduler.js +0 -45
  53. package/dist/cjs/BackoffScheduler.js.map +0 -1
  54. package/dist/cjs/DocumentManager.d.ts +0 -28
  55. package/dist/cjs/DocumentManager.js +0 -45
  56. package/dist/cjs/DocumentManager.js.map +0 -1
  57. package/dist/cjs/FakeWeakRef.d.ts +0 -11
  58. package/dist/cjs/FakeWeakRef.js +0 -19
  59. package/dist/cjs/FakeWeakRef.js.map +0 -1
  60. package/dist/cjs/IDBService.d.ts +0 -30
  61. package/dist/cjs/IDBService.js +0 -101
  62. package/dist/cjs/IDBService.js.map +0 -1
  63. package/dist/cjs/UndoHistory.d.ts +0 -16
  64. package/dist/cjs/UndoHistory.js +0 -55
  65. package/dist/cjs/UndoHistory.js.map +0 -1
  66. package/dist/cjs/__tests__/batching.test.d.ts +0 -1
  67. package/dist/cjs/__tests__/batching.test.js +0 -47
  68. package/dist/cjs/__tests__/batching.test.js.map +0 -1
  69. package/dist/cjs/__tests__/documents.test.d.ts +0 -1
  70. package/dist/cjs/__tests__/documents.test.js +0 -468
  71. package/dist/cjs/__tests__/documents.test.js.map +0 -1
  72. package/dist/cjs/__tests__/fixtures/testStorage.d.ts +0 -76
  73. package/dist/cjs/__tests__/fixtures/testStorage.js +0 -96
  74. package/dist/cjs/__tests__/fixtures/testStorage.js.map +0 -1
  75. package/dist/cjs/__tests__/legacyOids.test.d.ts +0 -1
  76. package/dist/cjs/__tests__/legacyOids.test.js +0 -354
  77. package/dist/cjs/__tests__/legacyOids.test.js.map +0 -1
  78. package/dist/cjs/__tests__/mutations.test.d.ts +0 -1
  79. package/dist/cjs/__tests__/mutations.test.js +0 -48
  80. package/dist/cjs/__tests__/mutations.test.js.map +0 -1
  81. package/dist/cjs/__tests__/queries.test.d.ts +0 -1
  82. package/dist/cjs/__tests__/queries.test.js +0 -323
  83. package/dist/cjs/__tests__/queries.test.js.map +0 -1
  84. package/dist/cjs/__tests__/setup/indexedDB.d.ts +0 -1
  85. package/dist/cjs/__tests__/setup/indexedDB.js +0 -16
  86. package/dist/cjs/__tests__/setup/indexedDB.js.map +0 -1
  87. package/dist/cjs/__tests__/undo.test.d.ts +0 -1
  88. package/dist/cjs/__tests__/undo.test.js +0 -94
  89. package/dist/cjs/__tests__/undo.test.js.map +0 -1
  90. package/dist/cjs/backup.d.ts +0 -10
  91. package/dist/cjs/backup.js +0 -58
  92. package/dist/cjs/backup.js.map +0 -1
  93. package/dist/cjs/client/Client.d.ts +0 -120
  94. package/dist/cjs/client/Client.js +0 -300
  95. package/dist/cjs/client/Client.js.map +0 -1
  96. package/dist/cjs/client/ClientDescriptor.d.ts +0 -76
  97. package/dist/cjs/client/ClientDescriptor.js +0 -213
  98. package/dist/cjs/client/ClientDescriptor.js.map +0 -1
  99. package/dist/cjs/client/constants.d.ts +0 -1
  100. package/dist/cjs/client/constants.js +0 -5
  101. package/dist/cjs/client/constants.js.map +0 -1
  102. package/dist/cjs/constants.d.ts +0 -1
  103. package/dist/cjs/constants.js +0 -5
  104. package/dist/cjs/constants.js.map +0 -1
  105. package/dist/cjs/context.d.ts +0 -38
  106. package/dist/cjs/context.js +0 -3
  107. package/dist/cjs/context.js.map +0 -1
  108. package/dist/cjs/entities/Entity.d.ts +0 -148
  109. package/dist/cjs/entities/Entity.js +0 -711
  110. package/dist/cjs/entities/Entity.js.map +0 -1
  111. package/dist/cjs/entities/Entity.test.d.ts +0 -1
  112. package/dist/cjs/entities/Entity.test.js +0 -194
  113. package/dist/cjs/entities/Entity.test.js.map +0 -1
  114. package/dist/cjs/entities/EntityCache.d.ts +0 -15
  115. package/dist/cjs/entities/EntityCache.js +0 -39
  116. package/dist/cjs/entities/EntityCache.js.map +0 -1
  117. package/dist/cjs/entities/EntityMetadata.d.ts +0 -68
  118. package/dist/cjs/entities/EntityMetadata.js +0 -261
  119. package/dist/cjs/entities/EntityMetadata.js.map +0 -1
  120. package/dist/cjs/entities/EntityStore.d.ts +0 -80
  121. package/dist/cjs/entities/EntityStore.js +0 -352
  122. package/dist/cjs/entities/EntityStore.js.map +0 -1
  123. package/dist/cjs/entities/OperationBatcher.d.ts +0 -52
  124. package/dist/cjs/entities/OperationBatcher.js +0 -165
  125. package/dist/cjs/entities/OperationBatcher.js.map +0 -1
  126. package/dist/cjs/entities/types.d.ts +0 -103
  127. package/dist/cjs/entities/types.js +0 -3
  128. package/dist/cjs/entities/types.js.map +0 -1
  129. package/dist/cjs/files/EntityFile.d.ts +0 -35
  130. package/dist/cjs/files/EntityFile.js +0 -81
  131. package/dist/cjs/files/EntityFile.js.map +0 -1
  132. package/dist/cjs/files/FileManager.d.ts +0 -46
  133. package/dist/cjs/files/FileManager.js +0 -174
  134. package/dist/cjs/files/FileManager.js.map +0 -1
  135. package/dist/cjs/files/FileStorage.d.ts +0 -39
  136. package/dist/cjs/files/FileStorage.js +0 -110
  137. package/dist/cjs/files/FileStorage.js.map +0 -1
  138. package/dist/cjs/files/utils.d.ts +0 -10
  139. package/dist/cjs/files/utils.js +0 -62
  140. package/dist/cjs/files/utils.js.map +0 -1
  141. package/dist/cjs/files/utils.test.d.ts +0 -1
  142. package/dist/cjs/files/utils.test.js +0 -81
  143. package/dist/cjs/files/utils.test.js.map +0 -1
  144. package/dist/cjs/idb.d.ts +0 -13
  145. package/dist/cjs/idb.js +0 -158
  146. package/dist/cjs/idb.js.map +0 -1
  147. package/dist/cjs/index.d.ts +0 -23
  148. package/dist/cjs/index.js +0 -25
  149. package/dist/cjs/index.js.map +0 -1
  150. package/dist/cjs/metadata/AckInfoStore.d.ts +0 -10
  151. package/dist/cjs/metadata/AckInfoStore.js +0 -26
  152. package/dist/cjs/metadata/AckInfoStore.js.map +0 -1
  153. package/dist/cjs/metadata/BaselinesStore.d.ts +0 -40
  154. package/dist/cjs/metadata/BaselinesStore.js +0 -106
  155. package/dist/cjs/metadata/BaselinesStore.js.map +0 -1
  156. package/dist/cjs/metadata/LocalReplicaStore.d.ts +0 -18
  157. package/dist/cjs/metadata/LocalReplicaStore.js +0 -62
  158. package/dist/cjs/metadata/LocalReplicaStore.js.map +0 -1
  159. package/dist/cjs/metadata/MessageCreator.d.ts +0 -19
  160. package/dist/cjs/metadata/MessageCreator.js +0 -128
  161. package/dist/cjs/metadata/MessageCreator.js.map +0 -1
  162. package/dist/cjs/metadata/Metadata.d.ts +0 -135
  163. package/dist/cjs/metadata/Metadata.js +0 -408
  164. package/dist/cjs/metadata/Metadata.js.map +0 -1
  165. package/dist/cjs/metadata/OperationsStore.d.ts +0 -62
  166. package/dist/cjs/metadata/OperationsStore.js +0 -179
  167. package/dist/cjs/metadata/OperationsStore.js.map +0 -1
  168. package/dist/cjs/metadata/SchemaStore.d.ts +0 -9
  169. package/dist/cjs/metadata/SchemaStore.js +0 -39
  170. package/dist/cjs/metadata/SchemaStore.js.map +0 -1
  171. package/dist/cjs/metadata/openMetadataDatabase.d.ts +0 -19
  172. package/dist/cjs/metadata/openMetadataDatabase.js +0 -220
  173. package/dist/cjs/metadata/openMetadataDatabase.js.map +0 -1
  174. package/dist/cjs/migration/db.d.ts +0 -8
  175. package/dist/cjs/migration/db.js +0 -112
  176. package/dist/cjs/migration/db.js.map +0 -1
  177. package/dist/cjs/migration/errors.d.ts +0 -5
  178. package/dist/cjs/migration/errors.js +0 -12
  179. package/dist/cjs/migration/errors.js.map +0 -1
  180. package/dist/cjs/migration/openDatabase.d.ts +0 -20
  181. package/dist/cjs/migration/openDatabase.js +0 -468
  182. package/dist/cjs/migration/openDatabase.js.map +0 -1
  183. package/dist/cjs/migration/paths.d.ts +0 -6
  184. package/dist/cjs/migration/paths.js +0 -53
  185. package/dist/cjs/migration/paths.js.map +0 -1
  186. package/dist/cjs/migration/paths.test.d.ts +0 -1
  187. package/dist/cjs/migration/paths.test.js +0 -91
  188. package/dist/cjs/migration/paths.test.js.map +0 -1
  189. package/dist/cjs/queries/BaseQuery.d.ts +0 -53
  190. package/dist/cjs/queries/BaseQuery.js +0 -148
  191. package/dist/cjs/queries/BaseQuery.js.map +0 -1
  192. package/dist/cjs/queries/CollectionQueries.d.ts +0 -55
  193. package/dist/cjs/queries/CollectionQueries.js +0 -92
  194. package/dist/cjs/queries/CollectionQueries.js.map +0 -1
  195. package/dist/cjs/queries/FindAllQuery.d.ts +0 -12
  196. package/dist/cjs/queries/FindAllQuery.js +0 -44
  197. package/dist/cjs/queries/FindAllQuery.js.map +0 -1
  198. package/dist/cjs/queries/FindInfiniteQuery.d.ts +0 -19
  199. package/dist/cjs/queries/FindInfiniteQuery.js +0 -70
  200. package/dist/cjs/queries/FindInfiniteQuery.js.map +0 -1
  201. package/dist/cjs/queries/FindOneQuery.d.ts +0 -12
  202. package/dist/cjs/queries/FindOneQuery.js +0 -43
  203. package/dist/cjs/queries/FindOneQuery.js.map +0 -1
  204. package/dist/cjs/queries/FindPageQuery.d.ts +0 -24
  205. package/dist/cjs/queries/FindPageQuery.js +0 -77
  206. package/dist/cjs/queries/FindPageQuery.js.map +0 -1
  207. package/dist/cjs/queries/GetQuery.d.ts +0 -10
  208. package/dist/cjs/queries/GetQuery.js +0 -30
  209. package/dist/cjs/queries/GetQuery.js.map +0 -1
  210. package/dist/cjs/queries/QueryCache.d.ts +0 -17
  211. package/dist/cjs/queries/QueryCache.js +0 -46
  212. package/dist/cjs/queries/QueryCache.js.map +0 -1
  213. package/dist/cjs/queries/QueryableStorage.d.ts +0 -20
  214. package/dist/cjs/queries/QueryableStorage.js +0 -94
  215. package/dist/cjs/queries/QueryableStorage.js.map +0 -1
  216. package/dist/cjs/queries/dbQueries.d.ts +0 -22
  217. package/dist/cjs/queries/dbQueries.js +0 -136
  218. package/dist/cjs/queries/dbQueries.js.map +0 -1
  219. package/dist/cjs/queries/keys.d.ts +0 -10
  220. package/dist/cjs/queries/keys.js +0 -34
  221. package/dist/cjs/queries/keys.js.map +0 -1
  222. package/dist/cjs/queries/ranges.d.ts +0 -2
  223. package/dist/cjs/queries/ranges.js +0 -70
  224. package/dist/cjs/queries/ranges.js.map +0 -1
  225. package/dist/cjs/queries/types.d.ts +0 -6
  226. package/dist/cjs/queries/types.js +0 -3
  227. package/dist/cjs/queries/types.js.map +0 -1
  228. package/dist/cjs/queries/utils.d.ts +0 -3
  229. package/dist/cjs/queries/utils.js +0 -25
  230. package/dist/cjs/queries/utils.js.map +0 -1
  231. package/dist/cjs/sync/FileSync.d.ts +0 -24
  232. package/dist/cjs/sync/FileSync.js +0 -87
  233. package/dist/cjs/sync/FileSync.js.map +0 -1
  234. package/dist/cjs/sync/Heartbeat.d.ts +0 -25
  235. package/dist/cjs/sync/Heartbeat.js +0 -64
  236. package/dist/cjs/sync/Heartbeat.js.map +0 -1
  237. package/dist/cjs/sync/PresenceManager.d.ts +0 -55
  238. package/dist/cjs/sync/PresenceManager.js +0 -126
  239. package/dist/cjs/sync/PresenceManager.js.map +0 -1
  240. package/dist/cjs/sync/PushPullSync.d.ts +0 -39
  241. package/dist/cjs/sync/PushPullSync.js +0 -159
  242. package/dist/cjs/sync/PushPullSync.js.map +0 -1
  243. package/dist/cjs/sync/ServerSyncEndpointProvider.d.ts +0 -34
  244. package/dist/cjs/sync/ServerSyncEndpointProvider.js +0 -69
  245. package/dist/cjs/sync/ServerSyncEndpointProvider.js.map +0 -1
  246. package/dist/cjs/sync/Sync.d.ts +0 -160
  247. package/dist/cjs/sync/Sync.js +0 -293
  248. package/dist/cjs/sync/Sync.js.map +0 -1
  249. package/dist/cjs/sync/WebSocketSync.d.ts +0 -44
  250. package/dist/cjs/sync/WebSocketSync.js +0 -221
  251. package/dist/cjs/sync/WebSocketSync.js.map +0 -1
  252. package/dist/cjs/types.d.ts +0 -12
  253. package/dist/cjs/types.js +0 -3
  254. package/dist/cjs/types.js.map +0 -1
  255. package/dist/cjs/utils/Disposable.d.ts +0 -6
  256. package/dist/cjs/utils/Disposable.js +0 -19
  257. package/dist/cjs/utils/Disposable.js.map +0 -1
  258. package/dist/cjs/utils/Resolvable.d.ts +0 -8
  259. package/dist/cjs/utils/Resolvable.js +0 -23
  260. package/dist/cjs/utils/Resolvable.js.map +0 -1
  261. package/dist/cjs/vanilla.d.ts +0 -1
  262. package/dist/cjs/vanilla.js +0 -28
  263. package/dist/cjs/vanilla.js.map +0 -1
  264. package/dist/esm/BackoffScheduler.d.ts +0 -19
  265. package/dist/esm/DocumentManager.d.ts +0 -28
  266. package/dist/esm/FakeWeakRef.d.ts +0 -11
  267. package/dist/esm/IDBService.d.ts +0 -30
  268. package/dist/esm/UndoHistory.d.ts +0 -16
  269. package/dist/esm/__tests__/batching.test.d.ts +0 -1
  270. package/dist/esm/__tests__/documents.test.d.ts +0 -1
  271. package/dist/esm/__tests__/fixtures/testStorage.d.ts +0 -76
  272. package/dist/esm/__tests__/legacyOids.test.d.ts +0 -1
  273. package/dist/esm/__tests__/mutations.test.d.ts +0 -1
  274. package/dist/esm/__tests__/queries.test.d.ts +0 -1
  275. package/dist/esm/__tests__/setup/indexedDB.d.ts +0 -1
  276. package/dist/esm/__tests__/undo.test.d.ts +0 -1
  277. package/dist/esm/backup.d.ts +0 -10
  278. package/dist/esm/client/Client.d.ts +0 -120
  279. package/dist/esm/client/ClientDescriptor.d.ts +0 -76
  280. package/dist/esm/client/constants.d.ts +0 -1
  281. package/dist/esm/constants.d.ts +0 -1
  282. package/dist/esm/context.d.ts +0 -38
  283. package/dist/esm/entities/Entity.d.ts +0 -148
  284. package/dist/esm/entities/Entity.test.d.ts +0 -1
  285. package/dist/esm/entities/EntityCache.d.ts +0 -15
  286. package/dist/esm/entities/EntityMetadata.d.ts +0 -68
  287. package/dist/esm/entities/EntityStore.d.ts +0 -80
  288. package/dist/esm/entities/OperationBatcher.d.ts +0 -52
  289. package/dist/esm/entities/types.d.ts +0 -103
  290. package/dist/esm/files/EntityFile.d.ts +0 -35
  291. package/dist/esm/files/FileManager.d.ts +0 -46
  292. package/dist/esm/files/FileStorage.d.ts +0 -39
  293. package/dist/esm/files/utils.d.ts +0 -10
  294. package/dist/esm/files/utils.test.d.ts +0 -1
  295. package/dist/esm/idb.d.ts +0 -13
  296. package/dist/esm/index.d.ts +0 -23
  297. package/dist/esm/metadata/AckInfoStore.d.ts +0 -10
  298. package/dist/esm/metadata/BaselinesStore.d.ts +0 -40
  299. package/dist/esm/metadata/LocalReplicaStore.d.ts +0 -18
  300. package/dist/esm/metadata/MessageCreator.d.ts +0 -19
  301. package/dist/esm/metadata/Metadata.d.ts +0 -135
  302. package/dist/esm/metadata/OperationsStore.d.ts +0 -62
  303. package/dist/esm/metadata/SchemaStore.d.ts +0 -9
  304. package/dist/esm/metadata/openMetadataDatabase.d.ts +0 -19
  305. package/dist/esm/migration/db.d.ts +0 -8
  306. package/dist/esm/migration/errors.d.ts +0 -5
  307. package/dist/esm/migration/openDatabase.d.ts +0 -20
  308. package/dist/esm/migration/paths.d.ts +0 -6
  309. package/dist/esm/migration/paths.test.d.ts +0 -1
  310. package/dist/esm/queries/BaseQuery.d.ts +0 -53
  311. package/dist/esm/queries/CollectionQueries.d.ts +0 -55
  312. package/dist/esm/queries/FindAllQuery.d.ts +0 -12
  313. package/dist/esm/queries/FindInfiniteQuery.d.ts +0 -19
  314. package/dist/esm/queries/FindOneQuery.d.ts +0 -12
  315. package/dist/esm/queries/FindPageQuery.d.ts +0 -24
  316. package/dist/esm/queries/GetQuery.d.ts +0 -10
  317. package/dist/esm/queries/QueryCache.d.ts +0 -17
  318. package/dist/esm/queries/QueryableStorage.d.ts +0 -20
  319. package/dist/esm/queries/dbQueries.d.ts +0 -22
  320. package/dist/esm/queries/keys.d.ts +0 -10
  321. package/dist/esm/queries/ranges.d.ts +0 -2
  322. package/dist/esm/queries/types.d.ts +0 -6
  323. package/dist/esm/queries/utils.d.ts +0 -3
  324. package/dist/esm/sync/FileSync.d.ts +0 -24
  325. package/dist/esm/sync/Heartbeat.d.ts +0 -25
  326. package/dist/esm/sync/PresenceManager.d.ts +0 -55
  327. package/dist/esm/sync/PushPullSync.d.ts +0 -39
  328. package/dist/esm/sync/ServerSyncEndpointProvider.d.ts +0 -34
  329. package/dist/esm/sync/Sync.d.ts +0 -160
  330. package/dist/esm/sync/WebSocketSync.d.ts +0 -44
  331. package/dist/esm/types.d.ts +0 -12
  332. package/dist/esm/utils/Disposable.d.ts +0 -6
  333. package/dist/esm/utils/Resolvable.d.ts +0 -8
  334. package/dist/esm/vanilla.d.ts +0 -1
  335. package/dist/tsconfig-cjs.tsbuildinfo +0 -1
  336. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,55 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UndoHistory = void 0;
4
- const common_1 = require("@verdant-web/common");
5
- class UndoHistory extends common_1.EventSubscriber {
6
- constructor() {
7
- super(...arguments);
8
- this._undoable = [];
9
- this._undone = [];
10
- this.undo = async () => {
11
- const next = this._undoable.pop();
12
- if (next) {
13
- const redo = await next();
14
- if (redo)
15
- this._undone.push(redo);
16
- this.emit('change');
17
- return true;
18
- }
19
- return false;
20
- };
21
- this.redo = async () => {
22
- const next = this._undone.pop();
23
- if (next) {
24
- const undo = await next();
25
- if (undo)
26
- this._undoable.push(undo);
27
- this.emit('change');
28
- return true;
29
- }
30
- return false;
31
- };
32
- this.addUndo = (undoPoint) => {
33
- this._undoable.push(undoPoint);
34
- this._undone = [];
35
- this.emit('change');
36
- };
37
- this.addRedo = (redoPoint) => {
38
- this._undone.push(redoPoint);
39
- this.emit('change');
40
- };
41
- this.clear = () => {
42
- this._undoable = [];
43
- this._undone = [];
44
- this.emit('change');
45
- };
46
- }
47
- get canUndo() {
48
- return this._undoable.length > 0;
49
- }
50
- get canRedo() {
51
- return this._undone.length > 0;
52
- }
53
- }
54
- exports.UndoHistory = UndoHistory;
55
- //# sourceMappingURL=UndoHistory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UndoHistory.js","sourceRoot":"","sources":["../../src/UndoHistory.ts"],"names":[],"mappings":";;;AAAA,gDAAsD;AAItD,MAAa,WAAY,SAAQ,wBAAuC;IAAxE;;QACS,cAAS,GAAe,EAAE,CAAC;QAC3B,YAAO,GAAe,EAAE,CAAC;QASjC,SAAI,GAAG,KAAK,IAAI,EAAE;YACjB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;YAClC,IAAI,IAAI,EAAE;gBACT,MAAM,IAAI,GAAG,MAAM,IAAI,EAAE,CAAC;gBAC1B,IAAI,IAAI;oBAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpB,OAAO,IAAI,CAAC;aACZ;YACD,OAAO,KAAK,CAAC;QACd,CAAC,CAAC;QAEF,SAAI,GAAG,KAAK,IAAI,EAAE;YACjB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YAChC,IAAI,IAAI,EAAE;gBACT,MAAM,IAAI,GAAG,MAAM,IAAI,EAAE,CAAC;gBAC1B,IAAI,IAAI;oBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpB,OAAO,IAAI,CAAC;aACZ;YACD,OAAO,KAAK,CAAC;QACd,CAAC,CAAC;QAEF,YAAO,GAAG,CAAC,SAAmB,EAAE,EAAE;YACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC,CAAC;QAEF,YAAO,GAAG,CAAC,SAAmB,EAAE,EAAE;YACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC,CAAC;QAEF,UAAK,GAAG,GAAG,EAAE;YACZ,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC,CAAC;IACH,CAAC;IA7CA,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAChC,CAAC;CAwCD;AAjDD,kCAiDC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const testStorage_js_1 = require("./fixtures/testStorage.js");
5
- (0, vitest_1.describe)('batching operations', () => {
6
- (0, vitest_1.it)('should allow multiple runs with manual flush', async () => {
7
- const storage = await (0, testStorage_js_1.createTestStorage)();
8
- const item = await storage.todos.put({
9
- content: 'hello world',
10
- category: 'general',
11
- attachments: [
12
- {
13
- name: 'thing',
14
- },
15
- ],
16
- });
17
- // disable timeout for manual control
18
- const batch = storage.batch({ timeout: null });
19
- batch.run(() => {
20
- item.set('content', 'hello world 2');
21
- // changes are applied synchronously
22
- (0, vitest_1.expect)(item.get('content')).toBe('hello world 2');
23
- item.set('category', 'never');
24
- });
25
- // fake some async work
26
- await new Promise((resolve) => setTimeout(resolve, 200));
27
- batch.run(() => {
28
- item.set('content', 'hello world 3');
29
- item.set('category', 'general');
30
- item.get('attachments').push({ name: 'other thing' });
31
- });
32
- await batch.commit();
33
- (0, vitest_1.expect)(item.get('content')).toBe('hello world 3');
34
- (0, vitest_1.expect)(item.get('category')).toBe('general');
35
- (0, vitest_1.expect)(item.get('attachments').length).toBe(2);
36
- (0, vitest_1.expect)(storage.undoHistory.canUndo).toBe(true);
37
- await storage.undoHistory.undo();
38
- (0, vitest_1.expect)(item.get('content')).toBe('hello world');
39
- (0, vitest_1.expect)(item.get('category')).toBe('general');
40
- (0, vitest_1.expect)(item.get('attachments').length).toBe(1);
41
- // the next undo will undo the creation
42
- await storage.undoHistory.undo();
43
- (0, vitest_1.expect)(storage.undoHistory.canUndo).toBe(false);
44
- (0, vitest_1.expect)(item.deleted).toBe(true);
45
- });
46
- });
47
- //# sourceMappingURL=batching.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"batching.test.js","sourceRoot":"","sources":["../../../src/__tests__/batching.test.ts"],"names":[],"mappings":";;AAAA,mCAAkE;AAClE,8DAA8D;AAG9D,IAAA,iBAAQ,EAAC,qBAAqB,EAAE,GAAG,EAAE;IACpC,IAAA,WAAE,EAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,OAAO,GAAG,MAAM,IAAA,kCAAiB,GAAE,CAAC;QAE1C,MAAM,IAAI,GAAW,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YAC5C,OAAO,EAAE,aAAa;YACtB,QAAQ,EAAE,SAAS;YACnB,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,OAAO;iBACb;aACD;SACD,CAAC,CAAC;QAEH,qCAAqC;QACrC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAE/C,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;YACrC,oCAAoC;YACpC,IAAA,eAAM,EAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAClD,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,uBAAuB;QACvB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAEzD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;YACrC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;QAErB,IAAA,eAAM,EAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAClD,IAAA,eAAM,EAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAA,eAAM,EAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE/C,IAAA,eAAM,EAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/C,MAAM,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAEjC,IAAA,eAAM,EAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAChD,IAAA,eAAM,EAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAA,eAAM,EAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE/C,uCAAuC;QACvC,MAAM,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACjC,IAAA,eAAM,EAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEhD,IAAA,eAAM,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,468 +0,0 @@
1
- "use strict";
2
- var __rest = (this && this.__rest) || function (s, e) {
3
- var t = {};
4
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
- t[p] = s[p];
6
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
- t[p[i]] = s[p[i]];
10
- }
11
- return t;
12
- };
13
- 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
- const index_js_1 = require("../index.js");
18
- async function waitForStoragePropagation(mock) {
19
- await new Promise((resolve, reject) => {
20
- // timeout after 3s waiting
21
- const timeout = setTimeout(() => reject(new Error('Waiting for storage change timed out')), 3000);
22
- const interval = setInterval(() => {
23
- if (mock.mock.calls.length > 0) {
24
- clearInterval(interval);
25
- clearTimeout(timeout);
26
- resolve();
27
- }
28
- }, 0);
29
- });
30
- }
31
- (0, vitest_1.describe)('storage documents', () => {
32
- (0, vitest_1.it)('should fill in default values', async () => {
33
- const storage = await (0, testStorage_js_1.createTestStorage)();
34
- const item = await storage.todos.put({
35
- content: 'item',
36
- category: 'general',
37
- attachments: [
38
- {
39
- name: 'thing',
40
- },
41
- ],
42
- });
43
- (0, vitest_1.expect)(item.get('id')).toBeDefined();
44
- (0, vitest_1.expect)(item.get('done')).toBe(false);
45
- (0, vitest_1.expect)(item.get('tags').length).toBe(0);
46
- (0, vitest_1.expect)(item.get('attachments').get(0).get('test')).toBe(1);
47
- });
48
- (0, vitest_1.it)('should have a stable identity across different queries when subscribed', async () => {
49
- const storage = await (0, testStorage_js_1.createTestStorage)({
50
- // log: console.log,
51
- });
52
- const item1 = await storage.todos.put({
53
- content: 'item 1',
54
- done: false,
55
- tags: [],
56
- category: 'general',
57
- attachments: [],
58
- });
59
- await storage.todos.put({
60
- content: 'item 2',
61
- done: true,
62
- tags: [],
63
- category: 'general',
64
- attachments: [],
65
- });
66
- const singleItemQuery = storage.todos.get(item1.get('id'));
67
- const singleItemResult = await singleItemQuery.resolved;
68
- (0, vitest_1.expect)(singleItemResult).toBeTruthy();
69
- (0, common_1.assert)(!!singleItemResult);
70
- singleItemResult.subscribe('change', vitest_1.vi.fn());
71
- const allItemsQuery = storage.todos.findAll();
72
- const allItemsResult = await allItemsQuery.resolved;
73
- const allItemsReferenceToItem1 = allItemsResult.find((item) => item.get('id') === item1.get('id'));
74
- (0, vitest_1.expect)(singleItemResult).toBe(allItemsReferenceToItem1);
75
- });
76
- (0, vitest_1.it)('should immediately reflect mutations', async () => {
77
- const storage = await (0, testStorage_js_1.createTestStorage)();
78
- const item1 = await storage.todos.put({
79
- content: 'item 1',
80
- done: false,
81
- tags: [],
82
- category: 'general',
83
- attachments: [],
84
- });
85
- item1.set('done', true);
86
- (0, vitest_1.expect)(item1.get('done')).toBe(true);
87
- });
88
- (0, vitest_1.it)('should notify about changes', async () => {
89
- const storage = await (0, testStorage_js_1.createTestStorage)();
90
- const item1 = await storage.todos.put({
91
- content: 'item 1',
92
- done: false,
93
- tags: [],
94
- category: 'general',
95
- attachments: [],
96
- });
97
- const liveItem1 = await storage.todos.get(item1.get('id')).resolved;
98
- (0, vitest_1.expect)(liveItem1).toBeTruthy();
99
- (0, common_1.assert)(!!liveItem1);
100
- const callback = vitest_1.vi.fn();
101
- liveItem1.subscribe('change', callback);
102
- liveItem1.set('done', true);
103
- liveItem1.set('content', 'item 1 updated');
104
- await waitForStoragePropagation(callback);
105
- // only 1 callback - changes are batched.
106
- // expect(callback).toBeCalledTimes(1); // FIXME: called twice, once for immediate in-memory change and once after propagation. can this be 1?
107
- (0, vitest_1.expect)(liveItem1.getSnapshot()).toEqual({
108
- id: liveItem1.get('id'),
109
- content: 'item 1 updated',
110
- done: true,
111
- tags: [],
112
- category: 'general',
113
- attachments: [],
114
- });
115
- const callbackDeep = vitest_1.vi.fn();
116
- liveItem1.subscribe('changeDeep', callbackDeep);
117
- liveItem1.update({
118
- tags: ['tag 1', 'tag 2'],
119
- });
120
- await waitForStoragePropagation(callbackDeep);
121
- (0, vitest_1.expect)(liveItem1.getSnapshot().tags).toEqual(['tag 1', 'tag 2']);
122
- });
123
- (0, vitest_1.it)('should expose array mutators on nested arrays', async () => {
124
- const storage = await (0, testStorage_js_1.createTestStorage)();
125
- const item1 = await storage.todos.put({
126
- content: 'item 1',
127
- done: false,
128
- tags: [],
129
- category: 'general',
130
- attachments: [],
131
- });
132
- const callback = vitest_1.vi.fn(() => {
133
- var x;
134
- });
135
- item1.get('tags').subscribe('change', callback);
136
- item1.get('tags').push('tag 1');
137
- item1.get('tags').push('tag 2');
138
- item1.get('tags').push('tag 3');
139
- item1.get('tags').move(1, 2);
140
- // fields are immediately updated
141
- (0, vitest_1.expect)(item1.get('tags').get(0)).toEqual('tag 1');
142
- (0, vitest_1.expect)(item1.get('tags').get(1)).toEqual('tag 3');
143
- (0, vitest_1.expect)(item1.get('tags').get(2)).toEqual('tag 2');
144
- await waitForStoragePropagation(callback);
145
- (0, vitest_1.expect)(callback).toBeCalledTimes(4);
146
- (0, vitest_1.expect)(item1.getSnapshot()).toEqual({
147
- id: item1.get('id'),
148
- content: 'item 1',
149
- done: false,
150
- tags: ['tag 1', 'tag 3', 'tag 2'],
151
- category: 'general',
152
- attachments: [],
153
- });
154
- });
155
- (0, vitest_1.it)('should expose array accessors on nested arrays', async () => {
156
- const storage = await (0, testStorage_js_1.createTestStorage)();
157
- const item1 = await storage.todos.put({
158
- content: 'item 1',
159
- done: false,
160
- tags: ['tag 1', 'tag 2'],
161
- category: 'general',
162
- attachments: [
163
- {
164
- name: 'attachment 1',
165
- },
166
- ],
167
- });
168
- for (const attachment of item1.get('attachments')) {
169
- (0, vitest_1.expect)(attachment.get('name')).toBe('attachment 1');
170
- }
171
- let i = 0;
172
- for (const tag of item1.get('tags')) {
173
- (0, vitest_1.expect)(tag).toBe('tag ' + ++i);
174
- }
175
- (0, vitest_1.expect)(item1.get('tags').filter((tag) => tag === 'tag 1')).toEqual([
176
- 'tag 1',
177
- ]);
178
- item1.get('attachments').push({
179
- name: 'attachment 2',
180
- });
181
- (0, vitest_1.expect)(item1.get('attachments').getSnapshot()).toEqual([
182
- { name: 'attachment 1', test: 1 },
183
- { name: 'attachment 2', test: 1 },
184
- ]);
185
- });
186
- (0, vitest_1.it)('should provide a reasonable way to interact with unknown data', async () => {
187
- /**
188
- * 'any' field types should basically just stop type checking, but still
189
- * provide full reactive entity access for nested data.
190
- */
191
- const storage = await (0, testStorage_js_1.createTestStorage)();
192
- const item1 = await storage.weirds.put({
193
- weird: {
194
- foo: 'bar',
195
- baz: [
196
- {
197
- corge: 3,
198
- },
199
- ],
200
- },
201
- map: {},
202
- objectMap: {},
203
- });
204
- (0, vitest_1.expect)(item1.get('weird').get('foo')).toBe('bar');
205
- (0, vitest_1.expect)(item1.get('weird').get('baz').get(0).get('corge')).toBe(3);
206
- (0, vitest_1.expect)(item1.get('weird').getSnapshot()).toEqual({
207
- foo: 'bar',
208
- baz: [{ corge: 3 }],
209
- });
210
- item1.get('weird').get('baz').push({ corge: 4 });
211
- (0, vitest_1.expect)(item1.get('weird').get('baz').getSnapshot()).toEqual([
212
- { corge: 3 },
213
- { corge: 4 },
214
- ]);
215
- });
216
- (0, vitest_1.it)('should provide access and updates for map-type fields', async () => {
217
- const storage = await (0, testStorage_js_1.createTestStorage)();
218
- const item1 = await storage.weirds.put({
219
- weird: null,
220
- map: {
221
- foo: 'bar',
222
- baz: 'qux',
223
- },
224
- objectMap: {
225
- foo: {
226
- content: 'bar',
227
- },
228
- },
229
- });
230
- (0, vitest_1.expect)(item1.get('map').get('foo')).toBe('bar');
231
- (0, vitest_1.expect)(item1.get('map').get('baz')).toBe('qux');
232
- (0, vitest_1.expect)(item1.get('map').getSnapshot()).toEqual({
233
- foo: 'bar',
234
- baz: 'qux',
235
- });
236
- (0, vitest_1.expect)(item1.get('objectMap').get('foo').get('content')).toBe('bar');
237
- (0, vitest_1.expect)(item1.get('objectMap').get('baz')).toBe(undefined);
238
- item1.get('objectMap').set('baz', { content: 'qux' });
239
- (0, vitest_1.expect)(item1.get('objectMap').get('baz').get('content')).toBe('qux');
240
- });
241
- (0, vitest_1.it)('should merge .update fields and not discard undefined ones', async () => {
242
- const storage = await (0, testStorage_js_1.createTestStorage)();
243
- const item1 = await storage.weirds.put({
244
- weird: null,
245
- map: {
246
- foo: 'bar',
247
- baz: 'qux',
248
- },
249
- objectMap: {
250
- foo: {
251
- content: 'bar',
252
- },
253
- },
254
- });
255
- item1.update({
256
- weird: 'foo',
257
- });
258
- (0, vitest_1.expect)(item1.get('weird')).toBe('foo');
259
- (0, vitest_1.expect)(item1.get('map').get('foo')).toBe('bar');
260
- item1.update({
261
- weird: undefined,
262
- });
263
- (0, vitest_1.expect)(item1.get('weird')).toBe('foo');
264
- });
265
- (0, vitest_1.it)('should delete undefined fields in .update if merge is false', async () => {
266
- const storage = await (0, testStorage_js_1.createTestStorage)();
267
- const item1 = await storage.weirds.put({
268
- weird: {
269
- bar: 2,
270
- qux: 3,
271
- },
272
- map: {
273
- foo: 'bar',
274
- baz: 'qux',
275
- },
276
- objectMap: {
277
- foo: {
278
- content: 'bar',
279
- },
280
- },
281
- });
282
- item1.get('weird').update({
283
- bar: 1,
284
- }, {
285
- merge: false,
286
- });
287
- const weird = item1.get('weird');
288
- (0, vitest_1.expect)(weird.getSnapshot()).toMatchInlineSnapshot(`
289
- {
290
- "bar": 1,
291
- }
292
- `);
293
- });
294
- (0, vitest_1.it)('should not allow merge: false in strict schema field updates', async () => {
295
- const storage = await (0, testStorage_js_1.createTestStorage)();
296
- const item1 = await storage.todos.put({
297
- content: 'item 1',
298
- done: false,
299
- tags: [],
300
- category: 'general',
301
- attachments: [],
302
- });
303
- (0, vitest_1.expect)(() => {
304
- item1.update({ content: 'bar' }, { merge: false });
305
- }).toThrowErrorMatchingInlineSnapshot(`[Error: Cannot use .update without merge if the field has a strict schema type. merge: false is only available on "any" or "map" types.]`);
306
- });
307
- (0, vitest_1.it)('should apply defaults to created sub-objects in .update', async () => {
308
- const storage = await (0, testStorage_js_1.createTestStorage)();
309
- const item1 = await storage.todos.put({
310
- content: 'item 1',
311
- done: false,
312
- tags: [],
313
- category: 'general',
314
- attachments: [],
315
- });
316
- item1.update({
317
- attachments: [
318
- {
319
- name: 'attachment 1',
320
- },
321
- ],
322
- });
323
- (0, vitest_1.expect)(item1.get('attachments').get(0).get('test')).toBe(1);
324
- });
325
- (0, vitest_1.it)('should remove items from list when .delete is called', async () => {
326
- const storage = await (0, testStorage_js_1.createTestStorage)();
327
- const item1 = await storage.todos.put({
328
- content: 'item 1',
329
- done: false,
330
- tags: [],
331
- category: 'general',
332
- attachments: [],
333
- });
334
- item1.get('attachments').push({
335
- name: 'attachment 1',
336
- });
337
- item1.get('attachments').push({
338
- name: 'attachment 2',
339
- });
340
- item1.get('attachments').push({
341
- name: 'attachment 3',
342
- });
343
- item1.get('attachments').delete(1);
344
- (0, vitest_1.expect)(item1.get('attachments').length).toBe(2);
345
- (0, vitest_1.expect)(item1.get('attachments').get(0).get('name')).toBe('attachment 1');
346
- (0, vitest_1.expect)(item1.get('attachments').get(1).get('name')).toBe('attachment 3');
347
- // should work on lists which are not field-validated
348
- const item2 = await storage.weirds.put({
349
- weird: ['foo', 'bar', 'baz'],
350
- });
351
- item2.get('weird').delete(1);
352
- (0, vitest_1.expect)(item2.get('weird').length).toBe(2);
353
- (0, vitest_1.expect)(item2.get('weird').get(0)).toBe('foo');
354
- (0, vitest_1.expect)(item2.get('weird').get(1)).toBe('baz');
355
- });
356
- (0, vitest_1.it)('should expose updatedAt', async () => {
357
- const storage = await (0, testStorage_js_1.createTestStorage)({
358
- // log: console.log,
359
- });
360
- let time = new Date();
361
- vitest_1.vitest.setSystemTime(time);
362
- const item1 = await storage.todos.put({
363
- content: 'item 1',
364
- done: false,
365
- tags: [],
366
- category: 'general',
367
- attachments: [],
368
- });
369
- (0, vitest_1.expect)(item1.updatedAt).toEqual(time.getTime());
370
- time = new Date(time.getTime() + 1000);
371
- vitest_1.vitest.setSystemTime(time);
372
- item1.update({
373
- content: 'item 1 updated',
374
- });
375
- (0, vitest_1.expect)(item1.updatedAt).toEqual(time.getTime());
376
- // works on nested fields
377
- time = new Date(time.getTime() + 1000);
378
- vitest_1.vitest.setSystemTime(time);
379
- item1.get('attachments').push({
380
- name: 'attachment 1',
381
- });
382
- (0, vitest_1.expect)(item1.deepUpdatedAt).toEqual(time.getTime());
383
- time = new Date(time.getTime() + 1000);
384
- vitest_1.vitest.setSystemTime(time);
385
- item1.get('attachments').get(0).set('name', 'attachment 1 updated');
386
- (0, vitest_1.expect)(item1.deepUpdatedAt).toEqual(time.getTime());
387
- // but other items have their own updatedAt
388
- (0, vitest_1.expect)(item1.get('tags').deepUpdatedAt).not.toEqual(time.getTime());
389
- });
390
- (0, vitest_1.it)('should allow creating a new document from another document snapshot', async () => {
391
- const storage = await (0, testStorage_js_1.createTestStorage)();
392
- const item1 = await storage.todos.put({
393
- content: 'item 1',
394
- done: false,
395
- tags: ['tag 1'],
396
- category: 'general',
397
- attachments: [
398
- {
399
- name: 'attachment 1',
400
- },
401
- ],
402
- });
403
- const _a = item1.getSnapshot(), { id } = _a, snapshot = __rest(_a, ["id"]);
404
- const item2 = await storage.todos.put(snapshot);
405
- (0, vitest_1.expect)(item2.get('tags').length).toBe(1);
406
- (0, vitest_1.expect)(item2.get('attachments').length).toBe(1);
407
- item2.get('attachments').get(0).set('name', 'attachment 2');
408
- (0, vitest_1.expect)(item1.get('attachments').get(0).get('name')).toBe('attachment 1');
409
- });
410
- (0, vitest_1.it)('should not allow modifying the primary key', async () => {
411
- const storage = await (0, testStorage_js_1.createTestStorage)();
412
- const item1 = await storage.todos.put({
413
- content: 'item 1',
414
- done: false,
415
- tags: ['tag 1'],
416
- category: 'general',
417
- attachments: [
418
- {
419
- name: 'attachment 1',
420
- },
421
- ],
422
- });
423
- (0, vitest_1.expect)(() => {
424
- item1.set('id', 'foo');
425
- }).toThrowErrorMatchingInlineSnapshot(`[Error: Cannot set readonly key id]`);
426
- });
427
- (0, vitest_1.it)('should properly handle pushing to a list of files', async () => {
428
- const storage = await (0, testStorage_js_1.createTestStorage)();
429
- const weird = await storage.weirds.put({});
430
- const fileList = weird.get('fileList');
431
- fileList.subscribe('change', vitest_1.vi.fn());
432
- function createTestFile() {
433
- return new window.File(['d(⌐□_□)b'], 'test.txt', {
434
- type: 'text/plain',
435
- });
436
- }
437
- fileList.push(createTestFile());
438
- // fileList.get(0).subscribe('change', vi.fn());
439
- fileList.push(createTestFile());
440
- (0, vitest_1.expect)(fileList.get(0)).toBeInstanceOf(index_js_1.EntityFile);
441
- (0, vitest_1.expect)(fileList.get(1)).toBeInstanceOf(index_js_1.EntityFile);
442
- });
443
- (0, vitest_1.it)('should move files by reference in a list', async () => {
444
- const storage = await (0, testStorage_js_1.createTestStorage)();
445
- const weird = await storage.weirds.put({});
446
- const fileList = weird.get('fileList');
447
- fileList.subscribe('change', vitest_1.vi.fn());
448
- function createTestFile() {
449
- return new window.File(['d(⌐□_□)b'], 'test.txt', {
450
- type: 'text/plain',
451
- });
452
- }
453
- const file1 = createTestFile();
454
- const file2 = createTestFile();
455
- const file3 = createTestFile();
456
- fileList.push(file1);
457
- fileList.push(file2);
458
- fileList.push(file3);
459
- const file1Ref = fileList.get(0);
460
- const file2Ref = fileList.get(1);
461
- const file3Ref = fileList.get(2);
462
- fileList.moveItem(file1Ref, 2);
463
- (0, vitest_1.expect)(fileList.get(0)).toBe(file2Ref);
464
- (0, vitest_1.expect)(fileList.get(1)).toBe(file3Ref);
465
- (0, vitest_1.expect)(fileList.get(2)).toBe(file1Ref);
466
- });
467
- });
468
- //# sourceMappingURL=documents.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"documents.test.js","sourceRoot":"","sources":["../../../src/__tests__/documents.test.ts"],"names":[],"mappings":"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"}