@passflow/react 0.17.0 → 0.19.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 (101) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/index.cjs +1 -1
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.es.js +154 -133
  5. package/dist/index.es.js.map +1 -1
  6. package/dist/src/components/flow/passflow/index.d.cts +7 -1
  7. package/dist/src/components/flow/passflow/index.d.ts +7 -1
  8. package/dist/src/components/flow/passflow/index.d.ts.map +1 -1
  9. package/dist/src/components/form/reset-password/index.d.cts +2 -0
  10. package/dist/src/components/form/reset-password/index.d.ts +2 -0
  11. package/dist/src/components/form/reset-password/index.d.ts.map +1 -1
  12. package/dist/src/components/form/signin/index.d.cts +2 -1
  13. package/dist/src/components/form/signin/index.d.ts +2 -1
  14. package/dist/src/components/form/signin/index.d.ts.map +1 -1
  15. package/dist/src/components/form/signup/index.d.cts +2 -1
  16. package/dist/src/components/form/signup/index.d.ts +2 -1
  17. package/dist/src/components/form/signup/index.d.ts.map +1 -1
  18. package/dist/src/components/form/verify-challenge/verify-challenge-approval.d.cts +13 -0
  19. package/dist/src/components/form/verify-challenge/verify-challenge-approval.d.ts +13 -0
  20. package/dist/src/components/form/verify-challenge/verify-challenge-approval.d.ts.map +1 -0
  21. package/dist/src/components/form/verify-challenge/verify-challenge-magic-link.d.cts +6 -1
  22. package/dist/src/components/form/verify-challenge/verify-challenge-magic-link.d.ts +6 -1
  23. package/dist/src/components/form/verify-challenge/verify-challenge-magic-link.d.ts.map +1 -1
  24. package/dist/src/components/form/verify-challenge/verify-challenge-otp.d.ts.map +1 -1
  25. package/dist/src/components/provider/passflow-provider.d.cts +5 -14
  26. package/dist/src/components/provider/passflow-provider.d.ts +5 -14
  27. package/dist/src/components/provider/passflow-provider.d.ts.map +1 -1
  28. package/dist/src/components/ui/button/index.d.ts.map +1 -1
  29. package/dist/src/components/ui/fields/field-otp.d.cts +3 -1
  30. package/dist/src/components/ui/fields/field-otp.d.ts +3 -1
  31. package/dist/src/components/ui/fields/field-otp.d.ts.map +1 -1
  32. package/dist/src/components/ui/login-screen/credentials.d.ts.map +1 -1
  33. package/dist/src/components/ui/login-screen/email-code.d.cts +25 -0
  34. package/dist/src/components/ui/login-screen/email-code.d.ts +25 -0
  35. package/dist/src/components/ui/login-screen/email-code.d.ts.map +1 -0
  36. package/dist/src/components/ui/login-screen/index.d.cts +1 -1
  37. package/dist/src/components/ui/login-screen/index.d.ts +1 -1
  38. package/dist/src/components/ui/login-screen/index.d.ts.map +1 -1
  39. package/dist/src/components/ui/login-screen/login-screen.d.ts.map +1 -1
  40. package/dist/src/components/ui/login-screen/new-password.d.cts +10 -0
  41. package/dist/src/components/ui/login-screen/new-password.d.ts +10 -0
  42. package/dist/src/components/ui/login-screen/new-password.d.ts.map +1 -0
  43. package/dist/src/components/ui/login-screen/passwordless-approval.d.cts +4 -0
  44. package/dist/src/components/ui/login-screen/passwordless-approval.d.ts +4 -0
  45. package/dist/src/components/ui/login-screen/passwordless-approval.d.ts.map +1 -0
  46. package/dist/src/components/ui/login-screen/passwordless-waiting.d.cts +4 -0
  47. package/dist/src/components/ui/login-screen/passwordless-waiting.d.ts +4 -0
  48. package/dist/src/components/ui/login-screen/passwordless-waiting.d.ts.map +1 -0
  49. package/dist/src/components/ui/login-screen/status.d.ts.map +1 -1
  50. package/dist/src/components/ui/login-screen/types.d.cts +107 -3
  51. package/dist/src/components/ui/login-screen/types.d.ts +107 -3
  52. package/dist/src/components/ui/login-screen/types.d.ts.map +1 -1
  53. package/dist/src/context/navigation-context.d.cts +3 -0
  54. package/dist/src/context/navigation-context.d.ts +3 -0
  55. package/dist/src/context/navigation-context.d.ts.map +1 -1
  56. package/dist/src/hooks/index.d.cts +1 -0
  57. package/dist/src/hooks/index.d.ts +1 -0
  58. package/dist/src/hooks/index.d.ts.map +1 -1
  59. package/dist/src/hooks/use-email-code-step.d.cts +39 -0
  60. package/dist/src/hooks/use-email-code-step.d.ts +39 -0
  61. package/dist/src/hooks/use-email-code-step.d.ts.map +1 -0
  62. package/dist/src/hooks/use-join-invite.d.ts.map +1 -1
  63. package/dist/src/hooks/use-provider.d.cts +2 -1
  64. package/dist/src/hooks/use-provider.d.ts +2 -1
  65. package/dist/src/hooks/use-provider.d.ts.map +1 -1
  66. package/dist/src/hooks/use-reset-password.d.cts +14 -1
  67. package/dist/src/hooks/use-reset-password.d.ts +14 -1
  68. package/dist/src/hooks/use-reset-password.d.ts.map +1 -1
  69. package/dist/src/hooks/use-signin.d.cts +6 -0
  70. package/dist/src/hooks/use-signin.d.ts +6 -0
  71. package/dist/src/hooks/use-signin.d.ts.map +1 -1
  72. package/dist/src/hooks/use-signup.d.cts +6 -0
  73. package/dist/src/hooks/use-signup.d.ts +6 -0
  74. package/dist/src/hooks/use-signup.d.ts.map +1 -1
  75. package/dist/src/index.d.cts +1 -0
  76. package/dist/src/index.d.ts +1 -0
  77. package/dist/src/index.d.ts.map +1 -1
  78. package/dist/src/types/auth-errors.d.cts +2 -0
  79. package/dist/src/types/auth-errors.d.ts +2 -0
  80. package/dist/src/types/auth-errors.d.ts.map +1 -1
  81. package/dist/src/types/email-verification.d.cts +18 -0
  82. package/dist/src/types/email-verification.d.ts +18 -0
  83. package/dist/src/types/email-verification.d.ts.map +1 -0
  84. package/dist/src/types/index.d.cts +2 -0
  85. package/dist/src/types/index.d.ts +2 -0
  86. package/dist/src/types/index.d.ts.map +1 -1
  87. package/dist/src/utils/auth-error.d.cts +77 -0
  88. package/dist/src/utils/auth-error.d.ts +77 -0
  89. package/dist/src/utils/auth-error.d.ts.map +1 -1
  90. package/dist/src/utils/email-verification.d.cts +44 -0
  91. package/dist/src/utils/email-verification.d.ts +44 -0
  92. package/dist/src/utils/email-verification.d.ts.map +1 -0
  93. package/dist/src/utils/get-url-errors.d.ts.map +1 -1
  94. package/dist/src/utils/index.d.cts +3 -2
  95. package/dist/src/utils/index.d.ts +3 -2
  96. package/dist/src/utils/index.d.ts.map +1 -1
  97. package/dist/src/utils/url-params.d.cts +17 -0
  98. package/dist/src/utils/url-params.d.ts +17 -0
  99. package/dist/src/utils/url-params.d.ts.map +1 -1
  100. package/dist/style.css +1 -1
  101. package/package.json +6 -3
