img-upload-kit 2.0.0 → 2.0.1

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 (78) hide show
  1. package/CHANGELOG.md +89 -89
  2. package/MIGRATION.md +192 -192
  3. package/README.md +243 -243
  4. package/dist/bin.js +0 -0
  5. package/dist/bin.js.map +1 -1
  6. package/dist/blur.cjs +3 -3
  7. package/dist/blur.cjs.map +1 -1
  8. package/dist/blur.js +2 -2
  9. package/dist/{chunk-G7LLSKBV.js → chunk-25GYKQ6J.js} +1 -1
  10. package/dist/chunk-25GYKQ6J.js.map +1 -0
  11. package/dist/{chunk-NEDBIIE3.cjs → chunk-34L4TEE3.cjs} +1 -1
  12. package/dist/chunk-34L4TEE3.cjs.map +1 -0
  13. package/dist/{chunk-KJVYWKIG.cjs → chunk-DFCSN3X7.cjs} +1 -1
  14. package/dist/chunk-DFCSN3X7.cjs.map +1 -0
  15. package/dist/{chunk-IB3TEDLR.js → chunk-EWVIL57J.js} +1 -1
  16. package/dist/chunk-EWVIL57J.js.map +1 -0
  17. package/dist/{chunk-3ICG2SLL.cjs → chunk-FP5YIWG5.cjs} +1 -1
  18. package/dist/chunk-FP5YIWG5.cjs.map +1 -0
  19. package/dist/{chunk-TT5C7K3Q.js → chunk-HILELQGS.js} +1 -1
  20. package/dist/chunk-HILELQGS.js.map +1 -0
  21. package/dist/{chunk-AI3JJLSA.js → chunk-IDLLCVGB.js} +3 -3
  22. package/dist/chunk-IDLLCVGB.js.map +1 -0
  23. package/dist/{chunk-4ASFG3KB.js → chunk-J6A44Y3W.js} +1 -1
  24. package/dist/chunk-J6A44Y3W.js.map +1 -0
  25. package/dist/{chunk-YRXXQUDE.cjs → chunk-LOSVFO56.cjs} +1 -1
  26. package/dist/chunk-LOSVFO56.cjs.map +1 -0
  27. package/dist/{chunk-WISG74VL.cjs → chunk-MBQJ6NVJ.cjs} +1 -1
  28. package/dist/chunk-MBQJ6NVJ.cjs.map +1 -0
  29. package/dist/{chunk-CV23O4YU.js → chunk-MHGQEBPW.js} +1 -1
  30. package/dist/chunk-MHGQEBPW.js.map +1 -0
  31. package/dist/chunk-QHU7FUO4.cjs.map +1 -1
  32. package/dist/{chunk-U2TWTEBY.cjs → chunk-TA5Y64JM.cjs} +24 -24
  33. package/dist/chunk-TA5Y64JM.cjs.map +1 -0
  34. package/dist/{chunk-QQHZJKNA.js → chunk-VYVZVUNI.js} +1 -1
  35. package/dist/chunk-VYVZVUNI.js.map +1 -0
  36. package/dist/{chunk-2OVNXHTN.cjs → chunk-XKQMCY5Z.cjs} +1 -1
  37. package/dist/chunk-XKQMCY5Z.cjs.map +1 -0
  38. package/dist/cli.cjs.map +1 -1
  39. package/dist/cli.js.map +1 -1
  40. package/dist/headless.cjs +4 -4
  41. package/dist/headless.cjs.map +1 -1
  42. package/dist/headless.js +3 -3
  43. package/dist/index.cjs +5 -5
  44. package/dist/index.cjs.map +1 -1
  45. package/dist/index.js +4 -4
  46. package/dist/react.cjs +138 -138
  47. package/dist/react.cjs.map +1 -1
  48. package/dist/react.js +5 -5
  49. package/dist/react.js.map +1 -1
  50. package/dist/server-handler.cjs +2 -2
  51. package/dist/server-handler.cjs.map +1 -1
  52. package/dist/server-handler.js +1 -1
  53. package/dist/server.cjs +30 -30
  54. package/dist/server.cjs.map +1 -1
  55. package/dist/server.js +2 -2
  56. package/dist/server.js.map +1 -1
  57. package/dist/storage.cjs +9 -9
  58. package/dist/storage.cjs.map +1 -1
  59. package/dist/storage.js +1 -1
  60. package/dist/storage.js.map +1 -1
  61. package/dist/styles/animated-image.css +112 -112
  62. package/dist/styles/tokens.css +123 -123
  63. package/dist/styles.css +235 -235
  64. package/package.json +3 -3
  65. package/dist/chunk-2OVNXHTN.cjs.map +0 -1
  66. package/dist/chunk-3ICG2SLL.cjs.map +0 -1
  67. package/dist/chunk-4ASFG3KB.js.map +0 -1
  68. package/dist/chunk-AI3JJLSA.js.map +0 -1
  69. package/dist/chunk-CV23O4YU.js.map +0 -1
  70. package/dist/chunk-G7LLSKBV.js.map +0 -1
  71. package/dist/chunk-IB3TEDLR.js.map +0 -1
  72. package/dist/chunk-KJVYWKIG.cjs.map +0 -1
  73. package/dist/chunk-NEDBIIE3.cjs.map +0 -1
  74. package/dist/chunk-QQHZJKNA.js.map +0 -1
  75. package/dist/chunk-TT5C7K3Q.js.map +0 -1
  76. package/dist/chunk-U2TWTEBY.cjs.map +0 -1
  77. package/dist/chunk-WISG74VL.cjs.map +0 -1
  78. package/dist/chunk-YRXXQUDE.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/handler/responses.ts","../src/server/handler/guards.ts","../src/server/handler/deleteRoute.ts","../src/server/handler/parseUploadForm.ts","../src/server/handler/index.ts"],"sourcesContent":["import type { UploadErrorContext } from './options';\r\n\r\nexport class UploadValidationError extends Error {\r\n readonly status = 400;\r\n constructor(message: string) {\r\n super(message);\r\n this.name = 'UploadValidationError';\r\n }\r\n}\r\n\r\nexport function isClientValidationError(error: unknown): boolean {\r\n if (!error) return false;\r\n if (error instanceof UploadValidationError) return true;\r\n if (\r\n typeof error === 'object' &&\r\n error !== null &&\r\n 'status' in error &&\r\n (error as { status: unknown }).status === 400\r\n ) {\r\n return true;\r\n }\r\n if (\r\n error instanceof Error &&\r\n (error.name === 'UploadValidationError' || error.name === 'ValidationError')\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\nexport function jsonResponse(body: unknown, status: number = 200): Response {\r\n return new Response(JSON.stringify(body), {\r\n status,\r\n headers: { 'Content-Type': 'application/json' },\r\n });\r\n}\r\n\r\nexport function handleUnexpectedError(\r\n error: unknown,\r\n ctx: UploadErrorContext,\r\n onError?: (error: unknown, ctx: UploadErrorContext) => void,\r\n): Response {\r\n if (isClientValidationError(error)) {\r\n const message =\r\n error instanceof Error ? error.message : 'Invalid upload request';\r\n return jsonResponse({ error: message }, 400);\r\n }\r\n\r\n if (\r\n typeof error === 'object' &&\r\n error !== null &&\r\n 'status' in error &&\r\n typeof (error as { status: unknown }).status === 'number'\r\n ) {\r\n const status = (error as { status: number }).status;\r\n if (status >= 400 && status < 500) {\r\n const message =\r\n error instanceof Error ? error.message : 'Request rejected';\r\n return jsonResponse({ error: message }, status);\r\n }\r\n if (status === 503) {\r\n return jsonResponse(\r\n { error: 'Server busy, please try again later' },\r\n 503,\r\n );\r\n }\r\n }\r\n\r\n try {\r\n onError?.(error, ctx);\r\n } catch {\r\n // Ignore secondary logger failures\r\n }\r\n\r\n return jsonResponse({ error: 'Internal server error' }, 500);\r\n}\r\n","import type { AuthorizeContext, UploadHttpHandlerOptions } from './options';\r\nimport { jsonResponse } from './responses';\r\n\r\nconst DEFAULT_FALLBACK_MAX_MB = 25;\r\nconst MIN_DEFAULT_BODY_BYTES = 1024 * 1024; // 1 MB floor when maxBodyBytes is not explicitly set\r\n\r\nexport function resolveMaxBodyBytes<TPreset extends string>(\r\n options: UploadHttpHandlerOptions<TPreset>,\r\n): number {\r\n if (\r\n typeof options.maxBodyBytes === 'number' &&\r\n Number.isFinite(options.maxBodyBytes) &&\r\n options.maxBodyBytes > 0\r\n ) {\r\n return Math.floor(options.maxBodyBytes);\r\n }\r\n\r\n const uploaderMaxMB =\r\n typeof options.uploader.getMaxSizeMB === 'function'\r\n ? options.uploader.getMaxSizeMB(options.allowedPresets)\r\n : DEFAULT_FALLBACK_MAX_MB;\r\n\r\n const computed = Math.ceil(1.25 * uploaderMaxMB * 1024 * 1024);\r\n return Math.max(MIN_DEFAULT_BODY_BYTES, computed);\r\n}\r\n\r\nfunction extractRequestOrigin(request: Request): string | null {\r\n const originHeader = request.headers.get('origin');\r\n if (originHeader && originHeader !== 'null') {\r\n return originHeader.trim();\r\n }\r\n\r\n const refererHeader = request.headers.get('referer');\r\n if (refererHeader) {\r\n try {\r\n return new URL(refererHeader).origin;\r\n } catch {\r\n return null;\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport function checkAllowedOrigin(\r\n request: Request,\r\n allowedOrigins?: string[] | ((origin: string) => boolean),\r\n): Response | null {\r\n if (!allowedOrigins) return null;\r\n\r\n const origin = extractRequestOrigin(request);\r\n if (!origin) {\r\n return jsonResponse({ error: 'Forbidden origin' }, 403);\r\n }\r\n\r\n let allowed = false;\r\n try {\r\n allowed =\r\n typeof allowedOrigins === 'function'\r\n ? Boolean(allowedOrigins(origin))\r\n : allowedOrigins.includes(origin);\r\n } catch {\r\n allowed = false;\r\n }\r\n\r\n if (!allowed) {\r\n return jsonResponse({ error: 'Forbidden origin' }, 403);\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport async function runAuthorize(\r\n authorize: UploadHttpHandlerOptions['authorize'],\r\n ctx: AuthorizeContext,\r\n): Promise<Response | null> {\r\n if (!authorize) return null;\r\n\r\n try {\r\n const allowed = await authorize(ctx);\r\n if (!allowed) {\r\n return jsonResponse({ error: 'Unauthorized' }, 401);\r\n }\r\n return null;\r\n } catch {\r\n return jsonResponse({ error: 'Unauthorized' }, 401);\r\n }\r\n}\r\n\r\nexport interface BoundedFormDataResult {\r\n formData?: FormData;\r\n earlyErrorResponse?: Response;\r\n}\r\n\r\nexport async function readBoundedFormData(\r\n request: Request,\r\n maxBodyBytes: number,\r\n): Promise<BoundedFormDataResult> {\r\n const contentLengthRaw = request.headers.get('content-length');\r\n if (contentLengthRaw !== null && contentLengthRaw.trim() !== '') {\r\n const contentLength = Number(contentLengthRaw);\r\n if (Number.isFinite(contentLength) && contentLength > maxBodyBytes) {\r\n return {\r\n earlyErrorResponse: jsonResponse(\r\n {\r\n error: `Payload too large: request body (${contentLength} bytes) exceeds limit of ${maxBodyBytes} bytes`,\r\n },\r\n 413,\r\n ),\r\n };\r\n }\r\n }\r\n\r\n if (!request.body) {\r\n try {\r\n const formData = await request.formData();\r\n return { formData };\r\n } catch {\r\n return {};\r\n }\r\n }\r\n\r\n const reader = request.body.getReader();\r\n const chunks: Uint8Array[] = [];\r\n let totalBytes = 0;\r\n\r\n try {\r\n while (true) {\r\n const { done, value } = await reader.read();\r\n if (done) break;\r\n if (value) {\r\n totalBytes += value.byteLength;\r\n if (totalBytes > maxBodyBytes) {\r\n await reader.cancel().catch(() => {});\r\n return {\r\n earlyErrorResponse: jsonResponse(\r\n {\r\n error: `Payload too large: streamed body exceeds limit of ${maxBodyBytes} bytes`,\r\n },\r\n 413,\r\n ),\r\n };\r\n }\r\n chunks.push(value);\r\n }\r\n }\r\n } finally {\r\n try {\r\n reader.releaseLock();\r\n } catch {\r\n // Ignore release errors\r\n }\r\n }\r\n\r\n if (totalBytes === 0) {\r\n return {};\r\n }\r\n\r\n const combined = new Uint8Array(totalBytes);\r\n let offset = 0;\r\n for (const chunk of chunks) {\r\n combined.set(chunk, offset);\r\n offset += chunk.byteLength;\r\n }\r\n\r\n try {\r\n const formData = await new Response(combined, {\r\n headers: request.headers,\r\n }).formData();\r\n return { formData };\r\n } catch {\r\n return {};\r\n }\r\n}\r\n","import { parsePublicStorageUrl } from '../../storage/urlParser';\r\nimport { checkAllowedOrigin, runAuthorize } from './guards';\r\nimport type { UploadHttpHandlerOptions } from './options';\r\nimport { handleUnexpectedError, jsonResponse } from './responses';\r\n\r\nfunction parseVirtualHostedS3Bucket(url: string): {\r\n bucket: string;\r\n path: string;\r\n} | null {\r\n try {\r\n const parsed = new URL(url);\r\n const s3Match = parsed.hostname.match(\r\n /^([a-z0-9.-]+)\\.s3(?:[.-][a-z0-9-]+)?\\.amazonaws\\.com$/i,\r\n );\r\n if (s3Match) {\r\n const key = decodeURIComponent(parsed.pathname).replace(/^\\/+/, '');\r\n if (key) {\r\n return { bucket: s3Match[1], path: key };\r\n }\r\n }\r\n } catch {\r\n // Ignore invalid URLs\r\n }\r\n return null;\r\n}\r\n\r\nfunction resolveAllowedBuckets<TPreset extends string>(\r\n options: UploadHttpHandlerOptions<TPreset>,\r\n): Set<string> {\r\n if (options.allowedBuckets && options.allowedBuckets.length > 0) {\r\n return new Set(options.allowedBuckets);\r\n }\r\n if (typeof options.uploader.getAllowedBuckets === 'function') {\r\n return new Set(options.uploader.getAllowedBuckets());\r\n }\r\n if (options.uploader.defaultBucket) {\r\n return new Set([options.uploader.defaultBucket]);\r\n }\r\n return new Set(['images']);\r\n}\r\n\r\nexport function createDeleteHandler<TPreset extends string>(\r\n options: UploadHttpHandlerOptions<TPreset>,\r\n) {\r\n const {\r\n uploader,\r\n authorize,\r\n allowedOrigins,\r\n allowClientBucketOverride = false,\r\n allowedBuckets,\r\n onError,\r\n } = options;\r\n\r\n return async function DELETE(request: Request): Promise<Response> {\r\n try {\r\n const originError = checkAllowedOrigin(request, allowedOrigins);\r\n if (originError) return originError;\r\n\r\n const { searchParams } = new URL(request.url);\r\n const url = searchParams.get('url');\r\n const storagePath = searchParams.get('path');\r\n const bucketParam = searchParams.get('bucket');\r\n\r\n const allowedBucketSet = resolveAllowedBuckets(options);\r\n\r\n const parsedFromUrl = url\r\n ? (typeof uploader.parseUrl === 'function'\r\n ? uploader.parseUrl(url)\r\n : null) ??\r\n parsePublicStorageUrl(url) ??\r\n parseVirtualHostedS3Bucket(url)\r\n : null;\r\n\r\n const resolvedPath = parsedFromUrl?.path ?? storagePath ?? undefined;\r\n const resolvedBucket =\r\n parsedFromUrl?.bucket ??\r\n (bucketParam || uploader.defaultBucket || 'images');\r\n\r\n const authError = await runAuthorize(authorize, {\r\n action: 'delete',\r\n request,\r\n ...(resolvedPath ? { path: resolvedPath } : {}),\r\n ...(resolvedBucket ? { bucket: resolvedBucket } : {}),\r\n });\r\n if (authError) return authError;\r\n\r\n if (url) {\r\n if (parsedFromUrl?.bucket) {\r\n if (\r\n allowedBuckets &&\r\n allowedBuckets.length > 0 &&\r\n !allowedBuckets.includes(parsedFromUrl.bucket)\r\n ) {\r\n return jsonResponse(\r\n { error: `Forbidden bucket \"${parsedFromUrl.bucket}\"` },\r\n 403,\r\n );\r\n }\r\n if (\r\n !allowClientBucketOverride &&\r\n allowedBucketSet.size > 0 &&\r\n !allowedBucketSet.has(parsedFromUrl.bucket)\r\n ) {\r\n return jsonResponse(\r\n { error: `Forbidden bucket \"${parsedFromUrl.bucket}\"` },\r\n 403,\r\n );\r\n }\r\n }\r\n\r\n const deleted = await uploader.deleteByUrl(url);\r\n return jsonResponse({ success: deleted }, deleted ? 200 : 400);\r\n }\r\n\r\n if (bucketParam) {\r\n if (\r\n allowedBuckets &&\r\n allowedBuckets.length > 0 &&\r\n !allowedBuckets.includes(bucketParam)\r\n ) {\r\n return jsonResponse(\r\n { error: `Forbidden bucket \"${bucketParam}\"` },\r\n 403,\r\n );\r\n }\r\n if (\r\n !allowClientBucketOverride &&\r\n allowedBucketSet.size > 0 &&\r\n !allowedBucketSet.has(bucketParam)\r\n ) {\r\n return jsonResponse(\r\n { error: `Forbidden bucket \"${bucketParam}\"` },\r\n 403,\r\n );\r\n }\r\n }\r\n\r\n if (!storagePath) {\r\n return jsonResponse(\r\n { error: 'Missing required \"path\" or \"url\" query parameter' },\r\n 400,\r\n );\r\n }\r\n\r\n const bucket = allowClientBucketOverride\r\n ? bucketParam || undefined\r\n : undefined;\r\n\r\n await uploader.deleteImage(storagePath, bucket);\r\n return jsonResponse({ success: true }, 200);\r\n } catch (error) {\r\n return handleUnexpectedError(\r\n error,\r\n { action: 'delete', request },\r\n onError,\r\n );\r\n }\r\n };\r\n}\r\n","import type {\r\n ExplicitOutputFormat,\r\n ImageDimensions,\r\n ImageUploadOptions,\r\n} from '../../types';\r\nimport type { AuthorizeContext, UploadHttpHandlerOptions } from './options';\r\nimport { jsonResponse } from './responses';\r\n\r\nconst ALLOWED_OUTPUT_FORMATS = new Set(['jpeg', 'png', 'webp', 'avif']);\r\n\r\nfunction parseJsonRecord(\r\n raw: string | null,\r\n): Record<string, string> | undefined {\r\n if (!raw) return undefined;\r\n try {\r\n const parsed: unknown = JSON.parse(raw);\r\n if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {\r\n const clean: Record<string, string> = {};\r\n for (const [k, v] of Object.entries(parsed)) {\r\n if (v !== undefined && v !== null) {\r\n clean[k] = String(v);\r\n }\r\n }\r\n return Object.keys(clean).length > 0 ? clean : undefined;\r\n }\r\n } catch {\r\n // Ignore malformed metadata JSON\r\n }\r\n return undefined;\r\n}\r\n\r\nexport function peekUploadAuthContext<TPreset extends string>(\r\n formData: FormData | undefined,\r\n request: Request,\r\n options: UploadHttpHandlerOptions<TPreset>,\r\n): AuthorizeContext {\r\n const preset =\r\n (formData?.get('preset') as string | null) || undefined;\r\n const rawBucket =\r\n (formData?.get('bucket') as string | null) || undefined;\r\n const rawFolder =\r\n (formData?.get('folder') as string | null) || undefined;\r\n const presetConfig =\r\n preset && typeof options.uploader.resolvePreset === 'function'\r\n ? options.uploader.resolvePreset(preset)\r\n : undefined;\r\n\r\n const bucket = options.allowClientBucketOverride\r\n ? rawBucket || presetConfig?.bucket || options.uploader.defaultBucket\r\n : presetConfig?.bucket || options.uploader.defaultBucket;\r\n\r\n const folder = options.allowClientOverrides?.folder\r\n ? rawFolder || presetConfig?.folder\r\n : presetConfig?.folder;\r\n\r\n return {\r\n action: 'upload',\r\n request,\r\n ...(folder ? { path: folder } : {}),\r\n ...(bucket ? { bucket } : {}),\r\n ...(preset ? { preset } : {}),\r\n };\r\n}\r\n\r\nexport interface ParsedUploadFormResult<TPreset extends string> {\r\n file?: File;\r\n uploadOptions?: ImageUploadOptions<TPreset>;\r\n errorResponse?: Response;\r\n}\r\n\r\nexport function parseUploadForm<TPreset extends string>(\r\n formData: FormData | undefined,\r\n authCtx: AuthorizeContext,\r\n options: UploadHttpHandlerOptions<TPreset>,\r\n): ParsedUploadFormResult<TPreset> {\r\n if (!formData) {\r\n return {\r\n errorResponse: jsonResponse({ error: 'No file provided' }, 400),\r\n };\r\n }\r\n\r\n const file = formData.get('file') as File | null;\r\n if (\r\n !file ||\r\n typeof file === 'string' ||\r\n (typeof file.size === 'number' && file.size === 0 && !file.name)\r\n ) {\r\n return {\r\n errorResponse: jsonResponse({ error: 'No file provided' }, 400),\r\n };\r\n }\r\n if (typeof file.size === 'number' && file.size === 0) {\r\n return {\r\n errorResponse: jsonResponse({ error: 'File is empty' }, 400),\r\n };\r\n }\r\n\r\n const {\r\n uploader,\r\n allowedPresets,\r\n allowClientOverrides,\r\n allowClientBucketOverride = false,\r\n allowedBuckets,\r\n } = options;\r\n\r\n const preset = (formData.get('preset') as TPreset | null) || undefined;\r\n if (preset) {\r\n if (\r\n allowedPresets &&\r\n allowedPresets.length > 0 &&\r\n !allowedPresets.includes(preset)\r\n ) {\r\n return {\r\n errorResponse: jsonResponse(\r\n {\r\n error: `Invalid preset \"${preset}\". Allowed presets: ${allowedPresets.join(', ')}`,\r\n },\r\n 400,\r\n ),\r\n };\r\n }\r\n if (\r\n typeof uploader.resolvePreset === 'function' &&\r\n !uploader.resolvePreset(preset)\r\n ) {\r\n return {\r\n errorResponse: jsonResponse(\r\n { error: `Invalid preset \"${preset}\".` },\r\n 400,\r\n ),\r\n };\r\n }\r\n }\r\n\r\n const presetConfig =\r\n preset && typeof uploader.resolvePreset === 'function'\r\n ? uploader.resolvePreset(preset)\r\n : undefined;\r\n\r\n const rawBucket = (formData.get('bucket') as string | null) || undefined;\r\n if (rawBucket && allowedBuckets && !allowedBuckets.includes(rawBucket)) {\r\n return {\r\n errorResponse: jsonResponse(\r\n { error: `Bucket \"${rawBucket}\" is not allowed` },\r\n 403,\r\n ),\r\n };\r\n }\r\n const bucket = allowClientBucketOverride ? rawBucket : undefined;\r\n\r\n let folder: string | undefined;\r\n const rawFolder = (formData.get('folder') as string | null) || undefined;\r\n if (rawFolder !== undefined) {\r\n if (allowClientOverrides?.folder === true) {\r\n folder = rawFolder;\r\n } else if (typeof allowClientOverrides?.folder === 'function') {\r\n const scoped = allowClientOverrides.folder(rawFolder, authCtx);\r\n if (scoped === null) {\r\n return {\r\n errorResponse: jsonResponse(\r\n { error: 'Invalid or disallowed folder' },\r\n 400,\r\n ),\r\n };\r\n }\r\n folder = scoped || undefined;\r\n }\r\n }\r\n\r\n const rawFilename =\r\n (formData.get('customFilename') as string | null) || undefined;\r\n const customFilename = allowClientOverrides?.filename\r\n ? rawFilename\r\n : undefined;\r\n\r\n const outputFormatRaw = formData.get('outputFormat') as string | null;\r\n if (outputFormatRaw && !ALLOWED_OUTPUT_FORMATS.has(outputFormatRaw)) {\r\n return {\r\n errorResponse: jsonResponse(\r\n {\r\n error: `Invalid output format \"${outputFormatRaw}\". Allowed formats: jpeg, png, webp, avif`,\r\n },\r\n 400,\r\n ),\r\n };\r\n }\r\n const outputFormat =\r\n allowClientOverrides?.format && outputFormatRaw\r\n ? (outputFormatRaw as ExplicitOutputFormat)\r\n : undefined;\r\n\r\n const qualityRaw = formData.get('quality') as string | null;\r\n let quality: number | undefined;\r\n if (qualityRaw !== null && qualityRaw.trim() !== '') {\r\n const parsedQuality = Number(qualityRaw);\r\n if (\r\n !Number.isFinite(parsedQuality) ||\r\n !Number.isInteger(parsedQuality) ||\r\n parsedQuality < 1 ||\r\n parsedQuality > 100\r\n ) {\r\n return {\r\n errorResponse: jsonResponse(\r\n {\r\n error: `Invalid quality \"${qualityRaw}\". Must be an integer between 1 and 100.`,\r\n },\r\n 400,\r\n ),\r\n };\r\n }\r\n if (allowClientOverrides?.quality) {\r\n quality = presetConfig?.quality\r\n ? Math.min(parsedQuality, presetConfig.quality)\r\n : parsedQuality;\r\n }\r\n }\r\n\r\n const maxWidthRaw = formData.get('maxWidth') as string | null;\r\n const maxHeightRaw = formData.get('maxHeight') as string | null;\r\n let maxDimensions: ImageDimensions | undefined;\r\n if (\r\n (maxWidthRaw !== null && maxWidthRaw.trim() !== '') ||\r\n (maxHeightRaw !== null && maxHeightRaw.trim() !== '')\r\n ) {\r\n const w = Number(maxWidthRaw);\r\n const h = Number(maxHeightRaw);\r\n if (!Number.isFinite(w) || !Number.isFinite(h) || w < 1 || h < 1) {\r\n return {\r\n errorResponse: jsonResponse(\r\n { error: 'Invalid maxWidth or maxHeight dimensions' },\r\n 400,\r\n ),\r\n };\r\n }\r\n if (allowClientOverrides?.dimensions) {\r\n const cap = presetConfig?.maxDimensions;\r\n maxDimensions = cap\r\n ? {\r\n width: Math.min(Math.floor(w), cap.width),\r\n height: Math.min(Math.floor(h), cap.height),\r\n }\r\n : { width: Math.floor(w), height: Math.floor(h) };\r\n }\r\n }\r\n\r\n const altText = (formData.get('altText') as string | null) || undefined;\r\n const metadata = parseJsonRecord(formData.get('metadata') as string | null);\r\n\r\n return {\r\n file,\r\n uploadOptions: {\r\n preset,\r\n folder,\r\n bucket,\r\n altText,\r\n customFilename,\r\n ...(customFilename ? { isClientFilename: true } : {}),\r\n outputFormat,\r\n quality,\r\n maxDimensions,\r\n metadata,\r\n signal: authCtx.request.signal,\r\n },\r\n };\r\n}\r\n","import { createDeleteHandler } from './deleteRoute';\r\nimport {\r\n checkAllowedOrigin,\r\n readBoundedFormData,\r\n resolveMaxBodyBytes,\r\n runAuthorize,\r\n} from './guards';\r\nimport type {\r\n AllowClientOverrides,\r\n AuthorizeContext,\r\n UploadErrorContext,\r\n UploadHttpHandlerOptions,\r\n} from './options';\r\nimport { parseUploadForm, peekUploadAuthContext } from './parseUploadForm';\r\nimport {\r\n handleUnexpectedError,\r\n isClientValidationError,\r\n jsonResponse,\r\n UploadValidationError,\r\n} from './responses';\r\n\r\nexport {\r\n type AllowClientOverrides,\r\n type AuthorizeContext,\r\n isClientValidationError,\r\n type UploadErrorContext,\r\n type UploadHttpHandlerOptions,\r\n UploadValidationError,\r\n};\r\n\r\n/**\r\n * Standard Web Fetch (`Request` -> `Response`) upload & delete route handlers.\r\n * Works across Next.js App Router, Remix, React Router, SvelteKit, Astro, Hono, and Node Fetch servers.\r\n */\r\nexport function createUploadHttpHandler<TPreset extends string = string>(\r\n options: UploadHttpHandlerOptions<TPreset>,\r\n) {\r\n const { uploader, authorize, allowedOrigins, onError } = options;\r\n const maxBodyBytes = resolveMaxBodyBytes(options);\r\n\r\n async function POST(request: Request): Promise<Response> {\r\n try {\r\n const originError = checkAllowedOrigin(request, allowedOrigins);\r\n if (originError) return originError;\r\n\r\n const { formData, earlyErrorResponse } = await readBoundedFormData(\r\n request,\r\n maxBodyBytes,\r\n );\r\n if (earlyErrorResponse) return earlyErrorResponse;\r\n\r\n const authCtx = peekUploadAuthContext(formData, request, options);\r\n const authError = await runAuthorize(authorize, authCtx);\r\n if (authError) return authError;\r\n\r\n const parsed = parseUploadForm(formData, authCtx, options);\r\n if (parsed.errorResponse) return parsed.errorResponse;\r\n\r\n const result = await uploader.uploadImage(\r\n parsed.file!,\r\n parsed.uploadOptions,\r\n );\r\n\r\n return jsonResponse(result, 200);\r\n } catch (error) {\r\n return handleUnexpectedError(\r\n error,\r\n { action: 'upload', request },\r\n onError,\r\n );\r\n }\r\n }\r\n\r\n const DELETE = createDeleteHandler(options);\r\n\r\n return { POST, DELETE };\r\n}\r\n\r\nexport const createUploadHandler = createUploadHttpHandler;\r\n"],"mappings":"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","names":[]}
@@ -142,4 +142,4 @@ function createMemoryStorageAdapter(options = {}) {
142
142
 
143
143
 
144
144
  exports.toPaginatedListResult = toPaginatedListResult; exports.validateStorageMetadata = validateStorageMetadata; exports.createStorageAdapter = createStorageAdapter; exports.createMemoryStorageAdapter = createMemoryStorageAdapter;
145
- //# sourceMappingURL=chunk-YRXXQUDE.cjs.map
145
+ //# sourceMappingURL=chunk-LOSVFO56.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["e:\\Personal-Projects\\image-upload-kit\\dist\\chunk-LOSVFO56.cjs"],"names":[],"mappings":"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","file":"E:\\Personal-Projects\\image-upload-kit\\dist\\chunk-LOSVFO56.cjs","sourcesContent":[null]}
@@ -291,4 +291,4 @@ var blurService = new BlurService();
291
291
 
292
292
 
293
293
  exports.LRUCache = LRUCache; exports.DEFAULT_CDN_PATTERNS = DEFAULT_CDN_PATTERNS; exports.normalizeImagePath = normalizeImagePath; exports.DEFAULT_PLACEHOLDERS = DEFAULT_PLACEHOLDERS; exports.BlurService = BlurService; exports.createBlurService = createBlurService; exports.blurService = blurService;
294
- //# sourceMappingURL=chunk-WISG74VL.cjs.map
294
+ //# sourceMappingURL=chunk-MBQJ6NVJ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["e:\\Personal-Projects\\image-upload-kit\\dist\\chunk-MBQJ6NVJ.cjs"],"names":[],"mappings":"AAAA;AACA,IAAI,SAAS,EAAE,MAAM;AACrB,EAAE;AACF,EAAE;AACF,EAAE,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE;AAC7B,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC;AACvC,IAAI,IAAI,CAAC,MAAM,kBAAkB,IAAI,GAAG,CAAC,CAAC;AAC1C,EAAE;AACF,EAAE,GAAG,CAAC,GAAG,EAAE;AACX,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,CAAC;AAC3C,IAAI,MAAM,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;AACrC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;AAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;AAC9B,IAAI,OAAO,KAAK;AAChB,EAAE;AACF,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE;AAClB,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;AAC5B,IAAI;AACJ,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE;AACzC,MAAM,MAAM,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;AACrD,MAAM,GAAG,CAAC,SAAS,IAAI,KAAK,CAAC,EAAE;AAC/B,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;AACnC,MAAM;AACN,IAAI;AACJ,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;AAC9B,EAAE;AACF,EAAE,GAAG,CAAC,GAAG,EAAE;AACX,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;AAC9B,EAAE;AACF,EAAE,KAAK,CAAC,EAAE;AACV,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACtB,EAAE;AACF,EAAE,IAAI,IAAI,CAAC,EAAE;AACb,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI;AAC1B,EAAE;AACF,CAAC;AACD;AACA;AACA,IAAI,qBAAqB,EAAE;AAC3B,EAAE,8EAA8E;AAChF,EAAE,mCAAmC;AACrC,EAAE,0CAA0C;AAC5C,EAAE,2CAA2C;AAC7C,EAAE;AACF,CAAC;AACD,SAAS,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE;AACpD,EAAE,MAAM,aAAa,EAAE,QAAQ;AAC/B,EAAE,IAAI,eAAe,EAAE,QAAQ;AAC/B,EAAE,IAAI,WAAW,EAAE,KAAK;AACxB,EAAE,IAAI;AACN,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;AACtE,MAAM,OAAO;AACb,QAAQ,cAAc,EAAE,QAAQ;AAChC,QAAQ,UAAU,EAAE,KAAK;AACzB,QAAQ;AACR,MAAM,CAAC;AACP,IAAI;AACJ,IAAI,MAAM,SAAS,EAAE,OAAO,CAAC,YAAY,GAAG,oBAAoB;AAChE,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;AAC3E,MAAM,MAAM,IAAI,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC;AACnC,MAAM,WAAW,EAAE,IAAI;AACvB,MAAM,MAAM,gBAAgB,EAAE,CAAC,EAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"E:\\Personal-Projects\\image-upload-kit\\dist\\chunk-MBQJ6NVJ.cjs","sourcesContent":[null]}
@@ -142,4 +142,4 @@ export {
142
142
  createStorageAdapter,
143
143
  createMemoryStorageAdapter
144
144
  };
145
- //# sourceMappingURL=chunk-CV23O4YU.js.map
145
+ //# sourceMappingURL=chunk-MHGQEBPW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/storage/types.ts","../src/storage/memoryAdapter.ts"],"sourcesContent":["import type { ImageUploadRecord } from '../types';\r\n\r\nexport interface StorageUploadParams {\r\n bucket: string;\r\n path: string;\r\n data: Buffer | Uint8Array;\r\n contentType: string;\r\n upsert?: boolean;\r\n cacheControl?: string;\r\n contentHash?: string;\r\n metadata?: Record<string, string>;\r\n}\r\n\r\nexport interface StorageUploadResult {\r\n bucket: string;\r\n path: string;\r\n url: string;\r\n}\r\n\r\nexport interface StorageFileEntry {\r\n name: string;\r\n id?: string;\r\n createdAt?: string;\r\n size?: number;\r\n}\r\n\r\nexport interface StorageListOptions {\r\n cursor?: string;\r\n limit?: number;\r\n}\r\n\r\nexport type StoragePaginatedListResult = StorageFileEntry[] & {\r\n items: StorageFileEntry[];\r\n nextCursor?: string;\r\n};\r\n\r\nexport type StorageUploadOptions = StorageUploadParams;\r\nexport type StorageFileMetadata = StorageFileEntry;\r\nexport type StorageListResult = StoragePaginatedListResult;\r\n\r\nexport interface StorageAdapter {\r\n /**\r\n * Upload optimized image bytes to your storage backend and return its public URL.\r\n */\r\n upload(params: StorageUploadParams): Promise<StorageUploadResult>;\r\n\r\n /**\r\n * Delete an image from your storage backend by bucket and relative path.\r\n */\r\n delete(bucket: string, path: string): Promise<void>;\r\n\r\n /**\r\n * Optional: Check whether an object exists at the given bucket and relative path.\r\n */\r\n exists?(bucket: string, path: string): Promise<boolean>;\r\n\r\n /**\r\n * Optional: Resolve a public URL for a bucket and path.\r\n */\r\n getPublicUrl?(bucket: string, path: string): string | Promise<string>;\r\n\r\n /**\r\n * Optional: List files inside a bucket/folder (supports optional cursor/limit pagination).\r\n */\r\n list?(\r\n bucket: string,\r\n folder?: string,\r\n options?: StorageListOptions,\r\n ): Promise<StoragePaginatedListResult>;\r\n\r\n /**\r\n * Optional: Delete an asset directly from its public URL.\r\n */\r\n deleteByUrl?(url: string): Promise<boolean>;\r\n\r\n /**\r\n * Optional: Parse a public storage URL into its bucket and relative path.\r\n */\r\n parseUrl?(url: string): { bucket?: string; path: string } | null;\r\n}\r\n\r\nexport type UploadRecordHook = (\r\n record: ImageUploadRecord,\r\n) => void | Promise<void>;\r\n\r\n/**\r\n * Attaches non-enumerable `.items` and `.nextCursor` properties to a `StorageFileEntry[]`\r\n * array so both array callers (`entries.map(...)`) and paginated destructuring callers\r\n * (`const { items, nextCursor } = await adapter.list(...)`) work seamlessly.\r\n */\r\nexport function toPaginatedListResult(\r\n entries: StorageFileEntry[],\r\n nextCursor?: string,\r\n): StoragePaginatedListResult {\r\n const result = entries as StoragePaginatedListResult;\r\n Object.defineProperties(result, {\r\n items: {\r\n value: entries,\r\n enumerable: false,\r\n configurable: true,\r\n },\r\n nextCursor: {\r\n value: nextCursor,\r\n enumerable: false,\r\n configurable: true,\r\n },\r\n });\r\n return result;\r\n}\r\n\r\nconst PRINTABLE_ASCII_REGEX = /^[\\x20-\\x7E]*$/;\r\nconst MAX_METADATA_BYTES = 2048;\r\n\r\n/**\r\n * Validates that storage metadata keys and values contain only printable ASCII\r\n * characters (preventing HTTP header/CRLF injection) and do not exceed 2 KB total.\r\n */\r\nexport function validateStorageMetadata(\r\n metadata?: Record<string, string>,\r\n): void {\r\n if (!metadata) return;\r\n let totalBytes = 0;\r\n\r\n for (const [key, value] of Object.entries(metadata)) {\r\n if (\r\n !key ||\r\n typeof value !== 'string' ||\r\n !PRINTABLE_ASCII_REGEX.test(key) ||\r\n !PRINTABLE_ASCII_REGEX.test(value)\r\n ) {\r\n const err = new Error(\r\n 'Invalid storage metadata: keys and values must contain printable ASCII characters only',\r\n ) as Error & { status?: number };\r\n err.status = 400;\r\n throw err;\r\n }\r\n totalBytes += key.length + value.length;\r\n if (totalBytes > MAX_METADATA_BYTES) {\r\n const err = new Error(\r\n `Storage metadata exceeds maximum size of ${MAX_METADATA_BYTES} bytes`,\r\n ) as Error & { status?: number };\r\n err.status = 400;\r\n throw err;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Type-safe helper for authoring a custom StorageAdapter (S3, R2, Vercel Blob, Firebase, etc.).\r\n */\r\nexport function createStorageAdapter(adapter: StorageAdapter): StorageAdapter {\r\n return adapter;\r\n}\r\n","import {\r\n type StorageAdapter,\r\n type StorageFileEntry,\r\n type StorageListOptions,\r\n type StoragePaginatedListResult,\r\n type StorageUploadParams,\r\n type StorageUploadResult,\r\n toPaginatedListResult,\r\n} from './types';\r\n\r\nexport interface StoredMemoryObject {\r\n bucket: string;\r\n path: string;\r\n data: Uint8Array;\r\n contentType: string;\r\n createdAt: string;\r\n metadata?: Record<string, string>;\r\n}\r\n\r\nexport interface MemoryStorageAdapter extends StorageAdapter {\r\n exists(bucket: string, path: string): Promise<boolean>;\r\n getPublicUrl(bucket: string, path: string): string;\r\n list(\r\n bucket: string,\r\n folder?: string,\r\n options?: StorageListOptions,\r\n ): Promise<StoragePaginatedListResult>;\r\n deleteByUrl(url: string): Promise<boolean>;\r\n getObject(bucket: string, path: string): StoredMemoryObject | undefined;\r\n clear(): void;\r\n readonly size: number;\r\n}\r\n\r\nexport interface MemoryStorageOptions {\r\n baseUrl?: string;\r\n}\r\n\r\nexport function createMemoryStorageAdapter(\r\n options: MemoryStorageOptions = {},\r\n): MemoryStorageAdapter {\r\n const baseUrl = (options.baseUrl || 'https://memory.local/uploads').replace(\r\n /\\/+$/,\r\n '',\r\n );\r\n const store = new Map<string, StoredMemoryObject>();\r\n\r\n const toKey = (bucket: string, path: string) =>\r\n `${bucket}::${path.replace(/^\\/+/, '')}`;\r\n\r\n const getPublicUrl = (bucket: string, path: string): string => {\r\n const cleanPath = path.replace(/^\\/+/, '');\r\n return `${baseUrl}/${bucket}/${cleanPath}`;\r\n };\r\n\r\n return {\r\n async upload(params: StorageUploadParams): Promise<StorageUploadResult> {\r\n const cleanPath = params.path.replace(/^\\/+/, '');\r\n const key = toKey(params.bucket, cleanPath);\r\n\r\n if (params.upsert === false && store.has(key)) {\r\n const existsErr = new Error(\r\n `Object already exists at ${params.bucket}/${cleanPath}`,\r\n ) as Error & { code?: string };\r\n existsErr.code = 'EEXIST';\r\n throw existsErr;\r\n }\r\n\r\n store.set(key, {\r\n bucket: params.bucket,\r\n path: cleanPath,\r\n data: new Uint8Array(params.data),\r\n contentType: params.contentType,\r\n createdAt: new Date().toISOString(),\r\n metadata: params.metadata,\r\n });\r\n\r\n return {\r\n bucket: params.bucket,\r\n path: cleanPath,\r\n url: getPublicUrl(params.bucket, cleanPath),\r\n };\r\n },\r\n\r\n async delete(bucket: string, path: string): Promise<void> {\r\n const key = toKey(bucket, path);\r\n store.delete(key);\r\n },\r\n\r\n async exists(bucket: string, path: string): Promise<boolean> {\r\n return store.has(toKey(bucket, path));\r\n },\r\n\r\n getPublicUrl,\r\n\r\n async list(\r\n bucket: string,\r\n folder?: string,\r\n listOptions?: StorageListOptions,\r\n ): Promise<StoragePaginatedListResult> {\r\n const cleanFolder = folder ? folder.replace(/^\\/+|\\/+$/g, '') : '';\r\n const entries: StorageFileEntry[] = [];\r\n\r\n for (const obj of store.values()) {\r\n if (obj.bucket !== bucket) continue;\r\n if (cleanFolder && !obj.path.startsWith(`${cleanFolder}/`)) continue;\r\n const name = cleanFolder\r\n ? obj.path.slice(cleanFolder.length + 1)\r\n : obj.path;\r\n entries.push({\r\n name,\r\n id: `${obj.bucket}/${obj.path}`,\r\n createdAt: obj.createdAt,\r\n size: obj.data.byteLength,\r\n });\r\n }\r\n\r\n const offset = listOptions?.cursor ? Number(listOptions.cursor) || 0 : 0;\r\n const limit = listOptions?.limit ?? entries.length;\r\n const sliced =\r\n listOptions?.limit !== undefined || offset > 0\r\n ? entries.slice(offset, offset + limit)\r\n : entries;\r\n const nextCursor =\r\n listOptions?.limit !== undefined && offset + sliced.length < entries.length\r\n ? String(offset + sliced.length)\r\n : undefined;\r\n\r\n return toPaginatedListResult(sliced, nextCursor);\r\n },\r\n\r\n async deleteByUrl(url: string): Promise<boolean> {\r\n const parsed = this.parseUrl?.(url);\r\n if (!parsed || !parsed.bucket) return false;\r\n const key = toKey(parsed.bucket, parsed.path);\r\n return store.delete(key);\r\n },\r\n\r\n parseUrl(url: string): { bucket?: string; path: string } | null {\r\n const prefix = `${baseUrl}/`;\r\n if (!url || !url.startsWith(prefix)) return null;\r\n const cleanUrl = url.split(/[?#]/)[0];\r\n const rest = cleanUrl.slice(prefix.length);\r\n const slashIdx = rest.indexOf('/');\r\n if (slashIdx <= 0 || slashIdx === rest.length - 1) return null;\r\n const bucket = rest.slice(0, slashIdx);\r\n const filePath = rest.slice(slashIdx + 1);\r\n return { bucket, path: filePath };\r\n },\r\n\r\n getObject(bucket: string, path: string): StoredMemoryObject | undefined {\r\n return store.get(toKey(bucket, path));\r\n },\r\n\r\n clear(): void {\r\n store.clear();\r\n },\r\n\r\n get size(): number {\r\n return store.size;\r\n },\r\n };\r\n}\r\n"],"mappings":"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","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/image-upload-kit/image-upload-kit/dist/chunk-QHU7FUO4.cjs","../src/storage/urlParser.ts"],"names":[],"mappings":"AAAA;ACOO,IAAM,8BAAA,EAAgC,4BAAA;AAEtC,SAAS,qBAAA,CACd,GAAA,EACA,aAAA,EAAuB,6BAAA,EACG;AAC1B,EAAA,GAAA,CAAI,CAAC,GAAA,EAAK,OAAO,IAAA;AAEjB,EAAA,IAAI;AACF,IAAA,MAAM,OAAA,EAAS,IAAI,GAAA,CAAI,GAAA,EAAK,kBAAkB,CAAA;AAC9C,IAAA,MAAM,SAAA,EAAW,MAAA,CAAO,QAAA;AACxB,IAAA,MAAM,YAAA,EAAc,QAAA,CAAS,OAAA,CAAQ,YAAY,CAAA;AAEjD,IAAA,GAAA,CAAI,YAAA,IAAgB,CAAA,CAAA,EAAI;AACtB,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAM,aAAA,EAAe,QAAA,CAClB,KAAA,CAAM,YAAA,EAAc,YAAA,CAAa,MAAM,CAAA,CACvC,OAAA,CAAQ,MAAA,EAAQ,EAAE,CAAA;AAErB,IAAA,MAAM,SAAA,EAAW,YAAA,CAAa,KAAA,CAAM,GAAG,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA;AACvD,IAAA,GAAA,CAAI,QAAA,CAAS,OAAA,EAAS,CAAA,EAAG;AACvB,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAM,CAAC,MAAA,EAAQ,GAAG,SAAS,EAAA,EAAI,QAAA;AAC/B,IAAA,MAAM,SAAA,EAAW,SAAA,CAAU,IAAA,CAAK,GAAG,CAAA;AACnC,IAAA,MAAM,SAAA,EAAW,SAAA,CAAU,SAAA,CAAU,OAAA,EAAS,CAAC,CAAA;AAC/C,IAAA,MAAM,aAAA,EAAe,QAAA,CAAS,WAAA,CAAY,GAAG,CAAA;AAC7C,IAAA,MAAM,UAAA,EAAY,aAAA,GAAgB,EAAA,EAAI,QAAA,CAAS,KAAA,CAAM,YAAY,EAAA,EAAI,IAAA;AAErE,IAAA,OAAO;AAAA,MACL,MAAA;AAAA,MACA,IAAA,EAAM,QAAA;AAAA,MACN,QAAA;AAAA,MACA;AAAA,IACF,CAAA;AAAA,EACF,EAAA,UAAQ;AACN,IAAA,OAAO,IAAA;AAAA,EACT;AACF;ADjBA;AACA;AACE;AACA;AACF,6HAAC","file":"/home/runner/work/image-upload-kit/image-upload-kit/dist/chunk-QHU7FUO4.cjs","sourcesContent":[null,"export interface PublicStorageInfo {\n bucket: string;\n path: string;\n filename: string;\n extension: string | null;\n}\n\nexport const DEFAULT_PUBLIC_STORAGE_PREFIX = '/storage/v1/object/public/';\n\nexport function parsePublicStorageUrl(\n url?: string | null,\n publicPrefix: string = DEFAULT_PUBLIC_STORAGE_PREFIX,\n): PublicStorageInfo | null {\n if (!url) return null;\n\n try {\n const parsed = new URL(url, 'http://localhost');\n const pathname = parsed.pathname;\n const prefixIndex = pathname.indexOf(publicPrefix);\n\n if (prefixIndex === -1) {\n return null;\n }\n\n const relativePath = pathname\n .slice(prefixIndex + publicPrefix.length)\n .replace(/^\\/+/, '');\n\n const segments = relativePath.split('/').filter(Boolean);\n if (segments.length < 2) {\n return null;\n }\n\n const [bucket, ...pathParts] = segments;\n const filePath = pathParts.join('/');\n const filename = pathParts[pathParts.length - 1];\n const lastDotIndex = filename.lastIndexOf('.');\n const extension = lastDotIndex >= 0 ? filename.slice(lastDotIndex) : null;\n\n return {\n bucket,\n path: filePath,\n filename,\n extension,\n };\n } catch {\n return null;\n }\n}\n"]}
1
+ {"version":3,"sources":["e:\\Personal-Projects\\image-upload-kit\\dist\\chunk-QHU7FUO4.cjs"],"names":[],"mappings":"AAAA;AACA,IAAI,8BAA8B,EAAE,4BAA4B;AAChE,SAAS,qBAAqB,CAAC,GAAG,EAAE,aAAa,EAAE,6BAA6B,EAAE;AAClF,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,IAAI;AACvB,EAAE,IAAI;AACN,IAAI,MAAM,OAAO,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC;AACnD,IAAI,MAAM,SAAS,EAAE,MAAM,CAAC,QAAQ;AACpC,IAAI,MAAM,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC;AACtD,IAAI,GAAG,CAAC,YAAY,IAAI,CAAC,CAAC,EAAE;AAC5B,MAAM,OAAO,IAAI;AACjB,IAAI;AACJ,IAAI,MAAM,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;AAC9F,IAAI,MAAM,SAAS,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AAC5D,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE;AAC7B,MAAM,OAAO,IAAI;AACjB,IAAI;AACJ,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,SAAS,EAAE,EAAE,QAAQ;AAC3C,IAAI,MAAM,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;AACxC,IAAI,MAAM,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;AACpD,IAAI,MAAM,aAAa,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC;AAClD,IAAI,MAAM,UAAU,EAAE,aAAa,GAAG,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,IAAI;AAC7E,IAAI,OAAO;AACX,MAAM,MAAM;AACZ,MAAM,IAAI,EAAE,QAAQ;AACpB,MAAM,QAAQ;AACd,MAAM;AACN,IAAI,CAAC;AACL,EAAE,EAAE,UAAM;AACV,IAAI,OAAO,IAAI;AACf,EAAE;AACF;AACA;AACA;AACE;AACA;AACF,6HAAC","file":"E:\\Personal-Projects\\image-upload-kit\\dist\\chunk-QHU7FUO4.cjs","sourcesContent":[null]}
@@ -3,14 +3,14 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkKJVYWKIGcjs = require('./chunk-KJVYWKIG.cjs');
6
+ var _chunkDFCSN3X7cjs = require('./chunk-DFCSN3X7.cjs');
7
7
 
8
8
 
9
9
 
10
10
 
11
11
 
12
12
 
13
- var _chunkNEDBIIE3cjs = require('./chunk-NEDBIIE3.cjs');
13
+ var _chunk34L4TEE3cjs = require('./chunk-34L4TEE3.cjs');
14
14
 
15
15
  // src/react/hooks/useClipboardPaste.ts
16
16
  var _react = require('react');
@@ -653,7 +653,7 @@ function buildSingleImagePayload(params, overrides = {}) {
653
653
  const base = uploadedData ? { ...uploadedData } : objVal ? { ...objVal } : typeof value === "string" && value.trim() ? {
654
654
  url: value,
655
655
  blurDataUrl: "",
656
- blurColor: _chunkNEDBIIE3cjs.DEFAULT_BLUR_COLOR,
656
+ blurColor: _chunk34L4TEE3cjs.DEFAULT_BLUR_COLOR,
657
657
  altText: "",
658
658
  width: 0,
659
659
  height: 0,
@@ -668,7 +668,7 @@ function buildSingleImagePayload(params, overrides = {}) {
668
668
  ...overrides,
669
669
  url: (_nullishCoalesce(overrides.url, () => ( base.url))) || preview || "",
670
670
  altText: _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(overrides.altText, () => ( altText)), () => ( base.altText)), () => ( "")),
671
- blurColor: _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(overrides.blurColor, () => ( blurColor)), () => ( base.blurColor)), () => ( _chunkNEDBIIE3cjs.DEFAULT_BLUR_COLOR)),
671
+ blurColor: _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(overrides.blurColor, () => ( blurColor)), () => ( base.blurColor)), () => ( _chunk34L4TEE3cjs.DEFAULT_BLUR_COLOR)),
672
672
  blurDataUrl: _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(overrides.blurDataUrl, () => ( base.blurDataUrl)), () => ( blurDataUrlState)), () => ( ""))
