@squoosh-kit/mozjpeg 0.2.5 → 0.2.7

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.
@@ -4,17 +4,17 @@
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
6
  "/**\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
- "/**\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 type CreateWorkerOptions = {\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 browser environments, uses relative paths within node_modules that Vite can resolve.\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 browser contexts, use relative paths within the installed packages\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 // If a custom asset path is provided, use it directly\n if (options?.assetPath) {\n // Normalize the asset path - ensure it starts with / and ends without /\n let normalizedAssetPath = options.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 provided 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 // Fallbacks for monorepo/dev without build artifacts\n const platformExt = isBun() ? '.bun.js' : '.node.mjs';\n const baseName = normalizedName.replace('.js', '');\n const pkgName = workerConfig.package.split('/')[1]; // e.g. 'avif', 'webp', 'resize'\n\n // 1) Try TypeScript source first (Bun can transpile TS, works in dev)\n const srcRelPath = `../../${pkgName}/src/${baseName}.ts`;\n\n console.log('srcRelPath:', srcRelPath);\n console.log('import.meta.url:', import.meta.url);\n try {\n return new Worker(new URL(srcRelPath, import.meta.url), {\n type: 'module',\n });\n } catch {\n // 2) Try dist output (if already built)\n const distRelPath = `../../${pkgName}/dist/${baseName}.${platformExt.slice(1)}`;\n\n console.log('distRelPath:', distRelPath);\n console.log('import.meta.url:', import.meta.url);\n try {\n return new Worker(new URL(distRelPath, import.meta.url), {\n type: 'module',\n });\n } catch {\n // 3) Try import.meta.resolve as last resort\n if (typeof import.meta.resolve === 'function') {\n try {\n const resolved = import.meta.resolve(\n `${workerConfig.package}/${workerConfig.specifier}`\n );\n console.log('resolved:', resolved);\n return new Worker(resolved, { type: 'module' });\n } catch {\n // Continue to error below\n }\n }\n }\n }\n\n // If we get here, all fallbacks failed\n throw new Error(\n `Failed to create worker from ${normalizedName}. ` +\n `Tried TypeScript source, dist output, and import.meta.resolve. ` +\n `Ensure the @squoosh-kit/resize and @squoosh-kit/webp packages are installed.`\n );\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",
7
+ "/**\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\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 // Fallbacks for monorepo/dev without build artifacts\n const platformExt = isBun() ? '.bun.js' : '.node.mjs';\n const baseName = normalizedName.replace('.js', '');\n const pkgName = workerConfig.package.split('/')[1]; // e.g. 'avif', 'webp', 'resize'\n\n // 1) Try TypeScript source first (Bun can transpile TS, works in dev)\n const srcRelPath = `../../${pkgName}/src/${baseName}.ts`;\n\n console.log('srcRelPath:', srcRelPath);\n console.log('import.meta.url:', import.meta.url);\n try {\n return new Worker(new URL(srcRelPath, import.meta.url), {\n type: 'module',\n });\n } catch {\n // 2) Try dist output (if already built)\n const distRelPath = `../../${pkgName}/dist/${baseName}.${platformExt.slice(1)}`;\n\n console.log('distRelPath:', distRelPath);\n console.log('import.meta.url:', import.meta.url);\n try {\n return new Worker(new URL(distRelPath, import.meta.url), {\n type: 'module',\n });\n } catch {\n // 3) Try import.meta.resolve as last resort\n if (typeof import.meta.resolve === 'function') {\n try {\n const resolved = import.meta.resolve(\n `${workerConfig.package}/${workerConfig.specifier}`\n );\n console.log('resolved:', resolved);\n return new Worker(resolved, { type: 'module' });\n } catch {\n // Continue to error below\n }\n }\n }\n }\n\n // If we get here, all fallbacks failed\n throw new Error(\n `Failed to create worker from ${normalizedName}. ` +\n `Tried TypeScript source, dist output, and import.meta.resolve. ` +\n `Ensure the @squoosh-kit/resize and @squoosh-kit/webp packages are installed.`\n );\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
8
  "/**\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
9
  "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
10
  "/**\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
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
12
  "export function validateMozjpegOptions(\n options: unknown\n): asserts options is Record<string, unknown> | undefined {\n if (options === undefined) {\n return;\n }\n\n if (typeof options !== 'object' || options === null) {\n throw new TypeError('options must be an object or undefined');\n }\n\n const opts = options as Record<string, unknown>;\n\n if ('quality' in opts && opts.quality !== undefined) {\n const quality = opts.quality;\n\n if (Number.isNaN(quality)) {\n throw new RangeError(\n 'quality must be a valid number in the range 0-100, got NaN'\n );\n }\n\n if (typeof quality !== 'number') {\n throw new TypeError('quality must be a number');\n }\n\n if (!Number.isFinite(quality) || !Number.isInteger(quality)) {\n throw new RangeError(\n 'quality must be an integer in the range 0-100, got floating point'\n );\n }\n\n if (quality < 0 || quality > 100) {\n throw new RangeError(\n `quality must be in the range 0-100, got ${quality}`\n );\n }\n }\n\n if ('smoothing' in opts && opts.smoothing !== undefined) {\n const smoothing = opts.smoothing;\n\n if (Number.isNaN(smoothing)) {\n throw new RangeError(\n 'smoothing must be a valid number in the range 0-100, got NaN'\n );\n }\n\n if (typeof smoothing !== 'number') {\n throw new TypeError('smoothing must be a number');\n }\n\n if (!Number.isFinite(smoothing) || !Number.isInteger(smoothing)) {\n throw new RangeError(\n 'smoothing must be an integer in the range 0-100, got floating point'\n );\n }\n\n if (smoothing < 0 || smoothing > 100) {\n throw new RangeError(\n `smoothing must be in the range 0-100, got ${smoothing}`\n );\n }\n }\n}\n",
