@alore/auth-react-ui 1.1.1-alpha.1 → 1.2.0-alpha.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/auth/Login.js +66 -43
- package/dist/cjs/auth/Login.js.map +1 -1
- package/dist/cjs/auth/Register.js +86 -68
- package/dist/cjs/auth/Register.js.map +1 -1
- package/dist/cjs/components/Auth.d.ts +7 -1
- package/dist/cjs/components/Auth.js +57 -8
- package/dist/cjs/components/Auth.js.map +1 -1
- package/dist/cjs/components/AuthProvider.d.ts +23 -1
- package/dist/cjs/components/AuthProvider.js.map +1 -1
- package/dist/cjs/dictionaries/en.json +1 -0
- package/dist/cjs/dictionaries/pt.json +1 -0
- package/dist/cjs/get-dictionary.d.ts +3 -0
- package/dist/cjs/hooks/useAuthService.d.ts +66 -0
- package/dist/cjs/hooks/useAuthServiceInstance.d.ts +22 -0
- package/dist/cjs/hooks/useDictionary.d.ts +1 -0
- package/dist/cjs/index.d.ts +3 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/machine/index.d.ts +44 -0
- package/dist/cjs/machine/index.js +331 -73
- package/dist/cjs/machine/index.js.map +1 -1
- package/dist/cjs/machine/types.d.ts +18 -2
- package/dist/mjs/auth/Login.js +64 -43
- package/dist/mjs/auth/Login.js.map +1 -1
- package/dist/mjs/auth/Register.js +22 -11
- package/dist/mjs/auth/Register.js.map +1 -1
- package/dist/mjs/components/Auth.d.ts +7 -1
- package/dist/mjs/components/Auth.js +57 -8
- package/dist/mjs/components/Auth.js.map +1 -1
- package/dist/mjs/components/AuthProvider.d.ts +23 -1
- package/dist/mjs/components/AuthProvider.js.map +1 -1
- package/dist/mjs/dictionaries/en.json +1 -0
- package/dist/mjs/dictionaries/pt.json +1 -0
- package/dist/mjs/get-dictionary.d.ts +3 -0
- package/dist/mjs/hooks/useAuthService.d.ts +66 -0
- package/dist/mjs/hooks/useAuthServiceInstance.d.ts +22 -0
- package/dist/mjs/hooks/useDictionary.d.ts +1 -0
- package/dist/mjs/index.d.ts +3 -3
- package/dist/mjs/index.js.map +1 -1
- package/dist/mjs/machine/index.d.ts +44 -0
- package/dist/mjs/machine/index.js +314 -80
- package/dist/mjs/machine/index.js.map +1 -1
- package/dist/mjs/machine/types.d.ts +18 -2
- package/package.json +5 -4
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
2
|
/* eslint-disable no-unused-vars */
|
|
3
|
-
import { assign, createMachine, interpret, State } from 'xstate';
|
|
3
|
+
import { assign, createMachine, interpret, send, State } from 'xstate';
|
|
4
4
|
const initialContext = {
|
|
5
5
|
salt: undefined,
|
|
6
6
|
error: undefined,
|
|
@@ -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:
|
|
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:
|
|
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
|
},
|
|
@@ -178,7 +186,7 @@ export const authMachine = createMachine({
|
|
|
178
186
|
SIGN_IN_WITH_PASSKEY: '#authMachine.active.login.idle.signWithPasskey',
|
|
179
187
|
SELECT_PASSWORD_METHOD: [
|
|
180
188
|
{
|
|
181
|
-
target: '
|
|
189
|
+
target: 'retrievingSalt',
|
|
182
190
|
actions: assign({
|
|
183
191
|
credentialEmail: (_, event) => event.payload?.email,
|
|
184
192
|
googleOtpCode: () => undefined,
|
|
@@ -195,7 +203,19 @@ export const authMachine = createMachine({
|
|
|
195
203
|
target: 'retrievingCredentialRCR',
|
|
196
204
|
cond: 'isPasskeyEnabled',
|
|
197
205
|
},
|
|
198
|
-
|
|
206
|
+
{
|
|
207
|
+
target: 'retrievingSalt',
|
|
208
|
+
actions: assign({
|
|
209
|
+
credentialEmail: (_, event) => event.payload?.email,
|
|
210
|
+
googleOtpCode: () => undefined,
|
|
211
|
+
googleUser: () => undefined,
|
|
212
|
+
registerUser: () => undefined,
|
|
213
|
+
socialProviderRegisterUser: () => undefined,
|
|
214
|
+
sessionId: () => undefined,
|
|
215
|
+
CCRPublicKey: () => undefined,
|
|
216
|
+
RCRPublicKey: () => undefined,
|
|
217
|
+
}),
|
|
218
|
+
},
|
|
199
219
|
],
|
|
200
220
|
},
|
|
201
221
|
exit: assign({
|
|
@@ -204,7 +224,15 @@ export const authMachine = createMachine({
|
|
|
204
224
|
},
|
|
205
225
|
loginMethodSelection: {
|
|
206
226
|
on: {
|
|
207
|
-
SELECT_PASSWORD:
|
|
227
|
+
SELECT_PASSWORD: [
|
|
228
|
+
{
|
|
229
|
+
target: 'inputPassword',
|
|
230
|
+
cond: 'hasSalt',
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
target: 'retrievingSalt',
|
|
234
|
+
},
|
|
235
|
+
],
|
|
208
236
|
BACK: {
|
|
209
237
|
target: '#authMachine.active.login',
|
|
210
238
|
actions: assign({
|
|
@@ -219,18 +247,125 @@ export const authMachine = createMachine({
|
|
|
219
247
|
retrievingSalt: {
|
|
220
248
|
invoke: {
|
|
221
249
|
src: 'retrieveSalt',
|
|
222
|
-
onDone:
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
250
|
+
onDone: [
|
|
251
|
+
{
|
|
252
|
+
target: '#authMachine.active.login.inputPassword',
|
|
253
|
+
actions: [
|
|
254
|
+
assign({
|
|
255
|
+
salt: (_context, event) => event.data?.salt,
|
|
256
|
+
}),
|
|
257
|
+
send((context) => ({
|
|
258
|
+
type: 'VERIFY_LOGIN',
|
|
259
|
+
payload: context.pendingVerifyLogin,
|
|
260
|
+
})),
|
|
261
|
+
assign({
|
|
262
|
+
pendingVerifyLogin: () => undefined,
|
|
263
|
+
}),
|
|
264
|
+
],
|
|
265
|
+
cond: (context) => !!context.pendingVerifyLogin,
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
target: '#authMachine.active.login.loginMethodSelection',
|
|
269
|
+
actions: assign({
|
|
270
|
+
salt: (_context, event) => event.data?.salt,
|
|
271
|
+
}),
|
|
272
|
+
cond: 'isPasswordAndPasskeyEnabled',
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
target: '#authMachine.active.login.inputPassword',
|
|
276
|
+
actions: assign({
|
|
277
|
+
salt: (_context, event) => event.data?.salt,
|
|
278
|
+
}),
|
|
279
|
+
},
|
|
280
|
+
],
|
|
281
|
+
onError: [
|
|
282
|
+
{
|
|
283
|
+
target: '#authMachine.active.login.inputPassword',
|
|
284
|
+
cond: (context) => !!context.pendingVerifyLogin,
|
|
285
|
+
actions: assign((ctx, event) => {
|
|
286
|
+
const message = event.data?.message || event.data?.error || event.data;
|
|
287
|
+
if (message === 'EMAIL_NOT_ALLOWED') {
|
|
288
|
+
return {
|
|
289
|
+
error: { code: 'EMAIL_NOT_ALLOWED', message: 'EMAIL_NOT_ALLOWED' },
|
|
290
|
+
};
|
|
291
|
+
}
|
|
292
|
+
if (event.data?.type === 'EMAIL_DOMAIN_NOT_ALLOWED') {
|
|
293
|
+
return {
|
|
294
|
+
error: { code: event.data?.type, message: 'EMAIL_DOMAIN_NOT_ALLOWED' },
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
return {
|
|
298
|
+
error: {
|
|
299
|
+
code: event.data?.type,
|
|
300
|
+
message,
|
|
301
|
+
email: ctx.credentialEmail ||
|
|
302
|
+
ctx.registerUser?.email ||
|
|
303
|
+
ctx.googleUser?.email ||
|
|
304
|
+
ctx.socialProviderRegisterUser?.email,
|
|
305
|
+
data: event.data,
|
|
306
|
+
},
|
|
307
|
+
};
|
|
308
|
+
}),
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
target: '#authMachine.active.login.idle',
|
|
312
|
+
cond: 'isPasswordAndPasskeyEnabled',
|
|
313
|
+
actions: assign((ctx, event) => {
|
|
314
|
+
const message = event.data?.message || event.data?.error || event.data;
|
|
315
|
+
if (message === 'EMAIL_NOT_ALLOWED') {
|
|
316
|
+
return {
|
|
317
|
+
error: { code: 'EMAIL_NOT_ALLOWED', message: 'EMAIL_NOT_ALLOWED' },
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
if (event.data?.type === 'EMAIL_DOMAIN_NOT_ALLOWED') {
|
|
321
|
+
return {
|
|
322
|
+
error: {
|
|
323
|
+
code: event.data?.type,
|
|
324
|
+
message: 'EMAIL_DOMAIN_NOT_ALLOWED',
|
|
325
|
+
},
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
return {
|
|
329
|
+
error: {
|
|
330
|
+
code: event.data?.type,
|
|
331
|
+
message,
|
|
332
|
+
email: ctx.credentialEmail ||
|
|
333
|
+
ctx.registerUser?.email ||
|
|
334
|
+
ctx.googleUser?.email ||
|
|
335
|
+
ctx.socialProviderRegisterUser?.email,
|
|
336
|
+
data: event.data,
|
|
337
|
+
},
|
|
338
|
+
};
|
|
339
|
+
}),
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
target: '#authMachine.active.login.idle',
|
|
343
|
+
actions: assign((ctx, event) => {
|
|
344
|
+
const message = event.data?.message || event.data?.error || event.data;
|
|
345
|
+
if (message === 'EMAIL_NOT_ALLOWED') {
|
|
346
|
+
return {
|
|
347
|
+
error: { code: 'EMAIL_NOT_ALLOWED', message: 'EMAIL_NOT_ALLOWED' },
|
|
348
|
+
};
|
|
349
|
+
}
|
|
350
|
+
if (event.data?.type === 'EMAIL_DOMAIN_NOT_ALLOWED') {
|
|
351
|
+
return {
|
|
352
|
+
error: { code: event.data?.type, message: 'EMAIL_DOMAIN_NOT_ALLOWED' },
|
|
353
|
+
};
|
|
354
|
+
}
|
|
355
|
+
return {
|
|
356
|
+
error: {
|
|
357
|
+
code: event.data?.type,
|
|
358
|
+
message,
|
|
359
|
+
email: ctx.credentialEmail ||
|
|
360
|
+
ctx.registerUser?.email ||
|
|
361
|
+
ctx.googleUser?.email ||
|
|
362
|
+
ctx.socialProviderRegisterUser?.email,
|
|
363
|
+
data: event.data,
|
|
364
|
+
},
|
|
365
|
+
};
|
|
366
|
+
}),
|
|
367
|
+
},
|
|
368
|
+
],
|
|
234
369
|
},
|
|
235
370
|
entry: assign({
|
|
236
371
|
error: () => undefined,
|
|
@@ -238,6 +373,18 @@ export const authMachine = createMachine({
|
|
|
238
373
|
},
|
|
239
374
|
inputPassword: {
|
|
240
375
|
on: {
|
|
376
|
+
VERIFY_LOGIN: [
|
|
377
|
+
{
|
|
378
|
+
target: 'verifyingLogin',
|
|
379
|
+
cond: 'hasSalt',
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
target: 'retrievingSalt',
|
|
383
|
+
actions: assign({
|
|
384
|
+
pendingVerifyLogin: (_, event) => event.payload,
|
|
385
|
+
}),
|
|
386
|
+
},
|
|
387
|
+
],
|
|
241
388
|
BACK: [
|
|
242
389
|
{
|
|
243
390
|
target: '#authMachine.active.login.loginMethodSelection',
|
|
@@ -252,7 +399,6 @@ export const authMachine = createMachine({
|
|
|
252
399
|
'idle',
|
|
253
400
|
],
|
|
254
401
|
COMPLETE_GOOGLE_SIGN_IN: 'verifyingGoogleLogin',
|
|
255
|
-
VERIFY_LOGIN: 'verifyingLogin',
|
|
256
402
|
},
|
|
257
403
|
},
|
|
258
404
|
verifyingLogin: {
|
|
@@ -284,9 +430,19 @@ export const authMachine = createMachine({
|
|
|
284
430
|
],
|
|
285
431
|
onError: {
|
|
286
432
|
target: '#authMachine.active.login.inputPassword',
|
|
287
|
-
actions: assign({
|
|
288
|
-
error:
|
|
289
|
-
|
|
433
|
+
actions: assign((ctx, event) => ({
|
|
434
|
+
error: event.data?.type === 'EMAIL_DOMAIN_NOT_ALLOWED'
|
|
435
|
+
? { code: event.data?.type, message: 'EMAIL_DOMAIN_NOT_ALLOWED' }
|
|
436
|
+
: {
|
|
437
|
+
code: event.data?.type,
|
|
438
|
+
message: event.data?.error || event.data?.message,
|
|
439
|
+
email: ctx.credentialEmail ||
|
|
440
|
+
ctx.registerUser?.email ||
|
|
441
|
+
ctx.googleUser?.email ||
|
|
442
|
+
ctx.socialProviderRegisterUser?.email,
|
|
443
|
+
data: event.data,
|
|
444
|
+
},
|
|
445
|
+
})),
|
|
290
446
|
},
|
|
291
447
|
},
|
|
292
448
|
entry: assign({
|
|
@@ -404,9 +560,19 @@ export const authMachine = createMachine({
|
|
|
404
560
|
src: 'verifyEmail2fa',
|
|
405
561
|
onError: {
|
|
406
562
|
target: 'email2fa',
|
|
407
|
-
actions: assign({
|
|
408
|
-
error:
|
|
409
|
-
|
|
563
|
+
actions: assign((ctx, event) => ({
|
|
564
|
+
error: event.data?.type === 'EMAIL_DOMAIN_NOT_ALLOWED'
|
|
565
|
+
? { code: event.data?.type, message: 'EMAIL_DOMAIN_NOT_ALLOWED' }
|
|
566
|
+
: {
|
|
567
|
+
code: event.data?.type,
|
|
568
|
+
message: event.data?.error || event.data?.message,
|
|
569
|
+
email: ctx.credentialEmail ||
|
|
570
|
+
ctx.registerUser?.email ||
|
|
571
|
+
ctx.googleUser?.email ||
|
|
572
|
+
ctx.socialProviderRegisterUser?.email,
|
|
573
|
+
data: event.data,
|
|
574
|
+
},
|
|
575
|
+
})),
|
|
410
576
|
},
|
|
411
577
|
onDone: {
|
|
412
578
|
target: 'successfulLogin',
|
|
@@ -502,9 +668,19 @@ export const authMachine = createMachine({
|
|
|
502
668
|
],
|
|
503
669
|
onError: {
|
|
504
670
|
target: 'idle',
|
|
505
|
-
actions: assign({
|
|
506
|
-
error:
|
|
507
|
-
|
|
671
|
+
actions: assign((ctx, event) => ({
|
|
672
|
+
error: {
|
|
673
|
+
code: event.data?.type,
|
|
674
|
+
message: event.data?.type === 'EMAIL_DOMAIN_NOT_ALLOWED'
|
|
675
|
+
? 'EMAIL_DOMAIN_NOT_ALLOWED'
|
|
676
|
+
: event.data?.message || event.data?.error || event.data,
|
|
677
|
+
email: ctx.credentialEmail ||
|
|
678
|
+
ctx.registerUser?.email ||
|
|
679
|
+
ctx.googleUser?.email ||
|
|
680
|
+
ctx.socialProviderRegisterUser?.email,
|
|
681
|
+
data: event.data,
|
|
682
|
+
},
|
|
683
|
+
})),
|
|
508
684
|
},
|
|
509
685
|
},
|
|
510
686
|
entry: assign({
|
|
@@ -528,9 +704,17 @@ export const authMachine = createMachine({
|
|
|
528
704
|
},
|
|
529
705
|
onError: {
|
|
530
706
|
target: 'idle',
|
|
531
|
-
actions: assign({
|
|
532
|
-
error:
|
|
533
|
-
|
|
707
|
+
actions: assign((ctx, event) => ({
|
|
708
|
+
error: {
|
|
709
|
+
code: event.data?.type,
|
|
710
|
+
message: event.data?.message || event.data?.error || event.data,
|
|
711
|
+
email: ctx.registerUser?.email ||
|
|
712
|
+
ctx.credentialEmail ||
|
|
713
|
+
ctx.googleUser?.email ||
|
|
714
|
+
ctx.socialProviderRegisterUser?.email,
|
|
715
|
+
data: event.data,
|
|
716
|
+
},
|
|
717
|
+
})),
|
|
534
718
|
},
|
|
535
719
|
},
|
|
536
720
|
},
|
|
@@ -541,8 +725,12 @@ export const authMachine = createMachine({
|
|
|
541
725
|
{
|
|
542
726
|
target: '#authMachine.active.login.loginMethodSelection',
|
|
543
727
|
cond: 'isPasswordAndPasskeyEnabled',
|
|
728
|
+
actions: 'clearContext',
|
|
729
|
+
},
|
|
730
|
+
{
|
|
731
|
+
target: 'idle.authScreen',
|
|
732
|
+
actions: 'clearContext',
|
|
544
733
|
},
|
|
545
|
-
'idle.authScreen',
|
|
546
734
|
],
|
|
547
735
|
PASSKEY_NOT_SUPPORTED: [
|
|
548
736
|
{
|
|
@@ -604,9 +792,7 @@ export const authMachine = createMachine({
|
|
|
604
792
|
},
|
|
605
793
|
START_PASSKEY_LOGIN: '.retrievingCredentialRCR',
|
|
606
794
|
},
|
|
607
|
-
entry
|
|
608
|
-
error: () => undefined,
|
|
609
|
-
}),
|
|
795
|
+
// Do not clear error on login state entry; preserve errors assigned by failing actions
|
|
610
796
|
exit: assign({
|
|
611
797
|
RCRPublicKey: () => undefined,
|
|
612
798
|
CCRPublicKey: () => undefined,
|
|
@@ -660,9 +846,17 @@ export const authMachine = createMachine({
|
|
|
660
846
|
},
|
|
661
847
|
onError: {
|
|
662
848
|
target: 'idle',
|
|
663
|
-
actions: assign({
|
|
664
|
-
error:
|
|
665
|
-
|
|
849
|
+
actions: assign((ctx, event) => ({
|
|
850
|
+
error: {
|
|
851
|
+
code: event.data?.type,
|
|
852
|
+
message: event.data?.message || event.data?.error || event.data,
|
|
853
|
+
email: ctx.registerUser?.email ||
|
|
854
|
+
ctx.credentialEmail ||
|
|
855
|
+
ctx.googleUser?.email ||
|
|
856
|
+
ctx.socialProviderRegisterUser?.email,
|
|
857
|
+
data: event.data,
|
|
858
|
+
},
|
|
859
|
+
})),
|
|
666
860
|
},
|
|
667
861
|
},
|
|
668
862
|
entry: assign({
|
|
@@ -702,9 +896,19 @@ export const authMachine = createMachine({
|
|
|
702
896
|
],
|
|
703
897
|
onError: {
|
|
704
898
|
target: 'emailValidation',
|
|
705
|
-
actions: assign({
|
|
706
|
-
error:
|
|
707
|
-
|
|
899
|
+
actions: assign((ctx, event) => ({
|
|
900
|
+
error: event.data?.type === 'EMAIL_DOMAIN_NOT_ALLOWED'
|
|
901
|
+
? { code: event.data?.type, message: 'EMAIL_DOMAIN_NOT_ALLOWED' }
|
|
902
|
+
: {
|
|
903
|
+
code: event.data?.type,
|
|
904
|
+
message: event.data?.error || event.data?.message,
|
|
905
|
+
email: ctx.registerUser?.email ||
|
|
906
|
+
ctx.credentialEmail ||
|
|
907
|
+
ctx.googleUser?.email ||
|
|
908
|
+
ctx.socialProviderRegisterUser?.email,
|
|
909
|
+
data: event.data,
|
|
910
|
+
},
|
|
911
|
+
})),
|
|
708
912
|
},
|
|
709
913
|
},
|
|
710
914
|
entry: assign({
|
|
@@ -822,9 +1026,19 @@ export const authMachine = createMachine({
|
|
|
822
1026
|
},
|
|
823
1027
|
onError: {
|
|
824
1028
|
target: 'registerMethodSelection',
|
|
825
|
-
actions: assign({
|
|
826
|
-
error:
|
|
827
|
-
|
|
1029
|
+
actions: assign((ctx, event) => ({
|
|
1030
|
+
error: event.data?.type === 'EMAIL_DOMAIN_NOT_ALLOWED'
|
|
1031
|
+
? { code: event.data?.type, message: 'EMAIL_DOMAIN_NOT_ALLOWED' }
|
|
1032
|
+
: {
|
|
1033
|
+
code: event.data?.type,
|
|
1034
|
+
message: event.data?.error || event.data?.message || event.data,
|
|
1035
|
+
email: ctx.registerUser?.email ||
|
|
1036
|
+
ctx.credentialEmail ||
|
|
1037
|
+
ctx.googleUser?.email ||
|
|
1038
|
+
ctx.socialProviderRegisterUser?.email,
|
|
1039
|
+
data: event.data,
|
|
1040
|
+
},
|
|
1041
|
+
})),
|
|
828
1042
|
},
|
|
829
1043
|
},
|
|
830
1044
|
},
|
|
@@ -843,6 +1057,7 @@ export const authMachine = createMachine({
|
|
|
843
1057
|
],
|
|
844
1058
|
BACK: {
|
|
845
1059
|
target: '#authMachine.active.register.registerMethodSelection',
|
|
1060
|
+
actions: 'clearContext',
|
|
846
1061
|
},
|
|
847
1062
|
},
|
|
848
1063
|
},
|
|
@@ -903,9 +1118,17 @@ export const authMachine = createMachine({
|
|
|
903
1118
|
},
|
|
904
1119
|
onError: {
|
|
905
1120
|
target: 'registerMethodSelection',
|
|
906
|
-
actions: assign({
|
|
907
|
-
error:
|
|
908
|
-
|
|
1121
|
+
actions: assign((ctx, event) => ({
|
|
1122
|
+
error: {
|
|
1123
|
+
code: event.data?.type,
|
|
1124
|
+
message: event.data?.error || event.data?.message || event.data,
|
|
1125
|
+
email: ctx.registerUser?.email ||
|
|
1126
|
+
ctx.credentialEmail ||
|
|
1127
|
+
ctx.googleUser?.email ||
|
|
1128
|
+
ctx.socialProviderRegisterUser?.email,
|
|
1129
|
+
data: event.data,
|
|
1130
|
+
},
|
|
1131
|
+
})),
|
|
909
1132
|
},
|
|
910
1133
|
},
|
|
911
1134
|
},
|
|
@@ -918,9 +1141,17 @@ export const authMachine = createMachine({
|
|
|
918
1141
|
},
|
|
919
1142
|
onError: {
|
|
920
1143
|
target: '#authMachine.active.register.registerMethodSelection',
|
|
921
|
-
actions: (
|
|
922
|
-
error:
|
|
923
|
-
|
|
1144
|
+
actions: assign((ctx, event) => ({
|
|
1145
|
+
error: {
|
|
1146
|
+
code: event.data?.type,
|
|
1147
|
+
message: event.data?.error || event.data?.message || event.data,
|
|
1148
|
+
email: ctx.registerUser?.email ||
|
|
1149
|
+
ctx.credentialEmail ||
|
|
1150
|
+
ctx.googleUser?.email ||
|
|
1151
|
+
ctx.socialProviderRegisterUser?.email,
|
|
1152
|
+
data: event.data,
|
|
1153
|
+
},
|
|
1154
|
+
})),
|
|
924
1155
|
},
|
|
925
1156
|
},
|
|
926
1157
|
},
|
|
@@ -1013,6 +1244,16 @@ export const authMachine = createMachine({
|
|
|
1013
1244
|
target: '.history',
|
|
1014
1245
|
actions: 'clearContext',
|
|
1015
1246
|
},
|
|
1247
|
+
SET_ERROR: {
|
|
1248
|
+
actions: assign({
|
|
1249
|
+
error: (_ctx, event) => event.info || (event.error ? { code: event.error, message: event.error } : undefined),
|
|
1250
|
+
}),
|
|
1251
|
+
},
|
|
1252
|
+
CLEAR_ERROR: {
|
|
1253
|
+
actions: assign({
|
|
1254
|
+
error: () => undefined,
|
|
1255
|
+
}),
|
|
1256
|
+
},
|
|
1016
1257
|
},
|
|
1017
1258
|
}, {
|
|
1018
1259
|
services: {
|
|
@@ -1081,6 +1322,7 @@ export const authMachine = createMachine({
|
|
|
1081
1322
|
// @ts-ignore
|
|
1082
1323
|
isNewUser: (_, event) => !!event.data.isNewUser,
|
|
1083
1324
|
forgeClaim: (_, event) => !!event.forgeId,
|
|
1325
|
+
hasSalt: (context) => !!context.salt,
|
|
1084
1326
|
hasHardware2FA: (context, event) => {
|
|
1085
1327
|
const { data } = event;
|
|
1086
1328
|
const HARDWARE = 1;
|
|
@@ -1118,19 +1360,10 @@ export const authMachine = createMachine({
|
|
|
1118
1360
|
setupRegisterUser: assign({
|
|
1119
1361
|
registerUser: (_, event) => event?.registerUser || undefined,
|
|
1120
1362
|
}),
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
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
|
-
}),
|
|
1363
|
+
// clearError action removed; we now clear errors inline in each BACK transition
|
|
1364
|
+
clearContext: assign(() => ({
|
|
1365
|
+
...initialContext,
|
|
1366
|
+
})),
|
|
1134
1367
|
},
|
|
1135
1368
|
});
|
|
1136
1369
|
let stateDefinition;
|
|
@@ -1138,7 +1371,12 @@ let stateDefinition;
|
|
|
1138
1371
|
if (typeof window !== 'undefined') {
|
|
1139
1372
|
const authState = localStorage.getItem('authState');
|
|
1140
1373
|
if (authState) {
|
|
1141
|
-
|
|
1374
|
+
const parsed = JSON.parse(authState);
|
|
1375
|
+
// Drop persisted error on hydration
|
|
1376
|
+
if (parsed?.context) {
|
|
1377
|
+
parsed.context.error = undefined;
|
|
1378
|
+
}
|
|
1379
|
+
stateDefinition = parsed;
|
|
1142
1380
|
}
|
|
1143
1381
|
}
|
|
1144
1382
|
let resolvedState;
|
|
@@ -1153,12 +1391,18 @@ export const authService = (services, context) => {
|
|
|
1153
1391
|
...initialContext,
|
|
1154
1392
|
...context,
|
|
1155
1393
|
};
|
|
1394
|
+
// If persisted authProviderConfigs differ from provided configs, start fresh (ignore persisted state)
|
|
1395
|
+
const persistedConfig = resolvedState?.context?.authProviderConfigs;
|
|
1396
|
+
const incomingConfig = mergedContext.authProviderConfigs;
|
|
1397
|
+
const configsDiffer = JSON.stringify(persistedConfig || {}) !== JSON.stringify(incomingConfig || {});
|
|
1398
|
+
const startArg = configsDiffer ? undefined : resolvedState;
|
|
1156
1399
|
return interpret(authMachine.withConfig({
|
|
1157
1400
|
services,
|
|
1158
1401
|
guards: {
|
|
1159
1402
|
// @ts-ignore
|
|
1160
1403
|
isNewUser: (_, event) => !!event.data.isNewUser,
|
|
1161
1404
|
forgeClaim: (_, event) => !!event.forgeId,
|
|
1405
|
+
hasSalt: (ctx) => !!ctx.salt,
|
|
1162
1406
|
hasHardware2FA: (ctx, event) => {
|
|
1163
1407
|
const { data } = event;
|
|
1164
1408
|
const HARDWARE = 1;
|
|
@@ -1214,20 +1458,10 @@ export const authService = (services, context) => {
|
|
|
1214
1458
|
setupRegisterUser: assign({
|
|
1215
1459
|
registerUser: (_, event) => event?.registerUser || undefined,
|
|
1216
1460
|
}),
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
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
|
-
}),
|
|
1461
|
+
// clearError action removed; errors are cleared inline on BACK transitions
|
|
1462
|
+
clearContext: assign(() => ({
|
|
1463
|
+
...initialContext,
|
|
1464
|
+
})),
|
|
1231
1465
|
},
|
|
1232
1466
|
}, mergedContext))
|
|
1233
1467
|
.onTransition((state) => {
|
|
@@ -1242,6 +1476,6 @@ export const authService = (services, context) => {
|
|
|
1242
1476
|
localStorage.setItem('authState', JSON.stringify(state));
|
|
1243
1477
|
}
|
|
1244
1478
|
})
|
|
1245
|
-
.start(
|
|
1479
|
+
.start(startArg);
|
|
1246
1480
|
};
|
|
1247
1481
|
//# sourceMappingURL=index.js.map
|