create-vxrn 1.25.3 → 1.25.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/.turbo/turbo-build.log +0 -2
- package/dist/cjs/create.cjs +0 -236
- package/dist/cjs/create.native.js +0 -273
- package/dist/cjs/create.native.js.map +0 -1
- package/dist/cjs/helpers/cloneStarter.cjs +0 -122
- package/dist/cjs/helpers/cloneStarter.native.js +0 -127
- package/dist/cjs/helpers/cloneStarter.native.js.map +0 -1
- package/dist/cjs/helpers/getProjectName.cjs +0 -82
- package/dist/cjs/helpers/getProjectName.native.js +0 -85
- package/dist/cjs/helpers/getProjectName.native.js.map +0 -1
- package/dist/cjs/helpers/getTemplateInfo.cjs +0 -68
- package/dist/cjs/helpers/getTemplateInfo.native.js +0 -81
- package/dist/cjs/helpers/getTemplateInfo.native.js.map +0 -1
- package/dist/cjs/helpers/installDependencies.cjs +0 -55
- package/dist/cjs/helpers/installDependencies.native.js +0 -58
- package/dist/cjs/helpers/installDependencies.native.js.map +0 -1
- package/dist/cjs/helpers/validateNpmPackage.cjs +0 -51
- package/dist/cjs/helpers/validateNpmPackage.native.js +0 -54
- package/dist/cjs/helpers/validateNpmPackage.native.js.map +0 -1
- package/dist/cjs/index.cjs +0 -98
- package/dist/cjs/index.native.js +0 -102
- package/dist/cjs/index.native.js.map +0 -1
- package/dist/cjs/steps/bare.cjs +0 -109
- package/dist/cjs/steps/bare.native.js +0 -134
- package/dist/cjs/steps/bare.native.js.map +0 -1
- package/dist/cjs/steps/fullstack.cjs +0 -57
- package/dist/cjs/steps/fullstack.native.js +0 -63
- package/dist/cjs/steps/fullstack.native.js.map +0 -1
- package/dist/cjs/steps/one.cjs +0 -106
- package/dist/cjs/steps/one.native.js +0 -113
- package/dist/cjs/steps/one.native.js.map +0 -1
- package/dist/cjs/steps/types.cjs +0 -18
- package/dist/cjs/steps/types.native.js +0 -21
- package/dist/cjs/steps/types.native.js.map +0 -1
- package/dist/cjs/templates.cjs +0 -73
- package/dist/cjs/templates.native.js +0 -76
- package/dist/cjs/templates.native.js.map +0 -1
- package/dist/esm/create.mjs +0 -199
- package/dist/esm/create.mjs.map +0 -1
- package/dist/esm/create.native.js +0 -233
- package/dist/esm/create.native.js.map +0 -1
- package/dist/esm/helpers/cloneStarter.mjs +0 -97
- package/dist/esm/helpers/cloneStarter.mjs.map +0 -1
- package/dist/esm/helpers/cloneStarter.native.js +0 -99
- package/dist/esm/helpers/cloneStarter.native.js.map +0 -1
- package/dist/esm/helpers/getProjectName.mjs +0 -46
- package/dist/esm/helpers/getProjectName.mjs.map +0 -1
- package/dist/esm/helpers/getProjectName.native.js +0 -46
- package/dist/esm/helpers/getProjectName.native.js.map +0 -1
- package/dist/esm/helpers/getTemplateInfo.mjs +0 -32
- package/dist/esm/helpers/getTemplateInfo.mjs.map +0 -1
- package/dist/esm/helpers/getTemplateInfo.native.js +0 -42
- package/dist/esm/helpers/getTemplateInfo.native.js.map +0 -1
- package/dist/esm/helpers/installDependencies.mjs +0 -30
- package/dist/esm/helpers/installDependencies.mjs.map +0 -1
- package/dist/esm/helpers/installDependencies.native.js +0 -30
- package/dist/esm/helpers/installDependencies.native.js.map +0 -1
- package/dist/esm/helpers/validateNpmPackage.mjs +0 -15
- package/dist/esm/helpers/validateNpmPackage.mjs.map +0 -1
- package/dist/esm/helpers/validateNpmPackage.native.js +0 -15
- package/dist/esm/helpers/validateNpmPackage.native.js.map +0 -1
- package/dist/esm/index.js +0 -74
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/index.mjs +0 -74
- package/dist/esm/index.mjs.map +0 -1
- package/dist/esm/index.native.js +0 -75
- package/dist/esm/index.native.js.map +0 -1
- package/dist/esm/steps/bare.mjs +0 -72
- package/dist/esm/steps/bare.mjs.map +0 -1
- package/dist/esm/steps/bare.native.js +0 -94
- package/dist/esm/steps/bare.native.js.map +0 -1
- package/dist/esm/steps/fullstack.mjs +0 -21
- package/dist/esm/steps/fullstack.mjs.map +0 -1
- package/dist/esm/steps/fullstack.native.js +0 -24
- package/dist/esm/steps/fullstack.native.js.map +0 -1
- package/dist/esm/steps/one.mjs +0 -69
- package/dist/esm/steps/one.mjs.map +0 -1
- package/dist/esm/steps/one.native.js +0 -73
- package/dist/esm/steps/one.native.js.map +0 -1
- package/dist/esm/steps/types.mjs +0 -2
- package/dist/esm/steps/types.mjs.map +0 -1
- package/dist/esm/steps/types.native.js +0 -2
- package/dist/esm/steps/types.native.js.map +0 -1
- package/dist/esm/templates.mjs +0 -37
- package/dist/esm/templates.mjs.map +0 -1
- package/dist/esm/templates.native.js +0 -37
- package/dist/esm/templates.native.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-vxrn",
|
|
3
|
-
"version": "1.25.
|
|
3
|
+
"version": "1.25.5",
|
|
4
4
|
"bin": {
|
|
5
5
|
"create-vxrn": "run.js"
|
|
6
6
|
},
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@types/validate-npm-package-name": "^4.0.2",
|
|
34
|
-
"@vxrn/utils": "1.25.
|
|
34
|
+
"@vxrn/utils": "1.25.5",
|
|
35
35
|
"ansis": "^3.1.0",
|
|
36
36
|
"async-retry": "1.3.1",
|
|
37
37
|
"citty": "^0.1.6",
|
package/.turbo/turbo-build.log
DELETED
package/dist/cjs/create.cjs
DELETED
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
var __create = Object.create;
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all) __defProp(target, name, {
|
|
9
|
-
get: all[name],
|
|
10
|
-
enumerable: true
|
|
11
|
-
});
|
|
12
|
-
};
|
|
13
|
-
var __copyProps = (to, from, except, desc) => {
|
|
14
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
-
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
-
get: () => from[key],
|
|
17
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
return to;
|
|
21
|
-
};
|
|
22
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
23
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
24
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
25
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
26
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
27
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
28
|
-
value: mod,
|
|
29
|
-
enumerable: true
|
|
30
|
-
}) : target, mod));
|
|
31
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
32
|
-
value: true
|
|
33
|
-
}), mod);
|
|
34
|
-
var create_exports = {};
|
|
35
|
-
__export(create_exports, {
|
|
36
|
-
create: () => create
|
|
37
|
-
});
|
|
38
|
-
module.exports = __toCommonJS(create_exports);
|
|
39
|
-
var import_ansis = __toESM(require("ansis"));
|
|
40
|
-
var import_fs_extra = __toESM(require("fs-extra"));
|
|
41
|
-
var import_node_child_process = require("node:child_process");
|
|
42
|
-
var import_node_fs = __toESM(require("node:fs"));
|
|
43
|
-
var import_node_path = __toESM(require("node:path"));
|
|
44
|
-
var import_node_util = require("node:util");
|
|
45
|
-
var import_node_url = require("node:url");
|
|
46
|
-
var import_cloneStarter = require("./helpers/cloneStarter.cjs");
|
|
47
|
-
var import_getProjectName = require("./helpers/getProjectName.cjs");
|
|
48
|
-
var import_getTemplateInfo = require("./helpers/getTemplateInfo.cjs");
|
|
49
|
-
var import_installDependencies = require("./helpers/installDependencies.cjs");
|
|
50
|
-
var import_validateNpmPackage = require("./helpers/validateNpmPackage.cjs");
|
|
51
|
-
var import_prompts = __toESM(require("prompts"));
|
|
52
|
-
var import_utils = require("@vxrn/utils");
|
|
53
|
-
const import_meta = {};
|
|
54
|
-
const {
|
|
55
|
-
existsSync,
|
|
56
|
-
readFileSync,
|
|
57
|
-
writeFileSync
|
|
58
|
-
} = import_fs_extra.default;
|
|
59
|
-
async function create(args) {
|
|
60
|
-
const gitVersionString = Number.parseFloat((0, import_node_child_process.execSync)(`git --version`).toString().replace(`git version `, "").trim());
|
|
61
|
-
if (gitVersionString < 2.27) {
|
|
62
|
-
console.error(`
|
|
63
|
-
|
|
64
|
-
! vxrn can't install: Git version must be >= 2.27
|
|
65
|
-
|
|
66
|
-
`);
|
|
67
|
-
process.exit(1);
|
|
68
|
-
}
|
|
69
|
-
let projectName = args.name || "";
|
|
70
|
-
let resolvedProjectPath = import_node_path.default.resolve(process.cwd(), projectName);
|
|
71
|
-
async function promptForName() {
|
|
72
|
-
projectName = await (0, import_getProjectName.getProjectName)();
|
|
73
|
-
resolvedProjectPath = import_node_path.default.resolve(process.cwd(), projectName);
|
|
74
|
-
}
|
|
75
|
-
if (projectName) {
|
|
76
|
-
if (import_node_fs.default.existsSync(resolvedProjectPath)) {
|
|
77
|
-
console.error(`Error: folder already exists: ${resolvedProjectPath}`);
|
|
78
|
-
process.exit(1);
|
|
79
|
-
}
|
|
80
|
-
} else {
|
|
81
|
-
await promptForName();
|
|
82
|
-
while (import_node_fs.default.existsSync(resolvedProjectPath)) {
|
|
83
|
-
console.info();
|
|
84
|
-
console.info(import_ansis.default.yellow("!"), `The folder ${import_ansis.default.underline(import_ansis.default.blueBright(projectName))} already exists, lets try another name`);
|
|
85
|
-
console.info();
|
|
86
|
-
console.info();
|
|
87
|
-
await promptForName();
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
console.info();
|
|
91
|
-
let template = await (0, import_getTemplateInfo.getTemplateInfo)(args.template);
|
|
92
|
-
if (template.type === "external-link") {
|
|
93
|
-
const url = template.externalUrl;
|
|
94
|
-
console.info();
|
|
95
|
-
console.info(import_ansis.default.green(`Opening ${url}...`));
|
|
96
|
-
console.info();
|
|
97
|
-
const openCmd = process.platform === "darwin" ? "open" : process.platform === "win32" ? "start" : "xdg-open";
|
|
98
|
-
(0, import_node_child_process.exec)(`${openCmd} ${url}`);
|
|
99
|
-
process.exit(0);
|
|
100
|
-
}
|
|
101
|
-
const {
|
|
102
|
-
valid,
|
|
103
|
-
problems
|
|
104
|
-
} = (0, import_validateNpmPackage.validateNpmName)(projectName);
|
|
105
|
-
if (!valid) {
|
|
106
|
-
console.error(`Could not create a project called ${import_ansis.default.red(`"${projectName}"`)} because of npm naming restrictions:`);
|
|
107
|
-
problems.forEach(p => console.error(` ${import_ansis.default.red.bold("*")} ${p}`));
|
|
108
|
-
process.exit(1);
|
|
109
|
-
}
|
|
110
|
-
console.info();
|
|
111
|
-
const Spinner = await import("yocto-spinner").then(x => x.default);
|
|
112
|
-
const spinner = Spinner({
|
|
113
|
-
text: `Creating...`,
|
|
114
|
-
spinner: {
|
|
115
|
-
frames: ["\u280B", "\u2819", "\u2839", "\u2838", "\u283C", "\u2834", "\u2826", "\u2827", "\u2807", "\u280F"],
|
|
116
|
-
interval: 100
|
|
117
|
-
}
|
|
118
|
-
}).start();
|
|
119
|
-
await import_fs_extra.default.mkdir(resolvedProjectPath);
|
|
120
|
-
try {
|
|
121
|
-
await (0, import_cloneStarter.cloneStarter)(template, resolvedProjectPath);
|
|
122
|
-
process.chdir(resolvedProjectPath);
|
|
123
|
-
} catch (e) {
|
|
124
|
-
console.error(`[vxrn] Failed to copy example into ${resolvedProjectPath}
|
|
125
|
-
|
|
126
|
-
`, e);
|
|
127
|
-
process.exit(1);
|
|
128
|
-
}
|
|
129
|
-
spinner.stop();
|
|
130
|
-
console.info();
|
|
131
|
-
console.info();
|
|
132
|
-
console.info(import_ansis.default.green(`${projectName} created!`));
|
|
133
|
-
console.info();
|
|
134
|
-
console.info();
|
|
135
|
-
const packageJson = await (async () => {
|
|
136
|
-
const errorMessages = [];
|
|
137
|
-
try {
|
|
138
|
-
const dirname = typeof __dirname !== "undefined" ? __dirname : import_node_path.default.dirname((0, import_node_url.fileURLToPath)(import_meta.url));
|
|
139
|
-
const possiblePaths = [import_node_path.default.join(dirname, "..", "package.json"), import_node_path.default.join(dirname, "..", "..", "package.json"), import_node_path.default.join(dirname, "..", "..", "..", "package.json")];
|
|
140
|
-
const readFile = (0, import_node_util.promisify)(import_node_fs.default.readFile);
|
|
141
|
-
for (const p of possiblePaths) {
|
|
142
|
-
try {
|
|
143
|
-
const data = JSON.parse(await readFile(p));
|
|
144
|
-
return data;
|
|
145
|
-
} catch (e) {
|
|
146
|
-
if (e instanceof Error) errorMessages.push(e.message);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
throw new Error("package.json not found in any of the expected locations.");
|
|
150
|
-
} catch (e) {
|
|
151
|
-
console.error("Failed to load package.json:", errorMessages.join("\n"));
|
|
152
|
-
throw e;
|
|
153
|
-
}
|
|
154
|
-
})();
|
|
155
|
-
updatePackageJsonName(projectName, resolvedProjectPath);
|
|
156
|
-
updatePackageJsonVersions(packageJson.version, resolvedProjectPath);
|
|
157
|
-
updateAppJsonName(projectName, resolvedProjectPath);
|
|
158
|
-
const packageManager = await (async () => {
|
|
159
|
-
if ("packageManager" in template) {
|
|
160
|
-
return template.packageManager;
|
|
161
|
-
}
|
|
162
|
-
const found = await (0, import_utils.detectPackageManager)();
|
|
163
|
-
const allFound = Object.keys(found);
|
|
164
|
-
if (allFound.length === 1) {
|
|
165
|
-
return allFound[0];
|
|
166
|
-
}
|
|
167
|
-
const response = await (0, import_prompts.default)({
|
|
168
|
-
name: "packageManager",
|
|
169
|
-
type: "select",
|
|
170
|
-
message: `Package Manager:`,
|
|
171
|
-
choices: allFound.filter(x => found[x]).map(name => ({
|
|
172
|
-
title: name,
|
|
173
|
-
value: name
|
|
174
|
-
}))
|
|
175
|
-
});
|
|
176
|
-
return response.packageManager;
|
|
177
|
-
})();
|
|
178
|
-
console.info();
|
|
179
|
-
if ("preInstall" in template) {
|
|
180
|
-
await template.preInstall({
|
|
181
|
-
packageManager,
|
|
182
|
-
isFullClone: true,
|
|
183
|
-
projectName,
|
|
184
|
-
projectPath: resolvedProjectPath
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
try {
|
|
188
|
-
console.info();
|
|
189
|
-
console.info(import_ansis.default.green(`Installing with ${packageManager}...`));
|
|
190
|
-
console.info();
|
|
191
|
-
await (0, import_installDependencies.installDependencies)(resolvedProjectPath, packageManager);
|
|
192
|
-
} catch (e) {
|
|
193
|
-
console.error("[vxrn] error installing with " + packageManager + `
|
|
194
|
-
${e}`);
|
|
195
|
-
process.exit(1);
|
|
196
|
-
}
|
|
197
|
-
const envDefault = import_node_path.default.join(resolvedProjectPath, ".env.default");
|
|
198
|
-
const env = import_node_path.default.join(resolvedProjectPath, ".env");
|
|
199
|
-
if (existsSync(envDefault) && !existsSync(env)) {
|
|
200
|
-
await import_fs_extra.default.move(envDefault, env);
|
|
201
|
-
}
|
|
202
|
-
if ("extraSteps" in template) {
|
|
203
|
-
await template.extraSteps({
|
|
204
|
-
packageManager,
|
|
205
|
-
isFullClone: true,
|
|
206
|
-
projectName,
|
|
207
|
-
projectPath: resolvedProjectPath
|
|
208
|
-
});
|
|
209
|
-
}
|
|
210
|
-
console.info();
|
|
211
|
-
}
|
|
212
|
-
function updatePackageJsonName(projectName, dir) {
|
|
213
|
-
const packageJsonPath = import_node_path.default.join(dir, "package.json");
|
|
214
|
-
if (existsSync(packageJsonPath)) {
|
|
215
|
-
const content = readFileSync(packageJsonPath).toString();
|
|
216
|
-
const contentWithUpdatedName = content.replace(/("name": ")(.*)(",)/, `$1${projectName}$3`);
|
|
217
|
-
writeFileSync(packageJsonPath, contentWithUpdatedName);
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
function updatePackageJsonVersions(version, dir) {
|
|
221
|
-
const packageJsonPath = import_node_path.default.join(dir, "package.json");
|
|
222
|
-
if (existsSync(packageJsonPath)) {
|
|
223
|
-
const content = readFileSync(packageJsonPath).toString();
|
|
224
|
-
const contentWithUpdatedVersions = content.replace(/"workspace:\^"/gm, `"^${version}"`).replace(/"workspace:~"/gm, `"~${version}"`).replace(/"workspace:\*"/gm, `"^${version}"`);
|
|
225
|
-
writeFileSync(packageJsonPath, contentWithUpdatedVersions);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
function updateAppJsonName(projectName, dir) {
|
|
229
|
-
const appJsonPath = import_node_path.default.join(dir, "app.json");
|
|
230
|
-
if (existsSync(appJsonPath)) {
|
|
231
|
-
const content = readFileSync(appJsonPath).toString();
|
|
232
|
-
const projectSlug = projectName.toLowerCase().replace(/\s/g, "-");
|
|
233
|
-
const contentWithUpdatedName = content.replace(/("name": ")(.*)(",)/, `$1${projectName}$3`).replace(/("slug": ")(.*)(",)/, `$1${projectSlug}$3`);
|
|
234
|
-
writeFileSync(appJsonPath, contentWithUpdatedName);
|
|
235
|
-
}
|
|
236
|
-
}
|
|
@@ -1,273 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var __create = Object.create;
|
|
4
|
-
var __defProp = Object.defineProperty;
|
|
5
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
-
var __export = (target, all) => {
|
|
10
|
-
for (var name in all) __defProp(target, name, {
|
|
11
|
-
get: all[name],
|
|
12
|
-
enumerable: true
|
|
13
|
-
});
|
|
14
|
-
};
|
|
15
|
-
var __copyProps = (to, from, except, desc) => {
|
|
16
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
17
|
-
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
18
|
-
get: () => from[key],
|
|
19
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
return to;
|
|
23
|
-
};
|
|
24
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
25
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
26
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
27
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
28
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
29
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
30
|
-
value: mod,
|
|
31
|
-
enumerable: true
|
|
32
|
-
}) : target, mod));
|
|
33
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
34
|
-
value: true
|
|
35
|
-
}), mod);
|
|
36
|
-
var create_exports = {};
|
|
37
|
-
__export(create_exports, {
|
|
38
|
-
create: () => create
|
|
39
|
-
});
|
|
40
|
-
module.exports = __toCommonJS(create_exports);
|
|
41
|
-
var import_ansis = __toESM(require("ansis"));
|
|
42
|
-
var import_fs_extra = __toESM(require("fs-extra"));
|
|
43
|
-
var import_child_process = require("child_process");
|
|
44
|
-
var import_fs = __toESM(require("fs"));
|
|
45
|
-
var import_path = __toESM(require("path"));
|
|
46
|
-
var import_util = require("util");
|
|
47
|
-
var import_url = require("url");
|
|
48
|
-
var import_cloneStarter = require("./helpers/cloneStarter.native.js");
|
|
49
|
-
var import_getProjectName = require("./helpers/getProjectName.native.js");
|
|
50
|
-
var import_getTemplateInfo = require("./helpers/getTemplateInfo.native.js");
|
|
51
|
-
var import_installDependencies = require("./helpers/installDependencies.native.js");
|
|
52
|
-
var import_validateNpmPackage = require("./helpers/validateNpmPackage.native.js");
|
|
53
|
-
var import_prompts = __toESM(require("prompts"));
|
|
54
|
-
var import_utils = require("@vxrn/utils");
|
|
55
|
-
const import_meta = {};
|
|
56
|
-
function _instanceof(left, right) {
|
|
57
|
-
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
58
|
-
return !!right[Symbol.hasInstance](left);
|
|
59
|
-
} else {
|
|
60
|
-
return left instanceof right;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
var {
|
|
64
|
-
existsSync,
|
|
65
|
-
readFileSync,
|
|
66
|
-
writeFileSync
|
|
67
|
-
} = import_fs_extra.default;
|
|
68
|
-
async function create(args) {
|
|
69
|
-
var gitVersionString = Number.parseFloat((0, import_child_process.execSync)(`git --version`).toString().replace(`git version `, "").trim());
|
|
70
|
-
if (gitVersionString < 2.27) {
|
|
71
|
-
console.error(`
|
|
72
|
-
|
|
73
|
-
! vxrn can't install: Git version must be >= 2.27
|
|
74
|
-
|
|
75
|
-
`);
|
|
76
|
-
process.exit(1);
|
|
77
|
-
}
|
|
78
|
-
var projectName = args.name || "";
|
|
79
|
-
var resolvedProjectPath = import_path.default.resolve(process.cwd(), projectName);
|
|
80
|
-
async function promptForName() {
|
|
81
|
-
projectName = await (0, import_getProjectName.getProjectName)();
|
|
82
|
-
resolvedProjectPath = import_path.default.resolve(process.cwd(), projectName);
|
|
83
|
-
}
|
|
84
|
-
if (projectName) {
|
|
85
|
-
if (import_fs.default.existsSync(resolvedProjectPath)) {
|
|
86
|
-
console.error(`Error: folder already exists: ${resolvedProjectPath}`);
|
|
87
|
-
process.exit(1);
|
|
88
|
-
}
|
|
89
|
-
} else {
|
|
90
|
-
await promptForName();
|
|
91
|
-
while (import_fs.default.existsSync(resolvedProjectPath)) {
|
|
92
|
-
console.info();
|
|
93
|
-
console.info(import_ansis.default.yellow("!"), `The folder ${import_ansis.default.underline(import_ansis.default.blueBright(projectName))} already exists, lets try another name`);
|
|
94
|
-
console.info();
|
|
95
|
-
console.info();
|
|
96
|
-
await promptForName();
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
console.info();
|
|
100
|
-
var template = await (0, import_getTemplateInfo.getTemplateInfo)(args.template);
|
|
101
|
-
if (template.type === "external-link") {
|
|
102
|
-
var url = template.externalUrl;
|
|
103
|
-
console.info();
|
|
104
|
-
console.info(import_ansis.default.green(`Opening ${url}...`));
|
|
105
|
-
console.info();
|
|
106
|
-
var openCmd = process.platform === "darwin" ? "open" : process.platform === "win32" ? "start" : "xdg-open";
|
|
107
|
-
(0, import_child_process.exec)(`${openCmd} ${url}`);
|
|
108
|
-
process.exit(0);
|
|
109
|
-
}
|
|
110
|
-
var {
|
|
111
|
-
valid,
|
|
112
|
-
problems
|
|
113
|
-
} = (0, import_validateNpmPackage.validateNpmName)(projectName);
|
|
114
|
-
if (!valid) {
|
|
115
|
-
console.error(`Could not create a project called ${import_ansis.default.red(`"${projectName}"`)} because of npm naming restrictions:`);
|
|
116
|
-
problems.forEach(function (p) {
|
|
117
|
-
return console.error(` ${import_ansis.default.red.bold("*")} ${p}`);
|
|
118
|
-
});
|
|
119
|
-
process.exit(1);
|
|
120
|
-
}
|
|
121
|
-
console.info();
|
|
122
|
-
var Spinner = await import("yocto-spinner").then(function (x) {
|
|
123
|
-
return x.default;
|
|
124
|
-
});
|
|
125
|
-
var spinner = Spinner({
|
|
126
|
-
text: `Creating...`,
|
|
127
|
-
spinner: {
|
|
128
|
-
frames: ["\u280B", "\u2819", "\u2839", "\u2838", "\u283C", "\u2834", "\u2826", "\u2827", "\u2807", "\u280F"],
|
|
129
|
-
interval: 100
|
|
130
|
-
}
|
|
131
|
-
}).start();
|
|
132
|
-
await import_fs_extra.default.mkdir(resolvedProjectPath);
|
|
133
|
-
try {
|
|
134
|
-
await (0, import_cloneStarter.cloneStarter)(template, resolvedProjectPath);
|
|
135
|
-
process.chdir(resolvedProjectPath);
|
|
136
|
-
} catch (e) {
|
|
137
|
-
console.error(`[vxrn] Failed to copy example into ${resolvedProjectPath}
|
|
138
|
-
|
|
139
|
-
`, e);
|
|
140
|
-
process.exit(1);
|
|
141
|
-
}
|
|
142
|
-
spinner.stop();
|
|
143
|
-
console.info();
|
|
144
|
-
console.info();
|
|
145
|
-
console.info(import_ansis.default.green(`${projectName} created!`));
|
|
146
|
-
console.info();
|
|
147
|
-
console.info();
|
|
148
|
-
var packageJson = await async function () {
|
|
149
|
-
var errorMessages = [];
|
|
150
|
-
try {
|
|
151
|
-
var dirname = typeof __dirname !== "undefined" ? __dirname : import_path.default.dirname((0, import_url.fileURLToPath)(import_meta.url));
|
|
152
|
-
var possiblePaths = [import_path.default.join(dirname, "..", "package.json"), import_path.default.join(dirname, "..", "..", "package.json"), import_path.default.join(dirname, "..", "..", "..", "package.json")];
|
|
153
|
-
var readFile = (0, import_util.promisify)(import_fs.default.readFile);
|
|
154
|
-
var _iteratorNormalCompletion = true,
|
|
155
|
-
_didIteratorError = false,
|
|
156
|
-
_iteratorError = void 0;
|
|
157
|
-
try {
|
|
158
|
-
for (var _iterator = possiblePaths[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
159
|
-
var p = _step.value;
|
|
160
|
-
try {
|
|
161
|
-
var data = JSON.parse(await readFile(p));
|
|
162
|
-
return data;
|
|
163
|
-
} catch (e) {
|
|
164
|
-
if (_instanceof(e, Error)) errorMessages.push(e.message);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
} catch (err) {
|
|
168
|
-
_didIteratorError = true;
|
|
169
|
-
_iteratorError = err;
|
|
170
|
-
} finally {
|
|
171
|
-
try {
|
|
172
|
-
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
173
|
-
_iterator.return();
|
|
174
|
-
}
|
|
175
|
-
} finally {
|
|
176
|
-
if (_didIteratorError) {
|
|
177
|
-
throw _iteratorError;
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
throw new Error("package.json not found in any of the expected locations.");
|
|
182
|
-
} catch (e) {
|
|
183
|
-
console.error("Failed to load package.json:", errorMessages.join("\n"));
|
|
184
|
-
throw e;
|
|
185
|
-
}
|
|
186
|
-
}();
|
|
187
|
-
updatePackageJsonName(projectName, resolvedProjectPath);
|
|
188
|
-
updatePackageJsonVersions(packageJson.version, resolvedProjectPath);
|
|
189
|
-
updateAppJsonName(projectName, resolvedProjectPath);
|
|
190
|
-
var packageManager = await async function () {
|
|
191
|
-
if ("packageManager" in template) {
|
|
192
|
-
return template.packageManager;
|
|
193
|
-
}
|
|
194
|
-
var found = await (0, import_utils.detectPackageManager)();
|
|
195
|
-
var allFound = Object.keys(found);
|
|
196
|
-
if (allFound.length === 1) {
|
|
197
|
-
return allFound[0];
|
|
198
|
-
}
|
|
199
|
-
var response = await (0, import_prompts.default)({
|
|
200
|
-
name: "packageManager",
|
|
201
|
-
type: "select",
|
|
202
|
-
message: `Package Manager:`,
|
|
203
|
-
choices: allFound.filter(function (x) {
|
|
204
|
-
return found[x];
|
|
205
|
-
}).map(function (name) {
|
|
206
|
-
return {
|
|
207
|
-
title: name,
|
|
208
|
-
value: name
|
|
209
|
-
};
|
|
210
|
-
})
|
|
211
|
-
});
|
|
212
|
-
return response.packageManager;
|
|
213
|
-
}();
|
|
214
|
-
console.info();
|
|
215
|
-
if ("preInstall" in template) {
|
|
216
|
-
await template.preInstall({
|
|
217
|
-
packageManager,
|
|
218
|
-
isFullClone: true,
|
|
219
|
-
projectName,
|
|
220
|
-
projectPath: resolvedProjectPath
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
try {
|
|
224
|
-
console.info();
|
|
225
|
-
console.info(import_ansis.default.green(`Installing with ${packageManager}...`));
|
|
226
|
-
console.info();
|
|
227
|
-
await (0, import_installDependencies.installDependencies)(resolvedProjectPath, packageManager);
|
|
228
|
-
} catch (e) {
|
|
229
|
-
console.error("[vxrn] error installing with " + packageManager + `
|
|
230
|
-
${e}`);
|
|
231
|
-
process.exit(1);
|
|
232
|
-
}
|
|
233
|
-
var envDefault = import_path.default.join(resolvedProjectPath, ".env.default");
|
|
234
|
-
var env = import_path.default.join(resolvedProjectPath, ".env");
|
|
235
|
-
if (existsSync(envDefault) && !existsSync(env)) {
|
|
236
|
-
await import_fs_extra.default.move(envDefault, env);
|
|
237
|
-
}
|
|
238
|
-
if ("extraSteps" in template) {
|
|
239
|
-
await template.extraSteps({
|
|
240
|
-
packageManager,
|
|
241
|
-
isFullClone: true,
|
|
242
|
-
projectName,
|
|
243
|
-
projectPath: resolvedProjectPath
|
|
244
|
-
});
|
|
245
|
-
}
|
|
246
|
-
console.info();
|
|
247
|
-
}
|
|
248
|
-
function updatePackageJsonName(projectName, dir) {
|
|
249
|
-
var packageJsonPath = import_path.default.join(dir, "package.json");
|
|
250
|
-
if (existsSync(packageJsonPath)) {
|
|
251
|
-
var content = readFileSync(packageJsonPath).toString();
|
|
252
|
-
var contentWithUpdatedName = content.replace(/("name": ")(.*)(",)/, `$1${projectName}$3`);
|
|
253
|
-
writeFileSync(packageJsonPath, contentWithUpdatedName);
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
function updatePackageJsonVersions(version, dir) {
|
|
257
|
-
var packageJsonPath = import_path.default.join(dir, "package.json");
|
|
258
|
-
if (existsSync(packageJsonPath)) {
|
|
259
|
-
var content = readFileSync(packageJsonPath).toString();
|
|
260
|
-
var contentWithUpdatedVersions = content.replace(/"workspace:\^"/gm, `"^${version}"`).replace(/"workspace:~"/gm, `"~${version}"`).replace(/"workspace:\*"/gm, `"^${version}"`);
|
|
261
|
-
writeFileSync(packageJsonPath, contentWithUpdatedVersions);
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
function updateAppJsonName(projectName, dir) {
|
|
265
|
-
var appJsonPath = import_path.default.join(dir, "app.json");
|
|
266
|
-
if (existsSync(appJsonPath)) {
|
|
267
|
-
var content = readFileSync(appJsonPath).toString();
|
|
268
|
-
var projectSlug = projectName.toLowerCase().replace(/\s/g, "-");
|
|
269
|
-
var contentWithUpdatedName = content.replace(/("name": ")(.*)(",)/, `$1${projectName}$3`).replace(/("slug": ")(.*)(",)/, `$1${projectSlug}$3`);
|
|
270
|
-
writeFileSync(appJsonPath, contentWithUpdatedName);
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
//# sourceMappingURL=create.native.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","create_exports","__export","create","module","exports","import_ansis","__toESM","require","import_fs_extra","import_child_process","import_fs","import_path","import_util","import_url","import_cloneStarter","import_getProjectName","import_getTemplateInfo","import_installDependencies","import_validateNpmPackage","import_prompts","import_utils","import_meta","_instanceof","left","right","Symbol","hasInstance","existsSync","readFileSync","writeFileSync","default","args","gitVersionString","Number","parseFloat","execSync","toString","replace","trim","console","error","process","exit","projectName","name","resolvedProjectPath","resolve","cwd","promptForName","getProjectName","info","yellow","underline","blueBright","template","getTemplateInfo","type","url","externalUrl","green","openCmd","platform","exec","valid","problems","validateNpmName","red","forEach","p","bold","Spinner","then","x","spinner","text","frames","interval","start","mkdir","cloneStarter","chdir","e","stop","packageJson","errorMessages","dirname","__dirname","fileURLToPath","possiblePaths","join","readFile","promisify","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","data","JSON","parse","Error","push","message","err","return","updatePackageJsonName","updatePackageJsonVersions","version","updateAppJsonName","packageManager","found","detectPackageManager","allFound","Object","keys","length","response","choices","filter","map","title","preInstall","isFullClone","projectPath","installDependencies","envDefault","env","move","extraSteps"],"sources":["../../src/create.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all) __defProp(target, name, {
|
|
7
|
-
get: all[name],
|
|
8
|
-
enumerable: true
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
-
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
14
|
-
get: () => from[key],
|
|
15
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
-
value: true
|
|
22
|
-
}), mod);
|
|
23
|
-
var cloneStarter_exports = {};
|
|
24
|
-
__export(cloneStarter_exports, {
|
|
25
|
-
cloneStarter: () => cloneStarter
|
|
26
|
-
});
|
|
27
|
-
module.exports = __toCommonJS(cloneStarter_exports);
|
|
28
|
-
var import_fs_extra = require("fs-extra");
|
|
29
|
-
var import_node_os = require("node:os");
|
|
30
|
-
var import_node_path = require("node:path");
|
|
31
|
-
var import_rimraf = require("rimraf");
|
|
32
|
-
var import_utils = require("@vxrn/utils");
|
|
33
|
-
const home = (0, import_node_os.homedir)();
|
|
34
|
-
const vxrnDir = (0, import_node_path.join)(home, ".vxrn");
|
|
35
|
-
const cloneStarter = async (template, resolvedProjectPath) => {
|
|
36
|
-
const dir = await setupVxrnDotDir(template, (0, import_node_path.join)(vxrnDir, "vxrn", template.repo.url.split("/").at(-1)));
|
|
37
|
-
if (!(await (0, import_fs_extra.pathExists)(dir))) {
|
|
38
|
-
console.error(`Missing template for ${template.value} in ${dir}`);
|
|
39
|
-
process.exit(1);
|
|
40
|
-
}
|
|
41
|
-
await (0, import_fs_extra.copy)(dir, resolvedProjectPath);
|
|
42
|
-
await (0, import_rimraf.rimraf)((0, import_node_path.join)(resolvedProjectPath, ".git"));
|
|
43
|
-
if (!isInGitRepo()) {
|
|
44
|
-
await (0, import_utils.execPromiseQuiet)(`git init`, {
|
|
45
|
-
cwd: resolvedProjectPath
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
async function setupVxrnDotDir(template, targetGitDir, isRetry = false) {
|
|
50
|
-
const branch = template.repo.branch;
|
|
51
|
-
await (0, import_fs_extra.ensureDir)(vxrnDir);
|
|
52
|
-
const isInSubDir = template.repo.dir.length > 0;
|
|
53
|
-
if (!(await (0, import_fs_extra.pathExists)(targetGitDir))) {
|
|
54
|
-
const sourceGitRepo = template.repo.url;
|
|
55
|
-
const sourceGitRepoSshFallback = template.repo.sshFallback;
|
|
56
|
-
const cmd = `git clone --branch ${branch} ${isInSubDir ? "--depth 1 --sparse --filter=blob:none " : ""}${sourceGitRepo} "${targetGitDir}"`;
|
|
57
|
-
try {
|
|
58
|
-
await (0, import_utils.execPromiseQuiet)(cmd);
|
|
59
|
-
} catch (error) {
|
|
60
|
-
if (cmd.includes("https://")) {
|
|
61
|
-
console.info(`https failed - trying with ssh now...`);
|
|
62
|
-
const sshCmd = cmd.replace(sourceGitRepo, sourceGitRepoSshFallback);
|
|
63
|
-
await (0, import_utils.execPromiseQuiet)(sshCmd);
|
|
64
|
-
} else {
|
|
65
|
-
throw error;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
} else {
|
|
69
|
-
if (!(await (0, import_fs_extra.pathExists)((0, import_node_path.join)(targetGitDir, ".git")))) {
|
|
70
|
-
console.error(`Corrupt vxrn directory, please delete ${targetGitDir} folder and re-run`);
|
|
71
|
-
process.exit(1);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
if (isInSubDir) {
|
|
75
|
-
try {
|
|
76
|
-
const cmd = `git sparse-checkout set ${template.repo.dir.join(import_node_path.sep) ?? "."}`;
|
|
77
|
-
await (0, import_utils.execPromiseQuiet)(cmd, {
|
|
78
|
-
cwd: targetGitDir
|
|
79
|
-
});
|
|
80
|
-
} catch (err) {
|
|
81
|
-
if (`${err}`.includes(`code 128`)) {
|
|
82
|
-
console.warn(`\u26A0\uFE0F Note: you need to be sure you can git clone from Github, your SSH key isn't valid.
|
|
83
|
-
|
|
84
|
-
- See: https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account
|
|
85
|
-
|
|
86
|
-
`);
|
|
87
|
-
}
|
|
88
|
-
throw err;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
try {
|
|
92
|
-
const cmd2 = `git pull --rebase --allow-unrelated-histories --depth 1 origin ${branch}`;
|
|
93
|
-
await (0, import_utils.execPromiseQuiet)(cmd2, {
|
|
94
|
-
cwd: targetGitDir
|
|
95
|
-
});
|
|
96
|
-
console.info();
|
|
97
|
-
const dir = (0, import_node_path.join)(targetGitDir, ...template.repo.dir);
|
|
98
|
-
if (!(await (0, import_fs_extra.pathExists)(dir))) {
|
|
99
|
-
throw new Error(`Re-clone...`);
|
|
100
|
-
}
|
|
101
|
-
return dir;
|
|
102
|
-
} catch (err) {
|
|
103
|
-
if (isRetry) {
|
|
104
|
-
console.info(`Error updating: ${err.message} ${isRetry ? `failing.
|
|
105
|
-
${err.stack}` : "trying from fresh."}`);
|
|
106
|
-
console.info(`Please file an issue: https://github.com/onejs/one/issues/new?assignees=&labels=&template=bug_report.md&title=`);
|
|
107
|
-
process.exit(1);
|
|
108
|
-
}
|
|
109
|
-
await (0, import_rimraf.rimraf)(targetGitDir);
|
|
110
|
-
return await setupVxrnDotDir(template, targetGitDir, true);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
function isInGitRepo() {
|
|
114
|
-
try {
|
|
115
|
-
(0, import_utils.exec)("git rev-parse --is-inside-work-tree", {
|
|
116
|
-
stdio: "ignore"
|
|
117
|
-
});
|
|
118
|
-
return true;
|
|
119
|
-
} catch (error) {
|
|
120
|
-
return false;
|
|
121
|
-
}
|
|
122
|
-
}
|