@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.
- package/CHANGELOG.md +209 -0
- package/README.md +8 -5
- package/agent-context/AGENTS.md +59 -15
- package/agent-context/SKILL.md +70 -14
- package/dist/{templates → bin}/files/AGENTS.md.tmpl +11 -1
- package/dist/{templates → bin}/files/CLAUDE.md.tmpl +8 -0
- package/dist/{templates → bin}/files/README.md.tmpl +11 -14
- package/dist/bin/files/app-config.json.tmpl +16 -0
- package/dist/{templates → bin}/files/src/oauth/.env.example.tmpl +8 -0
- package/dist/{templates → bin}/files/src/oauth/.env.local.tmpl +2 -0
- package/dist/{templates → bin}/files/src/oauth/handler.js.tmpl +49 -7
- package/dist/{templates → bin}/files/src/oauth/server.js.tmpl +20 -14
- package/dist/{templates → bin}/files/src/oauth/token-store.js.tmpl +19 -0
- package/dist/bin/index.js +660 -235
- package/dist/bin/index.js.map +7 -1
- package/package.json +6 -4
- package/dist/api/client.d.ts +0 -25
- package/dist/api/client.d.ts.map +0 -1
- package/dist/api/client.js +0 -205
- package/dist/api/client.js.map +0 -1
- package/dist/bin/index.d.ts +0 -3
- package/dist/bin/index.d.ts.map +0 -1
- package/dist/commands/app/create.d.ts +0 -8
- package/dist/commands/app/create.d.ts.map +0 -1
- package/dist/commands/app/create.js +0 -325
- package/dist/commands/app/create.js.map +0 -1
- package/dist/commands/app/credentials.d.ts +0 -6
- package/dist/commands/app/credentials.d.ts.map +0 -1
- package/dist/commands/app/credentials.js +0 -114
- package/dist/commands/app/credentials.js.map +0 -1
- package/dist/commands/app/delete.d.ts +0 -6
- package/dist/commands/app/delete.d.ts.map +0 -1
- package/dist/commands/app/delete.js +0 -167
- package/dist/commands/app/delete.js.map +0 -1
- package/dist/commands/app/list.d.ts +0 -4
- package/dist/commands/app/list.d.ts.map +0 -1
- package/dist/commands/app/list.js +0 -71
- package/dist/commands/app/list.js.map +0 -1
- package/dist/commands/app/scaffold.d.ts +0 -5
- package/dist/commands/app/scaffold.d.ts.map +0 -1
- package/dist/commands/app/scaffold.js +0 -213
- package/dist/commands/app/scaffold.js.map +0 -1
- package/dist/commands/app/scopes.d.ts +0 -2
- package/dist/commands/app/scopes.d.ts.map +0 -1
- package/dist/commands/app/scopes.js +0 -81
- package/dist/commands/app/scopes.js.map +0 -1
- package/dist/commands/app/start.d.ts +0 -5
- package/dist/commands/app/start.d.ts.map +0 -1
- package/dist/commands/app/start.js +0 -220
- package/dist/commands/app/start.js.map +0 -1
- package/dist/commands/app/update.d.ts +0 -2
- package/dist/commands/app/update.d.ts.map +0 -1
- package/dist/commands/app/update.js +0 -444
- package/dist/commands/app/update.js.map +0 -1
- package/dist/commands/definitions.d.ts +0 -5
- package/dist/commands/definitions.d.ts.map +0 -1
- package/dist/commands/definitions.js +0 -262
- package/dist/commands/definitions.js.map +0 -1
- package/dist/commands/init.d.ts +0 -2
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js +0 -138
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/login.d.ts +0 -6
- package/dist/commands/login.d.ts.map +0 -1
- package/dist/commands/login.js +0 -251
- package/dist/commands/login.js.map +0 -1
- package/dist/commands/logout.d.ts +0 -5
- package/dist/commands/logout.d.ts.map +0 -1
- package/dist/commands/logout.js +0 -54
- package/dist/commands/logout.js.map +0 -1
- package/dist/commands/skill/install.d.ts +0 -4
- package/dist/commands/skill/install.d.ts.map +0 -1
- package/dist/commands/skill/install.js +0 -29
- package/dist/commands/skill/install.js.map +0 -1
- package/dist/commands/skill/uninstall.d.ts +0 -4
- package/dist/commands/skill/uninstall.d.ts.map +0 -1
- package/dist/commands/skill/uninstall.js +0 -23
- package/dist/commands/skill/uninstall.js.map +0 -1
- package/dist/commands/whoami.d.ts +0 -4
- package/dist/commands/whoami.d.ts.map +0 -1
- package/dist/commands/whoami.js +0 -85
- package/dist/commands/whoami.js.map +0 -1
- package/dist/container.d.ts +0 -7
- package/dist/container.d.ts.map +0 -1
- package/dist/container.js +0 -28
- package/dist/container.js.map +0 -1
- package/dist/lang/en.d.ts +0 -162
- package/dist/lang/en.d.ts.map +0 -1
- package/dist/lang/en.js +0 -189
- package/dist/lang/en.js.map +0 -1
- package/dist/lib/abort.d.ts +0 -3
- package/dist/lib/abort.d.ts.map +0 -1
- package/dist/lib/abort.js +0 -30
- package/dist/lib/abort.js.map +0 -1
- package/dist/lib/auth-guard.d.ts +0 -13
- package/dist/lib/auth-guard.d.ts.map +0 -1
- package/dist/lib/auth-guard.js +0 -60
- package/dist/lib/auth-guard.js.map +0 -1
- package/dist/lib/browser.d.ts +0 -2
- package/dist/lib/browser.d.ts.map +0 -1
- package/dist/lib/browser.js +0 -16
- package/dist/lib/browser.js.map +0 -1
- package/dist/lib/cli-version.d.ts +0 -2
- package/dist/lib/cli-version.d.ts.map +0 -1
- package/dist/lib/cli-version.js +0 -59
- package/dist/lib/cli-version.js.map +0 -1
- package/dist/lib/command-handler.d.ts +0 -10
- package/dist/lib/command-handler.d.ts.map +0 -1
- package/dist/lib/command-handler.js +0 -16
- package/dist/lib/command-handler.js.map +0 -1
- package/dist/lib/command-registry.d.ts +0 -28
- package/dist/lib/command-registry.d.ts.map +0 -1
- package/dist/lib/command-registry.js +0 -54
- package/dist/lib/command-registry.js.map +0 -1
- package/dist/lib/config.d.ts +0 -83
- package/dist/lib/config.d.ts.map +0 -1
- package/dist/lib/config.js +0 -430
- package/dist/lib/config.js.map +0 -1
- package/dist/lib/constants.d.ts +0 -48
- package/dist/lib/constants.d.ts.map +0 -1
- package/dist/lib/constants.js +0 -121
- package/dist/lib/constants.js.map +0 -1
- package/dist/lib/errors.d.ts +0 -30
- package/dist/lib/errors.d.ts.map +0 -1
- package/dist/lib/errors.js +0 -66
- package/dist/lib/errors.js.map +0 -1
- package/dist/lib/exit-codes.d.ts +0 -9
- package/dist/lib/exit-codes.d.ts.map +0 -1
- package/dist/lib/exit-codes.js +0 -12
- package/dist/lib/exit-codes.js.map +0 -1
- package/dist/lib/hidden-input.d.ts +0 -2
- package/dist/lib/hidden-input.d.ts.map +0 -1
- package/dist/lib/hidden-input.js +0 -78
- package/dist/lib/hidden-input.js.map +0 -1
- package/dist/lib/json-output.d.ts +0 -6
- package/dist/lib/json-output.d.ts.map +0 -1
- package/dist/lib/json-output.js +0 -11
- package/dist/lib/json-output.js.map +0 -1
- package/dist/lib/logger.d.ts +0 -11
- package/dist/lib/logger.d.ts.map +0 -1
- package/dist/lib/logger.js +0 -110
- package/dist/lib/logger.js.map +0 -1
- package/dist/lib/oauth-freshness.d.ts +0 -30
- package/dist/lib/oauth-freshness.d.ts.map +0 -1
- package/dist/lib/oauth-freshness.js +0 -61
- package/dist/lib/oauth-freshness.js.map +0 -1
- package/dist/lib/port.d.ts +0 -25
- package/dist/lib/port.d.ts.map +0 -1
- package/dist/lib/port.js +0 -103
- package/dist/lib/port.js.map +0 -1
- package/dist/lib/telemetry.d.ts +0 -9
- package/dist/lib/telemetry.d.ts.map +0 -1
- package/dist/lib/telemetry.js +0 -57
- package/dist/lib/telemetry.js.map +0 -1
- package/dist/lib/ui.d.ts +0 -14
- package/dist/lib/ui.d.ts.map +0 -1
- package/dist/lib/ui.js +0 -75
- package/dist/lib/ui.js.map +0 -1
- package/dist/lib/update-notifier.d.ts +0 -37
- package/dist/lib/update-notifier.d.ts.map +0 -1
- package/dist/lib/update-notifier.js +0 -298
- package/dist/lib/update-notifier.js.map +0 -1
- package/dist/lib/validators.d.ts +0 -55
- package/dist/lib/validators.d.ts.map +0 -1
- package/dist/lib/validators.js +0 -166
- package/dist/lib/validators.js.map +0 -1
- package/dist/services/account.d.ts +0 -8
- package/dist/services/account.d.ts.map +0 -1
- package/dist/services/account.js +0 -15
- package/dist/services/account.js.map +0 -1
- package/dist/services/app.d.ts +0 -38
- package/dist/services/app.d.ts.map +0 -1
- package/dist/services/app.js +0 -145
- package/dist/services/app.js.map +0 -1
- package/dist/services/browser-auth.d.ts +0 -15
- package/dist/services/browser-auth.d.ts.map +0 -1
- package/dist/services/browser-auth.js +0 -188
- package/dist/services/browser-auth.js.map +0 -1
- package/dist/services/normalize-app-id.d.ts +0 -12
- package/dist/services/normalize-app-id.d.ts.map +0 -1
- package/dist/services/normalize-app-id.js +0 -38
- package/dist/services/normalize-app-id.js.map +0 -1
- package/dist/services/oauth-metadata.d.ts +0 -7
- package/dist/services/oauth-metadata.d.ts.map +0 -1
- package/dist/services/oauth-metadata.js +0 -43
- package/dist/services/oauth-metadata.js.map +0 -1
- package/dist/services/oauth-refresh.d.ts +0 -14
- package/dist/services/oauth-refresh.d.ts.map +0 -1
- package/dist/services/oauth-refresh.js +0 -70
- package/dist/services/oauth-refresh.js.map +0 -1
- package/dist/services/scopes-html.d.ts +0 -3
- package/dist/services/scopes-html.d.ts.map +0 -1
- package/dist/services/scopes-html.js +0 -516
- package/dist/services/scopes-html.js.map +0 -1
- package/dist/services/scopes-web.d.ts +0 -12
- package/dist/services/scopes-web.d.ts.map +0 -1
- package/dist/services/scopes-web.js +0 -95
- package/dist/services/scopes-web.js.map +0 -1
- package/dist/services/skill.d.ts +0 -48
- package/dist/services/skill.d.ts.map +0 -1
- package/dist/services/skill.js +0 -223
- package/dist/services/skill.js.map +0 -1
- package/dist/skills/index.d.ts +0 -47
- package/dist/skills/index.d.ts.map +0 -1
- package/dist/skills/index.js +0 -61
- package/dist/skills/index.js.map +0 -1
- package/dist/templates/files/app-config.json.tmpl +0 -25
- package/dist/templates/index.d.ts +0 -36
- package/dist/templates/index.d.ts.map +0 -1
- package/dist/templates/index.js +0 -105
- package/dist/templates/index.js.map +0 -1
- package/dist/types.d.ts +0 -32
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -3
- package/dist/types.js.map +0 -1
- /package/dist/{templates → bin}/files/gitignore.tmpl +0 -0
- /package/dist/{templates → bin}/files/src/oauth/package.json.tmpl +0 -0
package/dist/lib/constants.d.ts
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
export declare function warnIfPathStripped(): void;
|
|
2
|
-
export declare const API_BASE: string;
|
|
3
|
-
export declare const OAUTH_PROXY_URL: string;
|
|
4
|
-
export declare const USER_AGENT_HEADER = "User-Agent";
|
|
5
|
-
export declare const CLI_AUTH_METHODS: {
|
|
6
|
-
readonly API_KEY: "api_key";
|
|
7
|
-
readonly OAUTH: "oauth";
|
|
8
|
-
};
|
|
9
|
-
export declare const ENDPOINTS: {
|
|
10
|
-
readonly ACCOUNT: "/v3/account/info";
|
|
11
|
-
readonly APP_STORE_APPS: "/v3/app-store/apps";
|
|
12
|
-
readonly APP_STORE_APP: (appId: string) => string;
|
|
13
|
-
readonly OAUTH_AUTHORIZE: "/oauth/authorize";
|
|
14
|
-
readonly OAUTH_TOKEN: "/oauth/token";
|
|
15
|
-
};
|
|
16
|
-
export declare const CLI: {
|
|
17
|
-
readonly LOGIN: "brevo login";
|
|
18
|
-
readonly INIT: "brevo app init";
|
|
19
|
-
readonly HELP: "brevo --help";
|
|
20
|
-
readonly APP_CREATE: "brevo app create";
|
|
21
|
-
readonly APP_LIST: "brevo app list";
|
|
22
|
-
readonly APP_SCAFFOLD: (appId?: string) => string;
|
|
23
|
-
readonly APP_CREDENTIALS: (appId?: string) => string;
|
|
24
|
-
readonly APP_CREDENTIALS_REVEAL: (appId?: string) => string;
|
|
25
|
-
readonly APP_UPDATE: "brevo app update";
|
|
26
|
-
readonly APP_DELETE: "brevo app delete";
|
|
27
|
-
readonly APP_START: (feature?: string) => string;
|
|
28
|
-
readonly APP_SCOPES: "brevo app available-scopes";
|
|
29
|
-
readonly APP_UPDATE_SCOPE: "brevo app update --scope";
|
|
30
|
-
readonly SKILL_INSTALL: "brevo skill:cli install";
|
|
31
|
-
readonly SKILL_UNINSTALL: "brevo skill:cli uninstall";
|
|
32
|
-
};
|
|
33
|
-
export declare const DEFAULT_APP_FOLDER = "my-app";
|
|
34
|
-
export declare const DEFAULT_PORT = 3009;
|
|
35
|
-
export declare const DEFAULT_REDIRECT_URI = "http://localhost:3009/auth/callback";
|
|
36
|
-
export declare const PLACEHOLDER_CLIENT_ID = "YOUR_CLIENT_ID";
|
|
37
|
-
export declare const OAUTH_BASE = "https://oauth.brevo.com";
|
|
38
|
-
export declare const OAUTH_REALM = "partner";
|
|
39
|
-
export declare const OAUTH_SCOPES_URL = "https://oauth.brevo.com/realms/partner/scopes";
|
|
40
|
-
export declare const LEGACY_ALL_SCOPE = "all";
|
|
41
|
-
export declare const DEFAULT_SCOPES: readonly string[];
|
|
42
|
-
export declare const BREVO_DASHBOARD_API_KEYS_URL = "https://app.brevo.com/settings/keys/api";
|
|
43
|
-
export declare const BREVO_API_KEY_DOCS_URL = "https://developers.brevo.com/docs/api-key-authentication";
|
|
44
|
-
export declare const BREVO_STATUS_URL = "https://status.brevo.com";
|
|
45
|
-
export declare const BREVO_DOCS_URL = "https://developers.brevo.com";
|
|
46
|
-
export declare const BREVO_CLI_REFERENCE_URL = "https://developers.brevo.com/docs/cli-reference";
|
|
47
|
-
export declare const BREVO_OAUTH_SCOPES_DOCS_URL = "https://developers.brevo.com/docs/oauth-scopes#scope-catalog";
|
|
48
|
-
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAkBA,wBAAgB,kBAAkB,IAAI,IAAI,CAOzC;AA0BD,eAAO,MAAM,QAAQ,QAAmB,CAAC;AAkBzC,eAAO,MAAM,eAAe,QAAyB,CAAC;AAKtD,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAI9C,eAAO,MAAM,gBAAgB;;;CAGnB,CAAC;AAEX,eAAO,MAAM,SAAS;;;oCAGG,MAAM;;;CAGrB,CAAC;AAEX,eAAO,MAAM,GAAG;;;;;;oCAMS,MAAM;uCAEH,MAAM;8CAEC,MAAM;;;mCAMjB,MAAM;;;;;CAMpB,CAAC;AAEX,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAC3C,eAAO,MAAM,YAAY,OAAO,CAAC;AACjC,eAAO,MAAM,oBAAoB,wCAAmD,CAAC;AACrF,eAAO,MAAM,qBAAqB,mBAAmB,CAAC;AACtD,eAAO,MAAM,UAAU,4BAA4B,CAAC;AACpD,eAAO,MAAM,WAAW,YAAY,CAAC;AACrC,eAAO,MAAM,gBAAgB,kDAA+C,CAAC;AAK7E,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AAEtC,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAKlC,CAAC;AAEX,eAAO,MAAM,4BAA4B,4CAA4C,CAAC;AACtF,eAAO,MAAM,sBAAsB,6DAA6D,CAAC;AACjG,eAAO,MAAM,gBAAgB,6BAA6B,CAAC;AAC3D,eAAO,MAAM,cAAc,iCAAiC,CAAC;AAC7D,eAAO,MAAM,uBAAuB,oDAAoD,CAAC;AACzF,eAAO,MAAM,2BAA2B,iEACwB,CAAC"}
|
package/dist/lib/constants.js
DELETED
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BREVO_OAUTH_SCOPES_DOCS_URL = exports.BREVO_CLI_REFERENCE_URL = exports.BREVO_DOCS_URL = exports.BREVO_STATUS_URL = exports.BREVO_API_KEY_DOCS_URL = exports.BREVO_DASHBOARD_API_KEYS_URL = exports.DEFAULT_SCOPES = exports.LEGACY_ALL_SCOPE = exports.OAUTH_SCOPES_URL = exports.OAUTH_REALM = exports.OAUTH_BASE = exports.PLACEHOLDER_CLIENT_ID = exports.DEFAULT_REDIRECT_URI = exports.DEFAULT_PORT = exports.DEFAULT_APP_FOLDER = exports.CLI = exports.ENDPOINTS = exports.CLI_AUTH_METHODS = exports.USER_AGENT_HEADER = exports.OAUTH_PROXY_URL = exports.API_BASE = void 0;
|
|
4
|
-
exports.warnIfPathStripped = warnIfPathStripped;
|
|
5
|
-
const errors_1 = require("./errors");
|
|
6
|
-
// Track whether URL suffix parts were stripped for deferred warning (avoid side effects at import time)
|
|
7
|
-
let strippedUrlSuffix;
|
|
8
|
-
function getStrippedUrlSuffix(parsed) {
|
|
9
|
-
const pathname = parsed.pathname === '/' ? '' : parsed.pathname;
|
|
10
|
-
const suffix = `${pathname}${parsed.search}${parsed.hash}`;
|
|
11
|
-
return suffix || undefined;
|
|
12
|
-
}
|
|
13
|
-
function stripPath(parsed) {
|
|
14
|
-
// Use origin only — endpoints already include full paths (e.g. /v3/account).
|
|
15
|
-
// Prevents double-path issues when BREVO_API_URL includes a path like /v3.
|
|
16
|
-
strippedUrlSuffix = getStrippedUrlSuffix(parsed);
|
|
17
|
-
return parsed.origin;
|
|
18
|
-
}
|
|
19
|
-
function warnIfPathStripped() {
|
|
20
|
-
if (strippedUrlSuffix) {
|
|
21
|
-
process.stderr.write(` Warning: BREVO_API_URL path "${strippedUrlSuffix}" was stripped. Endpoints already include paths.\n`);
|
|
22
|
-
strippedUrlSuffix = undefined;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
function isLocalHttpAllowed(parsed) {
|
|
26
|
-
return (parsed.protocol === 'http:' &&
|
|
27
|
-
(parsed.hostname === 'localhost' ||
|
|
28
|
-
parsed.hostname === '127.0.0.1' ||
|
|
29
|
-
parsed.hostname === '::1'));
|
|
30
|
-
}
|
|
31
|
-
function resolveApiBase() {
|
|
32
|
-
const raw = process.env.BREVO_API_URL || 'https://api.brevo.com';
|
|
33
|
-
let parsed;
|
|
34
|
-
try {
|
|
35
|
-
parsed = new URL(raw);
|
|
36
|
-
}
|
|
37
|
-
catch {
|
|
38
|
-
throw new errors_1.CliError(`Invalid BREVO_API_URL: "${raw}" is not a valid URL.`);
|
|
39
|
-
}
|
|
40
|
-
if (parsed.protocol === 'https:')
|
|
41
|
-
return stripPath(parsed);
|
|
42
|
-
if (isLocalHttpAllowed(parsed))
|
|
43
|
-
return stripPath(parsed);
|
|
44
|
-
throw new errors_1.CliError(`BREVO_API_URL must use HTTPS. Got: ${raw}\n HTTP is only allowed for localhost/127.0.0.1.`);
|
|
45
|
-
}
|
|
46
|
-
exports.API_BASE = resolveApiBase();
|
|
47
|
-
function resolveOauthProxyUrl() {
|
|
48
|
-
const raw = process.env.BREVO_OAUTH_PROXY_URL || 'https://oauth-cli.brevo.com';
|
|
49
|
-
let parsed;
|
|
50
|
-
try {
|
|
51
|
-
parsed = new URL(raw);
|
|
52
|
-
}
|
|
53
|
-
catch {
|
|
54
|
-
throw new errors_1.CliError(`Invalid BREVO_OAUTH_PROXY_URL: "${raw}" is not a valid URL.`);
|
|
55
|
-
}
|
|
56
|
-
if (parsed.protocol !== 'https:' && !isLocalHttpAllowed(parsed)) {
|
|
57
|
-
throw new errors_1.CliError(`BREVO_OAUTH_PROXY_URL must use HTTPS. Got: ${raw}\n HTTP is only allowed for localhost/127.0.0.1.`);
|
|
58
|
-
}
|
|
59
|
-
return parsed.origin;
|
|
60
|
-
}
|
|
61
|
-
exports.OAUTH_PROXY_URL = resolveOauthProxyUrl();
|
|
62
|
-
// Header identifying the CLI on every API request. The backend parses it to
|
|
63
|
-
// emit product-tracking events (e.g. "CLI installed") on the `cli` Kafka topic.
|
|
64
|
-
// Format: `brevo-cli/<version> (<os>[; auth=<method>])` — see lib/telemetry.ts.
|
|
65
|
-
exports.USER_AGENT_HEADER = 'User-Agent';
|
|
66
|
-
// Auth-method markers carried in the User-Agent comment — part of the same
|
|
67
|
-
// backend contract as USER_AGENT_HEADER, so they live here rather than inline.
|
|
68
|
-
exports.CLI_AUTH_METHODS = {
|
|
69
|
-
API_KEY: 'api_key',
|
|
70
|
-
OAUTH: 'oauth',
|
|
71
|
-
};
|
|
72
|
-
exports.ENDPOINTS = {
|
|
73
|
-
ACCOUNT: '/v3/account/info',
|
|
74
|
-
APP_STORE_APPS: '/v3/app-store/apps',
|
|
75
|
-
APP_STORE_APP: (appId) => `/v3/app-store/apps/${encodeURIComponent(appId)}`,
|
|
76
|
-
OAUTH_AUTHORIZE: '/oauth/authorize',
|
|
77
|
-
OAUTH_TOKEN: '/oauth/token',
|
|
78
|
-
};
|
|
79
|
-
exports.CLI = {
|
|
80
|
-
LOGIN: 'brevo login',
|
|
81
|
-
INIT: 'brevo app init',
|
|
82
|
-
HELP: 'brevo --help',
|
|
83
|
-
APP_CREATE: 'brevo app create',
|
|
84
|
-
APP_LIST: 'brevo app list',
|
|
85
|
-
APP_SCAFFOLD: (appId) => appId ? `brevo app scaffold --app-id ${appId}` : 'brevo app scaffold --app-id <id>',
|
|
86
|
-
APP_CREDENTIALS: (appId) => appId ? `brevo app credentials --app-id ${appId}` : 'brevo app credentials --app-id <id>',
|
|
87
|
-
APP_CREDENTIALS_REVEAL: (appId) => appId
|
|
88
|
-
? `brevo app credentials --reveal-secret --app-id ${appId}`
|
|
89
|
-
: 'brevo app credentials --reveal-secret',
|
|
90
|
-
APP_UPDATE: 'brevo app update',
|
|
91
|
-
APP_DELETE: 'brevo app delete',
|
|
92
|
-
APP_START: (feature) => feature ? `brevo app start ${feature}` : 'brevo app start <feature>',
|
|
93
|
-
APP_SCOPES: 'brevo app available-scopes',
|
|
94
|
-
APP_UPDATE_SCOPE: 'brevo app update --scope',
|
|
95
|
-
SKILL_INSTALL: 'brevo skill:cli install',
|
|
96
|
-
SKILL_UNINSTALL: 'brevo skill:cli uninstall',
|
|
97
|
-
};
|
|
98
|
-
exports.DEFAULT_APP_FOLDER = 'my-app';
|
|
99
|
-
exports.DEFAULT_PORT = 3009;
|
|
100
|
-
exports.DEFAULT_REDIRECT_URI = `http://localhost:${exports.DEFAULT_PORT}/auth/callback`;
|
|
101
|
-
exports.PLACEHOLDER_CLIENT_ID = 'YOUR_CLIENT_ID';
|
|
102
|
-
exports.OAUTH_BASE = 'https://oauth.brevo.com';
|
|
103
|
-
exports.OAUTH_REALM = 'partner';
|
|
104
|
-
exports.OAUTH_SCOPES_URL = `${exports.OAUTH_BASE}/realms/${exports.OAUTH_REALM}/scopes`;
|
|
105
|
-
// Legacy catch-all OAuth scope being deprecated (BEX-214). Single source of
|
|
106
|
-
// truth for the spelling — every detection path goes through
|
|
107
|
-
// `containsLegacyAllScope` in lib/validators.
|
|
108
|
-
exports.LEGACY_ALL_SCOPE = 'all';
|
|
109
|
-
exports.DEFAULT_SCOPES = [
|
|
110
|
-
'contacts:read',
|
|
111
|
-
'contacts:write',
|
|
112
|
-
'crm:read',
|
|
113
|
-
'crm:write',
|
|
114
|
-
];
|
|
115
|
-
exports.BREVO_DASHBOARD_API_KEYS_URL = 'https://app.brevo.com/settings/keys/api';
|
|
116
|
-
exports.BREVO_API_KEY_DOCS_URL = 'https://developers.brevo.com/docs/api-key-authentication';
|
|
117
|
-
exports.BREVO_STATUS_URL = 'https://status.brevo.com';
|
|
118
|
-
exports.BREVO_DOCS_URL = 'https://developers.brevo.com';
|
|
119
|
-
exports.BREVO_CLI_REFERENCE_URL = 'https://developers.brevo.com/docs/cli-reference';
|
|
120
|
-
exports.BREVO_OAUTH_SCOPES_DOCS_URL = 'https://developers.brevo.com/docs/oauth-scopes#scope-catalog';
|
|
121
|
-
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/errors.d.ts
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
export declare class CliError extends Error {
|
|
2
|
-
readonly exitCode: number;
|
|
3
|
-
constructor(message: string, exitCode?: number);
|
|
4
|
-
}
|
|
5
|
-
export declare class AbortError extends CliError {
|
|
6
|
-
constructor();
|
|
7
|
-
}
|
|
8
|
-
export declare class AuthExpiredError extends CliError {
|
|
9
|
-
constructor();
|
|
10
|
-
}
|
|
11
|
-
export declare enum ErrorCode {
|
|
12
|
-
AUTH_INVALID = "AUTH_INVALID",
|
|
13
|
-
AUTH_EXPIRED = "AUTH_EXPIRED",
|
|
14
|
-
ACCESS_DENIED = "ACCESS_DENIED",
|
|
15
|
-
APP_NOT_FOUND = "APP_NOT_FOUND",
|
|
16
|
-
REDIRECT_INVALID = "REDIRECT_INVALID",
|
|
17
|
-
PORT_IN_USE = "PORT_IN_USE",
|
|
18
|
-
NETWORK_ERROR = "NETWORK_ERROR",
|
|
19
|
-
RATE_LIMITED = "RATE_LIMITED",
|
|
20
|
-
APP_LIMIT_REACHED = "APP_LIMIT_REACHED",
|
|
21
|
-
REGISTRY_ERROR = "REGISTRY_ERROR",
|
|
22
|
-
AUTH_GATEWAY = "AUTH_GATEWAY"
|
|
23
|
-
}
|
|
24
|
-
export declare class ApiError extends CliError {
|
|
25
|
-
readonly statusCode: number;
|
|
26
|
-
readonly errorCode?: ErrorCode | undefined;
|
|
27
|
-
readonly apiCode?: string | undefined;
|
|
28
|
-
constructor(message: string, statusCode: number, errorCode?: ErrorCode | undefined, apiCode?: string | undefined);
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=errors.d.ts.map
|
package/dist/lib/errors.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAEA,qBAAa,QAAS,SAAQ,KAAK;aAGf,QAAQ,EAAE,MAAM;gBADhC,OAAO,EAAE,MAAM,EACC,QAAQ,GAAE,MAAyB;CAKtD;AAED,qBAAa,UAAW,SAAQ,QAAQ;;CAKvC;AAED,qBAAa,gBAAiB,SAAQ,QAAQ;;CAK7C;AAED,oBAAY,SAAS;IACnB,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;IAC/B,gBAAgB,qBAAqB;IACrC,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;IAC/B,YAAY,iBAAiB;IAC7B,iBAAiB,sBAAsB;IACvC,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;CAC9B;AAED,qBAAa,QAAS,SAAQ,QAAQ;aAGlB,UAAU,EAAE,MAAM;aAClB,SAAS,CAAC,EAAE,SAAS;aACrB,OAAO,CAAC,EAAE,MAAM;gBAHhC,OAAO,EAAE,MAAM,EACC,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,SAAS,YAAA,EACrB,OAAO,CAAC,EAAE,MAAM,YAAA;CAKnC"}
|
package/dist/lib/errors.js
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ApiError = exports.ErrorCode = exports.AuthExpiredError = exports.AbortError = exports.CliError = void 0;
|
|
4
|
-
const exit_codes_1 = require("./exit-codes");
|
|
5
|
-
class CliError extends Error {
|
|
6
|
-
exitCode;
|
|
7
|
-
constructor(message, exitCode = exit_codes_1.EXIT_CODES.ERROR) {
|
|
8
|
-
super(message);
|
|
9
|
-
this.exitCode = exitCode;
|
|
10
|
-
this.name = 'CliError';
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
exports.CliError = CliError;
|
|
14
|
-
class AbortError extends CliError {
|
|
15
|
-
constructor() {
|
|
16
|
-
super('Aborted.', exit_codes_1.EXIT_CODES.ABORTED);
|
|
17
|
-
this.name = 'AbortError';
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
exports.AbortError = AbortError;
|
|
21
|
-
class AuthExpiredError extends CliError {
|
|
22
|
-
constructor() {
|
|
23
|
-
super('Your session has expired. Run `brevo login` to sign in again.', exit_codes_1.EXIT_CODES.AUTH_FAILURE);
|
|
24
|
-
this.name = 'AuthExpiredError';
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
exports.AuthExpiredError = AuthExpiredError;
|
|
28
|
-
var ErrorCode;
|
|
29
|
-
(function (ErrorCode) {
|
|
30
|
-
ErrorCode["AUTH_INVALID"] = "AUTH_INVALID";
|
|
31
|
-
ErrorCode["AUTH_EXPIRED"] = "AUTH_EXPIRED";
|
|
32
|
-
ErrorCode["ACCESS_DENIED"] = "ACCESS_DENIED";
|
|
33
|
-
ErrorCode["APP_NOT_FOUND"] = "APP_NOT_FOUND";
|
|
34
|
-
ErrorCode["REDIRECT_INVALID"] = "REDIRECT_INVALID";
|
|
35
|
-
ErrorCode["PORT_IN_USE"] = "PORT_IN_USE";
|
|
36
|
-
ErrorCode["NETWORK_ERROR"] = "NETWORK_ERROR";
|
|
37
|
-
ErrorCode["RATE_LIMITED"] = "RATE_LIMITED";
|
|
38
|
-
ErrorCode["APP_LIMIT_REACHED"] = "APP_LIMIT_REACHED";
|
|
39
|
-
ErrorCode["REGISTRY_ERROR"] = "REGISTRY_ERROR";
|
|
40
|
-
ErrorCode["AUTH_GATEWAY"] = "AUTH_GATEWAY";
|
|
41
|
-
})(ErrorCode || (exports.ErrorCode = ErrorCode = {}));
|
|
42
|
-
class ApiError extends CliError {
|
|
43
|
-
statusCode;
|
|
44
|
-
errorCode;
|
|
45
|
-
apiCode;
|
|
46
|
-
constructor(message, statusCode, errorCode, apiCode) {
|
|
47
|
-
super(message, statusToExitCode(statusCode));
|
|
48
|
-
this.statusCode = statusCode;
|
|
49
|
-
this.errorCode = errorCode;
|
|
50
|
-
this.apiCode = apiCode;
|
|
51
|
-
this.name = 'ApiError';
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
exports.ApiError = ApiError;
|
|
55
|
-
function statusToExitCode(status) {
|
|
56
|
-
if (status === 0)
|
|
57
|
-
return exit_codes_1.EXIT_CODES.NETWORK_ERROR;
|
|
58
|
-
if (status === 401)
|
|
59
|
-
return exit_codes_1.EXIT_CODES.AUTH_FAILURE;
|
|
60
|
-
if (status === 403)
|
|
61
|
-
return exit_codes_1.EXIT_CODES.ERROR;
|
|
62
|
-
if (status === 404)
|
|
63
|
-
return exit_codes_1.EXIT_CODES.NOT_FOUND;
|
|
64
|
-
return exit_codes_1.EXIT_CODES.ERROR;
|
|
65
|
-
}
|
|
66
|
-
//# sourceMappingURL=errors.js.map
|
package/dist/lib/errors.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAE1C,MAAa,QAAS,SAAQ,KAAK;IAGf;IAFlB,YACE,OAAe,EACC,WAAmB,uBAAU,CAAC,KAAK;QAEnD,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,aAAQ,GAAR,QAAQ,CAA2B;QAGnD,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AARD,4BAQC;AAED,MAAa,UAAW,SAAQ,QAAQ;IACtC;QACE,KAAK,CAAC,UAAU,EAAE,uBAAU,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AALD,gCAKC;AAED,MAAa,gBAAiB,SAAQ,QAAQ;IAC5C;QACE,KAAK,CAAC,+DAA+D,EAAE,uBAAU,CAAC,YAAY,CAAC,CAAC;QAChG,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AALD,4CAKC;AAED,IAAY,SAYX;AAZD,WAAY,SAAS;IACnB,0CAA6B,CAAA;IAC7B,0CAA6B,CAAA;IAC7B,4CAA+B,CAAA;IAC/B,4CAA+B,CAAA;IAC/B,kDAAqC,CAAA;IACrC,wCAA2B,CAAA;IAC3B,4CAA+B,CAAA;IAC/B,0CAA6B,CAAA;IAC7B,oDAAuC,CAAA;IACvC,8CAAiC,CAAA;IACjC,0CAA6B,CAAA;AAC/B,CAAC,EAZW,SAAS,yBAAT,SAAS,QAYpB;AAED,MAAa,QAAS,SAAQ,QAAQ;IAGlB;IACA;IACA;IAJlB,YACE,OAAe,EACC,UAAkB,EAClB,SAAqB,EACrB,OAAgB;QAEhC,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;QAJ7B,eAAU,GAAV,UAAU,CAAQ;QAClB,cAAS,GAAT,SAAS,CAAY;QACrB,YAAO,GAAP,OAAO,CAAS;QAGhC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AAVD,4BAUC;AAED,SAAS,gBAAgB,CAAC,MAAc;IACtC,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,uBAAU,CAAC,aAAa,CAAC;IAClD,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,uBAAU,CAAC,YAAY,CAAC;IACnD,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,uBAAU,CAAC,KAAK,CAAC;IAC5C,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,uBAAU,CAAC,SAAS,CAAC;IAChD,OAAO,uBAAU,CAAC,KAAK,CAAC;AAC1B,CAAC"}
|
package/dist/lib/exit-codes.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"exit-codes.d.ts","sourceRoot":"","sources":["../../src/lib/exit-codes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;;;;CAOb,CAAC"}
|
package/dist/lib/exit-codes.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EXIT_CODES = void 0;
|
|
4
|
-
exports.EXIT_CODES = {
|
|
5
|
-
SUCCESS: 0,
|
|
6
|
-
ERROR: 1,
|
|
7
|
-
ABORTED: 2,
|
|
8
|
-
AUTH_FAILURE: 3,
|
|
9
|
-
NETWORK_ERROR: 4,
|
|
10
|
-
NOT_FOUND: 5,
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=exit-codes.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"exit-codes.js","sourceRoot":"","sources":["../../src/lib/exit-codes.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG;IACxB,OAAO,EAAE,CAAC;IACV,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,CAAC;IACf,aAAa,EAAE,CAAC;IAChB,SAAS,EAAE,CAAC;CACJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hidden-input.d.ts","sourceRoot":"","sources":["../../src/lib/hidden-input.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA4C/D"}
|
package/dist/lib/hidden-input.js
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
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.readHiddenInput = readHiddenInput;
|
|
37
|
-
const readline = __importStar(require("node:readline"));
|
|
38
|
-
function readHiddenInput(prompt) {
|
|
39
|
-
return new Promise((resolve, reject) => {
|
|
40
|
-
const rl = readline.createInterface({
|
|
41
|
-
input: process.stdin,
|
|
42
|
-
output: process.stdout,
|
|
43
|
-
});
|
|
44
|
-
let answered = false;
|
|
45
|
-
// Mute output
|
|
46
|
-
const stdout = process.stdout;
|
|
47
|
-
process.stdout.write(` ${prompt}`);
|
|
48
|
-
// Override _writeToOutput to mask user keystrokes only
|
|
49
|
-
// readline calls _writeToOutput for its own internal writes (prompt, question text)
|
|
50
|
-
// as well as echoed user input — we suppress the internal writes and mask keystrokes
|
|
51
|
-
let prompting = true;
|
|
52
|
-
rl._writeToOutput = function (str) {
|
|
53
|
-
if (prompting)
|
|
54
|
-
return; // suppress readline's own prompt/question echo
|
|
55
|
-
if (str.includes('\n') || str.includes('\r')) {
|
|
56
|
-
stdout.write('\n');
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
stdout.write('*');
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
// After readline finishes its internal setup, start masking user input
|
|
63
|
-
process.nextTick(() => {
|
|
64
|
-
prompting = false;
|
|
65
|
-
});
|
|
66
|
-
rl.question('', (answer) => {
|
|
67
|
-
answered = true;
|
|
68
|
-
rl.close();
|
|
69
|
-
resolve(answer.trim());
|
|
70
|
-
});
|
|
71
|
-
rl.on('close', () => {
|
|
72
|
-
if (!answered) {
|
|
73
|
-
reject(new Error('readline was closed'));
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
//# sourceMappingURL=hidden-input.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hidden-input.js","sourceRoot":"","sources":["../../src/lib/hidden-input.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,0CA4CC;AA9CD,wDAA0C;AAE1C,SAAgB,eAAe,CAAC,MAAc;IAC5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,IAAI,QAAQ,GAAG,KAAK,CAAC;QAErB,cAAc;QACd,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC;QAEpC,uDAAuD;QACvD,oFAAoF;QACpF,qFAAqF;QACrF,IAAI,SAAS,GAAG,IAAI,CAAC;QACpB,EAAU,CAAC,cAAc,GAAG,UAAU,GAAW;YAChD,IAAI,SAAS;gBAAE,OAAO,CAAC,+CAA+C;YACtE,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC,CAAC;QAEF,uEAAuE;QACvE,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;YACpB,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE;YACzB,QAAQ,GAAG,IAAI,CAAC;YAChB,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"json-output.d.ts","sourceRoot":"","sources":["../../src/lib/json-output.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAE9C"}
|
package/dist/lib/json-output.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.jsonOutput = jsonOutput;
|
|
4
|
-
/**
|
|
5
|
-
* Write JSON data to stdout (for --json flag output).
|
|
6
|
-
* Centralizes the JSON serialization pattern used by all commands.
|
|
7
|
-
*/
|
|
8
|
-
function jsonOutput(data) {
|
|
9
|
-
process.stdout.write(JSON.stringify(data) + '\n');
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=json-output.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"json-output.js","sourceRoot":"","sources":["../../src/lib/json-output.ts"],"names":[],"mappings":";;AAIA,gCAEC;AAND;;;GAGG;AACH,SAAgB,UAAU,CAAC,IAAa;IACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACpD,CAAC"}
|
package/dist/lib/logger.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
declare const isDebug: () => boolean;
|
|
2
|
-
declare const isTTY: () => boolean;
|
|
3
|
-
export declare function logHttp(method: string, path: string): void;
|
|
4
|
-
export declare function logHttpResponse(status: number, path: string): void;
|
|
5
|
-
export declare function logDebug(context: string, data: unknown): void;
|
|
6
|
-
export declare function logError(message: string, error?: unknown): void;
|
|
7
|
-
export declare function logSuccess(message: string): void;
|
|
8
|
-
export declare function logInfo(message: string): void;
|
|
9
|
-
export declare function logWarn(message: string): void;
|
|
10
|
-
export { isDebug, isTTY };
|
|
11
|
-
//# sourceMappingURL=logger.d.ts.map
|
package/dist/lib/logger.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/lib/logger.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,OAAO,QAAO,OAA8E,CAAC;AAEnG,QAAA,MAAM,KAAK,QAAO,OAAwC,CAAC;AAwC3D,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAK1D;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAMlE;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAM7D;AAsBD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAO/D;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC"}
|
package/dist/lib/logger.js
DELETED
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isTTY = exports.isDebug = void 0;
|
|
4
|
-
exports.logHttp = logHttp;
|
|
5
|
-
exports.logHttpResponse = logHttpResponse;
|
|
6
|
-
exports.logDebug = logDebug;
|
|
7
|
-
exports.logError = logError;
|
|
8
|
-
exports.logSuccess = logSuccess;
|
|
9
|
-
exports.logInfo = logInfo;
|
|
10
|
-
exports.logWarn = logWarn;
|
|
11
|
-
const isDebug = () => process.env.BREVO_DEBUG === '1' || process.argv.includes('--debug');
|
|
12
|
-
exports.isDebug = isDebug;
|
|
13
|
-
const isTTY = () => process.stdout.isTTY === true;
|
|
14
|
-
exports.isTTY = isTTY;
|
|
15
|
-
const useColor = () => process.env.NO_COLOR === undefined && (process.env.FORCE_COLOR !== undefined || isTTY());
|
|
16
|
-
function color(code, text) {
|
|
17
|
-
return useColor() ? `\x1b[${code}m${text}\x1b[0m` : text;
|
|
18
|
-
}
|
|
19
|
-
const SENSITIVE_KEYS = new Set([
|
|
20
|
-
'api-key',
|
|
21
|
-
'api_key',
|
|
22
|
-
'apikey',
|
|
23
|
-
'access_token',
|
|
24
|
-
'refresh_token',
|
|
25
|
-
'client_secret',
|
|
26
|
-
'token',
|
|
27
|
-
'password',
|
|
28
|
-
'secret',
|
|
29
|
-
'authorization',
|
|
30
|
-
]);
|
|
31
|
-
function redactSensitiveFields(data) {
|
|
32
|
-
if (data === null || data === undefined)
|
|
33
|
-
return data;
|
|
34
|
-
if (typeof data !== 'object')
|
|
35
|
-
return data;
|
|
36
|
-
if (Array.isArray(data))
|
|
37
|
-
return data.map(redactSensitiveFields);
|
|
38
|
-
const redacted = {};
|
|
39
|
-
for (const [key, value] of Object.entries(data)) {
|
|
40
|
-
if (SENSITIVE_KEYS.has(key.toLowerCase())) {
|
|
41
|
-
redacted[key] = '[REDACTED]';
|
|
42
|
-
}
|
|
43
|
-
else if (typeof value === 'object' && value !== null) {
|
|
44
|
-
redacted[key] = redactSensitiveFields(value);
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
redacted[key] = value;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
return redacted;
|
|
51
|
-
}
|
|
52
|
-
function logHttp(method, path) {
|
|
53
|
-
if (isDebug()) {
|
|
54
|
-
const line = `→ ${method} ${path}`;
|
|
55
|
-
process.stderr.write(` ${color('90', line)}\n`);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
function logHttpResponse(status, path) {
|
|
59
|
-
if (isDebug()) {
|
|
60
|
-
const code = status >= 200 && status < 300 ? '32' : '31';
|
|
61
|
-
const line = `← ${status} ${path}`;
|
|
62
|
-
process.stderr.write(` ${color(code, line)}\n`);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
function logDebug(context, data) {
|
|
66
|
-
if (isDebug()) {
|
|
67
|
-
const safe = redactSensitiveFields(data);
|
|
68
|
-
const line = `[debug] ${context}: ${JSON.stringify(safe)}`;
|
|
69
|
-
process.stderr.write(` ${color('90', line)}\n`);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
function formatError(error) {
|
|
73
|
-
if (error instanceof Error)
|
|
74
|
-
return error.stack ?? error.message;
|
|
75
|
-
if (typeof error === 'string')
|
|
76
|
-
return error;
|
|
77
|
-
if (typeof error === 'number' ||
|
|
78
|
-
typeof error === 'boolean' ||
|
|
79
|
-
typeof error === 'bigint' ||
|
|
80
|
-
typeof error === 'symbol') {
|
|
81
|
-
return String(error);
|
|
82
|
-
}
|
|
83
|
-
try {
|
|
84
|
-
// JSON.stringify returns undefined for bare `undefined` and functions.
|
|
85
|
-
return JSON.stringify(error) ?? 'undefined';
|
|
86
|
-
}
|
|
87
|
-
catch {
|
|
88
|
-
// Circular structures make JSON.stringify throw.
|
|
89
|
-
return '[unserializable error]';
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
function logError(message, error) {
|
|
93
|
-
process.stderr.write(`\n ${color('31', '✗')} ${message}\n`);
|
|
94
|
-
if (isDebug() && error) {
|
|
95
|
-
process.stderr.write(` ${color('90', formatError(error))}\n`);
|
|
96
|
-
}
|
|
97
|
-
else if (error) {
|
|
98
|
-
process.stderr.write(` ${color('90', 'Run with --debug for full details')}\n`);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
function logSuccess(message) {
|
|
102
|
-
process.stdout.write(`\n ${color('32', '✓')} ${message}\n`);
|
|
103
|
-
}
|
|
104
|
-
function logInfo(message) {
|
|
105
|
-
process.stdout.write(` ${message}\n`);
|
|
106
|
-
}
|
|
107
|
-
function logWarn(message) {
|
|
108
|
-
process.stdout.write(` ${color('33', '⚠')} ${message}\n`);
|
|
109
|
-
}
|
|
110
|
-
//# sourceMappingURL=logger.js.map
|
package/dist/lib/logger.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/lib/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import { AuthCred, OauthTokensToStore } from './config';
|
|
3
|
-
type OauthCred = Extract<AuthCred, {
|
|
4
|
-
kind: 'oauth';
|
|
5
|
-
}>;
|
|
6
|
-
export declare const OAUTH_REFRESH_SKEW_MS = 60000;
|
|
7
|
-
export interface OauthFreshnessDeps {
|
|
8
|
-
getAuthCred: () => AuthCred | undefined;
|
|
9
|
-
refresh: (refreshToken: string) => Promise<OauthTokensToStore>;
|
|
10
|
-
persist: (tokens: OauthTokensToStore) => void;
|
|
11
|
-
now?: () => number;
|
|
12
|
-
skewMs?: number;
|
|
13
|
-
onError?: (err: unknown) => void;
|
|
14
|
-
}
|
|
15
|
-
export declare function shouldRefreshOauth(auth: AuthCred | undefined, now: number, skewMs?: number): auth is OauthCred;
|
|
16
|
-
/**
|
|
17
|
-
* Proactively swap a near-expiry OAuth access token for a fresh one.
|
|
18
|
-
*
|
|
19
|
-
* Best-effort by design: every failure is swallowed (and handed to `onError`
|
|
20
|
-
* for debug logging) so a transient network blip or an unwritable credentials
|
|
21
|
-
* file never blocks the command the user actually asked for. The reactive
|
|
22
|
-
* `onAuthFailure` handler in `bin/index.ts` remains the single source of truth
|
|
23
|
-
* for clearing credentials when the refresh token is genuinely dead.
|
|
24
|
-
*
|
|
25
|
-
* Returns true only when a new token was fetched and persisted.
|
|
26
|
-
*/
|
|
27
|
-
export declare function ensureFreshOauthToken(deps: OauthFreshnessDeps): Promise<boolean>;
|
|
28
|
-
export declare function installProactiveOauthRefresh(program: Command, deps: OauthFreshnessDeps): void;
|
|
29
|
-
export {};
|
|
30
|
-
//# sourceMappingURL=oauth-freshness.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-freshness.d.ts","sourceRoot":"","sources":["../../src/lib/oauth-freshness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAExD,KAAK,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAKtD,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAE5C,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,QAAQ,GAAG,SAAS,CAAC;IACxC,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC/D,OAAO,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC9C,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CAClC;AAKD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,QAAQ,GAAG,SAAS,EAC1B,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,MAA8B,GACrC,IAAI,IAAI,SAAS,CAKnB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAatF;AAOD,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAK7F"}
|