create-vxrn 2.0.0-beta.99.1 → 2.6.0

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 (89) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/dist/cjs/create.cjs +19 -19
  3. package/dist/cjs/create.native.cjs +21 -21
  4. package/dist/cjs/create.native.js +21 -21
  5. package/dist/cjs/create.native.js.map +1 -1
  6. package/dist/cjs/helpers/cloneStarter.cjs +4 -4
  7. package/dist/cjs/helpers/cloneStarter.native.cjs +6 -6
  8. package/dist/cjs/helpers/cloneStarter.native.js +6 -6
  9. package/dist/cjs/helpers/cloneStarter.native.js.map +1 -1
  10. package/dist/cjs/helpers/getProjectName.native.cjs +2 -2
  11. package/dist/cjs/helpers/getProjectName.native.js +2 -2
  12. package/dist/cjs/helpers/getProjectName.native.js.map +1 -1
  13. package/dist/cjs/helpers/getTemplateInfo.native.cjs +2 -2
  14. package/dist/cjs/helpers/getTemplateInfo.native.js +2 -2
  15. package/dist/cjs/helpers/getTemplateInfo.native.js.map +1 -1
  16. package/dist/cjs/index.cjs +4 -1
  17. package/dist/cjs/index.native.cjs +4 -1
  18. package/dist/cjs/index.native.js +4 -1
  19. package/dist/cjs/index.native.js.map +1 -1
  20. package/dist/cjs/steps/bare.native.cjs +1 -1
  21. package/dist/cjs/steps/bare.native.js +1 -1
  22. package/dist/cjs/steps/bare.native.js.map +1 -1
  23. package/dist/cjs/steps/fullstack.native.cjs +2 -2
  24. package/dist/cjs/steps/fullstack.native.js +2 -2
  25. package/dist/cjs/steps/fullstack.native.js.map +1 -1
  26. package/dist/cjs/steps/one.native.cjs +3 -3
  27. package/dist/cjs/steps/one.native.js +3 -3
  28. package/dist/cjs/steps/one.native.js.map +1 -1
  29. package/dist/cjs/templates.cjs +1 -1
  30. package/dist/cjs/templates.native.cjs +1 -1
  31. package/dist/cjs/templates.native.js +1 -1
  32. package/dist/cjs/templates.native.js.map +1 -1
  33. package/dist/esm/create.mjs +19 -19
  34. package/dist/esm/create.mjs.map +1 -1
  35. package/dist/esm/create.native.js +21 -21
  36. package/dist/esm/create.native.js.map +1 -1
  37. package/dist/esm/helpers/cloneStarter.mjs +4 -4
  38. package/dist/esm/helpers/cloneStarter.mjs.map +1 -1
  39. package/dist/esm/helpers/cloneStarter.native.js +6 -6
  40. package/dist/esm/helpers/cloneStarter.native.js.map +1 -1
  41. package/dist/esm/helpers/getProjectName.native.js +2 -2
  42. package/dist/esm/helpers/getProjectName.native.js.map +1 -1
  43. package/dist/esm/helpers/getTemplateInfo.native.js +2 -2
  44. package/dist/esm/helpers/getTemplateInfo.native.js.map +1 -1
  45. package/dist/esm/index.mjs +4 -1
  46. package/dist/esm/index.mjs.map +1 -1
  47. package/dist/esm/index.native.js +4 -1
  48. package/dist/esm/index.native.js.map +1 -1
  49. package/dist/esm/steps/bare.native.js +1 -1
  50. package/dist/esm/steps/bare.native.js.map +1 -1
  51. package/dist/esm/steps/fullstack.native.js +2 -2
  52. package/dist/esm/steps/fullstack.native.js.map +1 -1
  53. package/dist/esm/steps/one.native.js +3 -3
  54. package/dist/esm/steps/one.native.js.map +1 -1
  55. package/dist/esm/templates.mjs +1 -1
  56. package/dist/esm/templates.mjs.map +1 -1
  57. package/dist/esm/templates.native.js +1 -1
  58. package/dist/esm/templates.native.js.map +1 -1
  59. package/package.json +10 -8
  60. package/src/create.ts +25 -26
  61. package/src/helpers/cloneStarter.ts +6 -4
  62. package/src/index.ts +1 -1
  63. package/src/templates.ts +1 -1
  64. package/types/create.d.ts +5 -0
  65. package/types/create.d.ts.map +1 -0
  66. package/types/helpers/cloneStarter.d.ts +3 -0
  67. package/types/helpers/cloneStarter.d.ts.map +1 -0
  68. package/types/helpers/getProjectName.d.ts +2 -0
  69. package/types/helpers/getProjectName.d.ts.map +1 -0
  70. package/types/helpers/getTemplateInfo.d.ts +3 -0
  71. package/types/helpers/getTemplateInfo.d.ts.map +1 -0
  72. package/types/helpers/installDependencies.d.ts +2 -0
  73. package/types/helpers/installDependencies.d.ts.map +1 -0
  74. package/types/helpers/validateNpmPackage.d.ts +5 -0
  75. package/types/helpers/validateNpmPackage.d.ts.map +1 -0
  76. package/types/index.d.ts +3 -0
  77. package/types/index.d.ts.map +1 -0
  78. package/types/steps/bare.d.ts +5 -0
  79. package/types/steps/bare.d.ts.map +1 -0
  80. package/types/steps/fullstack.d.ts +4 -0
  81. package/types/steps/fullstack.d.ts.map +1 -0
  82. package/types/steps/one.d.ts +4 -0
  83. package/types/steps/one.d.ts.map +1 -0
  84. package/types/steps/types.d.ts +9 -0
  85. package/types/steps/types.d.ts.map +1 -0
  86. package/types/templates.d.ts +41 -0
  87. package/types/templates.d.ts.map +1 -0
  88. package/dist/esm/index.js +0 -72
  89. package/dist/esm/index.js.map +0 -1
@@ -6,8 +6,9 @@ import { exec, execPromiseQuiet } from "@vxrn/utils";
6
6
 
7
7
  var home = homedir();
8
8
  var vxrnDir = join(home, ".vxrn");
