opfs-worker 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/README.md +62 -439
  2. package/dist/BaseOPFS-BPw9AIQ-.cjs +4 -0
  3. package/dist/BaseOPFS-BPw9AIQ-.cjs.map +1 -0
  4. package/dist/BaseOPFS-Cylz6ijk.js +2036 -0
  5. package/dist/BaseOPFS-Cylz6ijk.js.map +1 -0
  6. package/dist/OPFSAsync-BKSAJJeh.js +124 -0
  7. package/dist/OPFSAsync-BKSAJJeh.js.map +1 -0
  8. package/dist/OPFSAsync-s2P7y3sw.cjs +2 -0
  9. package/dist/OPFSAsync-s2P7y3sw.cjs.map +1 -0
  10. package/dist/OPFSFacade-DePnNRgt.cjs +2 -0
  11. package/dist/OPFSFacade-DePnNRgt.cjs.map +1 -0
  12. package/dist/OPFSFacade-XohWlHuu.js +281 -0
  13. package/dist/OPFSFacade-XohWlHuu.js.map +1 -0
  14. package/dist/OPFSSync-C7KBepe_.cjs +2 -0
  15. package/dist/OPFSSync-C7KBepe_.cjs.map +1 -0
  16. package/dist/OPFSSync-CsSQkpk5.js +208 -0
  17. package/dist/OPFSSync-CsSQkpk5.js.map +1 -0
  18. package/dist/assets/dedicated.worker-nY3tK4zi.js.map +1 -0
  19. package/dist/{OPFSWorker.d.ts → core/BaseOPFS.d.ts} +34 -304
  20. package/dist/core/BaseOPFS.d.ts.map +1 -0
  21. package/dist/core/OPFSAsync.d.ts +55 -0
  22. package/dist/core/OPFSAsync.d.ts.map +1 -0
  23. package/dist/core/OPFSSync.d.ts +54 -0
  24. package/dist/core/OPFSSync.d.ts.map +1 -0
  25. package/dist/createOPFSAsync-BwKDmHsy.cjs +2 -0
  26. package/dist/createOPFSAsync-BwKDmHsy.cjs.map +1 -0
  27. package/dist/createOPFSAsync-Y4Mg6qte.js +10 -0
  28. package/dist/createOPFSAsync-Y4Mg6qte.js.map +1 -0
  29. package/dist/createOPFSDedicated-CsnV6MLP.js +2333 -0
  30. package/dist/createOPFSDedicated-CsnV6MLP.js.map +1 -0
  31. package/dist/createOPFSDedicated-pKTRWLdz.cjs +2283 -0
  32. package/dist/createOPFSDedicated-pKTRWLdz.cjs.map +1 -0
  33. package/dist/createOPFSShared-CGdd__PH.js +23 -0
  34. package/dist/createOPFSShared-CGdd__PH.js.map +1 -0
  35. package/dist/createOPFSShared-CskROt7U.cjs +2 -0
  36. package/dist/createOPFSShared-CskROt7U.cjs.map +1 -0
  37. package/dist/dedicated.worker.js +2281 -0
  38. package/dist/dedicated.worker.js.map +1 -0
  39. package/dist/{OPFSFacade.d.ts → facade/OPFSFacade.d.ts} +31 -23
  40. package/dist/facade/OPFSFacade.d.ts.map +1 -0
  41. package/dist/facade/createOPFSAsync.d.ts +16 -0
  42. package/dist/facade/createOPFSAsync.d.ts.map +1 -0
  43. package/dist/facade/createOPFSDedicated.d.ts +17 -0
  44. package/dist/facade/createOPFSDedicated.d.ts.map +1 -0
  45. package/dist/facade/createOPFSShared.d.ts +24 -0
  46. package/dist/facade/createOPFSShared.d.ts.map +1 -0
  47. package/dist/index.async.cjs +2 -0
  48. package/dist/index.async.cjs.map +1 -0
  49. package/dist/index.async.d.ts +10 -0
  50. package/dist/index.async.d.ts.map +1 -0
  51. package/dist/index.async.js +55 -0
  52. package/dist/index.async.js.map +1 -0
  53. package/dist/index.cjs +1 -2477
  54. package/dist/index.cjs.map +1 -1
  55. package/dist/index.d.ts +17 -3
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +61 -2828
  58. package/dist/index.js.map +1 -1
  59. package/dist/index.pure.cjs +1 -1
  60. package/dist/index.pure.cjs.map +1 -1
  61. package/dist/index.pure.d.ts +3 -1
  62. package/dist/index.pure.d.ts.map +1 -1
  63. package/dist/index.pure.js +50 -1053
  64. package/dist/index.pure.js.map +1 -1
  65. package/dist/index.sharedworker.cjs +2 -0
  66. package/dist/index.sharedworker.cjs.map +1 -0
  67. package/dist/index.sharedworker.d.ts +11 -0
  68. package/dist/index.sharedworker.d.ts.map +1 -0
  69. package/dist/index.sharedworker.js +55 -0
  70. package/dist/index.sharedworker.js.map +1 -0
  71. package/dist/index.sync.cjs +2 -0
  72. package/dist/index.sync.cjs.map +1 -0
  73. package/dist/index.sync.d.ts +11 -0
  74. package/dist/index.sync.d.ts.map +1 -0
  75. package/dist/index.sync.js +55 -0
  76. package/dist/index.sync.js.map +1 -0
  77. package/dist/shared.worker.js +2166 -0
  78. package/dist/shared.worker.js.map +1 -0
  79. package/dist/types.d.ts +9 -4
  80. package/dist/types.d.ts.map +1 -1
  81. package/dist/worker/createDedicatedWorker.d.ts +30 -0
  82. package/dist/worker/createDedicatedWorker.d.ts.map +1 -0
  83. package/dist/worker/createSharedWorker.d.ts +37 -0
  84. package/dist/worker/createSharedWorker.d.ts.map +1 -0
  85. package/dist/worker/dedicated.worker.d.ts +2 -0
  86. package/dist/worker/dedicated.worker.d.ts.map +1 -0
  87. package/dist/worker/shared.worker.d.ts +2 -0
  88. package/dist/worker/shared.worker.d.ts.map +1 -0
  89. package/docs/README.md +30 -0
  90. package/docs/api/backend.md +36 -0
  91. package/docs/api/create.md +82 -0
  92. package/docs/api/facade.md +52 -0
  93. package/docs/choosing-a-mode.md +41 -0
  94. package/docs/file-descriptors.md +8 -9
  95. package/docs/guides/async.md +36 -0
  96. package/docs/guides/dedicated.md +76 -0
  97. package/docs/guides/hashing.md +34 -0
  98. package/docs/guides/pure.md +46 -0
  99. package/docs/guides/sharedworker.md +57 -0
  100. package/docs/guides/streaming.md +51 -0
  101. package/docs/guides/watching.md +35 -0
  102. package/docs/migration.md +41 -0
  103. package/docs/types.md +20 -6
  104. package/package.json +42 -3
  105. package/src/{OPFSWorker.ts → core/BaseOPFS.ts} +54 -647
  106. package/src/core/OPFSAsync.ts +248 -0
  107. package/src/core/OPFSSync.ts +460 -0
  108. package/src/{OPFSFacade.ts → facade/OPFSFacade.ts} +83 -54
  109. package/src/facade/createOPFSAsync.ts +22 -0
  110. package/src/facade/createOPFSDedicated.ts +23 -0
  111. package/src/facade/createOPFSShared.ts +30 -0
  112. package/src/index.async.ts +11 -0
  113. package/src/index.pure.ts +3 -2
  114. package/src/index.sharedworker.ts +12 -0
  115. package/src/index.sync.ts +12 -0
  116. package/src/index.ts +37 -8
  117. package/src/types.ts +8 -4
  118. package/src/worker/createDedicatedWorker.ts +74 -0
  119. package/src/worker/createSharedWorker.ts +67 -0
  120. package/src/worker/dedicated.worker.ts +13 -0
  121. package/src/worker/shared.worker.ts +17 -0
  122. package/dist/OPFSFacade.d.ts.map +0 -1
  123. package/dist/OPFSWorker.d.ts.map +0 -1
  124. package/dist/assets/worker.entry-DUlEoroc.js.map +0 -1
  125. package/dist/createOPFSWorker.d.ts +0 -17
  126. package/dist/createOPFSWorker.d.ts.map +0 -1
  127. package/dist/helpers-DNj8ZoMu.cjs +0 -4
  128. package/dist/helpers-DNj8ZoMu.cjs.map +0 -1
  129. package/dist/helpers-WY2jfbOT.js +0 -1427
  130. package/dist/helpers-WY2jfbOT.js.map +0 -1
  131. package/dist/worker.entry.d.ts +0 -2
  132. package/dist/worker.entry.d.ts.map +0 -1
  133. package/docs/api-reference.md +0 -815
  134. package/src/createOPFSWorker.ts +0 -57
  135. package/src/worker.entry.ts +0 -6
