@idp.global/sdk 1.3.1 → 2.0.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 CHANGED
@@ -1,10 +1,20 @@
1
1
  # Changelog
2
2
 
3
- ## Pending
3
+ ## 2026-06-20 - 2.0.0
4
4
 
5
+ ### Breaking Changes
5
6
 
7
+ - upgrade idp interface contracts to v2 (deps)
8
+ - Updates @idp.global/interfaces from ^1.1.0 to ^2.0.0.
9
+ - Updates tsbuild, tsdoc, and Node.js type definitions.
6
10
 
11
+ ## 2026-05-19 - 1.4.0
7
12
 
13
+ ### Features
14
+
15
+ - expose MFA and passkey request helpers (sdk)
16
+ - adds browser SDK typed request getters for MFA status, TOTP enrollment, backup codes, and passkey flows
17
+ - adds IdpMfaRequiredError so server clients can surface MFA challenge metadata
8
18
 
9
19
  ## 2026-05-18 - 1.3.1
10
20
 
@@ -42,4 +52,3 @@
42
52
  - introduces browser-side IdP client and typed request wrappers for authentication and organization workflows
43
53
  - adds server-side account store, password hashing, and authentication services with local and idp.global auth support
44
54
  - includes tests covering explicit account creation, local password authentication, and IdP email mismatch rejection
45
-
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@idp.global/sdk',
6
- version: '1.3.1',
6
+ version: '2.0.0',
7
7
  description: 'Reusable browser and server SDK for idp.global authentication.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxpQkFBaUI7SUFDdkIsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLGdFQUFnRTtDQUM5RSxDQUFBIn0=
