@getbrevo/cli 1.0.0 → 1.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.
- package/CHANGELOG.md +53 -0
- package/README.md +26 -51
- package/agent-context/AGENTS.md +70 -10
- package/agent-context/SKILL.md +51 -3
- package/dist/api/client.d.ts +1 -1
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +4 -2
- package/dist/api/client.js.map +1 -1
- package/dist/bin/index.js +31 -19
- package/dist/bin/index.js.map +1 -1
- package/dist/commands/app/create.d.ts +1 -0
- package/dist/commands/app/create.d.ts.map +1 -1
- package/dist/commands/app/create.js +57 -20
- package/dist/commands/app/create.js.map +1 -1
- package/dist/commands/app/credentials.d.ts.map +1 -1
- package/dist/commands/app/credentials.js +73 -71
- package/dist/commands/app/credentials.js.map +1 -1
- package/dist/commands/app/delete.d.ts.map +1 -1
- package/dist/commands/app/delete.js +9 -8
- package/dist/commands/app/delete.js.map +1 -1
- package/dist/commands/app/list.d.ts.map +1 -1
- package/dist/commands/app/list.js +1 -0
- package/dist/commands/app/list.js.map +1 -1
- package/dist/commands/app/scaffold.d.ts.map +1 -1
- package/dist/commands/app/scaffold.js +71 -71
- package/dist/commands/app/scaffold.js.map +1 -1
- package/dist/commands/app/scopes.d.ts +2 -0
- package/dist/commands/app/scopes.d.ts.map +1 -0
- package/dist/commands/app/scopes.js +79 -0
- package/dist/commands/app/scopes.js.map +1 -0
- package/dist/commands/app/start.d.ts.map +1 -1
- package/dist/commands/app/start.js +38 -48
- package/dist/commands/app/start.js.map +1 -1
- package/dist/commands/app/update.d.ts.map +1 -1
- package/dist/commands/app/update.js +90 -5
- package/dist/commands/app/update.js.map +1 -1
- package/dist/commands/definitions.d.ts +1 -0
- package/dist/commands/definitions.d.ts.map +1 -1
- package/dist/commands/definitions.js +67 -2
- package/dist/commands/definitions.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +73 -57
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +50 -38
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/skill/install.d.ts +4 -0
- package/dist/commands/skill/install.d.ts.map +1 -0
- package/dist/commands/skill/install.js +29 -0
- package/dist/commands/skill/install.js.map +1 -0
- package/dist/commands/skill/uninstall.d.ts +4 -0
- package/dist/commands/skill/uninstall.d.ts.map +1 -0
- package/dist/commands/skill/uninstall.js +23 -0
- package/dist/commands/skill/uninstall.js.map +1 -0
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +5 -1
- package/dist/commands/whoami.js.map +1 -1
- package/dist/lang/en.d.ts +30 -2
- package/dist/lang/en.d.ts.map +1 -1
- package/dist/lang/en.js +32 -2
- package/dist/lang/en.js.map +1 -1
- package/dist/lib/auth-guard.d.ts.map +1 -1
- package/dist/lib/auth-guard.js +8 -2
- package/dist/lib/auth-guard.js.map +1 -1
- package/dist/lib/browser.js +4 -4
- package/dist/lib/browser.js.map +1 -1
- package/dist/lib/cli-version.d.ts +2 -0
- package/dist/lib/cli-version.d.ts.map +1 -0
- package/dist/lib/cli-version.js +59 -0
- package/dist/lib/cli-version.js.map +1 -0
- package/dist/lib/command-registry.js +1 -1
- package/dist/lib/command-registry.js.map +1 -1
- package/dist/lib/config.d.ts +3 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +41 -7
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/constants.d.ts +6 -1
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +16 -8
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/hidden-input.js +1 -1
- package/dist/lib/hidden-input.js.map +1 -1
- package/dist/lib/logger.d.ts.map +1 -1
- package/dist/lib/logger.js +14 -4
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/update-notifier.d.ts.map +1 -1
- package/dist/lib/update-notifier.js +11 -11
- package/dist/lib/update-notifier.js.map +1 -1
- package/dist/lib/validators.d.ts +17 -0
- package/dist/lib/validators.d.ts.map +1 -1
- package/dist/lib/validators.js +65 -0
- package/dist/lib/validators.js.map +1 -1
- package/dist/services/app.d.ts +3 -0
- package/dist/services/app.d.ts.map +1 -1
- package/dist/services/app.js +6 -1
- package/dist/services/app.js.map +1 -1
- package/dist/services/browser-auth.js +9 -8
- package/dist/services/browser-auth.js.map +1 -1
- package/dist/services/oauth-metadata.d.ts +7 -0
- package/dist/services/oauth-metadata.d.ts.map +1 -0
- package/dist/services/oauth-metadata.js +43 -0
- package/dist/services/oauth-metadata.js.map +1 -0
- package/dist/services/scopes-html.d.ts +3 -0
- package/dist/services/scopes-html.d.ts.map +1 -0
- package/dist/services/scopes-html.js +337 -0
- package/dist/services/scopes-html.js.map +1 -0
- package/dist/services/scopes-web.d.ts +12 -0
- package/dist/services/scopes-web.d.ts.map +1 -0
- package/dist/services/scopes-web.js +95 -0
- package/dist/services/scopes-web.js.map +1 -0
- package/dist/services/skill.d.ts +48 -0
- package/dist/services/skill.d.ts.map +1 -0
- package/dist/services/skill.js +223 -0
- package/dist/services/skill.js.map +1 -0
- package/dist/skills/index.d.ts +47 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +61 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/templates/files/AGENTS.md.tmpl +6 -1
- package/dist/templates/files/CLAUDE.md.tmpl +2 -2
- package/dist/templates/files/README.md.tmpl +3 -1
- package/dist/templates/files/app-config.json.tmpl +1 -1
- package/dist/templates/index.js +2 -2
- package/dist/templates/index.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -3
- package/dist/lib/min-version-check.d.ts +0 -15
- package/dist/lib/min-version-check.d.ts.map +0 -1
- package/dist/lib/min-version-check.js +0 -33
- package/dist/lib/min-version-check.js.map +0 -1
package/dist/commands/login.js
CHANGED
|
@@ -18,6 +18,16 @@ const container_1 = require("../container");
|
|
|
18
18
|
const ui_1 = require("../lib/ui");
|
|
19
19
|
const json_output_1 = require("../lib/json-output");
|
|
20
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
|
+
}
|
|
21
31
|
async function promptApiKey() {
|
|
22
32
|
const { key } = await inquirer_1.default.prompt([
|
|
23
33
|
{
|
|
@@ -120,6 +130,7 @@ exports.loginCommand = (0, command_handler_1.withCommandHandler)(async (options)
|
|
|
120
130
|
if (!account) {
|
|
121
131
|
throw new errors_1.CliError('Authentication failed.');
|
|
122
132
|
}
|
|
133
|
+
wipeAppsCacheIfAccountChanged(account.organization_id);
|
|
123
134
|
(0, config_1.saveCredentials)(apiKey, {
|
|
124
135
|
email: account.email,
|
|
125
136
|
organizationId: account.organization_id,
|
|
@@ -168,6 +179,7 @@ exports.loginCommand = (0, command_handler_1.withCommandHandler)(async (options)
|
|
|
168
179
|
if (!account) {
|
|
169
180
|
throw new errors_1.CliError('Authentication failed.');
|
|
170
181
|
}
|
|
182
|
+
wipeAppsCacheIfAccountChanged(account.organization_id);
|
|
171
183
|
(0, config_1.saveOauthCredentials)(tokensToStore, {
|
|
172
184
|
email: account.email,
|
|
173
185
|
organizationId: account.organization_id,
|
|
@@ -180,44 +192,44 @@ exports.loginCommand = (0, command_handler_1.withCommandHandler)(async (options)
|
|
|
180
192
|
}
|
|
181
193
|
(0, logger_1.logSuccess)(en_1.messages.AUTH_SUCCESS(account.email));
|
|
182
194
|
(0, logger_1.logInfo)(en_1.messages.AUTH_SAVED((0, config_1.getCredentialsPath)()));
|
|
183
|
-
if (
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
}
|
|
195
|
+
if (options.suppressNextSteps)
|
|
196
|
+
return;
|
|
197
|
+
let apps = [];
|
|
198
|
+
const appsSpinner = (0, ui_1.createSpinner)('Checking your apps...');
|
|
199
|
+
try {
|
|
200
|
+
apps = await container_1.appService.fetchAppsList();
|
|
201
|
+
appsSpinner.stop();
|
|
202
|
+
}
|
|
203
|
+
catch {
|
|
204
|
+
appsSpinner.stop();
|
|
205
|
+
}
|
|
206
|
+
if (apps.length > 0) {
|
|
207
|
+
(0, ui_1.printBox)("What's next?", [
|
|
208
|
+
constants_1.CLI.APP_CREATE,
|
|
209
|
+
constants_1.CLI.APP_LIST,
|
|
210
|
+
constants_1.CLI.APP_SCAFFOLD(),
|
|
211
|
+
constants_1.CLI.APP_CREDENTIALS(),
|
|
212
|
+
]);
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
if (!process.stdin.isTTY) {
|
|
216
|
+
(0, logger_1.logInfo)(`\n ${en_1.messages.AUTH_NEXT}\n`);
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
process.stdout.write('\n');
|
|
220
|
+
const { shouldCreate } = await inquirer_1.default.prompt([
|
|
221
|
+
{
|
|
222
|
+
type: 'confirm',
|
|
223
|
+
name: 'shouldCreate',
|
|
224
|
+
message: en_1.messages.AUTH_CREATE_APP_PROMPT,
|
|
225
|
+
default: true,
|
|
226
|
+
},
|
|
227
|
+
]);
|
|
228
|
+
if (shouldCreate) {
|
|
229
|
+
process.stdout.write('\n');
|
|
230
|
+
await (0, create_1.createCommand)({});
|
|
231
|
+
return;
|
|
221
232
|
}
|
|
233
|
+
(0, logger_1.logInfo)(`\n ${en_1.messages.AUTH_NEXT}\n`);
|
|
222
234
|
});
|
|
223
235
|
//# sourceMappingURL=login.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAChC,
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/skill/install.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,cAAc;WACA,OAAO;mBAsBjC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../../src/commands/skill/uninstall.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,gBAAgB;WACF,OAAO;mBAiBjC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,aAAa;WACC,OAAO;
|
|
1
|
+
{"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,aAAa;WACC,OAAO;mBAiEjC,CAAC"}
|
package/dist/commands/whoami.js
CHANGED
|
@@ -55,7 +55,11 @@ exports.whoamiCommand = (0, command_handler_1.withCommandHandler)(async (options
|
|
|
55
55
|
}
|
|
56
56
|
else {
|
|
57
57
|
const authKind = (0, config_1.getAuthCred)()?.kind;
|
|
58
|
-
|
|
58
|
+
let kindLabel = '';
|
|
59
|
+
if (authKind === 'oauth')
|
|
60
|
+
kindLabel = ' (browser login)';
|
|
61
|
+
else if (authKind === 'api-key')
|
|
62
|
+
kindLabel = ' (API key)';
|
|
59
63
|
(0, logger_1.logInfo)(`\n ${en_1.messages.WHOAMI_AUTHENTICATED(account.email, account.companyName || 'N/A')}${kindLabel}\n` +
|
|
60
64
|
` Organization: ${account.organization_id}\n` +
|
|
61
65
|
` User ID: ${account.user_id}\n`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":";;;AAAA,0CAAwC;AACxC,mCAAsC;AACtC,0CAAyC;AACzC,0CAMuB;AACvB,4CAA8C;AAC9C,4DAA4D;AAC5D,oDAAgD;AAChD,kCAA0C;AAE7B,QAAA,aAAa,GAAG,IAAA,oCAAkB,EAC7C,KAAK,EAAE,OAA2B,EAAiB,EAAE;IACnD,uBAAuB;IACvB,IAAI,CAAC,IAAA,wBAAe,GAAE,EAAE,CAAC;QACvB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,IAAA,wBAAU,EAAC,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,IAAI,iBAAQ,CAAC,aAAQ,CAAC,wBAAwB,CAAC,CAAC;IACxD,CAAC;IAED,2CAA2C;IAC3C,MAAM,OAAO,GAAG,IAAA,kBAAa,EAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACnF,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,0BAAc,CAAC,UAAU,EAAE,CAAC;QAClD,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,mEAAmE;QACnE,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,WAAW,GAAG,IAAA,iBAAQ,GAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,IAAA,0BAAiB,GAAE,CAAC;QACxC,MAAM,YAAY,GAAG,IAAA,kBAAS,GAAE,CAAC;QAEjC,IAAI,WAAW,IAAI,WAAW,KAAK,OAAO,CAAC,KAAK;YAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3E,IAAI,WAAW,IAAI,WAAW,KAAK,OAAO,CAAC,eAAe;YAAE,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5F,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,KAAK,OAAO,CAAC,OAAO;YAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEzF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAA,wBAAU,EAAC;oBACT,aAAa,EAAE,KAAK;oBACpB,MAAM,EAAE,qBAAqB;oBAC7B,gBAAgB,EAAE,UAAU;iBAC7B,CAAC,CAAC;YACL,CAAC;YACD,MAAM,IAAI,iBAAQ,CAAC,aAAQ,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,IAAA,wBAAU,EAAC;gBACT,aAAa,EAAE,IAAI;gBACnB,QAAQ,EAAE,IAAA,oBAAW,GAAE,EAAE,IAAI;gBAC7B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,OAAO,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;gBAClC,cAAc,EAAE,OAAO,CAAC,eAAe;gBACvC,MAAM,EAAE,OAAO,CAAC,OAAO;aACxB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,IAAA,oBAAW,GAAE,EAAE,IAAI,CAAC;YACrC,
|
|
1
|
+
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"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"}
|
package/dist/lang/en.d.ts
CHANGED
|
@@ -2,7 +2,6 @@ export declare const messages: {
|
|
|
2
2
|
readonly UPDATE_AVAILABLE: (current: string, latest: string) => string;
|
|
3
3
|
readonly UPDATE_RUN: (name: string) => string;
|
|
4
4
|
readonly UPDATE_RUN_YARN: (name: string) => string;
|
|
5
|
-
readonly CLI_BELOW_MIN_VERSION: (current: string, required: string) => string;
|
|
6
5
|
readonly AUTH_WELCOME: "Welcome to Brevo CLI";
|
|
7
6
|
readonly AUTH_PROMPT_METHOD: "How would you like to authenticate?";
|
|
8
7
|
readonly AUTH_PROMPT_API_KEY: "Paste your API key:";
|
|
@@ -41,10 +40,15 @@ export declare const messages: {
|
|
|
41
40
|
readonly APP_CREATE_REDIRECT_ANOTHER: "Add another redirect URL?";
|
|
42
41
|
readonly APP_CREATE_REDIRECT_EMPTY: "Redirect URL cannot be empty";
|
|
43
42
|
readonly APP_CREATE_REDIRECT_INVALID: "Invalid format. Must start with http:// or https://";
|
|
43
|
+
readonly APP_CREATE_LOGO_PROMPT: "App logo URL (e.g. https://example.com/logo.png, optional — leave blank to skip):";
|
|
44
|
+
readonly APP_CREATE_LOGO_INVALID: "Invalid format. Must be a valid https:// URL (e.g. https://example.com/logo.png).";
|
|
44
45
|
readonly APP_CREATE_PORT_IN_USE: (port: number, available: number) => string;
|
|
45
46
|
readonly APP_CREATE_PORT_SCAN_FAILED: (port: number) => string;
|
|
46
47
|
readonly APP_CREATE_LIMIT_REACHED: "You have reached the maximum number of OAuth apps allowed for your account. To make room, delete an existing app: brevo app delete";
|
|
47
48
|
readonly APP_CREATE_PUBLIC_UNAVAILABLE: "Public distribution is not yet available (coming soon). Use `--distribution private` for now.";
|
|
49
|
+
readonly APP_CREATE_BOX_TITLE: "App created";
|
|
50
|
+
readonly APP_CREATE_BOX_SCOPES_LABEL: "Default scopes:";
|
|
51
|
+
readonly APP_CREATE_BOX_SCOPE_HINT: "You can add more scopes later with: brevo app update --scope <scope>";
|
|
48
52
|
readonly APP_LIST_EMPTY: "No apps found. Create one with: brevo app create";
|
|
49
53
|
readonly APP_LIST_HEADER: "Your OAuth apps:";
|
|
50
54
|
readonly APP_CREDENTIALS_REVEAL_CONFIRM: "Are you sure you want to reveal the client secret?";
|
|
@@ -62,9 +66,10 @@ export declare const messages: {
|
|
|
62
66
|
readonly APP_UPDATE_CONFIRM: "Proceed with update?";
|
|
63
67
|
readonly APP_UPDATE_CANCELLED: "Update cancelled.";
|
|
64
68
|
readonly APP_UPDATE_SUCCESS: "App updated.";
|
|
65
|
-
readonly APP_UPDATE_NOTHING_TO_UPDATE: "Nothing to update. Provide --app-id with --name or --
|
|
69
|
+
readonly APP_UPDATE_NOTHING_TO_UPDATE: "Nothing to update. Provide --app-id with --name, --redirect-uri, --scope, or --logo-uri, or run from a scaffolded project directory.";
|
|
66
70
|
readonly APP_UPDATE_NO_APP_RESOLVED: "Cannot determine which app to update. Provide --app-id or run from a directory with app-config.json.";
|
|
67
71
|
readonly APP_UPDATE_APP_ID_MISMATCH: (flagId: string, configId: string) => string;
|
|
72
|
+
readonly APP_UPDATE_SCOPES_APPENDED: (scopes: string[]) => string;
|
|
68
73
|
readonly APP_DELETE_CONFIRM: (name: string, id: string) => string;
|
|
69
74
|
readonly APP_DELETE_SUCCESS: (id: string) => string;
|
|
70
75
|
readonly APP_DELETE_CANCELLED: "Delete cancelled.";
|
|
@@ -77,6 +82,7 @@ export declare const messages: {
|
|
|
77
82
|
readonly APP_SCAFFOLD_SUCCESS: (count: number) => string;
|
|
78
83
|
readonly APP_SCAFFOLD_NEXT_STEPS_TITLE: "Next steps";
|
|
79
84
|
readonly APP_SCAFFOLD_NEXT_STEPS_LINES: (dir: string) => string[];
|
|
85
|
+
readonly APP_SCAFFOLD_SCOPES_TIP: "Tip: list available scopes with `brevo app available-scopes`. Update scopes via `brevo app update --scope <name>` (repeatable), or by editing `auth.scopes` in app-config.json and running `brevo app update`.";
|
|
80
86
|
readonly APP_START_FEATURE_NOT_FOUND: (entryFile: string) => string;
|
|
81
87
|
readonly APP_START_NO_DEPS: (featureDir: string) => string;
|
|
82
88
|
readonly APP_START_STOPPED: "Process stopped.";
|
|
@@ -106,6 +112,28 @@ export declare const messages: {
|
|
|
106
112
|
readonly INIT_APP_LINKED: (name: string) => string;
|
|
107
113
|
readonly INIT_APP_ACTION: "What would you like to do?";
|
|
108
114
|
readonly INIT_DONE: `All set! Run \`${string}\` to test your OAuth flow, or \`brevo --help\` to see all commands.`;
|
|
115
|
+
readonly SKILL_INSTALL_SUCCESS: (name: string, version: string, dir: string) => string;
|
|
116
|
+
readonly SKILL_INSTALL_CLAUDE_ONLY: "This skill is consumed by Claude (Claude Code, Claude Desktop). Other AI tools (Cursor, Copilot CLI, Gemini, etc.) should reference agent-context/AGENTS.md from the @getbrevo/cli npm package instead.";
|
|
117
|
+
readonly SKILL_INSTALL_ALREADY: (name: string, version: string) => string;
|
|
118
|
+
readonly SKILL_UNINSTALL_SUCCESS: (name: string, dir: string) => string;
|
|
119
|
+
readonly SKILL_UNINSTALL_NONE: "No Brevo skills installed.";
|
|
120
|
+
readonly SKILL_AUTOREFRESHED: (name: string, oldVer: string, newVer: string) => string;
|
|
121
|
+
readonly SKILL_AUTOREFRESH_FAILED: (name: string, err: string) => string;
|
|
122
|
+
readonly APP_SCOPES_EMPTY: "The IdP returned an empty scope list.";
|
|
123
|
+
readonly APP_SCOPES_USAGE_HINT: "Add a scope to an app with `brevo app update --scope <scope> --app-id <id>`.";
|
|
124
|
+
readonly APP_SCOPES_WEB_LISTENING: (url: string) => string;
|
|
125
|
+
readonly APP_SCOPES_WEB_TITLE: "Brevo OAuth scopes";
|
|
126
|
+
readonly APP_SCOPES_WEB_INTRO: (count: number, sourceUrl: string) => string;
|
|
127
|
+
readonly APP_SCOPES_WEB_SEARCH_PLACEHOLDER: "Filter scopes…";
|
|
128
|
+
readonly APP_SCOPES_WEB_EMPTY: "The IdP returned an empty scope list.";
|
|
129
|
+
readonly APP_SCOPES_WEB_FOOTER: "Served locally by the Brevo CLI. Press Ctrl+C in the terminal to stop.";
|
|
130
|
+
readonly APP_SCOPES_WEB_REFRESH: "Refresh";
|
|
131
|
+
readonly APP_SCOPES_WEB_REFRESHING: "Refreshing…";
|
|
132
|
+
readonly APP_SCOPES_WEB_REFRESH_FAILED: "Refresh failed. Please restart `brevo app available-scopes --web` to retry.";
|
|
133
|
+
readonly APP_SCOPES_WEB_ENDPOINTS_LABEL: "API endpoints";
|
|
134
|
+
readonly APP_SCOPES_WEB_NO_ENDPOINTS: "No API endpoints listed for this scope.";
|
|
135
|
+
readonly OAUTH_METADATA_MISSING_SCOPES: "IdP scopes response did not include a scopes array.";
|
|
136
|
+
readonly OAUTH_METADATA_FETCH_FAILED: (url: string, status: number) => string;
|
|
109
137
|
readonly ABORTED: "Aborted.";
|
|
110
138
|
};
|
|
111
139
|
//# sourceMappingURL=en.d.ts.map
|
package/dist/lang/en.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/lang/en.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ;yCAES,MAAM,UAAU,MAAM,KAAG,MAAM;gCAExC,MAAM,KAAG,MAAM;qCACV,MAAM,KAAG,MAAM
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/lang/en.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ;yCAES,MAAM,UAAU,MAAM,KAAG,MAAM;gCAExC,MAAM,KAAG,MAAM;qCACV,MAAM,KAAG,MAAM;;;;mCAMjB,MAAM;;kCAEP,MAAM,WAAW,MAAM;gCAEzB,MAAM;;;;;gDAKU,MAAM;;;;;;;8CASR,MAAM;;kDAGF,MAAM;;;;;2CAUb,MAAM,WAAW,MAAM;;kDAGhB,MAAM,EAAE;;;;;;;6CAWb,MAAM;;;;;;4CASP,MAAM,aAAa,MAAM;iDAEpB,MAAM;;;;;;;;;;;;;;;;;oDA2BH,MAAM;yDAED,MAAM;;;;;;;kDAUb,MAAM,YAAY,MAAM;kDAExB,MAAM,EAAE,KAAG,MAAM;wCAG3B,MAAM,MAAM,MAAM;sCAEpB,MAAM;;8CAEE,MAAM;8CACN,MAAM;6CACP,MAAM;;;;2CAMR,MAAM;;kDAEC,MAAM;;sDASF,MAAM;6CAEf,MAAM;;oDAGC,MAAM;kDAER,MAAM,aAAa,MAAM;2CAEhC,MAAM;kDAEC,MAAM;yCAEf,MAAM,QAAQ,MAAM;yCACpB,MAAM,SAAS,MAAM;uDACP,MAAM;uDAEN,MAAM;;kDAGX,MAAM;gDACR,MAAM;wDAEE,MAAM,OAAO,MAAM;;;4CAQ/B,MAAM;;;;;;;;sCAcZ,MAAM;qCACP,MAAM;;;2CAKA,MAAM,WAAW,MAAM,OAAO,MAAM;;2CAIpC,MAAM,WAAW,MAAM;6CAErB,MAAM,OAAO,MAAM;;yCAEvB,MAAM,UAAU,MAAM,UAAU,MAAM;8CAEjC,MAAM,OAAO,MAAM;;;6CAMpB,MAAM,KAAG,MAAM;;2CAEjB,MAAM,aAAa,MAAM,KAAG,MAAM;;;;;;;;;;gDAW7B,MAAM,UAAU,MAAM,KAAG,MAAM;;CAK1D,CAAC"}
|
package/dist/lang/en.js
CHANGED
|
@@ -7,7 +7,6 @@ exports.messages = {
|
|
|
7
7
|
UPDATE_AVAILABLE: (current, latest) => `Update available: ${current} → ${latest}`,
|
|
8
8
|
UPDATE_RUN: (name) => `Run: npm install -g ${name}`,
|
|
9
9
|
UPDATE_RUN_YARN: (name) => `Or: yarn global add ${name}`,
|
|
10
|
-
CLI_BELOW_MIN_VERSION: (current, required) => `This project requires Brevo CLI ≥ ${required}, but you are running ${current}. Some commands may not work correctly. Please upgrade.`,
|
|
11
10
|
// Auth
|
|
12
11
|
AUTH_WELCOME: 'Welcome to Brevo CLI',
|
|
13
12
|
AUTH_PROMPT_METHOD: 'How would you like to authenticate?',
|
|
@@ -49,10 +48,15 @@ exports.messages = {
|
|
|
49
48
|
APP_CREATE_REDIRECT_ANOTHER: 'Add another redirect URL?',
|
|
50
49
|
APP_CREATE_REDIRECT_EMPTY: 'Redirect URL cannot be empty',
|
|
51
50
|
APP_CREATE_REDIRECT_INVALID: 'Invalid format. Must start with http:// or https://',
|
|
51
|
+
APP_CREATE_LOGO_PROMPT: 'App logo URL (e.g. https://example.com/logo.png, optional — leave blank to skip):',
|
|
52
|
+
APP_CREATE_LOGO_INVALID: 'Invalid format. Must be a valid https:// URL (e.g. https://example.com/logo.png).',
|
|
52
53
|
APP_CREATE_PORT_IN_USE: (port, available) => `Port ${port} is in use. Defaulting to port ${available}.`,
|
|
53
54
|
APP_CREATE_PORT_SCAN_FAILED: (port) => `Warning: Could not find a free port near ${port}. Defaulting to ${port} — it may conflict with a running process.`,
|
|
54
55
|
APP_CREATE_LIMIT_REACHED: 'You have reached the maximum number of OAuth apps allowed for your account. To make room, delete an existing app: brevo app delete',
|
|
55
56
|
APP_CREATE_PUBLIC_UNAVAILABLE: 'Public distribution is not yet available (coming soon). Use `--distribution private` for now.',
|
|
57
|
+
APP_CREATE_BOX_TITLE: 'App created',
|
|
58
|
+
APP_CREATE_BOX_SCOPES_LABEL: 'Default scopes:',
|
|
59
|
+
APP_CREATE_BOX_SCOPE_HINT: `You can add more scopes later with: ${constants_1.CLI.APP_UPDATE_SCOPE} <scope>`,
|
|
56
60
|
// App list
|
|
57
61
|
APP_LIST_EMPTY: `No apps found. Create one with: ${constants_1.CLI.APP_CREATE}`,
|
|
58
62
|
APP_LIST_HEADER: 'Your OAuth apps:',
|
|
@@ -73,9 +77,10 @@ exports.messages = {
|
|
|
73
77
|
APP_UPDATE_CONFIRM: 'Proceed with update?',
|
|
74
78
|
APP_UPDATE_CANCELLED: 'Update cancelled.',
|
|
75
79
|
APP_UPDATE_SUCCESS: 'App updated.',
|
|
76
|
-
APP_UPDATE_NOTHING_TO_UPDATE: 'Nothing to update. Provide --app-id with --name or --
|
|
80
|
+
APP_UPDATE_NOTHING_TO_UPDATE: 'Nothing to update. Provide --app-id with --name, --redirect-uri, --scope, or --logo-uri, or run from a scaffolded project directory.',
|
|
77
81
|
APP_UPDATE_NO_APP_RESOLVED: 'Cannot determine which app to update. Provide --app-id or run from a directory with app-config.json.',
|
|
78
82
|
APP_UPDATE_APP_ID_MISMATCH: (flagId, configId) => `--app-id ${flagId} does not match app-config.json (${configId}). Pass --name or --redirect-uri to update app ${flagId}, or remove --app-id to update app ${configId}.`,
|
|
83
|
+
APP_UPDATE_SCOPES_APPENDED: (scopes) => `Scopes appended: ${scopes.join(', ')}`,
|
|
79
84
|
// App delete
|
|
80
85
|
APP_DELETE_CONFIRM: (name, id) => `Delete app "${name}" (${id})? This cannot be undone.`,
|
|
81
86
|
APP_DELETE_SUCCESS: (id) => `App ${id} deleted.`,
|
|
@@ -95,6 +100,7 @@ exports.messages = {
|
|
|
95
100
|
` (or: npm --prefix src/oauth install)`,
|
|
96
101
|
`3. ${constants_1.CLI.APP_START('oauth')}`,
|
|
97
102
|
],
|
|
103
|
+
APP_SCAFFOLD_SCOPES_TIP: `Tip: list available scopes with \`${constants_1.CLI.APP_SCOPES}\`. Update scopes via \`${constants_1.CLI.APP_UPDATE_SCOPE} <name>\` (repeatable), or by editing \`auth.scopes\` in app-config.json and running \`${constants_1.CLI.APP_UPDATE}\`.`,
|
|
98
104
|
// App start
|
|
99
105
|
APP_START_FEATURE_NOT_FOUND: (entryFile) => `Feature entry file not found.\n\n Expected: ${entryFile}\n Current directory: ${process.cwd()}\n\n Make sure you are inside your scaffolded project directory.\n Run \`cd <your-project-folder>\` and try again.`,
|
|
100
106
|
APP_START_NO_DEPS: (featureDir) => `Dependencies not installed. Run \`yarn --cwd ${featureDir}\` (or \`npm --prefix ${featureDir} install\`) first.`,
|
|
@@ -128,6 +134,30 @@ exports.messages = {
|
|
|
128
134
|
INIT_APP_LINKED: (name) => `App "${name}" is linked to this project (app-config.json).`,
|
|
129
135
|
INIT_APP_ACTION: 'What would you like to do?',
|
|
130
136
|
INIT_DONE: `All set! Run \`${constants_1.CLI.APP_START('oauth')}\` to test your OAuth flow, or \`${constants_1.CLI.HELP}\` to see all commands.`,
|
|
137
|
+
// Skill
|
|
138
|
+
SKILL_INSTALL_SUCCESS: (name, version, dir) => `Installed ${name}@${version} → ${dir}`,
|
|
139
|
+
SKILL_INSTALL_CLAUDE_ONLY: 'This skill is consumed by Claude (Claude Code, Claude Desktop). Other AI tools (Cursor, Copilot CLI, Gemini, etc.) should reference agent-context/AGENTS.md from the @getbrevo/cli npm package instead.',
|
|
140
|
+
SKILL_INSTALL_ALREADY: (name, version) => `${name}@${version} is already up to date.`,
|
|
141
|
+
SKILL_UNINSTALL_SUCCESS: (name, dir) => `Uninstalled ${name} from ${dir}`,
|
|
142
|
+
SKILL_UNINSTALL_NONE: 'No Brevo skills installed.',
|
|
143
|
+
SKILL_AUTOREFRESHED: (name, oldVer, newVer) => `↻ refreshed ${name} skill (v${oldVer} → v${newVer})`,
|
|
144
|
+
SKILL_AUTOREFRESH_FAILED: (name, err) => `⚠ failed to refresh ${name} skill: ${err}`,
|
|
145
|
+
// App scopes
|
|
146
|
+
APP_SCOPES_EMPTY: 'The IdP returned an empty scope list.',
|
|
147
|
+
APP_SCOPES_USAGE_HINT: `Add a scope to an app with \`${constants_1.CLI.APP_UPDATE_SCOPE} <scope> --app-id <id>\`.`,
|
|
148
|
+
APP_SCOPES_WEB_LISTENING: (url) => `Open in browser: ${url} (Ctrl+C to stop)`,
|
|
149
|
+
APP_SCOPES_WEB_TITLE: 'Brevo OAuth scopes',
|
|
150
|
+
APP_SCOPES_WEB_INTRO: (count, sourceUrl) => `${count} scope${count === 1 ? '' : 's'} from ${sourceUrl}`,
|
|
151
|
+
APP_SCOPES_WEB_SEARCH_PLACEHOLDER: 'Filter scopes…',
|
|
152
|
+
APP_SCOPES_WEB_EMPTY: 'The IdP returned an empty scope list.',
|
|
153
|
+
APP_SCOPES_WEB_FOOTER: 'Served locally by the Brevo CLI. Press Ctrl+C in the terminal to stop.',
|
|
154
|
+
APP_SCOPES_WEB_REFRESH: 'Refresh',
|
|
155
|
+
APP_SCOPES_WEB_REFRESHING: 'Refreshing…',
|
|
156
|
+
APP_SCOPES_WEB_REFRESH_FAILED: `Refresh failed. Please restart \`${constants_1.CLI.APP_SCOPES} --web\` to retry.`,
|
|
157
|
+
APP_SCOPES_WEB_ENDPOINTS_LABEL: 'API endpoints',
|
|
158
|
+
APP_SCOPES_WEB_NO_ENDPOINTS: 'No API endpoints listed for this scope.',
|
|
159
|
+
OAUTH_METADATA_MISSING_SCOPES: 'IdP scopes response did not include a scopes array.',
|
|
160
|
+
OAUTH_METADATA_FETCH_FAILED: (url, status) => `Failed to fetch OAuth scopes from ${url} (HTTP ${status}).`,
|
|
131
161
|
// General
|
|
132
162
|
ABORTED: 'Aborted.',
|
|
133
163
|
};
|
package/dist/lang/en.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/lang/en.ts"],"names":[],"mappings":";;;AAAA,gDAAuC;AAE1B,QAAA,QAAQ,GAAG;IACtB,kBAAkB;IAClB,gBAAgB,EAAE,CAAC,OAAe,EAAE,MAAc,EAAU,EAAE,CAC5D,qBAAqB,OAAO,MAAM,MAAM,EAAE;IAC5C,UAAU,EAAE,CAAC,IAAY,EAAU,EAAE,CAAC,uBAAuB,IAAI,EAAE;IACnE,eAAe,EAAE,CAAC,IAAY,EAAU,EAAE,CAAC,wBAAwB,IAAI,EAAE;
|
|
1
|
+
{"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/lang/en.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-guard.d.ts","sourceRoot":"","sources":["../../src/lib/auth-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"auth-guard.d.ts","sourceRoot":"","sources":["../../src/lib/auth-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8BvD"}
|
package/dist/lib/auth-guard.js
CHANGED
|
@@ -4,10 +4,15 @@ exports.installAuthGuard = installAuthGuard;
|
|
|
4
4
|
const config_1 = require("./config");
|
|
5
5
|
const constants_1 = require("./constants");
|
|
6
6
|
const errors_1 = require("./errors");
|
|
7
|
-
const UNAUTHENTICATED_COMMANDS = ['login', 'help', 'init', 'whoami', 'logout'];
|
|
7
|
+
const UNAUTHENTICATED_COMMANDS = new Set(['login', 'help', 'init', 'whoami', 'logout']);
|
|
8
|
+
// Subcommand groups whose entire subtree is local-only and never needs auth.
|
|
9
|
+
// Skill management touches files under ~/.claude/ — there is nothing to call
|
|
10
|
+
// against the Brevo API.
|
|
11
|
+
const UNAUTHENTICATED_GROUPS = new Set(['skill:cli']);
|
|
8
12
|
function installAuthGuard(program) {
|
|
9
13
|
program.hook('preAction', (thisCommand, actionCommand) => {
|
|
10
14
|
const commandName = actionCommand.name();
|
|
15
|
+
const parentName = actionCommand.parent?.name();
|
|
11
16
|
// The root program's default action handles "no args" (help) and
|
|
12
17
|
// "unknown command" (error). Skipping the auth guard there ensures
|
|
13
18
|
// unknown commands surface as "unknown command" instead of being
|
|
@@ -16,7 +21,8 @@ function installAuthGuard(program) {
|
|
|
16
21
|
return;
|
|
17
22
|
}
|
|
18
23
|
// Allow login, help, and version through without auth
|
|
19
|
-
if (UNAUTHENTICATED_COMMANDS.
|
|
24
|
+
if (UNAUTHENTICATED_COMMANDS.has(commandName) ||
|
|
25
|
+
(parentName && UNAUTHENTICATED_GROUPS.has(parentName)) ||
|
|
20
26
|
process.argv.includes('--help') ||
|
|
21
27
|
process.argv.includes('-h') ||
|
|
22
28
|
process.argv.includes('--version') ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-guard.js","sourceRoot":"","sources":["../../src/lib/auth-guard.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"auth-guard.js","sourceRoot":"","sources":["../../src/lib/auth-guard.ts"],"names":[],"mappings":";;AAWA,4CA8BC;AAxCD,qCAA2C;AAC3C,2CAAkC;AAClC,qCAAoC;AAEpC,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AACxF,6EAA6E;AAC7E,6EAA6E;AAC7E,yBAAyB;AACzB,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;AAEtD,SAAgB,gBAAgB,CAAC,OAAgB;IAC/C,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,EAAE;QACvD,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;QAEhD,iEAAiE;QACjE,mEAAmE;QACnE,iEAAiE;QACjE,yCAAyC;QACzC,IAAI,aAAa,KAAK,WAAW,IAAI,WAAW,KAAK,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YACpE,OAAO;QACT,CAAC;QAED,sDAAsD;QACtD,IACE,wBAAwB,CAAC,GAAG,CAAC,WAAW,CAAC;YACzC,CAAC,UAAU,IAAI,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EACxB,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAA,wBAAe,GAAE,EAAE,CAAC;YACvB,MAAM,IAAI,iBAAQ,CAAC,2BAA2B,eAAG,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/lib/browser.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.openBrowser = openBrowser;
|
|
4
|
-
const
|
|
4
|
+
const node_child_process_1 = require("node:child_process");
|
|
5
5
|
function openBrowser(url) {
|
|
6
6
|
if (process.platform === 'darwin') {
|
|
7
|
-
(0,
|
|
7
|
+
(0, node_child_process_1.execFile)('open', [url]);
|
|
8
8
|
}
|
|
9
9
|
else if (process.platform === 'win32') {
|
|
10
|
-
(0,
|
|
10
|
+
(0, node_child_process_1.execFile)('cmd', ['/c', 'start', '', url]);
|
|
11
11
|
}
|
|
12
12
|
else {
|
|
13
|
-
(0,
|
|
13
|
+
(0, node_child_process_1.execFile)('xdg-open', [url]);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
//# sourceMappingURL=browser.js.map
|
package/dist/lib/browser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/lib/browser.ts"],"names":[],"mappings":";;AAEA,kCAQC;AAVD,
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/lib/browser.ts"],"names":[],"mappings":";;AAEA,kCAQC;AAVD,2DAA8C;AAE9C,SAAgB,WAAW,CAAC,GAAW;IACrC,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,IAAA,6BAAQ,EAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACxC,IAAA,6BAAQ,EAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,IAAA,6BAAQ,EAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-version.d.ts","sourceRoot":"","sources":["../../src/lib/cli-version.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,WAAW,QAAmB,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.CLI_VERSION = void 0;
|
|
37
|
+
const fs = __importStar(require("node:fs"));
|
|
38
|
+
const path = __importStar(require("node:path"));
|
|
39
|
+
/**
|
|
40
|
+
* CLI version pulled from the bundled `package.json` at module-init.
|
|
41
|
+
*
|
|
42
|
+
* Resolved relative to this file so the same lookup works under ts-jest
|
|
43
|
+
* (`src/lib/` → repo root) and the published tarball
|
|
44
|
+
* (`node_modules/@getbrevo/cli/dist/lib/` → package root). Falls back to
|
|
45
|
+
* `'0.0.0'` if the file is missing or malformed — safe default for any
|
|
46
|
+
* consumer that uses this for telemetry or skill-version stamping.
|
|
47
|
+
*/
|
|
48
|
+
function readCliVersion() {
|
|
49
|
+
try {
|
|
50
|
+
const pkgPath = path.resolve(__dirname, '..', '..', 'package.json');
|
|
51
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
|
|
52
|
+
return typeof pkg.version === 'string' ? pkg.version : '0.0.0';
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return '0.0.0';
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.CLI_VERSION = readCliVersion();
|
|
59
|
+
//# sourceMappingURL=cli-version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-version.js","sourceRoot":"","sources":["../../src/lib/cli-version.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA8B;AAC9B,gDAAkC;AAElC;;;;;;;;GAQG;AACH,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAA0B,CAAC;QACnF,OAAO,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAEY,QAAA,WAAW,GAAG,cAAc,EAAE,CAAC"}
|
|
@@ -26,7 +26,7 @@ function registerCommand(parent, def) {
|
|
|
26
26
|
}
|
|
27
27
|
cmd.action((...actionArgs) => {
|
|
28
28
|
// Commander passes positional args first, then options object, then Command
|
|
29
|
-
const opts = actionArgs
|
|
29
|
+
const opts = actionArgs.at(-2);
|
|
30
30
|
const positionalArgs = actionArgs.slice(0, -2);
|
|
31
31
|
return def.handler(opts, ...positionalArgs);
|
|
32
32
|
});
|