create-opentray 0.21.1 → 0.22.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 (45) hide show
  1. package/README.md +28 -6
  2. package/dist/avif-DCXcyYJR.mjs +2 -0
  3. package/dist/{bin-va204Tk0.mjs → bin-Dyfucd3C.mjs} +4598 -750
  4. package/dist/bin-Dyfucd3C.mjs.map +1 -0
  5. package/dist/bin.mjs +1 -1
  6. package/dist/decode-C4b5NXc_.mjs +1236 -0
  7. package/dist/decode-C4b5NXc_.mjs.map +1 -0
  8. package/dist/decode-Dsj9J0OD.mjs +1214 -0
  9. package/dist/decode-Dsj9J0OD.mjs.map +1 -0
  10. package/dist/decode-FysWS28R.mjs +254 -0
  11. package/dist/decode-FysWS28R.mjs.map +1 -0
  12. package/dist/decode-Xr7mARKr.mjs +1262 -0
  13. package/dist/decode-Xr7mARKr.mjs.map +1 -0
  14. package/dist/{decode-ico-NdYuFN-i.mjs → decode-ico-D3SL2BXi.mjs} +2 -2
  15. package/dist/{decode-ico-NdYuFN-i.mjs.map → decode-ico-D3SL2BXi.mjs.map} +1 -1
  16. package/dist/full.umd-oM1VUBRH.mjs +3055 -0
  17. package/dist/full.umd-oM1VUBRH.mjs.map +1 -0
  18. package/dist/index.d.mts +123 -5
  19. package/dist/index.d.mts.map +1 -1
  20. package/dist/index.mjs +1 -1
  21. package/dist/jpeg-B4tsxG5f.mjs +2 -0
  22. package/dist/png-rD0XEazj.mjs +35 -0
  23. package/dist/png-rD0XEazj.mjs.map +1 -0
  24. package/dist/raster-BQ07mKLu.mjs +493 -0
  25. package/dist/raster-BQ07mKLu.mjs.map +1 -0
  26. package/dist/resize-B47sgoOb.mjs +489 -0
  27. package/dist/resize-B47sgoOb.mjs.map +1 -0
  28. package/dist/resvg-wasm-fcJTLpJs.mjs +522 -0
  29. package/dist/resvg-wasm-fcJTLpJs.mjs.map +1 -0
  30. package/dist/rolldown-runtime-JspESFgx.mjs +35 -0
  31. package/dist/shell/assets/browse.js +1 -1
  32. package/dist/shell/assets/index.css +1 -1
  33. package/dist/shell/assets/main.js +17 -17
  34. package/dist/skill/SKILL.md +46 -17
  35. package/dist/skill/references/cli-reference.md +8 -3
  36. package/dist/skill/references/how-it-works.md +30 -0
  37. package/dist/webp-CcbaCrQ7.mjs +2 -0
  38. package/dist/webui/assets/browse.js +1 -1
  39. package/dist/webui/assets/index.css +1 -1
  40. package/dist/webui/assets/main.js +17 -17
  41. package/package.json +6 -7
  42. package/skill/SKILL.md +46 -17
  43. package/skill/references/cli-reference.md +8 -3
  44. package/skill/references/how-it-works.md +30 -0
  45. package/dist/bin-va204Tk0.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../packages/core/src/app-id.ts","../packages/core/src/command-family.ts","../packages/core/src/launch-vector.ts","../packages/core/src/tokenize.ts","../packages/core/src/port-scan.ts","../packages/core/src/scrape.ts","../packages/core/src/icon-compose.ts","../packages/core/src/command-run.ts","../packages/core/src/open-app.ts","../packages/core/src/scaffold.ts","../packages/core/src/materialize.ts","../src/wizard.ts","../src/server.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../packages/core/src/app-id.ts","../packages/core/src/command-family.ts","../packages/core/src/launch-vector.ts","../packages/core/src/tokenize.ts","../packages/core/src/port-scan.ts","../packages/core/src/scrape.ts","../../icon/src/generate.ts","../../icon/src/default-icon.ts","../../icon/src/compose.ts","../packages/core/src/command-run.ts","../packages/core/src/open-app.ts","../packages/core/src/scaffold.ts","../packages/core/src/materialize.ts","../src/wizard.ts","../src/server.ts"],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { A as resolveOnPath, C as parseNetstatPorts, D as waitForTcpPort, E as verifyHttpService, F as toProjectDirectoryName, M as deriveDefaultAppId, N as deriveDefaultAppName, O as parseShebangInterpreter, P as isValidAppId, S as parseLsofPorts, T as serviceUrl, _ as faviconCandidateSize, a as isAuthorized, b as scrapeService, c as openMaterializedApp, d as expectedDarwinBundlePath, f as isDirectoryOccupied, g as extractTitle, h as extractFaviconCandidates, i as createWizardServer, j as tokenizeCommandLine, k as resolveLaunchVector, l as pinningHint, m as writeScaffold, o as isLoopbackHost, p as materialize, r as parseWizardCli, s as createWizardSession, t as main, u as detectPackageManager, v as rankFaviconCandidates, w as parsePowerShellPorts, x as createPortDiscovery, y as resolveFaviconUrl } from "./bin-va204Tk0.mjs";
