@atlasauth/js 0.23.0 → 0.24.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 (90) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/app-launcher.d.ts +11 -0
  3. package/dist/app-launcher.js +12 -0
  4. package/dist/app-launcher.js.map +1 -0
  5. package/dist/attempt.d.ts +52 -1
  6. package/dist/attempt.js +2 -0
  7. package/dist/attempt.js.map +1 -1
  8. package/dist/attestation.d.ts +52 -0
  9. package/dist/attestation.js +48 -0
  10. package/dist/attestation.js.map +1 -0
  11. package/dist/compat.d.ts +1 -0
  12. package/dist/compat.js +5 -1
  13. package/dist/compat.js.map +1 -1
  14. package/dist/connect.d.ts +6 -0
  15. package/dist/connect.js +22 -0
  16. package/dist/connect.js.map +1 -1
  17. package/dist/connections.d.ts +43 -0
  18. package/dist/connections.js +53 -0
  19. package/dist/connections.js.map +1 -0
  20. package/dist/credentials.d.ts +47 -0
  21. package/dist/credentials.js +95 -0
  22. package/dist/credentials.js.map +1 -0
  23. package/dist/custom-challenge.d.ts +13 -0
  24. package/dist/custom-challenge.js +27 -0
  25. package/dist/custom-challenge.js.map +1 -0
  26. package/dist/delegated-ui.d.ts +93 -0
  27. package/dist/delegated-ui.js +62 -0
  28. package/dist/delegated-ui.js.map +1 -0
  29. package/dist/dev-browser.d.ts +9 -0
  30. package/dist/dev-browser.js +21 -1
  31. package/dist/dev-browser.js.map +1 -1
  32. package/dist/device-key.d.ts +65 -0
  33. package/dist/device-key.js +64 -0
  34. package/dist/device-key.js.map +1 -0
  35. package/dist/email-addresses.d.ts +24 -0
  36. package/dist/email-addresses.js +36 -0
  37. package/dist/email-addresses.js.map +1 -0
  38. package/dist/environment.d.ts +8 -0
  39. package/dist/environment.js +6 -0
  40. package/dist/environment.js.map +1 -1
  41. package/dist/external-passkeys.d.ts +34 -0
  42. package/dist/external-passkeys.js +31 -0
  43. package/dist/external-passkeys.js.map +1 -0
  44. package/dist/fapi.d.ts +36 -0
  45. package/dist/fapi.js +75 -4
  46. package/dist/fapi.js.map +1 -1
  47. package/dist/identity-verification.d.ts +40 -0
  48. package/dist/identity-verification.js +40 -0
  49. package/dist/identity-verification.js.map +1 -0
  50. package/dist/index.d.ts +17 -1
  51. package/dist/index.js +24 -1
  52. package/dist/index.js.map +1 -1
  53. package/dist/journey-redirect.d.ts +8 -0
  54. package/dist/journey-redirect.js +32 -0
  55. package/dist/journey-redirect.js.map +1 -0
  56. package/dist/marketing.d.ts +81 -0
  57. package/dist/marketing.js +162 -0
  58. package/dist/marketing.js.map +1 -0
  59. package/dist/mfa-enrollment.d.ts +2 -0
  60. package/dist/mfa-enrollment.js +1 -0
  61. package/dist/mfa-enrollment.js.map +1 -1
  62. package/dist/mfa-factors.d.ts +109 -0
  63. package/dist/mfa-factors.js +98 -0
  64. package/dist/mfa-factors.js.map +1 -0
  65. package/dist/migration-browser-sessions.d.ts +118 -0
  66. package/dist/migration-browser-sessions.js +404 -0
  67. package/dist/migration-browser-sessions.js.map +1 -0
  68. package/dist/organization-admin.d.ts +192 -0
  69. package/dist/organization-admin.js +53 -0
  70. package/dist/organization-admin.js.map +1 -0
  71. package/dist/passkey.d.ts +71 -2
  72. package/dist/passkey.js +97 -0
  73. package/dist/passkey.js.map +1 -1
  74. package/dist/password-reset.d.ts +16 -1
  75. package/dist/password-reset.js +19 -4
  76. package/dist/password-reset.js.map +1 -1
  77. package/dist/pricing.d.ts +80 -0
  78. package/dist/pricing.js +71 -0
  79. package/dist/pricing.js.map +1 -0
  80. package/dist/profile.d.ts +73 -1
  81. package/dist/profile.js +23 -0
  82. package/dist/profile.js.map +1 -1
  83. package/dist/redirect.js +1 -1
  84. package/dist/redirect.js.map +1 -1
  85. package/dist/telegram.d.ts +23 -0
  86. package/dist/telegram.js +8 -0
  87. package/dist/telegram.js.map +1 -1
  88. package/dist/version.d.ts +1 -1
  89. package/dist/version.js +1 -1
  90. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.24.0 — 2026-10-26
