@verdant-web/store 5.4.4 → 5.6.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,15 +1,14 @@
1
1
  var _a, _b;
2
- import { EventSubscriber } from '@verdant-web/common';
2
+ import { EventSubscriber, } from '@verdant-web/common';
3
3
  export const UPDATE = Symbol('entity-file-update');
4
4
  export const MARK_FAILED = Symbol('entity-file-mark-failed');
5
- // this one goes on Entity
6
- export const CHILD_FILE_CHANGED = Symbol('child-file-changed');
7
5
  /**
8
6
  * Provides a consistent interface for files used in an app via
9
7
  * Entity access.
10
8
  */
11
9
  export class EntityFile extends EventSubscriber {
12
- constructor(id, { downloadRemote = false, ctx, parent, }) {
10
+ constructor(id, { downloadRemote = false, ctx, fileContext, }) {
11
+ var _c, _d;
13
12
  super();
14
13
  this.id = id;
15
14
  // cached object URL for a local blob file, if applicable
@@ -19,7 +18,26 @@ export class EntityFile extends EventSubscriber {
19
18
  this._failed = false;
20
19
  this._downloadRemote = false;
21
20
  this._uploaded = false;
21
+ this._alt = null;
22
22
  this.unsubscribes = [];
23
+ this.setAlt = (alt) => {
24
+ var _c;
25
+ const file = this.fileContext.getFileRef();
26
+ if (!file || file.id !== this.id) {
27
+ throw new Error('Cannot set alt text on a file which is no longer present');
28
+ }
29
+ if (((_c = file.alt) !== null && _c !== void 0 ? _c : null) === alt)
30
+ return;
31
+ this.fileContext.applyFileRef(Object.assign(Object.assign({}, file), { alt }));
32
+ };
33
+ this.onContextChange = () => {
34
+ var _c, _d;
35
+ const nextAlt = (_d = (_c = this.fileContext.getFileRef()) === null || _c === void 0 ? void 0 : _c.alt) !== null && _d !== void 0 ? _d : null;
36
+ if (nextAlt !== this._alt) {
37
+ this._alt = nextAlt;
38
+ this.emitChange();
39
+ }
40
+ };
23
41
  this[_a] = (fileData) => {
24
42
  this.ctx.log('debug', 'EntityFile updated', this.id, fileData);
25
43
  this._loading = false;
@@ -55,8 +73,10 @@ export class EntityFile extends EventSubscriber {
55
73
  this.dispose();
56
74
  };
57
75
  this.ctx = ctx;
58
- this.parent = parent;
76
+ this.fileContext = fileContext;
59
77
  this._downloadRemote = downloadRemote;
78
+ this._alt = (_d = (_c = fileContext.getFileRef()) === null || _c === void 0 ? void 0 : _c.alt) !== null && _d !== void 0 ? _d : null;
79
+ this.unsubscribes.push(fileContext.subscribe(this.onContextChange));
60
80
  this.unsubscribes.push(this.ctx.internalEvents.subscribe(`fileUploaded:${id}`, this.onUploaded));
61
81
  }
62
82
  get downloadRemote() {
@@ -72,8 +92,11 @@ export class EntityFile extends EventSubscriber {
72
92
  get error() {
73
93
  return this._failedReason || null;
74
94
  }
95
+ get alt() {
96
+ return this._alt;
97
+ }
75
98
  emitChange() {
76
- this.parent[CHILD_FILE_CHANGED](this);
99
+ this.fileContext.onChange();
77
100
  this.emit('change');
78
101
  }
79
102
  get url() {
@@ -109,6 +132,7 @@ export class EntityFile extends EventSubscriber {
109
132
  remote: (_h = (_g = this._fileData) === null || _g === void 0 ? void 0 : _g.remote) !== null && _h !== void 0 ? _h : false,
110
133
  type: (_j = this.type) !== null && _j !== void 0 ? _j : '',
111
134
  file: (_k = this._fileData) === null || _k === void 0 ? void 0 : _k.file,
135
+ alt: this.alt,
112
136
  };
113
137
  }
114
138
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EntityFile.js","sourceRoot":"","sources":["../../../src/files/EntityFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityFile.js","sourceRoot":"","sources":["../../../src/files/EntityFile.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,18 @@
1
1
  import { FileData } from '@verdant-web/common';
2
2
  import { Context } from '../context/context.js';
3
- import { Entity } from '../entities/Entity.js';
4
3
  import { Disposable } from '../internal.js';
5
4
  import { Sync } from '../sync/Sync.js';
6
- import { EntityFile } from './EntityFile.js';
5
+ import { EntityFile, EntityFileContext } from './EntityFile.js';
7
6
  export declare class FileManager extends Disposable {
8
7
  private sync;
9
8
  private context;
10
9
  private cache;
10
+ private fileData;
11
11
  constructor({ sync, context }: {
12
12
  sync: Sync;
13
13
  context: Context;
14
14
  });
15
- add: (file: FileData, parent: Entity) => Promise<void>;
15
+ add: (file: FileData) => Promise<void>;
16
16
  /**
17
17
  * Immediately returns an EntityFile to use, then either loads
18
18
  * the file from cache, local database, or the server.
@@ -20,8 +20,9 @@ export declare class FileManager extends Disposable {
20
20
  get: (id: string, options: {
21
21
  downloadRemote?: boolean;
22
22
  ctx: Context;
23
- parent: Entity;
23
+ fileContext: EntityFileContext;
24
24
  }) => EntityFile;
25
+ private updateFileData;
25
26
  private load;
26
27
  private onFileUploaded;
27
28
  }
@@ -1,44 +1,63 @@
1
1
  import { Disposable } from '../internal.js';
2
- import { EntityFile, MARK_FAILED, UPDATE } from './EntityFile.js';
2
+ import { EntityFile, MARK_FAILED, UPDATE, } from './EntityFile.js';
3
3
  export class FileManager extends Disposable {
4
4
  constructor({ sync, context }) {
5
5
  super();
6
6
  this.cache = new Map();
7
- this.add = async (file, parent) => {
8
- // immediately cache the file
9
- let entityFile = this.cache.get(file.id);
10
- if (!entityFile) {
11
- entityFile = new EntityFile(file.id, { ctx: this.context, parent });
12
- this.cache.set(file.id, entityFile);
13
- }
7
+ this.fileData = new Map();
8
+ this.add = async (file) => {
14
9
  if (!file.remote) {
15
10
  // immediately update local files.
16
- entityFile[UPDATE](file);
11
+ this.updateFileData(file);
17
12
  }
18
13
  // this will download any original remote file and trigger a re-upload to the
19
14
  // new file's identity, in addition to storing it on disk
20
15
  const processedFile = await (await this.context.files).add(file, { cloneRemote: true });
21
- entityFile[UPDATE](processedFile);
16
+ this.updateFileData(processedFile);
22
17
  };
23
18
  /**
24
19
  * Immediately returns an EntityFile to use, then either loads
25
20
  * the file from cache, local database, or the server.
26
21
  */
27
22
  this.get = (id, options) => {
28
- if (this.cache.has(id)) {
29
- return this.cache.get(id);
23
+ var _a, _b;
24
+ const cacheKey = `${options.fileContext.oid}:${String(options.fileContext.key)}:${id}`;
25
+ const cachedFile = (_a = this.cache.get(cacheKey)) === null || _a === void 0 ? void 0 : _a.deref();
26
+ if (cachedFile) {
27
+ return cachedFile;
30
28
  }
29
+ this.cache.delete(cacheKey);
31
30
  const file = new EntityFile(id, options);
32
- this.cache.set(id, file);
33
- this.load(file);
31
+ this.cache.set(cacheKey, this.context.weakRef(file));
32
+ const data = (_b = this.fileData.get(id)) === null || _b === void 0 ? void 0 : _b.deref();
33
+ if (data) {
34
+ file[UPDATE](data);
35
+ }
36
+ else {
37
+ this.fileData.delete(id);
38
+ this.load(file);
39
+ }
34
40
  return file;
35
41
  };
42
+ this.updateFileData = (data) => {
43
+ this.fileData.set(data.id, this.context.weakRef(data));
44
+ for (const [key, fileRef] of this.cache) {
45
+ const file = fileRef.deref();
46
+ if (!file) {
47
+ this.cache.delete(key);
48
+ continue;
49
+ }
50
+ if (file.id === data.id) {
51
+ file[UPDATE](data);
52
+ }
53
+ }
54
+ };
36
55
  this.load = async (file) => {
37
56
  var _a;
38
57
  const fileData = await (await this.context.files).get(file.id);
39
58
  // immediately apply any file data we have
40
59
  if (fileData) {
41
- file[UPDATE](fileData);
60
+ this.updateFileData(fileData);
42
61
  }
43
62
  if (!(fileData === null || fileData === void 0 ? void 0 : fileData.url) && (!fileData || fileData.remote)) {
44
63
  // maybe we don't have it yet, it might be on the server still.
@@ -59,7 +78,7 @@ export class FileManager extends Disposable {
59
78
  // avoid overwriting local values except for url
60
79
  const copyWithUrl = Object.assign(Object.assign(Object.assign({}, result.data), fileData), { url: result.data.url });
61
80
  await (await this.context.files).update(copyWithUrl);
62
- file[UPDATE](result.data);
81
+ this.updateFileData(result.data);
63
82
  }
64
83
  else {
65
84
  this.context.log('error', 'Failed to load file', result);
@@ -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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"}
@@ -56,6 +56,7 @@ export declare class PresenceManager<Profile = any, Presence = any> extends Even
56
56
  */
57
57
  private isSelf;
58
58
  [HANDLE_MESSAGE]: (localReplicaInfo: LocalReplicaInfo, message: ServerMessage) => Promise<void>;
59
+ private updateSelf;
59
60
  update: (presence: Partial<Presence>) => Promise<void>;
60
61
  flushPresenceUpdates: (presenceUpdates: {
61
62
  presence?: Partial<Presence>;
@@ -44,12 +44,14 @@ export class PresenceManager extends EventSubscriber {
44
44
  let peersChanged = false;
45
45
  let selfChanged = false;
46
46
  const peerIdsSet = new Set(this.peerIds);
47
+ const peerSnapshot = message.type === 'sync-resp' ||
48
+ (message.type === 'server-ack' && message.peerPresence)
49
+ ? message.peerPresence
50
+ : undefined;
47
51
  if (message.type === 'presence-changed') {
48
52
  if (this.isSelf(localReplicaInfo, message.userInfo)) {
49
- this._self = message.userInfo;
50
- this._selfReplicaIds.add(message.userInfo.replicaId);
53
+ this.updateSelf(localReplicaInfo, message.userInfo);
51
54
  selfChanged = true;
52
- this.emit('selfChanged', message.userInfo);
53
55
  }
54
56
  else {
55
57
  peerIdsSet.add(message.userInfo.id);
@@ -58,16 +60,15 @@ export class PresenceManager extends EventSubscriber {
58
60
  this.emit('peerChanged', message.userInfo.id, message.userInfo);
59
61
  }
60
62
  }
61
- else if (message.type === 'sync-resp') {
63
+ else if (peerSnapshot) {
62
64
  // reset to provided presence data, which includes all peers.
65
+ const previousPeerIds = this._peerIds;
63
66
  this._peers = {};
64
67
  peerIdsSet.clear();
65
- for (const [id, userInfo] of Object.entries(message.peerPresence)) {
68
+ for (const [id, userInfo] of Object.entries(peerSnapshot)) {
66
69
  if (this.isSelf(localReplicaInfo, userInfo)) {
67
- this._self = userInfo;
68
- this._selfReplicaIds.add(userInfo.replicaId);
70
+ this.updateSelf(localReplicaInfo, userInfo);
69
71
  selfChanged = true;
70
- this.emit('selfChanged', userInfo);
71
72
  }
72
73
  else {
73
74
  peersChanged = true;
@@ -76,6 +77,10 @@ export class PresenceManager extends EventSubscriber {
76
77
  this.emit('peerChanged', id, userInfo);
77
78
  }
78
79
  }
80
+ // also notify when peers have all left
81
+ if (previousPeerIds.length !== peerIdsSet.size) {
82
+ peersChanged = true;
83
+ }
79
84
  }
80
85
  else if (message.type === 'presence-offline') {
81
86
  peerIdsSet.delete(message.userId);
@@ -94,6 +99,22 @@ export class PresenceManager extends EventSubscriber {
94
99
  this.emit('change');
95
100
  }
96
101
  };
102
+ this.updateSelf = (localReplicaInfo, userInfo) => {
103
+ this._self = userInfo;
104
+ if (userInfo.replicaIds) {
105
+ // the server reports the full set of this user's active replicas,
106
+ // so replace rather than accumulate; that way replicas which go
107
+ // away are forgotten.
108
+ this._selfReplicaIds = new Set([
109
+ localReplicaInfo.id,
110
+ ...userInfo.replicaIds,
111
+ ]);
112
+ }
113
+ else {
114
+ this._selfReplicaIds.add(userInfo.replicaId);
115
+ }
116
+ this.emit('selfChanged', userInfo);
117
+ };
97
118
  this.update = async (presence) => {
98
119
  this._updateBatch.update({
99
120
  items: [{ presence }],
@@ -1 +1 @@
1
- {"version":3,"file":"PresenceManager.js","sourceRoot":"","sources":["../../../src/sync/PresenceManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PresenceManager.js","sourceRoot":"","sources":["../../../src/sync/PresenceManager.ts"],"names":[],"mappings":"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"}
@@ -294,21 +294,24 @@ export class ServerSync extends EventSubscriber {
294
294
  // automatically shift between transport modes depending
295
295
  // on whether any peers are present (matching view if
296
296
  // applicable)
297
+ const shouldUseRealtime = () => {
298
+ const hasPeers = this.presence.getViewPeers().length > 0;
299
+ return (hasPeers ||
300
+ (automaticTransportSelection !== 'peers-only' &&
301
+ this.presence.selfReplicaIds.size > 1));
302
+ };
297
303
  const decideIfUpgrade = () => {
298
304
  if (switchoverTimeout) {
299
305
  clearTimeout(switchoverTimeout);
300
306
  }
301
- const hasPeers = this.presence.getViewPeers().length > 0;
302
- const shouldUpgrade = hasPeers ||
303
- (automaticTransportSelection !== 'peers-only' &&
304
- this.presence.selfReplicaIds.size > 1);
307
+ const shouldUpgrade = shouldUseRealtime();
305
308
  if (shouldUpgrade && this.mode === 'pull') {
306
309
  this.setMode('realtime');
307
310
  }
308
311
  else if (!shouldUpgrade && this.mode === 'realtime') {
309
312
  // wait 1 second then switch to pull mode if still empty
310
313
  switchoverTimeout = setTimeout(() => {
311
- if (this.presence.getViewPeers().length === 0) {
314
+ if (!shouldUseRealtime() && this.mode === 'realtime') {
312
315
  this.setMode('pull');
313
316
  }
314
317
  }, 1000);
@@ -1 +1 @@
1
- {"version":3,"file":"Sync.js","sourceRoot":"","sources":["../../../src/sync/Sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Sync.js","sourceRoot":"","sources":["../../../src/sync/Sync.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.4.4",
3
+ "version": "5.6.0",
4
4
  "access": "public",
5
5
  "type": "module",
6
6
  "main": "dist/esm/index.js",
@@ -39,7 +39,7 @@
39
39
  "jszip": "^3.10.1",
40
40
  "jwt-decode": "^3.1.2",
41
41
  "weak-event": "^2.0.5",
42
- "@verdant-web/common": "3.2.1"
42
+ "@verdant-web/common": "3.3.0"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/node": "20.10.5",
@@ -583,9 +583,9 @@ describe('entities', () => {
583
583
 
584
584
  fileList.moveItem(file1Ref, 2);
585
585
 
586
- expect(fileList.get(0)).toBe(file2Ref);
587
- expect(fileList.get(1)).toBe(file3Ref);
588
- expect(fileList.get(2)).toBe(file1Ref);
586
+ expect(fileList.get(0).uid).toBe(file2Ref.uid);
587
+ expect(fileList.get(1).uid).toBe(file3Ref.uid);
588
+ expect(fileList.get(2).uid).toBe(file1Ref.uid);
589
589
  });
590
590
 
591
591
  it('should return nullish for missing map items', async () => {
@@ -27,7 +27,7 @@ import {
27
27
  validateEntityField,
28
28
  } from '@verdant-web/common';
29
29
  import { Context } from '../context/context.js';
30
- import { CHILD_FILE_CHANGED } from '../files/EntityFile.js';
30
+ import { EntityFileContext } from '../files/EntityFile.js';
31
31
  import { FileManager } from '../files/FileManager.js';
32
32
  import { processValueFiles } from '../files/utils.js';
33
33
  import { ClientWithCollections, EntityFile } from '../index.js';
@@ -751,16 +751,38 @@ export class Entity<
751
751
  this.emit('changeDeep', target, ev);
752
752
  this.parent?.deepChange(target, ev);
753
753
  };
754
- [CHILD_FILE_CHANGED] = (file: EntityFile) => {
755
- // consistent with prior behavior, but kind of arbitrary.
756
- this.deepChange(this, { isLocal: false, oid: this.oid });
757
- };
754
+ private createFileContext = (key: any): EntityFileContext => ({
755
+ oid: this.oid,
756
+ key,
757
+ getFileRef: () => {
758
+ const file = this.rawView?.[key];
759
+ return isFileRef(file) ? file : null;
760
+ },
761
+ applyFileRef: (file) => {
762
+ if (this.readonlyKeys.includes(key as string)) {
763
+ throw new Error(`Cannot set readonly key ${key.toString()}`);
764
+ }
765
+ this.addPendingOperations(
766
+ this.isList
767
+ ? this.patchCreator.createListSet(this.oid, key, file)
768
+ : this.patchCreator.createSet(this.oid, key, file),
769
+ );
770
+ },
771
+ subscribe: (callback) => this.subscribe('change', callback),
772
+ onChange: () => this.deepChange(this, { isLocal: false, oid: this.oid }),
773
+ });
758
774
 
759
775
  private getChild = (key: any, oid: ObjectIdentifier) => {
760
776
  const schema = getChildFieldSchema(this.schema, key);
761
777
  if (!schema) {
778
+ let schemaString = '';
779
+ try {
780
+ schemaString = JSON.stringify(this.schema);
781
+ } catch {
782
+ schemaString = '<unable to stringify schema>';
783
+ }
762
784
  throw new Error(
763
- `No schema for key ${String(key)} in ${JSON.stringify(this.schema)}`,
785
+ `No schema for key ${String(key)} in ${schemaString} (${this.oid})`,
764
786
  );
765
787
  }
766
788
  return this.entityFamily.get({
@@ -828,7 +850,7 @@ export class Entity<
828
850
  const file = this.files.get(child.id, {
829
851
  downloadRemote: !!fieldSchema.downloadRemote,
830
852
  ctx: this.ctx,
831
- parent: this,
853
+ fileContext: this.createFileContext(key),
832
854
  });
833
855
 
834
856
  return file as KeyValue[Key];
@@ -1013,7 +1035,7 @@ export class Entity<
1013
1035
  });
1014
1036
  }
1015
1037
  }
1016
- return processValueFiles(value, (file) => this.files.add(file, this));
1038
+ return processValueFiles(value, (file) => this.files.add(file));
1017
1039
  };
1018
1040
 
1019
1041
  private getDeleteMode = (key: any) => {
@@ -389,7 +389,7 @@ export class EntityStore extends Disposable {
389
389
  'files to new entity',
390
390
  oid,
391
391
  );
392
- fileRefs.forEach((file) => this.files.add(file, entity));
392
+ fileRefs.forEach((file) => this.files.add(file));
393
393
  return entity;
394
394
  };
395
395