@@ -1,14 +1,28 @@
1
- import type { BinaryEncoding, DirentData, Encoding, FileOpenOptions, FileStat, OPFSOptions, PathLike, RenameOptions, StringEncoding, WatchOptions } from './types';
1
+ import type { BinaryEncoding, DirentData, Encoding, FileOpenOptions, FileStat, OPFSApi, OPFSOptions, PathLike, RenameOptions, StringEncoding, WatchOptions } from '../types';
2
+ /** Backend the facade talks to: an fs implementation plus its cleanup. */
3
+ export interface OPFSBackend {
4
+ fs: OPFSApi;
5
+ /** Underlying Worker / SharedWorker when the backend lives off-thread */
6
+ worker?: Worker | SharedWorker;
7
+ dispose: () => void;
8
+ }
2
9
  /**
3
- * Mode 1: Node-like facade with encoding helpers and string/binary auto-detection,
4
- * built on top of the raw worker API from {@link createOPFSWorker}.
10
+ * Node-like facade with encoding helpers and string/binary auto-detection.
11
+ *
12
+ * Transport-agnostic: works over any {@link OPFSBackend} — a Comlink proxy to
13
+ * a worker (`createOPFSDedicated`) or an in-process instance (`createOPFSAsync`).
5
14
  *
6
- * Use {@link createOPFS} to create one.
15
+ * Escape hatch: {@link backend} is the raw bytes API; {@link worker} is the
16
+ * browser Worker / SharedWorker when one was created (undefined for async).
7
17
  */
