{"version":3,"file":"run.mjs","names":[],"sources":["../../src/cli.ts","../../src/bin/run.ts"],"sourcesContent":["const usage = 'cap-vite [vite args...] -- <ios|android> [cap run args...]'\n\nconst helpText = [\n  'Run a Vite dev server and forward a second argument group to `cap run`.',\n  '',\n  'Usage:',\n  `  ${usage}`,\n  '',\n  'Examples:',\n  '  cap-vite -- ios --target \"iPhone 16 Pro\"',\n  '  cap-vite --host 0.0.0.0 --port 5173 -- android --target emulator-5554 --flavor release',\n  '',\n  'Notes:',\n  '  Arguments before `--` are forwarded to Vite.',\n  '  Arguments after `--` are forwarded to `cap run`.',\n  '  After the dev server starts, press `R` to re-run `cap run`.',\n].join('\\n')\n\nexport interface ParsedCapViteCliArgs {\n  capArgs: string[]\n  viteArgs: string[]\n}\n\nexport function getCapViteCliHelpText(): string {\n  return helpText\n}\n\nexport function getCapViteCliUsage(): string {\n  return usage\n}\n\n// TODO: CLI and `cap run` argument handling are hand-rolled (see also `resolveCapRunArgs` /\n// `hasCapacitorTargetArg` in native.ts). If parsing rules keep growing, adopt a dedicated argv\n// library (cac is already a dependency—consider subcommands or a small wrapper) so flags like\n// `--target` / `--target=`, env-based defaults, and validation stay in one maintainable layer.\n\nexport function parseCapViteCliArgs(argv: string[]): ParsedCapViteCliArgs | null {\n  if (argv.length === 1 && (argv[0] === '--help' || argv[0] === '-h')) {\n    return null\n  }\n\n  const separatorIndex = argv.indexOf('--')\n  if (separatorIndex === -1) {\n    throw new Error(usage)\n  }\n\n  const capArgs = argv.slice(separatorIndex + 1)\n  if (capArgs.length === 0) {\n    throw new Error(usage)\n  }\n\n  const platform = capArgs[0]\n  if (platform !== 'android' && platform !== 'ios') {\n    throw new Error(usage)\n  }\n\n  return {\n    capArgs,\n    viteArgs: argv.slice(0, separatorIndex),\n  }\n}\n","#!/usr/bin/env node\n\nimport process from 'node:process'\n\nimport { runCapVite } from '..'\nimport { getCapViteCliHelpText, parseCapViteCliArgs } from '../cli'\nimport { errorMessageFromValue } from '../utils/error-message'\n\nasync function main() {\n  const parsed = parseCapViteCliArgs(process.argv.slice(2))\n  if (!parsed) {\n    process.stdout.write(`${getCapViteCliHelpText()}\\n`)\n    return\n  }\n\n  const result = await runCapVite(parsed.viteArgs, parsed.capArgs)\n  if (typeof result.exitCode === 'number') {\n    process.exitCode = result.exitCode\n  }\n}\n\nvoid main().catch((error) => {\n  process.stderr.write(`${errorMessageFromValue(error)}\\n`)\n  process.exit(1)\n})\n"],"mappings":";;;;;AAAA,MAAM,QAAQ;AAEd,MAAM,WAAW;CACf;CACA;CACA;CACA,KAAK;CACL;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC,CAAC,KAAK,IAAI;AAOX,SAAgB,wBAAgC;CAC9C,OAAO;AACT;AAWA,SAAgB,oBAAoB,MAA6C;CAC/E,IAAI,KAAK,WAAW,MAAM,KAAK,OAAO,YAAY,KAAK,OAAO,OAC5D,OAAO;CAGT,MAAM,iBAAiB,KAAK,QAAQ,IAAI;CACxC,IAAI,mBAAmB,IACrB,MAAM,IAAI,MAAM,KAAK;CAGvB,MAAM,UAAU,KAAK,MAAM,iBAAiB,CAAC;CAC7C,IAAI,QAAQ,WAAW,GACrB,MAAM,IAAI,MAAM,KAAK;CAGvB,MAAM,WAAW,QAAQ;CACzB,IAAI,aAAa,aAAa,aAAa,OACzC,MAAM,IAAI,MAAM,KAAK;CAGvB,OAAO;EACL;EACA,UAAU,KAAK,MAAM,GAAG,cAAc;CACxC;AACF;;;ACpDA,eAAe,OAAO;CACpB,MAAM,SAAS,oBAAoB,QAAQ,KAAK,MAAM,CAAC,CAAC;CACxD,IAAI,CAAC,QAAQ;EACX,QAAQ,OAAO,MAAM,GAAG,sBAAsB,EAAE,GAAG;EACnD;CACF;CAEA,MAAM,SAAS,MAAM,WAAW,OAAO,UAAU,OAAO,OAAO;CAC/D,IAAI,OAAO,OAAO,aAAa,UAC7B,QAAQ,WAAW,OAAO;AAE9B;AAEK,KAAK,CAAC,CAAC,OAAO,UAAU;CAC3B,QAAQ,OAAO,MAAM,GAAG,sBAAsB,KAAK,EAAE,GAAG;CACxD,QAAQ,KAAK,CAAC;AAChB,CAAC"}