6
+
7
+ - Additional factors: `startHotp`, `verifyHotp`, `resyncHotp`; `enrollYubikey`, `looksLikeYubicoOtp`; `startDuoEnrollment`, `finishDuoEnrollment`, `prepareDuo`, `pollDuo`; `getSecurityQuestions`, `setSecurityQuestions`, `removeSecurityQuestions`, `getResetSecurityQuestions`; `signInWithSmartCard`. `advancePasswordReset` and `pollPasswordReset` take `{ askQuestions }` and a reset flow reports `securityQuestions` at the new-password step (send the answers as `securityAnswers`). `account.mfa` reads `hotp`, `yubikey`, `duo`, `securityQuestions` and `smartCard`; `MfaChoices.duo`.
8
+
9
+ ## 0.23.1 — 2026-10-25
10
+
11
+ - `ATLAS_JS_VERSION` reports 0.23.1 (0.23.0 still reported 0.22.0 to the SDK advisory check).
12
+
5
13
  ## 0.23.0 — 2026-10-25
6
14
 
7
15
  - `stepUp(client, { strategy, … })` and `sendStepUpEmailCode(client)`: re-authenticate the signed-in user in place (`POST /v1/client/me/step_up`) and get a token with a fresh `auth_time`; `authenticatedWithin(claims, maxAgeSeconds)` checks it.
@@ -0,0 +1,11 @@
1
+ import type { FapiClient } from './fapi';
2
+ /** One app the signed-in user may launch from the app launcher. */
3
+ export interface LauncherApp {
4
+ id: string;
5
+ name: string;
6
+ presetId: string | null;
7
+ /** Navigate here to start IdP-initiated single sign-on to the app. */
8
+ launchUrl: string;
9
+ }
10
+ /** The apps the signed-in user may launch. Rejects when nobody is signed in. */
11
+ export declare function listLauncherApps(client: FapiClient): Promise<LauncherApp[]>;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listLauncherApps = listLauncherApps;
4
+ /** The apps the signed-in user may launch. Rejects when nobody is signed in. */
5
+ async function listLauncherApps(client) {
6
+ const res = await client.request('/v1/saml/idp/apps', { method: 'GET' });
7
+ if (!res.ok || !res.data) {
8
+ throw new Error(res.errors[0]?.message ?? 'Could not load your apps.');
9
+ }
10
+ return res.data.data.map((a) => ({ id: a.id, name: a.name, presetId: a.preset_id, launchUrl: a.launch_url }));
11
+ }
12
+ //# sourceMappingURL=app-launcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-launcher.js","sourceRoot":"","sources":["../src/app-launcher.ts"],"names":[],"mappings":";;AAmBA,4CAMC;AAPD,gFAAgF;AACzE,KAAK,UAAU,gBAAgB,CAAC,MAAkB;IACvD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAA8B,mBAAmB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACtG,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,2BAA2B,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;AAChH,CAAC"}
package/dist/attempt.d.ts CHANGED
@@ -21,7 +21,14 @@ export type AttemptStatus = 'needs_identifier' | 'needs_first_factor' | 'needs_s
21
21
  * or more policies (`pending_policies`) before a session is issued. Accept
22
22
  * with `acceptAttemptPolicies` (POST /v1/client/sign_ins/:id/accept_policies).
23
23
  */
