@dxos/random-access-storage 0.4.9 → 0.4.10-main.05b9ab6

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.
@@ -1 +1 @@
1
- {"inputs":{"packages/common/random-access-storage/src/common/utils.ts":{"bytes":1295,"imports":[{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"packages/common/random-access-storage/src/common/directory.ts":{"bytes":6503,"imports":[{"path":"packages/common/random-access-storage/src/common/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"packages/common/random-access-storage/src/common/file.ts":{"bytes":6374,"imports":[{"path":"pify","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/common/random-access-storage/src/common/abstract-storage.ts":{"bytes":14868,"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":"packages/common/random-access-storage/src/common/directory.ts","kind":"import-statement","original":"./directory"},{"path":"packages/common/random-access-storage/src/common/file.ts","kind":"import-statement","original":"./file"},{"path":"packages/common/random-access-storage/src/common/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"packages/common/random-access-storage/src/common/storage.ts":{"bytes":1714,"imports":[],"format":"esm"},"packages/common/random-access-storage/src/common/memory-storage.ts":{"bytes":5312,"imports":[{"path":"random-access-memory","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/common/random-access-storage/src/common/abstract-storage.ts","kind":"import-statement","original":"./abstract-storage"},{"path":"packages/common/random-access-storage/src/common/storage.ts","kind":"import-statement","original":"./storage"}],"format":"esm"},"packages/common/random-access-storage/src/common/index.ts":{"bytes":947,"imports":[{"path":"packages/common/random-access-storage/src/common/abstract-storage.ts","kind":"import-statement","original":"./abstract-storage"},{"path":"packages/common/random-access-storage/src/common/directory.ts","kind":"import-statement","original":"./directory"},{"path":"packages/common/random-access-storage/src/common/file.ts","kind":"import-statement","original":"./file"},{"path":"packages/common/random-access-storage/src/common/memory-storage.ts","kind":"import-statement","original":"./memory-storage"},{"path":"packages/common/random-access-storage/src/common/storage.ts","kind":"import-statement","original":"./storage"},{"path":"packages/common/random-access-storage/src/common/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"packages/common/random-access-storage/src/node/node-storage.ts":{"bytes":8395,"imports":[{"path":"del","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":"random-access-file","kind":"import-statement","external":true},{"path":"packages/common/random-access-storage/src/common/index.ts","kind":"import-statement","original":"../common"}],"format":"esm"},"packages/common/random-access-storage/src/node/storage.ts":{"bytes":2441,"imports":[{"path":"packages/common/random-access-storage/src/node/node-storage.ts","kind":"import-statement","original":"./node-storage"},{"path":"packages/common/random-access-storage/src/common/index.ts","kind":"import-statement","original":"../common"}],"format":"esm"},"packages/common/random-access-storage/src/node/index.ts":{"bytes":568,"imports":[{"path":"packages/common/random-access-storage/src/common/index.ts","kind":"import-statement","original":"../common"},{"path":"packages/common/random-access-storage/src/node/storage.ts","kind":"import-statement","original":"./storage"}],"format":"esm"},"packages/common/random-access-storage/src/index.ts":{"bytes":469,"imports":[{"path":"packages/common/random-access-storage/src/node/index.ts","kind":"import-statement","original":"./node"}],"format":"esm"}},"outputs":{"packages/common/random-access-storage/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":23541},"packages/common/random-access-storage/dist/lib/node/index.cjs":{"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":"del","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":"random-access-file","kind":"import-statement","external":true}],"exports":["AbstractStorage","Directory","MemoryStorage","StorageType","createStorage","getFullPath","stringDiff","wrapFile"],"entryPoint":"packages/common/random-access-storage/src/index.ts","inputs":{"packages/common/random-access-storage/src/common/abstract-storage.ts":{"bytesInOutput":3497},"packages/common/random-access-storage/src/common/utils.ts":{"bytesInOutput":170},"packages/common/random-access-storage/src/common/directory.ts":{"bytesInOutput":1103},"packages/common/random-access-storage/src/common/file.ts":{"bytesInOutput":1149},"packages/common/random-access-storage/src/common/index.ts":{"bytesInOutput":0},"packages/common/random-access-storage/src/common/memory-storage.ts":{"bytesInOutput":900},"packages/common/random-access-storage/src/common/storage.ts":{"bytesInOutput":288},"packages/common/random-access-storage/src/node/index.ts":{"bytesInOutput":0},"packages/common/random-access-storage/src/node/node-storage.ts":{"bytesInOutput":1743},"packages/common/random-access-storage/src/node/storage.ts":{"bytesInOutput":369},"packages/common/random-access-storage/src/index.ts":{"bytesInOutput":0}},"bytes":10056}}}
1
+ {"inputs":{"packages/common/random-access-storage/src/common/utils.ts":{"bytes":1295,"imports":[{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"packages/common/random-access-storage/src/common/directory.ts":{"bytes":6503,"imports":[{"path":"packages/common/random-access-storage/src/common/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"packages/common/random-access-storage/src/common/file.ts":{"bytes":6374,"imports":[{"path":"pify","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/common/random-access-storage/src/common/abstract-storage.ts":{"bytes":14984,"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":"packages/common/random-access-storage/src/common/directory.ts","kind":"import-statement","original":"./directory"},{"path":"packages/common/random-access-storage/src/common/file.ts","kind":"import-statement","original":"./file"},{"path":"packages/common/random-access-storage/src/common/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"packages/common/random-access-storage/src/common/storage.ts":{"bytes":1963,"imports":[],"format":"esm"},"packages/common/random-access-storage/src/common/memory-storage.ts":{"bytes":5312,"imports":[{"path":"random-access-memory","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/common/random-access-storage/src/common/abstract-storage.ts","kind":"import-statement","original":"./abstract-storage"},{"path":"packages/common/random-access-storage/src/common/storage.ts","kind":"import-statement","original":"./storage"}],"format":"esm"},"packages/common/random-access-storage/src/common/index.ts":{"bytes":947,"imports":[{"path":"packages/common/random-access-storage/src/common/abstract-storage.ts","kind":"import-statement","original":"./abstract-storage"},{"path":"packages/common/random-access-storage/src/common/directory.ts","kind":"import-statement","original":"./directory"},{"path":"packages/common/random-access-storage/src/common/file.ts","kind":"import-statement","original":"./file"},{"path":"packages/common/random-access-storage/src/common/memory-storage.ts","kind":"import-statement","original":"./memory-storage"},{"path":"packages/common/random-access-storage/src/common/storage.ts","kind":"import-statement","original":"./storage"},{"path":"packages/common/random-access-storage/src/common/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"packages/common/random-access-storage/src/node/node-storage.ts":{"bytes":8395,"imports":[{"path":"del","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":"random-access-file","kind":"import-statement","external":true},{"path":"packages/common/random-access-storage/src/common/index.ts","kind":"import-statement","original":"../common"}],"format":"esm"},"packages/common/random-access-storage/src/node/storage.ts":{"bytes":2441,"imports":[{"path":"packages/common/random-access-storage/src/node/node-storage.ts","kind":"import-statement","original":"./node-storage"},{"path":"packages/common/random-access-storage/src/common/index.ts","kind":"import-statement","original":"../common"}],"format":"esm"},"packages/common/random-access-storage/src/node/index.ts":{"bytes":568,"imports":[{"path":"packages/common/random-access-storage/src/common/index.ts","kind":"import-statement","original":"../common"},{"path":"packages/common/random-access-storage/src/node/storage.ts","kind":"import-statement","original":"./storage"}],"format":"esm"},"packages/common/random-access-storage/src/index.ts":{"bytes":469,"imports":[{"path":"packages/common/random-access-storage/src/node/index.ts","kind":"import-statement","original":"./node"}],"format":"esm"}},"outputs":{"packages/common/random-access-storage/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":23756},"packages/common/random-access-storage/dist/lib/node/index.cjs":{"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":"del","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":"random-access-file","kind":"import-statement","external":true}],"exports":["AbstractStorage","Directory","MemoryStorage","StorageType","createStorage","getFullPath","stringDiff","wrapFile"],"entryPoint":"packages/common/random-access-storage/src/index.ts","inputs":{"packages/common/random-access-storage/src/common/abstract-storage.ts":{"bytesInOutput":3497},"packages/common/random-access-storage/src/common/utils.ts":{"bytesInOutput":170},"packages/common/random-access-storage/src/common/directory.ts":{"bytesInOutput":1103},"packages/common/random-access-storage/src/common/file.ts":{"bytesInOutput":1149},"packages/common/random-access-storage/src/common/index.ts":{"bytesInOutput":0},"packages/common/random-access-storage/src/common/memory-storage.ts":{"bytesInOutput":900},"packages/common/random-access-storage/src/common/storage.ts":{"bytesInOutput":288},"packages/common/random-access-storage/src/node/index.ts":{"bytesInOutput":0},"packages/common/random-access-storage/src/node/node-storage.ts":{"bytesInOutput":1743},"packages/common/random-access-storage/src/node/storage.ts":{"bytesInOutput":369},"packages/common/random-access-storage/src/index.ts":{"bytesInOutput":0}},"bytes":10056}}}
@@ -1,16 +1,20 @@
1
1
  import { type RandomAccessStorage } from 'random-access-storage';
2
- import { BrowserStorage } from './browser-storage';
3
- import { StorageType } from '../common';
2
+ import { AbstractStorage, StorageType } from '../common';
4
3
  /**
5
4
  * Storage interface implementation for index DB.
6
5
  * https://github.com/random-access-storage/random-access-idb
7
6
  */
8
- export declare class IDbStorage extends BrowserStorage {
7
+ export declare class IDbStorage extends AbstractStorage {
9
8
  type: StorageType;
10
9
  private _db;
11
10
  private readonly _store;
12
11
  private _initialized;
13
- protected _createFileStorage(path: string): any;
12
+ protected readonly _fileStorage: (filename: string, opts?: {}) => RandomAccessStorage;
13
+ constructor(path: string);
14
+ protected _createFileStorage(path: string): (filename: string, opts?: {}) => RandomAccessStorage;
15
+ close(): Promise<void>;
16
+ reset(): Promise<void>;
17
+ protected _destroy(): Promise<void>;
14
18
  protected _createFile(path: string, filename: string): RandomAccessStorage;
15
19
  _loadFiles(path: string): Promise<void>;
16
20
  protected _getFiles(path: string): Promise<Map<string, import("../common").File>>;
@@ -1 +1 @@
1
- {"version":3,"file":"idb-storage.d.ts","sourceRoot":"","sources":["../../../../src/browser/idb-storage.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAIjE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAyB,MAAM,WAAW,CAAC;AAG/D;;;GAGG;AACH,qBAAa,UAAW,SAAQ,cAAc;IAC5B,IAAI,EAAE,WAAW,CAAmB;IACpD,OAAO,CAAC,GAAG,CAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,YAAY,CAAS;cAEV,kBAAkB,CAAC,IAAI,EAAE,MAAM;cAY/B,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,mBAAmB;IAyB7E,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAiCpB,SAAS,CAAC,IAAI,EAAE,MAAM;CAQhD"}
1
+ {"version":3,"file":"idb-storage.d.ts","sourceRoot":"","sources":["../../../../src/browser/idb-storage.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAIjE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAyB,MAAM,WAAW,CAAC;AAGhF;;;GAGG;AACH,qBAAa,UAAW,SAAQ,eAAe;IAC7B,IAAI,EAAE,WAAW,CAAmB;IACpD,OAAO,CAAC,GAAG,CAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,YAAY,CAAS;IAC7B,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,mBAAmB,CAAC;gBAE1E,IAAI,EAAE,MAAM;IAKxB,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,mBAAmB;IAYjF,KAAK;IAKL,KAAK;cAQK,QAAQ;cAId,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,mBAAmB;IAyB7E,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAiCpB,SAAS,CAAC,IAAI,EAAE,MAAM;CAQhD"}
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/browser/storage.ts"],"names":[],"mappings":"AAOA,OAAO,EAA+B,KAAK,kBAAkB,EAAe,MAAM,WAAW,CAAC;AAE9F,eAAO,MAAM,aAAa,EAAE,kBAqC3B,CAAC"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/browser/storage.ts"],"names":[],"mappings":"AAMA,OAAO,EAA4C,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE9F,eAAO,MAAM,aAAa,EAAE,kBAwB3B,CAAC"}
@@ -35,7 +35,7 @@ export declare abstract class AbstractStorage implements Storage {
35
35
  protected abstract _createFile(path: string, filename: string, opts?: any): RandomAccessStorage;
36
36
  private _getFileIfExists;
37
37
  protected _getFiles(path: string): Promise<Map<string, File>>;
38
- private _closeFilesInPath;
38
+ protected _closeFilesInPath(path: string): Promise<void>;
39
39
  close(): Promise<void>;
40
40
  protected _remove(path: string): Promise<void>;
41
41
  }
@@ -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;AACpC,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;AACH,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;IAIhB,MAAM;;;;IAIN,IAAW,IAAI,WAEd;IAGM,eAAe,CAAC,GAAG,SAAK,GAAG,SAAS;IAW3C;;OAEG;IACG,KAAK;cAYK,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;YAOrD,iBAAiB;IAMzB,KAAK;cAKK,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAUrD"}
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;AACpC,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;IAIhB,MAAM;;;;IAIN,IAAW,IAAI,WAEd;IAGM,eAAe,CAAC,GAAG,SAAK,GAAG,SAAS;IAW3C;;OAEG;IACG,KAAK;cAYK,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;cAKK,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAUrD"}
@@ -2,9 +2,18 @@ import { type Directory } from './directory';
2
2
  export declare enum StorageType {
3
3
  RAM = "ram",
4
4
  IDB = "idb",
5
+ /**
6
+ * @deprecated
7
+ */
5
8
  CHROME = "chrome",
9
+ /**
10
+ * @deprecated
11
+ */
6
12
  FIREFOX = "firefox",
7
13
  NODE = "node",
14
+ /**
15
+ * @deprecated
16
+ */
8
17
  WEBFS = "webfs"
9
18
  }
10
19
  export type DiskInfo = {
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/common/storage.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,oBAAY,WAAW;IACrB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,WAAW,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAGlC,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,SAAS,CAAC;IAC9C,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,MAAM,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,WAAW,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/common/storage.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,oBAAY,WAAW;IACrB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX;;OAEG;IACH,MAAM,WAAW;IACjB;;OAEG;IACH,OAAO,YAAY;IACnB,IAAI,SAAS;IACb;;OAEG;IACH,KAAK,UAAU;CAChB;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,WAAW,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAGlC,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,SAAS,CAAC;IAC9C,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,MAAM,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,WAAW,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { type Storage, StorageType } from '../common';
2
2
  export declare const randomText: () => string;
3
- export declare const storageTests: (testGroupName: StorageType, createStorage: () => Storage) => void;
3
+ export declare const storageTests: (testGroupName: StorageType, createStorage: (name: string) => Storage) => void;
4
4
  //# sourceMappingURL=storage.blueprint-test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage.blueprint-test.d.ts","sourceRoot":"","sources":["../../../../src/testing/storage.blueprint-test.ts"],"names":[],"mappings":"AASA,OAAO,EAAa,KAAK,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEjE,eAAO,MAAM,UAAU,cAAkB,CAAC;AAE1C,eAAO,MAAM,YAAY,kBAAmB,WAAW,iBAAiB,MAAM,OAAO,SAwbpF,CAAC"}
1
+ {"version":3,"file":"storage.blueprint-test.d.ts","sourceRoot":"","sources":["../../../../src/testing/storage.blueprint-test.ts"],"names":[],"mappings":"AASA,OAAO,EAAa,KAAK,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEjE,eAAO,MAAM,UAAU,cAAkB,CAAC;AAE1C,eAAO,MAAM,YAAY,kBAAmB,WAAW,wBAAwB,MAAM,KAAK,OAAO,SAydhG,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/random-access-storage",
3
- "version": "0.4.9",
3
+ "version": "0.4.10-main.05b9ab6",
4
4
  "description": "Multiple random storage types.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -17,25 +17,30 @@
17
17
  "src"
18
18
  ],
19
19
  "dependencies": {
20
+ "buffer-alloc": "^1.1.0",
21
+ "buffer-from": "^0.1.1",
20
22
  "del": "^5.1.0",
23
+ "inherits": "^2.0.3",
24
+ "next-tick": "^1.0.0",
25
+ "once": "^1.4.0",
21
26
  "pify": "~5.0.0",
22
27
  "random-access-file": "^2.2.1",
23
- "random-access-idb": "^1.2.2",
24
28
  "random-access-memory": "^4.1.0",
25
- "random-access-storage": "^3.0.0",
29
+ "random-access-storage": "^1.3.0",
26
30
  "random-access-web": "^2.0.3",
27
- "@dxos/async": "0.4.9",
28
- "@dxos/context": "0.4.9",
29
- "@dxos/debug": "0.4.9",
30
- "@dxos/invariant": "0.4.9",
31
- "@dxos/log": "0.4.9",
32
- "@dxos/node-std": "0.4.9",
33
- "@dxos/tracing": "0.4.9",
34
- "@dxos/util": "0.4.9"
31
+ "@dxos/async": "0.4.10-main.05b9ab6",
32
+ "@dxos/debug": "0.4.10-main.05b9ab6",
33
+ "@dxos/invariant": "0.4.10-main.05b9ab6",
34
+ "@dxos/context": "0.4.10-main.05b9ab6",
35
+ "@dxos/node-std": "0.4.10-main.05b9ab6",
36
+ "@dxos/log": "0.4.10-main.05b9ab6",
37
+ "@dxos/tracing": "0.4.10-main.05b9ab6",
38
+ "@dxos/util": "0.4.10-main.05b9ab6"
35
39
  },
36
40
  "devDependencies": {
37
41
  "@types/pify": "^3.0.2",
38
42
  "@types/randombytes": "^2.0.0",
43
+ "random-access-idb": "^1.2.2",
39
44
  "randombytes": "^2.1.0"
40
45
  },
41
46
  "publishConfig": {
@@ -7,21 +7,26 @@ import { type RandomAccessStorage } from 'random-access-storage';
7
7
 
8
8
  import { invariant } from '@dxos/invariant';
9
9
 
10
- import { BrowserStorage } from './browser-storage';
11
- import { StorageType, getFullPath, wrapFile } from '../common';
10
+ import { AbstractStorage, StorageType, getFullPath, wrapFile } from '../common';
12
11
 
13
12
  const DELIM = '\0';
14
13
  /**
15
14
  * Storage interface implementation for index DB.
16
15
  * https://github.com/random-access-storage/random-access-idb
17
16
  */
18
- export class IDbStorage extends BrowserStorage {
17
+ export class IDbStorage extends AbstractStorage {
19
18
  public override type: StorageType = StorageType.IDB;
20
19
  private _db!: Promise<IDBDatabase>;
21
20
  private readonly _store = 'data';
22
21
  private _initialized = false;
22
+ protected readonly _fileStorage: (filename: string, opts?: {}) => RandomAccessStorage;
23
23
 
24
- protected override _createFileStorage(path: string) {
24
+ constructor(path: string) {
25
+ super(path);
26
+ this._fileStorage = this._createFileStorage(path);
27
+ }
28
+
29
+ protected _createFileStorage(path: string): (filename: string, opts?: {}) => RandomAccessStorage {
25
30
  // Note: We use patched version of random-access-idb here that exposes the getdb method.
26
31
  const database = idb(path);
27
32
  let res: (db: IDBDatabase) => void;
@@ -33,6 +38,23 @@ export class IDbStorage extends BrowserStorage {
33
38
  return database.create;
34
39
  }
35
40
 
41
+ override async close() {
42
+ await this._closeFilesInPath('');
43
+ // TODO(dmaretskyi): Set a flag to make the current instance unusable.
44
+ }
45
+
46
+ override async reset() {
47
+ // We don't delete the database, just erase the data.
48
+ // Deleting that database causes IDB errors which I have no idea how to fix.
49
+ await this._closeFilesInPath('');
50
+ await this._remove('');
51
+ // TODO(dmaretskyi): Set a flag to make the current instance unusable.
52
+ }
53
+
54
+ protected override async _destroy() {
55
+ throw new Error('Unreachable');
56
+ }
57
+
36
58
  protected override _createFile(path: string, filename: string): RandomAccessStorage {
37
59
  const file = this._fileStorage(getFullPath(path, filename));
38
60
  file.destroy = (cb: (err: Error | null) => void) => {
@@ -12,7 +12,7 @@ const ROOT_DIRECTORY = 'testing';
12
12
 
13
13
  describe('Tests for different storage types in different browsers', () => {
14
14
  for (const dataStore of [StorageType.RAM, StorageType.IDB, StorageType.WEBFS] as StorageType[]) {
15
- storageTests(dataStore, () => createStorage({ type: dataStore, root: ROOT_DIRECTORY }));
15
+ storageTests(dataStore, (name: string) => createStorage({ type: dataStore, root: `${ROOT_DIRECTORY}-${name}` }));
16
16
  }
17
17
 
18
18
  test.skip(`Used ${StorageType.WEBFS} by default`, async () => {
@@ -2,24 +2,13 @@
2
2
  // Copyright 2021 DXOS.org
3
3
  //
4
4
 
5
- import { FirefoxStorage } from './firefox-storage';
6
5
  import { IDbStorage } from './idb-storage';
7
6
  import { WebFS } from './web-fs';
8
- import { MemoryStorage, type Storage, type StorageConstructor, StorageType } from '../common';
7
+ import { MemoryStorage, StorageType, type Storage, type StorageConstructor } from '../common';
9
8
 
10
9
  export const createStorage: StorageConstructor = ({ type, root = '' } = {}): Storage => {
11
10
  if (type === undefined) {
12
- if (
13
- navigator &&
14
- navigator.storage &&
15
- typeof navigator.storage.getDirectory === 'function' &&
16
- FileSystemFileHandle &&
17
- typeof (FileSystemFileHandle.prototype as any).createWritable === 'function'
18
- ) {
19
- return new WebFS(root);
20
- } else {
21
- return new IDbStorage(root);
22
- }
11
+ return new IDbStorage(root);
23
12
  }
24
13
 
25
14
  switch (type) {
@@ -28,12 +17,9 @@ export const createStorage: StorageConstructor = ({ type, root = '' } = {}): Sto
28
17
  }
29
18
 
30
19
  case StorageType.IDB:
31
- case StorageType.CHROME: {
32
- return new IDbStorage(root);
33
- }
34
-
20
+ case StorageType.CHROME:
35
21
  case StorageType.FIREFOX: {
36
- return new FirefoxStorage(root);
22
+ return new IDbStorage(root);
37
23
  }
38
24
 
39
25
  case StorageType.WEBFS: {
@@ -19,6 +19,7 @@ import { getFullPath } from './utils';
19
19
  * https://github.com/random-access-storage
20
20
  * https://github.com/random-access-storage/random-access-storage
21
21
  */
22
+ // TODO(dmaretskyi): Remove this class.
22
23
  export abstract class AbstractStorage implements Storage {
23
24
  protected readonly _files = new Map<string, File>();
24
25
 
@@ -128,7 +129,7 @@ export abstract class AbstractStorage implements Storage {
128
129
  );
129
130
  }
130
131
 
131
- private async _closeFilesInPath(path: string): Promise<void> {
132
+ protected async _closeFilesInPath(path: string): Promise<void> {
132
133
  await Promise.all(
133
134
  Array.from((await this._getFiles(path)).values()).map((file) => file.close().catch((err: any) => log.catch(err))),
134
135
  );
@@ -8,9 +8,18 @@ import { type Directory } from './directory';
8
8
  export enum StorageType {
9
9
  RAM = 'ram',
10
10
  IDB = 'idb',
11
+ /**
12
+ * @deprecated
13
+ */
11
14
  CHROME = 'chrome',
15
+ /**
16
+ * @deprecated
17
+ */
12
18
  FIREFOX = 'firefox',
13
19
  NODE = 'node',
20
+ /**
21
+ * @deprecated
22
+ */
14
23
  WEBFS = 'webfs',
15
24
  }
16
25