@alore/auth-react-ui 1.1.1-alpha → 1.2.0-alpha.10

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 (51) hide show
  1. package/dist/cjs/auth/Login.js +95 -44
  2. package/dist/cjs/auth/Login.js.map +1 -1
  3. package/dist/cjs/auth/Register.js +118 -69
  4. package/dist/cjs/auth/Register.js.map +1 -1
  5. package/dist/cjs/components/Auth.d.ts +10 -3
  6. package/dist/cjs/components/Auth.js +58 -9
  7. package/dist/cjs/components/Auth.js.map +1 -1
  8. package/dist/cjs/components/AuthProvider.d.ts +24 -2
  9. package/dist/cjs/components/AuthProvider.js.map +1 -1
  10. package/dist/cjs/dictionaries/en.json +1 -0
  11. package/dist/cjs/dictionaries/pt.json +1 -0
  12. package/dist/cjs/get-dictionary.d.ts +3 -0
  13. package/dist/cjs/hooks/useAuthService.d.ts +68 -2
  14. package/dist/cjs/hooks/useAuthServiceInstance.d.ts +23 -1
  15. package/dist/cjs/hooks/useDictionary.d.ts +1 -0
  16. package/dist/cjs/index.d.ts +6 -5
  17. package/dist/cjs/index.js +6 -2
  18. package/dist/cjs/index.js.map +1 -1
  19. package/dist/cjs/machine/index.d.ts +46 -2
  20. package/dist/cjs/machine/index.js +180 -58
  21. package/dist/cjs/machine/index.js.map +1 -1
  22. package/dist/cjs/machine/types.d.ts +18 -2
  23. package/dist/mjs/auth/Login.js +76 -30
  24. package/dist/mjs/auth/Login.js.map +1 -1
  25. package/dist/mjs/auth/Register.js +54 -12
  26. package/dist/mjs/auth/Register.js.map +1 -1
  27. package/dist/mjs/components/Auth.d.ts +10 -3
  28. package/dist/mjs/components/Auth.js +58 -9
  29. package/dist/mjs/components/Auth.js.map +1 -1
  30. package/dist/mjs/components/AuthProvider.d.ts +24 -2
  31. package/dist/mjs/components/AuthProvider.js.map +1 -1
  32. package/dist/mjs/dictionaries/en.json +1 -0
  33. package/dist/mjs/dictionaries/pt.json +1 -0
  34. package/dist/mjs/get-dictionary.d.ts +3 -0
  35. package/dist/mjs/hooks/useAuthService.d.ts +68 -2
  36. package/dist/mjs/hooks/useAuthServiceInstance.d.ts +23 -1
  37. package/dist/mjs/hooks/useDictionary.d.ts +1 -0
  38. package/dist/mjs/index.d.ts +6 -5
  39. package/dist/mjs/index.js +3 -2
  40. package/dist/mjs/index.js.map +1 -1
  41. package/dist/mjs/machine/index.d.ts +46 -2
  42. package/dist/mjs/machine/index.js +164 -65
  43. package/dist/mjs/machine/index.js.map +1 -1
  44. package/dist/mjs/machine/types.d.ts +18 -2
  45. package/package.json +18 -15
  46. package/dist/cjs/machine/index.typegen.d.ts +0 -162
  47. package/dist/cjs/machine/index.typegen.js +0 -4
  48. package/dist/cjs/machine/index.typegen.js.map +0 -1
  49. package/dist/mjs/machine/index.typegen.d.ts +0 -162
  50. package/dist/mjs/machine/index.typegen.js +0 -3
  51. package/dist/mjs/machine/index.typegen.js.map +0 -1
@@ -6,6 +6,17 @@ export declare const authMachine: import("xstate").StateMachine<AuthMachineConte
6
6
  type: "RESET";
