croner 4.1.92 → 4.1.96
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 +6 -13
- package/dist/croner.cjs +14 -15
- package/dist/croner.min.js +1 -1
- package/dist/croner.min.js.map +1 -1
- package/dist/croner.min.mjs +1 -1
- package/dist/croner.min.mjs.map +1 -1
- package/package.json +3 -2
- package/src/croner.js +4 -4
- package/src/date.js +3 -3
- package/src/pattern.js +5 -6
- package/src/timezone.js +2 -2
- package/types/croner.d.ts +10 -10
- package/types/timezone.d.ts +3 -3
package/README.md
CHANGED
|
@@ -51,12 +51,12 @@ Benchmark at 2022-02-01:
|
|
|
51
51
|
```
|
|
52
52
|
> node cron-implementation-test.js
|
|
53
53
|
|
|
54
|
-
Test: When is next
|
|
54
|
+
Test: When is next monday in october, pattern '0 0 0 * 10 1'
|
|
55
55
|
|
|
56
|
-
node-schedule: 2022-
|
|
57
|
-
node-cron: ??? in
|
|
58
|
-
cron: 2022-
|
|
59
|
-
croner:
|
|
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
|
|
60
60
|
```
|
|
61
61
|
|
|
62
62
|
<details>
|
|
@@ -70,13 +70,6 @@ node-cron: ??? in 1.676ms
|
|
|
70
70
|
cron: 2022-03-15 00:00:00 in 6.066ms
|
|
71
71
|
croner: 2022-02-15 00:00:00 in 0.575ms
|
|
72
72
|
|
|
73
|
-
Test: When is next monday in october, pattern '0 0 0 * 10 1'
|
|
74
|
-
|
|
75
|
-
node-schedule: 2022-10-03 00:00:00 in 15.26ms
|
|
76
|
-
node-cron: ??? in 1.076ms
|
|
77
|
-
cron: 2022-11-07 00:00:00 in 2.923ms
|
|
78
|
-
croner: 2022-10-03 00:00:00 in 1.774ms
|
|
79
|
-
|
|
80
73
|
Test: When is 23:00 next 31st march, pattern '0 0 23 31 3 *'
|
|
81
74
|
|
|
82
75
|
node-schedule: 2022-03-31 23:00:00 in 18.894ms
|
|
@@ -215,7 +208,7 @@ job.stop();
|
|
|
215
208
|
|
|
216
209
|
The expressions of Croner are very similar to the ones of Vixie Cron, with a few additions and changes listed below.
|
|
217
210
|
|
|
218
|
-
* In croner, a combination of day-of-week and day-of-month will only trigger when both conditions match. An example: ```0 20 1 * MON``` will only trigger when monday occur the first day of any month. In Vixie Cron, it would trigger every monday AND the first day of every month.
|
|
211
|
+
* In croner, a combination of day-of-week and day-of-month will only trigger when both conditions match. An example: ```0 20 1 * MON``` will only trigger when monday occur the first day of any month. In Vixie Cron, it would trigger every monday AND the first day of every month. See issue [#53](https://github.com/Hexagon/croner/issues/53).
|
|
219
212
|
|
|
220
213
|
* Croner expressions support the following additional modifiers
|
|
221
214
|
- *?* A question mark is substituted with croner initialization time, as an example - `? ? * * * *` would be substituted with `25 8 * * * *` if time is `<any hour>:08:25` at the time of `new Cron('? ? * * * *', <...>)`. The question mark can be used in any field.
|
package/dist/croner.cjs
CHANGED
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
* (for example) will return local time in new york, but getUTCHours()
|
|
17
17
|
* will return something irrelevant.
|
|
18
18
|
*
|
|
19
|
-
* @param {
|
|
19
|
+
* @param {Date} date - Input date
|
|
20
20
|
* @param {string} tzString - Timezone string in Europe/Stockholm format
|
|
21
|
-
* @returns {
|
|
21
|
+
* @returns {Date}
|
|
22
22
|
*/
|
|
23
23
|
function convertTZ(date, tzString) {
|
|
24
24
|
return new Date(date.toLocaleString("en-US", {timeZone: tzString}));
|
|
@@ -163,13 +163,13 @@
|
|
|
163
163
|
if( pattern[target][i] && (target !== "days" || (pattern.daysOfWeek[this.getDate(true).getDay()])) ) {
|
|
164
164
|
|
|
165
165
|
// Special handling for L (last day of month), when we are searching for days
|
|
166
|
-
if (target === "days" && pattern.lastDayOfMonth) {
|
|
166
|
+
if (target === "days" && pattern.lastDayOfMonth) {
|
|
167
167
|
let baseDate = this.getDate(true);
|
|
168
168
|
|
|
169
169
|
// Set days to one day after today, if month changes, then we are at the last day of the month
|
|
170
|
-
baseDate.setDate(i+1);
|
|
170
|
+
baseDate.setDate(i-offset+1);
|
|
171
171
|
if (baseDate.getMonth() !== this["months"]) {
|
|
172
|
-
this[target] = i;
|
|
172
|
+
this[target] = i-offset;
|
|
173
173
|
return true;
|
|
174
174
|
}
|
|
175
175
|
|
|
@@ -561,7 +561,7 @@
|
|
|
561
561
|
let [, lower, upper, steps] = matches;
|
|
562
562
|
lower = parseInt(lower, 10) + valueIndexOffset;
|
|
563
563
|
upper = parseInt(upper, 10) + valueIndexOffset;
|
|
564
|
-
steps = parseInt(steps, 10)
|
|
564
|
+
steps = parseInt(steps, 10);
|
|
565
565
|
|
|
566
566
|
if( isNaN(lower) ) throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)");
|
|
567
567
|
if( isNaN(upper) ) throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)");
|
|
@@ -574,7 +574,7 @@
|
|
|
574
574
|
if( lower > upper ) throw new TypeError("CronPattern: From value is larger than to value: '" + conf + "'");
|
|
575
575
|
|
|
576
576
|
for (let i = lower; i <= upper; i += steps) {
|
|
577
|
-
this[type][
|
|
577
|
+
this[type][i] = 1;
|
|
578
578
|
}
|
|
579
579
|
};
|
|
580
580
|
|
|
@@ -613,7 +613,7 @@
|
|
|
613
613
|
}
|
|
614
614
|
|
|
615
615
|
for( let i = lower; i <= upper; i++ ) {
|
|
616
|
-
this[type][
|
|
616
|
+
this[type][i] = 1;
|
|
617
617
|
}
|
|
618
618
|
};
|
|
619
619
|
|
|
@@ -623,9 +623,8 @@
|
|
|
623
623
|
*
|
|
624
624
|
* @param {string} conf - Current part, expected to be a string like * /20 (without the space)
|
|
625
625
|
* @param {string} type - One of "seconds", "minutes" etc
|
|
626
|
-
* @param {number} valueIndexOffset - -1 for day of month, and month, as they start at 1. 0 for seconds, hours, minutes
|
|
627
626
|
*/
|
|
628
|
-
CronPattern.prototype.handleStepping = function (conf, type
|
|
627
|
+
CronPattern.prototype.handleStepping = function (conf, type) {
|
|
629
628
|
|
|
630
629
|
const split = conf.split("/");
|
|
631
630
|
|
|
@@ -645,7 +644,7 @@
|
|
|
645
644
|
if( steps > this[type].length ) throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");
|
|
646
645
|
|
|
647
646
|
for( let i = start; i < this[type].length; i+= steps ) {
|
|
648
|
-
this[type][
|
|
647
|
+
this[type][i] = 1;
|
|
649
648
|
}
|
|
650
649
|
};
|
|
651
650
|
|
|
@@ -751,7 +750,7 @@
|
|
|
751
750
|
* Cron entrypoint
|
|
752
751
|
*
|
|
753
752
|
* @constructor
|
|
754
|
-
* @param {string|
|
|
753
|
+
* @param {string|Date} pattern - Input pattern, input date, or input ISO 8601 time string
|
|
755
754
|
* @param {CronOptions|Function} [options] - Options
|
|
756
755
|
* @param {Function} [func] - Function to be run each iteration of pattern
|
|
757
756
|
* @returns {Cron}
|
|
@@ -776,7 +775,7 @@
|
|
|
776
775
|
if (pattern && (pattern instanceof Date)) {
|
|
777
776
|
this.once = new CronDate(pattern, this.options.timezone);
|
|
778
777
|
} else if (pattern && (typeof pattern === "string") && pattern.indexOf(":") > 0) {
|
|
779
|
-
/** @type {
|
|
778
|
+
/** @type {CronDate} */
|
|
780
779
|
this.once = new CronDate(pattern, this.options.timezone);
|
|
781
780
|
} else {
|
|
782
781
|
/** @type {CronPattern} */
|
|
@@ -829,7 +828,7 @@
|
|
|
829
828
|
/**
|
|
830
829
|
* Find next runtime, based on supplied date. Strips milliseconds.
|
|
831
830
|
*
|
|
832
|
-
* @param {Date} [prev] - Date to start from
|
|
831
|
+
* @param {Date|string} [prev] - Date to start from
|
|
833
832
|
* @returns {Date | null} - Next run time
|
|
834
833
|
*/
|
|
835
834
|
Cron.prototype.next = function (prev) {
|
|
@@ -842,7 +841,7 @@
|
|
|
842
841
|
* Find next n runs, based on supplied date. Strips milliseconds.
|
|
843
842
|
*
|
|
844
843
|
* @param {number} n - Number of runs to enumerate
|
|
845
|
-
* @param {Date} [
|
|
844
|
+
* @param {Date|string} [previous] - Date to start from
|
|
846
845
|
* @returns {Date[]} - Next n run times
|
|
847
846
|
*/
|
|
848
847
|
Cron.prototype.enumerate = function (n, previous) {
|
package/dist/croner.min.js
CHANGED
|
@@ -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 convertTZ(date,tzString){return new Date(date.toLocaleString("en-US",{timeZone:tzString}))}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=convertTZ(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,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++){if(pattern[target][i]&&(target!=="days"||pattern.daysOfWeek[this.getDate(true).getDay()])){if(target==="days"&&pattern.lastDayOfMonth){let baseDate=this.getDate(true);baseDate.setDate(i+1);if(baseDate.getMonth()!==this["months"]){this[target]=i;return true}}else{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,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=convertTZ(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.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].toUpperCase()=="L"){parts[3]="28,29,30,31";this.lastDayOfMonth=true}parts[4]=this.replaceAlphaMonths(parts[4]);parts[5]=this.replaceAlphaDays(parts[5]);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)+valueIndexOffset;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+valueIndexOffset]=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+valueIndexOffset]=1}};CronPattern.prototype.handleStepping=function(conf,type,valueIndexOffset){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+valueIndexOffset]=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=this.processOptions(options);if(pattern&&pattern instanceof Date){this.once=new CronDate(pattern,this.options.timezone)}else if(pattern&&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.processOptions=function(options){if(options===void 0){options={}}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};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._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);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.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};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 convertTZ(date,tzString){return new Date(date.toLocaleString("en-US",{timeZone:tzString}))}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=convertTZ(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,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++){if(pattern[target][i]&&(target!=="days"||pattern.daysOfWeek[this.getDate(true).getDay()])){if(target==="days"&&pattern.lastDayOfMonth){let baseDate=this.getDate(true);baseDate.setDate(i-offset+1);if(baseDate.getMonth()!==this["months"]){this[target]=i-offset;return true}}else{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,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=convertTZ(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.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].toUpperCase()=="L"){parts[3]="28,29,30,31";this.lastDayOfMonth=true}parts[4]=this.replaceAlphaMonths(parts[4]);parts[5]=this.replaceAlphaDays(parts[5]);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=this.processOptions(options);if(pattern&&pattern instanceof Date){this.once=new CronDate(pattern,this.options.timezone)}else if(pattern&&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.processOptions=function(options){if(options===void 0){options={}}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};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._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);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.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};return Cron});
|
package/dist/croner.min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["dist/croner.cjs"],"names":["global","factory","exports","module","define","amd","globalThis","self","Cron","this","convertTZ","date","tzString","Date","toLocaleString","timeZone","CronDate","timezone","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","daysOfWeek","getDay","lastDayOfMonth","baseDate","setDate","resetPrevious","doing","toDo","currentValue","internal","targetDate","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","match","lower","upper","steps","start","maxDelay","Math","pow","options","func","processOptions","once","fn","schedule","paused","maxRuns","Infinity","catch","kill","startAt","stopAt","next","prev","_next","enumerate","n","previous","enumeration","push","running","msLeft","msToNext","previousrun","nextRun","stop","currentTimeout","clearTimeout","pause","resume","waitMs","setTimeout","context","_e"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["dist/croner.cjs"],"names":["global","factory","exports","module","define","amd","globalThis","self","Cron","this","convertTZ","date","tzString","Date","toLocaleString","timeZone","CronDate","timezone","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","daysOfWeek","getDay","lastDayOfMonth","baseDate","setDate","resetPrevious","doing","toDo","currentValue","internal","targetDate","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","match","lower","upper","steps","start","maxDelay","Math","pow","options","func","processOptions","once","fn","schedule","paused","maxRuns","Infinity","catch","kill","startAt","stopAt","next","prev","_next","enumerate","n","previous","enumeration","push","running","msLeft","msToNext","previousrun","nextRun","stop","currentTimeout","clearTimeout","pause","resume","waitMs","setTimeout","context","_e"],"mappings":"CAAA,SAAWA,OAAQC,gBACXC,UAAY,iBAAmBC,SAAW,YAAcA,OAAOD,QAAUD,iBACzEG,SAAW,YAAcA,OAAOC,IAAMD,OAAOH,UACnDD,cAAgBM,aAAe,YAAcA,WAAaN,QAAUO,KAAMP,OAAOQ,KAAOP,YAH1F,CAIGQ,KAAM,wBAkBR,SAASC,UAAUC,KAAMC,UACxB,OAAO,IAAIC,KAAKF,KAAKG,eAAe,QAAS,CAACC,SAAUH,YAUzD,SAASI,SAAUL,KAAMM,UAExBR,KAAKQ,SAAWA,SAEhB,GAAIN,MAAQA,gBAAgBE,KAAM,CACjCJ,KAAKS,SAASP,WACR,GAAIA,YAAc,EAAG,CAC3BF,KAAKS,SAAS,IAAIL,WACZ,GAAIF,aAAeA,OAAS,SAAU,CAC5CF,KAAKU,WAAWR,WACV,GAAIA,gBAAgBK,SAAU,CACpCP,KAAKW,aAAaT,UACZ,CACN,MAAM,IAAIU,UAAU,kCAAoCV,KAAO,kDAUjEK,SAASM,UAAUJ,SAAW,SAAUP,MAEvC,GAAIF,KAAKQ,SAAU,CAClBN,KAAOD,UAAUC,KAAMF,KAAKQ,UAG7BR,KAAKc,aAAeZ,KAAKa,kBACzBf,KAAKgB,QAAUd,KAAKe,aACpBjB,KAAKkB,QAAUhB,KAAKiB,aACpBnB,KAAKoB,MAAQlB,KAAKmB,WAClBrB,KAAKsB,KAAOpB,KAAKqB,UACjBvB,KAAKwB,OAAUtB,KAAKuB,WACpBzB,KAAK0B,MAAQxB,KAAKyB,eAUnBpB,SAASM,UAAUF,aAAe,SAAUT,MAC3CF,KAAKQ,SAAWN,KAAKM,SACrBR,KAAKc,aAAeZ,KAAKY,aACzBd,KAAKgB,QAAUd,KAAKc,QACpBhB,KAAKkB,QAAUhB,KAAKgB,QACpBlB,KAAKoB,MAAQlB,KAAKkB,MAClBpB,KAAKsB,KAAOpB,KAAKoB,KACjBtB,KAAKwB,OAAStB,KAAKsB,OACnBxB,KAAK0B,MAAQxB,KAAKwB,OASnBnB,SAASM,UAAUe,MAAQ,WAC1B,MAAMC,QAAU,IAAIzB,KAAKJ,KAAK0B,MAAO1B,KAAKwB,OAAQxB,KAAKsB,KAAMtB,KAAKoB,MAAOpB,KAAKkB,QAASlB,KAAKgB,QAAShB,KAAKc,cAE1Gd,KAAKc,aAAee,QAAQd,kBAC5Bf,KAAKgB,QAAUa,QAAQZ,aACvBjB,KAAKkB,QAAUW,QAAQV,aACvBnB,KAAKoB,MAAQS,QAAQR,WACrBrB,KAAKsB,KAAOO,QAAQN,UACpBvB,KAAKwB,OAAUK,QAAQJ,WACvBzB,KAAK0B,MAAQG,QAAQF,eAStBpB,SAASM,UAAUH,WAAa,SAAUoB,KAEzC,MAAMC,WAAa/B,KAAKgC,cAAcF,KAGtC,GAAIG,MAAMF,YAAc,CACvB,MAAM,IAAInB,UAAU,6EAGrBZ,KAAKS,SAASsB,aAWfxB,SAASM,UAAUqB,UAAY,SAAUC,QAASC,OAEjD,IAAKA,MAAO,CACXpC,KAAKgB,SAAW,EAGjBhB,KAAKc,aAAe,EAEpB,MACCuB,SAAWrC,KAAKsC,UAahBC,SAAW,CAACC,OAAQL,QAASM,OAAQC,YAEpC,MAAMC,SAAYD,gBAAkB,EAAK1C,KAAKwC,QAAUC,OAAS,EAAIA,OAErE,IAAKG,IAAIC,EAAIF,SAAUE,EAAIV,QAAQK,QAAQM,OAAQD,IAAM,CAGxD,GAAIV,QAAQK,QAAQK,KAAOL,SAAW,QAAWL,QAAQY,WAAW/C,KAAKuB,QAAQ,MAAMyB,WAAc,CAGpG,GAAIR,SAAW,QAAUL,QAAQc,eAAgB,CAChDL,IAAIM,SAAWlD,KAAKuB,QAAQ,MAG5B2B,SAASC,QAAQN,EAAEJ,OAAO,GAC1B,GAAIS,SAASzB,aAAezB,KAAK,UAAW,CAC3CA,KAAKwC,QAAUK,EAAEJ,OACjB,OAAO,UAIF,CACNzC,KAAKwC,QAAUK,EAAEJ,OACjB,OAAO,OAKV,OAAO,OAIRW,cAAgB,SAKf,MAAMC,MAAQZ,QAAU,EAAG,CAO1BF,SAASe,KAAKD,MAAQZ,QAAQ,GAAIN,QAASmB,KAAKD,MAAQZ,QAAQ,GAAI,GAGpEY,UAWH,MAAMC,KAAO,CACZ,CAAC,UAAW,UAAW,GACvB,CAAC,UAAW,QAAS,GACrB,CAAC,QAAS,OAAQ,GAClB,CAAC,OAAQ,UAAW,GACpB,CAAC,SAAU,QAAS,IAKrBV,IAAIS,MAAQ,EACZ,MAAMA,MAAQ,EAAG,CAOhBT,IAAIW,aAAevD,KAAKsD,KAAKD,OAAO,IAGpC,IAAId,SAASe,KAAKD,OAAO,GAAIlB,QAASmB,KAAKD,OAAO,IAAK,CACtDrD,KAAKsD,KAAKD,OAAO,MAGjBD,cAAc,QAGR,GAAIG,eAAiBvD,KAAKsD,KAAKD,OAAO,IAAK,CAEjDD,eAAe,GAKhB,GAAIpD,KAAK0B,OAAS,IAAM,CACvB,OAAO,KAIR2B,QAID,GAAIhB,UAAYrC,KAAKsC,UAAW,CAC/BtC,KAAK4B,QACL,OAAO5B,KAAKkC,UAAUC,QAAS,UACzB,CACN,OAAOnC,OAYTO,SAASM,UAAUU,QAAU,SAAUiC,UACtC,MAAMC,WAAa,IAAIrD,KAAKJ,KAAK0B,MAAO1B,KAAKwB,OAAQxB,KAAKsB,KAAMtB,KAAKoB,MAAOpB,KAAKkB,QAASlB,KAAKgB,QAAShB,KAAKc,cAC7G,GAAI0C,WAAaxD,KAAKQ,SAAU,CAC/B,OAAOiD,eACD,CACN,MAAMhB,OAASxC,UAAUwD,WAAYzD,KAAKQ,UAAU8B,UAAUmB,WAAWnB,UACzE,OAAO,IAAIlC,KAAKqD,WAAWnB,UAAUG,UAWvClC,SAASM,UAAUyB,QAAU,SAAUkB,UACtC,OAAOxD,KAAKuB,QAAQiC,UAAUlB,WAW/B/B,SAASM,UAAUmB,cAAgB,SAAU0B,gBAC5C,MAAMC,oBAAsBD,eAAeE,MAAM,MAGjD,GAAID,oBAAoBb,OAAS,EAAG,CACnC,OAAOe,IAGR,MACCC,KAAOC,SAASJ,oBAAoB,GAAI,IACxCK,MAAQD,SAASJ,oBAAoB,GAAI,IACzCM,IAAMF,SAASJ,oBAAoB,GAAI,IACvCO,KAAOH,SAASJ,oBAAoB,GAAI,IACxCQ,OAASJ,SAASJ,oBAAoB,GAAI,IAC1CS,OAASL,SAASJ,oBAAoB,GAAI,IAG3C,GAAI1B,MAAM6B,OAAS7B,MAAM+B,QAAU/B,MAAMgC,MAAQhC,MAAMiC,OAASjC,MAAMkC,SAAWlC,MAAMmC,QAAU,CAChG,OAAOP,QACD,CACNjB,IAAIyB,cAGJ,GAAKX,eAAeY,QAAQ,KAAO,EAAI,CAGtCD,cAAgB,IAAIjE,KAAKA,KAAKmE,IAAIT,KAAME,MAAM,EAAGC,IAAKC,KAAMC,OAAQC,SAGpE,GAAIN,MAAQO,cAAcG,kBACtBR,OAASK,cAAcI,cAAc,GACrCR,KAAOI,cAAcK,cACrBR,MAAQG,cAAcM,eACtBR,QAAUE,cAAcO,iBACxBR,QAAUC,cAAcQ,gBAAiB,CAC5C,OAAOR,kBACD,CACN,OAAOR,SAEF,CAGNQ,cAAgB,IAAIjE,KAAK0D,KAAME,MAAM,EAAGC,IAAKC,KAAMC,OAAQC,QAG3D,GAAIN,MAAQO,cAAc1C,eACtBqC,OAASK,cAAc5C,WAAW,GAClCwC,KAAOI,cAAc9C,WACrB2C,MAAQG,cAAchD,YACtB8C,QAAUE,cAAclD,cACxBiD,QAAUC,cAAcpD,aAAc,CACzC,OAAOoD,kBACD,CACN,OAAOR,QA0BX,SAASiB,YAAa3C,QAAS3B,UAE9BR,KAAKmC,QAAYA,QACjBnC,KAAKQ,SAAYA,SAEjBR,KAAKgB,QAAiB+D,MAAM,IAAIC,KAAK,GACrChF,KAAKkB,QAAiB6D,MAAM,IAAIC,KAAK,GACrChF,KAAKoB,MAAiB2D,MAAM,IAAIC,KAAK,GACrChF,KAAKsB,KAAiByD,MAAM,IAAIC,KAAK,GACrChF,KAAKwB,OAAiBuD,MAAM,IAAIC,KAAK,GACrChF,KAAK+C,WAAiBgC,MAAM,GAAGC,KAAK,GAEpChF,KAAKiD,eAAiB,MAEtBjD,KAAKiF,QAQNH,YAAYjE,UAAUoE,MAAQ,WAG7B,YAAajF,KAAKmC,UAAY,UAAYnC,KAAKmC,QAAQ+C,cAAgBC,QAAU,CAChF,MAAM,IAAIvE,UAAU,kDAIrB,MAAMwE,MAAQpF,KAAKmC,QAAQkD,OAAOC,QAAQ,OAAQ,KAAK1B,MAAM,KAG7D,GAAIwB,MAAMtC,OAAS,GAAKsC,MAAMtC,OAAS,EAAI,CAC1C,MAAM,IAAIlC,UAAU,+CAAiDZ,KAAKmC,QAAU,0DAIrF,GAAIiD,MAAMtC,SAAW,EAAG,CACvBsC,MAAMG,QAAQ,KAKf,GAAGH,MAAM,GAAGI,eAAiB,IAAK,CACjCJ,MAAM,GAAK,cACXpF,KAAKiD,eAAiB,KAIvBmC,MAAM,GAAKpF,KAAKyF,mBAAmBL,MAAM,IACzCA,MAAM,GAAKpF,KAAK0F,iBAAiBN,MAAM,IAGvCxC,IAAI+C,SAAW,IAAIpF,SAAS,IAAIH,KAAOJ,KAAKQ,UAAUe,QAAQ,MAE9D6D,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKK,SAAS1E,cAC1CmE,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKK,SAASxE,cAC1CiE,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKK,SAAStE,YAC1C+D,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKK,SAASpE,WAC1C6D,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKK,SAASlE,WAAW,GACrD2D,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKK,SAAS3C,UAG1ChD,KAAK4F,yBAAyBR,OAG9BpF,KAAK6F,YAAY,UAAcT,MAAM,GAAI,GACzCpF,KAAK6F,YAAY,UAAcT,MAAM,GAAI,GACzCpF,KAAK6F,YAAY,QAAcT,MAAM,GAAI,GACzCpF,KAAK6F,YAAY,OAAcT,MAAM,IAAK,GAC1CpF,KAAK6F,YAAY,SAAcT,MAAM,IAAK,GAC1CpF,KAAK6F,YAAY,aAAcT,MAAM,GAAI,GAGzC,GAAIpF,KAAK+C,WAAW,GAAK,CACxB/C,KAAK+C,WAAW,GAAK,IAcvB+B,YAAYjE,UAAUgF,YAAc,SAAUC,KAAMC,KAAMC,iBAAkBC,UAE3E,MAAMC,IAAMlG,KAAK8F,MAGjB,GAAIC,OAAS,IAAM,CAClB,IAAKnD,IAAIC,EAAI,EAAGA,EAAIqD,IAAIpD,OAAQD,IAAM,CACrCqD,IAAIrD,GAAK,EAEV,OAID,MAAMe,MAAQmC,KAAKnC,MAAM,KACzB,GAAIA,MAAMd,OAAS,EAAI,CACtB,IAAKF,IAAIC,EAAI,EAAGA,EAAIe,MAAMd,OAAQD,IAAM,CACvC7C,KAAK6F,YAAYC,KAAMlC,MAAMf,GAAImD,iBAAkB,YAI9C,GAAID,KAAKzB,QAAQ,QAAU,GAAKyB,KAAKzB,QAAQ,QAAU,EAAI,CACjE,GAAI2B,SAAU,MAAM,IAAIE,MAAM,0DAE9BnG,KAAKoG,wBAAwBL,KAAMD,KAAME,uBAGnC,GAAID,KAAKzB,QAAQ,QAAU,EAAI,CACrC,GAAI2B,SAAU,MAAM,IAAIE,MAAM,0DAE9BnG,KAAKqG,YAAYN,KAAMD,KAAME,uBAGvB,GAAID,KAAKzB,QAAQ,QAAU,EAAI,CACrC,GAAI2B,SAAU,MAAM,IAAIE,MAAM,0DAE9BnG,KAAKsG,eAAeP,KAAMD,KAAME,sBAE1B,CACNhG,KAAKuG,aAAaR,KAAMD,KAAME,oBAWhClB,YAAYjE,UAAU+E,yBAA2B,SAAUR,OAC1D,MAAMoB,YAAc,cACpB,IAAI5D,IAAIC,EAAI,EAAGA,EAAIuC,MAAMtC,OAAQD,IAAK,CACrC,GAAI2D,YAAYC,KAAKrB,MAAMvC,IAAM,CAChC,MAAM,IAAIjC,UAAU,oCAAsCiC,EAAI,KAAOuC,MAAMvC,GAAK,qCAanFiC,YAAYjE,UAAU0F,aAAe,SAAUR,KAAMD,KAAME,kBAC1D,MAAMnD,EAAKkB,SAASgC,KAAM,IAAMC,iBAEhC,GAAInD,EAAI,GAAKA,GAAK7C,KAAK8F,MAAMhD,OAAS,CACrC,MAAM,IAAIlC,UAAU,gBAAkBkF,KAAO,yBAA2BC,KAAO,KAGhF/F,KAAK8F,MAAMjD,GAAK,GAWjBiC,YAAYjE,UAAUuF,wBAA0B,SAAUL,KAAMD,KAAME,kBACrE,MAAMU,QAAUX,KAAKY,MAAM,wBAE3B,GAAID,UAAY,KAAO,MAAM,IAAI9F,UAAU,4DAA8DmF,KAAO,KAEhHnD,GAAI,CAAC,CAAEgE,MAAOC,MAAOC,OAASJ,QAC9BE,MAAQ7C,SAAS6C,MAAO,IAAMZ,iBAC9Ba,MAAQ9C,SAAS8C,MAAO,IAAMb,iBAC9Bc,MAAQ/C,SAAS+C,MAAO,IAExB,GAAI7E,MAAM2E,OAAS,MAAM,IAAIhG,UAAU,wDACvC,GAAIqB,MAAM4E,OAAS,MAAM,IAAIjG,UAAU,wDACvC,GAAIqB,MAAM6E,OAAS,MAAM,IAAIlG,UAAU,sDAEvC,GAAIkG,QAAU,EAAI,MAAM,IAAIlG,UAAU,kDACtC,GAAIkG,MAAQ9G,KAAK8F,MAAMhD,OAAS,MAAM,IAAIlC,UAAU,kFAAkFZ,KAAK8F,MAAMhD,OAAO,KAExJ,GAAI8D,MAAQ,GAAKC,OAAS7G,KAAK8F,MAAMhD,OAAS,MAAM,IAAIlC,UAAU,qCAAuCmF,KAAO,KAChH,GAAIa,MAAQC,MAAQ,MAAM,IAAIjG,UAAU,qDAAuDmF,KAAO,KAEtG,IAAKnD,IAAIC,EAAI+D,MAAO/D,GAAKgE,MAAOhE,GAAKiE,MAAO,CAC3C9G,KAAK8F,MAAMjD,GAAK,IAYlBiC,YAAYjE,UAAUwF,YAAc,SAAUN,KAAMD,KAAME,kBACzD,MAAMpC,MAAQmC,KAAKnC,MAAM,KAEzB,GAAIA,MAAMd,SAAW,EAAI,CACxB,MAAM,IAAIlC,UAAU,8CAAgDmF,KAAO,KAG5E,MAAMa,MAAQ7C,SAASH,MAAM,GAAI,IAAMoC,iBACtCa,MAAQ9C,SAASH,MAAM,GAAI,IAAMoC,iBAElC,GAAI/D,MAAM2E,OAAS,CAClB,MAAM,IAAIhG,UAAU,6DACd,GAAIqB,MAAM4E,OAAS,CACzB,MAAM,IAAIjG,UAAU,wDAIrB,GAAIgG,MAAQ,GAAKC,OAAS7G,KAAK8F,MAAMhD,OAAS,CAC7C,MAAM,IAAIlC,UAAU,qCAAuCmF,KAAO,KAInE,GAAIa,MAAQC,MAAQ,CACnB,MAAM,IAAIjG,UAAU,qDAAuDmF,KAAO,KAGnF,IAAKnD,IAAIC,EAAI+D,MAAO/D,GAAKgE,MAAOhE,IAAM,CACrC7C,KAAK8F,MAAMjD,GAAK,IAWlBiC,YAAYjE,UAAUyF,eAAiB,SAAUP,KAAMD,MAEtD,MAAMlC,MAAQmC,KAAKnC,MAAM,KAEzB,GAAIA,MAAMd,SAAW,EAAI,CACxB,MAAM,IAAIlC,UAAU,iDAAmDmF,KAAO,KAG/EnD,IAAImE,MAAQ,EACZ,GAAInD,MAAM,KAAO,IAAM,CACtBmD,MAAQhD,SAASH,MAAM,GAAI,IAG5B,MAAMkD,MAAQ/C,SAASH,MAAM,GAAI,IAEjC,GAAI3B,MAAM6E,OAAS,MAAM,IAAIlG,UAAU,sDACvC,GAAIkG,QAAU,EAAI,MAAM,IAAIlG,UAAU,kDACtC,GAAIkG,MAAQ9G,KAAK8F,MAAMhD,OAAS,MAAM,IAAIlC,UAAU,kFAAkFZ,KAAK8F,MAAMhD,OAAO,KAExJ,IAAKF,IAAIC,EAAIkE,MAAOlE,EAAI7C,KAAK8F,MAAMhD,OAAQD,GAAIiE,MAAQ,CACtD9G,KAAK8F,MAAMjD,GAAK,IAalBiC,YAAYjE,UAAU6E,iBAAmB,SAAUK,MAClD,OAAOA,KACLT,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,MAWpBR,YAAYjE,UAAU4E,mBAAqB,SAAUM,MACpD,OAAOA,KACLT,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,MACjBA,QAAQ,QAAS,MACjBA,QAAQ,QAAS,OAuDpB,MAAM0B,SAAWC,KAAKC,IAAI,EAAG,GAAK,GAAK,EAWvC,SAASnH,KAAMoC,QAASgF,QAASC,MAGhC,KAAMpH,gBAAgBD,MAAQ,CAC7B,OAAO,IAAIA,KAAKoC,QAASgF,QAASC,MAInC,UAAWD,UAAY,WAAa,CACnCC,KAAOD,QACPA,aAAe,EAIhBnH,KAAKmH,QAAUnH,KAAKqH,eAAeF,SAGnC,GAAIhF,SAAYA,mBAAmB/B,KAAO,CACzCJ,KAAKsH,KAAO,IAAI/G,SAAS4B,QAASnC,KAAKmH,QAAQ3G,eACzC,GAAI2B,gBAAmBA,UAAY,UAAaA,QAAQmC,QAAQ,KAAO,EAAG,CAEhFtE,KAAKsH,KAAO,IAAI/G,SAAS4B,QAASnC,KAAKmH,QAAQ3G,cACzC,CAENR,KAAKmC,QAAU,IAAI2C,YAAY3C,QAASnC,KAAKmH,QAAQ3G,UAMtD,GAAI4G,YAAc,EAAI,CACrBpH,KAAKuH,GAAKH,KACVpH,KAAKwH,WAGN,OAAOxH,KAWRD,KAAKc,UAAUwG,eAAiB,SAAUF,SAGzC,GAAIA,eAAiB,EAAG,CACvBA,QAAU,GAIXA,QAAQM,OAAUN,QAAQM,cAAgB,EAAK,MAAQN,QAAQM,OAC/DN,QAAQO,QAAWP,QAAQO,eAAiB,EAAKC,SAAWR,QAAQO,QACpEP,QAAQS,MAAST,QAAQS,aAAe,EAAK,MAAQT,QAAQS,MAC7DT,QAAQU,KAAO,MAGf,GAAIV,QAAQW,QAAU,CACrBX,QAAQW,QAAU,IAAIvH,SAAS4G,QAAQW,QAASX,QAAQ3G,UAEzD,GAAI2G,QAAQY,OAAS,CACpBZ,QAAQY,OAAS,IAAIxH,SAAS4G,QAAQY,OAAQZ,QAAQ3G,UAGvD,OAAO2G,SASRpH,KAAKc,UAAUmH,KAAO,SAAUC,MAC/BA,KAAO,IAAI1H,SAAS0H,KAAMjI,KAAKmH,QAAQ3G,UACvC,MAAMwH,KAAOhI,KAAKkI,MAAMD,MACxB,OAAOD,KAAOA,KAAKzG,UAAY,MAUhCxB,KAAKc,UAAUsH,UAAY,SAAUC,EAAGC,UACvCzF,IAAI0F,YAAc,GAElB,MAAMF,MAAQC,SAAWrI,KAAKgI,KAAKK,WAAY,CAC9CC,YAAYC,KAAKF,UAGlB,OAAOC,aASRvI,KAAKc,UAAU2H,QAAU,WACxB,MAAMC,OAASzI,KAAK0I,SAAS1I,KAAK2I,aAClC,MAAMH,SAAWxI,KAAKmH,QAAQM,QAAUzH,KAAKuH,UAAY,EACzD,OAAOkB,SAAW,MAAQD,SAS3BzI,KAAKc,UAAUwH,SAAW,WACzB,OAAOrI,KAAK2I,YAAc3I,KAAK2I,YAAYpH,UAAY,MAUxDxB,KAAKc,UAAUqH,MAAQ,SAAUD,MAGhC,GAAIjI,KAAKmH,QAAQW,SAAWG,MAAQA,KAAK3F,QAAQ,MAAQtC,KAAKmH,QAAQW,QAAQxF,QAAQ,MAAQ,CAC7F2F,KAAOjI,KAAKmH,QAAQW,QAIrB,MAAMc,QAAU5I,KAAKsH,MAAQ,IAAI/G,SAAS0H,KAAMjI,KAAKmH,QAAQ3G,UAAU0B,UAAUlC,KAAKmC,SAEtF,GAAInC,KAAKsH,MAAQtH,KAAKsH,KAAKhF,QAAQ,OAAS2F,KAAK3F,QAAQ,MAAO,CAC/D,OAAO,UAED,GAAKsG,UAAY,MACtB5I,KAAKmH,QAAQO,SAAW,GACxB1H,KAAKmH,QAAY,MACjBnH,KAAKmH,QAAQY,QAAUa,QAAQtG,QAAQ,OAAStC,KAAKmH,QAAQY,OAAOzF,QAAQ,MAAS,CACtF,OAAO,SAED,CAEN,OAAOsG,UAaT7I,KAAKc,UAAU6H,SAAW,SAAUT,MACnCA,KAAO,IAAI1H,SAAS0H,KAAMjI,KAAKmH,QAAQ3G,UACvC,MAAMwH,KAAOhI,KAAKkI,MAAMD,MACxB,GAAID,KAAO,CACV,OAAQA,KAAK1F,QAAQ,MAAQ2F,KAAK3F,QAAQ,UACpC,CACN,OAAO,OAQTvC,KAAKc,UAAUgI,KAAO,WACrB7I,KAAKmH,QAAQU,KAAO,KAEpB,GAAI7H,KAAK8I,eAAiB,CACzBC,aAAc/I,KAAK8I,kBAUrB/I,KAAKc,UAAUmI,MAAQ,WACtB,OAAQhJ,KAAKmH,QAAQM,OAAS,QAAUzH,KAAKmH,QAAQU,MAStD9H,KAAKc,UAAUoI,OAAS,WACvB,QAASjJ,KAAKmH,QAAQM,OAAS,SAAWzH,KAAKmH,QAAQU,MAUxD9H,KAAKc,UAAU2G,SAAW,SAAUJ,MAGnC,GAAIA,MAAQpH,KAAKuH,GAAI,CACpB,MAAM,IAAIpB,MAAM,0FAGV,GAAIiB,KAAM,CAChBpH,KAAKuH,GAAKH,KAIXxE,IAAIsG,OAASlJ,KAAK0I,SAAS1I,KAAK2I,aAChC,GAAMO,SAAW,KAAQ,OAAOlJ,KAGhC,GAAIkJ,OAASlC,SAAW,CACvBkC,OAASlC,SAIVhH,KAAK8I,eAAiBK,WAAW,KAEhC,GAAID,SAAWlC,WAAahH,KAAKmH,QAAQM,OAAS,CAEjDzH,KAAKmH,QAAQO,UAGb,GAAI1H,KAAKmH,QAAQS,MAAO,CACvB,IACC5H,KAAKuH,GAAGvH,KAAMA,KAAKmH,QAAQiC,SAC1B,MAAOC,UAGH,CACNrJ,KAAKuH,GAAGvH,KAAMA,KAAKmH,QAAQiC,SAG5BpJ,KAAK2I,YAAc,IAAIpI,cAAc,EAAGP,KAAKmH,QAAQ3G,UAKtDR,KAAKwH,YAEH0B,QAEH,OAAOlJ,MAIR,OAAOD"}
|
package/dist/croner.min.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function convertTZ(date,tzString){return new Date(date.toLocaleString("en-US",{timeZone:tzString}))}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=convertTZ(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,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++){if(pattern[target][i]&&(target!=="days"||pattern.daysOfWeek[this.getDate(true).getDay()])){if(target==="days"&&pattern.lastDayOfMonth){let baseDate=this.getDate(true);baseDate.setDate(i+1);if(baseDate.getMonth()!==this["months"]){this[target]=i;return true}}else{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,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=convertTZ(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.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].toUpperCase()=="L"){parts[3]="28,29,30,31";this.lastDayOfMonth=true}parts[4]=this.replaceAlphaMonths(parts[4]);parts[5]=this.replaceAlphaDays(parts[5]);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)+valueIndexOffset;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+valueIndexOffset]=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+valueIndexOffset]=1}};CronPattern.prototype.handleStepping=function(conf,type,valueIndexOffset){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+valueIndexOffset]=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=this.processOptions(options);if(pattern&&pattern instanceof Date){this.once=new CronDate(pattern,this.options.timezone)}else if(pattern&&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.processOptions=function(options){if(options===void 0){options={}}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};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._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);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.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};export{Cron,Cron as default};
|
|
1
|
+
function convertTZ(date,tzString){return new Date(date.toLocaleString("en-US",{timeZone:tzString}))}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=convertTZ(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,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++){if(pattern[target][i]&&(target!=="days"||pattern.daysOfWeek[this.getDate(true).getDay()])){if(target==="days"&&pattern.lastDayOfMonth){let baseDate=this.getDate(true);baseDate.setDate(i-offset+1);if(baseDate.getMonth()!==this["months"]){this[target]=i-offset;return true}}else{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,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=convertTZ(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.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].toUpperCase()=="L"){parts[3]="28,29,30,31";this.lastDayOfMonth=true}parts[4]=this.replaceAlphaMonths(parts[4]);parts[5]=this.replaceAlphaDays(parts[5]);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=this.processOptions(options);if(pattern&&pattern instanceof Date){this.once=new CronDate(pattern,this.options.timezone)}else if(pattern&&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.processOptions=function(options){if(options===void 0){options={}}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};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._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);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.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};export{Cron,Cron as default};
|
package/dist/croner.min.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["dist/croner.mjs"],"names":["convertTZ","date","tzString","Date","toLocaleString","timeZone","CronDate","timezone","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","daysOfWeek","getDay","lastDayOfMonth","baseDate","setDate","resetPrevious","doing","toDo","currentValue","internal","targetDate","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","match","lower","upper","steps","start","maxDelay","Math","pow","Cron","options","func","processOptions","once","fn","schedule","paused","maxRuns","Infinity","catch","kill","startAt","stopAt","next","prev","_next","enumerate","n","previous","enumeration","push","running","msLeft","msToNext","previousrun","nextRun","stop","currentTimeout","clearTimeout","pause","resume","waitMs","setTimeout","context","_e"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["dist/croner.mjs"],"names":["convertTZ","date","tzString","Date","toLocaleString","timeZone","CronDate","timezone","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","daysOfWeek","getDay","lastDayOfMonth","baseDate","setDate","resetPrevious","doing","toDo","currentValue","internal","targetDate","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","match","lower","upper","steps","start","maxDelay","Math","pow","Cron","options","func","processOptions","once","fn","schedule","paused","maxRuns","Infinity","catch","kill","startAt","stopAt","next","prev","_next","enumerate","n","previous","enumeration","push","running","msLeft","msToNext","previousrun","nextRun","stop","currentTimeout","clearTimeout","pause","resume","waitMs","setTimeout","context","_e"],"mappings":"AAgBA,SAASA,UAAUC,KAAMC,UACxB,OAAO,IAAIC,KAAKF,KAAKG,eAAe,QAAS,CAACC,SAAUH,YAUzD,SAASI,SAAUL,KAAMM,UAExBC,KAAKD,SAAWA,SAEhB,GAAIN,MAAQA,gBAAgBE,KAAM,CACjCK,KAAKC,SAASR,WACR,GAAIA,YAAc,EAAG,CAC3BO,KAAKC,SAAS,IAAIN,WACZ,GAAIF,aAAeA,OAAS,SAAU,CAC5CO,KAAKE,WAAWT,WACV,GAAIA,gBAAgBK,SAAU,CACpCE,KAAKG,aAAaV,UACZ,CACN,MAAM,IAAIW,UAAU,kCAAoCX,KAAO,kDAUjEK,SAASO,UAAUJ,SAAW,SAAUR,MAEvC,GAAIO,KAAKD,SAAU,CAClBN,KAAOD,UAAUC,KAAMO,KAAKD,UAG7BC,KAAKM,aAAeb,KAAKc,kBACzBP,KAAKQ,QAAUf,KAAKgB,aACpBT,KAAKU,QAAUjB,KAAKkB,aACpBX,KAAKY,MAAQnB,KAAKoB,WAClBb,KAAKc,KAAOrB,KAAKsB,UACjBf,KAAKgB,OAAUvB,KAAKwB,WACpBjB,KAAKkB,MAAQzB,KAAK0B,eAUnBrB,SAASO,UAAUF,aAAe,SAAUV,MAC3CO,KAAKD,SAAWN,KAAKM,SACrBC,KAAKM,aAAeb,KAAKa,aACzBN,KAAKQ,QAAUf,KAAKe,QACpBR,KAAKU,QAAUjB,KAAKiB,QACpBV,KAAKY,MAAQnB,KAAKmB,MAClBZ,KAAKc,KAAOrB,KAAKqB,KACjBd,KAAKgB,OAASvB,KAAKuB,OACnBhB,KAAKkB,MAAQzB,KAAKyB,OASnBpB,SAASO,UAAUe,MAAQ,WAC1B,MAAMC,QAAU,IAAI1B,KAAKK,KAAKkB,MAAOlB,KAAKgB,OAAQhB,KAAKc,KAAMd,KAAKY,MAAOZ,KAAKU,QAASV,KAAKQ,QAASR,KAAKM,cAE1GN,KAAKM,aAAee,QAAQd,kBAC5BP,KAAKQ,QAAUa,QAAQZ,aACvBT,KAAKU,QAAUW,QAAQV,aACvBX,KAAKY,MAAQS,QAAQR,WACrBb,KAAKc,KAAOO,QAAQN,UACpBf,KAAKgB,OAAUK,QAAQJ,WACvBjB,KAAKkB,MAAQG,QAAQF,eAStBrB,SAASO,UAAUH,WAAa,SAAUoB,KAEzC,MAAMC,WAAavB,KAAKwB,cAAcF,KAGtC,GAAIG,MAAMF,YAAc,CACvB,MAAM,IAAInB,UAAU,6EAGrBJ,KAAKC,SAASsB,aAWfzB,SAASO,UAAUqB,UAAY,SAAUC,QAASC,OAEjD,IAAKA,MAAO,CACX5B,KAAKQ,SAAW,EAGjBR,KAAKM,aAAe,EAEpB,MACCuB,SAAW7B,KAAK8B,UAahBC,SAAW,CAACC,OAAQL,QAASM,OAAQC,YAEpC,MAAMC,SAAYD,gBAAkB,EAAKlC,KAAKgC,QAAUC,OAAS,EAAIA,OAErE,IAAKG,IAAIC,EAAIF,SAAUE,EAAIV,QAAQK,QAAQM,OAAQD,IAAM,CAGxD,GAAIV,QAAQK,QAAQK,KAAOL,SAAW,QAAWL,QAAQY,WAAWvC,KAAKe,QAAQ,MAAMyB,WAAc,CAGpG,GAAIR,SAAW,QAAUL,QAAQc,eAAgB,CAChDL,IAAIM,SAAW1C,KAAKe,QAAQ,MAG5B2B,SAASC,QAAQN,EAAEJ,OAAO,GAC1B,GAAIS,SAASzB,aAAejB,KAAK,UAAW,CAC3CA,KAAKgC,QAAUK,EAAEJ,OACjB,OAAO,UAIF,CACNjC,KAAKgC,QAAUK,EAAEJ,OACjB,OAAO,OAKV,OAAO,OAIRW,cAAgB,SAKf,MAAMC,MAAQZ,QAAU,EAAG,CAO1BF,SAASe,KAAKD,MAAQZ,QAAQ,GAAIN,QAASmB,KAAKD,MAAQZ,QAAQ,GAAI,GAGpEY,UAWH,MAAMC,KAAO,CACZ,CAAC,UAAW,UAAW,GACvB,CAAC,UAAW,QAAS,GACrB,CAAC,QAAS,OAAQ,GAClB,CAAC,OAAQ,UAAW,GACpB,CAAC,SAAU,QAAS,IAKrBV,IAAIS,MAAQ,EACZ,MAAMA,MAAQ,EAAG,CAOhBT,IAAIW,aAAe/C,KAAK8C,KAAKD,OAAO,IAGpC,IAAId,SAASe,KAAKD,OAAO,GAAIlB,QAASmB,KAAKD,OAAO,IAAK,CACtD7C,KAAK8C,KAAKD,OAAO,MAGjBD,cAAc,QAGR,GAAIG,eAAiB/C,KAAK8C,KAAKD,OAAO,IAAK,CAEjDD,eAAe,GAKhB,GAAI5C,KAAKkB,OAAS,IAAM,CACvB,OAAO,KAIR2B,QAID,GAAIhB,UAAY7B,KAAK8B,UAAW,CAC/B9B,KAAKoB,QACL,OAAOpB,KAAK0B,UAAUC,QAAS,UACzB,CACN,OAAO3B,OAYTF,SAASO,UAAUU,QAAU,SAAUiC,UACtC,MAAMC,WAAa,IAAItD,KAAKK,KAAKkB,MAAOlB,KAAKgB,OAAQhB,KAAKc,KAAMd,KAAKY,MAAOZ,KAAKU,QAASV,KAAKQ,QAASR,KAAKM,cAC7G,GAAI0C,WAAahD,KAAKD,SAAU,CAC/B,OAAOkD,eACD,CACN,MAAMhB,OAASzC,UAAUyD,WAAYjD,KAAKD,UAAU+B,UAAUmB,WAAWnB,UACzE,OAAO,IAAInC,KAAKsD,WAAWnB,UAAUG,UAWvCnC,SAASO,UAAUyB,QAAU,SAAUkB,UACtC,OAAOhD,KAAKe,QAAQiC,UAAUlB,WAW/BhC,SAASO,UAAUmB,cAAgB,SAAU0B,gBAC5C,MAAMC,oBAAsBD,eAAeE,MAAM,MAGjD,GAAID,oBAAoBb,OAAS,EAAG,CACnC,OAAOe,IAGR,MACCC,KAAOC,SAASJ,oBAAoB,GAAI,IACxCK,MAAQD,SAASJ,oBAAoB,GAAI,IACzCM,IAAMF,SAASJ,oBAAoB,GAAI,IACvCO,KAAOH,SAASJ,oBAAoB,GAAI,IACxCQ,OAASJ,SAASJ,oBAAoB,GAAI,IAC1CS,OAASL,SAASJ,oBAAoB,GAAI,IAG3C,GAAI1B,MAAM6B,OAAS7B,MAAM+B,QAAU/B,MAAMgC,MAAQhC,MAAMiC,OAASjC,MAAMkC,SAAWlC,MAAMmC,QAAU,CAChG,OAAOP,QACD,CACNjB,IAAIyB,cAGJ,GAAKX,eAAeY,QAAQ,KAAO,EAAI,CAGtCD,cAAgB,IAAIlE,KAAKA,KAAKoE,IAAIT,KAAME,MAAM,EAAGC,IAAKC,KAAMC,OAAQC,SAGpE,GAAIN,MAAQO,cAAcG,kBACtBR,OAASK,cAAcI,cAAc,GACrCR,KAAOI,cAAcK,cACrBR,MAAQG,cAAcM,eACtBR,QAAUE,cAAcO,iBACxBR,QAAUC,cAAcQ,gBAAiB,CAC5C,OAAOR,kBACD,CACN,OAAOR,SAEF,CAGNQ,cAAgB,IAAIlE,KAAK2D,KAAME,MAAM,EAAGC,IAAKC,KAAMC,OAAQC,QAG3D,GAAIN,MAAQO,cAAc1C,eACtBqC,OAASK,cAAc5C,WAAW,GAClCwC,KAAOI,cAAc9C,WACrB2C,MAAQG,cAAchD,YACtB8C,QAAUE,cAAclD,cACxBiD,QAAUC,cAAcpD,aAAc,CACzC,OAAOoD,kBACD,CACN,OAAOR,QA0BX,SAASiB,YAAa3C,QAAS5B,UAE9BC,KAAK2B,QAAYA,QACjB3B,KAAKD,SAAYA,SAEjBC,KAAKQ,QAAiB+D,MAAM,IAAIC,KAAK,GACrCxE,KAAKU,QAAiB6D,MAAM,IAAIC,KAAK,GACrCxE,KAAKY,MAAiB2D,MAAM,IAAIC,KAAK,GACrCxE,KAAKc,KAAiByD,MAAM,IAAIC,KAAK,GACrCxE,KAAKgB,OAAiBuD,MAAM,IAAIC,KAAK,GACrCxE,KAAKuC,WAAiBgC,MAAM,GAAGC,KAAK,GAEpCxE,KAAKyC,eAAiB,MAEtBzC,KAAKyE,QAQNH,YAAYjE,UAAUoE,MAAQ,WAG7B,YAAazE,KAAK2B,UAAY,UAAY3B,KAAK2B,QAAQ+C,cAAgBC,QAAU,CAChF,MAAM,IAAIvE,UAAU,kDAIrB,MAAMwE,MAAQ5E,KAAK2B,QAAQkD,OAAOC,QAAQ,OAAQ,KAAK1B,MAAM,KAG7D,GAAIwB,MAAMtC,OAAS,GAAKsC,MAAMtC,OAAS,EAAI,CAC1C,MAAM,IAAIlC,UAAU,+CAAiDJ,KAAK2B,QAAU,0DAIrF,GAAIiD,MAAMtC,SAAW,EAAG,CACvBsC,MAAMG,QAAQ,KAKf,GAAGH,MAAM,GAAGI,eAAiB,IAAK,CACjCJ,MAAM,GAAK,cACX5E,KAAKyC,eAAiB,KAIvBmC,MAAM,GAAK5E,KAAKiF,mBAAmBL,MAAM,IACzCA,MAAM,GAAK5E,KAAKkF,iBAAiBN,MAAM,IAGvCxC,IAAI+C,SAAW,IAAIrF,SAAS,IAAIH,KAAOK,KAAKD,UAAUgB,QAAQ,MAE9D6D,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKK,SAAS1E,cAC1CmE,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKK,SAASxE,cAC1CiE,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKK,SAAStE,YAC1C+D,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKK,SAASpE,WAC1C6D,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKK,SAASlE,WAAW,GACrD2D,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKK,SAAS3C,UAG1CxC,KAAKoF,yBAAyBR,OAG9B5E,KAAKqF,YAAY,UAAcT,MAAM,GAAI,GACzC5E,KAAKqF,YAAY,UAAcT,MAAM,GAAI,GACzC5E,KAAKqF,YAAY,QAAcT,MAAM,GAAI,GACzC5E,KAAKqF,YAAY,OAAcT,MAAM,IAAK,GAC1C5E,KAAKqF,YAAY,SAAcT,MAAM,IAAK,GAC1C5E,KAAKqF,YAAY,aAAcT,MAAM,GAAI,GAGzC,GAAI5E,KAAKuC,WAAW,GAAK,CACxBvC,KAAKuC,WAAW,GAAK,IAcvB+B,YAAYjE,UAAUgF,YAAc,SAAUC,KAAMC,KAAMC,iBAAkBC,UAE3E,MAAMC,IAAM1F,KAAKsF,MAGjB,GAAIC,OAAS,IAAM,CAClB,IAAKnD,IAAIC,EAAI,EAAGA,EAAIqD,IAAIpD,OAAQD,IAAM,CACrCqD,IAAIrD,GAAK,EAEV,OAID,MAAMe,MAAQmC,KAAKnC,MAAM,KACzB,GAAIA,MAAMd,OAAS,EAAI,CACtB,IAAKF,IAAIC,EAAI,EAAGA,EAAIe,MAAMd,OAAQD,IAAM,CACvCrC,KAAKqF,YAAYC,KAAMlC,MAAMf,GAAImD,iBAAkB,YAI9C,GAAID,KAAKzB,QAAQ,QAAU,GAAKyB,KAAKzB,QAAQ,QAAU,EAAI,CACjE,GAAI2B,SAAU,MAAM,IAAIE,MAAM,0DAE9B3F,KAAK4F,wBAAwBL,KAAMD,KAAME,uBAGnC,GAAID,KAAKzB,QAAQ,QAAU,EAAI,CACrC,GAAI2B,SAAU,MAAM,IAAIE,MAAM,0DAE9B3F,KAAK6F,YAAYN,KAAMD,KAAME,uBAGvB,GAAID,KAAKzB,QAAQ,QAAU,EAAI,CACrC,GAAI2B,SAAU,MAAM,IAAIE,MAAM,0DAE9B3F,KAAK8F,eAAeP,KAAMD,KAAME,sBAE1B,CACNxF,KAAK+F,aAAaR,KAAMD,KAAME,oBAWhClB,YAAYjE,UAAU+E,yBAA2B,SAAUR,OAC1D,MAAMoB,YAAc,cACpB,IAAI5D,IAAIC,EAAI,EAAGA,EAAIuC,MAAMtC,OAAQD,IAAK,CACrC,GAAI2D,YAAYC,KAAKrB,MAAMvC,IAAM,CAChC,MAAM,IAAIjC,UAAU,oCAAsCiC,EAAI,KAAOuC,MAAMvC,GAAK,qCAanFiC,YAAYjE,UAAU0F,aAAe,SAAUR,KAAMD,KAAME,kBAC1D,MAAMnD,EAAKkB,SAASgC,KAAM,IAAMC,iBAEhC,GAAInD,EAAI,GAAKA,GAAKrC,KAAKsF,MAAMhD,OAAS,CACrC,MAAM,IAAIlC,UAAU,gBAAkBkF,KAAO,yBAA2BC,KAAO,KAGhFvF,KAAKsF,MAAMjD,GAAK,GAWjBiC,YAAYjE,UAAUuF,wBAA0B,SAAUL,KAAMD,KAAME,kBACrE,MAAMU,QAAUX,KAAKY,MAAM,wBAE3B,GAAID,UAAY,KAAO,MAAM,IAAI9F,UAAU,4DAA8DmF,KAAO,KAEhHnD,GAAI,CAAC,CAAEgE,MAAOC,MAAOC,OAASJ,QAC9BE,MAAQ7C,SAAS6C,MAAO,IAAMZ,iBAC9Ba,MAAQ9C,SAAS8C,MAAO,IAAMb,iBAC9Bc,MAAQ/C,SAAS+C,MAAO,IAExB,GAAI7E,MAAM2E,OAAS,MAAM,IAAIhG,UAAU,wDACvC,GAAIqB,MAAM4E,OAAS,MAAM,IAAIjG,UAAU,wDACvC,GAAIqB,MAAM6E,OAAS,MAAM,IAAIlG,UAAU,sDAEvC,GAAIkG,QAAU,EAAI,MAAM,IAAIlG,UAAU,kDACtC,GAAIkG,MAAQtG,KAAKsF,MAAMhD,OAAS,MAAM,IAAIlC,UAAU,kFAAkFJ,KAAKsF,MAAMhD,OAAO,KAExJ,GAAI8D,MAAQ,GAAKC,OAASrG,KAAKsF,MAAMhD,OAAS,MAAM,IAAIlC,UAAU,qCAAuCmF,KAAO,KAChH,GAAIa,MAAQC,MAAQ,MAAM,IAAIjG,UAAU,qDAAuDmF,KAAO,KAEtG,IAAKnD,IAAIC,EAAI+D,MAAO/D,GAAKgE,MAAOhE,GAAKiE,MAAO,CAC3CtG,KAAKsF,MAAMjD,GAAK,IAYlBiC,YAAYjE,UAAUwF,YAAc,SAAUN,KAAMD,KAAME,kBACzD,MAAMpC,MAAQmC,KAAKnC,MAAM,KAEzB,GAAIA,MAAMd,SAAW,EAAI,CACxB,MAAM,IAAIlC,UAAU,8CAAgDmF,KAAO,KAG5E,MAAMa,MAAQ7C,SAASH,MAAM,GAAI,IAAMoC,iBACtCa,MAAQ9C,SAASH,MAAM,GAAI,IAAMoC,iBAElC,GAAI/D,MAAM2E,OAAS,CAClB,MAAM,IAAIhG,UAAU,6DACd,GAAIqB,MAAM4E,OAAS,CACzB,MAAM,IAAIjG,UAAU,wDAIrB,GAAIgG,MAAQ,GAAKC,OAASrG,KAAKsF,MAAMhD,OAAS,CAC7C,MAAM,IAAIlC,UAAU,qCAAuCmF,KAAO,KAInE,GAAIa,MAAQC,MAAQ,CACnB,MAAM,IAAIjG,UAAU,qDAAuDmF,KAAO,KAGnF,IAAKnD,IAAIC,EAAI+D,MAAO/D,GAAKgE,MAAOhE,IAAM,CACrCrC,KAAKsF,MAAMjD,GAAK,IAWlBiC,YAAYjE,UAAUyF,eAAiB,SAAUP,KAAMD,MAEtD,MAAMlC,MAAQmC,KAAKnC,MAAM,KAEzB,GAAIA,MAAMd,SAAW,EAAI,CACxB,MAAM,IAAIlC,UAAU,iDAAmDmF,KAAO,KAG/EnD,IAAImE,MAAQ,EACZ,GAAInD,MAAM,KAAO,IAAM,CACtBmD,MAAQhD,SAASH,MAAM,GAAI,IAG5B,MAAMkD,MAAQ/C,SAASH,MAAM,GAAI,IAEjC,GAAI3B,MAAM6E,OAAS,MAAM,IAAIlG,UAAU,sDACvC,GAAIkG,QAAU,EAAI,MAAM,IAAIlG,UAAU,kDACtC,GAAIkG,MAAQtG,KAAKsF,MAAMhD,OAAS,MAAM,IAAIlC,UAAU,kFAAkFJ,KAAKsF,MAAMhD,OAAO,KAExJ,IAAKF,IAAIC,EAAIkE,MAAOlE,EAAIrC,KAAKsF,MAAMhD,OAAQD,GAAIiE,MAAQ,CACtDtG,KAAKsF,MAAMjD,GAAK,IAalBiC,YAAYjE,UAAU6E,iBAAmB,SAAUK,MAClD,OAAOA,KACLT,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,MAWpBR,YAAYjE,UAAU4E,mBAAqB,SAAUM,MACpD,OAAOA,KACLT,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,MACjBA,QAAQ,QAAS,MACjBA,QAAQ,QAAS,OAuDpB,MAAM0B,SAAWC,KAAKC,IAAI,EAAG,GAAK,GAAK,EAWvC,SAASC,KAAMhF,QAASiF,QAASC,MAGhC,KAAM7G,gBAAgB2G,MAAQ,CAC7B,OAAO,IAAIA,KAAKhF,QAASiF,QAASC,MAInC,UAAWD,UAAY,WAAa,CACnCC,KAAOD,QACPA,aAAe,EAIhB5G,KAAK4G,QAAU5G,KAAK8G,eAAeF,SAGnC,GAAIjF,SAAYA,mBAAmBhC,KAAO,CACzCK,KAAK+G,KAAO,IAAIjH,SAAS6B,QAAS3B,KAAK4G,QAAQ7G,eACzC,GAAI4B,gBAAmBA,UAAY,UAAaA,QAAQmC,QAAQ,KAAO,EAAG,CAEhF9D,KAAK+G,KAAO,IAAIjH,SAAS6B,QAAS3B,KAAK4G,QAAQ7G,cACzC,CAENC,KAAK2B,QAAU,IAAI2C,YAAY3C,QAAS3B,KAAK4G,QAAQ7G,UAMtD,GAAI8G,YAAc,EAAI,CACrB7G,KAAKgH,GAAKH,KACV7G,KAAKiH,WAGN,OAAOjH,KAWR2G,KAAKtG,UAAUyG,eAAiB,SAAUF,SAGzC,GAAIA,eAAiB,EAAG,CACvBA,QAAU,GAIXA,QAAQM,OAAUN,QAAQM,cAAgB,EAAK,MAAQN,QAAQM,OAC/DN,QAAQO,QAAWP,QAAQO,eAAiB,EAAKC,SAAWR,QAAQO,QACpEP,QAAQS,MAAST,QAAQS,aAAe,EAAK,MAAQT,QAAQS,MAC7DT,QAAQU,KAAO,MAGf,GAAIV,QAAQW,QAAU,CACrBX,QAAQW,QAAU,IAAIzH,SAAS8G,QAAQW,QAASX,QAAQ7G,UAEzD,GAAI6G,QAAQY,OAAS,CACpBZ,QAAQY,OAAS,IAAI1H,SAAS8G,QAAQY,OAAQZ,QAAQ7G,UAGvD,OAAO6G,SASRD,KAAKtG,UAAUoH,KAAO,SAAUC,MAC/BA,KAAO,IAAI5H,SAAS4H,KAAM1H,KAAK4G,QAAQ7G,UACvC,MAAM0H,KAAOzH,KAAK2H,MAAMD,MACxB,OAAOD,KAAOA,KAAK1G,UAAY,MAUhC4F,KAAKtG,UAAUuH,UAAY,SAAUC,EAAGC,UACvC1F,IAAI2F,YAAc,GAElB,MAAMF,MAAQC,SAAW9H,KAAKyH,KAAKK,WAAY,CAC9CC,YAAYC,KAAKF,UAGlB,OAAOC,aASRpB,KAAKtG,UAAU4H,QAAU,WACxB,MAAMC,OAASlI,KAAKmI,SAASnI,KAAKoI,aAClC,MAAMH,SAAWjI,KAAK4G,QAAQM,QAAUlH,KAAKgH,UAAY,EACzD,OAAOkB,SAAW,MAAQD,SAS3BtB,KAAKtG,UAAUyH,SAAW,WACzB,OAAO9H,KAAKoI,YAAcpI,KAAKoI,YAAYrH,UAAY,MAUxD4F,KAAKtG,UAAUsH,MAAQ,SAAUD,MAGhC,GAAI1H,KAAK4G,QAAQW,SAAWG,MAAQA,KAAK5F,QAAQ,MAAQ9B,KAAK4G,QAAQW,QAAQzF,QAAQ,MAAQ,CAC7F4F,KAAO1H,KAAK4G,QAAQW,QAIrB,MAAMc,QAAUrI,KAAK+G,MAAQ,IAAIjH,SAAS4H,KAAM1H,KAAK4G,QAAQ7G,UAAU2B,UAAU1B,KAAK2B,SAEtF,GAAI3B,KAAK+G,MAAQ/G,KAAK+G,KAAKjF,QAAQ,OAAS4F,KAAK5F,QAAQ,MAAO,CAC/D,OAAO,UAED,GAAKuG,UAAY,MACtBrI,KAAK4G,QAAQO,SAAW,GACxBnH,KAAK4G,QAAY,MACjB5G,KAAK4G,QAAQY,QAAUa,QAAQvG,QAAQ,OAAS9B,KAAK4G,QAAQY,OAAO1F,QAAQ,MAAS,CACtF,OAAO,SAED,CAEN,OAAOuG,UAaT1B,KAAKtG,UAAU8H,SAAW,SAAUT,MACnCA,KAAO,IAAI5H,SAAS4H,KAAM1H,KAAK4G,QAAQ7G,UACvC,MAAM0H,KAAOzH,KAAK2H,MAAMD,MACxB,GAAID,KAAO,CACV,OAAQA,KAAK3F,QAAQ,MAAQ4F,KAAK5F,QAAQ,UACpC,CACN,OAAO,OAQT6E,KAAKtG,UAAUiI,KAAO,WACrBtI,KAAK4G,QAAQU,KAAO,KAEpB,GAAItH,KAAKuI,eAAiB,CACzBC,aAAcxI,KAAKuI,kBAUrB5B,KAAKtG,UAAUoI,MAAQ,WACtB,OAAQzI,KAAK4G,QAAQM,OAAS,QAAUlH,KAAK4G,QAAQU,MAStDX,KAAKtG,UAAUqI,OAAS,WACvB,QAAS1I,KAAK4G,QAAQM,OAAS,SAAWlH,KAAK4G,QAAQU,MAUxDX,KAAKtG,UAAU4G,SAAW,SAAUJ,MAGnC,GAAIA,MAAQ7G,KAAKgH,GAAI,CACpB,MAAM,IAAIrB,MAAM,0FAGV,GAAIkB,KAAM,CAChB7G,KAAKgH,GAAKH,KAIXzE,IAAIuG,OAAS3I,KAAKmI,SAASnI,KAAKoI,aAChC,GAAMO,SAAW,KAAQ,OAAO3I,KAGhC,GAAI2I,OAASnC,SAAW,CACvBmC,OAASnC,SAIVxG,KAAKuI,eAAiBK,WAAW,KAEhC,GAAID,SAAWnC,WAAaxG,KAAK4G,QAAQM,OAAS,CAEjDlH,KAAK4G,QAAQO,UAGb,GAAInH,KAAK4G,QAAQS,MAAO,CACvB,IACCrH,KAAKgH,GAAGhH,KAAMA,KAAK4G,QAAQiC,SAC1B,MAAOC,UAGH,CACN9I,KAAKgH,GAAGhH,KAAMA,KAAK4G,QAAQiC,SAG5B7I,KAAKoI,YAAc,IAAItI,cAAc,EAAGE,KAAK4G,QAAQ7G,UAKtDC,KAAKiH,YAEH0B,QAEH,OAAO3I,aAIC2G,KAAMA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "croner",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.96",
|
|
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",
|
|
@@ -34,10 +34,11 @@
|
|
|
34
34
|
],
|
|
35
35
|
"scripts": {
|
|
36
36
|
"test": "uvu test test.croner.js",
|
|
37
|
-
"test:dist": "uvu test",
|
|
37
|
+
"test:dist": "uvu test js && npm run test:ts",
|
|
38
38
|
"test:coverage": "c8 --include=src npm test",
|
|
39
39
|
"test:lint": "eslint ./**/*.js ./**/*.cjs",
|
|
40
40
|
"test:lint:fix": "eslint --fix ./**/*.js ./**/*.cjs",
|
|
41
|
+
"test:ts": "tsc --noEmit ./test/ts/basics.ts",
|
|
41
42
|
"build": "npm update && npm run build:precleanup && npm run test:lint && npm run build:typings && npm run build:dist && npm run build:minify && npm run build:cleanup && npm run test:coverage && npm run test:dist",
|
|
42
43
|
"build:ci": "npm run test:lint && npm run build:typings && npm run build:dist && npm run build:minify && npm run build:cleanup && npm run test:coverage && npm run test:dist",
|
|
43
44
|
"build:precleanup": "(rm -rf types/* || del /Q types\\*) && (rm -rf dist/* || del /Q dist\\*)",
|
package/src/croner.js
CHANGED
|
@@ -58,7 +58,7 @@ const maxDelay = Math.pow(2, 32 - 1) - 1;
|
|
|
58
58
|
* Cron entrypoint
|
|
59
59
|
*
|
|
60
60
|
* @constructor
|
|
61
|
-
* @param {string|
|
|
61
|
+
* @param {string|Date} pattern - Input pattern, input date, or input ISO 8601 time string
|
|
62
62
|
* @param {CronOptions|Function} [options] - Options
|
|
63
63
|
* @param {Function} [func] - Function to be run each iteration of pattern
|
|
64
64
|
* @returns {Cron}
|
|
@@ -83,7 +83,7 @@ function Cron (pattern, options, func) {
|
|
|
83
83
|
if (pattern && (pattern instanceof Date)) {
|
|
84
84
|
this.once = new CronDate(pattern, this.options.timezone);
|
|
85
85
|
} else if (pattern && (typeof pattern === "string") && pattern.indexOf(":") > 0) {
|
|
86
|
-
/** @type {
|
|
86
|
+
/** @type {CronDate} */
|
|
87
87
|
this.once = new CronDate(pattern, this.options.timezone);
|
|
88
88
|
} else {
|
|
89
89
|
/** @type {CronPattern} */
|
|
@@ -136,7 +136,7 @@ Cron.prototype.processOptions = function (options) {
|
|
|
136
136
|
/**
|
|
137
137
|
* Find next runtime, based on supplied date. Strips milliseconds.
|
|
138
138
|
*
|
|
139
|
-
* @param {Date} [prev] - Date to start from
|
|
139
|
+
* @param {Date|string} [prev] - Date to start from
|
|
140
140
|
* @returns {Date | null} - Next run time
|
|
141
141
|
*/
|
|
142
142
|
Cron.prototype.next = function (prev) {
|
|
@@ -149,7 +149,7 @@ Cron.prototype.next = function (prev) {
|
|
|
149
149
|
* Find next n runs, based on supplied date. Strips milliseconds.
|
|
150
150
|
*
|
|
151
151
|
* @param {number} n - Number of runs to enumerate
|
|
152
|
-
* @param {Date} [
|
|
152
|
+
* @param {Date|string} [previous] - Date to start from
|
|
153
153
|
* @returns {Date[]} - Next n run times
|
|
154
154
|
*/
|
|
155
155
|
Cron.prototype.enumerate = function (n, previous) {
|
package/src/date.js
CHANGED
|
@@ -139,13 +139,13 @@ CronDate.prototype.increment = function (pattern, rerun) {
|
|
|
139
139
|
if( pattern[target][i] && (target !== "days" || (pattern.daysOfWeek[this.getDate(true).getDay()])) ) {
|
|
140
140
|
|
|
141
141
|
// Special handling for L (last day of month), when we are searching for days
|
|
142
|
-
if (target === "days" && pattern.lastDayOfMonth) {
|
|
142
|
+
if (target === "days" && pattern.lastDayOfMonth) {
|
|
143
143
|
let baseDate = this.getDate(true);
|
|
144
144
|
|
|
145
145
|
// Set days to one day after today, if month changes, then we are at the last day of the month
|
|
146
|
-
baseDate.setDate(i+1);
|
|
146
|
+
baseDate.setDate(i-offset+1);
|
|
147
147
|
if (baseDate.getMonth() !== this["months"]) {
|
|
148
|
-
this[target] = i;
|
|
148
|
+
this[target] = i-offset;
|
|
149
149
|
return true;
|
|
150
150
|
}
|
|
151
151
|
|
package/src/pattern.js
CHANGED
|
@@ -202,7 +202,7 @@ CronPattern.prototype.handleRangeWithStepping = function (conf, type, valueIndex
|
|
|
202
202
|
let [, lower, upper, steps] = matches;
|
|
203
203
|
lower = parseInt(lower, 10) + valueIndexOffset;
|
|
204
204
|
upper = parseInt(upper, 10) + valueIndexOffset;
|
|
205
|
-
steps = parseInt(steps, 10)
|
|
205
|
+
steps = parseInt(steps, 10);
|
|
206
206
|
|
|
207
207
|
if( isNaN(lower) ) throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)");
|
|
208
208
|
if( isNaN(upper) ) throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)");
|
|
@@ -215,7 +215,7 @@ CronPattern.prototype.handleRangeWithStepping = function (conf, type, valueIndex
|
|
|
215
215
|
if( lower > upper ) throw new TypeError("CronPattern: From value is larger than to value: '" + conf + "'");
|
|
216
216
|
|
|
217
217
|
for (let i = lower; i <= upper; i += steps) {
|
|
218
|
-
this[type][
|
|
218
|
+
this[type][i] = 1;
|
|
219
219
|
}
|
|
220
220
|
};
|
|
221
221
|
|
|
@@ -254,7 +254,7 @@ CronPattern.prototype.handleRange = function (conf, type, valueIndexOffset) {
|
|
|
254
254
|
}
|
|
255
255
|
|
|
256
256
|
for( let i = lower; i <= upper; i++ ) {
|
|
257
|
-
this[type][
|
|
257
|
+
this[type][i] = 1;
|
|
258
258
|
}
|
|
259
259
|
};
|
|
260
260
|
|
|
@@ -264,9 +264,8 @@ CronPattern.prototype.handleRange = function (conf, type, valueIndexOffset) {
|
|
|
264
264
|
*
|
|
265
265
|
* @param {string} conf - Current part, expected to be a string like * /20 (without the space)
|
|
266
266
|
* @param {string} type - One of "seconds", "minutes" etc
|
|
267
|
-
* @param {number} valueIndexOffset - -1 for day of month, and month, as they start at 1. 0 for seconds, hours, minutes
|
|
268
267
|
*/
|
|
269
|
-
CronPattern.prototype.handleStepping = function (conf, type
|
|
268
|
+
CronPattern.prototype.handleStepping = function (conf, type) {
|
|
270
269
|
|
|
271
270
|
const split = conf.split("/");
|
|
272
271
|
|
|
@@ -286,7 +285,7 @@ CronPattern.prototype.handleStepping = function (conf, type, valueIndexOffset) {
|
|
|
286
285
|
if( steps > this[type].length ) throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");
|
|
287
286
|
|
|
288
287
|
for( let i = start; i < this[type].length; i+= steps ) {
|
|
289
|
-
this[type][
|
|
288
|
+
this[type][i] = 1;
|
|
290
289
|
}
|
|
291
290
|
};
|
|
292
291
|
|
package/src/timezone.js
CHANGED
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
* (for example) will return local time in new york, but getUTCHours()
|
|
11
11
|
* will return something irrelevant.
|
|
12
12
|
*
|
|
13
|
-
* @param {
|
|
13
|
+
* @param {Date} date - Input date
|
|
14
14
|
* @param {string} tzString - Timezone string in Europe/Stockholm format
|
|
15
|
-
* @returns {
|
|
15
|
+
* @returns {Date}
|
|
16
16
|
*/
|
|
17
17
|
function convertTZ(date, tzString) {
|
|
18
18
|
return new Date(date.toLocaleString("en-US", {timeZone: tzString}));
|
package/types/croner.d.ts
CHANGED
|
@@ -40,26 +40,26 @@ export type CronOptions = {
|
|
|
40
40
|
* Cron entrypoint
|
|
41
41
|
*
|
|
42
42
|
* @constructor
|
|
43
|
-
* @param {string|
|
|
43
|
+
* @param {string|Date} pattern - Input pattern, input date, or input ISO 8601 time string
|
|
44
44
|
* @param {CronOptions|Function} [options] - Options
|
|
45
45
|
* @param {Function} [func] - Function to be run each iteration of pattern
|
|
46
46
|
* @returns {Cron}
|
|
47
47
|
*/
|
|
48
|
-
export function Cron(pattern: string |
|
|
48
|
+
export function Cron(pattern: string | Date, options?: CronOptions | Function, func?: Function): Cron;
|
|
49
49
|
export class Cron {
|
|
50
50
|
/**
|
|
51
51
|
* Cron entrypoint
|
|
52
52
|
*
|
|
53
53
|
* @constructor
|
|
54
|
-
* @param {string|
|
|
54
|
+
* @param {string|Date} pattern - Input pattern, input date, or input ISO 8601 time string
|
|
55
55
|
* @param {CronOptions|Function} [options] - Options
|
|
56
56
|
* @param {Function} [func] - Function to be run each iteration of pattern
|
|
57
57
|
* @returns {Cron}
|
|
58
58
|
*/
|
|
59
|
-
constructor(pattern: string |
|
|
59
|
+
constructor(pattern: string | Date, options?: CronOptions | Function, func?: Function);
|
|
60
60
|
/** @type {CronOptions} */
|
|
61
61
|
options: CronOptions;
|
|
62
|
-
once:
|
|
62
|
+
once: CronDate;
|
|
63
63
|
/** @type {CronPattern} */
|
|
64
64
|
pattern: CronPattern;
|
|
65
65
|
fn: Function;
|
|
@@ -67,18 +67,18 @@ export class Cron {
|
|
|
67
67
|
/**
|
|
68
68
|
* Find next runtime, based on supplied date. Strips milliseconds.
|
|
69
69
|
*
|
|
70
|
-
* @param {Date} [prev] - Date to start from
|
|
70
|
+
* @param {Date|string} [prev] - Date to start from
|
|
71
71
|
* @returns {Date | null} - Next run time
|
|
72
72
|
*/
|
|
73
|
-
next(prev?: Date): Date | null;
|
|
73
|
+
next(prev?: Date | string): Date | null;
|
|
74
74
|
/**
|
|
75
75
|
* Find next n runs, based on supplied date. Strips milliseconds.
|
|
76
76
|
*
|
|
77
77
|
* @param {number} n - Number of runs to enumerate
|
|
78
|
-
* @param {Date} [
|
|
78
|
+
* @param {Date|string} [previous] - Date to start from
|
|
79
79
|
* @returns {Date[]} - Next n run times
|
|
80
80
|
*/
|
|
81
|
-
enumerate(n: number, previous
|
|
81
|
+
enumerate(n: number, previous?: Date | string): Date[];
|
|
82
82
|
/**
|
|
83
83
|
* Is running?
|
|
84
84
|
* @public
|
|
@@ -132,5 +132,5 @@ export class Cron {
|
|
|
132
132
|
currentTimeout: number;
|
|
133
133
|
previousrun: CronDate;
|
|
134
134
|
}
|
|
135
|
-
import { CronPattern } from "./pattern.js";
|
|
136
135
|
import { CronDate } from "./date.js";
|
|
136
|
+
import { CronPattern } from "./pattern.js";
|
package/types/timezone.d.ts
CHANGED
|
@@ -11,8 +11,8 @@ export default convertTZ;
|
|
|
11
11
|
* (for example) will return local time in new york, but getUTCHours()
|
|
12
12
|
* will return something irrelevant.
|
|
13
13
|
*
|
|
14
|
-
* @param {
|
|
14
|
+
* @param {Date} date - Input date
|
|
15
15
|
* @param {string} tzString - Timezone string in Europe/Stockholm format
|
|
16
|
-
* @returns {
|
|
16
|
+
* @returns {Date}
|
|
17
17
|
*/
|
|
18
|
-
declare function convertTZ(date:
|
|
18
|
+
declare function convertTZ(date: Date, tzString: string): Date;
|