{"version":3,"file":"generate-reference-index.cjs","names":["commandGriIdentity","PACKAGE_META","picocolors","resolvePatternOptions","resolvedGriPatternOption","resolveGlobPatterns","resolveLogLevelOption","EOL"],"sources":["../src/generate-reference-index.ts"],"sourcesContent":["#!/usr/bin/env node\n\n/* eslint-disable quotes */\n\nimport \"@rzl-zone/node-only\";\n\nimport {\n  commandGriIdentity,\n  generateReferenceIndex,\n  resolvedGriPatternOption,\n  type LogLevel\n} from \"@rzl-zone/build-tools\";\nimport {\n  EOL,\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  outDir?: string;\n  outFileName?: string;\n  inputDirReference?: string;\n  withExportTypes: boolean;\n  onlyDeclarations?: boolean;\n\n  banner?: true | ({} & string) | false;\n  logLevel?: LogLevel | boolean;\n  patternOptions?: string;\n};\n\nconst cmdIdentity = commandGriIdentity\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          \"Generate a TypeScript declaration reference index file (.d.ts)\",\n          \"by aggregating matched output files into a single entry.\",\n          \"\",\n          \"All non-flag arguments are treated as glob patterns.\"\n        )\n      )\n    )\n  )\n  .argument(\"[glob...]\", \"Glob pattern(s) for declaration or output files.\")\n  .option(\n    \"--od, --out-dir <dir>\",\n    \"Output directory for the generated index file\",\n    \"dist/.references\"\n  )\n  .option(\n    \"--ofn, --out-file-name <name>\",\n    \"Name of the generated declaration index file\",\n    \"index.d.ts\"\n  )\n  .option(\n    \"--idr, --input-dir-reference <dir>\",\n    \"Base directory used to compute relative reference paths\",\n    \"dist\"\n  )\n  .option(\n    \"--wet, --with-export-types\",\n    'Also generate `export * from \"...\"` statements',\n    false\n  )\n  .option(\n    \"--nod, --no-only-declarations\",\n    \"Allow non-declaration files (.js, .mjs, .cjs) to be included (declarations only by default)\"\n  )\n  .option(\n    \"-b, --banner <text>\",\n    \"Prepend custom banner text to the generated output file\"\n  )\n  .option(\"--nb, --no-banner\", \"Disable banner injection entirely\")\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(\"• The output file is ALWAYS overwritten.\")}`,\n      `  ${picocolors.dim(\"• Intended for post-build declaration aggregation.\")}`,\n      `  ${picocolors.dim(\"• By default, only TypeScript declaration files are included.\")}`,\n      \"\",\n      picocolors.bold(\"# Examples:\"),\n      `  ${picocolors.bold(\"• Generate references from declaration files\")}`,\n      `    ${picocolors.cyan(\"generate-reference-index\")} ${picocolors.dim('\"dist/**/*.d.ts\"')}`,\n      \"\",\n      `  ${picocolors.bold(\"• Include JavaScript declaration outputs\")}`,\n      `    ${picocolors.cyan(\"generate-reference-index\")} ${picocolors.dim(\n        '\"dist/**/*.{d.ts,d.js,d.mjs}\"'\n      )}`,\n      \"\",\n      `  ${picocolors.bold(\"• Generate references and export all types\")}`,\n      `    ${picocolors.cyan(\"generate-reference-index\")} ${picocolors.dim('\"dist/**/*.d.ts\"')} \\\\`,\n      `      ${picocolors.cyanBright(\"--with-export-types\")}`,\n      \"\",\n      `  ${picocolors.bold(\"• Custom output directory and file name\")}`,\n      `    ${picocolors.cyan(\"generate-reference-index\")} ${picocolors.dim('\"build/**/*.d.ts\"')} \\\\`,\n      `      ${picocolors.cyanBright(\"--out-dir build/types\")} \\\\`,\n      `      ${picocolors.cyanBright(\"--out-file references.d.ts\")}`,\n      \"\",\n      `  ${picocolors.bold(\"• Multiple glob patterns\")}`,\n      `    ${picocolors.cyan(\"generate-reference-index\")} ${picocolors.dim(\n        '\"dist/types/**/*.d.ts\"'\n      )} ${picocolors.dim('\"dist/generated/**/*.d.ts\"')}`,\n      \"\",\n      `  ${picocolors.bold(\"• Disable onlyDeclarations to include JS files\")}`,\n      `    ${picocolors.cyan(\"generate-reference-index\")} ${picocolors.dim('\"dist/**/*\"')} \\\\`,\n      `      ${picocolors.cyanBright(\"--no-only-declarations\")}`,\n      \"\",\n      picocolors.bold(\"# Banner Options:\"),\n      `  ${picocolors.dim(\"• Default behavior is automatic banner generation.\")}`,\n      `  ${picocolors.dim(\"• Use --banner to provide a custom banner string.\")}`,\n      `  ${picocolors.dim(\"• Use --no-banner to disable banner injection entirely.\")}`,\n      \"\",\n      picocolors.bold(\"• Custom banner example\"),\n      `    ${picocolors.cyan(\"generate-reference-index\")} ${picocolors.dim('\"dist/**/*.d.ts\"')} \\\\`,\n      `      ${picocolors.cyanBright('--banner \"/* My Custom Banner */\"')}`,\n      \"\",\n      picocolors.bold(\"• Disable banner\"),\n      `    ${picocolors.cyan(\"generate-reference-index\")} ${picocolors.dim('\"dist/**/*.d.ts\"')} \\\\`,\n      `      ${picocolors.cyanBright(\"--no-banner\")}`\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 {\n      logLevel,\n      onlyDeclarations = true,\n      withExportTypes,\n      banner: bannerOpt,\n      inputDirReference,\n      outDir,\n      outFileName,\n      patternOptions\n    } = program.opts<CliOptions>();\n\n    const parsedPatternOptions = resolvePatternOptions(\n      patternOptions,\n      program,\n      cmdIdentity,\n      {\n        globExample: \"dist/**/*.d.{cts,ts}\",\n        patternOptionValue: resolvedGriPatternOption\n      }\n    );\n\n    const rawArgs = resolveGlobPatterns(program.args, program);\n    const resolvedLogLevel = resolveLogLevelOption(logLevel, program);\n\n    const hasBanner = rawArgs.includes(\"--banner\") || rawArgs.includes(\"-b\");\n    const hasNoBanner =\n      rawArgs.includes(\"--no-banner\") || rawArgs.includes(\"--nb\");\n\n    let banner: NonNullable<CliOptions[\"banner\"]> = true;\n\n    if (hasBanner && hasNoBanner) {\n      program.error(\"Cannot use --banner and --no-banner together.\");\n    }\n\n    if (bannerOpt === false) {\n      banner = false;\n    } else if (typeof bannerOpt === \"string\" && bannerOpt.trim().length > 0) {\n      banner = bannerOpt.replace(/\\\\n/g, EOL);\n    }\n    // else if (bannerOpt === true) {\n    //   banner = true;\n    //   program.error(\n    //     joinLinesLoose(\n    //       'Invalid value for -b, --banner: \"auto\".',\n    //       \"\",\n    //       'The \"auto\" banner mode is enabled by DEFAULT.',\n    //       \"To use automatic banner generation, omit the --banner option.\",\n    //       \"\",\n    //       \"Examples:\",\n    //       '  generate-reference-index \"dist/**/*.d.ts\"',\n    //       '  generate-reference-index \"dist/**/*.d.ts\" --no-banner'\n    //     )\n    //   );\n    // }\n\n    try {\n      await generateReferenceIndex(rawArgs, {\n        outDir,\n        outFileName,\n        inputDirReference,\n        withExportTypes,\n        onlyDeclarations,\n        banner,\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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"}
