document-drive 1.27.0 → 1.27.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.
Files changed (40) hide show
  1. package/dist/prisma/schema.prisma +1 -0
  2. package/dist/src/drive-document-model/gen/drive/creators.d.ts.map +1 -1
  3. package/dist/src/drive-document-model/gen/node/creators.d.ts.map +1 -1
  4. package/dist/src/drive-document-model/gen/schema/zod.d.ts.map +1 -1
  5. package/dist/src/queue/base.js +1 -1
  6. package/dist/src/queue/types.d.ts +2 -2
  7. package/dist/src/queue/types.d.ts.map +1 -1
  8. package/dist/src/server/base-server.d.ts +5 -4
  9. package/dist/src/server/base-server.d.ts.map +1 -1
  10. package/dist/src/server/base-server.js +33 -31
  11. package/dist/src/server/builder.d.ts +1 -1
  12. package/dist/src/server/builder.d.ts.map +1 -1
  13. package/dist/src/server/builder.js +3 -1
  14. package/dist/src/server/listener/transmitter/internal.d.ts +1 -1
  15. package/dist/src/server/listener/transmitter/internal.d.ts.map +1 -1
  16. package/dist/src/server/listener/util.d.ts.map +1 -1
  17. package/dist/src/server/types.d.ts.map +1 -1
  18. package/dist/src/storage/browser.d.ts +12 -4
  19. package/dist/src/storage/browser.d.ts.map +1 -1
  20. package/dist/src/storage/browser.js +65 -21
  21. package/dist/src/storage/filesystem.d.ts +7 -4
  22. package/dist/src/storage/filesystem.d.ts.map +1 -1
  23. package/dist/src/storage/filesystem.js +94 -74
  24. package/dist/src/storage/memory.d.ts +3 -2
  25. package/dist/src/storage/memory.d.ts.map +1 -1
  26. package/dist/src/storage/memory.js +9 -1
  27. package/dist/src/storage/prisma/index.d.ts.map +1 -1
  28. package/dist/src/storage/prisma/index.js +2 -0
  29. package/dist/src/storage/sequelize.d.ts +4 -3
  30. package/dist/src/storage/sequelize.d.ts.map +1 -1
  31. package/dist/src/storage/sequelize.js +4 -2
  32. package/dist/src/storage/types.d.ts +3 -0
  33. package/dist/src/storage/types.d.ts.map +1 -1
  34. package/dist/src/utils/logger.d.ts.map +1 -1
  35. package/dist/test/document-helpers/utils.d.ts.map +1 -1
  36. package/dist/tsconfig.tsbuildinfo +1 -1
  37. package/package.json +6 -4
  38. package/dist/src/storage/base.d.ts +0 -36
  39. package/dist/src/storage/base.d.ts.map +0 -1
  40. package/dist/src/storage/base.js +0 -4
@@ -1,10 +1,9 @@
1
1
  import { DriveNotFoundError } from "#server/error";
2
2
  import { mergeOperations } from "#utils/misc";
