@dxos/random-access-storage 0.8.4-main.9be5663bfe → 0.8.4-main.abd8ff62ef
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/browser/index.mjs +15 -104
- package/dist/lib/browser/browser/index.mjs.map +2 -2
- package/dist/lib/browser/{chunk-V26DCZ2O.mjs → chunk-V3ALAPAH.mjs} +7 -37
- package/dist/lib/browser/{chunk-V26DCZ2O.mjs.map → chunk-V3ALAPAH.mjs.map} +2 -2
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/node/index.mjs +1 -1
- package/dist/lib/node-esm/browser/index.mjs +15 -104
- package/dist/lib/node-esm/browser/index.mjs.map +2 -2
- package/dist/lib/node-esm/{chunk-3DMY4JGF.mjs → chunk-7W2LPI7I.mjs} +7 -37
- package/dist/lib/node-esm/{chunk-3DMY4JGF.mjs.map → chunk-7W2LPI7I.mjs.map} +2 -2
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/node/index.mjs +1 -1
- package/dist/types/src/browser/idb-storage.d.ts.map +1 -1
- package/dist/types/src/browser/web-fs.d.ts +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/common/directory.d.ts.map +1 -1
- package/dist/types/src/common/file.d.ts.map +1 -1
- package/dist/types/src/common/memory-storage.d.ts.map +1 -1
- package/dist/types/src/common/utils.d.ts.map +1 -1
- package/dist/types/src/node/node-storage.d.ts.map +1 -1
- package/dist/types/src/testing/benchmark.blueprint-test.d.ts.map +1 -1
- package/dist/types/src/testing/storage.blueprint-test.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/index.ts":{"bytes":462,"imports":[{"path":"#storage","kind":"import-statement","external":true}],"format":"esm"},"src/common/utils.ts":{"bytes":1282,"imports":[{"path":"@dxos/node-std/path","kind":"import-statement","external":true}],"format":"esm"},"src/common/directory.ts":{"bytes":6526,"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":15030,"imports":[{"path":"@dxos/node-std/path","kind":"import-statement","external":true},{"path":"@dxos/node-std/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":5299,"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"},"../../../node_modules/.pnpm/random-access-idb@1.2.2_patch_hash=207ec2404ef8b5e9e6d9de8ce83586d215ef77b94a7d0cadced03125874a1d9e/node_modules/random-access-idb/lib/blocks.js":{"bytes":297,"imports":[],"format":"cjs"},"../../../node_modules/.pnpm/random-access-idb@1.2.2_patch_hash=207ec2404ef8b5e9e6d9de8ce83586d215ef77b94a7d0cadced03125874a1d9e/node_modules/random-access-idb/index.js":{"bytes":5428,"imports":[{"path":"random-access-storage","kind":"require-call","external":true},{"path":"inherits","kind":"require-call","external":true},{"path":"next-tick","kind":"require-call","external":true},{"path":"once","kind":"require-call","external":true},{"path":"../../../node_modules/.pnpm/random-access-idb@1.2.2_patch_hash=207ec2404ef8b5e9e6d9de8ce83586d215ef77b94a7d0cadced03125874a1d9e/node_modules/random-access-idb/lib/blocks.js","kind":"require-call","original":"./lib/blocks.js"},{"path":"buffer-from","kind":"require-call","external":true},{"path":"buffer-alloc","kind":"require-call","external":true}],"format":"cjs"},"src/browser/idb-storage.ts":{"bytes":14368,"imports":[{"path":"../../../node_modules/.pnpm/random-access-idb@1.2.2_patch_hash=207ec2404ef8b5e9e6d9de8ce83586d215ef77b94a7d0cadced03125874a1d9e/node_modules/random-access-idb/index.js","kind":"import-statement","original":"random-access-idb"},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"src/common/index.ts","kind":"import-statement","original":"../common"}],"format":"esm"},"src/browser/web-fs.ts":{"bytes":48359,"imports":[{"path":"@dxos/node-std/events","kind":"import-statement","external":true},{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"src/common/index.ts","kind":"import-statement","original":"../common"}],"format":"esm"},"src/browser/storage.ts":{"bytes":3010,"imports":[{"path":"src/common/index.ts","kind":"import-statement","original":"../common"},{"path":"src/browser/idb-storage.ts","kind":"import-statement","original":"./idb-storage"},{"path":"src/browser/web-fs.ts","kind":"import-statement","original":"./web-fs"}],"format":"esm"},"src/browser/index.ts":{"bytes":558,"imports":[{"path":"src/common/index.ts","kind":"import-statement","original":"../common"},{"path":"src/browser/storage.ts","kind":"import-statement","original":"./storage"}],"format":"esm"},"src/node/node-storage.ts":{"bytes":8426,"imports":[{"path":"del","kind":"import-statement","external":true},{"path":"@dxos/node-std/fs","kind":"import-statement","external":true},{"path":"@dxos/node-std/fs/promises","kind":"import-statement","external":true},{"path":"@dxos/node-std/path","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":2420,"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"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":196},"dist/lib/browser/index.mjs":{"imports":[{"path":"#storage","kind":"import-statement","external":true}],"exports":[],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":26}},"bytes":111},"dist/lib/browser/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":42758},"dist/lib/browser/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-V26DCZ2O.mjs","kind":"import-statement"},{"path":"random-access-storage","kind":"require-call","external":true},{"path":"inherits","kind":"require-call","external":true},{"path":"next-tick","kind":"require-call","external":true},{"path":"once","kind":"require-call","external":true},{"path":"buffer-from","kind":"require-call","external":true},{"path":"buffer-alloc","kind":"require-call","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/node-std/events","kind":"import-statement","external":true},{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true}],"exports":["AbstractStorage","Directory","MemoryStorage","StorageType","createStorage","getFullPath","stringDiff","wrapFile"],"entryPoint":"src/browser/index.ts","inputs":{"../../../node_modules/.pnpm/random-access-idb@1.2.2_patch_hash=207ec2404ef8b5e9e6d9de8ce83586d215ef77b94a7d0cadced03125874a1d9e/node_modules/random-access-idb/lib/blocks.js":{"bytesInOutput":592},"../../../node_modules/.pnpm/random-access-idb@1.2.2_patch_hash=207ec2404ef8b5e9e6d9de8ce83586d215ef77b94a7d0cadced03125874a1d9e/node_modules/random-access-idb/index.js":{"bytesInOutput":6367},"src/browser/index.ts":{"bytesInOutput":0},"src/browser/idb-storage.ts":{"bytesInOutput":3058},"src/browser/web-fs.ts":{"bytesInOutput":12658},"src/browser/storage.ts":{"bytesInOutput":474}},"bytes":23966},"dist/lib/browser/node/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5501},"dist/lib/browser/node/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-V26DCZ2O.mjs","kind":"import-statement"},{"path":"del","kind":"import-statement","external":true},{"path":"@dxos/node-std/fs","kind":"import-statement","external":true},{"path":"@dxos/node-std/fs/promises","kind":"import-statement","external":true},{"path":"@dxos/node-std/path","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/node/index.ts","inputs":{"src/node/index.ts":{"bytesInOutput":0},"src/node/node-storage.ts":{"bytesInOutput":1701},"src/node/storage.ts":{"bytesInOutput":369}},"bytes":2469},"dist/lib/browser/chunk-V26DCZ2O.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":18494},"dist/lib/browser/chunk-V26DCZ2O.mjs":{"imports":[{"path":"@dxos/node-std/path","kind":"import-statement","external":true},{"path":"pify","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/node-std/path","kind":"import-statement","external":true},{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"@dxos/debug","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}],"exports":["AbstractStorage","Directory","MemoryStorage","StorageType","__commonJS","__require","__toESM","getFullPath","stringDiff","wrapFile"],"inputs":{"src/common/utils.ts":{"bytesInOutput":180},"src/common/directory.ts":{"bytesInOutput":1256},"src/common/file.ts":{"bytesInOutput":1131},"src/common/abstract-storage.ts":{"bytesInOutput":3505},"src/common/storage.ts":{"bytesInOutput":297},"src/common/memory-storage.ts":{"bytesInOutput":846}},"bytes":9302}}}
|
|
1
|
+
{"inputs":{"src/index.ts":{"bytes":370,"imports":[{"path":"#storage","kind":"import-statement","external":true}],"format":"esm"},"src/common/utils.ts":{"bytes":1187,"imports":[{"path":"@dxos/node-std/path","kind":"import-statement","external":true}],"format":"esm"},"src/common/directory.ts":{"bytes":6427,"imports":[{"path":"src/common/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"src/common/file.ts":{"bytes":6193,"imports":[{"path":"pify","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/common/abstract-storage.ts":{"bytes":14542,"imports":[{"path":"@dxos/node-std/path","kind":"import-statement","external":true},{"path":"@dxos/node-std/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":1948,"imports":[],"format":"esm"},"src/common/memory-storage.ts":{"bytes":5195,"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":839,"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"},"../../../node_modules/.pnpm/random-access-idb@1.2.2_patch_hash=207ec2404ef8b5e9e6d9de8ce83586d215ef77b94a7d0cadced03125874a1d9e/node_modules/random-access-idb/lib/blocks.js":{"bytes":297,"imports":[],"format":"cjs"},"../../../node_modules/.pnpm/random-access-idb@1.2.2_patch_hash=207ec2404ef8b5e9e6d9de8ce83586d215ef77b94a7d0cadced03125874a1d9e/node_modules/random-access-idb/index.js":{"bytes":5428,"imports":[{"path":"random-access-storage","kind":"require-call","external":true},{"path":"inherits","kind":"require-call","external":true},{"path":"next-tick","kind":"require-call","external":true},{"path":"once","kind":"require-call","external":true},{"path":"../../../node_modules/.pnpm/random-access-idb@1.2.2_patch_hash=207ec2404ef8b5e9e6d9de8ce83586d215ef77b94a7d0cadced03125874a1d9e/node_modules/random-access-idb/lib/blocks.js","kind":"require-call","original":"./lib/blocks.js"},{"path":"buffer-from","kind":"require-call","external":true},{"path":"buffer-alloc","kind":"require-call","external":true}],"format":"cjs"},"src/browser/idb-storage.ts":{"bytes":14264,"imports":[{"path":"../../../node_modules/.pnpm/random-access-idb@1.2.2_patch_hash=207ec2404ef8b5e9e6d9de8ce83586d215ef77b94a7d0cadced03125874a1d9e/node_modules/random-access-idb/index.js","kind":"import-statement","original":"random-access-idb"},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"src/common/index.ts","kind":"import-statement","original":"../common"}],"format":"esm"},"src/browser/web-fs.ts":{"bytes":46949,"imports":[{"path":"@dxos/node-std/events","kind":"import-statement","external":true},{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"src/common/index.ts","kind":"import-statement","original":"../common"}],"format":"esm"},"src/browser/storage.ts":{"bytes":2912,"imports":[{"path":"src/common/index.ts","kind":"import-statement","original":"../common"},{"path":"src/browser/idb-storage.ts","kind":"import-statement","original":"./idb-storage"},{"path":"src/browser/web-fs.ts","kind":"import-statement","original":"./web-fs"}],"format":"esm"},"src/browser/index.ts":{"bytes":458,"imports":[{"path":"src/common/index.ts","kind":"import-statement","original":"../common"},{"path":"src/browser/storage.ts","kind":"import-statement","original":"./storage"}],"format":"esm"},"src/node/node-storage.ts":{"bytes":8326,"imports":[{"path":"del","kind":"import-statement","external":true},{"path":"@dxos/node-std/fs","kind":"import-statement","external":true},{"path":"@dxos/node-std/fs/promises","kind":"import-statement","external":true},{"path":"@dxos/node-std/path","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":2325,"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":458,"imports":[{"path":"src/common/index.ts","kind":"import-statement","original":"../common"},{"path":"src/node/storage.ts","kind":"import-statement","original":"./storage"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":196},"dist/lib/browser/index.mjs":{"imports":[{"path":"#storage","kind":"import-statement","external":true}],"exports":[],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":26}},"bytes":111},"dist/lib/browser/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":41723},"dist/lib/browser/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-V3ALAPAH.mjs","kind":"import-statement"},{"path":"random-access-storage","kind":"require-call","external":true},{"path":"inherits","kind":"require-call","external":true},{"path":"next-tick","kind":"require-call","external":true},{"path":"once","kind":"require-call","external":true},{"path":"buffer-from","kind":"require-call","external":true},{"path":"buffer-alloc","kind":"require-call","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/node-std/events","kind":"import-statement","external":true},{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true}],"exports":["AbstractStorage","Directory","MemoryStorage","StorageType","createStorage","getFullPath","stringDiff","wrapFile"],"entryPoint":"src/browser/index.ts","inputs":{"../../../node_modules/.pnpm/random-access-idb@1.2.2_patch_hash=207ec2404ef8b5e9e6d9de8ce83586d215ef77b94a7d0cadced03125874a1d9e/node_modules/random-access-idb/lib/blocks.js":{"bytesInOutput":592},"../../../node_modules/.pnpm/random-access-idb@1.2.2_patch_hash=207ec2404ef8b5e9e6d9de8ce83586d215ef77b94a7d0cadced03125874a1d9e/node_modules/random-access-idb/index.js":{"bytesInOutput":6367},"src/browser/index.ts":{"bytesInOutput":0},"src/browser/idb-storage.ts":{"bytesInOutput":3030},"src/browser/web-fs.ts":{"bytesInOutput":12212},"src/browser/storage.ts":{"bytesInOutput":474}},"bytes":23492},"dist/lib/browser/node/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5501},"dist/lib/browser/node/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-V3ALAPAH.mjs","kind":"import-statement"},{"path":"del","kind":"import-statement","external":true},{"path":"@dxos/node-std/fs","kind":"import-statement","external":true},{"path":"@dxos/node-std/fs/promises","kind":"import-statement","external":true},{"path":"@dxos/node-std/path","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/node/index.ts","inputs":{"src/node/index.ts":{"bytesInOutput":0},"src/node/node-storage.ts":{"bytesInOutput":1701},"src/node/storage.ts":{"bytesInOutput":369}},"bytes":2469},"dist/lib/browser/chunk-V3ALAPAH.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":18038},"dist/lib/browser/chunk-V3ALAPAH.mjs":{"imports":[{"path":"@dxos/node-std/path","kind":"import-statement","external":true},{"path":"pify","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/node-std/path","kind":"import-statement","external":true},{"path":"@dxos/node-std/util","kind":"import-statement","external":true},{"path":"@dxos/debug","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}],"exports":["AbstractStorage","Directory","MemoryStorage","StorageType","__commonJS","__require","__toESM","getFullPath","stringDiff","wrapFile"],"inputs":{"src/common/utils.ts":{"bytesInOutput":180},"src/common/directory.ts":{"bytesInOutput":1256},"src/common/file.ts":{"bytesInOutput":1075},"src/common/abstract-storage.ts":{"bytesInOutput":3335},"src/common/storage.ts":{"bytesInOutput":297},"src/common/memory-storage.ts":{"bytesInOutput":846}},"bytes":9076}}}
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
getFullPath,
|
|
11
11
|
stringDiff,
|
|
12
12
|
wrapFile
|
|
13
|
-
} from "../chunk-
|
|
13
|
+
} from "../chunk-7W2LPI7I.mjs";
|
|
14
14
|
|
|
15
15
|
// ../../../node_modules/.pnpm/random-access-idb@1.2.2_patch_hash=207ec2404ef8b5e9e6d9de8ce83586d215ef77b94a7d0cadced03125874a1d9e/node_modules/random-access-idb/lib/blocks.js
|
|
16
16
|
var require_blocks = __commonJS({
|
|
@@ -261,15 +261,7 @@ var IDbStorage = class extends AbstractStorage {
|
|
|
261
261
|
}
|
|
262
262
|
async _loadFiles(path) {
|
|
263
263
|
const db = await this._db;
|
|
264
|
-
invariant(db, "Database is not initialized.", {
|
|
265
|
-
F: __dxlog_file,
|
|
266
|
-
L: 85,
|
|
267
|
-
S: this,
|
|
268
|
-
A: [
|
|
269
|
-
"db",
|
|
270
|
-
"'Database is not initialized.'"
|
|
271
|
-
]
|
|
272
|
-
});
|
|
264
|
+
invariant(db, "Database is not initialized.", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 69, S: this, A: ["db", "'Database is not initialized.'"] });
|
|
273
265
|
const lowerBound = path;
|
|
274
266
|
const upperBound = `${path}\uFFFF`;
|
|
275
267
|
const range = IDBKeyRange.bound(lowerBound, upperBound);
|
|
@@ -311,13 +303,13 @@ import { synchronized } from "@dxos/async";
|
|
|
311
303
|
import { invariant as invariant2 } from "@dxos/invariant";
|
|
312
304
|
import { log } from "@dxos/log";
|
|
313
305
|
import { TimeSeriesCounter, trace } from "@dxos/tracing";
|
|
306
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/common/random-access-storage/src/browser/web-fs.ts";
|
|
314
307
|
function _ts_decorate(decorators, target, key, desc) {
|
|
315
308
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
316
309
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
317
310
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
318
311
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
319
312
|
}
|
|
320
|
-
var __dxlog_file2 = "/__w/dxos/dxos/packages/common/random-access-storage/src/browser/web-fs.ts";
|
|
321
313
|
var WebFS = class {
|
|
322
314
|
path;
|
|
323
315
|
_files = /* @__PURE__ */ new Map();
|
|
@@ -353,15 +345,7 @@ var WebFS = class {
|
|
|
353
345
|
return this._root;
|
|
354
346
|
}
|
|
355
347
|
this._root = await navigator.storage.getDirectory();
|
|
356
|
-
invariant2(this._root, "Root is undefined", {
|
|
357
|
-
F: __dxlog_file2,
|
|
358
|
-
L: 73,
|
|
359
|
-
S: this,
|
|
360
|
-
A: [
|
|
361
|
-
"this._root",
|
|
362
|
-
"'Root is undefined'"
|
|
363
|
-
]
|
|
364
|
-
});
|
|
348
|
+
invariant2(this._root, "Root is undefined", { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 65, S: this, A: ["this._root", "'Root is undefined'"] });
|
|
365
349
|
return this._root;
|
|
366
350
|
}
|
|
367
351
|
createDirectory(sub = "") {
|
|
@@ -401,12 +385,7 @@ var WebFS = class {
|
|
|
401
385
|
}
|
|
402
386
|
async _delete(path) {
|
|
403
387
|
await Promise.all(Array.from(this._getFiles(path)).map(async ([path2, file]) => {
|
|
404
|
-
await file.destroy().catch((err) => log.warn(err, void 0, {
|
|
405
|
-
F: __dxlog_file2,
|
|
406
|
-
L: 116,
|
|
407
|
-
S: this,
|
|
408
|
-
C: (f, a) => f(...a)
|
|
409
|
-
}));
|
|
388
|
+
await file.destroy().catch((err) => log.warn(err, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 105, S: this }));
|
|
410
389
|
this._files.delete(path2);
|
|
411
390
|
}));
|
|
412
391
|
}
|
|
@@ -418,12 +397,7 @@ var WebFS = class {
|
|
|
418
397
|
}).catch((err) => log.warn("failed to remove an entry", {
|
|
419
398
|
filename,
|
|
420
399
|
err
|
|
421
|
-
}, {
|
|
422
|
-
F: __dxlog_file2,
|
|
423
|
-
L: 126,
|
|
424
|
-
S: this,
|
|
425
|
-
C: (f, a) => f(...a)
|
|
426
|
-
}));
|
|
400
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 114, S: this }));
|
|
427
401
|
this._files.delete(filename);
|
|
428
402
|
}
|
|
429
403
|
this._root = void 0;
|
|
@@ -433,12 +407,7 @@ var WebFS = class {
|
|
|
433
407
|
return file.close().catch((e) => log.warn("failed to close a file", {
|
|
434
408
|
file: file.fileName,
|
|
435
409
|
e
|
|
436
|
-
}, {
|
|
437
|
-
F: __dxlog_file2,
|
|
438
|
-
L: 136,
|
|
439
|
-
S: this,
|
|
440
|
-
C: (f, a) => f(...a)
|
|
441
|
-
}));
|
|
410
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 124, S: this }));
|
|
442
411
|
}));
|
|
443
412
|
}
|
|
444
413
|
_getFullFilename(path, filename) {
|
|
@@ -553,15 +522,7 @@ var WebFile = class extends EventEmitter {
|
|
|
553
522
|
this._flushSequence = sequence + 1;
|
|
554
523
|
this._flushes.inc();
|
|
555
524
|
await this._loadBufferGuarded();
|
|
556
|
-
invariant2(this._buffer, void 0, {
|
|
557
|
-
F: __dxlog_file2,
|
|
558
|
-
L: 300,
|
|
559
|
-
S: this,
|
|
560
|
-
A: [
|
|
561
|
-
"this._buffer",
|
|
562
|
-
""
|
|
563
|
-
]
|
|
564
|
-
});
|
|
525
|
+
invariant2(this._buffer, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 243, S: this, A: ["this._buffer", ""] });
|
|
565
526
|
const fileHandle = await this._fileHandle;
|
|
566
527
|
const writable = await fileHandle.createWritable({
|
|
567
528
|
keepExistingData: true
|
|
@@ -581,23 +542,13 @@ var WebFile = class extends EventEmitter {
|
|
|
581
542
|
setTimeout(async () => {
|
|
582
543
|
await this._flushPromise;
|
|
583
544
|
this._flushScheduled = false;
|
|
584
|
-
this._flushPromise = this._flushCache(sequence).catch((err) => log.warn(err, void 0, {
|
|
585
|
-
F: __dxlog_file2,
|
|
586
|
-
L: 318,
|
|
587
|
-
S: this,
|
|
588
|
-
C: (f, a) => f(...a)
|
|
589
|
-
}));
|
|
545
|
+
this._flushPromise = this._flushCache(sequence).catch((err) => log.warn(err, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 264, S: this }));
|
|
590
546
|
});
|
|
591
547
|
this._flushScheduled = true;
|
|
592
548
|
}
|
|
593
549
|
async _flushNow() {
|
|
594
550
|
await this._flushPromise;
|
|
595
|
-
this._flushPromise = this._flushCache(this._flushSequence).catch((err) => log.warn(err, void 0, {
|
|
596
|
-
F: __dxlog_file2,
|
|
597
|
-
L: 326,
|
|
598
|
-
S: this,
|
|
599
|
-
C: (f, a) => f(...a)
|
|
600
|
-
}));
|
|
551
|
+
this._flushPromise = this._flushCache(this._flushSequence).catch((err) => log.warn(err, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 270, S: this }));
|
|
601
552
|
await this._flushPromise;
|
|
602
553
|
}
|
|
603
554
|
async read(offset, size) {
|
|
@@ -607,15 +558,7 @@ var WebFile = class extends EventEmitter {
|
|
|
607
558
|
this._readBytes.inc(size);
|
|
608
559
|
if (!this._buffer) {
|
|
609
560
|
await this._loadBufferGuarded();
|
|
610
|
-
invariant2(this._buffer, void 0, {
|
|
611
|
-
F: __dxlog_file2,
|
|
612
|
-
L: 339,
|
|
613
|
-
S: this,
|
|
614
|
-
A: [
|
|
615
|
-
"this._buffer",
|
|
616
|
-
""
|
|
617
|
-
]
|
|
618
|
-
});
|
|
561
|
+
invariant2(this._buffer, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 280, S: this, A: ["this._buffer", ""] });
|
|
619
562
|
}
|
|
620
563
|
if (offset + size > this._buffer.length) {
|
|
621
564
|
throw new Error("Read out of bounds");
|
|
@@ -629,15 +572,7 @@ var WebFile = class extends EventEmitter {
|
|
|
629
572
|
this._writeBytes.inc(data.length);
|
|
630
573
|
if (!this._buffer) {
|
|
631
574
|
await this._loadBufferGuarded();
|
|
632
|
-
invariant2(this._buffer, void 0, {
|
|
633
|
-
F: __dxlog_file2,
|
|
634
|
-
L: 359,
|
|
635
|
-
S: this,
|
|
636
|
-
A: [
|
|
637
|
-
"this._buffer",
|
|
638
|
-
""
|
|
639
|
-
]
|
|
640
|
-
});
|
|
575
|
+
invariant2(this._buffer, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 295, S: this, A: ["this._buffer", ""] });
|
|
641
576
|
}
|
|
642
577
|
if (offset + data.length <= this._buffer.length) {
|
|
643
578
|
this._buffer.set(data, offset);
|
|
@@ -657,15 +592,7 @@ var WebFile = class extends EventEmitter {
|
|
|
657
592
|
}
|
|
658
593
|
if (!this._buffer) {
|
|
659
594
|
await this._loadBufferGuarded();
|
|
660
|
-
invariant2(this._buffer, void 0, {
|
|
661
|
-
F: __dxlog_file2,
|
|
662
|
-
L: 386,
|
|
663
|
-
S: this,
|
|
664
|
-
A: [
|
|
665
|
-
"this._buffer",
|
|
666
|
-
""
|
|
667
|
-
]
|
|
668
|
-
});
|
|
595
|
+
invariant2(this._buffer, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 316, S: this, A: ["this._buffer", ""] });
|
|
669
596
|
}
|
|
670
597
|
let leftoverSize = 0;
|
|
671
598
|
if (offset + size < this._buffer.length) {
|
|
@@ -680,15 +607,7 @@ var WebFile = class extends EventEmitter {
|
|
|
680
607
|
this._operations.inc();
|
|
681
608
|
if (!this._buffer) {
|
|
682
609
|
await this._loadBufferGuarded();
|
|
683
|
-
invariant2(this._buffer, void 0, {
|
|
684
|
-
F: __dxlog_file2,
|
|
685
|
-
L: 408,
|
|
686
|
-
S: this,
|
|
687
|
-
A: [
|
|
688
|
-
"this._buffer",
|
|
689
|
-
""
|
|
690
|
-
]
|
|
691
|
-
});
|
|
610
|
+
invariant2(this._buffer, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 332, S: this, A: ["this._buffer", ""] });
|
|
692
611
|
}
|
|
693
612
|
return {
|
|
694
613
|
size: this._buffer.length
|
|
@@ -699,15 +618,7 @@ var WebFile = class extends EventEmitter {
|
|
|
699
618
|
this._operations.inc();
|
|
700
619
|
if (!this._buffer) {
|
|
701
620
|
await this._loadBufferGuarded();
|
|
702
|
-
invariant2(this._buffer, void 0, {
|
|
703
|
-
F: __dxlog_file2,
|
|
704
|
-
L: 423,
|
|
705
|
-
S: this,
|
|
706
|
-
A: [
|
|
707
|
-
"this._buffer",
|
|
708
|
-
""
|
|
709
|
-
]
|
|
710
|
-
});
|
|
621
|
+
invariant2(this._buffer, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 343, S: this, A: ["this._buffer", ""] });
|
|
711
622
|
}
|
|
712
623
|
this._buffer = this._buffer.slice(0, offset);
|
|
713
624
|
this._flushLater();
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../node_modules/.pnpm/random-access-idb@1.2.2_patch_hash=207ec2404ef8b5e9e6d9de8ce83586d215ef77b94a7d0cadced03125874a1d9e/node_modules/random-access-idb/lib/blocks.js", "../../../../../../../node_modules/.pnpm/random-access-idb@1.2.2_patch_hash=207ec2404ef8b5e9e6d9de8ce83586d215ef77b94a7d0cadced03125874a1d9e/node_modules/random-access-idb/index.js", "../../../../src/browser/idb-storage.ts", "../../../../src/browser/web-fs.ts", "../../../../src/browser/storage.ts"],
|
|
4
4
|
"sourcesContent": ["module.exports = function (size, start, end) {\n var result = []\n for (var n = Math.floor(start/size)*size; n < end; n += size) {\n result.push({\n block: Math.floor(n/size),\n start: Math.max(n,start) % size,\n end: Math.min(n+size,end) % size || size\n })\n }\n return result\n}\n", "var RandomAccess = require('random-access-storage')\nvar inherits = require('inherits')\nvar nextTick = require('next-tick')\nvar once = require('once')\nvar blocks = require('./lib/blocks.js')\nvar bufferFrom = require('buffer-from')\nvar bufferAlloc = require('buffer-alloc')\n\nvar DELIM = '\\0'\nvar win = typeof window !== 'undefined' ? window\n : (typeof self !== 'undefined' ? self : {})\n\nmodule.exports = function (dbname, xopts) {\n if (!xopts) xopts = {}\n var idb = xopts.idb || (typeof win !== 'undefined'\n ? win.indexedDB || win.mozIndexedDB\n || win.webkitIndexedDB || win.msIndexedDB\n : null)\n if (!idb) throw new Error('indexedDB not present and not given')\n var db = null, dbqueue = []\n if (typeof idb.open === 'function') {\n var req = idb.open(dbname)\n req.addEventListener('upgradeneeded', function () {\n db = req.result\n db.createObjectStore('data')\n })\n req.addEventListener('success', function () {\n db = req.result\n dbqueue.forEach(function (cb) { cb(db) })\n dbqueue = null\n })\n } else {\n db = idb\n }\n function getdb (cb) {\n if (db) nextTick(function () { cb(db) })\n else dbqueue.push(cb)\n }\n return {\n create: function (name, opts) {\n if (typeof name === 'object') {\n opts = name\n name = opts.name\n }\n\n if (!opts) opts = {}\n opts.name = name\n\n return new Store(Object.assign({ db: getdb }, xopts, opts))\n },\n getdb\n }\n}\n\nfunction Store (opts) {\n if (!(this instanceof Store)) return new Store(opts)\n RandomAccess.call(this)\n if (!opts) opts = {}\n if (typeof opts === 'string') opts = { name: opts }\n this.size = opts.size || 4096\n this.name = opts.name\n this.length = opts.length || 0\n this._getdb = opts.db\n}\ninherits(Store, RandomAccess)\n\nStore.prototype._blocks = function (i, j) {\n return blocks(this.size, i, j)\n}\n\nStore.prototype._read = function (req) {\n var self = this\n var buffers = []\n self._store('readonly', function (err, store) {\n if ((self.length || 0) < req.offset+req.size) {\n return req.callback(new Error('Could not satisfy length'))\n }\n if (err) return req.callback(err)\n var offsets = self._blocks(req.offset, req.offset+req.size)\n var pending = offsets.length + 1\n var firstBlock = offsets.length > 0 ? offsets[0].block : 0\n var j = 0\n for (var i = 0; i < offsets.length; i++) (function (o) {\n var key = self.name + DELIM + o.block\n backify(store.get(key), function (err, ev) {\n if (err) return req.callback(err)\n buffers[o.block-firstBlock] = ev.target.result\n ? bufferFrom(ev.target.result.subarray(o.start,o.end))\n : bufferAlloc(o.end-o.start)\n if (--pending === 0) req.callback(null, Buffer.concat(buffers))\n })\n })(offsets[i])\n if (--pending === 0) req.callback(null, Buffer.concat(buffers))\n })\n}\n\nStore.prototype._write = function (req) {\n var self = this\n self._store('readwrite', function (err, store) {\n if (err) return req.callback(err)\n var offsets = self._blocks(req.offset, req.offset + req.data.length)\n var pending = 1\n var buffers = {}\n for (var i = 0; i < offsets.length; i++) (function (o,i) {\n if (o.end-o.start === self.size) return\n pending++\n var key = self.name + DELIM + o.block\n backify(store.get(key), function (err, ev) {\n if (err) return req.callback(err)\n buffers[i] = bufferFrom(ev.target.result || bufferAlloc(self.size))\n if (--pending === 0) write(store, offsets, buffers)\n })\n })(offsets[i],i)\n if (--pending === 0) write(store, offsets, buffers)\n })\n function write (store, offsets, buffers) {\n var block\n for (var i = 0, j = 0; i < offsets.length; i++) {\n var o = offsets[i]\n var len = o.end - o.start\n if (len === self.size) {\n block = bufferFrom(req.data.slice(j, j+len))\n } else {\n block = buffers[i]\n req.data.copy(block, o.start, j, j+len)\n }\n store.put(block,self.name + DELIM + o.block)\n j += len\n }\n var length = Math.max(self.length || 0, req.offset + req.data.length)\n store.put(length, self.name + DELIM + 'length')\n store.transaction.addEventListener('complete', function () {\n self.length = length\n req.callback(null)\n })\n store.transaction.addEventListener('error', function (err) {\n req.callback(err)\n })\n }\n}\n\nStore.prototype._store = function (mode, cb) {\n cb = once(cb)\n var self = this\n self._getdb(function (db) {\n var tx = db.transaction(['data'], mode)\n var store = tx.objectStore('data')\n tx.addEventListener('error', cb)\n cb(null, store)\n })\n}\n\nStore.prototype._open = function (req) {\n var self = this\n this._getdb(function(db) {\n self._store('readonly', function (err, store) {\n backify(store.get(self.name + DELIM + \"length\"), function(err, ev) {\n self.length = ev.target.result || 0\n req.callback(null)\n })\n })\n })\n}\n\nStore.prototype._close = function (req) {\n this._getdb(function (db) {\n // db.close() // TODO: reopen gracefully. Close breaks with corestore, as innercorestore closes the db\n req.callback()\n })\n}\n\nStore.prototype._stat = function (req) {\n var self = this\n nextTick(function () {\n req.callback(null, { size: self.length })\n })\n}\n\nfunction backify (r, cb) {\n r.addEventListener('success', function (ev) { cb(null, ev) })\n r.addEventListener('error', cb)\n}\n", "//\n// Copyright 2021 DXOS.org\n//\n\nimport idb from 'random-access-idb';\nimport { type RandomAccessStorage } from 'random-access-storage';\n\nimport { invariant } from '@dxos/invariant';\n\nimport { AbstractStorage, StorageType, getFullPath, wrapFile } from '../common';\n\nconst DELIM = '\\0';\n/**\n * Storage interface implementation for index DB.\n * https://github.com/random-access-storage/random-access-idb\n */\nexport class IDbStorage extends AbstractStorage {\n public override type: StorageType = StorageType.IDB;\n private _db!: Promise<IDBDatabase>;\n private readonly _store = 'data';\n private _initialized = false;\n protected readonly _fileStorage: (filename: string, opts?: {}) => RandomAccessStorage;\n\n constructor(path: string) {\n super(path);\n this._fileStorage = this._createFileStorage(path);\n }\n\n protected _createFileStorage(path: string): (filename: string, opts?: {}) => RandomAccessStorage {\n // Note: We use patched version of random-access-idb here that exposes the getdb method.\n const database = idb(path);\n let res: (db: IDBDatabase) => void;\n this._db = new Promise((resolve) => {\n res = resolve;\n });\n\n database.getdb(res!);\n return database.create;\n }\n\n override async close(): Promise<void> {\n await this._closeFilesInPath('');\n // TODO(dmaretskyi): Set a flag to make the current instance unusable.\n }\n\n override async reset(): Promise<void> {\n // We don't delete the database, just erase the data.\n // Deleting that database causes IDB errors which I have no idea how to fix.\n await this._closeFilesInPath('');\n await this._remove('');\n // TODO(dmaretskyi): Set a flag to make the current instance unusable.\n }\n\n protected override async _destroy(): Promise<void> {\n throw new Error('Unreachable');\n }\n\n protected override _createFile(path: string, filename: string): RandomAccessStorage {\n const file = this._fileStorage(getFullPath(path, filename));\n file.destroy = (cb: (err: Error | null) => void) => {\n void this._db.then((db) => {\n const lowerBound = getFullPath(path, filename);\n const upperBound = `${lowerBound}\\uffff`;\n const range = IDBKeyRange.bound(lowerBound, upperBound);\n\n const transaction = db.transaction(this._store, 'readwrite');\n const objectStore = transaction.objectStore(this._store);\n objectStore.delete(range);\n transaction.oncomplete = () => {\n (file as any).destroyed = true;\n (file as any).unlinked = true;\n (file as any).closed = true;\n cb(null);\n };\n transaction.onerror = () => cb(transaction.error);\n });\n };\n (file as any).deletable = true;\n\n return file;\n }\n\n async _loadFiles(path: string): Promise<void> {\n const db = await this._db;\n invariant(db, 'Database is not initialized.');\n const lowerBound = path;\n const upperBound = `${path}\\uffff`;\n const range = IDBKeyRange.bound(lowerBound, upperBound);\n\n const transaction = db.transaction(this._store);\n const objectStore = transaction.objectStore(this._store);\n const request = objectStore.openCursor(range);\n\n return new Promise((resolve, reject) => {\n transaction.onerror = () => {\n reject(request.error!);\n };\n\n request.onsuccess = (event) => {\n const cursor = (event.target as IDBRequest).result as IDBCursorWithValue;\n if (cursor) {\n // NOTE: The key contains some metadata at the end added by random-access-idb, so we need to split it.\n const filename = String(cursor.key).split(DELIM)[0];\n if (filename && !this._files.has(getFullPath(this.path, filename))) {\n const file = this._createFile(path, filename);\n this._files.set(getFullPath(this.path, filename), wrapFile(file, this.type));\n }\n cursor.continue();\n } else {\n resolve();\n }\n };\n });\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", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { EventEmitter } from 'node:events';\nimport { callbackify } from 'node:util';\nimport { type RandomAccessStorage } from 'random-access-storage';\n\nimport { synchronized } from '@dxos/async';\nimport { invariant } from '@dxos/invariant';\nimport { log } from '@dxos/log';\nimport { TimeSeriesCounter, trace } from '@dxos/tracing';\n\nimport { Directory, type DiskInfo, type File, type Storage, StorageType, getFullPath } from '../common';\n\n/**\n * Web file systems.\n */\nexport class WebFS implements Storage {\n private readonly _files = new Map<string, WebFile>();\n\n readonly type = StorageType.WEBFS;\n\n protected _root?: FileSystemDirectoryHandle;\n\n constructor(public readonly path: string) {}\n\n public get size() {\n return this._files.size;\n }\n\n private _getFiles(path: string): Map<string, WebFile> {\n const fullName = this._getFullFilename(this.path, path);\n return new Map(\n [...this._files.entries()].filter(([path, file]) => {\n return path.includes(fullName) && !file.destroyed;\n }),\n );\n }\n\n private async _list(path: string): Promise<string[]> {\n const fullName = this._getFullFilename(path);\n\n const root = await this._initialize();\n\n // TODO(dmaretskyi): While we're storing all files in flat namespace we just iterate the root.\n // console.log({ path, fullName })\n // let dir: FileSystemDirectoryHandle;\n // if (path === '') {\n // dir = root;\n // } else {\n // dir = await root.getDirectoryHandle(fullName, { create: true });\n // }\n const entries: string[] = [];\n\n for await (const entry of (root as any).keys()) {\n // Filter out .crswap files.\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1228068\n // https://github.com/logseq/logseq/issues/4466#:~:text=Jun%2015%2C%202023-,.,is%20used%20to%20edit%20files.\n if (entry.startsWith(fullName + '_') && !entry.endsWith('.crswap')) {\n entries.push(entry.slice(fullName.length + 1));\n }\n }\n return entries;\n }\n\n @synchronized\n private async _initialize(): Promise<FileSystemDirectoryHandle> {\n if (this._root) {\n return this._root;\n }\n this._root = await navigator.storage.getDirectory();\n invariant(this._root, 'Root is undefined');\n return this._root;\n }\n\n createDirectory(sub = ''): Directory {\n return new Directory({\n type: this.type,\n path: getFullPath(this.path, sub),\n list: (path) => this._list(path),\n getOrCreateFile: (...args) => this.getOrCreateFile(...args),\n remove: () => this._delete(sub),\n onFlush: async () => {\n await Promise.all(Array.from(this._getFiles(sub)).map(([_, file]) => file.flush()));\n },\n });\n }\n\n getOrCreateFile(path: string, filename: string, opts?: any): File {\n const fullName = this._getFullFilename(path, filename);\n const existingFile = this._files.get(fullName);\n if (existingFile) {\n return existingFile;\n }\n const file = this._createFile(fullName);\n this._files.set(fullName, file);\n return file;\n }\n\n private _createFile(fullName: string): WebFile {\n return new WebFile({\n fileName: fullName,\n file: this._initialize().then((root) => root.getFileHandle(fullName, { create: true })),\n destroy: async () => {\n this._files.delete(fullName);\n const root = await this._initialize();\n return root.removeEntry(fullName);\n },\n });\n }\n\n private async _delete(path: string): Promise<void> {\n await Promise.all(\n Array.from(this._getFiles(path)).map(async ([path, file]) => {\n await file.destroy().catch((err: any) => log.warn(err));\n this._files.delete(path);\n }),\n );\n }\n\n async reset(): Promise<void> {\n await this._initialize();\n for await (const filename of await (this._root as any).keys()) {\n await this._root!.removeEntry(filename, { recursive: true }).catch((err: any) =>\n log.warn('failed to remove an entry', { filename, err }),\n );\n this._files.delete(filename);\n }\n this._root = undefined;\n }\n\n async close(): Promise<void> {\n await Promise.all(\n Array.from(this._files.values()).map((file) => {\n return file.close().catch((e) => log.warn('failed to close a file', { file: file.fileName, e }));\n }),\n );\n }\n\n private _getFullFilename(path: string, filename?: string): string {\n // Replace slashes with underscores. Because we can't have slashes in filenames in Browser File Handle API.\n if (filename) {\n return getFullPath(path, filename).replace(/\\//g, '_');\n } else {\n return path.replace(/\\//g, '_');\n }\n }\n\n async getDiskInfo(): Promise<DiskInfo> {\n let used = 0;\n\n const recurse = async (handle: FileSystemDirectoryHandle) => {\n const promises = [];\n\n for await (const entry of (handle as any).values()) {\n promises.push(\n (async () => {\n switch (entry.kind) {\n case 'file':\n used += await (entry as FileSystemFileHandle).getFile().then((f) => f.size);\n break;\n case 'directory':\n await recurse(entry as FileSystemDirectoryHandle);\n break;\n }\n })(),\n );\n }\n await Promise.all(promises);\n };\n\n await recurse(this._root!);\n\n return {\n used,\n };\n }\n}\n\n// TODO(mykola): Remove EventEmitter.\n// @trace.resource()\nexport class WebFile extends EventEmitter implements File {\n @trace.info()\n readonly fileName: string;\n\n private readonly _fileHandle: Promise<FileSystemFileHandle>;\n private readonly _destroy: () => Promise<void>;\n\n /**\n * Current view of the file contents.\n */\n private _buffer: Uint8Array | null = null;\n\n private _loadBufferPromise: Promise<void> | null = null;\n\n private _flushScheduled = false;\n private _flushPromise: Promise<void> = Promise.resolve();\n /**\n * Used to discard unnecessary scheduled flushes.\n * If _flushNow() is called with a lower sequence number it should early exit.\n */\n private _flushSequence = 0;\n\n //\n // Metrics\n //\n\n @trace.metricsCounter()\n private _flushes = new TimeSeriesCounter();\n\n @trace.metricsCounter()\n private _operations = new TimeSeriesCounter();\n\n @trace.metricsCounter()\n private _reads = new TimeSeriesCounter();\n\n @trace.metricsCounter()\n private _readBytes = new TimeSeriesCounter();\n\n @trace.metricsCounter()\n private _writes = new TimeSeriesCounter();\n\n @trace.metricsCounter()\n private _writeBytes = new TimeSeriesCounter();\n\n @trace.info()\n get _bufferSize() {\n return this._buffer?.length;\n }\n\n constructor({\n fileName,\n file,\n destroy,\n }: {\n file: Promise<FileSystemFileHandle>;\n fileName: string;\n destroy: () => Promise<void>;\n }) {\n super();\n this.fileName = fileName;\n this._fileHandle = file;\n this._destroy = destroy;\n\n void this._loadBufferGuarded();\n }\n\n type: StorageType = StorageType.WEBFS;\n\n //\n // random-access-storage library compatibility\n //\n\n // TODO(dmaretskyi): Are those all needed?\n readonly opened: boolean = true;\n readonly suspended: boolean = false;\n readonly closed: boolean = false;\n readonly unlinked: boolean = false;\n readonly writing: boolean = false;\n readonly readable: boolean = true;\n readonly writable: boolean = true;\n readonly deletable: boolean = true;\n readonly truncatable: boolean = true;\n readonly statable: boolean = true;\n\n destroyed = false;\n directory = '';\n // TODO(dmaretskyi): is this used?\n filename = '';\n native: RandomAccessStorage = {\n write: callbackify(this.write.bind(this)),\n read: callbackify(this.read.bind(this)),\n del: callbackify(this.del.bind(this)),\n stat: callbackify(this.stat.bind(this)),\n destroy: callbackify(this.destroy.bind(this)),\n truncate: callbackify(this.truncate?.bind(this)),\n } as any as RandomAccessStorage;\n\n private async _loadBuffer(): Promise<void> {\n const fileHandle = await this._fileHandle;\n const file = await fileHandle.getFile();\n this._buffer = new Uint8Array(await file.arrayBuffer());\n }\n\n private async _loadBufferGuarded(): Promise<void> {\n await (this._loadBufferPromise ??= this._loadBuffer());\n }\n\n // Do not call directly, use _flushLater or _flushNow.\n private async _flushCache(sequence: number): Promise<void> {\n if (this.destroyed || sequence < this._flushSequence) {\n return;\n }\n this._flushSequence = sequence + 1;\n\n this._flushes.inc();\n\n await this._loadBufferGuarded();\n invariant(this._buffer);\n\n const fileHandle = await this._fileHandle;\n const writable = await fileHandle.createWritable({ keepExistingData: true });\n await writable.write({ type: 'write', data: this._buffer as Uint8Array<ArrayBuffer>, position: 0 });\n await writable.close();\n }\n\n private _flushLater(): void {\n if (this._flushScheduled) {\n return;\n }\n\n const sequence = this._flushSequence;\n setTimeout(async () => {\n // Making sure only one flush can run at a time.\n await this._flushPromise;\n this._flushScheduled = false;\n this._flushPromise = this._flushCache(sequence).catch((err) => log.warn(err));\n });\n\n this._flushScheduled = true;\n }\n\n private async _flushNow(): Promise<void> {\n await this._flushPromise;\n this._flushPromise = this._flushCache(this._flushSequence).catch((err) => log.warn(err));\n await this._flushPromise;\n }\n\n async read(offset: number, size: number): Promise<Buffer> {\n this.assertNotDestroyed('Read');\n\n this._operations.inc();\n this._reads.inc();\n this._readBytes.inc(size);\n\n if (!this._buffer) {\n await this._loadBufferGuarded();\n invariant(this._buffer);\n }\n\n if (offset + size > this._buffer.length) {\n throw new Error('Read out of bounds');\n }\n\n // Copy data into a new buffer.\n return Buffer.from(this._buffer.slice(offset, offset + size));\n }\n\n async write(offset: number, data: Buffer): Promise<void> {\n this.assertNotDestroyed('Write');\n\n this._operations.inc();\n this._writes.inc();\n this._writeBytes.inc(data.length);\n\n if (!this._buffer) {\n await this._loadBufferGuarded();\n invariant(this._buffer);\n }\n\n if (offset + data.length <= this._buffer.length) {\n this._buffer.set(data, offset);\n } else {\n // TODO(dmaretskyi): Optimize re-allocations.\n const newCache = new Uint8Array(offset + data.length);\n newCache.set(this._buffer);\n newCache.set(data, offset);\n this._buffer = newCache;\n }\n\n this._flushLater();\n }\n\n async del(offset: number, size: number): Promise<void> {\n this.assertNotDestroyed('Del');\n\n this._operations.inc();\n\n if (offset < 0 || size <= 0) {\n return;\n }\n\n if (!this._buffer) {\n await this._loadBufferGuarded();\n invariant(this._buffer);\n }\n\n let leftoverSize = 0;\n if (offset + size < this._buffer.length) {\n leftoverSize = this._buffer.length - (offset + size);\n this._buffer.set(this._buffer.slice(offset + size, offset + size + leftoverSize), offset);\n }\n\n this._buffer = this._buffer.slice(0, offset + leftoverSize);\n\n this._flushLater();\n }\n\n async stat(): Promise<{ size: number }> {\n this.assertNotDestroyed('Truncate');\n\n this._operations.inc();\n\n // NOTE: This will load all data from the file just to get it's size. While this is a lot of overhead, this works ok for out use cases.\n if (!this._buffer) {\n await this._loadBufferGuarded();\n invariant(this._buffer);\n }\n\n return {\n size: this._buffer.length,\n };\n }\n\n async truncate(offset: number): Promise<void> {\n this.assertNotDestroyed('Truncate');\n\n this._operations.inc();\n\n if (!this._buffer) {\n await this._loadBufferGuarded();\n invariant(this._buffer);\n }\n\n this._buffer = this._buffer.slice(0, offset);\n\n this._flushLater();\n }\n\n async flush(): Promise<void> {\n this.assertNotDestroyed('Flush');\n\n await this._flushNow();\n }\n\n /**\n * It's best to avoid using this method as it doesn't really close a file.\n * We could update the _opened flag and add a guard like for destroyed, but this would break\n * the FileSystemFileHandle sharing required for browser tests to run, where writes are\n * not immediately visible if using different file handles.\n */\n async close(): Promise<void> {\n await this._flushNow();\n }\n\n @synchronized\n async destroy(): Promise<void> {\n if (!this.destroyed) {\n // We need to flush the buffer before destroying a file so that the call to a storage API\n // finds an entry for deletion\n await this._flushNow();\n this.destroyed = true;\n return await this._destroy();\n }\n }\n\n private assertNotDestroyed(operation: string): void {\n if (this.destroyed) {\n throw new Error(`${operation} on a destroyed or closed file`);\n }\n }\n}\n", "//\n// Copyright 2021 DXOS.org\n//\n\nimport { MemoryStorage, type Storage, type StorageConstructor, StorageType } from '../common';\nimport { IDbStorage } from './idb-storage';\nimport { WebFS } from './web-fs';\n\nexport const createStorage: StorageConstructor = ({ type, root = '' } = {}): Storage => {\n if (type === undefined) {\n return new IDbStorage(root);\n }\n\n switch (type) {\n case StorageType.RAM: {\n return new MemoryStorage(root);\n }\n\n case StorageType.IDB:\n case StorageType.CHROME:\n case StorageType.FIREFOX: {\n return new IDbStorage(root);\n }\n\n case StorageType.WEBFS: {\n return new WebFS(root);\n }\n\n default: {\n throw new Error(`Invalid type: ${type}`);\n }\n }\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["DELIM", "idb", "self", "err", "i", "invariant", "
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["DELIM", "idb", "self", "err", "i", "invariant", "_store", "_initialized", "_fileStorage", "path", "_createFileStorage", "database", "_db", "Promise", "resolve", "res", "getdb", "close", "_createFile", "filename", "destroy", "cb", "then", "db", "lowerBound", "upperBound", "range", "IDBKeyRange", "transaction", "objectStore", "oncomplete", "destroyed", "unlinked", "file", "closed", "deletable", "_loadFiles", "invariant", "request", "openCursor", "reject", "onerror", "onsuccess", "event", "cursor", "set", "getFullPath", "wrapFile", "continue", "callbackify", "synchronized", "invariant", "log", "TimeSeriesCounter", "Directory", "StorageType", "getFullPath", "__dxlog_file", "_files", "type", "StorageType", "_root", "path", "_getFiles", "fullName", "filter", "file", "includes", "root", "entry", "entries", "length", "invariant", "createDirectory", "Directory", "getFullPath", "list", "_list", "getOrCreateFile", "args", "remove", "_delete", "sub", "onFlush", "all", "_getFullFilename", "existingFile", "set", "_createFile", "WebFile", "fileName", "create", "destroy", "delete", "_initialize", "removeEntry", "Promise", "catch", "err", "warn", "filename", "recursive", "close", "e", "recurse", "promises", "used", "_fileHandle", "_destroy", "_loadBufferPromise", "_flushScheduled", "_flushPromise", "_operations", "TimeSeriesCounter", "_reads", "_readBytes", "_writes", "_writeBytes", "_bufferSize", "_buffer", "_loadBufferGuarded", "suspended", "closed", "unlinked", "writing", "readable", "writable", "deletable", "truncatable", "statable", "destroyed", "directory", "native", "write", "read", "callbackify", "bind", "del", "stat", "truncate", "fileHandle", "getFile", "Uint8Array", "sequence", "_flushes", "keepExistingData", "data", "position", "_flushLater", "setTimeout", "assertNotDestroyed", "inc", "offset", "newCache", "size", "leftoverSize", "_flushNow", "info", "metricsCounter", "createStorage", "type", "root", "undefined", "IDbStorage", "StorageType", "RAM", "MemoryStorage", "IDB", "CHROME", "FIREFOX", "WEBFS", "WebFS", "Error"]
|
|
7
7
|
}
|
|
@@ -113,12 +113,7 @@ var pifyFields = (object, type, fields) => {
|
|
|
113
113
|
type,
|
|
114
114
|
operation: field,
|
|
115
115
|
elapsed
|
|
116
|
-
}, {
|
|
117
|
-
F: __dxlog_file,
|
|
118
|
-
L: 62,
|
|
119
|
-
S: void 0,
|
|
120
|
-
C: (f, a) => f(...a)
|
|
121
|
-
});
|
|
116
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 19, S: void 0 });
|
|
122
117
|
}
|
|
123
118
|
return res;
|
|
124
119
|
};
|
|
@@ -182,28 +177,13 @@ var AbstractStorage = class {
|
|
|
182
177
|
*/
|
|
183
178
|
async reset() {
|
|
184
179
|
try {
|
|
185
|
-
log2.info("Erasing all data...", void 0, {
|
|
186
|
-
F: __dxlog_file2,
|
|
187
|
-
L: 60,
|
|
188
|
-
S: this,
|
|
189
|
-
C: (f, a) => f(...a)
|
|
190
|
-
});
|
|
180
|
+
log2.info("Erasing all data...", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 50, S: this });
|
|
191
181
|
await this._closeFilesInPath("");
|
|
192
182
|
await this._remove("");
|
|
193
183
|
await this._destroy();
|
|
194
|
-
log2("Erased...", void 0, {
|
|
195
|
-
F: __dxlog_file2,
|
|
196
|
-
L: 64,
|
|
197
|
-
S: this,
|
|
198
|
-
C: (f, a) => f(...a)
|
|
199
|
-
});
|
|
184
|
+
log2("Erased...", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 54, S: this });
|
|
200
185
|
} catch (err) {
|
|
201
|
-
log2.catch(err, void 0, {
|
|
202
|
-
F: __dxlog_file2,
|
|
203
|
-
L: 66,
|
|
204
|
-
S: this,
|
|
205
|
-
C: (f, a) => f(...a)
|
|
206
|
-
});
|
|
186
|
+
log2.catch(err, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 56, S: this });
|
|
207
187
|
}
|
|
208
188
|
}
|
|
209
189
|
async _list(path) {
|
|
@@ -256,12 +236,7 @@ var AbstractStorage = class {
|
|
|
256
236
|
].filter(([path2, file]) => path2.includes(fullPath) && file.destroyed !== true));
|
|
257
237
|
}
|
|
258
238
|
async _closeFilesInPath(path) {
|
|
259
|
-
await Promise.all(Array.from((await this._getFiles(path)).values()).map((file) => file.close().catch((err) => log2.catch(err, void 0, {
|
|
260
|
-
F: __dxlog_file2,
|
|
261
|
-
L: 134,
|
|
262
|
-
S: this,
|
|
263
|
-
C: (f, a) => f(...a)
|
|
264
|
-
}))));
|
|
239
|
+
await Promise.all(Array.from((await this._getFiles(path)).values()).map((file) => file.close().catch((err) => log2.catch(err, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 109, S: this }))));
|
|
265
240
|
}
|
|
266
241
|
async close() {
|
|
267
242
|
await this._closeFilesInPath("");
|
|
@@ -269,12 +244,7 @@ var AbstractStorage = class {
|
|
|
269
244
|
// TODO(burdon): Delete directory (not just listed files).
|
|
270
245
|
async _remove(path) {
|
|
271
246
|
await Promise.all(Array.from(await this._getFiles(path)).map(([path2, file]) => {
|
|
272
|
-
return file.destroy().then(() => this._files.delete(path2)).catch((err) => log2.error(err.message, void 0, {
|
|
273
|
-
F: __dxlog_file2,
|
|
274
|
-
L: 149,
|
|
275
|
-
S: this,
|
|
276
|
-
C: (f, a) => f(...a)
|
|
277
|
-
}));
|
|
247
|
+
return file.destroy().then(() => this._files.delete(path2)).catch((err) => log2.error(err.message, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 117, S: this }));
|
|
278
248
|
}));
|
|
279
249
|
}
|
|
280
250
|
};
|
|
@@ -338,4 +308,4 @@ export {
|
|
|
338
308
|
StorageType,
|
|
339
309
|
MemoryStorage
|
|
340
310
|
};
|
|
341
|
-
//# sourceMappingURL=chunk-
|
|
311
|
+
//# sourceMappingURL=chunk-7W2LPI7I.mjs.map
|