indraq_cli 1.3.0 → 1.5.5

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 (86) hide show
  1. package/README.md +1082 -657
  2. package/dist/cli/create-program.d.ts.map +1 -1
  3. package/dist/cli/create-program.js +24 -6
  4. package/dist/cli/create-program.js.map +1 -1
  5. package/dist/cli/doctor.command.d.ts.map +1 -1
  6. package/dist/cli/doctor.command.js +23 -0
  7. package/dist/cli/doctor.command.js.map +1 -1
  8. package/dist/modules/configure/configure.command.d.ts.map +1 -0
  9. package/dist/modules/configure/configure.command.js +116 -0
  10. package/dist/modules/configure/configure.command.js.map +1 -0
  11. package/dist/modules/deploy/commands/build.command.d.ts +2 -2
  12. package/dist/modules/deploy/commands/build.command.d.ts.map +1 -1
  13. package/dist/modules/deploy/commands/build.command.js +45 -16
  14. package/dist/modules/deploy/commands/build.command.js.map +1 -1
  15. package/dist/modules/deploy/commands/configure-docker.command.d.ts +2 -0
  16. package/dist/modules/deploy/commands/configure-docker.command.d.ts.map +1 -0
  17. package/dist/modules/deploy/commands/configure-docker.command.js +169 -0
  18. package/dist/modules/deploy/commands/configure-docker.command.js.map +1 -0
  19. package/dist/modules/deploy/config/docker-config.d.ts +21 -0
  20. package/dist/modules/deploy/config/docker-config.d.ts.map +1 -0
  21. package/dist/modules/deploy/config/docker-config.js +187 -0
  22. package/dist/modules/deploy/config/docker-config.js.map +1 -0
  23. package/dist/modules/deploy/index.d.ts.map +1 -1
  24. package/dist/modules/deploy/index.js +9 -26
  25. package/dist/modules/deploy/index.js.map +1 -1
  26. package/dist/modules/mobile/commands/build-mobile.command.d.ts +11 -0
  27. package/dist/modules/mobile/commands/build-mobile.command.d.ts.map +1 -0
  28. package/dist/modules/mobile/commands/build-mobile.command.js +189 -0
  29. package/dist/modules/mobile/commands/build-mobile.command.js.map +1 -0
  30. package/dist/modules/mobile/commands/configure-mobile.command.d.ts +8 -0
  31. package/dist/modules/mobile/commands/configure-mobile.command.d.ts.map +1 -0
  32. package/dist/modules/mobile/commands/configure-mobile.command.js +353 -0
  33. package/dist/modules/mobile/commands/configure-mobile.command.js.map +1 -0
  34. package/dist/modules/mobile/config/mobile-config.d.ts +43 -0
  35. package/dist/modules/mobile/config/mobile-config.d.ts.map +1 -0
  36. package/dist/modules/mobile/config/mobile-config.js +211 -0
  37. package/dist/modules/mobile/config/mobile-config.js.map +1 -0
  38. package/dist/modules/mobile/index.d.ts +3 -0
  39. package/dist/modules/mobile/index.d.ts.map +1 -0
  40. package/dist/modules/mobile/index.js +50 -0
  41. package/dist/modules/mobile/index.js.map +1 -0
  42. package/dist/modules/mobile/services/jenkins-mobile.service.d.ts +31 -0
  43. package/dist/modules/mobile/services/jenkins-mobile.service.d.ts.map +1 -0
  44. package/dist/modules/mobile/services/jenkins-mobile.service.js +344 -0
  45. package/dist/modules/mobile/services/jenkins-mobile.service.js.map +1 -0
  46. package/dist/modules/mobile/services/project.service.d.ts +11 -0
  47. package/dist/modules/mobile/services/project.service.d.ts.map +1 -0
  48. package/dist/modules/mobile/services/project.service.js +73 -0
  49. package/dist/modules/mobile/services/project.service.js.map +1 -0
  50. package/dist/modules/mobile/services/source-bundle.service.d.ts +9 -0
  51. package/dist/modules/mobile/services/source-bundle.service.d.ts.map +1 -0
  52. package/dist/modules/mobile/services/source-bundle.service.js +114 -0
  53. package/dist/modules/mobile/services/source-bundle.service.js.map +1 -0
  54. package/dist/modules/mobile/services/version-sync.service.d.ts +7 -0
  55. package/dist/modules/mobile/services/version-sync.service.d.ts.map +1 -0
  56. package/dist/modules/mobile/services/version-sync.service.js +88 -0
  57. package/dist/modules/mobile/services/version-sync.service.js.map +1 -0
  58. package/dist/shared/config/config-files.d.ts +5 -0
  59. package/dist/shared/config/config-files.d.ts.map +1 -0
  60. package/dist/shared/config/config-files.js +88 -0
  61. package/dist/shared/config/config-files.js.map +1 -0
  62. package/dist/shared/config/jenkins-config.d.ts +36 -0
  63. package/dist/shared/config/jenkins-config.d.ts.map +1 -0
  64. package/dist/shared/config/jenkins-config.js +164 -0
  65. package/dist/shared/config/jenkins-config.js.map +1 -0
  66. package/dist/shared/jenkins/configure-jenkins.d.ts +7 -0
  67. package/dist/shared/jenkins/configure-jenkins.d.ts.map +1 -0
  68. package/dist/shared/jenkins/configure-jenkins.js +84 -0
  69. package/dist/shared/jenkins/configure-jenkins.js.map +1 -0
  70. package/dist/{modules/deploy/services → shared/jenkins}/jenkins.service.d.ts +5 -4
  71. package/dist/shared/jenkins/jenkins.service.d.ts.map +1 -0
  72. package/dist/{modules/deploy/services → shared/jenkins}/jenkins.service.js +43 -89
  73. package/dist/shared/jenkins/jenkins.service.js.map +1 -0
  74. package/dist/shared/runtime/runtime-doctor.js.map +1 -1
  75. package/package.json +10 -5
  76. package/templates/jenkins/Jenkinsfile-Mobile-App +759 -0
  77. package/dist/modules/deploy/commands/configure.command.d.ts.map +0 -1
  78. package/dist/modules/deploy/commands/configure.command.js +0 -404
  79. package/dist/modules/deploy/commands/configure.command.js.map +0 -1
  80. package/dist/modules/deploy/config/deployment-config.d.ts +0 -29
  81. package/dist/modules/deploy/config/deployment-config.d.ts.map +0 -1
  82. package/dist/modules/deploy/config/deployment-config.js +0 -164
  83. package/dist/modules/deploy/config/deployment-config.js.map +0 -1
  84. package/dist/modules/deploy/services/jenkins.service.d.ts.map +0 -1
  85. package/dist/modules/deploy/services/jenkins.service.js.map +0 -1
  86. /package/dist/modules/{deploy/commands → configure}/configure.command.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"create-program.d.ts","sourceRoot":"","sources":["../../src/cli/create-program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,aAAa,QAAO,OAuBhC,CAAC"}
