opfs-worker 0.2.2 → 0.2.3

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/index.cjs CHANGED
@@ -3,59 +3,59 @@
3
3
  * Copyright 2019 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- const H = Symbol("Comlink.proxy"), R = Symbol("Comlink.endpoint"), B = Symbol("Comlink.releaseProxy"), T = Symbol("Comlink.finalizer"), p = Symbol("Comlink.thrown"), $ = (e) => typeof e == "object" && e !== null || typeof e == "function", W = {
7
- canHandle: (e) => $(e) && e[H],
8
- serialize(e) {
9
- const { port1: t, port2: r } = new MessageChannel();
10
- return O(e, t), [r, [r]];
6
+ const H = Symbol("Comlink.proxy"), R = Symbol("Comlink.endpoint"), B = Symbol("Comlink.releaseProxy"), T = Symbol("Comlink.finalizer"), p = Symbol("Comlink.thrown"), $ = (t) => typeof t == "object" && t !== null || typeof t == "function", W = {
7
+ canHandle: (t) => $(t) && t[H],
8
+ serialize(t) {
9
+ const { port1: e, port2: r } = new MessageChannel();
10
+ return x(t, e), [r, [r]];
11
11
  },
12
- deserialize(e) {
13
- return e.start(), Y(e);
12
+ deserialize(t) {
13
+ return t.start(), Y(t);
14
14
  }
15
15
  }, j = {
16
- canHandle: (e) => $(e) && p in e,
17
- serialize({ value: e }) {
18
- let t;
19
- return e instanceof Error ? t = {
16
+ canHandle: (t) => $(t) && p in t,
17
+ serialize({ value: t }) {
18
+ let e;
19
+ return t instanceof Error ? e = {
20
20
  isError: !0,
21
21
  value: {
22
- message: e.message,
23
- name: e.name,
24
- stack: e.stack
22
+ message: t.message,
23
+ name: t.name,
24
+ stack: t.stack
25
25
  }
26
- } : t = { isError: !1, value: e }, [t, []];
26
+ } : e = { isError: !1, value: t }, [e, []];
27
27
  },
28
- deserialize(e) {
29
- throw e.isError ? Object.assign(new Error(e.value.message), e.value) : e.value;
28
+ deserialize(t) {
29
+ throw t.isError ? Object.assign(new Error(t.value.message), t.value) : t.value;
30
30
  }
31
31
  }, U = /* @__PURE__ */ new Map([
32
32
  ["proxy", W],
33
33
  ["throw", j]
34
34
  ]);
35
- function V(e, t) {
36
- for (const r of e)
37
- if (t === r || r === "*" || r instanceof RegExp && r.test(t))
35
+ function V(t, e) {
36
+ for (const r of t)
37
+ if (e === r || r === "*" || r instanceof RegExp && r.test(e))
38
38
  return !0;
39
39
  return !1;
40
40
  }
41
- function O(e, t = globalThis, r = ["*"]) {
42
- t.addEventListener("message", function a(n) {
41
+ function x(t, e = globalThis, r = ["*"]) {
42
+ e.addEventListener("message", function a(n) {
43
43
  if (!n || !n.data)
44
44
  return;
45
45
  if (!V(r, n.origin)) {
46
46
  console.warn(\`Invalid origin '\${n.origin}' for comlink proxy\`);
47
47
  return;
48
48
  }
49
- const { id: s, type: o, path: i } = Object.assign({ path: [] }, n.data), l = (n.data.argumentList || []).map(d);
49
+ const { id: i, type: o, path: s } = Object.assign({ path: [] }, n.data), l = (n.data.argumentList || []).map(d);
50
50
  let u;
51
51
  try {
52
- const f = i.slice(0, -1).reduce((h, g) => h[g], e), w = i.reduce((h, g) => h[g], e);
52
+ const f = s.slice(0, -1).reduce((h, g) => h[g], t), w = s.reduce((h, g) => h[g], t);
53
53
  switch (o) {
54
54
  case "GET":
55
55
  u = w;
56
56
  break;
57
57
  case "SET":
58
- f[i.slice(-1)[0]] = d(n.data.value), u = !0;
58
+ f[s.slice(-1)[0]] = d(n.data.value), u = !0;
59
59
  break;
60
60
  case "APPLY":
61
61
  u = w.apply(f, l);
@@ -69,7 +69,7 @@ function O(e, t = globalThis, r = ["*"]) {
69
69
  case "ENDPOINT":
70
70
  {
71
71
  const { port1: h, port2: g } = new MessageChannel();
72
- O(e, g), u = J(h, [h]);
72
+ x(t, g), u = J(h, [h]);
73
73
  }
74
74
  break;
75
75
  case "RELEASE":
@@ -83,138 +83,138 @@ function O(e, t = globalThis, r = ["*"]) {
83
83
  }
84
84
  Promise.resolve(u).catch((f) => ({ value: f, [p]: 0 })).then((f) => {
85
85
  const [w, h] = A(f);
86
- t.postMessage(Object.assign(Object.assign({}, w), { id: s }), h), o === "RELEASE" && (t.removeEventListener("message", a), L(t), T in e && typeof e[T] == "function" && e[T]());
86
+ e.postMessage(Object.assign(Object.assign({}, w), { id: i }), h), o === "RELEASE" && (e.removeEventListener("message", a), L(e), T in t && typeof t[T] == "function" && t[T]());
87
87
  }).catch((f) => {
88
88
  const [w, h] = A({
89
89
  value: new TypeError("Unserializable return value"),
90
90
  [p]: 0
91
91
  });
92
- t.postMessage(Object.assign(Object.assign({}, w), { id: s }), h);
92
+ e.postMessage(Object.assign(Object.assign({}, w), { id: i }), h);
93
93
  });
94
- }), t.start && t.start();
94
+ }), e.start && e.start();
95
95
  }
96
- function G(e) {
97
- return e.constructor.name === "MessagePort";
96
+ function G(t) {
97
+ return t.constructor.name === "MessagePort";
98
98
  }
99
- function L(e) {
100
- G(e) && e.close();
99
+ function L(t) {
100
+ G(t) && t.close();
101
101
  }
102
- function Y(e, t) {
102
+ function Y(t, e) {
103
103
  const r = /* @__PURE__ */ new Map();
104
- return e.addEventListener("message", function(n) {
105
- const { data: s } = n;
106
- if (!s || !s.id)
104
+ return t.addEventListener("message", function(n) {
105
+ const { data: i } = n;
106
+ if (!i || !i.id)
107
107
  return;
108
- const o = r.get(s.id);
108
+ const o = r.get(i.id);
109
109
  if (o)
110
110
  try {
111
- o(s);
111
+ o(i);
112
112
  } finally {
113
- r.delete(s.id);
113
+ r.delete(i.id);
114
114
  }
115
- }), x(e, r, [], t);
115
+ }), O(t, r, [], e);
116
116
  }
117
- function E(e) {
118
- if (e)
117
+ function E(t) {
118
+ if (t)
119
119
  throw new Error("Proxy has been released and is not useable");
120
120
  }
121
- function z(e) {
122
- return y(e, /* @__PURE__ */ new Map(), {
121
+ function z(t) {
122
+ return y(t, /* @__PURE__ */ new Map(), {
123
123
  type: "RELEASE"
124
124
  }).then(() => {
125
- L(e);
125
+ L(t);
126
126
  });
127
127
  }
128
- const F = /* @__PURE__ */ new WeakMap(), S = "FinalizationRegistry" in globalThis && new FinalizationRegistry((e) => {
129
- const t = (F.get(e) || 0) - 1;
130
- F.set(e, t), t === 0 && z(e);
128
+ const F = /* @__PURE__ */ new WeakMap(), S = "FinalizationRegistry" in globalThis && new FinalizationRegistry((t) => {
129
+ const e = (F.get(t) || 0) - 1;
130
+ F.set(t, e), e === 0 && z(t);
131
131
  });
132
- function X(e, t) {
133
- const r = (F.get(t) || 0) + 1;
134
- F.set(t, r), S && S.register(e, t, e);
132
+ function X(t, e) {
133
+ const r = (F.get(e) || 0) + 1;
134
+ F.set(e, r), S && S.register(t, e, t);
135
135
  }
136
- function q(e) {
137
- S && S.unregister(e);
136
+ function q(t) {
137
+ S && S.unregister(t);
138
138
  }
139
- function x(e, t, r = [], a = function() {
139
+ function O(t, e, r = [], a = function() {
140
140
  }) {
141
141
  let n = !1;
142
- const s = new Proxy(a, {
143
- get(o, i) {
144
- if (E(n), i === B)
142
+ const i = new Proxy(a, {
143
+ get(o, s) {
144
+ if (E(n), s === B)
145
145
  return () => {
146
- q(s), z(e), t.clear(), n = !0;
146
+ q(i), z(t), e.clear(), n = !0;
147
147
  };
148
- if (i === "then") {
148
+ if (s === "then") {
149
149
  if (r.length === 0)
150
- return { then: () => s };
151
- const l = y(e, t, {
150
+ return { then: () => i };
151
+ const l = y(t, e, {
152
152
  type: "GET",
153
153
  path: r.map((u) => u.toString())
154
154
  }).then(d);
155
155
  return l.then.bind(l);
156
156
  }
157
- return x(e, t, [...r, i]);
157
+ return O(t, e, [...r, s]);
158
158
  },
159
- set(o, i, l) {
159
+ set(o, s, l) {
160
160
  E(n);
161
161
  const [u, f] = A(l);
162
- return y(e, t, {
162
+ return y(t, e, {
163
163
  type: "SET",
164
- path: [...r, i].map((w) => w.toString()),
164
+ path: [...r, s].map((w) => w.toString()),
165
165
  value: u
166
166
  }, f).then(d);
167
167
  },
168
- apply(o, i, l) {
168
+ apply(o, s, l) {
169
169
  E(n);
170
170
  const u = r[r.length - 1];
171
171
  if (u === R)
172
- return y(e, t, {
172
+ return y(t, e, {
173
173
  type: "ENDPOINT"
174
174
  }).then(d);
175
175
  if (u === "bind")
176
- return x(e, t, r.slice(0, -1));
177
- const [f, w] = v(l);
178
- return y(e, t, {
176
+ return O(t, e, r.slice(0, -1));
177
+ const [f, w] = N(l);
178
+ return y(t, e, {
179
179
  type: "APPLY",
180
180
  path: r.map((h) => h.toString()),
181
181
  argumentList: f
182
182
  }, w).then(d);
183
183
  },
184
- construct(o, i) {
184
+ construct(o, s) {
185
185
  E(n);
186
- const [l, u] = v(i);
187
- return y(e, t, {
186
+ const [l, u] = N(s);
187
+ return y(t, e, {
188
188
  type: "CONSTRUCT",
189
189
  path: r.map((f) => f.toString()),
190
190
  argumentList: l
191
191
  }, u).then(d);
192
192
  }
193
193
  });
194
- return X(s, e), s;
194
+ return X(i, t), i;
195
195
  }
196
- function K(e) {
197
- return Array.prototype.concat.apply([], e);
196
+ function K(t) {
197
+ return Array.prototype.concat.apply([], t);
198
198
  }
199
- function v(e) {
200
- const t = e.map(A);
201
- return [t.map((r) => r[0]), K(t.map((r) => r[1]))];
199
+ function N(t) {
200
+ const e = t.map(A);
201
+ return [e.map((r) => r[0]), K(e.map((r) => r[1]))];
202
202
  }
203
203
  const _ = /* @__PURE__ */ new WeakMap();
204
- function J(e, t) {
205
- return _.set(e, t), e;
204
+ function J(t, e) {
205
+ return _.set(t, e), t;
206
206
  }
207
- function Q(e) {
208
- return Object.assign(e, { [H]: !0 });
207
+ function Q(t) {
208
+ return Object.assign(t, { [H]: !0 });
209
209
  }
210
- function A(e) {
211
- for (const [t, r] of U)
212
- if (r.canHandle(e)) {
213
- const [a, n] = r.serialize(e);
210
+ function A(t) {
211
+ for (const [e, r] of U)
212
+ if (r.canHandle(t)) {
213
+ const [a, n] = r.serialize(t);
214
214
  return [
215
215
  {
216
216
  type: "HANDLER",
217
- name: t,
217
+ name: e,
218
218
  value: a
219
219
  },
220
220
  n
@@ -223,31 +223,31 @@ function A(e) {
223
223
  return [
224
224
  {
225
225
  type: "RAW",
226
- value: e
226
+ value: t
227
227
  },
228
- _.get(e) || []
228
+ _.get(t) || []
229
229
  ];
230
230
  }
231
- function d(e) {
232
- switch (e.type) {
231
+ function d(t) {
232
+ switch (t.type) {
233
233
  case "HANDLER":
234
- return U.get(e.name).deserialize(e.value);
234
+ return U.get(t.name).deserialize(t.value);
235
235
  case "RAW":
236
- return e.value;
236
+ return t.value;
237
237
  }
238
238
  }
239
- function y(e, t, r, a) {
239
+ function y(t, e, r, a) {
240
240
  return new Promise((n) => {
241
- const s = Z();
242
- t.set(s, n), e.start && e.start(), e.postMessage(Object.assign({ id: s }, r), a);
241
+ const i = Z();
242
+ e.set(i, n), t.start && t.start(), t.postMessage(Object.assign({ id: i }, r), a);
243
243
  });
244
244
  }
245
245
  function Z() {
246
246
  return new Array(4).fill(0).map(() => Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16)).join("-");
247
247
  }
248
248
  class c extends Error {
249
- constructor(t, r, a) {
250
- super(t), this.code = r, this.path = a, this.name = "OPFSError";
249
+ constructor(e, r, a) {
250
+ super(e), this.code = r, this.path = a, this.name = "OPFSError";
251
251
  }
252
252
  }
253
253
  class ee extends c {
@@ -261,112 +261,112 @@ class D extends c {
261
261
  }
262
262
  }
263
263
  class k extends c {
264
- constructor(t, r) {
265
- super(t, "INVALID_PATH", r);
264
+ constructor(e, r) {
265
+ super(e, "INVALID_PATH", r);
266
266
  }
267
267
  }
268
268
  class b extends c {
269
- constructor(t) {
270
- super(\`File not found: \${t}\`, "FILE_NOT_FOUND", t);
269
+ constructor(e) {
270
+ super(\`File not found: \${e}\`, "FILE_NOT_FOUND", e);
271
271
  }
272
272
  }
273
- function te(e, t = "utf-8") {
274
- switch (t) {
273
+ function te(t, e = "utf-8") {
274
+ switch (e) {
275
275
  case "utf8":
276
276
  case "utf-8":
277
- return new TextEncoder().encode(e);
277
+ return new TextEncoder().encode(t);
278
278
  case "utf16le":
279
279
  case "ucs2":
280
280
  case "ucs-2":
281
- return ne(e);
281
+ return ne(t);
282
282
  case "ascii":
283
- return ie(e);
283
+ return se(t);
284
284
  case "latin1":
285
- return se(e);
285
+ return ie(t);
286
286
  case "binary":
287
- return Uint8Array.from(e, (r) => r.charCodeAt(0));
287
+ return Uint8Array.from(t, (r) => r.charCodeAt(0));
288
288
  case "base64":
289
- return Uint8Array.from(atob(e), (r) => r.charCodeAt(0));
289
+ return Uint8Array.from(atob(t), (r) => r.charCodeAt(0));
290
290
  case "hex":
291
- if (!/^[\\da-f]+$/i.test(e) || e.length % 2 !== 0)
291
+ if (!/^[\\da-f]+$/i.test(t) || t.length % 2 !== 0)
292
292
  throw new c("Invalid hex string", "INVALID_HEX_FORMAT");
293
- return Uint8Array.from(e.match(/.{1,2}/g).map((r) => parseInt(r, 16)));
293
+ return Uint8Array.from(t.match(/.{1,2}/g).map((r) => parseInt(r, 16)));
294
294
  default:
295
- return console.warn("Encoding not supported, falling back to UTF-8"), new TextEncoder().encode(e);
295
+ return console.warn("Encoding not supported, falling back to UTF-8"), new TextEncoder().encode(t);
296
296
  }
297
297
  }
298
- function re(e, t = "utf-8") {
299
- switch (t) {
298
+ function re(t, e = "utf-8") {
299
+ switch (e) {
300
300
  case "utf8":
301
301
  case "utf-8":
302
- return new TextDecoder().decode(e);
302
+ return new TextDecoder().decode(t);
303
303
  case "utf16le":
304
304
  case "ucs2":
305
305
  case "ucs-2":
306
- return ae(e);
306
+ return ae(t);
307
307
  case "latin1":
308
- return String.fromCharCode(...e);
308
+ return String.fromCharCode(...t);
309
309
  case "binary":
310
- return String.fromCharCode(...e);
310
+ return String.fromCharCode(...t);
311
311
  case "ascii":
312
- return String.fromCharCode(...e.map((r) => r & 127));
312
+ return String.fromCharCode(...t.map((r) => r & 127));
313
313
  case "base64":
314
- return btoa(String.fromCharCode(...e));
314
+ return btoa(String.fromCharCode(...t));
315
315
  case "hex":
316
- return Array.from(e).map((r) => r.toString(16).padStart(2, "0")).join("");
316
+ return Array.from(t).map((r) => r.toString(16).padStart(2, "0")).join("");
317
317
  default:
318
- return console.warn("Unsupported encoding, falling back to UTF-8"), new TextDecoder().decode(e);
318
+ return console.warn("Unsupported encoding, falling back to UTF-8"), new TextDecoder().decode(t);
319
319
  }
320
320
  }
321
- function ne(e) {
322
- const t = new Uint8Array(e.length * 2);
323
- for (let r = 0; r < e.length; r++) {
324
- const a = e.charCodeAt(r);
325
- t[r * 2] = a & 255, t[r * 2 + 1] = a >> 8;
321
+ function ne(t) {
322
+ const e = new Uint8Array(t.length * 2);
323
+ for (let r = 0; r < t.length; r++) {
324
+ const a = t.charCodeAt(r);
325
+ e[r * 2] = a & 255, e[r * 2 + 1] = a >> 8;
326
326
  }
327
- return t;
327
+ return e;
328
328
  }
329
- function ae(e) {
330
- e.length % 2 !== 0 && (console.warn("Invalid UTF-16LE buffer length, truncating last byte"), e = e.slice(0, e.length - 1));
331
- const t = new Uint16Array(e.buffer, e.byteOffset, e.byteLength / 2);
332
- return String.fromCharCode(...t);
329
+ function ae(t) {
330
+ t.length % 2 !== 0 && (console.warn("Invalid UTF-16LE buffer length, truncating last byte"), t = t.slice(0, t.length - 1));
331
+ const e = new Uint16Array(t.buffer, t.byteOffset, t.byteLength / 2);
332
+ return String.fromCharCode(...e);
333
333
  }
334
- function se(e) {
335
- const t = new Uint8Array(e.length);
336
- for (let r = 0; r < e.length; r++)
337
- t[r] = e.charCodeAt(r) & 255;
338
- return t;
334
+ function ie(t) {
335
+ const e = new Uint8Array(t.length);
336
+ for (let r = 0; r < t.length; r++)
337
+ e[r] = t.charCodeAt(r) & 255;
338
+ return e;
339
339
  }
340
- function ie(e) {
341
- const t = new Uint8Array(e.length);
342
- for (let r = 0; r < e.length; r++)
343
- t[r] = e.charCodeAt(r) & 127;
344
- return t;
340
+ function se(t) {
341
+ const e = new Uint8Array(t.length);
342
+ for (let r = 0; r < t.length; r++)
343
+ e[r] = t.charCodeAt(r) & 127;
344
+ return e;
345
345
  }
346
346
  function oe() {
347
347
  if (!("storage" in navigator) || !("getDirectory" in navigator.storage))
348
348
  throw new ee();
349
349
  }
350
- function m(e) {
351
- return Array.isArray(e) ? e : e.split("/").filter(Boolean);
350
+ function m(t) {
351
+ return Array.isArray(t) ? t : t.split("/").filter(Boolean);
352
352
  }
353
- function N(e) {
354
- return typeof e == "string" ? e ?? "/" : \`/\${e.join("/")}\`;
353
+ function v(t) {
354
+ return typeof t == "string" ? t ?? "/" : \`/\${t.join("/")}\`;
355
355
  }
356
- function P(e) {
357
- const t = m(e);
358
- return t[t.length - 1] || "";
356
+ function I(t) {
357
+ const e = m(t);
358
+ return e[e.length - 1] || "";
359
359
  }
360
- function M(e) {
361
- const t = m(e);
362
- return t.pop(), N(t);
360
+ function P(t) {
361
+ const e = m(t);
362
+ return e.pop(), v(e);
363
363
  }
364
- function I(e) {
365
- return !e || e === "/" ? "/" : e.startsWith("/") ? e : \`/\${e}\`;
364
+ function M(t) {
365
+ return !t || t === "/" ? "/" : t.startsWith("/") ? t : \`/\${t}\`;
366
366
  }
367
- function ce(e) {
368
- const t = m(e), r = [];
369
- for (const a of t)
367
+ function ce(t) {
368
+ const e = m(t), r = [];
369
+ for (const a of e)
370
370
  if (!(a === "." || a === ""))
371
371
  if (a === "..") {
372
372
  if (r.length === 0)
@@ -374,28 +374,28 @@ function ce(e) {
374
374
  r.pop();
375
375
  } else
376
376
  r.push(a);
377
- return N(r);
377
+ return v(r);
378
378
  }
379
- function le(e, t = "utf-8") {
380
- return typeof e == "string" ? te(e, t) : e instanceof Uint8Array ? e : new Uint8Array(e);
379
+ function le(t, e = "utf-8") {
380
+ return typeof t == "string" ? te(t, e) : t instanceof Uint8Array ? t : new Uint8Array(t);
381
381
  }
382
- async function ue(e) {
383
- const t = await e.createSyncAccessHandle();
382
+ async function ue(t) {
383
+ const e = await t.createSyncAccessHandle();
384
384
  try {
385
- const r = t.getSize(), a = new Uint8Array(r);
386
- return t.read(a, { at: 0 }), a;
385
+ const r = e.getSize(), a = new Uint8Array(r);
386
+ return e.read(a, { at: 0 }), a;
387
387
  } finally {
388
- t.close();
388
+ e.close();
389
389
  }
390
390
  }
391
- async function C(e, t, r, a = {}) {
391
+ async function C(t, e, r, a = {}) {
392
392
  let n = null;
393
393
  try {
394
- n = await e.createSyncAccessHandle();
395
- const s = le(t, r), o = a.append ? n.getSize() : 0;
396
- n.write(s, { at: o }), a.truncate && !a.append && n.truncate(s.byteLength), n.flush();
397
- } catch (s) {
398
- console.error(s);
394
+ n = await t.createSyncAccessHandle();
395
+ const i = le(e, r), o = a.append ? n.getSize() : 0;
396
+ n.write(i, { at: o }), a.truncate && !a.append && n.truncate(i.byteLength), n.flush();
397
+ } catch (i) {
398
+ console.error(i);
399
399
  const o = a.append ? "append" : "write";
400
400
  throw new c(\`Failed to \${o} file\`, \`\${o.toUpperCase()}_FAILED\`);
401
401
  } finally {
@@ -406,17 +406,17 @@ async function C(e, t, r, a = {}) {
406
406
  }
407
407
  }
408
408
  }
409
- async function fe(e, t = "SHA-1") {
409
+ async function fe(t, e = "SHA-1") {
410
410
  try {
411
- const r = new Uint8Array(e), a = await crypto.subtle.digest(t, r);
412
- return Array.from(new Uint8Array(a)).map((s) => s.toString(16).padStart(2, "0")).join("");
411
+ const r = new Uint8Array(t), a = await crypto.subtle.digest(e, r);
412
+ return Array.from(new Uint8Array(a)).map((i) => i.toString(16).padStart(2, "0")).join("");
413
413
  } catch (r) {
414
- throw console.warn(\`Failed to calculate \${t} hash:\`, r), r;
414
+ throw console.warn(\`Failed to calculate \${e} hash:\`, r), r;
415
415
  }
416
416
  }
417
- async function he(e) {
418
- const t = await e.arrayBuffer();
419
- return new Uint8Array(t);
417
+ async function he(t) {
418
+ const e = await t.arrayBuffer();
419
+ return new Uint8Array(e);
420
420
  }
421
421
  class we {
422
422
  /** Root directory handle for the file system */
@@ -440,8 +440,8 @@ class we {
440
440
  * @param watchOptions - Optional configuration for watching
441
441
  * @throws {OPFSError} If OPFS is not supported in the current browser
442
442
  */
443
- constructor(t, r) {
444
- oe(), t && (this.watchCallback = t, r?.watchInterval && (this.watchInterval = r.watchInterval)), this.mount("/");
443
+ constructor(e, r) {
444
+ oe(), e && (this.watchCallback = e, r?.watchInterval && (this.watchInterval = r.watchInterval)), this.mount("/");
445
445
  }
446
446
  /**
447
447
  * Initialize the file system within a given directory
@@ -464,12 +464,12 @@ class we {
464
464
  * await fs.mount('/my-app');
465
465
  * \`\`\`
466
466
  */
467
- async mount(t = "/") {
467
+ async mount(e = "/") {
468
468
  return this.mountingPromise && await this.mountingPromise, this.mountingPromise = new Promise(async (r, a) => {
469
469
  this.root = null;
470
470
  try {
471
471
  const n = await navigator.storage.getDirectory();
472
- t === "/" ? this.root = n : this.root = await this.getDirectoryHandle(t, !0, n), r(!0);
472
+ e === "/" ? this.root = n : this.root = await this.getDirectoryHandle(e, !0, n), r(!0);
473
473
  } catch (n) {
474
474
  console.error(n), a(new c("Failed to initialize OPFS", "INIT_FAILED"));
475
475
  } finally {
@@ -483,8 +483,8 @@ class we {
483
483
  * @param callback - The callback function to invoke when files change
484
484
  * @param options - Optional configuration for watching
485
485
  */
486
- setWatchCallback(t, r) {
487
- this.watchCallback = t, r?.watchInterval && (this.watchInterval = r.watchInterval);
486
+ setWatchCallback(e, r) {
487
+ this.watchCallback = e, r?.watchInterval && (this.watchInterval = r.watchInterval);
488
488
  }
489
489
  /**
490
490
  * Automatically mount the OPFS root if not already mounted
@@ -522,14 +522,14 @@ class we {
522
522
  * const docsDir2 = await fs.getDirectoryHandle(['users', 'john', 'documents'], true);
523
523
  * \`\`\`
524
524
  */
525
- async getDirectoryHandle(t, r = !1, a = this.root) {
525
+ async getDirectoryHandle(e, r = !1, a = this.root) {
526
526
  if (!a)
527
527
  throw new D();
528
- const n = Array.isArray(t) ? t : m(t);
529
- let s = a;
528
+ const n = Array.isArray(e) ? e : m(e);
529
+ let i = a;
530
530
  for (const o of n)
531
- s = await s.getDirectoryHandle(o, { create: r });
532
- return s;
531
+ i = await i.getDirectoryHandle(o, { create: r });
532
+ return i;
533
533
  }
534
534
  /**
535
535
  * Get a file handle from a path
@@ -550,14 +550,14 @@ class we {
550
550
  * const fileHandle2 = await fs.getFileHandle(['config', 'settings.json'], true);
551
551
  * \`\`\`
552
552
  */
553
- async getFileHandle(t, r = !1, a = this.root) {
553
+ async getFileHandle(e, r = !1, a = this.root) {
554
554
  if (!a)
555
555
  throw new D();
556
- const n = m(t);
556
+ const n = m(e);
557
557
  if (n.length === 0)
558
- throw new k("Path must not be empty", Array.isArray(t) ? t.join("/") : t);
559
- const s = n.pop();
560
- return (await this.getDirectoryHandle(n, r, a)).getFileHandle(s, { create: r });
558
+ throw new k("Path must not be empty", Array.isArray(e) ? e.join("/") : e);
559
+ const i = n.pop();
560
+ return (await this.getDirectoryHandle(n, r, a)).getFileHandle(i, { create: r });
561
561
  }
562
562
  /**
563
563
  * Recursively list all files and directories with their stats
@@ -596,16 +596,16 @@ class we {
596
596
  * }
597
597
  * \`\`\`
598
598
  */
599
- async index(t) {
599
+ async index(e) {
600
600
  const r = /* @__PURE__ */ new Map(), a = async (n) => {
601
- const s = await this.readdir(n, { withFileTypes: !0 });
602
- for (const o of s) {
603
- const i = \`\${n === "/" ? "" : n}/\${o.name}\`;
601
+ const i = await this.readdir(n, { withFileTypes: !0 });
602
+ for (const o of i) {
603
+ const s = \`\${n === "/" ? "" : n}/\${o.name}\`;
604
604
  try {
605
- const l = await this.stat(i, t);
606
- r.set(i, l), l.isDirectory && await a(i);
605
+ const l = await this.stat(s, e);
606
+ r.set(s, l), l.isDirectory && await a(s);
607
607
  } catch (l) {
608
- console.warn(\`Skipping broken entry: \${i}\`, l);
608
+ console.warn(\`Skipping broken entry: \${s}\`, l);
609
609
  }
610
610
  }
611
611
  };
@@ -618,13 +618,13 @@ class we {
618
618
  isDirectory: !0
619
619
  }), await a("/"), r;
620
620
  }
621
- async readFile(t, r = "utf-8") {
621
+ async readFile(e, r = "utf-8") {
622
622
  await this.ensureMounted();
623
623
  try {
624
- const a = await this.getFileHandle(t, !1), n = await ue(a);
624
+ const a = await this.getFileHandle(e, !1), n = await ue(a);
625
625
  return r === "binary" ? n : re(n, r);
626
626
  } catch (a) {
627
- throw console.error(a), new b(t);
627
+ throw console.error(a), new b(e);
628
628
  }
629
629
  }
630
630
  /**
@@ -652,9 +652,9 @@ class we {
652
652
  * await fs.writeFile('/data/utf16.txt', 'Hello World', 'utf-16le');
653
653
  * \`\`\`
654
654
  */
655
- async writeFile(t, r, a) {
655
+ async writeFile(e, r, a) {
656
656
  await this.ensureMounted();
657
- const n = await this.getFileHandle(t, !0);
657
+ const n = await this.getFileHandle(e, !0);
658
658
  await C(n, r, a, { truncate: !0 });
659
659
  }
660
660
  /**
@@ -679,9 +679,9 @@ class we {
679
679
  * await fs.appendFile('/data/binary.dat', additionalData);
680
680
  * \`\`\`
681
681
  */
682
- async appendFile(t, r, a) {
682
+ async appendFile(e, r, a) {
683
683
  await this.ensureMounted();
684
- const n = await this.getFileHandle(t, !0);
684
+ const n = await this.getFileHandle(e, !0);
685
685
  await C(n, r, a, { append: !0 });
686
686
  }
687
687
  /**
@@ -705,20 +705,20 @@ class we {
705
705
  * await fs.mkdir('/users/john/documents/projects', { recursive: true });
706
706
  * \`\`\`
707
707
  */
708
- async mkdir(t, r) {
708
+ async mkdir(e, r) {
709
709
  if (await this.ensureMounted(), !this.root)
710
710
  throw new D();
711
- const a = r?.recursive ?? !1, n = m(t);
712
- let s = this.root;
711
+ const a = r?.recursive ?? !1, n = m(e);
712
+ let i = this.root;
713
713
  for (let o = 0; o < n.length; o++) {
714
- const i = n[o];
714
+ const s = n[o];
715
715
  try {
716
- s = await s.getDirectoryHandle(i, { create: a || o === n.length - 1 });
716
+ i = await i.getDirectoryHandle(s, { create: a || o === n.length - 1 });
717
717
  } catch (l) {
718
718
  throw l.name === "NotFoundError" ? new c(
719
- \`Parent directory does not exist: \${N(n.slice(0, o + 1))}\`,
719
+ \`Parent directory does not exist: \${v(n.slice(0, o + 1))}\`,
720
720
  "ENOENT"
721
- ) : l.name === "TypeMismatchError" ? new c(\`Path segment is not a directory: \${i}\`, "ENOTDIR") : new c("Failed to create directory", "MKDIR_FAILED");
721
+ ) : l.name === "TypeMismatchError" ? new c(\`Path segment is not a directory: \${s}\`, "ENOTDIR") : new c("Failed to create directory", "MKDIR_FAILED");
722
722
  }
723
723
  }
724
724
  }
@@ -751,9 +751,17 @@ class we {
751
751
  * console.log(\`Hash: \${statsWithHash.hash}\`);
752
752
  * \`\`\`
753
753
  */
754
- async stat(t, r) {
755
- await this.ensureMounted();
756
- const a = P(t), n = await this.getDirectoryHandle(M(t), !1), s = r?.includeHash ?? !1, o = r?.hashAlgorithm ?? "SHA-1";
754
+ async stat(e, r) {
755
+ if (await this.ensureMounted(), e === "/")
756
+ return {
757
+ kind: "directory",
758
+ size: 0,
759
+ mtime: (/* @__PURE__ */ new Date(0)).toISOString(),
760
+ ctime: (/* @__PURE__ */ new Date(0)).toISOString(),
761
+ isFile: !1,
762
+ isDirectory: !0
763
+ };
764
+ const a = I(e), n = await this.getDirectoryHandle(P(e), !1), i = r?.includeHash ?? !1, o = r?.hashAlgorithm ?? "SHA-1";
757
765
  try {
758
766
  const l = await (await n.getFileHandle(a, { create: !1 })).getFile(), u = {
759
767
  kind: "file",
@@ -763,16 +771,16 @@ class we {
763
771
  isFile: !0,
764
772
  isDirectory: !1
765
773
  };
766
- if (s)
774
+ if (i)
767
775
  try {
768
776
  const f = new Uint8Array(await l.arrayBuffer()), w = await fe(f, o);
769
777
  u.hash = w;
770
778
  } catch (f) {
771
- console.warn(\`Failed to calculate hash for \${t}:\`, f);
779
+ console.warn(\`Failed to calculate hash for \${e}:\`, f);
772
780
  }
773
781
  return u;
774
- } catch (i) {
775
- if (i.name !== "TypeMismatchError" && i.name !== "NotFoundError")
782
+ } catch (s) {
783
+ if (s.name !== "TypeMismatchError" && s.name !== "NotFoundError")
776
784
  throw new c("Failed to stat (file)", "STAT_FAILED");
777
785
  }
778
786
  try {
@@ -784,30 +792,30 @@ class we {
784
792
  isFile: !1,
785
793
  isDirectory: !0
786
794
  };
787
- } catch (i) {
788
- throw i.name === "NotFoundError" ? new c(\`No such file or directory: \${t}\`, "ENOENT") : new c("Failed to stat (directory)", "STAT_FAILED");
795
+ } catch (s) {
796
+ throw s.name === "NotFoundError" ? new c(\`No such file or directory: \${e}\`, "ENOENT") : new c("Failed to stat (directory)", "STAT_FAILED");
789
797
  }
790
798
  }
791
- async readdir(t, r) {
799
+ async readdir(e, r) {
792
800
  await this.ensureMounted();
793
- const a = r?.withFileTypes ?? !1, n = await this.getDirectoryHandle(t, !1);
801
+ const a = r?.withFileTypes ?? !1, n = await this.getDirectoryHandle(e, !1);
794
802
  if (a) {
795
- const s = [];
796
- for await (const [o, i] of n.entries()) {
797
- const l = i.kind === "file";
798
- s.push({
803
+ const i = [];
804
+ for await (const [o, s] of n.entries()) {
805
+ const l = s.kind === "file";
806
+ i.push({
799
807
  name: o,
800
- kind: i.kind,
808
+ kind: s.kind,
801
809
  isFile: l,
802
810
  isDirectory: !l
803
811
  });
804
812
  }
805
- return s;
813
+ return i;
806
814
  } else {
807
- const s = [];
815
+ const i = [];
808
816
  for await (const [o] of n.entries())
809
- s.push(o);
810
- return s;
817
+ i.push(o);
818
+ return i;
811
819
  }
812
820
  }
813
821
  /**
@@ -824,12 +832,13 @@ class we {
824
832
  * console.log(\`File exists: \${exists}\`);
825
833
  * \`\`\`
826
834
  */
827
- async exists(t) {
828
- await this.ensureMounted();
829
- const r = P(t);
835
+ async exists(e) {
836
+ if (await this.ensureMounted(), e === "/")
837
+ return !0;
838
+ const r = I(e);
830
839
  let a = null;
831
840
  try {
832
- a = await this.getDirectoryHandle(M(t), !1);
841
+ a = await this.getDirectoryHandle(P(e), !1);
833
842
  } catch (n) {
834
843
  throw (n.name === "NotFoundError" || n.name === "TypeMismatchError") && (a = null), n;
835
844
  }
@@ -868,16 +877,16 @@ class we {
868
877
  * await fs.clear('/data');
869
878
  * \`\`\`
870
879
  */
871
- async clear(t = "/") {
880
+ async clear(e = "/") {
872
881
  await this.ensureMounted();
873
882
  try {
874
- const r = await this.readdir(t, { withFileTypes: !0 });
883
+ const r = await this.readdir(e, { withFileTypes: !0 });
875
884
  for (const a of r) {
876
- const n = \`\${t === "/" ? "" : t}/\${a.name}\`;
885
+ const n = \`\${e === "/" ? "" : e}/\${a.name}\`;
877
886
  await this.remove(n, { recursive: !0 });
878
887
  }
879
888
  } catch (r) {
880
- throw r instanceof c ? r : new c(\`Failed to clear directory: \${t}\`, "CLEAR_FAILED");
889
+ throw r instanceof c ? r : new c(\`Failed to clear directory: \${e}\`, "CLEAR_FAILED");
881
890
  }
882
891
  }
883
892
  /**
@@ -904,19 +913,22 @@ class we {
904
913
  * await fs.rm('/maybe/exists', { force: true });
905
914
  * \`\`\`
906
915
  */
907
- async remove(t, r) {
916
+ async remove(e, r) {
908
917
  await this.ensureMounted();
909
- const a = r?.recursive ?? !1, n = r?.force ?? !1, s = P(t);
910
- if (!s)
911
- throw new k("Invalid path", t);
912
- const o = await this.getDirectoryHandle(M(t), !1);
918
+ const a = r?.recursive ?? !1, n = r?.force ?? !1;
919
+ if (e === "/")
920
+ throw new c("Cannot remove root directory", "EROOT");
921
+ const i = I(e);
922
+ if (!i)
923
+ throw new k("Invalid path", e);
924
+ const o = await this.getDirectoryHandle(P(e), !1);
913
925
  try {
914
- await o.removeEntry(s, { recursive: a });
915
- } catch (i) {
916
- if (i.name === "NotFoundError") {
926
+ await o.removeEntry(i, { recursive: a });
927
+ } catch (s) {
928
+ if (s.name === "NotFoundError") {
917
929
  if (!n)
918
- throw new c(\`No such file or directory: \${t}\`, "ENOENT");
919
- } else throw i.name === "InvalidModificationError" ? new c(\`Directory not empty: \${t}. Use recursive option to force removal.\`, "ENOTEMPTY") : i.name === "TypeMismatchError" && !a ? new c(\`Cannot remove directory without recursive option: \${t}\`, "EISDIR") : new c(\`Failed to remove path: \${t}\`, "RM_FAILED");
930
+ throw new c(\`No such file or directory: \${e}\`, "ENOENT");
931
+ } else throw s.name === "InvalidModificationError" ? new c(\`Directory not empty: \${e}. Use recursive option to force removal.\`, "ENOTEMPTY") : s.name === "TypeMismatchError" && !a ? new c(\`Cannot remove directory without recursive option: \${e}\`, "EISDIR") : new c(\`Failed to remove path: \${e}\`, "RM_FAILED");
920
932
  }
921
933
  }
922
934
  /**
@@ -937,15 +949,15 @@ class we {
937
949
  * console.log(absolute); // '/data/file.txt'
938
950
  * \`\`\`
939
951
  */
940
- async realpath(t) {
952
+ async realpath(e) {
941
953
  await this.ensureMounted();
942
954
  try {
943
- const r = ce(t);
955
+ const r = ce(e);
944
956
  if (!await this.exists(r))
945
957
  throw new b(r);
946
958
  return r;
947
959
  } catch (r) {
948
- throw r instanceof c ? r : new c(\`Failed to resolve path: \${t}\`, "REALPATH_FAILED");
960
+ throw r instanceof c ? r : new c(\`Failed to resolve path: \${e}\`, "REALPATH_FAILED");
949
961
  }
950
962
  }
951
963
  /**
@@ -964,14 +976,14 @@ class we {
964
976
  * await fs.rename('/old/path/file.txt', '/new/path/renamed.txt');
965
977
  * \`\`\`
966
978
  */
967
- async rename(t, r) {
979
+ async rename(e, r) {
968
980
  await this.ensureMounted();
969
981
  try {
970
- if (!await this.exists(t))
971
- throw new b(t);
972
- await this.copy(t, r, { recursive: !0 }), await this.remove(t, { recursive: !0 });
982
+ if (!await this.exists(e))
983
+ throw new b(e);
984
+ await this.copy(e, r, { recursive: !0 }), await this.remove(e, { recursive: !0 });
973
985
  } catch (a) {
974
- throw a instanceof c ? a : new c(\`Failed to rename from \${t} to \${r}\`, "RENAME_FAILED");
986
+ throw a instanceof c ? a : new c(\`Failed to rename from \${e} to \${r}\`, "RENAME_FAILED");
975
987
  }
976
988
  }
977
989
  /**
@@ -999,37 +1011,37 @@ class we {
999
1011
  * await fs.copy('/source', '/dest', { recursive: true, force: false });
1000
1012
  * \`\`\`
1001
1013
  */
1002
- async copy(t, r, a) {
1014
+ async copy(e, r, a) {
1003
1015
  await this.ensureMounted();
1004
1016
  try {
1005
- const n = a?.recursive ?? !1, s = a?.force ?? !0;
1006
- if (!await this.exists(t))
1007
- throw new c(\`Source does not exist: \${t}\`, "ENOENT");
1008
- if (await this.exists(r) && !s)
1017
+ const n = a?.recursive ?? !1, i = a?.force ?? !0;
1018
+ if (!await this.exists(e))
1019
+ throw new c(\`Source does not exist: \${e}\`, "ENOENT");
1020
+ if (await this.exists(r) && !i)
1009
1021
  throw new c(\`Destination already exists: \${r}\`, "EEXIST");
1010
- if ((await this.stat(t)).isFile) {
1011
- const u = await this.readFile(t, "binary");
1022
+ if ((await this.stat(e)).isFile) {
1023
+ const u = await this.readFile(e, "binary");
1012
1024
  await this.writeFile(r, u);
1013
1025
  } else {
1014
1026
  if (!n)
1015
- throw new c(\`Cannot copy directory without recursive option: \${t}\`, "EISDIR");
1027
+ throw new c(\`Cannot copy directory without recursive option: \${e}\`, "EISDIR");
1016
1028
  await this.mkdir(r, { recursive: !0 });
1017
- const u = await this.readdir(t, { withFileTypes: !0 });
1029
+ const u = await this.readdir(e, { withFileTypes: !0 });
1018
1030
  for (const f of u) {
1019
- const w = \`\${t}/\${f.name}\`, h = \`\${r}/\${f.name}\`;
1020
- await this.copy(w, h, { recursive: !0, force: s });
1031
+ const w = \`\${e}/\${f.name}\`, h = \`\${r}/\${f.name}\`;
1032
+ await this.copy(w, h, { recursive: !0, force: i });
1021
1033
  }
1022
1034
  }
1023
1035
  } catch (n) {
1024
- throw n instanceof c ? n : new c(\`Failed to copy from \${t} to \${r}\`, "CP_FAILED");
1036
+ throw n instanceof c ? n : new c(\`Failed to copy from \${e} to \${r}\`, "CP_FAILED");
1025
1037
  }
1026
1038
  }
1027
1039
  /**
1028
1040
  * Start watching a file or directory for changes
1029
1041
  */
1030
- async watch(t) {
1042
+ async watch(e) {
1031
1043
  await this.ensureMounted();
1032
- const r = I(t), a = await this.buildSnapshot(r);
1044
+ const r = M(e), a = await this.buildSnapshot(r);
1033
1045
  this.watchers.set(r, a), this.watchTimer || (this.watchTimer = setInterval(() => {
1034
1046
  this.scanWatches();
1035
1047
  }, this.watchInterval));
@@ -1037,46 +1049,46 @@ class we {
1037
1049
  /**
1038
1050
  * Stop watching a previously watched path
1039
1051
  */
1040
- unwatch(t) {
1041
- const r = I(t);
1052
+ unwatch(e) {
1053
+ const r = M(e);
1042
1054
  this.watchers.delete(r), this.watchers.size === 0 && this.watchTimer && (clearInterval(this.watchTimer), this.watchTimer = null);
1043
1055
  }
1044
- async buildSnapshot(t) {
1056
+ async buildSnapshot(e) {
1045
1057
  const r = /* @__PURE__ */ new Map(), a = async (n) => {
1046
- const s = await this.stat(n);
1047
- if (r.set(n, s), s.isDirectory) {
1058
+ const i = await this.stat(n);
1059
+ if (r.set(n, i), i.isDirectory) {
1048
1060
  const o = await this.readdir(n, { withFileTypes: !0 });
1049
- for (const i of o) {
1050
- const l = \`\${n === "/" ? "" : n}/\${i.name}\`;
1061
+ for (const s of o) {
1062
+ const l = \`\${n === "/" ? "" : n}/\${s.name}\`;
1051
1063
  await a(l);
1052
1064
  }
1053
1065
  }
1054
1066
  };
1055
- return await a(t), r;
1067
+ return await a(e), r;
1056
1068
  }
1057
1069
  async scanWatches() {
1058
1070
  if (!this.scanning) {
1059
1071
  this.scanning = !0;
1060
1072
  try {
1061
1073
  await Promise.all(
1062
- [...this.watchers.entries()].map(async ([t, r]) => {
1074
+ [...this.watchers.entries()].map(async ([e, r]) => {
1063
1075
  let a;
1064
1076
  try {
1065
- a = await this.buildSnapshot(t);
1077
+ a = await this.buildSnapshot(e);
1066
1078
  } catch {
1067
1079
  a = /* @__PURE__ */ new Map();
1068
1080
  }
1069
1081
  const n = [];
1070
- for (const [s, o] of a) {
1071
- const i = r.get(s);
1072
- i ? (i.mtime !== o.mtime || i.size !== o.size) && n.push({ path: s, type: "change" }) : n.push({ path: s, type: "create" });
1082
+ for (const [i, o] of a) {
1083
+ const s = r.get(i);
1084
+ s ? (s.mtime !== o.mtime || s.size !== o.size) && n.push({ path: i, type: "change" }) : n.push({ path: i, type: "create" });
1073
1085
  }
1074
- for (const s of r.keys())
1075
- a.has(s) || n.push({ path: s, type: "delete" });
1086
+ for (const i of r.keys())
1087
+ a.has(i) || n.push({ path: i, type: "delete" });
1076
1088
  if (n.length && this.watchCallback)
1077
- for (const s of n)
1078
- this.watchCallback(s);
1079
- this.watchers.set(t, a);
1089
+ for (const i of n)
1090
+ this.watchCallback(i);
1091
+ this.watchers.set(e, a);
1080
1092
  })
1081
1093
  );
1082
1094
  } finally {
@@ -1112,21 +1124,21 @@ class we {
1112
1124
  * await fs.sync(entries, { cleanBefore: true });
1113
1125
  * \`\`\`
1114
1126
  */
1115
- async sync(t, r) {
1127
+ async sync(e, r) {
1116
1128
  await this.ensureMounted();
1117
1129
  try {
1118
1130
  (r?.cleanBefore ?? !1) && await this.clear("/");
1119
- for (const [n, s] of t) {
1120
- const o = I(n);
1121
- let i;
1122
- s instanceof Blob ? i = await he(s) : i = s, await this.writeFile(o, i);
1131
+ for (const [n, i] of e) {
1132
+ const o = M(n);
1133
+ let s;
1134
+ i instanceof Blob ? s = await he(i) : s = i, await this.writeFile(o, s);
1123
1135
  }
1124
1136
  } catch (a) {
1125
1137
  throw a instanceof c ? a : new c("Failed to sync file system", "SYNC_FAILED");
1126
1138
  }
1127
1139
  }
1128
1140
  }
1129
- typeof self < "u" && self.constructor.name === "DedicatedWorkerGlobalScope" && O(new we());
1130
- //# sourceMappingURL=worker-CMvl9yOu.js.map
1131
- `,i=typeof self<"u"&&self.Blob&&new Blob(["URL.revokeObjectURL(import.meta.url);",o],{type:"text/javascript;charset=utf-8"});function s(r){let t;try{if(t=i&&(self.URL||self.webkitURL).createObjectURL(i),!t)throw"";const e=new Worker(t,{type:"module",name:r?.name});return e.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),e}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(o),{type:"module",name:r?.name})}}function c(r,t){const e=a.wrap(new s);return r&&e.setWatchCallback(a.proxy(r),t),e}exports.DirectoryNotFoundError=n.DirectoryNotFoundError;exports.FileNotFoundError=n.FileNotFoundError;exports.OPFSError=n.OPFSError;exports.OPFSNotMountedError=n.OPFSNotMountedError;exports.OPFSNotSupportedError=n.OPFSNotSupportedError;exports.PathError=n.PathError;exports.PermissionError=n.PermissionError;exports.StorageError=n.StorageError;exports.TimeoutError=n.TimeoutError;exports.basename=n.basename;exports.calculateFileHash=n.calculateFileHash;exports.checkOPFSSupport=n.checkOPFSSupport;exports.convertBlobToUint8Array=n.convertBlobToUint8Array;exports.createBuffer=n.createBuffer;exports.decodeBuffer=n.decodeBuffer;exports.dirname=n.dirname;exports.encodeString=n.encodeString;exports.extname=n.extname;exports.joinPath=n.joinPath;exports.normalizePath=n.normalizePath;exports.readFileData=n.readFileData;exports.resolvePath=n.resolvePath;exports.splitPath=n.splitPath;exports.writeFileData=n.writeFileData;exports.createWorker=c;
1141
+ typeof self < "u" && self.constructor.name === "DedicatedWorkerGlobalScope" && x(new we());
1142
+ //# sourceMappingURL=worker-CRHhlrlS.js.map
1143
+ `,i=typeof self<"u"&&self.Blob&&new Blob(["URL.revokeObjectURL(import.meta.url);",o],{type:"text/javascript;charset=utf-8"});function s(r){let e;try{if(e=i&&(self.URL||self.webkitURL).createObjectURL(i),!e)throw"";const t=new Worker(e,{type:"module",name:r?.name});return t.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(e)}),t}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(o),{type:"module",name:r?.name})}}function c(r,e){const t=a.wrap(new s);return r&&t.setWatchCallback(a.proxy(r),e),t}exports.DirectoryNotFoundError=n.DirectoryNotFoundError;exports.FileNotFoundError=n.FileNotFoundError;exports.OPFSError=n.OPFSError;exports.OPFSNotMountedError=n.OPFSNotMountedError;exports.OPFSNotSupportedError=n.OPFSNotSupportedError;exports.PathError=n.PathError;exports.PermissionError=n.PermissionError;exports.StorageError=n.StorageError;exports.TimeoutError=n.TimeoutError;exports.basename=n.basename;exports.calculateFileHash=n.calculateFileHash;exports.checkOPFSSupport=n.checkOPFSSupport;exports.convertBlobToUint8Array=n.convertBlobToUint8Array;exports.createBuffer=n.createBuffer;exports.decodeBuffer=n.decodeBuffer;exports.dirname=n.dirname;exports.encodeString=n.encodeString;exports.extname=n.extname;exports.joinPath=n.joinPath;exports.normalizePath=n.normalizePath;exports.readFileData=n.readFileData;exports.resolvePath=n.resolvePath;exports.splitPath=n.splitPath;exports.writeFileData=n.writeFileData;exports.createWorker=c;
1132
1144
  //# sourceMappingURL=index.cjs.map