@sembix/cli 0.1.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 (61) hide show
  1. package/.env.example +6 -0
  2. package/LICENSE +15 -0
  3. package/README.md +698 -0
  4. package/config.example.yaml +118 -0
  5. package/dist/commands/hub-integration.d.ts +3 -0
  6. package/dist/commands/hub-integration.d.ts.map +1 -0
  7. package/dist/commands/hub-integration.js +107 -0
  8. package/dist/commands/hub-integration.js.map +1 -0
  9. package/dist/commands/setup.d.ts +3 -0
  10. package/dist/commands/setup.d.ts.map +1 -0
  11. package/dist/commands/setup.js +282 -0
  12. package/dist/commands/setup.js.map +1 -0
  13. package/dist/commands/update.d.ts +3 -0
  14. package/dist/commands/update.d.ts.map +1 -0
  15. package/dist/commands/update.js +498 -0
  16. package/dist/commands/update.js.map +1 -0
  17. package/dist/config-schema.d.ts +417 -0
  18. package/dist/config-schema.d.ts.map +1 -0
  19. package/dist/config-schema.js +152 -0
  20. package/dist/config-schema.js.map +1 -0
  21. package/dist/config.d.ts +6 -0
  22. package/dist/config.d.ts.map +1 -0
  23. package/dist/config.js +17 -0
  24. package/dist/config.js.map +1 -0
  25. package/dist/index.d.ts +3 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/index.js +260 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/prompts/environment-setup.d.ts +4 -0
  30. package/dist/prompts/environment-setup.d.ts.map +1 -0
  31. package/dist/prompts/environment-setup.js +689 -0
  32. package/dist/prompts/environment-setup.js.map +1 -0
  33. package/dist/prompts/hub-integration-step.d.ts +21 -0
  34. package/dist/prompts/hub-integration-step.d.ts.map +1 -0
  35. package/dist/prompts/hub-integration-step.js +104 -0
  36. package/dist/prompts/hub-integration-step.js.map +1 -0
  37. package/dist/prompts/hub-integration.d.ts +4 -0
  38. package/dist/prompts/hub-integration.d.ts.map +1 -0
  39. package/dist/prompts/hub-integration.js +141 -0
  40. package/dist/prompts/hub-integration.js.map +1 -0
  41. package/dist/prompts/prompt-helpers.d.ts +18 -0
  42. package/dist/prompts/prompt-helpers.d.ts.map +1 -0
  43. package/dist/prompts/prompt-helpers.js +50 -0
  44. package/dist/prompts/prompt-helpers.js.map +1 -0
  45. package/dist/types.d.ts +144 -0
  46. package/dist/types.d.ts.map +1 -0
  47. package/dist/types.js +23 -0
  48. package/dist/types.js.map +1 -0
  49. package/dist/utils/config-loader.d.ts +34 -0
  50. package/dist/utils/config-loader.d.ts.map +1 -0
  51. package/dist/utils/config-loader.js +377 -0
  52. package/dist/utils/config-loader.js.map +1 -0
  53. package/dist/utils/github.d.ts +38 -0
  54. package/dist/utils/github.d.ts.map +1 -0
  55. package/dist/utils/github.js +188 -0
  56. package/dist/utils/github.js.map +1 -0
  57. package/dist/utils/ui.d.ts +18 -0
  58. package/dist/utils/ui.d.ts.map +1 -0
  59. package/dist/utils/ui.js +62 -0
  60. package/dist/utils/ui.js.map +1 -0
  61. package/package.json +80 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment-setup.js","sourceRoot":"","sources":["../../src/prompts/environment-setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Hub integration configuration (returned as optional fields)
