Open interactive example / Abrir exemplo interativo
English · Português · Examples / Exemplos · Validation / Validação
TypeScript and interfaces / TypeScript e interfaces · Working prototype / Protótipo funcional · Gabriel Demetrios Lafis
A typed scheduling library with a complete bilingual browser interface, UTC day filtering and portable JSON import and export.
- Create, update, delete and sort events; duplicate identifiers are rejected.
- Defensive Date copies protect stored events from mutation by callers.
- JSON import validates the entire schedule before replacing it; browser storage keeps the local agenda.
Requirements: Node.js 24+ and pnpm 11 / Node.js 24+ e pnpm 11.
Run from the repository root. The validation environment installs the components exercised by the tests and documented example; optional integrations may need their separate dependencies.
pnpm install --frozen-lockfile
pnpm test
pnpm buildInput contract / Contrato de entrada: {id, name, date: Date, description?}; JSON dates require an explicit timezone / datas JSON exigem fuso explícito.
Expected behavior / Comportamento esperado: The example adds one design-review event at 2026-10-01T14:00:00Z and verifies it belongs to that UTC day. / O exemplo adiciona uma revisão de projeto em 2026-10-01T14:00:00Z e verifica o dia UTC correspondente.
flowchart LR
A["Browser form / Formulário"]
B["Typed schedule / Agenda tipada"]
C["Validated UTC events / Eventos UTC validados"]
D["Local storage and JSON / Armazenamento local e JSON"]
A --> B --> C --> D
The main path can be followed in src/EventScheduler.ts. Examples call the actual implementation and include assertions; they are not pseudocode.
Dates in the browser form are UTC, not local time. No calendar synchronization, reminders, collaboration server or recurring-event engine is included. Browser storage can be cleared; export backups when needed.
Restored the missing scheduling implementation and browser module; repaired the build; added immutable reads, UTC boundary tests and atomic JSON import.
Biblioteca tipada de agendamento com interface bilíngue completa, filtros por dia UTC e importação e exportação JSON.
- Crie, altere, exclua e ordene eventos; identificadores duplicados são rejeitados.
- Cópias defensivas de Date protegem eventos contra alterações feitas por quem usa a biblioteca.
- A importação JSON valida toda a agenda antes de substituí-la; o armazenamento do navegador preserva a agenda local.
Use os comandos da seção acima a partir da raiz do repositório. Requisitos: Node.js 24+ and pnpm 11 / Node.js 24+ e pnpm 11. O ambiente de validação instala os componentes exercitados pelos testes e pelo exemplo documentado; integrações opcionais podem exigir dependências próprias.
O fluxo principal está em src/EventScheduler.ts. Os exemplos usam a implementação real e verificam resultados com asserções; não são pseudocódigo. O diagrama apresenta os mesmos passos nos dois idiomas.
Datas do formulário são UTC, não hora local. Não há sincronização de calendário, lembretes, servidor colaborativo ou eventos recorrentes. O armazenamento do navegador pode ser apagado; exporte cópias quando necessário.
Restaurados implementação de agendamento e módulo do navegador; corrigida compilação; adicionados leitura protegida, testes de limites UTC e importação JSON atômica.
python -m http.server 8080 --directory docsnode examples/demo.mjsOpen / Abra: http://localhost:8080.
| Location / Local | Purpose / Finalidade |
|---|---|
| Implementation / Implementação | Main domain behavior / Comportamento principal do domínio |
| Example / Exemplo | Executable scenario / Cenário executável |
| Tests / Testes | Normal behavior and failure cases / Fluxos válidos e casos de falha |
| Validation notes / Notas de validação | Corrections, evidence and boundaries / Correções, evidências e limites |
| Workflow / Automação | Automated checks / Verificações automatizadas |
EN: When changing behavior, update the contract, the worked example and a regression test together. Keep synthetic fixtures separate from real data. A passing test suite demonstrates the listed software behaviors; it does not certify a deployment or domain outcome.
PT: Ao alterar comportamento, atualize em conjunto o contrato, o exemplo e um teste de regressão. Separe amostras fictícias de dados reais. Testes aprovados demonstram os comportamentos de software listados; não certificam implantação nem resultado no domínio.
Author / Autor: Gabriel Demetrios Lafis · Institutional contact / Contato institucional
License / Licença: repository license.
JSON import rejects impossible calendar dates, invalid time components and unknown fields before replacing existing events. Leap years, fractional seconds and explicit UTC offsets are checked; accepted dates use four-digit UTC years (0000–9999).
A importação JSON rejeita datas impossíveis, componentes de horário inválidos e campos desconhecidos antes de substituir eventos. Anos bissextos, frações de segundo e fusos explícitos são verificados; datas aceitas usam anos UTC de quatro dígitos (0000–9999).