@getbrevo/cli 2.0.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/CHANGELOG.md +209 -0
  2. package/README.md +8 -5
  3. package/agent-context/AGENTS.md +59 -15
  4. package/agent-context/SKILL.md +70 -14
  5. package/dist/{templates → bin}/files/AGENTS.md.tmpl +11 -1
  6. package/dist/{templates → bin}/files/CLAUDE.md.tmpl +8 -0
  7. package/dist/{templates → bin}/files/README.md.tmpl +11 -14
  8. package/dist/bin/files/app-config.json.tmpl +16 -0
  9. package/dist/{templates → bin}/files/src/oauth/.env.example.tmpl +8 -0
  10. package/dist/{templates → bin}/files/src/oauth/.env.local.tmpl +2 -0
  11. package/dist/{templates → bin}/files/src/oauth/handler.js.tmpl +49 -7
  12. package/dist/{templates → bin}/files/src/oauth/server.js.tmpl +20 -14
  13. package/dist/{templates → bin}/files/src/oauth/token-store.js.tmpl +19 -0
  14. package/dist/bin/index.js +660 -235
  15. package/dist/bin/index.js.map +7 -1
  16. package/package.json +6 -4
  17. package/dist/api/client.d.ts +0 -25
  18. package/dist/api/client.d.ts.map +0 -1
  19. package/dist/api/client.js +0 -205
  20. package/dist/api/client.js.map +0 -1
  21. package/dist/bin/index.d.ts +0 -3
  22. package/dist/bin/index.d.ts.map +0 -1
  23. package/dist/commands/app/create.d.ts +0 -8
  24. package/dist/commands/app/create.d.ts.map +0 -1
  25. package/dist/commands/app/create.js +0 -325
  26. package/dist/commands/app/create.js.map +0 -1
  27. package/dist/commands/app/credentials.d.ts +0 -6
  28. package/dist/commands/app/credentials.d.ts.map +0 -1
  29. package/dist/commands/app/credentials.js +0 -114
  30. package/dist/commands/app/credentials.js.map +0 -1
  31. package/dist/commands/app/delete.d.ts +0 -6
  32. package/dist/commands/app/delete.d.ts.map +0 -1
  33. package/dist/commands/app/delete.js +0 -167
  34. package/dist/commands/app/delete.js.map +0 -1
  35. package/dist/commands/app/list.d.ts +0 -4
  36. package/dist/commands/app/list.d.ts.map +0 -1
  37. package/dist/commands/app/list.js +0 -71
  38. package/dist/commands/app/list.js.map +0 -1
  39. package/dist/commands/app/scaffold.d.ts +0 -5
  40. package/dist/commands/app/scaffold.d.ts.map +0 -1
  41. package/dist/commands/app/scaffold.js +0 -213
  42. package/dist/commands/app/scaffold.js.map +0 -1
  43. package/dist/commands/app/scopes.d.ts +0 -2
  44. package/dist/commands/app/scopes.d.ts.map +0 -1
  45. package/dist/commands/app/scopes.js +0 -81
  46. package/dist/commands/app/scopes.js.map +0 -1
  47. package/dist/commands/app/start.d.ts +0 -5
  48. package/dist/commands/app/start.d.ts.map +0 -1
  49. package/dist/commands/app/start.js +0 -220
  50. package/dist/commands/app/start.js.map +0 -1
  51. package/dist/commands/app/update.d.ts +0 -2
  52. package/dist/commands/app/update.d.ts.map +0 -1
  53. package/dist/commands/app/update.js +0 -444
  54. package/dist/commands/app/update.js.map +0 -1
  55. package/dist/commands/definitions.d.ts +0 -5
  56. package/dist/commands/definitions.d.ts.map +0 -1
  57. package/dist/commands/definitions.js +0 -262
  58. package/dist/commands/definitions.js.map +0 -1
  59. package/dist/commands/init.d.ts +0 -2
  60. package/dist/commands/init.d.ts.map +0 -1
  61. package/dist/commands/init.js +0 -138
  62. package/dist/commands/init.js.map +0 -1
  63. package/dist/commands/login.d.ts +0 -6
  64. package/dist/commands/login.d.ts.map +0 -1
  65. package/dist/commands/login.js +0 -251
  66. package/dist/commands/login.js.map +0 -1
  67. package/dist/commands/logout.d.ts +0 -5
  68. package/dist/commands/logout.d.ts.map +0 -1
  69. package/dist/commands/logout.js +0 -54
  70. package/dist/commands/logout.js.map +0 -1
  71. package/dist/commands/skill/install.d.ts +0 -4
  72. package/dist/commands/skill/install.d.ts.map +0 -1
  73. package/dist/commands/skill/install.js +0 -29
  74. package/dist/commands/skill/install.js.map +0 -1
  75. package/dist/commands/skill/uninstall.d.ts +0 -4
  76. package/dist/commands/skill/uninstall.d.ts.map +0 -1
  77. package/dist/commands/skill/uninstall.js +0 -23
  78. package/dist/commands/skill/uninstall.js.map +0 -1
  79. package/dist/commands/whoami.d.ts +0 -4
  80. package/dist/commands/whoami.d.ts.map +0 -1
  81. package/dist/commands/whoami.js +0 -85
  82. package/dist/commands/whoami.js.map +0 -1
  83. package/dist/container.d.ts +0 -7
  84. package/dist/container.d.ts.map +0 -1
  85. package/dist/container.js +0 -28
  86. package/dist/container.js.map +0 -1
  87. package/dist/lang/en.d.ts +0 -162
  88. package/dist/lang/en.d.ts.map +0 -1
  89. package/dist/lang/en.js +0 -189
  90. package/dist/lang/en.js.map +0 -1
  91. package/dist/lib/abort.d.ts +0 -3
  92. package/dist/lib/abort.d.ts.map +0 -1
  93. package/dist/lib/abort.js +0 -30
  94. package/dist/lib/abort.js.map +0 -1
  95. package/dist/lib/auth-guard.d.ts +0 -13
  96. package/dist/lib/auth-guard.d.ts.map +0 -1
  97. package/dist/lib/auth-guard.js +0 -60
  98. package/dist/lib/auth-guard.js.map +0 -1
  99. package/dist/lib/browser.d.ts +0 -2
  100. package/dist/lib/browser.d.ts.map +0 -1
  101. package/dist/lib/browser.js +0 -16
  102. package/dist/lib/browser.js.map +0 -1
  103. package/dist/lib/cli-version.d.ts +0 -2
  104. package/dist/lib/cli-version.d.ts.map +0 -1
  105. package/dist/lib/cli-version.js +0 -59
  106. package/dist/lib/cli-version.js.map +0 -1
  107. package/dist/lib/command-handler.d.ts +0 -10
  108. package/dist/lib/command-handler.d.ts.map +0 -1
  109. package/dist/lib/command-handler.js +0 -16
  110. package/dist/lib/command-handler.js.map +0 -1
  111. package/dist/lib/command-registry.d.ts +0 -28
  112. package/dist/lib/command-registry.d.ts.map +0 -1
  113. package/dist/lib/command-registry.js +0 -54
  114. package/dist/lib/command-registry.js.map +0 -1
  115. package/dist/lib/config.d.ts +0 -83
  116. package/dist/lib/config.d.ts.map +0 -1
  117. package/dist/lib/config.js +0 -430
  118. package/dist/lib/config.js.map +0 -1
  119. package/dist/lib/constants.d.ts +0 -48
  120. package/dist/lib/constants.d.ts.map +0 -1
  121. package/dist/lib/constants.js +0 -121
  122. package/dist/lib/constants.js.map +0 -1
  123. package/dist/lib/errors.d.ts +0 -30
  124. package/dist/lib/errors.d.ts.map +0 -1
  125. package/dist/lib/errors.js +0 -66
  126. package/dist/lib/errors.js.map +0 -1
  127. package/dist/lib/exit-codes.d.ts +0 -9
  128. package/dist/lib/exit-codes.d.ts.map +0 -1
  129. package/dist/lib/exit-codes.js +0 -12
  130. package/dist/lib/exit-codes.js.map +0 -1
  131. package/dist/lib/hidden-input.d.ts +0 -2
  132. package/dist/lib/hidden-input.d.ts.map +0 -1
  133. package/dist/lib/hidden-input.js +0 -78
  134. package/dist/lib/hidden-input.js.map +0 -1
  135. package/dist/lib/json-output.d.ts +0 -6
  136. package/dist/lib/json-output.d.ts.map +0 -1
  137. package/dist/lib/json-output.js +0 -11
  138. package/dist/lib/json-output.js.map +0 -1
  139. package/dist/lib/logger.d.ts +0 -11
  140. package/dist/lib/logger.d.ts.map +0 -1
  141. package/dist/lib/logger.js +0 -110
  142. package/dist/lib/logger.js.map +0 -1
  143. package/dist/lib/oauth-freshness.d.ts +0 -30
  144. package/dist/lib/oauth-freshness.d.ts.map +0 -1
  145. package/dist/lib/oauth-freshness.js +0 -61
  146. package/dist/lib/oauth-freshness.js.map +0 -1
  147. package/dist/lib/port.d.ts +0 -25
  148. package/dist/lib/port.d.ts.map +0 -1
  149. package/dist/lib/port.js +0 -103
  150. package/dist/lib/port.js.map +0 -1
  151. package/dist/lib/telemetry.d.ts +0 -9
  152. package/dist/lib/telemetry.d.ts.map +0 -1
  153. package/dist/lib/telemetry.js +0 -57
  154. package/dist/lib/telemetry.js.map +0 -1
  155. package/dist/lib/ui.d.ts +0 -14
  156. package/dist/lib/ui.d.ts.map +0 -1
  157. package/dist/lib/ui.js +0 -75
  158. package/dist/lib/ui.js.map +0 -1
  159. package/dist/lib/update-notifier.d.ts +0 -37
  160. package/dist/lib/update-notifier.d.ts.map +0 -1
  161. package/dist/lib/update-notifier.js +0 -298
  162. package/dist/lib/update-notifier.js.map +0 -1
  163. package/dist/lib/validators.d.ts +0 -55
  164. package/dist/lib/validators.d.ts.map +0 -1
  165. package/dist/lib/validators.js +0 -166
  166. package/dist/lib/validators.js.map +0 -1
  167. package/dist/services/account.d.ts +0 -8
  168. package/dist/services/account.d.ts.map +0 -1
  169. package/dist/services/account.js +0 -15
  170. package/dist/services/account.js.map +0 -1
  171. package/dist/services/app.d.ts +0 -38
  172. package/dist/services/app.d.ts.map +0 -1
  173. package/dist/services/app.js +0 -145
  174. package/dist/services/app.js.map +0 -1
  175. package/dist/services/browser-auth.d.ts +0 -15
  176. package/dist/services/browser-auth.d.ts.map +0 -1
  177. package/dist/services/browser-auth.js +0 -188
  178. package/dist/services/browser-auth.js.map +0 -1
  179. package/dist/services/normalize-app-id.d.ts +0 -12
  180. package/dist/services/normalize-app-id.d.ts.map +0 -1
  181. package/dist/services/normalize-app-id.js +0 -38
  182. package/dist/services/normalize-app-id.js.map +0 -1
  183. package/dist/services/oauth-metadata.d.ts +0 -7
  184. package/dist/services/oauth-metadata.d.ts.map +0 -1
  185. package/dist/services/oauth-metadata.js +0 -43
  186. package/dist/services/oauth-metadata.js.map +0 -1
  187. package/dist/services/oauth-refresh.d.ts +0 -14
  188. package/dist/services/oauth-refresh.d.ts.map +0 -1
  189. package/dist/services/oauth-refresh.js +0 -70
  190. package/dist/services/oauth-refresh.js.map +0 -1
  191. package/dist/services/scopes-html.d.ts +0 -3
  192. package/dist/services/scopes-html.d.ts.map +0 -1
  193. package/dist/services/scopes-html.js +0 -516
  194. package/dist/services/scopes-html.js.map +0 -1
  195. package/dist/services/scopes-web.d.ts +0 -12
  196. package/dist/services/scopes-web.d.ts.map +0 -1
  197. package/dist/services/scopes-web.js +0 -95
  198. package/dist/services/scopes-web.js.map +0 -1
  199. package/dist/services/skill.d.ts +0 -48
  200. package/dist/services/skill.d.ts.map +0 -1
  201. package/dist/services/skill.js +0 -223
  202. package/dist/services/skill.js.map +0 -1
  203. package/dist/skills/index.d.ts +0 -47
  204. package/dist/skills/index.d.ts.map +0 -1
  205. package/dist/skills/index.js +0 -61
  206. package/dist/skills/index.js.map +0 -1
  207. package/dist/templates/files/app-config.json.tmpl +0 -25
  208. package/dist/templates/index.d.ts +0 -36
  209. package/dist/templates/index.d.ts.map +0 -1
  210. package/dist/templates/index.js +0 -105
  211. package/dist/templates/index.js.map +0 -1
  212. package/dist/types.d.ts +0 -32
  213. package/dist/types.d.ts.map +0 -1
  214. package/dist/types.js +0 -3
  215. package/dist/types.js.map +0 -1
  216. /package/dist/{templates → bin}/files/gitignore.tmpl +0 -0
  217. /package/dist/{templates → bin}/files/src/oauth/package.json.tmpl +0 -0
