mirror of
https://github.com/acamarata/moon-cycle.git
synced 2026-07-01 11:14:31 +00:00
45 lines
2.7 KiB
Markdown
45 lines
2.7 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|
|
|
## [2.0.0] - 2025-02-25
|
|
|
|
### Added
|
|
|
|
- TypeScript source (`src/`) with full type definitions: dual CJS and ESM builds via tsup
|
|
- `imageFolder(set, size, quality)` helper to construct image directory names
|
|
- `cdnUrl(filename, set, size, quality, ref?)` helper to generate jsDelivr CDN URLs, enabling image serving without self-hosting the ~438 MB dataset
|
|
- Exported constants: `SYNODIC_MONTH`, `MONTH_IMAGES`, `YEAR_IMAGES`, `MONTH_ANCHOR`, `YEAR_ANCHOR`
|
|
- Exported types: `ImageSet`, `ImageSize`, `ImageQuality`
|
|
- Dual ESM and CJS builds with `.mjs` / `.cjs` extensions and matching `.d.ts` / `.d.mts` type definitions
|
|
- Proper `exports` map in `package.json` (types-first conditional exports)
|
|
- `test.mjs` and `test-cjs.cjs`: full assertion-based test suites covering bounds, anchor dates, edge cases, and all exported functions
|
|
- GitHub Actions CI workflow: Node 20/22/24 test matrix, typecheck job, pack-check job
|
|
- GitHub Actions wiki-sync workflow: syncs `.wiki/` to GitHub Wiki on push to `main`
|
|
- `.wiki/` documentation: Home, API Reference, Architecture, Migration Guide
|
|
- `.nvmrc`, `.editorconfig`, `.npmrc`, `pnpm-workspace.yaml`
|
|
|
|
### Changed
|
|
|
|
- Package is now npm-publishable: `files` field restricts the npm package to `dist/`, README, LICENSE, and CHANGELOG: images are excluded
|
|
- `package.json` fully updated: correct author name, accurate description, `engines`, `sideEffects`, `publishConfig`, `repository.url` with `git+https://` prefix, expanded keywords
|
|
- `repository.url` corrected to use `git+https://` prefix per npm convention
|
|
|
|
### Fixed
|
|
|
|
- **Off-by-one bug in both algorithms.** The v1 implementation mapped dates to 0-indexed filenames (`000.webp` to `707.webp` monthly, `0000.webp` to `8759.webp` yearly). The image dataset is 1-indexed (`001.webp` to `708.webp`, `0001.webp` to `8760.webp`). Both functions now return the correct 1-indexed filename. This is a breaking change for anyone who was working around the bug or had a local image set starting at `000.webp`.
|
|
- TypeScript definitions in `index.d.ts` were incorrect: both functions were typed as returning `{ result: string }` instead of `string`. The new generated types are accurate.
|
|
|
|
### Removed
|
|
|
|
- `index.js`, `cycleMonth.js`, `cycleYear.js`: replaced by `src/` TypeScript source and `dist/` build output
|
|
- `index.d.ts`: replaced by generated `dist/index.d.ts` and `dist/index.d.mts`
|
|
- `test.js`: replaced by `test.mjs` and `test-cjs.cjs`
|
|
|
|
## [1.0.1] - 2023-11-14
|
|
|
|
- Minor repository metadata updates
|
|
|
|
## [1.0.0] - 2023-11-14
|
|
|
|
- Initial release: `cycleMonth` and `cycleYear` functions, 708 monthly and 8,760 yearly NASA moon phase images in WebP format
|