{"version":3,"file":"ensure-css-import.cjs","names":["commandEciIdentity","PACKAGE_META","picocolors","resolvePatternOptions","resolvedEciPatternOption","resolveGlobPatterns","resolveLogLevelOption"],"sources":["../src/ensure-css-import.ts"],"sourcesContent":["#!/usr/bin/env node\n\n/* eslint-disable quotes */\n\nimport \"@rzl-zone/node-only\";\nimport {\n  commandEciIdentity,\n  ensureCssImport,\n  resolvedEciPatternOption,\n  type LogLevel\n} from \"@rzl-zone/build-tools\";\nimport {\n  joinInline,\n  joinLinesLoose,\n  picocolors\n} from \"@rzl-zone/build-tools/utils\";\nimport { createBaseProgram } from \"@rzl-zone/build-tools/commander-kit\";\n\nimport {\n  resolveGlobPatterns,\n  resolveLogLevelOption,\n  resolvePatternOptions\n} from \"./_private/internal\";\nimport { PACKAGE_META } from \"./_private/constants\";\n\ntype CliOptions = {\n  css?: string[];\n  dedupe?: boolean;\n  sort?: boolean;\n  minify?: boolean;\n  /**\n   * @deprecated\n   */\n  insertTop?: boolean;\n  logLevel?: LogLevel | boolean;\n  patternOptions?: string;\n};\n\nconst cmdIdentity = commandEciIdentity\n  .setPackageName(PACKAGE_META.name)\n  .setVersion(PACKAGE_META.version);\n\nconst program = createBaseProgram({\n  commandIdentity: cmdIdentity,\n  ui: {\n    title: cmdIdentity.cli(),\n    usage: joinInline(\n      picocolors.cyan(cmdIdentity.commandName),\n      picocolors.gray(\"<glob...>\"),\n      picocolors.blueBright(\"[options]\")\n    )\n  }\n});\n\nprogram\n  .description(\n    picocolors.bold(\n      picocolors.magentaBright(\n        joinLinesLoose(\n          \"Ensure CSS import statements exist in compiled JavaScript files.\",\n          \"CSS imports will be inserted after directive prologue by default.\",\n          \"\",\n          \"All non-flag arguments are treated as glob patterns.\"\n        )\n      )\n    )\n  )\n  .argument(\"[glob...]\", \"Glob pattern(s) pointing to JS output files.\")\n  .option(\n    \"-c, --css <path...>\",\n    \"CSS import path(s) to ensure (can be used multiple times)\"\n  )\n  .option(\n    \"--nd, --no-dedupe\",\n    \"Disable duplicate CSS import removal (enabled by default)\"\n  )\n  .option(\n    \"-m, --minify\",\n    \"Minify JS output (except directive prologue).\",\n    false\n  )\n  .option(\n    \"-s, --sort\",\n    \"Sort CSS imports alphabetically before inserting\",\n    false\n  )\n  .option(\n    \"--ll, --log-level [level]\",\n    joinLinesLoose(\n      \"Set logging verbosity level, available logging levels:\",\n      \"                                  - silent ➔ no output.\",\n      \"                                  - error ➔ errors only.\",\n      \"                                  - info (default) ➔ standard informational logs (include `error`).\",\n      \"                                  - debug ➔ verbose / debug logs (include `error`).\",\n      picocolors.italic(\n        picocolors.yellowBright(\n          \"                                 * Invalid values will fallback to the default level\"\n        )\n      )\n    ),\n    \"info\"\n  )\n  .option(\n    \"--po, --pattern-options <json>\",\n    \"Pattern matching options in JSON format\"\n  )\n  .addHelpText(\n    \"after\",\n    joinLinesLoose(\n      \"\",\n      picocolors.bold(\"# Notes:\"),\n      `  ${picocolors.dim(\"• You may provide MULTIPLE glob patterns.\")}`,\n      `  ${picocolors.dim(\"• All positional arguments are treated as glob patterns.\")}`,\n      `  ${picocolors.dim(\"• Files are modified IN PLACE.\")}`,\n      `  ${picocolors.dim(\"• CSS imports are inserted AFTER directives by default.\")}`,\n      \"\",\n      picocolors.bold(\"# Examples:\"),\n      `  ${picocolors.bold(\"• Ensure a single CSS import\")}`,\n      `    ${picocolors.cyan(\"ensure-css-import\")} ${picocolors.dim('\"dist/**/*.js\"')} \\\\`,\n      `      ${picocolors.cyanBright(\"--css\")} ${picocolors.dim(\"./search.css\")}`,\n      \"\",\n      `  ${picocolors.bold(\"• Multiple CSS imports\")}`,\n      `    ${picocolors.cyan(\"ensure-css-import\")} ${picocolors.dim('\"dist/**/*.js\"')} \\\\`,\n      `      ${picocolors.cyanBright(\"--css\")} ${picocolors.dim(\"./search.css\")} \\\\`,\n      `      ${picocolors.cyanBright(\"--css\")} ${picocolors.dim(\"./theme.css\")}`,\n      \"\",\n      `  ${picocolors.bold(\"• Sort CSS imports alphabetically & disable dedupe & minify\")}`,\n      `    ${picocolors.cyan(\"ensure-css-import\")} ${picocolors.dim('\"dist/**/*.js\"')} \\\\`,\n      `      ${picocolors.cyanBright(\"--css\")} ${picocolors.dim(\"./style.css\")} \\\\`,\n      `      ${picocolors.cyanBright(\"--minify\")} \\\\`,\n      `      ${picocolors.cyanBright(\"--sort\")}`,\n      `      ${picocolors.cyanBright(\"--no-dedupe\")}`\n    )\n  )\n  .addHelpText(\n    \"after\",\n    joinLinesLoose(\n      \"\",\n      picocolors.bold(\"# Pattern Options:\"),\n      `  ${picocolors.dim(\"• Must be provided as a JSON string.\")}`,\n      `  ${picocolors.dim(\"• Unknown keys are automatically removed (sanitized).\")}`,\n      `  ${picocolors.dim(\"• Missing keys fallback to internal defaults.\")}`,\n      `  ${picocolors.dim(\"• Use '--pattern-options help' to view full schema.\")}`,\n      \"\",\n      `  ${picocolors.bold(\"Examples:\")}`,\n      `     ${picocolors.cyan(cmdIdentity.commandName)} ${picocolors.gray('\"dist/**/*.js\"')} \\\\`,\n      `       ${picocolors.blueBright(\"--pattern-options\")} ${picocolors.dim(picocolors.gray('\\'{\"dot\":true,\"onlyFiles\":true}\\''))}`,\n      \"\",\n      `  ${picocolors.bold(\"Schema Help:\")}`,\n      `     ${picocolors.cyan(cmdIdentity.commandName)} ${picocolors.blueBright(\"--pattern-options\")} ${picocolors.gray(\"help\")}`,\n      \"\",\n      `  ${picocolors.dim(\"Pattern options are a restricted subset configuration.\")}`\n    )\n  )\n  .action(async () => {\n    try {\n      const { logLevel, css, minify, dedupe, sort, patternOptions } =\n        program.opts<CliOptions>();\n\n      const parsedPatternOptions = resolvePatternOptions(\n        patternOptions,\n        program,\n        cmdIdentity,\n        { patternOptionValue: resolvedEciPatternOption }\n      );\n\n      const patterns = resolveGlobPatterns(program.args, program);\n\n      if (!css || css.length === 0) {\n        return program.error(\"Missing required option: -c, --css <path...>\");\n      }\n\n      const resolvedLogLevel = resolveLogLevelOption(logLevel, program);\n\n      await ensureCssImport(patterns, {\n        sort,\n        minify,\n        cssImportPath: css || [],\n        dedupe,\n        logLevel: resolvedLogLevel,\n        patternOptions: parsedPatternOptions,\n        __commandTitle: cmdIdentity.cli()\n      });\n    } catch (err) {\n      console.error(picocolors.redBright(String(err)));\n      process.exit(1);\n    }\n  });\n\nprogram.parseAsync();\n"],"mappings":";;;;;;;;;;;2MAsCA,MAAM,EAAcA,EAAAA,mBACjB,eAAeC,EAAAA,EAAa,IAAI,CAAC,CACjC,WAAWA,EAAAA,EAAa,OAAO,EAE5B,GAAA,EAAA,EAAA,kBAAA,CAA4B,CAChC,gBAAiB,EACjB,GAAI,CACF,MAAO,EAAY,IAAI,EACvB,OAAA,EAAA,EAAA,WAAA,CACEC,EAAAA,WAAW,KAAK,EAAY,WAAW,EACvCA,EAAAA,WAAW,KAAK,WAAW,EAC3BA,EAAAA,WAAW,WAAW,WAAW,CACnC,CACF,CACF,CAAC,EAED,EACG,YACCA,EAAAA,WAAW,KACTA,EAAAA,WAAW,eAAA,EAAA,EAAA,eAAA,CAEP,mEACA,oEACA,GACA,sDACF,CACF,CACF,CACF,CAAC,CACA,SAAS,YAAa,8CAA8C,CAAC,CACrE,OACC,sBACA,2DACF,CAAC,CACA,OACC,oBACA,2DACF,CAAC,CACA,OACC,eACA,gDACA,EACF,CAAC,CACA,OACC,aACA,mDACA,EACF,CAAC,CACA,OACC,6BAAA,EAAA,EAAA,eAAA,CAEE,yDACA,0DACA,2DACA,sGACA,sFACAA,EAAAA,WAAW,OACTA,EAAAA,WAAW,aACT,sFACF,CACF,CACF,EACA,MACF,CAAC,CACA,OACC,iCACA,yCACF,CAAC,CACA,YACC,SAAA,EAAA,EAAA,eAAA,CAEE,GACAA,EAAAA,WAAW,KAAK,UAAU,EAC1B,KAAKA,EAAAA,WAAW,IAAI,2CAA2C,IAC/D,KAAKA,EAAAA,WAAW,IAAI,0DAA0D,IAC9E,KAAKA,EAAAA,WAAW,IAAI,gCAAgC,IACpD,KAAKA,EAAAA,WAAW,IAAI,yDAAyD,IAC7E,GACAA,EAAAA,WAAW,KAAK,aAAa,EAC7B,KAAKA,EAAAA,WAAW,KAAK,8BAA8B,IACnD,OAAOA,EAAAA,WAAW,KAAK,mBAAmB,EAAE,GAAGA,EAAAA,WAAW,IAAI,gBAAgB,EAAE,KAChF,SAASA,EAAAA,WAAW,WAAW,OAAO,EAAE,GAAGA,EAAAA,WAAW,IAAI,cAAc,IACxE,GACA,KAAKA,EAAAA,WAAW,KAAK,wBAAwB,IAC7C,OAAOA,EAAAA,WAAW,KAAK,mBAAmB,EAAE,GAAGA,EAAAA,WAAW,IAAI,gBAAgB,EAAE,KAChF,SAASA,EAAAA,WAAW,WAAW,OAAO,EAAE,GAAGA,EAAAA,WAAW,IAAI,cAAc,EAAE,KAC1E,SAASA,EAAAA,WAAW,WAAW,OAAO,EAAE,GAAGA,EAAAA,WAAW,IAAI,aAAa,IACvE,GACA,KAAKA,EAAAA,WAAW,KAAK,6DAA6D,IAClF,OAAOA,EAAAA,WAAW,KAAK,mBAAmB,EAAE,GAAGA,EAAAA,WAAW,IAAI,gBAAgB,EAAE,KAChF,SAASA,EAAAA,WAAW,WAAW,OAAO,EAAE,GAAGA,EAAAA,WAAW,IAAI,aAAa,EAAE,KACzE,SAASA,EAAAA,WAAW,WAAW,UAAU,EAAE,KAC3C,SAASA,EAAAA,WAAW,WAAW,QAAQ,IACvC,SAASA,EAAAA,WAAW,WAAW,aAAa,GAC9C,CACF,CAAC,CACA,YACC,SAAA,EAAA,EAAA,eAAA,CAEE,GACAA,EAAAA,WAAW,KAAK,oBAAoB,EACpC,KAAKA,EAAAA,WAAW,IAAI,sCAAsC,IAC1D,KAAKA,EAAAA,WAAW,IAAI,uDAAuD,IAC3E,KAAKA,EAAAA,WAAW,IAAI,+CAA+C,IACnE,KAAKA,EAAAA,WAAW,IAAI,qDAAqD,IACzE,GACA,KAAKA,EAAAA,WAAW,KAAK,WAAW,IAChC,QAAQA,EAAAA,WAAW,KAAK,EAAY,WAAW,EAAE,GAAGA,EAAAA,WAAW,KAAK,gBAAgB,EAAE,KACtF,UAAUA,EAAAA,WAAW,WAAW,mBAAmB,EAAE,GAAGA,EAAAA,WAAW,IAAIA,EAAAA,WAAW,KAAK,iCAAmC,CAAC,IAC3H,GACA,KAAKA,EAAAA,WAAW,KAAK,cAAc,IACnC,QAAQA,EAAAA,WAAW,KAAK,EAAY,WAAW,EAAE,GAAGA,EAAAA,WAAW,WAAW,mBAAmB,EAAE,GAAGA,EAAAA,WAAW,KAAK,MAAM,IACxH,GACA,KAAKA,EAAAA,WAAW,IAAI,wDAAwD,GAC9E,CACF,CAAC,CACA,OAAO,SAAY,CAClB,GAAI,CACF,GAAM,CAAE,WAAU,MAAK,SAAQ,SAAQ,OAAM,kBAC3C,EAAQ,KAAiB,EAErB,EAAuBC,EAAAA,EAC3B,EACA,EACA,EACA,CAAE,mBAAoBC,EAAAA,wBAAyB,CACjD,EAEM,EAAWC,EAAAA,EAAoB,EAAQ,KAAM,CAAO,EAE1D,GAAI,CAAC,GAAO,EAAI,SAAW,EACzB,OAAO,EAAQ,MAAM,8CAA8C,EAGrE,IAAM,EAAmBC,EAAAA,EAAsB,EAAU,CAAO,EAEhE,MAAA,EAAA,EAAA,gBAAA,CAAsB,EAAU,CAC9B,OACA,SACA,cAAe,GAAO,CAAC,EACvB,SACA,SAAU,EACV,eAAgB,EAChB,eAAgB,EAAY,IAAI,CAClC,CAAC,CACH,OAAS,EAAK,CACZ,QAAQ,MAAMJ,EAAAA,WAAW,UAAU,OAAO,CAAG,CAAC,CAAC,EAC/C,QAAQ,KAAK,CAAC,CAChB,CACF,CAAC,EAEH,EAAQ,WAAW"}
