indraq_cli 1.3.0 → 1.5.1
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.
- package/README.md +1031 -662
- package/dist/cli/create-program.d.ts.map +1 -1
- package/dist/cli/create-program.js +6 -6
- package/dist/cli/create-program.js.map +1 -1
- package/dist/cli/doctor.command.d.ts.map +1 -1
- package/dist/cli/doctor.command.js +23 -0
- package/dist/cli/doctor.command.js.map +1 -1
- package/dist/modules/configure/configure.command.d.ts.map +1 -0
- package/dist/modules/configure/configure.command.js +116 -0
- package/dist/modules/configure/configure.command.js.map +1 -0
- package/dist/modules/deploy/commands/build.command.d.ts +2 -2
- package/dist/modules/deploy/commands/build.command.d.ts.map +1 -1
- package/dist/modules/deploy/commands/build.command.js +45 -16
- package/dist/modules/deploy/commands/build.command.js.map +1 -1
- package/dist/modules/deploy/commands/configure-docker.command.d.ts +2 -0
- package/dist/modules/deploy/commands/configure-docker.command.d.ts.map +1 -0
- package/dist/modules/deploy/commands/configure-docker.command.js +169 -0
- package/dist/modules/deploy/commands/configure-docker.command.js.map +1 -0
- package/dist/modules/deploy/config/docker-config.d.ts +21 -0
- package/dist/modules/deploy/config/docker-config.d.ts.map +1 -0
- package/dist/modules/deploy/config/docker-config.js +187 -0
- package/dist/modules/deploy/config/docker-config.js.map +1 -0
- package/dist/modules/deploy/index.d.ts.map +1 -1
- package/dist/modules/deploy/index.js +9 -26
- package/dist/modules/deploy/index.js.map +1 -1
- package/dist/modules/mobile/commands/build-mobile.command.d.ts +11 -0
- package/dist/modules/mobile/commands/build-mobile.command.d.ts.map +1 -0
- package/dist/modules/mobile/commands/build-mobile.command.js +188 -0
- package/dist/modules/mobile/commands/build-mobile.command.js.map +1 -0
- package/dist/modules/mobile/commands/configure-mobile.command.d.ts +8 -0
- package/dist/modules/mobile/commands/configure-mobile.command.d.ts.map +1 -0
- package/dist/modules/mobile/commands/configure-mobile.command.js +353 -0
- package/dist/modules/mobile/commands/configure-mobile.command.js.map +1 -0
- package/dist/modules/mobile/config/mobile-config.d.ts +43 -0
- package/dist/modules/mobile/config/mobile-config.d.ts.map +1 -0
- package/dist/modules/mobile/config/mobile-config.js +211 -0
- package/dist/modules/mobile/config/mobile-config.js.map +1 -0
- package/dist/modules/mobile/index.d.ts +3 -0
- package/dist/modules/mobile/index.d.ts.map +1 -0
- package/dist/modules/mobile/index.js +50 -0
- package/dist/modules/mobile/index.js.map +1 -0
- package/dist/modules/mobile/services/jenkins-mobile.service.d.ts +31 -0
- package/dist/modules/mobile/services/jenkins-mobile.service.d.ts.map +1 -0
- package/dist/modules/mobile/services/jenkins-mobile.service.js +175 -0
- package/dist/modules/mobile/services/jenkins-mobile.service.js.map +1 -0
- package/dist/modules/mobile/services/project.service.d.ts +11 -0
- package/dist/modules/mobile/services/project.service.d.ts.map +1 -0
- package/dist/modules/mobile/services/project.service.js +73 -0
- package/dist/modules/mobile/services/project.service.js.map +1 -0
- package/dist/modules/mobile/services/source-bundle.service.d.ts +9 -0
- package/dist/modules/mobile/services/source-bundle.service.d.ts.map +1 -0
- package/dist/modules/mobile/services/source-bundle.service.js +114 -0
- package/dist/modules/mobile/services/source-bundle.service.js.map +1 -0
- package/dist/modules/mobile/services/version-sync.service.d.ts +7 -0
- package/dist/modules/mobile/services/version-sync.service.d.ts.map +1 -0
- package/dist/modules/mobile/services/version-sync.service.js +88 -0
- package/dist/modules/mobile/services/version-sync.service.js.map +1 -0
- package/dist/shared/config/config-files.d.ts +5 -0
- package/dist/shared/config/config-files.d.ts.map +1 -0
- package/dist/shared/config/config-files.js +88 -0
- package/dist/shared/config/config-files.js.map +1 -0
- package/dist/shared/config/jenkins-config.d.ts +36 -0
- package/dist/shared/config/jenkins-config.d.ts.map +1 -0
- package/dist/shared/config/jenkins-config.js +164 -0
- package/dist/shared/config/jenkins-config.js.map +1 -0
- package/dist/shared/jenkins/configure-jenkins.d.ts +7 -0
- package/dist/shared/jenkins/configure-jenkins.d.ts.map +1 -0
- package/dist/shared/jenkins/configure-jenkins.js +84 -0
- package/dist/shared/jenkins/configure-jenkins.js.map +1 -0
- package/dist/{modules/deploy/services → shared/jenkins}/jenkins.service.d.ts +5 -4
- package/dist/shared/jenkins/jenkins.service.d.ts.map +1 -0
- package/dist/{modules/deploy/services → shared/jenkins}/jenkins.service.js +43 -89
- package/dist/shared/jenkins/jenkins.service.js.map +1 -0
- package/dist/shared/runtime/runtime-doctor.js.map +1 -1
- package/package.json +10 -5
- package/templates/jenkins/Jenkinsfile-Mobile-App +633 -0
- package/dist/modules/deploy/commands/configure.command.d.ts.map +0 -1
- package/dist/modules/deploy/commands/configure.command.js +0 -404
- package/dist/modules/deploy/commands/configure.command.js.map +0 -1
- package/dist/modules/deploy/config/deployment-config.d.ts +0 -29
- package/dist/modules/deploy/config/deployment-config.d.ts.map +0 -1
- package/dist/modules/deploy/config/deployment-config.js +0 -164
- package/dist/modules/deploy/config/deployment-config.js.map +0 -1
- package/dist/modules/deploy/services/jenkins.service.d.ts.map +0 -1
- package/dist/modules/deploy/services/jenkins.service.js.map +0 -1
- /package/dist/modules/{deploy/commands → configure}/configure.command.d.ts +0 -0
|
@@ -1,404 +0,0 @@
|
|
|
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 inquirer_1 = __importDefault(require("inquirer"));
|
|
8
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
-
const node_fs_1 = require("node:fs");
|
|
10
|
-
const deployment_config_1 = require("../config/deployment-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 jenkins_service_1 = require("../services/jenkins.service");
|
|
14
|
-
const IMAGE_NAME_PATTERN = /^[a-z0-9]+(?:[._-][a-z0-9]+)*$/;
|
|
15
|
-
const getEnvironmentDisplayName = (env) => env === 'dev' ? 'Development' : 'Production';
|
|
16
|
-
const createDefaultConfig = () => ({
|
|
17
|
-
schemaVersion: 2,
|
|
18
|
-
github: {
|
|
19
|
-
ownerType: 'personal',
|
|
20
|
-
owner: ''
|
|
21
|
-
},
|
|
22
|
-
jenkins: null,
|
|
23
|
-
environments: {
|
|
24
|
-
dev: {
|
|
25
|
-
name: 'Development',
|
|
26
|
-
imageName: 'your-service-dev',
|
|
27
|
-
dockerfilePath: 'Dockerfile'
|
|
28
|
-
},
|
|
29
|
-
prod: {
|
|
30
|
-
name: 'Production',
|
|
31
|
-
imageName: 'your-service',
|
|
32
|
-
dockerfilePath: 'Dockerfile'
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
const promptForManualOwner = async (message, defaultValue = '') => {
|
|
37
|
-
const answer = await inquirer_1.default.prompt([
|
|
38
|
-
{
|
|
39
|
-
type: 'input',
|
|
40
|
-
name: 'owner',
|
|
41
|
-
message,
|
|
42
|
-
default: defaultValue,
|
|
43
|
-
filter: (input) => input.trim(),
|
|
44
|
-
validate: (input) => Boolean(input.trim()) || 'GitHub owner is required.'
|
|
45
|
-
}
|
|
46
|
-
]);
|
|
47
|
-
return answer.owner;
|
|
48
|
-
};
|
|
49
|
-
const validateHttpUrl = (input) => {
|
|
50
|
-
try {
|
|
51
|
-
const url = new URL(input.trim());
|
|
52
|
-
return ['http:', 'https:'].includes(url.protocol) || 'Jenkins URL must use HTTP or HTTPS.';
|
|
53
|
-
}
|
|
54
|
-
catch {
|
|
55
|
-
return 'Enter a valid Jenkins URL, for example https://jenkins.example.com.';
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
const selectEnvironment = async () => {
|
|
59
|
-
const { environment } = await inquirer_1.default.prompt([
|
|
60
|
-
{
|
|
61
|
-
type: 'list',
|
|
62
|
-
name: 'environment',
|
|
63
|
-
message: 'Select the environment you want to configure:',
|
|
64
|
-
choices: [
|
|
65
|
-
{ name: 'Development', value: 'dev' },
|
|
66
|
-
{ name: 'Production', value: 'prod' }
|
|
67
|
-
]
|
|
68
|
-
}
|
|
69
|
-
]);
|
|
70
|
-
return environment;
|
|
71
|
-
};
|
|
72
|
-
const configureImageName = async (config, env) => {
|
|
73
|
-
const current = config.environments[env];
|
|
74
|
-
const { imageName } = await inquirer_1.default.prompt([
|
|
75
|
-
{
|
|
76
|
-
type: 'input',
|
|
77
|
-
name: 'imageName',
|
|
78
|
-
message: `Enter image name for ${env.toUpperCase()} environment:`,
|
|
79
|
-
default: current.imageName,
|
|
80
|
-
filter: (input) => input.trim().toLowerCase(),
|
|
81
|
-
validate: (input) => IMAGE_NAME_PATTERN.test(input.trim()) ||
|
|
82
|
-
'Use a lowercase Docker image name such as `my-service` or `my-service-dev`.'
|
|
83
|
-
}
|
|
84
|
-
]);
|
|
85
|
-
config.environments[env] = {
|
|
86
|
-
...current,
|
|
87
|
-
imageName
|
|
88
|
-
};
|
|
89
|
-
};
|
|
90
|
-
const configureJenkins = async (config) => {
|
|
91
|
-
console.log(chalk_1.default.gray('\nIndraQ CLI will download jenkins-cli.jar and verify the credentials before saving them.'));
|
|
92
|
-
console.log(chalk_1.default.gray('Jenkins settings are shared by Development and Production for this project.\n'));
|
|
93
|
-
const { jenkinsUrl: rawJenkinsUrl } = await inquirer_1.default.prompt([
|
|
94
|
-
{
|
|
95
|
-
type: 'input',
|
|
96
|
-
name: 'jenkinsUrl',
|
|
97
|
-
message: 'Enter Jenkins URL/domain:',
|
|
98
|
-
default: config.jenkins?.url || '',
|
|
99
|
-
filter: (input) => (0, jenkins_service_1.normalizeJenkinsUrl)(input),
|
|
100
|
-
validate: validateHttpUrl
|
|
101
|
-
}
|
|
102
|
-
]);
|
|
103
|
-
const jenkinsUrl = (0, jenkins_service_1.normalizeJenkinsUrl)(rawJenkinsUrl);
|
|
104
|
-
const { jenkinsUsername } = await inquirer_1.default.prompt([
|
|
105
|
-
{
|
|
106
|
-
type: 'input',
|
|
107
|
-
name: 'jenkinsUsername',
|
|
108
|
-
message: 'Enter Jenkins username:',
|
|
109
|
-
default: config.jenkins?.username || '',
|
|
110
|
-
filter: (input) => input.trim(),
|
|
111
|
-
validate: (input) => Boolean(input.trim()) || 'Jenkins username is required.'
|
|
112
|
-
}
|
|
113
|
-
]);
|
|
114
|
-
const { jenkinsSecret } = await inquirer_1.default.prompt([
|
|
115
|
-
{
|
|
116
|
-
type: 'password',
|
|
117
|
-
name: 'jenkinsSecret',
|
|
118
|
-
message: 'Enter Jenkins API token or password:',
|
|
119
|
-
mask: '*',
|
|
120
|
-
validate: (input) => Boolean(input) || 'Jenkins API token/password is required.'
|
|
121
|
-
}
|
|
122
|
-
]);
|
|
123
|
-
(0, jenkins_service_1.assertJavaAvailable)();
|
|
124
|
-
const jenkinsServerId = (0, jenkins_service_1.createJenkinsServerId)(jenkinsUrl, jenkinsUsername);
|
|
125
|
-
console.log(chalk_1.default.gray('\nDownloading Jenkins CLI from your Jenkins controller...'));
|
|
126
|
-
await (0, jenkins_service_1.downloadJenkinsCli)(jenkinsUrl, jenkinsServerId, jenkinsUsername, jenkinsSecret);
|
|
127
|
-
(0, jenkins_service_1.saveJenkinsCredentials)(jenkinsServerId, jenkinsUsername, jenkinsSecret);
|
|
128
|
-
try {
|
|
129
|
-
const result = (0, jenkins_service_1.validateJenkinsAuthentication)({
|
|
130
|
-
url: jenkinsUrl,
|
|
131
|
-
serverId: jenkinsServerId
|
|
132
|
-
});
|
|
133
|
-
config.jenkins = {
|
|
134
|
-
url: jenkinsUrl,
|
|
135
|
-
username: jenkinsUsername,
|
|
136
|
-
serverId: jenkinsServerId,
|
|
137
|
-
connectionMode: result.connectionMode
|
|
138
|
-
};
|
|
139
|
-
console.log(chalk_1.default.green(`✓ Jenkins credentials verified using ${result.connectionMode} mode`));
|
|
140
|
-
const authenticatedLine = result.output
|
|
141
|
-
.split(/\r?\n/)
|
|
142
|
-
.find((line) => /Authenticated as:/i.test(line));
|
|
143
|
-
if (authenticatedLine) {
|
|
144
|
-
console.log(chalk_1.default.gray(` ${authenticatedLine.trim()}`));
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
catch (error) {
|
|
148
|
-
(0, jenkins_service_1.deleteJenkinsCredentials)(jenkinsServerId);
|
|
149
|
-
throw error;
|
|
150
|
-
}
|
|
151
|
-
};
|
|
152
|
-
const configureGitHubDestination = async (config) => {
|
|
153
|
-
console.log(chalk_1.default.blue.bold('\n🔍 Checking GitHub authentication...'));
|
|
154
|
-
const githubAuth = (0, github_auth_service_1.detectGitHubAuthentication)();
|
|
155
|
-
if (!githubAuth) {
|
|
156
|
-
throw new Error('No authenticated GitHub session was found. Sign in using Git/Git Bash (Git Credential Manager or SSH), or authenticate the optional GitHub CLI.');
|
|
157
|
-
}
|
|
158
|
-
console.log(chalk_1.default.green(`✓ GitHub authentication detected via ${(0, github_auth_service_1.describeGitHubAuthentication)(githubAuth)}`));
|
|
159
|
-
console.log(chalk_1.default.gray('Reading GitHub account and organization memberships...'));
|
|
160
|
-
const githubIdentity = await (0, github_api_service_1.getGitHubIdentity)(githubAuth);
|
|
161
|
-
const personalLogin = githubIdentity.username || githubAuth.username;
|
|
162
|
-
const { ownerType } = await inquirer_1.default.prompt([
|
|
163
|
-
{
|
|
164
|
-
type: 'list',
|
|
165
|
-
name: 'ownerType',
|
|
166
|
-
message: 'Where do you want to push the GHCR image?',
|
|
167
|
-
choices: [
|
|
168
|
-
{
|
|
169
|
-
name: personalLogin ? `Personal account (${personalLogin})` : 'Personal account',
|
|
170
|
-
value: 'personal'
|
|
171
|
-
},
|
|
172
|
-
{ name: 'Organization', value: 'organization' }
|
|
173
|
-
],
|
|
174
|
-
default: config.github.ownerType
|
|
175
|
-
}
|
|
176
|
-
]);
|
|
177
|
-
let githubOwner;
|
|
178
|
-
if (ownerType === 'personal') {
|
|
179
|
-
githubOwner = personalLogin
|
|
180
|
-
? personalLogin
|
|
181
|
-
: await promptForManualOwner('Enter your GitHub username:', config.github.ownerType === 'personal' ? config.github.owner : '');
|
|
182
|
-
}
|
|
183
|
-
else if (githubIdentity.organizations.length > 0) {
|
|
184
|
-
const answer = await inquirer_1.default.prompt([
|
|
185
|
-
{
|
|
186
|
-
type: 'list',
|
|
187
|
-
name: 'owner',
|
|
188
|
-
message: 'Select a GitHub organization:',
|
|
189
|
-
choices: [
|
|
190
|
-
...githubIdentity.organizations.map((organization) => ({
|
|
191
|
-
name: organization,
|
|
192
|
-
value: organization
|
|
193
|
-
})),
|
|
194
|
-
{ name: 'Enter another organization manually', value: '__manual__' }
|
|
195
|
-
],
|
|
196
|
-
default: config.github.ownerType === 'organization'
|
|
197
|
-
? config.github.owner
|
|
198
|
-
: undefined
|
|
199
|
-
}
|
|
200
|
-
]);
|
|
201
|
-
githubOwner =
|
|
202
|
-
answer.owner === '__manual__'
|
|
203
|
-
? await promptForManualOwner('Enter GitHub organization name:', config.github.ownerType === 'organization' ? config.github.owner : '')
|
|
204
|
-
: answer.owner;
|
|
205
|
-
}
|
|
206
|
-
else {
|
|
207
|
-
if (githubIdentity.organizationDiscovery === 'public') {
|
|
208
|
-
console.log(chalk_1.default.yellow('⚠ No organizations were returned by the public GitHub API. Private memberships require an API-capable GitHub credential.'));
|
|
209
|
-
}
|
|
210
|
-
else {
|
|
211
|
-
console.log(chalk_1.default.yellow('⚠ Your Git authentication works, but organization memberships could not be enumerated with the available credential.'));
|
|
212
|
-
}
|
|
213
|
-
githubOwner = await promptForManualOwner('Enter GitHub organization name:', config.github.ownerType === 'organization' ? config.github.owner : '');
|
|
214
|
-
}
|
|
215
|
-
config.github = {
|
|
216
|
-
ownerType,
|
|
217
|
-
owner: githubOwner
|
|
218
|
-
};
|
|
219
|
-
console.log(chalk_1.default.green(`✓ GHCR destination: ghcr.io/${githubOwner.toLowerCase()}/...`));
|
|
220
|
-
console.log(chalk_1.default.gray(' GitHub/GHCR destination is shared by Development and Production for this project.'));
|
|
221
|
-
};
|
|
222
|
-
const configureDockerfile = async (config, env) => {
|
|
223
|
-
const currentPath = config.environments[env].dockerfilePath;
|
|
224
|
-
const { useDefaultDockerfile } = await inquirer_1.default.prompt([
|
|
225
|
-
{
|
|
226
|
-
type: 'confirm',
|
|
227
|
-
name: 'useDefaultDockerfile',
|
|
228
|
-
message: 'Use default Dockerfile path (Dockerfile)?',
|
|
229
|
-
default: currentPath === 'Dockerfile'
|
|
230
|
-
}
|
|
231
|
-
]);
|
|
232
|
-
let dockerfilePath = 'Dockerfile';
|
|
233
|
-
if (!useDefaultDockerfile) {
|
|
234
|
-
const answer = await inquirer_1.default.prompt([
|
|
235
|
-
{
|
|
236
|
-
type: 'input',
|
|
237
|
-
name: 'dockerfilePath',
|
|
238
|
-
message: 'Enter Dockerfile path:',
|
|
239
|
-
default: currentPath || 'Dockerfile',
|
|
240
|
-
filter: (input) => input.trim(),
|
|
241
|
-
validate: (input) => {
|
|
242
|
-
const candidate = input.trim();
|
|
243
|
-
if (!candidate) {
|
|
244
|
-
return 'Dockerfile path is required.';
|
|
245
|
-
}
|
|
246
|
-
return (0, node_fs_1.existsSync)(candidate) || `File not found: ${candidate}`;
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
]);
|
|
250
|
-
dockerfilePath = answer.dockerfilePath;
|
|
251
|
-
}
|
|
252
|
-
else if (!(0, node_fs_1.existsSync)(dockerfilePath)) {
|
|
253
|
-
console.log(chalk_1.default.yellow('⚠ Dockerfile does not exist in the current directory yet. Configuration will still be saved.'));
|
|
254
|
-
}
|
|
255
|
-
config.environments[env] = {
|
|
256
|
-
...config.environments[env],
|
|
257
|
-
dockerfilePath
|
|
258
|
-
};
|
|
259
|
-
};
|
|
260
|
-
const printConfigurationSummary = (config, env) => {
|
|
261
|
-
const environment = config.environments[env];
|
|
262
|
-
const jenkins = config.jenkins;
|
|
263
|
-
console.log(chalk_1.default.blue.bold(`\n📋 ${getEnvironmentDisplayName(env)} configuration\n`));
|
|
264
|
-
console.log(` Environment: ${environment.name}`);
|
|
265
|
-
console.log(` Image name: ${environment.imageName}`);
|
|
266
|
-
console.log(` Dockerfile: ${environment.dockerfilePath}`);
|
|
267
|
-
console.log(` GHCR destination: ghcr.io/${config.github.owner || '<not configured>'}/... (${config.github.ownerType})`);
|
|
268
|
-
console.log(` Jenkins URL: ${jenkins?.url || '<not configured>'}`);
|
|
269
|
-
console.log(` Jenkins username: ${jenkins?.username || '<not configured>'}`);
|
|
270
|
-
console.log(` Jenkins job: ${environment.imageName}`);
|
|
271
|
-
console.log(chalk_1.default.gray('\n Jenkins and GitHub/GHCR settings are shared by both environments.'));
|
|
272
|
-
console.log(chalk_1.default.gray(' Jenkins API tokens/passwords are never printed or stored in deploy.json.\n'));
|
|
273
|
-
};
|
|
274
|
-
const runFirstTimeWizard = async (existingConfig) => {
|
|
275
|
-
const config = existingConfig ?? createDefaultConfig();
|
|
276
|
-
console.log(chalk_1.default.blue.bold('✨ First-time deployment setup\n'));
|
|
277
|
-
console.log(chalk_1.default.gray('No complete deployment configuration was found. We will configure the required settings once. Future runs of `indraq configure` will open a settings menu instead.\n'));
|
|
278
|
-
console.log(chalk_1.default.blue.bold('🎯 Step 1: Select Environment\n'));
|
|
279
|
-
const env = await selectEnvironment();
|
|
280
|
-
console.log(chalk_1.default.blue.bold('\n📝 Step 2: Configure Image Details\n'));
|
|
281
|
-
await configureImageName(config, env);
|
|
282
|
-
console.log(chalk_1.default.blue.bold('\n⚙️ Step 3: Connect Jenkins CLI\n'));
|
|
283
|
-
await configureJenkins(config);
|
|
284
|
-
console.log(chalk_1.default.blue.bold('\n🐙 Step 4: Select GitHub Destination\n'));
|
|
285
|
-
await configureGitHubDestination(config);
|
|
286
|
-
console.log(chalk_1.default.blue.bold('\n🐳 Step 5: Dockerfile Detection\n'));
|
|
287
|
-
await configureDockerfile(config, env);
|
|
288
|
-
(0, deployment_config_1.saveDeploymentConfig)(config);
|
|
289
|
-
console.log(chalk_1.default.green('\n✓ Deployment configuration saved successfully!\n'));
|
|
290
|
-
console.log(chalk_1.default.gray(`Config: ${(0, deployment_config_1.getDeploymentConfigPath)()}`));
|
|
291
|
-
console.log(chalk_1.default.gray('Jenkins secret: stored privately in your local IndraQ CLI cache (not in project config).'));
|
|
292
|
-
console.log(chalk_1.default.yellow('\n💡 Next steps:'));
|
|
293
|
-
console.log(chalk_1.default.gray(' Change settings later: `indraq configure`'));
|
|
294
|
-
console.log(chalk_1.default.gray(' Development: `indraq deploy:dev`'));
|
|
295
|
-
console.log(chalk_1.default.gray(' Production: `indraq deploy:prod`\n'));
|
|
296
|
-
};
|
|
297
|
-
const getConfigurationAction = async (config, env) => {
|
|
298
|
-
const environment = config.environments[env];
|
|
299
|
-
const jenkinsLabel = config.jenkins
|
|
300
|
-
? `${config.jenkins.url} (${config.jenkins.username})`
|
|
301
|
-
: 'not configured';
|
|
302
|
-
const githubLabel = config.github.owner
|
|
303
|
-
? `${config.github.ownerType}: ${config.github.owner}`
|
|
304
|
-
: 'not configured';
|
|
305
|
-
const { action } = await inquirer_1.default.prompt([
|
|
306
|
-
{
|
|
307
|
-
type: 'list',
|
|
308
|
-
name: 'action',
|
|
309
|
-
message: `What do you want to configure for ${getEnvironmentDisplayName(env)}?`,
|
|
310
|
-
pageSize: 10,
|
|
311
|
-
choices: [
|
|
312
|
-
{
|
|
313
|
-
name: `Image name (${environment.imageName})`,
|
|
314
|
-
value: 'image'
|
|
315
|
-
},
|
|
316
|
-
{
|
|
317
|
-
name: `Jenkins connection (${jenkinsLabel}) [shared]`,
|
|
318
|
-
value: 'jenkins'
|
|
319
|
-
},
|
|
320
|
-
{
|
|
321
|
-
name: `GitHub / GHCR destination (${githubLabel}) [shared]`,
|
|
322
|
-
value: 'github'
|
|
323
|
-
},
|
|
324
|
-
{
|
|
325
|
-
name: `Dockerfile path (${environment.dockerfilePath})`,
|
|
326
|
-
value: 'dockerfile'
|
|
327
|
-
},
|
|
328
|
-
new inquirer_1.default.Separator(),
|
|
329
|
-
{
|
|
330
|
-
name: 'Review current configuration',
|
|
331
|
-
value: 'review'
|
|
332
|
-
},
|
|
333
|
-
{
|
|
334
|
-
name: 'Exit configuration',
|
|
335
|
-
value: 'exit'
|
|
336
|
-
}
|
|
337
|
-
]
|
|
338
|
-
}
|
|
339
|
-
]);
|
|
340
|
-
return action;
|
|
341
|
-
};
|
|
342
|
-
const runSettingsMenu = async (config) => {
|
|
343
|
-
console.log(chalk_1.default.blue.bold('🎯 Select Environment\n'));
|
|
344
|
-
const env = await selectEnvironment();
|
|
345
|
-
const environmentName = getEnvironmentDisplayName(env);
|
|
346
|
-
console.log(chalk_1.default.green(`\n✓ Existing configuration found for this project.`));
|
|
347
|
-
console.log(chalk_1.default.gray(`Only change what you need for ${environmentName}. After every change you will return to this menu.\n`));
|
|
348
|
-
while (true) {
|
|
349
|
-
const action = await getConfigurationAction(config, env);
|
|
350
|
-
if (action === 'exit') {
|
|
351
|
-
console.log(chalk_1.default.green('\n✓ Configuration finished.\n'));
|
|
352
|
-
console.log(chalk_1.default.gray(`Config: ${(0, deployment_config_1.getDeploymentConfigPath)()}\n`));
|
|
353
|
-
return;
|
|
354
|
-
}
|
|
355
|
-
if (action === 'review') {
|
|
356
|
-
printConfigurationSummary(config, env);
|
|
357
|
-
continue;
|
|
358
|
-
}
|
|
359
|
-
try {
|
|
360
|
-
// Work on a copy first. If validation or saving fails, the in-memory
|
|
361
|
-
// configuration stays exactly as it was before the menu action.
|
|
362
|
-
const candidateConfig = structuredClone(config);
|
|
363
|
-
if (action === 'image') {
|
|
364
|
-
console.log(chalk_1.default.blue.bold('\n📝 Configure Image Name\n'));
|
|
365
|
-
await configureImageName(candidateConfig, env);
|
|
366
|
-
}
|
|
367
|
-
else if (action === 'jenkins') {
|
|
368
|
-
console.log(chalk_1.default.blue.bold('\n⚙️ Configure Jenkins Connection\n'));
|
|
369
|
-
await configureJenkins(candidateConfig);
|
|
370
|
-
}
|
|
371
|
-
else if (action === 'github') {
|
|
372
|
-
console.log(chalk_1.default.blue.bold('\n🐙 Configure GitHub / GHCR Destination\n'));
|
|
373
|
-
await configureGitHubDestination(candidateConfig);
|
|
374
|
-
}
|
|
375
|
-
else if (action === 'dockerfile') {
|
|
376
|
-
console.log(chalk_1.default.blue.bold('\n🐳 Configure Dockerfile\n'));
|
|
377
|
-
await configureDockerfile(candidateConfig, env);
|
|
378
|
-
}
|
|
379
|
-
(0, deployment_config_1.saveDeploymentConfig)(candidateConfig);
|
|
380
|
-
config = candidateConfig;
|
|
381
|
-
console.log(chalk_1.default.green('\n✓ Change saved successfully.'));
|
|
382
|
-
console.log(chalk_1.default.gray('Returning to configuration menu...\n'));
|
|
383
|
-
}
|
|
384
|
-
catch (error) {
|
|
385
|
-
const message = error instanceof Error ? error.message : 'Unknown configuration error';
|
|
386
|
-
console.log(chalk_1.default.red(`\n✗ ${message}`));
|
|
387
|
-
console.log(chalk_1.default.yellow('No change was saved for that setting. Returning to the menu...\n'));
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
};
|
|
391
|
-
const configure = async () => {
|
|
392
|
-
const existingConfig = (0, deployment_config_1.getDeploymentConfig)();
|
|
393
|
-
const requiresFirstTimeWizard = !existingConfig || existingConfig.jenkins === null;
|
|
394
|
-
if ((0, deployment_config_1.hasLegacyDeploymentConfig)() || existingConfig?.jenkins === null) {
|
|
395
|
-
console.log(chalk_1.default.yellow('⚠ Older or incomplete deployment settings were detected. We will finish the one-time Jenkins CLI setup first.\n'));
|
|
396
|
-
}
|
|
397
|
-
if (requiresFirstTimeWizard) {
|
|
398
|
-
await runFirstTimeWizard(existingConfig);
|
|
399
|
-
return;
|
|
400
|
-
}
|
|
401
|
-
await runSettingsMenu(existingConfig);
|
|
402
|
-
};
|
|
403
|
-
exports.configure = configure;
|
|
404
|
-
//# sourceMappingURL=configure.command.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"configure.command.js","sourceRoot":"","sources":["../../../../src/modules/deploy/commands/configure.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
export type EnvironmentName = 'dev' | 'prod';
|
|
2
|
-
export type GitHubOwnerType = 'personal' | 'organization';
|
|
3
|
-
export type JenkinsConnectionMode = 'webSocket' | 'http';
|
|
4
|
-
export interface EnvironmentConfig {
|
|
5
|
-
name: string;
|
|
6
|
-
imageName: string;
|
|
7
|
-
dockerfilePath: string;
|
|
8
|
-
}
|
|
9
|
-
export interface JenkinsConfig {
|
|
10
|
-
url: string;
|
|
11
|
-
username: string;
|
|
12
|
-
serverId: string;
|
|
13
|
-
connectionMode: JenkinsConnectionMode;
|
|
14
|
-
}
|
|
15
|
-
export interface DeploymentConfig {
|
|
16
|
-
schemaVersion: 2;
|
|
17
|
-
github: {
|
|
18
|
-
ownerType: GitHubOwnerType;
|
|
19
|
-
owner: string;
|
|
20
|
-
};
|
|
21
|
-
jenkins: JenkinsConfig | null;
|
|
22
|
-
environments: Record<EnvironmentName, EnvironmentConfig>;
|
|
23
|
-
}
|
|
24
|
-
export declare const hasLegacyDeploymentConfig: () => boolean;
|
|
25
|
-
export declare const getDeploymentConfig: () => DeploymentConfig | null;
|
|
26
|
-
export declare const saveDeploymentConfig: (config: DeploymentConfig) => void;
|
|
27
|
-
export declare const ensureDeploymentConfig: () => DeploymentConfig;
|
|
28
|
-
export declare const getDeploymentConfigPath: () => string;
|
|
29
|
-
//# sourceMappingURL=deployment-config.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deployment-config.d.ts","sourceRoot":"","sources":["../../../../src/modules/deploy/config/deployment-config.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,MAAM,CAAC;AAC7C,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,cAAc,CAAC;AAC1D,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG,MAAM,CAAC;AAEzD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,qBAAqB,CAAC;CACvC;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,CAAC,CAAC;IACjB,MAAM,EAAE;QACN,SAAS,EAAE,eAAe,CAAC;QAC3B,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;CAC1D;AAyJD,eAAO,MAAM,yBAAyB,QAAO,OACe,CAAC;AAE7D,eAAO,MAAM,mBAAmB,QAAO,gBAAgB,GAAG,IA+BzD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,QAAQ,gBAAgB,KAAG,IAU/D,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAAO,gBAMzC,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAAO,MAAqB,CAAC"}
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getDeploymentConfigPath = exports.ensureDeploymentConfig = exports.saveDeploymentConfig = exports.getDeploymentConfig = exports.hasLegacyDeploymentConfig = void 0;
|
|
4
|
-
const node_fs_1 = require("node:fs");
|
|
5
|
-
const node_path_1 = require("node:path");
|
|
6
|
-
const CONFIG_DIRECTORY = (0, node_path_1.join)(process.cwd(), '.indraq');
|
|
7
|
-
const CONFIG_FILE = (0, node_path_1.join)(CONFIG_DIRECTORY, 'deploy.json');
|
|
8
|
-
const CONFIG_GITIGNORE = (0, node_path_1.join)(CONFIG_DIRECTORY, '.gitignore');
|
|
9
|
-
const LEGACY_CONFIG_FILE = (0, node_path_1.join)(process.cwd(), '.indraq-config.json');
|
|
10
|
-
const isEnvironmentConfig = (value) => {
|
|
11
|
-
if (!value || typeof value !== 'object') {
|
|
12
|
-
return false;
|
|
13
|
-
}
|
|
14
|
-
const candidate = value;
|
|
15
|
-
return (typeof candidate.name === 'string' &&
|
|
16
|
-
typeof candidate.imageName === 'string' &&
|
|
17
|
-
typeof candidate.dockerfilePath === 'string');
|
|
18
|
-
};
|
|
19
|
-
const isJenkinsConfig = (value) => {
|
|
20
|
-
if (!value || typeof value !== 'object') {
|
|
21
|
-
return false;
|
|
22
|
-
}
|
|
23
|
-
const candidate = value;
|
|
24
|
-
return (typeof candidate.url === 'string' &&
|
|
25
|
-
typeof candidate.username === 'string' &&
|
|
26
|
-
typeof candidate.serverId === 'string' &&
|
|
27
|
-
(candidate.connectionMode === 'webSocket' || candidate.connectionMode === 'http'));
|
|
28
|
-
};
|
|
29
|
-
const isDeploymentConfig = (value) => {
|
|
30
|
-
if (!value || typeof value !== 'object') {
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
const candidate = value;
|
|
34
|
-
return (candidate.schemaVersion === 2 &&
|
|
35
|
-
!!candidate.github &&
|
|
36
|
-
(candidate.github.ownerType === 'personal' || candidate.github.ownerType === 'organization') &&
|
|
37
|
-
typeof candidate.github.owner === 'string' &&
|
|
38
|
-
(candidate.jenkins === null || isJenkinsConfig(candidate.jenkins)) &&
|
|
39
|
-
!!candidate.environments &&
|
|
40
|
-
isEnvironmentConfig(candidate.environments.dev) &&
|
|
41
|
-
isEnvironmentConfig(candidate.environments.prod));
|
|
42
|
-
};
|
|
43
|
-
const isSchemaV1Config = (value) => {
|
|
44
|
-
if (!value || typeof value !== 'object') {
|
|
45
|
-
return false;
|
|
46
|
-
}
|
|
47
|
-
const candidate = value;
|
|
48
|
-
return (candidate.schemaVersion === 1 &&
|
|
49
|
-
!!candidate.github &&
|
|
50
|
-
(candidate.github.ownerType === 'personal' || candidate.github.ownerType === 'organization') &&
|
|
51
|
-
typeof candidate.github.owner === 'string' &&
|
|
52
|
-
!!candidate.jenkins &&
|
|
53
|
-
typeof candidate.jenkins.webhookUrl === 'string' &&
|
|
54
|
-
!!candidate.environments &&
|
|
55
|
-
isEnvironmentConfig(candidate.environments.dev) &&
|
|
56
|
-
isEnvironmentConfig(candidate.environments.prod));
|
|
57
|
-
};
|
|
58
|
-
const isLegacyEnvironmentConfig = (value) => {
|
|
59
|
-
if (!value || typeof value !== 'object') {
|
|
60
|
-
return false;
|
|
61
|
-
}
|
|
62
|
-
const candidate = value;
|
|
63
|
-
return (typeof candidate.name === 'string' &&
|
|
64
|
-
typeof candidate.image_name === 'string' &&
|
|
65
|
-
(candidate.dockerfile_path === undefined || typeof candidate.dockerfile_path === 'string'));
|
|
66
|
-
};
|
|
67
|
-
const isLegacyConfig = (value) => {
|
|
68
|
-
if (!value || typeof value !== 'object') {
|
|
69
|
-
return false;
|
|
70
|
-
}
|
|
71
|
-
const candidate = value;
|
|
72
|
-
return (typeof candidate.image_name === 'string' &&
|
|
73
|
-
typeof candidate.jenkins_webhook_url === 'string' &&
|
|
74
|
-
typeof candidate.github_organization === 'string' &&
|
|
75
|
-
!!candidate.environments &&
|
|
76
|
-
isLegacyEnvironmentConfig(candidate.environments.dev) &&
|
|
77
|
-
isLegacyEnvironmentConfig(candidate.environments.prod));
|
|
78
|
-
};
|
|
79
|
-
const readJson = (path) => {
|
|
80
|
-
const raw = (0, node_fs_1.readFileSync)(path, 'utf8');
|
|
81
|
-
return JSON.parse(raw);
|
|
82
|
-
};
|
|
83
|
-
const migrateSchemaV1Config = (legacy) => ({
|
|
84
|
-
schemaVersion: 2,
|
|
85
|
-
github: legacy.github,
|
|
86
|
-
jenkins: null,
|
|
87
|
-
environments: legacy.environments
|
|
88
|
-
});
|
|
89
|
-
const migrateLegacyConfig = (legacy) => ({
|
|
90
|
-
schemaVersion: 2,
|
|
91
|
-
github: {
|
|
92
|
-
ownerType: 'personal',
|
|
93
|
-
owner: legacy.github_organization
|
|
94
|
-
},
|
|
95
|
-
jenkins: null,
|
|
96
|
-
environments: {
|
|
97
|
-
dev: {
|
|
98
|
-
name: legacy.environments.dev.name,
|
|
99
|
-
imageName: legacy.environments.dev.image_name,
|
|
100
|
-
dockerfilePath: legacy.environments.dev.dockerfile_path || 'Dockerfile'
|
|
101
|
-
},
|
|
102
|
-
prod: {
|
|
103
|
-
name: legacy.environments.prod.name,
|
|
104
|
-
imageName: legacy.environments.prod.image_name,
|
|
105
|
-
dockerfilePath: legacy.environments.prod.dockerfile_path || 'Dockerfile'
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
const hasLegacyDeploymentConfig = () => !(0, node_fs_1.existsSync)(CONFIG_FILE) && (0, node_fs_1.existsSync)(LEGACY_CONFIG_FILE);
|
|
110
|
-
exports.hasLegacyDeploymentConfig = hasLegacyDeploymentConfig;
|
|
111
|
-
const getDeploymentConfig = () => {
|
|
112
|
-
if ((0, node_fs_1.existsSync)(CONFIG_FILE)) {
|
|
113
|
-
try {
|
|
114
|
-
const parsed = readJson(CONFIG_FILE);
|
|
115
|
-
if (isDeploymentConfig(parsed)) {
|
|
116
|
-
return parsed;
|
|
117
|
-
}
|
|
118
|
-
if (isSchemaV1Config(parsed)) {
|
|
119
|
-
return migrateSchemaV1Config(parsed);
|
|
120
|
-
}
|
|
121
|
-
throw new Error('Configuration file has an invalid structure.');
|
|
122
|
-
}
|
|
123
|
-
catch (error) {
|
|
124
|
-
const message = error instanceof Error ? error.message : 'Unknown configuration error';
|
|
125
|
-
throw new Error(`Unable to read ${CONFIG_FILE}: ${message}`);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
if ((0, node_fs_1.existsSync)(LEGACY_CONFIG_FILE)) {
|
|
129
|
-
try {
|
|
130
|
-
const parsed = readJson(LEGACY_CONFIG_FILE);
|
|
131
|
-
if (!isLegacyConfig(parsed)) {
|
|
132
|
-
throw new Error('Legacy configuration file has an invalid structure.');
|
|
133
|
-
}
|
|
134
|
-
return migrateLegacyConfig(parsed);
|
|
135
|
-
}
|
|
136
|
-
catch (error) {
|
|
137
|
-
const message = error instanceof Error ? error.message : 'Unknown configuration error';
|
|
138
|
-
throw new Error(`Unable to read ${LEGACY_CONFIG_FILE}: ${message}`);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
return null;
|
|
142
|
-
};
|
|
143
|
-
exports.getDeploymentConfig = getDeploymentConfig;
|
|
144
|
-
const saveDeploymentConfig = (config) => {
|
|
145
|
-
(0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(CONFIG_FILE), { recursive: true });
|
|
146
|
-
// Project-local state is intentionally excluded from Git. Jenkins secrets are
|
|
147
|
-
// never stored here; they live in the user's private ~/.indraq cache.
|
|
148
|
-
if (!(0, node_fs_1.existsSync)(CONFIG_GITIGNORE)) {
|
|
149
|
-
(0, node_fs_1.writeFileSync)(CONFIG_GITIGNORE, '*\n!.gitignore\n', 'utf8');
|
|
150
|
-
}
|
|
151
|
-
(0, node_fs_1.writeFileSync)(CONFIG_FILE, `${JSON.stringify(config, null, 2)}\n`, 'utf8');
|
|
152
|
-
};
|
|
153
|
-
exports.saveDeploymentConfig = saveDeploymentConfig;
|
|
154
|
-
const ensureDeploymentConfig = () => {
|
|
155
|
-
const config = (0, exports.getDeploymentConfig)();
|
|
156
|
-
if (!config) {
|
|
157
|
-
throw new Error('Deployment configuration not found. Run `indraq configure` first.');
|
|
158
|
-
}
|
|
159
|
-
return config;
|
|
160
|
-
};
|
|
161
|
-
exports.ensureDeploymentConfig = ensureDeploymentConfig;
|
|
162
|
-
const getDeploymentConfigPath = () => CONFIG_FILE;
|
|
163
|
-
exports.getDeploymentConfigPath = getDeploymentConfigPath;
|
|
164
|
-
//# sourceMappingURL=deployment-config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deployment-config.js","sourceRoot":"","sources":["../../../../src/modules/deploy/config/deployment-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jenkins.service.d.ts","sourceRoot":"","sources":["../../../../src/modules/deploy/services/jenkins.service.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAExF,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,mBAAmB;IAC3B,cAAc,EAAE,qBAAqB,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;CAChB;AAQD,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,KAAG,MAA2C,CAAC;AAEhG,eAAO,MAAM,qBAAqB,GAAI,YAAY,MAAM,EAAE,UAAU,MAAM,KAAG,MAI5D,CAAC;AAIlB,eAAO,MAAM,oBAAoB,GAAI,UAAU,MAAM,KAAG,MACF,CAAC;AAEvD,eAAO,MAAM,sBAAsB,GAAI,UAAU,MAAM,KAAG,MACP,CAAC;AAQpD,eAAO,MAAM,mBAAmB,QAAO,IAWtC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,UAAU,MAAM,EAChB,UAAU,MAAM,EAChB,QAAQ,MAAM,KACb,MAiBF,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,UAAU,MAAM,KAAG,IAK3D,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,UAAU,MAAM,KAAG,kBAgBzD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,YAAY,MAAM,EAClB,UAAU,MAAM,EAChB,UAAU,MAAM,EAChB,QAAQ,MAAM,KACb,OAAO,CAAC,MAAM,CAwChB,CAAC;AAgEF,eAAO,MAAM,6BAA6B,GACxC,QAAQ,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,UAAU,CAAC,KAC9C,mBAuBF,CAAC;AAgBF,eAAO,MAAM,sBAAsB,GACjC,QAAQ,aAAa,EACrB,SAAS,MAAM,KACd,OAAO,CAAC,IAAI,CAqCd,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,QAAQ,aAAa,EACrB,SAAS,MAAM,KACd,OAAO,CAAC,IAAI,CAyDd,CAAC"}
|