croner 4.2.0 → 4.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,7 +6,7 @@ Trigger functions and/or evaluate cron expressions in JavaScript. No dependencie
6
6
  # Croner
7
7
 
8
8
  ![Node.js CI](https://github.com/Hexagon/croner/workflows/Node.js%20CI/badge.svg?branch=master) [![npm version](https://badge.fury.io/js/croner.svg)](https://badge.fury.io/js/croner) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/4978bdbf495941c087ecb32b120f28ff)](https://www.codacy.com/gh/Hexagon/croner/dashboard?utm_source=github.com&utm_medium=referral&utm_content=Hexagon/croner&utm_campaign=Badge_Grade)
9
- [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/Hexagon/croner/blob/master/LICENSE) [![NPM Downloads](https://img.shields.io/npm/dm/croner.svg)](https://www.npmjs.org/package/croner)
9
+ [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/Hexagon/croner/blob/master/LICENSE) [![NPM Downloads](https://img.shields.io/npm/dw/croner.svg)](https://www.npmjs.org/package/croner)
10
10
  ![No dependencies](https://img.shields.io/badge/dependencies-none-brightgreen)
11
11
 
12
12
  * Trigger functions in JavaScript using [Cron](https://en.wikipedia.org/wiki/Cron#CRON_expression) syntax.
@@ -46,17 +46,19 @@ More [examples](#examples)...
46
46
 
47
47
  Because the existing ones aren't good enough. They have serious bugs, use bloated dependencies, do not work in all environments and/or simply don't work as expected.
48
48
 
49
- Benchmark at 2022-02-01:
49
+ Benchmark at 2022-02-20:
50
50
 
51
51
  ```
52
52
  > node cron-implementation-test.js
53
53
 
54
- Test: When is next monday in october, pattern '0 0 0 * 10 1'
54
+ Test: When is 23:00 next 31st march, pattern '0 0 23 31 3 *'
55
55
 
56
- node-schedule: 2022-10-03 00:00:00 in 15.26ms
57
- node-cron: ??? in 1.076ms
58
- cron: 2022-11-07 00:00:00 in 2.923ms
59
- croner: 2022-10-03 00:00:00 in 1.774ms
56
+ node-schedule: 2022-03-31 23:00:00 in 15.379ms
57
+ node-cron: ??? in 0.339ms
58
+ Month '3' is limited to '30' days.
59
+ cron: 2022-04-01 23:00:00 in 7.785ms
60
+ croner (legacy): 2022-03-31 23:00:00 in 2.142ms
61
+ croner (default): 2022-03-31 23:00:00 in 0.672ms
60
62
  ```
61
63
 
62
64
  <details>
@@ -65,18 +67,19 @@ croner: 2022-10-03 00:00:00 in 1.774ms
65
67
  ```
66
68
  Test: When is next 15th of february, pattern '0 0 0 15 2 *'
67
69
 
68
- node-schedule: 2022-02-15 00:00:00 in 13.306ms
69
- node-cron: ??? in 1.676ms
70
- cron: 2022-03-15 00:00:00 in 6.066ms
71
- croner: 2022-02-15 00:00:00 in 0.575ms
70
+ node-schedule: 2023-02-15 00:00:00 in 43.875ms
71
+ node-cron: ??? in 2.217ms
72
+ cron: 2022-03-15 00:00:00 in 4.147ms
73
+ croner (legacy): 2023-02-15 00:00:00 in 1.72ms
74
+ croner (default): 2023-02-15 00:00:00 in 0.946ms
72
75
 
73
- Test: When is 23:00 next 31st march, pattern '0 0 23 31 3 *'
76
+ Test: When is next monday in october, pattern '0 0 0 * 10 1'
74
77
 
75
- node-schedule: 2022-03-31 23:00:00 in 18.894ms
76
- node-cron: ??? in 3.017ms
77
- Month '3' is limited to '30' days.
78
- cron: 2022-04-01 23:00:00 in 4.508ms
79
- croner: 2022-03-31 23:00:00 in 1.381ms
78
+ node-schedule: 2022-10-03 00:00:00 in 5.594ms
79
+ node-cron: ??? in 3.62ms
80
+ cron: 2022-11-07 00:00:00 in 1.658ms
81
+ croner (legacy): 2022-10-03 00:00:00 in 0.697ms
82
+ croner (default): 2022-10-03 00:00:00 in 0.546ms
80
83
  ```
81
84
 
82
85
  </details>
package/dist/croner.cjs CHANGED
@@ -590,7 +590,8 @@
590
590
 
591
591
  this.handleStepping(conf, type, valueIndexOffset);
592
592
 
593
- } else {
593
+ // Anything left should be a number
594
+ } else if( conf !== "" ) {
594
595
  this.handleNumber(conf, type, valueIndexOffset);
595
596
  }
596
597
 
@@ -622,6 +623,10 @@
622
623
  CronPattern.prototype.handleNumber = function (conf, type, valueIndexOffset) {
623
624
  const i = (parseInt(conf, 10) + valueIndexOffset);
624
625
 
626
+ if( isNaN(i) ) {
627
+ throw new TypeError("CronPattern: " + type + " is not a number: '" + conf + "'");
628
+ }
629
+
625
630
  if( i < 0 || i >= this[type].length ) {
626
631
  throw new TypeError("CronPattern: " + type + " value out of range: '" + conf + "'");
627
632
  }
@@ -1 +1 @@
1
- (function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?module.exports=factory():typeof define==="function"&&define.amd?define(factory):(global=typeof globalThis!=="undefined"?globalThis:global||self,global.Cron=factory())})(this,function(){"use strict";function CronTZ(date,tzString){return new Date(date.toLocaleString("en-US",{timeZone:tzString}))}function CronOptions(options){if(options===void 0){options={}}options.legacyMode=options.legacyMode===void 0?false:options.legacyMode;options.paused=options.paused===void 0?false:options.paused;options.maxRuns=options.maxRuns===void 0?Infinity:options.maxRuns;options.catch=options.catch===void 0?false:options.catch;options.kill=false;if(options.startAt){options.startAt=new CronDate(options.startAt,options.timezone)}if(options.stopAt){options.stopAt=new CronDate(options.stopAt,options.timezone)}return options}function CronDate(date,timezone){this.timezone=timezone;if(date&&date instanceof Date){this.fromDate(date)}else if(date===void 0){this.fromDate(new Date)}else if(date&&typeof date==="string"){this.fromString(date)}else if(date instanceof CronDate){this.fromCronDate(date)}else{throw new TypeError("CronDate: Invalid type ("+typeof date+") passed as parameter to CronDate constructor")}}CronDate.prototype.fromDate=function(date){if(this.timezone){date=CronTZ(date,this.timezone)}this.milliseconds=date.getMilliseconds();this.seconds=date.getSeconds();this.minutes=date.getMinutes();this.hours=date.getHours();this.days=date.getDate();this.months=date.getMonth();this.years=date.getFullYear()};CronDate.prototype.fromCronDate=function(date){this.timezone=date.timezone;this.milliseconds=date.milliseconds;this.seconds=date.seconds;this.minutes=date.minutes;this.hours=date.hours;this.days=date.days;this.months=date.months;this.years=date.years};CronDate.prototype.apply=function(){const newDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);this.milliseconds=newDate.getMilliseconds();this.seconds=newDate.getSeconds();this.minutes=newDate.getMinutes();this.hours=newDate.getHours();this.days=newDate.getDate();this.months=newDate.getMonth();this.years=newDate.getFullYear()};CronDate.prototype.fromString=function(str){const parsedDate=this.parseISOLocal(str);if(isNaN(parsedDate)){throw new TypeError("CronDate: Provided string value for CronDate could not be parsed as date.")}this.fromDate(parsedDate)};CronDate.prototype.increment=function(pattern,options,rerun){if(!rerun){this.seconds+=1}this.milliseconds=0;const origTime=this.getTime(),findNext=(target,pattern,offset,override)=>{const startPos=override===void 0?this[target]+offset:0+offset;for(let i=startPos;i<pattern[target].length;i++){let match=pattern[target][i];if(target==="days"){let targetDate=this.getDate(true);targetDate.setDate(i-offset);if(pattern.lastDayOfMonth){let targetDateCopy=new Date(targetDate);targetDateCopy.setDate(i-offset+1);if(targetDateCopy.getMonth()!==this.months){match=true}}const dowMatch=pattern.daysOfWeek[targetDate.getDay()];if(options.legacyMode){if(!pattern.starDayOfWeek&&pattern.starDayOfMonth){match=dowMatch}else if(!pattern.starDayOfWeek&&!pattern.starDayOfMonth){match=match||dowMatch}}else{match=match&&dowMatch}}if(match){this[target]=i-offset;return true}}return false},resetPrevious=offset=>{while(doing+offset>=0){findNext(toDo[doing+offset][0],pattern,toDo[doing+offset][2],0);doing--}};const toDo=[["seconds","minutes",0],["minutes","hours",0],["hours","days",0],["days","months",-1],["months","years",0]];let doing=0;while(doing<5){let currentValue=this[toDo[doing][0]];if(!findNext(toDo[doing][0],pattern,toDo[doing][2])){this[toDo[doing][1]]++;resetPrevious(0)}else if(currentValue!==this[toDo[doing][0]]){resetPrevious(-1)}if(this.years>=4e3){return null}doing++}if(origTime!=this.getTime()){this.apply();return this.increment(pattern,options,true)}else{return this}};CronDate.prototype.getDate=function(internal){const targetDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);if(internal||!this.timezone){return targetDate}else{const offset=CronTZ(targetDate,this.timezone).getTime()-targetDate.getTime();return new Date(targetDate.getTime()-offset)}};CronDate.prototype.getTime=function(internal){return this.getDate(internal).getTime()};CronDate.prototype.parseISOLocal=function(dateTimeString){const dateTimeStringSplit=dateTimeString.split(/\D/);if(dateTimeStringSplit.length<6){return NaN}const year=parseInt(dateTimeStringSplit[0],10),month=parseInt(dateTimeStringSplit[1],10),day=parseInt(dateTimeStringSplit[2],10),hour=parseInt(dateTimeStringSplit[3],10),minute=parseInt(dateTimeStringSplit[4],10),second=parseInt(dateTimeStringSplit[5],10);if(isNaN(year)||isNaN(month)||isNaN(day)||isNaN(hour)||isNaN(minute)||isNaN(second)){return NaN}else{let generatedDate;if(dateTimeString.indexOf("Z")>0){generatedDate=new Date(Date.UTC(year,month-1,day,hour,minute,second));if(year==generatedDate.getUTCFullYear()&&month==generatedDate.getUTCMonth()+1&&day==generatedDate.getUTCDate()&&hour==generatedDate.getUTCHours()&&minute==generatedDate.getUTCMinutes()&&second==generatedDate.getUTCSeconds()){return generatedDate}else{return NaN}}else{generatedDate=new Date(year,month-1,day,hour,minute,second);if(year==generatedDate.getFullYear()&&month==generatedDate.getMonth()+1&&day==generatedDate.getDate()&&hour==generatedDate.getHours()&&minute==generatedDate.getMinutes()&&second==generatedDate.getSeconds()){return generatedDate}else{return NaN}}}};function CronPattern(pattern,timezone){this.pattern=pattern;this.timezone=timezone;this.seconds=Array(60).fill(0);this.minutes=Array(60).fill(0);this.hours=Array(24).fill(0);this.days=Array(31).fill(0);this.months=Array(12).fill(0);this.daysOfWeek=Array(8).fill(0);this.lastDayOfMonth=false;this.starDayOfMonth=false;this.starDayOfWeek=false;this.parse()}CronPattern.prototype.parse=function(){if(!(typeof this.pattern==="string"||this.pattern.constructor===String)){throw new TypeError("CronPattern: Pattern has to be of type string.")}const parts=this.pattern.trim().replace(/\s+/g," ").split(" ");if(parts.length<5||parts.length>6){throw new TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exacly five or six space separated parts required.")}if(parts.length===5){parts.unshift("0")}if(parts[3].indexOf("L")>=0){parts[3]=parts[3].replace("L","");this.lastDayOfMonth=true}if(parts[3].toUpperCase()=="*"){this.starDayOfMonth=true}parts[4]=this.replaceAlphaMonths(parts[4]);parts[5]=this.replaceAlphaDays(parts[5]);if(parts[5].toUpperCase()=="*"){this.starDayOfWeek=true}let initDate=new CronDate(new Date,this.timezone).getDate(true);parts[0]=parts[0].replace("?",initDate.getSeconds());parts[1]=parts[1].replace("?",initDate.getMinutes());parts[2]=parts[2].replace("?",initDate.getHours());parts[3]=parts[3].replace("?",initDate.getDate());parts[4]=parts[4].replace("?",initDate.getMonth()+1);parts[5]=parts[5].replace("?",initDate.getDay());this.throwAtIllegalCharacters(parts);this.partToArray("seconds",parts[0],0);this.partToArray("minutes",parts[1],0);this.partToArray("hours",parts[2],0);this.partToArray("days",parts[3],-1);this.partToArray("months",parts[4],-1);this.partToArray("daysOfWeek",parts[5],0);if(this.daysOfWeek[7]){this.daysOfWeek[0]=1}};CronPattern.prototype.partToArray=function(type,conf,valueIndexOffset,recursed){const arr=this[type];if(conf==="*"){for(let i=0;i<arr.length;i++){arr[i]=1}return}const split=conf.split(",");if(split.length>1){for(let i=0;i<split.length;i++){this.partToArray(type,split[i],valueIndexOffset,true)}}else if(conf.indexOf("-")!==-1&&conf.indexOf("/")!==-1){if(recursed)throw new Error("CronPattern: Range with stepping cannot coexist with ,");this.handleRangeWithStepping(conf,type,valueIndexOffset)}else if(conf.indexOf("-")!==-1){if(recursed)throw new Error("CronPattern: Range with stepping cannot coexist with ,");this.handleRange(conf,type,valueIndexOffset)}else if(conf.indexOf("/")!==-1){if(recursed)throw new Error("CronPattern: Range with stepping cannot coexist with ,");this.handleStepping(conf,type,valueIndexOffset)}else{this.handleNumber(conf,type,valueIndexOffset)}};CronPattern.prototype.throwAtIllegalCharacters=function(parts){const reValidCron=/[^/*0-9,-]+/;for(let i=0;i<parts.length;i++){if(reValidCron.test(parts[i])){throw new TypeError("CronPattern: configuration entry "+i+" ("+parts[i]+") contains illegal characters.")}}};CronPattern.prototype.handleNumber=function(conf,type,valueIndexOffset){const i=parseInt(conf,10)+valueIndexOffset;if(i<0||i>=this[type].length){throw new TypeError("CronPattern: "+type+" value out of range: '"+conf+"'")}this[type][i]=1};CronPattern.prototype.handleRangeWithStepping=function(conf,type,valueIndexOffset){const matches=conf.match(/^(\d+)-(\d+)\/(\d+)$/);if(matches===null)throw new TypeError("CronPattern: Syntax error, illegal range with stepping: '"+conf+"'");let[,lower,upper,steps]=matches;lower=parseInt(lower,10)+valueIndexOffset;upper=parseInt(upper,10)+valueIndexOffset;steps=parseInt(steps,10);if(isNaN(lower))throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(upper))throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");if(lower<0||upper>=this[type].length)throw new TypeError("CronPattern: Value out of range: '"+conf+"'");if(lower>upper)throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'");for(let i=lower;i<=upper;i+=steps){this[type][i]=1}};CronPattern.prototype.handleRange=function(conf,type,valueIndexOffset){const split=conf.split("-");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal range: '"+conf+"'")}const lower=parseInt(split[0],10)+valueIndexOffset,upper=parseInt(split[1],10)+valueIndexOffset;if(isNaN(lower)){throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)")}else if(isNaN(upper)){throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)")}if(lower<0||upper>=this[type].length){throw new TypeError("CronPattern: Value out of range: '"+conf+"'")}if(lower>upper){throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'")}for(let i=lower;i<=upper;i++){this[type][i]=1}};CronPattern.prototype.handleStepping=function(conf,type){const split=conf.split("/");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal stepping: '"+conf+"'")}let start=0;if(split[0]!=="*"){start=parseInt(split[0],10)}const steps=parseInt(split[1],10);if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");for(let i=start;i<this[type].length;i+=steps){this[type][i]=1}};CronPattern.prototype.replaceAlphaDays=function(conf){return conf.replace(/sun/gi,"0").replace(/mon/gi,"1").replace(/tue/gi,"2").replace(/wed/gi,"3").replace(/thu/gi,"4").replace(/fri/gi,"5").replace(/sat/gi,"6")};CronPattern.prototype.replaceAlphaMonths=function(conf){return conf.replace(/jan/gi,"1").replace(/feb/gi,"2").replace(/mar/gi,"3").replace(/apr/gi,"4").replace(/may/gi,"5").replace(/jun/gi,"6").replace(/jul/gi,"7").replace(/aug/gi,"8").replace(/sep/gi,"9").replace(/oct/gi,"10").replace(/nov/gi,"11").replace(/dec/gi,"12")};const maxDelay=Math.pow(2,32-1)-1;function Cron(pattern,options,func){if(!(this instanceof Cron)){return new Cron(pattern,options,func)}if(typeof options==="function"){func=options;options=void 0}this.options=CronOptions(options);this.once=void 0;this.pattern=void 0;if(pattern&&(pattern instanceof Date||typeof pattern==="string"&&pattern.indexOf(":")>0)){this.once=new CronDate(pattern,this.options.timezone)}else{this.pattern=new CronPattern(pattern,this.options.timezone)}if(func!==void 0){this.fn=func;this.schedule()}return this}Cron.prototype.next=function(prev){prev=new CronDate(prev,this.options.timezone);const next=this._next(prev);return next?next.getDate():null};Cron.prototype.enumerate=function(n,previous){let enumeration=[];while(n--&&(previous=this.next(previous))){enumeration.push(previous)}return enumeration};Cron.prototype.running=function(){const msLeft=this.msToNext(this.previousrun);const running=!this.options.paused&&this.fn!==void 0;return msLeft!==null&&running};Cron.prototype.previous=function(){return this.previousrun?this.previousrun.getDate():null};Cron.prototype.msToNext=function(prev){prev=new CronDate(prev,this.options.timezone);const next=this._next(prev);if(next){return next.getTime(true)-prev.getTime(true)}else{return null}};Cron.prototype.stop=function(){this.options.kill=true;if(this.currentTimeout){clearTimeout(this.currentTimeout)}};Cron.prototype.pause=function(){return(this.options.paused=true)&&!this.options.kill};Cron.prototype.resume=function(){return!(this.options.paused=false)&&!this.options.kill};Cron.prototype.schedule=function(func){if(func&&this.fn){throw new Error("Cron: It is not allowed to schedule two functions using the same Croner instance.")}else if(func){this.fn=func}let waitMs=this.msToNext(this.previousrun);if(waitMs===null)return this;if(waitMs>maxDelay){waitMs=maxDelay}this.currentTimeout=setTimeout(()=>{if(waitMs!==maxDelay&&!this.options.paused){this.options.maxRuns--;if(this.options.catch){try{this.fn(this,this.options.context)}catch(_e){}}else{this.fn(this,this.options.context)}this.previousrun=new CronDate(void 0,this.options.timezone)}this.schedule()},waitMs);return this};Cron.prototype._next=function(prev){if(this.options.startAt&&prev&&prev.getTime(true)<this.options.startAt.getTime(true)){prev=this.options.startAt}const nextRun=this.once||new CronDate(prev,this.options.timezone).increment(this.pattern,this.options);if(this.once&&this.once.getTime(true)<=prev.getTime(true)){return null}else if(nextRun===null||this.options.maxRuns<=0||this.options.kill||this.options.stopAt&&nextRun.getTime(true)>=this.options.stopAt.getTime(true)){return null}else{return nextRun}};return Cron});
1
+ (function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?module.exports=factory():typeof define==="function"&&define.amd?define(factory):(global=typeof globalThis!=="undefined"?globalThis:global||self,global.Cron=factory())})(this,function(){"use strict";function CronTZ(date,tzString){return new Date(date.toLocaleString("en-US",{timeZone:tzString}))}function CronOptions(options){if(options===void 0){options={}}options.legacyMode=options.legacyMode===void 0?false:options.legacyMode;options.paused=options.paused===void 0?false:options.paused;options.maxRuns=options.maxRuns===void 0?Infinity:options.maxRuns;options.catch=options.catch===void 0?false:options.catch;options.kill=false;if(options.startAt){options.startAt=new CronDate(options.startAt,options.timezone)}if(options.stopAt){options.stopAt=new CronDate(options.stopAt,options.timezone)}return options}function CronDate(date,timezone){this.timezone=timezone;if(date&&date instanceof Date){this.fromDate(date)}else if(date===void 0){this.fromDate(new Date)}else if(date&&typeof date==="string"){this.fromString(date)}else if(date instanceof CronDate){this.fromCronDate(date)}else{throw new TypeError("CronDate: Invalid type ("+typeof date+") passed as parameter to CronDate constructor")}}CronDate.prototype.fromDate=function(date){if(this.timezone){date=CronTZ(date,this.timezone)}this.milliseconds=date.getMilliseconds();this.seconds=date.getSeconds();this.minutes=date.getMinutes();this.hours=date.getHours();this.days=date.getDate();this.months=date.getMonth();this.years=date.getFullYear()};CronDate.prototype.fromCronDate=function(date){this.timezone=date.timezone;this.milliseconds=date.milliseconds;this.seconds=date.seconds;this.minutes=date.minutes;this.hours=date.hours;this.days=date.days;this.months=date.months;this.years=date.years};CronDate.prototype.apply=function(){const newDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);this.milliseconds=newDate.getMilliseconds();this.seconds=newDate.getSeconds();this.minutes=newDate.getMinutes();this.hours=newDate.getHours();this.days=newDate.getDate();this.months=newDate.getMonth();this.years=newDate.getFullYear()};CronDate.prototype.fromString=function(str){const parsedDate=this.parseISOLocal(str);if(isNaN(parsedDate)){throw new TypeError("CronDate: Provided string value for CronDate could not be parsed as date.")}this.fromDate(parsedDate)};CronDate.prototype.increment=function(pattern,options,rerun){if(!rerun){this.seconds+=1}this.milliseconds=0;const origTime=this.getTime(),findNext=(target,pattern,offset,override)=>{const startPos=override===void 0?this[target]+offset:0+offset;for(let i=startPos;i<pattern[target].length;i++){let match=pattern[target][i];if(target==="days"){let targetDate=this.getDate(true);targetDate.setDate(i-offset);if(pattern.lastDayOfMonth){let targetDateCopy=new Date(targetDate);targetDateCopy.setDate(i-offset+1);if(targetDateCopy.getMonth()!==this.months){match=true}}const dowMatch=pattern.daysOfWeek[targetDate.getDay()];if(options.legacyMode){if(!pattern.starDayOfWeek&&pattern.starDayOfMonth){match=dowMatch}else if(!pattern.starDayOfWeek&&!pattern.starDayOfMonth){match=match||dowMatch}}else{match=match&&dowMatch}}if(match){this[target]=i-offset;return true}}return false},resetPrevious=offset=>{while(doing+offset>=0){findNext(toDo[doing+offset][0],pattern,toDo[doing+offset][2],0);doing--}};const toDo=[["seconds","minutes",0],["minutes","hours",0],["hours","days",0],["days","months",-1],["months","years",0]];let doing=0;while(doing<5){let currentValue=this[toDo[doing][0]];if(!findNext(toDo[doing][0],pattern,toDo[doing][2])){this[toDo[doing][1]]++;resetPrevious(0)}else if(currentValue!==this[toDo[doing][0]]){resetPrevious(-1)}if(this.years>=4e3){return null}doing++}if(origTime!=this.getTime()){this.apply();return this.increment(pattern,options,true)}else{return this}};CronDate.prototype.getDate=function(internal){const targetDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);if(internal||!this.timezone){return targetDate}else{const offset=CronTZ(targetDate,this.timezone).getTime()-targetDate.getTime();return new Date(targetDate.getTime()-offset)}};CronDate.prototype.getTime=function(internal){return this.getDate(internal).getTime()};CronDate.prototype.parseISOLocal=function(dateTimeString){const dateTimeStringSplit=dateTimeString.split(/\D/);if(dateTimeStringSplit.length<6){return NaN}const year=parseInt(dateTimeStringSplit[0],10),month=parseInt(dateTimeStringSplit[1],10),day=parseInt(dateTimeStringSplit[2],10),hour=parseInt(dateTimeStringSplit[3],10),minute=parseInt(dateTimeStringSplit[4],10),second=parseInt(dateTimeStringSplit[5],10);if(isNaN(year)||isNaN(month)||isNaN(day)||isNaN(hour)||isNaN(minute)||isNaN(second)){return NaN}else{let generatedDate;if(dateTimeString.indexOf("Z")>0){generatedDate=new Date(Date.UTC(year,month-1,day,hour,minute,second));if(year==generatedDate.getUTCFullYear()&&month==generatedDate.getUTCMonth()+1&&day==generatedDate.getUTCDate()&&hour==generatedDate.getUTCHours()&&minute==generatedDate.getUTCMinutes()&&second==generatedDate.getUTCSeconds()){return generatedDate}else{return NaN}}else{generatedDate=new Date(year,month-1,day,hour,minute,second);if(year==generatedDate.getFullYear()&&month==generatedDate.getMonth()+1&&day==generatedDate.getDate()&&hour==generatedDate.getHours()&&minute==generatedDate.getMinutes()&&second==generatedDate.getSeconds()){return generatedDate}else{return NaN}}}};function CronPattern(pattern,timezone){this.pattern=pattern;this.timezone=timezone;this.seconds=Array(60).fill(0);this.minutes=Array(60).fill(0);this.hours=Array(24).fill(0);this.days=Array(31).fill(0);this.months=Array(12).fill(0);this.daysOfWeek=Array(8).fill(0);this.lastDayOfMonth=false;this.starDayOfMonth=false;this.starDayOfWeek=false;this.parse()}CronPattern.prototype.parse=function(){if(!(typeof this.pattern==="string"||this.pattern.constructor===String)){throw new TypeError("CronPattern: Pattern has to be of type string.")}const parts=this.pattern.trim().replace(/\s+/g," ").split(" ");if(parts.length<5||parts.length>6){throw new TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exacly five or six space separated parts required.")}if(parts.length===5){parts.unshift("0")}if(parts[3].indexOf("L")>=0){parts[3]=parts[3].replace("L","");this.lastDayOfMonth=true}if(parts[3].toUpperCase()=="*"){this.starDayOfMonth=true}parts[4]=this.replaceAlphaMonths(parts[4]);parts[5]=this.replaceAlphaDays(parts[5]);if(parts[5].toUpperCase()=="*"){this.starDayOfWeek=true}let initDate=new CronDate(new Date,this.timezone).getDate(true);parts[0]=parts[0].replace("?",initDate.getSeconds());parts[1]=parts[1].replace("?",initDate.getMinutes());parts[2]=parts[2].replace("?",initDate.getHours());parts[3]=parts[3].replace("?",initDate.getDate());parts[4]=parts[4].replace("?",initDate.getMonth()+1);parts[5]=parts[5].replace("?",initDate.getDay());this.throwAtIllegalCharacters(parts);this.partToArray("seconds",parts[0],0);this.partToArray("minutes",parts[1],0);this.partToArray("hours",parts[2],0);this.partToArray("days",parts[3],-1);this.partToArray("months",parts[4],-1);this.partToArray("daysOfWeek",parts[5],0);if(this.daysOfWeek[7]){this.daysOfWeek[0]=1}};CronPattern.prototype.partToArray=function(type,conf,valueIndexOffset,recursed){const arr=this[type];if(conf==="*"){for(let i=0;i<arr.length;i++){arr[i]=1}return}const split=conf.split(",");if(split.length>1){for(let i=0;i<split.length;i++){this.partToArray(type,split[i],valueIndexOffset,true)}}else if(conf.indexOf("-")!==-1&&conf.indexOf("/")!==-1){if(recursed)throw new Error("CronPattern: Range with stepping cannot coexist with ,");this.handleRangeWithStepping(conf,type,valueIndexOffset)}else if(conf.indexOf("-")!==-1){if(recursed)throw new Error("CronPattern: Range with stepping cannot coexist with ,");this.handleRange(conf,type,valueIndexOffset)}else if(conf.indexOf("/")!==-1){if(recursed)throw new Error("CronPattern: Range with stepping cannot coexist with ,");this.handleStepping(conf,type,valueIndexOffset)}else if(conf!==""){this.handleNumber(conf,type,valueIndexOffset)}};CronPattern.prototype.throwAtIllegalCharacters=function(parts){const reValidCron=/[^/*0-9,-]+/;for(let i=0;i<parts.length;i++){if(reValidCron.test(parts[i])){throw new TypeError("CronPattern: configuration entry "+i+" ("+parts[i]+") contains illegal characters.")}}};CronPattern.prototype.handleNumber=function(conf,type,valueIndexOffset){const i=parseInt(conf,10)+valueIndexOffset;if(isNaN(i)){throw new TypeError("CronPattern: "+type+" is not a number: '"+conf+"'")}if(i<0||i>=this[type].length){throw new TypeError("CronPattern: "+type+" value out of range: '"+conf+"'")}this[type][i]=1};CronPattern.prototype.handleRangeWithStepping=function(conf,type,valueIndexOffset){const matches=conf.match(/^(\d+)-(\d+)\/(\d+)$/);if(matches===null)throw new TypeError("CronPattern: Syntax error, illegal range with stepping: '"+conf+"'");let[,lower,upper,steps]=matches;lower=parseInt(lower,10)+valueIndexOffset;upper=parseInt(upper,10)+valueIndexOffset;steps=parseInt(steps,10);if(isNaN(lower))throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(upper))throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");if(lower<0||upper>=this[type].length)throw new TypeError("CronPattern: Value out of range: '"+conf+"'");if(lower>upper)throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'");for(let i=lower;i<=upper;i+=steps){this[type][i]=1}};CronPattern.prototype.handleRange=function(conf,type,valueIndexOffset){const split=conf.split("-");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal range: '"+conf+"'")}const lower=parseInt(split[0],10)+valueIndexOffset,upper=parseInt(split[1],10)+valueIndexOffset;if(isNaN(lower)){throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)")}else if(isNaN(upper)){throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)")}if(lower<0||upper>=this[type].length){throw new TypeError("CronPattern: Value out of range: '"+conf+"'")}if(lower>upper){throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'")}for(let i=lower;i<=upper;i++){this[type][i]=1}};CronPattern.prototype.handleStepping=function(conf,type){const split=conf.split("/");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal stepping: '"+conf+"'")}let start=0;if(split[0]!=="*"){start=parseInt(split[0],10)}const steps=parseInt(split[1],10);if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");for(let i=start;i<this[type].length;i+=steps){this[type][i]=1}};CronPattern.prototype.replaceAlphaDays=function(conf){return conf.replace(/sun/gi,"0").replace(/mon/gi,"1").replace(/tue/gi,"2").replace(/wed/gi,"3").replace(/thu/gi,"4").replace(/fri/gi,"5").replace(/sat/gi,"6")};CronPattern.prototype.replaceAlphaMonths=function(conf){return conf.replace(/jan/gi,"1").replace(/feb/gi,"2").replace(/mar/gi,"3").replace(/apr/gi,"4").replace(/may/gi,"5").replace(/jun/gi,"6").replace(/jul/gi,"7").replace(/aug/gi,"8").replace(/sep/gi,"9").replace(/oct/gi,"10").replace(/nov/gi,"11").replace(/dec/gi,"12")};const maxDelay=Math.pow(2,32-1)-1;function Cron(pattern,options,func){if(!(this instanceof Cron)){return new Cron(pattern,options,func)}if(typeof options==="function"){func=options;options=void 0}this.options=CronOptions(options);this.once=void 0;this.pattern=void 0;if(pattern&&(pattern instanceof Date||typeof pattern==="string"&&pattern.indexOf(":")>0)){this.once=new CronDate(pattern,this.options.timezone)}else{this.pattern=new CronPattern(pattern,this.options.timezone)}if(func!==void 0){this.fn=func;this.schedule()}return this}Cron.prototype.next=function(prev){prev=new CronDate(prev,this.options.timezone);const next=this._next(prev);return next?next.getDate():null};Cron.prototype.enumerate=function(n,previous){let enumeration=[];while(n--&&(previous=this.next(previous))){enumeration.push(previous)}return enumeration};Cron.prototype.running=function(){const msLeft=this.msToNext(this.previousrun);const running=!this.options.paused&&this.fn!==void 0;return msLeft!==null&&running};Cron.prototype.previous=function(){return this.previousrun?this.previousrun.getDate():null};Cron.prototype.msToNext=function(prev){prev=new CronDate(prev,this.options.timezone);const next=this._next(prev);if(next){return next.getTime(true)-prev.getTime(true)}else{return null}};Cron.prototype.stop=function(){this.options.kill=true;if(this.currentTimeout){clearTimeout(this.currentTimeout)}};Cron.prototype.pause=function(){return(this.options.paused=true)&&!this.options.kill};Cron.prototype.resume=function(){return!(this.options.paused=false)&&!this.options.kill};Cron.prototype.schedule=function(func){if(func&&this.fn){throw new Error("Cron: It is not allowed to schedule two functions using the same Croner instance.")}else if(func){this.fn=func}let waitMs=this.msToNext(this.previousrun);if(waitMs===null)return this;if(waitMs>maxDelay){waitMs=maxDelay}this.currentTimeout=setTimeout(()=>{if(waitMs!==maxDelay&&!this.options.paused){this.options.maxRuns--;if(this.options.catch){try{this.fn(this,this.options.context)}catch(_e){}}else{this.fn(this,this.options.context)}this.previousrun=new CronDate(void 0,this.options.timezone)}this.schedule()},waitMs);return this};Cron.prototype._next=function(prev){if(this.options.startAt&&prev&&prev.getTime(true)<this.options.startAt.getTime(true)){prev=this.options.startAt}const nextRun=this.once||new CronDate(prev,this.options.timezone).increment(this.pattern,this.options);if(this.once&&this.once.getTime(true)<=prev.getTime(true)){return null}else if(nextRun===null||this.options.maxRuns<=0||this.options.kill||this.options.stopAt&&nextRun.getTime(true)>=this.options.stopAt.getTime(true)){return null}else{return nextRun}};return Cron});
@@ -1 +1 @@
1
- {"version":3,"sources":["dist/croner.cjs"],"names":["global","factory","exports","module","define","amd","globalThis","self","Cron","this","CronTZ","date","tzString","Date","toLocaleString","timeZone","CronOptions","options","legacyMode","paused","maxRuns","Infinity","catch","kill","startAt","CronDate","timezone","stopAt","fromDate","fromString","fromCronDate","TypeError","prototype","milliseconds","getMilliseconds","seconds","getSeconds","minutes","getMinutes","hours","getHours","days","getDate","months","getMonth","years","getFullYear","apply","newDate","str","parsedDate","parseISOLocal","isNaN","increment","pattern","rerun","origTime","getTime","findNext","target","offset","override","startPos","let","i","length","match","targetDate","setDate","lastDayOfMonth","targetDateCopy","dowMatch","daysOfWeek","getDay","starDayOfWeek","starDayOfMonth","resetPrevious","doing","toDo","currentValue","internal","dateTimeString","dateTimeStringSplit","split","NaN","year","parseInt","month","day","hour","minute","second","generatedDate","indexOf","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","CronPattern","Array","fill","parse","constructor","String","parts","trim","replace","unshift","toUpperCase","replaceAlphaMonths","replaceAlphaDays","initDate","throwAtIllegalCharacters","partToArray","type","conf","valueIndexOffset","recursed","arr","Error","handleRangeWithStepping","handleRange","handleStepping","handleNumber","reValidCron","test","matches","lower","upper","steps","start","maxDelay","Math","pow","func","once","fn","schedule","next","prev","_next","enumerate","n","previous","enumeration","push","running","msLeft","msToNext","previousrun","stop","currentTimeout","clearTimeout","pause","resume","waitMs","setTimeout","context","_e","nextRun"],"mappings":"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"}
1
+ {"version":3,"sources":["dist/croner.cjs"],"names":["global","factory","exports","module","define","amd","globalThis","self","Cron","this","CronTZ","date","tzString","Date","toLocaleString","timeZone","CronOptions","options","legacyMode","paused","maxRuns","Infinity","catch","kill","startAt","CronDate","timezone","stopAt","fromDate","fromString","fromCronDate","TypeError","prototype","milliseconds","getMilliseconds","seconds","getSeconds","minutes","getMinutes","hours","getHours","days","getDate","months","getMonth","years","getFullYear","apply","newDate","str","parsedDate","parseISOLocal","isNaN","increment","pattern","rerun","origTime","getTime","findNext","target","offset","override","startPos","let","i","length","match","targetDate","setDate","lastDayOfMonth","targetDateCopy","dowMatch","daysOfWeek","getDay","starDayOfWeek","starDayOfMonth","resetPrevious","doing","toDo","currentValue","internal","dateTimeString","dateTimeStringSplit","split","NaN","year","parseInt","month","day","hour","minute","second","generatedDate","indexOf","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","CronPattern","Array","fill","parse","constructor","String","parts","trim","replace","unshift","toUpperCase","replaceAlphaMonths","replaceAlphaDays","initDate","throwAtIllegalCharacters","partToArray","type","conf","valueIndexOffset","recursed","arr","Error","handleRangeWithStepping","handleRange","handleStepping","handleNumber","reValidCron","test","matches","lower","upper","steps","start","maxDelay","Math","pow","func","once","fn","schedule","next","prev","_next","enumerate","n","previous","enumeration","push","running","msLeft","msToNext","previousrun","stop","currentTimeout","clearTimeout","pause","resume","waitMs","setTimeout","context","_e","nextRun"],"mappings":"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"}
@@ -1 +1 @@
1
- function CronTZ(date,tzString){return new Date(date.toLocaleString("en-US",{timeZone:tzString}))}function CronOptions(options){if(options===void 0){options={}}options.legacyMode=options.legacyMode===void 0?false:options.legacyMode;options.paused=options.paused===void 0?false:options.paused;options.maxRuns=options.maxRuns===void 0?Infinity:options.maxRuns;options.catch=options.catch===void 0?false:options.catch;options.kill=false;if(options.startAt){options.startAt=new CronDate(options.startAt,options.timezone)}if(options.stopAt){options.stopAt=new CronDate(options.stopAt,options.timezone)}return options}function CronDate(date,timezone){this.timezone=timezone;if(date&&date instanceof Date){this.fromDate(date)}else if(date===void 0){this.fromDate(new Date)}else if(date&&typeof date==="string"){this.fromString(date)}else if(date instanceof CronDate){this.fromCronDate(date)}else{throw new TypeError("CronDate: Invalid type ("+typeof date+") passed as parameter to CronDate constructor")}}CronDate.prototype.fromDate=function(date){if(this.timezone){date=CronTZ(date,this.timezone)}this.milliseconds=date.getMilliseconds();this.seconds=date.getSeconds();this.minutes=date.getMinutes();this.hours=date.getHours();this.days=date.getDate();this.months=date.getMonth();this.years=date.getFullYear()};CronDate.prototype.fromCronDate=function(date){this.timezone=date.timezone;this.milliseconds=date.milliseconds;this.seconds=date.seconds;this.minutes=date.minutes;this.hours=date.hours;this.days=date.days;this.months=date.months;this.years=date.years};CronDate.prototype.apply=function(){const newDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);this.milliseconds=newDate.getMilliseconds();this.seconds=newDate.getSeconds();this.minutes=newDate.getMinutes();this.hours=newDate.getHours();this.days=newDate.getDate();this.months=newDate.getMonth();this.years=newDate.getFullYear()};CronDate.prototype.fromString=function(str){const parsedDate=this.parseISOLocal(str);if(isNaN(parsedDate)){throw new TypeError("CronDate: Provided string value for CronDate could not be parsed as date.")}this.fromDate(parsedDate)};CronDate.prototype.increment=function(pattern,options,rerun){if(!rerun){this.seconds+=1}this.milliseconds=0;const origTime=this.getTime(),findNext=(target,pattern,offset,override)=>{const startPos=override===void 0?this[target]+offset:0+offset;for(let i=startPos;i<pattern[target].length;i++){let match=pattern[target][i];if(target==="days"){let targetDate=this.getDate(true);targetDate.setDate(i-offset);if(pattern.lastDayOfMonth){let targetDateCopy=new Date(targetDate);targetDateCopy.setDate(i-offset+1);if(targetDateCopy.getMonth()!==this.months){match=true}}const dowMatch=pattern.daysOfWeek[targetDate.getDay()];if(options.legacyMode){if(!pattern.starDayOfWeek&&pattern.starDayOfMonth){match=dowMatch}else if(!pattern.starDayOfWeek&&!pattern.starDayOfMonth){match=match||dowMatch}}else{match=match&&dowMatch}}if(match){this[target]=i-offset;return true}}return false},resetPrevious=offset=>{while(doing+offset>=0){findNext(toDo[doing+offset][0],pattern,toDo[doing+offset][2],0);doing--}};const toDo=[["seconds","minutes",0],["minutes","hours",0],["hours","days",0],["days","months",-1],["months","years",0]];let doing=0;while(doing<5){let currentValue=this[toDo[doing][0]];if(!findNext(toDo[doing][0],pattern,toDo[doing][2])){this[toDo[doing][1]]++;resetPrevious(0)}else if(currentValue!==this[toDo[doing][0]]){resetPrevious(-1)}if(this.years>=4e3){return null}doing++}if(origTime!=this.getTime()){this.apply();return this.increment(pattern,options,true)}else{return this}};CronDate.prototype.getDate=function(internal){const targetDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);if(internal||!this.timezone){return targetDate}else{const offset=CronTZ(targetDate,this.timezone).getTime()-targetDate.getTime();return new Date(targetDate.getTime()-offset)}};CronDate.prototype.getTime=function(internal){return this.getDate(internal).getTime()};CronDate.prototype.parseISOLocal=function(dateTimeString){const dateTimeStringSplit=dateTimeString.split(/\D/);if(dateTimeStringSplit.length<6){return NaN}const year=parseInt(dateTimeStringSplit[0],10),month=parseInt(dateTimeStringSplit[1],10),day=parseInt(dateTimeStringSplit[2],10),hour=parseInt(dateTimeStringSplit[3],10),minute=parseInt(dateTimeStringSplit[4],10),second=parseInt(dateTimeStringSplit[5],10);if(isNaN(year)||isNaN(month)||isNaN(day)||isNaN(hour)||isNaN(minute)||isNaN(second)){return NaN}else{let generatedDate;if(dateTimeString.indexOf("Z")>0){generatedDate=new Date(Date.UTC(year,month-1,day,hour,minute,second));if(year==generatedDate.getUTCFullYear()&&month==generatedDate.getUTCMonth()+1&&day==generatedDate.getUTCDate()&&hour==generatedDate.getUTCHours()&&minute==generatedDate.getUTCMinutes()&&second==generatedDate.getUTCSeconds()){return generatedDate}else{return NaN}}else{generatedDate=new Date(year,month-1,day,hour,minute,second);if(year==generatedDate.getFullYear()&&month==generatedDate.getMonth()+1&&day==generatedDate.getDate()&&hour==generatedDate.getHours()&&minute==generatedDate.getMinutes()&&second==generatedDate.getSeconds()){return generatedDate}else{return NaN}}}};function CronPattern(pattern,timezone){this.pattern=pattern;this.timezone=timezone;this.seconds=Array(60).fill(0);this.minutes=Array(60).fill(0);this.hours=Array(24).fill(0);this.days=Array(31).fill(0);this.months=Array(12).fill(0);this.daysOfWeek=Array(8).fill(0);this.lastDayOfMonth=false;this.starDayOfMonth=false;this.starDayOfWeek=false;this.parse()}CronPattern.prototype.parse=function(){if(!(typeof this.pattern==="string"||this.pattern.constructor===String)){throw new TypeError("CronPattern: Pattern has to be of type string.")}const parts=this.pattern.trim().replace(/\s+/g," ").split(" ");if(parts.length<5||parts.length>6){throw new TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exacly five or six space separated parts required.")}if(parts.length===5){parts.unshift("0")}if(parts[3].indexOf("L")>=0){parts[3]=parts[3].replace("L","");this.lastDayOfMonth=true}if(parts[3].toUpperCase()=="*"){this.starDayOfMonth=true}parts[4]=this.replaceAlphaMonths(parts[4]);parts[5]=this.replaceAlphaDays(parts[5]);if(parts[5].toUpperCase()=="*"){this.starDayOfWeek=true}let initDate=new CronDate(new Date,this.timezone).getDate(true);parts[0]=parts[0].replace("?",initDate.getSeconds());parts[1]=parts[1].replace("?",initDate.getMinutes());parts[2]=parts[2].replace("?",initDate.getHours());parts[3]=parts[3].replace("?",initDate.getDate());parts[4]=parts[4].replace("?",initDate.getMonth()+1);parts[5]=parts[5].replace("?",initDate.getDay());this.throwAtIllegalCharacters(parts);this.partToArray("seconds",parts[0],0);this.partToArray("minutes",parts[1],0);this.partToArray("hours",parts[2],0);this.partToArray("days",parts[3],-1);this.partToArray("months",parts[4],-1);this.partToArray("daysOfWeek",parts[5],0);if(this.daysOfWeek[7]){this.daysOfWeek[0]=1}};CronPattern.prototype.partToArray=function(type,conf,valueIndexOffset,recursed){const arr=this[type];if(conf==="*"){for(let i=0;i<arr.length;i++){arr[i]=1}return}const split=conf.split(",");if(split.length>1){for(let i=0;i<split.length;i++){this.partToArray(type,split[i],valueIndexOffset,true)}}else if(conf.indexOf("-")!==-1&&conf.indexOf("/")!==-1){if(recursed)throw new Error("CronPattern: Range with stepping cannot coexist with ,");this.handleRangeWithStepping(conf,type,valueIndexOffset)}else if(conf.indexOf("-")!==-1){if(recursed)throw new Error("CronPattern: Range with stepping cannot coexist with ,");this.handleRange(conf,type,valueIndexOffset)}else if(conf.indexOf("/")!==-1){if(recursed)throw new Error("CronPattern: Range with stepping cannot coexist with ,");this.handleStepping(conf,type,valueIndexOffset)}else{this.handleNumber(conf,type,valueIndexOffset)}};CronPattern.prototype.throwAtIllegalCharacters=function(parts){const reValidCron=/[^/*0-9,-]+/;for(let i=0;i<parts.length;i++){if(reValidCron.test(parts[i])){throw new TypeError("CronPattern: configuration entry "+i+" ("+parts[i]+") contains illegal characters.")}}};CronPattern.prototype.handleNumber=function(conf,type,valueIndexOffset){const i=parseInt(conf,10)+valueIndexOffset;if(i<0||i>=this[type].length){throw new TypeError("CronPattern: "+type+" value out of range: '"+conf+"'")}this[type][i]=1};CronPattern.prototype.handleRangeWithStepping=function(conf,type,valueIndexOffset){const matches=conf.match(/^(\d+)-(\d+)\/(\d+)$/);if(matches===null)throw new TypeError("CronPattern: Syntax error, illegal range with stepping: '"+conf+"'");let[,lower,upper,steps]=matches;lower=parseInt(lower,10)+valueIndexOffset;upper=parseInt(upper,10)+valueIndexOffset;steps=parseInt(steps,10);if(isNaN(lower))throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(upper))throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");if(lower<0||upper>=this[type].length)throw new TypeError("CronPattern: Value out of range: '"+conf+"'");if(lower>upper)throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'");for(let i=lower;i<=upper;i+=steps){this[type][i]=1}};CronPattern.prototype.handleRange=function(conf,type,valueIndexOffset){const split=conf.split("-");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal range: '"+conf+"'")}const lower=parseInt(split[0],10)+valueIndexOffset,upper=parseInt(split[1],10)+valueIndexOffset;if(isNaN(lower)){throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)")}else if(isNaN(upper)){throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)")}if(lower<0||upper>=this[type].length){throw new TypeError("CronPattern: Value out of range: '"+conf+"'")}if(lower>upper){throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'")}for(let i=lower;i<=upper;i++){this[type][i]=1}};CronPattern.prototype.handleStepping=function(conf,type){const split=conf.split("/");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal stepping: '"+conf+"'")}let start=0;if(split[0]!=="*"){start=parseInt(split[0],10)}const steps=parseInt(split[1],10);if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");for(let i=start;i<this[type].length;i+=steps){this[type][i]=1}};CronPattern.prototype.replaceAlphaDays=function(conf){return conf.replace(/sun/gi,"0").replace(/mon/gi,"1").replace(/tue/gi,"2").replace(/wed/gi,"3").replace(/thu/gi,"4").replace(/fri/gi,"5").replace(/sat/gi,"6")};CronPattern.prototype.replaceAlphaMonths=function(conf){return conf.replace(/jan/gi,"1").replace(/feb/gi,"2").replace(/mar/gi,"3").replace(/apr/gi,"4").replace(/may/gi,"5").replace(/jun/gi,"6").replace(/jul/gi,"7").replace(/aug/gi,"8").replace(/sep/gi,"9").replace(/oct/gi,"10").replace(/nov/gi,"11").replace(/dec/gi,"12")};const maxDelay=Math.pow(2,32-1)-1;function Cron(pattern,options,func){if(!(this instanceof Cron)){return new Cron(pattern,options,func)}if(typeof options==="function"){func=options;options=void 0}this.options=CronOptions(options);this.once=void 0;this.pattern=void 0;if(pattern&&(pattern instanceof Date||typeof pattern==="string"&&pattern.indexOf(":")>0)){this.once=new CronDate(pattern,this.options.timezone)}else{this.pattern=new CronPattern(pattern,this.options.timezone)}if(func!==void 0){this.fn=func;this.schedule()}return this}Cron.prototype.next=function(prev){prev=new CronDate(prev,this.options.timezone);const next=this._next(prev);return next?next.getDate():null};Cron.prototype.enumerate=function(n,previous){let enumeration=[];while(n--&&(previous=this.next(previous))){enumeration.push(previous)}return enumeration};Cron.prototype.running=function(){const msLeft=this.msToNext(this.previousrun);const running=!this.options.paused&&this.fn!==void 0;return msLeft!==null&&running};Cron.prototype.previous=function(){return this.previousrun?this.previousrun.getDate():null};Cron.prototype.msToNext=function(prev){prev=new CronDate(prev,this.options.timezone);const next=this._next(prev);if(next){return next.getTime(true)-prev.getTime(true)}else{return null}};Cron.prototype.stop=function(){this.options.kill=true;if(this.currentTimeout){clearTimeout(this.currentTimeout)}};Cron.prototype.pause=function(){return(this.options.paused=true)&&!this.options.kill};Cron.prototype.resume=function(){return!(this.options.paused=false)&&!this.options.kill};Cron.prototype.schedule=function(func){if(func&&this.fn){throw new Error("Cron: It is not allowed to schedule two functions using the same Croner instance.")}else if(func){this.fn=func}let waitMs=this.msToNext(this.previousrun);if(waitMs===null)return this;if(waitMs>maxDelay){waitMs=maxDelay}this.currentTimeout=setTimeout(()=>{if(waitMs!==maxDelay&&!this.options.paused){this.options.maxRuns--;if(this.options.catch){try{this.fn(this,this.options.context)}catch(_e){}}else{this.fn(this,this.options.context)}this.previousrun=new CronDate(void 0,this.options.timezone)}this.schedule()},waitMs);return this};Cron.prototype._next=function(prev){if(this.options.startAt&&prev&&prev.getTime(true)<this.options.startAt.getTime(true)){prev=this.options.startAt}const nextRun=this.once||new CronDate(prev,this.options.timezone).increment(this.pattern,this.options);if(this.once&&this.once.getTime(true)<=prev.getTime(true)){return null}else if(nextRun===null||this.options.maxRuns<=0||this.options.kill||this.options.stopAt&&nextRun.getTime(true)>=this.options.stopAt.getTime(true)){return null}else{return nextRun}};export{Cron,Cron as default};
1
+ function CronTZ(date,tzString){return new Date(date.toLocaleString("en-US",{timeZone:tzString}))}function CronOptions(options){if(options===void 0){options={}}options.legacyMode=options.legacyMode===void 0?false:options.legacyMode;options.paused=options.paused===void 0?false:options.paused;options.maxRuns=options.maxRuns===void 0?Infinity:options.maxRuns;options.catch=options.catch===void 0?false:options.catch;options.kill=false;if(options.startAt){options.startAt=new CronDate(options.startAt,options.timezone)}if(options.stopAt){options.stopAt=new CronDate(options.stopAt,options.timezone)}return options}function CronDate(date,timezone){this.timezone=timezone;if(date&&date instanceof Date){this.fromDate(date)}else if(date===void 0){this.fromDate(new Date)}else if(date&&typeof date==="string"){this.fromString(date)}else if(date instanceof CronDate){this.fromCronDate(date)}else{throw new TypeError("CronDate: Invalid type ("+typeof date+") passed as parameter to CronDate constructor")}}CronDate.prototype.fromDate=function(date){if(this.timezone){date=CronTZ(date,this.timezone)}this.milliseconds=date.getMilliseconds();this.seconds=date.getSeconds();this.minutes=date.getMinutes();this.hours=date.getHours();this.days=date.getDate();this.months=date.getMonth();this.years=date.getFullYear()};CronDate.prototype.fromCronDate=function(date){this.timezone=date.timezone;this.milliseconds=date.milliseconds;this.seconds=date.seconds;this.minutes=date.minutes;this.hours=date.hours;this.days=date.days;this.months=date.months;this.years=date.years};CronDate.prototype.apply=function(){const newDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);this.milliseconds=newDate.getMilliseconds();this.seconds=newDate.getSeconds();this.minutes=newDate.getMinutes();this.hours=newDate.getHours();this.days=newDate.getDate();this.months=newDate.getMonth();this.years=newDate.getFullYear()};CronDate.prototype.fromString=function(str){const parsedDate=this.parseISOLocal(str);if(isNaN(parsedDate)){throw new TypeError("CronDate: Provided string value for CronDate could not be parsed as date.")}this.fromDate(parsedDate)};CronDate.prototype.increment=function(pattern,options,rerun){if(!rerun){this.seconds+=1}this.milliseconds=0;const origTime=this.getTime(),findNext=(target,pattern,offset,override)=>{const startPos=override===void 0?this[target]+offset:0+offset;for(let i=startPos;i<pattern[target].length;i++){let match=pattern[target][i];if(target==="days"){let targetDate=this.getDate(true);targetDate.setDate(i-offset);if(pattern.lastDayOfMonth){let targetDateCopy=new Date(targetDate);targetDateCopy.setDate(i-offset+1);if(targetDateCopy.getMonth()!==this.months){match=true}}const dowMatch=pattern.daysOfWeek[targetDate.getDay()];if(options.legacyMode){if(!pattern.starDayOfWeek&&pattern.starDayOfMonth){match=dowMatch}else if(!pattern.starDayOfWeek&&!pattern.starDayOfMonth){match=match||dowMatch}}else{match=match&&dowMatch}}if(match){this[target]=i-offset;return true}}return false},resetPrevious=offset=>{while(doing+offset>=0){findNext(toDo[doing+offset][0],pattern,toDo[doing+offset][2],0);doing--}};const toDo=[["seconds","minutes",0],["minutes","hours",0],["hours","days",0],["days","months",-1],["months","years",0]];let doing=0;while(doing<5){let currentValue=this[toDo[doing][0]];if(!findNext(toDo[doing][0],pattern,toDo[doing][2])){this[toDo[doing][1]]++;resetPrevious(0)}else if(currentValue!==this[toDo[doing][0]]){resetPrevious(-1)}if(this.years>=4e3){return null}doing++}if(origTime!=this.getTime()){this.apply();return this.increment(pattern,options,true)}else{return this}};CronDate.prototype.getDate=function(internal){const targetDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);if(internal||!this.timezone){return targetDate}else{const offset=CronTZ(targetDate,this.timezone).getTime()-targetDate.getTime();return new Date(targetDate.getTime()-offset)}};CronDate.prototype.getTime=function(internal){return this.getDate(internal).getTime()};CronDate.prototype.parseISOLocal=function(dateTimeString){const dateTimeStringSplit=dateTimeString.split(/\D/);if(dateTimeStringSplit.length<6){return NaN}const year=parseInt(dateTimeStringSplit[0],10),month=parseInt(dateTimeStringSplit[1],10),day=parseInt(dateTimeStringSplit[2],10),hour=parseInt(dateTimeStringSplit[3],10),minute=parseInt(dateTimeStringSplit[4],10),second=parseInt(dateTimeStringSplit[5],10);if(isNaN(year)||isNaN(month)||isNaN(day)||isNaN(hour)||isNaN(minute)||isNaN(second)){return NaN}else{let generatedDate;if(dateTimeString.indexOf("Z")>0){generatedDate=new Date(Date.UTC(year,month-1,day,hour,minute,second));if(year==generatedDate.getUTCFullYear()&&month==generatedDate.getUTCMonth()+1&&day==generatedDate.getUTCDate()&&hour==generatedDate.getUTCHours()&&minute==generatedDate.getUTCMinutes()&&second==generatedDate.getUTCSeconds()){return generatedDate}else{return NaN}}else{generatedDate=new Date(year,month-1,day,hour,minute,second);if(year==generatedDate.getFullYear()&&month==generatedDate.getMonth()+1&&day==generatedDate.getDate()&&hour==generatedDate.getHours()&&minute==generatedDate.getMinutes()&&second==generatedDate.getSeconds()){return generatedDate}else{return NaN}}}};function CronPattern(pattern,timezone){this.pattern=pattern;this.timezone=timezone;this.seconds=Array(60).fill(0);this.minutes=Array(60).fill(0);this.hours=Array(24).fill(0);this.days=Array(31).fill(0);this.months=Array(12).fill(0);this.daysOfWeek=Array(8).fill(0);this.lastDayOfMonth=false;this.starDayOfMonth=false;this.starDayOfWeek=false;this.parse()}CronPattern.prototype.parse=function(){if(!(typeof this.pattern==="string"||this.pattern.constructor===String)){throw new TypeError("CronPattern: Pattern has to be of type string.")}const parts=this.pattern.trim().replace(/\s+/g," ").split(" ");if(parts.length<5||parts.length>6){throw new TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exacly five or six space separated parts required.")}if(parts.length===5){parts.unshift("0")}if(parts[3].indexOf("L")>=0){parts[3]=parts[3].replace("L","");this.lastDayOfMonth=true}if(parts[3].toUpperCase()=="*"){this.starDayOfMonth=true}parts[4]=this.replaceAlphaMonths(parts[4]);parts[5]=this.replaceAlphaDays(parts[5]);if(parts[5].toUpperCase()=="*"){this.starDayOfWeek=true}let initDate=new CronDate(new Date,this.timezone).getDate(true);parts[0]=parts[0].replace("?",initDate.getSeconds());parts[1]=parts[1].replace("?",initDate.getMinutes());parts[2]=parts[2].replace("?",initDate.getHours());parts[3]=parts[3].replace("?",initDate.getDate());parts[4]=parts[4].replace("?",initDate.getMonth()+1);parts[5]=parts[5].replace("?",initDate.getDay());this.throwAtIllegalCharacters(parts);this.partToArray("seconds",parts[0],0);this.partToArray("minutes",parts[1],0);this.partToArray("hours",parts[2],0);this.partToArray("days",parts[3],-1);this.partToArray("months",parts[4],-1);this.partToArray("daysOfWeek",parts[5],0);if(this.daysOfWeek[7]){this.daysOfWeek[0]=1}};CronPattern.prototype.partToArray=function(type,conf,valueIndexOffset,recursed){const arr=this[type];if(conf==="*"){for(let i=0;i<arr.length;i++){arr[i]=1}return}const split=conf.split(",");if(split.length>1){for(let i=0;i<split.length;i++){this.partToArray(type,split[i],valueIndexOffset,true)}}else if(conf.indexOf("-")!==-1&&conf.indexOf("/")!==-1){if(recursed)throw new Error("CronPattern: Range with stepping cannot coexist with ,");this.handleRangeWithStepping(conf,type,valueIndexOffset)}else if(conf.indexOf("-")!==-1){if(recursed)throw new Error("CronPattern: Range with stepping cannot coexist with ,");this.handleRange(conf,type,valueIndexOffset)}else if(conf.indexOf("/")!==-1){if(recursed)throw new Error("CronPattern: Range with stepping cannot coexist with ,");this.handleStepping(conf,type,valueIndexOffset)}else if(conf!==""){this.handleNumber(conf,type,valueIndexOffset)}};CronPattern.prototype.throwAtIllegalCharacters=function(parts){const reValidCron=/[^/*0-9,-]+/;for(let i=0;i<parts.length;i++){if(reValidCron.test(parts[i])){throw new TypeError("CronPattern: configuration entry "+i+" ("+parts[i]+") contains illegal characters.")}}};CronPattern.prototype.handleNumber=function(conf,type,valueIndexOffset){const i=parseInt(conf,10)+valueIndexOffset;if(isNaN(i)){throw new TypeError("CronPattern: "+type+" is not a number: '"+conf+"'")}if(i<0||i>=this[type].length){throw new TypeError("CronPattern: "+type+" value out of range: '"+conf+"'")}this[type][i]=1};CronPattern.prototype.handleRangeWithStepping=function(conf,type,valueIndexOffset){const matches=conf.match(/^(\d+)-(\d+)\/(\d+)$/);if(matches===null)throw new TypeError("CronPattern: Syntax error, illegal range with stepping: '"+conf+"'");let[,lower,upper,steps]=matches;lower=parseInt(lower,10)+valueIndexOffset;upper=parseInt(upper,10)+valueIndexOffset;steps=parseInt(steps,10);if(isNaN(lower))throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(upper))throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");if(lower<0||upper>=this[type].length)throw new TypeError("CronPattern: Value out of range: '"+conf+"'");if(lower>upper)throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'");for(let i=lower;i<=upper;i+=steps){this[type][i]=1}};CronPattern.prototype.handleRange=function(conf,type,valueIndexOffset){const split=conf.split("-");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal range: '"+conf+"'")}const lower=parseInt(split[0],10)+valueIndexOffset,upper=parseInt(split[1],10)+valueIndexOffset;if(isNaN(lower)){throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)")}else if(isNaN(upper)){throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)")}if(lower<0||upper>=this[type].length){throw new TypeError("CronPattern: Value out of range: '"+conf+"'")}if(lower>upper){throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'")}for(let i=lower;i<=upper;i++){this[type][i]=1}};CronPattern.prototype.handleStepping=function(conf,type){const split=conf.split("/");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal stepping: '"+conf+"'")}let start=0;if(split[0]!=="*"){start=parseInt(split[0],10)}const steps=parseInt(split[1],10);if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");for(let i=start;i<this[type].length;i+=steps){this[type][i]=1}};CronPattern.prototype.replaceAlphaDays=function(conf){return conf.replace(/sun/gi,"0").replace(/mon/gi,"1").replace(/tue/gi,"2").replace(/wed/gi,"3").replace(/thu/gi,"4").replace(/fri/gi,"5").replace(/sat/gi,"6")};CronPattern.prototype.replaceAlphaMonths=function(conf){return conf.replace(/jan/gi,"1").replace(/feb/gi,"2").replace(/mar/gi,"3").replace(/apr/gi,"4").replace(/may/gi,"5").replace(/jun/gi,"6").replace(/jul/gi,"7").replace(/aug/gi,"8").replace(/sep/gi,"9").replace(/oct/gi,"10").replace(/nov/gi,"11").replace(/dec/gi,"12")};const maxDelay=Math.pow(2,32-1)-1;function Cron(pattern,options,func){if(!(this instanceof Cron)){return new Cron(pattern,options,func)}if(typeof options==="function"){func=options;options=void 0}this.options=CronOptions(options);this.once=void 0;this.pattern=void 0;if(pattern&&(pattern instanceof Date||typeof pattern==="string"&&pattern.indexOf(":")>0)){this.once=new CronDate(pattern,this.options.timezone)}else{this.pattern=new CronPattern(pattern,this.options.timezone)}if(func!==void 0){this.fn=func;this.schedule()}return this}Cron.prototype.next=function(prev){prev=new CronDate(prev,this.options.timezone);const next=this._next(prev);return next?next.getDate():null};Cron.prototype.enumerate=function(n,previous){let enumeration=[];while(n--&&(previous=this.next(previous))){enumeration.push(previous)}return enumeration};Cron.prototype.running=function(){const msLeft=this.msToNext(this.previousrun);const running=!this.options.paused&&this.fn!==void 0;return msLeft!==null&&running};Cron.prototype.previous=function(){return this.previousrun?this.previousrun.getDate():null};Cron.prototype.msToNext=function(prev){prev=new CronDate(prev,this.options.timezone);const next=this._next(prev);if(next){return next.getTime(true)-prev.getTime(true)}else{return null}};Cron.prototype.stop=function(){this.options.kill=true;if(this.currentTimeout){clearTimeout(this.currentTimeout)}};Cron.prototype.pause=function(){return(this.options.paused=true)&&!this.options.kill};Cron.prototype.resume=function(){return!(this.options.paused=false)&&!this.options.kill};Cron.prototype.schedule=function(func){if(func&&this.fn){throw new Error("Cron: It is not allowed to schedule two functions using the same Croner instance.")}else if(func){this.fn=func}let waitMs=this.msToNext(this.previousrun);if(waitMs===null)return this;if(waitMs>maxDelay){waitMs=maxDelay}this.currentTimeout=setTimeout(()=>{if(waitMs!==maxDelay&&!this.options.paused){this.options.maxRuns--;if(this.options.catch){try{this.fn(this,this.options.context)}catch(_e){}}else{this.fn(this,this.options.context)}this.previousrun=new CronDate(void 0,this.options.timezone)}this.schedule()},waitMs);return this};Cron.prototype._next=function(prev){if(this.options.startAt&&prev&&prev.getTime(true)<this.options.startAt.getTime(true)){prev=this.options.startAt}const nextRun=this.once||new CronDate(prev,this.options.timezone).increment(this.pattern,this.options);if(this.once&&this.once.getTime(true)<=prev.getTime(true)){return null}else if(nextRun===null||this.options.maxRuns<=0||this.options.kill||this.options.stopAt&&nextRun.getTime(true)>=this.options.stopAt.getTime(true)){return null}else{return nextRun}};export{Cron,Cron as default};
@@ -1 +1 @@
1
- {"version":3,"sources":["dist/croner.mjs"],"names":["CronTZ","date","tzString","Date","toLocaleString","timeZone","CronOptions","options","legacyMode","paused","maxRuns","Infinity","catch","kill","startAt","CronDate","timezone","stopAt","this","fromDate","fromString","fromCronDate","TypeError","prototype","milliseconds","getMilliseconds","seconds","getSeconds","minutes","getMinutes","hours","getHours","days","getDate","months","getMonth","years","getFullYear","apply","newDate","str","parsedDate","parseISOLocal","isNaN","increment","pattern","rerun","origTime","getTime","findNext","target","offset","override","startPos","let","i","length","match","targetDate","setDate","lastDayOfMonth","targetDateCopy","dowMatch","daysOfWeek","getDay","starDayOfWeek","starDayOfMonth","resetPrevious","doing","toDo","currentValue","internal","dateTimeString","dateTimeStringSplit","split","NaN","year","parseInt","month","day","hour","minute","second","generatedDate","indexOf","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","CronPattern","Array","fill","parse","constructor","String","parts","trim","replace","unshift","toUpperCase","replaceAlphaMonths","replaceAlphaDays","initDate","throwAtIllegalCharacters","partToArray","type","conf","valueIndexOffset","recursed","arr","Error","handleRangeWithStepping","handleRange","handleStepping","handleNumber","reValidCron","test","matches","lower","upper","steps","start","maxDelay","Math","pow","Cron","func","once","fn","schedule","next","prev","_next","enumerate","n","previous","enumeration","push","running","msLeft","msToNext","previousrun","stop","currentTimeout","clearTimeout","pause","resume","waitMs","setTimeout","context","_e","nextRun"],"mappings":"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"}
1
+ {"version":3,"sources":["dist/croner.mjs"],"names":["CronTZ","date","tzString","Date","toLocaleString","timeZone","CronOptions","options","legacyMode","paused","maxRuns","Infinity","catch","kill","startAt","CronDate","timezone","stopAt","this","fromDate","fromString","fromCronDate","TypeError","prototype","milliseconds","getMilliseconds","seconds","getSeconds","minutes","getMinutes","hours","getHours","days","getDate","months","getMonth","years","getFullYear","apply","newDate","str","parsedDate","parseISOLocal","isNaN","increment","pattern","rerun","origTime","getTime","findNext","target","offset","override","startPos","let","i","length","match","targetDate","setDate","lastDayOfMonth","targetDateCopy","dowMatch","daysOfWeek","getDay","starDayOfWeek","starDayOfMonth","resetPrevious","doing","toDo","currentValue","internal","dateTimeString","dateTimeStringSplit","split","NaN","year","parseInt","month","day","hour","minute","second","generatedDate","indexOf","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","CronPattern","Array","fill","parse","constructor","String","parts","trim","replace","unshift","toUpperCase","replaceAlphaMonths","replaceAlphaDays","initDate","throwAtIllegalCharacters","partToArray","type","conf","valueIndexOffset","recursed","arr","Error","handleRangeWithStepping","handleRange","handleStepping","handleNumber","reValidCron","test","matches","lower","upper","steps","start","maxDelay","Math","pow","Cron","func","once","fn","schedule","next","prev","_next","enumerate","n","previous","enumeration","push","running","msLeft","msToNext","previousrun","stop","currentTimeout","clearTimeout","pause","resume","waitMs","setTimeout","context","_e","nextRun"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "croner",
3
- "version": "4.2.0",
3
+ "version": "4.2.1",
4
4
  "description": "Trigger functions and/or evaluate cron expressions in JavaScript. No dependencies. Most features. All environmens.",
5
5
  "author": "Hexagon <github.com/hexagon>",
6
6
  "homepage": "https://hexagon.github.io/croner",
@@ -28,9 +28,13 @@
28
28
  "cron",
29
29
  "parser",
30
30
  "croner",
31
+ "schedule",
31
32
  "sheduler",
32
33
  "timer",
33
- "isomorphic"
34
+ "task",
35
+ "job",
36
+ "isomorphic",
37
+ "crontab"
34
38
  ],
35
39
  "scripts": {
36
40
  "test": "uvu test test.croner.js",
package/src/pattern.js CHANGED
@@ -159,7 +159,8 @@ CronPattern.prototype.partToArray = function (type, conf, valueIndexOffset, recu
159
159
 
160
160
  this.handleStepping(conf, type, valueIndexOffset);
161
161
 
162
- } else {
162
+ // Anything left should be a number
163
+ } else if( conf !== "" ) {
163
164
  this.handleNumber(conf, type, valueIndexOffset);
164
165
  }
165
166
 
@@ -191,6 +192,10 @@ CronPattern.prototype.throwAtIllegalCharacters = function (parts) {
191
192
  CronPattern.prototype.handleNumber = function (conf, type, valueIndexOffset) {
192
193
  const i = (parseInt(conf, 10) + valueIndexOffset);
193
194
 
195
+ if( isNaN(i) ) {
196
+ throw new TypeError("CronPattern: " + type + " is not a number: '" + conf + "'");
197
+ }
198
+
194
199
  if( i < 0 || i >= this[type].length ) {
195
200
  throw new TypeError("CronPattern: " + type + " value out of range: '" + conf + "'");
196
201
  }