@massimo.mazzoleni/cognito-max 1.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.
Files changed (64) hide show
  1. package/README.md +2410 -0
  2. package/dist/chunk-AD7T42HJ.js +3 -0
  3. package/dist/chunk-AD7T42HJ.js.map +1 -0
  4. package/dist/chunk-DKPFVGTY.js +683 -0
  5. package/dist/chunk-DKPFVGTY.js.map +1 -0
  6. package/dist/chunk-N4OQLBV6.js +135 -0
  7. package/dist/chunk-N4OQLBV6.js.map +1 -0
  8. package/dist/client-63FraVdm.d.ts +69 -0
  9. package/dist/client-BAoL8h4E.d.cts +69 -0
  10. package/dist/core/index.cjs +696 -0
  11. package/dist/core/index.cjs.map +1 -0
  12. package/dist/core/index.d.cts +3 -0
  13. package/dist/core/index.d.ts +3 -0
  14. package/dist/core/index.js +4 -0
  15. package/dist/core/index.js.map +1 -0
  16. package/dist/errors-BkUDHleb.d.cts +22 -0
  17. package/dist/errors-BkUDHleb.d.ts +22 -0
  18. package/dist/index.cjs +696 -0
  19. package/dist/index.cjs.map +1 -0
  20. package/dist/index.d.cts +3 -0
  21. package/dist/index.d.ts +3 -0
  22. package/dist/index.js +4 -0
  23. package/dist/index.js.map +1 -0
  24. package/dist/react/index.cjs +844 -0
  25. package/dist/react/index.cjs.map +1 -0
  26. package/dist/react/index.d.cts +104 -0
  27. package/dist/react/index.d.ts +104 -0
  28. package/dist/react/index.js +64 -0
  29. package/dist/react/index.js.map +1 -0
  30. package/dist/types-bxA1vonL.d.cts +113 -0
  31. package/dist/types-bxA1vonL.d.ts +113 -0
  32. package/dist/ui/index.cjs +1183 -0
  33. package/dist/ui/index.cjs.map +1 -0
  34. package/dist/ui/index.d.cts +241 -0
  35. package/dist/ui/index.d.ts +241 -0
  36. package/dist/ui/index.js +1109 -0
  37. package/dist/ui/index.js.map +1 -0
  38. package/package.json +81 -0
  39. package/src/core/client.ts +604 -0
  40. package/src/core/errors.ts +91 -0
  41. package/src/core/event-bus.ts +41 -0
  42. package/src/core/index.ts +5 -0
  43. package/src/core/internal/converters.ts +32 -0
  44. package/src/core/storage.ts +79 -0
  45. package/src/core/types.ts +87 -0
  46. package/src/index.ts +1 -0
  47. package/src/react/components/ProtectedRoute.tsx +56 -0
  48. package/src/react/context.tsx +126 -0
  49. package/src/react/hooks/useAuth.ts +75 -0
  50. package/src/react/hooks/useMfa.ts +19 -0
  51. package/src/react/hooks/useSession.ts +16 -0
  52. package/src/react/hooks/useUser.ts +24 -0
  53. package/src/react/index.ts +10 -0
  54. package/src/ui/components/ChangePasswordForm.tsx +105 -0
  55. package/src/ui/components/ForgotPasswordForm.tsx +159 -0
  56. package/src/ui/components/MfaSetupWizard.tsx +136 -0
  57. package/src/ui/components/RegisterForm.tsx +159 -0
  58. package/src/ui/components/SignInForm.tsx +296 -0
  59. package/src/ui/hooks/useChangePasswordForm.ts +81 -0
  60. package/src/ui/hooks/useForgotPasswordForm.ts +109 -0
  61. package/src/ui/hooks/useMfaSetup.ts +93 -0
  62. package/src/ui/hooks/useRegisterForm.ts +120 -0
  63. package/src/ui/hooks/useSignInForm.ts +245 -0
  64. package/src/ui/index.ts +31 -0
