{"_id":"@eligo-public/later","_rev":"2-d587dbdf3555c7e6e18272a2267a610d","name":"@eligo-public/later","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@eligo-public/later","version":"1.0.0","keywords":["schedule","occurrences","recur","cron"],"author":{"name":"BunKat","email":"bill@levelstory.com"},"license":"MIT","_id":"@eligo-public/later@1.0.0","maintainers":[{"name":"mihaislobozeanu","email":"mihai.slobozeanu@gmail.com"}],"contributors":[{"name":"Mihai Slobozeanu","email":"mihaislobozeanu@gmail.com"},{"name":"Vlad Dima","email":"vladima2001@gmail.com"}],"homepage":"https://github.com/mihaislobozeanu/later#readme","bugs":{"url":"https://github.com/mihaislobozeanu/later/issues"},"jam":{"main":"later.js","shim":{"exports":"later"}},"dist":{"shasum":"4ce1489c26652c65b6061d4a4c23913c6418b988","tarball":"https://registry.npmjs.org/@eligo-public/later/-/later-1.0.0.tgz","fileCount":112,"integrity":"sha512-oBgzWb1PMRG+T+K0tl+Fi1HFzXItyjk8cThkG8jkJe1EBPez0P73VNK54fOjEhHwNZn7ONMxGhD11dkAAePv7A==","signatures":[{"sig":"MEQCIDV5u8Thj1I7hhqVdTdpV5DnmHKlPZcK3FB6YelQl3DSAiB+E+7iaZaobMnsP3m0VY0Af6fLQfbwUG6sKDk4oTrGKg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":941562},"main":"index.js","gitHead":"9257ee8d3524a260acb61ffa25eda530eb788f26","scripts":{"test":"mocha test/**/*-test.js --reporter dot"},"_npmUser":{"name":"mihaislobozeanu","email":"mihai.slobozeanu@gmail.com"},"browserify":"index-browserify.js","repository":{"url":"git://github.com/mihaislobozeanu/later.git","type":"git"},"_npmVersion":"6.14.18","description":"Determine later (or previous) occurrences of recurring schedules","directories":{},"_nodeVersion":"14.21.3","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"*","smash":"~0.0.8","jslint":"*","should":">=0.6.3","benchmark":"*","uglify-js":"*"},"_npmOperationalInternal":{"tmp":"tmp/later_1.0.0_1733731246188_0.27044307778715715","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"_id":"@eligo-public/later@1.0.1","jam":{"main":"later.js","shim":{"exports":"later"}},"bugs":{"url":"https://github.com/mihaislobozeanu/later/issues"},"dist":{"shasum":"619b378d7fa5f9ffab7d3129fea14a915e479b70","tarball":"https://registry.npmjs.org/@eligo-public/later/-/later-1.0.1.tgz","fileCount":112,"integrity":"sha512-SlA+6i9wqEjGCEChH7/5R6EM3N+m3TQEr9emfHrXeCEXDxkGMRMWsL3CgZej6j0J9Xg61UTzzVApnUwIs/M8yw==","signatures":[{"sig":"MEUCIAQHdQVfdFanZb033EUfuh8TSzH7QGTvXiYlZHJsM5B/AiEAsj2ojjIflqloc/ZCmYYne6M0IEG+fPvMOJgAt1hQBCc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC63nyUH1CqG2rfkkTDEzdj40pqBu5E/rIIAVK/l6Zr+gIhAO03BRj1NbyPL579HvFBy6Z7xERs3Wgyuu54brgo2RFF"}],"unpackedSize":943640},"main":"index.js","name":"@eligo-public/later","author":{"name":"BunKat","email":"bill@levelstory.com"},"gitHead":"e3b435bbc87dabd61ed90974d3f8a4e6b489f469","license":"MIT","scripts":{"test":"mocha test/**/*-test.js --reporter dot"},"version":"1.0.1","_npmUser":{"name":"mihaislobozeanu","email":"mihai.slobozeanu@gmail.com"},"homepage":"https://github.com/mihaislobozeanu/later#readme","keywords":["schedule","occurrences","recur","cron"],"browserify":"index-browserify.js","repository":{"url":"git://github.com/mihaislobozeanu/later.git","type":"git"},"_npmVersion":"11.6.2","description":"Determine later (or previous) occurrences of recurring schedules","directories":{},"maintainers":[{"name":"mihaislobozeanu","email":"mihai.slobozeanu@gmail.com"}],"_nodeVersion":"24.13.0","contributors":[{"name":"Mihai Slobozeanu","email":"mihaislobozeanu@gmail.com"},{"name":"Vlad Dima","email":"vladima2001@gmail.com"}],"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"*","smash":"~0.0.8","jslint":"*","should":">=0.6.3","benchmark":"*","uglify-js":"*"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/later_1.0.1_1790757222837_0.20374495974113382"}}},"time":{"created":"2024-12-09T08:00:46.103Z","modified":"2026-09-30T08:33:43.091Z","1.0.0":"2024-12-09T08:00:46.367Z","1.0.1":"2026-09-30T08:33:42.930Z"},"bugs":{"url":"https://github.com/mihaislobozeanu/later/issues"},"author":{"name":"BunKat","email":"bill@levelstory.com"},"license":"MIT","homepage":"https://github.com/mihaislobozeanu/later#readme","keywords":["schedule","occurrences","recur","cron"],"repository":{"url":"git://github.com/mihaislobozeanu/later.git","type":"git"},"description":"Determine later (or previous) occurrences of recurring schedules","contributors":[{"name":"Mihai Slobozeanu","email":"mihaislobozeanu@gmail.com"},{"name":"Vlad Dima","email":"vladima2001@gmail.com"}],"maintainers":[{"name":"mihaislobozeanu","email":"mihai.slobozeanu@gmail.com"}],"readme":"## This project is no longer being maintained. It should be treated as sample code on one technique to calculate future instances of complex schedules. If you are looking to fire a task every 1 minute, use a cron scheduler instead.\n\n# [Later](http://bunkat.github.io/later/) [![Build Status](https://travis-ci.org/bunkat/later.svg)](https://travis-ci.org/bunkat/later)\n\n_Later_ is a library for describing recurring schedules and calculating their future occurrences.  It supports a very flexible schedule definition including support for composite schedules and schedule exceptions. Create new schedules manually, via Cron expression, via text expressions, or using a fully chainable API.\n\nTypes of schedules supported by _Later_:\n\n* Run a report on the last day of every month at 12 AM except in December\n* Install patches on the 2nd Tuesday of every month at 4 AM\n* Gather CPU metrics every 10 mins Mon - Fri and every 30 mins Sat - Sun\n* Send out a scary e-mail at 13:13:13 every Friday the 13th\n\n#### For complete documentation visit [http://bunkat.github.io/later/](http://bunkat.github.io/later/).\n\n\n## Installation\nUsing npm:\n\n    $ npm install later\n\nUsing bower:\n\n    $ bower install later\n\n## Building\n\nTo build the minified javascript files for _later_, run `npm install` to install dependencies and then:\n\n    $ make all\n\n## Running tests\n\nTo run the tests for _later_, run `npm install` to install dependencies and then:\n\n    $ make test\n\n## Versioning\n\nReleases will be numbered with the following format:\n\n`<major>.<minor>.<patch>`\n\nAnd constructed with the following guidelines:\n\n* Breaking backward compatibility bumps the major (and resets the minor and patch)\n* New additions without breaking backward compatibility bumps the minor (and resets the patch)\n* Bug fixes and misc changes bumps the patch\n\nFor more information on SemVer, please visit [http://semver.org/](http://semver.org/).\n\n## Bug tracker\n\nHave a bug or a feature request? [Please open a new issue](https://github.com/bunkat/later/issues).\n\n## Change Log\n\n### Later v1.2.0\n* Implemented predefined scheduling definitions for cron\n  - @yearly, @annually, @monthly, @weekly, @daily, and @hourly are now parsed correctly\n  - Submitted by pekeler (thanks!)\n\n### Later v1.1.8, v1.1.9\n\n* Fixed npm and bower entry points\n\n### Later v1.1.7\n\n* Various bug fixes\n\n### Later v1.1.3\n\n* Merge consecutive ranges when using composite schedules (fixes issues #27)\n\n### Later v1.1.1 and v1.1.2\n\n* Fixed handling of ranged schedules which never go invalid. End date is undefined for these types of schedules.\n\n### Later v1.1.0\n\n* Implemented fullDate (fd) constraint to specify a specific occurrence (or exception)\n    - `later.parse.recur().on(new Date(2013,3,21,10,30,0)).fullDate()`\n\n### Later v1.0.0\n\n* Refactored core engine so that it could be better tested\n    - Added over 41,500 tests and fixed hundreds of edge cases that were unfortunately broken in v0.0.20\n* Core engine is now extensible via custom time periods and custom modifiers\n    - Full examples included in the documentation\n* Added support for finding valid ranges as well as valid instances of schedules\n    - _Later_ can now be used to schedule activities and meetings as well as point in time occurrences\n* Improved support for finding past ranges and instances\n    - Searching forward or backward now produces the same valid occurrences\n* No more need to specify a resolution!\n    - _Later_ now automatically handles this internally, you no longer need to specify your desired resolution. 'Every 5 minutes' now does exactly what you would expect it to :)\n* Changing between UTC and local time has changed.\n    - Use `later.date.UTC()` and `later.date.localTime()` to switch between the two.\n* API for parsers has changed.\n    - Recur is now at `later.parse.recur()`\n    - Cron is now at `later.parse.cron(expr)`\n    - Text is now at `later.parse.text(expr)`\n* API for calculating occurrences has changed.\n    - Schedules are now compiled using `later.schedule(schedule)`\n    - getNext is now `later.schedule(schedule).next(count, start, end)`\n    - getPrev is now `later.schedule(schedule).prev(count, start, end)`\n* `After` meaning 'don't start until after this amount of time' has been deprecated.\n    - This was a hack since people had a hard time with resolutions. With resolutions gone, this is no longer needed and is deprecated since it produced non-deterministic schedules.\n\n**Note:** Schedule definitions did not change (unless you were using `after` constraints which have been deprecated). If you stored any schedule definitions from v0.0.20, they should continue to work unchanged in v1.0.0.\n","readmeFilename":"Readme.md"}