import parseCompositeCheckDigit from '../parsers/parseCompositeCheckDigit.ts'; import parseDate from '../parsers/parseDate.ts'; import parseDateCheckDigit from '../parsers/parseDateCheckDigit.ts'; import parseDocumentNumber from '../parsers/parseDocumentNumber.ts'; import parseDocumentNumberCheckDigit from '../parsers/parseDocumentNumberCheckDigit.ts'; import parseFirstName from '../parsers/parseFirstName.ts'; import parseLastName from '../parsers/parseLastName.ts'; import parseSex from '../parsers/parseSex.ts'; import parseState from '../parsers/parseState.ts'; import type { FieldOptions } from './createFieldParser.ts'; import { fieldTypes } from './createFieldParser.ts'; type FieldOptionTemplate = Partial; const documentNumberTemplate = { label: 'Document number', field: 'documentNumber', parser: parseDocumentNumber, type: fieldTypes.ALPHANUMERIC, } satisfies FieldOptionTemplate; const documentNumberCheckDigitTemplate = { label: 'Document number check digit', field: 'documentNumberCheckDigit', parser: parseDocumentNumberCheckDigit, type: fieldTypes.NUMERIC, } satisfies FieldOptionTemplate; const documentCodeTemplate = { label: 'Document code', field: 'documentCode', type: fieldTypes.ALPHABETIC, } satisfies FieldOptionTemplate; const documentCodeAlphaNumTemplate = { label: 'Document code', field: 'documentCode', type: fieldTypes.ALPHANUMERIC, } satisfies FieldOptionTemplate; const nationalityTemplate = { label: 'Nationality', field: 'nationality', parser: parseState, type: fieldTypes.ALPHABETIC, } satisfies FieldOptionTemplate; const sexTemplate = { label: 'Sex', field: 'sex', parser: parseSex, type: fieldTypes.ALPHABETIC, } satisfies FieldOptionTemplate; const expirationDateTemplate = { label: 'Expiration date', field: 'expirationDate', parser: parseDate, type: fieldTypes.NUMERIC, } satisfies FieldOptionTemplate; const expirationDateCheckDigitTemplate = { label: 'Expiration date check digit', field: 'expirationDateCheckDigit', parser: parseDateCheckDigit, type: fieldTypes.NUMERIC, } satisfies FieldOptionTemplate; const compositeCheckDigitTemplate = { label: 'Composite check digit', field: 'compositeCheckDigit', parser: parseCompositeCheckDigit, type: fieldTypes.NUMERIC, } satisfies FieldOptionTemplate; const birthDateTemplate = { label: 'Birth date', field: 'birthDate', parser: parseDate, type: fieldTypes.NUMERIC, } satisfies FieldOptionTemplate; const birthDateCheckDigitTemplate = { label: 'Birth date check digit', field: 'birthDateCheckDigit', parser: parseDateCheckDigit, type: fieldTypes.NUMERIC, } satisfies FieldOptionTemplate; const issueDateTemplate = { label: 'Issue date', field: 'issueDate', parser: parseDate, type: fieldTypes.NUMERIC, } satisfies FieldOptionTemplate; const firstNameTemplate = { label: 'First name', field: 'firstName', parser: parseFirstName, type: fieldTypes.ALPHABETIC, } satisfies FieldOptionTemplate; const lastNameTemplate = { label: 'Last name', field: 'lastName', parser: parseLastName, type: fieldTypes.ALPHABETIC, } satisfies FieldOptionTemplate; const issuingStateTemplate = { label: 'Issuing state', field: 'issuingState', parser: parseState, type: fieldTypes.ALPHABETIC, } satisfies FieldOptionTemplate; export { birthDateCheckDigitTemplate, birthDateTemplate, compositeCheckDigitTemplate, documentCodeAlphaNumTemplate, documentCodeTemplate, documentNumberCheckDigitTemplate, documentNumberTemplate, expirationDateCheckDigitTemplate, expirationDateTemplate, firstNameTemplate, issueDateTemplate, issuingStateTemplate, lastNameTemplate, nationalityTemplate, sexTemplate, };