create-vxrn 2.8.1 → 2.9.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.
@@ -1,2 +1,2 @@
1
1
  $ tamagui-build
2
- built create-vxrn in 295 ms
2
+ built create-vxrn in 598 ms
@@ -53,13 +53,13 @@ async function create(args) {
53
53
  `);
54
54
  process.exit(1);
55
55
  }
56
- let projectName = args.name || "";
57
- let resolvedProjectPath = import_node_path.default.resolve(process.cwd(), projectName);
56
+ let projectDir = args.name || "";
57
+ let resolvedProjectPath = import_node_path.default.resolve(process.cwd(), projectDir);
58
58
  async function promptForName() {
59
- projectName = await (0, import_getProjectName.getProjectName)();
60
- resolvedProjectPath = import_node_path.default.resolve(process.cwd(), projectName);
59
+ projectDir = await (0, import_getProjectName.getProjectName)();
60
+ resolvedProjectPath = import_node_path.default.resolve(process.cwd(), projectDir);
61
61
  }
62
- if (projectName) {
62
+ if (projectDir) {
63
63
  if (import_node_fs.default.existsSync(resolvedProjectPath)) {
64
64
  console.error(`Error: folder already exists: ${resolvedProjectPath}`);
65
65
  process.exit(1);
@@ -68,7 +68,7 @@ async function create(args) {
68
68
  await promptForName();
69
69
  while (import_node_fs.default.existsSync(resolvedProjectPath)) {
70
70
  console.info();
71
- console.info(import_ansis.default.yellow("!"), `The folder ${import_ansis.default.underline(import_ansis.default.blueBright(projectName))} already exists, lets try another name`);
71
+ console.info(import_ansis.default.yellow("!"), `The folder ${import_ansis.default.underline(import_ansis.default.blueBright(projectDir))} already exists, lets try another name`);
72
72
  console.info();
73
73
  console.info();
74
74
  await promptForName();
@@ -76,6 +76,7 @@ async function create(args) {
76
76
  }
77
77
  console.info();
78
78
  let template = await (0, import_getTemplateInfo.getTemplateInfo)(args.template);
79
+ const projectName = import_node_path.default.basename(resolvedProjectPath);
79
80
  const { valid, problems } = (0, import_validateNpmPackage.validateNpmName)(projectName);
80
81
  if (!valid) {
81
82
  console.error(`Could not create a project called ${import_ansis.default.red(`"${projectName}"`)} because of npm naming restrictions:`);
@@ -175,6 +176,7 @@ async function create(args) {
175
176
  packageManager,
176
177
  isFullClone: true,
177
178
  projectName,
179
+ projectDir,
178
180
  projectPath: resolvedProjectPath
179
181
  });
180
182
  }
@@ -198,6 +200,7 @@ ${e}`);
198
200
  packageManager,
199
201
  isFullClone: true,
200
202
  projectName,
203
+ projectDir,
201
204
  projectPath: resolvedProjectPath
202
205
  });
203
206
  }
@@ -55,13 +55,13 @@ async function create(args) {
55
55
  `);
56
56
  process.exit(1);
57
57
  }
58
- var projectName = args.name || "";
59
- var resolvedProjectPath = import_path.default.resolve(process.cwd(), projectName);
58
+ var projectDir = args.name || "";
59
+ var resolvedProjectPath = import_path.default.resolve(process.cwd(), projectDir);
60
60
  async function promptForName() {
61
- projectName = await (0, import_getProjectName.getProjectName)();
62
- resolvedProjectPath = import_path.default.resolve(process.cwd(), projectName);
61
+ projectDir = await (0, import_getProjectName.getProjectName)();
62
+ resolvedProjectPath = import_path.default.resolve(process.cwd(), projectDir);
63
63
  }
64
- if (projectName) {
64
+ if (projectDir) {
65
65
  if (import_fs.default.existsSync(resolvedProjectPath)) {
66
66
  console.error(`Error: folder already exists: ${resolvedProjectPath}`);
67
67
  process.exit(1);
@@ -70,7 +70,7 @@ async function create(args) {
70
70
  await promptForName();
71
71
  while (import_fs.default.existsSync(resolvedProjectPath)) {
72
72
  console.info();
73
- console.info(import_ansis.default.yellow("!"), `The folder ${import_ansis.default.underline(import_ansis.default.blueBright(projectName))} already exists, lets try another name`);
73
+ console.info(import_ansis.default.yellow("!"), `The folder ${import_ansis.default.underline(import_ansis.default.blueBright(projectDir))} already exists, lets try another name`);
74
74
  console.info();
75
75
  console.info();
76
76
  await promptForName();
@@ -78,6 +78,7 @@ async function create(args) {
78
78
  }
79
79
  console.info();
80
80
  var template = await (0, import_getTemplateInfo.getTemplateInfo)(args.template);
81
+ var projectName = import_path.default.basename(resolvedProjectPath);
81
82
  var { valid, problems } = (0, import_validateNpmPackage.validateNpmName)(projectName);
82
83
  if (!valid) {
83
84
  console.error(`Could not create a project called ${import_ansis.default.red(`"${projectName}"`)} because of npm naming restrictions:`);
@@ -202,6 +203,7 @@ async function create(args) {
202
203
  packageManager,
203
204
  isFullClone: true,
204
205
  projectName,
206
+ projectDir,
205
207
  projectPath: resolvedProjectPath
206
208
  });
207
209
  }
@@ -225,6 +227,7 @@ ${e}`);
225
227
  packageManager,
226
228
  isFullClone: true,
227
229
  projectName,
230
+ projectDir,
228
231
  projectPath: resolvedProjectPath
229
232
  });
230
233
  }
@@ -55,13 +55,13 @@ async function create(args) {
55
55
  `);
56
56
  process.exit(1);
57
57
  }
58
- var projectName = args.name || "";
59
- var resolvedProjectPath = import_path.default.resolve(process.cwd(), projectName);
58
+ var projectDir = args.name || "";
59
+ var resolvedProjectPath = import_path.default.resolve(process.cwd(), projectDir);
60
60
  async function promptForName() {
61
- projectName = await (0, import_getProjectName.getProjectName)();
62
- resolvedProjectPath = import_path.default.resolve(process.cwd(), projectName);
61
+ projectDir = await (0, import_getProjectName.getProjectName)();
62
+ resolvedProjectPath = import_path.default.resolve(process.cwd(), projectDir);
63
63
  }
64
- if (projectName) {
64
+ if (projectDir) {
65
65
  if (import_fs.default.existsSync(resolvedProjectPath)) {
66
66
  console.error(`Error: folder already exists: ${resolvedProjectPath}`);
67
67
  process.exit(1);
@@ -70,7 +70,7 @@ async function create(args) {
70
70
  await promptForName();
71
71
  while (import_fs.default.existsSync(resolvedProjectPath)) {
72
72
  console.info();
73
- console.info(import_ansis.default.yellow("!"), `The folder ${import_ansis.default.underline(import_ansis.default.blueBright(projectName))} already exists, lets try another name`);
73
+ console.info(import_ansis.default.yellow("!"), `The folder ${import_ansis.default.underline(import_ansis.default.blueBright(projectDir))} already exists, lets try another name`);
74
74
  console.info();
75
75
  console.info();
76
76
  await promptForName();
@@ -78,6 +78,7 @@ async function create(args) {
78
78
  }
79
79
  console.info();
80
80
  var template = await (0, import_getTemplateInfo.getTemplateInfo)(args.template);
81
+ var projectName = import_path.default.basename(resolvedProjectPath);
81
82
  var { valid, problems } = (0, import_validateNpmPackage.validateNpmName)(projectName);
82
83
  if (!valid) {
83
84
  console.error(`Could not create a project called ${import_ansis.default.red(`"${projectName}"`)} because of npm naming restrictions:`);
@@ -202,6 +203,7 @@ async function create(args) {
202
203
  packageManager,
203
204
  isFullClone: true,
204
205
  projectName,
206
+ projectDir,
205
207
  projectPath: resolvedProjectPath
206
208
  });
207
209
  }
@@ -225,6 +227,7 @@ ${e}`);
225
227
  packageManager,
226
228
  isFullClone: true,
227
229
  projectName,
230
+ projectDir,
228
231
  projectPath: resolvedProjectPath
229
232
  });
