@openuiai/next 16.2.0 → 16.2.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 (197) hide show
  1. package/dist/bin/next +2 -2
  2. package/dist/build/index.js +3 -3
  3. package/dist/build/webpack-config.js +2 -2
  4. package/dist/cache/cache-control.js +22 -0
  5. package/dist/cache/cache-control.js.map +1 -0
  6. package/dist/cache/clone-response.js +77 -0
  7. package/dist/cache/clone-response.js.map +1 -0
  8. package/dist/cache/dedupe-fetch.js +123 -0
  9. package/dist/cache/dedupe-fetch.js.map +1 -0
  10. package/dist/cache/lazy-result.js +46 -0
  11. package/dist/cache/lazy-result.js.map +1 -0
  12. package/dist/cache/lru-cache.js +177 -0
  13. package/dist/cache/lru-cache.js.map +1 -0
  14. package/dist/client/app-bootstrap.js +1 -1
  15. package/dist/client/index.js +1 -1
  16. package/dist/concurrency/batcher.js +65 -0
  17. package/dist/concurrency/batcher.js.map +1 -0
  18. package/dist/concurrency/coalesced-function.js +39 -0
  19. package/dist/concurrency/coalesced-function.js.map +1 -0
  20. package/dist/concurrency/scheduler.js +64 -0
  21. package/dist/concurrency/scheduler.js.map +1 -0
  22. package/dist/concurrency/wait.js +19 -0
  23. package/dist/concurrency/wait.js.map +1 -0
  24. package/dist/concurrency/with-promise-cache.js +24 -0
  25. package/dist/concurrency/with-promise-cache.js.map +1 -0
  26. package/dist/config/detect-typo.js +51 -0
  27. package/dist/config/detect-typo.js.map +1 -0
  28. package/dist/config/find-config.js +102 -0
  29. package/dist/config/find-config.js.map +1 -0
  30. package/dist/config/get-package-version.js +118 -0
  31. package/dist/config/get-package-version.js.map +1 -0
  32. package/dist/config/get-project-dir.js +51 -0
  33. package/dist/config/get-project-dir.js.map +1 -0
  34. package/dist/config/install-dependencies.js +40 -0
  35. package/dist/config/install-dependencies.js.map +1 -0
  36. package/dist/config/needs-experimental-react.js +16 -0
  37. package/dist/config/needs-experimental-react.js.map +1 -0
  38. package/dist/config/static-env.js +92 -0
  39. package/dist/config/static-env.js.map +1 -0
  40. package/dist/constants/constants.js +397 -0
  41. package/dist/constants/constants.js.map +1 -0
  42. package/dist/errors/compile-error.js +14 -0
  43. package/dist/errors/compile-error.js.map +1 -0
  44. package/dist/errors/error-source.js +36 -0
  45. package/dist/errors/error-source.js.map +1 -0
  46. package/dist/errors/error-telemetry-utils.js +42 -0
  47. package/dist/errors/error-telemetry-utils.js.map +1 -0
  48. package/dist/errors/fatal-error.js +14 -0
  49. package/dist/errors/fatal-error.js.map +1 -0
  50. package/dist/errors/format-server-error.js +74 -0
  51. package/dist/errors/format-server-error.js.map +1 -0
  52. package/dist/errors/invariant-error.js +18 -0
  53. package/dist/errors/invariant-error.js.map +1 -0
  54. package/dist/errors/is-error.js +65 -0
  55. package/dist/errors/is-error.js.map +1 -0
  56. package/dist/errors/no-fallback-error.js +18 -0
  57. package/dist/errors/no-fallback-error.js.map +1 -0
  58. package/dist/esm/build/index.js +3 -3
  59. package/dist/esm/build/webpack-config.js +2 -2
  60. package/dist/esm/client/app-bootstrap.js +1 -1
  61. package/dist/esm/client/index.js +1 -1
  62. package/dist/esm/server/dev/hot-reloader-webpack.js +1 -1
  63. package/dist/esm/server/lib/app-info-log.js +1 -1
  64. package/dist/esm/server/lib/start-server.js +1 -1
  65. package/dist/esm/shared/lib/errors/canary-only-config-error.js +1 -1
  66. package/dist/filesystem/file-exists.js +53 -0
  67. package/dist/filesystem/file-exists.js.map +1 -0
  68. package/dist/filesystem/find-pages-dir.js +65 -0
  69. package/dist/filesystem/find-pages-dir.js.map +1 -0
  70. package/dist/filesystem/find-root.js +118 -0
  71. package/dist/filesystem/find-root.js.map +1 -0
  72. package/dist/filesystem/get-files-in-dir.js +33 -0
  73. package/dist/filesystem/get-files-in-dir.js.map +1 -0
  74. package/dist/filesystem/multi-file-writer.js +75 -0
  75. package/dist/filesystem/multi-file-writer.js.map +1 -0
  76. package/dist/filesystem/realpath.js +20 -0
  77. package/dist/filesystem/realpath.js.map +1 -0
  78. package/dist/filesystem/recursive-copy.js +76 -0
  79. package/dist/filesystem/recursive-copy.js.map +1 -0
  80. package/dist/filesystem/recursive-delete.js +137 -0
  81. package/dist/filesystem/recursive-delete.js.map +1 -0
  82. package/dist/filesystem/recursive-readdir.js +124 -0
  83. package/dist/filesystem/recursive-readdir.js.map +1 -0
  84. package/dist/filesystem/rename.js +87 -0
  85. package/dist/filesystem/rename.js.map +1 -0
  86. package/dist/filesystem/write-atomic.js +28 -0
  87. package/dist/filesystem/write-atomic.js.map +1 -0
  88. package/dist/fonts/font-utils.js +43 -0
  89. package/dist/fonts/font-utils.js.map +1 -0
  90. package/dist/fonts/get-preloadable-fonts.js +39 -0
  91. package/dist/fonts/get-preloadable-fonts.js.map +1 -0
  92. package/dist/hash/bloom-filter.js +85 -0
  93. package/dist/hash/bloom-filter.js.map +1 -0
  94. package/dist/hash/etag.js +56 -0
  95. package/dist/hash/etag.js.map +1 -0
  96. package/dist/hash/fnv1a.js +56 -0
  97. package/dist/hash/fnv1a.js.map +1 -0
  98. package/dist/hash/hash.js +39 -0
  99. package/dist/hash/hash.js.map +1 -0
  100. package/dist/hostname/format-hostname.js +16 -0
  101. package/dist/hostname/format-hostname.js.map +1 -0
  102. package/dist/hostname/get-hostname.js +23 -0
  103. package/dist/hostname/get-hostname.js.map +1 -0
  104. package/dist/hostname/get-network-host.js +44 -0
  105. package/dist/hostname/get-network-host.js.map +1 -0
  106. package/dist/hostname/is-ipv6.js +41 -0
  107. package/dist/hostname/is-ipv6.js.map +1 -0
  108. package/dist/image/find-closest-quality.js +19 -0
  109. package/dist/image/find-closest-quality.js.map +1 -0
  110. package/dist/image/get-img-props.js +573 -0
  111. package/dist/image/get-img-props.js.map +1 -0
  112. package/dist/image/image-blur-svg.js +22 -0
  113. package/dist/image/image-blur-svg.js.map +1 -0
  114. package/dist/image/image-config-context.shared-runtime.js +19 -0
  115. package/dist/image/image-config-context.shared-runtime.js.map +1 -0
  116. package/dist/image/image-config.js +74 -0
  117. package/dist/image/image-config.js.map +1 -0
  118. package/dist/image/image-loader.js +91 -0
  119. package/dist/image/image-loader.js.map +1 -0
  120. package/dist/image/image-optimizer.js +1019 -0
  121. package/dist/image/image-optimizer.js.map +1 -0
  122. package/dist/image/match-local-pattern.js +46 -0
  123. package/dist/image/match-local-pattern.js.map +1 -0
  124. package/dist/image/match-remote-pattern.js +63 -0
  125. package/dist/image/match-remote-pattern.js.map +1 -0
  126. package/dist/image/mime-type.js +20 -0
  127. package/dist/image/mime-type.js.map +1 -0
  128. package/dist/memory/gc-observer.js +53 -0
  129. package/dist/memory/gc-observer.js.map +1 -0
  130. package/dist/memory/shutdown.js +29 -0
  131. package/dist/memory/shutdown.js.map +1 -0
  132. package/dist/memory/startup.js +47 -0
  133. package/dist/memory/startup.js.map +1 -0
  134. package/dist/memory/trace.js +109 -0
  135. package/dist/memory/trace.js.map +1 -0
  136. package/dist/module/client-and-server-references.js +54 -0
  137. package/dist/module/client-and-server-references.js.map +1 -0
  138. package/dist/module/format-dynamic-import-path.js +24 -0
  139. package/dist/module/format-dynamic-import-path.js.map +1 -0
  140. package/dist/module/interop-default.js +15 -0
  141. package/dist/module/interop-default.js.map +1 -0
  142. package/dist/module/resolve-from.js +79 -0
  143. package/dist/module/resolve-from.js.map +1 -0
  144. package/dist/module/semver-noop.js +18 -0
  145. package/dist/module/semver-noop.js.map +1 -0
  146. package/dist/object/deep-freeze.js +30 -0
  147. package/dist/object/deep-freeze.js.map +1 -0
  148. package/dist/object/deep-readonly.js +10 -0
  149. package/dist/object/deep-readonly.js.map +1 -0
  150. package/dist/object/is-plain-object.js +42 -0
  151. package/dist/object/is-plain-object.js.map +1 -0
  152. package/dist/object/non-nullable.js +15 -0
  153. package/dist/object/non-nullable.js.map +1 -0
  154. package/dist/object/pick.js +19 -0
  155. package/dist/object/pick.js.map +1 -0
  156. package/dist/process/setup-exception-listeners.js +11 -0
  157. package/dist/process/setup-exception-listeners.js.map +1 -0
  158. package/dist/promise/detached-promise.js +32 -0
  159. package/dist/promise/detached-promise.js.map +1 -0
  160. package/dist/promise/is-thenable.js +20 -0
  161. package/dist/promise/is-thenable.js.map +1 -0
  162. package/dist/promise/promise-with-resolvers.js +26 -0
  163. package/dist/promise/promise-with-resolvers.js.map +1 -0
  164. package/dist/server/dev/hot-reloader-webpack.js +1 -1
  165. package/dist/server/lib/app-info-log.js +1 -1
  166. package/dist/server/lib/start-server.js +1 -1
  167. package/dist/shared/lib/errors/canary-only-config-error.js +1 -1
  168. package/dist/string/encode-uri-path.js +15 -0
  169. package/dist/string/encode-uri-path.js.map +1 -0
  170. package/dist/string/escape-regexp.js +22 -0
  171. package/dist/string/escape-regexp.js.map +1 -0
  172. package/dist/string/normalize-path.js +21 -0
  173. package/dist/string/normalize-path.js.map +1 -0
  174. package/dist/string/oxford-comma-list.js +15 -0
  175. package/dist/string/oxford-comma-list.js.map +1 -0
  176. package/dist/string/pretty-bytes.js +74 -0
  177. package/dist/string/pretty-bytes.js.map +1 -0
  178. package/dist/telemetry/anonymous-meta.js +1 -1
  179. package/dist/telemetry/events/session-stopped.js +2 -2
  180. package/dist/telemetry/events/version.js +2 -2
  181. package/dist/typescript/diagnosticFormatter.js +240 -0
  182. package/dist/typescript/diagnosticFormatter.js.map +1 -0
  183. package/dist/typescript/getTypeScriptConfiguration.js +73 -0
  184. package/dist/typescript/getTypeScriptConfiguration.js.map +1 -0
  185. package/dist/typescript/getTypeScriptIntent.js +52 -0
  186. package/dist/typescript/getTypeScriptIntent.js.map +1 -0
  187. package/dist/typescript/missingDependencyError.js +27 -0
  188. package/dist/typescript/missingDependencyError.js.map +1 -0
  189. package/dist/typescript/runTypeCheck.js +95 -0
  190. package/dist/typescript/runTypeCheck.js.map +1 -0
  191. package/dist/typescript/writeAppTypeDeclarations.js +65 -0
  192. package/dist/typescript/writeAppTypeDeclarations.js.map +1 -0
  193. package/dist/typescript/writeConfigurationDefaults.js +403 -0
  194. package/dist/typescript/writeConfigurationDefaults.js.map +1 -0
  195. package/dist/validation/is-serializable-props.js +106 -0
  196. package/dist/validation/is-serializable-props.js.map +1 -0
  197. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../image/get-img-props.ts"],"sourcesContent":["import { warnOnce } from '../shared/lib/utils/warn-once'\nimport { getImageBlurSvg } from './image-blur-svg'\nimport { imageConfigDefault } from './image-config'\nimport type {\n ImageConfigComplete,\n ImageLoaderProps,\n ImageLoaderPropsWithConfig,\n} from './image-config'\n\nimport type { CSSProperties, JSX } from 'react'\n\nexport interface StaticImageData {\n src: string\n height: number\n width: number\n blurDataURL?: string\n blurWidth?: number\n blurHeight?: number\n}\n\nexport interface StaticRequire {\n default: StaticImageData\n}\n\nexport type StaticImport = StaticRequire | StaticImageData\n\nexport type ImageProps = Omit<\n JSX.IntrinsicElements['img'],\n 'src' | 'srcSet' | 'ref' | 'alt' | 'width' | 'height' | 'loading'\n> & {\n src: string | StaticImport\n alt: string\n width?: number | `${number}`\n height?: number | `${number}`\n fill?: boolean\n loader?: ImageLoader\n quality?: number | `${number}`\n preload?: boolean\n /**\n * @deprecated Use `preload` prop instead.\n * See https://nextjs.org/docs/app/api-reference/components/image#preload\n */\n priority?: boolean\n loading?: LoadingValue\n placeholder?: PlaceholderValue\n blurDataURL?: string\n unoptimized?: boolean\n overrideSrc?: string\n /**\n * @deprecated Use `onLoad` instead.\n * @see https://nextjs.org/docs/app/api-reference/components/image#onload\n */\n onLoadingComplete?: OnLoadingComplete\n /**\n * @deprecated Use `fill` prop instead of `layout=\"fill\"` or change import to `next/legacy/image`.\n * @see https://nextjs.org/docs/api-reference/next/legacy/image\n */\n layout?: string\n /**\n * @deprecated Use `style` prop instead.\n */\n objectFit?: string\n /**\n * @deprecated Use `style` prop instead.\n */\n objectPosition?: string\n /**\n * @deprecated This prop does not do anything.\n */\n lazyBoundary?: string\n /**\n * @deprecated This prop does not do anything.\n */\n lazyRoot?: string\n}\n\nexport type ImgProps = Omit<ImageProps, 'src' | 'loader'> & {\n loading: LoadingValue\n width: number | undefined\n height: number | undefined\n style: NonNullable<JSX.IntrinsicElements['img']['style']>\n sizes: string | undefined\n srcSet: string | undefined\n src: string\n}\n\nconst VALID_LOADING_VALUES = ['lazy', 'eager', undefined] as const\n\n// Object-fit values that are not valid background-size values\nconst INVALID_BACKGROUND_SIZE_VALUES = [\n '-moz-initial',\n 'fill',\n 'none',\n 'scale-down',\n undefined,\n]\ntype LoadingValue = (typeof VALID_LOADING_VALUES)[number]\ntype ImageConfig = ImageConfigComplete & {\n allSizes: number[]\n output?: 'standalone' | 'export'\n}\n\nexport type ImageLoader = (p: ImageLoaderProps) => string\n\n// Do not export - this is an internal type only\n// because `next.config.js` is only meant for the\n// built-in loaders, not for a custom loader() prop.\ntype ImageLoaderWithConfig = (p: ImageLoaderPropsWithConfig) => string\n\nexport type PlaceholderValue = 'blur' | 'empty' | `data:image/${string}`\nexport type OnLoad = React.ReactEventHandler<HTMLImageElement> | undefined\nexport type OnLoadingComplete = (img: HTMLImageElement) => void\n\nexport type PlaceholderStyle = Partial<\n Pick<\n CSSProperties,\n | 'backgroundSize'\n | 'backgroundPosition'\n | 'backgroundRepeat'\n | 'backgroundImage'\n >\n>\n\nfunction isStaticRequire(\n src: StaticRequire | StaticImageData\n): src is StaticRequire {\n return (src as StaticRequire).default !== undefined\n}\n\nfunction isStaticImageData(\n src: StaticRequire | StaticImageData\n): src is StaticImageData {\n return (src as StaticImageData).src !== undefined\n}\n\nfunction isStaticImport(src: string | StaticImport): src is StaticImport {\n return (\n !!src &&\n typeof src === 'object' &&\n (isStaticRequire(src as StaticImport) ||\n isStaticImageData(src as StaticImport))\n )\n}\n\nconst allImgs = new Map<\n string,\n { src: string; loading: LoadingValue; placeholder: PlaceholderValue }\n>()\nlet perfObserver: PerformanceObserver | undefined\n\nfunction getInt(x: unknown): number | undefined {\n if (typeof x === 'undefined') {\n return x\n }\n if (typeof x === 'number') {\n return Number.isFinite(x) ? x : NaN\n }\n if (typeof x === 'string' && /^[0-9]+$/.test(x)) {\n return parseInt(x, 10)\n }\n return NaN\n}\n\nfunction getWidths(\n { deviceSizes, allSizes }: ImageConfig,\n width: number | undefined,\n sizes: string | undefined\n): { widths: number[]; kind: 'w' | 'x' } {\n if (sizes) {\n // Find all the \"vw\" percent sizes used in the sizes prop\n const viewportWidthRe = /(^|\\s)(1?\\d?\\d)vw/g\n const percentSizes = []\n for (let match; (match = viewportWidthRe.exec(sizes)); match) {\n percentSizes.push(parseInt(match[2]))\n }\n if (percentSizes.length) {\n const smallestRatio = Math.min(...percentSizes) * 0.01\n return {\n widths: allSizes.filter((s) => s >= deviceSizes[0] * smallestRatio),\n kind: 'w',\n }\n }\n return { widths: allSizes, kind: 'w' }\n }\n if (typeof width !== 'number') {\n return { widths: deviceSizes, kind: 'w' }\n }\n\n const widths = [\n ...new Set(\n // > This means that most OLED screens that say they are 3x resolution,\n // > are actually 3x in the green color, but only 1.5x in the red and\n // > blue colors. Showing a 3x resolution image in the app vs a 2x\n // > resolution image will be visually the same, though the 3x image\n // > takes significantly more data. Even true 3x resolution screens are\n // > wasteful as the human eye cannot see that level of detail without\n // > something like a magnifying glass.\n // https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/capping-image-fidelity-on-ultra-high-resolution-devices.html\n [width, width * 2 /*, width * 3*/].map(\n (w) => allSizes.find((p) => p >= w) || allSizes[allSizes.length - 1]\n )\n ),\n ]\n return { widths, kind: 'x' }\n}\n\ntype GenImgAttrsData = {\n config: ImageConfig\n src: string\n unoptimized: boolean\n loader: ImageLoaderWithConfig\n width?: number\n quality?: number\n sizes?: string\n}\n\ntype GenImgAttrsResult = {\n src: string\n srcSet: string | undefined\n sizes: string | undefined\n}\n\nfunction generateImgAttrs({\n config,\n src,\n unoptimized,\n width,\n quality,\n sizes,\n loader,\n}: GenImgAttrsData): GenImgAttrsResult {\n if (unoptimized) {\n return { src, srcSet: undefined, sizes: undefined }\n }\n\n const { widths, kind } = getWidths(config, width, sizes)\n const last = widths.length - 1\n\n return {\n sizes: !sizes && kind === 'w' ? '100vw' : sizes,\n srcSet: widths\n .map(\n (w, i) =>\n `${loader({ config, src, quality, width: w })} ${\n kind === 'w' ? w : i + 1\n }${kind}`\n )\n .join(', '),\n\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n src: loader({ config, src, quality, width: widths[last] }),\n }\n}\n\n/**\n * A shared function, used on both client and server, to generate the props for <img>.\n */\nexport function getImgProps(\n {\n src,\n sizes,\n unoptimized = false,\n priority = false,\n preload = false,\n loading,\n className,\n quality,\n width,\n height,\n fill = false,\n style,\n overrideSrc,\n onLoad,\n onLoadingComplete,\n placeholder = 'empty',\n blurDataURL,\n fetchPriority,\n decoding = 'async',\n layout,\n objectFit,\n objectPosition,\n lazyBoundary,\n lazyRoot,\n ...rest\n }: ImageProps,\n _state: {\n defaultLoader: ImageLoaderWithConfig\n imgConf: ImageConfigComplete\n showAltText?: boolean\n blurComplete?: boolean\n }\n): {\n props: ImgProps\n meta: {\n unoptimized: boolean\n preload: boolean\n placeholder: NonNullable<ImageProps['placeholder']>\n fill: boolean\n }\n} {\n const { imgConf, showAltText, blurComplete, defaultLoader } = _state\n let config: ImageConfig\n let c = imgConf || imageConfigDefault\n if ('allSizes' in c) {\n config = c as ImageConfig\n } else {\n const allSizes = [...c.deviceSizes, ...c.imageSizes].sort((a, b) => a - b)\n const deviceSizes = c.deviceSizes.sort((a, b) => a - b)\n const qualities = c.qualities?.sort((a, b) => a - b)\n config = { ...c, allSizes, deviceSizes, qualities }\n }\n\n if (typeof defaultLoader === 'undefined') {\n throw new Error(\n 'images.loaderFile detected but the file is missing default export.\\nRead more: https://nextjs.org/docs/messages/invalid-images-config'\n )\n }\n let loader: ImageLoaderWithConfig = rest.loader || defaultLoader\n\n // Remove property so it's not spread on <img> element\n delete rest.loader\n delete (rest as any).srcSet\n\n // This special value indicates that the user\n // didn't define a \"loader\" prop or \"loader\" config.\n const isDefaultLoader = '__next_img_default' in loader\n\n if (isDefaultLoader) {\n if (config.loader === 'custom') {\n throw new Error(\n `Image with src \"${src}\" is missing \"loader\" prop.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader`\n )\n }\n } else {\n // The user defined a \"loader\" prop or config.\n // Since the config object is internal only, we\n // must not pass it to the user-defined \"loader\".\n const customImageLoader = loader as ImageLoader\n loader = (obj) => {\n const { config: _, ...opts } = obj\n return customImageLoader(opts)\n }\n }\n\n if (layout) {\n if (layout === 'fill') {\n fill = true\n }\n const layoutToStyle: Record<string, Record<string, string> | undefined> = {\n intrinsic: { maxWidth: '100%', height: 'auto' },\n responsive: { width: '100%', height: 'auto' },\n }\n const layoutToSizes: Record<string, string | undefined> = {\n responsive: '100vw',\n fill: '100vw',\n }\n const layoutStyle = layoutToStyle[layout]\n if (layoutStyle) {\n style = { ...style, ...layoutStyle }\n }\n const layoutSizes = layoutToSizes[layout]\n if (layoutSizes && !sizes) {\n sizes = layoutSizes\n }\n }\n\n let staticSrc = ''\n let widthInt = getInt(width)\n let heightInt = getInt(height)\n let blurWidth: number | undefined\n let blurHeight: number | undefined\n if (isStaticImport(src)) {\n const staticImageData = isStaticRequire(src) ? src.default : src\n\n if (!staticImageData.src) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(\n staticImageData\n )}`\n )\n }\n if (!staticImageData.height || !staticImageData.width) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(\n staticImageData\n )}`\n )\n }\n\n blurWidth = staticImageData.blurWidth\n blurHeight = staticImageData.blurHeight\n blurDataURL = blurDataURL || staticImageData.blurDataURL\n staticSrc = staticImageData.src\n\n if (!fill) {\n if (!widthInt && !heightInt) {\n widthInt = staticImageData.width\n heightInt = staticImageData.height\n } else if (widthInt && !heightInt) {\n const ratio = widthInt / staticImageData.width\n heightInt = Math.round(staticImageData.height * ratio)\n } else if (!widthInt && heightInt) {\n const ratio = heightInt / staticImageData.height\n widthInt = Math.round(staticImageData.width * ratio)\n }\n }\n }\n src = typeof src === 'string' ? src : staticSrc\n\n let isLazy =\n !priority &&\n !preload &&\n (loading === 'lazy' || typeof loading === 'undefined')\n if (!src || src.startsWith('data:') || src.startsWith('blob:')) {\n // https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\n unoptimized = true\n isLazy = false\n }\n if (config.unoptimized) {\n unoptimized = true\n }\n if (\n isDefaultLoader &&\n !config.dangerouslyAllowSVG &&\n src.split('?', 1)[0].endsWith('.svg')\n ) {\n // Special case to make svg serve as-is to avoid proxying\n // through the built-in Image Optimization API.\n unoptimized = true\n }\n\n const qualityInt = getInt(quality)\n\n if (process.env.NODE_ENV !== 'production') {\n if (config.output === 'export' && isDefaultLoader && !unoptimized) {\n throw new Error(\n `Image Optimization using the default loader is not compatible with \\`{ output: 'export' }\\`.\n Possible solutions:\n - Remove \\`{ output: 'export' }\\` and run \"next start\" to run server mode including the Image Optimization API.\n - Configure \\`{ images: { unoptimized: true } }\\` in \\`next.config.js\\` to disable the Image Optimization API.\n Read more: https://nextjs.org/docs/messages/export-image-api`\n )\n }\n if (!src) {\n // React doesn't show the stack trace and there's\n // no `src` to help identify which image, so we\n // instead console.error(ref) during mount.\n unoptimized = true\n } else {\n if (fill) {\n if (width) {\n throw new Error(\n `Image with src \"${src}\" has both \"width\" and \"fill\" properties. Only one should be used.`\n )\n }\n if (height) {\n throw new Error(\n `Image with src \"${src}\" has both \"height\" and \"fill\" properties. Only one should be used.`\n )\n }\n if (style?.position && style.position !== 'absolute') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.position\" properties. Images with \"fill\" always use position absolute - it cannot be modified.`\n )\n }\n if (style?.width && style.width !== '100%') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.width\" properties. Images with \"fill\" always use width 100% - it cannot be modified.`\n )\n }\n if (style?.height && style.height !== '100%') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.height\" properties. Images with \"fill\" always use height 100% - it cannot be modified.`\n )\n }\n } else {\n if (typeof widthInt === 'undefined') {\n throw new Error(\n `Image with src \"${src}\" is missing required \"width\" property.`\n )\n } else if (isNaN(widthInt)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"width\" property. Expected a numeric value in pixels but received \"${width}\".`\n )\n }\n if (typeof heightInt === 'undefined') {\n throw new Error(\n `Image with src \"${src}\" is missing required \"height\" property.`\n )\n } else if (isNaN(heightInt)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"height\" property. Expected a numeric value in pixels but received \"${height}\".`\n )\n }\n // eslint-disable-next-line no-control-regex\n if (/^[\\x00-\\x20]/.test(src)) {\n throw new Error(\n `Image with src \"${src}\" cannot start with a space or control character. Use src.trimStart() to remove it or encodeURIComponent(src) to keep it.`\n )\n }\n // eslint-disable-next-line no-control-regex\n if (/[\\x00-\\x20]$/.test(src)) {\n throw new Error(\n `Image with src \"${src}\" cannot end with a space or control character. Use src.trimEnd() to remove it or encodeURIComponent(src) to keep it.`\n )\n }\n }\n }\n if (!VALID_LOADING_VALUES.includes(loading)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"loading\" property. Provided \"${loading}\" should be one of ${VALID_LOADING_VALUES.map(\n String\n ).join(',')}.`\n )\n }\n if (priority && loading === 'lazy') {\n throw new Error(\n `Image with src \"${src}\" has both \"priority\" and \"loading='lazy'\" properties. Only one should be used.`\n )\n }\n if (preload && loading === 'lazy') {\n throw new Error(\n `Image with src \"${src}\" has both \"preload\" and \"loading='lazy'\" properties. Only one should be used.`\n )\n }\n if (preload && priority) {\n throw new Error(\n `Image with src \"${src}\" has both \"preload\" and \"priority\" properties. Only \"preload\" should be used.`\n )\n }\n if (\n placeholder !== 'empty' &&\n placeholder !== 'blur' &&\n !placeholder.startsWith('data:image/')\n ) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"placeholder\" property \"${placeholder}\".`\n )\n }\n if (placeholder !== 'empty') {\n if (widthInt && heightInt && widthInt * heightInt < 1600) {\n warnOnce(\n `Image with src \"${src}\" is smaller than 40x40. Consider removing the \"placeholder\" property to improve performance.`\n )\n }\n }\n if (\n qualityInt &&\n config.qualities &&\n !config.qualities.includes(qualityInt)\n ) {\n warnOnce(\n `Image with src \"${src}\" is using quality \"${qualityInt}\" which is not configured in images.qualities [${config.qualities.join(', ')}]. Please update your config to [${[...config.qualities, qualityInt].sort().join(', ')}].` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-qualities`\n )\n }\n if (placeholder === 'blur' && !blurDataURL) {\n const VALID_BLUR_EXT = ['jpeg', 'png', 'webp', 'avif'] // should match next-image-loader\n\n throw new Error(\n `Image with src \"${src}\" has \"placeholder='blur'\" property but is missing the \"blurDataURL\" property.\n Possible solutions:\n - Add a \"blurDataURL\" property, the contents should be a small Data URL to represent the image\n - Change the \"src\" property to a static import with one of the supported file types: ${VALID_BLUR_EXT.join(\n ','\n )} (animated images not supported)\n - Remove the \"placeholder\" property, effectively no blur effect\n Read more: https://nextjs.org/docs/messages/placeholder-blur-data-url`\n )\n }\n if ('ref' in rest) {\n warnOnce(\n `Image with src \"${src}\" is using unsupported \"ref\" property. Consider using the \"onLoad\" property instead.`\n )\n }\n\n if (!unoptimized && !isDefaultLoader) {\n const urlStr = loader({\n config,\n src,\n width: widthInt || 400,\n quality: qualityInt || 75,\n })\n let url: URL | undefined\n try {\n url = new URL(urlStr)\n } catch (err) {}\n if (urlStr === src || (url && url.pathname === src && !url.search)) {\n warnOnce(\n `Image with src \"${src}\" has a \"loader\" property that does not implement width. Please implement it or use the \"unoptimized\" property instead.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader-width`\n )\n }\n }\n\n if (onLoadingComplete) {\n warnOnce(\n `Image with src \"${src}\" is using deprecated \"onLoadingComplete\" property. Please use the \"onLoad\" property instead.`\n )\n }\n\n for (const [legacyKey, legacyValue] of Object.entries({\n layout,\n objectFit,\n objectPosition,\n lazyBoundary,\n lazyRoot,\n })) {\n if (legacyValue) {\n warnOnce(\n `Image with src \"${src}\" has legacy prop \"${legacyKey}\". Did you forget to run the codemod?` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-upgrade-to-13`\n )\n }\n }\n\n if (\n typeof window !== 'undefined' &&\n !perfObserver &&\n window.PerformanceObserver\n ) {\n perfObserver = new PerformanceObserver((entryList) => {\n for (const entry of entryList.getEntries()) {\n // @ts-ignore - missing \"LargestContentfulPaint\" class with \"element\" prop\n const imgSrc = entry?.element?.src || ''\n const lcpImage = allImgs.get(imgSrc)\n if (\n lcpImage &&\n lcpImage.loading === 'lazy' &&\n lcpImage.placeholder === 'empty' &&\n !lcpImage.src.startsWith('data:') &&\n !lcpImage.src.startsWith('blob:')\n ) {\n // https://web.dev/lcp/#measure-lcp-in-javascript\n warnOnce(\n `Image with src \"${lcpImage.src}\" was detected as the Largest Contentful Paint (LCP). Please add the \\`loading=\"eager\"\\` property if this image is above the fold.` +\n `\\nRead more: https://nextjs.org/docs/app/api-reference/components/image#loading`\n )\n }\n }\n })\n try {\n perfObserver.observe({\n type: 'largest-contentful-paint',\n buffered: true,\n })\n } catch (err) {\n // Log error but don't crash the app\n console.error(err)\n }\n }\n }\n const imgStyle = Object.assign(\n fill\n ? {\n position: 'absolute',\n height: '100%',\n width: '100%',\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n objectFit,\n objectPosition,\n }\n : {},\n showAltText ? {} : { color: 'transparent' },\n style\n )\n\n const backgroundImage =\n !blurComplete && placeholder !== 'empty'\n ? placeholder === 'blur'\n ? `url(\"data:image/svg+xml;charset=utf-8,${getImageBlurSvg({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL: blurDataURL || '', // assume not undefined\n objectFit: imgStyle.objectFit,\n })}\")`\n : `url(\"${placeholder}\")` // assume `data:image/`\n : null\n\n const backgroundSize = !INVALID_BACKGROUND_SIZE_VALUES.includes(\n imgStyle.objectFit\n )\n ? imgStyle.objectFit\n : imgStyle.objectFit === 'fill'\n ? '100% 100%' // the background-size equivalent of `fill`\n : 'cover'\n\n let placeholderStyle: PlaceholderStyle = backgroundImage\n ? {\n backgroundSize,\n backgroundPosition: imgStyle.objectPosition || '50% 50%',\n backgroundRepeat: 'no-repeat',\n backgroundImage,\n }\n : {}\n\n if (process.env.NODE_ENV === 'development') {\n if (\n placeholderStyle.backgroundImage &&\n placeholder === 'blur' &&\n blurDataURL?.startsWith('/')\n ) {\n // During `next dev`, we don't want to generate blur placeholders with webpack\n // because it can delay starting the dev server. Instead, `next-image-loader.js`\n // will inline a special url to lazily generate the blur placeholder at request time.\n placeholderStyle.backgroundImage = `url(\"${blurDataURL}\")`\n }\n }\n\n const imgAttributes = generateImgAttrs({\n config,\n src,\n unoptimized,\n width: widthInt,\n quality: qualityInt,\n sizes,\n loader,\n })\n\n const loadingFinal = isLazy ? 'lazy' : loading\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined') {\n let fullUrl: URL\n try {\n fullUrl = new URL(imgAttributes.src)\n } catch (e) {\n fullUrl = new URL(imgAttributes.src, window.location.href)\n }\n allImgs.set(fullUrl.href, { src, loading: loadingFinal, placeholder })\n }\n }\n\n const props: ImgProps = {\n ...rest,\n loading: loadingFinal,\n fetchPriority,\n width: widthInt,\n height: heightInt,\n decoding,\n className,\n style: { ...imgStyle, ...placeholderStyle },\n sizes: imgAttributes.sizes,\n srcSet: imgAttributes.srcSet,\n src: overrideSrc || imgAttributes.src,\n }\n const meta = { unoptimized, preload: preload || priority, placeholder, fill }\n return { props, meta }\n}\n"],"names":["getImgProps","VALID_LOADING_VALUES","undefined","INVALID_BACKGROUND_SIZE_VALUES","isStaticRequire","src","default","isStaticImageData","isStaticImport","allImgs","Map","perfObserver","getInt","x","Number","isFinite","NaN","test","parseInt","getWidths","deviceSizes","allSizes","width","sizes","viewportWidthRe","percentSizes","match","exec","push","length","smallestRatio","Math","min","widths","filter","s","kind","Set","map","w","find","p","generateImgAttrs","config","unoptimized","quality","loader","srcSet","last","i","join","priority","preload","loading","className","height","fill","style","overrideSrc","onLoad","onLoadingComplete","placeholder","blurDataURL","fetchPriority","decoding","layout","objectFit","objectPosition","lazyBoundary","lazyRoot","rest","_state","imgConf","showAltText","blurComplete","defaultLoader","c","imageConfigDefault","imageSizes","sort","a","b","qualities","Error","isDefaultLoader","customImageLoader","obj","_","opts","layoutToStyle","intrinsic","maxWidth","responsive","layoutToSizes","layoutStyle","layoutSizes","staticSrc","widthInt","heightInt","blurWidth","blurHeight","staticImageData","JSON","stringify","ratio","round","isLazy","startsWith","dangerouslyAllowSVG","split","endsWith","qualityInt","process","env","NODE_ENV","output","position","isNaN","includes","String","warnOnce","VALID_BLUR_EXT","urlStr","url","URL","err","pathname","search","legacyKey","legacyValue","Object","entries","window","PerformanceObserver","entryList","entry","getEntries","imgSrc","element","lcpImage","get","observe","type","buffered","console","error","imgStyle","assign","left","top","right","bottom","color","backgroundImage","getImageBlurSvg","backgroundSize","placeholderStyle","backgroundPosition","backgroundRepeat","imgAttributes","loadingFinal","fullUrl","e","location","href","set","props","meta"],"mappings":"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","ignoreList":[0]}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * A shared function, used on both client and server, to generate a SVG blur placeholder.