@@ -24,6 +24,19 @@ export declare class IdpRequests {
24
24
  get setUserData(): plugins.typedrequest.TypedRequest<plugins.idpInterfaces.request.IReq_SetUserData>;
25
25
  get getUserSessions(): plugins.typedrequest.TypedRequest<plugins.idpInterfaces.request.IReq_GetUserSessions>;
26
26
  get revokeSession(): plugins.typedrequest.TypedRequest<plugins.idpInterfaces.request.IReq_RevokeSession>;
27
+ get getMfaStatus(): plugins.typedrequest.TypedRequest<plugins.idpInterfaces.request.IReq_GetMfaStatus>;
28
+ get startTotpEnrollment(): plugins.typedrequest.TypedRequest<plugins.idpInterfaces.request.IReq_StartTotpEnrollment>;
29
+ get finishTotpEnrollment(): plugins.typedrequest.TypedRequest<plugins.idpInterfaces.request.IReq_FinishTotpEnrollment>;
30
+ get disableTotp(): plugins.typedrequest.TypedRequest<plugins.idpInterfaces.request.IReq_DisableTotp>;
31
+ get regenerateBackupCodes(): plugins.typedrequest.TypedRequest<plugins.idpInterfaces.request.IReq_RegenerateBackupCodes>;
32
+ get verifyMfaChallenge(): plugins.typedrequest.TypedRequest<plugins.idpInterfaces.request.IReq_VerifyMfaChallenge>;
33
+ get startPasskeyRegistration(): plugins.typedrequest.TypedRequest<plugins.idpInterfaces.request.IReq_StartPasskeyRegistration>;
34
+ get finishPasskeyRegistration(): plugins.typedrequest.TypedRequest<plugins.idpInterfaces.request.IReq_FinishPasskeyRegistration>;
35
+ get revokePasskey(): plugins.typedrequest.TypedRequest<plugins.idpInterfaces.request.IReq_RevokePasskey>;
36
+ get startPasskeyLogin(): plugins.typedrequest.TypedRequest<plugins.idpInterfaces.request.IReq_StartPasskeyLogin>;
37
+ get finishPasskeyLogin(): plugins.typedrequest.TypedRequest<plugins.idpInterfaces.request.IReq_FinishPasskeyLogin>;
38
+ get startPasskeyMfa(): plugins.typedrequest.TypedRequest<plugins.idpInterfaces.request.IReq_StartPasskeyMfa>;
39
+ get finishPasskeyMfa(): plugins.typedrequest.TypedRequest<plugins.idpInterfaces.request.IReq_FinishPasskeyMfa>;
27
40
  get getUserActivity(): plugins.typedrequest.TypedRequest<plugins.idpInterfaces.request.IReq_GetUserActivity>;
28
41
  get getOrganizationById(): plugins.typedrequest.TypedRequest<plugins.idpInterfaces.request.IReq_GetOrganizationById>;
29
42
  get updateOrganization(): plugins.typedrequest.TypedRequest<plugins.idpInterfaces.request.IReq_UpdateOrganization>;
@@ -67,6 +67,45 @@ export class IdpRequests {
67
67
  get revokeSession() {
68
68
  return this.idpClientArg.typedsocket.createTypedRequest('revokeSession');
69
69
  }
70
+ get getMfaStatus() {
71
+ return this.idpClientArg.typedsocket.createTypedRequest('getMfaStatus');
72
+ }
73
+ get startTotpEnrollment() {
74
+ return this.idpClientArg.typedsocket.createTypedRequest('startTotpEnrollment');
75
+ }
76
+ get finishTotpEnrollment() {
77
+ return this.idpClientArg.typedsocket.createTypedRequest('finishTotpEnrollment');
78
+ }
79
+ get disableTotp() {
80
+ return this.idpClientArg.typedsocket.createTypedRequest('disableTotp');
81
+ }
82
+ get regenerateBackupCodes() {
83
+ return this.idpClientArg.typedsocket.createTypedRequest('regenerateBackupCodes');
84
+ }
85
+ get verifyMfaChallenge() {
86
+ return this.idpClientArg.typedsocket.createTypedRequest('verifyMfaChallenge');
87
+ }
88
+ get startPasskeyRegistration() {
89
+ return this.idpClientArg.typedsocket.createTypedRequest('startPasskeyRegistration');
90
+ }
91
+ get finishPasskeyRegistration() {
92
+ return this.idpClientArg.typedsocket.createTypedRequest('finishPasskeyRegistration');
93
+ }
94
+ get revokePasskey() {
95
+ return this.idpClientArg.typedsocket.createTypedRequest('revokePasskey');
96
+ }
97
+ get startPasskeyLogin() {
98
+ return this.idpClientArg.typedsocket.createTypedRequest('startPasskeyLogin');
99
+ }
100
+ get finishPasskeyLogin() {
101
+ return this.idpClientArg.typedsocket.createTypedRequest('finishPasskeyLogin');
102
+ }
103
+ get startPasskeyMfa() {
104
+ return this.idpClientArg.typedsocket.createTypedRequest('startPasskeyMfa');
105
+ }
106
+ get finishPasskeyMfa() {
107
+ return this.idpClientArg.typedsocket.createTypedRequest('finishPasskeyMfa');
108
+ }
70
109
  get getUserActivity() {
71
110
  return this.idpClientArg.typedsocket.createTypedRequest('getUserActivity');
72
111
  }
@@ -164,4 +203,4 @@ export class IdpRequests {
164
203
  return this.idpClientArg.typedsocket.createTypedRequest('regenerateAppCredentials');
165
204
  }
166
205
  }
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5pZHByZXF1ZXN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzX2Jyb3dzZXIvY2xhc3Nlcy5pZHByZXF1ZXN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUd4QyxNQUFNLE9BQU8sV0FBVztJQUNGO0lBQXBCLFlBQW9CLFlBQXVCO1FBQXZCLGlCQUFZLEdBQVosWUFBWSxDQUFXO0lBQUcsQ0FBQztJQUUvQyxJQUFXLDZCQUE2QjtRQUN0QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFtRSwrQkFBK0IsQ0FBQyxDQUFDO0lBQzdKLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBNEQsd0JBQXdCLENBQUMsQ0FBQztJQUMvSSxDQUFDO0lBRUQsSUFBVyx3QkFBd0I7UUFDakMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBdUUsbUNBQW1DLENBQUMsQ0FBQztJQUNySyxDQUFDO0lBRUQsSUFBVyxrQkFBa0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBd0Qsb0JBQW9CLENBQUMsQ0FBQztJQUN2SSxDQUFDO0lBRUQsSUFBVyw0QkFBNEI7UUFDckMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBeUUscUNBQXFDLENBQUMsQ0FBQztJQUN6SyxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQWdELFlBQVksQ0FBQyxDQUFDO0lBQ3ZILENBQUM7SUFFRCxJQUFXLGtCQUFrQjtRQUMzQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLGtC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
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5pZHByZXF1ZXN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzX2Jyb3dzZXIvY2xhc3Nlcy5pZHByZXF1ZXN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUd4QyxNQUFNLE9BQU8sV0FBVztJQUNGO0lBQXBCLFlBQW9CLFlBQXVCO1FBQXZCLGlCQUFZLEdBQVosWUFBWSxDQUFXO0lBQUcsQ0FBQztJQUUvQyxJQUFXLDZCQUE2QjtRQUN0QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFtRSwrQkFBK0IsQ0FBQyxDQUFDO0lBQzdKLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBNEQsd0JBQXdCLENBQUMsQ0FBQztJQUMvSSxDQUFDO0lBRUQsSUFBVyx3QkFBd0I7UUFDakMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBdUUsbUNBQW1DLENBQUMsQ0FBQztJQUNySyxDQUFDO0lBRUQsSUFBVyxrQkFBa0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBd0Qsb0JBQW9CLENBQUMsQ0FBQztJQUN2SSxDQUFDO0lBRUQsSUFBVyw0QkFBNEI7UUFDckMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBeUUscUNBQXFDLENBQUMsQ0FBQztJQUN6SyxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQWdELFlBQVksQ0FBQyxDQUFDO0lBQ3ZILENBQUM7SUFFRCxJQUFXLGtCQUFrQjtRQUMzQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLGtC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
@@ -8,6 +8,14 @@ export interface IIdpPasswordAuthResult {
8
8
  jwt: string;
9
9
  refreshToken: string;
10
10
  }
11
+ export declare class IdpMfaRequiredError extends Error {
12
+ mfaChallengeToken: string;
13
+ availableMfaMethods: plugins.idpInterfaces.data.TMfaMethod[];
14
+ constructor(optionsArg: {
15
+ mfaChallengeToken?: string;
16
+ availableMfaMethods?: plugins.idpInterfaces.data.TMfaMethod[];
17
+ });
18
+ }
11
19
  export declare class IdpGlobalServerClient {
12
20
  private optionsArg;
13
21
  private typedrouter;
@@ -1,5 +1,15 @@
1
1
  import * as plugins from './plugins.js';
2
2
  export const defaultIdpGlobalBaseUrl = 'https://idp.global';
3
+ export class IdpMfaRequiredError extends Error {
4
+ mfaChallengeToken;
5
+ availableMfaMethods;
6
+ constructor(optionsArg) {
7
+ super('Two-factor authentication is required');
8
+ this.name = 'IdpMfaRequiredError';
9
+ this.mfaChallengeToken = optionsArg.mfaChallengeToken || '';
10
+ this.availableMfaMethods = optionsArg.availableMfaMethods || [];
11
+ }
12
+ }
3
13
  export class IdpGlobalServerClient {
4
14
  optionsArg;
5
15
  typedrouter = new plugins.typedrequest.TypedRouter();
@@ -28,8 +38,14 @@ export class IdpGlobalServerClient {
28
38
  username: optionsArg.email,
29
39
  password: optionsArg.password,
30
40
  });
31
- if (!loginResponse.refreshToken || loginResponse.twoFaNeeded) {
32
- throw new Error(loginResponse.twoFaNeeded ? 'Two-factor authentication is required' : 'IdP login failed');
41
+ if (loginResponse.twoFaNeeded) {
42
+ throw new IdpMfaRequiredError({
43
+ mfaChallengeToken: loginResponse.mfaChallengeToken,
44
+ availableMfaMethods: loginResponse.availableMfaMethods,
45
+ });
46
+ }
47
+ if (!loginResponse.refreshToken) {
48
+ throw new Error('IdP login failed');
33
49
  }
34
50
  const refreshRequest = socket.createTypedRequest('refreshJwt');
35
51
  const refreshResponse = await refreshRequest.fire({ refreshToken: loginResponse.refreshToken });
@@ -55,4 +71,4 @@ export class IdpGlobalServerClient {
55
71
  return baseUrl;
56
72
  }
57
73
  }
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5pZHAtZ2xvYmFsLXNlcnZlci1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90c19zZXJ2ZXIvY2xhc3Nlcy5pZHAtZ2xvYmFsLXNlcnZlci1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFNeEMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsb0JBQW9CLENBQUM7QUFRNUQsTUFBTSxPQUFPLHFCQUFxQjtJQUtaO0lBSlosV0FBVyxHQUFRLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMxRCxXQUFXLENBQW1DO0lBQzlDLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFtQyxDQUFDO0lBRTVGLFlBQW9CLGFBQTRDLEVBQUU7UUFBOUMsZUFBVSxHQUFWLFVBQVUsQ0FBb0M7SUFBRyxDQUFDO0lBRS9ELEtBQUssQ0FBQyxPQUFPO1FBQ2xCLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3JDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQztRQUMxQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxPQUFPLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQ25FLElBQUksQ0FBQyxXQUFXLEVBQ2hCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUMxQixDQUFDO1FBQ0YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkQsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDO0lBQzFDLENBQUM7SUFFTSxLQUFLLENBQUMsSUFBSTtRQUNmLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztJQUMvQixDQUFDO0lBRU0sS0FBSyxDQUFDLHlCQUF5QixDQUFDLFVBQStDO1FBQ3BGLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3BDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBeUUscUNBQXFDLENBQUMsQ0FBQztRQUM5SixNQUFNLGFBQWEsR0FBRyxNQUFNLFlBQVksQ0FBQyxJQUFJLENBQUM7WUFDNUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxLQUFLO1lBQzFCLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUTtTQUM5QixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksSUFBSSxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDN0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM1RyxDQUFDO1FBRUQsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFnRCxZQUFZLENBQUMsQ0FBQztRQUM5RyxNQUFNLGVBQWUsR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxZQUFZLEVBQUUsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDaEcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBMkMsT0FBTyxDQUFDLENBQUM7UUFDbEcsTUFBTSxhQUFhLEdBQUcsTUFBTSxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLE9BQU87WUFDTCxJQUFJLEVBQUUsYUFBYSxDQUFDLElBQUk7WUFDeEIsR0FBRyxFQUFFLGVBQWUsQ0FBQyxHQUFHO1lBQ3hCLFlBQVksRUFBRSxlQUFlLENBQUMsWUFBWSxJQUFJLGFBQWEsQ0FBQyxZQUFZO1NBQ3pFLENBQUM7SUFDSixDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLElBQUksT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksdUJBQXVCLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxRSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMxQixPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUN2QyxPQUFPLEdBQUcsR0FBRyxPQUFPLGVBQWUsQ0FBQztRQUN0QyxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGIn0=
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5pZHAtZ2xvYmFsLXNlcnZlci1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90c19zZXJ2ZXIvY2xhc3Nlcy5pZHAtZ2xvYmFsLXNlcnZlci1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFNeEMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsb0JBQW9CLENBQUM7QUFRNUQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLEtBQUs7SUFDckMsaUJBQWlCLENBQVM7SUFDMUIsbUJBQW1CLENBQTBDO0lBRXBFLFlBQVksVUFBeUc7UUFDbkgsS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLElBQUksR0FBRyxxQkFBcUIsQ0FBQztRQUNsQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQztRQUM1RCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsVUFBVSxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQztJQUNsRSxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8scUJBQXFCO0lBS1o7SUFKWixXQUFXLEdBQVEsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFELFdBQVcsQ0FBbUM7SUFDOUMsbUJBQW1CLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQW1DLENBQUM7SUFFNUYsWUFBb0IsYUFBNEMsRUFBRTtRQUE5QyxlQUFVLEdBQVYsVUFBVSxDQUFvQztJQUFHLENBQUM7SUFFL0QsS0FBSyxDQUFDLE9BQU87UUFDbEIsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckMsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDO1FBQzFDLENBQUM7UUFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idp.global/sdk",
3
- "version": "1.3.1",
3
+ "version": "2.0.0",
4
4
  "private": false,
5
5
  "description": "Reusable browser and server SDK for idp.global authentication.",
6
6
  "type": "module",
@@ -16,7 +16,7 @@
16
16
  "dependencies": {
17
17
  "@api.global/typedrequest": "^3.3.0",
18
18
  "@api.global/typedsocket": "^4.1.2",
19
- "@idp.global/interfaces": "^1.0.1",
19
+ "@idp.global/interfaces": "^2.0.0",
20
20
  "@push.rocks/smartdata": "^7.1.7",
21
21
  "@push.rocks/smartjson": "^6.0.1",
22
22
  "@push.rocks/smartpromise": "^4.2.4",
@@ -27,12 +27,12 @@
27
27
  "@push.rocks/webstore": "^2.0.22"
28
28
  },
29
29
  "devDependencies": {
30
- "@git.zone/tsbuild": "^4.4.1",
31
- "@git.zone/tsdoc": "^2.0.5",
30
+ "@git.zone/tsbuild": "^4.4.2",
31
+ "@git.zone/tsdoc": "^2.1.1",
32
32
  "@git.zone/tsrun": "^2.0.4",
33
33
  "@git.zone/tstest": "^3.6.6",
34
34
  "@push.rocks/smartdb": "^2.10.0",
35
- "@types/node": "^25.9.0"
35
+ "@types/node": "^26.0.0"
36
36
  },
37
37
  "files": [
38
38
  "ts/**/*",
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@idp.global/sdk',
6
- version: '1.3.1',
6
+ version: '2.0.0',
7
7
  description: 'Reusable browser and server SDK for idp.global authentication.'
8
8
  }
@@ -88,6 +88,58 @@ export class IdpRequests {
88
88
  return this.idpClientArg.typedsocket.createTypedRequest<plugins.idpInterfaces.request.IReq_RevokeSession>('revokeSession');
89
89
  }
90
90
 
91
+ public get getMfaStatus() {
92
+ return this.idpClientArg.typedsocket.createTypedRequest<plugins.idpInterfaces.request.IReq_GetMfaStatus>('getMfaStatus');
93
+ }
94
+
95
+ public get startTotpEnrollment() {
96
+ return this.idpClientArg.typedsocket.createTypedRequest<plugins.idpInterfaces.request.IReq_StartTotpEnrollment>('startTotpEnrollment');
97
+ }
98
+
99
+ public get finishTotpEnrollment() {
100
+ return this.idpClientArg.typedsocket.createTypedRequest<plugins.idpInterfaces.request.IReq_FinishTotpEnrollment>('finishTotpEnrollment');
101
+ }
102
+
103
+ public get disableTotp() {
104
+ return this.idpClientArg.typedsocket.createTypedRequest<plugins.idpInterfaces.request.IReq_DisableTotp>('disableTotp');
105
+ }
106
+
107
+ public get regenerateBackupCodes() {
108
+ return this.idpClientArg.typedsocket.createTypedRequest<plugins.idpInterfaces.request.IReq_RegenerateBackupCodes>('regenerateBackupCodes');
109
+ }
110
+
111
+ public get verifyMfaChallenge() {
112
+ return this.idpClientArg.typedsocket.createTypedRequest<plugins.idpInterfaces.request.IReq_VerifyMfaChallenge>('verifyMfaChallenge');
113
+ }
114
+
115
+ public get startPasskeyRegistration() {
116
+ return this.idpClientArg.typedsocket.createTypedRequest<plugins.idpInterfaces.request.IReq_StartPasskeyRegistration>('startPasskeyRegistration');
117
+ }
118
+
119
+ public get finishPasskeyRegistration() {
120
+ return this.idpClientArg.typedsocket.createTypedRequest<plugins.idpInterfaces.request.IReq_FinishPasskeyRegistration>('finishPasskeyRegistration');
121
+ }
122
+
123
+ public get revokePasskey() {
124
+ return this.idpClientArg.typedsocket.createTypedRequest<plugins.idpInterfaces.request.IReq_RevokePasskey>('revokePasskey');
125
+ }
126
+
127
+ public get startPasskeyLogin() {
128
+ return this.idpClientArg.typedsocket.createTypedRequest<plugins.idpInterfaces.request.IReq_StartPasskeyLogin>('startPasskeyLogin');
129
+ }
130
+
131
+ public get finishPasskeyLogin() {
132
+ return this.idpClientArg.typedsocket.createTypedRequest<plugins.idpInterfaces.request.IReq_FinishPasskeyLogin>('finishPasskeyLogin');
133
+ }
134
+
135
+ public get startPasskeyMfa() {
136
+ return this.idpClientArg.typedsocket.createTypedRequest<plugins.idpInterfaces.request.IReq_StartPasskeyMfa>('startPasskeyMfa');
137
+ }
138
+
139
+ public get finishPasskeyMfa() {
140
+ return this.idpClientArg.typedsocket.createTypedRequest<plugins.idpInterfaces.request.IReq_FinishPasskeyMfa>('finishPasskeyMfa');
141
+ }
142
+
91
143
  public get getUserActivity() {
92
144
  return this.idpClientArg.typedsocket.createTypedRequest<plugins.idpInterfaces.request.IReq_GetUserActivity>('getUserActivity');
93
145
  }
@@ -12,6 +12,18 @@ export interface IIdpPasswordAuthResult {
12
12
  refreshToken: string;
13
13
  }
14
14
 
15
+ export class IdpMfaRequiredError extends Error {
16
+ public mfaChallengeToken: string;
17
+ public availableMfaMethods: plugins.idpInterfaces.data.TMfaMethod[];
18
+
19
+ constructor(optionsArg: { mfaChallengeToken?: string; availableMfaMethods?: plugins.idpInterfaces.data.TMfaMethod[] }) {
20
+ super('Two-factor authentication is required');
21
+ this.name = 'IdpMfaRequiredError';
22
+ this.mfaChallengeToken = optionsArg.mfaChallengeToken || '';
23
+ this.availableMfaMethods = optionsArg.availableMfaMethods || [];
24
+ }
25
+ }
26
+
15
27
  export class IdpGlobalServerClient {
16
28
  private typedrouter: any = new plugins.typedrequest.TypedRouter();
17
29
  private typedsocket?: plugins.typedsocket.TypedSocket;
@@ -44,8 +56,14 @@ export class IdpGlobalServerClient {
44
56
  username: optionsArg.email,
45
57
  password: optionsArg.password,
46
58
  });
47
- if (!loginResponse.refreshToken || loginResponse.twoFaNeeded) {
48
- throw new Error(loginResponse.twoFaNeeded ? 'Two-factor authentication is required' : 'IdP login failed');
59
+ if (loginResponse.twoFaNeeded) {
60
+ throw new IdpMfaRequiredError({
61
+ mfaChallengeToken: (loginResponse as any).mfaChallengeToken,
62
+ availableMfaMethods: (loginResponse as any).availableMfaMethods,
63
+ });
64
+ }
65
+ if (!loginResponse.refreshToken) {
66
+ throw new Error('IdP login failed');
49
67
  }
50
68
 
51
69
  const refreshRequest = socket.createTypedRequest<plugins.idpInterfaces.request.IReq_RefreshJwt>('refreshJwt');