@@ -0,0 +1,241 @@
1
+ import * as react from 'react';
2
+ import { FormEvent, ReactNode } from 'react';
3
+ import { C as CognitoAuthError } from '../errors-BkUDHleb.js';
4
+ import { h as SignInResult, g as MfaType } from '../types-bxA1vonL.js';
5
+
6
+ type SignInStep = 'credentials' | 'mfa' | 'new_password' | 'mfa_setup';
7
+ interface UseSignInFormOptions {
8
+ onSuccess?: (result: Extract<SignInResult, {
9
+ status: 'SUCCESS';
10
+ }>) => void;
11
+ onError?: (error: CognitoAuthError) => void;
12
+ }
13
+ interface UseSignInFormReturn {
14
+ step: SignInStep;
15
+ isLoading: boolean;
16
+ error: CognitoAuthError | null;
17
+ mfaType: MfaType | null;
18
+ credentials: {
19
+ email: string;
20
+ password: string;
21
+ setEmail(v: string): void;
22
+ setPassword(v: string): void;
23
+ onSubmit(e: FormEvent): void;
24
+ };
25
+ mfa: {
26
+ code: string;
27
+ setCode(v: string): void;
28
+ onSubmit(e: FormEvent): void;
29
+ };
30
+ newPassword: {
31
+ password: string;
32
+ confirmPassword: string;
33
+ requiredAttributes: string[];
34
+ setPassword(v: string): void;
35
+ setConfirmPassword(v: string): void;
36
+ onSubmit(e: FormEvent): void;
37
+ };
38
+ mfaSetup: {
39
+ qrCodeUri: string | null;
40
+ secretCode: string | null;
41
+ totpCode: string;
42
+ setTotpCode(v: string): void;
43
+ /** Chiama setupTotpChallenge e popola qrCodeUri / secretCode */
44
+ start(): Promise<void>;
45
+ /** Chiama verifyTotpChallenge poi handleSignInResult */
46
+ onVerify(e: FormEvent): void;
47
+ };
48
+ reset(): void;
49
+ }
50
+ declare function useSignInForm(options?: UseSignInFormOptions): UseSignInFormReturn;
51
+
52
+ type RegisterStep = 'register' | 'confirm';
53
+ interface UseRegisterFormOptions {
54
+ onSuccess?: () => void;
55
+ onError?: (error: CognitoAuthError) => void;
56
+ /** Attributi aggiuntivi (es. name, phone_number) */
57
+ extraAttributes?: Record<string, string>;
58
+ }
59
+ interface UseRegisterFormReturn {
60
+ step: RegisterStep;
61
+ isLoading: boolean;
62
+ error: CognitoAuthError | null;
63
+ register: {
64
+ email: string;
65
+ password: string;
66
+ confirmPassword: string;
67
+ setEmail(v: string): void;
68
+ setPassword(v: string): void;
69
+ setConfirmPassword(v: string): void;
70
+ onSubmit(e: FormEvent): void;
71
+ };
72
+ confirm: {
73
+ email: string;
74
+ code: string;
75
+ setCode(v: string): void;
76
+ onSubmit(e: FormEvent): void;
77
+ resend(): Promise<void>;
78
+ };
79
+ reset(): void;
80
+ }
81
+ declare function useRegisterForm(options?: UseRegisterFormOptions): UseRegisterFormReturn;
82
+
83
+ type ForgotPasswordStep = 'request' | 'reset';
84
+ interface UseForgotPasswordFormOptions {
85
+ onSuccess?: () => void;
86
+ onError?: (error: CognitoAuthError) => void;
87
+ }
88
+ interface UseForgotPasswordFormReturn {
89
+ step: ForgotPasswordStep;
90
+ isLoading: boolean;
91
+ error: CognitoAuthError | null;
92
+ request: {
93
+ email: string;
94
+ setEmail(v: string): void;
95
+ onSubmit(e: FormEvent): void;
96
+ };
97
+ reset: {
98
+ email: string;
99
+ code: string;
100
+ newPassword: string;
101
+ confirmPassword: string;
102
+ setCode(v: string): void;
103
+ setNewPassword(v: string): void;
104
+ setConfirmPassword(v: string): void;
105
+ onSubmit(e: FormEvent): void;
106
+ };
107
+ restart(): void;
108
+ }
109
+ declare function useForgotPasswordForm(options?: UseForgotPasswordFormOptions): UseForgotPasswordFormReturn;
110
+
111
+ interface UseChangePasswordFormOptions {
112
+ onSuccess?: () => void;
113
+ onError?: (error: CognitoAuthError) => void;
114
+ }
115
+ interface UseChangePasswordFormReturn {
116
+ isLoading: boolean;
117
+ error: CognitoAuthError | null;
118
+ success: boolean;
119
+ currentPassword: string;
120
+ newPassword: string;
121
+ confirmPassword: string;
122
+ setCurrentPassword(v: string): void;
123
+ setNewPassword(v: string): void;
124
+ setConfirmPassword(v: string): void;
125
+ onSubmit(e: FormEvent): void;
126
+ reset(): void;
127
+ }
128
+ declare function useChangePasswordForm(options?: UseChangePasswordFormOptions): UseChangePasswordFormReturn;
129
+
130
+ type MfaSetupStep = 'idle' | 'loading' | 'scan' | 'verify' | 'done';
131
+ interface UseMfaSetupOptions {
132
+ onSuccess?: () => void;
133
+ onError?: (error: CognitoAuthError) => void;
134
+ }
135
+ interface UseMfaSetupReturn {
136
+ step: MfaSetupStep;
137
+ isLoading: boolean;
138
+ error: CognitoAuthError | null;
139
+ /** URI otpauth:// da passare a un QR code renderer */
140
+ qrCodeUri: string | null;
141
+ /** Secret testuale (per inserimento manuale nell'app) */
142
+ secretCode: string | null;
143
+ totpCode: string;
144
+ setTotpCode(v: string): void;
145
+ /** Avvia il setup TOTP */
146
+ start(): Promise<void>;
147
+ /** Verifica il codice inserito dall'app authenticator */
148
+ onVerify(e: FormEvent): void;
149
+ reset(): void;
150
+ }
151
+ declare function useMfaSetup(options?: UseMfaSetupOptions): UseMfaSetupReturn;
152
+
153
+ interface SignInFormProps extends UseSignInFormOptions {
154
+ className?: string;
155
+ labels?: {
156
+ email?: string;
157
+ password?: string;
158
+ submit?: string;
159
+ mfaCode?: string;
160
+ mfaSubmit?: string;
161
+ newPassword?: string;
162
+ confirmNewPassword?: string;
163
+ newPasswordSubmit?: string;
164
+ mfaSetupScanInstruction?: string;
165
+ mfaSetupSecretLabel?: string;
166
+ mfaSetupCode?: string;
167
+ mfaSetupSubmit?: string;
168
+ };
169
+ /** Slot per il link "Password dimenticata?" */
170
+ forgotPasswordLink?: ReactNode;
171
+ /** Slot per il link "Crea account" */
172
+ registerLink?: ReactNode;
173
+ /**
174
+ * Render del QR code per lo step mfa_setup.
175
+ * Riceve il URI otpauth:// — usa react-qr-code o simile.
176
+ * Default: mostra il URI come testo copiabile.
177
+ */
178
+ renderQrCode?: (uri: string) => ReactNode;
179
+ }
180
+ declare function SignInForm({ className, labels, forgotPasswordLink, registerLink, renderQrCode, onSuccess, onError, }: SignInFormProps): react.JSX.Element;
181
+
182
+ interface RegisterFormProps extends UseRegisterFormOptions {
183
+ className?: string;
184
+ labels?: {
185
+ email?: string;
186
+ password?: string;
187
+ confirmPassword?: string;
188
+ submit?: string;
189
+ code?: string;
190
+ confirmSubmit?: string;
191
+ resend?: string;
192
+ };
193
+ signInLink?: ReactNode;
194
+ }
195
+ declare function RegisterForm({ className, labels, signInLink, onSuccess, onError, extraAttributes, }: RegisterFormProps): react.JSX.Element;
196
+
197
+ interface ForgotPasswordFormProps extends UseForgotPasswordFormOptions {
198
+ className?: string;
199
+ labels?: {
200
+ email?: string;
201
+ requestSubmit?: string;
202
+ code?: string;
203
+ newPassword?: string;
204
+ confirmPassword?: string;
205
+ resetSubmit?: string;
206
+ };
207
+ signInLink?: ReactNode;
208
+ }
209
+ declare function ForgotPasswordForm({ className, labels, signInLink, onSuccess, onError, }: ForgotPasswordFormProps): react.JSX.Element;
210
+
211
+ interface ChangePasswordFormProps extends UseChangePasswordFormOptions {
212
+ className?: string;
213
+ labels?: {
214
+ currentPassword?: string;
215
+ newPassword?: string;
216
+ confirmPassword?: string;
217
+ submit?: string;
218
+ successMessage?: string;
219
+ };
220
+ }
221
+ declare function ChangePasswordForm({ className, labels, onSuccess, onError, }: ChangePasswordFormProps): react.JSX.Element;
222
+
223
+ interface MfaSetupWizardProps extends UseMfaSetupOptions {
224
+ className?: string;
225
+ labels?: {
226
+ start?: string;
227
+ scanInstruction?: string;
228
+ manualEntry?: string;
229
+ codeLabel?: string;
230
+ verifySubmit?: string;
231
+ successMessage?: string;
232
+ };
233
+ /**
234
+ * Render del QR code. Riceve il URI otpauth:// — usa react-qr-code o simile.
235
+ * Default: mostra il URI come testo copiabile.
236
+ */
237
+ renderQrCode?: (uri: string) => ReactNode;
238
+ }
239
+ declare function MfaSetupWizard({ className, labels, renderQrCode, onSuccess, onError, }: MfaSetupWizardProps): react.JSX.Element;
240
+
241
+ export { ChangePasswordForm, type ChangePasswordFormProps, ForgotPasswordForm, type ForgotPasswordFormProps, type ForgotPasswordStep, type MfaSetupStep, MfaSetupWizard, type MfaSetupWizardProps, RegisterForm, type RegisterFormProps, type RegisterStep, SignInForm, type SignInFormProps, type SignInStep, type UseChangePasswordFormOptions, type UseChangePasswordFormReturn, type UseForgotPasswordFormOptions, type UseForgotPasswordFormReturn, type UseMfaSetupOptions, type UseMfaSetupReturn, type UseRegisterFormOptions, type UseRegisterFormReturn, type UseSignInFormOptions, type UseSignInFormReturn, useChangePasswordForm, useForgotPasswordForm, useMfaSetup, useRegisterForm, useSignInForm };