{"version":3,"file":"index.base.mjs","sources":["../src/commands/generate/config.ts","../src/commands/generate/command.ts","../src/commands/init.ts","../src/commands/validate.ts","../src/cli/print.ts","../src/commands/migrate.ts","../src/commands/root.ts","../src/index.ts"],"sourcesContent":["import {\n  getConfig,\n  searchConfig,\n  loadConfig as loadConfigFile\n} from \"@kosko/config\";\nimport { resolve } from \"node:path\";\nimport { CLIError } from \"@kosko/cli-utils\";\nimport { BaseGenerateArguments } from \"./types\";\n\nexport async function loadConfig(args: BaseGenerateArguments) {\n  const base = args.config\n    ? await loadConfigFile(resolve(args.cwd, args.config))\n    : await searchConfig(args.cwd);\n  const envs = [base.baseEnvironment, args.env].filter(\n    (env): env is string => typeof env === \"string\"\n  );\n  const envConfig = getConfig(base, envs);\n  const config = {\n    ...base,\n    plugins: envConfig.plugins,\n    components: args.components?.length\n      ? args.components\n      : envConfig.components,\n    require: [...envConfig.require, ...(args.require || [])],\n    loaders: [...envConfig.loaders, ...(args.loader || [])],\n    import: [...envConfig.import, ...(args.import || [])],\n    bail: args.bail ?? base.bail\n  };\n\n  if (!config.components.length) {\n    throw new CLIError(\"No components are given\", {\n      output:\n        \"No components are given. Set components in a config file or in arguments.\"\n    });\n  }\n\n  return config;\n}\n","import { PrintFormat } from \"@kosko/generate\";\nimport type { Argv, CommandModule } from \"yargs\";\nimport type { GlobalArguments } from \"@kosko/cli-utils\";\nimport { loadConfig } from \"./config\";\nimport { SetOption, parseSetOptions } from \"./set-option\";\nimport type { BaseGenerateArguments, GenerateArguments } from \"./types\";\nimport { handler } from \"./worker\";\nimport { BUILD_TARGET } from \"@kosko/build-scripts\";\n\n/* istanbul ignore next */\nexport function generateBuilder(\n  argv: Argv<GlobalArguments>\n): Argv<BaseGenerateArguments> {\n  let base = argv\n    .option(\"env\", {\n      type: \"string\",\n      describe: \"Environment name\",\n      alias: \"e\"\n    })\n    .option(\"config\", {\n      type: \"string\",\n      describe: \"Config path. Default to `kosko.toml` in current folder.\",\n      alias: \"c\"\n    })\n    .option(\"bail\", {\n      type: \"boolean\",\n      describe: \"Stop immediately when an error occurred.\"\n    })\n    .option(\"set\", {\n      type: \"string\",\n      array: true,\n      describe:\n        \"Set values on the command line KEY=VAL (can be used multiple times)\",\n      alias: \"s\",\n      coerce: parseSetOptions,\n      default: [] as SetOption[]\n    })\n    .positional(\"components\", {\n      type: \"string\",\n      array: true,\n      describe:\n        \"Components to generate. This overrides components set in config file.\"\n    });\n\n  if (BUILD_TARGET === \"node\") {\n    base = base\n      .option(\"require\", {\n        type: \"string\",\n        array: true,\n        describe:\n          \"Require CommonJS modules. Modules set in config file will also be required.\",\n        alias: \"r\"\n      })\n      .option(\"loader\", {\n        type: \"string\",\n        array: true,\n        describe:\n          \"Module loader. Loaders set in config file will also be loaded.\"\n      })\n      .option(\"import\", {\n        type: \"string\",\n        array: true,\n        describe:\n          \"Preload ES modules at startup. Modules set in config file are also imported.\"\n      });\n  }\n\n  return base;\n}\n\nexport const generateCmd: CommandModule<GlobalArguments, GenerateArguments> = {\n  command: \"generate [components..]\",\n  describe: \"Generate Kubernetes manifests\",\n  builder(argv) {\n    /* istanbul ignore next */\n    return generateBuilder(argv)\n      .option(\"output\", {\n        type: \"string\",\n        describe: \"Output format\",\n        default: PrintFormat.YAML,\n        choices: Object.values(PrintFormat),\n        alias: \"o\"\n      })\n      .option(\"validate\", {\n        type: \"boolean\",\n        describe: \"Validate components\",\n        default: true\n      })\n      .example(\"$0 generate\", \"Generate manifests\")\n      .example(\"$0 generate foo bar\", \"Specify components\")\n      .example(\"$0 generate foo_*\", \"Use glob pattern\")\n      .example(\"$0 generate --env foo\", \"Set environment\");\n  },\n  async handler(args) {\n    const config = await loadConfig(args);\n\n    await handler({\n      printFormat: args.output,\n      args,\n      config\n    });\n  }\n};\n","import { CLIError } from \"@kosko/cli-utils\";\nimport { CommandModule } from \"yargs\";\n\nexport const initCmd: CommandModule = {\n  command: \"init\",\n  describe: false,\n  handler() {\n    throw new CLIError(`\"kosko init\" command has been removed`, {\n      output: `\"kosko init\" command has been removed from the CLI.\n\nTo set up a new project, please use one of the following commands.\n\n- npm create kosko@latest [path]\n- yarn create kosko [path]\n- pnpm create kosko [path]\n\nFor more information, please visit: https://kosko.dev/docs`\n    });\n  }\n};\n","import logger, { LogLevel } from \"@kosko/log\";\nimport { handler } from \"./generate/worker\";\nimport { BaseGenerateArguments } from \"./generate/types\";\nimport { generateBuilder } from \"./generate/command\";\nimport { loadConfig } from \"./generate/config\";\nimport type { CommandModule } from \"yargs\";\nimport { GlobalArguments } from \"@kosko/cli-utils\";\n\nexport type ValidateArguments = BaseGenerateArguments;\n\nexport const validateCmd: CommandModule<GlobalArguments, ValidateArguments> = {\n  command: \"validate [components..]\",\n  describe: \"Validate components\",\n  builder(argv) {\n    /* istanbul ignore next */\n    return generateBuilder(argv)\n      .example(\"$0 validate\", \"Validate components\")\n      .example(\"$0 validate foo bar\", \"Specify components\")\n      .example(\"$0 validate foo_*\", \"Use glob syntax\");\n  },\n  async handler(args) {\n    const config = await loadConfig(args);\n\n    await handler({\n      args: { ...args, validate: true },\n      config\n    });\n\n    logger.log(LogLevel.Info, \"Components are valid\");\n  }\n};\n","import { stdout } from \"node:process\";\n\nexport function print(data: string): Promise<void> {\n  return new Promise<void>((resolve, reject) => {\n    stdout.write(data, (err: any) => {\n      if (err) return reject(err);\n      resolve();\n    });\n  });\n}\n","import type * as migratePkg from \"@kosko/migrate\";\nimport { readdir, readFile, stat } from \"node:fs/promises\";\nimport getStdin from \"get-stdin\";\nimport { join, resolve } from \"node:path\";\nimport type { GlobalArguments } from \"@kosko/cli-utils\";\nimport { print } from \"../cli/print\";\nimport logger, { LogLevel } from \"@kosko/log\";\nimport { toArray } from \"@kosko/common-utils\";\nimport { CommandModule } from \"yargs\";\nimport { BUILD_FORMAT, BUILD_TARGET } from \"@kosko/build-scripts\";\n\nconst KOSKO_MIGRATE = \"@kosko/migrate\";\n\nfunction concatFiles(arr: readonly string[]): string {\n  if (!arr.length) return \"\";\n  let output = \"\";\n\n  for (const s of arr) {\n    if (!s.startsWith(\"---\")) output += \"---\\n\";\n    output += s + \"\\n\";\n  }\n\n  return output;\n}\n\nfunction readFileString(path: string): Promise<string> {\n  logger.log(LogLevel.Debug, `Reading file \"${path}\"`);\n  return readFile(path, \"utf8\");\n}\n\nasync function readFilesInDir(dir: string): Promise<string> {\n  logger.log(LogLevel.Debug, `Reading directory \"${dir}\"`);\n\n  const files = await readdir(dir);\n  const contents = await Promise.all(\n    files.map((file) => readFileString(join(dir, file)))\n  );\n\n  return concatFiles(contents);\n}\n\nfunction readFiles(cwd: string, files: readonly string[]): Promise<string[]> {\n  return Promise.all(\n    files.map(async (file) => {\n      if (file === \"-\") {\n        logger.log(LogLevel.Debug, \"Reading from stdin\");\n        return getStdin();\n      }\n\n      const path = resolve(cwd, file);\n      const stats = await stat(path);\n\n      return stats.isDirectory() ? readFilesInDir(path) : readFileString(path);\n    })\n  );\n}\n\nexport interface MigrateArguments extends GlobalArguments {\n  filename: string | string[];\n  esm?: boolean;\n}\n\nexport const migrateCmd: CommandModule<GlobalArguments, MigrateArguments> = {\n  command: \"migrate\",\n  describe: \"Migrate YAML into components\",\n  builder(argv) {\n    /* istanbul ignore next */\n    let base = argv\n      // HACK: Don't set the type of filename option to \"array\" because yargs\n      // can't parse `migrate -f -` properly.\n      // Link: https://github.com/tommy351/kosko/issues/17\n      .option(\"filename\", {\n        type: \"string\",\n        describe: \"File, directory to migrate\",\n        required: true,\n        alias: \"f\"\n      })\n      .example(\"$0 migrate -f path/to/file\", \"Read from the path\")\n      .example(\"$0 migrate -f -\", \"Read from stdin\");\n\n    if (BUILD_TARGET === \"node\") {\n      base = base.option(\"esm\", {\n        type: \"boolean\",\n        describe: \"Generate ECMAScript module (ESM) files\"\n      });\n    }\n\n    return base;\n  },\n  async handler(args) {\n    // Lazy load `@kosko/migrate` package because `@kosko/yaml` is not installed\n    // by default.\n    const { MigrateFormat, migrateString }: typeof migratePkg =\n      BUILD_FORMAT === \"cjs\"\n        ? require(KOSKO_MIGRATE)\n        : await import(KOSKO_MIGRATE);\n\n    const file = concatFiles(await readFiles(args.cwd, toArray(args.filename)));\n    const content = await migrateString(file, {\n      ...(args.esm && { format: MigrateFormat.ESM })\n    });\n\n    await print(content);\n  }\n};\n","import { generateCmd } from \"./generate/command\";\nimport { initCmd } from \"./init\";\nimport { validateCmd } from \"./validate\";\nimport { migrateCmd } from \"./migrate\";\nimport { version } from \"../../package.json\";\nimport yargs from \"yargs\";\nimport { globalOptions, setupLogger } from \"@kosko/cli-utils\";\n\nexport function createRootCommand(args: readonly string[]) {\n  return yargs(args)\n    .scriptName(\"kosko\")\n    .version(version)\n    .exitProcess(false)\n    .options(globalOptions)\n    .group(\n      [...Object.keys(globalOptions), \"help\", \"version\"],\n      \"Global Options:\"\n    )\n    .middleware(setupLogger)\n    .command(initCmd)\n    .command(generateCmd)\n    .command(validateCmd)\n    .command(migrateCmd)\n    .demandCommand();\n}\n","/**\n * CLI.\n *\n * @packageDocumentation\n */\n\nimport { parse } from \"@kosko/cli-utils\";\nimport { createRootCommand } from \"./commands/root\";\nimport { argv } from \"node:process\";\n\nexport { handleError } from \"@kosko/cli-utils\";\n\n/**\n * Runs CLI with the given arguments.\n *\n * @public\n */\nexport async function run(\n  args: readonly string[] = argv.slice(2)\n): Promise<void> {\n  await parse(createRootCommand(args), args);\n}\n"],"names":["loadConfig","args","base","config","loadConfigFile","resolve","cwd","searchConfig","envs","baseEnvironment","env","filter","envConfig","getConfig","plugins","components","length","require","loaders","loader","import","bail","CLIError","output","generateBuilder","argv","option","type","describe","alias","array","coerce","parseSetOptions","default","positional","generateCmd","command","builder","PrintFormat","YAML","choices","Object","values","example","handler","printFormat","initCmd","validateCmd","validate","logger","log","LogLevel","Info","print","data","Promise","reject","stdout","write","err","KOSKO_MIGRATE","concatFiles","arr","s","startsWith","readFileString","path","Debug","readFile","readFilesInDir","dir","files","readdir","all","map","file","join","migrateCmd","required","MigrateFormat","migrateString","toArray","filename","getStdin","stat","isDirectory","content","esm","format","ESM","createRootCommand","yargs","scriptName","version","exitProcess","options","globalOptions","group","keys","middleware","setupLogger","demandCommand","run","slice","parse"],"mappings":"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"}