@getbrevo/cli 2.0.1 → 2.0.2

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 CHANGED
@@ -1,5 +1,17 @@
1
1
  # @getbrevo/cli
2
2
 
3
+ ## 2.0.2
4
+
5
+ ### Patch Changes
6
+
7
+ - fb22583: Keep browser (OAuth) logins alive for as long as the refresh token is valid.
8
+
9
+ The CLI stored an access-token expiry on login but never read it, so refresh was purely reactive — it only fired after the API returned `401`, which made a short access-token TTL feel like the session itself expiring and cost every post-expiry request an extra round-trip. Commands that need credentials now check the stored expiry first and refresh the access token before it lapses (60s skew buffer), so the request goes out with a valid token.
10
+
11
+ The refresh is best-effort: if the login service is unreachable the command runs anyway with the existing token, and the reactive `401` path stays in place as the safety net and remains the only thing that clears dead credentials. Local-only commands (`login`, `logout`, `skill:cli …`, `app available-scopes`) never trigger it, so they keep working offline. No new command, flag, or environment variable.
12
+
13
+ `brevo app init` no longer announces an expired session when its credential check simply fails to verify. A network blip, a server error, or an auth gateway sitting in front of the API now leaves the stored session in place and lets setup continue, instead of warning that the session expired and opening a browser login that would fail for the same reason. Only Brevo actually refusing the credentials (`401`/`403`) sends you to log in.
14
+
3
15
  ## 2.0.1
4
16
 
5
17
  ### Patch Changes
package/dist/bin/index.js CHANGED
@@ -38,6 +38,7 @@ const fs = __importStar(require("node:fs"));
38
38
  const path = __importStar(require("node:path"));
39
39
  const commander_1 = require("commander");
40
40
  const auth_guard_1 = require("../lib/auth-guard");
41
+ const oauth_freshness_1 = require("../lib/oauth-freshness");
41
42
  const logger_1 = require("../lib/logger");
42
43
  const exit_codes_1 = require("../lib/exit-codes");
43
44
  const errors_1 = require("../lib/errors");
@@ -136,6 +137,19 @@ program
136
137
  });
137
138
  // Auth guard — blocks unauthenticated access (except login, logout, help)
138
139
  (0, auth_guard_1.installAuthGuard)(program);
140
+ // Proactive OAuth refresh — replaces a near-expiry access token before the
141
+ // command runs, so a short access-token TTL stays invisible and the session
142
+ // lives as long as the refresh token does. Best-effort: failures are logged at
143
+ // debug level and never block the command. The reactive handler below stays the
144
+ // safety net and the only place credentials get cleared.
145
+ (0, oauth_freshness_1.installProactiveOauthRefresh)(program, {
146
+ getAuthCred: config_1.getAuthCred,
147
+ refresh: (refreshToken) => (0, oauth_refresh_1.refreshAccessToken)(refreshToken, constants_1.OAUTH_PROXY_URL),
148
+ persist: config_1.updateOauthTokens,
149
+ onError: (err) => (0, logger_1.logDebug)('proactive oauth refresh skipped', {
150
+ reason: err instanceof Error ? err.message : String(err),
151
+ }),
152
+ });
139
153
  // ──────────────── Register all commands ────────────────
140
154
  (0, command_registry_1.registerAll)(program, definitions_1.topLevelCommands, [definitions_1.appCommandGroup, definitions_1.skillCommandGroup]);
141
155
  // ──────────────── Re-auth handler ────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bin/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bin/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAqEA,eAAO,MAAM,WAAW,kDAwCvB,CAAC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAmGA,eAAO,MAAM,WAAW,kDAwCvB,CAAC"}
@@ -15,6 +15,27 @@ const login_1 = require("./login");
15
15
  const create_1 = require("./app/create");
16
16
  const scaffold_1 = require("./app/scaffold");
17
17
  const container_1 = require("../container");
