@squoosh-kit/webp 0.1.9 → 0.1.11
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/index.browser.mjs +8 -1
- package/dist/index.browser.mjs.map +3 -3
- package/dist/index.bun.js +8 -1
- package/dist/index.bun.js.map +3 -3
- package/dist/index.node.cjs +8 -1
- package/dist/index.node.cjs.map +3 -3
- package/dist/index.node.mjs +8 -1
- package/dist/index.node.mjs.map +3 -3
- package/dist/webp.worker.browser.mjs +8 -1
- package/dist/webp.worker.browser.mjs.map +3 -3
- package/dist/webp.worker.bun.js +8 -1
- package/dist/webp.worker.bun.js.map +3 -3
- package/dist/webp.worker.node.cjs +8 -1
- package/dist/webp.worker.node.cjs.map +3 -3
- package/dist/webp.worker.node.mjs +8 -1
- package/dist/webp.worker.node.mjs.map +3 -3
- package/package.json +2 -2
package/dist/index.browser.mjs
CHANGED
|
@@ -111,6 +111,8 @@ function createCodecWorker(workerFilename, options) {
|
|
|
111
111
|
];
|
|
112
112
|
let lastError = null;
|
|
113
113
|
for (const relPath of pathStrategies) {
|
|
114
|
+
console.log("relPath:", relPath);
|
|
115
|
+
console.log("import.meta.url:", import.meta.url);
|
|
114
116
|
try {
|
|
115
117
|
const workerUrl = new URL(relPath, import.meta.url);
|
|
116
118
|
console.log(`[worker-helper] Trying path strategy. Full Worker URL: ${workerUrl.href}`);
|
|
@@ -133,12 +135,16 @@ function createCodecWorker(workerFilename, options) {
|
|
|
133
135
|
const platformExt = isBun() ? ".bun.js" : ".node.mjs";
|
|
134
136
|
const baseName = normalizedName.replace(".js", "");
|
|
135
137
|
const srcRelPath = workerConfig.package.includes("resize") ? `../../resize/src/${baseName}.ts` : `../../webp/src/${baseName}.ts`;
|
|
138
|
+
console.log("srcRelPath:", srcRelPath);
|
|
139
|
+
console.log("import.meta.url:", import.meta.url);
|
|
136
140
|
try {
|
|
137
141
|
return new Worker(new URL(srcRelPath, import.meta.url), {
|
|
138
142
|
type: "module"
|
|
139
143
|
});
|
|
140
144
|
} catch {
|
|
141
145
|
const distRelPath = workerConfig.package.includes("resize") ? `../../resize/dist/${baseName}.${platformExt.slice(1)}` : `../../webp/dist/${baseName}.${platformExt.slice(1)}`;
|
|
146
|
+
console.log("distRelPath:", distRelPath);
|
|
147
|
+
console.log("import.meta.url:", import.meta.url);
|
|
142
148
|
try {
|
|
143
149
|
return new Worker(new URL(distRelPath, import.meta.url), {
|
|
144
150
|
type: "module"
|
|
@@ -147,6 +153,7 @@ function createCodecWorker(workerFilename, options) {
|
|
|
147
153
|
if (typeof import.meta.resolve === "function") {
|
|
148
154
|
try {
|
|
149
155
|
const resolved = import.meta.resolve(`${workerConfig.package}/${workerConfig.specifier}`);
|
|
156
|
+
console.log("resolved:", resolved);
|
|
150
157
|
return new Worker(resolved, { type: "module" });
|
|
151
158
|
} catch {}
|
|
152
159
|
}
|
|
@@ -583,4 +590,4 @@ export {
|
|
|
583
590
|
createWebpEncoder
|
|
584
591
|
};
|
|
585
592
|
|
|
586
|
-
//# debugId=
|
|
593
|
+
//# debugId=8ED27D804DBB45C364756E2164756E21
|
|
@@ -4,7 +4,7 @@
|
|
|
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 };\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 );\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 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\n // 1) Try TypeScript source first (Bun can transpile TS, works in dev)\n const srcRelPath = workerConfig.package.includes('resize')\n ? `../../resize/src/${baseName}.ts`\n : `../../webp/src/${baseName}.ts`;\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 = workerConfig.package.includes('resize')\n ? `../../resize/dist/${baseName}.${platformExt.slice(1)}`\n : `../../webp/dist/${baseName}.${platformExt.slice(1)}`;\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 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 );\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 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 };\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 );\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\n // 1) Try TypeScript source first (Bun can transpile TS, works in dev)\n const srcRelPath = workerConfig.package.includes('resize')\n ? `../../resize/src/${baseName}.ts`\n : `../../webp/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 = workerConfig.package.includes('resize')\n ? `../../resize/dist/${baseName}.${platformExt.slice(1)}`\n : `../../webp/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 );\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\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\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 );\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
|
"export const bigInt=()=>(async e=>{try{return(await WebAssembly.instantiate(e)).instance.exports.b(BigInt(0))===BigInt(0)}catch(e){return!1}})(new Uint8Array([0,97,115,109,1,0,0,0,1,6,1,96,1,126,1,126,3,2,1,0,7,5,1,1,98,0,0,10,6,1,4,0,32,0,11])),bulkMemory=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,3,1,0,1,10,14,1,12,0,65,0,65,0,65,0,252,10,0,0,11])),exceptions=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,8,1,6,0,6,64,25,11,11])),exceptionsFinal=()=>(async()=>{try{return new WebAssembly.Module(Uint8Array.from(atob(\"AGFzbQEAAAABBAFgAAADAgEAChABDgACaR9AAQMAAAsACxoL\"),(e=>e.codePointAt(0)))),!0}catch(e){return!1}})(),extendedConst=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,5,3,1,0,1,11,9,1,0,65,1,65,2,106,11,0])),gc=()=>(async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,95,1,120,0])))(),jsStringBuiltins=()=>(async()=>{try{return await WebAssembly.instantiate(Uint8Array.from(atob(\"AGFzbQEAAAABBgFgAW8BfwIXAQ53YXNtOmpzLXN0cmluZwR0ZXN0AAA=\"),(e=>e.codePointAt(0))),{},{builtins:[\"js-string\"]}),!0}catch(e){return!1}})(),jspi=()=>(async()=>\"Suspending\"in WebAssembly)(),memory64=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,5,3,1,4,1])),multiMemory=()=>(async()=>{try{return new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,5,5,2,0,0,0,0])),!0}catch(e){return!1}})(),multiValue=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,6,1,96,0,2,127,127,3,2,1,0,10,8,1,6,0,65,0,65,0,11])),mutableGlobals=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,2,8,1,1,97,1,98,3,127,1,6,6,1,127,1,65,0,11,7,5,1,1,97,3,1])),referenceTypes=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,7,1,5,0,208,112,26,11])),relaxedSimd=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,15,1,13,0,65,1,253,15,65,2,253,15,253,128,2,11])),saturatedFloatToInt=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,12,1,10,0,67,0,0,0,0,252,0,26,11])),signExtensions=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,8,1,6,0,65,0,192,26,11])),simd=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11])),streamingCompilation=()=>(async()=>\"compileStreaming\"in WebAssembly)(),tailCall=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,6,1,4,0,18,0,11])),threads=()=>(async e=>{try{return\"undefined\"!=typeof MessageChannel&&(new MessageChannel).port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(e)}catch(e){return!1}})(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11])),typeReflection=()=>(async()=>\"Function\"in WebAssembly)(),typedFunctionReferences=()=>(async()=>{try{return new WebAssembly.Module(Uint8Array.from(atob(\"AGFzbQEAAAABEANgAX8Bf2ABZAABf2AAAX8DBAMBAAIJBQEDAAEBChwDCwBBCkEqIAAUAGoLBwAgAEEBagsGANIBEAAL\"),(e=>e.codePointAt(0)))),!0}catch(e){return!1}})();\n",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"/**\n * Bridge implementation for the WebP 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 { EncodeInputOptions } from './types';\n\nexport type BridgeOptions = {\n assetPath?: string;\n};\n\ninterface WebPBridge {\n encode(\n image: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n ): Promise<Uint8Array>;\n terminate(): Promise<void>;\n}\n\nclass WebpClientBridge implements WebPBridge {\n async encode(\n image: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n ): Promise<Uint8Array> {\n // Dynamically import the client encoder to avoid module loading issues in Vite\n const module = await import('./webp.worker.js');\n const webpEncodeClient = module.webpEncodeClient as (\n image: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n ) => Promise<Uint8Array>;\n return webpEncodeClient(image, options, signal);\n }\n\n async terminate(): Promise<void> {\n // Client mode has nothing to terminate\n }\n}\n\nclass WebpWorkerBridge implements WebPBridge {\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 '[webp/bridge] WebpWorkerBridge 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('[webp/bridge] createWorker called. Creating ready worker...');\n this.worker = await createReadyWorker('webp.worker.js', this.options);\n console.log(\n '[webp/bridge] createWorker: Ready worker created successfully.'\n );\n return this.worker;\n }\n\n async encode(\n image: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n ): Promise<Uint8Array> {\n const worker = await this.getWorker();\n\n validateImageInput(image);\n return callWorker(worker, 'webp:encode', { image, options }, 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): WebPBridge {\n console.log(`[webp/bridge] createBridge called with mode: ${mode}`);\n if (mode === 'worker') {\n return new WebpWorkerBridge(options);\n }\n return new WebpClientBridge();\n}\n",
|
|
16
16
|
"/**\n * @squoosh-kit/webp public API\n */\n\nimport type { ImageInput } from '@squoosh-kit/runtime';\nimport { createBridge, type BridgeOptions } from './bridge';\nimport type { EncodeInputOptions } from './types';\n\nexport type { ImageInput, EncodeInputOptions };\n\n// Global bridge instance for reuse\nlet globalClientBridge: ReturnType<typeof createBridge> | null = null;\n\n/**\n * A WebP image encoder that can be reused for multiple operations.\n * Can be terminated to clean up associated resources (especially workers).\n */\nexport type WebpEncoderFactory = ((\n imageData: ImageInput,\n options?: EncodeInputOptions,\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 * @example\n * const encoder = createWebpEncoder('worker');\n * try {\n * const result = await encoder(imageData, options);\n * } finally {\n * await encoder.terminate();\n * }\n */\n terminate(): Promise<void>;\n};\n\n/**\n * Encodes an image to WebP format. Uses worker mode for UI responsiveness.\n *\n * @param imageData - The image data to encode.\n * @param options - WebP encoding options.\n * @param signal - (Optional) AbortSignal to cancel the encoding operation.\n * If provided, you can cancel the operation by calling\n * `controller.abort()` on the associated AbortController.\n * If not provided, the operation cannot be cancelled.\n * @returns A Promise resolving to the encoded WebP data as a Uint8Array.\n *\n * @example\n * // With cancellation support\n * const controller = new AbortController();\n * const result = await encode(imageData, { quality: 85 }, controller.signal);\n * setTimeout(() => controller.abort(), 5000);\n *\n * @example\n * // Without cancellation (operation cannot be stopped)\n * const result = await encode(imageData, { quality: 85 });\n */\nexport async function encode(\n imageData: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n): Promise<Uint8Array> {\n // Use worker mode for UI responsiveness - prevents blocking the main thread\n if (!globalClientBridge) {\n globalClientBridge = createBridge('worker');\n }\n\n return globalClientBridge.encode(imageData, options, signal);\n}\n\n/**\n * Creates a reusable WebP encoder function for a specific execution mode.\n * This is useful for processing multiple images without the overhead of\n * creating a new worker or client instance each time.\n *\n * @param mode - The execution mode, either 'worker' or 'client'.\n * @returns A function that encodes an image to WebP format with optional AbortSignal.\n */\nexport function createWebpEncoder(\n mode: 'worker' | 'client' = 'worker',\n options?: BridgeOptions\n): WebpEncoderFactory {\n const bridge = createBridge(mode, options);\n\n return Object.assign(\n (\n imageData: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n ) => {\n return bridge.encode(imageData, options, signal);\n },\n {\n terminate: async () => {\n await bridge.terminate();\n },\n }\n );\n}\n"
|
|
17
17
|
],
|
|
18
|
-
"mappings": "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",
|
|
19
|
-
"debugId": "
|
|
18
|
+
"mappings": "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",
|
|
19
|
+
"debugId": "8ED27D804DBB45C364756E2164756E21",
|
|
20
20
|
"names": []
|
|
21
21
|
}
|
package/dist/index.bun.js
CHANGED
|
@@ -112,6 +112,8 @@ function createCodecWorker(workerFilename, options) {
|
|
|
112
112
|
];
|
|
113
113
|
let lastError = null;
|
|
114
114
|
for (const relPath of pathStrategies) {
|
|
115
|
+
console.log("relPath:", relPath);
|
|
116
|
+
console.log("import.meta.url:", import.meta.url);
|
|
115
117
|
try {
|
|
116
118
|
const workerUrl = new URL(relPath, import.meta.url);
|
|
117
119
|
console.log(`[worker-helper] Trying path strategy. Full Worker URL: ${workerUrl.href}`);
|
|
@@ -134,12 +136,16 @@ function createCodecWorker(workerFilename, options) {
|
|
|
134
136
|
const platformExt = isBun() ? ".bun.js" : ".node.mjs";
|
|
135
137
|
const baseName = normalizedName.replace(".js", "");
|
|
136
138
|
const srcRelPath = workerConfig.package.includes("resize") ? `../../resize/src/${baseName}.ts` : `../../webp/src/${baseName}.ts`;
|
|
139
|
+
console.log("srcRelPath:", srcRelPath);
|
|
140
|
+
console.log("import.meta.url:", import.meta.url);
|
|
137
141
|
try {
|
|
138
142
|
return new Worker(new URL(srcRelPath, import.meta.url), {
|
|
139
143
|
type: "module"
|
|
140
144
|
});
|
|
141
145
|
} catch {
|
|
142
146
|
const distRelPath = workerConfig.package.includes("resize") ? `../../resize/dist/${baseName}.${platformExt.slice(1)}` : `../../webp/dist/${baseName}.${platformExt.slice(1)}`;
|
|
147
|
+
console.log("distRelPath:", distRelPath);
|
|
148
|
+
console.log("import.meta.url:", import.meta.url);
|
|
143
149
|
try {
|
|
144
150
|
return new Worker(new URL(distRelPath, import.meta.url), {
|
|
145
151
|
type: "module"
|
|
@@ -148,6 +154,7 @@ function createCodecWorker(workerFilename, options) {
|
|
|
148
154
|
if (typeof import.meta.resolve === "function") {
|
|
149
155
|
try {
|
|
150
156
|
const resolved = import.meta.resolve(`${workerConfig.package}/${workerConfig.specifier}`);
|
|
157
|
+
console.log("resolved:", resolved);
|
|
151
158
|
return new Worker(resolved, { type: "module" });
|
|
152
159
|
} catch {}
|
|
153
160
|
}
|
|
@@ -584,4 +591,4 @@ export {
|
|
|
584
591
|
createWebpEncoder
|
|
585
592
|
};
|
|
586
593
|
|
|
587
|
-
//# debugId=
|
|
594
|
+
//# debugId=5BB79295512A2D3A64756E2164756E21
|
package/dist/index.bun.js.map
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
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 };\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 );\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 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\n // 1) Try TypeScript source first (Bun can transpile TS, works in dev)\n const srcRelPath = workerConfig.package.includes('resize')\n ? `../../resize/src/${baseName}.ts`\n : `../../webp/src/${baseName}.ts`;\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 = workerConfig.package.includes('resize')\n ? `../../resize/dist/${baseName}.${platformExt.slice(1)}`\n : `../../webp/dist/${baseName}.${platformExt.slice(1)}`;\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 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 );\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 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 };\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 );\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\n // 1) Try TypeScript source first (Bun can transpile TS, works in dev)\n const srcRelPath = workerConfig.package.includes('resize')\n ? `../../resize/src/${baseName}.ts`\n : `../../webp/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 = workerConfig.package.includes('resize')\n ? `../../resize/dist/${baseName}.${platformExt.slice(1)}`\n : `../../webp/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 );\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\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\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 );\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
|
"export const bigInt=()=>(async e=>{try{return(await WebAssembly.instantiate(e)).instance.exports.b(BigInt(0))===BigInt(0)}catch(e){return!1}})(new Uint8Array([0,97,115,109,1,0,0,0,1,6,1,96,1,126,1,126,3,2,1,0,7,5,1,1,98,0,0,10,6,1,4,0,32,0,11])),bulkMemory=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,3,1,0,1,10,14,1,12,0,65,0,65,0,65,0,252,10,0,0,11])),exceptions=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,8,1,6,0,6,64,25,11,11])),exceptionsFinal=()=>(async()=>{try{return new WebAssembly.Module(Uint8Array.from(atob(\"AGFzbQEAAAABBAFgAAADAgEAChABDgACaR9AAQMAAAsACxoL\"),(e=>e.codePointAt(0)))),!0}catch(e){return!1}})(),extendedConst=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,5,3,1,0,1,11,9,1,0,65,1,65,2,106,11,0])),gc=()=>(async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,95,1,120,0])))(),jsStringBuiltins=()=>(async()=>{try{return await WebAssembly.instantiate(Uint8Array.from(atob(\"AGFzbQEAAAABBgFgAW8BfwIXAQ53YXNtOmpzLXN0cmluZwR0ZXN0AAA=\"),(e=>e.codePointAt(0))),{},{builtins:[\"js-string\"]}),!0}catch(e){return!1}})(),jspi=()=>(async()=>\"Suspending\"in WebAssembly)(),memory64=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,5,3,1,4,1])),multiMemory=()=>(async()=>{try{return new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,5,5,2,0,0,0,0])),!0}catch(e){return!1}})(),multiValue=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,6,1,96,0,2,127,127,3,2,1,0,10,8,1,6,0,65,0,65,0,11])),mutableGlobals=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,2,8,1,1,97,1,98,3,127,1,6,6,1,127,1,65,0,11,7,5,1,1,97,3,1])),referenceTypes=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,7,1,5,0,208,112,26,11])),relaxedSimd=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,15,1,13,0,65,1,253,15,65,2,253,15,253,128,2,11])),saturatedFloatToInt=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,12,1,10,0,67,0,0,0,0,252,0,26,11])),signExtensions=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,8,1,6,0,65,0,192,26,11])),simd=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11])),streamingCompilation=()=>(async()=>\"compileStreaming\"in WebAssembly)(),tailCall=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,6,1,4,0,18,0,11])),threads=()=>(async e=>{try{return\"undefined\"!=typeof MessageChannel&&(new MessageChannel).port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(e)}catch(e){return!1}})(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11])),typeReflection=()=>(async()=>\"Function\"in WebAssembly)(),typedFunctionReferences=()=>(async()=>{try{return new WebAssembly.Module(Uint8Array.from(atob(\"AGFzbQEAAAABEANgAX8Bf2ABZAABf2AAAX8DBAMBAAIJBQEDAAEBChwDCwBBCkEqIAAUAGoLBwAgAEEBagsGANIBEAAL\"),(e=>e.codePointAt(0)))),!0}catch(e){return!1}})();\n",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"/**\n * Bridge implementation for the WebP 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 { EncodeInputOptions } from './types';\n\nexport type BridgeOptions = {\n assetPath?: string;\n};\n\ninterface WebPBridge {\n encode(\n image: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n ): Promise<Uint8Array>;\n terminate(): Promise<void>;\n}\n\nclass WebpClientBridge implements WebPBridge {\n async encode(\n image: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n ): Promise<Uint8Array> {\n // Dynamically import the client encoder to avoid module loading issues in Vite\n const module = await import('./webp.worker.js');\n const webpEncodeClient = module.webpEncodeClient as (\n image: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n ) => Promise<Uint8Array>;\n return webpEncodeClient(image, options, signal);\n }\n\n async terminate(): Promise<void> {\n // Client mode has nothing to terminate\n }\n}\n\nclass WebpWorkerBridge implements WebPBridge {\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 '[webp/bridge] WebpWorkerBridge 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('[webp/bridge] createWorker called. Creating ready worker...');\n this.worker = await createReadyWorker('webp.worker.js', this.options);\n console.log(\n '[webp/bridge] createWorker: Ready worker created successfully.'\n );\n return this.worker;\n }\n\n async encode(\n image: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n ): Promise<Uint8Array> {\n const worker = await this.getWorker();\n\n validateImageInput(image);\n return callWorker(worker, 'webp:encode', { image, options }, 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): WebPBridge {\n console.log(`[webp/bridge] createBridge called with mode: ${mode}`);\n if (mode === 'worker') {\n return new WebpWorkerBridge(options);\n }\n return new WebpClientBridge();\n}\n",
|
|
16
16
|
"/**\n * @squoosh-kit/webp public API\n */\n\nimport type { ImageInput } from '@squoosh-kit/runtime';\nimport { createBridge, type BridgeOptions } from './bridge';\nimport type { EncodeInputOptions } from './types';\n\nexport type { ImageInput, EncodeInputOptions };\n\n// Global bridge instance for reuse\nlet globalClientBridge: ReturnType<typeof createBridge> | null = null;\n\n/**\n * A WebP image encoder that can be reused for multiple operations.\n * Can be terminated to clean up associated resources (especially workers).\n */\nexport type WebpEncoderFactory = ((\n imageData: ImageInput,\n options?: EncodeInputOptions,\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 * @example\n * const encoder = createWebpEncoder('worker');\n * try {\n * const result = await encoder(imageData, options);\n * } finally {\n * await encoder.terminate();\n * }\n */\n terminate(): Promise<void>;\n};\n\n/**\n * Encodes an image to WebP format. Uses worker mode for UI responsiveness.\n *\n * @param imageData - The image data to encode.\n * @param options - WebP encoding options.\n * @param signal - (Optional) AbortSignal to cancel the encoding operation.\n * If provided, you can cancel the operation by calling\n * `controller.abort()` on the associated AbortController.\n * If not provided, the operation cannot be cancelled.\n * @returns A Promise resolving to the encoded WebP data as a Uint8Array.\n *\n * @example\n * // With cancellation support\n * const controller = new AbortController();\n * const result = await encode(imageData, { quality: 85 }, controller.signal);\n * setTimeout(() => controller.abort(), 5000);\n *\n * @example\n * // Without cancellation (operation cannot be stopped)\n * const result = await encode(imageData, { quality: 85 });\n */\nexport async function encode(\n imageData: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n): Promise<Uint8Array> {\n // Use worker mode for UI responsiveness - prevents blocking the main thread\n if (!globalClientBridge) {\n globalClientBridge = createBridge('worker');\n }\n\n return globalClientBridge.encode(imageData, options, signal);\n}\n\n/**\n * Creates a reusable WebP encoder function for a specific execution mode.\n * This is useful for processing multiple images without the overhead of\n * creating a new worker or client instance each time.\n *\n * @param mode - The execution mode, either 'worker' or 'client'.\n * @returns A function that encodes an image to WebP format with optional AbortSignal.\n */\nexport function createWebpEncoder(\n mode: 'worker' | 'client' = 'worker',\n options?: BridgeOptions\n): WebpEncoderFactory {\n const bridge = createBridge(mode, options);\n\n return Object.assign(\n (\n imageData: ImageInput,\n options?: EncodeInputOptions,\n signal?: AbortSignal\n ) => {\n return bridge.encode(imageData, options, signal);\n },\n {\n terminate: async () => {\n await bridge.terminate();\n },\n }\n );\n}\n"
|
|
17
17
|
],
|
|
18
|
-
"mappings": "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",
|
|
19
|
-
"debugId": "
|
|
18
|
+
"mappings": "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",
|
|
19
|
+
"debugId": "5BB79295512A2D3A64756E2164756E21",
|
|
20
20
|
"names": []
|
|
21
21
|
}
|
package/dist/index.node.cjs
CHANGED
|
@@ -128,6 +128,8 @@ function createCodecWorker(workerFilename, options) {
|
|
|
128
128
|
];
|
|
129
129
|
let lastError = null;
|
|
130
130
|
for (const relPath of pathStrategies) {
|
|
131
|
+
console.log("relPath:", relPath);
|
|
132
|
+
console.log("import.meta.url:", "file:///home/bnowak/repos/squoosh-kit/packages/runtime/src/worker-helper.ts");
|
|
131
133
|
try {
|
|
132
134
|
const workerUrl = new URL(relPath, "file:///home/bnowak/repos/squoosh-kit/packages/runtime/src/worker-helper.ts");
|
|
133
135
|
console.log(`[worker-helper] Trying path strategy. Full Worker URL: ${workerUrl.href}`);
|
|
@@ -150,12 +152,16 @@ function createCodecWorker(workerFilename, options) {
|
|
|
150
152
|
const platformExt = isBun() ? ".bun.js" : ".node.mjs";
|
|
151
153
|
const baseName = normalizedName.replace(".js", "");
|
|
152
154
|
const srcRelPath = workerConfig.package.includes("resize") ? `../../resize/src/${baseName}.ts` : `../../webp/src/${baseName}.ts`;
|
|
155
|
+
console.log("srcRelPath:", srcRelPath);
|
|
156
|
+
console.log("import.meta.url:", "file:///home/bnowak/repos/squoosh-kit/packages/runtime/src/worker-helper.ts");
|
|
153
157
|
try {
|
|
154
158
|
return new Worker(new URL(srcRelPath, "file:///home/bnowak/repos/squoosh-kit/packages/runtime/src/worker-helper.ts"), {
|
|
155
159
|
type: "module"
|
|
156
160
|
});
|
|
157
161
|
} catch {
|
|
158
162
|
const distRelPath = workerConfig.package.includes("resize") ? `../../resize/dist/${baseName}.${platformExt.slice(1)}` : `../../webp/dist/${baseName}.${platformExt.slice(1)}`;
|
|
163
|
+
console.log("distRelPath:", distRelPath);
|
|
164
|
+
console.log("import.meta.url:", "file:///home/bnowak/repos/squoosh-kit/packages/runtime/src/worker-helper.ts");
|
|
159
165
|
try {
|
|
160
166
|
return new Worker(new URL(distRelPath, "file:///home/bnowak/repos/squoosh-kit/packages/runtime/src/worker-helper.ts"), {
|
|
161
167
|
type: "module"
|
|
@@ -164,6 +170,7 @@ function createCodecWorker(workerFilename, options) {
|
|
|
164
170
|
if (typeof import.meta.resolve === "function") {
|
|
165
171
|
try {
|
|
166
172
|
const resolved = import.meta.resolve(`${workerConfig.package}/${workerConfig.specifier}`);
|
|
173
|
+
console.log("resolved:", resolved);
|
|
167
174
|
return new Worker(resolved, { type: "module" });
|
|
168
175
|
} catch {}
|
|
169
176
|
}
|
|
@@ -605,4 +612,4 @@ function createWebpEncoder(mode = "worker", options) {
|
|
|
605
612
|
});
|
|
606
613
|
}
|
|
607
614
|
|
|
608
|
-
//# debugId=
|
|
615
|
+
//# debugId=26C5C2A46415F20064756E2164756E21
|