This PR contains the following updates:
Release Notes
harrisiirak/cron-parser (cron-parser)
Compare Source
What's Changed
Full Changelog: harrisiirak/cron-parser@v5.3.1...v5.4.0
Compare Source
What's Changed
Full Changelog: harrisiirak/cron-parser@v5.3.0...v5.3.1
Compare Source
What's Changed
Full Changelog: harrisiirak/cron-parser@v5.2.0...v5.3.0
Compare Source
What's Changed
- Adding support for the H syntax, allowing to add jitter to a cron expression by @MYDIH in #377
- Extended serialization for cron fields by @harrisiirak in #379
Breaking Changes
- #379 changed
CronField constructor signature and removed nthDayOfWeek field from CronExpressionOptions. See PR for more details.
New Contributors
Full Changelog: harrisiirak/cron-parser@v5.1.1...v5.2.0
Compare Source
e6b0046 - Fix last day of month handling when explicit month is set (#375)
a306f80 - Update luxon to the latest (3.6.1) version
099bc28 - Update development dependencies to the latest versions
Compare Source
- #374 - Improve handling and support for special characters (L, #) in the
includesDate method
Compare Source
8f2081e - Simplify strict mode flag usage in getRawFields
6599e15 - Update strict mode documentation
Compare Source
38a8458 - Restore 4.x compatibility and use the current timezone for currentDate instead of setting it to UTC (#370)
Compare Source
84e100f - Set milliseconds to 0 before returning schedule (#368)
Compare Source
e0bda7e - Parse field for day of week should allow 0 or SUN values (#366)
Compare Source
fe6b90e - Add fs/promises to browser import ignore list (#365)
Compare Source
This first patch release contains couple of quick bugfixes that were reported after the first release of v5. Thanks for everybody that tried the new version out and provided some feedback.
9b1e0f3 - Removed unused jest-runner-tsd dev dependency (#361)
683f585 - Use dynamic loading for fs and fs/promises to restore ability to use this package in the browser environment (#362)
5e10db0 - Remove assert module usage (can't be used in the browser environment without polyfill or included extra package) and improve/add test cases (#364)
7ca5c94 - Remove unused .npmignore
9ddf705 - Fix benchmarking tool for module interface
v5.0.0: - TypeScript rewrite
Compare Source
All changes come from #360
Changelog
- BREAKING CHANGE: Bumped the minimum Node.js version to >= 18 and TypeScript to >= 5.
- BREAKING CHANGE:
interval.fields (CronExpression.interval) now returns a readonly instance of CronFieldsCollection instead of a regular array. See CronFieldsCollection.from for how to modify the underlying data structure.
- BREAKING CHANGE: Moved crontab file parsing from
CronParser to a standalone CronFileParser class (fixes #112).
- BREAKING CHANGE: Removal of
utc flag from the options. Pass in UTC timezone instead.
- Refactored the codebase to TypeScript (fixes #190).
- Cleaned up test suites, removed duplicate test cases, and switched from
tap to jest.
- Improved documentation and introduced documentation generated by
typedoc (fixes #309, #322, #269).
- Added benchmark tooling to help detect future performance regressions.
- Added
CronExpression.includesDate to evaluate whether a given date matches the pattern (closes #299).
- Fixed issues where certain range and repeat field expressions produced invalid intervals (fixes #156).
- Fixed an issue with day-of-month handling when the range is explicitly set and no wildcard is used (fixes #284).
- Improved repeat serialization for stringification (fixes #236).
Performance improvements
While this release won't address the performance issues reported in #287, it will bring some performance improvements of around 20-30% on average, depending on the pattern complexity. The following benchmark results were produced on my 2023 MBP.
┌────────────────────┬────────────┬────────────┬──────────┬─────┐
│ Pattern │ Old Mean │ New Mean │ Change │ │
├────────────────────┼────────────┼────────────┼──────────┼─────┤
│ * * * * * * │ 73.55ms │ 37.43ms │ 49.10% │ ↑ │
├────────────────────┼────────────┼────────────┼──────────┼─────┤
│ 0 * * 1,4-10,L * * │ 3504.51ms │ 2338.42ms │ 33.27% │ ↑ │
├────────────────────┼────────────┼────────────┼──────────┼─────┤
│ 10-30/2 2 12 8 0 │ 3111.18ms │ 2234.32ms │ 28.18% │ ↑ │
├────────────────────┼────────────┼────────────┼──────────┼─────┤
│ 0 0 0 * * 4,6L │ 9400.33ms │ 6825.61ms │ 27.39% │ ↑ │
├────────────────────┼────────────┼────────────┼──────────┼─────┤
│ 0 12 */5 6 * │ 7442.68ms │ 5645.95ms │ 24.14% │ ↑ │
├────────────────────┼────────────┼────────────┼──────────┼─────┤
│ 0 15 */5 5 * │ 6998.87ms │ 5443.22ms │ 22.23% │ ↑ │
├────────────────────┼────────────┼────────────┼──────────┼─────┤
│ 0 0 6-20/2,L 2 * │ 8832.87ms │ 6947.63ms │ 21.34% │ ↑ │
├────────────────────┼────────────┼────────────┼──────────┼─────┤
│ 0 0 0 * * 1L,5L │ 15416.07ms │ 12474.12ms │ 19.08% │ ↑ │
├────────────────────┼────────────┼────────────┼──────────┼─────┤
│ 10 2 12 8 7 │ 7105.79ms │ 5947.91ms │ 16.29% │ ↑ │
└────────────────────┴────────────┴────────────┴──────────┴─────┘
Benchmarks can be run locally by executing the command.:
Individual patterns can be benchmarked by executing bench:pattern command:
npm run bench:pattern "* * * * * *"
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 becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.
Uh oh!
There was an error while loading. Please reload this page.
This PR contains the following updates:
^4.9.0->^5.0.0Release Notes
harrisiirak/cron-parser (cron-parser)
v5.4.0Compare Source
What's Changed
Full Changelog: harrisiirak/cron-parser@v5.3.1...v5.4.0
v5.3.1Compare Source
What's Changed
1c32a84Full Changelog: harrisiirak/cron-parser@v5.3.0...v5.3.1
v5.3.0Compare Source
What's Changed
Full Changelog: harrisiirak/cron-parser@v5.2.0...v5.3.0
v5.2.0Compare Source
What's Changed
Breaking Changes
CronFieldconstructor signature and removednthDayOfWeekfield fromCronExpressionOptions. See PR for more details.New Contributors
Full Changelog: harrisiirak/cron-parser@v5.1.1...v5.2.0
v5.1.1Compare Source
e6b0046- Fix last day of month handling when explicit month is set (#375)a306f80- Updateluxonto the latest (3.6.1) version099bc28- Update development dependencies to the latest versionsv5.1.0Compare Source
includesDatemethodv5.0.6Compare Source
8f2081e- Simplify strict mode flag usage in getRawFields6599e15- Update strict mode documentationv5.0.5Compare Source
38a8458- Restore4.xcompatibility and use the current timezone for currentDate instead of setting it to UTC (#370)v5.0.4Compare Source
84e100f- Set milliseconds to 0 before returning schedule (#368)v5.0.3Compare Source
e0bda7e- Parse field for day of week should allow 0 or SUN values (#366)v5.0.2Compare Source
fe6b90e- Add fs/promises to browser import ignore list (#365)v5.0.1Compare Source
This first patch release contains couple of quick bugfixes that were reported after the first release of v5. Thanks for everybody that tried the new version out and provided some feedback.
9b1e0f3- Removed unusedjest-runner-tsddev dependency (#361)683f585- Use dynamic loading forfsandfs/promisesto restore ability to use this package in the browser environment (#362)5e10db0- Removeassertmodule usage (can't be used in the browser environment without polyfill or included extra package) and improve/add test cases (#364)7ca5c94- Remove unused.npmignore9ddf705- Fix benchmarking tool for module interfacev5.0.0: - TypeScript rewriteCompare Source
All changes come from #360
Changelog
interval.fields(CronExpression.interval) now returns a readonly instance ofCronFieldsCollectioninstead of a regular array. SeeCronFieldsCollection.fromfor how to modify the underlying data structure.CronParserto a standaloneCronFileParserclass (fixes #112).utcflag from the options. Pass inUTCtimezone instead.taptojest.typedoc(fixes #309, #322, #269).CronExpression.includesDateto evaluate whether a given date matches the pattern (closes #299).Performance improvements
While this release won't address the performance issues reported in #287, it will bring some performance improvements of around 20-30% on average, depending on the pattern complexity. The following benchmark results were produced on my 2023 MBP.
Benchmarks can be run locally by executing the command.:
Individual patterns can be benchmarked by executing
bench:patterncommand: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 becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.