All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Removed hardcoded sensitive identifying information (NIT/CUI) from all documentation examples and replaced them con generic mock data to prevent personal data leakage.
- Reduced NPM package size by excluding documentation source code from the final tarball.
- Created a dedicated
docs/installation.mdpage for better visibility of installation instructions and basic usage.
- Consolidated GitHub Actions workflows (
ci.yml,deploy.yml,publish.yml) into a single, parallelizedci.ymlpipeline.
- Fixed NPM Provenance (OIDC) deployment issues by delegating authentication natively to
npm publishand avoiding empty/legacyNPM_TOKENcollisions. - Resolved GitHub Pages
Environment protection ruleserror preventing deployments triggered by tags.
- BREAKING: Renamed package to scoped
@rodmarzavala/gt-utils-js. - Removed emojis from documentation to improve technical formalism.
- Configured automated NPM deployments using OpenID Connect (Trusted Publishers).
- Included package installation instructions (
npm,yarn,pnpm,bun) on the VitePress documentation homepage.
- Added
ignoreDeprecations: "6.0"to silenceTS5101warning breaking CI/CD pipeline on TypeScript 6.x builds.
-
Core Identity (
gt-utils-js/identity)- Validation for traditional NITs (
isValidNit). - Validation for 13-digit CUI/DPI using strict Modulo 11 checksum (
isValidCui). - Extract geographical data from CUI trailing digits (
getCuiInformation). - Adheres to SAT 2025 rule allowing DPI as valid NIT.
- Validation for traditional NITs (
-
Finance & Taxes (
gt-utils-js/finance,gt-utils-js/taxes)- Convert monetary amounts to Spanish text for electronic invoicing (FEL) via
amountToWords. - Calculate precise Guatemalan taxes (IVA 12%, ISR 5%/7% based on total) depending on Regime ('GENERAL', 'SMALL_TAXPAYER') via
calculateTaxes. - Infer banks from IBAN/account prefixes (
getBankFromAccount).
- Convert monetary amounts to Spanish text for electronic invoicing (FEL) via
-
Labor & HR (
gt-utils-js/labor)- Robust Severance Calculator (
calculateSeverance) processing proportional Aguinaldo, Bono 14, and Vacations. - Indemnity calculations based on "14 salaries / 12 months" formula when dealing with Unjustified Firing.
- Robust Severance Calculator (
-
Geography (
gt-utils-js/geo)- Offline Reverse Geocoding via
findMunicipalityByLatLngutilizing a local dataset and Ray-Casting algorithm. - Maps
(Lat, Lng)coordinate pairs to corresponding Department and Municipality.
- Offline Reverse Geocoding via
-
Holidays & Calendar (
gt-utils-js/holidays,gt-utils-js/calendar)- Computus astronomy algorithm dynamically calculates Easter/Semana Santa for any given year.
- Hardcoded list of official national holidays.
- Implementation of "Decreto 42-2010" (Ley de Turismo Interno) shifting movable holidays (e.g. Día del Ejército) to Monday.
-
Vehicles (
gt-utils-js/vehicles)- Strict Guatemalan License Plate validation parsing plate types (P, C, M, A, U, etc.) and separating numeric and alphanumeric segments (
parseLicensePlate).
- Strict Guatemalan License Plate validation parsing plate types (P, C, M, A, U, etc.) and separating numeric and alphanumeric segments (
-
Documentation & CI/CD
- Fully documented VitePress site covering all edge-first functionalities.
- Integrated GitHub Actions pipeline for linting, security audits, parallel testing, and automated GitHub Pages deployment.
playground.tsadded to showcase common implementation scenarios.
- Refactored entire codebase to strict TypeScript with Zero Dependencies.
- Configured Edge-first outputs supporting ESM and CJS formats via
tsup.