24
- | 'needs_policy_acceptance' | 'complete' | 'abandoned';
24
+ | 'needs_policy_acceptance'
25
+ /**
26
+ * Every factor passed, but the user owes a required action
27
+ * (`pending_required_actions`: a new password, profile fields, a verified
28
+ * address, an application step). Finish one with `completeRequiredAction`
29
+ * (POST /v1/client/sign_ins/:id/required_actions).
30
+ */
31
+ | 'needs_required_action' | 'complete' | 'abandoned';
25
32
  export type Step = {
26
33
  kind: 'collect_identifier';
27
34
  } | {
@@ -44,6 +51,11 @@ export type Step = {
44
51
  | {
45
52
  kind: 'accept_policies';
46
53
  policies: PendingPolicy[];
54
+ }
55
+ /** Collect what `actions[0]` needs (a password, name fields, an emailed code) or send the user to its `url`. */
56
+ | {
57
+ kind: 'complete_required_action';
58
+ actions: PendingRequiredAction[];
47
59
  } | {
48
60
  kind: 'done';
49
61
  sessionId: string | null;
@@ -54,6 +66,29 @@ export type Step = {
54
66
  kind: 'unknown';
55
67
  status: string;
56
68
  };
69
+ /** One action an attempt waits on (`pending_required_actions`). */
70
+ export interface PendingRequiredAction {
71
+ id: string;
72
+ /** `update_password`, `verify_email`, `update_profile`, `complete_profile` or `journey_form` (see `fields`), `identity_verification` (see `AttemptView.identity_verification`), or `custom` (see `url`). */
73
+ action: string;
74
+ /** `custom` only: where to send the user; the application closes the action. */
75
+ url: string | null;
76
+ reason: string | null;
77
+ /** `complete_profile` (progressive profiling) and `journey_form`: the fields asked for. */
78
+ fields?: ProfileCompletionField[];
79
+ /** `journey_form` (a server-driven step of the sign-in journey): its heading and introduction. */
80
+ title?: string | null;
81
+ intro?: string | null;
82
+ }
83
+ /** One field of progressive profiling (`pending_required_actions[].fields`, `getProfileCompletion`). */
84
+ export interface ProfileCompletionField {
85
+ key: string;
86
+ label: string;
87
+ type: string;
88
+ required: boolean;
89
+ placeholder: string | null;
90
+ options: string[];
91
+ }
57
92
  /** One policy an attempt waits on (`pending_policies`). */
58
93
  export interface PendingPolicy {
59
94
  /** The policy key (`tos`, `privacy`, …). */
@@ -69,6 +104,13 @@ export interface PendingPolicy {
69
104
  reaccept: boolean;
70
105
  summary_of_changes: string | null;
71
106
  }
107
+ /** The identity check an `identity_verification` required action started (`step: 'start'`) or read. */
108
+ export interface AttemptIdentityVerification {
109
+ status: 'pending' | 'approved' | 'declined' | 'needs_review';
110
+ /** The verification service's hosted page, while pending. */
111
+ url: string | null;
112
+ reason: string | null;
113
+ }
72
114
  export interface AttemptView {
73
115
  /**
74
116
  * The attempt id — what the next submit targets and what a completion's ticket
@@ -92,11 +134,20 @@ export interface AttemptView {
92
134
  expires_at?: number | null;
93
135
  /** While `needs_policy_acceptance`: what to accept. */
94
136
  pending_policies?: PendingPolicy[];
137
+ /** While held on the `identity_verification` required action: the check started or read by the last submit. */
138
+ identity_verification?: AttemptIdentityVerification;
95
139
  /**
96
140
  * While `needs_policy_acceptance`, on the response that put it there only:
97
141
  * the one-time token to send with the acceptances.
98
142
  */
99
143
  policy_acceptance_token?: string;
144
+ /** While `needs_required_action`: what the user owes. */
145
+ pending_required_actions?: PendingRequiredAction[];
146
+ /**
147
+ * While `needs_required_action`, on the response that put it there only:
148
+ * the one-time token to send with the action.
149
+ */
150
+ required_action_token?: string;
100
151
  }
101
152
  export declare function nextStep(attempt: AttemptView): Step;
102
153
  /** Whether the flow can still progress, for deciding whether to keep polling. */
package/dist/attempt.js CHANGED
@@ -51,6 +51,8 @@ function nextStep(attempt) {
51
51
  return { kind: 'collect_new_password' };
52
52
  case 'needs_policy_acceptance':
53
53
  return { kind: 'accept_policies', policies: attempt.pending_policies ?? [] };
54
+ case 'needs_required_action':
55
+ return { kind: 'complete_required_action', actions: attempt.pending_required_actions ?? [] };
54
56
  case 'complete':
55
57
  return { kind: 'done', sessionId: attempt.created_session_id ?? null };
56
58
  case 'abandoned':
@@ -1 +1 @@
1
- {"version":3,"file":"attempt.js","sourceRoot":"","sources":["../src/attempt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attempt.js","sourceRoot":"","sources":["../src/attempt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * App and device attestation — the client half.
3
+ *
4
+ * When an instance turns on `attackProtection.appAttestation`, sign-up, sign-in
5
+ * and SMS-send calls must carry proof (header `Atlas-Attestation`) that the
6
+ * request comes from your genuine app. The OS does the vouching; the app
7
+ * supplies an {@link AttestationProvider} that wraps it:
8
+ *
9
+ * - iOS (App Attest): `registerKey` once per install, then `assert(nonce)` per request.
10
+ * - Android (Play Integrity): `integrityToken(nonce)` per request.
11
+ *
12
+ * Pass the provider as `FapiClient` option `attestation`; the client fetches
13
+ * a single-use nonce and attaches the header on the guarded calls itself.
14
+ * Server routes: POST /v1/client/attestation/challenge and
15
+ * POST /v1/client/attestation/app_attest/register.
16
+ */
17
+ import type { FapiClient, FapiResponse } from './fapi';
18
+ export type AttestationProof = {
19
+ platform: 'ios';
20
+ assertion: string;
21
+ receipt: string;
22
+ } | {
23
+ platform: 'android';
24
+ integrityToken: string;
25
+ }
26
+ /** iOS devices without App Attest: the base64 DCDevice token. */
27
+ | {
28
+ platform: 'ios_devicecheck';
29
+ deviceToken: string;
30
+ };
31
+ export interface AttestationProvider {
32
+ /** Returns the OS proof for the single-use `nonce`. For App Attest, `assertion` is base64 and `receipt` comes from {@link registerAppAttestKey}. */
33
+ prove(nonce: string): Promise<AttestationProof>;
34
+ }
35
+ export declare const isAttestationGuarded: (path: string, method: string) => boolean;
36
+ /** Builds the `Atlas-Attestation` header value from a fresh nonce and the provider's proof. */
37
+ export declare function encodeAttestationHeader(nonce: string, proof: AttestationProof): string;
38
+ /** Fetches a nonce, has the provider attest it, and returns the header value; null when no nonce could be fetched. */
39
+ export declare function attestationHeaderFor(client: FapiClient, provider: AttestationProvider): Promise<string | null>;
40
+ /**
41
+ * iOS: registers an App Attest key. `attest(challenge)` is the app's call to
42
+ * `DCAppAttestService.attestKey` with SHA-256 of `challenge` as clientDataHash,
43
+ * returning `{ keyId, attestation }` (both base64). Store the returned `receipt`
44
+ * and hand it to {@link AttestationProvider.prove} with each assertion.
45
+ */
46
+ export declare function registerAppAttestKey(client: FapiClient, attest: (challenge: string) => Promise<{
47
+ keyId: string;
48
+ attestation: string;
49
+ }>): Promise<FapiResponse<{
50
+ receipt: string;
51
+ expires_at: number;
52
+ }>>;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isAttestationGuarded = void 0;
4
+ exports.encodeAttestationHeader = encodeAttestationHeader;
5
+ exports.attestationHeaderFor = attestationHeaderFor;
6
+ exports.registerAppAttestKey = registerAppAttestKey;
7
+ /** The calls an instance may require attestation on. */
8
+ const GUARDED = [
9
+ /^\/v1\/client\/sign_ups(\?|$)/,
10
+ /^\/v1\/client\/sign_ins(\?|$)/,
11
+ /^\/v1\/client\/me\/phone_numbers(\?|$)/,
12
+ /^\/v1\/client\/me\/phone_numbers\/[^/]+\/prepare_verification(\?|$)/,
13
+ ];
14
+ const isAttestationGuarded = (path, method) => method === 'POST' && GUARDED.some((re) => re.test(path));
15
+ exports.isAttestationGuarded = isAttestationGuarded;
16
+ /** Builds the `Atlas-Attestation` header value from a fresh nonce and the provider's proof. */
17
+ function encodeAttestationHeader(nonce, proof) {
18
+ const body = proof.platform === 'ios'
19
+ ? { p: 'ios', n: nonce, a: proof.assertion, r: proof.receipt }
20
+ : proof.platform === 'ios_devicecheck'
21
+ ? { p: 'ios_dc', n: nonce, t: proof.deviceToken }
22
+ : { p: 'android', n: nonce, t: proof.integrityToken };
23
+ return btoa(JSON.stringify(body)).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
24
+ }
25
+ /** Fetches a nonce, has the provider attest it, and returns the header value; null when no nonce could be fetched. */
26
+ async function attestationHeaderFor(client, provider) {
27
+ const challenge = await client.request('/v1/client/attestation/challenge', { method: 'POST', body: '{}' });
28
+ if (!challenge.ok || !challenge.data)
29
+ return null;
30
+ return encodeAttestationHeader(challenge.data.nonce, await provider.prove(challenge.data.nonce));
31
+ }
32
+ /**
33
+ * iOS: registers an App Attest key. `attest(challenge)` is the app's call to
34
+ * `DCAppAttestService.attestKey` with SHA-256 of `challenge` as clientDataHash,
35
+ * returning `{ keyId, attestation }` (both base64). Store the returned `receipt`
36
+ * and hand it to {@link AttestationProvider.prove} with each assertion.
37
+ */
38
+ async function registerAppAttestKey(client, attest) {
39
+ const challenge = await client.request('/v1/client/attestation/challenge', { method: 'POST', body: '{}' });
40
+ if (!challenge.ok || !challenge.data)
41
+ return challenge;
42
+ const { keyId, attestation } = await attest(challenge.data.nonce);
43
+ return client.request('/v1/client/attestation/app_attest/register', {
44
+ method: 'POST',
45
+ body: JSON.stringify({ nonce: challenge.data.nonce, key_id: keyId, attestation }),
46
+ });
47
+ }
48
+ //# sourceMappingURL=attestation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attestation.js","sourceRoot":"","sources":["../src/attestation.ts"],"names":[],"mappings":";;;AAyCA,0DAQC;AAGD,oDAIC;AAQD,oDAWC;AA9CD,wDAAwD;AACxD,MAAM,OAAO,GAAG;IACd,+BAA+B;IAC/B,+BAA+B;IAC/B,wCAAwC;IACxC,qEAAqE;CACtE,CAAC;AAEK,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAE,MAAc,EAAW,EAAE,CAC5E,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAD9C,QAAA,oBAAoB,wBAC0B;AAE3D,+FAA+F;AAC/F,SAAgB,uBAAuB,CAAC,KAAa,EAAE,KAAuB;IAC5E,MAAM,IAAI,GACR,KAAK,CAAC,QAAQ,KAAK,KAAK;QACtB,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE;QAC9D,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,iBAAiB;YACpC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE;YACjD,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC;IAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC/F,CAAC;AAED,sHAAsH;AAC/G,KAAK,UAAU,oBAAoB,CAAC,MAAkB,EAAE,QAA6B;IAC1F,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,OAAO,CAAoB,kCAAkC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9H,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAClD,OAAO,uBAAuB,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACnG,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,oBAAoB,CACxC,MAAkB,EAClB,MAA8E;IAE9E,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,OAAO,CAAoB,kCAAkC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9H,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;QAAE,OAAO,SAA6E,CAAC;IAC3H,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClE,OAAO,MAAM,CAAC,OAAO,CAAC,4CAA4C,EAAE;QAClE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;KAClF,CAAC,CAAC;AACL,CAAC"}
package/dist/compat.d.ts CHANGED
@@ -155,6 +155,7 @@ export declare class Auth0CompatClient {
155
155
  */
156
156
  handleRedirectCallback(url?: string): Promise<{
157
157
  appState?: unknown;
158
+ redirectUrl?: string;
158
159
  }>;
159
160
  /**
160
161
  * Sign in in a popup: straight at a social provider with
package/dist/compat.js CHANGED
@@ -4,6 +4,7 @@ exports.Auth0CompatClient = exports.Auth0CompatError = void 0;
4
4
  exports.decodeJwtPayload = decodeJwtPayload;
5
5
  exports.auth0UserFromClient = auth0UserFromClient;
6
6
  exports.createAuth0CompatClient = createAuth0CompatClient;
7
+ const journey_redirect_1 = require("./journey-redirect");
7
8
  /**
8
9
  * `@atlasauth/js/compat` — a drop-in for `@auth0/auth0-spa-js` on Atlas, for
9
10
  * framework-free browser apps (what `atlas migrate code --from auth0` rewrites
@@ -276,6 +277,8 @@ class Auth0CompatClient {
276
277
  const href = url ?? currentHref() ?? '';
277
278
  const search = href.includes('?') ? href.slice(href.indexOf('?')) : '';
278
279
  const result = (0, redirect_1.readRedirectResult)(search.split('#')[0] ?? '');
280
+ // Where the sign-in journey says to go next, returned for the app to follow.
281
+ let journeyUrl = null;
279
282
  if (result?.ticket) {
280
283
  const response = await this.raw('/v1/client/tickets/exchange', {
281
284
  method: 'POST',
@@ -283,6 +286,7 @@ class Auth0CompatClient {
283
286
  });
284
287
  if (!response.ok)
285
288
  throw new Auth0CompatError('login_required', 'The sign-in could not be completed.');
289
+ journeyUrl = await (0, journey_redirect_1.journeyRedirectFrom)(response);
286
290
  }
287
291
  else if (result?.status && result.status !== 'complete') {
288
292
  throw new Auth0CompatError('login_required', `Sign-in needs another step (${result.status}).`);
@@ -300,7 +304,7 @@ class Auth0CompatClient {
300
304
  catch {
301
305
  appState = undefined;
302
306
  }
303
- return appState === undefined ? {} : { appState };
307
+ return { ...(appState === undefined ? {} : { appState }), ...(journeyUrl ? { redirectUrl: journeyUrl } : {}) };
304
308
  }
305
309
  /**
306
310
  * Sign in in a popup: straight at a social provider with
@@ -1 +1 @@
1
- {"version":3,"file":"compat.js","sourceRoot":"","sources":["../src/compat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compat.js","sourceRoot":"","sources":["../src/compat.ts"],"names":[],"mappings":"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"}
package/dist/connect.d.ts CHANGED
@@ -48,3 +48,9 @@ export declare function connectExternalAccount(provider: string, opts: ConnectOp
48
48
  * onClick={() => startConnect('github', { api, publishableKey, redirectUrl })}
49
49
  */
50
50
  export declare function startConnect(provider: string, opts: ConnectOptions): Promise<void>;
51
+ /**
52
+ * Re-run the provider authorization for an ALREADY-linked account (to refresh a
53
+ * lapsed credential or grant more scopes). `externalAccountId` is the
54
+ * `external_account_id` of the connection. Resolves like {@link connectExternalAccount}.
55
+ */
56
+ export declare function reauthorizeExternalAccount(externalAccountId: string, opts: ConnectOptions): Promise<ConnectStart>;
package/dist/connect.js CHANGED
@@ -17,6 +17,7 @@
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.connectExternalAccount = connectExternalAccount;
19
19
  exports.startConnect = startConnect;
20
+ exports.reauthorizeExternalAccount = reauthorizeExternalAccount;
20
21
  /**
21
22
  * Begin linking `provider` to the signed-in user. Resolves with the provider
22
23
  * authorize URL to navigate to; throws with the server's message (and a `.code`,
@@ -69,4 +70,25 @@ async function startConnect(provider, opts) {
69
70
  if (typeof window !== 'undefined')
70
71
  window.location.assign(authorizationUrl);
71
72
  }
73
+ /**
74
+ * Re-run the provider authorization for an ALREADY-linked account (to refresh a
75
+ * lapsed credential or grant more scopes). `externalAccountId` is the
76
+ * `external_account_id` of the connection. Resolves like {@link connectExternalAccount}.
77
+ */
78
+ async function reauthorizeExternalAccount(externalAccountId, opts) {
79
+ const doFetch = opts.fetchImpl ?? fetch;
80
+ const res = await doFetch(`${opts.api}/v1/client/me/external_accounts/${encodeURIComponent(externalAccountId)}/reauthorize`, {
81
+ method: 'POST',
82
+ headers: { 'content-type': 'application/json', 'x-publishable-key': opts.publishableKey },
83
+ credentials: 'include',
84
+ body: JSON.stringify({ redirect_url: opts.redirectUrl, additional_scopes: opts.additionalScopes }),
85
+ });
86
+ const data = (await res.json().catch(() => ({})));
87
+ if (!res.ok || !data.authorization_url) {
88
+ const err = new Error(data.errors?.[0]?.message ?? 'Could not start re-authorizing that provider.');
89
+ err.code = data.errors?.[0]?.code;
90
+ throw err;
91
+ }
92
+ return { provider: data.provider ?? '', attemptId: data.attempt_id ?? '', authorizationUrl: data.authorization_url, scopes: data.scopes ?? [] };
93
+ }
72
94
  //# sourceMappingURL=connect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;AA+BH,wDA2CC;AAQD,oCAGC;AA5DD;;;;;GAKG;AACI,KAAK,UAAU,sBAAsB,CAC1C,QAAgB,EAChB,IAAoB;IAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;IACxC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,yCAAyC,EAAE;QAC9E,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,IAAI,CAAC,cAAc,EAAE;QACzF,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,QAAQ;YACR,YAAY,EAAE,IAAI,CAAC,WAAW;YAC9B,iBAAiB,EAAE,IAAI,CAAC,gBAAgB;SACzC,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,IAAI,OAAO,GAAG,2CAA2C,CAAC;QAC1D,IAAI,IAAwB,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAuD,CAAC;YACxF,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,OAAO,CAAC;YACjD,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,sBAAsB;QACxB,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9B,GAAyB,CAAC,IAAI,GAAG,IAAI,CAAC;QACvC,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAK7B,CAAC;IACF,OAAO;QACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,CAAC,UAAU;QAC1B,gBAAgB,EAAE,IAAI,CAAC,iBAAiB;QACxC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;KAC1B,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAE,IAAoB;IACvE,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,sBAAsB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC1E,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import type { FapiClient } from './fapi';
2
+ /**
3
+ * Connected accounts: the connections an app defined for the signed-in user or
4
+ * their active organization (an API key or client-credentials the org entered, or
5
+ * an OAuth account a member shared), with live status. Authorizing an OAuth
6
+ * connection uses `connectExternalAccount` / `reauthorizeExternalAccount`.
7
+ */
8
+ export type ConnectionStatus = 'connected' | 'not_connected' | 'needs_reauth';
9
+ export interface AppConnection {
10
+ object: 'connection';
11
+ id: string;
12
+ owner: {
13
+ type: 'organization' | 'user';
14
+ id: string;
15
+ };
16
+ kind: 'oauth' | 'api_key' | 'client_credentials';
17
+ provider: string;
18
+ name: string;
19
+ allowed_hosts: string[];
20
+ status: ConnectionStatus;
21
+ external_account_id: string | null;
22
+ has_secret: boolean;
23
+ }
24
+ /** Credential to enter for an api_key or client_credentials connection. Write-only. */
25
+ export interface ConnectionCredentialsInput {
26
+ apiKey?: string;
27
+ clientId?: string;
28
+ clientSecret?: string;
29
+ tokenUrl?: string;
30
+ }
31
+ export declare class ConnectionRequestError extends Error {
32
+ readonly status: number;
33
+ readonly code: string;
34
+ constructor(status: number, code: string, message: string);
35
+ }
36
+ /** The signed-in user's own connections. */
37
+ export declare function listMyConnections(client: FapiClient): Promise<AppConnection[]>;
38
+ /** The active organization's connections. */
39
+ export declare function listOrganizationConnections(client: FapiClient, organizationId: string): Promise<AppConnection[]>;
40
+ /** Enter the organization's credential for a connection (needs the org profile-manage permission). */
41
+ export declare function setOrganizationConnectionCredentials(client: FapiClient, organizationId: string, connectionId: string, input: ConnectionCredentialsInput): Promise<AppConnection>;
42
+ /** Share the signed-in admin's own linked provider account with the organization. */
43
+ export declare function shareOrganizationConnection(client: FapiClient, organizationId: string, connectionId: string): Promise<AppConnection>;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConnectionRequestError = void 0;
4
+ exports.listMyConnections = listMyConnections;
5
+ exports.listOrganizationConnections = listOrganizationConnections;
6
+ exports.setOrganizationConnectionCredentials = setOrganizationConnectionCredentials;
7
+ exports.shareOrganizationConnection = shareOrganizationConnection;
8
+ class ConnectionRequestError extends Error {
9
+ status;
10
+ code;
11
+ constructor(status, code, message) {
12
+ super(message);
13
+ this.status = status;
14
+ this.code = code;
15
+ this.name = 'ConnectionRequestError';
16
+ }
17
+ }
18
+ exports.ConnectionRequestError = ConnectionRequestError;
19
+ async function call(client, path, init) {
20
+ const res = await client.request(path, init);
21
+ if (!res.ok || !res.data) {
22
+ const first = res.errors[0];
23
+ throw new ConnectionRequestError(res.status, first?.code ?? 'UNKNOWN', first?.message ?? 'The request failed.');
24
+ }
25
+ return res.data;
26
+ }
27
+ const orgBase = (organizationId) => `/v1/client/organizations/${encodeURIComponent(organizationId)}/connections`;
28
+ /** The signed-in user's own connections. */
29
+ async function listMyConnections(client) {
30
+ return (await call(client, '/v1/client/me/connections', { method: 'GET' })).data ?? [];
31
+ }
32
+ /** The active organization's connections. */
33
+ async function listOrganizationConnections(client, organizationId) {
34
+ return (await call(client, orgBase(organizationId), { method: 'GET' })).data ?? [];
35
+ }
36
+ /** Enter the organization's credential for a connection (needs the org profile-manage permission). */
37
+ function setOrganizationConnectionCredentials(client, organizationId, connectionId, input) {
38
+ const body = {};
39
+ if (input.apiKey !== undefined)
40
+ body.api_key = input.apiKey;
41
+ if (input.clientId !== undefined)
42
+ body.client_id = input.clientId;
43
+ if (input.clientSecret !== undefined)
44
+ body.client_secret = input.clientSecret;
45
+ if (input.tokenUrl !== undefined)
46
+ body.token_url = input.tokenUrl;
47
+ return call(client, `${orgBase(organizationId)}/${encodeURIComponent(connectionId)}/credentials`, { method: 'PUT', body: JSON.stringify(body) });
48
+ }
49
+ /** Share the signed-in admin's own linked provider account with the organization. */
50
+ function shareOrganizationConnection(client, organizationId, connectionId) {
51
+ return call(client, `${orgBase(organizationId)}/${encodeURIComponent(connectionId)}/share`, { method: 'POST', body: '{}' });
52
+ }
53
+ //# sourceMappingURL=connections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connections.js","sourceRoot":"","sources":["../src/connections.ts"],"names":[],"mappings":";;;AAsDA,8CAEC;AAGD,kEAEC;AAGD,oFAYC;AAGD,kEAEC;AAlDD,MAAa,sBAAuB,SAAQ,KAAK;IAEpC;IACA;IAFX,YACW,MAAc,EACd,IAAY,EACrB,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAJN,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAQ;QAIrB,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AATD,wDASC;AAED,KAAK,UAAU,IAAI,CAAI,MAAkB,EAAE,IAAY,EAAE,IAAiB;IACxE,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAI,IAAI,EAAE,IAAI,CAAC,CAAC;IAChD,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,IAAI,sBAAsB,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,IAAI,SAAS,EAAE,KAAK,EAAE,OAAO,IAAI,qBAAqB,CAAC,CAAC;IAClH,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC;AAClB,CAAC;AAED,MAAM,OAAO,GAAG,CAAC,cAAsB,EAAE,EAAE,CAAC,4BAA4B,kBAAkB,CAAC,cAAc,CAAC,cAAc,CAAC;AAEzH,4CAA4C;AACrC,KAAK,UAAU,iBAAiB,CAAC,MAAkB;IACxD,OAAO,CAAC,MAAM,IAAI,CAA4B,MAAM,EAAE,2BAA2B,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;AACpH,CAAC;AAED,6CAA6C;AACtC,KAAK,UAAU,2BAA2B,CAAC,MAAkB,EAAE,cAAsB;IAC1F,OAAO,CAAC,MAAM,IAAI,CAA4B,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;AAChH,CAAC;AAED,sGAAsG;AACtG,SAAgB,oCAAoC,CAClD,MAAkB,EAClB,cAAsB,EACtB,YAAoB,EACpB,KAAiC;IAEjC,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5D,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC;IAClE,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS;QAAE,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,YAAY,CAAC;IAC9E,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC;IAClE,OAAO,IAAI,CAAgB,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,kBAAkB,CAAC,YAAY,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClK,CAAC;AAED,qFAAqF;AACrF,SAAgB,2BAA2B,CAAC,MAAkB,EAAE,cAAsB,EAAE,YAAoB;IAC1G,OAAO,IAAI,CAAgB,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,kBAAkB,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7I,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Wallet-side helpers for Atlas verifiable credentials (OpenID4VCI / OpenID4VP,
3
+ * SD-JWT VC): redeem a credential offer, hold the credential with its device
4
+ * key, and build a selective presentation. For web wallets, tests and demos.
5
+ * Uses WebCrypto (ES256) only. mdoc credentials are received as-is
6
+ * (`format: 'mso_mdoc'`); building an mdoc DeviceResponse is a native-wallet job.
7
+ */
8
+ export interface CredentialOffer {
9
+ credential_issuer: string;
10
+ credential_configuration_ids: string[];
11
+ grants?: Record<string, {
12
+ 'pre-authorized_code'?: string;
13
+ tx_code?: {
14
+ length?: number;
15
+ };
16
+ }>;
17
+ }
18
+ /** The offer inside an `openid-credential-offer://` link (or an https link carrying `credential_offer`). */
19
+ export declare function parseCredentialOffer(link: string): CredentialOffer;
20
+ export interface HolderKey {
21
+ privateJwk: JsonWebKey;
22
+ publicJwk: JsonWebKey;
23
+ }
24
+ /** A fresh P-256 device key. */
25
+ export declare function generateHolderKey(): Promise<HolderKey>;
26
+ export interface ReceivedCredential extends HolderKey {
27
+ credential: string;
28
+ format: 'dc+sd-jwt' | 'mso_mdoc';
29
+ }
30
+ /** Redeem an offer (pre-authorized code flow) and receive the credential bound to a new device key. */
31
+ export declare function receiveCredential(offer: CredentialOffer, opts?: {
32
+ txCode?: string;
33
+ fetch?: typeof fetch;
34
+ key?: HolderKey;
35
+ configurationId?: string;
36
+ }): Promise<ReceivedCredential>;
37
+ /**
38
+ * Build an SD-JWT VC presentation revealing only the claims in `reveal`, with a
39
+ * key-binding JWT over `aud` and `nonce` (from the verifier's request object).
40
+ */
41
+ export declare function presentSdJwt(input: {
42
+ credential: string;
43
+ reveal: string[];
44
+ aud: string;
45
+ nonce: string;
46
+ privateJwk: JsonWebKey;
47
+ }): Promise<string>;