datakeen-session-react 1.1.191 → 1.1.192

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/dist/cjs/components/DatakeenSession.js +7 -1
  2. package/dist/cjs/components/DatakeenSession.js.map +1 -1
  3. package/dist/cjs/components/document-collection/DocumentCollection.js +42 -29
  4. package/dist/cjs/components/document-collection/DocumentCollection.js.map +1 -1
  5. package/dist/cjs/components/session/EndFlow.js +3 -2
  6. package/dist/cjs/components/session/EndFlow.js.map +1 -1
  7. package/dist/cjs/components/session/MobileRedirect.js +4 -0
  8. package/dist/cjs/components/session/MobileRedirect.js.map +1 -1
  9. package/dist/cjs/components/session/PdfGeneration.js +25 -19
  10. package/dist/cjs/components/session/PdfGeneration.js.map +1 -1
  11. package/dist/cjs/components/session/StartSession.js +16 -5
  12. package/dist/cjs/components/session/StartSession.js.map +1 -1
  13. package/dist/cjs/components/session/UserInputForm/CustomFormFields.js +7 -14
  14. package/dist/cjs/components/session/UserInputForm/CustomFormFields.js.map +1 -1
  15. package/dist/cjs/components/session/UserInputForm.js +2 -2
  16. package/dist/cjs/components/session/UserInputForm.js.map +1 -1
  17. package/dist/cjs/components/signature-electronic/SignedDocumentPreview.js +12 -14
  18. package/dist/cjs/components/signature-electronic/SignedDocumentPreview.js.map +1 -1
  19. package/dist/cjs/components/template/ExternalVerificationNodeHandler.js +67 -4
  20. package/dist/cjs/components/template/ExternalVerificationNodeHandler.js.map +1 -1
  21. package/dist/cjs/hooks/useSession.js +3 -3
  22. package/dist/cjs/hooks/useSession.js.map +1 -1
  23. package/dist/cjs/hooks/useUserInputForm.js +13 -9
  24. package/dist/cjs/hooks/useUserInputForm.js.map +1 -1
  25. package/dist/cjs/i18n/en.json.js +4 -1
  26. package/dist/cjs/i18n/en.json.js.map +1 -1
  27. package/dist/cjs/i18n/fr.json.js +4 -1
  28. package/dist/cjs/i18n/fr.json.js.map +1 -1
  29. package/dist/cjs/services/api.js +5 -0
  30. package/dist/cjs/services/api.js.map +1 -1
  31. package/dist/cjs/services/auditTrailService.js +19 -9
  32. package/dist/cjs/services/auditTrailService.js.map +1 -1
  33. package/dist/cjs/services/integrationService.js +2 -0
  34. package/dist/cjs/services/integrationService.js.map +1 -1
  35. package/dist/cjs/services/sessionCredentials.js +24 -0
  36. package/dist/cjs/services/sessionCredentials.js.map +1 -0
  37. package/dist/cjs/types/session.js.map +1 -1
  38. package/dist/cjs/utils/customFieldIds.js +52 -0
  39. package/dist/cjs/utils/customFieldIds.js.map +1 -0
  40. package/dist/cjs/utils/navigation.js +21 -0
  41. package/dist/cjs/utils/navigation.js.map +1 -0
  42. package/dist/esm/components/DatakeenSession.js +8 -2
  43. package/dist/esm/components/DatakeenSession.js.map +1 -1
  44. package/dist/esm/components/document-collection/DocumentCollection.js +43 -30
  45. package/dist/esm/components/document-collection/DocumentCollection.js.map +1 -1
  46. package/dist/esm/components/session/EndFlow.js +3 -2
  47. package/dist/esm/components/session/EndFlow.js.map +1 -1
  48. package/dist/esm/components/session/MobileRedirect.js +4 -0
  49. package/dist/esm/components/session/MobileRedirect.js.map +1 -1
  50. package/dist/esm/components/session/PdfGeneration.js +25 -19
  51. package/dist/esm/components/session/PdfGeneration.js.map +1 -1
  52. package/dist/esm/components/session/StartSession.js +16 -5
  53. package/dist/esm/components/session/StartSession.js.map +1 -1
  54. package/dist/esm/components/session/UserInputForm/CustomFormFields.js +7 -14
  55. package/dist/esm/components/session/UserInputForm/CustomFormFields.js.map +1 -1
  56. package/dist/esm/components/session/UserInputForm.js +2 -2
  57. package/dist/esm/components/session/UserInputForm.js.map +1 -1
  58. package/dist/esm/components/signature-electronic/SignedDocumentPreview.js +12 -14
  59. package/dist/esm/components/signature-electronic/SignedDocumentPreview.js.map +1 -1
  60. package/dist/esm/components/template/ExternalVerificationNodeHandler.js +67 -4
  61. package/dist/esm/components/template/ExternalVerificationNodeHandler.js.map +1 -1
  62. package/dist/esm/hooks/useSession.js +3 -3
  63. package/dist/esm/hooks/useSession.js.map +1 -1
  64. package/dist/esm/hooks/useUserInputForm.js +13 -9
  65. package/dist/esm/hooks/useUserInputForm.js.map +1 -1
  66. package/dist/esm/i18n/en.json.js +4 -1
  67. package/dist/esm/i18n/en.json.js.map +1 -1
  68. package/dist/esm/i18n/fr.json.js +4 -1
  69. package/dist/esm/i18n/fr.json.js.map +1 -1
  70. package/dist/esm/services/api.js +5 -0
  71. package/dist/esm/services/api.js.map +1 -1
  72. package/dist/esm/services/auditTrailService.js +19 -9
  73. package/dist/esm/services/auditTrailService.js.map +1 -1
  74. package/dist/esm/services/integrationService.js +2 -0
  75. package/dist/esm/services/integrationService.js.map +1 -1
  76. package/dist/esm/services/sessionCredentials.js +20 -0
  77. package/dist/esm/services/sessionCredentials.js.map +1 -0
  78. package/dist/esm/types/session.js.map +1 -1
  79. package/dist/esm/utils/customFieldIds.js +50 -0
  80. package/dist/esm/utils/customFieldIds.js.map +1 -0
  81. package/dist/esm/utils/navigation.js +19 -0
  82. package/dist/esm/utils/navigation.js.map +1 -0
  83. package/dist/types/components/DatakeenSession.d.ts +1 -1
  84. package/dist/types/hooks/useSession.d.ts +1 -1
  85. package/dist/types/types/session.d.ts +3 -0
  86. package/docs/SESSION_TOKEN_MIGRATION.md +52 -0
  87. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ExternalVerificationNodeHandler.js","sources":["../../../../../src/components/template/ExternalVerificationNodeHandler.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport sdkI18n from '../../i18n';\nimport { apiService } from '../../services/api';\nimport checkIcon from '../../assets/check.svg';\nimport LoadingState from '../states/LoadingState';\nimport Title from '../ui/Title';\nimport Subtitle from '../ui/Subtitle';\nimport Button from '../ui/Button';\nimport type { SessionData, SessionTemplateNode } from '../../types/session';\nimport type { UserInput } from '../../types/userInput';\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\ntype VerificationStatus =\n | 'ok'\n | 'not_found'\n | 'invalid_input'\n | 'config_error'\n | 'external_error'\n | 'person_mismatch';\n\ninterface InpiMandataire {\n type: 'individu' | 'personne_morale';\n nom?: string;\n prenoms?: string[];\n dateDeNaissance?: string;\n denominationSociale?: string;\n siren?: string;\n}\n\ninterface InpiVerificationData {\n identite?: { denomination?: string; siren?: string; dateImmat?: string };\n mandataires?: InpiMandataire[];\n beneficiairesEffectifs?: Array<{ nom?: string; prenoms?: string[]; dateDeNaissance?: string }>;\n comparison?: { matched: boolean; matchedPersonType?: string; targets: string[] };\n /** Real registry the data was resolved from — RNE directly, or the RNA fallback for associations. */\n source?: 'RNE' | 'RNA';\n}\n\n/** RL personne morale (délégation de pouvoir) : configuré par le concepteur du\n * parcours sur le nœud external-verification — jamais choisi par l'utilisateur\n * final. Absent/'PHYSIQUE' = comportement actuel inchangé (Nom/Prénom). */\ninterface InpiComparisonConfigSdk {\n personType?: 'PHYSIQUE' | 'MORALE';\n personReferenceNodeId?: string;\n personFirstNameField?: string;\n personLastNameField?: string;\n /** Mode MORALE uniquement : champ (du même nœud source) contenant le SIREN saisi. */\n personSirenField?: string;\n compareTargets?: Array<'beneficiairesEffectifs' | 'mandataires'>;\n compareBirthDate?: boolean;\n personBirthDateField?: string;\n}\n\ninterface VerificationResponsePayload {\n isVerified: boolean;\n status: VerificationStatus;\n message?: string;\n errorCode?: string;\n inpiData?: InpiVerificationData;\n}\n\n// Data needed to render the error screens after API response\ninterface ErrorScreenData {\n // person_mismatch\n submittedLastName: string;\n submittedFirstName: string;\n /** RL personne morale (personType: MORALE) : SIREN saisi par le délégataire. */\n submittedSiren?: string;\n mandataires: InpiMandataire[];\n beneficiairesEffectifs: Array<{ nom?: string; prenoms?: string[] }>;\n compareTargets: string[];\n personNodeId: string; // for \"Corriger ma saisie\" navigation\n // Dénomination sociale de la société cible (message de rejet, ticket codes INPI)\n targetDenomination?: string;\n // not_found / invalid_input\n siren: string;\n sirenNodeId: string; // for \"Corriger ma saisie\" navigation\n // Real registry the data came from — undefined when neither RNE nor RNA found anything.\n source?: 'RNE' | 'RNA';\n // True when both RNE and RNA were tried and neither found the entity.\n isDoubleNotFound?: boolean;\n}\n\ninterface ExternalVerificationNodeHandlerProps {\n node: SessionTemplateNode;\n session: SessionData;\n userInput: UserInput;\n setUserInput: React.Dispatch<React.SetStateAction<UserInput>>;\n onNext: () => void;\n onPrevious: () => void;\n /** Navigate to a specific journey node by ID (used for \"Corriger ma saisie\") */\n onNavigateToNode?: (nodeId: string) => void;\n}\n\n// ─── Helpers ──────────────────────────────────────────────────────────────────\n\nconst FIELD_ALIASES: Record<'siren' | 'siret', string[]> = {\n siren: ['siren', 'siren_number', 'company_siren', 'legal_siren', 'num_siren'],\n siret: ['siret', 'siret_number', 'company_siret', 'legal_siret', 'num_siret'],\n};\n\nconst STANDARD_FIELD_ALIASES: Record<string, string[]> = {\n prenom: ['firstName', 'first_name', 'prenom'],\n nom: ['lastName', 'last_name', 'surname', 'familyName', 'nom'],\n date_naissance: ['birthDate', 'birth_date', 'dateOfBirth', 'date_naissance'],\n // Champs d'un nœud identity-legal-rep (RL) : la clé de config (builder) diffère\n // de la clé réellement soumise par LegalRepFields — sans cet alias, la\n // résolution échouait silencieusement dès qu'un nœud identity-legal-rep était\n // choisi comme \"Nœud source Nom/Prénom\" (compareTargets ne trouvait jamais la\n // valeur, causant un person_mismatch systématique).\n legalRepresentativePrenom: ['legalRepresentativeFirstName', 'legalRepresentativePrenom'],\n legalRepresentativeNom: ['legalRepresentativeLastName', 'legalRepresentativeNom'],\n};\n\nconst normalizeReferenceField = (field?: string): 'siren' | 'siret' | undefined => {\n if (!field) return undefined;\n const n = field.toLowerCase().replace(/[\\s_.-]/g, '');\n if (n.includes('siret')) return 'siret';\n if (n.includes('siren')) return 'siren';\n return undefined;\n};\n\nconst maskReferenceValue = (value: string): string => {\n const clean = value.replace(/\\s+/g, '');\n if (!clean) return '';\n if (clean.length <= 4) return '****';\n return `${'*'.repeat(clean.length - 4)}${clean.slice(-4)}`;\n};\n\nconst resolveFieldValue = (nodeInput: any, userInputFlat: any, keys: string[]): string | undefined => {\n for (const key of keys) {\n const candidate =\n nodeInput?.[key] ??\n nodeInput?.customFormData?.[key] ??\n userInputFlat?.customFormData?.[key] ??\n userInputFlat?.[key];\n if (candidate !== undefined && candidate !== null && `${candidate}`.trim() !== '') {\n return String(candidate);\n }\n }\n return undefined;\n};\n\nconst expandFieldKey = (key: string): string[] => [key, ...(STANDARD_FIELD_ALIASES[key] ?? [])];\n\n// ─── Loader step type ─────────────────────────────────────────────────────────\n\ntype LoaderStep = { title: string; subtitle: string; status: 'pending' | 'active' | 'done' };\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\nconst ExternalVerificationNodeHandler: React.FC<ExternalVerificationNodeHandlerProps> = ({\n node,\n session,\n userInput,\n setUserInput,\n onNext,\n onPrevious,\n onNavigateToNode,\n}) => {\n const { t } = useTranslation('translation', { i18n: sdkI18n });\n\n const nodeData = node as any;\n const apiType = String(nodeData.targetApi || 'INSEE');\n const isInpiRbe = apiType === 'INPI_RBE';\n // Paramétrable depuis le journey builder (panneau \"Configuration de la base\n // externe\"), par nœud. Absent/true = comportement actuel inchangé.\n const allowContinueOnFailure = nodeData.allowContinueOnFailure !== false;\n\n const [phase, setPhase] = useState<'loading' | 'success' | 'mismatch' | 'not_found' | 'error'>('loading');\n const [errorScreenData, setErrorScreenData] = useState<ErrorScreenData | null>(null);\n\n const [steps, setSteps] = useState<LoaderStep[]>(() => {\n if (isInpiRbe) {\n return [\n {\n // Générique : le backend interroge le RNE puis, si besoin, le RNA en\n // fallback (associations) via un seul appel — la source réelle n'est\n // connue qu'à la réponse finale (cf. inpiData.source).\n title: t('inpi_verification.step1', 'Vérification du SIREN auprès des registres officiels'),\n subtitle: t('inpi_verification.step1_sub', 'Connexion aux registres RNE et RNA'),\n status: 'active',\n },\n {\n title: t('inpi_verification.step2', \"Récupération des données d'identité\"),\n subtitle: t('inpi_verification.step2_sub', 'Lecture des informations légales et des responsables'),\n status: 'pending',\n },\n {\n title: t('inpi_verification.step3', 'Comparaison avec les données saisies'),\n subtitle: t('inpi_verification.step3_sub', 'Vérification de la concordance des informations'),\n status: 'pending',\n },\n ];\n }\n return [{\n title: t('verification_node.verifying_title', 'Vérification en cours…'),\n subtitle: t('verification_node.verifying_desc', 'Connexion au service externe'),\n status: 'active',\n }];\n });\n\n const advanceStep = (index: number) => {\n setSteps(prev =>\n prev.map((s, i) => {\n if (i < index) return { ...s, status: 'done' };\n if (i === index) return { ...s, status: 'active' };\n return s;\n }),\n );\n };\n\n const completeSteps = () => setSteps(prev => prev.map(s => ({ ...s, status: 'done' })));\n\n useEffect(() => {\n const abortController = new AbortController();\n\n const run = async () => {\n let result: VerificationResponsePayload = {\n isVerified: false,\n status: 'external_error',\n message: 'Verification did not run.',\n };\n let referenceField: 'siren' | 'siret' | undefined;\n let referenceValueMasked = '';\n let resolvedReferenceValue = '';\n const referenceNodeId = String(nodeData.referenceNodeId || '');\n const referenceVariable = String(nodeData.referenceVariable || '');\n let submittedFirstName = '';\n let submittedLastName = '';\n let submittedSiren = '';\n\n try {\n if (!session?.id) throw new Error('Session ID is missing');\n\n referenceField = normalizeReferenceField(\n String(nodeData.referenceField || referenceVariable || ''),\n );\n\n if (!referenceNodeId || !referenceField) {\n result = {\n isVerified: false,\n status: 'config_error',\n message: 'External verification node is missing reference configuration.',\n errorCode: 'MISSING_REFERENCE_CONFIG',\n };\n } else {\n const nodeInput = (userInput as any)[referenceNodeId];\n const userInputFlat = userInput as any;\n const lookupKeys = Array.from(\n new Set([referenceVariable, referenceField, ...FIELD_ALIASES[referenceField]].filter(Boolean)),\n );\n\n let referenceValue = resolveFieldValue(nodeInput, userInputFlat, lookupKeys);\n\n if (!referenceValue) {\n const allCustomFields = {\n ...(userInputFlat?.customFormData || {}),\n ...(nodeInput?.customFormData || {}),\n ...(nodeInput || {}),\n };\n for (const [, value] of Object.entries(allCustomFields)) {\n if (typeof value !== 'string' && typeof value !== 'number') continue;\n const str = String(value).replace(/\\s+/g, '');\n if (referenceField === 'siren' && /^\\d{9}$/.test(str)) { referenceValue = str; break; }\n if (referenceField === 'siret' && /^\\d{14}$/.test(str)) { referenceValue = str; break; }\n }\n }\n\n if (!referenceValue) {\n result = {\n isVerified: false,\n status: 'invalid_input',\n message: 'No SIREN/SIRET value found in source node data.',\n errorCode: 'REFERENCE_VALUE_NOT_FOUND',\n };\n } else {\n resolvedReferenceValue = referenceValue;\n referenceValueMasked = maskReferenceValue(referenceValue);\n\n let comparisonConfig: Record<string, unknown> | undefined;\n if (isInpiRbe && nodeData.comparisonConfig?.personReferenceNodeId) {\n const cfg = nodeData.comparisonConfig as InpiComparisonConfigSdk;\n const personNodeInput = (userInput as any)[cfg.personReferenceNodeId!] ?? {};\n const flat = userInput as any;\n const isPersonneMorale = cfg.personType === 'MORALE';\n\n if (isPersonneMorale) {\n // RL personne morale (délégation de pouvoir) : le SIREN saisi\n // remplace Nom/Prénom — jamais les deux en même temps.\n const sirenKeys = expandFieldKey(cfg.personSirenField ?? '').filter(Boolean);\n submittedSiren = resolveFieldValue(personNodeInput, flat, sirenKeys) ?? '';\n\n if (submittedSiren) {\n comparisonConfig = {\n personType: 'MORALE',\n siren: submittedSiren,\n // Un RBE est toujours une personne physique en droit\n // français : forcé à 'mandataires' quel que soit le\n // contenu de cfg.compareTargets (défense en profondeur).\n compareTargets: ['mandataires'],\n };\n }\n } else {\n const firstNameKeys = expandFieldKey(cfg.personFirstNameField ?? '').filter(Boolean);\n const lastNameKeys = expandFieldKey(cfg.personLastNameField ?? '').filter(Boolean);\n const birthDateKeys = cfg.personBirthDateField\n ? expandFieldKey(cfg.personBirthDateField).filter(Boolean)\n : [];\n\n submittedFirstName = resolveFieldValue(personNodeInput, flat, firstNameKeys) ?? '';\n submittedLastName = resolveFieldValue(personNodeInput, flat, lastNameKeys) ?? '';\n const dateOfBirth = cfg.compareBirthDate && birthDateKeys.length\n ? resolveFieldValue(personNodeInput, flat, birthDateKeys)\n : undefined;\n\n if (submittedFirstName && submittedLastName) {\n comparisonConfig = {\n firstName: submittedFirstName,\n lastName: submittedLastName,\n compareTargets: cfg.compareTargets ?? ['mandataires'],\n ...(dateOfBirth ? { dateOfBirth } : {}),\n };\n }\n }\n }\n\n if (isInpiRbe) advanceStep(1);\n\n try {\n const response = await apiService.post(\n `/session/sdk/${session.id}/verify-external/${node.id}`,\n {\n apiType,\n referenceValue,\n referenceField,\n enableRnaFallback: isInpiRbe && nodeData.rnaFallbackEnabled === true,\n ...(comparisonConfig ? { comparisonConfig } : {}),\n },\n { signal: abortController.signal },\n );\n\n if (isInpiRbe) advanceStep(2);\n await new Promise(r => setTimeout(r, 600));\n\n const res = response.data?.data as VerificationResponsePayload | undefined;\n if (res && typeof res.isVerified === 'boolean') {\n result = res;\n }\n } catch (apiErr: any) {\n if (abortController.signal.aborted) return;\n if (isInpiRbe) advanceStep(2);\n const apiResult = apiErr?.response?.data?.data as VerificationResponsePayload | undefined;\n if (apiResult && typeof apiResult.isVerified === 'boolean') {\n result = apiResult;\n } else {\n result = {\n isVerified: false,\n status: 'external_error',\n message: 'External verification request failed.',\n errorCode: 'REQUEST_FAILED',\n };\n }\n }\n }\n }\n } catch (err) {\n result = {\n isVerified: false,\n status: 'external_error',\n message: 'Unexpected error during verification.',\n errorCode: 'UNEXPECTED_ERROR',\n };\n }\n\n if (abortController.signal.aborted) return;\n\n completeSteps();\n\n setUserInput(prev => ({\n ...prev,\n [node.id]: {\n isVerified: result.isVerified,\n apiType,\n referenceField,\n referenceValueMasked,\n verifiedAt: new Date().toISOString(),\n status: result.status,\n errorCode: result.errorCode,\n message: result.message,\n inpiData: result.inpiData,\n hasError: result.status !== 'ok' && result.status !== 'not_found' && result.status !== 'person_mismatch',\n },\n } as any));\n\n if (result.status === 'person_mismatch') {\n const inpi = result.inpiData;\n const cfg = nodeData.comparisonConfig as InpiComparisonConfigSdk | undefined;\n const isPersonneMorale = cfg?.personType === 'MORALE';\n setErrorScreenData({\n submittedLastName,\n submittedFirstName,\n submittedSiren: isPersonneMorale ? submittedSiren : undefined,\n // En mode personne morale, seuls les mandataires personne morale ont\n // un sens (un RBE est toujours une personne physique) ; en mode\n // physique, comportement inchangé (mandataires individus uniquement).\n mandataires: (inpi?.mandataires ?? []).filter(m =>\n isPersonneMorale ? m.type === 'personne_morale' : m.type === 'individu',\n ),\n beneficiairesEffectifs: inpi?.beneficiairesEffectifs ?? [],\n compareTargets: isPersonneMorale ? ['mandataires'] : (cfg?.compareTargets ?? ['mandataires']),\n personNodeId: cfg?.personReferenceNodeId ?? '',\n targetDenomination: inpi?.identite?.denomination,\n siren: resolvedReferenceValue,\n sirenNodeId: referenceNodeId,\n source: inpi?.source,\n });\n setPhase('mismatch');\n\n } else if (result.status === 'not_found' || result.status === 'invalid_input') {\n setErrorScreenData({\n submittedLastName: '',\n submittedFirstName: '',\n mandataires: [],\n beneficiairesEffectifs: [],\n compareTargets: [],\n personNodeId: '',\n siren: resolvedReferenceValue,\n sirenNodeId: referenceNodeId,\n isDoubleNotFound: result.errorCode === 'NOT_FOUND_RNE_RNA',\n });\n setPhase('not_found');\n\n } else if (result.isVerified || result.status === 'ok') {\n setPhase('success');\n setTimeout(onNext, 1200);\n\n } else if (result.status === 'config_error') {\n setPhase('success');\n setTimeout(onNext, 800);\n\n } else {\n setPhase('error');\n setTimeout(onNext, 1500);\n }\n };\n\n run();\n return () => abortController.abort();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // ─── Navigation helper ────────────────────────────────────────────────────\n\n const handleCorrect = () => {\n if (phase === 'mismatch' && errorScreenData?.personNodeId && onNavigateToNode) {\n onNavigateToNode(errorScreenData.personNodeId);\n } else if (phase === 'not_found' && errorScreenData?.sirenNodeId && onNavigateToNode) {\n onNavigateToNode(errorScreenData.sirenNodeId);\n } else {\n onPrevious();\n }\n };\n\n // ─── Loading phase ─────────────────────────────────────────────────────────\n\n if (phase === 'loading') {\n return (\n <div className=\"flex flex-col justify-between h-full w-full\">\n <div className=\"flex-1 px-4 py-6 pt-11 md:px-8 md:py-8\">\n <div className=\"w-full max-w-md mx-auto space-y-6\">\n <div className=\"text-center space-y-4\">\n <Title className=\"text-xl md:text-2xl lg:text-3xl\">\n {t('verification_node.verifying_title', 'Vérification en cours…')}\n </Title>\n <Subtitle className=\"text-sm text-gray-600 leading-relaxed\">\n {t('verification_node.verifying_desc', 'Nous vérifions vos informations. Cela peut prendre quelques instants.')}\n </Subtitle>\n </div>\n <div className=\"w-full flex justify-center\">\n <div className=\"space-y-5\">\n {steps.map((step, index) => (\n <div key={index} className=\"flex items-start\">\n <div className=\"mr-4 mt-1 flex-shrink-0\">\n {step.status === 'done' ? (\n <div className=\"flex items-center justify-center w-6 h-6 rounded-full bg-[#11E5C5] text-white text-xs\">✓</div>\n ) : step.status === 'active' ? (\n <div className=\"w-6 h-6 rounded-full border-2 border-t-[#11E5C5] border-r-[#11E5C5] border-b-[#11E5C5] border-l-transparent animate-spin\" />\n ) : (\n <div className=\"w-6 h-6 rounded-full border-2 border-gray-300\" />\n )}\n </div>\n <div className=\"flex-1 min-w-0\">\n <p className=\"font-medium text-[#3C3C40] text-sm\">{step.title}</p>\n <p className=\"text-xs text-gray-500 mt-1\">{step.subtitle}</p>\n </div>\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n }\n\n // ─── Success phase ─────────────────────────────────────────────────────────\n\n if (phase === 'success') {\n return (\n <div className=\"flex flex-col items-center justify-center h-full px-6 py-8 text-center space-y-4\">\n <img src={checkIcon} alt=\"success\" className=\"w-24 h-24\" />\n <h3 className=\"text-[#3C3C40] font-poppins text-xl font-bold\">\n {t('inpi_verification.success_title', 'Vérification réussie')}\n </h3>\n <p className=\"text-gray-500 text-sm\">\n {t('inpi_verification.success_desc', \"Passage à l'étape suivante…\")}\n </p>\n </div>\n );\n }\n\n // ─── Mismatch phase ────────────────────────────────────────────────────────\n\n if (phase === 'mismatch') {\n const d = errorScreenData;\n const showBeneficiaires =\n d?.compareTargets?.includes('beneficiairesEffectifs') && (d?.beneficiairesEffectifs?.length ?? 0) > 0;\n const showMandataires =\n (!d?.compareTargets?.length || d?.compareTargets?.includes('mandataires')) &&\n (d?.mandataires?.length ?? 0) > 0;\n const isRna = d?.source === 'RNA';\n const personListLabel = isRna\n ? t('inpi_verification.dirigeants_label', 'Dirigeants renseignés au RNA')\n : d?.compareTargets?.includes('beneficiairesEffectifs') && !d?.compareTargets?.includes('mandataires')\n ? t('inpi_verification.beneficiaires_label', 'Bénéficiaires effectifs renseignés au RNE')\n : d?.compareTargets?.includes('mandataires') && !d?.compareTargets?.includes('beneficiairesEffectifs')\n ? t('inpi_verification.mandataires_label', 'Mandataires renseignés au RNE')\n : t('inpi_verification.persons_label', 'Personnes renseignées au RNE');\n\n return (\n <div className=\"flex flex-col justify-between h-full w-full\">\n <div className=\"flex-1 px-4 py-6 pt-11 md:px-8 md:py-8\">\n <div className=\"w-full max-w-md mx-auto space-y-6\">\n\n {/* Icon */}\n <div className=\"text-center\">\n <div className=\"mx-auto w-16 h-16 bg-red-100 rounded-full flex items-center justify-center mb-4\">\n <div className=\"w-8 h-8 bg-red-500 rounded-full flex items-center justify-center\">\n <span className=\"text-white text-lg\">✕</span>\n </div>\n </div>\n </div>\n\n {/* Header */}\n <div className=\"text-center space-y-4\">\n <Title className=\"text-xl md:text-2xl lg:text-3xl text-red-600\">\n {t('inpi_verification.mismatch_title', 'Identité non confirmée')}\n </Title>\n <Subtitle className=\"text-sm text-gray-600 leading-relaxed\">\n {d?.targetDenomination\n ? t(\n 'inpi_verification.mismatch_desc_denomination',\n `Le responsable légal saisi ne fait pas partie des responsables légaux ou bénéficiaires effectifs de la société ${d.targetDenomination}`,\n )\n : t(\n 'inpi_verification.mismatch_desc',\n \"Les informations saisies ne correspondent à aucune personne déclarée à l'INPI pour cette société.\",\n )}\n </Subtitle>\n </div>\n\n {/* Submitted identity card */}\n {d && (d.submittedLastName || d.submittedFirstName || d.submittedSiren) && (\n <div className=\"bg-red-50 border border-red-200 rounded-lg p-4\">\n <h3 className=\"font-medium text-red-900 mb-2\">\n {t('errors.problems_detected', 'Problèmes détectés')}\n </h3>\n <div className=\"text-sm text-red-800 space-y-1\">\n {d.submittedSiren && (\n <p>\n {t('inpi_verification.submitted_siren', 'SIREN saisi')}\n {' : '}\n <strong>{d.submittedSiren}</strong>\n </p>\n )}\n {d.submittedLastName && (\n <p>\n {t('inpi_verification.submitted_last_name', 'Nom saisi')}\n {' : '}\n <strong>{d.submittedLastName}</strong>\n </p>\n )}\n {d.submittedFirstName && (\n <p>\n {t('inpi_verification.submitted_first_name', 'Prénom saisi')}\n {' : '}\n <strong>{d.submittedFirstName}</strong>\n </p>\n )}\n </div>\n </div>\n )}\n\n {/* INPI persons card */}\n {(showMandataires || showBeneficiaires) && (\n <div className=\"bg-blue-50 border border-blue-200 rounded-lg p-4\">\n <h3 className=\"font-medium text-blue-900 mb-2\">{personListLabel}</h3>\n <div className=\"text-sm text-blue-800 space-y-1\">\n {showMandataires && d!.mandataires.map((m, i) => (\n <p key={`m-${i}`}>\n {m.type === 'personne_morale' ? (\n <>\n <strong>{m.denominationSociale ?? '—'}</strong>\n {m.siren && ` (SIREN ${m.siren})`}\n </>\n ) : (\n <>\n <strong>{m.nom ?? '—'}</strong>\n {(m.prenoms ?? []).length > 0 && ` ${m.prenoms!.join(' ')}`}\n </>\n )}\n </p>\n ))}\n {showBeneficiaires && d!.beneficiairesEffectifs.map((b, i) => (\n <p key={`b-${i}`}>\n <strong>{b.nom ?? '—'}</strong>\n {(b.prenoms ?? []).length > 0 && ` ${b.prenoms!.join(' ')}`}\n </p>\n ))}\n </div>\n </div>\n )}\n\n </div>\n </div>\n\n {/* Footer */}\n <div className=\"sticky bottom-0 md:static bg-white border-t md:border-t-0 p-4 md:p-0 md:pb-8\">\n <div className=\"w-full max-w-md mx-auto\">\n <div className=\"flex flex-col space-y-3 md:hidden\">\n <Button variant=\"secondary\" onClick={handleCorrect} data-cy=\"inpi-mismatch-go-back\">\n {t('inpi_verification.mismatch_correct', 'Corriger ma saisie')}\n </Button>\n {allowContinueOnFailure && (\n <Button onClick={onNext} data-cy=\"inpi-mismatch-continue\">\n {t('inpi_verification.mismatch_continue', 'Continuer quand même')}\n </Button>\n )}\n </div>\n <div className=\"hidden md:flex justify-center space-x-3\">\n <Button variant=\"secondary\" onClick={handleCorrect} data-cy=\"inpi-mismatch-go-back\">\n {t('inpi_verification.mismatch_correct', 'Corriger ma saisie')}\n </Button>\n {allowContinueOnFailure && (\n <Button onClick={onNext} data-cy=\"inpi-mismatch-continue\">\n {t('inpi_verification.mismatch_continue', 'Continuer quand même')}\n </Button>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n }\n\n // ─── Not found phase ───────────────────────────────────────────────────────\n\n if (phase === 'not_found') {\n const d = errorScreenData;\n return (\n <div className=\"flex flex-col justify-between h-full w-full\">\n <div className=\"flex-1 px-4 py-6 pt-11 md:px-8 md:py-8\">\n <div className=\"w-full max-w-md mx-auto space-y-6\">\n\n {/* Icon */}\n <div className=\"text-center\">\n <div className=\"mx-auto w-16 h-16 bg-orange-100 rounded-full flex items-center justify-center mb-4\">\n <div className=\"w-8 h-8 bg-orange-500 rounded-full flex items-center justify-center\">\n <span className=\"text-white text-lg font-bold\">!</span>\n </div>\n </div>\n </div>\n\n {/* Header */}\n <div className=\"text-center space-y-4\">\n <Title className=\"text-xl md:text-2xl lg:text-3xl text-orange-600\">\n {t('inpi_verification.not_found_title', 'Société introuvable')}\n </Title>\n <Subtitle className=\"text-sm text-gray-600 leading-relaxed\">\n {t(\n 'inpi_verification.not_found_desc',\n \"Le numéro saisi ne correspond à aucune société enregistrée dans le Registre National des Entreprises.\",\n )}\n </Subtitle>\n {/* Signal de rejet explicite — une société introuvable n'est plus\n traitée comme un succès silencieux (code 2.6). */}\n <span className=\"inline-block rounded-full bg-red-100 px-3 py-1 text-xs font-semibold text-red-700\">\n {t('inpi_verification.not_found_rejected_label', 'Dossier rejeté')}\n </span>\n </div>\n\n {/* Details card */}\n <div className=\"bg-orange-50 border border-orange-200 rounded-lg p-4\">\n <h3 className=\"font-medium text-orange-900 mb-2\">\n {t('errors.problems_detected', 'Problèmes détectés')}\n </h3>\n <div className=\"text-sm text-orange-800 space-y-1\">\n {d?.siren && (\n <p>\n {t('inpi_verification.siren_label', 'SIREN')}\n {' : '}\n <strong>{d.siren}</strong>\n </p>\n )}\n <p>\n {d?.isDoubleNotFound\n ? t(\n 'inpi_verification.not_found_detail_rne_rna',\n \"Aucune société ni association trouvée, ni dans le Registre National des Entreprises (RNE), ni dans le Répertoire National des Associations (RNA).\",\n )\n : t('inpi_verification.not_found_detail', 'Aucune société trouvée dans le Registre National des Entreprises.')}\n </p>\n </div>\n </div>\n\n </div>\n </div>\n\n {/* Footer */}\n <div className=\"sticky bottom-0 md:static bg-white border-t md:border-t-0 p-4 md:p-0 md:pb-8\">\n <div className=\"w-full max-w-md mx-auto\">\n <div className=\"flex flex-col space-y-3 md:hidden\">\n <Button variant=\"secondary\" onClick={handleCorrect} data-cy=\"inpi-not-found-go-back\">\n {t('inpi_verification.mismatch_correct', 'Corriger ma saisie')}\n </Button>\n {allowContinueOnFailure && (\n <Button onClick={onNext} data-cy=\"inpi-not-found-continue\">\n {t('inpi_verification.mismatch_continue', 'Continuer quand même')}\n </Button>\n )}\n </div>\n <div className=\"hidden md:flex justify-center space-x-3\">\n <Button variant=\"secondary\" onClick={handleCorrect} data-cy=\"inpi-not-found-go-back\">\n {t('inpi_verification.mismatch_correct', 'Corriger ma saisie')}\n </Button>\n {allowContinueOnFailure && (\n <Button onClick={onNext} data-cy=\"inpi-not-found-continue\">\n {t('inpi_verification.mismatch_continue', 'Continuer quand même')}\n </Button>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n }\n\n // ─── Error / fallback ─────────────────────────────────────────────────────\n\n return (\n <LoadingState\n message={t('verification_node.verifying_title', 'Vérification en cours…')}\n subtitle={t('verification_node.verifying_desc', 'Vérification en cours…')}\n />\n );\n};\n\nexport default ExternalVerificationNodeHandler;\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"ExternalVerificationNodeHandler.js","sources":["../../../../../src/components/template/ExternalVerificationNodeHandler.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport sdkI18n from '../../i18n';\nimport { apiService } from '../../services/api';\nimport checkIcon from '../../assets/check.svg';\nimport LoadingState from '../states/LoadingState';\nimport Title from '../ui/Title';\nimport Subtitle from '../ui/Subtitle';\nimport Button from '../ui/Button';\nimport type { SessionData, SessionTemplateNode } from '../../types/session';\nimport type { UserInput } from '../../types/userInput';\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\ntype VerificationStatus =\n | 'ok'\n | 'not_found'\n | 'invalid_input'\n | 'config_error'\n | 'external_error'\n | 'person_mismatch';\n\ninterface InpiMandataire {\n type: 'individu' | 'personne_morale';\n nom?: string;\n prenoms?: string[];\n dateDeNaissance?: string;\n denominationSociale?: string;\n siren?: string;\n}\n\ninterface InpiVerificationData {\n identite?: { denomination?: string; siren?: string; dateImmat?: string };\n mandataires?: InpiMandataire[];\n beneficiairesEffectifs?: Array<{ nom?: string; prenoms?: string[]; dateDeNaissance?: string }>;\n comparison?: { matched: boolean; matchedPersonType?: string; targets: string[] };\n /** Real registry the data was resolved from — RNE directly, or the RNA fallback for associations. */\n source?: 'RNE' | 'RNA';\n}\n\n/** RL personne morale (délégation de pouvoir) : configuré par le concepteur du\n * parcours sur le nœud external-verification — jamais choisi par l'utilisateur\n * final. Absent/'PHYSIQUE' = comportement actuel inchangé (Nom/Prénom). */\ninterface InpiComparisonConfigSdk {\n personType?: 'PHYSIQUE' | 'MORALE';\n personReferenceNodeId?: string;\n personFirstNameField?: string;\n personLastNameField?: string;\n /** Mode MORALE uniquement : champ (du même nœud source) contenant le SIREN saisi. */\n personSirenField?: string;\n compareTargets?: Array<'beneficiairesEffectifs' | 'mandataires'>;\n compareBirthDate?: boolean;\n personBirthDateField?: string;\n}\n\ninterface VerificationResponsePayload {\n isVerified: boolean;\n status: VerificationStatus;\n message?: string;\n errorCode?: string;\n inpiData?: InpiVerificationData;\n}\n\n// Data needed to render the error screens after API response\ninterface ErrorScreenData {\n // person_mismatch\n submittedLastName: string;\n submittedFirstName: string;\n /** RL personne morale (personType: MORALE) : SIREN saisi par le délégataire. */\n submittedSiren?: string;\n mandataires: InpiMandataire[];\n beneficiairesEffectifs: Array<{ nom?: string; prenoms?: string[] }>;\n compareTargets: string[];\n personNodeId: string; // for \"Corriger ma saisie\" navigation\n // Dénomination sociale de la société cible (message de rejet, ticket codes INPI)\n targetDenomination?: string;\n // not_found / invalid_input\n siren: string;\n sirenNodeId: string; // for \"Corriger ma saisie\" navigation\n // Real registry the data came from — undefined when neither RNE nor RNA found anything.\n source?: 'RNE' | 'RNA';\n // True when both RNE and RNA were tried and neither found the entity.\n isDoubleNotFound?: boolean;\n /** Le registre n'a pas été interrogé : aucune valeur de référence lisible. */\n isValueMissing?: boolean;\n}\n\ninterface ExternalVerificationNodeHandlerProps {\n node: SessionTemplateNode;\n session: SessionData;\n userInput: UserInput;\n setUserInput: React.Dispatch<React.SetStateAction<UserInput>>;\n onNext: () => void;\n onPrevious: () => void;\n /** Navigate to a specific journey node by ID (used for \"Corriger ma saisie\") */\n onNavigateToNode?: (nodeId: string) => void;\n}\n\n// ─── Helpers ──────────────────────────────────────────────────────────────────\n\nconst FIELD_ALIASES: Record<'siren' | 'siret', string[]> = {\n siren: ['siren', 'siren_number', 'company_siren', 'legal_siren', 'num_siren'],\n siret: ['siret', 'siret_number', 'company_siret', 'legal_siret', 'num_siret'],\n};\n\nconst STANDARD_FIELD_ALIASES: Record<string, string[]> = {\n prenom: ['firstName', 'first_name', 'prenom'],\n nom: ['lastName', 'last_name', 'surname', 'familyName', 'nom'],\n date_naissance: ['birthDate', 'birth_date', 'dateOfBirth', 'date_naissance'],\n // Champs d'un nœud identity-legal-rep (RL) : la clé de config (builder) diffère\n // de la clé réellement soumise par LegalRepFields — sans cet alias, la\n // résolution échouait silencieusement dès qu'un nœud identity-legal-rep était\n // choisi comme \"Nœud source Nom/Prénom\" (compareTargets ne trouvait jamais la\n // valeur, causant un person_mismatch systématique).\n legalRepresentativePrenom: ['legalRepresentativeFirstName', 'legalRepresentativePrenom'],\n legalRepresentativeNom: ['legalRepresentativeLastName', 'legalRepresentativeNom'],\n};\n\nconst normalizeReferenceField = (field?: string): 'siren' | 'siret' | undefined => {\n if (!field) return undefined;\n const n = field.toLowerCase().replace(/[\\s_.-]/g, '');\n if (n.includes('siret')) return 'siret';\n if (n.includes('siren')) return 'siren';\n return undefined;\n};\n\nconst maskReferenceValue = (value: string): string => {\n const clean = value.replace(/\\s+/g, '');\n if (!clean) return '';\n if (clean.length <= 4) return '****';\n return `${'*'.repeat(clean.length - 4)}${clean.slice(-4)}`;\n};\n\nconst resolveFieldValue = (nodeInput: any, userInputFlat: any, keys: string[]): string | undefined => {\n for (const key of keys) {\n const candidate =\n nodeInput?.[key] ??\n nodeInput?.customFormData?.[key] ??\n userInputFlat?.customFormData?.[key] ??\n userInputFlat?.[key];\n if (candidate !== undefined && candidate !== null && `${candidate}`.trim() !== '') {\n return String(candidate);\n }\n }\n return undefined;\n};\n\n/** Clés désignant le numéro d'un tiers, jamais celui de la société vérifiée. */\nconst THIRD_PARTY_KEY_MARKERS = ['legalrepresentative', 'representantlegal', 'mandataire', 'beneficiaire'];\n\nconst normalizeKeyName = (key: string): string => key.toLowerCase().replace(/[\\s_.\\-]/g, '');\n\n/**\n * Cherche une valeur dont le *nom de clé* désigne le champ recherché.\n *\n * Un formulaire personnalisé ne stocke jamais sous la clé canonique `siren` :\n * il écrit sous une clé dérivée du label (\"N° de SIREN\" → \"n_de_siren\") et,\n * pour la rétrocompatibilité, sous l'identifiant technique du champ\n * (\"custom-field-1779…\"). Ni l'une ni l'autre ne figure dans FIELD_ALIASES, qui\n * ne connaît que des noms canoniques : la résolution nominale échouait donc pour\n * tout formulaire personnalisé, et seule l'heuristique de repli — « n'importe\n * quelle suite de 9 chiffres » — rattrapait le cas, au risque d'envoyer au\n * registre le premier nombre venu (numéro de compte, référence interne).\n *\n * On reconnaît ici la clé par son nom, comme le fait déjà la configuration côté\n * builder (`normalizeReferenceField`), en écartant les numéros d'un tiers.\n */\nconst findValueByKeyName = (\n sources: Array<Record<string, unknown> | undefined>,\n referenceField: 'siren' | 'siret',\n): string | undefined => {\n for (const source of sources) {\n if (!source || typeof source !== 'object') continue;\n for (const [key, value] of Object.entries(source)) {\n if (typeof value !== 'string' && typeof value !== 'number') continue;\n if (`${value}`.trim() === '') continue;\n const normalized = normalizeKeyName(key);\n if (!normalized.includes(referenceField)) continue;\n if (THIRD_PARTY_KEY_MARKERS.some(marker => normalized.includes(marker))) continue;\n return String(value);\n }\n }\n return undefined;\n};\n\nconst expandFieldKey = (key: string): string[] => [key, ...(STANDARD_FIELD_ALIASES[key] ?? [])];\n\n// ─── Loader step type ─────────────────────────────────────────────────────────\n\ntype LoaderStep = { title: string; subtitle: string; status: 'pending' | 'active' | 'done' };\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\nconst ExternalVerificationNodeHandler: React.FC<ExternalVerificationNodeHandlerProps> = ({\n node,\n session,\n userInput,\n setUserInput,\n onNext,\n onPrevious,\n onNavigateToNode,\n}) => {\n const { t } = useTranslation('translation', { i18n: sdkI18n });\n\n const nodeData = node as any;\n const apiType = String(nodeData.targetApi || 'INSEE');\n const isInpiRbe = apiType === 'INPI_RBE';\n // Paramétrable depuis le journey builder (panneau \"Configuration de la base\n // externe\"), par nœud. Absent/true = comportement actuel inchangé.\n const allowContinueOnFailure = nodeData.allowContinueOnFailure !== false;\n\n const [phase, setPhase] = useState<'loading' | 'success' | 'mismatch' | 'not_found' | 'error'>('loading');\n const [errorScreenData, setErrorScreenData] = useState<ErrorScreenData | null>(null);\n\n const [steps, setSteps] = useState<LoaderStep[]>(() => {\n if (isInpiRbe) {\n return [\n {\n // Générique : le backend interroge le RNE puis, si besoin, le RNA en\n // fallback (associations) via un seul appel — la source réelle n'est\n // connue qu'à la réponse finale (cf. inpiData.source).\n title: t('inpi_verification.step1', 'Vérification du SIREN auprès des registres officiels'),\n subtitle: t('inpi_verification.step1_sub', 'Connexion aux registres RNE et RNA'),\n status: 'active',\n },\n {\n title: t('inpi_verification.step2', \"Récupération des données d'identité\"),\n subtitle: t('inpi_verification.step2_sub', 'Lecture des informations légales et des responsables'),\n status: 'pending',\n },\n {\n title: t('inpi_verification.step3', 'Comparaison avec les données saisies'),\n subtitle: t('inpi_verification.step3_sub', 'Vérification de la concordance des informations'),\n status: 'pending',\n },\n ];\n }\n return [{\n title: t('verification_node.verifying_title', 'Vérification en cours…'),\n subtitle: t('verification_node.verifying_desc', 'Connexion au service externe'),\n status: 'active',\n }];\n });\n\n const advanceStep = (index: number) => {\n setSteps(prev =>\n prev.map((s, i) => {\n if (i < index) return { ...s, status: 'done' };\n if (i === index) return { ...s, status: 'active' };\n return s;\n }),\n );\n };\n\n const completeSteps = () => setSteps(prev => prev.map(s => ({ ...s, status: 'done' })));\n\n useEffect(() => {\n const abortController = new AbortController();\n\n const run = async () => {\n let result: VerificationResponsePayload = {\n isVerified: false,\n status: 'external_error',\n message: 'Verification did not run.',\n };\n let referenceField: 'siren' | 'siret' | undefined;\n let referenceValueMasked = '';\n let resolvedReferenceValue = '';\n const referenceNodeId = String(nodeData.referenceNodeId || '');\n const referenceVariable = String(nodeData.referenceVariable || '');\n let submittedFirstName = '';\n let submittedLastName = '';\n let submittedSiren = '';\n\n try {\n if (!session?.id) throw new Error('Session ID is missing');\n\n referenceField = normalizeReferenceField(\n String(nodeData.referenceField || referenceVariable || ''),\n );\n\n if (!referenceNodeId || !referenceField) {\n result = {\n isVerified: false,\n status: 'config_error',\n message: 'External verification node is missing reference configuration.',\n errorCode: 'MISSING_REFERENCE_CONFIG',\n };\n } else {\n const nodeInput = (userInput as any)[referenceNodeId];\n const userInputFlat = userInput as any;\n const lookupKeys = Array.from(\n new Set([referenceVariable, referenceField, ...FIELD_ALIASES[referenceField]].filter(Boolean)),\n );\n\n let referenceValue = resolveFieldValue(nodeInput, userInputFlat, lookupKeys);\n\n // 2e passe : la clé porte le nom du champ sans être canonique\n // (cas de tout formulaire personnalisé).\n if (!referenceValue) {\n referenceValue = findValueByKeyName(\n [nodeInput, nodeInput?.customFormData, userInputFlat?.customFormData, userInputFlat],\n referenceField,\n );\n }\n\n // 3e passe, heuristique : aucune clé ne nomme le champ, on\n // retient une valeur au bon format. Volontairement en dernier,\n // elle ne distingue pas un SIREN d'un autre nombre à 9 chiffres.\n if (!referenceValue) {\n const allCustomFields = {\n ...(userInputFlat || {}),\n ...(userInputFlat?.customFormData || {}),\n ...(nodeInput?.customFormData || {}),\n ...(nodeInput || {}),\n };\n for (const [, value] of Object.entries(allCustomFields)) {\n if (typeof value !== 'string' && typeof value !== 'number') continue;\n const str = String(value).replace(/\\s+/g, '');\n if (referenceField === 'siren' && /^\\d{9}$/.test(str)) { referenceValue = str; break; }\n if (referenceField === 'siret' && /^\\d{14}$/.test(str)) { referenceValue = str; break; }\n }\n }\n\n if (!referenceValue) {\n // Chemin muet jusqu'ici : ni appel réseau, ni trace serveur.\n // On journalise les noms de clés disponibles — jamais leurs\n // valeurs, qui sont des données personnelles.\n console.warn(\n '[ExternalVerification] Aucune valeur %s trouvée pour le nœud source %s. Clés disponibles : %s',\n referenceField,\n referenceNodeId,\n Object.keys({ ...(userInputFlat || {}), ...(userInputFlat?.customFormData || {}), ...(nodeInput || {}) }).join(', '),\n );\n result = {\n isVerified: false,\n status: 'invalid_input',\n message: 'No SIREN/SIRET value found in source node data.',\n errorCode: 'REFERENCE_VALUE_NOT_FOUND',\n };\n } else {\n resolvedReferenceValue = referenceValue;\n referenceValueMasked = maskReferenceValue(referenceValue);\n\n let comparisonConfig: Record<string, unknown> | undefined;\n if (isInpiRbe && nodeData.comparisonConfig?.personReferenceNodeId) {\n const cfg = nodeData.comparisonConfig as InpiComparisonConfigSdk;\n const personNodeInput = (userInput as any)[cfg.personReferenceNodeId!] ?? {};\n const flat = userInput as any;\n const isPersonneMorale = cfg.personType === 'MORALE';\n\n if (isPersonneMorale) {\n // RL personne morale (délégation de pouvoir) : le SIREN saisi\n // remplace Nom/Prénom — jamais les deux en même temps.\n const sirenKeys = expandFieldKey(cfg.personSirenField ?? '').filter(Boolean);\n submittedSiren = resolveFieldValue(personNodeInput, flat, sirenKeys) ?? '';\n\n if (submittedSiren) {\n comparisonConfig = {\n personType: 'MORALE',\n siren: submittedSiren,\n // Un RBE est toujours une personne physique en droit\n // français : forcé à 'mandataires' quel que soit le\n // contenu de cfg.compareTargets (défense en profondeur).\n compareTargets: ['mandataires'],\n };\n }\n } else {\n const firstNameKeys = expandFieldKey(cfg.personFirstNameField ?? '').filter(Boolean);\n const lastNameKeys = expandFieldKey(cfg.personLastNameField ?? '').filter(Boolean);\n const birthDateKeys = cfg.personBirthDateField\n ? expandFieldKey(cfg.personBirthDateField).filter(Boolean)\n : [];\n\n submittedFirstName = resolveFieldValue(personNodeInput, flat, firstNameKeys) ?? '';\n submittedLastName = resolveFieldValue(personNodeInput, flat, lastNameKeys) ?? '';\n const dateOfBirth = cfg.compareBirthDate && birthDateKeys.length\n ? resolveFieldValue(personNodeInput, flat, birthDateKeys)\n : undefined;\n\n if (submittedFirstName && submittedLastName) {\n comparisonConfig = {\n firstName: submittedFirstName,\n lastName: submittedLastName,\n compareTargets: cfg.compareTargets ?? ['mandataires'],\n ...(dateOfBirth ? { dateOfBirth } : {}),\n };\n }\n }\n }\n\n if (isInpiRbe) advanceStep(1);\n\n try {\n const response = await apiService.post(\n `/session/sdk/${session.id}/verify-external/${node.id}`,\n {\n apiType,\n referenceValue,\n referenceField,\n enableRnaFallback: isInpiRbe && nodeData.rnaFallbackEnabled === true,\n ...(comparisonConfig ? { comparisonConfig } : {}),\n },\n { signal: abortController.signal },\n );\n\n if (isInpiRbe) advanceStep(2);\n await new Promise(r => setTimeout(r, 600));\n\n const res = response.data?.data as VerificationResponsePayload | undefined;\n if (res && typeof res.isVerified === 'boolean') {\n result = res;\n }\n } catch (apiErr: any) {\n if (abortController.signal.aborted) return;\n if (isInpiRbe) advanceStep(2);\n const apiResult = apiErr?.response?.data?.data as VerificationResponsePayload | undefined;\n if (apiResult && typeof apiResult.isVerified === 'boolean') {\n result = apiResult;\n } else {\n result = {\n isVerified: false,\n status: 'external_error',\n message: 'External verification request failed.',\n errorCode: 'REQUEST_FAILED',\n };\n }\n }\n }\n }\n } catch (err) {\n result = {\n isVerified: false,\n status: 'external_error',\n message: 'Unexpected error during verification.',\n errorCode: 'UNEXPECTED_ERROR',\n };\n }\n\n if (abortController.signal.aborted) return;\n\n completeSteps();\n\n setUserInput(prev => ({\n ...prev,\n [node.id]: {\n isVerified: result.isVerified,\n apiType,\n referenceField,\n referenceValueMasked,\n verifiedAt: new Date().toISOString(),\n status: result.status,\n errorCode: result.errorCode,\n message: result.message,\n inpiData: result.inpiData,\n hasError: result.status !== 'ok' && result.status !== 'not_found' && result.status !== 'person_mismatch',\n },\n } as any));\n\n if (result.status === 'person_mismatch') {\n const inpi = result.inpiData;\n const cfg = nodeData.comparisonConfig as InpiComparisonConfigSdk | undefined;\n const isPersonneMorale = cfg?.personType === 'MORALE';\n setErrorScreenData({\n submittedLastName,\n submittedFirstName,\n submittedSiren: isPersonneMorale ? submittedSiren : undefined,\n // En mode personne morale, seuls les mandataires personne morale ont\n // un sens (un RBE est toujours une personne physique) ; en mode\n // physique, comportement inchangé (mandataires individus uniquement).\n mandataires: (inpi?.mandataires ?? []).filter(m =>\n isPersonneMorale ? m.type === 'personne_morale' : m.type === 'individu',\n ),\n beneficiairesEffectifs: inpi?.beneficiairesEffectifs ?? [],\n compareTargets: isPersonneMorale ? ['mandataires'] : (cfg?.compareTargets ?? ['mandataires']),\n personNodeId: cfg?.personReferenceNodeId ?? '',\n targetDenomination: inpi?.identite?.denomination,\n siren: resolvedReferenceValue,\n sirenNodeId: referenceNodeId,\n source: inpi?.source,\n });\n setPhase('mismatch');\n\n } else if (result.status === 'not_found' || result.status === 'invalid_input') {\n setErrorScreenData({\n submittedLastName: '',\n submittedFirstName: '',\n mandataires: [],\n beneficiairesEffectifs: [],\n compareTargets: [],\n personNodeId: '',\n siren: resolvedReferenceValue,\n sirenNodeId: referenceNodeId,\n isDoubleNotFound: result.errorCode === 'NOT_FOUND_RNE_RNA',\n isValueMissing: result.errorCode === 'REFERENCE_VALUE_NOT_FOUND',\n });\n setPhase('not_found');\n\n } else if (result.isVerified || result.status === 'ok') {\n setPhase('success');\n setTimeout(onNext, 1200);\n\n } else if (result.status === 'config_error') {\n setPhase('success');\n setTimeout(onNext, 800);\n\n } else {\n setPhase('error');\n setTimeout(onNext, 1500);\n }\n };\n\n run();\n return () => abortController.abort();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // ─── Navigation helper ────────────────────────────────────────────────────\n\n const handleCorrect = () => {\n if (phase === 'mismatch' && errorScreenData?.personNodeId && onNavigateToNode) {\n onNavigateToNode(errorScreenData.personNodeId);\n } else if (phase === 'not_found' && errorScreenData?.sirenNodeId && onNavigateToNode) {\n onNavigateToNode(errorScreenData.sirenNodeId);\n } else {\n onPrevious();\n }\n };\n\n // ─── Loading phase ─────────────────────────────────────────────────────────\n\n if (phase === 'loading') {\n return (\n <div className=\"flex flex-col justify-between h-full w-full\">\n <div className=\"flex-1 px-4 py-6 pt-11 md:px-8 md:py-8\">\n <div className=\"w-full max-w-md mx-auto space-y-6\">\n <div className=\"text-center space-y-4\">\n <Title className=\"text-xl md:text-2xl lg:text-3xl\">\n {t('verification_node.verifying_title', 'Vérification en cours…')}\n </Title>\n <Subtitle className=\"text-sm text-gray-600 leading-relaxed\">\n {t('verification_node.verifying_desc', 'Nous vérifions vos informations. Cela peut prendre quelques instants.')}\n </Subtitle>\n </div>\n <div className=\"w-full flex justify-center\">\n <div className=\"space-y-5\">\n {steps.map((step, index) => (\n <div key={index} className=\"flex items-start\">\n <div className=\"mr-4 mt-1 flex-shrink-0\">\n {step.status === 'done' ? (\n <div className=\"flex items-center justify-center w-6 h-6 rounded-full bg-[#11E5C5] text-white text-xs\">✓</div>\n ) : step.status === 'active' ? (\n <div className=\"w-6 h-6 rounded-full border-2 border-t-[#11E5C5] border-r-[#11E5C5] border-b-[#11E5C5] border-l-transparent animate-spin\" />\n ) : (\n <div className=\"w-6 h-6 rounded-full border-2 border-gray-300\" />\n )}\n </div>\n <div className=\"flex-1 min-w-0\">\n <p className=\"font-medium text-[#3C3C40] text-sm\">{step.title}</p>\n <p className=\"text-xs text-gray-500 mt-1\">{step.subtitle}</p>\n </div>\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n }\n\n // ─── Success phase ─────────────────────────────────────────────────────────\n\n if (phase === 'success') {\n return (\n <div className=\"flex flex-col items-center justify-center h-full px-6 py-8 text-center space-y-4\">\n <img src={checkIcon} alt=\"success\" className=\"w-24 h-24\" />\n <h3 className=\"text-[#3C3C40] font-poppins text-xl font-bold\">\n {t('inpi_verification.success_title', 'Vérification réussie')}\n </h3>\n <p className=\"text-gray-500 text-sm\">\n {t('inpi_verification.success_desc', \"Passage à l'étape suivante…\")}\n </p>\n </div>\n );\n }\n\n // ─── Mismatch phase ────────────────────────────────────────────────────────\n\n if (phase === 'mismatch') {\n const d = errorScreenData;\n const showBeneficiaires =\n d?.compareTargets?.includes('beneficiairesEffectifs') && (d?.beneficiairesEffectifs?.length ?? 0) > 0;\n const showMandataires =\n (!d?.compareTargets?.length || d?.compareTargets?.includes('mandataires')) &&\n (d?.mandataires?.length ?? 0) > 0;\n const isRna = d?.source === 'RNA';\n const personListLabel = isRna\n ? t('inpi_verification.dirigeants_label', 'Dirigeants renseignés au RNA')\n : d?.compareTargets?.includes('beneficiairesEffectifs') && !d?.compareTargets?.includes('mandataires')\n ? t('inpi_verification.beneficiaires_label', 'Bénéficiaires effectifs renseignés au RNE')\n : d?.compareTargets?.includes('mandataires') && !d?.compareTargets?.includes('beneficiairesEffectifs')\n ? t('inpi_verification.mandataires_label', 'Mandataires renseignés au RNE')\n : t('inpi_verification.persons_label', 'Personnes renseignées au RNE');\n\n return (\n <div className=\"flex flex-col justify-between h-full w-full\">\n <div className=\"flex-1 px-4 py-6 pt-11 md:px-8 md:py-8\">\n <div className=\"w-full max-w-md mx-auto space-y-6\">\n\n {/* Icon */}\n <div className=\"text-center\">\n <div className=\"mx-auto w-16 h-16 bg-red-100 rounded-full flex items-center justify-center mb-4\">\n <div className=\"w-8 h-8 bg-red-500 rounded-full flex items-center justify-center\">\n <span className=\"text-white text-lg\">✕</span>\n </div>\n </div>\n </div>\n\n {/* Header */}\n <div className=\"text-center space-y-4\">\n <Title className=\"text-xl md:text-2xl lg:text-3xl text-red-600\">\n {t('inpi_verification.mismatch_title', 'Identité non confirmée')}\n </Title>\n <Subtitle className=\"text-sm text-gray-600 leading-relaxed\">\n {d?.targetDenomination\n ? t(\n 'inpi_verification.mismatch_desc_denomination',\n `Le responsable légal saisi ne fait pas partie des responsables légaux ou bénéficiaires effectifs de la société ${d.targetDenomination}`,\n )\n : t(\n 'inpi_verification.mismatch_desc',\n \"Les informations saisies ne correspondent à aucune personne déclarée à l'INPI pour cette société.\",\n )}\n </Subtitle>\n </div>\n\n {/* Submitted identity card */}\n {d && (d.submittedLastName || d.submittedFirstName || d.submittedSiren) && (\n <div className=\"bg-red-50 border border-red-200 rounded-lg p-4\">\n <h3 className=\"font-medium text-red-900 mb-2\">\n {t('errors.problems_detected', 'Problèmes détectés')}\n </h3>\n <div className=\"text-sm text-red-800 space-y-1\">\n {d.submittedSiren && (\n <p>\n {t('inpi_verification.submitted_siren', 'SIREN saisi')}\n {' : '}\n <strong>{d.submittedSiren}</strong>\n </p>\n )}\n {d.submittedLastName && (\n <p>\n {t('inpi_verification.submitted_last_name', 'Nom saisi')}\n {' : '}\n <strong>{d.submittedLastName}</strong>\n </p>\n )}\n {d.submittedFirstName && (\n <p>\n {t('inpi_verification.submitted_first_name', 'Prénom saisi')}\n {' : '}\n <strong>{d.submittedFirstName}</strong>\n </p>\n )}\n </div>\n </div>\n )}\n\n {/* INPI persons card */}\n {(showMandataires || showBeneficiaires) && (\n <div className=\"bg-blue-50 border border-blue-200 rounded-lg p-4\">\n <h3 className=\"font-medium text-blue-900 mb-2\">{personListLabel}</h3>\n <div className=\"text-sm text-blue-800 space-y-1\">\n {showMandataires && d!.mandataires.map((m, i) => (\n <p key={`m-${i}`}>\n {m.type === 'personne_morale' ? (\n <>\n <strong>{m.denominationSociale ?? '—'}</strong>\n {m.siren && ` (SIREN ${m.siren})`}\n </>\n ) : (\n <>\n <strong>{m.nom ?? '—'}</strong>\n {(m.prenoms ?? []).length > 0 && ` ${m.prenoms!.join(' ')}`}\n </>\n )}\n </p>\n ))}\n {showBeneficiaires && d!.beneficiairesEffectifs.map((b, i) => (\n <p key={`b-${i}`}>\n <strong>{b.nom ?? '—'}</strong>\n {(b.prenoms ?? []).length > 0 && ` ${b.prenoms!.join(' ')}`}\n </p>\n ))}\n </div>\n </div>\n )}\n\n </div>\n </div>\n\n {/* Footer */}\n <div className=\"sticky bottom-0 md:static bg-white border-t md:border-t-0 p-4 md:p-0 md:pb-8\">\n <div className=\"w-full max-w-md mx-auto\">\n <div className=\"flex flex-col space-y-3 md:hidden\">\n <Button variant=\"secondary\" onClick={handleCorrect} data-cy=\"inpi-mismatch-go-back\">\n {t('inpi_verification.mismatch_correct', 'Corriger ma saisie')}\n </Button>\n {allowContinueOnFailure && (\n <Button onClick={onNext} data-cy=\"inpi-mismatch-continue\">\n {t('inpi_verification.mismatch_continue', 'Continuer quand même')}\n </Button>\n )}\n </div>\n <div className=\"hidden md:flex justify-center space-x-3\">\n <Button variant=\"secondary\" onClick={handleCorrect} data-cy=\"inpi-mismatch-go-back\">\n {t('inpi_verification.mismatch_correct', 'Corriger ma saisie')}\n </Button>\n {allowContinueOnFailure && (\n <Button onClick={onNext} data-cy=\"inpi-mismatch-continue\">\n {t('inpi_verification.mismatch_continue', 'Continuer quand même')}\n </Button>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n }\n\n // ─── Not found phase ───────────────────────────────────────────────────────\n\n if (phase === 'not_found') {\n const d = errorScreenData;\n return (\n <div className=\"flex flex-col justify-between h-full w-full\">\n <div className=\"flex-1 px-4 py-6 pt-11 md:px-8 md:py-8\">\n <div className=\"w-full max-w-md mx-auto space-y-6\">\n\n {/* Icon */}\n <div className=\"text-center\">\n <div className=\"mx-auto w-16 h-16 bg-orange-100 rounded-full flex items-center justify-center mb-4\">\n <div className=\"w-8 h-8 bg-orange-500 rounded-full flex items-center justify-center\">\n <span className=\"text-white text-lg font-bold\">!</span>\n </div>\n </div>\n </div>\n\n {/* Header — quand aucune valeur n'a pu être lue, le registre\n n'a jamais été interrogé : le dire, plutôt que d'affirmer\n que le numéro y est inconnu et de rejeter le dossier. */}\n <div className=\"text-center space-y-4\">\n <Title className=\"text-xl md:text-2xl lg:text-3xl text-orange-600\">\n {d?.isValueMissing\n ? t('inpi_verification.missing_value_title', 'Numéro non renseigné')\n : t('inpi_verification.not_found_title', 'Société introuvable')}\n </Title>\n <Subtitle className=\"text-sm text-gray-600 leading-relaxed\">\n {d?.isValueMissing\n ? t(\n 'inpi_verification.missing_value_desc',\n \"Aucun numéro SIREN ou SIRET n'a été trouvé dans les informations saisies : la vérification n'a pas pu être lancée.\",\n )\n : t(\n 'inpi_verification.not_found_desc',\n \"Le numéro saisi ne correspond à aucune société enregistrée dans le Registre National des Entreprises.\",\n )}\n </Subtitle>\n {/* Signal de rejet explicite — une société introuvable n'est plus\n traitée comme un succès silencieux (code 2.6). */}\n {!d?.isValueMissing && (\n <span className=\"inline-block rounded-full bg-red-100 px-3 py-1 text-xs font-semibold text-red-700\">\n {t('inpi_verification.not_found_rejected_label', 'Dossier rejeté')}\n </span>\n )}\n </div>\n\n {/* Details card */}\n <div className=\"bg-orange-50 border border-orange-200 rounded-lg p-4\">\n <h3 className=\"font-medium text-orange-900 mb-2\">\n {t('errors.problems_detected', 'Problèmes détectés')}\n </h3>\n <div className=\"text-sm text-orange-800 space-y-1\">\n {d?.siren && (\n <p>\n {t('inpi_verification.siren_label', 'SIREN')}\n {' : '}\n <strong>{d.siren}</strong>\n </p>\n )}\n <p>\n {d?.isValueMissing\n ? t(\n 'inpi_verification.missing_value_detail',\n \"Le champ SIREN/SIRET du formulaire est vide ou n'a pas pu être lu.\",\n )\n : d?.isDoubleNotFound\n ? t(\n 'inpi_verification.not_found_detail_rne_rna',\n \"Aucune société ni association trouvée, ni dans le Registre National des Entreprises (RNE), ni dans le Répertoire National des Associations (RNA).\",\n )\n : t('inpi_verification.not_found_detail', 'Aucune société trouvée dans le Registre National des Entreprises.')}\n </p>\n </div>\n </div>\n\n </div>\n </div>\n\n {/* Footer */}\n <div className=\"sticky bottom-0 md:static bg-white border-t md:border-t-0 p-4 md:p-0 md:pb-8\">\n <div className=\"w-full max-w-md mx-auto\">\n <div className=\"flex flex-col space-y-3 md:hidden\">\n <Button variant=\"secondary\" onClick={handleCorrect} data-cy=\"inpi-not-found-go-back\">\n {t('inpi_verification.mismatch_correct', 'Corriger ma saisie')}\n </Button>\n {allowContinueOnFailure && (\n <Button onClick={onNext} data-cy=\"inpi-not-found-continue\">\n {t('inpi_verification.mismatch_continue', 'Continuer quand même')}\n </Button>\n )}\n </div>\n <div className=\"hidden md:flex justify-center space-x-3\">\n <Button variant=\"secondary\" onClick={handleCorrect} data-cy=\"inpi-not-found-go-back\">\n {t('inpi_verification.mismatch_correct', 'Corriger ma saisie')}\n </Button>\n {allowContinueOnFailure && (\n <Button onClick={onNext} data-cy=\"inpi-not-found-continue\">\n {t('inpi_verification.mismatch_continue', 'Continuer quand même')}\n </Button>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n }\n\n // ─── Error / fallback ─────────────────────────────────────────────────────\n\n return (\n <LoadingState\n message={t('verification_node.verifying_title', 'Vérification en cours…')}\n subtitle={t('verification_node.verifying_desc', 'Vérification en cours…')}\n />\n );\n};\n\nexport default ExternalVerificationNodeHandler;\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