230
233
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create.native.js","names":[],"sources":["cjs/create.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar create_exports = {};\n__export(create_exports, {\n create: () => create\n});\nmodule.exports = __toCommonJS(create_exports);\nvar import_ansis = __toESM(require(\"ansis\"));\nvar import_fs_extra = __toESM(require(\"fs-extra\"));\nvar import_child_process = require(\"child_process\");\nvar import_fs = __toESM(require(\"fs\"));\nvar import_path = __toESM(require(\"path\"));\nvar import_util = require(\"util\");\nvar import_url = require(\"url\");\nvar import_cloneStarter = require(\"./helpers/cloneStarter\");\nvar import_getProjectName = require(\"./helpers/getProjectName\");\nvar import_getTemplateInfo = require(\"./helpers/getTemplateInfo\");\nvar import_installDependencies = require(\"./helpers/installDependencies\");\nvar import_validateNpmPackage = require(\"./helpers/validateNpmPackage\");\nvar import_prompts = __toESM(require(\"prompts\"));\nvar import_utils = require(\"@vxrn/utils\");\nconst import_meta = {};\nvar { existsSync, readFileSync, writeFileSync } = import_fs_extra.default;\nasync function create(args) {\n var gitVersionString = Number.parseFloat((0, import_child_process.execSync)(`git --version`).toString().replace(`git version `, \"\").trim());\n if (gitVersionString < 2.27) {\n console.error(`\n\n ! vxrn can't install: Git version must be >= 2.27\n\n`);\n process.exit(1);\n }\n var projectName = args.name || \"\";\n var resolvedProjectPath = import_path.default.resolve(process.cwd(), projectName);\n async function promptForName() {\n projectName = await (0, import_getProjectName.getProjectName)();\n resolvedProjectPath = import_path.default.resolve(process.cwd(), projectName);\n }\n if (projectName) {\n if (import_fs.default.existsSync(resolvedProjectPath)) {\n console.error(`Error: folder already exists: ${resolvedProjectPath}`);\n process.exit(1);\n }\n } else {\n await promptForName();\n while (import_fs.default.existsSync(resolvedProjectPath)) {\n console.info();\n console.info(import_ansis.default.yellow(\"!\"), `The folder ${import_ansis.default.underline(import_ansis.default.blueBright(projectName))} already exists, lets try another name`);\n console.info();\n console.info();\n await promptForName();\n }\n }\n console.info();\n var template = await (0, import_getTemplateInfo.getTemplateInfo)(args.template);\n var { valid, problems } = (0, import_validateNpmPackage.validateNpmName)(projectName);\n if (!valid) {\n console.error(`Could not create a project called ${import_ansis.default.red(`\"${projectName}\"`)} because of npm naming restrictions:`);\n problems.forEach(function(p) {\n return console.error(` ${import_ansis.default.red.bold(\"*\")} ${p}`);\n });\n process.exit(1);\n }\n console.info();\n var Spinner = await import(\"yocto-spinner\").then(function(x) {\n return x.default;\n });\n var spinner = Spinner({\n text: `Creating...`,\n spinner: {\n frames: [\n \"\\u280B\",\n \"\\u2819\",\n \"\\u2839\",\n \"\\u2838\",\n \"\\u283C\",\n \"\\u2834\",\n \"\\u2826\",\n \"\\u2827\",\n \"\\u2807\",\n \"\\u280F\"\n ],\n interval: 100\n }\n }).start();\n var packageJson = await (async function() {\n var errorMessages = [];\n try {\n var dirname = typeof __dirname !== \"undefined\" ? __dirname : import_path.default.dirname((0, import_url.fileURLToPath)(import_meta.url));\n var possiblePaths = [\n import_path.default.join(dirname, \"..\", \"package.json\"),\n import_path.default.join(dirname, \"..\", \"..\", \"package.json\"),\n import_path.default.join(dirname, \"..\", \"..\", \"..\", \"package.json\")\n ];\n var readFile = (0, import_util.promisify)(import_fs.default.readFile);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = possiblePaths[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var p = _step.value;\n try {\n var data = JSON.parse(await readFile(p));\n return data;\n } catch (e) {\n if (e instanceof Error) errorMessages.push(e.message);\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 throw new Error(\"package.json not found in any of the expected locations.\");\n } catch (e) {\n console.error(\"Failed to load package.json:\", errorMessages.join(\"\\n\"));\n throw e;\n }\n })();\n await import_fs_extra.default.mkdir(resolvedProjectPath);\n try {\n await (0, import_cloneStarter.cloneStarter)(template, resolvedProjectPath);\n process.chdir(resolvedProjectPath);\n } catch (e) {\n console.error(`[vxrn] Failed to copy example into ${resolvedProjectPath}\n\n`, e);\n process.exit(1);\n }\n spinner.stop();\n console.info();\n console.info();\n console.info(import_ansis.default.green(`${projectName} created!`));\n console.info();\n console.info();\n updatePackageJsonName(projectName, resolvedProjectPath);\n updatePackageJsonVersions(packageJson.version, resolvedProjectPath);\n updateAppJsonName(projectName, resolvedProjectPath);\n var packageManager = await (async function() {\n if (\"packageManager\" in template) {\n return template.packageManager;\n }\n var found = await (0, import_utils.detectPackageManager)();\n var allFound = Object.keys(found).filter(function(x) {\n return found[x];\n });\n if (allFound.length === 1) {\n return allFound[0];\n }\n var response = await (0, import_prompts.default)({\n name: \"packageManager\",\n type: \"select\",\n message: `Package Manager:`,\n choices: allFound.map(function(name) {\n return {\n title: name,\n value: name\n };\n })\n });\n return response.packageManager;\n })();\n if (!packageManager) {\n console.info(\"Dependency installation canceled.\");\n return;\n }\n console.info();\n if (\"preInstall\" in template) {\n await template.preInstall({\n packageManager,\n isFullClone: true,\n projectName,\n projectPath: resolvedProjectPath\n });\n }\n try {\n console.info();\n console.info(import_ansis.default.green(`Installing with ${packageManager}...`));\n console.info();\n await (0, import_installDependencies.installDependencies)(resolvedProjectPath, packageManager);\n } catch (e) {\n console.error(\"[vxrn] error installing with \" + packageManager + `\n${e}`);\n process.exit(1);\n }\n var envDefault = import_path.default.join(resolvedProjectPath, \".env.default\");\n var env = import_path.default.join(resolvedProjectPath, \".env\");\n if (existsSync(envDefault) && !existsSync(env)) {\n await import_fs_extra.default.move(envDefault, env);\n }\n if (\"extraSteps\" in template) {\n await template.extraSteps({\n packageManager,\n isFullClone: true,\n projectName,\n projectPath: resolvedProjectPath\n });\n }\n console.info();\n}\nfunction updatePackageJsonName(projectName, dir) {\n var packageJsonPath = import_path.default.join(dir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n var content = readFileSync(packageJsonPath).toString();\n var contentWithUpdatedName = content.replace(/(\"name\": \")(.*)(\",)/, `$1${projectName}$3`);\n writeFileSync(packageJsonPath, contentWithUpdatedName);\n }\n}\nfunction updatePackageJsonVersions(version, dir) {\n var packageJsonPath = import_path.default.join(dir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n var content = readFileSync(packageJsonPath).toString();\n var contentWithUpdatedVersions = content.replace(/\"workspace:(?:\\^|~|\\*)\"/gm, `\"${version}\"`);\n writeFileSync(packageJsonPath, contentWithUpdatedVersions);\n }\n}\nfunction updateAppJsonName(projectName, dir) {\n var appJsonPath = import_path.default.join(dir, \"app.json\");\n if (existsSync(appJsonPath)) {\n var content = readFileSync(appJsonPath).toString();\n var projectSlug = projectName.toLowerCase().replace(/\\s/g, \"-\");\n var contentWithUpdatedName = content.replace(/(\"name\": \")(.*)(\",)/, `$1${projectName}$3`).replace(/(\"slug\": \")(.*)(\",)/, `$1${projectSlug}$3`);\n writeFileSync(appJsonPath, contentWithUpdatedName);\n }\n}\n//# sourceMappingURL=create.js.map\n"],"mappings":";;;AACA,IAAI,WAAW,OAAO;AACtB,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO;AAC1B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,YAAY,QAAQ,QAAQ;CAC9B,KAAK,IAAI,QAAQ,KACf,UAAU,QAAQ,MAAM;EAAE,KAAK,IAAI;EAAO,YAAY;CAAK,CAAC;AAChE;AACA,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,WAAW,KAAK,YAAY,YAAY,SAAS,OAAO,OAAO,SAAS,aAAa,GAAG,CAAC,IAAI,CAAC,GAAG,YAKnG,cAAc,CAAC,OAAO,CAAC,IAAI,aAAa,UAAU,QAAQ,WAAW;CAAE,OAAO;CAAK,YAAY;AAAK,CAAC,IAAI,QACzG,GACF;AACA,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,iBAAiB,CAAC;AACtB,SAAS,gBAAgB,EACvB,cAAc,OAChB,CAAC;AACD,OAAO,UAAU,aAAa,cAAc;AAC5C,IAAI,eAAe,QAAQ,QAAQ,OAAO,CAAC;AAC3C,IAAI,kBAAkB,QAAQ,QAAQ,UAAU,CAAC;AACjD,IAAI,uBAAuB,QAAQ,eAAe;AAClD,IAAI,YAAY,QAAQ,QAAQ,IAAI,CAAC;AACrC,IAAI,cAAc,QAAQ,QAAQ,MAAM,CAAC;AACzC,IAAI,cAAc,QAAQ,MAAM;AAChC,IAAI,aAAa,QAAQ,KAAK;AAC9B,IAAI,sBAAsB,QAAQ,kCAAwB;AAC1D,IAAI,wBAAwB,QAAQ,oCAA0B;AAC9D,IAAI,yBAAyB,QAAQ,qCAA2B;AAChE,IAAI,6BAA6B,QAAQ,yCAA+B;AACxE,IAAI,4BAA4B,QAAQ,wCAA8B;AACtE,IAAI,iBAAiB,QAAQ,QAAQ,SAAS,CAAC;AAC/C,IAAI,eAAe,QAAQ,aAAa;AACxC,MAAM,cAAc,CAAC;AACrB,IAAI,EAAE,YAAY,cAAc,kBAAkB,gBAAgB;AAClE,eAAe,OAAO,MAAM;CAC1B,IAAI,mBAAmB,OAAO,YAAY,GAAG,qBAAqB,SAAQ,CAAE,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC;CAC1I,IAAI,mBAAmB,MAAM;EAC3B,QAAQ,MAAM;;;;CAIjB;EACG,QAAQ,KAAK,CAAC;CAChB;CACA,IAAI,cAAc,KAAK,QAAQ;CAC/B,IAAI,sBAAsB,YAAY,QAAQ,QAAQ,QAAQ,IAAI,GAAG,WAAW;CAChF,eAAe,gBAAgB;EAC7B,cAAc,OAAO,GAAG,sBAAsB,eAAc,CAAE;EAC9D,sBAAsB,YAAY,QAAQ,QAAQ,QAAQ,IAAI,GAAG,WAAW;CAC9E;CACA,IAAI,aAAa;EACf,IAAI,UAAU,QAAQ,WAAW,mBAAmB,GAAG;GACrD,QAAQ,MAAM,iCAAiC,qBAAqB;GACpE,QAAQ,KAAK,CAAC;EAChB;CACF,OAAO;EACL,MAAM,cAAc;EACpB,OAAO,UAAU,QAAQ,WAAW,mBAAmB,GAAG;GACxD,QAAQ,KAAK;GACb,QAAQ,KAAK,aAAa,QAAQ,OAAO,GAAG,GAAG,cAAc,aAAa,QAAQ,UAAU,aAAa,QAAQ,WAAW,WAAW,CAAC,EAAE,uCAAuC;GACjL,QAAQ,KAAK;GACb,QAAQ,KAAK;GACb,MAAM,cAAc;EACtB;CACF;CACA,QAAQ,KAAK;CACb,IAAI,WAAW,OAAO,GAAG,uBAAuB,gBAAe,CAAE,KAAK,QAAQ;CAC9E,IAAI,EAAE,OAAO,cAAc,GAAG,0BAA0B,gBAAe,CAAE,WAAW;CACpF,IAAI,CAAC,OAAO;EACV,QAAQ,MAAM,qCAAqC,aAAa,QAAQ,IAAI,IAAI,YAAY,EAAE,EAAE,qCAAqC;EACrI,SAAS,QAAQ,SAAS,GAAG;GAC3B,OAAO,QAAQ,MAAM,OAAO,aAAa,QAAQ,IAAI,KAAK,GAAG,EAAE,GAAG,GAAG;EACvE,CAAC;EACD,QAAQ,KAAK,CAAC;CAChB;CACA,QAAQ,KAAK;CACb,IAAI,UAAU,MAAM,OAAO,gBAAgB,CAAC,KAAK,SAAS,GAAG;EAC3D,OAAO,EAAE;CACX,CAAC;CACD,IAAI,UAAU,QAAQ;EACpB,MAAM;EACN,SAAS;GACP,QAAQ;IACN;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACF;GACA,UAAU;EACZ;CACF,CAAC,CAAC,CAAC,MAAM;CACT,IAAI,cAAc,OAAO,iBAAiB;EACxC,IAAI,gBAAgB,CAAC;EACrB,IAAI;GACF,IAAI,UAAU,OAAO,cAAc,cAAc,YAAY,YAAY,QAAQ,SAAS,GAAG,WAAW,cAAa,CAAE,YAAY,GAAG,CAAC;GACvI,IAAI,gBAAgB;IAClB,YAAY,QAAQ,KAAK,SAAS,MAAM,cAAc;IACtD,YAAY,QAAQ,KAAK,SAAS,MAAM,MAAM,cAAc;IAC5D,YAAY,QAAQ,KAAK,SAAS,MAAM,MAAM,MAAM,cAAc;GACpE;GACA,IAAI,YAAY,GAAG,YAAY,UAAS,CAAE,UAAU,QAAQ,QAAQ;GACpE,IAAI,4BAA4B,MAAM,oBAAoB,OAAO,iBAAiB,KAAK;GACvF,IAAI;IACF,KAAK,IAAI,YAAY,cAAc,OAAO,SAAS,CAAC,GAAG,OAAO,EAAE,6BAA6B,QAAQ,UAAU,KAAK,EAAC,CAAE,OAAO,4BAA4B,MAAM;KAC9J,IAAI,IAAI,MAAM;KACd,IAAI;MACF,IAAI,OAAO,KAAK,MAAM,MAAM,SAAS,CAAC,CAAC;MACvC,OAAO;KACT,SAAS,GAAG;MACV,IAAI,aAAa,OAAO,cAAc,KAAK,EAAE,OAAO;KACtD;IACF;GACF,SAAS,KAAK;IACZ,oBAAoB;IACpB,iBAAiB;GACnB,UAAU;IACR,IAAI;KACF,IAAI,CAAC,6BAA6B,UAAU,UAAU,MAAM;MAC1D,UAAU,OAAO;KACnB;IACF,UAAU;KACR,IAAI,mBAAmB;MACrB,MAAM;KACR;IACF;GACF;GACA,MAAM,IAAI,MAAM,0DAA0D;EAC5E,SAAS,GAAG;GACV,QAAQ,MAAM,gCAAgC,cAAc,KAAK,IAAI,CAAC;GACtE,MAAM;EACR;CACF,EAAC,CAAE;CACH,MAAM,gBAAgB,QAAQ,MAAM,mBAAmB;CACvD,IAAI;EACF,OAAO,GAAG,oBAAoB,aAAY,CAAE,UAAU,mBAAmB;EACzE,QAAQ,MAAM,mBAAmB;CACnC,SAAS,GAAG;EACV,QAAQ,MAAM,sCAAsC,oBAAoB;;GAEzE,CAAC;EACA,QAAQ,KAAK,CAAC;CAChB;CACA,QAAQ,KAAK;CACb,QAAQ,KAAK;CACb,QAAQ,KAAK;CACb,QAAQ,KAAK,aAAa,QAAQ,MAAM,GAAG,YAAY,UAAU,CAAC;CAClE,QAAQ,KAAK;CACb,QAAQ,KAAK;CACb,sBAAsB,aAAa,mBAAmB;CACtD,0BAA0B,YAAY,SAAS,mBAAmB;CAClE,kBAAkB,aAAa,mBAAmB;CAClD,IAAI,iBAAiB,OAAO,iBAAiB;EAC3C,IAAI,oBAAoB,UAAU;GAChC,OAAO,SAAS;EAClB;EACA,IAAI,QAAQ,OAAO,GAAG,aAAa,qBAAoB,CAAE;EACzD,IAAI,WAAW,OAAO,KAAK,KAAK,CAAC,CAAC,OAAO,SAAS,GAAG;GACnD,OAAO,MAAM;EACf,CAAC;EACD,IAAI,SAAS,WAAW,GAAG;GACzB,OAAO,SAAS;EAClB;EACA,IAAI,WAAW,OAAO,GAAG,eAAe,QAAO,CAAE;GAC/C,MAAM;GACN,MAAM;GACN,SAAS;GACT,SAAS,SAAS,IAAI,SAAS,MAAM;IACnC,OAAO;KACL,OAAO;KACP,OAAO;IACT;GACF,CAAC;EACH,CAAC;EACD,OAAO,SAAS;CAClB,EAAC,CAAE;CACH,IAAI,CAAC,gBAAgB;EACnB,QAAQ,KAAK,mCAAmC;EAChD;CACF;CACA,QAAQ,KAAK;CACb,IAAI,gBAAgB,UAAU;EAC5B,MAAM,SAAS,WAAW;GACxB;GACA,aAAa;GACb;GACA,aAAa;EACf,CAAC;CACH;CACA,IAAI;EACF,QAAQ,KAAK;EACb,QAAQ,KAAK,aAAa,QAAQ,MAAM,mBAAmB,eAAe,IAAI,CAAC;EAC/E,QAAQ,KAAK;EACb,OAAO,GAAG,2BAA2B,oBAAmB,CAAE,qBAAqB,cAAc;CAC/F,SAAS,GAAG;EACV,QAAQ,MAAM,kCAAkC,iBAAiB;EACnE,GAAG;EACD,QAAQ,KAAK,CAAC;CAChB;CACA,IAAI,aAAa,YAAY,QAAQ,KAAK,qBAAqB,cAAc;CAC7E,IAAI,MAAM,YAAY,QAAQ,KAAK,qBAAqB,MAAM;CAC9D,IAAI,WAAW,UAAU,KAAK,CAAC,WAAW,GAAG,GAAG;EAC9C,MAAM,gBAAgB,QAAQ,KAAK,YAAY,GAAG;CACpD;CACA,IAAI,gBAAgB,UAAU;EAC5B,MAAM,SAAS,WAAW;GACxB;GACA,aAAa;GACb;GACA,aAAa;EACf,CAAC;CACH;CACA,QAAQ,KAAK;AACf;AACA,SAAS,sBAAsB,aAAa,KAAK;CAC/C,IAAI,kBAAkB,YAAY,QAAQ,KAAK,KAAK,cAAc;CAClE,IAAI,WAAW,eAAe,GAAG;EAC/B,IAAI,UAAU,aAAa,eAAe,CAAC,CAAC,SAAS;EACrD,IAAI,yBAAyB,QAAQ,QAAQ,uBAAuB,KAAK,YAAY,GAAG;EACxF,cAAc,iBAAiB,sBAAsB;CACvD;AACF;AACA,SAAS,0BAA0B,SAAS,KAAK;CAC/C,IAAI,kBAAkB,YAAY,QAAQ,KAAK,KAAK,cAAc;CAClE,IAAI,WAAW,eAAe,GAAG;EAC/B,IAAI,UAAU,aAAa,eAAe,CAAC,CAAC,SAAS;EACrD,IAAI,6BAA6B,QAAQ,QAAQ,6BAA6B,IAAI,QAAQ,EAAE;EAC5F,cAAc,iBAAiB,0BAA0B;CAC3D;AACF;AACA,SAAS,kBAAkB,aAAa,KAAK;CAC3C,IAAI,cAAc,YAAY,QAAQ,KAAK,KAAK,UAAU;CAC1D,IAAI,WAAW,WAAW,GAAG;EAC3B,IAAI,UAAU,aAAa,WAAW,CAAC,CAAC,SAAS;EACjD,IAAI,cAAc,YAAY,YAAY,CAAC,CAAC,QAAQ,OAAO,GAAG;EAC9D,IAAI,yBAAyB,QAAQ,QAAQ,uBAAuB,KAAK,YAAY,GAAG,CAAC,CAAC,QAAQ,uBAAuB,KAAK,YAAY,GAAG;EAC7I,cAAc,aAAa,sBAAsB;CACnD;AACF"}
1
+ {"version":3,"file":"create.native.js","names":[],"sources":["cjs/create.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar create_exports = {};\n__export(create_exports, {\n create: () => create\n});\nmodule.exports = __toCommonJS(create_exports);\nvar import_ansis = __toESM(require(\"ansis\"));\nvar import_fs_extra = __toESM(require(\"fs-extra\"));\nvar import_child_process = require(\"child_process\");\nvar import_fs = __toESM(require(\"fs\"));\nvar import_path = __toESM(require(\"path\"));\nvar import_util = require(\"util\");\nvar import_url = require(\"url\");\nvar import_cloneStarter = require(\"./helpers/cloneStarter\");\nvar import_getProjectName = require(\"./helpers/getProjectName\");\nvar import_getTemplateInfo = require(\"./helpers/getTemplateInfo\");\nvar import_installDependencies = require(\"./helpers/installDependencies\");\nvar import_validateNpmPackage = require(\"./helpers/validateNpmPackage\");\nvar import_prompts = __toESM(require(\"prompts\"));\nvar import_utils = require(\"@vxrn/utils\");\nconst import_meta = {};\nvar { existsSync, readFileSync, writeFileSync } = import_fs_extra.default;\nasync function create(args) {\n var gitVersionString = Number.parseFloat((0, import_child_process.execSync)(`git --version`).toString().replace(`git version `, \"\").trim());\n if (gitVersionString < 2.27) {\n console.error(`\n\n ! vxrn can't install: Git version must be >= 2.27\n\n`);\n process.exit(1);\n }\n var projectDir = args.name || \"\";\n var resolvedProjectPath = import_path.default.resolve(process.cwd(), projectDir);\n async function promptForName() {\n projectDir = await (0, import_getProjectName.getProjectName)();\n resolvedProjectPath = import_path.default.resolve(process.cwd(), projectDir);\n }\n if (projectDir) {\n if (import_fs.default.existsSync(resolvedProjectPath)) {\n console.error(`Error: folder already exists: ${resolvedProjectPath}`);\n process.exit(1);\n }\n } else {\n await promptForName();\n while (import_fs.default.existsSync(resolvedProjectPath)) {\n console.info();\n console.info(import_ansis.default.yellow(\"!\"), `The folder ${import_ansis.default.underline(import_ansis.default.blueBright(projectDir))} already exists, lets try another name`);\n console.info();\n console.info();\n await promptForName();\n }\n }\n console.info();\n var template = await (0, import_getTemplateInfo.getTemplateInfo)(args.template);\n var projectName = import_path.default.basename(resolvedProjectPath);\n var { valid, problems } = (0, import_validateNpmPackage.validateNpmName)(projectName);\n if (!valid) {\n console.error(`Could not create a project called ${import_ansis.default.red(`\"${projectName}\"`)} because of npm naming restrictions:`);\n problems.forEach(function(p) {\n return console.error(` ${import_ansis.default.red.bold(\"*\")} ${p}`);\n });\n process.exit(1);\n }\n console.info();\n var Spinner = await import(\"yocto-spinner\").then(function(x) {\n return x.default;\n });\n var spinner = Spinner({\n text: `Creating...`,\n spinner: {\n frames: [\n \"\\u280B\",\n \"\\u2819\",\n \"\\u2839\",\n \"\\u2838\",\n \"\\u283C\",\n \"\\u2834\",\n \"\\u2826\",\n \"\\u2827\",\n \"\\u2807\",\n \"\\u280F\"\n ],\n interval: 100\n }\n }).start();\n var packageJson = await (async function() {\n var errorMessages = [];\n try {\n var dirname = typeof __dirname !== \"undefined\" ? __dirname : import_path.default.dirname((0, import_url.fileURLToPath)(import_meta.url));\n var possiblePaths = [\n import_path.default.join(dirname, \"..\", \"package.json\"),\n import_path.default.join(dirname, \"..\", \"..\", \"package.json\"),\n import_path.default.join(dirname, \"..\", \"..\", \"..\", \"package.json\")\n ];\n var readFile = (0, import_util.promisify)(import_fs.default.readFile);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = possiblePaths[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var p = _step.value;\n try {\n var data = JSON.parse(await readFile(p));\n return data;\n } catch (e) {\n if (e instanceof Error) errorMessages.push(e.message);\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 throw new Error(\"package.json not found in any of the expected locations.\");\n } catch (e) {\n console.error(\"Failed to load package.json:\", errorMessages.join(\"\\n\"));\n throw e;\n }\n })();\n await import_fs_extra.default.mkdir(resolvedProjectPath);\n try {\n await (0, import_cloneStarter.cloneStarter)(template, resolvedProjectPath);\n process.chdir(resolvedProjectPath);\n } catch (e) {\n console.error(`[vxrn] Failed to copy example into ${resolvedProjectPath}\n\n`, e);\n process.exit(1);\n }\n spinner.stop();\n console.info();\n console.info();\n console.info(import_ansis.default.green(`${projectName} created!`));\n console.info();\n console.info();\n updatePackageJsonName(projectName, resolvedProjectPath);\n updatePackageJsonVersions(packageJson.version, resolvedProjectPath);\n updateAppJsonName(projectName, resolvedProjectPath);\n var packageManager = await (async function() {\n if (\"packageManager\" in template) {\n return template.packageManager;\n }\n var found = await (0, import_utils.detectPackageManager)();\n var allFound = Object.keys(found).filter(function(x) {\n return found[x];\n });\n if (allFound.length === 1) {\n return allFound[0];\n }\n var response = await (0, import_prompts.default)({\n name: \"packageManager\",\n type: \"select\",\n message: `Package Manager:`,\n choices: allFound.map(function(name) {\n return {\n title: name,\n value: name\n };\n })\n });\n return response.packageManager;\n })();\n if (!packageManager) {\n console.info(\"Dependency installation canceled.\");\n return;\n }\n console.info();\n if (\"preInstall\" in template) {\n await template.preInstall({\n packageManager,\n isFullClone: true,\n projectName,\n projectDir,\n projectPath: resolvedProjectPath\n });\n }\n try {\n console.info();\n console.info(import_ansis.default.green(`Installing with ${packageManager}...`));\n console.info();\n await (0, import_installDependencies.installDependencies)(resolvedProjectPath, packageManager);\n } catch (e) {\n console.error(\"[vxrn] error installing with \" + packageManager + `\n${e}`);\n process.exit(1);\n }\n var envDefault = import_path.default.join(resolvedProjectPath, \".env.default\");\n var env = import_path.default.join(resolvedProjectPath, \".env\");\n if (existsSync(envDefault) && !existsSync(env)) {\n await import_fs_extra.default.move(envDefault, env);\n }\n if (\"extraSteps\" in template) {\n await template.extraSteps({\n packageManager,\n isFullClone: true,\n projectName,\n projectDir,\n projectPath: resolvedProjectPath\n });\n }\n console.info();\n}\nfunction updatePackageJsonName(projectName, dir) {\n var packageJsonPath = import_path.default.join(dir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n var content = readFileSync(packageJsonPath).toString();\n var contentWithUpdatedName = content.replace(/(\"name\": \")(.*)(\",)/, `$1${projectName}$3`);\n writeFileSync(packageJsonPath, contentWithUpdatedName);\n }\n}\nfunction updatePackageJsonVersions(version, dir) {\n var packageJsonPath = import_path.default.join(dir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n var content = readFileSync(packageJsonPath).toString();\n var contentWithUpdatedVersions = content.replace(/\"workspace:(?:\\^|~|\\*)\"/gm, `\"${version}\"`);\n writeFileSync(packageJsonPath, contentWithUpdatedVersions);\n }\n}\nfunction updateAppJsonName(projectName, dir) {\n var appJsonPath = import_path.default.join(dir, \"app.json\");\n if (existsSync(appJsonPath)) {\n var content = readFileSync(appJsonPath).toString();\n var projectSlug = projectName.toLowerCase().replace(/\\s/g, \"-\");\n var contentWithUpdatedName = content.replace(/(\"name\": \")(.*)(\",)/, `$1${projectName}$3`).replace(/(\"slug\": \")(.*)(\",)/, `$1${projectSlug}$3`);\n writeFileSync(appJsonPath, contentWithUpdatedName);\n }\n}\n//# sourceMappingURL=create.js.map\n"],"mappings":"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"}
@@ -24,6 +24,7 @@ var import_node_path = __toESM(require("node:path"));
24
24
  var import_node_process = require("node:process");