18
+ /**
19
+ * Did the backend reject our credentials, or did the request just not land?
20
+ *
21
+ * Only the former justifies sending the user through a login. A network blip,
22
+ * a 5xx or an unexpected throw says nothing about whether the session is valid.
23
+ *
24
+ * An auth gateway in front of the API (Cloudflare Access and friends) answers
25
+ * with its own 401/403 interstitial, which the client surfaces as
26
+ * `AUTH_GATEWAY`. That is not our credentials being refused — `brevo login`
27
+ * cannot clear it — so it belongs with the inconclusive results, where the
28
+ * real gateway error reaches the user on the next call.
29
+ */
30
+ function isAuthRejection(err) {
31
+ if (err instanceof errors_1.AuthExpiredError)
32
+ return true;
33
+ if (!(err instanceof errors_1.ApiError))
34
+ return false;
35
+ if (err.errorCode === errors_1.ErrorCode.AUTH_GATEWAY)
36
+ return false;
37
+ return err.statusCode === 401 || err.statusCode === 403;
38
+ }
18
39
  async function ensureLoggedIn() {
19
40
  if ((0, config_1.isAuthenticated)()) {
20
41
  // Local creds exist — verify they still work against the backend before
@@ -27,8 +48,19 @@ async function ensureLoggedIn() {
27
48
  (0, logger_1.logSuccess)(en_1.messages.INIT_ALREADY_LOGGED_IN);
28
49
  return;
29
50
  }
30
- catch {
51
+ catch (err) {
31
52
  spinner.stop();
53
+ if (!isAuthRejection(err)) {
54
+ // The probe is a courtesy, not a gate. Announcing "expired" and opening
55
+ // a browser here would be wrong — and would fail for the same reason
56
+ // the probe did. Carry on; the reactive 401 handler still catches
57
+ // genuinely dead credentials later in the flow.
58
+ (0, logger_1.logDebug)('init credential probe inconclusive', {
59
+ reason: err instanceof Error ? err.message : String(err),
60
+ });
61
+ (0, logger_1.logWarn)(en_1.messages.INIT_VERIFY_UNAVAILABLE);
62
+ return;
63
+ }
32
64
  (0, logger_1.logWarn)(en_1.messages.AUTH_EXPIRED);
33
65
  // Fall through to the login flow below.
34
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
package/dist/lang/en.d.ts CHANGED
@@ -116,6 +116,7 @@ export declare const messages: {
116
116
  readonly TLS_VERIFICATION_DISABLED: "TLS certificate verification is disabled (NODE_TLS_REJECT_UNAUTHORIZED=0). This is insecure — API keys and tokens can be intercepted on the network.";
117
117
  readonly INIT_WELCOME: "Brevo CLI — Quick Setup";
118
118
  readonly INIT_ALREADY_LOGGED_IN: "Already authenticated.";
119
+ readonly INIT_VERIFY_UNAVAILABLE: "Couldn't verify your credentials right now — continuing with the stored session.";
119
120
  readonly INIT_STEP_LOGIN: " Step 1: Authenticate with your Brevo account";
120
121
  readonly INIT_STEP_CREATE: " Step 2: Create your first OAuth app";
121
122
  readonly INIT_APPS_EXIST: (count: number) => string;
@@ -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;;8CAKN,MAAM,UAAU,MAAM,KAAG,MAAM;;;;;mCAQ1C,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;;;;;;oEAMC,MAAM,KAAG,MAAM;;wCAK3C,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;;;;;6CAQpB,MAAM,KAAG,MAAM;;2CAEjB,MAAM,aAAa,MAAM,KAAG,MAAM;;;;;;;;;;;;;;;;;;;;gDAsB7B,MAAM,UAAU,MAAM,KAAG,MAAM;;CAK1D,CAAC"}
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;;8CAKN,MAAM,UAAU,MAAM,KAAG,MAAM;;;;;mCAQ1C,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;;;;;;oEAMC,MAAM,KAAG,MAAM;;wCAK3C,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;;;;;;;;;sCAgBZ,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;;;;;6CAQpB,MAAM,KAAG,MAAM;;2CAEjB,MAAM,aAAa,MAAM,KAAG,MAAM;;;;;;;;;;;;;;;;;;;;gDAsB7B,MAAM,UAAU,MAAM,KAAG,MAAM;;CAK1D,CAAC"}
package/dist/lang/en.js CHANGED
@@ -139,6 +139,7 @@ exports.messages = {
139
139
  // Init
140
140
  INIT_WELCOME: 'Brevo CLI — Quick Setup',
141
141
  INIT_ALREADY_LOGGED_IN: 'Already authenticated.',
142
+ INIT_VERIFY_UNAVAILABLE: "Couldn't verify your credentials right now — continuing with the stored session.",
142
143
  INIT_STEP_LOGIN: ' Step 1: Authenticate with your Brevo account',
143
144
  INIT_STEP_CREATE: ' Step 2: Create your first OAuth app',
144
145
  INIT_APPS_EXIST: (count) => `You have ${count} app${count === 1 ? '' : 's'} already.`,
@@ -1 +1 @@
1
- {"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/lang/en.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/lang/en.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,13 @@
1
1
  import { Command } from 'commander';
2
+ /**
3
+ * True when the invocation being dispatched needs stored credentials.
4
+ *
5
+ * Shared by the auth guard and the proactive OAuth refresh hook
6
+ * (`lib/oauth-freshness.ts`) so the two can never gate on different command
7
+ * sets. Arguments match the `preAction` hook signature: `thisCommand` is the
8
+ * command the hook was registered on (the root program), `actionCommand` the
9
+ * one about to run.
10
+ */
11
+ export declare function commandRequiresAuth(thisCommand: Command, actionCommand: Command): boolean;
2
12
  export declare function installAuthGuard(program: Command): void;
3
13
  //# sourceMappingURL=auth-guard.d.ts.map
@@ -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;AAoBpC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8BvD"}
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;AAoBpC;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,GAAG,OAAO,CAsBzF;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAUvD"}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.commandRequiresAuth = commandRequiresAuth;
3
4
  exports.installAuthGuard = installAuthGuard;
4
5
  const config_1 = require("./config");
5
6
  const constants_1 = require("./constants");
@@ -18,25 +19,37 @@ const UNAUTHENTICATED_COMMANDS = new Set([
18
19
  // Skill management touches files under ~/.claude/ — there is nothing to call
19
20
  // against the Brevo API.
20
21
  const UNAUTHENTICATED_GROUPS = new Set(['skill:cli']);
22
+ /**
23
+ * True when the invocation being dispatched needs stored credentials.
24
+ *
25
+ * Shared by the auth guard and the proactive OAuth refresh hook
26
+ * (`lib/oauth-freshness.ts`) so the two can never gate on different command
27
+ * sets. Arguments match the `preAction` hook signature: `thisCommand` is the
28
+ * command the hook was registered on (the root program), `actionCommand` the
29
+ * one about to run.
30
+ */
31
+ function commandRequiresAuth(thisCommand, actionCommand) {
32
+ const commandName = actionCommand.name();
33
+ const parentName = actionCommand.parent?.name();
34
+ // The root program's default action handles "no args" (help) and
35
+ // "unknown command" (error). Skipping the auth guard there ensures
36
+ // unknown commands surface as "unknown command" instead of being
37
+ // intercepted by an auth-required check.
38
+ if (actionCommand === thisCommand || commandName === thisCommand.name()) {
39
+ return false;
40
+ }
41
+ // Allow login, help, and version through without auth
42
+ return !(UNAUTHENTICATED_COMMANDS.has(commandName) ||
43
+ (parentName && UNAUTHENTICATED_GROUPS.has(parentName)) ||
44
+ process.argv.includes('--help') ||
45
+ process.argv.includes('-h') ||
46
+ process.argv.includes('--version') ||
47
+ process.argv.includes('-V') ||
48
+ process.argv.length <= 2);
49
+ }
21
50
  function installAuthGuard(program) {
22
51
  program.hook('preAction', (thisCommand, actionCommand) => {
23
- const commandName = actionCommand.name();
24
- const parentName = actionCommand.parent?.name();
25
- // The root program's default action handles "no args" (help) and
26
- // "unknown command" (error). Skipping the auth guard there ensures
27
- // unknown commands surface as "unknown command" instead of being
28
- // intercepted by an auth-required check.
29
- if (actionCommand === thisCommand || commandName === program.name()) {
30
- return;
31
- }
32
- // Allow login, help, and version through without auth
33
- if (UNAUTHENTICATED_COMMANDS.has(commandName) ||
34
- (parentName && UNAUTHENTICATED_GROUPS.has(parentName)) ||
35
- process.argv.includes('--help') ||
36
- process.argv.includes('-h') ||
37
- process.argv.includes('--version') ||
38
- process.argv.includes('-V') ||
39
- process.argv.length <= 2) {
52
+ if (!commandRequiresAuth(thisCommand, actionCommand)) {
40
53
  return;
41
54
  }
42
55
  if (!(0, config_1.isAuthenticated)()) {
@@ -1 +1 @@
1
- {"version":3,"file":"auth-guard.js","sourceRoot":"","sources":["../../src/lib/auth-guard.ts"],"names":[],"mappings":";;AAoBA,4CA8BC;AAjDD,qCAA2C;AAC3C,2CAAkC;AAClC,qCAAoC;AAEpC,6EAA6E;AAC7E,mDAAmD;AACnD,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC;IACvC,OAAO;IACP,MAAM;IACN,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,kBAAkB;CACnB,CAAC,CAAC;AACH,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"}
1
+ {"version":3,"file":"auth-guard.js","sourceRoot":"","sources":["../../src/lib/auth-guard.ts"],"names":[],"mappings":";;AA6BA,kDAsBC;AAED,4CAUC;AA9DD,qCAA2C;AAC3C,2CAAkC;AAClC,qCAAoC;AAEpC,6EAA6E;AAC7E,mDAAmD;AACnD,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC;IACvC,OAAO;IACP,MAAM;IACN,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,kBAAkB;CACnB,CAAC,CAAC;AACH,6EAA6E;AAC7E,6EAA6E;AAC7E,yBAAyB;AACzB,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;AAEtD;;;;;;;;GAQG;AACH,SAAgB,mBAAmB,CAAC,WAAoB,EAAE,aAAsB;IAC9E,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;IACzC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;IAEhD,iEAAiE;IACjE,mEAAmE;IACnE,iEAAiE;IACjE,yCAAyC;IACzC,IAAI,aAAa,KAAK,WAAW,IAAI,WAAW,KAAK,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,sDAAsD;IACtD,OAAO,CAAC,CACN,wBAAwB,CAAC,GAAG,CAAC,WAAW,CAAC;QACzC,CAAC,UAAU,IAAI,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CACzB,CAAC;AACJ,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAgB;IAC/C,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,EAAE;QACvD,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,CAAC;YACrD,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"}
@@ -0,0 +1,30 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OAUTH_REFRESH_SKEW_MS = void 0;
4
+ exports.shouldRefreshOauth = shouldRefreshOauth;
5
+ exports.ensureFreshOauthToken = ensureFreshOauthToken;
6
+ exports.installProactiveOauthRefresh = installProactiveOauthRefresh;
7
+ const auth_guard_1 = require("./auth-guard");
8
+ // Refresh this far ahead of `expiresAt`. Covers clock skew between the CLI host
9
+ // and the IdP plus the round-trip of the request the token is about to be used
10
+ // for, so a token that would expire mid-flight is replaced first.
11
+ exports.OAUTH_REFRESH_SKEW_MS = 60_000;
12
+ // True when `auth` is an OAuth credential whose access token is expired or
13
+ // about to be. Doubles as a type guard so callers get the narrowed credential
14
+ // (and its `refreshToken`) without a cast.
15
+ function shouldRefreshOauth(auth, now, skewMs = exports.OAUTH_REFRESH_SKEW_MS) {
16
+ if (auth?.kind !== 'oauth')
17
+ return false;
18
+ if (!auth.refreshToken)
19
+ return false;
20
+ if (!Number.isFinite(auth.expiresAt))
21
+ return false;
22
+ return auth.expiresAt - skewMs <= now;
23
+ }
24
+ /**
25
+ * Proactively swap a near-expiry OAuth access token for a fresh one.
26
+ *
27
+ * Best-effort by design: every failure is swallowed (and handed to `onError`
28
+ * for debug logging) so a transient network blip or an unwritable credentials
29
+ * file never blocks the command the user actually asked for. The reactive
30
+ * `onAuthFailure` handler in `bin/index.ts` remains the single source of truth
31
+ * for clearing credentials when the refresh token is genuinely dead.
32
+ *
33
+ * Returns true only when a new token was fetched and persisted.
34
+ */
35
+ async function ensureFreshOauthToken(deps) {
36
+ const auth = deps.getAuthCred();
37
+ const now = deps.now ? deps.now() : Date.now();
38
+ if (!shouldRefreshOauth(auth, now, deps.skewMs))
39
+ return false;
40
+ try {
41
+ deps.persist(await deps.refresh(auth.refreshToken));
42
+ return true;
43
+ }
44
+ catch (err) {
45
+ deps.onError?.(err);
46
+ return false;
47
+ }
48
+ }
49
+ // Registers the proactive refresh as a `preAction` hook, gated to exactly the
50
+ // commands the auth guard protects — local-only commands (`login`, `logout`,
51
+ // `skill:cli …`) must keep working offline, so they never trigger a network
52
+ // call. Register after `installAuthGuard` so an unauthenticated invocation
53
+ // still fails fast on the guard.
54
+ function installProactiveOauthRefresh(program, deps) {
55
+ program.hook('preAction', async (thisCommand, actionCommand) => {
56
+ if (!(0, auth_guard_1.commandRequiresAuth)(thisCommand, actionCommand))
57
+ return;
58
+ await ensureFreshOauthToken(deps);
59
+ });
60
+ }
61
+ //# sourceMappingURL=oauth-freshness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-freshness.js","sourceRoot":"","sources":["../../src/lib/oauth-freshness.ts"],"names":[],"mappings":";;;AAuBA,gDASC;AAaD,sDAaC;AAOD,oEAKC;AArED,6CAAmD;AAKnD,gFAAgF;AAChF,+EAA+E;AAC/E,kEAAkE;AACrD,QAAA,qBAAqB,GAAG,MAAM,CAAC;AAW5C,2EAA2E;AAC3E,8EAA8E;AAC9E,2CAA2C;AAC3C,SAAgB,kBAAkB,CAChC,IAA0B,EAC1B,GAAW,EACX,SAAiB,6BAAqB;IAEtC,IAAI,IAAI,EAAE,IAAI,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACzC,IAAI,CAAC,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IACnD,OAAO,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,GAAG,CAAC;AACxC,CAAC;AAED;;;;;;;;;;GAUG;AACI,KAAK,UAAU,qBAAqB,CAAC,IAAwB;IAClE,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IAE/C,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAE9D,IAAI,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,6EAA6E;AAC7E,4EAA4E;AAC5E,2EAA2E;AAC3E,iCAAiC;AACjC,SAAgB,4BAA4B,CAAC,OAAgB,EAAE,IAAwB;IACrF,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE;QAC7D,IAAI,CAAC,IAAA,gCAAmB,EAAC,WAAW,EAAE,aAAa,CAAC;YAAE,OAAO;QAC7D,MAAM,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getbrevo/cli",
3
- "version": "2.0.1",
3
+ "version": "2.0.2",
4
4
  "author": "Brevo",
5
5
  "description": "Brevo Developer CLI — create, manage apps and OAuth integrations",
6
6
  "type": "commonjs",