{"version":3,"file":"internal-C0cd81E2.cjs","names":["packageJson.name","packageJson.version","picocolors","defaultPatternOptions"],"sources":["../package.json","../src/_private/constants.ts","../src/_private/internal.ts"],"sourcesContent":["","import packageJson from \"../../package.json\";\n\n/**\n * @internal\n */\nexport const PACKAGE_META = {\n  /** Package name */\n  name: packageJson.name,\n\n  /** Current package version */\n  version: packageJson.version\n};\n","import \"@rzl-zone/node-only\";\n\nimport {\n  formatOptionValue,\n  joinInline,\n  joinLinesLoose,\n  picocolors\n} from \"@rzl-zone/build-tools/utils\";\nimport {\n  defaultPatternOptions,\n  type PatternOptions\n} from \"@rzl-zone/build-tools/utils/server\";\nimport { type LogLevel } from \"@rzl-zone/build-tools\";\nimport {\n  type CommandContext,\n  type CommandIdentity\n} from \"@rzl-zone/build-tools/commander-kit\";\n\n/** @internal */\nexport function resolveGlobPatterns(\n  rawPatterns: unknown,\n  program: CommandContext,\n  {\n    argsName = \"<glob...>\"\n  }: {\n    /**\n     * @default \"<glob...>\"\n     */\n    argsName?: string;\n  } = {}\n): string[] {\n  const patterns = Array.isArray(rawPatterns) ? rawPatterns : [];\n\n  const normalized = patterns\n    .map((p) => String(p).trim())\n    .filter((p) => p.length > 0);\n\n  if (normalized.length === 0) {\n    program.error(`Error: at least one non-empty ${argsName} is required.`);\n  }\n\n  return normalized;\n}\n\n/** @internal */\nexport function resolvePatternOptions(\n  raw: string | undefined,\n  program: CommandContext,\n  cmdIdentity: CommandIdentity,\n  {\n    globExample,\n    patternOptionValue\n  }: { globExample?: string; patternOptionValue?: PatternOptions } = {}\n): PatternOptions | undefined {\n  if (!raw) return undefined;\n\n  const trimmed = raw.trim();\n\n  // Help keyword\n  if (trimmed.toLowerCase() === \"help\") {\n    printPatternOptionsHelp(cmdIdentity, {\n      globExample,\n      patternOptionValue: patternOptionValue\n    });\n  }\n\n  const parsed = safeParseJSON<PatternOptions>(trimmed);\n\n  if (!parsed) {\n    program.error(\"Invalid JSON format in --pattern-options\");\n  }\n\n  return parsed;\n}\n\n/** @internal */\nexport function printPatternOptionsHelp(\n  cmdIdentity: CommandIdentity,\n  {\n    globExample,\n    patternOptionValue\n  }: {\n    globExample?: string;\n    patternOptionValue?: PatternOptions;\n  } = {}\n): never {\n  const subTittle = picocolors.bold(\n    picocolors.magentaBright(\"Pattern Options Schema Helper:\")\n  );\n\n  const description = picocolors.bold(\n    picocolors.magentaBright(\n      joinLinesLoose(\n        `  ${picocolors.bold(\"• Pattern options must be provided as a JSON string.\")}`,\n        `  ${picocolors.bold(\"• Unknown keys are automatically removed (sanitized).\")}`,\n        `  ${picocolors.bold(\"• Missing keys fallback to internal defaults.\")}`\n      )\n    )\n  );\n\n  const example = joinInline(\n    picocolors.cyan(cmdIdentity.commandName),\n    picocolors.gray(globExample ?? \"dist/**/*.{js,cjs}\"),\n    picocolors.blueBright(\n      // eslint-disable-next-line quotes\n      '--pattern-options \\'{\"dot\":true,\"onlyFiles\":true}\\''\n    )\n  );\n\n  const patternOptionDocs: Record<\n    string,\n    { type: string; description: string }\n  > = {\n    absolute: {\n      type: \"boolean\",\n      description: \"Return absolute paths.\"\n    },\n    baseNameMatch: {\n      type: \"boolean\",\n      description: \"Match basename when pattern has no slash.\"\n    },\n    braceExpansion: {\n      type: \"boolean\",\n      description: \"Enable brace expansion.\"\n    },\n    caseSensitiveMatch: {\n      type: \"boolean\",\n      description: \"Enable case-sensitive matching.\"\n    },\n    concurrency: {\n      type: \"number\",\n      description: \"Maximum concurrent directory reads.\"\n    },\n    deep: {\n      type: \"number\",\n      description: \"Maximum recursion depth.\"\n    },\n    dot: {\n      type: \"boolean\",\n      description: \"Match entries starting with period (`.`).\"\n    },\n    extglob: {\n      type: \"boolean\",\n      description: \"Enable extglob patterns.\"\n    },\n    followSymbolicLinks: {\n      type: \"boolean\",\n      description: \"Traverse symbolic link directories.\"\n    },\n    globstar: {\n      type: \"boolean\",\n      description: \"`**` matches recursively.\"\n    },\n    ignore: {\n      type: \"string[]\",\n      description: \"Glob patterns to exclude.\"\n    },\n    markDirectories: {\n      type: \"boolean\",\n      description: \"Append `/` to directory results.\"\n    },\n    objectMode: {\n      type: \"boolean\",\n      description: \"Return entry objects instead of strings.\"\n    },\n    onlyDirectories: {\n      type: \"boolean\",\n      description: \"Return only directories.\"\n    },\n    onlyFiles: {\n      type: \"boolean\",\n      description: \"Return only files.\"\n    },\n    stats: {\n      type: \"boolean\",\n      description: \"Include fs stats in object mode.\"\n    },\n    suppressErrors: {\n      type: \"boolean\",\n      description: \"Suppress all errors.\"\n    },\n    throwErrorOnBrokenSymbolicLink: {\n      type: \"boolean\",\n      description: \"Throw on broken symbolic link.\"\n    },\n    unique: {\n      type: \"boolean\",\n      description: \"Ensure unique results.\"\n    }\n  };\n\n  const safePatternOptionValue =\n    typeof patternOptionValue === \"object\" &&\n    patternOptionValue !== null &&\n    !Array.isArray(patternOptionValue)\n      ? patternOptionValue\n      : defaultPatternOptions;\n\n  function renderPatternOptionsDoc(): string {\n    const entries = Object.entries(safePatternOptionValue).sort(([a], [b]) =>\n      a.localeCompare(b)\n    );\n\n    const maxKeyLength = Math.max(...entries.map(([key]) => key.length));\n\n    return entries\n      .map(([key, defaultValue]) => {\n        const meta = patternOptionDocs[key];\n\n        const paddedKey = key.padEnd(maxKeyLength);\n\n        const header = `   ${picocolors.gray(\"-\")} ${picocolors.blueBright(paddedKey)} ${picocolors.gray(\n          `<${meta?.type ?? \"unknown\"}>`\n        )}`;\n\n        const description = picocolors.dim(`       ${meta?.description ?? \"\"}`);\n\n        const defaultLine = picocolors.yellow(\n          `       default: ${formatOptionValue(defaultValue)}`\n        );\n\n        return joinLinesLoose(header, description, defaultLine);\n      })\n      .join(\"\\n\");\n  }\n\n  console.log(\n    joinLinesLoose(\n      cmdIdentity.cli(),\n      \"\",\n      subTittle,\n      description,\n      \"\",\n      picocolors.bold(picocolors.whiteBright(\" * Example Usage:\")),\n      `   ${example}`,\n      \"\",\n      picocolors.bold(picocolors.whiteBright(\" * Supported Pattern Options:\")),\n      renderPatternOptionsDoc()\n    )\n  );\n\n  process.exit(0);\n}\n\n/** @internal */\nexport function resolveLogLevelOption(\n  raw: unknown,\n  program: CommandContext\n): LogLevel {\n  if (typeof raw === \"boolean\") {\n    program.error(\n      \"missing required value for option: --ll, --log-level <level>\"\n    );\n  }\n\n  return raw as LogLevel;\n}\n// ----\n\n/** @internal */\nexport function safeParseJSON<T = unknown>(input?: string): T | undefined {\n  if (!input) return undefined;\n\n  try {\n    return JSON.parse(input) as T;\n  } catch {\n    return undefined;\n  }\n}\n"],"mappings":"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"}
