@verdant-web/store 2.8.5 → 3.0.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 (278) hide show
  1. package/dist/bundle/index.js +9 -10
  2. package/dist/bundle/index.js.map +4 -4
  3. package/dist/cjs/DocumentManager.d.ts +1 -1
  4. package/dist/cjs/DocumentManager.js +1 -1
  5. package/dist/cjs/DocumentManager.js.map +1 -1
  6. package/dist/cjs/IDBService.d.ts +28 -7
  7. package/dist/cjs/IDBService.js +50 -13
  8. package/dist/cjs/IDBService.js.map +1 -1
  9. package/dist/cjs/UndoHistory.d.ts +1 -1
  10. package/dist/cjs/UndoHistory.js +6 -2
  11. package/dist/cjs/UndoHistory.js.map +1 -1
  12. package/dist/cjs/__tests__/batching.test.js +3 -1
  13. package/dist/cjs/__tests__/batching.test.js.map +1 -1
  14. package/dist/cjs/__tests__/documents.test.js +37 -6
  15. package/dist/cjs/__tests__/documents.test.js.map +1 -1
  16. package/dist/cjs/__tests__/fixtures/testStorage.d.ts +2 -2
  17. package/dist/cjs/__tests__/fixtures/testStorage.js +2 -1
  18. package/dist/cjs/__tests__/fixtures/testStorage.js.map +1 -1
  19. package/dist/cjs/__tests__/legacyOids.test.js +50 -17
  20. package/dist/cjs/__tests__/legacyOids.test.js.map +1 -1
  21. package/dist/cjs/__tests__/mutations.test.js +9 -3
  22. package/dist/cjs/__tests__/mutations.test.js.map +1 -1
  23. package/dist/cjs/__tests__/queries.test.js +6 -2
  24. package/dist/cjs/__tests__/queries.test.js.map +1 -1
  25. package/dist/cjs/__tests__/setup/indexedDB.d.ts +1 -1
  26. package/dist/cjs/__tests__/setup/indexedDB.js +8 -1
  27. package/dist/cjs/__tests__/setup/indexedDB.js.map +1 -1
  28. package/dist/cjs/__tests__/undo.test.js +16 -9
  29. package/dist/cjs/__tests__/undo.test.js.map +1 -1
  30. package/dist/cjs/client/Client.d.ts +1 -1
  31. package/dist/cjs/client/Client.js +7 -3
  32. package/dist/cjs/client/Client.js.map +1 -1
  33. package/dist/cjs/client/ClientDescriptor.js +21 -6
  34. package/dist/cjs/client/ClientDescriptor.js.map +1 -1
  35. package/dist/cjs/context.d.ts +10 -1
  36. package/dist/cjs/entities/Entity.d.ts +106 -178
  37. package/dist/cjs/entities/Entity.js +558 -376
  38. package/dist/cjs/entities/Entity.js.map +1 -1
  39. package/dist/cjs/entities/Entity.test.d.ts +1 -0
  40. package/dist/cjs/entities/Entity.test.js +194 -0
  41. package/dist/cjs/entities/Entity.test.js.map +1 -0
  42. package/dist/cjs/entities/EntityCache.d.ts +15 -0
  43. package/dist/cjs/entities/EntityCache.js +39 -0
  44. package/dist/cjs/entities/EntityCache.js.map +1 -0
  45. package/dist/cjs/entities/EntityMetadata.d.ts +68 -0
  46. package/dist/cjs/entities/EntityMetadata.js +261 -0
  47. package/dist/cjs/entities/EntityMetadata.js.map +1 -0
  48. package/dist/cjs/entities/EntityStore.d.ts +63 -68
  49. package/dist/cjs/entities/EntityStore.js +294 -438
  50. package/dist/cjs/entities/EntityStore.js.map +1 -1
  51. package/dist/cjs/entities/OperationBatcher.d.ts +52 -0
  52. package/dist/cjs/entities/OperationBatcher.js +165 -0
  53. package/dist/cjs/entities/OperationBatcher.js.map +1 -0
  54. package/dist/cjs/entities/types.d.ts +84 -0
  55. package/dist/cjs/entities/types.js +3 -0
  56. package/dist/cjs/entities/types.js.map +1 -0
  57. package/dist/cjs/files/EntityFile.d.ts +5 -2
  58. package/dist/cjs/files/EntityFile.js +8 -4
  59. package/dist/cjs/files/EntityFile.js.map +1 -1
  60. package/dist/cjs/files/FileManager.d.ts +3 -1
  61. package/dist/cjs/files/FileManager.js +5 -3
  62. package/dist/cjs/files/FileManager.js.map +1 -1
  63. package/dist/cjs/files/FileStorage.js +7 -7
  64. package/dist/cjs/files/FileStorage.js.map +1 -1
  65. package/dist/cjs/files/utils.d.ts +2 -0
  66. package/dist/cjs/files/utils.js +5 -2
  67. package/dist/cjs/files/utils.js.map +1 -1
  68. package/dist/cjs/idb.d.ts +2 -0
  69. package/dist/cjs/idb.js +50 -4
  70. package/dist/cjs/idb.js.map +1 -1
  71. package/dist/cjs/index.d.ts +1 -1
  72. package/dist/cjs/metadata/AckInfoStore.js +1 -1
  73. package/dist/cjs/metadata/AckInfoStore.js.map +1 -1
  74. package/dist/cjs/metadata/BaselinesStore.d.ts +4 -1
  75. package/dist/cjs/metadata/BaselinesStore.js +19 -10
  76. package/dist/cjs/metadata/BaselinesStore.js.map +1 -1
  77. package/dist/cjs/metadata/LocalReplicaStore.d.ts +1 -1
  78. package/dist/cjs/metadata/LocalReplicaStore.js +11 -5
  79. package/dist/cjs/metadata/LocalReplicaStore.js.map +1 -1
  80. package/dist/cjs/metadata/Metadata.d.ts +26 -5
  81. package/dist/cjs/metadata/Metadata.js +55 -18
  82. package/dist/cjs/metadata/Metadata.js.map +1 -1
  83. package/dist/cjs/metadata/OperationsStore.d.ts +3 -0
  84. package/dist/cjs/metadata/OperationsStore.js +35 -15
  85. package/dist/cjs/metadata/OperationsStore.js.map +1 -1
  86. package/dist/cjs/migration/openDatabase.js +31 -10
  87. package/dist/cjs/migration/openDatabase.js.map +1 -1
  88. package/dist/cjs/queries/BaseQuery.js +13 -1
  89. package/dist/cjs/queries/BaseQuery.js.map +1 -1
  90. package/dist/cjs/queries/CollectionQueries.js +1 -1
  91. package/dist/cjs/queries/CollectionQueries.js.map +1 -1
  92. package/dist/cjs/queries/FindAllQuery.js +1 -0
  93. package/dist/cjs/queries/FindAllQuery.js.map +1 -1
  94. package/dist/cjs/queries/QueryCache.d.ts +1 -0
  95. package/dist/cjs/queries/QueryCache.js +4 -0
  96. package/dist/cjs/queries/QueryCache.js.map +1 -1
  97. package/dist/cjs/queries/QueryableStorage.d.ts +20 -0
  98. package/dist/cjs/queries/QueryableStorage.js +84 -0
  99. package/dist/cjs/queries/QueryableStorage.js.map +1 -0
  100. package/dist/cjs/queries/dbQueries.js +13 -3
  101. package/dist/cjs/queries/dbQueries.js.map +1 -1
  102. package/dist/cjs/sync/FileSync.d.ts +1 -0
  103. package/dist/cjs/sync/FileSync.js +1 -0
  104. package/dist/cjs/sync/FileSync.js.map +1 -1
  105. package/dist/cjs/sync/PushPullSync.d.ts +2 -1
  106. package/dist/cjs/sync/PushPullSync.js +7 -1
  107. package/dist/cjs/sync/PushPullSync.js.map +1 -1
  108. package/dist/cjs/sync/Sync.d.ts +6 -3
  109. package/dist/cjs/sync/Sync.js +9 -4
  110. package/dist/cjs/sync/Sync.js.map +1 -1
  111. package/dist/cjs/sync/WebSocketSync.d.ts +4 -1
  112. package/dist/cjs/sync/WebSocketSync.js +41 -11
  113. package/dist/cjs/sync/WebSocketSync.js.map +1 -1
  114. package/dist/esm/DocumentManager.d.ts +1 -1
  115. package/dist/esm/DocumentManager.js +1 -1
  116. package/dist/esm/DocumentManager.js.map +1 -1
  117. package/dist/esm/IDBService.d.ts +28 -7
  118. package/dist/esm/IDBService.js +51 -14
  119. package/dist/esm/IDBService.js.map +1 -1
  120. package/dist/esm/UndoHistory.d.ts +1 -1
  121. package/dist/esm/UndoHistory.js +6 -2
  122. package/dist/esm/UndoHistory.js.map +1 -1
  123. package/dist/esm/__tests__/batching.test.js +3 -1
  124. package/dist/esm/__tests__/batching.test.js.map +1 -1
  125. package/dist/esm/__tests__/documents.test.js +37 -6
  126. package/dist/esm/__tests__/documents.test.js.map +1 -1
  127. package/dist/esm/__tests__/fixtures/testStorage.d.ts +2 -2
  128. package/dist/esm/__tests__/fixtures/testStorage.js +2 -1
  129. package/dist/esm/__tests__/fixtures/testStorage.js.map +1 -1
  130. package/dist/esm/__tests__/legacyOids.test.js +50 -17
  131. package/dist/esm/__tests__/legacyOids.test.js.map +1 -1
  132. package/dist/esm/__tests__/mutations.test.js +9 -3
  133. package/dist/esm/__tests__/mutations.test.js.map +1 -1
  134. package/dist/esm/__tests__/queries.test.js +6 -2
  135. package/dist/esm/__tests__/queries.test.js.map +1 -1
  136. package/dist/esm/__tests__/setup/indexedDB.d.ts +1 -1
  137. package/dist/esm/__tests__/setup/indexedDB.js +8 -1
  138. package/dist/esm/__tests__/setup/indexedDB.js.map +1 -1
  139. package/dist/esm/__tests__/undo.test.js +16 -9
  140. package/dist/esm/__tests__/undo.test.js.map +1 -1
  141. package/dist/esm/client/Client.d.ts +1 -1
  142. package/dist/esm/client/Client.js +7 -3
  143. package/dist/esm/client/Client.js.map +1 -1
  144. package/dist/esm/client/ClientDescriptor.js +21 -6
  145. package/dist/esm/client/ClientDescriptor.js.map +1 -1
  146. package/dist/esm/context.d.ts +10 -1
  147. package/dist/esm/entities/Entity.d.ts +106 -178
  148. package/dist/esm/entities/Entity.js +559 -376
  149. package/dist/esm/entities/Entity.js.map +1 -1
  150. package/dist/esm/entities/Entity.test.d.ts +1 -0
  151. package/dist/esm/entities/Entity.test.js +192 -0
  152. package/dist/esm/entities/Entity.test.js.map +1 -0
  153. package/dist/esm/entities/EntityCache.d.ts +15 -0
  154. package/dist/esm/entities/EntityCache.js +35 -0
  155. package/dist/esm/entities/EntityCache.js.map +1 -0
  156. package/dist/esm/entities/EntityMetadata.d.ts +68 -0
  157. package/dist/esm/entities/EntityMetadata.js +256 -0
  158. package/dist/esm/entities/EntityMetadata.js.map +1 -0
  159. package/dist/esm/entities/EntityStore.d.ts +63 -68
  160. package/dist/esm/entities/EntityStore.js +295 -439
  161. package/dist/esm/entities/EntityStore.js.map +1 -1
  162. package/dist/esm/entities/OperationBatcher.d.ts +52 -0
  163. package/dist/esm/entities/OperationBatcher.js +161 -0
  164. package/dist/esm/entities/OperationBatcher.js.map +1 -0
  165. package/dist/esm/entities/types.d.ts +84 -0
  166. package/dist/esm/entities/types.js +2 -0
  167. package/dist/esm/entities/types.js.map +1 -0
  168. package/dist/esm/files/EntityFile.d.ts +5 -2
  169. package/dist/esm/files/EntityFile.js +8 -4
  170. package/dist/esm/files/EntityFile.js.map +1 -1
  171. package/dist/esm/files/FileManager.d.ts +3 -1
  172. package/dist/esm/files/FileManager.js +5 -3
  173. package/dist/esm/files/FileManager.js.map +1 -1
  174. package/dist/esm/files/FileStorage.js +7 -7
  175. package/dist/esm/files/FileStorage.js.map +1 -1
  176. package/dist/esm/files/utils.d.ts +2 -0
  177. package/dist/esm/files/utils.js +4 -2
  178. package/dist/esm/files/utils.js.map +1 -1
  179. package/dist/esm/idb.d.ts +2 -0
  180. package/dist/esm/idb.js +47 -3
  181. package/dist/esm/idb.js.map +1 -1
  182. package/dist/esm/index.d.ts +1 -1
  183. package/dist/esm/metadata/AckInfoStore.js +1 -1
  184. package/dist/esm/metadata/AckInfoStore.js.map +1 -1
  185. package/dist/esm/metadata/BaselinesStore.d.ts +4 -1
  186. package/dist/esm/metadata/BaselinesStore.js +19 -10
  187. package/dist/esm/metadata/BaselinesStore.js.map +1 -1
  188. package/dist/esm/metadata/LocalReplicaStore.d.ts +1 -1
  189. package/dist/esm/metadata/LocalReplicaStore.js +11 -5
  190. package/dist/esm/metadata/LocalReplicaStore.js.map +1 -1
  191. package/dist/esm/metadata/Metadata.d.ts +26 -5
  192. package/dist/esm/metadata/Metadata.js +56 -19
  193. package/dist/esm/metadata/Metadata.js.map +1 -1
  194. package/dist/esm/metadata/OperationsStore.d.ts +3 -0
  195. package/dist/esm/metadata/OperationsStore.js +35 -15
  196. package/dist/esm/metadata/OperationsStore.js.map +1 -1
  197. package/dist/esm/migration/openDatabase.js +32 -11
  198. package/dist/esm/migration/openDatabase.js.map +1 -1
  199. package/dist/esm/queries/BaseQuery.js +13 -1
  200. package/dist/esm/queries/BaseQuery.js.map +1 -1
  201. package/dist/esm/queries/CollectionQueries.js +1 -1
  202. package/dist/esm/queries/CollectionQueries.js.map +1 -1
  203. package/dist/esm/queries/FindAllQuery.js +1 -0
  204. package/dist/esm/queries/FindAllQuery.js.map +1 -1
  205. package/dist/esm/queries/QueryCache.d.ts +1 -0
  206. package/dist/esm/queries/QueryCache.js +4 -0
  207. package/dist/esm/queries/QueryCache.js.map +1 -1
  208. package/dist/esm/queries/QueryableStorage.d.ts +20 -0
  209. package/dist/esm/queries/QueryableStorage.js +80 -0
  210. package/dist/esm/queries/QueryableStorage.js.map +1 -0
  211. package/dist/esm/queries/dbQueries.js +13 -3
  212. package/dist/esm/queries/dbQueries.js.map +1 -1
  213. package/dist/esm/sync/FileSync.d.ts +1 -0
  214. package/dist/esm/sync/FileSync.js +1 -0
  215. package/dist/esm/sync/FileSync.js.map +1 -1
  216. package/dist/esm/sync/PushPullSync.d.ts +2 -1
  217. package/dist/esm/sync/PushPullSync.js +7 -1
  218. package/dist/esm/sync/PushPullSync.js.map +1 -1
  219. package/dist/esm/sync/Sync.d.ts +6 -3
  220. package/dist/esm/sync/Sync.js +9 -4
  221. package/dist/esm/sync/Sync.js.map +1 -1
  222. package/dist/esm/sync/WebSocketSync.d.ts +4 -1
  223. package/dist/esm/sync/WebSocketSync.js +41 -11
  224. package/dist/esm/sync/WebSocketSync.js.map +1 -1
  225. package/dist/tsconfig-cjs.tsbuildinfo +1 -1
  226. package/dist/tsconfig.tsbuildinfo +1 -1
  227. package/package.json +8 -7
  228. package/src/DocumentManager.ts +1 -1
  229. package/src/IDBService.ts +78 -17
  230. package/src/UndoHistory.ts +5 -3
  231. package/src/__tests__/batching.test.ts +5 -2
  232. package/src/__tests__/documents.test.ts +44 -6
  233. package/src/__tests__/fixtures/testStorage.ts +3 -0
  234. package/src/__tests__/legacyOids.test.ts +53 -17
  235. package/src/__tests__/mutations.test.ts +9 -3
  236. package/src/__tests__/queries.test.ts +6 -2
  237. package/src/__tests__/setup/indexedDB.ts +8 -1
  238. package/src/__tests__/undo.test.ts +17 -9
  239. package/src/client/Client.ts +7 -3
  240. package/src/client/ClientDescriptor.ts +24 -8
  241. package/src/context.ts +16 -1
  242. package/src/entities/Entity.test.ts +218 -0
  243. package/src/entities/Entity.ts +696 -616
  244. package/src/entities/EntityCache.ts +41 -0
  245. package/src/entities/EntityMetadata.ts +364 -0
  246. package/src/entities/EntityStore.ts +384 -621
  247. package/src/entities/OperationBatcher.ts +251 -0
  248. package/src/entities/types.ts +154 -0
  249. package/src/files/EntityFile.ts +9 -4
  250. package/src/files/FileManager.ts +5 -3
  251. package/src/files/FileStorage.ts +7 -13
  252. package/src/files/utils.ts +6 -2
  253. package/src/idb.ts +51 -3
  254. package/src/index.ts +1 -1
  255. package/src/metadata/AckInfoStore.ts +1 -1
  256. package/src/metadata/BaselinesStore.ts +16 -24
  257. package/src/metadata/LocalReplicaStore.ts +13 -6
  258. package/src/metadata/Metadata.ts +109 -24
  259. package/src/metadata/OperationsStore.ts +37 -16
  260. package/src/migration/openDatabase.ts +32 -10
  261. package/src/queries/BaseQuery.ts +14 -1
  262. package/src/queries/CollectionQueries.ts +1 -1
  263. package/src/queries/FindAllQuery.ts +4 -0
  264. package/src/queries/QueryCache.ts +5 -0
  265. package/src/queries/QueryableStorage.ts +107 -0
  266. package/src/queries/dbQueries.ts +10 -3
  267. package/src/sync/FileSync.ts +2 -0
  268. package/src/sync/PushPullSync.ts +8 -1
  269. package/src/sync/Sync.ts +14 -6
  270. package/src/sync/WebSocketSync.ts +47 -10
  271. package/dist/cjs/entities/DocumentFamiliyCache.d.ts +0 -96
  272. package/dist/cjs/entities/DocumentFamiliyCache.js +0 -287
  273. package/dist/cjs/entities/DocumentFamiliyCache.js.map +0 -1
  274. package/dist/esm/entities/DocumentFamiliyCache.d.ts +0 -96
  275. package/dist/esm/entities/DocumentFamiliyCache.js +0 -283
  276. package/dist/esm/entities/DocumentFamiliyCache.js.map +0 -1
  277. package/src/entities/DocumentFamiliyCache.ts +0 -426
  278. package/src/entities/design.tldr +0 -808
