@verdant-web/store 5.0.1 → 5.1.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.
@@ -1,4 +1,4 @@
1
- import { StorageSchema, AuthorizationKey } from '@verdant-web/common';
1
+ import { AuthorizationKey, StorageSchema } from '@verdant-web/common';
2
2
  import { EntityStore } from '../entities/EntityStore.js';
3
3
  import { ObjectEntity } from '../index.js';
4
4
  /**
@@ -27,9 +27,20 @@ export declare class DocumentManager<Schema extends StorageSchema<any>> {
27
27
  deleteAllFromCollection: (collection: string, ids: string[], options?: {
28
28
  undoable?: boolean;
29
29
  }) => Promise<void>;
30
- clone: (collection: string, entity: ObjectEntity<any, any>, options?: {
30
+ /**
31
+ * Creates a clone of the given document entity, returning a new
32
+ * document entity in the given collection. The primary key of
33
+ * the original document will be regenerated automatically and
34
+ * access will be copied from the original. Both can be overridden
35
+ * explicitly via options.
36
+ */
37
+ clone: <TInit>(collection: string, entity: ObjectEntity<TInit, any>, options?: {
31
38
  undoable?: boolean;
32
39
  access?: AuthorizationKey;
33
40
  primaryKey?: string;
41
+ /**
42
+ * Modify the data before cloning
43
+ */
44
+ update?: (init: TInit) => TInit;
34
45
  }) => Promise<any>;
35
46
  }
@@ -1,4 +1,4 @@
1
- import { addFieldDefaults, constrainEntity, assert, createOid, isRootOid, } from '@verdant-web/common';
1
+ import { addFieldDefaults, assert, constrainEntity, createOid, isRootOid, } from '@verdant-web/common';
2
2
  /**
3
3
  * Exposes functionality for creating documents,
4
4
  * the only mutation which is available as an entry
@@ -53,6 +53,13 @@ export class DocumentManager {
53
53
  this.deleteAllFromCollection = async (collection, ids, options = {}) => {
54
54
  return this.entities.deleteAll(ids.map((primaryKey) => createOid(collection, primaryKey)), options);
55
55
  };
56
+ /**
57
+ * Creates a clone of the given document entity, returning a new
58
+ * document entity in the given collection. The primary key of
59
+ * the original document will be regenerated automatically and
60
+ * access will be copied from the original. Both can be overridden
61
+ * explicitly via options.
62
+ */
56
63
  this.clone = async (collection, entity, options = {}) => {
57
64
  if (!isRootOid(entity.uid)) {
58
65
  throw new Error('Cannot clone non-root documents');
@@ -70,7 +77,12 @@ export class DocumentManager {
70
77
  }
71
78
  snapshot[collectionSchema.primaryKey] = options.primaryKey;
72
79
  }
73
- return this.create(collection, snapshot, options);
80
+ // copy authorization of original unless user supplied override
81
+ if (entity.access && !options.access) {
82
+ options.access = entity.access;
83
+ }
84
+ const final = options.update ? options.update(snapshot) : snapshot;
85
+ return this.create(collection, final, options);
74
86
  };
75
87
  }
76
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentManager.js","sourceRoot":"","sources":["../../../src/entities/DocumentManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DocumentManager.js","sourceRoot":"","sources":["../../../src/entities/DocumentManager.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ObjectIdentifier, StorageFieldSchema } from '@verdant-web/common';
1
+ import { AuthorizationKey, ObjectIdentifier, StorageFieldSchema } from '@verdant-web/common';
2
2
  import type { Entity } from './Entity.js';
3
3
  export type AccessibleEntityProperty<T> = T extends Array<any> ? number : T extends object ? keyof T : never;
4
4
  export type DataFromInit<Init> = Init extends {
@@ -78,7 +78,7 @@ export interface BaseEntity<Init, Value extends BaseEntityValue, Snapshot = Data
78
78
  /** If true, this Entity has authorization rules applied to it. */
79
79
  readonly isAuthorized: boolean;
80
80
  /** The authorization configuration string applied to this entity. */
81
- readonly access: string | undefined;
81
+ readonly access: AuthorizationKey | undefined;
82
82
  readonly invalid: boolean;
83
83
  /** The Verdant store namespace which contains this object */
84
84
  readonly namespace: string;
@@ -17,7 +17,7 @@ export class FileManager extends Disposable {
17
17
  }
18
18
  // this will download any original remote file and trigger a re-upload to the
19
19
  // new file's identity, in addition to storing it on disk
20
- const processedFile = await (await this.context.files).add(file);
20
+ const processedFile = await (await this.context.files).add(file, { cloneRemote: true });
21
21
  entityFile[UPDATE](processedFile);
22
22
  };
