Changelog
All notable changes to recurring-dates. Follows Keep a Changelog and Semantic Versioning.
v1.0.3
Latest2026-03-06✨ Added
- Constant Exports: New
Frequencyobject —Frequency.DAILY,Frequency.WEEKLY,Frequency.MONTHLY,Frequency.YEARLY - Constant Exports: New
Dayobject —Day.MON,Day.TUE,Day.WED,Day.THU,Day.FRI,Day.SAT,Day.SUN - Constant Exports: New
Ordinalobject —Ordinal.FIRST,Ordinal.SECOND,Ordinal.THIRD,Ordinal.FOURTH,Ordinal.FIFTH,Ordinal.LAST - Constant Exports: New
Monthobject —Month.JAN…Month.DEC - Constant Exports: New
Formatobject —Format.DD_MM_YYYY,Format.MM_DD_YYYY,Format.YYYY_MM_DD,Format.MM_SLASH_DD_SLASH_YYYY,Format.DD_SLASH_MM_SLASH_YYYY,Format.MMM_DD_YYYY - Constant Exports: New
Recurrencenamespace combining all of the above under a single import
🐛 Fixed
package.jsonexportsmap now includes a"types"condition so TypeScript can resolveindex.d.tswhenmoduleResolutionisbundlerornode16/nodenext
🔄 Changed
TIMEZONEfield added toRecurringDatesConfiginterface inindex.d.tsindex.d.tsnow fully typed withconstdeclarations for all new constant objects
v1.0.2
2026-03-05✨ Added
- Timezone Support: New
TIMEZONEconfiguration option for IANA timezone support - Timezone Support: Global user support with timezone-aware date generation
- Timezone Support: New timezone utility functions:
- Tests: New
timezone.test.jstest suite with 24 comprehensive timezone tests - Tests: All 154 tests passing across 8 test suites (timezone, daily, weekly, monthly, yearly, format, edge-cases, validation)
- Tests: Tests for timezone validation, offset calculation, date formatting, and timezone compatibility with all frequency patterns
- Tests: Full test coverage including edge cases: null/undefined timezone, invalid timezones, timezone-aware date generation
- Documentation: New "Timezone Support" section in README with examples
- Documentation: Timezone utilities documentation and usage examples
- Documentation: Common timezone reference list with examples
- Documentation: New
TIMEZONE_USECASES.mdguide with 10+ real-world practical examples: - Updated README with use cases overview and link to detailed guide
🚀 Improved
- Enhanced configuration validation with timezone support
- Better error messages for invalid timezone identifiers
- Support for global scheduling applications with multi-timezone users
v1.0.1
2026-03-05✨ Added
- Documentation:
CONTRIBUTING.md: Comprehensive contributor guide including: - README Enhancements: New "Testing" section documenting comprehensive test coverage:
🔄 Changed
- Updated CHANGELOG to new format with emoji indicators (✨, 🚀, 🐛, 🔄, ❌, 🔒, ⚠)
- Enhanced release documentation structure following [Keep a Changelog](https://keepachangelog.com/) best practices
- Improved v1.0.0 release notes with detailed feature breakdown and section organization
v1.0.0
2024-05-25✨ Added
- Core Features: Initial release of recurring-dates package (migrated from
the-recurring-dates) - Core Features: Three main exported functions:
- Recurrence Patterns: Daily recurrence (FREQUENCY: "D") with interval support
- Recurrence Patterns: Weekly recurrence (FREQUENCY: "W") with ISO weekday filters (MON-SUN)
- Recurrence Patterns: Monthly recurrence (FREQUENCY: "M") with specific month dates or ordinals
- Recurrence Patterns: Yearly recurrence (FREQUENCY: "Y") with month filtering and ordinal support (FIRST, SECOND, THIRD, FOURTH, FIFTH, LAST)
- Recurrence Patterns: Support for custom intervals (e.g., every 2 weeks, every 3 months)
- Recurrence Patterns: Explicit date exclusion via
EXCLUDE_DATESconfiguration - Configuration Options:
STARTS_ON: Required start date with FORMAT parsing - Configuration Options:
ENDS_ON: Required end date with validation - Configuration Options:
FREQUENCY: Recurrence type (D/W/M/Y) - Configuration Options:
INTERVAL: Cycle skipping (default: 1) - Configuration Options:
MONTH_DATES: Array of month days for monthly/yearly patterns - Configuration Options:
WEEK_DAYS: ISO weekday codes for weekly/yearly patterns - Configuration Options:
WEEK_ORDINALS: Ordinal selectors for yearly patterns - Configuration Options:
MONTH_NAMES: Month filter for yearly patterns - Configuration Options:
EXCLUDE_DATES: Dates to skip after generation - Configuration Options:
FORMAT: Input/output date format (default: DD-MM-YYYY) - Developer Features: Comprehensive configuration validation system with detailed error messages
- Developer Features: User-friendly error returns:
{ dates: [], error }on validation failure - Developer Features: Utility functions for date manipulation, helper functions, presets, and validation
- Developer Features: Full TypeScript type definitions (
index.d.ts) - Developer Features: Multiple export formats: ESM (default), UMD for CDN/legacy builds
- Developer Features: Development environment setup with Vite for fast builds
- Developer Features: React integration with peer dependency support (React 17+/18+)
- Testing & Quality: Comprehensive test suite with 130 passing test cases:
- Test coverage across all core functionality
- Documentation: Comprehensive README with installation, quick start, and config reference
- Documentation: Usage examples for Vanilla JS and React
- Documentation: CDN integration examples
- Documentation: Interactive demo website at https://recurring-dates.thehardik.in
🚀 Improved
- Clean, vanilla JavaScript implementation with zero external dependencies (React is optional peer dependency)
- Simplified, intuitive API with three main functions covering all use cases
- Non-blocking, efficient date generation using native
Date()API - Lightweight package size suitable for browser and Node.js environments
- Enhanced documentation with clear examples and edge case handling
🔄 Changed
- Major Refactoring: Migrated codebase from
the-recurring-datesto use vanilla JavaScriptDate()API instead of external date libraries - Major Refactoring: Package renamed from
the-recurring-datestorecurring-datesfor better brand identity - Major Refactoring: Restructured codebase with modular organization:
- Breaking Changes (from previous package): API simplified to three main functions instead of multiple exports
- Breaking Changes (from previous package): Configuration object structure updated for clarity
- Breaking Changes (from previous package): Error handling format changed to
{ dates: [], error }for consistency