UNPKG

ci-validation

Version:

🇺🇾 Complete TypeScript/JavaScript library for validating Uruguayan CI (Cédula de Identidad) with official algorithm and government service integration

132 lines • 4.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.VERSION = exports.UruguayanCiValidator = exports.DependencyContainer = exports.LoteriaUyCiService = void 0; exports.validateCI = validateCI; exports.normalizeCI = normalizeCI; exports.validateCIFormat = validateCIFormat; exports.queryCIInfo = queryCIInfo; exports.validateCIAndQuery = validateCIAndQuery; // Main library export var CiService_1 = require("../services/CiService"); Object.defineProperty(exports, "LoteriaUyCiService", { enumerable: true, get: function () { return CiService_1.LoteriaUyCiService; } }); var dependencyContainer_1 = require("../utils/dependencyContainer"); Object.defineProperty(exports, "DependencyContainer", { enumerable: true, get: function () { return dependencyContainer_1.DependencyContainer; } }); var CiValidator_1 = require("../validators/CiValidator"); Object.defineProperty(exports, "UruguayanCiValidator", { enumerable: true, get: function () { return CiValidator_1.UruguayanCiValidator; } }); // Main validation function for easy usage const CiService_2 = require("../services/CiService"); const CiValidator_2 = require("../validators/CiValidator"); const validator = new CiValidator_2.UruguayanCiValidator(); const service = new CiService_2.LoteriaUyCiService(); /** * Validates a Uruguayan CI (Cédula de Identidad) * @param ci - The CI number to validate (7-8 digits) * @returns true if the CI is valid according to the official algorithm * * @example * ```typescript * import { validateCI } from 'ci-validation'; * * const isValid = validateCI('19119365'); * console.log(isValid); // true or false * ``` */ function validateCI(ci) { return validator.validate(ci); } /** * Normalizes a CI by adding leading zeros and removing non-numeric characters * @param ci - The CI number to normalize * @returns The normalized CI (8 digits) * * @example * ```typescript * import { normalizeCI } from 'ci-validation'; * * const normalized = normalizeCI('1234567'); * console.log(normalized); // '01234567' * ``` */ function normalizeCI(ci) { return validator.normalize(ci); } /** * Validates the format of a CI (length and numeric characters) * @param ci - The CI number to validate format * @returns true if the format is valid * * @example * ```typescript * import { validateCIFormat } from 'ci-validation'; * * const hasValidFormat = validateCIFormat('1234567'); * console.log(hasValidFormat); // true * ``` */ function validateCIFormat(ci) { return validator.validateFormat(ci); } /** * Queries information about a CI from the official Uruguayan service * @param ci - The CI number to query * @returns Promise with the query result * * @example * ```typescript * import { queryCIInfo } from 'ci-validation'; * * const result = await queryCIInfo('19119365'); * if (result.success) { * console.log(result.data); * } * ``` */ async function queryCIInfo(ci) { return await service.queryCiInfo(ci); } /** * Complete CI validation with information query * @param ci - The CI number to validate and query * @returns Promise with validation result and information if available * * @example * ```typescript * import { validateCIAndQuery } from 'ci-validation'; * * const result = await validateCIAndQuery('19119365'); * console.log(result); * ``` */ async function validateCIAndQuery(ci) { const isValid = validator.validate(ci); if (!isValid) { return { success: false, error: "Invalid CI: check digit verification failed", code: "INVALID_CI", }; } const normalizedCi = validator.normalize(ci); const queryResult = await service.queryCiInfo(normalizedCi); return { success: true, data: { ci: ci, isValid: true, normalizedCi: normalizedCi, info: queryResult.success ? queryResult.data : queryResult.error, }, }; } // Version info exports.VERSION = "1.0.1"; // Default export exports.default = { validateCI, normalizeCI, validateCIFormat, queryCIInfo, validateCIAndQuery, VERSION: exports.VERSION, }; //# sourceMappingURL=index.js.map