@incodetech/core 2.0.0-rc.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/package.json +3 -3
  2. package/dist/Actor-CI32dTbG.d.ts +0 -2
  3. package/dist/BaseWasmProvider-C_DLEI40.esm.js +0 -1118
  4. package/dist/BrowserStorageProvider-CuOW1Er2.esm.js +0 -55
  5. package/dist/BrowserTimerProvider-DhNc_x02.esm.js +0 -22
  6. package/dist/ITimerCapability-C67ZRskg.esm.js +0 -7
  7. package/dist/IpifyProvider-D7jx52AL.esm.js +0 -139
  8. package/dist/Manager-C8PrhBOx.d.ts +0 -19
  9. package/dist/MotionSensorProvider-4v7xkqAp.esm.js +0 -254
  10. package/dist/OpenViduRecordingProvider-CMu6XVdc.esm.js +0 -87
  11. package/dist/StateMachine-BCQrZJhf.d.ts +0 -2
  12. package/dist/WasmUtilProvider-j98OJf-S.esm.js +0 -114
  13. package/dist/addressSearch-BpTbTWCa.esm.js +0 -430
  14. package/dist/ae-signature-DDDZmWXj.esm.js +0 -12
  15. package/dist/ae-signature.d.ts +0 -25
  16. package/dist/ae-signature.esm.js +0 -8
  17. package/dist/antifraud.d.ts +0 -57
  18. package/dist/antifraud.esm.js +0 -45
  19. package/dist/antifraudStateMachine-O0TMf6yc.esm.js +0 -39
  20. package/dist/api-CESGtpbH.esm.js +0 -53
  21. package/dist/authentication.d.ts +0 -12
  22. package/dist/authentication.esm.js +0 -25
  23. package/dist/authenticationManager-5M-fKzXx.esm.js +0 -67
  24. package/dist/authenticationManager-C83GNIhl.d.ts +0 -66
  25. package/dist/authenticationStateMachine-BMZqatiF.esm.js +0 -139
  26. package/dist/backCameraStream-DMdMeGk2.esm.js +0 -346
  27. package/dist/browserSimulation-gxD8cSpM.esm.js +0 -20
  28. package/dist/camera-DBSxa6ML.d.ts +0 -4
  29. package/dist/camera-PA2Ljri3.esm.js +0 -22
  30. package/dist/camera.d.ts +0 -15
  31. package/dist/camera.esm.js +0 -5
  32. package/dist/chunk-CRF6K_H_.esm.js +0 -49
  33. package/dist/consent.d.ts +0 -398
  34. package/dist/consent.esm.js +0 -79
  35. package/dist/consentStateMachine-CCT-B60O.esm.js +0 -151
  36. package/dist/cpf-PPz2Njto.esm.js +0 -38
  37. package/dist/cpf-ocr.d.ts +0 -204
  38. package/dist/cpf-ocr.esm.js +0 -177
  39. package/dist/cross-document-data-match.d.ts +0 -34
  40. package/dist/cross-document-data-match.esm.js +0 -71
  41. package/dist/curp-validation.d.ts +0 -188
  42. package/dist/curp-validation.esm.js +0 -110
  43. package/dist/curpValidationStateMachine-CitWLr2c.esm.js +0 -595
  44. package/dist/custom-fields.d.ts +0 -115
  45. package/dist/custom-fields.esm.js +0 -177
  46. package/dist/custom-watchlist.d.ts +0 -66
  47. package/dist/custom-watchlist.esm.js +0 -86
  48. package/dist/dateUtils-UoN5xswP.esm.js +0 -23
  49. package/dist/deepsightLoader-Cm4JIT_z.esm.js +0 -52
  50. package/dist/deepsightService-CEVxzehb.d.ts +0 -412
  51. package/dist/deepsightService-O74l4Y__.esm.js +0 -489
  52. package/dist/device.d.ts +0 -46
  53. package/dist/device.esm.js +0 -106
  54. package/dist/displayErrors-DqJ_IbsG.d.ts +0 -39
  55. package/dist/document-capture.d.ts +0 -906
  56. package/dist/document-capture.esm.js +0 -156
  57. package/dist/document-upload.d.ts +0 -331
  58. package/dist/document-upload.esm.js +0 -203
  59. package/dist/documentCaptureStateMachine-BqzTDy9k.esm.js +0 -394
  60. package/dist/dynamic-forms.d.ts +0 -178
  61. package/dist/dynamic-forms.esm.js +0 -323
  62. package/dist/ekyb.d.ts +0 -148
  63. package/dist/ekyb.esm.js +0 -127
  64. package/dist/ekybStateMachine-B59rQjgj.esm.js +0 -674
  65. package/dist/ekyc.d.ts +0 -164
  66. package/dist/ekyc.esm.js +0 -104
  67. package/dist/ekycStateMachine-oeO0Iekd.esm.js +0 -10626
  68. package/dist/electronic-signature.d.ts +0 -4
  69. package/dist/electronic-signature.esm.js +0 -7
  70. package/dist/electronicSignatureManager-D9OHzTpG.esm.js +0 -428
  71. package/dist/email.d.ts +0 -4
  72. package/dist/email.esm.js +0 -9
  73. package/dist/emailManager-DIfnS5g1.d.ts +0 -352
  74. package/dist/emailManager-wAV0LE-H.esm.js +0 -238
  75. package/dist/emailStateMachine-DOf4j58N.esm.js +0 -292
  76. package/dist/endpoints-CnN3SyDa.esm.js +0 -87
  77. package/dist/events-D6-e4vok.esm.js +0 -596
  78. package/dist/events.d.ts +0 -265
  79. package/dist/events.esm.js +0 -4
  80. package/dist/extensibility.d.ts +0 -122
  81. package/dist/extensibility.esm.js +0 -43
  82. package/dist/face-match.d.ts +0 -228
  83. package/dist/face-match.esm.js +0 -173
  84. package/dist/faceCaptureManagerFactory-Dh2PdGlF.esm.js +0 -290
  85. package/dist/faceCaptureManagerFactory-yqtpxjnN.d.ts +0 -690
  86. package/dist/faceCaptureSetup-B3faSpYA.esm.js +0 -873
  87. package/dist/faceMatchStateMachine-DNFrxTFS.esm.js +0 -127
  88. package/dist/flow-events.d.ts +0 -6
  89. package/dist/flow-events.esm.js +0 -0
  90. package/dist/flow.d.ts +0 -358
  91. package/dist/flow.esm.js +0 -825
  92. package/dist/flowCompletionService-DhkT4SRY.d.ts +0 -10
  93. package/dist/flowCompletionService-P54yzGvA.esm.js +0 -13
  94. package/dist/flowServices-DTsm-Vf1.esm.js +0 -188
  95. package/dist/geolocation.d.ts +0 -127
  96. package/dist/geolocation.esm.js +0 -89
  97. package/dist/geolocationStateMachine-asasuHY2.esm.js +0 -105
  98. package/dist/getBrowser-BSXUTWXw.esm.js +0 -41
  99. package/dist/getDeviceClass-BSntT9_j.esm.js +0 -14
  100. package/dist/government-validation.d.ts +0 -67
  101. package/dist/government-validation.esm.js +0 -81
  102. package/dist/governmentValidationStateMachine-BDDYrJTo.esm.js +0 -271
  103. package/dist/home.d.ts +0 -99
  104. package/dist/home.esm.js +0 -61
  105. package/dist/http.d.ts +0 -68
  106. package/dist/http.esm.js +0 -3
  107. package/dist/id-ocr.d.ts +0 -635
  108. package/dist/id-ocr.esm.js +0 -86
  109. package/dist/id-verification.d.ts +0 -190
  110. package/dist/id-verification.esm.js +0 -43
  111. package/dist/id.d.ts +0 -24
  112. package/dist/id.esm.js +0 -164
  113. package/dist/idCaptureManager-B9TGA5dq.d.ts +0 -956
  114. package/dist/idCaptureManager-DMK0GIt3.esm.js +0 -581
  115. package/dist/idCaptureStateMachine-Bq0fVZXl.esm.js +0 -2954
  116. package/dist/idOcrStateMachine-YbjjC_Gg.esm.js +0 -388
  117. package/dist/idVerificationStateMachine-xbw9HP1Z.esm.js +0 -71
  118. package/dist/identity-reuse.d.ts +0 -530
  119. package/dist/identity-reuse.esm.js +0 -274
  120. package/dist/index-BLKtMA0g.d.ts +0 -1177
  121. package/dist/index-BcRG8rtJ.d.ts +0 -97
  122. package/dist/index.d.ts +0 -3
  123. package/dist/index.esm.js +0 -12
  124. package/dist/invokeOnCaptureCallback-rc6kBHo5.esm.js +0 -30
  125. package/dist/lib-BB0B_qQX.esm.js +0 -12499
  126. package/dist/mandatory-consent.d.ts +0 -412
  127. package/dist/mandatory-consent.esm.js +0 -78
  128. package/dist/mandatoryConsentStateMachine-Cnco1jvn.esm.js +0 -126
  129. package/dist/openviduLazy-Cm0XFh_v.esm.js +0 -3
  130. package/dist/openviduLazy-Cok70ZSg.esm.js +0 -12
  131. package/dist/permissionServices-D_i6nzEw.esm.js +0 -50
  132. package/dist/phone.d.ts +0 -4
  133. package/dist/phone.esm.js +0 -9
  134. package/dist/phoneManager-B6M30hKE.d.ts +0 -397
  135. package/dist/phoneManager-DAJbGhlY.esm.js +0 -256
  136. package/dist/phoneStateMachine-CuPARRaT.esm.js +0 -351
  137. package/dist/platform-CfrjKhmi.esm.js +0 -83
  138. package/dist/qe-signature-DFo_Cc-I.esm.js +0 -12
  139. package/dist/qe-signature.d.ts +0 -25
  140. package/dist/qe-signature.esm.js +0 -8
  141. package/dist/recordingService-Ig2UgbLv.esm.js +0 -1003
  142. package/dist/redirect-to-mobile.d.ts +0 -107
  143. package/dist/redirect-to-mobile.esm.js +0 -102
  144. package/dist/redirectToMobileStateMachine-BOEqe46A.esm.js +0 -249
  145. package/dist/runChildModule-CqqwqAkW.esm.js +0 -219
  146. package/dist/selfie.d.ts +0 -26
  147. package/dist/selfie.esm.js +0 -146
  148. package/dist/selfieManager-D0lSgd-J.d.ts +0 -68
  149. package/dist/selfieManager-Duisl7qN.esm.js +0 -60
  150. package/dist/selfieStateMachine-D76whWEf.esm.js +0 -68
  151. package/dist/session-BS-d_vuE.esm.js +0 -3206
  152. package/dist/session.d.ts +0 -217
  153. package/dist/session.esm.js +0 -9
  154. package/dist/setup-Buy-hyj4.esm.js +0 -887
  155. package/dist/setup-C5AITV8m.d.ts +0 -254
  156. package/dist/signature.d.ts +0 -94
  157. package/dist/signature.esm.js +0 -66
  158. package/dist/signatureStateMachine-B5-QVUve.esm.js +0 -132
  159. package/dist/stats-CIfiPzb1.esm.js +0 -16
  160. package/dist/stats.d.ts +0 -16
  161. package/dist/stats.esm.js +0 -4
  162. package/dist/trust-graph.d.ts +0 -54
  163. package/dist/trust-graph.esm.js +0 -56
  164. package/dist/types-B06Ypu2F.d.ts +0 -49
  165. package/dist/types-BP1m8VRw.d.ts +0 -340
  166. package/dist/types-CAD4va6a.d.ts +0 -5
  167. package/dist/types-CFV9G_7j.d.ts +0 -24
  168. package/dist/warmup-CEcppFiS.d.ts +0 -63
  169. package/dist/wasm.d.ts +0 -15
  170. package/dist/wasm.esm.js +0 -12
  171. package/dist/watchlist-for-business.d.ts +0 -79
  172. package/dist/watchlist-for-business.esm.js +0 -148
  173. package/dist/watchlist.d.ts +0 -62
  174. package/dist/watchlist.esm.js +0 -86
  175. package/dist/watchlistServices-DMbUhkBX.esm.js +0 -12
  176. package/dist/workflow.d.ts +0 -907
  177. package/dist/workflow.esm.js +0 -702
  178. package/dist/xstate.esm-B70JrNqo.esm.js +0 -3404