@@ -1,251 +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.loginCommand = void 0;
7
- const inquirer_1 = __importDefault(require("inquirer"));
8
- const config_1 = require("../lib/config");
9
- const constants_1 = require("../lib/constants");
10
- const browser_1 = require("../lib/browser");
11
- const logger_1 = require("../lib/logger");
12
- const en_1 = require("../lang/en");
13
- const errors_1 = require("../lib/errors");
14
- const exit_codes_1 = require("../lib/exit-codes");
15
- const command_handler_1 = require("../lib/command-handler");
16
- const create_1 = require("./app/create");
17
- const container_1 = require("../container");
18
- const ui_1 = require("../lib/ui");
19
- const json_output_1 = require("../lib/json-output");
20
- const browser_auth_1 = require("../services/browser-auth");
21
- // On re-login, the cached per-app clientId/clientSecret values belong to apps
22
- // owned by the previously-authenticated organization. A new organization cannot
23
- // see those apps, so keeping the cache risks surfacing stale or wrong-account
24
- // secrets. Same organization → keep the cache to avoid an unnecessary refetch.
25
- function wipeAppsCacheIfAccountChanged(newOrganizationId) {
26
- const previousOrganizationId = (0, config_1.getOrganizationId)();
27
- if (previousOrganizationId && previousOrganizationId !== newOrganizationId) {
28
- (0, config_1.clearAppsCache)();
29
- }
30
- }
31
- async function promptApiKey() {
32
- const { key } = await inquirer_1.default.prompt([
33
- {
34
- type: 'password',
35
- name: 'key',
36
- message: en_1.messages.AUTH_PROMPT_API_KEY,
37
- mask: '*',
38
- validate: (input) => input.trim().length > 0 || 'API key cannot be empty',
39
- },
40
- ]);
41
- return key;
42
- }
43
- // Explicit `--browser` wins over BREVO_API_KEY so users can force the
44
- // browser flow on machines that have a stale env var. Browser login still
45
- // needs a TTY (the inquirer prompts after success), so reject early in
46
- // non-interactive contexts instead of hanging until timeout.
47
- async function resolveLoginMethod(forceBrowser, apiKey) {
48
- if (forceBrowser) {
49
- if (!process.stdin.isTTY) {
50
- throw new errors_1.CliError(en_1.messages.AUTH_BROWSER_NON_INTERACTIVE);
51
- }
52
- return 'browser';
53
- }
54
- if (apiKey) {
55
- return 'api-key';
56
- }
57
- if (!process.stdin.isTTY) {
58
- throw new errors_1.CliError(en_1.messages.AUTH_BROWSER_NON_INTERACTIVE);
59
- }
60
- const { chosen } = await inquirer_1.default.prompt([
61
- {
62
- type: 'list',
63
- name: 'chosen',
64
- message: en_1.messages.AUTH_PROMPT_METHOD,
65
- choices: [
66
- { name: 'Browser (sign in through your browser)', value: 'browser' },
67
- { name: 'API key (paste from your Brevo dashboard)', value: 'api-key' },
68
- ],
69
- default: 'browser',
70
- },
71
- ]);
72
- return chosen;
73
- }
74
- // One interactive retry on a 401: the first paste is easy to fumble. A second
75
- // 401 (or any other error) propagates to the command handler.
76
- async function retryApiKeyValidation(quiet) {
77
- const retryKey = await promptApiKey();
78
- const retrySpinner = (0, ui_1.createSpinner)('Validating API key...', { silent: quiet });
79
- try {
80
- const account = await container_1.accountService.validateApiKey(retryKey);
81
- retrySpinner.stop();
82
- return { account, apiKey: retryKey };
83
- }
84
- catch (retryErr) {
85
- retrySpinner.stop();
86
- if (retryErr instanceof errors_1.ApiError && retryErr.statusCode === 401) {
87
- throw new errors_1.CliError(en_1.messages.AUTH_INVALID_KEY, exit_codes_1.EXIT_CODES.AUTH_FAILURE);
88
- }
89
- throw retryErr;
90
- }
91
- }
92
- async function validateApiKeyWithRetry(apiKey, quiet) {
93
- const spinner = (0, ui_1.createSpinner)('Validating API key...', { silent: quiet });
94
- try {
95
- const account = await container_1.accountService.validateApiKey(apiKey);
96
- spinner.stop();
97
- return { account, apiKey };
98
- }
99
- catch (err) {
100
- spinner.stop();
101
- if (!(err instanceof errors_1.ApiError && err.statusCode === 401)) {
102
- throw err;
103
- }
104
- (0, logger_1.logError)(en_1.messages.AUTH_INVALID_KEY);
105
- if (!quiet)
106
- (0, logger_1.logInfo)(` ${en_1.messages.AUTH_GET_KEY_URL}`);
107
- if (!process.stdin.isTTY) {
108
- throw err;
109
- }
110
- return retryApiKeyValidation(quiet);
111
- }
112
- }
113
- async function loginWithApiKey(envApiKey, quiet) {
114
- let apiKey = envApiKey;
115
- if (!apiKey) {
116
- (0, browser_1.openBrowser)(constants_1.BREVO_DASHBOARD_API_KEYS_URL);
117
- if (!quiet) {
118
- process.stdout.write(en_1.messages.AUTH_HINT(constants_1.BREVO_DASHBOARD_API_KEYS_URL, constants_1.BREVO_API_KEY_DOCS_URL));
119
- }
120
- apiKey = await promptApiKey();
121
- }
122
- if (!apiKey) {
123
- throw new errors_1.CliError('No API key provided.');
124
- }
125
- const validated = await validateApiKeyWithRetry(apiKey, quiet);
126
- if (!validated.account) {
127
- throw new errors_1.CliError('Authentication failed.');
128
- }
129
- wipeAppsCacheIfAccountChanged(validated.account.organization_id);
130
- (0, config_1.saveCredentials)(validated.apiKey, {
131
- email: validated.account.email,
132
- organizationId: validated.account.organization_id,
133
- userId: validated.account.user_id,
134
- });
135
- return validated.account;
136
- }
137
- async function loginWithBrowser(quiet) {
138
- if (!quiet)
139
- (0, logger_1.logInfo)(` ${en_1.messages.AUTH_BROWSER_OPENING}`);
140
- const tokens = await (0, browser_auth_1.runBrowserLoginFlow)({
141
- proxyUrl: constants_1.OAUTH_PROXY_URL,
142
- openBrowser: browser_1.openBrowser,
143
- onWaiting: (url) => {
144
- if (quiet)
145
- return;
146
- (0, logger_1.logInfo)(` ${en_1.messages.AUTH_BROWSER_FALLBACK_URL(url)}`);
147
- (0, logger_1.logInfo)(` ${en_1.messages.AUTH_BROWSER_WAITING}`);
148
- },
149
- });
150
- // Persist tokens before validating /v3/account so transient API failures
151
- // (5xx, 424, network) don't force the user to redo the OAuth dance. Only
152
- // a 401 unambiguously means the token itself is bad — see catch below.
153
- const tokensToStore = {
154
- accessToken: tokens.accessToken,
155
- refreshToken: tokens.refreshToken,
156
- expiresIn: tokens.expiresIn,
157
- tokenType: tokens.tokenType,
158
- scope: tokens.scope,
159
- };
160
- (0, config_1.saveOauthCredentials)(tokensToStore);
161
- if (!quiet)
162
- (0, logger_1.logSuccess)(en_1.messages.AUTH_BROWSER_TOKENS_RECEIVED((0, config_1.getCredentialsPath)()));
163
- const spinner = (0, ui_1.createSpinner)('Finishing login...', { silent: quiet });
164
- let account;
165
- try {
166
- account = await container_1.client.getWithBearer(constants_1.ENDPOINTS.ACCOUNT, tokens.accessToken, tokens.tokenType);
167
- }
168
- catch (err) {
169
- if (err instanceof errors_1.ApiError && err.statusCode === 401) {
170
- (0, config_1.clearCredentials)();
171
- }
172
- throw err;
173
- }
174
- finally {
175
- spinner.stop();
176
- }
177
- if (!account) {
178
- throw new errors_1.CliError('Authentication failed.');
179
- }
180
- wipeAppsCacheIfAccountChanged(account.organization_id);
181
- (0, config_1.saveOauthCredentials)(tokensToStore, {
182
- email: account.email,
183
- organizationId: account.organization_id,
184
- userId: account.user_id,
185
- });
186
- return account;
187
- }
188
- async function showNextSteps() {
189
- let apps = [];
190
- const appsSpinner = (0, ui_1.createSpinner)('Checking your apps...');
191
- try {
192
- apps = await container_1.appService.fetchAppsList();
193
- }
194
- catch {
195
- // Best-effort: the next-steps box is a nicety — login already succeeded.
196
- }
197
- finally {
198
- appsSpinner.stop();
199
- }
200
- if (apps.length > 0) {
201
- (0, ui_1.printBox)("What's next?", [
202
- constants_1.CLI.APP_CREATE,
203
- constants_1.CLI.APP_LIST,
204
- constants_1.CLI.APP_SCAFFOLD(),
205
- constants_1.CLI.APP_CREDENTIALS(),
206
- ]);
207
- return;
208
- }
209
- if (!process.stdin.isTTY) {
210
- (0, logger_1.logInfo)(`\n ${en_1.messages.AUTH_NEXT}\n`);
211
- return;
212
- }
213
- process.stdout.write('\n');
214
- const { shouldCreate } = await inquirer_1.default.prompt([
215
- {
216
- type: 'confirm',
217
- name: 'shouldCreate',
218
- message: en_1.messages.AUTH_CREATE_APP_PROMPT,
219
- default: true,
220
- },
221
- ]);
222
- if (shouldCreate) {
223
- process.stdout.write('\n');
224
- await (0, create_1.createCommand)({});
225
- return;
226
- }
227
- (0, logger_1.logInfo)(`\n ${en_1.messages.AUTH_NEXT}\n`);
228
- }
229
- exports.loginCommand = (0, command_handler_1.withCommandHandler)(async (options) => {
230
- // In --json mode, stdout must be a single JSON document. Suppress the
231
- // welcome banner and every human-oriented log on stdout below; errors
232
- // still go to stderr via logError, which is fine for JSON consumers.
233
- const quiet = !!options.json;
234
- if (!quiet) {
235
- process.stdout.write(`\n ${en_1.messages.AUTH_WELCOME}\n`);
236
- process.stdout.write(' ──────────────────────────────────────\n');
237
- }
238
- const apiKey = process.env.BREVO_API_KEY;
239
- const method = await resolveLoginMethod(options.browser, apiKey);
240
- const account = method === 'api-key' ? await loginWithApiKey(apiKey, quiet) : await loginWithBrowser(quiet);
241
- if (options.json) {
242
- (0, json_output_1.jsonOutput)({ authenticated: true, email: account.email, company: account.companyName });
243
- return;
244
- }
245
- (0, logger_1.logSuccess)(en_1.messages.AUTH_SUCCESS(account.email));
246
- (0, logger_1.logInfo)(en_1.messages.AUTH_SAVED((0, config_1.getCredentialsPath)()));
247
- if (options.suppressNextSteps)
248
- return;
249
- await showNextSteps();
250
- });
251
- //# sourceMappingURL=login.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- export declare const logoutCommand: (opts: {
2
- force?: boolean;
3
- json?: boolean;
4
- }) => Promise<void>;
5
- //# sourceMappingURL=logout.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,aAAa;YACE,OAAO;WAAS,OAAO;mBAyClD,CAAC"}
@@ -1,54 +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.logoutCommand = void 0;
7
- const inquirer_1 = __importDefault(require("inquirer"));
8
- const config_1 = require("../lib/config");
9
- const logger_1 = require("../lib/logger");
10
- const errors_1 = require("../lib/errors");
11
- const en_1 = require("../lang/en");
12
- const command_handler_1 = require("../lib/command-handler");
13
- const json_output_1 = require("../lib/json-output");
14
- exports.logoutCommand = (0, command_handler_1.withCommandHandler)(async (options) => {
15
- if (!(0, config_1.isAuthenticated)()) {
16
- if (options.json) {
17
- (0, json_output_1.jsonOutput)({ loggedOut: false, reason: 'not_authenticated' });
18
- }
19
- else {
20
- (0, logger_1.logInfo)(`\n ${en_1.messages.AUTH_NOT_LOGGED_IN}\n`);
21
- }
22
- return;
23
- }
24
- if (!options.force && !options.json && (0, config_1.hasAppCredentials)()) {
25
- if (!process.stdin.isTTY) {
26
- throw new errors_1.CliError(en_1.messages.AUTH_LOGOUT_NON_INTERACTIVE);
27
- }
28
- (0, logger_1.logWarn)(en_1.messages.AUTH_LOGOUT_APP_WARNING);
29
- const { confirmed } = await inquirer_1.default.prompt([
30
- {
31
- type: 'confirm',
32
- name: 'confirmed',
33
- message: en_1.messages.AUTH_LOGOUT_CONFIRM,
34
- default: false,
35
- },
36
- ]);
37
- if (!confirmed) {
38
- (0, logger_1.logInfo)(`\n ${en_1.messages.ABORTED}\n`);
39
- return;
40
- }
41
- }
42
- const appCount = (0, config_1.countAppCredentials)();
43
- (0, config_1.deleteCredentialsFile)();
44
- if (options.json) {
45
- (0, json_output_1.jsonOutput)({ loggedOut: true, appsCleared: appCount });
46
- }
47
- else if (appCount > 0) {
48
- (0, logger_1.logSuccess)(en_1.messages.AUTH_LOGGED_OUT_WITH_APPS(appCount));
49
- }
50
- else {
51
- (0, logger_1.logSuccess)(en_1.messages.AUTH_LOGGED_OUT);
52
- }
53
- });
54
- //# sourceMappingURL=logout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAChC,0CAKuB;AACvB,0CAA6D;AAC7D,0CAAyC;AACzC,mCAAsC;AACtC,4DAA4D;AAC5D,oDAAgD;AAEnC,QAAA,aAAa,GAAG,IAAA,oCAAkB,EAC7C,KAAK,EAAE,OAA4C,EAAiB,EAAE;IACpE,IAAI,CAAC,IAAA,wBAAe,GAAE,EAAE,CAAC;QACvB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,IAAA,wBAAU,EAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,IAAA,gBAAO,EAAC,OAAO,aAAQ,CAAC,kBAAkB,IAAI,CAAC,CAAC;QAClD,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAA,0BAAiB,GAAE,EAAE,CAAC;QAC3D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,iBAAQ,CAAC,aAAQ,CAAC,2BAA2B,CAAC,CAAC;QAC3D,CAAC;QACD,IAAA,gBAAO,EAAC,aAAQ,CAAC,uBAAuB,CAAC,CAAC;QAC1C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YAC1C;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,aAAQ,CAAC,mBAAmB;gBACrC,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAA,gBAAO,EAAC,OAAO,aAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,IAAA,4BAAmB,GAAE,CAAC;IACvC,IAAA,8BAAqB,GAAE,CAAC;IAExB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,IAAA,wBAAU,EAAC,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;IACzD,CAAC;SAAM,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACxB,IAAA,mBAAU,EAAC,aAAQ,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACN,IAAA,mBAAU,EAAC,aAAQ,CAAC,eAAe,CAAC,CAAC;IACvC,CAAC;AACH,CAAC,CACF,CAAC"}
@@ -1,4 +0,0 @@
1
- export declare const installCommand: (opts: {
2
- json?: boolean;
3
- }) => Promise<void>;
4
- //# sourceMappingURL=install.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/skill/install.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,cAAc;WACA,OAAO;mBAsBjC,CAAC"}
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.installCommand = void 0;
4
- const logger_1 = require("../../lib/logger");
5
- const en_1 = require("../../lang/en");
6
- const command_handler_1 = require("../../lib/command-handler");
7
- const json_output_1 = require("../../lib/json-output");
8
- const skill_1 = require("../../services/skill");
9
- exports.installCommand = (0, command_handler_1.withCommandHandler)(async (options) => {
10
- const results = skill_1.skillService.installAll();
11
- if (options.json) {
12
- (0, json_output_1.jsonOutput)(results);
13
- return;
14
- }
15
- let installedFresh = false;
16
- for (const r of results) {
17
- if (r.status === 'already-installed') {
18
- (0, logger_1.logInfo)(`\n ${en_1.messages.SKILL_INSTALL_ALREADY(r.name, r.version)}`);
19
- }
20
- else {
21
- (0, logger_1.logSuccess)(en_1.messages.SKILL_INSTALL_SUCCESS(r.name, r.version, r.path));
22
- installedFresh = true;
23
- }
24
- }
25
- if (installedFresh) {
26
- (0, logger_1.logInfo)(`\n ${en_1.messages.SKILL_INSTALL_CLAUDE_ONLY}`);
27
- }
28
- });
29
- //# sourceMappingURL=install.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/skill/install.ts"],"names":[],"mappings":";;;AAAA,6CAAuD;AACvD,sCAAyC;AACzC,+DAA+D;AAC/D,uDAAmD;AACnD,gDAAoD;AAEvC,QAAA,cAAc,GAAG,IAAA,oCAAkB,EAC9C,KAAK,EAAE,OAA2B,EAAiB,EAAE;IACnD,MAAM,OAAO,GAAG,oBAAY,CAAC,UAAU,EAAE,CAAC;IAE1C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,IAAA,wBAAU,EAAC,OAAO,CAAC,CAAC;QACpB,OAAO;IACT,CAAC;IAED,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;YACrC,IAAA,gBAAO,EAAC,OAAO,aAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,IAAA,mBAAU,EAAC,aAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACtE,cAAc,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,IAAA,gBAAO,EAAC,OAAO,aAAQ,CAAC,yBAAyB,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CACF,CAAC"}
@@ -1,4 +0,0 @@
1
- export declare const uninstallCommand: (opts: {
2
- json?: boolean;
3
- }) => Promise<void>;
4
- //# sourceMappingURL=uninstall.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../../src/commands/skill/uninstall.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,gBAAgB;WACF,OAAO;mBAiBjC,CAAC"}
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.uninstallCommand = void 0;
4
- const logger_1 = require("../../lib/logger");
5
- const en_1 = require("../../lang/en");
6
- const command_handler_1 = require("../../lib/command-handler");
7
- const json_output_1 = require("../../lib/json-output");
8
- const skill_1 = require("../../services/skill");
9
- exports.uninstallCommand = (0, command_handler_1.withCommandHandler)(async (options) => {
10
- const results = skill_1.skillService.uninstallAll();
11
- if (options.json) {
12
- (0, json_output_1.jsonOutput)(results.map((r) => ({ uninstalled: true, ...r })));
13
- return;
14
- }
15
- if (results.length === 0) {
16
- (0, logger_1.logInfo)(`\n ${en_1.messages.SKILL_UNINSTALL_NONE}`);
17
- return;
18
- }
19
- for (const r of results) {
20
- (0, logger_1.logSuccess)(en_1.messages.SKILL_UNINSTALL_SUCCESS(r.name, r.path));
21
- }
22
- });
23
- //# sourceMappingURL=uninstall.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../src/commands/skill/uninstall.ts"],"names":[],"mappings":";;;AAAA,6CAAuD;AACvD,sCAAyC;AACzC,+DAA+D;AAC/D,uDAAmD;AACnD,gDAAoD;AAEvC,QAAA,gBAAgB,GAAG,IAAA,oCAAkB,EAChD,KAAK,EAAE,OAA2B,EAAiB,EAAE;IACnD,MAAM,OAAO,GAAG,oBAAY,CAAC,YAAY,EAAE,CAAC;IAE5C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,IAAA,wBAAU,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9D,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,IAAA,gBAAO,EAAC,OAAO,aAAQ,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAA,mBAAU,EAAC,aAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC,CACF,CAAC"}
@@ -1,4 +0,0 @@
1
- export declare const whoamiCommand: (opts: {
2
- json?: boolean;
3
- }) => Promise<void>;
4
- //# sourceMappingURL=whoami.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AA0CA,eAAO,MAAM,aAAa;WACC,OAAO;mBAgDjC,CAAC"}
@@ -1,85 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.whoamiCommand = void 0;
4
- const logger_1 = require("../lib/logger");
5
- const en_1 = require("../lang/en");
6
- const errors_1 = require("../lib/errors");
7
- const config_1 = require("../lib/config");
8
- const container_1 = require("../container");
9
- const command_handler_1 = require("../lib/command-handler");
10
- const json_output_1 = require("../lib/json-output");
11
- const ui_1 = require("../lib/ui");
12
- // Check for mismatches between stored credentials and API response
13
- function findCredentialMismatches(account) {
14
- const mismatched = [];
15
- const storedEmail = (0, config_1.getEmail)();
16
- const storedOrgId = (0, config_1.getOrganizationId)();
17
- const storedUserId = (0, config_1.getUserId)();
18
- if (storedEmail && storedEmail !== account.email)
19
- mismatched.push('email');
20
- if (storedOrgId && storedOrgId !== account.organization_id)
21
- mismatched.push('organization');
22
- if (storedUserId != null && storedUserId !== account.user_id)
23
- mismatched.push('user id');
24
- return mismatched;
25
- }
26
- function renderAccount(account) {
27
- const authKind = (0, config_1.getAuthCred)()?.kind;
28
- let kindLabel = '';
29
- if (authKind === 'oauth')
30
- kindLabel = ' (browser login)';
31
- else if (authKind === 'api-key')
32
- kindLabel = ' (API key)';
33
- (0, logger_1.logInfo)(`\n ${en_1.messages.WHOAMI_AUTHENTICATED(account.email, account.companyName || 'N/A')}${kindLabel}\n` +
34
- ` Organization: ${account.organization_id}\n` +
35
- ` User ID: ${account.user_id}\n`);
36
- }
37
- exports.whoamiCommand = (0, command_handler_1.withCommandHandler)(async (options) => {
38
- // No stored key at all
39
- if (!(0, config_1.isAuthenticated)()) {
40
- if (options.json) {
41
- (0, json_output_1.jsonOutput)({ authenticated: false, reason: 'no_key' });
42
- }
43
- throw new errors_1.CliError(en_1.messages.WHOAMI_NOT_AUTHENTICATED);
44
- }
45
- // Key exists — validate it against the API
46
- const spinner = (0, ui_1.createSpinner)('Checking credentials...', { silent: options.json });
47
- try {
48
- const account = await container_1.accountService.getAccount();
49
- spinner.stop();
50
- const mismatched = findCredentialMismatches(account);
51
- if (mismatched.length > 0) {
52
- if (options.json) {
53
- (0, json_output_1.jsonOutput)({
54
- authenticated: false,
55
- reason: 'credential_mismatch',
56
- mismatchedFields: mismatched,
57
- });
58
- }
59
- throw new errors_1.CliError(en_1.messages.WHOAMI_CREDENTIAL_MISMATCH(mismatched));
60
- }
61
- if (options.json) {
62
- (0, json_output_1.jsonOutput)({
63
- authenticated: true,
64
- authKind: (0, config_1.getAuthCred)()?.kind,
65
- email: account.email,
66
- company: account.companyName || '',
67
- organizationId: account.organization_id,
68
- userId: account.user_id,
69
- });
70
- }
71
- else {
72
- renderAccount(account);
73
- }
74
- }
75
- catch (err) {
76
- spinner.stop();
77
- if (err instanceof errors_1.CliError)
78
- throw err;
79
- if (options.json) {
80
- (0, json_output_1.jsonOutput)({ authenticated: false, reason: 'expired' });
81
- }
82
- throw new errors_1.CliError(en_1.messages.AUTH_EXPIRED);
83
- }
84
- });
85
- //# sourceMappingURL=whoami.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { ApiClient } from './api/client';
2
- import { AccountService } from './services/account';
3
- import { AppService } from './services/app';
4
- export declare const client: ApiClient;
5
- export declare const accountService: AccountService;
6
- export declare const appService: AppService;
7
- //# sourceMappingURL=container.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAwB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAoB,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAoB9D,eAAO,MAAM,MAAM,WAAuE,CAAC;AAE3F,eAAO,MAAM,cAAc,EAAE,cAA6C,CAAC;AAC3E,eAAO,MAAM,UAAU,EAAE,UAAqC,CAAC"}
package/dist/container.js DELETED
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.appService = exports.accountService = exports.client = void 0;
4
- const client_1 = require("./api/client");
5
- const account_1 = require("./services/account");
6
- const app_1 = require("./services/app");
7
- const constants_1 = require("./lib/constants");
8
- const config_1 = require("./lib/config");
9
- /**
10
- * Application container — creates and holds all shared instances.
11
- * Initialized once by bin/index.ts. Commands import services from here.
12
- *
13
- * The auth-failure handler is wired in bin/index.ts so it can branch on
14
- * stored auth kind (oauth: refresh+retry; api-key: prompt for new key)
15
- * without pulling UI/prompt concerns into the container.
16
- */
17
- function buildAuthHeader() {
18
- const auth = (0, config_1.getAuthCred)();
19
- if (!auth)
20
- return undefined;
21
- if (auth.kind === 'api-key')
22
- return { 'api-key': auth.apiKey };
23
- return { Authorization: `${auth.tokenType} ${auth.accessToken}` };
24
- }
25
- exports.client = new client_1.ApiClient({ baseUrl: constants_1.API_BASE, getAuthHeader: buildAuthHeader });
26
- exports.accountService = (0, account_1.createAccountService)(exports.client);
27
- exports.appService = (0, app_1.createAppService)(exports.client);
28
- //# sourceMappingURL=container.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AACzC,gDAA0E;AAC1E,wCAA8D;AAC9D,+CAA2C;AAC3C,yCAA2C;AAE3C;;;;;;;GAOG;AAEH,SAAS,eAAe;IACtB,MAAM,IAAI,GAAG,IAAA,oBAAW,GAAE,CAAC;IAC3B,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IAC/D,OAAO,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;AACpE,CAAC;AAEY,QAAA,MAAM,GAAG,IAAI,kBAAS,CAAC,EAAE,OAAO,EAAE,oBAAQ,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC,CAAC;AAE9E,QAAA,cAAc,GAAmB,IAAA,8BAAoB,EAAC,cAAM,CAAC,CAAC;AAC9D,QAAA,UAAU,GAAe,IAAA,sBAAgB,EAAC,cAAM,CAAC,CAAC"}