@dxos/random-access-storage 0.8.3-staging.0fa589b → 0.8.4-main.1da679c
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/lib/browser/index.mjs +172 -124
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +101 -43
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/browser/storage.d.ts.map +1 -1
- package/dist/types/src/browser/web-fs.d.ts.map +1 -1
- package/dist/types/src/common/abstract-storage.d.ts.map +1 -1
- package/dist/types/src/node/node-storage.d.ts.map +1 -1
- package/dist/types/src/node/storage.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -8
- package/src/browser/bench.browser.test.ts +2 -1
- package/src/browser/idb-storage.ts +1 -1
- package/src/browser/storage.browser.test.ts +3 -2
- package/src/browser/storage.ts +2 -1
- package/src/browser/web-fs.ts +2 -1
- package/src/common/abstract-storage.ts +1 -0
- package/src/node/bench.node.test.ts +4 -2
- package/src/node/node-storage.ts +2 -1
- package/src/node/storage.node.test.ts +5 -3
- package/src/node/storage.ts +2 -1
- package/dist/lib/node/index.cjs +0 -413
- package/dist/lib/node/index.cjs.map +0 -7
- package/dist/lib/node/meta.json +0 -1
|
@@ -1,26 +1,31 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
|
|
3
|
-
//
|
|
3
|
+
// src/common/abstract-storage.ts
|
|
4
4
|
import { join as join2 } from "node:path";
|
|
5
5
|
import { inspect } from "node:util";
|
|
6
6
|
import { inspectObject } from "@dxos/debug";
|
|
7
7
|
import { log as log2 } from "@dxos/log";
|
|
8
8
|
|
|
9
|
-
//
|
|
9
|
+
// src/common/utils.ts
|
|
10
10
|
import { join } from "node:path";
|
|
11
11
|
var stringDiff = (first, second) => first.split(second).join("");
|
|
12
12
|
var getFullPath = (root, path) => join(root, stringDiff(path, root));
|
|
13
13
|
|
|
14
|
-
//
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
14
|
+
// src/common/directory.ts
|
|
15
|
+
function _define_property(obj, key, value) {
|
|
16
|
+
if (key in obj) {
|
|
17
|
+
Object.defineProperty(obj, key, {
|
|
18
|
+
value,
|
|
19
|
+
enumerable: true,
|
|
20
|
+
configurable: true,
|
|
21
|
+
writable: true
|
|
22
|
+
});
|
|
23
|
+
} else {
|
|
24
|
+
obj[key] = value;
|
|
23
25
|
}
|
|
26
|
+
return obj;
|
|
27
|
+
}
|
|
28
|
+
var Directory = class _Directory {
|
|
24
29
|
toString() {
|
|
25
30
|
return `Directory(${JSON.stringify({
|
|
26
31
|
type: this.type,
|
|
@@ -60,12 +65,26 @@ var Directory = class _Directory {
|
|
|
60
65
|
async delete() {
|
|
61
66
|
await this._remove();
|
|
62
67
|
}
|
|
68
|
+
constructor({ type, path, list, getOrCreateFile, remove, onFlush }) {
|
|
69
|
+
_define_property(this, "type", void 0);
|
|
70
|
+
_define_property(this, "path", void 0);
|
|
71
|
+
_define_property(this, "_list", void 0);
|
|
72
|
+
_define_property(this, "_getOrCreateFile", void 0);
|
|
73
|
+
_define_property(this, "_remove", void 0);
|
|
74
|
+
_define_property(this, "_onFlush", void 0);
|
|
75
|
+
this.type = type;
|
|
76
|
+
this.path = path;
|
|
77
|
+
this._list = list;
|
|
78
|
+
this._getOrCreateFile = getOrCreateFile;
|
|
79
|
+
this._remove = remove;
|
|
80
|
+
this._onFlush = onFlush;
|
|
81
|
+
}
|
|
63
82
|
};
|
|
64
83
|
|
|
65
|
-
//
|
|
84
|
+
// src/common/file.ts
|
|
66
85
|
import pify from "pify";
|
|
67
86
|
import { log } from "@dxos/log";
|
|
68
|
-
var __dxlog_file = "/
|
|
87
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/common/random-access-storage/src/common/file.ts";
|
|
69
88
|
var MAX_STORAGE_OPERATION_TIME = 50;
|
|
70
89
|
var pifyFields = (object, type, fields) => {
|
|
71
90
|
for (const field of fields) {
|
|
@@ -110,15 +129,24 @@ var wrapFile = (native, type) => {
|
|
|
110
129
|
});
|
|
111
130
|
};
|
|
112
131
|
|
|
113
|
-
//
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
132
|
+
// src/common/abstract-storage.ts
|
|
133
|
+
function _define_property2(obj, key, value) {
|
|
134
|
+
if (key in obj) {
|
|
135
|
+
Object.defineProperty(obj, key, {
|
|
136
|
+
value,
|
|
137
|
+
enumerable: true,
|
|
138
|
+
configurable: true,
|
|
139
|
+
writable: true
|
|
140
|
+
});
|
|
141
|
+
} else {
|
|
142
|
+
obj[key] = value;
|
|
120
143
|
}
|
|
121
|
-
|
|
144
|
+
return obj;
|
|
145
|
+
}
|
|
146
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/common/random-access-storage/src/common/abstract-storage.ts";
|
|
147
|
+
var _inspect_custom = inspect.custom;
|
|
148
|
+
var AbstractStorage = class {
|
|
149
|
+
[_inspect_custom]() {
|
|
122
150
|
return inspectObject(this);
|
|
123
151
|
}
|
|
124
152
|
toJSON() {
|
|
@@ -147,7 +175,7 @@ var AbstractStorage = class {
|
|
|
147
175
|
try {
|
|
148
176
|
log2.info("Erasing all data...", void 0, {
|
|
149
177
|
F: __dxlog_file2,
|
|
150
|
-
L:
|
|
178
|
+
L: 61,
|
|
151
179
|
S: this,
|
|
152
180
|
C: (f, a) => f(...a)
|
|
153
181
|
});
|
|
@@ -156,14 +184,14 @@ var AbstractStorage = class {
|
|
|
156
184
|
await this._destroy();
|
|
157
185
|
log2("Erased...", void 0, {
|
|
158
186
|
F: __dxlog_file2,
|
|
159
|
-
L:
|
|
187
|
+
L: 65,
|
|
160
188
|
S: this,
|
|
161
189
|
C: (f, a) => f(...a)
|
|
162
190
|
});
|
|
163
191
|
} catch (err) {
|
|
164
192
|
log2.catch(err, void 0, {
|
|
165
193
|
F: __dxlog_file2,
|
|
166
|
-
L:
|
|
194
|
+
L: 67,
|
|
167
195
|
S: this,
|
|
168
196
|
C: (f, a) => f(...a)
|
|
169
197
|
});
|
|
@@ -221,7 +249,7 @@ var AbstractStorage = class {
|
|
|
221
249
|
async _closeFilesInPath(path) {
|
|
222
250
|
await Promise.all(Array.from((await this._getFiles(path)).values()).map((file) => file.close().catch((err) => log2.catch(err, void 0, {
|
|
223
251
|
F: __dxlog_file2,
|
|
224
|
-
L:
|
|
252
|
+
L: 135,
|
|
225
253
|
S: this,
|
|
226
254
|
C: (f, a) => f(...a)
|
|
227
255
|
}))));
|
|
@@ -234,20 +262,27 @@ var AbstractStorage = class {
|
|
|
234
262
|
await Promise.all(Array.from(await this._getFiles(path)).map(([path2, file]) => {
|
|
235
263
|
return file.destroy().then(() => this._files.delete(path2)).catch((err) => log2.error(err.message, void 0, {
|
|
236
264
|
F: __dxlog_file2,
|
|
237
|
-
L:
|
|
265
|
+
L: 150,
|
|
238
266
|
S: this,
|
|
239
267
|
C: (f, a) => f(...a)
|
|
240
268
|
}));
|
|
241
269
|
}));
|
|
242
270
|
}
|
|
271
|
+
// TODO(burdon): Make required.
|
|
272
|
+
constructor(path) {
|
|
273
|
+
_define_property2(this, "path", void 0);
|
|
274
|
+
_define_property2(this, "_files", void 0);
|
|
275
|
+
this.path = path;
|
|
276
|
+
this._files = /* @__PURE__ */ new Map();
|
|
277
|
+
}
|
|
243
278
|
};
|
|
244
279
|
|
|
245
|
-
//
|
|
280
|
+
// src/common/memory-storage.ts
|
|
246
281
|
import ram from "random-access-memory";
|
|
247
282
|
import { arrayToBuffer } from "@dxos/util";
|
|
248
283
|
|
|
249
|
-
//
|
|
250
|
-
var StorageType = /* @__PURE__ */ function(StorageType2) {
|
|
284
|
+
// src/common/storage.ts
|
|
285
|
+
var StorageType = /* @__PURE__ */ (function(StorageType2) {
|
|
251
286
|
StorageType2["RAM"] = "ram";
|
|
252
287
|
StorageType2["IDB"] = "idb";
|
|
253
288
|
StorageType2["CHROME"] = "chrome";
|
|
@@ -255,14 +290,23 @@ var StorageType = /* @__PURE__ */ function(StorageType2) {
|
|
|
255
290
|
StorageType2["NODE"] = "node";
|
|
256
291
|
StorageType2["WEBFS"] = "webfs";
|
|
257
292
|
return StorageType2;
|
|
258
|
-
}({});
|
|
293
|
+
})({});
|
|
259
294
|
|
|
260
|
-
//
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
295
|
+
// src/common/memory-storage.ts
|
|
296
|
+
function _define_property3(obj, key, value) {
|
|
297
|
+
if (key in obj) {
|
|
298
|
+
Object.defineProperty(obj, key, {
|
|
299
|
+
value,
|
|
300
|
+
enumerable: true,
|
|
301
|
+
configurable: true,
|
|
302
|
+
writable: true
|
|
303
|
+
});
|
|
304
|
+
} else {
|
|
305
|
+
obj[key] = value;
|
|
265
306
|
}
|
|
307
|
+
return obj;
|
|
308
|
+
}
|
|
309
|
+
var MemoryStorage = class extends AbstractStorage {
|
|
266
310
|
_createFile(path, filename) {
|
|
267
311
|
return this._patchFile(ram());
|
|
268
312
|
}
|
|
@@ -292,20 +336,31 @@ var MemoryStorage = class extends AbstractStorage {
|
|
|
292
336
|
used
|
|
293
337
|
};
|
|
294
338
|
}
|
|
339
|
+
constructor(...args) {
|
|
340
|
+
super(...args), _define_property3(this, "type", StorageType.RAM);
|
|
341
|
+
}
|
|
295
342
|
};
|
|
296
343
|
|
|
297
|
-
//
|
|
298
|
-
import del from "del";
|
|
344
|
+
// src/node/node-storage.ts
|
|
299
345
|
import { existsSync } from "node:fs";
|
|
300
346
|
import { readdir, stat } from "node:fs/promises";
|
|
301
347
|
import { join as join3 } from "node:path";
|
|
348
|
+
import del from "del";
|
|
302
349
|
import raf from "random-access-file";
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
350
|
+
function _define_property4(obj, key, value) {
|
|
351
|
+
if (key in obj) {
|
|
352
|
+
Object.defineProperty(obj, key, {
|
|
353
|
+
value,
|
|
354
|
+
enumerable: true,
|
|
355
|
+
configurable: true,
|
|
356
|
+
writable: true
|
|
357
|
+
});
|
|
358
|
+
} else {
|
|
359
|
+
obj[key] = value;
|
|
308
360
|
}
|
|
361
|
+
return obj;
|
|
362
|
+
}
|
|
363
|
+
var NodeStorage = class extends AbstractStorage {
|
|
309
364
|
async _loadFiles(path) {
|
|
310
365
|
if (!existsSync(path)) {
|
|
311
366
|
return;
|
|
@@ -361,9 +416,12 @@ var NodeStorage = class extends AbstractStorage {
|
|
|
361
416
|
used
|
|
362
417
|
};
|
|
363
418
|
}
|
|
419
|
+
constructor(...args) {
|
|
420
|
+
super(...args), _define_property4(this, "type", StorageType.NODE), _define_property4(this, "_initialized", false);
|
|
421
|
+
}
|
|
364
422
|
};
|
|
365
423
|
|
|
366
|
-
//
|
|
424
|
+
// src/node/storage.ts
|
|
367
425
|
var createStorage = ({ type, root = "/tmp/dxos/testing" } = {}) => {
|
|
368
426
|
if (type === void 0) {
|
|
369
427
|
return new NodeStorage(root);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/common/abstract-storage.ts", "../../../src/common/utils.ts", "../../../src/common/directory.ts", "../../../src/common/file.ts", "../../../src/common/memory-storage.ts", "../../../src/common/storage.ts", "../../../src/node/node-storage.ts", "../../../src/node/storage.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2021 DXOS.org\n//\n\nimport { join } from 'node:path';\nimport { inspect } from 'node:util';\nimport type { RandomAccessStorage } from 'random-access-storage';\n\nimport { inspectObject } from '@dxos/debug';\nimport { log } from '@dxos/log';\n\nimport { Directory } from './directory';\nimport { type File, wrapFile } from './file';\nimport { type Storage, type StorageType } from './storage';\nimport { getFullPath } from './utils';\n\n/**\n * Base class for all storage implementations.\n * https://github.com/random-access-storage\n * https://github.com/random-access-storage/random-access-storage\n */\n// TODO(dmaretskyi): Remove this class.\nexport abstract class AbstractStorage implements Storage {\n protected readonly _files = new Map<string, File>();\n\n public abstract readonly type: StorageType;\n\n // TODO(burdon): Make required.\n constructor(public readonly path: string) {}\n\n [inspect.custom](): string {\n return inspectObject(this);\n }\n\n toJSON(): { type: StorageType; path: string } {\n return { type: this.type, path: this.path };\n }\n\n public get size() {\n return this._files.size;\n }\n\n // TODO(burdon): Make required.\n public createDirectory(sub = ''): Directory {\n // invariant(sub.length);\n return new Directory({\n type: this.type,\n path: getFullPath(this.path, sub),\n list: this._list.bind(this),\n getOrCreateFile: (...args) => this.getOrCreateFile(...args),\n remove: () => this._remove(sub),\n });\n }\n\n /**\n * Delete all files.\n */\n async reset(): Promise<void> {\n try {\n log.info('Erasing all data...');\n await this._closeFilesInPath('');\n await this._remove('');\n await this._destroy();\n log('Erased...');\n } catch (err: any) {\n log.catch(err);\n }\n }\n\n protected async _list(path: string): Promise<string[]> {\n // TODO(dmaretskyi): Fix me.\n return Array.from((await this._getFiles(path)).keys()).map((filename) => {\n let name = filename.replace(path, '');\n if (name.startsWith('/')) {\n name = name.substring(1);\n }\n return name;\n });\n }\n\n protected getOrCreateFile(path: string, filename: string, opts?: any): File {\n const fullPath = join(path, filename);\n\n let native;\n let file = this._getFileIfExists(fullPath);\n if (file) {\n if (!file.closed) {\n return file;\n }\n\n native = this._openFile(file.native);\n }\n\n if (!native) {\n native = this._createFile(path, filename, opts);\n }\n\n file = wrapFile(native, this.type);\n this._files.set(fullPath, file);\n return file;\n }\n\n protected _destroy(): Promise<void> | undefined {\n return undefined;\n }\n\n /**\n * Attempt to reopen file.\n */\n protected _openFile(file: RandomAccessStorage): RandomAccessStorage | undefined {\n return undefined;\n }\n\n protected abstract _createFile(path: string, filename: string, opts?: any): RandomAccessStorage;\n\n private _getFileIfExists(filename: string): File | undefined {\n if (this._files.has(filename)) {\n const file = this._files.get(filename);\n if (file && !file.destroyed) {\n return file;\n }\n }\n }\n\n protected async _getFiles(path: string): Promise<Map<string, File>> {\n const fullPath = getFullPath(this.path, path);\n return new Map(\n [...this._files.entries()].filter(([path, file]) => path.includes(fullPath) && file.destroyed !== true),\n );\n }\n\n protected async _closeFilesInPath(path: string): Promise<void> {\n await Promise.all(\n Array.from((await this._getFiles(path)).values()).map((file) => file.close().catch((err: any) => log.catch(err))),\n );\n }\n\n async close(): Promise<void> {\n await this._closeFilesInPath('');\n }\n\n // TODO(burdon): Delete directory (not just listed files).\n protected async _remove(path: string): Promise<void> {\n await Promise.all(\n Array.from(await this._getFiles(path)).map(([path, file]) => {\n return file\n .destroy()\n .then(() => this._files.delete(path))\n .catch((err: any) => log.error(err.message));\n }),\n );\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { join } from 'node:path';\n\n// TODO(burdon): Document.\nexport const stringDiff = (first: string, second: string) => first.split(second).join('');\n\nexport const getFullPath = (root: string, path: string) => join(root, stringDiff(path, root));\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type File } from './file';\nimport { type StorageType } from './storage';\nimport { getFullPath } from './utils';\n\nexport type DirectoryParams = {\n type: StorageType;\n path: string;\n // TODO(burdon): Create interface for these methods (shared with AbstractStorage).\n list: (path: string) => Promise<string[]>;\n getOrCreateFile: (path: string, filename: string, opts?: any) => File;\n remove: () => Promise<void>;\n onFlush?: () => Promise<void>;\n};\n\n/**\n * Wraps a directory in the storage file system.\n */\nexport class Directory {\n public readonly type: StorageType;\n public readonly path: string;\n // TODO(burdon): Create interface for these methods (shared with AbstractStorage).\n private readonly _list: (path: string) => Promise<string[]>;\n private readonly _getOrCreateFile: (path: string, filename: string, opts?: any) => File;\n private readonly _remove: () => Promise<void>;\n private readonly _onFlush?: () => Promise<void>;\n\n constructor({ type, path, list, getOrCreateFile, remove, onFlush }: DirectoryParams) {\n this.type = type;\n this.path = path;\n this._list = list;\n this._getOrCreateFile = getOrCreateFile;\n this._remove = remove;\n this._onFlush = onFlush;\n }\n\n toString(): string {\n return `Directory(${JSON.stringify({ type: this.type, path: this.path })})`;\n }\n\n /**\n * Create a new sub-directory.\n */\n createDirectory(path: string): Directory {\n return new Directory({\n type: this.type,\n path: getFullPath(this.path, path),\n list: this._list,\n getOrCreateFile: this._getOrCreateFile,\n remove: this._remove,\n });\n }\n\n /**\n * Get all files in the current directory.\n */\n list(): Promise<string[]> {\n return this._list(this.path);\n }\n\n /**\n * Get or create a new file.\n */\n getOrCreateFile(filename: string, opts?: any): File {\n return this._getOrCreateFile(this.path, filename, opts);\n }\n\n async flush(): Promise<void> {\n await this._onFlush?.();\n }\n\n /**\n * Close and delete all files in the directory and all its sub-directories.\n */\n async delete(): Promise<void> {\n await this._remove();\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport pify from 'pify';\nimport type { FileStat, RandomAccessStorage, RandomAccessStorageProperties } from 'random-access-storage';\n\nimport { log } from '@dxos/log';\n\nimport { type StorageType } from './storage';\n\nconst MAX_STORAGE_OPERATION_TIME = 50;\n\n/**\n * Random access file wrapper.\n * https://github.com/random-access-storage/random-access-storage\n */\nexport interface File extends RandomAccessStorageProperties {\n readonly destroyed: boolean;\n\n // TODO(burdon): Can we remove these since they are not standard across implementations?\n readonly directory: string;\n readonly filename: string;\n\n // Added by factory.\n readonly type: StorageType;\n readonly native: RandomAccessStorage;\n\n write(offset: number, data: Buffer): Promise<void>;\n read(offset: number, size: number): Promise<Buffer>;\n del(offset: number, size: number): Promise<void>;\n stat(): Promise<FileStat>;\n close(): Promise<Error | void>;\n destroy(): Promise<Error | void>;\n\n /**\n * Save changes to disk.\n */\n flush?(): Promise<void>;\n\n // Not supported in node, memory.\n truncate?(offset: number): Promise<void>;\n\n // random-access-memory only.\n clone?(): RandomAccessStorage;\n}\n\nconst pifyFields = (object: any, type: StorageType, fields: string[]) => {\n for (const field of fields) {\n if (!object[field]) {\n // TODO(burdon): Suppress warning and throw error if used.\n // console.warn(`Field not supported for type: ${JSON.stringify({ type, field })}`);\n } else {\n const fn = pify(object[field].bind(object));\n object[field] = async (...args: any) => {\n const before = performance.now();\n\n const res = await fn(...args);\n\n const elapsed = performance.now() - before;\n if (elapsed > MAX_STORAGE_OPERATION_TIME) {\n log('Slow storage operation', { type, operation: field, elapsed });\n }\n\n return res;\n };\n }\n }\n\n return object;\n};\n\n/**\n * Construct async File wrapper.\n * NOTE: This is safe since these are interface methods only (not used internally).\n */\nexport const wrapFile = (native: RandomAccessStorage, type: StorageType): File => {\n const file = pifyFields(native, type, ['write', 'read', 'del', 'stat', 'close', 'destroy', 'truncate']);\n return Object.assign(file, { type, native });\n};\n", "//\n// Copyright 2021 DXOS.org\n//\n\nimport ram from 'random-access-memory';\nimport { type Callback, type RandomAccessStorage } from 'random-access-storage';\n\nimport { arrayToBuffer } from '@dxos/util';\n\nimport { AbstractStorage } from './abstract-storage';\nimport { type DiskInfo, StorageType } from './storage';\n\n/**\n * Storage interface implementation for RAM.\n * https://github.com/random-access-storage/random-access-memory\n */\nexport class MemoryStorage extends AbstractStorage {\n public override type: StorageType = StorageType.RAM;\n\n protected override _createFile(path: string, filename: string): RandomAccessStorage {\n return this._patchFile(ram());\n }\n\n protected override _openFile(file: RandomAccessStorage): RandomAccessStorage {\n const newFile = file.clone!();\n (newFile as any).closed = false;\n return this._patchFile(newFile);\n }\n\n private _patchFile(file: RandomAccessStorage): RandomAccessStorage {\n // Patch required to make consistent across platforms.\n const trueRead = file.read.bind(file);\n\n file.read = (offset: number, size: number, cb: Callback<Buffer>) =>\n trueRead(offset, size, (err: Error | null, data?: Buffer) => {\n if (err) {\n return cb(err);\n } else {\n return cb(err, arrayToBuffer(data!));\n }\n });\n\n return file;\n }\n\n async getDiskInfo(): Promise<DiskInfo> {\n let used = 0;\n\n for (const file of this._files.values()) {\n const size = (file as any).length;\n used += Number.isNaN(size) ? 0 : size;\n }\n\n return {\n used,\n };\n }\n}\n", "//\n// Copyright 2021 DXOS.org\n//\n\nimport { type Directory } from './directory';\n\n// TODO(burdon): Reconcile with ConfigProto.\nexport enum StorageType {\n RAM = 'ram',\n IDB = 'idb',\n /**\n * @deprecated\n */\n CHROME = 'chrome',\n /**\n * @deprecated\n */\n FIREFOX = 'firefox',\n NODE = 'node',\n /**\n * @deprecated\n */\n WEBFS = 'webfs',\n}\n\nexport type DiskInfo = {\n /**\n * Bytes.\n */\n used: number;\n};\n\nexport interface Storage {\n readonly path: string;\n readonly type: StorageType;\n readonly size: number;\n\n getDiskInfo?(): Promise<DiskInfo>;\n\n // TODO(burdon): Make required.\n createDirectory: (path?: string) => Directory;\n reset: () => Promise<void>;\n close: () => Promise<void>;\n}\n\nexport type StorageConstructor = (params?: { type?: StorageType; root?: string }) => Storage;\n", "//\n// Copyright 2021 DXOS.org\n//\n\nimport del from 'del';\nimport { existsSync } from 'node:fs';\nimport { readdir, stat } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport raf from 'random-access-file';\nimport { type RandomAccessStorage } from 'random-access-storage';\n\nimport { AbstractStorage, type DiskInfo, type Storage, StorageType, wrapFile } from '../common';\n\n/**\n * Storage interface implementation for Node.\n */\nexport class NodeStorage extends AbstractStorage implements Storage {\n public override type: StorageType = StorageType.NODE;\n private _initialized = false;\n\n private async _loadFiles(path: string): Promise<void> {\n // TODO(mykola): Do not load all files at once. It is a quick fix.\n if (!existsSync(path)) {\n return;\n }\n\n // Preload all files in a directory.\n const dir = await readdir(path);\n for (const entry of dir) {\n const fullPath = join(path, entry);\n if (this._files.has(fullPath)) {\n continue;\n }\n const entryInfo = await stat(fullPath);\n if (entryInfo.isDirectory()) {\n await this._loadFiles(fullPath);\n } else if (entryInfo.isFile()) {\n const file = this._createFile(path, entry);\n this._files.set(fullPath, wrapFile(file, this.type));\n }\n }\n }\n\n protected override _createFile(path: string, filename: string, opts: any = {}): RandomAccessStorage {\n const file = raf(filename, { directory: path, ...opts });\n\n // Empty write to create file on a drive.\n file.write(0, Buffer.from(''));\n\n return file;\n }\n\n protected override async _destroy(): Promise<void> {\n await del(this.path, { force: true });\n }\n\n protected override async _getFiles(path: string) {\n if (!this._initialized) {\n await this._loadFiles(this.path);\n this._initialized = true;\n }\n\n return super._getFiles(path);\n }\n\n async getDiskInfo(): Promise<DiskInfo> {\n let used = 0;\n\n const recurse = async (path: string) => {\n const pathStats = await stat(path);\n\n if (pathStats.isDirectory()) {\n const entries = await readdir(path);\n await Promise.all(entries.map((entry) => recurse(join(path, entry))));\n } else {\n used += pathStats.size;\n }\n };\n\n await recurse(this.path);\n\n return {\n used,\n };\n }\n}\n", "//\n// Copyright 2021 DXOS.org\n//\n\nimport { NodeStorage } from './node-storage';\nimport { MemoryStorage, type Storage, type StorageConstructor, StorageType } from '../common';\n\nexport const createStorage: StorageConstructor = ({ type, root = '/tmp/dxos/testing' } = {}): Storage => {\n if (type === undefined) {\n return new NodeStorage(root);\n }\n\n switch (type) {\n case StorageType.RAM: {\n return new MemoryStorage(root);\n }\n\n case StorageType.NODE: {\n return new NodeStorage(root);\n }\n\n default: {\n throw new Error(`Invalid type: ${type}`);\n }\n }\n};\n"],
|
|
5
|
-
"mappings": ";;;AAIA,SAASA,QAAAA,aAAY;AACrB,SAASC,eAAe;
|
|
6
|
-
"names": ["join", "inspect", "inspectObject", "log", "join", "stringDiff", "first", "second", "split", "join", "getFullPath", "root", "path", "Directory", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2021 DXOS.org\n//\n\nimport { join } from 'node:path';\nimport { inspect } from 'node:util';\n\nimport type { RandomAccessStorage } from 'random-access-storage';\n\nimport { inspectObject } from '@dxos/debug';\nimport { log } from '@dxos/log';\n\nimport { Directory } from './directory';\nimport { type File, wrapFile } from './file';\nimport { type Storage, type StorageType } from './storage';\nimport { getFullPath } from './utils';\n\n/**\n * Base class for all storage implementations.\n * https://github.com/random-access-storage\n * https://github.com/random-access-storage/random-access-storage\n */\n// TODO(dmaretskyi): Remove this class.\nexport abstract class AbstractStorage implements Storage {\n protected readonly _files = new Map<string, File>();\n\n public abstract readonly type: StorageType;\n\n // TODO(burdon): Make required.\n constructor(public readonly path: string) {}\n\n [inspect.custom](): string {\n return inspectObject(this);\n }\n\n toJSON(): { type: StorageType; path: string } {\n return { type: this.type, path: this.path };\n }\n\n public get size() {\n return this._files.size;\n }\n\n // TODO(burdon): Make required.\n public createDirectory(sub = ''): Directory {\n // invariant(sub.length);\n return new Directory({\n type: this.type,\n path: getFullPath(this.path, sub),\n list: this._list.bind(this),\n getOrCreateFile: (...args) => this.getOrCreateFile(...args),\n remove: () => this._remove(sub),\n });\n }\n\n /**\n * Delete all files.\n */\n async reset(): Promise<void> {\n try {\n log.info('Erasing all data...');\n await this._closeFilesInPath('');\n await this._remove('');\n await this._destroy();\n log('Erased...');\n } catch (err: any) {\n log.catch(err);\n }\n }\n\n protected async _list(path: string): Promise<string[]> {\n // TODO(dmaretskyi): Fix me.\n return Array.from((await this._getFiles(path)).keys()).map((filename) => {\n let name = filename.replace(path, '');\n if (name.startsWith('/')) {\n name = name.substring(1);\n }\n return name;\n });\n }\n\n protected getOrCreateFile(path: string, filename: string, opts?: any): File {\n const fullPath = join(path, filename);\n\n let native;\n let file = this._getFileIfExists(fullPath);\n if (file) {\n if (!file.closed) {\n return file;\n }\n\n native = this._openFile(file.native);\n }\n\n if (!native) {\n native = this._createFile(path, filename, opts);\n }\n\n file = wrapFile(native, this.type);\n this._files.set(fullPath, file);\n return file;\n }\n\n protected _destroy(): Promise<void> | undefined {\n return undefined;\n }\n\n /**\n * Attempt to reopen file.\n */\n protected _openFile(file: RandomAccessStorage): RandomAccessStorage | undefined {\n return undefined;\n }\n\n protected abstract _createFile(path: string, filename: string, opts?: any): RandomAccessStorage;\n\n private _getFileIfExists(filename: string): File | undefined {\n if (this._files.has(filename)) {\n const file = this._files.get(filename);\n if (file && !file.destroyed) {\n return file;\n }\n }\n }\n\n protected async _getFiles(path: string): Promise<Map<string, File>> {\n const fullPath = getFullPath(this.path, path);\n return new Map(\n [...this._files.entries()].filter(([path, file]) => path.includes(fullPath) && file.destroyed !== true),\n );\n }\n\n protected async _closeFilesInPath(path: string): Promise<void> {\n await Promise.all(\n Array.from((await this._getFiles(path)).values()).map((file) => file.close().catch((err: any) => log.catch(err))),\n );\n }\n\n async close(): Promise<void> {\n await this._closeFilesInPath('');\n }\n\n // TODO(burdon): Delete directory (not just listed files).\n protected async _remove(path: string): Promise<void> {\n await Promise.all(\n Array.from(await this._getFiles(path)).map(([path, file]) => {\n return file\n .destroy()\n .then(() => this._files.delete(path))\n .catch((err: any) => log.error(err.message));\n }),\n );\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { join } from 'node:path';\n\n// TODO(burdon): Document.\nexport const stringDiff = (first: string, second: string) => first.split(second).join('');\n\nexport const getFullPath = (root: string, path: string) => join(root, stringDiff(path, root));\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type File } from './file';\nimport { type StorageType } from './storage';\nimport { getFullPath } from './utils';\n\nexport type DirectoryParams = {\n type: StorageType;\n path: string;\n // TODO(burdon): Create interface for these methods (shared with AbstractStorage).\n list: (path: string) => Promise<string[]>;\n getOrCreateFile: (path: string, filename: string, opts?: any) => File;\n remove: () => Promise<void>;\n onFlush?: () => Promise<void>;\n};\n\n/**\n * Wraps a directory in the storage file system.\n */\nexport class Directory {\n public readonly type: StorageType;\n public readonly path: string;\n // TODO(burdon): Create interface for these methods (shared with AbstractStorage).\n private readonly _list: (path: string) => Promise<string[]>;\n private readonly _getOrCreateFile: (path: string, filename: string, opts?: any) => File;\n private readonly _remove: () => Promise<void>;\n private readonly _onFlush?: () => Promise<void>;\n\n constructor({ type, path, list, getOrCreateFile, remove, onFlush }: DirectoryParams) {\n this.type = type;\n this.path = path;\n this._list = list;\n this._getOrCreateFile = getOrCreateFile;\n this._remove = remove;\n this._onFlush = onFlush;\n }\n\n toString(): string {\n return `Directory(${JSON.stringify({ type: this.type, path: this.path })})`;\n }\n\n /**\n * Create a new sub-directory.\n */\n createDirectory(path: string): Directory {\n return new Directory({\n type: this.type,\n path: getFullPath(this.path, path),\n list: this._list,\n getOrCreateFile: this._getOrCreateFile,\n remove: this._remove,\n });\n }\n\n /**\n * Get all files in the current directory.\n */\n list(): Promise<string[]> {\n return this._list(this.path);\n }\n\n /**\n * Get or create a new file.\n */\n getOrCreateFile(filename: string, opts?: any): File {\n return this._getOrCreateFile(this.path, filename, opts);\n }\n\n async flush(): Promise<void> {\n await this._onFlush?.();\n }\n\n /**\n * Close and delete all files in the directory and all its sub-directories.\n */\n async delete(): Promise<void> {\n await this._remove();\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport pify from 'pify';\nimport type { FileStat, RandomAccessStorage, RandomAccessStorageProperties } from 'random-access-storage';\n\nimport { log } from '@dxos/log';\n\nimport { type StorageType } from './storage';\n\nconst MAX_STORAGE_OPERATION_TIME = 50;\n\n/**\n * Random access file wrapper.\n * https://github.com/random-access-storage/random-access-storage\n */\nexport interface File extends RandomAccessStorageProperties {\n readonly destroyed: boolean;\n\n // TODO(burdon): Can we remove these since they are not standard across implementations?\n readonly directory: string;\n readonly filename: string;\n\n // Added by factory.\n readonly type: StorageType;\n readonly native: RandomAccessStorage;\n\n write(offset: number, data: Buffer): Promise<void>;\n read(offset: number, size: number): Promise<Buffer>;\n del(offset: number, size: number): Promise<void>;\n stat(): Promise<FileStat>;\n close(): Promise<Error | void>;\n destroy(): Promise<Error | void>;\n\n /**\n * Save changes to disk.\n */\n flush?(): Promise<void>;\n\n // Not supported in node, memory.\n truncate?(offset: number): Promise<void>;\n\n // random-access-memory only.\n clone?(): RandomAccessStorage;\n}\n\nconst pifyFields = (object: any, type: StorageType, fields: string[]) => {\n for (const field of fields) {\n if (!object[field]) {\n // TODO(burdon): Suppress warning and throw error if used.\n // console.warn(`Field not supported for type: ${JSON.stringify({ type, field })}`);\n } else {\n const fn = pify(object[field].bind(object));\n object[field] = async (...args: any) => {\n const before = performance.now();\n\n const res = await fn(...args);\n\n const elapsed = performance.now() - before;\n if (elapsed > MAX_STORAGE_OPERATION_TIME) {\n log('Slow storage operation', { type, operation: field, elapsed });\n }\n\n return res;\n };\n }\n }\n\n return object;\n};\n\n/**\n * Construct async File wrapper.\n * NOTE: This is safe since these are interface methods only (not used internally).\n */\nexport const wrapFile = (native: RandomAccessStorage, type: StorageType): File => {\n const file = pifyFields(native, type, ['write', 'read', 'del', 'stat', 'close', 'destroy', 'truncate']);\n return Object.assign(file, { type, native });\n};\n", "//\n// Copyright 2021 DXOS.org\n//\n\nimport ram from 'random-access-memory';\nimport { type Callback, type RandomAccessStorage } from 'random-access-storage';\n\nimport { arrayToBuffer } from '@dxos/util';\n\nimport { AbstractStorage } from './abstract-storage';\nimport { type DiskInfo, StorageType } from './storage';\n\n/**\n * Storage interface implementation for RAM.\n * https://github.com/random-access-storage/random-access-memory\n */\nexport class MemoryStorage extends AbstractStorage {\n public override type: StorageType = StorageType.RAM;\n\n protected override _createFile(path: string, filename: string): RandomAccessStorage {\n return this._patchFile(ram());\n }\n\n protected override _openFile(file: RandomAccessStorage): RandomAccessStorage {\n const newFile = file.clone!();\n (newFile as any).closed = false;\n return this._patchFile(newFile);\n }\n\n private _patchFile(file: RandomAccessStorage): RandomAccessStorage {\n // Patch required to make consistent across platforms.\n const trueRead = file.read.bind(file);\n\n file.read = (offset: number, size: number, cb: Callback<Buffer>) =>\n trueRead(offset, size, (err: Error | null, data?: Buffer) => {\n if (err) {\n return cb(err);\n } else {\n return cb(err, arrayToBuffer(data!));\n }\n });\n\n return file;\n }\n\n async getDiskInfo(): Promise<DiskInfo> {\n let used = 0;\n\n for (const file of this._files.values()) {\n const size = (file as any).length;\n used += Number.isNaN(size) ? 0 : size;\n }\n\n return {\n used,\n };\n }\n}\n", "//\n// Copyright 2021 DXOS.org\n//\n\nimport { type Directory } from './directory';\n\n// TODO(burdon): Reconcile with ConfigProto.\nexport enum StorageType {\n RAM = 'ram',\n IDB = 'idb',\n /**\n * @deprecated\n */\n CHROME = 'chrome',\n /**\n * @deprecated\n */\n FIREFOX = 'firefox',\n NODE = 'node',\n /**\n * @deprecated\n */\n WEBFS = 'webfs',\n}\n\nexport type DiskInfo = {\n /**\n * Bytes.\n */\n used: number;\n};\n\nexport interface Storage {\n readonly path: string;\n readonly type: StorageType;\n readonly size: number;\n\n getDiskInfo?(): Promise<DiskInfo>;\n\n // TODO(burdon): Make required.\n createDirectory: (path?: string) => Directory;\n reset: () => Promise<void>;\n close: () => Promise<void>;\n}\n\nexport type StorageConstructor = (params?: { type?: StorageType; root?: string }) => Storage;\n", "//\n// Copyright 2021 DXOS.org\n//\n\nimport { existsSync } from 'node:fs';\nimport { readdir, stat } from 'node:fs/promises';\nimport { join } from 'node:path';\n\nimport del from 'del';\nimport raf from 'random-access-file';\nimport { type RandomAccessStorage } from 'random-access-storage';\n\nimport { AbstractStorage, type DiskInfo, type Storage, StorageType, wrapFile } from '../common';\n\n/**\n * Storage interface implementation for Node.\n */\nexport class NodeStorage extends AbstractStorage implements Storage {\n public override type: StorageType = StorageType.NODE;\n private _initialized = false;\n\n private async _loadFiles(path: string): Promise<void> {\n // TODO(mykola): Do not load all files at once. It is a quick fix.\n if (!existsSync(path)) {\n return;\n }\n\n // Preload all files in a directory.\n const dir = await readdir(path);\n for (const entry of dir) {\n const fullPath = join(path, entry);\n if (this._files.has(fullPath)) {\n continue;\n }\n const entryInfo = await stat(fullPath);\n if (entryInfo.isDirectory()) {\n await this._loadFiles(fullPath);\n } else if (entryInfo.isFile()) {\n const file = this._createFile(path, entry);\n this._files.set(fullPath, wrapFile(file, this.type));\n }\n }\n }\n\n protected override _createFile(path: string, filename: string, opts: any = {}): RandomAccessStorage {\n const file = raf(filename, { directory: path, ...opts });\n\n // Empty write to create file on a drive.\n file.write(0, Buffer.from(''));\n\n return file;\n }\n\n protected override async _destroy(): Promise<void> {\n await del(this.path, { force: true });\n }\n\n protected override async _getFiles(path: string) {\n if (!this._initialized) {\n await this._loadFiles(this.path);\n this._initialized = true;\n }\n\n return super._getFiles(path);\n }\n\n async getDiskInfo(): Promise<DiskInfo> {\n let used = 0;\n\n const recurse = async (path: string) => {\n const pathStats = await stat(path);\n\n if (pathStats.isDirectory()) {\n const entries = await readdir(path);\n await Promise.all(entries.map((entry) => recurse(join(path, entry))));\n } else {\n used += pathStats.size;\n }\n };\n\n await recurse(this.path);\n\n return {\n used,\n };\n }\n}\n", "//\n// Copyright 2021 DXOS.org\n//\n\nimport { MemoryStorage, type Storage, type StorageConstructor, StorageType } from '../common';\n\nimport { NodeStorage } from './node-storage';\n\nexport const createStorage: StorageConstructor = ({ type, root = '/tmp/dxos/testing' } = {}): Storage => {\n if (type === undefined) {\n return new NodeStorage(root);\n }\n\n switch (type) {\n case StorageType.RAM: {\n return new MemoryStorage(root);\n }\n\n case StorageType.NODE: {\n return new NodeStorage(root);\n }\n\n default: {\n throw new Error(`Invalid type: ${type}`);\n }\n }\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["join", "inspect", "inspectObject", "log", "join", "stringDiff", "first", "second", "split", "join", "getFullPath", "root", "path", "Directory", "toString", "JSON", "stringify", "type", "path", "createDirectory", "getFullPath", "list", "_list", "getOrCreateFile", "_getOrCreateFile", "remove", "_remove", "filename", "opts", "flush", "_onFlush", "delete", "onFlush", "pify", "log", "MAX_STORAGE_OPERATION_TIME", "pifyFields", "object", "type", "fields", "field", "fn", "bind", "args", "before", "performance", "now", "res", "elapsed", "operation", "wrapFile", "native", "file", "Object", "assign", "inspect", "custom", "AbstractStorage", "inspectObject", "toJSON", "type", "path", "size", "_files", "createDirectory", "sub", "Directory", "getFullPath", "list", "_list", "bind", "getOrCreateFile", "args", "remove", "_remove", "reset", "log", "info", "_closeFilesInPath", "_destroy", "err", "catch", "Array", "from", "_getFiles", "keys", "map", "filename", "name", "replace", "startsWith", "substring", "opts", "fullPath", "join", "native", "file", "_getFileIfExists", "closed", "_openFile", "_createFile", "wrapFile", "set", "undefined", "has", "get", "destroyed", "Map", "entries", "filter", "includes", "Promise", "all", "values", "close", "destroy", "then", "delete", "error", "message", "_define_property", "ram", "arrayToBuffer", "StorageType", "MemoryStorage", "AbstractStorage", "_createFile", "path", "filename", "_patchFile", "ram", "_openFile", "file", "newFile", "clone", "closed", "trueRead", "read", "bind", "offset", "size", "cb", "err", "data", "arrayToBuffer", "getDiskInfo", "used", "_files", "values", "length", "Number", "isNaN", "_define_property", "type", "StorageType", "RAM", "existsSync", "readdir", "stat", "join", "del", "raf", "NodeStorage", "AbstractStorage", "_loadFiles", "path", "existsSync", "dir", "readdir", "entry", "fullPath", "join", "_files", "has", "entryInfo", "stat", "isDirectory", "isFile", "file", "_createFile", "set", "wrapFile", "type", "filename", "opts", "raf", "directory", "write", "Buffer", "from", "_destroy", "del", "force", "_getFiles", "_initialized", "getDiskInfo", "used", "recurse", "pathStats", "entries", "Promise", "all", "map", "size", "_define_property", "StorageType", "NODE", "createStorage", "type", "root", "undefined", "NodeStorage", "StorageType", "RAM", "MemoryStorage", "NODE", "Error"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"
|
|
1
|
+
{"inputs":{"src/common/utils.ts":{"bytes":1282,"imports":[{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"src/common/directory.ts":{"bytes":7173,"imports":[{"path":"src/common/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"src/common/file.ts":{"bytes":6324,"imports":[{"path":"pify","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/common/abstract-storage.ts":{"bytes":15541,"imports":[{"path":"node:path","kind":"import-statement","external":true},{"path":"node:util","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/common/directory.ts","kind":"import-statement","original":"./directory"},{"path":"src/common/file.ts","kind":"import-statement","original":"./file"},{"path":"src/common/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"src/common/storage.ts":{"bytes":2045,"imports":[],"format":"esm"},"src/common/memory-storage.ts":{"bytes":5711,"imports":[{"path":"random-access-memory","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/common/abstract-storage.ts","kind":"import-statement","original":"./abstract-storage"},{"path":"src/common/storage.ts","kind":"import-statement","original":"./storage"}],"format":"esm"},"src/common/index.ts":{"bytes":934,"imports":[{"path":"src/common/abstract-storage.ts","kind":"import-statement","original":"./abstract-storage"},{"path":"src/common/directory.ts","kind":"import-statement","original":"./directory"},{"path":"src/common/file.ts","kind":"import-statement","original":"./file"},{"path":"src/common/memory-storage.ts","kind":"import-statement","original":"./memory-storage"},{"path":"src/common/storage.ts","kind":"import-statement","original":"./storage"},{"path":"src/common/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"src/node/node-storage.ts":{"bytes":8867,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"del","kind":"import-statement","external":true},{"path":"random-access-file","kind":"import-statement","external":true},{"path":"src/common/index.ts","kind":"import-statement","original":"../common"}],"format":"esm"},"src/node/storage.ts":{"bytes":2424,"imports":[{"path":"src/common/index.ts","kind":"import-statement","original":"../common"},{"path":"src/node/node-storage.ts","kind":"import-statement","original":"./node-storage"}],"format":"esm"},"src/node/index.ts":{"bytes":555,"imports":[{"path":"src/common/index.ts","kind":"import-statement","original":"../common"},{"path":"src/node/storage.ts","kind":"import-statement","original":"./storage"}],"format":"esm"},"src/index.ts":{"bytes":456,"imports":[{"path":"src/node/index.ts","kind":"import-statement","original":"./node"}],"format":"esm"}},"outputs":{"dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":24299},"dist/lib/node-esm/index.mjs":{"imports":[{"path":"node:path","kind":"import-statement","external":true},{"path":"node:util","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"pify","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"random-access-memory","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"del","kind":"import-statement","external":true},{"path":"random-access-file","kind":"import-statement","external":true}],"exports":["AbstractStorage","Directory","MemoryStorage","StorageType","createStorage","getFullPath","stringDiff","wrapFile"],"entryPoint":"src/index.ts","inputs":{"src/common/abstract-storage.ts":{"bytesInOutput":3864},"src/common/utils.ts":{"bytesInOutput":170},"src/common/directory.ts":{"bytesInOutput":1635},"src/common/file.ts":{"bytesInOutput":1131},"src/common/index.ts":{"bytesInOutput":0},"src/common/memory-storage.ts":{"bytesInOutput":1168},"src/common/storage.ts":{"bytesInOutput":297},"src/node/index.ts":{"bytesInOutput":0},"src/node/node-storage.ts":{"bytesInOutput":2028},"src/node/storage.ts":{"bytesInOutput":369},"src/index.ts":{"bytesInOutput":0}},"bytes":11212}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/browser/storage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/browser/storage.ts"],"names":[],"mappings":"AAIA,OAAO,EAA+B,KAAK,kBAAkB,EAAe,MAAM,WAAW,CAAC;AAK9F,eAAO,MAAM,aAAa,EAAE,kBAwB3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-fs.d.ts","sourceRoot":"","sources":["../../../../src/browser/web-fs.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"web-fs.d.ts","sourceRoot":"","sources":["../../../../src/browser/web-fs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract-storage.d.ts","sourceRoot":"","sources":["../../../../src/common/abstract-storage.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"abstract-storage.d.ts","sourceRoot":"","sources":["../../../../src/common/abstract-storage.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAKjE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,KAAK,IAAI,EAAY,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAG3D;;;;GAIG;AAEH,8BAAsB,eAAgB,YAAW,OAAO;aAM1B,IAAI,EAAE,MAAM;IALxC,SAAS,CAAC,QAAQ,CAAC,MAAM,oBAA2B;IAEpD,kBAAyB,IAAI,EAAE,WAAW,CAAC;gBAGf,IAAI,EAAE,MAAM;IAExC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM;IAI1B,MAAM,IAAI;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAI7C,IAAW,IAAI,WAEd;IAGM,eAAe,CAAC,GAAG,SAAK,GAAG,SAAS;IAW3C;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;cAYZ,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAWtD,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAsB3E,SAAS,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS;IAI/C;;OAEG;IACH,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,mBAAmB,GAAG,mBAAmB,GAAG,SAAS;IAI/E,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,mBAAmB;IAE/F,OAAO,CAAC,gBAAgB;cASR,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;cAOnD,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;cAKZ,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAUrD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-storage.d.ts","sourceRoot":"","sources":["../../../../src/node/node-storage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node-storage.d.ts","sourceRoot":"","sources":["../../../../src/node/node-storage.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,EAAE,eAAe,EAAE,KAAK,QAAQ,EAAE,KAAK,OAAO,EAAE,WAAW,EAAY,MAAM,WAAW,CAAC;AAEhG;;GAEG;AACH,qBAAa,WAAY,SAAQ,eAAgB,YAAW,OAAO;IACjD,IAAI,EAAE,WAAW,CAAoB;IACrD,OAAO,CAAC,YAAY,CAAS;YAEf,UAAU;cAuBL,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,GAAQ,GAAG,mBAAmB;cAS1E,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;cAIzB,SAAS,CAAC,IAAI,EAAE,MAAM;IASzC,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC;CAoBvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/node/storage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/node/storage.ts"],"names":[],"mappings":"AAIA,OAAO,EAA+B,KAAK,kBAAkB,EAAe,MAAM,WAAW,CAAC;AAI9F,eAAO,MAAM,aAAa,EAAE,kBAkB3B,CAAC"}
|