modern-pdf-lib 0.25.0 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/README.md +16 -3
  2. package/dist/{batchOptimize-Ba_pWw71.cjs → batchOptimize-CXC9gNqD.cjs} +55 -55
  3. package/dist/{batchOptimize-DtRwBOqR.mjs → batchOptimize-CjLGD5ie.mjs} +25 -25
  4. package/dist/{bridge-DYCQzxF7.cjs → bridge-ByvzPu5h.cjs} +29 -31
  5. package/dist/{bridge-CcivG_Sm.mjs → bridge-ZD6O6QQa.mjs} +4 -5
  6. package/dist/browser.cjs +263 -151
  7. package/dist/browser.d.cts +166 -166
  8. package/dist/browser.d.cts.map +1 -1
  9. package/dist/browser.d.mts +166 -166
  10. package/dist/browser.d.mts.map +1 -1
  11. package/dist/browser.mjs +15 -19
  12. package/dist/cli/index.cjs +7 -7
  13. package/dist/cli/index.mjs +8 -8
  14. package/dist/{compressionAnalysis-odbHC7Uk.mjs → compressionAnalysis-BgKy45pA.mjs} +60 -74
  15. package/dist/{compressionAnalysis-DGs-MqTe.d.mts → compressionAnalysis-CDOp_vPr.d.mts} +136 -136
  16. package/dist/compressionAnalysis-CDOp_vPr.d.mts.map +1 -0
  17. package/dist/{compressionAnalysis-B84FPXaQ.cjs → compressionAnalysis-Djv-Zvcd.cjs} +90 -104
  18. package/dist/{compressionAnalysis-VtYV9Zmq.d.cts → compressionAnalysis-UfmonqbM.d.cts} +136 -136
  19. package/dist/compressionAnalysis-UfmonqbM.d.cts.map +1 -0
  20. package/dist/create.cjs +21 -23
  21. package/dist/create.d.cts +2 -2
  22. package/dist/create.d.mts +2 -2
  23. package/dist/create.mjs +3 -5
  24. package/dist/{deduplicateImages-MfUDPxQz.mjs → deduplicateImages-BTCyAPfJ.mjs} +4 -5
  25. package/dist/{deduplicateImages-cKsnD6Ep.cjs → deduplicateImages-CaGgaqyS.cjs} +14 -15
  26. package/dist/{fieldAppearance-C8PoLFSc.d.mts → fieldAppearance-Df1262CT.d.cts} +44 -44
  27. package/dist/fieldAppearance-Df1262CT.d.cts.map +1 -0
  28. package/dist/{fieldAppearance-CdiGFG5e.d.cts → fieldAppearance-_CZdoUCD.d.mts} +44 -44
  29. package/dist/fieldAppearance-_CZdoUCD.d.mts.map +1 -0
  30. package/dist/fontEmbed-DGiZS0h2.d.cts +677 -0
  31. package/dist/fontEmbed-DGiZS0h2.d.cts.map +1 -0
  32. package/dist/fontEmbed-DtA_riGC.d.mts +677 -0
  33. package/dist/fontEmbed-DtA_riGC.d.mts.map +1 -0
  34. package/dist/forms.cjs +3 -4
  35. package/dist/forms.d.cts +2 -2
  36. package/dist/forms.d.mts +2 -2
  37. package/dist/forms.mjs +2 -3
  38. package/dist/{grayscaleDetect-C6kFF3dk.mjs → grayscaleDetect-6GJrgBRT.mjs} +3 -3
  39. package/dist/{grayscaleDetect-C2m-eEXR.cjs → grayscaleDetect-DAUqxjgR.cjs} +13 -14
  40. package/dist/{imageExtract-zEb1gnkb.cjs → imageExtract-DT50Hp_g.cjs} +13 -14
  41. package/dist/{imageExtract-Dnk_Ssv7.mjs → imageExtract-Dapir-ux.mjs} +3 -4
  42. package/dist/index-C1lZe66f.d.mts +8682 -0
  43. package/dist/index-C1lZe66f.d.mts.map +1 -0
  44. package/dist/index-D1SvXWSI.d.cts +8682 -0
  45. package/dist/index-D1SvXWSI.d.cts.map +1 -0
  46. package/dist/index.cjs +263 -150
  47. package/dist/index.d.cts +7 -7
  48. package/dist/index.d.mts +7 -7
  49. package/dist/index.mjs +14 -17
  50. package/dist/{layout-DH61a1iR.cjs → layout-C4vbTlBW.cjs} +184 -134
  51. package/dist/{layout-D6EUKSP8.mjs → layout-lO4x64kY.mjs} +50 -12
  52. package/dist/{loader-C7B5dVCI.mjs → loader-B1Ix7ozU.mjs} +259 -13
  53. package/dist/{loader-I4zdkoWc.cjs → loader-DR7H0XOf.cjs} +343 -67
  54. package/dist/parse.cjs +7 -8
  55. package/dist/parse.d.cts +3 -3
  56. package/dist/parse.d.mts +3 -3
  57. package/dist/parse.mjs +6 -7
  58. package/dist/pdfDocument-CH2E4UCc.d.mts +5160 -0
  59. package/dist/pdfDocument-CH2E4UCc.d.mts.map +1 -0
  60. package/dist/{pdfDocument-CEbbUP9i.cjs → pdfDocument-C_7mrBCL.cjs} +20493 -9511
  61. package/dist/pdfDocument-CzOipXnw.d.cts +5160 -0
  62. package/dist/pdfDocument-CzOipXnw.d.cts.map +1 -0
  63. package/dist/{pdfDocument-B0_XwS4X.mjs → pdfDocument-DRbT6HZw.mjs} +11017 -863
  64. package/dist/{pdfForm-9gd40uz9.cjs → pdfForm-BVS_do95.cjs} +113 -102
  65. package/dist/pdfForm-Ca86NDWn.d.cts +897 -0
  66. package/dist/pdfForm-Ca86NDWn.d.cts.map +1 -0
  67. package/dist/pdfForm-Ca86NDWn.d.mts +897 -0
  68. package/dist/pdfForm-Ca86NDWn.d.mts.map +1 -0
  69. package/dist/{pdfForm-Cn-cVicP.mjs → pdfForm-CfLnlsj-.mjs} +23 -18
  70. package/dist/{pdfObjects-1veop1_d.cjs → pdfObjects-BcPlSI0a.cjs} +62 -53
  71. package/dist/{pdfObjects-uEsWlfzU.mjs → pdfObjects-CB7TEdbW.mjs} +12 -2
  72. package/dist/rolldown-runtime-ak5kbic3.cjs +18 -0
  73. package/dist/{src-B1iDGLCL.cjs → src-C-IDXuvi.cjs} +9886 -1421
  74. package/dist/{src-Db6Qknoz.mjs → src-DJaD-bJ2.mjs} +8392 -515
  75. package/dist/{streamDecode-Bj568Nc9.mjs → streamDecode-BamENT3k.mjs} +129 -150
  76. package/dist/{streamDecode-CvgErkFu.cjs → streamDecode-DcaZz309.cjs} +139 -160
  77. package/package.json +26 -22
  78. package/dist/compressionAnalysis-DGs-MqTe.d.mts.map +0 -1
  79. package/dist/compressionAnalysis-VtYV9Zmq.d.cts.map +0 -1
  80. package/dist/fflateAdapter-LTAeAhaD.cjs +0 -207
  81. package/dist/fflateAdapter-PSiW_ML7.mjs +0 -196
  82. package/dist/fieldAppearance-C8PoLFSc.d.mts.map +0 -1
  83. package/dist/fieldAppearance-CdiGFG5e.d.cts.map +0 -1
  84. package/dist/fontEmbed-BN842wlb.d.cts +0 -659
  85. package/dist/fontEmbed-BN842wlb.d.cts.map +0 -1
  86. package/dist/fontEmbed-Dgq5K89o.d.mts +0 -659
  87. package/dist/fontEmbed-Dgq5K89o.d.mts.map +0 -1
  88. package/dist/fontSubset-5SLWMmEw.cjs +0 -518
  89. package/dist/fontSubset-D-vQQems.mjs +0 -495
  90. package/dist/index-DCSbmXWh.d.mts +0 -5939
  91. package/dist/index-DCSbmXWh.d.mts.map +0 -1
  92. package/dist/index-J1W3FdL8.d.cts +0 -5939
  93. package/dist/index-J1W3FdL8.d.cts.map +0 -1
  94. package/dist/libdeflateWasm-8b91Vmia.mjs +0 -220
  95. package/dist/libdeflateWasm-BdiDEJOj.cjs +0 -237
  96. package/dist/pdfCatalog-3yMIhJtt.mjs +0 -138
  97. package/dist/pdfCatalog-CYy4NXEY.cjs +0 -173
  98. package/dist/pdfDocument-BgvEP5Po.d.mts +0 -4673
  99. package/dist/pdfDocument-BgvEP5Po.d.mts.map +0 -1
  100. package/dist/pdfDocument-CbU-2TjT.d.cts +0 -4673
  101. package/dist/pdfDocument-CbU-2TjT.d.cts.map +0 -1
  102. package/dist/pdfForm-BiyNtYem.d.mts +0 -905
  103. package/dist/pdfForm-BiyNtYem.d.mts.map +0 -1
  104. package/dist/pdfForm-SOXJ72LW.d.cts +0 -905
  105. package/dist/pdfForm-SOXJ72LW.d.cts.map +0 -1
  106. package/dist/pdfPage-B_d9HmkG.mjs +0 -8015
  107. package/dist/pdfPage-Cd8jOJp6.cjs +0 -8728
  108. package/dist/pngEmbed-BWAbEUKF.mjs +0 -552
  109. package/dist/pngEmbed-D4X4ZN-3.cjs +0 -563
  110. package/dist/rolldown-runtime-CKhH4XqG.cjs +0 -24