1
+ import { A as resolveOnPath, C as parseNetstatPorts, D as waitForTcpPort, E as verifyHttpService, F as toProjectDirectoryName, M as deriveDefaultAppId, N as deriveDefaultAppName, O as parseShebangInterpreter, P as isValidAppId, S as parseLsofPorts, T as serviceUrl, _ as faviconCandidateSize, a as isAuthorized, b as scrapeService, c as openMaterializedApp, d as expectedDarwinBundlePath, f as isDirectoryOccupied, g as extractTitle, h as extractFaviconCandidates, i as createWizardServer, j as tokenizeCommandLine, k as resolveLaunchVector, l as pinningHint, m as writeScaffold, o as isLoopbackHost, p as materialize, r as parseWizardCli, s as createWizardSession, t as main, u as detectPackageManager, v as rankFaviconCandidates, w as parsePowerShellPorts, x as createPortDiscovery, y as resolveFaviconUrl } from "./bin-Dyfucd3C.mjs";
2
2
  export { createPortDiscovery, createWizardServer, createWizardSession, deriveDefaultAppId, deriveDefaultAppName, detectPackageManager, expectedDarwinBundlePath, extractFaviconCandidates, extractTitle, faviconCandidateSize, isAuthorized, isDirectoryOccupied, isLoopbackHost, isValidAppId, materialize, openMaterializedApp, parseLsofPorts, parseNetstatPorts, parsePowerShellPorts, parseShebangInterpreter, parseWizardCli, pinningHint, rankFaviconCandidates, resolveFaviconUrl, resolveLaunchVector, resolveOnPath, main as runWizardMain, scrapeService, serviceUrl, toProjectDirectoryName, tokenizeCommandLine, verifyHttpService, waitForTcpPort, writeScaffold };
