croner 4.3.7 → 4.3.8

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
@@ -12,7 +12,7 @@ Trigger functions and/or evaluate cron expressions in JavaScript. No dependencie
12
12
  * Trigger functions in JavaScript using [Cron](https://en.wikipedia.org/wiki/Cron#CRON_expression) syntax.
13
13
  * Find first date of next month, find date of next tuesday, etc.
14
14
  * Pause, resume or stop execution after a task is scheduled.
15
- * Works in Node.js >=4.0 (both require and import).
15
+ * Works in Node.js >=6.0 (both require and import).
16
16
  * Works in Deno >=1.16.
17
17
  * Works in browsers as standalone, UMD or ES-module.
18
18
  * **Experimental feature:** Schedule in specific target timezones.
package/dist/croner.cjs CHANGED
@@ -574,7 +574,7 @@
574
574
  * @param {CronIndexOffset} valueIndexOffset
575
575
  * @param {boolean} [recursed] - Is this a recursed call
576
576
  */
577
- CronPattern.prototype.partToArray = function (type, conf, valueIndexOffset, recursed) {
577
+ CronPattern.prototype.partToArray = function (type, conf, valueIndexOffset) {
578
578
 
579
579
  const arr = this[type];
580
580
 
@@ -590,25 +590,19 @@
590
590
  const split = conf.split(",");
591
591
  if( split.length > 1 ) {
592
592
  for( let i = 0; i < split.length; i++ ) {
593
- this.partToArray(type, split[i], valueIndexOffset, true);
593
+ this.partToArray(type, split[i], valueIndexOffset);
594
594
  }
595
595
 
596
596
  // Handle range with stepping (x-y/z)
597
597
  } else if( conf.indexOf("-") !== -1 && conf.indexOf("/") !== -1 ) {
598
- if (recursed) throw new Error("CronPattern: Range with stepping cannot coexist with ,");
599
-
600
598
  this.handleRangeWithStepping(conf, type, valueIndexOffset);
601
599
 
602
600
  // Handle range
603
601
  } else if( conf.indexOf("-") !== -1 ) {
604
- if (recursed) throw new Error("CronPattern: Range with stepping cannot coexist with ,");
605
-
606
602
  this.handleRange(conf, type, valueIndexOffset);
607
603
 
608
604
  // Handle stepping
609
605
  } else if( conf.indexOf("/") !== -1 ) {
610
- if (recursed) throw new Error("CronPattern: Range with stepping cannot coexist with ,");
611
-
612
606
  this.handleStepping(conf, type, valueIndexOffset);
613
607
 
614
608
  // Anything left should be a number
@@ -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.interval=options.interval===void 0?0:parseInt(options.interval);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)}if(options.interval!==null){if(isNaN(options.interval)){throw new Error("CronOptions: Supplied value for interval is not a number")}else if(options.interval<0){throw new Error("CronOptions: Supplied value for interval can not be negative")}}return options}function CronDate(date,timezone){this.timezone=timezone;if(date&&date instanceof Date){if(!isNaN(date)){this.fromDate(date)}else{throw new TypeError("CronDate: Invalid date passed as parameter to CronDate constructor")}}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,hasPreviousRun){if(options.interval>1&&hasPreviousRun){this.seconds+=options.interval}else{this.seconds+=1}this.milliseconds=0;this.apply();const findNext=(target,pattern,offset,override)=>{const startPos=override===void 0?this[target]+offset:0;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);this.apply()}else if(currentValue!==this[toDo[doing][0]]){resetPrevious(-1)}if(this.years>=4e3){return null}doing++}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.")}this.pattern=this.handleNicknames(this.pattern);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")};CronPattern.prototype.handleNicknames=function(pattern){const cleanPattern=pattern.trim().toLowerCase();if(cleanPattern==="@yearly"||cleanPattern==="@annually"){return"0 0 1 1 *"}else if(cleanPattern==="@monthly"){return"0 0 1 * *"}else if(cleanPattern==="@weekly"){return"0 0 * * 0"}else if(cleanPattern==="@daily"){return"0 0 * * *"}else if(cleanPattern==="@hourly"){return"0 * * * *"}else{return pattern}};const maxDelay=Math.pow(2,32-1)-1;function Cron(pattern,fnOrOptions1,fnOrOptions2){if(!(this instanceof Cron)){return new Cron(pattern,fnOrOptions1,fnOrOptions2)}let options,func;if(typeof fnOrOptions1==="function"){func=fnOrOptions1}else if(typeof fnOrOptions1==="object"){options=fnOrOptions1}else if(fnOrOptions1!==void 0){throw new Error("Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).")}if(typeof fnOrOptions2==="function"){func=fnOrOptions2}else if(typeof fnOrOptions2==="object"){options=fnOrOptions2}else if(fnOrOptions2!==void 0){throw new Error("Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).")}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){const next=this._next(prev);return next?next.getDate():null};Cron.prototype.enumerate=function(n,previous){const enumeration=[];let prev=previous||this.previousrun;while(n--&&(prev=this.next(prev))){enumeration.push(prev)}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){const next=this._next(prev||this.previousrun);prev=new CronDate(prev,this.options.timezone);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){const hasPreviousRun=prev||this.previousrun?true:false;prev=new CronDate(prev,this.options.timezone);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,hasPreviousRun);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}};Cron.Cron=Cron;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.interval=options.interval===void 0?0:parseInt(options.interval);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)}if(options.interval!==null){if(isNaN(options.interval)){throw new Error("CronOptions: Supplied value for interval is not a number")}else if(options.interval<0){throw new Error("CronOptions: Supplied value for interval can not be negative")}}return options}function CronDate(date,timezone){this.timezone=timezone;if(date&&date instanceof Date){if(!isNaN(date)){this.fromDate(date)}else{throw new TypeError("CronDate: Invalid date passed as parameter to CronDate constructor")}}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,hasPreviousRun){if(options.interval>1&&hasPreviousRun){this.seconds+=options.interval}else{this.seconds+=1}this.milliseconds=0;this.apply();const findNext=(target,pattern,offset,override)=>{const startPos=override===void 0?this[target]+offset:0;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);this.apply()}else if(currentValue!==this[toDo[doing][0]]){resetPrevious(-1)}if(this.years>=4e3){return null}doing++}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.")}this.pattern=this.handleNicknames(this.pattern);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){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)}}else if(conf.indexOf("-")!==-1&&conf.indexOf("/")!==-1){this.handleRangeWithStepping(conf,type,valueIndexOffset)}else if(conf.indexOf("-")!==-1){this.handleRange(conf,type,valueIndexOffset)}else if(conf.indexOf("/")!==-1){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")};CronPattern.prototype.handleNicknames=function(pattern){const cleanPattern=pattern.trim().toLowerCase();if(cleanPattern==="@yearly"||cleanPattern==="@annually"){return"0 0 1 1 *"}else if(cleanPattern==="@monthly"){return"0 0 1 * *"}else if(cleanPattern==="@weekly"){return"0 0 * * 0"}else if(cleanPattern==="@daily"){return"0 0 * * *"}else if(cleanPattern==="@hourly"){return"0 * * * *"}else{return pattern}};const maxDelay=Math.pow(2,32-1)-1;function Cron(pattern,fnOrOptions1,fnOrOptions2){if(!(this instanceof Cron)){return new Cron(pattern,fnOrOptions1,fnOrOptions2)}let options,func;if(typeof fnOrOptions1==="function"){func=fnOrOptions1}else if(typeof fnOrOptions1==="object"){options=fnOrOptions1}else if(fnOrOptions1!==void 0){throw new Error("Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).")}if(typeof fnOrOptions2==="function"){func=fnOrOptions2}else if(typeof fnOrOptions2==="object"){options=fnOrOptions2}else if(fnOrOptions2!==void 0){throw new Error("Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).")}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){const next=this._next(prev);return next?next.getDate():null};Cron.prototype.enumerate=function(n,previous){const enumeration=[];let prev=previous||this.previousrun;while(n--&&(prev=this.next(prev))){enumeration.push(prev)}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){const next=this._next(prev||this.previousrun);prev=new CronDate(prev,this.options.timezone);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){const hasPreviousRun=prev||this.previousrun?true:false;prev=new CronDate(prev,this.options.timezone);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,hasPreviousRun);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}};Cron.Cron=Cron;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","interval","parseInt","kill","startAt","CronDate","timezone","stopAt","isNaN","Error","fromDate","TypeError","fromString","fromCronDate","prototype","milliseconds","getMilliseconds","seconds","getSeconds","minutes","getMinutes","hours","getHours","days","getDate","months","getMonth","years","getFullYear","apply","newDate","str","parsedDate","parseISOLocal","increment","pattern","hasPreviousRun","findNext","target","offset","override","startPos","let","i","length","match","targetDate","setDate","lastDayOfMonth","targetDateCopy","dowMatch","daysOfWeek","getDay","starDayOfWeek","starDayOfMonth","resetPrevious","doing","toDo","currentValue","internal","getTime","dateTimeString","dateTimeStringSplit","split","NaN","year","month","day","hour","minute","second","generatedDate","indexOf","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","CronPattern","Array","fill","parse","constructor","String","handleNicknames","parts","trim","replace","unshift","toUpperCase","replaceAlphaMonths","replaceAlphaDays","initDate","throwAtIllegalCharacters","partToArray","type","conf","valueIndexOffset","recursed","arr","handleRangeWithStepping","handleRange","handleStepping","handleNumber","reValidCron","test","matches","lower","upper","steps","start","cleanPattern","toLowerCase","maxDelay","Math","pow","fnOrOptions1","fnOrOptions2","func","once","fn","schedule","next","prev","_next","enumerate","n","previous","enumeration","previousrun","push","running","msLeft","msToNext","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","interval","parseInt","kill","startAt","CronDate","timezone","stopAt","isNaN","Error","fromDate","TypeError","fromString","fromCronDate","prototype","milliseconds","getMilliseconds","seconds","getSeconds","minutes","getMinutes","hours","getHours","days","getDate","months","getMonth","years","getFullYear","apply","newDate","str","parsedDate","parseISOLocal","increment","pattern","hasPreviousRun","findNext","target","offset","override","startPos","let","i","length","match","targetDate","setDate","lastDayOfMonth","targetDateCopy","dowMatch","daysOfWeek","getDay","starDayOfWeek","starDayOfMonth","resetPrevious","doing","toDo","currentValue","internal","getTime","dateTimeString","dateTimeStringSplit","split","NaN","year","month","day","hour","minute","second","generatedDate","indexOf","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","CronPattern","Array","fill","parse","constructor","String","handleNicknames","parts","trim","replace","unshift","toUpperCase","replaceAlphaMonths","replaceAlphaDays","initDate","throwAtIllegalCharacters","partToArray","type","conf","valueIndexOffset","arr","handleRangeWithStepping","handleRange","handleStepping","handleNumber","reValidCron","test","matches","lower","upper","steps","start","cleanPattern","toLowerCase","maxDelay","Math","pow","fnOrOptions1","fnOrOptions2","func","once","fn","schedule","next","prev","_next","enumerate","n","previous","enumeration","previousrun","push","running","msLeft","msToNext","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.interval=options.interval===void 0?0:parseInt(options.interval);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)}if(options.interval!==null){if(isNaN(options.interval)){throw new Error("CronOptions: Supplied value for interval is not a number")}else if(options.interval<0){throw new Error("CronOptions: Supplied value for interval can not be negative")}}return options}function CronDate(date,timezone){this.timezone=timezone;if(date&&date instanceof Date){if(!isNaN(date)){this.fromDate(date)}else{throw new TypeError("CronDate: Invalid date passed as parameter to CronDate constructor")}}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,hasPreviousRun){if(options.interval>1&&hasPreviousRun){this.seconds+=options.interval}else{this.seconds+=1}this.milliseconds=0;this.apply();const findNext=(target,pattern,offset,override)=>{const startPos=override===void 0?this[target]+offset:0;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);this.apply()}else if(currentValue!==this[toDo[doing][0]]){resetPrevious(-1)}if(this.years>=4e3){return null}doing++}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.")}this.pattern=this.handleNicknames(this.pattern);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")};CronPattern.prototype.handleNicknames=function(pattern){const cleanPattern=pattern.trim().toLowerCase();if(cleanPattern==="@yearly"||cleanPattern==="@annually"){return"0 0 1 1 *"}else if(cleanPattern==="@monthly"){return"0 0 1 * *"}else if(cleanPattern==="@weekly"){return"0 0 * * 0"}else if(cleanPattern==="@daily"){return"0 0 * * *"}else if(cleanPattern==="@hourly"){return"0 * * * *"}else{return pattern}};const maxDelay=Math.pow(2,32-1)-1;function Cron(pattern,fnOrOptions1,fnOrOptions2){if(!(this instanceof Cron)){return new Cron(pattern,fnOrOptions1,fnOrOptions2)}let options,func;if(typeof fnOrOptions1==="function"){func=fnOrOptions1}else if(typeof fnOrOptions1==="object"){options=fnOrOptions1}else if(fnOrOptions1!==void 0){throw new Error("Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).")}if(typeof fnOrOptions2==="function"){func=fnOrOptions2}else if(typeof fnOrOptions2==="object"){options=fnOrOptions2}else if(fnOrOptions2!==void 0){throw new Error("Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).")}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){const next=this._next(prev);return next?next.getDate():null};Cron.prototype.enumerate=function(n,previous){const enumeration=[];let prev=previous||this.previousrun;while(n--&&(prev=this.next(prev))){enumeration.push(prev)}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){const next=this._next(prev||this.previousrun);prev=new CronDate(prev,this.options.timezone);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){const hasPreviousRun=prev||this.previousrun?true:false;prev=new CronDate(prev,this.options.timezone);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,hasPreviousRun);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.interval=options.interval===void 0?0:parseInt(options.interval);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)}if(options.interval!==null){if(isNaN(options.interval)){throw new Error("CronOptions: Supplied value for interval is not a number")}else if(options.interval<0){throw new Error("CronOptions: Supplied value for interval can not be negative")}}return options}function CronDate(date,timezone){this.timezone=timezone;if(date&&date instanceof Date){if(!isNaN(date)){this.fromDate(date)}else{throw new TypeError("CronDate: Invalid date passed as parameter to CronDate constructor")}}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,hasPreviousRun){if(options.interval>1&&hasPreviousRun){this.seconds+=options.interval}else{this.seconds+=1}this.milliseconds=0;this.apply();const findNext=(target,pattern,offset,override)=>{const startPos=override===void 0?this[target]+offset:0;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);this.apply()}else if(currentValue!==this[toDo[doing][0]]){resetPrevious(-1)}if(this.years>=4e3){return null}doing++}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.")}this.pattern=this.handleNicknames(this.pattern);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){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)}}else if(conf.indexOf("-")!==-1&&conf.indexOf("/")!==-1){this.handleRangeWithStepping(conf,type,valueIndexOffset)}else if(conf.indexOf("-")!==-1){this.handleRange(conf,type,valueIndexOffset)}else if(conf.indexOf("/")!==-1){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")};CronPattern.prototype.handleNicknames=function(pattern){const cleanPattern=pattern.trim().toLowerCase();if(cleanPattern==="@yearly"||cleanPattern==="@annually"){return"0 0 1 1 *"}else if(cleanPattern==="@monthly"){return"0 0 1 * *"}else if(cleanPattern==="@weekly"){return"0 0 * * 0"}else if(cleanPattern==="@daily"){return"0 0 * * *"}else if(cleanPattern==="@hourly"){return"0 * * * *"}else{return pattern}};const maxDelay=Math.pow(2,32-1)-1;function Cron(pattern,fnOrOptions1,fnOrOptions2){if(!(this instanceof Cron)){return new Cron(pattern,fnOrOptions1,fnOrOptions2)}let options,func;if(typeof fnOrOptions1==="function"){func=fnOrOptions1}else if(typeof fnOrOptions1==="object"){options=fnOrOptions1}else if(fnOrOptions1!==void 0){throw new Error("Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).")}if(typeof fnOrOptions2==="function"){func=fnOrOptions2}else if(typeof fnOrOptions2==="object"){options=fnOrOptions2}else if(fnOrOptions2!==void 0){throw new Error("Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).")}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){const next=this._next(prev);return next?next.getDate():null};Cron.prototype.enumerate=function(n,previous){const enumeration=[];let prev=previous||this.previousrun;while(n--&&(prev=this.next(prev))){enumeration.push(prev)}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){const next=this._next(prev||this.previousrun);prev=new CronDate(prev,this.options.timezone);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){const hasPreviousRun=prev||this.previousrun?true:false;prev=new CronDate(prev,this.options.timezone);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,hasPreviousRun);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","interval","parseInt","kill","startAt","CronDate","timezone","stopAt","isNaN","Error","this","fromDate","TypeError","fromString","fromCronDate","prototype","milliseconds","getMilliseconds","seconds","getSeconds","minutes","getMinutes","hours","getHours","days","getDate","months","getMonth","years","getFullYear","apply","newDate","str","parsedDate","parseISOLocal","increment","pattern","hasPreviousRun","findNext","target","offset","override","startPos","let","i","length","match","targetDate","setDate","lastDayOfMonth","targetDateCopy","dowMatch","daysOfWeek","getDay","starDayOfWeek","starDayOfMonth","resetPrevious","doing","toDo","currentValue","internal","getTime","dateTimeString","dateTimeStringSplit","split","NaN","year","month","day","hour","minute","second","generatedDate","indexOf","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","CronPattern","Array","fill","parse","constructor","String","handleNicknames","parts","trim","replace","unshift","toUpperCase","replaceAlphaMonths","replaceAlphaDays","initDate","throwAtIllegalCharacters","partToArray","type","conf","valueIndexOffset","recursed","arr","handleRangeWithStepping","handleRange","handleStepping","handleNumber","reValidCron","test","matches","lower","upper","steps","start","cleanPattern","toLowerCase","maxDelay","Math","pow","Cron","fnOrOptions1","fnOrOptions2","func","once","fn","schedule","next","prev","_next","enumerate","n","previous","enumeration","previousrun","push","running","msLeft","msToNext","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","interval","parseInt","kill","startAt","CronDate","timezone","stopAt","isNaN","Error","this","fromDate","TypeError","fromString","fromCronDate","prototype","milliseconds","getMilliseconds","seconds","getSeconds","minutes","getMinutes","hours","getHours","days","getDate","months","getMonth","years","getFullYear","apply","newDate","str","parsedDate","parseISOLocal","increment","pattern","hasPreviousRun","findNext","target","offset","override","startPos","let","i","length","match","targetDate","setDate","lastDayOfMonth","targetDateCopy","dowMatch","daysOfWeek","getDay","starDayOfWeek","starDayOfMonth","resetPrevious","doing","toDo","currentValue","internal","getTime","dateTimeString","dateTimeStringSplit","split","NaN","year","month","day","hour","minute","second","generatedDate","indexOf","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","CronPattern","Array","fill","parse","constructor","String","handleNicknames","parts","trim","replace","unshift","toUpperCase","replaceAlphaMonths","replaceAlphaDays","initDate","throwAtIllegalCharacters","partToArray","type","conf","valueIndexOffset","arr","handleRangeWithStepping","handleRange","handleStepping","handleNumber","reValidCron","test","matches","lower","upper","steps","start","cleanPattern","toLowerCase","maxDelay","Math","pow","Cron","fnOrOptions1","fnOrOptions2","func","once","fn","schedule","next","prev","_next","enumerate","n","previous","enumeration","previousrun","push","running","msLeft","msToNext","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.3.7",
3
+ "version": "4.3.8",
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",
package/src/pattern.js CHANGED
@@ -125,7 +125,7 @@ CronPattern.prototype.parse = function () {
125
125
  * @param {CronIndexOffset} valueIndexOffset
126
126
  * @param {boolean} [recursed] - Is this a recursed call
127
127
  */
128
- CronPattern.prototype.partToArray = function (type, conf, valueIndexOffset, recursed) {
128
+ CronPattern.prototype.partToArray = function (type, conf, valueIndexOffset) {
129
129
 
130
130
  const arr = this[type];
131
131
 
@@ -141,25 +141,19 @@ CronPattern.prototype.partToArray = function (type, conf, valueIndexOffset, recu
141
141
  const split = conf.split(",");
142
142
  if( split.length > 1 ) {
143
143
  for( let i = 0; i < split.length; i++ ) {
144
- this.partToArray(type, split[i], valueIndexOffset, true);
144
+ this.partToArray(type, split[i], valueIndexOffset);
145
145
  }
146
146
 
147
147
  // Handle range with stepping (x-y/z)
148
148
  } else if( conf.indexOf("-") !== -1 && conf.indexOf("/") !== -1 ) {
149
- if (recursed) throw new Error("CronPattern: Range with stepping cannot coexist with ,");
150
-
151
149
  this.handleRangeWithStepping(conf, type, valueIndexOffset);
152
150
 
153
151
  // Handle range
154
152
  } else if( conf.indexOf("-") !== -1 ) {
155
- if (recursed) throw new Error("CronPattern: Range with stepping cannot coexist with ,");
156
-
157
153
  this.handleRange(conf, type, valueIndexOffset);
158
154
 
159
155
  // Handle stepping
160
156
  } else if( conf.indexOf("/") !== -1 ) {
161
- if (recursed) throw new Error("CronPattern: Range with stepping cannot coexist with ,");
162
-
163
157
  this.handleStepping(conf, type, valueIndexOffset);
164
158
 
165
159
  // Anything left should be a number