document-drive 1.29.8-dev.1 → 1.29.8-dev.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/src/queue/base.d.ts.map +1 -1
- package/dist/src/queue/base.js +1 -2
- package/dist/src/queue/types.d.ts +1 -1
- package/dist/src/queue/types.d.ts.map +1 -1
- package/dist/src/server/base-server.d.ts +1 -1
- package/dist/src/server/base-server.d.ts.map +1 -1
- package/dist/src/server/base-server.js +21 -7
- package/dist/src/server/listener/transmitter/internal.d.ts +2 -3
- package/dist/src/server/listener/transmitter/internal.d.ts.map +1 -1
- package/dist/src/server/listener/transmitter/internal.js +1 -3
- package/dist/src/storage/browser.d.ts +0 -4
- package/dist/src/storage/browser.d.ts.map +1 -1
- package/dist/src/storage/browser.js +4 -29
- package/dist/src/storage/filesystem.d.ts +0 -4
- package/dist/src/storage/filesystem.d.ts.map +1 -1
- package/dist/src/storage/filesystem.js +3 -45
- package/dist/src/storage/ipfs.d.ts +0 -4
- package/dist/src/storage/ipfs.d.ts.map +1 -1
- package/dist/src/storage/ipfs.js +4 -49
- package/dist/src/storage/memory.d.ts +0 -4
- package/dist/src/storage/memory.d.ts.map +1 -1
- package/dist/src/storage/memory.js +1 -17
- package/dist/src/storage/prisma/prisma.d.ts +0 -4
- package/dist/src/storage/prisma/prisma.d.ts.map +1 -1
- package/dist/src/storage/prisma/prisma.js +1 -43
- package/dist/src/storage/types.d.ts +50 -4
- package/dist/src/storage/types.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/queue/base.ts"],"names":[],"mappings":"AAKA,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EACL,KAAK,IAAI,EACT,KAAK,SAAS,EACd,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,eAAe,EAEpB,KAAK,GAAG,EACR,KAAK,KAAK,EACV,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AAEpB,qBAAa,WAAW,CAAC,CAAC,CAAE,YAAW,MAAM,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,CAAS;IACnB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,YAAY,CAA0B;gBAElC,EAAE,EAAE,MAAM;IAIhB,UAAU,CAAC,OAAO,EAAE,OAAO;IAI3B,SAAS;IAIT,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAKpB,UAAU;IAKV,YAAY;IAIlB,KAAK;IAIC,UAAU,CAAC,OAAO,EAAE,OAAO;IAI3B,SAAS;IAIT,OAAO;IAIP,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;IAS9B,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;CAQxC;AAED,qBAAa,gBAAiB,YAAW,aAAa;IACpD,SAAS,CAAC,OAAO,4CAAmC;IACpD,SAAS,CAAC,MAAM,SAAK;IACrB,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,CAAM;IACnC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAA8B;gBAElC,OAAO,SAAI,EAAE,OAAO,SAAI;IAK9B,IAAI,CACR,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAC9B,OAAO,CAAC,IAAI,CAAC;IAWV,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/queue/base.ts"],"names":[],"mappings":"AAKA,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EACL,KAAK,IAAI,EACT,KAAK,SAAS,EACd,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,eAAe,EAEpB,KAAK,GAAG,EACR,KAAK,KAAK,EACV,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AAEpB,qBAAa,WAAW,CAAC,CAAC,CAAE,YAAW,MAAM,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,CAAS;IACnB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,YAAY,CAA0B;gBAElC,EAAE,EAAE,MAAM;IAIhB,UAAU,CAAC,OAAO,EAAE,OAAO;IAI3B,SAAS;IAIT,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAKpB,UAAU;IAKV,YAAY;IAIlB,KAAK;IAIC,UAAU,CAAC,OAAO,EAAE,OAAO;IAI3B,SAAS;IAIT,OAAO;IAIP,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;IAS9B,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;CAQxC;AAED,qBAAa,gBAAiB,YAAW,aAAa;IACpD,SAAS,CAAC,OAAO,4CAAmC;IACpD,SAAS,CAAC,MAAM,SAAK;IACrB,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,CAAM;IACnC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAA8B;gBAElC,OAAO,SAAI,EAAE,OAAO,SAAI;IAK9B,IAAI,CACR,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAC9B,OAAO,CAAC,IAAI,CAAC;IAWV,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC;IA6DtC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;IAY7C,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;IAMhD,eAAe,CAAC,KAAK,EAAE,MAAM;IAS7B,SAAS;IAIT,OAAO,CAAC,YAAY;YAON,sBAAsB;YAatB,cAAc;IA0E5B,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,MAAM,WAAW,EACxC,KAAK,EAAE,CAAC,EACR,GAAG,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAK9B,EAAE,CAAC,CAAC,SAAS,MAAM,WAAW,EACnC,KAAK,EAAE,CAAC,EACR,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,GACjB,WAAW;IAId,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAG1D"}
|
package/dist/src/queue/base.js
CHANGED
|
@@ -83,8 +83,7 @@ export class BaseQueueManager {
|
|
|
83
83
|
throw new Error("Queue is deleted");
|
|
84
84
|
}
|
|
85
85
|
// checks if the job is for a document that doesn't exist in storage yet
|
|
86
|
-
const newDocument = job.documentId &&
|
|
87
|
-
!(await this.delegate.checkDocumentExists(job.documentId));
|
|
86
|
+
const newDocument = job.documentId && !(await this.delegate.exists(job.documentId));
|
|
88
87
|
// if it is a new document and queue is not yet blocked then
|
|
89
88
|
// blocks it so the jobs are not processed until it's ready
|
|
90
89
|
if (newDocument && !(await queue.isBlocked())) {
|
|
@@ -21,7 +21,7 @@ export interface QueueEvents {
|
|
|
21
21
|
queueRemoved: (queueId: string) => void;
|
|
22
22
|
}
|
|
23
23
|
export interface IServerDelegate {
|
|
24
|
-
|
|
24
|
+
exists: (documentId: string) => Promise<boolean>;
|
|
25
25
|
processJob: (job: Job) => Promise<IOperationResult>;
|
|
26
26
|
}
|
|
27
27
|
export interface IQueueManager {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/queue/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B;AAED,MAAM,WAAW,YAAa,SAAQ,OAAO;IAC3C,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,SAAU,SAAQ,OAAO;IACxC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,MAAM,GAAG,GAAG,YAAY,GAAG,SAAS,CAAC;AAE3C,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC;AAE3B,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACjE,SAAS,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAClD,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,eAAe;IAC9B,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/queue/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,7 +53,7 @@ export declare class BaseDocumentDriveServer implements IBaseDocumentDriveServer
|
|
|
53
53
|
getDocument<TDocument extends PHDocument>(driveId: string, documentId: string, options?: GetDocumentOptions): Promise<TDocument>;
|
|
54
54
|
getDocuments(driveId: string): Promise<string[]>;
|
|
55
55
|
protected createDocument<TDocument extends PHDocument>(driveId: string, input: CreateDocumentInput<TDocument>): Promise<TDocument>;
|
|
56
|
-
deleteDocument(driveId: string, documentId: string): Promise<
|
|
56
|
+
deleteDocument(driveId: string, documentId: string): Promise<boolean>;
|
|
57
57
|
_processOperations(driveId: string, documentId: string | undefined, documentStorage: PHDocument, operations: Operation[]): Promise<{
|
|
58
58
|
readonly document: PHDocument;
|
|
59
59
|
readonly operationsApplied: Operation[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-server.d.ts","sourceRoot":"","sources":["../../../src/server/base-server.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"base-server.d.ts","sourceRoot":"","sources":["../../../src/server/base-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,11 +33,11 @@ export class BaseDocumentDriveServer {
|
|
|
33
33
|
emit: (...args) => this.eventEmitter.emit("defaultRemoteDrive", ...args),
|
|
34
34
|
};
|
|
35
35
|
queueDelegate = {
|
|
36
|
-
|
|
36
|
+
exists: (documentId) => this.documentStorage.exists(documentId),
|
|
37
37
|
processOperationJob: async ({ driveId, documentId, operations, options, }) => {
|
|
38
|
-
return documentId
|
|
39
|
-
? this.
|
|
40
|
-
: this.
|
|
38
|
+
return !documentId || driveId === documentId
|
|
39
|
+
? this.addDriveOperations(driveId, operations, options)
|
|
40
|
+
: this.addOperations(driveId, documentId, operations, options);
|
|
41
41
|
},
|
|
42
42
|
processActionJob: async ({ driveId, documentId, actions, options, }) => {
|
|
43
43
|
return documentId
|
|
@@ -443,7 +443,7 @@ export class BaseDocumentDriveServer {
|
|
|
443
443
|
return document;
|
|
444
444
|
}
|
|
445
445
|
getDocuments(driveId) {
|
|
446
|
-
return this.
|
|
446
|
+
return this.documentStorage.getChildren(driveId);
|
|
447
447
|
}
|
|
448
448
|
async createDocument(driveId, input) {
|
|
449
449
|
// if a document was provided then checks if it's valid
|
|
@@ -470,7 +470,21 @@ export class BaseDocumentDriveServer {
|
|
|
470
470
|
clipboard: [],
|
|
471
471
|
state: state ?? document.state,
|
|
472
472
|
};
|
|
473
|
-
await this.
|
|
473
|
+
await this.documentStorage.create(input.id, documentStorage);
|
|
474
|
+
try {
|
|
475
|
+
await this.documentStorage.addChild(driveId, input.id);
|
|
476
|
+
}
|
|
477
|
+
catch (e) {
|
|
478
|
+
this.logger.error("Error adding child document", e);
|
|
479
|
+
// revert the document creation
|
|
480
|
+
try {
|
|
481
|
+
await this.documentStorage.delete(input.id);
|
|
482
|
+
}
|
|
483
|
+
catch (e) {
|
|
484
|
+
this.logger.error("FATAL: Could not revert document creation. This means that we created a document but failed to add it to the drive..", e);
|
|
485
|
+
}
|
|
486
|
+
throw e;
|
|
487
|
+
}
|
|
474
488
|
// set initial state for new syncUnits
|
|
475
489
|
for (const syncUnit of input.synchronizationUnits) {
|
|
476
490
|
this.synchronizationManager.updateSyncStatus(syncUnit.syncId, {
|
|
@@ -508,7 +522,7 @@ export class BaseDocumentDriveServer {
|
|
|
508
522
|
this.logger.warn("Error deleting document", error);
|
|
509
523
|
}
|
|
510
524
|
await this.cache.deleteDocument(documentId);
|
|
511
|
-
return this.
|
|
525
|
+
return this.documentStorage.delete(documentId);
|
|
512
526
|
}
|
|
513
527
|
async _processOperations(driveId, documentId, documentStorage, operations) {
|
|
514
528
|
const operationsApplied = [];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type GlobalStateFromDocument, type LocalStateFromDocument, type OperationFromDocument, type OperationScope, type PHDocument } from "document-model";
|
|
2
|
-
import { type
|
|
2
|
+
import { type IBaseDocumentDriveServer, type IDocumentDriveServer, type ListenerRevision, type StrandUpdate } from "#server/types";
|
|
3
3
|
import { type ITransmitter, type StrandUpdateSource } from "./types.js";
|
|
4
4
|
export interface IReceiver {
|
|
5
5
|
onStrands: <TDocument extends PHDocument>(strands: InternalTransmitterUpdate<TDocument>[]) => Promise<void>;
|
|
@@ -20,9 +20,8 @@ export type InternalTransmitterUpdate<TDocument extends PHDocument> = {
|
|
|
20
20
|
export declare class InternalTransmitter implements ITransmitter {
|
|
21
21
|
#private;
|
|
22
22
|
protected drive: IBaseDocumentDriveServer;
|
|
23
|
-
protected listener: Listener;
|
|
24
23
|
protected receiver: IReceiver;
|
|
25
|
-
constructor(
|
|
24
|
+
constructor(drive: IDocumentDriveServer, receiver: IReceiver);
|
|
26
25
|
transmit(strands: StrandUpdate[], _source: StrandUpdateSource): Promise<ListenerRevision[]>;
|
|
27
26
|
disconnect(): Promise<void>;
|
|
28
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../../../src/server/listener/transmitter/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AAExB,OAAO,
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../../../src/server/listener/transmitter/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAExE,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,CAAC,SAAS,SAAS,UAAU,EACtC,OAAO,EAAE,yBAAyB,CAAC,SAAS,CAAC,EAAE,KAC5C,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,uBAAuB,CAAC,SAAS,SAAS,UAAU,IAAI,IAAI,CACtE,qBAAqB,CAAC,SAAS,CAAC,EAChC,OAAO,CACR,GAAG;IACF,KAAK,EAAE,uBAAuB,CAAC,SAAS,CAAC,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAC9E,aAAa,EACT,uBAAuB,CAAC,SAAS,CAAC,GAClC,sBAAsB,CAAC,SAAS,CAAC,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,yBAAyB,CAAC,SAAS,SAAS,UAAU,IAAI;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,uBAAuB,CAAC,SAAS,CAAC,EAAE,CAAC;IACjD,KAAK,EAAE,uBAAuB,CAAC,SAAS,CAAC,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;CAC/E,CAAC;AAEF,qBAAa,mBAAoB,YAAW,YAAY;;IACtD,SAAS,CAAC,KAAK,EAAE,wBAAwB,CAAC;IAC1C,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC;gBAElB,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,SAAS;IAkDtD,QAAQ,CACZ,OAAO,EAAE,YAAY,EAAE,EAEvB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,gBAAgB,EAAE,CAAC;IA8BxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAGlC"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { logger } from "#utils/logger";
|
|
2
2
|
export class InternalTransmitter {
|
|
3
3
|
drive;
|
|
4
|
-
listener;
|
|
5
4
|
receiver;
|
|
6
|
-
constructor(
|
|
7
|
-
this.listener = listener;
|
|
5
|
+
constructor(drive, receiver) {
|
|
8
6
|
this.drive = drive;
|
|
9
7
|
this.receiver = receiver;
|
|
10
8
|
}
|
|
@@ -17,12 +17,8 @@ export declare class BrowserStorage implements IDriveStorage, IDocumentStorage {
|
|
|
17
17
|
removeChild(parentId: string, childId: string): Promise<boolean>;
|
|
18
18
|
addChild(parentId: string, childId: string): Promise<void>;
|
|
19
19
|
getChildren(parentId: string): Promise<string[]>;
|
|
20
|
-
checkDocumentExists(drive: string, documentId: string): Promise<boolean>;
|
|
21
20
|
private getManifest;
|
|
22
21
|
private updateDriveManifest;
|
|
23
|
-
getDocuments(drive: string): Promise<string[]>;
|
|
24
|
-
createDocument(drive: string, id: string, document: PHDocument): Promise<void>;
|
|
25
|
-
deleteDocument(drive: string, id: string): Promise<void>;
|
|
26
22
|
clearStorage(): Promise<void>;
|
|
27
23
|
addDocumentOperations(drive: string, id: string, operations: Operation[], header: DocumentHeader): Promise<void>;
|
|
28
24
|
getDrives(): Promise<string[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../src/storage/browser.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAG9D,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EAET,UAAU,EACX,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAOvE,qBAAa,cAAe,YAAW,aAAa,EAAE,gBAAgB;IACpE,OAAO,CAAC,EAAE,CAAuB;IAEjC,MAAM,CAAC,MAAM,SAAqB;IAClC,MAAM,CAAC,GAAG,SAAO;IACjB,MAAM,CAAC,YAAY,SAAc;IACjC,MAAM,CAAC,YAAY,SAAc;gBAErB,SAAS,CAAC,EAAE,MAAM;IAUxB,KAAK;IASL,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../src/storage/browser.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAG9D,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EAET,UAAU,EACX,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAOvE,qBAAa,cAAe,YAAW,aAAa,EAAE,gBAAgB;IACpE,OAAO,CAAC,EAAE,CAAuB;IAEjC,MAAM,CAAC,MAAM,SAAqB;IAClC,MAAM,CAAC,GAAG,SAAO;IACjB,MAAM,CAAC,YAAY,SAAc;IACjC,MAAM,CAAC,YAAY,SAAc;gBAErB,SAAS,CAAC,EAAE,MAAM;IAUxB,KAAK;IASL,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU5C,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/D,GAAG,CAAC,SAAS,SAAS,UAAU,EACpC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,SAAS,CAAC;IAaf,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA4B5C,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYhE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB1D,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YASxC,WAAW;YAQX,mBAAmB;IAQ3B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B,qBAAqB,CACzB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,SAAS,EAAE,EACvB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC;IAgBV,SAAS;IAYT,cAAc,CAAC,IAAI,EAAE,MAAM;IAa3B,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB;IAqBpD,WAAW,CAAC,EAAE,EAAE,MAAM;IAatB,kBAAkB,CACtB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,SAAS,CAAC,mBAAmB,CAAC,EAAE,EAC5C,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC;IAYV,+BAA+B,CACnC,KAAK,EAAE,wBAAwB,EAAE,GAChC,OAAO,CACR;QACE,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,EAAE,CACJ;IAyCK,0BAA0B;YAYlB,YAAY;YAWZ,eAAe;IAe7B,gBAAgB,CAAC,UAAU,EAAE,MAAM;IAInC,gBAAgB,CAAC,OAAO,EAAE,MAAM;CAGjC"}
|
|
@@ -26,6 +26,7 @@ export class BrowserStorage {
|
|
|
26
26
|
const document = await db.getItem(this.buildDocumentKey(documentId));
|
|
27
27
|
return !!document;
|
|
28
28
|
}
|
|
29
|
+
// TODO: this should throw an error if the document already exists.
|
|
29
30
|
async create(documentId, document) {
|
|
30
31
|
const db = await this.db;
|
|
31
32
|
await db.setItem(this.buildDocumentKey(documentId), document);
|
|
@@ -89,9 +90,6 @@ export class BrowserStorage {
|
|
|
89
90
|
////////////////////////////////
|
|
90
91
|
// IDriveStorage
|
|
91
92
|
////////////////////////////////
|
|
92
|
-
checkDocumentExists(drive, documentId) {
|
|
93
|
-
return this.exists(documentId);
|
|
94
|
-
}
|
|
95
93
|
async getManifest(driveId) {
|
|
96
94
|
const db = await this.db;
|
|
97
95
|
const manifest = await db.getItem(this.buildManifestKey(driveId));
|
|
@@ -101,29 +99,6 @@ export class BrowserStorage {
|
|
|
101
99
|
const db = await this.db;
|
|
102
100
|
await db.setItem(this.buildManifestKey(driveId), manifest);
|
|
103
101
|
}
|
|
104
|
-
async getDocuments(drive) {
|
|
105
|
-
const manifest = await this.getManifest(drive);
|
|
106
|
-
return manifest.documentIds;
|
|
107
|
-
}
|
|
108
|
-
async createDocument(drive, id, document) {
|
|
109
|
-
await this.create(id, document);
|
|
110
|
-
// Update the drive manifest to include this document
|
|
111
|
-
const manifest = await this.getManifest(drive);
|
|
112
|
-
if (!manifest.documentIds.includes(id)) {
|
|
113
|
-
manifest.documentIds.push(id);
|
|
114
|
-
await this.updateDriveManifest(drive, manifest);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
async deleteDocument(drive, id) {
|
|
118
|
-
await (await this.db).removeItem(this.buildDocumentKey(id));
|
|
119
|
-
// Update the drive manifest to remove this document
|
|
120
|
-
const manifest = await this.getManifest(drive);
|
|
121
|
-
const docIndex = manifest.documentIds.indexOf(id);
|
|
122
|
-
if (docIndex !== -1) {
|
|
123
|
-
manifest.documentIds.splice(docIndex, 1);
|
|
124
|
-
await this.updateDriveManifest(drive, manifest);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
102
|
async clearStorage() {
|
|
128
103
|
return (await this.db).clear();
|
|
129
104
|
}
|
|
@@ -179,9 +154,9 @@ export class BrowserStorage {
|
|
|
179
154
|
}
|
|
180
155
|
async deleteDrive(id) {
|
|
181
156
|
// First get all documents in this drive
|
|
182
|
-
const documents = await this.
|
|
157
|
+
const documents = await this.getChildren(id);
|
|
183
158
|
// Delete each document (this already updates the manifest)
|
|
184
|
-
await Promise.all(documents.map((doc) => this.
|
|
159
|
+
await Promise.all(documents.map((doc) => this.delete(doc)));
|
|
185
160
|
// Delete the drive and its manifest
|
|
186
161
|
const db = await this.db;
|
|
187
162
|
await db.removeItem(this.buildManifestKey(id));
|
|
@@ -231,7 +206,7 @@ export class BrowserStorage {
|
|
|
231
206
|
const drives = await this.getDrives();
|
|
232
207
|
for (const drive of drives) {
|
|
233
208
|
await this.migrateDrive(drive);
|
|
234
|
-
const documents = await this.
|
|
209
|
+
const documents = await this.getChildren(drive);
|
|
235
210
|
await Promise.all(documents.map(async (docId) => this.migrateDocument(drive, docId)));
|
|
236
211
|
}
|
|
237
212
|
}
|
|
@@ -12,11 +12,7 @@ export declare class FilesystemStorage implements IDriveStorage, IDocumentStorag
|
|
|
12
12
|
addChild(parentId: string, childId: string): Promise<void>;
|
|
13
13
|
removeChild(parentId: string, childId: string): Promise<boolean>;
|
|
14
14
|
getChildren(parentId: string): Promise<string[]>;
|
|
15
|
-
getDocuments(drive: string): Promise<string[]>;
|
|
16
|
-
checkDocumentExists(drive: string, id: string): Promise<boolean>;
|
|
17
|
-
createDocument(drive: string, id: string, document: PHDocument): Promise<void>;
|
|
18
15
|
clearStorage(): Promise<void>;
|
|
19
|
-
deleteDocument(drive: string, id: string): Promise<void>;
|
|
20
16
|
addDocumentOperations(drive: string, id: string, operations: Operation[], header: DocumentHeader): Promise<void>;
|
|
21
17
|
getDrives(): Promise<string[]>;
|
|
22
18
|
getDriveBySlug(slug: string): Promise<DocumentDriveDocument>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../../src/storage/filesystem.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,SAAS,EAEd,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AAWxB,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAavE,qBAAa,iBAAkB,YAAW,aAAa,EAAE,gBAAgB;IACvE,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,EAAE,MAAM;IAS5B,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../../src/storage/filesystem.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,SAAS,EAEd,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AAWxB,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAavE,qBAAa,iBAAkB,YAAW,aAAa,EAAE,gBAAgB;IACvE,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,EAAE,MAAM;IAS5B,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM5C,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU;IAS/C,GAAG,CAAC,SAAS,SAAS,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAYnE,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA2B5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB1D,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYhE,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAShD,YAAY;IAeZ,qBAAqB,CACzB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,SAAS,EAAE,EACvB,MAAM,EAAE,cAAc;IAuBlB,SAAS;IAWT,cAAc,CAAC,IAAI,EAAE,MAAM;IAmB3B,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB;IAqBpD,WAAW,CAAC,EAAE,EAAE,MAAM;IAYtB,kBAAkB,CACtB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,SAAS,CAAC,mBAAmB,CAAC,EAAE,EAC5C,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC;IAqBV,+BAA+B,CACnC,KAAK,EAAE,wBAAwB,EAAE,GAChC,OAAO,CACR;QACE,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,EAAE,CACJ;IA4CD,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,kBAAkB;YAIZ,WAAW;YAWX,mBAAmB;CAOlC"}
|
|
@@ -21,6 +21,7 @@ export class FilesystemStorage {
|
|
|
21
21
|
const documentExists = existsSync(this._buildDocumentPath(documentId));
|
|
22
22
|
return Promise.resolve(documentExists);
|
|
23
23
|
}
|
|
24
|
+
// TODO: this should throw an error if the document already exists.
|
|
24
25
|
create(documentId, document) {
|
|
25
26
|
const documentPath = this._buildDocumentPath(documentId);
|
|
26
27
|
writeFileSync(documentPath, stringify(document), {
|
|
@@ -95,26 +96,6 @@ export class FilesystemStorage {
|
|
|
95
96
|
////////////////////////////////
|
|
96
97
|
// IDriveStorage
|
|
97
98
|
////////////////////////////////
|
|
98
|
-
async getDocuments(drive) {
|
|
99
|
-
const manifest = await this.getManifest(drive);
|
|
100
|
-
return manifest.documentIds;
|
|
101
|
-
}
|
|
102
|
-
checkDocumentExists(drive, id) {
|
|
103
|
-
return this.exists(id);
|
|
104
|
-
}
|
|
105
|
-
async createDocument(drive, id, document) {
|
|
106
|
-
const documentPath = this._buildDocumentPath(id);
|
|
107
|
-
writeFileSync(documentPath, stringify(document), {
|
|
108
|
-
encoding: "utf-8",
|
|
109
|
-
});
|
|
110
|
-
// Update the drive manifest to include this document
|
|
111
|
-
const manifest = await this.getManifest(drive);
|
|
112
|
-
if (!manifest.documentIds.includes(id)) {
|
|
113
|
-
manifest.documentIds.push(id);
|
|
114
|
-
await this.updateDriveManifest(drive, manifest);
|
|
115
|
-
}
|
|
116
|
-
return Promise.resolve();
|
|
117
|
-
}
|
|
118
99
|
async clearStorage() {
|
|
119
100
|
// delete content of basePath
|
|
120
101
|
const files = (await fs.readdir(this.basePath, { withFileTypes: true })).filter((dirent) => !!dirent.name);
|
|
@@ -124,29 +105,6 @@ export class FilesystemStorage {
|
|
|
124
105
|
});
|
|
125
106
|
}));
|
|
126
107
|
}
|
|
127
|
-
async deleteDocument(drive, id) {
|
|
128
|
-
// Update the drive manifest to remove this document
|
|
129
|
-
const manifest = await this.getManifest(drive);
|
|
130
|
-
const docIndex = manifest.documentIds.indexOf(id);
|
|
131
|
-
if (docIndex !== -1) {
|
|
132
|
-
manifest.documentIds.splice(docIndex, 1);
|
|
133
|
-
await this.updateDriveManifest(drive, manifest);
|
|
134
|
-
}
|
|
135
|
-
// Check if this document exists in other drive manifests
|
|
136
|
-
// Only delete the actual file if no other drive references it
|
|
137
|
-
const drives = await this.getDrives();
|
|
138
|
-
for (const driveId of drives) {
|
|
139
|
-
if (driveId === drive)
|
|
140
|
-
continue;
|
|
141
|
-
const otherManifest = await this.getManifest(driveId);
|
|
142
|
-
if (otherManifest.documentIds.includes(id)) {
|
|
143
|
-
// Document still referenced by another drive, don't delete the file
|
|
144
|
-
return Promise.resolve();
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
// If we got here, no other drive references this document, so we can delete it
|
|
148
|
-
return fs.rm(this._buildDocumentPath(id));
|
|
149
|
-
}
|
|
150
108
|
async addDocumentOperations(drive, id, operations, header) {
|
|
151
109
|
const document = await this.get(id);
|
|
152
110
|
if (!document) {
|
|
@@ -202,9 +160,9 @@ export class FilesystemStorage {
|
|
|
202
160
|
}
|
|
203
161
|
async deleteDrive(id) {
|
|
204
162
|
// First get all documents in this drive
|
|
205
|
-
const documents = await this.
|
|
163
|
+
const documents = await this.getChildren(id);
|
|
206
164
|
// Delete each document from this drive (may not actually delete the file if shared with other drives)
|
|
207
|
-
await Promise.all(documents.map((doc) => this.
|
|
165
|
+
await Promise.all(documents.map((doc) => this.delete(doc)));
|
|
208
166
|
// Delete the drive manifest and the drive itself
|
|
209
167
|
await fs.rm(this._buildManifestPath(id));
|
|
210
168
|
await fs.rm(this._buildDocumentPath(id));
|
|
@@ -13,10 +13,6 @@ export declare class IPFSStorage implements IStorage, IDocumentStorage {
|
|
|
13
13
|
addChild(parentId: string, childId: string): Promise<void>;
|
|
14
14
|
removeChild(parentId: string, childId: string): Promise<boolean>;
|
|
15
15
|
getChildren(parentId: string): Promise<string[]>;
|
|
16
|
-
checkDocumentExists(drive: string, id: string): Promise<boolean>;
|
|
17
|
-
getDocuments(drive: string): Promise<string[]>;
|
|
18
|
-
createDocument(drive: string, id: string, document: PHDocument): Promise<void>;
|
|
19
|
-
deleteDocument(drive: string, id: string): Promise<void>;
|
|
20
16
|
addDocumentOperations<TDocument extends PHDocument>(drive: string, id: string, operations: Operation[], header: DocumentHeader): Promise<void>;
|
|
21
17
|
getDrives(): Promise<string[]>;
|
|
22
18
|
getDrive(id: string): Promise<DocumentDriveDocument>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipfs.d.ts","sourceRoot":"","sources":["../../../src/storage/ipfs.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAG9D,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,SAAS,EAEd,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAO7D,qBAAa,WAAY,YAAW,QAAQ,EAAE,gBAAgB;IAC5D,OAAO,CAAC,EAAE,CAAM;gBAEJ,KAAK,EAAE,KAAK;IAQlB,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ipfs.d.ts","sourceRoot":"","sources":["../../../src/storage/ipfs.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAG9D,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,SAAS,EAEd,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAO7D,qBAAa,WAAY,YAAW,QAAQ,EAAE,gBAAgB;IAC5D,OAAO,CAAC,EAAE,CAAM;gBAEJ,KAAK,EAAE,KAAK;IAQlB,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB5C,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/D,GAAG,CAAC,SAAS,SAAS,UAAU,EACpC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,SAAS,CAAC;IAkBf,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB1D,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYhE,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAQhD,qBAAqB,CAAC,SAAS,SAAS,UAAU,EACtD,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,SAAS,EAAE,EACvB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC;IAgBV,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAqB9B,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAepD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAkB5D,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAcpE,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBtC,kBAAkB,CACtB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,SAAS,CAAC,mBAAmB,CAAC,EAAE,EAC5C,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC;IAcV,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAa7B,+BAA+B,CACnC,KAAK,EAAE,wBAAwB,EAAE,GAChC,OAAO,CACR;QACE,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,EAAE,CACJ;IA4CD,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,uBAAuB;YAIjB,gBAAgB;YAgBhB,mBAAmB;CASlC"}
|
package/dist/src/storage/ipfs.js
CHANGED
|
@@ -26,6 +26,7 @@ export class IPFSStorage {
|
|
|
26
26
|
}
|
|
27
27
|
return false;
|
|
28
28
|
}
|
|
29
|
+
// TODO: this should throw an error if the document already exists.
|
|
29
30
|
async create(documentId, document) {
|
|
30
31
|
await this.fs.writeBytes(new TextEncoder().encode(stringify(document)), this._buildDocumentPath(documentId));
|
|
31
32
|
}
|
|
@@ -99,64 +100,18 @@ export class IPFSStorage {
|
|
|
99
100
|
}
|
|
100
101
|
// IDriveStorage
|
|
101
102
|
////////////////////////////////
|
|
102
|
-
async checkDocumentExists(drive, id) {
|
|
103
|
-
return this.exists(id);
|
|
104
|
-
}
|
|
105
|
-
async getDocuments(drive) {
|
|
106
|
-
const manifest = await this.getDriveManifest(drive);
|
|
107
|
-
return manifest.documentIds;
|
|
108
|
-
}
|
|
109
|
-
async createDocument(drive, id, document) {
|
|
110
|
-
await this.create(id, document);
|
|
111
|
-
// Update the drive manifest to include this document
|
|
112
|
-
const manifest = await this.getDriveManifest(drive);
|
|
113
|
-
if (!manifest.documentIds.includes(id)) {
|
|
114
|
-
manifest.documentIds.push(id);
|
|
115
|
-
await this.updateDriveManifest(drive, manifest);
|
|
116
|
-
}
|
|
117
|
-
return Promise.resolve();
|
|
118
|
-
}
|
|
119
|
-
async deleteDocument(drive, id) {
|
|
120
|
-
// Update the drive manifest to remove this document
|
|
121
|
-
const manifest = await this.getDriveManifest(drive);
|
|
122
|
-
const docIndex = manifest.documentIds.indexOf(id);
|
|
123
|
-
if (docIndex !== -1) {
|
|
124
|
-
manifest.documentIds.splice(docIndex, 1);
|
|
125
|
-
await this.updateDriveManifest(drive, manifest);
|
|
126
|
-
}
|
|
127
|
-
// Check if this document exists in other drive manifests
|
|
128
|
-
// Only delete the actual file if no other drive references it
|
|
129
|
-
const drives = await this.getDrives();
|
|
130
|
-
for (const driveId of drives) {
|
|
131
|
-
if (driveId === drive)
|
|
132
|
-
continue;
|
|
133
|
-
const otherManifest = await this.getDriveManifest(driveId);
|
|
134
|
-
if (otherManifest.documentIds.includes(id)) {
|
|
135
|
-
// Document still referenced by another drive, don't delete the file
|
|
136
|
-
return Promise.resolve();
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
// If we got here, no other drive references this document, so we can delete it
|
|
140
|
-
try {
|
|
141
|
-
await this.fs.rm(this._buildDocumentPath(id));
|
|
142
|
-
return Promise.resolve();
|
|
143
|
-
}
|
|
144
|
-
catch (error) {
|
|
145
|
-
// If file doesn't exist, consider it deleted already
|
|
146
|
-
return Promise.resolve();
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
103
|
async addDocumentOperations(drive, id, operations, header) {
|
|
150
104
|
const document = await this.get(id);
|
|
151
105
|
if (!document) {
|
|
152
106
|
throw new Error(`Document with id ${id} not found`);
|
|
153
107
|
}
|
|
154
108
|
const mergedOperations = mergeOperations(document.operations, operations);
|
|
155
|
-
await this.
|
|
109
|
+
await this.create(id, {
|
|
156
110
|
...document,
|
|
157
111
|
...header,
|
|
158
112
|
operations: mergedOperations,
|
|
159
113
|
});
|
|
114
|
+
await this.addChild(drive, id);
|
|
160
115
|
}
|
|
161
116
|
async getDrives() {
|
|
162
117
|
try {
|
|
@@ -218,7 +173,7 @@ export class IPFSStorage {
|
|
|
218
173
|
const manifest = await this.getDriveManifest(id);
|
|
219
174
|
const documents = manifest.documentIds;
|
|
220
175
|
// Delete each document from this drive (may not actually delete files if shared with other drives)
|
|
221
|
-
await Promise.all(documents.map((document) => this.
|
|
176
|
+
await Promise.all(documents.map((document) => this.delete(document)));
|
|
222
177
|
// Delete the drive manifest
|
|
223
178
|
try {
|
|
224
179
|
await this.fs.rm(this._buildDriveManifestPath(id));
|
|
@@ -13,12 +13,8 @@ export declare class MemoryStorage implements IDriveStorage, IDocumentStorage {
|
|
|
13
13
|
addChild(parentId: string, childId: string): Promise<void>;
|
|
14
14
|
removeChild(parentId: string, childId: string): Promise<boolean>;
|
|
15
15
|
getChildren(parentId: string): Promise<string[]>;
|
|
16
|
-
checkDocumentExists(drive: string, id: string): Promise<boolean>;
|
|
17
|
-
getDocuments(drive: string): Promise<string[]>;
|
|
18
16
|
clearStorage(): Promise<void>;
|
|
19
|
-
createDocument(drive: string, id: string, document: PHDocument): Promise<void>;
|
|
20
17
|
addDocumentOperations(drive: string, id: string, operations: Operation[], header: DocumentHeader): Promise<void>;
|
|
21
|
-
deleteDocument(drive: string, id: string): Promise<void>;
|
|
22
18
|
getDrives(): Promise<string[]>;
|
|
23
19
|
getDriveBySlug(slug: string): Promise<DocumentDriveDocument>;
|
|
24
20
|
createDrive(id: string, drive: DocumentDriveDocument): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/storage/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,qBAAqB,EAE1B,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAMvE,qBAAa,aAAc,YAAW,aAAa,EAAE,gBAAgB;IACnE,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,cAAc,CAAgC;;IAWtD,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/storage/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,qBAAqB,EAE1B,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAMvE,qBAAa,aAAc,YAAW,aAAa,EAAE,gBAAgB;IACnE,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,cAAc,CAAgC;;IAWtD,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK5C,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU;IAM/C,GAAG,CAAC,SAAS,SAAS,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IASnE,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqB5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAgB1C,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAU7C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAShD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAK7B,qBAAqB,CACzB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,SAAS,EAAE,EACvB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC;IAeV,SAAS;IAIT,cAAc,CAAC,IAAI,EAAE,MAAM;IAW3B,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB;IAqBpD,kBAAkB,CACtB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,qBAAqB,CAAC,qBAAqB,CAAC,EAAE,EAC1D,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC;IAcV,WAAW,CAAC,EAAE,EAAE,MAAM;IA4BtB,+BAA+B,CACnC,KAAK,EAAE,wBAAwB,EAAE,GAChC,OAAO,CACR;QACE,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,EAAE,CACJ;IA4CD,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,mBAAmB;CAG5B"}
|
|
@@ -12,6 +12,7 @@ export class MemoryStorage {
|
|
|
12
12
|
exists(documentId) {
|
|
13
13
|
return Promise.resolve(!!this.documents[documentId]);
|
|
14
14
|
}
|
|
15
|
+
// TODO: this should throw an error if the document already exists.
|
|
15
16
|
create(documentId, document) {
|
|
16
17
|
this.documents[documentId] = document;
|
|
17
18
|
return Promise.resolve();
|
|
@@ -67,24 +68,10 @@ export class MemoryStorage {
|
|
|
67
68
|
////////////////////////////////
|
|
68
69
|
// IDriveStorage
|
|
69
70
|
////////////////////////////////
|
|
70
|
-
checkDocumentExists(drive, id) {
|
|
71
|
-
return this.exists(id);
|
|
72
|
-
}
|
|
73
|
-
getDocuments(drive) {
|
|
74
|
-
const manifest = this.getManifest(drive);
|
|
75
|
-
return Promise.resolve([...manifest.documentIds]);
|
|
76
|
-
}
|
|
77
71
|
async clearStorage() {
|
|
78
72
|
this.documents = {};
|
|
79
73
|
this.driveManifests = {};
|
|
80
74
|
}
|
|
81
|
-
async createDocument(drive, id, document) {
|
|
82
|
-
await this.create(id, document);
|
|
83
|
-
// Update the drive manifest
|
|
84
|
-
const manifest = this.getManifest(drive);
|
|
85
|
-
manifest.documentIds.add(id);
|
|
86
|
-
this.updateDriveManifest(drive, manifest);
|
|
87
|
-
}
|
|
88
75
|
async addDocumentOperations(drive, id, operations, header) {
|
|
89
76
|
const document = await this.get(id);
|
|
90
77
|
if (!document) {
|
|
@@ -97,9 +84,6 @@ export class MemoryStorage {
|
|
|
97
84
|
operations: mergedOperations,
|
|
98
85
|
};
|
|
99
86
|
}
|
|
100
|
-
async deleteDocument(drive, id) {
|
|
101
|
-
this.delete(id);
|
|
102
|
-
}
|
|
103
87
|
async getDrives() {
|
|
104
88
|
return Object.keys(this.driveManifests);
|
|
105
89
|
}
|
|
@@ -44,7 +44,6 @@ export declare class PrismaStorage implements IDriveStorage, IDocumentStorage {
|
|
|
44
44
|
operations: Operation[];
|
|
45
45
|
header: DocumentHeader;
|
|
46
46
|
}>): Promise<never>;
|
|
47
|
-
createDocument(drive: string, id: string, document: PHDocument): Promise<void>;
|
|
48
47
|
private _addDocumentOperations;
|
|
49
48
|
addDocumentOperationsWithTransaction<TDocument extends PHDocument>(drive: string, id: string, callback: (document: TDocument) => Promise<{
|
|
50
49
|
operations: OperationFromDocument<TDocument>[];
|
|
@@ -52,9 +51,6 @@ export declare class PrismaStorage implements IDriveStorage, IDocumentStorage {
|
|
|
52
51
|
newState?: BaseStateFromDocument<TDocument> | undefined;
|
|
53
52
|
}>): Promise<never>;
|
|
54
53
|
addDocumentOperations(drive: string, id: string, operations: Operation[], header: DocumentHeader): Promise<void>;
|
|
55
|
-
getDocuments(drive: string): Promise<string[]>;
|
|
56
|
-
checkDocumentExists(driveId: string, id: string): Promise<boolean>;
|
|
57
|
-
deleteDocument(drive: string, id: string): Promise<void>;
|
|
58
54
|
getDrives(): Promise<string[]>;
|
|
59
55
|
getDriveBySlug(slug: string): Promise<DocumentDriveDocument>;
|
|
60
56
|
deleteDrive(id: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma.d.ts","sourceRoot":"","sources":["../../../../src/storage/prisma/prisma.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,qBAAqB,EACrB,cAAc,EAId,SAAS,EACT,qBAAqB,EAGrB,UAAU,EACX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,eAAe,EAAW,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC3B,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEnE,cAAc,cAAc,CAAC;AAE7B,KAAK,WAAW,GACZ,IAAI,CACF,YAAY,CAAC,MAAM,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAC/C,UAAU,GAAG,aAAa,GAAG,KAAK,GAAG,cAAc,GAAG,MAAM,GAAG,UAAU,CAC1E,GACD,oBAAoB,CAAC;AA2BzB,MAAM,MAAM,oBAAoB,GAAG;IACjC,uBAAuB,CAAC,EAAE,eAAe,CAAC;CAC3C,CAAC;AAEF,iBAAS,0BAA0B,CAAC,CAAC,SAAS,YAAY,EACxD,MAAM,EAAE,CAAC,EACT,cAAc,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;;;;;sCAIb,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;;;;;;;sCAA7B,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;;OAiB1D;AAED,KAAK,oBAAoB,GAAG,UAAU,CACpC,OAAO,0BAA0B,CAAC,YAAY,CAAC,CAChD,CAAC;AAEF,qBAAa,aAAc,YAAW,aAAa,EAAE,gBAAgB;IACnE,OAAO,CAAC,MAAM,CAAkC;IAEhD,OAAO,CAAC,EAAE,CAAuB;IACjC,OAAO,CAAC,KAAK,CAAS;gBAEV,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB;IAcrE,MAAM,CAAC,UAAU,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"prisma.d.ts","sourceRoot":"","sources":["../../../../src/storage/prisma/prisma.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,qBAAqB,EACrB,cAAc,EAId,SAAS,EACT,qBAAqB,EAGrB,UAAU,EACX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,eAAe,EAAW,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC3B,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEnE,cAAc,cAAc,CAAC;AAE7B,KAAK,WAAW,GACZ,IAAI,CACF,YAAY,CAAC,MAAM,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAC/C,UAAU,GAAG,aAAa,GAAG,KAAK,GAAG,cAAc,GAAG,MAAM,GAAG,UAAU,CAC1E,GACD,oBAAoB,CAAC;AA2BzB,MAAM,MAAM,oBAAoB,GAAG;IACjC,uBAAuB,CAAC,EAAE,eAAe,CAAC;CAC3C,CAAC;AAEF,iBAAS,0BAA0B,CAAC,CAAC,SAAS,YAAY,EACxD,MAAM,EAAE,CAAC,EACT,cAAc,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;;;;;sCAIb,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;;;;;;;sCAA7B,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;;OAiB1D;AAED,KAAK,oBAAoB,GAAG,UAAU,CACpC,OAAO,0BAA0B,CAAC,YAAY,CAAC,CAChD,CAAC;AAEF,qBAAa,aAAc,YAAW,aAAa,EAAE,gBAAgB;IACnE,OAAO,CAAC,MAAM,CAAkC;IAEhD,OAAO,CAAC,EAAE,CAAuB;IACjC,OAAO,CAAC,KAAK,CAAS;gBAEV,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB;IAcrE,MAAM,CAAC,UAAU,EAAE,MAAM;IAWzB,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU;IAwC/C,GAAG,CAAC,SAAS,SAAS,UAAU,EACpC,UAAU,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,WAAW,GACf,OAAO,CAAC,SAAS,CAAC;IA6Hf,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmD5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAsB1C,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAkB7C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAqBhD,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BpE,kBAAkB,CACtB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,SAAS,CAAC,mBAAmB,CAAC,EAAE,EAC5C,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC;IAIV,iCAAiC,CACrC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,QAAQ,EAAE,qBAAqB,KAAK,OAAO,CAAC;QACrD,UAAU,EAAE,SAAS,EAAE,CAAC;QACxB,MAAM,EAAE,cAAc,CAAC;KACxB,CAAC;YASU,sBAAsB;IAkG9B,oCAAoC,CAAC,SAAS,SAAS,UAAU,EACrE,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,OAAO,CAAC;QACzC,UAAU,EAAE,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/C,MAAM,EAAE,cAAc,CAAC;QACvB,QAAQ,CAAC,EAAE,qBAAqB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;KACzD,CAAC;IA8BE,qBAAqB,CACzB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,SAAS,EAAE,EACvB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC;IAIV,SAAS;IAUT,cAAc,CAAC,IAAI,EAAE,MAAM;IAc3B,WAAW,CAAC,EAAE,EAAE,MAAM;IA2BtB,0BAA0B,CAC9B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAc9B,+BAA+B,CAC7B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAUxB,+BAA+B,CACnC,KAAK,EAAE,wBAAwB,EAAE,GAChC,OAAO,CACR;QACE,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,EAAE,CACJ;IAgCK,0BAA0B;CAgBjC"}
|