@@ -1,6 +1,236 @@
1
- import { os as __exportAll } from "./index-DCSbmXWh.d.mts";
2
-
1
+ import { Vu as __exportAll } from "./index-C1lZe66f.d.mts";
2
+ //#region src/wasm/inlineWasm.ts
3
+ /**
4
+ * @module wasm/inlineWasm
5
+ *
6
+ * Provides runtime access to inline (base64-encoded) WASM module bytes
7
+ * with **lazy decoding** and **GC-friendly caching**.
8
+ *
9
+ * This module is the runtime companion to the build-time code generation
10
+ * script `scripts/generate-inline-wasm.ts`. It imports the generated
11
+ * constants from `inlineWasm.generated.ts` and exposes functions that
12
+ * decode a module's base64 string into a `Uint8Array` on demand.
13
+ *
14
+ * Design:
15
+ * - The heavy lifting (reading WASM files, base64 encoding) happens at
16
+ * **build time** via the code generation script.
17
+ * - At **runtime**, base64 decoding is deferred until the module is
18
+ * actually requested — no upfront cost.
19
+ * - Decoded bytes are held via `WeakRef` so the GC can reclaim them
20
+ * when memory pressure is high. A strong cache is also available
21
+ * for performance-critical paths.
22
+ * - {@link preloadInlineWasm} allows proactive decoding before first use.
23
+ * - {@link getInlineWasmSize} returns the encoded size without triggering
24
+ * any base64 decode.
25
+ *
26
+ * @packageDocumentation
27
+ */
28
+ /**
29
+ * The set of all WASM module names supported by the library.
30
+ *
31
+ * These correspond to the crate directories under `src/wasm/`.
32
+ */
33
+ const WASM_MODULE_NAMES = [
34
+ "libdeflate",
35
+ "png",
36
+ "ttf",
37
+ "shaping",
38
+ "jbig2",
39
+ "jpeg"
40
+ ];
41
+ /**
42
+ * Strong cache of decoded WASM bytes, keyed by module name.
43
+ *
44
+ * Entries are populated on first access and kept alive as long as
45
+ * callers hold references. {@link clearInlineWasmCache} clears this.
46
+ */
47
+ const strongCache = /* @__PURE__ */ new Map();
48
+ /**
49
+ * Weak cache of decoded WASM bytes.
50
+ *
51
+ * When the strong cache is cleared (e.g., to reduce memory), the
52
+ * weak cache may still hold a reference if the GC hasn't collected
53
+ * the bytes. This avoids redundant re-decoding when bytes are still
54
+ * reachable elsewhere.
55
+ */
56
+ const weakCache = /* @__PURE__ */ new Map();
57
+ /**
58
+ * Retrieve the decoded WASM bytes for a given module name.
59
+ *
60
+ * On first call for a module, the base64 string from the generated file
61
+ * is decoded into a `Uint8Array`. Subsequent calls return the cached
62
+ * result. If the strong cache has been cleared but a `WeakRef` still
63
+ * holds the bytes, they are recovered without re-decoding.
64
+ *
65
+ * @param name The WASM module name (e.g., `'libdeflate'`, `'png'`).
66
+ * @returns The decoded WASM binary as a `Uint8Array`.
67
+ * @throws If the module name is unknown or the generated file does
68
+ * not contain data for the requested module.
69
+ *
70
+ * @example
71
+ * ```ts
72
+ * const wasmBytes = getInlineWasmBytes('libdeflate');
73
+ * const module = await WebAssembly.compile(wasmBytes);
74
+ * ```
75
+ */
76
+ function getInlineWasmBytes(name) {
77
+ if (!isValidModuleName(name)) throw new Error(`Unknown WASM module: "${name}". Valid modules: ${WASM_MODULE_NAMES.join(", ")}`);
78
+ const strong = strongCache.get(name);
79
+ if (strong) return strong;
80
+ const weakRef = weakCache.get(name);
81
+ if (weakRef) {
82
+ const weakBytes = weakRef.deref();
83
+ if (weakBytes) {
84
+ strongCache.set(name, weakBytes);
85
+ return weakBytes;
86
+ }
87
+ weakCache.delete(name);
88
+ }
89
+ const base64Data = getBase64Data(name);
90
+ const bytes = Uint8Array.fromBase64(base64Data);
91
+ strongCache.set(name, bytes);
92
+ weakCache.set(name, new WeakRef(bytes));
93
+ return bytes;
94
+ }
95
+ /**
96
+ * Check whether a given module name is a valid WASM module name.
97
+ *
98
+ * @param name The name to check.
99
+ * @returns `true` if the name is one of the known WASM modules.
100
+ */
101
+ function isValidModuleName(name) {
102
+ return WASM_MODULE_NAMES.includes(name);
103
+ }
104
+ /**
105
+ * Check whether inline WASM data is available for a given module.
106
+ *
107
+ * Returns `true` if the generated file contains base64 data for the
108
+ * requested module. Returns `false` if the generated file does not
109
+ * exist or does not include the module.
110
+ *
111
+ * @param name The WASM module name.
112
+ * @returns `true` if inline bytes can be retrieved for this module.
113
+ */
114
+ function hasInlineWasmData(name) {
115
+ if (!isValidModuleName(name)) return false;
116
+ try {
117
+ return name in requireGenerated().INLINE_WASM_MODULES;
118
+ } catch {
119
+ return false;
120
+ }
121
+ }
122
+ /**
123
+ * Get the encoded (base64) size of a WASM module **without** decoding it.
124
+ *
125
+ * This is useful for diagnostics, size budgeting, and bundle analysis.
126
+ * The returned value is the number of characters in the base64 string;
127
+ * the actual binary size is approximately `encodedSize * 3 / 4`.
128
+ *
129
+ * @param name The WASM module name.
130
+ * @returns The base64 string length (in characters), or `0` if the
131
+ * module is not available.
132
+ *
133
+ * @example
134
+ * ```ts
135
+ * const encoded = getInlineWasmSize('libdeflate');
136
+ * const binaryApprox = Math.floor(encoded * 3 / 4);
137
+ * console.log(`libdeflate: ~${binaryApprox} bytes binary`);
138
+ * ```
139
+ */
140
+ function getInlineWasmSize(name) {
141
+ if (!isValidModuleName(name)) return 0;
142
+ try {
143
+ const data = requireGenerated().INLINE_WASM_MODULES[name];
144
+ return data ? data.length : 0;
145
+ } catch {
146
+ return 0;
147
+ }
148
+ }
149
+ /**
150
+ * Proactively decode and cache WASM bytes for the specified modules.
151
+ *
152
+ * Call this during application initialization to avoid decoding latency
153
+ * on the first actual use. If no names are provided, all available
154
+ * modules are preloaded.
155
+ *
156
+ * @param names Optional list of module names to preload. Defaults to
157
+ * all modules present in the generated data.
158
+ * @returns The names of modules that were successfully preloaded.
159
+ *
160
+ * @example
161
+ * ```ts
162
+ * // Preload specific modules
163
+ * preloadInlineWasm('libdeflate', 'png');
164
+ *
165
+ * // Preload everything available
166
+ * preloadInlineWasm();
167
+ * ```
168
+ */
169
+ function preloadInlineWasm(...names) {
170
+ const targets = names.length > 0 ? names : [...WASM_MODULE_NAMES];
171
+ const loaded = [];
172
+ for (const name of targets) {
173
+ if (!isValidModuleName(name)) continue;
174
+ if (strongCache.has(name)) {
175
+ loaded.push(name);
176
+ continue;
177
+ }
178
+ try {
179
+ getInlineWasmBytes(name);
180
+ loaded.push(name);
181
+ } catch {}
182
+ }
183
+ return loaded;
184
+ }
185
+ /**
186
+ * Lazily load and cache the generated module.
187
+ *
188
+ * Uses a dynamic import expression to avoid hard compile-time dependency
189
+ * on the generated file (which may not exist during development).
190
+ */
191
+ function requireGenerated() {
192
+ try {
193
+ throw new Error("Inline WASM data not loaded. Call loadInlineWasmModule() first, or run `npm run generate:wasm-inline`.");
194
+ } catch (err) {
195
+ throw err;
196
+ }
197
+ }
198
+ /**
199
+ * Extract the base64 string for a given module name from the generated data.
200
+ *
201
+ * @throws If the generated data is not loaded or does not contain the module.
202
+ */
203
+ function getBase64Data(name) {
204
+ try {
205
+ const moduleData = requireGenerated().INLINE_WASM_MODULES[name];
206
+ if (!moduleData) throw new Error(`WASM module "${name}" is not available in the generated inline data. Run \`npm run generate:wasm-inline\` to regenerate.`);
207
+ return moduleData;
208
+ } catch (err) {
209
+ if (err instanceof Error && err.message.includes("is not available")) throw err;
210
+ throw new Error(`Failed to load inline WASM data for module "${name}". The generated file may not exist. Run \`npm run generate:wasm-inline\` to generate it. Original error: ${err instanceof Error ? err.message : String(err)}`);
211
+ }
212
+ }
213
+ //#endregion
3
214
  //#region src/wasm/loader.ts