3
- import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync, } from "fs";
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(...args) {
24
- return `${path.join(this.basePath, ...args.map((arg) => sanitize(arg)))}.json`;
18
+ _buildDocumentPath(documentId) {
19
+ return `${this.basePath}/document-${documentId}.json`;
25
20
  }
26
- async getDocuments(drive) {
27
- let files = [];
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
- files = readdirSync(path.join(this.basePath, drive), {
30
- withFileTypes: true,
31
- });
30
+ const content = readFileSync(manifestPath, { encoding: "utf-8" });
31
+ return JSON.parse(content);
32
32
  }
33
33
  catch (error) {
34
- // if folder is not found then drive has no documents
35
- if (error.code !== "ENOENT") {
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
- checkDocumentExists(drive, id) {
54
- const documentExists = existsSync(this._buildDocumentPath(drive, id));
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(drive, id), {
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(drive, id);
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
- const drivesPath = path.join(this.basePath, FilesystemStorage.DRIVES_DIR);
78
- // delete content of drives directory
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
- return fs.rm(this._buildDocumentPath(drive, id));
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
- await this.createDocument(drive, id, {
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
- const files = readdirSync(this.drivesPath, {
113
- withFileTypes: true,
114
- });
115
- const drives = [];
116
- for (const file of files.filter((file) => file.isFile())) {
117
- try {
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
- return await this.getDocument(FilesystemStorage.DRIVES_DIR, id);
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 oldes drives first
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
- return this.createDocument(FilesystemStorage.DRIVES_DIR, id, drive);
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
- await this.deleteDocument(FilesystemStorage.DRIVES_DIR, id);
154
- await Promise.all(documents.map((document) => this.deleteDocument(id, document)));
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
- await this.createDrive(id, {
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 { type 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;AAEhD,qBAAa,aAAc,YAAW,aAAa;IACjD,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,aAAa,CAA8B;;IAOnD,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"}
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,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEvE,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"}
@@ -8,8 +8,16 @@ export class MemoryStorage {
8
8
  this.documents = {};
9
9
  this.drives = {};
10
10
  }
11
+ exists(id) {
12
+ for (const drive of Object.values(this.documents)) {
13
+ if (drive[id]) {
14
+ return Promise.resolve(true);
15
+ }
16
+ }
17
+ return Promise.resolve(false);
18
+ }
11
19
  checkDocumentExists(drive, id) {
12
- return Promise.resolve(this.documents[drive][id] !== undefined);
20
+ return this.exists(id);
13
21
  }
14
22
  async getDocuments(drive) {
15
23
  return Object.keys(this.documents[drive] ?? {});
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/storage/prisma/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/storage/prisma/index.ts"],"names":[],"mappings":"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"}
@@ -95,6 +95,7 @@ export class PrismaStorage {
95
95
  initialState: JSON.stringify(document.initialState),
96
96
  lastModified: document.lastModified,
97
97
  revision: JSON.stringify(document.revision),
98
+ meta: document.meta ? JSON.stringify(document.meta) : undefined,
98
99
  id,
99
100
  },
100
101
  });
@@ -319,6 +320,7 @@ export class PrismaStorage {
319
320
  operations: operationsByScope,
320
321
  clipboard: [],
321
322
  revision: JSON.parse(dbDoc.revision),
323
+ meta: dbDoc.meta ? JSON.parse(dbDoc.meta) : undefined,
322
324
  attachments: {},
323
325
  };
324
326
  return doc;
@@ -2,8 +2,8 @@ import { type DocumentDriveAction, type DocumentDriveDocument } from "#drive-doc
2
2
  import { type SynchronizationUnitQuery } from "#server/types";
3
3
  import { type AttachmentInput, type DocumentHeader, type Operation, type PHDocument } from "document-model";
4
4
  import { type Options, Sequelize } from "sequelize";
5
- import { type IDriveStorage } from "./types.js";
6
- export declare class SequelizeStorage implements IDriveStorage {
5
+ import { type IDocumentStorage, type IDriveStorage } from "./types.js";
6
+ export declare class SequelizeStorage implements IDriveStorage, IDocumentStorage {
7
7
  private db;
8
8
  constructor(options: Options);
9
9
  syncModels(): Promise<Sequelize>;
@@ -13,7 +13,8 @@ export declare class SequelizeStorage implements IDriveStorage {
13
13
  addDocumentOperations(drive: string, id: string, operations: Operation[], header: DocumentHeader): Promise<void>;
14
14
  _addDocumentOperationAttachments(driveId: string, documentId: string, operation: Operation, attachments: AttachmentInput[]): Promise<import("sequelize").Model<any, any>[]>;
15
15
  getDocuments(drive: string): Promise<string[]>;
16
- checkDocumentExists(driveId: string, id: string): Promise<boolean>;
16
+ exists(id: string): Promise<boolean>;
17
+ checkDocumentExists(drive: string, id: string): Promise<boolean>;
17
18
  getDocument<TDocument extends PHDocument>(driveId: string, id: string): Promise<TDocument>;
18
19
  deleteDocument(drive: string, id: string): Promise<void>;
19
20
  getDrives(): Promise<string[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"sequelize.d.ts","sourceRoot":"","sources":["../../../src/storage/sequelize.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAG3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,cAAc,EAEnB,KAAK,SAAS,EAEd,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAa,KAAK,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,qBAAa,gBAAiB,YAAW,aAAa;IACpD,OAAO,CAAC,EAAE,CAAY;gBAEV,OAAO,EAAE,OAAO;IAIrB,UAAU;IAuGX,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpE,kBAAkB,CACtB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,SAAS,CAAC,mBAAmB,CAAC,EAAE,EAC5C,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC;IAGV,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,UAAU,GACnB,OAAO,CAAC,IAAI,CAAC;IAiBV,qBAAqB,CACzB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,SAAS,EAAE,EACvB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC;IAyEV,gCAAgC,CACpC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,eAAe,EAAE;IAuB1B,YAAY,CAAC,KAAK,EAAE,MAAM;IAoB1B,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAelE,WAAW,CAAC,SAAS,SAAS,UAAU,EAC5C,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,SAAS,CAAC;IA6Ef,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAcxC,SAAS;IAIT,QAAQ,CAAC,EAAE,EAAE,MAAM;IAKnB,cAAc,CAAC,IAAI,EAAE,MAAM;IAoB3B,WAAW,CAAC,EAAE,EAAE,MAAM;IAwBtB,+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
+ {"version":3,"file":"sequelize.d.ts","sourceRoot":"","sources":["../../../src/storage/sequelize.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAG3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EAEnB,KAAK,SAAS,EAEd,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAa,KAAK,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEvE,qBAAa,gBAAiB,YAAW,aAAa,EAAE,gBAAgB;IACtE,OAAO,CAAC,EAAE,CAAY;gBAEV,OAAO,EAAE,OAAO;IAIrB,UAAU;IAuGX,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpE,kBAAkB,CACtB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,SAAS,CAAC,mBAAmB,CAAC,EAAE,EAC5C,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC;IAGV,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,UAAU,GACnB,OAAO,CAAC,IAAI,CAAC;IAiBV,qBAAqB,CACzB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,SAAS,EAAE,EACvB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC;IAyEV,gCAAgC,CACpC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,eAAe,EAAE;IAuB1B,YAAY,CAAC,KAAK,EAAE,MAAM;IAoB1B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAcpC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIhE,WAAW,CAAC,SAAS,SAAS,UAAU,EAC5C,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,SAAS,CAAC;IA6Ef,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAcxC,SAAS;IAIT,QAAQ,CAAC,EAAE,EAAE,MAAM;IAKnB,cAAc,CAAC,IAAI,EAAE,MAAM;IAoB3B,WAAW,CAAC,EAAE,EAAE,MAAM;IAwBtB,+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"}
@@ -219,7 +219,7 @@ export class SequelizeStorage {
219
219
  });
220
220
  return ids;
221
221
  }
222
- async checkDocumentExists(driveId, id) {
222
+ async exists(id) {
223
223
  const Document = this.db.models.document;
224
224
  if (!Document) {
225
225
  throw new Error("Document model not found");
@@ -227,11 +227,13 @@ export class SequelizeStorage {
227
227
  const count = await Document.count({
228
228
  where: {
229
229
  id: id,
230
- driveId: driveId,
231
230
  },
232
231
  });
233
232
  return count > 0;
234
233
  }
234
+ async checkDocumentExists(drive, id) {
235
+ return this.exists(id);
236
+ }
235
237
  async getDocument(driveId, id) {
236
238
  const documentFromDb = this.db.models.document;
237
239
  if (!documentFromDb) {
@@ -4,6 +4,9 @@ import type { DocumentHeader, Operation, OperationFromDocument, OperationsFromDo
4
4
  export interface IStorageDelegate {
5
5
  getCachedOperations<TDocument extends PHDocument = PHDocument>(drive: string, id: string): Promise<OperationsFromDocument<TDocument> | undefined>;
6
6
  }
7
+ export interface IDocumentStorage {
8
+ exists(documentId: string): Promise<boolean>;
9
+ }
7
10
  export interface IStorage {
8
11
  checkDocumentExists(drive: string, id: string): Promise<boolean>;
9
12
  getDocuments: (drive: string) => Promise<string[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/storage/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/storage/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,KAAK,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE3E,MAAM,MAAM,OAAO,GAAG,IAAI,CACxB,OAAO,EACP,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAC5C,GAAG;IACF,KAAK,EAAE,QAAQ,GAAG,KAAK,CAAC;IACxB,YAAY,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAE7C,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;CAC5D,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;AAW1D,qBAAa,aAAc,YAAW,OAAO;;gBAK/B,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,YAAY,CAAC,EAAE,kBAAkB;IAa9D,IAAI,KAAK,IAAI,QAAQ,GAAG,KAAK,CAE5B;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,EAEhC;IAED,IAAI,YAAY,IAAI,kBAAkB,GAAG,SAAS,CAEjD;IAED,IAAI,YAAY,CAAC,OAAO,EAAE,kBAAkB,GAAG,SAAS,EAEvD;IAoBD,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAIzB,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAQ7B,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAQ3B,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAQ1B,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAQ1B,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;CAW5B;AASD,eAAO,MAAM,MAAM,EAAE,OAAwB,CAAC;AAE9C,eAAO,MAAM,eAAe,YAAa,kBAAkB,SAG1D,CAAC;AAEF,eAAO,MAAM,WAAW,UAAW,QAAQ,GAAG,KAAK,SAGlD,CAAC;AAEF,eAAO,MAAM,WAAW,SAAU,MAAM,EAAE,kBAKzC,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,KAAK,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE3E,MAAM,MAAM,OAAO,GAAG,IAAI,CACxB,OAAO,EACP,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAC5C,GAAG;IACF,KAAK,EAAE,QAAQ,GAAG,KAAK,CAAC;IACxB,YAAY,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAE7C,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;CAC5D,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;AAW1D,qBAAa,aAAc,YAAW,OAAO;;gBAK/B,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,YAAY,CAAC,EAAE,kBAAkB;IAa9D,IAAI,KAAK,IAAI,QAAQ,GAAG,KAAK,CAE5B;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,EAEhC;IAED,IAAI,YAAY,IAAI,kBAAkB,GAAG,SAAS,CAEjD;IAED,IAAI,YAAY,CAAC,OAAO,EAAE,kBAAkB,GAAG,SAAS,EAEvD;IAoBD,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAIzB,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAQ7B,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAQ3B,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAQ1B,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAQ1B,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;CAW5B;AASD,eAAO,MAAM,MAAM,EAAE,OAAwB,CAAC;AAE9C,eAAO,MAAM,eAAe,GAAI,SAAS,kBAAkB,SAG1D,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,QAAQ,GAAG,KAAK,SAGlD,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,EAAE,kBAKzC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../test/document-helpers/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC,GAAG;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,cAAc,UAClB,cAAc,yBAEpB,SAoBF,CAAC;AAEF,eAAO,MAAM,eAAe,WAClB,cAAc,EAAE,yBAEvB,SAAS,EAAoD,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../test/document-helpers/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC,GAAG;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,OAAO,cAAc,EACrB,kBAAgB,KACf,SAoBF,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,QAAQ,cAAc,EAAE,EACxB,kBAAgB,KACf,SAAS,EAAoD,CAAC"}