one
Version:
One is a React framework for web, iOS, and Android apps.
1 lines • 19.6 kB
Source Map (JSON)
{"version":3,"file":"cli.js","names":[],"sources":["esm/cli.js"],"sourcesContent":["import { defineCommand, runMain, showUsage } from \"citty\";\nimport { readFileSync } from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport colors from \"picocolors\";\nfunction getPackageVersion() {\n let dirname;\n if (typeof __dirname !== \"undefined\") {\n dirname = __dirname;\n } else {\n dirname = path.dirname(fileURLToPath(import.meta.url));\n }\n const packagePath = path.join(dirname, \"..\", \"..\", \"package.json\");\n const packageJson = JSON.parse(readFileSync(packagePath, \"utf-8\"));\n return packageJson.version;\n}\nconst version = getPackageVersion();\nconst DOCS_BASE = \"https://onestack.dev/docs\";\nconst docsLinks = {\n dev: `${DOCS_BASE}/one-dev`,\n build: `${DOCS_BASE}/one-build`,\n serve: `${DOCS_BASE}/one-serve`,\n prebuild: `${DOCS_BASE}/guides-ios-native`,\n \"run:ios\": `${DOCS_BASE}/guides-ios-native`,\n \"run:android\": `${DOCS_BASE}/guides-ios-native`,\n clean: `${DOCS_BASE}/configuration`,\n patch: `${DOCS_BASE}/configuration`,\n \"generate-routes\": `${DOCS_BASE}/routing-typed-routes`,\n typegen: `${DOCS_BASE}/routing-typed-routes`,\n \"metro-eject\": `${DOCS_BASE}/guides-ota-updates`,\n \"updates-publish\": \"https://onestack.dev/native/updates\"\n};\nfunction withDocsLink(description, command) {\n return `${description}\n\nDocs: ${docsLinks[command]}`;\n}\nif (path.sep !== \"/\") {\n console.warn(\n colors.bgYellow(\"WARNING: UNSUPPORTED OS\") + colors.yellow(\n \" - It appears you\\u2019re using Windows, which is currently not supported. You may experience unexpected issues.\"\n )\n );\n}\nconst modes = {\n development: \"development\",\n production: \"production\"\n};\nfunction lastValue(arg) {\n if (Array.isArray(arg)) {\n return arg[arg.length - 1];\n }\n return arg;\n}\nconst dev = defineCommand({\n meta: {\n name: \"dev\",\n version,\n description: withDocsLink(\"Start the dev server\", \"dev\")\n },\n args: {\n clean: {\n type: \"boolean\"\n },\n host: {\n type: \"string\"\n },\n port: {\n type: \"string\"\n },\n mode: {\n type: \"string\",\n description: 'If set to \"production\" you can run the development server but serve the production bundle'\n },\n \"debug-bundle\": {\n type: \"string\",\n description: `Will output the bundle to a temp file and then serve it from there afterwards allowing you to easily edit the bundle to debug problems.`\n },\n debug: {\n type: \"string\",\n description: `Pass debug args to Vite`\n },\n \"extra-config\": {\n type: \"string\",\n description: `Path to an extra vite config file to merge on top of the project config`\n }\n },\n async run({ args }) {\n const { dev: dev2 } = await import(\"./cli/dev\");\n await dev2({\n ...args,\n port: lastValue(args.port),\n host: lastValue(args.host),\n debugBundle: lastValue(args[\"debug-bundle\"]),\n mode: modes[lastValue(args.mode)],\n extraConfig: lastValue(args[\"extra-config\"])\n });\n }\n});\nconst buildCommand = defineCommand({\n meta: {\n name: \"build\",\n version,\n description: withDocsLink(\"Build your app\", \"build\")\n },\n args: {\n step: {\n type: \"string\",\n required: false\n },\n // limit the pages built\n only: {\n type: \"string\",\n required: false\n },\n platform: {\n type: \"string\",\n description: `One of: web, ios, android`,\n default: \"web\",\n required: false\n },\n \"skip-env\": {\n type: \"boolean\",\n description: `Skip loading .env files during build`,\n required: false\n }\n },\n async run({ args }) {\n const { build } = await import(\"./cli/build\");\n const platforms = {\n ios: \"ios\",\n web: \"web\",\n android: \"android\"\n };\n if (args.platform && !platforms[args.platform]) {\n throw new Error(`Invalid platform: ${args.platform}`);\n }\n const platform = platforms[args.platform] || \"web\";\n await build({\n only: args.only,\n platform,\n step: args.step,\n skipEnv: args[\"skip-env\"]\n });\n process.exit(0);\n }\n});\nconst serveCommand = defineCommand({\n meta: {\n name: \"serve\",\n version,\n description: withDocsLink(\"Serve a built app for production\", \"serve\")\n },\n args: {\n host: {\n type: \"string\"\n },\n port: {\n type: \"string\"\n },\n compress: {\n type: \"boolean\"\n },\n loadEnv: {\n type: \"boolean\"\n },\n outDir: {\n type: \"string\",\n description: \"Build output directory (default: dist)\"\n },\n cluster: {\n type: \"string\",\n description: \"Enable cluster mode with N workers (default: cpu count)\"\n }\n },\n async run({ args }) {\n const { serve } = await import(\"./serve\");\n const port = lastValue(args.port);\n const host = lastValue(args.host);\n const clusterArg = lastValue(args.cluster);\n await serve({\n port: port ? +port : void 0,\n host,\n compress: args.compress,\n loadEnv: !!args.loadEnv,\n outDir: lastValue(args.outDir),\n cluster: clusterArg !== void 0 ? clusterArg ? +clusterArg : true : void 0\n });\n }\n});\nconst prebuild = defineCommand({\n meta: {\n name: \"prebuild\",\n version,\n description: withDocsLink(\"Prebuild native project\", \"prebuild\")\n },\n args: {\n platform: {\n type: \"string\",\n description: \"ios or android\"\n },\n \"no-install\": {\n type: \"boolean\",\n description: \"skip installing native dependencies\",\n default: false\n }\n },\n async run({ args }) {\n if (args.install === false) args[\"no-install\"] = true;\n const { run } = await import(\"./cli/prebuild\");\n await run(args);\n }\n});\nconst runIos = defineCommand({\n meta: {\n name: \"run:ios\",\n version,\n description: withDocsLink(\"Run the iOS app\", \"run:ios\")\n },\n args: {\n simulator: {\n type: \"string\",\n description: 'explicitly set the simulator to use, e.g. \"iPhone 16\"'\n },\n udid: {\n type: \"string\",\n description: \"explicitly set the simulator to use by UDID\"\n }\n },\n async run({ args }) {\n const { run } = await import(\"./cli/runIos\");\n await run(args);\n }\n});\nconst runAndroid = defineCommand({\n meta: {\n name: \"run:android\",\n version,\n description: withDocsLink(\"Run the Android app\", \"run:android\")\n },\n args: {},\n async run({ args }) {\n const { run } = await import(\"./cli/runAndroid\");\n await run(args);\n }\n});\nconst clean = defineCommand({\n meta: {\n name: \"clean\",\n version: \"0.0.0\",\n description: withDocsLink(\"Clean build folders\", \"clean\")\n },\n args: {},\n async run() {\n const { clean: vxrnClean } = await import(\"vxrn\");\n await vxrnClean({\n root: process.cwd()\n });\n }\n});\nconst patch = defineCommand({\n meta: {\n name: \"patch\",\n version: \"0.0.0\",\n description: withDocsLink(\"Apply package patches\", \"patch\")\n },\n args: {\n force: {\n type: \"boolean\",\n description: \"Force re-apply all patches\"\n }\n },\n async run({ args }) {\n const { run } = await import(\"./cli/patch\");\n await run(args);\n }\n});\nconst generateRoutes = defineCommand({\n meta: {\n name: \"generate-routes\",\n version,\n description: withDocsLink(\n \"Generate route type definitions (routes.d.ts)\",\n \"generate-routes\"\n )\n },\n args: {\n appDir: {\n type: \"string\",\n description: 'Path to app directory (default: \"app\")'\n },\n typed: {\n type: \"string\",\n description: 'Auto-generate route helpers. Options: \"type\" (type-only helpers) or \"runtime\" (runtime helpers)'\n }\n },\n async run({ args }) {\n const { run } = await import(\"./cli/generateRoutes\");\n await run(args);\n }\n});\nconst typegen = defineCommand({\n meta: {\n name: \"typegen\",\n version,\n description: withDocsLink(\n \"Generate routes.d.ts (alias for generate-routes)\",\n \"typegen\"\n )\n },\n args: {\n appDir: {\n type: \"string\",\n description: 'Path to app directory (default: \"app\")'\n },\n typed: {\n type: \"string\",\n description: 'Auto-generate route helpers. Options: \"type\" (type-only helpers) or \"runtime\" (runtime helpers)'\n }\n },\n async run({ args }) {\n const { run } = await import(\"./cli/generateRoutes\");\n await run(args);\n }\n});\nconst metroEject = defineCommand({\n meta: {\n name: \"metro-eject\",\n version,\n description: withDocsLink(\n \"Write babel.config.cjs + metro.config.cjs so you can own them and customize freely\",\n \"metro-eject\"\n )\n },\n args: {\n force: {\n type: \"boolean\",\n description: \"Overwrite existing files\"\n }\n },\n async run({ args }) {\n const { generateBundlerConfig } = await import(\"./cli/generateBundlerConfig\");\n const { loadUserOneOptions } = await import(\"./vite/loadConfig\");\n process.env.IS_VXRN_CLI = \"true\";\n const { oneOptions } = await loadUserOneOptions(\"build\");\n const { ok } = generateBundlerConfig({\n force: !!args.force,\n eject: true,\n oneOptions\n });\n if (!ok) process.exit(1);\n }\n});\nconst daemonCommand = defineCommand({\n meta: {\n name: \"daemon\",\n version,\n description: \"Multi-app development server proxy\"\n },\n args: {\n subcommand: {\n type: \"positional\",\n description: \"Subcommand: start, stop, status, route (default: start)\",\n required: false\n },\n port: {\n type: \"string\",\n description: \"Port to listen on (default: 8081)\"\n },\n host: {\n type: \"string\",\n description: \"Host to bind to (default: 0.0.0.0)\"\n },\n app: {\n type: \"string\",\n description: \"Bundle ID for route command\"\n },\n slot: {\n type: \"string\",\n description: \"Slot number for route command\"\n },\n project: {\n type: \"string\",\n description: \"Project path for route command\"\n },\n tui: {\n type: \"boolean\",\n description: \"Show TUI (default: true if TTY)\"\n }\n },\n async run({ args }) {\n const { daemon } = await import(\"./cli/daemon\");\n await daemon({\n ...args,\n port: lastValue(args.port),\n host: lastValue(args.host)\n });\n }\n});\nconst updatesPublish = defineCommand({\n meta: {\n name: \"updates publish\",\n version,\n description: withDocsLink(\n \"Bundle and publish an over-the-air update\",\n \"updates-publish\"\n )\n },\n args: {\n platform: {\n type: \"string\",\n description: \"ios or android\"\n },\n out: {\n type: \"string\",\n description: \"Directory to write manifest.json and assets into\"\n },\n metadata: {\n type: \"string\",\n description: \"Manifest metadata as key=value (repeatable)\"\n },\n intermediatesOut: {\n type: \"string\",\n description: \"Separate directory for local debug bundle and composed source map; never upload it\"\n },\n runtimeVersion: {\n type: \"string\",\n description: \"Runtime version for an app built with expo prebuild, which has no native.app\"\n }\n },\n async run({ args }) {\n const { runUpdatesPublish } = await import(\"./cli/updatesPublish\");\n await runUpdatesPublish(args);\n }\n});\nconst updates = defineCommand({\n meta: {\n name: \"updates\",\n version,\n description: \"Over-the-air updates\"\n },\n subCommands: {\n publish: updatesPublish\n }\n});\nconst subCommands = {\n dev,\n clean,\n build: buildCommand,\n prebuild,\n \"run:ios\": runIos,\n \"run:android\": runAndroid,\n patch,\n serve: serveCommand,\n \"generate-routes\": generateRoutes,\n typegen,\n daemon: daemonCommand,\n \"metro-eject\": metroEject,\n updates\n};\nconst subMain = defineCommand({\n meta: {\n name: \"one\",\n version,\n description: \"Welcome to One\"\n },\n subCommands\n});\nconst main = defineCommand({\n meta: {\n name: \"one\",\n version,\n description: \"Welcome to One\"\n },\n args: {\n name: {\n type: \"positional\",\n description: \"Folder name to place the app into\",\n required: false\n }\n },\n async run({ args }) {\n if (subCommands[args.name]) {\n runMain(subMain);\n return;\n }\n const { cliMain } = await import(\"./cli/main\");\n await cliMain(args);\n }\n});\nconst helpIndex = process.argv.indexOf(\"--help\");\nif (helpIndex > 0) {\n const subCommandName = process.argv[helpIndex - 1];\n const subCommand = subCommands[subCommandName];\n if (subCommand) {\n showUsage(subCommand);\n } else {\n showUsage(subMain);\n }\n} else {\n runMain(main);\n}\n//# sourceMappingURL=cli.js.map\n"],"mappings":"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"}