opfs-worker 2.0.0 → 2.1.1

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 (134) hide show
  1. package/README.md +64 -428
  2. package/dist/BaseOPFS-BusBkyJX.js +2114 -0
  3. package/dist/BaseOPFS-BusBkyJX.js.map +1 -0
  4. package/dist/BaseOPFS-CYwrD7-q.cjs +4 -0
  5. package/dist/BaseOPFS-CYwrD7-q.cjs.map +1 -0
  6. package/dist/OPFSAsync-B2dR-2VR.cjs +2 -0
  7. package/dist/OPFSAsync-B2dR-2VR.cjs.map +1 -0
  8. package/dist/OPFSAsync-CO44W23e.js +124 -0
  9. package/dist/OPFSAsync-CO44W23e.js.map +1 -0
  10. package/dist/OPFSFacade-CEaSqTut.js +308 -0
  11. package/dist/OPFSFacade-CEaSqTut.js.map +1 -0
  12. package/dist/OPFSFacade-hrNXCn6w.cjs +2 -0
  13. package/dist/OPFSFacade-hrNXCn6w.cjs.map +1 -0
  14. package/dist/OPFSSync-BPrNtvFS.cjs +2 -0
  15. package/dist/OPFSSync-BPrNtvFS.cjs.map +1 -0
  16. package/dist/OPFSSync-D7obTsl3.js +208 -0
  17. package/dist/OPFSSync-D7obTsl3.js.map +1 -0
  18. package/dist/assets/dedicated.worker-DW6UqFo0.js.map +1 -0
  19. package/dist/{OPFSWorker.d.ts → core/BaseOPFS.d.ts} +53 -292
  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-DdhJYoC0.js +10 -0
  26. package/dist/createOPFSAsync-DdhJYoC0.js.map +1 -0
  27. package/dist/createOPFSAsync-DyWpvmL-.cjs +2 -0
  28. package/dist/createOPFSAsync-DyWpvmL-.cjs.map +1 -0
  29. package/dist/createOPFSDedicated-BwTc0NV5.js +2407 -0
  30. package/dist/createOPFSDedicated-BwTc0NV5.js.map +1 -0
  31. package/dist/createOPFSDedicated-CEeRexom.cjs +2357 -0
  32. package/dist/createOPFSDedicated-CEeRexom.cjs.map +1 -0
  33. package/dist/createOPFSShared-BSFWsoLe.js +23 -0
  34. package/dist/createOPFSShared-BSFWsoLe.js.map +1 -0
  35. package/dist/createOPFSShared-BoCft_BS.cjs +2 -0
  36. package/dist/createOPFSShared-BoCft_BS.cjs.map +1 -0
  37. package/dist/dedicated.worker.js +2355 -0
  38. package/dist/dedicated.worker.js.map +1 -0
  39. package/dist/{OPFSFacade.d.ts → facade/OPFSFacade.d.ts} +51 -25
  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 +2240 -0
  78. package/dist/shared.worker.js.map +1 -0
  79. package/dist/types.d.ts +42 -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/api/backend.md +36 -0
  90. package/docs/api/create.md +82 -0
  91. package/docs/api/facade.md +53 -0
  92. package/docs/choosing-a-mode.md +41 -0
  93. package/docs/file-descriptors.md +46 -605
  94. package/docs/guides/async.md +36 -0
  95. package/docs/guides/dedicated.md +76 -0
  96. package/docs/guides/hashing.md +34 -0
  97. package/docs/guides/pure.md +46 -0
  98. package/docs/guides/sharedworker.md +57 -0
  99. package/docs/guides/streaming.md +185 -0
  100. package/docs/guides/watching.md +35 -0
  101. package/docs/migration.md +41 -0
  102. package/docs/types.md +105 -153
  103. package/package.json +53 -4
  104. package/src/{OPFSWorker.ts → core/BaseOPFS.ts} +159 -629
  105. package/src/core/OPFSAsync.ts +248 -0
  106. package/src/core/OPFSSync.ts +460 -0
  107. package/src/{OPFSFacade.ts → facade/OPFSFacade.ts} +134 -58
  108. package/src/facade/createOPFSAsync.ts +22 -0
  109. package/src/facade/createOPFSDedicated.ts +23 -0
  110. package/src/facade/createOPFSShared.ts +30 -0
  111. package/src/index.async.ts +11 -0
  112. package/src/index.pure.ts +3 -2
  113. package/src/index.sharedworker.ts +12 -0
  114. package/src/index.sync.ts +12 -0
  115. package/src/index.ts +37 -8
  116. package/src/types.ts +45 -4
  117. package/src/worker/createDedicatedWorker.ts +74 -0
  118. package/src/worker/createSharedWorker.ts +67 -0
  119. package/src/worker/dedicated.worker.ts +13 -0
  120. package/src/worker/shared.worker.ts +17 -0
  121. package/dist/OPFSFacade.d.ts.map +0 -1
  122. package/dist/OPFSWorker.d.ts.map +0 -1
  123. package/dist/assets/worker.entry-DUlEoroc.js.map +0 -1
  124. package/dist/createOPFSWorker.d.ts +0 -17
  125. package/dist/createOPFSWorker.d.ts.map +0 -1
  126. package/dist/helpers-DNj8ZoMu.cjs +0 -4
  127. package/dist/helpers-DNj8ZoMu.cjs.map +0 -1
  128. package/dist/helpers-WY2jfbOT.js +0 -1427
  129. package/dist/helpers-WY2jfbOT.js.map +0 -1
  130. package/dist/worker.entry.d.ts +0 -2
  131. package/dist/worker.entry.d.ts.map +0 -1
  132. package/docs/api-reference.md +0 -815
  133. package/src/createOPFSWorker.ts +0 -57
  134. 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, ImportFileData, ImportFilesProgress, ImportFilesResult, 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
  */
