- Add input validation (TypeError) to cycleMonth and cycleYear
- Convert tests to node:test runner with describe/it structure
- Add ESLint + Prettier with lint, format, and format:check scripts
- Update CI workflow with lint job, frozen-lockfile, and pack-check
- Add noImplicitReturns, noFallthroughCasesInSwitch, skipLibCheck to tsconfig
- Add invalid Date tests for both ESM and CJS suites
Port to TypeScript with dual CJS/ESM build via tsup. Fix off-by-one bug
in both cycleMonth and cycleYear (images are 1-indexed; v1 returned
000.webp/0000.webp which don't exist). Add imageFolder and cdnUrl helpers
for jsDelivr CDN integration. Export constants and types. Separate the
~438 MB image dataset from the npm package via the files field, making
moon-cycle publishable to npm for the first time. Add CI workflow with
Node 20/22/24 matrix, typecheck, and pack-check jobs. Add wiki-sync
workflow and full .wiki/ documentation (Home, API Reference, Architecture,
Migration Guide).