{"version":3,"file":"index.cjs","sources":["../src/constants.ts","../src/helpers.ts","../src/plugin.ts","../src/index.ts"],"sourcesContent":["export const LOGGER_PREFIX = '[vite-plugin-vuetify-sass]'\nexport const REGEX_1 = /^\\/@fs\\/plugins\\/vuetify-sass\\/lib\\/(.*?)(\\?.*)?$/\nexport const REGEX_2 = /^\\/@ssr\\/plugins\\/vuetify-sass\\/lib\\/(.*?)(\\?.*)?$/\nexport const SOURCE_VUETIFY_STYLES = 'vuetify/styles'\nexport const VIRTUAL_VUETIFY_SASS = 'plugins/vuetify-sass/lib'\n","import { createRequire } from 'node:module'\nimport { cwd } from 'node:process'\nimport { dirname, isAbsolute, relative } from 'pathe'\nimport { SOURCE_VUETIFY_STYLES } from './constants'\n\nexport function getVuetifyRootDir(): string {\n  const require = createRequire(import.meta.url)\n  return dirname(require.resolve('vuetify/package.json', { paths: [cwd()] }))\n}\n\nexport function isSubdir(parent: string, child: string): boolean {\n  const rel = relative(parent, child)\n  return !!(rel && !rel.startsWith('..') && !isAbsolute(rel))\n}\n\nexport function isVuetifyComponentStyle(source: string, importer: string | undefined): boolean {\n  return !!(\n    importer\n    && source.endsWith('.css')\n    && isSubdir(getVuetifyRootDir(), isAbsolute(source) ? source : importer)\n  )\n}\n\nexport function isVuetifyMainStyle(source: string): boolean {\n  return source === SOURCE_VUETIFY_STYLES\n}\n","import type { Plugin, PluginOptions } from './types'\nimport { cwd } from 'node:process'\nimport { isAbsolute, join, normalize, relative } from 'pathe'\nimport { LOGGER_PREFIX, REGEX_1, REGEX_2, VIRTUAL_VUETIFY_SASS } from './constants'\nimport { getVuetifyRootDir, isVuetifyComponentStyle, isVuetifyMainStyle } from './helpers'\n\nexport function plugin(options: PluginOptions): Plugin {\n  let configFile: string\n  const vuetifyLib = join(getVuetifyRootDir(), 'lib')\n  const tempFiles = new Map<string, string>()\n\n  return {\n    name: 'vuetify:sass',\n    enforce: 'pre',\n\n    /* vite */\n    configResolved(resolvedConfig) {\n      const stylesPlugin = resolvedConfig.plugins.find(plugin => plugin.name === 'vuetify:styles')\n      if (stylesPlugin) {\n        throw new Error(\n         `${LOGGER_PREFIX}: Internal style plugin from vite-plugin-vuetify detected. Do not use the 'styles' option from vite-plugin-vuetify.`,\n        )\n      }\n\n      if (isAbsolute(options.configFile))\n        configFile = options.configFile\n      else\n        configFile = join(resolvedConfig.root || cwd(), options.configFile)\n    },\n\n    /* rollup */\n    async resolveId(source, importer, { custom, ssr }) {\n      const isMainStyle = isVuetifyMainStyle(source)\n      const isComponentStyle = isVuetifyComponentStyle(source, importer)\n\n      if (isMainStyle || isComponentStyle) {\n        const resolution = await this.resolve(source, importer, { skipSelf: true, custom })\n        if (!resolution)\n          return null\n\n        const target = resolution.id.replace(/\\.css$/, '.sass')\n        const file = relative(vuetifyLib, target)\n        const content = `@use \"${normalize(configFile)}\"\\n@use \"${normalize(target)}\"`\n\n        tempFiles.set(file, content)\n        return ssr\n          ? `/@ssr/${VIRTUAL_VUETIFY_SASS}/${file}`\n          : `/@fs/${VIRTUAL_VUETIFY_SASS}/${file}`\n      }\n    },\n\n    load(id) {\n      if (id.startsWith(`/@fs/${VIRTUAL_VUETIFY_SASS}/`)) {\n        const file = REGEX_1.exec(id)![1]\n        return tempFiles.get(file)\n      }\n\n      if (id.startsWith(`/@ssr/${VIRTUAL_VUETIFY_SASS}/`)) {\n        const file = REGEX_2.exec(id)![1]\n        return tempFiles.get(file)\n      }\n    },\n  }\n}\n","import type { Plugin, PluginOptions } from './types'\nimport { LOGGER_PREFIX } from './constants'\nimport { plugin } from './plugin'\n\nexport default function vitePlugin(options: PluginOptions): Plugin {\n  if (!options.configFile)\n    throw new Error(`${LOGGER_PREFIX}: configFile option is required.`)\n\n  return plugin(options)\n}\n"],"names":["require","createRequire","dirname","cwd","relative","isAbsolute","join","plugin","normalize"],"mappings":"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"}