@@ -1 +1 @@
1
- {"version":3,"file":"EntityStore.js","sourceRoot":"","sources":["../../../src/entities/EntityStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityStore.js","sourceRoot":"","sources":["../../../src/entities/EntityStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import { Operation } from '@verdant-web/common';
2
+ import { Metadata } from '../metadata/Metadata.js';
3
+ import { Context } from '../context.js';
4
+ import type { EntityStore } from './EntityStore.js';
5
+ import { Entity } from './Entity.js';
6
+ export interface OperationBatch {
7
+ run: (fn: () => void) => this;
8
+ /** @deprecated - use commit() */
9
+ flush: () => Promise<void>;
10
+ commit: () => Promise<void>;
11
+ discard: () => void;
12
+ }
13
+ export declare class OperationBatcher {
14
+ private batcher;
15
+ private currentBatchKey;
16
+ private defaultBatchTimeout;
17
+ private meta;
18
+ private ctx;
19
+ private entities;
20
+ constructor({ batchTimeout, meta, ctx, entities, }: {
21
+ batchTimeout?: number;
22
+ meta: Metadata;
23
+ ctx: Context;
24
+ entities: EntityStore;
25
+ });
26
+ get isDefaultBatch(): boolean;
27
+ private flushOperations;
28
+ /**
29
+ * Immediately flushes operations to storage / sync.
30
+ * Providing source to second arg skips hydrating related
31
+ * Entity from storage, which is useful when that Entity
32
+ * isn't in storage (i.e. still creating) or just to speed
33
+ * up the commit.
34
+ */
35
+ commitOperations: (operations: Operation[], meta: {
36
+ undoable?: boolean;
37
+ source?: Entity;
38
+ }) => Promise<void>;
39
+ /**
40
+ * Adds operations to the active batch.
41
+ */
42
+ addOperations: (operations: Operation[]) => void;
43
+ batch: ({ undoable, batchName, max, timeout, }?: {
44
+ undoable?: boolean | undefined;
45
+ batchName?: string | undefined;
46
+ max?: number | null | undefined;
47
+ timeout?: number | null | undefined;
48
+ }) => OperationBatch;
49
+ flushAll: () => Promise<any[]>;
50
+ private createUndo;
51
+ private getInverseOperations;
52
+ }
@@ -0,0 +1,161 @@
1
+ import { Batcher, generateId, getOidRoot, getUndoOperations, groupPatchesByOid, } from '@verdant-web/common';
2
+ const DEFAULT_BATCH_KEY = '@@default';
3
+ export class OperationBatcher {
4
+ constructor({ batchTimeout = 200, meta, ctx, entities, }) {
5
+ this.currentBatchKey = DEFAULT_BATCH_KEY;
6
+ this.flushOperations = async (operations, batchKey, meta) => {
7
+ this.ctx.log('debug', 'Flushing', operations.length, 'operations from batch', batchKey, 'to storage / sync');
8
+ if (!operations.length)
9
+ return;
10
+ // rewrite timestamps of all operations to now - this preserves
11
+ // the linear history of operations which are sent to the server.
12
+ // even if multiple batches are spun up in parallel and flushed
13
+ // after delay, the final operations in each one should reflect
14
+ // when the batch flushed, not when the changes were made.
15
+ // This also corresponds to user-observed behavior, since unconfirmed
16
+ // operations are applied universally after confirmed operations locally,
17
+ // so even operations which were made before a remote operation but
18
+ // have not been confirmed yet will appear to come after the remote one
19
+ // despite the provisional timestamp being earlier
20
+ // NOTE: this MUST be mutating the original operation object! this timestamp
21
+ // also serves as a unique ID for deduplication later.
22
+ for (const op of operations) {
23
+ op.timestamp = this.meta.now;
24
+ }
25
+ await this.commitOperations(operations, meta);
26
+ };
27
+ /**
28
+ * Immediately flushes operations to storage / sync.
29
+ * Providing source to second arg skips hydrating related
30
+ * Entity from storage, which is useful when that Entity
31
+ * isn't in storage (i.e. still creating) or just to speed
32
+ * up the commit.
33
+ */
34
+ this.commitOperations = async (operations, meta) => {
35
+ if (!operations.length)
36
+ return;
37
+ // now is the time to decide on what the undo operations will
38
+ // look like, based on the confirmed view of the related entities.
39
+ if (meta.undoable) {
40
+ const undo = await this.createUndo({
41
+ ops: operations,
42
+ source: meta.source,
43
+ });
44
+ if (undo)
45
+ this.ctx.undoHistory.addUndo(undo);
46
+ }
47
+ // ship it out to EntityStore to compute final snapshots
48
+ // write to storage and refresh entities and queries
49
+ await this.entities.addData({
50
+ operations,
51
+ baselines: [],
52
+ isLocal: true,
53
+ });
54
+ };
55
+ /**
56
+ * Adds operations to the active batch.
57
+ */
58
+ this.addOperations = (operations) => {
59
+ if (!operations.length)
60
+ return;
61
+ this.batcher.add({
62
+ key: this.currentBatchKey,
63
+ items: operations,
64
+ });
65
+ this.ctx.log(`debug`, 'added', operations.length, 'ops to batch', this.currentBatchKey, ', size = ', this.batcher.getSize(this.currentBatchKey));
66
+ };
67
+ this.batch = ({ undoable = true, batchName = generateId(), max = null, timeout = this.defaultBatchTimeout, } = {}) => {
68
+ const internalBatch = this.batcher.add({
69
+ key: batchName,
70
+ max,
71
+ timeout,
72
+ items: [],
73
+ userData: { undoable },
74
+ });
75
+ const externalApi = {
76
+ run: (fn) => {
77
+ // while the provided function runs, operations are forwarded
78
+ // to the new batch instead of default. this relies on the function
79
+ // being synchronous.
80
+ this.currentBatchKey = batchName;
81
+ fn();
82
+ this.currentBatchKey = DEFAULT_BATCH_KEY;
83
+ return externalApi;
84
+ },
85
+ commit: async () => {
86
+ // before running a batch, the default operations must be flushed
87
+ // this better preserves undo history behavior...
88
+ // if we left the default batch open while flushing a named batch,
89
+ // then the default batch would be flushed after the named batch,
90
+ // and the default batch could contain operations both prior and
91
+ // after the named batch. this would result in a confusing undo
92
+ // history where the first undo might reverse changes before and
93
+ // after a set of other changes.
94
+ await this.batcher.flush(DEFAULT_BATCH_KEY);
95
+ return internalBatch.flush();
96
+ },
97
+ flush: () => externalApi.commit(),
98
+ discard: () => {
99
+ this.batcher.discard(batchName);
100
+ },
101
+ };
102
+ return externalApi;
103
+ };
104
+ this.flushAll = () => Promise.all(this.batcher.flushAll());
105
+ this.createUndo = async (data) => {
106
+ // this can't be done on-demand because we rely on the current
107
+ // state of the entities to calculate the inverse operations.
108
+ const inverseOps = await this.getInverseOperations(data);
109
+ if (!inverseOps.length)
110
+ return null;
111
+ return async () => {
112
+ const redo = await this.createUndo({
113
+ ops: inverseOps,
114
+ source: data.source,
115
+ });
116
+ // set time to now for all undo operations, they're happening now.
117
+ for (const op of inverseOps) {
118
+ op.timestamp = this.meta.now;
119
+ }
120
+ await this.commitOperations(inverseOps,
121
+ // undos should not generate their own undo operations
122
+ // since they already calculate redo as the inverse.
123
+ { undoable: false });
124
+ return redo;
125
+ };
126
+ };
127
+ this.getInverseOperations = async ({ ops, source, }) => {
128
+ const grouped = groupPatchesByOid(ops);
129
+ const inverseOps = [];
130
+ const getNow = () => this.meta.now;
131
+ await Promise.all(Object.entries(grouped).map(async ([oid, patches]) => {
132
+ const entity = source !== null && source !== void 0 ? source : (await this.entities.hydrate(getOidRoot(oid)));
133
+ // TODO: this is getting the rebased baseline? how? are ops being submitted early?
134
+ const viewData = entity === null || entity === void 0 ? void 0 : entity.__getViewData__(oid, 'confirmed');
135
+ if (!viewData) {
136
+ this.ctx.log('warn', 'could not find entity', oid, 'for undo operation', ops);
137
+ return;
138
+ }
139
+ const inverse = getUndoOperations(oid, viewData.view, patches, getNow);
140
+ inverseOps.unshift(...inverse);
141
+ }));
142
+ return inverseOps;
143
+ };
144
+ this.meta = meta;
145
+ this.ctx = ctx;
146
+ this.entities = entities;
147
+ this.defaultBatchTimeout = batchTimeout;
148
+ this.batcher = new Batcher(this.flushOperations);
149
+ this.batcher.add({
150
+ key: DEFAULT_BATCH_KEY,
151
+ items: [],
152
+ max: 100,
153
+ timeout: batchTimeout,
154
+ userData: { undoable: true },
155
+ });
156
+ }
157
+ get isDefaultBatch() {
158
+ return this.currentBatchKey === DEFAULT_BATCH_KEY;
159
+ }
160
+ }
161
+ //# sourceMappingURL=OperationBatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OperationBatcher.js","sourceRoot":"","sources":["../../../src/entities/OperationBatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,OAAO,EAEP,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,iBAAiB,GACjB,MAAM,qBAAqB,CAAC;AAM7B,MAAM,iBAAiB,GAAG,WAAW,CAAC;AAUtC,MAAM,OAAO,gBAAgB;IAQ5B,YAAY,EACX,YAAY,GAAG,GAAG,EAClB,IAAI,EACJ,GAAG,EACH,QAAQ,GAMR;QAhBO,oBAAe,GAAG,iBAAiB,CAAC;QAqCpC,oBAAe,GAAG,KAAK,EAC9B,UAAuB,EACvB,QAAgB,EAChB,IAA4B,EAC3B,EAAE;YACH,IAAI,CAAC,GAAG,CAAC,GAAG,CACX,OAAO,EACP,UAAU,EACV,UAAU,CAAC,MAAM,EACjB,uBAAuB,EACvB,QAAQ,EACR,mBAAmB,CACnB,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,MAAM;gBAAE,OAAO;YAC/B,+DAA+D;YAC/D,iEAAiE;YACjE,+DAA+D;YAC/D,+DAA+D;YAC/D,0DAA0D;YAC1D,qEAAqE;YACrE,yEAAyE;YACzE,mEAAmE;YACnE,uEAAuE;YACvE,kDAAkD;YAClD,4EAA4E;YAC5E,sDAAsD;YACtD,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE;gBAC5B,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;aAC7B;YACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC;QAEF;;;;;;WAMG;QACH,qBAAgB,GAAG,KAAK,EACvB,UAAuB,EACvB,IAA6C,EAC5C,EAAE;YACH,IAAI,CAAC,UAAU,CAAC,MAAM;gBAAE,OAAO;YAC/B,6DAA6D;YAC7D,kEAAkE;YAClE,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAClB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC;oBAClC,GAAG,EAAE,UAAU;oBACf,MAAM,EAAE,IAAI,CAAC,MAAM;iBACnB,CAAC,CAAC;gBACH,IAAI,IAAI;oBAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aAC7C;YACD,wDAAwD;YACxD,oDAAoD;YACpD,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC3B,UAAU;gBACV,SAAS,EAAE,EAAE;gBACb,OAAO,EAAE,IAAI;aACb,CAAC,CAAC;QACJ,CAAC,CAAC;QAEF;;WAEG;QACH,kBAAa,GAAG,CAAC,UAAuB,EAAE,EAAE;YAC3C,IAAI,CAAC,UAAU,CAAC,MAAM;gBAAE,OAAO;YAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;gBAChB,GAAG,EAAE,IAAI,CAAC,eAAe;gBACzB,KAAK,EAAE,UAAU;aACjB,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,GAAG,CACX,OAAO,EACP,OAAO,EACP,UAAU,CAAC,MAAM,EACjB,cAAc,EACd,IAAI,CAAC,eAAe,EACpB,WAAW,EACX,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAC1C,CAAC;QACH,CAAC,CAAC;QAEF,UAAK,GAAG,CAAC,EACR,QAAQ,GAAG,IAAI,EACf,SAAS,GAAG,UAAU,EAAE,EACxB,GAAG,GAAG,IAAI,EACV,OAAO,GAAG,IAAI,CAAC,mBAAmB,MAM/B,EAAE,EAAkB,EAAE;YACzB,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;gBACtC,GAAG,EAAE,SAAS;gBACd,GAAG;gBACH,OAAO;gBACP,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,EAAE,QAAQ,EAAE;aACtB,CAAC,CAAC;YACH,MAAM,WAAW,GAAG;gBACnB,GAAG,EAAE,CAAC,EAAc,EAAE,EAAE;oBACvB,6DAA6D;oBAC7D,mEAAmE;oBACnE,qBAAqB;oBACrB,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;oBACjC,EAAE,EAAE,CAAC;oBACL,IAAI,CAAC,eAAe,GAAG,iBAAiB,CAAC;oBACzC,OAAO,WAAW,CAAC;gBACpB,CAAC;gBACD,MAAM,EAAE,KAAK,IAAI,EAAE;oBAClB,iEAAiE;oBACjE,iDAAiD;oBACjD,kEAAkE;oBAClE,iEAAiE;oBACjE,gEAAgE;oBAChE,+DAA+D;oBAC/D,gEAAgE;oBAChE,gCAAgC;oBAChC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;oBAC5C,OAAO,aAAa,CAAC,KAAK,EAAE,CAAC;gBAC9B,CAAC;gBACD,KAAK,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE;gBACjC,OAAO,EAAE,GAAG,EAAE;oBACb,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACjC,CAAC;aACD,CAAC;YACF,OAAO,WAAW,CAAC;QACpB,CAAC,CAAC;QAEF,aAAQ,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE9C,eAAU,GAAG,KAAK,EAAE,IAA2C,EAAE,EAAE;YAC1E,8DAA8D;YAC9D,6DAA6D;YAC7D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAEzD,IAAI,CAAC,UAAU,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAEpC,OAAO,KAAK,IAAI,EAAE;gBACjB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC;oBAClC,GAAG,EAAE,UAAU;oBACf,MAAM,EAAE,IAAI,CAAC,MAAM;iBACnB,CAAC,CAAC;gBACH,kEAAkE;gBAClE,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE;oBAC5B,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;iBAC7B;gBACD,MAAM,IAAI,CAAC,gBAAgB,CAC1B,UAAU;gBACV,sDAAsD;gBACtD,oDAAoD;gBACpD,EAAE,QAAQ,EAAE,KAAK,EAAE,CACnB,CAAC;gBACF,OAAO,IAAI,CAAC;YACb,CAAC,CAAC;QACH,CAAC,CAAC;QACM,yBAAoB,GAAG,KAAK,EAAE,EACrC,GAAG,EACH,MAAM,GAIN,EAAE,EAAE;YACJ,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;YACvC,MAAM,UAAU,GAAgB,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YACnC,MAAM,OAAO,CAAC,GAAG,CAChB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,EAAiB,EAAE;gBACnE,MAAM,MAAM,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACxE,kFAAkF;gBAClF,MAAM,QAAQ,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,eAAe,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;gBAC3D,IAAI,CAAC,QAAQ,EAAE;oBACd,IAAI,CAAC,GAAG,CAAC,GAAG,CACX,MAAM,EACN,uBAAuB,EACvB,GAAG,EACH,oBAAoB,EACpB,GAAG,CACH,CAAC;oBACF,OAAO;iBACP;gBACD,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;gBACvE,UAAU,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;YAChC,CAAC,CAAC,CACF,CAAC;YACF,OAAO,UAAU,CAAC;QACnB,CAAC,CAAC;QA/MD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,mBAAmB,GAAG,YAAY,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CACzB,IAAI,CAAC,eAAe,CACpB,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;YAChB,GAAG,EAAE,iBAAiB;YACtB,KAAK,EAAE,EAAE;YACT,GAAG,EAAE,GAAG;YACR,OAAO,EAAE,YAAY;YACrB,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC5B,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,IAAI,CAAC,eAAe,KAAK,iBAAiB,CAAC;IACnD,CAAC;CA8LD"}
@@ -0,0 +1,84 @@
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> = {
41
+ [P in keyof T]?: T[P] extends Array<infer U> ? Array<DeepPartial<U>> : T[P] extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : DeepPartial<T[P]>;
42
+ };
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
+ replaceSubObjects?: boolean;
51
+ merge?: boolean;
52
+ }): void;
53
+ readonly isList: false;
54
+ }
55
+ export interface ListEntity<Init, Value extends BaseEntityValue, Snapshot = DataFromInit<Init>> extends Iterable<ListItemValue<Value>>, BaseEntity<Init, Value, Snapshot> {
56
+ readonly isList: true;
57
+ readonly length: number;
58
+ push(value: ListItemInit<Init>): void;
59
+ insert(index: number, value: ListItemInit<Init>): void;
60
+ move(from: number, to: number): void;
61
+ moveItem(item: ListItemValue<Value>, to: number): void;
62
+ /**
63
+ * A Set operation which adds a value if an equivalent value is not already present.
64
+ * Object values are never the same.
65
+ */
66
+ add(value: ListItemValue<Value>): void;
67
+ removeAll(item: ListItemValue<Value>): void;
68
+ removeFirst(item: ListItemValue<Value>): void;
69
+ removeLast(item: ListItemValue<Value>): void;
70
+ map<U>(callback: (value: ListItemValue<Value>, index: number) => U): U[];
71
+ filter(callback: (value: ListItemValue<Value>, index: number) => boolean): ListItemValue<Value>[];
72
+ delete(index: number): void;
73
+ has(value: ListItemValue<Value>): boolean;
74
+ forEach(callback: (value: ListItemValue<Value>, index: number) => void): void;
75
+ some(predicate: (value: ListItemValue<Value>) => boolean): boolean;
76
+ every(predicate: (value: ListItemValue<Value>) => boolean): boolean;
77
+ find(predicate: (value: ListItemValue<Value>) => boolean): ListItemValue<Value> | undefined;
78
+ includes(value: ListItemValue<Value>): boolean;
79
+ }
80
+ export type AnyEntity<Init, KeyValue extends BaseEntityValue, Snapshot extends any> = ListEntity<Init, KeyValue, Snapshot> | ObjectEntity<Init, KeyValue, Snapshot>;
81
+ export type ListItemValue<KeyValue> = KeyValue extends Array<infer T> ? T : never;
82
+ export type ListItemInit<Init> = Init extends Array<infer T> ? T : never;
83
+ 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);
84
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/entities/types.ts"],"names":[],"mappings":""}
@@ -14,7 +14,6 @@ export declare class EntityFile extends EventSubscriber<EntityFileEvents> {
14
14
  private _fileData;
15
15
  private _loading;
16
16
  private _failed;
17
- private _disposed;
18
17
  private _downloadRemote;
19
18
  constructor(id: string, { downloadRemote, }?: {
20
19
  downloadRemote?: boolean;
@@ -27,5 +26,9 @@ export declare class EntityFile extends EventSubscriber<EntityFileEvents> {
27
26
  get type(): string | null;
28
27
  get loading(): boolean;
29
28
  get failed(): boolean;
30
- dispose: () => void;
29
+ destroy: () => void;
30
+ getSnapshot(): {
31
+ id: string;
32
+ url: string | null | undefined;
33
+ };
31
34
  }
@@ -15,12 +15,10 @@ export class EntityFile extends EventSubscriber {
15
15
  this._fileData = null;
16
16
  this._loading = true;
17
17
  this._failed = false;
18
- this._disposed = false;
19
18
  this._downloadRemote = false;
20
19
  this[_a] = (fileData) => {
21
20
  this._loading = false;
22
21
  this._failed = false;
23
- this._disposed = false;
24
22
  this._fileData = fileData;
25
23
  if (fileData.file) {
26
24
  if (this._objectUrl) {
@@ -35,11 +33,11 @@ export class EntityFile extends EventSubscriber {
35
33
  this._loading = false;
36
34
  this.emit('change');
37
35
  };
38
- this.dispose = () => {
36
+ this.destroy = () => {
39
37
  if (this._objectUrl) {
40
38
  URL.revokeObjectURL(this._objectUrl);
41
39
  }
42
- this._disposed = true;
40
+ this.dispose();
43
41
  };
44
42
  this._downloadRemote = downloadRemote;
45
43
  }
@@ -68,6 +66,12 @@ export class EntityFile extends EventSubscriber {
68
66
  get failed() {
69
67
  return this._failed;
70
68
  }
69
+ getSnapshot() {
70
+ return {
71
+ id: this.id,
72
+ url: this.loading || this.failed ? undefined : this.url,
73
+ };
74
+ }
71
75
  }
72
76
  _a = UPDATE, _b = MARK_FAILED;
73
77
  //# sourceMappingURL=EntityFile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EntityFile.js","sourceRoot":"","sources":["../../../src/files/EntityFile.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAY,MAAM,qBAAqB,CAAC;AAMhE,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAE7D;;;GAGG;AACH,MAAM,OAAO,UAAW,SAAQ,eAAiC;IAShE,YACiB,EAAU,EAC1B,EACC,cAAc,GAAG,KAAK,MAGnB,EAAE;QAEN,KAAK,EAAE,CAAC;QAPQ,OAAE,GAAF,EAAE,CAAQ;QAT3B,yDAAyD;QACjD,eAAU,GAAkB,IAAI,CAAC;QACjC,cAAS,GAAoB,IAAI,CAAC;QAClC,aAAQ,GAAG,IAAI,CAAC;QAChB,YAAO,GAAG,KAAK,CAAC;QAChB,cAAS,GAAG,KAAK,CAAC;QAClB,oBAAe,GAAG,KAAK,CAAC;QAkBhC,QAAQ,GAAG,CAAC,QAAkB,EAAE,EAAE;YACjC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,QAAQ,CAAC,IAAI,EAAE;gBAClB,IAAI,IAAI,CAAC,UAAU,EAAE;oBACpB,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBACrC;gBACD,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACrD;YACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC,CAAC;QAEF,QAAa,GAAG,GAAG,EAAE;YACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC,CAAC;QAwBF,YAAO,GAAG,GAAG,EAAE;YACd,IAAI,IAAI,CAAC,UAAU,EAAE;gBACpB,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACrC;YACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACvB,CAAC,CAAC;QAtDD,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC7B,CAAC;IAsBD,IAAI,GAAG;;QACN,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC9B,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC;QAC5C,OAAO,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,GAAG,mCAAI,IAAI,CAAC;IACpC,CAAC;IAED,IAAI,IAAI;;QACP,OAAO,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,IAAI,mCAAI,IAAI,CAAC;IACrC,CAAC;IAED,IAAI,IAAI;;QACP,OAAO,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,IAAI,mCAAI,IAAI,CAAC;IACrC,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;CAQD;KAhDC,MAAM,OAcN,WAAW"}
1
+ {"version":3,"file":"EntityFile.js","sourceRoot":"","sources":["../../../src/files/EntityFile.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAY,MAAM,qBAAqB,CAAC;AAMhE,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAE7D;;;GAGG;AACH,MAAM,OAAO,UAAW,SAAQ,eAAiC;IAQhE,YACiB,EAAU,EAC1B,EACC,cAAc,GAAG,KAAK,MAGnB,EAAE;QAEN,KAAK,EAAE,CAAC;QAPQ,OAAE,GAAF,EAAE,CAAQ;QAR3B,yDAAyD;QACjD,eAAU,GAAkB,IAAI,CAAC;QACjC,cAAS,GAAoB,IAAI,CAAC;QAClC,aAAQ,GAAG,IAAI,CAAC;QAChB,YAAO,GAAG,KAAK,CAAC;QAChB,oBAAe,GAAG,KAAK,CAAC;QAkBhC,QAAQ,GAAG,CAAC,QAAkB,EAAE,EAAE;YACjC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,QAAQ,CAAC,IAAI,EAAE;gBAClB,IAAI,IAAI,CAAC,UAAU,EAAE;oBACpB,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBACrC;gBACD,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACrD;YACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC,CAAC;QAEF,QAAa,GAAG,GAAG,EAAE;YACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC,CAAC;QAwBF,YAAO,GAAG,GAAG,EAAE;YACd,IAAI,IAAI,CAAC,UAAU,EAAE;gBACpB,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACrC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;QAChB,CAAC,CAAC;QArDD,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC7B,CAAC;IAqBD,IAAI,GAAG;;QACN,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC9B,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC;QAC5C,OAAO,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,GAAG,mCAAI,IAAI,CAAC;IACpC,CAAC;IAED,IAAI,IAAI;;QACP,OAAO,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,IAAI,mCAAI,IAAI,CAAC;IACrC,CAAC;IAED,IAAI,IAAI;;QACP,OAAO,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,IAAI,mCAAI,IAAI,CAAC;IACrC,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IASD,WAAW;QACV,OAAO;YACN,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,GAAG,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;SACvD,CAAC;IACH,CAAC;CACD;KAtDC,MAAM,OAaN,WAAW"}
@@ -33,7 +33,9 @@ export declare class FileManager {
33
33
  * Immediately returns an EntityFile to use, then either loads
34
34
  * the file from cache, local database, or the server.
35
35
  */
36
- get: (id: string) => EntityFile;
36
+ get: (id: string, options?: {
37
+ downloadRemote?: boolean;
38
+ }) => EntityFile;
37
39
  private load;
38
40
  listUnsynced: () => Promise<ReturnedFileData[]>;
39
41
  private onOnlineChange;
@@ -55,17 +55,18 @@ export class FileManager {
55
55
  * Immediately returns an EntityFile to use, then either loads
56
56
  * the file from cache, local database, or the server.
57
57
  */
58
- this.get = (id) => {
58
+ this.get = (id, options) => {
59
59
  if (this.files.has(id)) {
60
60
  return this.files.get(id);
61
61
  }
62
- const file = new EntityFile(id);
62
+ const file = new EntityFile(id, options);
63
63
  this.files.set(id, file);
64
64
  this.load(file);
65
65
  return file;
66
66
  };
67
67
  this.load = async (file, retries = 0) => {
68
68
  if (retries > 5) {
69
+ this.context.log('error', 'Failed to load file after 5 retries');
69
70
  file[MARK_FAILED]();
70
71
  return;
71
72
  }
@@ -84,6 +85,7 @@ export class FileManager {
84
85
  });
85
86
  }
86
87
  else {
88
+ this.context.log('error', 'Failed to load file', result);
87
89
  file[MARK_FAILED]();
88
90
  if (result.retry) {
89
91
  // schedule a retry
@@ -124,7 +126,7 @@ export class FileManager {
124
126
  this.context.log('info', `Cleaned up ${count} files, skipped ${skipCount} files`);
125
127
  };
126
128
  this.handleFileRefsDeleted = async (fileRefs) => {
127
- const tx = this.storage.createTransaction(['files'], 'readwrite');
129
+ const tx = this.storage.createTransaction(['files'], { mode: 'readwrite' });
128
130
  await Promise.all(fileRefs.map(async (fileRef) => {
129
131
  try {
130
132
  await this.storage.markPendingDelete(fileRef.id, { transaction: tx });
@@ -1 +1 @@
1
- {"version":3,"file":"FileManager.js","sourceRoot":"","sources":["../../../src/files/FileManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FileManager.js","sourceRoot":"","sources":["../../../src/files/FileManager.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,7 @@ export class FileStorage extends IDBService {
27
27
  url: file.url,
28
28
  buffer,
29
29
  });
30
- }, 'readwrite', transaction);
30
+ }, { mode: 'readwrite', transaction });
31
31
  };
32
32
  this.hydrateFileData = (raw) => {
33
33
  raw.remote = raw.remote === 'true';
@@ -45,12 +45,12 @@ export class FileStorage extends IDBService {
45
45
  }
46
46
  return this.run('files', (store) => {
47
47
  return store.put(Object.assign(Object.assign({}, current), { remote: 'true' }));
48
- }, 'readwrite', transaction);
48
+ }, { mode: 'readwrite', transaction });
49
49
  };
50
50
  this.getFileRaw = async (id, { transaction } = {}) => {
51
51
  const raw = await this.run('files', (store) => {
52
52
  return store.get(id);
53
- }, 'readonly', transaction);
53
+ }, { mode: 'readonly', transaction });
54
54
  if (!raw) {
55
55
  return undefined;
56
56
  }
@@ -70,12 +70,12 @@ export class FileStorage extends IDBService {
70
70
  }
71
71
  return this.run('files', (store) => {
72
72
  return store.put(Object.assign(Object.assign({}, current), { deletedAt: Date.now() }));
73
- }, 'readwrite', transaction);
73
+ }, { mode: 'readwrite', transaction });
74
74
  };
75
75
  this.listUnsynced = async () => {
76
76
  const raw = await this.run('files', (store) => {
77
77
  return store.index('remote').getAll('false');
78
- }, 'readonly');
78
+ }, { mode: 'readonly' });
79
79
  return raw.map(this.hydrateFileData);
80
80
  };
81
81
  this.iterateOverPendingDelete = (iterator, transaction) => {
@@ -85,13 +85,13 @@ export class FileStorage extends IDBService {
85
85
  .openCursor(IDBKeyRange.lowerBound(0, true));
86
86
  }, (value, store) => {
87
87
  iterator(this.hydrateFileData(value), store);
88
- }, 'readwrite', transaction);
88
+ }, { mode: 'readwrite', transaction });
89
89
  };
90
90
  }
91
91
  deleteFile(id, { transaction } = {}) {
92
92
  return this.run('files', (store) => {
93
93
  return store.delete(id);
94
- }, 'readwrite', transaction);
94
+ }, { mode: 'readwrite', transaction });
95
95
  }
96
96
  }
97
97
  export function arrayBufferToBlob(buffer, type) {
@@ -1 +1 @@
1
- {"version":3,"file":"FileStorage.js","sourceRoot":"","sources":["../../../src/files/FileStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FileStorage.js","sourceRoot":"","sources":["../../../src/files/FileStorage.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import { FileData } from '@verdant-web/common';
2
2
  export declare function createFileData(file: File): FileData;
3
+ export declare function isFile(value: any): value is File;
3
4
  /**
5
+ * MUTATES the value.
4
6
  * Replaces File values with refs and returns the normalized value.
5
7
  * The list of files passed to the second argument will be populated with the files found in the value.
6
8
  */
@@ -10,10 +10,12 @@ export function createFileData(file) {
10
10
  type: file.type,
11
11
  };
12
12
  }
13
- function isFile(value) {
14
- return value instanceof File;
13
+ export function isFile(value) {
14
+ return (value instanceof File ||
15
+ (typeof Blob !== 'undefined' && value instanceof Blob));
15
16
  }
16
17
  /**
18
+ * MUTATES the value.
17
19
  * Replaces File values with refs and returns the normalized value.
18
20
  * The list of files passed to the second argument will be populated with the files found in the value.
19
21
  */