{
  "version": 3,
  "sources": ["../src/index.ts", "../src/scripts/extractor.ts"],
  "sourcesContent": ["import { writeFileSync } from 'node:fs';\n\nimport autoprefixer from 'autoprefixer';\nimport postcss from 'postcss';\nimport { parse } from 'postcss-js';\nimport nested from 'postcss-nested';\n\nimport { extractStylesFromFiles } from './scripts/extractor.js';\n\nconst state = {\n  duplicatesFound: false,\n  processed: false,\n};\n\ninterface PluginOptions {\n  patterns?: string[];\n}\n\nconst plugin: postcss.PluginCreator<PluginOptions> = (opts) => ({\n  async Once(root: postcss.Root) {\n    if (state.duplicatesFound) return;\n\n    const atRule = root.first as postcss.AtRule | undefined;\n    const filePath = atRule?.source?.input?.file;\n\n    if (atRule?.name === 'stylez' && filePath?.includes(process.cwd())) {\n      if (state.processed) {\n        state.duplicatesFound = true;\n        process.stdout.write(\n          '\u26D4\uFE0F Multiple @stylez files detected. Remove duplicates before processing.\\n\\n',\n        );\n        return;\n      }\n\n      try {\n        state.processed = true;\n\n        const styles = await extractStylesFromFiles(opts?.patterns ?? []);\n\n        if (state.duplicatesFound) return;\n\n        root.removeAll();\n\n        const result = await postcss([nested, autoprefixer]).process(styles, {\n          from: undefined,\n          parser: parse,\n        });\n\n        if (result.css.length === 0) return;\n\n        const finalCSS = `@stylez;\\n\\n${result.css}`;\n\n        writeFileSync(filePath, finalCSS);\n\n        process.stdout.write(`\uD83C\uDFA8 Styles saved to: ${filePath}\\n\\n`);\n      } catch {\n        process.stdout.write('Issue saving styles');\n      }\n    }\n  },\n\n  postcssPlugin: '@stylezjs/postcss-plugin',\n});\n\nplugin.postcss = true;\n\nexport default plugin;\n\n// Test\n// void (async () => {\n//   const styles = await extractStylesFromFiles(['src/test/**/*.mts']);\n\n//   if (state.duplicatesFound) return;\n\n//   const result = await postcss([nested, autoprefixer]).process(styles, {\n//     from: undefined,\n//     parser: parse,\n//   });\n\n//   if (result.css.length === 0) return;\n\n//   const finalCSS = `@stylez;\\n\\n${result.css}`;\n\n//   // writeFileSync(filePath, finalCSS);\n\n//   process.stdout.write(finalCSS);\n// })();\n", "/* eslint-disable @typescript-eslint/no-require-imports */\n/* eslint-disable no-await-in-loop */\n\nimport pkg from 'fast-glob';\nconst { glob } = pkg;\n\nimport { build } from 'esbuild';\nimport { existsSync, mkdirSync, rmSync } from 'fs';\nimport path from 'path';\n\nconst tmpDir = './.tmp';\nif (!existsSync(tmpDir)) {\n  mkdirSync(tmpDir, { recursive: true });\n}\n\nexport const extractStylesFromFiles = async (patterns: string[]) => {\n  const entryFiles = await glob(patterns);\n  const format = process.env.BUILD_FORMAT as 'cjs' | 'esm';\n\n  for (const entry of entryFiles) {\n    const tmpFile = path.join(tmpDir, `tmp-${path.basename(entry)}.js`);\n\n    await build({\n      bundle: true,\n      entryPoints: [entry],\n      external: ['@stylezjs/stylez'],\n      format,\n      minify: true,\n      outfile: tmpFile,\n      platform: 'node',\n    });\n\n    if (format === 'esm') {\n      await import(path.resolve(tmpFile));\n    } else {\n      require(path.resolve(tmpFile));\n    }\n\n    rmSync(tmpDir, { force: true, recursive: true });\n  }\n\n  let finalCss;\n  if (format === 'esm') {\n    const { getAllCss } = await import('@stylezjs/stylez');\n    finalCss = getAllCss();\n  } else {\n    const { getAllCss } = require('@stylezjs/stylez');\n    finalCss = getAllCss();\n  }\n\n  return finalCss;\n};\n"],
  "mappings": "yPAAA,OAAS,iBAAAA,MAAqB,UAE9B,OAAOC,MAAkB,eACzB,OAAOC,MAAa,UACpB,OAAS,SAAAC,MAAa,aACtB,OAAOC,MAAY,iBCFnB,OAAOC,MAAS,YAGhB,OAAS,SAAAC,MAAa,UACtB,OAAS,cAAAC,EAAY,aAAAC,EAAW,UAAAC,MAAc,KAC9C,OAAOC,MAAU,OAJjB,GAAM,CAAE,KAAAC,CAAK,EAAIC,EAMXC,EAAS,SACVC,EAAWD,CAAM,GACpBE,EAAUF,EAAQ,CAAE,UAAW,EAAK,CAAC,EAGhC,IAAMG,EAAyB,MAAOC,GAAuB,CAClE,IAAMC,EAAa,MAAMP,EAAKM,CAAQ,EAChCE,EAAS,MAEf,QAAWC,KAASF,EAAY,CAC9B,IAAMG,EAAUC,EAAK,KAAKT,EAAQ,OAAOS,EAAK,SAASF,CAAK,CAAC,KAAK,EAElE,MAAMG,EAAM,CACV,OAAQ,GACR,YAAa,CAACH,CAAK,EACnB,SAAU,CAAC,kBAAkB,EAC7B,OAAAD,EACA,OAAQ,GACR,QAASE,EACT,SAAU,MACZ,CAAC,EAEGF,IAAW,MACb,MAAM,OAAOG,EAAK,QAAQD,CAAO,GAEjCG,EAAQF,EAAK,QAAQD,CAAO,CAAC,EAG/BI,EAAOZ,EAAQ,CAAE,MAAO,GAAM,UAAW,EAAK,CAAC,CACjD,CAEA,IAAIa,EACJ,GAAIP,IAAW,MAAO,CACpB,GAAM,CAAE,UAAAQ,CAAU,EAAI,KAAM,QAAO,kBAAkB,EACrDD,EAAWC,EAAU,CACvB,KAAO,CACL,GAAM,CAAE,UAAAA,CAAU,EAAI,EAAQ,kBAAkB,EAChDD,EAAWC,EAAU,CACvB,CAEA,OAAOD,CACT,ED1CA,IAAME,EAAQ,CACZ,gBAAiB,GACjB,UAAW,EACb,EAMMC,EAAgDC,IAAU,CAC9D,MAAM,KAAKC,EAAoB,CAC7B,GAAIH,EAAM,gBAAiB,OAE3B,IAAMI,EAASD,EAAK,MACdE,EAAWD,GAAQ,QAAQ,OAAO,KAExC,GAAIA,GAAQ,OAAS,UAAYC,GAAU,SAAS,QAAQ,IAAI,CAAC,EAAG,CAClE,GAAIL,EAAM,UAAW,CACnBA,EAAM,gBAAkB,GACxB,QAAQ,OAAO,MACb;AAAA;AAAA,CACF,EACA,MACF,CAEA,GAAI,CACFA,EAAM,UAAY,GAElB,IAAMM,EAAS,MAAMC,EAAuBL,GAAM,UAAY,CAAC,CAAC,EAEhE,GAAIF,EAAM,gBAAiB,OAE3BG,EAAK,UAAU,EAEf,IAAMK,EAAS,MAAMC,EAAQ,CAACC,EAAQC,CAAY,CAAC,EAAE,QAAQL,EAAQ,CACnE,KAAM,OACN,OAAQM,CACV,CAAC,EAED,GAAIJ,EAAO,IAAI,SAAW,EAAG,OAE7B,IAAMK,EAAW;AAAA;AAAA,EAAeL,EAAO,GAAG,GAE1CM,EAAcT,EAAUQ,CAAQ,EAEhC,QAAQ,OAAO,MAAM,8BAAuBR,CAAQ;AAAA;AAAA,CAAM,CAC5D,MAAQ,CACN,QAAQ,OAAO,MAAM,qBAAqB,CAC5C,CACF,CACF,EAEA,cAAe,0BACjB,GAEAJ,EAAO,QAAU,GAEjB,IAAOc,EAAQd",
  "names": ["writeFileSync", "autoprefixer", "postcss", "parse", "nested", "pkg", "build", "existsSync", "mkdirSync", "rmSync", "path", "glob", "pkg", "tmpDir", "existsSync", "mkdirSync", "extractStylesFromFiles", "patterns", "entryFiles", "format", "entry", "tmpFile", "path", "build", "__require", "rmSync", "finalCss", "getAllCss", "state", "plugin", "opts", "root", "atRule", "filePath", "styles", "extractStylesFromFiles", "result", "postcss", "nested", "autoprefixer", "parse", "finalCSS", "writeFileSync", "index_default"]
}
