@diagramers/cli 1.0.12 → 1.0.13

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.
@@ -12,5 +12,7 @@ export declare class ProjectInitializer {
12
12
  private updatePackageJson;
13
13
  private createGitignore;
14
14
  private createReadme;
15
+ private makeScriptsExecutable;
16
+ private processTemplate;
15
17
  }
16
18
  //# sourceMappingURL=project-initializer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-initializer.d.ts","sourceRoot":"","sources":["../../src/services/project-initializer.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,aAAa,CAOnB;;IAMI,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;YAiC5D,sBAAsB;YAetB,iBAAiB;YAwCjB,OAAO;YAcP,iBAAiB;YAiBjB,eAAe;YAyDf,YAAY;CAqE3B"}
1
+ {"version":3,"file":"project-initializer.d.ts","sourceRoot":"","sources":["../../src/services/project-initializer.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,aAAa,CASnB;;IAMI,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;YAuC5D,sBAAsB;YAetB,iBAAiB;YAwCjB,OAAO;YAcP,iBAAiB;YA8BjB,eAAe;YAyDf,YAAY;YAsEZ,qBAAqB;YAoBrB,eAAe;CAsB9B"}
@@ -45,7 +45,9 @@ const child_process_1 = require("child_process");
45
45
  class ProjectInitializer {
46
46
  constructor() {
47
47
  this.templateFiles = [
48
+ 'scripts',
48
49
  'src/**/*',
50
+ 'scripts/**/*',
49
51
  'package.json',
50
52
  'tsconfig.json',
51
53
  'webpack.config.js',
@@ -73,6 +75,10 @@ class ProjectInitializer {
73
75
  await this.createGitignore(projectPath);
74
76
  // Create README
75
77
  await this.createReadme(projectPath, projectName, templateType);
78
+ // Make scripts executable
79
+ await this.makeScriptsExecutable(projectPath);
80
+ // Process template for project name (update database names, etc.)
81
+ await this.processTemplate(projectPath, projectName);
76
82
  // Clean up the temporary installation
77
83
  await this.cleanup(projectPath);
78
84
  console.log(chalk_1.default.green(`✅ Project structure created successfully`));
@@ -149,6 +155,17 @@ class ProjectInitializer {
149
155
  if (packageJson.bin) {
150
156
  delete packageJson.bin;
151
157
  }
158
+ // Ensure CLI scripts are included
159
+ if (!packageJson.scripts) {
160
+ packageJson.scripts = {};
161
+ }
162
+ // Add CLI scripts if they don't exist
163
+ if (!packageJson.scripts['generate:module']) {
164
+ packageJson.scripts['generate:module'] = './scripts/generate-module.sh';
165
+ }
166
+ if (!packageJson.scripts['cli']) {
167
+ packageJson.scripts['cli'] = './scripts/cli-commands.sh';
168
+ }
152
169
  await fs.writeJson(packageJsonPath, packageJson, { spaces: 2 });
153
170
  }
154
171
  }
@@ -275,6 +292,44 @@ MIT
275
292
  `;
276
293
  await fs.writeFile(path.join(projectPath, 'README.md'), readmeContent);
277
294
  }
295
+ async makeScriptsExecutable(projectPath) {
296
+ const scriptsDir = path.join(projectPath, 'scripts');
297
+ if (await fs.pathExists(scriptsDir)) {
298
+ try {
299
+ const scripts = await fs.readdir(scriptsDir);
300
+ for (const script of scripts) {
301
+ if (script.endsWith('.sh')) {
302
+ const scriptPath = path.join(scriptsDir, script);
303
+ // Make script executable (chmod 755)
304
+ await fs.chmod(scriptPath, 0o755);
305
+ console.log(chalk_1.default.blue(`🔧 Made executable: ${script}`));
306
+ }
307
+ }
308
+ }
309
+ catch (error) {
310
+ console.log(chalk_1.default.yellow(`⚠️ Warning: Could not make scripts executable: ${error.message}`));
311
+ }
312
+ }
313
+ }
314
+ async processTemplate(projectPath, projectName) {
315
+ try {
316
+ console.log(chalk_1.default.blue(`🔧 Processing template for project: ${projectName}`));
317
+ // Change to project directory
318
+ const originalCwd = process.cwd();
319
+ process.chdir(projectPath);
320
+ // Run the template processor
321
+ (0, child_process_1.execSync)(`npm run cli process:template ${projectName}`, {
322
+ stdio: 'inherit'
323
+ });
324
+ // Change back to original directory
325
+ process.chdir(originalCwd);
326
+ console.log(chalk_1.default.green(`✅ Template processed successfully`));
327
+ }
328
+ catch (error) {
329
+ console.log(chalk_1.default.yellow(`⚠️ Warning: Could not process template: ${error.message}`));
330
+ console.log(chalk_1.default.yellow(` You can manually run: npm run cli process:template ${projectName}`));
331
+ }
332
+ }
278
333
  }
279
334
  exports.ProjectInitializer = ProjectInitializer;
280
335
  //# sourceMappingURL=project-initializer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-initializer.js","sourceRoot":"","sources":["../../src/services/project-initializer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,2CAA6B;AAC7B,2CAA6B;AAC7B,kDAA0B;AAC1B,iDAAyC;AAOzC,MAAa,kBAAkB;IAU7B;QATQ,kBAAa,GAAa;YAChC,UAAU;YACV,cAAc;YACd,eAAe;YACf,mBAAmB;YACnB,SAAS;YACT,YAAY;SACb,CAAC;QAGA,qDAAqD;IACvD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,WAAmB,EAAE,OAAoB;QACxD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;QAC7D,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;QAE/C,4CAA4C;QAC5C,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,qBAAqB,WAAW,iBAAiB,CAAC,CAAC;QACrE,CAAC;QAED,2BAA2B;QAC3B,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAEhC,2CAA2C;QAC3C,MAAM,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAE7D,iDAAiD;QACjD,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAExD,wCAAwC;QACxC,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;QAErE,oBAAoB;QACpB,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAExC,gBAAgB;QAChB,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;QAEhE,sCAAsC;QACtC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAEhC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAC;IACvE,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,WAAmB,EAAE,YAAoB;QAC5E,MAAM,WAAW,GAAG,eAAe,YAAY,EAAE,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,iBAAiB,WAAW,cAAc,CAAC,CAAC,CAAC;QAEpE,IAAI,CAAC;YACH,2CAA2C;YAC3C,IAAA,wBAAQ,EAAC,eAAe,WAAW,YAAY,EAAE;gBAC/C,GAAG,EAAE,WAAW;gBAChB,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,qBAAqB,WAAW,aAAa,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,WAAmB,EAAE,YAAoB;QACvE,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;QAE5F,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,eAAe,YAAY,oCAAoC,CAAC,CAAC;QACnF,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;oBAC/B,GAAG,EAAE,eAAe;oBACpB,MAAM,EAAE,CAAC,iBAAiB,EAAE,SAAS,EAAE,SAAS,CAAC;oBACjD,KAAK,EAAE,KAAK;iBACb,CAAC,CAAC;gBAEH,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;oBACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;oBAE9C,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;wBACpC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBAEvC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;4BACvB,iBAAiB;4BACjB,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;4BAC7B,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;wBACtC,CAAC;6BAAM,CAAC;4BACN,YAAY;4BACZ,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;4BAC3C,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;wBACtC,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,4CAA4C;gBAC5C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,wCAAwC,OAAO,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAClG,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,WAAmB;QACvC,oCAAoC;QACpC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAC/D,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACzC,MAAM,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;QAED,wCAAwC;QACxC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;QACpE,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACzC,MAAM,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,WAAmB,EAAE,WAAmB,EAAE,YAAoB;QAC5F,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAE/D,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;YACvD,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC;YAC/B,WAAW,CAAC,WAAW,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,aAAa,WAAW,EAAE,CAAC;YAElF,+DAA+D;YAC/D,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC;gBACpB,OAAO,WAAW,CAAC,GAAG,CAAC;YACzB,CAAC;YAED,MAAM,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,WAAmB;QAC/C,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmD5B,CAAC,IAAI,EAAE,CAAC;QAEL,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAC7E,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,WAAmB,EAAE,WAAmB,EAAE,YAAoB;QACvF,MAAM,aAAa,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QACjD,MAAM,aAAa,GAAG,KAAK,WAAW;;YAE9B,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DvB,CAAC;QAEE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,aAAa,CAAC,CAAC;IACzE,CAAC;CACF;AAnQD,gDAmQC"}
1
+ {"version":3,"file":"project-initializer.js","sourceRoot":"","sources":["../../src/services/project-initializer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@diagramers/cli",
3
- "version": "1.0.12",
3
+ "version": "1.0.13",
4
4
  "description": "Diagramers CLI - Command-line tools for managing Diagramers projects",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -11,7 +11,9 @@ export interface InitOptions {
11
11
 
12
12
  export class ProjectInitializer {
13
13
  private templateFiles: string[] = [
14
+ 'scripts',
14
15
  'src/**/*',
16
+ 'scripts/**/*',
15
17
  'package.json',
16
18
  'tsconfig.json',
17
19
  'webpack.config.js',
@@ -50,6 +52,12 @@ export class ProjectInitializer {
50
52
  // Create README
51
53
  await this.createReadme(projectPath, projectName, templateType);
52
54
 
55
+ // Make scripts executable
56
+ await this.makeScriptsExecutable(projectPath);
57
+
58
+ // Process template for project name (update database names, etc.)
59
+ await this.processTemplate(projectPath, projectName);
60
+
53
61
  // Clean up the temporary installation
54
62
  await this.cleanup(projectPath);
55
63
 
@@ -137,6 +145,19 @@ export class ProjectInitializer {
137
145
  if (packageJson.bin) {
138
146
  delete packageJson.bin;
139
147
  }
148
+
149
+ // Ensure CLI scripts are included
150
+ if (!packageJson.scripts) {
151
+ packageJson.scripts = {};
152
+ }
153
+
154
+ // Add CLI scripts if they don't exist
155
+ if (!packageJson.scripts['generate:module']) {
156
+ packageJson.scripts['generate:module'] = './scripts/generate-module.sh';
157
+ }
158
+ if (!packageJson.scripts['cli']) {
159
+ packageJson.scripts['cli'] = './scripts/cli-commands.sh';
160
+ }
140
161
 
141
162
  await fs.writeJson(packageJsonPath, packageJson, { spaces: 2 });
142
163
  }
@@ -268,4 +289,47 @@ MIT
268
289
 
269
290
  await fs.writeFile(path.join(projectPath, 'README.md'), readmeContent);
270
291
  }
292
+
293
+ private async makeScriptsExecutable(projectPath: string): Promise<void> {
294
+ const scriptsDir = path.join(projectPath, 'scripts');
295
+
296
+ if (await fs.pathExists(scriptsDir)) {
297
+ try {
298
+ const scripts = await fs.readdir(scriptsDir);
299
+ for (const script of scripts) {
300
+ if (script.endsWith('.sh')) {
301
+ const scriptPath = path.join(scriptsDir, script);
302
+ // Make script executable (chmod 755)
303
+ await fs.chmod(scriptPath, 0o755);
304
+ console.log(chalk.blue(`🔧 Made executable: ${script}`));
305
+ }
306
+ }
307
+ } catch (error: any) {
308
+ console.log(chalk.yellow(`⚠️ Warning: Could not make scripts executable: ${error.message}`));
309
+ }
310
+ }
311
+ }
312
+
313
+ private async processTemplate(projectPath: string, projectName: string): Promise<void> {
314
+ try {
315
+ console.log(chalk.blue(`🔧 Processing template for project: ${projectName}`));
316
+
317
+ // Change to project directory
318
+ const originalCwd = process.cwd();
319
+ process.chdir(projectPath);
320
+
321
+ // Run the template processor
322
+ execSync(`npm run cli process:template ${projectName}`, {
323
+ stdio: 'inherit'
324
+ });
325
+
326
+ // Change back to original directory
327
+ process.chdir(originalCwd);
328
+
329
+ console.log(chalk.green(`✅ Template processed successfully`));
330
+ } catch (error: any) {
331
+ console.log(chalk.yellow(`⚠️ Warning: Could not process template: ${error.message}`));
332
+ console.log(chalk.yellow(` You can manually run: npm run cli process:template ${projectName}`));
333
+ }
334
+ }
271
335
  }