8
18
  export declare class OPFSFacade {
9
19
  #private;
20
+ /** Raw backend (`OPFSApi`) — bytes in / bytes out, no encoding helpers */
21
+ readonly backend: OPFSApi;
22
+ /** Dedicated Worker or SharedWorker, if this facade was created with one */
23
+ readonly worker: Worker | SharedWorker | undefined;
10
24
  promises: OPFSFacade;
11
- constructor(options?: OPFSOptions);
25
+ constructor(backend: OPFSBackend);
12
26
  /**
13
27
  * Start watching a file or directory for changes
14
28
  */
@@ -40,13 +54,22 @@ export declare class OPFSFacade {
40
54
  /**
41
55
  * Write data to a file
42
56
  */
43
- writeFile(path: PathLike, data: string | Uint8Array | ArrayBuffer, options?: {
57
+ writeFile(path: PathLike, data: string | Uint8Array | ArrayBuffer | Blob, options?: {
44
58
  encoding?: Encoding;
45
59
  } | Encoding): Promise<void>;
46
60
  /**
47
61
  * Append data to a file
48
62
  */
49
- appendFile(path: PathLike, data: string | Uint8Array | ArrayBuffer, encoding?: Encoding): Promise<void>;
63
+ appendFile(path: PathLike, data: string | Uint8Array | ArrayBuffer | Blob, encoding?: Encoding): Promise<void>;
64
+ /**
65
+ * Create or overwrite a file from a byte stream without buffering the
66
+ * complete source in memory.
67
+ *
68
+ * Returns the total number of bytes written.
69
+ */
70
+ importStream(path: PathLike, source: ReadableStream<Uint8Array> | Blob, options?: {
71
+ onProgress?: (bytesWritten: number) => void;
72
+ }): Promise<number>;
50
73
  /**
51
74
  * Create a directory
52
75
  */
@@ -170,23 +193,8 @@ export declare class OPFSFacade {
170
193
  */
171
194
  appendText(path: PathLike, text: string, encoding?: Encoding): Promise<void>;
172
195
  /**
173
- * Dispose of resources, detach the worker and clean up the file system instance
196
+ * Dispose of resources, detach the backend and clean up the file system instance
174
197
  */
175
198
  dispose(): void;
176
199
  }
177
- /**
178
- * Mode 1: start an inlined worker and get a Node-like `fs` API on top of it.
179
- *
180
- * For the raw worker API without the facade, use {@link createOPFSWorker}.
181
- * To use the worker class inside your own worker, see `opfs-worker/pure`.
182
- */
183
- export declare function createOPFS(options?: OPFSOptions): OPFSFacade;
184
- /**
185
- * @deprecated Use {@link createOPFS}. Kept for 1.x compatibility — still returns the facade.
186
- */
187
- export declare const createWorker: typeof createOPFS;
188
- /**
189
- * @deprecated Use {@link OPFSFacade}.
190
- */
191
- export { OPFSFacade as OPFSFileSystem };
192
200
  //# sourceMappingURL=OPFSFacade.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OPFSFacade.d.ts","sourceRoot":"","sources":["../../src/facade/OPFSFacade.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { OPFSFacade } from './OPFSFacade';
2
+ import type { OPFSOptions } from '../types';
3
+ /**
4
+ * Async mode: Node-like `fs` API over the promise-based File System API,
5
+ * without any worker.
6
+ *
7
+ * Prefer importing from `opfs-worker/async` when you care about bundle size
8
+ * (avoids the inlined dedicated worker). Importing from `opfs-worker` works too.
9
+ *
10
+ * Writing requires `FileSystemFileHandle.createWritable()` — Chrome, Firefox,
11
+ * Safari 26+. File descriptors (`open`/`read`/`write`/...) are not supported
12
+ * and throw `OperationNotSupportedError` — use `createOPFSDedicated` from `opfs-worker`
13
+ * or `opfs-worker/sync` for positional I/O.
14
+ */
15
+ export declare function createOPFSAsync(options?: OPFSOptions): OPFSFacade;
16
+ //# sourceMappingURL=createOPFSAsync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createOPFSAsync.d.ts","sourceRoot":"","sources":["../../src/facade/createOPFSAsync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,UAAU,CAIjE"}
@@ -0,0 +1,17 @@
1
+ import { OPFSFacade } from './OPFSFacade';
2
+ import type { DedicatedWorkerOptions } from '../worker/createDedicatedWorker';
3
+ /**
4
+ * Dedicated mode: start a dedicated worker and get a Node-like `fs` API
5
+ * backed by `OPFSSync`.
6
+ *
7
+ * Prefer importing from `opfs-worker/sync` when you only need the worker backend
8
+ * (avoids pulling `OPFSAsync` into the graph). Importing from `opfs-worker` works too.
9
+ *
10
+ * By default uses an inlined worker. Pass `url` / `worker` to load
11
+ * `opfs-worker/dedicated.worker.js` instead (see {@link DedicatedWorkerOptions}).
12
+ *
13
+ * Need the raw bytes API or the Worker instance? Use `fs.backend` / `fs.worker`.
14
+ * For the workerless async backend, use {@link createOPFSAsync}.
15
+ */
16
+ export declare function createOPFSDedicated(options?: DedicatedWorkerOptions): OPFSFacade;
17
+ //# sourceMappingURL=createOPFSDedicated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createOPFSDedicated.d.ts","sourceRoot":"","sources":["../../src/facade/createOPFSDedicated.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAE9E;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,UAAU,CAIhF"}
@@ -0,0 +1,24 @@
1
+ import { OPFSFacade } from './OPFSFacade';
2
+ import type { SharedWorkerOptions } from '../worker/createSharedWorker';
3
+ /**
4
+ * Shared mode: Node-like `fs` API over a SharedWorker running one `OPFSAsync`
5
+ * instance for every tab — writes are serialized across tabs by per-path locks,
6
+ * watch events reach all tabs via `BroadcastChannel`.
7
+ *
8
+ * Uses the async backend (sync access handles are unavailable in SharedWorker):
9
+ * writing requires `createWritable()` (Chrome, Firefox, Safari 26+), and file
10
+ * descriptors throw `OperationNotSupportedError`.
11
+ *
12
+ * Need the raw bytes API or the SharedWorker? Use `fs.backend` / `fs.worker`.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * // Vite: pass the worker url explicitly
17
+ * import workerUrl from 'opfs-worker/shared.worker.js?url';
18
+ * import { createOPFSShared } from 'opfs-worker/sharedworker';
19
+ *
20
+ * const fs = createOPFSShared({ root: '/my-app', url: workerUrl });
21
+ * ```
22
+ */
23
+ export declare function createOPFSShared(options?: SharedWorkerOptions): OPFSFacade;
24
+ //# sourceMappingURL=createOPFSShared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createOPFSShared.d.ts","sourceRoot":"","sources":["../../src/facade/createOPFSShared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAExE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,UAAU,CAI1E"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./BaseOPFS-BPw9AIQ-.cjs"),e=require("./OPFSAsync-s2P7y3sw.cjs"),a=require("./OPFSFacade-DePnNRgt.cjs"),t=require("./createOPFSAsync-BwKDmHsy.cjs");exports.AlreadyExistsError=r.AlreadyExistsError;exports.BINARY_FILE_EXTENSIONS=r.BINARY_FILE_EXTENSIONS;exports.BaseOPFS=r.BaseOPFS;exports.DirectoryOperationError=r.DirectoryOperationError;exports.ExistenceError=r.ExistenceError;exports.FileBusyError=r.FileBusyError;exports.FileSystemOperationError=r.FileSystemOperationError;exports.FileTypeError=r.FileTypeError;exports.IOError=r.IOError;exports.InitializationFailedError=r.InitializationFailedError;exports.OPFSError=r.OPFSError;exports.OPFSNotSupportedError=r.OPFSNotSupportedError;exports.OperationAbortedError=r.OperationAbortedError;exports.OperationNotSupportedError=r.OperationNotSupportedError;exports.PathError=r.PathError;exports.PermissionError=r.PermissionError;exports.StorageError=r.StorageError;exports.ValidationError=r.ValidationError;exports.WatchEventType=r.WatchEventType;exports.basename=r.basename;exports.buffersEqual=r.buffersEqual;exports.calculateFileHash=r.calculateFileHash;exports.calculateReadLength=r.calculateReadLength;exports.checkOPFSSupport=r.checkOPFSSupport;exports.convertBlobToUint8Array=r.convertBlobToUint8Array;exports.createBuffer=r.createBuffer;exports.createFDError=r.createFDError;exports.createSyncHandleSafe=r.createSyncHandleSafe;exports.decodeBuffer=r.decodeBuffer;exports.dirname=r.dirname;exports.encodeString=r.encodeString;exports.extname=r.extname;exports.isBinaryFileExtension=r.isBinaryFileExtension;exports.isPathExcluded=r.isPathExcluded;exports.joinPath=r.joinPath;exports.mapDomError=r.mapDomError;exports.matchMinimatch=r.matchMinimatch;exports.normalizeMinimatch=r.normalizeMinimatch;exports.normalizePath=r.normalizePath;exports.removeEntry=r.removeEntry;exports.resolvePath=r.resolvePath;exports.safeCloseSyncHandle=r.safeCloseSyncHandle;exports.splitPath=r.splitPath;exports.validateReadWriteArgs=r.validateReadWriteArgs;exports.withLock=r.withLock;exports.OPFSAsync=e.OPFSAsync;exports.OPFSFacade=a.OPFSFacade;exports.createOPFSAsync=t.createOPFSAsync;
2
+ //# sourceMappingURL=index.async.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.async.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ export * from './types';
2
+ export * from './utils/errors';
3
+ export * from './utils/helpers';
4
+ export * from './utils/encoder';
5
+ export { BaseOPFS } from './core/BaseOPFS';
6
+ export { OPFSAsync } from './core/OPFSAsync';
7
+ export { OPFSFacade } from './facade/OPFSFacade';
8
+ export type { OPFSBackend } from './facade/OPFSFacade';
9
+ export { createOPFSAsync } from './facade/createOPFSAsync';
10
+ //# sourceMappingURL=index.async.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.async.d.ts","sourceRoot":"","sources":["../src/index.async.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { A as e, K as s, B as o, D as t, E as i, F as n, g as E, c, I as l, f as d, O as p, a as S, d as m, e as F, P as O, b as h, S as P, V as y, W as f, k as u, x, v as A, H as B, i as v, y as I, u as N, h as b, J as g, N as z, l as D, M as H, t as L, L as T, q as k, j as M, m as R, p as W, o as j, n as q, z as w, r as C, G as V, s as _, C as G, w as J } from "./BaseOPFS-Cylz6ijk.js";
2
+ import { O as U } from "./OPFSAsync-BKSAJJeh.js";
3
+ import { O as Y } from "./OPFSFacade-XohWlHuu.js";
4
+ import { c as Z } from "./createOPFSAsync-Y4Mg6qte.js";
5
+ export {
6
+ e as AlreadyExistsError,
7
+ s as BINARY_FILE_EXTENSIONS,
8
+ o as BaseOPFS,
9
+ t as DirectoryOperationError,
10
+ i as ExistenceError,
11
+ n as FileBusyError,
12
+ E as FileSystemOperationError,
13
+ c as FileTypeError,
14
+ l as IOError,
15
+ d as InitializationFailedError,
16
+ U as OPFSAsync,
17
+ p as OPFSError,
18
+ Y as OPFSFacade,
19
+ S as OPFSNotSupportedError,
20
+ m as OperationAbortedError,
21
+ F as OperationNotSupportedError,
22
+ O as PathError,
23
+ h as PermissionError,
24
+ P as StorageError,
25
+ y as ValidationError,
26
+ f as WatchEventType,
27
+ u as basename,
28
+ x as buffersEqual,
29
+ A as calculateFileHash,
30
+ B as calculateReadLength,
31
+ v as checkOPFSSupport,
32
+ I as convertBlobToUint8Array,
33
+ N as createBuffer,
34
+ b as createFDError,
35
+ Z as createOPFSAsync,
36
+ g as createSyncHandleSafe,
37
+ z as decodeBuffer,
38
+ D as dirname,
39
+ H as encodeString,
40
+ L as extname,
41
+ T as isBinaryFileExtension,
42
+ k as isPathExcluded,
43
+ M as joinPath,
44
+ R as mapDomError,
45
+ W as matchMinimatch,
46
+ j as normalizeMinimatch,
47
+ q as normalizePath,
48
+ w as removeEntry,
49
+ C as resolvePath,
50
+ V as safeCloseSyncHandle,
51
+ _ as splitPath,
52
+ G as validateReadWriteArgs,
53
+ J as withLock
54
+ };
55
+ //# sourceMappingURL=index.async.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.async.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}