@vertesia/create-plugin 1.3.0 → 1.4.0-dev.20260615.042033Z
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/lib/configuration.d.ts.map +1 -1
- package/lib/configuration.js +2 -19
- package/lib/configuration.js.map +1 -1
- package/lib/download-template.d.ts +3 -0
- package/lib/download-template.d.ts.map +1 -1
- package/lib/download-template.js +10 -9
- package/lib/download-template.js.map +1 -1
- package/lib/index.js +46 -16
- package/lib/index.js.map +1 -1
- package/lib/package-manager.d.ts +3 -0
- package/lib/package-manager.d.ts.map +1 -1
- package/lib/package-manager.js +7 -9
- package/lib/package-manager.js.map +1 -1
- package/lib/post-install.d.ts +4 -1
- package/lib/post-install.d.ts.map +1 -1
- package/lib/post-install.js +17 -19
- package/lib/post-install.js.map +1 -1
- package/lib/process-template.d.ts +7 -4
- package/lib/process-template.d.ts.map +1 -1
- package/lib/process-template.js +52 -27
- package/lib/process-template.js.map +1 -1
- package/lib/prompts.d.ts +5 -2
- package/lib/prompts.d.ts.map +1 -1
- package/lib/prompts.js +21 -8
- package/lib/prompts.js.map +1 -1
- package/lib/template-config.d.ts +3 -1
- package/lib/template-config.d.ts.map +1 -1
- package/lib/template-config.js +2 -2
- package/lib/template-config.js.map +1 -1
- package/lib/template-selector.d.ts +1 -1
- package/lib/template-selector.d.ts.map +1 -1
- package/lib/template-selector.js +7 -7
- package/lib/template-selector.js.map +1 -1
- package/lib/transforms.d.ts +5 -0
- package/lib/transforms.d.ts.map +1 -1
- package/lib/transforms.js +12 -1
- package/lib/transforms.js.map +1 -1
- package/lib/version.d.ts.map +1 -1
- package/lib/version.js +5 -4
- package/lib/version.js.map +1 -1
- package/package.json +9 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../src/configuration.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,kBAAkB;
|
|
1
|
+
{"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../src/configuration.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,MAAM;IACf;;;;;;OAMG;wBAME,kBAAkB,EAAE;IAEzB;;;OAGG;;IAGH;;;;OAIG;;IAGH;;OAEG;;CAEG,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,UAAU;IACnB;;;OAGG;;IAGH;;OAEG;;IAGH;;OAEG;4BACyD,MAAM,EAAE;CAC9D,CAAC"}
|
package/lib/configuration.js
CHANGED
|
@@ -15,20 +15,8 @@ export const config = {
|
|
|
15
15
|
templates: [
|
|
16
16
|
{
|
|
17
17
|
name: 'Vertesia Plugin',
|
|
18
|
-
repository: 'vertesia/composableai/templates/plugin-template'
|
|
18
|
+
repository: 'vertesia/composableai/templates/plugin-template',
|
|
19
19
|
},
|
|
20
|
-
{
|
|
21
|
-
name: 'Vertesia Tool Server (deprecated)',
|
|
22
|
-
repository: 'vertesia/composableai/templates/tool-server-template'
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
name: 'Vertesia UI Plugin (deprecated)',
|
|
26
|
-
repository: 'vertesia/composableai/templates/ui-plugin-template'
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
name: 'Vertesia Workflow Worker',
|
|
30
|
-
repository: 'vertesia/composableai/templates/worker-template'
|
|
31
|
-
}
|
|
32
20
|
],
|
|
33
21
|
/**
|
|
34
22
|
* Name of the template configuration file in the template repo
|
|
@@ -62,11 +50,6 @@ export const validation = {
|
|
|
62
50
|
/**
|
|
63
51
|
* Reserved project names that cannot be used
|
|
64
52
|
*/
|
|
65
|
-
reservedNames: [
|
|
66
|
-
'test',
|
|
67
|
-
'node_modules',
|
|
68
|
-
'dist',
|
|
69
|
-
'build',
|
|
70
|
-
],
|
|
53
|
+
reservedNames: ['test', 'node_modules', 'dist', 'build'],
|
|
71
54
|
};
|
|
72
55
|
//# sourceMappingURL=configuration.js.map
|
package/lib/configuration.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../src/configuration.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,MAAM,CAAC,MAAM,MAAM,GAAG;
|
|
1
|
+
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../src/configuration.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,MAAM,CAAC,MAAM,MAAM,GAAG;IAClB;;;;;;OAMG;IACH,SAAS,EAAE;QACP;YACI,IAAI,EAAE,iBAAiB;YACvB,UAAU,EAAE,iDAAiD;SAChE;KACoB;IAEzB;;;OAGG;IACH,kBAAkB,EAAE,sBAAsB;IAE1C;;;;OAIG;IACH,QAAQ,EAAE,KAAK;IAEf;;OAEG;IACH,OAAO,EAAE,2BAA2B;CAC9B,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACtB;;;OAGG;IACH,kBAAkB,EAAE,cAAc;IAElC;;OAEG;IACH,gBAAgB,EAAE,uEAAuE;IAEzF;;OAEG;IACH,aAAa,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAa;CAC9D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download-template.d.ts","sourceRoot":"","sources":["../src/download-template.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"download-template.d.ts","sourceRoot":"","sources":["../src/download-template.ts"],"names":[],"mappings":"AAAA;;GAEG;AAoBH;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAClC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,kBAAkB,CAAC,EAAE,MAAM,GAC5B,OAAO,CAAC,IAAI,CAAC,CAgDf"}
|
package/lib/download-template.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Template downloading from GitHub or local copy
|
|
3
3
|
*/
|
|
4
|
-
import
|
|
4
|
+
import fs from 'node:fs';
|
|
5
|
+
import path from 'node:path';
|
|
5
6
|
import chalk from 'chalk';
|
|
6
|
-
import
|
|
7
|
-
import path from 'path';
|
|
7
|
+
import degit from 'degit';
|
|
8
8
|
import { config } from './configuration.js';
|
|
9
9
|
/**
|
|
10
10
|
* Extract the template directory name from a repository string.
|
|
@@ -14,6 +14,7 @@ function extractTemplateDirName(repository) {
|
|
|
14
14
|
// Strip the #ref suffix if present
|
|
15
15
|
const repoPath = repository.split('#')[0];
|
|
16
16
|
// Last segment is the template directory name
|
|
17
|
+
// biome-ignore lint/style/noNonNullAssertion: intentional non-null assertion; TS can't prove narrowing here
|
|
17
18
|
return repoPath.split('/').pop();
|
|
18
19
|
}
|
|
19
20
|
/**
|
|
@@ -27,7 +28,7 @@ export async function downloadTemplate(projectName, repository, localTemplatesPa
|
|
|
27
28
|
if (localTemplatesPath) {
|
|
28
29
|
const templateDir = extractTemplateDirName(repository);
|
|
29
30
|
const sourcePath = path.resolve(localTemplatesPath, templateDir);
|
|
30
|
-
console.log(chalk.blue('
|
|
31
|
+
console.log(chalk.blue('Copying template from local directory...\n'));
|
|
31
32
|
console.log(chalk.gray(` Source: ${sourcePath}`));
|
|
32
33
|
console.log(chalk.gray(` Target: ./${projectName}\n`));
|
|
33
34
|
if (!fs.existsSync(sourcePath)) {
|
|
@@ -38,12 +39,12 @@ export async function downloadTemplate(projectName, repository, localTemplatesPa
|
|
|
38
39
|
filter: (src) => {
|
|
39
40
|
const rel = src.slice(sourcePath.length);
|
|
40
41
|
return !rel.startsWith('/node_modules') && !rel.startsWith('/dist') && !rel.startsWith('/.pnpm');
|
|
41
|
-
}
|
|
42
|
+
},
|
|
42
43
|
});
|
|
43
|
-
console.log(chalk.green('
|
|
44
|
+
console.log(chalk.green(' Template copied\n'));
|
|
44
45
|
return;
|
|
45
46
|
}
|
|
46
|
-
console.log(chalk.blue('
|
|
47
|
+
console.log(chalk.blue('Downloading template from GitHub...\n'));
|
|
47
48
|
console.log(chalk.gray(` Repository: ${repository}`));
|
|
48
49
|
console.log(chalk.gray(` Target: ./${projectName}\n`));
|
|
49
50
|
const emitter = degit(repository, {
|
|
@@ -55,11 +56,11 @@ export async function downloadTemplate(projectName, repository, localTemplatesPa
|
|
|
55
56
|
console.log(chalk.gray(` ${info.message}`));
|
|
56
57
|
});
|
|
57
58
|
emitter.on('warn', (warning) => {
|
|
58
|
-
console.log(chalk.yellow(`
|
|
59
|
+
console.log(chalk.yellow(` ${warning.message}`));
|
|
59
60
|
});
|
|
60
61
|
try {
|
|
61
62
|
await emitter.clone(projectName);
|
|
62
|
-
console.log(chalk.green('
|
|
63
|
+
console.log(chalk.green(' Template downloaded\n'));
|
|
63
64
|
}
|
|
64
65
|
catch (error) {
|
|
65
66
|
throw new Error(`Failed to download template: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download-template.js","sourceRoot":"","sources":["../src/download-template.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"download-template.js","sourceRoot":"","sources":["../src/download-template.ts"],"names":[],"mappings":"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"}
|
package/lib/index.js
CHANGED
|
@@ -5,14 +5,15 @@
|
|
|
5
5
|
* CLI tool to create Vertesia tool server projects from GitHub templates.
|
|
6
6
|
* Reads template.config.json from the template to determine prompts and file replacements.
|
|
7
7
|
*/
|
|
8
|
+
import { execSync } from 'node:child_process';
|
|
9
|
+
import fs from 'node:fs';
|
|
8
10
|
import chalk from 'chalk';
|
|
9
11
|
import { Command } from 'commander';
|
|
10
|
-
import fs from 'fs';
|
|
11
12
|
import { config, validation } from './configuration.js';
|
|
12
13
|
import { downloadTemplate } from './download-template.js';
|
|
13
14
|
import { installDependencies, selectPackageManager } from './package-manager.js';
|
|
14
15
|
import { runPostInstallHooks, runPreInstallHooks } from './post-install.js';
|
|
15
|
-
import { adjustPackageJson, handleConditionalRemoves, removeMetaFiles, renameFiles, replaceVariables } from './process-template.js';
|
|
16
|
+
import { adjustPackageJson, handleConditionalRemoves, removeMetaFiles, renameFiles, replaceVariables, } from './process-template.js';
|
|
16
17
|
import { promptUser } from './prompts.js';
|
|
17
18
|
import { readTemplateConfig } from './template-config.js';
|
|
18
19
|
import { selectTemplate } from './template-selector.js';
|
|
@@ -29,17 +30,19 @@ async function main() {
|
|
|
29
30
|
.option('-y, --yes', 'Non-interactive mode: use defaults for all prompts', false)
|
|
30
31
|
.option('--dev', 'Use workspace dependencies (development mode)', false)
|
|
31
32
|
.option('--local-templates <path>', 'Use local template directory instead of fetching from GitHub')
|
|
33
|
+
.option('--skip-install', 'Skip dependency installation after copying and configuring the template', false)
|
|
34
|
+
.option('--full', 'Start from the full scaffold (overlay examples/ onto src/) instead of the minimal one', false)
|
|
32
35
|
.option('--package-manager <manager>', 'Package manager to use: pnpm or npm (overrides template default and interactive selection)')
|
|
33
36
|
.addHelpText('after', `
|
|
34
37
|
Available Templates:
|
|
35
|
-
${config.templates.map(t => ` - ${t.name}`).join('\n')}
|
|
38
|
+
${config.templates.map((t) => ` - ${t.name}`).join('\n')}
|
|
36
39
|
|
|
37
40
|
Documentation: ${config.docsUrl}
|
|
38
41
|
`)
|
|
39
42
|
.parse();
|
|
40
43
|
let projectName = program.args[0];
|
|
41
44
|
const opts = program.opts();
|
|
42
|
-
const { branch, template, yes: nonInteractive, dev, localTemplates, packageManager: packageManagerOverride } = opts;
|
|
45
|
+
const { branch, template, yes: nonInteractive, dev, localTemplates, skipInstall, full, packageManager: packageManagerOverride, } = opts;
|
|
43
46
|
// Prompt for project name if not provided as CLI argument
|
|
44
47
|
if (!projectName) {
|
|
45
48
|
const { default: prompts } = await import('prompts');
|
|
@@ -49,22 +52,25 @@ Documentation: ${config.docsUrl}
|
|
|
49
52
|
message: 'Project name:',
|
|
50
53
|
validate: (v) => validation.projectNamePattern.test(v) || validation.projectNameError,
|
|
51
54
|
}, {
|
|
52
|
-
onCancel: () => {
|
|
55
|
+
onCancel: () => {
|
|
56
|
+
console.log(chalk.red('\nInstallation cancelled.\n'));
|
|
57
|
+
process.exit(1);
|
|
58
|
+
},
|
|
53
59
|
});
|
|
54
60
|
projectName = answer.projectName;
|
|
55
61
|
}
|
|
56
62
|
// Validate project name
|
|
57
63
|
if (!validation.projectNamePattern.test(projectName)) {
|
|
58
|
-
console.log(chalk.red(
|
|
64
|
+
console.log(chalk.red(`${validation.projectNameError}\n`));
|
|
59
65
|
process.exit(1);
|
|
60
66
|
}
|
|
61
67
|
if (validation.reservedNames.includes(projectName)) {
|
|
62
|
-
console.log(chalk.red(
|
|
68
|
+
console.log(chalk.red(`"${projectName}" is a reserved name. Please choose a different name.\n`));
|
|
63
69
|
process.exit(1);
|
|
64
70
|
}
|
|
65
71
|
// Check if directory already exists
|
|
66
72
|
if (fs.existsSync(projectName)) {
|
|
67
|
-
console.log(chalk.red(
|
|
73
|
+
console.log(chalk.red(`Directory "${projectName}" already exists.\n`));
|
|
68
74
|
process.exit(1);
|
|
69
75
|
}
|
|
70
76
|
try {
|
|
@@ -72,7 +78,7 @@ Documentation: ${config.docsUrl}
|
|
|
72
78
|
const selectedTemplate = await selectTemplate(branch, template);
|
|
73
79
|
// Show the selected template name with branch if specified
|
|
74
80
|
const branchInfo = branch ? chalk.gray(` (branch: ${branch})`) : '';
|
|
75
|
-
console.log(chalk.blue.bold(`\
|
|
81
|
+
console.log(`${chalk.blue.bold(`\nCreate ${selectedTemplate.name}`) + branchInfo}\n`);
|
|
76
82
|
// Step 2: Download template from GitHub (or copy from local path)
|
|
77
83
|
await downloadTemplate(projectName, selectedTemplate.repository, localTemplates);
|
|
78
84
|
// Step 3: Read template configuration
|
|
@@ -81,10 +87,14 @@ Documentation: ${config.docsUrl}
|
|
|
81
87
|
const packageManager = await selectPackageManager(packageManagerOverride ?? templateConfig.packageManager, nonInteractive);
|
|
82
88
|
// Step 5: Prompt user for configuration
|
|
83
89
|
const answers = await promptUser(projectName, templateConfig, nonInteractive);
|
|
90
|
+
// Inject package-manager metadata so templates can reference it via {{PM}}, {{PM_RUN}}, {{PM_VERSION}}
|
|
91
|
+
answers.PM = packageManager;
|
|
92
|
+
answers.PM_RUN = `${packageManager} run`;
|
|
93
|
+
answers.PM_VERSION = execSync(`${packageManager} --version`, { encoding: 'utf8' }).trim();
|
|
84
94
|
// Step 5: Replace variables in files
|
|
85
95
|
replaceVariables(projectName, templateConfig, answers);
|
|
86
96
|
// Step 6: Adjust package.json (name and workspace dependencies)
|
|
87
|
-
adjustPackageJson(projectName, answers, dev);
|
|
97
|
+
adjustPackageJson(projectName, answers, dev, packageManager);
|
|
88
98
|
// Step 7: Handle conditional removes
|
|
89
99
|
if (templateConfig.conditionalRemove) {
|
|
90
100
|
handleConditionalRemoves(projectName, templateConfig, answers);
|
|
@@ -93,12 +103,25 @@ Documentation: ${config.docsUrl}
|
|
|
93
103
|
renameFiles(projectName, templateConfig);
|
|
94
104
|
// Step 9: Remove meta files
|
|
95
105
|
removeMetaFiles(projectName, templateConfig);
|
|
96
|
-
// Step
|
|
106
|
+
// Step 9b: Full scaffold — overlay examples/ onto src/ (opt-in via --full).
|
|
107
|
+
// The default scaffold is intentionally minimal; --full installs the working
|
|
108
|
+
// example features and populated tool-server collections.
|
|
109
|
+
const applyExamplesScript = `${projectName}/scripts/apply-examples.mjs`;
|
|
110
|
+
if (full) {
|
|
111
|
+
if (fs.existsSync(applyExamplesScript)) {
|
|
112
|
+
console.log(chalk.blue('Applying full scaffold (examples)...\n'));
|
|
113
|
+
execSync('node scripts/apply-examples.mjs', { cwd: projectName, stdio: 'inherit' });
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
console.log(chalk.yellow('--full requested but scripts/apply-examples.mjs is missing; skipping.\n'));
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
// Step 10: Run pre-install hooks (if any) - e.g., CLI authentication for private registries
|
|
97
120
|
let skipDependencyInstall = false;
|
|
98
121
|
if (templateConfig.preInstall) {
|
|
99
122
|
const preInstallSuccess = await runPreInstallHooks(projectName, templateConfig.preInstall, packageManager, nonInteractive);
|
|
100
123
|
if (!preInstallSuccess) {
|
|
101
|
-
console.log(chalk.yellow('
|
|
124
|
+
console.log(chalk.yellow('Pre-install hooks failed. Skipping dependency installation.\n'));
|
|
102
125
|
console.log(chalk.gray('You can install dependencies manually after resolving the issue:\n'));
|
|
103
126
|
console.log(chalk.gray(` cd ${projectName}`));
|
|
104
127
|
console.log(chalk.gray(` ${packageManager} install\n`));
|
|
@@ -106,6 +129,13 @@ Documentation: ${config.docsUrl}
|
|
|
106
129
|
}
|
|
107
130
|
}
|
|
108
131
|
// Step 10: Install dependencies
|
|
132
|
+
if (skipInstall) {
|
|
133
|
+
console.log(chalk.yellow('Skipping dependency installation (--skip-install).\n'));
|
|
134
|
+
console.log(chalk.gray('You can install dependencies manually when needed:\n'));
|
|
135
|
+
console.log(chalk.gray(` cd ${projectName}`));
|
|
136
|
+
console.log(chalk.gray(` ${packageManager} install\n`));
|
|
137
|
+
skipDependencyInstall = true;
|
|
138
|
+
}
|
|
109
139
|
if (!skipDependencyInstall) {
|
|
110
140
|
await installDependencies(projectName, packageManager);
|
|
111
141
|
}
|
|
@@ -117,7 +147,7 @@ Documentation: ${config.docsUrl}
|
|
|
117
147
|
showSuccess(projectName, packageManager, selectedTemplate.name, selectedTemplate.repository);
|
|
118
148
|
}
|
|
119
149
|
catch (error) {
|
|
120
|
-
console.log(chalk.red(`\
|
|
150
|
+
console.log(chalk.red(`\nInstallation failed: ${error instanceof Error ? error.message : 'Unknown error'}\n`));
|
|
121
151
|
process.exit(1);
|
|
122
152
|
}
|
|
123
153
|
}
|
|
@@ -125,10 +155,10 @@ Documentation: ${config.docsUrl}
|
|
|
125
155
|
* Show success message
|
|
126
156
|
*/
|
|
127
157
|
function showSuccess(projectName, packageManager, templateName, repository) {
|
|
128
|
-
console.log(chalk.green.bold('
|
|
158
|
+
console.log(chalk.green.bold('Project created successfully!\n'));
|
|
129
159
|
console.log(chalk.gray('Next steps:\n'));
|
|
130
160
|
console.log(chalk.cyan(` cd ${projectName}`));
|
|
131
|
-
console.log(chalk.cyan(` ${packageManager} dev`));
|
|
161
|
+
console.log(chalk.cyan(` ${packageManager} run dev`));
|
|
132
162
|
console.log();
|
|
133
163
|
console.log(chalk.gray(`Documentation: ${config.docsUrl}`));
|
|
134
164
|
console.log(chalk.gray(`Template: ${templateName}`));
|
|
@@ -136,7 +166,7 @@ function showSuccess(projectName, packageManager, templateName, repository) {
|
|
|
136
166
|
}
|
|
137
167
|
// Run the installer
|
|
138
168
|
main().catch((error) => {
|
|
139
|
-
console.error(chalk.red(`\
|
|
169
|
+
console.error(chalk.red(`\nFatal error: ${error.message}\n`));
|
|
140
170
|
process.exit(1);
|
|
141
171
|
});
|
|
142
172
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EACH,iBAAiB,EACjB,wBAAwB,EACxB,eAAe,EACf,WAAW,EACX,gBAAgB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD;;GAEG;AACH,KAAK,UAAU,IAAI;IACf,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;SACxB,IAAI,CAAC,eAAe,CAAC;SACrB,WAAW,CAAC,4DAA4D,CAAC;SACzE,QAAQ,CAAC,gBAAgB,EAAE,+BAA+B,CAAC;SAC3D,MAAM,CAAC,uBAAuB,EAAE,gCAAgC,CAAC;SACjE,MAAM,CAAC,uBAAuB,EAAE,6CAA6C,CAAC;SAC9E,MAAM,CAAC,WAAW,EAAE,oDAAoD,EAAE,KAAK,CAAC;SAChF,MAAM,CAAC,OAAO,EAAE,+CAA+C,EAAE,KAAK,CAAC;SACvE,MAAM,CAAC,0BAA0B,EAAE,8DAA8D,CAAC;SAClG,MAAM,CAAC,gBAAgB,EAAE,yEAAyE,EAAE,KAAK,CAAC;SAC1G,MAAM,CACH,QAAQ,EACR,uFAAuF,EACvF,KAAK,CACR;SACA,MAAM,CACH,6BAA6B,EAC7B,4FAA4F,CAC/F;SACA,WAAW,CACR,OAAO,EACP;;EAEV,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;iBAExC,MAAM,CAAC,OAAO;CAC9B,CACQ;SACA,KAAK,EAAE,CAAC;IAEb,IAAI,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EASrB,CAAC;IACL,MAAM,EACF,MAAM,EACN,QAAQ,EACR,GAAG,EAAE,cAAc,EACnB,GAAG,EACH,cAAc,EACd,WAAW,EACX,IAAI,EACJ,cAAc,EAAE,sBAAsB,GACzC,GAAG,IAAI,CAAC;IAET,0DAA0D;IAC1D,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,OAAO,CACxB;YACI,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,eAAe;YACxB,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,gBAAgB;SAChG,EACD;YACI,QAAQ,EAAE,GAAG,EAAE;gBACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC;gBACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;SACJ,CACJ,CAAC;QACF,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IACrC,CAAC;IAED,wBAAwB;IACxB,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,WAAW,yDAAyD,CAAC,CAAC,CAAC;QACjG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,oCAAoC;IACpC,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,WAAW,qBAAqB,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,CAAC;QACD,yEAAyE;QACzE,MAAM,gBAAgB,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAEhE,2DAA2D;QAC3D,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,gBAAgB,CAAC,IAAI,EAAE,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC;QAEtF,kEAAkE;QAClE,MAAM,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAEjF,sCAAsC;QACtC,MAAM,cAAc,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAEvD,kFAAkF;QAClF,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAC5C,sBAAqD,IAAI,cAAc,CAAC,cAAc,EACvF,cAAc,CACjB,CAAC;QAEF,wCAAwC;QACxC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;QAE9E,uGAAuG;QACvG,OAAO,CAAC,EAAE,GAAG,cAAc,CAAC;QAC5B,OAAO,CAAC,MAAM,GAAG,GAAG,cAAc,MAAM,CAAC;QACzC,OAAO,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,cAAc,YAAY,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAE1F,qCAAqC;QACrC,gBAAgB,CAAC,WAAW,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QAEvD,gEAAgE;QAChE,iBAAiB,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;QAE7D,qCAAqC;QACrC,IAAI,cAAc,CAAC,iBAAiB,EAAE,CAAC;YACnC,wBAAwB,CAAC,WAAW,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QACnE,CAAC;QAED,qDAAqD;QACrD,WAAW,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAEzC,4BAA4B;QAC5B,eAAe,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAE7C,4EAA4E;QAC5E,6EAA6E;QAC7E,0DAA0D;QAC1D,MAAM,mBAAmB,GAAG,GAAG,WAAW,6BAA6B,CAAC;QACxE,IAAI,IAAI,EAAE,CAAC;YACP,IAAI,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,CAAC;gBAClE,QAAQ,CAAC,iCAAiC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YACxF,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yEAAyE,CAAC,CAAC,CAAC;YACzG,CAAC;QACL,CAAC;QAED,4FAA4F;QAC5F,IAAI,qBAAqB,GAAG,KAAK,CAAC;QAClC,IAAI,cAAc,CAAC,UAAU,EAAE,CAAC;YAC5B,MAAM,iBAAiB,GAAG,MAAM,kBAAkB,CAC9C,WAAW,EACX,cAAc,CAAC,UAAU,EACzB,cAAc,EACd,cAAc,CACjB,CAAC;YACF,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,+DAA+D,CAAC,CAAC,CAAC;gBAC3F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC,CAAC;gBAC9F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,WAAW,EAAE,CAAC,CAAC,CAAC;gBAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,cAAc,YAAY,CAAC,CAAC,CAAC;gBACzD,qBAAqB,GAAG,IAAI,CAAC;YACjC,CAAC;QACL,CAAC;QAED,gCAAgC;QAChC,IAAI,WAAW,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sDAAsD,CAAC,CAAC,CAAC;YAClF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC,CAAC;YAChF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,WAAW,EAAE,CAAC,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,cAAc,YAAY,CAAC,CAAC,CAAC;YACzD,qBAAqB,GAAG,IAAI,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACzB,MAAM,mBAAmB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAC3D,CAAC;QAED,2CAA2C;QAC3C,IAAI,CAAC,qBAAqB,IAAI,cAAc,CAAC,WAAW,EAAE,CAAC;YACvD,MAAM,mBAAmB,CAAC,WAAW,EAAE,cAAc,CAAC,WAAW,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;QACvG,CAAC;QAED,oBAAoB;QACpB,WAAW,CAAC,WAAW,EAAE,cAAc,EAAE,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACjG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC;QAE/G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,WAAmB,EAAE,cAAsB,EAAE,YAAoB,EAAE,UAAkB;IACtG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,WAAW,EAAE,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,cAAc,UAAU,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,YAAY,EAAE,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,UAAU,IAAI,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,oBAAoB;AACpB,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
|
package/lib/package-manager.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../src/package-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../src/package-manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC,UAAU,CAQhF;AAeD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACtC,oBAAoB,CAAC,EAAE,MAAM,GAAG,KAAK,EACrC,cAAc,UAAQ,GACvB,OAAO,CAAC,MAAM,CAAC,CAqDjB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAcpG"}
|
package/lib/package-manager.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Package manager detection and selection
|
|
3
3
|
*/
|
|
4
|
+
import { execSync } from 'node:child_process';
|
|
4
5
|
import chalk from 'chalk';
|
|
5
|
-
import { execSync } from 'child_process';
|
|
6
6
|
import prompts from 'prompts';
|
|
7
7
|
export function buildPackageManagerEnv(packageManager) {
|
|
8
8
|
const env = { ...process.env };
|
|
@@ -16,9 +16,7 @@ export function buildPackageManagerEnv(packageManager) {
|
|
|
16
16
|
*/
|
|
17
17
|
function commandExists(command) {
|
|
18
18
|
try {
|
|
19
|
-
const checkCommand = process.platform === 'win32'
|
|
20
|
-
? `where ${command}`
|
|
21
|
-
: `which ${command}`;
|
|
19
|
+
const checkCommand = process.platform === 'win32' ? `where ${command}` : `which ${command}`;
|
|
22
20
|
execSync(checkCommand, { stdio: 'ignore' });
|
|
23
21
|
return true;
|
|
24
22
|
}
|
|
@@ -58,20 +56,20 @@ export async function selectPackageManager(forcedPackageManager, nonInteractive
|
|
|
58
56
|
return 'pnpm';
|
|
59
57
|
}
|
|
60
58
|
// Both are installed - let user choose
|
|
61
|
-
console.log(chalk.blue('
|
|
59
|
+
console.log(chalk.blue('Package Manager\n'));
|
|
62
60
|
const response = await prompts({
|
|
63
61
|
type: 'select',
|
|
64
62
|
name: 'packageManager',
|
|
65
63
|
message: 'Which package manager would you like to use?',
|
|
66
64
|
choices: [
|
|
67
65
|
{ title: 'pnpm (recommended)', value: 'pnpm' },
|
|
68
|
-
{ title: 'npm', value: 'npm' }
|
|
66
|
+
{ title: 'npm', value: 'npm' },
|
|
69
67
|
],
|
|
70
|
-
initial: 0
|
|
68
|
+
initial: 0,
|
|
71
69
|
}, {
|
|
72
70
|
onCancel: () => {
|
|
73
71
|
throw new Error('Installation cancelled by user');
|
|
74
|
-
}
|
|
72
|
+
},
|
|
75
73
|
});
|
|
76
74
|
console.log();
|
|
77
75
|
return response.packageManager;
|
|
@@ -80,7 +78,7 @@ export async function selectPackageManager(forcedPackageManager, nonInteractive
|
|
|
80
78
|
* Install dependencies using the specified package manager
|
|
81
79
|
*/
|
|
82
80
|
export async function installDependencies(projectName, packageManager) {
|
|
83
|
-
console.log(chalk.blue('
|
|
81
|
+
console.log(chalk.blue('Installing dependencies...\n'));
|
|
84
82
|
console.log(chalk.gray(` Using: ${packageManager}\n`));
|
|
85
83
|
try {
|
|
86
84
|
execSync(`${packageManager} install`, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../src/package-manager.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../src/package-manager.ts"],"names":[],"mappings":"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"}
|
package/lib/post-install.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Install hooks for running commands before/after project creation
|
|
3
|
+
*/
|
|
4
|
+
import type { PostInstallConfig, PreInstallConfig } from './template-config.js';
|
|
2
5
|
/**
|
|
3
6
|
* Run pre-install hooks (before npm install)
|
|
4
7
|
* Returns true if all required hooks succeeded, false otherwise
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-install.d.ts","sourceRoot":"","sources":["../src/post-install.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"post-install.d.ts","sourceRoot":"","sources":["../src/post-install.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAuJhF;;;GAGG;AACH,wBAAsB,kBAAkB,CACpC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,gBAAgB,EAC5B,cAAc,EAAE,MAAM,EACtB,cAAc,UAAQ,GACvB,OAAO,CAAC,OAAO,CAAC,CAElB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACrC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,iBAAiB,EAC9B,cAAc,EAAE,MAAM,EACtB,cAAc,UAAQ,GACvB,OAAO,CAAC,IAAI,CAAC,CAEf"}
|
package/lib/post-install.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Install hooks for running commands before/after project creation
|
|
3
3
|
*/
|
|
4
|
+
import { spawn, spawnSync } from 'node:child_process';
|
|
4
5
|
import chalk from 'chalk';
|
|
5
|
-
import { spawn, spawnSync } from 'child_process';
|
|
6
6
|
import prompts from 'prompts';
|
|
7
7
|
import { buildPackageManagerEnv } from './package-manager.js';
|
|
8
8
|
/**
|
|
@@ -10,7 +10,7 @@ import { buildPackageManagerEnv } from './package-manager.js';
|
|
|
10
10
|
*/
|
|
11
11
|
function commandExists(command) {
|
|
12
12
|
const result = spawnSync(process.platform === 'win32' ? 'where' : 'which', [command], {
|
|
13
|
-
stdio: 'ignore'
|
|
13
|
+
stdio: 'ignore',
|
|
14
14
|
});
|
|
15
15
|
return result.status === 0;
|
|
16
16
|
}
|
|
@@ -18,28 +18,26 @@ function commandExists(command) {
|
|
|
18
18
|
* Install a global npm package
|
|
19
19
|
*/
|
|
20
20
|
async function installGlobalPackage(packageName, packageManager) {
|
|
21
|
-
console.log(chalk.blue(
|
|
21
|
+
console.log(chalk.blue(`Installing ${packageName}...\n`));
|
|
22
22
|
return new Promise((resolve) => {
|
|
23
|
-
const args = packageManager === 'npm'
|
|
24
|
-
? ['install', '-g', packageName]
|
|
25
|
-
: ['add', '-g', packageName];
|
|
23
|
+
const args = packageManager === 'npm' ? ['install', '-g', packageName] : ['add', '-g', packageName];
|
|
26
24
|
const child = spawn(packageManager, args, {
|
|
27
25
|
stdio: 'inherit',
|
|
28
26
|
shell: true,
|
|
29
|
-
env: buildPackageManagerEnv(packageManager)
|
|
27
|
+
env: buildPackageManagerEnv(packageManager),
|
|
30
28
|
});
|
|
31
29
|
child.on('close', (code) => {
|
|
32
30
|
if (code === 0) {
|
|
33
|
-
console.log(chalk.green(`
|
|
31
|
+
console.log(chalk.green(` ${packageName} installed successfully\n`));
|
|
34
32
|
resolve(true);
|
|
35
33
|
}
|
|
36
34
|
else {
|
|
37
|
-
console.log(chalk.yellow(`
|
|
35
|
+
console.log(chalk.yellow(` Failed to install ${packageName}\n`));
|
|
38
36
|
resolve(false);
|
|
39
37
|
}
|
|
40
38
|
});
|
|
41
39
|
child.on('error', () => {
|
|
42
|
-
console.log(chalk.yellow(`
|
|
40
|
+
console.log(chalk.yellow(` Failed to install ${packageName}\n`));
|
|
43
41
|
resolve(false);
|
|
44
42
|
});
|
|
45
43
|
});
|
|
@@ -55,7 +53,7 @@ async function runCommand(command, cwd) {
|
|
|
55
53
|
const child = spawn('npx', ['--yes', ...command.split(' ')], {
|
|
56
54
|
stdio: 'inherit',
|
|
57
55
|
shell: true,
|
|
58
|
-
cwd
|
|
56
|
+
cwd,
|
|
59
57
|
});
|
|
60
58
|
child.on('close', (code) => {
|
|
61
59
|
resolve(code === 0);
|
|
@@ -73,7 +71,7 @@ async function runInstallHooks(projectName, config, packageManager, phase, nonIn
|
|
|
73
71
|
return true;
|
|
74
72
|
}
|
|
75
73
|
const phaseLabel = phase === 'pre' ? 'pre-install' : 'post-install';
|
|
76
|
-
console.log(chalk.blue(
|
|
74
|
+
console.log(chalk.blue(`Running ${phaseLabel} hooks...\n`));
|
|
77
75
|
// Check and install CLI package if needed
|
|
78
76
|
if (config.cliPackage) {
|
|
79
77
|
// Extract the CLI binary name from the package (e.g., @vertesia/cli -> vertesia)
|
|
@@ -87,19 +85,19 @@ async function runInstallHooks(projectName, config, packageManager, phase, nonIn
|
|
|
87
85
|
type: 'confirm',
|
|
88
86
|
name: 'installCli',
|
|
89
87
|
message: `The ${config.cliPackage} package is required. Do you want to install it globally?`,
|
|
90
|
-
initial: true
|
|
88
|
+
initial: true,
|
|
91
89
|
});
|
|
92
90
|
installCli = response.installCli;
|
|
93
91
|
}
|
|
94
92
|
if (installCli) {
|
|
95
93
|
const installed = await installGlobalPackage(config.cliPackage, packageManager);
|
|
96
94
|
if (!installed) {
|
|
97
|
-
console.log(chalk.yellow(`
|
|
95
|
+
console.log(chalk.yellow(` Skipping ${phaseLabel} commands that require the CLI\n`));
|
|
98
96
|
return false;
|
|
99
97
|
}
|
|
100
98
|
}
|
|
101
99
|
else {
|
|
102
|
-
console.log(chalk.yellow(`
|
|
100
|
+
console.log(chalk.yellow(` Skipping ${phaseLabel} commands that require the CLI\n`));
|
|
103
101
|
return false;
|
|
104
102
|
}
|
|
105
103
|
}
|
|
@@ -112,20 +110,20 @@ async function runInstallHooks(projectName, config, packageManager, phase, nonIn
|
|
|
112
110
|
type: 'confirm',
|
|
113
111
|
name: 'proceed',
|
|
114
112
|
message: promptMessage,
|
|
115
|
-
initial: true
|
|
113
|
+
initial: true,
|
|
116
114
|
});
|
|
117
115
|
if (!proceed) {
|
|
118
|
-
console.log(chalk.gray(`
|
|
116
|
+
console.log(chalk.gray(` Skipped: ${cmd.name}\n`));
|
|
119
117
|
continue;
|
|
120
118
|
}
|
|
121
119
|
}
|
|
122
120
|
console.log(chalk.gray(` Running: ${cmd.name}...`));
|
|
123
121
|
const success = await runCommand(cmd.command, projectName);
|
|
124
122
|
if (success) {
|
|
125
|
-
console.log(chalk.green(`
|
|
123
|
+
console.log(chalk.green(` ${cmd.name} completed\n`));
|
|
126
124
|
}
|
|
127
125
|
else {
|
|
128
|
-
console.log(chalk.yellow(`
|
|
126
|
+
console.log(chalk.yellow(` ${cmd.name} failed (you can run it manually later)\n`));
|
|
129
127
|
// For pre-install, a failure is critical - return false to skip dependency installation
|
|
130
128
|
if (phase === 'pre') {
|
|
131
129
|
return false;
|
package/lib/post-install.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-install.js","sourceRoot":"","sources":["../src/post-install.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"post-install.js","sourceRoot":"","sources":["../src/post-install.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Template file processing - variable replacement and adjustments
|
|
3
|
+
*/
|
|
4
|
+
import type { TemplateConfig } from './template-config.js';
|
|
2
5
|
/**
|
|
3
6
|
* Replace variables in files
|
|
4
7
|
* Uses different strategies based on file type:
|
|
@@ -7,17 +10,17 @@ import { TemplateConfig } from './template-config.js';
|
|
|
7
10
|
* - TEMPLATE__IdentifierName for identifier replacement
|
|
8
11
|
* - Text files (all others): {{VARIABLE}} placeholder pattern
|
|
9
12
|
*/
|
|
10
|
-
export declare function replaceVariables(projectName: string, templateConfig: TemplateConfig, answers: Record<string,
|
|
13
|
+
export declare function replaceVariables(projectName: string, templateConfig: TemplateConfig, answers: Record<string, unknown>): void;
|
|
11
14
|
/**
|
|
12
15
|
* Adjust package.json after variable replacement
|
|
13
16
|
* 1. Sets the package name to PROJECT_NAME
|
|
14
17
|
* 2. Resolves workspace:* dependencies to actual latest versions
|
|
15
18
|
*/
|
|
16
|
-
export declare function adjustPackageJson(projectName: string, answers: Record<string,
|
|
19
|
+
export declare function adjustPackageJson(projectName: string, answers: Record<string, unknown>, isDev: boolean, packageManager: string): void;
|
|
17
20
|
/**
|
|
18
21
|
* Handle conditional file removal based on user answers
|
|
19
22
|
*/
|
|
20
|
-
export declare function handleConditionalRemoves(projectName: string, templateConfig: TemplateConfig, answers: Record<string,
|
|
23
|
+
export declare function handleConditionalRemoves(projectName: string, templateConfig: TemplateConfig, answers: Record<string, unknown>): void;
|
|
21
24
|
/**
|
|
22
25
|
* Rename files based on template configuration
|
|
23
26
|
* Useful for files like .env.template -> .env that can't be committed to git
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-template.d.ts","sourceRoot":"","sources":["../src/process-template.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"process-template.d.ts","sourceRoot":"","sources":["../src/process-template.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAiI3D;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC5B,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,IAAI,CAoCN;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC7B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,KAAK,EAAE,OAAO,EACd,cAAc,EAAE,MAAM,GACvB,IAAI,CAsFN;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACpC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,IAAI,CAqBN;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,IAAI,CAkBrF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,IAAI,CAczF"}
|