@account-kit/signer 4.16.0 → 4.16.1-alpha.3

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 (63) hide show
  1. package/dist/esm/base.d.ts +32 -0
  2. package/dist/esm/base.js +122 -54
  3. package/dist/esm/base.js.map +1 -1
  4. package/dist/esm/client/base.d.ts +36 -2
  5. package/dist/esm/client/base.js.map +1 -1
  6. package/dist/esm/client/index.d.ts +40 -1
  7. package/dist/esm/client/index.js +164 -7
  8. package/dist/esm/client/index.js.map +1 -1
  9. package/dist/esm/client/types.d.ts +68 -1
  10. package/dist/esm/client/types.js.map +1 -1
  11. package/dist/esm/errors.d.ts +6 -0
  12. package/dist/esm/errors.js +18 -0
  13. package/dist/esm/errors.js.map +1 -1
  14. package/dist/esm/index.d.ts +1 -1
  15. package/dist/esm/index.js +1 -1
  16. package/dist/esm/index.js.map +1 -1
  17. package/dist/esm/session/manager.d.ts +1 -0
  18. package/dist/esm/session/manager.js.map +1 -1
  19. package/dist/esm/signer.d.ts +3 -1
  20. package/dist/esm/signer.js.map +1 -1
  21. package/dist/esm/types.d.ts +8 -0
  22. package/dist/esm/types.js +5 -0
  23. package/dist/esm/types.js.map +1 -1
  24. package/dist/esm/utils/parseMfaError.d.ts +2 -0
  25. package/dist/esm/utils/parseMfaError.js +15 -0
  26. package/dist/esm/utils/parseMfaError.js.map +1 -0
  27. package/dist/esm/version.d.ts +1 -1
  28. package/dist/esm/version.js +1 -1
  29. package/dist/esm/version.js.map +1 -1
  30. package/dist/types/base.d.ts +32 -0
  31. package/dist/types/base.d.ts.map +1 -1
  32. package/dist/types/client/base.d.ts +36 -2
  33. package/dist/types/client/base.d.ts.map +1 -1
  34. package/dist/types/client/index.d.ts +40 -1
  35. package/dist/types/client/index.d.ts.map +1 -1
  36. package/dist/types/client/types.d.ts +68 -1
  37. package/dist/types/client/types.d.ts.map +1 -1
  38. package/dist/types/errors.d.ts +6 -0
  39. package/dist/types/errors.d.ts.map +1 -1
  40. package/dist/types/index.d.ts +1 -1
  41. package/dist/types/index.d.ts.map +1 -1
  42. package/dist/types/session/manager.d.ts +1 -0
  43. package/dist/types/session/manager.d.ts.map +1 -1
  44. package/dist/types/signer.d.ts +3 -1
  45. package/dist/types/signer.d.ts.map +1 -1
  46. package/dist/types/types.d.ts +8 -0
  47. package/dist/types/types.d.ts.map +1 -1
  48. package/dist/types/utils/parseMfaError.d.ts +3 -0
  49. package/dist/types/utils/parseMfaError.d.ts.map +1 -0
  50. package/dist/types/version.d.ts +1 -1
  51. package/dist/types/version.d.ts.map +1 -1
  52. package/package.json +4 -4
  53. package/src/base.ts +171 -60
  54. package/src/client/base.ts +43 -1
  55. package/src/client/index.ts +174 -7
  56. package/src/client/types.ts +78 -1
  57. package/src/errors.ts +11 -1
  58. package/src/index.ts +5 -1
  59. package/src/session/manager.ts +5 -1
  60. package/src/signer.ts +6 -1
  61. package/src/types.ts +9 -0
  62. package/src/utils/parseMfaError.ts +15 -0
  63. package/src/version.ts +1 -1
package/src/errors.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { BaseError } from "@aa-sdk/core";
2
-
2
+ import type { MfaFactor } from "./client/types";
3
3
  export class NotAuthenticatedError extends BaseError {
4
4
  override name = "NotAuthenticatedError";
5
5
  constructor() {
@@ -23,3 +23,13 @@ export class OAuthProvidersError extends BaseError {
23
23
  });
24
24
  }
25
25
  }
