@nika-js/onlymap 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/.vscode/onlymap.code-snippets +13 -0
  2. package/LICENSE.md +4 -0
  3. package/README.md +4 -3
  4. package/THIRD-PARTY-LICENSES.md +7874 -0
  5. package/dist/{Arrow.dom-7AXne1TU.js → Arrow.dom-BNjbQ9jb.js} +23 -23
  6. package/dist/LercDecode.es-CVmNpXBp.js +303 -0
  7. package/dist/assets/LercDecode.es-BJb2dZu5.js +305 -0
  8. package/dist/assets/__vite-browser-external-DDArsqdc.js +29 -0
  9. package/dist/assets/lerc-wasm.wasm +0 -0
  10. package/dist/assets/lzw-BY5a_5nb.js +83 -0
  11. package/dist/assets/worker-DtIrTJB7.js +305 -0
  12. package/dist/assets/zstd-QGAv3PMm.js +383 -0
  13. package/dist/{basemap-DrK6zcu8.js → basemap-BSb-g03Z.js} +6228 -6247
  14. package/dist/{convert-arrow-schema-CvZ3cT5m.js → convert-arrow-schema-DrAihRf9.js} +31 -31
  15. package/dist/ctx.d.ts +3 -0
  16. package/dist/index-CIEkseeV.js +3108 -0
  17. package/dist/index-D67FynN5.js +594 -0
  18. package/dist/{index-C9tgnPNw.js → index-QSkZjzIL.js} +4 -4
  19. package/dist/index-WeMwLoaQ.js +1446 -0
  20. package/dist/{index-CsicbycJ.js → index-lV5eG2Xt.js} +21442 -21860
  21. package/dist/index.d.ts +2 -0
  22. package/dist/ir.d.ts +3 -0
  23. package/dist/layer-registry.d.ts +15 -1
  24. package/dist/legend-spec.d.ts +66 -0
  25. package/dist/lerc-DJzRIT6z.js +30 -0
  26. package/dist/lerc-wasm.wasm +0 -0
  27. package/dist/lzw-BY5a_5nb.js +83 -0
  28. package/dist/mgrs-BY9bIvp4.js +799 -0
  29. package/dist/onlymapjs.css +1 -1
  30. package/dist/onlymapjs.js +24 -23
  31. package/dist/raster-BKf1dx54.js +8843 -0
  32. package/dist/raster.d.ts +61 -0
  33. package/dist/{recordbatch-HRu0SMKp.js → recordbatch-Bpc0uxFn.js} +200 -200
  34. package/dist/{table-accessors-DBjWgN0C.js → table-accessors-CYWTzpQI.js} +71 -76
  35. package/dist/version.d.ts +1 -1
  36. package/dist/zstd-jXobGRcq.js +14 -0
  37. package/llms.txt +3 -3
  38. package/onlymapjs.html-data.json +23 -0
  39. package/package.json +18 -15
  40. package/skills/onlymapjs/SKILL.md +3 -1
  41. package/skills/onlymapjs/references/syntax.md +29 -2
  42. package/dist/index-CiuGqS0i.js +0 -605
  43. package/dist/index-DXoRERAy.js +0 -1457
  44. package/dist/index-Ztkd30f8.js +0 -3907
  45. package/dist/onlymapjs.umd.cjs +0 -8708
