@vertesia/create-plugin 1.0.0 → 1.1.0-dev.20260427.060440Z
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/download-template.d.ts.map +1 -1
- package/lib/download-template.js +7 -1
- package/lib/download-template.js.map +1 -1
- package/lib/index.js +19 -10
- package/lib/index.js.map +1 -1
- package/lib/package-manager.js +1 -1
- package/lib/prompts.d.ts.map +1 -1
- package/lib/prompts.js +7 -10
- package/lib/prompts.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download-template.d.ts","sourceRoot":"","sources":["../src/download-template.ts"],"names":[],"mappings":"AAoBA;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"download-template.d.ts","sourceRoot":"","sources":["../src/download-template.ts"],"names":[],"mappings":"AAoBA;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,IAAI,CAAC,CAgDf"}
|
package/lib/download-template.js
CHANGED
|
@@ -33,7 +33,13 @@ export async function downloadTemplate(projectName, repository, localTemplatesPa
|
|
|
33
33
|
if (!fs.existsSync(sourcePath)) {
|
|
34
34
|
throw new Error(`Local template directory not found: ${sourcePath}`);
|
|
35
35
|
}
|
|
36
|
-
fs.cpSync(sourcePath, projectName, {
|
|
36
|
+
fs.cpSync(sourcePath, projectName, {
|
|
37
|
+
recursive: true,
|
|
38
|
+
filter: (src) => {
|
|
39
|
+
const rel = src.slice(sourcePath.length);
|
|
40
|
+
return !rel.startsWith('/node_modules') && !rel.startsWith('/dist') && !rel.startsWith('/.pnpm');
|
|
41
|
+
}
|
|
42
|
+
});
|
|
37
43
|
console.log(chalk.green(' ✓ Template copied\n'));
|
|
38
44
|
return;
|
|
39
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download-template.js","sourceRoot":"","sources":["../src/download-template.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C;;;GAGG;AACH,SAAS,sBAAsB,CAAC,UAAkB;IAChD,mCAAmC;IACnC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,8CAA8C;IAC9C,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC;AACpC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,WAAmB,EACnB,UAAkB,EAClB,kBAA2B;IAE3B,IAAI,kBAAkB,EAAE,CAAC;QACvB,MAAM,WAAW,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;QAEjE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,UAAU,EAAE,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,WAAW,IAAI,CAAC,CAAC,CAAC;QAEzD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,uCAAuC,UAAU,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"download-template.js","sourceRoot":"","sources":["../src/download-template.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C;;;GAGG;AACH,SAAS,sBAAsB,CAAC,UAAkB;IAChD,mCAAmC;IACnC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,8CAA8C;IAC9C,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC;AACpC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,WAAmB,EACnB,UAAkB,EAClB,kBAA2B;IAE3B,IAAI,kBAAkB,EAAE,CAAC;QACvB,MAAM,WAAW,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;QAEjE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,UAAU,EAAE,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,WAAW,IAAI,CAAC,CAAC,CAAC;QAEzD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,uCAAuC,UAAU,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE;YACjC,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE;gBACd,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACzC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACnG,CAAC;SACF,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,UAAU,EAAE,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,WAAW,IAAI,CAAC,CAAC,CAAC;IAEzD,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE;QAChC,KAAK,EAAE,MAAM,CAAC,QAAQ;QACtB,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IAEH,yBAAyB;IACzB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IAC9G,CAAC;AACH,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -23,12 +23,13 @@ async function main() {
|
|
|
23
23
|
const program = new Command()
|
|
24
24
|
.name('create-plugin')
|
|
25
25
|
.description('CLI to create Vertesia plugins: UI plugins or tool servers')
|
|
26
|
-
.argument('
|
|
26
|
+
.argument('[project-name]', 'Name of the project to create')
|
|
27
27
|
.option('-b, --branch <branch>', 'Use a specific template branch')
|
|
28
28
|
.option('-t, --template <name>', 'Template name (skips interactive selection)')
|
|
29
29
|
.option('-y, --yes', 'Non-interactive mode: use defaults for all prompts', false)
|
|
30
30
|
.option('--dev', 'Use workspace dependencies (development mode)', false)
|
|
31
31
|
.option('--local-templates <path>', 'Use local template directory instead of fetching from GitHub')
|
|
32
|
+
.option('--package-manager <manager>', 'Package manager to use: pnpm or npm (overrides template default and interactive selection)')
|
|
32
33
|
.addHelpText('after', `
|
|
33
34
|
Available Templates:
|
|
34
35
|
${config.templates.map(t => ` - ${t.name}`).join('\n')}
|
|
@@ -36,9 +37,22 @@ ${config.templates.map(t => ` - ${t.name}`).join('\n')}
|
|
|
36
37
|
Documentation: ${config.docsUrl}
|
|
37
38
|
`)
|
|
38
39
|
.parse();
|
|
39
|
-
|
|
40
|
+
let projectName = program.args[0];
|
|
40
41
|
const opts = program.opts();
|
|
41
|
-
const { branch, template, yes: nonInteractive, dev, localTemplates } = opts;
|
|
42
|
+
const { branch, template, yes: nonInteractive, dev, localTemplates, packageManager: packageManagerOverride } = opts;
|
|
43
|
+
// Prompt for project name if not provided as CLI argument
|
|
44
|
+
if (!projectName) {
|
|
45
|
+
const { default: prompts } = await import('prompts');
|
|
46
|
+
const answer = await prompts({
|
|
47
|
+
type: 'text',
|
|
48
|
+
name: 'projectName',
|
|
49
|
+
message: 'Project name:',
|
|
50
|
+
validate: (v) => validation.projectNamePattern.test(v) || validation.projectNameError,
|
|
51
|
+
}, {
|
|
52
|
+
onCancel: () => { console.log(chalk.red('\n❌ Installation cancelled.\n')); process.exit(1); },
|
|
53
|
+
});
|
|
54
|
+
projectName = answer.projectName;
|
|
55
|
+
}
|
|
42
56
|
// Validate project name
|
|
43
57
|
if (!validation.projectNamePattern.test(projectName)) {
|
|
44
58
|
console.log(chalk.red(`❌ ${validation.projectNameError}\n`));
|
|
@@ -63,8 +77,8 @@ Documentation: ${config.docsUrl}
|
|
|
63
77
|
await downloadTemplate(projectName, selectedTemplate.repository, localTemplates);
|
|
64
78
|
// Step 3: Read template configuration
|
|
65
79
|
const templateConfig = readTemplateConfig(projectName);
|
|
66
|
-
// Step 4: Detect and select package manager (
|
|
67
|
-
const packageManager = await selectPackageManager(templateConfig.packageManager, nonInteractive);
|
|
80
|
+
// Step 4: Detect and select package manager (CLI flag overrides template default)
|
|
81
|
+
const packageManager = await selectPackageManager(packageManagerOverride ?? templateConfig.packageManager, nonInteractive);
|
|
68
82
|
// Step 5: Prompt user for configuration
|
|
69
83
|
const answers = await promptUser(projectName, templateConfig, nonInteractive);
|
|
70
84
|
// Step 5: Replace variables in files
|
|
@@ -104,11 +118,6 @@ Documentation: ${config.docsUrl}
|
|
|
104
118
|
}
|
|
105
119
|
catch (error) {
|
|
106
120
|
console.log(chalk.red(`\n❌ Installation failed: ${error instanceof Error ? error.message : 'Unknown error'}\n`));
|
|
107
|
-
// Cleanup on failure
|
|
108
|
-
if (fs.existsSync(projectName)) {
|
|
109
|
-
console.log(chalk.gray('Cleaning up...'));
|
|
110
|
-
fs.rmSync(projectName, { recursive: true, force: true });
|
|
111
|
-
}
|
|
112
121
|
process.exit(1);
|
|
113
122
|
}
|
|
114
123
|
}
|
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,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,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,EACL,iBAAiB,EACjB,wBAAwB,EACxB,eAAe,EACf,WAAW,EACX,gBAAgB,EACjB,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;IAEjB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;SAC1B,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,WAAW,CAAC,OAAO,EAAE;;EAExB,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;iBAEtC,MAAM,CAAC,OAAO;CAC9B,CAAC;SACG,KAAK,EAAE,CAAC;IAEX,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/package-manager.js
CHANGED
package/lib/prompts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD;;;GAGG;AACH,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD;;;GAGG;AACH,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CA4G1I"}
|
package/lib/prompts.js
CHANGED
|
@@ -12,13 +12,11 @@ export async function promptUser(projectName, templateConfig, nonInteractive = f
|
|
|
12
12
|
if (!templateConfig.prompts) {
|
|
13
13
|
return {};
|
|
14
14
|
}
|
|
15
|
+
// Pre-populate PROJECT_NAME from the directory name — skip the prompt entirely
|
|
16
|
+
const filteredPrompts = templateConfig.prompts.filter(p => p.name !== 'PROJECT_NAME');
|
|
15
17
|
// Process prompts - replace ${PROJECT_NAME} and other variables in initial values
|
|
16
|
-
const processedPrompts =
|
|
18
|
+
const processedPrompts = filteredPrompts.map(p => {
|
|
17
19
|
const prompt = { ...p };
|
|
18
|
-
// Override PROJECT_NAME initial value with the directory name
|
|
19
|
-
if (prompt.name === 'PROJECT_NAME') {
|
|
20
|
-
prompt.initial = projectName;
|
|
21
|
-
}
|
|
22
20
|
// Replace ${PROJECT_NAME} in initial values
|
|
23
21
|
if (typeof prompt.initial === 'string') {
|
|
24
22
|
prompt.initial = prompt.initial.replace(/\$\{PROJECT_NAME\}/g, projectName);
|
|
@@ -51,17 +49,15 @@ export async function promptUser(projectName, templateConfig, nonInteractive = f
|
|
|
51
49
|
}
|
|
52
50
|
return prompt;
|
|
53
51
|
});
|
|
54
|
-
let answers;
|
|
52
|
+
let answers = { PROJECT_NAME: projectName };
|
|
55
53
|
if (nonInteractive) {
|
|
56
54
|
// Use default/initial values for all prompts
|
|
57
55
|
console.log(chalk.gray('Using default values (non-interactive mode)\n'));
|
|
58
|
-
answers = {};
|
|
59
56
|
for (const prompt of processedPrompts) {
|
|
60
57
|
if (prompt.type === 'confirm') {
|
|
61
58
|
answers[prompt.name] = prompt.initial ?? true;
|
|
62
59
|
}
|
|
63
60
|
else if (prompt.type === 'select' && prompt.choices) {
|
|
64
|
-
// Use the initial index or first choice
|
|
65
61
|
const idx = typeof prompt.initial === 'number' ? prompt.initial : 0;
|
|
66
62
|
answers[prompt.name] = prompt.choices[idx]?.value ?? prompt.choices[0]?.value;
|
|
67
63
|
}
|
|
@@ -72,15 +68,16 @@ export async function promptUser(projectName, templateConfig, nonInteractive = f
|
|
|
72
68
|
}
|
|
73
69
|
else {
|
|
74
70
|
console.log(chalk.blue('⚙️ Configure your project:\n'));
|
|
75
|
-
|
|
71
|
+
const userAnswers = await prompts(processedPrompts, {
|
|
76
72
|
onCancel: () => {
|
|
77
73
|
throw new Error('Installation cancelled by user');
|
|
78
74
|
}
|
|
79
75
|
});
|
|
80
76
|
// Check if all prompts were answered
|
|
81
|
-
if (Object.keys(
|
|
77
|
+
if (Object.keys(userAnswers).length !== processedPrompts.length) {
|
|
82
78
|
throw new Error('Installation cancelled');
|
|
83
79
|
}
|
|
80
|
+
answers = { ...answers, ...userAnswers };
|
|
84
81
|
}
|
|
85
82
|
// Process derived variables
|
|
86
83
|
if (templateConfig.derived) {
|
package/lib/prompts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,WAAmB,EAAE,cAA8B,EAAE,cAAc,GAAG,KAAK;IAC1G,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vertesia/create-plugin",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.1.0-dev.20260427.060440Z",
|
|
4
4
|
"description": "CLI to create Vertesia plugins: UI plugins or tool servers",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"author": "Vertesia",
|
|
22
22
|
"license": "Apache-2.0",
|
|
23
23
|
"templateVersions": {
|
|
24
|
-
"@vertesia": "1.0.
|
|
25
|
-
"@llumiverse": "1.0.
|
|
24
|
+
"@vertesia": "1.1.0-dev.20260427.060440Z",
|
|
25
|
+
"@llumiverse": "1.1.0-dev.20260427.054520Z"
|
|
26
26
|
},
|
|
27
27
|
"repository": {
|
|
28
28
|
"type": "git",
|
|
@@ -37,9 +37,9 @@
|
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@types/degit": "^2.8.6",
|
|
40
|
-
"@types/node": "^
|
|
40
|
+
"@types/node": "^25.6.0",
|
|
41
41
|
"@types/prompts": "^2.4.9",
|
|
42
|
-
"typescript": "^
|
|
42
|
+
"typescript": "^6.0.2"
|
|
43
43
|
},
|
|
44
44
|
"scripts": {
|
|
45
45
|
"build": "tsc",
|