Skip to content

Commit

Permalink
Update dependency date-fns to v3 (#613)
Browse files Browse the repository at this point in the history
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [date-fns](https://github.com/date-fns/date-fns) | [`^2.30.0` ->
`^3.0.0`](https://renovatebot.com/diffs/npm/date-fns/2.30.0/3.3.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/date-fns/3.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/date-fns/3.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/date-fns/2.30.0/3.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/date-fns/2.30.0/3.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>date-fns/date-fns (date-fns)</summary>

###
[`v3.3.1`](https://github.com/date-fns/date-fns/releases/tag/v3.3.1)

[Compare
Source](https://github.com/date-fns/date-fns/compare/v3.3.0...v3.3.1)

Kudos to [@&#8203;kossnocorp](https://github.com/kossnocorp) and
[@&#8203;fturmel](https://github.com/fturmel) for working on the
release.

##### Fixed

- Fixed DST issue in `getOverlappingDaysInIntervals`, resulting in an
inconsistent number of days returned for intervals starting and ending
in different DST periods.

- Fixed functions incorrectly using `trunc` instead of `round`. The bug
was introduced in v3.3.0. The affected functions:
`differenceInCalendarDays`, `differenceInCalendarISOWeeks`,
`differenceInCalendarWeeks`, `getISOWeek`, `getWeek`, and
`getISOWeeksInYear`.

###
[`v3.3.0`](https://github.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v330---2024-01-20)

[Compare
Source](https://github.com/date-fns/date-fns/compare/v3.2.0...v3.3.0)

On this release worked
[@&#8203;kossnocorp](https://github.com/kossnocorp),
[@&#8203;TheKvikk](https://github.com/TheKvikk),
[@&#8203;fturmel](https://github.com/fturmel) and
[@&#8203;ckcherry23](https://github.com/ckcherry23).

##### Fixed

- Fixed the bug in `getOverlappingDaysInIntervals` caused by incorrect
sorting of interval components that led to 0 for timestamps of different
lengths.

- Fixed bugs when working with negative numbers caused by using
`Math.floor` (`-1.1` → `-2`) instead of `Math.trunc` (`-1.1` → `-1`).
Most of the conversion functions (i.e., `hoursToMinutes`) were affected
when passing some negative fractional input. Also, some other functions
that could be possibly affected by unfortunate timezone/date
combinations were fixed.

The functions that were affected: `format`, `parse`, `getUnixTime`,
`daysToWeeks`, `hoursToMilliseconds`, `hoursToMinutes`,
`hoursToSeconds`, `milliseconds`, `minutesToMilliseconds`,
`millisecondsToMinutes`, `monthsToYears`, `millisecondsToHours`,
`millisecondsToSeconds`, `minutesToHours`, `minutesToSeconds`,
`yearsToQuarters`, `yearsToMonths`, `yearsToDays`, `weeksToDays`,
`secondsToMinutes`, `secondsToHours`, `quartersToYears`,
`quartersToMonths` and `monthsToQuarters`.

- [Fixed the Czech locale's `formatDistance` to include `1` in
`formatDistance`.](https://github.com/date-fns/date-fns/pull/3269)

- Fixed `differenceInSeconds` and other functions relying on rounding
options that can produce a negative 0.

- [Added a preprocessor to the locales API, enabling fixing a
long-standing bug in the French
locale.](https://github.com/date-fns/date-fns/pull/3662)
([#&#8203;1391](https://github.com/date-fns/date-fns/issues/1391))

-   Added missing `yearsToDays` to the FP submodule.

- Made functions using rounding methods always return `0` instead of
`-0`.

##### Added

- [Added `format` alias `formatDate` with corresponding
`FormatDateOptions`
interface](https://github.com/date-fns/date-fns/pull/3653).

###
[`v3.2.0`](https://github.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v320---2024-01-09)

[Compare
Source](https://github.com/date-fns/date-fns/compare/v3.1.0...v3.2.0)

This release is brought to you by
[@&#8203;kossnocorp](https://github.com/kossnocorp),
[@&#8203;fturmel](https://github.com/fturmel),
[@&#8203;grossbart](https://github.com/grossbart),
[@&#8203;MelvinVermeer](https://github.com/MelvinVermeer), and
[@&#8203;jcarstairs-scottlogic](https://github.com/jcarstairs-scottlogic).

##### Fixed

- Fixed types compatability with Lodash's `flow` and fp-ts's `pipe`.
([#&#8203;3641](https://github.com/date-fns/date-fns/issues/3641))

- [Fixed inconsistent behavior of
`roundToNearestMinutes`.](https://github.com/date-fns/date-fns/pull/3132)

##### Added

- Added exports of `format`, `lightFormat`, and `parse` internals that
enable 3rd-parties to consume those.

###
[`v3.1.0`](https://github.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v310---2024-01-05)

[Compare
Source](https://github.com/date-fns/date-fns/compare/v3.0.6...v3.1.0)

This release is brought to you by
[@&#8203;kossnocorp](https://github.com/kossnocorp),
[@&#8203;makstyle119](https://github.com/makstyle119) and
[@&#8203;dmgawel](https://github.com/dmgawel).

##### Fixed

- [Fixed the plural form of weeks in
Swedish](https://github.com/date-fns/date-fns/pull/3448).

##### Added

- [Added `yearsToDays`
function](https://github.com/date-fns/date-fns/pull/3540).

- Added warning about using protected tokens like `Y` or `D` without
passing a corresponding option. [See
#&#8203;2950](https://github.com/date-fns/date-fns/issues/2950).

###
[`v3.0.6`](https://github.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v306---2023-12-22)

[Compare
Source](https://github.com/date-fns/date-fns/compare/v3.0.5...v3.0.6)

On this release worked [@&#8203;imwh0im](https://github.com/imwh0im),
[@&#8203;jamcry](https://github.com/jamcry) and
[@&#8203;tyrw](https://github.com/tyrw).

##### Fixed

- [Fixed bug in `areIntervalsOverlapping` caused by incorrect
sorting](https://github.com/date-fns/date-fns/pull/3628)
([#&#8203;3614](https://github.com/date-fns/date-fns/issues/3614))

###
[`v3.0.5`](https://github.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v305---2023-12-21)

[Compare
Source](https://github.com/date-fns/date-fns/compare/v3.0.4...v3.0.5)

This release is brought to you by
[@&#8203;goku4199](https://github.com/goku4199).

##### Fixed

- [Fixed internal `toDate` not processing string arguments
properly](https://github.com/date-fns/date-fns/pull/3626)

###
[`v3.0.4`](https://github.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v304---2023-12-21)

[Compare
Source](https://github.com/date-fns/date-fns/compare/v3.0.3...v3.0.4)

This release is brought to you by
[@&#8203;kossnocorp](https://github.com/kossnocorp).

##### Fixed

- Fixed isWithinInterval bug caused by incorrectly sorting dates
([#&#8203;3623](https://github.com/date-fns/date-fns/issues/3623)).

###
[`v3.0.3`](https://github.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v303---2023-12-21)

[Compare
Source](https://github.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://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md)
reported by "Are the types wrong?".

###
[`v3.0.2`](https://github.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v302---2023-12-21)

[Compare
Source](https://github.com/date-fns/date-fns/compare/v3.0.1...v3.0.2)

##### Fixed

- Fixed [yet another issue caused by ESM
types](https://github.com/date-fns/date-fns/issues/3620) by pointing
to the same `d.ts` files.

- [Added `package.json` to
exports](https://github.com/date-fns/date-fns/pull/3601) to provide
access to tooling.

- [Fixed TypeScript 5.4 build
break](https://github.com/date-fns/date-fns/pull/3598) by using the
latest type names.

###
[`v3.0.1`](https://github.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v301---2023-12-20)

[Compare
Source](https://github.com/date-fns/date-fns/compare/v3.0.0...v3.0.1)

##### Fixed

- [Fixed an error](https://github.com/date-fns/date-fns/pull/3618) in
certain environments caused by `d.mts` files exporting only types.

###
[`v3.0.0`](https://github.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v300---2023-12-18)

[Compare
Source](https://github.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://github.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.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/ASVGay/the-rhapsodies).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoiZGV2In0=-->
  • Loading branch information
fkoulen committed Feb 17, 2024
2 parents 75087f3 + d65aa4c commit 0837858
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 16 deletions.
76 changes: 61 additions & 15 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
"@types/react": "18.2.56",
"@types/react-dom": "18.2.19",
"autoprefixer": "10.4.17",
"date-fns": "^2.30.0",
"date-fns": "^3.0.0",
"debounce": "^2.0.0",
"dotenv": "^16.0.3",
"eslint": "8.56.0",
Expand Down

0 comments on commit 0837858

Please sign in to comment.