@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.
Files changed (204) hide show
  1. package/COMMANDS.md +1522 -0
  2. package/QUICKSTART.md +829 -0
  3. package/README.md +1949 -285
  4. package/USAGE-EXAMPLES.md +872 -0
  5. package/dist/commands/configure.d.ts.map +1 -1
  6. package/dist/commands/configure.js +172 -2
  7. package/dist/commands/configure.js.map +1 -1
  8. package/dist/commands/index.d.ts +10 -0
  9. package/dist/commands/index.d.ts.map +1 -0
  10. package/dist/commands/index.js +11 -0
  11. package/dist/commands/index.js.map +1 -0
  12. package/dist/commands/login.d.ts +19 -0
  13. package/dist/commands/login.d.ts.map +1 -0
  14. package/dist/commands/login.js +118 -0
  15. package/dist/commands/login.js.map +1 -0
  16. package/dist/commands/logout.d.ts +21 -0
  17. package/dist/commands/logout.d.ts.map +1 -0
  18. package/dist/commands/logout.js +66 -0
  19. package/dist/commands/logout.js.map +1 -0
  20. package/dist/commands/profile-project.d.ts +14 -0
  21. package/dist/commands/profile-project.d.ts.map +1 -0
  22. package/dist/commands/profile-project.js +123 -0
  23. package/dist/commands/profile-project.js.map +1 -0
  24. package/dist/commands/profile.d.ts +26 -0
  25. package/dist/commands/profile.d.ts.map +1 -0
  26. package/dist/commands/profile.js +177 -0
  27. package/dist/commands/profile.js.map +1 -0
  28. package/dist/commands/project.d.ts +16 -0
  29. package/dist/commands/project.d.ts.map +1 -0
  30. package/dist/commands/project.js +153 -0
  31. package/dist/commands/project.js.map +1 -0
  32. package/dist/commands/setup.js +1 -1
  33. package/dist/commands/setup.js.map +1 -1
  34. package/dist/commands/update.js +2 -2
  35. package/dist/commands/update.js.map +1 -1
  36. package/dist/commands/workflow.d.ts +91 -0
  37. package/dist/commands/workflow.d.ts.map +1 -0
  38. package/dist/commands/workflow.js +1201 -0
  39. package/dist/commands/workflow.js.map +1 -0
  40. package/dist/config-schema.d.ts +23 -0
  41. package/dist/config-schema.d.ts.map +1 -1
  42. package/dist/config-schema.js +21 -1
  43. package/dist/config-schema.js.map +1 -1
  44. package/dist/config.d.ts +4 -0
  45. package/dist/config.d.ts.map +1 -1
  46. package/dist/config.js +23 -2
  47. package/dist/config.js.map +1 -1
  48. package/dist/index.js +318 -1
  49. package/dist/index.js.map +1 -1
  50. package/dist/prompts/project-selection.d.ts +8 -0
  51. package/dist/prompts/project-selection.d.ts.map +1 -0
  52. package/dist/prompts/project-selection.js +132 -0
  53. package/dist/prompts/project-selection.js.map +1 -0
  54. package/dist/prompts/workflow-inputs.d.ts +10 -0
  55. package/dist/prompts/workflow-inputs.d.ts.map +1 -0
  56. package/dist/prompts/workflow-inputs.js +71 -0
  57. package/dist/prompts/workflow-inputs.js.map +1 -0
  58. package/dist/prompts/workflow-selection.d.ts +8 -0
  59. package/dist/prompts/workflow-selection.d.ts.map +1 -0
  60. package/dist/prompts/workflow-selection.js +147 -0
  61. package/dist/prompts/workflow-selection.js.map +1 -0
  62. package/dist/sembix-cli-1.4.1.tgz +0 -0
  63. package/dist/services/cognito-auth.d.ts +92 -0
  64. package/dist/services/cognito-auth.d.ts.map +1 -0
  65. package/dist/services/cognito-auth.js +319 -0
  66. package/dist/services/cognito-auth.js.map +1 -0
  67. package/dist/services/studio-api-client.d.ts +127 -0
  68. package/dist/services/studio-api-client.d.ts.map +1 -0
  69. package/dist/services/studio-api-client.js +291 -0
  70. package/dist/services/studio-api-client.js.map +1 -0
  71. package/dist/types/studio.d.ts +82 -0
  72. package/dist/types/studio.d.ts.map +1 -0
  73. package/dist/types/studio.js +7 -0
  74. package/dist/types/studio.js.map +1 -0
  75. package/dist/types.d.ts +283 -0
  76. package/dist/types.d.ts.map +1 -1
  77. package/dist/types.js +5 -0
  78. package/dist/types.js.map +1 -1
  79. package/dist/utils/browser-auth.d.ts +45 -0
  80. package/dist/utils/browser-auth.d.ts.map +1 -0
  81. package/dist/utils/browser-auth.js +168 -0
  82. package/dist/utils/browser-auth.js.map +1 -0
  83. package/dist/utils/cognito-auth.d.ts +3 -0
  84. package/dist/utils/cognito-auth.d.ts.map +1 -0
  85. package/dist/utils/cognito-auth.js +3 -0
  86. package/dist/utils/cognito-auth.js.map +1 -0
  87. package/dist/utils/config-file.d.ts +40 -0
  88. package/dist/utils/config-file.d.ts.map +1 -1
  89. package/dist/utils/config-file.js +158 -4
  90. package/dist/utils/config-file.js.map +1 -1
  91. package/dist/utils/environment.d.ts +22 -0
  92. package/dist/utils/environment.d.ts.map +1 -0
  93. package/dist/utils/environment.js +39 -0
  94. package/dist/utils/environment.js.map +1 -0
  95. package/dist/utils/error-handler.d.ts +53 -0
  96. package/dist/utils/error-handler.d.ts.map +1 -0
  97. package/dist/utils/error-handler.js +174 -0
  98. package/dist/utils/error-handler.js.map +1 -0
  99. package/dist/utils/fuzzy-match.d.ts +31 -0
  100. package/dist/utils/fuzzy-match.d.ts.map +1 -0
  101. package/dist/utils/fuzzy-match.js +138 -0
  102. package/dist/utils/fuzzy-match.js.map +1 -0
  103. package/dist/utils/github.d.ts +2 -2
  104. package/dist/utils/github.d.ts.map +1 -1
  105. package/dist/utils/github.js +30 -10
  106. package/dist/utils/github.js.map +1 -1
  107. package/dist/utils/input-parser.d.ts +14 -0
  108. package/dist/utils/input-parser.d.ts.map +1 -0
  109. package/dist/utils/input-parser.js +34 -0
  110. package/dist/utils/input-parser.js.map +1 -0
  111. package/dist/utils/output.d.ts +55 -0
  112. package/dist/utils/output.d.ts.map +1 -0
  113. package/dist/utils/output.js +80 -0
  114. package/dist/utils/output.js.map +1 -0
  115. package/dist/utils/recent-workflows.d.ts +37 -0
  116. package/dist/utils/recent-workflows.d.ts.map +1 -0
  117. package/dist/utils/recent-workflows.js +172 -0
  118. package/dist/utils/recent-workflows.js.map +1 -0
  119. package/dist/utils/studio-api-client.d.ts +3 -0
  120. package/dist/utils/studio-api-client.d.ts.map +1 -0
  121. package/dist/utils/studio-api-client.js +3 -0
  122. package/dist/utils/studio-api-client.js.map +1 -0
  123. package/dist/utils/studio-api.d.ts +53 -0
  124. package/dist/utils/studio-api.d.ts.map +1 -0
  125. package/dist/utils/studio-api.js +102 -0
  126. package/dist/utils/studio-api.js.map +1 -0
  127. package/dist/utils/studio-config.d.ts +74 -0
  128. package/dist/utils/studio-config.d.ts.map +1 -0
  129. package/dist/utils/studio-config.js +213 -0
  130. package/dist/utils/studio-config.js.map +1 -0
  131. package/dist/utils/token-manager.d.ts +4 -0
  132. package/dist/utils/token-manager.d.ts.map +1 -0
  133. package/dist/utils/token-manager.js +3 -0
  134. package/dist/utils/token-manager.js.map +1 -0
  135. package/dist/utils/ui.d.ts +55 -1
  136. package/dist/utils/ui.d.ts.map +1 -1
  137. package/dist/utils/ui.js +151 -2
  138. package/dist/utils/ui.js.map +1 -1
  139. package/package.json +4 -1
  140. package/dist/__tests__/config-schema.test.d.ts +0 -2
  141. package/dist/__tests__/config-schema.test.d.ts.map +0 -1
  142. package/dist/__tests__/config-schema.test.js +0 -471
  143. package/dist/__tests__/config-schema.test.js.map +0 -1
  144. package/dist/__tests__/config.test.d.ts +0 -2
  145. package/dist/__tests__/config.test.d.ts.map +0 -1
  146. package/dist/__tests__/config.test.js +0 -75
  147. package/dist/__tests__/config.test.js.map +0 -1
  148. package/dist/__tests__/integration/configure.test.d.ts +0 -2
  149. package/dist/__tests__/integration/configure.test.d.ts.map +0 -1
  150. package/dist/__tests__/integration/configure.test.js +0 -247
  151. package/dist/__tests__/integration/configure.test.js.map +0 -1
  152. package/dist/__tests__/integration/fixtures/configs.d.ts +0 -477
  153. package/dist/__tests__/integration/fixtures/configs.d.ts.map +0 -1
  154. package/dist/__tests__/integration/fixtures/configs.js +0 -175
  155. package/dist/__tests__/integration/fixtures/configs.js.map +0 -1
  156. package/dist/__tests__/integration/helpers/cli-runner.d.ts +0 -63
  157. package/dist/__tests__/integration/helpers/cli-runner.d.ts.map +0 -1
  158. package/dist/__tests__/integration/helpers/cli-runner.js +0 -152
  159. package/dist/__tests__/integration/helpers/cli-runner.js.map +0 -1
  160. package/dist/__tests__/integration/helpers/command-runner.d.ts +0 -53
  161. package/dist/__tests__/integration/helpers/command-runner.d.ts.map +0 -1
  162. package/dist/__tests__/integration/helpers/command-runner.js +0 -117
  163. package/dist/__tests__/integration/helpers/command-runner.js.map +0 -1
  164. package/dist/__tests__/integration/studio-create.test.d.ts +0 -2
  165. package/dist/__tests__/integration/studio-create.test.d.ts.map +0 -1
  166. package/dist/__tests__/integration/studio-create.test.js +0 -209
  167. package/dist/__tests__/integration/studio-create.test.js.map +0 -1
  168. package/dist/__tests__/integration/studio-update.test.d.ts +0 -2
  169. package/dist/__tests__/integration/studio-update.test.d.ts.map +0 -1
  170. package/dist/__tests__/integration/studio-update.test.js +0 -166
  171. package/dist/__tests__/integration/studio-update.test.js.map +0 -1
  172. package/dist/commands/__tests__/configure.test.d.ts +0 -2
  173. package/dist/commands/__tests__/configure.test.d.ts.map +0 -1
  174. package/dist/commands/__tests__/configure.test.js +0 -229
  175. package/dist/commands/__tests__/configure.test.js.map +0 -1
  176. package/dist/prompts/__tests__/environment-setup.test.d.ts +0 -2
  177. package/dist/prompts/__tests__/environment-setup.test.d.ts.map +0 -1
  178. package/dist/prompts/__tests__/environment-setup.test.js +0 -206
  179. package/dist/prompts/__tests__/environment-setup.test.js.map +0 -1
  180. package/dist/prompts/__tests__/hub-integration.test.d.ts +0 -2
  181. package/dist/prompts/__tests__/hub-integration.test.d.ts.map +0 -1
  182. package/dist/prompts/__tests__/hub-integration.test.js +0 -126
  183. package/dist/prompts/__tests__/hub-integration.test.js.map +0 -1
  184. package/dist/prompts/__tests__/prompt-helpers.test.d.ts +0 -2
  185. package/dist/prompts/__tests__/prompt-helpers.test.d.ts.map +0 -1
  186. package/dist/prompts/__tests__/prompt-helpers.test.js +0 -235
  187. package/dist/prompts/__tests__/prompt-helpers.test.js.map +0 -1
  188. package/dist/sembix-cli-1.3.0.tgz +0 -0
  189. package/dist/utils/__tests__/config-file.test.d.ts +0 -2
  190. package/dist/utils/__tests__/config-file.test.d.ts.map +0 -1
  191. package/dist/utils/__tests__/config-file.test.js +0 -218
  192. package/dist/utils/__tests__/config-file.test.js.map +0 -1
  193. package/dist/utils/__tests__/config-loader.test.d.ts +0 -2
  194. package/dist/utils/__tests__/config-loader.test.d.ts.map +0 -1
  195. package/dist/utils/__tests__/config-loader.test.js +0 -325
  196. package/dist/utils/__tests__/config-loader.test.js.map +0 -1
  197. package/dist/utils/__tests__/github.test.d.ts +0 -2
  198. package/dist/utils/__tests__/github.test.d.ts.map +0 -1
  199. package/dist/utils/__tests__/github.test.js +0 -282
  200. package/dist/utils/__tests__/github.test.js.map +0 -1
  201. package/dist/utils/__tests__/ui.test.d.ts +0 -2
  202. package/dist/utils/__tests__/ui.test.d.ts.map +0 -1
  203. package/dist/utils/__tests__/ui.test.js +0 -256
  204. 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":"AAIA;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAsFtD"}
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":"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"}
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"}