jenkins-generator 1.0.1 → 2.2.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.
Files changed (42) hide show
  1. package/.dockerignore +8 -0
  2. package/DOCKER_COMPOSE_GUIDE.md +62 -0
  3. package/Dockerfile +23 -0
  4. package/README.md +240 -34
  5. package/dist/app.module.js +8 -0
  6. package/dist/app.module.js.map +1 -1
  7. package/dist/index.d.ts +1 -0
  8. package/dist/index.js +1 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/interfaces/config.interface.d.ts +42 -4
  11. package/dist/services/cicd-generator.service.d.ts +10 -1
  12. package/dist/services/cicd-generator.service.js +151 -20
  13. package/dist/services/cicd-generator.service.js.map +1 -1
  14. package/dist/services/cloud-provider.service.d.ts +1 -0
  15. package/dist/services/cloud-provider.service.js +135 -49
  16. package/dist/services/cloud-provider.service.js.map +1 -1
  17. package/dist/services/dashboard.service.d.ts +4 -0
  18. package/dist/services/dashboard.service.js +103 -0
  19. package/dist/services/dashboard.service.js.map +1 -0
  20. package/dist/services/docker-compose.service.d.ts +7 -0
  21. package/dist/services/docker-compose.service.js +113 -0
  22. package/dist/services/docker-compose.service.js.map +1 -0
  23. package/dist/services/environment.service.d.ts +10 -0
  24. package/dist/services/environment.service.js +163 -0
  25. package/dist/services/environment.service.js.map +1 -0
  26. package/dist/services/iac.service.d.ts +8 -0
  27. package/dist/services/iac.service.js +164 -0
  28. package/dist/services/iac.service.js.map +1 -0
  29. package/dist/services/jenkinsfile.service.d.ts +4 -1
  30. package/dist/services/jenkinsfile.service.js +153 -41
  31. package/dist/services/jenkinsfile.service.js.map +1 -1
  32. package/dist/services/notification.service.js +13 -15
  33. package/dist/services/notification.service.js.map +1 -1
  34. package/dist/services/prompt.service.d.ts +9 -0
  35. package/dist/services/prompt.service.js +637 -19
  36. package/dist/services/prompt.service.js.map +1 -1
  37. package/dist/services/validation.service.js +1 -1
  38. package/dist/services/validation.service.js.map +1 -1
  39. package/dist/tsconfig.tsbuildinfo +1 -1
  40. package/docker-compose.yml +13 -0
  41. package/jest.config.js +12 -0
  42. package/package.json +8 -1
@@ -2,13 +2,22 @@ import { PromptService } from './prompt.service';
2
2
  import { JenkinsFileService } from './jenkinsfile.service';
3
3
  import { SecurityService } from './security.service';
4
4
  import { ValidationService } from './validation.service';
5
+ import { EnvironmentService } from './environment.service';
6
+ import { IaCService } from './iac.service';
7
+ import { DashboardService } from './dashboard.service';
8
+ import { DockerComposeService } from './docker-compose.service';
5
9
  export declare class CICDGeneratorService {
6
10
  private readonly promptService;
7
11
  private readonly jenkinsFileService;
8
12
  private readonly securityService;
9
13
  private readonly validationService;
10
- constructor(promptService: PromptService, jenkinsFileService: JenkinsFileService, securityService: SecurityService, validationService: ValidationService);
14
+ private readonly environmentService;
15
+ private readonly iacService;
16
+ private readonly dashboardService;
17
+ private readonly dockerComposeService;
18
+ constructor(promptService: PromptService, jenkinsFileService: JenkinsFileService, securityService: SecurityService, validationService: ValidationService, environmentService: EnvironmentService, iacService: IaCService, dashboardService: DashboardService, dockerComposeService: DockerComposeService);
11
19
  run(): Promise<void>;
12
20
  private writeFiles;
21
+ private updateRootGitignore;
13
22
  private displaySummary;
14
23
  }
@@ -48,9 +48,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
48
48
  exports.CICDGeneratorService = void 0;
49
49
  const common_1 = require("@nestjs/common");
50
50
  const prompt_service_1 = require("./prompt.service");
51
+ const inquirer_1 = __importDefault(require("inquirer"));
51
52
  const jenkinsfile_service_1 = require("./jenkinsfile.service");
52
53
  const security_service_1 = require("./security.service");
53
54
  const validation_service_1 = require("./validation.service");
55
+ const environment_service_1 = require("./environment.service");
56
+ const iac_service_1 = require("./iac.service");
57
+ const dashboard_service_1 = require("./dashboard.service");
58
+ const docker_compose_service_1 = require("./docker-compose.service");
54
59
  const fs = __importStar(require("fs-extra"));
55
60
  const path = __importStar(require("path"));
56
61
  const chalk_1 = __importDefault(require("chalk"));
