one 2.6.3 → 2.6.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/cli.cjs +2 -2
- package/dist/cjs/cli.native.cjs +2 -2
- package/dist/cjs/cli.native.js +2 -2
- package/dist/cjs/cli.native.js.map +1 -1
- package/dist/cjs/server/assetRange.cjs +84 -16
- package/dist/cjs/server/assetRange.native.cjs +102 -16
- package/dist/cjs/server/assetRange.native.js +102 -16
- package/dist/cjs/server/assetRange.native.js.map +1 -1
- package/dist/esm/cli.mjs +2 -2
- package/dist/esm/cli.mjs.map +1 -1
- package/dist/esm/cli.native.js +2 -2
- package/dist/esm/cli.native.js.map +1 -1
- package/dist/esm/server/assetRange.mjs +84 -16
- package/dist/esm/server/assetRange.mjs.map +1 -1
- package/dist/esm/server/assetRange.native.js +102 -16
- package/dist/esm/server/assetRange.native.js.map +1 -1
- package/nitrogen/generated/ios/One-Swift-Cxx-Bridge.hpp +1 -10
- package/package.json +12 -12
- package/src/cli.ts +2 -2
- package/src/server/assetRange.test.ts +50 -10
- package/src/server/assetRange.ts +90 -14
- package/types/server/assetRange.d.ts.map +1 -1
package/dist/esm/cli.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"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: \"main\",\n version,\n description: \"Welcome to One\"\n },\n subCommands\n});\nconst main = defineCommand({\n meta: {\n name: \"main\",\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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"}
|
|
1
|
+
{"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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"}
|
package/dist/esm/cli.native.js
CHANGED
|
@@ -434,7 +434,7 @@ var subCommands = {
|
|
|
434
434
|
};
|
|
435
435
|
var subMain = defineCommand({
|
|
436
436
|
meta: {
|
|
437
|
-
name: "
|
|
437
|
+
name: "one",
|
|
438
438
|
version,
|
|
439
439
|
description: "Welcome to One"
|
|
440
440
|
},
|
|
@@ -442,7 +442,7 @@ var subMain = defineCommand({
|
|
|
442
442
|
});
|
|
443
443
|
var main = defineCommand({
|
|
444
444
|
meta: {
|
|
445
|
-
name: "
|
|
445
|
+
name: "one",
|
|
446
446
|
version,
|
|
447
447
|
description: "Welcome to One"
|
|
448
448
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.native.js","names":[],"sources":["esm/cli.native.js"],"sourcesContent":["import { defineCommand, runMain, showUsage } from \"citty\";\nimport { readFileSync } from \"fs\";\nimport path from \"path\";\nimport { fileURLToPath } from \"url\";\nimport colors from \"picocolors\";\nfunction getPackageVersion() {\n var dirname;\n if (typeof __dirname !== \"undefined\") {\n dirname = __dirname;\n } else {\n dirname = path.dirname(fileURLToPath(import.meta.url));\n }\n var packagePath = path.join(dirname, \"..\", \"..\", \"package.json\");\n var packageJson = JSON.parse(readFileSync(packagePath, \"utf-8\"));\n return packageJson.version;\n}\nvar version = getPackageVersion();\nvar DOCS_BASE = \"https://onestack.dev/docs\";\nvar 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(colors.bgYellow(\"WARNING: UNSUPPORTED OS\") + colors.yellow(\" - It appears you\\u2019re using Windows, which is currently not supported. You may experience unexpected issues.\"));\n}\nvar 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}\nvar 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(param) {\n var { args } = param;\n var { 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});\nvar 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(param) {\n var { args } = param;\n var { build } = await import(\"./cli/build\");\n var 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 var 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});\nvar 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(param) {\n var { args } = param;\n var { serve } = await import(\"./serve\");\n var port = lastValue(args.port);\n var host = lastValue(args.host);\n var 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});\nvar 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(param) {\n var { args } = param;\n if (args.install === false) args[\"no-install\"] = true;\n var { run } = await import(\"./cli/prebuild\");\n await run(args);\n }\n});\nvar 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(param) {\n var { args } = param;\n var { run } = await import(\"./cli/runIos\");\n await run(args);\n }\n});\nvar 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(param) {\n var { args } = param;\n var { run } = await import(\"./cli/runAndroid\");\n await run(args);\n }\n});\nvar 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 var { clean: vxrnClean } = await import(\"vxrn\");\n await vxrnClean({\n root: process.cwd()\n });\n }\n});\nvar 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(param) {\n var { args } = param;\n var { run } = await import(\"./cli/patch\");\n await run(args);\n }\n});\nvar generateRoutes = defineCommand({\n meta: {\n name: \"generate-routes\",\n version,\n description: withDocsLink(\"Generate route type definitions (routes.d.ts)\", \"generate-routes\")\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(param) {\n var { args } = param;\n var { run } = await import(\"./cli/generateRoutes\");\n await run(args);\n }\n});\nvar typegen = defineCommand({\n meta: {\n name: \"typegen\",\n version,\n description: withDocsLink(\"Generate routes.d.ts (alias for generate-routes)\", \"typegen\")\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(param) {\n var { args } = param;\n var { run } = await import(\"./cli/generateRoutes\");\n await run(args);\n }\n});\nvar metroEject = defineCommand({\n meta: {\n name: \"metro-eject\",\n version,\n description: withDocsLink(\"Write babel.config.cjs + metro.config.cjs so you can own them and customize freely\", \"metro-eject\")\n },\n args: {\n force: {\n type: \"boolean\",\n description: \"Overwrite existing files\"\n }\n },\n async run(param) {\n var { args } = param;\n var { generateBundlerConfig } = await import(\"./cli/generateBundlerConfig\");\n var { loadUserOneOptions } = await import(\"./vite/loadConfig\");\n process.env.IS_VXRN_CLI = \"true\";\n var { oneOptions } = await loadUserOneOptions(\"build\");\n var { ok } = generateBundlerConfig({\n force: !!args.force,\n eject: true,\n oneOptions\n });\n if (!ok) process.exit(1);\n }\n});\nvar 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(param) {\n var { args } = param;\n var { daemon } = await import(\"./cli/daemon\");\n await daemon({\n ...args,\n port: lastValue(args.port),\n host: lastValue(args.host)\n });\n }\n});\nvar updatesPublish = defineCommand({\n meta: {\n name: \"updates publish\",\n version,\n description: withDocsLink(\"Bundle and publish an over-the-air update\", \"updates-publish\")\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(param) {\n var { args } = param;\n var { runUpdatesPublish } = await import(\"./cli/updatesPublish\");\n await runUpdatesPublish(args);\n }\n});\nvar updates = defineCommand({\n meta: {\n name: \"updates\",\n version,\n description: \"Over-the-air updates\"\n },\n subCommands: {\n publish: updatesPublish\n }\n});\nvar 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};\nvar subMain = defineCommand({\n meta: {\n name: \"main\",\n version,\n description: \"Welcome to One\"\n },\n subCommands\n});\nvar main = defineCommand({\n meta: {\n name: \"main\",\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(param) {\n var { args } = param;\n if (subCommands[args.name]) {\n runMain(subMain);\n return;\n }\n var { cliMain } = await import(\"./cli/main\");\n await cliMain(args);\n }\n});\nvar helpIndex = process.argv.indexOf(\"--help\");\nif (helpIndex > 0) {\n var subCommandName = process.argv[helpIndex - 1];\n var 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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"}
|
|
1
|
+
{"version":3,"file":"cli.native.js","names":[],"sources":["esm/cli.native.js"],"sourcesContent":["import { defineCommand, runMain, showUsage } from \"citty\";\nimport { readFileSync } from \"fs\";\nimport path from \"path\";\nimport { fileURLToPath } from \"url\";\nimport colors from \"picocolors\";\nfunction getPackageVersion() {\n var dirname;\n if (typeof __dirname !== \"undefined\") {\n dirname = __dirname;\n } else {\n dirname = path.dirname(fileURLToPath(import.meta.url));\n }\n var packagePath = path.join(dirname, \"..\", \"..\", \"package.json\");\n var packageJson = JSON.parse(readFileSync(packagePath, \"utf-8\"));\n return packageJson.version;\n}\nvar version = getPackageVersion();\nvar DOCS_BASE = \"https://onestack.dev/docs\";\nvar 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(colors.bgYellow(\"WARNING: UNSUPPORTED OS\") + colors.yellow(\" - It appears you\\u2019re using Windows, which is currently not supported. You may experience unexpected issues.\"));\n}\nvar 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}\nvar 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(param) {\n var { args } = param;\n var { 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});\nvar 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(param) {\n var { args } = param;\n var { build } = await import(\"./cli/build\");\n var 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 var 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});\nvar 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(param) {\n var { args } = param;\n var { serve } = await import(\"./serve\");\n var port = lastValue(args.port);\n var host = lastValue(args.host);\n var 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});\nvar 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(param) {\n var { args } = param;\n if (args.install === false) args[\"no-install\"] = true;\n var { run } = await import(\"./cli/prebuild\");\n await run(args);\n }\n});\nvar 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(param) {\n var { args } = param;\n var { run } = await import(\"./cli/runIos\");\n await run(args);\n }\n});\nvar 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(param) {\n var { args } = param;\n var { run } = await import(\"./cli/runAndroid\");\n await run(args);\n }\n});\nvar 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 var { clean: vxrnClean } = await import(\"vxrn\");\n await vxrnClean({\n root: process.cwd()\n });\n }\n});\nvar 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(param) {\n var { args } = param;\n var { run } = await import(\"./cli/patch\");\n await run(args);\n }\n});\nvar generateRoutes = defineCommand({\n meta: {\n name: \"generate-routes\",\n version,\n description: withDocsLink(\"Generate route type definitions (routes.d.ts)\", \"generate-routes\")\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(param) {\n var { args } = param;\n var { run } = await import(\"./cli/generateRoutes\");\n await run(args);\n }\n});\nvar typegen = defineCommand({\n meta: {\n name: \"typegen\",\n version,\n description: withDocsLink(\"Generate routes.d.ts (alias for generate-routes)\", \"typegen\")\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(param) {\n var { args } = param;\n var { run } = await import(\"./cli/generateRoutes\");\n await run(args);\n }\n});\nvar metroEject = defineCommand({\n meta: {\n name: \"metro-eject\",\n version,\n description: withDocsLink(\"Write babel.config.cjs + metro.config.cjs so you can own them and customize freely\", \"metro-eject\")\n },\n args: {\n force: {\n type: \"boolean\",\n description: \"Overwrite existing files\"\n }\n },\n async run(param) {\n var { args } = param;\n var { generateBundlerConfig } = await import(\"./cli/generateBundlerConfig\");\n var { loadUserOneOptions } = await import(\"./vite/loadConfig\");\n process.env.IS_VXRN_CLI = \"true\";\n var { oneOptions } = await loadUserOneOptions(\"build\");\n var { ok } = generateBundlerConfig({\n force: !!args.force,\n eject: true,\n oneOptions\n });\n if (!ok) process.exit(1);\n }\n});\nvar 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(param) {\n var { args } = param;\n var { daemon } = await import(\"./cli/daemon\");\n await daemon({\n ...args,\n port: lastValue(args.port),\n host: lastValue(args.host)\n });\n }\n});\nvar updatesPublish = defineCommand({\n meta: {\n name: \"updates publish\",\n version,\n description: withDocsLink(\"Bundle and publish an over-the-air update\", \"updates-publish\")\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(param) {\n var { args } = param;\n var { runUpdatesPublish } = await import(\"./cli/updatesPublish\");\n await runUpdatesPublish(args);\n }\n});\nvar updates = defineCommand({\n meta: {\n name: \"updates\",\n version,\n description: \"Over-the-air updates\"\n },\n subCommands: {\n publish: updatesPublish\n }\n});\nvar 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};\nvar subMain = defineCommand({\n meta: {\n name: \"one\",\n version,\n description: \"Welcome to One\"\n },\n subCommands\n});\nvar 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(param) {\n var { args } = param;\n if (subCommands[args.name]) {\n runMain(subMain);\n return;\n }\n var { cliMain } = await import(\"./cli/main\");\n await cliMain(args);\n }\n});\nvar helpIndex = process.argv.indexOf(\"--help\");\nif (helpIndex > 0) {\n var subCommandName = process.argv[helpIndex - 1];\n var 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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"}
|
|
@@ -1,37 +1,105 @@
|
|
|
1
1
|
async function withRange(request, response) {
|
|
2
2
|
const range = request.headers.get("range");
|
|
3
|
-
if (!range || request.method !== "GET" || response.status !== 200 || response.headers.has("content-range") || response.headers.has("content-encoding")) {
|
|
3
|
+
if (!range || request.method !== "GET" || response.status !== 200 || !response.body || response.headers.has("content-range") || response.headers.has("content-encoding") || !ifRangeMatches(request.headers.get("if-range"), response.headers)) {
|
|
4
4
|
return response;
|
|
5
5
|
}
|
|
6
6
|
const match = /^bytes=(\d*)-(\d*)$/.exec(range.trim());
|
|
7
7
|
if (!match || !match[1] && !match[2]) return response;
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
let start;
|
|
11
|
-
let end;
|
|
12
|
-
if (!match[1]) {
|
|
13
|
-
start = Math.max(0, size - Number(match[2]));
|
|
14
|
-
end = size - 1;
|
|
15
|
-
} else {
|
|
16
|
-
start = Number(match[1]);
|
|
17
|
-
end = match[2] ? Math.min(Number(match[2]), size - 1) : size - 1;
|
|
18
|
-
}
|
|
8
|
+
const length = response.headers.get("content-length");
|
|
9
|
+
const known = length && /^\d+$/.test(length) ? Number(length) : void 0;
|
|
19
10
|
const headers = new Headers(response.headers);
|
|
20
11
|
headers.set("accept-ranges", "bytes");
|
|
21
|
-
|
|
12
|
+
headers.delete("content-length");
|
|
13
|
+
const { size, kept, keptStart } = await readRange(response.body, match, known);
|
|
14
|
+
const span = resolve(match, size);
|
|
15
|
+
if (!span) {
|
|
22
16
|
headers.set("content-range", `bytes */${size}`);
|
|
23
17
|
return new Response(null, {
|
|
24
18
|
status: 416,
|
|
25
19
|
headers
|
|
26
20
|
});
|
|
27
21
|
}
|
|
28
|
-
headers.set("content-range", `bytes ${start}-${end}/${size}`);
|
|
29
|
-
headers.set("content-length", String(end - start + 1));
|
|
30
|
-
return new Response(
|
|
22
|
+
headers.set("content-range", `bytes ${span.start}-${span.end}/${size}`);
|
|
23
|
+
headers.set("content-length", String(span.end - span.start + 1));
|
|
24
|
+
return new Response(kept.subarray(span.start - keptStart, span.end - keptStart + 1), {
|
|
31
25
|
status: 206,
|
|
32
26
|
headers
|
|
33
27
|
});
|
|
34
28
|
}
|
|
29
|
+
function ifRangeMatches(ifRange, headers) {
|
|
30
|
+
if (!ifRange) return true;
|
|
31
|
+
const value = ifRange.trim();
|
|
32
|
+
if (value.startsWith("\"")) {
|
|
33
|
+
const etag = headers.get("etag");
|
|
34
|
+
return !!etag && !etag.startsWith("W/") && etag === value;
|
|
35
|
+
}
|
|
36
|
+
if (value.startsWith("W/")) return false;
|
|
37
|
+
return headers.get("last-modified") === value;
|
|
38
|
+
}
|
|
39
|
+
function resolve(match, size) {
|
|
40
|
+
let start;
|
|
41
|
+
let end;
|
|
42
|
+
if (!match[1]) {
|
|
43
|
+
start = Math.max(0, size - Number(match[2]));
|
|
44
|
+
end = size - 1;
|
|
45
|
+
} else {
|
|
46
|
+
start = Number(match[1]);
|
|
47
|
+
end = match[2] ? Math.min(Number(match[2]), size - 1) : size - 1;
|
|
48
|
+
}
|
|
49
|
+
if (start >= size || start > end) return;
|
|
50
|
+
return {
|
|
51
|
+
start,
|
|
52
|
+
end
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
async function readRange(body, match, known) {
|
|
56
|
+
const span = known === void 0 ? void 0 : resolve(match, known) ?? {
|
|
57
|
+
start: known,
|
|
58
|
+
end: -1
|
|
59
|
+
};
|
|
60
|
+
const suffix = !span && !match[1] ? Number(match[2]) : 0;
|
|
61
|
+
const from = span ? span.start : match[1] ? Number(match[1]) : 0;
|
|
62
|
+
const to = span ? span.end : match[2] && match[1] ? Number(match[2]) : Number.POSITIVE_INFINITY;
|
|
63
|
+
const chunks = [];
|
|
64
|
+
let keptBytes = 0;
|
|
65
|
+
let size = 0;
|
|
66
|
+
const reader = body.getReader();
|
|
67
|
+
while (known === void 0 || size <= to) {
|
|
68
|
+
const { done, value } = await reader.read();
|
|
69
|
+
if (done) break;
|
|
70
|
+
const chunkStart = size;
|
|
71
|
+
size += value.byteLength;
|
|
72
|
+
if (suffix) {
|
|
73
|
+
chunks.push(value);
|
|
74
|
+
keptBytes += value.byteLength;
|
|
75
|
+
while (chunks.length > 1 && keptBytes - chunks[0].byteLength >= suffix) {
|
|
76
|
+
keptBytes -= chunks.shift().byteLength;
|
|
77
|
+
}
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
const lo = Math.max(from, chunkStart);
|
|
81
|
+
const hi = Math.min(to + 1, size);
|
|
82
|
+
if (hi > lo) {
|
|
83
|
+
chunks.push(value.subarray(lo - chunkStart, hi - chunkStart));
|
|
84
|
+
keptBytes += hi - lo;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (known !== void 0) {
|
|
88
|
+
await reader.cancel();
|
|
89
|
+
size = known;
|
|
90
|
+
}
|
|
91
|
+
const kept = new Uint8Array(keptBytes);
|
|
92
|
+
let at = 0;
|
|
93
|
+
for (const chunk of chunks) {
|
|
94
|
+
kept.set(chunk, at);
|
|
95
|
+
at += chunk.byteLength;
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
size,
|
|
99
|
+
kept,
|
|
100
|
+
keptStart: suffix ? size - keptBytes : from
|
|
101
|
+
};
|
|
102
|
+
}
|
|
35
103
|
|
|
36
104
|
export { withRange };
|
|
37
105
|
//# sourceMappingURL=assetRange.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assetRange.js","names":[],"sources":["esm/server/assetRange.js"],"sourcesContent":["async function withRange(request, response) {\n const range = request.headers.get(\"range\");\n if (!range || request.method !== \"GET\" || response.status !== 200 || response.headers.has(\"content-range\") || response.headers.has(\"content-encoding\")) {\n return response;\n }\n const match = /^bytes=(\\d*)-(\\d*)$/.exec(range.trim());\n if (!match || !match[1] && !match[2]) return response;\n const
|
|
1
|
+
{"version":3,"file":"assetRange.js","names":[],"sources":["esm/server/assetRange.js"],"sourcesContent":["async function withRange(request, response) {\n const range = request.headers.get(\"range\");\n if (!range || request.method !== \"GET\" || response.status !== 200 || !response.body || response.headers.has(\"content-range\") || response.headers.has(\"content-encoding\") || !ifRangeMatches(request.headers.get(\"if-range\"), response.headers)) {\n return response;\n }\n const match = /^bytes=(\\d*)-(\\d*)$/.exec(range.trim());\n if (!match || !match[1] && !match[2]) return response;\n const length = response.headers.get(\"content-length\");\n const known = length && /^\\d+$/.test(length) ? Number(length) : void 0;\n const headers = new Headers(response.headers);\n headers.set(\"accept-ranges\", \"bytes\");\n headers.delete(\"content-length\");\n const { size, kept, keptStart } = await readRange(response.body, match, known);\n const span = resolve(match, size);\n if (!span) {\n headers.set(\"content-range\", `bytes */${size}`);\n return new Response(null, { status: 416, headers });\n }\n headers.set(\"content-range\", `bytes ${span.start}-${span.end}/${size}`);\n headers.set(\"content-length\", String(span.end - span.start + 1));\n return new Response(kept.subarray(span.start - keptStart, span.end - keptStart + 1), {\n status: 206,\n headers\n });\n}\nfunction ifRangeMatches(ifRange, headers) {\n if (!ifRange) return true;\n const value = ifRange.trim();\n if (value.startsWith('\"')) {\n const etag = headers.get(\"etag\");\n return !!etag && !etag.startsWith(\"W/\") && etag === value;\n }\n if (value.startsWith(\"W/\")) return false;\n return headers.get(\"last-modified\") === value;\n}\nfunction resolve(match, size) {\n let start;\n let end;\n if (!match[1]) {\n start = Math.max(0, size - Number(match[2]));\n end = size - 1;\n } else {\n start = Number(match[1]);\n end = match[2] ? Math.min(Number(match[2]), size - 1) : size - 1;\n }\n if (start >= size || start > end) return;\n return { start, end };\n}\nasync function readRange(body, match, known) {\n const span = known === void 0 ? void 0 : resolve(match, known) ?? { start: known, end: -1 };\n const suffix = !span && !match[1] ? Number(match[2]) : 0;\n const from = span ? span.start : match[1] ? Number(match[1]) : 0;\n const to = span ? span.end : match[2] && match[1] ? Number(match[2]) : Number.POSITIVE_INFINITY;\n const chunks = [];\n let keptBytes = 0;\n let size = 0;\n const reader = body.getReader();\n while (known === void 0 || size <= to) {\n const { done, value } = await reader.read();\n if (done) break;\n const chunkStart = size;\n size += value.byteLength;\n if (suffix) {\n chunks.push(value);\n keptBytes += value.byteLength;\n while (chunks.length > 1 && keptBytes - chunks[0].byteLength >= suffix) {\n keptBytes -= chunks.shift().byteLength;\n }\n continue;\n }\n const lo = Math.max(from, chunkStart);\n const hi = Math.min(to + 1, size);\n if (hi > lo) {\n chunks.push(value.subarray(lo - chunkStart, hi - chunkStart));\n keptBytes += hi - lo;\n }\n }\n if (known !== void 0) {\n await reader.cancel();\n size = known;\n }\n const kept = new Uint8Array(keptBytes);\n let at = 0;\n for (const chunk of chunks) {\n kept.set(chunk, at);\n at += chunk.byteLength;\n }\n return { size, kept, keptStart: suffix ? size - keptBytes : from };\n}\nexport {\n withRange\n};\n//# sourceMappingURL=assetRange.js.map\n"],"mappings":"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"}
|
|
@@ -1,37 +1,123 @@
|
|
|
1
1
|
async function withRange(request, response) {
|
|
2
2
|
var range = request.headers.get("range");
|
|
3
|
-
if (!range || request.method !== "GET" || response.status !== 200 || response.headers.has("content-range") || response.headers.has("content-encoding")) {
|
|
3
|
+
if (!range || request.method !== "GET" || response.status !== 200 || !response.body || response.headers.has("content-range") || response.headers.has("content-encoding") || !ifRangeMatches(request.headers.get("if-range"), response.headers)) {
|
|
4
4
|
return response;
|
|
5
5
|
}
|
|
6
6
|
var match = /^bytes=(\d*)-(\d*)$/.exec(range.trim());
|
|
7
7
|
if (!match || !match[1] && !match[2]) return response;
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var start;
|
|
11
|
-
var end;
|
|
12
|
-
if (!match[1]) {
|
|
13
|
-
start = Math.max(0, size - Number(match[2]));
|
|
14
|
-
end = size - 1;
|
|
15
|
-
} else {
|
|
16
|
-
start = Number(match[1]);
|
|
17
|
-
end = match[2] ? Math.min(Number(match[2]), size - 1) : size - 1;
|
|
18
|
-
}
|
|
8
|
+
var length = response.headers.get("content-length");
|
|
9
|
+
var known = length && /^\d+$/.test(length) ? Number(length) : void 0;
|
|
19
10
|
var headers = new Headers(response.headers);
|
|
20
11
|
headers.set("accept-ranges", "bytes");
|
|
21
|
-
|
|
12
|
+
headers.delete("content-length");
|
|
13
|
+
var { size, kept, keptStart } = await readRange(response.body, match, known);
|
|
14
|
+
var span = resolve(match, size);
|
|
15
|
+
if (!span) {
|
|
22
16
|
headers.set("content-range", `bytes */${size}`);
|
|
23
17
|
return new Response(null, {
|
|
24
18
|
status: 416,
|
|
25
19
|
headers
|
|
26
20
|
});
|
|
27
21
|
}
|
|
28
|
-
headers.set("content-range", `bytes ${start}-${end}/${size}`);
|
|
29
|
-
headers.set("content-length", String(end - start + 1));
|
|
30
|
-
return new Response(
|
|
22
|
+
headers.set("content-range", `bytes ${span.start}-${span.end}/${size}`);
|
|
23
|
+
headers.set("content-length", String(span.end - span.start + 1));
|
|
24
|
+
return new Response(kept.subarray(span.start - keptStart, span.end - keptStart + 1), {
|
|
31
25
|
status: 206,
|
|
32
26
|
headers
|
|
33
27
|
});
|
|
34
28
|
}
|
|
29
|
+
function ifRangeMatches(ifRange, headers) {
|
|
30
|
+
if (!ifRange) return true;
|
|
31
|
+
var value = ifRange.trim();
|
|
32
|
+
if (value.startsWith("\"")) {
|
|
33
|
+
var etag = headers.get("etag");
|
|
34
|
+
return !!etag && !etag.startsWith("W/") && etag === value;
|
|
35
|
+
}
|
|
36
|
+
if (value.startsWith("W/")) return false;
|
|
37
|
+
return headers.get("last-modified") === value;
|
|
38
|
+
}
|
|
39
|
+
function resolve(match, size) {
|
|
40
|
+
var start;
|
|
41
|
+
var end;
|
|
42
|
+
if (!match[1]) {
|
|
43
|
+
start = Math.max(0, size - Number(match[2]));
|
|
44
|
+
end = size - 1;
|
|
45
|
+
} else {
|
|
46
|
+
start = Number(match[1]);
|
|
47
|
+
end = match[2] ? Math.min(Number(match[2]), size - 1) : size - 1;
|
|
48
|
+
}
|
|
49
|
+
if (start >= size || start > end) return;
|
|
50
|
+
return {
|
|
51
|
+
start,
|
|
52
|
+
end
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
async function readRange(body, match, known) {
|
|
56
|
+
var _resolve;
|
|
57
|
+
var span = known === void 0 ? void 0 : (_resolve = resolve(match, known)) !== null && _resolve !== void 0 ? _resolve : {
|
|
58
|
+
start: known,
|
|
59
|
+
end: -1
|
|
60
|
+
};
|
|
61
|
+
var suffix = !span && !match[1] ? Number(match[2]) : 0;
|
|
62
|
+
var from = span ? span.start : match[1] ? Number(match[1]) : 0;
|
|
63
|
+
var to = span ? span.end : match[2] && match[1] ? Number(match[2]) : Number.POSITIVE_INFINITY;
|
|
64
|
+
var chunks = [];
|
|
65
|
+
var keptBytes = 0;
|
|
66
|
+
var size = 0;
|
|
67
|
+
var reader = body.getReader();
|
|
68
|
+
while (known === void 0 || size <= to) {
|
|
69
|
+
var { done, value } = await reader.read();
|
|
70
|
+
if (done) break;
|
|
71
|
+
var chunkStart = size;
|
|
72
|
+
size += value.byteLength;
|
|
73
|
+
if (suffix) {
|
|
74
|
+
chunks.push(value);
|
|
75
|
+
keptBytes += value.byteLength;
|
|
76
|
+
while (chunks.length > 1 && keptBytes - chunks[0].byteLength >= suffix) {
|
|
77
|
+
keptBytes -= chunks.shift().byteLength;
|
|
78
|
+
}
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
var lo = Math.max(from, chunkStart);
|
|
82
|
+
var hi = Math.min(to + 1, size);
|
|
83
|
+
if (hi > lo) {
|
|
84
|
+
chunks.push(value.subarray(lo - chunkStart, hi - chunkStart));
|
|
85
|
+
keptBytes += hi - lo;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
if (known !== void 0) {
|
|
89
|
+
await reader.cancel();
|
|
90
|
+
size = known;
|
|
91
|
+
}
|
|
92
|
+
var kept = new Uint8Array(keptBytes);
|
|
93
|
+
var at = 0;
|
|
94
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
95
|
+
try {
|
|
96
|
+
for (var _iterator = chunks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
97
|
+
var chunk = _step.value;
|
|
98
|
+
kept.set(chunk, at);
|
|
99
|
+
at += chunk.byteLength;
|
|
100
|
+
}
|
|
101
|
+
} catch (err) {
|
|
102
|
+
_didIteratorError = true;
|
|
103
|
+
_iteratorError = err;
|
|
104
|
+
} finally {
|
|
105
|
+
try {
|
|
106
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
107
|
+
_iterator.return();
|
|
108
|
+
}
|
|
109
|
+
} finally {
|
|
110
|
+
if (_didIteratorError) {
|
|
111
|
+
throw _iteratorError;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return {
|
|
116
|
+
size,
|
|
117
|
+
kept,
|
|
118
|
+
keptStart: suffix ? size - keptBytes : from
|
|
119
|
+
};
|
|
120
|
+
}
|
|
35
121
|
|
|
36
122
|
export { withRange };
|
|
37
123
|
//# sourceMappingURL=assetRange.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assetRange.native.js","names":[],"sources":["esm/server/assetRange.native.js"],"sourcesContent":["async function withRange(request, response) {\n var range = request.headers.get(\"range\");\n if (!range || request.method !== \"GET\" || response.status !== 200 || response.headers.has(\"content-range\") || response.headers.has(\"content-encoding\")) {\n return response;\n }\n var match = /^bytes=(\\d*)-(\\d*)$/.exec(range.trim());\n if (!match || !match[1] && !match[2]) return response;\n var
|
|
1
|
+
{"version":3,"file":"assetRange.native.js","names":[],"sources":["esm/server/assetRange.native.js"],"sourcesContent":["async function withRange(request, response) {\n var range = request.headers.get(\"range\");\n if (!range || request.method !== \"GET\" || response.status !== 200 || !response.body || response.headers.has(\"content-range\") || response.headers.has(\"content-encoding\") || !ifRangeMatches(request.headers.get(\"if-range\"), response.headers)) {\n return response;\n }\n var match = /^bytes=(\\d*)-(\\d*)$/.exec(range.trim());\n if (!match || !match[1] && !match[2]) return response;\n var length = response.headers.get(\"content-length\");\n var known = length && /^\\d+$/.test(length) ? Number(length) : void 0;\n var headers = new Headers(response.headers);\n headers.set(\"accept-ranges\", \"bytes\");\n headers.delete(\"content-length\");\n var { size, kept, keptStart } = await readRange(response.body, match, known);\n var span = resolve(match, size);\n if (!span) {\n headers.set(\"content-range\", `bytes */${size}`);\n return new Response(null, {\n status: 416,\n headers\n });\n }\n headers.set(\"content-range\", `bytes ${span.start}-${span.end}/${size}`);\n headers.set(\"content-length\", String(span.end - span.start + 1));\n return new Response(kept.subarray(span.start - keptStart, span.end - keptStart + 1), {\n status: 206,\n headers\n });\n}\nfunction ifRangeMatches(ifRange, headers) {\n if (!ifRange) return true;\n var value = ifRange.trim();\n if (value.startsWith('\"')) {\n var etag = headers.get(\"etag\");\n return !!etag && !etag.startsWith(\"W/\") && etag === value;\n }\n if (value.startsWith(\"W/\")) return false;\n return headers.get(\"last-modified\") === value;\n}\nfunction resolve(match, size) {\n var start;\n var end;\n if (!match[1]) {\n start = Math.max(0, size - Number(match[2]));\n end = size - 1;\n } else {\n start = Number(match[1]);\n end = match[2] ? Math.min(Number(match[2]), size - 1) : size - 1;\n }\n if (start >= size || start > end) return;\n return {\n start,\n end\n };\n}\nasync function readRange(body, match, known) {\n var _resolve;\n var span = known === void 0 ? void 0 : (_resolve = resolve(match, known)) !== null && _resolve !== void 0 ? _resolve : {\n start: known,\n end: -1\n };\n var suffix = !span && !match[1] ? Number(match[2]) : 0;\n var from = span ? span.start : match[1] ? Number(match[1]) : 0;\n var to = span ? span.end : match[2] && match[1] ? Number(match[2]) : Number.POSITIVE_INFINITY;\n var chunks = [];\n var keptBytes = 0;\n var size = 0;\n var reader = body.getReader();\n while (known === void 0 || size <= to) {\n var { done, value } = await reader.read();\n if (done) break;\n var chunkStart = size;\n size += value.byteLength;\n if (suffix) {\n chunks.push(value);\n keptBytes += value.byteLength;\n while (chunks.length > 1 && keptBytes - chunks[0].byteLength >= suffix) {\n keptBytes -= chunks.shift().byteLength;\n }\n continue;\n }\n var lo = Math.max(from, chunkStart);\n var hi = Math.min(to + 1, size);\n if (hi > lo) {\n chunks.push(value.subarray(lo - chunkStart, hi - chunkStart));\n keptBytes += hi - lo;\n }\n }\n if (known !== void 0) {\n await reader.cancel();\n size = known;\n }\n var kept = new Uint8Array(keptBytes);\n var at = 0;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = chunks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var chunk = _step.value;\n kept.set(chunk, at);\n at += chunk.byteLength;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return {\n size,\n kept,\n keptStart: suffix ? size - keptBytes : from\n };\n}\nexport {\n withRange\n};\n//# sourceMappingURL=assetRange.js.map\n"],"mappings":"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"}
|
|
@@ -305,9 +305,9 @@ namespace margelo::nitro::one { struct LocationPlace; }
|
|
|
305
305
|
// Forward declaration of `LocationPosition` to properly resolve imports.
|
|
306
306
|
namespace margelo::nitro::one { struct LocationPosition; }
|
|
307
307
|
// Forward declaration of `LocationRegion` to properly resolve imports.
|
|
308
|
+
namespace margelo::nitro::one { struct LocationRegion; }
|
|
308
309
|
// Forward declaration of `MailComposeResult` to properly resolve imports.
|
|
309
310
|
namespace margelo::nitro::one { enum class MailComposeResult; }
|
|
310
|
-
namespace margelo::nitro::one { struct LocationRegion; }
|
|
311
311
|
// Forward declaration of `MapCoordinate` to properly resolve imports.
|
|
312
312
|
namespace margelo::nitro::one { struct MapCoordinate; }
|
|
313
313
|
// Forward declaration of `MapPlace` to properly resolve imports.
|
|
@@ -1736,15 +1736,6 @@ namespace margelo::nitro::one::bridge::swift {
|
|
|
1736
1736
|
inline Result_std__shared_ptr_Promise_AudioRecordingResult___ create_Result_std__shared_ptr_Promise_AudioRecordingResult___(const std::exception_ptr& error) noexcept {
|
|
1737
1737
|
return Result<std::shared_ptr<Promise<AudioRecordingResult>>>::withError(error);
|
|
1738
1738
|
}
|
|
1739
|
-
|
|
1740
|
-
// pragma MARK: Result<std::string>
|
|
1741
|
-
using Result_std__string_ = Result<std::string>;
|
|
1742
|
-
inline Result_std__string_ create_Result_std__string_(const std::string& value) noexcept {
|
|
1743
|
-
return Result<std::string>::withValue(value);
|
|
1744
|
-
}
|
|
1745
|
-
inline Result_std__string_ create_Result_std__string_(const std::exception_ptr& error) noexcept {
|
|
1746
|
-
return Result<std::string>::withError(error);
|
|
1747
|
-
}
|
|
1748
1739
|
|
|
1749
1740
|
// pragma MARK: Result<std::string>
|
|
1750
1741
|
using Result_std__string_ = Result<std::string>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "one",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.5",
|
|
4
4
|
"description": "One is a React framework for web, iOS, and Android apps.",
|
|
5
5
|
"license": "BSD-3-Clause",
|
|
6
6
|
"sideEffects": [
|
|
@@ -236,18 +236,18 @@
|
|
|
236
236
|
"@react-navigation/native-stack": "8.0.0-alpha.58",
|
|
237
237
|
"@react-navigation/routers": "8.0.0-alpha.20",
|
|
238
238
|
"@ungap/structured-clone": "^1.2.0",
|
|
239
|
-
"@vxrn/color-scheme": "2.6.
|
|
240
|
-
"@vxrn/compiler": "2.6.
|
|
241
|
-
"@vxrn/resolve": "2.6.
|
|
242
|
-
"@vxrn/tslib-lite": "2.6.
|
|
243
|
-
"@vxrn/use-isomorphic-layout-effect": "2.6.
|
|
244
|
-
"@vxrn/utils": "2.6.
|
|
245
|
-
"@vxrn/vite-plugin-metro": "2.6.
|
|
239
|
+
"@vxrn/color-scheme": "2.6.5",
|
|
240
|
+
"@vxrn/compiler": "2.6.5",
|
|
241
|
+
"@vxrn/resolve": "2.6.5",
|
|
242
|
+
"@vxrn/tslib-lite": "2.6.5",
|
|
243
|
+
"@vxrn/use-isomorphic-layout-effect": "2.6.5",
|
|
244
|
+
"@vxrn/utils": "2.6.5",
|
|
245
|
+
"@vxrn/vite-plugin-metro": "2.6.5",
|
|
246
246
|
"babel-dead-code-elimination": "1.0.10",
|
|
247
247
|
"babel-plugin-module-resolver": "^5.0.2",
|
|
248
248
|
"citty": "^0.1.6",
|
|
249
249
|
"core-js": "^3.38.1",
|
|
250
|
-
"create-vxrn": "2.6.
|
|
250
|
+
"create-vxrn": "2.6.5",
|
|
251
251
|
"escape-string-regexp": "^5.0.0",
|
|
252
252
|
"fast-deep-equal": "^3.1.3",
|
|
253
253
|
"fast-glob": "^3.3.3",
|
|
@@ -269,7 +269,7 @@
|
|
|
269
269
|
"tsconfig-paths": "^4",
|
|
270
270
|
"use-latest-callback": "^0.2.3",
|
|
271
271
|
"vite": "^8.2.2",
|
|
272
|
-
"vxrn": "2.6.
|
|
272
|
+
"vxrn": "2.6.5",
|
|
273
273
|
"web-streams-polyfill": "^4.3.0",
|
|
274
274
|
"ws": "^8.21.0",
|
|
275
275
|
"xxhashjs": "^0.2.2"
|
|
@@ -337,7 +337,7 @@
|
|
|
337
337
|
"@types/react-dom": "^19.2.2",
|
|
338
338
|
"@types/react-test-renderer": "^19.1.0",
|
|
339
339
|
"@types/xxhashjs": "^0.2.4",
|
|
340
|
-
"@vxrn/emitter": "2.6.
|
|
340
|
+
"@vxrn/emitter": "2.6.5",
|
|
341
341
|
"depcheck": "^1.4.7",
|
|
342
342
|
"esbuild": "^0.25.12",
|
|
343
343
|
"immer": "^10.1.1",
|
|
@@ -513,7 +513,7 @@
|
|
|
513
513
|
}
|
|
514
514
|
}
|
|
515
515
|
},
|
|
516
|
-
"releaseSourceCommit": "
|
|
516
|
+
"releaseSourceCommit": "97c5295fca304e7fc443ed228f087c51dc63bc69",
|
|
517
517
|
"repository": {
|
|
518
518
|
"type": "git",
|
|
519
519
|
"url": "git+https://github.com/onejs/one.git",
|