@hearth-auth/node 1.0.19 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"client.test.js","sourceRoot":"","sources":["../src/client.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.test.js","sourceRoot":"","sources":["../src/client.test.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export interface OidcDiscovery {
5
5
  introspection_endpoint?: string;
6
6
  authorization_endpoint?: string;
7
7
  token_endpoint?: string;
8
+ device_authorization_endpoint?: string;
8
9
  userinfo_endpoint?: string;
9
10
  [key: string]: unknown;
10
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAIlF,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,qBAAa,eAAe;IAKxB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAL9B,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,YAAY,CAAuC;gBAGxC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM;IAGhC,QAAQ,IAAI,OAAO,CAAC,aAAa,CAAC;YAgB1B,cAAc;IA0B5B,gFAAgF;IAChF,KAAK,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAIlF,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,qBAAa,eAAe;IAKxB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAL9B,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,YAAY,CAAuC;gBAGxC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM;IAGhC,QAAQ,IAAI,OAAO,CAAC,aAAa,CAAC;YAgB1B,cAAc;IA0B5B,gFAAgF;IAChF,KAAK,IAAI,IAAI;CAGd"}
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAElF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAY7C,MAAM,OAAO,eAAe;IAKP;IACA;IALX,KAAK,GAAyB,IAAI,CAAC;IACnC,YAAY,GAAkC,IAAI,CAAC;IAE3D,YACmB,SAAiB,EACjB,WAAmB;QADnB,cAAS,GAAT,SAAS,CAAQ;QACjB,gBAAW,GAAX,WAAW,CAAQ;IACnC,CAAC;IAEJ,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC;QAClC,+BAA+B;QAC/B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBACrD,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;gBACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,OAAO,GAAG,CAAC;YACb,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACf,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,MAAM,GAAG,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,mCAAmC,CAAC;QACjE,IAAI,GAAa,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACrE,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YACtD,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,cAAc,CAAC,gCAAgC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,cAAc,CAAC,gCAAgC,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC;QACjF,CAAC;QACD,IAAI,GAAkB,CAAC;QACvB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,EAAmB,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,cAAc,CAAC,2CAA2C,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACxF,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,cAAc,CAAC,0DAA0D,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,gFAAgF;IAChF,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;CACF"}
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAElF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAa7C,MAAM,OAAO,eAAe;IAKP;IACA;IALX,KAAK,GAAyB,IAAI,CAAC;IACnC,YAAY,GAAkC,IAAI,CAAC;IAE3D,YACmB,SAAiB,EACjB,WAAmB;QADnB,cAAS,GAAT,SAAS,CAAQ;QACjB,gBAAW,GAAX,WAAW,CAAQ;IACnC,CAAC;IAEJ,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC;QAClC,+BAA+B;QAC/B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBACrD,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;gBACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,OAAO,GAAG,CAAC;YACb,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACf,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,MAAM,GAAG,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,mCAAmC,CAAC;QACjE,IAAI,GAAa,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACrE,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YACtD,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,cAAc,CAAC,gCAAgC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,cAAc,CAAC,gCAAgC,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC;QACjF,CAAC;QACD,IAAI,GAAkB,CAAC;QACvB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,EAAmB,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,cAAc,CAAC,2CAA2C,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACxF,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,cAAc,CAAC,0DAA0D,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,gFAAgF;IAChF,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;CACF"}
package/dist/errors.d.ts CHANGED
@@ -117,4 +117,17 @@ export declare class AdminHttpError extends HearthError {
117
117
  cause?: unknown;
118
118
  });
119
119
  }
