opfs-worker 2.1.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.
- package/README.md +40 -27
- package/dist/{BaseOPFS-Cylz6ijk.js → BaseOPFS-BusBkyJX.js} +436 -358
- package/dist/BaseOPFS-BusBkyJX.js.map +1 -0
- package/dist/{BaseOPFS-BPw9AIQ-.cjs → BaseOPFS-CYwrD7-q.cjs} +4 -4
- package/dist/BaseOPFS-CYwrD7-q.cjs.map +1 -0
- package/dist/{OPFSAsync-s2P7y3sw.cjs → OPFSAsync-B2dR-2VR.cjs} +2 -2
- package/dist/{OPFSAsync-s2P7y3sw.cjs.map → OPFSAsync-B2dR-2VR.cjs.map} +1 -1
- package/dist/{OPFSAsync-BKSAJJeh.js → OPFSAsync-CO44W23e.js} +2 -2
- package/dist/{OPFSAsync-BKSAJJeh.js.map → OPFSAsync-CO44W23e.js.map} +1 -1
- package/dist/OPFSFacade-CEaSqTut.js +308 -0
- package/dist/OPFSFacade-CEaSqTut.js.map +1 -0
- package/dist/OPFSFacade-hrNXCn6w.cjs +2 -0
- package/dist/OPFSFacade-hrNXCn6w.cjs.map +1 -0
- package/dist/{OPFSSync-C7KBepe_.cjs → OPFSSync-BPrNtvFS.cjs} +2 -2
- package/dist/{OPFSSync-C7KBepe_.cjs.map → OPFSSync-BPrNtvFS.cjs.map} +1 -1
- package/dist/{OPFSSync-CsSQkpk5.js → OPFSSync-D7obTsl3.js} +2 -2
- package/dist/{OPFSSync-CsSQkpk5.js.map → OPFSSync-D7obTsl3.js.map} +1 -1
- package/dist/assets/dedicated.worker-DW6UqFo0.js.map +1 -0
- package/dist/core/BaseOPFS.d.ts +38 -7
- package/dist/core/BaseOPFS.d.ts.map +1 -1
- package/dist/createOPFSAsync-DdhJYoC0.js +10 -0
- package/dist/{createOPFSAsync-Y4Mg6qte.js.map → createOPFSAsync-DdhJYoC0.js.map} +1 -1
- package/dist/createOPFSAsync-DyWpvmL-.cjs +2 -0
- package/dist/{createOPFSAsync-BwKDmHsy.cjs.map → createOPFSAsync-DyWpvmL-.cjs.map} +1 -1
- package/dist/{createOPFSDedicated-CsnV6MLP.js → createOPFSDedicated-BwTc0NV5.js} +289 -215
- package/dist/{createOPFSDedicated-CsnV6MLP.js.map → createOPFSDedicated-BwTc0NV5.js.map} +1 -1
- package/dist/{createOPFSDedicated-pKTRWLdz.cjs → createOPFSDedicated-CEeRexom.cjs} +286 -212
- package/dist/{createOPFSDedicated-pKTRWLdz.cjs.map → createOPFSDedicated-CEeRexom.cjs.map} +1 -1
- package/dist/{createOPFSShared-CGdd__PH.js → createOPFSShared-BSFWsoLe.js} +2 -2
- package/dist/{createOPFSShared-CGdd__PH.js.map → createOPFSShared-BSFWsoLe.js.map} +1 -1
- package/dist/{createOPFSShared-CskROt7U.cjs → createOPFSShared-BoCft_BS.cjs} +2 -2
- package/dist/{createOPFSShared-CskROt7U.cjs.map → createOPFSShared-BoCft_BS.cjs.map} +1 -1
- package/dist/dedicated.worker.js +282 -208
- package/dist/dedicated.worker.js.map +1 -1
- package/dist/facade/OPFSFacade.d.ts +21 -3
- package/dist/facade/OPFSFacade.d.ts.map +1 -1
- package/dist/index.async.cjs +1 -1
- package/dist/index.async.js +4 -4
- package/dist/index.cjs +1 -1
- package/dist/index.js +7 -7
- package/dist/index.pure.cjs +1 -1
- package/dist/index.pure.js +3 -3
- package/dist/index.sharedworker.cjs +1 -1
- package/dist/index.sharedworker.js +4 -4
- package/dist/index.sync.cjs +1 -1
- package/dist/index.sync.js +4 -4
- package/dist/shared.worker.js +430 -356
- package/dist/shared.worker.js.map +1 -1
- package/dist/types.d.ts +33 -0
- package/dist/types.d.ts.map +1 -1
- package/docs/api/backend.md +3 -3
- package/docs/api/create.md +1 -1
- package/docs/api/facade.md +28 -27
- package/docs/choosing-a-mode.md +6 -6
- package/docs/file-descriptors.md +46 -604
- package/docs/guides/async.md +2 -2
- package/docs/guides/dedicated.md +5 -5
- package/docs/guides/hashing.md +2 -2
- package/docs/guides/pure.md +3 -3
- package/docs/guides/sharedworker.md +1 -1
- package/docs/guides/streaming.md +145 -11
- package/docs/guides/watching.md +3 -3
- package/docs/migration.md +3 -3
- package/docs/types.md +92 -154
- package/package.json +12 -2
- package/src/core/BaseOPFS.ts +148 -25
- package/src/facade/OPFSFacade.ts +51 -4
- package/src/types.ts +37 -0
- package/dist/BaseOPFS-BPw9AIQ-.cjs.map +0 -1
- package/dist/BaseOPFS-Cylz6ijk.js.map +0 -1
- package/dist/OPFSFacade-DePnNRgt.cjs +0 -2
- package/dist/OPFSFacade-DePnNRgt.cjs.map +0 -1
- package/dist/OPFSFacade-XohWlHuu.js +0 -281
- package/dist/OPFSFacade-XohWlHuu.js.map +0 -1
- package/dist/assets/dedicated.worker-nY3tK4zi.js.map +0 -1
- package/dist/createOPFSAsync-BwKDmHsy.cjs +0 -2
- package/dist/createOPFSAsync-Y4Mg6qte.js +0 -10
- package/docs/README.md +0 -30
package/dist/types.d.ts
CHANGED
|
@@ -56,6 +56,39 @@ export interface OPFSOptions {
|
|
|
56
56
|
/** Custom name for the broadcast channel (default: 'opfs-worker') */
|
|
57
57
|
broadcastChannel?: string | BroadcastChannel | null;
|
|
58
58
|
}
|
|
59
|
+
/** Payload accepted by {@link importFiles} for a single entry. */
|
|
60
|
+
export type ImportFileData = string | Uint8Array | Blob;
|
|
61
|
+
/**
|
|
62
|
+
* Entries for {@link importFiles}: an array of `[path, data]` tuples, a `Map`,
|
|
63
|
+
* or any iterable that yields the same pairs.
|
|
64
|
+
*/
|
|
65
|
+
export type ImportFilesEntries = Iterable<[string, ImportFileData]> | Map<string, ImportFileData>;
|
|
66
|
+
/** Progress event fired while {@link importFiles} writes entries. */
|
|
67
|
+
export interface ImportFilesProgress {
|
|
68
|
+
/** Path of the file currently being written */
|
|
69
|
+
path: string;
|
|
70
|
+
/** 0-based index of the current file */
|
|
71
|
+
index: number;
|
|
72
|
+
/** Total number of entries in this import */
|
|
73
|
+
count: number;
|
|
74
|
+
/** Bytes written for the current file so far */
|
|
75
|
+
bytesWritten: number;
|
|
76
|
+
/** Size of the current file in bytes */
|
|
77
|
+
bytesTotal: number;
|
|
78
|
+
/** Bytes written across all files so far */
|
|
79
|
+
totalBytesWritten: number;
|
|
80
|
+
/** Sum of all entry sizes in bytes */
|
|
81
|
+
totalBytes: number;
|
|
82
|
+
}
|
|
83
|
+
/** Result of a finished {@link importFiles} call. */
|
|
84
|
+
export interface ImportFilesResult {
|
|
85
|
+
/** Paths written, in import order */
|
|
86
|
+
paths: string[];
|
|
87
|
+
/** Number of files imported (`paths.length`) */
|
|
88
|
+
count: number;
|
|
89
|
+
/** Total bytes written across all files */
|
|
90
|
+
bytesWritten: number;
|
|
91
|
+
}
|
|
59
92
|
export interface RenameOptions {
|
|
60
93
|
/** Whether to overwrite existing files (default: false) */
|
|
61
94
|
overwrite?: boolean;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,GAAG,CAAC;AAEpC,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,WAAW,CAAC;AAExC,MAAM,MAAM,cAAc,GAAG,OAAO,GAChC,MAAM,GACN,OAAO,GACP,SAAS,GACT,UAAU,GACV,MAAM,GACN,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,KAAK,CAAC;AAEV,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;AAEtC,MAAM,MAAM,QAAQ,GAAG,cAAc,GAAG,cAAc,CAAC;AAEvD,MAAM,WAAW,QAAQ;IACrB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;CACxB;AAED,oBAAY,cAAc;IACtB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,OAAO,YAAY;CACtB;AAED,MAAM,WAAW,UAAU;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,cAAc,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,YAAY,EAAE,QAAQ,EAAE,CAAC;AAEzB;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG;KAAG,CAAC,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC;CAAE,CAAC;AAE7D,MAAM,WAAW,WAAW;IACxB,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kFAAkF;IAClF,aAAa,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IACpF,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAAC;CACvD;AAED,MAAM,WAAW,aAAa;IAC1B,2DAA2D;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IACzB,mDAAmD;IACnD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACrB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/docs/api/backend.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# Backend API
|
|
2
2
|
|
|
3
|
-
Classes from `opfs-worker/pure` (also re-exported from `/sync`, `/async`, `/sharedworker`
|
|
3
|
+
Classes from `opfs-worker/pure` (also re-exported from `/sync`, `/async`, `/sharedworker`). Bytes only — no encoding helpers.
|
|
4
4
|
|
|
5
5
|
```
|
|
6
|
-
BaseOPFS mkdir, stat, readDir, watch, index,
|
|
6
|
+
BaseOPFS mkdir, stat, readDir, watch, index, importFiles, …
|
|
7
7
|
├─ OPFSSync sync access handles + FDs + writeStream
|
|
8
8
|
└─ OPFSAsync getFile / createWritable + writeStream (no FDs)
|
|
9
9
|
```
|
|
@@ -12,7 +12,7 @@ BaseOPFS mkdir, stat, readDir, watch, index, createIndex, …
|
|
|
12
12
|
|
|
13
13
|
## Shared methods (`BaseOPFS`)
|
|
14
14
|
|
|
15
|
-
Path ops: `mkdir`, `stat`, `readDir`, `exists`, `clear`, `remove`, `rename`, `copy`, `realpath`, `index`, `
|
|
15
|
+
Path ops: `mkdir`, `stat`, `readDir`, `exists`, `clear`, `remove`, `rename`, `copy`, `realpath`, `index`, `readBlob`, `importFiles`, `watch`, `unwatch`, `setOptions`, `dispose`.
|
|
16
16
|
|
|
17
17
|
Subclasses implement:
|
|
18
18
|
|
package/docs/api/create.md
CHANGED
package/docs/api/facade.md
CHANGED
|
@@ -1,45 +1,46 @@
|
|
|
1
1
|
# OPFSFacade
|
|
2
2
|
|
|
3
|
-
Node-
|
|
3
|
+
Node-like API: encodings, auto-detect by extension, path as `string` or `URL`. Usually from [`createOPFS*`](./create.md); or `new OPFSFacade({ fs, worker?, dispose })`.
|
|
4
4
|
|
|
5
5
|
`fs.promises === fs`.
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## Backend access
|
|
8
8
|
|
|
9
|
-
| Field
|
|
10
|
-
|
|
|
9
|
+
| Field | Notes |
|
|
10
|
+
| --------- | ---------------------------------------------------------------------------- |
|
|
11
11
|
| `backend` | Raw [`OPFSApi`](../types.md#opfsapi) — same methods without encoding helpers |
|
|
12
|
-
| `worker`
|
|
12
|
+
| `worker` | `Worker` / `SharedWorker` if this facade owns one; `undefined` for async |
|
|
13
13
|
|
|
14
14
|
## File I/O
|
|
15
15
|
|
|
16
|
-
| Method
|
|
17
|
-
|
|
|
18
|
-
| `readFile` / `writeFile` / `appendFile` | Encoding as string, `{ encoding }`, or auto
|
|
19
|
-
| `
|
|
20
|
-
| `
|
|
16
|
+
| Method | Notes |
|
|
17
|
+
| --------------------------------------- | --------------------------------------------------------------------------------------------- |
|
|
18
|
+
| `readFile` / `writeFile` / `appendFile` | Encoding as string, `{ encoding }`, or auto |
|
|
19
|
+
| `readBlob` | Disk-backed `Blob`, nothing copied into memory — [streaming](../guides/streaming.md) |
|
|
20
|
+
| `importStream` | Stream / Blob / File — [streaming](../guides/streaming.md) |
|
|
21
|
+
| `importFiles` | Bulk array / `Map` of `[path, data]` with rich progress — [streaming](../guides/streaming.md) |
|
|
22
|
+
| `readText` / `writeText` / `appendText` | UTF-8 by default |
|
|
21
23
|
|
|
22
24
|
## Directories & metadata
|
|
23
25
|
|
|
24
|
-
| Method
|
|
25
|
-
|
|
|
26
|
-
| `mkdir`
|
|
27
|
-
| `readDir`
|
|
28
|
-
| `stat` / `exists` / `realpath` |
|
|
29
|
-
| `remove`
|
|
30
|
-
| `rename` / `copy`
|
|
31
|
-
| `clear`
|
|
32
|
-
| `index`
|
|
33
|
-
| `createIndex` | Bulk `[path, string \| Uint8Array \| Blob][]` |
|
|
26
|
+
| Method | Notes |
|
|
27
|
+
| ------------------------------ | ----------------------------------------------------- |
|
|
28
|
+
| `mkdir` | `{ recursive }`; numeric mode is accepted and ignored |
|
|
29
|
+
| `readDir` | `DirentData[]` |
|
|
30
|
+
| `stat` / `exists` / `realpath` | |
|
|
31
|
+
| `remove` | `{ recursive, force }` |
|
|
32
|
+
| `rename` / `copy` | `copy` takes `{ recursive, overwrite }` |
|
|
33
|
+
| `clear` | Empty a dir (default `/`) |
|
|
34
|
+
| `index` | `Map<path, FileStat>` |
|
|
34
35
|
|
|
35
36
|
## Watch & lifecycle
|
|
36
37
|
|
|
37
|
-
| Method
|
|
38
|
-
|
|
|
39
|
-
| `watch`
|
|
40
|
-
| `unwatch`
|
|
41
|
-
| `setOptions` | [
|
|
42
|
-
| `dispose`
|
|
38
|
+
| Method | Notes |
|
|
39
|
+
| ------------ | ----------------------------------- |
|
|
40
|
+
| `watch` | Returns `() => void` |
|
|
41
|
+
| `unwatch` | |
|
|
42
|
+
| `setOptions` | See [hashing](../guides/hashing.md) |
|
|
43
|
+
| `dispose` | Dispose the backend |
|
|
43
44
|
|
|
44
45
|
## Node aliases
|
|
45
46
|
|
|
@@ -49,4 +50,4 @@ Node-ish API: encodings, auto-detect by extension, path as `string` or `URL`. Yo
|
|
|
49
50
|
|
|
50
51
|
`open`, `read`, `write`, `close`, `fstat`, `ftruncate`, `fsync` — dedicated / `OPFSSync` only. Async throws `ENOTSUP`.
|
|
51
52
|
|
|
52
|
-
|
|
53
|
+
Details: [file descriptors](../file-descriptors.md).
|
package/docs/choosing-a-mode.md
CHANGED
|
@@ -16,14 +16,14 @@ Sync access handles only work in a **dedicated** worker. Async writes (`createWr
|
|
|
16
16
|
|
|
17
17
|
## Modes
|
|
18
18
|
|
|
19
|
-
| | API |
|
|
19
|
+
| | API | When | FD | Comlink |
|
|
20
20
|
| ----- | --------------------------------------------------------- | ------------------------------- | --------- | ------- |
|
|
21
|
-
| **1** | [`createOPFSDedicated()`](./guides/dedicated.md) |
|
|
22
|
-
| **2** | [`OPFSSync` / `OPFSAsync` from `/pure`](./guides/pure.md) |
|
|
23
|
-
| **3** | [`createOPFSAsync()`](./guides/async.md) |
|
|
24
|
-
| **4** | [`createOPFSShared()`](./guides/sharedworker.md) |
|
|
21
|
+
| **1** | [`createOPFSDedicated()`](./guides/dedicated.md) | Normal `fs`-like API | yes | yes |
|
|
22
|
+
| **2** | [`OPFSSync` / `OPFSAsync` from `/pure`](./guides/pure.md) | Already in a worker | sync only | no |
|
|
23
|
+
| **3** | [`createOPFSAsync()`](./guides/async.md) | No worker | no | no |
|
|
24
|
+
| **4** | [`createOPFSShared()`](./guides/sharedworker.md) | One fs shared by all tabs | no | yes |
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
For the raw bytes API or the browser Worker, use `fs.backend` / `fs.worker` on any facade.
|
|
27
27
|
|
|
28
28
|
If size matters, import from `/sync`, `/async`, or `/sharedworker` instead of the main barrel.
|
|
29
29
|
|