/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/nuxt-speedkit@2.2.9/module.mjs
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
import path from"pathe";import consola from"consola";import{addBundleRendererDirective}from"./bundleRenderer";import{registerAppEntry,autoImportComponents}from"./hookFunctions";import{getOptions,getComponentFiles,setEnvironments,optimizePreloads,getNuxtImageModuleOptions,MODULE_NAME}from"./utils";import FontConfig from"./runtime/classes/FontConfig";import{getCrossorigin}from"./runtime/utils";import{getSupportedBrowserDetector}from"./utils/browser";const renamedNotification=()=>{consola.warn("🚨 `nuxt-speedkit` becomes `nuxt-booster` with full Nuxt 3 support. Please update your dependencies. You can still retrieve version 2 (`nuxt-booster@2`), but it will no longer be maintained.")};export default async function(t){renamedNotification();const e=getOptions({...this.options.speedkit,...t});e.disableNuxtImage||await addNuxtImage(this);const o=path.resolve(__dirname,"runtime");this.nuxt.options.alias["#speedkit"]=o,this.nuxt.options.build.transpile.push("#speedkit"),this.nuxt.options.alias["nuxt-speedkit"]=o,this.nuxt.options.build.transpile.push("nuxt-speedkit"),setEnvironments(this.nuxt,e),e.detection.performance&&this.options.ssr?this.nuxt.hook("webpack:config",registerAppEntry(path.resolve(this.options.buildDir,MODULE_NAME,"entry.js"))):consola.warn(`[${MODULE_NAME}] module functionality is limited without ssr and performance check`),e.optimizePreloads?optimizePreloads(this.nuxt):consola.warn(`[${MODULE_NAME}] preload optimization is disabled by module option \`optimizePreloads\`.`),addBundleRendererDirective(this.options.render.bundleRenderer);const n=path.join(this.nuxt.options.buildDir,MODULE_NAME,"components");e.componentAutoImport&&autoImportComponents(this.nuxt,n,e.componentPrefix),await addBuildTemplates(this,e)}export const meta={name:MODULE_NAME};async function addBuildTemplates(t,e){const o=await getSupportedBrowserDetector(!e.detection.browserSupport),n=new FontConfig(e.fonts,t.nuxt.options.alias);t.nuxt.hook("listen",((t,e)=>{process.env.NUXT_SPEEDKIT_INTERAL_URL=`${e.https?"https":"http"}://${e.host||"localhost"}:${e.port}`})),["client","server"].forEach((i=>{t.addPlugin({src:path.resolve(__dirname,"runtime/tmpl","plugin.mjs"),fileName:MODULE_NAME+`/plugin.${i}.js`,mode:i,options:{mode:i,fonts:n.toJSON(),targetFormats:e.targetFormats,crossorigin:getCrossorigin(e.crossorigin,t.nuxt.options.render.crossorigin),supportedBrowserDetector:o,loader:e.loader}})})),t.addTemplate({src:path.resolve(__dirname,"runtime/tmpl","entry.mjs"),fileName:MODULE_NAME+"/entry.js",options:{isDev:!e.debug&&"development"===process.env.NODE_ENV,runOptions:e.runOptions,ssr:t.nuxt.options.ssr,ignorePerformance:!e.detection.performance,performanceMetrics:JSON.stringify(e.performanceMetrics||{}),supportedBrowserDetector:o}}),t.addTemplate({src:path.resolve(__dirname,"runtime/tmpl","fonts.css"),fileName:MODULE_NAME+"/fonts.css",options:{content:n.toCSS()}});const i=path.join(__dirname,"components");(await getComponentFiles(i)).forEach((e=>{t.addTemplate({src:path.join(i,e),fileName:`${MODULE_NAME}/components/${e}`})}))}async function addNuxtImage({addModule:t,nuxt:e}){[...e.options.modules,...e.options.buildModules].find((t=>"@nuxt/image"===getModuleName(t)))||(consola.info(`[${MODULE_NAME}] added module \`@nuxt/image\`, for more configuration learn more at \`https://image.nuxtjs.org/setup#configure\``),await t("@nuxt/image")),e.hook("modules:done",(t=>{const e=getNuxtImageModuleOptions(t);e&&["youtube","vimeo"].find((t=>!(t in e.alias)))&&consola.warn("For using `SpeedkitYoutube` and `SpeedkitVimeo` you have to set the required domains & aliases for the `Provider` in the `@nuxt/image` options. \nLearn more https://nuxt-speedkit.grabarzundpartner.dev/setup#nuxtimage")}))}function getModuleName(t){return Array.isArray(t)&&(t=t[0]),t.meta?t.meta.name:t}
//# sourceMappingURL=/sm/d660c855eca07c3bcf47ea08bc635d8607bd6bd3a06ce8286ee617614e0ce7b9.map