moon-cycle/.github/docs/CHANGELOG.md

2.7 KiB

Changelog

All notable changes to this project will be documented in this file. Format follows Keep a Changelog.

[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