@sembix/cli 1.3.0 → 1.4.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/COMMANDS.md +1522 -0
- package/QUICKSTART.md +829 -0
- package/README.md +1949 -285
- package/USAGE-EXAMPLES.md +872 -0
- package/dist/commands/configure.d.ts.map +1 -1
- package/dist/commands/configure.js +172 -2
- package/dist/commands/configure.js.map +1 -1
- package/dist/commands/index.d.ts +10 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +11 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/login.d.ts +19 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +118 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +21 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +66 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/profile-project.d.ts +14 -0
- package/dist/commands/profile-project.d.ts.map +1 -0
- package/dist/commands/profile-project.js +123 -0
- package/dist/commands/profile-project.js.map +1 -0
- package/dist/commands/profile.d.ts +26 -0
- package/dist/commands/profile.d.ts.map +1 -0
- package/dist/commands/profile.js +177 -0
- package/dist/commands/profile.js.map +1 -0
- package/dist/commands/project.d.ts +16 -0
- package/dist/commands/project.d.ts.map +1 -0
- package/dist/commands/project.js +153 -0
- package/dist/commands/project.js.map +1 -0
- package/dist/commands/setup.js +1 -1
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/update.js +2 -2
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/workflow.d.ts +91 -0
- package/dist/commands/workflow.d.ts.map +1 -0
- package/dist/commands/workflow.js +1201 -0
- package/dist/commands/workflow.js.map +1 -0
- package/dist/config-schema.d.ts +23 -0
- package/dist/config-schema.d.ts.map +1 -1
- package/dist/config-schema.js +21 -1
- package/dist/config-schema.js.map +1 -1
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +23 -2
- package/dist/config.js.map +1 -1
- package/dist/index.js +318 -1
- package/dist/index.js.map +1 -1
- package/dist/prompts/project-selection.d.ts +8 -0
- package/dist/prompts/project-selection.d.ts.map +1 -0
- package/dist/prompts/project-selection.js +132 -0
- package/dist/prompts/project-selection.js.map +1 -0
- package/dist/prompts/workflow-inputs.d.ts +10 -0
- package/dist/prompts/workflow-inputs.d.ts.map +1 -0
- package/dist/prompts/workflow-inputs.js +71 -0
- package/dist/prompts/workflow-inputs.js.map +1 -0
- package/dist/prompts/workflow-selection.d.ts +8 -0
- package/dist/prompts/workflow-selection.d.ts.map +1 -0
- package/dist/prompts/workflow-selection.js +147 -0
- package/dist/prompts/workflow-selection.js.map +1 -0
- package/dist/sembix-cli-1.4.1.tgz +0 -0
- package/dist/services/cognito-auth.d.ts +92 -0
- package/dist/services/cognito-auth.d.ts.map +1 -0
- package/dist/services/cognito-auth.js +319 -0
- package/dist/services/cognito-auth.js.map +1 -0
- package/dist/services/studio-api-client.d.ts +127 -0
- package/dist/services/studio-api-client.d.ts.map +1 -0
- package/dist/services/studio-api-client.js +291 -0
- package/dist/services/studio-api-client.js.map +1 -0
- package/dist/types/studio.d.ts +82 -0
- package/dist/types/studio.d.ts.map +1 -0
- package/dist/types/studio.js +7 -0
- package/dist/types/studio.js.map +1 -0
- package/dist/types.d.ts +283 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -1
- package/dist/utils/browser-auth.d.ts +45 -0
- package/dist/utils/browser-auth.d.ts.map +1 -0
- package/dist/utils/browser-auth.js +168 -0
- package/dist/utils/browser-auth.js.map +1 -0
- package/dist/utils/cognito-auth.d.ts +3 -0
- package/dist/utils/cognito-auth.d.ts.map +1 -0
- package/dist/utils/cognito-auth.js +3 -0
- package/dist/utils/cognito-auth.js.map +1 -0
- package/dist/utils/config-file.d.ts +40 -0
- package/dist/utils/config-file.d.ts.map +1 -1
- package/dist/utils/config-file.js +158 -4
- package/dist/utils/config-file.js.map +1 -1
- package/dist/utils/environment.d.ts +22 -0
- package/dist/utils/environment.d.ts.map +1 -0
- package/dist/utils/environment.js +39 -0
- package/dist/utils/environment.js.map +1 -0
- package/dist/utils/error-handler.d.ts +53 -0
- package/dist/utils/error-handler.d.ts.map +1 -0
- package/dist/utils/error-handler.js +174 -0
- package/dist/utils/error-handler.js.map +1 -0
- package/dist/utils/fuzzy-match.d.ts +31 -0
- package/dist/utils/fuzzy-match.d.ts.map +1 -0
- package/dist/utils/fuzzy-match.js +138 -0
- package/dist/utils/fuzzy-match.js.map +1 -0
- package/dist/utils/github.d.ts +2 -2
- package/dist/utils/github.d.ts.map +1 -1
- package/dist/utils/github.js +30 -10
- package/dist/utils/github.js.map +1 -1
- package/dist/utils/input-parser.d.ts +14 -0
- package/dist/utils/input-parser.d.ts.map +1 -0
- package/dist/utils/input-parser.js +34 -0
- package/dist/utils/input-parser.js.map +1 -0
- package/dist/utils/output.d.ts +55 -0
- package/dist/utils/output.d.ts.map +1 -0
- package/dist/utils/output.js +80 -0
- package/dist/utils/output.js.map +1 -0
- package/dist/utils/recent-workflows.d.ts +37 -0
- package/dist/utils/recent-workflows.d.ts.map +1 -0
- package/dist/utils/recent-workflows.js +172 -0
- package/dist/utils/recent-workflows.js.map +1 -0
- package/dist/utils/studio-api-client.d.ts +3 -0
- package/dist/utils/studio-api-client.d.ts.map +1 -0
- package/dist/utils/studio-api-client.js +3 -0
- package/dist/utils/studio-api-client.js.map +1 -0
- package/dist/utils/studio-api.d.ts +53 -0
- package/dist/utils/studio-api.d.ts.map +1 -0
- package/dist/utils/studio-api.js +102 -0
- package/dist/utils/studio-api.js.map +1 -0
- package/dist/utils/studio-config.d.ts +74 -0
- package/dist/utils/studio-config.d.ts.map +1 -0
- package/dist/utils/studio-config.js +213 -0
- package/dist/utils/studio-config.js.map +1 -0
- package/dist/utils/token-manager.d.ts +4 -0
- package/dist/utils/token-manager.d.ts.map +1 -0
- package/dist/utils/token-manager.js +3 -0
- package/dist/utils/token-manager.js.map +1 -0
- package/dist/utils/ui.d.ts +55 -1
- package/dist/utils/ui.d.ts.map +1 -1
- package/dist/utils/ui.js +151 -2
- package/dist/utils/ui.js.map +1 -1
- package/package.json +4 -1
- package/dist/__tests__/config-schema.test.d.ts +0 -2
- package/dist/__tests__/config-schema.test.d.ts.map +0 -1
- package/dist/__tests__/config-schema.test.js +0 -471
- package/dist/__tests__/config-schema.test.js.map +0 -1
- package/dist/__tests__/config.test.d.ts +0 -2
- package/dist/__tests__/config.test.d.ts.map +0 -1
- package/dist/__tests__/config.test.js +0 -75
- package/dist/__tests__/config.test.js.map +0 -1
- package/dist/__tests__/integration/configure.test.d.ts +0 -2
- package/dist/__tests__/integration/configure.test.d.ts.map +0 -1
- package/dist/__tests__/integration/configure.test.js +0 -247
- package/dist/__tests__/integration/configure.test.js.map +0 -1
- package/dist/__tests__/integration/fixtures/configs.d.ts +0 -477
- package/dist/__tests__/integration/fixtures/configs.d.ts.map +0 -1
- package/dist/__tests__/integration/fixtures/configs.js +0 -175
- package/dist/__tests__/integration/fixtures/configs.js.map +0 -1
- package/dist/__tests__/integration/helpers/cli-runner.d.ts +0 -63
- package/dist/__tests__/integration/helpers/cli-runner.d.ts.map +0 -1
- package/dist/__tests__/integration/helpers/cli-runner.js +0 -152
- package/dist/__tests__/integration/helpers/cli-runner.js.map +0 -1
- package/dist/__tests__/integration/helpers/command-runner.d.ts +0 -53
- package/dist/__tests__/integration/helpers/command-runner.d.ts.map +0 -1
- package/dist/__tests__/integration/helpers/command-runner.js +0 -117
- package/dist/__tests__/integration/helpers/command-runner.js.map +0 -1
- package/dist/__tests__/integration/studio-create.test.d.ts +0 -2
- package/dist/__tests__/integration/studio-create.test.d.ts.map +0 -1
- package/dist/__tests__/integration/studio-create.test.js +0 -209
- package/dist/__tests__/integration/studio-create.test.js.map +0 -1
- package/dist/__tests__/integration/studio-update.test.d.ts +0 -2
- package/dist/__tests__/integration/studio-update.test.d.ts.map +0 -1
- package/dist/__tests__/integration/studio-update.test.js +0 -166
- package/dist/__tests__/integration/studio-update.test.js.map +0 -1
- package/dist/commands/__tests__/configure.test.d.ts +0 -2
- package/dist/commands/__tests__/configure.test.d.ts.map +0 -1
- package/dist/commands/__tests__/configure.test.js +0 -229
- package/dist/commands/__tests__/configure.test.js.map +0 -1
- package/dist/prompts/__tests__/environment-setup.test.d.ts +0 -2
- package/dist/prompts/__tests__/environment-setup.test.d.ts.map +0 -1
- package/dist/prompts/__tests__/environment-setup.test.js +0 -206
- package/dist/prompts/__tests__/environment-setup.test.js.map +0 -1
- package/dist/prompts/__tests__/hub-integration.test.d.ts +0 -2
- package/dist/prompts/__tests__/hub-integration.test.d.ts.map +0 -1
- package/dist/prompts/__tests__/hub-integration.test.js +0 -126
- package/dist/prompts/__tests__/hub-integration.test.js.map +0 -1
- package/dist/prompts/__tests__/prompt-helpers.test.d.ts +0 -2
- package/dist/prompts/__tests__/prompt-helpers.test.d.ts.map +0 -1
- package/dist/prompts/__tests__/prompt-helpers.test.js +0 -235
- package/dist/prompts/__tests__/prompt-helpers.test.js.map +0 -1
- package/dist/sembix-cli-1.3.0.tgz +0 -0
- package/dist/utils/__tests__/config-file.test.d.ts +0 -2
- package/dist/utils/__tests__/config-file.test.d.ts.map +0 -1
- package/dist/utils/__tests__/config-file.test.js +0 -218
- package/dist/utils/__tests__/config-file.test.js.map +0 -1
- package/dist/utils/__tests__/config-loader.test.d.ts +0 -2
- package/dist/utils/__tests__/config-loader.test.d.ts.map +0 -1
- package/dist/utils/__tests__/config-loader.test.js +0 -325
- package/dist/utils/__tests__/config-loader.test.js.map +0 -1
- package/dist/utils/__tests__/github.test.d.ts +0 -2
- package/dist/utils/__tests__/github.test.d.ts.map +0 -1
- package/dist/utils/__tests__/github.test.js +0 -282
- package/dist/utils/__tests__/github.test.js.map +0 -1
- package/dist/utils/__tests__/ui.test.d.ts +0 -2
- package/dist/utils/__tests__/ui.test.d.ts.map +0 -1
- package/dist/utils/__tests__/ui.test.js +0 -256
- package/dist/utils/__tests__/ui.test.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../../src/commands/configure.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../../src/commands/configure.ts"],"names":[],"mappings":"AAoBA;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAoRtD"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { input, password, confirm } from '@inquirer/prompts';
|
|
2
|
-
import { writeConfig, readConfig, getConfigPath, configExists } from '../utils/config-file.js';
|
|
1
|
+
import { input, password, confirm, select } from '@inquirer/prompts';
|
|
2
|
+
import { writeConfig, readConfig, getConfigPath, configExists, writeProfile, readProfile, listProfiles } from '../utils/config-file.js';
|
|
3
3
|
import * as ui from '../utils/ui.js';
|
|
4
|
+
import { studioApiUrlSchema, cognitoDomainSchema, cognitoClientIdSchema, cognitoUserPoolIdSchema } from '../types.js';
|
|
5
|
+
import { awsRegions } from '../types.js';
|
|
4
6
|
/**
|
|
5
7
|
* Interactive configuration wizard
|
|
6
8
|
* Mimics AWS CLI's 'aws configure' command
|
|
@@ -20,6 +22,11 @@ export async function configureCommand() {
|
|
|
20
22
|
console.log();
|
|
21
23
|
}
|
|
22
24
|
// Prompt for GitHub token
|
|
25
|
+
console.log(ui.dim('GitHub Personal Access Token'));
|
|
26
|
+
console.log(ui.dim(' Used for: GitHub API access, managing environments and workflows'));
|
|
27
|
+
console.log(ui.dim(' Required scopes: repo, workflow'));
|
|
28
|
+
console.log(ui.dim(' Create at: https://github.com/settings/tokens/new'));
|
|
29
|
+
console.log();
|
|
23
30
|
let githubToken;
|
|
24
31
|
if (existingConfig.github_token) {
|
|
25
32
|
console.log(ui.dim(`Current token: ${existingConfig.github_token.substring(0, 10)}...`));
|
|
@@ -62,10 +69,163 @@ export async function configureCommand() {
|
|
|
62
69
|
});
|
|
63
70
|
}
|
|
64
71
|
// Prompt for default GitHub org (optional)
|
|
72
|
+
console.log();
|
|
73
|
+
console.log(ui.dim('Default GitHub Organization (optional)'));
|
|
74
|
+
console.log(ui.dim(' Used for: Default organization for CLI commands'));
|
|
75
|
+
console.log(ui.dim(' Example: my-company'));
|
|
76
|
+
console.log();
|
|
65
77
|
const defaultOrg = await input({
|
|
66
78
|
message: 'Default GitHub Organization (optional):',
|
|
67
79
|
default: existingConfig.default_github_org || '',
|
|
68
80
|
});
|
|
81
|
+
// Prompt for Studio profile configuration
|
|
82
|
+
console.log();
|
|
83
|
+
const configureStudio = await confirm({
|
|
84
|
+
message: 'Configure Sembix Studio profile?',
|
|
85
|
+
default: false,
|
|
86
|
+
});
|
|
87
|
+
let studioProfile;
|
|
88
|
+
if (configureStudio) {
|
|
89
|
+
console.log();
|
|
90
|
+
console.log(ui.dim('Studio Profile Configuration'));
|
|
91
|
+
console.log();
|
|
92
|
+
// Check for existing profiles
|
|
93
|
+
const existingProfiles = await listProfiles();
|
|
94
|
+
if (existingProfiles.length > 0) {
|
|
95
|
+
console.log(ui.dim(`Existing profiles: ${existingProfiles.join(', ')}`));
|
|
96
|
+
console.log();
|
|
97
|
+
}
|
|
98
|
+
// Prompt for profile name
|
|
99
|
+
console.log(ui.dim('Profile Name'));
|
|
100
|
+
console.log(ui.dim(' Used for: Identifying this Studio instance configuration'));
|
|
101
|
+
console.log(ui.dim(' Example: default, production, staging'));
|
|
102
|
+
console.log();
|
|
103
|
+
const profileName = await input({
|
|
104
|
+
message: 'Profile name:',
|
|
105
|
+
default: 'default',
|
|
106
|
+
validate: (value) => {
|
|
107
|
+
if (!value || value.trim() === '') {
|
|
108
|
+
return 'Profile name is required';
|
|
109
|
+
}
|
|
110
|
+
if (!/^[a-zA-Z0-9_-]+$/.test(value)) {
|
|
111
|
+
return 'Profile name can only contain letters, numbers, hyphens, and underscores';
|
|
112
|
+
}
|
|
113
|
+
return true;
|
|
114
|
+
},
|
|
115
|
+
});
|
|
116
|
+
// Check if profile exists
|
|
117
|
+
const existingProfile = await readProfile(profileName.trim());
|
|
118
|
+
if (existingProfile) {
|
|
119
|
+
console.log(ui.dim(`Profile '${profileName}' already exists. You can update its values.`));
|
|
120
|
+
console.log();
|
|
121
|
+
}
|
|
122
|
+
// Prompt for Studio API URL
|
|
123
|
+
console.log();
|
|
124
|
+
console.log(ui.dim('Studio API URL'));
|
|
125
|
+
console.log(ui.dim(' Used for: Connecting to Sembix Studio backend API'));
|
|
126
|
+
console.log(ui.dim(' Format: Must be HTTPS URL'));
|
|
127
|
+
console.log(ui.dim(' Example: https://api.studio.sembix.com'));
|
|
128
|
+
console.log();
|
|
129
|
+
const studioApiUrl = await input({
|
|
130
|
+
message: 'Studio API URL:',
|
|
131
|
+
default: existingProfile?.studioApiUrl || '',
|
|
132
|
+
validate: (value) => {
|
|
133
|
+
if (!value || value.trim() === '') {
|
|
134
|
+
return 'Studio API URL is required';
|
|
135
|
+
}
|
|
136
|
+
const result = studioApiUrlSchema.safeParse(value.trim());
|
|
137
|
+
if (!result.success) {
|
|
138
|
+
return result.error.issues[0]?.message || 'Invalid Studio API URL';
|
|
139
|
+
}
|
|
140
|
+
return true;
|
|
141
|
+
},
|
|
142
|
+
});
|
|
143
|
+
// Prompt for Cognito User Pool ID
|
|
144
|
+
console.log();
|
|
145
|
+
console.log(ui.dim('Cognito User Pool ID'));
|
|
146
|
+
console.log(ui.dim(' Used for: AWS Cognito user authentication'));
|
|
147
|
+
console.log(ui.dim(' Format: region_randomstring (e.g., us-east-1_Ab12CdEf3)'));
|
|
148
|
+
console.log(ui.dim(' Example: us-east-1_Ab12CdEf3'));
|
|
149
|
+
console.log();
|
|
150
|
+
const cognitoUserPoolId = await input({
|
|
151
|
+
message: 'Cognito User Pool ID:',
|
|
152
|
+
default: existingProfile?.cognitoUserPoolId || '',
|
|
153
|
+
validate: (value) => {
|
|
154
|
+
if (!value || value.trim() === '') {
|
|
155
|
+
return 'Cognito User Pool ID is required';
|
|
156
|
+
}
|
|
157
|
+
const result = cognitoUserPoolIdSchema.safeParse(value.trim());
|
|
158
|
+
if (!result.success) {
|
|
159
|
+
return result.error.issues[0]?.message || 'Invalid Cognito User Pool ID format';
|
|
160
|
+
}
|
|
161
|
+
return true;
|
|
162
|
+
},
|
|
163
|
+
});
|
|
164
|
+
// Prompt for Cognito Client ID
|
|
165
|
+
console.log();
|
|
166
|
+
console.log(ui.dim('Cognito Client ID'));
|
|
167
|
+
console.log(ui.dim(' Used for: OAuth2 authentication with Cognito'));
|
|
168
|
+
console.log(ui.dim(' Format: 26-character alphanumeric string'));
|
|
169
|
+
console.log(ui.dim(' Example: 1a2b3c4d5e6f7g8h9i0j1k2l3m'));
|
|
170
|
+
console.log();
|
|
171
|
+
const cognitoClientId = await input({
|
|
172
|
+
message: 'Cognito Client ID:',
|
|
173
|
+
default: existingProfile?.cognitoClientId || '',
|
|
174
|
+
validate: (value) => {
|
|
175
|
+
if (!value || value.trim() === '') {
|
|
176
|
+
return 'Cognito Client ID is required';
|
|
177
|
+
}
|
|
178
|
+
const result = cognitoClientIdSchema.safeParse(value.trim());
|
|
179
|
+
if (!result.success) {
|
|
180
|
+
return result.error.issues[0]?.message || 'Invalid Cognito Client ID';
|
|
181
|
+
}
|
|
182
|
+
return true;
|
|
183
|
+
},
|
|
184
|
+
});
|
|
185
|
+
// Prompt for Cognito Region
|
|
186
|
+
console.log();
|
|
187
|
+
console.log(ui.dim('Cognito Region'));
|
|
188
|
+
console.log(ui.dim(' Used for: AWS region where Cognito User Pool is hosted'));
|
|
189
|
+
console.log(ui.dim(' Example: us-east-1, us-west-2, eu-west-1'));
|
|
190
|
+
console.log();
|
|
191
|
+
const cognitoRegion = await select({
|
|
192
|
+
message: 'Cognito Region:',
|
|
193
|
+
choices: awsRegions.map((region) => ({
|
|
194
|
+
name: region,
|
|
195
|
+
value: region,
|
|
196
|
+
})),
|
|
197
|
+
default: existingProfile?.cognitoRegion || 'us-east-1',
|
|
198
|
+
});
|
|
199
|
+
// Prompt for Cognito Domain
|
|
200
|
+
console.log();
|
|
201
|
+
console.log(ui.dim('Cognito Domain'));
|
|
202
|
+
console.log(ui.dim(' Used for: OAuth2 authorization and token endpoints'));
|
|
203
|
+
console.log(ui.dim(' Format: https://<domain>.auth.<region>.amazoncognito.com'));
|
|
204
|
+
console.log(ui.dim(' Example: https://sembix-studio.auth.us-east-1.amazoncognito.com'));
|
|
205
|
+
console.log();
|
|
206
|
+
const cognitoDomain = await input({
|
|
207
|
+
message: 'Cognito Domain:',
|
|
208
|
+
default: existingProfile?.cognitoDomain || '',
|
|
209
|
+
validate: (value) => {
|
|
210
|
+
if (!value || value.trim() === '') {
|
|
211
|
+
return 'Cognito Domain is required';
|
|
212
|
+
}
|
|
213
|
+
const result = cognitoDomainSchema.safeParse(value.trim());
|
|
214
|
+
if (!result.success) {
|
|
215
|
+
return result.error.issues[0]?.message || 'Invalid Cognito domain format';
|
|
216
|
+
}
|
|
217
|
+
return true;
|
|
218
|
+
},
|
|
219
|
+
});
|
|
220
|
+
studioProfile = {
|
|
221
|
+
name: profileName.trim(),
|
|
222
|
+
studioApiUrl: studioApiUrl.trim(),
|
|
223
|
+
cognitoUserPoolId: cognitoUserPoolId.trim(),
|
|
224
|
+
cognitoClientId: cognitoClientId.trim(),
|
|
225
|
+
cognitoRegion,
|
|
226
|
+
cognitoDomain: cognitoDomain.trim(),
|
|
227
|
+
};
|
|
228
|
+
}
|
|
69
229
|
// Save configuration
|
|
70
230
|
const spinner = ui.spinner('Saving configuration...');
|
|
71
231
|
try {
|
|
@@ -73,6 +233,10 @@ export async function configureCommand() {
|
|
|
73
233
|
github_token: githubToken.trim(),
|
|
74
234
|
default_github_org: defaultOrg.trim() || undefined,
|
|
75
235
|
});
|
|
236
|
+
// Save Studio profile if configured
|
|
237
|
+
if (studioProfile) {
|
|
238
|
+
await writeProfile(studioProfile);
|
|
239
|
+
}
|
|
76
240
|
spinner.stop();
|
|
77
241
|
console.log();
|
|
78
242
|
ui.success('Configuration saved successfully!');
|
|
@@ -81,6 +245,12 @@ export async function configureCommand() {
|
|
|
81
245
|
console.log(` ${ui.highlight(getConfigPath())}`);
|
|
82
246
|
console.log();
|
|
83
247
|
console.log(ui.dim('You can now run Sembix commands without the --token flag.'));
|
|
248
|
+
if (studioProfile) {
|
|
249
|
+
console.log();
|
|
250
|
+
ui.success(`Studio profile '${studioProfile.name}' configured successfully!`);
|
|
251
|
+
console.log();
|
|
252
|
+
console.log(ui.dim(`Run 'sembix login ${studioProfile.name !== 'default' ? studioProfile.name : ''}' to authenticate.`.trim()));
|
|
253
|
+
}
|
|
84
254
|
}
|
|
85
255
|
catch (error) {
|
|
86
256
|
spinner.stop();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../../src/commands/configure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../../src/commands/configure.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './configure.js';
|
|
2
|
+
export * from './hub-integration.js';
|
|
3
|
+
export * from './login.js';
|
|
4
|
+
export * from './logout.js';
|
|
5
|
+
export * from './profile.js';
|
|
6
|
+
export * from './project.js';
|
|
7
|
+
export * from './setup.js';
|
|
8
|
+
export * from './update.js';
|
|
9
|
+
export * from './workflow.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AACA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Re-export all command modules for convenient importing
|
|
2
|
+
export * from './configure.js';
|
|
3
|
+
export * from './hub-integration.js';
|
|
4
|
+
export * from './login.js';
|
|
5
|
+
export * from './logout.js';
|
|
6
|
+
export * from './profile.js';
|
|
7
|
+
export * from './project.js';
|
|
8
|
+
export * from './setup.js';
|
|
9
|
+
export * from './update.js';
|
|
10
|
+
export * from './workflow.js';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Options for the login command
|
|
3
|
+
*/
|
|
4
|
+
export interface LoginCommandOptions {
|
|
5
|
+
profile?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Login command - Authenticate with Sembix Studio via Cognito OAuth flow
|
|
9
|
+
*
|
|
10
|
+
* This command:
|
|
11
|
+
* 1. Loads the specified profile (or default)
|
|
12
|
+
* 2. Checks if valid tokens already exist
|
|
13
|
+
* 3. Initiates browser-based OAuth flow with PKCE
|
|
14
|
+
* 4. Stores tokens securely in ~/.sembix/tokens/
|
|
15
|
+
*
|
|
16
|
+
* @param options - Command options including optional profile name
|
|
17
|
+
*/
|
|
18
|
+
export declare function loginCommand(options: LoginCommandOptions): Promise<void>;
|
|
19
|
+
//# sourceMappingURL=login.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqH9E"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { CognitoAuthService } from '../services/cognito-auth.js';
|
|
2
|
+
import { getActiveProfile, loadTokens, isTokenValid, saveTokens, } from '../utils/studio-config.js';
|
|
3
|
+
import { isInteractive, isCIEnvironment, hasClientCredentials } from '../utils/environment.js';
|
|
4
|
+
import * as ui from '../utils/ui.js';
|
|
5
|
+
/**
|
|
6
|
+
* Login command - Authenticate with Sembix Studio via Cognito OAuth flow
|
|
7
|
+
*
|
|
8
|
+
* This command:
|
|
9
|
+
* 1. Loads the specified profile (or default)
|
|
10
|
+
* 2. Checks if valid tokens already exist
|
|
11
|
+
* 3. Initiates browser-based OAuth flow with PKCE
|
|
12
|
+
* 4. Stores tokens securely in ~/.sembix/tokens/
|
|
13
|
+
*
|
|
14
|
+
* @param options - Command options including optional profile name
|
|
15
|
+
*/
|
|
16
|
+
export async function loginCommand(options) {
|
|
17
|
+
console.log();
|
|
18
|
+
ui.banner('Sembix Studio Authentication');
|
|
19
|
+
console.log();
|
|
20
|
+
try {
|
|
21
|
+
// Load the target profile (or default)
|
|
22
|
+
const profile = await getActiveProfile(options.profile);
|
|
23
|
+
console.log(`Authenticating with profile: ${ui.highlight(profile.name)}`);
|
|
24
|
+
console.log();
|
|
25
|
+
// Check if client credentials are configured
|
|
26
|
+
if (hasClientCredentials()) {
|
|
27
|
+
console.log(ui.warning('Client credentials detected in environment variables.'));
|
|
28
|
+
console.log();
|
|
29
|
+
console.log('The CLI will automatically use client credentials for authentication.');
|
|
30
|
+
console.log('No browser login needed.');
|
|
31
|
+
console.log();
|
|
32
|
+
// Test the credentials
|
|
33
|
+
try {
|
|
34
|
+
const authService = new CognitoAuthService(profile);
|
|
35
|
+
const tokens = await authService.authenticateWithClientCredentials(process.env.SEMBIX_CLIENT_ID, process.env.SEMBIX_CLIENT_SECRET);
|
|
36
|
+
ui.success('Client credentials are valid!');
|
|
37
|
+
console.log(` Access token expires: ${new Date(tokens.expiresAt).toLocaleString()}`);
|
|
38
|
+
console.log();
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
ui.error('Client credentials are invalid or expired.');
|
|
43
|
+
throw error;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// Check if valid tokens already exist
|
|
47
|
+
const existingTokens = await loadTokens(profile.name);
|
|
48
|
+
if (existingTokens && isTokenValid(existingTokens)) {
|
|
49
|
+
const expiresAt = new Date(existingTokens.expiresAt);
|
|
50
|
+
ui.success('Already authenticated!');
|
|
51
|
+
console.log(` Token expires: ${expiresAt.toLocaleString()}`);
|
|
52
|
+
console.log();
|
|
53
|
+
console.log(`Run ${ui.highlight(`sembix login --profile ${profile.name}`)} to re-authenticate.`);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
// Check if running in non-interactive environment
|
|
57
|
+
if (!isInteractive() || isCIEnvironment()) {
|
|
58
|
+
throw new Error('Cannot perform interactive login in non-interactive environment.\n\n' +
|
|
59
|
+
'For CI/CD pipelines, use client credentials:\n' +
|
|
60
|
+
' Set SEMBIX_CLIENT_ID and SEMBIX_CLIENT_SECRET environment variables\n\n' +
|
|
61
|
+
'To obtain credentials:\n' +
|
|
62
|
+
' Contact your administrator for M2M client credentials');
|
|
63
|
+
}
|
|
64
|
+
// Initiate OAuth flow
|
|
65
|
+
console.log('Starting authentication flow...');
|
|
66
|
+
console.log('A browser window will open for you to sign in.');
|
|
67
|
+
console.log();
|
|
68
|
+
const spinner = ui.spinner('Waiting for authentication...');
|
|
69
|
+
let tokens;
|
|
70
|
+
try {
|
|
71
|
+
const authService = new CognitoAuthService(profile);
|
|
72
|
+
tokens = await authService.initiateLogin();
|
|
73
|
+
spinner.stop();
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
spinner.stop();
|
|
77
|
+
throw new Error(`Authentication failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
78
|
+
}
|
|
79
|
+
// Save tokens securely
|
|
80
|
+
const saveSpinner = ui.spinner('Saving authentication tokens...');
|
|
81
|
+
try {
|
|
82
|
+
await saveTokens(profile.name, tokens);
|
|
83
|
+
saveSpinner.stop();
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
saveSpinner.stop();
|
|
87
|
+
throw new Error(`Failed to save tokens: ${error instanceof Error ? error.message : String(error)}`);
|
|
88
|
+
}
|
|
89
|
+
// Display success message with expiration
|
|
90
|
+
console.log();
|
|
91
|
+
ui.success('Authentication successful!');
|
|
92
|
+
const expiresAt = new Date(tokens.expiresAt);
|
|
93
|
+
console.log(` Profile: ${profile.name}`);
|
|
94
|
+
console.log(` Token expires: ${expiresAt.toLocaleString()}`);
|
|
95
|
+
console.log();
|
|
96
|
+
console.log('You can now use Studio API commands:');
|
|
97
|
+
console.log(` ${ui.highlight('sembix workflow start')} - Start a workflow`);
|
|
98
|
+
console.log(` ${ui.highlight('sembix workflow status')} - Check workflow status`);
|
|
99
|
+
console.log(` ${ui.highlight('sembix workflow list')} - List workflow runs`);
|
|
100
|
+
console.log();
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
console.log();
|
|
104
|
+
ui.error(error instanceof Error ? error.message : String(error));
|
|
105
|
+
console.log();
|
|
106
|
+
// Provide helpful next steps based on error type
|
|
107
|
+
if (error instanceof Error) {
|
|
108
|
+
if (error.message.includes('not found') || error.message.includes('No Studio profile')) {
|
|
109
|
+
console.log('Run ' + ui.highlight('sembix configure') + ' to set up a profile first.');
|
|
110
|
+
}
|
|
111
|
+
else if (error.message.includes('Authentication failed')) {
|
|
112
|
+
console.log('Please try again or check your Cognito configuration.');
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
process.exit(1);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Options for the logout command
|
|
3
|
+
*/
|
|
4
|
+
export interface LogoutCommandOptions {
|
|
5
|
+
profile?: string;
|
|
6
|
+
all?: boolean;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Logout command - deletes stored authentication tokens for Studio profiles
|
|
10
|
+
*
|
|
11
|
+
* @param options - Command options including profile name and all flag
|
|
12
|
+
*
|
|
13
|
+
* Behavior:
|
|
14
|
+
* - If --all flag is set: deletes tokens for all profiles with stored tokens
|
|
15
|
+
* - If --profile is specified: deletes tokens for that specific profile
|
|
16
|
+
* - Otherwise: deletes tokens for the default profile
|
|
17
|
+
*
|
|
18
|
+
* Token files are stored in ~/.sembix/tokens/{profile-name}.json
|
|
19
|
+
*/
|
|
20
|
+
export declare function logoutCommand(options: LogoutCommandOptions): Promise<void>;
|
|
21
|
+
//# sourceMappingURL=logout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwDhF"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// Internal utilities
|
|
2
|
+
import { deleteTokens, listTokenProfiles, getDefaultProfile } from '../utils/studio-config.js';
|
|
3
|
+
import * as ui from '../utils/ui.js';
|
|
4
|
+
/**
|
|
5
|
+
* Logout command - deletes stored authentication tokens for Studio profiles
|
|
6
|
+
*
|
|
7
|
+
* @param options - Command options including profile name and all flag
|
|
8
|
+
*
|
|
9
|
+
* Behavior:
|
|
10
|
+
* - If --all flag is set: deletes tokens for all profiles with stored tokens
|
|
11
|
+
* - If --profile is specified: deletes tokens for that specific profile
|
|
12
|
+
* - Otherwise: deletes tokens for the default profile
|
|
13
|
+
*
|
|
14
|
+
* Token files are stored in ~/.sembix/tokens/{profile-name}.json
|
|
15
|
+
*/
|
|
16
|
+
export async function logoutCommand(options) {
|
|
17
|
+
console.log();
|
|
18
|
+
ui.banner('Sembix Studio Logout');
|
|
19
|
+
console.log();
|
|
20
|
+
try {
|
|
21
|
+
// Determine which profiles to logout from
|
|
22
|
+
let profilesToLogout = [];
|
|
23
|
+
if (options.all) {
|
|
24
|
+
// Get all profiles with stored tokens
|
|
25
|
+
profilesToLogout = await listTokenProfiles();
|
|
26
|
+
if (profilesToLogout.length === 0) {
|
|
27
|
+
console.log('No stored tokens found.');
|
|
28
|
+
console.log();
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
console.log(`Found tokens for ${profilesToLogout.length} profile(s):`);
|
|
32
|
+
profilesToLogout.forEach(profile => {
|
|
33
|
+
console.log(` • ${ui.highlight(profile)}`);
|
|
34
|
+
});
|
|
35
|
+
console.log();
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
// Use specified profile or default profile
|
|
39
|
+
const profileName = options.profile || await getDefaultProfile() || 'default';
|
|
40
|
+
profilesToLogout = [profileName];
|
|
41
|
+
}
|
|
42
|
+
// Delete tokens for each profile
|
|
43
|
+
for (const profileName of profilesToLogout) {
|
|
44
|
+
await deleteTokens(profileName);
|
|
45
|
+
if (options.all) {
|
|
46
|
+
console.log(`✓ Logged out from profile: ${ui.highlight(profileName)}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
console.log();
|
|
50
|
+
if (options.all) {
|
|
51
|
+
ui.success(`Successfully logged out from ${profilesToLogout.length} profile(s)!`);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
ui.success(`Successfully logged out from profile '${profilesToLogout[0]}'!`);
|
|
55
|
+
}
|
|
56
|
+
console.log();
|
|
57
|
+
console.log(`Run ${ui.highlight('sembix login')} to authenticate again.`);
|
|
58
|
+
console.log();
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
console.log();
|
|
62
|
+
ui.error(error instanceof Error ? error.message : String(error));
|
|
63
|
+
process.exit(1);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=logout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC/F,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAUrC;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA6B;IAC/D,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,IAAI,CAAC;QACH,0CAA0C;QAC1C,IAAI,gBAAgB,GAAa,EAAE,CAAC;QAEpC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,sCAAsC;YACtC,gBAAgB,GAAG,MAAM,iBAAiB,EAAE,CAAC;YAE7C,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;gBACvC,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,oBAAoB,gBAAgB,CAAC,MAAM,cAAc,CAAC,CAAC;YACvE,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACjC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,2CAA2C;YAC3C,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,iBAAiB,EAAE,IAAI,SAAS,CAAC;YAC9E,gBAAgB,GAAG,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC;QAED,iCAAiC;QACjC,KAAK,MAAM,WAAW,IAAI,gBAAgB,EAAE,CAAC;YAC3C,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC;YAEhC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,EAAE,CAAC,OAAO,CAAC,gCAAgC,gBAAgB,CAAC,MAAM,cAAc,CAAC,CAAC;QACpF,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,OAAO,CAAC,yCAAyC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/E,CAAC;QAED,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,EAAE,CAAC;IAEhB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,EAAE,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
/**
|
|
3
|
+
* Set default project for a profile
|
|
4
|
+
*/
|
|
5
|
+
export declare const profileSetDefaultProjectCommand: Command;
|
|
6
|
+
/**
|
|
7
|
+
* Get default project for a profile
|
|
8
|
+
*/
|
|
9
|
+
export declare const profileGetDefaultProjectCommand: Command;
|
|
10
|
+
/**
|
|
11
|
+
* Clear default project for a profile
|
|
12
|
+
*/
|
|
13
|
+
export declare const profileClearDefaultProjectCommand: Command;
|
|
14
|
+
//# sourceMappingURL=profile-project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-project.d.ts","sourceRoot":"","sources":["../../src/commands/profile-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC;;GAEG;AACH,eAAO,MAAM,+BAA+B,SAqCxC,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,+BAA+B,SAkCxC,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,iCAAiC,SAwC1C,CAAC"}
|