3
+ */ "use strict";
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ Object.defineProperty(exports, "getImageBlurSvg", {
8
+ enumerable: true,
9
+ get: function() {
10
+ return getImageBlurSvg;
11
+ }
12
+ });
13
+ function getImageBlurSvg({ widthInt, heightInt, blurWidth, blurHeight, blurDataURL, objectFit }) {
14
+ const std = 20;
15
+ const svgWidth = blurWidth ? blurWidth * 40 : widthInt;
16
+ const svgHeight = blurHeight ? blurHeight * 40 : heightInt;
17
+ const viewBox = svgWidth && svgHeight ? `viewBox='0 0 ${svgWidth} ${svgHeight}'` : '';
18
+ const preserveAspectRatio = viewBox ? 'none' : objectFit === 'contain' ? 'xMidYMid' : objectFit === 'cover' ? 'xMidYMid slice' : 'none';
19
+ return `%3Csvg xmlns='http://www.w3.org/2000/svg' ${viewBox}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${preserveAspectRatio}' style='filter: url(%23b);' href='${blurDataURL}'/%3E%3C/svg%3E`;
20
+ }
21
+
22
+ //# sourceMappingURL=image-blur-svg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../image/image-blur-svg.ts"],"sourcesContent":["/**\n * A shared function, used on both client and server, to generate a SVG blur placeholder.\n */\nexport function getImageBlurSvg({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL,\n objectFit,\n}: {\n widthInt?: number\n heightInt?: number\n blurWidth?: number\n blurHeight?: number\n blurDataURL: string\n objectFit?: string\n}): string {\n const std = 20\n const svgWidth = blurWidth ? blurWidth * 40 : widthInt\n const svgHeight = blurHeight ? blurHeight * 40 : heightInt\n\n const viewBox =\n svgWidth && svgHeight ? `viewBox='0 0 ${svgWidth} ${svgHeight}'` : ''\n const preserveAspectRatio = viewBox\n ? 'none'\n : objectFit === 'contain'\n ? 'xMidYMid'\n : objectFit === 'cover'\n ? 'xMidYMid slice'\n : 'none'\n\n return `%3Csvg xmlns='http://www.w3.org/2000/svg' ${viewBox}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${preserveAspectRatio}' style='filter: url(%23b);' href='${blurDataURL}'/%3E%3C/svg%3E`\n}\n"],"names":["getImageBlurSvg","widthInt","heightInt","blurWidth","blurHeight","blurDataURL","objectFit","std","svgWidth","svgHeight","viewBox","preserveAspectRatio"],"mappings":"AAAA;;CAEC;;;;+BACeA;;;eAAAA;;;AAAT,SAASA,gBAAgB,EAC9BC,QAAQ,EACRC,SAAS,EACTC,SAAS,EACTC,UAAU,EACVC,WAAW,EACXC,SAAS,EAQV;IACC,MAAMC,MAAM;IACZ,MAAMC,WAAWL,YAAYA,YAAY,KAAKF;IAC9C,MAAMQ,YAAYL,aAAaA,aAAa,KAAKF;IAEjD,MAAMQ,UACJF,YAAYC,YAAY,CAAC,aAAa,EAAED,SAAS,CAAC,EAAEC,UAAU,CAAC,CAAC,GAAG;IACrE,MAAME,sBAAsBD,UACxB,SACAJ,cAAc,YACZ,aACAA,cAAc,UACZ,mBACA;IAER,OAAO,CAAC,0CAA0C,EAAEI,QAAQ,yFAAyF,EAAEH,IAAI,+PAA+P,EAAEA,IAAI,2FAA2F,EAAEI,oBAAoB,mCAAmC,EAAEN,YAAY,eAAe,CAAC;AACplB","ignoreList":[0]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "ImageConfigContext", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return ImageConfigContext;
9
+ }
10
+ });
11
+ const _interop_require_default = require("@swc/helpers/_/_interop_require_default");
12
+ const _react = /*#__PURE__*/ _interop_require_default._(require("react"));
13
+ const _imageconfig = require("./image-config");
14
+ const ImageConfigContext = _react.default.createContext(_imageconfig.imageConfigDefault);
15
+ if (process.env.NODE_ENV !== 'production') {
16
+ ImageConfigContext.displayName = 'ImageConfigContext';
17
+ }
18
+
19
+ //# sourceMappingURL=image-config-context.shared-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../image/image-config-context.shared-runtime.ts"],"sourcesContent":["import React from 'react'\nimport type { ImageConfigComplete } from './image-config'\nimport { imageConfigDefault } from './image-config'\n\nexport const ImageConfigContext =\n React.createContext<ImageConfigComplete>(imageConfigDefault)\n\nif (process.env.NODE_ENV !== 'production') {\n ImageConfigContext.displayName = 'ImageConfigContext'\n}\n"],"names":["ImageConfigContext","React","createContext","imageConfigDefault","process","env","NODE_ENV","displayName"],"mappings":";;;;+BAIaA;;;eAAAA;;;;gEAJK;6BAEiB;AAE5B,MAAMA,qBACXC,cAAK,CAACC,aAAa,CAAsBC,+BAAkB;AAE7D,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,cAAc;IACzCN,mBAAmBO,WAAW,GAAG;AACnC","ignoreList":[0]}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ 0 && (module.exports = {
6
+ VALID_LOADERS: null,
7
+ imageConfigDefault: null
8
+ });
9
+ function _export(target, all) {
10
+ for(var name in all)Object.defineProperty(target, name, {
11
+ enumerable: true,
12
+ get: all[name]
13
+ });
14
+ }
15
+ _export(exports, {
16
+ VALID_LOADERS: function() {
17
+ return VALID_LOADERS;
18
+ },
19
+ imageConfigDefault: function() {
20
+ return imageConfigDefault;
21
+ }
22
+ });
23
+ const VALID_LOADERS = [
24
+ 'default',
25
+ 'imgix',
26
+ 'cloudinary',
27
+ 'akamai',
28
+ 'custom'
29
+ ];
30
+ const imageConfigDefault = {
31
+ deviceSizes: [
32
+ 640,
33
+ 750,
34
+ 828,
35
+ 1080,
36
+ 1200,
37
+ 1920,
38
+ 2048,
39
+ 3840
40
+ ],
41
+ imageSizes: [
42
+ 32,
43
+ 48,
44
+ 64,
45
+ 96,
46
+ 128,
47
+ 256,
48
+ 384
49
+ ],
50
+ path: '/_next/image',
51
+ loader: 'default',
52
+ loaderFile: '',
53
+ /**
54
+ * @deprecated Use `remotePatterns` instead to protect your application from malicious users.
55
+ */ domains: [],
56
+ disableStaticImages: false,
57
+ minimumCacheTTL: 14400,
58
+ formats: [
59
+ 'image/webp'
60
+ ],
61
+ maximumRedirects: 3,
62
+ dangerouslyAllowLocalIP: false,
63
+ dangerouslyAllowSVG: false,
64
+ contentSecurityPolicy: `script-src 'none'; frame-src 'none'; sandbox;`,
65
+ contentDispositionType: 'attachment',
66
+ localPatterns: undefined,
67
+ remotePatterns: [],
68
+ qualities: [
69
+ 75
70
+ ],
71
+ unoptimized: false
72
+ };
73
+
74
+ //# sourceMappingURL=image-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../image/image-config.ts"],"sourcesContent":["export const VALID_LOADERS = [\n 'default',\n 'imgix',\n 'cloudinary',\n 'akamai',\n 'custom',\n] as const\n\nexport type LoaderValue = (typeof VALID_LOADERS)[number]\n\nexport type ImageLoaderProps = {\n src: string\n width: number\n quality?: number\n}\n\nexport type ImageLoaderPropsWithConfig = ImageLoaderProps & {\n config: Readonly<ImageConfig>\n}\n\nexport type LocalPattern = {\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single path segment.\n * Double `**` matches any number of path segments.\n */\n pathname?: string\n\n /**\n * Can be literal query string such as `?v=1` or\n * empty string meaning no query string.\n */\n search?: string\n}\n\nexport type RemotePattern = {\n /**\n * Must be `http` or `https`.\n */\n protocol?: 'http' | 'https'\n\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single subdomain.\n * Double `**` matches any number of subdomains.\n */\n hostname: string\n\n /**\n * Can be literal port such as `8080` or empty string\n * meaning no port.\n */\n port?: string\n\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single path segment.\n * Double `**` matches any number of path segments.\n */\n pathname?: string\n\n /**\n * Can be literal query string such as `?v=1` or\n * empty string meaning no query string.\n */\n search?: string\n}\n\ntype ImageFormat = 'image/avif' | 'image/webp'\n\n/**\n * Image configurations\n *\n * @see [Image configuration options](https://nextjs.org/docs/api-reference/next/image#configuration-options)\n */\nexport type ImageConfigComplete = {\n /** @see [Device sizes documentation](https://nextjs.org/docs/api-reference/next/image#device-sizes) */\n deviceSizes: number[]\n\n /** @see [Image sizing documentation](https://nextjs.org/docs/app/building-your-application/optimizing/images#image-sizing) */\n imageSizes: number[]\n\n /** @see [Image loaders configuration](https://nextjs.org/docs/api-reference/next/legacy/image#loader) */\n loader: LoaderValue\n\n /** @see [Image loader configuration](https://nextjs.org/docs/app/api-reference/components/image#path) */\n path: string\n\n /** @see [Image loader configuration](https://nextjs.org/docs/api-reference/next/image#loader-configuration) */\n loaderFile: string\n\n /**\n * @deprecated Use `remotePatterns` instead.\n */\n domains: string[]\n\n /** @see [Disable static image import configuration](https://nextjs.org/docs/api-reference/next/image#disable-static-imports) */\n disableStaticImages: boolean\n\n /** @see [Cache behavior](https://nextjs.org/docs/api-reference/next/image#caching-behavior) */\n minimumCacheTTL: number\n\n /** @see [Acceptable formats](https://nextjs.org/docs/api-reference/next/image#acceptable-formats) */\n formats: ImageFormat[]\n\n /** @see [Maximum Redirects](https://nextjs.org/docs/api-reference/next/image#maximumredirects) */\n maximumRedirects: number\n\n /** @see [Dangerously Allow Local IP](https://nextjs.org/docs/api-reference/next/image#dangerously-allow-local-ip) */\n dangerouslyAllowLocalIP: boolean\n\n /** @see [Dangerously Allow SVG](https://nextjs.org/docs/api-reference/next/image#dangerously-allow-svg) */\n dangerouslyAllowSVG: boolean\n\n /** @see [Content Security Policy](https://nextjs.org/docs/api-reference/next/image#contentsecuritypolicy) */\n contentSecurityPolicy: string\n\n /** @see [Content Disposition Type](https://nextjs.org/docs/api-reference/next/image#contentdispositiontype) */\n contentDispositionType: 'inline' | 'attachment'\n\n /** @see [Remote Patterns](https://nextjs.org/docs/api-reference/next/image#remotepatterns) */\n remotePatterns: Array<URL | RemotePattern>\n\n /** @see [Local Patterns](https://nextjs.org/docs/api-reference/next/image#localPatterns) */\n localPatterns: LocalPattern[] | undefined\n\n /** @see [Qualities](https://nextjs.org/docs/api-reference/next/image#qualities) */\n qualities: number[] | undefined\n\n /** @see [Unoptimized](https://nextjs.org/docs/api-reference/next/image#unoptimized) */\n unoptimized: boolean\n}\n\nexport type ImageConfig = Partial<ImageConfigComplete>\n\nexport const imageConfigDefault: ImageConfigComplete = {\n deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],\n imageSizes: [32, 48, 64, 96, 128, 256, 384],\n path: '/_next/image',\n loader: 'default',\n loaderFile: '',\n /**\n * @deprecated Use `remotePatterns` instead to protect your application from malicious users.\n */\n domains: [],\n disableStaticImages: false,\n minimumCacheTTL: 14400, // 4 hours\n formats: ['image/webp'],\n maximumRedirects: 3,\n dangerouslyAllowLocalIP: false,\n dangerouslyAllowSVG: false,\n contentSecurityPolicy: `script-src 'none'; frame-src 'none'; sandbox;`,\n contentDispositionType: 'attachment',\n localPatterns: undefined, // default: allow all local images\n remotePatterns: [], // default: allow no remote images\n qualities: [75],\n unoptimized: false,\n}\n"],"names":["VALID_LOADERS","imageConfigDefault","deviceSizes","imageSizes","path","loader","loaderFile","domains","disableStaticImages","minimumCacheTTL","formats","maximumRedirects","dangerouslyAllowLocalIP","dangerouslyAllowSVG","contentSecurityPolicy","contentDispositionType","localPatterns","undefined","remotePatterns","qualities","unoptimized"],"mappings":";;;;;;;;;;;;;;;IAAaA,aAAa;eAAbA;;IAuIAC,kBAAkB;eAAlBA;;;AAvIN,MAAMD,gBAAgB;IAC3B;IACA;IACA;IACA;IACA;CACD;AAiIM,MAAMC,qBAA0C;IACrDC,aAAa;QAAC;QAAK;QAAK;QAAK;QAAM;QAAM;QAAM;QAAM;KAAK;IAC1DC,YAAY;QAAC;QAAI;QAAI;QAAI;QAAI;QAAK;QAAK;KAAI;IAC3CC,MAAM;IACNC,QAAQ;IACRC,YAAY;IACZ;;GAEC,GACDC,SAAS,EAAE;IACXC,qBAAqB;IACrBC,iBAAiB;IACjBC,SAAS;QAAC;KAAa;IACvBC,kBAAkB;IAClBC,yBAAyB;IACzBC,qBAAqB;IACrBC,uBAAuB,CAAC,6CAA6C,CAAC;IACtEC,wBAAwB;IACxBC,eAAeC;IACfC,gBAAgB,EAAE;IAClBC,WAAW;QAAC;KAAG;IACfC,aAAa;AACf","ignoreList":[0]}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ const _findclosestquality = require("./find-closest-quality");
12
+ function defaultLoader({ config, src, width, quality }) {
13
+ if (src.startsWith('/') && src.includes('?') && config.localPatterns?.length === 1 && config.localPatterns[0].pathname === '**' && config.localPatterns[0].search === '') {
14
+ throw Object.defineProperty(new Error(`Image with src "${src}" is using a query string which is not configured in images.localPatterns.` + `\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`), "__NEXT_ERROR_CODE", {
15
+ value: "E871",
16
+ enumerable: false,
17
+ configurable: true
18
+ });
19
+ }
20
+ if (process.env.NODE_ENV !== 'production') {
21
+ const missingValues = [];
22
+ // these should always be provided but make sure they are
23
+ if (!src) missingValues.push('src');
24
+ if (!width) missingValues.push('width');
25
+ if (missingValues.length > 0) {
26
+ throw Object.defineProperty(new Error(`Next Image Optimization requires ${missingValues.join(', ')} to be provided. Make sure you pass them as props to the \`next/image\` component. Received: ${JSON.stringify({
27
+ src,
28
+ width,
29
+ quality
30
+ })}`), "__NEXT_ERROR_CODE", {
31
+ value: "E188",
32
+ enumerable: false,
33
+ configurable: true
34
+ });
35
+ }
36
+ if (src.startsWith('//')) {
37
+ throw Object.defineProperty(new Error(`Failed to parse src "${src}" on \`next/image\`, protocol-relative URL (//) must be changed to an absolute URL (http:// or https://)`), "__NEXT_ERROR_CODE", {
38
+ value: "E360",
39
+ enumerable: false,
40
+ configurable: true
41
+ });
42
+ }
43
+ if (src.startsWith('/') && config.localPatterns) {
44
+ if (process.env.NODE_ENV !== 'test' && // micromatch isn't compatible with edge runtime
45
+ process.env.NEXT_RUNTIME !== 'edge') {
46
+ // We use dynamic require because this should only error in development
47
+ const { hasLocalMatch } = require('./match-local-pattern');
48
+ if (!hasLocalMatch(config.localPatterns, src)) {
49
+ throw Object.defineProperty(new Error(`Invalid src prop (${src}) on \`next/image\` does not match \`images.localPatterns\` configured in your \`next.config.js\`\n` + `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`), "__NEXT_ERROR_CODE", {
50
+ value: "E426",
51
+ enumerable: false,
52
+ configurable: true
53
+ });
54
+ }
55
+ }
56
+ }
57
+ if (!src.startsWith('/') && (config.domains || config.remotePatterns)) {
58
+ let parsedSrc;
59
+ try {
60
+ parsedSrc = new URL(src);
61
+ } catch (err) {
62
+ console.error(err);
63
+ throw Object.defineProperty(new Error(`Failed to parse src "${src}" on \`next/image\`, if using relative image it must start with a leading slash "/" or be an absolute URL (http:// or https://)`), "__NEXT_ERROR_CODE", {
64
+ value: "E63",
65
+ enumerable: false,
66
+ configurable: true
67
+ });
68
+ }
69
+ if (process.env.NODE_ENV !== 'test' && // micromatch isn't compatible with edge runtime
70
+ process.env.NEXT_RUNTIME !== 'edge') {
71
+ // We use dynamic require because this should only error in development
72
+ const { hasRemoteMatch } = require('./match-remote-pattern');
73
+ if (!hasRemoteMatch(config.domains, config.remotePatterns, parsedSrc)) {
74
+ throw Object.defineProperty(new Error(`Invalid src prop (${src}) on \`next/image\`, hostname "${parsedSrc.hostname}" is not configured under images in your \`next.config.js\`\n` + `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-host`), "__NEXT_ERROR_CODE", {
75
+ value: "E231",
76
+ enumerable: false,
77
+ configurable: true
78
+ });
79
+ }
80
+ }
81
+ }
82
+ }
83
+ const q = (0, _findclosestquality.findClosestQuality)(quality, config);
84
+ return `${config.path}?url=${encodeURIComponent(src)}&w=${width}&q=${q}${src.startsWith('/_next/static/media/') && process.env.NEXT_DEPLOYMENT_ID ? `&dpl=${process.env.NEXT_DEPLOYMENT_ID}` : ''}`;
85
+ }
86
+ // We use this to determine if the import is the default loader
87
+ // or a custom loader defined by the user in next.config.js
88
+ defaultLoader.__next_img_default = true;
89
+ const _default = defaultLoader;
90
+
91
+ //# sourceMappingURL=image-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../image/image-loader.ts"],"sourcesContent":["import type { ImageLoaderPropsWithConfig } from './image-config'\nimport { findClosestQuality } from './find-closest-quality'\n\nfunction defaultLoader({\n config,\n src,\n width,\n quality,\n}: ImageLoaderPropsWithConfig): string {\n if (\n src.startsWith('/') &&\n src.includes('?') &&\n config.localPatterns?.length === 1 &&\n config.localPatterns[0].pathname === '**' &&\n config.localPatterns[0].search === ''\n ) {\n throw new Error(\n `Image with src \"${src}\" is using a query string which is not configured in images.localPatterns.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`\n )\n }\n\n if (process.env.NODE_ENV !== 'production') {\n const missingValues = []\n\n // these should always be provided but make sure they are\n if (!src) missingValues.push('src')\n if (!width) missingValues.push('width')\n\n if (missingValues.length > 0) {\n throw new Error(\n `Next Image Optimization requires ${missingValues.join(\n ', '\n )} to be provided. Make sure you pass them as props to the \\`next/image\\` component. Received: ${JSON.stringify(\n { src, width, quality }\n )}`\n )\n }\n\n if (src.startsWith('//')) {\n throw new Error(\n `Failed to parse src \"${src}\" on \\`next/image\\`, protocol-relative URL (//) must be changed to an absolute URL (http:// or https://)`\n )\n }\n\n if (src.startsWith('/') && config.localPatterns) {\n if (\n process.env.NODE_ENV !== 'test' &&\n // micromatch isn't compatible with edge runtime\n process.env.NEXT_RUNTIME !== 'edge'\n ) {\n // We use dynamic require because this should only error in development\n const { hasLocalMatch } =\n require('./match-local-pattern') as typeof import('./match-local-pattern')\n if (!hasLocalMatch(config.localPatterns, src)) {\n throw new Error(\n `Invalid src prop (${src}) on \\`next/image\\` does not match \\`images.localPatterns\\` configured in your \\`next.config.js\\`\\n` +\n `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`\n )\n }\n }\n }\n\n if (!src.startsWith('/') && (config.domains || config.remotePatterns)) {\n let parsedSrc: URL\n try {\n parsedSrc = new URL(src)\n } catch (err) {\n console.error(err)\n throw new Error(\n `Failed to parse src \"${src}\" on \\`next/image\\`, if using relative image it must start with a leading slash \"/\" or be an absolute URL (http:// or https://)`\n )\n }\n\n if (\n process.env.NODE_ENV !== 'test' &&\n // micromatch isn't compatible with edge runtime\n process.env.NEXT_RUNTIME !== 'edge'\n ) {\n // We use dynamic require because this should only error in development\n const { hasRemoteMatch } =\n require('./match-remote-pattern') as typeof import('./match-remote-pattern')\n if (\n !hasRemoteMatch(config.domains!, config.remotePatterns!, parsedSrc)\n ) {\n throw new Error(\n `Invalid src prop (${src}) on \\`next/image\\`, hostname \"${parsedSrc.hostname}\" is not configured under images in your \\`next.config.js\\`\\n` +\n `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-host`\n )\n }\n }\n }\n }\n\n const q = findClosestQuality(quality, config)\n\n return `${config.path}?url=${encodeURIComponent(src)}&w=${width}&q=${q}${\n src.startsWith('/_next/static/media/') && process.env.NEXT_DEPLOYMENT_ID\n ? `&dpl=${process.env.NEXT_DEPLOYMENT_ID}`\n : ''\n }`\n}\n\n// We use this to determine if the import is the default loader\n// or a custom loader defined by the user in next.config.js\ndefaultLoader.__next_img_default = true\n\nexport default defaultLoader\n"],"names":["defaultLoader","config","src","width","quality","startsWith","includes","localPatterns","length","pathname","search","Error","process","env","NODE_ENV","missingValues","push","join","JSON","stringify","NEXT_RUNTIME","hasLocalMatch","require","domains","remotePatterns","parsedSrc","URL","err","console","error","hasRemoteMatch","hostname","q","findClosestQuality","path","encodeURIComponent","NEXT_DEPLOYMENT_ID","__next_img_default"],"mappings":"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","ignoreList":[0]}