120
+ /**
121
+ * Typed HTTP error for OAuth flow operations (token exchange, device flow, magic-link, etc.)
122
+ * that return non-2xx responses not covered by the standard error taxonomy.
123
+ *
124
+ * HTTP 429 from `requestMagicLink` is surfaced as this error (spec §4.5.3).
125
+ */
126
+ export declare class OAuthFlowError extends HearthError {
127
+ /** HTTP status code from the server response; 0 for network-level failures. */
128
+ readonly statusCode: number;
129
+ constructor(statusCode: number, message: string, options?: {
130
+ cause?: unknown;
131
+ });
132
+ }
120
133
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/dist/errors.js CHANGED
@@ -169,4 +169,18 @@ export class AdminHttpError extends HearthError {
169
169
  this.status = status;
170
170
  }
171
171
  }
172
+ /**
173
+ * Typed HTTP error for OAuth flow operations (token exchange, device flow, magic-link, etc.)
174
+ * that return non-2xx responses not covered by the standard error taxonomy.
175
+ *
176
+ * HTTP 429 from `requestMagicLink` is surfaced as this error (spec §4.5.3).
177
+ */
178
+ export class OAuthFlowError extends HearthError {
179
+ /** HTTP status code from the server response; 0 for network-level failures. */
180
+ statusCode;
181
+ constructor(statusCode, message, options) {
182
+ super(message, options);
183
+ this.statusCode = statusCode;
184
+ }
185
+ }
172
186
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,181 @@
1
+ /**
2
+ * §4.5 — OAuth flow helpers: exchangeCode, clientCredentials, device flow,
3
+ * magic-link, userinfo, /me/permissions, and session-version feed.
4
+ */
5
+ import type { ResolvedConfig } from "./config.js";
6
+ import type { OidcDiscovery } from "./discovery.js";
7
+ /** Standard OAuth 2.0 token endpoint response. */
8
+ export interface TokenResponse {
9
+ access_token: string;
10
+ token_type: string;
11
+ expires_in: number;
12
+ refresh_token?: string;
13
+ scope?: string;
14
+ id_token?: string;
15
+ }
16
+ /** RFC 8628 device authorization response. */
17
+ export interface DeviceAuthorizationResponse {
18
+ device_code: string;
19
+ user_code: string;
20
+ verification_uri: string;
21
+ /** Pre-filled URI (when provided by server). */
22
+ verification_uri_complete?: string;
23
+ expires_in: number;
24
+ /** Minimum polling interval in seconds. */
25
+ interval: number;
26
+ }
27
+ /** OIDC userinfo endpoint response. */
28
+ export interface UserInfoResponse {
29
+ sub: string;
30
+ name?: string;
31
+ email?: string;
32
+ email_verified?: boolean;
33
+ preferred_username?: string;
34
+ [key: string]: unknown;
35
+ }
36
+ /**
37
+ * Live RBAC state from `GET /v1/me/permissions`.
38
+ * Unlike JWT claims (which are cached), this reflects the server's current assignments.
39
+ */
40
+ export interface MePermissionsResponse {
41
+ roles: string[];
42
+ groups: string[];
43
+ permissions: string[];
44
+ scope?: string;
45
+ }
46
+ /** A single session-version bump event (HEA-930). */
47
+ export interface SvDeltaEntry {
48
+ seq: number;
49
+ session_id: string;
50
+ min_sv: number;
51
+ bumped_at?: number;
52
+ }
53
+ /** Response from `GET /oauth/session-versions?since=<seq>` (HEA-930). */
54
+ export interface SvDeltaResponse {
55
+ realm: string;
56
+ next_seq: number;
57
+ deltas: SvDeltaEntry[];
58
+ }
59
+ /** Response from `GET /oauth/session-versions/snapshot` (HEA-930). */
60
+ export interface SvSnapshotResponse {
61
+ realm: string;
62
+ current_seq: number;
63
+ versions: Record<string, number>;
64
+ }
65
+ /** Options for the `exchangeCode` method. */
66
+ export interface ExchangeCodeOptions {
67
+ /** PKCE verifier from `generatePkce()`. Required when the auth request included a code_challenge. */
68
+ codeVerifier?: string;
69
+ }
70
+ /**
71
+ * Handles OAuth 2.0 flows, userinfo, /me/permissions, and the session-version feed.
72
+ * Discovers all endpoint URLs from OIDC discovery — no hard-coded paths.
73
+ */
74
+ export declare class OAuthFlowsClient {
75
+ private readonly config;
76
+ private readonly getDiscovery;
77
+ private readonly timeout;
78
+ constructor(config: ResolvedConfig, getDiscovery: () => Promise<OidcDiscovery>);
79
+ private getTokenEndpoint;
80
+ private getDeviceAuthEndpoint;
81
+ private getUserInfoEndpoint;
82
+ /** POST application/x-www-form-urlencoded; decode JSON response. */
83
+ private postForm;
84
+ /** GET with Bearer token; returns null on 204 No Content. */
85
+ private getWithBearer;
86
+ /**
87
+ * Exchange an authorization code for tokens (RFC 6749 §4.1.3).
88
+ *
89
+ * Discovers the token endpoint from OIDC discovery. Sends credentials as
90
+ * `application/x-www-form-urlencoded` — never as query parameters.
91
+ *
92
+ * @param code - Authorization code from the callback URL.
93
+ * @param redirectUri - The same redirect_uri used in the authorization request.
94
+ * @param opts - Optional PKCE verifier (`codeVerifier`) for PKCE-protected flows.
95
+ */
96
+ exchangeCode(code: string, redirectUri: string, opts?: ExchangeCodeOptions): Promise<TokenResponse>;
97
+ /**
98
+ * Obtain a token using the Client Credentials grant (RFC 6749 §4.4).
99
+ *
100
+ * Required for M2M authentication (services, daemons, admin tooling acting as
101
+ * their own principal). Credentials are sent in the POST body, never in the URL.
102
+ *
103
+ * @param scope - Optional space-delimited scope string.
104
+ */
105
+ clientCredentials(scope?: string): Promise<TokenResponse>;
106
+ /**
107
+ * Begin a Device Authorization Flow (RFC 8628).
108
+ *
109
+ * Returns the `device_code`, `user_code`, `verification_uri`, and `interval`.
110
+ * Present the `user_code` and `verification_uri` to the user, then call
111
+ * `pollDeviceToken(device_code, interval)` to await approval.
112
+ *
113
+ * @param scope - Optional space-delimited scope string.
114
+ */
115
+ startDeviceFlow(scope?: string): Promise<DeviceAuthorizationResponse>;
116
+ /**
117
+ * Poll the token endpoint until the device flow completes (RFC 8628 §3.5).
118
+ *
119
+ * Blocks until:
120
+ * - User approves → resolves with `TokenResponse`.
121
+ * - Device code expires → rejects with `TokenExpiredError`.
122
+ * - Fatal error → rejects with `OAuthFlowError`.
123
+ *
124
+ * Handles `authorization_pending` by continuing to poll without surfacing
125
+ * an error to the caller. Handles `slow_down` by increasing the interval
126
+ * by 5 s per occurrence as required by RFC 8628 §3.5.
127
+ *
128
+ * @param deviceCode - The `device_code` from `startDeviceFlow()`.
129
+ * @param intervalSeconds - Initial polling interval from `startDeviceFlow().interval`.
130
+ */
131
+ pollDeviceToken(deviceCode: string, intervalSeconds: number): Promise<TokenResponse>;
132
+ /**
133
+ * Send a magic-link email for passwordless sign-in (spec §4.5.3).
134
+ *
135
+ * Per enumeration-resistance requirements, the server always returns 202
136
+ * regardless of whether the email is registered. This method always
137
+ * succeeds on 202 — it does NOT surface "user not found" errors.
138
+ * HTTP 429 (Too Many Requests) is surfaced as `OAuthFlowError`.
139
+ *
140
+ * Requires `realm_id` in the HearthConfig.
141
+ *
142
+ * @param email - Email address to send the magic link to.
143
+ */
144
+ requestMagicLink(email: string): Promise<void>;
145
+ /**
146
+ * Fetch the OIDC userinfo claims for the bearer token (discovered endpoint).
147
+ *
148
+ * @param token - Access token whose claims to retrieve.
149
+ */
150
+ userinfo(token: string): Promise<UserInfoResponse>;
151
+ /**
152
+ * Fetch the current user's live RBAC state from `GET /v1/me/permissions`.
153
+ *
154
+ * Unlike JWT embedded claims (cached at issuance), this reflects the server's
155
+ * current role and group assignments.
156
+ *
157
+ * @param token - Access token of the user whose permissions to retrieve.
158
+ */
159
+ mePermissions(token: string): Promise<MePermissionsResponse>;
160
+ /**
161
+ * Fetch the full session-version snapshot (HEA-930).
162
+ *
163
+ * Returns all current `{sessionId → minSV}` pairs. Used to seed a local
164
+ * session-version cache on startup. Requires a token with `hearth.sv_feed` scope.
165
+ *
166
+ * @param token - Service token with `hearth.sv_feed` scope.
167
+ */
168
+ svSnapshot(token: string): Promise<SvSnapshotResponse>;
169
+ /**
170
+ * Fetch session-version deltas since sequence number `since` (HEA-930).
171
+ *
172
+ * Returns `null` when there are no new deltas (HTTP 204 No Content).
173
+ * Requires a token with `hearth.sv_feed` scope.
174
+ *
175
+ * @param token - Service token with `hearth.sv_feed` scope.
176
+ * @param since - Return only events with `seq > since`.
177
+ * @param limit - Maximum number of deltas to return (server default applies when omitted).
178
+ */
179
+ svDelta(token: string, since: number, limit?: number): Promise<SvDeltaResponse | null>;
180
+ }
181
+ //# sourceMappingURL=flows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flows.d.ts","sourceRoot":"","sources":["../src/flows.ts"],"names":[],"mappings":"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"}
package/dist/flows.js ADDED
@@ -0,0 +1,332 @@
1
+ /**
2
+ * §4.5 — OAuth flow helpers: exchangeCode, clientCredentials, device flow,
3
+ * magic-link, userinfo, /me/permissions, and session-version feed.
4
+ */
5
+ import { ConfigurationError, OAuthFlowError, TokenExpiredError } from "./errors.js";
6
+ // ── OAuthFlowsClient ──────────────────────────────────────────────────────────
7
+ /**
8
+ * Handles OAuth 2.0 flows, userinfo, /me/permissions, and the session-version feed.
9
+ * Discovers all endpoint URLs from OIDC discovery — no hard-coded paths.
10
+ */
11
+ export class OAuthFlowsClient {
12
+ config;
13
+ getDiscovery;
14
+ timeout;
15
+ constructor(config, getDiscovery) {
16
+ this.config = config;
17
+ this.getDiscovery = getDiscovery;
18
+ this.timeout = config.http_timeout;
19
+ }
20
+ // ── Discovery helpers ──────────────────────────────────────────────────────
21
+ async getTokenEndpoint() {
22
+ const doc = await this.getDiscovery();
23
+ if (!doc.token_endpoint) {
24
+ throw new ConfigurationError("token_endpoint not found in OIDC discovery document");
25
+ }
26
+ return doc.token_endpoint;
27
+ }
28
+ async getDeviceAuthEndpoint() {
29
+ const doc = await this.getDiscovery();
30
+ if (!doc.device_authorization_endpoint) {
31
+ throw new ConfigurationError("device_authorization_endpoint not found in OIDC discovery document");
32
+ }
33
+ return doc.device_authorization_endpoint;
34
+ }
35
+ async getUserInfoEndpoint() {
36
+ const doc = await this.getDiscovery();
37
+ if (!doc.userinfo_endpoint) {
38
+ throw new ConfigurationError("userinfo_endpoint not found in OIDC discovery document");
39
+ }
40
+ return doc.userinfo_endpoint;
41
+ }
42
+ // ── HTTP primitives ────────────────────────────────────────────────────────
43
+ /** POST application/x-www-form-urlencoded; decode JSON response. */
44
+ async postForm(endpoint, params) {
45
+ const body = new URLSearchParams(params);
46
+ const controller = new AbortController();
47
+ const timer = setTimeout(() => controller.abort(), this.timeout);
48
+ let res;
49
+ try {
50
+ res = await fetch(endpoint, {
51
+ method: "POST",
52
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
53
+ body,
54
+ signal: controller.signal,
55
+ });
56
+ }
57
+ catch (err) {
58
+ throw new OAuthFlowError(0, `Request failed: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
59
+ }
60
+ finally {
61
+ clearTimeout(timer);
62
+ }
63
+ if (!res.ok) {
64
+ let message = `HTTP ${res.status}`;
65
+ try {
66
+ const json = (await res.json());
67
+ if (typeof json.error === "string") {
68
+ message = json.error;
69
+ if (typeof json.error_description === "string") {
70
+ message += `: ${json.error_description}`;
71
+ }
72
+ }
73
+ }
74
+ catch { /* ignore parse failure */ }
75
+ throw new OAuthFlowError(res.status, message);
76
+ }
77
+ return res.json();
78
+ }
79
+ /** GET with Bearer token; returns null on 204 No Content. */
80
+ async getWithBearer(endpoint, token, params) {
81
+ let url = endpoint;
82
+ if (params) {
83
+ const u = new URL(endpoint);
84
+ for (const [k, v] of Object.entries(params))
85
+ u.searchParams.set(k, v);
86
+ url = u.toString();
87
+ }
88
+ const controller = new AbortController();
89
+ const timer = setTimeout(() => controller.abort(), this.timeout);
90
+ let res;
91
+ try {
92
+ res = await fetch(url, {
93
+ headers: { Authorization: `Bearer ${token}` },
94
+ signal: controller.signal,
95
+ });
96
+ }
97
+ catch (err) {
98
+ throw new OAuthFlowError(0, `Request failed: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
99
+ }
100
+ finally {
101
+ clearTimeout(timer);
102
+ }
103
+ if (res.status === 204)
104
+ return null;
105
+ if (!res.ok) {
106
+ throw new OAuthFlowError(res.status, `HTTP ${res.status}`);
107
+ }
108
+ return res.json();
109
+ }
110
+ // ── Public API ─────────────────────────────────────────────────────────────
111
+ /**
112
+ * Exchange an authorization code for tokens (RFC 6749 §4.1.3).
113
+ *
114
+ * Discovers the token endpoint from OIDC discovery. Sends credentials as
115
+ * `application/x-www-form-urlencoded` — never as query parameters.
116
+ *
117
+ * @param code - Authorization code from the callback URL.
118
+ * @param redirectUri - The same redirect_uri used in the authorization request.
119
+ * @param opts - Optional PKCE verifier (`codeVerifier`) for PKCE-protected flows.
120
+ */
121
+ async exchangeCode(code, redirectUri, opts) {
122
+ const endpoint = await this.getTokenEndpoint();
123
+ const params = {
124
+ grant_type: "authorization_code",
125
+ code,
126
+ redirect_uri: redirectUri,
127
+ client_id: this.config.client_id,
128
+ client_secret: this.config.client_secret,
129
+ };
130
+ if (opts?.codeVerifier)
131
+ params.code_verifier = opts.codeVerifier;
132
+ return this.postForm(endpoint, params);
133
+ }
134
+ /**
135
+ * Obtain a token using the Client Credentials grant (RFC 6749 §4.4).
136
+ *
137
+ * Required for M2M authentication (services, daemons, admin tooling acting as
138
+ * their own principal). Credentials are sent in the POST body, never in the URL.
139
+ *
140
+ * @param scope - Optional space-delimited scope string.
141
+ */
142
+ async clientCredentials(scope) {
143
+ const endpoint = await this.getTokenEndpoint();
144
+ const params = {
145
+ grant_type: "client_credentials",
146
+ client_id: this.config.client_id,
147
+ client_secret: this.config.client_secret,
148
+ };
149
+ if (scope)
150
+ params.scope = scope;
151
+ return this.postForm(endpoint, params);
152
+ }
153
+ /**
154
+ * Begin a Device Authorization Flow (RFC 8628).
155
+ *
156
+ * Returns the `device_code`, `user_code`, `verification_uri`, and `interval`.
157
+ * Present the `user_code` and `verification_uri` to the user, then call
158
+ * `pollDeviceToken(device_code, interval)` to await approval.
159
+ *
160
+ * @param scope - Optional space-delimited scope string.
161
+ */
162
+ async startDeviceFlow(scope) {
163
+ const endpoint = await this.getDeviceAuthEndpoint();
164
+ const params = { client_id: this.config.client_id };
165
+ if (scope)
166
+ params.scope = scope;
167
+ return this.postForm(endpoint, params);
168
+ }
169
+ /**
170
+ * Poll the token endpoint until the device flow completes (RFC 8628 §3.5).
171
+ *
172
+ * Blocks until:
173
+ * - User approves → resolves with `TokenResponse`.
174
+ * - Device code expires → rejects with `TokenExpiredError`.
175
+ * - Fatal error → rejects with `OAuthFlowError`.
176
+ *
177
+ * Handles `authorization_pending` by continuing to poll without surfacing
178
+ * an error to the caller. Handles `slow_down` by increasing the interval
179
+ * by 5 s per occurrence as required by RFC 8628 §3.5.
180
+ *
181
+ * @param deviceCode - The `device_code` from `startDeviceFlow()`.
182
+ * @param intervalSeconds - Initial polling interval from `startDeviceFlow().interval`.
183
+ */
184
+ async pollDeviceToken(deviceCode, intervalSeconds) {
185
+ const endpoint = await this.getTokenEndpoint();
186
+ let intervalMs = intervalSeconds * 1000;
187
+ // eslint-disable-next-line no-constant-condition
188
+ while (true) {
189
+ await new Promise((resolve) => setTimeout(resolve, intervalMs));
190
+ const body = new URLSearchParams({
191
+ grant_type: "urn:ietf:params:oauth:grant-type:device_code",
192
+ device_code: deviceCode,
193
+ client_id: this.config.client_id,
194
+ });
195
+ const controller = new AbortController();
196
+ const timer = setTimeout(() => controller.abort(), this.timeout);
197
+ let res;
198
+ try {
199
+ res = await fetch(endpoint, {
200
+ method: "POST",
201
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
202
+ body,
203
+ signal: controller.signal,
204
+ });
205
+ }
206
+ catch (err) {
207
+ throw new OAuthFlowError(0, `Device token poll failed: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
208
+ }
209
+ finally {
210
+ clearTimeout(timer);
211
+ }
212
+ if (res.ok) {
213
+ return res.json();
214
+ }
215
+ let errorCode = "";
216
+ try {
217
+ const json = (await res.json());
218
+ errorCode = typeof json.error === "string" ? json.error : "";
219
+ }
220
+ catch { /* ignore */ }
221
+ if (errorCode === "authorization_pending") {
222
+ continue;
223
+ }
224
+ if (errorCode === "slow_down") {
225
+ intervalMs += 5000;
226
+ continue;
227
+ }
228
+ if (errorCode === "expired_token") {
229
+ throw new TokenExpiredError(new Date(), { cause: new Error("device code expired") });
230
+ }
231
+ throw new OAuthFlowError(res.status, `Device token poll failed: ${errorCode || `HTTP ${res.status}`}`);
232
+ }
233
+ }
234
+ /**
235
+ * Send a magic-link email for passwordless sign-in (spec §4.5.3).
236
+ *
237
+ * Per enumeration-resistance requirements, the server always returns 202
238
+ * regardless of whether the email is registered. This method always
239
+ * succeeds on 202 — it does NOT surface "user not found" errors.
240
+ * HTTP 429 (Too Many Requests) is surfaced as `OAuthFlowError`.
241
+ *
242
+ * Requires `realm_id` in the HearthConfig.
243
+ *
244
+ * @param email - Email address to send the magic link to.
245
+ */
246
+ async requestMagicLink(email) {
247
+ if (!this.config.realm_id) {
248
+ throw new ConfigurationError("realm_id is required for requestMagicLink — set it in HearthConfig");
249
+ }
250
+ const url = `${this.config.issuer_url}/v1/${this.config.realm_id}/auth/magic-link`;
251
+ const controller = new AbortController();
252
+ const timer = setTimeout(() => controller.abort(), this.timeout);
253
+ let res;
254
+ try {
255
+ res = await fetch(url, {
256
+ method: "POST",
257
+ headers: { "Content-Type": "application/json" },
258
+ body: JSON.stringify({ email }),
259
+ signal: controller.signal,
260
+ });
261
+ }
262
+ catch (err) {
263
+ throw new OAuthFlowError(0, `Magic-link request failed: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
264
+ }
265
+ finally {
266
+ clearTimeout(timer);
267
+ }
268
+ if (res.status === 202)
269
+ return;
270
+ throw new OAuthFlowError(res.status, `Magic-link request returned HTTP ${res.status}`);
271
+ }
272
+ /**
273
+ * Fetch the OIDC userinfo claims for the bearer token (discovered endpoint).
274
+ *
275
+ * @param token - Access token whose claims to retrieve.
276
+ */
277
+ async userinfo(token) {
278
+ const endpoint = await this.getUserInfoEndpoint();
279
+ const result = await this.getWithBearer(endpoint, token);
280
+ if (!result)
281
+ throw new OAuthFlowError(204, "userinfo returned 204 No Content");
282
+ return result;
283
+ }
284
+ /**
285
+ * Fetch the current user's live RBAC state from `GET /v1/me/permissions`.
286
+ *
287
+ * Unlike JWT embedded claims (cached at issuance), this reflects the server's
288
+ * current role and group assignments.
289
+ *
290
+ * @param token - Access token of the user whose permissions to retrieve.
291
+ */
292
+ async mePermissions(token) {
293
+ const url = `${this.config.issuer_url}/v1/me/permissions`;
294
+ const result = await this.getWithBearer(url, token);
295
+ if (!result)
296
+ throw new OAuthFlowError(204, "mePermissions returned 204 No Content");
297
+ return result;
298
+ }
299
+ /**
300
+ * Fetch the full session-version snapshot (HEA-930).
301
+ *
302
+ * Returns all current `{sessionId → minSV}` pairs. Used to seed a local
303
+ * session-version cache on startup. Requires a token with `hearth.sv_feed` scope.
304
+ *
305
+ * @param token - Service token with `hearth.sv_feed` scope.
306
+ */
307
+ async svSnapshot(token) {
308
+ const url = `${this.config.issuer_url}/oauth/session-versions/snapshot`;
309
+ const result = await this.getWithBearer(url, token);
310
+ if (!result)
311
+ throw new OAuthFlowError(204, "svSnapshot returned 204 No Content");
312
+ return result;
313
+ }
314
+ /**
315
+ * Fetch session-version deltas since sequence number `since` (HEA-930).
316
+ *
317
+ * Returns `null` when there are no new deltas (HTTP 204 No Content).
318
+ * Requires a token with `hearth.sv_feed` scope.
319
+ *
320
+ * @param token - Service token with `hearth.sv_feed` scope.
321
+ * @param since - Return only events with `seq > since`.
322
+ * @param limit - Maximum number of deltas to return (server default applies when omitted).
323
+ */
324
+ async svDelta(token, since, limit) {
325
+ const url = `${this.config.issuer_url}/oauth/session-versions`;
326
+ const params = { since: String(since) };
327
+ if (limit !== undefined)
328
+ params.limit = String(limit);
329
+ return this.getWithBearer(url, token, params);
330
+ }
331
+ }
332
+ //# sourceMappingURL=flows.js.map