7
7
  } | {
8
8
  type: "RESET_CONTEXT";
9
+ } | {
10
+ type: "SET_ERROR";
11
+ error?: string | undefined;
12
+ info?: {
13
+ code?: string | undefined;
14
+ message?: string | undefined;
15
+ email?: string | undefined;
16
+ data?: any;
17
+ } | undefined;
18
+ } | {
19
+ type: "CLEAR_ERROR";
9
20
  } | {
10
21
  type: "REFRESH_ACCESS_TOKEN";
11
22
  newAccessToken: string;
@@ -244,13 +255,24 @@ export declare const authMachine: import("xstate").StateMachine<AuthMachineConte
244
255
  }, {
245
256
  value: any;
246
257
  context: AuthMachineContext;
247
- }, import("xstate").BaseActionObject, AuthMachineServices, import("xstate").ResolveTypegenMeta<import("./index.typegen").Typegen0, {
258
+ }, import("xstate").BaseActionObject, AuthMachineServices, import("xstate").ResolveTypegenMeta<any, {
248
259
  type: "INITIALIZE";
249
260
  forgeId?: string | null | undefined;
250
261
  } | {
251
262
  type: "RESET";
252
263
  } | {
253
264
  type: "RESET_CONTEXT";
265
+ } | {
266
+ type: "SET_ERROR";
267
+ error?: string | undefined;
268
+ info?: {
269
+ code?: string | undefined;
270
+ message?: string | undefined;
271
+ email?: string | undefined;
272
+ data?: any;
273
+ } | undefined;
274
+ } | {
275
+ type: "CLEAR_ERROR";
254
276
  } | {
255
277
  type: "REFRESH_ACCESS_TOKEN";
256
278
  newAccessToken: string;
@@ -494,6 +516,17 @@ export declare const authService: (services: {}, context: AuthMachineContext) =>
494
516
  type: "RESET";
495
517
  } | {
496
518
  type: "RESET_CONTEXT";
519
+ } | {
520
+ type: "SET_ERROR";
521
+ error?: string | undefined;
522
+ info?: {
523
+ code?: string | undefined;
524
+ message?: string | undefined;
525
+ email?: string | undefined;
526
+ data?: any;
527
+ } | undefined;
528
+ } | {
529
+ type: "CLEAR_ERROR";
497
530
  } | {
498
531
  type: "REFRESH_ACCESS_TOKEN";
499
532
  newAccessToken: string;
@@ -732,13 +765,24 @@ export declare const authService: (services: {}, context: AuthMachineContext) =>
732
765
  }, {
733
766
  value: any;
734
767
  context: AuthMachineContext;
735
- }, import("xstate").MarkAllImplementationsAsProvided<import("xstate").ResolveTypegenMeta<import("./index.typegen").Typegen0, {
768
+ }, import("xstate").MarkAllImplementationsAsProvided<import("xstate").ResolveTypegenMeta<any, {
736
769
  type: "INITIALIZE";
737
770
  forgeId?: string | null | undefined;
738
771
  } | {
739
772
  type: "RESET";
740
773
  } | {
741
774
  type: "RESET_CONTEXT";
775
+ } | {
776
+ type: "SET_ERROR";
777
+ error?: string | undefined;
778
+ info?: {
779
+ code?: string | undefined;
780
+ message?: string | undefined;
781
+ email?: string | undefined;
782
+ data?: any;
783
+ } | undefined;
784
+ } | {
785
+ type: "CLEAR_ERROR";
742
786
  } | {
743
787
  type: "REFRESH_ACCESS_TOKEN";
744
788
  newAccessToken: string;
@@ -14,9 +14,11 @@ const initialContext = {
14
14
  forgeData: undefined,
15
15
  CCRPublicKey: undefined,
16
16
  RCRPublicKey: undefined,
17
+ // authProviderConfigs: undefined,
18
+ credentialEmail: undefined,
17
19
  };
18
20
  export const authMachine = createMachine({
19
- /** #no-spell-check @xstate-layout N4IgpgJg5mDOIC5QEMCuAXAFgWWQY0wEsA7MAYgCUBRAZSoBUB9AYQHkA5eqgDXoG0ADAF1EoAA4B7WIXSEJxUSAAeiALQBmAIwCAdAHYATHoCcANnUAOUwBYLevQBoQATzUGDmzTuMWB603oWBuohpgC+YU5oWLgEJGA6JPiyAG7kAJLs6fTpAIIAMukAWlSCIkggktKy8ooqCBrW1jrq1vaaBkECVqaaAKxOrg2adhY6pgJtHkZWbeoRURg4+ESkicTJhGlkmdl5hSV8muXiUjJyChX1qpp6pjqavbfGBn161sYvji5qI5M6QXsfQMAhefjsCxA0WWcTWm221Do-GEiiq51qV0Q2jGI0+QWmrT6AlMgzcAk8LWsrWM5NMPjakOhsVWCXh5Bo6QA4uxGABVAAKZVRZxql1A9QMVOM+iammswVMNgC3yGqncHW8NJpfWMJnUr0ZS2Z8R0bLIHO5fMFx2F1QudUQkvU0ve1jlCqV9lJDWmfQegVaHwsWluhpiKxNZvyrE5mSFFTRoodCHcFj9-RMwPspgM5gs3rV2l01gE3V1bxeboMYZhLNNeFS5AAYqwKJzWEx+bkaDQAOqtgAi8dOdox4sdAj6YzsRJMk0+NmsBc0xj692MthCmnUdwstj6NeNcIbWwSAHcwAAjdTMeSkBsSABOOjwd7AJ+IUDIbHYTfSFGwRheyoAAhdRGGjWN2GHSoRXtTEEEeOwHgMHwvlzHd5W9dw1x0PprGBKwp1GatIihI0I2PRsdAva9b2Ie90CfHQwAAW2QQgABt0mIMQMDIAA1KgKHSJsAE1GCobBcnSfJJMKWMQNk7IxJgxN4PHRDTCCFC0KMDD3gMbCQTGfDCNMYjAlIxZw1hVkTzSGirxvN8H2fNJH0IAAzZwSCgKh2K4qhOMIKBCEvLiZGcMgIHkBISBSCQAGtWQouz62o2iXIY98mPcsBPJ8vyAo4zjgtC8LIvQZwEASiQ8GQUUyjUuCx2ULETGldRyTuewDKwn4U38PQdEmczLKCQ9KPszLnPoxjmI87zfM-EqgpCsKIpC6qyAKx9mLETjGq8p9WNNNK6zZJy6NcvKdCWorVsCsqNsq7aarqhqmuEFrRzFdrEM6loeuVfqjMGyVczwgjOgsiwSKm9Krqy+bcuYtjSoMLzkFvCByCEkTxJYfIZMA38mCkmS5IMJtcl+9F-vqW5-kVTx5UMcxDOw2x7jG2GJus8jbMuhzzzm27FoK5a-OYI7CFY9gvPQNbOKx5AYri9ZEpS87hcjUXruyhb8sKlaoFljiFaVlW1dq4hEq+i5mpRBNWsZrELEecYCL6W4Ocw8GhleWxofG+GrMRkXZpunK3PuqXHvNuWreV561d2x99ufQ7jtO3Xa316OjbRk3pc-C35cV1PMexu2Hcap2fpdkcGeTEYvZsPpfb6zmBqDiYxj5ojw8msimWmjLT0N1G48ICBOPZKh8ioZgmB-dgV-oVt6aTBC5Q1N0LBedRfd8SxsO6rxUKnARc3lGx5jHi7C6nziJDC4hzQYAVGGoWMaC4BQPkdAKA7w0gDEsbQ8Kggss8E+HQSSDXlH6EE7g8SeEnBZA8T89ZUVfu-Eg5p6C5AoJ2bsNAADSVAJKQTjM3WCf1kzOlePoNc+ozABjsEuQatwLL6D0F3N0jxnQjEji-Ryb8P6JHnuQWhPJezZAABJAVAjeDgG9V7b3oepNqTMqReHeDqTwPh3gjHzDwncuhVyLiPsgkI1gxF4IkQQ4g0iF5kHbDGZeEEYx0JOAw1uCF2bpjdNYXoa53CBG9LqAwOhgjGE8H0fUeh-CtEcTNfBUi57uNyAOASuR2DMCoIwLejAuw9n7BQIc2i3bJiaCwgI7dgy6kCOYoY2l1AtBCJ8Vc8oCKhhwQXJxCRJEkDceyLkPJMhASUWU8hVDVI1MYQhIwegvC2BLAI4EjxtLehGHw7S3QiQ0hBBs9Jk9nFZJkV-Zeq85kVMHIwbADBFGsGqf4nR7sUyGBdPhSUt9SzkgIns4IzQBGPHlPqI+wJwiDKPBky5YzsmL1uWQh5VSnkvLeUcD5tSEJaElOMCYJgOi2BBOoPZoS8IpPsLqJU25zlXVGa45FNzN73L7I8559BXlDgMLi5Zml9TyjwrqUsntDJym4UMfozoARWBCJYX2U5BbjyRgbZl4ydDSCgMQXsMhMD8mQLAWAKVop-iyDQZR5TKHUJ8VBMBujEAn38HE+UntyTOjeE0bC3Rmj+BzDqSwJZsE2SGQikZLitU6r1Qao1JqzVkBtQsxg7AOyMBoAKfkrYuDvNtIEzSrxgjeBXK8AR8NXgDAhpKK+ehQR7jMcSScjKNVRuRdq0KsasDxtNWAaKIFcjMAoY6r5nQRVyl8Ckqkhhz4Qz9Q8GwuoOh0rSXCieTK20yPzjQPAj4wBgE-ha9IVqOUprkSOphY0AQfAmNod4hlEFBzdCNKkh9uiGFxKq5+wydCavbdCHde6D1JvmXatNTBM38mzaQqgebXaCoBtfe4K47i4gIrqYM2FAi6DhgEMw1iBB6BbdRP9W6AO7v3Z-JELAOADj2BwAofJ0inuoRe-FoJmgdFQt1Kkt9OgqkdIuloaz6mdFxGmYjmSkVbr2k+MgR6T3JrteepZBaAZbliZg7StL4bkmwtoP0lgNzd38N0OUknEUspk5nOTSmJLgYzVmnNsG2OFuBJ0hJLw3jEUrRfKkLQ-k0hPnSIIj8w3wouZGq5C9f31WQJxHtZqaCdpAz2FNDnIPQdza59TbpdBH0eD00sCSBFYd8OMKcpjtJNEgRZqL0mYtvwagl41vbnDJd1WQAdQ6cv1FaEYcY-gCIWXMNoYwFKIavoBJWk+ayj5Hzq7F6LkbmuJb7R1w9uxFOgZob46Cqnd5CvLXE8b7DPZ2DrdKx0YTeaWA8BuEEioiNrvVSRqNzLsBgCwBICANAwALxPPINldybWVLgy3Q7ECBGac9gRecxXH1YkVLErubNtLw0VM6RbmqPtfcwD9v7APRRdcHcOg74D6htCgXmFJ6o0wvD2V3Tp7RX0zFQgyF7UcpOuL3egTyYAUh+RoPF9AGs1h1R1mqrnlmdC8-54Lz8wvOLoDrnF76QheuIDaL7PC7gQT4V1DuPZxIvDBmIqEGwF3sdRrl4QAXQuRcZyzjoHO6ATqPjOlL8R9Wedfflw75XqvHbyGdgKtTlP+jpkCLcexipSxVqGIYTjOofD9CPrmCw1usm8QwD2s8T4IAk56+Tp1CAqT4TiRNMJQRjDejTJ01mtw1wnOQVnpFOf0B54L0X4dNp4Ph61ze6l-RtAdMsAJhAG4RqKs9d1AIw228so713x8he2DYH5MvLgjBPGcm8RaKZ+2w+Q8p4qZoOZSwdNlSMPZhI8J0g6LcI+YqwtC3DZFpb7e+Kd9a-n1fglhJRJdsHUS8vkPhDBvYmhgRcxPMJshg7BeYqR4YkktAuhNBF945TY-J8gXExd4p7ZkpUpcEI1P9XEHozYcCP4g8G4Q8m5j8KdEA1w-BRpUxnRAh8IQgE9EBfBmhb45RtQYDPZX8vcf1NVyDsDcDYpxcCDJdv0SCxCE4KCXFqD1ccV80T9GCdQxgaRgxuo-Bgg2luCfB9BnQdxuojACIqQMDxDPxKDCEpD8DtYiD38N0pEbCoA7DiAVDG4Nd+V1CGCEAu5jCdCQhSx9RZ0ZUwiARyQ7BzDDErDOdvdSDMCy4PDJDNYJdnCItXCxl3DPDvDaCNd1B6DS81wKQ8wklyVeg+4sRmZ9Am13BupDAhDrDFCJCP4ncDojo3c84RD5Co08jlDPoaDiBQ9-DS9htmg8QSxJgRgpw4DGDtJNQjBSw1lb5-BjAMDYBUA8A8A4BYAvJUBOJPDKAqAmxERlFB0ikewSlWAqEj9xivltB-l5UT5fBiQkl8JvQUkxh58Ht8JZgzAtiJAlYzxkA9104fw-wAIM1ewaMBxShQDkxfBeg8JtwUkXg7An9vjPYdAmg61vUdw6QLJgTQTwSwB05eQ6BGBFESEBxewSFikaY6YkSEI7gNwAQYk1lFwpxEdAiBE4kUSSxtwn8OhST0AwSITsYe9NcEAbB+gWgcw9xgw4Z9RviwkHhZs0xehuhPZYVwt11W03C2jPw1ZcZyAHCtZCD85sijTciTSoAzSfswACjRi6DHjkS+oHg+k9xekIV1T1l+s7tPBWhhC5CP8FCsDTTsZzS8CrTZDiCIyBiHSnS8ZXTmo+8IcAiaRtB9BPhpgQ0aiEATARoBF-BZVYZJgwzEyciyCUyYznTOjs5uj3dPdwzayUjE5UyXThjVDWTNIUTkN25txtIXgPA68dQ8TgRn1SwqR9cMDMBwSIBJSKTpSqTikaBWAmx6AGTqBGBmTZT2TeYkkeZhtZxvRRzNRxsSxVxu5M9EjRCo1FzV8Vz04CYgCaS4TcheQeVZShTRodkqi0wj5vQdw-QJgmcPhQRQRHsFylzXzpTusycSivku5zBRUjAJhj4pwrsEBLBTI-ALIPgQgVTQ039bS3spFSAzwBx7c9jvwOBoTAIESBJ0gil4TESULkwNwvZQQNw9C9SFjJ9-N2ZwihCwL7yDTXtucdBqLaLBd6LEQqB2ABwOK-yzBOkwK61ghsRDDEIYLRp4YzD+CNxCNWiozzZGzLTMibTDTKL7SLLzT0z3T+8NDJ9PhTdUJVxnRYciyxy4lQQUkpwu5PYpxzLUjYzZNmzc4PdbLpKZd3CnLeyfDZSp9mcJVzBUI6RUJjd9QHg8QNxYF4iMC91YAD0IAZZ5AvJCAPcRiVY4ybK+ikypFSryrKriBqrarRQVZnKNd+yAZ4YNSqQtBiIHtOg9kpUAQVxeh+tgxm0Hz+ipEMYuJ04lKVK1L+r6hy1pR49Jxm83i+S5Q5VdMEk3Rkk3QMDlrVZpT3yiZKZZJ9zaZDy0w-RCNb5gRTrAhDqvL9Bn9JRsNyR+hLq05ELSdZTzAzA8TiRbAIV-jb9QRFSepPBgxPBnspLpcfdOyzYbZpTrKZCsi7KZL3CcbkBeq-y6QRpPhAVMJjkJ9twGlH86RoK9wAhwrE4SamyXcWzej2y7S6yLKSaybNrEB2CRoj57AtB8LXQJq616iJhGjCMxNqyXC+bZc4A2qnpSpYy8anC4qMbkjWriAKrNauIkqCDg83S+quK2S7hdBHg-YfA74GceFD4KsqQQtRzqs2azZFEzxcglgGr8a9akjIzUjfb-asAhbrbNJPNwLcxggklI93BQLIb5S9xeTtJVlva-Jw6A6dbrSmqOz3Dc7I7krCi1DXLszdxhM7gQRViasU77g06CIehAQ0byLCaEqHSS7MBObXdWzg7HzjSLKe6o6PSEIeCUFNxvUJgSwhKPgvBgRyRCLfYoV0CFrmqxkvIvtYQoAmwnwYABxGp1Z86EyVb7LXFt70Bd797HxD7j6x7K7S8dxgxfrPhLEz9YZviQgoaoKQ0gq3gMCr6b6D6wAj70B1YoquaYq2yazVbgHVg97QHwHSay7LbZTnR-MrAm9ZjcxStBp5ToiCTugmbSx170aQ7kyLLOQJB34F4TjT6Cb4rMb3CaG6GwB8i0Gxin7ULehpRPAjAdQcJ59KU1lvY5QjEQyOZs7Pw2GoB6HcCoH+6ea4GL6sa-I5GFGqCuGXKsyJi3hB456zN6QrBKUiR9BbhK0Fwj5laKKZKoBaH5GOH0jpDdbC7VaHH2HOHzaRjuG9HULEk4kUNrFcxiRDqXUWhVx+CRq8NNiN6OzPGnGGGMig73G1HEmtGSAybMyAk3L8JyRvADGSxkDuo0wQUj4HggVDBvVDAjAMCMnnGOilHubYq0n7HHHMmvCdGrbx7NIyVOlXhsR+kUlHgQViQTDPZ3AbAgQkkSq-c7cFdzY908ZiBZB4sKBmAKBA63Hea1Hbd7dy5lmD01nOINmKBH7-G6knhRoL861iUyU9k9wrE5iP195bA5m+cFmZYjnVnCB1nNm+6WnYHz6ZL9nFnmAfmTmzmLncmAiwkKRadE6BEEkcqeE61OlCNUd8zam7gtjO1vnIBjm-nTmAWFNrUdt7U-FemIEWbRpTNnRzAcx+hfUKROhZzV60xSU8XdUCWVmoWAWkLZSPrmgmhMFUJsQElHmcxNSdR3gzNhr262mZcY1eWiX-mtnBWcnPlkwklUSggnndWj5b49kzAwVOgT5fZlQRruXiBVXfn1XUtbV7N01MtnNwdYXSjJgwU6QasvXtwuDAZtw6XyQCrvMyKlXMaVXDnCX7WSWtm7NU0XWnMYMhwtW8VNJfZeKYF8QTIggA3HhJwiUQ28xJhbEZGoAKAwAwpYB0ACp+RUBLwQo8AKE+0IWY2TntmC7dmiaHTK3q3a3Hx63G3CBm3W3IXiWYXtWglsH+EFQqc6QtBjINQiQRzkWKxHhy2+3CAa262G2m2W3nA22+XiXO2z67Gu6LKt2d3B292R2D2j21XOJsno6IEUXdJIU0xwUA3UxYk9Q82lUOhZn4nVb3Cr2B2h392x322T3GHB7FqHLUiwPd3h3R3D3x34sya-CeG6kzBB55SSyPAX6L5cIrAuFNlxtN2q3t3wPb3UOH3Y3T2mH9bQ7E4kOb2UP730On3um+BijqX6hZxpRzA3QnhdQwkhLIYvBVjWZiQjKv1VGe3L2qPr2IO72oPj34tAWYG4PN7+bEPlOaOOP1PH3J302IE5R7h+ltIiQklJwJPxVK9twzqQy-BbHO6WHe2DPkPIO0PoPNPmntOI3kjQOvP2OfP6OTnn3+PnVSOAQ1wnt8MTBA4PYf62gfXLBQQBG3PmG1b+2Cpxkv51q-5j16AKBcgcgOBJJpJZJZSmgJhRpQQ3hCMT5PgA2bhTLvB9W0FQnb5FXu3HI908vnxWUrVWA4TAFsAaAnk3kCghX1irzUcdwJGJ81R3rK9FQVUrAwnJKO6cvBvqP8vWVcl8lClilSlQdBwhX3BdA1k60rBUJo82vtxmDdQXh+gM8vMHFgPqJ9vr2Cu5EZkeUVEwJ15N4tEX2mZfAxgP1ghAUaQb1GdcIYFXPJwpQu5FtfuB2CukQf5iuAFhJgFhJavAhpRekfA9qZg+SbhbFvBQggxZwF6MfQuCvd9vEVMIfGCRhmdAhDBdxbOnugs8S9wBEsFg53gmehudAB3WJYBsAftNPmBoxqSJupvsAZv8havPgRoATWg1lbOVxlwzA-QTGCJzCghWbvup5Mf8uyqjbipnpGOdOrprfnxbfjb-JnpTOEMBP708SRERthtmXBobgZjRp5R9cnQcIJeDvXeNaPfSotOejWn+uEgXftU4+eqePhay9E6UIp0aVcQnu1lpRn9LFn1eedugu0+rqBJ4s54RiADCYJJ7qNfs-Z7-VTF6Rbgb9g+dlkMAx46dQb1K+U-cuY+WJnpa+QoIAG-BXs+PrYkby1wzcOYVv+h0K0wQQBHXhxsIRLeBvmea+6+Z-ic1rVK2AEShW7AcN4ZbhtdcwDfe+UlLOXrP2j5zBo+-viaHfYOq-mfv-SoXvAfHKWX4nZy0cwbSDYGXBm4ZQPgQEG8HVCf8seAAriI7z-6S8UB3HHxqoTTbe9EAZ+P0Poi7hrgzq8MQ3oRkiatdfYCSWYCPwU4H8MBDpeqr-1H5p9MBmHDnnKVQwAhGkXcSYO8EVCG89wC6HitfGGwmAkB+XTAYnwHroDx+7ArPpwMDRTEekGJWxGuGXCZtRodabQB8BbqTg+u9A1PszwoyNQwAK+NfKwA3xb5ikePUruV3SAcBDyYmOLo8BMgG43Qy4RUJZ0eBvAgqcAhlPv2MGS9TBtbCwT3luKMB0gA4ZeIeWeJEMVUxiEwMCmD4eBFQDXAFJ0DFQGgghY-P7qEPMG-5u8c-TgXWggJ+BLGhGRpMa1SFVDvAkoR2luHf5fcKGP6NPq+FYiHQvsfkMDo+Ab4sCjBeQrHh0K6GyBPwvQkYkALcqcJvAncSdHSA3C15e+Z+EtCNla67gtAkg58CMIXhjCK2BnPocTgC5J9gW57YIePx2HdDxhBwyYYoOi7FlKs4wFcMwhJROdoBIcGAiuAXB3BV0rQkgmn1QBlVHwbbMwYXmoDnFaAlxZgNcSm5bx7if5EYCNApoWRb42VfwNAOXYmAG00NctFsLVpu8ehNw7qj-xSY7NBhafQ2u7wmHEjABdw7DghDQpjA3QUTRUEEFuBeDdQ-oNlrfHE7uAWhu3fWmnwabJNXGXbckcz2FFDFsBKVNvrfDGBK0jAc+NgtANfqrg9qO4BJHxnk4gsGB4-SUR0QGE6jzhf3fUVkx464DgBEwbqKNHwhrJWgM4MwIbzuCGV-qq4B7kSDoFGihh+XU0Z-GOGyDWBEojpo0zNHSjy68-fjJE2f4wwUSyXYYGmGaA6htkpid7vNT+Ef4KR8zA5ubABaGizh3o58GCxlibMphAROkEkjwitA3qceFGgWAvzeB3qfyCCvYDxFFjy4ALf0Soy9GZjPm2Y6EeczpGXMEI2kOUN4HdqLCQQq4JYaqC15xJK0tOF4K1zibpjnezPJrPFn7EbZ5MW2clmljtR2Cie2fbqONmiJ2AekYncfAWFDIAhMI+GBnk6DxHrjOIm4lLAmwyzJtss2fLyijmYTmBQyljAsMRXqHQVyQkMC3iuINhp8nxL4zrG+KTZQY3WFdIcYWgXD1EdQpbcVF6GD4kCbxoKXMG8DjzkMBRSRKCXFmfGbMtxJQ+4ceM6RQ9OoWvJAit06CaYGhd4wjH0my6Ci1xZEs5luLJYsYJI35X8keJDR0tFx0NNLl3ALCSgUEpKExDAkMj8i5Bf3J8bxJSxIVIh0Q2IUeNBC0T305494JeN75ThKBC4NUYpM4kkTuJzWNSZ1nXJAJNmVAcrsUiuKsBeQnARgCBB-KJsmA7PaiUIX9AYZhSNacwAWE5bTYA0+iHmAtlyFp8wS5wT8LfTOZEISEaKJ1pSweL0ihUmXOJLXXN6rgMS2EaUNsjPH+B06NgbUfmLT4EjPwqnPABFxg6kixR3Y5njVKgB1SGpGHQcR6y+Tlpp86dKscqHGxhSrAeJOVmUWbzQ48RbUjqVxxkFdiqprUuPrNL85YD64fZJQZ8F4IkVSUVkMgcH2Oy8l9IZhMlK2NC6fZvsv2f7LlAuDA40pYOcGpvzD63oeMgILwQKVvKtAsEsCGKRBJ+7M8XeF0-HFdKJy3SAEqUgSb-CoD-xAE4NcwIQL8AeVFh5aZcFCkpC6lxs+ZM+GdKG5AyCc10wHJ-ColZSAYVolHMvx8oeBm8qMqGHWhNxYVP2hglqZLzbEVtcxTUs9u5wLFq1exizaFt1KnaaQvqUxXwCgQ+AmQCwhkgEMi21BThTKlUrmT2P9zjCOxNmaKicKd6QSAZWYvmSWIFlmctqt6SkDfGnKZ0hKqgKUDePeBsSLJ00uPhHUNS0dOpnENAYGMl5tSHZK0jTmtLVwyjOB52dMKjmDBPNi+T3DYnhEIiIzGuD8O2Xb0-CeynZc0zscn3FHuz7ZSwL2SZ31l4CEAAc6bD8nZzsTzZo+K+IkifwBBugkoPEWIFaxmoQRtbCACBAwDsAJA6AB2USy+iQAIhpSLSZxXuG2Bxm24YMNHkVEmACwHCEwr7ATr21TEi2d3A4x-wmo-8EAbHspXP5vI+5JMraqOJzKdAWaJPX2NJI6CdJPAzwzNqBI5x-Sp4881uRYIK5KV7pl3efiWCnJ3BfYtIIsFTxQy6BeSrnDHB4CUmj8b5i82AMvPT5xzLKeMV2YMOAV3y2pZtdaX7PuEdAICFnRrliVXB6VCwxaVBEIi+BEk55B9W+UUNXzgL3ekVNWdAw1lBdYFJClefAudKljS8oVPEujgCBm5xs7waSZOC6g8jgKOoefPqWIk-paFS8gvLJTABnhwhUJf8IBAu5VJDygQQUs1xhT3xbA0AnXEERCzPBsMno-MaItAXiLYAyARZuELzFcyDFYC4xaYroVMKnix4rpF3C2QiICUGi+UVottFagmghCu+sQrEWkLrFfkcIcnNOEWKiFICqxSYqCW2Ls5wAgMPUJoHahMEk4ZcEl2BgX4QqD+bBGRGIDOl4AFQPovcI0AvBKQ7QZiSQ3CTSSqc-CWYC6mF42BzkSQUWEUvFYmFJwy6VDBwm4UnxDKxJRJOSl1B1Z+5TQV+bAg-mX5pJ4+KcvMUfxBBNki2FGBLEfDIKhseJT9PAjPh6VJxxvYzDOCJCgSFl4sWOHdFfDHK-IyC03g8HdCgxe4cY-5D-JjFwwEYuQxZccvRjPQeI3+C5RWLZh4N-YXMCGJ8TD5hxnlV8xyK8uNjqMTaL0CqFtCijfKT51ynuAHGwiKhipjygWIcpjiQqrq3ZBFVcvvjIqAVQccKUPCeURwXlRyyFYlWThVwSa+K35TcpRUQwfAfoMyPzBHgKycuEKkuBPy1pVUaqrESAAyqRX-KiyWgAIMCo5WgrhFJBHlbPBkTfLSeYqKnHqEVr6ZX6WgAMG8FDIkNF89wyGJTVLTeYK0UkiGBSGoH7hekI4syrkNIwLwDV2uEtF5nLR5t82IzaGNHmIqpgfAGBdtDGn1Tdpa5faA1V6TGzaBLAVorMCaxKV10iwSXLfn6rIxLBAMlGA1fiHqITpbA1TUZhDCEwo8wk8oeSYAsGH2qEgUVdNdaIQFyynmPQXClMwbxJIXgC7cEOG1H5lrYsq2YNe1k7TUT+kPA0Krh0JDTjBMHwOlkYC8xyhCMREoLjjhcR4yQZN0tqILIgQ4QpyjSfRKOTpowxZhVkE8mZG6AfNlZUAJXOgH7n5kWC5vB2uv2NwaktAegywiEFzBCLZ1baZfHQv7lrJF6hVToAItCp15nRXrPjNf1AlMz8xLHJQh-HuEwo-Q9gFErOGDmvA68L85IUChIE+AGldqqNNsV2L7FDixxFxMgtvjGECU9NazqGWiTCCeeD8IkMkmJDikEKyAe4V0HuCXYi0oTDUYzllptBMF9gQFIM3LZ4qt53BKCoKT3Dj49Bnsb4h4CnJKogiR1F9e2qfLwVySase4X1BdCjBTqm4VcKBQFIQVNwW-NMIeqw1UVJF8lEdmAGY3IEHg2DP8WYgiJYhVioqUIqPgqF+By25pe4UumlCm8NleDEINEhXBTlDchIDHLarBWY1KR7VTquxBpFcRvNitCrCQLwyVZcKiSQgfqA4K9BQUoIYGjXCY3CbiyEFOlrz3vRMER1iECVeuvdrQEcwgy0zQh3Zog1CtyEgajARtHuYh+CSDoPDRwxcYT4lhVGoptLU251aEClWF5qK2GR0qlhZAnTPS3ep9A+uS1ntTgHlse6zGwtWJoe6EYZwcYpbuI0-ZEhOYy42Vbpx0AIM-It9e+hA38laBxG-Sf1sU29DuZliNKPEO8D0VcyINGjYMZ4X7nm9BS-QKfPhnLCUog2DMoeWgkMT1N-thGorYnXTA5hi+F+BJBZAmovyvhJYHCBuB4JHqvm0bb2Wc37n9YKsitbpKBKEo4MoxrzNcH4MslD0xkUbJZqtJJ2I7aQYfC7NiGX6Vb9kBiGJHlmERHVKOQ3OqZx1Wn9yVwxYCmhl3+SeB9M5jZmLLODRAlYpoXUNSUosjZhjNZ2SZaWE1KXx4Y5PNMedtXGS9kU0GgwTUq+BpUv5WIm8YRGl2Z0Z1bs8ftL1l7y9OIVut0GH0nCzFwUPqVIduAbzljzCmdX6Wbq1lpyJtz0fuUCv6BTA3umLXCjcGComEbskKRVNpDxFH9p+IxaDQgXXUKgsRVOJ7tM34QCD48oTUROrsYEC049RW6ZtoQPnvU7gvQVJbfCmp8NbEWgPbXiIKEWD1N7E6BM1x4VN41+3gtZSNkOT2jggA+iQJ0N2GEj+2hw8BCuq2o6q-e5YFAp1HL3pCRObCYavvC5VcTJegIgqPXOFVFaugsSHpBaz1yVabgrIvEjMSy36FfAp+qySzPG1UiiRFwFWNBoaH8IB5BEQwJXNSU2ATsNWDCD6rA2KygxXjBHW1oE4cFDK4muGCGi-k6FCmk4StHDkj3KSserM-sfcI25SdcO9IRoj31VA5gT5yLFmpALFJ17x+0Eiib2qK1jocMfg6zvoR8BXisGt48sexIfEsGVJPE9g7qnTUvztdfPPg1gsnGlLTq8McWjzDxHxS9hSUzZtIe4M67aNqELBe8Di66FmJ4B5orHPd6ZzY26myUPcGF58xWJK3FQzKEMkIEZghgHGTHwXWE4l1-0DffgMtx4kZJ82KmWv2IFzj7Et-KFA1si3czWZ7OlAyLXYSDZ7uGGBlm11npC8ZgIe3wBuBLXMzx+HsjOYnMl036QdTwug5LUT3FzYeY4ywk4sSHVzu1V+xuc3NbntzfmnciANSyYhiA1AuHbQcNCS60gokIABeErEHzWi1k+kCmqWicCXhW5TEViP0ZBCDGhpW-dhU4E8hQBMAZ6nPuY2mMcwfN4MM8HPCwBYgQQTgTAGAFCi7Gtc5iSnLxgsYzHjj48pYs13WMjHvtOXSxQXnPWL8CJ78+2hMtSHTAWC7mVCIM2DD5H9F4Su+ZbsR1KKqywVNlqwSPnFpT5p2PDJ6h8ULy4FcfKbYkf0oCkqye2zuI7VT0Fl6iNaEnlYxhNhLfFES8Ra+Dxh-ZVmyC2cBVg2LicwKKS4PYSm0rygm0eglJLib8WGLSF1FIfU3pGDjBdSqOETHQY0WxJcjOg9+cXy-0iK4TdC7VFEtqkfqitBmZoFTPfpCNqsxcp6aqfJDqnS0Yppk6Qprn+LfsJi6-UScjxi0dwtKe2oGgtOTktkP6uZcwfTFEAa2T4IYESc5E8xbOW-HmJK2D00hr0BmcFF5VhQRAgAA */
21
+ /** #no-spell-check @xstate-layout N4IgpgJg5mDOIC5QEMCuAXAFgWWQY0wEsA7MAYgCUBRAZSoBUB9AYQHkA5eqgDXoG0ADAF1EoAA4B7WIXSEJxUSAAeiALQBmAIwCAdAHYATHoCcANnUAOUwBYLevQBoQATzUGDmzTuMWB603oWBuohpgC+YU5oWLgEJGA6JPiyAG7kAJLs6fTpAIIAMukAWlSCIkggktKy8ooqCBrW1jrq1vaaBkECVqaaAKxOrg2adhY6pgJtHkZWbeoRURg4+ESkicTJhGlkmdl5hSV8muXiUjJyChX1qpp6pjqavbfGBn161sYvji5qI5M6QXsfQMAhefjsCxA0WWcTWm221Do-GEiiq51qV0Q2jGI0+QWmrT6AlMgzcAk8LWsrWM5NMPjakOhsVWCXh5Bo6QA4uxGABVAAKZVRZxql1A9QMVOM+iammswVMNgC3yGqncHW8NJpfWMJnUr0ZS2Z8R0bLIHO5fMFx2F1QudUQkvU0ve1jlCqV9lJDWmfQegVaHwsWluhpiKxNZvyrE5mSFFTRoodCHcFj9-RMwPspgM5gs3rV2l01gE3V1bxeboMYZhLNNeFS5AAYqwKJzWEx+bkaDQAOqtgAi8dOdox4sdAj6YzsRJMk0+NmsBc0xj692MthCmnUdwstj6NeNcIbWwSAHcwAAjdTMeSkBsSABOOjwd7AJ+IUDIbHYTfSFGwRheyoAAhdRGGjWN2GHSoRXtTEEEeOwHgMHwvlzHd5W9dw1x0PprGBKwp1GatIihI0I2PRsdAva9b2Ie90CfHQwAAW2QQgABt0mIMQMDIAA1KgKHSJsAE1GCobBcnSfJJMKWMQNk7IxJgxN4PHRDTCCFC0KMDD3gMbCQTGfDCNMYjAlIxZw1hVkTzSGirxvN8H2fNJH0IAAzZwSCgKh2K4qhOMIKBCEvLiZGcMgIHkBISBSCQAGtWQouz62o2iXIY98mPcsBPJ8vyAo4zjgtC8LIvQZwEASiQ8GQUUyjUuCx2ULETGldRyTuewDKwn4U38PQdEmczLKCQ9KPszLnPoxjmI87zfM-EqgpCsKIpC6qyAKx9mLETjGq8p9WNNNK6zZJy6NcvKdCWorVsCsqNsq7aarqhqmuEFrRzFdrEM6loeuVfqjMGyVczwgjOgsiwSKm9Krqy+bcuYtjSoMLzkFvCByCEkTxJYfIZMA38mCkmS5IMJtcl+9F-vqW5-kVTx5UMcxDOw2x7jG2GJus8jbMuhzzzm27FoK5a-OYI7CFY9gvPQNbOKx5AYri9ZEpS87hcjUXruyhb8sKlaoFljiFaVlW1dq4hEq+i5mpRBNWsZrELEecYCL6W4Ocw8GhleWxofG+GrMRkXZpunK3PuqXHvNuWreV561d2x99ufQ7jtO3Xa316OjbRk3pc-C35cV1PMexu2Hcap2fpdkcGeTEYvZsPpfb6zmBqDiYxj5ojw8msimWmjLT0N1G48ICBOPZKh8ioZgmB-dgV-oVt6aTBC5Q1N0LBedRfd8SxsO6rxUKnARc3lGx5jHi7C6nziJDC4hzQYAVGGoWMaC4BQPkdAKA7w0gDEsbQ8Kggss8E+HQSSDXlH6EE7g8SeEnBZA8T89ZUVfu-Eg5p6C5AoJ2bsNAADSVAJKQTjM3WCf1kzOlePoNc+ozABjsEuQatwLL6D0F3N0jxnQjEji-Ryb8P6JHnuQWhPJezZAABJAVAjeDgG9V7b3oepNqTMqReHeDqTwPh3gjHzDwncuhVyLiPsgkI1gxF4IkQQ4g0iF5kHbDGZeEEYx0JOAw1uCF2bpjdNYXoa53CBG9LqAwOhgjGE8H0fUeh-CtEcTNfBUi57uNyAOASuR2DMCoIwLejAuw9n7BQIc2i3bJiaCwgI7dgy6kCOYoY2l1AtBCJ8Vc8oCKhhwQXJxCRJEkDceyLkPJMhASUWU8hVDVI1MYQhIwegvC2BLAI4EjxtLehGHw7S3QiQ0hBBs9Jk9nFZJkV-Zeq85kVMHIwbADBFGsGqf4nR7sUyGBdPhSUt9SzkgIns4IzQBGPHlPqI+wJwiDKPBky5YzsmL1uWQh5VSnkvLeUcD5tSEJaElOMCYJgOi2BBOoPZoS8IpPsLqJU25zlXVGa45FNzN73L7I8559BXlDgMLi5Zml9TyjwrqUsntDJym4UMfozoARWBCJYX2U5BbjyRgbZl4ydDSCgMQXsMhMD8mQLAWAKVop-iyDQZR5TKHUJ8VBMBujEAn38HE+UntyTOjeE0bC3Rmj+BzDqSwJZsE2SGQikZLitU6r1Qao1JqzVkBtQsxg7AOyMBoAKfkrYuDvNtIEzSrxgjeBXK8AR8NXgDAhpKK+ehQR7jMcSScjKNVRuRdq0KsasDxtNWAaKIFcjMAoY6r5nQRVyl8Ckqkhhz4Qz9Q8GwuoOh0rSXCieTK20yPzjQPAj4wBgE-ha9IVqOUprkSOphY0AQfAmNod4hlEFBzdCNKkh9uiGFxKq5+wydCavbdCHde6D1JvmXatNTBM38mzaQqgebXaCoBtfe4K47i4gIrqYM2FAi6DhgEMw1iBB6BbdRP9W6AO7v3Z-JELAOADj2BwAofJ0inuoRe-FoJmgdFQt1Kkt9OgqkdIuloaz6mdFxGmYjmSkVbr2k+MgR6T3JrteepZBaAZbliZg7StL4bkmwtoP0lgNzd38N0OUknEUspk5nOTSmJLgYzVmnNsG2OFuBJ0hJLw3jEUrRfKkLQ-k0hPnSIIj8w3wouZGq5C9f31WQJxHtZqaCdpAz2FNDnIPQdza59TbpdBH0eD00sCSBFYd8OMKcpjtJNEgRZqL0mYtvwagl41vbnDJd1WQAdQ6cv1FaEYcY-gCIWXMNoYwFKIavoBJWk+ayj5Hzq7F6LkbmuJb7R1w9uxFOgZob46Cqnd5CvLXE8b7DPZ2DrdKx0YTeaWA8BuEEioiNrvVSRqNzLsBgCwBICANAwALxPPINldybWVLgy3Q7ECBGac9gRecxXH1YkVLErubNtLw0VM6RbmqPtfcwD9v7APRRdcHcOg74D6htCgXmFJ6o0wvD2V3Tp7RX0zFQgyF7UcpOuL3egTyYAUh+RoPF9AGs1h1R1mqrnlmdC8-54Lz8wvOLoDrnF76QheuIDaL7PC7gQT4V1DuPZxIvDBmIqEGwF3sdRrl4QAXQuRcZyzjoHO6ATqPjOlL8R9Wedfflw75XqvHbyGdgKtTlP+jpkCLcexipSxVqGIYTjOofD9CPrmCw1usm8QwD2s8T4IAk56+Tp1CAqT4TiRNMJQRjDejTJ01mtw1wnOQVnpFOf0B54L0X4dNp4Ph61ze6l-RtAdMsAJhAG4RqKs9d1AIw228so713x8he2DYH5MvLgjBPGcm8RaKZ+2w+Q8p4qZoOZSwdNlSMPZhI8J0g6LcI+YqwtC3DZFpb7e+Kd9a-n1fglhJRJdsHUS8vkPhDBvYmhgRcxPMJshg7BeYqR4YkktAuhNBF945TY-J8gXExd4p7ZkpUpcEI1P9XEHozYcCP4g8G4Q8m5j8KdEA1w-BRpUxnRAh8IQgE9EBfBmhb45RtQYDPZX8vcf1NVyDsDcDYpxcCDJdv0SCxCE4KCXFqD1ccV80T9GCdQxgaRgxuo-Bgg2luCfB9BnQdxuojACIqQMDxDPxKDCEpD8DtYiD38N0pEbCoA7DiAVDG4Nd+V1CGCEAu5jCdCQhSx9RZ0ZUwiARyQ7BzDDErDOdvdSDMCy4PDJDNYJdnCItXCxl3DPDvDaCNd1B6DS81wKQ8wklyVeg+4sRmZ9Am13BupDAhDrDFCJCP4ncDojo3c84RD5Co08jlDPoaDiBQ9-DS9htmg8QSxJgRgpw4DGDtJNQjBSw1lb5-BjAMDYBUA8A8A4BYAvJUBOJPDKAqAmxERlFB0ikewSlWAqEj9xivltB-l5UT5fBiQkl8JvQUkxh58Ht8JZgzAtiJAlYzxkA9104fw-wAIM1ewaMBxShQDkxfBeg8JtwUkXg7An9vjPYdAmg61vUdw6QLJgTQTwSwB05eQ6BGBFESEBxewSFikaY6YkSEI7gNwAQYk1lFwpxEdAiBE4kUSSxtwn8OhST0AwSITsYe9NcEAbB+gWgcw9xgw4Z9RviwkHhZs0xehuhPZYVwt11W03C2jPw1ZcZyAHCtZCD85sijTciTSoAzSfswACjRi6DHjkS+oHg+k9xekIV1T1l+s7tPBWhhC5CP8FCsDTTsZzS8CrTZDiCIyBiHSnS8ZXTmo+8IcAiaRtB9BPhpgQ0aiEATARoBF-BZVYZJgwzEyciyCUyYznTOjs5uj3dPdwzayUjE5UyXThjVDWTNIUTkN25txtIXgPA68dQ8TgRn1SwqR9cMDMBwSIBJSKTpSqTikaBWAmx6AGTqBGBmTZT2TeYkkeZhtZxvRRzNRxsSxVxu5M9EjRCo1FzV8Vz04CYgCaS4TcheQeVZShTRodkqi0wj5vQdw-QJgmcPhQRQRHsFylzXzpTusycSivku5zBRUjAJhj4pwrsEBLBTI-ALIPgQgVTQ039bS3spFSAzwBx7c9jvwOBoTAIESBJ0gil4TESULkwNwvZQQNw9C9SFjJ9-N2ZwihCwL7yDTXtucdBqLaLBd6LEQqB2ABwOK-yzBOkwK61ghsRDDEIYLRp4YzD+CNxCNWiozzZGzLTMibTDTKL7SLLzT0z3T+8NDJ9PhTdUJVxnRYciyxy4lQQUkpwu5PYpxzLUjYzZNmzc4PdbLpKZd3CnLeyfDZSp9mcJVzBUI6RUJjd9QHg8QNxYF4iMC91YAD0IAZZ5AvJCAPcRiVY4ybK+ikypFSryrKriBqrarRQVZnKNd+yAZ4YNSqQtBiIHtOg9kpUAQVxeh+tgxm0Hz+ipEMYuJ04lKVK1L+r6hy1pR49Jxm83i+S5Q5VdMEk3Rkk3QMDlrVZpT3yiZKZZJ9zaZDy0w-RCNb5gRTrAhDqvL9Bn9JRsNyR+hLq05ELSdZTzAzA8TiRbAIV-jb9QRFSepPBgxPBnspLpcfdOyzYbZpTrKZCsi7KZL3CcbkBeq-y6QRpPhAVMJjkJ9twGlH86RoK9wAhwrE4SamyXcWzej2y7S6yLKSaybNrEB2CRoj57AtB8LXQJq616iJhGjCMxNqyXC+bZc4A2qnpSpYy8anC4qMbkjWriAKrNauIkqCDg83S+quK2S7hdBHg-YfA74GceFD4KsqQQtRzqs2azZFEzxcglgGr8a9akjIzUjfb-asAhbrbNJPNwLcxggklI93BQLIb5S9xeTtJVlva-Jw6A6dbrSmqOz3Dc7I7krCi1DXLszdxhM7gQRViasU77g06CIehAQ0byLCaEqHSS7MBObXdWzg7HzjSLKe6o6PSEIeCUFNxvUJgSwhKPgvBgRyRCLfYoV0CFrmqxkvIvtYQoAmwnwYABxGp1Z86EyVb7LXFt70Bd797HxD7j6x7K7S8dxgxfrPhLEz9YZviQgoaoKQ0gq3gMCr6b6D6wAj70B1YoquaYq2yazVbgHVg97QHwHSay7LbZTnR-MrAm9ZjcxStBp5ToiCTugmbSx170aQ7kyLLOQJB34F4TjT6Cb4rMb3CaG6GwB8i0Gxin7ULehpRPAjAdQcJ59KU1lvY5QjEQyOZs7Pw2GoB6HcCoH+6ea4GL6sa-I5GFGqCuGXKsyJi3hB456zN6QrBKUiR9BbhK0Fwj5laKKZKoBaH5GOH0jpDdbC7VaHH2HOHzaRjuG9HULEk4kUNrFcxiRDqXUWhVx+CRq8NNiN6OzPGnGGGMig73G1HEmtGSAybMyAk3L8JyRvADGSxkDuo0wQUj4HggVDBvVDAjAMCMnnGOilHubYq0n7HHHMmvCdGrbx7NIyVOlXhsR+kUlHgQViQTDPZ3AbAgQkkSq-c7cFdzY908ZiBZB4sKBmAKBA63Hea1Hbd7dy5lmD01nOINmKBH7-G6knhRoL861iUyU9k9wrE5iP195bA5m+cFmZYjnVnCB1nNm+6WnYHz6ZL9nFnmAfmTmzmLncmAiwkKRadE6BEEkcqeE61OlCNUd8zam7gtjO1vnIBjm-nTmAWFNrUdt7U-FemIEWbRpTNnRzAcx+hfUKROhZzV60xSU8XdUCWVmoWAWkLZSPrmgmhMFUJsQElHmcxNSdR3gzNhr262mZcY1eWiX-mtnBWcnPlkwklUSggnndWj5b49kzAwVOgT5fZlQRruXiBVXfn1XUtbV7N01MtnNwdYXSjJgwU6QasvXtwuDAZtw6XyQCrvMyKlXMaVXDnCX7WSWtm7NU0XWnMYMhwtW8VNJfZeKYF8QTIggA3HhJwiUQ28xJhbEZGoAKAwAwpYB0ACp+RUBLwQo8AKE+0IWY2TntmC7dmiaHTK3q3a3Hx63G3CBm3W3IXiWYXtWglsH+EFQqc6QtBjINQiQRzkWKxHhy2+3CAa262G2m2W3nA22+XiXO2z67Gu6LKt2d3B292R2D2j21XOJsno6IEUXdJIU0xwUA3UxYk9Q82lUOhZn4nVb3Cr2B2h392x322T3GHB7FqHLUiwPd3h3R3D3x34sya-CeG6kzBB55SSyPAX6L5cIrAuFNlxtN2q3t3wPb3UOH3Y3T2mH9bQ7E4kOb2UP730On3um+BijqX6hZxpRzA3QnhdQwkhLIYvBVjWZiQjKv1VGe3L2qPr2IO72oPj34tAWYG4PN7+bEPlOaOOP1PH3J302IE5R7h+ltIiQklJwJPxVK9twzqQy-BbHO6WHe2DPkPIO0PoPNPmntOI3kjQOvP2OfP6OTnn3+PnVSOAQ1wnt8MTBA4PYf62gfXLBQQBG3PmG1b+2Cpxkv51q-5j16AKBcgcgOBJJpJZJZSmgJhRpQQ3hCMT5PgA2bhTLvB9W0FQnb5FXu3HI908vnxWUrVWA4TAFsAaAnk3kCghX1irzUcdwJGJ81R3rK9FQVUrAwnJKO6cvBvqP8vWVcl8lClilSlQdBwhX3BdA1k60rBUJo82vtxmDdQXh+gM8vMHFgPqJ9vr2Cu5EZkeUVEwJ15N4tEX2mZfAxgP1ghAUaQb1GdcIYFXPJwpQu5FtfuB2CukQf5iuAFhJgFhJavAhpRekfA9qZg+SbhbFvBQggxZwF6MfQuCvd9vEVMIfGCRhmdAhDBdxbOnugs8S9wBEsFg53gmehudAB3WJYBsAftNPmBoxqSJupvsAZv8havPgRoATWg1lbOVxlwzA-QTGCJzCghWbvup5Mf8uyqjbipnpGOdOrprfnxbfjb-JnpTOEMBP708SRERthtmXBobgZjRp5R9cnQcIJeDvXeNaPfSotOejWn+uEgXftU4+eqePhay9E6UIp0aVcQnu1lpRn9LFn1eedugu0+rqBJ4s54RiADCYJJ7qNfs-Z7-VTF6Rbgb9g+dlkMAx46dQb1K+U-cuY+WJnpa+QoIAG-BXs+PrYkby1wzcOYVv+h0K0wQQBHXhxsIRLeBvmea+6+Z-ic1rVK2AEShW7AcN4ZbhtdcwDfe+UlLOXrP2j5zBo+-viaHfYOq-mfv-SoXvAfHKWX4nZy0cwbSDYGXBm4ZQPgQEG8HVCf8seAAriI7z-6S8UB3HHxqoTTbe9EAZ+P0Poi7hrgzq8MQ3oRkiatdfYCSWYCPwU4H8MBDpeqr-1H5p9MBmHDnnKVQwAhGkXcSYO8EVCG89wC6HitfGGwmAkB+XTAYnwHroDx+7ArPpwMDRTEekGJWxGuGXCZtRodabQB8BbqTg+u9A1PszwoyNQwAK+NfKwA3xb5ikePUruV3SAcBDyYmOLo8BMgG43Qy4RUJZ0eBvAgqcAhlPv2MGS9TBtbCwT3luKMB0gA4ZeIeWeJEMVUxiEwMCmD4eBFQDXAFJ0DFQGgghY-P7qEPMG-5u8c-TgXWggJ+BLGhGRpMa1SFVDvAkoR2luHf5fcKGP6NPq+FYiHQvsfkMDo+Ab4sCjBeQrHh0K6GyBPwvQkYkALcqcJvAncSdHSA3C15e+Z+EtCNla67gtAkg58CMIXhjCK2BnPocTgC5J9gW57YIePx2HdDxhBwyYYoOi7FlKs4wFcMwhJROdoBIcGAiuAXB3BV0rQkgmn1QBlVHwbbMwYXmoDnFaAlxZgNcSm5bx7if5EYCNApoWRb42VfwNAOXYmAG00NctFsLVpu8ehNw7qj-xSY7NBhafQ2u7wmHEjABdw7DghDQpjA3QUTRUEEFuBeDdQ-oNlrfHE7uAWhu3fWmnwabJNXGXbckcz2FFDFsBKVNvrfDGBK0jAc+NgtANfqrg9qO4BJHxnk4gsGB4-SUR0QGE6jzhf3fUVkx464DgBEwbqKNHwhrJWgM4MwIbzuCGV-qq4B7kSDoFGihh+XU0Z-GOGyDWBEojpo0zNHSjy68-fjJE2f4wwUSyXYYGmGaA6htkpid7vNT+Ef4KR8zA5ubABaGizh3o58GCxlibMphAROkEkjwitA3qceFGgWAvzeB3qfyCCvYDxFFjy4ALf0Soy9GZjPm2Y6EeczpGXMEI2kOUN4HdqLCQQq4JYaqC15xJK0tOF4K1zibpjnezPJrPFn7EbZ5MW2clmljtR2Cie2fbqONmiJ2AekYncfAWFDIAhMI+GBnk6DxHrjOIm4lLAmwyzJtss2fLyijmYTmBQyljAsMRXqHQVyQkMC3iuINhp8nxL4zrG+KTZQY3WFdIcYWgXD1EdQpbcVF6GD4kCbxoKXMG8DjzkMBRSRKCXFmfGbMtxJQ+4ceM6RQ9OoWvJAit06CaYGhd4wjH0my6Ci1xZEs5luLJYsYJI35X8keJDR0tFx0NNLl3ALCSgUEpKExDAkMj8i5Bf3J8bxJSxIVIh0Q2IUeNBC0T305494JeN75ThKBC4NUYpM4kkTuJzWNSZ1nXJAJNmVAcrsUiuKsBeQnARgCBB-KJsmA7PaiUIX9AYZhSNacwAWE5bTYA0+iHmAtlyFp8wS5wT8LfTOZEISEaKJ1pSweL0ihUmXOJLXXN6rgMS2EaUNsjPH+B06NgbUfmLT4EjPwqnPABFxg6kixR3Y5njVKgB1SGpGHQcR6y+Tlpp86dKscqHGxhSrAeJOVmUWbzQ48RbUjqVxxkFdiqprUuPrNL85YD64fZJQZ8F4IkVSUVkMgcH2Oy8l9IZhMlK2NC6fZvsv2f7LlAuDA40pYOcGpvzD63oeMgILwQKVvKtAsEsCGKRBJ+7M8XeF0-HFdKJy3SAEqUgSb-CoD-xAE4NcwIQL8AeVFh5aZcFCkpC6lxs+ZM+GdKG5AyCc10wHJ-ColZSAYVolHMvx8oeBm8qMqGHWhNxYVP2hglqZLzbEVtcxTUs9u5wLFq1exizaFt1KnaaQvqUxXwCgQ+AmQCwhkgEMi21BThTKlUrmT2P9zjCOxNmaKicKd6QSAZWYvmSWIFlmctqt6SkDfGnKZ0hKqgKUDePeBsSLJ00uPhHUNS0dOpnENAYGMl5tSHZK0jTmtLVwyjOB52dMKjmDBPNi+T3DYnhEIiIzGuD8O2Xb0-CeynZc0zscn3FHuz7ZSwL2SZ31l4CEAAc6bD8nZzsTzZo+K+IkifwBBugkoPEWIFaxmoQRtbCACBAwDsAJA6AB2USy+iQAIhpSLSZxXuG2Bxm24YMNHkVEmACwHCEwr7ATr21TEi2d3A4x-wmo-8EAbHspXP5vI+5JMraqOJzKdAWaJPX2NJI6CdJPAzwzNqBI5x-Sp4881uRYIK5KV7pl3efiWCnJ3BfYtIIsFTxQy6BeSrnDHB4CUmj8b5i82AMvPT5xzLKeMV2YMOAV3y2pZtdaX7PuEdAICFnRrliVXB6VCwxaVBEIi+BEk55B9W+UUNXzgL3ekVNWdAw1lBdYFJClefAudKljS8oVPEujgCBm5xs7waSZOC6g8jgKOoefPqWIk-paFS8gvLJTABnhwhUJf8IBAu5VJDygQQUs1xhT3xbA0AnXEERCzPBsMno-MaItAXiLYAyARZuELzFcyDFYC4xaYroVMKnix4rpF3C2QiICUGi+UVottFagmghCu+sQrEWkLrFfkcIcnNOEWKiFICqxSYqCW2Ls5wAgMPUJoHahMEk4ZcEl2BgX4QqD+bBGRGIDOl4AFQPovcI0AvBKQ7QZiSQ3CTSSqc-CWYC6mF42BzkSQUWEUvFYmFJwy6VDBwm4UnxDKxJRJOSl1B1Z+5TQV+bAg-mX5pJ4+KcvMUfxBBNki2FGBLEfDIKhseJT9PAjPh6VJxxvYzDOCJCgSFl4sWOHdFfDHK-IyC03g8HdCgxe4cY-5D-JjFwwEYuQxZccvRjPQeI3+C5RWLZh4N-YXMCGJ8TD5hxnlV8xyK8uNjqMTaL0CqFtCijfKT51ynuAHGwiKhipjygWIcpjiQqrq3ZBFVcvvjIqAVQccKUPCeURwXlRyyFYlWThVwSa+K35TcpRUQwfAfoMyPzBHgKycuEKkuBPy1pVUaqrESAAyqRX-KiyWgAIMCo5WgrhFJBHlbPBkTfLSeYqKnHqEVr6ZX6WgAMG8FDIkNF89wyGJTVLTeYK0UkiGBSGoH7hekI4syrkNIwLwDV2uEtF5nLR5t82IzaGNHmIqpgfAGBdtDGn1Tdpa5faA1V6TGzaBLAVorMCaxKV10iwSXLfn6rIxLBAMlGA1fiHqITpbA1TUZhDCEwo8wk8oeSYAsGH2qEgUVdNdaIQFyynmPQXClMwbxJIXgC7cEOG1H5lrYsq2YNe1k7TUT+kPA0Krh0JDTjBMHwOlkYC8xyhCMREoLjjhcR4yQZN0tqILIgQ4QpyjSfRKOTpowxZhVkE8mZG6AfNlZUAJXOgH7n5kWC5vB2uv2NwaktAegywiEFzBCLZ1baZfHQv7lrJF6hVToAItCp15nRXrPjNf1AlMz8xLHJQh-HuEwo-Q9gFErOGDmvA68L85IUChIE+AGldqqNNsV2L7FDixxFxMgtvjGECU9NazqGWiTCCeeD8IkMkmJDikEKyAe4V0HuCXYi0oTDUYzllptBMF9gQFIM3LZ4qt53BKCoKT3Dj49Bnsb4h4CnJKogiR1F9e2qfLwVySase4X1BdCjBTqm4VcKBQFIQVNwW-NMIeqw1UVJF8lEdmAGY3IEHg2DP8WYgiJYhVioqUIqPgqF+By25pe4UumlCm8NleDEINEhXBTlDchIDHLarBWY1KR7VTquxBpFcRvNitCrCQLwyVZcKiSQgfqA4K9BQUoIYGjXCY3CbiyEFOlrz3vRMER1iECVeuvdrQEcwgy0zQh3Zog1CtyEgajARtHuYh+CSDoPDRwxcYT4lhVGoptLU251aEClWF5qK2GR0qlhZAnTPS3ep9A+uS1ntTgHlse6zGwtWJoe6EYZwcYpbuI0-ZEhOYy42Vbpx0AIM-It9e+hA38laBxG-Sf1sU29DuZliNKPEO8D0VcyINGjYMZ4X7nm9BS-QKfPhnLCUog2DMoeWgkMT1N-thGorYnXTA5hi+F+BJBZAmovyvhJYHCBuB4JHqvm0bb2Wc37n9YKsitbpKBKEo4MoxrzNcH4MslD0xkUbJZqtJJ2I7aQYfC7NiGX6Vb9kBiGJHlmERHVKOQ3OqZx1Wn9yVwxYCmhl3+SeB9M5jZmLLODRAlYpoXUNSUosjZhjNZ2SZaWE1KXx4Y5PNMedtXGS9kU0GgwTUq+BpUv5WIm8YRGl2Z0Z1bs8ftL1l7y9OIVut0GH0nCzFwUPqVIduAbzljzCmdX6Wbq1lpyJtz0fuUCv6BTA3umLXCjcGComEbskKRVNpDxFH9p+IxaDQgXXUKgsRVOJ7tM34QCD48oTUROrsYEC049RW6ZtoQPnvU7gvQVJbfCmp8NbEWgPbXiIKEWD1N7E6BM1x4VN41+3gtZSNkOT2jggA+iQJ0N2GEj+2hw8BCuq2o6q-e5YFAp1HL3pCRObCYavvC5VcTJegIgqPXOFVFaugsSHpBaz1yVabgrIvEjMSy36FfAp+qySzPG1UiiRFwFWNBoaH8IB5BEQwJXNSU2ATsNWDCD6rA2KygxXjBHW1oE4cFDK4muGCGi-k6FCmk4StHDkj3KSserM-sfcI25SdcO9IRoj31VA5gT5yLFmpALFJ17x+0Eiib2qK1jocMfg6zvoR8BXisGt48sexIfEsGVJPE9g7qnTUvztdfPPg1gsnGlLTq8McWjzDxHxS9hSUzZtIe4M67aNqELBe8Di66FmJ4B5orHPd6ZzY26myUPcGF58xWJK3FQzKEMkIEZghgHGTHwXWE4l1-0DffgMtx4kZJ82KmWv2IFzj7Et-KFA1si3czWZ7OlAyLXYSDZ7uGGBlm11npC8ZgIe3wBuBLXMzx+HsjOYnMl036QdTwug5LUT3FzYeY4ywk4sSHVzu1V+xuc3NbntzfmnciANSyYhiA1AuHbQcNCS60gokIABeErEHzWi1k+kCmqWicCXhW5TEViP0ZBCDGhpW-dhU4E8hQBMAZ6nPuY2mMcwfN4MM8HPCwBYgQQTgTAGAFCi7Gtc5iSnLxgsYzHjj48pYs13WMjHvtOXSxQXnPWL8CJ78+2hMtSHTAWC7mVCIM2DD5H9F4Su+ZbsR1KKqywVNlqwSPnFpT5p2PDJ6h8ULy4FcfKbYkf0oCkqye2zuI7VT0Fl6iNaEnlYxhNhLfFES8Ra+Dxh-ZVmyC2cBVg2LicwKKS4PYSm0rygm0eglJLib8WGLSF1FIfU3pGDjBdSqOETHQY0WxJcjOg9+cXy-0iK4TdC7VFEtqkfqitBmZoFTPfpCNqsxcp6aqfJDqnS0Yppk6Qprn+LfsJi6-UScjxi0dwtKe2oGgtOTktkP6uZcwfTFEAa2T4IYESc5E8xbOW-HmJK2D00hr0BmcFF5VhQRAgAA // ... existing code ... */
20
22
  id: 'authMachine',
21
23
  predictableActionArguments: true,
22
24
  tsTypes: {},
@@ -129,7 +131,10 @@ export const authMachine = createMachine({
129
131
  error: (_, event) => event.payload.error,
130
132
  }),
131
133
  },
132
- BACK: '#authMachine.active.login.idle.error',
134
+ BACK: {
135
+ target: '#authMachine.active.login.idle.error',
136
+ actions: 'clearContext',
137
+ },
133
138
  },
134
139
  },