23
23
  /**
@@ -36,10 +36,11 @@ export class FileManager extends Disposable {
36
36
  this.load = async (file) => {
37
37
  var _a;
38
38
  const fileData = await (await this.context.files).get(file.id);
39
+ // immediately apply any file data we have
39
40
  if (fileData) {
40
41
  file[UPDATE](fileData);
41
42
  }
42
- else {
43
+ if (!(fileData === null || fileData === void 0 ? void 0 : fileData.url) && (!fileData || fileData.remote)) {
43
44
  // maybe we don't have it yet, it might be on the server still.
44
45
  try {
45
46
  // if not online, enqueue this for whenever we go online.
@@ -55,17 +56,25 @@ export class FileManager extends Disposable {
55
56
  }
56
57
  const result = await this.sync.getFile(file.id);
57
58
  if (result.success) {
58
- await (await this.context.files).add(result.data);
59
+ // avoid overwriting local values except for url
60
+ const copyWithUrl = Object.assign(Object.assign(Object.assign({}, result.data), fileData), { url: result.data.url });
61
+ await (await this.context.files).update(copyWithUrl);
59
62
  file[UPDATE](result.data);
60
63
  }
61
64
  else {
62
65
  this.context.log('error', 'Failed to load file', result);
63
- file[MARK_FAILED]((_a = result.error) === null || _a === void 0 ? void 0 : _a.toString());
66
+ if (!fileData) {
67
+ // only mark failed if we have no local data to fall back to
68
+ file[MARK_FAILED]((_a = result.error) === null || _a === void 0 ? void 0 : _a.toString());
69
+ }
64
70
  }
65
71
  }
66
72
  catch (err) {
67
73
  this.context.log('error', 'Failed to load file', err);
68
- file[MARK_FAILED](err instanceof Error ? err.message : String(err));
74
+ if (!fileData) {
75
+ // only mark failed if we have no local data to fall back to
76
+ file[MARK_FAILED](err instanceof Error ? err.message : String(err));
77
+ }
69
78
  }
70
79
  }
71
80
  };
@@ -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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"}
@@ -7,7 +7,14 @@ export declare class PersistenceFiles {
7
7
  constructor(db: PersistenceFileDb, context: Omit<Context, 'queries'>);
8
8
  private get config();
9
9
  onServerReset: (since: string | null) => Promise<void>;
10
- add: (file: FileData) => Promise<FileData>;
10
+ /**
11
+ * Adds a file to persistence.
12
+ * Optionally download and re-upload remote files to create a new copy.
13
+ */
14
+ add: (file: FileData, options?: {
15
+ cloneRemote?: boolean;
16
+ }) => Promise<FileData>;
17
+ update: (file: FileData) => Promise<void>;
11
18
  onUploaded: (fileId: string) => Promise<void>;
12
19
  get: (fileId: string) => Promise<PersistedFileData | null>;
13
20
  getAll: () => Promise<PersistedFileData[]>;