13
13
  "/**\n * MozJPEG encoder/decoder - single-source worker/client implementation\n */\n\nimport {\n type WorkerRequest,\n type WorkerResponse,\n type ImageInput,\n loadWasmBinary,\n validateImageInput,\n polyfillImageData,\n isBun,\n isNode,\n isBrowser,\n} from '@squoosh-kit/runtime';\nimport { validateMozjpegOptions } from './validators';\nimport type { MozJPEGModule } from '../wasm/mozjpeg-enc/mozjpeg_enc';\n\n// MozJpegColorSpace is a const enum — define values manually to avoid runtime import issues\nconst MozJpegColorSpace = { GRAYSCALE: 1, RGB: 2, YCbCr: 3 } as const;\nimport type { MozjpegEncodeOptions, MozJPEGDecModule } from './types';\n\nlet cachedEncModule: MozJPEGModule | null = null;\nlet cachedDecModule: MozJPEGDecModule | null = null;\nlet loadEncModulePromise: Promise<MozJPEGModule> | null = null;\nlet loadDecModulePromise: Promise<MozJPEGDecModule> | null = null;\n\nasync function loadMozjpegModule(): Promise<MozJPEGModule> {\n if (cachedEncModule) return cachedEncModule;\n if (loadEncModulePromise) return loadEncModulePromise;\n loadEncModulePromise = (async () => {\n // Emscripten polyfills - required before any module loading\n const globalSelf = typeof self !== 'undefined' ? self : globalThis;\n if (!globalSelf.location) {\n (globalSelf as { location?: { href: string } }).location = {\n href: import.meta.url,\n };\n }\n if (typeof self === 'undefined' && typeof globalThis !== 'undefined') {\n (globalThis as { self?: typeof globalThis }).self = globalThis;\n }\n\n const useNode = isBun() || isNode();\n // Node/Bun: use node-specific encoder; Browser: use standard encoder\n const modulePath = useNode\n ? 'mozjpeg-enc/mozjpeg_node_enc.js'\n : 'mozjpeg-enc/mozjpeg_enc.js';\n\n try {\n console.log('[MozJPEG Worker] Initializing encoder. Node/Bun:', useNode);\n console.log(\n `[MozJPEG Worker] Attempting to import encoder module from path: ${modulePath}`\n );\n\n let moduleFactory;\n const isSource = import.meta.url.includes('/src/');\n const pathsToTry = isSource\n ? ['../wasm/' + modulePath, './wasm/' + modulePath]\n : ['./wasm/' + modulePath, '../wasm/' + modulePath];\n\n let lastError: Error | null = null;\n for (const importPath of pathsToTry) {\n try {\n moduleFactory = (await import(/* @vite-ignore */ importPath)).default;\n console.log(\n `[MozJPEG Worker] Successfully loaded encoder module from: ${importPath}`\n );\n break;\n } catch (error) {\n lastError = error instanceof Error ? error : new Error(String(error));\n console.warn(\n `[MozJPEG Worker] Failed to load encoder from ${importPath}, trying next path...`\n );\n }\n }\n\n if (!moduleFactory) {\n throw (\n lastError ||\n new Error('Could not load MozJPEG encoder module from any path')\n );\n }\n\n console.log(\n '[MozJPEG Worker] Encoder module factory loaded successfully.'\n );\n\n const wasmFileName = useNode\n ? 'mozjpeg_node_enc.wasm'\n : 'mozjpeg_enc.wasm';\n const wasmPathsToTry = isSource\n ? [\n `../wasm/mozjpeg-enc/${wasmFileName}`,\n `./wasm/mozjpeg-enc/${wasmFileName}`,\n ]\n : [\n `./wasm/mozjpeg-enc/${wasmFileName}`,\n `../wasm/mozjpeg-enc/${wasmFileName}`,\n ];\n\n console.log(\n `[MozJPEG Worker] Preparing to load encoder WASM binary. Will try paths: ${wasmPathsToTry.join(', ')}`\n );\n\n const initModuleWithBinary = async (\n factory: (config: {\n noInitialRun: boolean;\n wasmBinary?: ArrayBuffer;\n }) => Promise<MozJPEGModule>,\n wasmPaths: string[]\n ): Promise<MozJPEGModule> => {\n const workerBaseUrl = new URL('.', import.meta.url);\n let lastErr: Error | null = null;\n for (const wasmPath of wasmPaths) {\n try {\n console.log(\n `[MozJPEG Worker] Calling loadWasmBinary with path: ${wasmPath}`\n );\n const wasmBinary = await loadWasmBinary(wasmPath, workerBaseUrl);\n console.log(\n `[MozJPEG Worker] Successfully fetched encoder WASM binary from ${wasmPath}. Size: ${wasmBinary.byteLength} bytes.`\n );\n\n // Ensure self.location exists right before calling factory\n const globalSelf = typeof self !== 'undefined' ? self : globalThis;\n if (!globalSelf.location) {\n (globalSelf as { location?: { href: string } }).location = {\n href: import.meta.url,\n };\n }\n if (\n typeof self === 'undefined' &&\n typeof globalThis !== 'undefined'\n ) {\n (globalThis as { self?: typeof globalThis }).self = globalThis;\n }\n\n return await factory({\n noInitialRun: true,\n wasmBinary,\n });\n } catch (err) {\n lastErr = err instanceof Error ? err : new Error(String(err));\n console.warn(\n `[MozJPEG Worker] Failed to load encoder WASM from ${wasmPath}, trying next path...`\n );\n }\n }\n throw (\n lastErr ||\n new Error(\n 'Could not load encoder WASM binary from any of the attempted paths'\n )\n );\n };\n\n cachedEncModule = await initModuleWithBinary(\n moduleFactory,\n wasmPathsToTry\n );\n console.log(\n '[MozJPEG Worker] MozJPEG encoder module initialized successfully.'\n );\n return cachedEncModule;\n } catch (err) {\n console.error(\n `[MozJPEG Worker] CRITICAL: Failed to load MozJPEG encoder module from path: ${modulePath}`,\n err\n );\n throw err;\n }\n })().catch((err: unknown) => {\n loadEncModulePromise = null;\n throw err;\n });\n return loadEncModulePromise;\n}\n\nasync function loadMozjpegNodeDecModule(): Promise<MozJPEGDecModule> {\n if (cachedDecModule) return cachedDecModule;\n if (loadDecModulePromise) return loadDecModulePromise;\n loadDecModulePromise = (async () => {\n // Emscripten polyfills\n const globalSelf = typeof self !== 'undefined' ? self : globalThis;\n if (!globalSelf.location) {\n (globalSelf as { location?: { href: string } }).location = {\n href: import.meta.url,\n };\n }\n if (typeof self === 'undefined' && typeof globalThis !== 'undefined') {\n (globalThis as { self?: typeof globalThis }).self = globalThis;\n }\n\n // Polyfill ImageData for Node/Bun environments\n polyfillImageData();\n\n // Only node/bun decoder is available\n const modulePath = 'mozjpeg-dec/mozjpeg_node_dec.js';\n\n try {\n console.log('[MozJPEG Worker] Initializing node decoder...');\n console.log(\n `[MozJPEG Worker] Attempting to import decoder module from path: ${modulePath}`\n );\n\n let moduleFactory;\n const isSource = import.meta.url.includes('/src/');\n const pathsToTry = isSource\n ? ['../wasm/' + modulePath, './wasm/' + modulePath]\n : ['./wasm/' + modulePath, '../wasm/' + modulePath];\n\n let lastError: Error | null = null;\n for (const importPath of pathsToTry) {\n try {\n moduleFactory = (await import(/* @vite-ignore */ importPath)).default;\n console.log(\n `[MozJPEG Worker] Successfully loaded decoder module from: ${importPath}`\n );\n break;\n } catch (error) {\n lastError = error instanceof Error ? error : new Error(String(error));\n console.warn(\n `[MozJPEG Worker] Failed to load decoder from ${importPath}, trying next path...`\n );\n }\n }\n\n if (!moduleFactory) {\n throw (\n lastError ||\n new Error('Could not load MozJPEG decoder module from any path')\n );\n }\n\n console.log(\n '[MozJPEG Worker] Decoder module factory loaded successfully.'\n );\n\n const wasmPathsToTry = isSource\n ? [\n '../wasm/mozjpeg-dec/mozjpeg_node_dec.wasm',\n './wasm/mozjpeg-dec/mozjpeg_node_dec.wasm',\n ]\n : [\n './wasm/mozjpeg-dec/mozjpeg_node_dec.wasm',\n '../wasm/mozjpeg-dec/mozjpeg_node_dec.wasm',\n ];\n\n console.log(\n `[MozJPEG Worker] Preparing to load decoder WASM binary. Will try paths: ${wasmPathsToTry.join(', ')}`\n );\n\n const initDecModuleWithBinary = async (\n factory: (config: {\n noInitialRun: boolean;\n wasmBinary?: ArrayBuffer;\n }) => Promise<MozJPEGDecModule>,\n wasmPaths: string[]\n ): Promise<MozJPEGDecModule> => {\n const workerBaseUrl = new URL('.', import.meta.url);\n let lastErr: Error | null = null;\n for (const wasmPath of wasmPaths) {\n try {\n console.log(\n `[MozJPEG Worker] Calling loadWasmBinary with path: ${wasmPath}`\n );\n const wasmBinary = await loadWasmBinary(wasmPath, workerBaseUrl);\n console.log(\n `[MozJPEG Worker] Successfully fetched decoder WASM binary from ${wasmPath}. Size: ${wasmBinary.byteLength} bytes.`\n );\n\n // Ensure self.location exists right before calling factory\n const globalSelf = typeof self !== 'undefined' ? self : globalThis;\n if (!globalSelf.location) {\n (globalSelf as { location?: { href: string } }).location = {\n href: import.meta.url,\n };\n }\n if (\n typeof self === 'undefined' &&\n typeof globalThis !== 'undefined'\n ) {\n (globalThis as { self?: typeof globalThis }).self = globalThis;\n }\n\n return await factory({\n noInitialRun: true,\n wasmBinary,\n });\n } catch (err) {\n lastErr = err instanceof Error ? err : new Error(String(err));\n console.warn(\n `[MozJPEG Worker] Failed to load decoder WASM from ${wasmPath}, trying next path...`\n );\n }\n }\n throw (\n lastErr ||\n new Error(\n 'Could not load decoder WASM binary from any of the attempted paths'\n )\n );\n };\n\n cachedDecModule = await initDecModuleWithBinary(\n moduleFactory,\n wasmPathsToTry\n );\n console.log(\n '[MozJPEG Worker] MozJPEG decoder module initialized successfully.'\n );\n return cachedDecModule;\n } catch (err) {\n console.error(\n '[MozJPEG Worker] CRITICAL: Failed to load MozJPEG decoder module',\n err\n );\n throw err;\n }\n })().catch((err: unknown) => {\n loadDecModulePromise = null;\n throw err;\n });\n return loadDecModulePromise;\n}\n\n/**\n * Convert partial options to full EncodeOptions with Squoosh defaults\n */\nfunction createEncodeOptions(options?: MozjpegEncodeOptions) {\n return {\n quality: options?.quality ?? 75,\n baseline: options?.baseline ?? false,\n arithmetic: options?.arithmetic ?? false,\n progressive: options?.progressive ?? true,\n optimize_coding: options?.optimize_coding ?? true,\n smoothing: options?.smoothing ?? 0,\n color_space: options?.color_space ?? MozJpegColorSpace.YCbCr,\n quant_table: options?.quant_table ?? 3,\n trellis_multipass: options?.trellis_multipass ?? false,\n trellis_opt_zero: options?.trellis_opt_zero ?? false,\n trellis_opt_table: options?.trellis_opt_table ?? false,\n trellis_loops: options?.trellis_loops ?? 1,\n auto_subsample: options?.auto_subsample ?? true,\n chroma_subsample: options?.chroma_subsample ?? 2,\n separate_chroma_quality: options?.separate_chroma_quality ?? false,\n chroma_quality: options?.chroma_quality ?? 75,\n };\n}\n\n/**\n * Client-mode MozJPEG encoder (exported for direct use)\n */\nexport async function mozjpegEncodeClient(\n image: ImageInput,\n options?: MozjpegEncodeOptions,\n signal?: AbortSignal\n): Promise<Uint8Array> {\n // Validate inputs before starting\n validateImageInput(image);\n validateMozjpegOptions(options);\n\n // Check abort before starting\n if (signal?.aborted) {\n throw new DOMException('Aborted', 'AbortError');\n }\n\n const width = image.width;\n const height = image.height;\n const data = image.data;\n\n if (!(data instanceof Uint8Array) && !(data instanceof Uint8ClampedArray)) {\n throw new Error('Image data must be Uint8Array or Uint8ClampedArray');\n }\n\n const module = await loadMozjpegModule();\n\n // Check abort after async operation\n if (signal?.aborted) {\n throw new DOMException('Aborted', 'AbortError');\n }\n\n const encodeOptions = createEncodeOptions(options);\n\n const dataArray =\n data instanceof Uint8ClampedArray\n ? new Uint8Array(data.buffer as ArrayBuffer, data.byteOffset, data.length)\n : new Uint8Array(\n data.buffer as ArrayBuffer,\n data.byteOffset,\n data.length\n );\n\n const result = module.encode(dataArray, width, height, encodeOptions);\n\n if (signal?.aborted) {\n throw new DOMException('Aborted', 'AbortError');\n }\n\n if (!result) {\n throw new Error('MozJPEG encoding failed');\n }\n\n return result;\n}\n\n/**\n * Client-mode MozJPEG decoder (exported for direct use)\n * Note: Only available in Bun/Node environments (no browser decoder available).\n */\nexport async function mozjpegDecodeClient(\n data: BufferSource,\n signal?: AbortSignal\n): Promise<ImageData> {\n if (isBrowser()) {\n throw new Error(\n 'MozJPEG decoding is not supported in browser environments. No browser decoder is available.'\n );\n }\n\n if (signal?.aborted) {\n throw new DOMException('Aborted', 'AbortError');\n }\n\n const module = await loadMozjpegNodeDecModule();\n\n if (signal?.aborted) {\n throw new DOMException('Aborted', 'AbortError');\n }\n\n const result = module.decode(data);\n\n if (!result) {\n throw new Error('MozJPEG decoding failed');\n }\n\n return result;\n}\n\n/**\n * Worker message handler\n * Register the handler regardless of environment (for both worker context and tests)\n */\nif (typeof self !== 'undefined') {\n self.onmessage = async (event: MessageEvent) => {\n const data = event.data;\n\n // Handle worker ping for initialization\n if (data?.type === 'worker:ping') {\n await loadMozjpegModule();\n self.postMessage({ type: 'worker:ready' });\n return;\n }\n\n if (data?.type === 'mozjpeg:encode') {\n const request = data as WorkerRequest<{\n image: ImageInput;\n options?: MozjpegEncodeOptions;\n }>;\n\n const response: WorkerResponse<Uint8Array> = {\n id: request.id,\n ok: false,\n };\n\n try {\n const { image, options } = request.payload;\n const result = await mozjpegEncodeClient(image, options);\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 (data?.type === 'mozjpeg:decode') {\n const request = data as WorkerRequest<{ data: BufferSource }>;\n\n const response: WorkerResponse<ImageData> = {\n id: request.id,\n ok: false,\n };\n\n try {\n const result = await mozjpegDecodeClient(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 // Unknown message type\n const request = data as WorkerRequest<unknown>;\n const response: WorkerResponse<never> = {\n id: request.id,\n ok: false,\n error: `Unknown message type: ${data?.type}`,\n };\n self.postMessage(response);\n };\n}\n",
