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
JavaScript
;
/**
* 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