@vertesia/create-plugin 0.80.0 → 0.81.0

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.
@@ -21,9 +21,9 @@ export declare const config: {
21
21
  * Format for repository: 'owner/repo/subdirectory' or 'owner/repo/subdirectory#branch'
22
22
  *
23
23
  * Examples:
24
- * - 'vertesia/composableai/packages/tool-server-template'
25
- * - 'vertesia/composableai/packages/tool-server-template#main'
26
- * - 'vertesia/composableai/packages/tool-server-template#v1.0.0'
24
+ * - 'vertesia/composableai/templates/tool-server-template'
25
+ * - 'vertesia/composableai/templates/tool-server-template#main'
26
+ * - 'vertesia/composableai/templates/tool-server-template#v1.0.0'
27
27
  */
28
28
  readonly templates: TemplateDefinition[];
29
29
  /**
@@ -40,7 +40,7 @@ export declare const config: {
40
40
  /**
41
41
  * Documentation URL to show in help messages
42
42
  */
43
- readonly docsUrl: "https://docs.vertesia.com/tools";
43
+ readonly docsUrl: "https://docs.vertesia.com";
44
44
  };
45
45
  /**
46
46
  * Validation rules for project names
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../src/configuration.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,MAAM;IACjB;;;;;;;;;;OAUG;wBAUE,kBAAkB,EAAE;IAEzB;;;OAGG;;IAGH;;;;OAIG;;IAGH;;OAEG;;CAEK,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,UAAU;IACrB;;;OAGG;;IAGH;;OAEG;;IAGH;;OAEG;4BAME,MAAM,EAAE;CACL,CAAC"}
1
+ {"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../src/configuration.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,MAAM;IACjB;;;;;;;;;;OAUG;wBAcE,kBAAkB,EAAE;IAEzB;;;OAGG;;IAGH;;;;OAIG;;IAGH;;OAEG;;CAEK,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,UAAU;IACrB;;;OAGG;;IAGH;;OAEG;;IAGH;;OAEG;4BAME,MAAM,EAAE;CACL,CAAC"}
@@ -12,18 +12,22 @@ export const config = {
12
12
  * Format for repository: 'owner/repo/subdirectory' or 'owner/repo/subdirectory#branch'
13
13
  *
14
14
  * Examples:
15
- * - 'vertesia/composableai/packages/tool-server-template'
16
- * - 'vertesia/composableai/packages/tool-server-template#main'
17
- * - 'vertesia/composableai/packages/tool-server-template#v1.0.0'
15
+ * - 'vertesia/composableai/templates/tool-server-template'
16
+ * - 'vertesia/composableai/templates/tool-server-template#main'
17
+ * - 'vertesia/composableai/templates/tool-server-template#v1.0.0'
18
18
  */
19
19
  templates: [
20
20
  {
21
21
  name: 'Vertesia Tool Server',
22
- repository: 'vertesia/composableai/packages/tool-server-template#preview'
22
+ repository: 'vertesia/composableai/templates/tool-server-template#preview'
23
23
  },
24
24
  {
25
25
  name: 'Vertesia UI Plugin',
26
- repository: 'vertesia/composableai/packages/ui-plugin-template#preview'
26
+ repository: 'vertesia/composableai/templates/ui-plugin-template#preview'
27
+ },
28
+ {
29
+ name: 'Vertesia Workflow Worker',
30
+ repository: 'vertesia/composableai/templates/worker-template#preview'
27
31
  }
28
32
  ],
29
33
  /**
@@ -40,7 +44,7 @@ export const config = {
40
44
  /**
41
45
  * Documentation URL to show in help messages
42
46
  */
43
- docsUrl: 'https://docs.vertesia.com/tools',
47
+ docsUrl: 'https://docs.vertesia.com',
44
48
  };
45
49
  /**
46
50
  * Validation rules for project names
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../src/configuration.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB;;;;;;;;;;OAUG;IACH,SAAS,EAAE;QACT;YACE,IAAI,EAAE,sBAAsB;YAC5B,UAAU,EAAE,6DAA6D;SAC1E;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,UAAU,EAAE,2DAA2D;SACxE;KACsB;IAEzB;;;OAGG;IACH,kBAAkB,EAAE,sBAAsB;IAE1C;;;;OAIG;IACH,QAAQ,EAAE,KAAK;IAEf;;OAEG;IACH,OAAO,EAAE,iCAAiC;CAClC,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB;;;OAGG;IACH,kBAAkB,EAAE,cAAc;IAElC;;OAEG;IACH,gBAAgB,EAAE,uEAAuE;IAEzF;;OAEG;IACH,aAAa,EAAE;QACb,MAAM;QACN,cAAc;QACd,MAAM;QACN,OAAO;KACI;CACL,CAAC"}
1
+ {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../src/configuration.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB;;;;;;;;;;OAUG;IACH,SAAS,EAAE;QACT;YACE,IAAI,EAAE,sBAAsB;YAC5B,UAAU,EAAE,8DAA8D;SAC3E;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,UAAU,EAAE,4DAA4D;SACzE;QACD;YACE,IAAI,EAAE,0BAA0B;YAChC,UAAU,EAAE,yDAAyD;SACtE;KACsB;IAEzB;;;OAGG;IACH,kBAAkB,EAAE,sBAAsB;IAE1C;;;;OAIG;IACH,QAAQ,EAAE,KAAK;IAEf;;OAEG;IACH,OAAO,EAAE,2BAA2B;CAC5B,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB;;;OAGG;IACH,kBAAkB,EAAE,cAAc;IAElC;;OAEG;IACH,gBAAgB,EAAE,uEAAuE;IAEzF;;OAEG;IACH,aAAa,EAAE;QACb,MAAM;QACN,cAAc;QACd,MAAM;QACN,OAAO;KACI;CACL,CAAC"}
package/lib/index.js CHANGED
@@ -13,7 +13,8 @@ import { selectPackageManager, installDependencies } from './package-manager.js'
13
13
  import { downloadTemplate } from './download-template.js';
14
14
  import { readTemplateConfig } from './template-config.js';
15
15
  import { promptUser } from './prompts.js';
16
- import { replaceVariables, adjustPackageJson, handleConditionalRemoves, removeMetaFiles } from './process-template.js';
16
+ import { replaceVariables, adjustPackageJson, handleConditionalRemoves, renameFiles, removeMetaFiles } from './process-template.js';
17
+ import { runPreInstallHooks, runPostInstallHooks } from './post-install.js';
17
18
  /**
18
19
  * Parse command line arguments
19
20
  */