135
140
  authScreen: {
@@ -165,7 +170,10 @@ export const authMachine = createMachine({
165
170
  error: (_, event) => event.payload.error,
166
171
  }),
167
172
  },
168
- BACK: '#authMachine.active.login.idle.error',
173
+ BACK: {
174
+ target: '#authMachine.active.login.idle.error',
175
+ actions: 'clearContext',
176
+ },
169
177
  FINISH_PASSKEY_LOGIN: '#authMachine.active.login.verifyingRegisterPublicKeyCredential',
170
178
  },
171
179
  },
@@ -227,9 +235,19 @@ export const authMachine = createMachine({
227
235
  },
228
236
  onError: {
229
237
  target: '#authMachine.active.login',
230
- actions: assign({
231
- error: (_context, event) => event.data?.error,
232
- }),
238
+ actions: assign((ctx, event) => ({
239
+ error: event.data?.type === 'EMAIL_DOMAIN_NOT_ALLOWED'
240
+ ? { code: event.data?.type, message: 'EMAIL_DOMAIN_NOT_ALLOWED' }
241
+ : {
242
+ code: event.data?.type,
243
+ message: event.data?.message || event.data?.error,
244
+ email: ctx.credentialEmail ||
245
+ ctx.registerUser?.email ||
246
+ ctx.googleUser?.email ||
247
+ ctx.socialProviderRegisterUser?.email,
248
+ data: event.data,
249
+ },
250
+ })),
233
251
  },
234
252
  },
