date-fns/date-fns (date-fns)
### [`v3.0.6`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v306---2023-12-22)
[Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.0.5...v3.0.6)
On this release worked [@imwh0im](https://togithub.com/imwh0im), [@jamcry](https://togithub.com/jamcry) and [@tyrw](https://togithub.com/tyrw).
##### Fixed
- [Fixed bug in `areIntervalsOverlapping` caused by incorrect sorting](https://togithub.com/date-fns/date-fns/pull/3628) ([#3614](https://togithub.com/date-fns/date-fns/issues/3614))
### [`v3.0.5`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v305---2023-12-21)
[Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.0.4...v3.0.5)
This release is brought to you by [@goku4199](https://togithub.com/goku4199).
##### Fixed
- [Fixed internal `toDate` not processing string arguments properly](https://togithub.com/date-fns/date-fns/pull/3626)
### [`v3.0.4`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v304---2023-12-21)
[Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.0.3...v3.0.4)
This release is brought to you by [@kossnocorp](https://togithub.com/kossnocorp).
##### Fixed
- Fixed isWithinInterval bug caused by incorrectly sorting dates ([#3623](https://togithub.com/date-fns/date-fns/issues/3623)).
### [`v3.0.3`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v303---2023-12-21)
[Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.0.2...v3.0.3)
##### Fixed
- Rolled back pointing ESM types to the same `d.ts` files. Instead now it copies the content to avoid [the Masquerading as CJS problem](https://togithub.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md) reported by "Are the types wrong?".
### [`v3.0.2`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v302---2023-12-21)
[Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.0.1...v3.0.2)
##### Fixed
- Fixed [yet another issue caused by ESM types](https://togithub.com/date-fns/date-fns/issues/3620) by pointing to the same `d.ts` files.
- [Added `package.json` to exports](https://togithub.com/date-fns/date-fns/pull/3601) to provide access to tooling.
- [Fixed TypeScript 5.4 build break](https://togithub.com/date-fns/date-fns/pull/3598) by using the latest type names.
### [`v3.0.1`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v301---2023-12-20)
[Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.0.0...v3.0.1)
##### Fixed
- [Fixed an error](https://togithub.com/date-fns/date-fns/pull/3618) in certain environments caused by `d.mts` files exporting only types.
### [`v3.0.0`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v300---2023-12-18)
[Compare Source](https://togithub.com/date-fns/date-fns/compare/v2.30.0...v3.0.0)
##### Changed
- **BREAKING**: date-fns is now a dual-package with the support of both ESM and CommonJS. The files exports are now explicitly in the `package.json`. The ESM files now have `.mjs` extension.
- **BREAKING**: The package now has a flat structure, meaning functions are now named `node_modules/date-fns/add.mjs`, locales are `node_modules/date-fns/locale/enUS.mjs`, etc.
- **BREAKING**: Now all file content’s exported via named exports instead of `export default`, which will require change direct imports i.e. `const addDays = require(‘date-fns/addDays’)` to `const { addDays } = require(‘date-fns/addDays’)`.
- **BREAKING**: TypeScript types are now completely rewritten, check out the `d.ts` files for more information.
- **BREAKING**: `constants` now is not exported via the index, so to import one use `import { daysInYear } from "date-fns/constants";`. It improves compatibility with setups that modularize imports [like Next.js](https://twitter.com/kossnocorp/status/1731181274579325260).
- **BREAKING**: Functions now don’t check the number of passed arguments, delegating this task to type checkers. The functions are now slimmer because of this.
- **BREAKING** The arguments are not explicitly converted to the target types. Instead, they are passed as is, delegating this task to type checkers.
- **BREAKING**: Functions that accept `Interval` arguments now do not throw an error if the start is before the end and handle it as a negative interval. If one of the properties in an `Invalid Date`, these functions also do not throw and handle them as invalid intervals.
- `areIntervalsOverlapping` normalize intervals before comparison, so `{ start: a, end: b }` is practically equivalent to `{ start: b, end: a }`. When comparing intervals with one of the properties being `Invalid Date`, the function will return false unless the others are valid and equal, given the `inclusive` option is passed. Otherwise, and when even one of the intervals has both properties invalid, the function will always return `false`.
- `getOverlappingDaysInIntervals` now normalizes intervals before comparison, so `{ start: a, end: b }` is practically equivalent to `{ start: b, end: a }`. If any of the intervals’ properties is an `Invalid Date`, the function will always return 0.
- `isWithinInterval` now normalizes intervals before comparison, so `{ start: a, end: b }` is practically equivalent to `{ start: b, end: a }`. If any of the intervals’ properties is an `Invalid Date`, the function will always return false.
- `intervalToDuration` now returns negative durations for negative intervals. If one or both of the interval properties are invalid, the function will return an empty object.
- The eachXOfInterval functions (`eachDayOfInterval`, `eachHourOfInterval`, `eachMinuteOfInterval`, `eachMonthOfInterval`, `eachWeekendOfInterval`, `eachWeekendOfMonth`, `eachWeekendOfYear`, `eachWeekOfInterval`, `eachYearOfInterval`) now return a reversed array if the passed interval’s start is after the end. Invalid properties will result in an empty array. Functions that accept the `step` option now also allow negative, 0, and NaN values and return reversed results if the step is negative and an empty array otherwise.
- **BREAKING**: `intervalToDuration` now skips 0 values in the resulting duration, resulting in more compact objects with only relevant properties.
- **BREAKING**: `roundToNearestMinutes` now returns `Invalid Date` instead of throwing an error when `nearestTo` option is less than 1 or more than 30.
- **BREAKING**: IE is no longer supported.
- **BREAKING**: Now all functions use `Math.trunc` rounding method where rounding is required. The behavior is configurable on a per-function basis.
- **BREAKING**: Undocumented `onlyNumeric` option was removed from `nn` and `sv` locales. If you relied on it, [please contact me](mailto:koss@nocorp.me).
- **BREAKING**: Flow is not supported anymore. If you relied on it, [please contact me](mailto:koss@nocorp.me).
- **BREAKING**: The locales now use regular functions instead of the UTC version, which should not break any code unless you used locales directly.
##### Added
- All functions that accept date arguments now also accept strings.
- All functions now export options interfaces.
- Now functions allow passing custom Date extensions like [UTCDate](https://togithub.com/date-fns/utc). They will detect and use the arguments constructor to generate the result of the same class.
- `eachMonthOfInterval`, `eachQuarterOfInterval`, `eachWeekOfInterval`, and `eachYearOfInterval` now accept the `step` option like most of the eachXOfInterval functions.
- A new `interval` function that validates interval, emulating the v2 interval functions behavior.
- `differenceInX` functions now accept options and allow setting up `roundingMethod` that configures how the result is rounded. `Math.trunc` is the default method.
Configuration
📅 Schedule: Branch creation - "before 4am on the first day of the month" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Never, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
^2.0.1
->^2.0.1 \|\| ^3.0.0
2.12.0
->3.0.6
Release Notes
date-fns/date-fns (date-fns)
### [`v3.0.6`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v306---2023-12-22) [Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.0.5...v3.0.6) On this release worked [@imwh0im](https://togithub.com/imwh0im), [@jamcry](https://togithub.com/jamcry) and [@tyrw](https://togithub.com/tyrw). ##### Fixed - [Fixed bug in `areIntervalsOverlapping` caused by incorrect sorting](https://togithub.com/date-fns/date-fns/pull/3628) ([#3614](https://togithub.com/date-fns/date-fns/issues/3614)) ### [`v3.0.5`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v305---2023-12-21) [Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.0.4...v3.0.5) This release is brought to you by [@goku4199](https://togithub.com/goku4199). ##### Fixed - [Fixed internal `toDate` not processing string arguments properly](https://togithub.com/date-fns/date-fns/pull/3626) ### [`v3.0.4`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v304---2023-12-21) [Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.0.3...v3.0.4) This release is brought to you by [@kossnocorp](https://togithub.com/kossnocorp). ##### Fixed - Fixed isWithinInterval bug caused by incorrectly sorting dates ([#3623](https://togithub.com/date-fns/date-fns/issues/3623)). ### [`v3.0.3`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v303---2023-12-21) [Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.0.2...v3.0.3) ##### Fixed - Rolled back pointing ESM types to the same `d.ts` files. Instead now it copies the content to avoid [the Masquerading as CJS problem](https://togithub.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md) reported by "Are the types wrong?". ### [`v3.0.2`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v302---2023-12-21) [Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.0.1...v3.0.2) ##### Fixed - Fixed [yet another issue caused by ESM types](https://togithub.com/date-fns/date-fns/issues/3620) by pointing to the same `d.ts` files. - [Added `package.json` to exports](https://togithub.com/date-fns/date-fns/pull/3601) to provide access to tooling. - [Fixed TypeScript 5.4 build break](https://togithub.com/date-fns/date-fns/pull/3598) by using the latest type names. ### [`v3.0.1`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v301---2023-12-20) [Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.0.0...v3.0.1) ##### Fixed - [Fixed an error](https://togithub.com/date-fns/date-fns/pull/3618) in certain environments caused by `d.mts` files exporting only types. ### [`v3.0.0`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v300---2023-12-18) [Compare Source](https://togithub.com/date-fns/date-fns/compare/v2.30.0...v3.0.0) ##### Changed - **BREAKING**: date-fns is now a dual-package with the support of both ESM and CommonJS. The files exports are now explicitly in the `package.json`. The ESM files now have `.mjs` extension. - **BREAKING**: The package now has a flat structure, meaning functions are now named `node_modules/date-fns/add.mjs`, locales are `node_modules/date-fns/locale/enUS.mjs`, etc. - **BREAKING**: Now all file content’s exported via named exports instead of `export default`, which will require change direct imports i.e. `const addDays = require(‘date-fns/addDays’)` to `const { addDays } = require(‘date-fns/addDays’)`. - **BREAKING**: TypeScript types are now completely rewritten, check out the `d.ts` files for more information. - **BREAKING**: `constants` now is not exported via the index, so to import one use `import { daysInYear } from "date-fns/constants";`. It improves compatibility with setups that modularize imports [like Next.js](https://twitter.com/kossnocorp/status/1731181274579325260). - **BREAKING**: Functions now don’t check the number of passed arguments, delegating this task to type checkers. The functions are now slimmer because of this. - **BREAKING** The arguments are not explicitly converted to the target types. Instead, they are passed as is, delegating this task to type checkers. - **BREAKING**: Functions that accept `Interval` arguments now do not throw an error if the start is before the end and handle it as a negative interval. If one of the properties in an `Invalid Date`, these functions also do not throw and handle them as invalid intervals. - `areIntervalsOverlapping` normalize intervals before comparison, so `{ start: a, end: b }` is practically equivalent to `{ start: b, end: a }`. When comparing intervals with one of the properties being `Invalid Date`, the function will return false unless the others are valid and equal, given the `inclusive` option is passed. Otherwise, and when even one of the intervals has both properties invalid, the function will always return `false`. - `getOverlappingDaysInIntervals` now normalizes intervals before comparison, so `{ start: a, end: b }` is practically equivalent to `{ start: b, end: a }`. If any of the intervals’ properties is an `Invalid Date`, the function will always return 0. - `isWithinInterval` now normalizes intervals before comparison, so `{ start: a, end: b }` is practically equivalent to `{ start: b, end: a }`. If any of the intervals’ properties is an `Invalid Date`, the function will always return false. - `intervalToDuration` now returns negative durations for negative intervals. If one or both of the interval properties are invalid, the function will return an empty object. - The eachXOfInterval functions (`eachDayOfInterval`, `eachHourOfInterval`, `eachMinuteOfInterval`, `eachMonthOfInterval`, `eachWeekendOfInterval`, `eachWeekendOfMonth`, `eachWeekendOfYear`, `eachWeekOfInterval`, `eachYearOfInterval`) now return a reversed array if the passed interval’s start is after the end. Invalid properties will result in an empty array. Functions that accept the `step` option now also allow negative, 0, and NaN values and return reversed results if the step is negative and an empty array otherwise. - **BREAKING**: `intervalToDuration` now skips 0 values in the resulting duration, resulting in more compact objects with only relevant properties. - **BREAKING**: `roundToNearestMinutes` now returns `Invalid Date` instead of throwing an error when `nearestTo` option is less than 1 or more than 30. - **BREAKING**: IE is no longer supported. - **BREAKING**: Now all functions use `Math.trunc` rounding method where rounding is required. The behavior is configurable on a per-function basis. - **BREAKING**: Undocumented `onlyNumeric` option was removed from `nn` and `sv` locales. If you relied on it, [please contact me](mailto:koss@nocorp.me). - **BREAKING**: Flow is not supported anymore. If you relied on it, [please contact me](mailto:koss@nocorp.me). - **BREAKING**: The locales now use regular functions instead of the UTC version, which should not break any code unless you used locales directly. ##### Added - All functions that accept date arguments now also accept strings. - All functions now export options interfaces. - Now functions allow passing custom Date extensions like [UTCDate](https://togithub.com/date-fns/utc). They will detect and use the arguments constructor to generate the result of the same class. - `eachMonthOfInterval`, `eachQuarterOfInterval`, `eachWeekOfInterval`, and `eachYearOfInterval` now accept the `step` option like most of the eachXOfInterval functions. - A new `interval` function that validates interval, emulating the v2 interval functions behavior. - `differenceInX` functions now accept options and allow setting up `roundingMethod` that configures how the result is rounded. `Math.trunc` is the default method.Configuration
📅 Schedule: Branch creation - "before 4am on the first day of the month" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Never, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR has been generated by Mend Renovate. View repository job log here.