25
25
  var import_getTemplateInfo = require("./helpers/getTemplateInfo.cjs");
26
26
  var import_create = require("./create.cjs");
27
+ var import_utils = require("@vxrn/utils");
27
28
  var import_node_url = require("node:url");
28
29
  var import_node_fs = require("node:fs");
29
30
  const import_meta = {};
@@ -69,8 +70,10 @@ const main = (0, import_citty.defineCommand)({
69
70
  if (args.info) {
70
71
  let template = await (0, import_getTemplateInfo.getTemplateInfo)(args.template);
71
72
  if ("extraSteps" in template) {
73
+ const found = await (0, import_utils.detectPackageManager)();
72
74
  await template.extraSteps({
73
75
  isFullClone: false,
76
+ packageManager: Object.keys(found).find((name) => found[name]),
74
77
  projectName: import_node_path.default.basename((0, import_node_process.cwd)()),
75
78
  projectPath: (0, import_node_process.cwd)()
76
79
  });
@@ -26,6 +26,7 @@ var import_path = __toESM(require("path"));
26
26
  var import_process = require("process");
27
27
  var import_getTemplateInfo = require("./helpers/getTemplateInfo.native.js");
28
28
  var import_create = require("./create.native.js");
29
+ var import_utils = require("@vxrn/utils");
29
30
  var import_url = require("url");
30
31
  var import_fs = require("fs");
31
32
  const import_meta = {};
@@ -72,8 +73,12 @@ var main = (0, import_citty.defineCommand)({
72
73
  if (args.info) {
73
74
  var template = await (0, import_getTemplateInfo.getTemplateInfo)(args.template);
74
75
  if ("extraSteps" in template) {
76
+ var found = await (0, import_utils.detectPackageManager)();
75
77
  await template.extraSteps({
76
78
  isFullClone: false,
79
+ packageManager: Object.keys(found).find(function(name) {
80
+ return found[name];
81
+ }),
77
82
  projectName: import_path.default.basename((0, import_process.cwd)()),
78
83
  projectPath: (0, import_process.cwd)()
79
84
  });
@@ -26,6 +26,7 @@ var import_path = __toESM(require("path"));
26
26
  var import_process = require("process");
27
27
  var import_getTemplateInfo = require("./helpers/getTemplateInfo.native.js");
28
28
  var import_create = require("./create.native.js");
29
+ var import_utils = require("@vxrn/utils");
29
30
  var import_url = require("url");
30
31
  var import_fs = require("fs");
31
32
  const import_meta = {};
@@ -72,8 +73,12 @@ var main = (0, import_citty.defineCommand)({
72
73
  if (args.info) {
73
74
  var template = await (0, import_getTemplateInfo.getTemplateInfo)(args.template);
74
75
  if ("extraSteps" in template) {
76
+ var found = await (0, import_utils.detectPackageManager)();
75
77
  await template.extraSteps({
76
78
  isFullClone: false,
79
+ packageManager: Object.keys(found).find(function(name) {
80
+ return found[name];
81
+ }),
77
82
  projectName: import_path.default.basename((0, import_process.cwd)()),
78
83
  projectPath: (0, import_process.cwd)()
79
84
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.native.js","names":[],"sources":["cjs/index.native.js"],"sourcesContent":["#!/usr/bin/env node\n\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar import_ansis = __toESM(require(\"ansis\"));\nvar import_citty = require(\"citty\");\nvar import_path = __toESM(require(\"path\"));\nvar import_process = require(\"process\");\nvar import_getTemplateInfo = require(\"./helpers/getTemplateInfo\");\nvar import_create = require(\"./create\");\nvar import_url = require(\"url\");\nvar import_fs = require(\"fs\");\nconst import_meta = {};\nfunction exit() {\n process.exit(0);\n}\nprocess.on(\"SIGTERM\", exit);\nprocess.on(\"SIGINT\", exit);\nfunction getPackageVersion() {\n var dirname;\n if (typeof __dirname !== \"undefined\") {\n dirname = __dirname;\n } else {\n dirname = import_path.default.dirname((0, import_url.fileURLToPath)(import_meta.url));\n }\n var packagePath = import_path.default.join(dirname, \"..\", \"..\", \"package.json\");\n var packageJson = JSON.parse((0, import_fs.readFileSync)(packagePath, \"utf-8\"));\n return packageJson.version;\n}\nvar main = (0, import_citty.defineCommand)({\n meta: {\n name: \"create-vxrn\",\n version: getPackageVersion(),\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 (0, import_getTemplateInfo.getTemplateInfo)(args.template);\n if (\"extraSteps\" in template) {\n await template.extraSteps({\n isFullClone: false,\n projectName: import_path.default.basename((0, import_process.cwd)()),\n projectPath: (0, import_process.cwd)()\n });\n }\n return;\n }\n console.info();\n console.info(import_ansis.default.bold(\"Creating vxrn app...\"));\n await (0, import_create.create)({\n name: args.directory,\n template: args.template\n });\n }\n});\n(0, import_citty.runMain)(main);\n//# sourceMappingURL=index.js.map\n"],"mappings":";;;;AAEA,IAAI,WAAW,OAAO;AACtB,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO;AAC1B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,WAAW,KAAK,YAAY,YAAY,SAAS,OAAO,OAAO,SAAS,aAAa,GAAG,CAAC,IAAI,CAAC,GAAG,YAKnG,cAAc,CAAC,OAAO,CAAC,IAAI,aAAa,UAAU,QAAQ,WAAW;CAAE,OAAO;CAAK,YAAY;AAAK,CAAC,IAAI,QACzG,GACF;AACA,IAAI,eAAe,QAAQ,QAAQ,OAAO,CAAC;AAC3C,IAAI,eAAe,QAAQ,OAAO;AAClC,IAAI,cAAc,QAAQ,QAAQ,MAAM,CAAC;AACzC,IAAI,iBAAiB,QAAQ,SAAS;AACtC,IAAI,yBAAyB,QAAQ,qCAA2B;AAChE,IAAI,gBAAgB,QAAQ,oBAAU;AACtC,IAAI,aAAa,QAAQ,KAAK;AAC9B,IAAI,YAAY,QAAQ,IAAI;AAC5B,MAAM,cAAc,CAAC;AACrB,SAAS,OAAO;CACd,QAAQ,KAAK,CAAC;AAChB;AACA,QAAQ,GAAG,WAAW,IAAI;AAC1B,QAAQ,GAAG,UAAU,IAAI;AACzB,SAAS,oBAAoB;CAC3B,IAAI;CACJ,IAAI,OAAO,cAAc,aAAa;EACpC,UAAU;CACZ,OAAO;EACL,UAAU,YAAY,QAAQ,SAAS,GAAG,WAAW,cAAa,CAAE,YAAY,GAAG,CAAC;CACtF;CACA,IAAI,cAAc,YAAY,QAAQ,KAAK,SAAS,MAAM,MAAM,cAAc;CAC9E,IAAI,cAAc,KAAK,OAAO,GAAG,UAAU,aAAY,CAAE,aAAa,OAAO,CAAC;CAC9E,OAAO,YAAY;AACrB;AACA,IAAI,QAAQ,GAAG,aAAa,cAAa,CAAE;CACzC,MAAM;EACJ,MAAM;EACN,SAAS,kBAAkB;EAC3B,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,OAAO,GAAG,uBAAuB,gBAAe,CAAE,KAAK,QAAQ;GAC9E,IAAI,gBAAgB,UAAU;IAC5B,MAAM,SAAS,WAAW;KACxB,aAAa;KACb,aAAa,YAAY,QAAQ,UAAU,GAAG,eAAe,IAAG,CAAE,CAAC;KACnE,cAAc,GAAG,eAAe,IAAG,CAAE;IACvC,CAAC;GACH;GACA;EACF;EACA,QAAQ,KAAK;EACb,QAAQ,KAAK,aAAa,QAAQ,KAAK,sBAAsB,CAAC;EAC9D,OAAO,GAAG,cAAc,OAAM,CAAE;GAC9B,MAAM,KAAK;GACX,UAAU,KAAK;EACjB,CAAC;CACH;AACF,CAAC;CACA,GAAG,aAAa,QAAO,CAAE,IAAI"}
1
+ {"version":3,"file":"index.native.js","names":[],"sources":["cjs/index.native.js"],"sourcesContent":["#!/usr/bin/env node\n\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar import_ansis = __toESM(require(\"ansis\"));\nvar import_citty = require(\"citty\");\nvar import_path = __toESM(require(\"path\"));\nvar import_process = require(\"process\");\nvar import_getTemplateInfo = require(\"./helpers/getTemplateInfo\");\nvar import_create = require(\"./create\");\nvar import_utils = require(\"@vxrn/utils\");\nvar import_url = require(\"url\");\nvar import_fs = require(\"fs\");\nconst import_meta = {};\nfunction exit() {\n process.exit(0);\n}\nprocess.on(\"SIGTERM\", exit);\nprocess.on(\"SIGINT\", exit);\nfunction getPackageVersion() {\n var dirname;\n if (typeof __dirname !== \"undefined\") {\n dirname = __dirname;\n } else {\n dirname = import_path.default.dirname((0, import_url.fileURLToPath)(import_meta.url));\n }\n var packagePath = import_path.default.join(dirname, \"..\", \"..\", \"package.json\");\n var packageJson = JSON.parse((0, import_fs.readFileSync)(packagePath, \"utf-8\"));\n return packageJson.version;\n}\nvar main = (0, import_citty.defineCommand)({\n meta: {\n name: \"create-vxrn\",\n version: getPackageVersion(),\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 (0, import_getTemplateInfo.getTemplateInfo)(args.template);\n if (\"extraSteps\" in template) {\n var found = await (0, import_utils.detectPackageManager)();\n await template.extraSteps({\n isFullClone: false,\n packageManager: Object.keys(found).find(function(name) {\n return found[name];\n }),\n projectName: import_path.default.basename((0, import_process.cwd)()),\n projectPath: (0, import_process.cwd)()\n });\n }\n return;\n }\n console.info();\n console.info(import_ansis.default.bold(\"Creating vxrn app...\"));\n await (0, import_create.create)({\n name: args.directory,\n template: args.template\n });\n }\n});\n(0, import_citty.runMain)(main);\n//# sourceMappingURL=index.js.map\n"],"mappings":"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"}
@@ -34,17 +34,17 @@ var import_ansis = __toESM(require("ansis"));
34
34
  var import_fs_extra = __toESM(require("fs-extra"));
35
35
  var import_node_path = require("node:path");
36
36
  var import_utils = require("@vxrn/utils");
37
- const extraSteps = async ({ isFullClone, projectName, packageManager }) => {
37
+ const extraSteps = async ({ isFullClone, projectName, projectDir = projectName, packageManager }) => {
38
38
  const useBun = packageManager === "bun";
39
39
  const runCommand = (scriptName) => `${packageManager} ${useBun ? "" : "run "}${scriptName}`;
40
40
  if (isFullClone) {
41
41
  console.info(`
42
- ${import_ansis.default.green.bold("Done!")} Created a new project under ./${import_ansis.default.greenBright(projectName)}`);
42
+ ${import_ansis.default.green.bold("Done!")} Created a new project under ${import_ansis.default.greenBright(projectDir)}`);
43
43
  }
44
44
  console.info(`
45
45
  To run:
46
46
 
47
- ${import_ansis.default.green("cd")} ${projectName}
47
+ ${import_ansis.default.green("cd")} ${projectDir}
48
48
  ${import_ansis.default.green(runCommand("dev"))}
49
49
  `);
50
50
  };
@@ -37,19 +37,19 @@ var import_fs_extra = __toESM(require("fs-extra"));
37
37
  var import_path = require("path");
38
38
  var import_utils = require("@vxrn/utils");
39
39
  var extraSteps = async function extraSteps2(param) {
40
- var { isFullClone, projectName, packageManager } = param;
40
+ var { isFullClone, projectName, projectDir = projectName, packageManager } = param;
41
41
  var useBun = packageManager === "bun";
42
42
  var runCommand = function runCommand2(scriptName) {
43
43
  return `${packageManager} ${useBun ? "" : "run "}${scriptName}`;
44
44
  };
45
45
  if (isFullClone) {
46
46
  console.info(`
47
- ${import_ansis.default.green.bold("Done!")} Created a new project under ./${import_ansis.default.greenBright(projectName)}`);
47
+ ${import_ansis.default.green.bold("Done!")} Created a new project under ${import_ansis.default.greenBright(projectDir)}`);
48
48
  }
49
49
  console.info(`
50
50
  To run:
51
51
 
52
- ${import_ansis.default.green("cd")} ${projectName}
52
+ ${import_ansis.default.green("cd")} ${projectDir}
53
53
  ${import_ansis.default.green(runCommand("dev"))}
54
54
  `);
55
55
  };
@@ -37,19 +37,19 @@ var import_fs_extra = __toESM(require("fs-extra"));
37
37
  var import_path = require("path");
38
38
  var import_utils = require("@vxrn/utils");
39
39
  var extraSteps = async function extraSteps2(param) {
40
- var { isFullClone, projectName, packageManager } = param;
40
+ var { isFullClone, projectName, projectDir = projectName, packageManager } = param;
41
41
  var useBun = packageManager === "bun";
42
42
  var runCommand = function runCommand2(scriptName) {
43
43
  return `${packageManager} ${useBun ? "" : "run "}${scriptName}`;
44
44
  };
45
45
  if (isFullClone) {
46
46
  console.info(`
47
- ${import_ansis.default.green.bold("Done!")} Created a new project under ./${import_ansis.default.greenBright(projectName)}`);
47
+ ${import_ansis.default.green.bold("Done!")} Created a new project under ${import_ansis.default.greenBright(projectDir)}`);
48
48
  }
49
49
  console.info(`
50
50
  To run:
51
51
 
52
- ${import_ansis.default.green("cd")} ${projectName}
52
+ ${import_ansis.default.green("cd")} ${projectDir}
53
53
  ${import_ansis.default.green(runCommand("dev"))}
54
54
  `);
55
55
  };
@@ -1 +1 @@
1
- {"version":3,"file":"one.native.js","names":[],"sources":["cjs/steps/one.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar one_exports = {};\n__export(one_exports, {\n extraSteps: () => extraSteps,\n preInstall: () => preInstall\n});\nmodule.exports = __toCommonJS(one_exports);\nvar import_ansis = __toESM(require(\"ansis\"));\nvar import_fs_extra = __toESM(require(\"fs-extra\"));\nvar import_path = require(\"path\");\nvar import_utils = require(\"@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${import_ansis.default.green.bold(\"Done!\")} Created a new project under ./${import_ansis.default.greenBright(projectName)}`);\n }\n console.info(`\nTo run: \n\n ${import_ansis.default.green(\"cd\")} ${projectName}\n ${import_ansis.default.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 = (0, import_path.join)(path, \".env.example\");\n if (import_fs_extra.default.existsSync(envExample)) {\n await import_fs_extra.default.move(envExample, (0, import_path.join)(path, \".env\"));\n console.info(`Moved .env.example to .env`);\n }\n if (packageManager === \"pnpm\") {\n await import_fs_extra.default.writeFile((0, import_path.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 import_fs_extra.default.writeFile((0, import_path.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 (0, import_utils.execPromise)(`yarn set version stable`);\n await import_fs_extra.default.writeFile((0, import_path.join)(path, \"yarn.lock\"), \"\");\n console.info(`Set up yarn for latest version`);\n }\n};\n//# sourceMappingURL=one.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"one.native.js","names":[],"sources":["cjs/steps/one.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar one_exports = {};\n__export(one_exports, {\n extraSteps: () => extraSteps,\n preInstall: () => preInstall\n});\nmodule.exports = __toCommonJS(one_exports);\nvar import_ansis = __toESM(require(\"ansis\"));\nvar import_fs_extra = __toESM(require(\"fs-extra\"));\nvar import_path = require(\"path\");\nvar import_utils = require(\"@vxrn/utils\");\nvar extraSteps = async function extraSteps2(param) {\n var { isFullClone, projectName, projectDir = 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${import_ansis.default.green.bold(\"Done!\")} Created a new project under ${import_ansis.default.greenBright(projectDir)}`);\n }\n console.info(`\nTo run: \n\n ${import_ansis.default.green(\"cd\")} ${projectDir}\n ${import_ansis.default.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 = (0, import_path.join)(path, \".env.example\");\n if (import_fs_extra.default.existsSync(envExample)) {\n await import_fs_extra.default.move(envExample, (0, import_path.join)(path, \".env\"));\n console.info(`Moved .env.example to .env`);\n }\n if (packageManager === \"pnpm\") {\n await import_fs_extra.default.writeFile((0, import_path.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 import_fs_extra.default.writeFile((0, import_path.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 (0, import_utils.execPromise)(`yarn set version stable`);\n await import_fs_extra.default.writeFile((0, import_path.join)(path, \"yarn.lock\"), \"\");\n console.info(`Set up yarn for latest version`);\n }\n};\n//# sourceMappingURL=one.js.map\n"],"mappings":"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"}
@@ -24,13 +24,13 @@ async function create(args) {
24
24
  `);
25
25
  process.exit(1);
26
26
  }
27
- let projectName = args.name || "";
28
- let resolvedProjectPath = path.resolve(process.cwd(), projectName);
27
+ let projectDir = args.name || "";
28
+ let resolvedProjectPath = path.resolve(process.cwd(), projectDir);
29
29
  async function promptForName() {
30
- projectName = await getProjectName();
31
- resolvedProjectPath = path.resolve(process.cwd(), projectName);
30
+ projectDir = await getProjectName();
31
+ resolvedProjectPath = path.resolve(process.cwd(), projectDir);
32
32
  }
33
- if (projectName) {
33
+ if (projectDir) {
34
34
  if (fs.existsSync(resolvedProjectPath)) {
35
35
  console.error(`Error: folder already exists: ${resolvedProjectPath}`);
36
36
  process.exit(1);
@@ -39,7 +39,7 @@ async function create(args) {
39
39
  await promptForName();
40
40
  while (fs.existsSync(resolvedProjectPath)) {
41
41
  console.info();
42
- console.info(ansis.yellow("!"), `The folder ${ansis.underline(ansis.blueBright(projectName))} already exists, lets try another name`);
42
+ console.info(ansis.yellow("!"), `The folder ${ansis.underline(ansis.blueBright(projectDir))} already exists, lets try another name`);
43
43
  console.info();
44
44
  console.info();
45
45
  await promptForName();
@@ -47,6 +47,7 @@ async function create(args) {
47
47
  }
48
48
  console.info();
49
49
  let template = await getTemplateInfo(args.template);
50
+ const projectName = path.basename(resolvedProjectPath);
50
51
  const { valid, problems } = validateNpmName(projectName);
51
52
  if (!valid) {
52
53
  console.error(`Could not create a project called ${ansis.red(`"${projectName}"`)} because of npm naming restrictions:`);
@@ -146,6 +147,7 @@ async function create(args) {
146
147
  packageManager,
147
148
  isFullClone: true,
148
149
  projectName,
150
+ projectDir,
149
151
  projectPath: resolvedProjectPath
150
152
  });
151
153
  }
@@ -169,6 +171,7 @@ ${e}`);
169
171
  packageManager,
170
172
  isFullClone: true,
171
173
  projectName,
174
+ projectDir,
172
175
  projectPath: resolvedProjectPath
173
176
  });
174
177
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","names":[],"sources":["esm/create.js"],"sourcesContent":["import ansis from \"ansis\";\nimport FSExtra from \"fs-extra\";\nimport { execSync } from \"node:child_process\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { promisify } from \"node:util\";\nimport { fileURLToPath } from \"node:url\";\nimport { cloneStarter } from \"./helpers/cloneStarter\";\nimport { getProjectName } from \"./helpers/getProjectName\";\nimport { getTemplateInfo } from \"./helpers/getTemplateInfo\";\nimport { installDependencies } from \"./helpers/installDependencies\";\nimport { validateNpmName } from \"./helpers/validateNpmPackage\";\nimport prompts from \"prompts\";\nimport { detectPackageManager } from \"@vxrn/utils\";\nconst { existsSync, readFileSync, writeFileSync } = FSExtra;\nasync function create(args) {\n const gitVersionString = Number.parseFloat(\n execSync(`git --version`).toString().replace(`git version `, \"\").trim()\n );\n if (gitVersionString < 2.27) {\n console.error(`\n\n ! vxrn can't install: Git version must be >= 2.27\n\n`);\n process.exit(1);\n }\n let projectName = args.name || \"\";\n let resolvedProjectPath = path.resolve(process.cwd(), projectName);\n async function promptForName() {\n projectName = await getProjectName();\n resolvedProjectPath = path.resolve(process.cwd(), projectName);\n }\n if (projectName) {\n if (fs.existsSync(resolvedProjectPath)) {\n console.error(`Error: folder already exists: ${resolvedProjectPath}`);\n process.exit(1);\n }\n } else {\n await promptForName();\n while (fs.existsSync(resolvedProjectPath)) {\n console.info();\n console.info(\n ansis.yellow(\"!\"),\n `The folder ${ansis.underline(\n ansis.blueBright(projectName)\n )} already exists, lets try another name`\n );\n console.info();\n console.info();\n await promptForName();\n }\n }\n console.info();\n let template = await getTemplateInfo(args.template);\n const { valid, problems } = validateNpmName(projectName);\n if (!valid) {\n console.error(\n `Could not create a project called ${ansis.red(\n `\"${projectName}\"`\n )} because of npm naming restrictions:`\n );\n problems.forEach((p) => console.error(` ${ansis.red.bold(\"*\")} ${p}`));\n process.exit(1);\n }\n console.info();\n const Spinner = await import(\"yocto-spinner\").then((x) => x.default);\n const spinner = Spinner({\n text: `Creating...`,\n spinner: {\n frames: [\"\\u280B\", \"\\u2819\", \"\\u2839\", \"\\u2838\", \"\\u283C\", \"\\u2834\", \"\\u2826\", \"\\u2827\", \"\\u2807\", \"\\u280F\"],\n interval: 100\n }\n }).start();\n const packageJson = await (async () => {\n const errorMessages = [];\n try {\n const dirname = typeof __dirname !== \"undefined\" ? __dirname : path.dirname(fileURLToPath(import.meta.url));\n const possiblePaths = [\n path.join(dirname, \"..\", \"package.json\"),\n path.join(dirname, \"..\", \"..\", \"package.json\"),\n path.join(dirname, \"..\", \"..\", \"..\", \"package.json\")\n ];\n const readFile = promisify(fs.readFile);\n for (const p of possiblePaths) {\n try {\n const data = JSON.parse(await readFile(p));\n return data;\n } catch (e) {\n if (e instanceof Error) errorMessages.push(e.message);\n }\n }\n throw new Error(\"package.json not found in any of the expected locations.\");\n } catch (e) {\n console.error(\"Failed to load package.json:\", errorMessages.join(\"\\n\"));\n throw e;\n }\n })();\n await FSExtra.mkdir(resolvedProjectPath);\n try {\n await cloneStarter(template, resolvedProjectPath);\n process.chdir(resolvedProjectPath);\n } catch (e) {\n console.error(`[vxrn] Failed to copy example into ${resolvedProjectPath}\n\n`, e);\n process.exit(1);\n }\n spinner.stop();\n console.info();\n console.info();\n console.info(ansis.green(`${projectName} created!`));\n console.info();\n console.info();\n updatePackageJsonName(projectName, resolvedProjectPath);\n updatePackageJsonVersions(packageJson.version, resolvedProjectPath);\n updateAppJsonName(projectName, resolvedProjectPath);\n const packageManager = await (async () => {\n if (\"packageManager\" in template) {\n return template.packageManager;\n }\n const found = await detectPackageManager();\n const allFound = Object.keys(found).filter((x) => found[x]);\n if (allFound.length === 1) {\n return allFound[0];\n }\n const response = await prompts({\n name: \"packageManager\",\n type: \"select\",\n message: `Package Manager:`,\n choices: allFound.map((name) => ({\n title: name,\n value: name\n }))\n });\n return response.packageManager;\n })();\n if (!packageManager) {\n console.info(\"Dependency installation canceled.\");\n return;\n }\n console.info();\n if (\"preInstall\" in template) {\n await template.preInstall({\n packageManager,\n isFullClone: true,\n projectName,\n projectPath: resolvedProjectPath\n });\n }\n try {\n console.info();\n console.info(ansis.green(`Installing with ${packageManager}...`));\n console.info();\n await installDependencies(resolvedProjectPath, packageManager);\n } catch (e) {\n console.error(\"[vxrn] error installing with \" + packageManager + `\n${e}`);\n process.exit(1);\n }\n const envDefault = path.join(resolvedProjectPath, \".env.default\");\n const env = path.join(resolvedProjectPath, \".env\");\n if (existsSync(envDefault) && !existsSync(env)) {\n await FSExtra.move(envDefault, env);\n }\n if (\"extraSteps\" in template) {\n await template.extraSteps({\n packageManager,\n isFullClone: true,\n projectName,\n projectPath: resolvedProjectPath\n });\n }\n console.info();\n}\nfunction updatePackageJsonName(projectName, dir) {\n const packageJsonPath = path.join(dir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n const content = readFileSync(packageJsonPath).toString();\n const contentWithUpdatedName = content.replace(\n /(\"name\": \")(.*)(\",)/,\n `$1${projectName}$3`\n );\n writeFileSync(packageJsonPath, contentWithUpdatedName);\n }\n}\nfunction updatePackageJsonVersions(version, dir) {\n const packageJsonPath = path.join(dir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n const content = readFileSync(packageJsonPath).toString();\n const contentWithUpdatedVersions = content.replace(\n /\"workspace:(?:\\^|~|\\*)\"/gm,\n `\"${version}\"`\n );\n writeFileSync(packageJsonPath, contentWithUpdatedVersions);\n }\n}\nfunction updateAppJsonName(projectName, dir) {\n const appJsonPath = path.join(dir, \"app.json\");\n if (existsSync(appJsonPath)) {\n const content = readFileSync(appJsonPath).toString();\n const projectSlug = projectName.toLowerCase().replace(/\\s/g, \"-\");\n const contentWithUpdatedName = content.replace(/(\"name\": \")(.*)(\",)/, `$1${projectName}$3`).replace(/(\"slug\": \")(.*)(\",)/, `$1${projectSlug}$3`);\n writeFileSync(appJsonPath, contentWithUpdatedName);\n }\n}\nexport {\n create\n};\n//# sourceMappingURL=create.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"create.js","names":[],"sources":["esm/create.js"],"sourcesContent":["import ansis from \"ansis\";\nimport FSExtra from \"fs-extra\";\nimport { execSync } from \"node:child_process\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { promisify } from \"node:util\";\nimport { fileURLToPath } from \"node:url\";\nimport { cloneStarter } from \"./helpers/cloneStarter\";\nimport { getProjectName } from \"./helpers/getProjectName\";\nimport { getTemplateInfo } from \"./helpers/getTemplateInfo\";\nimport { installDependencies } from \"./helpers/installDependencies\";\nimport { validateNpmName } from \"./helpers/validateNpmPackage\";\nimport prompts from \"prompts\";\nimport { detectPackageManager } from \"@vxrn/utils\";\nconst { existsSync, readFileSync, writeFileSync } = FSExtra;\nasync function create(args) {\n const gitVersionString = Number.parseFloat(\n execSync(`git --version`).toString().replace(`git version `, \"\").trim()\n );\n if (gitVersionString < 2.27) {\n console.error(`\n\n ! vxrn can't install: Git version must be >= 2.27\n\n`);\n process.exit(1);\n }\n let projectDir = args.name || \"\";\n let resolvedProjectPath = path.resolve(process.cwd(), projectDir);\n async function promptForName() {\n projectDir = await getProjectName();\n resolvedProjectPath = path.resolve(process.cwd(), projectDir);\n }\n if (projectDir) {\n if (fs.existsSync(resolvedProjectPath)) {\n console.error(`Error: folder already exists: ${resolvedProjectPath}`);\n process.exit(1);\n }\n } else {\n await promptForName();\n while (fs.existsSync(resolvedProjectPath)) {\n console.info();\n console.info(\n ansis.yellow(\"!\"),\n `The folder ${ansis.underline(\n ansis.blueBright(projectDir)\n )} already exists, lets try another name`\n );\n console.info();\n console.info();\n await promptForName();\n }\n }\n console.info();\n let template = await getTemplateInfo(args.template);\n const projectName = path.basename(resolvedProjectPath);\n const { valid, problems } = validateNpmName(projectName);\n if (!valid) {\n console.error(\n `Could not create a project called ${ansis.red(\n `\"${projectName}\"`\n )} because of npm naming restrictions:`\n );\n problems.forEach((p) => console.error(` ${ansis.red.bold(\"*\")} ${p}`));\n process.exit(1);\n }\n console.info();\n const Spinner = await import(\"yocto-spinner\").then((x) => x.default);\n const spinner = Spinner({\n text: `Creating...`,\n spinner: {\n frames: [\"\\u280B\", \"\\u2819\", \"\\u2839\", \"\\u2838\", \"\\u283C\", \"\\u2834\", \"\\u2826\", \"\\u2827\", \"\\u2807\", \"\\u280F\"],\n interval: 100\n }\n }).start();\n const packageJson = await (async () => {\n const errorMessages = [];\n try {\n const dirname = typeof __dirname !== \"undefined\" ? __dirname : path.dirname(fileURLToPath(import.meta.url));\n const possiblePaths = [\n path.join(dirname, \"..\", \"package.json\"),\n path.join(dirname, \"..\", \"..\", \"package.json\"),\n path.join(dirname, \"..\", \"..\", \"..\", \"package.json\")\n ];\n const readFile = promisify(fs.readFile);\n for (const p of possiblePaths) {\n try {\n const data = JSON.parse(await readFile(p));\n return data;\n } catch (e) {\n if (e instanceof Error) errorMessages.push(e.message);\n }\n }\n throw new Error(\"package.json not found in any of the expected locations.\");\n } catch (e) {\n console.error(\"Failed to load package.json:\", errorMessages.join(\"\\n\"));\n throw e;\n }\n })();\n await FSExtra.mkdir(resolvedProjectPath);\n try {\n await cloneStarter(template, resolvedProjectPath);\n process.chdir(resolvedProjectPath);\n } catch (e) {\n console.error(`[vxrn] Failed to copy example into ${resolvedProjectPath}\n\n`, e);\n process.exit(1);\n }\n spinner.stop();\n console.info();\n console.info();\n console.info(ansis.green(`${projectName} created!`));\n console.info();\n console.info();\n updatePackageJsonName(projectName, resolvedProjectPath);\n updatePackageJsonVersions(packageJson.version, resolvedProjectPath);\n updateAppJsonName(projectName, resolvedProjectPath);\n const packageManager = await (async () => {\n if (\"packageManager\" in template) {\n return template.packageManager;\n }\n const found = await detectPackageManager();\n const allFound = Object.keys(found).filter((x) => found[x]);\n if (allFound.length === 1) {\n return allFound[0];\n }\n const response = await prompts({\n name: \"packageManager\",\n type: \"select\",\n message: `Package Manager:`,\n choices: allFound.map((name) => ({\n title: name,\n value: name\n }))\n });\n return response.packageManager;\n })();\n if (!packageManager) {\n console.info(\"Dependency installation canceled.\");\n return;\n }\n console.info();\n if (\"preInstall\" in template) {\n await template.preInstall({\n packageManager,\n isFullClone: true,\n projectName,\n projectDir,\n projectPath: resolvedProjectPath\n });\n }\n try {\n console.info();\n console.info(ansis.green(`Installing with ${packageManager}...`));\n console.info();\n await installDependencies(resolvedProjectPath, packageManager);\n } catch (e) {\n console.error(\"[vxrn] error installing with \" + packageManager + `\n${e}`);\n process.exit(1);\n }\n const envDefault = path.join(resolvedProjectPath, \".env.default\");\n const env = path.join(resolvedProjectPath, \".env\");\n if (existsSync(envDefault) && !existsSync(env)) {\n await FSExtra.move(envDefault, env);\n }\n if (\"extraSteps\" in template) {\n await template.extraSteps({\n packageManager,\n isFullClone: true,\n projectName,\n projectDir,\n projectPath: resolvedProjectPath\n });\n }\n console.info();\n}\nfunction updatePackageJsonName(projectName, dir) {\n const packageJsonPath = path.join(dir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n const content = readFileSync(packageJsonPath).toString();\n const contentWithUpdatedName = content.replace(\n /(\"name\": \")(.*)(\",)/,\n `$1${projectName}$3`\n );\n writeFileSync(packageJsonPath, contentWithUpdatedName);\n }\n}\nfunction updatePackageJsonVersions(version, dir) {\n const packageJsonPath = path.join(dir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n const content = readFileSync(packageJsonPath).toString();\n const contentWithUpdatedVersions = content.replace(\n /\"workspace:(?:\\^|~|\\*)\"/gm,\n `\"${version}\"`\n );\n writeFileSync(packageJsonPath, contentWithUpdatedVersions);\n }\n}\nfunction updateAppJsonName(projectName, dir) {\n const appJsonPath = path.join(dir, \"app.json\");\n if (existsSync(appJsonPath)) {\n const content = readFileSync(appJsonPath).toString();\n const projectSlug = projectName.toLowerCase().replace(/\\s/g, \"-\");\n const contentWithUpdatedName = content.replace(/(\"name\": \")(.*)(\",)/, `$1${projectName}$3`).replace(/(\"slug\": \")(.*)(\",)/, `$1${projectSlug}$3`);\n writeFileSync(appJsonPath, contentWithUpdatedName);\n }\n}\nexport {\n create\n};\n//# sourceMappingURL=create.js.map\n"],"mappings":"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"}
@@ -24,13 +24,13 @@ async function create(args) {
24
24
  `);
25
25
  process.exit(1);
26
26
  }
27
- var projectName = args.name || "";
28
- var resolvedProjectPath = path.resolve(process.cwd(), projectName);
27
+ var projectDir = args.name || "";
28
+ var resolvedProjectPath = path.resolve(process.cwd(), projectDir);
29
29
  async function promptForName() {
30
- projectName = await getProjectName();
31
- resolvedProjectPath = path.resolve(process.cwd(), projectName);
30
+ projectDir = await getProjectName();
31
+ resolvedProjectPath = path.resolve(process.cwd(), projectDir);
32
32
  }
33
- if (projectName) {
33
+ if (projectDir) {
34
34
  if (fs.existsSync(resolvedProjectPath)) {
35
35
  console.error(`Error: folder already exists: ${resolvedProjectPath}`);
36
36
  process.exit(1);
@@ -39,7 +39,7 @@ async function create(args) {
39
39
  await promptForName();
40
40
  while (fs.existsSync(resolvedProjectPath)) {
41
41
  console.info();
42
- console.info(ansis.yellow("!"), `The folder ${ansis.underline(ansis.blueBright(projectName))} already exists, lets try another name`);
42
+ console.info(ansis.yellow("!"), `The folder ${ansis.underline(ansis.blueBright(projectDir))} already exists, lets try another name`);
43
43
  console.info();
44
44
  console.info();
45
45
  await promptForName();
@@ -47,6 +47,7 @@ async function create(args) {
47
47
  }
48
48
  console.info();
49
49
  var template = await getTemplateInfo(args.template);
50
+ var projectName = path.basename(resolvedProjectPath);
50
51
  var { valid, problems } = validateNpmName(projectName);
51
52
  if (!valid) {
52
53
  console.error(`Could not create a project called ${ansis.red(`"${projectName}"`)} because of npm naming restrictions:`);
@@ -171,6 +172,7 @@ async function create(args) {
171
172
  packageManager,
172
173
  isFullClone: true,
173
174
  projectName,
175
+ projectDir,
174
176
  projectPath: resolvedProjectPath
175
177
  });
176
178
  }
@@ -194,6 +196,7 @@ ${e}`);
194
196
  packageManager,
195
197
  isFullClone: true,
196
198
  projectName,
199
+ projectDir,
197
200
  projectPath: resolvedProjectPath
198
201
  });
199
202
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create.native.js","names":[],"sources":["esm/create.native.js"],"sourcesContent":["import ansis from \"ansis\";\nimport FSExtra from \"fs-extra\";\nimport { execSync } from \"child_process\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport { promisify } from \"util\";\nimport { fileURLToPath } from \"url\";\nimport { cloneStarter } from \"./helpers/cloneStarter\";\nimport { getProjectName } from \"./helpers/getProjectName\";\nimport { getTemplateInfo } from \"./helpers/getTemplateInfo\";\nimport { installDependencies } from \"./helpers/installDependencies\";\nimport { validateNpmName } from \"./helpers/validateNpmPackage\";\nimport prompts from \"prompts\";\nimport { detectPackageManager } from \"@vxrn/utils\";\nvar { existsSync, readFileSync, writeFileSync } = FSExtra;\nasync function create(args) {\n var gitVersionString = Number.parseFloat(execSync(`git --version`).toString().replace(`git version `, \"\").trim());\n if (gitVersionString < 2.27) {\n console.error(`\n\n ! vxrn can't install: Git version must be >= 2.27\n\n`);\n process.exit(1);\n }\n var projectName = args.name || \"\";\n var resolvedProjectPath = path.resolve(process.cwd(), projectName);\n async function promptForName() {\n projectName = await getProjectName();\n resolvedProjectPath = path.resolve(process.cwd(), projectName);\n }\n if (projectName) {\n if (fs.existsSync(resolvedProjectPath)) {\n console.error(`Error: folder already exists: ${resolvedProjectPath}`);\n process.exit(1);\n }\n } else {\n await promptForName();\n while (fs.existsSync(resolvedProjectPath)) {\n console.info();\n console.info(ansis.yellow(\"!\"), `The folder ${ansis.underline(ansis.blueBright(projectName))} already exists, lets try another name`);\n console.info();\n console.info();\n await promptForName();\n }\n }\n console.info();\n var template = await getTemplateInfo(args.template);\n var { valid, problems } = validateNpmName(projectName);\n if (!valid) {\n console.error(`Could not create a project called ${ansis.red(`\"${projectName}\"`)} because of npm naming restrictions:`);\n problems.forEach(function(p) {\n return console.error(` ${ansis.red.bold(\"*\")} ${p}`);\n });\n process.exit(1);\n }\n console.info();\n var Spinner = await import(\"yocto-spinner\").then(function(x) {\n return x.default;\n });\n var spinner = Spinner({\n text: `Creating...`,\n spinner: {\n frames: [\n \"\\u280B\",\n \"\\u2819\",\n \"\\u2839\",\n \"\\u2838\",\n \"\\u283C\",\n \"\\u2834\",\n \"\\u2826\",\n \"\\u2827\",\n \"\\u2807\",\n \"\\u280F\"\n ],\n interval: 100\n }\n }).start();\n var packageJson = await (async function() {\n var errorMessages = [];\n try {\n var dirname = typeof __dirname !== \"undefined\" ? __dirname : path.dirname(fileURLToPath(import.meta.url));\n var possiblePaths = [\n path.join(dirname, \"..\", \"package.json\"),\n path.join(dirname, \"..\", \"..\", \"package.json\"),\n path.join(dirname, \"..\", \"..\", \"..\", \"package.json\")\n ];\n var readFile = promisify(fs.readFile);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = possiblePaths[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var p = _step.value;\n try {\n var data = JSON.parse(await readFile(p));\n return data;\n } catch (e) {\n if (e instanceof Error) errorMessages.push(e.message);\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 throw new Error(\"package.json not found in any of the expected locations.\");\n } catch (e) {\n console.error(\"Failed to load package.json:\", errorMessages.join(\"\\n\"));\n throw e;\n }\n })();\n await FSExtra.mkdir(resolvedProjectPath);\n try {\n await cloneStarter(template, resolvedProjectPath);\n process.chdir(resolvedProjectPath);\n } catch (e) {\n console.error(`[vxrn] Failed to copy example into ${resolvedProjectPath}\n\n`, e);\n process.exit(1);\n }\n spinner.stop();\n console.info();\n console.info();\n console.info(ansis.green(`${projectName} created!`));\n console.info();\n console.info();\n updatePackageJsonName(projectName, resolvedProjectPath);\n updatePackageJsonVersions(packageJson.version, resolvedProjectPath);\n updateAppJsonName(projectName, resolvedProjectPath);\n var packageManager = await (async function() {\n if (\"packageManager\" in template) {\n return template.packageManager;\n }\n var found = await detectPackageManager();\n var allFound = Object.keys(found).filter(function(x) {\n return found[x];\n });\n if (allFound.length === 1) {\n return allFound[0];\n }\n var response = await prompts({\n name: \"packageManager\",\n type: \"select\",\n message: `Package Manager:`,\n choices: allFound.map(function(name) {\n return {\n title: name,\n value: name\n };\n })\n });\n return response.packageManager;\n })();\n if (!packageManager) {\n console.info(\"Dependency installation canceled.\");\n return;\n }\n console.info();\n if (\"preInstall\" in template) {\n await template.preInstall({\n packageManager,\n isFullClone: true,\n projectName,\n projectPath: resolvedProjectPath\n });\n }\n try {\n console.info();\n console.info(ansis.green(`Installing with ${packageManager}...`));\n console.info();\n await installDependencies(resolvedProjectPath, packageManager);\n } catch (e) {\n console.error(\"[vxrn] error installing with \" + packageManager + `\n${e}`);\n process.exit(1);\n }\n var envDefault = path.join(resolvedProjectPath, \".env.default\");\n var env = path.join(resolvedProjectPath, \".env\");\n if (existsSync(envDefault) && !existsSync(env)) {\n await FSExtra.move(envDefault, env);\n }\n if (\"extraSteps\" in template) {\n await template.extraSteps({\n packageManager,\n isFullClone: true,\n projectName,\n projectPath: resolvedProjectPath\n });\n }\n console.info();\n}\nfunction updatePackageJsonName(projectName, dir) {\n var packageJsonPath = path.join(dir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n var content = readFileSync(packageJsonPath).toString();\n var contentWithUpdatedName = content.replace(/(\"name\": \")(.*)(\",)/, `$1${projectName}$3`);\n writeFileSync(packageJsonPath, contentWithUpdatedName);\n }\n}\nfunction updatePackageJsonVersions(version, dir) {\n var packageJsonPath = path.join(dir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n var content = readFileSync(packageJsonPath).toString();\n var contentWithUpdatedVersions = content.replace(/\"workspace:(?:\\^|~|\\*)\"/gm, `\"${version}\"`);\n writeFileSync(packageJsonPath, contentWithUpdatedVersions);\n }\n}\nfunction updateAppJsonName(projectName, dir) {\n var appJsonPath = path.join(dir, \"app.json\");\n if (existsSync(appJsonPath)) {\n var content = readFileSync(appJsonPath).toString();\n var projectSlug = projectName.toLowerCase().replace(/\\s/g, \"-\");\n var contentWithUpdatedName = content.replace(/(\"name\": \")(.*)(\",)/, `$1${projectName}$3`).replace(/(\"slug\": \")(.*)(\",)/, `$1${projectSlug}$3`);\n writeFileSync(appJsonPath, contentWithUpdatedName);\n }\n}\nexport {\n create\n};\n//# sourceMappingURL=create.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"create.native.js","names":[],"sources":["esm/create.native.js"],"sourcesContent":["import ansis from \"ansis\";\nimport FSExtra from \"fs-extra\";\nimport { execSync } from \"child_process\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport { promisify } from \"util\";\nimport { fileURLToPath } from \"url\";\nimport { cloneStarter } from \"./helpers/cloneStarter\";\nimport { getProjectName } from \"./helpers/getProjectName\";\nimport { getTemplateInfo } from \"./helpers/getTemplateInfo\";\nimport { installDependencies } from \"./helpers/installDependencies\";\nimport { validateNpmName } from \"./helpers/validateNpmPackage\";\nimport prompts from \"prompts\";\nimport { detectPackageManager } from \"@vxrn/utils\";\nvar { existsSync, readFileSync, writeFileSync } = FSExtra;\nasync function create(args) {\n var gitVersionString = Number.parseFloat(execSync(`git --version`).toString().replace(`git version `, \"\").trim());\n if (gitVersionString < 2.27) {\n console.error(`\n\n ! vxrn can't install: Git version must be >= 2.27\n\n`);\n process.exit(1);\n }\n var projectDir = args.name || \"\";\n var resolvedProjectPath = path.resolve(process.cwd(), projectDir);\n async function promptForName() {\n projectDir = await getProjectName();\n resolvedProjectPath = path.resolve(process.cwd(), projectDir);\n }\n if (projectDir) {\n if (fs.existsSync(resolvedProjectPath)) {\n console.error(`Error: folder already exists: ${resolvedProjectPath}`);\n process.exit(1);\n }\n } else {\n await promptForName();\n while (fs.existsSync(resolvedProjectPath)) {\n console.info();\n console.info(ansis.yellow(\"!\"), `The folder ${ansis.underline(ansis.blueBright(projectDir))} already exists, lets try another name`);\n console.info();\n console.info();\n await promptForName();\n }\n }\n console.info();\n var template = await getTemplateInfo(args.template);\n var projectName = path.basename(resolvedProjectPath);\n var { valid, problems } = validateNpmName(projectName);\n if (!valid) {\n console.error(`Could not create a project called ${ansis.red(`\"${projectName}\"`)} because of npm naming restrictions:`);\n problems.forEach(function(p) {\n return console.error(` ${ansis.red.bold(\"*\")} ${p}`);\n });\n process.exit(1);\n }\n console.info();\n var Spinner = await import(\"yocto-spinner\").then(function(x) {\n return x.default;\n });\n var spinner = Spinner({\n text: `Creating...`,\n spinner: {\n frames: [\n \"\\u280B\",\n \"\\u2819\",\n \"\\u2839\",\n \"\\u2838\",\n \"\\u283C\",\n \"\\u2834\",\n \"\\u2826\",\n \"\\u2827\",\n \"\\u2807\",\n \"\\u280F\"\n ],\n interval: 100\n }\n }).start();\n var packageJson = await (async function() {\n var errorMessages = [];\n try {\n var dirname = typeof __dirname !== \"undefined\" ? __dirname : path.dirname(fileURLToPath(import.meta.url));\n var possiblePaths = [\n path.join(dirname, \"..\", \"package.json\"),\n path.join(dirname, \"..\", \"..\", \"package.json\"),\n path.join(dirname, \"..\", \"..\", \"..\", \"package.json\")\n ];\n var readFile = promisify(fs.readFile);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = possiblePaths[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var p = _step.value;\n try {\n var data = JSON.parse(await readFile(p));\n return data;\n } catch (e) {\n if (e instanceof Error) errorMessages.push(e.message);\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 throw new Error(\"package.json not found in any of the expected locations.\");\n } catch (e) {\n console.error(\"Failed to load package.json:\", errorMessages.join(\"\\n\"));\n throw e;\n }\n })();\n await FSExtra.mkdir(resolvedProjectPath);\n try {\n await cloneStarter(template, resolvedProjectPath);\n process.chdir(resolvedProjectPath);\n } catch (e) {\n console.error(`[vxrn] Failed to copy example into ${resolvedProjectPath}\n\n`, e);\n process.exit(1);\n }\n spinner.stop();\n console.info();\n console.info();\n console.info(ansis.green(`${projectName} created!`));\n console.info();\n console.info();\n updatePackageJsonName(projectName, resolvedProjectPath);\n updatePackageJsonVersions(packageJson.version, resolvedProjectPath);\n updateAppJsonName(projectName, resolvedProjectPath);\n var packageManager = await (async function() {\n if (\"packageManager\" in template) {\n return template.packageManager;\n }\n var found = await detectPackageManager();\n var allFound = Object.keys(found).filter(function(x) {\n return found[x];\n });\n if (allFound.length === 1) {\n return allFound[0];\n }\n var response = await prompts({\n name: \"packageManager\",\n type: \"select\",\n message: `Package Manager:`,\n choices: allFound.map(function(name) {\n return {\n title: name,\n value: name\n };\n })\n });\n return response.packageManager;\n })();\n if (!packageManager) {\n console.info(\"Dependency installation canceled.\");\n return;\n }\n console.info();\n if (\"preInstall\" in template) {\n await template.preInstall({\n packageManager,\n isFullClone: true,\n projectName,\n projectDir,\n projectPath: resolvedProjectPath\n });\n }\n try {\n console.info();\n console.info(ansis.green(`Installing with ${packageManager}...`));\n console.info();\n await installDependencies(resolvedProjectPath, packageManager);\n } catch (e) {\n console.error(\"[vxrn] error installing with \" + packageManager + `\n${e}`);\n process.exit(1);\n }\n var envDefault = path.join(resolvedProjectPath, \".env.default\");\n var env = path.join(resolvedProjectPath, \".env\");\n if (existsSync(envDefault) && !existsSync(env)) {\n await FSExtra.move(envDefault, env);\n }\n if (\"extraSteps\" in template) {\n await template.extraSteps({\n packageManager,\n isFullClone: true,\n projectName,\n projectDir,\n projectPath: resolvedProjectPath\n });\n }\n console.info();\n}\nfunction updatePackageJsonName(projectName, dir) {\n var packageJsonPath = path.join(dir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n var content = readFileSync(packageJsonPath).toString();\n var contentWithUpdatedName = content.replace(/(\"name\": \")(.*)(\",)/, `$1${projectName}$3`);\n writeFileSync(packageJsonPath, contentWithUpdatedName);\n }\n}\nfunction updatePackageJsonVersions(version, dir) {\n var packageJsonPath = path.join(dir, \"package.json\");\n if (existsSync(packageJsonPath)) {\n var content = readFileSync(packageJsonPath).toString();\n var contentWithUpdatedVersions = content.replace(/\"workspace:(?:\\^|~|\\*)\"/gm, `\"${version}\"`);\n writeFileSync(packageJsonPath, contentWithUpdatedVersions);\n }\n}\nfunction updateAppJsonName(projectName, dir) {\n var appJsonPath = path.join(dir, \"app.json\");\n if (existsSync(appJsonPath)) {\n var content = readFileSync(appJsonPath).toString();\n var projectSlug = projectName.toLowerCase().replace(/\\s/g, \"-\");\n var contentWithUpdatedName = content.replace(/(\"name\": \")(.*)(\",)/, `$1${projectName}$3`).replace(/(\"slug\": \")(.*)(\",)/, `$1${projectSlug}$3`);\n writeFileSync(appJsonPath, contentWithUpdatedName);\n }\n}\nexport {\n create\n};\n//# sourceMappingURL=create.js.map\n"],"mappings":"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"}
@@ -5,6 +5,7 @@ import path from "node:path";
5
5
  import { cwd } from "node:process";
6
6
  import { getTemplateInfo } from "./helpers/getTemplateInfo.mjs";
7
7
  import { create } from "./create.mjs";
8
+ import { detectPackageManager } from "@vxrn/utils";
8
9
  import { fileURLToPath } from "node:url";
9
10
  import { readFileSync } from "node:fs";
10
11
 
@@ -50,8 +51,10 @@ const main = defineCommand({
50
51
  if (args.info) {
51
52
  let template = await getTemplateInfo(args.template);
52
53
  if ("extraSteps" in template) {
54
+ const found = await detectPackageManager();
53
55
  await template.extraSteps({
54
56
  isFullClone: false,
57
+ packageManager: Object.keys(found).find((name) => found[name]),
55
58
  projectName: path.basename(cwd()),
56
59
  projectPath: cwd()
57
60
  });
@@ -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);\nfunction getPackageVersion() {\n let dirname;\n if (typeof __dirname !== \"undefined\") {\n dirname = __dirname;\n } else {\n dirname = path.dirname(fileURLToPath(import.meta.url));\n }\n const packagePath = path.join(dirname, \"..\", \"..\", \"package.json\");\n const packageJson = JSON.parse(readFileSync(packagePath, \"utf-8\"));\n return packageJson.version;\n}\nconst main = defineCommand({\n meta: {\n name: \"create-vxrn\",\n version: getPackageVersion(),\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);\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,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,MAAM,OAAO,cAAc;CACzB,MAAM;EACJ,MAAM;EACN,SAAS,kBAAkB;EAC3B,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"}
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 { detectPackageManager } from \"@vxrn/utils\";\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);\nfunction getPackageVersion() {\n let dirname;\n if (typeof __dirname !== \"undefined\") {\n dirname = __dirname;\n } else {\n dirname = path.dirname(fileURLToPath(import.meta.url));\n }\n const packagePath = path.join(dirname, \"..\", \"..\", \"package.json\");\n const packageJson = JSON.parse(readFileSync(packagePath, \"utf-8\"));\n return packageJson.version;\n}\nconst main = defineCommand({\n meta: {\n name: \"create-vxrn\",\n version: getPackageVersion(),\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 const found = await detectPackageManager();\n await template.extraSteps({\n isFullClone: false,\n packageManager: Object.keys(found).find(\n (name) => found[name]\n ),\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);\n//# sourceMappingURL=index.js.map\n"],"mappings":";;;;;;;;;;;;AAUA,SAAS,OAAO;CACd,QAAQ,KAAK,CAAC;AAChB;AACA,QAAQ,GAAG,WAAW,IAAI;AAC1B,QAAQ,GAAG,UAAU,IAAI;AACzB,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,MAAM,OAAO,cAAc;CACzB,MAAM;EACJ,MAAM;EACN,SAAS,kBAAkB;EAC3B,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,QAAQ,MAAM,qBAAqB;IACzC,MAAM,SAAS,WAAW;KACxB,aAAa;KACb,gBAAgB,OAAO,KAAK,KAAK,CAAC,CAAC,MAChC,SAAS,MAAM,KAClB;KACA,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"}
@@ -5,6 +5,7 @@ import path from "path";
5
5
  import { cwd } from "process";
6
6
  import { getTemplateInfo } from "./helpers/getTemplateInfo.native.js";
7
7
  import { create } from "./create.native.js";
8
+ import { detectPackageManager } from "@vxrn/utils";
8
9
  import { fileURLToPath } from "url";
9
10
  import { readFileSync } from "fs";
10
11
 
@@ -51,8 +52,12 @@ var main = defineCommand({
51
52
  if (args.info) {
52
53
  var template = await getTemplateInfo(args.template);
53
54
  if ("extraSteps" in template) {
55
+ var found = await detectPackageManager();
54
56
  await template.extraSteps({
55
57
  isFullClone: false,
58
+ packageManager: Object.keys(found).find(function(name) {
59
+ return found[name];
60
+ }),
56
61
  projectName: path.basename(cwd()),
57
62
  projectPath: cwd()
58
63
  });
@@ -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);\nfunction getPackageVersion() {\n var dirname;\n if (typeof __dirname !== \"undefined\") {\n dirname = __dirname;\n } else {\n dirname = path.dirname(fileURLToPath(import.meta.url));\n }\n var packagePath = path.join(dirname, \"..\", \"..\", \"package.json\");\n var packageJson = JSON.parse(readFileSync(packagePath, \"utf-8\"));\n return packageJson.version;\n}\nvar main = defineCommand({\n meta: {\n name: \"create-vxrn\",\n version: getPackageVersion(),\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);\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,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,OAAO,cAAc;CACvB,MAAM;EACJ,MAAM;EACN,SAAS,kBAAkB;EAC3B,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"}
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 { detectPackageManager } from \"@vxrn/utils\";\nimport { fileURLToPath } from \"url\";\nimport { readFileSync } from \"fs\";\nfunction exit() {\n process.exit(0);\n}\nprocess.on(\"SIGTERM\", exit);\nprocess.on(\"SIGINT\", exit);\nfunction getPackageVersion() {\n var dirname;\n if (typeof __dirname !== \"undefined\") {\n dirname = __dirname;\n } else {\n dirname = path.dirname(fileURLToPath(import.meta.url));\n }\n var packagePath = path.join(dirname, \"..\", \"..\", \"package.json\");\n var packageJson = JSON.parse(readFileSync(packagePath, \"utf-8\"));\n return packageJson.version;\n}\nvar main = defineCommand({\n meta: {\n name: \"create-vxrn\",\n version: getPackageVersion(),\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 var found = await detectPackageManager();\n await template.extraSteps({\n isFullClone: false,\n packageManager: Object.keys(found).find(function(name) {\n return found[name];\n }),\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);\n//# sourceMappingURL=index.js.map\n"],"mappings":";;;;;;;;;;;;AAUA,SAAS,OAAO;CACd,QAAQ,KAAK,CAAC;AAChB;AACA,QAAQ,GAAG,WAAW,IAAI;AAC1B,QAAQ,GAAG,UAAU,IAAI;AACzB,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,OAAO,cAAc;CACvB,MAAM;EACJ,MAAM;EACN,SAAS,kBAAkB;EAC3B,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,IAAI,QAAQ,MAAM,qBAAqB;IACvC,MAAM,SAAS,WAAW;KACxB,aAAa;KACb,gBAAgB,OAAO,KAAK,KAAK,CAAC,CAAC,KAAK,SAAS,MAAM;MACrD,OAAO,MAAM;KACf,CAAC;KACD,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"}
@@ -3,17 +3,17 @@ import FSExtra from "fs-extra";
3
3
  import { join } from "node:path";
4
4
  import { execPromise } from "@vxrn/utils";
5
5
 
6
- const extraSteps = async ({ isFullClone, projectName, packageManager }) => {
6
+ const extraSteps = async ({ isFullClone, projectName, projectDir = projectName, packageManager }) => {
7
7
  const useBun = packageManager === "bun";
8
8
  const runCommand = (scriptName) => `${packageManager} ${useBun ? "" : "run "}${scriptName}`;
9
9
  if (isFullClone) {
10
10
  console.info(`
11
- ${ansis.green.bold("Done!")} Created a new project under ./${ansis.greenBright(projectName)}`);
11
+ ${ansis.green.bold("Done!")} Created a new project under ${ansis.greenBright(projectDir)}`);
12
12
  }
13
13
  console.info(`
14
14
  To run:
15
15
 
16
- ${ansis.green("cd")} ${projectName}
16
+ ${ansis.green("cd")} ${projectDir}
17
17
  ${ansis.green(runCommand("dev"))}
18
18
  `);
19
19
  };
@@ -1 +1 @@
1
- {"version":3,"file":"one.js","names":[],"sources":["esm/steps/one.js"],"sourcesContent":["import ansis from \"ansis\";\nimport FSExtra from \"fs-extra\";\nimport { join } from \"node:path\";\nimport { execPromise } from \"@vxrn/utils\";\nconst extraSteps = async ({\n isFullClone,\n projectName,\n packageManager\n}) => {\n const useBun = packageManager === \"bun\";\n const runCommand = (scriptName) => `${packageManager} ${useBun ? \"\" : \"run \"}${scriptName}`;\n if (isFullClone) {\n console.info(\n `\n${ansis.green.bold(\"Done!\")} Created a new project under ./${ansis.greenBright(projectName)}`\n );\n }\n console.info(`\nTo run: \n\n ${ansis.green(\"cd\")} ${projectName}\n ${ansis.green(runCommand(\"dev\"))}\n`);\n};\nconst preInstall = async ({\n projectName,\n packageManager,\n projectPath\n}) => {\n const path = projectPath || projectName;\n const 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(\n join(path, \".yarnrc.yml\"),\n `\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 );\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,MAAM,aAAa,OAAO,EACxB,aACA,aACA,qBACI;CACJ,MAAM,SAAS,mBAAmB;CAClC,MAAM,cAAc,eAAe,GAAG,eAAe,GAAG,SAAS,KAAK,SAAS;CAC/E,IAAI,aAAa;EACf,QAAQ,KACN;EACJ,MAAM,MAAM,KAAK,OAAO,EAAE,iCAAiC,MAAM,YAAY,WAAW,GACtF;CACF;CACA,QAAQ,KAAK;;;IAGX,MAAM,MAAM,IAAI,EAAE,GAAG,YAAY;IACjC,MAAM,MAAM,WAAW,KAAK,CAAC,EAAE;CAClC;AACD;AACA,MAAM,aAAa,OAAO,EACxB,aACA,gBACA,kBACI;CACJ,MAAM,OAAO,eAAe;CAC5B,MAAM,aAAa,KAAK,MAAM,cAAc;CAC5C,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,UACZ,KAAK,MAAM,aAAa,GACxB;;;;;;;;;;;;;;;CAgBF;EACA,MAAM,YAAY,yBAAyB;EAC3C,MAAM,QAAQ,UAAU,KAAK,MAAM,WAAW,GAAG,EAAE;EACnD,QAAQ,KAAK,gCAAgC;CAC/C;AACF"}
1
+ {"version":3,"file":"one.js","names":[],"sources":["esm/steps/one.js"],"sourcesContent":["import ansis from \"ansis\";\nimport FSExtra from \"fs-extra\";\nimport { join } from \"node:path\";\nimport { execPromise } from \"@vxrn/utils\";\nconst extraSteps = async ({\n isFullClone,\n projectName,\n projectDir = projectName,\n packageManager\n}) => {\n const useBun = packageManager === \"bun\";\n const runCommand = (scriptName) => `${packageManager} ${useBun ? \"\" : \"run \"}${scriptName}`;\n if (isFullClone) {\n console.info(\n `\n${ansis.green.bold(\"Done!\")} Created a new project under ${ansis.greenBright(projectDir)}`\n );\n }\n console.info(`\nTo run: \n\n ${ansis.green(\"cd\")} ${projectDir}\n ${ansis.green(runCommand(\"dev\"))}\n`);\n};\nconst preInstall = async ({\n projectName,\n packageManager,\n projectPath\n}) => {\n const path = projectPath || projectName;\n const 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(\n join(path, \".yarnrc.yml\"),\n `\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 );\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,MAAM,aAAa,OAAO,EACxB,aACA,aACA,aAAa,aACb,qBACI;CACJ,MAAM,SAAS,mBAAmB;CAClC,MAAM,cAAc,eAAe,GAAG,eAAe,GAAG,SAAS,KAAK,SAAS;CAC/E,IAAI,aAAa;EACf,QAAQ,KACN;EACJ,MAAM,MAAM,KAAK,OAAO,EAAE,+BAA+B,MAAM,YAAY,UAAU,GACnF;CACF;CACA,QAAQ,KAAK;;;IAGX,MAAM,MAAM,IAAI,EAAE,GAAG,WAAW;IAChC,MAAM,MAAM,WAAW,KAAK,CAAC,EAAE;CAClC;AACD;AACA,MAAM,aAAa,OAAO,EACxB,aACA,gBACA,kBACI;CACJ,MAAM,OAAO,eAAe;CAC5B,MAAM,aAAa,KAAK,MAAM,cAAc;CAC5C,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,UACZ,KAAK,MAAM,aAAa,GACxB;;;;;;;;;;;;;;;CAgBF;EACA,MAAM,YAAY,yBAAyB;EAC3C,MAAM,QAAQ,UAAU,KAAK,MAAM,WAAW,GAAG,EAAE;EACnD,QAAQ,KAAK,gCAAgC;CAC/C;AACF"}
@@ -4,19 +4,19 @@ import { join } from "path";
4
4
  import { execPromise } from "@vxrn/utils";
5
5
 
6
6
  var extraSteps = async function extraSteps2(param) {
7
- var { isFullClone, projectName, packageManager } = param;
7
+ var { isFullClone, projectName, projectDir = projectName, packageManager } = param;
8
8
  var useBun = packageManager === "bun";
9
9
  var runCommand = function runCommand2(scriptName) {
10
10
  return `${packageManager} ${useBun ? "" : "run "}${scriptName}`;
11
11
  };
12
12
  if (isFullClone) {
13
13
  console.info(`
14
- ${ansis.green.bold("Done!")} Created a new project under ./${ansis.greenBright(projectName)}`);
14
+ ${ansis.green.bold("Done!")} Created a new project under ${ansis.greenBright(projectDir)}`);
15
15
  }
16
16
  console.info(`
17
17
  To run:
18
18
 
19
- ${ansis.green("cd")} ${projectName}
19
+ ${ansis.green("cd")} ${projectDir}
20
20
  ${ansis.green(runCommand("dev"))}
21
21
  `);
22
22
  };
@@ -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 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"}
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, projectDir = 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(projectDir)}`);\n }\n console.info(`\nTo run: \n\n ${ansis.green(\"cd\")} ${projectDir}\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,aAAa,aAAa,mBAAmB;CAC7E,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,+BAA+B,MAAM,YAAY,UAAU,GAAG;CACxF;CACA,QAAQ,KAAK;;;IAGX,MAAM,MAAM,IAAI,EAAE,GAAG,WAAW;IAChC,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-vxrn",
3
- "version": "2.8.1",
3
+ "version": "2.9.0",
4
4
  "bin": {
5
5
  "create-vxrn": "run.js"
6
6
  },
@@ -32,7 +32,7 @@
32
32
  },
33
33
  "dependencies": {
34
34
  "@types/validate-npm-package-name": "^4.0.2",
35
- "@vxrn/utils": "2.8.1",
35
+ "@vxrn/utils": "2.9.0",
36
36
  "ansis": "^3.1.0",
37
37
  "async-retry": "1.3.3",
38
38
  "citty": "^0.1.6",
@@ -51,7 +51,7 @@
51
51
  "publishConfig": {
52
52
  "access": "public"
53
53
  },
54
- "releaseSourceCommit": "9c7de1d429903229d3a6ef9a741c5ec57102ba6b",
54
+ "releaseSourceCommit": "28cc4531bbc4fa1e392a92dc05529d318278d832",
55
55
  "repository": {
56
56
  "type": "git",
57
57
  "url": "git+https://github.com/onejs/one.git",
package/src/create.ts CHANGED
@@ -24,15 +24,16 @@ export async function create(args: { template?: string; name?: string }) {
24
24
  process.exit(1)
25
25
  }
26
26
 
27
- let projectName = args.name || ''
28
- let resolvedProjectPath = path.resolve(process.cwd(), projectName)
27
+ // the directory may be any path; the npm name comes from its last segment
28
+ let projectDir = args.name || ''
29
+ let resolvedProjectPath = path.resolve(process.cwd(), projectDir)
29
30
 
30
31
  async function promptForName() {
31
- projectName = await getProjectName()
32
- resolvedProjectPath = path.resolve(process.cwd(), projectName)
32
+ projectDir = await getProjectName()
33
+ resolvedProjectPath = path.resolve(process.cwd(), projectDir)
33
34
  }
34
35
 
35
- if (projectName) {
36
+ if (projectDir) {
36
37
  if (fs.existsSync(resolvedProjectPath)) {
37
38
  console.error(`Error: folder already exists: ${resolvedProjectPath}`)
38
39
  process.exit(1)
@@ -45,7 +46,7 @@ export async function create(args: { template?: string; name?: string }) {
45
46
  console.info(
46
47
  ansis.yellow('!'),
47
48
  `The folder ${ansis.underline(
48
- ansis.blueBright(projectName)
49
+ ansis.blueBright(projectDir)
49
50
  )} already exists, lets try another name`
50
51
  )
51
52
  console.info()
@@ -59,6 +60,7 @@ export async function create(args: { template?: string; name?: string }) {
59
60
 
60
61
  let template = await getTemplateInfo(args.template)
61
62
 
63
+ const projectName = path.basename(resolvedProjectPath)
62
64
  const { valid, problems } = validateNpmName(projectName)
63
65
  if (!valid) {
64
66
  console.error(
@@ -179,6 +181,7 @@ export async function create(args: { template?: string; name?: string }) {
179
181
  packageManager,
180
182
  isFullClone: true,
181
183
  projectName,
184
+ projectDir,
182
185
  projectPath: resolvedProjectPath,
183
186
  })
184
187
  }
@@ -205,6 +208,7 @@ export async function create(args: { template?: string; name?: string }) {
205
208
  packageManager,
206
209
  isFullClone: true,
207
210
  projectName,
211
+ projectDir,
208
212
  projectPath: resolvedProjectPath,
209
213
  })
210
214
  }
package/src/index.ts CHANGED
@@ -7,6 +7,7 @@ import path from 'node:path'
7
7
  import { cwd } from 'node:process'
8
8
  import { getTemplateInfo } from './helpers/getTemplateInfo'
9
9
  import { create } from './create'
10
+ import { detectPackageManager, type PackageManagerName } from '@vxrn/utils'
10
11
  import { fileURLToPath } from 'node:url'
11
12
  import { readFileSync } from 'node:fs'
12
13
 
@@ -59,8 +60,12 @@ const main = defineCommand({
59
60
  if (args.info) {
60
61
  let template = await getTemplateInfo(args.template)
61
62
  if ('extraSteps' in template) {
63
+ const found = await detectPackageManager()
62
64
  await template.extraSteps({
63
65
  isFullClone: false,
66
+ packageManager: (Object.keys(found) as PackageManagerName[]).find(
67
+ (name) => found[name]
68
+ ),
64
69
  projectName: path.basename(cwd()),
65
70
  projectPath: cwd(),
66
71
  })
package/src/steps/one.ts CHANGED
@@ -7,6 +7,7 @@ import type { ExtraSteps } from './types'
7
7
  export const extraSteps: ExtraSteps = async ({
8
8
  isFullClone,
9
9
  projectName,
10
+ projectDir = projectName,
10
11
  packageManager,
11
12
  }) => {
12
13
  const useBun = packageManager === 'bun'
@@ -16,13 +17,13 @@ export const extraSteps: ExtraSteps = async ({
16
17
 
17
18
  if (isFullClone) {
18
19
  console.info(
19
- `\n${ansis.green.bold('Done!')} Created a new project under ./${ansis.greenBright(projectName)}`
20
+ `\n${ansis.green.bold('Done!')} Created a new project under ${ansis.greenBright(projectDir)}`
20
21
  )
21
22
  }
22
23
 
23
24
  console.info(`\nTo run:
24
25
 
25
- ${ansis.green('cd')} ${projectName}
26
+ ${ansis.green('cd')} ${projectDir}
26
27
  ${ansis.green(runCommand('dev'))}\n`)
27
28
  }
28
29
 
@@ -3,6 +3,8 @@ export type PreInstall = (args: CreateTemplateProps) => Promise<void>
3
3
 
4
4
  export type CreateTemplateProps = {
5
5
  projectName: string
6
+ // the directory as the user typed it, for the cd hint
7
+ projectDir?: string
6
8
  isFullClone?: boolean
7
9
  packageManager?: string
8
10
  projectPath?: string
@@ -1 +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,iBAmMtE"}
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,iBAuMtE"}
@@ -1 +1 @@
1
- {"version":3,"file":"one.d.ts","sourceRoot":"","sources":["../../src/steps/one.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,eAAO,MAAM,UAAU,EAAE,UAoBxB,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,UAiDxB,CAAA"}
1
+ {"version":3,"file":"one.d.ts","sourceRoot":"","sources":["../../src/steps/one.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,eAAO,MAAM,UAAU,EAAE,UAqBxB,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,UAiDxB,CAAA"}
@@ -2,6 +2,7 @@ export type ExtraSteps = (args: CreateTemplateProps) => Promise<void>;
2
2
  export type PreInstall = (args: CreateTemplateProps) => Promise<void>;
3
3
  export type CreateTemplateProps = {
4
4
  projectName: string;
5
+ projectDir?: string;
5
6
  isFullClone?: boolean;
6
7
  packageManager?: string;
7
8
  projectPath?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/steps/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AACrE,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAErE,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/steps/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AACrE,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAErE,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,MAAM,CAAA;IAEnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA"}