{"version":3,"sources":["jsdelivr-header.js","/npm/@nuxt/image-edge@1.3.0-28493895.369b747/dist/module.mjs"],"names":[],"mappings":"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","file":"/npm/@nuxt/image-edge@1.3.0-28493895.369b747/dist/module.mjs","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@nuxt/image-edge@1.3.0-28493895.369b747/dist/module.mjs\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import { parseURL, withLeadingSlash } from 'ufo';\nimport { createResolver, useNitro, useNuxt, resolvePath, defineNuxtModule, addImports, addComponent, addTemplate, addPlugin } from '@nuxt/kit';\nimport { resolve, relative, normalize } from 'pathe';\nimport { defu } from 'defu';\nimport { hash } from 'ohash';\nimport { provider } from 'std-env';\nimport { existsSync } from 'node:fs';\n\nconst ipxSetup = (setupOptions) => (providerOptions, moduleOptions) => {\n  const resolver = createResolver(import.meta.url);\n  const nitro = useNitro();\n  const nuxt = useNuxt();\n  const ipxBaseURL = providerOptions.options?.baseURL || \"/_ipx\";\n  const hasUserProvidedIPX = nuxt.options.serverHandlers.find((handler) => handler.route?.startsWith(ipxBaseURL)) || nuxt.options.devServerHandlers.find((handler) => handler.route?.startsWith(ipxBaseURL));\n  if (hasUserProvidedIPX) {\n    return;\n  }\n  const publicDirs = nuxt.options._layers.map((layer) => {\n    const isRootLayer = layer.config.rootDir === nuxt.options.rootDir;\n    const layerOptions = isRootLayer ? nuxt.options : layer.config;\n    const path = isRootLayer ? moduleOptions.dir : layerOptions.dir?.public || \"public\";\n    return resolve(layerOptions.srcDir, path);\n  }).filter((dir) => existsSync(dir));\n  const relativeDir = relative(nitro.options.output.serverDir, nitro.options.output.publicDir);\n  const ipxOptions = {\n    ...providerOptions.options,\n    baseURL: ipxBaseURL,\n    alias: {\n      ...moduleOptions.alias,\n      ...providerOptions.options?.alias\n    },\n    fs: providerOptions.options?.fs !== false && {\n      dir: nuxt.options.dev ? publicDirs : relativeDir,\n      ...providerOptions.options?.fs\n    },\n    http: providerOptions.options?.http !== false && {\n      domains: moduleOptions.domains,\n      ...providerOptions.options?.http\n    }\n  };\n  nitro.options._config.runtimeConfig = nitro.options._config.runtimeConfig || {};\n  nitro.options.runtimeConfig.ipx = ipxOptions;\n  const ipxHandler = {\n    route: `${ipxBaseURL}/**`,\n    middleware: false,\n    handler: resolver.resolve(\"./runtime/ipx\")\n  };\n  if (!setupOptions?.isStatic) {\n    nitro.options.handlers.push(ipxHandler);\n  }\n  if (!nitro.options.dev) {\n    nitro.options._config.runtimeConfig.ipx = defu({ fs: { dir: publicDirs } }, ipxOptions);\n    nitro.options._config.handlers.push(ipxHandler);\n  }\n};\n\nconst BuiltInProviders = [\n  \"aliyun\",\n  \"awsAmplify\",\n  \"bunny\",\n  \"caisy\",\n  \"cloudflare\",\n  \"cloudimage\",\n  \"cloudinary\",\n  \"contentful\",\n  \"directus\",\n  \"edgio\",\n  \"fastly\",\n  \"glide\",\n  \"gumlet\",\n  \"hygraph\",\n  \"imageengine\",\n  \"imagekit\",\n  \"imgix\",\n  \"ipx\",\n  \"ipxStatic\",\n  \"layer0\",\n  \"netlify\",\n  \"netlifyLargeMedia\",\n  \"netlifyImageCdn\",\n  \"prepr\",\n  \"none\",\n  \"prismic\",\n  \"sanity\",\n  \"storyblok\",\n  \"strapi\",\n  \"twicpics\",\n  \"unsplash\",\n  \"uploadcare\",\n  \"vercel\",\n  \"wagtail\",\n  \"weserv\",\n  \"sirv\"\n];\nconst providerSetup = {\n  // IPX\n  ipx: ipxSetup(),\n  ipxStatic: ipxSetup({ isStatic: true }),\n  // https://vercel.com/docs/more/adding-your-framework#images\n  vercel(_providerOptions, moduleOptions, nuxt) {\n    nuxt.options.nitro = defu(nuxt.options.nitro, {\n      vercel: {\n        config: {\n          images: {\n            domains: moduleOptions.domains,\n            minimumCacheTTL: 60 * 5,\n            sizes: Array.from(new Set(Object.values(moduleOptions.screens || {})))\n          }\n        }\n      }\n    });\n  },\n  awsAmplify(_providerOptions, moduleOptions, nuxt) {\n    nuxt.options.nitro = defu(nuxt.options.nitro, {\n      awsAmplify: {\n        imageOptimization: {\n          path: \"/_amplify/image\",\n          cacheControl: \"public, max-age=300, immutable\"\n        },\n        imageSettings: {\n          sizes: Array.from(new Set(Object.values(moduleOptions.screens || {}))),\n          formats: [\"image/jpeg\", \"image/png\", \"image/webp\", \"image/avif\"],\n          minimumCacheTTL: 60 * 5,\n          domains: moduleOptions.domains,\n          remotePatterns: [],\n          // Provided by domains\n          dangerouslyAllowSVG: false\n          // TODO\n        }\n      }\n    });\n  }\n};\nasync function resolveProviders(nuxt, options) {\n  const providers = [];\n  for (const key in options) {\n    if (BuiltInProviders.includes(key)) {\n      providers.push(await resolveProvider(nuxt, key, { provider: key, options: options[key] }));\n    }\n  }\n  for (const key in options.providers) {\n    providers.push(await resolveProvider(nuxt, key, options.providers[key]));\n  }\n  return providers;\n}\nasync function resolveProvider(_nuxt, key, input) {\n  if (typeof input === \"string\") {\n    input = { name: input };\n  }\n  if (!input.name) {\n    input.name = key;\n  }\n  if (!input.provider) {\n    input.provider = input.name;\n  }\n  if (input.provider in normalizableProviders) {\n    input.provider = normalizableProviders[input.provider]();\n  }\n  const resolver = createResolver(import.meta.url);\n  input.provider = BuiltInProviders.includes(input.provider) ? await resolver.resolve(\"./runtime/providers/\" + input.provider) : await resolvePath(input.provider);\n  const setup = input.setup || providerSetup[input.name];\n  return {\n    ...input,\n    setup,\n    runtime: normalize(input.provider),\n    importName: `${key}Runtime$${hash(input.provider)}`,\n    runtimeOptions: input.options\n  };\n}\nconst autodetectableProviders = {\n  vercel: \"vercel\",\n  aws_amplify: \"awsAmplify\",\n  netlify: \"netlify\"\n};\nconst normalizableProviders = {\n  netlify: () => {\n    return process.env.NETLIFY_LFS_ORIGIN_URL ? \"netlifyLargeMedia\" : \"netlifyImageCdn\";\n  }\n};\nfunction detectProvider(userInput = \"\") {\n  if (process.env.NUXT_IMAGE_PROVIDER) {\n    return process.env.NUXT_IMAGE_PROVIDER;\n  }\n  if (userInput && userInput !== \"auto\") {\n    return userInput;\n  }\n  if (provider in autodetectableProviders) {\n    return autodetectableProviders[provider];\n  }\n}\n\nconst module = defineNuxtModule({\n  defaults: (nuxt) => ({\n    inject: false,\n    provider: \"auto\",\n    dir: nuxt.options.dir.public,\n    presets: {},\n    domains: [],\n    sharp: {},\n    format: [\"webp\"],\n    // https://tailwindcss.com/docs/breakpoints\n    screens: {\n      xs: 320,\n      sm: 640,\n      md: 768,\n      lg: 1024,\n      xl: 1280,\n      xxl: 1536,\n      \"2xl\": 1536\n    },\n    providers: {},\n    alias: {},\n    densities: [1, 2]\n  }),\n  meta: {\n    name: \"@nuxt/image\",\n    configKey: \"image\",\n    compatibility: {\n      nuxt: \"^3.1.0\"\n    }\n  },\n  async setup(options, nuxt) {\n    const resolver = createResolver(import.meta.url);\n    options.dir = resolve(nuxt.options.srcDir, options.dir);\n    options.domains = options.domains.map((d) => {\n      if (!d.startsWith(\"http\")) {\n        d = \"http://\" + d;\n      }\n      return parseURL(d).host;\n    }).filter(Boolean);\n    options.alias = Object.fromEntries(Object.entries(options.alias).map((e) => [withLeadingSlash(e[0]), e[1]]));\n    options.provider = detectProvider(options.provider);\n    if (options.provider) {\n      options[options.provider] = options[options.provider] || {};\n    }\n    options.densities = options.densities || [];\n    const imageOptions = pick(options, [\n      \"screens\",\n      \"presets\",\n      \"provider\",\n      \"domains\",\n      \"alias\",\n      \"densities\",\n      \"format\",\n      \"quality\"\n    ]);\n    const providers = await resolveProviders(nuxt, options);\n    for (const p of providers) {\n      if (typeof p.setup === \"function\" && p.name !== \"ipx\" && p.name !== \"ipxStatic\") {\n        await p.setup(p, options, nuxt);\n      }\n    }\n    const runtimeDir = resolver.resolve(\"./runtime\");\n    nuxt.options.alias[\"#image\"] = runtimeDir;\n    nuxt.options.build.transpile.push(runtimeDir);\n    addImports({\n      name: \"useImage\",\n      from: resolver.resolve(\"runtime/composables\")\n    });\n    addComponent({\n      name: \"NuxtImg\",\n      filePath: resolver.resolve(\"./runtime/components/nuxt-img\")\n    });\n    addComponent({\n      name: \"NuxtPicture\",\n      filePath: resolver.resolve(\"./runtime/components/nuxt-picture\")\n    });\n    addTemplate({\n      filename: \"image-options.mjs\",\n      getContents() {\n        return `\n${providers.map((p) => `import * as ${p.importName} from '${p.runtime}'`).join(\"\\n\")}\n\nexport const imageOptions = ${JSON.stringify(imageOptions, null, 2)}\n\nimageOptions.providers = {\n${providers.map((p) => `  ['${p.name}']: { provider: ${p.importName}, defaults: ${JSON.stringify(p.runtimeOptions)} }`).join(\",\\n\")}\n}\n        `;\n      }\n    });\n    nuxt.hook(\"nitro:init\", async (nitro) => {\n      if (!options.provider || options.provider === \"ipx\" || options.provider === \"ipxStatic\") {\n        const resolvedProvider = nitro.options.static || options.provider === \"ipxStatic\" ? \"ipxStatic\" : nitro.options.node ? \"ipx\" : \"none\";\n        imageOptions.provider = options.provider = resolvedProvider;\n        options[resolvedProvider] = options[resolvedProvider] || {};\n        const p = await resolveProvider(nuxt, resolvedProvider, {\n          options: options[resolvedProvider]\n        });\n        if (!providers.some((p2) => p2.name === resolvedProvider)) {\n          providers.push(p);\n        }\n        if (typeof p.setup === \"function\") {\n          await p.setup(p, options, nuxt);\n        }\n      }\n    });\n    if (options.inject) {\n      addPlugin({ src: resolver.resolve(\"./runtime/plugin\") });\n    }\n  }\n});\nfunction pick(obj, keys) {\n  const newobj = {};\n  for (const key of keys) {\n    newobj[key] = obj[key];\n  }\n  return newobj;\n}\n\nexport { module as default };\n"]}