@workglow/util 0.2.30 → 0.2.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/browser.js +71 -34
  2. package/dist/browser.js.map +8 -8
  3. package/dist/bun.js +71 -34
  4. package/dist/bun.js.map +8 -8
  5. package/dist/credentials/CredentialStoreRegistry.d.ts +19 -6
  6. package/dist/credentials/CredentialStoreRegistry.d.ts.map +1 -1
  7. package/dist/di/InputCompactorRegistry.d.ts +8 -4
  8. package/dist/di/InputCompactorRegistry.d.ts.map +1 -1
  9. package/dist/di/InputResolverRegistry.d.ts +8 -4
  10. package/dist/di/InputResolverRegistry.d.ts.map +1 -1
  11. package/dist/logging/LoggerRegistry.d.ts +10 -4
  12. package/dist/logging/LoggerRegistry.d.ts.map +1 -1
  13. package/dist/media/imageHydrationResolver.d.ts +6 -1
  14. package/dist/media/imageHydrationResolver.d.ts.map +1 -1
  15. package/dist/media-browser.d.ts +1 -0
  16. package/dist/media-browser.d.ts.map +1 -1
  17. package/dist/media-browser.js +17 -8
  18. package/dist/media-browser.js.map +5 -5
  19. package/dist/media-node.d.ts +1 -0
  20. package/dist/media-node.d.ts.map +1 -1
  21. package/dist/media-node.js +17 -8
  22. package/dist/media-node.js.map +5 -5
  23. package/dist/node.js +71 -34
  24. package/dist/node.js.map +8 -8
  25. package/dist/telemetry/TelemetryRegistry.d.ts +10 -4
  26. package/dist/telemetry/TelemetryRegistry.d.ts.map +1 -1
  27. package/dist/worker/WorkerManager.d.ts +5 -0
  28. package/dist/worker/WorkerManager.d.ts.map +1 -1
  29. package/dist/worker-browser.js +42 -17
  30. package/dist/worker-browser.js.map +6 -6
  31. package/dist/worker-bun.js +42 -17
  32. package/dist/worker-bun.js.map +6 -6
  33. package/dist/worker-node.js +42 -17
  34. package/dist/worker-node.js.map +6 -6
  35. package/package.json +1 -1