@@ -154,9 +177,27 @@ export declare class OPFSFacade {
154
177
  */
155
178
  fsync(fd: number): Promise<void>;
156
179
  /**
157
- * Synchronize the file system with external data
180
+ * Read a file as a lazy, disk-backed `Blob` without copying the data to memory.
181
+ *
182
+ * Ideal for `URL.createObjectURL()`: the browser streams `<video>` / `<audio>`
183
+ * on demand instead of loading the whole file first.
184
+ */
185
+ readBlob(path: PathLike): Promise<Blob>;
186
+ /**
187
+ * Bulk-import files from `[path, data]` entries (strings, bytes, Blobs, or Files).
188
+ * Each entry is streamed via {@link importStream} / `writeStream` so large
189
+ * Blobs/Files are not fully buffered in memory.
190
+ *
191
+ * Accepts an array of tuples, a `Map`, or any iterable of `[path, data]` pairs.
192
+ * Returns written paths, count, and total bytes.
193
+ */
194
+ importFiles(entries: Iterable<[PathLike, ImportFileData]> | Map<string, ImportFileData>, options?: {
195
+ onProgress?: (progress: ImportFilesProgress) => void;
196
+ }): Promise<ImportFilesResult>;
197
+ /**
198
+ * @deprecated Use {@link importFiles} instead.
158
199
  */
159
- createIndex(entries: [PathLike, string | Uint8Array | Blob][]): Promise<void>;
200
+ createIndex(entries: Iterable<[PathLike, ImportFileData]> | Map<string, ImportFileData>): Promise<void>;
160
201
  /**
161
202
  * Read a file as text with automatic encoding detection
162
203
  */
@@ -170,23 +211,8 @@ export declare class OPFSFacade {
170
211
  */
171
212
  appendText(path: PathLike, text: string, encoding?: Encoding): Promise<void>;
172
213
  /**
173
- * Dispose of resources, detach the worker and clean up the file system instance
214
+ * Dispose of resources, detach the backend and clean up the file system instance
174
215
  */
175
216
  dispose(): void;
176
217
  }
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
218
  //# 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-CYwrD7-q.cjs"),e=require("./OPFSAsync-B2dR-2VR.cjs"),a=require("./OPFSFacade-hrNXCn6w.cjs"),t=require("./createOPFSAsync-DyWpvmL-.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-BusBkyJX.js";
2
+ import { O as U } from "./OPFSAsync-CO44W23e.js";
3
+ import { O as Y } from "./OPFSFacade-CEaSqTut.js";
4
+ import { c as Z } from "./createOPFSAsync-DdhJYoC0.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":";;;;"}