235
253
  entry: assign({
@@ -284,9 +302,19 @@ export const authMachine = createMachine({
284
302
  ],
285
303
  onError: {
286
304
  target: '#authMachine.active.login.inputPassword',
287
- actions: assign({
288
- error: (_context, event) => event.data?.error || event.data?.message,
289
- }),
305
+ actions: assign((ctx, event) => ({
306
+ error: event.data?.type === 'EMAIL_DOMAIN_NOT_ALLOWED'
307
+ ? { code: event.data?.type, message: 'EMAIL_DOMAIN_NOT_ALLOWED' }
308
+ : {
309
+ code: event.data?.type,
310
+ message: event.data?.error || event.data?.message,
311
+ email: ctx.credentialEmail ||
312
+ ctx.registerUser?.email ||
313
+ ctx.googleUser?.email ||
314
+ ctx.socialProviderRegisterUser?.email,
315
+ data: event.data,
316
+ },
317
+ })),
290
318
  },
291
319
  },
292
320
  entry: assign({
@@ -404,9 +432,19 @@ export const authMachine = createMachine({
404
432
  src: 'verifyEmail2fa',
405
433
  onError: {
406
434
  target: 'email2fa',
407
- actions: assign({
408
- error: (_context, event) => event.data?.error || event.data?.message,
409
- }),
435
+ actions: assign((ctx, event) => ({
436
+ error: event.data?.type === 'EMAIL_DOMAIN_NOT_ALLOWED'
437
+ ? { code: event.data?.type, message: 'EMAIL_DOMAIN_NOT_ALLOWED' }
438
+ : {
439
+ code: event.data?.type,
440
+ message: event.data?.error || event.data?.message,
441
+ email: ctx.credentialEmail ||
442
+ ctx.registerUser?.email ||
443
+ ctx.googleUser?.email ||
444
+ ctx.socialProviderRegisterUser?.email,
445
+ data: event.data,
446
+ },
447
+ })),
410
448
  },
411
449
  onDone: {
412
450
  target: 'successfulLogin',
@@ -502,9 +540,19 @@ export const authMachine = createMachine({
502
540
  ],
503
541
  onError: {
504
542
  target: 'idle',
505
- actions: assign({
506
- error: (_context, event) => event.data?.error || event.data?.message || event.data,
507
- }),
543
+ actions: assign((ctx, event) => ({
544
+ error: {
545
+ code: event.data?.type,
546
+ message: event.data?.type === 'EMAIL_DOMAIN_NOT_ALLOWED'
547
+ ? 'EMAIL_DOMAIN_NOT_ALLOWED'
548
+ : event.data?.message || event.data?.error || event.data,
549
+ email: ctx.credentialEmail ||
550
+ ctx.registerUser?.email ||
551
+ ctx.googleUser?.email ||
552
+ ctx.socialProviderRegisterUser?.email,
553
+ data: event.data,
554
+ },
555
+ })),
508
556
  },
509
557
  },
510
558
  entry: assign({
@@ -528,9 +576,17 @@ export const authMachine = createMachine({
528
576
  },
529
577
  onError: {
530
578
  target: 'idle',
531
- actions: assign({
532
- error: (_context, event) => event.data?.error || event.data?.message || event.data,
533
- }),
579
+ actions: assign((ctx, event) => ({
580
+ error: {
581
+ code: event.data?.type,
582
+ message: event.data?.message || event.data?.error || event.data,
583
+ email: ctx.registerUser?.email ||
584
+ ctx.credentialEmail ||
585
+ ctx.googleUser?.email ||
586
+ ctx.socialProviderRegisterUser?.email,
587
+ data: event.data,
588
+ },
589
+ })),
534
590
  },
535
591
  },
536
592
  },
@@ -541,8 +597,12 @@ export const authMachine = createMachine({
541
597
  {
542
598
  target: '#authMachine.active.login.loginMethodSelection',
543
599
  cond: 'isPasswordAndPasskeyEnabled',
600
+ actions: 'clearContext',
601
+ },
602
+ {
603
+ target: 'idle.authScreen',
604
+ actions: 'clearContext',
544
605
  },
545
- 'idle.authScreen',
546
606
  ],
547
607
  PASSKEY_NOT_SUPPORTED: [
548
608
  {
@@ -604,9 +664,7 @@ export const authMachine = createMachine({
604
664
  },
605
665
  START_PASSKEY_LOGIN: '.retrievingCredentialRCR',
606
666
  },
607
- entry: assign({
608
- error: () => undefined,
609
- }),
667
+ // Do not clear error on login state entry; preserve errors assigned by failing actions
610
668
  exit: assign({
611
669
  RCRPublicKey: () => undefined,
612
670
  CCRPublicKey: () => undefined,
@@ -660,9 +718,17 @@ export const authMachine = createMachine({
660
718
  },
661
719
  onError: {
662
720
  target: 'idle',
663
- actions: assign({
664
- error: (_context, event) => event.data?.error || event.data?.message || event.data,
665
- }),
721
+ actions: assign((ctx, event) => ({
722
+ error: {
723
+ code: event.data?.type,
724
+ message: event.data?.message || event.data?.error || event.data,
725
+ email: ctx.registerUser?.email ||
726
+ ctx.credentialEmail ||
727
+ ctx.googleUser?.email ||
728
+ ctx.socialProviderRegisterUser?.email,
729
+ data: event.data,
730
+ },
731
+ })),
666
732
  },
667
733
  },
668
734
  entry: assign({
@@ -702,9 +768,19 @@ export const authMachine = createMachine({
702
768
  ],
703
769
  onError: {
704
770
  target: 'emailValidation',
705
- actions: assign({
706
- error: (_context, event) => event.data?.error || event.data?.message,
707
- }),
771
+ actions: assign((ctx, event) => ({
772
+ error: event.data?.type === 'EMAIL_DOMAIN_NOT_ALLOWED'
773
+ ? { code: event.data?.type, message: 'EMAIL_DOMAIN_NOT_ALLOWED' }
774
+ : {
775
+ code: event.data?.type,
776
+ message: event.data?.error || event.data?.message,
777
+ email: ctx.registerUser?.email ||
778
+ ctx.credentialEmail ||
779
+ ctx.googleUser?.email ||
780
+ ctx.socialProviderRegisterUser?.email,
781
+ data: event.data,
782
+ },
783
+ })),
708
784
  },
709
785
  },
710
786
  entry: assign({
@@ -822,9 +898,19 @@ export const authMachine = createMachine({
822
898
  },
823
899
  onError: {
824
900
  target: 'registerMethodSelection',
825
- actions: assign({
826
- error: (_context, event) => event.data?.error || event.data?.message || event.data,
827
- }),
901
+ actions: assign((ctx, event) => ({
902
+ error: event.data?.type === 'EMAIL_DOMAIN_NOT_ALLOWED'
903
+ ? { code: event.data?.type, message: 'EMAIL_DOMAIN_NOT_ALLOWED' }
904
+ : {
905
+ code: event.data?.type,
906
+ message: event.data?.error || event.data?.message || event.data,
907
+ email: ctx.registerUser?.email ||
908
+ ctx.credentialEmail ||
909
+ ctx.googleUser?.email ||
910
+ ctx.socialProviderRegisterUser?.email,
911
+ data: event.data,
912
+ },
913
+ })),
828
914
  },
829
915
  },
830
916
  },
@@ -843,6 +929,7 @@ export const authMachine = createMachine({
843
929
  ],
844
930
  BACK: {
845
931
  target: '#authMachine.active.register.registerMethodSelection',
932
+ actions: 'clearContext',
846
933
  },
847
934
  },
848
935
  },
@@ -903,9 +990,17 @@ export const authMachine = createMachine({
903
990
  },
904
991
  onError: {
905
992
  target: 'registerMethodSelection',
906
- actions: assign({
907
- error: (_context, event) => event.data?.error || event.data?.message || event.data,
908
- }),
993
+ actions: assign((ctx, event) => ({
994
+ error: {
995
+ code: event.data?.type,
996
+ message: event.data?.error || event.data?.message || event.data,
997
+ email: ctx.registerUser?.email ||
998
+ ctx.credentialEmail ||
999
+ ctx.googleUser?.email ||
1000
+ ctx.socialProviderRegisterUser?.email,
1001
+ data: event.data,
1002
+ },
1003
+ })),
909
1004
  },
910
1005
  },
911
1006
  },
@@ -918,9 +1013,17 @@ export const authMachine = createMachine({
918
1013
  },
919
1014
  onError: {
920
1015
  target: '#authMachine.active.register.registerMethodSelection',
921
- actions: (_context, event) => assign({
922
- error: event.data?.error || event.data?.message || event.data,
923
- }),
1016
+ actions: assign((ctx, event) => ({
1017
+ error: {
1018
+ code: event.data?.type,
1019
+ message: event.data?.error || event.data?.message || event.data,
1020
+ email: ctx.registerUser?.email ||
1021
+ ctx.credentialEmail ||
1022
+ ctx.googleUser?.email ||
1023
+ ctx.socialProviderRegisterUser?.email,
1024
+ data: event.data,
1025
+ },
1026
+ })),
924
1027
  },
925
1028
  },
926
1029
  },
@@ -1013,6 +1116,16 @@ export const authMachine = createMachine({
1013
1116
  target: '.history',
1014
1117
  actions: 'clearContext',
1015
1118
  },
1119
+ SET_ERROR: {
1120
+ actions: assign({
1121
+ error: (_ctx, event) => event.info || (event.error ? { code: event.error, message: event.error } : undefined),
1122
+ }),
1123
+ },
1124
+ CLEAR_ERROR: {
1125
+ actions: assign({
1126
+ error: () => undefined,
1127
+ }),
1128
+ },
1016
1129
  },
1017
1130
  }, {
1018
1131
  services: {
@@ -1118,19 +1231,10 @@ export const authMachine = createMachine({
1118
1231
  setupRegisterUser: assign({
1119
1232
  registerUser: (_, event) => event?.registerUser || undefined,
1120
1233
  }),
1121
- clearContext: assign({
1122
- salt: () => undefined,
1123
- error: () => undefined,
1124
- active2fa: () => undefined,
1125
- registerUser: () => undefined,
1126
- googleOtpCode: () => undefined,
1127
- googleUser: () => undefined,
1128
- sessionUser: () => undefined,
1129
- forgeData: () => undefined,
1130
- CCRPublicKey: () => undefined,
1131
- RCRPublicKey: () => undefined,
1132
- authProviderConfigs: () => undefined,
1133
- }),
1234
+ // clearError action removed; we now clear errors inline in each BACK transition
1235
+ clearContext: assign(() => ({
1236
+ ...initialContext,
1237
+ })),
1134
1238
  },
1135
1239
  });
1136
1240
  let stateDefinition;
@@ -1138,7 +1242,12 @@ let stateDefinition;
1138
1242
  if (typeof window !== 'undefined') {
1139
1243
  const authState = localStorage.getItem('authState');
1140
1244
  if (authState) {
1141
- stateDefinition = JSON.parse(authState);
1245
+ const parsed = JSON.parse(authState);
1246
+ // Drop persisted error on hydration
1247
+ if (parsed?.context) {
1248
+ parsed.context.error = undefined;
1249
+ }
1250
+ stateDefinition = parsed;
1142
1251
  }
1143
1252
  }
1144
1253
  let resolvedState;
@@ -1214,20 +1323,10 @@ export const authService = (services, context) => {
1214
1323
  setupRegisterUser: assign({
1215
1324
  registerUser: (_, event) => event?.registerUser || undefined,
1216
1325
  }),
1217
- clearContext: assign({
1218
- salt: () => undefined,
1219
- error: () => undefined,
1220
- active2fa: () => undefined,
1221
- registerUser: () => undefined,
1222
- socialProviderRegisterUser: () => undefined,
1223
- googleOtpCode: () => undefined,
1224
- googleUser: () => undefined,
1225
- sessionUser: () => undefined,
1226
- forgeData: () => undefined,
1227
- sessionId: () => undefined,
1228
- CCRPublicKey: () => undefined,
1229
- RCRPublicKey: () => undefined,
1230
- }),
1326
+ // clearError action removed; errors are cleared inline on BACK transitions
1327
+ clearContext: assign(() => ({
1328
+ ...initialContext,
1329
+ })),
1231
1330
  },
1232
1331
  }, mergedContext))
1233
1332
  .onTransition((state) => {