@@ -3,7 +3,11 @@ import type { AuthUiError, DefaultMethod } from '../../../types/index.cjs';
3
3
  export type LoginScreenChrome = {
4
4
  title: string;
5
5
  subtitle?: string;
6
- variant?: 'sign-in';
6
+ /**
7
+ * `sign-in` and `reset-password` keep the wrapper class (`passflow-signin-wrapper`,
8
+ * `passflow-reset-password-wrapper`) that an app's custom CSS may target.
9
+ */
10
+ variant?: 'sign-in' | 'reset-password';
7
11
  customCss?: string;
8
12
  customLogo?: string;
9
13
  customLogoAlt?: string;
@@ -69,6 +73,8 @@ export type LoginCredentialsState = {
69
73
  onPasskey?: () => void;
70
74
  onProvider?: (provider: Providers) => void;
71
75
  onReset?: () => void;
76
+ /** Shown beside the alert when `error.startAgain` is set: the request behind this form is gone. */
77
+ onStartAgain?: () => void;
72
78
  };
73
79
  export type LoginCodeEntryState = {
74
80
  kind: 'code-entry';
@@ -80,6 +86,60 @@ export type LoginCodeEntryState = {
80
86
  testId?: string;
81
87
  onSubmit: (code: string) => void;
82
88
  };
89
+ /** The resend control of the emailed-code step. Omitted when the code cannot be sent again. */
90
+ export type LoginEmailCodeResend = {
91
+ /** Seconds the control waits before it can be pressed. Default 30; restarts on every press and on `restartKey` change. */
92
+ cooldownSeconds?: number;
93
+ /** Changes when a new code was sent (pass the challenge id): restarts the cooldown and clears the typed code. */
94
+ restartKey?: string;
95
+ /** A resend is in flight. */
96
+ busy?: boolean;
97
+ /** Default `Resend code`. */
98
+ label?: string;
99
+ onResend: () => void;
100
+ };
101
+ /** The way back out of the step, such as `Use a different email` or `Back to sign in`. */
102
+ export type LoginScreenAction = {
103
+ label: string;
104
+ onClick: () => void;
105
+ };
106
+ /**
107
+ * The emailed verification code step: the server's prompt, a row of code boxes,
108
+ * Verify, Resend and a way back.
109
+ */
110
+ export type LoginEmailCodeState = {
111
+ kind: 'email-code';
112
+ /** The server's prompt, such as "We sent a code to a***@example.com."; it also names the code field. */
113
+ message: string;
114
+ /** Digits in the code. Default 6. */
115
+ length?: number;
116
+ /** The server's answer to a failed verify or resend; clears the typed code. */
117
+ error?: string | null;
118
+ /** A verify is in flight: the code, Resend and the way back are locked. */
119
+ busy?: boolean;
120
+ /** Default `Verify`. */
121
+ submitLabel?: string;
122
+ resend?: LoginEmailCodeResend;
123
+ secondaryAction?: LoginScreenAction;
124
+ testId?: string;
125
+ onSubmit: (code: string) => void;
126
+ };
127
+ /** Choosing a new password: for a reset, or to finish an account started by email. */
128
+ export type LoginNewPasswordState = {
129
+ kind: 'new-password';
130
+ passwordPolicy: PassflowPasswordPolicySettings | null;
131
+ /** Default `New password`. */
132
+ label?: string;
133
+ /** Default `Enter your new password below.` */
134
+ hint?: string;
135
+ error?: string | null;
136
+ /** The password is being saved: the field and the button are locked. */
137
+ busy?: boolean;
138
+ /** Default `Save new password`. */
139
+ submitLabel?: string;
140
+ testId?: string;
141
+ onSubmit: (password: string) => void;
142
+ };
83
143
  export type LoginPasskeyProgressState = {
84
144
  kind: 'passkey-progress';
85
145
  working: boolean;
@@ -172,7 +232,8 @@ export type LoginConsentState = {
172
232
  };
173
233
  export type LoginStatusState = {
174
234
  kind: 'status';
175
- tone: 'success' | 'error' | 'disabled';
235
+ /** `info` is a neutral notice, such as "check your email"; it keeps the normal logo. */
236
+ tone: 'success' | 'error' | 'disabled' | 'info';
176
237
  message: string;
177
238
  detail?: string;
178
239
  recoverable?: boolean;
@@ -184,7 +245,50 @@ export type LoginStatusState = {
184
245
  onClick: () => void;
185
246
  };
186
247
  };
187
- export type LoginScreenState = LoginCredentialsState | LoginCodeEntryState | LoginPasskeyProgressState | LoginDeviceApprovalState | LoginSecondFactorState | LoginInvitationState | LoginGeneralErrorState | LoginConsentState | LoginStatusState;
248
+ /**
249
+ * The tab that started a cross-device sign-in, waiting while the link is approved. The outcome messages use `status`,
250
+ * with a primary action labelled `Start again`.
251
+ */
252
+ export type LoginPasswordlessWaitingState = {
253
+ kind: 'passwordless-waiting';
254
+ /** The 4-digit code the approving device asks for. Only this tab ever shows it. */
255
+ matchCode: string;
256
+ /** The answer to a failed resend. */
257
+ error?: string | null;
258
+ /** The label defaults to `Resend email`. */
259
+ resend?: LoginEmailCodeResend;
260
+ testId?: string;
261
+ codeTestId?: string;
262
+ };
263
+ /**
264
+ * The device that opened the link, approving or denying the sign-in. It shows no identity, and the final messages use
265
+ * `status`.
266
+ */
267
+ export type LoginPasswordlessApprovalFormState = {
268
+ kind: 'passwordless-approval';
269
+ loading?: false;
270
+ appName: string;
271
+ browser: string;
272
+ os: string;
273
+ /** Omitted from the screen when null. */
274
+ location: string | null;
275
+ /** Ready to display. */
276
+ requestedAt: string;
277
+ /** Why the last answer failed; clears the typed code. */
278
+ error?: string | null;
279
+ /** An answer is in flight: the code and both actions are locked. */
280
+ busy?: boolean;
281
+ testId?: string;
282
+ onApprove: (code: string) => void;
283
+ onDeny: () => void;
284
+ };
285
+ /** The sign-in request is still being read: only a progress message shows. */
286
+ export type LoginPasswordlessApprovalLoadingState = {
287
+ kind: 'passwordless-approval';
288
+ loading: true;
289
+ };
290
+ export type LoginPasswordlessApprovalState = LoginPasswordlessApprovalFormState | LoginPasswordlessApprovalLoadingState;
291
+ export type LoginScreenState = LoginCredentialsState | LoginCodeEntryState | LoginEmailCodeState | LoginPasswordlessWaitingState | LoginPasswordlessApprovalState | LoginNewPasswordState | LoginPasskeyProgressState | LoginDeviceApprovalState | LoginSecondFactorState | LoginInvitationState | LoginGeneralErrorState | LoginConsentState | LoginStatusState;
188
292
  export type LoginScreenProps = {
189
293
  chrome: LoginScreenChrome;
190
294
  state: LoginScreenState;
@@ -3,7 +3,11 @@ import type { AuthUiError, DefaultMethod } from '../../../types/index.js';
3
3
  export type LoginScreenChrome = {
4
4
  title: string;
5
5
  subtitle?: string;
6
- variant?: 'sign-in';
6
+ /**
7
+ * `sign-in` and `reset-password` keep the wrapper class (`passflow-signin-wrapper`,
8
+ * `passflow-reset-password-wrapper`) that an app's custom CSS may target.
9
+ */
10
+ variant?: 'sign-in' | 'reset-password';
7
11
  customCss?: string;
8
12
  customLogo?: string;
9
13
  customLogoAlt?: string;
@@ -69,6 +73,8 @@ export type LoginCredentialsState = {
69
73
  onPasskey?: () => void;
70
74
  onProvider?: (provider: Providers) => void;
71
75
  onReset?: () => void;
76
+ /** Shown beside the alert when `error.startAgain` is set: the request behind this form is gone. */
77
+ onStartAgain?: () => void;
72
78
  };
73
79
  export type LoginCodeEntryState = {
74
80
  kind: 'code-entry';
@@ -80,6 +86,60 @@ export type LoginCodeEntryState = {
80
86
  testId?: string;
81
87
  onSubmit: (code: string) => void;
82
88
  };
89
+ /** The resend control of the emailed-code step. Omitted when the code cannot be sent again. */
90
+ export type LoginEmailCodeResend = {
91
+ /** Seconds the control waits before it can be pressed. Default 30; restarts on every press and on `restartKey` change. */
92
+ cooldownSeconds?: number;
93
+ /** Changes when a new code was sent (pass the challenge id): restarts the cooldown and clears the typed code. */
94
+ restartKey?: string;
95
+ /** A resend is in flight. */
96
+ busy?: boolean;
97
+ /** Default `Resend code`. */
98
+ label?: string;
99
+ onResend: () => void;
100
+ };
101
+ /** The way back out of the step, such as `Use a different email` or `Back to sign in`. */
102
+ export type LoginScreenAction = {
103
+ label: string;
104
+ onClick: () => void;
105
+ };
106
+ /**
107
+ * The emailed verification code step: the server's prompt, a row of code boxes,
108
+ * Verify, Resend and a way back.
109
+ */
110
+ export type LoginEmailCodeState = {
111
+ kind: 'email-code';
112
+ /** The server's prompt, such as "We sent a code to a***@example.com."; it also names the code field. */
113
+ message: string;
114
+ /** Digits in the code. Default 6. */
115
+ length?: number;
116
+ /** The server's answer to a failed verify or resend; clears the typed code. */
117
+ error?: string | null;
118
+ /** A verify is in flight: the code, Resend and the way back are locked. */
119
+ busy?: boolean;
120
+ /** Default `Verify`. */
121
+ submitLabel?: string;
122
+ resend?: LoginEmailCodeResend;
123
+ secondaryAction?: LoginScreenAction;
124
+ testId?: string;
125
+ onSubmit: (code: string) => void;
126
+ };
127
+ /** Choosing a new password: for a reset, or to finish an account started by email. */
128
+ export type LoginNewPasswordState = {
129
+ kind: 'new-password';
130
+ passwordPolicy: PassflowPasswordPolicySettings | null;
131
+ /** Default `New password`. */
132
+ label?: string;
133
+ /** Default `Enter your new password below.` */
134
+ hint?: string;
135
+ error?: string | null;
136
+ /** The password is being saved: the field and the button are locked. */
137
+ busy?: boolean;
138
+ /** Default `Save new password`. */
139
+ submitLabel?: string;
140
+ testId?: string;
141
+ onSubmit: (password: string) => void;
142
+ };
83
143
  export type LoginPasskeyProgressState = {
84
144
  kind: 'passkey-progress';
85
145
  working: boolean;
@@ -172,7 +232,8 @@ export type LoginConsentState = {
172
232
  };
173
233
  export type LoginStatusState = {
174
234
  kind: 'status';
175
- tone: 'success' | 'error' | 'disabled';
235
+ /** `info` is a neutral notice, such as "check your email"; it keeps the normal logo. */
236
+ tone: 'success' | 'error' | 'disabled' | 'info';
176
237
  message: string;
177
238
  detail?: string;
178
239
  recoverable?: boolean;
@@ -184,7 +245,50 @@ export type LoginStatusState = {
184
245
  onClick: () => void;
185
246
  };
186
247
  };
187
- export type LoginScreenState = LoginCredentialsState | LoginCodeEntryState | LoginPasskeyProgressState | LoginDeviceApprovalState | LoginSecondFactorState | LoginInvitationState | LoginGeneralErrorState | LoginConsentState | LoginStatusState;
248
+ /**
249
+ * The tab that started a cross-device sign-in, waiting while the link is approved. The outcome messages use `status`,
250
+ * with a primary action labelled `Start again`.
251
+ */
252
+ export type LoginPasswordlessWaitingState = {
253
+ kind: 'passwordless-waiting';
254
+ /** The 4-digit code the approving device asks for. Only this tab ever shows it. */
255
+ matchCode: string;
256
+ /** The answer to a failed resend. */
257
+ error?: string | null;
258
+ /** The label defaults to `Resend email`. */
259
+ resend?: LoginEmailCodeResend;
260
+ testId?: string;
261
+ codeTestId?: string;
262
+ };
263
+ /**
264
+ * The device that opened the link, approving or denying the sign-in. It shows no identity, and the final messages use
265
+ * `status`.
266
+ */
267
+ export type LoginPasswordlessApprovalFormState = {
268
+ kind: 'passwordless-approval';
269
+ loading?: false;
270
+ appName: string;
271
+ browser: string;
272
+ os: string;
273
+ /** Omitted from the screen when null. */
274
+ location: string | null;
275
+ /** Ready to display. */
276
+ requestedAt: string;
277
+ /** Why the last answer failed; clears the typed code. */
278
+ error?: string | null;
279
+ /** An answer is in flight: the code and both actions are locked. */
280
+ busy?: boolean;
281
+ testId?: string;
282
+ onApprove: (code: string) => void;
283
+ onDeny: () => void;
284
+ };
285
+ /** The sign-in request is still being read: only a progress message shows. */
286
+ export type LoginPasswordlessApprovalLoadingState = {
287
+ kind: 'passwordless-approval';
288
+ loading: true;
289
+ };
290
+ export type LoginPasswordlessApprovalState = LoginPasswordlessApprovalFormState | LoginPasswordlessApprovalLoadingState;
291
+ export type LoginScreenState = LoginCredentialsState | LoginCodeEntryState | LoginEmailCodeState | LoginPasswordlessWaitingState | LoginPasswordlessApprovalState | LoginNewPasswordState | LoginPasskeyProgressState | LoginDeviceApprovalState | LoginSecondFactorState | LoginInvitationState | LoginGeneralErrorState | LoginConsentState | LoginStatusState;
188
292
  export type LoginScreenProps = {
189
293
  chrome: LoginScreenChrome;
190
294
  state: LoginScreenState;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/login-screen/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/login-screen/types.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export type NavigateOptions = {
5
5
  };
6
6
  export type RouterType = 'default' | 'react-router' | 'tanstack-router' | 'wouter';
7
7
  export type NavigateFunction = (options: NavigateOptions) => void;
8
+ export type FederatedLandingOutcome = 'signed-in' | 'failed';
8
9
  export type NavigationContextType = {
9
10
  navigate: NavigateFunction;
10
11
  setNavigate: (navigate: NavigateFunction | null) => void;
@@ -19,6 +20,8 @@ export type NavigationContextType = {
19
20
  twoFactorVerifyPath?: string;
20
21
  /** Registers the 2FA route of a mounted flow; `null` withdraws it. */
21
22
  setTwoFactorVerifyPath?: (path: string | null) => void;
23
+ /** How a PKCE federated redirect that landed on this page ended. A second factor owed is not an outcome here. */
24
+ federatedLandingOutcome?: FederatedLandingOutcome;
22
25
  };
23
26
  export declare const defaultNavigate: NavigateFunction;
24
27
  export declare const NavigationContext: import("react").Context<NavigationContextType>;
@@ -5,6 +5,7 @@ export type NavigateOptions = {
5
5
  };
6
6
  export type RouterType = 'default' | 'react-router' | 'tanstack-router' | 'wouter';
7
7
  export type NavigateFunction = (options: NavigateOptions) => void;
8
+ export type FederatedLandingOutcome = 'signed-in' | 'failed';
8
9
  export type NavigationContextType = {
9
10
  navigate: NavigateFunction;
10
11
  setNavigate: (navigate: NavigateFunction | null) => void;
@@ -19,6 +20,8 @@ export type NavigationContextType = {
19
20
  twoFactorVerifyPath?: string;
20
21
  /** Registers the 2FA route of a mounted flow; `null` withdraws it. */
21
22
  setTwoFactorVerifyPath?: (path: string | null) => void;
23
+ /** How a PKCE federated redirect that landed on this page ended. A second factor owed is not an outcome here. */
24
+ federatedLandingOutcome?: FederatedLandingOutcome;
22
25
  };
23
26
  export declare const defaultNavigate: NavigateFunction;
24
27
  export declare const NavigationContext: import("react").Context<NavigationContextType>;
@@ -1 +1 @@
1
- {"version":3,"file":"navigation-context.d.ts","sourceRoot":"","sources":["../../../src/context/navigation-context.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,cAAc,GAAG,iBAAiB,GAAG,QAAQ,CAAC;AAEnF,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;AAElE,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,WAAW,EAAE,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,KAAK,IAAI,CAAC;IACzD,MAAM,EAAE,UAAU,CAAC;IACnB;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sEAAsE;IACtE,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACxD,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,gBAO7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,gDAI5B,CAAC"}
1
+ {"version":3,"file":"navigation-context.d.ts","sourceRoot":"","sources":["../../../src/context/navigation-context.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,cAAc,GAAG,iBAAiB,GAAG,QAAQ,CAAC;AAEnF,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;AAElE,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE7D,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,WAAW,EAAE,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,KAAK,IAAI,CAAC;IACzD,MAAM,EAAE,UAAU,CAAC;IACnB;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sEAAsE;IACtE,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACvD,iHAAiH;IACjH,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;CACnD,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,gBAO7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,gDAI5B,CAAC"}
@@ -3,6 +3,7 @@ export { useAuth } from './use-auth.cjs';
3
3
  export { useAuthCloudRedirect } from './use-auth-cloud-redirect.cjs';
4
4
  export { type ConsentError, type ConsentInfo, type ConsentScopeMetadata, type ConsentStatus, type UseConsentProps, useConsent, } from './use-consent.cjs';
5
5
  export { type DeviceUIMode, type DeviceVerifyInfo, type DeviceVerifyStatus, type UseDeviceVerifyProps, useDeviceVerify, } from './use-device-verify.cjs';
6
+ export { type UseEmailCodeStep, type UseEmailCodeStepOptions, useEmailCodeStep, } from './use-email-code-step.cjs';
6
7
  export { type UseForgotPasswordProps, useForgotPassword } from './use-forgot-password.cjs';
7
8
  export { useJoinInvite } from './use-join-invite.cjs';
8
9
  export { type UseLogoutProps, useLogout } from './use-logout.cjs';
@@ -3,6 +3,7 @@ export { useAuth } from './use-auth.js';
3
3
  export { useAuthCloudRedirect } from './use-auth-cloud-redirect.js';
4
4
  export { type ConsentError, type ConsentInfo, type ConsentScopeMetadata, type ConsentStatus, type UseConsentProps, useConsent, } from './use-consent.js';
5
5
  export { type DeviceUIMode, type DeviceVerifyInfo, type DeviceVerifyStatus, type UseDeviceVerifyProps, useDeviceVerify, } from './use-device-verify.js';
6
+ export { type UseEmailCodeStep, type UseEmailCodeStepOptions, useEmailCodeStep, } from './use-email-code-step.js';
6
7
  export { type UseForgotPasswordProps, useForgotPassword } from './use-forgot-password.js';
7
8
  export { useJoinInvite } from './use-join-invite.js';
8
9
  export { type UseLogoutProps, useLogout } from './use-logout.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,UAAU,GACX,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,KAAK,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,KAAK,4BAA4B,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACzG,OAAO,EAAE,KAAK,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,KAAK,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,KAAK,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGpF,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,KAAK,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,KAAK,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,KAAK,2BAA2B,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACrG,OAAO,EAAE,KAAK,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAE,KAAK,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/F,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACjH,OAAO,EAAE,KAAK,gCAAgC,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAEtH,OAAO,EAAE,KAAK,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAE,KAAK,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE3F,OAAO,EAAE,KAAK,gBAAgB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,KAAK,oBAAoB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,UAAU,GACX,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,KAAK,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,KAAK,4BAA4B,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACzG,OAAO,EAAE,KAAK,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,KAAK,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,KAAK,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGpF,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,KAAK,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,KAAK,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,KAAK,2BAA2B,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACrG,OAAO,EAAE,KAAK,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAE,KAAK,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/F,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACjH,OAAO,EAAE,KAAK,gCAAgC,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAEtH,OAAO,EAAE,KAAK,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAE,KAAK,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE3F,OAAO,EAAE,KAAK,gBAAgB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,KAAK,oBAAoB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,39 @@
1
+ import type { PassflowAuthorizationResponse } from '@passflow/core';
2
+ import type { EmailCodeStep } from '../types/index.cjs';
3
+ export type UseEmailCodeStepOptions = {
4
+ /**
5
+ * Repeats the request that produced the step (the same sign-up or sign-in body). Absent when the code cannot be
6
+ * sent again, as after a password change: the reset link is spent.
7
+ */
8
+ resend?: () => Promise<unknown>;
9
+ /** The step ended (cancelled, verified, or turned into a link): anything held only for resend can be dropped. */
10
+ onRelease?: () => void;
11
+ };
12
+ export type UseEmailCodeStep = {
13
+ step: EmailCodeStep;
14
+ /** Enters the step when `answer` is an email verification step; `false` (nothing changes) for any other answer. */
15
+ enter: (answer: unknown) => boolean;
16
+ /**
17
+ * Posts the code. Resolves the session answer on success (the caller runs its post-auth path), `null` on a failure
18
+ * (shown in `error`), when a verify is already in flight, or when the step was left meanwhile.
19
+ */
20
+ verify: (otp: string) => Promise<PassflowAuthorizationResponse | null>;
21
+ /**
22
+ * Sends a new code by repeating the original request. Resolves `null` normally (the step moves to the new code or
23
+ * to the link); resolves the session answer in the rare case the repeated request signed the user in directly.
24
+ */
25
+ resend: () => Promise<PassflowAuthorizationResponse | null>;
26
+ canResend: boolean;
27
+ /** Leaves the step for the screen's own form. Ignored while a verify is in flight. */
28
+ cancel: () => void;
29
+ isVerifying: boolean;
30
+ isResending: boolean;
31
+ error: string | null;
32
+ };
33
+ /**
34
+ * The emailed-code step of a sign-up, sign-in or password change: holds the step, posts the code with
35
+ * `passflow.verifyEmailCode`, and resends by repeating the original request. An answer that arrives after the user
36
+ * left the step (or after a newer step replaced it) is dropped.
37
+ */
38
+ export declare const useEmailCodeStep: (options?: UseEmailCodeStepOptions) => UseEmailCodeStep;
39
+ //# sourceMappingURL=use-email-code-step.d.ts.map
@@ -0,0 +1,39 @@
1
+ import type { PassflowAuthorizationResponse } from '@passflow/core';
2
+ import type { EmailCodeStep } from '../types/index.js';
3
+ export type UseEmailCodeStepOptions = {
4
+ /**
5
+ * Repeats the request that produced the step (the same sign-up or sign-in body). Absent when the code cannot be
6
+ * sent again, as after a password change: the reset link is spent.
7
+ */
8
+ resend?: () => Promise<unknown>;
9
+ /** The step ended (cancelled, verified, or turned into a link): anything held only for resend can be dropped. */
10
+ onRelease?: () => void;
11
+ };
12
+ export type UseEmailCodeStep = {
13
+ step: EmailCodeStep;
14
+ /** Enters the step when `answer` is an email verification step; `false` (nothing changes) for any other answer. */
15
+ enter: (answer: unknown) => boolean;
16
+ /**
17
+ * Posts the code. Resolves the session answer on success (the caller runs its post-auth path), `null` on a failure
18
+ * (shown in `error`), when a verify is already in flight, or when the step was left meanwhile.
19
+ */
20
+ verify: (otp: string) => Promise<PassflowAuthorizationResponse | null>;
21
+ /**
22
+ * Sends a new code by repeating the original request. Resolves `null` normally (the step moves to the new code or
23
+ * to the link); resolves the session answer in the rare case the repeated request signed the user in directly.
24
+ */
25
+ resend: () => Promise<PassflowAuthorizationResponse | null>;
26
+ canResend: boolean;
27
+ /** Leaves the step for the screen's own form. Ignored while a verify is in flight. */
28
+ cancel: () => void;
29
+ isVerifying: boolean;
30
+ isResending: boolean;
31
+ error: string | null;
32
+ };
33
+ /**
34
+ * The emailed-code step of a sign-up, sign-in or password change: holds the step, posts the code with
35
+ * `passflow.verifyEmailCode`, and resends by repeating the original request. An answer that arrives after the user
36
+ * left the step (or after a newer step replaced it) is dropped.
37
+ */
38
+ export declare const useEmailCodeStep: (options?: UseEmailCodeStepOptions) => UseEmailCodeStep;
39
+ //# sourceMappingURL=use-email-code-step.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-email-code-step.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-email-code-step.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAEpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI7C,MAAM,MAAM,uBAAuB,GAAG;IACpC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,iHAAiH;IACjH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,aAAa,CAAC;IACpB,mHAAmH;IACnH,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;IACpC;;;OAGG;IACH,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAAC;IACvE;;;OAGG;IACH,MAAM,EAAE,MAAM,OAAO,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAAC;IAC5D,SAAS,EAAE,OAAO,CAAC;IACnB,sFAAsF;IACtF,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,aAAa,uBAAuB,KAAQ,gBAiIxE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-join-invite.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-join-invite.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,kBAAkB,GAAG,MAAM;IACrC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,kBA4B3B,CAAC"}
1
+ {"version":3,"file":"use-join-invite.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-join-invite.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,kBAAkB,GAAG,MAAM;IACrC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,kBA4B3B,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { Providers } from '@passflow/core';
2
- export type UseProviderProps = (redirectUrl?: string, createTenant?: boolean) => {
2
+ import type { FederatedLanding } from '../types/index.cjs';
3
+ export type UseProviderProps = (redirectUrl?: string, createTenant?: boolean, federatedLanding?: FederatedLanding) => {
3
4
  federatedWithPopup: (provider: Providers, inviteToken?: string) => void;
4
5
  federatedWithRedirect: (provider: Providers, inviteToken?: string) => void;
5
6
  };
@@ -1,5 +1,6 @@
1
1
  import type { Providers } from '@passflow/core';
2
- export type UseProviderProps = (redirectUrl?: string, createTenant?: boolean) => {
2
+ import type { FederatedLanding } from '../types/index.js';
3
+ export type UseProviderProps = (redirectUrl?: string, createTenant?: boolean, federatedLanding?: FederatedLanding) => {
3
4
  federatedWithPopup: (provider: Providers, inviteToken?: string) => void;
4
5
  federatedWithRedirect: (provider: Providers, inviteToken?: string) => void;
5
6
  };
@@ -1 +1 @@
1
- {"version":3,"file":"use-provider.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgC,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAa9E,MAAM,MAAM,gBAAgB,GAAG,CAC7B,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,OAAO,KACnB;IACH,kBAAkB,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACxE,qBAAqB,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5E,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,gBAmBzB,CAAC"}
1
+ {"version":3,"file":"use-provider.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgC,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAsBhD,MAAM,MAAM,gBAAgB,GAAG,CAC7B,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,OAAO,EACtB,gBAAgB,CAAC,EAAE,gBAAgB,KAChC;IACH,kBAAkB,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACxE,qBAAqB,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5E,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,gBAsBzB,CAAC"}
@@ -1,9 +1,22 @@
1
+ import { type UseEmailCodeStep } from './use-email-code-step.cjs';
1
2
  export type UseResetPasswordProps = () => {
2
- fetch: (newPassword: string) => Promise<boolean>;
3
+ /**
4
+ * Saves the new password. Pass the reset link's `token` when you have it: without it core looks for `?token=` in
5
+ * the address bar, which a hash or memory router does not keep. Resolves `true` for a session, `false` on an error
6
+ * or when the server asks for an emailed code first (`emailCode` then holds the step).
7
+ */
8
+ fetch: (newPassword: string, resetToken?: string) => Promise<boolean>;
3
9
  isLoading: boolean;
4
10
  isError: boolean;
5
11
  error: string;
12
+ /**
13
+ * The password was changed, but the emailed code that should follow was refused for now (429). Asking for the
14
+ * password again would be wrong: the user should sign in with it later.
15
+ */
16
+ isPasswordSaved: boolean;
6
17
  reset: () => void;
18
+ /** The emailed-code step a password change may answer with. No resend: the reset link is spent. */
19
+ emailCode: UseEmailCodeStep;
7
20
  };
8
21
  export declare const useResetPassword: UseResetPasswordProps;
9
22
  //# sourceMappingURL=use-reset-password.d.ts.map
@@ -1,9 +1,22 @@
1
+ import { type UseEmailCodeStep } from './use-email-code-step.js';
1
2
  export type UseResetPasswordProps = () => {
2
- fetch: (newPassword: string) => Promise<boolean>;
3
+ /**
4
+ * Saves the new password. Pass the reset link's `token` when you have it: without it core looks for `?token=` in
5
+ * the address bar, which a hash or memory router does not keep. Resolves `true` for a session, `false` on an error
6
+ * or when the server asks for an emailed code first (`emailCode` then holds the step).
7
+ */
8
+ fetch: (newPassword: string, resetToken?: string) => Promise<boolean>;
3
9
  isLoading: boolean;
4
10
  isError: boolean;
5
11
  error: string;
12
+ /**
13
+ * The password was changed, but the emailed code that should follow was refused for now (429). Asking for the
14
+ * password again would be wrong: the user should sign in with it later.
15
+ */
16
+ isPasswordSaved: boolean;
6
17
  reset: () => void;
18
+ /** The emailed-code step a password change may answer with. No resend: the reset link is spent. */
19
+ emailCode: UseEmailCodeStep;
7
20
  };
8
21
  export declare const useResetPassword: UseResetPasswordProps;
9
22
  //# sourceMappingURL=use-reset-password.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-reset-password.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-reset-password.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,qBAAqB,GAAG,MAAM;IACxC,KAAK,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,qBA8B9B,CAAC"}
1
+ {"version":3,"file":"use-reset-password.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-reset-password.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,gBAAgB,EAAoB,MAAM,uBAAuB,CAAC;AAGhF,MAAM,MAAM,qBAAqB,GAAG,MAAM;IACxC;;;;OAIG;IACH,KAAK,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,mGAAmG;IACnG,SAAS,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,qBAuC9B,CAAC"}
@@ -1,11 +1,17 @@
1
1
  import type { PassflowPasskeyAuthenticateStartPayload, PassflowPasswordlessResponse, PassflowPasswordlessSignInPayload, PassflowSignInPayload } from '@passflow/core';
2
2
  import type { AuthOperation, AuthUiError } from '../types/index.cjs';
3
+ import { type UseEmailCodeStep } from './use-email-code-step.cjs';
3
4
  export type UseSignInProps = () => {
4
5
  fetch: (payload: PassflowPasskeyAuthenticateStartPayload | PassflowSignInPayload | PassflowPasswordlessSignInPayload, type: AuthOperation) => Promise<boolean | string | PassflowPasswordlessResponse>;
5
6
  isLoading: boolean;
6
7
  isError: boolean;
7
8
  error: AuthUiError | null;
8
9
  reset: () => void;
10
+ /**
11
+ * The emailed-code step. A password request the server answers with a code (or a link) enters it, and `fetch`
12
+ * resolves `false`: there is no session yet.
13
+ */
14
+ emailCode: UseEmailCodeStep;
9
15
  };
10
16
  export declare const useSignIn: UseSignInProps;
11
17
  //# sourceMappingURL=use-signin.d.ts.map
@@ -1,11 +1,17 @@
1
1
  import type { PassflowPasskeyAuthenticateStartPayload, PassflowPasswordlessResponse, PassflowPasswordlessSignInPayload, PassflowSignInPayload } from '@passflow/core';
2
2
  import type { AuthOperation, AuthUiError } from '../types/index.js';
3
+ import { type UseEmailCodeStep } from './use-email-code-step.js';
3
4
  export type UseSignInProps = () => {
4
5
  fetch: (payload: PassflowPasskeyAuthenticateStartPayload | PassflowSignInPayload | PassflowPasswordlessSignInPayload, type: AuthOperation) => Promise<boolean | string | PassflowPasswordlessResponse>;
5
6
  isLoading: boolean;
6
7
  isError: boolean;
7
8
  error: AuthUiError | null;
8
9
  reset: () => void;
10
+ /**
11
+ * The emailed-code step. A password request the server answers with a code (or a link) enters it, and `fetch`
12
+ * resolves `false`: there is no session yet.
13
+ */
14
+ emailCode: UseEmailCodeStep;
9
15
  };
10
16
  export declare const useSignIn: UseSignInProps;
11
17
  //# sourceMappingURL=use-signin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-signin.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-signin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uCAAuC,EACvC,4BAA4B,EAC5B,iCAAiC,EACjC,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAI1D,MAAM,MAAM,cAAc,GAAG,MAAM;IACjC,KAAK,EAAE,CACL,OAAO,EAAE,uCAAuC,GAAG,qBAAqB,GAAG,iCAAiC,EAC5G,IAAI,EAAE,aAAa,KAChB,OAAO,CAAC,OAAO,GAAG,MAAM,GAAG,4BAA4B,CAAC,CAAC;IAC9D,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,cA4CvB,CAAC"}
1
+ {"version":3,"file":"use-signin.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-signin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uCAAuC,EACvC,4BAA4B,EAC5B,iCAAiC,EACjC,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE1D,OAAO,EAAE,KAAK,gBAAgB,EAAoB,MAAM,uBAAuB,CAAC;AAGhF,MAAM,MAAM,cAAc,GAAG,MAAM;IACjC,KAAK,EAAE,CACL,OAAO,EAAE,uCAAuC,GAAG,qBAAqB,GAAG,iCAAiC,EAC5G,IAAI,EAAE,aAAa,KAChB,OAAO,CAAC,OAAO,GAAG,MAAM,GAAG,4BAA4B,CAAC,CAAC;IAC9D,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB;;;OAGG;IACH,SAAS,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,cAqEvB,CAAC"}
@@ -1,11 +1,17 @@
1
1
  import type { PassflowPasskeyRegisterStartPayload, PassflowPasswordlessResponse, PassflowPasswordlessSignInPayload, PassflowSignUpPayload } from '@passflow/core';
2
2
  import type { AuthOperation, AuthUiError } from '../types/index.cjs';
3
+ import { type UseEmailCodeStep } from './use-email-code-step.cjs';
3
4
  export type UseSignUpProps = () => {
4
5
  fetch: (payload: PassflowPasskeyRegisterStartPayload | PassflowSignUpPayload | PassflowPasswordlessSignInPayload, type: AuthOperation) => Promise<boolean | string | PassflowPasswordlessResponse>;
5
6
  isLoading: boolean;
6
7
  isError: boolean;
7
8
  error: AuthUiError | null;
8
9
  reset: () => void;
10
+ /**
11
+ * The emailed-code step. A password request the server answers with a code (or a link) enters it, and `fetch`
12
+ * resolves `false`: there is no session yet.
13
+ */
14
+ emailCode: UseEmailCodeStep;
9
15
  };
10
16
  export declare const useSignUp: UseSignUpProps;
11
17
  //# sourceMappingURL=use-signup.d.ts.map