215
+ /**
216
+ * @module wasm/loader
217
+ *
218
+ * Universal WASM module loader for the modern-pdf library.
219
+ *
220
+ * Provides a single entry point for loading `.wasm` binaries across
221
+ * all supported JavaScript runtimes:
222
+ *
223
+ * - **Browser**: Uses `fetch()` to load from a URL.
224
+ * - **Node.js**: Uses `fs/promises` via dynamic import to read from disk.
225
+ * - **Deno**: Uses `Deno.readFile()` or `fetch()` for local/remote files.
226
+ * - **Bun**: Uses `Bun.file()` for local files or `fetch()` for URLs.
227
+ * - **Cloudflare Workers / Edge**: Must provide WASM bytes directly
228
+ * (no filesystem access), or use bundled imports.
229
+ *
230
+ * Loaded modules are cached by name to avoid redundant fetches.
231
+ *
232
+ * @packageDocumentation
233
+ */
4
234
  var loader_exports = /* @__PURE__ */ __exportAll({
5
235
  clearWasmCache: () => clearWasmCache,
6
236
  configureWasmLoader: () => configureWasmLoader,
@@ -39,13 +269,13 @@ let globalConfig = {};
39
269
  * ```
40
270
  */
41
271
  function detectRuntime() {
42
- if (typeof globalThis !== "undefined" && "caches" in globalThis && typeof globalThis["HTMLElement"] === "undefined" && typeof globalThis["process"] === "undefined") {
272
+ if ("caches" in globalThis && !("HTMLElement" in globalThis) && !("process" in globalThis)) {
43
273
  if (typeof globalThis["navigator"] === "object") {
44
274
  if ((globalThis.navigator?.userAgent ?? "").includes("Cloudflare-Workers")) return "workerd";
45
275
  }
46
276
  }
47
- if (typeof globalThis["Deno"] === "object") return "deno";
48
- if (typeof globalThis["Bun"] === "object") return "bun";
277
+ if ("Deno" in globalThis) return "deno";
278
+ if ("Bun" in globalThis) return "bun";
49
279
  if (typeof globalThis["process"] === "object" && typeof globalThis["process"]?.["versions"] === "object" && typeof (globalThis["process"]?.["versions"])?.["node"] === "string") return "node";
50
280
  if (typeof globalThis["ServiceWorkerGlobalScope"] === "function" && typeof self !== "undefined" && self instanceof globalThis["ServiceWorkerGlobalScope"]) return "service-worker";
51
281
  if (typeof globalThis.document === "object" || typeof globalThis.window === "object") return "browser";
@@ -99,7 +329,10 @@ async function loadViaFetch(url) {
99
329
  */
100
330
  async function loadViaNodeFs(filePath) {
101
331
  try {
102
- const { readFile } = await import("node:fs/promises");
332
+ const { readFile } = await import(
333
+ /* @vite-ignore */
334
+ "node:fs/promises"
335
+ );
103
336
  const buffer = await readFile(filePath);
104
337
  return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);
105
338
  } catch (err) {
@@ -129,14 +362,22 @@ function resolveModulePath(name, config, runtime) {
129
362
  case "service-worker": return `/wasm/${filename}`;
130
363
  case "node":
131
364
  case "bun": try {
132
- return new URL(`../wasm/${name}/pkg/${filename}`, import.meta.url).pathname;
365
+ return new URL(`./wasm/${name}/${filename}`, import.meta.url).pathname;
133
366
  } catch {
134
- return `./wasm/${name}/pkg/${filename}`;
367
+ try {
368
+ return new URL(`../wasm/${name}/pkg/${filename}`, import.meta.url).pathname;
369
+ } catch {
370
+ return `./wasm/${name}/pkg/${filename}`;
371
+ }
135
372
  }
136
373
  case "deno": try {
137
- return new URL(`../wasm/${name}/pkg/${filename}`, import.meta.url).href;
374
+ return new URL(`./wasm/${name}/${filename}`, import.meta.url).href;
138
375
  } catch {
139
- return `./wasm/${name}/pkg/${filename}`;
376
+ try {
377
+ return new URL(`../wasm/${name}/pkg/${filename}`, import.meta.url).href;
378
+ } catch {
379
+ return `./wasm/${name}/pkg/${filename}`;
380
+ }
140
381
  }
141
382
  case "workerd": throw new Error(`Cannot auto-resolve WASM path in Workers/Edge runtime. Provide WASM bytes via configureWasmLoader({ moduleBytes: { ${name}: bytes } }) or use modulePaths configuration.`);
142
383
  default: return `./wasm/${name}/pkg/${filename}`;
@@ -174,6 +415,11 @@ async function loadWasmModule(name) {
174
415
  moduleCache.set(name, bytes);
175
416
  return bytes;
176
417
  }
418
+ if (hasInlineWasmData(name)) try {
419
+ const bytes = getInlineWasmBytes(name);
420
+ moduleCache.set(name, bytes);
421
+ return bytes;
422
+ } catch {}
177
423
  const runtime = detectRuntime();
178
424
  const modulePath = resolveModulePath(name, globalConfig, runtime);
179
425
  let bytes;
@@ -322,7 +568,7 @@ function resetWasmLoader() {
322
568
  moduleCache.clear();
323
569
  globalConfig = {};
324
570
  }
325
-
326
571
  //#endregion
327
- export { isWasmDisabled as a, loadWasmModuleStreaming as c, resetWasmLoader as d, instantiateWasmModuleStreaming as i, loader_exports as l, configureWasmLoader as n, isWasmModuleCached as o, detectRuntime as r, loadWasmModule as s, clearWasmCache as t, provideWasmBytes as u };
328
- //# sourceMappingURL=loader-C7B5dVCI.mjs.map
572
+ export { isWasmDisabled as a, loadWasmModuleStreaming as c, resetWasmLoader as d, getInlineWasmBytes as f, preloadInlineWasm as g, isValidModuleName as h, instantiateWasmModuleStreaming as i, loader_exports as l, hasInlineWasmData as m, configureWasmLoader as n, isWasmModuleCached as o, getInlineWasmSize as p, detectRuntime as r, loadWasmModule as s, clearWasmCache as t, provideWasmBytes as u };
573
+
574
+ //# sourceMappingURL=loader-B1Ix7ozU.mjs.map