{"version":3,"file":"inject-directive.cjs","names":["commandIdIdentity","PACKAGE_META","picocolors","resolvePatternOptions","resolvedIdPatternOption","resolveGlobPatterns","resolveLogLevelOption"],"sources":["../src/inject-directive.ts"],"sourcesContent":["#!/usr/bin/env node\n\n/* eslint-disable quotes */\n\nimport \"@rzl-zone/node-only\";\n\nimport {\n  commandIdIdentity,\n  injectDirective,\n  resolvedIdPatternOption,\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  directive?: string[];\n  logLevel?: LogLevel | boolean;\n  patternOptions?: string;\n};\n\nconst cmdIdentity = commandIdIdentity\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      joinInline(\n        picocolors.gray(\"<glob...>\"),\n        picocolors.reset(\"--directive\"),\n        picocolors.gray('\"use client\"'),\n        picocolors.blueBright(\"[options]\")\n      )\n    )\n  }\n});\n\nprogram\n  .description(\n    picocolors.bold(\n      picocolors.magentaBright(\n        joinLinesLoose(\n          \"Inject directive statements into compiled JavaScript output files.\",\n          \"\",\n          \"Directives are injected at the top of each file when applicable,\",\n          \"while avoiding duplication and preserving existing content.\",\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    \"-d, --directive <directive...>\",\n    'Directive(s) to inject (e.g. \"use strict\", \"use client\")'\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(\"• Directives are injected ONLY when missing.\")}`,\n      `  ${picocolors.dim(\"• Files are modified IN PLACE.\")}`,\n      \"\",\n      picocolors.bold(\"# Examples:\"),\n      `  ${picocolors.bold(\"• Inject use strict\")}`,\n      `    ${picocolors.cyan(\"inject-directive\")} ${picocolors.dim('\"dist/**/*.js\"')} \\\\`,\n      `      ${picocolors.cyanBright(\"--directive\")} ${picocolors.dim('\"use strict\"')}`,\n      \"\",\n      `  ${picocolors.bold(\"• Inject multiple directives\")}`,\n      `    ${picocolors.cyan(\"inject-directive\")} ${picocolors.dim('\"dist/**/*.{js,mjs}\"')} \\\\`,\n      `      ${picocolors.cyanBright(\"--directive\")} ${picocolors.dim('\"use strict\"')} ${picocolors.dim('\"use client\"')}`,\n      \"\",\n      `  ${picocolors.bold(\"• Multiple glob patterns\")}`,\n      `    ${picocolors.cyan(\"inject-directive\")} \\\\`,\n      `      ${picocolors.dim('\"dist/**/*.js\"')} ${picocolors.dim('\"build/**/*.mjs\"')} \\\\`,\n      `      ${picocolors.cyanBright(\"--directive\")} ${picocolors.dim('\"use strict\"')}`\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    const { logLevel, directive, patternOptions } = program.opts<CliOptions>();\n\n    const parsedPatternOptions = resolvePatternOptions(\n      patternOptions,\n      program,\n      cmdIdentity,\n      { patternOptionValue: resolvedIdPatternOption }\n    );\n\n    const patterns = resolveGlobPatterns(program.args, program);\n\n    if (!directive || directive.length === 0) {\n      return program.error(\n        \"Error: at least one -d, --directive must be provided.\"\n      );\n    }\n\n    const resolvedLogLevel = resolveLogLevelOption(logLevel, program);\n\n    try {\n      await injectDirective(patterns, directive, {\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":"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"}