@@ -55,11 +56,13 @@ async function main() {
55
56
  }
56
57
  catch (error) {
57
58
  console.log(chalk.red('❌ Please specify a project name:\n'));
58
- console.log(chalk.gray(' pnpm create @vertesia/tool-server my-project'));
59
- console.log(chalk.gray(' npm create @vertesia/tool-server my-project'));
60
- console.log(chalk.gray(' npx @vertesia/create-tool-server my-project\n'));
61
- console.log(chalk.gray('Options:'));
62
- console.log(chalk.gray(' -b, --branch <branch> Use specific branch\n'));
59
+ console.log(chalk.white('Usage:'));
60
+ console.log(chalk.cyan(' npx @vertesia/create-plugin') + chalk.gray(' <project-name> [options]\n'));
61
+ console.log(chalk.white('Example:'));
62
+ console.log(chalk.gray(' npx @vertesia/create-plugin my-project\n'));
63
+ console.log(chalk.white('Options:'));
64
+ console.log(chalk.gray(' -b, --branch <branch> Use specific branch'));
65
+ console.log(chalk.gray(' -h, --help Show help\n'));
63
66
  process.exit(1);
64
67
  }
65
68
  // Validate project name
@@ -82,12 +85,12 @@ async function main() {
82
85
  // Show the selected template name with branch if specified
83
86
  const branchInfo = branch ? chalk.gray(` (branch: ${branch})`) : '';
84
87
  console.log(chalk.blue.bold(`\n🚀 Create ${selectedTemplate.name}`) + branchInfo + '\n');
85
- // Step 2: Detect and select package manager
86
- const packageManager = await selectPackageManager();
87
- // Step 3: Download template from GitHub
88
+ // Step 2: Download template from GitHub
88
89
  await downloadTemplate(projectName, selectedTemplate.repository);
89
- // Step 4: Read template configuration
90
+ // Step 3: Read template configuration
90
91
  const templateConfig = readTemplateConfig(projectName);
92
+ // Step 4: Detect and select package manager (may be forced by template)
93
+ const packageManager = await selectPackageManager(templateConfig.packageManager);
91
94
  // Step 5: Prompt user for configuration
92
95
  const answers = await promptUser(projectName, templateConfig);
93
96
  // Step 5: Replace variables in files
@@ -98,11 +101,31 @@ async function main() {
98
101
  if (templateConfig.conditionalRemove) {
99
102
  handleConditionalRemoves(projectName, templateConfig, answers);
100
103
  }
101
- // Step 8: Remove meta files
104
+ // Step 8: Rename files (e.g., .env.template -> .env)
105
+ renameFiles(projectName, templateConfig);
106
+ // Step 9: Remove meta files
102
107
  removeMetaFiles(projectName, templateConfig);
103
- // Step 9: Install dependencies
104
- await installDependencies(projectName, packageManager);
105
- // Step 10: Success!
108
+ // Step 9: Run pre-install hooks (if any) - e.g., CLI authentication for private registries
109
+ let skipDependencyInstall = false;
110
+ if (templateConfig.preInstall) {
111
+ const preInstallSuccess = await runPreInstallHooks(projectName, templateConfig.preInstall, packageManager);
112
+ if (!preInstallSuccess) {
113
+ console.log(chalk.yellow('⚠️ Pre-install hooks failed. Skipping dependency installation.\n'));
114
+ console.log(chalk.gray('You can install dependencies manually after resolving the issue:\n'));
115
+ console.log(chalk.gray(` cd ${projectName}`));
116
+ console.log(chalk.gray(` ${packageManager} install\n`));
117
+ skipDependencyInstall = true;
118
+ }
119
+ }
120
+ // Step 10: Install dependencies
121
+ if (!skipDependencyInstall) {
122
+ await installDependencies(projectName, packageManager);
123
+ }
124
+ // Step 11: Run post-install hooks (if any)
125
+ if (!skipDependencyInstall && templateConfig.postInstall) {
126
+ await runPostInstallHooks(projectName, templateConfig.postInstall, packageManager);
127
+ }
128
+ // Step 12: Success!
106
129
  showSuccess(projectName, packageManager, selectedTemplate.name, selectedTemplate.repository);
107
130
  }
108
131
  catch (error) {
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  /**
2
2
  * Detect available package managers and let user choose
3
3
  * Returns the selected package manager ('pnpm' or 'npm')
4
+ * @param forcedPackageManager - If specified, skip selection and use this package manager
4
5
  */
5
- export declare function selectPackageManager(): Promise<string>;
6
+ export declare function selectPackageManager(forcedPackageManager?: 'pnpm' | 'npm'): Promise<string>;
6
7
  /**
7
8
  * Install dependencies using the specified package manager
8
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../src/package-manager.ts"],"names":[],"mappings":"AAsBA;;;GAGG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,CAmC5D;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAapG"}
1
+ {"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../src/package-manager.ts"],"names":[],"mappings":"AAsBA;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,oBAAoB,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CA4CjG;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAapG"}
@@ -22,14 +22,23 @@ function commandExists(command) {
22
22
  /**
23
23
  * Detect available package managers and let user choose
24
24
  * Returns the selected package manager ('pnpm' or 'npm')
25
+ * @param forcedPackageManager - If specified, skip selection and use this package manager
25
26
  */
26
- export async function selectPackageManager() {
27
+ export async function selectPackageManager(forcedPackageManager) {
27
28
  const hasPnpm = commandExists('pnpm');
28
29
  const hasNpm = commandExists('npm');
29
30
  // If npm is not installed, something is seriously wrong
30
31
  if (!hasNpm) {
31
32
  throw new Error('npm is not installed. Please install Node.js and npm first.');
32
33
  }
34
+ // If a specific package manager is forced by the template
35
+ if (forcedPackageManager) {
36
+ if (forcedPackageManager === 'pnpm' && !hasPnpm) {
37
+ throw new Error('This template requires pnpm. Please install it first: npm install -g pnpm');
38
+ }
39
+ console.log(chalk.gray(`Using ${forcedPackageManager} (required by template)\n`));
40
+ return forcedPackageManager;
41
+ }
33
42
  // If pnpm is not installed, use npm
34
43
  if (!hasPnpm) {
35
44
  console.log(chalk.gray('Using npm (pnpm not found)\n'));
@@ -1 +1 @@
1
- {"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../src/package-manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;GAEG;AACH,SAAS,aAAa,CAAC,OAAe;IACpC,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO;YAC/C,CAAC,CAAC,SAAS,OAAO,EAAE;YACpB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC;QACvB,QAAQ,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAEpC,wDAAwD;IACxD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;IAED,oCAAoC;IACpC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACxD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,uCAAuC;IACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAEhD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC;QAC7B,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,8CAA8C;QACvD,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,EAAE;YAC9C,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;SAC/B;QACD,OAAO,EAAE,CAAC;KACX,EAAE;QACD,QAAQ,EAAE,GAAG,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,QAAQ,CAAC,cAAc,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,WAAmB,EAAE,cAAsB;IACnF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,cAAc,IAAI,CAAC,CAAC,CAAC;IAEzD,IAAI,CAAC;QACH,QAAQ,CAAC,GAAG,cAAc,UAAU,EAAE;YACpC,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,mCAAmC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IACjH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../src/package-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { PostInstallConfig, PreInstallConfig } from './template-config.js';
2
+ /**
3
+ * Run pre-install hooks (before npm install)
4
+ * Returns true if all required hooks succeeded, false otherwise
5
+ */
6
+ export declare function runPreInstallHooks(projectName: string, preInstall: PreInstallConfig, packageManager: string): Promise<boolean>;
7
+ /**
8
+ * Run post-install hooks (after npm install)
9
+ */
10
+ export declare function runPostInstallHooks(projectName: string, postInstall: PostInstallConfig, packageManager: string): Promise<void>;
11
+ //# sourceMappingURL=post-install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-install.d.ts","sourceRoot":"","sources":["../src/post-install.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAmJ3E;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,gBAAgB,EAC5B,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,OAAO,CAAC,CAElB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,iBAAiB,EAC9B,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CAEf"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Install hooks for running commands before/after project creation
3
+ */
4
+ import { spawn, spawnSync } from 'child_process';
5
+ import chalk from 'chalk';
6
+ import prompts from 'prompts';
7
+ /**
8
+ * Check if a command exists in PATH
9
+ */
10
+ function commandExists(command) {
11
+ const result = spawnSync(process.platform === 'win32' ? 'where' : 'which', [command], {
12
+ stdio: 'ignore'
13
+ });
14
+ return result.status === 0;
15
+ }
16
+ /**
17
+ * Install a global npm package
18
+ */
19
+ async function installGlobalPackage(packageName, packageManager) {
20
+ console.log(chalk.blue(`📦 Installing ${packageName}...\n`));
21
+ return new Promise((resolve) => {
22
+ const args = packageManager === 'npm'
23
+ ? ['install', '-g', packageName]
24
+ : ['add', '-g', packageName];
25
+ const child = spawn(packageManager, args, {
26
+ stdio: 'inherit',
27
+ shell: true
28
+ });
29
+ child.on('close', (code) => {
30
+ if (code === 0) {
31
+ console.log(chalk.green(` ✓ ${packageName} installed successfully\n`));
32
+ resolve(true);
33
+ }
34
+ else {
35
+ console.log(chalk.yellow(` ⚠️ Failed to install ${packageName}\n`));
36
+ resolve(false);
37
+ }
38
+ });
39
+ child.on('error', () => {
40
+ console.log(chalk.yellow(` ⚠️ Failed to install ${packageName}\n`));
41
+ resolve(false);
42
+ });
43
+ });
44
+ }
45
+ /**
46
+ * Run a command in the project directory
47
+ * Uses npx to ensure globally installed packages are found even if PATH hasn't been refreshed
48
+ */
49
+ async function runCommand(command, cwd) {
50
+ return new Promise((resolve) => {
51
+ // Use npx to run the command - this ensures we find globally installed packages
52
+ // even if the shell's PATH hasn't been refreshed after installation
53
+ const child = spawn('npx', ['--yes', ...command.split(' ')], {
54
+ stdio: 'inherit',
55
+ shell: true,
56
+ cwd
57
+ });
58
+ child.on('close', (code) => {
59
+ resolve(code === 0);
60
+ });
61
+ child.on('error', () => {
62
+ resolve(false);
63
+ });
64
+ });
65
+ }
66
+ /**
67
+ * Run install hooks (shared implementation for pre and post install)
68
+ */
69
+ async function runInstallHooks(projectName, config, packageManager, phase) {
70
+ if (!config.commands || config.commands.length === 0) {
71
+ return true;
72
+ }
73
+ const phaseLabel = phase === 'pre' ? 'pre-install' : 'post-install';
74
+ console.log(chalk.blue(`🔧 Running ${phaseLabel} hooks...\n`));
75
+ // Check and install CLI package if needed
76
+ if (config.cliPackage) {
77
+ // Extract the CLI binary name from the package (e.g., @vertesia/cli -> vertesia)
78
+ // For scoped packages like @vertesia/cli, the binary is typically the scope name (vertesia)
79
+ const scopeMatch = config.cliPackage.match(/^@([^/]+)\//);
80
+ const cliBinary = scopeMatch ? scopeMatch[1] : config.cliPackage.replace(/-cli$/, '');
81
+ if (!commandExists(cliBinary)) {
82
+ const { installCli } = await prompts({
83
+ type: 'confirm',
84
+ name: 'installCli',
85
+ message: `The ${config.cliPackage} package is required. Do you want to install it globally?`,
86
+ initial: true
87
+ });
88
+ if (installCli) {
89
+ const installed = await installGlobalPackage(config.cliPackage, packageManager);
90
+ if (!installed) {
91
+ console.log(chalk.yellow(` ⚠️ Skipping ${phaseLabel} commands that require the CLI\n`));
92
+ return false;
93
+ }
94
+ }
95
+ else {
96
+ console.log(chalk.yellow(` ⚠️ Skipping ${phaseLabel} commands that require the CLI\n`));
97
+ return false;
98
+ }
99
+ }
100
+ }
101
+ // Run each command
102
+ for (const cmd of config.commands) {
103
+ if (cmd.optional) {
104
+ const promptMessage = cmd.prompt || `Do you want to run "${cmd.name}"?`;
105
+ const { proceed } = await prompts({
106
+ type: 'confirm',
107
+ name: 'proceed',
108
+ message: promptMessage,
109
+ initial: true
110
+ });
111
+ if (!proceed) {
112
+ console.log(chalk.gray(` ⏭️ Skipped: ${cmd.name}\n`));
113
+ continue;
114
+ }
115
+ }
116
+ console.log(chalk.gray(` Running: ${cmd.name}...`));
117
+ const success = await runCommand(cmd.command, projectName);
118
+ if (success) {
119
+ console.log(chalk.green(` ✓ ${cmd.name} completed\n`));
120
+ }
121
+ else {
122
+ console.log(chalk.yellow(` ⚠️ ${cmd.name} failed (you can run it manually later)\n`));
123
+ // For pre-install, a failure is critical - return false to skip dependency installation
124
+ if (phase === 'pre') {
125
+ return false;
126
+ }
127
+ }
128
+ }
129
+ return true;
130
+ }
131
+ /**
132
+ * Run pre-install hooks (before npm install)
133
+ * Returns true if all required hooks succeeded, false otherwise
134
+ */
135
+ export async function runPreInstallHooks(projectName, preInstall, packageManager) {
136
+ return runInstallHooks(projectName, preInstall, packageManager, 'pre');
137
+ }
138
+ /**
139
+ * Run post-install hooks (after npm install)
140
+ */
141
+ export async function runPostInstallHooks(projectName, postInstall, packageManager) {
142
+ await runInstallHooks(projectName, postInstall, packageManager, 'post');
143
+ }
144
+ //# sourceMappingURL=post-install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-install.js","sourceRoot":"","sources":["../src/post-install.ts"],"names":[],"mappings":"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"}
@@ -11,13 +11,18 @@ export declare function replaceVariables(projectName: string, templateConfig: Te
11
11
  /**
12
12
  * Adjust package.json after variable replacement
13
13
  * 1. Sets the package name to PROJECT_NAME
14
- * 2. Converts workspace:* dependencies to * for @vertesia and @llumiverse packages
14
+ * 2. Resolves workspace:* dependencies to actual latest versions
15
15
  */
16
16
  export declare function adjustPackageJson(projectName: string, answers: Record<string, any>): void;
17
17
  /**
18
18
  * Handle conditional file removal based on user answers
19
19
  */
20
20
  export declare function handleConditionalRemoves(projectName: string, templateConfig: TemplateConfig, answers: Record<string, any>): void;
21
+ /**
22
+ * Rename files based on template configuration
23
+ * Useful for files like .env.template -> .env that can't be committed to git
24
+ */
25
+ export declare function renameFiles(projectName: string, templateConfig: TemplateConfig): void;
21
26
  /**
22
27
  * Remove meta files that shouldn't be in the user's project
23
28
  */
@@ -1 +1 @@
1
- {"version":3,"file":"process-template.d.ts","sourceRoot":"","sources":["../src/process-template.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAwEtD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC3B,IAAI,CAoCN;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAgDzF;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC3B,IAAI,CAqBN;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,IAAI,CAczF"}
1
+ {"version":3,"file":"process-template.d.ts","sourceRoot":"","sources":["../src/process-template.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAwFtD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC3B,IAAI,CAoCN;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAwDzF;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC3B,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"}
@@ -4,6 +4,23 @@
4
4
  import fs from 'fs';
5
5
  import path from 'path';
6
6
  import chalk from 'chalk';
7
+ import { execSync } from 'child_process';
8
+ /**
9
+ * Get the latest version of an npm package
10
+ * Returns the version string (e.g., "1.2.3") or null if not found
11
+ */
12
+ function getLatestVersion(packageName) {
13
+ try {
14
+ const result = execSync(`npm view ${packageName} version`, {
15
+ encoding: 'utf8',
16
+ stdio: ['pipe', 'pipe', 'ignore']
17
+ });
18
+ return result.trim();
19
+ }
20
+ catch {
21
+ return null;
22
+ }
23
+ }
7
24
  /**
8
25
  * Escape special regex characters
9
26
  */
@@ -104,7 +121,7 @@ export function replaceVariables(projectName, templateConfig, answers) {
104
121
  /**
105
122
  * Adjust package.json after variable replacement
106
123
  * 1. Sets the package name to PROJECT_NAME
107
- * 2. Converts workspace:* dependencies to * for @vertesia and @llumiverse packages
124
+ * 2. Resolves workspace:* dependencies to actual latest versions
108
125
  */
109
126
  export function adjustPackageJson(projectName, answers) {
110
127
  console.log(chalk.blue('📝 Adjusting package.json...\n'));
@@ -122,21 +139,30 @@ export function adjustPackageJson(projectName, answers) {
122
139
  packageJson.name = newName;
123
140
  console.log(chalk.gray(` ✓ Set package name to "${newName}"`));
124
141
  }
125
- // 2. Replace workspace:* with * for @vertesia and @llumiverse dependencies
142
+ // 2. Replace workspace:* with actual latest versions
143
+ const internalScopes = ['@vertesia/', '@llumiverse/', '@dglabs/'];
126
144
  let workspaceReplacements = 0;
127
145
  ['dependencies', 'devDependencies', 'peerDependencies', 'optionalDependencies'].forEach(depType => {
128
146
  if (packageJson[depType]) {
129
147
  Object.keys(packageJson[depType]).forEach(pkgName => {
130
- if ((pkgName.startsWith('@vertesia/') || pkgName.startsWith('@llumiverse/')) &&
131
- packageJson[depType][pkgName] === 'workspace:*') {
132
- packageJson[depType][pkgName] = '*';
133
- workspaceReplacements++;
148
+ const isInternalPackage = internalScopes.some(scope => pkgName.startsWith(scope));
149
+ if (isInternalPackage && packageJson[depType][pkgName] === 'workspace:*') {
150
+ const latestVersion = getLatestVersion(pkgName);
151
+ if (latestVersion) {
152
+ packageJson[depType][pkgName] = `^${latestVersion}`;
153
+ workspaceReplacements++;
154
+ }
155
+ else {
156
+ // Fallback to 'latest' if we can't fetch the version
157
+ packageJson[depType][pkgName] = 'latest';
158
+ workspaceReplacements++;
159
+ }
134
160
  }
135
161
  });
136
162
  }
137
163
  });
138
164
  if (workspaceReplacements > 0) {
139
- console.log(chalk.gray(` ✓ Replaced ${workspaceReplacements} workspace:* dependencies with *`));
165
+ console.log(chalk.gray(` ✓ Resolved ${workspaceReplacements} workspace:* dependencies to latest versions`));
140
166
  }
141
167
  // Write back to file
142
168
  fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2) + '\n');
@@ -168,6 +194,27 @@ export function handleConditionalRemoves(projectName, templateConfig, answers) {
168
194
  }
169
195
  console.log();
170
196
  }
197
+ /**
198
+ * Rename files based on template configuration
199
+ * Useful for files like .env.template -> .env that can't be committed to git
200
+ */
201
+ export function renameFiles(projectName, templateConfig) {
202
+ if (!templateConfig.renameFiles)
203
+ return;
204
+ console.log(chalk.blue('📝 Renaming files...\n'));
205
+ for (const [source, destination] of Object.entries(templateConfig.renameFiles)) {
206
+ const sourcePath = path.join(projectName, source);
207
+ const destPath = path.join(projectName, destination);
208
+ if (fs.existsSync(sourcePath)) {
209
+ fs.renameSync(sourcePath, destPath);
210
+ console.log(chalk.gray(` ✓ ${source} → ${destination}`));
211
+ }
212
+ else {
213
+ console.log(chalk.yellow(` ⚠️ File not found: ${source} (skipping rename)`));
214
+ }
215
+ }
216
+ console.log();
217
+ }
171
218
  /**
172
219
  * Remove meta files that shouldn't be in the user's project
173
220
  */
@@ -1 +1 @@
1
- {"version":3,"file":"process-template.js","sourceRoot":"","sources":["../src/process-template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process-template.js","sourceRoot":"","sources":["../src/process-template.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC;;;GAGG;AACH,SAAS,gBAAgB,CAAC,WAAmB;IAC3C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,WAAW,UAAU,EAAE;YACzD,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;SAClC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,QAAgB;IAClC,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9D,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,OAAe,EAAE,OAA4B;IACtE,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,MAAM,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC;QACjC,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACpF,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,OAAe,EAAE,OAA4B;IACtE,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,iDAAiD;QACjD,8DAA8D;QAC9D,0DAA0D;QAC1D,MAAM,aAAa,GAAG,IAAI,MAAM,CAC9B,qBAAqB,GAAG,sCAAsC,EAC9D,IAAI,CACL,CAAC;QACF,IAAI,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;YACjC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;gBAC3E,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC;YACtD,CAAC,CAAC,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;QAED,+CAA+C;QAC/C,qDAAqD;QACrD,gDAAgD;QAChD,MAAM,eAAe,GAAG,IAAI,MAAM,CAAC,aAAa,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC;QAC/D,IAAI,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;YACnC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1D,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,WAAmB,EACnB,cAA8B,EAC9B,OAA4B;IAE5B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAEtD,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAE9C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,0BAA0B,IAAI,aAAa,CAAC,CAAC,CAAC;YACvE,SAAS;QACX,CAAC;QAED,IAAI,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChD,IAAI,QAAQ,GAAG,KAAK,CAAC;QAErB,iDAAiD;QACjD,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACnD,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YACzB,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACnD,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YACzB,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC7B,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB,EAAE,OAA4B;IACjF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAE1D,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAE/D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,qDAAqD,CAAC,CAAC,CAAC;QACjF,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;QAEzE,sCAAsC;QACtC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,IAAI,WAAW,CAAC;QACpD,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACjC,WAAW,CAAC,IAAI,GAAG,OAAO,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,OAAO,GAAG,CAAC,CAAC,CAAC;QACnE,CAAC;QAED,qDAAqD;QACrD,MAAM,cAAc,GAAG,CAAC,YAAY,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;QAClE,IAAI,qBAAqB,GAAG,CAAC,CAAC;QAE9B,CAAC,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,sBAAsB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAChG,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBAClD,MAAM,iBAAiB,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;oBAClF,IAAI,iBAAiB,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,aAAa,EAAE,CAAC;wBACzE,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;wBAChD,IAAI,aAAa,EAAE,CAAC;4BAClB,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,aAAa,EAAE,CAAC;4BACpD,qBAAqB,EAAE,CAAC;wBAC1B,CAAC;6BAAM,CAAC;4BACN,qDAAqD;4BACrD,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC;4BACzC,qBAAqB,EAAE,CAAC;wBAC1B,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,qBAAqB,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,qBAAqB,8CAA8C,CAAC,CAAC,CAAC;QAChH,CAAC;QAED,qBAAqB;QACrB,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAEjF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yCAAyC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;IACjI,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,WAAmB,EACnB,cAA8B,EAC9B,OAA4B;IAE5B,IAAI,CAAC,cAAc,CAAC,iBAAiB;QAAE,OAAO;IAE9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,CAAC;IAEvE,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACrF,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACvC,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAExC,IAAI,aAAa,EAAE,CAAC;YAClB,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;gBACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBAC9C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC5B,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,WAAmB,EAAE,cAA8B;IAC7E,IAAI,CAAC,cAAc,CAAC,WAAW;QAAE,OAAO;IAExC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAElD,KAAK,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAErD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,MAAM,MAAM,WAAW,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,0BAA0B,MAAM,oBAAoB,CAAC,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,cAA8B;IACjF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAE/C,MAAM,aAAa,GAAG,cAAc,CAAC,kBAAkB,IAAI,EAAE,CAAC;IAE9D,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC"}
@@ -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;;GAEG;AACH,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAmDlH"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD;;GAEG;AACH,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CA2FlH"}
package/lib/prompts.js CHANGED
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import prompts from 'prompts';
5
5
  import chalk from 'chalk';
6
- import { applyTransform } from './transforms.js';
6
+ import { applyTransform, concatValues } from './transforms.js';
7
7
  /**
8
8
  * Prompt user for configuration values
9
9
  */
@@ -23,6 +23,32 @@ export async function promptUser(projectName, templateConfig) {
23
23
  if (typeof prompt.initial === 'string') {
24
24
  prompt.initial = prompt.initial.replace(/\$\{PROJECT_NAME\}/g, projectName);
25
25
  }
26
+ // Convert validate string to function
27
+ // Can be either a regex pattern (e.g., "^[a-z]+$") or a function string (e.g., "(v) => v.length > 0")
28
+ if (typeof prompt.validate === 'string') {
29
+ const validateStr = prompt.validate;
30
+ if (validateStr.includes('=>') || validateStr.includes('function')) {
31
+ // It's a function string - evaluate it
32
+ try {
33
+ prompt.validate = eval(validateStr);
34
+ }
35
+ catch {
36
+ // If eval fails, remove the validator
37
+ delete prompt.validate;
38
+ }
39
+ }
40
+ else {
41
+ // It's a regex pattern
42
+ try {
43
+ const regex = new RegExp(validateStr);
44
+ prompt.validate = (value) => regex.test(value) || `Must match pattern: ${validateStr}`;
45
+ }
46
+ catch {
47
+ // If regex is invalid, remove the validator
48
+ delete prompt.validate;
49
+ }
50
+ }
51
+ }
26
52
  return prompt;
27
53
  });
28
54
  const answers = await prompts(processedPrompts, {
@@ -36,16 +62,33 @@ export async function promptUser(projectName, templateConfig) {
36
62
  }
37
63
  // Process derived variables
38
64
  if (templateConfig.derived) {
39
- for (const [targetName, config] of Object.entries(templateConfig.derived)) {
40
- const sourceValue = answers[config.from];
41
- if (sourceValue !== undefined) {
42
- try {
43
- answers[targetName] = applyTransform(String(sourceValue), config.transform);
65
+ for (const [targetName, derivedConfig] of Object.entries(templateConfig.derived)) {
66
+ try {
67
+ if (derivedConfig.transform === 'concat') {
68
+ // Handle concat transform with multiple source fields
69
+ const sourceFields = Array.isArray(derivedConfig.from) ? derivedConfig.from : [derivedConfig.from];
70
+ const values = sourceFields.map(field => {
71
+ const value = answers[field];
72
+ if (value === undefined) {
73
+ throw new Error(`Source field "${field}" not found in answers`);
74
+ }
75
+ return String(value);
76
+ });
77
+ answers[targetName] = concatValues(values, derivedConfig.separator || '');
44
78
  }
45
- catch (error) {
46
- throw new Error(`Failed to derive ${targetName} from ${config.from}: ${error instanceof Error ? error.message : 'Unknown error'}`);
79
+ else {
80
+ // Handle single-source transforms
81
+ const sourceField = Array.isArray(derivedConfig.from) ? derivedConfig.from[0] : derivedConfig.from;
82
+ const sourceValue = answers[sourceField];
83
+ if (sourceValue !== undefined) {
84
+ answers[targetName] = applyTransform(String(sourceValue), derivedConfig.transform);
85
+ }
47
86
  }
48
87
  }
88
+ catch (error) {
89
+ const fromStr = Array.isArray(derivedConfig.from) ? derivedConfig.from.join(', ') : derivedConfig.from;
90
+ throw new Error(`Failed to derive ${targetName} from ${fromStr}: ${error instanceof Error ? error.message : 'Unknown error'}`);
91
+ }
49
92
  }
50
93
  }
51
94
  console.log(); // Empty line after prompts
@@ -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,MAAM,iBAAiB,CAAC;AAEjD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,WAAmB,EAAE,cAA8B;IAClF,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAEzD,kFAAkF;IAClF,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACtD,MAAM,MAAM,GAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;QAE7B,8DAA8D;QAC9D,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACnC,MAAM,CAAC,OAAO,GAAG,WAAW,CAAC;QAC/B,CAAC;QAED,4CAA4C;QAC5C,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;QAC9E,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,gBAAgB,EAAE;QAC9C,QAAQ,EAAE,GAAG,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;KACF,CAAC,CAAC;IAEH,qCAAqC;IACrC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,4BAA4B;IAC5B,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1E,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,IAAI,CAAC;oBACH,OAAO,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC9E,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,IAAI,KAAK,CAAC,oBAAoB,UAAU,SAAS,MAAM,CAAC,IAAI,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;gBACrI,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,2BAA2B;IAC1C,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"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"}
@@ -14,12 +14,20 @@ export interface TemplateConfig {
14
14
  version: string;
15
15
  /** Optional human-readable description of the template */
16
16
  description?: string;
17
+ /** Optional package manager to force (skips selection prompt) */
18
+ packageManager?: 'pnpm' | 'npm';
17
19
  /** Array of prompts to ask the user during installation */
18
20
  prompts: PromptConfig[];
19
21
  /** Array of file paths where {{VARIABLE}} replacement should occur */
20
22
  files: string[];
21
23
  /** Optional array of file paths to remove after installation (e.g., template.config.json) */
22
24
  removeAfterInstall?: string[];
25
+ /**
26
+ * Optional file renaming after variable replacement
27
+ * Format: { "source": "destination" }
28
+ * Example: { ".env.template": ".env" }
29
+ */
30
+ renameFiles?: Record<string, string>;
23
31
  /**
24
32
  * Optional conditional file removal based on user answers
25
33
  * Format: { "VARIABLE_NAME": { "value": ["files", "to", "remove"] } }
@@ -29,19 +37,63 @@ export interface TemplateConfig {
29
37
  /**
30
38
  * Optional derived variables computed from user answers
31
39
  * Format: { "NEW_VAR": { "from": "SOURCE_VAR", "transform": "pascalCase" } }
32
- * Supported transforms: "pascalCase", "camelCase", "kebabCase", "snakeCase", "titleCase", "upperCase", "lowerCase"
40
+ * Supported transforms: "pascalCase", "camelCase", "kebabCase", "snakeCase", "titleCase", "upperCase", "lowerCase", "concat"
33
41
  * Example: { "ComponentName": { "from": "PROJECT_NAME", "transform": "pascalCase" } }
42
+ * For concat: { "SERVICE_NAME": { "from": ["ORG", "NAME"], "transform": "concat", "separator": "_" } }
34
43
  */
35
44
  derived?: Record<string, DerivedVariable>;
45
+ /**
46
+ * Optional pre-install hooks to run before dependencies are installed
47
+ * Used for CLI authentication, registry setup, etc.
48
+ */
49
+ preInstall?: PreInstallConfig;
50
+ /**
51
+ * Optional post-install hooks to run after the project is created
52
+ * Used for additional setup commands, etc.
53
+ */
54
+ postInstall?: PostInstallConfig;
55
+ }
56
+ /**
57
+ * Configuration for pre-install hooks (runs before npm install)
58
+ */
59
+ export interface PreInstallConfig {
60
+ /** Commands to run before installation */
61
+ commands: PostInstallCommand[];
62
+ /** CLI package to install globally before running commands (e.g., "@vertesia/cli") */
63
+ cliPackage?: string;
36
64
  }
37
65
  /**
38
66
  * Configuration for a derived variable computed from user input
39
67
  */
40
68
  export interface DerivedVariable {
41
- /** Source variable name to derive from */
42
- from: string;
43
- /** Transformation to apply: "pascalCase", "camelCase", "kebabCase", "snakeCase", "titleCase", "upperCase", "lowerCase" */
69
+ /** Source variable name(s) to derive from. Can be a single string or array of strings for concat transform */
70
+ from: string | string[];
71
+ /** Transformation to apply: "pascalCase", "camelCase", "kebabCase", "snakeCase", "titleCase", "upperCase", "lowerCase", "concat" */
44
72
  transform: string;
73
+ /** Separator for concat transform (default: "") */
74
+ separator?: string;
75
+ }
76
+ /**
77
+ * Configuration for a post-install command
78
+ */
79
+ export interface PostInstallCommand {
80
+ /** Display name for the command */
81
+ name: string;
82
+ /** Command to execute */
83
+ command: string;
84
+ /** If true, prompt user before running and allow skipping */
85
+ optional?: boolean;
86
+ /** Prompt message to show if optional (default: "Do you want to run {name}?") */
87
+ prompt?: string;
88
+ }
89
+ /**
90
+ * Configuration for post-install hooks
91
+ */
92
+ export interface PostInstallConfig {
93
+ /** Commands to run after installation */
94
+ commands: PostInstallCommand[];
95
+ /** CLI package to install globally before running commands (e.g., "@vertesia/cli") */
96
+ cliPackage?: string;
45
97
  }
46
98
  /**
47
99
  * Configuration for a single prompt shown to the user
@@ -1 +1 @@
1
- {"version":3,"file":"template-config.d.ts","sourceRoot":"","sources":["../src/template-config.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,cAAc;IAC7B,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAEhB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,2DAA2D;IAC3D,OAAO,EAAE,YAAY,EAAE,CAAC;IAExB,sEAAsE;IACtE,KAAK,EAAE,MAAM,EAAE,CAAC;IAEhB,6FAA6F;IAC7F,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE9B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAE7D;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IAEb,0HAA0H;IAC1H,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IAEb,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IAEb,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAEpC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAatE"}
1
+ {"version":3,"file":"template-config.d.ts","sourceRoot":"","sources":["../src/template-config.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,cAAc;IAC7B,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAEhB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,iEAAiE;IACjE,cAAc,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAEhC,2DAA2D;IAC3D,OAAO,EAAE,YAAY,EAAE,CAAC;IAExB,sEAAsE;IACtE,KAAK,EAAE,MAAM,EAAE,CAAC;IAEhB,6FAA6F;IAC7F,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE9B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAErC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAE7D;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAE1C;;;OAGG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAE9B;;;OAGG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAE/B,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,8GAA8G;IAC9G,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,oIAAoI;IACpI,SAAS,EAAE,MAAM,CAAC;IAElB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IAEb,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;IAEhB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,yCAAyC;IACzC,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAE/B,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IAEb,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IAEb,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAEpC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAatE"}
@@ -1 +1 @@
1
- {"version":3,"file":"template-config.js","sourceRoot":"","sources":["../src/template-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAoG5C;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAErE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,0CAA0C,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,2CAA2C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IACzH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"template-config.js","sourceRoot":"","sources":["../src/template-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAqK5C;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAErE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,0CAA0C,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,2CAA2C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IACzH,CAAC;AACH,CAAC"}
@@ -30,4 +30,8 @@ export declare function toTitleCase(str: string): string;
30
30
  * Apply a transformation to a string value
31
31
  */
32
32
  export declare function applyTransform(value: string, transform: string): string;
33
+ /**
34
+ * Concatenate multiple values with a separator
35
+ */
36
+ export declare function concatValues(values: string[], separator?: string): string;
33
37
  //# sourceMappingURL=transforms.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transforms.d.ts","sourceRoot":"","sources":["../src/transforms.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI/C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAS/C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAmBvE"}
1
+ {"version":3,"file":"transforms.d.ts","sourceRoot":"","sources":["../src/transforms.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI/C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAS/C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAmBvE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,GAAE,MAAW,GAAG,MAAM,CAE7E"}
package/lib/transforms.js CHANGED
@@ -78,4 +78,10 @@ export function applyTransform(value, transform) {
78
78
  throw new Error(`Unknown transform: ${transform}`);
79
79
  }
80
80
  }
81
+ /**
82
+ * Concatenate multiple values with a separator
83
+ */
84
+ export function concatValues(values, separator = '') {
85
+ return values.join(separator);
86
+ }
81
87
  //# sourceMappingURL=transforms.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transforms.js","sourceRoot":"","sources":["../src/transforms.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,GAAG;SACP,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;SAC7D,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,OAAO,GAAG;SACP,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;SAC7D,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,OAAO,GAAG;SACP,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;SAC9B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,WAAW,EAAE,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,OAAO,GAAG;SACP,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;SAC9B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,WAAW,EAAE,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,OAAO,GAAG;SACP,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE;SACN,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SACvE,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,SAAiB;IAC7D,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,YAAY;YACf,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;QAC7B,KAAK,WAAW;YACd,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,KAAK,WAAW;YACd,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,KAAK,WAAW;YACd,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,KAAK,WAAW;YACd,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,KAAK,WAAW;YACd,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;QAC7B,KAAK,WAAW;YACd,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;QAC7B;YACE,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"transforms.js","sourceRoot":"","sources":["../src/transforms.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,GAAG;SACP,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;SAC7D,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,OAAO,GAAG;SACP,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;SAC7D,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,OAAO,GAAG;SACP,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;SAC9B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,WAAW,EAAE,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,OAAO,GAAG;SACP,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;SAC9B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,WAAW,EAAE,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,OAAO,GAAG;SACP,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE;SACN,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SACvE,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,SAAiB;IAC7D,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,YAAY;YACf,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;QAC7B,KAAK,WAAW;YACd,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,KAAK,WAAW;YACd,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,KAAK,WAAW;YACd,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,KAAK,WAAW;YACd,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,KAAK,WAAW;YACd,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;QAC7B,KAAK,WAAW;YACd,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;QAC7B;YACE,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAAgB,EAAE,YAAoB,EAAE;IACnE,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAChC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vertesia/create-plugin",
3
- "version": "0.80.0",
3
+ "version": "0.81.0",
4
4
  "description": "CLI to create Vertesia plugins: UI plugins or tool servers",
5
5
  "type": "module",
6
6
  "bin": {