create-vxrn 1.25.5 → 1.25.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/.turbo/turbo-build.log +2 -0
  2. package/dist/cjs/create.cjs +236 -0
  3. package/dist/cjs/create.native.js +273 -0
  4. package/dist/cjs/create.native.js.map +1 -0
  5. package/dist/cjs/helpers/cloneStarter.cjs +122 -0
  6. package/dist/cjs/helpers/cloneStarter.native.js +127 -0
  7. package/dist/cjs/helpers/cloneStarter.native.js.map +1 -0
  8. package/dist/cjs/helpers/getProjectName.cjs +82 -0
  9. package/dist/cjs/helpers/getProjectName.native.js +85 -0
  10. package/dist/cjs/helpers/getProjectName.native.js.map +1 -0
  11. package/dist/cjs/helpers/getTemplateInfo.cjs +68 -0
  12. package/dist/cjs/helpers/getTemplateInfo.native.js +81 -0
  13. package/dist/cjs/helpers/getTemplateInfo.native.js.map +1 -0
  14. package/dist/cjs/helpers/installDependencies.cjs +55 -0
  15. package/dist/cjs/helpers/installDependencies.native.js +58 -0
  16. package/dist/cjs/helpers/installDependencies.native.js.map +1 -0
  17. package/dist/cjs/helpers/validateNpmPackage.cjs +51 -0
  18. package/dist/cjs/helpers/validateNpmPackage.native.js +54 -0
  19. package/dist/cjs/helpers/validateNpmPackage.native.js.map +1 -0
  20. package/dist/cjs/index.cjs +98 -0
  21. package/dist/cjs/index.native.js +102 -0
  22. package/dist/cjs/index.native.js.map +1 -0
  23. package/dist/cjs/steps/bare.cjs +109 -0
  24. package/dist/cjs/steps/bare.native.js +134 -0
  25. package/dist/cjs/steps/bare.native.js.map +1 -0
  26. package/dist/cjs/steps/fullstack.cjs +57 -0
  27. package/dist/cjs/steps/fullstack.native.js +63 -0
  28. package/dist/cjs/steps/fullstack.native.js.map +1 -0
  29. package/dist/cjs/steps/one.cjs +106 -0
  30. package/dist/cjs/steps/one.native.js +113 -0
  31. package/dist/cjs/steps/one.native.js.map +1 -0
  32. package/dist/cjs/steps/types.cjs +18 -0
  33. package/dist/cjs/steps/types.native.js +21 -0
  34. package/dist/cjs/steps/types.native.js.map +1 -0
  35. package/dist/cjs/templates.cjs +73 -0
  36. package/dist/cjs/templates.native.js +76 -0
  37. package/dist/cjs/templates.native.js.map +1 -0
  38. package/dist/esm/create.mjs +199 -0
  39. package/dist/esm/create.mjs.map +1 -0
  40. package/dist/esm/create.native.js +233 -0
  41. package/dist/esm/create.native.js.map +1 -0
  42. package/dist/esm/helpers/cloneStarter.mjs +97 -0
  43. package/dist/esm/helpers/cloneStarter.mjs.map +1 -0
  44. package/dist/esm/helpers/cloneStarter.native.js +99 -0
  45. package/dist/esm/helpers/cloneStarter.native.js.map +1 -0
  46. package/dist/esm/helpers/getProjectName.mjs +46 -0
  47. package/dist/esm/helpers/getProjectName.mjs.map +1 -0
  48. package/dist/esm/helpers/getProjectName.native.js +46 -0
  49. package/dist/esm/helpers/getProjectName.native.js.map +1 -0
  50. package/dist/esm/helpers/getTemplateInfo.mjs +32 -0
  51. package/dist/esm/helpers/getTemplateInfo.mjs.map +1 -0
  52. package/dist/esm/helpers/getTemplateInfo.native.js +42 -0
  53. package/dist/esm/helpers/getTemplateInfo.native.js.map +1 -0
  54. package/dist/esm/helpers/installDependencies.mjs +30 -0
  55. package/dist/esm/helpers/installDependencies.mjs.map +1 -0
  56. package/dist/esm/helpers/installDependencies.native.js +30 -0
  57. package/dist/esm/helpers/installDependencies.native.js.map +1 -0
  58. package/dist/esm/helpers/validateNpmPackage.mjs +15 -0
  59. package/dist/esm/helpers/validateNpmPackage.mjs.map +1 -0
  60. package/dist/esm/helpers/validateNpmPackage.native.js +15 -0
  61. package/dist/esm/helpers/validateNpmPackage.native.js.map +1 -0
  62. package/dist/esm/index.js +74 -0
  63. package/dist/esm/index.js.map +1 -0
  64. package/dist/esm/index.mjs +74 -0
  65. package/dist/esm/index.mjs.map +1 -0
  66. package/dist/esm/index.native.js +75 -0
  67. package/dist/esm/index.native.js.map +1 -0
  68. package/dist/esm/steps/bare.mjs +72 -0
  69. package/dist/esm/steps/bare.mjs.map +1 -0
  70. package/dist/esm/steps/bare.native.js +94 -0
  71. package/dist/esm/steps/bare.native.js.map +1 -0
  72. package/dist/esm/steps/fullstack.mjs +21 -0
  73. package/dist/esm/steps/fullstack.mjs.map +1 -0
  74. package/dist/esm/steps/fullstack.native.js +24 -0
  75. package/dist/esm/steps/fullstack.native.js.map +1 -0
  76. package/dist/esm/steps/one.mjs +69 -0
  77. package/dist/esm/steps/one.mjs.map +1 -0
  78. package/dist/esm/steps/one.native.js +73 -0
  79. package/dist/esm/steps/one.native.js.map +1 -0
  80. package/dist/esm/steps/types.mjs +2 -0
  81. package/dist/esm/steps/types.mjs.map +1 -0
  82. package/dist/esm/steps/types.native.js +2 -0
  83. package/dist/esm/steps/types.native.js.map +1 -0
  84. package/dist/esm/templates.mjs +37 -0
  85. package/dist/esm/templates.mjs.map +1 -0
  86. package/dist/esm/templates.native.js +37 -0
  87. package/dist/esm/templates.native.js.map +1 -0
  88. package/package.json +2 -2
@@ -0,0 +1,2 @@
1
+ $ tamagui-build --skip-types
2
+ built create-vxrn in 531 ms
@@ -0,0 +1,236 @@
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
+ }
@@ -0,0 +1,273 @@
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
@@ -0,0 +1 @@
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":[]}
@@ -0,0 +1,122 @@
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
+ }