@@ -60,11 +65,19 @@ let CICDGeneratorService = class CICDGeneratorService {
60
65
  jenkinsFileService;
61
66
  securityService;
62
67
  validationService;
63
- constructor(promptService, jenkinsFileService, securityService, validationService) {
68
+ environmentService;
69
+ iacService;
70
+ dashboardService;
71
+ dockerComposeService;
72
+ constructor(promptService, jenkinsFileService, securityService, validationService, environmentService, iacService, dashboardService, dockerComposeService) {
64
73
  this.promptService = promptService;
65
74
  this.jenkinsFileService = jenkinsFileService;
66
75
  this.securityService = securityService;
67
76
  this.validationService = validationService;
77
+ this.environmentService = environmentService;
78
+ this.iacService = iacService;
79
+ this.dashboardService = dashboardService;
80
+ this.dockerComposeService = dockerComposeService;
68
81
  }
69
82
  async run() {
70
83
  try {
@@ -73,49 +86,145 @@ let CICDGeneratorService = class CICDGeneratorService {
73
86
  try {
74
87
  const packageJson = await this.validationService.readPackageJson();
75
88
  spinner.succeed('Project structure validated');
76
- console.log(chalk_1.default.gray(`Found projhect: ${packageJson.name}`));
89
+ console.log(chalk_1.default.gray(`Found project: ${packageJson.name}\n`));
77
90
  }
78
91
  catch (error) {
79
92
  spinner.fail('Project validation failed');
80
93
  throw error;
81
94
  }
82
95
  console.log(chalk_1.default.yellow('Please provide the following information:\n'));
83
- const config = await this.promptService.collectAllConfigurations();
96
+ const configPath = path.resolve(process.cwd(), 'jenkins-generator-config.json');
97
+ let config;
98
+ if (await fs.pathExists(configPath)) {
99
+ const loadConfig = await inquirer_1.default.prompt([
100
+ {
101
+ type: 'confirm',
102
+ name: 'usePreset',
103
+ message: 'Found existing jenkins-generator-config.json. Do you want to load it?',
104
+ default: true,
105
+ },
106
+ ]);
107
+ if (loadConfig.usePreset) {
108
+ config = await fs.readJSON(configPath);
109
+ console.log(chalk_1.default.green('Configuration loaded successfully!\n'));
110
+ }
111
+ }
112
+ if (!config) {
113
+ config = await this.promptService.collectAllConfigurations();
114
+ const saveConfig = await inquirer_1.default.prompt([
115
+ {
116
+ type: 'confirm',
117
+ name: 'savePreset',
118
+ message: 'Do you want to save this configuration as a preset (jenkins-generator-config.json)?',
119
+ default: true,
120
+ },
121
+ ]);
122
+ if (saveConfig.savePreset) {
123
+ await fs.writeJSON(configPath, config, { spaces: 2 });
124
+ console.log(chalk_1.default.green('Configuration saved to jenkins-generator-config.json\n'));
125
+ }
126
+ }
84
127
  const generatingSpinner = (0, ora_1.default)('Generating Jenkinsfile...').start();
85
128
  const jenkinsfile = this.jenkinsFileService.generateJenkinsfile(config);
86
129
  generatingSpinner.succeed('Jenkinsfile generated');
87
130
  const credentialsGuide = this.jenkinsFileService.generateCredentialsSetupGuide(config);
88
131
  const readme = this.jenkinsFileService.generateReadme(config);
132
+ let envTemplate = '';
133
+ if (config.project.externalServices &&
134
+ config.project.externalServices.length > 0) {
135
+ envTemplate = this.environmentService.generateEnvFileTemplate(config.project.externalServices);
136
+ }
137
+ const iacSpinner = (0, ora_1.default)('Generating Infrastructure as Code...').start();
138
+ const terraformConfig = this.iacService.generateTerraformConfig(config.cloud, config.project.projectName);
139
+ iacSpinner.succeed('Infrastructure as Code generated');
140
+ const dashboardSpinner = (0, ora_1.default)('Generating Deployment Dashboard...').start();
141
+ const dashboard = this.dashboardService.generateDeploymentDashboard(config);
142
+ dashboardSpinner.succeed('Deployment Dashboard generated');
143
+ let dockerCompose = '';
144
+ if (config.project.hasDockerfile) {
145
+ dockerCompose = this.dockerComposeService.generateDockerCompose(config);
146
+ }
89
147
  const writingSpinner = (0, ora_1.default)('Writing files...').start();
90
- await this.writeFiles(jenkinsfile, credentialsGuide, readme, config);
148
+ await this.writeFiles(jenkinsfile, credentialsGuide, readme, envTemplate, terraformConfig, dashboard, dockerCompose, config);
91
149
  writingSpinner.succeed('Files written successfully');
92
150
  this.displaySummary(config);
93
151
  }
94
152
  catch (error) {
95
- console.error(chalk_1.default.red('\n❌ Error:'), error);
153
+ console.error(chalk_1.default.red('\n❌ Error:'), error.message);
154
+ throw error;
96
155
  }
97
156
  }
98
- async writeFiles(jenkinsfile, credentialsGuide, readme, config) {
99
- const rootDir = process.cwd();
100
- const cicdDir = path.join(rootDir, '.cicd');
157
+ async writeFiles(jenkinsfile, credentialsGuide, readme, envTemplate, terraformConfig, dashboardContent, dockerComposeContent, config) {
158
+ const projectDir = process.cwd();
159
+ const cicdDir = path.join(projectDir, '.cicd');
101
160
  await fs.ensureDir(cicdDir);
102
- const jenkinsfilePath = path.join(rootDir, 'Jenkinsfile');
161
+ const jenkinsfilePath = path.join(projectDir, 'Jenkinsfile');
103
162
  await fs.writeFile(jenkinsfilePath, jenkinsfile);
163
+ if (dockerComposeContent) {
164
+ await fs.writeFile(path.join(projectDir, 'docker-compose.yml'), dockerComposeContent);
165
+ }
104
166
  const credentialsPath = path.join(cicdDir, 'CREDENTIALS_SETUP.md');
105
167
  await fs.writeFile(credentialsPath, credentialsGuide);
106
168
  const readmePath = path.join(cicdDir, 'README.md');
107
169
  await fs.writeFile(readmePath, readme);
170
+ const envPath = path.join(projectDir, '.env.template');
171
+ await fs.writeFile(envPath, envTemplate);
172
+ const terraformDir = path.join(cicdDir, 'terraform');
173
+ await fs.ensureDir(terraformDir);
174
+ const terraformPath = path.join(terraformDir, 'main.tf');
175
+ await fs.writeFile(terraformPath, terraformConfig);
176
+ const dashboardPath = path.join(cicdDir, 'dashboard.html');
177
+ await fs.writeFile(dashboardPath, dashboardContent);
108
178
  const configPath = path.join(cicdDir, 'config.encrypted.json');
109
- const encryptedConfig = this.securityService.encryptCredentials(config);
110
- await fs.writeFile(configPath, JSON.stringify({ encrypted: encryptedConfig }, null, 2));
111
- const gitignorePath = path.join(cicdDir, '.gitignore');
112
- await fs.writeFile(gitignorePath, 'config.encrypted.json\n*.log\n');
179
+ const encrypted = this.securityService.encryptCredentials(config);
180
+ await fs.writeFile(configPath, encrypted);
181
+ await this.updateRootGitignore(projectDir);
113
182
  console.log(chalk_1.default.green('\n📁 Generated files:'));
114
183
  console.log(chalk_1.default.gray(` ├─ Jenkinsfile (${jenkinsfilePath})`));
184
+ if (dockerComposeContent) {
185
+ console.log(chalk_1.default.gray(` ├─ docker-compose.yml`));
186
+ }
187
+ if (envTemplate) {
188
+ console.log(chalk_1.default.gray(` ├─ .env.template (for local development)`));
189
+ }
190
+ console.log(chalk_1.default.gray(` ├─ .cicd/terraform/main.tf`));
191
+ console.log(chalk_1.default.gray(` ├─ .cicd/dashboard.html`));
115
192
  console.log(chalk_1.default.gray(` ├─ .cicd/CREDENTIALS_SETUP.md`));
116
193
  console.log(chalk_1.default.gray(` ├─ .cicd/README.md`));
117
194
  console.log(chalk_1.default.gray(` └─ .cicd/config.encrypted.json`));
118
195
  }
196
+ async updateRootGitignore(rootDir) {
197
+ const gitignorePath = path.join(rootDir, '.gitignore');
198
+ try {
199
+ let gitignoreContent = '';
200
+ if (await fs.pathExists(gitignorePath)) {
201
+ gitignoreContent = await fs.readFile(gitignorePath, 'utf-8');
202
+ }
203
+ const entriesToAdd = [
204
+ '# Environment variables',
205
+ '.env',
206
+ '.env.local',
207
+ '.env.*.local',
208
+ ];
209
+ let needsUpdate = false;
210
+ const newEntries = [];
211
+ for (const entry of entriesToAdd) {
212
+ if (!gitignoreContent.includes(entry)) {
213
+ newEntries.push(entry);
214
+ needsUpdate = true;
215
+ }
216
+ }
217
+ if (needsUpdate) {
218
+ const separator = gitignoreContent ? '\n\n' : '';
219
+ gitignoreContent += separator + newEntries.join('\n') + '\n';
220
+ await fs.writeFile(gitignorePath, gitignoreContent);
221
+ console.log(chalk_1.default.gray(' ├─ Updated .gitignore to exclude .env files'));
222
+ }
223
+ }
224
+ catch (error) {
225
+ console.log(chalk_1.default.yellow(' ⚠️ Could not update .gitignore (non-critical)'));
226
+ }
227
+ }
119
228
  displaySummary(config) {
120
229
  console.log(chalk_1.default.green.bold('\n✅ CICD Pipeline Generated Successfully!\n'));
121
230
  console.log(chalk_1.default.cyan('📋 Configuration Summary:'));
@@ -130,19 +239,37 @@ let CICDGeneratorService = class CICDGeneratorService {
130
239
  console.log(chalk_1.default.white(` Instance: ${config.cloud.instanceType}`));
131
240
  console.log(chalk_1.default.white(` Tests: ${config.project.runTests ? 'Enabled' : 'Disabled'}`));
132
241
  console.log(chalk_1.default.white(` Auto-scaling: ${config.cloud.deploymentConfig.autoScaling ? 'Enabled' : 'Disabled'}`));
242
+ if (config.project.externalServices &&
243
+ config.project.externalServices.length > 0) {
244
+ console.log(chalk_1.default.white(` External Services: ${config.project.externalServices.length} configured`));
245
+ for (const service of config.project.externalServices) {
246
+ console.log(chalk_1.default.gray(` - ${service.name} (${service.service})`));
247
+ }
248
+ }
133
249
  console.log(chalk_1.default.gray('─'.repeat(60)));
134
250
  console.log(chalk_1.default.yellow('\n📝 Next Steps:\n'));
135
251
  console.log(chalk_1.default.white(' 1. Review the generated Jenkinsfile in your project root'));
136
- console.log(chalk_1.default.white(' 2. Read .cicd/CREDENTIALS_SETUP.md for Jenkins credential setup'));
137
- console.log(chalk_1.default.white(' 3. Configure Jenkins credentials as specified'));
138
- console.log(chalk_1.default.white(' 4. Create a new Jenkins Pipeline job'));
139
- console.log(chalk_1.default.white(' 5. Point Jenkins to your repository'));
140
- console.log(chalk_1.default.white(' 6. Run the pipeline and monitor deployment'));
252
+ if (config.project.externalServices &&
253
+ config.project.externalServices.length > 0) {
254
+ console.log(chalk_1.default.white(' 2. Copy .env.template to .env and fill in your values'));
255
+ console.log(chalk_1.default.white(' 3. Read .cicd/CREDENTIALS_SETUP.md for Jenkins credential setup'));
256
+ }
257
+ else {
258
+ console.log(chalk_1.default.white(' 2. Read .cicd/CREDENTIALS_SETUP.md for Jenkins credential setup'));
259
+ }
260
+ console.log(chalk_1.default.white(' 4. Configure Jenkins credentials as specified'));
261
+ console.log(chalk_1.default.white(' 5. Create a new Jenkins Pipeline job'));
262
+ console.log(chalk_1.default.white(' 6. Point Jenkins to your repository'));
263
+ console.log(chalk_1.default.white(' 7. Run the pipeline and monitor deployment'));
141
264
  console.log(chalk_1.default.yellow('\n⚠️ Important Security Notes:\n'));
142
- console.log(chalk_1.default.red(' • NEVER commit .cicd/config.encrypted.json to version control'));
265
+ console.log(chalk_1.default.red(' • NEVER commit .env or .cicd/config.encrypted.json to version control'));
143
266
  console.log(chalk_1.default.red(' • Always use Jenkins credential storage for sensitive data'));
144
267
  console.log(chalk_1.default.red(' • Review and rotate credentials regularly'));
145
268
  console.log(chalk_1.default.red(' • Keep your Jenkinsfile in version control'));
269
+ if (config.project.externalServices &&
270
+ config.project.externalServices.length > 0) {
271
+ console.log(chalk_1.default.red(' • .env.template is safe to commit, but NEVER commit .env'));
272
+ }
146
273
  console.log(chalk_1.default.cyan('\n🚀 Your CI/CD pipeline is ready for deployment!\n'));
147
274
  console.log(chalk_1.default.gray(`For detailed documentation, check .cicd/README.md\n`));
148
275
  }
@@ -153,6 +280,10 @@ exports.CICDGeneratorService = CICDGeneratorService = __decorate([
153
280
  __metadata("design:paramtypes", [prompt_service_1.PromptService,
154
281
  jenkinsfile_service_1.JenkinsFileService,
155
282
  security_service_1.SecurityService,
156
- validation_service_1.ValidationService])
283
+ validation_service_1.ValidationService,
284
+ environment_service_1.EnvironmentService,
285
+ iac_service_1.IaCService,
286
+ dashboard_service_1.DashboardService,
287
+ docker_compose_service_1.DockerComposeService])
157
288
  ], CICDGeneratorService);
158
289
  //# sourceMappingURL=cicd-generator.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cicd-generator.service.js","sourceRoot":"","sources":["../../src/services/cicd-generator.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,qDAAiD;AACjD,+DAA2D;AAC3D,yDAAqD;AACrD,6DAAyD;AACzD,6CAA+B;AAC/B,2CAA6B;AAC7B,kDAA0B;AAC1B,8CAAsB;AAGf,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAEZ;IACA;IACA;IACA;IAJnB,YACmB,aAA4B,EAC5B,kBAAsC,EACtC,eAAgC,EAChC,iBAAoC;QAHpC,kBAAa,GAAb,aAAa,CAAe;QAC5B,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,oBAAe,GAAf,eAAe,CAAiB;QAChC,sBAAiB,GAAjB,iBAAiB,CAAmB;IACpD,CAAC;IAEJ,KAAK,CAAC,GAAG;QACP,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC;YAE5D,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,iCAAiC,CAAC,CAAC,KAAK,EAAE,CAAC;YAE/D,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC;gBACnE,OAAO,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;gBAC/C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mBAAmB,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACjE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBAC1C,MAAM,KAAK,CAAC;YACd,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,wBAAwB,EAAE,CAAC;YAGnE,MAAM,iBAAiB,GAAG,IAAA,aAAG,EAAC,2BAA2B,CAAC,CAAC,KAAK,EAAE,CAAC;YACnE,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACxE,iBAAiB,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YAGnD,MAAM,gBAAgB,GACpB,IAAI,CAAC,kBAAkB,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;YAChE,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAG9D,MAAM,cAAc,GAAG,IAAA,aAAG,EAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC;YACvD,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACrE,cAAc,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;YAGrD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACO,KAAK,CAAC,UAAU,CACtB,WAAmB,EACnB,gBAAwB,EACxB,MAAc,EACd,MAAW;QAEX,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAG5C,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAG5B,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC1D,MAAM,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QAGjD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;QACnE,MAAM,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;QAGtD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACnD,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAGvC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;QAC/D,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACxE,MAAM,EAAE,CAAC,SAAS,CAChB,UAAU,EACV,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CACxD,CAAC;QAGF,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACvD,MAAM,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,gCAAgC,CAAC,CAAC;QAEpE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qBAAqB,eAAe,GAAG,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAEO,cAAc,CAAC,MAAW;QAChC,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAChE,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CACvE,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CACT,oBAAoB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CACvE,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CACT,oBACE,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAC1D,EAAE,CACH,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAExC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAC1E,CAAC;QACF,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CACT,mEAAmE,CACpE,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC,CAAC;QAEzE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,GAAG,CACP,iEAAiE,CAClE,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAC1E,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC;QAEvE,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAClE,CAAC;QACF,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAClE,CAAC;IACJ,CAAC;CACF,CAAA;AA1JY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;qCAGuB,8BAAa;QACR,wCAAkB;QACrB,kCAAe;QACb,sCAAiB;GAL5C,oBAAoB,CA0JhC"}
1
+ {"version":3,"file":"cicd-generator.service.js","sourceRoot":"","sources":["../../src/services/cicd-generator.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,qDAAiD;AACjD,wDAAgC;AAChC,+DAA2D;AAC3D,yDAAqD;AACrD,6DAAyD;AACzD,+DAA2D;AAC3D,+CAA2C;AAC3C,2DAAuD;AACvD,qEAAgE;AAChE,6CAA+B;AAC/B,2CAA6B;AAC7B,kDAA0B;AAC1B,8CAAsB;AAGf,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAEZ;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IARnB,YACmB,aAA4B,EAC5B,kBAAsC,EACtC,eAAgC,EAChC,iBAAoC,EACpC,kBAAsC,EACtC,UAAsB,EACtB,gBAAkC,EAClC,oBAA0C;QAP1C,kBAAa,GAAb,aAAa,CAAe;QAC5B,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,oBAAe,GAAf,eAAe,CAAiB;QAChC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,eAAU,GAAV,UAAU,CAAY;QACtB,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,yBAAoB,GAApB,oBAAoB,CAAsB;IAC1D,CAAC;IAEJ,KAAK,CAAC,GAAG;QACP,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC;YAG5D,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,iCAAiC,CAAC,CAAC,KAAK,EAAE,CAAC;YAC/D,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC;gBACnE,OAAO,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;gBAC/C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kBAAkB,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YAClE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBAC1C,MAAM,KAAK,CAAC;YACd,CAAC;YAGD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC,CAAC;YAEzE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAC7B,OAAO,CAAC,GAAG,EAAE,EACb,+BAA+B,CAChC,CAAC;YACF,IAAI,MAAW,CAAC;YAEhB,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpC,MAAM,UAAU,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;oBACvC;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,WAAW;wBACjB,OAAO,EACL,uEAAuE;wBACzE,OAAO,EAAE,IAAI;qBACd;iBACF,CAAC,CAAC;gBAEH,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;oBACzB,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBACvC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;YAED,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,wBAAwB,EAAE,CAAC;gBAE7D,MAAM,UAAU,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;oBACvC;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,YAAY;wBAClB,OAAO,EACL,qFAAqF;wBACvF,OAAO,EAAE,IAAI;qBACd;iBACF,CAAC,CAAC;gBAEH,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;oBAC1B,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;oBACtD,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CACT,wDAAwD,CACzD,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;YAGD,MAAM,iBAAiB,GAAG,IAAA,aAAG,EAAC,2BAA2B,CAAC,CAAC,KAAK,EAAE,CAAC;YACnE,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACxE,iBAAiB,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YAGnD,MAAM,gBAAgB,GACpB,IAAI,CAAC,kBAAkB,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;YAChE,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAG9D,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IACE,MAAM,CAAC,OAAO,CAAC,gBAAgB;gBAC/B,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAC1C,CAAC;gBACD,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,uBAAuB,CAC3D,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAChC,CAAC;YACJ,CAAC;YAGD,MAAM,UAAU,GAAG,IAAA,aAAG,EAAC,sCAAsC,CAAC,CAAC,KAAK,EAAE,CAAC;YACvE,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAC7D,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,OAAO,CAAC,WAAW,CAC3B,CAAC;YACF,UAAU,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;YAGvD,MAAM,gBAAgB,GAAG,IAAA,aAAG,EAC1B,oCAAoC,CACrC,CAAC,KAAK,EAAE,CAAC;YACV,MAAM,SAAS,GACb,IAAI,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;YAC5D,gBAAgB,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;YAG3D,IAAI,aAAa,GAAG,EAAE,CAAC;YACvB,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;gBACjC,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAC1E,CAAC;YAGD,MAAM,cAAc,GAAG,IAAA,aAAG,EAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC;YACvD,MAAM,IAAI,CAAC,UAAU,CACnB,WAAW,EACX,gBAAgB,EAChB,MAAM,EACN,WAAW,EACX,eAAe,EACf,SAAS,EACT,aAAa,EACb,MAAM,CACP,CAAC;YACF,cAAc,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;YAGrD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU,CACtB,WAAmB,EACnB,gBAAwB,EACxB,MAAc,EACd,WAAmB,EACnB,eAAuB,EACvB,gBAAwB,EACxB,oBAA4B,EAC5B,MAAW;QAEX,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAG/C,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAG5B,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAC7D,MAAM,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QAGjD,IAAI,oBAAoB,EAAE,CAAC;YACzB,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC,EAC3C,oBAAoB,CACrB,CAAC;QACJ,CAAC;QAGD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;QACnE,MAAM,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;QAGtD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACnD,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAGvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QACvD,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAGzC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACrD,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACjC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QACzD,MAAM,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;QAGnD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAC3D,MAAM,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;QAGpD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAClE,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAG1C,MAAM,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAE3C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qBAAqB,eAAe,GAAG,CAAC,CAAC,CAAC;QACjE,IAAI,oBAAoB,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,OAAe;QAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAEvD,IAAI,CAAC;YACH,IAAI,gBAAgB,GAAG,EAAE,CAAC;YAG1B,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBACvC,gBAAgB,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAC/D,CAAC;YAGD,MAAM,YAAY,GAAG;gBACnB,yBAAyB;gBACzB,MAAM;gBACN,YAAY;gBACZ,cAAc;aACf,CAAC;YAEF,IAAI,WAAW,GAAG,KAAK,CAAC;YACxB,MAAM,UAAU,GAAa,EAAE,CAAC;YAEhC,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;gBACjC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBACtC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACvB,WAAW,GAAG,IAAI,CAAC;gBACrB,CAAC;YACH,CAAC;YAED,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjD,gBAAgB,IAAI,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;gBAC7D,MAAM,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;gBACpD,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAC5D,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAEf,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CAAC,kDAAkD,CAAC,CACjE,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,MAAW;QAChC,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAChE,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CACvE,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CACT,oBAAoB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CACvE,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CACT,oBACE,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAC1D,EAAE,CACH,CACF,CAAC;QAGF,IACE,MAAM,CAAC,OAAO,CAAC,gBAAgB;YAC/B,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAC1C,CAAC;YACD,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CACT,wBAAwB,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,aAAa,CAC5E,CACF,CAAC;YACF,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBACtD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAExC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAC1E,CAAC;QAEF,IACE,MAAM,CAAC,OAAO,CAAC,gBAAgB;YAC/B,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAC1C,CAAC;YACD,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CAAC,yDAAyD,CAAC,CACvE,CAAC;YACF,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CACT,mEAAmE,CACpE,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CACT,mEAAmE,CACpE,CACF,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC,CAAC;QAEzE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,GAAG,CACP,yEAAyE,CAC1E,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAC1E,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC;QAEvE,IACE,MAAM,CAAC,OAAO,CAAC,gBAAgB;YAC/B,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAC1C,CAAC;YACD,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,GAAG,CAAC,4DAA4D,CAAC,CACxE,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAClE,CAAC;QACF,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAClE,CAAC;IACJ,CAAC;CACF,CAAA;AA5WY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;qCAGuB,8BAAa;QACR,wCAAkB;QACrB,kCAAe;QACb,sCAAiB;QAChB,wCAAkB;QAC1B,wBAAU;QACJ,oCAAgB;QACZ,6CAAoB;GATlD,oBAAoB,CA4WhC"}
@@ -6,4 +6,5 @@ export declare class CloudProviderService {
6
6
  generateDigitalOceanDeploymentScript(config: CloudConfig, dockerImageName: string): string;
7
7
  generateDeploymentScript(config: CloudConfig, dockerImageName: string): string;
8
8
  generateCredentialsEnvironmentVariables(config: CloudConfig): string;
9
+ private generateDeployedUrlExport;
9
10
  }
@@ -10,14 +10,30 @@ exports.CloudProviderService = void 0;
10
10
  const common_1 = require("@nestjs/common");
11
11
  let CloudProviderService = class CloudProviderService {
12
12
  generateAWSDeploymentScript(config, dockerImageName) {
13
- const { region, deploymentConfig } = config;
14
- return `
13
+ const { region, deploymentConfig, credentials } = config;
14
+ const awsCredentials = credentials;
15
+ let authLogic = `
15
16
  #AWS Deployment Configuration
16
17
  aws configure set aws_access_key_id \${AWS_ACCESS_KEY_ID}
17
18
  aws configure set aws_secret_access_key \${AWS_SECRET_ACCESS_KEY}
18
- aws configure set region ${region}
19
+ aws configure set region ${region}`;
20
+ if (awsCredentials.useOIDC && awsCredentials.oidcRoleArn) {
21
+ authLogic = `
22
+ # AWS OIDC Authentication
23
+ echo "Authenticating via OIDC..."
24
+ export $(printf "AWS_ACCESS_KEY_ID=%s AWS_SECRET_ACCESS_KEY=%s AWS_SESSION_TOKEN=%s" \\
25
+ $(aws sts assume-role-with-web-identity \\
26
+ --role-arn ${awsCredentials.oidcRoleArn} \\
27
+ --role-session-name JenkinsSession \\
28
+ --web-identity-token \${AWS_WEB_IDENTITY_TOKEN} \\
29
+ --query "Credentials.[AccessKeyId,SecretAccessKey,SessionToken]" \\
30
+ --output text))
31
+ aws configure set region ${region}`;
32
+ }
33
+ return `
34
+ ${authLogic}
19
35
 
20
- #Create/Updateb ECS Cluster
36
+ #Create/Update ECS Cluster
21
37
  aws ecs create-cluster --cluster-name ${dockerImageName}-cluster || true
22
38
 
23
39
  #Register Task Definition
@@ -31,7 +47,7 @@ let CloudProviderService = class CloudProviderService {
31
47
  "containerDefinitions": [
32
48
  {
33
49
  "name": "${dockerImageName}",
34
- "image": "${dockerImageName}",
50
+ "image": "\${DOCKER_IMAGE}",
35
51
  "portMappings": [
36
52
  {
37
53
  "containerPort": ${deploymentConfig.port},
@@ -46,22 +62,23 @@ let CloudProviderService = class CloudProviderService {
46
62
  "awslogs-stream-prefix": "ecs"
47
63
  }
48
64
  }
49
- },
65
+ }],
50
66
  "healthCheck": {
51
67
  "command": ["CMD-SHELL", "curl -f http://localhost:${deploymentConfig.port}${deploymentConfig.healthCheckPath} || exit 1"],
52
68
  "interval": 30,
53
69
  "timeout": 5,
54
70
  "retries": 3
55
71
  }
56
- }]
57
72
  }
58
73
  EOF
59
74
 
60
75
  aws ecs register-task-definition --cli-input-json file://task-definition.json
61
76
 
62
- #Create or Update Service
77
+ # Check if ECS service exists
78
+ SERVICE_EXISTS=$(aws ecs describe-services --cluster ${dockerImageName}-cluster --services ${dockerImageName}-service --query 'services[0].status' --output text || echo "MISSING")
63
79
 
64
- if[ "\$SERVICE_EXISTS" != "ACTIVE" ]; then
80
+ if [ "$SERVICE_EXISTS" != "ACTIVE" ]; then
81
+ echo "Creating new ECS service..."
65
82
  aws ecs create-service \\
66
83
  --cluster ${dockerImageName}-cluster \\
67
84
  --service-name ${dockerImageName}-service \\
@@ -70,25 +87,45 @@ let CloudProviderService = class CloudProviderService {
70
87
  --launch-type FARGATE \\
71
88
  --network-configuration "awsvpcConfiguration={subnets=[\${SUBNET_IDS}], securityGroups=[\${SECURITY_GROUP_IDS}], assignPublicIp=ENABLED}"
72
89
  else
73
- aws ecs update-service \\
74
- --cluster ${dockerImageName}-cluster \\
75
- --service ${dockerImageName}-service \\
76
- --task-definition ${dockerImageName} \\
77
- --force-new-deployment
90
+ echo "Updating existing ECS service with ${deploymentConfig.deploymentStrategy} strategy..."
91
+ if [ "${deploymentConfig.deploymentStrategy}" == "blue-green" ]; then
92
+ echo "Performing Blue-Green deployment..."
93
+ # Simulating blue-green by creating/updating a 'green' version
94
+ aws ecs update-service --cluster ${dockerImageName}-cluster --service ${dockerImageName}-service --task-definition ${dockerImageName} --force-new-deployment
95
+ elif [ "${deploymentConfig.deploymentStrategy}" == "canary" ]; then
96
+ echo "Performing Canary deployment (10% traffic)..."
97
+ aws ecs update-service --cluster ${dockerImageName}-cluster --service ${dockerImageName}-service --task-definition ${dockerImageName} --desired-count $(( ${deploymentConfig.minInstances || 1} + 1 ))
98
+ else
99
+ aws ecs update-service --cluster ${dockerImageName}-cluster --service ${dockerImageName}-service --task-definition ${dockerImageName} --force-new-deployment
100
+ fi
78
101
  fi
79
102
 
80
- echo "AWS deployment completed successfully"
81
-
103
+ ${this.generateDeployedUrlExport(deploymentConfig, `TASK_ARN=$(aws ecs list-tasks --cluster ${dockerImageName}-cluster --service-name ${dockerImageName}-service --query 'taskArns[0]' --output text)
104
+ ENI_ID=$(aws ecs describe-tasks --cluster ${dockerImageName}-cluster --tasks $TASK_ARN --query 'tasks[0].attachments[0].details[?name==\`networkInterfaceId\`].value' --output text)
105
+ PUBLIC_IP=$(aws ec2 describe-network-interfaces --network-interface-ids $ENI_ID --query 'NetworkInterfaces[0].Association.PublicIp' --output text)
106
+ export DEPLOYED_URL="http://$PUBLIC_IP:${deploymentConfig.port}"`)}
82
107
  `;
83
108
  }
84
109
  generateAzureDeploymentScript(config, dockerImageName) {
85
- const { deploymentConfig } = config;
86
- return `
110
+ const { deploymentConfig, credentials } = config;
111
+ const azureCredentials = credentials;
112
+ let authLogic = `
87
113
  # Azure Deployment Configuration
88
114
  az login --service-principal \\
89
115
  -u \${AZURE_CLIENT_ID} \\
90
116
  -p \${AZURE_CLIENT_SECRET} \\
91
- --tenant \${AZURE_TENANT_ID}
117
+ -t \${AZURE_TENANT_ID}`;
118
+ if (azureCredentials.useOIDC) {
119
+ authLogic = `
120
+ # Azure OIDC Authentication
121
+ echo "Authenticating via OIDC..."
122
+ az login --service-principal \\
123
+ -u \${AZURE_CLIENT_ID} \\
124
+ -t \${AZURE_TENANT_ID} \\
125
+ --federated-token \${AZURE_FEDERATED_TOKEN}`;
126
+ }
127
+ return `
128
+ ${authLogic}
92
129
 
93
130
  az account set --subscription \${AZURE_SUBSCRIPTION_ID}
94
131
 
@@ -106,35 +143,47 @@ let CloudProviderService = class CloudProviderService {
106
143
  --registry-username \${ACR_USERNAME} \\
107
144
  --registry-password \${ACR_PASSWORD} \\
108
145
  --dns-name-label ${dockerImageName} \\
109
- --ports ${deploymentConfig.port}
146
+ --ports ${deploymentConfig.port} \\
110
147
  --environment-variables NODE_ENV=production \\
111
148
  --restart-policy Always
112
-
113
- echo "Azure deployment completed successfully"
149
+
150
+ ${this.generateDeployedUrlExport(deploymentConfig, `export DEPLOYED_URL="http://${dockerImageName}.\${AZURE_REGION}.azurecontainer.io:${deploymentConfig.port}"`)}
114
151
  `;
115
152
  }
116
153
  generateGCPDeploymentScript(config, dockerImageName) {
117
- const { region, deploymentConfig } = config;
118
- return `
154
+ const { region, deploymentConfig, credentials } = config;
155
+ const gcpCredentials = credentials;
156
+ let authLogic = `
119
157
  # GCP Deployment Configuration
120
158
  gcloud auth activate-service-account --key-file=\${GCP_KEY_FILE}
121
159
  gcloud config set project \${GCP_PROJECT_ID}
122
- gcloud config set compute/region ${region}
160
+ gcloud config set compute/region ${region}`;
161
+ if (gcpCredentials.useOIDC) {
162
+ authLogic = `
163
+ # GCP OIDC Authentication
164
+ echo "Authenticating via OIDC..."
165
+ echo \${GCP_OIDC_TOKEN} > oidc_token.txt
166
+ gcloud auth login --cred-file=oidc_token.txt
167
+ gcloud config set project \${GCP_PROJECT_ID}
168
+ gcloud config set compute/region ${region}`;
169
+ }
170
+ return `
171
+ ${authLogic}
123
172
 
124
173
  # Deploy to Cloud Run
125
174
  gcloud run deploy ${dockerImageName} \\
126
175
  --image \${DOCKER_IMAGE} \\
127
176
  --platform managed \\
128
- --region ${region} \\
129
- --allow-unauthenticated
130
177
  --port ${deploymentConfig.port} \\
131
178
  --memory 512Mi \\
132
179
  --cpu 1 \\
133
180
  --min-instances ${deploymentConfig.minInstances || 0} \\
134
181
  --max-instances ${deploymentConfig.maxInstances || 1} \\
135
- --set-env-vars NODE_ENV=production
182
+ --set-env-vars NODE_ENV=production \\
183
+ --region ${region} \\
184
+ --format='value(status.url)' > gcp_url.txt
136
185
 
137
- echo "GCP deployment completed successfully"
186
+ ${this.generateDeployedUrlExport(deploymentConfig, `export DEPLOYED_URL=$(cat gcp_url.txt)`)}
138
187
  `;
139
188
  }
140
189
  generateDigitalOceanDeploymentScript(config, dockerImageName) {
@@ -163,7 +212,6 @@ let CloudProviderService = class CloudProviderService {
163
212
  EOF
164
213
 
165
214
  # Create or update app
166
-
167
215
  APP_ID=\$(doctl apps list --format ID --no-header | head -n 1)
168
216
 
169
217
  if [ -z "\$APP_ID" ]; then
@@ -172,7 +220,7 @@ let CloudProviderService = class CloudProviderService {
172
220
  doctl apps update \$APP_ID --spec app-spec.yaml
173
221
  fi
174
222
 
175
- echo "DigitalOcean deployment completed successfully
223
+ ${this.generateDeployedUrlExport(deploymentConfig, `export DEPLOYED_URL=$(doctl apps get \$APP_ID --format DefaultIngress --no-header)`)}
176
224
  `;
177
225
  }
178
226
  generateDeploymentScript(config, dockerImageName) {
@@ -192,27 +240,53 @@ let CloudProviderService = class CloudProviderService {
192
240
  generateCredentialsEnvironmentVariables(config) {
193
241
  const { provider, credentials } = config;
194
242
  switch (provider) {
195
- case 'aws':
243
+ case 'aws': {
244
+ const awsCreds = credentials;
245
+ if (awsCreds.useOIDC) {
246
+ return `
247
+ environment {
248
+ AWS_WEB_IDENTITY_TOKEN = credentials('aws-oidc-token')
249
+ }`;
250
+ }
196
251
  return `
197
- environment {
198
- AWS_ACCESS_KEY_ID = credentials('aws-access-key-id')
199
- AWS_SECRET_ACCESS_KEY = credentials('aws-secret-access-key')
200
- AWS_REGION = '${credentials['aws-region']}'
201
- }`;
202
- case 'azure':
252
+ environment {
253
+ AWS_ACCESS_KEY_ID = credentials('aws-access-key-id')
254
+ AWS_SECRET_ACCESS_KEY = credentials('aws-secret-access-key')
255
+ AWS_REGION = '${credentials['region']}'
256
+ }`;
257
+ }
258
+ case 'azure': {
259
+ const azCreds = credentials;
260
+ const baseEnv = `
261
+ AZURE_SUBSCRIPTION_ID = credentials('azure-subscription-id')
262
+ AZURE_TENANT_ID = credentials('azure-tenant-id')
263
+ AZURE_CLIENT_ID = credentials('azure-client-id')`;
264
+ if (azCreds.useOIDC) {
265
+ return `
266
+ environment {${baseEnv}
267
+ AZURE_FEDERATED_TOKEN = credentials('azure-federated-token')
268
+ }`;
269
+ }
203
270
  return `
204
- environment {
205
- AZURE_CLIENT_ID = credentials('azure-client-id')
206
- AZURE_CLIENT_SECRET = credentials('azure-client-secret')
207
- AZURE_TENANT_ID = credentials('azure-tenant-id')
208
- AZURE_SUBSCRIPTION_ID = credentials('azure-subscription-id')
209
- }`;
210
- case 'gcp':
271
+ environment {${baseEnv}
272
+ AZURE_CLIENT_SECRET = credentials('azure-client-secret')
273
+ }`;
274
+ }
275
+ case 'gcp': {
276
+ const gcpCreds = credentials;
277
+ if (gcpCreds.useOIDC) {
278
+ return `
279
+ environment {
280
+ GCP_PROJECT_ID = credentials('gcp-project-id')
281
+ GCP_OIDC_TOKEN = credentials('gcp-oidc-token')
282
+ }`;
283
+ }
211
284
  return `
212
- environment {
213
- GCP_PROJECT_ID = credentials('gcp-project-id')
214
- GCP_KEY_FILE = credentials('gcp-key-file')
215
- }`;
285
+ environment {
286
+ GCP_PROJECT_ID = credentials('gcp-project-id')
287
+ GCP_KEY_FILE = credentials('gcp-key-file')
288
+ }`;
289
+ }
216
290
  case 'digitalocean':
217
291
  return `
218
292
  environment {
@@ -222,6 +296,18 @@ let CloudProviderService = class CloudProviderService {
222
296
  return '';
223
297
  }
224
298
  }
299
+ generateDeployedUrlExport(deploymentConfig, defaultUrlScript) {
300
+ if (deploymentConfig.useLoadBalancer && deploymentConfig.loadBalancerUrl) {
301
+ return `
302
+ export DEPLOYED_URL="${deploymentConfig.loadBalancerUrl}"
303
+ echo "DEPLOYED_URL=\$DEPLOYED_URL" >> deployment.env
304
+ echo "Deployment completed. Reachable at Load Balancer: \$DEPLOYED_URL"`;
305
+ }
306
+ return `
307
+ ${defaultUrlScript}
308
+ echo "DEPLOYED_URL=\$DEPLOYED_URL" >> deployment.env
309
+ echo "Deployment completed. Reachable at: \$DEPLOYED_URL"`;
310
+ }
225
311
  };
226
312
  exports.CloudProviderService = CloudProviderService;
227
313
  exports.CloudProviderService = CloudProviderService = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-provider.service.js","sourceRoot":"","sources":["../../src/services/cloud-provider.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAIrC,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAC/B,2BAA2B,CACzB,MAAmB,EACnB,eAAuB;QAEvB,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;QAC5C,OAAO;;;;+BAIoB,MAAM;;;4CAGO,eAAe;;;;;qBAKtC,eAAe;;;;;;;uBAOb,eAAe;wBACd,eAAe;;;uCAGA,gBAAgB,CAAC,IAAI;;;;;;;6CAOf,eAAe;yCACnB,MAAM;;;;;;iEAOjC,gBAAgB,CAAC,IACnB,GAAG,gBAAgB,CAAC,eAAe;;;;;;;;;;;;;;;wBAevB,eAAe;6BACV,eAAe;gCACZ,eAAe;8BACjB,gBAAgB,CAAC,YAAY,IAAI,CAAC;;;;;wBAKxC,eAAe;wBACf,eAAe;gCACP,eAAe;;;;;;KAM1C,CAAC;IACJ,CAAC;IAED,6BAA6B,CAC3B,MAAmB,EACnB,eAAuB;QAEvB,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;QAEpC,OAAO;;;;;;;;;;;;;;;iBAeM,eAAe;;;;;;;2BAOL,eAAe;kBACxB,gBAAgB,CAAC,IAAI;;;;;KAKlC,CAAC;IACJ,CAAC;IAED,2BAA2B,CACzB,MAAmB,EACnB,eAAuB;QAEvB,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;QAE5C,OAAO;;;;uCAI4B,MAAM;;;wBAGrB,eAAe;;;mBAGpB,MAAM;;iBAER,gBAAgB,CAAC,IAAI;;;0BAGZ,gBAAgB,CAAC,YAAY,IAAI,CAAC;0BAClC,gBAAgB,CAAC,YAAY,IAAI,CAAC;;;;KAIvD,CAAC;IACJ,CAAC;IAED,oCAAoC,CAClC,MAAmB,EACnB,eAAuB;QAEvB,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;QAE5C,OAAO;;;;;;YAMC,eAAe;cACb,MAAM;;kBAEF,eAAe;;;;uBAIV,gBAAgB,CAAC,IAAI;4BAChB,gBAAgB,CAAC,YAAY,IAAI,CAAC;;;yBAGrC,gBAAgB,CAAC,eAAe;;;;;;;;;;;;;;;;;KAiBpD,CAAC;IACJ,CAAC;IAED,wBAAwB,CACtB,MAAmB,EACnB,eAAuB;QAEvB,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;YACxB,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YACnE,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,6BAA6B,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YACrE,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YACnE,KAAK,cAAc;gBACjB,OAAO,IAAI,CAAC,oCAAoC,CAC9C,MAAM,EACN,eAAe,CAChB,CAAC;YACJ;gBACE,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,uCAAuC,CAAC,MAAmB;QACzD,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;QAEzC,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,KAAK;gBACR,OAAO;;;;gCAIiB,WAAW,CAAC,YAAY,CAAC;cAC3C,CAAC;YACT,KAAK,OAAO;gBACV,OAAO;;;;;;cAMD,CAAC;YACT,KAAK,KAAK;gBACR,OAAO;;;;cAID,CAAC;YACT,KAAK,cAAc;gBACjB,OAAO;;;cAGD,CAAC;YACT;gBACE,OAAO,EAAE,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAA;AAnPY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;GACA,oBAAoB,CAmPhC"}
1
+ {"version":3,"file":"cloud-provider.service.js","sourceRoot":"","sources":["../../src/services/cloud-provider.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { CICDConfig } from '../interfaces/config.interface';
2
+ export declare class DashboardService {
3
+ generateDeploymentDashboard(config: CICDConfig): string;
4
+ }