@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.
Files changed (69) hide show
  1. package/CHANGELOG.md +355 -0
  2. package/README.md +247 -0
  3. package/dist/client-assertion.d.ts.map +1 -1
  4. package/dist/client-assertion.js +6 -2
  5. package/dist/client-assertion.js.map +1 -1
  6. package/dist/delegation/exceptions.d.ts +34 -0
  7. package/dist/delegation/exceptions.d.ts.map +1 -1
  8. package/dist/delegation/exceptions.js +39 -1
  9. package/dist/delegation/exceptions.js.map +1 -1
  10. package/dist/delegation/hawcx.d.ts +6 -2
  11. package/dist/delegation/hawcx.d.ts.map +1 -1
  12. package/dist/delegation/hawcx.js.map +1 -1
  13. package/dist/delegation/index.d.ts +2 -1
  14. package/dist/delegation/index.d.ts.map +1 -1
  15. package/dist/delegation/index.js +3 -1
  16. package/dist/delegation/index.js.map +1 -1
  17. package/dist/delegation/transport.d.ts +6 -2
  18. package/dist/delegation/transport.d.ts.map +1 -1
  19. package/dist/delegation/transport.js +9 -2
  20. package/dist/delegation/transport.js.map +1 -1
  21. package/dist/errors.d.ts +11 -1
  22. package/dist/errors.d.ts.map +1 -1
  23. package/dist/errors.js +1 -0
  24. package/dist/errors.js.map +1 -1
  25. package/dist/index.d.ts +6 -2
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +8 -2
  28. package/dist/index.js.map +1 -1
  29. package/dist/internal/url.d.ts +73 -0
  30. package/dist/internal/url.d.ts.map +1 -0
  31. package/dist/internal/url.js +210 -0
  32. package/dist/internal/url.js.map +1 -0
  33. package/dist/management/jwt_transport.d.ts +44 -3
  34. package/dist/management/jwt_transport.d.ts.map +1 -1
  35. package/dist/management/jwt_transport.js +60 -4
  36. package/dist/management/jwt_transport.js.map +1 -1
  37. package/dist/management/response_signature.d.ts +65 -0
  38. package/dist/management/response_signature.d.ts.map +1 -0
  39. package/dist/management/response_signature.js +170 -0
  40. package/dist/management/response_signature.js.map +1 -0
  41. package/dist/oauth.d.ts +89 -1
  42. package/dist/oauth.d.ts.map +1 -1
  43. package/dist/oauth.js +265 -34
  44. package/dist/oauth.js.map +1 -1
  45. package/dist/profile/client.d.ts +99 -0
  46. package/dist/profile/client.d.ts.map +1 -0
  47. package/dist/profile/client.js +209 -0
  48. package/dist/profile/client.js.map +1 -0
  49. package/dist/profile/errors.d.ts +62 -0
  50. package/dist/profile/errors.d.ts.map +1 -0
  51. package/dist/profile/errors.js +90 -0
  52. package/dist/profile/errors.js.map +1 -0
  53. package/dist/profile/http.d.ts +57 -0
  54. package/dist/profile/http.d.ts.map +1 -0
  55. package/dist/profile/http.js +295 -0
  56. package/dist/profile/http.js.map +1 -0
  57. package/dist/profile/tokens.d.ts +50 -0
  58. package/dist/profile/tokens.d.ts.map +1 -0
  59. package/dist/profile/tokens.js +137 -0
  60. package/dist/profile/tokens.js.map +1 -0
  61. package/dist/profile/types.d.ts +99 -0
  62. package/dist/profile/types.d.ts.map +1 -0
  63. package/dist/profile/types.js +7 -0
  64. package/dist/profile/types.js.map +1 -0
  65. package/dist/stepup/client.d.ts +11 -0
  66. package/dist/stepup/client.d.ts.map +1 -1
  67. package/dist/stepup/client.js +6 -1
  68. package/dist/stepup/client.js.map +1 -1
  69. 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 local dev and
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
- let u;
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
- const baseUrl = (config.baseUrl || DEFAULT_BASE_URL).replace(/\/$/, '');
113
- this.tokenEndpoint = `${baseUrl}/oauth2/token`;
114
- this.jwksUrl = `${baseUrl}/keys`;
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
- requireSecureUrl('issuer', issuer);
150
- const discoveryUrl = `${issuer}/.well-known/openid-configuration`;
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: include client_id (parity with the demo RP) + the
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
- signal: AbortSignal.timeout(this.timeout),
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
- throw new errors_1.TokenExchangeError(`Network error: ${err}`);
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
- const data = (await response.json());
353
- const idToken = data.id_token;
354
- if (!idToken) {
355
- throw new errors_1.TokenExchangeError('Response missing id_token');
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
- const claims = await this.verifyToken(idToken, expectedNonce !== undefined ? { nonce: expectedNonce } : undefined);
358
- return { idToken, claims };
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 6.0.0. Behaviour is identical.
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 6.0.0.');
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":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,OAAO,KAAK,EACV,UAAU,EACV,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,IAAI,EACJ,WAAW,EACX,OAAO,EACP,YAAY,EACZ,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,oBAAoB;IACnC,8FAA8F;IAC9F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gHAAgH;IAChH,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CAKtB;AA+DD,yFAAyF;AACzF,qBAAa,aAAa;;IAIxB;;;OAGG;gBACS,KAAK,EAAE,UAAU,EAAE,OAAO,GAAE,oBAAyB;IA+BjE;;;;;;;OAOG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB;IAK3C,4CAA4C;IACtC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/C,mCAAmC;IAC7B,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAUvE,gEAAgE;IAChE,SAAS,CAAC,OAAO,GAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAM,GAAG,cAAc,CAAC,OAAO,CAAC;IAIlF;;;;OAIG;IACG,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAM1D,wJAAwJ;IAClJ,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvE,6CAA6C;IACvC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5E,iDAAiD;IAC3C,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,uDAAuD;IACjD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAI5E,+FAA+F;IACzF,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAIxF,kDAAkD;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAI7E,6DAA6D;IAC7D,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,cAAc,CAAC,UAAU,CAAC;CAGxF;AAED,+FAA+F;AAC/F,qBAAa,iBAAiB;;IAG5B,qEAAqE;IACrE,OAAO;IAaP,mBAAmB;IACb,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,8HAA8H;IACxH,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvD,4BAA4B;IACtB,aAAa,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAI9D,sCAAsC;IAChC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAI1E,yBAAyB;IACnB,UAAU,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAI/D,6DAA6D;IAC7D,WAAW,CAAC,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,cAAc,CAAC,UAAU,CAAC;CAG1E"}