@@ -3,7 +3,11 @@ export class PersistenceFiles {
3
3
  this.db = db;
4
4
  this.context = context;
5
5
  this.onServerReset = (since) => this.db.resetSyncedStatusSince(since);
6
- this.add = async (file) => {
6
+ /**
7
+ * Adds a file to persistence.
8
+ * Optionally download and re-upload remote files to create a new copy.
9
+ */
10
+ this.add = async (file, options) => {
7
11
  // this method accepts a FileData which refers to a remote
8
12
  // file, as well as local files. in the case of a remote file,
9
13
  // we actually re-download and upload the file again. this powers
@@ -11,8 +15,8 @@ export class PersistenceFiles {
11
15
  // and re-upload to a new file ID. otherwise, when the cloned
12
16
  // filedata was marked deleted, the original file would be deleted
13
17
  // and the clone would refer to a missing file.
14
- if (file.url && !(file.localPath || file.file)) {
15
- this.context.log('debug', 'Remote file added to an entity. This usually means an entity was cloned. Downloading remote file...', file.id);
18
+ if (file.url && !(file.localPath || file.file) && (options === null || options === void 0 ? void 0 : options.cloneRemote)) {
19
+ this.context.log('debug', 'Cloning remote file added to a new entity. Downloading remote file...', file.id);
16
20
  const blob = await this.loadFileContents(file, 0, 3);
17
21
  // convert blob to file with name and type
18
22
  file.file = new File([blob], file.name, { type: file.type });
@@ -42,6 +46,11 @@ export class PersistenceFiles {
42
46
  : 'with no data');
43
47
  return file;
44
48
  };
49
+ this.update = async (file) => {
50
+ await this.db.add(file);
51
+ this.context.globalEvents.emit('fileSaved', file);
52
+ this.context.log('debug', 'File updated', file.id, file.name);
53
+ };
45
54
  this.onUploaded = this.db.markUploaded.bind(this.db);
46
55
  this.get = this.db.get.bind(this.db);
47
56
  this.getAll = this.db.getAll.bind(this.db);
@@ -1 +1 @@
1
- {"version":3,"file":"PersistenceFiles.js","sourceRoot":"","sources":["../../../src/persistence/PersistenceFiles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PersistenceFiles.js","sourceRoot":"","sources":["../../../src/persistence/PersistenceFiles.ts"],"names":[],"mappings":"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"}
@@ -62,10 +62,11 @@ export class IdbPersistenceFileDb extends IdbService {
62
62
  });
63
63
  };
64
64
  this.listUnsynced = async () => {
65
+ var _a;
65
66
  const raw = await this.run('files', (store) => {
66
67
  return store.index('remote').getAll('false');
67
68
  }, { mode: 'readonly' });
68
- return raw.map(this.hydrateFileData);
69
+ return (_a = raw === null || raw === void 0 ? void 0 : raw.map(this.hydrateFileData)) !== null && _a !== void 0 ? _a : [];
69
70
  };
70
71
  this.resetSyncedStatusSince = async (since) => {
71
72
  const tx = this.createTransaction(['files'], {
@@ -1 +1 @@
1
- {"version":3,"file":"IdbPersistenceFileDb.js","sourceRoot":"","sources":["../../../../../src/persistence/idb/files/IdbPersistenceFileDb.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IdbPersistenceFileDb.js","sourceRoot":"","sources":["../../../../../src/persistence/idb/files/IdbPersistenceFileDb.ts"],"names":[],"mappings":"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"}
@@ -116,6 +116,11 @@ export interface PersistedFileData extends FileData {
116
116
  deletedAt: number | null;
117
117
  }
118
118
  export interface PersistenceFileDb {
119
+ /**
120
+ * Should add a file to local persistence. This is idempotent;
121
+ * the same file being added multiple times should not create duplicates
122
+ * and should update the existing file entry.
123
+ */
119
124
  add(file: FileData, options?: {
120
125
  downloadRemote?: boolean;
121
126
  }): Promise<void>;
@@ -97,7 +97,7 @@ export class FileSync extends Disposable {
97
97
  };
98
98
  }
99
99
  else {
100
- this.ctx.log('error', 'File information fetch failed', fileEndpoint + `/${id}`, response.status, await response.text());
100
+ this.ctx.log('warn', 'File information fetch failed', fileEndpoint + `/${id}`, response.status, await response.text());
101
101
  if ((response.status < 500 && response.status !== 404) ||
102
102
  retries.current >= retries.max) {
103
103
  return {
@@ -113,7 +113,7 @@ export class FileSync extends Disposable {
113
113
  }
114
114
  }
115
115
  catch (e) {
116
- this.ctx.log('error', 'File information fetch failed', `${fileEndpoint}/${id}`, e);
116
+ this.ctx.log('warn', 'File information fetch failed', `${fileEndpoint}/${id}`, e);
117
117
  if (retries.current >= retries.max) {
118
118
  return {
119
119
  success: false,
@@ -1 +1 @@
1
- {"version":3,"file":"FileSync.js","sourceRoot":"","sources":["../../../src/sync/FileSync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FileSync.js","sourceRoot":"","sources":["../../../src/sync/FileSync.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verdant-web/store",
3
- "version": "5.0.1",
3
+ "version": "5.1.0",
4
4
  "access": "public",
5
5
  "type": "module",
6
6
  "main": "dist/esm/index.js",
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  addFieldDefaults,
3
- constrainEntity,
4
3
  assert,
4
+ AuthorizationKey,
5
+ constrainEntity,
5
6
  createOid,
7
+ isRootOid,
6
8
  SchemaCollection,
7
9
  StorageCollectionSchema,
8
10
  StorageDocument,
9
11
  StorageSchema,
10
- isRootOid,
11
- AuthorizationKey,
12
12
  } from '@verdant-web/common';
13
13
  import { EntityCreateOptions, EntityStore } from '../entities/EntityStore.js';
14
14
  import { ObjectEntity } from '../index.js';
@@ -119,20 +119,31 @@ export class DocumentManager<Schema extends StorageSchema<any>> {
119
119
  );
120
120
  };
121
121
 
122
- clone = async (
122
+ /**
123
+ * Creates a clone of the given document entity, returning a new
124
+ * document entity in the given collection. The primary key of
125
+ * the original document will be regenerated automatically and
126
+ * access will be copied from the original. Both can be overridden
127
+ * explicitly via options.
128
+ */
129
+ clone = async <TInit>(
123
130
  collection: string,
124
- entity: ObjectEntity<any, any>,
131
+ entity: ObjectEntity<TInit, any>,
125
132
  options: {
126
133
  undoable?: boolean;
127
134
  access?: AuthorizationKey;
128
135
  primaryKey?: string;
136
+ /**
137
+ * Modify the data before cloning
138
+ */
139
+ update?: (init: TInit) => TInit;
129
140
  } = {},
130
141
  ) => {
131
142
  if (!isRootOid(entity.uid)) {
132
143
  throw new Error('Cannot clone non-root documents');
133
144
  }
134
145
  // take the entity snapshot
135
- const snapshot = entity.getSnapshot();
146
+ const snapshot = entity.getSnapshot() as any;
136
147
  // remove the primary key
137
148
  const collectionSchema = this.schema.collections[collection];
138
149
  delete snapshot[collectionSchema.primaryKey];
@@ -146,6 +157,11 @@ export class DocumentManager<Schema extends StorageSchema<any>> {
146
157
  }
147
158
  snapshot[collectionSchema.primaryKey] = options.primaryKey;
148
159
  }
149
- return this.create(collection, snapshot, options);
160
+ // copy authorization of original unless user supplied override
161
+ if (entity.access && !options.access) {
162
+ options.access = entity.access;
163
+ }
164
+ const final = options.update ? options.update(snapshot) : snapshot;
165
+ return this.create(collection, final, options);
150
166
  };
151
167
  }
@@ -1,4 +1,8 @@
1
- import { ObjectIdentifier, StorageFieldSchema } from '@verdant-web/common';
1
+ import {
2
+ AuthorizationKey,
3
+ ObjectIdentifier,
4
+ StorageFieldSchema,
5
+ } from '@verdant-web/common';
2
6
  import type { Entity } from './Entity.js';
3
7
 
4
8
  export type AccessibleEntityProperty<T> =
@@ -112,7 +116,7 @@ export interface BaseEntity<
112
116
  /** If true, this Entity has authorization rules applied to it. */
113
117
  readonly isAuthorized: boolean;
114
118
  /** The authorization configuration string applied to this entity. */
115
- readonly access: string | undefined;
119
+ readonly access: AuthorizationKey | undefined;
116
120
  readonly invalid: boolean;
117
121
  /** The Verdant store namespace which contains this object */
118
122
  readonly namespace: string;
@@ -37,7 +37,9 @@ export class FileManager extends Disposable {
37
37
  }
38
38
  // this will download any original remote file and trigger a re-upload to the
39
39
  // new file's identity, in addition to storing it on disk
40
- const processedFile = await (await this.context.files).add(file);
40
+ const processedFile = await (
41
+ await this.context.files
42
+ ).add(file, { cloneRemote: true });
41
43
  entityFile[UPDATE](processedFile);
42
44
  };
43
45
 
@@ -60,9 +62,12 @@ export class FileManager extends Disposable {
60
62
 
61
63
  private load = async (file: EntityFile) => {
62
64
  const fileData = await (await this.context.files).get(file.id);
65
+ // immediately apply any file data we have
63
66
  if (fileData) {
64
67
  file[UPDATE](fileData);
65
- } else {
68
+ }
69
+
70
+ if (!fileData?.url && (!fileData || fileData.remote)) {
66
71
  // maybe we don't have it yet, it might be on the server still.
67
72
  try {
68
73
  // if not online, enqueue this for whenever we go online.
@@ -84,15 +89,27 @@ export class FileManager extends Disposable {
84
89
 
85
90
  const result = await this.sync.getFile(file.id);
86
91
  if (result.success) {
87
- await (await this.context.files).add(result.data);
92
+ // avoid overwriting local values except for url
93
+ const copyWithUrl: FileData = {
94
+ ...result.data,
95
+ ...fileData,
96
+ url: result.data.url,
97
+ };
98
+ await (await this.context.files).update(copyWithUrl);
88
99
  file[UPDATE](result.data);
89
100
  } else {
90
101
  this.context.log('error', 'Failed to load file', result);
91
- file[MARK_FAILED](result.error?.toString());
102
+ if (!fileData) {
103
+ // only mark failed if we have no local data to fall back to
104
+ file[MARK_FAILED](result.error?.toString());
105
+ }
92
106
  }
93
107
  } catch (err) {
94
108
  this.context.log('error', 'Failed to load file', err);
95
- file[MARK_FAILED](err instanceof Error ? err.message : String(err));
109
+ if (!fileData) {
110
+ // only mark failed if we have no local data to fall back to
111
+ file[MARK_FAILED](err instanceof Error ? err.message : String(err));
112
+ }
96
113
  }
97
114
  }
98
115
  };
@@ -26,7 +26,11 @@ export class PersistenceFiles {
26
26
 
27
27
  onServerReset = (since: string | null) =>
28
28
  this.db.resetSyncedStatusSince(since);
29
- add = async (file: FileData) => {
29
+ /**
30
+ * Adds a file to persistence.
31
+ * Optionally download and re-upload remote files to create a new copy.
32
+ */
33
+ add = async (file: FileData, options?: { cloneRemote?: boolean }) => {
30
34
  // this method accepts a FileData which refers to a remote
31
35
  // file, as well as local files. in the case of a remote file,
32
36
  // we actually re-download and upload the file again. this powers
@@ -34,10 +38,10 @@ export class PersistenceFiles {
34
38
  // and re-upload to a new file ID. otherwise, when the cloned
35
39
  // filedata was marked deleted, the original file would be deleted
36
40
  // and the clone would refer to a missing file.
37
- if (file.url && !(file.localPath || file.file)) {
41
+ if (file.url && !(file.localPath || file.file) && options?.cloneRemote) {
38
42
  this.context.log(
39
43
  'debug',
40
- 'Remote file added to an entity. This usually means an entity was cloned. Downloading remote file...',
44
+ 'Cloning remote file added to a new entity. Downloading remote file...',
41
45
  file.id,
42
46
  );
43
47
  const blob = await this.loadFileContents(file, 0, 3);
@@ -87,6 +91,11 @@ export class PersistenceFiles {
87
91
  );
88
92
  return file;
89
93
  };
94
+ update = async (file: FileData) => {
95
+ await this.db.add(file);
96
+ this.context.globalEvents.emit('fileSaved', file);
97
+ this.context.log('debug', 'File updated', file.id, file.name);
98
+ };
90
99
  onUploaded = this.db.markUploaded.bind(this.db);
91
100
  get = this.db.get.bind(this.db);
92
101
  getAll = this.db.getAll.bind(this.db);
@@ -118,7 +118,7 @@ export class IdbPersistenceFileDb
118
118
  },
119
119
  { mode: 'readonly' },
120
120
  );
121
- return raw.map(this.hydrateFileData);
121
+ return raw?.map(this.hydrateFileData) ?? [];
122
122
  };
123
123
  resetSyncedStatusSince = async (since: string | null): Promise<void> => {
124
124
  const tx: IDBTransaction = this.createTransaction(['files'], {
@@ -177,6 +177,11 @@ export interface PersistedFileData extends FileData {
177
177
  }
178
178
 
179
179
  export interface PersistenceFileDb {
180
+ /**
181
+ * Should add a file to local persistence. This is idempotent;
182
+ * the same file being added multiple times should not create duplicates
183
+ * and should update the existing file entry.
184
+ */
180
185
  add(file: FileData, options?: { downloadRemote?: boolean }): Promise<void>;
181
186
  markUploaded(fileId: string): Promise<void>;
182
187
  get(fileId: string): Promise<PersistedFileData | null>;
@@ -156,7 +156,7 @@ export class FileSync extends Disposable {
156
156
  };
157
157
  } else {
158
158
  this.ctx.log(
159
- 'error',
159
+ 'warn',
160
160
  'File information fetch failed',
161
161
  fileEndpoint + `/${id}`,
162
162
  response.status,
@@ -180,7 +180,7 @@ export class FileSync extends Disposable {
180
180
  }
181
181
  } catch (e) {
182
182
  this.ctx.log(
183
- 'error',
183
+ 'warn',
184
184
  'File information fetch failed',
185
185
  `${fileEndpoint}/${id}`,
186
186
  e,