datakeen-session-react 1.1.195-rc.2 → 1.1.195-rc.3

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.
@@ -13,6 +13,7 @@ var LoadingState = require('../states/LoadingState.js');
13
13
  var Title = require('../ui/Title.js');
14
14
  var Subtitle = require('../ui/Subtitle.js');
15
15
  var Button = require('../ui/Button.js');
16
+ var labelToKey = require('../../utils/labelToKey.js');
16
17
 
17
18
  // ─── Helpers ──────────────────────────────────────────────────────────────────
18
19
  var FIELD_ALIASES = {
@@ -105,6 +106,36 @@ var findValueByKeyName = function (sources, referenceField) {
105
106
  return undefined;
106
107
  };
107
108
  var expandFieldKey = function (key) { var _a; return tslib_es6.__spreadArray([key], ((_a = STANDARD_FIELD_ALIASES[key]) !== null && _a !== void 0 ? _a : []), true); };
109
+ /**
110
+ * Clés (clé aplatie dérivée du label + id du champ custom) des champs du nœud
111
+ * `nodeId` — et lui seul — qui correspondent au type recherché (siren/siret).
112
+ *
113
+ * Sans ce filtrage par nœud, la résolution retombe sur une recherche globale
114
+ * par nom de clé canonique (`findValueByKeyName` / repli 9-14 chiffres) qui
115
+ * ne sait pas distinguer deux nœuds ayant chacun un champ SIREN : un nœud
116
+ * "Identification de la société mère" (champ "SIREN" → clé `siren`) a ainsi
117
+ * capté la résolution d'un nœud "Votre entreprise" (champ "N° de SIREN" →
118
+ * clé `n_de_siren`) configuré comme référence, car `siren` matchait en
119
+ * premier la clé canonique — l'appel INPI est parti sur le mauvais SIREN.
120
+ */
121
+ var getNodeScopedFieldKeys = function (templateNodes, nodeId, referenceField) {
122
+ var _a;
123
+ var node = templateNodes === null || templateNodes === void 0 ? void 0 : templateNodes.find(function (n) { return n.id === nodeId; });
124
+ var keys = [];
125
+ var _loop_2 = function (field) {
126
+ var normalized = normalizeKeyName(labelToKey.labelToKey(field.label));
127
+ if (!normalized.includes(referenceField))
128
+ return "continue";
129
+ if (THIRD_PARTY_KEY_MARKERS.some(function (marker) { return normalized.includes(marker); }))
130
+ return "continue";
131
+ keys.push(labelToKey.labelToKey(field.label), field.id);
132
+ };
133
+ for (var _i = 0, _b = (_a = node === null || node === void 0 ? void 0 : node.customFields) !== null && _a !== void 0 ? _a : []; _i < _b.length; _i++) {
134
+ var field = _b[_i];
135
+ _loop_2(field);
136
+ }
137
+ return keys;
138
+ };
108
139
  // ─── Component ────────────────────────────────────────────────────────────────
109
140
  var ExternalVerificationNodeHandler = function (_a) {
110
141
  var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
@@ -162,10 +193,10 @@ var ExternalVerificationNodeHandler = function (_a) {
162
193
  React.useEffect(function () {
163
194
  var abortController = new AbortController();
164
195
  var run = function () { return tslib_es6.__awaiter(void 0, void 0, void 0, function () {
165
- var result, referenceField, referenceValueMasked, resolvedReferenceValue, referenceNodeId, referenceVariable, submittedFirstName, submittedLastName, submittedSiren, nodeInput, userInputFlat, lookupKeys, referenceValue, allCustomFields, _i, _a, _b, value, str, comparisonConfig, cfg, personNodeInput, flat, isPersonneMorale, sirenKeys, firstNameKeys, lastNameKeys, birthDateKeys, dateOfBirth, response, res, apiErr_1, apiResult, inpi, cfg, isPersonneMorale_1;
166
- var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
167
- return tslib_es6.__generator(this, function (_v) {
168
- switch (_v.label) {
196
+ var result, referenceField, referenceValueMasked, resolvedReferenceValue, referenceNodeId, referenceVariable, submittedFirstName, submittedLastName, submittedSiren, nodeInput, userInputFlat, nodeScopedKeys, lookupKeys, referenceValue, allCustomFields, _i, _a, _b, value, str, comparisonConfig, cfg, personNodeInput, flat, isPersonneMorale, sirenKeys, firstNameKeys, lastNameKeys, birthDateKeys, dateOfBirth, response, res, apiErr_1, apiResult, inpi, cfg, isPersonneMorale_1;
197
+ var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
198
+ return tslib_es6.__generator(this, function (_w) {
199
+ switch (_w.label) {
169
200
  case 0:
170
201
  result = {
171
202
  isVerified: false,
@@ -179,9 +210,9 @@ var ExternalVerificationNodeHandler = function (_a) {
179
210
  submittedFirstName = '';
180
211
  submittedLastName = '';
181
212
  submittedSiren = '';
182
- _v.label = 1;
213
+ _w.label = 1;
183
214
  case 1:
184
- _v.trys.push([1, 9, , 10]);
215
+ _w.trys.push([1, 9, , 10]);
185
216
  if (!(session === null || session === void 0 ? void 0 : session.id))
186
217
  throw new Error('Session ID is missing');
187
218
  referenceField = normalizeReferenceField(String(nodeData.referenceField || referenceVariable || ''));
@@ -196,7 +227,8 @@ var ExternalVerificationNodeHandler = function (_a) {
196
227
  case 2:
197
228
  nodeInput = userInput[referenceNodeId];
198
229
  userInputFlat = userInput;
199
- lookupKeys = Array.from(new Set(tslib_es6.__spreadArray([referenceVariable, referenceField], FIELD_ALIASES[referenceField], true).filter(Boolean)));
230
+ nodeScopedKeys = getNodeScopedFieldKeys((_c = session === null || session === void 0 ? void 0 : session.template) === null || _c === void 0 ? void 0 : _c.nodes, referenceNodeId, referenceField);
231
+ lookupKeys = Array.from(new Set(tslib_es6.__spreadArray(tslib_es6.__spreadArray(tslib_es6.__spreadArray([], nodeScopedKeys, true), [referenceVariable, referenceField], false), FIELD_ALIASES[referenceField], true).filter(Boolean)));
200
232
  referenceValue = resolveFieldValue(nodeInput, userInputFlat, lookupKeys);
201
233
  // 2e passe : la clé porte le nom du champ sans être canonique
202
234
  // (cas de tout formulaire personnalisé).
@@ -239,14 +271,14 @@ var ExternalVerificationNodeHandler = function (_a) {
239
271
  resolvedReferenceValue = referenceValue;
240
272
  referenceValueMasked = maskReferenceValue(referenceValue);
241
273
  comparisonConfig = void 0;
242
- if (isInpiRbe && ((_c = nodeData.comparisonConfig) === null || _c === void 0 ? void 0 : _c.personReferenceNodeId)) {
274
+ if (isInpiRbe && ((_d = nodeData.comparisonConfig) === null || _d === void 0 ? void 0 : _d.personReferenceNodeId)) {
243
275
  cfg = nodeData.comparisonConfig;
244
- personNodeInput = (_d = userInput[cfg.personReferenceNodeId]) !== null && _d !== void 0 ? _d : {};
276
+ personNodeInput = (_e = userInput[cfg.personReferenceNodeId]) !== null && _e !== void 0 ? _e : {};
245
277
  flat = userInput;
246
278
  isPersonneMorale = cfg.personType === 'MORALE';
247
279
  if (isPersonneMorale) {
248
- sirenKeys = expandFieldKey((_e = cfg.personSirenField) !== null && _e !== void 0 ? _e : '').filter(Boolean);
249
- submittedSiren = (_f = resolveFieldValue(personNodeInput, flat, sirenKeys)) !== null && _f !== void 0 ? _f : '';
280
+ sirenKeys = expandFieldKey((_f = cfg.personSirenField) !== null && _f !== void 0 ? _f : '').filter(Boolean);
281
+ submittedSiren = (_g = resolveFieldValue(personNodeInput, flat, sirenKeys)) !== null && _g !== void 0 ? _g : '';
250
282
  if (submittedSiren) {
251
283
  comparisonConfig = {
252
284
  personType: 'MORALE',
@@ -259,46 +291,46 @@ var ExternalVerificationNodeHandler = function (_a) {
259
291
  }
260
292
  }
261
293
  else {
262
- firstNameKeys = expandFieldKey((_g = cfg.personFirstNameField) !== null && _g !== void 0 ? _g : '').filter(Boolean);
263
- lastNameKeys = expandFieldKey((_h = cfg.personLastNameField) !== null && _h !== void 0 ? _h : '').filter(Boolean);
294
+ firstNameKeys = expandFieldKey((_h = cfg.personFirstNameField) !== null && _h !== void 0 ? _h : '').filter(Boolean);
295
+ lastNameKeys = expandFieldKey((_j = cfg.personLastNameField) !== null && _j !== void 0 ? _j : '').filter(Boolean);
264
296
  birthDateKeys = cfg.personBirthDateField
265
297
  ? expandFieldKey(cfg.personBirthDateField).filter(Boolean)
266
298
  : [];
267
- submittedFirstName = (_j = resolveFieldValue(personNodeInput, flat, firstNameKeys)) !== null && _j !== void 0 ? _j : '';
268
- submittedLastName = (_k = resolveFieldValue(personNodeInput, flat, lastNameKeys)) !== null && _k !== void 0 ? _k : '';
299
+ submittedFirstName = (_k = resolveFieldValue(personNodeInput, flat, firstNameKeys)) !== null && _k !== void 0 ? _k : '';
300
+ submittedLastName = (_l = resolveFieldValue(personNodeInput, flat, lastNameKeys)) !== null && _l !== void 0 ? _l : '';
269
301
  dateOfBirth = cfg.compareBirthDate && birthDateKeys.length
270
302
  ? resolveFieldValue(personNodeInput, flat, birthDateKeys)
271
303
  : undefined;
272
304
  if (submittedFirstName && submittedLastName) {
273
- comparisonConfig = tslib_es6.__assign({ firstName: submittedFirstName, lastName: submittedLastName, compareTargets: (_l = cfg.compareTargets) !== null && _l !== void 0 ? _l : ['mandataires'] }, (dateOfBirth ? { dateOfBirth: dateOfBirth } : {}));
305
+ comparisonConfig = tslib_es6.__assign({ firstName: submittedFirstName, lastName: submittedLastName, compareTargets: (_m = cfg.compareTargets) !== null && _m !== void 0 ? _m : ['mandataires'] }, (dateOfBirth ? { dateOfBirth: dateOfBirth } : {}));
274
306
  }
275
307
  }
276
308
  }
277
309
  if (isInpiRbe)
278
310
  advanceStep(1);
279
- _v.label = 4;
311
+ _w.label = 4;
280
312
  case 4:
281
- _v.trys.push([4, 7, , 8]);
313
+ _w.trys.push([4, 7, , 8]);
282
314
  return [4 /*yield*/, api.apiService.post("/session/sdk/".concat(session.id, "/verify-external/").concat(node.id), tslib_es6.__assign({ apiType: apiType, referenceValue: referenceValue, referenceField: referenceField, enableRnaFallback: isInpiRbe && nodeData.rnaFallbackEnabled === true, enableInseeFallback: isInpiRbe && nodeData.enableInseeFallback === true }, (comparisonConfig ? { comparisonConfig: comparisonConfig } : {})), { signal: abortController.signal })];
283
315
  case 5:
284
- response = _v.sent();
316
+ response = _w.sent();
285
317
  if (isInpiRbe)
286
318
  advanceStep(2);
287
319
  return [4 /*yield*/, new Promise(function (r) { return setTimeout(r, 600); })];
288
320
  case 6:
289
- _v.sent();
290
- res = (_m = response.data) === null || _m === void 0 ? void 0 : _m.data;
321
+ _w.sent();
322
+ res = (_o = response.data) === null || _o === void 0 ? void 0 : _o.data;
291
323
  if (res && typeof res.isVerified === 'boolean') {
292
324
  result = res;
293
325
  }
294
326
  return [3 /*break*/, 8];
295
327
  case 7:
296
- apiErr_1 = _v.sent();
328
+ apiErr_1 = _w.sent();
297
329
  if (abortController.signal.aborted)
298
330
  return [2 /*return*/];
299
331
  if (isInpiRbe)
300
332
  advanceStep(2);
301
- apiResult = (_p = (_o = apiErr_1 === null || apiErr_1 === void 0 ? void 0 : apiErr_1.response) === null || _o === void 0 ? void 0 : _o.data) === null || _p === void 0 ? void 0 : _p.data;
333
+ apiResult = (_q = (_p = apiErr_1 === null || apiErr_1 === void 0 ? void 0 : apiErr_1.response) === null || _p === void 0 ? void 0 : _p.data) === null || _q === void 0 ? void 0 : _q.data;
302
334
  if (apiResult && typeof apiResult.isVerified === 'boolean') {
303
335
  result = apiResult;
304
336
  }
@@ -313,7 +345,7 @@ var ExternalVerificationNodeHandler = function (_a) {
313
345
  return [3 /*break*/, 8];
314
346
  case 8: return [3 /*break*/, 10];
315
347
  case 9:
316
- _v.sent();
348
+ _w.sent();
317
349
  result = {
318
350
  isVerified: false,
319
351
  status: 'external_error',
@@ -351,13 +383,13 @@ var ExternalVerificationNodeHandler = function (_a) {
351
383
  // En mode personne morale, seuls les mandataires personne morale ont
352
384
  // un sens (un RBE est toujours une personne physique) ; en mode
353
385
  // physique, comportement inchangé (mandataires individus uniquement).
354
- mandataires: ((_q = inpi === null || inpi === void 0 ? void 0 : inpi.mandataires) !== null && _q !== void 0 ? _q : []).filter(function (m) {
386
+ mandataires: ((_r = inpi === null || inpi === void 0 ? void 0 : inpi.mandataires) !== null && _r !== void 0 ? _r : []).filter(function (m) {
355
387
  return isPersonneMorale_1 ? m.type === 'personne_morale' : m.type === 'individu';
356
388
  }),
357
- beneficiairesEffectifs: (_r = inpi === null || inpi === void 0 ? void 0 : inpi.beneficiairesEffectifs) !== null && _r !== void 0 ? _r : [],
358
- compareTargets: isPersonneMorale_1 ? ['mandataires'] : ((_s = cfg === null || cfg === void 0 ? void 0 : cfg.compareTargets) !== null && _s !== void 0 ? _s : ['mandataires']),
359
- personNodeId: (_t = cfg === null || cfg === void 0 ? void 0 : cfg.personReferenceNodeId) !== null && _t !== void 0 ? _t : '',
360
- targetDenomination: (_u = inpi === null || inpi === void 0 ? void 0 : inpi.identite) === null || _u === void 0 ? void 0 : _u.denomination,
389
+ beneficiairesEffectifs: (_s = inpi === null || inpi === void 0 ? void 0 : inpi.beneficiairesEffectifs) !== null && _s !== void 0 ? _s : [],
390
+ compareTargets: isPersonneMorale_1 ? ['mandataires'] : ((_t = cfg === null || cfg === void 0 ? void 0 : cfg.compareTargets) !== null && _t !== void 0 ? _t : ['mandataires']),
391
+ personNodeId: (_u = cfg === null || cfg === void 0 ? void 0 : cfg.personReferenceNodeId) !== null && _u !== void 0 ? _u : '',
392
+ targetDenomination: (_v = inpi === null || inpi === void 0 ? void 0 : inpi.identite) === null || _v === void 0 ? void 0 : _v.denomination,
361
393
  siren: resolvedReferenceValue,
362
394
  sirenNodeId: referenceNodeId,
363
395
  source: inpi === null || inpi === void 0 ? void 0 : inpi.source,
@@ -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 /** 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 enableInseeFallback: isInpiRbe && nodeData.enableInseeFallback === 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 {\n // config_error / external_error / any other non-blocking technical\n // failure (missing API key, registry down…) — never a fault of the\n // end user. The backend already maps these to a 'done' analysisrun,\n // never 'ai_rejected' (reviewed manually in backoffice), so the SDK\n // stays non-blocking here too — but must never claim success\n // (config_error used to show the success screen) and must never\n // leave a blank screen (this phase previously had no render block).\n setPhase('error');\n setTimeout(onNext, 1200);\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 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 // ─── Technical error phase (config_error / external_error) ────────────────\n //\n // Non-blocking (the flow already auto-advances via the useEffect above) but\n // must never look like a success — neutral wording, no checkmark.\n\n if (phase === 'error') {\n return (\n <div className=\"flex flex-col items-center justify-center h-full px-6 py-8 text-center space-y-4\">\n <div className=\"w-16 h-16 bg-gray-100 rounded-full flex items-center justify-center\">\n <span className=\"text-gray-500 text-2xl font-bold\">!</span>\n </div>\n <h3 className=\"text-[#3C3C40] font-poppins text-xl font-bold\">\n {t('inpi_verification.technical_error_title', 'Vérification en cours de traitement')}\n </h3>\n <p className=\"text-gray-500 text-sm\">\n {t(\n 'inpi_verification.technical_error_desc',\n 'Un problème technique est survenu. Votre dossier sera examiné manuellement.',\n )}\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":["__spreadArray","useTranslation","sdkI18n","useState","__assign","useEffect","__awaiter","apiService","_jsx","_jsxs","Title","Subtitle","checkIcon","_Fragment","Button","LoadingState"],"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';\nimport { labelToKey } from '../../utils/labelToKey';\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/**\n * Clés (clé aplatie dérivée du label + id du champ custom) des champs du nœud\n * `nodeId` — et lui seul — qui correspondent au type recherché (siren/siret).\n *\n * Sans ce filtrage par nœud, la résolution retombe sur une recherche globale\n * par nom de clé canonique (`findValueByKeyName` / repli 9-14 chiffres) qui\n * ne sait pas distinguer deux nœuds ayant chacun un champ SIREN : un nœud\n * \"Identification de la société mère\" (champ \"SIREN\" → clé `siren`) a ainsi\n * capté la résolution d'un nœud \"Votre entreprise\" (champ \"N° de SIREN\" →\n * clé `n_de_siren`) configuré comme référence, car `siren` matchait en\n * premier la clé canonique — l'appel INPI est parti sur le mauvais SIREN.\n */\nconst getNodeScopedFieldKeys = (\n templateNodes: SessionTemplateNode[] | undefined,\n nodeId: string,\n referenceField: 'siren' | 'siret',\n): string[] => {\n const node = templateNodes?.find(n => n.id === nodeId);\n const keys: string[] = [];\n for (const field of node?.customFields ?? []) {\n const normalized = normalizeKeyName(labelToKey(field.label));\n if (!normalized.includes(referenceField)) continue;\n if (THIRD_PARTY_KEY_MARKERS.some(marker => normalized.includes(marker))) continue;\n keys.push(labelToKey(field.label), field.id);\n }\n return keys;\n};\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 nodeScopedKeys = getNodeScopedFieldKeys(\n session?.template?.nodes,\n referenceNodeId,\n referenceField,\n );\n const lookupKeys = Array.from(\n new Set(\n [...nodeScopedKeys, referenceVariable, referenceField, ...FIELD_ALIASES[referenceField]].filter(\n Boolean,\n ),\n ),\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 enableInseeFallback: isInpiRbe && nodeData.enableInseeFallback === 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 {\n // config_error / external_error / any other non-blocking technical\n // failure (missing API key, registry down…) — never a fault of the\n // end user. The backend already maps these to a 'done' analysisrun,\n // never 'ai_rejected' (reviewed manually in backoffice), so the SDK\n // stays non-blocking here too — but must never claim success\n // (config_error used to show the success screen) and must never\n // leave a blank screen (this phase previously had no render block).\n setPhase('error');\n setTimeout(onNext, 1200);\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 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 // ─── Technical error phase (config_error / external_error) ────────────────\n //\n // Non-blocking (the flow already auto-advances via the useEffect above) but\n // must never look like a success — neutral wording, no checkmark.\n\n if (phase === 'error') {\n return (\n <div className=\"flex flex-col items-center justify-center h-full px-6 py-8 text-center space-y-4\">\n <div className=\"w-16 h-16 bg-gray-100 rounded-full flex items-center justify-center\">\n <span className=\"text-gray-500 text-2xl font-bold\">!</span>\n </div>\n <h3 className=\"text-[#3C3C40] font-poppins text-xl font-bold\">\n {t('inpi_verification.technical_error_title', 'Vérification en cours de traitement')}\n </h3>\n <p className=\"text-gray-500 text-sm\">\n {t(\n 'inpi_verification.technical_error_desc',\n 'Un problème technique est survenu. Votre dossier sera examiné manuellement.',\n )}\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":["__spreadArray","labelToKey","useTranslation","sdkI18n","useState","__assign","useEffect","__awaiter","apiService","_jsx","_jsxs","Title","Subtitle","checkIcon","_Fragment","Button","LoadingState"],"mappings":"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"}
@@ -9,6 +9,7 @@ import LoadingState from '../states/LoadingState.js';
9
9
  import Title from '../ui/Title.js';
10
10
  import Subtitle from '../ui/Subtitle.js';
11
11
  import Button from '../ui/Button.js';
12
+ import { labelToKey } from '../../utils/labelToKey.js';
12
13
 
13
14
  // ─── Helpers ──────────────────────────────────────────────────────────────────
14
15
  var FIELD_ALIASES = {
@@ -101,6 +102,36 @@ var findValueByKeyName = function (sources, referenceField) {
101
102
  return undefined;
102
103
  };
103
104
  var expandFieldKey = function (key) { var _a; return __spreadArray([key], ((_a = STANDARD_FIELD_ALIASES[key]) !== null && _a !== void 0 ? _a : []), true); };
105
+ /**
106
+ * Clés (clé aplatie dérivée du label + id du champ custom) des champs du nœud
107
+ * `nodeId` — et lui seul — qui correspondent au type recherché (siren/siret).
108
+ *
109
+ * Sans ce filtrage par nœud, la résolution retombe sur une recherche globale
110
+ * par nom de clé canonique (`findValueByKeyName` / repli 9-14 chiffres) qui
111
+ * ne sait pas distinguer deux nœuds ayant chacun un champ SIREN : un nœud
112
+ * "Identification de la société mère" (champ "SIREN" → clé `siren`) a ainsi
113
+ * capté la résolution d'un nœud "Votre entreprise" (champ "N° de SIREN" →
114
+ * clé `n_de_siren`) configuré comme référence, car `siren` matchait en
115
+ * premier la clé canonique — l'appel INPI est parti sur le mauvais SIREN.
116
+ */
117
+ var getNodeScopedFieldKeys = function (templateNodes, nodeId, referenceField) {
118
+ var _a;
119
+ var node = templateNodes === null || templateNodes === void 0 ? void 0 : templateNodes.find(function (n) { return n.id === nodeId; });
120
+ var keys = [];
121
+ var _loop_2 = function (field) {
122
+ var normalized = normalizeKeyName(labelToKey(field.label));
123
+ if (!normalized.includes(referenceField))
124
+ return "continue";
125
+ if (THIRD_PARTY_KEY_MARKERS.some(function (marker) { return normalized.includes(marker); }))
126
+ return "continue";
127
+ keys.push(labelToKey(field.label), field.id);
128
+ };
129
+ for (var _i = 0, _b = (_a = node === null || node === void 0 ? void 0 : node.customFields) !== null && _a !== void 0 ? _a : []; _i < _b.length; _i++) {
130
+ var field = _b[_i];
131
+ _loop_2(field);
132
+ }
133
+ return keys;
134
+ };
104
135
  // ─── Component ────────────────────────────────────────────────────────────────
105
136
  var ExternalVerificationNodeHandler = function (_a) {
106
137
  var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
@@ -158,10 +189,10 @@ var ExternalVerificationNodeHandler = function (_a) {
158
189
  useEffect(function () {
159
190
  var abortController = new AbortController();
160
191
  var run = function () { return __awaiter(void 0, void 0, void 0, function () {
161
- var result, referenceField, referenceValueMasked, resolvedReferenceValue, referenceNodeId, referenceVariable, submittedFirstName, submittedLastName, submittedSiren, nodeInput, userInputFlat, lookupKeys, referenceValue, allCustomFields, _i, _a, _b, value, str, comparisonConfig, cfg, personNodeInput, flat, isPersonneMorale, sirenKeys, firstNameKeys, lastNameKeys, birthDateKeys, dateOfBirth, response, res, apiErr_1, apiResult, inpi, cfg, isPersonneMorale_1;
162
- var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
163
- return __generator(this, function (_v) {
164
- switch (_v.label) {
192
+ var result, referenceField, referenceValueMasked, resolvedReferenceValue, referenceNodeId, referenceVariable, submittedFirstName, submittedLastName, submittedSiren, nodeInput, userInputFlat, nodeScopedKeys, lookupKeys, referenceValue, allCustomFields, _i, _a, _b, value, str, comparisonConfig, cfg, personNodeInput, flat, isPersonneMorale, sirenKeys, firstNameKeys, lastNameKeys, birthDateKeys, dateOfBirth, response, res, apiErr_1, apiResult, inpi, cfg, isPersonneMorale_1;
193
+ var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
194
+ return __generator(this, function (_w) {
195
+ switch (_w.label) {
165
196
  case 0:
166
197
  result = {
167
198
  isVerified: false,
@@ -175,9 +206,9 @@ var ExternalVerificationNodeHandler = function (_a) {
175
206
  submittedFirstName = '';
176
207
  submittedLastName = '';
177
208
  submittedSiren = '';
178
- _v.label = 1;
209
+ _w.label = 1;
179
210
  case 1:
180
- _v.trys.push([1, 9, , 10]);
211
+ _w.trys.push([1, 9, , 10]);
181
212
  if (!(session === null || session === void 0 ? void 0 : session.id))
182
213
  throw new Error('Session ID is missing');
183
214
  referenceField = normalizeReferenceField(String(nodeData.referenceField || referenceVariable || ''));
@@ -192,7 +223,8 @@ var ExternalVerificationNodeHandler = function (_a) {
192
223
  case 2:
193
224
  nodeInput = userInput[referenceNodeId];
194
225
  userInputFlat = userInput;
195
- lookupKeys = Array.from(new Set(__spreadArray([referenceVariable, referenceField], FIELD_ALIASES[referenceField], true).filter(Boolean)));
226
+ nodeScopedKeys = getNodeScopedFieldKeys((_c = session === null || session === void 0 ? void 0 : session.template) === null || _c === void 0 ? void 0 : _c.nodes, referenceNodeId, referenceField);
227
+ lookupKeys = Array.from(new Set(__spreadArray(__spreadArray(__spreadArray([], nodeScopedKeys, true), [referenceVariable, referenceField], false), FIELD_ALIASES[referenceField], true).filter(Boolean)));
196
228
  referenceValue = resolveFieldValue(nodeInput, userInputFlat, lookupKeys);
197
229
  // 2e passe : la clé porte le nom du champ sans être canonique
198
230
  // (cas de tout formulaire personnalisé).
@@ -235,14 +267,14 @@ var ExternalVerificationNodeHandler = function (_a) {
235
267
  resolvedReferenceValue = referenceValue;
236
268
  referenceValueMasked = maskReferenceValue(referenceValue);
237
269
  comparisonConfig = void 0;
238
- if (isInpiRbe && ((_c = nodeData.comparisonConfig) === null || _c === void 0 ? void 0 : _c.personReferenceNodeId)) {
270
+ if (isInpiRbe && ((_d = nodeData.comparisonConfig) === null || _d === void 0 ? void 0 : _d.personReferenceNodeId)) {
239
271
  cfg = nodeData.comparisonConfig;
240
- personNodeInput = (_d = userInput[cfg.personReferenceNodeId]) !== null && _d !== void 0 ? _d : {};
272
+ personNodeInput = (_e = userInput[cfg.personReferenceNodeId]) !== null && _e !== void 0 ? _e : {};
241
273
  flat = userInput;
242
274
  isPersonneMorale = cfg.personType === 'MORALE';
243
275
  if (isPersonneMorale) {
244
- sirenKeys = expandFieldKey((_e = cfg.personSirenField) !== null && _e !== void 0 ? _e : '').filter(Boolean);
245
- submittedSiren = (_f = resolveFieldValue(personNodeInput, flat, sirenKeys)) !== null && _f !== void 0 ? _f : '';
276
+ sirenKeys = expandFieldKey((_f = cfg.personSirenField) !== null && _f !== void 0 ? _f : '').filter(Boolean);
277
+ submittedSiren = (_g = resolveFieldValue(personNodeInput, flat, sirenKeys)) !== null && _g !== void 0 ? _g : '';
246
278
  if (submittedSiren) {
247
279
  comparisonConfig = {
248
280
  personType: 'MORALE',
@@ -255,46 +287,46 @@ var ExternalVerificationNodeHandler = function (_a) {
255
287
  }
256
288
  }
257
289
  else {
258
- firstNameKeys = expandFieldKey((_g = cfg.personFirstNameField) !== null && _g !== void 0 ? _g : '').filter(Boolean);
259
- lastNameKeys = expandFieldKey((_h = cfg.personLastNameField) !== null && _h !== void 0 ? _h : '').filter(Boolean);
290
+ firstNameKeys = expandFieldKey((_h = cfg.personFirstNameField) !== null && _h !== void 0 ? _h : '').filter(Boolean);
291
+ lastNameKeys = expandFieldKey((_j = cfg.personLastNameField) !== null && _j !== void 0 ? _j : '').filter(Boolean);
260
292
  birthDateKeys = cfg.personBirthDateField
261
293
  ? expandFieldKey(cfg.personBirthDateField).filter(Boolean)
262
294
  : [];
263
- submittedFirstName = (_j = resolveFieldValue(personNodeInput, flat, firstNameKeys)) !== null && _j !== void 0 ? _j : '';
264
- submittedLastName = (_k = resolveFieldValue(personNodeInput, flat, lastNameKeys)) !== null && _k !== void 0 ? _k : '';
295
+ submittedFirstName = (_k = resolveFieldValue(personNodeInput, flat, firstNameKeys)) !== null && _k !== void 0 ? _k : '';
296
+ submittedLastName = (_l = resolveFieldValue(personNodeInput, flat, lastNameKeys)) !== null && _l !== void 0 ? _l : '';
265
297
  dateOfBirth = cfg.compareBirthDate && birthDateKeys.length
266
298
  ? resolveFieldValue(personNodeInput, flat, birthDateKeys)
267
299
  : undefined;
268
300
  if (submittedFirstName && submittedLastName) {
269
- comparisonConfig = __assign({ firstName: submittedFirstName, lastName: submittedLastName, compareTargets: (_l = cfg.compareTargets) !== null && _l !== void 0 ? _l : ['mandataires'] }, (dateOfBirth ? { dateOfBirth: dateOfBirth } : {}));
301
+ comparisonConfig = __assign({ firstName: submittedFirstName, lastName: submittedLastName, compareTargets: (_m = cfg.compareTargets) !== null && _m !== void 0 ? _m : ['mandataires'] }, (dateOfBirth ? { dateOfBirth: dateOfBirth } : {}));
270
302
  }
271
303
  }
272
304
  }
273
305
  if (isInpiRbe)
274
306
  advanceStep(1);
275
- _v.label = 4;
307
+ _w.label = 4;
276
308
  case 4:
277
- _v.trys.push([4, 7, , 8]);
309
+ _w.trys.push([4, 7, , 8]);
278
310
  return [4 /*yield*/, apiService.post("/session/sdk/".concat(session.id, "/verify-external/").concat(node.id), __assign({ apiType: apiType, referenceValue: referenceValue, referenceField: referenceField, enableRnaFallback: isInpiRbe && nodeData.rnaFallbackEnabled === true, enableInseeFallback: isInpiRbe && nodeData.enableInseeFallback === true }, (comparisonConfig ? { comparisonConfig: comparisonConfig } : {})), { signal: abortController.signal })];
279
311
  case 5:
280
- response = _v.sent();
312
+ response = _w.sent();
281
313
  if (isInpiRbe)
282
314
  advanceStep(2);
283
315
  return [4 /*yield*/, new Promise(function (r) { return setTimeout(r, 600); })];
284
316
  case 6:
285
- _v.sent();
286
- res = (_m = response.data) === null || _m === void 0 ? void 0 : _m.data;
317
+ _w.sent();
318
+ res = (_o = response.data) === null || _o === void 0 ? void 0 : _o.data;
287
319
  if (res && typeof res.isVerified === 'boolean') {
288
320
  result = res;
289
321
  }
290
322
  return [3 /*break*/, 8];
291
323
  case 7:
292
- apiErr_1 = _v.sent();
324
+ apiErr_1 = _w.sent();
293
325
  if (abortController.signal.aborted)
294
326
  return [2 /*return*/];
295
327
  if (isInpiRbe)
296
328
  advanceStep(2);
297
- apiResult = (_p = (_o = apiErr_1 === null || apiErr_1 === void 0 ? void 0 : apiErr_1.response) === null || _o === void 0 ? void 0 : _o.data) === null || _p === void 0 ? void 0 : _p.data;
329
+ apiResult = (_q = (_p = apiErr_1 === null || apiErr_1 === void 0 ? void 0 : apiErr_1.response) === null || _p === void 0 ? void 0 : _p.data) === null || _q === void 0 ? void 0 : _q.data;
298
330
  if (apiResult && typeof apiResult.isVerified === 'boolean') {
299
331
  result = apiResult;
300
332
  }
@@ -309,7 +341,7 @@ var ExternalVerificationNodeHandler = function (_a) {
309
341
  return [3 /*break*/, 8];
310
342
  case 8: return [3 /*break*/, 10];
311
343
  case 9:
312
- _v.sent();
344
+ _w.sent();
313
345
  result = {
314
346
  isVerified: false,
315
347
  status: 'external_error',
@@ -347,13 +379,13 @@ var ExternalVerificationNodeHandler = function (_a) {
347
379
  // En mode personne morale, seuls les mandataires personne morale ont
348
380
  // un sens (un RBE est toujours une personne physique) ; en mode
349
381
  // physique, comportement inchangé (mandataires individus uniquement).
350
- mandataires: ((_q = inpi === null || inpi === void 0 ? void 0 : inpi.mandataires) !== null && _q !== void 0 ? _q : []).filter(function (m) {
382
+ mandataires: ((_r = inpi === null || inpi === void 0 ? void 0 : inpi.mandataires) !== null && _r !== void 0 ? _r : []).filter(function (m) {
351
383
  return isPersonneMorale_1 ? m.type === 'personne_morale' : m.type === 'individu';
352
384
  }),
353
- beneficiairesEffectifs: (_r = inpi === null || inpi === void 0 ? void 0 : inpi.beneficiairesEffectifs) !== null && _r !== void 0 ? _r : [],
354
- compareTargets: isPersonneMorale_1 ? ['mandataires'] : ((_s = cfg === null || cfg === void 0 ? void 0 : cfg.compareTargets) !== null && _s !== void 0 ? _s : ['mandataires']),
355
- personNodeId: (_t = cfg === null || cfg === void 0 ? void 0 : cfg.personReferenceNodeId) !== null && _t !== void 0 ? _t : '',
356
- targetDenomination: (_u = inpi === null || inpi === void 0 ? void 0 : inpi.identite) === null || _u === void 0 ? void 0 : _u.denomination,
385
+ beneficiairesEffectifs: (_s = inpi === null || inpi === void 0 ? void 0 : inpi.beneficiairesEffectifs) !== null && _s !== void 0 ? _s : [],
386
+ compareTargets: isPersonneMorale_1 ? ['mandataires'] : ((_t = cfg === null || cfg === void 0 ? void 0 : cfg.compareTargets) !== null && _t !== void 0 ? _t : ['mandataires']),
387
+ personNodeId: (_u = cfg === null || cfg === void 0 ? void 0 : cfg.personReferenceNodeId) !== null && _u !== void 0 ? _u : '',
388
+ targetDenomination: (_v = inpi === null || inpi === void 0 ? void 0 : inpi.identite) === null || _v === void 0 ? void 0 : _v.denomination,
357
389
  siren: resolvedReferenceValue,
358
390
  sirenNodeId: referenceNodeId,
359
391
  source: inpi === null || inpi === void 0 ? void 0 : inpi.source,
@@ -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 /** 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 enableInseeFallback: isInpiRbe && nodeData.enableInseeFallback === 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 {\n // config_error / external_error / any other non-blocking technical\n // failure (missing API key, registry down…) — never a fault of the\n // end user. The backend already maps these to a 'done' analysisrun,\n // never 'ai_rejected' (reviewed manually in backoffice), so the SDK\n // stays non-blocking here too — but must never claim success\n // (config_error used to show the success screen) and must never\n // leave a blank screen (this phase previously had no render block).\n setPhase('error');\n setTimeout(onNext, 1200);\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 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 // ─── Technical error phase (config_error / external_error) ────────────────\n //\n // Non-blocking (the flow already auto-advances via the useEffect above) but\n // must never look like a success — neutral wording, no checkmark.\n\n if (phase === 'error') {\n return (\n <div className=\"flex flex-col items-center justify-center h-full px-6 py-8 text-center space-y-4\">\n <div className=\"w-16 h-16 bg-gray-100 rounded-full flex items-center justify-center\">\n <span className=\"text-gray-500 text-2xl font-bold\">!</span>\n </div>\n <h3 className=\"text-[#3C3C40] font-poppins text-xl font-bold\">\n {t('inpi_verification.technical_error_title', 'Vérification en cours de traitement')}\n </h3>\n <p className=\"text-gray-500 text-sm\">\n {t(\n 'inpi_verification.technical_error_desc',\n 'Un problème technique est survenu. Votre dossier sera examiné manuellement.',\n )}\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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"}
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';\nimport { labelToKey } from '../../utils/labelToKey';\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/**\n * Clés (clé aplatie dérivée du label + id du champ custom) des champs du nœud\n * `nodeId` — et lui seul — qui correspondent au type recherché (siren/siret).\n *\n * Sans ce filtrage par nœud, la résolution retombe sur une recherche globale\n * par nom de clé canonique (`findValueByKeyName` / repli 9-14 chiffres) qui\n * ne sait pas distinguer deux nœuds ayant chacun un champ SIREN : un nœud\n * \"Identification de la société mère\" (champ \"SIREN\" → clé `siren`) a ainsi\n * capté la résolution d'un nœud \"Votre entreprise\" (champ \"N° de SIREN\" →\n * clé `n_de_siren`) configuré comme référence, car `siren` matchait en\n * premier la clé canonique — l'appel INPI est parti sur le mauvais SIREN.\n */\nconst getNodeScopedFieldKeys = (\n templateNodes: SessionTemplateNode[] | undefined,\n nodeId: string,\n referenceField: 'siren' | 'siret',\n): string[] => {\n const node = templateNodes?.find(n => n.id === nodeId);\n const keys: string[] = [];\n for (const field of node?.customFields ?? []) {\n const normalized = normalizeKeyName(labelToKey(field.label));\n if (!normalized.includes(referenceField)) continue;\n if (THIRD_PARTY_KEY_MARKERS.some(marker => normalized.includes(marker))) continue;\n keys.push(labelToKey(field.label), field.id);\n }\n return keys;\n};\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 nodeScopedKeys = getNodeScopedFieldKeys(\n session?.template?.nodes,\n referenceNodeId,\n referenceField,\n );\n const lookupKeys = Array.from(\n new Set(\n [...nodeScopedKeys, referenceVariable, referenceField, ...FIELD_ALIASES[referenceField]].filter(\n Boolean,\n ),\n ),\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 enableInseeFallback: isInpiRbe && nodeData.enableInseeFallback === 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 {\n // config_error / external_error / any other non-blocking technical\n // failure (missing API key, registry down…) — never a fault of the\n // end user. The backend already maps these to a 'done' analysisrun,\n // never 'ai_rejected' (reviewed manually in backoffice), so the SDK\n // stays non-blocking here too — but must never claim success\n // (config_error used to show the success screen) and must never\n // leave a blank screen (this phase previously had no render block).\n setPhase('error');\n setTimeout(onNext, 1200);\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 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 // ─── Technical error phase (config_error / external_error) ────────────────\n //\n // Non-blocking (the flow already auto-advances via the useEffect above) but\n // must never look like a success — neutral wording, no checkmark.\n\n if (phase === 'error') {\n return (\n <div className=\"flex flex-col items-center justify-center h-full px-6 py-8 text-center space-y-4\">\n <div className=\"w-16 h-16 bg-gray-100 rounded-full flex items-center justify-center\">\n <span className=\"text-gray-500 text-2xl font-bold\">!</span>\n </div>\n <h3 className=\"text-[#3C3C40] font-poppins text-xl font-bold\">\n {t('inpi_verification.technical_error_title', 'Vérification en cours de traitement')}\n </h3>\n <p className=\"text-gray-500 text-sm\">\n {t(\n 'inpi_verification.technical_error_desc',\n 'Un problème technique est survenu. Votre dossier sera examiné manuellement.',\n )}\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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "datakeen-session-react",
3
- "version": "1.1.195-rc.2",
3
+ "version": "1.1.195-rc.3",
4
4
  "description": "React SDK component to manage and render Datakeen session experiences easily.",
5
5
  "publishConfig": {
6
6
  "access": "public",