document-drive 1.26.0 → 1.27.1
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/prisma/schema.prisma +1 -0
- package/dist/src/drive-document-model/gen/drive/creators.d.ts.map +1 -1
- package/dist/src/drive-document-model/gen/node/creators.d.ts.map +1 -1
- package/dist/src/drive-document-model/gen/schema/zod.d.ts.map +1 -1
- package/dist/src/queue/base.js +1 -1
- package/dist/src/queue/types.d.ts +2 -2
- package/dist/src/queue/types.d.ts.map +1 -1
- package/dist/src/read-mode/service.js +1 -1
- package/dist/src/server/base-server.d.ts +8 -21
- package/dist/src/server/base-server.d.ts.map +1 -1
- package/dist/src/server/base-server.js +35 -151
- package/dist/src/server/builder.d.ts +9 -9
- package/dist/src/server/builder.d.ts.map +1 -1
- package/dist/src/server/builder.js +3 -1
- package/dist/src/server/listener/listener-manager.js +1 -1
- package/dist/src/server/listener/transmitter/factory.d.ts.map +1 -1
- package/dist/src/server/listener/transmitter/factory.js +1 -2
- package/dist/src/server/listener/transmitter/internal.d.ts +3 -8
- package/dist/src/server/listener/transmitter/internal.d.ts.map +1 -1
- package/dist/src/server/listener/transmitter/internal.js +2 -10
- package/dist/src/server/listener/util.d.ts.map +1 -1
- package/dist/src/server/types.d.ts +2 -10
- package/dist/src/server/types.d.ts.map +1 -1
- package/dist/src/storage/browser.d.ts +12 -4
- package/dist/src/storage/browser.d.ts.map +1 -1
- package/dist/src/storage/browser.js +65 -21
- package/dist/src/storage/filesystem.d.ts +7 -4
- package/dist/src/storage/filesystem.d.ts.map +1 -1
- package/dist/src/storage/filesystem.js +94 -74
- package/dist/src/storage/memory.d.ts +3 -2
- package/dist/src/storage/memory.d.ts.map +1 -1
- package/dist/src/storage/memory.js +9 -1
- package/dist/src/storage/prisma/index.d.ts.map +1 -1
- package/dist/src/storage/prisma/index.js +2 -0
- package/dist/src/storage/sequelize.d.ts +4 -3
- package/dist/src/storage/sequelize.d.ts.map +1 -1
- package/dist/src/storage/sequelize.js +4 -2
- package/dist/src/storage/types.d.ts +3 -0
- package/dist/src/storage/types.d.ts.map +1 -1
- package/dist/src/utils/logger.d.ts.map +1 -1
- package/dist/test/document-helpers/utils.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -5
- package/dist/src/storage/base.d.ts +0 -36
- package/dist/src/storage/base.d.ts.map +0 -1
- package/dist/src/storage/base.js +0 -4
|
@@ -7,8 +7,7 @@ import { type Action, type ActionContext, type BaseState, type CreateChildDocume
|
|
|
7
7
|
import { type Unsubscribe } from "nanoevents";
|
|
8
8
|
import { type BaseDocumentDriveServer } from "./base-server.js";
|
|
9
9
|
import { type OperationError, type SynchronizationUnitNotFoundError } from "./error.js";
|
|
10
|
-
import { type
|
|
11
|
-
import { type ITransmitter, type PullResponderTrigger, type StrandUpdateSource } from "./listener/transmitter/types.js";
|
|
10
|
+
import { type ITransmitter, type StrandUpdateSource } from "./listener/transmitter/types.js";
|
|
12
11
|
export type Constructor<T = object> = new (...args: any[]) => T;
|
|
13
12
|
export type Mixin<T extends Constructor, I> = T & Constructor<InstanceType<T> & I>;
|
|
14
13
|
export type DocumentDriveServerMixin<I> = Mixin<typeof BaseDocumentDriveServer, I>;
|
|
@@ -215,6 +214,7 @@ export declare const DefaultListenerManagerOptions: {
|
|
|
215
214
|
};
|
|
216
215
|
export interface IBaseDocumentDriveServer {
|
|
217
216
|
initialize(): Promise<Error[] | null>;
|
|
217
|
+
get listeners(): IListenerManager;
|
|
218
218
|
setDocumentModelModules(models: DocumentModelModule[]): void;
|
|
219
219
|
getDrives(): Promise<string[]>;
|
|
220
220
|
addDrive(input: DriveInput, preferredEditor?: string): Promise<DocumentDriveDocument>;
|
|
@@ -241,12 +241,6 @@ export interface IBaseDocumentDriveServer {
|
|
|
241
241
|
addDriveAction(driveId: string, action: DocumentDriveAction, options?: AddOperationOptions): Promise<DriveOperationResult>;
|
|
242
242
|
addDriveActions(driveId: string, actions: DocumentDriveAction[], options?: AddOperationOptions): Promise<DriveOperationResult>;
|
|
243
243
|
getSyncStatus(syncUnitId: string): SyncStatus | SynchronizationUnitNotFoundError;
|
|
244
|
-
addInternalListener(driveId: string, receiver: IReceiver, options: {
|
|
245
|
-
listenerId: string;
|
|
246
|
-
label: string;
|
|
247
|
-
block: boolean;
|
|
248
|
-
filter: ListenerFilter;
|
|
249
|
-
}): Promise<IInternalTransmitter>;
|
|
250
244
|
/** Synchronization methods */
|
|
251
245
|
getSynchronizationUnits(driveId: string, documentId?: string[], scope?: string[], branch?: string[], documentType?: string[]): Promise<SynchronizationUnit[]>;
|
|
252
246
|
getSynchronizationUnit(driveId: string, syncId: string, loadedDrive?: DocumentDriveDocument): Promise<SynchronizationUnit | undefined>;
|
|
@@ -254,9 +248,7 @@ export interface IBaseDocumentDriveServer {
|
|
|
254
248
|
getOperationData(driveId: string, syncId: string, filter: GetStrandsOptions): Promise<OperationUpdate[]>;
|
|
255
249
|
/** Internal methods **/
|
|
256
250
|
getDocumentModelModules(): DocumentModelModule[];
|
|
257
|
-
getTransmitter(driveId: string, listenerId: string): Promise<ITransmitter | undefined>;
|
|
258
251
|
clearStorage(): Promise<void>;
|
|
259
|
-
registerPullResponderTrigger(id: string, url: string, options: Pick<RemoteDriveOptions, "pullFilter" | "pullInterval">): Promise<PullResponderTrigger>;
|
|
260
252
|
on<K extends keyof DriveEvents>(event: K, cb: DriveEvents[K]): Unsubscribe;
|
|
261
253
|
}
|
|
262
254
|
export type IDocumentDriveServer = IBaseDocumentDriveServer & IDefaultDrivesManager & IReadModeDriveServer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/server/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,OAAO,EACb,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EACL,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACd,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,MAAM,EACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,gCAAgC,EACtC,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,SAAS,EACf,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACxB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAGhE,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,IAAI,CAAC,GAC7C,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAEnC,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI,KAAK,CAC7C,OAAO,uBAAuB,EAC9B,CAAC,CACF,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,SAAS,CAChC,IAAI,CAAC,kBAAkB,EAAE,YAAY,GAAG,IAAI,GAAG,OAAO,CAAC,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,EACzE,uBAAuB,CACxB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,OAAO,CAAC;AAEtD,MAAM,MAAM,kBAAkB,GAAG,uBAAuB,GAAG;IAEzD,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC9B,WAAW,CAAC,EAAE,sBAAsB,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,SAAS,SAAS,UAAU,IAC1D,wBAAwB,CAAC,SAAS,CAAC,CAAC;AAEtC,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,SAAS,SAAS,UAAU,GAAG,UAAU,IAAI;IACxE,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC;IAC/C,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;AAE3E,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,IAAI,CACzC,mBAAmB,EACnB,UAAU,GAAG,aAAa,CAC3B,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAEF,oBAAY,eAAe;IACzB,QAAQ,IAAA;IACR,eAAe,IAAA;IACf,aAAa,IAAA;IACb,aAAa,IAAA;IACb,aAAa,IAAA;IACb,WAAW,IAAA;CACZ;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,GAAG;IACxE,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;AACxE,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AAE3D,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,SAAS,GAAG,YAAY,CAAC;AAEnE,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC;AACxC,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC;AAExC,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAC5B,SAAS,GACT,OAAO,GACP,SAAS,GACT,QAAQ,GACR,eAAe,CAAC;AAEpB,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,CACV,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,UAAU,EAClB,KAAK,CAAC,EAAE,KAAK,EACb,cAAc,CAAC,EAAE,oBAAoB,KAClC,IAAI,CAAC;IACV,kBAAkB,EAAE,CAClB,MAAM,EAAE,oBAAoB,EAC5B,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAClD,UAAU,EAAE,uBAAuB,EACnC,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,KAAK,KACV,IAAI,CAAC;IACV,YAAY,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAC7C,kBAAkB,EAAE,CAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,KACjB,IAAI,CAAC;IACV,oBAAoB,EAAE,CAAC,oBAAoB,EAAE,mBAAmB,EAAE,KAAK,IAAI,CAAC;IAC5E,UAAU,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACnD,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,EAAE,CAAC,IAAI;KACjD,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AAEpE,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG;IAChD,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,uBAAuB,GAAG;IAC7D,MAAM,EAAE,oBAAoB,CAAC;IAC7B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEtD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,2BAA2B,GACnC;IACE,QAAQ,EAAE,YAAY,CAAC;CACxB,GACD;IACE,QAAQ,EAAE,cAAc,CAAC;CAC1B,GACD;IACE,QAAQ,EAAE,cAAc,CAAC;IACzB,GAAG,EAAE,MAAM,EAAE,CAAC;CACf,GACD;IACE,QAAQ,EAAE,eAAe,CAAC;IAC1B,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,GACD;IACE,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,GAAG,EAAE,MAAM,EAAE,CAAC;CACf,GACD;IACE,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,GACD;IACE,QAAQ,EAAE,cAAc,CAAC;IACzB,GAAG,EAAE,MAAM,EAAE,CAAC;CACf,GACD;IACE,QAAQ,EAAE,eAAe,CAAC;IAC1B,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,GACD;IACE,QAAQ,EAAE,2BAA2B,CAAC;IACtC,GAAG,EAAE,MAAM,EAAE,CAAC;CACf,GACD;IACE,QAAQ,EAAE,4BAA4B,CAAC;IACvC,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC;AAEN,MAAM,MAAM,0BAA0B,GAAG;IACvC,aAAa,EAAE;QACb,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,YAAY,CAAC,EAAE,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC9C,qBAAqB,CAAC,EAAE,2BAA2B,CAAC;KACrD,CAAC;IAKF,eAAe,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAClD,eAAe,CAAC,EAAE,sBAAsB,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,6BAA6B;;CAEzC,CAAC;AAQF,MAAM,WAAW,wBAAwB;IACvC,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IACtC,uBAAuB,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC;IAC7D,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/B,QAAQ,CACN,KAAK,EAAE,UAAU,EACjB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAClC,cAAc,CACZ,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAClC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,QAAQ,CACN,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAElC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAE7D,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACjD,WAAW,CAAC,SAAS,SAAS,UAAU,EACtC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,SAAS,CAAC,CAAC;IAEtB,YAAY,CACV,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,SAAS,EACpB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE7B,aAAa,CACX,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,SAAS,EAAE,EACvB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE7B,cAAc,CACZ,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,SAAS,EACpB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE7B,eAAe,CACb,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,SAAS,EAAE,EACvB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE7B,WAAW,CACT,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE7B,YAAY,CACV,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE7B,iBAAiB,CACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,SAAS,CAAC,mBAAmB,CAAC,EACzC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEjC,kBAAkB,CAChB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,SAAS,CAAC,mBAAmB,CAAC,EAAE,EAC5C,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEjC,mBAAmB,CACjB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,SAAS,CAAC,mBAAmB,CAAC,EACzC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEjC,oBAAoB,CAClB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,SAAS,CAAC,mBAAmB,CAAC,EAAE,EAC5C,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEjC,gBAAgB,CACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,mBAAmB,EAC3B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE7B,iBAAiB,CACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,mBAAmB,EAAE,EAC9B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE7B,SAAS,CACP,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7B,UAAU,CACR,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE7B,cAAc,CACZ,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,mBAAmB,EAC3B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjC,eAAe,CACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,mBAAmB,EAAE,EAC9B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEjC,aAAa,CACX,UAAU,EAAE,MAAM,GACjB,UAAU,GAAG,gCAAgC,CAAC;IAEjD,mBAAmB,CACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,cAAc,CAAC;KACxB,GACA,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEjC,8BAA8B;IAC9B,uBAAuB,CACrB,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EAAE,EACrB,KAAK,CAAC,EAAE,MAAM,EAAE,EAChB,MAAM,CAAC,EAAE,MAAM,EAAE,EACjB,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAElC,sBAAsB,CACpB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,qBAAqB,GAClC,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAC;IAE5C,0BAA0B,CACxB,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EAAE,EACrB,KAAK,CAAC,EAAE,MAAM,EAAE,EAChB,MAAM,CAAC,EAAE,MAAM,EAAE,EACjB,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAEvC,gBAAgB,CACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAE9B,wBAAwB;IACxB,uBAAuB,IAAI,mBAAmB,EAAE,CAAC;IAEjD,cAAc,CACZ,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;IAErC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9B,4BAA4B,CAC1B,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,YAAY,GAAG,cAAc,CAAC,GAC/D,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEjC,EAAE,CAAC,CAAC,SAAS,MAAM,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;CAC5E;AAED,MAAM,MAAM,oBAAoB,GAAG,wBAAwB,GACzD,qBAAqB,GACrB,oBAAoB,CAAC;AAEvB,MAAM,MAAM,uBAAuB,GAAG,CACpC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,aAAa,KACpB,IAAI,CAAC;AAEV,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5D,WAAW,CAAC,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAE5C,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC;IAErE,UAAU,CACR,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC3B,8BAA8B,CAC5B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,mBAAmB,EAAE,EAChC,MAAM,EAAE,kBAAkB,EAC1B,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,IAAI,EAC5C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,KAAK,IAAI,EAC1E,SAAS,CAAC,EAAE,OAAO,GAClB,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC7B,sBAAsB,CACpB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAAC;IAGjB,sBAAsB,CACpB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACvC,eAAe,CACb,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,EAAE,GAC/C,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,UAAU,GACV,OAAO,CAAC;AAEZ,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAC,CAAC;IACvE,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CACN,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,wBAAwB,GACpC,YAAY,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,CAAC,SAAS,MAAM,WAAW,EAC9B,KAAK,EAAE,CAAC,EACR,GAAG,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAClC,IAAI,CAAC;IAER,EAAE,CAAC,CAAC,SAAS,MAAM,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;CAC5E;AAED,MAAM,WAAW,uBAAuB;IACtC,uBAAuB,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC;IAC3D,uBAAuB,CACrB,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EAAE,EACrB,KAAK,CAAC,EAAE,MAAM,EAAE,EAChB,MAAM,CAAC,EAAE,MAAM,EAAE,EACjB,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAElC,0BAA0B,CACxB,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EAAE,EACrB,KAAK,CAAC,EAAE,MAAM,EAAE,EAChB,MAAM,CAAC,EAAE,MAAM,EAAE,EACjB,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAEvC,sBAAsB,CACpB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAC;IAE5C,gBAAgB,CACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAE9B,+BAA+B,CAC7B,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,wBAAwB,EAAE,GACzC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAGlC,aAAa,CACX,UAAU,EAAE,MAAM,GACjB,UAAU,GAAG,gCAAgC,CAAC;IAEjD,gBAAgB,CACd,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI,EAC5C,KAAK,CAAC,EAAE,KAAK,GACZ,IAAI,CAAC;IAER,yBAAyB,CACvB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,yBAAyB,CAAC,cAAc,EAAE,oBAAoB,GAAG,UAAU,CAAC;CAC7E"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/server/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
import { type DocumentDriveAction, type DocumentDriveDocument } from "#drive-document-model/gen/types";
|
|
2
2
|
import { type SynchronizationUnitQuery } from "#server/types";
|
|
3
3
|
import type { DocumentHeader, Operation, PHDocument } from "document-model";
|
|
4
|
-
import { type IDriveStorage } from "./types.js";
|
|
5
|
-
export declare class BrowserStorage implements IDriveStorage {
|
|
4
|
+
import { IDocumentStorage, type IDriveStorage } from "./types.js";
|
|
5
|
+
export declare class BrowserStorage implements IDriveStorage, IDocumentStorage {
|
|
6
6
|
private db;
|
|
7
7
|
static DBName: string;
|
|
8
8
|
static SEP: string;
|
|
9
9
|
static DRIVES_KEY: string;
|
|
10
|
+
static DOCUMENT_KEY: string;
|
|
11
|
+
static MANIFEST_KEY: string;
|
|
10
12
|
constructor(namespace?: string);
|
|
11
|
-
|
|
12
|
-
|
|
13
|
+
buildDriveKey(driveId: string): string;
|
|
14
|
+
buildDocumentKey(documentId: string): string;
|
|
15
|
+
buildManifestKey(driveId: string): string;
|
|
16
|
+
exists(documentId: string): Promise<boolean>;
|
|
17
|
+
checkDocumentExists(drive: string, documentId: string): Promise<boolean>;
|
|
18
|
+
private getDriveManifest;
|
|
19
|
+
private updateDriveManifest;
|
|
13
20
|
getDocuments(drive: string): Promise<string[]>;
|
|
14
21
|
getDocument<TDocument extends PHDocument>(driveId: string, id: string): Promise<TDocument>;
|
|
15
22
|
createDocument(drive: string, id: string, document: PHDocument): Promise<void>;
|
|
@@ -31,6 +38,7 @@ export declare class BrowserStorage implements IDriveStorage {
|
|
|
31
38
|
revision: number;
|
|
32
39
|
}[]>;
|
|
33
40
|
migrateOperationSignatures(): Promise<void>;
|
|
41
|
+
private migrateDrive;
|
|
34
42
|
private migrateDocument;
|
|
35
43
|
}
|
|
36
44
|
//# sourceMappingURL=browser.d.ts.map
|
|
@@ -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;AAEzC,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,aAAa,EAAE,MAAM,YAAY,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;AAEzC,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAG9D,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EAET,UAAU,EACX,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAOlE,qBAAa,cAAe,YAAW,aAAa,EAAE,gBAAgB;IACpE,OAAO,CAAC,EAAE,CAAuB;IAEjC,MAAM,CAAC,MAAM,SAAqB;IAClC,MAAM,CAAC,GAAG,SAAO;IACjB,MAAM,CAAC,UAAU,SAAY;IAC7B,MAAM,CAAC,YAAY,SAAc;IACjC,MAAM,CAAC,YAAY,SAAc;gBAErB,SAAS,CAAC,EAAE,MAAM;IAU9B,aAAa,CAAC,OAAO,EAAE,MAAM;IAI7B,gBAAgB,CAAC,UAAU,EAAE,MAAM;IAInC,gBAAgB,CAAC,OAAO,EAAE,MAAM;IAI1B,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASlD,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAI1D,gBAAgB;YAQhB,mBAAmB;IAQ3B,YAAY,CAAC,KAAK,EAAE,MAAM;IAK1B,WAAW,CAAC,SAAS,SAAS,UAAU,EAC5C,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,SAAS,CAAC;IAUf,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU;IAY9D,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAYxC,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;IAUT,QAAQ,CAAC,EAAE,EAAE,MAAM;IAWnB,cAAc,CAAC,IAAI,EAAE,MAAM;IAa3B,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB;IAQpD,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,OAAO,EAAE,MAAM,CAAC;QAChB,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;IA6CK,0BAA0B;YAYlB,YAAY;YAWZ,eAAe;CAU9B"}
|
|
@@ -7,6 +7,8 @@ export class BrowserStorage {
|
|
|
7
7
|
static DBName = "DOCUMENT_DRIVES";
|
|
8
8
|
static SEP = ":";
|
|
9
9
|
static DRIVES_KEY = "DRIVES";
|
|
10
|
+
static DOCUMENT_KEY = "DOCUMENT";
|
|
11
|
+
static MANIFEST_KEY = "MANIFEST";
|
|
10
12
|
constructor(namespace) {
|
|
11
13
|
this.db = LocalForage.ready().then(() => LocalForage.createInstance({
|
|
12
14
|
name: namespace
|
|
@@ -14,33 +16,62 @@ export class BrowserStorage {
|
|
|
14
16
|
: BrowserStorage.DBName,
|
|
15
17
|
}));
|
|
16
18
|
}
|
|
17
|
-
|
|
18
|
-
return
|
|
19
|
+
buildDriveKey(driveId) {
|
|
20
|
+
return `${BrowserStorage.DRIVES_KEY}${BrowserStorage.SEP}${driveId}`;
|
|
19
21
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
+
buildDocumentKey(documentId) {
|
|
23
|
+
return `${BrowserStorage.DOCUMENT_KEY}${BrowserStorage.SEP}${documentId}`;
|
|
24
|
+
}
|
|
25
|
+
buildManifestKey(driveId) {
|
|
26
|
+
return `${BrowserStorage.MANIFEST_KEY}${BrowserStorage.SEP}${driveId}`;
|
|
27
|
+
}
|
|
28
|
+
async exists(documentId) {
|
|
29
|
+
const db = await this.db;
|
|
30
|
+
const document = await db.getItem(this.buildDocumentKey(documentId));
|
|
22
31
|
return !!document;
|
|
23
32
|
}
|
|
24
|
-
|
|
33
|
+
checkDocumentExists(drive, documentId) {
|
|
34
|
+
return this.exists(documentId);
|
|
35
|
+
}
|
|
36
|
+
async getDriveManifest(driveId) {
|
|
25
37
|
const db = await this.db;
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
38
|
+
const manifest = await db.getItem(this.buildManifestKey(driveId));
|
|
39
|
+
return manifest || { documentIds: [] };
|
|
40
|
+
}
|
|
41
|
+
async updateDriveManifest(driveId, manifest) {
|
|
42
|
+
const db = await this.db;
|
|
43
|
+
await db.setItem(this.buildManifestKey(driveId), manifest);
|
|
44
|
+
}
|
|
45
|
+
async getDocuments(drive) {
|
|
46
|
+
const manifest = await this.getDriveManifest(drive);
|
|
47
|
+
return manifest.documentIds;
|
|
31
48
|
}
|
|
32
49
|
async getDocument(driveId, id) {
|
|
33
|
-
const document = await (await this.db).getItem(this.
|
|
50
|
+
const document = await (await this.db).getItem(this.buildDocumentKey(id));
|
|
34
51
|
if (!document) {
|
|
35
52
|
throw new Error(`Document with id ${id} not found`);
|
|
36
53
|
}
|
|
37
54
|
return document;
|
|
38
55
|
}
|
|
39
56
|
async createDocument(drive, id, document) {
|
|
40
|
-
|
|
57
|
+
const db = await this.db;
|
|
58
|
+
await db.setItem(this.buildDocumentKey(id), document);
|
|
59
|
+
// Update the drive manifest to include this document
|
|
60
|
+
const manifest = await this.getDriveManifest(drive);
|
|
61
|
+
if (!manifest.documentIds.includes(id)) {
|
|
62
|
+
manifest.documentIds.push(id);
|
|
63
|
+
await this.updateDriveManifest(drive, manifest);
|
|
64
|
+
}
|
|
41
65
|
}
|
|
42
66
|
async deleteDocument(drive, id) {
|
|
43
|
-
await (await this.db).removeItem(this.
|
|
67
|
+
await (await this.db).removeItem(this.buildDocumentKey(id));
|
|
68
|
+
// Update the drive manifest to remove this document
|
|
69
|
+
const manifest = await this.getDriveManifest(drive);
|
|
70
|
+
const docIndex = manifest.documentIds.indexOf(id);
|
|
71
|
+
if (docIndex !== -1) {
|
|
72
|
+
manifest.documentIds.splice(docIndex, 1);
|
|
73
|
+
await this.updateDriveManifest(drive, manifest);
|
|
74
|
+
}
|
|
44
75
|
}
|
|
45
76
|
async clearStorage() {
|
|
46
77
|
return (await this.db).clear();
|
|
@@ -52,7 +83,7 @@ export class BrowserStorage {
|
|
|
52
83
|
}
|
|
53
84
|
const mergedOperations = mergeOperations(document.operations, operations);
|
|
54
85
|
const db = await this.db;
|
|
55
|
-
await db.setItem(this.
|
|
86
|
+
await db.setItem(this.buildDocumentKey(id), {
|
|
56
87
|
...document,
|
|
57
88
|
...header,
|
|
58
89
|
operations: mergedOperations,
|
|
@@ -67,7 +98,7 @@ export class BrowserStorage {
|
|
|
67
98
|
}
|
|
68
99
|
async getDrive(id) {
|
|
69
100
|
const db = await this.db;
|
|
70
|
-
const drive = await db.getItem(this.
|
|
101
|
+
const drive = await db.getItem(this.buildDriveKey(id));
|
|
71
102
|
if (!drive) {
|
|
72
103
|
throw new DriveNotFoundError(id);
|
|
73
104
|
}
|
|
@@ -86,23 +117,29 @@ export class BrowserStorage {
|
|
|
86
117
|
}
|
|
87
118
|
async createDrive(id, drive) {
|
|
88
119
|
const db = await this.db;
|
|
89
|
-
await db.setItem(this.
|
|
120
|
+
await db.setItem(this.buildDriveKey(id), drive);
|
|
121
|
+
// Initialize an empty manifest for the new drive
|
|
122
|
+
await this.updateDriveManifest(id, { documentIds: [] });
|
|
90
123
|
}
|
|
91
124
|
async deleteDrive(id) {
|
|
125
|
+
// First get all documents in this drive
|
|
92
126
|
const documents = await this.getDocuments(id);
|
|
127
|
+
// Delete each document (this already updates the manifest)
|
|
93
128
|
await Promise.all(documents.map((doc) => this.deleteDocument(id, doc)));
|
|
94
|
-
|
|
129
|
+
// Delete the drive and its manifest
|
|
130
|
+
const db = await this.db;
|
|
131
|
+
await db.removeItem(this.buildManifestKey(id));
|
|
132
|
+
return db.removeItem(this.buildDriveKey(id));
|
|
95
133
|
}
|
|
96
134
|
async addDriveOperations(id, operations, header) {
|
|
97
135
|
const drive = await this.getDrive(id);
|
|
98
136
|
const mergedOperations = mergeOperations(drive.operations, operations);
|
|
99
137
|
const db = await this.db;
|
|
100
|
-
await db.setItem(this.
|
|
138
|
+
await db.setItem(this.buildDriveKey(id), {
|
|
101
139
|
...drive,
|
|
102
140
|
...header,
|
|
103
141
|
operations: mergedOperations,
|
|
104
142
|
});
|
|
105
|
-
return;
|
|
106
143
|
}
|
|
107
144
|
async getSynchronizationUnitsRevision(units) {
|
|
108
145
|
const results = await Promise.allSettled(units.map(async (unit) => {
|
|
@@ -140,16 +177,23 @@ export class BrowserStorage {
|
|
|
140
177
|
async migrateOperationSignatures() {
|
|
141
178
|
const drives = await this.getDrives();
|
|
142
179
|
for (const drive of drives) {
|
|
143
|
-
await this.
|
|
180
|
+
await this.migrateDrive(drive);
|
|
144
181
|
const documents = await this.getDocuments(drive);
|
|
145
182
|
await Promise.all(documents.map(async (docId) => this.migrateDocument(drive, docId)));
|
|
146
183
|
}
|
|
147
184
|
}
|
|
185
|
+
async migrateDrive(driveId) {
|
|
186
|
+
const drive = await this.getDrive(driveId);
|
|
187
|
+
const migratedDrive = migrateDocumentOperationSignatures(drive);
|
|
188
|
+
if (migratedDrive !== drive) {
|
|
189
|
+
return (await this.db).setItem(this.buildDriveKey(driveId), migratedDrive);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
148
192
|
async migrateDocument(drive, id) {
|
|
149
193
|
const document = await this.getDocument(drive, id);
|
|
150
194
|
const migratedDocument = migrateDocumentOperationSignatures(document);
|
|
151
195
|
if (migratedDocument !== document) {
|
|
152
|
-
return (await this.db).setItem(this.
|
|
196
|
+
return (await this.db).setItem(this.buildDocumentKey(id), migratedDocument);
|
|
153
197
|
}
|
|
154
198
|
}
|
|
155
199
|
}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { type DocumentDriveAction, type DocumentDriveDocument } from "#drive-document-model/gen/types";
|
|
2
2
|
import { type SynchronizationUnitQuery } from "#server/types";
|
|
3
3
|
import { type DocumentHeader, type Operation, type PHDocument } from "document-model";
|
|
4
|
-
import { type IDriveStorage } from "./types.js";
|
|
5
|
-
export declare class FilesystemStorage implements IDriveStorage {
|
|
4
|
+
import { IDocumentStorage, type IDriveStorage } from "./types.js";
|
|
5
|
+
export declare class FilesystemStorage implements IDriveStorage, IDocumentStorage {
|
|
6
6
|
private basePath;
|
|
7
|
-
private drivesPath;
|
|
8
|
-
private static DRIVES_DIR;
|
|
9
7
|
constructor(basePath: string);
|
|
10
8
|
private _buildDocumentPath;
|
|
9
|
+
private _buildDrivePath;
|
|
10
|
+
private _buildManifestPath;
|
|
11
|
+
private getDriveManifest;
|
|
12
|
+
private updateDriveManifest;
|
|
11
13
|
getDocuments(drive: string): Promise<string[]>;
|
|
14
|
+
exists(documentId: string): Promise<boolean>;
|
|
12
15
|
checkDocumentExists(drive: string, id: string): Promise<boolean>;
|
|
13
16
|
getDocument<TDocument extends PHDocument>(drive: string, id: string): Promise<TDocument>;
|
|
14
17
|
createDocument(drive: string, id: string, document: PHDocument): Promise<void>;
|
|
@@ -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;AAEzC,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,SAAS,EAEd,KAAK,UAAU,EAChB,MAAM,gBAAgB,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;AAEzC,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,SAAS,EAEd,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAoBlE,qBAAa,iBAAkB,YAAW,aAAa,EAAE,gBAAgB;IACvE,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,EAAE,MAAM;IAK5B,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,kBAAkB;YAIZ,gBAAgB;YAWhB,mBAAmB;IAQ3B,YAAY,CAAC,KAAK,EAAE,MAAM;IAKhC,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK5C,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI1D,WAAW,CAAC,SAAS,SAAS,UAAU,EAC5C,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,SAAS,CAAC;IAWf,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU;IAgB9D,YAAY;IAeZ,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IA0BxC,qBAAqB,CACzB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,SAAS,EAAE,EACvB,MAAM,EAAE,cAAc;IAuBlB,SAAS;IAWT,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAWpD,cAAc,CAAC,IAAI,EAAE,MAAM;IAmB3B,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB;IAUpD,WAAW,CAAC,EAAE,EAAE,MAAM;IActB,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,OAAO,EAAE,MAAM,CAAC;QAChB,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;CA2CF"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { DriveNotFoundError } from "#server/error";
|
|
2
2
|
import { mergeOperations } from "#utils/misc";
|
|
3
|
-
import { existsSync, mkdirSync, readFileSync,
|
|
3
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
|
|
4
4
|
import fs from "fs/promises";
|
|
5
5
|
import stringify from "json-stringify-deterministic";
|
|
6
6
|
import path from "path";
|
|
7
|
-
import sanitize from "sanitize-filename";
|
|
8
7
|
function ensureDir(dir) {
|
|
9
8
|
if (!existsSync(dir)) {
|
|
10
9
|
mkdirSync(dir, { recursive: true });
|
|
@@ -12,51 +11,48 @@ function ensureDir(dir) {
|
|
|
12
11
|
}
|
|
13
12
|
export class FilesystemStorage {
|
|
14
13
|
basePath;
|
|
15
|
-
drivesPath;
|
|
16
|
-
static DRIVES_DIR = "drives";
|
|
17
14
|
constructor(basePath) {
|
|
18
15
|
this.basePath = basePath;
|
|
19
16
|
ensureDir(this.basePath);
|
|
20
|
-
this.drivesPath = path.join(this.basePath, FilesystemStorage.DRIVES_DIR);
|
|
21
|
-
ensureDir(this.drivesPath);
|
|
22
17
|
}
|
|
23
|
-
_buildDocumentPath(
|
|
24
|
-
return `${
|
|
18
|
+
_buildDocumentPath(documentId) {
|
|
19
|
+
return `${this.basePath}/document-${documentId}.json`;
|
|
25
20
|
}
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
_buildDrivePath(driveId) {
|
|
22
|
+
return `${this.basePath}/drive-${driveId}.json`;
|
|
23
|
+
}
|
|
24
|
+
_buildManifestPath(driveId) {
|
|
25
|
+
return `${this.basePath}/manifest-${driveId}.json`;
|
|
26
|
+
}
|
|
27
|
+
async getDriveManifest(driveId) {
|
|
28
|
+
const manifestPath = this._buildManifestPath(driveId);
|
|
28
29
|
try {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
});
|
|
30
|
+
const content = readFileSync(manifestPath, { encoding: "utf-8" });
|
|
31
|
+
return JSON.parse(content);
|
|
32
32
|
}
|
|
33
33
|
catch (error) {
|
|
34
|
-
//
|
|
35
|
-
|
|
36
|
-
throw error;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
const documents = [];
|
|
40
|
-
for (const file of files.filter((file) => file.isFile())) {
|
|
41
|
-
try {
|
|
42
|
-
const documentId = path.parse(file.name).name;
|
|
43
|
-
// checks if file is document
|
|
44
|
-
await this.getDocument(drive, documentId);
|
|
45
|
-
documents.push(documentId);
|
|
46
|
-
}
|
|
47
|
-
catch {
|
|
48
|
-
/* Ignore invalid document*/
|
|
49
|
-
}
|
|
34
|
+
// Return empty manifest if file doesn't exist
|
|
35
|
+
return { documentIds: [] };
|
|
50
36
|
}
|
|
51
|
-
return documents;
|
|
52
37
|
}
|
|
53
|
-
|
|
54
|
-
const
|
|
38
|
+
async updateDriveManifest(driveId, manifest) {
|
|
39
|
+
const manifestPath = this._buildManifestPath(driveId);
|
|
40
|
+
writeFileSync(manifestPath, stringify(manifest), { encoding: "utf-8" });
|
|
41
|
+
}
|
|
42
|
+
async getDocuments(drive) {
|
|
43
|
+
const manifest = await this.getDriveManifest(drive);
|
|
44
|
+
return manifest.documentIds;
|
|
45
|
+
}
|
|
46
|
+
exists(documentId) {
|
|
47
|
+
const documentExists = existsSync(this._buildDocumentPath(documentId));
|
|
55
48
|
return Promise.resolve(documentExists);
|
|
56
49
|
}
|
|
50
|
+
checkDocumentExists(drive, id) {
|
|
51
|
+
return this.exists(id);
|
|
52
|
+
}
|
|
57
53
|
async getDocument(drive, id) {
|
|
58
54
|
try {
|
|
59
|
-
const content = readFileSync(this._buildDocumentPath(
|
|
55
|
+
const content = readFileSync(this._buildDocumentPath(id), {
|
|
60
56
|
encoding: "utf-8",
|
|
61
57
|
});
|
|
62
58
|
return JSON.parse(content);
|
|
@@ -66,27 +62,21 @@ export class FilesystemStorage {
|
|
|
66
62
|
}
|
|
67
63
|
}
|
|
68
64
|
async createDocument(drive, id, document) {
|
|
69
|
-
const documentPath = this._buildDocumentPath(
|
|
70
|
-
ensureDir(path.dirname(documentPath));
|
|
65
|
+
const documentPath = this._buildDocumentPath(id);
|
|
71
66
|
writeFileSync(documentPath, stringify(document), {
|
|
72
67
|
encoding: "utf-8",
|
|
73
68
|
});
|
|
69
|
+
// Update the drive manifest to include this document
|
|
70
|
+
const manifest = await this.getDriveManifest(drive);
|
|
71
|
+
if (!manifest.documentIds.includes(id)) {
|
|
72
|
+
manifest.documentIds.push(id);
|
|
73
|
+
await this.updateDriveManifest(drive, manifest);
|
|
74
|
+
}
|
|
74
75
|
return Promise.resolve();
|
|
75
76
|
}
|
|
76
77
|
async clearStorage() {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
const drives = (await fs.readdir(drivesPath, {
|
|
80
|
-
withFileTypes: true,
|
|
81
|
-
recursive: true,
|
|
82
|
-
})).filter((dirent) => !!dirent.name);
|
|
83
|
-
await Promise.all(drives.map(async (dirent) => {
|
|
84
|
-
await fs.rm(path.join(drivesPath, dirent.name), {
|
|
85
|
-
recursive: true,
|
|
86
|
-
});
|
|
87
|
-
}));
|
|
88
|
-
// delete files in basePath
|
|
89
|
-
const files = (await fs.readdir(this.basePath, { withFileTypes: true })).filter((file) => file.name !== FilesystemStorage.DRIVES_DIR && !!file.name);
|
|
78
|
+
// delete content of basePath
|
|
79
|
+
const files = (await fs.readdir(this.basePath, { withFileTypes: true })).filter((dirent) => !!dirent.name);
|
|
90
80
|
await Promise.all(files.map(async (dirent) => {
|
|
91
81
|
await fs.rm(path.join(this.basePath, dirent.name), {
|
|
92
82
|
recursive: true,
|
|
@@ -94,7 +84,27 @@ export class FilesystemStorage {
|
|
|
94
84
|
}));
|
|
95
85
|
}
|
|
96
86
|
async deleteDocument(drive, id) {
|
|
97
|
-
|
|
87
|
+
// Update the drive manifest to remove this document
|
|
88
|
+
const manifest = await this.getDriveManifest(drive);
|
|
89
|
+
const docIndex = manifest.documentIds.indexOf(id);
|
|
90
|
+
if (docIndex !== -1) {
|
|
91
|
+
manifest.documentIds.splice(docIndex, 1);
|
|
92
|
+
await this.updateDriveManifest(drive, manifest);
|
|
93
|
+
}
|
|
94
|
+
// Check if this document exists in other drive manifests
|
|
95
|
+
// Only delete the actual file if no other drive references it
|
|
96
|
+
const drives = await this.getDrives();
|
|
97
|
+
for (const driveId of drives) {
|
|
98
|
+
if (driveId === drive)
|
|
99
|
+
continue;
|
|
100
|
+
const otherManifest = await this.getDriveManifest(driveId);
|
|
101
|
+
if (otherManifest.documentIds.includes(id)) {
|
|
102
|
+
// Document still referenced by another drive, don't delete the file
|
|
103
|
+
return Promise.resolve();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
// If we got here, no other drive references this document, so we can delete it
|
|
107
|
+
return fs.rm(this._buildDocumentPath(id));
|
|
98
108
|
}
|
|
99
109
|
async addDocumentOperations(drive, id, operations, header) {
|
|
100
110
|
const document = await this.getDocument(drive, id);
|
|
@@ -102,40 +112,36 @@ export class FilesystemStorage {
|
|
|
102
112
|
throw new Error(`Document with id ${id} not found`);
|
|
103
113
|
}
|
|
104
114
|
const mergedOperations = mergeOperations(document.operations, operations);
|
|
105
|
-
|
|
115
|
+
const documentPath = this._buildDocumentPath(id);
|
|
116
|
+
writeFileSync(documentPath, stringify({
|
|
106
117
|
...document,
|
|
107
118
|
...header,
|
|
108
119
|
operations: mergedOperations,
|
|
120
|
+
}), {
|
|
121
|
+
encoding: "utf-8",
|
|
109
122
|
});
|
|
110
123
|
}
|
|
111
124
|
async getDrives() {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
const driveId = path.parse(file.name).name;
|
|
119
|
-
// checks if file is drive
|
|
120
|
-
await this.getDrive(driveId);
|
|
121
|
-
drives.push(driveId);
|
|
122
|
-
}
|
|
123
|
-
catch {
|
|
124
|
-
/* Ignore invalid drive document found on drives dir */
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
return drives;
|
|
125
|
+
// get anything that starts with drive-
|
|
126
|
+
const files = await fs.readdir(this.basePath, { withFileTypes: true });
|
|
127
|
+
return (files
|
|
128
|
+
.filter((file) => file.name.startsWith("drive-"))
|
|
129
|
+
// remove drive- prefix and extension
|
|
130
|
+
.map((file) => file.name.replace("drive-", "").replace(".json", "")));
|
|
128
131
|
}
|
|
129
132
|
async getDrive(id) {
|
|
130
133
|
try {
|
|
131
|
-
|
|
134
|
+
const content = readFileSync(this._buildDrivePath(id), {
|
|
135
|
+
encoding: "utf-8",
|
|
136
|
+
});
|
|
137
|
+
return JSON.parse(content);
|
|
132
138
|
}
|
|
133
|
-
catch {
|
|
139
|
+
catch (error) {
|
|
134
140
|
throw new DriveNotFoundError(id);
|
|
135
141
|
}
|
|
136
142
|
}
|
|
137
143
|
async getDriveBySlug(slug) {
|
|
138
|
-
// get
|
|
144
|
+
// get oldest drives first
|
|
139
145
|
const drives = (await this.getDrives()).reverse();
|
|
140
146
|
for (const drive of drives) {
|
|
141
147
|
const { initialState: { state: { global: { slug: driveSlug }, }, }, } = await this.getDrive(drive);
|
|
@@ -145,21 +151,35 @@ export class FilesystemStorage {
|
|
|
145
151
|
}
|
|
146
152
|
throw new Error(`Drive with slug ${slug} not found`);
|
|
147
153
|
}
|
|
148
|
-
createDrive(id, drive) {
|
|
149
|
-
|
|
154
|
+
async createDrive(id, drive) {
|
|
155
|
+
const drivePath = this._buildDrivePath(id);
|
|
156
|
+
writeFileSync(drivePath, stringify(drive), {
|
|
157
|
+
encoding: "utf-8",
|
|
158
|
+
});
|
|
159
|
+
// Initialize an empty manifest for the new drive
|
|
160
|
+
await this.updateDriveManifest(id, { documentIds: [] });
|
|
150
161
|
}
|
|
151
162
|
async deleteDrive(id) {
|
|
163
|
+
// First get all documents in this drive
|
|
152
164
|
const documents = await this.getDocuments(id);
|
|
153
|
-
|
|
154
|
-
await Promise.all(documents.map((
|
|
165
|
+
// Delete each document from this drive (may not actually delete the file if shared with other drives)
|
|
166
|
+
await Promise.all(documents.map((doc) => this.deleteDocument(id, doc)));
|
|
167
|
+
// Delete the drive manifest and the drive itself
|
|
168
|
+
await fs.rm(this._buildManifestPath(id)).catch(() => {
|
|
169
|
+
/* ignore error if manifest doesn't exist */
|
|
170
|
+
});
|
|
171
|
+
await fs.rm(this._buildDrivePath(id));
|
|
155
172
|
}
|
|
156
173
|
async addDriveOperations(id, operations, header) {
|
|
157
174
|
const drive = await this.getDrive(id);
|
|
158
175
|
const mergedOperations = mergeOperations(drive.operations, operations);
|
|
159
|
-
|
|
176
|
+
const drivePath = this._buildDrivePath(id);
|
|
177
|
+
writeFileSync(drivePath, stringify({
|
|
160
178
|
...drive,
|
|
161
179
|
...header,
|
|
162
180
|
operations: mergedOperations,
|
|
181
|
+
}), {
|
|
182
|
+
encoding: "utf-8",
|
|
163
183
|
});
|
|
164
184
|
}
|
|
165
185
|
async getSynchronizationUnitsRevision(units) {
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { type DocumentDriveDocument } from "#drive-document-model/gen/types";
|
|
2
2
|
import { type SynchronizationUnitQuery } from "#server/types";
|
|
3
3
|
import { type DocumentHeader, type Operation, type OperationFromDocument, type PHDocument } from "document-model";
|
|
4
|
-
import { type IDriveStorage } from "./types.js";
|
|
5
|
-
export declare class MemoryStorage implements IDriveStorage {
|
|
4
|
+
import { IDocumentStorage, type IDriveStorage } from "./types.js";
|
|
5
|
+
export declare class MemoryStorage implements IDriveStorage, IDocumentStorage {
|
|
6
6
|
private documents;
|
|
7
7
|
private drives;
|
|
8
8
|
private slugToDriveId;
|
|
9
9
|
constructor();
|
|
10
|
+
exists(id: string): Promise<boolean>;
|
|
10
11
|
checkDocumentExists(drive: string, id: string): Promise<boolean>;
|
|
11
12
|
getDocuments(drive: string): Promise<string[]>;
|
|
12
13
|
getDocument<TDocument extends PHDocument>(driveId: string, id: string): Promise<TDocument>;
|
|
@@ -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;AAE7E,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,aAAa,EAAE,MAAM,YAAY,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;AAE7E,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,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAElE,qBAAa,aAAc,YAAW,aAAa,EAAE,gBAAgB;IACnE,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,aAAa,CAA8B;;IAOnD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUpC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI1D,YAAY,CAAC,KAAK,EAAE,MAAM;IAI1B,WAAW,CAAC,SAAS,SAAS,UAAU,EAC5C,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,SAAS,CAAC;IAaf,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU;IAK5D,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAK7B,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU;IA0B9D,qBAAqB,CACzB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,SAAS,EAAE,EACvB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC;IAeV,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAOxC,SAAS;IAIT,QAAQ,CAAC,EAAE,EAAE,MAAM;IAQnB,cAAc,CAAC,IAAI,EAAE,MAAM;IAQ3B,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB;IASpD,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;IAKtB,+BAA+B,CACnC,KAAK,EAAE,wBAAwB,EAAE,GAChC,OAAO,CACR;QACE,OAAO,EAAE,MAAM,CAAC;QAChB,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;CA2CF"}
|