package/dist/index.d.ts CHANGED
@@ -78,6 +78,7 @@ export { Layer, CompositeLayer, LayerExtension, WebMercatorViewport, COORDINATE_
78
78
  export { GeoJsonLayer, ScatterplotLayer, IconLayer, BitmapLayer } from "@deck.gl/layers";
79
79
  export { TileLayer, Tile3DLayer } from "@deck.gl/geo-layers";
80
80
  export { SimpleMeshLayer, ScenegraphLayer } from "@deck.gl/mesh-layers";
81
+ export declare function loadRasterModule(): Promise<typeof import("./raster")>;
81
82
  export { compileExpression, AccessorCache, CompileError } from "./expr";
82
83
  export type { Shape, CompileOptions, CompiledExpression } from "./expr";
83
84
  export { evaluateInSandbox, compileFullJsAccessorBlockInSandbox, sandboxHtml, destroySandbox } from "./csp-sandbox";
@@ -104,4 +105,5 @@ export declare const OmMap: {
104
105
  configureLicense: typeof configureLicense;
105
106
  validate: typeof validateManifestString;
106
107
  snapshotIR: typeof snapshotIR;
108
+ loadRasterModule: typeof loadRasterModule;
107
109
  };
package/dist/ir.d.ts CHANGED
@@ -9,9 +9,12 @@
9
9
  export interface LayerMeta {
10
10
  label?: string;
11
11
  color?: string;
12
+ /** Statically-derived color symbology (spec: "Built-in widgets / legend") — set when get-fill-color is a recognizable scale()/categorical expression. */
13
+ legend?: LegendSpec;
12
14
  }
13
15
  export type { Shape } from "./expr";
14
16
  import type { Shape } from "./expr";
17
+ import type { LegendSpec } from "./legend-spec";
15
18
  /**
16
19
  * Columnar (GeoArrow-style) data: one array per field instead of one object
17
20
  * per row (spec: "Columnar / GeoArrow Ingestion"). Produced by the Data
@@ -15,7 +15,16 @@ export interface PropDescriptor {
15
15
  }
16
16
  export interface LayerSchema {
17
17
  type: string;
18
- deckClass: new (props: Record<string, unknown>) => Layer;
18
+ /** Absent only for lazy entries whose chunk hasn't loaded yet (see `loadClass`). */
19
+ deckClass?: new (props: Record<string, unknown>) => Layer;
20
+ /**
21
+ * Lazy-chunk seam (spec: "Raster / GeoTIFF"): a curated entry may ship its
22
+ * SCHEMA eagerly (attribute resolution and validation need it at parse
23
+ * time) while the deck class arrives via dynamic import on first use.
24
+ * `ensureLayerClass` runs the load exactly once; until it settles the
25
+ * runtime simply skips the layer and re-applies when the class lands.
26
+ */
27
+ loadClass?: () => Promise<new (props: Record<string, unknown>) => Layer>;
19
28
  props: PropDescriptor[];
20
29
  /** Hand-authored (curated, ~15) vs. runtime-derived from defaultProps (HU1 tiering). */
21
30
  tier: "curated" | "auto-derived";
@@ -23,5 +32,10 @@ export interface LayerSchema {
23
32
  export declare function registerLayer(schema: Omit<LayerSchema, "tier"> & {
24
33
  tier?: LayerSchema["tier"];
25
34
  }): void;
35
+ /**
36
+ * Kick (or join) the lazy class load for a schema. Returns null when there
37
+ * is nothing to load (class already present, or a plain eager entry).
38
+ */
39
+ export declare function ensureLayerClass(schema: LayerSchema): Promise<void> | null;
26
40
  export declare function getLayerSchema(type: string): LayerSchema | undefined;
27
41
  export declare function getAllLayerSchemas(): ReadonlyMap<string, LayerSchema>;
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Legend spec derivation (spec: "Built-in widgets / legend") — the legend
3
+ * widget's default reflects each layer's ACTUAL color symbology, derived
4
+ * statically from the authored `get-fill-color` expression:
5
+ *
6
+ * scale($f, sequential|diverging, [...], domain=[a,b]) → gradient ramp
7
+ * scale($f, threshold, [...], domain=[b1..bN-1]) → class ranges
8
+ * $f == 'x' ? c1 : $f == 'y' ? c2 : cDefault → categories
9
+ * '#hex' literal / `color` shorthand → single swatch
10
+ *
11
+ * Anything else (arithmetic, js blocks, function accessors on the
12
+ * programmatic front-end) falls back to the single `color` swatch —
13
+ * best-effort static analysis, never a guess. Pure string/AST work over the
14
+ * SOURCE attribute, deliberately separate from the expression compiler: the
15
+ * legend needs structure, the compiler needs functions, and coupling them
16
+ * would make every legend tweak a compiler change.
17
+ */
18
+ export type LegendSpec = {
19
+ kind: "ramp";
20
+ field: string;
21
+ /** CSS color stops in order (hex/rgb strings as authored). */
22
+ colors: string[];
23
+ /** [min, max] displayed at the ramp ends. */
24
+ domain: [number, number];
25
+ } | {
26
+ kind: "classes";
27
+ field: string;
28
+ /** One entry per class: color + human-readable range label. */
29
+ entries: {
30
+ color: string;
31
+ label: string;
32
+ }[];
33
+ } | {
34
+ kind: "categories";
35
+ field: string;
36
+ entries: {
37
+ color: string;
38
+ label: string;
39
+ }[];
40
+ /** The ternary chain's fallback color, when authored. */
41
+ defaultColor?: string;
42
+ };
43
+ /**
44
+ * Representative gradient stops per bundled raster colormap — used to PAINT
45
+ * THE LEGEND, not the map (the map samples the GPU sprite; a 1-D CSS
46
+ * gradient bar only needs a few stops and the eye fills in the rest).
47
+ * Matplotlib reference colors at 0/.25/.5/.75/1. The sprite ships ~107
48
+ * colormaps; this curated dozen covers the ones worth suggesting — an
49
+ * authored name outside it still RENDERS (sprite lookup), it just gets the
50
+ * single-swatch legend fallback.
51
+ */
52
+ export declare const RASTER_COLORMAP_STOPS: Record<string, string[]>;
53
+ /**
54
+ * Raster twin of deriveLegendSpec: a COGLayer with an authored rescale
55
+ * window exposes its colormap as a ramp. Both `min` and `max` must be
56
+ * authored — without a window the ramp ends would be a guess (the runtime
57
+ * defaults to 0–255, but promising that in a legend for float data would
58
+ * label it wrong).
59
+ */
60
+ export declare function deriveRasterLegendSpec(colormap: string | null | undefined, min: number | null | undefined, max: number | null | undefined): LegendSpec | undefined;
61
+ /**
62
+ * Derive a LegendSpec from a `get-fill-color` source expression. Returns
63
+ * undefined when the expression isn't one of the recognizable shapes (the
64
+ * widget falls back to the single swatch).
65
+ */
66
+ export declare function deriveLegendSpec(source: string | undefined | null): LegendSpec | undefined;
@@ -0,0 +1,30 @@
1
+ import { C as a, D as s } from "./raster-BKf1dx54.js";
2
+ const D = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3
+ __proto__: null
4
+ }, Symbol.toStringTag, { value: "Module" }));
5
+ var t;
6
+ (function(e) {
7
+ e[e.None = 0] = "None", e[e.Deflate = 1] = "Deflate", e[e.Zstd = 2] = "Zstd";
8
+ })(t || (t = {}));
9
+ let l = !1;
10
+ async function d() {
11
+ const e = await import("./LercDecode.es-CVmNpXBp.js");
12
+ return l || (await e.load(), l = !0), e;
13
+ }
14
+ async function i(e, r) {
15
+ const o = r.lercParameters?.[1] ?? t.None;
16
+ let n = e;
17
+ if (o === t.Deflate || o === t.Zstd) {
18
+ const c = o === t.Deflate ? a.Deflate : a.Zstd;
19
+ n = await (await s.get(c)())(e, r);
20
+ }
21
+ return { layout: "band-separate", bands: (await d()).decode(n).pixels };
22
+ }
23
+ const b = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
24
+ __proto__: null,
25
+ decode: i
26
+ }, Symbol.toStringTag, { value: "Module" }));
27
+ export {
28
+ D as _,
29
+ b as l
30
+ };
Binary file
@@ -0,0 +1,83 @@
1
+ function F(A, g) {
2
+ try {
3
+ const o = C.__wbindgen_add_to_stack_pointer(-16), y = (function(t, h) {
4
+ const c = h(1 * t.length, 1) >>> 0;
5
+ return G().set(t, c / 1), n = t.length, c;
6
+ })(A, C.__wbindgen_export), e = n;
7
+ C.decompress(o, y, e, g);
8
+ var E = a().getInt32(o + 0, !0), i = a().getInt32(o + 4, !0), I = (B = E, Q = i, B >>>= 0, G().subarray(B / 1, B / 1 + Q)).slice();
9
+ return C.__wbindgen_export2(E, 1 * i, 1), I;
10
+ } finally {
11
+ C.__wbindgen_add_to_stack_pointer(16);
12
+ }
13
+ var B, Q;
14
+ }
15
+ let s = null;
16
+ function a() {
17
+ return (s === null || s.buffer.detached === !0 || s.buffer.detached === void 0 && s.buffer !== C.memory.buffer) && (s = new DataView(C.memory.buffer)), s;
18
+ }
19
+ let D = null;
20
+ function G() {
21
+ return D !== null && D.byteLength !== 0 || (D = new Uint8Array(C.memory.buffer)), D;
22
+ }
23
+ let C, n = 0;
24
+ const R = [62, 0, 0, 0, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51];
25
+ function w(A) {
26
+ return R[A - 43];
27
+ }
28
+ var N = (function(A) {
29
+ let g, E = A.endsWith("==") ? 2 : A.endsWith("=") ? 1 : 0, i = A.length, I = new Uint8Array(i / 4 * 3);
30
+ for (let B = 0, Q = 0; B < i; B += 4, Q += 3) g = w(A.charCodeAt(B)) << 18 | w(A.charCodeAt(B + 1)) << 12 | w(A.charCodeAt(B + 2)) << 6 | w(A.charCodeAt(B + 3)), I[Q] = g >> 16, I[Q + 1] = g >> 8 & 255, I[Q + 2] = 255 & g;
31
+ return I.subarray(0, I.length - E);
32
+ })("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AAAgAkUNAQNAQayJwAAtAAANAEGsicAAQayJwAAtAAAiAkEBIAIbOgAAIAINAAsMAQsgBCADQQEgAhAMIgUNAUEBEBcACyAEIAMQBkGsicAAQQA6AAAgASgCCCECCyABIAU2AgQLIAAgAjYCBCAAIAEoAgQ2AgALqQEBAX8jAEEQayIDJAACfyAARQRAQQAhACADQQxqDAELIANBAjYCDCAAIAJsIQAgA0EIagsgADYCAAJAIAMoAgxFDQAgAygCCCICRQ0AQayJwABBrInAAC0AACIAQQEgABs6AAAgAARAA0BBrInAAC0AAA0AQayJwABBrInAAC0AACIAQQEgABs6AAAgAA0ACwsgASACEAZBrInAAEEAOgAACyADQRBqJAALewECfyACQf//A3EiBSABSQRAIAAgBUECdGotAAMgBARAIANBAWshAyACIQEDQCADIARqIAAgAUH//wNxQQJ0aiIBLQACOgAAIAEvAQAiASACQf//A3EiBiABIAZJGyEBIARBAWsiBA0ACwsPC0EAIAUgAUG8hsAAEBQAC4MBAQJ/IABBADYCCAJAIAEoAhQiBCACQf//A3EiA0sEQCAAKAIEIgQgASgCECADQQF0ai8BACIDSQ0BIAEoAgQgASgCCCACIAAoAgAiASADEAogACADNgIMIAAgBDYCBCAAIAE2AgAPCyADIARBnIfAABAOAAtBACADIARBrIfAABAUAAt8ACACIAMQAyICBEAgAyABIAEgA0sbIgMEQCACIAAgA/wKAAALQayJwABBrInAAC0AACIDQQEgAxs6AAAgAwRAA0BBrInAAC0AAA0AQayJwABBrInAAC0AACIDQQEgAxs6AAAgAw0ACwsgACABEAZBrInAAEEAOgAACyACC3sBAn8jAEEQayIDJABBxInAAEHEicAAKAIAIgRBAWo2AgACQCAEQQBIDQACQEHAicAALQAARQRAQbyJwABBvInAACgCAEEBajYCAEHIicAAKAIAQQBODQEMAgsgA0EIaiAAIAERAAAAC0HAicAAQQA6AAAgAkUNAAALAAtOAgF/AX4jAEEgayIDJAAgAyABNgIMIAMgADYCCCADQoCAgIAQIgQgA0EIaq2ENwMYIAMgBCADQQxqrYQ3AxBBqIDAACADQRBqIAIQFQALWwAgAQRAQayJwABBrInAAC0AACICQQEgAhs6AAAgAgRAA0BBrInAAC0AAA0AQayJwABBrInAAC0AACICQQEgAhs6AAAgAg0ACwsgACABEAZBrInAAEEAOgAACwtHAQN/IAEoAgwiAiABKAIIIgNPIAIgASgCBCIETXFFBEAgAyACIARBvIfAABAUAAsgACACIANrNgIEIAAgASgCACADajYCAAtFAQJ/IwBBEGsiASQAIAFBCGogACAAKAIAQQFBAkEEEAcgASgCCCIAQYGAgIB4RwRAIAEoAgwhAiAAEBcACyABQRBqJAALRQECfyMAQRBrIgEkACABQQhqIAAgACgCAEEBQQJBAhAHIAEoAggiAEGBgICAeEcEQCABKAIMIQIgABAXAAsgAUEQaiQAC0IBAn8jAEEQayIFJAAgBUEIaiAAIAEgAiADIAQQByAFKAIIIgBBgYCAgHhHBEAgBSgCDCEGIAAQFwALIAVBEGokAAv4AQACQCAAIAJNBEAgACABTSABIAJLcg0BIwBBIGsiAiQAIAIgATYCDCACIAA2AgggAiACQQxqrUKAgICAEIQ3AxggAiACQQhqrUKAgICAEIQ3AxBBgIDAACACQRBqIAMQFQALIwBBIGsiASQAIAEgAjYCDCABIAA2AgggASABQQxqrUKAgICAEIQ3AxggASABQQhqrUKAgICAEIQ3AxBB34DAACABQRBqIAMQFQALIwBBIGsiACQAIAAgAjYCDCAAIAE2AgggACAAQQxqrUKAgICAEIQ3AxggACAAQQhqrUKAgICAEIQ3AxBBmIHAACAAQRBqIAMQFQAL2QECAX8BfiMAQSBrIgMkACADIAE2AhAgAyAANgIMIANBATsBHCADIAI2AhggAyADQQxqNgIUIwBBEGsiASQAIANBFGoiACkCACEEIAEgADYCDCABIAQ3AgQjAEEQayIAJAAgAUEEaiIBKAIAIgIoAgQiA0EBcUUEQCAAQYCAgIB4NgIAIAAgATYCDCABKAIIIgEtAAghAiABLQAJGiAAQQMgAhANAAsgAigCACECIAAgA0EBdjYCBCAAIAI2AgAgASgCCCIBLQAIIQIgAS0ACRogAEEEIAIQDQALLgACQCABaUEBRyAAQYCAgIB4IAFrS3INACAABEAgASAAEAMiAUUNAQsgAQ8LAAsZACAABEAQGQALQfyDwABBI0GQhMAAEBUACwsAIAAjAGokACMACw0AQbiJwABBAToAAAALDAAgACABKQIANwMACwkAIABBADYCAAsLwAkCAEGAgMAAC6kJFnNsaWNlIGluZGV4IHN0YXJ0cyBhdCDADSBidXQgZW5kcyBhdCDAACBpbmRleCBvdXQgb2YgYm91bmRzOiB0aGUgbGVuIGlzIMASIGJ1dCB0aGUgaW5kZXggaXMgwAAScmFuZ2Ugc3RhcnQgaW5kZXggwCIgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggwAAQcmFuZ2UgZW5kIGluZGV4IMAiIG91dCBvZiByYW5nZSBmb3Igc2xpY2Ugb2YgbGVuZ3RoIMAAbGlicmFyeS9jb3JlL3NyYy9mbXQvbnVtLnJzAC9Vc2Vycy9reWxlLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvd2FzbS1iaW5kZ2VuLTAuMi4xMDgvc3JjL2V4dGVybnJlZi5ycwAvVXNlcnMva3lsZS8uY2FyZ28vcmVnaXN0cnkvc3JjL2luZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmL3dlZXpsLTAuMS4xMi9zcmMvZGVjb2RlLnJzAGxpYnJhcnkvYWxsb2Mvc3JjL3Jhd192ZWMvbW9kLnJzAHNyYy9saWIucnMAAADPARAACgAAACoAAAAYAAAAzwEQAAoAAAArAAAAHgAAAGNhcGFjaXR5IG92ZXJmbG93AAAArgEQACAAAAAcAAAABQAAADAwMDEwMjAzMDQwNTA2MDcwODA5MTAxMTEyMTMxNDE1MTYxNzE4MTkyMDIxMjIyMzI0MjUyNjI3MjgyOTMwMzEzMjMzMzQzNTM2MzczODM5NDA0MTQyNDM0NDQ1NDY0NzQ4NDk1MDUxNTI1MzU0NTU1NjU3NTg1OTYwNjE2MjYzNjQ2NTY2Njc2ODY5NzA3MTcyNzM3NDc1NzY3Nzc4Nzk4MDgxODI4Mzg0ODU4Njg3ODg4OTkwOTE5MjkzOTQ5NTk2OTc5ODk5zwAQABsAAABXAgAABQAAAFJlZkNlbGwgYWxyZWFkeSBib3Jyb3dlZOsAEABmAAAAfwAAABEAAADrABAAZgAAAIwAAAARAAAAbWlkID4gbGVuAAAAUgEQAFsAAADRBQAAIAAAAFIBEABbAAAAvwUAACQAAABSARAAWwAAAKcFAAAUAAAAUgEQAFsAAAC0BQAAIAAAAFIBEABbAAAAawUAACcAAABSARAAWwAAAGsFAAAJAAAAUgEQAFsAAAB1BQAAIQAAAFIBEABbAAAAeAUAAB4AAABSARAAWwAAAIEFAAAUAAAAUgEQAFsAAADABAAAFwAAAFIBEABbAAAAugQAABcAAABSARAAWwAAAKoDAAAgAAAAUgEQAFsAAACvAwAAMAAAAFIBEABbAAAAxgMAADAAAABSARAAWwAAANUDAAAVAAAAUgEQAFsAAADeAwAALwAAAFIBEABbAAAACQQAACYAAABSARAAWwAAAAcEAAAmAAAAUgEQAFsAAAA1BAAANwAAAFIBEABbAAAAOwQAAB8AAABSARAAWwAAADwEAAAZAAAAUgEQAFsAAAAiBAAALgAAAFIBEABbAAAAagQAAB4AQbCJwAALBf////8EAEgJcHJvZHVjZXJzAQxwcm9jZXNzZWQtYnkCBndhbHJ1cwYwLjI0LjQMd2FzbS1iaW5kZ2VuEzAuMi4xMDggKGE3ODhmNThmOSk=");
33
+ function r(A, g) {
34
+ const E = F(A, g);
35
+ if (E.length === 0) throw Error("Failed to decode with LZW decoder.");
36
+ return E;
37
+ }
38
+ await (async function(A) {
39
+ if (C !== void 0) return C;
40
+ A !== void 0 && (Object.getPrototypeOf(A) === Object.prototype ? { module_or_path: A } = A : console.warn("using deprecated parameters for the initialization function; pass a single object instead"));
41
+ const g = { __proto__: null, "./index_bg.js": { __proto__: null } };
42
+ (typeof A == "string" || typeof Request == "function" && A instanceof Request || typeof URL == "function" && A instanceof URL) && (A = fetch(A));
43
+ const { instance: E, module: i } = await (async function(I, B) {
44
+ if (typeof Response == "function" && I instanceof Response) {
45
+ if (typeof WebAssembly.instantiateStreaming == "function") try {
46
+ return await WebAssembly.instantiateStreaming(I, B);
47
+ } catch (o) {
48
+ if (!I.ok || !(function(y) {
49
+ switch (y) {
50
+ case "basic":
51
+ case "cors":
52
+ case "default":
53
+ return !0;
54
+ }
55
+ return !1;
56
+ })(I.type) || I.headers.get("Content-Type") === "application/wasm") throw o;
57
+ console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", o);
58
+ }
59
+ const Q = await I.arrayBuffer();
60
+ return await WebAssembly.instantiate(Q, B);
61
+ }
62
+ {
63
+ const Q = await WebAssembly.instantiate(I, B);
64
+ return Q instanceof WebAssembly.Instance ? { instance: Q, module: I } : Q;
65
+ }
66
+ })(await A, g);
67
+ return (function(I) {
68
+ return C = I.exports, s = null, D = null, C;
69
+ })(E);
70
+ })({ module_or_path: N });
71
+ async function S(A, g) {
72
+ const { width: E, height: i, samplesPerPixel: I, bitsPerSample: B } = g, Q = E * i * I * (B / 8), o = r(new Uint8Array(A), Q);
73
+ return M(o);
74
+ }
75
+ function M(A) {
76
+ if (A.byteOffset === 0 && A.byteLength === A.buffer.byteLength)
77
+ return A.buffer;
78
+ const g = new Uint8Array(A.byteLength);
79
+ return g.set(A), g.buffer;
80
+ }
81
+ export {
82
+ S as decode
83
+ };