26
+
27
+ export class MfaRequiredError extends BaseError {
28
+ override name = "MfaRequiredError";
29
+ public multiFactors: MfaFactor[];
30
+
31
+ constructor(multiFactors: MfaFactor[]) {
32
+ super("MFA is required for this user");
33
+ this.multiFactors = multiFactors;
34
+ }
35
+ }
package/src/index.ts CHANGED
@@ -6,7 +6,11 @@ export {
6
6
  OauthFailedError,
7
7
  } from "./client/index.js";
8
8
  export type * from "./client/types.js";
9
- export { NotAuthenticatedError, OAuthProvidersError } from "./errors.js";
9
+ export {
10
+ NotAuthenticatedError,
11
+ OAuthProvidersError,
12
+ MfaRequiredError,
13
+ } from "./errors.js";
10
14
  export {
11
15
  DEFAULT_SESSION_MS,
12
16
  SessionManagerParamsSchema,
@@ -43,7 +43,11 @@ type Store = Mutate<
43
43
  [["zustand/subscribeWithSelector", never], ["zustand/persist", SessionState]]
44
44
  >;
45
45
 
46
- type TemporarySession = { orgId: string; isNewUser?: boolean };
46
+ type TemporarySession = {
47
+ orgId: string;
48
+ isNewUser?: boolean;
49
+ isMfaRequired?: boolean;
50
+ };
47
51
 
48
52
  export class SessionManager {
49
53
  private sessionKey: string;
package/src/signer.ts CHANGED
@@ -4,7 +4,10 @@ import {
4
4
  AlchemySignerClientParamsSchema,
5
5
  AlchemySignerWebClient,
6
6
  } from "./client/index.js";
7
- import type { CredentialCreationOptionOverrides } from "./client/types.js";
7
+ import type {
8
+ CredentialCreationOptionOverrides,
9
+ VerifyMfaParams,
10
+ } from "./client/types.js";
8
11
  import { SessionManagerParamsSchema } from "./session/manager.js";
9
12
 
10
13
  export type AuthParams =
@@ -13,6 +16,7 @@ export type AuthParams =
13
16
  email: string;
14
17
  emailMode?: "magicLink" | "otp";
15
18
  redirectParams?: URLSearchParams;
19
+ multiFactors?: VerifyMfaParams[];
16
20
  }
17
21
  | { type: "email"; bundle: string; orgId?: string; isNewUser?: boolean }
18
22
  | {
@@ -46,6 +50,7 @@ export type AuthParams =
46
50
  | {
47
51
  type: "otp";
48
52
  otpCode: string;
53
+ multiFactors?: VerifyMfaParams[];
49
54
  };
50
55
 
51
56
  export type OauthProviderConfig =
package/src/types.ts CHANGED
@@ -6,6 +6,10 @@ export type AlchemySignerEvents = {
6
6
  disconnected(): void;
7
7
  statusChanged(status: AlchemySignerStatus): void;
8
8
  errorChanged(error: ErrorInfo | undefined): void;
9
+ mfaStatusChanged(mfaStatus: {
10
+ mfaRequired: boolean;
11
+ mfaFactorId?: string;
12
+ }): void;
9
13
  };
10
14
 
11
15
  export type AlchemySignerEvent = keyof AlchemySignerEvents;
@@ -21,6 +25,11 @@ export enum AlchemySignerStatus {
21
25
  AWAITING_OTP_AUTH = "AWAITING_OTP_AUTH",
22
26
  }
23
27
 
28
+ export enum AlchemyMfaStatus {
29
+ NOT_REQUIRED = "not_required",
30
+ REQUIRED = "required",
31
+ }
32
+
24
33
  export interface ErrorInfo {
25
34
  name: string;
26
35
  message: string;
@@ -0,0 +1,15 @@
1
+ import type { MfaFactor } from "../client/types.js";
2
+
3
+ export function parseMfaError(error: unknown): MfaFactor[] | null {
4
+ if (error instanceof Error) {
5
+ try {
6
+ const parsed = JSON.parse(error.message);
7
+ if (parsed?.data?.multiFactors) {
8
+ return parsed.data.multiFactors;
9
+ }
10
+ } catch {
11
+ // ignore JSON parse failures
12
+ }
13
+ }
14
+ return null;
15
+ }
package/src/version.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  // This file is autogenerated by inject-version.ts. Any changes will be
2
2
  // overwritten on commit!
3
- export const VERSION = "4.16.0";
3
+ export const VERSION = "4.16.1-alpha.3";