{"version":3,"file":"DDLfr5Ne.js","sources":["../../../../middleware/in-progress-client.client.ts"],"sourcesContent":["import { SOURCES_OF_INCOME_WITH_REQUIRED_DOCUMENT } from '~/constants';\r\nimport {\r\n AmlSourceOfIncome,\r\n type BankAccount,\r\n type Client,\r\n OCRResult,\r\n RegistrationStatus,\r\n BankIdState,\r\n} from '~/models/clients';\r\nimport { ClientDocumentType, type ClientDocument } from '~/models/documents';\r\n\r\nexport default defineNuxtRouteMiddleware(async (to, from) => {\r\n if (import.meta.server) {\r\n return;\r\n }\r\n\r\n const {\r\n // using $localePath instead of useLocalePath will not result in warning:\r\n // Calling useRoute within middleware may lead to misleading results\r\n $localePath: localePath,\r\n } = useNuxtApp();\r\n const authStore = useAuthStore();\r\n const documentsStore = useDocumentsStore();\r\n const clientsStore = useClientStore();\r\n\r\n const fromName = from.name as string | null | undefined;\r\n if (!to.redirectedFrom && !fromName?.includes('external-') && !fromName?.includes('account-')) {\r\n if (\r\n authStore.user.RegistrationStatus === RegistrationStatus.InProgress ||\r\n authStore.user.RegistrationStatus === RegistrationStatus.ClientResponseNeeded\r\n ) {\r\n if (shouldRedirectToPersonalData(authStore.user)) {\r\n return await navigateTo(localePath('account-personal-data'));\r\n }\r\n\r\n if (shouldRedirectToPhoneVerification(authStore.user)) {\r\n return await navigateTo(localePath('account-phone-number-verification'));\r\n }\r\n\r\n await documentsStore.getClientDocumentsStatus({ force: true });\r\n if (shouldRedirectToIdentityVertification(documentsStore.clientDocuments, authStore.user)) {\r\n return await navigateTo(localePath('account-identity-verification'));\r\n }\r\n\r\n if (\r\n shouldRedirectToIdentityVertificationDocumentsUpload(\r\n documentsStore.clientDocuments,\r\n authStore.user,\r\n )\r\n ) {\r\n return await navigateTo(localePath('account-identity-verification-upload-documents'));\r\n }\r\n\r\n await clientsStore.getBankAccounts({});\r\n if (shouldRedirectToBankAccount(clientsStore.bankAccounts, documentsStore.clientDocuments)) {\r\n return await navigateTo(localePath('account-bank-account'));\r\n }\r\n\r\n if (shouldRedirectToAdditionalInformation(authStore.user)) {\r\n return await navigateTo(localePath('account-additional-information'));\r\n }\r\n\r\n if (shouldRedirectToSourdeOfIncomeStatement(authStore.user, documentsStore.clientDocuments)) {\r\n return await navigateTo(localePath('account-source-of-income-statement'));\r\n }\r\n\r\n if (\r\n shouldRedirecToPoliticallyExposedPerson(authStore.user, documentsStore.clientDocuments) &&\r\n !shouldRedirecToDocumentsCheck(authStore.user)\r\n ) {\r\n return await navigateTo(localePath('account-politically-exposed-person'));\r\n }\r\n\r\n if (shouldRedirecToDocumentsCheck(authStore.user)) {\r\n return await navigateTo(localePath('account-documents-check'));\r\n }\r\n\r\n if (shouldRedirectToAddresses(authStore.user)) {\r\n return await navigateTo(localePath('account-addresses'));\r\n }\r\n\r\n if (shouldRedirectToVerification(authStore.user)) {\r\n return await navigateTo(localePath('account-verification'));\r\n }\r\n }\r\n }\r\n});\r\n\r\nfunction shouldRedirectToPersonalData(user: Client) {\r\n return (\r\n (user.FirstName ?? '').trim().length === 0 ||\r\n (user.LastName ?? '').trim().length === 0 ||\r\n (user.Nationality ?? '').trim().length === 0 ||\r\n (user.IdentityNumber ?? '').trim().length === 0 ||\r\n (user.Phone ?? '').trim().length === 0\r\n );\r\n}\r\n\r\nfunction shouldRedirectToPhoneVerification(user: Client) {\r\n return !user.IsPhoneVerified;\r\n}\r\n\r\nfunction shouldRedirectToIdentityVertification(documents: ClientDocument[], user: Client) {\r\n return (\r\n !(\r\n documents.some((document) => document.Name === 'id') ||\r\n documents.some((document) => document.Name === 'id-back') ||\r\n documents.some((document) => document.Name === 'id-other')\r\n ) &&\r\n (!user.BankIdState || user.BankIdState !== BankIdState.Success)\r\n );\r\n}\r\n\r\nfunction shouldRedirectToIdentityVertificationDocumentsUpload(\r\n documents: ClientDocument[],\r\n user: Client,\r\n) {\r\n return (\r\n (!documents.some((document) => document.Name === 'id') ||\r\n !documents.some((document) => document.Name === 'id-back') ||\r\n !documents.some((document) => document.Name === 'id-other')) &&\r\n (!user.BankIdState || user.BankIdState !== BankIdState.Success)\r\n );\r\n}\r\n\r\nfunction shouldRedirectToBankAccount(bankAccounts: BankAccount[], documents: ClientDocument[]) {\r\n return (\r\n bankAccounts.length === 0 &&\r\n !documents.find(\r\n (document) =>\r\n document.Name === 'bank-account-statement-header' &&\r\n (document.IsVerified === null || document.IsVerified === undefined),\r\n )\r\n );\r\n}\r\n\r\nfunction shouldRedirectToAdditionalInformation(user: Client) {\r\n return (\r\n !user.AmlSourceOfIncome ||\r\n user.IsNotPep === null ||\r\n user.IsNotPep === undefined ||\r\n (user.TaxResidency ?? '').trim().length === 0 ||\r\n (user.AmlSourceOfIncome === AmlSourceOfIncome.Enterpreneurship && !user.AmlSector) ||\r\n (user.TaxResidency !== user.Nationality &&\r\n (user.TaxIdentificationNumber ?? '').trim().length === 0)\r\n );\r\n}\r\n\r\nfunction shouldRedirectToSourdeOfIncomeStatement(user: Client, documents: ClientDocument[]) {\r\n return (\r\n user.AmlSourceOfIncome &&\r\n SOURCES_OF_INCOME_WITH_REQUIRED_DOCUMENT.includes(user.AmlSourceOfIncome.toString()) &&\r\n !documents.some((document) => document.Type === ClientDocumentType.SourceOfIncomeStatement)\r\n );\r\n}\r\n\r\nfunction shouldRedirecToPoliticallyExposedPerson(user: Client, documents: ClientDocument[]) {\r\n return (\r\n user.RegistrationStatus === RegistrationStatus.InProgress &&\r\n !(user.IsNotPep === null || user.IsNotPep === undefined) &&\r\n !user.IsNotPep &&\r\n (!documents.some(\r\n (document) => document.Type === ClientDocumentType.PepSourceOfIncomeStatement,\r\n ) ||\r\n (user.PEPReason ?? '').length === 0)\r\n );\r\n}\r\n\r\nfunction shouldRedirecToDocumentsCheck(user: Client) {\r\n return (\r\n user.OCRResult === OCRResult.Success &&\r\n (user.OCRIdentificationChangedByClient === null ||\r\n user.OCRIdentificationChangedByClient === undefined)\r\n );\r\n}\r\n\r\nfunction shouldRedirectToAddresses(user: Client) {\r\n return (\r\n (user.ResidencyAddress.Street ?? '').length === 0 ||\r\n (user.ResidencyAddress.City ?? '').length === 0 ||\r\n (user.ResidencyAddress.ZipCode ?? '').length === 0 ||\r\n (user.ResidencyAddress.Country ?? '').length === 0 ||\r\n (user.DeliveryAddress.Street ?? '').length === 0 ||\r\n (user.DeliveryAddress.City ?? '').length === 0 ||\r\n (user.DeliveryAddress.ZipCode ?? '').length === 0 ||\r\n (user.DeliveryAddress.Country ?? '').length === 0\r\n );\r\n}\r\n\r\nfunction shouldRedirectToVerification(user: Client) {\r\n return user.RegistrationStatus === RegistrationStatus.InProgress && !user.IsAgreedWithTerms;\r\n}\r\n"],"names":["inProgressClient_client","defineNuxtRouteMiddleware","to","from","__temp","__restore","localePath","useNuxtApp","authStore","documentsStore","useDocumentsStore","clientsStore","useClientStore","fromName","RegistrationStatus","shouldRedirectToPersonalData","__executeAsync","navigateTo","shouldRedirectToPhoneVerification","shouldRedirectToIdentityVertification","shouldRedirectToIdentityVertificationDocumentsUpload","shouldRedirectToBankAccount","shouldRedirectToAdditionalInformation","shouldRedirectToSourdeOfIncomeStatement","shouldRedirecToPoliticallyExposedPerson","shouldRedirecToDocumentsCheck","shouldRedirectToAddresses","shouldRedirectToVerification","user","documents","document","BankIdState","bankAccounts","AmlSourceOfIncome","SOURCES_OF_INCOME_WITH_REQUIRED_DOCUMENT","ClientDocumentType","OCRResult"],"mappings":"sPAYE,MAAAA,EAAwBC,EAAA,MAAAC,EAAAC,IAAA,CAAA,IAAAC,EAAAC,EAIlB,KAAA,aAISC,CACf,EAAAC,IACMC,MACAC,EAA8BC,IAE9BC,EAAgBC,IACjBC,EAAqBV,EAAA,KAEtB,GAAA,CAAAD,EAAA,gBAAsC,EAAAW,GAAA,MAAAA,EAAA,SAAA,eAAA,EAAmBA,GAAA,MAAAA,WAC/C,eAENL,EAAA,KAAA,qBAAuCM,EAAO,YAAAN,EAAA,KAAA,qBAAAM,EAAA,sBAAA,CAChD,GAAAC,EAAAP,EAAA,IAAA,EACF,MAAA,CAAAJ,EAAAC,CAAA,EAAAW,EAAA,IAAAC,EAAAX,EAAA,uBAAA,CAAA,CAAA,EAAAF,EAAA,MAAAA,EAAAC,EAAA,EAAAD,EAGE,GAAAc,EAAAV,EAAA,IAAa,EACf,MAAA,CAAAJ,EAAAC,CAAA,EAAAW,EAAA,IAAAC,EAAAX,EAAA,mCAAA,CAAA,CAAA,EAAAF,EAAA,MAAAA,EAAAC,EAAA,EAAAD,EAIE,GADF,CAAIA,EAAsCC,CAAA,EAAAW,EAAA,IAAAP,EAAA,yBAAgC,CAAA,MAAiB,EAAA,CAAA,CAAA,EAAA,MAAAL,EAAAC,EAAA,EACzFc,IAAa,gBAAsBX,EAAA,IAAA,EACrC,MAAA,CAAAJ,EAAAC,CAAA,EAAAW,EAAA,IAAAC,EAAAX,EAAA,+BAAA,CAAA,CAAA,EAAAF,EAAA,MAAAA,EAAAC,EAAA,EAAAD,EAGE,GACiBgB,EACfX,EAAU,gBAEZD,EAAA,IACA,EACF,MAAA,CAAAJ,EAAAC,CAAA,EAAAW,EAAA,IAAAC,EAAAX,EAAA,gDAAA,CAAA,CAAA,EAAAF,EAAA,MAAAA,EAAAC,EAAA,EAAAD,EAIE,GADF,CAAIA,EAA4BC,CAAA,EAAAW,EAAA,IAAAL,EAA2B,gBAAA,CAAA,CAAA,CAAA,UAA8BN,EAAG,EAC1FgB,EAAAV,EAAA,aAAaF,EAAsB,eAAA,EACrC,MAAA,CAAAL,EAAAC,CAAA,EAAAW,EAAA,IAAAC,EAAAX,EAAA,sBAAA,CAAA,CAAA,EAAAF,EAAA,MAAAA,EAAAC,EAAA,EAAAD,EAGE,GAAAkB,IAAa,IAAA,EACf,MAAA,CAAAlB,EAAAC,CAAA,EAAAW,EAAA,IAAAC,EAAAX,EAAA,gCAAA,CAAA,CAAA,EAAAF,EAAA,MAAAA,EAAAC,EAAA,EAAAD,EAGE,GAAAmB,EAAAf,EAAa,KAAWC,EAAW,eAAA,EACrC,MAAA,CAAAL,EAAAC,CAAA,EAAAW,EAAA,IAAAC,EAAAX,EAAA,oCAAA,CAAA,CAAA,EAAAF,EAAA,MAAAA,EAAAC,EAAA,EAAAD,EAME,GAAAoB,EAAAhB,EAAa,KAAWC,EAAW,eAAA,GAAA,CAAAgB,UACrC,MAAA,CAAArB,EAAAC,CAAA,EAAAW,EAAA,IAAAC,EAAAX,EAAA,oCAAA,CAAA,CAAA,EAAAF,EAAA,MAAAA,EAAAC,EAAA,EAAAD,EAGE,GAAAqB,EAAAjB,EAAA,IAAA,EACF,MAAA,CAAAJ,EAAAC,CAAA,EAAAW,EAAA,IAAAC,EAAAX,EAAA,yBAAA,CAAA,CAAA,EAAAF,EAAA,MAAAA,EAAAC,EAAA,EAAAD,EAGE,GAAAsB,UACF,MAAA,CAAAtB,EAAAC,CAAA,EAAAW,EAAA,IAAAC,EAAAX,EAAA,mBAAA,CAAA,CAAA,EAAAF,EAAA,MAAAA,EAAAC,EAAA,EAAAD,EAGE,GAAAuB,EAAAnB,EAAA,IAAA,EACF,MAAA,CAAAJ,EAAAC,CAAA,EAAAW,EAAA,IAAAC,EAAAX,EAAA,sBAAA,CAAA,CAAA,EAAAF,EAAA,MAAAA,EAAAC,EAAA,EAAAD,CAEJ,CAGF,CAAA,EACE,SAAAW,IAC2C,CAM7C,OAAAa,EAAA,WAAA,IAAA,KAAA,EAAA,SAAA,IAAAA,EAAA,UAAA,IAAA,KAAA,EAAA,SAAA,IAAAA,EAAA,aAAA,IAAA,KAAA,EAAA,SAAA,IAAAA,EAAA,gBAAA,IAAA,KAAA,EAAA,SAAA,IAAAA,EAAA,OAAA,IAAA,KAAA,EAAA,SAAA,CAEA,CACE,SAAOV,EAAMU,EAAA,CACf,MAAA,CAAAA,EAAA,eAEA,CACE,SACET,EAC+BU,EAAkBD,EAC/C,CAKN,MAAA,EAAAC,EAAA,KAAAC,GAAAA,EAAA,OAAA,IAAA,GAAAD,EAAA,KAAAC,GAAAA,EAAA,OAAA,SAAA,GAAAD,EAAA,KAAAC,GAAAA,EAAA,OAAA,UAAA,KAAA,CAAAF,EAAA,aAAAA,EAAA,cAAAG,EAAA,QAEA,CAIE,SAAAX,EACuDS,EAClDD,EAAe,CAItB,OAAA,CAAAC,EAAA,KAAAC,GAAAA,EAAA,OAAA,IAAA,GAAA,CAAAD,EAAA,KAAAC,GAAAA,EAAA,OAAA,SAAA,GAAA,CAAAD,EAAA,KAAAC,GAAAA,EAAA,OAAA,UAAA,KAAA,CAAAF,EAAA,aAAAA,EAAA,cAAAG,EAAA,QAEA,CACE,SACEV,EACAW,EAAWH,EAAA,CACT,SACW,SAAA,WAEbC,GAAAA,EAAA,OAAA,kCAAAA,EAAA,aAAA,MAAAA,EAAA,aAAA,OAEJ,CAEA,CACE,SACER,KAQJ,MAAA,CAAAM,EAAA,mBAAAA,EAAA,WAAA,MAAAA,EAAA,WAAA,SAAAA,EAAA,cAAA,IAAA,KAAA,EAAA,SAAA,GAAAA,EAAA,oBAAAK,EAAA,kBAAA,CAAAL,EAAA,WAAAA,EAAA,eAAAA,EAAA,cAAAA,EAAA,yBAAA,IAAA,KAAA,EAAA,SAAA,CAEA,CACE,SACEL,EACAK,EAAAC,EAAA,CAGJ,OAAAD,EAAA,mBAAAM,EAAA,SAAAN,EAAA,kBAAA,SAAA,CAAA,GAAA,CAAAC,EAAA,KAAAC,GAAAA,EAAA,OAAAK,EAAA,uBAAA,CAEA,CACE,SACEX,EAA+CI,EAAAC,EAAA,CAGnC,OACTD,EAAA,qBAAkDd,EAAA,YAAA,EAAAc,EAAA,WAAA,MAAAA,EAAA,WAAA,SAAA,CAAAA,EAAA,WAAA,CAAAC,EAAA,KAElDC,GAAkBA,EAAA,OAAeK,EAAA,0BAExC,IAAAP,EAAA,WAAA,IAAA,SAAA,EAEA,CACE,SACEH,EAA6BG,EAAA,CAIjC,OAAAA,EAAA,YAAAQ,EAAA,UAAAR,EAAA,mCAAA,MAAAA,EAAA,mCAAA,OAEA,CACE,SACGF,EAAgCE,EAAA,CASrC,OAAAA,EAAA,iBAAA,QAAA,IAAA,SAAA,IAAAA,EAAA,iBAAA,MAAA,IAAA,SAAA,IAAAA,EAAA,iBAAA,SAAA,IAAA,SAAA,IAAAA,EAAA,iBAAA,SAAA,IAAA,SAAA,IAAAA,EAAA,gBAAA,QAAA,IAAA,SAAA,IAAAA,EAAA,gBAAA,MAAA,IAAA,SAAA,IAAAA,EAAA,gBAAA,SAAA,IAAA,SAAA,IAAAA,EAAA,gBAAA,SAAA,IAAA,SAAA,CAEA,CACE,SAAOD,EAA+CC,EAAA,CACxD,OAAAA,EAAA,qBAAAd,EAAA,YAAA,CAAAc,EAAA"}