14
- "/**\n * Bridge implementation for the MozJPEG 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';\nimport type { MozjpegEncodeOptions } from './types';\n\nexport type BridgeOptions = {\n assetPath?: string;\n};\n\ninterface MozjpegBridge {\n encode(\n image: ImageInput,\n options?: MozjpegEncodeOptions,\n signal?: AbortSignal\n ): Promise<Uint8Array>;\n decode(data: BufferSource, signal?: AbortSignal): Promise<ImageData>;\n terminate(): Promise<void>;\n}\n\nclass MozjpegClientBridge implements MozjpegBridge {\n async encode(\n image: ImageInput,\n options?: MozjpegEncodeOptions,\n signal?: AbortSignal\n ): Promise<Uint8Array> {\n // Dynamically import the client encoder to avoid module loading issues in Vite\n const module = await import('./mozjpeg.worker.js');\n const mozjpegEncodeClient = module.mozjpegEncodeClient as (\n image: ImageInput,\n options?: MozjpegEncodeOptions,\n signal?: AbortSignal\n ) => Promise<Uint8Array>;\n return mozjpegEncodeClient(image, options, signal);\n }\n\n async decode(data: BufferSource, signal?: AbortSignal): Promise<ImageData> {\n const module = await import('./mozjpeg.worker.js');\n const mozjpegDecodeClient = module.mozjpegDecodeClient as (\n data: BufferSource,\n signal?: AbortSignal\n ) => Promise<ImageData>;\n return mozjpegDecodeClient(data, signal);\n }\n\n async terminate(): Promise<void> {\n // Client mode has nothing to terminate\n }\n}\n\nclass MozjpegWorkerBridge implements MozjpegBridge {\n private worker: Worker | null = null;\n private workerReady: Promise<Worker> | null = null;\n private options?: BridgeOptions;\n\n constructor(options?: BridgeOptions) {\n console.log(\n '[mozjpeg/bridge] MozjpegWorkerBridge constructor called with options:',\n options\n );\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 console.log(\n '[mozjpeg/bridge] createWorker called. Creating ready worker...'\n );\n this.worker = await createReadyWorker('mozjpeg.worker.js', this.options);\n console.log(\n '[mozjpeg/bridge] createWorker: Ready worker created successfully.'\n );\n return this.worker;\n }\n\n async encode(\n image: ImageInput,\n options?: MozjpegEncodeOptions,\n signal?: AbortSignal\n ): Promise<Uint8Array> {\n const worker = await this.getWorker();\n\n validateImageInput(image);\n return callWorker(worker, 'mozjpeg:encode', { image, options }, signal);\n }\n\n async decode(data: BufferSource, signal?: AbortSignal): Promise<ImageData> {\n const worker = await this.getWorker();\n return callWorker(worker, 'mozjpeg: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: 'worker' | 'client',\n options?: BridgeOptions\n): MozjpegBridge {\n console.log(`[mozjpeg/bridge] createBridge called with mode: ${mode}`);\n if (mode === 'worker') {\n return new MozjpegWorkerBridge(options);\n }\n return new MozjpegClientBridge();\n}\n",
14
+ "/**\n * Bridge implementation for the MozJPEG 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';\nimport type { MozjpegEncodeOptions } from './types';\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 MozjpegBridge {\n encode(\n image: ImageInput,\n options?: MozjpegEncodeOptions,\n signal?: AbortSignal\n ): Promise<Uint8Array>;\n decode(data: BufferSource, signal?: AbortSignal): Promise<ImageData>;\n terminate(): Promise<void>;\n}\n\nclass MozjpegClientBridge implements MozjpegBridge {\n async encode(\n image: ImageInput,\n options?: MozjpegEncodeOptions,\n signal?: AbortSignal\n ): Promise<Uint8Array> {\n // Dynamically import the client encoder to avoid module loading issues in Vite\n const module = await import('./mozjpeg.worker.js');\n const mozjpegEncodeClient = module.mozjpegEncodeClient as (\n image: ImageInput,\n options?: MozjpegEncodeOptions,\n signal?: AbortSignal\n ) => Promise<Uint8Array>;\n return mozjpegEncodeClient(image, options, signal);\n }\n\n async decode(data: BufferSource, signal?: AbortSignal): Promise<ImageData> {\n const module = await import('./mozjpeg.worker.js');\n const mozjpegDecodeClient = module.mozjpegDecodeClient as (\n data: BufferSource,\n signal?: AbortSignal\n ) => Promise<ImageData>;\n return mozjpegDecodeClient(data, signal);\n }\n\n async terminate(): Promise<void> {\n // Client mode has nothing to terminate\n }\n}\n\nclass MozjpegWorkerBridge implements MozjpegBridge {\n private worker: Worker | null = null;\n private workerReady: Promise<Worker> | null = null;\n private options?: BridgeOptions;\n\n constructor(options?: BridgeOptions) {\n console.log(\n '[mozjpeg/bridge] MozjpegWorkerBridge constructor called with options:',\n options\n );\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 console.log(\n '[mozjpeg/bridge] createWorker called. Creating ready worker...'\n );\n this.worker = await createReadyWorker('mozjpeg.worker.js', this.options);\n console.log(\n '[mozjpeg/bridge] createWorker: Ready worker created successfully.'\n );\n return this.worker;\n }\n\n async encode(\n image: ImageInput,\n options?: MozjpegEncodeOptions,\n signal?: AbortSignal\n ): Promise<Uint8Array> {\n const worker = await this.getWorker();\n\n validateImageInput(image);\n return callWorker(worker, 'mozjpeg:encode', { image, options }, signal);\n }\n\n async decode(data: BufferSource, signal?: AbortSignal): Promise<ImageData> {\n const worker = await this.getWorker();\n return callWorker(worker, 'mozjpeg: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: 'worker' | 'client',\n options?: BridgeOptions\n): MozjpegBridge {\n console.log(`[mozjpeg/bridge] createBridge called with mode: ${mode}`);\n if (mode === 'worker') {\n return new MozjpegWorkerBridge(options);\n }\n return new MozjpegClientBridge();\n}\n",
15
15
  "/**\n * @squoosh-kit/mozjpeg public API\n */\n\nimport type { ImageInput } from '@squoosh-kit/runtime';\nimport { createBridge, type BridgeOptions } from './bridge';\nimport type { MozjpegEncodeOptions } from './types';\n\nexport type { ImageInput, MozjpegEncodeOptions };\n\n// Global bridge instance for reuse\nlet globalBridge: ReturnType<typeof createBridge> | null = null;\n\n/**\n * A MozJPEG image encoder that can be reused for multiple operations.\n * Can be terminated to clean up associated resources (especially workers).\n */\nexport type MozjpegEncoderFactory = ((\n imageData: ImageInput,\n options?: MozjpegEncodeOptions,\n signal?: AbortSignal\n) => Promise<Uint8Array>) & {\n /**\n * Terminates the encoder and cleans up resources.\n * Important for worker mode to prevent memory leaks.\n */\n terminate(): Promise<void>;\n};\n\n/**\n * A MozJPEG image decoder that can be reused for multiple operations.\n * Can be terminated to clean up associated resources (especially workers).\n * Note: Only available in Bun/Node environments.\n */\nexport type MozjpegDecoderFactory = ((\n data: BufferSource,\n signal?: AbortSignal\n) => Promise<ImageData>) & {\n /**\n * Terminates the decoder and cleans up resources.\n */\n terminate(): Promise<void>;\n};\n\n/**\n * Encodes an image to JPEG format using MozJPEG. Uses worker mode for UI responsiveness.\n *\n * @param imageData - The image data to encode.\n * @param options - MozJPEG encoding options.\n * @param signal - (Optional) AbortSignal to cancel the encoding operation.\n * @returns A Promise resolving to the encoded JPEG data as a Uint8Array.\n */\nexport async function encode(\n imageData: ImageInput,\n options?: MozjpegEncodeOptions,\n signal?: AbortSignal\n): Promise<Uint8Array> {\n if (!globalBridge) {\n globalBridge = createBridge('worker');\n }\n\n return globalBridge.encode(imageData, options, signal);\n}\n\n/**\n * Decodes a JPEG image to raw ImageData.\n * Note: Only available in Bun/Node environments.\n *\n * @param data - The JPEG data to decode.\n * @param signal - (Optional) AbortSignal to cancel the decoding operation.\n * @returns A Promise resolving to an ImageData object with the decoded pixel data.\n */\nexport async function decode(\n data: BufferSource,\n signal?: AbortSignal\n): Promise<ImageData> {\n if (!globalBridge) {\n globalBridge = createBridge('worker');\n }\n\n return globalBridge.decode(data, signal);\n}\n\n/**\n * Creates a reusable MozJPEG encoder function for a specific execution mode.\n *\n * @param mode - The execution mode, either 'worker' or 'client'.\n * @returns A function that encodes an image to JPEG format with optional AbortSignal.\n */\nexport function createMozjpegEncoder(\n mode: 'worker' | 'client' = 'worker',\n options?: BridgeOptions\n): MozjpegEncoderFactory {\n const bridge = createBridge(mode, options);\n\n return Object.assign(\n (\n imageData: ImageInput,\n encodeOptions?: MozjpegEncodeOptions,\n signal?: AbortSignal\n ) => {\n return bridge.encode(imageData, encodeOptions, signal);\n },\n {\n terminate: async () => {\n await bridge.terminate();\n },\n }\n );\n}\n\n/**\n * Creates a reusable MozJPEG decoder function for a specific execution mode.\n * Note: Only available in Bun/Node environments.\n *\n * @param mode - The execution mode, either 'worker' or 'client'.\n * @returns A function that decodes JPEG data to ImageData with optional AbortSignal.\n */\nexport function createMozjpegDecoder(\n mode: 'worker' | 'client' = 'worker',\n options?: BridgeOptions\n): MozjpegDecoderFactory {\n const bridge = createBridge(mode, options);\n\n return Object.assign(\n (data: BufferSource, signal?: AbortSignal) => {\n return bridge.decode(data, signal);\n },\n {\n terminate: async () => {\n await bridge.terminate();\n },\n }\n );\n}\n"
