@digitaldefiance/express-suite-starter 2.1.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/README.md +342 -0
  2. package/config/package-groups.json +83 -0
  3. package/config/presets/minimal.json +32 -0
  4. package/config/presets/standard.json +70 -0
  5. package/dist/scripts/addScriptsToPackageJson.d.ts +7 -0
  6. package/dist/scripts/addScriptsToPackageJson.d.ts.map +1 -0
  7. package/dist/scripts/addScriptsToPackageJson.js +69 -0
  8. package/dist/scripts/addScriptsToPackageJson.js.map +1 -0
  9. package/dist/scripts/albatross.d.ts +4 -0
  10. package/dist/scripts/albatross.d.ts.map +1 -0
  11. package/dist/scripts/albatross.js +36 -0
  12. package/dist/scripts/albatross.js.map +1 -0
  13. package/dist/scripts/fsUtils.d.ts +15 -0
  14. package/dist/scripts/fsUtils.d.ts.map +1 -0
  15. package/dist/scripts/fsUtils.js +99 -0
  16. package/dist/scripts/fsUtils.js.map +1 -0
  17. package/dist/scripts/generate-monorepo.d.ts +2 -0
  18. package/dist/scripts/generate-monorepo.d.ts.map +1 -0
  19. package/dist/scripts/generate-monorepo.js +227 -0
  20. package/dist/scripts/generate-monorepo.js.map +1 -0
  21. package/dist/scripts/licensePrompt.d.ts +5 -0
  22. package/dist/scripts/licensePrompt.d.ts.map +1 -0
  23. package/dist/scripts/licensePrompt.js +63 -0
  24. package/dist/scripts/licensePrompt.js.map +1 -0
  25. package/dist/scripts/monorepoConfig.d.ts +18 -0
  26. package/dist/scripts/monorepoConfig.d.ts.map +1 -0
  27. package/dist/scripts/monorepoConfig.js +83 -0
  28. package/dist/scripts/monorepoConfig.js.map +1 -0
  29. package/dist/scripts/nodeSetup.d.ts +5 -0
  30. package/dist/scripts/nodeSetup.d.ts.map +1 -0
  31. package/dist/scripts/nodeSetup.js +32 -0
  32. package/dist/scripts/nodeSetup.js.map +1 -0
  33. package/dist/scripts/passwordObfuscator.d.ts +14 -0
  34. package/dist/scripts/passwordObfuscator.d.ts.map +1 -0
  35. package/dist/scripts/passwordObfuscator.js +52 -0
  36. package/dist/scripts/passwordObfuscator.js.map +1 -0
  37. package/dist/scripts/shellUtils.d.ts +11 -0
  38. package/dist/scripts/shellUtils.d.ts.map +1 -0
  39. package/dist/scripts/shellUtils.js +28 -0
  40. package/dist/scripts/shellUtils.js.map +1 -0
  41. package/dist/scripts/templateUtils.d.ts +6 -0
  42. package/dist/scripts/templateUtils.d.ts.map +1 -0
  43. package/dist/scripts/templateUtils.js +15 -0
  44. package/dist/scripts/templateUtils.js.map +1 -0
  45. package/dist/src/cli/logger.d.ts +15 -0
  46. package/dist/src/cli/logger.d.ts.map +1 -0
  47. package/dist/src/cli/logger.js +48 -0
  48. package/dist/src/cli/logger.js.map +1 -0
  49. package/dist/src/cli.d.ts +6 -0
  50. package/dist/src/cli.d.ts.map +1 -0
  51. package/dist/src/cli.js +12 -0
  52. package/dist/src/cli.js.map +1 -0
  53. package/dist/src/core/config-schema.d.ts +3 -0
  54. package/dist/src/core/config-schema.d.ts.map +1 -0
  55. package/dist/src/core/config-schema.js +20 -0
  56. package/dist/src/core/config-schema.js.map +1 -0
  57. package/dist/src/core/dry-run-executor.d.ts +15 -0
  58. package/dist/src/core/dry-run-executor.d.ts.map +1 -0
  59. package/dist/src/core/dry-run-executor.js +86 -0
  60. package/dist/src/core/dry-run-executor.js.map +1 -0
  61. package/dist/src/core/interfaces/checkpoint.interface.d.ts +6 -0
  62. package/dist/src/core/interfaces/checkpoint.interface.d.ts.map +1 -0
  63. package/dist/src/core/interfaces/checkpoint.interface.js +3 -0
  64. package/dist/src/core/interfaces/checkpoint.interface.js.map +1 -0
  65. package/dist/src/core/interfaces/command-options.interface.d.ts +5 -0
  66. package/dist/src/core/interfaces/command-options.interface.d.ts.map +1 -0
  67. package/dist/src/core/interfaces/command-options.interface.js +3 -0
  68. package/dist/src/core/interfaces/command-options.interface.js.map +1 -0
  69. package/dist/src/core/interfaces/devcontainer-config.interface.d.ts +6 -0
  70. package/dist/src/core/interfaces/devcontainer-config.interface.d.ts.map +1 -0
  71. package/dist/src/core/interfaces/devcontainer-config.interface.js +3 -0
  72. package/dist/src/core/interfaces/devcontainer-config.interface.js.map +1 -0
  73. package/dist/src/core/interfaces/dry-run.interface.d.ts +16 -0
  74. package/dist/src/core/interfaces/dry-run.interface.d.ts.map +1 -0
  75. package/dist/src/core/interfaces/dry-run.interface.js +3 -0
  76. package/dist/src/core/interfaces/dry-run.interface.js.map +1 -0
  77. package/dist/src/core/interfaces/generator-config.interface.d.ts +17 -0
  78. package/dist/src/core/interfaces/generator-config.interface.d.ts.map +1 -0
  79. package/dist/src/core/interfaces/generator-config.interface.js +3 -0
  80. package/dist/src/core/interfaces/generator-config.interface.js.map +1 -0
  81. package/dist/src/core/interfaces/generator-context.interface.d.ts +6 -0
  82. package/dist/src/core/interfaces/generator-context.interface.d.ts.map +1 -0
  83. package/dist/src/core/interfaces/generator-context.interface.js +3 -0
  84. package/dist/src/core/interfaces/generator-context.interface.js.map +1 -0
  85. package/dist/src/core/interfaces/index.d.ts +16 -0
  86. package/dist/src/core/interfaces/index.d.ts.map +1 -0
  87. package/dist/src/core/interfaces/index.js +32 -0
  88. package/dist/src/core/interfaces/index.js.map +1 -0
  89. package/dist/src/core/interfaces/node-config.interface.d.ts +5 -0
  90. package/dist/src/core/interfaces/node-config.interface.d.ts.map +1 -0
  91. package/dist/src/core/interfaces/node-config.interface.js +3 -0
  92. package/dist/src/core/interfaces/node-config.interface.js.map +1 -0
  93. package/dist/src/core/interfaces/nx-config.interface.d.ts +9 -0
  94. package/dist/src/core/interfaces/nx-config.interface.d.ts.map +1 -0
  95. package/dist/src/core/interfaces/nx-config.interface.js +3 -0
  96. package/dist/src/core/interfaces/nx-config.interface.js.map +1 -0
  97. package/dist/src/core/interfaces/package-config.interface.d.ts +6 -0
  98. package/dist/src/core/interfaces/package-config.interface.d.ts.map +1 -0
  99. package/dist/src/core/interfaces/package-config.interface.js +3 -0
  100. package/dist/src/core/interfaces/package-config.interface.js.map +1 -0
  101. package/dist/src/core/interfaces/package-resolution.interface.d.ts +21 -0
  102. package/dist/src/core/interfaces/package-resolution.interface.d.ts.map +1 -0
  103. package/dist/src/core/interfaces/package-resolution.interface.js +3 -0
  104. package/dist/src/core/interfaces/package-resolution.interface.js.map +1 -0
  105. package/dist/src/core/interfaces/plugin.interface.d.ts +21 -0
  106. package/dist/src/core/interfaces/plugin.interface.d.ts.map +1 -0
  107. package/dist/src/core/interfaces/plugin.interface.js +3 -0
  108. package/dist/src/core/interfaces/plugin.interface.js.map +1 -0
  109. package/dist/src/core/interfaces/project-config.interface.d.ts +7 -0
  110. package/dist/src/core/interfaces/project-config.interface.d.ts.map +1 -0
  111. package/dist/src/core/interfaces/project-config.interface.js +3 -0
  112. package/dist/src/core/interfaces/project-config.interface.js.map +1 -0
  113. package/dist/src/core/interfaces/step.interface.d.ts +9 -0
  114. package/dist/src/core/interfaces/step.interface.d.ts.map +1 -0
  115. package/dist/src/core/interfaces/step.interface.js +3 -0
  116. package/dist/src/core/interfaces/step.interface.js.map +1 -0
  117. package/dist/src/core/interfaces/template-config.interface.d.ts +5 -0
  118. package/dist/src/core/interfaces/template-config.interface.d.ts.map +1 -0
  119. package/dist/src/core/interfaces/template-config.interface.js +3 -0
  120. package/dist/src/core/interfaces/template-config.interface.js.map +1 -0
  121. package/dist/src/core/interfaces/validation-issue.interface.d.ts +18 -0
  122. package/dist/src/core/interfaces/validation-issue.interface.d.ts.map +1 -0
  123. package/dist/src/core/interfaces/validation-issue.interface.js +3 -0
  124. package/dist/src/core/interfaces/validation-issue.interface.js.map +1 -0
  125. package/dist/src/core/interfaces/validation-result.interface.d.ts +5 -0
  126. package/dist/src/core/interfaces/validation-result.interface.d.ts.map +1 -0
  127. package/dist/src/core/interfaces/validation-result.interface.js +3 -0
  128. package/dist/src/core/interfaces/validation-result.interface.js.map +1 -0
  129. package/dist/src/core/interfaces/workspace-config.interface.d.ts +8 -0
  130. package/dist/src/core/interfaces/workspace-config.interface.d.ts.map +1 -0
  131. package/dist/src/core/interfaces/workspace-config.interface.js +3 -0
  132. package/dist/src/core/interfaces/workspace-config.interface.js.map +1 -0
  133. package/dist/src/core/package-resolver.d.ts +10 -0
  134. package/dist/src/core/package-resolver.d.ts.map +1 -0
  135. package/dist/src/core/package-resolver.js +68 -0
  136. package/dist/src/core/package-resolver.js.map +1 -0
  137. package/dist/src/core/plugin-manager.d.ts +13 -0
  138. package/dist/src/core/plugin-manager.d.ts.map +1 -0
  139. package/dist/src/core/plugin-manager.js +48 -0
  140. package/dist/src/core/plugin-manager.js.map +1 -0
  141. package/dist/src/core/plugins/example-plugin.d.ts +3 -0
  142. package/dist/src/core/plugins/example-plugin.d.ts.map +1 -0
  143. package/dist/src/core/plugins/example-plugin.js +30 -0
  144. package/dist/src/core/plugins/example-plugin.js.map +1 -0
  145. package/dist/src/core/project-config-builder.d.ts +11 -0
  146. package/dist/src/core/project-config-builder.d.ts.map +1 -0
  147. package/dist/src/core/project-config-builder.js +77 -0
  148. package/dist/src/core/project-config-builder.js.map +1 -0
  149. package/dist/src/core/project-generator.d.ts +11 -0
  150. package/dist/src/core/project-generator.d.ts.map +1 -0
  151. package/dist/src/core/project-generator.js +29 -0
  152. package/dist/src/core/project-generator.js.map +1 -0
  153. package/dist/src/core/step-executor.d.ts +19 -0
  154. package/dist/src/core/step-executor.d.ts.map +1 -0
  155. package/dist/src/core/step-executor.js +130 -0
  156. package/dist/src/core/step-executor.js.map +1 -0
  157. package/dist/src/core/validators/config-validator.d.ts +10 -0
  158. package/dist/src/core/validators/config-validator.d.ts.map +1 -0
  159. package/dist/src/core/validators/config-validator.js +44 -0
  160. package/dist/src/core/validators/config-validator.js.map +1 -0
  161. package/dist/src/core/validators/post-generation-validator.d.ts +10 -0
  162. package/dist/src/core/validators/post-generation-validator.d.ts.map +1 -0
  163. package/dist/src/core/validators/post-generation-validator.js +219 -0
  164. package/dist/src/core/validators/post-generation-validator.js.map +1 -0
  165. package/dist/src/generate-monorepo.d.ts +3 -0
  166. package/dist/src/generate-monorepo.d.ts.map +1 -0
  167. package/dist/src/generate-monorepo.js +668 -0
  168. package/dist/src/generate-monorepo.js.map +1 -0
  169. package/dist/src/templates/engines/handlebars-engine.d.ts +7 -0
  170. package/dist/src/templates/engines/handlebars-engine.d.ts.map +1 -0
  171. package/dist/src/templates/engines/handlebars-engine.js +19 -0
  172. package/dist/src/templates/engines/handlebars-engine.js.map +1 -0
  173. package/dist/src/templates/engines/mustache-engine.d.ts +5 -0
  174. package/dist/src/templates/engines/mustache-engine.d.ts.map +1 -0
  175. package/dist/src/templates/engines/mustache-engine.js +44 -0
  176. package/dist/src/templates/engines/mustache-engine.js.map +1 -0
  177. package/dist/src/templates/index.d.ts +5 -0
  178. package/dist/src/templates/index.d.ts.map +1 -0
  179. package/dist/src/templates/index.js +21 -0
  180. package/dist/src/templates/index.js.map +1 -0
  181. package/dist/src/templates/interfaces/template-engine.interface.d.ts +4 -0
  182. package/dist/src/templates/interfaces/template-engine.interface.d.ts.map +1 -0
  183. package/dist/src/templates/interfaces/template-engine.interface.js +3 -0
  184. package/dist/src/templates/interfaces/template-engine.interface.js.map +1 -0
  185. package/dist/src/templates/template-engine-factory.d.ts +3 -0
  186. package/dist/src/templates/template-engine-factory.d.ts.map +1 -0
  187. package/dist/src/templates/template-engine-factory.js +9 -0
  188. package/dist/src/templates/template-engine-factory.js.map +1 -0
  189. package/dist/src/utils/diff-viewer.d.ts +15 -0
  190. package/dist/src/utils/diff-viewer.d.ts.map +1 -0
  191. package/dist/src/utils/diff-viewer.js +61 -0
  192. package/dist/src/utils/diff-viewer.js.map +1 -0
  193. package/dist/src/utils/doc-generator.d.ts +8 -0
  194. package/dist/src/utils/doc-generator.d.ts.map +1 -0
  195. package/dist/src/utils/doc-generator.js +174 -0
  196. package/dist/src/utils/doc-generator.js.map +1 -0
  197. package/dist/src/utils/shell-utils.d.ts +4 -0
  198. package/dist/src/utils/shell-utils.d.ts.map +1 -0
  199. package/dist/src/utils/shell-utils.js +32 -0
  200. package/dist/src/utils/shell-utils.js.map +1 -0
  201. package/dist/src/utils/system-check.d.ts +11 -0
  202. package/dist/src/utils/system-check.d.ts.map +1 -0
  203. package/dist/src/utils/system-check.js +71 -0
  204. package/dist/src/utils/system-check.js.map +1 -0
  205. package/dist/src/utils/template-renderer.d.ts +3 -0
  206. package/dist/src/utils/template-renderer.d.ts.map +1 -0
  207. package/dist/src/utils/template-renderer.js +127 -0
  208. package/dist/src/utils/template-renderer.js.map +1 -0
  209. package/package.json +51 -0
  210. package/templates/api/.env.example.mustache +57 -0
  211. package/templates/api-lib/README.md.mustache +23 -0
  212. package/templates/react-lib/README.md.mustache +23 -0
  213. package/templates/root/README.md.mustache +175 -0
  214. package/templates/root/reset.sh.mustache +25 -0