@@ -9,13 +9,13 @@ import DatakeenSession from '../components/DatakeenSession.js';
9
9
  * @param {string} apiBaseUrl - Optional API base URL for dynamic environment configuration.
10
10
  * @returns {UseSessionReturn} - An object containing the session component. The session component is a React element that can be rendered in your application.
11
11
  */
12
- var useSession = function (sessionId, sessionConfig, apiBaseUrl) {
12
+ var useSession = function (sessionId, sessionConfig, apiBaseUrl, sessionToken) {
13
13
  var SessionComponent = useMemo(function () {
14
14
  if (!sessionId) {
15
15
  return jsx("div", { children: "No session ID provided." });
16
16
  }
17
- return (jsx(DatakeenSession, { sessionId: sessionId, sessionConfig: sessionConfig, apiBaseUrl: apiBaseUrl }));
18
- }, [sessionId, sessionConfig, apiBaseUrl]);
17
+ return (jsx(DatakeenSession, { sessionId: sessionId, sessionToken: sessionToken, sessionConfig: sessionConfig, apiBaseUrl: apiBaseUrl }));
18
+ }, [sessionId, sessionConfig, apiBaseUrl, sessionToken]);
19
19
  return {
20
20
  SessionComponent: SessionComponent,
21
21
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useSession.js","sources":["../../../../src/hooks/useSession.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport DatakeenSession from \"../components/DatakeenSession\";\nimport type { UseSessionReturn, SessionConfig } from \"../types/session\";\n\n/**\n * Custom hook to manage the session component.\n * @param {string} sessionId - The ID of the session.\n * @param {SessionConfig} sessionConfig - Configuration for the session (optional).\n * @param {string} apiBaseUrl - Optional API base URL for dynamic environment configuration.\n * @returns {UseSessionReturn} - An object containing the session component. The session component is a React element that can be rendered in your application.\n */\nconst useSession = (\n sessionId: string,\n sessionConfig?: SessionConfig,\n apiBaseUrl?: string\n): UseSessionReturn => {\n const SessionComponent = useMemo(() => {\n if (!sessionId) {\n return <div>No session ID provided.</div>;\n }\n return (\n <DatakeenSession\n sessionId={sessionId}\n sessionConfig={sessionConfig}\n apiBaseUrl={apiBaseUrl}\n />\n );\n }, [sessionId, sessionConfig, apiBaseUrl]);\n\n return {\n SessionComponent,\n };\n};\n\nexport default useSession;\n"],"names":["_jsx"],"mappings":";;;;AAIA;;;;;;AAMG;AACH,IAAM,UAAU,GAAG,UACjB,SAAiB,EACjB,aAA6B,EAC7B,UAAmB,EAAA;IAEnB,IAAM,gBAAgB,GAAG,OAAO,CAAC,YAAA;QAC/B,IAAI,CAAC,SAAS,EAAE;AACd,YAAA,OAAOA,mDAAkC;QAC3C;AACA,QAAA,QACEA,GAAA,CAAC,eAAe,EAAA,EACd,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EAAA,CACtB;IAEN,CAAC,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;IAE1C,OAAO;AACL,QAAA,gBAAgB,EAAA,gBAAA;KACjB;AACH;;;;"}
1
+ {"version":3,"file":"useSession.js","sources":["../../../../src/hooks/useSession.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport DatakeenSession from \"../components/DatakeenSession\";\nimport type { UseSessionReturn, SessionConfig } from \"../types/session\";\n\n/**\n * Custom hook to manage the session component.\n * @param {string} sessionId - The ID of the session.\n * @param {SessionConfig} sessionConfig - Configuration for the session (optional).\n * @param {string} apiBaseUrl - Optional API base URL for dynamic environment configuration.\n * @returns {UseSessionReturn} - An object containing the session component. The session component is a React element that can be rendered in your application.\n */\nconst useSession = (\n sessionId: string,\n sessionConfig?: SessionConfig,\n apiBaseUrl?: string,\n sessionToken?: string\n): UseSessionReturn => {\n const SessionComponent = useMemo(() => {\n if (!sessionId) {\n return <div>No session ID provided.</div>;\n }\n return (\n <DatakeenSession\n sessionId={sessionId}\n sessionToken={sessionToken}\n sessionConfig={sessionConfig}\n apiBaseUrl={apiBaseUrl}\n />\n );\n }, [sessionId, sessionConfig, apiBaseUrl, sessionToken]);\n\n return {\n SessionComponent,\n };\n};\n\nexport default useSession;\n"],"names":["_jsx"],"mappings":";;;;AAIA;;;;;;AAMG;AACH,IAAM,UAAU,GAAG,UACjB,SAAiB,EACjB,aAA6B,EAC7B,UAAmB,EACnB,YAAqB,EAAA;IAErB,IAAM,gBAAgB,GAAG,OAAO,CAAC,YAAA;QAC/B,IAAI,CAAC,SAAS,EAAE;AACd,YAAA,OAAOA,mDAAkC;QAC3C;QACA,QACEA,IAAC,eAAe,EAAA,EACd,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EAAA,CACtB;IAEN,CAAC,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IAExD,OAAO;AACL,QAAA,gBAAgB,EAAA,gBAAA;KACjB;AACH;;;;"}
@@ -2,6 +2,7 @@ import { __assign, __rest, __awaiter, __generator } from '../node_modules/tslib/
2
2
  import { useMemo, useState, useRef, useEffect } from 'react';
