@squoosh-kit/png 0.2.8 → 0.2.9
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/bridge.d.ts +2 -2
- package/dist/bridge.d.ts.map +1 -1
- package/dist/index.browser.mjs +26 -6
- package/dist/index.browser.mjs.map +7 -6
- package/dist/index.bun.js +26 -6
- package/dist/index.bun.js.map +7 -6
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.node.cjs +26 -6
- package/dist/index.node.cjs.map +7 -6
- package/dist/index.node.mjs +26 -6
- package/dist/index.node.mjs.map +7 -6
- package/dist/png.worker.browser.mjs +20 -1
- package/dist/png.worker.browser.mjs.map +5 -4
- package/dist/png.worker.bun.js +20 -1
- package/dist/png.worker.bun.js.map +5 -4
- package/dist/png.worker.node.cjs +20 -1
- package/dist/png.worker.node.cjs.map +5 -4
- package/dist/png.worker.node.mjs +20 -1
- package/dist/png.worker.node.mjs.map +5 -4
- package/package.json +2 -2
package/dist/index.node.cjs
CHANGED
|
@@ -38,10 +38,28 @@ var __export = (target, all) => {
|
|
|
38
38
|
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
39
39
|
|
|
40
40
|
// ../runtime/src/env.ts
|
|
41
|
+
function isWorker() {
|
|
42
|
+
return typeof self !== "undefined" && typeof globalThis.DedicatedWorkerGlobalScope !== "undefined";
|
|
43
|
+
}
|
|
44
|
+
function isBrowser() {
|
|
45
|
+
return typeof window !== "undefined" && typeof document !== "undefined";
|
|
46
|
+
}
|
|
41
47
|
function isBun() {
|
|
42
48
|
return typeof Bun !== "undefined";
|
|
43
49
|
}
|
|
44
50
|
|
|
51
|
+
// ../runtime/src/bridge-mode.ts
|
|
52
|
+
function resolveBridgeMode(mode = "auto") {
|
|
53
|
+
if (mode === "worker" || mode === "client") {
|
|
54
|
+
return mode;
|
|
55
|
+
}
|
|
56
|
+
if (isBrowser() && !isWorker()) {
|
|
57
|
+
return "worker";
|
|
58
|
+
}
|
|
59
|
+
return "client";
|
|
60
|
+
}
|
|
61
|
+
var init_bridge_mode = () => {};
|
|
62
|
+
|
|
45
63
|
// ../runtime/src/worker-call.ts
|
|
46
64
|
async function callWorker(worker, type, payload, signal, transfer) {
|
|
47
65
|
return new Promise((resolve, reject) => {
|
|
@@ -381,6 +399,7 @@ function polyfillImageData() {
|
|
|
381
399
|
|
|
382
400
|
// ../runtime/src/index.ts
|
|
383
401
|
var init_src = __esm(() => {
|
|
402
|
+
init_bridge_mode();
|
|
384
403
|
init_worker_helper();
|
|
385
404
|
init_simd_detector();
|
|
386
405
|
});
|
|
@@ -596,8 +615,9 @@ class PngWorkerBridge {
|
|
|
596
615
|
}
|
|
597
616
|
}
|
|
598
617
|
}
|
|
599
|
-
function createBridge(mode, options) {
|
|
600
|
-
|
|
618
|
+
function createBridge(mode = "auto", options) {
|
|
619
|
+
const resolvedMode = resolveBridgeMode(mode);
|
|
620
|
+
if (resolvedMode === "worker") {
|
|
601
621
|
return new PngWorkerBridge(options);
|
|
602
622
|
}
|
|
603
623
|
return new PngClientBridge;
|
|
@@ -607,7 +627,7 @@ function createBridge(mode, options) {
|
|
|
607
627
|
var globalWorkerBridge = null;
|
|
608
628
|
function getGlobalBridge() {
|
|
609
629
|
if (!globalWorkerBridge) {
|
|
610
|
-
globalWorkerBridge = createBridge("
|
|
630
|
+
globalWorkerBridge = createBridge("auto");
|
|
611
631
|
}
|
|
612
632
|
return globalWorkerBridge;
|
|
613
633
|
}
|
|
@@ -617,7 +637,7 @@ async function encode(imageData, signal) {
|
|
|
617
637
|
async function decode(data, signal) {
|
|
618
638
|
return getGlobalBridge().decode(data, signal);
|
|
619
639
|
}
|
|
620
|
-
function createPngEncoder(mode = "
|
|
640
|
+
function createPngEncoder(mode = "auto", options) {
|
|
621
641
|
const bridge = createBridge(mode, options);
|
|
622
642
|
return Object.assign((imageData, signal) => {
|
|
623
643
|
return bridge.encode(imageData, signal);
|
|
@@ -627,7 +647,7 @@ function createPngEncoder(mode = "worker", options) {
|
|
|
627
647
|
}
|
|
628
648
|
});
|
|
629
649
|
}
|
|
630
|
-
function createPngDecoder(mode = "
|
|
650
|
+
function createPngDecoder(mode = "auto", options) {
|
|
631
651
|
const bridge = createBridge(mode, options);
|
|
632
652
|
return Object.assign((data, signal) => {
|
|
633
653
|
return bridge.decode(data, signal);
|
|
@@ -638,4 +658,4 @@ function createPngDecoder(mode = "worker", options) {
|
|
|
638
658
|
});
|
|
639
659
|
}
|
|
640
660
|
|
|
641
|
-
//# debugId=
|
|
661
|
+
//# debugId=E8D68D063766A87364756E2164756E21
|
package/dist/index.node.cjs.map
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../runtime/src/env.ts", "../../runtime/src/worker-call.ts", "../../runtime/src/worker-helper.ts", "../../runtime/src/wasm-loader.ts", "../../runtime/src/validators.ts", "../../runtime/src/image-data-polyfill.ts", "../../runtime/src/index.ts", "../src/png.worker.ts", "../src/bridge.ts", "../src/index.ts"],
|
|
3
|
+
"sources": ["../../runtime/src/env.ts", "../../runtime/src/bridge-mode.ts", "../../runtime/src/worker-call.ts", "../../runtime/src/worker-helper.ts", "../../runtime/src/wasm-loader.ts", "../../runtime/src/validators.ts", "../../runtime/src/image-data-polyfill.ts", "../../runtime/src/index.ts", "../src/png.worker.ts", "../src/bridge.ts", "../src/index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"/**\n * Runtime environment detection utilities\n */\n\n/**\n * Detect if running in a Web Worker context\n */\nexport function isWorker(): boolean {\n return (\n typeof self !== 'undefined' &&\n typeof (globalThis as unknown as { DedicatedWorkerGlobalScope?: unknown })\n .DedicatedWorkerGlobalScope !== 'undefined'\n );\n}\n\n/**\n * Detect if running in a browser context\n */\nexport function isBrowser(): boolean {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\n/**\n * Detect if running in Bun\n */\nexport function isBun(): boolean {\n return typeof Bun !== 'undefined';\n}\n\n/**\n * Detect if running in Node.js\n */\nexport function isNode(): boolean {\n return (\n typeof process !== 'undefined' &&\n process.versions != null &&\n process.versions.node != null\n );\n}\n\n/**\n * Check if ImageData is available in the current environment\n */\nexport function hasImageData(): boolean {\n return typeof ImageData !== 'undefined';\n}\n",
|
|
6
|
+
"import { isBrowser, isWorker } from './env';\n\nexport type BridgeMode = 'worker' | 'client' | 'auto';\n\nexport type ResolvedBridgeMode = 'worker' | 'client';\n\nexport function resolveBridgeMode(\n mode: BridgeMode = 'auto'\n): ResolvedBridgeMode {\n if (mode === 'worker' || mode === 'client') {\n return mode;\n }\n\n if (isBrowser() && !isWorker()) {\n return 'worker';\n }\n\n return 'client';\n}\n",
|
|
6
7
|
"/**\n * Generic worker communication helper with support for transferables and AbortSignal\n */\n\nexport interface WorkerRequest<T = unknown> {\n type: string;\n id: number;\n payload: T;\n}\n\nexport interface WorkerResponse<T = unknown> {\n id: number;\n ok: boolean;\n data?: T;\n error?: string;\n}\n\nlet requestId = 0;\n\n/**\n * Call a worker with a typed request and wait for response\n *\n * @param worker - The worker instance to call\n * @param type - The message type\n * @param payload - The payload to send\n * @param signal - Optional AbortSignal to cancel the operation\n * @param transfer - Optional list of Transferable objects to transfer\n * @returns Promise that resolves with the worker's response data\n */\nexport async function callWorker<TPayload, TResponse>(\n worker: Worker,\n type: string,\n payload: TPayload,\n signal?: AbortSignal,\n transfer?: Transferable[]\n): Promise<TResponse> {\n return new Promise<TResponse>((resolve, reject) => {\n const id = ++requestId;\n\n // Check if already aborted\n if (signal?.aborted) {\n reject(new DOMException('Aborted', 'AbortError'));\n return;\n }\n\n const handleMessage = (event: MessageEvent) => {\n const response = event.data as WorkerResponse<TResponse>;\n if (response.id !== id) return;\n\n cleanup();\n\n if (response.ok && response.data !== undefined) {\n resolve(response.data);\n } else {\n reject(new Error(response.error || 'Unknown worker error'));\n }\n };\n\n const handleError = (error: ErrorEvent) => {\n cleanup();\n reject(new Error(`Worker error: ${error.message}`));\n };\n\n const handleAbort = () => {\n cleanup();\n reject(new DOMException('Aborted', 'AbortError'));\n };\n\n const cleanup = () => {\n worker.removeEventListener('message', handleMessage);\n worker.removeEventListener('error', handleError);\n signal?.removeEventListener('abort', handleAbort);\n };\n\n // Set up listeners\n worker.addEventListener('message', handleMessage);\n worker.addEventListener('error', handleError);\n signal?.addEventListener('abort', handleAbort);\n\n // Send the request\n const request: WorkerRequest<TPayload> = { type, id, payload };\n\n if (transfer && transfer.length > 0) {\n worker.postMessage(request, transfer);\n } else {\n worker.postMessage(request);\n }\n });\n}\n",
|
|
7
8
|
"/**\n * Worker helper utilities for creating and managing Web Workers\n *\n * This module provides centralized logic for creating worker instances\n * in different environments (browser, Node.js, Bun) using import.meta.resolve\n * for server-side and package-relative paths for browsers.\n */\n\nimport { isBun } from './env';\n\nexport const DEFAULT_BROWSER_ASSET_PATH = '/squoosh-kit';\n\ntype WorkerPackageConfig = {\n package: string;\n specifier: string;\n};\n\nfunction scriptUrlToPath(scriptUrl: string | URL): string {\n const href = typeof scriptUrl === 'string' ? scriptUrl : scriptUrl.href;\n if (href.startsWith('file://')) {\n return decodeURIComponent(\n href.startsWith('file:///') ? href.slice(7) : href.slice(5)\n );\n }\n return href;\n}\n\nfunction workerScriptExists(scriptUrl: string | URL): boolean {\n if (typeof window !== 'undefined') {\n return false;\n }\n\n const path = scriptUrlToPath(scriptUrl);\n\n if (typeof Bun !== 'undefined') {\n return (\n Bun.spawnSync(['test', '-f', path], {\n stdout: 'ignore',\n stderr: 'ignore',\n }).exitCode === 0\n );\n }\n\n try {\n const existsSync = Function('return require(\"node:fs\").existsSync')() as (\n filePath: string\n ) => boolean;\n return existsSync(path);\n } catch {\n return false;\n }\n}\n\nexport function resolveServerWorkerScript(\n workerConfig: WorkerPackageConfig,\n normalizedName: string\n): string | URL {\n const platformExt = isBun() ? 'bun.js' : 'node.mjs';\n const baseName = normalizedName.replace('.js', '');\n const pkgName = workerConfig.package.split('/')[1];\n\n if (typeof import.meta.resolve === 'function') {\n try {\n const resolved = import.meta.resolve(\n `${workerConfig.package}/${workerConfig.specifier}`\n );\n if (workerScriptExists(resolved)) {\n return resolved;\n }\n } catch {\n // Continue to monorepo fallbacks\n }\n }\n\n const candidates = [\n new URL(\n `../../${pkgName}/dist/${baseName}.${platformExt}`,\n import.meta.url\n ),\n new URL(`../../${pkgName}/src/${baseName}.ts`, import.meta.url),\n ];\n\n for (const candidate of candidates) {\n if (workerScriptExists(candidate)) {\n return candidate;\n }\n }\n\n throw new Error(\n `Failed to resolve worker script for ${normalizedName}. ` +\n `Tried import.meta.resolve, dist output, and TypeScript source. ` +\n `Ensure ${workerConfig.package} is installed.`\n );\n}\n\nexport type CreateWorkerOptions = {\n /**\n * Public URL prefix for worker and WASM files.\n * Defaults to `/squoosh-kit` in the browser (the path used by\n * `@squoosh-kit/vite-plugin`). Pass an empty string to resolve workers\n * relative to the installed package instead.\n */\n assetPath?: string;\n};\n\n/**\n * Create a Web Worker for a specific codec\n *\n * In Node.js/Bun environments, uses import.meta.resolve to locate worker files.\n * In browsers, workers load from `/squoosh-kit/{package}/` by default.\n *\n * @param workerFilename - The name of the worker file (e.g., 'resize.worker' or 'webp.worker')\n * @returns Worker instance\n * @throws Error if worker creation fails with detailed error message\n */\nexport function createCodecWorker(\n workerFilename: string,\n options?: CreateWorkerOptions\n): Worker {\n // Ensure filename has correct format\n const normalizedName = workerFilename.endsWith('.js')\n ? workerFilename\n : `${workerFilename}.js`;\n\n // Map worker filenames to their package and export\n const workerMap: Record<string, { package: string; specifier: string }> = {\n 'resize.worker.js': {\n package: '@squoosh-kit/resize',\n specifier: 'resize.worker.js',\n },\n 'webp.worker.js': {\n package: '@squoosh-kit/webp',\n specifier: 'webp.worker.js',\n },\n 'avif.worker.js': {\n package: '@squoosh-kit/avif',\n specifier: 'avif.worker.js',\n },\n 'mozjpeg.worker.js': {\n package: '@squoosh-kit/mozjpeg',\n specifier: 'mozjpeg.worker.js',\n },\n 'jxl.worker.js': {\n package: '@squoosh-kit/jxl',\n specifier: 'jxl.worker.js',\n },\n 'oxipng.worker.js': {\n package: '@squoosh-kit/oxipng',\n specifier: 'oxipng.worker.js',\n },\n 'png.worker.js': {\n package: '@squoosh-kit/png',\n specifier: 'png.worker.js',\n },\n 'imagequant.worker.js': {\n package: '@squoosh-kit/imagequant',\n specifier: 'imagequant.worker.js',\n },\n 'qoi.worker.js': {\n package: '@squoosh-kit/qoi',\n specifier: 'qoi.worker.js',\n },\n 'wp2.worker.js': {\n package: '@squoosh-kit/wp2',\n specifier: 'wp2.worker.js',\n },\n 'hqx.worker.js': {\n package: '@squoosh-kit/hqx',\n specifier: 'hqx.worker.js',\n },\n 'rotate.worker.js': {\n package: '@squoosh-kit/rotate',\n specifier: 'rotate.worker.js',\n },\n 'visdif.worker.js': {\n package: '@squoosh-kit/visdif',\n specifier: 'visdif.worker.js',\n },\n };\n\n const workerConfig = workerMap[normalizedName];\n if (!workerConfig) {\n throw new Error(\n `Unknown worker: ${normalizedName}. ` +\n `Supported workers: ${Object.keys(workerMap).join(', ')}`\n );\n }\n\n try {\n // In browsers, workers load from /squoosh-kit by default\n if (typeof window !== 'undefined') {\n const packageName = workerConfig.package.split('/')[1]; // Extract 'resize' or 'webp'\n const workerFile = normalizedName.replace('.js', '.browser.mjs');\n\n console.log(\n `[worker-helper] In browser environment. Trying to create worker:`\n );\n console.log(`[worker-helper] - Package Name: ${packageName}`);\n console.log(`[worker-helper] - Worker File: ${workerFile}`);\n\n const assetPath =\n options?.assetPath === undefined\n ? DEFAULT_BROWSER_ASSET_PATH\n : options.assetPath;\n\n if (assetPath) {\n let normalizedAssetPath = assetPath;\n if (!normalizedAssetPath.startsWith('/')) {\n normalizedAssetPath = '/' + normalizedAssetPath;\n }\n if (normalizedAssetPath.endsWith('/')) {\n normalizedAssetPath = normalizedAssetPath.slice(0, -1);\n }\n\n // Construct absolute URL: {origin}{assetPath}/{package}/{workerFile}\n const workerPath = `${normalizedAssetPath}/${packageName}/${workerFile}`;\n const workerUrl = new URL(workerPath, window.location.origin).href;\n\n console.log(\n `[worker-helper] Using assetPath. Full Worker URL: ${workerUrl}`\n );\n try {\n const worker = new Worker(workerUrl, { type: 'module' });\n console.log(\n `[worker-helper] Successfully created worker with assetPath: ${workerUrl}`\n );\n return worker;\n } catch (e) {\n console.error(\n `[worker-helper] Failed to load worker from assetPath URL: ${workerUrl}`,\n e\n );\n throw new Error(\n `Worker failed to load from ${workerUrl}: ${e instanceof Error ? e.message : String(e)}`,\n { cause: e }\n );\n }\n }\n\n // Try multiple path strategies to support both:\n // 1. Monorepo development structure: ../../{package}/dist/{workerFile}\n // 2. npm installed structure: ../../../{package}/dist/{workerFile}\n const pathStrategies = [\n // First try monorepo structure (when runtime is at packages/runtime/src)\n `../../${packageName}/dist/${workerFile}`,\n // Then try npm structure (when runtime is at node_modules/@squoosh-kit/runtime)\n `../../../node_modules/@squoosh-kit/${packageName}/dist/${workerFile}`,\n // Alternative npm structure for cases where packages are flattened\n `../../../${packageName}/dist/${workerFile}`,\n ];\n\n let lastError: Error | null = null;\n\n for (const relPath of pathStrategies) {\n console.log('relPath:', relPath);\n console.log('import.meta.url:', import.meta.url);\n try {\n const workerUrl = new URL(relPath, import.meta.url);\n console.log(\n `[worker-helper] Trying path strategy. Full Worker URL: ${workerUrl.href}`\n );\n const worker = new Worker(workerUrl, {\n type: 'module',\n });\n console.log(\n `[worker-helper] Successfully created worker with URL: ${workerUrl.href}`\n );\n return worker;\n } catch (error) {\n console.warn(\n `[worker-helper] Path strategy failed for ${relPath}:`,\n error\n );\n lastError = error instanceof Error ? error : new Error(String(error));\n // Continue to next strategy\n }\n }\n\n // If all strategies failed, throw the last error\n if (lastError) {\n console.error('[worker-helper] All path strategies failed.', lastError);\n throw lastError;\n }\n throw new Error(\n `Could not resolve worker ${normalizedName} using any available path strategy`\n );\n }\n\n const workerScript = resolveServerWorkerScript(\n workerConfig,\n normalizedName\n );\n return new Worker(workerScript, { type: 'module' });\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n throw new Error(\n `Failed to create worker from ${normalizedName}: ${errorMessage}. ` +\n `Ensure the @squoosh-kit/resize and @squoosh-kit/webp packages are installed. ` +\n `If you're using Vite, ensure the worker files are not being optimized as dependencies.`,\n { cause: error }\n );\n }\n}\n\n/**\n * Create a worker with initialization timeout and ready signal handling\n *\n * This is a higher-level function that creates a worker and waits for it\n * to signal that it's ready to receive messages.\n *\n * @param workerFilename - The name of the worker file\n * @param timeoutMs - Timeout in milliseconds (default: 10000)\n * @returns Promise that resolves to a ready Worker instance\n * @throws Error if worker creation fails or times out\n */\nexport function createReadyWorker(\n workerFilename: string,\n options?: CreateWorkerOptions,\n timeoutMs: number = 10000\n): Promise<Worker> {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n reject(\n new Error(\n `Worker initialization timeout after ${timeoutMs}ms. Worker file: ${workerFilename}`\n )\n );\n }, timeoutMs);\n\n let worker: Worker;\n try {\n worker = createCodecWorker(workerFilename, options);\n } catch (error) {\n clearTimeout(timeout);\n reject(error);\n return;\n }\n\n const handleMessage = (event: MessageEvent) => {\n if (event.data?.type === 'worker:ready') {\n clearTimeout(timeout);\n worker.removeEventListener('message', handleMessage);\n worker.removeEventListener('error', handleError);\n worker.removeEventListener('messageerror', handleMessageError);\n resolve(worker);\n }\n };\n\n const handleError = (event: ErrorEvent) => {\n clearTimeout(timeout);\n worker.removeEventListener('message', handleMessage);\n worker.removeEventListener('error', handleError);\n worker.removeEventListener('messageerror', handleMessageError);\n reject(\n new Error(\n `Worker failed to start: ${event?.message || 'Unknown error'}. Worker file: ${workerFilename}`\n )\n );\n };\n\n const handleMessageError = () => {\n clearTimeout(timeout);\n worker.removeEventListener('message', handleMessage);\n worker.removeEventListener('error', handleError);\n worker.removeEventListener('messageerror', handleMessageError);\n reject(\n new Error(\n `Worker message error during initialization. Worker file: ${workerFilename}`\n )\n );\n };\n\n worker.addEventListener('message', handleMessage);\n worker.addEventListener('error', handleError);\n worker.addEventListener('messageerror', handleMessageError);\n worker.postMessage({ type: 'worker:ping' });\n });\n}\n",
|
|
8
9
|
"/**\n * Load WASM binary from various sources with fallback strategies\n *\n * Supports:\n * - Node.js (fs/promises)\n * - Browsers (fetch)\n * - Workers (fetch)\n */\nexport async function loadWasmBinary(\n relativePath: string,\n baseUrlOverride?: string | URL\n): Promise<ArrayBuffer> {\n // Get the base URL depending on the environment (worker or main thread)\n // If a base URL is provided, use it; otherwise use import.meta.url from this module\n // In a worker, import.meta.url is the worker's own URL.\n // In the main thread, it's the URL of the current module.\n const baseUrl = baseUrlOverride\n ? typeof baseUrlOverride === 'string'\n ? new URL('.', baseUrlOverride)\n : new URL('.', baseUrlOverride.href)\n : new URL('.', import.meta.url);\n const fullUrl = new URL(relativePath, baseUrl);\n\n console.log(`[WasmLoader] Loading WASM from relative path: ${relativePath}`);\n console.log(`[WasmLoader] Base URL (import.meta.url): ${baseUrl.href}`);\n console.log(`[WasmLoader] Constructed full URL: ${fullUrl.href}`);\n\n try {\n const response = await fetch(fullUrl.href);\n\n console.log(\n `[WasmLoader] Fetch response status for ${fullUrl.href}: ${response.status}`\n );\n\n if (!response.ok) {\n const responseText = await response.text();\n console.error(\n `[WasmLoader] Fetch response text (first 500 chars):`,\n responseText.substring(0, 500)\n );\n throw new Error(\n `Failed to fetch WASM module at ${fullUrl.href}: ${response.status} ${response.statusText}`\n );\n }\n\n const contentType = response.headers.get('content-type');\n console.log(`[WasmLoader] Response Content-Type: ${contentType}`);\n if (!contentType || !contentType.includes('application/wasm')) {\n console.warn(\n `[WasmLoader] Warning: WASM module at ${fullUrl.href} served with incorrect MIME type: \"${contentType}\". Should be \"application/wasm\".`\n );\n }\n\n return await response.arrayBuffer();\n } catch (error) {\n console.error(\n `[WasmLoader] CRITICAL: Fetching WASM binary from ${fullUrl.href} failed.`,\n error\n );\n throw error;\n }\n}\n\n/**\n * Load WASM JavaScript module with fallback strategies\n *\n * Strategy 1: Static relative import (works everywhere)\n * Strategy 2: import.meta.resolve (Node.js 22+)\n * Strategy 3: URL-based import (browsers/workers)\n */\nexport async function loadWasmModule(\n modulePath: string\n): Promise<WebAssembly.Module> {\n // Strategy 1: Try direct static import\n try {\n return await import(/* @vite-ignore */ modulePath);\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e1) {\n // Continue to next strategy\n }\n\n // Strategy 2: Try import.meta.resolve (Node.js 22+)\n try {\n const resolvedPath = await import.meta.resolve(modulePath);\n\n return await import(/* @vite-ignore */ resolvedPath);\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e2) {\n // Continue to next strategy\n }\n\n // Strategy 3: Try URL-based import\n try {\n const url = new URL(/* @vite-ignore */ modulePath, import.meta.url);\n\n return await import(/* @vite-ignore */ url.href);\n } catch (e3) {\n throw new Error(\n `Failed to load WASM module from \"${modulePath}\". ` +\n `Ensure WASM files are in the expected location and the module can be resolved.`,\n { cause: e3 }\n );\n }\n}\n",
|
|
9
10
|
"import type { ImageInput } from './types.js';\n\nexport function validateArrayBuffer(\n buffer: unknown\n): asserts buffer is ArrayBuffer {\n // Check if SharedArrayBuffer is defined in the current environment before using it\n if (\n typeof SharedArrayBuffer !== 'undefined' &&\n buffer instanceof SharedArrayBuffer\n ) {\n throw new Error(\n 'SharedArrayBuffer is not supported. ' +\n 'Use regular ArrayBuffer or Uint8Array instead.'\n );\n }\n\n if (!(buffer instanceof ArrayBuffer)) {\n throw new TypeError('image.data.buffer must be an ArrayBuffer');\n }\n}\n\nexport function validateImageInput(\n image: unknown\n): asserts image is ImageInput {\n if (!image || typeof image !== 'object') {\n throw new TypeError('image must be an object');\n }\n\n const imageObj = image as Record<string, unknown>;\n\n if (!('data' in imageObj)) {\n throw new TypeError('image.data is required');\n }\n\n const { data } = imageObj;\n if (!(data instanceof Uint8Array || data instanceof Uint8ClampedArray)) {\n throw new TypeError('image.data must be Uint8Array or Uint8ClampedArray');\n }\n\n if (!('width' in imageObj) || !('height' in imageObj)) {\n throw new TypeError('image.width and image.height are required');\n }\n\n const { width, height } = imageObj;\n\n if (typeof width !== 'number' || !Number.isInteger(width) || width <= 0) {\n throw new RangeError(\n `image.width must be a positive integer, got ${width}`\n );\n }\n\n if (typeof height !== 'number' || !Number.isInteger(height) || height <= 0) {\n throw new RangeError(\n `image.height must be a positive integer, got ${height}`\n );\n }\n\n const expectedSize = width * height * 4;\n if (data.length < expectedSize) {\n throw new RangeError(\n `image.data too small: ${data.length} bytes, expected at least ${expectedSize} bytes for ${width}x${height} RGBA image`\n );\n }\n}\n",
|
|
10
11
|
"/**\n * Polyfill for ImageData in Node/Bun environments where it's not available.\n * Must be called before any WASM decode operation that returns ImageData.\n */\nexport function polyfillImageData(): void {\n if (typeof ImageData === 'undefined') {\n (\n globalThis as {\n ImageData?: new (\n data: Uint8ClampedArray,\n width: number,\n height: number\n ) => ImageData;\n }\n ).ImageData = class {\n data: Uint8ClampedArray;\n width: number;\n height: number;\n colorSpace: PredefinedColorSpace = 'srgb';\n constructor(data: Uint8ClampedArray, width: number, height: number) {\n this.data = data;\n this.width = width;\n this.height = height;\n }\n } as unknown as typeof ImageData;\n }\n}\n",
|
|
11
|
-
"/**\n * @squoosh-kit/runtime\n *\n * Core runtime logic for squoosh-kit, including environment utilities\n * and worker communication helpers.\n */\n\nexport * from './env.js';\nexport * from './worker-call.js';\nexport * from './types.js';\nexport * from './worker-helper.js';\nexport * from './wasm-loader.js';\nexport * from './validators.js';\nexport * from './simd-detector.js';\nexport * from './image-data-polyfill.js';\n",
|
|
12
|
+
"/**\n * @squoosh-kit/runtime\n *\n * Core runtime logic for squoosh-kit, including environment utilities\n * and worker communication helpers.\n */\n\nexport * from './bridge-mode.js';\nexport * from './env.js';\nexport * from './worker-call.js';\nexport * from './types.js';\nexport * from './worker-helper.js';\nexport * from './wasm-loader.js';\nexport * from './validators.js';\nexport * from './simd-detector.js';\nexport * from './image-data-polyfill.js';\n",
|
|
12
13
|
"/**\n * PNG processor - single-source worker/client implementation\n */\n\nimport type {\n WorkerRequest,\n WorkerResponse,\n ImageInput,\n} from '@squoosh-kit/runtime';\nimport { loadWasmBinary, polyfillImageData } from '@squoosh-kit/runtime';\n\ntype EncodeFn = (data: Uint8Array, width: number, height: number) => Uint8Array;\n\ntype DecodeFn = (data: Uint8Array) => ImageData;\n\nlet encodeFn: EncodeFn | null = null;\nlet decodeFn: DecodeFn | null = null;\nlet initPromise: Promise<void> | null = null;\n\nasync function initPNG(): Promise<void> {\n if (encodeFn && decodeFn) {\n return;\n }\n\n if (initPromise) {\n return initPromise;\n }\n\n initPromise = (async () => {\n try {\n // Polyfill ImageData for Node/Bun environments\n polyfillImageData();\n\n const workerBaseUrl = new URL('.', import.meta.url);\n const isSource = import.meta.url.includes('/src/');\n const wasmPaths = isSource\n ? ['../wasm/png/squoosh_png_bg.wasm', './wasm/png/squoosh_png_bg.wasm']\n : ['./wasm/png/squoosh_png_bg.wasm', '../wasm/png/squoosh_png_bg.wasm'];\n\n let wasmBuffer: ArrayBuffer | null = null;\n let lastError: Error | null = null;\n for (const path of wasmPaths) {\n try {\n wasmBuffer = await loadWasmBinary(path, workerBaseUrl);\n break;\n } catch (error) {\n lastError = error instanceof Error ? error : new Error(String(error));\n }\n }\n\n if (!wasmBuffer) {\n throw (\n lastError || new Error('Could not load PNG WASM binary from any path')\n );\n }\n\n const jsPaths = isSource\n ? ['../wasm/png/squoosh_png.js', './wasm/png/squoosh_png.js']\n : ['./wasm/png/squoosh_png.js', '../wasm/png/squoosh_png.js'];\n\n type PNGModule = {\n default: (buf: ArrayBuffer) => Promise<unknown>;\n encode: EncodeFn;\n decode: DecodeFn;\n };\n\n let pngModule: PNGModule | null = null;\n let jsLastError: Error | null = null;\n for (const jsPath of jsPaths) {\n try {\n pngModule = (await import(/* @vite-ignore */ jsPath)) as PNGModule;\n break;\n } catch (error) {\n jsLastError =\n error instanceof Error ? error : new Error(String(error));\n }\n }\n\n if (!pngModule) {\n throw (\n jsLastError || new Error('Could not load PNG JS module from any path')\n );\n }\n\n await pngModule.default(wasmBuffer);\n encodeFn = pngModule.encode;\n decodeFn = pngModule.decode;\n } catch (error) {\n initPromise = null;\n throw new Error(\n `Failed to initialize PNG WASM module: ${error instanceof Error ? error.message : String(error)}`,\n { cause: error }\n );\n }\n })();\n\n return initPromise;\n}\n\nexport async function pngEncodeClient(\n image: ImageInput,\n signal?: AbortSignal\n): Promise<Uint8Array> {\n if (signal?.aborted) {\n throw new DOMException('Aborted', 'AbortError');\n }\n\n await initPNG();\n\n if (signal?.aborted) {\n throw new DOMException('Aborted', 'AbortError');\n }\n\n if (!encodeFn) {\n throw new Error('PNG module not initialized');\n }\n\n const { data, width, height } = image;\n\n // PNG encode takes Uint8Array, convert from Uint8ClampedArray if needed\n const uint8Data =\n data instanceof Uint8Array\n ? data\n : new Uint8Array(\n data.buffer as ArrayBuffer,\n data.byteOffset,\n data.length\n );\n\n const result = encodeFn(uint8Data, width, height);\n if (!result) {\n throw new Error('PNG encoding failed');\n }\n return result;\n}\n\nexport async function pngDecodeClient(\n data: Uint8Array,\n signal?: AbortSignal\n): Promise<ImageData> {\n if (signal?.aborted) {\n throw new DOMException('Aborted', 'AbortError');\n }\n\n await initPNG();\n\n if (signal?.aborted) {\n throw new DOMException('Aborted', 'AbortError');\n }\n\n if (!decodeFn) {\n throw new Error('PNG module not initialized');\n }\n\n // decode throws on error per the WASM binding contract\n return decodeFn(data);\n}\n\n/**\n * Worker message handler\n */\nif (typeof self !== 'undefined') {\n self.onmessage = async (event: MessageEvent) => {\n const msgData = event.data;\n\n if (msgData?.type === 'worker:ping') {\n await initPNG();\n self.postMessage({ type: 'worker:ready' });\n return;\n }\n\n if (msgData?.type === 'png:encode') {\n const request = msgData as WorkerRequest<{ image: ImageInput }>;\n const response: WorkerResponse<Uint8Array> = {\n id: request.id,\n ok: false,\n };\n try {\n const result = await pngEncodeClient(request.payload.image);\n response.ok = true;\n response.data = result;\n self.postMessage(response, {\n transfer: [result.buffer as ArrayBuffer],\n });\n } catch (error) {\n response.error = error instanceof Error ? error.message : String(error);\n self.postMessage(response);\n }\n return;\n }\n\n if (msgData?.type === 'png:decode') {\n const request = msgData as WorkerRequest<{ data: Uint8Array }>;\n const response: WorkerResponse<ImageData> = {\n id: request.id,\n ok: false,\n };\n try {\n const result = await pngDecodeClient(request.payload.data);\n response.ok = true;\n response.data = result;\n self.postMessage(response, {\n transfer: [result.data.buffer as ArrayBuffer],\n });\n } catch (error) {\n response.error = error instanceof Error ? error.message : String(error);\n self.postMessage(response);\n }\n return;\n }\n\n const request = msgData as WorkerRequest<unknown>;\n const response: WorkerResponse<never> = {\n id: request.id,\n ok: false,\n error: `Unknown message type: ${request.type}`,\n };\n self.postMessage(response);\n };\n}\n",
|
|
13
|
-
"/**\n * Bridge implementation for the PNG package, handling worker and client modes.\n */\n\nimport {\n callWorker,\n createReadyWorker,\n type ImageInput,\n} from '@squoosh-kit/runtime';\nimport { validateImageInput } from '@squoosh-kit/runtime';\n\nexport type BridgeOptions = {\n /**\n * Public URL prefix for worker and WASM files.\n * Defaults to `/squoosh-kit` in the browser.\n */\n assetPath?: string;\n};\n\ninterface PngBridge {\n encode(image: ImageInput, signal?: AbortSignal): Promise<Uint8Array>;\n decode(data: Uint8Array, signal?: AbortSignal): Promise<ImageData>;\n terminate(): Promise<void>;\n}\n\nclass PngClientBridge implements PngBridge {\n async encode(image: ImageInput, signal?: AbortSignal): Promise<Uint8Array> {\n const module = await import('./png.worker.js');\n const pngEncodeClient = module.pngEncodeClient as (\n image: ImageInput,\n signal?: AbortSignal\n ) => Promise<Uint8Array>;\n return pngEncodeClient(image, signal);\n }\n\n async decode(data: Uint8Array, signal?: AbortSignal): Promise<ImageData> {\n const module = await import('./png.worker.js');\n const pngDecodeClient = module.pngDecodeClient as (\n data: Uint8Array,\n signal?: AbortSignal\n ) => Promise<ImageData>;\n return pngDecodeClient(data, signal);\n }\n\n async terminate(): Promise<void> {\n // Client mode has nothing to terminate\n }\n}\n\nclass PngWorkerBridge implements PngBridge {\n private worker: Worker | null = null;\n private workerReady: Promise<Worker> | null = null;\n private options?: BridgeOptions;\n\n constructor(options?: BridgeOptions) {\n this.options = options;\n }\n\n private async getWorker(): Promise<Worker> {\n if (!this.workerReady) {\n this.workerReady = this.createWorker();\n }\n return this.workerReady;\n }\n\n private async createWorker(): Promise<Worker> {\n this.worker = await createReadyWorker('png.worker.js', this.options);\n return this.worker;\n }\n\n async encode(image: ImageInput, signal?: AbortSignal): Promise<Uint8Array> {\n const worker = await this.getWorker();\n validateImageInput(image);\n return callWorker(worker, 'png:encode', { image }, signal);\n }\n\n async decode(data: Uint8Array, signal?: AbortSignal): Promise<ImageData> {\n const worker = await this.getWorker();\n return callWorker(worker, 'png:decode', { data }, signal);\n }\n\n async terminate(): Promise<void> {\n if (this.worker) {\n this.worker.terminate();\n this.worker = null;\n this.workerReady = null;\n }\n }\n}\n\nexport function createBridge(\n mode:
|
|
14
|
-
"/**\n * @squoosh-kit/png public API\n */\n\nimport type { ImageInput } from '@squoosh-kit/runtime';\nimport { createBridge, type BridgeOptions } from './bridge';\n\nexport type { ImageInput };\n\n// Global bridge instance for reuse\nlet globalWorkerBridge: ReturnType<typeof createBridge> | null = null;\n\nfunction getGlobalBridge(): ReturnType<typeof createBridge> {\n if (!globalWorkerBridge) {\n globalWorkerBridge = createBridge('
|
|
14
|
+
"/**\n * Bridge implementation for the PNG package, handling worker and client modes.\n */\n\nimport {\n callWorker,\n createReadyWorker,\n type ImageInput,\n resolveBridgeMode,\n type BridgeMode,\n} from '@squoosh-kit/runtime';\nimport { validateImageInput } from '@squoosh-kit/runtime';\n\nexport type BridgeOptions = {\n /**\n * Public URL prefix for worker and WASM files.\n * Defaults to `/squoosh-kit` in the browser.\n */\n assetPath?: string;\n};\n\ninterface PngBridge {\n encode(image: ImageInput, signal?: AbortSignal): Promise<Uint8Array>;\n decode(data: Uint8Array, signal?: AbortSignal): Promise<ImageData>;\n terminate(): Promise<void>;\n}\n\nclass PngClientBridge implements PngBridge {\n async encode(image: ImageInput, signal?: AbortSignal): Promise<Uint8Array> {\n const module = await import('./png.worker.js');\n const pngEncodeClient = module.pngEncodeClient as (\n image: ImageInput,\n signal?: AbortSignal\n ) => Promise<Uint8Array>;\n return pngEncodeClient(image, signal);\n }\n\n async decode(data: Uint8Array, signal?: AbortSignal): Promise<ImageData> {\n const module = await import('./png.worker.js');\n const pngDecodeClient = module.pngDecodeClient as (\n data: Uint8Array,\n signal?: AbortSignal\n ) => Promise<ImageData>;\n return pngDecodeClient(data, signal);\n }\n\n async terminate(): Promise<void> {\n // Client mode has nothing to terminate\n }\n}\n\nclass PngWorkerBridge implements PngBridge {\n private worker: Worker | null = null;\n private workerReady: Promise<Worker> | null = null;\n private options?: BridgeOptions;\n\n constructor(options?: BridgeOptions) {\n this.options = options;\n }\n\n private async getWorker(): Promise<Worker> {\n if (!this.workerReady) {\n this.workerReady = this.createWorker();\n }\n return this.workerReady;\n }\n\n private async createWorker(): Promise<Worker> {\n this.worker = await createReadyWorker('png.worker.js', this.options);\n return this.worker;\n }\n\n async encode(image: ImageInput, signal?: AbortSignal): Promise<Uint8Array> {\n const worker = await this.getWorker();\n validateImageInput(image);\n return callWorker(worker, 'png:encode', { image }, signal);\n }\n\n async decode(data: Uint8Array, signal?: AbortSignal): Promise<ImageData> {\n const worker = await this.getWorker();\n return callWorker(worker, 'png:decode', { data }, signal);\n }\n\n async terminate(): Promise<void> {\n if (this.worker) {\n this.worker.terminate();\n this.worker = null;\n this.workerReady = null;\n }\n }\n}\n\nexport function createBridge(\n mode: BridgeMode = 'auto',\n options?: BridgeOptions\n): PngBridge {\n const resolvedMode = resolveBridgeMode(mode);\n if (resolvedMode === 'worker') {\n return new PngWorkerBridge(options);\n }\n return new PngClientBridge();\n}\n",
|
|
15
|
+
"/**\n * @squoosh-kit/png public API\n */\n\nimport type { BridgeMode, ImageInput } from '@squoosh-kit/runtime';\nimport { createBridge, type BridgeOptions } from './bridge';\n\nexport type { ImageInput };\n\n// Global bridge instance for reuse\nlet globalWorkerBridge: ReturnType<typeof createBridge> | null = null;\n\nfunction getGlobalBridge(): ReturnType<typeof createBridge> {\n if (!globalWorkerBridge) {\n globalWorkerBridge = createBridge('auto');\n }\n return globalWorkerBridge;\n}\n\n/**\n * A reusable PNG encoder that can be terminated to clean up resources.\n */\nexport type PngEncoderFactory = ((\n imageData: ImageInput,\n signal?: AbortSignal\n) => Promise<Uint8Array>) & {\n terminate(): Promise<void>;\n};\n\n/**\n * A reusable PNG decoder that can be terminated to clean up resources.\n */\nexport type PngDecoderFactory = ((\n data: Uint8Array,\n signal?: AbortSignal\n) => Promise<ImageData>) & {\n terminate(): Promise<void>;\n};\n\n/**\n * Encodes raw RGBA image data to PNG format.\n *\n * @param imageData - The raw RGBA image data to encode.\n * @param signal - Optional AbortSignal to cancel the operation.\n * @returns A Promise resolving to the encoded PNG data as a Uint8Array.\n *\n * @example\n * const result = await encode(imageData);\n */\nexport async function encode(\n imageData: ImageInput,\n signal?: AbortSignal\n): Promise<Uint8Array> {\n return getGlobalBridge().encode(imageData, signal);\n}\n\n/**\n * Decodes PNG data back to raw image data.\n *\n * @param data - The PNG-encoded data to decode.\n * @param signal - Optional AbortSignal to cancel the operation.\n * @returns A Promise resolving to an ImageData object.\n *\n * @example\n * const imageData = await decode(pngBuffer);\n */\nexport async function decode(\n data: Uint8Array,\n signal?: AbortSignal\n): Promise<ImageData> {\n return getGlobalBridge().decode(data, signal);\n}\n\n/**\n * Creates a reusable PNG encoder for a specific execution mode.\n *\n * @param mode - The execution mode, either 'worker' or 'client'.\n * @param options - Optional bridge configuration options.\n * @returns A function that encodes image data to PNG.\n */\nexport function createPngEncoder(\n mode: BridgeMode = 'auto',\n options?: BridgeOptions\n): PngEncoderFactory {\n const bridge = createBridge(mode, options);\n\n return Object.assign(\n (imageData: ImageInput, signal?: AbortSignal) => {\n return bridge.encode(imageData, signal);\n },\n {\n terminate: async () => {\n await bridge.terminate();\n },\n }\n );\n}\n\n/**\n * Creates a reusable PNG decoder for a specific execution mode.\n *\n * @param mode - The execution mode, either 'worker' or 'client'.\n * @param options - Optional bridge configuration options.\n * @returns A function that decodes PNG data to ImageData.\n */\nexport function createPngDecoder(\n mode: BridgeMode = 'auto',\n options?: BridgeOptions\n): PngDecoderFactory {\n const bridge = createBridge(mode, options);\n\n return Object.assign(\n (data: Uint8Array, signal?: AbortSignal) => {\n return bridge.decode(data, signal);\n },\n {\n terminate: async () => {\n await bridge.terminate();\n },\n }\n );\n}\n"
|
|
15
16
|
],
|
|
16
|
-
"mappings": "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",
|
|
17
|
-
"debugId": "
|
|
17
|
+
"mappings": "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",
|
|
18
|
+
"debugId": "E8D68D063766A87364756E2164756E21",
|
|
18
19
|
"names": []
|
|
19
20
|
}
|
package/dist/index.node.mjs
CHANGED
|
@@ -15,10 +15,28 @@ var __export = (target, all) => {
|
|
|
15
15
|
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
16
16
|
|
|
17
17
|
// ../runtime/src/env.ts
|
|
18
|
+
function isWorker() {
|
|
19
|
+
return typeof self !== "undefined" && typeof globalThis.DedicatedWorkerGlobalScope !== "undefined";
|
|
20
|
+
}
|
|
21
|
+
function isBrowser() {
|
|
22
|
+
return typeof window !== "undefined" && typeof document !== "undefined";
|
|
23
|
+
}
|
|
18
24
|
function isBun() {
|
|
19
25
|
return typeof Bun !== "undefined";
|
|
20
26
|
}
|
|
21
27
|
|
|
28
|
+
// ../runtime/src/bridge-mode.ts
|
|
29
|
+
function resolveBridgeMode(mode = "auto") {
|
|
30
|
+
if (mode === "worker" || mode === "client") {
|
|
31
|
+
return mode;
|
|
32
|
+
}
|
|
33
|
+
if (isBrowser() && !isWorker()) {
|
|
34
|
+
return "worker";
|
|
35
|
+
}
|
|
36
|
+
return "client";
|
|
37
|
+
}
|
|
38
|
+
var init_bridge_mode = () => {};
|
|
39
|
+
|
|
22
40
|
// ../runtime/src/worker-call.ts
|
|
23
41
|
async function callWorker(worker, type, payload, signal, transfer) {
|
|
24
42
|
return new Promise((resolve, reject) => {
|
|
@@ -358,6 +376,7 @@ function polyfillImageData() {
|
|
|
358
376
|
|
|
359
377
|
// ../runtime/src/index.ts
|
|
360
378
|
var init_src = __esm(() => {
|
|
379
|
+
init_bridge_mode();
|
|
361
380
|
init_worker_helper();
|
|
362
381
|
init_simd_detector();
|
|
363
382
|
});
|
|
@@ -562,8 +581,9 @@ class PngWorkerBridge {
|
|
|
562
581
|
}
|
|
563
582
|
}
|
|
564
583
|
}
|
|
565
|
-
function createBridge(mode, options) {
|
|
566
|
-
|
|
584
|
+
function createBridge(mode = "auto", options) {
|
|
585
|
+
const resolvedMode = resolveBridgeMode(mode);
|
|
586
|
+
if (resolvedMode === "worker") {
|
|
567
587
|
return new PngWorkerBridge(options);
|
|
568
588
|
}
|
|
569
589
|
return new PngClientBridge;
|
|
@@ -573,7 +593,7 @@ function createBridge(mode, options) {
|
|
|
573
593
|
var globalWorkerBridge = null;
|
|
574
594
|
function getGlobalBridge() {
|
|
575
595
|
if (!globalWorkerBridge) {
|
|
576
|
-
globalWorkerBridge = createBridge("
|
|
596
|
+
globalWorkerBridge = createBridge("auto");
|
|
577
597
|
}
|
|
578
598
|
return globalWorkerBridge;
|
|
579
599
|
}
|
|
@@ -583,7 +603,7 @@ async function encode(imageData, signal) {
|
|
|
583
603
|
async function decode(data, signal) {
|
|
584
604
|
return getGlobalBridge().decode(data, signal);
|
|
585
605
|
}
|
|
586
|
-
function createPngEncoder(mode = "
|
|
606
|
+
function createPngEncoder(mode = "auto", options) {
|
|
587
607
|
const bridge = createBridge(mode, options);
|
|
588
608
|
return Object.assign((imageData, signal) => {
|
|
589
609
|
return bridge.encode(imageData, signal);
|
|
@@ -593,7 +613,7 @@ function createPngEncoder(mode = "worker", options) {
|
|
|
593
613
|
}
|
|
594
614
|
});
|
|
595
615
|
}
|
|
596
|
-
function createPngDecoder(mode = "
|
|
616
|
+
function createPngDecoder(mode = "auto", options) {
|
|
597
617
|
const bridge = createBridge(mode, options);
|
|
598
618
|
return Object.assign((data, signal) => {
|
|
599
619
|
return bridge.decode(data, signal);
|
|
@@ -610,4 +630,4 @@ export {
|
|
|
610
630
|
createPngDecoder
|
|
611
631
|
};
|
|
612
632
|
|
|
613
|
-
//# debugId=
|
|
633
|
+
//# debugId=8BAE277E54513B3264756E2164756E21
|
package/dist/index.node.mjs.map
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../runtime/src/env.ts", "../../runtime/src/worker-call.ts", "../../runtime/src/worker-helper.ts", "../../runtime/src/wasm-loader.ts", "../../runtime/src/validators.ts", "../../runtime/src/image-data-polyfill.ts", "../../runtime/src/index.ts", "../src/png.worker.ts", "../src/bridge.ts", "../src/index.ts"],
|
|
3
|
+
"sources": ["../../runtime/src/env.ts", "../../runtime/src/bridge-mode.ts", "../../runtime/src/worker-call.ts", "../../runtime/src/worker-helper.ts", "../../runtime/src/wasm-loader.ts", "../../runtime/src/validators.ts", "../../runtime/src/image-data-polyfill.ts", "../../runtime/src/index.ts", "../src/png.worker.ts", "../src/bridge.ts", "../src/index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"/**\n * Runtime environment detection utilities\n */\n\n/**\n * Detect if running in a Web Worker context\n */\nexport function isWorker(): boolean {\n return (\n typeof self !== 'undefined' &&\n typeof (globalThis as unknown as { DedicatedWorkerGlobalScope?: unknown })\n .DedicatedWorkerGlobalScope !== 'undefined'\n );\n}\n\n/**\n * Detect if running in a browser context\n */\nexport function isBrowser(): boolean {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\n/**\n * Detect if running in Bun\n */\nexport function isBun(): boolean {\n return typeof Bun !== 'undefined';\n}\n\n/**\n * Detect if running in Node.js\n */\nexport function isNode(): boolean {\n return (\n typeof process !== 'undefined' &&\n process.versions != null &&\n process.versions.node != null\n );\n}\n\n/**\n * Check if ImageData is available in the current environment\n */\nexport function hasImageData(): boolean {\n return typeof ImageData !== 'undefined';\n}\n",
|
|
6
|
+
"import { isBrowser, isWorker } from './env';\n\nexport type BridgeMode = 'worker' | 'client' | 'auto';\n\nexport type ResolvedBridgeMode = 'worker' | 'client';\n\nexport function resolveBridgeMode(\n mode: BridgeMode = 'auto'\n): ResolvedBridgeMode {\n if (mode === 'worker' || mode === 'client') {\n return mode;\n }\n\n if (isBrowser() && !isWorker()) {\n return 'worker';\n }\n\n return 'client';\n}\n",
|
|
6
7
|
"/**\n * Generic worker communication helper with support for transferables and AbortSignal\n */\n\nexport interface WorkerRequest<T = unknown> {\n type: string;\n id: number;\n payload: T;\n}\n\nexport interface WorkerResponse<T = unknown> {\n id: number;\n ok: boolean;\n data?: T;\n error?: string;\n}\n\nlet requestId = 0;\n\n/**\n * Call a worker with a typed request and wait for response\n *\n * @param worker - The worker instance to call\n * @param type - The message type\n * @param payload - The payload to send\n * @param signal - Optional AbortSignal to cancel the operation\n * @param transfer - Optional list of Transferable objects to transfer\n * @returns Promise that resolves with the worker's response data\n */\nexport async function callWorker<TPayload, TResponse>(\n worker: Worker,\n type: string,\n payload: TPayload,\n signal?: AbortSignal,\n transfer?: Transferable[]\n): Promise<TResponse> {\n return new Promise<TResponse>((resolve, reject) => {\n const id = ++requestId;\n\n // Check if already aborted\n if (signal?.aborted) {\n reject(new DOMException('Aborted', 'AbortError'));\n return;\n }\n\n const handleMessage = (event: MessageEvent) => {\n const response = event.data as WorkerResponse<TResponse>;\n if (response.id !== id) return;\n\n cleanup();\n\n if (response.ok && response.data !== undefined) {\n resolve(response.data);\n } else {\n reject(new Error(response.error || 'Unknown worker error'));\n }\n };\n\n const handleError = (error: ErrorEvent) => {\n cleanup();\n reject(new Error(`Worker error: ${error.message}`));\n };\n\n const handleAbort = () => {\n cleanup();\n reject(new DOMException('Aborted', 'AbortError'));\n };\n\n const cleanup = () => {\n worker.removeEventListener('message', handleMessage);\n worker.removeEventListener('error', handleError);\n signal?.removeEventListener('abort', handleAbort);\n };\n\n // Set up listeners\n worker.addEventListener('message', handleMessage);\n worker.addEventListener('error', handleError);\n signal?.addEventListener('abort', handleAbort);\n\n // Send the request\n const request: WorkerRequest<TPayload> = { type, id, payload };\n\n if (transfer && transfer.length > 0) {\n worker.postMessage(request, transfer);\n } else {\n worker.postMessage(request);\n }\n });\n}\n",
|
|
7
8
|
"/**\n * Worker helper utilities for creating and managing Web Workers\n *\n * This module provides centralized logic for creating worker instances\n * in different environments (browser, Node.js, Bun) using import.meta.resolve\n * for server-side and package-relative paths for browsers.\n */\n\nimport { isBun } from './env';\n\nexport const DEFAULT_BROWSER_ASSET_PATH = '/squoosh-kit';\n\ntype WorkerPackageConfig = {\n package: string;\n specifier: string;\n};\n\nfunction scriptUrlToPath(scriptUrl: string | URL): string {\n const href = typeof scriptUrl === 'string' ? scriptUrl : scriptUrl.href;\n if (href.startsWith('file://')) {\n return decodeURIComponent(\n href.startsWith('file:///') ? href.slice(7) : href.slice(5)\n );\n }\n return href;\n}\n\nfunction workerScriptExists(scriptUrl: string | URL): boolean {\n if (typeof window !== 'undefined') {\n return false;\n }\n\n const path = scriptUrlToPath(scriptUrl);\n\n if (typeof Bun !== 'undefined') {\n return (\n Bun.spawnSync(['test', '-f', path], {\n stdout: 'ignore',\n stderr: 'ignore',\n }).exitCode === 0\n );\n }\n\n try {\n const existsSync = Function('return require(\"node:fs\").existsSync')() as (\n filePath: string\n ) => boolean;\n return existsSync(path);\n } catch {\n return false;\n }\n}\n\nexport function resolveServerWorkerScript(\n workerConfig: WorkerPackageConfig,\n normalizedName: string\n): string | URL {\n const platformExt = isBun() ? 'bun.js' : 'node.mjs';\n const baseName = normalizedName.replace('.js', '');\n const pkgName = workerConfig.package.split('/')[1];\n\n if (typeof import.meta.resolve === 'function') {\n try {\n const resolved = import.meta.resolve(\n `${workerConfig.package}/${workerConfig.specifier}`\n );\n if (workerScriptExists(resolved)) {\n return resolved;\n }\n } catch {\n // Continue to monorepo fallbacks\n }\n }\n\n const candidates = [\n new URL(\n `../../${pkgName}/dist/${baseName}.${platformExt}`,\n import.meta.url\n ),\n new URL(`../../${pkgName}/src/${baseName}.ts`, import.meta.url),\n ];\n\n for (const candidate of candidates) {\n if (workerScriptExists(candidate)) {\n return candidate;\n }\n }\n\n throw new Error(\n `Failed to resolve worker script for ${normalizedName}. ` +\n `Tried import.meta.resolve, dist output, and TypeScript source. ` +\n `Ensure ${workerConfig.package} is installed.`\n );\n}\n\nexport type CreateWorkerOptions = {\n /**\n * Public URL prefix for worker and WASM files.\n * Defaults to `/squoosh-kit` in the browser (the path used by\n * `@squoosh-kit/vite-plugin`). Pass an empty string to resolve workers\n * relative to the installed package instead.\n */\n assetPath?: string;\n};\n\n/**\n * Create a Web Worker for a specific codec\n *\n * In Node.js/Bun environments, uses import.meta.resolve to locate worker files.\n * In browsers, workers load from `/squoosh-kit/{package}/` by default.\n *\n * @param workerFilename - The name of the worker file (e.g., 'resize.worker' or 'webp.worker')\n * @returns Worker instance\n * @throws Error if worker creation fails with detailed error message\n */\nexport function createCodecWorker(\n workerFilename: string,\n options?: CreateWorkerOptions\n): Worker {\n // Ensure filename has correct format\n const normalizedName = workerFilename.endsWith('.js')\n ? workerFilename\n : `${workerFilename}.js`;\n\n // Map worker filenames to their package and export\n const workerMap: Record<string, { package: string; specifier: string }> = {\n 'resize.worker.js': {\n package: '@squoosh-kit/resize',\n specifier: 'resize.worker.js',\n },\n 'webp.worker.js': {\n package: '@squoosh-kit/webp',\n specifier: 'webp.worker.js',\n },\n 'avif.worker.js': {\n package: '@squoosh-kit/avif',\n specifier: 'avif.worker.js',\n },\n 'mozjpeg.worker.js': {\n package: '@squoosh-kit/mozjpeg',\n specifier: 'mozjpeg.worker.js',\n },\n 'jxl.worker.js': {\n package: '@squoosh-kit/jxl',\n specifier: 'jxl.worker.js',\n },\n 'oxipng.worker.js': {\n package: '@squoosh-kit/oxipng',\n specifier: 'oxipng.worker.js',\n },\n 'png.worker.js': {\n package: '@squoosh-kit/png',\n specifier: 'png.worker.js',\n },\n 'imagequant.worker.js': {\n package: '@squoosh-kit/imagequant',\n specifier: 'imagequant.worker.js',\n },\n 'qoi.worker.js': {\n package: '@squoosh-kit/qoi',\n specifier: 'qoi.worker.js',\n },\n 'wp2.worker.js': {\n package: '@squoosh-kit/wp2',\n specifier: 'wp2.worker.js',\n },\n 'hqx.worker.js': {\n package: '@squoosh-kit/hqx',\n specifier: 'hqx.worker.js',\n },\n 'rotate.worker.js': {\n package: '@squoosh-kit/rotate',\n specifier: 'rotate.worker.js',\n },\n 'visdif.worker.js': {\n package: '@squoosh-kit/visdif',\n specifier: 'visdif.worker.js',\n },\n };\n\n const workerConfig = workerMap[normalizedName];\n if (!workerConfig) {\n throw new Error(\n `Unknown worker: ${normalizedName}. ` +\n `Supported workers: ${Object.keys(workerMap).join(', ')}`\n );\n }\n\n try {\n // In browsers, workers load from /squoosh-kit by default\n if (typeof window !== 'undefined') {\n const packageName = workerConfig.package.split('/')[1]; // Extract 'resize' or 'webp'\n const workerFile = normalizedName.replace('.js', '.browser.mjs');\n\n console.log(\n `[worker-helper] In browser environment. Trying to create worker:`\n );\n console.log(`[worker-helper] - Package Name: ${packageName}`);\n console.log(`[worker-helper] - Worker File: ${workerFile}`);\n\n const assetPath =\n options?.assetPath === undefined\n ? DEFAULT_BROWSER_ASSET_PATH\n : options.assetPath;\n\n if (assetPath) {\n let normalizedAssetPath = assetPath;\n if (!normalizedAssetPath.startsWith('/')) {\n normalizedAssetPath = '/' + normalizedAssetPath;\n }\n if (normalizedAssetPath.endsWith('/')) {\n normalizedAssetPath = normalizedAssetPath.slice(0, -1);\n }\n\n // Construct absolute URL: {origin}{assetPath}/{package}/{workerFile}\n const workerPath = `${normalizedAssetPath}/${packageName}/${workerFile}`;\n const workerUrl = new URL(workerPath, window.location.origin).href;\n\n console.log(\n `[worker-helper] Using assetPath. Full Worker URL: ${workerUrl}`\n );\n try {\n const worker = new Worker(workerUrl, { type: 'module' });\n console.log(\n `[worker-helper] Successfully created worker with assetPath: ${workerUrl}`\n );\n return worker;\n } catch (e) {\n console.error(\n `[worker-helper] Failed to load worker from assetPath URL: ${workerUrl}`,\n e\n );\n throw new Error(\n `Worker failed to load from ${workerUrl}: ${e instanceof Error ? e.message : String(e)}`,\n { cause: e }\n );\n }\n }\n\n // Try multiple path strategies to support both:\n // 1. Monorepo development structure: ../../{package}/dist/{workerFile}\n // 2. npm installed structure: ../../../{package}/dist/{workerFile}\n const pathStrategies = [\n // First try monorepo structure (when runtime is at packages/runtime/src)\n `../../${packageName}/dist/${workerFile}`,\n // Then try npm structure (when runtime is at node_modules/@squoosh-kit/runtime)\n `../../../node_modules/@squoosh-kit/${packageName}/dist/${workerFile}`,\n // Alternative npm structure for cases where packages are flattened\n `../../../${packageName}/dist/${workerFile}`,\n ];\n\n let lastError: Error | null = null;\n\n for (const relPath of pathStrategies) {\n console.log('relPath:', relPath);\n console.log('import.meta.url:', import.meta.url);\n try {\n const workerUrl = new URL(relPath, import.meta.url);\n console.log(\n `[worker-helper] Trying path strategy. Full Worker URL: ${workerUrl.href}`\n );\n const worker = new Worker(workerUrl, {\n type: 'module',\n });\n console.log(\n `[worker-helper] Successfully created worker with URL: ${workerUrl.href}`\n );\n return worker;\n } catch (error) {\n console.warn(\n `[worker-helper] Path strategy failed for ${relPath}:`,\n error\n );\n lastError = error instanceof Error ? error : new Error(String(error));\n // Continue to next strategy\n }\n }\n\n // If all strategies failed, throw the last error\n if (lastError) {\n console.error('[worker-helper] All path strategies failed.', lastError);\n throw lastError;\n }\n throw new Error(\n `Could not resolve worker ${normalizedName} using any available path strategy`\n );\n }\n\n const workerScript = resolveServerWorkerScript(\n workerConfig,\n normalizedName\n );\n return new Worker(workerScript, { type: 'module' });\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n throw new Error(\n `Failed to create worker from ${normalizedName}: ${errorMessage}. ` +\n `Ensure the @squoosh-kit/resize and @squoosh-kit/webp packages are installed. ` +\n `If you're using Vite, ensure the worker files are not being optimized as dependencies.`,\n { cause: error }\n );\n }\n}\n\n/**\n * Create a worker with initialization timeout and ready signal handling\n *\n * This is a higher-level function that creates a worker and waits for it\n * to signal that it's ready to receive messages.\n *\n * @param workerFilename - The name of the worker file\n * @param timeoutMs - Timeout in milliseconds (default: 10000)\n * @returns Promise that resolves to a ready Worker instance\n * @throws Error if worker creation fails or times out\n */\nexport function createReadyWorker(\n workerFilename: string,\n options?: CreateWorkerOptions,\n timeoutMs: number = 10000\n): Promise<Worker> {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n reject(\n new Error(\n `Worker initialization timeout after ${timeoutMs}ms. Worker file: ${workerFilename}`\n )\n );\n }, timeoutMs);\n\n let worker: Worker;\n try {\n worker = createCodecWorker(workerFilename, options);\n } catch (error) {\n clearTimeout(timeout);\n reject(error);\n return;\n }\n\n const handleMessage = (event: MessageEvent) => {\n if (event.data?.type === 'worker:ready') {\n clearTimeout(timeout);\n worker.removeEventListener('message', handleMessage);\n worker.removeEventListener('error', handleError);\n worker.removeEventListener('messageerror', handleMessageError);\n resolve(worker);\n }\n };\n\n const handleError = (event: ErrorEvent) => {\n clearTimeout(timeout);\n worker.removeEventListener('message', handleMessage);\n worker.removeEventListener('error', handleError);\n worker.removeEventListener('messageerror', handleMessageError);\n reject(\n new Error(\n `Worker failed to start: ${event?.message || 'Unknown error'}. Worker file: ${workerFilename}`\n )\n );\n };\n\n const handleMessageError = () => {\n clearTimeout(timeout);\n worker.removeEventListener('message', handleMessage);\n worker.removeEventListener('error', handleError);\n worker.removeEventListener('messageerror', handleMessageError);\n reject(\n new Error(\n `Worker message error during initialization. Worker file: ${workerFilename}`\n )\n );\n };\n\n worker.addEventListener('message', handleMessage);\n worker.addEventListener('error', handleError);\n worker.addEventListener('messageerror', handleMessageError);\n worker.postMessage({ type: 'worker:ping' });\n });\n}\n",
|
|
8
9
|
"/**\n * Load WASM binary from various sources with fallback strategies\n *\n * Supports:\n * - Node.js (fs/promises)\n * - Browsers (fetch)\n * - Workers (fetch)\n */\nexport async function loadWasmBinary(\n relativePath: string,\n baseUrlOverride?: string | URL\n): Promise<ArrayBuffer> {\n // Get the base URL depending on the environment (worker or main thread)\n // If a base URL is provided, use it; otherwise use import.meta.url from this module\n // In a worker, import.meta.url is the worker's own URL.\n // In the main thread, it's the URL of the current module.\n const baseUrl = baseUrlOverride\n ? typeof baseUrlOverride === 'string'\n ? new URL('.', baseUrlOverride)\n : new URL('.', baseUrlOverride.href)\n : new URL('.', import.meta.url);\n const fullUrl = new URL(relativePath, baseUrl);\n\n console.log(`[WasmLoader] Loading WASM from relative path: ${relativePath}`);\n console.log(`[WasmLoader] Base URL (import.meta.url): ${baseUrl.href}`);\n console.log(`[WasmLoader] Constructed full URL: ${fullUrl.href}`);\n\n try {\n const response = await fetch(fullUrl.href);\n\n console.log(\n `[WasmLoader] Fetch response status for ${fullUrl.href}: ${response.status}`\n );\n\n if (!response.ok) {\n const responseText = await response.text();\n console.error(\n `[WasmLoader] Fetch response text (first 500 chars):`,\n responseText.substring(0, 500)\n );\n throw new Error(\n `Failed to fetch WASM module at ${fullUrl.href}: ${response.status} ${response.statusText}`\n );\n }\n\n const contentType = response.headers.get('content-type');\n console.log(`[WasmLoader] Response Content-Type: ${contentType}`);\n if (!contentType || !contentType.includes('application/wasm')) {\n console.warn(\n `[WasmLoader] Warning: WASM module at ${fullUrl.href} served with incorrect MIME type: \"${contentType}\". Should be \"application/wasm\".`\n );\n }\n\n return await response.arrayBuffer();\n } catch (error) {\n console.error(\n `[WasmLoader] CRITICAL: Fetching WASM binary from ${fullUrl.href} failed.`,\n error\n );\n throw error;\n }\n}\n\n/**\n * Load WASM JavaScript module with fallback strategies\n *\n * Strategy 1: Static relative import (works everywhere)\n * Strategy 2: import.meta.resolve (Node.js 22+)\n * Strategy 3: URL-based import (browsers/workers)\n */\nexport async function loadWasmModule(\n modulePath: string\n): Promise<WebAssembly.Module> {\n // Strategy 1: Try direct static import\n try {\n return await import(/* @vite-ignore */ modulePath);\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e1) {\n // Continue to next strategy\n }\n\n // Strategy 2: Try import.meta.resolve (Node.js 22+)\n try {\n const resolvedPath = await import.meta.resolve(modulePath);\n\n return await import(/* @vite-ignore */ resolvedPath);\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e2) {\n // Continue to next strategy\n }\n\n // Strategy 3: Try URL-based import\n try {\n const url = new URL(/* @vite-ignore */ modulePath, import.meta.url);\n\n return await import(/* @vite-ignore */ url.href);\n } catch (e3) {\n throw new Error(\n `Failed to load WASM module from \"${modulePath}\". ` +\n `Ensure WASM files are in the expected location and the module can be resolved.`,\n { cause: e3 }\n );\n }\n}\n",
|
|
9
10
|
"import type { ImageInput } from './types.js';\n\nexport function validateArrayBuffer(\n buffer: unknown\n): asserts buffer is ArrayBuffer {\n // Check if SharedArrayBuffer is defined in the current environment before using it\n if (\n typeof SharedArrayBuffer !== 'undefined' &&\n buffer instanceof SharedArrayBuffer\n ) {\n throw new Error(\n 'SharedArrayBuffer is not supported. ' +\n 'Use regular ArrayBuffer or Uint8Array instead.'\n );\n }\n\n if (!(buffer instanceof ArrayBuffer)) {\n throw new TypeError('image.data.buffer must be an ArrayBuffer');\n }\n}\n\nexport function validateImageInput(\n image: unknown\n): asserts image is ImageInput {\n if (!image || typeof image !== 'object') {\n throw new TypeError('image must be an object');\n }\n\n const imageObj = image as Record<string, unknown>;\n\n if (!('data' in imageObj)) {\n throw new TypeError('image.data is required');\n }\n\n const { data } = imageObj;\n if (!(data instanceof Uint8Array || data instanceof Uint8ClampedArray)) {\n throw new TypeError('image.data must be Uint8Array or Uint8ClampedArray');\n }\n\n if (!('width' in imageObj) || !('height' in imageObj)) {\n throw new TypeError('image.width and image.height are required');\n }\n\n const { width, height } = imageObj;\n\n if (typeof width !== 'number' || !Number.isInteger(width) || width <= 0) {\n throw new RangeError(\n `image.width must be a positive integer, got ${width}`\n );\n }\n\n if (typeof height !== 'number' || !Number.isInteger(height) || height <= 0) {\n throw new RangeError(\n `image.height must be a positive integer, got ${height}`\n );\n }\n\n const expectedSize = width * height * 4;\n if (data.length < expectedSize) {\n throw new RangeError(\n `image.data too small: ${data.length} bytes, expected at least ${expectedSize} bytes for ${width}x${height} RGBA image`\n );\n }\n}\n",
|
|
10
11
|
"/**\n * Polyfill for ImageData in Node/Bun environments where it's not available.\n * Must be called before any WASM decode operation that returns ImageData.\n */\nexport function polyfillImageData(): void {\n if (typeof ImageData === 'undefined') {\n (\n globalThis as {\n ImageData?: new (\n data: Uint8ClampedArray,\n width: number,\n height: number\n ) => ImageData;\n }\n ).ImageData = class {\n data: Uint8ClampedArray;\n width: number;\n height: number;\n colorSpace: PredefinedColorSpace = 'srgb';\n constructor(data: Uint8ClampedArray, width: number, height: number) {\n this.data = data;\n this.width = width;\n this.height = height;\n }\n } as unknown as typeof ImageData;\n }\n}\n",
|
|
11
|
-
"/**\n * @squoosh-kit/runtime\n *\n * Core runtime logic for squoosh-kit, including environment utilities\n * and worker communication helpers.\n */\n\nexport * from './env.js';\nexport * from './worker-call.js';\nexport * from './types.js';\nexport * from './worker-helper.js';\nexport * from './wasm-loader.js';\nexport * from './validators.js';\nexport * from './simd-detector.js';\nexport * from './image-data-polyfill.js';\n",
|
|
12
|
+
"/**\n * @squoosh-kit/runtime\n *\n * Core runtime logic for squoosh-kit, including environment utilities\n * and worker communication helpers.\n */\n\nexport * from './bridge-mode.js';\nexport * from './env.js';\nexport * from './worker-call.js';\nexport * from './types.js';\nexport * from './worker-helper.js';\nexport * from './wasm-loader.js';\nexport * from './validators.js';\nexport * from './simd-detector.js';\nexport * from './image-data-polyfill.js';\n",
|
|
12
13
|
"/**\n * PNG processor - single-source worker/client implementation\n */\n\nimport type {\n WorkerRequest,\n WorkerResponse,\n ImageInput,\n} from '@squoosh-kit/runtime';\nimport { loadWasmBinary, polyfillImageData } from '@squoosh-kit/runtime';\n\ntype EncodeFn = (data: Uint8Array, width: number, height: number) => Uint8Array;\n\ntype DecodeFn = (data: Uint8Array) => ImageData;\n\nlet encodeFn: EncodeFn | null = null;\nlet decodeFn: DecodeFn | null = null;\nlet initPromise: Promise<void> | null = null;\n\nasync function initPNG(): Promise<void> {\n if (encodeFn && decodeFn) {\n return;\n }\n\n if (initPromise) {\n return initPromise;\n }\n\n initPromise = (async () => {\n try {\n // Polyfill ImageData for Node/Bun environments\n polyfillImageData();\n\n const workerBaseUrl = new URL('.', import.meta.url);\n const isSource = import.meta.url.includes('/src/');\n const wasmPaths = isSource\n ? ['../wasm/png/squoosh_png_bg.wasm', './wasm/png/squoosh_png_bg.wasm']\n : ['./wasm/png/squoosh_png_bg.wasm', '../wasm/png/squoosh_png_bg.wasm'];\n\n let wasmBuffer: ArrayBuffer | null = null;\n let lastError: Error | null = null;\n for (const path of wasmPaths) {\n try {\n wasmBuffer = await loadWasmBinary(path, workerBaseUrl);\n break;\n } catch (error) {\n lastError = error instanceof Error ? error : new Error(String(error));\n }\n }\n\n if (!wasmBuffer) {\n throw (\n lastError || new Error('Could not load PNG WASM binary from any path')\n );\n }\n\n const jsPaths = isSource\n ? ['../wasm/png/squoosh_png.js', './wasm/png/squoosh_png.js']\n : ['./wasm/png/squoosh_png.js', '../wasm/png/squoosh_png.js'];\n\n type PNGModule = {\n default: (buf: ArrayBuffer) => Promise<unknown>;\n encode: EncodeFn;\n decode: DecodeFn;\n };\n\n let pngModule: PNGModule | null = null;\n let jsLastError: Error | null = null;\n for (const jsPath of jsPaths) {\n try {\n pngModule = (await import(/* @vite-ignore */ jsPath)) as PNGModule;\n break;\n } catch (error) {\n jsLastError =\n error instanceof Error ? error : new Error(String(error));\n }\n }\n\n if (!pngModule) {\n throw (\n jsLastError || new Error('Could not load PNG JS module from any path')\n );\n }\n\n await pngModule.default(wasmBuffer);\n encodeFn = pngModule.encode;\n decodeFn = pngModule.decode;\n } catch (error) {\n initPromise = null;\n throw new Error(\n `Failed to initialize PNG WASM module: ${error instanceof Error ? error.message : String(error)}`,\n { cause: error }\n );\n }\n })();\n\n return initPromise;\n}\n\nexport async function pngEncodeClient(\n image: ImageInput,\n signal?: AbortSignal\n): Promise<Uint8Array> {\n if (signal?.aborted) {\n throw new DOMException('Aborted', 'AbortError');\n }\n\n await initPNG();\n\n if (signal?.aborted) {\n throw new DOMException('Aborted', 'AbortError');\n }\n\n if (!encodeFn) {\n throw new Error('PNG module not initialized');\n }\n\n const { data, width, height } = image;\n\n // PNG encode takes Uint8Array, convert from Uint8ClampedArray if needed\n const uint8Data =\n data instanceof Uint8Array\n ? data\n : new Uint8Array(\n data.buffer as ArrayBuffer,\n data.byteOffset,\n data.length\n );\n\n const result = encodeFn(uint8Data, width, height);\n if (!result) {\n throw new Error('PNG encoding failed');\n }\n return result;\n}\n\nexport async function pngDecodeClient(\n data: Uint8Array,\n signal?: AbortSignal\n): Promise<ImageData> {\n if (signal?.aborted) {\n throw new DOMException('Aborted', 'AbortError');\n }\n\n await initPNG();\n\n if (signal?.aborted) {\n throw new DOMException('Aborted', 'AbortError');\n }\n\n if (!decodeFn) {\n throw new Error('PNG module not initialized');\n }\n\n // decode throws on error per the WASM binding contract\n return decodeFn(data);\n}\n\n/**\n * Worker message handler\n */\nif (typeof self !== 'undefined') {\n self.onmessage = async (event: MessageEvent) => {\n const msgData = event.data;\n\n if (msgData?.type === 'worker:ping') {\n await initPNG();\n self.postMessage({ type: 'worker:ready' });\n return;\n }\n\n if (msgData?.type === 'png:encode') {\n const request = msgData as WorkerRequest<{ image: ImageInput }>;\n const response: WorkerResponse<Uint8Array> = {\n id: request.id,\n ok: false,\n };\n try {\n const result = await pngEncodeClient(request.payload.image);\n response.ok = true;\n response.data = result;\n self.postMessage(response, {\n transfer: [result.buffer as ArrayBuffer],\n });\n } catch (error) {\n response.error = error instanceof Error ? error.message : String(error);\n self.postMessage(response);\n }\n return;\n }\n\n if (msgData?.type === 'png:decode') {\n const request = msgData as WorkerRequest<{ data: Uint8Array }>;\n const response: WorkerResponse<ImageData> = {\n id: request.id,\n ok: false,\n };\n try {\n const result = await pngDecodeClient(request.payload.data);\n response.ok = true;\n response.data = result;\n self.postMessage(response, {\n transfer: [result.data.buffer as ArrayBuffer],\n });\n } catch (error) {\n response.error = error instanceof Error ? error.message : String(error);\n self.postMessage(response);\n }\n return;\n }\n\n const request = msgData as WorkerRequest<unknown>;\n const response: WorkerResponse<never> = {\n id: request.id,\n ok: false,\n error: `Unknown message type: ${request.type}`,\n };\n self.postMessage(response);\n };\n}\n",
|
|
13
|
-
"/**\n * Bridge implementation for the PNG package, handling worker and client modes.\n */\n\nimport {\n callWorker,\n createReadyWorker,\n type ImageInput,\n} from '@squoosh-kit/runtime';\nimport { validateImageInput } from '@squoosh-kit/runtime';\n\nexport type BridgeOptions = {\n /**\n * Public URL prefix for worker and WASM files.\n * Defaults to `/squoosh-kit` in the browser.\n */\n assetPath?: string;\n};\n\ninterface PngBridge {\n encode(image: ImageInput, signal?: AbortSignal): Promise<Uint8Array>;\n decode(data: Uint8Array, signal?: AbortSignal): Promise<ImageData>;\n terminate(): Promise<void>;\n}\n\nclass PngClientBridge implements PngBridge {\n async encode(image: ImageInput, signal?: AbortSignal): Promise<Uint8Array> {\n const module = await import('./png.worker.js');\n const pngEncodeClient = module.pngEncodeClient as (\n image: ImageInput,\n signal?: AbortSignal\n ) => Promise<Uint8Array>;\n return pngEncodeClient(image, signal);\n }\n\n async decode(data: Uint8Array, signal?: AbortSignal): Promise<ImageData> {\n const module = await import('./png.worker.js');\n const pngDecodeClient = module.pngDecodeClient as (\n data: Uint8Array,\n signal?: AbortSignal\n ) => Promise<ImageData>;\n return pngDecodeClient(data, signal);\n }\n\n async terminate(): Promise<void> {\n // Client mode has nothing to terminate\n }\n}\n\nclass PngWorkerBridge implements PngBridge {\n private worker: Worker | null = null;\n private workerReady: Promise<Worker> | null = null;\n private options?: BridgeOptions;\n\n constructor(options?: BridgeOptions) {\n this.options = options;\n }\n\n private async getWorker(): Promise<Worker> {\n if (!this.workerReady) {\n this.workerReady = this.createWorker();\n }\n return this.workerReady;\n }\n\n private async createWorker(): Promise<Worker> {\n this.worker = await createReadyWorker('png.worker.js', this.options);\n return this.worker;\n }\n\n async encode(image: ImageInput, signal?: AbortSignal): Promise<Uint8Array> {\n const worker = await this.getWorker();\n validateImageInput(image);\n return callWorker(worker, 'png:encode', { image }, signal);\n }\n\n async decode(data: Uint8Array, signal?: AbortSignal): Promise<ImageData> {\n const worker = await this.getWorker();\n return callWorker(worker, 'png:decode', { data }, signal);\n }\n\n async terminate(): Promise<void> {\n if (this.worker) {\n this.worker.terminate();\n this.worker = null;\n this.workerReady = null;\n }\n }\n}\n\nexport function createBridge(\n mode:
|
|
14
|
-
"/**\n * @squoosh-kit/png public API\n */\n\nimport type { ImageInput } from '@squoosh-kit/runtime';\nimport { createBridge, type BridgeOptions } from './bridge';\n\nexport type { ImageInput };\n\n// Global bridge instance for reuse\nlet globalWorkerBridge: ReturnType<typeof createBridge> | null = null;\n\nfunction getGlobalBridge(): ReturnType<typeof createBridge> {\n if (!globalWorkerBridge) {\n globalWorkerBridge = createBridge('
|
|
14
|
+
"/**\n * Bridge implementation for the PNG package, handling worker and client modes.\n */\n\nimport {\n callWorker,\n createReadyWorker,\n type ImageInput,\n resolveBridgeMode,\n type BridgeMode,\n} from '@squoosh-kit/runtime';\nimport { validateImageInput } from '@squoosh-kit/runtime';\n\nexport type BridgeOptions = {\n /**\n * Public URL prefix for worker and WASM files.\n * Defaults to `/squoosh-kit` in the browser.\n */\n assetPath?: string;\n};\n\ninterface PngBridge {\n encode(image: ImageInput, signal?: AbortSignal): Promise<Uint8Array>;\n decode(data: Uint8Array, signal?: AbortSignal): Promise<ImageData>;\n terminate(): Promise<void>;\n}\n\nclass PngClientBridge implements PngBridge {\n async encode(image: ImageInput, signal?: AbortSignal): Promise<Uint8Array> {\n const module = await import('./png.worker.js');\n const pngEncodeClient = module.pngEncodeClient as (\n image: ImageInput,\n signal?: AbortSignal\n ) => Promise<Uint8Array>;\n return pngEncodeClient(image, signal);\n }\n\n async decode(data: Uint8Array, signal?: AbortSignal): Promise<ImageData> {\n const module = await import('./png.worker.js');\n const pngDecodeClient = module.pngDecodeClient as (\n data: Uint8Array,\n signal?: AbortSignal\n ) => Promise<ImageData>;\n return pngDecodeClient(data, signal);\n }\n\n async terminate(): Promise<void> {\n // Client mode has nothing to terminate\n }\n}\n\nclass PngWorkerBridge implements PngBridge {\n private worker: Worker | null = null;\n private workerReady: Promise<Worker> | null = null;\n private options?: BridgeOptions;\n\n constructor(options?: BridgeOptions) {\n this.options = options;\n }\n\n private async getWorker(): Promise<Worker> {\n if (!this.workerReady) {\n this.workerReady = this.createWorker();\n }\n return this.workerReady;\n }\n\n private async createWorker(): Promise<Worker> {\n this.worker = await createReadyWorker('png.worker.js', this.options);\n return this.worker;\n }\n\n async encode(image: ImageInput, signal?: AbortSignal): Promise<Uint8Array> {\n const worker = await this.getWorker();\n validateImageInput(image);\n return callWorker(worker, 'png:encode', { image }, signal);\n }\n\n async decode(data: Uint8Array, signal?: AbortSignal): Promise<ImageData> {\n const worker = await this.getWorker();\n return callWorker(worker, 'png:decode', { data }, signal);\n }\n\n async terminate(): Promise<void> {\n if (this.worker) {\n this.worker.terminate();\n this.worker = null;\n this.workerReady = null;\n }\n }\n}\n\nexport function createBridge(\n mode: BridgeMode = 'auto',\n options?: BridgeOptions\n): PngBridge {\n const resolvedMode = resolveBridgeMode(mode);\n if (resolvedMode === 'worker') {\n return new PngWorkerBridge(options);\n }\n return new PngClientBridge();\n}\n",
|
|
15
|
+
"/**\n * @squoosh-kit/png public API\n */\n\nimport type { BridgeMode, ImageInput } from '@squoosh-kit/runtime';\nimport { createBridge, type BridgeOptions } from './bridge';\n\nexport type { ImageInput };\n\n// Global bridge instance for reuse\nlet globalWorkerBridge: ReturnType<typeof createBridge> | null = null;\n\nfunction getGlobalBridge(): ReturnType<typeof createBridge> {\n if (!globalWorkerBridge) {\n globalWorkerBridge = createBridge('auto');\n }\n return globalWorkerBridge;\n}\n\n/**\n * A reusable PNG encoder that can be terminated to clean up resources.\n */\nexport type PngEncoderFactory = ((\n imageData: ImageInput,\n signal?: AbortSignal\n) => Promise<Uint8Array>) & {\n terminate(): Promise<void>;\n};\n\n/**\n * A reusable PNG decoder that can be terminated to clean up resources.\n */\nexport type PngDecoderFactory = ((\n data: Uint8Array,\n signal?: AbortSignal\n) => Promise<ImageData>) & {\n terminate(): Promise<void>;\n};\n\n/**\n * Encodes raw RGBA image data to PNG format.\n *\n * @param imageData - The raw RGBA image data to encode.\n * @param signal - Optional AbortSignal to cancel the operation.\n * @returns A Promise resolving to the encoded PNG data as a Uint8Array.\n *\n * @example\n * const result = await encode(imageData);\n */\nexport async function encode(\n imageData: ImageInput,\n signal?: AbortSignal\n): Promise<Uint8Array> {\n return getGlobalBridge().encode(imageData, signal);\n}\n\n/**\n * Decodes PNG data back to raw image data.\n *\n * @param data - The PNG-encoded data to decode.\n * @param signal - Optional AbortSignal to cancel the operation.\n * @returns A Promise resolving to an ImageData object.\n *\n * @example\n * const imageData = await decode(pngBuffer);\n */\nexport async function decode(\n data: Uint8Array,\n signal?: AbortSignal\n): Promise<ImageData> {\n return getGlobalBridge().decode(data, signal);\n}\n\n/**\n * Creates a reusable PNG encoder for a specific execution mode.\n *\n * @param mode - The execution mode, either 'worker' or 'client'.\n * @param options - Optional bridge configuration options.\n * @returns A function that encodes image data to PNG.\n */\nexport function createPngEncoder(\n mode: BridgeMode = 'auto',\n options?: BridgeOptions\n): PngEncoderFactory {\n const bridge = createBridge(mode, options);\n\n return Object.assign(\n (imageData: ImageInput, signal?: AbortSignal) => {\n return bridge.encode(imageData, signal);\n },\n {\n terminate: async () => {\n await bridge.terminate();\n },\n }\n );\n}\n\n/**\n * Creates a reusable PNG decoder for a specific execution mode.\n *\n * @param mode - The execution mode, either 'worker' or 'client'.\n * @param options - Optional bridge configuration options.\n * @returns A function that decodes PNG data to ImageData.\n */\nexport function createPngDecoder(\n mode: BridgeMode = 'auto',\n options?: BridgeOptions\n): PngDecoderFactory {\n const bridge = createBridge(mode, options);\n\n return Object.assign(\n (data: Uint8Array, signal?: AbortSignal) => {\n return bridge.decode(data, signal);\n },\n {\n terminate: async () => {\n await bridge.terminate();\n },\n }\n );\n}\n"
|
|
15
16
|
],
|
|
16
|
-
"mappings": "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",
|
|
17
|
-
"debugId": "
|
|
17
|
+
"mappings": "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",
|
|
18
|
+
"debugId": "8BAE277E54513B3264756E2164756E21",
|
|
18
19
|
"names": []
|
|
19
20
|
}
|
|
@@ -15,10 +15,28 @@ var __export = (target, all) => {
|
|
|
15
15
|
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
16
16
|
|
|
17
17
|
// ../runtime/src/env.ts
|
|
18
|
+
function isWorker() {
|
|
19
|
+
return typeof self !== "undefined" && typeof globalThis.DedicatedWorkerGlobalScope !== "undefined";
|
|
20
|
+
}
|
|
21
|
+
function isBrowser() {
|
|
22
|
+
return typeof window !== "undefined" && typeof document !== "undefined";
|
|
23
|
+
}
|
|
18
24
|
function isBun() {
|
|
19
25
|
return typeof Bun !== "undefined";
|
|
20
26
|
}
|
|
21
27
|
|
|
28
|
+
// ../runtime/src/bridge-mode.ts
|
|
29
|
+
function resolveBridgeMode(mode = "auto") {
|
|
30
|
+
if (mode === "worker" || mode === "client") {
|
|
31
|
+
return mode;
|
|
32
|
+
}
|
|
33
|
+
if (isBrowser() && !isWorker()) {
|
|
34
|
+
return "worker";
|
|
35
|
+
}
|
|
36
|
+
return "client";
|
|
37
|
+
}
|
|
38
|
+
var init_bridge_mode = () => {};
|
|
39
|
+
|
|
22
40
|
// ../runtime/src/worker-call.ts
|
|
23
41
|
async function callWorker(worker, type, payload, signal, transfer) {
|
|
24
42
|
return new Promise((resolve, reject) => {
|
|
@@ -358,6 +376,7 @@ function polyfillImageData() {
|
|
|
358
376
|
|
|
359
377
|
// ../runtime/src/index.ts
|
|
360
378
|
var init_src = __esm(() => {
|
|
379
|
+
init_bridge_mode();
|
|
361
380
|
init_worker_helper();
|
|
362
381
|
init_simd_detector();
|
|
363
382
|
});
|
|
@@ -516,4 +535,4 @@ export {
|
|
|
516
535
|
pngDecodeClient
|
|
517
536
|
};
|
|
518
537
|
|
|
519
|
-
//# debugId=
|
|
538
|
+
//# debugId=4D307E7256CBA46964756E2164756E21
|