@@ -0,0 +1,2 @@
1
+ import decode from "./decode-Xr7mARKr.mjs";
2
+ export { decode };
@@ -0,0 +1,35 @@
1
+ import { decode, n as encode$1, t as __wbg_init } from "./decode-FysWS28R.mjs";
2
+ //#region ../../node_modules/.pnpm/@jsquash+png@3.1.1/node_modules/@jsquash/png/encode.js
3
+ /**
4
+ * Copyright 2020 Google Inc. All Rights Reserved.
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ * Unless required by applicable law or agreed to in writing, software
10
+ * distributed under the License is distributed on an "AS IS" BASIS,
11
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ * See the License for the specific language governing permissions and
13
+ * limitations under the License.
14
+ */
15
+ let pngModule;
16
+ async function init(moduleOrPath) {
17
+ if (!pngModule) pngModule = __wbg_init(moduleOrPath);
18
+ return pngModule;
19
+ }
20
+ async function encode(data, options = {}) {
21
+ var _a;
22
+ await init();
23
+ const bitDepth = (_a = options === null || options === void 0 ? void 0 : options.bitDepth) !== null && _a !== void 0 ? _a : 8;
24
+ if (bitDepth !== 8 && bitDepth !== 16) throw new Error("Invalid bit depth. Must be either 8 or 16.");
25
+ const isUint16Array = data.data instanceof Uint16Array;
26
+ if (isUint16Array && bitDepth !== 16) throw new Error("Invalid bit depth, must be 16 for Uint16Array or manually convert to RGB8 values with Uint8Array.");
27
+ if (!isUint16Array && bitDepth === 16) throw new Error("Invalid bit depth, must be 8 for Uint8Array or manually convert to RGB16 values with Uint16Array.");
28
+ const output = await encode$1(new Uint8Array(data.data.buffer), data.width, data.height, bitDepth);
29
+ if (!output) throw new Error("Encoding error.");
30
+ return output.buffer;
31
+ }
32
+ //#endregion
33
+ export { decode, encode };
34
+
35
+ //# sourceMappingURL=png-rD0XEazj.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"png-rD0XEazj.mjs","names":["initPngModule","pngEncode"],"sources":["../../../node_modules/.pnpm/@jsquash+png@3.1.1/node_modules/@jsquash/png/encode.js"],"sourcesContent":["/**\n * Copyright 2020 Google Inc. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * http://www.apache.org/licenses/LICENSE-2.0\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport initPngModule, { encode as pngEncode } from './codec/pkg/squoosh_png.js';\nlet pngModule;\nexport async function init(moduleOrPath) {\n if (!pngModule) {\n pngModule = initPngModule(moduleOrPath);\n }\n return pngModule;\n}\nexport default async function encode(data, options = {}) {\n var _a;\n await init();\n const bitDepth = (_a = options === null || options === void 0 ? void 0 : options.bitDepth) !== null && _a !== void 0 ? _a : 8;\n if (bitDepth !== 8 && bitDepth !== 16) {\n throw new Error('Invalid bit depth. Must be either 8 or 16.');\n }\n const isUint16Array = data.data instanceof Uint16Array;\n if (isUint16Array && bitDepth !== 16) {\n throw new Error('Invalid bit depth, must be 16 for Uint16Array or manually convert to RGB8 values with Uint8Array.');\n }\n if (!isUint16Array && bitDepth === 16) {\n throw new Error('Invalid bit depth, must be 8 for Uint8Array or manually convert to RGB16 values with Uint16Array.');\n }\n const encodeData = new Uint8Array(data.data.buffer);\n const output = await pngEncode(encodeData, data.width, data.height, bitDepth);\n if (!output)\n throw new Error('Encoding error.');\n return output.buffer;\n}\n"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;;;;AAaA,IAAI;AACJ,eAAsB,KAAK,cAAc;CACrC,IAAI,CAAC,WACD,YAAYA,WAAc,YAAY;CAE1C,OAAO;AACX;AACA,eAA8B,OAAO,MAAM,UAAU,CAAC,GAAG;CACrD,IAAI;CACJ,MAAM,KAAK;CACX,MAAM,YAAY,KAAK,YAAY,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,cAAc,QAAQ,OAAO,KAAK,IAAI,KAAK;CAC5H,IAAI,aAAa,KAAK,aAAa,IAC/B,MAAM,IAAI,MAAM,4CAA4C;CAEhE,MAAM,gBAAgB,KAAK,gBAAgB;CAC3C,IAAI,iBAAiB,aAAa,IAC9B,MAAM,IAAI,MAAM,mGAAmG;CAEvH,IAAI,CAAC,iBAAiB,aAAa,IAC/B,MAAM,IAAI,MAAM,mGAAmG;CAGvH,MAAM,SAAS,MAAMC,SAAU,IADR,WAAW,KAAK,KAAK,MACJ,GAAG,KAAK,OAAO,KAAK,QAAQ,QAAQ;CAC5E,IAAI,CAAC,QACD,MAAM,IAAI,MAAM,iBAAiB;CACrC,OAAO,OAAO;AAClB"}
@@ -0,0 +1,493 @@
1
+ import { i as __toESM } from "./rolldown-runtime-JspESFgx.mjs";
2
+ import { createRequire } from "node:module";
3
+ import { readFile, readdir } from "node:fs/promises";
4
+ import { homedir, platform } from "node:os";
5
+ import { dirname, join } from "node:path";
6
+ import { readFileSync } from "node:fs";
7
+ import { fileURLToPath } from "node:url";
8
+ //#region ../icon/src/assets.ts
9
+ /**
10
+ * Bundled asset resolution. Assets live at the package root (`assets/`),
11
+ * exactly one level above both `src/` (source checkout) and `dist/` (built
12
+ * output), so the resolution is uniform: package.json `files` ships both
13
+ * `dist` and `assets`.
14
+ */
15
+ const moduleDirectory = dirname(fileURLToPath(import.meta.url));
16
+ const assetsDirectory = () => join(moduleDirectory, "..", "assets");
17
+ //#endregion
18
+ //#region ../icon/src/fonts.ts
19
+ /**
20
+ * Glyph font ladder (plan D5; spike-verified): the WASM rasterizer cannot
21
+ * autoload system fonts, and `loadSystemFonts: true` silently drops text, so
22
+ * every render must pass explicit `fontBuffers`:
23
+ *
24
+ * 1. the embedded OFL subset (deterministic Latin rendering everywhere), then
25
+ * 2. a bounded, ranked scan of well-known OS font directories (CJK and other
26
+ * scripts beyond the embedded subset).
27
+ *
28
+ * Rendering quality is verified empirically downstream (text-presence pixel
29
+ * check in default-icon.ts) — the ladder never silently accepts a blank tile.
30
+ */
31
+ /** Family name referenced by generated glyph SVG text elements. */
32
+ const GLYPH_FONT_FAMILY = "OpenTray Glyph";
33
+ /**
34
+ * Preferred font basenames, highest priority first. CJK-capable fonts lead:
35
+ * the embedded subset already covers Latin, so discovery exists for wider
36
+ * scripts. UI fonts follow so headless Linux still finds a fallback.
37
+ */
38
+ const PREFERRED_PATTERNS = [
39
+ /pingfang|stheiti|hiragino|songti|heiti|kaiti|yuanti/i,
40
+ /sourcehan|source-han|noto.{0,12}(cjk|sc|tc|jp|kr)|wqy|droidsansfallback/i,
41
+ /msyh|msjh|simsun|simhei|simkai|simfang|deng/i,
42
+ /segoeui|arial|helvetica|liberationsans|dejavusans|roboto-regular|ubuntu-regular/i
43
+ ];
44
+ const FONT_EXTENSIONS = /* @__PURE__ */ new Set([
45
+ ".ttf",
46
+ ".otf",
47
+ ".ttc",
48
+ ".otc"
49
+ ]);
50
+ /** Discovery caps: glyph generation reads fonts once per cache miss. */
51
+ const MAX_FONT_FILES = 10;
52
+ const MAX_TOTAL_BYTES = 192 * 1024 * 1024;
53
+ const systemFontDirectories = () => {
54
+ const home = homedir();
55
+ switch (platform()) {
56
+ case "darwin": return [
57
+ "/System/Library/Fonts",
58
+ "/System/Library/Fonts/Supplemental",
59
+ "/Library/Fonts",
60
+ join(home, "Library", "Fonts")
61
+ ];
62
+ case "win32": return [join(process.env.SystemRoot ?? "C:\\Windows", "Fonts"), join(process.env.LOCALAPPDATA ?? join(home, "AppData", "Local"), "Microsoft", "Windows", "Fonts")];
63
+ default: return [
64
+ "/usr/share/fonts",
65
+ "/usr/local/share/fonts",
66
+ join(home, ".local", "share", "fonts"),
67
+ join(home, ".fonts")
68
+ ];
69
+ }
70
+ };
71
+ const listFontFiles = async (directory, depth = 2) => {
72
+ const found = [];
73
+ let entries;
74
+ try {
75
+ entries = await readdir(directory, { withFileTypes: true });
76
+ } catch {
77
+ return found;
78
+ }
79
+ for (const entry of entries) {
80
+ const entryPath = join(directory, entry.name);
81
+ if (entry.isDirectory() && depth > 0) found.push(...await listFontFiles(entryPath, depth - 1));
82
+ else if (entry.isFile() && FONT_EXTENSIONS.has(extOf(entry.name))) found.push(entryPath);
83
+ }
84
+ return found;
85
+ };
86
+ const extOf = (name) => {
87
+ const dot = name.lastIndexOf(".");
88
+ return dot === -1 ? "" : name.slice(dot).toLowerCase();
89
+ };
90
+ const priorityOf = (path) => {
91
+ for (let index = 0; index < PREFERRED_PATTERNS.length; index += 1) if (PREFERRED_PATTERNS[index].test(path)) return index;
92
+ return PREFERRED_PATTERNS.length;
93
+ };
94
+ const cache = /* @__PURE__ */ new Map();
95
+ /** Embedded OFL subset bytes (Inter SemiBold, latin; see assets/*.OFL.txt). */
96
+ const embeddedGlyphFont = async () => {
97
+ const path = join(assetsDirectory(), "inter-glyph.ttf");
98
+ const cached = cache.get(path);
99
+ if (cached !== void 0) return cached;
100
+ const bytes = new Uint8Array(await readFile(path));
101
+ cache.set(path, bytes);
102
+ return bytes;
103
+ };
104
+ let ladderPromise;
105
+ let ladderFingerprintPromise;
106
+ /**
107
+ * Stable identity of the discovered ladder (path + byte length pairs): OS
108
+ * font changes invalidate generated-icon caches without hashing font bytes.
109
+ */
110
+ const glyphLadderFingerprint = () => {
111
+ ladderFingerprintPromise ??= (async () => {
112
+ const parts = [];
113
+ for (const buffer of await glyphFontLadder()) parts.push(`${buffer.byteLength}`);
114
+ return parts.join(",");
115
+ })();
116
+ return ladderFingerprintPromise;
117
+ };
118
+ /**
119
+ * The full font ladder for resvg `fontBuffers`: embedded subset first, then a
120
+ * bounded ranked selection from the OS. Deterministic order, memoized.
121
+ */
122
+ const glyphFontLadder = () => {
123
+ ladderPromise ??= (async () => {
124
+ const embedded = await embeddedGlyphFont();
125
+ const candidates = [];
126
+ for (const directory of systemFontDirectories()) for (const path of await listFontFiles(directory)) candidates.push({
127
+ path,
128
+ priority: priorityOf(path)
129
+ });
130
+ candidates.sort((a, b) => a.priority - b.priority || (a.path < b.path ? -1 : 1));
131
+ const buffers = [embedded];
132
+ let total = embedded.byteLength;
133
+ for (const { path } of candidates) {
134
+ if (buffers.length >= MAX_FONT_FILES || total >= MAX_TOTAL_BYTES) break;
135
+ const cached = cache.get(path);
136
+ if (cached !== void 0) {
137
+ buffers.push(cached);
138
+ total += cached.byteLength;
139
+ continue;
140
+ }
141
+ try {
142
+ const bytes = new Uint8Array(await readFile(path));
143
+ cache.set(path, bytes);
144
+ buffers.push(bytes);
145
+ total += bytes.byteLength;
146
+ } catch {}
147
+ }
148
+ return buffers;
149
+ })();
150
+ return ladderPromise;
151
+ };
152
+ //#endregion
153
+ //#region ../icon/src/types.ts
154
+ const makeImage = (data, width, height) => ({
155
+ data,
156
+ width,
157
+ height,
158
+ colorSpace: "srgb"
159
+ });
160
+ //#endregion
161
+ //#region ../icon/src/wasm.ts
162
+ /**
163
+ * Lazy WASM bootstrap for the kernel's image stack (spike-verified
164
+ * 2026-09-09, demos/wasm-spike):
165
+ *
166
+ * - jsquash v3 codecs auto-`init()` through `fetch(new URL(...))` which Node
167
+ * rejects for file URLs. The only reliable Node path is pre-initializing
168
+ * with the wasm bytes read from disk, via each codec's subpath export.
169
+ * - `@resvg/resvg-wasm` cannot load system fonts in a WASM environment; text
170
+ * must arrive as explicit `fontBuffers` (see fonts.ts). `loadSystemFonts`
171
+ * stays false everywhere — with it true, resvg silently drops text.
172
+ *
173
+ * Every loader is a memoized singleton so repeated generation calls pay the
174
+ * wasm handshake once per process. Initialization failure throws a typed
175
+ * error; callers (runtime daemon, build tools) decide their own fallback.
176
+ */
177
+ const require = createRequire(import.meta.url);
178
+ /**
179
+ * Exact-typed wasm bytes (TS 5.7 typed-array variance: a fresh copy over a
180
+ * plain `ArrayBuffer` keeps codec signatures satisfied without casts).
181
+ */
182
+ const readWasm = (request) => {
183
+ const bytes = readFileSync(require.resolve(request));
184
+ const out = new Uint8Array(new ArrayBuffer(bytes.byteLength));
185
+ out.set(bytes);
186
+ return out;
187
+ };
188
+ /**
189
+ * Compiled module for the emscripten-generation codecs (jpeg/webp/avif),
190
+ * whose `init` accepts a `WebAssembly.Module` positionally (typing gap in
191
+ * their d.ts); the wasm-bindgen generation (png v3, resize, resvg) takes raw
192
+ * bytes instead.
193
+ */
194
+ const readModule = (request) => new WebAssembly.Module(readWasm(request));
195
+ let pngReady;
196
+ let resizeReady;
197
+ let resvgReady;
198
+ /** PNG decode/encode (shared wasm instance between decode and encode). */
199
+ const loadPng = () => {
200
+ pngReady ??= (async () => {
201
+ const { init } = await import("./decode-FysWS28R.mjs");
202
+ await init(readWasm("@jsquash/png/codec/pkg/squoosh_png_bg.wasm"));
203
+ })();
204
+ return pngReady;
205
+ };
206
+ /** Lanczos/other resize kernels. */
207
+ const loadResize = () => {
208
+ resizeReady ??= (async () => {
209
+ const { initResize } = await import("./resize-B47sgoOb.mjs");
210
+ await initResize(readWasm("@jsquash/resize/lib/resize/pkg/squoosh_resize_bg.wasm"));
211
+ })();
212
+ return resizeReady;
213
+ };
214
+ /** SVG rasterizer. */
215
+ const loadResvg = () => {
216
+ resvgReady ??= (async () => {
217
+ const { initWasm } = await import("./resvg-wasm-fcJTLpJs.mjs");
218
+ await initWasm(readWasm("@resvg/resvg-wasm/index_bg.wasm"));
219
+ })();
220
+ return resvgReady;
221
+ };
222
+ /** Decode a PNG to RGBA pixels. */
223
+ const decodePng = async (bytes) => {
224
+ await loadPng();
225
+ const { decode } = await import("./png-rD0XEazj.mjs");
226
+ const buffer = new ArrayBuffer(bytes.byteLength);
227
+ new Uint8Array(buffer).set(bytes);
228
+ const decoded = await decode(buffer);
229
+ if (decoded === null) throw new Error("PNG decode failed");
230
+ return decoded;
231
+ };
232
+ /** Encode RGBA pixels to PNG bytes (no density metadata; see encode.ts pHYs). */
233
+ const encodePng = async (image) => {
234
+ await loadPng();
235
+ const { encode } = await import("./png-rD0XEazj.mjs");
236
+ return new Uint8Array(await encode(image));
237
+ };
238
+ //#endregion
239
+ //#region ../icon/src/raster.ts
240
+ /**
241
+ * Raster foundation for the icon kernel (spike-verified): format-dispatched
242
+ * WASM decoding, aspect-preserving resize with manual letterboxing, EXIF
243
+ * orientation, SVG rasterization through the font ladder, and the raw pixel
244
+ * operations (paste / contain / trim / dest-in clip) that the composition and
245
+ * generation paths are built on.
246
+ */
247
+ const imageOf = (image) => makeImage(new Uint8ClampedArray(image.data), image.width, image.height);
248
+ const emptyImageOf = (width, height) => makeImage(new Uint8ClampedArray(width * height * 4), width, height);
249
+ const cloneImage = (image) => imageOf(image);
250
+ const sniffFormat = (bytes) => {
251
+ if (bytes.length >= 8 && bytes[0] === 137 && bytes[1] === 80) return "png";
252
+ if (bytes.length >= 3 && bytes[0] === 255 && bytes[1] === 216) return "jpeg";
253
+ if (bytes.length >= 12 && bytes[0] === 82 && bytes[1] === 73 && bytes[2] === 70 && bytes[3] === 70 && bytes[8] === 87 && bytes[9] === 69) return "webp";
254
+ if (bytes.length >= 12 && bytes[4] === 102 && bytes[5] === 116 && bytes[6] === 121 && bytes[7] === 112) return "avif";
255
+ const head = new TextDecoder().decode(bytes.subarray(0, 1024).filter((byte) => byte !== 0)).trimStart();
256
+ if (head.startsWith("<?xml") || head.startsWith("<svg")) return "svg";
257
+ return "unknown";
258
+ };
259
+ /** JPEG EXIF orientation (1–8); non-JPEG and missing tags report 1. */
260
+ const exifOrientationOf = async (format, bytes) => {
261
+ if (format !== "jpeg") return 1;
262
+ const imported = await import("./full.umd-oM1VUBRH.mjs").then((m) => /* @__PURE__ */ __toESM(m.default, 1));
263
+ const orientation = (imported.default ?? imported).orientation;
264
+ return await orientation(bytes) ?? 1;
265
+ };
266
+ /** Apply an EXIF orientation value to raw pixels. */
267
+ const applyOrientation = (image, orientation) => {
268
+ if (orientation <= 1 || orientation > 8) return image;
269
+ const { width, height, data } = image;
270
+ const swap = orientation >= 5;
271
+ const out = emptyImageOf(swap ? height : width, swap ? width : height);
272
+ const outW = out.width;
273
+ for (let y = 0; y < height; y += 1) for (let x = 0; x < width; x += 1) {
274
+ const source = (y * width + x) * 4;
275
+ let targetX = x;
276
+ let targetY = y;
277
+ switch (orientation) {
278
+ case 2:
279
+ targetX = width - 1 - x;
280
+ break;
281
+ case 3:
282
+ targetX = width - 1 - x;
283
+ targetY = height - 1 - y;
284
+ break;
285
+ case 4:
286
+ targetY = height - 1 - y;
287
+ break;
288
+ case 5:
289
+ targetX = y;
290
+ targetY = x;
291
+ break;
292
+ case 6:
293
+ targetX = y;
294
+ targetY = width - 1 - x;
295
+ break;
296
+ case 7:
297
+ targetX = height - 1 - y;
298
+ targetY = x;
299
+ break;
300
+ case 8:
301
+ targetX = height - 1 - y;
302
+ targetY = width - 1 - x;
303
+ break;
304
+ default: break;
305
+ }
306
+ const target = (targetY * outW + targetX) * 4;
307
+ out.data[target] = data[source];
308
+ out.data[target + 1] = data[source + 1];
309
+ out.data[target + 2] = data[source + 2];
310
+ out.data[target + 3] = data[source + 3];
311
+ }
312
+ return out;
313
+ };
314
+ /**
315
+ * Decode an encoded raster image (PNG/JPEG/WebP/AVIF) or rasterize an SVG
316
+ * (through the font ladder; text never silently drops) to RGBA pixels.
317
+ * JPEG orientation is applied so phone-photo sources compose upright.
318
+ */
319
+ const decodeImage = async (bytes) => {
320
+ const format = sniffFormat(bytes);
321
+ const decoded = await (async () => {
322
+ switch (format) {
323
+ case "png": return decodePng(bytes);
324
+ case "jpeg": {
325
+ const { init } = await import("./decode-Xr7mARKr.mjs");
326
+ await init(readModule("@jsquash/jpeg/codec/dec/mozjpeg_dec.wasm"));
327
+ const { decode } = await import("./jpeg-B4tsxG5f.mjs");
328
+ return orThrow("JPEG", await decode(toExactBuffer(bytes)));
329
+ }
330
+ case "webp": {
331
+ const { init } = await import("./decode-C4b5NXc_.mjs");
332
+ await init(readModule("@jsquash/webp/codec/dec/webp_dec.wasm"));
333
+ const { decode } = await import("./webp-CcbaCrQ7.mjs");
334
+ return orThrow("WebP", await decode(toExactBuffer(bytes)));
335
+ }
336
+ case "avif": {
337
+ const { init } = await import("./decode-Dsj9J0OD.mjs");
338
+ await init(readModule("@jsquash/avif/codec/dec/avif_dec.wasm"));
339
+ const { decode } = await import("./avif-DCXcyYJR.mjs");
340
+ return orThrow("AVIF", await decode(toExactBuffer(bytes)));
341
+ }
342
+ case "svg": return rasterizeSvg(new TextDecoder().decode(bytes), 1024);
343
+ default: throw new Error("unsupported icon source format (expected PNG/JPEG/WebP/AVIF/SVG bytes)");
344
+ }
345
+ })();
346
+ return applyOrientation(decoded, await exifOrientationOf(format, bytes));
347
+ };
348
+ /** Copy into a standalone ArrayBuffer for codecs that demand exactly that. */
349
+ const toExactBuffer = (bytes) => {
350
+ const out = new ArrayBuffer(bytes.byteLength);
351
+ new Uint8Array(out).set(bytes);
352
+ return out;
353
+ };
354
+ const orThrow = (label, image) => {
355
+ if (image === null) throw new Error(`${label} decode failed`);
356
+ return image;
357
+ };
358
+ const decodeImageFile = async (path) => decodeImage(new Uint8Array(await readFile(path)));
359
+ /** Rasterize an SVG string with the kernel font ladder attached. */
360
+ const rasterizeSvg = async (svg, width) => {
361
+ await loadResvg();
362
+ const { Resvg } = await import("./resvg-wasm-fcJTLpJs.mjs");
363
+ const rendered = new Resvg(svg, {
364
+ fitTo: {
365
+ mode: "width",
366
+ value: width
367
+ },
368
+ font: {
369
+ loadSystemFonts: false,
370
+ fontBuffers: [...await glyphFontLadder()],
371
+ defaultFontFamily: GLYPH_FONT_FAMILY
372
+ },
373
+ background: "rgba(0,0,0,0)"
374
+ }).render();
375
+ return makeImage(new Uint8ClampedArray(rendered.pixels), rendered.width, rendered.height);
376
+ };
377
+ const encodeImagePng = (image) => encodePng(image);
378
+ /**
379
+ * Resize with a chosen sampling kernel. The WASM resize is an exact
380
+ * width/height remap, so callers pass aspect-true targets.
381
+ */
382
+ const resizeImage = async (image, width, height, method = "lanczos3") => {
383
+ if (image.width === width && image.height === height) return imageOf(image);
384
+ const { default: resize } = await import("./resize-B47sgoOb.mjs");
385
+ await loadResize();
386
+ if (method === "nearest") return resizeNearest(image, width, height);
387
+ return resize(image, {
388
+ width,
389
+ height,
390
+ method: "lanczos3"
391
+ });
392
+ };
393
+ /** Point sampling for pixel-art sources (sharp `kernel: nearest` port). */
394
+ const resizeNearest = (image, width, height) => {
395
+ const out = emptyImageOf(width, height);
396
+ for (let y = 0; y < height; y += 1) {
397
+ const sourceY = Math.min(image.height - 1, Math.floor(y * image.height / height));
398
+ for (let x = 0; x < width; x += 1) {
399
+ const sourceX = Math.min(image.width - 1, Math.floor(x * image.width / width));
400
+ const s = (sourceY * image.width + sourceX) * 4;
401
+ const t = (y * width + x) * 4;
402
+ out.data[t] = image.data[s];
403
+ out.data[t + 1] = image.data[s + 1];
404
+ out.data[t + 2] = image.data[s + 2];
405
+ out.data[t + 3] = image.data[s + 3];
406
+ }
407
+ }
408
+ return out;
409
+ };
410
+ /**
411
+ * Aspect-preserving scale to fit INSIDE a box without padding (sharp
412
+ * `fit: "inside"` semantics) — analysis paths must not add letterbox pixels
413
+ * that would dilute coverage statistics.
414
+ */
415
+ const insideImage = async (image, maxSize, method = "lanczos3") => {
416
+ const scale = Math.min(maxSize / image.width, maxSize / image.height);
417
+ return resizeImage(image, Math.max(1, Math.round(image.width * scale)), Math.max(1, Math.round(image.height * scale)), method);
418
+ };
419
+ /**
420
+ * `fit: contain` with TRANSPARENT letterboxing — the sharp default padding is
421
+ * opaque black, and the composition laws require transparency (create
422
+ * round-12 defect note).
423
+ */
424
+ const containImage = async (image, width, height, method = "lanczos3") => {
425
+ if (image.width === width && image.height === height) return imageOf(image);
426
+ const scale = Math.min(width / image.width, height / image.height);
427
+ const scaled = await resizeImage(image, Math.max(1, Math.round(image.width * scale)), Math.max(1, Math.round(image.height * scale)), method);
428
+ const canvas = emptyImageOf(width, height);
429
+ pasteImage(canvas, scaled, Math.round((width - scaled.width) / 2), Math.round((height - scaled.height) / 2));
430
+ return canvas;
431
+ };
432
+ /** Source-over paste of `source` onto `target` at the given offset. */
433
+ const pasteImage = (target, source, left, top) => {
434
+ for (let y = 0; y < source.height; y += 1) {
435
+ const targetY = top + y;
436
+ if (targetY < 0 || targetY >= target.height) continue;
437
+ for (let x = 0; x < source.width; x += 1) {
438
+ const targetX = left + x;
439
+ if (targetX < 0 || targetX >= target.width) continue;
440
+ const s = (y * source.width + x) * 4;
441
+ const t = (targetY * target.width + targetX) * 4;
442
+ const alpha = source.data[s + 3] / 255;
443
+ const inverse = 1 - alpha;
444
+ target.data[t] = source.data[s] * alpha + target.data[t] * inverse;
445
+ target.data[t + 1] = source.data[s + 1] * alpha + target.data[t + 1] * inverse;
446
+ target.data[t + 2] = source.data[s + 2] * alpha + target.data[t + 2] * inverse;
447
+ target.data[t + 3] = Math.round(source.data[s + 3] + target.data[t + 3] * inverse);
448
+ }
449
+ }
450
+ };
451
+ /**
452
+ * Bounding box of pixels with alpha above `threshold`. Deliberate deviation
453
+ * from sharp's `.trim()`, which keyed on the top-left pixel COLOR: opaque
454
+ * letterboxed sources (e.g. a white-matte logo JPEG) no longer crop their
455
+ * background — alpha is the honest content signal for icon foregrounds.
456
+ */
457
+ const trimBounds = (image, threshold = 0) => {
458
+ let minX = image.width;
459
+ let minY = image.height;
460
+ let maxX = -1;
461
+ let maxY = -1;
462
+ for (let y = 0; y < image.height; y += 1) for (let x = 0; x < image.width; x += 1) if (image.data[(y * image.width + x) * 4 + 3] > threshold) {
463
+ if (x < minX) minX = x;
464
+ if (x > maxX) maxX = x;
465
+ if (y < minY) minY = y;
466
+ if (y > maxY) maxY = y;
467
+ }
468
+ if (maxX < 0) return null;
469
+ return {
470
+ left: minX,
471
+ top: minY,
472
+ width: maxX - minX + 1,
473
+ height: maxY - minY + 1
474
+ };
475
+ };
476
+ const cropImage = (image, left, top, width, height) => {
477
+ const out = emptyImageOf(width, height);
478
+ pasteImage(out, image, -left, -top);
479
+ return out;
480
+ };
481
+ /** Fraction of near-white opaque pixels (0–1) — the glyph text-presence probe. */
482
+ const brightPixelRatio = (image, alphaThreshold = 200, brightness = 230) => {
483
+ let bright = 0;
484
+ for (let i = 0; i < image.data.length; i += 4) {
485
+ if (image.data[i + 3] <= alphaThreshold) continue;
486
+ if (image.data[i] >= brightness && image.data[i + 1] >= brightness && image.data[i + 2] >= brightness) bright += 1;
487
+ }
488
+ return bright / (image.width * image.height);
489
+ };
490
+ //#endregion
491
+ export { assetsDirectory as _, decodeImage as a, encodeImagePng as c, rasterizeSvg as d, resizeImage as f, glyphLadderFingerprint as g, embeddedGlyphFont as h, cropImage as i, insideImage as l, GLYPH_FONT_FAMILY as m, cloneImage as n, decodeImageFile as o, trimBounds as p, containImage as r, emptyImageOf as s, brightPixelRatio as t, pasteImage as u };
492
+
493
+ //# sourceMappingURL=raster-BQ07mKLu.mjs.map