3
3
  import { DEFAULT_FIELDS, FALLBACK_ADDRESS_SUGGESTIONS, GEOCODING_AUTOCOMPLETE_ENDPOINT } from '../constants/userInputForm.js';
4
4
  import { API_BASE_URL } from '../config/env.js';
5
+ import { dedupeCustomFieldIds } from '../utils/customFieldIds.js';
5
6
  import { resolveInformationType, parseBirthDate, checkIsMajor } from '../utils/userInputForm.js';
6
7
  import { getListFieldMinRows, normalizeListColumns, countNonEmptyListRows } from '../utils/listFieldUtils.js';
7
8
  import { cellErrorKey, isRegexMatch, isDateValid, isEmailValid } from '../utils/customFieldValidation.js';
@@ -25,6 +26,10 @@ var useUserInputForm = function (_a) {
25
26
  });
26
27
  return resolved;
27
28
  }, [node.informationType, node.customFields]);
29
+ // Les identifiants portent tout l'état du formulaire : deux champs qui
30
+ // partagent le leur partagent leur valeur. On normalise a la source plutot
31
+ // qu'a chaque point d'usage (cf. dedupeCustomFieldIds).
32
+ var customFields = useMemo(function () { return dedupeCustomFieldIds(node.customFields); }, [node.customFields]);
28
33
  var requestedFields = useMemo(function () {
29
34
  var defaults = DEFAULT_FIELDS[informationType] || [];
30
35
  var optional = node.optionalFields && node.optionalFields.length > 0
@@ -64,10 +69,10 @@ var useUserInputForm = function (_a) {
64
69
  var _c = useState({}), errors = _c[0], setErrors = _c[1];
65
70
  // Custom form state
66
71
  var _d = useState(function () {
67
- if (informationType !== "custom" || !node.customFields)
72
+ if (informationType !== "custom" || customFields.length === 0)
68
73
  return {};
69
74
  var initial = {};
70
- node.customFields.forEach(function (field) {
75
+ customFields.forEach(function (field) {
71
76
  var _a, _b, _c;
72
77
  var topLevelKey = (_a = field.userInputKey) !== null && _a !== void 0 ? _a : labelToKey(field.label);
73
78
  // Priorité : top level (nouveau format) > customFormData[field.id] (ancien format)
@@ -262,12 +267,12 @@ var useUserInputForm = function (_a) {
262
267
  return;
263
268
  }
264
269
  prevCustomNodeIdRef.current = node.id;
265
- if (informationType !== "custom" || !node.customFields) {
270
+ if (informationType !== "custom" || customFields.length === 0) {
266
271
  setCustomFormData({});
267
272
  return;
268
273
  }
269
274
  var next = {};
270
- node.customFields.forEach(function (field) {
275
+ customFields.forEach(function (field) {
271
276
  var _a, _b, _c;
272
277
  var topLevelKey = (_a = field.userInputKey) !== null && _a !== void 0 ? _a : labelToKey(field.label);
273
278
  var savedValue = (_b = initialUserInput === null || initialUserInput === void 0 ? void 0 : initialUserInput[topLevelKey]) !== null && _b !== void 0 ? _b : (_c = initialUserInput === null || initialUserInput === void 0 ? void 0 : initialUserInput.customFormData) === null || _c === void 0 ? void 0 : _c[field.id];
@@ -278,7 +283,7 @@ var useUserInputForm = function (_a) {
278
283
  next[field.id] = savedValue || "";
279
284
  });
280
285
  setCustomFormData(next);
281
- }, [node.id, informationType, node.customFields, initialUserInput]);
286
+ }, [node.id, informationType, customFields, initialUserInput]);
282
287
  useEffect(function () {
283
288
  return function () {
284
289
  if (hideSuggestionTimeout.current) {
@@ -424,11 +429,10 @@ var useUserInputForm = function (_a) {
424
429
  return !hasError;
425
430
  };
426
431
  var validateCustomForm = function () {
427
- var _a;
428
432
  var errors = {};
429
433
  var cellErrors = {};
430
434
  var hasError = false;
431
- (_a = node.customFields) === null || _a === void 0 ? void 0 : _a.forEach(function (field) {
435
+ customFields.forEach(function (field) {
432
436
  var _a, _b;
433
437
  var value = customFormData[field.id];
434
438
  if (field.valueType === "list") {
@@ -571,7 +575,6 @@ var useUserInputForm = function (_a) {
571
575
  });
572
576
  };
573
577
  var goOnNextStep = function () {
574
- var _a;
575
578
  // Handle custom form validation and submission
576
579
  if (informationType === "custom") {
577
580
  if (!validateCustomForm()) {
@@ -579,7 +582,7 @@ var useUserInputForm = function (_a) {
579
582
  }
580
583
  var topLevelEntries_1 = {};
581
584
  var customFormDataEntries_1 = {};
582
- (_a = node.customFields) === null || _a === void 0 ? void 0 : _a.forEach(function (field) {
585
+ customFields.forEach(function (field) {
583
586
  var _a;
584
587
  var key = (_a = field.userInputKey) !== null && _a !== void 0 ? _a : labelToKey(field.label);
585
588
  topLevelEntries_1[key] = customFormData[field.id];
@@ -648,6 +651,7 @@ var useUserInputForm = function (_a) {
648
651
  form: form,
649
652
  errors: errors,
650
653
  informationType: informationType,
654
+ customFields: customFields,
651
655
  requestedFields: requestedFields,
652
656
  pageTitle: pageTitle,
653
657
  pageDescription: pageDescription,