@@ -1,188 +0,0 @@
1
- import { t as Manager } from "./Manager-C8PrhBOx.js";
2
- import "./Actor-CI32dTbG.js";
3
- import "./camera-DBSxa6ML.js";
4
- import "./types-CFV9G_7j.js";
5
- import { i as FlowModuleConfig } from "./types-BP1m8VRw.js";
6
-
7
- //#region src/modules/curp-validation/types.d.ts
8
- type CurpValidationConfig = FlowModuleConfig['CURP_VALIDATION'] & {
9
- /** Maximum validation retries before auto-advancing. @default 1 */
10
- maxRetries?: number;
11
- /** Whether to attempt OCR pre-fill on load. @default true */
12
- prefillFromOcr?: boolean;
13
- };
14
- /** CURP generation form data */
15
- type GenerateCurpForm = {
16
- name: string;
17
- firstLastName: string;
18
- secondLastName: string;
19
- gender: 'H' | 'M' | 'X' | '';
20
- birthDate: string;
21
- birthState: string;
22
- };
23
- type GenerateCurpFieldType = 'text' | 'date' | 'dropdown';
24
- /**
25
- * Discriminated union of validation rules supported across both CURP screens.
26
- * `required` is used by Generate-CURP fields; `curpFormat` is used by the
27
- * single-field CURP entry.
28
- */
29
- type CurpValidationRule = {
30
- type: 'required';
31
- } | {
32
- type: 'curpFormat';
33
- };
34
- type GenerateCurpFieldDef = {
35
- key: keyof GenerateCurpForm;
36
- labelKey: string;
37
- type: GenerateCurpFieldType;
38
- required: boolean;
39
- autoComplete?: string;
40
- /**
41
- * Validation rules evaluated by the state machine on blur (per-field) and
42
- * on submit (full form). Required fields should include `{ type: 'required' }`.
43
- * Optional fields (e.g. `secondLastName`) omit this entirely.
44
- */
45
- validation?: CurpValidationRule[];
46
- };
47
- /**
48
- * Configuration for the single CURP-entry field on the gateway screen.
49
- * Intentionally has no `required` rule: the user can leave it empty and
50
- * use the "I don't have my CURP" escape-hatch button instead.
51
- */
52
- type EnterCurpFieldDef = {
53
- key: 'curp';
54
- labelKey: string;
55
- validation?: CurpValidationRule[];
56
- };
57
- /**
58
- * Map of field-key → i18n error key currently displayed for that field.
59
- * Empty/undefined means no errors are currently shown. The state machine
60
- * is the single source of truth for which entries exist here — UI must
61
- * render this map as-is without further gating.
62
- */
63
- type CurpValidationErrors = Partial<Record<string, string>>;
64
- //#endregion
65
- //#region src/modules/curp-validation/curpValidationStateMachine.d.ts
66
-
67
- declare const curpValidationMachine: any;
68
- //#endregion
69
- //#region src/modules/curp-validation/curpValidationActor.d.ts
70
- type CreateCurpValidationActorOptions = {
71
- config: CurpValidationConfig;
72
- };
73
- //#endregion
74
- //#region src/modules/curp-validation/curpValidationManager.d.ts
75
- type CurpValidationIdleState = {
76
- status: 'idle';
77
- };
78
- type CurpValidationLoadingState = {
79
- status: 'loading';
80
- };
81
- /**
82
- * State exposed to UI for the CURP entry gateway screen.
83
- *
84
- * `isValid` is **derived** from `validationErrors`: it is `true` whenever
85
- * no errors are currently displayed (including the initial empty render).
86
- * The UI must not treat `isValid` as "the form would pass full validation
87
- * right now" — that was the old pessimistic semantic. Use the absence of
88
- * errors plus an additional `curp.length === 0` no-op guard on the submit
89
- * button instead.
90
- */
91
- type CurpValidationEnterCurpState = {
92
- status: 'enterCurp';
93
- curp: string;
94
- isValid: boolean;
95
- validationErrors?: CurpValidationErrors;
96
- };
97
- type CurpValidationVerifyingState = {
98
- status: 'verifying';
99
- };
100
- type CurpValidationSuccessState = {
101
- status: 'success';
102
- };
103
- type CurpValidationFailureState = {
104
- status: 'failure';
105
- retriesLeft: number;
106
- };
107
- /**
108
- * State exposed to UI for the multi-field Generate CURP form.
109
- *
110
- * `isValid` is derived: `true` when no errors are currently displayed.
111
- * Validation runs on blur (single field) and on submit (full form);
112
- * `validationErrors` reflects exactly what should be rendered next
113
- * to each input.
114
- */
115
- type CurpValidationGenerateCurpState = {
116
- status: 'generateCurp';
117
- form: GenerateCurpForm;
118
- isValid: boolean;
119
- validationErrors?: CurpValidationErrors;
120
- };
121
- type CurpValidationGeneratingState = {
122
- status: 'generating';
123
- };
124
- type CurpValidationConfirmCurpState = {
125
- status: 'confirmCurp';
126
- curp: string;
127
- };
128
- type CurpValidationGenerateErrorState = {
129
- status: 'generateError';
130
- retriesLeft: number;
131
- };
132
- type CurpValidationFinishedState = {
133
- status: 'finished';
134
- };
135
- type CurpValidationClosedState = {
136
- status: 'closed';
137
- };
138
- type CurpValidationState = CurpValidationIdleState | CurpValidationLoadingState | CurpValidationEnterCurpState | CurpValidationVerifyingState | CurpValidationSuccessState | CurpValidationFailureState | CurpValidationGenerateCurpState | CurpValidationGeneratingState | CurpValidationConfirmCurpState | CurpValidationGenerateErrorState | CurpValidationFinishedState | CurpValidationClosedState;
139
- declare function createCurpValidationManager(options: CreateCurpValidationActorOptions): Manager<CurpValidationState> & {
140
- load(): void;
141
- setCurp(curp: string): void;
142
- /**
143
- * Triggers single-field on-blur validation. The state machine routes
144
- * the event to the validator for the currently active screen and
145
- * updates the corresponding `validationErrors` map. Sending a field
146
- * key that does not belong to the active screen is a no-op.
147
- */
148
- validateField(field: "curp" | keyof GenerateCurpForm): void;
149
- verify(): void;
150
- switchToGenerate(): void;
151
- setGenerateForm(form: Partial<GenerateCurpForm>): void;
152
- generate(): void;
153
- confirmGenerated(): void;
154
- retry(): void;
155
- close(): void;
156
- };
157
- type CurpValidationManager = ReturnType<typeof createCurpValidationManager>;
158
- //#endregion
159
- //#region src/modules/curp-validation/curpValidationUtils.d.ts
160
- type MexicanState = {
161
- value: string;
162
- label: string;
163
- };
164
- declare const mexicanStates: MexicanState[];
165
- //#endregion
166
- //#region src/modules/curp-validation/curpFields.d.ts
167
- /**
168
- * Declarative schema for the CURP generation form.
169
- *
170
- * `secondLastName` is intentionally optional: many people in Mexico have
171
- * only a single paternal surname. It carries no validation rules.
172
- */
173
- declare const GENERATE_CURP_FIELDS: GenerateCurpFieldDef[];
174
- /**
175
- * Config for the single field on the CURP entry gateway screen.
176
- *
177
- * Validation contains only `curpFormat` — there is intentionally no
178
- * `required` rule. The user can legitimately leave this field empty
179
- * and use the "I don't have my CURP" button to switch to the Generate
180
- * flow; surfacing a "required" error on blur of an empty field would
181
- * be misleading.
182
- *
183
- * The Continue button on this screen is gated by a UI-level no-op guard
184
- * (`curp.length === 0`) instead, which lives in `curpInput.tsx`.
185
- */
186
- declare const ENTER_CURP_FIELD: EnterCurpFieldDef;
187
- //#endregion
188
- export { type CurpValidationConfig, type CurpValidationErrors, type CurpValidationManager, type CurpValidationRule, type CurpValidationState, ENTER_CURP_FIELD, type EnterCurpFieldDef, GENERATE_CURP_FIELDS, type GenerateCurpFieldDef, type GenerateCurpFieldType, type GenerateCurpForm, createCurpValidationManager, curpValidationMachine, mexicanStates };
@@ -1,110 +0,0 @@
1
- import "./api-CESGtpbH.esm.js";
2
- import { n as eventModuleNames, o as createManagerInstrumentation } from "./events-D6-e4vok.esm.js";
3
- import "./endpoints-CnN3SyDa.esm.js";
4
- import { c as createManager, s as createActor } from "./xstate.esm-B70JrNqo.esm.js";
5
- import { i as mexicanStates, n as ENTER_CURP_FIELD, r as GENERATE_CURP_FIELDS, t as curpValidationMachine } from "./curpValidationStateMachine-CitWLr2c.esm.js";
6
-
7
- //#region src/modules/curp-validation/curpValidationActor.ts
8
- function createCurpValidationActor(options) {
9
- return createActor(curpValidationMachine, { input: { config: options.config } }).start();
10
- }
11
-
12
- //#endregion
13
- //#region src/modules/curp-validation/curpValidationManager.ts
14
- const hasNoErrors = (errors) => Object.keys(errors ?? {}).length === 0;
15
- function mapState(snapshot) {
16
- const typedSnapshot = snapshot;
17
- const { context } = typedSnapshot;
18
- if (typedSnapshot.matches("idle")) return { status: "idle" };
19
- if (typedSnapshot.matches("loading")) return { status: "loading" };
20
- if (typedSnapshot.matches("enterCurp")) return {
21
- status: "enterCurp",
22
- curp: context.curp,
23
- isValid: hasNoErrors(context.enterCurpValidationErrors),
24
- validationErrors: context.enterCurpValidationErrors
25
- };
26
- if (typedSnapshot.matches("verifying")) return { status: "verifying" };
27
- if (typedSnapshot.matches("success")) return { status: "success" };
28
- if (typedSnapshot.matches("failure")) return {
29
- status: "failure",
30
- retriesLeft: context.retriesLeft
31
- };
32
- if (typedSnapshot.matches("generateCurp")) return {
33
- status: "generateCurp",
34
- form: context.generateForm,
35
- isValid: hasNoErrors(context.generateCurpValidationErrors),
36
- validationErrors: context.generateCurpValidationErrors
37
- };
38
- if (typedSnapshot.matches("generating")) return { status: "generating" };
39
- if (typedSnapshot.matches("confirmCurp")) return {
40
- status: "confirmCurp",
41
- curp: context.curp
42
- };
43
- if (typedSnapshot.matches("generateError")) return {
44
- status: "generateError",
45
- retriesLeft: context.retriesLeft
46
- };
47
- if (typedSnapshot.matches("finished")) return { status: "finished" };
48
- if (typedSnapshot.matches("closed")) return { status: "closed" };
49
- return { status: "idle" };
50
- }
51
- function createApi({ actor, trackElementClicked }) {
52
- return {
53
- load() {
54
- actor.send({ type: "LOAD" });
55
- },
56
- setCurp(curp) {
57
- actor.send({
58
- type: "SET_CURP",
59
- curp
60
- });
61
- },
62
- validateField(field) {
63
- actor.send({
64
- type: "VALIDATE_FIELD",
65
- field
66
- });
67
- },
68
- verify() {
69
- trackElementClicked?.("verify");
70
- actor.send({ type: "VERIFY" });
71
- },
72
- switchToGenerate() {
73
- trackElementClicked?.("switchToGenerate");
74
- actor.send({ type: "SWITCH_TO_GENERATE" });
75
- },
76
- setGenerateForm(form) {
77
- actor.send({
78
- type: "SET_GENERATE_FORM",
79
- form
80
- });
81
- },
82
- generate() {
83
- trackElementClicked?.("generate");
84
- actor.send({ type: "GENERATE" });
85
- },
86
- confirmGenerated() {
87
- trackElementClicked?.("confirmGenerated");
88
- actor.send({ type: "CONFIRM" });
89
- },
90
- retry() {
91
- trackElementClicked?.("retry");
92
- actor.send({ type: "RETRY" });
93
- },
94
- close() {
95
- trackElementClicked?.("close");
96
- actor.send({ type: "CLOSE" });
97
- }
98
- };
99
- }
100
- function createCurpValidationManager(options) {
101
- return createManager({
102
- actor: createCurpValidationActor(options),
103
- mapState,
104
- createApi,
105
- instrumentation: createManagerInstrumentation(eventModuleNames.curpValidation)
106
- });
107
- }
108
-
109
- //#endregion
110
- export { ENTER_CURP_FIELD, GENERATE_CURP_FIELDS, createCurpValidationManager, curpValidationMachine, mexicanStates };