{"version":3,"file":"index.mjs","sources":["../src/nuxt-bundle-analysis/getBundleName.ts","../src/nuxt-bundle-analysis/nuxtBundleAnalysisPlugin.ts","../src/index.ts"],"sourcesContent":["export function getBundleName(\n  initialName = \"\",\n  initialDir = \"\",\n  format: string,\n  name: string | undefined,\n) {\n  let bundleName = name ? `${initialName}-${name}` : initialName;\n\n  const dir = initialDir.includes(\"server\")\n    ? \"server\"\n    : initialDir.includes(\"client\")\n      ? \"client\"\n      : undefined;\n  if (dir) {\n    bundleName = `${bundleName}-${dir}`;\n  }\n\n  format = format === \"es\" ? \"esm\" : format;\n  bundleName = `${bundleName}-${format}`;\n\n  return bundleName;\n}\n","import {\n  type BundleAnalysisUploadPlugin,\n  red,\n} from \"@codecov/bundler-plugin-core\";\nimport { getBundleName } from \"./getBundleName\";\n\nexport const nuxtBundleAnalysisPlugin: BundleAnalysisUploadPlugin = ({\n  output,\n  pluginName,\n  pluginVersion,\n}) => ({\n  version: output.version,\n  name: pluginName,\n  pluginVersion,\n  vite: {\n    generateBundle(this, options) {\n      // TODO - remove this once we hard fail on not having a bundle name\n      // don't need to do anything if the bundle name is not present or empty\n      if (!output.bundleName || output.bundleName === \"\") {\n        red(\"Bundle name is not present or empty. Skipping upload.\");\n        return;\n      }\n\n      const name = getBundleName(\n        output.originalBundleName,\n        options.dir,\n        options.format,\n        options.name,\n      );\n\n      output.unlockBundleName();\n      output.setBundleName(name);\n      output.lockBundleName();\n\n      // manually set this to avoid resetting in the vite plugin\n      output.setPlugin(pluginName, pluginVersion);\n    },\n  },\n});\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { type UnpluginOptions, createVitePlugin } from \"unplugin\";\nimport {\n  type Options,\n  normalizeOptions,\n  checkNodeVersion,\n  Output,\n  handleErrors,\n  createSentryInstance,\n  telemetryPlugin,\n} from \"@codecov/bundler-plugin-core\";\nimport { _internal_viteBundleAnalysisPlugin } from \"@codecov/vite-plugin\";\nimport { addVitePlugin, defineNuxtModule } from \"@nuxt/kit\";\n\nimport { nuxtBundleAnalysisPlugin } from \"./nuxt-bundle-analysis/nuxtBundleAnalysisPlugin\";\nimport { type NuxtModule } from \"nuxt/schema\";\n\n// @ts-expect-error this value is being replaced by rollup\nconst PLUGIN_NAME = __PACKAGE_NAME__ as string;\n// @ts-expect-error this value is being replaced by rollup\nconst PLUGIN_VERSION = __PACKAGE_VERSION__ as string;\n\nconst codecovNuxtPluginFactory = createVitePlugin<Options, true>(\n  (userOptions, unpluginMetaContext) => {\n    if (checkNodeVersion(unpluginMetaContext)) {\n      return [];\n    }\n\n    const normalizedOptions = normalizeOptions(userOptions);\n    if (!normalizedOptions.success) {\n      const { shouldExit } = handleErrors(normalizedOptions);\n\n      if (shouldExit) {\n        process.exit(1);\n      }\n      return [];\n    }\n\n    const plugins: UnpluginOptions[] = [];\n    const options = normalizedOptions.options;\n    const sentryConfig = createSentryInstance({\n      telemetry: options.telemetry,\n      isDryRun: options.dryRun,\n      pluginName: PLUGIN_NAME,\n      pluginVersion: PLUGIN_VERSION,\n      options,\n      bundler: unpluginMetaContext.framework,\n      metaFramework: \"nuxt\",\n    });\n\n    const output = new Output(\n      options,\n      { metaFramework: unpluginMetaContext.framework },\n      sentryConfig,\n    );\n\n    if (options.enableBundleAnalysis) {\n      plugins.push(\n        telemetryPlugin({\n          sentryClient: sentryConfig.sentryClient,\n          sentryScope: sentryConfig.sentryScope,\n          telemetry: options.telemetry,\n        }),\n        nuxtBundleAnalysisPlugin({\n          output,\n          pluginName: PLUGIN_NAME,\n          pluginVersion: PLUGIN_VERSION,\n        }),\n        _internal_viteBundleAnalysisPlugin({\n          output,\n          pluginName: PLUGIN_NAME,\n          pluginVersion: PLUGIN_VERSION,\n        }),\n      );\n    }\n\n    return plugins;\n  },\n);\n\n/**\n * Details for the Codecov Nuxt module.\n *\n * @example\n * ```typescript\n * // nuxt.config.ts\n * import { defineNuxtConfig } from \"nuxt/config\";\n *\n * export default defineNuxtConfig({\n *   devtools: { enabled: true },\n *   w\n *   builder: \"vite\",\n *   // Ensure that the plugin is added to the modules array\n *   modules: [\n *     [\n *       \"@codecov/nuxt-plugin\",\n *       {\n *         enableBundleAnalysis: true,\n *         bundleName: \"nuxt-bundle-analysis\",\n *         gitService: \"github\",\n *       },\n *     ],\n *   ],\n * });\n * ```\n *\n * @see {@link @codecov/bundler-plugin-core!Options | Options} for list of options.\n */\nconst codecovNuxtPlugin = defineNuxtModule<Options>({\n  meta: {\n    name: PLUGIN_NAME,\n    configKey: \"codecovNuxtPlugin\",\n  },\n  setup(options) {\n    addVitePlugin(() => codecovNuxtPluginFactory(options));\n  },\n}) as NuxtModule<Options>;\n\nexport default codecovNuxtPlugin;\n"],"names":[],"mappings":";;;;;AAAO,SAAS,cACd,WAAc,GAAA,EAAA,EACd,UAAa,GAAA,EAAA,EACb,QACA,IACA,EAAA;AACA,EAAA,IAAI,aAAa,IAAO,GAAA,CAAA,EAAG,WAAW,CAAA,CAAA,EAAI,IAAI,CAAK,CAAA,GAAA,WAAA,CAAA;AAEnD,EAAM,MAAA,GAAA,GAAM,UAAW,CAAA,QAAA,CAAS,QAAQ,CAAA,GACpC,WACA,UAAW,CAAA,QAAA,CAAS,QAAQ,CAAA,GAC1B,QACA,GAAA,KAAA,CAAA,CAAA;AACN,EAAA,IAAI,GAAK,EAAA;AACP,IAAa,UAAA,GAAA,CAAA,EAAG,UAAU,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA,CAAA;AAAA,GACnC;AAEA,EAAS,MAAA,GAAA,MAAA,KAAW,OAAO,KAAQ,GAAA,MAAA,CAAA;AACnC,EAAa,UAAA,GAAA,CAAA,EAAG,UAAU,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA,CAAA;AAEpC,EAAO,OAAA,UAAA,CAAA;AACT;;ACfO,MAAM,2BAAuD,CAAC;AAAA,EACnE,MAAA;AAAA,EACA,UAAA;AAAA,EACA,aAAA;AACF,CAAO,MAAA;AAAA,EACL,SAAS,MAAO,CAAA,OAAA;AAAA,EAChB,IAAM,EAAA,UAAA;AAAA,EACN,aAAA;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,eAAqB,OAAS,EAAA;AAG5B,MAAA,IAAI,CAAC,MAAA,CAAO,UAAc,IAAA,MAAA,CAAO,eAAe,EAAI,EAAA;AAClD,QAAA,GAAA,CAAI,uDAAuD,CAAA,CAAA;AAC3D,QAAA,OAAA;AAAA,OACF;AAEA,MAAA,MAAM,IAAO,GAAA,aAAA;AAAA,QACX,MAAO,CAAA,kBAAA;AAAA,QACP,OAAQ,CAAA,GAAA;AAAA,QACR,OAAQ,CAAA,MAAA;AAAA,QACR,OAAQ,CAAA,IAAA;AAAA,OACV,CAAA;AAEA,MAAA,MAAA,CAAO,gBAAiB,EAAA,CAAA;AACxB,MAAA,MAAA,CAAO,cAAc,IAAI,CAAA,CAAA;AACzB,MAAA,MAAA,CAAO,cAAe,EAAA,CAAA;AAGtB,MAAO,MAAA,CAAA,SAAA,CAAU,YAAY,aAAa,CAAA,CAAA;AAAA,KAC5C;AAAA,GACF;AACF,CAAA,CAAA;;ACpBA,MAAM,WAAc,GAAA,sBAAA,CAAA;AAEpB,MAAM,cAAiB,GAAA,OAAA,CAAA;AAEvB,MAAM,wBAA2B,GAAA,gBAAA;AAAA,EAC/B,CAAC,aAAa,mBAAwB,KAAA;AACpC,IAAI,IAAA,gBAAA,CAAiB,mBAAmB,CAAG,EAAA;AACzC,MAAA,OAAO,EAAC,CAAA;AAAA,KACV;AAEA,IAAM,MAAA,iBAAA,GAAoB,iBAAiB,WAAW,CAAA,CAAA;AACtD,IAAI,IAAA,CAAC,kBAAkB,OAAS,EAAA;AAC9B,MAAA,MAAM,EAAE,UAAA,EAAe,GAAA,YAAA,CAAa,iBAAiB,CAAA,CAAA;AAErD,MAAA,IAAI,UAAY,EAAA;AACd,QAAA,OAAA,CAAQ,KAAK,CAAC,CAAA,CAAA;AAAA,OAChB;AACA,MAAA,OAAO,EAAC,CAAA;AAAA,KACV;AAEA,IAAA,MAAM,UAA6B,EAAC,CAAA;AACpC,IAAA,MAAM,UAAU,iBAAkB,CAAA,OAAA,CAAA;AAClC,IAAA,MAAM,eAAe,oBAAqB,CAAA;AAAA,MACxC,WAAW,OAAQ,CAAA,SAAA;AAAA,MACnB,UAAU,OAAQ,CAAA,MAAA;AAAA,MAClB,UAAY,EAAA,WAAA;AAAA,MACZ,aAAe,EAAA,cAAA;AAAA,MACf,OAAA;AAAA,MACA,SAAS,mBAAoB,CAAA,SAAA;AAAA,MAC7B,aAAe,EAAA,MAAA;AAAA,KAChB,CAAA,CAAA;AAED,IAAA,MAAM,SAAS,IAAI,MAAA;AAAA,MACjB,OAAA;AAAA,MACA,EAAE,aAAe,EAAA,mBAAA,CAAoB,SAAU,EAAA;AAAA,MAC/C,YAAA;AAAA,KACF,CAAA;AAEA,IAAA,IAAI,QAAQ,oBAAsB,EAAA;AAChC,MAAQ,OAAA,CAAA,IAAA;AAAA,QACN,eAAgB,CAAA;AAAA,UACd,cAAc,YAAa,CAAA,YAAA;AAAA,UAC3B,aAAa,YAAa,CAAA,WAAA;AAAA,UAC1B,WAAW,OAAQ,CAAA,SAAA;AAAA,SACpB,CAAA;AAAA,QACD,wBAAyB,CAAA;AAAA,UACvB,MAAA;AAAA,UACA,UAAY,EAAA,WAAA;AAAA,UACZ,aAAe,EAAA,cAAA;AAAA,SAChB,CAAA;AAAA,QACD,kCAAmC,CAAA;AAAA,UACjC,MAAA;AAAA,UACA,UAAY,EAAA,WAAA;AAAA,UACZ,aAAe,EAAA,cAAA;AAAA,SAChB,CAAA;AAAA,OACH,CAAA;AAAA,KACF;AAEA,IAAO,OAAA,OAAA,CAAA;AAAA,GACT;AACF,CAAA,CAAA;AA8BA,MAAM,oBAAoB,gBAA0B,CAAA;AAAA,EAClD,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,WAAA;AAAA,IACN,SAAW,EAAA,mBAAA;AAAA,GACb;AAAA,EACA,MAAM,OAAS,EAAA;AACb,IAAc,aAAA,CAAA,MAAM,wBAAyB,CAAA,OAAO,CAAC,CAAA,CAAA;AAAA,GACvD;AACF,CAAC;;;;"}