{"version":3,"file":"index.mjs","sources":["../../src/init.ts"],"sourcesContent":["import { type CutHandlerArguments, command as cutCommand } from '@repodog/cli-cut';\nimport { type NewHandlerArguments, command as newCommand } from '@repodog/cli-new';\nimport { type PostInstallHandlerArguments, command as postinstallCommand } from '@repodog/cli-postinstall';\nimport { command as publishCommand } from '@repodog/cli-publish';\nimport { command as setupCommand } from '@repodog/cli-setup';\nimport { setVerbose, verboseLog } from '@repodog/cli-utils';\nimport { type WriteHandlerArguments, command as writeCommand } from '@repodog/cli-write';\nimport colors from 'ansi-colors';\nimport semver from 'semver';\nimport shelljs from 'shelljs';\nimport yargs, { type Argv } from 'yargs';\nimport { hideBin } from 'yargs/helpers';\nimport packageJson from '../package.json' with { type: 'json' };\n\nexport const init = (): void => {\n  // yargs does not provide a way to pass generic to type args.\n  // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n  const argv = yargs(hideBin(process.argv)) as Argv<\n    CutHandlerArguments & NewHandlerArguments & PostInstallHandlerArguments & WriteHandlerArguments\n  >;\n\n  const cliOptions = argv.parseSync();\n  const skipNodeVersionCheck = cliOptions['skip-node-version-check'] ?? false;\n  const verbose = cliOptions.verbose ?? false;\n  setVerbose(verbose);\n  verboseLog(`cli options:\\n${JSON.stringify(cliOptions, undefined, 2)}\\n`);\n\n  if (skipNodeVersionCheck || semver.satisfies(process.versions.node, packageJson.engines.node)) {\n    verboseLog('Passed node version check, executing command.');\n\n    void argv\n      .command(cutCommand)\n      .command(newCommand)\n      .command(postinstallCommand)\n      .command(publishCommand)\n      .command(setupCommand)\n      .command(writeCommand)\n      .help()\n      .parseAsync();\n  } else {\n    shelljs.echo(\n      `${colors.magenta('Repodog')} ${colors.dim('=>')} ${colors.red(\n        `Error: node version ${process.versions.node} does not satisfy package requirement of ${packageJson.engines.node}`,\n      )}`,\n    );\n\n    shelljs.exit(1);\n  }\n};\n"],"names":["init","argv","yargs","hideBin","process","cliOptions","parseSync","skipNodeVersionCheck","verbose","setVerbose","verboseLog","JSON","stringify","undefined","semver","satisfies","versions","node","packageJson","command","cutCommand","newCommand","postinstallCommand","publishCommand","setupCommand","writeCommand","help","parseAsync","shelljs","echo","colors","magenta","dim","red","exit"],"mappings":"ifAcaA,EAAO,KAGlB,MAAMC,EAAOC,EAAMC,EAAQC,QAAQH,OAI7BI,EAAaJ,EAAKK,YAClBC,EAAuBF,EAAW,6BAA8B,EAChEG,EAAUH,EAAWG,UAAW,EACtCC,EAAWD,GACXE,EAAW,iBAAiBC,KAAKC,UAAUP,OAAYQ,EAAW,QAE9DN,GAAwBO,EAAOC,UAAUX,QAAQY,SAASC,KAAMC,EAAoBD,OACtFP,EAAW,iDAENT,EACFkB,QAAQC,GACRD,QAAQE,GACRF,QAAQG,GACRH,QAAQI,GACRJ,QAAQK,GACRL,QAAQM,GACRC,OACAC,eAEHC,EAAQC,KACN,GAAGC,EAAOC,QAAQ,cAAcD,EAAOE,IAAI,SAASF,EAAOG,IACzD,uBAAuB7B,QAAQY,SAASC,gDAAgDC,EAAoBD,WAIhHW,EAAQM,KAAK"}