1
+ {"version":3,"file":"create-program.d.ts","sourceRoot":"","sources":["../../src/cli/create-program.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBpC,eAAO,MAAM,aAAa,QAAO,OAsBhC,CAAC"}
@@ -1,27 +1,45 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.createProgram = void 0;
7
+ const node_fs_1 = require("node:fs");
8
+ const node_path_1 = __importDefault(require("node:path"));
4
9
  const commander_1 = require("commander");
5
10
  const deploy_1 = require("../modules/deploy");
6
- const configure_command_1 = require("../modules/deploy/commands/configure.command");
11
+ const mobile_1 = require("../modules/mobile");
12
+ const configure_command_1 = require("../modules/configure/configure.command");
7
13
  const doctor_command_1 = require("./doctor.command");
14
+ const readCliVersion = () => {
15
+ try {
16
+ const packageJsonPath = node_path_1.default.resolve(__dirname, '../../package.json');
17
+ const packageJson = JSON.parse((0, node_fs_1.readFileSync)(packageJsonPath, 'utf8'));
18
+ if (typeof packageJson.version === 'string' && packageJson.version.trim()) {
19
+ return packageJson.version.trim();
20
+ }
21
+ }
22
+ catch {
23
+ // Fall through to a safe value if package metadata is unexpectedly unavailable.
24
+ }
25
+ return '0.0.0';
26
+ };
8
27
  const createProgram = () => {
9
28
  const program = new commander_1.Command();
10
29
  program
11
30
  .name('indraq')
12
31
  .description('IndraQ internal engineering CLI.')
13
- .version('1.3.0');
32
+ .version(readCliVersion());
14
33
  program
15
34
  .command('doctor')
16
35
  .description('Diagnose Node and command-resolution problems.')
17
36
  .action(() => (0, doctor_command_1.doctor)());
18
37
  program
19
38
  .command('configure')
20
- .description('Configure IndraQ deployment for the current project.')
21
- .action(async () => {
22
- await (0, configure_command_1.configure)();
23
- });
39
+ .description('Configure Jenkins, Docker/GHCR, and Mobile App settings for the current project.')
40
+ .action(async () => (0, configure_command_1.configure)());
24
41
  (0, deploy_1.registerDeployModule)(program);
42
+ (0, mobile_1.registerMobileModule)(program);
25
43
  return program;
26
44
  };
27
45
  exports.createProgram = createProgram;
@@ -1 +1 @@
1
- {"version":3,"file":"create-program.js","sourceRoot":"","sources":["../../src/cli/create-program.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AACpC,8CAAyD;AACzD,oFAAyE;AACzE,qDAA0C;AAEnC,MAAM,aAAa,GAAG,GAAY,EAAE;IACzC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,QAAQ,CAAC;SACd,WAAW,CAAC,kCAAkC,CAAC;SAC/C,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,gDAAgD,CAAC;SAC7D,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,uBAAM,GAAE,CAAC,CAAC;IAE1B,OAAO;SACJ,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,sDAAsD,CAAC;SACnE,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,IAAA,6BAAS,GAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEL,IAAA,6BAAoB,EAAC,OAAO,CAAC,CAAC;IAE9B,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAvBW,QAAA,aAAa,iBAuBxB"}
1
+ {"version":3,"file":"create-program.js","sourceRoot":"","sources":["../../src/cli/create-program.ts"],"names":[],"mappings":";;;;;;AAAA,qCAAuC;AACvC,0DAA6B;AAC7B,yCAAoC;AACpC,8CAAyD;AACzD,8CAAyD;AACzD,8EAAmE;AACnE,qDAA0C;AAI1C,MAAM,cAAc,GAAG,GAAW,EAAE;IAClC,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,mBAAI,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;QACtE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,eAAe,EAAE,MAAM,CAAC,CAA0B,CAAC;QAE/F,IAAI,OAAO,WAAW,CAAC,OAAO,KAAK,QAAQ,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1E,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,gFAAgF;IAClF,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEK,MAAM,aAAa,GAAG,GAAY,EAAE;IACzC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,QAAQ,CAAC;SACd,WAAW,CAAC,kCAAkC,CAAC;SAC/C,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAE7B,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,gDAAgD,CAAC;SAC7D,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,uBAAM,GAAE,CAAC,CAAC;IAE1B,OAAO;SACJ,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,kFAAkF,CAAC;SAC/F,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,IAAA,6BAAS,GAAE,CAAC,CAAC;IAEnC,IAAA,6BAAoB,EAAC,OAAO,CAAC,CAAC;IAC9B,IAAA,6BAAoB,EAAC,OAAO,CAAC,CAAC;IAE9B,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAtBW,QAAA,aAAa,iBAsBxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.command.d.ts","sourceRoot":"","sources":["../../src/cli/doctor.command.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM,QAAO,IAsBzB,CAAC"}
1
+ {"version":3,"file":"doctor.command.d.ts","sourceRoot":"","sources":["../../src/cli/doctor.command.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,MAAM,QAAO,IA+BzB,CAAC"}
@@ -5,12 +5,35 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.doctor = void 0;
7
7
  const chalk_1 = __importDefault(require("chalk"));
8
+ const node_child_process_1 = require("node:child_process");
8
9
  const runtime_doctor_1 = require("../shared/runtime/runtime-doctor");
10
+ const checkCommand = (command, args, label) => {
11
+ const result = (0, node_child_process_1.spawnSync)(command, args, {
12
+ encoding: 'utf8',
13
+ stdio: ['ignore', 'pipe', 'pipe']
14
+ });
15
+ if (result.error || result.status !== 0) {
16
+ console.log(chalk_1.default.red(`✗ ${label} not found in PATH`));
17
+ return false;
18
+ }
19
+ const output = `${result.stdout || ''}\n${result.stderr || ''}`.trim().split(/\r?\n/)[0] ?? '';
20
+ console.log(chalk_1.default.green(`✓ ${label}${output ? ` — ${output}` : ''}`));
21
+ return true;
22
+ };
9
23
  const doctor = () => {
10
24
  console.log(chalk_1.default.bold('\nIndraQ CLI Doctor\n'));
11
25
  console.log(`Node: ${process.version}`);
12
26
  console.log(`Platform: ${process.platform} ${process.arch}`);
13
27
  console.log(`CLI file: ${process.argv[1] ?? 'unknown'}\n`);
28
+ const major = Number(process.versions.node.split('.')[0]);
29
+ if (major >= 22)
30
+ console.log(chalk_1.default.green('✓ Node.js version is supported (22+).'));
31
+ else
32
+ console.log(chalk_1.default.red('✗ Node.js 22 or newer is required.'));
33
+ checkCommand('java', ['-version'], 'Java');
34
+ checkCommand('git', ['--version'], 'Git');
35
+ checkCommand('tar', ['--version'], 'tar');
36
+ console.log('');
14
37
  const resolution = (0, runtime_doctor_1.resolveCommand)('indraq');
15
38
  if (resolution.paths.length) {
16
39
  console.log('Command resolution order:');
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.command.js","sourceRoot":"","sources":["../../src/cli/doctor.command.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,qEAAkE;AAE3D,MAAM,MAAM,GAAG,GAAS,EAAE;IAC/B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,IAAI,CAAC,CAAC;IAE3D,MAAM,UAAU,GAAG,IAAA,+BAAc,EAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC,CAAC,CAAC;IAC9F,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,8CAA8C,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC,CAAC;QAC9F,OAAO,CAAC,GAAG,CAAC,0BAA0B,UAAU,CAAC,mBAAmB,IAAI,SAAS,EAAE,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,wGAAwG,CAAC,CAAC,CAAC;QACpI,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC,CAAC;AAC7E,CAAC,CAAC;AAtBW,QAAA,MAAM,UAsBjB"}
1
+ {"version":3,"file":"doctor.command.js","sourceRoot":"","sources":["../../src/cli/doctor.command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure.command.d.ts","sourceRoot":"","sources":["../../../src/modules/configure/configure.command.ts"],"names":[],"mappings":"AA8FA,eAAO,MAAM,SAAS,QAAa,OAAO,CAAC,IAAI,CA8B9C,CAAC"}
@@ -0,0 +1,116 @@
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.configure = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const inquirer_1 = __importDefault(require("inquirer"));
9
+ const configure_docker_command_1 = require("../deploy/commands/configure-docker.command");
10
+ const jenkins_config_1 = require("../../shared/config/jenkins-config");
11
+ const configure_jenkins_1 = require("../../shared/jenkins/configure-jenkins");
12
+ const configure_mobile_command_1 = require("../mobile/commands/configure-mobile.command");
13
+ const docker_config_1 = require("../deploy/config/docker-config");
14
+ const mobile_config_1 = require("../mobile/config/mobile-config");
15
+ const credentialStatus = (environment) => {
16
+ const binding = (0, jenkins_config_1.getJenkinsLocalBindingsConfig)().environments[environment];
17
+ return binding ? 'credentials available on this computer' : 'credentials not configured on this computer';
18
+ };
19
+ const printJenkinsReview = () => {
20
+ const config = (0, jenkins_config_1.getJenkinsConnectionsConfig)();
21
+ console.log(chalk_1.default.blue.bold('\n📋 Jenkins connections\n'));
22
+ console.log(` Development: ${config.environments.dev ? `${config.environments.dev.url} — ${credentialStatus('dev')}` : '<not configured>'}`);
23
+ console.log(` Production: ${config.environments.prod ? `${config.environments.prod.url} — ${credentialStatus('prod')}` : '<not configured>'}`);
24
+ console.log(chalk_1.default.gray('\n Docker Development uses Development Jenkins.'));
25
+ console.log(chalk_1.default.gray(' Docker Production uses Production Jenkins.'));
26
+ console.log(chalk_1.default.gray(' ALL Mobile Development/Staging/Production builds use Production Jenkins.'));
27
+ console.log(chalk_1.default.gray(' Jenkins URL/transport are project-shared. Username/token/password are local only and never committed.'));
28
+ console.log(chalk_1.default.gray(` Shared config: ${(0, jenkins_config_1.getJenkinsConnectionsConfigPath)()}\n`));
29
+ };
30
+ const configureJenkins = async () => {
31
+ const config = (0, jenkins_config_1.getJenkinsConnectionsConfig)();
32
+ const local = (0, jenkins_config_1.getJenkinsLocalBindingsConfig)();
33
+ while (true) {
34
+ const { target } = await inquirer_1.default.prompt([
35
+ {
36
+ type: 'list',
37
+ name: 'target',
38
+ message: 'Jenkins — which environment do you want to configure?',
39
+ choices: [
40
+ { name: `Development (${config.environments.dev?.url || 'not configured'})`, value: 'dev' },
41
+ { name: `Production (${config.environments.prod?.url || 'not configured'}) — used by all mobile builds`, value: 'prod' },
42
+ new inquirer_1.default.Separator(),
43
+ { name: 'Review Jenkins connections', value: 'review' },
44
+ { name: 'Back', value: 'back' }
45
+ ]
46
+ }
47
+ ]);
48
+ if (target === 'back')
49
+ return;
50
+ if (target === 'review') {
51
+ printJenkinsReview();
52
+ continue;
53
+ }
54
+ const result = await (0, configure_jenkins_1.promptForJenkinsConnection)(config.environments[target], local.environments[target], target === 'dev'
55
+ ? 'Development Jenkins'
56
+ : 'Production Jenkins (Docker Production + all Mobile builds)');
57
+ config.environments[target] = result.endpoint;
58
+ local.environments[target] = result.binding;
59
+ (0, jenkins_config_1.saveJenkinsConnectionsConfig)(config);
60
+ (0, jenkins_config_1.saveJenkinsLocalBindingsConfig)(local);
61
+ console.log(chalk_1.default.green('✓ Jenkins connection saved. Returning to Jenkins settings.\n'));
62
+ }
63
+ };
64
+ const reviewEverything = () => {
65
+ console.log(chalk_1.default.blue.bold('\nIndraQ project configuration\n'));
66
+ printJenkinsReview();
67
+ const docker = (0, docker_config_1.getDockerConfig)();
68
+ if (!docker)
69
+ console.log(chalk_1.default.yellow('Docker / GHCR: not configured\n'));
70
+ else {
71
+ console.log(chalk_1.default.blue.bold('Docker / GHCR'));
72
+ console.log(` Owner: ${docker.github.owner || '<not configured>'}`);
73
+ console.log(` Development: ${docker.environments.dev.imageName || '<not configured>'}`);
74
+ console.log(` Production: ${docker.environments.prod.imageName || '<not configured>'}\n`);
75
+ }
76
+ const mobile = (0, mobile_config_1.getMobileConfig)();
77
+ if (!mobile)
78
+ console.log(chalk_1.default.yellow('Mobile App: not configured\n'));
79
+ else
80
+ (0, configure_mobile_command_1.printMobileConfiguration)(mobile);
81
+ };
82
+ const configure = async () => {
83
+ console.log(chalk_1.default.blue.bold('\nIndraQ CLI Configuration\n'));
84
+ console.log(chalk_1.default.gray('Configure only what you need. After each change you return to this home screen.\n'));
85
+ while (true) {
86
+ const { section } = await inquirer_1.default.prompt([
87
+ {
88
+ type: 'list',
89
+ name: 'section',
90
+ message: 'What do you want to configure?',
91
+ choices: [
92
+ { name: 'Jenkins', value: 'jenkins' },
93
+ { name: 'Docker / GHCR', value: 'docker' },
94
+ { name: 'Mobile App', value: 'mobile' },
95
+ new inquirer_1.default.Separator(),
96
+ { name: 'Review current project configuration', value: 'review' },
97
+ { name: 'Exit', value: 'exit' }
98
+ ]
99
+ }
100
+ ]);
101
+ if (section === 'exit') {
102
+ console.log(chalk_1.default.green('\n✓ Configuration finished.\n'));
103
+ return;
104
+ }
105
+ if (section === 'jenkins')
106
+ await configureJenkins();
107
+ else if (section === 'docker')
108
+ await (0, configure_docker_command_1.configureDocker)();
109
+ else if (section === 'mobile')
110
+ await (0, configure_mobile_command_1.configureMobile)();
111
+ else
112
+ reviewEverything();
113
+ }
114
+ };
115
+ exports.configure = configure;
116
+ //# sourceMappingURL=configure.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure.command.js","sourceRoot":"","sources":["../../../src/modules/configure/configure.command.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { type EnvironmentName } from '../config/deployment-config';
1
+ import { type DockerEnvironmentName } from '../config/docker-config';
2
2
  export interface BuildOptions {
3
- env: EnvironmentName;
3
+ env: DockerEnvironmentName;
4
4
  }
5
5
  export declare const build: (options: BuildOptions) => Promise<void>;
6
6
  //# sourceMappingURL=build.command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build.command.d.ts","sourceRoot":"","sources":["../../../../src/modules/deploy/commands/build.command.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,6BAA6B,CAAC;AAqBrC,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,eAAe,CAAC;CACtB;AAgBD,eAAO,MAAM,KAAK,GAAU,SAAS,YAAY,KAAG,OAAO,CAAC,IAAI,CAiJ/D,CAAC"}
1
+ {"version":3,"file":"build.command.d.ts","sourceRoot":"","sources":["../../../../src/modules/deploy/commands/build.command.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,yBAAyB,CAAC;AAsBjC,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,qBAAqB,CAAC;CAC5B;AA2BD,eAAO,MAAM,KAAK,GAAU,SAAS,YAAY,KAAG,OAAO,CAAC,IAAI,CAmK/D,CAAC"}
@@ -7,27 +7,49 @@ exports.build = void 0;
7
7
  const inquirer_1 = __importDefault(require("inquirer"));
8
8
  const chalk_1 = __importDefault(require("chalk"));
9
9
  const node_fs_1 = require("node:fs");
10
- const deployment_config_1 = require("../config/deployment-config");
10
+ const docker_config_1 = require("../config/docker-config");
11
+ const jenkins_config_1 = require("../../../shared/config/jenkins-config");
11
12
  const github_auth_service_1 = require("../../../shared/github/github-auth.service");
12
13
  const docker_service_1 = require("../services/docker.service");
13
- const jenkins_service_1 = require("../services/jenkins.service");
14
+ const jenkins_service_1 = require("../../../shared/jenkins/jenkins.service");
14
15
  const TAG_PATTERN = /^[A-Za-z0-9_][A-Za-z0-9_.-]{0,127}$/;
16
+ const normalizeConfiguredImageRepository = (configuredImageName) => configuredImageName.trim().replace(/^ghcr\.io\//i, '').replace(/^\/+|\/+$/g, '');
15
17
  const getGhcrImageName = (config, configuredImageName) => {
16
- const withoutRegistry = configuredImageName.trim().replace(/^ghcr\.io\//i, '');
18
+ const withoutRegistry = normalizeConfiguredImageRepository(configuredImageName);
17
19
  const hasOwner = withoutRegistry.includes('/');
18
20
  const repository = hasOwner ? withoutRegistry : `${config.github.owner}/${withoutRegistry}`;
19
21
  return `ghcr.io/${repository.toLowerCase()}`;
20
22
  };
23
+ const getDockerJenkinsJobName = (configuredImageName) => {
24
+ const repository = normalizeConfiguredImageRepository(configuredImageName);
25
+ const segments = repository.split('/').filter(Boolean);
26
+ const jobName = segments.at(-1)?.trim() ?? '';
27
+ if (!jobName)
28
+ throw new Error('Docker image name cannot be empty.');
29
+ return jobName;
30
+ };
21
31
  const build = async (options) => {
22
32
  const { env } = options;
23
33
  console.log(chalk_1.default.blue.bold(`🚀 Deploying ${env.toUpperCase()} environment...\n`));
24
- const config = (0, deployment_config_1.ensureDeploymentConfig)();
34
+ const config = (0, docker_config_1.ensureDockerConfig)();
35
+ const jenkinsConnections = (0, jenkins_config_1.getJenkinsConnectionsConfig)();
25
36
  const environmentConfig = config.environments[env];
26
37
  const dockerfilePath = environmentConfig.dockerfilePath;
27
38
  const imageName = getGhcrImageName(config, environmentConfig.imageName);
28
- const jenkinsJobName = environmentConfig.imageName;
29
- if (!config.jenkins) {
30
- throw new Error('Jenkins CLI is not configured for this project. Run `indraq configure` and enter your Jenkins server details.');
39
+ const jenkinsJobName = getDockerJenkinsJobName(environmentConfig.imageName);
40
+ if (!environmentConfig.imageName.trim()) {
41
+ throw new Error(`Docker ${env.toUpperCase()} image name is not configured. Run \`indraq configure\` Docker / GHCR.`);
42
+ }
43
+ if (!config.github.owner.trim()) {
44
+ throw new Error('GitHub / GHCR destination is not configured. Run `indraq configure` → Docker / GHCR → GitHub / GHCR destination.');
45
+ }
46
+ const jenkinsEndpoint = jenkinsConnections.environments[env];
47
+ const jenkins = (0, jenkins_config_1.getResolvedJenkinsConnection)(env);
48
+ if (!jenkinsEndpoint) {
49
+ throw new Error(`Docker ${env.toUpperCase()} Jenkins URL is not configured. Run \`indraq configure\` → Jenkins → ${env === 'dev' ? 'Development' : 'Production'}.`);
50
+ }
51
+ if (!jenkins) {
52
+ throw new Error(`Docker ${env.toUpperCase()} Jenkins credentials are not configured on this computer. Run \`indraq configure\` → Jenkins → ${env === 'dev' ? 'Development' : 'Production'}.`);
31
53
  }
32
54
  (0, docker_service_1.assertDockerAvailable)();
33
55
  (0, jenkins_service_1.assertJavaAvailable)();
@@ -38,21 +60,23 @@ const build = async (options) => {
38
60
  if (!(0, node_fs_1.existsSync)(dockerfilePath)) {
39
61
  throw new Error(`Dockerfile not found: ${dockerfilePath}`);
40
62
  }
41
- if (!(0, node_fs_1.existsSync)((0, jenkins_service_1.getJenkinsCliJarPath)(config.jenkins.serverId))) {
63
+ if (!(0, node_fs_1.existsSync)((0, jenkins_service_1.getJenkinsCliJarPath)(jenkins.serverId))) {
42
64
  throw new Error('Jenkins CLI JAR is missing. Run `indraq configure` again.');
43
65
  }
44
- if (!(0, node_fs_1.existsSync)((0, jenkins_service_1.getJenkinsAuthFilePath)(config.jenkins.serverId))) {
66
+ if (!(0, node_fs_1.existsSync)((0, jenkins_service_1.getJenkinsAuthFilePath)(jenkins.serverId))) {
45
67
  throw new Error('Jenkins credentials are missing. Run `indraq configure` again.');
46
68
  }
47
69
  console.log(chalk_1.default.blue.bold('🔎 Preflight Checks\n'));
48
70
  console.log(chalk_1.default.green(`✓ Docker available; GitHub authenticated via ${(0, github_auth_service_1.describeGitHubAuthentication)(githubAuth)}`));
49
71
  console.log(chalk_1.default.gray(`✓ Registry owner: ${config.github.owner} (${config.github.ownerType === 'personal' ? 'personal account' : 'organization'})`));
50
- const authResult = (0, jenkins_service_1.validateJenkinsAuthentication)(config.jenkins);
51
- if (authResult.connectionMode !== config.jenkins.connectionMode) {
52
- config.jenkins.connectionMode = authResult.connectionMode;
72
+ const authResult = (0, jenkins_service_1.validateJenkinsAuthentication)(jenkins);
73
+ if (authResult.connectionMode !== jenkins.connectionMode) {
74
+ jenkinsConnections.environments[env] = { url: jenkins.url, connectionMode: authResult.connectionMode };
75
+ jenkins.connectionMode = authResult.connectionMode;
76
+ (0, jenkins_config_1.saveJenkinsConnectionsConfig)(jenkinsConnections);
53
77
  }
54
- console.log(chalk_1.default.green(`✓ Jenkins authenticated: ${config.jenkins.url}`));
55
- await (0, jenkins_service_1.assertJenkinsJobExists)(config.jenkins, jenkinsJobName);
78
+ console.log(chalk_1.default.green(`✓ Jenkins authenticated: ${jenkins.url}`));
79
+ await (0, jenkins_service_1.assertJenkinsJobExists)(jenkins, jenkinsJobName);
56
80
  console.log(chalk_1.default.green(`✓ Jenkins pipeline/job found: ${jenkinsJobName}\n`));
57
81
  console.log(chalk_1.default.blue.bold('🏷️ Step 1: Specify Image Tags\n'));
58
82
  const { tags: rawTags } = await inquirer_1.default.prompt([
@@ -107,10 +131,15 @@ const build = async (options) => {
107
131
  const primaryImage = `${imageName}:${primaryTag}`;
108
132
  const digest = (0, docker_service_1.getDockerImageDigest)(primaryImage);
109
133
  console.log(chalk_1.default.blue.bold('⚡ Step 5: Running Jenkins Pipeline\n'));
110
- console.log(chalk_1.default.gray(`Jenkins: ${config.jenkins.url}`));
134
+ console.log(chalk_1.default.gray(`Jenkins: ${jenkins.url}`));
111
135
  console.log(chalk_1.default.gray(`Pipeline/job: ${jenkinsJobName}`));
112
136
  console.log(chalk_1.default.gray('Live Jenkins console output starts below.\n'));
113
- await (0, jenkins_service_1.triggerJenkinsDeployment)(config.jenkins, jenkinsJobName);
137
+ await (0, jenkins_service_1.triggerJenkinsDeployment)(jenkins, jenkinsJobName, {
138
+ ACTION: 'DEPLOY',
139
+ IMAGE_TAG: primaryTag,
140
+ ...(digest ? { IMAGE_DIGEST: digest } : {}),
141
+ DEPLOYMENT_SOURCE: 'INDRAQ_CLI'
142
+ });
114
143
  console.log(chalk_1.default.green.bold('\n🎉 Build, push, and Jenkins deployment completed successfully!\n'));
115
144
  console.log(chalk_1.default.blue('📊 Summary:'));
116
145
  console.log(chalk_1.default.gray(` Environment: ${env}`));
@@ -1 +1 @@
1
- {"version":3,"file":"build.command.js","sourceRoot":"","sources":["../../../../src/modules/deploy/commands/build.command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.command.js","sourceRoot":"","sources":["../../../../src/modules/deploy/commands/build.command.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAChC,kDAA0B;AAC1B,qCAAqC;AACrC,2DAIiC;AACjC,0EAAgJ;AAChJ,oFAGoD;AACpD,+DAMoC;AACpC,6EAOiD;AAUjD,MAAM,WAAW,GAAG,qCAAqC,CAAC;AAE1D,MAAM,kCAAkC,GAAG,CAAC,mBAA2B,EAAU,EAAE,CACjF,mBAAmB,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAEnF,MAAM,gBAAgB,GAAG,CAAC,MAAoB,EAAE,mBAA2B,EAAU,EAAE;IACrF,MAAM,eAAe,GAAG,kCAAkC,CAAC,mBAAmB,CAAC,CAAC;IAChF,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC;IAE5F,OAAO,WAAW,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,mBAA2B,EAAU,EAAE;IACtE,MAAM,UAAU,GAAG,kCAAkC,CAAC,mBAAmB,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACpE,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEK,MAAM,KAAK,GAAG,KAAK,EAAE,OAAqB,EAAiB,EAAE;IAClE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IACxB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAEnF,MAAM,MAAM,GAAG,IAAA,kCAAkB,GAAE,CAAC;IACpC,MAAM,kBAAkB,GAAG,IAAA,4CAA2B,GAAE,CAAC;IACzD,MAAM,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,iBAAiB,CAAC,cAAc,CAAC;IACxD,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACxE,MAAM,cAAc,GAAG,uBAAuB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAE5E,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,WAAW,EAAE,0EAA0E,CAAC,CAAC;IACzH,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,kHAAkH,CAAC,CAAC;IACtI,CAAC;IAED,MAAM,eAAe,GAAG,kBAAkB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,IAAA,6CAA4B,EAAC,GAAG,CAAC,CAAC;IAClD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,WAAW,EAAE,wEAAwE,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC;IACtK,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,WAAW,EAAE,kGAAkG,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC;IAChM,CAAC;IAED,IAAA,sCAAqB,GAAE,CAAC;IACxB,IAAA,qCAAmB,GAAE,CAAC;IAEtB,MAAM,UAAU,GAAG,IAAA,gDAA0B,GAAE,CAAC;IAChD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACb,iJAAiJ,CAClJ,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,IAAA,oBAAU,EAAC,cAAc,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,yBAAyB,cAAc,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,CAAC,IAAA,oBAAU,EAAC,IAAA,sCAAoB,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,CAAC,IAAA,oBAAU,EAAC,IAAA,wCAAsB,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,KAAK,CACT,gDAAgD,IAAA,kDAA4B,EAAC,UAAU,CAAC,EAAE,CAC3F,CACF,CAAC;IACF,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CACR,qBAAqB,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,cAAc,GAAG,CAC7H,CACF,CAAC;IAEF,MAAM,UAAU,GAAG,IAAA,+CAA6B,EAAC,OAAO,CAAC,CAAC;IAC1D,IAAI,UAAU,CAAC,cAAc,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC;QACzD,kBAAkB,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,cAAc,EAAE,UAAU,CAAC,cAAc,EAAE,CAAC;QACvG,OAAO,CAAC,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC;QACnD,IAAA,6CAA4B,EAAC,kBAAkB,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,4BAA4B,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAEpE,MAAM,IAAA,wCAAsB,EAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,iCAAiC,cAAc,IAAI,CAAC,CAAC,CAAC;IAE9E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;IAClE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAY;QACzD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,uDAAuD;YAChE,OAAO,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;YAC3C,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC1B,MAAM,IAAI,GAAG,KAAK;qBACf,KAAK,CAAC,GAAG,CAAC;qBACV,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;qBACxB,MAAM,CAAC,OAAO,CAAC,CAAC;gBAEnB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACtB,OAAO,+BAA+B,CAAC;gBACzC,CAAC;gBAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9D,OAAO,UAAU,CAAC,CAAC,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACjE,CAAC;SACF;KACF,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CACrB,IAAI,GAAG,CACL,OAAO;SACJ,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;SACxB,MAAM,CAAC,OAAO,CAAC,CACnB,CACF,CAAC;IAEF,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,eAAe,cAAc,EAAE,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,UAAU,SAAS,EAAE,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEtD,IAAA,iCAAgB,EAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC;IAElE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;IAC3E,MAAM,8BAA8B,GAAG,IAAA,iCAAgB,EAAC,UAAU,CAAC,CAAC;IACpE,IAAI,8BAA8B,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC,CAAC;IAC9F,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CACV,+HAA+H,CAChI,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC,CAAC;IAC/F,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAC;IACnE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,GAAG,SAAS,IAAI,GAAG,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,WAAW,YAAY,KAAK,CAAC,CAAC,CAAC;QACtD,IAAA,gCAAe,EAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAC;IAEpE,MAAM,YAAY,GAAG,GAAG,SAAS,IAAI,UAAU,EAAE,CAAC;IAClD,MAAM,MAAM,GAAG,IAAA,qCAAoB,EAAC,YAAY,CAAC,CAAC;IAElD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,iBAAiB,cAAc,EAAE,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,CAAC;IAEvE,MAAM,IAAA,0CAAwB,EAAC,OAAO,EAAE,cAAc,EAAE;QACtD,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,UAAU;QACrB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,iBAAiB,EAAE,YAAY;KAChC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC,CAAC;IACpG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IACxF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,YAAY,SAAS,EAAE,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kBAAkB,cAAc,EAAE,CAAC,CAAC,CAAC;IAC5D,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC,CAAC;AAnKW,QAAA,KAAK,SAmKhB"}
@@ -0,0 +1,2 @@
1
+ export declare const configureDocker: () => Promise<void>;
2
+ //# sourceMappingURL=configure-docker.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure-docker.command.d.ts","sourceRoot":"","sources":["../../../../src/modules/deploy/commands/configure-docker.command.ts"],"names":[],"mappings":"AAkKA,eAAO,MAAM,eAAe,QAAa,OAAO,CAAC,IAAI,CAyBpD,CAAC"}
@@ -0,0 +1,169 @@
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.configureDocker = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const inquirer_1 = __importDefault(require("inquirer"));
9
+ const node_fs_1 = require("node:fs");
10
+ const docker_config_1 = require("../config/docker-config");
11
+ const github_auth_service_1 = require("../../../shared/github/github-auth.service");
12
+ const github_api_service_1 = require("../../../shared/github/github-api.service");
13
+ const environmentLabel = (env) => env === 'dev' ? 'Development' : 'Production';
14
+ const configureEnvironment = async (config, env) => {
15
+ const current = config.environments[env];
16
+ console.log(chalk_1.default.blue.bold(`\n🐳 Docker ${environmentLabel(env)}\n`));
17
+ const { imageName } = await inquirer_1.default.prompt([
18
+ {
19
+ type: 'input',
20
+ name: 'imageName',
21
+ message: `Image name for ${environmentLabel(env)}:`,
22
+ default: current.imageName,
23
+ filter: (input) => input.trim(),
24
+ validate: (input) => /^[a-z0-9]+(?:[._-][a-z0-9]+)*$/i.test(input.trim())
25
+ ? true
26
+ : 'Use a valid image name such as my-service.'
27
+ }
28
+ ]);
29
+ const { useDefault } = await inquirer_1.default.prompt([
30
+ {
31
+ type: 'confirm',
32
+ name: 'useDefault',
33
+ message: 'Use Dockerfile at project root?',
34
+ default: current.dockerfilePath === 'Dockerfile'
35
+ }
36
+ ]);
37
+ let dockerfilePath = 'Dockerfile';
38
+ if (!useDefault) {
39
+ const answer = await inquirer_1.default.prompt([
40
+ {
41
+ type: 'input',
42
+ name: 'dockerfilePath',
43
+ message: 'Dockerfile path:',
44
+ default: current.dockerfilePath,
45
+ filter: (input) => input.trim(),
46
+ validate: (input) => input.trim() ? true : 'Dockerfile path is required.'
47
+ }
48
+ ]);
49
+ dockerfilePath = answer.dockerfilePath;
50
+ }
51
+ if (!(0, node_fs_1.existsSync)(dockerfilePath)) {
52
+ console.log(chalk_1.default.yellow(`⚠ ${dockerfilePath} does not exist right now. The setting will still be saved.`));
53
+ }
54
+ config.environments[env] = {
55
+ name: environmentLabel(env),
56
+ imageName,
57
+ dockerfilePath
58
+ };
59
+ (0, docker_config_1.saveDockerConfig)(config);
60
+ console.log(chalk_1.default.green(`✓ Docker ${environmentLabel(env)} configuration saved.`));
61
+ };
62
+ const promptManualOwner = async (message, current) => {
63
+ const answer = await inquirer_1.default.prompt([
64
+ {
65
+ type: 'input',
66
+ name: 'owner',
67
+ message,
68
+ default: current,
69
+ filter: (input) => input.trim(),
70
+ validate: (input) => /^[A-Za-z0-9](?:[A-Za-z0-9-]{0,37}[A-Za-z0-9])?$/.test(input.trim())
71
+ ? true
72
+ : 'Enter a valid GitHub username/organization.'
73
+ }
74
+ ]);
75
+ return answer.owner;
76
+ };
77
+ const configureGitHub = async (config) => {
78
+ console.log(chalk_1.default.blue.bold('\n🐙 GitHub / GHCR destination\n'));
79
+ const auth = (0, github_auth_service_1.detectGitHubAuthentication)();
80
+ if (!auth) {
81
+ throw new Error('No authenticated GitHub session found. Sign in using normal Git/Git Bash credentials first.');
82
+ }
83
+ console.log(chalk_1.default.green(`✓ GitHub authentication detected via ${(0, github_auth_service_1.describeGitHubAuthentication)(auth)}`));
84
+ console.log(chalk_1.default.gray('Reading account and organization memberships...'));
85
+ const identity = await (0, github_api_service_1.getGitHubIdentity)(auth);
86
+ const personal = identity.username ?? auth.username;
87
+ const { ownerType } = await inquirer_1.default.prompt([
88
+ {
89
+ type: 'list',
90
+ name: 'ownerType',
91
+ message: 'Where should Docker images be pushed?',
92
+ choices: [
93
+ ...(personal ? [{ name: `Personal account (${personal})`, value: 'personal' }] : []),
94
+ { name: 'Organization', value: 'organization' }
95
+ ],
96
+ default: config.github.ownerType
97
+ }
98
+ ]);
99
+ let owner;
100
+ if (ownerType === 'personal') {
101
+ if (!personal)
102
+ throw new Error('GitHub username could not be determined.');
103
+ owner = personal;
104
+ }
105
+ else if (identity.organizations.length > 0) {
106
+ const answer = await inquirer_1.default.prompt([
107
+ {
108
+ type: 'list',
109
+ name: 'owner',
110
+ message: 'Select GitHub organization:',
111
+ choices: [
112
+ ...identity.organizations.map((org) => ({ name: org, value: org })),
113
+ new inquirer_1.default.Separator(),
114
+ { name: 'Enter another organization manually', value: '__manual__' }
115
+ ],
116
+ default: config.github.ownerType === 'organization' ? config.github.owner : undefined
117
+ }
118
+ ]);
119
+ owner = answer.owner === '__manual__'
120
+ ? await promptManualOwner('Organization name:', config.github.ownerType === 'organization' ? config.github.owner : '')
121
+ : answer.owner;
122
+ }
123
+ else {
124
+ owner = await promptManualOwner('Organization name:', config.github.ownerType === 'organization' ? config.github.owner : '');
125
+ }
126
+ config.github = { ownerType, owner };
127
+ (0, docker_config_1.saveDockerConfig)(config);
128
+ console.log(chalk_1.default.green(`✓ GHCR destination saved: ghcr.io/${owner.toLowerCase()}/...`));
129
+ };
130
+ const printReview = (config) => {
131
+ console.log(chalk_1.default.blue.bold('\n📋 Docker / GHCR configuration\n'));
132
+ console.log(` GHCR owner: ${config.github.owner || '<not configured>'} (${config.github.ownerType})`);
133
+ for (const env of ['dev', 'prod']) {
134
+ const item = config.environments[env];
135
+ console.log(` ${environmentLabel(env)} image: ${item.imageName || '<not configured>'}`);
136
+ console.log(` ${environmentLabel(env)} Dockerfile: ${item.dockerfilePath}`);
137
+ }
138
+ console.log(chalk_1.default.gray(`\n Config file: ${(0, docker_config_1.getDockerConfigPath)()}\n`));
139
+ };
140
+ const configureDocker = async () => {
141
+ const config = (0, docker_config_1.getDockerConfig)() ?? (0, docker_config_1.createDefaultDockerConfig)();
142
+ while (true) {
143
+ const { action } = await inquirer_1.default.prompt([
144
+ {
145
+ type: 'list',
146
+ name: 'action',
147
+ message: 'Docker / GHCR — what do you want to configure?',
148
+ choices: [
149
+ { name: `Development (${config.environments.dev.imageName || 'not configured'})`, value: 'dev' },
150
+ { name: `Production (${config.environments.prod.imageName || 'not configured'})`, value: 'prod' },
151
+ { name: `GitHub / GHCR destination (${config.github.owner || 'not configured'})`, value: 'github' },
152
+ new inquirer_1.default.Separator(),
153
+ { name: 'Review Docker configuration', value: 'review' },
154
+ { name: 'Back', value: 'back' }
155
+ ]
156
+ }
157
+ ]);
158
+ if (action === 'back')
159
+ return;
160
+ if (action === 'review')
161
+ printReview(config);
162
+ else if (action === 'github')
163
+ await configureGitHub(config);
164
+ else
165
+ await configureEnvironment(config, action);
166
+ }
167
+ };
168
+ exports.configureDocker = configureDocker;
169
+ //# sourceMappingURL=configure-docker.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure-docker.command.js","sourceRoot":"","sources":["../../../../src/modules/deploy/commands/configure-docker.command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export type DockerEnvironmentName = 'dev' | 'prod';
2
+ export type GitHubOwnerType = 'personal' | 'organization';
3
+ export interface DockerEnvironmentConfig {
4
+ name: string;
5
+ imageName: string;
6
+ dockerfilePath: string;
7
+ }
8
+ export interface DockerConfig {
9
+ schemaVersion: 1;
10
+ github: {
11
+ ownerType: GitHubOwnerType;
12
+ owner: string;
13
+ };
14
+ environments: Record<DockerEnvironmentName, DockerEnvironmentConfig>;
15
+ }
16
+ export declare const createDefaultDockerConfig: () => DockerConfig;
17
+ export declare const getDockerConfigPath: () => string;
18
+ export declare const getDockerConfig: () => DockerConfig | null;
19
+ export declare const saveDockerConfig: (config: DockerConfig) => void;
20
+ export declare const ensureDockerConfig: () => DockerConfig;
21
+ //# sourceMappingURL=docker-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker-config.d.ts","sourceRoot":"","sources":["../../../../src/modules/deploy/config/docker-config.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,MAAM,CAAC;AACnD,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,cAAc,CAAC;AAE1D,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,CAAC,CAAC;IACjB,MAAM,EAAE;QACN,SAAS,EAAE,eAAe,CAAC;QAC3B,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,YAAY,EAAE,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,CAAC,CAAC;CACtE;AAgHD,eAAO,MAAM,yBAAyB,QAAO,YAkB3C,CAAC;AAEH,eAAO,MAAM,mBAAmB,QAAO,MAA8C,CAAC;AAiEtF,eAAO,MAAM,eAAe,QAAO,YAAY,GAAG,IAcjD,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,QAAQ,YAAY,KAAG,IAMvD,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAO,YAIrC,CAAC"}