673
673
  };
674
674
  }
@@ -690,11 +690,11 @@ function serializeSingleFormValue(params) {
690
690
  const payload = currentImageData ? {
691
691
  ...currentImageData,
692
692
  altText: altText || currentImageData.altText || "",
693
- blurColor: blurColor || currentImageData.blurColor || _chunkNEDBIIE3cjs.DEFAULT_BLUR_COLOR
693
+ blurColor: blurColor || currentImageData.blurColor || _chunk34L4TEE3cjs.DEFAULT_BLUR_COLOR
694
694
  } : {
695
695
  url: resolvedUrl,
696
696
  altText,
697
- blurColor: blurColor || _chunkNEDBIIE3cjs.DEFAULT_BLUR_COLOR,
697
+ blurColor: blurColor || _chunk34L4TEE3cjs.DEFAULT_BLUR_COLOR,
698
698
  blurDataUrl: blurDataUrlState
699
699
  };
700
700
  return JSON.stringify(payload);
@@ -1099,7 +1099,7 @@ function useImageUpload({
1099
1099
  if (!isMountedRef.current || controller.signal.aborted) return;
1100
1100
  const clamped = Math.max(entry.progress, Math.min(maxCap, nextPct));
1101
1101
  entry.progress = clamped;
1102
- const msg = _chunkKJVYWKIGcjs.getStatusMessage.call(void 0, clamped, uploadLocale);
1102
+ const msg = _chunkDFCSN3X7cjs.getStatusMessage.call(void 0, clamped, uploadLocale);
1103
1103
  entry.message = msg;
1104
1104
  setProgress(clamped);
1105
1105
  setUploadMessage(msg);
@@ -1145,7 +1145,7 @@ function useImageUpload({
1145
1145
  if (!isMountedRef.current || controller.signal.aborted) return null;
1146
1146
  entry.progress = 100;
1147
1147
  setProgress(100);
1148
- const successMsg = _chunkKJVYWKIGcjs.createSuccessMessage.call(void 0, originalSize, data.size, false, uploadLocale);
1148
+ const successMsg = _chunkDFCSN3X7cjs.createSuccessMessage.call(void 0, originalSize, data.size, false, uploadLocale);
1149
1149
  setUploadMessage(successMsg);
1150
1150
  _optionalChain([onProgress, 'optionalCall', _49 => _49(100, successMsg, file, uploadId)]);
1151
1151
  safeSetTimeout(() => {
@@ -1235,14 +1235,14 @@ function useSingleImageState(props) {
1235
1235
  const locale = normalizeUploadLocale(propLocale || ctx.locale);
1236
1236
  const ui = resolveTranslations(locale, translations || ctx.translations);
1237
1237
  const requireAltText = _nullishCoalesce(propRequireAltText, () => ( ctx.requireAltText));
1238
- const standardPreset = preset ? _chunkNEDBIIE3cjs.STANDARD_PRESETS[preset] : void 0;
1238
+ const standardPreset = preset ? _chunk34L4TEE3cjs.STANDARD_PRESETS[preset] : void 0;
1239
1239
  const maxSizeMB = _nullishCoalesce(_nullishCoalesce(propMaxSizeMB, () => ( _optionalChain([standardPreset, 'optionalAccess', _52 => _52.maxSizeMB]))), () => ( 10));
1240
1240
  const requiresManualCommit = Boolean(isOpen);
1241
1241
  const cache = _react.useMemo.call(void 0, () => createUploadSessionCache(ctx.storageKeyPrefix || "iuk"), [ctx.storageKeyPrefix]);
1242
1242
  const objVal = typeof value === "object" && value ? value : null;
1243
1243
  const initPreview = typeof value === "string" ? value : _optionalChain([objVal, 'optionalAccess', _53 => _53.url]) || null;
1244
1244
  const initAlt = _optionalChain([objVal, 'optionalAccess', _54 => _54.altText]) || propInitialAltText || "";
1245
- const initColor = _optionalChain([objVal, 'optionalAccess', _55 => _55.blurColor]) || _chunkNEDBIIE3cjs.DEFAULT_BLUR_COLOR;
1245
+ const initColor = _optionalChain([objVal, 'optionalAccess', _55 => _55.blurColor]) || _chunk34L4TEE3cjs.DEFAULT_BLUR_COLOR;
1246
1246
  const [preview, setPreview] = _react.useState.call(void 0, initPreview);
1247
1247
  const previewRef = _react.useRef.call(void 0, initPreview);
1248
1248
  previewRef.current = preview;
@@ -1266,8 +1266,8 @@ function useSingleImageState(props) {
1266
1266
  const resetColorAndErrorState = () => {
1267
1267
  setValidationError("");
1268
1268
  setHasColorOverride(false);
1269
- setBlurColor(_chunkNEDBIIE3cjs.DEFAULT_BLUR_COLOR);
1270
- setDetectedBlurColor(_chunkNEDBIIE3cjs.DEFAULT_BLUR_COLOR);
1269
+ setBlurColor(_chunk34L4TEE3cjs.DEFAULT_BLUR_COLOR);
1270
+ setDetectedBlurColor(_chunk34L4TEE3cjs.DEFAULT_BLUR_COLOR);
1271
1271
  setIsBlurModalOpen(false);
1272
1272
  };
1273
1273
  const { createPreview, revokePreview } = useFilePreview({ errorLabel: ui.failedCreatePreview });
@@ -1279,7 +1279,7 @@ function useSingleImageState(props) {
1279
1279
  outputFormat,
1280
1280
  maxDimensions,
1281
1281
  customFilename,
1282
- quality: _chunkKJVYWKIGcjs.QUALITY_PRESETS[qualityLevel].value,
1282
+ quality: _chunkDFCSN3X7cjs.QUALITY_PRESETS[qualityLevel].value,
1283
1283
  endpoint,
1284
1284
  uploader,
1285
1285
  headers,
@@ -1290,7 +1290,7 @@ function useSingleImageState(props) {
1290
1290
  if (previewRef.current && previewRef.current !== data.url) revokePreview(previewRef.current);
1291
1291
  setPreview(data.url);
1292
1292
  setSizeInfo({ original: data.originalSize || 0, optimized: data.size });
1293
- const normColor = data.blurColor || _chunkNEDBIIE3cjs.DEFAULT_BLUR_COLOR;
1293
+ const normColor = data.blurColor || _chunk34L4TEE3cjs.DEFAULT_BLUR_COLOR;
1294
1294
  setBlurColor(normColor);
1295
1295
  setDetectedBlurColor(normColor);
1296
1296
  setHasColorOverride(false);
@@ -1322,14 +1322,14 @@ function useSingleImageState(props) {
1322
1322
  const rawAlt = _optionalChain([incomingObj, 'optionalAccess', _58 => _58.altText]) || propInitialAltText || "";
1323
1323
  const cachedAlt = cache.readAltMetaFor({ url: incomingObj ? incomingObj.url : nextPreview, contentHash: _nullishCoalesce(_optionalChain([incomingObj, 'optionalAccess', _59 => _59.contentHash]), () => ( null)) });
1324
1324
  const nextAlt = rawAlt.trim() === "" && nextPreview === preview && (lastAltRef.current.trim() !== "" || _optionalChain([cachedAlt, 'optionalAccess', _60 => _60.trim, 'call', _61 => _61()])) ? lastAltRef.current.trim() || cachedAlt || rawAlt : rawAlt;
1325
- const nextColor = _optionalChain([incomingObj, 'optionalAccess', _62 => _62.blurColor]) || _chunkNEDBIIE3cjs.DEFAULT_BLUR_COLOR;
1325
+ const nextColor = _optionalChain([incomingObj, 'optionalAccess', _62 => _62.blurColor]) || _chunk34L4TEE3cjs.DEFAULT_BLUR_COLOR;
1326
1326
  if (stripUrlCacheQuery(nextPreview) !== stripUrlCacheQuery(preview)) setPreview(nextPreview);
1327
1327
  if (nextAlt !== altText && (nextPreview !== preview || nextAlt.trim() !== "" || !altText.trim())) {
1328
1328
  setAltText(nextAlt);
1329
1329
  lastAltRef.current = nextAlt;
1330
1330
  }
1331
- const nextIsFallback = nextColor === _chunkNEDBIIE3cjs.DEFAULT_BLUR_COLOR;
1332
- if (nextColor !== blurColor && (nextPreview !== preview || !hasColorOverride && (!nextIsFallback || blurColor === _chunkNEDBIIE3cjs.DEFAULT_BLUR_COLOR))) {
1331
+ const nextIsFallback = nextColor === _chunk34L4TEE3cjs.DEFAULT_BLUR_COLOR;
1332
+ if (nextColor !== blurColor && (nextPreview !== preview || !hasColorOverride && (!nextIsFallback || blurColor === _chunk34L4TEE3cjs.DEFAULT_BLUR_COLOR))) {
1333
1333
  setBlurColor(nextColor);
1334
1334
  setDetectedBlurColor(nextColor);
1335
1335
  setHasColorOverride(false);
@@ -1344,7 +1344,7 @@ function useSingleImageState(props) {
1344
1344
  contentHash: _optionalChain([incomingObj, 'optionalAccess', _64 => _64.contentHash]) || _optionalChain([uploadedData, 'optionalAccess', _65 => _65.contentHash])
1345
1345
  });
1346
1346
  if (_optionalChain([cached, 'optionalAccess', _66 => _66.blurDataUrl]) && !nextBlurUrl) setBlurDataUrlState(cached.blurDataUrl);
1347
- if (_optionalChain([cached, 'optionalAccess', _67 => _67.blurColor]) && nextIsFallback && blurColor === _chunkNEDBIIE3cjs.DEFAULT_BLUR_COLOR) {
1347
+ if (_optionalChain([cached, 'optionalAccess', _67 => _67.blurColor]) && nextIsFallback && blurColor === _chunk34L4TEE3cjs.DEFAULT_BLUR_COLOR) {
1348
1348
  setBlurColor(cached.blurColor);
1349
1349
  setDetectedBlurColor(cached.blurColor);
1350
1350
  }
@@ -1370,7 +1370,7 @@ function useSingleImageState(props) {
1370
1370
  }
1371
1371
  };
1372
1372
  const applyBlurColor = (color, options = {}) => {
1373
- const normalized = _chunkNEDBIIE3cjs.normalizeColorInput.call(void 0, color);
1373
+ const normalized = _chunk34L4TEE3cjs.normalizeColorInput.call(void 0, color);
1374
1374
  if (!normalized) return;
1375
1375
  setBlurColor(normalized);
1376
1376
  setHasColorOverride(options.markOverride !== false);
@@ -1387,7 +1387,7 @@ function useSingleImageState(props) {
1387
1387
  abortAll();
1388
1388
  setSelectedFile(file);
1389
1389
  resetColorAndErrorState();
1390
- const err = _chunkNEDBIIE3cjs.validateImageFile.call(void 0, file, maxSizeMB, locale);
1390
+ const err = _chunk34L4TEE3cjs.validateImageFile.call(void 0, file, maxSizeMB, locale);
1391
1391
  if (err) {
1392
1392
  setValidationError(err);
1393
1393
  return;
@@ -1827,7 +1827,7 @@ function useMultiImageState(options) {
1827
1827
  const locale = normalizeUploadLocale(options.locale || ctx.locale);
1828
1828
  const ui = resolveTranslations(locale, options.translations || ctx.translations);
1829
1829
  const requireAltText = _nullishCoalesce(options.requireAltText, () => ( ctx.requireAltText));
1830
- const standardPreset = preset ? _chunkNEDBIIE3cjs.STANDARD_PRESETS[preset] : void 0;
1830
+ const standardPreset = preset ? _chunk34L4TEE3cjs.STANDARD_PRESETS[preset] : void 0;
1831
1831
  const maxSizeMB = _nullishCoalesce(_nullishCoalesce(options.maxSizeMB, () => ( _optionalChain([standardPreset, 'optionalAccess', _124 => _124.maxSizeMB]))), () => ( 10));
1832
1832
  const requiresManualCommit = Boolean(isOpen);
1833
1833
  const [previews, setPreviews] = _react.useState.call(void 0, () => value.map((img) => mapUploadedToPreview(img)));
@@ -1881,7 +1881,7 @@ function useMultiImageState(options) {
1881
1881
  bucket: options.bucket,
1882
1882
  metadata: options.metadata,
1883
1883
  outputFormat: options.outputFormat,
1884
- quality: _chunkKJVYWKIGcjs.QUALITY_PRESETS[qualityLevel].value,
1884
+ quality: _chunkDFCSN3X7cjs.QUALITY_PRESETS[qualityLevel].value,
1885
1885
  maxDimensions: options.maxDimensions,
1886
1886
  customFilename: options.customFilename,
1887
1887
  endpoint: options.endpoint,
@@ -1943,7 +1943,7 @@ function useMultiImageState(options) {
1943
1943
  infoTimeoutRef.current = setTimeout(() => setInfoMessage(""), 5e3);
1944
1944
  }
1945
1945
  const activeCount = previewsRef.current.filter((p) => !p.error).length;
1946
- const validationResult = _chunkNEDBIIE3cjs.validateMultipleFiles.call(void 0, imageFiles, maxSizeMB, activeCount, maxImages, locale);
1946
+ const validationResult = _chunk34L4TEE3cjs.validateMultipleFiles.call(void 0, imageFiles, maxSizeMB, activeCount, maxImages, locale);
1947
1947
  if (validationResult) {
1948
1948
  setValidationError(validationResult);
1949
1949
  return;
@@ -2367,4 +2367,4 @@ function HeadlessMultiUpload(props) {
2367
2367
 
2368
2368
 
2369
2369
  exports.HIDDEN_INPUT_STYLE = HIDDEN_INPUT_STYLE; exports.cx = cx; exports.resolveSlotClass = resolveSlotClass; exports.resolveSlotStyle = resolveSlotStyle; exports.resolveUploadDataState = resolveUploadDataState; exports.arTranslations = arTranslations; exports.enTranslations = enTranslations; exports.DEFAULT_UPLOAD_TRANSLATIONS = DEFAULT_UPLOAD_TRANSLATIONS; exports.ARABIC_UPLOAD_TRANSLATIONS = ARABIC_UPLOAD_TRANSLATIONS; exports.normalizeUploadLocale = normalizeUploadLocale; exports.selectPluralCategory = selectPluralCategory; exports.formatUploadingCount = formatUploadingCount; exports.formatNeedsAltMessage = formatNeedsAltMessage; exports.formatSkippedImagesMessage = formatSkippedImagesMessage; exports.uploadText = uploadText; exports.resolveTranslations = resolveTranslations; exports.ImageUploadProvider = ImageUploadProvider; exports.useImageUploadContext = useImageUploadContext; exports.extractClipboardImageFiles = extractClipboardImageFiles; exports.toFileListLike = toFileListLike; exports.useClipboardPaste = useClipboardPaste; exports.useDragAndDrop = useDragAndDrop; exports.useFilePreview = useFilePreview; exports.createUploadAbortError = createUploadAbortError; exports.isUploadAbortError = isUploadAbortError; exports.parseErrorPayload = parseErrorPayload; exports.buildUploadFormData = buildUploadFormData; exports.uploadViaXhr = uploadViaXhr; exports.useImageUpload = useImageUpload; exports.appendCacheBuster = appendCacheBuster; exports.useSingleImageState = useSingleImageState; exports.useSingleUpload = useSingleUpload; exports.useMultiImageState = useMultiImageState; exports.useMultiUpload = useMultiUpload; exports.HeadlessSingleUpload = HeadlessSingleUpload; exports.HeadlessMultiUpload = HeadlessMultiUpload;
2370
- //# sourceMappingURL=chunk-U2TWTEBY.cjs.map
2370
+ //# sourceMappingURL=chunk-TA5Y64JM.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["e:\\Personal-Projects\\image-upload-kit\\dist\\chunk-TA5Y64JM.cjs"],"names":[],"mappings":"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,IAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,oBAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,YAAA;AACA,UAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,oBAAA;AACA,IAAA;AACA,sBAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,wBAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,sBAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,oBAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,wBAAA;AACA,wBAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,sBAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,wBAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,wBAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,wBAAA;AACA,QAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,wBAAA;AACA,QAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,oBAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,sBAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,sBAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,sBAAA;AACA,MAAA;AACA,wBAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,sBAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,sBAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,sBAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,sBAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,sBAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,sBAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,sBAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,oBAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,oBAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,oBAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,sBAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,sBAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,sBAAA;AACA,MAAA;AACA,wBAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,sBAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,sBAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,sBAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,sBAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,sBAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,sBAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,sBAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"E:\\Personal-Projects\\image-upload-kit\\dist\\chunk-TA5Y64JM.cjs","sourcesContent":[null]}
@@ -132,4 +132,4 @@ export {
132
132
  extractImageUrls,
133
133
  decodeBlurHashToDataURL
134
134
  };
135
- //# sourceMappingURL=chunk-QQHZJKNA.js.map
135
+ //# sourceMappingURL=chunk-VYVZVUNI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/blur/blurDataUtils.ts"],"sourcesContent":["import { decode as decodeBlurHash, isBlurhashValid } from 'blurhash';\r\nimport type { BlurData, BlurImageSource } from './types';\r\n\r\nexport interface BlurPlaceholderStyle {\r\n backgroundColor: string;\r\n backgroundImage?: string;\r\n backgroundSize?: string;\r\n backgroundPosition?: string;\r\n backgroundRepeat?: string;\r\n filter?: string;\r\n transform?: string;\r\n}\r\n\r\nfunction formatCssUrl(rawUrl: string): string {\r\n const escaped = rawUrl\r\n .replace(/\\\\/g, '\\\\\\\\')\r\n .replace(/\"/g, '\\\\\"')\r\n .replace(/[\\r\\n]/g, '');\r\n return `url(\"${escaped}\")`;\r\n}\r\n\r\nexport function getBlurData(\r\n image: BlurImageSource | null | undefined,\r\n): BlurData {\r\n if (!image) {\r\n return {\r\n blurDataUrl: '',\r\n blurColor: '#E5E7EB',\r\n hasBlur: false,\r\n };\r\n }\r\n\r\n return {\r\n blurDataUrl: image.blurDataUrl || '',\r\n blurColor: image.blurColor || '#E5E7EB',\r\n ...(image.blurHash ? { blurHash: image.blurHash } : {}),\r\n hasBlur: Boolean(image.blurDataUrl || image.blurHash),\r\n };\r\n}\r\n\r\nexport function getImagePropsWithBlur(\r\n image: BlurImageSource | null | undefined,\r\n) {\r\n if (!image?.url) {\r\n return null;\r\n }\r\n\r\n const blurData = getBlurData(image);\r\n\r\n return {\r\n src: image.url,\r\n alt: image.altText || '',\r\n width: image.width || 1920,\r\n height: image.height || 1080,\r\n ...(blurData.blurDataUrl && {\r\n placeholder: 'blur' as const,\r\n blurDataURL: blurData.blurDataUrl,\r\n }),\r\n };\r\n}\r\n\r\nexport function getBackgroundPropsWithBlur(\r\n image: BlurImageSource | null | undefined,\r\n): BlurPlaceholderStyle {\r\n if (!image?.url) {\r\n return {\r\n backgroundColor: '#E5E7EB',\r\n };\r\n }\r\n\r\n const blurData = getBlurData(image);\r\n\r\n return {\r\n backgroundColor: blurData.blurColor,\r\n backgroundImage: formatCssUrl(image.url),\r\n backgroundSize: 'cover',\r\n backgroundPosition: 'center',\r\n backgroundRepeat: 'no-repeat',\r\n };\r\n}\r\n\r\nexport function getBlurPlaceholderStyle(\r\n image: BlurImageSource | null | undefined,\r\n): BlurPlaceholderStyle {\r\n const blurData = getBlurData(image);\r\n\r\n if (!blurData.blurDataUrl) {\r\n return {\r\n backgroundColor: blurData.blurColor,\r\n };\r\n }\r\n\r\n return {\r\n backgroundColor: blurData.blurColor,\r\n backgroundImage: formatCssUrl(blurData.blurDataUrl),\r\n backgroundSize: 'cover',\r\n backgroundPosition: 'center',\r\n filter: 'blur(20px)',\r\n transform: 'scale(1.1)',\r\n };\r\n}\r\n\r\nexport function hasBlurData(\r\n image: BlurImageSource | null | undefined,\r\n): boolean {\r\n return Boolean(image?.blurDataUrl || image?.blurColor || image?.blurHash);\r\n}\r\n\r\nexport function getBulkBlurData(\r\n images: Array<BlurImageSource | null | undefined>,\r\n): BlurData[] {\r\n return images.map(getBlurData);\r\n}\r\n\r\n/**\r\n * Builds a responsive `srcset` descriptor for the full-resolution image URL.\r\n * Never includes the low-resolution LQIP placeholder in `srcset` so browsers\r\n * cannot accidentally select the blurred placeholder as the final image.\r\n */\r\nexport function createSrcSetWithBlur(\r\n image: BlurImageSource | null | undefined,\r\n): string {\r\n if (!image?.url) return '';\r\n if (image.width && image.width > 0) {\r\n return `${image.url} ${image.width}w`;\r\n }\r\n return image.url;\r\n}\r\n\r\n/**\r\n * Preloads the target image URL in `document.head` via `<link rel=\"preload\" as=\"image\">`.\r\n * Does not set `imagesrcset` to the LQIP data URL and deduplicates existing preload links.\r\n */\r\nexport function preloadImageWithBlur(\r\n image: BlurImageSource | null | undefined,\r\n): void {\r\n if (!image?.url || typeof document === 'undefined' || !document.head) return;\r\n\r\n const existingLinks = document.head.querySelectorAll(\r\n 'link[rel=\"preload\"][as=\"image\"]',\r\n );\r\n for (let i = 0; i < existingLinks.length; i++) {\r\n const el = existingLinks[i] as HTMLLinkElement;\r\n if (el.getAttribute('href') === image.url || el.href === image.url) {\r\n return;\r\n }\r\n }\r\n\r\n const link = document.createElement('link');\r\n link.rel = 'preload';\r\n link.as = 'image';\r\n link.href = image.url;\r\n document.head.appendChild(link);\r\n}\r\n\r\nexport function extractImageUrls(\r\n image: BlurImageSource | null | undefined,\r\n): string[] {\r\n if (!image?.url) return [];\r\n return [image.url];\r\n}\r\n\r\n/**\r\n * Browser helper: Decodes a compact BlurHash string (e.g. \"LEHV6nWB2yk8pyo0adR*.7kCMdnj\")\r\n * into a `data:image/png;base64,...` URL using an offscreen `<canvas>`.\r\n */\r\nexport function decodeBlurHashToDataURL(\r\n hash: string,\r\n width: number = 32,\r\n height: number = 32,\r\n punch: number = 1,\r\n): string | null {\r\n if (!hash || typeof document === 'undefined') return null;\r\n const validation = isBlurhashValid(hash);\r\n if (!validation.result) return null;\r\n\r\n try {\r\n const pixels = decodeBlurHash(hash, width, height, punch);\r\n const canvas = document.createElement('canvas');\r\n canvas.width = width;\r\n canvas.height = height;\r\n const ctx = canvas.getContext('2d');\r\n if (!ctx) return null;\r\n const imageData = ctx.createImageData(width, height);\r\n imageData.data.set(pixels);\r\n ctx.putImageData(imageData, 0, 0);\r\n return canvas.toDataURL('image/png');\r\n } catch {\r\n return null;\r\n }\r\n}\r\n"],"mappings":";AAAA,SAAS,UAAU,gBAAgB,uBAAuB;AAa1D,SAAS,aAAa,QAAwB;AAC5C,QAAM,UAAU,OACb,QAAQ,OAAO,MAAM,EACrB,QAAQ,MAAM,KAAK,EACnB,QAAQ,WAAW,EAAE;AACxB,SAAO,QAAQ,OAAO;AACxB;AAEO,SAAS,YACd,OACU;AACV,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,MACL,aAAa;AAAA,MACb,WAAW;AAAA,MACX,SAAS;AAAA,IACX;AAAA,EACF;AAEA,SAAO;AAAA,IACL,aAAa,MAAM,eAAe;AAAA,IAClC,WAAW,MAAM,aAAa;AAAA,IAC9B,GAAI,MAAM,WAAW,EAAE,UAAU,MAAM,SAAS,IAAI,CAAC;AAAA,IACrD,SAAS,QAAQ,MAAM,eAAe,MAAM,QAAQ;AAAA,EACtD;AACF;AAEO,SAAS,sBACd,OACA;AACA,MAAI,CAAC,OAAO,KAAK;AACf,WAAO;AAAA,EACT;AAEA,QAAM,WAAW,YAAY,KAAK;AAElC,SAAO;AAAA,IACL,KAAK,MAAM;AAAA,IACX,KAAK,MAAM,WAAW;AAAA,IACtB,OAAO,MAAM,SAAS;AAAA,IACtB,QAAQ,MAAM,UAAU;AAAA,IACxB,GAAI,SAAS,eAAe;AAAA,MAC1B,aAAa;AAAA,MACb,aAAa,SAAS;AAAA,IACxB;AAAA,EACF;AACF;AAEO,SAAS,2BACd,OACsB;AACtB,MAAI,CAAC,OAAO,KAAK;AACf,WAAO;AAAA,MACL,iBAAiB;AAAA,IACnB;AAAA,EACF;AAEA,QAAM,WAAW,YAAY,KAAK;AAElC,SAAO;AAAA,IACL,iBAAiB,SAAS;AAAA,IAC1B,iBAAiB,aAAa,MAAM,GAAG;AAAA,IACvC,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,IACpB,kBAAkB;AAAA,EACpB;AACF;AAEO,SAAS,wBACd,OACsB;AACtB,QAAM,WAAW,YAAY,KAAK;AAElC,MAAI,CAAC,SAAS,aAAa;AACzB,WAAO;AAAA,MACL,iBAAiB,SAAS;AAAA,IAC5B;AAAA,EACF;AAEA,SAAO;AAAA,IACL,iBAAiB,SAAS;AAAA,IAC1B,iBAAiB,aAAa,SAAS,WAAW;AAAA,IAClD,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,IACpB,QAAQ;AAAA,IACR,WAAW;AAAA,EACb;AACF;AAEO,SAAS,YACd,OACS;AACT,SAAO,QAAQ,OAAO,eAAe,OAAO,aAAa,OAAO,QAAQ;AAC1E;AAEO,SAAS,gBACd,QACY;AACZ,SAAO,OAAO,IAAI,WAAW;AAC/B;AAOO,SAAS,qBACd,OACQ;AACR,MAAI,CAAC,OAAO,IAAK,QAAO;AACxB,MAAI,MAAM,SAAS,MAAM,QAAQ,GAAG;AAClC,WAAO,GAAG,MAAM,GAAG,IAAI,MAAM,KAAK;AAAA,EACpC;AACA,SAAO,MAAM;AACf;AAMO,SAAS,qBACd,OACM;AACN,MAAI,CAAC,OAAO,OAAO,OAAO,aAAa,eAAe,CAAC,SAAS,KAAM;AAEtE,QAAM,gBAAgB,SAAS,KAAK;AAAA,IAClC;AAAA,EACF;AACA,WAAS,IAAI,GAAG,IAAI,cAAc,QAAQ,KAAK;AAC7C,UAAM,KAAK,cAAc,CAAC;AAC1B,QAAI,GAAG,aAAa,MAAM,MAAM,MAAM,OAAO,GAAG,SAAS,MAAM,KAAK;AAClE;AAAA,IACF;AAAA,EACF;AAEA,QAAM,OAAO,SAAS,cAAc,MAAM;AAC1C,OAAK,MAAM;AACX,OAAK,KAAK;AACV,OAAK,OAAO,MAAM;AAClB,WAAS,KAAK,YAAY,IAAI;AAChC;AAEO,SAAS,iBACd,OACU;AACV,MAAI,CAAC,OAAO,IAAK,QAAO,CAAC;AACzB,SAAO,CAAC,MAAM,GAAG;AACnB;AAMO,SAAS,wBACd,MACA,QAAgB,IAChB,SAAiB,IACjB,QAAgB,GACD;AACf,MAAI,CAAC,QAAQ,OAAO,aAAa,YAAa,QAAO;AACrD,QAAM,aAAa,gBAAgB,IAAI;AACvC,MAAI,CAAC,WAAW,OAAQ,QAAO;AAE/B,MAAI;AACF,UAAM,SAAS,eAAe,MAAM,OAAO,QAAQ,KAAK;AACxD,UAAM,SAAS,SAAS,cAAc,QAAQ;AAC9C,WAAO,QAAQ;AACf,WAAO,SAAS;AAChB,UAAM,MAAM,OAAO,WAAW,IAAI;AAClC,QAAI,CAAC,IAAK,QAAO;AACjB,UAAM,YAAY,IAAI,gBAAgB,OAAO,MAAM;AACnD,cAAU,KAAK,IAAI,MAAM;AACzB,QAAI,aAAa,WAAW,GAAG,CAAC;AAChC,WAAO,OAAO,UAAU,WAAW;AAAA,EACrC,QAAQ;AACN,WAAO;AAAA,EACT;AACF;","names":[]}
@@ -511,4 +511,4 @@ var createUploadHandler = createUploadHttpHandler;
511
511
 
512
512
 
513
513
  exports.UploadValidationError = UploadValidationError; exports.isClientValidationError = isClientValidationError; exports.createUploadHttpHandler = createUploadHttpHandler; exports.createUploadHandler = createUploadHandler;
514
- //# sourceMappingURL=chunk-2OVNXHTN.cjs.map
514
+ //# sourceMappingURL=chunk-XKQMCY5Z.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["e:\\Personal-Projects\\image-upload-kit\\dist\\chunk-XKQMCY5Z.cjs"],"names":[],"mappings":"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AAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,YAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"E:\\Personal-Projects\\image-upload-kit\\dist\\chunk-XKQMCY5Z.cjs","sourcesContent":[null]}