create-vxrn 2.6.0 → 2.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/dist/cjs/create.cjs +0 -9
- package/dist/cjs/create.native.cjs +0 -9
- package/dist/cjs/create.native.js +0 -9
- package/dist/cjs/create.native.js.map +1 -1
- package/dist/cjs/templates.cjs +25 -36
- package/dist/cjs/templates.native.cjs +25 -36
- package/dist/cjs/templates.native.js +25 -36
- package/dist/cjs/templates.native.js.map +1 -1
- package/dist/esm/create.mjs +1 -10
- package/dist/esm/create.mjs.map +1 -1
- package/dist/esm/create.native.js +1 -10
- package/dist/esm/create.native.js.map +1 -1
- package/dist/esm/templates.mjs +25 -36
- package/dist/esm/templates.mjs.map +1 -1
- package/dist/esm/templates.native.js +25 -36
- package/dist/esm/templates.native.js.map +1 -1
- package/package.json +4 -4
- package/src/create.ts +1 -17
- package/src/templates.ts +3 -13
- package/types/create.d.ts.map +1 -1
- package/types/templates.d.ts +3 -10
- package/types/templates.d.ts.map +1 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
$ tamagui-build
|
|
2
|
-
built create-vxrn in
|
|
2
|
+
built create-vxrn in 467 ms
|
package/dist/cjs/create.cjs
CHANGED
|
@@ -76,15 +76,6 @@ async function create(args) {
|
|
|
76
76
|
}
|
|
77
77
|
console.info();
|
|
78
78
|
let template = await (0, import_getTemplateInfo.getTemplateInfo)(args.template);
|
|
79
|
-
if (template.type === "external-link") {
|
|
80
|
-
const url = template.externalUrl;
|
|
81
|
-
console.info();
|
|
82
|
-
console.info(import_ansis.default.green(`Opening ${url}...`));
|
|
83
|
-
console.info();
|
|
84
|
-
const openCmd = process.platform === "darwin" ? "open" : process.platform === "win32" ? "start" : "xdg-open";
|
|
85
|
-
(0, import_node_child_process.exec)(`${openCmd} ${url}`);
|
|
86
|
-
process.exit(0);
|
|
87
|
-
}
|
|
88
79
|
const { valid, problems } = (0, import_validateNpmPackage.validateNpmName)(projectName);
|
|
89
80
|
if (!valid) {
|
|
90
81
|
console.error(`Could not create a project called ${import_ansis.default.red(`"${projectName}"`)} because of npm naming restrictions:`);
|
|
@@ -78,15 +78,6 @@ async function create(args) {
|
|
|
78
78
|
}
|
|
79
79
|
console.info();
|
|
80
80
|
var template = await (0, import_getTemplateInfo.getTemplateInfo)(args.template);
|
|
81
|
-
if (template.type === "external-link") {
|
|
82
|
-
var url = template.externalUrl;
|
|
83
|
-
console.info();
|
|
84
|
-
console.info(import_ansis.default.green(`Opening ${url}...`));
|
|
85
|
-
console.info();
|
|
86
|
-
var openCmd = process.platform === "darwin" ? "open" : process.platform === "win32" ? "start" : "xdg-open";
|
|
87
|
-
(0, import_child_process.exec)(`${openCmd} ${url}`);
|
|
88
|
-
process.exit(0);
|
|
89
|
-
}
|
|
90
81
|
var { valid, problems } = (0, import_validateNpmPackage.validateNpmName)(projectName);
|
|
91
82
|
if (!valid) {
|
|
92
83
|
console.error(`Could not create a project called ${import_ansis.default.red(`"${projectName}"`)} because of npm naming restrictions:`);
|
|
@@ -78,15 +78,6 @@ async function create(args) {
|
|
|
78
78
|
}
|
|
79
79
|
console.info();
|
|
80
80
|
var template = await (0, import_getTemplateInfo.getTemplateInfo)(args.template);
|
|
81
|
-
if (template.type === "external-link") {
|
|
82
|
-
var url = template.externalUrl;
|
|
83
|
-
console.info();
|
|
84
|
-
console.info(import_ansis.default.green(`Opening ${url}...`));
|
|
85
|
-
console.info();
|
|
86
|
-
var openCmd = process.platform === "darwin" ? "open" : process.platform === "win32" ? "start" : "xdg-open";
|
|
87
|
-
(0, import_child_process.exec)(`${openCmd} ${url}`);
|
|
88
|
-
process.exit(0);
|
|
89
|
-
}
|
|
90
81
|
var { valid, problems } = (0, import_validateNpmPackage.validateNpmName)(projectName);
|
|
91
82
|
if (!valid) {
|
|
92
83
|
console.error(`Could not create a project called ${import_ansis.default.red(`"${projectName}"`)} because of npm naming restrictions:`);
|
|
@@ -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 if (template.type === \"external-link\") {\n var url = template.externalUrl;\n console.info();\n console.info(import_ansis.default.green(`Opening ${url}...`));\n console.info();\n var openCmd = process.platform === \"darwin\" ? \"open\" : process.platform === \"win32\" ? \"start\" : \"xdg-open\";\n (0, import_child_process.exec)(`${openCmd} ${url}`);\n process.exit(0);\n }\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 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":"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"}
|
|
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 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":"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"}
|
package/dist/cjs/templates.cjs
CHANGED
|
@@ -28,41 +28,30 @@ var templates_exports = {};
|
|
|
28
28
|
__export(templates_exports, { templates: () => templates });
|
|
29
29
|
module.exports = __toCommonJS(templates_exports);
|
|
30
30
|
var BasicTemplateSteps = __toESM(require("./steps/one.cjs"));
|
|
31
|
-
const templates = [
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
branch: "main"
|
|
43
|
-
},
|
|
44
|
-
...BasicTemplateSteps
|
|
31
|
+
const templates = [{
|
|
32
|
+
title: `Basic`,
|
|
33
|
+
value: "Basic",
|
|
34
|
+
description: "The simplest starting point, vanilla React Native",
|
|
35
|
+
type: "included-in-monorepo",
|
|
36
|
+
hidden: false,
|
|
37
|
+
repo: {
|
|
38
|
+
url: `https://github.com/onejs/one.git`,
|
|
39
|
+
sshFallback: `git@github.com:onejs/one.git`,
|
|
40
|
+
dir: [`examples`, `one-basic`],
|
|
41
|
+
branch: "main"
|
|
45
42
|
},
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
...BasicTemplateSteps
|
|
43
|
+
...BasicTemplateSteps
|
|
44
|
+
}, {
|
|
45
|
+
title: `Takeout`,
|
|
46
|
+
value: "Takeout",
|
|
47
|
+
description: "One, Tamagui, Zero, Better Auth",
|
|
48
|
+
type: "external-repo",
|
|
49
|
+
hidden: false,
|
|
50
|
+
repo: {
|
|
51
|
+
url: `https://github.com/tamagui/takeout2.git`,
|
|
52
|
+
sshFallback: `git@github.com:tamagui/takeout2.git`,
|
|
53
|
+
dir: [],
|
|
54
|
+
branch: "main"
|
|
59
55
|
},
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
value: "TakeoutPro",
|
|
63
|
-
description: "Takeout + a startup in a repo. Refined stack that's production ready. Home/Terms/Docs, CI/CD, IaC, Integration Tests, Onboarding, Notifications, OTA Updates, Screens, >50 Components, >25 Agent Docs, >30 Scripts. See https://takeout.tamagui.dev",
|
|
64
|
-
type: "external-link",
|
|
65
|
-
hidden: false,
|
|
66
|
-
externalUrl: "https://takeout.tamagui.dev"
|
|
67
|
-
}
|
|
68
|
-
];
|
|
56
|
+
...BasicTemplateSteps
|
|
57
|
+
}];
|
|
@@ -30,41 +30,30 @@ var templates_exports = {};
|
|
|
30
30
|
__export(templates_exports, { templates: () => templates });
|
|
31
31
|
module.exports = __toCommonJS(templates_exports);
|
|
32
32
|
var BasicTemplateSteps = __toESM(require("./steps/one.native.js"));
|
|
33
|
-
var templates = [
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
branch: "main"
|
|
45
|
-
},
|
|
46
|
-
...BasicTemplateSteps
|
|
33
|
+
var templates = [{
|
|
34
|
+
title: `Basic`,
|
|
35
|
+
value: "Basic",
|
|
36
|
+
description: "The simplest starting point, vanilla React Native",
|
|
37
|
+
type: "included-in-monorepo",
|
|
38
|
+
hidden: false,
|
|
39
|
+
repo: {
|
|
40
|
+
url: `https://github.com/onejs/one.git`,
|
|
41
|
+
sshFallback: `git@github.com:onejs/one.git`,
|
|
42
|
+
dir: [`examples`, `one-basic`],
|
|
43
|
+
branch: "main"
|
|
47
44
|
},
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
...BasicTemplateSteps
|
|
45
|
+
...BasicTemplateSteps
|
|
46
|
+
}, {
|
|
47
|
+
title: `Takeout`,
|
|
48
|
+
value: "Takeout",
|
|
49
|
+
description: "One, Tamagui, Zero, Better Auth",
|
|
50
|
+
type: "external-repo",
|
|
51
|
+
hidden: false,
|
|
52
|
+
repo: {
|
|
53
|
+
url: `https://github.com/tamagui/takeout2.git`,
|
|
54
|
+
sshFallback: `git@github.com:tamagui/takeout2.git`,
|
|
55
|
+
dir: [],
|
|
56
|
+
branch: "main"
|
|
61
57
|
},
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
value: "TakeoutPro",
|
|
65
|
-
description: "Takeout + a startup in a repo. Refined stack that's production ready. Home/Terms/Docs, CI/CD, IaC, Integration Tests, Onboarding, Notifications, OTA Updates, Screens, >50 Components, >25 Agent Docs, >30 Scripts. See https://takeout.tamagui.dev",
|
|
66
|
-
type: "external-link",
|
|
67
|
-
hidden: false,
|
|
68
|
-
externalUrl: "https://takeout.tamagui.dev"
|
|
69
|
-
}
|
|
70
|
-
];
|
|
58
|
+
...BasicTemplateSteps
|
|
59
|
+
}];
|
|
@@ -30,43 +30,32 @@ var templates_exports = {};
|
|
|
30
30
|
__export(templates_exports, { templates: () => templates });
|
|
31
31
|
module.exports = __toCommonJS(templates_exports);
|
|
32
32
|
var BasicTemplateSteps = __toESM(require("./steps/one.native.js"));
|
|
33
|
-
var templates = [
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
branch: "main"
|
|
45
|
-
},
|
|
46
|
-
...BasicTemplateSteps
|
|
33
|
+
var templates = [{
|
|
34
|
+
title: `Basic`,
|
|
35
|
+
value: "Basic",
|
|
36
|
+
description: "The simplest starting point, vanilla React Native",
|
|
37
|
+
type: "included-in-monorepo",
|
|
38
|
+
hidden: false,
|
|
39
|
+
repo: {
|
|
40
|
+
url: `https://github.com/onejs/one.git`,
|
|
41
|
+
sshFallback: `git@github.com:onejs/one.git`,
|
|
42
|
+
dir: [`examples`, `one-basic`],
|
|
43
|
+
branch: "main"
|
|
47
44
|
},
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
...BasicTemplateSteps
|
|
45
|
+
...BasicTemplateSteps
|
|
46
|
+
}, {
|
|
47
|
+
title: `Takeout`,
|
|
48
|
+
value: "Takeout",
|
|
49
|
+
description: "One, Tamagui, Zero, Better Auth",
|
|
50
|
+
type: "external-repo",
|
|
51
|
+
hidden: false,
|
|
52
|
+
repo: {
|
|
53
|
+
url: `https://github.com/tamagui/takeout2.git`,
|
|
54
|
+
sshFallback: `git@github.com:tamagui/takeout2.git`,
|
|
55
|
+
dir: [],
|
|
56
|
+
branch: "main"
|
|
61
57
|
},
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
value: "TakeoutPro",
|
|
65
|
-
description: "Takeout + a startup in a repo. Refined stack that's production ready. Home/Terms/Docs, CI/CD, IaC, Integration Tests, Onboarding, Notifications, OTA Updates, Screens, >50 Components, >25 Agent Docs, >30 Scripts. See https://takeout.tamagui.dev",
|
|
66
|
-
type: "external-link",
|
|
67
|
-
hidden: false,
|
|
68
|
-
externalUrl: "https://takeout.tamagui.dev"
|
|
69
|
-
}
|
|
70
|
-
];
|
|
58
|
+
...BasicTemplateSteps
|
|
59
|
+
}];
|
|
71
60
|
|
|
72
61
|
//# sourceMappingURL=templates.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.native.js","names":[],"sources":["cjs/templates.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 templates_exports = {};\n__export(templates_exports, {\n templates: () => templates\n});\nmodule.exports = __toCommonJS(templates_exports);\nvar BasicTemplateSteps = __toESM(require(\"./steps/one\"));\nvar templates = [\n {\n title: `Basic`,\n value: \"Basic\",\n description: \"The simplest starting point, vanilla React Native\",\n type: \"included-in-monorepo\",\n hidden: false,\n repo: {\n url: `https://github.com/onejs/one.git`,\n sshFallback: `git@github.com:onejs/one.git`,\n dir: [\n `examples`,\n `one-basic`\n ],\n branch: \"main\"\n },\n ...BasicTemplateSteps\n },\n {\n title: `Takeout
|
|
1
|
+
{"version":3,"file":"templates.native.js","names":[],"sources":["cjs/templates.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 templates_exports = {};\n__export(templates_exports, {\n templates: () => templates\n});\nmodule.exports = __toCommonJS(templates_exports);\nvar BasicTemplateSteps = __toESM(require(\"./steps/one\"));\nvar templates = [\n {\n title: `Basic`,\n value: \"Basic\",\n description: \"The simplest starting point, vanilla React Native\",\n type: \"included-in-monorepo\",\n hidden: false,\n repo: {\n url: `https://github.com/onejs/one.git`,\n sshFallback: `git@github.com:onejs/one.git`,\n dir: [\n `examples`,\n `one-basic`\n ],\n branch: \"main\"\n },\n ...BasicTemplateSteps\n },\n {\n title: `Takeout`,\n value: \"Takeout\",\n description: \"One, Tamagui, Zero, Better Auth\",\n type: \"external-repo\",\n hidden: false,\n repo: {\n url: `https://github.com/tamagui/takeout2.git`,\n sshFallback: `git@github.com:tamagui/takeout2.git`,\n dir: [],\n branch: \"main\"\n },\n ...BasicTemplateSteps\n }\n];\n//# sourceMappingURL=templates.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,oBAAoB,CAAC;AACzB,SAAS,mBAAmB,EAC1B,iBAAiB,UACnB,CAAC;AACD,OAAO,UAAU,aAAa,iBAAiB;AAC/C,IAAI,qBAAqB,QAAQ,QAAQ,uBAAa,CAAC;AACvD,IAAI,YAAY,CACd;CACE,OAAO;CACP,OAAO;CACP,aAAa;CACb,MAAM;CACN,QAAQ;CACR,MAAM;EACJ,KAAK;EACL,aAAa;EACb,KAAK,CACH,YACA,WACF;EACA,QAAQ;CACV;CACA,GAAG;AACL,GACA;CACE,OAAO;CACP,OAAO;CACP,aAAa;CACb,MAAM;CACN,QAAQ;CACR,MAAM;EACJ,KAAK;EACL,aAAa;EACb,KAAK,CAAC;EACN,QAAQ;CACV;CACA,GAAG;AACL,CACF"}
|
package/dist/esm/create.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import ansis from "ansis";
|
|
2
2
|
import FSExtra from "fs-extra";
|
|
3
|
-
import {
|
|
3
|
+
import { execSync } from "node:child_process";
|
|
4
4
|
import fs from "node:fs";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import { promisify } from "node:util";
|
|
@@ -47,15 +47,6 @@ async function create(args) {
|
|
|
47
47
|
}
|
|
48
48
|
console.info();
|
|
49
49
|
let template = await getTemplateInfo(args.template);
|
|
50
|
-
if (template.type === "external-link") {
|
|
51
|
-
const url = template.externalUrl;
|
|
52
|
-
console.info();
|
|
53
|
-
console.info(ansis.green(`Opening ${url}...`));
|
|
54
|
-
console.info();
|
|
55
|
-
const openCmd = process.platform === "darwin" ? "open" : process.platform === "win32" ? "start" : "xdg-open";
|
|
56
|
-
exec(`${openCmd} ${url}`);
|
|
57
|
-
process.exit(0);
|
|
58
|
-
}
|
|
59
50
|
const { valid, problems } = validateNpmName(projectName);
|
|
60
51
|
if (!valid) {
|
|
61
52
|
console.error(`Could not create a project called ${ansis.red(`"${projectName}"`)} because of npm naming restrictions:`);
|
package/dist/esm/create.mjs.map
CHANGED
|
@@ -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, exec } 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 if (template.type === \"external-link\") {\n const url = template.externalUrl;\n console.info();\n console.info(ansis.green(`Opening ${url}...`));\n console.info();\n const openCmd = process.platform === \"darwin\" ? \"open\" : process.platform === \"win32\" ? \"start\" : \"xdg-open\";\n exec(`${openCmd} ${url}`);\n process.exit(0);\n }\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 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 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 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":";;;;;;;;;;;;;;;;AAcA,MAAM,EAAE,YAAY,cAAc,kBAAkB;AACpD,eAAe,OAAO,MAAM;CAC1B,MAAM,mBAAmB,OAAO,WAC9B,SAAS,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,gBAAgB,EAAE,CAAC,CAAC,KAAK,CACxE;CACA,IAAI,mBAAmB,MAAM;EAC3B,QAAQ,MAAM;;;;CAIjB;EACG,QAAQ,KAAK,CAAC;CAChB;CACA,IAAI,cAAc,KAAK,QAAQ;CAC/B,IAAI,sBAAsB,KAAK,QAAQ,QAAQ,IAAI,GAAG,WAAW;CACjE,eAAe,gBAAgB;EAC7B,cAAc,MAAM,eAAe;EACnC,sBAAsB,KAAK,QAAQ,QAAQ,IAAI,GAAG,WAAW;CAC/D;CACA,IAAI,aAAa;EACf,IAAI,GAAG,WAAW,mBAAmB,GAAG;GACtC,QAAQ,MAAM,iCAAiC,qBAAqB;GACpE,QAAQ,KAAK,CAAC;EAChB;CACF,OAAO;EACL,MAAM,cAAc;EACpB,OAAO,GAAG,WAAW,mBAAmB,GAAG;GACzC,QAAQ,KAAK;GACb,QAAQ,KACN,MAAM,OAAO,GAAG,GAChB,cAAc,MAAM,UAClB,MAAM,WAAW,WAAW,CAC9B,EAAE,uCACJ;GACA,QAAQ,KAAK;GACb,QAAQ,KAAK;GACb,MAAM,cAAc;EACtB;CACF;CACA,QAAQ,KAAK;CACb,IAAI,WAAW,MAAM,gBAAgB,KAAK,QAAQ;CAClD,MAAM,EAAE,OAAO,aAAa,gBAAgB,WAAW;CACvD,IAAI,CAAC,OAAO;EACV,QAAQ,MACN,qCAAqC,MAAM,IACzC,IAAI,YAAY,EAClB,EAAE,qCACJ;EACA,SAAS,SAAS,MAAM,QAAQ,MAAM,OAAO,MAAM,IAAI,KAAK,GAAG,EAAE,GAAG,GAAG,CAAC;EACxE,QAAQ,KAAK,CAAC;CAChB;CACA,QAAQ,KAAK;CACb,MAAM,UAAU,MAAM,OAAO,gBAAgB,CAAC,MAAM,MAAM,EAAE,OAAO;CACnE,MAAM,UAAU,QAAQ;EACtB,MAAM;EACN,SAAS;GACP,QAAQ;IAAC;IAAU;IAAU;IAAU;IAAU;IAAU;IAAU;IAAU;IAAU;IAAU;GAAQ;GAC3G,UAAU;EACZ;CACF,CAAC,CAAC,CAAC,MAAM;CACT,MAAM,cAAc,OAAO,YAAY;EACrC,MAAM,gBAAgB,CAAC;EACvB,IAAI;GACF,MAAM,UAAU,OAAO,cAAc,cAAc,YAAY,KAAK,QAAQ,cAAc,YAAY,GAAG,CAAC;GAC1G,MAAM,gBAAgB;IACpB,KAAK,KAAK,SAAS,MAAM,cAAc;IACvC,KAAK,KAAK,SAAS,MAAM,MAAM,cAAc;IAC7C,KAAK,KAAK,SAAS,MAAM,MAAM,MAAM,cAAc;GACrD;GACA,MAAM,WAAW,UAAU,GAAG,QAAQ;GACtC,KAAK,MAAM,KAAK,eAAe;IAC7B,IAAI;KACF,MAAM,OAAO,KAAK,MAAM,MAAM,SAAS,CAAC,CAAC;KACzC,OAAO;IACT,SAAS,GAAG;KACV,IAAI,aAAa,OAAO,cAAc,KAAK,EAAE,OAAO;IACtD;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,QAAQ,MAAM,mBAAmB;CACvC,IAAI;EACF,MAAM,aAAa,UAAU,mBAAmB;EAChD,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,MAAM,MAAM,GAAG,YAAY,UAAU,CAAC;CACnD,QAAQ,KAAK;CACb,QAAQ,KAAK;CACb,sBAAsB,aAAa,mBAAmB;CACtD,0BAA0B,YAAY,SAAS,mBAAmB;CAClE,kBAAkB,aAAa,mBAAmB;CAClD,MAAM,iBAAiB,OAAO,YAAY;EACxC,IAAI,oBAAoB,UAAU;GAChC,OAAO,SAAS;EAClB;EACA,MAAM,QAAQ,MAAM,qBAAqB;EACzC,MAAM,WAAW,OAAO,KAAK,KAAK,CAAC,CAAC,QAAQ,MAAM,MAAM,EAAE;EAC1D,IAAI,SAAS,WAAW,GAAG;GACzB,OAAO,SAAS;EAClB;EACA,MAAM,WAAW,MAAM,QAAQ;GAC7B,MAAM;GACN,MAAM;GACN,SAAS;GACT,SAAS,SAAS,KAAK,UAAU;IAC/B,OAAO;IACP,OAAO;GACT,EAAE;EACJ,CAAC;EACD,OAAO,SAAS;CAClB,EAAC,CAAE;CACH,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,MAAM,MAAM,mBAAmB,eAAe,IAAI,CAAC;EAChE,QAAQ,KAAK;EACb,MAAM,oBAAoB,qBAAqB,cAAc;CAC/D,SAAS,GAAG;EACV,QAAQ,MAAM,kCAAkC,iBAAiB;EACnE,GAAG;EACD,QAAQ,KAAK,CAAC;CAChB;CACA,MAAM,aAAa,KAAK,KAAK,qBAAqB,cAAc;CAChE,MAAM,MAAM,KAAK,KAAK,qBAAqB,MAAM;CACjD,IAAI,WAAW,UAAU,KAAK,CAAC,WAAW,GAAG,GAAG;EAC9C,MAAM,QAAQ,KAAK,YAAY,GAAG;CACpC;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,MAAM,kBAAkB,KAAK,KAAK,KAAK,cAAc;CACrD,IAAI,WAAW,eAAe,GAAG;EAC/B,MAAM,UAAU,aAAa,eAAe,CAAC,CAAC,SAAS;EACvD,MAAM,yBAAyB,QAAQ,QACrC,uBACA,KAAK,YAAY,GACnB;EACA,cAAc,iBAAiB,sBAAsB;CACvD;AACF;AACA,SAAS,0BAA0B,SAAS,KAAK;CAC/C,MAAM,kBAAkB,KAAK,KAAK,KAAK,cAAc;CACrD,IAAI,WAAW,eAAe,GAAG;EAC/B,MAAM,UAAU,aAAa,eAAe,CAAC,CAAC,SAAS;EACvD,MAAM,6BAA6B,QAAQ,QACzC,6BACA,IAAI,QAAQ,EACd;EACA,cAAc,iBAAiB,0BAA0B;CAC3D;AACF;AACA,SAAS,kBAAkB,aAAa,KAAK;CAC3C,MAAM,cAAc,KAAK,KAAK,KAAK,UAAU;CAC7C,IAAI,WAAW,WAAW,GAAG;EAC3B,MAAM,UAAU,aAAa,WAAW,CAAC,CAAC,SAAS;EACnD,MAAM,cAAc,YAAY,YAAY,CAAC,CAAC,QAAQ,OAAO,GAAG;EAChE,MAAM,yBAAyB,QAAQ,QAAQ,uBAAuB,KAAK,YAAY,GAAG,CAAC,CAAC,QAAQ,uBAAuB,KAAK,YAAY,GAAG;EAC/I,cAAc,aAAa,sBAAsB;CACnD;AACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import ansis from "ansis";
|
|
2
2
|
import FSExtra from "fs-extra";
|
|
3
|
-
import {
|
|
3
|
+
import { execSync } from "child_process";
|
|
4
4
|
import fs from "fs";
|
|
5
5
|
import path from "path";
|
|
6
6
|
import { promisify } from "util";
|
|
@@ -47,15 +47,6 @@ async function create(args) {
|
|
|
47
47
|
}
|
|
48
48
|
console.info();
|
|
49
49
|
var template = await getTemplateInfo(args.template);
|
|
50
|
-
if (template.type === "external-link") {
|
|
51
|
-
var url = template.externalUrl;
|
|
52
|
-
console.info();
|
|
53
|
-
console.info(ansis.green(`Opening ${url}...`));
|
|
54
|
-
console.info();
|
|
55
|
-
var openCmd = process.platform === "darwin" ? "open" : process.platform === "win32" ? "start" : "xdg-open";
|
|
56
|
-
exec(`${openCmd} ${url}`);
|
|
57
|
-
process.exit(0);
|
|
58
|
-
}
|
|
59
50
|
var { valid, problems } = validateNpmName(projectName);
|
|
60
51
|
if (!valid) {
|
|
61
52
|
console.error(`Could not create a project called ${ansis.red(`"${projectName}"`)} because of npm naming restrictions:`);
|
|
@@ -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, exec } 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 if (template.type === \"external-link\") {\n var url = template.externalUrl;\n console.info();\n console.info(ansis.green(`Opening ${url}...`));\n console.info();\n var openCmd = process.platform === \"darwin\" ? \"open\" : process.platform === \"win32\" ? \"start\" : \"xdg-open\";\n exec(`${openCmd} ${url}`);\n process.exit(0);\n }\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 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 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 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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"}
|
package/dist/esm/templates.mjs
CHANGED
|
@@ -1,43 +1,32 @@
|
|
|
1
1
|
import * as BasicTemplateSteps from "./steps/one.mjs";
|
|
2
2
|
|
|
3
|
-
const templates = [
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
branch: "main"
|
|
15
|
-
},
|
|
16
|
-
...BasicTemplateSteps
|
|
3
|
+
const templates = [{
|
|
4
|
+
title: `Basic`,
|
|
5
|
+
value: "Basic",
|
|
6
|
+
description: "The simplest starting point, vanilla React Native",
|
|
7
|
+
type: "included-in-monorepo",
|
|
8
|
+
hidden: false,
|
|
9
|
+
repo: {
|
|
10
|
+
url: `https://github.com/onejs/one.git`,
|
|
11
|
+
sshFallback: `git@github.com:onejs/one.git`,
|
|
12
|
+
dir: [`examples`, `one-basic`],
|
|
13
|
+
branch: "main"
|
|
17
14
|
},
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
...BasicTemplateSteps
|
|
15
|
+
...BasicTemplateSteps
|
|
16
|
+
}, {
|
|
17
|
+
title: `Takeout`,
|
|
18
|
+
value: "Takeout",
|
|
19
|
+
description: "One, Tamagui, Zero, Better Auth",
|
|
20
|
+
type: "external-repo",
|
|
21
|
+
hidden: false,
|
|
22
|
+
repo: {
|
|
23
|
+
url: `https://github.com/tamagui/takeout2.git`,
|
|
24
|
+
sshFallback: `git@github.com:tamagui/takeout2.git`,
|
|
25
|
+
dir: [],
|
|
26
|
+
branch: "main"
|
|
31
27
|
},
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
value: "TakeoutPro",
|
|
35
|
-
description: "Takeout + a startup in a repo. Refined stack that's production ready. Home/Terms/Docs, CI/CD, IaC, Integration Tests, Onboarding, Notifications, OTA Updates, Screens, >50 Components, >25 Agent Docs, >30 Scripts. See https://takeout.tamagui.dev",
|
|
36
|
-
type: "external-link",
|
|
37
|
-
hidden: false,
|
|
38
|
-
externalUrl: "https://takeout.tamagui.dev"
|
|
39
|
-
}
|
|
40
|
-
];
|
|
28
|
+
...BasicTemplateSteps
|
|
29
|
+
}];
|
|
41
30
|
|
|
42
31
|
export { templates };
|
|
43
32
|
//# sourceMappingURL=templates.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","names":[],"sources":["esm/templates.js"],"sourcesContent":["import * as BasicTemplateSteps from \"./steps/one\";\nconst templates = [\n {\n title: `Basic`,\n value: \"Basic\",\n description: \"The simplest starting point, vanilla React Native\",\n type: \"included-in-monorepo\",\n hidden: false,\n repo: {\n url: `https://github.com/onejs/one.git`,\n sshFallback: `git@github.com:onejs/one.git`,\n dir: [`examples`, `one-basic`],\n branch: \"main\"\n },\n ...BasicTemplateSteps\n },\n {\n title: `Takeout
|
|
1
|
+
{"version":3,"file":"templates.js","names":[],"sources":["esm/templates.js"],"sourcesContent":["import * as BasicTemplateSteps from \"./steps/one\";\nconst templates = [\n {\n title: `Basic`,\n value: \"Basic\",\n description: \"The simplest starting point, vanilla React Native\",\n type: \"included-in-monorepo\",\n hidden: false,\n repo: {\n url: `https://github.com/onejs/one.git`,\n sshFallback: `git@github.com:onejs/one.git`,\n dir: [`examples`, `one-basic`],\n branch: \"main\"\n },\n ...BasicTemplateSteps\n },\n {\n title: `Takeout`,\n value: \"Takeout\",\n description: \"One, Tamagui, Zero, Better Auth\",\n type: \"external-repo\",\n hidden: false,\n repo: {\n url: `https://github.com/tamagui/takeout2.git`,\n sshFallback: `git@github.com:tamagui/takeout2.git`,\n dir: [],\n branch: \"main\"\n },\n ...BasicTemplateSteps\n }\n];\nexport {\n templates\n};\n//# sourceMappingURL=templates.js.map\n"],"mappings":";;;AACA,MAAM,YAAY,CAChB;CACE,OAAO;CACP,OAAO;CACP,aAAa;CACb,MAAM;CACN,QAAQ;CACR,MAAM;EACJ,KAAK;EACL,aAAa;EACb,KAAK,CAAC,YAAY,WAAW;EAC7B,QAAQ;CACV;CACA,GAAG;AACL,GACA;CACE,OAAO;CACP,OAAO;CACP,aAAa;CACb,MAAM;CACN,QAAQ;CACR,MAAM;EACJ,KAAK;EACL,aAAa;EACb,KAAK,CAAC;EACN,QAAQ;CACV;CACA,GAAG;AACL,CACF"}
|
|
@@ -1,43 +1,32 @@
|
|
|
1
1
|
import * as BasicTemplateSteps from "./steps/one.native.js";
|
|
2
2
|
|
|
3
|
-
var templates = [
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
branch: "main"
|
|
15
|
-
},
|
|
16
|
-
...BasicTemplateSteps
|
|
3
|
+
var templates = [{
|
|
4
|
+
title: `Basic`,
|
|
5
|
+
value: "Basic",
|
|
6
|
+
description: "The simplest starting point, vanilla React Native",
|
|
7
|
+
type: "included-in-monorepo",
|
|
8
|
+
hidden: false,
|
|
9
|
+
repo: {
|
|
10
|
+
url: `https://github.com/onejs/one.git`,
|
|
11
|
+
sshFallback: `git@github.com:onejs/one.git`,
|
|
12
|
+
dir: [`examples`, `one-basic`],
|
|
13
|
+
branch: "main"
|
|
17
14
|
},
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
...BasicTemplateSteps
|
|
15
|
+
...BasicTemplateSteps
|
|
16
|
+
}, {
|
|
17
|
+
title: `Takeout`,
|
|
18
|
+
value: "Takeout",
|
|
19
|
+
description: "One, Tamagui, Zero, Better Auth",
|
|
20
|
+
type: "external-repo",
|
|
21
|
+
hidden: false,
|
|
22
|
+
repo: {
|
|
23
|
+
url: `https://github.com/tamagui/takeout2.git`,
|
|
24
|
+
sshFallback: `git@github.com:tamagui/takeout2.git`,
|
|
25
|
+
dir: [],
|
|
26
|
+
branch: "main"
|
|
31
27
|
},
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
value: "TakeoutPro",
|
|
35
|
-
description: "Takeout + a startup in a repo. Refined stack that's production ready. Home/Terms/Docs, CI/CD, IaC, Integration Tests, Onboarding, Notifications, OTA Updates, Screens, >50 Components, >25 Agent Docs, >30 Scripts. See https://takeout.tamagui.dev",
|
|
36
|
-
type: "external-link",
|
|
37
|
-
hidden: false,
|
|
38
|
-
externalUrl: "https://takeout.tamagui.dev"
|
|
39
|
-
}
|
|
40
|
-
];
|
|
28
|
+
...BasicTemplateSteps
|
|
29
|
+
}];
|
|
41
30
|
|
|
42
31
|
export { templates };
|
|
43
32
|
//# sourceMappingURL=templates.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.native.js","names":[],"sources":["esm/templates.native.js"],"sourcesContent":["import * as BasicTemplateSteps from \"./steps/one\";\nvar templates = [\n {\n title: `Basic`,\n value: \"Basic\",\n description: \"The simplest starting point, vanilla React Native\",\n type: \"included-in-monorepo\",\n hidden: false,\n repo: {\n url: `https://github.com/onejs/one.git`,\n sshFallback: `git@github.com:onejs/one.git`,\n dir: [\n `examples`,\n `one-basic`\n ],\n branch: \"main\"\n },\n ...BasicTemplateSteps\n },\n {\n title: `Takeout
|
|
1
|
+
{"version":3,"file":"templates.native.js","names":[],"sources":["esm/templates.native.js"],"sourcesContent":["import * as BasicTemplateSteps from \"./steps/one\";\nvar templates = [\n {\n title: `Basic`,\n value: \"Basic\",\n description: \"The simplest starting point, vanilla React Native\",\n type: \"included-in-monorepo\",\n hidden: false,\n repo: {\n url: `https://github.com/onejs/one.git`,\n sshFallback: `git@github.com:onejs/one.git`,\n dir: [\n `examples`,\n `one-basic`\n ],\n branch: \"main\"\n },\n ...BasicTemplateSteps\n },\n {\n title: `Takeout`,\n value: \"Takeout\",\n description: \"One, Tamagui, Zero, Better Auth\",\n type: \"external-repo\",\n hidden: false,\n repo: {\n url: `https://github.com/tamagui/takeout2.git`,\n sshFallback: `git@github.com:tamagui/takeout2.git`,\n dir: [],\n branch: \"main\"\n },\n ...BasicTemplateSteps\n }\n];\nexport {\n templates\n};\n//# sourceMappingURL=templates.js.map\n"],"mappings":";;;AACA,IAAI,YAAY,CACd;CACE,OAAO;CACP,OAAO;CACP,aAAa;CACb,MAAM;CACN,QAAQ;CACR,MAAM;EACJ,KAAK;EACL,aAAa;EACb,KAAK,CACH,YACA,WACF;EACA,QAAQ;CACV;CACA,GAAG;AACL,GACA;CACE,OAAO;CACP,OAAO;CACP,aAAa;CACb,MAAM;CACN,QAAQ;CACR,MAAM;EACJ,KAAK;EACL,aAAa;EACb,KAAK,CAAC;EACN,QAAQ;CACV;CACA,GAAG;AACL,CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-vxrn",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.2",
|
|
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.6.
|
|
35
|
+
"@vxrn/utils": "2.6.2",
|
|
36
36
|
"ansis": "^3.1.0",
|
|
37
37
|
"async-retry": "1.3.1",
|
|
38
38
|
"citty": "^0.1.6",
|
|
@@ -44,14 +44,14 @@
|
|
|
44
44
|
"yocto-spinner": "^0.1.0"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@tamagui/build": "3.0.
|
|
47
|
+
"@tamagui/build": "3.0.5",
|
|
48
48
|
"@types/prompts": "^2.4.9",
|
|
49
49
|
"typescript": "7.0.2"
|
|
50
50
|
},
|
|
51
51
|
"publishConfig": {
|
|
52
52
|
"access": "public"
|
|
53
53
|
},
|
|
54
|
-
"releaseSourceCommit": "
|
|
54
|
+
"releaseSourceCommit": "f9cc3da0ed64675bd35e552d0d934a59ed9f1527",
|
|
55
55
|
"repository": {
|
|
56
56
|
"type": "git",
|
|
57
57
|
"url": "git+https://github.com/onejs/one.git",
|
package/src/create.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import ansis from 'ansis'
|
|
2
2
|
import FSExtra from 'fs-extra'
|
|
3
|
-
import { execSync
|
|
3
|
+
import { execSync } from 'node:child_process'
|
|
4
4
|
import fs from 'node:fs'
|
|
5
5
|
import path from 'node:path'
|
|
6
6
|
import { promisify } from 'node:util'
|
|
@@ -59,22 +59,6 @@ export async function create(args: { template?: string; name?: string }) {
|
|
|
59
59
|
|
|
60
60
|
let template = await getTemplateInfo(args.template)
|
|
61
61
|
|
|
62
|
-
// handle external link templates (like Tamagui Pro)
|
|
63
|
-
if (template.type === 'external-link') {
|
|
64
|
-
const url = (template as any).externalUrl
|
|
65
|
-
console.info()
|
|
66
|
-
console.info(ansis.green(`Opening ${url}...`))
|
|
67
|
-
console.info()
|
|
68
|
-
const openCmd =
|
|
69
|
-
process.platform === 'darwin'
|
|
70
|
-
? 'open'
|
|
71
|
-
: process.platform === 'win32'
|
|
72
|
-
? 'start'
|
|
73
|
-
: 'xdg-open'
|
|
74
|
-
exec(`${openCmd} ${url}`)
|
|
75
|
-
process.exit(0)
|
|
76
|
-
}
|
|
77
|
-
|
|
78
62
|
const { valid, problems } = validateNpmName(projectName)
|
|
79
63
|
if (!valid) {
|
|
80
64
|
console.error(
|
package/src/templates.ts
CHANGED
|
@@ -17,29 +17,19 @@ export const templates = [
|
|
|
17
17
|
},
|
|
18
18
|
|
|
19
19
|
{
|
|
20
|
-
title: `Takeout
|
|
20
|
+
title: `Takeout`,
|
|
21
21
|
value: 'Takeout',
|
|
22
22
|
description: 'One, Tamagui, Zero, Better Auth',
|
|
23
23
|
type: 'external-repo',
|
|
24
24
|
hidden: false,
|
|
25
25
|
repo: {
|
|
26
|
-
url: `https://github.com/tamagui/
|
|
27
|
-
sshFallback: `git@github.com:tamagui/
|
|
26
|
+
url: `https://github.com/tamagui/takeout2.git`,
|
|
27
|
+
sshFallback: `git@github.com:tamagui/takeout2.git`,
|
|
28
28
|
dir: [],
|
|
29
29
|
branch: 'main',
|
|
30
30
|
},
|
|
31
31
|
...BasicTemplateSteps,
|
|
32
32
|
},
|
|
33
|
-
|
|
34
|
-
{
|
|
35
|
-
title: `Takeout Production`,
|
|
36
|
-
value: 'TakeoutPro',
|
|
37
|
-
description:
|
|
38
|
-
"Takeout + a startup in a repo. Refined stack that's production ready. Home/Terms/Docs, CI/CD, IaC, Integration Tests, Onboarding, Notifications, OTA Updates, Screens, >50 Components, >25 Agent Docs, >30 Scripts. See https://takeout.tamagui.dev",
|
|
39
|
-
type: 'external-link',
|
|
40
|
-
hidden: false,
|
|
41
|
-
externalUrl: 'https://takeout.tamagui.dev',
|
|
42
|
-
},
|
|
43
33
|
] as const
|
|
44
34
|
|
|
45
35
|
export type Template = (typeof templates)[number]
|
package/types/create.d.ts.map
CHANGED
|
@@ -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,
|
|
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,iBA8LtE"}
|
package/types/templates.d.ts
CHANGED
|
@@ -15,24 +15,17 @@ export declare const templates: readonly [{
|
|
|
15
15
|
}, {
|
|
16
16
|
readonly extraSteps: import("./steps/types").ExtraSteps;
|
|
17
17
|
readonly preInstall: import("./steps/types").ExtraSteps;
|
|
18
|
-
readonly title: `Takeout
|
|
18
|
+
readonly title: `Takeout`;
|
|
19
19
|
readonly value: 'Takeout';
|
|
20
20
|
readonly description: 'One, Tamagui, Zero, Better Auth';
|
|
21
21
|
readonly type: 'external-repo';
|
|
22
22
|
readonly hidden: false;
|
|
23
23
|
readonly repo: {
|
|
24
|
-
readonly url: `https://github.com/tamagui/
|
|
25
|
-
readonly sshFallback: `git@github.com:tamagui/
|
|
24
|
+
readonly url: `https://github.com/tamagui/takeout2.git`;
|
|
25
|
+
readonly sshFallback: `git@github.com:tamagui/takeout2.git`;
|
|
26
26
|
readonly dir: readonly [];
|
|
27
27
|
readonly branch: 'main';
|
|
28
28
|
};
|
|
29
|
-
}, {
|
|
30
|
-
readonly title: `Takeout Production`;
|
|
31
|
-
readonly value: 'TakeoutPro';
|
|
32
|
-
readonly description: "Takeout + a startup in a repo. Refined stack that's production ready. Home/Terms/Docs, CI/CD, IaC, Integration Tests, Onboarding, Notifications, OTA Updates, Screens, >50 Components, >25 Agent Docs, >30 Scripts. See https://takeout.tamagui.dev";
|
|
33
|
-
readonly type: 'external-link';
|
|
34
|
-
readonly hidden: false;
|
|
35
|
-
readonly externalUrl: 'https://takeout.tamagui.dev';
|
|
36
29
|
}];
|
|
37
30
|
export type Template = (typeof templates)[number];
|
|
38
31
|
export type CloneableTemplate = Extract<Template, {
|
package/types/templates.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS;;;oBAEX,OAAO;oBACP,OAAO;0BACD,mDAAmD;mBAC1D,sBAAsB;;;iBAG1B,GAAG,EAAE,kCAAkC;iBACvC,WAAW,EAAE,8BAA8B;iBAC3C,GAAG,YAAG,UAAU,EAAE,WAAW;iBAC7B,MAAM,EAAE,MAAM;;;;;oBAMT,
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS;;;oBAEX,OAAO;oBACP,OAAO;0BACD,mDAAmD;mBAC1D,sBAAsB;;;iBAG1B,GAAG,EAAE,kCAAkC;iBACvC,WAAW,EAAE,8BAA8B;iBAC3C,GAAG,YAAG,UAAU,EAAE,WAAW;iBAC7B,MAAM,EAAE,MAAM;;;;;oBAMT,SAAS;oBACT,SAAS;0BACH,iCAAiC;mBACxC,eAAe;;;iBAGnB,GAAG,EAAE,yCAAyC;iBAC9C,WAAW,EAAE,qCAAqC;iBAClD,GAAG;iBACH,MAAM,EAAE,MAAM;;EAIV,CAAA;AAEV,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAA;AACjD,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,GAAG,CAAA;CAAE,CAAC,CAAA"}
|