vxrn 2.13.7 → 2.13.9

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.
Files changed (119) hide show
  1. package/dist/cli.mjs +3 -2
  2. package/dist/cli.mjs.map +1 -1
  3. package/dist/cli.native.js +5 -2
  4. package/dist/cli.native.js.map +1 -1
  5. package/dist/config/getBaseViteConfigOnly.mjs +3 -3
  6. package/dist/config/getBaseViteConfigOnly.mjs.map +1 -1
  7. package/dist/config/getBaseViteConfigOnly.native.js +3 -3
  8. package/dist/config/getBaseViteConfigOnly.native.js.map +1 -1
  9. package/dist/config/getOptionsFilled.mjs +24 -2
  10. package/dist/config/getOptionsFilled.mjs.map +1 -1
  11. package/dist/config/getOptionsFilled.native.js +25 -2
  12. package/dist/config/getOptionsFilled.native.js.map +1 -1
  13. package/dist/config/getServerOptionsFilled.mjs +119 -1
  14. package/dist/config/getServerOptionsFilled.mjs.map +1 -1
  15. package/dist/config/getServerOptionsFilled.native.js +137 -1
  16. package/dist/config/getServerOptionsFilled.native.js.map +1 -1
  17. package/dist/exports/build.mjs +6 -9
  18. package/dist/exports/build.mjs.map +1 -1
  19. package/dist/exports/build.native.js +6 -9
  20. package/dist/exports/build.native.js.map +1 -1
  21. package/dist/exports/dev.mjs +4 -6
  22. package/dist/exports/dev.mjs.map +1 -1
  23. package/dist/exports/dev.native.js +6 -6
  24. package/dist/exports/dev.native.js.map +1 -1
  25. package/dist/exports/prebuild.mjs +4 -4
  26. package/dist/exports/prebuild.mjs.map +1 -1
  27. package/dist/exports/prebuild.native.js +4 -4
  28. package/dist/exports/prebuild.native.js.map +1 -1
  29. package/dist/exports/prebuildWithoutExpo.mjs +95 -88
  30. package/dist/exports/prebuildWithoutExpo.mjs.map +1 -1
  31. package/dist/exports/prebuildWithoutExpo.native.js +95 -88
  32. package/dist/exports/prebuildWithoutExpo.native.js.map +1 -1
  33. package/dist/plugins/autoDepOptimizePlugin.mjs +3 -3
  34. package/dist/plugins/autoDepOptimizePlugin.mjs.map +1 -1
  35. package/dist/plugins/autoDepOptimizePlugin.native.js +3 -3
  36. package/dist/plugins/autoDepOptimizePlugin.native.js.map +1 -1
  37. package/dist/plugins/reactNativeDevAssetPlugin.mjs +4 -4
  38. package/dist/plugins/reactNativeDevAssetPlugin.mjs.map +1 -1
  39. package/dist/plugins/reactNativeDevAssetPlugin.native.js +4 -4
  40. package/dist/plugins/reactNativeDevAssetPlugin.native.js.map +1 -1
  41. package/dist/rn-commands/bundle/buildBundle.mjs +18 -5
  42. package/dist/rn-commands/bundle/buildBundle.mjs.map +1 -1
  43. package/dist/rn-commands/bundle/buildBundle.native.js +18 -5
  44. package/dist/rn-commands/bundle/buildBundle.native.js.map +1 -1
  45. package/dist/user-interface/index.mjs +1 -1
  46. package/dist/user-interface/index.mjs.map +1 -1
  47. package/dist/user-interface/index.native.js +1 -1
  48. package/dist/user-interface/index.native.js.map +1 -1
  49. package/dist/utils/env-editor.mjs +198 -0
  50. package/dist/utils/env-editor.mjs.map +1 -0
  51. package/dist/utils/env-editor.native.js +266 -0
  52. package/dist/utils/env-editor.native.js.map +1 -0
  53. package/dist/utils/fs.mjs +48 -0
  54. package/dist/utils/fs.mjs.map +1 -0
  55. package/dist/utils/fs.native.js +48 -0
  56. package/dist/utils/fs.native.js.map +1 -0
  57. package/dist/utils/getVitePath.mjs +2 -2
  58. package/dist/utils/getVitePath.mjs.map +1 -1
  59. package/dist/utils/getVitePath.native.js +2 -2
  60. package/dist/utils/getVitePath.native.js.map +1 -1
  61. package/dist/utils/patches.mjs +38 -29
  62. package/dist/utils/patches.mjs.map +1 -1
  63. package/dist/utils/patches.native.js +38 -29
  64. package/dist/utils/patches.native.js.map +1 -1
  65. package/dist/utils/scanDepsToOptimize.mjs +12 -11
  66. package/dist/utils/scanDepsToOptimize.mjs.map +1 -1
  67. package/dist/utils/scanDepsToOptimize.native.js +12 -11
  68. package/dist/utils/scanDepsToOptimize.native.js.map +1 -1
  69. package/dist/utils/state.mjs +5 -5
  70. package/dist/utils/state.mjs.map +1 -1
  71. package/dist/utils/state.native.js +5 -5
  72. package/dist/utils/state.native.js.map +1 -1
  73. package/dist/utils/utils.mjs +4 -3
  74. package/dist/utils/utils.mjs.map +1 -1
  75. package/dist/utils/utils.native.js +4 -3
  76. package/dist/utils/utils.native.js.map +1 -1
  77. package/package.json +12 -18
  78. package/src/cli.ts +5 -4
  79. package/src/config/getBaseViteConfigOnly.ts +3 -3
  80. package/src/config/getOptionsFilled.ts +35 -2
  81. package/src/config/getServerOptionsFilled.test.ts +37 -0
  82. package/src/config/getServerOptionsFilled.ts +57 -1
  83. package/src/exports/build.ts +5 -12
  84. package/src/exports/clean.test.ts +1 -1
  85. package/src/exports/dev.ts +5 -6
  86. package/src/exports/prebuild.ts +4 -4
  87. package/src/exports/prebuildWithoutExpo.ts +102 -89
  88. package/src/plugins/autoDepOptimizePlugin.ts +3 -3
  89. package/src/plugins/reactNativeDevAssetPlugin.ts +4 -4
  90. package/src/rn-commands/bundle/buildBundle.ts +15 -5
  91. package/src/user-interface/index.ts +1 -1
  92. package/src/utils/env-editor.LICENSE +9 -0
  93. package/src/utils/env-editor.ts +214 -0
  94. package/src/utils/fs.ts +59 -0
  95. package/src/utils/getVitePath.ts +2 -2
  96. package/src/utils/patches.test.ts +36 -36
  97. package/src/utils/patches.ts +39 -27
  98. package/src/utils/scanDepsToOptimize.test.ts +2 -2
  99. package/src/utils/scanDepsToOptimize.ts +6 -5
  100. package/src/utils/state.ts +5 -7
  101. package/src/utils/utils.ts +5 -5
  102. package/types/config/getOptionsFilled.d.ts +9 -2
  103. package/types/config/getOptionsFilled.d.ts.map +1 -1
  104. package/types/config/getServerOptionsFilled.d.ts.map +1 -1
  105. package/types/exports/build.d.ts +1 -1
  106. package/types/exports/build.d.ts.map +1 -1
  107. package/types/exports/dev.d.ts.map +1 -1
  108. package/types/exports/prebuildWithoutExpo.d.ts.map +1 -1
  109. package/types/rn-commands/bundle/buildBundle.d.ts.map +1 -1
  110. package/types/user-interface/index.d.ts.map +1 -1
  111. package/types/utils/env-editor.d.ts +9 -0
  112. package/types/utils/env-editor.d.ts.map +1 -0
  113. package/types/utils/fs.d.ts +9 -0
  114. package/types/utils/fs.d.ts.map +1 -0
  115. package/types/utils/patches.d.ts.map +1 -1
  116. package/types/utils/scanDepsToOptimize.d.ts.map +1 -1
  117. package/types/utils/state.d.ts.map +1 -1
  118. package/types/utils/utils.d.ts +2 -2
  119. package/types/utils/utils.d.ts.map +1 -1
package/dist/cli.mjs CHANGED
@@ -9,8 +9,9 @@ function lastValue(arg) {
9
9
  }
10
10
  return arg;
11
11
  }
