UNPKG

falcotura-atv-sdk

Version:

Librería (SDK) de Javascript/NodeJS para acceder al API de Administración Tributaria Virtual (ATV) del Ministerio de Hacienda.

64 lines 2.61 kB
"use strict"; /** * Utilidades para manejo consistente de fechas en zona horaria de Costa Rica (UTC-6) */ Object.defineProperty(exports, "__esModule", { value: true }); exports.createIssueDate = exports.getCostaRicaDateInfo = exports.toCostaRicaISOString = exports.getCostaRicaDate = void 0; // Costa Rica timezone offset in minutes (UTC-6 = -360 minutes) const COSTA_RICA_OFFSET_MINUTES = -6 * 60; /** * Crea una fecha en la zona horaria de Costa Rica * @param date Fecha opcional, si no se proporciona usa la fecha actual * @returns Date object ajustado a Costa Rica */ function getCostaRicaDate(date) { const now = date || new Date(); const utcTime = now.getTime() + (now.getTimezoneOffset() * 60000); const costaRicaTime = new Date(utcTime + (COSTA_RICA_OFFSET_MINUTES * 60000)); return costaRicaTime; } exports.getCostaRicaDate = getCostaRicaDate; /** * Convierte una fecha a ISO string manteniendo la zona horaria de Costa Rica * @param date Fecha a convertir * @returns ISO string con offset de Costa Rica */ function toCostaRicaISOString(date) { const crDate = getCostaRicaDate(date); // Formatear manualmente para mantener la hora local con el offset correcto const year = crDate.getFullYear(); const month = String(crDate.getMonth() + 1).padStart(2, '0'); const day = String(crDate.getDate()).padStart(2, '0'); const hours = String(crDate.getHours()).padStart(2, '0'); const minutes = String(crDate.getMinutes()).padStart(2, '0'); const seconds = String(crDate.getSeconds()).padStart(2, '0'); const ms = String(crDate.getMilliseconds()).padStart(3, '0'); return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}.${ms}-06:00`; } exports.toCostaRicaISOString = toCostaRicaISOString; /** * Obtiene información de fecha formateada para Costa Rica (usado en generación de clave) * @param date Fecha opcional * @returns Objeto con día, mes y año en Costa Rica */ function getCostaRicaDateInfo(date) { const crDate = getCostaRicaDate(date); const day = String(crDate.getDate()).padStart(2, '0'); const month = String(crDate.getMonth() + 1).padStart(2, '0'); const year = crDate.getFullYear() - 2000; return { dia: day, mes: month, ano: year.toString() }; } exports.getCostaRicaDateInfo = getCostaRicaDateInfo; /** * Crea una fecha de emisión estándar para documentos electrónicos * @returns Date en zona horaria de Costa Rica */ function createIssueDate() { return getCostaRicaDate(); } exports.createIssueDate = createIssueDate; //# sourceMappingURL=dateUtils.js.map