3
+ */
4
+ export interface HubIntegrationStep {
5
+ hubRoles?: {
6
+ engineExecutionRole?: string;
7
+ consumerRole?: string;
8
+ };
9
+ appConfig?: {
10
+ roleArn?: string;
11
+ appId?: string;
12
+ envId?: string;
13
+ profileId?: string;
14
+ };
15
+ }
16
+ /**
17
+ * Prompt for Hub integration as Step 9 in the environment setup
18
+ * Returns undefined if user skips Hub configuration
19
+ */
20
+ export declare function promptHubIntegrationStep(skipHub?: boolean): Promise<HubIntegrationStep | undefined>;
21
+ //# sourceMappingURL=hub-integration-step.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hub-integration-step.d.ts","sourceRoot":"","sources":["../../src/prompts/hub-integration-step.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE;QACT,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,SAAS,CAAC,EAAE;QACV,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CA4GzG"}
@@ -0,0 +1,104 @@
1
+ import { input, confirm } from '@inquirer/prompts';
2
+ import { iamRoleArnSchema } from '../types.js';
3
+ import * as ui from '../utils/ui.js';
4
+ import chalk from 'chalk';
5
+ /**
6
+ * Prompt for Hub integration as Step 9 in the environment setup
7
+ * Returns undefined if user skips Hub configuration
8
+ */
9
+ export async function promptHubIntegrationStep(skipHub) {
10
+ // If skipHub flag is provided, skip this step entirely
11
+ if (skipHub) {
12
+ return undefined;
13
+ }
14
+ ui.section('Step 9: Sembix Hub Integration (Optional)');
15
+ console.log(chalk.dim('🔗 Configure Sembix Hub cross-account roles and AppConfig integration.'));
16
+ console.log(chalk.dim(' This step is optional and can be completed later after bootstrap deployment.'));
17
+ console.log();
18
+ console.log(chalk.yellow('💡 Important:'));
19
+ console.log(chalk.dim(' After running the bootstrap deployment workflow, you will receive Hub role ARNs'));
20
+ console.log(chalk.dim(' and AppConfig IDs in the deployment output. You can either:'));
21
+ console.log(chalk.dim(' • Enter them now if you already have them'));
22
+ console.log(chalk.dim(' • Skip this step and run: sembix studio update <env> --repo <repo> (with Hub flags)'));
23
+ console.log();
24
+ const readyToFillOut = await confirm({
25
+ message: 'Are you ready to fill out Hub integration details now?',
26
+ default: false,
27
+ });
28
+ if (!readyToFillOut) {
29
+ ui.info('Skipping Hub integration. You can add it later using the update command.');
30
+ return undefined;
31
+ }
32
+ console.log();
33
+ ui.section('Sembix Hub Cross-Account Roles');
34
+ console.log(chalk.dim('Enter the cross-account role ARNs from your bootstrap deployment output.'));
35
+ console.log(chalk.dim('You can leave fields blank by pressing Enter if they are not provided yet.'));
36
+ console.log();
37
+ // Hub Roles
38
+ const engineExecutionRole = await input({
39
+ message: 'Hub Engine Execution Role ARN (optional):',
40
+ default: '',
41
+ validate: (value) => {
42
+ if (!value)
43
+ return true;
44
+ const result = iamRoleArnSchema.safeParse(value);
45
+ return result.success || result.error.errors[0].message;
46
+ },
47
+ });
48
+ const consumerRole = await input({
49
+ message: 'Hub Consumer Role ARN (optional):',
50
+ default: '',
51
+ validate: (value) => {
52
+ if (!value)
53
+ return true;
54
+ const result = iamRoleArnSchema.safeParse(value);
55
+ return result.success || result.error.errors[0].message;
56
+ },
57
+ });
58
+ ui.section('AppConfig Integration (Optional)');
59
+ console.log(chalk.dim('Enter AppConfig configuration values if applicable.'));
60
+ console.log();
61
+ // AppConfig
62
+ const appConfigRoleArn = await input({
63
+ message: 'AppConfig Role ARN (optional):',
64
+ default: '',
65
+ validate: (value) => {
66
+ if (!value)
67
+ return true;
68
+ const result = iamRoleArnSchema.safeParse(value);
69
+ return result.success || result.error.errors[0].message;
70
+ },
71
+ });
72
+ const appConfigAppId = await input({
73
+ message: 'AppConfig Application ID (optional):',
74
+ default: '',
75
+ });
76
+ const appConfigEnvId = await input({
77
+ message: 'AppConfig Environment ID (optional):',
78
+ default: '',
79
+ });
80
+ const appConfigProfileId = await input({
81
+ message: 'AppConfig Profile ID (optional):',
82
+ default: '',
83
+ });
84
+ // Only return Hub config if at least one field is filled
85
+ const hasHubRoles = engineExecutionRole || consumerRole;
86
+ const hasAppConfig = appConfigRoleArn || appConfigAppId || appConfigEnvId || appConfigProfileId;
87
+ if (!hasHubRoles && !hasAppConfig) {
88
+ ui.info('No Hub configuration provided. Skipping Hub integration.');
89
+ return undefined;
90
+ }
91
+ return {
92
+ hubRoles: hasHubRoles ? {
93
+ engineExecutionRole: engineExecutionRole || undefined,
94
+ consumerRole: consumerRole || undefined,
95
+ } : undefined,
96
+ appConfig: hasAppConfig ? {
97
+ roleArn: appConfigRoleArn || undefined,
98
+ appId: appConfigAppId || undefined,
99
+ envId: appConfigEnvId || undefined,
100
+ profileId: appConfigProfileId || undefined,
101
+ } : undefined,
102
+ };
103
+ }
104
+ //# sourceMappingURL=hub-integration-step.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hub-integration-step.js","sourceRoot":"","sources":["../../src/prompts/hub-integration-step.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAkB1B;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,OAAiB;IAC9D,uDAAuD;IACvD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;IAExD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC,CAAC;IACjG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iFAAiF,CAAC,CAAC,CAAC;IAC1G,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oFAAoF,CAAC,CAAC,CAAC;IAC7G,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC,CAAC;IACzF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wFAAwF,CAAC,CAAC,CAAC;IACjH,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC;QACnC,OAAO,EAAE,wDAAwD;QACjE,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IAEH,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,EAAE,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;QACpF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,EAAE,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;IAE7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0EAA0E,CAAC,CAAC,CAAC;IACnG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC,CAAC;IACrG,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,YAAY;IACZ,MAAM,mBAAmB,GAAG,MAAM,KAAK,CAAC;QACtC,OAAO,EAAE,2CAA2C;QACpD,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YACxB,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACjD,OAAO,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC1D,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC;QAC/B,OAAO,EAAE,mCAAmC;QAC5C,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YACxB,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACjD,OAAO,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC1D,CAAC;KACF,CAAC,CAAC;IAEH,EAAE,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;IAE/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,YAAY;IACZ,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAAC;QACnC,OAAO,EAAE,gCAAgC;QACzC,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YACxB,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACjD,OAAO,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC1D,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC;QACjC,OAAO,EAAE,sCAAsC;QAC/C,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC;QACjC,OAAO,EAAE,sCAAsC;QAC/C,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;IAEH,MAAM,kBAAkB,GAAG,MAAM,KAAK,CAAC;QACrC,OAAO,EAAE,kCAAkC;QAC3C,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;IAEH,yDAAyD;IACzD,MAAM,WAAW,GAAG,mBAAmB,IAAI,YAAY,CAAC;IACxD,MAAM,YAAY,GAAG,gBAAgB,IAAI,cAAc,IAAI,cAAc,IAAI,kBAAkB,CAAC;IAEhG,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,EAAE,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;QACpE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;YACtB,mBAAmB,EAAE,mBAAmB,IAAI,SAAS;YACrD,YAAY,EAAE,YAAY,IAAI,SAAS;SACxC,CAAC,CAAC,CAAC,SAAS;QACb,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;YACxB,OAAO,EAAE,gBAAgB,IAAI,SAAS;YACtC,KAAK,EAAE,cAAc,IAAI,SAAS;YAClC,KAAK,EAAE,cAAc,IAAI,SAAS;YAClC,SAAS,EAAE,kBAAkB,IAAI,SAAS;SAC3C,CAAC,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { HubIntegrationConfig, CommandOptions } from '../types.js';
2
+ import { GitHubClient } from '../utils/github.js';
3
+ export declare function promptHubIntegration(githubClient: GitHubClient, providedEnvironmentName?: string, providedRepo?: string, cliFlags?: CommandOptions): Promise<HubIntegrationConfig>;
4
+ //# sourceMappingURL=hub-integration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hub-integration.d.ts","sourceRoot":"","sources":["../../src/prompts/hub-integration.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGxE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,YAAY,EAC1B,uBAAuB,CAAC,EAAE,MAAM,EAChC,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,GAAE,cAAmB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAiL/B"}
@@ -0,0 +1,141 @@
1
+ import { input, select } from '@inquirer/prompts';
2
+ import { iamRoleArnSchema } from '../types.js';
3
+ import * as ui from '../utils/ui.js';
4
+ import { promptIfMissingOptional } from './prompt-helpers.js';
5
+ export async function promptHubIntegration(githubClient, providedEnvironmentName, providedRepo, cliFlags = {}) {
6
+ ui.section('Repository & Environment Selection');
7
+ // Step 1: Repository Selection
8
+ let repositoryChoice;
9
+ let owner;
10
+ let repo;
11
+ if (providedRepo) {
12
+ // Repository provided via CLI argument
13
+ const parts = providedRepo.split('/');
14
+ if (parts.length !== 2) {
15
+ ui.error('Invalid repository format. Use: owner/repo');
16
+ process.exit(1);
17
+ }
18
+ repositoryChoice = providedRepo;
19
+ [owner, repo] = parts;
20
+ ui.info(`Using repository: ${ui.highlight(repositoryChoice)}`);
21
+ }
22
+ else {
23
+ // Interactive repository selection
24
+ const repos = await githubClient.listRepositories();
25
+ if (repos.length === 0) {
26
+ ui.error('No repositories found for your account.');
27
+ process.exit(1);
28
+ }
29
+ repositoryChoice = await select({
30
+ message: 'Select deployment repository:',
31
+ choices: repos.map(repo => ({
32
+ name: repo.full_name,
33
+ value: repo.full_name,
34
+ })),
35
+ });
36
+ [owner, repo] = repositoryChoice.split('/');
37
+ }
38
+ // Step 2: Environment Selection
39
+ let environmentName;
40
+ if (providedEnvironmentName) {
41
+ // Environment name provided via CLI argument - verify it exists
42
+ ui.info('Fetching environments...');
43
+ const environments = await githubClient.listEnvironments(owner, repo);
44
+ if (environments.length === 0) {
45
+ ui.error(`No environments found in ${repositoryChoice}. Create one first using: sembix studio create`);
46
+ process.exit(1);
47
+ }
48
+ const envExists = environments.some(env => env.name === providedEnvironmentName);
49
+ if (!envExists) {
50
+ ui.error(`Environment '${providedEnvironmentName}' not found in ${repositoryChoice}`);
51
+ console.log();
52
+ console.log(ui.dim('Available environments:'));
53
+ environments.forEach(env => console.log(ui.dim(` - ${env.name}`)));
54
+ process.exit(1);
55
+ }
56
+ environmentName = providedEnvironmentName;
57
+ ui.info(`Using environment: ${ui.highlight(environmentName)}`);
58
+ }
59
+ else {
60
+ // Interactive environment selection
61
+ ui.info('Fetching environments...');
62
+ const environments = await githubClient.listEnvironments(owner, repo);
63
+ if (environments.length === 0) {
64
+ ui.error(`No environments found in ${repositoryChoice}. Create one first using: sembix studio create`);
65
+ process.exit(1);
66
+ }
67
+ environmentName = await select({
68
+ message: 'Select environment to update:',
69
+ choices: environments.map(env => ({
70
+ name: env.name,
71
+ value: env.name,
72
+ })),
73
+ });
74
+ }
75
+ ui.section('Sembix Hub Cross-Account Roles');
76
+ ui.info('Enter the cross-account role ARNs from your bootstrap deployment output.');
77
+ ui.info('You can leave fields blank by pressing Enter if they are not provided yet.');
78
+ console.log();
79
+ // Step 3: Hub Roles
80
+ const engineExecutionRole = await promptIfMissingOptional(cliFlags.hubEngineExecutionRole, async () => input({
81
+ message: 'Hub Engine Execution Role ARN (optional):',
82
+ default: '',
83
+ validate: (value) => {
84
+ if (!value)
85
+ return true;
86
+ const result = iamRoleArnSchema.safeParse(value);
87
+ return result.success || result.error.errors[0].message;
88
+ },
89
+ }), 'Hub Engine Execution Role');
90
+ const consumerRole = await promptIfMissingOptional(cliFlags.hubConsumerRole, async () => input({
91
+ message: 'Hub Consumer Role ARN (optional):',
92
+ default: '',
93
+ validate: (value) => {
94
+ if (!value)
95
+ return true;
96
+ const result = iamRoleArnSchema.safeParse(value);
97
+ return result.success || result.error.errors[0].message;
98
+ },
99
+ }), 'Hub Consumer Role');
100
+ ui.section('AppConfig Integration (Optional)');
101
+ ui.info('Enter AppConfig configuration values if applicable.');
102
+ console.log();
103
+ // Step 4: AppConfig (Optional)
104
+ const appConfigRoleArn = await promptIfMissingOptional(cliFlags.hubAppconfigRole, async () => input({
105
+ message: 'AppConfig Role ARN (optional):',
106
+ default: '',
107
+ validate: (value) => {
108
+ if (!value)
109
+ return true;
110
+ const result = iamRoleArnSchema.safeParse(value);
111
+ return result.success || result.error.errors[0].message;
112
+ },
113
+ }), 'AppConfig Role');
114
+ const appConfigAppId = await promptIfMissingOptional(cliFlags.hubAppconfigAppId, async () => input({
115
+ message: 'AppConfig Application ID (optional):',
116
+ default: '',
117
+ }), 'AppConfig App ID');
118
+ const appConfigEnvId = await promptIfMissingOptional(cliFlags.hubAppconfigEnvId, async () => input({
119
+ message: 'AppConfig Environment ID (optional):',
120
+ default: '',
121
+ }), 'AppConfig Env ID');
122
+ const appConfigProfileId = await promptIfMissingOptional(cliFlags.hubAppconfigProfileId, async () => input({
123
+ message: 'AppConfig Profile ID (optional):',
124
+ default: '',
125
+ }), 'AppConfig Profile ID');
126
+ return {
127
+ repository: { owner, repo },
128
+ environmentName,
129
+ hubRoles: {
130
+ engineExecutionRole: engineExecutionRole || undefined,
131
+ consumerRole: consumerRole || undefined,
132
+ },
133
+ appConfig: {
134
+ roleArn: appConfigRoleArn || undefined,
135
+ appId: appConfigAppId || undefined,
136
+ envId: appConfigEnvId || undefined,
137
+ profileId: appConfigProfileId || undefined,
138
+ },
139
+ };
140
+ }
141
+ //# sourceMappingURL=hub-integration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hub-integration.js","sourceRoot":"","sources":["../../src/prompts/hub-integration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Helper to conditionally prompt for a string input
3
+ * Skips prompt if value is already provided in partialConfig
4
+ */
5
+ export declare function promptIfMissing<T = string>(partialValue: T | undefined, promptFn: () => Promise<T>, label: string): Promise<T>;
6
+ /**
7
+ * Helper to conditionally prompt for a string input (allows empty strings)
8
+ */
9
+ export declare function promptIfMissingOptional(partialValue: string | undefined, promptFn: () => Promise<string>, label: string): Promise<string | undefined>;
10
+ /**
11
+ * Helper to conditionally prompt for a boolean
12
+ */
13
+ export declare function promptBooleanIfMissing(partialValue: boolean | undefined, promptFn: () => Promise<boolean>, label: string): Promise<boolean>;
14
+ /**
15
+ * Helper to check if a whole section is already provided
16
+ */
17
+ export declare function isSectionProvided(section: unknown): boolean;
18
+ //# sourceMappingURL=prompt-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-helpers.d.ts","sourceRoot":"","sources":["../../src/prompts/prompt-helpers.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAsB,eAAe,CAAC,CAAC,GAAG,MAAM,EAC9C,YAAY,EAAE,CAAC,GAAG,SAAS,EAC3B,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC1B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,CAAC,CAAC,CAOZ;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC/B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAW7B;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,OAAO,GAAG,SAAS,EACjC,QAAQ,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EAChC,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC,CAOlB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAG3D"}
@@ -0,0 +1,50 @@
1
+ // Prompt functions imported by other modules as needed
2
+ import * as ui from '../utils/ui.js';
3
+ /**
4
+ * Helper to conditionally prompt for a string input
5
+ * Skips prompt if value is already provided in partialConfig
6
+ */
7
+ export async function promptIfMissing(partialValue, promptFn, label) {
8
+ if (partialValue !== undefined) {
9
+ ui.info(`Using ${label}: ${ui.highlight(String(partialValue))} (from config)`);
10
+ console.log();
11
+ return partialValue;
12
+ }
13
+ return promptFn();
14
+ }
15
+ /**
16
+ * Helper to conditionally prompt for a string input (allows empty strings)
17
+ */
18
+ export async function promptIfMissingOptional(partialValue, promptFn, label) {
19
+ if (partialValue !== undefined && partialValue !== '') {
20
+ ui.info(`Using ${label}: ${ui.highlight(partialValue)} (from config)`);
21
+ console.log();
22
+ return partialValue;
23
+ }
24
+ else if (partialValue === '') {
25
+ // Empty string provided - skip prompt
26
+ return undefined;
27
+ }
28
+ const result = await promptFn();
29
+ return result || undefined;
30
+ }
31
+ /**
32
+ * Helper to conditionally prompt for a boolean
33
+ */
34
+ export async function promptBooleanIfMissing(partialValue, promptFn, label) {
35
+ if (partialValue !== undefined) {
36
+ ui.info(`Using ${label}: ${ui.highlight(partialValue ? 'Yes' : 'No')} (from config)`);
37
+ console.log();
38
+ return partialValue;
39
+ }
40
+ return promptFn();
41
+ }
42
+ /**
43
+ * Helper to check if a whole section is already provided
44
+ */
45
+ export function isSectionProvided(section) {
46
+ if (!section || typeof section !== 'object')
47
+ return false;
48
+ return Object.keys(section).length > 0;
49
+ }
50
+ //# sourceMappingURL=prompt-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-helpers.js","sourceRoot":"","sources":["../../src/prompts/prompt-helpers.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAErC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,YAA2B,EAC3B,QAA0B,EAC1B,KAAa;IAEb,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,gBAAgB,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,OAAO,QAAQ,EAAE,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,YAAgC,EAChC,QAA+B,EAC/B,KAAa;IAEb,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC;QACtD,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,YAAY,CAAC;IACtB,CAAC;SAAM,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC;QAC/B,sCAAsC;QACtC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,QAAQ,EAAE,CAAC;IAChC,OAAO,MAAM,IAAI,SAAS,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,YAAiC,EACjC,QAAgC,EAChC,KAAa;IAEb,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACtF,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,OAAO,QAAQ,EAAE,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,OAAkC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACpE,CAAC"}
@@ -0,0 +1,144 @@
1
+ import { z } from 'zod';
2
+ export interface CommandOptions {
3
+ config?: string;
4
+ configFile?: string;
5
+ repo?: string;
6
+ skipHub?: boolean;
7
+ token?: string;
8
+ [key: string]: unknown;
9
+ }
10
+ export declare const awsRegions: readonly ["us-east-1", "us-east-2", "us-west-1", "us-west-2", "eu-west-1", "eu-west-2", "eu-central-1", "ap-northeast-1", "ap-southeast-1", "ap-southeast-2"];
11
+ export type AWSRegion = typeof awsRegions[number];
12
+ export declare const awsAccountIdSchema: z.ZodString;
13
+ export declare const iamRoleArnSchema: z.ZodString;
14
+ export declare const acmCertArnSchema: z.ZodString;
15
+ export declare const route53ZoneIdSchema: z.ZodString;
16
+ export declare const vpcIdSchema: z.ZodString;
17
+ export declare const subnetIdSchema: z.ZodString;
18
+ export declare const securityGroupIdSchema: z.ZodString;
19
+ /**
20
+ * Complete environment setup configuration required for execution.
21
+ * All required fields must be present before deployment operations.
22
+ * This type is used after merging ConfigFile, CLI flags, and interactive prompts.
23
+ *
24
+ * @see ConfigFile - Source: YAML configuration
25
+ * @see MergedConfig - Intermediate: Merged file + CLI flags
26
+ */
27
+ export interface EnvironmentSetupConfig {
28
+ repository: {
29
+ owner: string;
30
+ repo: string;
31
+ };
32
+ environmentName: string;
33
+ awsAccountId: string;
34
+ awsRegion: AWSRegion;
35
+ customerRoleArn: string;
36
+ terraformStateBucket: string;
37
+ database: {
38
+ name: string;
39
+ user: string;
40
+ };
41
+ networking: {
42
+ enableVpcEndpoints: boolean;
43
+ useCustomNetworking: boolean;
44
+ vpcCidr?: string;
45
+ publicSubnetCidrs?: string;
46
+ privateSubnetCidrs?: string;
47
+ azCount?: '2' | '3';
48
+ customVpcId?: string;
49
+ customPublicSubnetIds?: string;
50
+ customPrivateSubnetIds?: string;
51
+ };
52
+ security: {
53
+ workflowRunsKeyAlias?: string;
54
+ useCustomSecurityGroups: boolean;
55
+ customSecurityGroups?: {
56
+ workflowEngine?: string;
57
+ aurora?: string;
58
+ rdsProxy?: string;
59
+ bffEcs?: string;
60
+ bastion?: string;
61
+ bffAlb?: string;
62
+ };
63
+ useCustomIamPolicies: boolean;
64
+ customIamRoles?: {
65
+ workflowEngineExecutionRole?: string;
66
+ workflowEngineTaskRole?: string;
67
+ bffEcsTaskExecutionRole?: string;
68
+ bffEcsTaskRole?: string;
69
+ rdsProxyRole?: string;
70
+ sembixStudioMemoryRole?: string;
71
+ sembixStudioNotificationRole?: string;
72
+ };
73
+ };
74
+ tls: {
75
+ cloudfrontDomain: string;
76
+ cloudfrontCertArn: string;
77
+ bffAlbCertificateArn: string;
78
+ hostedZoneId: string;
79
+ };
80
+ features: {
81
+ deploySembixStudioMemory: boolean;
82
+ deploySembixStudioNotifications: boolean;
83
+ enableBffWaf: boolean;
84
+ };
85
+ frontend: {
86
+ githubAppClientId: string;
87
+ githubAppName: string;
88
+ jiraClientId: string;
89
+ };
90
+ }
91
+ /**
92
+ * Configuration merged from YAML file and CLI flags.
93
+ * All fields are optional since configuration is still incomplete.
94
+ * This represents an intermediate state before interactive prompts
95
+ * fill in the remaining required values.
96
+ *
97
+ * Includes all fields from EnvironmentSetupConfig plus hub configuration
98
+ * from ConfigFile (since hub is handled separately in the workflow).
99
+ *
100
+ * @see ConfigFile - Source: YAML configuration files
101
+ * @see EnvironmentSetupConfig - Target: Complete configuration for execution
102
+ */
103
+ export type MergedConfig = Partial<EnvironmentSetupConfig> & {
104
+ hub?: {
105
+ hubRoles?: {
106
+ engineExecutionRole?: string;
107
+ consumerRole?: string;
108
+ };
109
+ appConfig?: {
110
+ roleArn?: string;
111
+ appId?: string;
112
+ envId?: string;
113
+ profileId?: string;
114
+ };
115
+ };
116
+ };
117
+ export interface HubIntegrationConfig {
118
+ repository: {
119
+ owner: string;
120
+ repo: string;
121
+ };
122
+ environmentName: string;
123
+ hubRoles: {
124
+ engineExecutionRole?: string;
125
+ consumerRole?: string;
126
+ };
127
+ appConfig?: {
128
+ roleArn?: string;
129
+ appId?: string;
130
+ envId?: string;
131
+ profileId?: string;
132
+ };
133
+ }
134
+ export interface GitHubEnvironment {
135
+ name: string;
136
+ id: number;
137
+ url: string;
138
+ }
139
+ export interface GitHubRepository {
140
+ owner: string;
141
+ repo: string;
142
+ full_name: string;
143
+ }
144
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAGD,eAAO,MAAM,UAAU,+JAWb,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;AAGlD,eAAO,MAAM,kBAAkB,aAAoD,CAAC;AACpF,eAAO,MAAM,gBAAgB,aAAoF,CAAC;AAClH,eAAO,MAAM,gBAAgB,aAA6E,CAAC;AAC3G,eAAO,MAAM,mBAAmB,aAA4E,CAAC;AAC7G,eAAO,MAAM,WAAW,aAA+D,CAAC;AACxF,eAAO,MAAM,cAAc,aAAqE,CAAC;AACjG,eAAO,MAAM,qBAAqB,aAAyE,CAAC;AAE5G;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IAErC,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAGF,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAG7B,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAGF,UAAU,EAAE;QACV,kBAAkB,EAAE,OAAO,CAAC;QAC5B,mBAAmB,EAAE,OAAO,CAAC;QAG7B,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,OAAO,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;QAGpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;IAGF,QAAQ,EAAE;QACR,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,uBAAuB,EAAE,OAAO,CAAC;QACjC,oBAAoB,CAAC,EAAE;YACrB,cAAc,CAAC,EAAE,MAAM,CAAC;YACxB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,oBAAoB,EAAE,OAAO,CAAC;QAC9B,cAAc,CAAC,EAAE;YACf,2BAA2B,CAAC,EAAE,MAAM,CAAC;YACrC,sBAAsB,CAAC,EAAE,MAAM,CAAC;YAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;YACjC,cAAc,CAAC,EAAE,MAAM,CAAC;YACxB,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,sBAAsB,CAAC,EAAE,MAAM,CAAC;YAChC,4BAA4B,CAAC,EAAE,MAAM,CAAC;SACvC,CAAC;KACH,CAAC;IAGF,GAAG,EAAE;QACH,gBAAgB,EAAE,MAAM,CAAC;QACzB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,oBAAoB,EAAE,MAAM,CAAC;QAC7B,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IAGF,QAAQ,EAAE;QACR,wBAAwB,EAAE,OAAO,CAAC;QAClC,+BAA+B,EAAE,OAAO,CAAC;QACzC,YAAY,EAAE,OAAO,CAAC;KACvB,CAAC;IAGF,QAAQ,EAAE;QACR,iBAAiB,EAAE,MAAM,CAAC;QAC1B,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,sBAAsB,CAAC,GAAG;IAC3D,GAAG,CAAC,EAAE;QACJ,QAAQ,CAAC,EAAE;YACT,mBAAmB,CAAC,EAAE,MAAM,CAAC;YAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;SACvB,CAAC;QACF,SAAS,CAAC,EAAE;YACV,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,CAAC;KACH,CAAC;CACH,CAAC;AAGF,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE;QACR,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,SAAS,CAAC,EAAE;QACV,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAGD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB"}
package/dist/types.js ADDED
@@ -0,0 +1,23 @@
1
+ import { z } from 'zod';
2
+ // AWS Region enum
3
+ export const awsRegions = [
4
+ 'us-east-1',
5
+ 'us-east-2',
6
+ 'us-west-1',
7
+ 'us-west-2',
8
+ 'eu-west-1',
9
+ 'eu-west-2',
10
+ 'eu-central-1',
11
+ 'ap-northeast-1',
12
+ 'ap-southeast-1',
13
+ 'ap-southeast-2',
14
+ ];
15
+ // Validation schemas
16
+ export const awsAccountIdSchema = z.string().regex(/^\d{12}$/, 'Must be 12 digits');
17
+ export const iamRoleArnSchema = z.string().regex(/^arn:aws:iam::\d{12}:role\/.+$/, 'Invalid IAM role ARN format');
18
+ export const acmCertArnSchema = z.string().regex(/^arn:aws:acm:.+$/, 'Invalid ACM certificate ARN format');
19
+ export const route53ZoneIdSchema = z.string().regex(/^Z[A-Z0-9]+$/, 'Invalid Route53 hosted zone ID format');
20
+ export const vpcIdSchema = z.string().regex(/^vpc-[a-f0-9]+$/, 'Invalid VPC ID format');
21
+ export const subnetIdSchema = z.string().regex(/^subnet-[a-f0-9]+$/, 'Invalid subnet ID format');
22
+ export const securityGroupIdSchema = z.string().regex(/^sg-[a-f0-9]+$/, 'Invalid security group ID format');
23
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,kBAAkB;AAClB,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,cAAc;IACd,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;CACR,CAAC;AAIX,qBAAqB;AACrB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;AACpF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gCAAgC,EAAE,6BAA6B,CAAC,CAAC;AAClH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,kBAAkB,EAAE,oCAAoC,CAAC,CAAC;AAC3G,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,uCAAuC,CAAC,CAAC;AAC7G,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,iBAAiB,EAAE,uBAAuB,CAAC,CAAC;AACxF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,0BAA0B,CAAC,CAAC;AACjG,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,EAAE,kCAAkC,CAAC,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { type ConfigFile, type ConfigValidationResult } from '../config-schema.js';
2
+ import type { MergedConfig } from '../types.js';
3
+ /**
4
+ * Load and validate a YAML configuration file
5
+ * @param configPath - Path to the YAML config file (absolute or relative to CWD)
6
+ * @returns Validation result with parsed config or errors
7
+ */
8
+ export declare function loadConfigFile(configPath: string): Promise<ConfigValidationResult>;
9
+ /**
10
+ * Display validation errors in a user-friendly format
11
+ * @param errors - Array of validation error messages
12
+ */
13
+ export declare function displayConfigErrors(errors: string[]): void;
14
+ /**
15
+ * Merge config file with CLI flags and set defaults
16
+ * Priority: CLI flags > Config file > Defaults
17
+ *
18
+ * Note: CLI flags are NOT validated here - they're validated when used:
19
+ * - In the interactive prompts (via prompt validation)
20
+ * - In the GitHub API calls (will fail with helpful errors)
21
+ * This allows flexibility while still catching errors early.
22
+ *
23
+ * @param configFile - Parsed config file (optional, already validated)
24
+ * @param cliFlags - CLI flags/options object (not validated here)
25
+ * @returns Merged configuration object
26
+ */
27
+ export declare function mergeConfig(configFile: ConfigFile | undefined, cliFlags: Record<string, any>): MergedConfig;
28
+ /**
29
+ * Check if a config file path is provided in CLI options
30
+ * @param options - CLI options object
31
+ * @returns Config file path if provided, undefined otherwise
32
+ */
33
+ export declare function getConfigFilePath(options: Record<string, any>): string | undefined;
34
+ //# sourceMappingURL=config-loader.d.ts.map