@hawcx/oauth-client 5.2.0 → 6.2.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 +355 -0
- package/README.md +247 -0
- package/dist/client-assertion.d.ts.map +1 -1
- package/dist/client-assertion.js +6 -2
- package/dist/client-assertion.js.map +1 -1
- package/dist/delegation/exceptions.d.ts +34 -0
- package/dist/delegation/exceptions.d.ts.map +1 -1
- package/dist/delegation/exceptions.js +39 -1
- package/dist/delegation/exceptions.js.map +1 -1
- package/dist/delegation/hawcx.d.ts +6 -2
- package/dist/delegation/hawcx.d.ts.map +1 -1
- package/dist/delegation/hawcx.js.map +1 -1
- package/dist/delegation/index.d.ts +2 -1
- package/dist/delegation/index.d.ts.map +1 -1
- package/dist/delegation/index.js +3 -1
- package/dist/delegation/index.js.map +1 -1
- package/dist/delegation/transport.d.ts +6 -2
- package/dist/delegation/transport.d.ts.map +1 -1
- package/dist/delegation/transport.js +9 -2
- package/dist/delegation/transport.js.map +1 -1
- package/dist/errors.d.ts +11 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +1 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/internal/url.d.ts +73 -0
- package/dist/internal/url.d.ts.map +1 -0
- package/dist/internal/url.js +210 -0
- package/dist/internal/url.js.map +1 -0
- package/dist/management/jwt_transport.d.ts +44 -3
- package/dist/management/jwt_transport.d.ts.map +1 -1
- package/dist/management/jwt_transport.js +60 -4
- package/dist/management/jwt_transport.js.map +1 -1
- package/dist/management/response_signature.d.ts +65 -0
- package/dist/management/response_signature.d.ts.map +1 -0
- package/dist/management/response_signature.js +170 -0
- package/dist/management/response_signature.js.map +1 -0
- package/dist/oauth.d.ts +89 -1
- package/dist/oauth.d.ts.map +1 -1
- package/dist/oauth.js +265 -34
- package/dist/oauth.js.map +1 -1
- package/dist/profile/client.d.ts +99 -0
- package/dist/profile/client.d.ts.map +1 -0
- package/dist/profile/client.js +209 -0
- package/dist/profile/client.js.map +1 -0
- package/dist/profile/errors.d.ts +62 -0
- package/dist/profile/errors.d.ts.map +1 -0
- package/dist/profile/errors.js +90 -0
- package/dist/profile/errors.js.map +1 -0
- package/dist/profile/http.d.ts +57 -0
- package/dist/profile/http.d.ts.map +1 -0
- package/dist/profile/http.js +295 -0
- package/dist/profile/http.js.map +1 -0
- package/dist/profile/tokens.d.ts +50 -0
- package/dist/profile/tokens.d.ts.map +1 -0
- package/dist/profile/tokens.js +137 -0
- package/dist/profile/tokens.js.map +1 -0
- package/dist/profile/types.d.ts +99 -0
- package/dist/profile/types.d.ts.map +1 -0
- package/dist/profile/types.js +7 -0
- package/dist/profile/types.js.map +1 -0
- package/dist/stepup/client.d.ts +11 -0
- package/dist/stepup/client.d.ts.map +1 -1
- package/dist/stepup/client.js +6 -1
- package/dist/stepup/client.js.map +1 -1
- package/package.json +1 -1
package/dist/oauth.js
CHANGED
|
@@ -21,6 +21,8 @@ exports.HawcxOAuth = void 0;
|
|
|
21
21
|
const jose_1 = require("jose");
|
|
22
22
|
const client_assertion_1 = require("./client-assertion");
|
|
23
23
|
const errors_1 = require("./errors");
|
|
24
|
+
const url_1 = require("./internal/url");
|
|
25
|
+
const client_1 = require("./profile/client");
|
|
24
26
|
const DEFAULT_BASE_URL = 'https://api.hawcx.com';
|
|
25
27
|
const DEFAULT_TIMEOUT_MS = 10000;
|
|
26
28
|
/** Bound the discovery fetch so an unreachable issuer fails fast at startup. */
|
|
@@ -46,27 +48,53 @@ const DEFAULT_ID_TOKEN_ALGS = Object.freeze([
|
|
|
46
48
|
'ES512',
|
|
47
49
|
'EdDSA',
|
|
48
50
|
]);
|
|
51
|
+
/** Authorize params the SDK sets itself; neither the endpoint query nor `extraParams` may carry them. */
|
|
52
|
+
const AUTHORIZE_SDK_PARAMS = [
|
|
53
|
+
'response_type',
|
|
54
|
+
'client_id',
|
|
55
|
+
'redirect_uri',
|
|
56
|
+
'scope',
|
|
57
|
+
'state',
|
|
58
|
+
'nonce',
|
|
59
|
+
'code_challenge',
|
|
60
|
+
'code_challenge_method',
|
|
61
|
+
'prompt',
|
|
62
|
+
];
|
|
63
|
+
/** Authorize names an endpoint query may not carry: SDK-set plus JAR (contract R9). */
|
|
64
|
+
const AUTHORIZE_COLLISION_NAMES = [...AUTHORIZE_SDK_PARAMS, 'request', 'request_uri'];
|
|
65
|
+
/** End-session params the SDK sets itself; the endpoint query may not carry them. */
|
|
66
|
+
const END_SESSION_SDK_PARAMS = [
|
|
67
|
+
'client_id',
|
|
68
|
+
'post_logout_redirect_uri',
|
|
69
|
+
'id_token_hint',
|
|
70
|
+
'state',
|
|
71
|
+
];
|
|
72
|
+
/** `extraParams` keys refused: SDK-set names plus JAR, which could replace them all. */
|
|
73
|
+
const RESERVED_EXTRA_PARAMS = new Set([
|
|
74
|
+
...AUTHORIZE_SDK_PARAMS,
|
|
75
|
+
'request',
|
|
76
|
+
'request_uri',
|
|
77
|
+
]);
|
|
78
|
+
/** Empty or ASCII-whitespace-only (cross-SDK "blank" rule R2; NBSP/BOM are not blank). */
|
|
79
|
+
const isBlank = (v) => typeof v !== 'string' || /^[ \t\n\v\f\r]*$/.test(v);
|
|
49
80
|
/**
|
|
50
81
|
* Require https on a discovery-related URL. Plaintext http is permitted only
|
|
51
|
-
* for loopback hosts (localhost / 127.0.0.1 / ::1) to support
|
|
52
|
-
* tests. OIDC Discovery §4 / OAuth 2.1 §7.4: an http issuer lets an on-path
|
|
82
|
+
* for the exact loopback hosts (localhost / 127.0.0.1 / [::1]) to support
|
|
83
|
+
* local dev and tests; URLs carrying userinfo (user:pass@) are rejected. OIDC Discovery §4 / OAuth 2.1 §7.4: an http issuer lets an on-path
|
|
53
84
|
* attacker swap the discovery doc and redirect token_endpoint / jwks_uri.
|
|
54
85
|
*/
|
|
55
86
|
function requireSecureUrl(label, url) {
|
|
56
|
-
|
|
57
|
-
try {
|
|
58
|
-
u = new URL(url);
|
|
59
|
-
}
|
|
60
|
-
catch (err) {
|
|
61
|
-
throw new errors_1.DiscoveryError(`${label} is not a valid URL: ${url}`, { cause: err });
|
|
62
|
-
}
|
|
63
|
-
if (u.protocol === 'https:')
|
|
64
|
-
return;
|
|
65
|
-
const loopback = u.hostname === 'localhost' || u.hostname === '127.0.0.1' || u.hostname === '::1' || u.hostname === '[::1]';
|
|
66
|
-
if (u.protocol === 'http:' && loopback)
|
|
67
|
-
return;
|
|
68
|
-
throw new errors_1.DiscoveryError(`${label} must use https (got: ${url}). Plaintext http is permitted only for loopback hosts.`);
|
|
87
|
+
(0, url_1.assertSecureUrl)(label, url, discoveryUrlError);
|
|
69
88
|
}
|
|
89
|
+
/** URL validation failures during discovery surface as {@link DiscoveryError}. */
|
|
90
|
+
const discoveryUrlError = (message, cause) => new errors_1.DiscoveryError(message, cause === undefined ? undefined : { cause });
|
|
91
|
+
/** An invalid legacy-mode `baseUrl` surfaces as {@link HawcxOAuthError}. */
|
|
92
|
+
const legacyUrlError = (message, cause) => {
|
|
93
|
+
const err = new errors_1.HawcxOAuthError(message);
|
|
94
|
+
if (cause !== undefined)
|
|
95
|
+
err.cause = cause;
|
|
96
|
+
return err;
|
|
97
|
+
};
|
|
70
98
|
/**
|
|
71
99
|
* Hawcx OAuth Client
|
|
72
100
|
*
|
|
@@ -107,16 +135,20 @@ class HawcxOAuth {
|
|
|
107
135
|
this.discoveryMetadata = discoveryInit.metadata;
|
|
108
136
|
this.allowedAlgorithms = discoveryInit.allowedAlgorithms;
|
|
109
137
|
this.clientAssertionSigner = discoveryInit.signer ?? null;
|
|
138
|
+
this.customDomain = discoveryInit.customDomain ?? null;
|
|
110
139
|
}
|
|
111
140
|
else {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
141
|
+
// Structured parse + join (TOB-HSDK-13): the authorization code is
|
|
142
|
+
// POSTed to, and signing keys fetched from, these URLs.
|
|
143
|
+
const base = (0, url_1.parseSecureBaseUrl)('baseUrl', config.baseUrl || DEFAULT_BASE_URL, legacyUrlError);
|
|
144
|
+
this.tokenEndpoint = (0, url_1.safeJoinUrl)(base, '/oauth2/token', 'token endpoint', legacyUrlError);
|
|
145
|
+
this.jwksUrl = (0, url_1.safeJoinUrl)(base, '/keys', 'jwks endpoint', legacyUrlError);
|
|
115
146
|
this.expectedAudience = null;
|
|
116
147
|
this.expectedIssuer = null;
|
|
117
148
|
this.discoveryMetadata = null;
|
|
118
149
|
this.allowedAlgorithms = null;
|
|
119
150
|
this.clientAssertionSigner = null;
|
|
151
|
+
this.customDomain = null;
|
|
120
152
|
}
|
|
121
153
|
}
|
|
122
154
|
/**
|
|
@@ -146,8 +178,13 @@ class HawcxOAuth {
|
|
|
146
178
|
throw new Error('clockToleranceSeconds must be >= 0');
|
|
147
179
|
}
|
|
148
180
|
const issuer = config.issuer.replace(/\/$/, '');
|
|
149
|
-
|
|
150
|
-
|
|
181
|
+
// RFC 8414 §2: the issuer has no query or fragment. Join structurally so
|
|
182
|
+
// the discovery URL cannot leave the issuer's origin (TOB-HSDK-13).
|
|
183
|
+
const issuerBase = (0, url_1.parseSecureBaseUrl)('issuer', issuer, discoveryUrlError);
|
|
184
|
+
const customDomain = config.customDomain != null
|
|
185
|
+
? (0, url_1.parseCustomDomain)(config.customDomain, (message) => new errors_1.HawcxOAuthError(message, { error: 'invalid_custom_domain' }))
|
|
186
|
+
: null;
|
|
187
|
+
const discoveryUrl = (0, url_1.safeJoinUrl)(issuerBase, '/.well-known/openid-configuration', 'discovery URL', discoveryUrlError);
|
|
151
188
|
const timeout = config.discoveryTimeout ?? DEFAULT_DISCOVERY_TIMEOUT_MS;
|
|
152
189
|
let response;
|
|
153
190
|
try {
|
|
@@ -229,7 +266,7 @@ class HawcxOAuth {
|
|
|
229
266
|
configId: config.configId,
|
|
230
267
|
timeout: config.timeout,
|
|
231
268
|
clockToleranceSeconds: config.clockToleranceSeconds,
|
|
232
|
-
}, { metadata, clientId: config.clientId, allowedAlgorithms });
|
|
269
|
+
}, { metadata, clientId: config.clientId, allowedAlgorithms, customDomain });
|
|
233
270
|
}
|
|
234
271
|
/**
|
|
235
272
|
* Opt into `private_key_jwt` client authentication (discovery mode only).
|
|
@@ -271,8 +308,28 @@ class HawcxOAuth {
|
|
|
271
308
|
clientId: this.expectedAudience,
|
|
272
309
|
allowedAlgorithms: this.allowedAlgorithms,
|
|
273
310
|
signer,
|
|
311
|
+
customDomain: this.customDomain,
|
|
274
312
|
});
|
|
275
313
|
}
|
|
314
|
+
/**
|
|
315
|
+
* Client for the Hawcx profile service, built from this discovery-mode
|
|
316
|
+
* client and its {@link withClientAssertion} signer. Same as
|
|
317
|
+
* `new ProfileClient(oauth, options)`.
|
|
318
|
+
*
|
|
319
|
+
* @throws {HawcxError} in legacy mode or without a client-assertion signer.
|
|
320
|
+
*/
|
|
321
|
+
profile(options) {
|
|
322
|
+
return new client_1.ProfileClient(this, options);
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* @internal What the profile client needs; `null` unless discovery mode
|
|
326
|
+
* with a signer. Not part of the public `.d.ts`.
|
|
327
|
+
*/
|
|
328
|
+
profileContext() {
|
|
329
|
+
if (this.discoveryMetadata === null || this.clientAssertionSigner === null)
|
|
330
|
+
return null;
|
|
331
|
+
return { issuer: this.discoveryMetadata.issuer, configId: this.configId };
|
|
332
|
+
}
|
|
276
333
|
/**
|
|
277
334
|
* Exchange authorization code for id_token and verified claims.
|
|
278
335
|
*
|
|
@@ -298,21 +355,46 @@ class HawcxOAuth {
|
|
|
298
355
|
if (redirectUri) {
|
|
299
356
|
body.append('redirect_uri', redirectUri);
|
|
300
357
|
}
|
|
358
|
+
const data = (await this.postTokenForm(body));
|
|
359
|
+
const idToken = data.id_token;
|
|
360
|
+
if (!idToken) {
|
|
361
|
+
throw new errors_1.TokenExchangeError('Response missing id_token');
|
|
362
|
+
}
|
|
363
|
+
const claims = await this.verifyToken(idToken, expectedNonce !== undefined ? { nonce: expectedNonce } : undefined);
|
|
364
|
+
return { idToken, claims };
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* @internal POST `body` to the token endpoint as this client: adds
|
|
368
|
+
* `client_id` (discovery mode) and, with a signer, a fresh RFC 7523
|
|
369
|
+
* `client_assertion`; sends `X-Config-Id`; never follows redirects; maps
|
|
370
|
+
* failures to {@link TokenExchangeError}. Shared by {@link exchangeCode} and
|
|
371
|
+
* the profile client's token sources. Returns the parsed JSON body.
|
|
372
|
+
*/
|
|
373
|
+
async postTokenForm(body, options = {}) {
|
|
374
|
+
// Discovery mode: always identify the client with `client_id` in the form,
|
|
375
|
+
// for public (PKCE) and private_key_jwt alike (RFC 6749 §4.1.3). Without
|
|
376
|
+
// it the OP resolves the client from `X-Config-Id` alone, falls back to
|
|
377
|
+
// the project's DEFAULT client, and stamps the id_token `aud` with that
|
|
378
|
+
// client's id, so a non-default client fails `aud` verification.
|
|
379
|
+
// Legacy mode has no clientId (expectedAudience is null) and sends no
|
|
380
|
+
// `client_id`, exactly as before.
|
|
381
|
+
if (this.expectedAudience !== null) {
|
|
382
|
+
body.append('client_id', this.expectedAudience);
|
|
383
|
+
}
|
|
301
384
|
const signer = this.clientAssertionSigner;
|
|
302
385
|
if (signer !== null && this.discoveryMetadata !== null) {
|
|
303
|
-
// private_key_jwt:
|
|
386
|
+
// private_key_jwt: client_id is already in the form (above); add the
|
|
304
387
|
// signed assertion. aud is the discovered token_endpoint string exactly,
|
|
305
388
|
// which the OP pins for the assertion. PKCE fields above are retained.
|
|
306
389
|
// In this guarded branch discoveryMetadata !== null, so expectedAudience
|
|
307
390
|
// is the clientId (non-null). Assert rather than mask with ''.
|
|
308
391
|
const clientId = this.expectedAudience;
|
|
309
|
-
body.append('client_id', clientId);
|
|
310
392
|
body.append('client_assertion_type', client_assertion_1.CLIENT_ASSERTION_TYPE);
|
|
311
393
|
body.append('client_assertion', await signer.sign(clientId, this.discoveryMetadata.token_endpoint));
|
|
312
394
|
}
|
|
313
395
|
let response;
|
|
314
396
|
try {
|
|
315
|
-
response = await fetch(this.tokenEndpoint, {
|
|
397
|
+
response = await (options.fetch ?? fetch)(this.tokenEndpoint, {
|
|
316
398
|
method: 'POST',
|
|
317
399
|
headers: {
|
|
318
400
|
'Content-Type': 'application/x-www-form-urlencoded',
|
|
@@ -320,11 +402,16 @@ class HawcxOAuth {
|
|
|
320
402
|
Accept: 'application/json',
|
|
321
403
|
},
|
|
322
404
|
body: body.toString(),
|
|
323
|
-
|
|
405
|
+
// Never follow a redirect: the code / assertion / subject token must
|
|
406
|
+
// not be replayed to another host.
|
|
407
|
+
redirect: 'manual',
|
|
408
|
+
signal: AbortSignal.timeout(options.timeout ?? this.timeout),
|
|
324
409
|
});
|
|
325
410
|
}
|
|
326
411
|
catch (err) {
|
|
327
|
-
|
|
412
|
+
const e = new errors_1.TokenExchangeError(`Network error: ${err}`, undefined, { network: true });
|
|
413
|
+
e.cause = err;
|
|
414
|
+
throw e;
|
|
328
415
|
}
|
|
329
416
|
if (!response.ok) {
|
|
330
417
|
let errorMsg = `HTTP ${response.status}`;
|
|
@@ -349,13 +436,30 @@ class HawcxOAuth {
|
|
|
349
436
|
errorDescription: errDesc,
|
|
350
437
|
});
|
|
351
438
|
}
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
439
|
+
// A body that fails mid-read is a transport failure (retryable); one that
|
|
440
|
+
// arrived whole but is not a JSON object is a bad answer.
|
|
441
|
+
let text;
|
|
442
|
+
try {
|
|
443
|
+
text = await response.text();
|
|
356
444
|
}
|
|
357
|
-
|
|
358
|
-
|
|
445
|
+
catch (err) {
|
|
446
|
+
// Keep the 2xx status: for exchangeCode the OP has already minted and the
|
|
447
|
+
// single-use code is spent, so a retry would get invalid_grant.
|
|
448
|
+
const e = new errors_1.TokenExchangeError(`Network error reading token response: ${err}`, response.status, { network: true });
|
|
449
|
+
e.cause = err;
|
|
450
|
+
throw e;
|
|
451
|
+
}
|
|
452
|
+
let data;
|
|
453
|
+
try {
|
|
454
|
+
data = JSON.parse(text);
|
|
455
|
+
}
|
|
456
|
+
catch {
|
|
457
|
+
data = undefined;
|
|
458
|
+
}
|
|
459
|
+
if (data === null || typeof data !== 'object' || Array.isArray(data)) {
|
|
460
|
+
throw new errors_1.TokenExchangeError('Invalid JSON in token response', response.status);
|
|
461
|
+
}
|
|
462
|
+
return data;
|
|
359
463
|
}
|
|
360
464
|
/**
|
|
361
465
|
* Verify a JWT token and return its claims.
|
|
@@ -479,7 +583,7 @@ class HawcxOAuth {
|
|
|
479
583
|
}
|
|
480
584
|
/**
|
|
481
585
|
* @deprecated since 5.1.0 — renamed to {@link refreshJwks} for cross-SDK
|
|
482
|
-
* consistency. Will be removed in
|
|
586
|
+
* consistency. Will be removed in a future major version. Behaviour is identical.
|
|
483
587
|
*/
|
|
484
588
|
clearCache() {
|
|
485
589
|
// One-time deprecation nudge per instance (per-instance so tests and
|
|
@@ -488,10 +592,137 @@ class HawcxOAuth {
|
|
|
488
592
|
this.clearCacheWarned = true;
|
|
489
593
|
// eslint-disable-next-line no-console
|
|
490
594
|
console.warn('[@hawcx/oauth-client] clearCache() is deprecated; use refreshJwks(). ' +
|
|
491
|
-
'clearCache() will be removed in
|
|
595
|
+
'clearCache() will be removed in a future major version.');
|
|
492
596
|
}
|
|
493
597
|
this.refreshJwks();
|
|
494
598
|
}
|
|
599
|
+
/**
|
|
600
|
+
* Build the browser `/authorize` URL (discovery mode only; no I/O).
|
|
601
|
+
*
|
|
602
|
+
* Base is the discovered `authorization_endpoint`; with `customDomain` set,
|
|
603
|
+
* its scheme + host + port are replaced by the custom domain's (path and any
|
|
604
|
+
* existing query kept). Sets `response_type=code`, `client_id`,
|
|
605
|
+
* `redirect_uri`, `scope` (default `openid`), `state`, `code_challenge`,
|
|
606
|
+
* `code_challenge_method=S256`, plus `nonce` / `prompt` / `extraParams`
|
|
607
|
+
* when given.
|
|
608
|
+
*
|
|
609
|
+
* @throws {HawcxOAuthError} `issuer_mode_required` in legacy mode;
|
|
610
|
+
* `invalid_request` for a missing required option or a reserved
|
|
611
|
+
* `extraParams` key.
|
|
612
|
+
* @throws {DiscoveryError} `invalid_discovery_document` if the discovered
|
|
613
|
+
* `authorization_endpoint` is missing or insecure.
|
|
614
|
+
*/
|
|
615
|
+
buildAuthorizeUrl(options) {
|
|
616
|
+
const bad = (message) => new errors_1.HawcxOAuthError(`buildAuthorizeUrl: ${message}`, { error: 'invalid_request' });
|
|
617
|
+
for (const field of ['redirectUri', 'state', 'codeChallenge']) {
|
|
618
|
+
if (isBlank(options?.[field]))
|
|
619
|
+
throw bad(`${field} is required`);
|
|
620
|
+
}
|
|
621
|
+
const extra = Object.entries(options.extraParams ?? {});
|
|
622
|
+
for (const [key, value] of extra) {
|
|
623
|
+
if (key === '')
|
|
624
|
+
throw bad('extraParams keys must be non-empty');
|
|
625
|
+
if (typeof value !== 'string')
|
|
626
|
+
throw bad(`extraParams value for '${key}' must be a string`);
|
|
627
|
+
if (RESERVED_EXTRA_PARAMS.has(key)) {
|
|
628
|
+
throw bad(`extraParams may not override reserved parameter '${key}'`);
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
const p = new URLSearchParams();
|
|
632
|
+
p.set('response_type', 'code');
|
|
633
|
+
p.set('client_id', this.expectedAudience);
|
|
634
|
+
p.set('redirect_uri', options.redirectUri);
|
|
635
|
+
p.set('scope', isBlank(options.scope) ? 'openid' : options.scope);
|
|
636
|
+
p.set('state', options.state);
|
|
637
|
+
if (!isBlank(options.nonce))
|
|
638
|
+
p.set('nonce', options.nonce);
|
|
639
|
+
p.set('code_challenge', options.codeChallenge);
|
|
640
|
+
p.set('code_challenge_method', 'S256');
|
|
641
|
+
if (!isBlank(options.prompt))
|
|
642
|
+
p.set('prompt', options.prompt);
|
|
643
|
+
for (const [k, v] of extra)
|
|
644
|
+
p.append(k, v);
|
|
645
|
+
return this.browserUrl('authorization_endpoint', 'buildAuthorizeUrl', AUTHORIZE_COLLISION_NAMES, p, extra.map(([k]) => k));
|
|
646
|
+
}
|
|
647
|
+
/**
|
|
648
|
+
* Build the browser RP-initiated logout URL (discovery mode only; no I/O).
|
|
649
|
+
* Base is the discovered `end_session_endpoint`, with the same
|
|
650
|
+
* `customDomain` origin swap as {@link buildAuthorizeUrl}. Always sets
|
|
651
|
+
* `client_id`; `post_logout_redirect_uri`, `id_token_hint` and `state` when given.
|
|
652
|
+
*
|
|
653
|
+
* @throws {HawcxOAuthError} `issuer_mode_required` in legacy mode.
|
|
654
|
+
* @throws {DiscoveryError} `invalid_discovery_document` if the discovered
|
|
655
|
+
* `end_session_endpoint` is missing or insecure.
|
|
656
|
+
*/
|
|
657
|
+
buildEndSessionUrl(options) {
|
|
658
|
+
const o = options ?? {};
|
|
659
|
+
const p = new URLSearchParams();
|
|
660
|
+
p.set('client_id', this.expectedAudience);
|
|
661
|
+
if (!isBlank(o.postLogoutRedirectUri))
|
|
662
|
+
p.set('post_logout_redirect_uri', o.postLogoutRedirectUri);
|
|
663
|
+
if (!isBlank(o.idTokenHint))
|
|
664
|
+
p.set('id_token_hint', o.idTokenHint);
|
|
665
|
+
if (!isBlank(o.state))
|
|
666
|
+
p.set('state', o.state);
|
|
667
|
+
return this.browserUrl('end_session_endpoint', 'buildEndSessionUrl', END_SESSION_SDK_PARAMS, p);
|
|
668
|
+
}
|
|
669
|
+
/**
|
|
670
|
+
* Build a browser URL from a discovered endpoint, validated lazily (so
|
|
671
|
+
* fromIssuer keeps accepting documents without it): origin (custom domain
|
|
672
|
+
* if set, else the endpoint's) + RAW path + RAW query + `&` + SDK params.
|
|
673
|
+
* The endpoint query is copied verbatim, never re-serialised, and may not
|
|
674
|
+
* carry any of `sdkNames`; an `extraKeys` name it already carries is an
|
|
675
|
+
* `invalid_request` (RFC 6749 §3.1: no repeated parameters).
|
|
676
|
+
*/
|
|
677
|
+
browserUrl(field, method, sdkNames, params, extraKeys = []) {
|
|
678
|
+
if (this.discoveryMetadata === null) {
|
|
679
|
+
throw new errors_1.HawcxOAuthError(`${method} requires issuer mode: build the client via HawcxOAuth.fromIssuer(...)`, { error: 'issuer_mode_required' });
|
|
680
|
+
}
|
|
681
|
+
const invalid = (message, cause) => new errors_1.DiscoveryError(`Discovery document: ${message}`, {
|
|
682
|
+
error: 'invalid_discovery_document',
|
|
683
|
+
...(cause !== undefined && { cause }),
|
|
684
|
+
});
|
|
685
|
+
const raw = this.discoveryMetadata[field];
|
|
686
|
+
(0, url_1.assertSecureUrl)(field, raw, invalid);
|
|
687
|
+
// Checked raw: WHATWG strips tab/CR/LF and encodes space/"/</>, but the
|
|
688
|
+
// raw path and query are what gets emitted (contract R1).
|
|
689
|
+
if (/[^\x21-\x7e]|[\\"<>^`{|}#]/.test(raw)) {
|
|
690
|
+
throw invalid(`${field} must be printable ASCII without a fragment or any of \\ " < > ^ \` { | }`);
|
|
691
|
+
}
|
|
692
|
+
// Raw path + query: everything after a non-empty `//authority` (WHATWG
|
|
693
|
+
// also accepts `https:host` and `https:///host`; the other SDKs do not).
|
|
694
|
+
const m = /^([A-Za-z][A-Za-z0-9+.-]*:\/\/[^/?]+)(.*)$/.exec(raw);
|
|
695
|
+
if (m === null)
|
|
696
|
+
throw invalid(`${field} has no host`);
|
|
697
|
+
// An empty userinfo (`https://@h`) or empty port (`https://h:`) passes WHATWG but not the other SDKs.
|
|
698
|
+
if (/@|:$/.test(m[1].slice(m[1].indexOf('//') + 2)))
|
|
699
|
+
throw invalid(`${field} has userinfo or an empty port`);
|
|
700
|
+
const rest = m[2];
|
|
701
|
+
const q = rest.indexOf('?');
|
|
702
|
+
const path = q === -1 ? rest : rest.slice(0, q);
|
|
703
|
+
const query = q === -1 ? '' : rest.slice(q + 1);
|
|
704
|
+
for (const piece of query.split('&')) {
|
|
705
|
+
const name = piece.split('=', 1)[0];
|
|
706
|
+
let decoded = name;
|
|
707
|
+
try {
|
|
708
|
+
decoded = decodeURIComponent(name);
|
|
709
|
+
}
|
|
710
|
+
catch {
|
|
711
|
+
// malformed escape: compare the raw name
|
|
712
|
+
}
|
|
713
|
+
if (sdkNames.includes(decoded)) {
|
|
714
|
+
throw invalid(`${field} query must not set SDK parameter '${decoded}'`);
|
|
715
|
+
}
|
|
716
|
+
if (extraKeys.includes(decoded)) {
|
|
717
|
+
throw new errors_1.HawcxOAuthError(`${method}: extraParams key '${decoded}' is already in the ${field} query`, {
|
|
718
|
+
error: 'invalid_request',
|
|
719
|
+
});
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
// Raw scheme + authority when no custom domain (contract R6).
|
|
723
|
+
const origin = this.customDomain ?? m[1];
|
|
724
|
+
return `${origin}${path}?${query === '' ? '' : query + '&'}${params}`;
|
|
725
|
+
}
|
|
495
726
|
}
|
|
496
727
|
exports.HawcxOAuth = HawcxOAuth;
|
|
497
728
|
//# sourceMappingURL=oauth.js.map
|
package/dist/oauth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import type { HawcxOAuth } from '../oauth';
|
|
2
|
+
import type { AuditEvent, Consent, ConsentInput, ConsentsPage, CreateUserInput, ListUsersOptions, MyProfilePatch, Page, PageOptions, Profile, ProfilePatch, ReplaceUserInput } from './types';
|
|
3
|
+
export interface ProfileClientOptions {
|
|
4
|
+
/** Profile service base URL (default `{issuer}/profile`). https, or http on loopback only. */
|
|
5
|
+
baseUrl?: string;
|
|
6
|
+
/** Machine scopes to request. Default: none sent, so the OP grants the client's allowed scopes. `[]` throws. */
|
|
7
|
+
scopes?: readonly string[];
|
|
8
|
+
/** Token-exchange `audience` for {@link ProfileClient.forUser} (default `hx-profile`). */
|
|
9
|
+
audience?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Timeout in ms for each profile request and each token-endpoint call this
|
|
12
|
+
* client makes (default 10000, whatever the `HawcxOAuth` client's own
|
|
13
|
+
* `timeout`).
|
|
14
|
+
*/
|
|
15
|
+
timeout?: number;
|
|
16
|
+
/**
|
|
17
|
+
* Retry budget per call (default 2). GET/PUT/DELETE retry on a network
|
|
18
|
+
* error, 408, 429, 502, 503, 504. Every method, POST/PATCH included, retries
|
|
19
|
+
* a token-endpoint network error, 408, 429, 502, 503 or 504 (no profile
|
|
20
|
+
* request was sent). A DELETE answered 404 counts as success once an earlier
|
|
21
|
+
* attempt of the call may have run (no response, a 2xx whose body failed
|
|
22
|
+
* mid-read, or 504).
|
|
23
|
+
*/
|
|
24
|
+
maxRetries?: number;
|
|
25
|
+
/**
|
|
26
|
+
* `fetch` implementation (default: global `fetch`). Errors from an injected
|
|
27
|
+
* fetch whose shape isn't recognised (no connect-phase `code`/`errno`, with
|
|
28
|
+
* `syscall` where needed, on the error or its `cause`) are treated as "may
|
|
29
|
+
* have run" for the DELETE-404 rule.
|
|
30
|
+
*/
|
|
31
|
+
fetch?: typeof fetch;
|
|
32
|
+
}
|
|
33
|
+
/** Machine client: manage any user's profile, consents and audit trail in the tenant. */
|
|
34
|
+
export declare class ProfileClient {
|
|
35
|
+
#private;
|
|
36
|
+
/**
|
|
37
|
+
* @param oauth - a discovery-mode client with a signer:
|
|
38
|
+
* `(await HawcxOAuth.fromIssuer(...)).withClientAssertion(signer)`.
|
|
39
|
+
*/
|
|
40
|
+
constructor(oauth: HawcxOAuth, options?: ProfileClientOptions);
|
|
41
|
+
/**
|
|
42
|
+
* A client acting for the user whose ID token this is (its `aud` must be
|
|
43
|
+
* this same client). Exchanges lazily on first call and caches the token for
|
|
44
|
+
* its own lifetime. The OP caps that lifetime at the ID token's `exp` (60 s
|
|
45
|
+
* by default), so use it with the ID token you just received at sign-in; for
|
|
46
|
+
* later work on a user's profile use the machine methods with their
|
|
47
|
+
* `user_id` (the `sub` claim).
|
|
48
|
+
*/
|
|
49
|
+
forUser(idToken: string): UserProfileClient;
|
|
50
|
+
/** `GET /v1/users/{userId}` [users:read] */
|
|
51
|
+
getUser(userId: string): Promise<Profile>;
|
|
52
|
+
/** `GET /v1/users` [users:read] */
|
|
53
|
+
listUsers(options?: ListUsersOptions): Promise<Page<Profile>>;
|
|
54
|
+
/** Every user matching the filters, following `next_cursor`. */
|
|
55
|
+
iterUsers(options?: Omit<ListUsersOptions, 'cursor'>): AsyncGenerator<Profile>;
|
|
56
|
+
/**
|
|
57
|
+
* `POST /v1/users` [users:write]; 404 if the identity doesn't exist, 409 if
|
|
58
|
+
* the profile does. `user_id` must pass the same path-segment rules as
|
|
59
|
+
* `userId` elsewhere. Retried only on a transient token-endpoint failure.
|
|
60
|
+
*/
|
|
61
|
+
createUser(input: CreateUserInput): Promise<Profile>;
|
|
62
|
+
/** `PATCH /v1/users/{userId}` [users:write]: `null` clears a field, an omitted key is unchanged. Retried only on a transient token-endpoint failure. */
|
|
63
|
+
updateUser(userId: string, patch: ProfilePatch): Promise<Profile>;
|
|
64
|
+
/** `PUT /v1/users/{userId}` [users:write] */
|
|
65
|
+
replaceUser(userId: string, input: ReplaceUserInput): Promise<Profile>;
|
|
66
|
+
/** `DELETE /v1/users/{userId}` [users:delete] */
|
|
67
|
+
deleteUser(userId: string): Promise<void>;
|
|
68
|
+
/** `GET /v1/users/{userId}/consents` [consent:read] */
|
|
69
|
+
getConsents(userId: string, page?: PageOptions): Promise<ConsentsPage>;
|
|
70
|
+
/** `PUT /v1/users/{userId}/consents/{purpose}` [consent:write]; 422 for an unknown purpose. */
|
|
71
|
+
setConsent(userId: string, purpose: string, input: ConsentInput): Promise<Consent>;
|
|
72
|
+
/** `GET /v1/users/{userId}/audit` [audit:read] */
|
|
73
|
+
getAudit(userId: string, page?: PageOptions): Promise<Page<AuditEvent>>;
|
|
74
|
+
/** The user's whole audit trail, following `next_cursor`. */
|
|
75
|
+
iterAudit(userId: string, options?: {
|
|
76
|
+
limit?: number;
|
|
77
|
+
}): AsyncGenerator<AuditEvent>;
|
|
78
|
+
}
|
|
79
|
+
/** Delegated client (`profile:self`): the signed-in user's own profile, consents and audit. */
|
|
80
|
+
export declare class UserProfileClient {
|
|
81
|
+
#private;
|
|
82
|
+
/** Not constructible directly: use {@link ProfileClient.forUser}. */
|
|
83
|
+
private constructor();
|
|
84
|
+
/** `GET /v1/me` */
|
|
85
|
+
getMe(): Promise<Profile>;
|
|
86
|
+
/** `PATCH /v1/me`: `null` clears a field, an omitted key is unchanged. Retried only on a transient token-endpoint failure. */
|
|
87
|
+
updateMe(patch: MyProfilePatch): Promise<Profile>;
|
|
88
|
+
/** `GET /v1/me/consents` */
|
|
89
|
+
getMyConsents(page?: PageOptions): Promise<ConsentsPage>;
|
|
90
|
+
/** `PUT /v1/me/consents/{purpose}` */
|
|
91
|
+
setMyConsent(purpose: string, input: ConsentInput): Promise<Consent>;
|
|
92
|
+
/** `GET /v1/me/audit` */
|
|
93
|
+
getMyAudit(page?: PageOptions): Promise<Page<AuditEvent>>;
|
|
94
|
+
/** The user's whole audit trail, following `next_cursor`. */
|
|
95
|
+
iterMyAudit(options?: {
|
|
96
|
+
limit?: number;
|
|
97
|
+
}): AsyncGenerator<AuditEvent>;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/profile/client.ts"],"names":[],"mappings":"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"}
|