opfs-worker 1.2.3 → 1.3.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.
package/dist/raw.js CHANGED
@@ -1,6 +1,6 @@
1
- import { expose as A, transfer as m } from "comlink";
2
- import { O as o, o as g, g as C, n as F, s as p, P as b, w as f, F as E, j as H, W as l, h as v, k as D, u as $, y as T, r as S, l as O, C as N, A as I, z as x, B as P, f as u, x as _ } from "./helpers-BXhw_-Ar.js";
3
- class k {
1
+ import { expose as k, transfer as p } from "comlink";
2
+ import { V as E, u as D, n as z, h as P, r as F, s as x, P as M, w as m, E as d, o as $, c as b, j as S, W as h, p as H, q as v, B as T, O as f, m as l, D as _, H as N, x as A, A as C, g as B, t as R, M as U, K as I, J as O, L as W, l as g, G as L } from "./helpers-BuGfPAg0.js";
3
+ class j {
4
4
  /** Root directory handle for the file system */
5
5
  root;
6
6
  /** Map of watched paths and options */
@@ -14,7 +14,7 @@ class k {
14
14
  root: "/",
15
15
  namespace: "",
16
16
  maxFileSize: 50 * 1024 * 1024,
17
- hashAlgorithm: !1,
17
+ hashAlgorithm: "etag",
18
18
  broadcastChannel: "opfs-worker"
19
19
  };
20
20
  /** Map of open file descriptors to their metadata */
@@ -28,7 +28,7 @@ class k {
28
28
  _getFileDescriptor(t) {
29
29
  const e = this.openFiles.get(t);
30
30
  if (!e)
31
- throw new o(`Invalid file descriptor: ${t}`, "EBADF");
31
+ throw new E("descriptor", `Invalid file descriptor: ${t}`);
32
32
  return e;
33
33
  }
34
34
  /**
@@ -44,12 +44,12 @@ class k {
44
44
  if (!this.options.broadcastChannel)
45
45
  return;
46
46
  const e = t.path;
47
- if (![...this.watchers.values()].some((r) => g(e, r.pattern) && r.include.some((s) => s && g(e, s)) && !r.exclude.some((s) => s && g(e, s))))
47
+ if (![...this.watchers.values()].some((r) => D(e, r.pattern) && r.include.some((s) => s && D(e, s)) && !r.exclude.some((s) => s && D(e, s))))
48
48
  return;
49
- let a;
49
+ let i;
50
50
  if (this.options.hashAlgorithm)
51
51
  try {
52
- a = (await this.stat(e)).hash;
52
+ i = (await this.stat(e)).hash;
53
53
  } catch {
54
54
  }
55
55
  try {
@@ -58,7 +58,7 @@ class k {
58
58
  namespace: this.options.namespace,
59
59
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
60
60
  ...t,
61
- ...a && { hash: a }
61
+ ...i && { hash: i }
62
62
  };
63
63
  this.broadcastChannel.postMessage(r);
64
64
  } catch (r) {
@@ -76,7 +76,7 @@ class k {
76
76
  * @throws {OPFSError} If OPFS is not supported in the current browser
77
77
  */
78
78
  constructor(t) {
79
- C(), t && this.setOptions(t);
79
+ z(), t && this.setOptions(t);
80
80
  }
81
81
  /**
82
82
  * Initialize the file system within a given directory
@@ -101,12 +101,12 @@ class k {
101
101
  */
102
102
  async mount() {
103
103
  const t = this.options.root;
104
- return this.mountingPromise && await this.mountingPromise, this.mountingPromise = new Promise(async (e, i) => {
104
+ return this.mountingPromise && await this.mountingPromise, this.mountingPromise = new Promise(async (e, a) => {
105
105
  try {
106
- const a = await navigator.storage.getDirectory();
107
- this.root = t === "/" ? a : await this.getDirectoryHandle(t, !0, a), e(!0);
108
- } catch (a) {
109
- i(new o("Failed to initialize OPFS", "INIT_FAILED", t, a));
106
+ const i = await navigator.storage.getDirectory();
107
+ this.root = t === "/" ? i : await this.getDirectoryHandle(t, !0, i), e(!0);
108
+ } catch (i) {
109
+ a(new P(t, i));
110
110
  } finally {
111
111
  this.mountingPromise = null;
112
112
  }
@@ -143,10 +143,10 @@ class k {
143
143
  * const docsDir2 = await fs.getDirectoryHandle(['users', 'john', 'documents'], true);
144
144
  * ```
145
145
  */
146
- async getDirectoryHandle(t, e = !1, i = this.root) {
147
- const a = Array.isArray(t) ? t : p(t);
148
- let r = i;
149
- for (const s of a)
146
+ async getDirectoryHandle(t, e = !1, a = this.root) {
147
+ const i = Array.isArray(t) ? t : x(t);
148
+ let r = a;
149
+ for (const s of i)
150
150
  r = await r.getDirectoryHandle(s, { create: e });
151
151
  return r;
152
152
  }
@@ -169,12 +169,12 @@ class k {
169
169
  * const fileHandle2 = await fs.getFileHandle(['config', 'settings.json'], true);
170
170
  * ```
171
171
  */
172
- async getFileHandle(t, e = !1, i = this.root) {
173
- const a = p(t);
174
- if (a.length === 0)
175
- throw new b("Path must not be empty", Array.isArray(t) ? t.join("/") : t);
176
- const r = a.pop();
177
- return (await this.getDirectoryHandle(a, e, i)).getFileHandle(r, { create: e });
172
+ async getFileHandle(t, e = !1, a = this.root) {
173
+ const i = x(t);
174
+ if (i.length === 0)
175
+ throw new M("Path must not be empty", Array.isArray(t) ? t.join("/") : t);
176
+ const r = i.pop();
177
+ return (await this.getDirectoryHandle(i, e, a)).getFileHandle(r, { create: e });
178
178
  }
179
179
  /**
180
180
  * Get a complete index of all files and directories in the file system
@@ -196,10 +196,10 @@ class k {
196
196
  * ```
197
197
  */
198
198
  async index() {
199
- const t = /* @__PURE__ */ new Map(), e = async (i) => {
200
- const a = await this.readDir(i);
201
- for (const r of a) {
202
- const s = `${i === "/" ? "" : i}/${r.name}`;
199
+ const t = /* @__PURE__ */ new Map(), e = async (a) => {
200
+ const i = await this.readDir(a);
201
+ for (const r of i) {
202
+ const s = `${a === "/" ? "" : a}/${r.name}`;
203
203
  try {
204
204
  const n = await this.stat(s);
205
205
  t.set(s, n), n.isDirectory && await e(s);
@@ -239,17 +239,17 @@ class k {
239
239
  async readFile(t) {
240
240
  await this.mount();
241
241
  try {
242
- return await f(t, "shared", async () => {
242
+ return await m(t, "shared", async () => {
243
243
  const e = await this.open(t);
244
244
  try {
245
- const { size: i } = await this.fstat(e), a = new Uint8Array(i);
246
- return i > 0 && await this.read(e, a, 0, i, 0), m(a, [a.buffer]);
245
+ const { size: a } = await this.fstat(e), i = new Uint8Array(a);
246
+ return a > 0 && await this.read(e, i, 0, a, 0), p(i, [i.buffer]);
247
247
  } finally {
248
248
  await this.close(e);
249
249
  }
250
250
  });
251
251
  } catch (e) {
252
- throw new E(t, e);
252
+ throw new d("file", t, e);
253
253
  }
254
254
  }
255
255
  /**
@@ -276,15 +276,15 @@ class k {
276
276
  */
277
277
  async writeFile(t, e) {
278
278
  await this.mount();
279
- const i = e instanceof Uint8Array ? e : new Uint8Array(e);
280
- await f(t, "exclusive", async () => {
281
- const a = await this.exists(t), r = await this.open(t, { create: !0, truncate: !0 });
279
+ const a = e instanceof Uint8Array ? e : new Uint8Array(e);
280
+ await m(t, "exclusive", async () => {
281
+ const i = await this.exists(t), r = await this.open(t, { create: !0, truncate: !0 });
282
282
  try {
283
- await this.write(r, i, 0, i.length, null, !1), await this.fsync(r);
283
+ await this.write(r, a, 0, a.length, null, !1), await this.fsync(r);
284
284
  } finally {
285
285
  await this.close(r);
286
286
  }
287
- await this.notifyChange({ path: t, type: a ? l.Changed : l.Added, isDirectory: !1 });
287
+ await this.notifyChange({ path: t, type: i ? h.Changed : h.Added, isDirectory: !1 });
288
288
  });
289
289
  }
290
290
  /**
@@ -311,16 +311,16 @@ class k {
311
311
  */
312
312
  async appendFile(t, e) {
313
313
  await this.mount();
314
- const i = e instanceof Uint8Array ? e : new Uint8Array(e);
315
- await f(t, "exclusive", async () => {
316
- const a = await this.open(t, { create: !0 });
314
+ const a = e instanceof Uint8Array ? e : new Uint8Array(e);
315
+ await m(t, "exclusive", async () => {
316
+ const i = await this.open(t, { create: !0 });
317
317
  try {
318
- const { size: r } = await this.fstat(a);
319
- await this.write(a, i, 0, i.length, r, !1), await this.fsync(a);
318
+ const { size: r } = await this.fstat(i);
319
+ await this.write(i, a, 0, a.length, r, !1), await this.fsync(i);
320
320
  } finally {
321
- await this.close(a);
321
+ await this.close(i);
322
322
  }
323
- await this.notifyChange({ path: t, type: l.Changed, isDirectory: !1 });
323
+ await this.notifyChange({ path: t, type: h.Changed, isDirectory: !1 });
324
324
  });
325
325
  }
326
326
  /**
@@ -346,22 +346,17 @@ class k {
346
346
  */
347
347
  async mkdir(t, e) {
348
348
  await this.mount();
349
- const i = e?.recursive ?? !1, a = p(t);
349
+ const a = e?.recursive ?? !1, i = x(t);
350
350
  let r = this.root;
351
- for (let s = 0; s < a.length; s++) {
352
- const n = a[s];
351
+ for (let s = 0; s < i.length; s++) {
352
+ const n = i[s];
353
353
  try {
354
- r = await r.getDirectoryHandle(n, { create: i || s === a.length - 1 });
355
- } catch (c) {
356
- throw c.name === "NotFoundError" ? new o(
357
- `Parent directory does not exist: ${H(a.slice(0, s + 1))}`,
358
- "ENOENT",
359
- void 0,
360
- c
361
- ) : c.name === "TypeMismatchError" ? new o(`Path segment is not a directory: ${n}`, "ENOTDIR", void 0, c) : new o("Failed to create directory", "MKDIR_FAILED", void 0, c);
354
+ r = await r.getDirectoryHandle(n, { create: a || s === i.length - 1 });
355
+ } catch (o) {
356
+ throw o.name === "NotFoundError" ? new d("directory", $(i.slice(0, s + 1)), o) : o.name === "TypeMismatchError" ? new b("directory", "file", n, o) : new S("create directory", n, o);
362
357
  }
363
358
  }
364
- await this.notifyChange({ path: t, type: l.Added, isDirectory: !0 });
359
+ await this.notifyChange({ path: t, type: h.Added, isDirectory: !0 });
365
360
  }
366
361
  /**
367
362
  * Get file or directory statistics
@@ -395,9 +390,11 @@ class k {
395
390
  isFile: !1,
396
391
  isDirectory: !0
397
392
  };
398
- const e = v(t), i = await this.getDirectoryHandle(D(t), !1), a = this.options.hashAlgorithm !== null;
393
+ const e = H(t);
394
+ let a;
399
395
  try {
400
- const s = await (await i.getFileHandle(e, { create: !1 })).getFile(), n = {
396
+ a = await this.getDirectoryHandle(v(t), !1);
397
+ const i = this.options.hashAlgorithm, s = await (await a.getFileHandle(e, { create: !1 })).getFile(), n = {
401
398
  kind: "file",
402
399
  size: s.size,
403
400
  mtime: new Date(s.lastModified).toISOString(),
@@ -405,20 +402,24 @@ class k {
405
402
  isFile: !0,
406
403
  isDirectory: !1
407
404
  };
408
- if (a && this.options.hashAlgorithm)
405
+ if (i === "etag")
406
+ n.hash = `${s.lastModified.toString(36)}-${s.size.toString(36)}`;
407
+ else if (typeof i == "string")
409
408
  try {
410
- const c = await $(s, this.options.hashAlgorithm, this.options.maxFileSize);
411
- n.hash = c;
412
- } catch (c) {
413
- console.warn(`Failed to calculate hash for ${t}:`, c);
409
+ const o = await T(s, i, this.options.maxFileSize);
410
+ n.hash = o;
411
+ } catch (o) {
412
+ console.warn(`Failed to calculate hash for ${t}:`, o);
414
413
  }
415
414
  return n;
416
- } catch (r) {
417
- if (r.name !== "TypeMismatchError" && r.name !== "NotFoundError")
418
- throw new o("Failed to stat (file)", "STAT_FAILED", void 0, r);
415
+ } catch (i) {
416
+ if (i.name === "NotFoundError")
417
+ throw new d("file", t, i);
418
+ if (i.name !== "TypeMismatchError")
419
+ throw new S("stat", t, i);
419
420
  }
420
421
  try {
421
- return await i.getDirectoryHandle(e, { create: !1 }), {
422
+ return await a.getDirectoryHandle(e, { create: !1 }), {
422
423
  kind: "directory",
423
424
  size: 0,
424
425
  mtime: (/* @__PURE__ */ new Date(0)).toISOString(),
@@ -426,8 +427,8 @@ class k {
426
427
  isFile: !1,
427
428
  isDirectory: !0
428
429
  };
429
- } catch (r) {
430
- throw r.name === "NotFoundError" ? new o(`No such file or directory: ${t}`, "ENOENT", void 0, r) : new o("Failed to stat (directory)", "STAT_FAILED", void 0, r);
430
+ } catch (i) {
431
+ throw new S("stat", t, i);
431
432
  }
432
433
  }
433
434
  /**
@@ -450,17 +451,17 @@ class k {
450
451
  */
451
452
  async readDir(t) {
452
453
  await this.mount();
453
- const e = await this.getDirectoryHandle(t, !1), i = [];
454
- for await (const [a, r] of e.entries()) {
454
+ const e = await this.getDirectoryHandle(t, !1), a = [];
455
+ for await (const [i, r] of e.entries()) {
455
456
  const s = r.kind === "file";
456
- i.push({
457
- name: a,
457
+ a.push({
458
+ name: i,
458
459
  kind: r.kind,
459
460
  isFile: s,
460
461
  isDirectory: !s
461
462
  });
462
463
  }
463
- return i;
464
+ return a;
464
465
  }
465
466
  /**
466
467
  * Check if a file or directory exists
@@ -479,23 +480,23 @@ class k {
479
480
  async exists(t) {
480
481
  if (await this.mount(), t === "/")
481
482
  return !0;
482
- const e = v(t);
483
- let i = null;
483
+ const e = H(t);
484
+ let a = null;
484
485
  try {
485
- i = await this.getDirectoryHandle(D(t), !1);
486
- } catch (a) {
487
- if (i = null, a.name !== "NotFoundError" && a.name !== "TypeMismatchError")
488
- throw a;
486
+ a = await this.getDirectoryHandle(v(t), !1);
487
+ } catch (i) {
488
+ if (a = null, i.name !== "NotFoundError" && i.name !== "TypeMismatchError")
489
+ throw i;
489
490
  }
490
- if (!i || !e)
491
+ if (!a || !e)
491
492
  return !1;
492
493
  try {
493
- return await i.getFileHandle(e, { create: !1 }), !0;
494
- } catch (a) {
495
- if (a.name !== "NotFoundError" && a.name !== "TypeMismatchError")
496
- throw a;
494
+ return await a.getFileHandle(e, { create: !1 }), !0;
495
+ } catch (i) {
496
+ if (i.name !== "NotFoundError" && i.name !== "TypeMismatchError")
497
+ throw i;
497
498
  try {
498
- return await i.getDirectoryHandle(e, { create: !1 }), !0;
499
+ return await a.getDirectoryHandle(e, { create: !1 }), !0;
499
500
  } catch (r) {
500
501
  if (r.name !== "NotFoundError" && r.name !== "TypeMismatchError")
501
502
  throw r;
@@ -526,13 +527,13 @@ class k {
526
527
  await this.mount();
527
528
  try {
528
529
  const e = await this.readDir(t);
529
- for (const i of e) {
530
- const a = `${t === "/" ? "" : t}/${i.name}`;
531
- await this.remove(a, { recursive: !0 });
530
+ for (const a of e) {
531
+ const i = `${t === "/" ? "" : t}/${a.name}`;
532
+ await this.remove(i, { recursive: !0 });
532
533
  }
533
- await this.notifyChange({ path: t, type: l.Changed, isDirectory: !0 });
534
+ await this.notifyChange({ path: t, type: h.Changed, isDirectory: !0 });
534
535
  } catch (e) {
535
- throw e instanceof o ? e : new o(`Failed to clear directory: ${t}`, "CLEAR_FAILED", void 0, e);
536
+ throw e instanceof f ? e : l(e, { path: t, isDirectory: !0 });
536
537
  }
537
538
  }
538
539
  /**
@@ -561,9 +562,9 @@ class k {
561
562
  */
562
563
  async remove(t, e) {
563
564
  if (await this.mount(), t === "/")
564
- throw new o("Cannot remove root directory", "EROOT");
565
- const { recursive: i = !1, force: a = !1 } = e || {}, r = await this.getDirectoryHandle(D(t), !1), s = await this.stat(t);
566
- await T(r, t, { recursive: i, force: a }), await this.notifyChange({ path: t, type: l.Removed, isDirectory: s.isDirectory });
565
+ throw new _("root", t);
566
+ const { recursive: a = !1, force: i = !1 } = e || {}, r = await this.getDirectoryHandle(v(t), !1), s = await this.stat(t);
567
+ await N(r, t, { recursive: a, force: i }), await this.notifyChange({ path: t, type: h.Removed, isDirectory: s.isDirectory });
567
568
  }
568
569
  /**
569
570
  * Resolve a path to an absolute path
@@ -586,12 +587,12 @@ class k {
586
587
  async realpath(t) {
587
588
  await this.mount();
588
589
  try {
589
- const e = S(t);
590
+ const e = A(t);
590
591
  if (!await this.exists(e))
591
- throw new E(e);
592
+ throw new d("file", e);
592
593
  return e;
593
594
  } catch (e) {
594
- throw e instanceof o ? e : new o(`Failed to resolve path: ${t}`, "REALPATH_FAILED", void 0, e);
595
+ throw e instanceof f ? e : l(e, { path: t });
595
596
  }
596
597
  }
597
598
  /**
@@ -616,15 +617,15 @@ class k {
616
617
  * await fs.rename('/old/path/file.txt', '/new/path/renamed.txt', { overwrite: true });
617
618
  * ```
618
619
  */
619
- async rename(t, e, i) {
620
+ async rename(t, e, a) {
620
621
  await this.mount();
621
622
  try {
622
- const a = i?.overwrite ?? !1, r = await this.stat(t);
623
- if (await this.exists(e) && !a)
624
- throw new o(`Destination already exists: ${e}`, "EEXIST", void 0);
625
- await this.copy(t, e, { recursive: !0, overwrite: a }), await this.remove(t, { recursive: !0 }), await this.notifyChange({ path: t, type: l.Removed, isDirectory: r.isDirectory }), await this.notifyChange({ path: e, type: l.Added, isDirectory: r.isDirectory });
626
- } catch (a) {
627
- throw a instanceof o ? a : new o(`Failed to rename from ${t} to ${e}`, "RENAME_FAILED", void 0, a);
623
+ const i = a?.overwrite ?? !1, r = await this.stat(t);
624
+ if (await this.exists(e) && !i)
625
+ throw new C(e);
626
+ await this.copy(t, e, { recursive: !0, overwrite: i }), await this.remove(t, { recursive: !0 }), await this.notifyChange({ path: t, type: h.Removed, isDirectory: r.isDirectory }), await this.notifyChange({ path: e, type: h.Added, isDirectory: r.isDirectory });
627
+ } catch (i) {
628
+ throw i instanceof f ? i : l(i, { path: t });
628
629
  }
629
630
  }
630
631
  /**
@@ -652,29 +653,29 @@ class k {
652
653
  * await fs.copy('/source', '/dest', { recursive: true, overwrite: false });
653
654
  * ```
654
655
  */
655
- async copy(t, e, i) {
656
+ async copy(t, e, a) {
656
657
  await this.mount();
657
658
  try {
658
- const a = i?.recursive ?? !1, r = i?.overwrite ?? !0;
659
+ const i = a?.recursive ?? !1, r = a?.overwrite ?? !0;
659
660
  if (!await this.exists(t))
660
- throw new o(`Source does not exist: ${t}`, "ENOENT", void 0);
661
+ throw new d("source", t);
661
662
  if (await this.exists(e) && !r)
662
- throw new o(`Destination already exists: ${e}`, "EEXIST", void 0);
663
+ throw new C(e);
663
664
  if ((await this.stat(t)).isFile) {
664
- const h = await this.readFile(t);
665
- await this.writeFile(e, h);
665
+ const c = await this.readFile(t);
666
+ await this.writeFile(e, c);
666
667
  } else {
667
- if (!a)
668
- throw new o(`Cannot copy directory without recursive option: ${t}`, "EISDIR", void 0);
668
+ if (!i)
669
+ throw new b("file", "directory", t);
669
670
  await this.mkdir(e, { recursive: !0 });
670
- const h = await this.readDir(t);
671
- for (const w of h) {
672
- const d = `${t}/${w.name}`, y = `${e}/${w.name}`;
673
- await this.copy(d, y, { recursive: !0, overwrite: r });
671
+ const c = await this.readDir(t);
672
+ for (const w of c) {
673
+ const y = `${t}/${w.name}`, u = `${e}/${w.name}`;
674
+ await this.copy(y, u, { recursive: !0, overwrite: r });
674
675
  }
675
676
  }
676
- } catch (a) {
677
- throw a instanceof o ? a : new o(`Failed to copy from ${t} to ${e}`, "CP_FAILED", void 0, a);
677
+ } catch (i) {
678
+ throw i instanceof f ? i : l(i, { path: t });
678
679
  }
679
680
  }
680
681
  /**
@@ -704,13 +705,13 @@ class k {
704
705
  */
705
706
  async watch(t, e) {
706
707
  if (!this.options.broadcastChannel)
707
- throw new o("This instance is not configured to send events. Please specify options.broadcastChannel to enable watching.", "ENOENT");
708
- const i = {
709
- pattern: O(t, e?.recursive ?? !0),
708
+ throw new B("This instance is not configured to send events. Please specify options.broadcastChannel to enable watching.");
709
+ const a = {
710
+ pattern: R(t, e?.recursive ?? !0),
710
711
  include: Array.isArray(e?.include) ? e.include : [e?.include ?? "**"],
711
712
  exclude: Array.isArray(e?.exclude) ? e.exclude : [e?.exclude ?? ""]
712
713
  };
713
- this.watchers.set(t, i);
714
+ this.watchers.set(t, a);
714
715
  }
715
716
  /**
716
717
  * Stop watching a previously watched path
@@ -747,34 +748,34 @@ class k {
747
748
  */
748
749
  async open(t, e) {
749
750
  await this.mount();
750
- const { create: i = !1, exclusive: a = !1, truncate: r = !1 } = e || {}, s = F(S(t));
751
+ const { create: a = !1, exclusive: i = !1, truncate: r = !1 } = e || {}, s = F(A(t));
751
752
  try {
752
- return i && a ? await f(s, "exclusive", async () => {
753
+ return a && i ? await m(s, "exclusive", async () => {
753
754
  if (await this.exists(s))
754
- throw new o(`File already exists: ${s}`, "EEXIST", s);
755
- return this._openFile(s, i, r);
756
- }) : await this._openFile(s, i, r);
755
+ throw new C(s);
756
+ return this._openFile(s, a, r);
757
+ }) : await this._openFile(s, a, r);
757
758
  } catch (n) {
758
- throw n instanceof o ? n : new o(`Failed to open file: ${s}`, "OPEN_FAILED", s, n);
759
+ throw n instanceof f ? n : l(n, { path: s, isDirectory: !1 });
759
760
  }
760
761
  }
761
762
  /**
762
763
  * Internal method to open a file (without locking)
763
764
  * @private
764
765
  */
765
- async _openFile(t, e, i) {
766
- const a = await this.getFileHandle(t, e);
766
+ async _openFile(t, e, a) {
767
+ const i = await this.getFileHandle(t, e);
767
768
  try {
768
- await a.getFile();
769
+ await i.getFile();
769
770
  } catch (n) {
770
- throw n.name === "TypeMismatchError" ? new o(`Is a directory: ${t}`, "EISDIR", t) : n;
771
+ throw l(n, { path: t, isDirectory: !0 });
771
772
  }
772
- const r = await N(a, t);
773
- i && (r.truncate(0), r.flush());
773
+ const r = await U(i, t);
774
+ a && (r.truncate(0), r.flush());
774
775
  const s = this.nextFd++;
775
776
  return this.openFiles.set(s, {
776
777
  path: t,
777
- fileHandle: a,
778
+ fileHandle: i,
778
779
  syncHandle: r,
779
780
  position: 0
780
781
  }), s;
@@ -821,17 +822,17 @@ class k {
821
822
  * await fs.close(fd);
822
823
  * ```
823
824
  */
824
- async read(t, e, i, a, r) {
825
+ async read(t, e, a, i, r) {
825
826
  const s = this._getFileDescriptor(t);
826
- x(e.length, i, a, r);
827
+ O(e.length, a, i, r);
827
828
  try {
828
- const n = r ?? s.position, c = s.syncHandle.getSize(), { isEOF: h, actualLength: w } = P(n, a, c);
829
- if (h)
830
- return m({ bytesRead: 0, buffer: e }, [e.buffer]);
831
- const d = e.subarray(i, i + w), y = s.syncHandle.read(d, { at: n });
832
- return r == null && (s.position = n + y), m({ bytesRead: y, buffer: e }, [e.buffer]);
829
+ const n = r ?? s.position, o = s.syncHandle.getSize(), { isEOF: c, actualLength: w } = W(n, i, o);
830
+ if (c)
831
+ return p({ bytesRead: 0, buffer: e }, [e.buffer]);
832
+ const y = e.subarray(a, a + w), u = s.syncHandle.read(y, { at: n });
833
+ return r == null && (s.position = n + u), p({ bytesRead: u, buffer: e }, [e.buffer]);
833
834
  } catch (n) {
834
- throw u("read", t, s.path, n);
835
+ throw g("read", t, s.path, n);
835
836
  }
836
837
  }
837
838
  /**
@@ -855,14 +856,14 @@ class k {
855
856
  * await fs.close(fd);
856
857
  * ```
857
858
  */
858
- async write(t, e, i = 0, a, r, s = !0) {
859
- const n = this._getFileDescriptor(t), c = a ?? e.length - i;
860
- x(e.length, i, c, r);
859
+ async write(t, e, a = 0, i, r, s = !0) {
860
+ const n = this._getFileDescriptor(t), o = i ?? e.length - a;
861
+ O(e.length, a, o, r);
861
862
  try {
862
- const h = r ?? n.position, w = e.subarray(i, i + c), d = n.syncHandle.write(w, { at: h });
863
- return (r == null || r === n.position) && (n.position = h + d), s && await this.notifyChange({ path: n.path, type: l.Changed, isDirectory: !1 }), d;
864
- } catch (h) {
865
- throw u("write", t, n.path, h);
863
+ const c = r ?? n.position, w = e.subarray(a, a + o), y = n.syncHandle.write(w, { at: c });
864
+ return (r == null || r === n.position) && (n.position = c + y), s && await this.notifyChange({ path: n.path, type: h.Changed, isDirectory: !1 }), y;
865
+ } catch (c) {
866
+ throw g("write", t, n.path, c);
866
867
  }
867
868
  }
868
869
  /**
@@ -904,13 +905,13 @@ class k {
904
905
  * ```
905
906
  */
906
907
  async ftruncate(t, e = 0) {
907
- const i = this._getFileDescriptor(t);
908
+ const a = this._getFileDescriptor(t);
908
909
  if (e < 0 || !Number.isInteger(e))
909
- throw new o("Invalid size", "EINVAL");
910
+ throw new E("argument", "Invalid size");
910
911
  try {
911
- i.syncHandle.truncate(e), i.syncHandle.flush(), i.position > e && (i.position = e), await this.notifyChange({ path: i.path, type: l.Changed, isDirectory: !1 });
912
- } catch (a) {
913
- throw u("truncate", t, i.path, a);
912
+ a.syncHandle.truncate(e), a.syncHandle.flush(), a.position > e && (a.position = e), await this.notifyChange({ path: a.path, type: h.Changed, isDirectory: !1 });
913
+ } catch (i) {
914
+ throw g("truncate", t, a.path, i);
914
915
  }
915
916
  }
916
917
  /**
@@ -931,8 +932,8 @@ class k {
931
932
  const e = this._getFileDescriptor(t);
932
933
  try {
933
934
  e.syncHandle.flush();
934
- } catch (i) {
935
- throw u("sync", t, e.path, i);
935
+ } catch (a) {
936
+ throw g("sync", t, e.path, a);
936
937
  }
937
938
  }
938
939
  /**
@@ -978,18 +979,18 @@ class k {
978
979
  async createIndex(t) {
979
980
  await this.mount();
980
981
  try {
981
- for (const [e, i] of t) {
982
- const a = F(e);
982
+ for (const [e, a] of t) {
983
+ const i = F(e);
983
984
  let r;
984
- i instanceof Blob ? r = await _(i) : typeof i == "string" ? r = new TextEncoder().encode(i) : r = i, await this.writeFile(a, r);
985
+ a instanceof Blob ? r = await L(a) : typeof a == "string" ? r = new TextEncoder().encode(a) : r = a, await this.writeFile(i, r);
985
986
  }
986
987
  } catch (e) {
987
- throw e instanceof o ? e : new o("Failed to sync file system", "SYNC_FAILED", void 0, e);
988
+ throw e instanceof f ? e : l(e);
988
989
  }
989
990
  }
990
991
  }
991
- typeof globalThis < "u" && globalThis.constructor.name === "DedicatedWorkerGlobalScope" && A(new k());
992
+ typeof globalThis < "u" && globalThis.constructor.name === "DedicatedWorkerGlobalScope" && k(new j());
992
993
  export {
993
- k as OPFSWorker
994
+ j as OPFSWorker
994
995
  };
995
996
  //# sourceMappingURL=raw.js.map