{"_id":"@core-tecnologias-empresariales/core-time","name":"@core-tecnologias-empresariales/core-time","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@core-tecnologias-empresariales/core-time","version":"0.1.0","description":"Autoridad temporal transversal (UTC, timezones IANA, conversión local↔UTC con validación de DST, business date) para el ecosistema Core Tecnología Empresarial. Sin lógica tributaria ni de negocio.","license":"UNLICENSED","publishConfig":{"access":"public"},"type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":"./dist/index.js"},"devDependencies":{"typescript":"^5.7.0","@types/node":"^20.14.0"},"scripts":{"build":"tsc -p tsconfig.json","test":"tsc -p tsconfig.json && node --test dist"},"_id":"@core-tecnologias-empresariales/core-time@0.1.0","_integrity":"sha512-LoS1FBY7cP0Om7Q+Oz0JCILZqpwplaXOGkkirojV44beI7ckNZnE8q+S00UmczkyWgv1k2MiZia41Kn3gNKH1Q==","_resolved":"C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\066fdb2050903210cf0ee0fbfbd9b2db\\core-tecnologias-empresariales-core-time-0.1.0.tgz","_from":"file:core-tecnologias-empresariales-core-time-0.1.0.tgz","_nodeVersion":"20.20.0","_npmVersion":"11.11.0","dist":{"integrity":"sha512-LoS1FBY7cP0Om7Q+Oz0JCILZqpwplaXOGkkirojV44beI7ckNZnE8q+S00UmczkyWgv1k2MiZia41Kn3gNKH1Q==","shasum":"067909e3585812bd9f2f33e3f33e9b23e2b8dc83","tarball":"https://registry.npmjs.org/@core-tecnologias-empresariales/core-time/-/core-time-0.1.0.tgz","fileCount":29,"unpackedSize":32428,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCeZt5FRMPMbdg2wC9ok6I6YsnDmYTKwwubvWtipWnCsgIgfIVTR7XfdYmTptqn9BTgUQlsADQFgdl8JgPZuFeM0fg="}]},"_npmUser":{"name":"balamchac","email":"marcelosazop@gmail.com"},"directories":{},"maintainers":[{"name":"balamchac","email":"marcelosazop@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core-time_0.1.0_1788401843407_0.6598277709328284"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-03T02:17:23.273Z","0.1.0":"2026-09-03T02:17:23.554Z","modified":"2026-09-03T02:17:23.837Z"},"maintainers":[{"name":"balamchac","email":"marcelosazop@gmail.com"}],"description":"Autoridad temporal transversal (UTC, timezones IANA, conversión local↔UTC con validación de DST, business date) para el ecosistema Core Tecnología Empresarial. Sin lógica tributaria ni de negocio.","license":"UNLICENSED","readme":"# @core-tecnologias-empresariales/core-time\n\nAutoridad temporal del ecosistema Core Tecnología Empresarial: UTC como estándar de persistencia, timezones IANA, conversión local↔UTC con validación de DST, y separación entre instante y fecha de negocio.\n\n## Por qué existe\n\nEl navegador nunca debe ser la autoridad de tiempo para auditoría, `createdAt`, eventos, expiraciones críticas ni operaciones tributarias. `core-time` es el único punto donde el backend genera y convierte instantes.\n\n```ts\nimport { now, nowIn, toUTC, fromUTC, toBusinessDate, parse } from \"@core-tecnologias-empresariales/core-time\";\n\nnow();                                          // \"2026-09-03T01:30:00.000Z\" — instante UTC actual\nnowIn(\"America/Santiago\");                       // { instant, timezone, local: \"2026-09-02T21:30:00-04:00\" }\n\ntoUTC(\"2026-09-02T21:30:00\", \"America/Santiago\"); // \"2026-09-03T01:30:00.000Z\"\nfromUTC(\"2026-09-03T01:30:00.000Z\", \"America/Santiago\"); // \"2026-09-02 21:30:00\"\n\ntoBusinessDate(\"2026-09-03T03:59:59.000Z\", \"America/Santiago\"); // \"2026-09-02\" — 23:59:59 hora Chile\n\nparse(\"2026-09-03T01:30:00Z\");   // { kind: \"instant\", instant: ... }\nparse(\"2026-09-02T21:30:00\");    // { kind: \"localDateTime\", local: ... }\nparse(\"2026-09-02\");             // { kind: \"localDate\", date: ... }\nparse(\"03/09/2026 01:30\");       // throws InvalidDateError — formato ambiguo, rechazado\n```\n\n## Validación de DST\n\n`toUTC()` nunca adivina durante una transición de horario: si la hora local no existe (salto de primavera) o es ambigua (ocurre dos veces al retroceder el reloj), lanza `NonexistentLocalTimeError`/`AmbiguousLocalTimeError` en vez de elegir un offset arbitrario.\n\n## Errores tipados\n\n`InvalidTimezoneError`, `InvalidDateError`, `InvalidInstantError`, `AmbiguousLocalTimeError`, `NonexistentLocalTimeError`.\n\n## Para qué NO sirve (`ponytail:` diferido / fuera de alcance)\n\n- **Formateo para presentación** (`\"02-09-2026 21:30:00\"` con locale/estilo) — eso es `core-formatter` (`formatter.date/time/dateTime`), que ya envuelve `Intl.DateTimeFormat` con locale/timezone. `core-time` no lo duplica.\n- **`timezoneForCountry()`** — `core-formatter`'s `country(code).timezone` ya cubre esto para los mercados curados; no se duplicó la tabla acá.\n- Reglas tributarias, folios, DTE — eso es de Core Tributario.\n- `Temporal` — se evaluó pero no está estable en la matriz de runtimes objetivo; la implementación usa `Intl`/`Date` nativos, abstraídos detrás de esta API para poder migrar sin romper consumidores.\n\n## Instalación\n\n```bash\npnpm add @core-tecnologias-empresariales/core-time\n```\n\n## Desarrollo\n\n```bash\npnpm build\npnpm test\n```\n","readmeFilename":"README.md","_rev":"1-7e14ff2bd84bfff946b6182c6f22f122"}