{"version":3,"file":"normalize-js-build-newlines.cjs","names":["commandNjbnIdentity","PACKAGE_META","picocolors","resolvePatternOptions","resolvedNjbnPatternOption","resolveGlobPatterns"],"sources":["../src/normalize-js-build-newlines.ts"],"sourcesContent":["#!/usr/bin/env node\n\n/* eslint-disable quotes */\n\nimport \"@rzl-zone/node-only\";\n\nimport {\n  commandNjbnIdentity,\n  normalizeJsBuildNewlines,\n  resolvedNjbnPatternOption,\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 { PACKAGE_META } from \"./_private/constants\";\nimport {\n  resolveGlobPatterns,\n  resolvePatternOptions\n} from \"./_private/internal\";\n\ntype CliOptions = {\n  logLevel?: LogLevel | boolean;\n  patternOptions?: string;\n};\n\nconst cmdIdentity = commandNjbnIdentity\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          \"Normalize excessive blank lines in compiled JavaScript files.\",\n          \"Any occurrence of three or more consecutive newlines will be\",\n          \"collapsed into exactly two newlines.\",\n          \"\",\n          \"All non-flag arguments are treated as glob patterns.\"\n        )\n      )\n    )\n  )\n  .argument(\"[glob...]\", \"Glob pattern(s) pointing to JS input files.\")\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    )\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(\"• Only .js, .cjs, and .mjs files are processed.\")}`,\n      `  ${picocolors.dim(\"• Safe to run multiple times (idempotent).\")}`,\n      `  ${picocolors.dim(\"• Intended for post-build cleanup.\")}`,\n      \"\",\n      picocolors.bold(\"# Examples:\"),\n      `  ${picocolors.bold(\"• Normalize newlines in all JS files\")}`,\n      `    ${picocolors.cyan(\"normalize-js-build-newlines\")} ${picocolors.dim('\"dist/**/*.js\"')}`,\n      \"\",\n      `  ${picocolors.bold(\"• Normalize multiple JS output extensions\")}`,\n      `    ${picocolors.cyan(\"normalize-js-build-newlines\")} ${picocolors.dim(\n        '\"dist/**/*.{js,cjs,mjs}\"'\n      )}`,\n      \"\",\n      `  ${picocolors.bold(\"• Multiple glob patterns\")}`,\n      `    ${picocolors.cyan(\"normalize-js-build-newlines\")} ${picocolors.dim(\n        '\"dist/**/*.js\"'\n      )} ${picocolors.dim('\"build/**/*.mjs\"')} ${picocolors.dim('\"out/**/*.{js,mjs}\"')}`\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, patternOptions } = program.opts<CliOptions>();\n\n    const parsedPatternOptions = resolvePatternOptions(\n      patternOptions,\n      program,\n      cmdIdentity,\n      { patternOptionValue: resolvedNjbnPatternOption }\n    );\n\n    const patterns = resolveGlobPatterns(program.args, program);\n\n    if (typeof logLevel === \"boolean\") {\n      return program.error(\n        \"missing required value option: --ll, --log-level <level>\"\n      );\n    }\n\n    try {\n      await normalizeJsBuildNewlines(patterns, {\n        logLevel,\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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"}