16
16
  ],
17
- "mappings": "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",
18
- "debugId": "C8C67F0C123E09A864756E2164756E21",
17
+ "mappings": "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",
18
+ "debugId": "146CEE47A7FB62A264756E2164756E21",
19
19
  "names": []
20
20
  }
@@ -161,8 +161,9 @@ function createCodecWorker(workerFilename, options) {
161
161
  console.log(`[worker-helper] In browser environment. Trying to create worker:`);
162
162
  console.log(`[worker-helper] - Package Name: ${packageName}`);
163
163
  console.log(`[worker-helper] - Worker File: ${workerFile}`);
164
- if (options?.assetPath) {
165
- let normalizedAssetPath = options.assetPath;
164
+ const assetPath = options?.assetPath === undefined ? DEFAULT_BROWSER_ASSET_PATH : options.assetPath;
165
+ if (assetPath) {
166
+ let normalizedAssetPath = assetPath;
166
167
  if (!normalizedAssetPath.startsWith("/")) {
167
168
  normalizedAssetPath = "/" + normalizedAssetPath;
168
169
  }
@@ -171,7 +172,7 @@ function createCodecWorker(workerFilename, options) {
171
172
  }
172
173
  const workerPath = `${normalizedAssetPath}/${packageName}/${workerFile}`;
173
174
  const workerUrl = new URL(workerPath, window.location.origin).href;
174
- console.log(`[worker-helper] Using provided assetPath. Full Worker URL: ${workerUrl}`);
175
+ console.log(`[worker-helper] Using assetPath. Full Worker URL: ${workerUrl}`);
175
176
  try {
176
177
  const worker = new Worker(workerUrl, { type: "module" });
177
178
  console.log(`[worker-helper] Successfully created worker with assetPath: ${workerUrl}`);
@@ -189,9 +190,9 @@ function createCodecWorker(workerFilename, options) {
189
190
  let lastError = null;
190
191
  for (const relPath of pathStrategies) {
191
192
  console.log("relPath:", relPath);
192
- console.log("import.meta.url:", "file:///home/bnowak/repos/squoosh-kit/packages/runtime/src/worker-helper.ts");
193
+ console.log("import.meta.url:", "file:///home/runner/work/squoosh-kit/squoosh-kit/packages/runtime/src/worker-helper.ts");
193
194
  try {
194
- const workerUrl = new URL(relPath, "file:///home/bnowak/repos/squoosh-kit/packages/runtime/src/worker-helper.ts");
195
+ const workerUrl = new URL(relPath, "file:///home/runner/work/squoosh-kit/squoosh-kit/packages/runtime/src/worker-helper.ts");
195
196
  console.log(`[worker-helper] Trying path strategy. Full Worker URL: ${workerUrl.href}`);
196
197
  const worker = new Worker(workerUrl, {
197
198
  type: "module"
@@ -214,17 +215,17 @@ function createCodecWorker(workerFilename, options) {
214
215
  const pkgName = workerConfig.package.split("/")[1];
215
216
  const srcRelPath = `../../${pkgName}/src/${baseName}.ts`;
216
217
  console.log("srcRelPath:", srcRelPath);
217
- console.log("import.meta.url:", "file:///home/bnowak/repos/squoosh-kit/packages/runtime/src/worker-helper.ts");
218
+ console.log("import.meta.url:", "file:///home/runner/work/squoosh-kit/squoosh-kit/packages/runtime/src/worker-helper.ts");
218
219
  try {
219
- return new Worker(new URL(srcRelPath, "file:///home/bnowak/repos/squoosh-kit/packages/runtime/src/worker-helper.ts"), {
220
+ return new Worker(new URL(srcRelPath, "file:///home/runner/work/squoosh-kit/squoosh-kit/packages/runtime/src/worker-helper.ts"), {
220
221
  type: "module"
221
222
  });
222
223
  } catch {
223
224
  const distRelPath = `../../${pkgName}/dist/${baseName}.${platformExt.slice(1)}`;
224
225
  console.log("distRelPath:", distRelPath);
225
- console.log("import.meta.url:", "file:///home/bnowak/repos/squoosh-kit/packages/runtime/src/worker-helper.ts");
226
+ console.log("import.meta.url:", "file:///home/runner/work/squoosh-kit/squoosh-kit/packages/runtime/src/worker-helper.ts");
226
227
  try {
227
- return new Worker(new URL(distRelPath, "file:///home/bnowak/repos/squoosh-kit/packages/runtime/src/worker-helper.ts"), {
228
+ return new Worker(new URL(distRelPath, "file:///home/runner/work/squoosh-kit/squoosh-kit/packages/runtime/src/worker-helper.ts"), {
228
229
  type: "module"
229
230
  });
230
231
  } catch {
@@ -285,11 +286,12 @@ function createReadyWorker(workerFilename, options, timeoutMs = 1e4) {
285
286
  worker.postMessage({ type: "worker:ping" });
286
287
  });
287
288
  }
289
+ var DEFAULT_BROWSER_ASSET_PATH = "/squoosh-kit";
288
290
  var init_worker_helper = () => {};
289
291
 
290
292
  // ../runtime/src/wasm-loader.ts
291
293
  async function loadWasmBinary(relativePath, baseUrlOverride) {
292
- const baseUrl = baseUrlOverride ? typeof baseUrlOverride === "string" ? new URL(".", baseUrlOverride) : new URL(".", baseUrlOverride.href) : new URL(".", "file:///home/bnowak/repos/squoosh-kit/packages/runtime/src/wasm-loader.ts");
294
+ const baseUrl = baseUrlOverride ? typeof baseUrlOverride === "string" ? new URL(".", baseUrlOverride) : new URL(".", baseUrlOverride.href) : new URL(".", "file:///home/runner/work/squoosh-kit/squoosh-kit/packages/runtime/src/wasm-loader.ts");
293
295
  const fullUrl = new URL(relativePath, baseUrl);
294
296
  console.log(`[WasmLoader] Loading WASM from relative path: ${relativePath}`);
295
297
  console.log(`[WasmLoader] Base URL (import.meta.url): ${baseUrl.href}`);
@@ -425,7 +427,7 @@ async function loadMozjpegModule() {
425
427
  const globalSelf = typeof self !== "undefined" ? self : globalThis;
426
428
  if (!globalSelf.location) {
427
429
  globalSelf.location = {
428
- href: "file:///home/bnowak/repos/squoosh-kit/packages/mozjpeg/src/mozjpeg.worker.ts"
430
+ href: "file:///home/runner/work/squoosh-kit/squoosh-kit/packages/mozjpeg/src/mozjpeg.worker.ts"
429
431
  };
430
432
  }
431
433
  if (typeof self === "undefined" && typeof globalThis !== "undefined") {
@@ -437,7 +439,7 @@ async function loadMozjpegModule() {
437
439
  console.log("[MozJPEG Worker] Initializing encoder. Node/Bun:", useNode);
438
440
  console.log(`[MozJPEG Worker] Attempting to import encoder module from path: ${modulePath}`);
439
441
  let moduleFactory;
440
- const isSource = "file:///home/bnowak/repos/squoosh-kit/packages/mozjpeg/src/mozjpeg.worker.ts".includes("/src/");
442
+ const isSource = "file:///home/runner/work/squoosh-kit/squoosh-kit/packages/mozjpeg/src/mozjpeg.worker.ts".includes("/src/");
441
443
  const pathsToTry = isSource ? ["../wasm/" + modulePath, "./wasm/" + modulePath] : ["./wasm/" + modulePath, "../wasm/" + modulePath];
442
444
  let lastError = null;
443
445
  for (const importPath of pathsToTry) {
@@ -464,7 +466,7 @@ async function loadMozjpegModule() {
464
466
  ];
465
467
  console.log(`[MozJPEG Worker] Preparing to load encoder WASM binary. Will try paths: ${wasmPathsToTry.join(", ")}`);
466
468
  const initModuleWithBinary = async (factory, wasmPaths) => {
467
- const workerBaseUrl = new URL(".", "file:///home/bnowak/repos/squoosh-kit/packages/mozjpeg/src/mozjpeg.worker.ts");
469
+ const workerBaseUrl = new URL(".", "file:///home/runner/work/squoosh-kit/squoosh-kit/packages/mozjpeg/src/mozjpeg.worker.ts");
468
470
  let lastErr = null;
469
471
  for (const wasmPath of wasmPaths) {
470
472
  try {
@@ -474,7 +476,7 @@ async function loadMozjpegModule() {
474
476
  const globalSelf2 = typeof self !== "undefined" ? self : globalThis;
475
477
  if (!globalSelf2.location) {
476
478
  globalSelf2.location = {
477
- href: "file:///home/bnowak/repos/squoosh-kit/packages/mozjpeg/src/mozjpeg.worker.ts"
479
+ href: "file:///home/runner/work/squoosh-kit/squoosh-kit/packages/mozjpeg/src/mozjpeg.worker.ts"
478
480
  };
479
481
  }
480
482
  if (typeof self === "undefined" && typeof globalThis !== "undefined") {
@@ -513,7 +515,7 @@ async function loadMozjpegNodeDecModule() {
513
515
  const globalSelf = typeof self !== "undefined" ? self : globalThis;
514
516
  if (!globalSelf.location) {
515
517
  globalSelf.location = {
516
- href: "file:///home/bnowak/repos/squoosh-kit/packages/mozjpeg/src/mozjpeg.worker.ts"
518
+ href: "file:///home/runner/work/squoosh-kit/squoosh-kit/packages/mozjpeg/src/mozjpeg.worker.ts"
517
519
  };
518
520
  }
519
521
  if (typeof self === "undefined" && typeof globalThis !== "undefined") {
@@ -525,7 +527,7 @@ async function loadMozjpegNodeDecModule() {
525
527
  console.log("[MozJPEG Worker] Initializing node decoder...");
526
528
  console.log(`[MozJPEG Worker] Attempting to import decoder module from path: ${modulePath}`);
527
529
  let moduleFactory;
528
- const isSource = "file:///home/bnowak/repos/squoosh-kit/packages/mozjpeg/src/mozjpeg.worker.ts".includes("/src/");
530
+ const isSource = "file:///home/runner/work/squoosh-kit/squoosh-kit/packages/mozjpeg/src/mozjpeg.worker.ts".includes("/src/");
529
531
  const pathsToTry = isSource ? ["../wasm/" + modulePath, "./wasm/" + modulePath] : ["./wasm/" + modulePath, "../wasm/" + modulePath];
530
532
  let lastError = null;
531
533
  for (const importPath of pathsToTry) {
@@ -551,7 +553,7 @@ async function loadMozjpegNodeDecModule() {
551
553
  ];
552
554
  console.log(`[MozJPEG Worker] Preparing to load decoder WASM binary. Will try paths: ${wasmPathsToTry.join(", ")}`);
553
555
  const initDecModuleWithBinary = async (factory, wasmPaths) => {
554
- const workerBaseUrl = new URL(".", "file:///home/bnowak/repos/squoosh-kit/packages/mozjpeg/src/mozjpeg.worker.ts");
556
+ const workerBaseUrl = new URL(".", "file:///home/runner/work/squoosh-kit/squoosh-kit/packages/mozjpeg/src/mozjpeg.worker.ts");
555
557
  let lastErr = null;
556
558
  for (const wasmPath of wasmPaths) {
557
559
  try {
@@ -561,7 +563,7 @@ async function loadMozjpegNodeDecModule() {
561
563
  const globalSelf2 = typeof self !== "undefined" ? self : globalThis;
562
564
  if (!globalSelf2.location) {
563
565
  globalSelf2.location = {
564
- href: "file:///home/bnowak/repos/squoosh-kit/packages/mozjpeg/src/mozjpeg.worker.ts"
566
+ href: "file:///home/runner/work/squoosh-kit/squoosh-kit/packages/mozjpeg/src/mozjpeg.worker.ts"
565
567
  };
566
568
  }
567
569
  if (typeof self === "undefined" && typeof globalThis !== "undefined") {
@@ -825,4 +827,4 @@ function createMozjpegDecoder(mode = "worker", options) {
825
827
  });
826
828
  }
827
829
 
828
- //# debugId=C50C7A2F36D6D0F164756E2164756E21
830
+ //# debugId=069299FCD9747FF564756E2164756E21