@@ -7,8 +7,8 @@
7
7
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { getImageRasterCodec } from \"./imageRasterCodecRegistry\";\n\nexport type NodeImageFormat = \"png\" | \"jpeg\" | \"raw-rgba\";\n\nexport interface ImageValueBase {\n readonly width: number;\n readonly height: number;\n readonly previewScale: number;\n}\n\nexport interface BrowserImageValue extends ImageValueBase {\n readonly bitmap: ImageBitmap;\n}\n\nexport interface NodeImageValue extends ImageValueBase {\n readonly buffer: Buffer;\n readonly format: NodeImageFormat;\n}\n\nexport type ImageValue = BrowserImageValue | NodeImageValue;\n\nexport function imageValueFromBitmap(\n bitmap: ImageBitmap,\n width: number,\n height: number,\n previewScale: number = 1.0\n): BrowserImageValue {\n return { bitmap, width, height, previewScale };\n}\n\nexport function imageValueFromBuffer(\n buffer: Buffer,\n format: NodeImageFormat,\n width: number,\n height: number,\n previewScale: number = 1.0\n): NodeImageValue {\n return { buffer, format, width, height, previewScale };\n}\n\nexport function isImageValue(v: unknown): v is ImageValue {\n return isBrowserImageValue(v) || isNodeImageValue(v);\n}\n\nexport function isBrowserImageValue(v: unknown): v is BrowserImageValue {\n if (v === null || typeof v !== \"object\") return false;\n const o = v as Record<string, unknown>;\n return (\n typeof o.width === \"number\" &&\n typeof o.height === \"number\" &&\n typeof o.previewScale === \"number\" &&\n typeof ImageBitmap !== \"undefined\" &&\n o.bitmap instanceof ImageBitmap\n );\n}\n\nexport function isNodeImageValue(v: unknown): v is NodeImageValue {\n if (v === null || typeof v !== \"object\") return false;\n const o = v as Record<string, unknown>;\n return (\n typeof o.width === \"number\" &&\n typeof o.height === \"number\" &&\n typeof o.previewScale === \"number\" &&\n typeof Buffer !== \"undefined\" &&\n Buffer.isBuffer(o.buffer) &&\n (o.format === \"png\" || o.format === \"jpeg\" || o.format === \"raw-rgba\")\n );\n}\n\n/**\n * Best-effort normalization at boundaries (input resolver, builder hook).\n * Accepts the wire forms an `ImageValue` port may receive:\n * - an existing `ImageValue` (passthrough)\n * - a `data:` URI (browser: decoded via `createImageBitmap`; node: encoded\n * bytes wrapped in a `NodeImageValue`, with dimensions probed via the\n * registered raster codec)\n * - a `Blob` (browser only)\n * - an `ImageBitmap` (browser only)\n * Returns `undefined` for unrecognized shapes.\n *\n * Note: a raw `Buffer` is intentionally not handled here — callers with\n * encoded bytes plus a format hint should construct one via\n * `imageValueFromBuffer(...)` directly.\n *\n * String dispatch is platform-agnostic; non-string platform-specific shapes\n * are tested via `typeof` guards so the same module loads on browser and node.\n */\nexport async function normalizeToImageValue(value: unknown): Promise<ImageValue | undefined> {\n if (value === null || value === undefined) return undefined;\n if (isImageValue(value)) return value;\n\n if (typeof Blob !== \"undefined\" && value instanceof Blob) {\n if (typeof createImageBitmap === \"function\") {\n const bitmap = await createImageBitmap(value);\n return imageValueFromBitmap(bitmap, bitmap.width, bitmap.height);\n }\n return undefined;\n }\n\n if (typeof ImageBitmap !== \"undefined\" && value instanceof ImageBitmap) {\n return imageValueFromBitmap(value, value.width, value.height);\n }\n\n if (typeof value === \"string\" && value.startsWith(\"data:\")) {\n if (typeof createImageBitmap === \"function\" && typeof fetch === \"function\") {\n const blob = await (await fetch(value)).blob();\n const bitmap = await createImageBitmap(blob);\n return imageValueFromBitmap(bitmap, bitmap.width, bitmap.height);\n }\n if (typeof Buffer !== \"undefined\") {\n return decodeDataUriToNodeImageValue(value);\n }\n return undefined;\n }\n\n return undefined;\n}\n\nasync function decodeDataUriToNodeImageValue(dataUri: string): Promise<NodeImageValue | undefined> {\n const match = /^data:([^;,]+);base64,(.+)$/.exec(dataUri);\n if (!match) return undefined;\n const mime = match[1] ?? \"image/png\";\n const base64 = match[2] ?? \"\";\n const buffer = Buffer.from(base64, \"base64\");\n const format: NodeImageFormat = /jpe?g/i.test(mime) ? \"jpeg\" : \"png\";\n // Probe dimensions through the registered raster codec. Rethrow any codec\n // failure with the original error as `cause` so the underlying problem\n // (no codec registered, malformed payload, etc.) isn't lost behind the\n // resolver's generic \"unsupported string\" message.\n try {\n const decoded = await getImageRasterCodec().decodeDataUri(dataUri);\n return imageValueFromBuffer(buffer, format, decoded.width, decoded.height);\n } catch (err) {\n throw new Error(\"normalizeToImageValue: failed to probe data URI dimensions\", {\n cause: err,\n });\n }\n}\n",
8
8
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Simple dependency injection container for managing service instances and dependencies\n */\nexport class Container {\n private services: Map<string, any> = new Map();\n private factories: Map<string, () => any> = new Map();\n private singletons: Set<string> = new Set();\n private resolving: string[] = [];\n\n /**\n * Register a service factory\n * @param token The identifier token for the service\n * @param factory A factory function that creates the service\n * @param singleton Whether the service should be a singleton (created once)\n */\n register<T>(token: string, factory: () => T, singleton = true): void {\n this.factories.set(token, factory);\n if (singleton) {\n this.singletons.add(token);\n }\n }\n\n /**\n * Register a service factory only if the token is not already registered.\n * This is an atomic check-and-register to avoid TOCTOU races.\n * @param token The identifier token for the service\n * @param factory A factory function that creates the service\n * @param singleton Whether the service should be a singleton (created once)\n */\n registerIfAbsent<T>(token: string, factory: () => T, singleton = true): void {\n if (this.factories.has(token) || this.services.has(token)) {\n return;\n }\n this.register(token, factory, singleton);\n }\n\n /**\n * Register an instance as a service\n * @param token The identifier token for the service\n * @param instance The instance to register\n */\n registerInstance<T>(token: string, instance: T): void {\n this.services.set(token, instance);\n this.singletons.add(token);\n }\n\n /**\n * Get a service by its token\n * @param token The identifier token for the service\n * @returns The service instance\n */\n get<T>(token: string): T {\n if (this.services.has(token)) {\n return this.services.get(token) as T;\n }\n\n const factory = this.factories.get(token);\n if (!factory) {\n throw new Error(`Service not registered: ${String(token)}`);\n }\n\n if (this.resolving.includes(token)) {\n const cycle = [...this.resolving.slice(this.resolving.indexOf(token)), token];\n throw new Error(`Circular dependency detected: ${cycle.join(\" -> \")}`);\n }\n\n this.resolving.push(token);\n try {\n const instance = factory();\n\n if (this.singletons.has(token)) {\n this.services.set(token, instance);\n }\n\n return instance as T;\n } finally {\n this.resolving.pop();\n }\n }\n\n /**\n * Check if a service is registered\n * @param token The identifier token for the service\n * @returns True if the service is registered\n */\n has(token: string): boolean {\n return this.services.has(token) || this.factories.has(token);\n }\n\n /**\n * Remove a service registration\n * @param token The identifier token for the service\n */\n remove(token: string): void {\n this.services.delete(token);\n this.factories.delete(token);\n this.singletons.delete(token);\n }\n\n /**\n * Dispose all instantiated singleton services and clear registrations.\n * Services implementing dispose(), Symbol.asyncDispose, or Symbol.dispose will be cleaned up.\n */\n async dispose(): Promise<void> {\n const errors: unknown[] = [];\n try {\n for (const service of this.services.values()) {\n if (service == null) continue;\n try {\n if (typeof service[Symbol.asyncDispose] === \"function\") {\n await service[Symbol.asyncDispose]();\n } else if (typeof service[Symbol.dispose] === \"function\") {\n service[Symbol.dispose]();\n } else if (typeof service.dispose === \"function\") {\n await service.dispose();\n }\n } catch (err) {\n errors.push(err);\n }\n }\n } finally {\n this.services.clear();\n this.factories.clear();\n this.singletons.clear();\n }\n if (errors.length > 0) {\n throw new AggregateError(errors, \"One or more services failed to dispose\");\n }\n }\n\n async [Symbol.asyncDispose](): Promise<void> {\n await this.dispose();\n }\n\n /**\n * Create a child container that inherits registrations from the parent\n * @returns A new child container\n */\n createChildContainer(): Container {\n const child = new Container();\n\n // Copy all registrations to the child\n this.factories.forEach((factory, token) => {\n child.factories.set(token, factory);\n if (this.singletons.has(token)) {\n child.singletons.add(token);\n }\n });\n\n // Copy all singleton instances to the child\n this.services.forEach((service, token) => {\n if (this.singletons.has(token)) {\n child.services.set(token, service);\n child.singletons.add(token);\n }\n });\n\n return child;\n }\n}\n\n/**\n * Global container instance — shared across all bundle copies of this module\n * via a Symbol.for key so that split entry points (e.g. @workglow/util/media)\n * resolve to the same DI registry as @workglow/util.\n */\nconst GLOBAL_CONTAINER_KEY = Symbol.for(\"@workglow/util/di/globalContainer\");\nconst _g = globalThis as Record<symbol, unknown>;\nif (!_g[GLOBAL_CONTAINER_KEY]) {\n _g[GLOBAL_CONTAINER_KEY] = new Container();\n}\nexport const globalContainer = _g[GLOBAL_CONTAINER_KEY] as Container;\n",
9
9
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Container, globalContainer } from \"./Container\";\n\n/**\n * Service token type for type-safe dependency injection\n */\nexport interface ServiceToken<T> {\n readonly _type: T;\n readonly id: string;\n}\n\n/**\n * Create a typed service token\n * @param id Unique identifier for the service\n * @returns A typed service token\n */\nexport function createServiceToken<T>(id: string): ServiceToken<T> {\n return { id, _type: null as any };\n}\n\n/**\n * Service registry for managing and accessing services\n */\nexport class ServiceRegistry {\n public container: Container;\n\n /**\n * Create a new service registry\n * @param container Optional container to use (defaults to global container)\n */\n constructor(container: Container = globalContainer) {\n this.container = container;\n }\n\n /**\n * Register a service factory\n * @param token Service token\n * @param factory Factory function to create the service\n * @param singleton Whether the service should be a singleton\n */\n register<T>(token: ServiceToken<T>, factory: () => T, singleton = true): void {\n this.container.register(token.id, factory, singleton);\n }\n\n /**\n * Register a service factory only if the token is not already registered.\n * @param token Service token\n * @param factory Factory function to create the service\n * @param singleton Whether the service should be a singleton\n */\n registerIfAbsent<T>(token: ServiceToken<T>, factory: () => T, singleton = true): void {\n this.container.registerIfAbsent(token.id, factory, singleton);\n }\n\n /**\n * Register a service instance\n * @param token Service token\n * @param instance Service instance to register\n */\n registerInstance<T>(token: ServiceToken<T>, instance: T): void {\n this.container.registerInstance(token.id, instance);\n }\n\n /**\n * Get a service by its token\n * @param token Service token\n * @returns The service instance\n */\n get<T>(token: ServiceToken<T>): T {\n return this.container.get<T>(token.id);\n }\n\n /**\n * Check if a service is registered\n * @param token Service token\n * @returns True if the service is registered\n */\n has<T>(token: ServiceToken<T>): boolean {\n return this.container.has(token.id);\n }\n\n /**\n * Dispose all instantiated services and clear registrations.\n */\n async dispose(): Promise<void> {\n await this.container.dispose();\n }\n}\n\n/**\n * Global service registry instance\n */\nexport const globalServiceRegistry = new ServiceRegistry(globalContainer);\n",
10
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { ServiceRegistry } from \"./ServiceRegistry\";\nimport { createServiceToken, globalServiceRegistry } from \"./ServiceRegistry\";\n\n/**\n * A resolver function that converts a string ID to an instance.\n * Returns undefined if the resolver cannot handle this format.\n * Throws an error if the ID is not found.\n *\n * @param id The string ID to resolve\n * @param format The full format string (e.g., \"model:TextEmbedding\", \"storage:tabular\")\n * @param registry The service registry to use for lookups\n */\nexport type InputResolverFn = (\n id: string,\n format: string,\n registry: ServiceRegistry\n) => unknown | Promise<unknown>;\n\n/**\n * Service token for the input resolver registry.\n * Maps format prefixes to resolver functions.\n */\nexport const INPUT_RESOLVERS =\n createServiceToken<Map<string, InputResolverFn>>(\"task.input.resolvers\");\n\n// Register default factory if not already registered\nglobalServiceRegistry.registerIfAbsent(\n INPUT_RESOLVERS,\n (): Map<string, InputResolverFn> => new Map(),\n true\n);\n\n/**\n * Gets the global input resolver registry\n * @returns Map of format prefix to resolver function\n */\nexport function getInputResolvers(): Map<string, InputResolverFn> {\n return globalServiceRegistry.get(INPUT_RESOLVERS);\n}\n\n/**\n * Registers an input resolver for a format prefix.\n * The resolver will be called for any format that starts with this prefix.\n *\n * @param formatPrefix The format prefix to match (e.g., \"model\", \"dataset\")\n * @param resolver The resolver function\n *\n * @example\n * ```typescript\n * // Register model resolver\n * registerInputResolver(\"model\", async (id, format, registry) => {\n * const modelRepo = registry.get(MODEL_REPOSITORY);\n * const model = await modelRepo.findByName(id);\n * if (!model) throw new Error(`Model \"${id}\" not found`);\n * return model;\n * });\n *\n * // Register dataset resolver\n * registerInputResolver(\"dataset\", (id, format, registry) => {\n * const datasetType = format.split(\":\")[1]; // \"tabular\", \"vector\", etc.\n * if (datasetType === \"tabular\") {\n * const datasets = registry.get(TABULAR_DATASETS);\n * const dataset = datasets.get(id);\n * if (!dataset) throw new Error(`Dataset \"${id}\" not found`);\n * return dataset;\n * }\n * throw new Error(`Unknown dataset type: ${datasetType}`);\n * });\n * ```\n */\nexport function registerInputResolver(formatPrefix: string, resolver: InputResolverFn): void {\n const resolvers = getInputResolvers();\n resolvers.set(formatPrefix, resolver);\n}\n",
11
- "/**\n * @copyright\n * Copyright 2026 Steven Roussey\n * All Rights Reserved\n */\nimport { registerInputResolver } from \"../di/InputResolverRegistry\";\nimport { normalizeToImageValue } from \"./imageValue\";\nimport type { ServiceRegistry } from \"../di/ServiceRegistry\";\n\n/**\n * Resolver for `format: \"image\"` ports. Accepts the cross-boundary wire\n * forms and normalizes to `ImageValue`. Non-string non-recognized shapes\n * pass through (consumers normalize at their boundary).\n */\nasync function resolveImage(\n id: unknown,\n _format: string,\n _registry: ServiceRegistry\n): Promise<unknown> {\n const normalized = await normalizeToImageValue(id);\n if (normalized !== undefined) return normalized;\n if (typeof id === \"string\") {\n const preview = id.length > 32 ? `${id.slice(0, 32)}...` : id;\n throw new Error(\n `format:\"image\" resolver received an unsupported string \"${preview}\". ` +\n `Only data: URIs are handled. Register a sub-resolver for other schemes.`\n );\n }\n return id;\n}\n\nregisterInputResolver(\"image\", resolveImage);\n",
10
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { ServiceRegistry } from \"./ServiceRegistry\";\nimport { createServiceToken, globalServiceRegistry } from \"./ServiceRegistry\";\n\n/**\n * A resolver function that converts a string ID to an instance.\n * Returns undefined if the resolver cannot handle this format.\n * Throws an error if the ID is not found.\n *\n * @param id The string ID to resolve\n * @param format The full format string (e.g., \"model:TextEmbedding\", \"storage:tabular\")\n * @param registry The service registry to use for lookups\n */\nexport type InputResolverFn = (\n id: string,\n format: string,\n registry: ServiceRegistry\n) => unknown | Promise<unknown>;\n\n/**\n * Service token for the input resolver registry.\n * Maps format prefixes to resolver functions.\n */\nexport const INPUT_RESOLVERS =\n createServiceToken<Map<string, InputResolverFn>>(\"task.input.resolvers\");\n\n/**\n * Registers an empty resolver map on the given registry if absent.\n * Called as part of `bootstrapWorkglow` / `createOrchestrationContext`.\n */\nexport function registerInputResolverDefaults(\n registry: ServiceRegistry = globalServiceRegistry\n): void {\n registry.registerIfAbsent(INPUT_RESOLVERS, (): Map<string, InputResolverFn> => new Map(), true);\n}\n\n// Self-register on the global registry. Idempotent.\nregisterInputResolverDefaults();\n\n/**\n * Gets the input resolver registry from the given registry (defaults to global).\n */\nexport function getInputResolvers(\n registry: ServiceRegistry = globalServiceRegistry\n): Map<string, InputResolverFn> {\n if (!registry.has(INPUT_RESOLVERS)) {\n registerInputResolverDefaults(registry);\n }\n return registry.get(INPUT_RESOLVERS);\n}\n\n/**\n * Registers an input resolver for a format prefix.\n * The resolver will be called for any format that starts with this prefix.\n *\n * @param formatPrefix The format prefix to match (e.g., \"model\", \"dataset\")\n * @param resolver The resolver function\n *\n * @example\n * ```typescript\n * // Register model resolver\n * registerInputResolver(\"model\", async (id, format, registry) => {\n * const modelRepo = registry.get(MODEL_REPOSITORY);\n * const model = await modelRepo.findByName(id);\n * if (!model) throw new Error(`Model \"${id}\" not found`);\n * return model;\n * });\n *\n * // Register dataset resolver\n * registerInputResolver(\"dataset\", (id, format, registry) => {\n * const datasetType = format.split(\":\")[1]; // \"tabular\", \"vector\", etc.\n * if (datasetType === \"tabular\") {\n * const datasets = registry.get(TABULAR_DATASETS);\n * const dataset = datasets.get(id);\n * if (!dataset) throw new Error(`Dataset \"${id}\" not found`);\n * return dataset;\n * }\n * throw new Error(`Unknown dataset type: ${datasetType}`);\n * });\n * ```\n */\nexport function registerInputResolver(\n formatPrefix: string,\n resolver: InputResolverFn,\n registry: ServiceRegistry = globalServiceRegistry\n): void {\n const resolvers = getInputResolvers(registry);\n resolvers.set(formatPrefix, resolver);\n}\n",
11
+ "/**\n * @copyright\n * Copyright 2026 Steven Roussey\n * All Rights Reserved\n */\nimport { registerInputResolver } from \"../di/InputResolverRegistry\";\nimport { globalServiceRegistry } from \"../di/ServiceRegistry\";\nimport { normalizeToImageValue } from \"./imageValue\";\nimport type { ServiceRegistry } from \"../di/ServiceRegistry\";\n\n/**\n * Resolver for `format: \"image\"` ports. Accepts the cross-boundary wire\n * forms and normalizes to `ImageValue`. Non-string non-recognized shapes\n * pass through (consumers normalize at their boundary).\n */\nasync function resolveImage(\n id: unknown,\n _format: string,\n _registry: ServiceRegistry\n): Promise<unknown> {\n const normalized = await normalizeToImageValue(id);\n if (normalized !== undefined) return normalized;\n if (typeof id === \"string\") {\n const preview = id.length > 32 ? `${id.slice(0, 32)}...` : id;\n throw new Error(\n `format:\"image\" resolver received an unsupported string \"${preview}\". ` +\n `Only data: URIs are handled. Register a sub-resolver for other schemes.`\n );\n }\n return id;\n}\n\n/**\n * Registers the \"image\" input resolver on the given registry.\n * Called by `bootstrapWorkglow` and `createOrchestrationContext`.\n */\nexport function registerImageDefaults(registry: ServiceRegistry = globalServiceRegistry): void {\n registerInputResolver(\"image\", resolveImage, registry);\n}\n\n// Self-register on the global registry. Idempotent.\nregisterImageDefaults();\n",
12
12
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport interface ColorObject {\n readonly r: number;\n readonly g: number;\n readonly b: number;\n readonly a: number;\n}\n\nconst HEX_PATTERN = /^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/;\nconst CSS_RGB_CHANNEL = \"(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)\";\nconst CSS_RGB_ALPHA = \"(?:0(?:\\\\.\\\\d+)?|1(?:\\\\.0+)?)\";\nconst CSS_RGB_PATTERN = new RegExp(\n `^rgba?\\\\(\\\\s*(${CSS_RGB_CHANNEL})\\\\s*,\\\\s*(${CSS_RGB_CHANNEL})\\\\s*,\\\\s*(${CSS_RGB_CHANNEL})\\\\s*(?:,\\\\s*(${CSS_RGB_ALPHA}))?\\\\s*\\\\)$`\n);\n\n/**\n * Parse a `#RGB` / `#RGBA` / `#RRGGBB` / `#RRGGBBAA` hex color into a {@link ColorObject}.\n * Case-insensitive on input. No whitespace tolerance. Shorthand nibbles are doubled.\n * Throws on any malformed input.\n */\nexport function parseHexColor(hex: string): ColorObject {\n if (typeof hex !== \"string\" || !HEX_PATTERN.test(hex)) {\n throw new Error(`Invalid hex color: ${String(hex)}`);\n }\n const body = hex.slice(1);\n const double = (nibble: string): number => parseInt(nibble + nibble, 16);\n if (body.length === 3) {\n return { r: double(body[0]!), g: double(body[1]!), b: double(body[2]!), a: 255 };\n }\n if (body.length === 4) {\n return {\n r: double(body[0]!),\n g: double(body[1]!),\n b: double(body[2]!),\n a: double(body[3]!),\n };\n }\n if (body.length === 6) {\n return {\n r: parseInt(body.slice(0, 2), 16),\n g: parseInt(body.slice(2, 4), 16),\n b: parseInt(body.slice(4, 6), 16),\n a: 255,\n };\n }\n return {\n r: parseInt(body.slice(0, 2), 16),\n g: parseInt(body.slice(2, 4), 16),\n b: parseInt(body.slice(4, 6), 16),\n a: parseInt(body.slice(6, 8), 16),\n };\n}\n\nconst CHANNEL_MIN = 0;\nconst CHANNEL_MAX = 255;\n\nfunction assertChannel(name: string, value: number): void {\n if (!Number.isInteger(value) || value < CHANNEL_MIN || value > CHANNEL_MAX) {\n throw new Error(`Color channel ${name} out of range (0-255 integer): ${value}`);\n }\n}\n\nfunction byteToHex(value: number): string {\n return value.toString(16).padStart(2, \"0\");\n}\n\n/**\n * Emit a {@link ColorObject} as `#RRGGBB` when `a === 255`, otherwise `#RRGGBBAA`.\n * Always lowercase, never shorthand. Throws on non-integer or out-of-range channels.\n */\nexport function toHexColor(c: ColorObject): string {\n assertChannel(\"r\", c.r);\n assertChannel(\"g\", c.g);\n assertChannel(\"b\", c.b);\n assertChannel(\"a\", c.a);\n const head = `#${byteToHex(c.r)}${byteToHex(c.g)}${byteToHex(c.b)}`;\n return c.a === 255 ? head : `${head}${byteToHex(c.a)}`;\n}\n\nfunction isInRangeByte(value: unknown): value is number {\n return typeof value === \"number\" && Number.isInteger(value) && value >= 0 && value <= 255;\n}\n\n/**\n * Type guard for a {@link ColorObject}-shaped value (alpha optional).\n * Does not reject extra properties — JSON Schema validation handles that separately.\n */\nexport function isColorObject(value: unknown): value is ColorObject {\n if (value === null || typeof value !== \"object\" || Array.isArray(value)) return false;\n const candidate = value as Record<string, unknown>;\n if (!isInRangeByte(candidate.r)) return false;\n if (!isInRangeByte(candidate.g)) return false;\n if (!isInRangeByte(candidate.b)) return false;\n if (candidate.a !== undefined && !isInRangeByte(candidate.a)) return false;\n return true;\n}\n\n/** Type guard for a hex color string (same regex as `parseHexColor`). */\nexport function isHexColor(value: unknown): value is string {\n return typeof value === \"string\" && HEX_PATTERN.test(value);\n}\n\nfunction parseCssRgbColor(value: string): ColorObject {\n const match = CSS_RGB_PATTERN.exec(value);\n if (!match) {\n throw new Error(`Invalid CSS rgb color: ${String(value)}`);\n }\n\n const r = Number.parseInt(match[1] ?? \"\", 10);\n const g = Number.parseInt(match[2] ?? \"\", 10);\n const b = Number.parseInt(match[3] ?? \"\", 10);\n const alpha = match[4] === undefined ? 1 : Number.parseFloat(match[4]);\n assertChannel(\"r\", r);\n assertChannel(\"g\", g);\n assertChannel(\"b\", b);\n if (!Number.isFinite(alpha) || alpha < 0 || alpha > 1) {\n throw new Error(`Color alpha out of range (0-1 number): ${match[4]}`);\n }\n return { r, g, b, a: Math.round(alpha * 255) };\n}\n\n/**\n * Normalize any accepted wire form to a full {@link ColorObject}. Object inputs\n * default `a` to 255; CSS `rgb(...)` / `rgba(...)` strings use 0-1 alpha.\n * Throws on anything that's not an accepted color value.\n */\nexport function resolveColor(\n value: string | { r: number; g: number; b: number; a?: number }\n): ColorObject {\n if (typeof value === \"string\") {\n if (isHexColor(value)) return parseHexColor(value);\n return parseCssRgbColor(value);\n }\n if (!isColorObject(value)) {\n throw new Error(`Invalid color value: ${JSON.stringify(value)}`);\n }\n return {\n r: value.r,\n g: value.g,\n b: value.b,\n a: value.a ?? 255,\n };\n}\n",
13
13
  "/**\n * @copyright\n * Copyright 2026 Steven Roussey\n * All Rights Reserved\n */\nimport type { ImageChannels } from \"./imageTypes\";\nimport type { GpuImage as IGpuImage, GpuImageEncodeFormat } from \"./gpuImage\";\nimport type { ImageValue, NodeImageValue } from \"./imageValue\";\nimport { isBrowserImageValue, isNodeImageValue } from \"./imageValue\";\nimport { getImageRasterCodec } from \"./imageRasterCodecRegistry\";\nimport type { RawPixelBuffer } from \"./rawPixelBuffer\";\n\nexport type { RawPixelBuffer } from \"./rawPixelBuffer\";\n\nconst FORMAT_TO_MIME: Record<GpuImageEncodeFormat, string> = {\n png: \"image/png\",\n jpeg: \"image/jpeg\",\n webp: \"image/webp\",\n};\n\nexport class CpuImage implements IGpuImage {\n readonly backend = \"cpu\" as const;\n\n private constructor(private bin: RawPixelBuffer | null) {}\n\n get width(): number {\n if (!this.bin) throw new Error(\"CpuImage.width on a disposed image\");\n return this.bin.width;\n }\n get height(): number {\n if (!this.bin) throw new Error(\"CpuImage.height on a disposed image\");\n return this.bin.height;\n }\n get channels(): ImageChannels {\n if (!this.bin) throw new Error(\"CpuImage.channels on a disposed image\");\n return this.bin.channels;\n }\n\n /** @internal — used by CPU filter ops to read the raw pixel buffer. */\n getBinary(): RawPixelBuffer {\n if (!this.bin) throw new Error(\"CpuImage.getBinary on a disposed image\");\n return this.bin;\n }\n\n static async from(value: ImageValue): Promise<CpuImage> {\n if (isBrowserImageValue(value)) {\n if (typeof OffscreenCanvas === \"undefined\") {\n throw new Error(\"CpuImage.from(BrowserImageValue) requires OffscreenCanvas\");\n }\n const off = new OffscreenCanvas(value.width, value.height);\n const ctx = off.getContext(\"2d\");\n if (!ctx) throw new Error(\"CpuImage.from: could not acquire 2D context\");\n ctx.drawImage(value.bitmap, 0, 0);\n const id = ctx.getImageData(0, 0, value.width, value.height);\n return new CpuImage({ data: id.data, width: value.width, height: value.height, channels: 4 });\n }\n if (isNodeImageValue(value)) {\n const bin = await decodeNodeImageValue(value);\n return new CpuImage(bin);\n }\n throw new Error(\"CpuImage.from: unrecognized ImageValue shape\");\n }\n\n /** @internal — synchronous factory for backends that already have a raw buffer\n * in hand (used by the WGSL CPU fallback). */\n static fromRaw(bin: RawPixelBuffer): CpuImage {\n return new CpuImage(bin);\n }\n\n async toImageValue(previewScale: number): Promise<ImageValue> {\n if (!this.bin) throw new Error(\"CpuImage.toImageValue on a disposed image\");\n if (typeof OffscreenCanvas !== \"undefined\" && typeof createImageBitmap === \"function\") {\n const off = new OffscreenCanvas(this.bin.width, this.bin.height);\n const ctx = off.getContext(\"2d\");\n if (!ctx) throw new Error(\"CpuImage.toImageValue could not acquire a 2D context\");\n const rgba = expandToRgba(this.bin);\n ctx.putImageData(\n new ImageData(\n new Uint8ClampedArray(rgba.buffer as ArrayBuffer, rgba.byteOffset, rgba.byteLength),\n this.bin.width,\n this.bin.height\n ),\n 0,\n 0\n );\n const bitmap = await createImageBitmap(off);\n const out: ImageValue = {\n bitmap,\n width: this.bin.width,\n height: this.bin.height,\n previewScale,\n } as ImageValue;\n this.bin = null;\n return out;\n }\n // Node fallback: encode to raw-rgba Buffer.\n const rgba = expandToRgba(this.bin);\n const buffer = Buffer.from(rgba.buffer, rgba.byteOffset, rgba.byteLength);\n const out: NodeImageValue = {\n buffer,\n format: \"raw-rgba\",\n width: this.bin.width,\n height: this.bin.height,\n previewScale,\n };\n this.bin = null;\n return out;\n }\n\n async encode(format: GpuImageEncodeFormat, _quality?: number): Promise<Uint8Array> {\n if (!this.bin) throw new Error(\"CpuImage.encode on a disposed image\");\n const codec = getImageRasterCodec();\n const dataUri = await codec.encodeDataUri(this.bin, FORMAT_TO_MIME[format]);\n return dataUriToBytes(dataUri);\n }\n\n dispose(): void {\n this.bin = null;\n }\n}\n\nfunction expandToRgba(bin: RawPixelBuffer): Uint8ClampedArray {\n if (bin.channels === 4) return bin.data;\n const px = bin.width * bin.height;\n const out = new Uint8ClampedArray(px * 4);\n if (bin.channels === 3) {\n for (let i = 0; i < px; i++) {\n out[i * 4 + 0] = bin.data[i * 3 + 0] ?? 0;\n out[i * 4 + 1] = bin.data[i * 3 + 1] ?? 0;\n out[i * 4 + 2] = bin.data[i * 3 + 2] ?? 0;\n out[i * 4 + 3] = 255;\n }\n } else if (bin.channels === 1) {\n for (let i = 0; i < px; i++) {\n const g = bin.data[i] ?? 0;\n out[i * 4 + 0] = g;\n out[i * 4 + 1] = g;\n out[i * 4 + 2] = g;\n out[i * 4 + 3] = 255;\n }\n }\n return out;\n}\n\nfunction dataUriToBytes(dataUri: string): Uint8Array {\n const comma = dataUri.indexOf(\",\");\n const b64 = dataUri.slice(comma + 1);\n const bin = atob(b64);\n const bytes = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; i++) bytes[i] = bin.charCodeAt(i);\n return bytes;\n}\n\nasync function decodeNodeImageValue(value: NodeImageValue): Promise<RawPixelBuffer> {\n if (value.format === \"raw-rgba\") {\n const data = new Uint8ClampedArray(\n value.buffer.buffer,\n value.buffer.byteOffset,\n value.buffer.byteLength\n );\n return { data, width: value.width, height: value.height, channels: 4 };\n }\n const codec = getImageRasterCodec();\n const dataUri = `data:image/${value.format};base64,${value.buffer.toString(\"base64\")}`;\n const decoded = await codec.decodeDataUri(dataUri);\n return {\n data: decoded.data,\n width: decoded.width,\n height: decoded.height,\n channels: decoded.channels as ImageChannels,\n };\n}\n",
14
14
  "/**\n * @copyright\n * Copyright 2026 Steven Roussey\n * All Rights Reserved\n */\nimport type { RawPixelBuffer } from \"./rawPixelBuffer\";\nimport { getImageRasterCodec } from \"./imageRasterCodecRegistry\";\n\nasync function rawPixelBufferToBytes(bin: RawPixelBuffer, mimeType: string): Promise<Uint8Array> {\n const dataUri = await getImageRasterCodec().encodeDataUri(bin, mimeType);\n const b64 = dataUri.slice(dataUri.indexOf(\",\") + 1);\n const decoded = atob(b64);\n const bytes = new Uint8Array(decoded.length);\n for (let i = 0; i < decoded.length; i++) bytes[i] = decoded.charCodeAt(i);\n return bytes;\n}\n\nexport async function rawPixelBufferToDataUri(\n bin: RawPixelBuffer,\n mimeType = \"image/png\"\n): Promise<string> {\n return getImageRasterCodec().encodeDataUri(bin, mimeType);\n}\n\nexport async function rawPixelBufferToBlob(\n bin: RawPixelBuffer,\n mimeType = \"image/png\"\n): Promise<Blob> {\n const bytes = await rawPixelBufferToBytes(bin, mimeType);\n return new Blob([bytes.buffer as ArrayBuffer], { type: mimeType });\n}\n",
@@ -20,9 +20,9 @@
20
20
  "/**\n * @copyright\n * Copyright 2026 Steven Roussey\n * All Rights Reserved\n */\n\nexport const VERTEX_PRELUDE = `\n@group(0) @binding(0) var src: texture_2d<f32>;\n@group(0) @binding(1) var src_sampler: sampler;\n\nstruct VsOut {\n @builtin(position) pos: vec4f,\n @location(0) uv: vec2f,\n};\n\n@vertex\nfn vs(@builtin(vertex_index) vid: u32) -> VsOut {\n let xy = vec2f(f32((vid << 1u) & 2u), f32(vid & 2u));\n var out: VsOut;\n out.pos = vec4f(xy * 2.0 - 1.0, 0.0, 1.0);\n out.uv = vec2f(xy.x, 1.0 - xy.y);\n return out;\n}`;\n\n// Used by WebGpuImage.toCanvas to blit a texture to the swap-chain image.\nexport const PASSTHROUGH_SHADER_SRC = `${VERTEX_PRELUDE}\n@fragment\nfn fs(in: VsOut) -> @location(0) vec4f {\n return textureSample(src, src_sampler, in.uv);\n}\n`;\n\nexport interface ShaderCache {\n get(source: string): GPUShaderModule;\n}\n\nexport function createShaderCache(device: GPUDevice): ShaderCache {\n const map = new Map<string, GPUShaderModule>();\n return {\n get(source) {\n let mod = map.get(source);\n if (!mod) {\n mod = device.createShaderModule({ code: source });\n map.set(source, mod);\n }\n return mod;\n },\n };\n}\n\nlet singleton: { device: GPUDevice; cache: ShaderCache } | null = null;\n\nexport function getShaderCache(device: GPUDevice): ShaderCache {\n if (!singleton || singleton.device !== device) {\n singleton = { device, cache: createShaderCache(device) };\n }\n return singleton.cache;\n}\n",
21
21
  "/**\n * @copyright\n * Copyright 2026 Steven Roussey\n * All Rights Reserved\n */\n\nexport interface TexturePoolOptions {\n capacityPerSize?: number;\n}\n\nexport interface TexturePool {\n acquire(width: number, height: number, format: GPUTextureFormat): GPUTexture;\n release(texture: GPUTexture): void;\n drain(): void;\n}\n\ninterface PooledTexture {\n texture: GPUTexture;\n width: number;\n height: number;\n format: GPUTextureFormat;\n inPool: boolean;\n}\n\nconst DEFAULT_CAPACITY_PER_SIZE = 8;\nconst TEXTURE_USAGE = 0x04 | 0x10 | 0x01 | 0x02; // TEXTURE_BINDING | RENDER_ATTACHMENT | COPY_SRC | COPY_DST\n\nexport function createTexturePool(device: GPUDevice, opts: TexturePoolOptions = {}): TexturePool {\n const capacity = opts.capacityPerSize ?? DEFAULT_CAPACITY_PER_SIZE;\n const buckets = new Map<string, PooledTexture[]>();\n const owners = new WeakMap<GPUTexture, PooledTexture>();\n\n const sizeClassKey = (w: number, h: number, f: GPUTextureFormat) => `${w}x${h}:${f}`;\n\n return {\n acquire(width, height, format) {\n const k = sizeClassKey(width, height, format);\n const bucket = buckets.get(k);\n if (bucket && bucket.length > 0) {\n const reused = bucket.pop()!;\n reused.inPool = false;\n return reused.texture;\n }\n const texture = device.createTexture({\n size: [width, height, 1],\n format,\n usage: TEXTURE_USAGE,\n });\n const entry: PooledTexture = { texture, width, height, format, inPool: false };\n owners.set(texture, entry);\n return texture;\n },\n\n release(texture) {\n const entry = owners.get(texture);\n if (!entry) return;\n if (entry.inPool) return;\n const k = sizeClassKey(entry.width, entry.height, entry.format);\n let bucket = buckets.get(k);\n if (!bucket) {\n bucket = [];\n buckets.set(k, bucket);\n }\n if (bucket.length >= capacity) {\n owners.delete(texture);\n texture.destroy();\n return;\n }\n entry.inPool = true;\n bucket.push(entry);\n },\n\n drain() {\n for (const bucket of buckets.values()) {\n for (const entry of bucket) {\n owners.delete(entry.texture);\n entry.texture.destroy();\n }\n }\n buckets.clear();\n },\n };\n}\n\nlet singleton: { device: GPUDevice; pool: TexturePool } | null = null;\n\nexport function getTexturePool(device: GPUDevice): TexturePool {\n if (!singleton || singleton.device !== device) {\n singleton?.pool.drain();\n singleton = { device, pool: createTexturePool(device) };\n }\n return singleton.pool;\n}\n\nexport function resetTexturePoolForTests(): void {\n singleton?.pool.drain();\n singleton = null;\n}\n",
22
22
  "/**\n * @copyright\n * Copyright 2026 Steven Roussey\n * All Rights Reserved\n */\nimport type { ImageChannels } from \"./imageTypes\";\nimport type { GpuImage as IGpuImage, GpuImageEncodeFormat } from \"./gpuImage\";\nimport { registerGpuImageFactory } from \"./gpuImage\";\nimport type { ImageValue, NodeImageValue } from \"./imageValue\";\nimport { isBrowserImageValue, isNodeImageValue } from \"./imageValue\";\n\ntype Sharp = {\n clone(): Sharp;\n flip(): Sharp;\n flop(): Sharp;\n blur(sigma: number): Sharp;\n grayscale(grayscale?: boolean): Sharp;\n negate(options?: { alpha?: boolean }): Sharp;\n recomb(matrix: number[][]): Sharp;\n linear(a: number | number[], b: number | number[]): Sharp;\n threshold(threshold: number, options?: { grayscale?: boolean }): Sharp;\n tint(rgb: { r: number; g: number; b: number }): Sharp;\n ensureAlpha(alpha?: number): Sharp;\n extend(options: {\n top?: number;\n bottom?: number;\n left?: number;\n right?: number;\n background?: unknown;\n }): Sharp;\n extract(region: { left: number; top: number; width: number; height: number }): Sharp;\n rotate(angle?: number, options?: { background?: unknown }): Sharp;\n resize(\n width?: number | null,\n height?: number | null,\n options?: { kernel?: string; fit?: string; background?: unknown }\n ): Sharp;\n raw(): Sharp;\n png(opts?: unknown): Sharp;\n jpeg(opts?: unknown): Sharp;\n webp(opts?: unknown): Sharp;\n metadata(): Promise<{ width?: number; height?: number; channels?: number }>;\n toBuffer(\n opts?: unknown\n ): Promise<Buffer | { data: Buffer; info: { width: number; height: number; channels: number } }>;\n};\n\ntype SharpModule = (\n input?: Buffer | Uint8ClampedArray,\n opts?: {\n raw?: { width: number; height: number; channels: 1 | 2 | 3 | 4 };\n limitInputPixels?: number;\n sequentialRead?: boolean;\n }\n) => Sharp;\n\nlet cachedSharp: SharpModule | null = null;\nasync function loadSharp(): Promise<SharpModule> {\n if (cachedSharp) return cachedSharp;\n let mod: unknown;\n try {\n mod = await import(\"sharp\");\n } catch {\n throw new Error(\n \"Server-side image processing requires the optional 'sharp' package. \" +\n \"Install it with: npm install sharp (or bun add sharp)\"\n );\n }\n cachedSharp = ((mod as { default?: unknown }).default ?? mod) as SharpModule;\n return cachedSharp;\n}\n\nexport class SharpImage implements IGpuImage {\n readonly backend = \"sharp\" as const;\n\n private constructor(\n private pipeline: Sharp | null,\n readonly width: number,\n readonly height: number,\n readonly channels: ImageChannels\n ) {}\n\n static async from(value: ImageValue): Promise<SharpImage> {\n if (isBrowserImageValue(value)) {\n throw new Error(\"SharpImage.from: BrowserImageValue not supported in node runtime\");\n }\n if (!isNodeImageValue(value)) {\n throw new Error(\"SharpImage.from: unrecognized ImageValue shape\");\n }\n const sharp = await loadSharp();\n if (value.format === \"raw-rgba\") {\n const pipeline = sharp(value.buffer, {\n raw: { width: value.width, height: value.height, channels: 4 },\n });\n return new SharpImage(pipeline, value.width, value.height, 4);\n }\n const pipeline = sharp(value.buffer);\n const meta = await pipeline.clone().metadata();\n const channels = (meta.channels ?? 4) as ImageChannels;\n return new SharpImage(pipeline, value.width, value.height, channels);\n }\n\n apply(\n op: (p: Sharp) => Sharp,\n outSize?: { width: number; height: number; channels?: ImageChannels }\n ): SharpImage {\n if (!this.pipeline) throw new Error(\"SharpImage.apply on a disposed image\");\n const next = op(this.pipeline.clone());\n return new SharpImage(\n next,\n outSize?.width ?? this.width,\n outSize?.height ?? this.height,\n outSize?.channels ?? this.channels\n );\n }\n\n async toBuffer(format: \"png\" | \"jpeg\" | \"raw-rgba\"): Promise<Buffer> {\n if (!this.pipeline) throw new Error(\"SharpImage.toBuffer on a disposed image\");\n const p = this.pipeline.clone();\n if (format === \"raw-rgba\") {\n const result = await p.raw().toBuffer({ resolveWithObject: true });\n if (!isObjectResult(result))\n throw new Error(\"SharpImage.toBuffer: expected resolveWithObject result\");\n return result.data;\n }\n if (format === \"png\") return (await p.png().toBuffer()) as Buffer;\n return (await p.jpeg().toBuffer()) as Buffer;\n }\n\n async toImageValue(previewScale: number): Promise<ImageValue> {\n try {\n const buffer = await this.toBuffer(\"png\");\n const out: NodeImageValue = {\n buffer,\n format: \"png\",\n width: this.width,\n height: this.height,\n previewScale,\n };\n return out;\n } finally {\n this.dispose();\n }\n }\n\n async encode(format: GpuImageEncodeFormat, quality?: number): Promise<Uint8Array> {\n if (!this.pipeline) throw new Error(\"SharpImage.encode on a disposed image\");\n const p = this.pipeline.clone();\n let result: unknown;\n if (format === \"png\") result = await p.png({ quality }).toBuffer();\n else if (format === \"jpeg\") result = await p.jpeg({ quality }).toBuffer();\n else result = await p.webp({ quality }).toBuffer();\n const buf = result as Buffer;\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);\n }\n\n dispose(): void {\n this.pipeline = null;\n }\n}\n\nfunction isObjectResult(\n r: unknown\n): r is { data: Buffer; info: { width: number; height: number; channels: number } } {\n return !!r && typeof r === \"object\" && \"data\" in r && \"info\" in r;\n}\n\nexport interface DecodeBufferToRawOptions {\n readonly limitInputPixels?: number;\n readonly sequentialRead?: boolean;\n readonly ensureAlpha?: boolean;\n}\n\nexport interface RawPixelInput {\n readonly data: Buffer | Uint8ClampedArray;\n readonly width: number;\n readonly height: number;\n readonly channels: 1 | 2 | 3 | 4;\n}\n\nexport type EncodeRawPixelsOptions =\n | { readonly format: \"png\"; readonly compressionLevel?: number }\n | { readonly format: \"jpeg\"; readonly quality?: number; readonly mozjpeg?: boolean }\n | { readonly format: \"webp\"; readonly quality?: number };\n\nexport async function probeImageDimensions(\n buffer: Buffer\n): Promise<{ width: number; height: number; channels: number | undefined }> {\n const sharp = await loadSharp();\n const meta = await sharp(buffer).metadata();\n if (typeof meta.width !== \"number\" || typeof meta.height !== \"number\") {\n throw new Error(\"probeImageDimensions: sharp could not read image dimensions\");\n }\n return { width: meta.width, height: meta.height, channels: meta.channels };\n}\n\nexport async function decodeBufferToRaw(\n buffer: Buffer,\n options?: DecodeBufferToRawOptions\n): Promise<{ data: Buffer; width: number; height: number; channels: number }> {\n const sharp = await loadSharp();\n const sharpOpts: { limitInputPixels?: number; sequentialRead?: boolean } = {};\n if (options?.limitInputPixels !== undefined)\n sharpOpts.limitInputPixels = options.limitInputPixels;\n if (options?.sequentialRead !== undefined) sharpOpts.sequentialRead = options.sequentialRead;\n let pipeline = sharp(buffer, sharpOpts);\n if (options?.ensureAlpha) pipeline = pipeline.ensureAlpha();\n const result = await pipeline.raw().toBuffer({ resolveWithObject: true });\n if (!isObjectResult(result))\n throw new Error(\"decodeBufferToRaw: expected resolveWithObject result\");\n return {\n data: result.data,\n width: result.info.width,\n height: result.info.height,\n channels: result.info.channels,\n };\n}\n\nexport async function encodeRawPixels(\n raw: RawPixelInput,\n options: EncodeRawPixelsOptions\n): Promise<Buffer> {\n const sharp = await loadSharp();\n const inputBuffer: Buffer =\n raw.data instanceof Uint8ClampedArray\n ? Buffer.from(raw.data.buffer, raw.data.byteOffset, raw.data.byteLength)\n : raw.data;\n const pipeline = sharp(inputBuffer, {\n raw: { width: raw.width, height: raw.height, channels: raw.channels },\n });\n let encoded: unknown;\n if (options.format === \"png\") {\n encoded = await pipeline.png({ compressionLevel: options.compressionLevel }).toBuffer();\n } else if (options.format === \"jpeg\") {\n encoded = await pipeline\n .jpeg({ quality: options.quality, mozjpeg: options.mozjpeg })\n .toBuffer();\n } else {\n encoded = await pipeline.webp({ quality: options.quality }).toBuffer();\n }\n return encoded as Buffer;\n}\n\nregisterGpuImageFactory(\"from\", SharpImage.from.bind(SharpImage));\n",
23
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport \"./media/imageCacheCodec\";\nimport \"./media/imageHydrationResolver\";\n\nexport * from \"./media/color\";\nexport { CpuImage } from \"./media/cpuImage\";\nexport { rawPixelBufferToBlob, rawPixelBufferToDataUri } from \"./media/encode\";\nexport {\n _resetFilterRegistryForTests,\n applyFilter,\n hasFilterOp,\n registerFilterOp,\n} from \"./media/filterRegistry\";\nexport type { FilterOpFn } from \"./media/filterRegistry\";\nexport {\n getGpuImageFactory,\n GpuImage as GpuImageFactory,\n registerGpuImageFactory,\n} from \"./media/gpuImage\";\nexport type {\n GpuImage,\n GpuImageBackend,\n GpuImageEncodeFormat,\n GpuImageStatic,\n} from \"./media/gpuImage\";\nexport { ImageValueSchema } from \"./media/imageValueSchema\";\nexport * from \"./media/imageRasterCodecRegistry\";\nexport type { ImageChannels } from \"./media/imageTypes\";\nexport type { RawPixelBuffer, RgbaPixelBuffer } from \"./media/rawPixelBuffer\";\nexport {\n imageValueFromBitmap,\n imageValueFromBuffer,\n isBrowserImageValue,\n isImageValue,\n isNodeImageValue,\n normalizeToImageValue,\n} from \"./media/imageValue\";\nexport type {\n BrowserImageValue,\n ImageValue,\n ImageValueBase,\n NodeImageFormat,\n NodeImageValue,\n} from \"./media/imageValue\";\nexport * from \"./media/MediaRawImage\";\nexport {\n getPreviewBudget,\n previewSource,\n registerPreviewResizeFn,\n setPreviewBudget,\n} from \"./media/previewBudget\";\nexport async function getGpuDevice(): Promise<null> {\n return null;\n}\nexport function resetGpuDeviceForTests(): void {}\nexport {\n createShaderCache,\n getShaderCache,\n PASSTHROUGH_SHADER_SRC,\n VERTEX_PRELUDE,\n} from \"./media/shaderRegistry.browser\";\nexport type { ShaderCache } from \"./media/shaderRegistry.browser\";\nexport {\n createTexturePool,\n getTexturePool,\n resetTexturePoolForTests,\n} from \"./media/texturePool.browser\";\nexport type { TexturePool, TexturePoolOptions } from \"./media/texturePool.browser\";\n// WebGpuImage is browser-only at runtime; type-only re-export lets\n// browser-targeted filter files (*.webgpu.ts) type-check under node tsc.\nexport {\n SharpImage,\n decodeBufferToRaw,\n encodeRawPixels,\n probeImageDimensions,\n} from \"./media/sharpImage.server\";\nexport type {\n DecodeBufferToRawOptions,\n EncodeRawPixelsOptions,\n RawPixelInput,\n} from \"./media/sharpImage.server\";\nexport type { ApplyParams, WebGpuImage } from \"./media/webGpuImage.browser\";\n\nimport { registerGpuImageFactory as _registerGpuImageFactory } from \"./media/gpuImage\";\nimport type { ImageValue as _ImageValue } from \"./media/imageValue\";\nimport { SharpImage as _SharpImage } from \"./media/sharpImage.server\";\n\n_registerGpuImageFactory(\"from\", (value: _ImageValue) => _SharpImage.from(value));\n"
23
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport \"./media/imageCacheCodec\";\nimport \"./media/imageHydrationResolver\";\nexport { registerImageDefaults } from \"./media/imageHydrationResolver\";\n\nexport * from \"./media/color\";\nexport { CpuImage } from \"./media/cpuImage\";\nexport { rawPixelBufferToBlob, rawPixelBufferToDataUri } from \"./media/encode\";\nexport {\n _resetFilterRegistryForTests,\n applyFilter,\n hasFilterOp,\n registerFilterOp,\n} from \"./media/filterRegistry\";\nexport type { FilterOpFn } from \"./media/filterRegistry\";\nexport {\n getGpuImageFactory,\n GpuImage as GpuImageFactory,\n registerGpuImageFactory,\n} from \"./media/gpuImage\";\nexport type {\n GpuImage,\n GpuImageBackend,\n GpuImageEncodeFormat,\n GpuImageStatic,\n} from \"./media/gpuImage\";\nexport { ImageValueSchema } from \"./media/imageValueSchema\";\nexport * from \"./media/imageRasterCodecRegistry\";\nexport type { ImageChannels } from \"./media/imageTypes\";\nexport type { RawPixelBuffer, RgbaPixelBuffer } from \"./media/rawPixelBuffer\";\nexport {\n imageValueFromBitmap,\n imageValueFromBuffer,\n isBrowserImageValue,\n isImageValue,\n isNodeImageValue,\n normalizeToImageValue,\n} from \"./media/imageValue\";\nexport type {\n BrowserImageValue,\n ImageValue,\n ImageValueBase,\n NodeImageFormat,\n NodeImageValue,\n} from \"./media/imageValue\";\nexport * from \"./media/MediaRawImage\";\nexport {\n getPreviewBudget,\n previewSource,\n registerPreviewResizeFn,\n setPreviewBudget,\n} from \"./media/previewBudget\";\nexport async function getGpuDevice(): Promise<null> {\n return null;\n}\nexport function resetGpuDeviceForTests(): void {}\nexport {\n createShaderCache,\n getShaderCache,\n PASSTHROUGH_SHADER_SRC,\n VERTEX_PRELUDE,\n} from \"./media/shaderRegistry.browser\";\nexport type { ShaderCache } from \"./media/shaderRegistry.browser\";\nexport {\n createTexturePool,\n getTexturePool,\n resetTexturePoolForTests,\n} from \"./media/texturePool.browser\";\nexport type { TexturePool, TexturePoolOptions } from \"./media/texturePool.browser\";\n// WebGpuImage is browser-only at runtime; type-only re-export lets\n// browser-targeted filter files (*.webgpu.ts) type-check under node tsc.\nexport {\n SharpImage,\n decodeBufferToRaw,\n encodeRawPixels,\n probeImageDimensions,\n} from \"./media/sharpImage.server\";\nexport type {\n DecodeBufferToRawOptions,\n EncodeRawPixelsOptions,\n RawPixelInput,\n} from \"./media/sharpImage.server\";\nexport type { ApplyParams, WebGpuImage } from \"./media/webGpuImage.browser\";\n\nimport { registerGpuImageFactory as _registerGpuImageFactory } from \"./media/gpuImage\";\nimport type { ImageValue as _ImageValue } from \"./media/imageValue\";\nimport { SharpImage as _SharpImage } from \"./media/sharpImage.server\";\n\n_registerGpuImageFactory(\"from\", (value: _ImageValue) => _SharpImage.from(value));\n"
24
24
  ],
25
- "mappings": "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",
26
- "debugId": "49C9406160EA2AA164756E2164756E21",
25
+ "mappings": "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",
26
+ "debugId": "3055B08723AB7B0364756E2164756E21",
27
27
  "names": []
28
28
  }
package/dist/node.js CHANGED
@@ -282,22 +282,34 @@ var globalServiceRegistry = new ServiceRegistry(globalContainer);
282
282
 
283
283
  // src/di/InputCompactorRegistry.ts
284
284
  var INPUT_COMPACTORS = createServiceToken("task.input.compactors");
285
- globalServiceRegistry.registerIfAbsent(INPUT_COMPACTORS, () => new Map, true);
286
- function getInputCompactors() {
287
- return globalServiceRegistry.get(INPUT_COMPACTORS);
285
+ function registerInputCompactorDefaults(registry = globalServiceRegistry) {
286
+ registry.registerIfAbsent(INPUT_COMPACTORS, () => new Map, true);
288
287
  }
289
- function registerInputCompactor(formatPrefix, compactor) {
290
- const compactors = getInputCompactors();
288
+ registerInputCompactorDefaults();
289
+ function getInputCompactors(registry = globalServiceRegistry) {
290
+ if (!registry.has(INPUT_COMPACTORS)) {
291
+ registerInputCompactorDefaults(registry);
292
+ }
293
+ return registry.get(INPUT_COMPACTORS);
294
+ }
295
+ function registerInputCompactor(formatPrefix, compactor, registry = globalServiceRegistry) {
296
+ const compactors = getInputCompactors(registry);
291
297
  compactors.set(formatPrefix, compactor);
292
298
  }
293
299
  // src/di/InputResolverRegistry.ts
294
300
  var INPUT_RESOLVERS = createServiceToken("task.input.resolvers");
295
- globalServiceRegistry.registerIfAbsent(INPUT_RESOLVERS, () => new Map, true);
296
- function getInputResolvers() {
297
- return globalServiceRegistry.get(INPUT_RESOLVERS);
301
+ function registerInputResolverDefaults(registry = globalServiceRegistry) {
302
+ registry.registerIfAbsent(INPUT_RESOLVERS, () => new Map, true);
303
+ }
304
+ registerInputResolverDefaults();
305
+ function getInputResolvers(registry = globalServiceRegistry) {
306
+ if (!registry.has(INPUT_RESOLVERS)) {
307
+ registerInputResolverDefaults(registry);
308
+ }
309
+ return registry.get(INPUT_RESOLVERS);
298
310
  }
299
- function registerInputResolver(formatPrefix, resolver) {
300
- const resolvers = getInputResolvers();
311
+ function registerInputResolver(formatPrefix, resolver, registry = globalServiceRegistry) {
312
+ const resolvers = getInputResolvers(registry);
301
313
  resolvers.set(formatPrefix, resolver);
302
314
  }
303
315
  // src/di/PortCodecRegistry.ts
@@ -610,12 +622,18 @@ function createDefaultLogger() {
610
622
  }
611
623
  return new NullLogger;
612
624
  }
613
- globalServiceRegistry.registerIfAbsent(LOGGER, createDefaultLogger, true);
614
- function getLogger() {
615
- return globalServiceRegistry.get(LOGGER);
625
+ function registerLoggerDefaults(registry = globalServiceRegistry) {
626
+ registry.registerIfAbsent(LOGGER, createDefaultLogger, true);
627
+ }
628
+ registerLoggerDefaults();
629
+ function getLogger(registry = globalServiceRegistry) {
630
+ if (!registry.has(LOGGER)) {
631
+ registerLoggerDefaults(registry);
632
+ }
633
+ return registry.get(LOGGER);
616
634
  }
617
- function setLogger(logger) {
618
- globalServiceRegistry.registerInstance(LOGGER, logger);
635
+ function setLogger(logger, registry = globalServiceRegistry) {
636
+ registry.registerInstance(LOGGER, logger);
619
637
  }
620
638
  // src/utilities/BaseError.ts
621
639
  class BaseError {
@@ -1330,7 +1348,10 @@ class WorkerManager {
1330
1348
  }
1331
1349
  }
1332
1350
  var WORKER_MANAGER = createServiceToken("worker.manager");
1333
- globalServiceRegistry.register(WORKER_MANAGER, () => new WorkerManager, true);
1351
+ function registerWorkerManagerDefaults(registry = globalServiceRegistry) {
1352
+ registry.registerIfAbsent(WORKER_MANAGER, () => new WorkerManager, true);
1353
+ }
1354
+ registerWorkerManagerDefaults();
1334
1355
  // src/credentials/ChainedCredentialStore.ts
1335
1356
  class ChainedCredentialStore {
1336
1357
  stores;
@@ -1487,23 +1508,27 @@ class InMemoryCredentialStore {
1487
1508
  }
1488
1509
 
1489
1510
  // src/credentials/CredentialStoreRegistry.ts
1490
- globalServiceRegistry.registerIfAbsent(CREDENTIAL_STORE, () => new InMemoryCredentialStore, true);
1491
- function getGlobalCredentialStore() {
1492
- return globalServiceRegistry.get(CREDENTIAL_STORE);
1511
+ function getGlobalCredentialStore(registry = globalServiceRegistry) {
1512
+ if (!registry.has(CREDENTIAL_STORE)) {
1513
+ registerCredentialDefaults(registry);
1514
+ }
1515
+ return registry.get(CREDENTIAL_STORE);
1493
1516
  }
1494
- function setGlobalCredentialStore(store) {
1495
- globalServiceRegistry.registerInstance(CREDENTIAL_STORE, store);
1517
+ function setGlobalCredentialStore(store, registry = globalServiceRegistry) {
1518
+ registry.registerInstance(CREDENTIAL_STORE, store);
1496
1519
  }
1497
1520
  async function resolveCredential(key, registry) {
1498
- const store = registry && registry.has(CREDENTIAL_STORE) ? registry.get(CREDENTIAL_STORE) : getGlobalCredentialStore();
1521
+ const store = getGlobalCredentialStore(registry);
1499
1522
  return store.get(key);
1500
1523
  }
1501
- registerInputResolver("credential", async (id, _format, registry) => {
1502
- return await resolveCredential(id, registry) ?? id;
1503
- });
1504
- registerInputCompactor("credential", (value) => {
1505
- return typeof value === "string" ? value : undefined;
1506
- });
1524
+ function registerCredentialDefaults(registry = globalServiceRegistry) {
1525
+ registry.registerIfAbsent(CREDENTIAL_STORE, () => new InMemoryCredentialStore, true);
1526
+ registerInputResolver("credential", async (id, _format, registry2) => {
1527
+ return await resolveCredential(id, registry2) ?? id;
1528
+ }, registry);
1529
+ registerInputCompactor("credential", (value) => typeof value === "string" ? value : undefined, registry);
1530
+ }
1531
+ registerCredentialDefaults();
1507
1532
  // src/credentials/EnvCredentialStore.ts
1508
1533
  class EnvCredentialStore {
1509
1534
  keyToEnvVar;
@@ -1848,12 +1873,18 @@ function createDefaultTelemetryProvider() {
1848
1873
  }
1849
1874
  return new NoopTelemetryProvider;
1850
1875
  }
1851
- globalServiceRegistry.registerIfAbsent(TELEMETRY_PROVIDER, createDefaultTelemetryProvider, true);
1852
- function getTelemetryProvider() {
1853
- return globalServiceRegistry.get(TELEMETRY_PROVIDER);
1876
+ function registerTelemetryDefaults(registry = globalServiceRegistry) {
1877
+ registry.registerIfAbsent(TELEMETRY_PROVIDER, createDefaultTelemetryProvider, true);
1878
+ }
1879
+ registerTelemetryDefaults();
1880
+ function getTelemetryProvider(registry = globalServiceRegistry) {
1881
+ if (!registry.has(TELEMETRY_PROVIDER)) {
1882
+ registerTelemetryDefaults(registry);
1883
+ }
1884
+ return registry.get(TELEMETRY_PROVIDER);
1854
1885
  }
1855
- function setTelemetryProvider(provider) {
1856
- globalServiceRegistry.registerInstance(TELEMETRY_PROVIDER, provider);
1886
+ function setTelemetryProvider(provider, registry = globalServiceRegistry) {
1887
+ registry.registerInstance(TELEMETRY_PROVIDER, provider);
1857
1888
  }
1858
1889
  // src/telemetry/traced.ts
1859
1890
  async function traced(spanName, storageName, fn) {
@@ -2162,9 +2193,15 @@ export {
2162
2193
  serialize,
2163
2194
  resolveHumanConnector,
2164
2195
  resolveCredential,
2196
+ registerWorkerManagerDefaults,
2197
+ registerTelemetryDefaults,
2165
2198
  registerPortCodec,
2199
+ registerLoggerDefaults,
2200
+ registerInputResolverDefaults,
2166
2201
  registerInputResolver,
2202
+ registerInputCompactorDefaults,
2167
2203
  registerInputCompactor,
2204
+ registerCredentialDefaults,
2168
2205
  parentPort,
2169
2206
  objectOfArraysAsArrayOfObjects,
2170
2207
  makeFingerprint,
@@ -2218,4 +2255,4 @@ export {
2218
2255
  BaseError
2219
2256
  };
2220
2257
 
2221
- //# debugId=425C536113D0653F64756E2164756E21
2258
+ //# debugId=334AAE7F87B925AD64756E2164756E21