@verdant-web/store 5.0.0 → 5.0.2
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.
- package/dist/bundle/index.js +4 -4
- package/dist/bundle/index.js.map +3 -3
- package/dist/esm/files/EntityFile.js +1 -1
- package/dist/esm/files/EntityFile.js.map +1 -1
- package/dist/esm/files/FileManager.js +14 -5
- package/dist/esm/files/FileManager.js.map +1 -1
- package/dist/esm/persistence/PersistenceFiles.d.ts +8 -1
- package/dist/esm/persistence/PersistenceFiles.js +12 -3
- package/dist/esm/persistence/PersistenceFiles.js.map +1 -1
- package/dist/esm/persistence/idb/files/IdbPersistenceFileDb.js +2 -1
- package/dist/esm/persistence/idb/files/IdbPersistenceFileDb.js.map +1 -1
- package/dist/esm/persistence/interfaces.d.ts +5 -0
- package/dist/esm/sync/FileSync.js +2 -2
- package/dist/esm/sync/FileSync.js.map +1 -1
- package/package.json +1 -1
- package/src/files/EntityFile.ts +1 -1
- package/src/files/FileManager.ts +22 -5
- package/src/persistence/PersistenceFiles.ts +12 -3
- package/src/persistence/idb/files/IdbPersistenceFileDb.ts +1 -1
- package/src/persistence/interfaces.ts +5 -0
- package/src/sync/FileSync.ts +2 -2
|
@@ -104,7 +104,7 @@ export class EntityFile extends EventSubscriber {
|
|
|
104
104
|
var _c, _d, _e, _f, _g, _h, _j, _k;
|
|
105
105
|
return {
|
|
106
106
|
id: this.id,
|
|
107
|
-
url: (_e = (_c = this.
|
|
107
|
+
url: (_e = (_d = (_c = this._fileData) === null || _c === void 0 ? void 0 : _c.url) !== null && _d !== void 0 ? _d : this._objectUrl) !== null && _e !== void 0 ? _e : undefined,
|
|
108
108
|
name: (_f = this.name) !== null && _f !== void 0 ? _f : 'unknown-file',
|
|
109
109
|
remote: (_h = (_g = this._fileData) === null || _g === void 0 ? void 0 : _g.remote) !== null && _h !== void 0 ? _h : false,
|
|
110
110
|
type: (_j = this.type) !== null && _j !== void 0 ? _j : '',
|
|
@@ -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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"}
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAElE,MAAM,OAAO,WAAY,SAAQ,UAAU;IAM1C,YAAY,EAAE,IAAI,EAAE,OAAO,EAAoC;QAC9D,KAAK,EAAE,CAAC;QAHD,UAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;QAc9C,QAAG,GAAG,KAAK,EAAE,IAAc,EAAE,MAAc,EAAE,EAAE;YAC9C,6BAA6B;YAC7B,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjB,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;gBACpE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;YACrC,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBAClB,kCAAkC;gBAClC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YACD,6EAA6E;YAC7E,yDAAyD;YACzD,MAAM,aAAa,GAAG,MAAM,
|
|
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
|
-
|
|
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
|
-
|
|
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', '
|
|
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":"AAIA,MAAM,OAAO,gBAAgB;IAC5B,YACS,EAAqB,EACrB,OAAiC;QADjC,OAAE,GAAF,EAAE,CAAmB;QACrB,YAAO,GAAP,OAAO,CAA0B;QAmB1C,kBAAa,GAAG,CAAC,KAAoB,EAAE,EAAE,CACxC,IAAI,CAAC,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACvC,QAAG,GAAG,KAAK,EAAE,IAAc,EAAE,EAAE;
|
|
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('
|
|
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('
|
|
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
package/src/files/EntityFile.ts
CHANGED
|
@@ -138,7 +138,7 @@ export class EntityFile extends EventSubscriber<EntityFileEvents> {
|
|
|
138
138
|
getSnapshot(): FileData {
|
|
139
139
|
return {
|
|
140
140
|
id: this.id,
|
|
141
|
-
url: this.
|
|
141
|
+
url: this._fileData?.url ?? this._objectUrl ?? undefined,
|
|
142
142
|
name: this.name ?? 'unknown-file',
|
|
143
143
|
remote: this._fileData?.remote ?? false,
|
|
144
144
|
type: this.type ?? '',
|
package/src/files/FileManager.ts
CHANGED
|
@@ -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 (
|
|
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
|
-
}
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
'
|
|
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
|
|
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>;
|
package/src/sync/FileSync.ts
CHANGED
|
@@ -156,7 +156,7 @@ export class FileSync extends Disposable {
|
|
|
156
156
|
};
|
|
157
157
|
} else {
|
|
158
158
|
this.ctx.log(
|
|
159
|
-
'
|
|
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
|
-
'
|
|
183
|
+
'warn',
|
|
184
184
|
'File information fetch failed',
|
|
185
185
|
`${fileEndpoint}/${id}`,
|
|
186
186
|
e,
|