@@ -0,0 +1,19 @@
1
+ import { Step } from './interfaces/step.interface';
2
+ import { GeneratorContext } from './interfaces/generator-context.interface';
3
+ import { PluginManager } from './plugin-manager';
4
+ export declare class StepExecutor {
5
+ private steps;
6
+ private executedSteps;
7
+ private pluginManager;
8
+ constructor(pluginManager?: PluginManager);
9
+ addStep(step: Step): void;
10
+ execute(context: GeneratorContext, startAt?: string): Promise<void>;
11
+ rollback(context: GeneratorContext): Promise<void>;
12
+ private saveCheckpoint;
13
+ restoreCheckpoint(checkpointPath: string): Promise<{
14
+ executedSteps: string[];
15
+ state: Map<string, any>;
16
+ }>;
17
+ getStepNames(): string[];
18
+ }
19
+ //# sourceMappingURL=step-executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-executor.d.ts","sourceRoot":"","sources":["../../../src/core/step-executor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAE5E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,aAAa,CAAgB;gBAEzB,aAAa,CAAC,EAAE,aAAa;IAIzC,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAInB,OAAO,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqDnE,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;YAkB1C,cAAc;IAWtB,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,aAAa,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,CAAC;IAY9G,YAAY,IAAI,MAAM,EAAE;CAGzB"}
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.StepExecutor = void 0;
37
+ const logger_1 = require("../cli/logger");
38
+ const fs = __importStar(require("fs"));
39
+ const path = __importStar(require("path"));
40
+ const plugin_manager_1 = require("./plugin-manager");
41
+ class StepExecutor {
42
+ constructor(pluginManager) {
43
+ this.steps = [];
44
+ this.executedSteps = [];
45
+ this.pluginManager = pluginManager || new plugin_manager_1.PluginManager();
46
+ }
47
+ addStep(step) {
48
+ this.steps.push(step);
49
+ }
50
+ async execute(context, startAt) {
51
+ // Add plugin steps before main steps
52
+ const pluginSteps = this.pluginManager.getSteps();
53
+ const mainSteps = [...this.steps];
54
+ this.steps = [...pluginSteps, ...mainSteps];
55
+ const startIndex = startAt ? this.steps.findIndex(s => s.name === startAt) : 0;
56
+ if (startIndex === -1) {
57
+ throw new Error(`Invalid start step: ${startAt}`);
58
+ }
59
+ logger_1.Logger.header(`Starting generation (${this.steps.length - startIndex} steps)`);
60
+ // Before generation hook
61
+ await this.pluginManager.executeHook('beforeGeneration', context);
62
+ for (let i = startIndex; i < this.steps.length; i++) {
63
+ const step = this.steps[i];
64
+ if (step.skip?.(context)) {
65
+ logger_1.Logger.dim(`Skipping: ${step.description}`);
66
+ continue;
67
+ }
68
+ try {
69
+ // Before step hook
70
+ await this.pluginManager.executeHook('beforeStep', context, step.name);
71
+ logger_1.Logger.step(i + 1, this.steps.length, step.description);
72
+ await step.execute(context);
73
+ this.executedSteps.push(step.name);
74
+ await this.saveCheckpoint(context);
75
+ logger_1.Logger.success(`Completed: ${step.description}`);
76
+ // After step hook
77
+ await this.pluginManager.executeHook('afterStep', context, step.name);
78
+ }
79
+ catch (error) {
80
+ logger_1.Logger.error(`Failed: ${step.description}`);
81
+ // Error hook
82
+ await this.pluginManager.executeHook('onError', context, error);
83
+ throw error;
84
+ }
85
+ }
86
+ // After generation hook
87
+ await this.pluginManager.executeHook('afterGeneration', context);
88
+ logger_1.Logger.header('Generation complete!');
89
+ }
90
+ async rollback(context) {
91
+ logger_1.Logger.warning('Rolling back changes...');
92
+ for (let i = this.executedSteps.length - 1; i >= 0; i--) {
93
+ const stepName = this.executedSteps[i];
94
+ const step = this.steps.find(s => s.name === stepName);
95
+ if (step?.rollback) {
96
+ try {
97
+ logger_1.Logger.info(`Rolling back: ${step.description}`);
98
+ await step.rollback(context);
99
+ }
100
+ catch (error) {
101
+ logger_1.Logger.error(`Rollback failed for: ${step.description}`);
102
+ }
103
+ }
104
+ }
105
+ }
106
+ async saveCheckpoint(context) {
107
+ const checkpoint = {
108
+ executedSteps: this.executedSteps,
109
+ state: Array.from(context.state.entries()),
110
+ timestamp: new Date().toISOString(),
111
+ };
112
+ fs.mkdirSync(path.dirname(context.checkpointPath), { recursive: true });
113
+ fs.writeFileSync(context.checkpointPath, JSON.stringify(checkpoint, null, 2), 'utf-8');
114
+ }
115
+ async restoreCheckpoint(checkpointPath) {
116
+ if (!fs.existsSync(checkpointPath)) {
117
+ return { executedSteps: [], state: new Map() };
118
+ }
119
+ const checkpoint = JSON.parse(fs.readFileSync(checkpointPath, 'utf-8'));
120
+ return {
121
+ executedSteps: checkpoint.executedSteps,
122
+ state: new Map(checkpoint.state),
123
+ };
124
+ }
125
+ getStepNames() {
126
+ return this.steps.map(s => s.name);
127
+ }
128
+ }
129
+ exports.StepExecutor = StepExecutor;
130
+ //# sourceMappingURL=step-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-executor.js","sourceRoot":"","sources":["../../../src/core/step-executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { GeneratorConfig } from '../interfaces/generator-config.interface';
2
+ import { ValidationResult } from '../interfaces/validation-result.interface';
3
+ export declare class ConfigValidator {
4
+ static validateWorkspaceName(name: string): boolean;
5
+ static validatePrefix(prefix: string): boolean;
6
+ static validateNamespace(namespace: string): boolean;
7
+ static validateGitRepo(repo: string): boolean;
8
+ static validate(config: Partial<GeneratorConfig>): ValidationResult;
9
+ }
10
+ //# sourceMappingURL=config-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-validator.d.ts","sourceRoot":"","sources":["../../../../src/core/validators/config-validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAE7E,qBAAa,eAAe;IAC1B,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAInD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAI9C,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIpD,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAM7C,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,gBAAgB;CAoBpE"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ConfigValidator = void 0;
7
+ const validator_1 = __importDefault(require("validator"));
8
+ class ConfigValidator {
9
+ static validateWorkspaceName(name) {
10
+ return /^[a-zA-Z0-9-]+$/.test(name);
11
+ }
12
+ static validatePrefix(prefix) {
13
+ return /^[a-z0-9-]+$/.test(prefix);
14
+ }
15
+ static validateNamespace(namespace) {
16
+ return /^@[a-z0-9-]+$/.test(namespace);
17
+ }
18
+ static validateGitRepo(repo) {
19
+ if (!repo)
20
+ return true;
21
+ return validator_1.default.isURL(repo, { protocols: ['http', 'https', 'git', 'ssh'] }) ||
22
+ /^git@/.test(repo);
23
+ }
24
+ static validate(config) {
25
+ const errors = [];
26
+ if (config.workspace) {
27
+ if (!this.validateWorkspaceName(config.workspace.name)) {
28
+ errors.push('Invalid workspace name (letters, numbers, dashes only)');
29
+ }
30
+ if (!this.validatePrefix(config.workspace.prefix)) {
31
+ errors.push('Invalid prefix (lowercase letters, numbers, dashes only)');
32
+ }
33
+ if (!this.validateNamespace(config.workspace.namespace)) {
34
+ errors.push('Invalid namespace (must start with @, lowercase letters, numbers, dashes only)');
35
+ }
36
+ if (config.workspace.gitRepo && !this.validateGitRepo(config.workspace.gitRepo)) {
37
+ errors.push('Invalid git repository URL');
38
+ }
39
+ }
40
+ return { valid: errors.length === 0, errors };
41
+ }
42
+ }
43
+ exports.ConfigValidator = ConfigValidator;
44
+ //# sourceMappingURL=config-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-validator.js","sourceRoot":"","sources":["../../../../src/core/validators/config-validator.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAkC;AAIlC,MAAa,eAAe;IAC1B,MAAM,CAAC,qBAAqB,CAAC,IAAY;QACvC,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,MAAc;QAClC,OAAO,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,SAAiB;QACxC,OAAO,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,IAAY;QACjC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,OAAO,mBAAS,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,MAAgC;QAC9C,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvD,MAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;YACxE,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,MAAM,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;YAC1E,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxD,MAAM,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;YAChG,CAAC;YACD,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChF,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAChD,CAAC;CACF;AAvCD,0CAuCC"}
@@ -0,0 +1,10 @@
1
+ import { ValidationReport } from '../interfaces/validation-issue.interface';
2
+ import { GeneratorContext } from '../interfaces';
3
+ export declare class PostGenerationValidator {
4
+ static validate(context: GeneratorContext): Promise<ValidationReport>;
5
+ private static validatePackageJson;
6
+ private static validateDependencies;
7
+ private static validateBestPractices;
8
+ static printReport(report: ValidationReport): void;
9
+ }
10
+ //# sourceMappingURL=post-generation-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-generation-validator.d.ts","sourceRoot":"","sources":["../../../../src/core/validators/post-generation-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAmB,MAAM,0CAA0C,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAMjD,qBAAa,uBAAuB;WACrB,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA4B3E,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAuDlC,OAAO,CAAC,MAAM,CAAC,oBAAoB;IA2CnC,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAoCpC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;CA0CnD"}
@@ -0,0 +1,219 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.PostGenerationValidator = void 0;
37
+ const logger_1 = require("../../cli/logger");
38
+ const fs = __importStar(require("fs"));
39
+ const path = __importStar(require("path"));
40
+ class PostGenerationValidator {
41
+ static async validate(context) {
42
+ const issues = [];
43
+ const monorepoPath = context.state.get('monorepoPath');
44
+ logger_1.Logger.section('Running post-generation validation');
45
+ // Validate package.json exists
46
+ issues.push(...this.validatePackageJson(monorepoPath));
47
+ // Validate dependencies
48
+ issues.push(...this.validateDependencies(monorepoPath));
49
+ // Check for common issues
50
+ issues.push(...this.validateBestPractices(monorepoPath));
51
+ const summary = {
52
+ errors: issues.filter(i => i.type === 'error').length,
53
+ warnings: issues.filter(i => i.type === 'warning').length,
54
+ info: issues.filter(i => i.type === 'info').length,
55
+ };
56
+ return {
57
+ passed: summary.errors === 0,
58
+ issues,
59
+ summary,
60
+ };
61
+ }
62
+ static validatePackageJson(monorepoPath) {
63
+ const issues = [];
64
+ const packageJsonPath = path.join(monorepoPath, 'package.json');
65
+ if (!fs.existsSync(packageJsonPath)) {
66
+ issues.push({
67
+ type: 'error',
68
+ category: 'bestPractice',
69
+ message: 'package.json not found',
70
+ file: 'package.json',
71
+ });
72
+ return issues;
73
+ }
74
+ try {
75
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
76
+ if (!packageJson.name) {
77
+ issues.push({
78
+ type: 'warning',
79
+ category: 'bestPractice',
80
+ message: 'package.json missing name field',
81
+ file: 'package.json',
82
+ });
83
+ }
84
+ if (!packageJson.version) {
85
+ issues.push({
86
+ type: 'warning',
87
+ category: 'bestPractice',
88
+ message: 'package.json missing version field',
89
+ file: 'package.json',
90
+ });
91
+ }
92
+ if (!packageJson.scripts || Object.keys(packageJson.scripts).length === 0) {
93
+ issues.push({
94
+ type: 'warning',
95
+ category: 'bestPractice',
96
+ message: 'package.json has no scripts defined',
97
+ file: 'package.json',
98
+ });
99
+ }
100
+ }
101
+ catch (error) {
102
+ issues.push({
103
+ type: 'error',
104
+ category: 'bestPractice',
105
+ message: `Invalid package.json: ${error}`,
106
+ file: 'package.json',
107
+ });
108
+ }
109
+ return issues;
110
+ }
111
+ static validateDependencies(monorepoPath) {
112
+ const issues = [];
113
+ const packageJsonPath = path.join(monorepoPath, 'package.json');
114
+ if (!fs.existsSync(packageJsonPath))
115
+ return issues;
116
+ try {
117
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
118
+ const deps = { ...packageJson.dependencies, ...packageJson.devDependencies };
119
+ // Check for common conflicts
120
+ if (deps['react'] && deps['@types/react']) {
121
+ const reactVersion = deps['react'];
122
+ const typesVersion = deps['@types/react'];
123
+ if (reactVersion.includes('19') && !typesVersion.includes('19')) {
124
+ issues.push({
125
+ type: 'warning',
126
+ category: 'dependency',
127
+ message: 'React version mismatch with @types/react',
128
+ file: 'package.json',
129
+ fix: 'Update @types/react to match React version',
130
+ });
131
+ }
132
+ }
133
+ // Check for missing peer dependencies
134
+ if (deps['react'] && !deps['react-dom']) {
135
+ issues.push({
136
+ type: 'error',
137
+ category: 'dependency',
138
+ message: 'react-dom is required when using react',
139
+ file: 'package.json',
140
+ fix: 'yarn add react-dom',
141
+ });
142
+ }
143
+ }
144
+ catch (error) {
145
+ // Already handled in validatePackageJson
146
+ }
147
+ return issues;
148
+ }
149
+ static validateBestPractices(monorepoPath) {
150
+ const issues = [];
151
+ // Check for .gitignore
152
+ if (!fs.existsSync(path.join(monorepoPath, '.gitignore'))) {
153
+ issues.push({
154
+ type: 'warning',
155
+ category: 'bestPractice',
156
+ message: '.gitignore file not found',
157
+ fix: 'Create .gitignore to exclude node_modules, dist, etc.',
158
+ });
159
+ }
160
+ // Check for README
161
+ if (!fs.existsSync(path.join(monorepoPath, 'README.md'))) {
162
+ issues.push({
163
+ type: 'info',
164
+ category: 'bestPractice',
165
+ message: 'README.md not found',
166
+ fix: 'Add README.md to document your project',
167
+ });
168
+ }
169
+ // Check for LICENSE
170
+ if (!fs.existsSync(path.join(monorepoPath, 'LICENSE'))) {
171
+ issues.push({
172
+ type: 'info',
173
+ category: 'bestPractice',
174
+ message: 'LICENSE file not found',
175
+ fix: 'Add LICENSE file to specify project license',
176
+ });
177
+ }
178
+ return issues;
179
+ }
180
+ static printReport(report) {
181
+ if (report.passed && report.issues.length === 0) {
182
+ logger_1.Logger.success('Validation passed with no issues');
183
+ return;
184
+ }
185
+ logger_1.Logger.header('Validation Report');
186
+ logger_1.Logger.info(`Errors: ${report.summary.errors}`);
187
+ logger_1.Logger.info(`Warnings: ${report.summary.warnings}`);
188
+ logger_1.Logger.info(`Info: ${report.summary.info}`);
189
+ if (report.issues.length > 0) {
190
+ logger_1.Logger.section('Issues:');
191
+ report.issues.forEach(issue => {
192
+ const location = issue.file ? ` (${issue.file}${issue.line ? `:${issue.line}` : ''})` : '';
193
+ const message = `[${issue.category}] ${issue.message}${location}`;
194
+ switch (issue.type) {
195
+ case 'error':
196
+ logger_1.Logger.error(message);
197
+ break;
198
+ case 'warning':
199
+ logger_1.Logger.warning(message);
200
+ break;
201
+ case 'info':
202
+ logger_1.Logger.info(message);
203
+ break;
204
+ }
205
+ if (issue.fix) {
206
+ logger_1.Logger.dim(` Fix: ${issue.fix}`);
207
+ }
208
+ });
209
+ }
210
+ if (report.passed) {
211
+ logger_1.Logger.success('Validation passed (with warnings)');
212
+ }
213
+ else {
214
+ logger_1.Logger.error('Validation failed');
215
+ }
216
+ }
217
+ }
218
+ exports.PostGenerationValidator = PostGenerationValidator;
219
+ //# sourceMappingURL=post-generation-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-generation-validator.js","sourceRoot":"","sources":["../../../../src/core/validators/post-generation-validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ declare function main(): Promise<void>;
2
+ export { main };
3
+ //# sourceMappingURL=generate-monorepo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-monorepo.d.ts","sourceRoot":"","sources":["../../src/generate-monorepo.ts"],"names":[],"mappings":"AAsBA,iBAAe,IAAI,kBA8rBlB;AAED,OAAO,EAAE,IAAI,EAAE,CAAC"}