@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 +12 -0
- package/dist/bin/index.js +14 -0
- package/dist/bin/index.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +33 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/lang/en.d.ts +1 -0
- package/dist/lang/en.d.ts.map +1 -1
- package/dist/lang/en.js +1 -0
- package/dist/lang/en.js.map +1 -1
- package/dist/lib/auth-guard.d.ts +10 -0
- package/dist/lib/auth-guard.d.ts.map +1 -1
- package/dist/lib/auth-guard.js +30 -17
- package/dist/lib/auth-guard.js.map +1 -1
- package/dist/lib/oauth-freshness.d.ts +30 -0
- package/dist/lib/oauth-freshness.d.ts.map +1 -0
- package/dist/lib/oauth-freshness.js +61 -0
- package/dist/lib/oauth-freshness.js.map +1 -0
- package/package.json +1 -1
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 ────────────────
|
package/dist/bin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bin/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,4CAA8B;AAC9B,gDAAkC;AAClC,yCAAoC;AACpC,kDAAqD;AACrD,
|
|
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":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAmGA,eAAO,MAAM,WAAW,kDAwCvB,CAAC"}
|
package/dist/commands/init.js
CHANGED
|
@@ -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":";;;;;;AAAA,wDAAgC;AAChC,0CAAmE;AACnE,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAChC,0CAAmE;AACnE,0CAAuE;AACvE,kCAA0C;AAC1C,mCAAsC;AACtC,0CAAgF;AAChF,4DAA4D;AAC5D,mCAAuC;AACvC,yCAA6C;AAC7C,6CAAiD;AACjD,4CAA0D;AAE1D;;;;;;;;;;;GAWG;AACH,SAAS,eAAe,CAAC,GAAY;IACnC,IAAI,GAAG,YAAY,yBAAgB;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,CAAC,CAAC,GAAG,YAAY,iBAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,GAAG,CAAC,SAAS,KAAK,kBAAS,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IAC3D,OAAO,GAAG,CAAC,UAAU,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,CAAC;AAC1D,CAAC;AAED,KAAK,UAAU,cAAc;IAC3B,IAAI,IAAA,wBAAe,GAAE,EAAE,CAAC;QACtB,wEAAwE;QACxE,yEAAyE;QACzE,wEAAwE;QACxE,MAAM,OAAO,GAAG,IAAA,kBAAa,EAAC,0BAA0B,CAAC,CAAC;QAC1D,IAAI,CAAC;YACH,MAAM,0BAAc,CAAC,UAAU,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,IAAA,mBAAU,EAAC,aAAQ,CAAC,sBAAsB,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,wEAAwE;gBACxE,qEAAqE;gBACrE,kEAAkE;gBAClE,gDAAgD;gBAChD,IAAA,iBAAQ,EAAC,oCAAoC,EAAE;oBAC7C,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACzD,CAAC,CAAC;gBACH,IAAA,gBAAO,EAAC,aAAQ,CAAC,uBAAuB,CAAC,CAAC;gBAC1C,OAAO;YACT,CAAC;YACD,IAAA,gBAAO,EAAC,aAAQ,CAAC,YAAY,CAAC,CAAC;YAC/B,wCAAwC;QAC1C,CAAC;IACH,CAAC;IACD,IAAA,gBAAO,EAAC,aAAQ,CAAC,eAAe,CAAC,CAAC;IAClC,MAAM,IAAA,oBAAY,EAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC,IAAA,wBAAe,GAAE,EAAE,CAAC;QACvB,MAAM,IAAI,iBAAQ,CAAC,eAAe,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,KAAa;IAC5C,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,OAAO,GAAG,IAAA,kBAAa,EAAC,kBAAkB,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,sBAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7C,OAAO,GAAG,KAAK,IAAI,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,WAAmB,EACnB,UAAkB;IAElB,IAAA,mBAAU,EAAC,aAAQ,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;IACjD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;QACvC;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,aAAQ,CAAC,eAAe;YACjC,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,UAAU,EAAE;gBAChD,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,QAAQ,EAAE;gBAC7C,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,EAAE;aAC9C;SACF;KACF,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAEY,QAAA,WAAW,GAAG,IAAA,oCAAkB,EAC3C,KAAK,EAAE,QAAiC,EAAiB,EAAE;IACzD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,aAAQ,CAAC,YAAY,IAAI,CAAC,CAAC;IACvD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAErE,MAAM,cAAc,EAAE,CAAC;IAEvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,aAAa,GAAG,IAAA,0BAAiB,GAAE,CAAC;IAC1C,MAAM,WAAW,GAAG,OAAO,aAAa,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/F,MAAM,UAAU,GAAG,aAAa,EAAE,OAAO,IAAI,WAAW,CAAC;IAEzD,IAAI,WAAW,IAAI,CAAC,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAEpE,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,IAAA,gBAAO,EAAC,OAAO,aAAQ,CAAC,SAAS,IAAI,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QAED,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;YAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,IAAA,0BAAe,EAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YAC9C,IAAA,gBAAO,EAAC,OAAO,aAAQ,CAAC,SAAS,IAAI,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QACD,qCAAqC;IACvC,CAAC;SAAM,IAAI,WAAW,EAAE,CAAC;QACvB,IAAA,gBAAO,EACL,QAAQ,UAAU,oFAAoF,CACvG,CAAC;QACF,IAAA,gBAAO,EAAC,aAAQ,CAAC,gBAAgB,CAAC,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,IAAA,gBAAO,EAAC,aAAQ,CAAC,gBAAgB,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,IAAA,sBAAa,EAAC,EAAE,CAAC,CAAC;IACxB,IAAA,gBAAO,EAAC,OAAO,aAAQ,CAAC,SAAS,IAAI,CAAC,CAAC;AACzC,CAAC,CACF,CAAC"}
|
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;
|
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;;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
|
|
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.`,
|
package/dist/lang/en.js.map
CHANGED
|
@@ -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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"}
|
package/dist/lib/auth-guard.d.ts
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/lib/auth-guard.js
CHANGED
|
@@ -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
|
-
|
|
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":";;
|
|
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"}
|