9
- var cloneStarter = async function(template, resolvedProjectPath) {
10
- var dir = await setupVxrnDotDir(template, join(vxrnDir, "vxrn", template.repo.url.split("/").at(-1)));
9
+ var cloneStarter = async function cloneStarter2(template, resolvedProjectPath) {
10
+ var branch = template.repo.branch;
11
+ var dir = await setupVxrnDotDir(template, branch, join(vxrnDir, "vxrn", `${template.repo.url.split("/").at(-1)}-${branch}`));
11
12
  if (!await pathExists(dir)) {
12
13
  console.error(`Missing template for ${template.value} in ${dir}`);
13
14
  process.exit(1);
@@ -18,9 +19,8 @@ var cloneStarter = async function(template, resolvedProjectPath) {
18
19
  await execPromiseQuiet(`git init`, { cwd: resolvedProjectPath });
19
20
  }
20
21
  };
21
- async function setupVxrnDotDir(template, targetGitDir) {
22
- var isRetry = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
23
- var branch = template.repo.branch;
22
+ async function setupVxrnDotDir(template, branch, targetGitDir) {
23
+ var isRetry = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;
24
24
  await ensureDir(vxrnDir);
25
25
  var isInSubDir = template.repo.dir.length > 0;
26
26
  if (!await pathExists(targetGitDir)) {
@@ -77,7 +77,7 @@ ${err.stack}` : "trying from fresh."}`);
77
77
  process.exit(1);
78
78
  }
79
79
  await rimraf(targetGitDir);
80
- return await setupVxrnDotDir(template, targetGitDir, true);
80
+ return await setupVxrnDotDir(template, branch, targetGitDir, true);
81
81
  }
82
82
  }
83
83
  function isInGitRepo() {
@@ -1 +1 @@
1
- {"version":3,"file":"cloneStarter.native.js","names":[],"sources":["esm/helpers/cloneStarter.native.js"],"sourcesContent":["import { copy, ensureDir, pathExists } from \"fs-extra\";\nimport { homedir } from \"os\";\nimport { join, sep } from \"path\";\nimport { rimraf } from \"rimraf\";\nimport { exec, execPromiseQuiet } from \"@vxrn/utils\";\nvar home = homedir();\nvar vxrnDir = join(home, \".vxrn\");\nvar cloneStarter = async function(template, resolvedProjectPath) {\n var dir = await setupVxrnDotDir(template, join(vxrnDir, \"vxrn\", template.repo.url.split(\"/\").at(-1)));\n if (!await pathExists(dir)) {\n console.error(`Missing template for ${template.value} in ${dir}`);\n process.exit(1);\n }\n await copy(dir, resolvedProjectPath);\n await rimraf(join(resolvedProjectPath, \".git\"));\n if (!isInGitRepo()) {\n await execPromiseQuiet(`git init`, {\n cwd: resolvedProjectPath\n });\n }\n};\nasync function setupVxrnDotDir(template, targetGitDir) {\n var isRetry = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;\n var branch = template.repo.branch;\n await ensureDir(vxrnDir);\n var isInSubDir = template.repo.dir.length > 0;\n if (!await pathExists(targetGitDir)) {\n var sourceGitRepo = template.repo.url;\n var sourceGitRepoSshFallback = template.repo.sshFallback;\n var cmd = `git clone --branch ${branch} ${isInSubDir ? \"--depth 1 --sparse --filter=blob:none \" : \"\"}${sourceGitRepo} \"${targetGitDir}\"`;\n try {\n await execPromiseQuiet(cmd);\n } catch (error) {\n if (cmd.includes(\"https://\")) {\n console.info(`https failed - trying with ssh now...`);\n var sshCmd = cmd.replace(sourceGitRepo, sourceGitRepoSshFallback);\n await execPromiseQuiet(sshCmd);\n } else {\n throw error;\n }\n }\n } else {\n if (!await pathExists(join(targetGitDir, \".git\"))) {\n console.error(`Corrupt vxrn directory, please delete ${targetGitDir} folder and re-run`);\n process.exit(1);\n }\n }\n if (isInSubDir) {\n try {\n var _template_repo_dir_join;\n var cmd1 = `git sparse-checkout set ${(_template_repo_dir_join = template.repo.dir.join(sep)) !== null && _template_repo_dir_join !== void 0 ? _template_repo_dir_join : \".\"}`;\n await execPromiseQuiet(cmd1, {\n cwd: targetGitDir\n });\n } catch (err) {\n if (`${err}`.includes(`code 128`)) {\n console.warn(`\\u26A0\\uFE0F Note: you need to be sure you can git clone from Github, your SSH key isn't valid.\n \n - See: https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account\n\n`);\n }\n throw err;\n }\n }\n try {\n var cmd2 = `git pull --rebase --allow-unrelated-histories --depth 1 origin ${branch}`;\n await execPromiseQuiet(cmd2, {\n cwd: targetGitDir\n });\n console.info();\n var dir = join(targetGitDir, ...template.repo.dir);\n if (!await pathExists(dir)) {\n throw new Error(`Re-clone...`);\n }\n return dir;\n } catch (err) {\n if (isRetry) {\n console.info(`Error updating: ${err.message} ${isRetry ? `failing.\n${err.stack}` : \"trying from fresh.\"}`);\n console.info(`Please file an issue: https://github.com/onejs/one/issues/new?assignees=&labels=&template=bug_report.md&title=`);\n process.exit(1);\n }\n await rimraf(targetGitDir);\n return await setupVxrnDotDir(template, targetGitDir, true);\n }\n}\nfunction isInGitRepo() {\n try {\n exec(\"git rev-parse --is-inside-work-tree\", {\n stdio: \"ignore\"\n });\n return true;\n } catch (error) {\n return false;\n }\n}\nexport {\n cloneStarter\n};\n//# sourceMappingURL=cloneStarter.js.map\n"],"mappings":";;;;;;;AAKA,IAAI,OAAO,QAAQ;AACnB,IAAI,UAAU,KAAK,MAAM,OAAO;AAChC,IAAI,eAAe,eAAe,UAAU,qBAAqB;CAC/D,IAAI,MAAM,MAAM,gBAAgB,UAAU,KAAK,SAAS,QAAQ,SAAS,KAAK,IAAI,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACpG,IAAI,CAAC,MAAM,WAAW,GAAG,GAAG;EAC1B,QAAQ,MAAM,wBAAwB,SAAS,MAAM,MAAM,KAAK;EAChE,QAAQ,KAAK,CAAC;CAChB;CACA,MAAM,KAAK,KAAK,mBAAmB;CACnC,MAAM,OAAO,KAAK,qBAAqB,MAAM,CAAC;CAC9C,IAAI,CAAC,YAAY,GAAG;EAClB,MAAM,iBAAiB,YAAY,EACjC,KAAK,oBACP,CAAC;CACH;AACF;AACA,eAAe,gBAAgB,UAAU,cAAc;CACrD,IAAI,UAAU,UAAU,SAAS,KAAK,UAAU,OAAO,KAAK,IAAI,UAAU,KAAK;CAC/E,IAAI,SAAS,SAAS,KAAK;CAC3B,MAAM,UAAU,OAAO;CACvB,IAAI,aAAa,SAAS,KAAK,IAAI,SAAS;CAC5C,IAAI,CAAC,MAAM,WAAW,YAAY,GAAG;EACnC,IAAI,gBAAgB,SAAS,KAAK;EAClC,IAAI,2BAA2B,SAAS,KAAK;EAC7C,IAAI,MAAM,sBAAsB,OAAO,GAAG,aAAa,2CAA2C,KAAK,cAAc,IAAI,aAAa;EACtI,IAAI;GACF,MAAM,iBAAiB,GAAG;EAC5B,SAAS,OAAO;GACd,IAAI,IAAI,SAAS,UAAU,GAAG;IAC5B,QAAQ,KAAK,uCAAuC;IACpD,IAAI,SAAS,IAAI,QAAQ,eAAe,wBAAwB;IAChE,MAAM,iBAAiB,MAAM;GAC/B,OAAO;IACL,MAAM;GACR;EACF;CACF,OAAO;EACL,IAAI,CAAC,MAAM,WAAW,KAAK,cAAc,MAAM,CAAC,GAAG;GACjD,QAAQ,MAAM,yCAAyC,aAAa,mBAAmB;GACvF,QAAQ,KAAK,CAAC;EAChB;CACF;CACA,IAAI,YAAY;EACd,IAAI;GACF,IAAI;GACJ,IAAI,OAAO,4BAA4B,0BAA0B,SAAS,KAAK,IAAI,KAAK,GAAG,OAAO,QAAQ,4BAA4B,KAAK,IAAI,0BAA0B;GACzK,MAAM,iBAAiB,MAAM,EAC3B,KAAK,aACP,CAAC;EACH,SAAS,KAAK;GACZ,IAAI,GAAG,MAAM,SAAS,UAAU,GAAG;IACjC,QAAQ,KAAK;;;;CAIpB;GACK;GACA,MAAM;EACR;CACF;CACA,IAAI;EACF,IAAI,OAAO,kEAAkE;EAC7E,MAAM,iBAAiB,MAAM,EAC3B,KAAK,aACP,CAAC;EACD,QAAQ,KAAK;EACb,IAAI,MAAM,KAAK,cAAc,GAAG,SAAS,KAAK,GAAG;EACjD,IAAI,CAAC,MAAM,WAAW,GAAG,GAAG;GAC1B,MAAM,IAAI,MAAM,aAAa;EAC/B;EACA,OAAO;CACT,SAAS,KAAK;EACZ,IAAI,SAAS;GACX,QAAQ,KAAK,mBAAmB,IAAI,QAAQ,GAAG,UAAU;EAC7D,IAAI,UAAU,sBAAsB;GAChC,QAAQ,KAAK,gHAAgH;GAC7H,QAAQ,KAAK,CAAC;EAChB;EACA,MAAM,OAAO,YAAY;EACzB,OAAO,MAAM,gBAAgB,UAAU,cAAc,IAAI;CAC3D;AACF;AACA,SAAS,cAAc;CACrB,IAAI;EACF,KAAK,uCAAuC,EAC1C,OAAO,SACT,CAAC;EACD,OAAO;CACT,SAAS,OAAO;EACd,OAAO;CACT;AACF"}
1
+ {"version":3,"file":"cloneStarter.native.js","names":[],"sources":["esm/helpers/cloneStarter.native.js"],"sourcesContent":["import { copy, ensureDir, pathExists } from \"fs-extra\";\nimport { homedir } from \"os\";\nimport { join, sep } from \"path\";\nimport { rimraf } from \"rimraf\";\nimport { exec, execPromiseQuiet } from \"@vxrn/utils\";\nvar home = homedir();\nvar vxrnDir = join(home, \".vxrn\");\nvar cloneStarter = async function cloneStarter2(template, resolvedProjectPath) {\n var branch = template.repo.branch;\n var dir = await setupVxrnDotDir(template, branch, join(vxrnDir, \"vxrn\", `${template.repo.url.split(\"/\").at(-1)}-${branch}`));\n if (!await pathExists(dir)) {\n console.error(`Missing template for ${template.value} in ${dir}`);\n process.exit(1);\n }\n await copy(dir, resolvedProjectPath);\n await rimraf(join(resolvedProjectPath, \".git\"));\n if (!isInGitRepo()) {\n await execPromiseQuiet(`git init`, {\n cwd: resolvedProjectPath\n });\n }\n};\nasync function setupVxrnDotDir(template, branch, targetGitDir) {\n var isRetry = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;\n await ensureDir(vxrnDir);\n var isInSubDir = template.repo.dir.length > 0;\n if (!await pathExists(targetGitDir)) {\n var sourceGitRepo = template.repo.url;\n var sourceGitRepoSshFallback = template.repo.sshFallback;\n var cmd = `git clone --branch ${branch} ${isInSubDir ? \"--depth 1 --sparse --filter=blob:none \" : \"\"}${sourceGitRepo} \"${targetGitDir}\"`;\n try {\n await execPromiseQuiet(cmd);\n } catch (error) {\n if (cmd.includes(\"https://\")) {\n console.info(`https failed - trying with ssh now...`);\n var sshCmd = cmd.replace(sourceGitRepo, sourceGitRepoSshFallback);\n await execPromiseQuiet(sshCmd);\n } else {\n throw error;\n }\n }\n } else {\n if (!await pathExists(join(targetGitDir, \".git\"))) {\n console.error(`Corrupt vxrn directory, please delete ${targetGitDir} folder and re-run`);\n process.exit(1);\n }\n }\n if (isInSubDir) {\n try {\n var _template_repo_dir_join;\n var cmd1 = `git sparse-checkout set ${(_template_repo_dir_join = template.repo.dir.join(sep)) !== null && _template_repo_dir_join !== void 0 ? _template_repo_dir_join : \".\"}`;\n await execPromiseQuiet(cmd1, {\n cwd: targetGitDir\n });\n } catch (err) {\n if (`${err}`.includes(`code 128`)) {\n console.warn(`\\u26A0\\uFE0F Note: you need to be sure you can git clone from Github, your SSH key isn't valid.\n \n - See: https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account\n\n`);\n }\n throw err;\n }\n }\n try {\n var cmd2 = `git pull --rebase --allow-unrelated-histories --depth 1 origin ${branch}`;\n await execPromiseQuiet(cmd2, {\n cwd: targetGitDir\n });\n console.info();\n var dir = join(targetGitDir, ...template.repo.dir);\n if (!await pathExists(dir)) {\n throw new Error(`Re-clone...`);\n }\n return dir;\n } catch (err) {\n if (isRetry) {\n console.info(`Error updating: ${err.message} ${isRetry ? `failing.\n${err.stack}` : \"trying from fresh.\"}`);\n console.info(`Please file an issue: https://github.com/onejs/one/issues/new?assignees=&labels=&template=bug_report.md&title=`);\n process.exit(1);\n }\n await rimraf(targetGitDir);\n return await setupVxrnDotDir(template, branch, targetGitDir, true);\n }\n}\nfunction isInGitRepo() {\n try {\n exec(\"git rev-parse --is-inside-work-tree\", {\n stdio: \"ignore\"\n });\n return true;\n } catch (error) {\n return false;\n }\n}\nexport {\n cloneStarter\n};\n//# sourceMappingURL=cloneStarter.js.map\n"],"mappings":";;;;;;;AAKA,IAAI,OAAO,QAAQ;AACnB,IAAI,UAAU,KAAK,MAAM,OAAO;AAChC,IAAI,eAAe,eAAe,cAAc,UAAU,qBAAqB;CAC7E,IAAI,SAAS,SAAS,KAAK;CAC3B,IAAI,MAAM,MAAM,gBAAgB,UAAU,QAAQ,KAAK,SAAS,QAAQ,GAAG,SAAS,KAAK,IAAI,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC;CAC3H,IAAI,CAAC,MAAM,WAAW,GAAG,GAAG;EAC1B,QAAQ,MAAM,wBAAwB,SAAS,MAAM,MAAM,KAAK;EAChE,QAAQ,KAAK,CAAC;CAChB;CACA,MAAM,KAAK,KAAK,mBAAmB;CACnC,MAAM,OAAO,KAAK,qBAAqB,MAAM,CAAC;CAC9C,IAAI,CAAC,YAAY,GAAG;EAClB,MAAM,iBAAiB,YAAY,EACjC,KAAK,oBACP,CAAC;CACH;AACF;AACA,eAAe,gBAAgB,UAAU,QAAQ,cAAc;CAC7D,IAAI,UAAU,UAAU,SAAS,KAAK,UAAU,OAAO,KAAK,IAAI,UAAU,KAAK;CAC/E,MAAM,UAAU,OAAO;CACvB,IAAI,aAAa,SAAS,KAAK,IAAI,SAAS;CAC5C,IAAI,CAAC,MAAM,WAAW,YAAY,GAAG;EACnC,IAAI,gBAAgB,SAAS,KAAK;EAClC,IAAI,2BAA2B,SAAS,KAAK;EAC7C,IAAI,MAAM,sBAAsB,OAAO,GAAG,aAAa,2CAA2C,KAAK,cAAc,IAAI,aAAa;EACtI,IAAI;GACF,MAAM,iBAAiB,GAAG;EAC5B,SAAS,OAAO;GACd,IAAI,IAAI,SAAS,UAAU,GAAG;IAC5B,QAAQ,KAAK,uCAAuC;IACpD,IAAI,SAAS,IAAI,QAAQ,eAAe,wBAAwB;IAChE,MAAM,iBAAiB,MAAM;GAC/B,OAAO;IACL,MAAM;GACR;EACF;CACF,OAAO;EACL,IAAI,CAAC,MAAM,WAAW,KAAK,cAAc,MAAM,CAAC,GAAG;GACjD,QAAQ,MAAM,yCAAyC,aAAa,mBAAmB;GACvF,QAAQ,KAAK,CAAC;EAChB;CACF;CACA,IAAI,YAAY;EACd,IAAI;GACF,IAAI;GACJ,IAAI,OAAO,4BAA4B,0BAA0B,SAAS,KAAK,IAAI,KAAK,GAAG,OAAO,QAAQ,4BAA4B,KAAK,IAAI,0BAA0B;GACzK,MAAM,iBAAiB,MAAM,EAC3B,KAAK,aACP,CAAC;EACH,SAAS,KAAK;GACZ,IAAI,GAAG,MAAM,SAAS,UAAU,GAAG;IACjC,QAAQ,KAAK;;;;CAIpB;GACK;GACA,MAAM;EACR;CACF;CACA,IAAI;EACF,IAAI,OAAO,kEAAkE;EAC7E,MAAM,iBAAiB,MAAM,EAC3B,KAAK,aACP,CAAC;EACD,QAAQ,KAAK;EACb,IAAI,MAAM,KAAK,cAAc,GAAG,SAAS,KAAK,GAAG;EACjD,IAAI,CAAC,MAAM,WAAW,GAAG,GAAG;GAC1B,MAAM,IAAI,MAAM,aAAa;EAC/B;EACA,OAAO;CACT,SAAS,KAAK;EACZ,IAAI,SAAS;GACX,QAAQ,KAAK,mBAAmB,IAAI,QAAQ,GAAG,UAAU;EAC7D,IAAI,UAAU,sBAAsB;GAChC,QAAQ,KAAK,gHAAgH;GAC7H,QAAQ,KAAK,CAAC;EAChB;EACA,MAAM,OAAO,YAAY;EACzB,OAAO,MAAM,gBAAgB,UAAU,QAAQ,cAAc,IAAI;CACnE;AACF;AACA,SAAS,cAAc;CACrB,IAAI;EACF,KAAK,uCAAuC,EAC1C,OAAO,SACT,CAAC;EACD,OAAO;CACT,SAAS,OAAO;EACd,OAAO;CACT;AACF"}
@@ -3,7 +3,7 @@ import ansis from "ansis";
3
3
  import prompts from "prompts";
4
4
  import { validateNpmName } from "./validateNpmPackage.native.js";
5
5
 
6
- var getProjectName = async function(projectPath) {
6
+ var getProjectName = async function getProjectName2(projectPath) {
7
7
  if (typeof projectPath === "string") {
8
8
  projectPath = projectPath.trim();
9
9
  }
@@ -17,7 +17,7 @@ var getProjectName = async function(projectPath) {
17
17
  name: "path",
18
18
  message: "Name",
19
19
  initial: defaultName,
20
- validate: function(name2) {
20
+ validate: function validate(name2) {
21
21
  var validation = validateNpmName(path.basename(path.resolve(name2)));
22
22
  if (validation.valid) {
23
23
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"getProjectName.native.js","names":[],"sources":["esm/helpers/getProjectName.native.js"],"sourcesContent":["import path from \"path\";\nimport ansis from \"ansis\";\nimport prompts from \"prompts\";\nimport { validateNpmName } from \"./validateNpmPackage\";\nvar getProjectName = async function(projectPath) {\n if (typeof projectPath === \"string\") {\n projectPath = projectPath.trim();\n }\n console.info();\n console.info(ansis.yellow(` Hello. Let's create a new ${ansis.yellowBright(`\\u2460`)} app...`));\n console.info();\n if (!projectPath) {\n var defaultName = \"hello-world\";\n var res = await prompts({\n type: \"text\",\n name: \"path\",\n message: \"Name\",\n initial: defaultName,\n validate: function(name2) {\n var validation = validateNpmName(path.basename(path.resolve(name2)));\n if (validation.valid) {\n return true;\n }\n return \"Invalid name: \" + validation.problems[0];\n }\n });\n if (typeof res.path === \"string\") {\n projectPath = res.path.trim() || defaultName;\n }\n }\n if (!projectPath) {\n var name = `create-vxrn`;\n console.info();\n console.info(\"Please specify the project directory:\");\n console.info(` ${ansis.cyan(name)} ${ansis.green(\"<project-directory>\")}`);\n console.info();\n console.info(\"For example:\");\n console.info(` ${ansis.cyan(name)} ${ansis.green(\"my-app\")}`);\n console.info();\n console.info(`Run ${ansis.cyan(`${name} --help`)} to see all options.`);\n process.exit(1);\n }\n return projectPath;\n};\nexport {\n getProjectName\n};\n//# sourceMappingURL=getProjectName.js.map\n"],"mappings":";;;;;;AAIA,IAAI,iBAAiB,eAAe,aAAa;CAC/C,IAAI,OAAO,gBAAgB,UAAU;EACnC,cAAc,YAAY,KAAK;CACjC;CACA,QAAQ,KAAK;CACb,QAAQ,KAAK,MAAM,OAAO,+BAA+B,MAAM,aAAa,QAAQ,EAAE,SAAS,CAAC;CAChG,QAAQ,KAAK;CACb,IAAI,CAAC,aAAa;EAChB,IAAI,cAAc;EAClB,IAAI,MAAM,MAAM,QAAQ;GACtB,MAAM;GACN,MAAM;GACN,SAAS;GACT,SAAS;GACT,UAAU,SAAS,OAAO;IACxB,IAAI,aAAa,gBAAgB,KAAK,SAAS,KAAK,QAAQ,KAAK,CAAC,CAAC;IACnE,IAAI,WAAW,OAAO;KACpB,OAAO;IACT;IACA,OAAO,mBAAmB,WAAW,SAAS;GAChD;EACF,CAAC;EACD,IAAI,OAAO,IAAI,SAAS,UAAU;GAChC,cAAc,IAAI,KAAK,KAAK,KAAK;EACnC;CACF;CACA,IAAI,CAAC,aAAa;EAChB,IAAI,OAAO;EACX,QAAQ,KAAK;EACb,QAAQ,KAAK,uCAAuC;EACpD,QAAQ,KAAK,KAAK,MAAM,KAAK,IAAI,EAAE,GAAG,MAAM,MAAM,qBAAqB,GAAG;EAC1E,QAAQ,KAAK;EACb,QAAQ,KAAK,cAAc;EAC3B,QAAQ,KAAK,KAAK,MAAM,KAAK,IAAI,EAAE,GAAG,MAAM,MAAM,QAAQ,GAAG;EAC7D,QAAQ,KAAK;EACb,QAAQ,KAAK,OAAO,MAAM,KAAK,GAAG,KAAK,QAAQ,EAAE,qBAAqB;EACtE,QAAQ,KAAK,CAAC;CAChB;CACA,OAAO;AACT"}
1
+ {"version":3,"file":"getProjectName.native.js","names":[],"sources":["esm/helpers/getProjectName.native.js"],"sourcesContent":["import path from \"path\";\nimport ansis from \"ansis\";\nimport prompts from \"prompts\";\nimport { validateNpmName } from \"./validateNpmPackage\";\nvar getProjectName = async function getProjectName2(projectPath) {\n if (typeof projectPath === \"string\") {\n projectPath = projectPath.trim();\n }\n console.info();\n console.info(ansis.yellow(` Hello. Let's create a new ${ansis.yellowBright(`\\u2460`)} app...`));\n console.info();\n if (!projectPath) {\n var defaultName = \"hello-world\";\n var res = await prompts({\n type: \"text\",\n name: \"path\",\n message: \"Name\",\n initial: defaultName,\n validate: function validate(name2) {\n var validation = validateNpmName(path.basename(path.resolve(name2)));\n if (validation.valid) {\n return true;\n }\n return \"Invalid name: \" + validation.problems[0];\n }\n });\n if (typeof res.path === \"string\") {\n projectPath = res.path.trim() || defaultName;\n }\n }\n if (!projectPath) {\n var name = `create-vxrn`;\n console.info();\n console.info(\"Please specify the project directory:\");\n console.info(` ${ansis.cyan(name)} ${ansis.green(\"<project-directory>\")}`);\n console.info();\n console.info(\"For example:\");\n console.info(` ${ansis.cyan(name)} ${ansis.green(\"my-app\")}`);\n console.info();\n console.info(`Run ${ansis.cyan(`${name} --help`)} to see all options.`);\n process.exit(1);\n }\n return projectPath;\n};\nexport {\n getProjectName\n};\n//# sourceMappingURL=getProjectName.js.map\n"],"mappings":";;;;;;AAIA,IAAI,iBAAiB,eAAe,gBAAgB,aAAa;CAC/D,IAAI,OAAO,gBAAgB,UAAU;EACnC,cAAc,YAAY,KAAK;CACjC;CACA,QAAQ,KAAK;CACb,QAAQ,KAAK,MAAM,OAAO,+BAA+B,MAAM,aAAa,QAAQ,EAAE,SAAS,CAAC;CAChG,QAAQ,KAAK;CACb,IAAI,CAAC,aAAa;EAChB,IAAI,cAAc;EAClB,IAAI,MAAM,MAAM,QAAQ;GACtB,MAAM;GACN,MAAM;GACN,SAAS;GACT,SAAS;GACT,UAAU,SAAS,SAAS,OAAO;IACjC,IAAI,aAAa,gBAAgB,KAAK,SAAS,KAAK,QAAQ,KAAK,CAAC,CAAC;IACnE,IAAI,WAAW,OAAO;KACpB,OAAO;IACT;IACA,OAAO,mBAAmB,WAAW,SAAS;GAChD;EACF,CAAC;EACD,IAAI,OAAO,IAAI,SAAS,UAAU;GAChC,cAAc,IAAI,KAAK,KAAK,KAAK;EACnC;CACF;CACA,IAAI,CAAC,aAAa;EAChB,IAAI,OAAO;EACX,QAAQ,KAAK;EACb,QAAQ,KAAK,uCAAuC;EACpD,QAAQ,KAAK,KAAK,MAAM,KAAK,IAAI,EAAE,GAAG,MAAM,MAAM,qBAAqB,GAAG;EAC1E,QAAQ,KAAK;EACb,QAAQ,KAAK,cAAc;EAC3B,QAAQ,KAAK,KAAK,MAAM,KAAK,IAAI,EAAE,GAAG,MAAM,MAAM,QAAQ,GAAG;EAC7D,QAAQ,KAAK;EACb,QAAQ,KAAK,OAAO,MAAM,KAAK,GAAG,KAAK,QAAQ,EAAE,qBAAqB;EACtE,QAAQ,KAAK,CAAC;CAChB;CACA,OAAO;AACT"}
@@ -5,7 +5,7 @@ var validTemplates = templates.map(function(param) {
5
5
  var { value } = param;
6
6
  return value;
7
7
  }).join(", ");
8
- var getTemplateInfo = async function(template) {
8
+ var getTemplateInfo = async function getTemplateInfo2(template) {
9
9
  var res = getValidTemplate(template);
10
10
  if (template && !res) {
11
11
  console.warn(`template ${template} is not valid. valid options: ${validTemplates}`);
@@ -29,7 +29,7 @@ var getTemplateInfo = async function(template) {
29
29
  }
30
30
  return res;
31
31
  };
32
- var getValidTemplate = function(template) {
32
+ var getValidTemplate = function getValidTemplate2(template) {
33
33
  return typeof template === "string" && templates.find(function(param) {
34
34
  var { value } = param;
35
35
  return value === template;
@@ -1 +1 @@
1
- {"version":3,"file":"getTemplateInfo.native.js","names":[],"sources":["esm/helpers/getTemplateInfo.native.js"],"sourcesContent":["import prompts from \"prompts\";\nimport { templates } from \"../templates\";\nvar validTemplates = templates.map(function(param) {\n var { value } = param;\n return value;\n}).join(\", \");\nvar getTemplateInfo = async function(template) {\n var res = getValidTemplate(template);\n if (template && !res) {\n console.warn(`template ${template} is not valid. valid options: ${validTemplates}`);\n process.exit(1);\n }\n if (!res) {\n console.info();\n template = (await prompts({\n name: \"template\",\n type: \"select\",\n message: `Template`,\n choices: templates.filter(function(t) {\n return !t.hidden;\n })\n })).template;\n }\n res = getValidTemplate(`${template}`);\n if (!res) {\n console.warn(`template ${template} is not valid. valid options: ${validTemplates}`);\n process.exit(1);\n }\n return res;\n};\nvar getValidTemplate = function(template) {\n return typeof template === \"string\" && templates.find(function(param) {\n var { value } = param;\n return value === template;\n });\n};\nexport {\n getTemplateInfo\n};\n//# sourceMappingURL=getTemplateInfo.js.map\n"],"mappings":";;;;AAEA,IAAI,iBAAiB,UAAU,IAAI,SAAS,OAAO;CACjD,IAAI,EAAE,UAAU;CAChB,OAAO;AACT,CAAC,CAAC,CAAC,KAAK,IAAI;AACZ,IAAI,kBAAkB,eAAe,UAAU;CAC7C,IAAI,MAAM,iBAAiB,QAAQ;CACnC,IAAI,YAAY,CAAC,KAAK;EACpB,QAAQ,KAAK,YAAY,SAAS,gCAAgC,gBAAgB;EAClF,QAAQ,KAAK,CAAC;CAChB;CACA,IAAI,CAAC,KAAK;EACR,QAAQ,KAAK;EACb,YAAY,MAAM,QAAQ;GACxB,MAAM;GACN,MAAM;GACN,SAAS;GACT,SAAS,UAAU,OAAO,SAAS,GAAG;IACpC,OAAO,CAAC,EAAE;GACZ,CAAC;EACH,CAAC,EAAC,CAAE;CACN;CACA,MAAM,iBAAiB,GAAG,UAAU;CACpC,IAAI,CAAC,KAAK;EACR,QAAQ,KAAK,YAAY,SAAS,gCAAgC,gBAAgB;EAClF,QAAQ,KAAK,CAAC;CAChB;CACA,OAAO;AACT;AACA,IAAI,mBAAmB,SAAS,UAAU;CACxC,OAAO,OAAO,aAAa,YAAY,UAAU,KAAK,SAAS,OAAO;EACpE,IAAI,EAAE,UAAU;EAChB,OAAO,UAAU;CACnB,CAAC;AACH"}
1
+ {"version":3,"file":"getTemplateInfo.native.js","names":[],"sources":["esm/helpers/getTemplateInfo.native.js"],"sourcesContent":["import prompts from \"prompts\";\nimport { templates } from \"../templates\";\nvar validTemplates = templates.map(function(param) {\n var { value } = param;\n return value;\n}).join(\", \");\nvar getTemplateInfo = async function getTemplateInfo2(template) {\n var res = getValidTemplate(template);\n if (template && !res) {\n console.warn(`template ${template} is not valid. valid options: ${validTemplates}`);\n process.exit(1);\n }\n if (!res) {\n console.info();\n template = (await prompts({\n name: \"template\",\n type: \"select\",\n message: `Template`,\n choices: templates.filter(function(t) {\n return !t.hidden;\n })\n })).template;\n }\n res = getValidTemplate(`${template}`);\n if (!res) {\n console.warn(`template ${template} is not valid. valid options: ${validTemplates}`);\n process.exit(1);\n }\n return res;\n};\nvar getValidTemplate = function getValidTemplate2(template) {\n return typeof template === \"string\" && templates.find(function(param) {\n var { value } = param;\n return value === template;\n });\n};\nexport {\n getTemplateInfo\n};\n//# sourceMappingURL=getTemplateInfo.js.map\n"],"mappings":";;;;AAEA,IAAI,iBAAiB,UAAU,IAAI,SAAS,OAAO;CACjD,IAAI,EAAE,UAAU;CAChB,OAAO;AACT,CAAC,CAAC,CAAC,KAAK,IAAI;AACZ,IAAI,kBAAkB,eAAe,iBAAiB,UAAU;CAC9D,IAAI,MAAM,iBAAiB,QAAQ;CACnC,IAAI,YAAY,CAAC,KAAK;EACpB,QAAQ,KAAK,YAAY,SAAS,gCAAgC,gBAAgB;EAClF,QAAQ,KAAK,CAAC;CAChB;CACA,IAAI,CAAC,KAAK;EACR,QAAQ,KAAK;EACb,YAAY,MAAM,QAAQ;GACxB,MAAM;GACN,MAAM;GACN,SAAS;GACT,SAAS,UAAU,OAAO,SAAS,GAAG;IACpC,OAAO,CAAC,EAAE;GACZ,CAAC;EACH,CAAC,EAAC,CAAE;CACN;CACA,MAAM,iBAAiB,GAAG,UAAU;CACpC,IAAI,CAAC,KAAK;EACR,QAAQ,KAAK,YAAY,SAAS,gCAAgC,gBAAgB;EAClF,QAAQ,KAAK,CAAC;CAChB;CACA,OAAO;AACT;AACA,IAAI,mBAAmB,SAAS,kBAAkB,UAAU;CAC1D,OAAO,OAAO,aAAa,YAAY,UAAU,KAAK,SAAS,OAAO;EACpE,IAAI,EAAE,UAAU;EAChB,OAAO,UAAU;CACnB,CAAC;AACH"}
@@ -49,7 +49,10 @@ const main = defineCommand({
49
49
  }
50
50
  console.info();
51
51
  console.info(ansis.bold("Creating vxrn app..."));
52
- await create({ template: args.template });
52
+ await create({
53
+ name: args.directory,
54
+ template: args.template
55
+ });
53
56
  }
54
57
  });
55
58
  runMain(main);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["esm/index.js"],"sourcesContent":["#!/usr/bin/env node\nimport ansis from \"ansis\";\nimport { defineCommand, runMain } from \"citty\";\nimport path from \"node:path\";\nimport { cwd } from \"node:process\";\nimport { getTemplateInfo } from \"./helpers/getTemplateInfo\";\nimport { create } from \"./create\";\nimport { fileURLToPath } from \"node:url\";\nimport { readFileSync } from \"node:fs\";\nfunction exit() {\n process.exit(0);\n}\nprocess.on(\"SIGTERM\", exit);\nprocess.on(\"SIGINT\", exit);\nconst main = defineCommand({\n meta: {\n name: \"main\",\n version: \"0.0.0\",\n description: \"Welcome to vxrn\"\n },\n args: {\n directory: {\n type: \"positional\",\n description: \"Directory to copy into\",\n default: \"\"\n },\n template: {\n type: \"string\",\n required: false,\n description: \"Choose a template in advance (avoid selection screen).\"\n },\n info: {\n type: \"boolean\",\n description: \"Output the post-install instructions for the template.\"\n }\n },\n async run({ args }) {\n if (args.info) {\n let template = await getTemplateInfo(args.template);\n if (\"extraSteps\" in template) {\n await template.extraSteps({\n isFullClone: false,\n projectName: path.basename(cwd()),\n projectPath: cwd()\n });\n }\n return;\n }\n console.info();\n console.info(ansis.bold(\"Creating vxrn app...\"));\n await create({ template: args.template });\n }\n});\nrunMain(main);\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}\nif (process.argv.includes(\"--version\")) {\n console.info(getPackageVersion());\n process.exit(0);\n}\n//# sourceMappingURL=index.js.map\n"],"mappings":";;;;;;;;;;;AASA,SAAS,OAAO;CACd,QAAQ,KAAK,CAAC;AAChB;AACA,QAAQ,GAAG,WAAW,IAAI;AAC1B,QAAQ,GAAG,UAAU,IAAI;AACzB,MAAM,OAAO,cAAc;CACzB,MAAM;EACJ,MAAM;EACN,SAAS;EACT,aAAa;CACf;CACA,MAAM;EACJ,WAAW;GACT,MAAM;GACN,aAAa;GACb,SAAS;EACX;EACA,UAAU;GACR,MAAM;GACN,UAAU;GACV,aAAa;EACf;EACA,MAAM;GACJ,MAAM;GACN,aAAa;EACf;CACF;CACA,MAAM,IAAI,EAAE,QAAQ;EAClB,IAAI,KAAK,MAAM;GACb,IAAI,WAAW,MAAM,gBAAgB,KAAK,QAAQ;GAClD,IAAI,gBAAgB,UAAU;IAC5B,MAAM,SAAS,WAAW;KACxB,aAAa;KACb,aAAa,KAAK,SAAS,IAAI,CAAC;KAChC,aAAa,IAAI;IACnB,CAAC;GACH;GACA;EACF;EACA,QAAQ,KAAK;EACb,QAAQ,KAAK,MAAM,KAAK,sBAAsB,CAAC;EAC/C,MAAM,OAAO,EAAE,UAAU,KAAK,SAAS,CAAC;CAC1C;AACF,CAAC;AACD,QAAQ,IAAI;AACZ,SAAS,oBAAoB;CAC3B,IAAI;CACJ,IAAI,OAAO,cAAc,aAAa;EACpC,UAAU;CACZ,OAAO;EACL,UAAU,KAAK,QAAQ,cAAc,YAAY,GAAG,CAAC;CACvD;CACA,MAAM,cAAc,KAAK,KAAK,SAAS,MAAM,MAAM,cAAc;CACjE,MAAM,cAAc,KAAK,MAAM,aAAa,aAAa,OAAO,CAAC;CACjE,OAAO,YAAY;AACrB;AACA,IAAI,QAAQ,KAAK,SAAS,WAAW,GAAG;CACtC,QAAQ,KAAK,kBAAkB,CAAC;CAChC,QAAQ,KAAK,CAAC;AAChB"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["esm/index.js"],"sourcesContent":["#!/usr/bin/env node\nimport ansis from \"ansis\";\nimport { defineCommand, runMain } from \"citty\";\nimport path from \"node:path\";\nimport { cwd } from \"node:process\";\nimport { getTemplateInfo } from \"./helpers/getTemplateInfo\";\nimport { create } from \"./create\";\nimport { fileURLToPath } from \"node:url\";\nimport { readFileSync } from \"node:fs\";\nfunction exit() {\n process.exit(0);\n}\nprocess.on(\"SIGTERM\", exit);\nprocess.on(\"SIGINT\", exit);\nconst main = defineCommand({\n meta: {\n name: \"main\",\n version: \"0.0.0\",\n description: \"Welcome to vxrn\"\n },\n args: {\n directory: {\n type: \"positional\",\n description: \"Directory to copy into\",\n default: \"\"\n },\n template: {\n type: \"string\",\n required: false,\n description: \"Choose a template in advance (avoid selection screen).\"\n },\n info: {\n type: \"boolean\",\n description: \"Output the post-install instructions for the template.\"\n }\n },\n async run({ args }) {\n if (args.info) {\n let template = await getTemplateInfo(args.template);\n if (\"extraSteps\" in template) {\n await template.extraSteps({\n isFullClone: false,\n projectName: path.basename(cwd()),\n projectPath: cwd()\n });\n }\n return;\n }\n console.info();\n console.info(ansis.bold(\"Creating vxrn app...\"));\n await create({ name: args.directory, template: args.template });\n }\n});\nrunMain(main);\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}\nif (process.argv.includes(\"--version\")) {\n console.info(getPackageVersion());\n process.exit(0);\n}\n//# sourceMappingURL=index.js.map\n"],"mappings":";;;;;;;;;;;AASA,SAAS,OAAO;CACd,QAAQ,KAAK,CAAC;AAChB;AACA,QAAQ,GAAG,WAAW,IAAI;AAC1B,QAAQ,GAAG,UAAU,IAAI;AACzB,MAAM,OAAO,cAAc;CACzB,MAAM;EACJ,MAAM;EACN,SAAS;EACT,aAAa;CACf;CACA,MAAM;EACJ,WAAW;GACT,MAAM;GACN,aAAa;GACb,SAAS;EACX;EACA,UAAU;GACR,MAAM;GACN,UAAU;GACV,aAAa;EACf;EACA,MAAM;GACJ,MAAM;GACN,aAAa;EACf;CACF;CACA,MAAM,IAAI,EAAE,QAAQ;EAClB,IAAI,KAAK,MAAM;GACb,IAAI,WAAW,MAAM,gBAAgB,KAAK,QAAQ;GAClD,IAAI,gBAAgB,UAAU;IAC5B,MAAM,SAAS,WAAW;KACxB,aAAa;KACb,aAAa,KAAK,SAAS,IAAI,CAAC;KAChC,aAAa,IAAI;IACnB,CAAC;GACH;GACA;EACF;EACA,QAAQ,KAAK;EACb,QAAQ,KAAK,MAAM,KAAK,sBAAsB,CAAC;EAC/C,MAAM,OAAO;GAAE,MAAM,KAAK;GAAW,UAAU,KAAK;EAAS,CAAC;CAChE;AACF,CAAC;AACD,QAAQ,IAAI;AACZ,SAAS,oBAAoB;CAC3B,IAAI;CACJ,IAAI,OAAO,cAAc,aAAa;EACpC,UAAU;CACZ,OAAO;EACL,UAAU,KAAK,QAAQ,cAAc,YAAY,GAAG,CAAC;CACvD;CACA,MAAM,cAAc,KAAK,KAAK,SAAS,MAAM,MAAM,cAAc;CACjE,MAAM,cAAc,KAAK,MAAM,aAAa,aAAa,OAAO,CAAC;CACjE,OAAO,YAAY;AACrB;AACA,IAAI,QAAQ,KAAK,SAAS,WAAW,GAAG;CACtC,QAAQ,KAAK,kBAAkB,CAAC;CAChC,QAAQ,KAAK,CAAC;AAChB"}
@@ -50,7 +50,10 @@ var main = defineCommand({
50
50
  }
51
51
  console.info();
52
52
  console.info(ansis.bold("Creating vxrn app..."));
53
- await create({ template: args.template });
53
+ await create({
54
+ name: args.directory,
55
+ template: args.template
56
+ });
54
57
  }
55
58
  });
56
59
  runMain(main);
@@ -1 +1 @@
1
- {"version":3,"file":"index.native.js","names":[],"sources":["esm/index.native.js"],"sourcesContent":["#!/usr/bin/env node\nimport ansis from \"ansis\";\nimport { defineCommand, runMain } from \"citty\";\nimport path from \"path\";\nimport { cwd } from \"process\";\nimport { getTemplateInfo } from \"./helpers/getTemplateInfo\";\nimport { create } from \"./create\";\nimport { fileURLToPath } from \"url\";\nimport { readFileSync } from \"fs\";\nfunction exit() {\n process.exit(0);\n}\nprocess.on(\"SIGTERM\", exit);\nprocess.on(\"SIGINT\", exit);\nvar main = defineCommand({\n meta: {\n name: \"main\",\n version: \"0.0.0\",\n description: \"Welcome to vxrn\"\n },\n args: {\n directory: {\n type: \"positional\",\n description: \"Directory to copy into\",\n default: \"\"\n },\n template: {\n type: \"string\",\n required: false,\n description: \"Choose a template in advance (avoid selection screen).\"\n },\n info: {\n type: \"boolean\",\n description: \"Output the post-install instructions for the template.\"\n }\n },\n async run(param) {\n var { args } = param;\n if (args.info) {\n var template = await getTemplateInfo(args.template);\n if (\"extraSteps\" in template) {\n await template.extraSteps({\n isFullClone: false,\n projectName: path.basename(cwd()),\n projectPath: cwd()\n });\n }\n return;\n }\n console.info();\n console.info(ansis.bold(\"Creating vxrn app...\"));\n await create({\n template: args.template\n });\n }\n});\nrunMain(main);\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}\nif (process.argv.includes(\"--version\")) {\n console.info(getPackageVersion());\n process.exit(0);\n}\n//# sourceMappingURL=index.js.map\n"],"mappings":";;;;;;;;;;;AASA,SAAS,OAAO;CACd,QAAQ,KAAK,CAAC;AAChB;AACA,QAAQ,GAAG,WAAW,IAAI;AAC1B,QAAQ,GAAG,UAAU,IAAI;AACzB,IAAI,OAAO,cAAc;CACvB,MAAM;EACJ,MAAM;EACN,SAAS;EACT,aAAa;CACf;CACA,MAAM;EACJ,WAAW;GACT,MAAM;GACN,aAAa;GACb,SAAS;EACX;EACA,UAAU;GACR,MAAM;GACN,UAAU;GACV,aAAa;EACf;EACA,MAAM;GACJ,MAAM;GACN,aAAa;EACf;CACF;CACA,MAAM,IAAI,OAAO;EACf,IAAI,EAAE,SAAS;EACf,IAAI,KAAK,MAAM;GACb,IAAI,WAAW,MAAM,gBAAgB,KAAK,QAAQ;GAClD,IAAI,gBAAgB,UAAU;IAC5B,MAAM,SAAS,WAAW;KACxB,aAAa;KACb,aAAa,KAAK,SAAS,IAAI,CAAC;KAChC,aAAa,IAAI;IACnB,CAAC;GACH;GACA;EACF;EACA,QAAQ,KAAK;EACb,QAAQ,KAAK,MAAM,KAAK,sBAAsB,CAAC;EAC/C,MAAM,OAAO,EACX,UAAU,KAAK,SACjB,CAAC;CACH;AACF,CAAC;AACD,QAAQ,IAAI;AACZ,SAAS,oBAAoB;CAC3B,IAAI;CACJ,IAAI,OAAO,cAAc,aAAa;EACpC,UAAU;CACZ,OAAO;EACL,UAAU,KAAK,QAAQ,cAAc,YAAY,GAAG,CAAC;CACvD;CACA,IAAI,cAAc,KAAK,KAAK,SAAS,MAAM,MAAM,cAAc;CAC/D,IAAI,cAAc,KAAK,MAAM,aAAa,aAAa,OAAO,CAAC;CAC/D,OAAO,YAAY;AACrB;AACA,IAAI,QAAQ,KAAK,SAAS,WAAW,GAAG;CACtC,QAAQ,KAAK,kBAAkB,CAAC;CAChC,QAAQ,KAAK,CAAC;AAChB"}
1
+ {"version":3,"file":"index.native.js","names":[],"sources":["esm/index.native.js"],"sourcesContent":["#!/usr/bin/env node\nimport ansis from \"ansis\";\nimport { defineCommand, runMain } from \"citty\";\nimport path from \"path\";\nimport { cwd } from \"process\";\nimport { getTemplateInfo } from \"./helpers/getTemplateInfo\";\nimport { create } from \"./create\";\nimport { fileURLToPath } from \"url\";\nimport { readFileSync } from \"fs\";\nfunction exit() {\n process.exit(0);\n}\nprocess.on(\"SIGTERM\", exit);\nprocess.on(\"SIGINT\", exit);\nvar main = defineCommand({\n meta: {\n name: \"main\",\n version: \"0.0.0\",\n description: \"Welcome to vxrn\"\n },\n args: {\n directory: {\n type: \"positional\",\n description: \"Directory to copy into\",\n default: \"\"\n },\n template: {\n type: \"string\",\n required: false,\n description: \"Choose a template in advance (avoid selection screen).\"\n },\n info: {\n type: \"boolean\",\n description: \"Output the post-install instructions for the template.\"\n }\n },\n async run(param) {\n var { args } = param;\n if (args.info) {\n var template = await getTemplateInfo(args.template);\n if (\"extraSteps\" in template) {\n await template.extraSteps({\n isFullClone: false,\n projectName: path.basename(cwd()),\n projectPath: cwd()\n });\n }\n return;\n }\n console.info();\n console.info(ansis.bold(\"Creating vxrn app...\"));\n await create({\n name: args.directory,\n template: args.template\n });\n }\n});\nrunMain(main);\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}\nif (process.argv.includes(\"--version\")) {\n console.info(getPackageVersion());\n process.exit(0);\n}\n//# sourceMappingURL=index.js.map\n"],"mappings":";;;;;;;;;;;AASA,SAAS,OAAO;CACd,QAAQ,KAAK,CAAC;AAChB;AACA,QAAQ,GAAG,WAAW,IAAI;AAC1B,QAAQ,GAAG,UAAU,IAAI;AACzB,IAAI,OAAO,cAAc;CACvB,MAAM;EACJ,MAAM;EACN,SAAS;EACT,aAAa;CACf;CACA,MAAM;EACJ,WAAW;GACT,MAAM;GACN,aAAa;GACb,SAAS;EACX;EACA,UAAU;GACR,MAAM;GACN,UAAU;GACV,aAAa;EACf;EACA,MAAM;GACJ,MAAM;GACN,aAAa;EACf;CACF;CACA,MAAM,IAAI,OAAO;EACf,IAAI,EAAE,SAAS;EACf,IAAI,KAAK,MAAM;GACb,IAAI,WAAW,MAAM,gBAAgB,KAAK,QAAQ;GAClD,IAAI,gBAAgB,UAAU;IAC5B,MAAM,SAAS,WAAW;KACxB,aAAa;KACb,aAAa,KAAK,SAAS,IAAI,CAAC;KAChC,aAAa,IAAI;IACnB,CAAC;GACH;GACA;EACF;EACA,QAAQ,KAAK;EACb,QAAQ,KAAK,MAAM,KAAK,sBAAsB,CAAC;EAC/C,MAAM,OAAO;GACX,MAAM,KAAK;GACX,UAAU,KAAK;EACjB,CAAC;CACH;AACF,CAAC;AACD,QAAQ,IAAI;AACZ,SAAS,oBAAoB;CAC3B,IAAI;CACJ,IAAI,OAAO,cAAc,aAAa;EACpC,UAAU;CACZ,OAAO;EACL,UAAU,KAAK,QAAQ,cAAc,YAAY,GAAG,CAAC;CACvD;CACA,IAAI,cAAc,KAAK,KAAK,SAAS,MAAM,MAAM,cAAc;CAC/D,IAAI,cAAc,KAAK,MAAM,aAAa,aAAa,OAAO,CAAC;CAC/D,OAAO,YAAY;AACrB;AACA,IAAI,QAAQ,KAAK,SAAS,WAAW,GAAG;CACtC,QAAQ,KAAK,kBAAkB,CAAC;CAChC,QAAQ,KAAK,CAAC;AAChB"}
@@ -29,7 +29,7 @@ async function replaceNameInUTF8File(filePath, projectName, templateName) {
29
29
  await fs.writeFile(filePath, replacedFileContent, "utf8");
30
30
  }
31
31
  }
32
- var main = async function(param) {
32
+ var main = async function main2(param) {
33
33
  var { isFullClone, projectName } = param;
34
34
  var placeholderName = "bare";
35
35
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
@@ -1 +1 @@
1
- {"version":3,"file":"bare.native.js","names":[],"sources":["esm/steps/bare.native.js"],"sourcesContent":["import ansis from \"ansis\";\nimport fs from \"fs-extra\";\nimport { basename, dirname, join } from \"path\";\nfunction shouldIgnoreFile(filePath) {\n return filePath.match(/node_modules|yarn.lock|package-lock.json/g);\n}\nfunction shouldRenameFile(filePath, nameToReplace) {\n return basename(filePath).includes(nameToReplace);\n}\nasync function renameFile(filePath, oldName, newName) {\n var newFileName = join(dirname(filePath), basename(filePath).replace(new RegExp(oldName, \"g\"), newName));\n await fs.rename(filePath, newFileName);\n}\nfunction walk(current) {\n if (!fs.lstatSync(current).isDirectory()) {\n return [\n current\n ];\n }\n var files = fs.readdirSync(current).map(function(child) {\n return walk(join(current, child));\n });\n var result = [];\n return result.concat.apply([\n current\n ], files);\n}\nasync function replaceNameInUTF8File(filePath, projectName, templateName) {\n var fileContent = await fs.readFile(filePath, \"utf8\");\n var replacedFileContent = fileContent.replace(new RegExp(templateName, \"g\"), projectName).replace(new RegExp(templateName.toLowerCase(), \"g\"), projectName.toLowerCase());\n if (fileContent !== replacedFileContent) {\n await fs.writeFile(filePath, replacedFileContent, \"utf8\");\n }\n}\nvar main = async function(param) {\n var { isFullClone, projectName } = param;\n var placeholderName = \"bare\";\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = walk(process.cwd()).reverse()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var filePath = _step.value;\n if (shouldIgnoreFile(filePath)) {\n continue;\n }\n if (!(await fs.stat(filePath)).isDirectory()) {\n await replaceNameInUTF8File(filePath, projectName, \"bare\");\n }\n if (shouldRenameFile(filePath, placeholderName)) {\n await renameFile(filePath, placeholderName, projectName);\n } else if (shouldRenameFile(filePath, placeholderName.toLowerCase())) {\n await renameFile(filePath, placeholderName.toLowerCase(), projectName.toLowerCase());\n }\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 if (isFullClone) {\n console.info(`\n${ansis.green.bold(\"Done!\")} Created a new project under ./${ansis.greenBright(projectName)} visit your project:\n \\u2022 ${ansis.green(\"cd\")} ${projectName}\n\n${ansis.green(`Run instructions for ${ansis.bold(\"Android\")}:`)}\n \\u2022 Have an Android emulator running (quickest way to get started), or a device connected.\n \\u2022 npx react-native run-android\n\n${ansis.blue(`Run instructions for ${ansis.bold(\"iOS\")}:`)}\n \\u2022 Install Cocoapods\n \\u2022 bundle install # you need to run this only once in your project.\n \\u2022 bundle exec pod install\n \\u2022 cd ..\n\n \\u2022 npx react-native run-ios\n ${ansis.gray(\"- or -\")}\n \\u2022 Open ${projectName}/ios/${projectName}.xcworkspace in Xcode or run \"xed -b ios\"\n \\u2022 Hit the Run button\n\n`);\n }\n};\nvar bare_default = main;\nexport {\n bare_default as default,\n replaceNameInUTF8File\n};\n//# sourceMappingURL=bare.js.map\n"],"mappings":";;;;;AAGA,SAAS,iBAAiB,UAAU;CAClC,OAAO,SAAS,MAAM,2CAA2C;AACnE;AACA,SAAS,iBAAiB,UAAU,eAAe;CACjD,OAAO,SAAS,QAAQ,CAAC,CAAC,SAAS,aAAa;AAClD;AACA,eAAe,WAAW,UAAU,SAAS,SAAS;CACpD,IAAI,cAAc,KAAK,QAAQ,QAAQ,GAAG,SAAS,QAAQ,CAAC,CAAC,QAAQ,IAAI,OAAO,SAAS,GAAG,GAAG,OAAO,CAAC;CACvG,MAAM,GAAG,OAAO,UAAU,WAAW;AACvC;AACA,SAAS,KAAK,SAAS;CACrB,IAAI,CAAC,GAAG,UAAU,OAAO,CAAC,CAAC,YAAY,GAAG;EACxC,OAAO,CACL,OACF;CACF;CACA,IAAI,QAAQ,GAAG,YAAY,OAAO,CAAC,CAAC,IAAI,SAAS,OAAO;EACtD,OAAO,KAAK,KAAK,SAAS,KAAK,CAAC;CAClC,CAAC;CACD,IAAI,SAAS,CAAC;CACd,OAAO,OAAO,OAAO,MAAM,CACzB,OACF,GAAG,KAAK;AACV;AACA,eAAe,sBAAsB,UAAU,aAAa,cAAc;CACxE,IAAI,cAAc,MAAM,GAAG,SAAS,UAAU,MAAM;CACpD,IAAI,sBAAsB,YAAY,QAAQ,IAAI,OAAO,cAAc,GAAG,GAAG,WAAW,CAAC,CAAC,QAAQ,IAAI,OAAO,aAAa,YAAY,GAAG,GAAG,GAAG,YAAY,YAAY,CAAC;CACxK,IAAI,gBAAgB,qBAAqB;EACvC,MAAM,GAAG,UAAU,UAAU,qBAAqB,MAAM;CAC1D;AACF;AACA,IAAI,OAAO,eAAe,OAAO;CAC/B,IAAI,EAAE,aAAa,gBAAgB;CACnC,IAAI,kBAAkB;CACtB,IAAI,4BAA4B,MAAM,oBAAoB,OAAO,iBAAiB,KAAK;CACvF,IAAI;EACF,KAAK,IAAI,YAAY,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,SAAS,CAAC,GAAG,OAAO,EAAE,6BAA6B,QAAQ,UAAU,KAAK,EAAC,CAAE,OAAO,4BAA4B,MAAM;GAC9K,IAAI,WAAW,MAAM;GACrB,IAAI,iBAAiB,QAAQ,GAAG;IAC9B;GACF;GACA,IAAI,EAAE,MAAM,GAAG,KAAK,QAAQ,EAAC,CAAE,YAAY,GAAG;IAC5C,MAAM,sBAAsB,UAAU,aAAa,MAAM;GAC3D;GACA,IAAI,iBAAiB,UAAU,eAAe,GAAG;IAC/C,MAAM,WAAW,UAAU,iBAAiB,WAAW;GACzD,OAAO,IAAI,iBAAiB,UAAU,gBAAgB,YAAY,CAAC,GAAG;IACpE,MAAM,WAAW,UAAU,gBAAgB,YAAY,GAAG,YAAY,YAAY,CAAC;GACrF;EACF;CACF,SAAS,KAAK;EACZ,oBAAoB;EACpB,iBAAiB;CACnB,UAAU;EACR,IAAI;GACF,IAAI,CAAC,6BAA6B,UAAU,UAAU,MAAM;IAC1D,UAAU,OAAO;GACnB;EACF,UAAU;GACR,IAAI,mBAAmB;IACrB,MAAM;GACR;EACF;CACF;CACA,IAAI,aAAa;EACf,QAAQ,KAAK;EACf,MAAM,MAAM,KAAK,OAAO,EAAE,iCAAiC,MAAM,YAAY,WAAW,EAAE;WACjF,MAAM,MAAM,IAAI,EAAE,GAAG,YAAY;;EAE1C,MAAM,MAAM,wBAAwB,MAAM,KAAK,SAAS,EAAE,EAAE,EAAE;;;;EAI9D,MAAM,KAAK,wBAAwB,MAAM,KAAK,KAAK,EAAE,EAAE,EAAE;;;;;;;IAOvD,MAAM,KAAK,QAAQ,EAAE;gBACT,YAAY,OAAO,YAAY;;;CAG9C;CACC;AACF;AACA,IAAI,eAAe"}
1
+ {"version":3,"file":"bare.native.js","names":[],"sources":["esm/steps/bare.native.js"],"sourcesContent":["import ansis from \"ansis\";\nimport fs from \"fs-extra\";\nimport { basename, dirname, join } from \"path\";\nfunction shouldIgnoreFile(filePath) {\n return filePath.match(/node_modules|yarn.lock|package-lock.json/g);\n}\nfunction shouldRenameFile(filePath, nameToReplace) {\n return basename(filePath).includes(nameToReplace);\n}\nasync function renameFile(filePath, oldName, newName) {\n var newFileName = join(dirname(filePath), basename(filePath).replace(new RegExp(oldName, \"g\"), newName));\n await fs.rename(filePath, newFileName);\n}\nfunction walk(current) {\n if (!fs.lstatSync(current).isDirectory()) {\n return [\n current\n ];\n }\n var files = fs.readdirSync(current).map(function(child) {\n return walk(join(current, child));\n });\n var result = [];\n return result.concat.apply([\n current\n ], files);\n}\nasync function replaceNameInUTF8File(filePath, projectName, templateName) {\n var fileContent = await fs.readFile(filePath, \"utf8\");\n var replacedFileContent = fileContent.replace(new RegExp(templateName, \"g\"), projectName).replace(new RegExp(templateName.toLowerCase(), \"g\"), projectName.toLowerCase());\n if (fileContent !== replacedFileContent) {\n await fs.writeFile(filePath, replacedFileContent, \"utf8\");\n }\n}\nvar main = async function main2(param) {\n var { isFullClone, projectName } = param;\n var placeholderName = \"bare\";\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = walk(process.cwd()).reverse()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var filePath = _step.value;\n if (shouldIgnoreFile(filePath)) {\n continue;\n }\n if (!(await fs.stat(filePath)).isDirectory()) {\n await replaceNameInUTF8File(filePath, projectName, \"bare\");\n }\n if (shouldRenameFile(filePath, placeholderName)) {\n await renameFile(filePath, placeholderName, projectName);\n } else if (shouldRenameFile(filePath, placeholderName.toLowerCase())) {\n await renameFile(filePath, placeholderName.toLowerCase(), projectName.toLowerCase());\n }\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 if (isFullClone) {\n console.info(`\n${ansis.green.bold(\"Done!\")} Created a new project under ./${ansis.greenBright(projectName)} visit your project:\n \\u2022 ${ansis.green(\"cd\")} ${projectName}\n\n${ansis.green(`Run instructions for ${ansis.bold(\"Android\")}:`)}\n \\u2022 Have an Android emulator running (quickest way to get started), or a device connected.\n \\u2022 npx react-native run-android\n\n${ansis.blue(`Run instructions for ${ansis.bold(\"iOS\")}:`)}\n \\u2022 Install Cocoapods\n \\u2022 bundle install # you need to run this only once in your project.\n \\u2022 bundle exec pod install\n \\u2022 cd ..\n\n \\u2022 npx react-native run-ios\n ${ansis.gray(\"- or -\")}\n \\u2022 Open ${projectName}/ios/${projectName}.xcworkspace in Xcode or run \"xed -b ios\"\n \\u2022 Hit the Run button\n\n`);\n }\n};\nvar bare_default = main;\nexport {\n bare_default as default,\n replaceNameInUTF8File\n};\n//# sourceMappingURL=bare.js.map\n"],"mappings":";;;;;AAGA,SAAS,iBAAiB,UAAU;CAClC,OAAO,SAAS,MAAM,2CAA2C;AACnE;AACA,SAAS,iBAAiB,UAAU,eAAe;CACjD,OAAO,SAAS,QAAQ,CAAC,CAAC,SAAS,aAAa;AAClD;AACA,eAAe,WAAW,UAAU,SAAS,SAAS;CACpD,IAAI,cAAc,KAAK,QAAQ,QAAQ,GAAG,SAAS,QAAQ,CAAC,CAAC,QAAQ,IAAI,OAAO,SAAS,GAAG,GAAG,OAAO,CAAC;CACvG,MAAM,GAAG,OAAO,UAAU,WAAW;AACvC;AACA,SAAS,KAAK,SAAS;CACrB,IAAI,CAAC,GAAG,UAAU,OAAO,CAAC,CAAC,YAAY,GAAG;EACxC,OAAO,CACL,OACF;CACF;CACA,IAAI,QAAQ,GAAG,YAAY,OAAO,CAAC,CAAC,IAAI,SAAS,OAAO;EACtD,OAAO,KAAK,KAAK,SAAS,KAAK,CAAC;CAClC,CAAC;CACD,IAAI,SAAS,CAAC;CACd,OAAO,OAAO,OAAO,MAAM,CACzB,OACF,GAAG,KAAK;AACV;AACA,eAAe,sBAAsB,UAAU,aAAa,cAAc;CACxE,IAAI,cAAc,MAAM,GAAG,SAAS,UAAU,MAAM;CACpD,IAAI,sBAAsB,YAAY,QAAQ,IAAI,OAAO,cAAc,GAAG,GAAG,WAAW,CAAC,CAAC,QAAQ,IAAI,OAAO,aAAa,YAAY,GAAG,GAAG,GAAG,YAAY,YAAY,CAAC;CACxK,IAAI,gBAAgB,qBAAqB;EACvC,MAAM,GAAG,UAAU,UAAU,qBAAqB,MAAM;CAC1D;AACF;AACA,IAAI,OAAO,eAAe,MAAM,OAAO;CACrC,IAAI,EAAE,aAAa,gBAAgB;CACnC,IAAI,kBAAkB;CACtB,IAAI,4BAA4B,MAAM,oBAAoB,OAAO,iBAAiB,KAAK;CACvF,IAAI;EACF,KAAK,IAAI,YAAY,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,SAAS,CAAC,GAAG,OAAO,EAAE,6BAA6B,QAAQ,UAAU,KAAK,EAAC,CAAE,OAAO,4BAA4B,MAAM;GAC9K,IAAI,WAAW,MAAM;GACrB,IAAI,iBAAiB,QAAQ,GAAG;IAC9B;GACF;GACA,IAAI,EAAE,MAAM,GAAG,KAAK,QAAQ,EAAC,CAAE,YAAY,GAAG;IAC5C,MAAM,sBAAsB,UAAU,aAAa,MAAM;GAC3D;GACA,IAAI,iBAAiB,UAAU,eAAe,GAAG;IAC/C,MAAM,WAAW,UAAU,iBAAiB,WAAW;GACzD,OAAO,IAAI,iBAAiB,UAAU,gBAAgB,YAAY,CAAC,GAAG;IACpE,MAAM,WAAW,UAAU,gBAAgB,YAAY,GAAG,YAAY,YAAY,CAAC;GACrF;EACF;CACF,SAAS,KAAK;EACZ,oBAAoB;EACpB,iBAAiB;CACnB,UAAU;EACR,IAAI;GACF,IAAI,CAAC,6BAA6B,UAAU,UAAU,MAAM;IAC1D,UAAU,OAAO;GACnB;EACF,UAAU;GACR,IAAI,mBAAmB;IACrB,MAAM;GACR;EACF;CACF;CACA,IAAI,aAAa;EACf,QAAQ,KAAK;EACf,MAAM,MAAM,KAAK,OAAO,EAAE,iCAAiC,MAAM,YAAY,WAAW,EAAE;WACjF,MAAM,MAAM,IAAI,EAAE,GAAG,YAAY;;EAE1C,MAAM,MAAM,wBAAwB,MAAM,KAAK,SAAS,EAAE,EAAE,EAAE;;;;EAI9D,MAAM,KAAK,wBAAwB,MAAM,KAAK,KAAK,EAAE,EAAE,EAAE;;;;;;;IAOvD,MAAM,KAAK,QAAQ,EAAE;gBACT,YAAY,OAAO,YAAY;;;CAG9C;CACC;AACF;AACA,IAAI,eAAe"}
@@ -2,10 +2,10 @@ import ansis from "ansis";
2
2
 
3
3
  var packageManager = "yarn";
4
4
  var useYarn = packageManager === "yarn";
5
- var runCommand = function(scriptName) {
5
+ var runCommand = function runCommand2(scriptName) {
6
6
  return `${packageManager} ${useYarn ? "" : "run "}${scriptName}`;
7
7
  };
8
- var main = async function(param) {
8
+ var main = async function main2(param) {
9
9
  var { isFullClone, projectName } = param;
10
10
  if (isFullClone) {
11
11
  console.info(`
@@ -1 +1 @@
1
- {"version":3,"file":"fullstack.native.js","names":[],"sources":["esm/steps/fullstack.native.js"],"sourcesContent":["import ansis from \"ansis\";\nvar packageManager = \"yarn\";\nvar useYarn = packageManager === \"yarn\";\nvar runCommand = function(scriptName) {\n return `${packageManager} ${useYarn ? \"\" : \"run \"}${scriptName}`;\n};\nvar main = async function(param) {\n var { isFullClone, projectName } = param;\n if (isFullClone) {\n console.info(`\n${ansis.green.bold(\"Done!\")} Created a new project under ./${ansis.greenBright(projectName)} visit your project:\n \\u2022 ${ansis.green(\"cd\")} ${projectName}\n`);\n }\n console.info(`\nTo start the dev server, run: ${ansis.green(runCommand(\"dev\"))}\n`);\n};\nvar fullstack_default = main;\nexport {\n fullstack_default as default\n};\n//# sourceMappingURL=fullstack.js.map\n"],"mappings":";;;AACA,IAAI,iBAAiB;AACrB,IAAI,UAAU,mBAAmB;AACjC,IAAI,aAAa,SAAS,YAAY;CACpC,OAAO,GAAG,eAAe,GAAG,UAAU,KAAK,SAAS;AACtD;AACA,IAAI,OAAO,eAAe,OAAO;CAC/B,IAAI,EAAE,aAAa,gBAAgB;CACnC,IAAI,aAAa;EACf,QAAQ,KAAK;EACf,MAAM,MAAM,KAAK,OAAO,EAAE,iCAAiC,MAAM,YAAY,WAAW,EAAE;UAClF,MAAM,MAAM,IAAI,EAAE,GAAG,YAAY;CAC1C;CACC;CACA,QAAQ,KAAK;gCACiB,MAAM,MAAM,WAAW,KAAK,CAAC,EAAE;CAC9D;AACD;AACA,IAAI,oBAAoB"}
1
+ {"version":3,"file":"fullstack.native.js","names":[],"sources":["esm/steps/fullstack.native.js"],"sourcesContent":["import ansis from \"ansis\";\nvar packageManager = \"yarn\";\nvar useYarn = packageManager === \"yarn\";\nvar runCommand = function runCommand2(scriptName) {\n return `${packageManager} ${useYarn ? \"\" : \"run \"}${scriptName}`;\n};\nvar main = async function main2(param) {\n var { isFullClone, projectName } = param;\n if (isFullClone) {\n console.info(`\n${ansis.green.bold(\"Done!\")} Created a new project under ./${ansis.greenBright(projectName)} visit your project:\n \\u2022 ${ansis.green(\"cd\")} ${projectName}\n`);\n }\n console.info(`\nTo start the dev server, run: ${ansis.green(runCommand(\"dev\"))}\n`);\n};\nvar fullstack_default = main;\nexport {\n fullstack_default as default\n};\n//# sourceMappingURL=fullstack.js.map\n"],"mappings":";;;AACA,IAAI,iBAAiB;AACrB,IAAI,UAAU,mBAAmB;AACjC,IAAI,aAAa,SAAS,YAAY,YAAY;CAChD,OAAO,GAAG,eAAe,GAAG,UAAU,KAAK,SAAS;AACtD;AACA,IAAI,OAAO,eAAe,MAAM,OAAO;CACrC,IAAI,EAAE,aAAa,gBAAgB;CACnC,IAAI,aAAa;EACf,QAAQ,KAAK;EACf,MAAM,MAAM,KAAK,OAAO,EAAE,iCAAiC,MAAM,YAAY,WAAW,EAAE;UAClF,MAAM,MAAM,IAAI,EAAE,GAAG,YAAY;CAC1C;CACC;CACA,QAAQ,KAAK;gCACiB,MAAM,MAAM,WAAW,KAAK,CAAC,EAAE;CAC9D;AACD;AACA,IAAI,oBAAoB"}
@@ -3,10 +3,10 @@ import FSExtra from "fs-extra";
3
3
  import { join } from "path";
4
4
  import { execPromise } from "@vxrn/utils";
5
5
 
6
- var extraSteps = async function(param) {
6
+ var extraSteps = async function extraSteps2(param) {
7
7
  var { isFullClone, projectName, packageManager } = param;
8
8
  var useBun = packageManager === "bun";
9
- var runCommand = function(scriptName) {
9
+ var runCommand = function runCommand2(scriptName) {
10
10
  return `${packageManager} ${useBun ? "" : "run "}${scriptName}`;
11
11
  };
12
12
  if (isFullClone) {
@@ -20,7 +20,7 @@ To run:
20
20
  ${ansis.green(runCommand("dev"))}
21
21
  `);
22
22
  };
23
- var preInstall = async function(param) {
23
+ var preInstall = async function preInstall2(param) {
24
24
  var { projectName, packageManager, projectPath } = param;
25
25
  var path = projectPath || projectName;
26
26
  var envExample = join(path, ".env.example");
@@ -1 +1 @@
1
- {"version":3,"file":"one.native.js","names":[],"sources":["esm/steps/one.native.js"],"sourcesContent":["import ansis from \"ansis\";\nimport FSExtra from \"fs-extra\";\nimport { join } from \"path\";\nimport { execPromise } from \"@vxrn/utils\";\nvar extraSteps = async function(param) {\n var { isFullClone, projectName, packageManager } = param;\n var useBun = packageManager === \"bun\";\n var runCommand = function(scriptName) {\n return `${packageManager} ${useBun ? \"\" : \"run \"}${scriptName}`;\n };\n if (isFullClone) {\n console.info(`\n${ansis.green.bold(\"Done!\")} Created a new project under ./${ansis.greenBright(projectName)}`);\n }\n console.info(`\nTo run: \n\n ${ansis.green(\"cd\")} ${projectName}\n ${ansis.green(runCommand(\"dev\"))}\n`);\n};\nvar preInstall = async function(param) {\n var { projectName, packageManager, projectPath } = param;\n var path = projectPath || projectName;\n var envExample = join(path, \".env.example\");\n if (FSExtra.existsSync(envExample)) {\n await FSExtra.move(envExample, join(path, \".env\"));\n console.info(`Moved .env.example to .env`);\n }\n if (packageManager === \"pnpm\") {\n await FSExtra.writeFile(join(path, `.npmrc`), `node-linker=hoisted\n`);\n console.info(`Set up .npmrc to avoid symlinked node_modules\n\nNote! \\u{1F44B}\n\nIf you are working in a monorepo, you need to move the .npmrc with the node-linker\nconfiguration to the root of the monorepo rather than here.\n\n`);\n }\n if (packageManager === \"yarn\") {\n await FSExtra.writeFile(join(path, \".yarnrc.yml\"), `\ncompressionLevel: mixed\nenableGlobalCache: false\nenableTelemetry: false\nnodeLinker: node-modules\n\nlogFilters:\n - code: YN0002\n level: discard\n - code: YN0060\n level: discard\n - code: YN0006\n level: discard\n - code: YN0076\n level: discard\n`);\n await execPromise(`yarn set version stable`);\n await FSExtra.writeFile(join(path, \"yarn.lock\"), \"\");\n console.info(`Set up yarn for latest version`);\n }\n};\nexport {\n extraSteps,\n preInstall\n};\n//# sourceMappingURL=one.js.map\n"],"mappings":";;;;;;AAIA,IAAI,aAAa,eAAe,OAAO;CACrC,IAAI,EAAE,aAAa,aAAa,mBAAmB;CACnD,IAAI,SAAS,mBAAmB;CAChC,IAAI,aAAa,SAAS,YAAY;EACpC,OAAO,GAAG,eAAe,GAAG,SAAS,KAAK,SAAS;CACrD;CACA,IAAI,aAAa;EACf,QAAQ,KAAK;EACf,MAAM,MAAM,KAAK,OAAO,EAAE,iCAAiC,MAAM,YAAY,WAAW,GAAG;CAC3F;CACA,QAAQ,KAAK;;;IAGX,MAAM,MAAM,IAAI,EAAE,GAAG,YAAY;IACjC,MAAM,MAAM,WAAW,KAAK,CAAC,EAAE;CAClC;AACD;AACA,IAAI,aAAa,eAAe,OAAO;CACrC,IAAI,EAAE,aAAa,gBAAgB,gBAAgB;CACnD,IAAI,OAAO,eAAe;CAC1B,IAAI,aAAa,KAAK,MAAM,cAAc;CAC1C,IAAI,QAAQ,WAAW,UAAU,GAAG;EAClC,MAAM,QAAQ,KAAK,YAAY,KAAK,MAAM,MAAM,CAAC;EACjD,QAAQ,KAAK,4BAA4B;CAC3C;CACA,IAAI,mBAAmB,QAAQ;EAC7B,MAAM,QAAQ,UAAU,KAAK,MAAM,QAAQ,GAAG;CACjD;EACG,QAAQ,KAAK;;;;;;;CAOhB;CACC;CACA,IAAI,mBAAmB,QAAQ;EAC7B,MAAM,QAAQ,UAAU,KAAK,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;CAetD;EACG,MAAM,YAAY,yBAAyB;EAC3C,MAAM,QAAQ,UAAU,KAAK,MAAM,WAAW,GAAG,EAAE;EACnD,QAAQ,KAAK,gCAAgC;CAC/C;AACF"}
1
+ {"version":3,"file":"one.native.js","names":[],"sources":["esm/steps/one.native.js"],"sourcesContent":["import ansis from \"ansis\";\nimport FSExtra from \"fs-extra\";\nimport { join } from \"path\";\nimport { execPromise } from \"@vxrn/utils\";\nvar extraSteps = async function extraSteps2(param) {\n var { isFullClone, projectName, packageManager } = param;\n var useBun = packageManager === \"bun\";\n var runCommand = function runCommand2(scriptName) {\n return `${packageManager} ${useBun ? \"\" : \"run \"}${scriptName}`;\n };\n if (isFullClone) {\n console.info(`\n${ansis.green.bold(\"Done!\")} Created a new project under ./${ansis.greenBright(projectName)}`);\n }\n console.info(`\nTo run: \n\n ${ansis.green(\"cd\")} ${projectName}\n ${ansis.green(runCommand(\"dev\"))}\n`);\n};\nvar preInstall = async function preInstall2(param) {\n var { projectName, packageManager, projectPath } = param;\n var path = projectPath || projectName;\n var envExample = join(path, \".env.example\");\n if (FSExtra.existsSync(envExample)) {\n await FSExtra.move(envExample, join(path, \".env\"));\n console.info(`Moved .env.example to .env`);\n }\n if (packageManager === \"pnpm\") {\n await FSExtra.writeFile(join(path, `.npmrc`), `node-linker=hoisted\n`);\n console.info(`Set up .npmrc to avoid symlinked node_modules\n\nNote! \\u{1F44B}\n\nIf you are working in a monorepo, you need to move the .npmrc with the node-linker\nconfiguration to the root of the monorepo rather than here.\n\n`);\n }\n if (packageManager === \"yarn\") {\n await FSExtra.writeFile(join(path, \".yarnrc.yml\"), `\ncompressionLevel: mixed\nenableGlobalCache: false\nenableTelemetry: false\nnodeLinker: node-modules\n\nlogFilters:\n - code: YN0002\n level: discard\n - code: YN0060\n level: discard\n - code: YN0006\n level: discard\n - code: YN0076\n level: discard\n`);\n await execPromise(`yarn set version stable`);\n await FSExtra.writeFile(join(path, \"yarn.lock\"), \"\");\n console.info(`Set up yarn for latest version`);\n }\n};\nexport {\n extraSteps,\n preInstall\n};\n//# sourceMappingURL=one.js.map\n"],"mappings":";;;;;;AAIA,IAAI,aAAa,eAAe,YAAY,OAAO;CACjD,IAAI,EAAE,aAAa,aAAa,mBAAmB;CACnD,IAAI,SAAS,mBAAmB;CAChC,IAAI,aAAa,SAAS,YAAY,YAAY;EAChD,OAAO,GAAG,eAAe,GAAG,SAAS,KAAK,SAAS;CACrD;CACA,IAAI,aAAa;EACf,QAAQ,KAAK;EACf,MAAM,MAAM,KAAK,OAAO,EAAE,iCAAiC,MAAM,YAAY,WAAW,GAAG;CAC3F;CACA,QAAQ,KAAK;;;IAGX,MAAM,MAAM,IAAI,EAAE,GAAG,YAAY;IACjC,MAAM,MAAM,WAAW,KAAK,CAAC,EAAE;CAClC;AACD;AACA,IAAI,aAAa,eAAe,YAAY,OAAO;CACjD,IAAI,EAAE,aAAa,gBAAgB,gBAAgB;CACnD,IAAI,OAAO,eAAe;CAC1B,IAAI,aAAa,KAAK,MAAM,cAAc;CAC1C,IAAI,QAAQ,WAAW,UAAU,GAAG;EAClC,MAAM,QAAQ,KAAK,YAAY,KAAK,MAAM,MAAM,CAAC;EACjD,QAAQ,KAAK,4BAA4B;CAC3C;CACA,IAAI,mBAAmB,QAAQ;EAC7B,MAAM,QAAQ,UAAU,KAAK,MAAM,QAAQ,GAAG;CACjD;EACG,QAAQ,KAAK;;;;;;;CAOhB;CACC;CACA,IAAI,mBAAmB,QAAQ;EAC7B,MAAM,QAAQ,UAAU,KAAK,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;CAetD;EACG,MAAM,YAAY,yBAAyB;EAC3C,MAAM,QAAQ,UAAU,KAAK,MAAM,WAAW,GAAG,EAAE;EACnD,QAAQ,KAAK,gCAAgC;CAC/C;AACF"}
@@ -4,7 +4,7 @@ const templates = [
4
4
  {
5
5
  title: `Basic`,
6
6
  value: "Basic",
7
- description: "The simplest starting point, vanilla Rreact Native",
7
+ description: "The simplest starting point, vanilla React Native",
8
8
  type: "included-in-monorepo",
9
9
  hidden: false,
10
10
  repo: {
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","names":[],"sources":["esm/templates.js"],"sourcesContent":["import * as BasicTemplateSteps from \"./steps/one\";\nconst templates = [\n {\n title: `Basic`,\n value: \"Basic\",\n description: \"The simplest starting point, vanilla Rreact Native\",\n type: \"included-in-monorepo\",\n hidden: false,\n repo: {\n url: `https://github.com/onejs/one.git`,\n sshFallback: `git@github.com:onejs/one.git`,\n dir: [`examples`, `one-basic`],\n branch: \"main\"\n },\n ...BasicTemplateSteps\n },\n {\n title: `Takeout Free`,\n value: \"Takeout\",\n description: \"One, Tamagui, Zero, Better Auth\",\n type: \"external-repo\",\n hidden: false,\n repo: {\n url: `https://github.com/tamagui/takeout-free.git`,\n sshFallback: `git@github.com:tamagui/takeout-free.git`,\n dir: [],\n branch: \"main\"\n },\n ...BasicTemplateSteps\n },\n {\n title: `Takeout Production`,\n value: \"TakeoutPro\",\n description: \"Takeout + a startup in a repo. Refined stack that's production ready. Home/Terms/Docs, CI/CD, IaC, Integration Tests, Onboarding, Notifications, OTA Updates, Screens, >50 Components, >25 Agent Docs, >30 Scripts. See https://takeout.tamagui.dev\",\n type: \"external-link\",\n hidden: false,\n externalUrl: \"https://takeout.tamagui.dev\"\n }\n];\nexport {\n templates\n};\n//# sourceMappingURL=templates.js.map\n"],"mappings":";;;AACA,MAAM,YAAY;CAChB;EACE,OAAO;EACP,OAAO;EACP,aAAa;EACb,MAAM;EACN,QAAQ;EACR,MAAM;GACJ,KAAK;GACL,aAAa;GACb,KAAK,CAAC,YAAY,WAAW;GAC7B,QAAQ;EACV;EACA,GAAG;CACL;CACA;EACE,OAAO;EACP,OAAO;EACP,aAAa;EACb,MAAM;EACN,QAAQ;EACR,MAAM;GACJ,KAAK;GACL,aAAa;GACb,KAAK,CAAC;GACN,QAAQ;EACV;EACA,GAAG;CACL;CACA;EACE,OAAO;EACP,OAAO;EACP,aAAa;EACb,MAAM;EACN,QAAQ;EACR,aAAa;CACf;AACF"}
1
+ {"version":3,"file":"templates.js","names":[],"sources":["esm/templates.js"],"sourcesContent":["import * as BasicTemplateSteps from \"./steps/one\";\nconst templates = [\n {\n title: `Basic`,\n value: \"Basic\",\n description: \"The simplest starting point, vanilla React Native\",\n type: \"included-in-monorepo\",\n hidden: false,\n repo: {\n url: `https://github.com/onejs/one.git`,\n sshFallback: `git@github.com:onejs/one.git`,\n dir: [`examples`, `one-basic`],\n branch: \"main\"\n },\n ...BasicTemplateSteps\n },\n {\n title: `Takeout Free`,\n value: \"Takeout\",\n description: \"One, Tamagui, Zero, Better Auth\",\n type: \"external-repo\",\n hidden: false,\n repo: {\n url: `https://github.com/tamagui/takeout-free.git`,\n sshFallback: `git@github.com:tamagui/takeout-free.git`,\n dir: [],\n branch: \"main\"\n },\n ...BasicTemplateSteps\n },\n {\n title: `Takeout Production`,\n value: \"TakeoutPro\",\n description: \"Takeout + a startup in a repo. Refined stack that's production ready. Home/Terms/Docs, CI/CD, IaC, Integration Tests, Onboarding, Notifications, OTA Updates, Screens, >50 Components, >25 Agent Docs, >30 Scripts. See https://takeout.tamagui.dev\",\n type: \"external-link\",\n hidden: false,\n externalUrl: \"https://takeout.tamagui.dev\"\n }\n];\nexport {\n templates\n};\n//# sourceMappingURL=templates.js.map\n"],"mappings":";;;AACA,MAAM,YAAY;CAChB;EACE,OAAO;EACP,OAAO;EACP,aAAa;EACb,MAAM;EACN,QAAQ;EACR,MAAM;GACJ,KAAK;GACL,aAAa;GACb,KAAK,CAAC,YAAY,WAAW;GAC7B,QAAQ;EACV;EACA,GAAG;CACL;CACA;EACE,OAAO;EACP,OAAO;EACP,aAAa;EACb,MAAM;EACN,QAAQ;EACR,MAAM;GACJ,KAAK;GACL,aAAa;GACb,KAAK,CAAC;GACN,QAAQ;EACV;EACA,GAAG;CACL;CACA;EACE,OAAO;EACP,OAAO;EACP,aAAa;EACb,MAAM;EACN,QAAQ;EACR,aAAa;CACf;AACF"}
@@ -4,7 +4,7 @@ var templates = [
4
4
  {
5
5
  title: `Basic`,
6
6
  value: "Basic",
7
- description: "The simplest starting point, vanilla Rreact Native",
7
+ description: "The simplest starting point, vanilla React Native",
8
8
  type: "included-in-monorepo",
9
9
  hidden: false,
10
10
  repo: {
@@ -1 +1 @@
1
- {"version":3,"file":"templates.native.js","names":[],"sources":["esm/templates.native.js"],"sourcesContent":["import * as BasicTemplateSteps from \"./steps/one\";\nvar templates = [\n {\n title: `Basic`,\n value: \"Basic\",\n description: \"The simplest starting point, vanilla Rreact Native\",\n type: \"included-in-monorepo\",\n hidden: false,\n repo: {\n url: `https://github.com/onejs/one.git`,\n sshFallback: `git@github.com:onejs/one.git`,\n dir: [\n `examples`,\n `one-basic`\n ],\n branch: \"main\"\n },\n ...BasicTemplateSteps\n },\n {\n title: `Takeout Free`,\n value: \"Takeout\",\n description: \"One, Tamagui, Zero, Better Auth\",\n type: \"external-repo\",\n hidden: false,\n repo: {\n url: `https://github.com/tamagui/takeout-free.git`,\n sshFallback: `git@github.com:tamagui/takeout-free.git`,\n dir: [],\n branch: \"main\"\n },\n ...BasicTemplateSteps\n },\n {\n title: `Takeout Production`,\n value: \"TakeoutPro\",\n description: \"Takeout + a startup in a repo. Refined stack that's production ready. Home/Terms/Docs, CI/CD, IaC, Integration Tests, Onboarding, Notifications, OTA Updates, Screens, >50 Components, >25 Agent Docs, >30 Scripts. See https://takeout.tamagui.dev\",\n type: \"external-link\",\n hidden: false,\n externalUrl: \"https://takeout.tamagui.dev\"\n }\n];\nexport {\n templates\n};\n//# sourceMappingURL=templates.js.map\n"],"mappings":";;;AACA,IAAI,YAAY;CACd;EACE,OAAO;EACP,OAAO;EACP,aAAa;EACb,MAAM;EACN,QAAQ;EACR,MAAM;GACJ,KAAK;GACL,aAAa;GACb,KAAK,CACH,YACA,WACF;GACA,QAAQ;EACV;EACA,GAAG;CACL;CACA;EACE,OAAO;EACP,OAAO;EACP,aAAa;EACb,MAAM;EACN,QAAQ;EACR,MAAM;GACJ,KAAK;GACL,aAAa;GACb,KAAK,CAAC;GACN,QAAQ;EACV;EACA,GAAG;CACL;CACA;EACE,OAAO;EACP,OAAO;EACP,aAAa;EACb,MAAM;EACN,QAAQ;EACR,aAAa;CACf;AACF"}
1
+ {"version":3,"file":"templates.native.js","names":[],"sources":["esm/templates.native.js"],"sourcesContent":["import * as BasicTemplateSteps from \"./steps/one\";\nvar templates = [\n {\n title: `Basic`,\n value: \"Basic\",\n description: \"The simplest starting point, vanilla React Native\",\n type: \"included-in-monorepo\",\n hidden: false,\n repo: {\n url: `https://github.com/onejs/one.git`,\n sshFallback: `git@github.com:onejs/one.git`,\n dir: [\n `examples`,\n `one-basic`\n ],\n branch: \"main\"\n },\n ...BasicTemplateSteps\n },\n {\n title: `Takeout Free`,\n value: \"Takeout\",\n description: \"One, Tamagui, Zero, Better Auth\",\n type: \"external-repo\",\n hidden: false,\n repo: {\n url: `https://github.com/tamagui/takeout-free.git`,\n sshFallback: `git@github.com:tamagui/takeout-free.git`,\n dir: [],\n branch: \"main\"\n },\n ...BasicTemplateSteps\n },\n {\n title: `Takeout Production`,\n value: \"TakeoutPro\",\n description: \"Takeout + a startup in a repo. Refined stack that's production ready. Home/Terms/Docs, CI/CD, IaC, Integration Tests, Onboarding, Notifications, OTA Updates, Screens, >50 Components, >25 Agent Docs, >30 Scripts. See https://takeout.tamagui.dev\",\n type: \"external-link\",\n hidden: false,\n externalUrl: \"https://takeout.tamagui.dev\"\n }\n];\nexport {\n templates\n};\n//# sourceMappingURL=templates.js.map\n"],"mappings":";;;AACA,IAAI,YAAY;CACd;EACE,OAAO;EACP,OAAO;EACP,aAAa;EACb,MAAM;EACN,QAAQ;EACR,MAAM;GACJ,KAAK;GACL,aAAa;GACb,KAAK,CACH,YACA,WACF;GACA,QAAQ;EACV;EACA,GAAG;CACL;CACA;EACE,OAAO;EACP,OAAO;EACP,aAAa;EACb,MAAM;EACN,QAAQ;EACR,MAAM;GACJ,KAAK;GACL,aAAa;GACb,KAAK,CAAC;GACN,QAAQ;EACV;EACA,GAAG;CACL;CACA;EACE,OAAO;EACP,OAAO;EACP,aAAa;EACb,MAAM;EACN,QAAQ;EACR,aAAa;CACf;AACF"}
package/package.json CHANGED
@@ -1,17 +1,18 @@
1
1
  {
2
2
  "name": "create-vxrn",
3
- "version": "2.0.0-beta.99.1",
3
+ "version": "2.6.0",
4
4
  "bin": {
5
5
  "create-vxrn": "run.js"
6
6
  },
7
- "main": "dist/cjs",
8
- "module": "dist/esm",
7
+ "main": "dist/cjs/index.cjs",
8
+ "module": "dist/esm/index.mjs",
9
+ "types": "./types/index.d.ts",
9
10
  "scripts": {
10
11
  "start": "./run.js",
11
12
  "prerelease": "rimraf ./dist/",
12
13
  "prepublish": "bun run build",
13
14
  "typecheck": "tsc --noEmit",
14
- "build": "tamagui-build --skip-types",
15
+ "build": "tamagui-build",
15
16
  "watch": "bun run build --watch",
16
17
  "clean": "tamagui-build clean",
17
18
  "clean:build": "tamagui-build clean:build"
@@ -21,17 +22,17 @@
21
22
  ".": {
22
23
  "types": "./types/index.d.ts",
23
24
  "import": "./dist/esm/index.mjs",
24
- "require": "./dist/cjs/index.js"
25
+ "require": "./dist/cjs/index.cjs"
25
26
  },
26
27
  "./create": {
27
28
  "types": "./types/create.d.ts",
28
29
  "import": "./dist/esm/create.mjs",
29
- "require": "./dist/cjs/create.js"
30
+ "require": "./dist/cjs/create.cjs"
30
31
  }
31
32
  },
32
33
  "dependencies": {
33
34
  "@types/validate-npm-package-name": "^4.0.2",
34
- "@vxrn/utils": "2.0.0-beta.99.1",
35
+ "@vxrn/utils": "2.6.0",
35
36
  "ansis": "^3.1.0",
36
37
  "async-retry": "1.3.1",
37
38
  "citty": "^0.1.6",
@@ -43,13 +44,14 @@
43
44
  "yocto-spinner": "^0.1.0"
44
45
  },
45
46
  "devDependencies": {
46
- "@tamagui/build": "3.0.0-beta.1432.1",
47
+ "@tamagui/build": "3.0.3",
47
48
  "@types/prompts": "^2.4.9",
48
49
  "typescript": "7.0.2"
49
50
  },
50
51
  "publishConfig": {
51
52
  "access": "public"
52
53
  },
54
+ "releaseSourceCommit": "9822993504bd9422425d1d6ee9bfbe96f84c909c",
53
55
  "repository": {
54
56
  "type": "git",
55
57
  "url": "git+https://github.com/onejs/one.git",
package/src/create.ts CHANGED
@@ -99,23 +99,6 @@ export async function create(args: { template?: string; name?: string }) {
99
99
  },
100
100
  }).start()
101
101
 
102
- await FSExtra.mkdir(resolvedProjectPath)
103
-
104
- try {
105
- await cloneStarter(template as any, resolvedProjectPath)
106
- process.chdir(resolvedProjectPath)
107
- } catch (e) {
108
- console.error(`[vxrn] Failed to copy example into ${resolvedProjectPath}\n\n`, e)
109
- process.exit(1)
110
- }
111
-
112
- spinner.stop()
113
- console.info()
114
- console.info()
115
- console.info(ansis.green(`${projectName} created!`))
116
- console.info()
117
- console.info()
118
-
119
102
  const packageJson = await (async () => {
120
103
  const errorMessages: string[] = []
121
104
 
@@ -150,6 +133,23 @@ export async function create(args: { template?: string; name?: string }) {
150
133
  }
151
134
  })()
152
135
 
136
+ await FSExtra.mkdir(resolvedProjectPath)
137
+
138
+ try {
139
+ await cloneStarter(template as any, resolvedProjectPath)
140
+ process.chdir(resolvedProjectPath)
141
+ } catch (e) {
142
+ console.error(`[vxrn] Failed to copy example into ${resolvedProjectPath}\n\n`, e)
143
+ process.exit(1)
144
+ }
145
+
146
+ spinner.stop()
147
+ console.info()
148
+ console.info()
149
+ console.info(ansis.green(`${projectName} created!`))
150
+ console.info()
151
+ console.info()
152
+
153
153
  // change root package.json's name to project name
154
154
  updatePackageJsonName(projectName, resolvedProjectPath)
155
155
  // replace `"workspace:*"` with the actual version
@@ -163,7 +163,8 @@ export async function create(args: { template?: string; name?: string }) {
163
163
  }
164
164
  const found = await detectPackageManager()
165
165
 
166
- const allFound = Object.keys(found) as PackageManagerName[]
166
+ // found maps every manager to whether it is installed; count only the installed ones
167
+ const allFound = (Object.keys(found) as PackageManagerName[]).filter((x) => found[x])
167
168
 
168
169
  if (allFound.length === 1) {
169
170
  return allFound[0]
@@ -173,9 +174,7 @@ export async function create(args: { template?: string; name?: string }) {
173
174
  name: 'packageManager',
174
175
  type: 'select',
175
176
  message: `Package Manager:`,
176
- choices: allFound
177
- .filter((x) => found[x])
178
- .map((name) => ({
177
+ choices: allFound.map((name) => ({
179
178
  title: name,
180
179
  value: name,
181
180
  })),
@@ -240,11 +239,11 @@ function updatePackageJsonVersions(version: string, dir: string) {
240
239
  const packageJsonPath = path.join(dir, 'package.json')
241
240
  if (existsSync(packageJsonPath)) {
242
241
  const content = readFileSync(packageJsonPath).toString()
243
- // https://yarnpkg.com/features/workspaces#cross-references
244
- const contentWithUpdatedVersions = content
245
- .replace(/"workspace:\^"/gm, `"^${version}"`)
246
- .replace(/"workspace:~"/gm, `"~${version}"`)
247
- .replace(/"workspace:\*"/gm, `"^${version}"`)
242
+ // pin the matching release; ranges can resolve to unrelated legacy packages
243
+ const contentWithUpdatedVersions = content.replace(
244
+ /"workspace:(?:\^|~|\*)"/gm,
245
+ `"${version}"`
246
+ )
248
247
  writeFileSync(packageJsonPath, contentWithUpdatedVersions)
249
248
  }
250
249
  }
@@ -12,9 +12,12 @@ export const cloneStarter = async (
12
12
  template: CloneableTemplate,
13
13
  resolvedProjectPath: string
14
14
  ) => {
15
+ const branch = template.repo.branch
16
+
15
17
  const dir = await setupVxrnDotDir(
16
18
  template,
17
- join(vxrnDir, 'vxrn', template.repo.url.split('/').at(-1)!)
19
+ branch,
20
+ join(vxrnDir, 'vxrn', `${template.repo.url.split('/').at(-1)!}-${branch}`)
18
21
  )
19
22
 
20
23
  if (!(await pathExists(dir))) {
@@ -36,11 +39,10 @@ export const cloneStarter = async (
36
39
 
37
40
  async function setupVxrnDotDir(
38
41
  template: CloneableTemplate,
42
+ branch: string,
39
43
  targetGitDir: string,
40
44
  isRetry = false
41
45
  ) {
42
- const branch = template.repo.branch
43
-
44
46
  await ensureDir(vxrnDir)
45
47
 
46
48
  const isInSubDir = template.repo.dir.length > 0
@@ -113,7 +115,7 @@ async function setupVxrnDotDir(
113
115
  process.exit(1)
114
116
  }
115
117
  await rimraf(targetGitDir)
116
- return await setupVxrnDotDir(template, targetGitDir, true)
118
+ return await setupVxrnDotDir(template, branch, targetGitDir, true)
117
119
  }
118
120
  }
119
121
 
package/src/index.ts CHANGED
@@ -57,7 +57,7 @@ const main = defineCommand({
57
57
  console.info() // this newline prevents the ascii art from breaking
58
58
  console.info(ansis.bold('Creating vxrn app...'))
59
59
 
60
- await create({ template: args.template })
60
+ await create({ name: args.directory, template: args.template })
61
61
  },
62
62
  })
63
63
 
package/src/templates.ts CHANGED
@@ -4,7 +4,7 @@ export const templates = [
4
4
  {
5
5
  title: `Basic`,
6
6
  value: 'Basic',
7
- description: 'The simplest starting point, vanilla Rreact Native',
7
+ description: 'The simplest starting point, vanilla React Native',
8
8
  type: 'included-in-monorepo',
9
9
  hidden: false,
10
10
  repo: {
@@ -0,0 +1,5 @@
1
+ export declare function create(args: {
2
+ template?: string;
3
+ name?: string;
4
+ }): Promise<void>;
5
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AAiBA,wBAAsB,MAAM,CAAC,IAAI,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,iBA8MtE"}
@@ -0,0 +1,3 @@
1
+ import type { CloneableTemplate } from '../templates';
2
+ export declare const cloneStarter: (template: CloneableTemplate, resolvedProjectPath: string) => Promise<void>;
3
+ //# sourceMappingURL=cloneStarter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneStarter.d.ts","sourceRoot":"","sources":["../../src/helpers/cloneStarter.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAMrD,eAAO,MAAM,YAAY,aACb,iBAAiB,uBACN,MAAM,kBAyB5B,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const getProjectName: (projectPath?: string) => Promise<string>;
2
+ //# sourceMappingURL=getProjectName.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getProjectName.d.ts","sourceRoot":"","sources":["../../src/helpers/getProjectName.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,cAAc,iBAAwB,MAAM,oBA6CxD,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { templates } from '../templates';
2
+ export declare const getTemplateInfo: (template?: string) => Promise<(typeof templates)[number]>;
3
+ //# sourceMappingURL=getTemplateInfo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTemplateInfo.d.ts","sourceRoot":"","sources":["../../src/helpers/getTemplateInfo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAIxC,eAAO,MAAM,eAAe,cACf,MAAM,KAChB,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAuBpC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare function installDependencies(projectRoot: string, packageManager: 'yarn' | 'npm' | 'pnpm' | 'bun'): Promise<void>;
2
+ //# sourceMappingURL=installDependencies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installDependencies.d.ts","sourceRoot":"","sources":["../../src/helpers/installDependencies.ts"],"names":[],"mappings":"AAEA,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,iBA2BhD"}
@@ -0,0 +1,5 @@
1
+ export declare function validateNpmName(name: string): {
2
+ valid: boolean;
3
+ problems?: string[];
4
+ };
5
+ //# sourceMappingURL=validateNpmPackage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateNpmPackage.d.ts","sourceRoot":"","sources":["../../src/helpers/validateNpmPackage.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG;IAC7C,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB,CAUA"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}