@sanctum-key/react-native-sdk 1.0.51 → 1.0.52
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/android/build/intermediates/compiled_local_resources/debug/compileDebugLibraryResources/out/xml_file_paths.xml.flat +0 -0
- package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +2 -2
- package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +1 -1
- package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +1 -1
- package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +1 -1
- package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +1 -1
- package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +41 -41
- package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
- package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
- package/android/build/outputs/logs/manifest-merger-debug-report.txt +52 -52
- package/build/package.json +1 -1
- package/build/src/components/KYCElements/IDCardCapture.d.ts.map +1 -1
- package/build/src/components/KYCElements/IDCardCapture.js +73 -66
- package/build/src/components/KYCElements/IDCardCapture.js.map +1 -1
- package/build/src/components/TemplateKYCExample.d.ts +2 -1
- package/build/src/components/TemplateKYCExample.d.ts.map +1 -1
- package/build/src/components/TemplateKYCExample.js +2 -2
- package/build/src/components/TemplateKYCExample.js.map +1 -1
- package/build/src/components/TemplateKYCFlowRefactored.d.ts +1 -0
- package/build/src/components/TemplateKYCFlowRefactored.d.ts.map +1 -1
- package/build/src/components/TemplateKYCFlowRefactored.js +20 -14
- package/build/src/components/TemplateKYCFlowRefactored.js.map +1 -1
- package/build/src/config/KYCConfig.d.ts.map +1 -1
- package/build/src/config/KYCConfig.js +4 -2
- package/build/src/config/KYCConfig.js.map +1 -1
- package/build/src/hooks/useTemplateKYCFlow.d.ts +1 -0
- package/build/src/hooks/useTemplateKYCFlow.d.ts.map +1 -1
- package/build/src/hooks/useTemplateKYCFlow.js.map +1 -1
- package/build/src/modules/api/CardAuthentification.d.ts +0 -23
- package/build/src/modules/api/CardAuthentification.d.ts.map +1 -1
- package/build/src/modules/api/CardAuthentification.js +46 -83
- package/build/src/modules/api/CardAuthentification.js.map +1 -1
- package/build/src/modules/api/KYCService.d.ts.map +1 -1
- package/build/src/modules/api/KYCService.js +96 -38
- package/build/src/modules/api/KYCService.js.map +1 -1
- package/build/src/modules/api/SelfieVerification.d.ts.map +1 -1
- package/build/src/modules/api/SelfieVerification.js +12 -19
- package/build/src/modules/api/SelfieVerification.js.map +1 -1
- package/package.json +1 -1
- package/src/components/KYCElements/IDCardCapture.tsx +192 -191
- package/src/components/TemplateKYCExample.tsx +3 -0
- package/src/components/TemplateKYCFlowRefactored.tsx +31 -25
- package/src/config/KYCConfig.ts +7 -5
- package/src/hooks/useTemplateKYCFlow.tsx +1 -0
- package/src/modules/api/CardAuthentification.ts +409 -445
- package/src/modules/api/KYCService.ts +599 -449
- package/src/modules/api/SelfieVerification.ts +22 -29
|
@@ -7,6 +7,7 @@ export interface TemplateKYCExampleProps {
|
|
|
7
7
|
onError: (error: string) => void;
|
|
8
8
|
language: string;
|
|
9
9
|
API_KEY?: string;
|
|
10
|
+
TEST_API_KEY?: string;
|
|
10
11
|
templateId?: string;
|
|
11
12
|
template?: KYCTemplate;
|
|
12
13
|
env?: KycEnvironment;
|
|
@@ -22,5 +23,5 @@ export interface TemplateKYCExampleProps {
|
|
|
22
23
|
onSessionSave?: (sessionId: string) => void;
|
|
23
24
|
kyc_session_id?: string;
|
|
24
25
|
}
|
|
25
|
-
export declare function TemplateKYCExample({ onComplete, onCancel, onError, language, API_KEY, templateId, template, env, serverEnv, existingSessionId, initialComponentIndex, initialCountryResume, referenceId, onSessionSave, kyc_session_id }: TemplateKYCExampleProps): JSX.Element;
|
|
26
|
+
export declare function TemplateKYCExample({ onComplete, onCancel, onError, language, API_KEY, TEST_API_KEY, templateId, template, env, serverEnv, existingSessionId, initialComponentIndex, initialCountryResume, referenceId, onSessionSave, kyc_session_id }: TemplateKYCExampleProps): JSX.Element;
|
|
26
27
|
//# sourceMappingURL=TemplateKYCExample.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateKYCExample.d.ts","sourceRoot":"","sources":["../../../src/components/TemplateKYCExample.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAGnC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAwCxE,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,kBAAkB,CAAC,EACjC,UAAU,EACV,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,OAAO,EACP,UAAU,EACV,QAAQ,EACR,GAAkB,EAClB,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,cAAc,EACf,EAAE,uBAAuB,GAAG,GAAG,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"TemplateKYCExample.d.ts","sourceRoot":"","sources":["../../../src/components/TemplateKYCExample.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAGnC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAwCxE,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,kBAAkB,CAAC,EACjC,UAAU,EACV,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,GAAkB,EAClB,SAAS,EACT,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,cAAc,EACf,EAAE,uBAAuB,GAAG,GAAG,CAAC,OAAO,CA4FvC"}
|
|
@@ -38,7 +38,7 @@ const advancedVerificationTemplate = {
|
|
|
38
38
|
},
|
|
39
39
|
]
|
|
40
40
|
};
|
|
41
|
-
export function TemplateKYCExample({ onComplete, onCancel, onError, language, API_KEY, templateId, template, env = 'PRODUCTION', serverEnv, existingSessionId, initialComponentIndex, initialCountryResume, referenceId, onSessionSave, kyc_session_id }) {
|
|
41
|
+
export function TemplateKYCExample({ onComplete, onCancel, onError, language, API_KEY, TEST_API_KEY, templateId, template, env = 'PRODUCTION', serverEnv, existingSessionId, initialComponentIndex, initialCountryResume, referenceId, onSessionSave, kyc_session_id }) {
|
|
42
42
|
const handleComplete = (data) => {
|
|
43
43
|
console.log('KYC Template completed with raw data:', data);
|
|
44
44
|
let finalPayload = data; // Fallback to raw data if mapping fails
|
|
@@ -97,7 +97,7 @@ export function TemplateKYCExample({ onComplete, onCancel, onError, language, AP
|
|
|
97
97
|
const templateToUse = templateId ? undefined : (template || advancedVerificationTemplate);
|
|
98
98
|
return (<SafeAreaView style={{ flex: 1, paddingVertical: 25 }}>
|
|
99
99
|
<View style={{ flex: 1 }}>
|
|
100
|
-
<TemplateKYCFlow template={templateToUse} templateId={templateId} onComplete={handleComplete} onError={handleError} onCancel={handleCancel} language={language} API_KEY={API_KEY} env={env} serverEnv={serverEnv} existingSessionId={existingSessionId} initialComponentIndex={initialComponentIndex} initialCountryResume={initialCountryResume} referenceId={referenceId} onSessionSave={onSessionSave} kyc_session_id={kyc_session_id}/>
|
|
100
|
+
<TemplateKYCFlow template={templateToUse} templateId={templateId} onComplete={handleComplete} onError={handleError} onCancel={handleCancel} language={language} API_KEY={API_KEY} TEST_API_KEY={TEST_API_KEY} env={env} serverEnv={serverEnv} existingSessionId={existingSessionId} initialComponentIndex={initialComponentIndex} initialCountryResume={initialCountryResume} referenceId={referenceId} onSessionSave={onSessionSave} kyc_session_id={kyc_session_id}/>
|
|
101
101
|
</View>
|
|
102
102
|
</SafeAreaView>);
|
|
103
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateKYCExample.js","sourceRoot":"","sources":["../../../src/components/TemplateKYCExample.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { JSX } from 'react';\nimport { View, SafeAreaView } from 'react-native';\nimport { TemplateKYCFlow } from './TemplateKYCFlowRefactored';\nimport { KYCTemplate, VerificationState } from '../types/KYC.types';\nimport { KycEnvironment, BackendEnvironment } from '../types/env.types';\nimport { sdkLogger } from '../utils/logger'; // 🚨 IMPORT SDK LOGGER\n\nconst advancedVerificationTemplate: KYCTemplate = {\n id: 1,\n name: { en: \"Advanced Verification\", fr: \"Vérification Avancée\" },\n description: { en: \"Extended identity verification flow\", fr: \"Processus de vérification d'identité étendu\" },\n version: \"1.1.0\",\n components: [\n {\n id: 5, type: \"location\" as const, order: 1,\n labels: { en: \"Enable your location\", fr: \"Activez votre localisation\" },\n instructions: { en: \"We need your GPS location for compliance purposes.\", fr: \"Nous avons besoin de votre localisation GPS pour des raisons réglementaires.\" },\n ui: { icon: \"location-icon.png\", themeColor: \"#2DBD60\", buttonText: { en: \"Enable Location\", fr: \"Activer la localisation\" } },\n config: { accuracy: \"high\", required: true } as const\n },\n {\n id: 6, type: \"country_selection\" as const, order: 2,\n labels: { en: \"Select your country\", fr: \"Sélectionnez votre pays\" },\n instructions: { en: \"Choose your country of residence.\", fr: \"Choisissez votre pays de résidence.\" },\n ui: { icon: \"country-icon.png\", themeColor: \"#2DBD60\", buttonText: { en: \"Confirm\", fr: \"Confirmer\" } },\n config: { allowed_countries: [\"CM\", \"NG\", \"CI\", \"KE\", \"GH\"], default_country: \"CM\", required: true } as const\n },\n {\n id: 1, type: \"id_card\" as const, order: 3, templateId: 1,\n labels: { front: { en: \"Upload front of ID card\", fr: \"Téléversez le recto de votre carte d'identité\" }, back: { en: \"Upload back of ID card\", fr: \"Téléversez le verso de votre carte d'identité\" }, },\n instructions: { front: { en: \"Take a clear photo of the front of your ID.\", fr: \"Prenez une photo nette du recto de votre pièce.\" }, back: { en: \"Take a clear photo of the back of your ID.\", fr: \"Prenez une photo nette du verso de votre pièce.\" }, },\n ui: { front: { icon: \"id-card-icon.png\", themeColor: \"#2DBD60\", buttonText: { en: \"Next\", fr: \"Suivant\" } }, back: { icon: \"id-card-icon.png\", themeColor: \"#2DBD60\", buttonText: { en: \"Next\", fr: \"Suivant\" } }, },\n config: { sides: [\"front\", \"back\"], allowed_formats: [\"jpg\", \"png\"], max_size_mb: 5, document_types: [\"drivers_licence\", \"passport\", \"drivers_licence\", \"national_id\"], } as const\n },\n {\n id: 3, type: \"selfie\" as const, order: 5, templateId: 1,\n labels: { en: \"Take selfies from different angles\", fr: \"Prenez des selfies sous différents angles\" },\n instructions: { en: \"Take selfies from front, left, and right angles.\", fr: \"Prenez des selfies de face, profil gauche et profil droit.\" },\n ui: { icon: \"selfie-icon.png\", themeColor: \"#2DBD60\", buttonText: { en: \"Next\", fr: \"Suivant\" } },\n config: { liveness_check: true, max_attempts: 3, orientations: [\"center\", \"left\", \"right\"] } as const\n },\n ]\n};\n\nexport interface TemplateKYCExampleProps {\n onComplete: (data: VerificationState) => void;\n onCancel: () => void;\n onError: (error: string) => void;\n language: string;\n API_KEY?: string;\n templateId?: string;\n template?: KYCTemplate;\n env?: KycEnvironment;\n serverEnv?: BackendEnvironment;\n existingSessionId?: string;\n initialComponentIndex?: number;\n initialCountryResume?: { code: string; documentType: string; region?: string };\n referenceId?: string;\n onSessionSave?: (sessionId: string) => void;\n kyc_session_id?: string;\n}\n\nexport function TemplateKYCExample({\n onComplete,\n onCancel,\n onError,\n language,\n API_KEY,\n templateId,\n template,\n env = 'PRODUCTION',\n serverEnv,\n existingSessionId,\n initialComponentIndex,\n initialCountryResume,\n referenceId,\n onSessionSave,\n kyc_session_id\n}: TemplateKYCExampleProps): JSX.Element {\n\n const handleComplete = (data: VerificationState) => {\n console.log('KYC Template completed with raw data:', data);\n\n let finalPayload: any = data; // Fallback to raw data if mapping fails\n\n if ((data.status === 'success' || data.status === 'in_progress') && data.result) {\n // 1. Extract the dynamic root key (e.g., 'national_id', 'passport')\n const docKey = Object.keys(data.result)[0];\n \n if (docKey && data.result[docKey]) {\n const backendData = data.result[docKey].data;\n const personalInfo = backendData?.user_data?.personal_information || {};\n \n // Ensure we capture the session ID from whichever prop was provided\n const activeSessionId = kyc_session_id || existingSessionId || \"\";\n\n // 2. Strict mapping to your expected format\n finalPayload = {\n data: {\n verification_id: backendData?.verification_id,\n verification_status: backendData?.verification_status,\n session_id: activeSessionId,\n user_data: {\n personal_information: {\n first_name: personalInfo.first_name || undefined,\n given_name: personalInfo.given_name || undefined,\n last_name: personalInfo.last_name || undefined,\n surname: personalInfo.last_name || undefined, // fallback\n address: personalInfo.address || undefined,\n city: personalInfo.city || undefined,\n postal_code: personalInfo.postal_code || undefined,\n expiry_date: personalInfo.expiry_date || undefined,\n issue_date: personalInfo.issue_date || undefined,\n date_of_birth: personalInfo.date_of_birth || undefined,\n birth_date: personalInfo.date_of_birth || undefined, // fallback\n country: personalInfo.country || undefined,\n document_number: (personalInfo as any).document_number || undefined,\n nationality: (personalInfo as any).nationality || undefined,\n }\n }\n }\n };\n\n sdkLogger.info(\"Wrapper formatted completion payload successfully\", { \n verification_id: finalPayload.data.verification_id \n });\n }\n } else {\n sdkLogger.warn(\"Wrapper received completion without a success result object\", { status: data.status });\n }\n\n onComplete(finalPayload as any); \n };\n\n const handleCancel = () => {\n console.log('KYC Template flow cancelled');\n onCancel();\n };\n\n const handleError = (error: string) => {\n console.error('KYC Template error:', error);\n onError(error);\n };\n\n const templateToUse = templateId ? undefined : (template || advancedVerificationTemplate);\n\n return (\n <SafeAreaView style={{ flex: 1, paddingVertical: 25 }}>\n <View style={{ flex: 1 }}>\n <TemplateKYCFlow\n template={templateToUse}\n templateId={templateId}\n onComplete={handleComplete}\n onError={handleError}\n onCancel={handleCancel}\n language={language}\n API_KEY={API_KEY}\n env={env}\n serverEnv={serverEnv}\n existingSessionId={existingSessionId}\n initialComponentIndex={initialComponentIndex}\n initialCountryResume={initialCountryResume}\n referenceId={referenceId}\n onSessionSave={onSessionSave}\n kyc_session_id={kyc_session_id}\n />\n </View>\n </SafeAreaView>\n );\n}"]}
|
|
1
|
+
{"version":3,"file":"TemplateKYCExample.js","sourceRoot":"","sources":["../../../src/components/TemplateKYCExample.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { JSX } from 'react';\nimport { View, SafeAreaView } from 'react-native';\nimport { TemplateKYCFlow } from './TemplateKYCFlowRefactored';\nimport { KYCTemplate, VerificationState } from '../types/KYC.types';\nimport { KycEnvironment, BackendEnvironment } from '../types/env.types';\nimport { sdkLogger } from '../utils/logger'; // 🚨 IMPORT SDK LOGGER\n\nconst advancedVerificationTemplate: KYCTemplate = {\n id: 1,\n name: { en: \"Advanced Verification\", fr: \"Vérification Avancée\" },\n description: { en: \"Extended identity verification flow\", fr: \"Processus de vérification d'identité étendu\" },\n version: \"1.1.0\",\n components: [\n {\n id: 5, type: \"location\" as const, order: 1,\n labels: { en: \"Enable your location\", fr: \"Activez votre localisation\" },\n instructions: { en: \"We need your GPS location for compliance purposes.\", fr: \"Nous avons besoin de votre localisation GPS pour des raisons réglementaires.\" },\n ui: { icon: \"location-icon.png\", themeColor: \"#2DBD60\", buttonText: { en: \"Enable Location\", fr: \"Activer la localisation\" } },\n config: { accuracy: \"high\", required: true } as const\n },\n {\n id: 6, type: \"country_selection\" as const, order: 2,\n labels: { en: \"Select your country\", fr: \"Sélectionnez votre pays\" },\n instructions: { en: \"Choose your country of residence.\", fr: \"Choisissez votre pays de résidence.\" },\n ui: { icon: \"country-icon.png\", themeColor: \"#2DBD60\", buttonText: { en: \"Confirm\", fr: \"Confirmer\" } },\n config: { allowed_countries: [\"CM\", \"NG\", \"CI\", \"KE\", \"GH\"], default_country: \"CM\", required: true } as const\n },\n {\n id: 1, type: \"id_card\" as const, order: 3, templateId: 1,\n labels: { front: { en: \"Upload front of ID card\", fr: \"Téléversez le recto de votre carte d'identité\" }, back: { en: \"Upload back of ID card\", fr: \"Téléversez le verso de votre carte d'identité\" }, },\n instructions: { front: { en: \"Take a clear photo of the front of your ID.\", fr: \"Prenez une photo nette du recto de votre pièce.\" }, back: { en: \"Take a clear photo of the back of your ID.\", fr: \"Prenez une photo nette du verso de votre pièce.\" }, },\n ui: { front: { icon: \"id-card-icon.png\", themeColor: \"#2DBD60\", buttonText: { en: \"Next\", fr: \"Suivant\" } }, back: { icon: \"id-card-icon.png\", themeColor: \"#2DBD60\", buttonText: { en: \"Next\", fr: \"Suivant\" } }, },\n config: { sides: [\"front\", \"back\"], allowed_formats: [\"jpg\", \"png\"], max_size_mb: 5, document_types: [\"drivers_licence\", \"passport\", \"drivers_licence\", \"national_id\"], } as const\n },\n {\n id: 3, type: \"selfie\" as const, order: 5, templateId: 1,\n labels: { en: \"Take selfies from different angles\", fr: \"Prenez des selfies sous différents angles\" },\n instructions: { en: \"Take selfies from front, left, and right angles.\", fr: \"Prenez des selfies de face, profil gauche et profil droit.\" },\n ui: { icon: \"selfie-icon.png\", themeColor: \"#2DBD60\", buttonText: { en: \"Next\", fr: \"Suivant\" } },\n config: { liveness_check: true, max_attempts: 3, orientations: [\"center\", \"left\", \"right\"] } as const\n },\n ]\n};\n\nexport interface TemplateKYCExampleProps {\n onComplete: (data: VerificationState) => void;\n onCancel: () => void;\n onError: (error: string) => void;\n language: string;\n API_KEY?: string;\n TEST_API_KEY?: string;\n templateId?: string;\n template?: KYCTemplate;\n env?: KycEnvironment;\n serverEnv?: BackendEnvironment;\n existingSessionId?: string;\n initialComponentIndex?: number;\n initialCountryResume?: { code: string; documentType: string; region?: string };\n referenceId?: string;\n onSessionSave?: (sessionId: string) => void;\n kyc_session_id?: string;\n}\n\nexport function TemplateKYCExample({\n onComplete,\n onCancel,\n onError,\n language,\n API_KEY,\n TEST_API_KEY,\n templateId,\n template,\n env = 'PRODUCTION',\n serverEnv,\n existingSessionId,\n initialComponentIndex,\n initialCountryResume,\n referenceId,\n onSessionSave,\n kyc_session_id\n}: TemplateKYCExampleProps): JSX.Element {\n\n const handleComplete = (data: VerificationState) => {\n console.log('KYC Template completed with raw data:', data);\n\n let finalPayload: any = data; // Fallback to raw data if mapping fails\n\n if ((data.status === 'success' || data.status === 'in_progress') && data.result) {\n // 1. Extract the dynamic root key (e.g., 'national_id', 'passport')\n const docKey = Object.keys(data.result)[0];\n \n if (docKey && data.result[docKey]) {\n const backendData = data.result[docKey].data;\n const personalInfo = backendData?.user_data?.personal_information || {};\n \n // Ensure we capture the session ID from whichever prop was provided\n const activeSessionId = kyc_session_id || existingSessionId || \"\";\n\n // 2. Strict mapping to your expected format\n finalPayload = {\n data: {\n verification_id: backendData?.verification_id,\n verification_status: backendData?.verification_status,\n session_id: activeSessionId,\n user_data: {\n personal_information: {\n first_name: personalInfo.first_name || undefined,\n given_name: personalInfo.given_name || undefined,\n last_name: personalInfo.last_name || undefined,\n surname: personalInfo.last_name || undefined, // fallback\n address: personalInfo.address || undefined,\n city: personalInfo.city || undefined,\n postal_code: personalInfo.postal_code || undefined,\n expiry_date: personalInfo.expiry_date || undefined,\n issue_date: personalInfo.issue_date || undefined,\n date_of_birth: personalInfo.date_of_birth || undefined,\n birth_date: personalInfo.date_of_birth || undefined, // fallback\n country: personalInfo.country || undefined,\n document_number: (personalInfo as any).document_number || undefined,\n nationality: (personalInfo as any).nationality || undefined,\n }\n }\n }\n };\n\n sdkLogger.info(\"Wrapper formatted completion payload successfully\", { \n verification_id: finalPayload.data.verification_id \n });\n }\n } else {\n sdkLogger.warn(\"Wrapper received completion without a success result object\", { status: data.status });\n }\n\n onComplete(finalPayload as any); \n };\n\n const handleCancel = () => {\n console.log('KYC Template flow cancelled');\n onCancel();\n };\n\n const handleError = (error: string) => {\n console.error('KYC Template error:', error);\n onError(error);\n };\n\n const templateToUse = templateId ? undefined : (template || advancedVerificationTemplate);\n\n return (\n <SafeAreaView style={{ flex: 1, paddingVertical: 25 }}>\n <View style={{ flex: 1 }}>\n <TemplateKYCFlow\n template={templateToUse}\n templateId={templateId}\n onComplete={handleComplete}\n onError={handleError}\n onCancel={handleCancel}\n language={language}\n API_KEY={API_KEY}\n TEST_API_KEY={TEST_API_KEY}\n env={env}\n serverEnv={serverEnv}\n existingSessionId={existingSessionId}\n initialComponentIndex={initialComponentIndex}\n initialCountryResume={initialCountryResume}\n referenceId={referenceId}\n onSessionSave={onSessionSave}\n kyc_session_id={kyc_session_id}\n />\n </View>\n </SafeAreaView>\n );\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateKYCFlowRefactored.d.ts","sourceRoot":"","sources":["../../../src/components/TemplateKYCFlowRefactored.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"TemplateKYCFlowRefactored.d.ts","sourceRoot":"","sources":["../../../src/components/TemplateKYCFlowRefactored.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAkBpE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAIxE,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC/C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA4J1D,CAAC"}
|
|
@@ -18,16 +18,18 @@ import { PhoneVerificationTemplate } from './KYCElements/PhoneVerificationTempla
|
|
|
18
18
|
import { PersonalInformationTemplate } from './KYCElements/PersonalInformationTemplate';
|
|
19
19
|
import { AdditionalDocumentsTemplate } from './KYCElements/AdditionalDocumentsTemplate';
|
|
20
20
|
import KYCConfig from '../config/KYCConfig';
|
|
21
|
-
import { sdkLogger } from '../utils/logger';
|
|
22
|
-
export const TemplateKYCFlow = ({ template: providedTemplate, templateId, onComplete, onError, language = 'fr', onCancel, API_KEY, env = 'PRODUCTION', serverEnv, existingSessionId, initialComponentIndex, initialCountryResume, referenceId, onSessionSave, kyc_session_id, }) => {
|
|
21
|
+
import { logger, sdkLogger } from '../utils/logger';
|
|
22
|
+
export const TemplateKYCFlow = ({ template: providedTemplate, templateId, onComplete, onError, language = 'fr', onCancel, API_KEY, TEST_API_KEY, env = 'PRODUCTION', serverEnv, existingSessionId, initialComponentIndex, initialCountryResume, referenceId, onSessionSave, kyc_session_id, }) => {
|
|
23
23
|
const { t } = useI18n();
|
|
24
24
|
const { template: loadedTemplate, isLoading, error, loadTemplate } = useTemplateLoader();
|
|
25
|
+
// 🚨 1. Determine the active API key based on the environment
|
|
26
|
+
const activeApiKey = env === 'PRODUCTION' ? API_KEY : (TEST_API_KEY || API_KEY);
|
|
25
27
|
useEffect(() => {
|
|
26
|
-
if (
|
|
28
|
+
if (activeApiKey) {
|
|
27
29
|
if (sdkLogger.setApiKey)
|
|
28
|
-
sdkLogger.setApiKey(
|
|
30
|
+
sdkLogger.setApiKey(activeApiKey);
|
|
29
31
|
}
|
|
30
|
-
}, [env, serverEnv, existingSessionId,
|
|
32
|
+
}, [env, serverEnv, existingSessionId, activeApiKey]);
|
|
31
33
|
useEffect(() => {
|
|
32
34
|
if (serverEnv !== undefined) {
|
|
33
35
|
KYCConfig.setBackendEnvironment(serverEnv);
|
|
@@ -36,19 +38,20 @@ export const TemplateKYCFlow = ({ template: providedTemplate, templateId, onComp
|
|
|
36
38
|
useEffect(() => {
|
|
37
39
|
if (!providedTemplate && !templateId) {
|
|
38
40
|
const errorMsg = 'Either template or templateId must be provided';
|
|
39
|
-
|
|
41
|
+
logger.error("Template Loading Failed: Missing Props", { errorMsg });
|
|
40
42
|
onError?.(errorMsg);
|
|
41
43
|
return;
|
|
42
44
|
}
|
|
43
|
-
if (templateId && !
|
|
44
|
-
|
|
45
|
+
if (templateId && !activeApiKey) {
|
|
46
|
+
logger.log(`Fetching template ${templateId} via token authentication`);
|
|
45
47
|
loadTemplate(templateId);
|
|
46
48
|
}
|
|
47
|
-
else if (templateId &&
|
|
48
|
-
|
|
49
|
-
|
|
49
|
+
else if (templateId && activeApiKey) {
|
|
50
|
+
logger.log(`Fetching template ${templateId} via API Key`);
|
|
51
|
+
// 🚨 2. Use the resolved active key here
|
|
52
|
+
loadTemplate(templateId, activeApiKey);
|
|
50
53
|
}
|
|
51
|
-
}, [templateId,
|
|
54
|
+
}, [templateId, activeApiKey, providedTemplate, loadTemplate, onError]);
|
|
52
55
|
useEffect(() => {
|
|
53
56
|
if (error) {
|
|
54
57
|
sdkLogger.error("Template Fetch Error", { error });
|
|
@@ -88,7 +91,7 @@ export const TemplateKYCFlow = ({ template: providedTemplate, templateId, onComp
|
|
|
88
91
|
<Text style={styles.errorText}>{error}</Text>
|
|
89
92
|
<TouchableOpacity style={styles.retryButton} onPress={() => {
|
|
90
93
|
sdkLogger.info("User retrying template fetch");
|
|
91
|
-
loadTemplate(templateId,
|
|
94
|
+
loadTemplate(templateId, activeApiKey);
|
|
92
95
|
}}>
|
|
93
96
|
<Text style={styles.retryButtonText}>{t('common.retry') || 'Retry'}</Text>
|
|
94
97
|
</TouchableOpacity>
|
|
@@ -111,7 +114,10 @@ export const TemplateKYCFlow = ({ template: providedTemplate, templateId, onComp
|
|
|
111
114
|
sdkLogger.flush();
|
|
112
115
|
if (onError)
|
|
113
116
|
onError(err);
|
|
114
|
-
}} onCancel={OnCancel} initialLanguage={language}
|
|
117
|
+
}} onCancel={OnCancel} initialLanguage={language}
|
|
118
|
+
// 🚨 3. Pass the resolved active API key down to the provider!
|
|
119
|
+
// The context/hooks will automatically use this key.
|
|
120
|
+
apiKey={activeApiKey} testApiKey={TEST_API_KEY} env={env} existingSessionId={existingSessionId} initialComponentIndex={initialComponentIndex} initialCountryResume={initialCountryResume} referenceId={referenceId} onSessionSave={onSessionSave} kyc_session_id={kyc_session_id}>
|
|
115
121
|
<TemplateKYCFlowContent onCancel={OnCancel}/>
|
|
116
122
|
</TemplateKYCFlowProvider>);
|
|
117
123
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateKYCFlowRefactored.js","sourceRoot":"","sources":["../../../src/components/TemplateKYCFlowRefactored.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect } from 'react';\nimport { View, Text, StyleSheet, SafeAreaView, TouchableOpacity, ActivityIndicator, Dimensions, ScrollView, Platform } from 'react-native';\nimport { KYCTemplate, VerificationState } from '../types/KYC.types';\nimport { TemplateKYCFlowProvider, useTemplateKYCFlowContext } from '../hooks/useTemplateKYCFlow';\nimport { useI18n } from '../hooks/useI18n';\nimport { showAlert } from '../utils/platformAlert';\n\nimport { IDCardCapture } from './KYCElements/IDCardCapture';\nimport { SelfieCaptureTemplate } from './KYCElements/SelfieCaptureTemplate';\nimport { FileUploadTemplate } from './KYCElements/FileUploadTemplate';\nimport { LocationCaptureTemplate } from './KYCElements/LocationCaptureTemplate';\nimport { CountrySelectionTemplate } from './KYCElements/CountrySelectionTemplate';\nimport { InitializationStep } from './KYCElements/InitializationStep';\nimport { ReviewSubmitTemplate } from './KYCElements/ReviewSubmitTemplate';\nimport { VerificationProgressTemplate } from './KYCElements/VerificationProgressTemplate';\nimport { useTemplateLoader } from '../hooks/useTemplateLoader';\nimport { WelcomeTemplate } from './KYCElements/WelcomeTemplate';\nimport { EmailVerificationTemplate } from './KYCElements/EmailVerificationTemplate';\nimport { PhoneVerificationTemplate } from './KYCElements/PhoneVerificationTemplate';\nimport { PersonalInformationTemplate } from './KYCElements/PersonalInformationTemplate';\nimport { AdditionalDocumentsTemplate } from './KYCElements/AdditionalDocumentsTemplate';\nimport { KycEnvironment, BackendEnvironment } from '../types/env.types';\nimport KYCConfig from '../config/KYCConfig';\nimport { sdkLogger } from '../utils/logger'; // 🚨 IMPORT SDK LOGGER\n\ninterface TemplateKYCFlowProps {\n template?: KYCTemplate; // Format SDK direct (existing, now optional)\n templateId?: string; // New: ID to load from API\n onComplete?: (data: VerificationState) => void;\n onError?: (error: string) => void;\n language?: string;\n onCancel?: () => void;\n API_KEY?: string; // Required if templateId is used\n env?: KycEnvironment; // Flow execution: PRODUCTION (full AI) or SANDBOX (skip AI)\n serverEnv?: BackendEnvironment; // Backend to call: PRODUCTION or TEST (API URL)\n existingSessionId?: string;\n initialComponentIndex?: number;\n initialCountryResume?: { code: string; documentType: string; region?: string };\n referenceId?: string;\n onSessionSave?: (sessionId: string) => void;\n kyc_session_id?: string;\n}\n\nexport const TemplateKYCFlow: React.FC<TemplateKYCFlowProps> = ({\n template: providedTemplate,\n templateId,\n onComplete,\n onError,\n language = 'fr',\n onCancel,\n API_KEY,\n env = 'PRODUCTION',\n serverEnv,\n existingSessionId,\n initialComponentIndex,\n initialCountryResume,\n referenceId,\n onSessionSave,\n kyc_session_id,\n}) => {\n const { t } = useI18n();\n const { template: loadedTemplate, isLoading, error, loadTemplate } = useTemplateLoader();\n\n useEffect(() => {\n if (API_KEY) {\n if (sdkLogger.setApiKey) sdkLogger.setApiKey(API_KEY);\n }\n \n }, [env, serverEnv, existingSessionId, API_KEY]);\n\n useEffect(() => {\n if (serverEnv !== undefined) {\n KYCConfig.setBackendEnvironment(serverEnv);\n }\n }, [serverEnv]);\n\n useEffect(() => {\n if (!providedTemplate && !templateId) {\n const errorMsg = 'Either template or templateId must be provided';\n sdkLogger.error(\"Template Loading Failed: Missing Props\", { errorMsg });\n onError?.(errorMsg);\n return;\n }\n\n if (templateId && !API_KEY) {\n sdkLogger.info(`Fetching template ${templateId} via token authentication`);\n loadTemplate(templateId);\n } else if (templateId && API_KEY) {\n sdkLogger.info(`Fetching template ${templateId} via API Key`);\n loadTemplate(templateId, API_KEY);\n }\n }, [templateId, API_KEY, providedTemplate, loadTemplate, onError]);\n\n useEffect(() => {\n if (error) {\n sdkLogger.error(\"Template Fetch Error\", { error });\n onError?.(error);\n }\n }, [error, onError]);\n\n const OnCancel = () => {\n showAlert(\n t('kyc.cancelConfirmation.title'),\n t('kyc.cancelConfirmation.message'),\n [\n { \n text: t('kyc.cancelConfirmation.cancelButton'), \n style: 'cancel',\n },\n {\n text: t('kyc.cancelConfirmation.confirmButton'),\n onPress: () => {\n sdkLogger.warn(\"User confirmed flow cancellation\");\n sdkLogger.flush();\n onCancel?.();\n }\n },\n ]\n );\n };\n\n const template = providedTemplate || loadedTemplate;\n\n useEffect(() => {\n if (template) {\n sdkLogger.info(\"Template loaded successfully\", { componentCount: template.components.length });\n }\n }, [template]);\n\n if (templateId && isLoading && !template) {\n return (\n <View style={styles.loadingContainer}>\n <ActivityIndicator size=\"large\" color=\"#2DBD60\" />\n <Text style={styles.loadingText}>{t('common.loading') || 'Loading template...'}</Text>\n </View>\n );\n }\n\n if (templateId && error && !template) {\n return (\n <View style={styles.errorContainer}>\n <Text style={styles.errorText}>{error}</Text>\n <TouchableOpacity \n style={styles.retryButton} \n onPress={() => {\n sdkLogger.info(\"User retrying template fetch\");\n loadTemplate(templateId, API_KEY);\n }}\n >\n <Text style={styles.retryButtonText}>{t('common.retry') || 'Retry'}</Text>\n </TouchableOpacity>\n </View>\n );\n }\n\n if (!template) {\n return (\n <View style={styles.errorContainer}>\n <Text style={styles.errorText}>\n {t('errors.unknownError') || 'Template not available'}\n </Text>\n </View>\n );\n }\n\n\n return (\n <TemplateKYCFlowProvider\n template={template}\n onComplete={(data) => {\n sdkLogger.info(\"KYC Flow Completed\", { referenceId: data?.result?.referenceId });\n sdkLogger.flush();\n if (onComplete) onComplete(data);\n }}\n onError={(err) => {\n sdkLogger.error(\"KYC Flow Error\", { error: err });\n sdkLogger.flush();\n if (onError) onError(err);\n }}\n onCancel={OnCancel}\n initialLanguage={language}\n apiKey={API_KEY}\n env={env}\n existingSessionId={existingSessionId}\n initialComponentIndex={initialComponentIndex}\n initialCountryResume={initialCountryResume}\n referenceId={referenceId}\n onSessionSave={onSessionSave}\n kyc_session_id={kyc_session_id}\n >\n <TemplateKYCFlowContent onCancel={OnCancel} />\n </TemplateKYCFlowProvider>\n );\n};\n\nconst TemplateKYCFlowContent: React.FC<{ onCancel?: () => void }> = ({ onCancel }) => {\n const { state, actions, currentComponent, progress } = useTemplateKYCFlowContext();\n const { t } = useI18n();\n\n console.log(`sessionnnn id: ${state.session.session_id}`)\n\n useEffect(() => {\n if (state.session?.session_id) {\n sdkLogger.setSessionId(state.session.session_id);\n }\n }, [state.session?.session_id]);\n\n useEffect(() => {\n if (currentComponent) {\n sdkLogger.info(`User navigated to step ${state.currentComponentIndex + 1}: ${currentComponent.type}`, {\n componentId: currentComponent.id,\n progress: `${progress}%`\n });\n }\n }, [currentComponent?.id, state.currentComponentIndex, progress]);\n\n const updateComponentData = (componentId: number, data: unknown) => {\n actions.updateComponentData(componentId, data);\n };\n\n if (!currentComponent) {\n return (\n <View style={styles.container}>\n <Text style={styles.errorText}>{t('errors.unknownError')}</Text>\n </View>\n );\n }\n\n const renderCurrentComponent = () => {\n const commonProps = {\n component: currentComponent,\n value: state.componentData[currentComponent.id],\n onValueChange: (data: unknown) => updateComponentData(currentComponent.id, data),\n error: state.errors[currentComponent.id],\n language: state.currentLanguage,\n };\n\n if (!state.session.isInitialized) {\n return <InitializationStep session={state.session} />\n }\n\n switch (currentComponent.type) {\n case 'welcome': return <WelcomeTemplate {...commonProps} />;\n case 'id_card': return <IDCardCapture {...commonProps} />;\n case 'selfie': return <SelfieCaptureTemplate {...commonProps} />;\n case 'file_upload': return <FileUploadTemplate {...commonProps} />;\n case 'location': return <LocationCaptureTemplate {...commonProps} />;\n case 'country_selection': return <CountrySelectionTemplate {...commonProps} />;\n case 'review_submit': return <ReviewSubmitTemplate {...commonProps} />;\n case 'email_verification': return <EmailVerificationTemplate {...commonProps} />;\n case 'phone_verification': return <PhoneVerificationTemplate {...commonProps} />;\n case 'personal_information': return <PersonalInformationTemplate {...commonProps} />;\n case 'additional_documents': return <AdditionalDocumentsTemplate {...commonProps} />;\n case 'verification_progress': return <VerificationProgressTemplate {...commonProps} />;\n default:\n sdkLogger.error(\"Attempted to render unsupported component type\", { type: currentComponent.type });\n return (\n <View style={styles.unsupportedContainer}>\n <Text style={styles.unsupportedText}>\n {t('errors.unknownError')}: {currentComponent.type}\n </Text>\n </View>\n );\n }\n };\n\n return (\n <View style={{ flex: 1, position: 'relative' }}>\n {state.isProcessing && (\n <View style={styles.processingContainer}>\n <Text style={styles.processingText}>{t('common.loading')}</Text>\n <ActivityIndicator size=\"large\" color=\"#fff\" />\n </View>\n )}\n\n <SafeAreaView style={styles.container}>\n {(state.showCustomStepper && state.session.isInitialized) ? (\n <View style={styles.header}>\n <Text style={styles.progressText}>\n {t('kyc.step', {\n current: (state.template.components.findIndex(c => c.id === currentComponent.id) + 1) || (state.currentComponentIndex + 1),\n total: state.template.components.length,\n })}\n </Text>\n \n <View style={styles.progressContainer}>\n <View style={styles.progressBar}>\n <View style={[styles.progressFill, { width: `${progress}%` }]} />\n </View>\n </View>\n\n <View style={{ position: 'absolute', right: 12, top: 12 }}>\n <TouchableOpacity onPress={onCancel} disabled={!onCancel} style={{ opacity: onCancel ? 1 : 0.5 }}>\n <Text style={{ fontSize: 20, fontWeight: 'bold', color: '#333' }}>{`X`}</Text>\n </TouchableOpacity>\n </View>\n </View>\n ) : null}\n\n <ScrollView\n style={styles.scrollView}\n contentContainerStyle={styles.content}\n showsVerticalScrollIndicator={Platform.OS === 'web'}\n bounces={false}\n >\n {renderCurrentComponent()}\n </ScrollView>\n\n {state.isProcessing && (\n <View style={styles.processingContainer}>\n <Text style={styles.processingText}>{t('common.loading')}</Text>\n <ActivityIndicator size=\"large\" color=\"#fff\" />\n </View>\n )}\n </SafeAreaView>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: { flex: 1, backgroundColor: '#f5f5f5', },\n header: { backgroundColor: 'white', paddingVertical: 20, paddingHorizontal: 12, borderBottomWidth: 1, borderBottomColor: '#e0e0e0', marginHorizontal: 12, marginTop: 12, shadowColor: '#000', shadowOffset: { width: 0, height: 2 }, shadowOpacity: 0.15, shadowRadius: 1.84, elevation: 5, },\n title: { fontSize: 24, fontWeight: 'bold', color: '#333', marginBottom: 8, },\n description: { fontSize: 16, color: '#666', marginBottom: 20, },\n progressContainer: { },\n progressBar: { height: 8, backgroundColor: '#e0e0e0', borderRadius: 4, overflow: 'hidden', },\n progressFill: { height: '100%', backgroundColor: '#2DBD60', borderRadius: 4, },\n progressText: { fontSize: 14, color: 'black', fontWeight: '600', textAlign: 'left', marginBottom: 8, },\n stepInfo: { backgroundColor: '#f8f9fa', padding: 16, borderRadius: 8, borderLeftWidth: 4, borderLeftColor: '#2DBD60', },\n stepTitle: { fontSize: 18, fontWeight: '600', color: '#333', marginBottom: 8, },\n stepDescription: { fontSize: 14, color: '#666', lineHeight: 20, },\n scrollView: { flex: 1, },\n content: { flexGrow: 1, alignItems: 'center', paddingBottom: 20, },\n navigation: { flexDirection: 'row', justifyContent: 'space-between', padding: 20, backgroundColor: 'white', borderTopWidth: 1, borderTopColor: '#e0e0e0', },\n navButton: { paddingHorizontal: 24, paddingVertical: 12, borderRadius: 8, minWidth: 100, alignItems: 'center', },\n primaryButton: { backgroundColor: '#2DBD60', },\n navButtonText: { fontSize: 16, fontWeight: '600', color: 'white', },\n errorText: { color: '#dc2626', fontSize: 16, textAlign: 'center', margin: 20, },\n unsupportedContainer: { flex: 1, justifyContent: 'center', alignItems: 'center', padding: 20, },\n unsupportedText: { fontSize: 16, color: '#666', textAlign: 'center', },\n processingContainer: { position: 'absolute', flex: 1, width: Dimensions.get('window').width, height: Dimensions.get('window').height, backgroundColor: 'rgba(0, 0, 0, 0.5)', justifyContent: 'center', alignItems: 'center', zIndex: 10000000, },\n processingText: { fontSize: 16, color: '#fff', textAlign: 'center', fontWeight: 'bold', marginBottom: 10, },\n loadingContainer: { flex: 1, justifyContent: 'center', alignItems: 'center', backgroundColor: '#f5f5f5', },\n loadingText: { marginTop: 16, fontSize: 16, color: '#666', textAlign: 'center', },\n errorContainer: { flex: 1, justifyContent: 'center', alignItems: 'center', backgroundColor: '#f5f5f5', padding: 20, },\n retryButton: { marginTop: 20, paddingHorizontal: 24, paddingVertical: 12, backgroundColor: '#2DBD60', borderRadius: 8, },\n retryButtonText: { color: '#fff', fontSize: 16, fontWeight: '600', },\n});"]}
|
|
1
|
+
{"version":3,"file":"TemplateKYCFlowRefactored.js","sourceRoot":"","sources":["../../../src/components/TemplateKYCFlowRefactored.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect } from 'react';\nimport { View, Text, StyleSheet, SafeAreaView, TouchableOpacity, ActivityIndicator, Dimensions, ScrollView, Platform } from 'react-native';\nimport { KYCTemplate, VerificationState } from '../types/KYC.types';\nimport { TemplateKYCFlowProvider, useTemplateKYCFlowContext } from '../hooks/useTemplateKYCFlow';\nimport { useI18n } from '../hooks/useI18n';\nimport { showAlert } from '../utils/platformAlert';\nimport { IDCardCapture } from './KYCElements/IDCardCapture';\nimport { SelfieCaptureTemplate } from './KYCElements/SelfieCaptureTemplate';\nimport { FileUploadTemplate } from './KYCElements/FileUploadTemplate';\nimport { LocationCaptureTemplate } from './KYCElements/LocationCaptureTemplate';\nimport { CountrySelectionTemplate } from './KYCElements/CountrySelectionTemplate';\nimport { InitializationStep } from './KYCElements/InitializationStep';\nimport { ReviewSubmitTemplate } from './KYCElements/ReviewSubmitTemplate';\nimport { VerificationProgressTemplate } from './KYCElements/VerificationProgressTemplate';\nimport { useTemplateLoader } from '../hooks/useTemplateLoader';\nimport { WelcomeTemplate } from './KYCElements/WelcomeTemplate';\nimport { EmailVerificationTemplate } from './KYCElements/EmailVerificationTemplate';\nimport { PhoneVerificationTemplate } from './KYCElements/PhoneVerificationTemplate';\nimport { PersonalInformationTemplate } from './KYCElements/PersonalInformationTemplate';\nimport { AdditionalDocumentsTemplate } from './KYCElements/AdditionalDocumentsTemplate';\nimport { KycEnvironment, BackendEnvironment } from '../types/env.types';\nimport KYCConfig from '../config/KYCConfig';\nimport { logger, sdkLogger } from '../utils/logger'; \n\ninterface TemplateKYCFlowProps {\n template?: KYCTemplate; \n templateId?: string; \n onComplete?: (data: VerificationState) => void;\n onError?: (error: string) => void;\n language?: string;\n onCancel?: () => void;\n API_KEY?: string; \n TEST_API_KEY?: string;\n env?: KycEnvironment; \n serverEnv?: BackendEnvironment; \n existingSessionId?: string;\n initialComponentIndex?: number;\n initialCountryResume?: { code: string; documentType: string; region?: string };\n referenceId?: string;\n onSessionSave?: (sessionId: string) => void;\n kyc_session_id?: string;\n}\n\nexport const TemplateKYCFlow: React.FC<TemplateKYCFlowProps> = ({\n template: providedTemplate,\n templateId,\n onComplete,\n onError,\n language = 'fr',\n onCancel,\n API_KEY,\n TEST_API_KEY,\n env = 'PRODUCTION',\n serverEnv,\n existingSessionId,\n initialComponentIndex,\n initialCountryResume,\n referenceId,\n onSessionSave,\n kyc_session_id,\n}) => {\n const { t } = useI18n();\n const { template: loadedTemplate, isLoading, error, loadTemplate } = useTemplateLoader();\n\n // 🚨 1. Determine the active API key based on the environment\n const activeApiKey = env === 'PRODUCTION' ? API_KEY : (TEST_API_KEY || API_KEY);\n\n useEffect(() => {\n if (activeApiKey) {\n if (sdkLogger.setApiKey) sdkLogger.setApiKey(activeApiKey);\n }\n }, [env, serverEnv, existingSessionId, activeApiKey]);\n\n useEffect(() => {\n if (serverEnv !== undefined) {\n KYCConfig.setBackendEnvironment(serverEnv);\n }\n }, [serverEnv]);\n\n useEffect(() => {\n if (!providedTemplate && !templateId) {\n const errorMsg = 'Either template or templateId must be provided';\n logger.error(\"Template Loading Failed: Missing Props\", { errorMsg });\n onError?.(errorMsg);\n return;\n }\n\n if (templateId && !activeApiKey) {\n logger.log(`Fetching template ${templateId} via token authentication`);\n loadTemplate(templateId);\n } else if (templateId && activeApiKey) {\n logger.log(`Fetching template ${templateId} via API Key`);\n // 🚨 2. Use the resolved active key here\n loadTemplate(templateId, activeApiKey);\n }\n }, [templateId, activeApiKey, providedTemplate, loadTemplate, onError]);\n\n useEffect(() => {\n if (error) {\n sdkLogger.error(\"Template Fetch Error\", { error });\n onError?.(error);\n }\n }, [error, onError]);\n\n const OnCancel = () => {\n showAlert(\n t('kyc.cancelConfirmation.title'),\n t('kyc.cancelConfirmation.message'),\n [\n {\n text: t('kyc.cancelConfirmation.cancelButton'),\n style: 'cancel',\n },\n {\n text: t('kyc.cancelConfirmation.confirmButton'),\n onPress: () => {\n sdkLogger.warn(\"User confirmed flow cancellation\");\n sdkLogger.flush();\n onCancel?.();\n }\n },\n ]\n );\n };\n\n const template = providedTemplate || loadedTemplate;\n\n useEffect(() => {\n if (template) {\n sdkLogger.info(\"Template loaded successfully\", { componentCount: template.components.length });\n }\n }, [template]);\n\n if (templateId && isLoading && !template) {\n return (\n <View style={styles.loadingContainer}>\n <ActivityIndicator size=\"large\" color=\"#2DBD60\" />\n <Text style={styles.loadingText}>{t('common.loading') || 'Loading template...'}</Text>\n </View>\n );\n }\n\n if (templateId && error && !template) {\n return (\n <View style={styles.errorContainer}>\n <Text style={styles.errorText}>{error}</Text>\n <TouchableOpacity\n style={styles.retryButton}\n onPress={() => {\n sdkLogger.info(\"User retrying template fetch\");\n loadTemplate(templateId, activeApiKey);\n }}\n >\n <Text style={styles.retryButtonText}>{t('common.retry') || 'Retry'}</Text>\n </TouchableOpacity>\n </View>\n );\n }\n\n if (!template) {\n return (\n <View style={styles.errorContainer}>\n <Text style={styles.errorText}>\n {t('errors.unknownError') || 'Template not available'}\n </Text>\n </View>\n );\n }\n\n return (\n <TemplateKYCFlowProvider\n template={template}\n onComplete={(data) => {\n sdkLogger.info(\"KYC Flow Completed\", { referenceId: data?.result?.referenceId });\n sdkLogger.flush();\n if (onComplete) onComplete(data);\n }}\n onError={(err) => {\n sdkLogger.error(\"KYC Flow Error\", { error: err });\n sdkLogger.flush();\n if (onError) onError(err);\n }}\n onCancel={OnCancel}\n initialLanguage={language}\n // 🚨 3. Pass the resolved active API key down to the provider! \n // The context/hooks will automatically use this key.\n apiKey={activeApiKey}\n testApiKey={TEST_API_KEY} \n env={env}\n existingSessionId={existingSessionId}\n initialComponentIndex={initialComponentIndex}\n initialCountryResume={initialCountryResume}\n referenceId={referenceId}\n onSessionSave={onSessionSave}\n kyc_session_id={kyc_session_id}\n >\n <TemplateKYCFlowContent onCancel={OnCancel} />\n </TemplateKYCFlowProvider>\n );\n};\n\nconst TemplateKYCFlowContent: React.FC<{ onCancel?: () => void }> = ({ onCancel }) => {\n const { state, actions, currentComponent, progress } = useTemplateKYCFlowContext();\n const { t } = useI18n();\n\n console.log(`sessionnnn id: ${state.session.session_id}`)\n\n useEffect(() => {\n if (state.session?.session_id) {\n sdkLogger.setSessionId(state.session.session_id);\n }\n }, [state.session?.session_id]);\n\n useEffect(() => {\n if (currentComponent) {\n sdkLogger.info(`User navigated to step ${state.currentComponentIndex + 1}: ${currentComponent.type}`, {\n componentId: currentComponent.id,\n progress: `${progress}%`\n });\n }\n }, [currentComponent?.id, state.currentComponentIndex, progress]);\n\n const updateComponentData = (componentId: number, data: unknown) => {\n actions.updateComponentData(componentId, data);\n };\n\n if (!currentComponent) {\n return (\n <View style={styles.container}>\n <Text style={styles.errorText}>{t('errors.unknownError')}</Text>\n </View>\n );\n }\n\n const renderCurrentComponent = () => {\n const commonProps = {\n component: currentComponent,\n value: state.componentData[currentComponent.id],\n onValueChange: (data: unknown) => updateComponentData(currentComponent.id, data),\n error: state.errors[currentComponent.id],\n language: state.currentLanguage,\n };\n\n if (!state.session.isInitialized) {\n return <InitializationStep session={state.session} />\n }\n\n switch (currentComponent.type) {\n case 'welcome': return <WelcomeTemplate {...commonProps} />;\n case 'id_card': return <IDCardCapture {...commonProps} />;\n case 'selfie': return <SelfieCaptureTemplate {...commonProps} />;\n case 'file_upload': return <FileUploadTemplate {...commonProps} />;\n case 'location': return <LocationCaptureTemplate {...commonProps} />;\n case 'country_selection': return <CountrySelectionTemplate {...commonProps} />;\n case 'review_submit': return <ReviewSubmitTemplate {...commonProps} />;\n case 'email_verification': return <EmailVerificationTemplate {...commonProps} />;\n case 'phone_verification': return <PhoneVerificationTemplate {...commonProps} />;\n case 'personal_information': return <PersonalInformationTemplate {...commonProps} />;\n case 'additional_documents': return <AdditionalDocumentsTemplate {...commonProps} />;\n case 'verification_progress': return <VerificationProgressTemplate {...commonProps} />;\n default:\n sdkLogger.error(\"Attempted to render unsupported component type\", { type: currentComponent.type });\n return (\n <View style={styles.unsupportedContainer}>\n <Text style={styles.unsupportedText}>\n {t('errors.unknownError')}: {currentComponent.type}\n </Text>\n </View>\n );\n }\n };\n\n return (\n <View style={{ flex: 1, position: 'relative' }}>\n {state.isProcessing && (\n <View style={styles.processingContainer}>\n <Text style={styles.processingText}>{t('common.loading')}</Text>\n <ActivityIndicator size=\"large\" color=\"#fff\" />\n </View>\n )}\n\n <SafeAreaView style={styles.container}>\n {(state.showCustomStepper && state.session.isInitialized) ? (\n <View style={styles.header}>\n <Text style={styles.progressText}>\n {t('kyc.step', {\n current: (state.template.components.findIndex(c => c.id === currentComponent.id) + 1) || (state.currentComponentIndex + 1),\n total: state.template.components.length,\n })}\n </Text>\n \n <View style={styles.progressContainer}>\n <View style={styles.progressBar}>\n <View style={[styles.progressFill, { width: `${progress}%` }]} />\n </View>\n </View>\n\n <View style={{ position: 'absolute', right: 12, top: 12 }}>\n <TouchableOpacity onPress={onCancel} disabled={!onCancel} style={{ opacity: onCancel ? 1 : 0.5 }}>\n <Text style={{ fontSize: 20, fontWeight: 'bold', color: '#333' }}>{`X`}</Text>\n </TouchableOpacity>\n </View>\n </View>\n ) : null}\n\n <ScrollView\n style={styles.scrollView}\n contentContainerStyle={styles.content}\n showsVerticalScrollIndicator={Platform.OS === 'web'}\n bounces={false}\n >\n {renderCurrentComponent()}\n </ScrollView>\n\n {state.isProcessing && (\n <View style={styles.processingContainer}>\n <Text style={styles.processingText}>{t('common.loading')}</Text>\n <ActivityIndicator size=\"large\" color=\"#fff\" />\n </View>\n )}\n </SafeAreaView>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: { flex: 1, backgroundColor: '#f5f5f5', },\n header: { backgroundColor: 'white', paddingVertical: 20, paddingHorizontal: 12, borderBottomWidth: 1, borderBottomColor: '#e0e0e0', marginHorizontal: 12, marginTop: 12, shadowColor: '#000', shadowOffset: { width: 0, height: 2 }, shadowOpacity: 0.15, shadowRadius: 1.84, elevation: 5, },\n title: { fontSize: 24, fontWeight: 'bold', color: '#333', marginBottom: 8, },\n description: { fontSize: 16, color: '#666', marginBottom: 20, },\n progressContainer: { },\n progressBar: { height: 8, backgroundColor: '#e0e0e0', borderRadius: 4, overflow: 'hidden', },\n progressFill: { height: '100%', backgroundColor: '#2DBD60', borderRadius: 4, },\n progressText: { fontSize: 14, color: 'black', fontWeight: '600', textAlign: 'left', marginBottom: 8, },\n stepInfo: { backgroundColor: '#f8f9fa', padding: 16, borderRadius: 8, borderLeftWidth: 4, borderLeftColor: '#2DBD60', },\n stepTitle: { fontSize: 18, fontWeight: '600', color: '#333', marginBottom: 8, },\n stepDescription: { fontSize: 14, color: '#666', lineHeight: 20, },\n scrollView: { flex: 1, },\n content: { flexGrow: 1, alignItems: 'center', paddingBottom: 20, },\n navigation: { flexDirection: 'row', justifyContent: 'space-between', padding: 20, backgroundColor: 'white', borderTopWidth: 1, borderTopColor: '#e0e0e0', },\n navButton: { paddingHorizontal: 24, paddingVertical: 12, borderRadius: 8, minWidth: 100, alignItems: 'center', },\n primaryButton: { backgroundColor: '#2DBD60', },\n navButtonText: { fontSize: 16, fontWeight: '600', color: 'white', },\n errorText: { color: '#dc2626', fontSize: 16, textAlign: 'center', margin: 20, },\n unsupportedContainer: { flex: 1, justifyContent: 'center', alignItems: 'center', padding: 20, },\n unsupportedText: { fontSize: 16, color: '#666', textAlign: 'center', },\n processingContainer: { position: 'absolute', flex: 1, width: Dimensions.get('window').width, height: Dimensions.get('window').height, backgroundColor: 'rgba(0, 0, 0, 0.5)', justifyContent: 'center', alignItems: 'center', zIndex: 10000000, },\n processingText: { fontSize: 16, color: '#fff', textAlign: 'center', fontWeight: 'bold', marginBottom: 10, },\n loadingContainer: { flex: 1, justifyContent: 'center', alignItems: 'center', backgroundColor: '#f5f5f5', },\n loadingText: { marginTop: 16, fontSize: 16, color: '#666', textAlign: 'center', },\n errorContainer: { flex: 1, justifyContent: 'center', alignItems: 'center', backgroundColor: '#f5f5f5', padding: 20, },\n retryButton: { marginTop: 20, paddingHorizontal: 24, paddingVertical: 12, backgroundColor: '#2DBD60', borderRadius: 8, },\n retryButtonText: { color: '#fff', fontSize: 16, fontWeight: '600', },\n});"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KYCConfig.d.ts","sourceRoot":"","sources":["../../../src/config/KYCConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,cAAM,SAAS;IACX,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAY;IACnC,OAAO,CAAC,kBAAkB,CAAoC;
|
|
1
|
+
{"version":3,"file":"KYCConfig.d.ts","sourceRoot":"","sources":["../../../src/config/KYCConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,cAAM,SAAS;IACX,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAY;IACnC,OAAO,CAAC,kBAAkB,CAAoC;IAG9D,OAAO,CAAC,WAAW,CAIjB;IAEF,OAAO;WAEO,WAAW,IAAI,SAAS;IAO/B,qBAAqB,CAAC,GAAG,EAAE,kBAAkB;IAI7C,aAAa,IAAI,MAAM;IAKvB,qBAAqB,IAAI,kBAAkB;CAGrD;;AAED,wBAAuC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
class KYCConfig {
|
|
2
2
|
static instance;
|
|
3
3
|
backendEnvironment = 'PRODUCTION';
|
|
4
|
+
// 🚨 Use a string record to safely handle 'TEST' or 'SANDBOX' aliases
|
|
4
5
|
backendUrls = {
|
|
5
6
|
PRODUCTION: 'https://service.sanctumkey.com/api/v1',
|
|
6
|
-
// TEST: 'https://kyc-backend.transfergratis.net/api/v1',
|
|
7
7
|
TEST: 'https://api.sanctumkey.com/api/v1',
|
|
8
|
+
SANDBOX: 'https://kyc-backend.transfergratis.net/api/v1',
|
|
8
9
|
};
|
|
9
10
|
constructor() { }
|
|
10
11
|
static getInstance() {
|
|
@@ -17,7 +18,8 @@ class KYCConfig {
|
|
|
17
18
|
this.backendEnvironment = env;
|
|
18
19
|
}
|
|
19
20
|
getBackendUrl() {
|
|
20
|
-
|
|
21
|
+
// Fallback to PRODUCTION if an invalid env string is somehow passed
|
|
22
|
+
return this.backendUrls[this.backendEnvironment] || this.backendUrls['PRODUCTION'];
|
|
21
23
|
}
|
|
22
24
|
getBackendEnvironment() {
|
|
23
25
|
return this.backendEnvironment;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KYCConfig.js","sourceRoot":"","sources":["../../../src/config/KYCConfig.ts"],"names":[],"mappings":"AAEA,MAAM,SAAS;IACH,MAAM,CAAC,QAAQ,CAAY;IAC3B,kBAAkB,GAAuB,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"KYCConfig.js","sourceRoot":"","sources":["../../../src/config/KYCConfig.ts"],"names":[],"mappings":"AAEA,MAAM,SAAS;IACH,MAAM,CAAC,QAAQ,CAAY;IAC3B,kBAAkB,GAAuB,YAAY,CAAC;IAE9D,uEAAuE;IAC/D,WAAW,GAA2B;QAC1C,UAAU,EAAE,uCAAuC;QACnD,IAAI,EAAE,mCAAmC;QACzC,OAAO,EAAE,+CAA+C;KAC3D,CAAC;IAEF,gBAAwB,CAAC;IAElB,MAAM,CAAC,WAAW;QACrB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YACtB,SAAS,CAAC,QAAQ,GAAG,IAAI,SAAS,EAAE,CAAC;QACzC,CAAC;QACD,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAEM,qBAAqB,CAAC,GAAuB;QAChD,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;IAClC,CAAC;IAEM,aAAa;QAChB,oEAAoE;QACpE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACvF,CAAC;IAEM,qBAAqB;QACxB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;CACJ;AAED,eAAe,SAAS,CAAC,WAAW,EAAE,CAAC","sourcesContent":["import { BackendEnvironment } from '../types/env.types';\n\nclass KYCConfig {\n private static instance: KYCConfig;\n private backendEnvironment: BackendEnvironment = 'PRODUCTION';\n\n // 🚨 Use a string record to safely handle 'TEST' or 'SANDBOX' aliases \n private backendUrls: Record<string, string> = {\n PRODUCTION: 'https://service.sanctumkey.com/api/v1',\n TEST: 'https://api.sanctumkey.com/api/v1',\n SANDBOX: 'https://kyc-backend.transfergratis.net/api/v1',\n };\n\n private constructor() { }\n\n public static getInstance(): KYCConfig {\n if (!KYCConfig.instance) {\n KYCConfig.instance = new KYCConfig();\n }\n return KYCConfig.instance;\n }\n\n public setBackendEnvironment(env: BackendEnvironment) {\n this.backendEnvironment = env;\n }\n\n public getBackendUrl(): string {\n // Fallback to PRODUCTION if an invalid env string is somehow passed\n return this.backendUrls[this.backendEnvironment] || this.backendUrls['PRODUCTION'];\n }\n\n public getBackendEnvironment(): BackendEnvironment {\n return this.backendEnvironment;\n }\n}\n\nexport default KYCConfig.getInstance();"]}
|
|
@@ -26,6 +26,7 @@ interface TemplateKYCFlowProviderProps {
|
|
|
26
26
|
onCancel?: () => void;
|
|
27
27
|
initialLanguage?: string;
|
|
28
28
|
apiKey?: string;
|
|
29
|
+
testApiKey?: string;
|
|
29
30
|
env?: KycEnvironment;
|
|
30
31
|
existingSessionId?: string;
|
|
31
32
|
/** Index in template.components where to resume (0-based). Simple to store in template table. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTemplateKYCFlow.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTemplateKYCFlow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA6D,SAAS,EAAqB,MAAM,OAAO,CAAC;AACvH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAA6C,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAClK,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAQpD,UAAU,0BAA0B;IAClC,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,eAAe,CAAC;IACzB,gBAAgB,EAAE,GAAG,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAA,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC;IACrF,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,GAAG,EAAE,cAAc,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAKD,UAAU,4BAA4B;IACpC,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC/C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iGAAiG;IACjG,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,6GAA6G;IAC7G,oBAAoB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAuC1E,CAAC;AAGF,eAAO,MAAM,yBAAyB,QAAO,0BAM5C,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,UAAU,WAAW,EACrB,aAAa,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,EAC9C,UAAU,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,WAAW,MAAM,IAAI,EACrB,kBAAiB,MAAa,EAC9B,SAAS,MAAM,EACf,MAAK,cAA6B,EAClC,oBAAoB,MAAM,EAC1B,wBAAwB,MAAM,EAC9B,uBAAuB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAC9E,cAAc,MAAM,EACpB,gBAAgB,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,KAC1C,iBAwgCF,CAAC"}
|
|
1
|
+
{"version":3,"file":"useTemplateKYCFlow.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTemplateKYCFlow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA6D,SAAS,EAAqB,MAAM,OAAO,CAAC;AACvH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAA6C,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAClK,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAQpD,UAAU,0BAA0B;IAClC,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,eAAe,CAAC;IACzB,gBAAgB,EAAE,GAAG,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAA,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC;IACrF,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,GAAG,EAAE,cAAc,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAKD,UAAU,4BAA4B;IACpC,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC/C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iGAAiG;IACjG,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,6GAA6G;IAC7G,oBAAoB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAuC1E,CAAC;AAGF,eAAO,MAAM,yBAAyB,QAAO,0BAM5C,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,UAAU,WAAW,EACrB,aAAa,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,EAC9C,UAAU,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,WAAW,MAAM,IAAI,EACrB,kBAAiB,MAAa,EAC9B,SAAS,MAAM,EACf,MAAK,cAA6B,EAClC,oBAAoB,MAAM,EAC1B,wBAAwB,MAAM,EAC9B,uBAAuB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAC9E,cAAc,MAAM,EACpB,gBAAgB,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,KAC1C,iBAwgCF,CAAC"}
|