12
- if (typeof import.meta.dirname !== "string") {
13
- console.error(`One uses "import.meta.dirname", for Node this is version 20.11.0 or greater`);
12
+ const [nodeMajor, nodeMinor] = process.versions.node.split(".").map((part) => Number(part));
13
+ if (!(nodeMajor === 20 && nodeMinor >= 19 || nodeMajor === 22 && nodeMinor >= 12 || nodeMajor > 22)) {
14
+ console.error("One requires Node ^20.19.0 || >=22.12.0");
14
15
  process.exit(1);
15
16
  }
16
17
  const dev = defineCommand({
package/dist/cli.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","names":[],"sources":["cli.js"],"sourcesContent":["import { defineCommand, runMain } from \"citty\";\nasync function importCLIEndpoint(path) {\n return await import(path);\n}\nfunction lastValue(arg) {\n if (Array.isArray(arg)) {\n return arg[arg.length - 1];\n }\n return arg;\n}\nif (typeof import.meta.dirname !== \"string\") {\n console.error(\n `One uses \"import.meta.dirname\", for Node this is version 20.11.0 or greater`\n );\n process.exit(1);\n}\nconst dev = defineCommand({\n meta: {\n name: \"dev\",\n version: \"0.0.0\",\n description: \"Start the dev server\"\n },\n args: {\n clean: {\n type: \"boolean\"\n },\n host: {\n type: \"string\"\n },\n port: {\n type: \"string\"\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. Can pass path or empty path for a random directory.`\n }\n },\n async run({ args }) {\n const { dev: dev2 } = await importCLIEndpoint(\"./exports/dev.mjs\");\n const port = lastValue(args.port);\n const host = lastValue(args.host);\n const { start, stop } = await dev2({\n clean: args.clean,\n root: process.cwd(),\n debugBundle: lastValue(args[\"debug-bundle\"]) || \"\",\n server: {\n host,\n port: port ? +port : void 0\n }\n });\n const { closePromise } = await start();\n process.on(\"beforeExit\", () => {\n stop();\n });\n process.on(\"SIGINT\", () => {\n try {\n stop();\n } finally {\n process.exit(2);\n }\n });\n process.on(\"uncaughtException\", (err) => {\n console.error(err?.message || err);\n });\n await closePromise;\n }\n});\nconst build = defineCommand({\n meta: {\n name: \"build\",\n version: \"0.0.0\",\n description: \"Build your app\"\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 analyze: {\n type: \"boolean\",\n required: false\n },\n platform: {\n type: \"string\",\n description: `One of: web, ios, android`,\n default: \"web\",\n required: false\n }\n },\n async run({ args }) {\n const { build: build2 } = await importCLIEndpoint(\"./exports/build.mjs\");\n process.on(\"uncaughtException\", (err) => {\n console.error(err?.message || err);\n });\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 const results = await build2(\n {},\n {\n analyze: args.analyze,\n only: args.only,\n step: args.step,\n platform\n }\n );\n if (process.env.DEBUG) {\n console.info(\"results\", results);\n }\n }\n});\nconst serve = defineCommand({\n meta: {\n name: \"serve\",\n version: \"0.0.0\",\n description: \"Serve a built app for production\"\n },\n args: {\n host: {\n type: \"string\"\n },\n port: {\n type: \"string\"\n }\n },\n async run({ args }) {\n const { serve: serve2 } = await importCLIEndpoint(\"./exports/serve.mjs\");\n process.on(\"uncaughtException\", (err) => {\n console.error(err?.message || err);\n });\n const port = lastValue(args.port);\n const host = lastValue(args.host);\n const results = await serve2({\n port: port ? +port : void 0,\n host\n });\n if (process.env.DEBUG) {\n console.info(\"results\", results);\n }\n }\n});\nconst prebuild = defineCommand({\n meta: {\n name: \"prebuild\",\n version: \"0.0.0\",\n description: \"Prebuild native project\"\n },\n args: {\n platform: {\n type: \"string\",\n description: \"ios or android\"\n },\n \"app-name\": {\n type: \"string\",\n description: \"native target and AppRegistry key\"\n },\n \"display-name\": {\n type: \"string\",\n description: \"user-visible app name\"\n },\n \"bundle-id\": {\n type: \"string\",\n description: \"ios bundle id (reverse-dns)\"\n },\n \"application-id\": {\n type: \"string\",\n description: \"android application id (reverse-dns)\"\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 { prebuild: prebuild2 } = await importCLIEndpoint(\n \"./exports/prebuild.mjs\"\n );\n const root = process.cwd();\n const { platform } = args;\n await prebuild2({\n root,\n platform,\n \"no-install\": args[\"no-install\"],\n app: {\n name: args[\"app-name\"],\n displayName: args[\"display-name\"],\n ios: args[\"bundle-id\"] ? { bundleId: args[\"bundle-id\"] } : void 0,\n android: args[\"application-id\"] ? { applicationId: args[\"application-id\"] } : void 0\n }\n });\n }\n});\nconst runIos = defineCommand({\n meta: {\n name: \"run:ios\",\n version: \"0.0.0\"\n },\n args: {},\n async run() {\n const { runIos: runIos2 } = await importCLIEndpoint(\"./exports/runIos.mjs\");\n const root = process.cwd();\n await runIos2({ root });\n }\n});\nconst runAndroid = defineCommand({\n meta: {\n name: \"run:android\",\n version: \"0.0.0\"\n },\n args: {},\n async run() {\n const { runAndroid: runAndroid2 } = await importCLIEndpoint(\n \"./exports/runAndroid.mjs\"\n );\n const root = process.cwd();\n await runAndroid2({ root });\n }\n});\nconst patch = defineCommand({\n meta: {\n name: \"patch\",\n version: \"0.0.0\",\n description: \"Apply package patches\"\n },\n args: {},\n async run() {\n const { patch: vxrnPatch } = await importCLIEndpoint(\"./exports/patch.mjs\");\n await vxrnPatch({\n root: process.cwd()\n });\n }\n});\nconst clean = defineCommand({\n meta: {\n name: \"clean\",\n version: \"0.0.0\",\n description: \"Clean build folders\"\n },\n args: {},\n async run() {\n const { clean: vxrnClean } = await importCLIEndpoint(\"./exports/clean.mjs\");\n await vxrnClean({\n root: process.cwd()\n });\n }\n});\nconst main = defineCommand({\n meta: {\n name: \"main\",\n version: \"0.0.0\",\n description: \"Welcome to vxrn\"\n },\n subCommands: {\n dev,\n build,\n serve,\n prebuild,\n runIos,\n runAndroid,\n clean,\n patch\n }\n});\nrunMain(main);\n//# sourceMappingURL=cli.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","names":[],"sources":["cli.js"],"sourcesContent":["import { defineCommand, runMain } from \"citty\";\nasync function importCLIEndpoint(path) {\n return await import(path);\n}\nfunction lastValue(arg) {\n if (Array.isArray(arg)) {\n return arg[arg.length - 1];\n }\n return arg;\n}\nconst [nodeMajor, nodeMinor] = process.versions.node.split(\".\").map((part) => Number(part));\nif (!(nodeMajor === 20 && nodeMinor >= 19 || nodeMajor === 22 && nodeMinor >= 12 || nodeMajor > 22)) {\n console.error(\"One requires Node ^20.19.0 || >=22.12.0\");\n process.exit(1);\n}\nconst dev = defineCommand({\n meta: {\n name: \"dev\",\n version: \"0.0.0\",\n description: \"Start the dev server\"\n },\n args: {\n clean: {\n type: \"boolean\"\n },\n host: {\n type: \"string\"\n },\n port: {\n type: \"string\"\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. Can pass path or empty path for a random directory.`\n }\n },\n async run({ args }) {\n const { dev: dev2 } = await importCLIEndpoint(\"./exports/dev.mjs\");\n const port = lastValue(args.port);\n const host = lastValue(args.host);\n const { start, stop } = await dev2({\n clean: args.clean,\n root: process.cwd(),\n debugBundle: lastValue(args[\"debug-bundle\"]) || \"\",\n server: {\n host,\n port: port ? +port : void 0\n }\n });\n const { closePromise } = await start();\n process.on(\"beforeExit\", () => {\n stop();\n });\n process.on(\"SIGINT\", () => {\n try {\n stop();\n } finally {\n process.exit(2);\n }\n });\n process.on(\"uncaughtException\", (err) => {\n console.error(err?.message || err);\n });\n await closePromise;\n }\n});\nconst build = defineCommand({\n meta: {\n name: \"build\",\n version: \"0.0.0\",\n description: \"Build your app\"\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 analyze: {\n type: \"boolean\",\n required: false\n },\n platform: {\n type: \"string\",\n description: `One of: web, ios, android`,\n default: \"web\",\n required: false\n }\n },\n async run({ args }) {\n const { build: build2 } = await importCLIEndpoint(\"./exports/build.mjs\");\n process.on(\"uncaughtException\", (err) => {\n console.error(err?.message || err);\n });\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 const results = await build2(\n {},\n {\n analyze: args.analyze,\n only: args.only,\n step: args.step,\n platform\n }\n );\n if (process.env.DEBUG) {\n console.info(\"results\", results);\n }\n }\n});\nconst serve = defineCommand({\n meta: {\n name: \"serve\",\n version: \"0.0.0\",\n description: \"Serve a built app for production\"\n },\n args: {\n host: {\n type: \"string\"\n },\n port: {\n type: \"string\"\n }\n },\n async run({ args }) {\n const { serve: serve2 } = await importCLIEndpoint(\"./exports/serve.mjs\");\n process.on(\"uncaughtException\", (err) => {\n console.error(err?.message || err);\n });\n const port = lastValue(args.port);\n const host = lastValue(args.host);\n const results = await serve2({\n port: port ? +port : void 0,\n host\n });\n if (process.env.DEBUG) {\n console.info(\"results\", results);\n }\n }\n});\nconst prebuild = defineCommand({\n meta: {\n name: \"prebuild\",\n version: \"0.0.0\",\n description: \"Prebuild native project\"\n },\n args: {\n platform: {\n type: \"string\",\n description: \"ios or android\"\n },\n \"app-name\": {\n type: \"string\",\n description: \"native target and AppRegistry key\"\n },\n \"display-name\": {\n type: \"string\",\n description: \"user-visible app name\"\n },\n \"bundle-id\": {\n type: \"string\",\n description: \"ios bundle id (reverse-dns)\"\n },\n \"application-id\": {\n type: \"string\",\n description: \"android application id (reverse-dns)\"\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 { prebuild: prebuild2 } = await importCLIEndpoint(\n \"./exports/prebuild.mjs\"\n );\n const root = process.cwd();\n const { platform } = args;\n await prebuild2({\n root,\n platform,\n \"no-install\": args[\"no-install\"],\n app: {\n name: args[\"app-name\"],\n displayName: args[\"display-name\"],\n ios: args[\"bundle-id\"] ? { bundleId: args[\"bundle-id\"] } : void 0,\n android: args[\"application-id\"] ? { applicationId: args[\"application-id\"] } : void 0\n }\n });\n }\n});\nconst runIos = defineCommand({\n meta: {\n name: \"run:ios\",\n version: \"0.0.0\"\n },\n args: {},\n async run() {\n const { runIos: runIos2 } = await importCLIEndpoint(\"./exports/runIos.mjs\");\n const root = process.cwd();\n await runIos2({ root });\n }\n});\nconst runAndroid = defineCommand({\n meta: {\n name: \"run:android\",\n version: \"0.0.0\"\n },\n args: {},\n async run() {\n const { runAndroid: runAndroid2 } = await importCLIEndpoint(\n \"./exports/runAndroid.mjs\"\n );\n const root = process.cwd();\n await runAndroid2({ root });\n }\n});\nconst patch = defineCommand({\n meta: {\n name: \"patch\",\n version: \"0.0.0\",\n description: \"Apply package patches\"\n },\n args: {},\n async run() {\n const { patch: vxrnPatch } = await importCLIEndpoint(\"./exports/patch.mjs\");\n await vxrnPatch({\n root: process.cwd()\n });\n }\n});\nconst clean = defineCommand({\n meta: {\n name: \"clean\",\n version: \"0.0.0\",\n description: \"Clean build folders\"\n },\n args: {},\n async run() {\n const { clean: vxrnClean } = await importCLIEndpoint(\"./exports/clean.mjs\");\n await vxrnClean({\n root: process.cwd()\n });\n }\n});\nconst main = defineCommand({\n meta: {\n name: \"main\",\n version: \"0.0.0\",\n description: \"Welcome to vxrn\"\n },\n subCommands: {\n dev,\n build,\n serve,\n prebuild,\n runIos,\n runAndroid,\n clean,\n patch\n }\n});\nrunMain(main);\n//# sourceMappingURL=cli.js.map\n"],"mappings":"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"}
@@ -9,8 +9,11 @@ function lastValue(arg) {
9
9
  }
10
10
  return arg;
11
11
  }
12
- if (typeof import.meta.dirname !== "string") {
13
- console.error(`One uses "import.meta.dirname", for Node this is version 20.11.0 or greater`);
12
+ var [nodeMajor, nodeMinor] = process.versions.node.split(".").map(function(part) {
13
+ return Number(part);
14
+ });
15
+ if (!(nodeMajor === 20 && nodeMinor >= 19 || nodeMajor === 22 && nodeMinor >= 12 || nodeMajor > 22)) {
16
+ console.error("One requires Node ^20.19.0 || >=22.12.0");
14
17
  process.exit(1);
15
18
  }
16
19
  var dev = defineCommand({
@@ -1 +1 @@
1
- {"version":3,"file":"cli.native.js","names":[],"sources":["cli.native.js"],"sourcesContent":["import { defineCommand, runMain } from \"citty\";\nasync function importCLIEndpoint(path) {\n return await import(path);\n}\nfunction lastValue(arg) {\n if (Array.isArray(arg)) {\n return arg[arg.length - 1];\n }\n return arg;\n}\nif (typeof import.meta.dirname !== \"string\") {\n console.error(`One uses \"import.meta.dirname\", for Node this is version 20.11.0 or greater`);\n process.exit(1);\n}\nvar dev = defineCommand({\n meta: {\n name: \"dev\",\n version: \"0.0.0\",\n description: \"Start the dev server\"\n },\n args: {\n clean: {\n type: \"boolean\"\n },\n host: {\n type: \"string\"\n },\n port: {\n type: \"string\"\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. Can pass path or empty path for a random directory.`\n }\n },\n async run(param) {\n var { args } = param;\n var { dev: dev2 } = await importCLIEndpoint(\"./exports/dev.mjs\");\n var port = lastValue(args.port);\n var host = lastValue(args.host);\n var { start, stop } = await dev2({\n clean: args.clean,\n root: process.cwd(),\n debugBundle: lastValue(args[\"debug-bundle\"]) || \"\",\n server: {\n host,\n port: port ? +port : void 0\n }\n });\n var { closePromise } = await start();\n process.on(\"beforeExit\", function() {\n stop();\n });\n process.on(\"SIGINT\", function() {\n try {\n stop();\n } finally {\n process.exit(2);\n }\n });\n process.on(\"uncaughtException\", function(err) {\n console.error((err === null || err === void 0 ? void 0 : err.message) || err);\n });\n await closePromise;\n }\n});\nvar build = defineCommand({\n meta: {\n name: \"build\",\n version: \"0.0.0\",\n description: \"Build your app\"\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 analyze: {\n type: \"boolean\",\n required: false\n },\n platform: {\n type: \"string\",\n description: `One of: web, ios, android`,\n default: \"web\",\n required: false\n }\n },\n async run(param) {\n var { args } = param;\n var { build: build2 } = await importCLIEndpoint(\"./exports/build.mjs\");\n process.on(\"uncaughtException\", function(err) {\n console.error((err === null || err === void 0 ? void 0 : err.message) || err);\n });\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 var results = await build2({}, {\n analyze: args.analyze,\n only: args.only,\n step: args.step,\n platform\n });\n if (process.env.DEBUG) {\n console.info(\"results\", results);\n }\n }\n});\nvar serve = defineCommand({\n meta: {\n name: \"serve\",\n version: \"0.0.0\",\n description: \"Serve a built app for production\"\n },\n args: {\n host: {\n type: \"string\"\n },\n port: {\n type: \"string\"\n }\n },\n async run(param) {\n var { args } = param;\n var { serve: serve2 } = await importCLIEndpoint(\"./exports/serve.mjs\");\n process.on(\"uncaughtException\", function(err) {\n console.error((err === null || err === void 0 ? void 0 : err.message) || err);\n });\n var port = lastValue(args.port);\n var host = lastValue(args.host);\n var results = await serve2({\n port: port ? +port : void 0,\n host\n });\n if (process.env.DEBUG) {\n console.info(\"results\", results);\n }\n }\n});\nvar prebuild = defineCommand({\n meta: {\n name: \"prebuild\",\n version: \"0.0.0\",\n description: \"Prebuild native project\"\n },\n args: {\n platform: {\n type: \"string\",\n description: \"ios or android\"\n },\n \"app-name\": {\n type: \"string\",\n description: \"native target and AppRegistry key\"\n },\n \"display-name\": {\n type: \"string\",\n description: \"user-visible app name\"\n },\n \"bundle-id\": {\n type: \"string\",\n description: \"ios bundle id (reverse-dns)\"\n },\n \"application-id\": {\n type: \"string\",\n description: \"android application id (reverse-dns)\"\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 { prebuild: prebuild2 } = await importCLIEndpoint(\"./exports/prebuild.mjs\");\n var root = process.cwd();\n var { platform } = args;\n await prebuild2({\n root,\n platform,\n \"no-install\": args[\"no-install\"],\n app: {\n name: args[\"app-name\"],\n displayName: args[\"display-name\"],\n ios: args[\"bundle-id\"] ? {\n bundleId: args[\"bundle-id\"]\n } : void 0,\n android: args[\"application-id\"] ? {\n applicationId: args[\"application-id\"]\n } : void 0\n }\n });\n }\n});\nvar runIos = defineCommand({\n meta: {\n name: \"run:ios\",\n version: \"0.0.0\"\n },\n args: {},\n async run() {\n var { runIos: runIos2 } = await importCLIEndpoint(\"./exports/runIos.mjs\");\n var root = process.cwd();\n await runIos2({\n root\n });\n }\n});\nvar runAndroid = defineCommand({\n meta: {\n name: \"run:android\",\n version: \"0.0.0\"\n },\n args: {},\n async run() {\n var { runAndroid: runAndroid2 } = await importCLIEndpoint(\"./exports/runAndroid.mjs\");\n var root = process.cwd();\n await runAndroid2({\n root\n });\n }\n});\nvar patch = defineCommand({\n meta: {\n name: \"patch\",\n version: \"0.0.0\",\n description: \"Apply package patches\"\n },\n args: {},\n async run() {\n var { patch: vxrnPatch } = await importCLIEndpoint(\"./exports/patch.mjs\");\n await vxrnPatch({\n root: process.cwd()\n });\n }\n});\nvar clean = defineCommand({\n meta: {\n name: \"clean\",\n version: \"0.0.0\",\n description: \"Clean build folders\"\n },\n args: {},\n async run() {\n var { clean: vxrnClean } = await importCLIEndpoint(\"./exports/clean.mjs\");\n await vxrnClean({\n root: process.cwd()\n });\n }\n});\nvar main = defineCommand({\n meta: {\n name: \"main\",\n version: \"0.0.0\",\n description: \"Welcome to vxrn\"\n },\n subCommands: {\n dev,\n build,\n serve,\n prebuild,\n runIos,\n runAndroid,\n clean,\n patch\n }\n});\nrunMain(main);\n//# sourceMappingURL=cli.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"cli.native.js","names":[],"sources":["cli.native.js"],"sourcesContent":["import { defineCommand, runMain } from \"citty\";\nasync function importCLIEndpoint(path) {\n return await import(path);\n}\nfunction lastValue(arg) {\n if (Array.isArray(arg)) {\n return arg[arg.length - 1];\n }\n return arg;\n}\nvar [nodeMajor, nodeMinor] = process.versions.node.split(\".\").map(function(part) {\n return Number(part);\n});\nif (!(nodeMajor === 20 && nodeMinor >= 19 || nodeMajor === 22 && nodeMinor >= 12 || nodeMajor > 22)) {\n console.error(\"One requires Node ^20.19.0 || >=22.12.0\");\n process.exit(1);\n}\nvar dev = defineCommand({\n meta: {\n name: \"dev\",\n version: \"0.0.0\",\n description: \"Start the dev server\"\n },\n args: {\n clean: {\n type: \"boolean\"\n },\n host: {\n type: \"string\"\n },\n port: {\n type: \"string\"\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. Can pass path or empty path for a random directory.`\n }\n },\n async run(param) {\n var { args } = param;\n var { dev: dev2 } = await importCLIEndpoint(\"./exports/dev.mjs\");\n var port = lastValue(args.port);\n var host = lastValue(args.host);\n var { start, stop } = await dev2({\n clean: args.clean,\n root: process.cwd(),\n debugBundle: lastValue(args[\"debug-bundle\"]) || \"\",\n server: {\n host,\n port: port ? +port : void 0\n }\n });\n var { closePromise } = await start();\n process.on(\"beforeExit\", function() {\n stop();\n });\n process.on(\"SIGINT\", function() {\n try {\n stop();\n } finally {\n process.exit(2);\n }\n });\n process.on(\"uncaughtException\", function(err) {\n console.error((err === null || err === void 0 ? void 0 : err.message) || err);\n });\n await closePromise;\n }\n});\nvar build = defineCommand({\n meta: {\n name: \"build\",\n version: \"0.0.0\",\n description: \"Build your app\"\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 analyze: {\n type: \"boolean\",\n required: false\n },\n platform: {\n type: \"string\",\n description: `One of: web, ios, android`,\n default: \"web\",\n required: false\n }\n },\n async run(param) {\n var { args } = param;\n var { build: build2 } = await importCLIEndpoint(\"./exports/build.mjs\");\n process.on(\"uncaughtException\", function(err) {\n console.error((err === null || err === void 0 ? void 0 : err.message) || err);\n });\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 var results = await build2({}, {\n analyze: args.analyze,\n only: args.only,\n step: args.step,\n platform\n });\n if (process.env.DEBUG) {\n console.info(\"results\", results);\n }\n }\n});\nvar serve = defineCommand({\n meta: {\n name: \"serve\",\n version: \"0.0.0\",\n description: \"Serve a built app for production\"\n },\n args: {\n host: {\n type: \"string\"\n },\n port: {\n type: \"string\"\n }\n },\n async run(param) {\n var { args } = param;\n var { serve: serve2 } = await importCLIEndpoint(\"./exports/serve.mjs\");\n process.on(\"uncaughtException\", function(err) {\n console.error((err === null || err === void 0 ? void 0 : err.message) || err);\n });\n var port = lastValue(args.port);\n var host = lastValue(args.host);\n var results = await serve2({\n port: port ? +port : void 0,\n host\n });\n if (process.env.DEBUG) {\n console.info(\"results\", results);\n }\n }\n});\nvar prebuild = defineCommand({\n meta: {\n name: \"prebuild\",\n version: \"0.0.0\",\n description: \"Prebuild native project\"\n },\n args: {\n platform: {\n type: \"string\",\n description: \"ios or android\"\n },\n \"app-name\": {\n type: \"string\",\n description: \"native target and AppRegistry key\"\n },\n \"display-name\": {\n type: \"string\",\n description: \"user-visible app name\"\n },\n \"bundle-id\": {\n type: \"string\",\n description: \"ios bundle id (reverse-dns)\"\n },\n \"application-id\": {\n type: \"string\",\n description: \"android application id (reverse-dns)\"\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 { prebuild: prebuild2 } = await importCLIEndpoint(\"./exports/prebuild.mjs\");\n var root = process.cwd();\n var { platform } = args;\n await prebuild2({\n root,\n platform,\n \"no-install\": args[\"no-install\"],\n app: {\n name: args[\"app-name\"],\n displayName: args[\"display-name\"],\n ios: args[\"bundle-id\"] ? {\n bundleId: args[\"bundle-id\"]\n } : void 0,\n android: args[\"application-id\"] ? {\n applicationId: args[\"application-id\"]\n } : void 0\n }\n });\n }\n});\nvar runIos = defineCommand({\n meta: {\n name: \"run:ios\",\n version: \"0.0.0\"\n },\n args: {},\n async run() {\n var { runIos: runIos2 } = await importCLIEndpoint(\"./exports/runIos.mjs\");\n var root = process.cwd();\n await runIos2({\n root\n });\n }\n});\nvar runAndroid = defineCommand({\n meta: {\n name: \"run:android\",\n version: \"0.0.0\"\n },\n args: {},\n async run() {\n var { runAndroid: runAndroid2 } = await importCLIEndpoint(\"./exports/runAndroid.mjs\");\n var root = process.cwd();\n await runAndroid2({\n root\n });\n }\n});\nvar patch = defineCommand({\n meta: {\n name: \"patch\",\n version: \"0.0.0\",\n description: \"Apply package patches\"\n },\n args: {},\n async run() {\n var { patch: vxrnPatch } = await importCLIEndpoint(\"./exports/patch.mjs\");\n await vxrnPatch({\n root: process.cwd()\n });\n }\n});\nvar clean = defineCommand({\n meta: {\n name: \"clean\",\n version: \"0.0.0\",\n description: \"Clean build folders\"\n },\n args: {},\n async run() {\n var { clean: vxrnClean } = await importCLIEndpoint(\"./exports/clean.mjs\");\n await vxrnClean({\n root: process.cwd()\n });\n }\n});\nvar main = defineCommand({\n meta: {\n name: \"main\",\n version: \"0.0.0\",\n description: \"Welcome to vxrn\"\n },\n subCommands: {\n dev,\n build,\n serve,\n prebuild,\n runIos,\n runAndroid,\n clean,\n patch\n }\n});\nrunMain(main);\n//# sourceMappingURL=cli.js.map\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { resolvePath } from "@vxrn/resolve";
2
- import FSExtra from "fs-extra";
3
2
  import { join } from "node:path";
3
+ import { pathExists, readJSON } from "../utils/fs.mjs";
4
4
 
5
5
  const dedupe = [
6
6
  "one",
@@ -30,12 +30,12 @@ async function getBaseViteConfig(config) {
30
30
  join(root, "postcss.config.json")
31
31
  ];
32
32
  const postCSSConfigPath = (await Promise.all(postCSSPaths.map(async (x) => {
33
- if (await FSExtra.pathExists(x)) {
33
+ if (await pathExists(x)) {
34
34
  return x;
35
35
  }
36
36
  }))).find((x) => typeof x === "string");
37
37
  const reactNativePackageJsonPath = resolvePath("react-native/package.json", root);
38
- const { version } = await FSExtra.readJSON(reactNativePackageJsonPath);
38
+ const { version } = await readJSON(reactNativePackageJsonPath);
39
39
  return {
40
40
  mode,
41
41
  assetsInclude: ["**/*.glb"],
@@ -1 +1 @@
1
- {"version":3,"file":"getBaseViteConfigOnly.js","names":[],"sources":["config/getBaseViteConfigOnly.js"],"sourcesContent":["import { resolvePath } from \"@vxrn/resolve\";\nimport FSExtra from \"fs-extra\";\nimport { join } from \"node:path\";\nconst dedupe = [\n \"one\",\n \"react\",\n \"react-dom\",\n \"react-dom/client\",\n \"react-native-web\",\n \"react-native-web-lite\",\n \"@react-navigation/core\",\n \"@react-navigation/native\",\n \"@react-navigation/elements\",\n \"@react-navigation/native-stack\",\n \"@react-navigation/bottom-tabs\",\n \"@tamagui/core\",\n \"@tamagui/web\",\n \"@tamagui/adapt\",\n \"@tamagui/react-native-web\",\n \"@tamagui/react-native-web-lite\",\n \"tamagui\",\n \"react-native-reanimated\"\n];\nasync function getBaseViteConfig(config) {\n const { root, mode } = config;\n const postCSSPaths = [\n join(root, \"postcss.config.js\"),\n join(root, \"postcss.config.ts\"),\n join(root, \"postcss.config.json\")\n ];\n const postCSSConfigPath = (await Promise.all(\n postCSSPaths.map(async (x) => {\n if (await FSExtra.pathExists(x)) {\n return x;\n }\n })\n )).find((x) => typeof x === \"string\");\n const reactNativePackageJsonPath = resolvePath(\"react-native/package.json\", root);\n const { version } = await FSExtra.readJSON(reactNativePackageJsonPath);\n return {\n mode,\n assetsInclude: [\"**/*.glb\"],\n // we load the config ourselves\n // if you disable this is disables auto-reloading config changes\n // configFile: false,\n // TODO make this documented / configurable through the plugins\n css: postCSSConfigPath ? {\n postcss: postCSSConfigPath\n } : {\n transformer: \"lightningcss\",\n lightningcss: {\n targets: {\n safari: 15 << 16 | 2 << 8\n }\n }\n },\n define: {\n __DEV__: `${mode === \"development\"}`,\n \"process.env.NODE_ENV\": `\"${mode}\"`,\n \"process.env.REACT_NATIVE_VERSION\": `\"${version}\"`\n },\n resolve: {\n alias: [\n // deep react-native/Libraries/* paths must be caught BEFORE the general\n // react-native → react-native-web alias, since react-native-web doesn't\n // have these native-only subpaths\n {\n find: /^react-native\\/Libraries\\/.*/,\n replacement: resolvePath(\"@vxrn/utils/empty\", import.meta.dirname)\n },\n {\n // react native 0.87 removed @react-native/assets-registry, but libraries\n // like react-native-svg still import its registry\n find: /^(react-native\\/asset-registry|@react-native\\/assets-registry\\/registry)$/,\n replacement: \"react-native-web/dist/modules/AssetRegistry\"\n },\n {\n find: \"react-native/package.json\",\n replacement: \"react-native-web/package.json\"\n },\n // named by package so it resolves (from the root, through dedupe) only\n // once something imports react-native: an app with no react-native\n // imports needs no react-native-web.\n {\n find: \"react-native\",\n replacement: \"react-native-web\"\n },\n // react-native-gesture-handler 3 probes reanimated's source with a\n // guarded require; the optimizer leaves the .tsx external, so it must\n // map to the built web files or the whole client fails to load\n {\n find: /^react-native-reanimated\\/src\\//,\n replacement: \"react-native-reanimated/lib/module/\"\n },\n // bundle size optimizations\n {\n find: \"query-string\",\n replacement: resolvePath(\"@vxrn/query-string\", root)\n },\n {\n find: \"url-parse\",\n replacement: resolvePath(\"@vxrn/url-parse\", root)\n }\n ],\n // TODO auto dedupe all include optimize deps?\n dedupe\n },\n build: {},\n // enable OXC React Refresh so component registration ($RefreshReg$) is\n // injected into TSX/JSX output; the one:react-refresh-web compiler plugin\n // then wraps the output with the runtime preamble and import.meta.hot.accept\n // only enable in dev mode - in production the refresh plugin doesn't run,\n // leaving $RefreshReg$ undefined which crashes client-side JS\n oxc: {\n jsx: {\n refresh: mode === \"development\"\n }\n }\n };\n}\nexport {\n dedupe,\n getBaseViteConfig\n};\n//# sourceMappingURL=getBaseViteConfigOnly.js.map\n"],"mappings":";;;;;AAGA,MAAM,SAAS;CACb;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AACA,eAAe,kBAAkB,QAAQ;CACvC,MAAM,EAAE,MAAM,SAAS;CACvB,MAAM,eAAe;EACnB,KAAK,MAAM,mBAAmB;EAC9B,KAAK,MAAM,mBAAmB;EAC9B,KAAK,MAAM,qBAAqB;CAClC;CACA,MAAM,qBAAqB,MAAM,QAAQ,IACvC,aAAa,IAAI,OAAO,MAAM;EAC5B,IAAI,MAAM,QAAQ,WAAW,CAAC,GAAG;GAC/B,OAAO;EACT;CACF,CAAC,CACH,EAAC,CAAE,MAAM,MAAM,OAAO,MAAM,QAAQ;CACpC,MAAM,6BAA6B,YAAY,6BAA6B,IAAI;CAChF,MAAM,EAAE,YAAY,MAAM,QAAQ,SAAS,0BAA0B;CACrE,OAAO;EACL;EACA,eAAe,CAAC,UAAU;EAK1B,KAAK,oBAAoB,EACvB,SAAS,kBACX,IAAI;GACF,aAAa;GACb,cAAc,EACZ,SAAS,EACP,QAAQ,MAAM,KAAK,KAAK,EAC1B,EACF;EACF;EACA,QAAQ;GACN,SAAS,GAAG,SAAS;GACrB,wBAAwB,IAAI,KAAK;GACjC,oCAAoC,IAAI,QAAQ;EAClD;EACA,SAAS;GACP,OAAO;IAIL;KACE,MAAM;KACN,aAAa,YAAY,qBAAqB,YAAY,OAAO;IACnE;IACA;KAGE,MAAM;KACN,aAAa;IACf;IACA;KACE,MAAM;KACN,aAAa;IACf;IAIA;KACE,MAAM;KACN,aAAa;IACf;IAIA;KACE,MAAM;KACN,aAAa;IACf;IAEA;KACE,MAAM;KACN,aAAa,YAAY,sBAAsB,IAAI;IACrD;IACA;KACE,MAAM;KACN,aAAa,YAAY,mBAAmB,IAAI;IAClD;GACF;GAEA;EACF;EACA,OAAO,CAAC;EAMR,KAAK,EACH,KAAK,EACH,SAAS,SAAS,cACpB,EACF;CACF;AACF"}
1
+ {"version":3,"file":"getBaseViteConfigOnly.js","names":[],"sources":["config/getBaseViteConfigOnly.js"],"sourcesContent":["import { resolvePath } from \"@vxrn/resolve\";\nimport { join } from \"node:path\";\nimport { pathExists, readJSON } from \"../utils/fs\";\nconst dedupe = [\n \"one\",\n \"react\",\n \"react-dom\",\n \"react-dom/client\",\n \"react-native-web\",\n \"react-native-web-lite\",\n \"@react-navigation/core\",\n \"@react-navigation/native\",\n \"@react-navigation/elements\",\n \"@react-navigation/native-stack\",\n \"@react-navigation/bottom-tabs\",\n \"@tamagui/core\",\n \"@tamagui/web\",\n \"@tamagui/adapt\",\n \"@tamagui/react-native-web\",\n \"@tamagui/react-native-web-lite\",\n \"tamagui\",\n \"react-native-reanimated\"\n];\nasync function getBaseViteConfig(config) {\n const { root, mode } = config;\n const postCSSPaths = [\n join(root, \"postcss.config.js\"),\n join(root, \"postcss.config.ts\"),\n join(root, \"postcss.config.json\")\n ];\n const postCSSConfigPath = (await Promise.all(\n postCSSPaths.map(async (x) => {\n if (await pathExists(x)) {\n return x;\n }\n })\n )).find((x) => typeof x === \"string\");\n const reactNativePackageJsonPath = resolvePath(\"react-native/package.json\", root);\n const { version } = await readJSON(reactNativePackageJsonPath);\n return {\n mode,\n assetsInclude: [\"**/*.glb\"],\n // we load the config ourselves\n // if you disable this is disables auto-reloading config changes\n // configFile: false,\n // TODO make this documented / configurable through the plugins\n css: postCSSConfigPath ? {\n postcss: postCSSConfigPath\n } : {\n transformer: \"lightningcss\",\n lightningcss: {\n targets: {\n safari: 15 << 16 | 2 << 8\n }\n }\n },\n define: {\n __DEV__: `${mode === \"development\"}`,\n \"process.env.NODE_ENV\": `\"${mode}\"`,\n \"process.env.REACT_NATIVE_VERSION\": `\"${version}\"`\n },\n resolve: {\n alias: [\n // deep react-native/Libraries/* paths must be caught BEFORE the general\n // react-native → react-native-web alias, since react-native-web doesn't\n // have these native-only subpaths\n {\n find: /^react-native\\/Libraries\\/.*/,\n replacement: resolvePath(\"@vxrn/utils/empty\", import.meta.dirname)\n },\n {\n // react native 0.87 removed @react-native/assets-registry, but libraries\n // like react-native-svg still import its registry\n find: /^(react-native\\/asset-registry|@react-native\\/assets-registry\\/registry)$/,\n replacement: \"react-native-web/dist/modules/AssetRegistry\"\n },\n {\n find: \"react-native/package.json\",\n replacement: \"react-native-web/package.json\"\n },\n // named by package so it resolves (from the root, through dedupe) only\n // once something imports react-native: an app with no react-native\n // imports needs no react-native-web.\n {\n find: \"react-native\",\n replacement: \"react-native-web\"\n },\n // react-native-gesture-handler 3 probes reanimated's source with a\n // guarded require; the optimizer leaves the .tsx external, so it must\n // map to the built web files or the whole client fails to load\n {\n find: /^react-native-reanimated\\/src\\//,\n replacement: \"react-native-reanimated/lib/module/\"\n },\n // bundle size optimizations\n {\n find: \"query-string\",\n replacement: resolvePath(\"@vxrn/query-string\", root)\n },\n {\n find: \"url-parse\",\n replacement: resolvePath(\"@vxrn/url-parse\", root)\n }\n ],\n // TODO auto dedupe all include optimize deps?\n dedupe\n },\n build: {},\n // enable OXC React Refresh so component registration ($RefreshReg$) is\n // injected into TSX/JSX output; the one:react-refresh-web compiler plugin\n // then wraps the output with the runtime preamble and import.meta.hot.accept\n // only enable in dev mode - in production the refresh plugin doesn't run,\n // leaving $RefreshReg$ undefined which crashes client-side JS\n oxc: {\n jsx: {\n refresh: mode === \"development\"\n }\n }\n };\n}\nexport {\n dedupe,\n getBaseViteConfig\n};\n//# sourceMappingURL=getBaseViteConfigOnly.js.map\n"],"mappings":";;;;;AAGA,MAAM,SAAS;CACb;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AACA,eAAe,kBAAkB,QAAQ;CACvC,MAAM,EAAE,MAAM,SAAS;CACvB,MAAM,eAAe;EACnB,KAAK,MAAM,mBAAmB;EAC9B,KAAK,MAAM,mBAAmB;EAC9B,KAAK,MAAM,qBAAqB;CAClC;CACA,MAAM,qBAAqB,MAAM,QAAQ,IACvC,aAAa,IAAI,OAAO,MAAM;EAC5B,IAAI,MAAM,WAAW,CAAC,GAAG;GACvB,OAAO;EACT;CACF,CAAC,CACH,EAAC,CAAE,MAAM,MAAM,OAAO,MAAM,QAAQ;CACpC,MAAM,6BAA6B,YAAY,6BAA6B,IAAI;CAChF,MAAM,EAAE,YAAY,MAAM,SAAS,0BAA0B;CAC7D,OAAO;EACL;EACA,eAAe,CAAC,UAAU;EAK1B,KAAK,oBAAoB,EACvB,SAAS,kBACX,IAAI;GACF,aAAa;GACb,cAAc,EACZ,SAAS,EACP,QAAQ,MAAM,KAAK,KAAK,EAC1B,EACF;EACF;EACA,QAAQ;GACN,SAAS,GAAG,SAAS;GACrB,wBAAwB,IAAI,KAAK;GACjC,oCAAoC,IAAI,QAAQ;EAClD;EACA,SAAS;GACP,OAAO;IAIL;KACE,MAAM;KACN,aAAa,YAAY,qBAAqB,YAAY,OAAO;IACnE;IACA;KAGE,MAAM;KACN,aAAa;IACf;IACA;KACE,MAAM;KACN,aAAa;IACf;IAIA;KACE,MAAM;KACN,aAAa;IACf;IAIA;KACE,MAAM;KACN,aAAa;IACf;IAEA;KACE,MAAM;KACN,aAAa,YAAY,sBAAsB,IAAI;IACrD;IACA;KACE,MAAM;KACN,aAAa,YAAY,mBAAmB,IAAI;IAClD;GACF;GAEA;EACF;EACA,OAAO,CAAC;EAMR,KAAK,EACH,KAAK,EACH,SAAS,SAAS,cACpB,EACF;CACF;AACF"}
@@ -1,6 +1,6 @@
1
1
  import { resolvePath } from "@vxrn/resolve";
2
- import FSExtra from "fs-extra";
3
2
  import { join } from "path";
3
+ import { pathExists, readJSON } from "../utils/fs.native.js";
4
4
 
5
5
  var dedupe = [
6
6
  "one",
@@ -30,14 +30,14 @@ async function getBaseViteConfig(config) {
30
30
  join(root, "postcss.config.json")
31
31
  ];
32
32
  var postCSSConfigPath = (await Promise.all(postCSSPaths.map(async function(x) {
33
- if (await FSExtra.pathExists(x)) {
33
+ if (await pathExists(x)) {
34
34
  return x;
35
35
  }
36
36
  }))).find(function(x) {
37
37
  return typeof x === "string";
38
38
  });
39
39
  var reactNativePackageJsonPath = resolvePath("react-native/package.json", root);
40
- var { version } = await FSExtra.readJSON(reactNativePackageJsonPath);
40
+ var { version } = await readJSON(reactNativePackageJsonPath);
41
41
  return {
42
42
  mode,
43
43
  assetsInclude: ["**/*.glb"],
@@ -1 +1 @@
1
- {"version":3,"file":"getBaseViteConfigOnly.native.js","names":[],"sources":["config/getBaseViteConfigOnly.native.js"],"sourcesContent":["import { resolvePath } from \"@vxrn/resolve\";\nimport FSExtra from \"fs-extra\";\nimport { join } from \"path\";\nvar dedupe = [\n \"one\",\n \"react\",\n \"react-dom\",\n \"react-dom/client\",\n \"react-native-web\",\n \"react-native-web-lite\",\n \"@react-navigation/core\",\n \"@react-navigation/native\",\n \"@react-navigation/elements\",\n \"@react-navigation/native-stack\",\n \"@react-navigation/bottom-tabs\",\n \"@tamagui/core\",\n \"@tamagui/web\",\n \"@tamagui/adapt\",\n \"@tamagui/react-native-web\",\n \"@tamagui/react-native-web-lite\",\n \"tamagui\",\n \"react-native-reanimated\"\n];\nasync function getBaseViteConfig(config) {\n var { root, mode } = config;\n var postCSSPaths = [\n join(root, \"postcss.config.js\"),\n join(root, \"postcss.config.ts\"),\n join(root, \"postcss.config.json\")\n ];\n var postCSSConfigPath = (await Promise.all(postCSSPaths.map(async function(x) {\n if (await FSExtra.pathExists(x)) {\n return x;\n }\n }))).find(function(x) {\n return typeof x === \"string\";\n });\n var reactNativePackageJsonPath = resolvePath(\"react-native/package.json\", root);\n var { version } = await FSExtra.readJSON(reactNativePackageJsonPath);\n return {\n mode,\n assetsInclude: [\n \"**/*.glb\"\n ],\n // we load the config ourselves\n // if you disable this is disables auto-reloading config changes\n // configFile: false,\n // TODO make this documented / configurable through the plugins\n css: postCSSConfigPath ? {\n postcss: postCSSConfigPath\n } : {\n transformer: \"lightningcss\",\n lightningcss: {\n targets: {\n safari: 15 << 16 | 2 << 8\n }\n }\n },\n define: {\n __DEV__: `${mode === \"development\"}`,\n \"process.env.NODE_ENV\": `\"${mode}\"`,\n \"process.env.REACT_NATIVE_VERSION\": `\"${version}\"`\n },\n resolve: {\n alias: [\n // deep react-native/Libraries/* paths must be caught BEFORE the general\n // react-native → react-native-web alias, since react-native-web doesn't\n // have these native-only subpaths\n {\n find: /^react-native\\/Libraries\\/.*/,\n replacement: resolvePath(\"@vxrn/utils/empty\", import.meta.dirname)\n },\n {\n // react native 0.87 removed @react-native/assets-registry, but libraries\n // like react-native-svg still import its registry\n find: /^(react-native\\/asset-registry|@react-native\\/assets-registry\\/registry)$/,\n replacement: \"react-native-web/dist/modules/AssetRegistry\"\n },\n {\n find: \"react-native/package.json\",\n replacement: \"react-native-web/package.json\"\n },\n // named by package so it resolves (from the root, through dedupe) only\n // once something imports react-native: an app with no react-native\n // imports needs no react-native-web.\n {\n find: \"react-native\",\n replacement: \"react-native-web\"\n },\n // react-native-gesture-handler 3 probes reanimated's source with a\n // guarded require; the optimizer leaves the .tsx external, so it must\n // map to the built web files or the whole client fails to load\n {\n find: /^react-native-reanimated\\/src\\//,\n replacement: \"react-native-reanimated/lib/module/\"\n },\n // bundle size optimizations\n {\n find: \"query-string\",\n replacement: resolvePath(\"@vxrn/query-string\", root)\n },\n {\n find: \"url-parse\",\n replacement: resolvePath(\"@vxrn/url-parse\", root)\n }\n ],\n // TODO auto dedupe all include optimize deps?\n dedupe\n },\n build: {},\n // enable OXC React Refresh so component registration ($RefreshReg$) is\n // injected into TSX/JSX output; the one:react-refresh-web compiler plugin\n // then wraps the output with the runtime preamble and import.meta.hot.accept\n // only enable in dev mode - in production the refresh plugin doesn't run,\n // leaving $RefreshReg$ undefined which crashes client-side JS\n oxc: {\n jsx: {\n refresh: mode === \"development\"\n }\n }\n };\n}\nexport {\n dedupe,\n getBaseViteConfig\n};\n//# sourceMappingURL=getBaseViteConfigOnly.js.map\n"],"mappings":";;;;;AAGA,IAAI,SAAS;CACX;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AACA,eAAe,kBAAkB,QAAQ;CACvC,IAAI,EAAE,MAAM,SAAS;CACrB,IAAI,eAAe;EACjB,KAAK,MAAM,mBAAmB;EAC9B,KAAK,MAAM,mBAAmB;EAC9B,KAAK,MAAM,qBAAqB;CAClC;CACA,IAAI,qBAAqB,MAAM,QAAQ,IAAI,aAAa,IAAI,eAAe,GAAG;EAC5E,IAAI,MAAM,QAAQ,WAAW,CAAC,GAAG;GAC/B,OAAO;EACT;CACF,CAAC,CAAC,EAAC,CAAE,KAAK,SAAS,GAAG;EACpB,OAAO,OAAO,MAAM;CACtB,CAAC;CACD,IAAI,6BAA6B,YAAY,6BAA6B,IAAI;CAC9E,IAAI,EAAE,YAAY,MAAM,QAAQ,SAAS,0BAA0B;CACnE,OAAO;EACL;EACA,eAAe,CACb,UACF;EAKA,KAAK,oBAAoB,EACvB,SAAS,kBACX,IAAI;GACF,aAAa;GACb,cAAc,EACZ,SAAS,EACP,QAAQ,MAAM,KAAK,KAAK,EAC1B,EACF;EACF;EACA,QAAQ;GACN,SAAS,GAAG,SAAS;GACrB,wBAAwB,IAAI,KAAK;GACjC,oCAAoC,IAAI,QAAQ;EAClD;EACA,SAAS;GACP,OAAO;IAIL;KACE,MAAM;KACN,aAAa,YAAY,qBAAqB,YAAY,OAAO;IACnE;IACA;KAGE,MAAM;KACN,aAAa;IACf;IACA;KACE,MAAM;KACN,aAAa;IACf;IAIA;KACE,MAAM;KACN,aAAa;IACf;IAIA;KACE,MAAM;KACN,aAAa;IACf;IAEA;KACE,MAAM;KACN,aAAa,YAAY,sBAAsB,IAAI;IACrD;IACA;KACE,MAAM;KACN,aAAa,YAAY,mBAAmB,IAAI;IAClD;GACF;GAEA;EACF;EACA,OAAO,CAAC;EAMR,KAAK,EACH,KAAK,EACH,SAAS,SAAS,cACpB,EACF;CACF;AACF"}
1
+ {"version":3,"file":"getBaseViteConfigOnly.native.js","names":[],"sources":["config/getBaseViteConfigOnly.native.js"],"sourcesContent":["import { resolvePath } from \"@vxrn/resolve\";\nimport { join } from \"path\";\nimport { pathExists, readJSON } from \"../utils/fs\";\nvar dedupe = [\n \"one\",\n \"react\",\n \"react-dom\",\n \"react-dom/client\",\n \"react-native-web\",\n \"react-native-web-lite\",\n \"@react-navigation/core\",\n \"@react-navigation/native\",\n \"@react-navigation/elements\",\n \"@react-navigation/native-stack\",\n \"@react-navigation/bottom-tabs\",\n \"@tamagui/core\",\n \"@tamagui/web\",\n \"@tamagui/adapt\",\n \"@tamagui/react-native-web\",\n \"@tamagui/react-native-web-lite\",\n \"tamagui\",\n \"react-native-reanimated\"\n];\nasync function getBaseViteConfig(config) {\n var { root, mode } = config;\n var postCSSPaths = [\n join(root, \"postcss.config.js\"),\n join(root, \"postcss.config.ts\"),\n join(root, \"postcss.config.json\")\n ];\n var postCSSConfigPath = (await Promise.all(postCSSPaths.map(async function(x) {\n if (await pathExists(x)) {\n return x;\n }\n }))).find(function(x) {\n return typeof x === \"string\";\n });\n var reactNativePackageJsonPath = resolvePath(\"react-native/package.json\", root);\n var { version } = await readJSON(reactNativePackageJsonPath);\n return {\n mode,\n assetsInclude: [\n \"**/*.glb\"\n ],\n // we load the config ourselves\n // if you disable this is disables auto-reloading config changes\n // configFile: false,\n // TODO make this documented / configurable through the plugins\n css: postCSSConfigPath ? {\n postcss: postCSSConfigPath\n } : {\n transformer: \"lightningcss\",\n lightningcss: {\n targets: {\n safari: 15 << 16 | 2 << 8\n }\n }\n },\n define: {\n __DEV__: `${mode === \"development\"}`,\n \"process.env.NODE_ENV\": `\"${mode}\"`,\n \"process.env.REACT_NATIVE_VERSION\": `\"${version}\"`\n },\n resolve: {\n alias: [\n // deep react-native/Libraries/* paths must be caught BEFORE the general\n // react-native → react-native-web alias, since react-native-web doesn't\n // have these native-only subpaths\n {\n find: /^react-native\\/Libraries\\/.*/,\n replacement: resolvePath(\"@vxrn/utils/empty\", import.meta.dirname)\n },\n {\n // react native 0.87 removed @react-native/assets-registry, but libraries\n // like react-native-svg still import its registry\n find: /^(react-native\\/asset-registry|@react-native\\/assets-registry\\/registry)$/,\n replacement: \"react-native-web/dist/modules/AssetRegistry\"\n },\n {\n find: \"react-native/package.json\",\n replacement: \"react-native-web/package.json\"\n },\n // named by package so it resolves (from the root, through dedupe) only\n // once something imports react-native: an app with no react-native\n // imports needs no react-native-web.\n {\n find: \"react-native\",\n replacement: \"react-native-web\"\n },\n // react-native-gesture-handler 3 probes reanimated's source with a\n // guarded require; the optimizer leaves the .tsx external, so it must\n // map to the built web files or the whole client fails to load\n {\n find: /^react-native-reanimated\\/src\\//,\n replacement: \"react-native-reanimated/lib/module/\"\n },\n // bundle size optimizations\n {\n find: \"query-string\",\n replacement: resolvePath(\"@vxrn/query-string\", root)\n },\n {\n find: \"url-parse\",\n replacement: resolvePath(\"@vxrn/url-parse\", root)\n }\n ],\n // TODO auto dedupe all include optimize deps?\n dedupe\n },\n build: {},\n // enable OXC React Refresh so component registration ($RefreshReg$) is\n // injected into TSX/JSX output; the one:react-refresh-web compiler plugin\n // then wraps the output with the runtime preamble and import.meta.hot.accept\n // only enable in dev mode - in production the refresh plugin doesn't run,\n // leaving $RefreshReg$ undefined which crashes client-side JS\n oxc: {\n jsx: {\n refresh: mode === \"development\"\n }\n }\n };\n}\nexport {\n dedupe,\n getBaseViteConfig\n};\n//# sourceMappingURL=getBaseViteConfigOnly.js.map\n"],"mappings":";;;;;AAGA,IAAI,SAAS;CACX;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AACA,eAAe,kBAAkB,QAAQ;CACvC,IAAI,EAAE,MAAM,SAAS;CACrB,IAAI,eAAe;EACjB,KAAK,MAAM,mBAAmB;EAC9B,KAAK,MAAM,mBAAmB;EAC9B,KAAK,MAAM,qBAAqB;CAClC;CACA,IAAI,qBAAqB,MAAM,QAAQ,IAAI,aAAa,IAAI,eAAe,GAAG;EAC5E,IAAI,MAAM,WAAW,CAAC,GAAG;GACvB,OAAO;EACT;CACF,CAAC,CAAC,EAAC,CAAE,KAAK,SAAS,GAAG;EACpB,OAAO,OAAO,MAAM;CACtB,CAAC;CACD,IAAI,6BAA6B,YAAY,6BAA6B,IAAI;CAC9E,IAAI,EAAE,YAAY,MAAM,SAAS,0BAA0B;CAC3D,OAAO;EACL;EACA,eAAe,CACb,UACF;EAKA,KAAK,oBAAoB,EACvB,SAAS,kBACX,IAAI;GACF,aAAa;GACb,cAAc,EACZ,SAAS,EACP,QAAQ,MAAM,KAAK,KAAK,EAC1B,EACF;EACF;EACA,QAAQ;GACN,SAAS,GAAG,SAAS;GACrB,wBAAwB,IAAI,KAAK;GACjC,oCAAoC,IAAI,QAAQ;EAClD;EACA,SAAS;GACP,OAAO;IAIL;KACE,MAAM;KACN,aAAa,YAAY,qBAAqB,YAAY,OAAO;IACnE;IACA;KAGE,MAAM;KACN,aAAa;IACf;IACA;KACE,MAAM;KACN,aAAa;IACf;IAIA;KACE,MAAM;KACN,aAAa;IACf;IAIA;KACE,MAAM;KACN,aAAa;IACf;IAEA;KACE,MAAM;KACN,aAAa,YAAY,sBAAsB,IAAI;IACrD;IACA;KACE,MAAM;KACN,aAAa,YAAY,mBAAmB,IAAI;IAClD;GACF;GAEA;EACF;EACA,OAAO,CAAC;EAMR,KAAK,EACH,KAAK,EACH,SAAS,SAAS,cACpB,EACF;CACF;AACF"}
@@ -1,8 +1,9 @@
1
1
  import { createHash } from "node:crypto";
2
+ import { existsSync } from "node:fs";
3
+ import { readFile } from "node:fs/promises";
2
4
  import { createRequire } from "node:module";
3
5
  import { tmpdir } from "node:os";
4
- import { join } from "node:path";
5
- import { readPackageJSON } from "pkg-types";
6
+ import { basename, dirname, join, resolve } from "node:path";
6
7
  import { getServerOptionsFilled } from "./getServerOptionsFilled.mjs";
7
8
  import { readState } from "../utils/state.mjs";
8
9
  import { getCacheDir } from "../utils/getCacheDir.mjs";
@@ -55,6 +56,27 @@ async function fillOptions(options, { mode = "dev" } = {}) {
55
56
  function getOptionsFilled() {
56
57
  return optionsFilled;
57
58
  }
59
+ async function readPackageJSON(cwd = process.cwd()) {
60
+ let stopDir = null;
61
+ for (let dir2 = resolve(cwd);;) {
62
+ if (basename(dir2) === "node_modules") stopDir = dir2;
63
+ const parent = dirname(dir2);
64
+ if (parent === dir2) break;
65
+ dir2 = parent;
66
+ }
67
+ let dir = resolve(cwd);
68
+ for (;;) {
69
+ const candidate = join(dir, "package.json");
70
+ if (existsSync(candidate)) {
71
+ return JSON.parse(await readFile(candidate, "utf8"));
72
+ }
73
+ if (stopDir && resolve(dir) === stopDir) break;
74
+ const parent = dirname(dir);
75
+ if (parent === dir) break;
76
+ dir = parent;
77
+ }
78
+ throw new Error(`Cannot find matching package.json in ${cwd} or parent directories`);
79
+ }
58
80
  function hashString(str) {
59
81
  const hash = createHash("sha256");
60
82
  hash.update(str);
@@ -1 +1 @@
1
- {"version":3,"file":"getOptionsFilled.js","names":[],"sources":["config/getOptionsFilled.js"],"sourcesContent":["import { createHash } from \"node:crypto\";\nimport { createRequire } from \"node:module\";\nimport { tmpdir } from \"node:os\";\nimport { join } from \"node:path\";\nimport { readPackageJSON } from \"pkg-types\";\nimport { getServerOptionsFilled } from \"./getServerOptionsFilled\";\nimport { readState } from \"../utils/state\";\nimport { getCacheDir } from \"../utils/getCacheDir\";\nconst require2 = createRequire(import.meta.url);\nlet optionsFilled = null;\nasync function fillOptions(options, { mode = \"dev\" } = {}) {\n const { root = process.cwd(), entries } = options;\n const devMode = options.mode === \"production\" ? false : mode === \"dev\";\n const packageRootDir = join(require2.resolve(\"vxrn\"), \"../..\");\n const cacheDir = getCacheDir(root);\n const [state, packageJSON] = await Promise.all([readState(cacheDir), readPackageJSON()]);\n const deps = packageJSON.dependencies || {};\n const packageVersions = deps.react && deps[\"react-native\"] ? {\n react: deps.react.replace(/[\\^~]/, \"\"),\n reactNative: deps[\"react-native\"].replace(/[\\^~]/, \"\")\n } : void 0;\n const versionHash = hashString(JSON.stringify(packageJSON));\n const clean = options.clean ?? (state.versionHash && state.versionHash !== versionHash) ? \"vite\" : false;\n if (typeof options.build?.server !== \"boolean\" && !options.build?.server) {\n options.build ||= {};\n options.build.server = false;\n }\n const debugBundlePath = options.debugBundle && typeof options.debugBundle === \"string\" ? options.debugBundle : join(tmpdir(), `bundle-${Math.round(Math.random() * 1e5)}.js`);\n const final = {\n ...options,\n // for now just allow debugging one at once\n debugBundlePaths: {\n ios: debugBundlePath,\n android: debugBundlePath\n },\n mode: devMode ? \"development\" : \"production\",\n clean,\n root,\n server: await getServerOptionsFilled(options.server, mode),\n entries: {\n native: \"./src/entry-native.tsx\",\n server: \"./src/entry-server.tsx\",\n ...entries\n },\n packageJSON,\n packageVersions,\n state,\n packageRootDir,\n cacheDir,\n versionHash\n };\n optionsFilled = final;\n return final;\n}\nfunction getOptionsFilled() {\n return optionsFilled;\n}\nfunction hashString(str) {\n const hash = createHash(\"sha256\");\n hash.update(str);\n return hash.digest(\"hex\");\n}\nexport {\n fillOptions,\n getOptionsFilled\n};\n//# sourceMappingURL=getOptionsFilled.js.map\n"],"mappings":";;;;;;;;;;AAQA,MAAM,WAAW,cAAc,YAAY,GAAG;AAC9C,IAAI,gBAAgB;AACpB,eAAe,YAAY,SAAS,EAAE,OAAO,UAAU,CAAC,GAAG;CACzD,MAAM,EAAE,OAAO,QAAQ,IAAI,GAAG,YAAY;CAC1C,MAAM,UAAU,QAAQ,SAAS,eAAe,QAAQ,SAAS;CACjE,MAAM,iBAAiB,KAAK,SAAS,QAAQ,MAAM,GAAG,OAAO;CAC7D,MAAM,WAAW,YAAY,IAAI;CACjC,MAAM,CAAC,OAAO,eAAe,MAAM,QAAQ,IAAI,CAAC,UAAU,QAAQ,GAAG,gBAAgB,CAAC,CAAC;CACvF,MAAM,OAAO,YAAY,gBAAgB,CAAC;CAC1C,MAAM,kBAAkB,KAAK,SAAS,KAAK,kBAAkB;EAC3D,OAAO,KAAK,MAAM,QAAQ,SAAS,EAAE;EACrC,aAAa,KAAK,eAAe,CAAC,QAAQ,SAAS,EAAE;CACvD,IAAI,KAAK;CACT,MAAM,cAAc,WAAW,KAAK,UAAU,WAAW,CAAC;CAC1D,MAAM,QAAQ,QAAQ,UAAU,MAAM,eAAe,MAAM,gBAAgB,eAAe,SAAS;CACnG,IAAI,OAAO,QAAQ,OAAO,WAAW,aAAa,CAAC,QAAQ,OAAO,QAAQ;EACxE,QAAQ,UAAU,CAAC;EACnB,QAAQ,MAAM,SAAS;CACzB;CACA,MAAM,kBAAkB,QAAQ,eAAe,OAAO,QAAQ,gBAAgB,WAAW,QAAQ,cAAc,KAAK,OAAO,GAAG,UAAU,KAAK,MAAM,KAAK,OAAO,IAAI,GAAG,EAAE,IAAI;CAC5K,MAAM,QAAQ;EACZ,GAAG;EAEH,kBAAkB;GAChB,KAAK;GACL,SAAS;EACX;EACA,MAAM,UAAU,gBAAgB;EAChC;EACA;EACA,QAAQ,MAAM,uBAAuB,QAAQ,QAAQ,IAAI;EACzD,SAAS;GACP,QAAQ;GACR,QAAQ;GACR,GAAG;EACL;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,gBAAgB;CAChB,OAAO;AACT;AACA,SAAS,mBAAmB;CAC1B,OAAO;AACT;AACA,SAAS,WAAW,KAAK;CACvB,MAAM,OAAO,WAAW,QAAQ;CAChC,KAAK,OAAO,GAAG;CACf,OAAO,KAAK,OAAO,KAAK;AAC1B"}
1
+ {"version":3,"file":"getOptionsFilled.js","names":[],"sources":["config/getOptionsFilled.js"],"sourcesContent":["import { createHash } from \"node:crypto\";\nimport { existsSync } from \"node:fs\";\nimport { readFile } from \"node:fs/promises\";\nimport { createRequire } from \"node:module\";\nimport { tmpdir } from \"node:os\";\nimport { basename, dirname, join, resolve } from \"node:path\";\nimport { getServerOptionsFilled } from \"./getServerOptionsFilled\";\nimport { readState } from \"../utils/state\";\nimport { getCacheDir } from \"../utils/getCacheDir\";\nconst require2 = createRequire(import.meta.url);\nlet optionsFilled = null;\nasync function fillOptions(options, { mode = \"dev\" } = {}) {\n const { root = process.cwd(), entries } = options;\n const devMode = options.mode === \"production\" ? false : mode === \"dev\";\n const packageRootDir = join(require2.resolve(\"vxrn\"), \"../..\");\n const cacheDir = getCacheDir(root);\n const [state, packageJSON] = await Promise.all([readState(cacheDir), readPackageJSON()]);\n const deps = packageJSON.dependencies || {};\n const packageVersions = deps.react && deps[\"react-native\"] ? {\n react: deps.react.replace(/[\\^~]/, \"\"),\n reactNative: deps[\"react-native\"].replace(/[\\^~]/, \"\")\n } : void 0;\n const versionHash = hashString(JSON.stringify(packageJSON));\n const clean = options.clean ?? (state.versionHash && state.versionHash !== versionHash) ? \"vite\" : false;\n if (typeof options.build?.server !== \"boolean\" && !options.build?.server) {\n options.build ||= {};\n options.build.server = false;\n }\n const debugBundlePath = options.debugBundle && typeof options.debugBundle === \"string\" ? options.debugBundle : join(tmpdir(), `bundle-${Math.round(Math.random() * 1e5)}.js`);\n const final = {\n ...options,\n // for now just allow debugging one at once\n debugBundlePaths: {\n ios: debugBundlePath,\n android: debugBundlePath\n },\n mode: devMode ? \"development\" : \"production\",\n clean,\n root,\n server: await getServerOptionsFilled(options.server, mode),\n entries: {\n native: \"./src/entry-native.tsx\",\n server: \"./src/entry-server.tsx\",\n ...entries\n },\n packageJSON,\n packageVersions,\n state,\n packageRootDir,\n cacheDir,\n versionHash\n };\n optionsFilled = final;\n return final;\n}\nfunction getOptionsFilled() {\n return optionsFilled;\n}\nasync function readPackageJSON(cwd = process.cwd()) {\n let stopDir = null;\n for (let dir2 = resolve(cwd); ; ) {\n if (basename(dir2) === \"node_modules\") stopDir = dir2;\n const parent = dirname(dir2);\n if (parent === dir2) break;\n dir2 = parent;\n }\n let dir = resolve(cwd);\n for (; ; ) {\n const candidate = join(dir, \"package.json\");\n if (existsSync(candidate)) {\n return JSON.parse(await readFile(candidate, \"utf8\"));\n }\n if (stopDir && resolve(dir) === stopDir) break;\n const parent = dirname(dir);\n if (parent === dir) break;\n dir = parent;\n }\n throw new Error(`Cannot find matching package.json in ${cwd} or parent directories`);\n}\nfunction hashString(str) {\n const hash = createHash(\"sha256\");\n hash.update(str);\n return hash.digest(\"hex\");\n}\nexport {\n fillOptions,\n getOptionsFilled\n};\n//# sourceMappingURL=getOptionsFilled.js.map\n"],"mappings":";;;;;;;;;;;AASA,MAAM,WAAW,cAAc,YAAY,GAAG;AAC9C,IAAI,gBAAgB;AACpB,eAAe,YAAY,SAAS,EAAE,OAAO,UAAU,CAAC,GAAG;CACzD,MAAM,EAAE,OAAO,QAAQ,IAAI,GAAG,YAAY;CAC1C,MAAM,UAAU,QAAQ,SAAS,eAAe,QAAQ,SAAS;CACjE,MAAM,iBAAiB,KAAK,SAAS,QAAQ,MAAM,GAAG,OAAO;CAC7D,MAAM,WAAW,YAAY,IAAI;CACjC,MAAM,CAAC,OAAO,eAAe,MAAM,QAAQ,IAAI,CAAC,UAAU,QAAQ,GAAG,gBAAgB,CAAC,CAAC;CACvF,MAAM,OAAO,YAAY,gBAAgB,CAAC;CAC1C,MAAM,kBAAkB,KAAK,SAAS,KAAK,kBAAkB;EAC3D,OAAO,KAAK,MAAM,QAAQ,SAAS,EAAE;EACrC,aAAa,KAAK,eAAe,CAAC,QAAQ,SAAS,EAAE;CACvD,IAAI,KAAK;CACT,MAAM,cAAc,WAAW,KAAK,UAAU,WAAW,CAAC;CAC1D,MAAM,QAAQ,QAAQ,UAAU,MAAM,eAAe,MAAM,gBAAgB,eAAe,SAAS;CACnG,IAAI,OAAO,QAAQ,OAAO,WAAW,aAAa,CAAC,QAAQ,OAAO,QAAQ;EACxE,QAAQ,UAAU,CAAC;EACnB,QAAQ,MAAM,SAAS;CACzB;CACA,MAAM,kBAAkB,QAAQ,eAAe,OAAO,QAAQ,gBAAgB,WAAW,QAAQ,cAAc,KAAK,OAAO,GAAG,UAAU,KAAK,MAAM,KAAK,OAAO,IAAI,GAAG,EAAE,IAAI;CAC5K,MAAM,QAAQ;EACZ,GAAG;EAEH,kBAAkB;GAChB,KAAK;GACL,SAAS;EACX;EACA,MAAM,UAAU,gBAAgB;EAChC;EACA;EACA,QAAQ,MAAM,uBAAuB,QAAQ,QAAQ,IAAI;EACzD,SAAS;GACP,QAAQ;GACR,QAAQ;GACR,GAAG;EACL;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,gBAAgB;CAChB,OAAO;AACT;AACA,SAAS,mBAAmB;CAC1B,OAAO;AACT;AACA,eAAe,gBAAgB,MAAM,QAAQ,IAAI,GAAG;CAClD,IAAI,UAAU;CACd,KAAK,IAAI,OAAO,QAAQ,GAAG,KAAO;EAChC,IAAI,SAAS,IAAI,MAAM,gBAAgB,UAAU;EACjD,MAAM,SAAS,QAAQ,IAAI;EAC3B,IAAI,WAAW,MAAM;EACrB,OAAO;CACT;CACA,IAAI,MAAM,QAAQ,GAAG;CACrB,SAAW;EACT,MAAM,YAAY,KAAK,KAAK,cAAc;EAC1C,IAAI,WAAW,SAAS,GAAG;GACzB,OAAO,KAAK,MAAM,MAAM,SAAS,WAAW,MAAM,CAAC;EACrD;EACA,IAAI,WAAW,QAAQ,GAAG,MAAM,SAAS;EACzC,MAAM,SAAS,QAAQ,GAAG;EAC1B,IAAI,WAAW,KAAK;EACpB,MAAM;CACR;CACA,MAAM,IAAI,MAAM,wCAAwC,IAAI,uBAAuB;AACrF;AACA,SAAS,WAAW,KAAK;CACvB,MAAM,OAAO,WAAW,QAAQ;CAChC,KAAK,OAAO,GAAG;CACf,OAAO,KAAK,OAAO,KAAK;AAC1B"}
@@ -1,8 +1,9 @@
1
1
  import { createHash } from "crypto";
2
+ import { existsSync } from "fs";
3
+ import { readFile } from "fs/promises";
2
4
  import { createRequire } from "module";
3
5
  import { tmpdir } from "os";
4
- import { join } from "path";
5
- import { readPackageJSON } from "pkg-types";
6
+ import { basename, dirname, join, resolve } from "path";
6
7
  import { getServerOptionsFilled } from "./getServerOptionsFilled.native.js";
7
8
  import { readState } from "../utils/state.native.js";
8
9
  import { getCacheDir } from "../utils/getCacheDir.native.js";
@@ -59,6 +60,28 @@ async function fillOptions(options) {
59
60
  function getOptionsFilled() {
60
61
  return optionsFilled;
61
62
  }
63
+ async function readPackageJSON() {
64
+ var cwd = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : process.cwd();
65
+ var stopDir = null;
66
+ for (var dir = resolve(cwd);;) {
67
+ if (basename(dir) === "node_modules") stopDir = dir;
68
+ var parent = dirname(dir);
69
+ if (parent === dir) break;
70
+ dir = parent;
71
+ }
72
+ var dir1 = resolve(cwd);
73
+ for (;;) {
74
+ var candidate = join(dir1, "package.json");
75
+ if (existsSync(candidate)) {
76
+ return JSON.parse(await readFile(candidate, "utf8"));
77
+ }
78
+ if (stopDir && resolve(dir1) === stopDir) break;
79
+ var parent1 = dirname(dir1);
80
+ if (parent1 === dir1) break;
81
+ dir1 = parent1;
82
+ }
83
+ throw new Error(`Cannot find matching package.json in ${cwd} or parent directories`);
84
+ }
62
85
  function hashString(str) {
63
86
  var hash = createHash("sha256");
64
87
  hash.update(str);
@@ -1 +1 @@
1
- {"version":3,"file":"getOptionsFilled.native.js","names":[],"sources":["config/getOptionsFilled.native.js"],"sourcesContent":["import { createHash } from \"crypto\";\nimport { createRequire } from \"module\";\nimport { tmpdir } from \"os\";\nimport { join } from \"path\";\nimport { readPackageJSON } from \"pkg-types\";\nimport { getServerOptionsFilled } from \"./getServerOptionsFilled\";\nimport { readState } from \"../utils/state\";\nimport { getCacheDir } from \"../utils/getCacheDir\";\nvar require2 = createRequire(import.meta.url);\nvar optionsFilled = null;\nasync function fillOptions(options) {\n var { mode = \"dev\" } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var _options_clean;\n var _options_build, _options_build1;\n var { root = process.cwd(), entries } = options;\n var devMode = options.mode === \"production\" ? false : mode === \"dev\";\n var packageRootDir = join(require2.resolve(\"vxrn\"), \"../..\");\n var cacheDir = getCacheDir(root);\n var [state, packageJSON] = await Promise.all([\n readState(cacheDir),\n readPackageJSON()\n ]);\n var deps = packageJSON.dependencies || {};\n var packageVersions = deps.react && deps[\"react-native\"] ? {\n react: deps.react.replace(/[\\^~]/, \"\"),\n reactNative: deps[\"react-native\"].replace(/[\\^~]/, \"\")\n } : void 0;\n var versionHash = hashString(JSON.stringify(packageJSON));\n var clean = ((_options_clean = options.clean) !== null && _options_clean !== void 0 ? _options_clean : state.versionHash && state.versionHash !== versionHash) ? \"vite\" : false;\n if (typeof ((_options_build = options.build) === null || _options_build === void 0 ? void 0 : _options_build.server) !== \"boolean\" && !((_options_build1 = options.build) === null || _options_build1 === void 0 ? void 0 : _options_build1.server)) {\n var _options;\n (_options = options).build || (_options.build = {});\n options.build.server = false;\n }\n var debugBundlePath = options.debugBundle && typeof options.debugBundle === \"string\" ? options.debugBundle : join(tmpdir(), `bundle-${Math.round(Math.random() * 1e5)}.js`);\n var final = {\n ...options,\n // for now just allow debugging one at once\n debugBundlePaths: {\n ios: debugBundlePath,\n android: debugBundlePath\n },\n mode: devMode ? \"development\" : \"production\",\n clean,\n root,\n server: await getServerOptionsFilled(options.server, mode),\n entries: {\n native: \"./src/entry-native.tsx\",\n server: \"./src/entry-server.tsx\",\n ...entries\n },\n packageJSON,\n packageVersions,\n state,\n packageRootDir,\n cacheDir,\n versionHash\n };\n optionsFilled = final;\n return final;\n}\nfunction getOptionsFilled() {\n return optionsFilled;\n}\nfunction hashString(str) {\n var hash = createHash(\"sha256\");\n hash.update(str);\n return hash.digest(\"hex\");\n}\nexport {\n fillOptions,\n getOptionsFilled\n};\n//# sourceMappingURL=getOptionsFilled.js.map\n"],"mappings":";;;;;;;;;;AAQA,IAAI,WAAW,cAAc,YAAY,GAAG;AAC5C,IAAI,gBAAgB;AACpB,eAAe,YAAY,SAAS;CAClC,IAAI,EAAE,OAAO,UAAU,UAAU,SAAS,KAAK,UAAU,OAAO,KAAK,IAAI,UAAU,KAAK,CAAC;CACzF,IAAI;CACJ,IAAI,gBAAgB;CACpB,IAAI,EAAE,OAAO,QAAQ,IAAI,GAAG,YAAY;CACxC,IAAI,UAAU,QAAQ,SAAS,eAAe,QAAQ,SAAS;CAC/D,IAAI,iBAAiB,KAAK,SAAS,QAAQ,MAAM,GAAG,OAAO;CAC3D,IAAI,WAAW,YAAY,IAAI;CAC/B,IAAI,CAAC,OAAO,eAAe,MAAM,QAAQ,IAAI,CAC3C,UAAU,QAAQ,GAClB,gBAAgB,CAClB,CAAC;CACD,IAAI,OAAO,YAAY,gBAAgB,CAAC;CACxC,IAAI,kBAAkB,KAAK,SAAS,KAAK,kBAAkB;EACzD,OAAO,KAAK,MAAM,QAAQ,SAAS,EAAE;EACrC,aAAa,KAAK,eAAe,CAAC,QAAQ,SAAS,EAAE;CACvD,IAAI,KAAK;CACT,IAAI,cAAc,WAAW,KAAK,UAAU,WAAW,CAAC;CACxD,IAAI,UAAU,iBAAiB,QAAQ,WAAW,QAAQ,mBAAmB,KAAK,IAAI,iBAAiB,MAAM,eAAe,MAAM,gBAAgB,eAAe,SAAS;CAC1K,IAAI,SAAS,iBAAiB,QAAQ,WAAW,QAAQ,mBAAmB,KAAK,IAAI,KAAK,IAAI,eAAe,YAAY,aAAa,GAAG,kBAAkB,QAAQ,WAAW,QAAQ,oBAAoB,KAAK,IAAI,KAAK,IAAI,gBAAgB,SAAS;EACnP,IAAI;EACJ,CAAC,WAAW,QAAO,CAAE,UAAU,SAAS,QAAQ,CAAC;EACjD,QAAQ,MAAM,SAAS;CACzB;CACA,IAAI,kBAAkB,QAAQ,eAAe,OAAO,QAAQ,gBAAgB,WAAW,QAAQ,cAAc,KAAK,OAAO,GAAG,UAAU,KAAK,MAAM,KAAK,OAAO,IAAI,GAAG,EAAE,IAAI;CAC1K,IAAI,QAAQ;EACV,GAAG;EAEH,kBAAkB;GAChB,KAAK;GACL,SAAS;EACX;EACA,MAAM,UAAU,gBAAgB;EAChC;EACA;EACA,QAAQ,MAAM,uBAAuB,QAAQ,QAAQ,IAAI;EACzD,SAAS;GACP,QAAQ;GACR,QAAQ;GACR,GAAG;EACL;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,gBAAgB;CAChB,OAAO;AACT;AACA,SAAS,mBAAmB;CAC1B,OAAO;AACT;AACA,SAAS,WAAW,KAAK;CACvB,IAAI,OAAO,WAAW,QAAQ;CAC9B,KAAK,OAAO,GAAG;CACf,OAAO,KAAK,OAAO,KAAK;AAC1B"}
1
+ {"version":3,"file":"getOptionsFilled.native.js","names":[],"sources":["config/getOptionsFilled.native.js"],"sourcesContent":["import { createHash } from \"crypto\";\nimport { existsSync } from \"fs\";\nimport { readFile } from \"fs/promises\";\nimport { createRequire } from \"module\";\nimport { tmpdir } from \"os\";\nimport { basename, dirname, join, resolve } from \"path\";\nimport { getServerOptionsFilled } from \"./getServerOptionsFilled\";\nimport { readState } from \"../utils/state\";\nimport { getCacheDir } from \"../utils/getCacheDir\";\nvar require2 = createRequire(import.meta.url);\nvar optionsFilled = null;\nasync function fillOptions(options) {\n var { mode = \"dev\" } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var _options_clean;\n var _options_build, _options_build1;\n var { root = process.cwd(), entries } = options;\n var devMode = options.mode === \"production\" ? false : mode === \"dev\";\n var packageRootDir = join(require2.resolve(\"vxrn\"), \"../..\");\n var cacheDir = getCacheDir(root);\n var [state, packageJSON] = await Promise.all([\n readState(cacheDir),\n readPackageJSON()\n ]);\n var deps = packageJSON.dependencies || {};\n var packageVersions = deps.react && deps[\"react-native\"] ? {\n react: deps.react.replace(/[\\^~]/, \"\"),\n reactNative: deps[\"react-native\"].replace(/[\\^~]/, \"\")\n } : void 0;\n var versionHash = hashString(JSON.stringify(packageJSON));\n var clean = ((_options_clean = options.clean) !== null && _options_clean !== void 0 ? _options_clean : state.versionHash && state.versionHash !== versionHash) ? \"vite\" : false;\n if (typeof ((_options_build = options.build) === null || _options_build === void 0 ? void 0 : _options_build.server) !== \"boolean\" && !((_options_build1 = options.build) === null || _options_build1 === void 0 ? void 0 : _options_build1.server)) {\n var _options;\n (_options = options).build || (_options.build = {});\n options.build.server = false;\n }\n var debugBundlePath = options.debugBundle && typeof options.debugBundle === \"string\" ? options.debugBundle : join(tmpdir(), `bundle-${Math.round(Math.random() * 1e5)}.js`);\n var final = {\n ...options,\n // for now just allow debugging one at once\n debugBundlePaths: {\n ios: debugBundlePath,\n android: debugBundlePath\n },\n mode: devMode ? \"development\" : \"production\",\n clean,\n root,\n server: await getServerOptionsFilled(options.server, mode),\n entries: {\n native: \"./src/entry-native.tsx\",\n server: \"./src/entry-server.tsx\",\n ...entries\n },\n packageJSON,\n packageVersions,\n state,\n packageRootDir,\n cacheDir,\n versionHash\n };\n optionsFilled = final;\n return final;\n}\nfunction getOptionsFilled() {\n return optionsFilled;\n}\nasync function readPackageJSON() {\n var cwd = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : process.cwd();\n var stopDir = null;\n for (var dir = resolve(cwd); ; ) {\n if (basename(dir) === \"node_modules\") stopDir = dir;\n var parent = dirname(dir);\n if (parent === dir) break;\n dir = parent;\n }\n var dir1 = resolve(cwd);\n for (; ; ) {\n var candidate = join(dir1, \"package.json\");\n if (existsSync(candidate)) {\n return JSON.parse(await readFile(candidate, \"utf8\"));\n }\n if (stopDir && resolve(dir1) === stopDir) break;\n var parent1 = dirname(dir1);\n if (parent1 === dir1) break;\n dir1 = parent1;\n }\n throw new Error(`Cannot find matching package.json in ${cwd} or parent directories`);\n}\nfunction hashString(str) {\n var hash = createHash(\"sha256\");\n hash.update(str);\n return hash.digest(\"hex\");\n}\nexport {\n fillOptions,\n getOptionsFilled\n};\n//# sourceMappingURL=getOptionsFilled.js.map\n"],"mappings":";;;;;;;;;;;AASA,IAAI,WAAW,cAAc,YAAY,GAAG;AAC5C,IAAI,gBAAgB;AACpB,eAAe,YAAY,SAAS;CAClC,IAAI,EAAE,OAAO,UAAU,UAAU,SAAS,KAAK,UAAU,OAAO,KAAK,IAAI,UAAU,KAAK,CAAC;CACzF,IAAI;CACJ,IAAI,gBAAgB;CACpB,IAAI,EAAE,OAAO,QAAQ,IAAI,GAAG,YAAY;CACxC,IAAI,UAAU,QAAQ,SAAS,eAAe,QAAQ,SAAS;CAC/D,IAAI,iBAAiB,KAAK,SAAS,QAAQ,MAAM,GAAG,OAAO;CAC3D,IAAI,WAAW,YAAY,IAAI;CAC/B,IAAI,CAAC,OAAO,eAAe,MAAM,QAAQ,IAAI,CAC3C,UAAU,QAAQ,GAClB,gBAAgB,CAClB,CAAC;CACD,IAAI,OAAO,YAAY,gBAAgB,CAAC;CACxC,IAAI,kBAAkB,KAAK,SAAS,KAAK,kBAAkB;EACzD,OAAO,KAAK,MAAM,QAAQ,SAAS,EAAE;EACrC,aAAa,KAAK,eAAe,CAAC,QAAQ,SAAS,EAAE;CACvD,IAAI,KAAK;CACT,IAAI,cAAc,WAAW,KAAK,UAAU,WAAW,CAAC;CACxD,IAAI,UAAU,iBAAiB,QAAQ,WAAW,QAAQ,mBAAmB,KAAK,IAAI,iBAAiB,MAAM,eAAe,MAAM,gBAAgB,eAAe,SAAS;CAC1K,IAAI,SAAS,iBAAiB,QAAQ,WAAW,QAAQ,mBAAmB,KAAK,IAAI,KAAK,IAAI,eAAe,YAAY,aAAa,GAAG,kBAAkB,QAAQ,WAAW,QAAQ,oBAAoB,KAAK,IAAI,KAAK,IAAI,gBAAgB,SAAS;EACnP,IAAI;EACJ,CAAC,WAAW,QAAO,CAAE,UAAU,SAAS,QAAQ,CAAC;EACjD,QAAQ,MAAM,SAAS;CACzB;CACA,IAAI,kBAAkB,QAAQ,eAAe,OAAO,QAAQ,gBAAgB,WAAW,QAAQ,cAAc,KAAK,OAAO,GAAG,UAAU,KAAK,MAAM,KAAK,OAAO,IAAI,GAAG,EAAE,IAAI;CAC1K,IAAI,QAAQ;EACV,GAAG;EAEH,kBAAkB;GAChB,KAAK;GACL,SAAS;EACX;EACA,MAAM,UAAU,gBAAgB;EAChC;EACA;EACA,QAAQ,MAAM,uBAAuB,QAAQ,QAAQ,IAAI;EACzD,SAAS;GACP,QAAQ;GACR,QAAQ;GACR,GAAG;EACL;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,gBAAgB;CAChB,OAAO;AACT;AACA,SAAS,mBAAmB;CAC1B,OAAO;AACT;AACA,eAAe,kBAAkB;CAC/B,IAAI,MAAM,UAAU,SAAS,KAAK,UAAU,OAAO,KAAK,IAAI,UAAU,KAAK,QAAQ,IAAI;CACvF,IAAI,UAAU;CACd,KAAK,IAAI,MAAM,QAAQ,GAAG,KAAO;EAC/B,IAAI,SAAS,GAAG,MAAM,gBAAgB,UAAU;EAChD,IAAI,SAAS,QAAQ,GAAG;EACxB,IAAI,WAAW,KAAK;EACpB,MAAM;CACR;CACA,IAAI,OAAO,QAAQ,GAAG;CACtB,SAAW;EACT,IAAI,YAAY,KAAK,MAAM,cAAc;EACzC,IAAI,WAAW,SAAS,GAAG;GACzB,OAAO,KAAK,MAAM,MAAM,SAAS,WAAW,MAAM,CAAC;EACrD;EACA,IAAI,WAAW,QAAQ,IAAI,MAAM,SAAS;EAC1C,IAAI,UAAU,QAAQ,IAAI;EAC1B,IAAI,YAAY,MAAM;EACtB,OAAO;CACT;CACA,MAAM,IAAI,MAAM,wCAAwC,IAAI,uBAAuB;AACrF;AACA,SAAS,WAAW,KAAK;CACvB,IAAI,OAAO,WAAW,QAAQ;CAC9B,KAAK,OAAO,GAAG;CACf,OAAO,KAAK,OAAO,KAAK;AAC1B"}
@@ -1,5 +1,123 @@
1
- import { getPort } from "get-port-please";
1
+ import { createServer } from "node:net";
2
2
 
3
+ const UNSAFE_PORTS = /* @__PURE__ */ new Set([
4
+ 1,
5
+ 7,
6
+ 9,
7
+ 11,
8
+ 13,
9
+ 15,
10
+ 17,
11
+ 19,
12
+ 20,
13
+ 21,
14
+ 22,
15
+ 23,
16
+ 25,
17
+ 37,
18
+ 42,
19
+ 43,
20
+ 53,
21
+ 69,
22
+ 77,
23
+ 79,
24
+ 87,
25
+ 95,
26
+ 101,
27
+ 102,
28
+ 103,
29
+ 104,
30
+ 109,
31
+ 110,
32
+ 111,
33
+ 113,
34
+ 115,
35
+ 117,
36
+ 119,
37
+ 123,
38
+ 135,
39
+ 137,
40
+ 139,
41
+ 143,
42
+ 161,
43
+ 179,
44
+ 389,
45
+ 427,
46
+ 465,
47
+ 512,
48
+ 513,
49
+ 514,
50
+ 515,
51
+ 526,
52
+ 530,
53
+ 531,
54
+ 532,
55
+ 540,
56
+ 548,
57
+ 554,
58
+ 556,
59
+ 563,
60
+ 587,
61
+ 601,
62
+ 636,
63
+ 989,
64
+ 990,
65
+ 993,
66
+ 995,
67
+ 1719,
68
+ 1720,
69
+ 1723,
70
+ 2049,
71
+ 3659,
72
+ 4045,
73
+ 5060,
74
+ 5061,
75
+ 6e3,
76
+ 6566,
77
+ 6665,
78
+ 6666,
79
+ 6667,
80
+ 6668,
81
+ 6669,
82
+ 6697,
83
+ 10080
84
+ ]);
85
+ const HOSTNAME_RE = /^(?!-)[\d.:A-Za-z-]{1,63}(?<!-)$/;
86
+ function tryPort(port, host) {
87
+ return new Promise((resolve) => {
88
+ const server = createServer();
89
+ server.unref();
90
+ server.on("error", () => {
91
+ resolve(false);
92
+ });
93
+ server.listen({
94
+ port,
95
+ host
96
+ }, () => {
97
+ const bound = server.address().port;
98
+ server.close(() => {
99
+ resolve(!UNSAFE_PORTS.has(bound) && bound);
100
+ });
101
+ });
102
+ });
103
+ }
104
+ async function getPort({ port, portRange, host }) {
105
+ if (host && !HOSTNAME_RE.test(host)) {
106
+ host = "127.0.0.1";
107
+ }
108
+ const ports = [port];
109
+ for (let p = portRange[0]; p <= portRange[1]; p++) {
110
+ ports.push(p);
111
+ }
112
+ for (const p of ports) {
113
+ if (!p || UNSAFE_PORTS.has(p)) continue;
114
+ const found = await tryPort(p, host);
115
+ if (found) return found;
116
+ }
117
+ const random = await tryPort(0, host);
118
+ if (random) return random;
119
+ throw new Error(`Unable to find an available port ${host ? `on host ${JSON.stringify(host)}` : "on any host"} (tried ${portRange.join("-")})`);
120
+ }
3
121
  async function getServerOptionsFilled(serverOptions, mode) {
4
122
  const { host = "0.0.0.0", port: requestedPort, https } = serverOptions || {};
5
123
  const envPort = process.env.ONE_PORT ? Number(process.env.ONE_PORT) : void 0;
@@ -1 +1 @@
1
- {"version":3,"file":"getServerOptionsFilled.js","names":[],"sources":["config/getServerOptionsFilled.js"],"sourcesContent":["import { getPort } from \"get-port-please\";\nasync function getServerOptionsFilled(serverOptions, mode) {\n const {\n host = \"0.0.0.0\",\n port: requestedPort,\n https\n } = serverOptions || {};\n const envPort = process.env.ONE_PORT ? Number(process.env.ONE_PORT) : void 0;\n const forcePort = process.env.ONE_FORCE_PORT ? Number(process.env.ONE_FORCE_PORT) : void 0;\n const defaultPort = mode === \"dev\" ? 8081 : 3e3;\n const portToUse = forcePort ?? requestedPort ?? envPort ?? defaultPort;\n const protocol = https ? \"https:\" : \"http:\";\n const isClusterWorker = process.env.ONE_CLUSTER_WORKER === \"1\";\n let port;\n if (isClusterWorker) {\n port = portToUse;\n } else {\n const isExplicitPort = !!(forcePort ?? requestedPort ?? envPort);\n port = await getPort({\n port: portToUse,\n portRange: isExplicitPort ? [portToUse, portToUse] : [portToUse, portToUse + 100],\n host\n });\n if (isExplicitPort && port !== portToUse) {\n throw new Error(\n `Port ${portToUse} is already in use. Either free the port or use a different one.`\n );\n }\n }\n const urlHost = host === \"0.0.0.0\" ? \"localhost\" : host;\n return {\n loadEnv: false,\n compress: true,\n ...serverOptions,\n port,\n host,\n protocol,\n url: `${protocol}//${urlHost}:${port}`\n };\n}\nexport {\n getServerOptionsFilled\n};\n//# sourceMappingURL=getServerOptionsFilled.js.map\n"],"mappings":";;;AACA,eAAe,uBAAuB,eAAe,MAAM;CACzD,MAAM,EACJ,OAAO,WACP,MAAM,eACN,UACE,iBAAiB,CAAC;CACtB,MAAM,UAAU,QAAQ,IAAI,WAAW,OAAO,QAAQ,IAAI,QAAQ,IAAI,KAAK;CAC3E,MAAM,YAAY,QAAQ,IAAI,iBAAiB,OAAO,QAAQ,IAAI,cAAc,IAAI,KAAK;CACzF,MAAM,cAAc,SAAS,QAAQ,OAAO;CAC5C,MAAM,YAAY,aAAa,iBAAiB,WAAW;CAC3D,MAAM,WAAW,QAAQ,WAAW;CACpC,MAAM,kBAAkB,QAAQ,IAAI,uBAAuB;CAC3D,IAAI;CACJ,IAAI,iBAAiB;EACnB,OAAO;CACT,OAAO;EACL,MAAM,iBAAiB,CAAC,EAAE,aAAa,iBAAiB;EACxD,OAAO,MAAM,QAAQ;GACnB,MAAM;GACN,WAAW,iBAAiB,CAAC,WAAW,SAAS,IAAI,CAAC,WAAW,YAAY,GAAG;GAChF;EACF,CAAC;EACD,IAAI,kBAAkB,SAAS,WAAW;GACxC,MAAM,IAAI,MACR,QAAQ,UAAU,iEACpB;EACF;CACF;CACA,MAAM,UAAU,SAAS,YAAY,cAAc;CACnD,OAAO;EACL,SAAS;EACT,UAAU;EACV,GAAG;EACH;EACA;EACA;EACA,KAAK,GAAG,SAAS,IAAI,QAAQ,GAAG;CAClC;AACF"}
1
+ {"version":3,"file":"getServerOptionsFilled.js","names":[],"sources":["config/getServerOptionsFilled.js"],"sourcesContent":["import { createServer } from \"node:net\";\nconst UNSAFE_PORTS = /* @__PURE__ */ new Set([\n 1,\n 7,\n 9,\n 11,\n 13,\n 15,\n 17,\n 19,\n 20,\n 21,\n 22,\n 23,\n 25,\n 37,\n 42,\n 43,\n 53,\n 69,\n 77,\n 79,\n 87,\n 95,\n 101,\n 102,\n 103,\n 104,\n 109,\n 110,\n 111,\n 113,\n 115,\n 117,\n 119,\n 123,\n 135,\n 137,\n 139,\n 143,\n 161,\n 179,\n 389,\n 427,\n 465,\n 512,\n 513,\n 514,\n 515,\n 526,\n 530,\n 531,\n 532,\n 540,\n 548,\n 554,\n 556,\n 563,\n 587,\n 601,\n 636,\n 989,\n 990,\n 993,\n 995,\n 1719,\n 1720,\n 1723,\n 2049,\n 3659,\n 4045,\n 5060,\n 5061,\n 6e3,\n 6566,\n 6665,\n 6666,\n 6667,\n 6668,\n 6669,\n 6697,\n 10080\n]);\nconst HOSTNAME_RE = /^(?!-)[\\d.:A-Za-z-]{1,63}(?<!-)$/;\nfunction tryPort(port, host) {\n return new Promise((resolve) => {\n const server = createServer();\n server.unref();\n server.on(\"error\", () => {\n resolve(false);\n });\n server.listen({ port, host }, () => {\n const bound = server.address().port;\n server.close(() => {\n resolve(!UNSAFE_PORTS.has(bound) && bound);\n });\n });\n });\n}\nasync function getPort({\n port,\n portRange,\n host\n}) {\n if (host && !HOSTNAME_RE.test(host)) {\n host = \"127.0.0.1\";\n }\n const ports = [port];\n for (let p = portRange[0]; p <= portRange[1]; p++) {\n ports.push(p);\n }\n for (const p of ports) {\n if (!p || UNSAFE_PORTS.has(p)) continue;\n const found = await tryPort(p, host);\n if (found) return found;\n }\n const random = await tryPort(0, host);\n if (random) return random;\n throw new Error(\n `Unable to find an available port ${host ? `on host ${JSON.stringify(host)}` : \"on any host\"} (tried ${portRange.join(\"-\")})`\n );\n}\nasync function getServerOptionsFilled(serverOptions, mode) {\n const {\n host = \"0.0.0.0\",\n port: requestedPort,\n https\n } = serverOptions || {};\n const envPort = process.env.ONE_PORT ? Number(process.env.ONE_PORT) : void 0;\n const forcePort = process.env.ONE_FORCE_PORT ? Number(process.env.ONE_FORCE_PORT) : void 0;\n const defaultPort = mode === \"dev\" ? 8081 : 3e3;\n const portToUse = forcePort ?? requestedPort ?? envPort ?? defaultPort;\n const protocol = https ? \"https:\" : \"http:\";\n const isClusterWorker = process.env.ONE_CLUSTER_WORKER === \"1\";\n let port;\n if (isClusterWorker) {\n port = portToUse;\n } else {\n const isExplicitPort = !!(forcePort ?? requestedPort ?? envPort);\n port = await getPort({\n port: portToUse,\n portRange: isExplicitPort ? [portToUse, portToUse] : [portToUse, portToUse + 100],\n host\n });\n if (isExplicitPort && port !== portToUse) {\n throw new Error(\n `Port ${portToUse} is already in use. Either free the port or use a different one.`\n );\n }\n }\n const urlHost = host === \"0.0.0.0\" ? \"localhost\" : host;\n return {\n loadEnv: false,\n compress: true,\n ...serverOptions,\n port,\n host,\n protocol,\n url: `${protocol}//${urlHost}:${port}`\n };\n}\nexport {\n getServerOptionsFilled\n};\n//# sourceMappingURL=getServerOptionsFilled.js.map\n"],"mappings":";;;AACA,MAAM,+BAA+B,IAAI,IAAI;CAC3C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AACD,MAAM,cAAc;AACpB,SAAS,QAAQ,MAAM,MAAM;CAC3B,OAAO,IAAI,SAAS,YAAY;EAC9B,MAAM,SAAS,aAAa;EAC5B,OAAO,MAAM;EACb,OAAO,GAAG,eAAe;GACvB,QAAQ,KAAK;EACf,CAAC;EACD,OAAO,OAAO;GAAE;GAAM;EAAK,SAAS;GAClC,MAAM,QAAQ,OAAO,QAAQ,CAAC,CAAC;GAC/B,OAAO,YAAY;IACjB,QAAQ,CAAC,aAAa,IAAI,KAAK,KAAK,KAAK;GAC3C,CAAC;EACH,CAAC;CACH,CAAC;AACH;AACA,eAAe,QAAQ,EACrB,MACA,WACA,QACC;CACD,IAAI,QAAQ,CAAC,YAAY,KAAK,IAAI,GAAG;EACnC,OAAO;CACT;CACA,MAAM,QAAQ,CAAC,IAAI;CACnB,KAAK,IAAI,IAAI,UAAU,IAAI,KAAK,UAAU,IAAI,KAAK;EACjD,MAAM,KAAK,CAAC;CACd;CACA,KAAK,MAAM,KAAK,OAAO;EACrB,IAAI,CAAC,KAAK,aAAa,IAAI,CAAC,GAAG;EAC/B,MAAM,QAAQ,MAAM,QAAQ,GAAG,IAAI;EACnC,IAAI,OAAO,OAAO;CACpB;CACA,MAAM,SAAS,MAAM,QAAQ,GAAG,IAAI;CACpC,IAAI,QAAQ,OAAO;CACnB,MAAM,IAAI,MACR,oCAAoC,OAAO,WAAW,KAAK,UAAU,IAAI,MAAM,cAAc,UAAU,UAAU,KAAK,GAAG,EAAE,EAC7H;AACF;AACA,eAAe,uBAAuB,eAAe,MAAM;CACzD,MAAM,EACJ,OAAO,WACP,MAAM,eACN,UACE,iBAAiB,CAAC;CACtB,MAAM,UAAU,QAAQ,IAAI,WAAW,OAAO,QAAQ,IAAI,QAAQ,IAAI,KAAK;CAC3E,MAAM,YAAY,QAAQ,IAAI,iBAAiB,OAAO,QAAQ,IAAI,cAAc,IAAI,KAAK;CACzF,MAAM,cAAc,SAAS,QAAQ,OAAO;CAC5C,MAAM,YAAY,aAAa,iBAAiB,WAAW;CAC3D,MAAM,WAAW,QAAQ,WAAW;CACpC,MAAM,kBAAkB,QAAQ,IAAI,uBAAuB;CAC3D,IAAI;CACJ,IAAI,iBAAiB;EACnB,OAAO;CACT,OAAO;EACL,MAAM,iBAAiB,CAAC,EAAE,aAAa,iBAAiB;EACxD,OAAO,MAAM,QAAQ;GACnB,MAAM;GACN,WAAW,iBAAiB,CAAC,WAAW,SAAS,IAAI,CAAC,WAAW,YAAY,GAAG;GAChF;EACF,CAAC;EACD,IAAI,kBAAkB,SAAS,WAAW;GACxC,MAAM,IAAI,MACR,QAAQ,UAAU,iEACpB;EACF;CACF;CACA,MAAM,UAAU,SAAS,YAAY,cAAc;CACnD,OAAO;EACL,SAAS;EACT,UAAU;EACV,GAAG;EACH;EACA;EACA;EACA,KAAK,GAAG,SAAS,IAAI,QAAQ,GAAG;CAClC;AACF"}