croner 4.3.14 → 4.3.17
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 +26 -1
- package/dist/croner.cjs +7 -8
- 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 +8 -8
- package/src/croner.js +3 -4
- package/src/date.js +7 -4
- package/src/pattern.js +1 -1
package/README.md
CHANGED
|
@@ -222,6 +222,8 @@ The expressions of Croner are very similar to the ones of Vixie Cron, with a few
|
|
|
222
222
|
|
|
223
223
|
* Croner also allow you to pass a javascript Date object, or a ISO 8601 formatted string, as a pattern. The scheduled function will trigger once at the specified date/time. If you use a timezone different from local, you pass ISO 8601 local time in target location, and specify timezone using the options (2nd parameter).
|
|
224
224
|
|
|
225
|
+
* **Important**: Croner does not take care of runs missed during daytime savings time (DST) shifts. E.g.: If the clock shifts från 23:59:59 to 01:00:00 a job scheduled between 00:00:00 and 00:59:59 that day would be missed. This might change in a future major release. Current state at [#132](https://github.com/Hexagon/croner/issues/132).
|
|
226
|
+
|
|
225
227
|
```javascript
|
|
226
228
|
// ┌──────────────── (optional) second (0 - 59)
|
|
227
229
|
// │ ┌────────────── minute (0 - 59)
|
|
@@ -338,7 +340,6 @@ Cron('*/5 * * * * *', { context: data }, (self, context) => {
|
|
|
338
340
|
});
|
|
339
341
|
```
|
|
340
342
|
|
|
341
|
-
|
|
342
343
|
#### Fire on a specific date/time
|
|
343
344
|
```javascript
|
|
344
345
|
// A javascript date, or a ISO 8601 local time string can be passed, to fire a function once.
|
|
@@ -354,6 +355,30 @@ if (job.next() === null) {
|
|
|
354
355
|
}
|
|
355
356
|
```
|
|
356
357
|
|
|
358
|
+
#### Act at completion
|
|
359
|
+
|
|
360
|
+
```javascript
|
|
361
|
+
// Start a job firing once each 5th second, run at most 3 times
|
|
362
|
+
const job = new Cron("0/5 * * * * *", { maxRuns: 3 }, (job) => {
|
|
363
|
+
|
|
364
|
+
// Do work
|
|
365
|
+
console.log('Job Running');
|
|
366
|
+
|
|
367
|
+
// Is this the last execution?
|
|
368
|
+
if (!job.next()) {
|
|
369
|
+
console.log('Last execution');
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
});
|
|
373
|
+
|
|
374
|
+
// Will there be no executions?
|
|
375
|
+
// This would trigger if you change maxRuns to 0, or manage to compose
|
|
376
|
+
// an impossible cron expression.
|
|
377
|
+
if (!job.next() && !job.previous()) {
|
|
378
|
+
console.log('No executions scheduled');
|
|
379
|
+
}
|
|
380
|
+
```
|
|
381
|
+
|
|
357
382
|
## Contributing
|
|
358
383
|
|
|
359
384
|
See [Contribution Guide](/CONTRIBUTING.md)
|
package/dist/croner.cjs
CHANGED
|
@@ -231,7 +231,7 @@
|
|
|
231
231
|
if (target === "days") {
|
|
232
232
|
|
|
233
233
|
// Create a date object for the target date
|
|
234
|
-
|
|
234
|
+
const targetDate = this.getDate(true);
|
|
235
235
|
targetDate.setDate(i-offset);
|
|
236
236
|
|
|
237
237
|
// Special handling for L (last day of month), when we are searching for days
|
|
@@ -239,7 +239,7 @@
|
|
|
239
239
|
|
|
240
240
|
// Create a copy of targetDate
|
|
241
241
|
// Set days to one day after today, if month changes, then we are at the last day of the month
|
|
242
|
-
|
|
242
|
+
const targetDateCopy = new Date(targetDate);
|
|
243
243
|
targetDateCopy.setDate(i-offset+1);
|
|
244
244
|
|
|
245
245
|
// Overwrite match if last day of month is matching
|
|
@@ -319,7 +319,7 @@
|
|
|
319
319
|
// be set to 5
|
|
320
320
|
|
|
321
321
|
// Store current value at current level
|
|
322
|
-
|
|
322
|
+
const currentValue = this[toDo[doing][0]];
|
|
323
323
|
|
|
324
324
|
// If pattern didn't provide a match, increment next value (e.g. minues)
|
|
325
325
|
if(!findNext(toDo[doing][0], pattern, toDo[doing][2])) {
|
|
@@ -538,7 +538,7 @@
|
|
|
538
538
|
}
|
|
539
539
|
|
|
540
540
|
// Implement '?' in the simplest possible way - replace ? with current value, before further processing
|
|
541
|
-
|
|
541
|
+
const initDate = new CronDate(new Date(),this.timezone).getDate(true);
|
|
542
542
|
|
|
543
543
|
parts[0] = parts[0].replace("?", initDate.getSeconds());
|
|
544
544
|
parts[1] = parts[1].replace("?", initDate.getMinutes());
|
|
@@ -1051,9 +1051,8 @@
|
|
|
1051
1051
|
}
|
|
1052
1052
|
|
|
1053
1053
|
// Get ms to next run, bail out early if waitMs is null (no next run)
|
|
1054
|
-
let
|
|
1055
|
-
|
|
1056
|
-
target = this.next(partial ? partial : this.previousrun);
|
|
1054
|
+
let waitMs = this.msToNext(partial ? partial : this.previousrun);
|
|
1055
|
+
const target = this.next(partial ? partial : this.previousrun);
|
|
1057
1056
|
|
|
1058
1057
|
if ( waitMs === null ) return this;
|
|
1059
1058
|
|
|
@@ -1065,7 +1064,7 @@
|
|
|
1065
1064
|
// Ok, go!
|
|
1066
1065
|
this.currentTimeout = setTimeout(() => {
|
|
1067
1066
|
|
|
1068
|
-
|
|
1067
|
+
const now = new Date();
|
|
1069
1068
|
|
|
1070
1069
|
if( waitMs !== maxDelay && !this.options.paused && now.getTime() >= target ) {
|
|
1071
1070
|
|
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 CronTZ(date,tzString){return new Date(date.toLocaleString("en-US",{timeZone:tzString}))}function CronOptions(options){if(options===void 0){options={}}options.legacyMode=options.legacyMode===void 0?false:options.legacyMode;options.paused=options.paused===void 0?false:options.paused;options.maxRuns=options.maxRuns===void 0?Infinity:options.maxRuns;options.catch=options.catch===void 0?false:options.catch;options.interval=options.interval===void 0?0:parseInt(options.interval,10);options.kill=false;if(options.startAt){options.startAt=new CronDate(options.startAt,options.timezone)}if(options.stopAt){options.stopAt=new CronDate(options.stopAt,options.timezone)}if(options.interval!==null){if(isNaN(options.interval)){throw new Error("CronOptions: Supplied value for interval is not a number")}else if(options.interval<0){throw new Error("CronOptions: Supplied value for interval can not be negative")}}return options}function CronDate(date,timezone){this.timezone=timezone;if(date&&date instanceof Date){if(!isNaN(date)){this.fromDate(date)}else{throw new TypeError("CronDate: Invalid date passed as parameter to CronDate constructor")}}else if(date===void 0){this.fromDate(new Date)}else if(date&&typeof date==="string"){this.fromString(date)}else if(date instanceof CronDate){this.fromCronDate(date)}else{throw new TypeError("CronDate: Invalid type ("+typeof date+") passed as parameter to CronDate constructor")}}CronDate.prototype.fromDate=function(date){if(this.timezone){date=CronTZ(date,this.timezone)}this.milliseconds=date.getMilliseconds();this.seconds=date.getSeconds();this.minutes=date.getMinutes();this.hours=date.getHours();this.days=date.getDate();this.months=date.getMonth();this.years=date.getFullYear()};CronDate.prototype.fromCronDate=function(date){this.timezone=date.timezone;this.milliseconds=date.milliseconds;this.seconds=date.seconds;this.minutes=date.minutes;this.hours=date.hours;this.days=date.days;this.months=date.months;this.years=date.years};CronDate.prototype.apply=function(){const newDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);this.milliseconds=newDate.getMilliseconds();this.seconds=newDate.getSeconds();this.minutes=newDate.getMinutes();this.hours=newDate.getHours();this.days=newDate.getDate();this.months=newDate.getMonth();this.years=newDate.getFullYear()};CronDate.prototype.fromString=function(str){const parsedDate=this.parseISOLocal(str);if(isNaN(parsedDate)){throw new TypeError("CronDate: Provided string value for CronDate could not be parsed as date.")}this.fromDate(parsedDate)};CronDate.prototype.increment=function(pattern,options,hasPreviousRun){if(options.interval>1&&hasPreviousRun){this.seconds+=options.interval}else{this.seconds+=1}this.milliseconds=0;this.apply();const findNext=(target,pattern,offset,override)=>{const startPos=override===void 0?this[target]+offset:0;for(let i=startPos;i<pattern[target].length;i++){let match=pattern[target][i];if(target==="days"){let targetDate=this.getDate(true);targetDate.setDate(i-offset);if(pattern.lastDayOfMonth){let targetDateCopy=new Date(targetDate);targetDateCopy.setDate(i-offset+1);if(targetDateCopy.getMonth()!==this.months){match=true}}const dowMatch=pattern.daysOfWeek[targetDate.getDay()];if(options.legacyMode){if(!pattern.starDayOfWeek&&pattern.starDayOfMonth){match=dowMatch}else if(!pattern.starDayOfWeek&&!pattern.starDayOfMonth){match=match||dowMatch}}else{match=match&&dowMatch}}if(match){this[target]=i-offset;return true}}return false},resetPrevious=offset=>{while(doing+offset>=0){findNext(toDo[doing+offset][0],pattern,toDo[doing+offset][2],0);doing--}};const toDo=[["seconds","minutes",0],["minutes","hours",0],["hours","days",0],["days","months",-1],["months","years",0]];let doing=0;while(doing<5){let currentValue=this[toDo[doing][0]];if(!findNext(toDo[doing][0],pattern,toDo[doing][2])){this[toDo[doing][1]]++;resetPrevious(0);this.apply()}else if(currentValue!==this[toDo[doing][0]]){resetPrevious(-1)}if(this.years>=4e3){return null}doing++}return this};CronDate.prototype.getDate=function(internal){const targetDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);if(internal||!this.timezone){return targetDate}else{const offset=CronTZ(targetDate,this.timezone).getTime()-targetDate.getTime();return new Date(targetDate.getTime()-offset)}};CronDate.prototype.getTime=function(internal){return this.getDate(internal).getTime()};CronDate.prototype.parseISOLocal=function(dateTimeString){const dateTimeStringSplit=dateTimeString.split(/\D/);if(dateTimeStringSplit.length<6){return NaN}const year=parseInt(dateTimeStringSplit[0],10),month=parseInt(dateTimeStringSplit[1],10),day=parseInt(dateTimeStringSplit[2],10),hour=parseInt(dateTimeStringSplit[3],10),minute=parseInt(dateTimeStringSplit[4],10),second=parseInt(dateTimeStringSplit[5],10);if(isNaN(year)||isNaN(month)||isNaN(day)||isNaN(hour)||isNaN(minute)||isNaN(second)){return NaN}else{let generatedDate;if(dateTimeString.indexOf("Z")>0){generatedDate=new Date(Date.UTC(year,month-1,day,hour,minute,second));if(year==generatedDate.getUTCFullYear()&&month==generatedDate.getUTCMonth()+1&&day==generatedDate.getUTCDate()&&hour==generatedDate.getUTCHours()&&minute==generatedDate.getUTCMinutes()&&second==generatedDate.getUTCSeconds()){return generatedDate}else{return NaN}}else{generatedDate=new Date(year,month-1,day,hour,minute,second);if(year==generatedDate.getFullYear()&&month==generatedDate.getMonth()+1&&day==generatedDate.getDate()&&hour==generatedDate.getHours()&&minute==generatedDate.getMinutes()&&second==generatedDate.getSeconds()){return generatedDate}else{return NaN}}}};function CronPattern(pattern,timezone){this.pattern=pattern;this.timezone=timezone;this.seconds=Array(60).fill(0);this.minutes=Array(60).fill(0);this.hours=Array(24).fill(0);this.days=Array(31).fill(0);this.months=Array(12).fill(0);this.daysOfWeek=Array(8).fill(0);this.lastDayOfMonth=false;this.starDayOfMonth=false;this.starDayOfWeek=false;this.parse()}CronPattern.prototype.parse=function(){if(!(typeof this.pattern==="string"||this.pattern.constructor===String)){throw new TypeError("CronPattern: Pattern has to be of type string.")}this.pattern=this.handleNicknames(this.pattern);const parts=this.pattern.trim().replace(/\s+/g," ").split(" ");if(parts.length<5||parts.length>6){throw new TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exacly five or six space separated parts required.")}if(parts.length===5){parts.unshift("0")}if(parts[3].indexOf("L")>=0){parts[3]=parts[3].replace("L","");this.lastDayOfMonth=true}if(parts[3].toUpperCase()=="*"){this.starDayOfMonth=true}parts[4]=this.replaceAlphaMonths(parts[4]);parts[5]=this.replaceAlphaDays(parts[5]);if(parts[5].toUpperCase()=="*"){this.starDayOfWeek=true}let initDate=new CronDate(new Date,this.timezone).getDate(true);parts[0]=parts[0].replace("?",initDate.getSeconds());parts[1]=parts[1].replace("?",initDate.getMinutes());parts[2]=parts[2].replace("?",initDate.getHours());parts[3]=parts[3].replace("?",initDate.getDate());parts[4]=parts[4].replace("?",initDate.getMonth()+1);parts[5]=parts[5].replace("?",initDate.getDay());this.throwAtIllegalCharacters(parts);this.partToArray("seconds",parts[0],0);this.partToArray("minutes",parts[1],0);this.partToArray("hours",parts[2],0);this.partToArray("days",parts[3],-1);this.partToArray("months",parts[4],-1);this.partToArray("daysOfWeek",parts[5],0);if(this.daysOfWeek[7]){this.daysOfWeek[0]=1}};CronPattern.prototype.partToArray=function(type,conf,valueIndexOffset){const arr=this[type];if(conf==="*"){for(let i=0;i<arr.length;i++){arr[i]=1}return}const split=conf.split(",");if(split.length>1){for(let i=0;i<split.length;i++){this.partToArray(type,split[i],valueIndexOffset)}}else if(conf.indexOf("-")!==-1&&conf.indexOf("/")!==-1){this.handleRangeWithStepping(conf,type,valueIndexOffset)}else if(conf.indexOf("-")!==-1){this.handleRange(conf,type,valueIndexOffset)}else if(conf.indexOf("/")!==-1){this.handleStepping(conf,type,valueIndexOffset)}else if(conf!==""){this.handleNumber(conf,type,valueIndexOffset)}};CronPattern.prototype.throwAtIllegalCharacters=function(parts){const reValidCron=/[^/*0-9,-]+/;for(let i=0;i<parts.length;i++){if(reValidCron.test(parts[i])){throw new TypeError("CronPattern: configuration entry "+i+" ("+parts[i]+") contains illegal characters.")}}};CronPattern.prototype.handleNumber=function(conf,type,valueIndexOffset){const i=parseInt(conf,10)+valueIndexOffset;if(isNaN(i)){throw new TypeError("CronPattern: "+type+" is not a number: '"+conf+"'")}if(i<0||i>=this[type].length){throw new TypeError("CronPattern: "+type+" value out of range: '"+conf+"'")}this[type][i]=1};CronPattern.prototype.handleRangeWithStepping=function(conf,type,valueIndexOffset){const matches=conf.match(/^(\d+)-(\d+)\/(\d+)$/);if(matches===null)throw new TypeError("CronPattern: Syntax error, illegal range with stepping: '"+conf+"'");let[,lower,upper,steps]=matches;lower=parseInt(lower,10)+valueIndexOffset;upper=parseInt(upper,10)+valueIndexOffset;steps=parseInt(steps,10);if(isNaN(lower))throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(upper))throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");if(lower<0||upper>=this[type].length)throw new TypeError("CronPattern: Value out of range: '"+conf+"'");if(lower>upper)throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'");for(let i=lower;i<=upper;i+=steps){this[type][i]=1}};CronPattern.prototype.handleRange=function(conf,type,valueIndexOffset){const split=conf.split("-");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal range: '"+conf+"'")}const lower=parseInt(split[0],10)+valueIndexOffset,upper=parseInt(split[1],10)+valueIndexOffset;if(isNaN(lower)){throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)")}else if(isNaN(upper)){throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)")}if(lower<0||upper>=this[type].length){throw new TypeError("CronPattern: Value out of range: '"+conf+"'")}if(lower>upper){throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'")}for(let i=lower;i<=upper;i++){this[type][i]=1}};CronPattern.prototype.handleStepping=function(conf,type){const split=conf.split("/");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal stepping: '"+conf+"'")}let start=0;if(split[0]!=="*"){start=parseInt(split[0],10)}const steps=parseInt(split[1],10);if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");for(let i=start;i<this[type].length;i+=steps){this[type][i]=1}};CronPattern.prototype.replaceAlphaDays=function(conf){return conf.replace(/-sun/gi,"-7").replace(/sun/gi,"0").replace(/mon/gi,"1").replace(/tue/gi,"2").replace(/wed/gi,"3").replace(/thu/gi,"4").replace(/fri/gi,"5").replace(/sat/gi,"6")};CronPattern.prototype.replaceAlphaMonths=function(conf){return conf.replace(/jan/gi,"1").replace(/feb/gi,"2").replace(/mar/gi,"3").replace(/apr/gi,"4").replace(/may/gi,"5").replace(/jun/gi,"6").replace(/jul/gi,"7").replace(/aug/gi,"8").replace(/sep/gi,"9").replace(/oct/gi,"10").replace(/nov/gi,"11").replace(/dec/gi,"12")};CronPattern.prototype.handleNicknames=function(pattern){const cleanPattern=pattern.trim().toLowerCase();if(cleanPattern==="@yearly"||cleanPattern==="@annually"){return"0 0 1 1 *"}else if(cleanPattern==="@monthly"){return"0 0 1 * *"}else if(cleanPattern==="@weekly"){return"0 0 * * 0"}else if(cleanPattern==="@daily"){return"0 0 * * *"}else if(cleanPattern==="@hourly"){return"0 * * * *"}else{return pattern}};const maxDelay=Math.pow(2,32-1)-1;function Cron(pattern,fnOrOptions1,fnOrOptions2){if(!(this instanceof Cron)){return new Cron(pattern,fnOrOptions1,fnOrOptions2)}let options,func;if(typeof fnOrOptions1==="function"){func=fnOrOptions1}else if(typeof fnOrOptions1==="object"){options=fnOrOptions1}else if(fnOrOptions1!==void 0){throw new Error("Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).")}if(typeof fnOrOptions2==="function"){func=fnOrOptions2}else if(typeof fnOrOptions2==="object"){options=fnOrOptions2}else if(fnOrOptions2!==void 0){throw new Error("Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).")}this.options=CronOptions(options);this.once=void 0;this.pattern=void 0;if(pattern&&(pattern instanceof Date||typeof pattern==="string"&&pattern.indexOf(":")>0)){this.once=new CronDate(pattern,this.options.timezone)}else{this.pattern=new CronPattern(pattern,this.options.timezone)}if(func!==void 0){this.fn=func;this.schedule()}return this}Cron.prototype.next=function(prev){const next=this._next(prev);return next?next.getDate():null};Cron.prototype.enumerate=function(n,previous){const enumeration=[];let prev=previous||this.previousrun;while(n--&&(prev=this.next(prev))){enumeration.push(prev)}return enumeration};Cron.prototype.running=function(){const msLeft=this.msToNext(this.previousrun);const running=!this.options.paused&&this.fn!==void 0;return msLeft!==null&&running};Cron.prototype.previous=function(){return this.previousrun?this.previousrun.getDate():null};Cron.prototype.msToNext=function(prev){const next=this._next(prev||this.previousrun);prev=new CronDate(prev,this.options.timezone);if(next){return next.getTime(true)-prev.getTime(true)}else{return null}};Cron.prototype.stop=function(){this.options.kill=true;if(this.currentTimeout){clearTimeout(this.currentTimeout)}};Cron.prototype.pause=function(){return(this.options.paused=true)&&!this.options.kill};Cron.prototype.resume=function(){return!(this.options.paused=false)&&!this.options.kill};Cron.prototype.schedule=function(func,partial){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(partial?partial:this.previousrun),target=this.next(partial?partial:this.previousrun);if(waitMs===null)return this;if(waitMs>maxDelay){waitMs=maxDelay}this.currentTimeout=setTimeout(()=>{let now=new Date;if(waitMs!==maxDelay&&!this.options.paused&&now.getTime()>=target){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()}else{this.schedule(undefined,now)}},waitMs);return this};Cron.prototype._next=function(prev){const hasPreviousRun=prev||this.previousrun?true:false;prev=new CronDate(prev,this.options.timezone);if(this.options.startAt&&prev&&prev.getTime(true)<this.options.startAt.getTime(true)){prev=this.options.startAt}const nextRun=this.once||new CronDate(prev,this.options.timezone).increment(this.pattern,this.options,hasPreviousRun);if(this.once&&this.once.getTime(true)<=prev.getTime(true)){return null}else if(nextRun===null||this.options.maxRuns<=0||this.options.kill||this.options.stopAt&&nextRun.getTime(true)>=this.options.stopAt.getTime(true)){return null}else{return nextRun}};Cron.Cron=Cron;Cron.Cron=Cron;return Cron});
|
|
1
|
+
(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?module.exports=factory():typeof define==="function"&&define.amd?define(factory):(global=typeof globalThis!=="undefined"?globalThis:global||self,global.Cron=factory())})(this,function(){"use strict";function CronTZ(date,tzString){return new Date(date.toLocaleString("en-US",{timeZone:tzString}))}function CronOptions(options){if(options===void 0){options={}}options.legacyMode=options.legacyMode===void 0?false:options.legacyMode;options.paused=options.paused===void 0?false:options.paused;options.maxRuns=options.maxRuns===void 0?Infinity:options.maxRuns;options.catch=options.catch===void 0?false:options.catch;options.interval=options.interval===void 0?0:parseInt(options.interval,10);options.kill=false;if(options.startAt){options.startAt=new CronDate(options.startAt,options.timezone)}if(options.stopAt){options.stopAt=new CronDate(options.stopAt,options.timezone)}if(options.interval!==null){if(isNaN(options.interval)){throw new Error("CronOptions: Supplied value for interval is not a number")}else if(options.interval<0){throw new Error("CronOptions: Supplied value for interval can not be negative")}}return options}function CronDate(date,timezone){this.timezone=timezone;if(date&&date instanceof Date){if(!isNaN(date)){this.fromDate(date)}else{throw new TypeError("CronDate: Invalid date passed as parameter to CronDate constructor")}}else if(date===void 0){this.fromDate(new Date)}else if(date&&typeof date==="string"){this.fromString(date)}else if(date instanceof CronDate){this.fromCronDate(date)}else{throw new TypeError("CronDate: Invalid type ("+typeof date+") passed as parameter to CronDate constructor")}}CronDate.prototype.fromDate=function(date){if(this.timezone){date=CronTZ(date,this.timezone)}this.milliseconds=date.getMilliseconds();this.seconds=date.getSeconds();this.minutes=date.getMinutes();this.hours=date.getHours();this.days=date.getDate();this.months=date.getMonth();this.years=date.getFullYear()};CronDate.prototype.fromCronDate=function(date){this.timezone=date.timezone;this.milliseconds=date.milliseconds;this.seconds=date.seconds;this.minutes=date.minutes;this.hours=date.hours;this.days=date.days;this.months=date.months;this.years=date.years};CronDate.prototype.apply=function(){const newDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);this.milliseconds=newDate.getMilliseconds();this.seconds=newDate.getSeconds();this.minutes=newDate.getMinutes();this.hours=newDate.getHours();this.days=newDate.getDate();this.months=newDate.getMonth();this.years=newDate.getFullYear()};CronDate.prototype.fromString=function(str){const parsedDate=this.parseISOLocal(str);if(isNaN(parsedDate)){throw new TypeError("CronDate: Provided string value for CronDate could not be parsed as date.")}this.fromDate(parsedDate)};CronDate.prototype.increment=function(pattern,options,hasPreviousRun){if(options.interval>1&&hasPreviousRun){this.seconds+=options.interval}else{this.seconds+=1}this.milliseconds=0;this.apply();const findNext=(target,pattern,offset,override)=>{const startPos=override===void 0?this[target]+offset:0;for(let i=startPos;i<pattern[target].length;i++){let match=pattern[target][i];if(target==="days"){const targetDate=this.getDate(true);targetDate.setDate(i-offset);if(pattern.lastDayOfMonth){const targetDateCopy=new Date(targetDate);targetDateCopy.setDate(i-offset+1);if(targetDateCopy.getMonth()!==this.months){match=true}}const dowMatch=pattern.daysOfWeek[targetDate.getDay()];if(options.legacyMode){if(!pattern.starDayOfWeek&&pattern.starDayOfMonth){match=dowMatch}else if(!pattern.starDayOfWeek&&!pattern.starDayOfMonth){match=match||dowMatch}}else{match=match&&dowMatch}}if(match){this[target]=i-offset;return true}}return false},resetPrevious=offset=>{while(doing+offset>=0){findNext(toDo[doing+offset][0],pattern,toDo[doing+offset][2],0);doing--}};const toDo=[["seconds","minutes",0],["minutes","hours",0],["hours","days",0],["days","months",-1],["months","years",0]];let doing=0;while(doing<5){const currentValue=this[toDo[doing][0]];if(!findNext(toDo[doing][0],pattern,toDo[doing][2])){this[toDo[doing][1]]++;resetPrevious(0);this.apply()}else if(currentValue!==this[toDo[doing][0]]){resetPrevious(-1)}if(this.years>=4e3){return null}doing++}return this};CronDate.prototype.getDate=function(internal){const targetDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);if(internal||!this.timezone){return targetDate}else{const offset=CronTZ(targetDate,this.timezone).getTime()-targetDate.getTime();return new Date(targetDate.getTime()-offset)}};CronDate.prototype.getTime=function(internal){return this.getDate(internal).getTime()};CronDate.prototype.parseISOLocal=function(dateTimeString){const dateTimeStringSplit=dateTimeString.split(/\D/);if(dateTimeStringSplit.length<6){return NaN}const year=parseInt(dateTimeStringSplit[0],10),month=parseInt(dateTimeStringSplit[1],10),day=parseInt(dateTimeStringSplit[2],10),hour=parseInt(dateTimeStringSplit[3],10),minute=parseInt(dateTimeStringSplit[4],10),second=parseInt(dateTimeStringSplit[5],10);if(isNaN(year)||isNaN(month)||isNaN(day)||isNaN(hour)||isNaN(minute)||isNaN(second)){return NaN}else{let generatedDate;if(dateTimeString.indexOf("Z")>0){generatedDate=new Date(Date.UTC(year,month-1,day,hour,minute,second));if(year==generatedDate.getUTCFullYear()&&month==generatedDate.getUTCMonth()+1&&day==generatedDate.getUTCDate()&&hour==generatedDate.getUTCHours()&&minute==generatedDate.getUTCMinutes()&&second==generatedDate.getUTCSeconds()){return generatedDate}else{return NaN}}else{generatedDate=new Date(year,month-1,day,hour,minute,second);if(year==generatedDate.getFullYear()&&month==generatedDate.getMonth()+1&&day==generatedDate.getDate()&&hour==generatedDate.getHours()&&minute==generatedDate.getMinutes()&&second==generatedDate.getSeconds()){return generatedDate}else{return NaN}}}};function CronPattern(pattern,timezone){this.pattern=pattern;this.timezone=timezone;this.seconds=Array(60).fill(0);this.minutes=Array(60).fill(0);this.hours=Array(24).fill(0);this.days=Array(31).fill(0);this.months=Array(12).fill(0);this.daysOfWeek=Array(8).fill(0);this.lastDayOfMonth=false;this.starDayOfMonth=false;this.starDayOfWeek=false;this.parse()}CronPattern.prototype.parse=function(){if(!(typeof this.pattern==="string"||this.pattern.constructor===String)){throw new TypeError("CronPattern: Pattern has to be of type string.")}this.pattern=this.handleNicknames(this.pattern);const parts=this.pattern.trim().replace(/\s+/g," ").split(" ");if(parts.length<5||parts.length>6){throw new TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exacly five or six space separated parts required.")}if(parts.length===5){parts.unshift("0")}if(parts[3].indexOf("L")>=0){parts[3]=parts[3].replace("L","");this.lastDayOfMonth=true}if(parts[3].toUpperCase()=="*"){this.starDayOfMonth=true}parts[4]=this.replaceAlphaMonths(parts[4]);parts[5]=this.replaceAlphaDays(parts[5]);if(parts[5].toUpperCase()=="*"){this.starDayOfWeek=true}const initDate=new CronDate(new Date,this.timezone).getDate(true);parts[0]=parts[0].replace("?",initDate.getSeconds());parts[1]=parts[1].replace("?",initDate.getMinutes());parts[2]=parts[2].replace("?",initDate.getHours());parts[3]=parts[3].replace("?",initDate.getDate());parts[4]=parts[4].replace("?",initDate.getMonth()+1);parts[5]=parts[5].replace("?",initDate.getDay());this.throwAtIllegalCharacters(parts);this.partToArray("seconds",parts[0],0);this.partToArray("minutes",parts[1],0);this.partToArray("hours",parts[2],0);this.partToArray("days",parts[3],-1);this.partToArray("months",parts[4],-1);this.partToArray("daysOfWeek",parts[5],0);if(this.daysOfWeek[7]){this.daysOfWeek[0]=1}};CronPattern.prototype.partToArray=function(type,conf,valueIndexOffset){const arr=this[type];if(conf==="*"){for(let i=0;i<arr.length;i++){arr[i]=1}return}const split=conf.split(",");if(split.length>1){for(let i=0;i<split.length;i++){this.partToArray(type,split[i],valueIndexOffset)}}else if(conf.indexOf("-")!==-1&&conf.indexOf("/")!==-1){this.handleRangeWithStepping(conf,type,valueIndexOffset)}else if(conf.indexOf("-")!==-1){this.handleRange(conf,type,valueIndexOffset)}else if(conf.indexOf("/")!==-1){this.handleStepping(conf,type,valueIndexOffset)}else if(conf!==""){this.handleNumber(conf,type,valueIndexOffset)}};CronPattern.prototype.throwAtIllegalCharacters=function(parts){const reValidCron=/[^/*0-9,-]+/;for(let i=0;i<parts.length;i++){if(reValidCron.test(parts[i])){throw new TypeError("CronPattern: configuration entry "+i+" ("+parts[i]+") contains illegal characters.")}}};CronPattern.prototype.handleNumber=function(conf,type,valueIndexOffset){const i=parseInt(conf,10)+valueIndexOffset;if(isNaN(i)){throw new TypeError("CronPattern: "+type+" is not a number: '"+conf+"'")}if(i<0||i>=this[type].length){throw new TypeError("CronPattern: "+type+" value out of range: '"+conf+"'")}this[type][i]=1};CronPattern.prototype.handleRangeWithStepping=function(conf,type,valueIndexOffset){const matches=conf.match(/^(\d+)-(\d+)\/(\d+)$/);if(matches===null)throw new TypeError("CronPattern: Syntax error, illegal range with stepping: '"+conf+"'");let[,lower,upper,steps]=matches;lower=parseInt(lower,10)+valueIndexOffset;upper=parseInt(upper,10)+valueIndexOffset;steps=parseInt(steps,10);if(isNaN(lower))throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(upper))throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");if(lower<0||upper>=this[type].length)throw new TypeError("CronPattern: Value out of range: '"+conf+"'");if(lower>upper)throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'");for(let i=lower;i<=upper;i+=steps){this[type][i]=1}};CronPattern.prototype.handleRange=function(conf,type,valueIndexOffset){const split=conf.split("-");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal range: '"+conf+"'")}const lower=parseInt(split[0],10)+valueIndexOffset,upper=parseInt(split[1],10)+valueIndexOffset;if(isNaN(lower)){throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)")}else if(isNaN(upper)){throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)")}if(lower<0||upper>=this[type].length){throw new TypeError("CronPattern: Value out of range: '"+conf+"'")}if(lower>upper){throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'")}for(let i=lower;i<=upper;i++){this[type][i]=1}};CronPattern.prototype.handleStepping=function(conf,type){const split=conf.split("/");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal stepping: '"+conf+"'")}let start=0;if(split[0]!=="*"){start=parseInt(split[0],10)}const steps=parseInt(split[1],10);if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");for(let i=start;i<this[type].length;i+=steps){this[type][i]=1}};CronPattern.prototype.replaceAlphaDays=function(conf){return conf.replace(/-sun/gi,"-7").replace(/sun/gi,"0").replace(/mon/gi,"1").replace(/tue/gi,"2").replace(/wed/gi,"3").replace(/thu/gi,"4").replace(/fri/gi,"5").replace(/sat/gi,"6")};CronPattern.prototype.replaceAlphaMonths=function(conf){return conf.replace(/jan/gi,"1").replace(/feb/gi,"2").replace(/mar/gi,"3").replace(/apr/gi,"4").replace(/may/gi,"5").replace(/jun/gi,"6").replace(/jul/gi,"7").replace(/aug/gi,"8").replace(/sep/gi,"9").replace(/oct/gi,"10").replace(/nov/gi,"11").replace(/dec/gi,"12")};CronPattern.prototype.handleNicknames=function(pattern){const cleanPattern=pattern.trim().toLowerCase();if(cleanPattern==="@yearly"||cleanPattern==="@annually"){return"0 0 1 1 *"}else if(cleanPattern==="@monthly"){return"0 0 1 * *"}else if(cleanPattern==="@weekly"){return"0 0 * * 0"}else if(cleanPattern==="@daily"){return"0 0 * * *"}else if(cleanPattern==="@hourly"){return"0 * * * *"}else{return pattern}};const maxDelay=Math.pow(2,32-1)-1;function Cron(pattern,fnOrOptions1,fnOrOptions2){if(!(this instanceof Cron)){return new Cron(pattern,fnOrOptions1,fnOrOptions2)}let options,func;if(typeof fnOrOptions1==="function"){func=fnOrOptions1}else if(typeof fnOrOptions1==="object"){options=fnOrOptions1}else if(fnOrOptions1!==void 0){throw new Error("Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).")}if(typeof fnOrOptions2==="function"){func=fnOrOptions2}else if(typeof fnOrOptions2==="object"){options=fnOrOptions2}else if(fnOrOptions2!==void 0){throw new Error("Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).")}this.options=CronOptions(options);this.once=void 0;this.pattern=void 0;if(pattern&&(pattern instanceof Date||typeof pattern==="string"&&pattern.indexOf(":")>0)){this.once=new CronDate(pattern,this.options.timezone)}else{this.pattern=new CronPattern(pattern,this.options.timezone)}if(func!==void 0){this.fn=func;this.schedule()}return this}Cron.prototype.next=function(prev){const next=this._next(prev);return next?next.getDate():null};Cron.prototype.enumerate=function(n,previous){const enumeration=[];let prev=previous||this.previousrun;while(n--&&(prev=this.next(prev))){enumeration.push(prev)}return enumeration};Cron.prototype.running=function(){const msLeft=this.msToNext(this.previousrun);const running=!this.options.paused&&this.fn!==void 0;return msLeft!==null&&running};Cron.prototype.previous=function(){return this.previousrun?this.previousrun.getDate():null};Cron.prototype.msToNext=function(prev){const next=this._next(prev||this.previousrun);prev=new CronDate(prev,this.options.timezone);if(next){return next.getTime(true)-prev.getTime(true)}else{return null}};Cron.prototype.stop=function(){this.options.kill=true;if(this.currentTimeout){clearTimeout(this.currentTimeout)}};Cron.prototype.pause=function(){return(this.options.paused=true)&&!this.options.kill};Cron.prototype.resume=function(){return!(this.options.paused=false)&&!this.options.kill};Cron.prototype.schedule=function(func,partial){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(partial?partial:this.previousrun);const target=this.next(partial?partial:this.previousrun);if(waitMs===null)return this;if(waitMs>maxDelay){waitMs=maxDelay}this.currentTimeout=setTimeout(()=>{const now=new Date;if(waitMs!==maxDelay&&!this.options.paused&&now.getTime()>=target){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()}else{this.schedule(undefined,now)}},waitMs);return this};Cron.prototype._next=function(prev){const hasPreviousRun=prev||this.previousrun?true:false;prev=new CronDate(prev,this.options.timezone);if(this.options.startAt&&prev&&prev.getTime(true)<this.options.startAt.getTime(true)){prev=this.options.startAt}const nextRun=this.once||new CronDate(prev,this.options.timezone).increment(this.pattern,this.options,hasPreviousRun);if(this.once&&this.once.getTime(true)<=prev.getTime(true)){return null}else if(nextRun===null||this.options.maxRuns<=0||this.options.kill||this.options.stopAt&&nextRun.getTime(true)>=this.options.stopAt.getTime(true)){return null}else{return nextRun}};Cron.Cron=Cron;Cron.Cron=Cron;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","CronTZ","date","tzString","Date","toLocaleString","timeZone","CronOptions","options","legacyMode","paused","maxRuns","Infinity","catch","interval","parseInt","kill","startAt","CronDate","timezone","stopAt","isNaN","Error","fromDate","TypeError","fromString","fromCronDate","prototype","milliseconds","getMilliseconds","seconds","getSeconds","minutes","getMinutes","hours","getHours","days","getDate","months","getMonth","years","getFullYear","apply","newDate","str","parsedDate","parseISOLocal","increment","pattern","hasPreviousRun","findNext","target","offset","override","startPos","let","i","length","match","targetDate","setDate","lastDayOfMonth","targetDateCopy","dowMatch","daysOfWeek","getDay","starDayOfWeek","starDayOfMonth","resetPrevious","doing","toDo","currentValue","internal","getTime","dateTimeString","dateTimeStringSplit","split","NaN","year","month","day","hour","minute","second","generatedDate","indexOf","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","CronPattern","Array","fill","parse","constructor","String","handleNicknames","parts","trim","replace","unshift","toUpperCase","replaceAlphaMonths","replaceAlphaDays","initDate","throwAtIllegalCharacters","partToArray","type","conf","valueIndexOffset","arr","handleRangeWithStepping","handleRange","handleStepping","handleNumber","reValidCron","test","matches","lower","upper","steps","start","cleanPattern","toLowerCase","maxDelay","Math","pow","fnOrOptions1","fnOrOptions2","func","once","fn","schedule","next","prev","_next","enumerate","n","previous","enumeration","previousrun","push","running","msLeft","msToNext","stop","currentTimeout","clearTimeout","pause","resume","partial","waitMs","setTimeout","now","context","_e","undefined","nextRun"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["dist/croner.cjs"],"names":["global","factory","exports","module","define","amd","globalThis","self","Cron","this","CronTZ","date","tzString","Date","toLocaleString","timeZone","CronOptions","options","legacyMode","paused","maxRuns","Infinity","catch","interval","parseInt","kill","startAt","CronDate","timezone","stopAt","isNaN","Error","fromDate","TypeError","fromString","fromCronDate","prototype","milliseconds","getMilliseconds","seconds","getSeconds","minutes","getMinutes","hours","getHours","days","getDate","months","getMonth","years","getFullYear","apply","newDate","str","parsedDate","parseISOLocal","increment","pattern","hasPreviousRun","findNext","target","offset","override","startPos","let","i","length","match","targetDate","setDate","lastDayOfMonth","targetDateCopy","dowMatch","daysOfWeek","getDay","starDayOfWeek","starDayOfMonth","resetPrevious","doing","toDo","currentValue","internal","getTime","dateTimeString","dateTimeStringSplit","split","NaN","year","month","day","hour","minute","second","generatedDate","indexOf","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","CronPattern","Array","fill","parse","constructor","String","handleNicknames","parts","trim","replace","unshift","toUpperCase","replaceAlphaMonths","replaceAlphaDays","initDate","throwAtIllegalCharacters","partToArray","type","conf","valueIndexOffset","arr","handleRangeWithStepping","handleRange","handleStepping","handleNumber","reValidCron","test","matches","lower","upper","steps","start","cleanPattern","toLowerCase","maxDelay","Math","pow","fnOrOptions1","fnOrOptions2","func","once","fn","schedule","next","prev","_next","enumerate","n","previous","enumeration","previousrun","push","running","msLeft","msToNext","stop","currentTimeout","clearTimeout","pause","resume","partial","waitMs","setTimeout","now","context","_e","undefined","nextRun"],"mappings":"CAAA,SAAWA,OAAQC,SAClB,OAAOC,UAAY,UAAY,OAAOC,SAAW,YAAcA,OAAOD,QAAUD,QAAQ,EACxF,OAAOG,SAAW,YAAcA,OAAOC,IAAMD,OAAOH,OAAO,GAC1DD,OAAS,OAAOM,aAAe,YAAcA,WAAaN,QAAUO,KAAMP,OAAOQ,KAAOP,QAAQ,EACjG,GAAEQ,KAAM,WAAe,aAkBvB,SAASC,OAAOC,KAAMC,UACrB,OAAO,IAAIC,KAAKF,KAAKG,eAAe,QAAS,CAACC,SAAUH,QAAQ,CAAC,CAAC,CACnE,CAuBA,SAASI,YAAYC,SAGpB,GAAIA,UAAY,KAAK,EAAG,CACvBA,QAAU,EACX,CAGAA,QAAQC,WAAcD,QAAQC,aAAe,KAAK,EAAK,MAAQD,QAAQC,WACvED,QAAQE,OAAUF,QAAQE,SAAW,KAAK,EAAK,MAAQF,QAAQE,OAC/DF,QAAQG,QAAWH,QAAQG,UAAY,KAAK,EAAKC,SAAWJ,QAAQG,QACpEH,QAAQK,MAASL,QAAQK,QAAU,KAAK,EAAK,MAAQL,QAAQK,MAC7DL,QAAQM,SAAYN,QAAQM,WAAa,KAAK,EAAK,EAAIC,SAASP,QAAQM,SAAU,EAAE,EACpFN,QAAQQ,KAAO,MAGf,GAAIR,QAAQS,QAAU,CACrBT,QAAQS,QAAU,IAAIC,SAASV,QAAQS,QAAST,QAAQW,QAAQ,CACjE,CACA,GAAIX,QAAQY,OAAS,CACpBZ,QAAQY,OAAS,IAAIF,SAASV,QAAQY,OAAQZ,QAAQW,QAAQ,CAC/D,CAGA,GAAIX,QAAQM,WAAa,KAAM,CAC9B,GAAIO,MAAMb,QAAQM,QAAQ,EAAG,CAC5B,MAAM,IAAIQ,MAAM,0DAA0D,CAC3E,MAAO,GAAId,QAAQM,SAAW,EAAG,CAChC,MAAM,IAAIQ,MAAM,8DAA8D,CAC/E,CACD,CAEA,OAAOd,OAER,CASA,SAASU,SAAUhB,KAAMiB,UAExBnB,KAAKmB,SAAWA,SAEhB,GAAIjB,MAAQA,gBAAgBE,KAAM,CACjC,GAAI,CAACiB,MAAMnB,IAAI,EAAG,CACjBF,KAAKuB,SAASrB,IAAI,CACnB,KAAO,CACN,MAAM,IAAIsB,UAAU,oEAAoE,CACzF,CACD,MAAO,GAAItB,OAAS,KAAK,EAAG,CAC3BF,KAAKuB,SAAS,IAAInB,IAAM,CACzB,MAAO,GAAIF,MAAQ,OAAOA,OAAS,SAAU,CAC5CF,KAAKyB,WAAWvB,IAAI,CACrB,MAAO,GAAIA,gBAAgBgB,SAAU,CACpClB,KAAK0B,aAAaxB,IAAI,CACvB,KAAO,CACN,MAAM,IAAIsB,UAAU,2BAA6B,OAAOtB,KAAO,+CAA+C,CAC/G,CAED,CAQAgB,SAASS,UAAUJ,SAAW,SAAUrB,MAEvC,GAAIF,KAAKmB,SAAU,CAClBjB,KAAOD,OAAOC,KAAMF,KAAKmB,QAAQ,CAClC,CAEAnB,KAAK4B,aAAe1B,KAAK2B,gBAAgB,EACzC7B,KAAK8B,QAAU5B,KAAK6B,WAAW,EAC/B/B,KAAKgC,QAAU9B,KAAK+B,WAAW,EAC/BjC,KAAKkC,MAAQhC,KAAKiC,SAAS,EAC3BnC,KAAKoC,KAAOlC,KAAKmC,QAAQ,EACzBrC,KAAKsC,OAAUpC,KAAKqC,SAAS,EAC7BvC,KAAKwC,MAAQtC,KAAKuC,YAAY,CAE/B,EAQAvB,SAASS,UAAUD,aAAe,SAAUxB,MAC3CF,KAAKmB,SAAWjB,KAAKiB,SACrBnB,KAAK4B,aAAe1B,KAAK0B,aACzB5B,KAAK8B,QAAU5B,KAAK4B,QACpB9B,KAAKgC,QAAU9B,KAAK8B,QACpBhC,KAAKkC,MAAQhC,KAAKgC,MAClBlC,KAAKoC,KAAOlC,KAAKkC,KACjBpC,KAAKsC,OAASpC,KAAKoC,OACnBtC,KAAKwC,MAAQtC,KAAKsC,KACnB,EAQAtB,SAASS,UAAUe,MAAQ,WAC1B,MAAMC,QAAU,IAAIvC,KAAKJ,KAAKwC,MAAOxC,KAAKsC,OAAQtC,KAAKoC,KAAMpC,KAAKkC,MAAOlC,KAAKgC,QAAShC,KAAK8B,QAAS9B,KAAK4B,YAAY,EAEtH5B,KAAK4B,aAAee,QAAQd,gBAAgB,EAC5C7B,KAAK8B,QAAUa,QAAQZ,WAAW,EAClC/B,KAAKgC,QAAUW,QAAQV,WAAW,EAClCjC,KAAKkC,MAAQS,QAAQR,SAAS,EAC9BnC,KAAKoC,KAAOO,QAAQN,QAAQ,EAC5BrC,KAAKsC,OAAUK,QAAQJ,SAAS,EAChCvC,KAAKwC,MAAQG,QAAQF,YAAY,CAClC,EAQAvB,SAASS,UAAUF,WAAa,SAAUmB,KAEzC,MAAMC,WAAa7C,KAAK8C,cAAcF,GAAG,EAGzC,GAAIvB,MAAMwB,UAAU,EAAI,CACvB,MAAM,IAAIrB,UAAU,2EAA2E,CAChG,CAEAxB,KAAKuB,SAASsB,UAAU,CACzB,EAWA3B,SAASS,UAAUoB,UAAY,SAAUC,QAASxC,QAASyC,gBAG1D,GAAIzC,QAAQM,SAAW,GAAKmC,eAAgB,CAC3CjD,KAAK8B,SAAWtB,QAAQM,QACzB,KAAO,CACNd,KAAK8B,SAAW,CACjB,CACA9B,KAAK4B,aAAe,EACpB5B,KAAK0C,MAAM,EAEX,MAaCQ,SAAW,CAACC,OAAQH,QAASI,OAAQC,YAEpC,MAAMC,SAAYD,WAAa,KAAK,EAAKrD,KAAKmD,QAAUC,OAAS,EAEjE,IAAKG,IAAIC,EAAIF,SAAUE,EAAIR,QAAQG,QAAQM,OAAQD,CAAC,GAAK,CAGxDD,IAAIG,MAAQV,QAAQG,QAAQK,GAG5B,GAAIL,SAAW,OAAQ,CAGtB,MAAMQ,WAAa3D,KAAKqC,QAAQ,IAAI,EACpCsB,WAAWC,QAAQJ,EAAEJ,MAAM,EAG3B,GAAIJ,QAAQa,eAAgB,CAI3B,MAAMC,eAAiB,IAAI1D,KAAKuD,UAAU,EAC1CG,eAAeF,QAAQJ,EAAEJ,OAAO,CAAC,EAGjC,GAAIU,eAAevB,SAAS,IAAMvC,KAAKsC,OAAQ,CAC9CoB,MAAQ,IACT,CAED,CAIA,MAAMK,SAAWf,QAAQgB,WAAWL,WAAWM,OAAO,GACtD,GAAIzD,QAAQC,WAAY,CACvB,GAAI,CAACuC,QAAQkB,eAAiBlB,QAAQmB,eAAgB,CACrDT,MAAQK,QACT,MAAO,GAAI,CAACf,QAAQkB,eAAiB,CAAClB,QAAQmB,eAAgB,CAC7DT,MAAQA,OAASK,QAClB,CACD,KAAO,CAENL,MAAQA,OAASK,QAClB,CAED,CAEA,GAAIL,MAAO,CACV1D,KAAKmD,QAAUK,EAAEJ,OACjB,OAAO,IACR,CAED,CACA,OAAO,KAER,EAEAgB,cAAgB,SAKf,MAAMC,MAAQjB,QAAU,EAAG,CAO1BF,SAASoB,KAAKD,MAAQjB,QAAQ,GAAIJ,QAASsB,KAAKD,MAAQjB,QAAQ,GAAI,CAAC,EAGrEiB,KAAK,EACN,CACD,EASD,MAAMC,KAAO,CACZ,CAAC,UAAW,UAAW,GACvB,CAAC,UAAW,QAAS,GACrB,CAAC,QAAS,OAAQ,GAClB,CAAC,OAAQ,SAAU,CAAC,GACpB,CAAC,SAAU,QAAS,IAKrBf,IAAIc,MAAQ,EACZ,MAAMA,MAAQ,EAAG,CAOhB,MAAME,aAAevE,KAAKsE,KAAKD,OAAO,IAGtC,GAAG,CAACnB,SAASoB,KAAKD,OAAO,GAAIrB,QAASsB,KAAKD,OAAO,EAAE,EAAG,CAEtDrE,KAAKsE,KAAKD,OAAO,GAAG,GAGpBD,cAAc,CAAC,EAGfpE,KAAK0C,MAAM,CAGZ,MAAO,GAAI6B,eAAiBvE,KAAKsE,KAAKD,OAAO,IAAK,CAGjDD,cAAc,CAAC,CAAC,CAEjB,CAGA,GAAIpE,KAAKwC,OAAS,IAAM,CACvB,OAAO,IACR,CAGA6B,KAAK,EACN,CAGA,OAAOrE,IAER,EASAkB,SAASS,UAAUU,QAAU,SAAUmC,UACtC,MAAMb,WAAa,IAAIvD,KAAKJ,KAAKwC,MAAOxC,KAAKsC,OAAQtC,KAAKoC,KAAMpC,KAAKkC,MAAOlC,KAAKgC,QAAShC,KAAK8B,QAAS9B,KAAK4B,YAAY,EACzH,GAAI4C,UAAY,CAACxE,KAAKmB,SAAU,CAC/B,OAAOwC,UACR,KAAO,CACN,MAAMP,OAASnD,OAAO0D,WAAY3D,KAAKmB,QAAQ,EAAEsD,QAAQ,EAAEd,WAAWc,QAAQ,EAC9E,OAAO,IAAIrE,KAAKuD,WAAWc,QAAQ,EAAErB,MAAM,CAC5C,CACD,EASAlC,SAASS,UAAU8C,QAAU,SAAUD,UACtC,OAAOxE,KAAKqC,QAAQmC,QAAQ,EAAEC,QAAQ,CACvC,EAUAvD,SAASS,UAAUmB,cAAgB,SAAU4B,gBAC5C,MAAMC,oBAAsBD,eAAeE,MAAM,IAAI,EAGrD,GAAID,oBAAoBlB,OAAS,EAAG,CACnC,OAAOoB,GACR,CAEA,MACCC,KAAO/D,SAAS4D,oBAAoB,GAAI,EAAE,EAC1CI,MAAQhE,SAAS4D,oBAAoB,GAAI,EAAE,EAC3CK,IAAMjE,SAAS4D,oBAAoB,GAAI,EAAE,EACzCM,KAAOlE,SAAS4D,oBAAoB,GAAI,EAAE,EAC1CO,OAASnE,SAAS4D,oBAAoB,GAAI,EAAE,EAC5CQ,OAASpE,SAAS4D,oBAAoB,GAAI,EAAE,EAG7C,GAAItD,MAAMyD,IAAI,GAAKzD,MAAM0D,KAAK,GAAK1D,MAAM2D,GAAG,GAAK3D,MAAM4D,IAAI,GAAK5D,MAAM6D,MAAM,GAAK7D,MAAM8D,MAAM,EAAI,CAChG,OAAON,GACR,KAAO,CACNtB,IAAI6B,cAGJ,GAAKV,eAAeW,QAAQ,GAAG,EAAI,EAAI,CAGtCD,cAAgB,IAAIhF,KAAKA,KAAKkF,IAAIR,KAAMC,MAAM,EAAGC,IAAKC,KAAMC,OAAQC,MAAM,CAAC,EAG3E,GAAIL,MAAQM,cAAcG,eAAe,GACrCR,OAASK,cAAcI,YAAY,EAAE,GACrCR,KAAOI,cAAcK,WAAW,GAChCR,MAAQG,cAAcM,YAAY,GAClCR,QAAUE,cAAcO,cAAc,GACtCR,QAAUC,cAAcQ,cAAc,EAAG,CAC5C,OAAOR,aACR,KAAO,CACN,OAAOP,GACR,CACD,KAAO,CAGNO,cAAgB,IAAIhF,KAAK0E,KAAMC,MAAM,EAAGC,IAAKC,KAAMC,OAAQC,MAAM,EAGjE,GAAIL,MAAQM,cAAc3C,YAAY,GAClCsC,OAASK,cAAc7C,SAAS,EAAE,GAClCyC,KAAOI,cAAc/C,QAAQ,GAC7B4C,MAAQG,cAAcjD,SAAS,GAC/B+C,QAAUE,cAAcnD,WAAW,GACnCkD,QAAUC,cAAcrD,WAAW,EAAG,CACzC,OAAOqD,aACR,KAAO,CACN,OAAOP,GACR,CACD,CACD,CACD,EAsBA,SAASgB,YAAa7C,QAAS7B,UAE9BnB,KAAKgD,QAAYA,QACjBhD,KAAKmB,SAAYA,SAEjBnB,KAAK8B,QAAiBgE,MAAM,EAAE,EAAEC,KAAK,CAAC,EACtC/F,KAAKgC,QAAiB8D,MAAM,EAAE,EAAEC,KAAK,CAAC,EACtC/F,KAAKkC,MAAiB4D,MAAM,EAAE,EAAEC,KAAK,CAAC,EACtC/F,KAAKoC,KAAiB0D,MAAM,EAAE,EAAEC,KAAK,CAAC,EACtC/F,KAAKsC,OAAiBwD,MAAM,EAAE,EAAEC,KAAK,CAAC,EACtC/F,KAAKgE,WAAiB8B,MAAM,CAAC,EAAEC,KAAK,CAAC,EAErC/F,KAAK6D,eAAiB,MACtB7D,KAAKmE,eAAiB,MACtBnE,KAAKkE,cAAiB,MAEtBlE,KAAKgG,MAAM,CAEZ,CAMAH,YAAYlE,UAAUqE,MAAQ,WAG7B,GAAI,EAAE,OAAOhG,KAAKgD,UAAY,UAAYhD,KAAKgD,QAAQiD,cAAgBC,QAAU,CAChF,MAAM,IAAI1E,UAAU,gDAAgD,CACrE,CAGAxB,KAAKgD,QAAUhD,KAAKmG,gBAAgBnG,KAAKgD,OAAO,EAGhD,MAAMoD,MAAQpG,KAAKgD,QAAQqD,KAAK,EAAEC,QAAQ,OAAQ,GAAG,EAAE1B,MAAM,GAAG,EAGhE,GAAIwB,MAAM3C,OAAS,GAAK2C,MAAM3C,OAAS,EAAI,CAC1C,MAAM,IAAIjC,UAAU,+CAAiDxB,KAAKgD,QAAU,wDAAwD,CAC7I,CAGA,GAAIoD,MAAM3C,SAAW,EAAG,CACvB2C,MAAMG,QAAQ,GAAG,CAClB,CAIA,GAAGH,MAAM,GAAGf,QAAQ,GAAG,GAAK,EAAG,CAC9Be,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAI,EAAE,EAClCtG,KAAK6D,eAAiB,IACvB,CAGA,GAAGuC,MAAM,GAAGI,YAAY,GAAK,IAAK,CACjCxG,KAAKmE,eAAiB,IACvB,CAGAiC,MAAM,GAAKpG,KAAKyG,mBAAmBL,MAAM,EAAE,EAC3CA,MAAM,GAAKpG,KAAK0G,iBAAiBN,MAAM,EAAE,EAGzC,GAAGA,MAAM,GAAGI,YAAY,GAAK,IAAK,CACjCxG,KAAKkE,cAAgB,IACtB,CAGA,MAAMyC,SAAW,IAAIzF,SAAS,IAAId,KAAOJ,KAAKmB,QAAQ,EAAEkB,QAAQ,IAAI,EAEpE+D,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKK,SAAS5E,WAAW,CAAC,EACtDqE,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKK,SAAS1E,WAAW,CAAC,EACtDmE,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKK,SAASxE,SAAS,CAAC,EACpDiE,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKK,SAAStE,QAAQ,CAAC,EACnD+D,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKK,SAASpE,SAAS,EAAE,CAAC,EACtD6D,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKK,SAAS1C,OAAO,CAAC,EAGlDjE,KAAK4G,yBAAyBR,KAAK,EAGnCpG,KAAK6G,YAAY,UAAcT,MAAM,GAAI,CAAC,EAC1CpG,KAAK6G,YAAY,UAAcT,MAAM,GAAI,CAAC,EAC1CpG,KAAK6G,YAAY,QAAcT,MAAM,GAAI,CAAC,EAC1CpG,KAAK6G,YAAY,OAAcT,MAAM,GAAI,CAAC,CAAC,EAC3CpG,KAAK6G,YAAY,SAAcT,MAAM,GAAI,CAAC,CAAC,EAC3CpG,KAAK6G,YAAY,aAAcT,MAAM,GAAI,CAAC,EAG1C,GAAIpG,KAAKgE,WAAW,GAAK,CACxBhE,KAAKgE,WAAW,GAAK,CACtB,CAED,EAWA6B,YAAYlE,UAAUkF,YAAc,SAAUC,KAAMC,KAAMC,kBAEzD,MAAMC,IAAMjH,KAAK8G,MAGjB,GAAIC,OAAS,IAAM,CAClB,IAAKxD,IAAIC,EAAI,EAAGA,EAAIyD,IAAIxD,OAAQD,CAAC,GAAK,CACrCyD,IAAIzD,GAAK,CACV,CACA,MACD,CAGA,MAAMoB,MAAQmC,KAAKnC,MAAM,GAAG,EAC5B,GAAIA,MAAMnB,OAAS,EAAI,CACtB,IAAKF,IAAIC,EAAI,EAAGA,EAAIoB,MAAMnB,OAAQD,CAAC,GAAK,CACvCxD,KAAK6G,YAAYC,KAAMlC,MAAMpB,GAAIwD,gBAAgB,CAClD,CAGD,MAAO,GAAID,KAAK1B,QAAQ,GAAG,IAAM,CAAC,GAAK0B,KAAK1B,QAAQ,GAAG,IAAM,CAAC,EAAI,CACjErF,KAAKkH,wBAAwBH,KAAMD,KAAME,gBAAgB,CAG1D,MAAO,GAAID,KAAK1B,QAAQ,GAAG,IAAM,CAAC,EAAI,CACrCrF,KAAKmH,YAAYJ,KAAMD,KAAME,gBAAgB,CAG9C,MAAO,GAAID,KAAK1B,QAAQ,GAAG,IAAM,CAAC,EAAI,CACrCrF,KAAKoH,eAAeL,KAAMD,KAAME,gBAAgB,CAGjD,MAAO,GAAID,OAAS,GAAK,CACxB/G,KAAKqH,aAAaN,KAAMD,KAAME,gBAAgB,CAC/C,CAED,EAQAnB,YAAYlE,UAAUiF,yBAA2B,SAAUR,OAC1D,MAAMkB,YAAc,cACpB,IAAI/D,IAAIC,EAAI,EAAGA,EAAI4C,MAAM3C,OAAQD,CAAC,GAAI,CACrC,GAAI8D,YAAYC,KAAKnB,MAAM5C,EAAE,EAAI,CAChC,MAAM,IAAIhC,UAAU,oCAAsCgC,EAAI,KAAO4C,MAAM5C,GAAK,gCAAgC,CACjH,CACD,CACD,EAUAqC,YAAYlE,UAAU0F,aAAe,SAAUN,KAAMD,KAAME,kBAC1D,MAAMxD,EAAKzC,SAASgG,KAAM,EAAE,EAAIC,iBAEhC,GAAI3F,MAAMmC,CAAC,EAAI,CACd,MAAM,IAAIhC,UAAU,gBAAkBsF,KAAO,sBAAwBC,KAAO,GAAG,CAChF,CAEA,GAAIvD,EAAI,GAAKA,GAAKxD,KAAK8G,MAAMrD,OAAS,CACrC,MAAM,IAAIjC,UAAU,gBAAkBsF,KAAO,yBAA2BC,KAAO,GAAG,CACnF,CAEA/G,KAAK8G,MAAMtD,GAAK,CACjB,EAUAqC,YAAYlE,UAAUuF,wBAA0B,SAAUH,KAAMD,KAAME,kBACrE,MAAMQ,QAAUT,KAAKrD,MAAM,sBAAsB,EAEjD,GAAI8D,UAAY,KAAO,MAAM,IAAIhG,UAAU,4DAA8DuF,KAAO,GAAG,EAEnHxD,GAAI,CAAC,CAAEkE,MAAOC,MAAOC,OAASH,QAC9BC,MAAQ1G,SAAS0G,MAAO,EAAE,EAAIT,iBAC9BU,MAAQ3G,SAAS2G,MAAO,EAAE,EAAIV,iBAC9BW,MAAQ5G,SAAS4G,MAAO,EAAE,EAE1B,GAAItG,MAAMoG,KAAK,EAAI,MAAM,IAAIjG,UAAU,sDAAsD,EAC7F,GAAIH,MAAMqG,KAAK,EAAI,MAAM,IAAIlG,UAAU,sDAAsD,EAC7F,GAAIH,MAAMsG,KAAK,EAAI,MAAM,IAAInG,UAAU,oDAAoD,EAE3F,GAAImG,QAAU,EAAI,MAAM,IAAInG,UAAU,gDAAgD,EACtF,GAAImG,MAAQ3H,KAAK8G,MAAMrD,OAAS,MAAM,IAAIjC,UAAU,kFAAkFxB,KAAK8G,MAAMrD,OAAO,GAAG,EAE3J,GAAIgE,MAAQ,GAAKC,OAAS1H,KAAK8G,MAAMrD,OAAS,MAAM,IAAIjC,UAAU,qCAAuCuF,KAAO,GAAG,EACnH,GAAIU,MAAQC,MAAQ,MAAM,IAAIlG,UAAU,qDAAuDuF,KAAO,GAAG,EAEzG,IAAKxD,IAAIC,EAAIiE,MAAOjE,GAAKkE,MAAOlE,GAAKmE,MAAO,CAC3C3H,KAAK8G,MAAMtD,GAAK,CACjB,CACD,EAUAqC,YAAYlE,UAAUwF,YAAc,SAAUJ,KAAMD,KAAME,kBACzD,MAAMpC,MAAQmC,KAAKnC,MAAM,GAAG,EAE5B,GAAIA,MAAMnB,SAAW,EAAI,CACxB,MAAM,IAAIjC,UAAU,8CAAgDuF,KAAO,GAAG,CAC/E,CAEA,MAAMU,MAAQ1G,SAAS6D,MAAM,GAAI,EAAE,EAAIoC,iBACtCU,MAAQ3G,SAAS6D,MAAM,GAAI,EAAE,EAAIoC,iBAElC,GAAI3F,MAAMoG,KAAK,EAAI,CAClB,MAAM,IAAIjG,UAAU,sDAAsD,CAC3E,MAAO,GAAIH,MAAMqG,KAAK,EAAI,CACzB,MAAM,IAAIlG,UAAU,sDAAsD,CAC3E,CAGA,GAAIiG,MAAQ,GAAKC,OAAS1H,KAAK8G,MAAMrD,OAAS,CAC7C,MAAM,IAAIjC,UAAU,qCAAuCuF,KAAO,GAAG,CACtE,CAGA,GAAIU,MAAQC,MAAQ,CACnB,MAAM,IAAIlG,UAAU,qDAAuDuF,KAAO,GAAG,CACtF,CAEA,IAAKxD,IAAIC,EAAIiE,MAAOjE,GAAKkE,MAAOlE,CAAC,GAAK,CACrCxD,KAAK8G,MAAMtD,GAAK,CACjB,CACD,EASAqC,YAAYlE,UAAUyF,eAAiB,SAAUL,KAAMD,MAEtD,MAAMlC,MAAQmC,KAAKnC,MAAM,GAAG,EAE5B,GAAIA,MAAMnB,SAAW,EAAI,CACxB,MAAM,IAAIjC,UAAU,iDAAmDuF,KAAO,GAAG,CAClF,CAEAxD,IAAIqE,MAAQ,EACZ,GAAIhD,MAAM,KAAO,IAAM,CACtBgD,MAAQ7G,SAAS6D,MAAM,GAAI,EAAE,CAC9B,CAEA,MAAM+C,MAAQ5G,SAAS6D,MAAM,GAAI,EAAE,EAEnC,GAAIvD,MAAMsG,KAAK,EAAI,MAAM,IAAInG,UAAU,oDAAoD,EAC3F,GAAImG,QAAU,EAAI,MAAM,IAAInG,UAAU,gDAAgD,EACtF,GAAImG,MAAQ3H,KAAK8G,MAAMrD,OAAS,MAAM,IAAIjC,UAAU,kFAAkFxB,KAAK8G,MAAMrD,OAAO,GAAG,EAE3J,IAAKF,IAAIC,EAAIoE,MAAOpE,EAAIxD,KAAK8G,MAAMrD,OAAQD,GAAImE,MAAQ,CACtD3H,KAAK8G,MAAMtD,GAAK,CACjB,CACD,EAWAqC,YAAYlE,UAAU+E,iBAAmB,SAAUK,MAClD,OAAOA,KACLT,QAAQ,SAAU,IAAI,EACtBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,CACvB,EAUAT,YAAYlE,UAAU8E,mBAAqB,SAAUM,MACpD,OAAOA,KACLT,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,IAAI,EACrBA,QAAQ,QAAS,IAAI,EACrBA,QAAQ,QAAS,IAAI,CACxB,EAUAT,YAAYlE,UAAUwE,gBAAkB,SAAUnD,SAEjD,MAAM6E,aAAe7E,QAAQqD,KAAK,EAAEyB,YAAY,EAChD,GAAID,eAAiB,WAAaA,eAAiB,YAAa,CAC/D,MAAO,WACR,MAAO,GAAIA,eAAiB,WAAY,CACvC,MAAQ,WACT,MAAO,GAAIA,eAAiB,UAAW,CACtC,MAAO,WACR,MAAO,GAAIA,eAAiB,SAAU,CACrC,MAAO,WACR,MAAO,GAAIA,eAAiB,UAAW,CACtC,MAAO,WACR,KAAO,CACN,OAAO7E,OACR,CACD,EA0CA,MAAM+E,SAAWC,KAAKC,IAAI,EAAG,GAAK,CAAC,EAAI,EAWvC,SAASlI,KAAMiD,QAASkF,aAAcC,cAGrC,GAAI,EAAEnI,gBAAgBD,MAAQ,CAC7B,OAAO,IAAIA,KAAKiD,QAASkF,aAAcC,YAAY,CACpD,CAGA5E,IAAI/C,QAAS4H,KAEb,GAAI,OAAOF,eAAiB,WAAa,CACxCE,KAAOF,YACR,MAAO,GAAI,OAAOA,eAAiB,SAAW,CAC7C1H,QAAU0H,YACX,MAAO,GAAIA,eAAiB,KAAK,EAAG,CACnC,MAAM,IAAI5G,MAAM,8FAA8F,CAC/G,CAEA,GAAI,OAAO6G,eAAiB,WAAa,CACxCC,KAAOD,YACR,MAAO,GAAI,OAAOA,eAAiB,SAAW,CAC7C3H,QAAU2H,YACX,MAAO,GAAIA,eAAiB,KAAK,EAAG,CACnC,MAAM,IAAI7G,MAAM,2FAA2F,CAC5G,CAGAtB,KAAKQ,QAAUD,YAAYC,OAAO,EAGlCR,KAAKqI,KAAO,KAAK,EAGjBrI,KAAKgD,QAAU,KAAK,EAIpB,GAAIA,UAAYA,mBAAmB5C,MAAU,OAAO4C,UAAY,UAAaA,QAAQqC,QAAQ,GAAG,EAAI,GAAK,CACxGrF,KAAKqI,KAAO,IAAInH,SAAS8B,QAAShD,KAAKQ,QAAQW,QAAQ,CACxD,KAAO,CACNnB,KAAKgD,QAAU,IAAI6C,YAAY7C,QAAShD,KAAKQ,QAAQW,QAAQ,CAC9D,CAGA,GAAIiH,OAAS,KAAK,EAAI,CACrBpI,KAAKsI,GAAKF,KACVpI,KAAKuI,SAAS,CACf,CAEA,OAAOvI,IAER,CAQAD,KAAK4B,UAAU6G,KAAO,SAAUC,MAC/B,MAAMD,KAAOxI,KAAK0I,MAAMD,IAAI,EAC5B,OAAOD,KAAOA,KAAKnG,QAAQ,EAAI,IAChC,EASAtC,KAAK4B,UAAUgH,UAAY,SAAUC,EAAGC,UACvC,MAAMC,YAAc,GACpBvF,IAAIkF,KAAOI,UAAY7I,KAAK+I,YAC5B,MAAMH,CAAC,KAAOH,KAAOzI,KAAKwI,KAAKC,IAAI,GAAI,CACtCK,YAAYE,KAAKP,IAAI,CACtB,CAEA,OAAOK,WACR,EAQA/I,KAAK4B,UAAUsH,QAAU,WACxB,MAAMC,OAASlJ,KAAKmJ,SAASnJ,KAAK+I,WAAW,EAC7C,MAAME,QAAU,CAACjJ,KAAKQ,QAAQE,QAAUV,KAAKsI,KAAO,KAAK,EACzD,OAAOY,SAAW,MAAQD,OAC3B,EAQAlJ,KAAK4B,UAAUkH,SAAW,WACzB,OAAO7I,KAAK+I,YAAc/I,KAAK+I,YAAY1G,QAAQ,EAAI,IACxD,EASAtC,KAAK4B,UAAUwH,SAAW,SAAUV,MAGnC,MAAMD,KAAOxI,KAAK0I,MAAMD,MAAQzI,KAAK+I,WAAW,EAGhDN,KAAO,IAAIvH,SAASuH,KAAMzI,KAAKQ,QAAQW,QAAQ,EAE/C,GAAIqH,KAAO,CACV,OAAQA,KAAK/D,QAAQ,IAAI,EAAIgE,KAAKhE,QAAQ,IAAI,CAC/C,KAAO,CACN,OAAO,IACR,CACD,EAMA1E,KAAK4B,UAAUyH,KAAO,WACrBpJ,KAAKQ,QAAQQ,KAAO,KAEpB,GAAIhB,KAAKqJ,eAAiB,CACzBC,aAActJ,KAAKqJ,cAAe,CACnC,CACD,EAQAtJ,KAAK4B,UAAU4H,MAAQ,WACtB,OAAQvJ,KAAKQ,QAAQE,OAAS,OAAS,CAACV,KAAKQ,QAAQQ,IACtD,EAQAjB,KAAK4B,UAAU6H,OAAS,WACvB,MAAO,EAAExJ,KAAKQ,QAAQE,OAAS,QAAU,CAACV,KAAKQ,QAAQQ,IACxD,EAUAjB,KAAK4B,UAAU4G,SAAW,SAAUH,KAAMqB,SAGzC,GAAIrB,MAAQpI,KAAKsI,GAAI,CACpB,MAAM,IAAIhH,MAAM,mFAAmF,CAGpG,MAAO,GAAI8G,KAAM,CAChBpI,KAAKsI,GAAKF,IACX,CAGA7E,IAAImG,OAAS1J,KAAKmJ,SAASM,QAAUA,QAAUzJ,KAAK+I,WAAW,EAC/D,MAAM5F,OAASnD,KAAKwI,KAAKiB,QAAUA,QAAWzJ,KAAK+I,WAAW,EAE9D,GAAMW,SAAW,KAAQ,OAAO1J,KAGhC,GAAI0J,OAAS3B,SAAW,CACvB2B,OAAS3B,QACV,CAGA/H,KAAKqJ,eAAiBM,WAAW,KAEhC,MAAMC,IAAM,IAAIxJ,KAEhB,GAAIsJ,SAAW3B,UAAY,CAAC/H,KAAKQ,QAAQE,QAAUkJ,IAAInF,QAAQ,GAAKtB,OAAS,CAE5EnD,KAAKQ,QAAQG,OAAO,GAGpB,GAAIX,KAAKQ,QAAQK,MAAO,CACvB,IACCb,KAAKsI,GAAGtI,KAAMA,KAAKQ,QAAQqJ,OAAO,CAGnC,CAFE,MAAOC,KAGV,KAAO,CACN9J,KAAKsI,GAAGtI,KAAMA,KAAKQ,QAAQqJ,OAAO,CACnC,CAGA7J,KAAK+I,YAAc,IAAI7H,SAAS,KAAK,EAAGlB,KAAKQ,QAAQW,QAAQ,EAG7DnB,KAAKuI,SAAS,CAEf,KAAO,CAENvI,KAAKuI,SAASwB,UAAWH,GAAG,CAC7B,CAGD,EAAGF,MAAM,EAET,OAAO1J,IAER,EAUAD,KAAK4B,UAAU+G,MAAQ,SAAUD,MAEhC,MAAMxF,eAAkBwF,MAAQzI,KAAK+I,YAAe,KAAO,MAG3DN,KAAO,IAAIvH,SAASuH,KAAMzI,KAAKQ,QAAQW,QAAQ,EAG/C,GAAInB,KAAKQ,QAAQS,SAAWwH,MAAQA,KAAKhE,QAAQ,IAAI,EAAIzE,KAAKQ,QAAQS,QAAQwD,QAAQ,IAAI,EAAI,CAC7FgE,KAAOzI,KAAKQ,QAAQS,OACrB,CAGA,MACC+I,QAAUhK,KAAKqI,MAAQ,IAAInH,SAASuH,KAAMzI,KAAKQ,QAAQW,QAAQ,EAAE4B,UAAU/C,KAAKgD,QAAShD,KAAKQ,QAASyC,cAAc,EAEtH,GAAIjD,KAAKqI,MAAQrI,KAAKqI,KAAK5D,QAAQ,IAAI,GAAKgE,KAAKhE,QAAQ,IAAI,EAAG,CAC/D,OAAO,IAER,MAAO,GAAKuF,UAAY,MACtBhK,KAAKQ,QAAQG,SAAW,GACxBX,KAAKQ,QAAY,MACjBR,KAAKQ,QAAQY,QAAU4I,QAAQvF,QAAQ,IAAI,GAAKzE,KAAKQ,QAAQY,OAAOqD,QAAQ,IAAI,EAAK,CACtF,OAAO,IAER,KAAO,CAEN,OAAOuF,OAER,CAED,EAEAjK,KAAKA,KAAOA,KAEZA,KAAKA,KAAOA,KAEZ,OAAOA,IAEP,CAAC"}
|
package/dist/croner.min.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function CronTZ(date,tzString){return new Date(date.toLocaleString("en-US",{timeZone:tzString}))}function CronOptions(options){if(options===void 0){options={}}options.legacyMode=options.legacyMode===void 0?false:options.legacyMode;options.paused=options.paused===void 0?false:options.paused;options.maxRuns=options.maxRuns===void 0?Infinity:options.maxRuns;options.catch=options.catch===void 0?false:options.catch;options.interval=options.interval===void 0?0:parseInt(options.interval,10);options.kill=false;if(options.startAt){options.startAt=new CronDate(options.startAt,options.timezone)}if(options.stopAt){options.stopAt=new CronDate(options.stopAt,options.timezone)}if(options.interval!==null){if(isNaN(options.interval)){throw new Error("CronOptions: Supplied value for interval is not a number")}else if(options.interval<0){throw new Error("CronOptions: Supplied value for interval can not be negative")}}return options}function CronDate(date,timezone){this.timezone=timezone;if(date&&date instanceof Date){if(!isNaN(date)){this.fromDate(date)}else{throw new TypeError("CronDate: Invalid date passed as parameter to CronDate constructor")}}else if(date===void 0){this.fromDate(new Date)}else if(date&&typeof date==="string"){this.fromString(date)}else if(date instanceof CronDate){this.fromCronDate(date)}else{throw new TypeError("CronDate: Invalid type ("+typeof date+") passed as parameter to CronDate constructor")}}CronDate.prototype.fromDate=function(date){if(this.timezone){date=CronTZ(date,this.timezone)}this.milliseconds=date.getMilliseconds();this.seconds=date.getSeconds();this.minutes=date.getMinutes();this.hours=date.getHours();this.days=date.getDate();this.months=date.getMonth();this.years=date.getFullYear()};CronDate.prototype.fromCronDate=function(date){this.timezone=date.timezone;this.milliseconds=date.milliseconds;this.seconds=date.seconds;this.minutes=date.minutes;this.hours=date.hours;this.days=date.days;this.months=date.months;this.years=date.years};CronDate.prototype.apply=function(){const newDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);this.milliseconds=newDate.getMilliseconds();this.seconds=newDate.getSeconds();this.minutes=newDate.getMinutes();this.hours=newDate.getHours();this.days=newDate.getDate();this.months=newDate.getMonth();this.years=newDate.getFullYear()};CronDate.prototype.fromString=function(str){const parsedDate=this.parseISOLocal(str);if(isNaN(parsedDate)){throw new TypeError("CronDate: Provided string value for CronDate could not be parsed as date.")}this.fromDate(parsedDate)};CronDate.prototype.increment=function(pattern,options,hasPreviousRun){if(options.interval>1&&hasPreviousRun){this.seconds+=options.interval}else{this.seconds+=1}this.milliseconds=0;this.apply();const findNext=(target,pattern,offset,override)=>{const startPos=override===void 0?this[target]+offset:0;for(let i=startPos;i<pattern[target].length;i++){let match=pattern[target][i];if(target==="days"){let targetDate=this.getDate(true);targetDate.setDate(i-offset);if(pattern.lastDayOfMonth){let targetDateCopy=new Date(targetDate);targetDateCopy.setDate(i-offset+1);if(targetDateCopy.getMonth()!==this.months){match=true}}const dowMatch=pattern.daysOfWeek[targetDate.getDay()];if(options.legacyMode){if(!pattern.starDayOfWeek&&pattern.starDayOfMonth){match=dowMatch}else if(!pattern.starDayOfWeek&&!pattern.starDayOfMonth){match=match||dowMatch}}else{match=match&&dowMatch}}if(match){this[target]=i-offset;return true}}return false},resetPrevious=offset=>{while(doing+offset>=0){findNext(toDo[doing+offset][0],pattern,toDo[doing+offset][2],0);doing--}};const toDo=[["seconds","minutes",0],["minutes","hours",0],["hours","days",0],["days","months",-1],["months","years",0]];let doing=0;while(doing<5){let currentValue=this[toDo[doing][0]];if(!findNext(toDo[doing][0],pattern,toDo[doing][2])){this[toDo[doing][1]]++;resetPrevious(0);this.apply()}else if(currentValue!==this[toDo[doing][0]]){resetPrevious(-1)}if(this.years>=4e3){return null}doing++}return this};CronDate.prototype.getDate=function(internal){const targetDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);if(internal||!this.timezone){return targetDate}else{const offset=CronTZ(targetDate,this.timezone).getTime()-targetDate.getTime();return new Date(targetDate.getTime()-offset)}};CronDate.prototype.getTime=function(internal){return this.getDate(internal).getTime()};CronDate.prototype.parseISOLocal=function(dateTimeString){const dateTimeStringSplit=dateTimeString.split(/\D/);if(dateTimeStringSplit.length<6){return NaN}const year=parseInt(dateTimeStringSplit[0],10),month=parseInt(dateTimeStringSplit[1],10),day=parseInt(dateTimeStringSplit[2],10),hour=parseInt(dateTimeStringSplit[3],10),minute=parseInt(dateTimeStringSplit[4],10),second=parseInt(dateTimeStringSplit[5],10);if(isNaN(year)||isNaN(month)||isNaN(day)||isNaN(hour)||isNaN(minute)||isNaN(second)){return NaN}else{let generatedDate;if(dateTimeString.indexOf("Z")>0){generatedDate=new Date(Date.UTC(year,month-1,day,hour,minute,second));if(year==generatedDate.getUTCFullYear()&&month==generatedDate.getUTCMonth()+1&&day==generatedDate.getUTCDate()&&hour==generatedDate.getUTCHours()&&minute==generatedDate.getUTCMinutes()&&second==generatedDate.getUTCSeconds()){return generatedDate}else{return NaN}}else{generatedDate=new Date(year,month-1,day,hour,minute,second);if(year==generatedDate.getFullYear()&&month==generatedDate.getMonth()+1&&day==generatedDate.getDate()&&hour==generatedDate.getHours()&&minute==generatedDate.getMinutes()&&second==generatedDate.getSeconds()){return generatedDate}else{return NaN}}}};function CronPattern(pattern,timezone){this.pattern=pattern;this.timezone=timezone;this.seconds=Array(60).fill(0);this.minutes=Array(60).fill(0);this.hours=Array(24).fill(0);this.days=Array(31).fill(0);this.months=Array(12).fill(0);this.daysOfWeek=Array(8).fill(0);this.lastDayOfMonth=false;this.starDayOfMonth=false;this.starDayOfWeek=false;this.parse()}CronPattern.prototype.parse=function(){if(!(typeof this.pattern==="string"||this.pattern.constructor===String)){throw new TypeError("CronPattern: Pattern has to be of type string.")}this.pattern=this.handleNicknames(this.pattern);const parts=this.pattern.trim().replace(/\s+/g," ").split(" ");if(parts.length<5||parts.length>6){throw new TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exacly five or six space separated parts required.")}if(parts.length===5){parts.unshift("0")}if(parts[3].indexOf("L")>=0){parts[3]=parts[3].replace("L","");this.lastDayOfMonth=true}if(parts[3].toUpperCase()=="*"){this.starDayOfMonth=true}parts[4]=this.replaceAlphaMonths(parts[4]);parts[5]=this.replaceAlphaDays(parts[5]);if(parts[5].toUpperCase()=="*"){this.starDayOfWeek=true}let initDate=new CronDate(new Date,this.timezone).getDate(true);parts[0]=parts[0].replace("?",initDate.getSeconds());parts[1]=parts[1].replace("?",initDate.getMinutes());parts[2]=parts[2].replace("?",initDate.getHours());parts[3]=parts[3].replace("?",initDate.getDate());parts[4]=parts[4].replace("?",initDate.getMonth()+1);parts[5]=parts[5].replace("?",initDate.getDay());this.throwAtIllegalCharacters(parts);this.partToArray("seconds",parts[0],0);this.partToArray("minutes",parts[1],0);this.partToArray("hours",parts[2],0);this.partToArray("days",parts[3],-1);this.partToArray("months",parts[4],-1);this.partToArray("daysOfWeek",parts[5],0);if(this.daysOfWeek[7]){this.daysOfWeek[0]=1}};CronPattern.prototype.partToArray=function(type,conf,valueIndexOffset){const arr=this[type];if(conf==="*"){for(let i=0;i<arr.length;i++){arr[i]=1}return}const split=conf.split(",");if(split.length>1){for(let i=0;i<split.length;i++){this.partToArray(type,split[i],valueIndexOffset)}}else if(conf.indexOf("-")!==-1&&conf.indexOf("/")!==-1){this.handleRangeWithStepping(conf,type,valueIndexOffset)}else if(conf.indexOf("-")!==-1){this.handleRange(conf,type,valueIndexOffset)}else if(conf.indexOf("/")!==-1){this.handleStepping(conf,type,valueIndexOffset)}else if(conf!==""){this.handleNumber(conf,type,valueIndexOffset)}};CronPattern.prototype.throwAtIllegalCharacters=function(parts){const reValidCron=/[^/*0-9,-]+/;for(let i=0;i<parts.length;i++){if(reValidCron.test(parts[i])){throw new TypeError("CronPattern: configuration entry "+i+" ("+parts[i]+") contains illegal characters.")}}};CronPattern.prototype.handleNumber=function(conf,type,valueIndexOffset){const i=parseInt(conf,10)+valueIndexOffset;if(isNaN(i)){throw new TypeError("CronPattern: "+type+" is not a number: '"+conf+"'")}if(i<0||i>=this[type].length){throw new TypeError("CronPattern: "+type+" value out of range: '"+conf+"'")}this[type][i]=1};CronPattern.prototype.handleRangeWithStepping=function(conf,type,valueIndexOffset){const matches=conf.match(/^(\d+)-(\d+)\/(\d+)$/);if(matches===null)throw new TypeError("CronPattern: Syntax error, illegal range with stepping: '"+conf+"'");let[,lower,upper,steps]=matches;lower=parseInt(lower,10)+valueIndexOffset;upper=parseInt(upper,10)+valueIndexOffset;steps=parseInt(steps,10);if(isNaN(lower))throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(upper))throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");if(lower<0||upper>=this[type].length)throw new TypeError("CronPattern: Value out of range: '"+conf+"'");if(lower>upper)throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'");for(let i=lower;i<=upper;i+=steps){this[type][i]=1}};CronPattern.prototype.handleRange=function(conf,type,valueIndexOffset){const split=conf.split("-");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal range: '"+conf+"'")}const lower=parseInt(split[0],10)+valueIndexOffset,upper=parseInt(split[1],10)+valueIndexOffset;if(isNaN(lower)){throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)")}else if(isNaN(upper)){throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)")}if(lower<0||upper>=this[type].length){throw new TypeError("CronPattern: Value out of range: '"+conf+"'")}if(lower>upper){throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'")}for(let i=lower;i<=upper;i++){this[type][i]=1}};CronPattern.prototype.handleStepping=function(conf,type){const split=conf.split("/");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal stepping: '"+conf+"'")}let start=0;if(split[0]!=="*"){start=parseInt(split[0],10)}const steps=parseInt(split[1],10);if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");for(let i=start;i<this[type].length;i+=steps){this[type][i]=1}};CronPattern.prototype.replaceAlphaDays=function(conf){return conf.replace(/-sun/gi,"-7").replace(/sun/gi,"0").replace(/mon/gi,"1").replace(/tue/gi,"2").replace(/wed/gi,"3").replace(/thu/gi,"4").replace(/fri/gi,"5").replace(/sat/gi,"6")};CronPattern.prototype.replaceAlphaMonths=function(conf){return conf.replace(/jan/gi,"1").replace(/feb/gi,"2").replace(/mar/gi,"3").replace(/apr/gi,"4").replace(/may/gi,"5").replace(/jun/gi,"6").replace(/jul/gi,"7").replace(/aug/gi,"8").replace(/sep/gi,"9").replace(/oct/gi,"10").replace(/nov/gi,"11").replace(/dec/gi,"12")};CronPattern.prototype.handleNicknames=function(pattern){const cleanPattern=pattern.trim().toLowerCase();if(cleanPattern==="@yearly"||cleanPattern==="@annually"){return"0 0 1 1 *"}else if(cleanPattern==="@monthly"){return"0 0 1 * *"}else if(cleanPattern==="@weekly"){return"0 0 * * 0"}else if(cleanPattern==="@daily"){return"0 0 * * *"}else if(cleanPattern==="@hourly"){return"0 * * * *"}else{return pattern}};const maxDelay=Math.pow(2,32-1)-1;function Cron(pattern,fnOrOptions1,fnOrOptions2){if(!(this instanceof Cron)){return new Cron(pattern,fnOrOptions1,fnOrOptions2)}let options,func;if(typeof fnOrOptions1==="function"){func=fnOrOptions1}else if(typeof fnOrOptions1==="object"){options=fnOrOptions1}else if(fnOrOptions1!==void 0){throw new Error("Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).")}if(typeof fnOrOptions2==="function"){func=fnOrOptions2}else if(typeof fnOrOptions2==="object"){options=fnOrOptions2}else if(fnOrOptions2!==void 0){throw new Error("Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).")}this.options=CronOptions(options);this.once=void 0;this.pattern=void 0;if(pattern&&(pattern instanceof Date||typeof pattern==="string"&&pattern.indexOf(":")>0)){this.once=new CronDate(pattern,this.options.timezone)}else{this.pattern=new CronPattern(pattern,this.options.timezone)}if(func!==void 0){this.fn=func;this.schedule()}return this}Cron.prototype.next=function(prev){const next=this._next(prev);return next?next.getDate():null};Cron.prototype.enumerate=function(n,previous){const enumeration=[];let prev=previous||this.previousrun;while(n--&&(prev=this.next(prev))){enumeration.push(prev)}return enumeration};Cron.prototype.running=function(){const msLeft=this.msToNext(this.previousrun);const running=!this.options.paused&&this.fn!==void 0;return msLeft!==null&&running};Cron.prototype.previous=function(){return this.previousrun?this.previousrun.getDate():null};Cron.prototype.msToNext=function(prev){const next=this._next(prev||this.previousrun);prev=new CronDate(prev,this.options.timezone);if(next){return next.getTime(true)-prev.getTime(true)}else{return null}};Cron.prototype.stop=function(){this.options.kill=true;if(this.currentTimeout){clearTimeout(this.currentTimeout)}};Cron.prototype.pause=function(){return(this.options.paused=true)&&!this.options.kill};Cron.prototype.resume=function(){return!(this.options.paused=false)&&!this.options.kill};Cron.prototype.schedule=function(func,partial){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(partial?partial:this.previousrun),target=this.next(partial?partial:this.previousrun);if(waitMs===null)return this;if(waitMs>maxDelay){waitMs=maxDelay}this.currentTimeout=setTimeout(()=>{let now=new Date;if(waitMs!==maxDelay&&!this.options.paused&&now.getTime()>=target){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()}else{this.schedule(undefined,now)}},waitMs);return this};Cron.prototype._next=function(prev){const hasPreviousRun=prev||this.previousrun?true:false;prev=new CronDate(prev,this.options.timezone);if(this.options.startAt&&prev&&prev.getTime(true)<this.options.startAt.getTime(true)){prev=this.options.startAt}const nextRun=this.once||new CronDate(prev,this.options.timezone).increment(this.pattern,this.options,hasPreviousRun);if(this.once&&this.once.getTime(true)<=prev.getTime(true)){return null}else if(nextRun===null||this.options.maxRuns<=0||this.options.kill||this.options.stopAt&&nextRun.getTime(true)>=this.options.stopAt.getTime(true)){return null}else{return nextRun}};Cron.Cron=Cron;export{Cron,Cron as default};
|
|
1
|
+
function CronTZ(date,tzString){return new Date(date.toLocaleString("en-US",{timeZone:tzString}))}function CronOptions(options){if(options===void 0){options={}}options.legacyMode=options.legacyMode===void 0?false:options.legacyMode;options.paused=options.paused===void 0?false:options.paused;options.maxRuns=options.maxRuns===void 0?Infinity:options.maxRuns;options.catch=options.catch===void 0?false:options.catch;options.interval=options.interval===void 0?0:parseInt(options.interval,10);options.kill=false;if(options.startAt){options.startAt=new CronDate(options.startAt,options.timezone)}if(options.stopAt){options.stopAt=new CronDate(options.stopAt,options.timezone)}if(options.interval!==null){if(isNaN(options.interval)){throw new Error("CronOptions: Supplied value for interval is not a number")}else if(options.interval<0){throw new Error("CronOptions: Supplied value for interval can not be negative")}}return options}function CronDate(date,timezone){this.timezone=timezone;if(date&&date instanceof Date){if(!isNaN(date)){this.fromDate(date)}else{throw new TypeError("CronDate: Invalid date passed as parameter to CronDate constructor")}}else if(date===void 0){this.fromDate(new Date)}else if(date&&typeof date==="string"){this.fromString(date)}else if(date instanceof CronDate){this.fromCronDate(date)}else{throw new TypeError("CronDate: Invalid type ("+typeof date+") passed as parameter to CronDate constructor")}}CronDate.prototype.fromDate=function(date){if(this.timezone){date=CronTZ(date,this.timezone)}this.milliseconds=date.getMilliseconds();this.seconds=date.getSeconds();this.minutes=date.getMinutes();this.hours=date.getHours();this.days=date.getDate();this.months=date.getMonth();this.years=date.getFullYear()};CronDate.prototype.fromCronDate=function(date){this.timezone=date.timezone;this.milliseconds=date.milliseconds;this.seconds=date.seconds;this.minutes=date.minutes;this.hours=date.hours;this.days=date.days;this.months=date.months;this.years=date.years};CronDate.prototype.apply=function(){const newDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);this.milliseconds=newDate.getMilliseconds();this.seconds=newDate.getSeconds();this.minutes=newDate.getMinutes();this.hours=newDate.getHours();this.days=newDate.getDate();this.months=newDate.getMonth();this.years=newDate.getFullYear()};CronDate.prototype.fromString=function(str){const parsedDate=this.parseISOLocal(str);if(isNaN(parsedDate)){throw new TypeError("CronDate: Provided string value for CronDate could not be parsed as date.")}this.fromDate(parsedDate)};CronDate.prototype.increment=function(pattern,options,hasPreviousRun){if(options.interval>1&&hasPreviousRun){this.seconds+=options.interval}else{this.seconds+=1}this.milliseconds=0;this.apply();const findNext=(target,pattern,offset,override)=>{const startPos=override===void 0?this[target]+offset:0;for(let i=startPos;i<pattern[target].length;i++){let match=pattern[target][i];if(target==="days"){const targetDate=this.getDate(true);targetDate.setDate(i-offset);if(pattern.lastDayOfMonth){const targetDateCopy=new Date(targetDate);targetDateCopy.setDate(i-offset+1);if(targetDateCopy.getMonth()!==this.months){match=true}}const dowMatch=pattern.daysOfWeek[targetDate.getDay()];if(options.legacyMode){if(!pattern.starDayOfWeek&&pattern.starDayOfMonth){match=dowMatch}else if(!pattern.starDayOfWeek&&!pattern.starDayOfMonth){match=match||dowMatch}}else{match=match&&dowMatch}}if(match){this[target]=i-offset;return true}}return false},resetPrevious=offset=>{while(doing+offset>=0){findNext(toDo[doing+offset][0],pattern,toDo[doing+offset][2],0);doing--}};const toDo=[["seconds","minutes",0],["minutes","hours",0],["hours","days",0],["days","months",-1],["months","years",0]];let doing=0;while(doing<5){const currentValue=this[toDo[doing][0]];if(!findNext(toDo[doing][0],pattern,toDo[doing][2])){this[toDo[doing][1]]++;resetPrevious(0);this.apply()}else if(currentValue!==this[toDo[doing][0]]){resetPrevious(-1)}if(this.years>=4e3){return null}doing++}return this};CronDate.prototype.getDate=function(internal){const targetDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);if(internal||!this.timezone){return targetDate}else{const offset=CronTZ(targetDate,this.timezone).getTime()-targetDate.getTime();return new Date(targetDate.getTime()-offset)}};CronDate.prototype.getTime=function(internal){return this.getDate(internal).getTime()};CronDate.prototype.parseISOLocal=function(dateTimeString){const dateTimeStringSplit=dateTimeString.split(/\D/);if(dateTimeStringSplit.length<6){return NaN}const year=parseInt(dateTimeStringSplit[0],10),month=parseInt(dateTimeStringSplit[1],10),day=parseInt(dateTimeStringSplit[2],10),hour=parseInt(dateTimeStringSplit[3],10),minute=parseInt(dateTimeStringSplit[4],10),second=parseInt(dateTimeStringSplit[5],10);if(isNaN(year)||isNaN(month)||isNaN(day)||isNaN(hour)||isNaN(minute)||isNaN(second)){return NaN}else{let generatedDate;if(dateTimeString.indexOf("Z")>0){generatedDate=new Date(Date.UTC(year,month-1,day,hour,minute,second));if(year==generatedDate.getUTCFullYear()&&month==generatedDate.getUTCMonth()+1&&day==generatedDate.getUTCDate()&&hour==generatedDate.getUTCHours()&&minute==generatedDate.getUTCMinutes()&&second==generatedDate.getUTCSeconds()){return generatedDate}else{return NaN}}else{generatedDate=new Date(year,month-1,day,hour,minute,second);if(year==generatedDate.getFullYear()&&month==generatedDate.getMonth()+1&&day==generatedDate.getDate()&&hour==generatedDate.getHours()&&minute==generatedDate.getMinutes()&&second==generatedDate.getSeconds()){return generatedDate}else{return NaN}}}};function CronPattern(pattern,timezone){this.pattern=pattern;this.timezone=timezone;this.seconds=Array(60).fill(0);this.minutes=Array(60).fill(0);this.hours=Array(24).fill(0);this.days=Array(31).fill(0);this.months=Array(12).fill(0);this.daysOfWeek=Array(8).fill(0);this.lastDayOfMonth=false;this.starDayOfMonth=false;this.starDayOfWeek=false;this.parse()}CronPattern.prototype.parse=function(){if(!(typeof this.pattern==="string"||this.pattern.constructor===String)){throw new TypeError("CronPattern: Pattern has to be of type string.")}this.pattern=this.handleNicknames(this.pattern);const parts=this.pattern.trim().replace(/\s+/g," ").split(" ");if(parts.length<5||parts.length>6){throw new TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exacly five or six space separated parts required.")}if(parts.length===5){parts.unshift("0")}if(parts[3].indexOf("L")>=0){parts[3]=parts[3].replace("L","");this.lastDayOfMonth=true}if(parts[3].toUpperCase()=="*"){this.starDayOfMonth=true}parts[4]=this.replaceAlphaMonths(parts[4]);parts[5]=this.replaceAlphaDays(parts[5]);if(parts[5].toUpperCase()=="*"){this.starDayOfWeek=true}const initDate=new CronDate(new Date,this.timezone).getDate(true);parts[0]=parts[0].replace("?",initDate.getSeconds());parts[1]=parts[1].replace("?",initDate.getMinutes());parts[2]=parts[2].replace("?",initDate.getHours());parts[3]=parts[3].replace("?",initDate.getDate());parts[4]=parts[4].replace("?",initDate.getMonth()+1);parts[5]=parts[5].replace("?",initDate.getDay());this.throwAtIllegalCharacters(parts);this.partToArray("seconds",parts[0],0);this.partToArray("minutes",parts[1],0);this.partToArray("hours",parts[2],0);this.partToArray("days",parts[3],-1);this.partToArray("months",parts[4],-1);this.partToArray("daysOfWeek",parts[5],0);if(this.daysOfWeek[7]){this.daysOfWeek[0]=1}};CronPattern.prototype.partToArray=function(type,conf,valueIndexOffset){const arr=this[type];if(conf==="*"){for(let i=0;i<arr.length;i++){arr[i]=1}return}const split=conf.split(",");if(split.length>1){for(let i=0;i<split.length;i++){this.partToArray(type,split[i],valueIndexOffset)}}else if(conf.indexOf("-")!==-1&&conf.indexOf("/")!==-1){this.handleRangeWithStepping(conf,type,valueIndexOffset)}else if(conf.indexOf("-")!==-1){this.handleRange(conf,type,valueIndexOffset)}else if(conf.indexOf("/")!==-1){this.handleStepping(conf,type,valueIndexOffset)}else if(conf!==""){this.handleNumber(conf,type,valueIndexOffset)}};CronPattern.prototype.throwAtIllegalCharacters=function(parts){const reValidCron=/[^/*0-9,-]+/;for(let i=0;i<parts.length;i++){if(reValidCron.test(parts[i])){throw new TypeError("CronPattern: configuration entry "+i+" ("+parts[i]+") contains illegal characters.")}}};CronPattern.prototype.handleNumber=function(conf,type,valueIndexOffset){const i=parseInt(conf,10)+valueIndexOffset;if(isNaN(i)){throw new TypeError("CronPattern: "+type+" is not a number: '"+conf+"'")}if(i<0||i>=this[type].length){throw new TypeError("CronPattern: "+type+" value out of range: '"+conf+"'")}this[type][i]=1};CronPattern.prototype.handleRangeWithStepping=function(conf,type,valueIndexOffset){const matches=conf.match(/^(\d+)-(\d+)\/(\d+)$/);if(matches===null)throw new TypeError("CronPattern: Syntax error, illegal range with stepping: '"+conf+"'");let[,lower,upper,steps]=matches;lower=parseInt(lower,10)+valueIndexOffset;upper=parseInt(upper,10)+valueIndexOffset;steps=parseInt(steps,10);if(isNaN(lower))throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(upper))throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");if(lower<0||upper>=this[type].length)throw new TypeError("CronPattern: Value out of range: '"+conf+"'");if(lower>upper)throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'");for(let i=lower;i<=upper;i+=steps){this[type][i]=1}};CronPattern.prototype.handleRange=function(conf,type,valueIndexOffset){const split=conf.split("-");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal range: '"+conf+"'")}const lower=parseInt(split[0],10)+valueIndexOffset,upper=parseInt(split[1],10)+valueIndexOffset;if(isNaN(lower)){throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)")}else if(isNaN(upper)){throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)")}if(lower<0||upper>=this[type].length){throw new TypeError("CronPattern: Value out of range: '"+conf+"'")}if(lower>upper){throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'")}for(let i=lower;i<=upper;i++){this[type][i]=1}};CronPattern.prototype.handleStepping=function(conf,type){const split=conf.split("/");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal stepping: '"+conf+"'")}let start=0;if(split[0]!=="*"){start=parseInt(split[0],10)}const steps=parseInt(split[1],10);if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");for(let i=start;i<this[type].length;i+=steps){this[type][i]=1}};CronPattern.prototype.replaceAlphaDays=function(conf){return conf.replace(/-sun/gi,"-7").replace(/sun/gi,"0").replace(/mon/gi,"1").replace(/tue/gi,"2").replace(/wed/gi,"3").replace(/thu/gi,"4").replace(/fri/gi,"5").replace(/sat/gi,"6")};CronPattern.prototype.replaceAlphaMonths=function(conf){return conf.replace(/jan/gi,"1").replace(/feb/gi,"2").replace(/mar/gi,"3").replace(/apr/gi,"4").replace(/may/gi,"5").replace(/jun/gi,"6").replace(/jul/gi,"7").replace(/aug/gi,"8").replace(/sep/gi,"9").replace(/oct/gi,"10").replace(/nov/gi,"11").replace(/dec/gi,"12")};CronPattern.prototype.handleNicknames=function(pattern){const cleanPattern=pattern.trim().toLowerCase();if(cleanPattern==="@yearly"||cleanPattern==="@annually"){return"0 0 1 1 *"}else if(cleanPattern==="@monthly"){return"0 0 1 * *"}else if(cleanPattern==="@weekly"){return"0 0 * * 0"}else if(cleanPattern==="@daily"){return"0 0 * * *"}else if(cleanPattern==="@hourly"){return"0 * * * *"}else{return pattern}};const maxDelay=Math.pow(2,32-1)-1;function Cron(pattern,fnOrOptions1,fnOrOptions2){if(!(this instanceof Cron)){return new Cron(pattern,fnOrOptions1,fnOrOptions2)}let options,func;if(typeof fnOrOptions1==="function"){func=fnOrOptions1}else if(typeof fnOrOptions1==="object"){options=fnOrOptions1}else if(fnOrOptions1!==void 0){throw new Error("Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).")}if(typeof fnOrOptions2==="function"){func=fnOrOptions2}else if(typeof fnOrOptions2==="object"){options=fnOrOptions2}else if(fnOrOptions2!==void 0){throw new Error("Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).")}this.options=CronOptions(options);this.once=void 0;this.pattern=void 0;if(pattern&&(pattern instanceof Date||typeof pattern==="string"&&pattern.indexOf(":")>0)){this.once=new CronDate(pattern,this.options.timezone)}else{this.pattern=new CronPattern(pattern,this.options.timezone)}if(func!==void 0){this.fn=func;this.schedule()}return this}Cron.prototype.next=function(prev){const next=this._next(prev);return next?next.getDate():null};Cron.prototype.enumerate=function(n,previous){const enumeration=[];let prev=previous||this.previousrun;while(n--&&(prev=this.next(prev))){enumeration.push(prev)}return enumeration};Cron.prototype.running=function(){const msLeft=this.msToNext(this.previousrun);const running=!this.options.paused&&this.fn!==void 0;return msLeft!==null&&running};Cron.prototype.previous=function(){return this.previousrun?this.previousrun.getDate():null};Cron.prototype.msToNext=function(prev){const next=this._next(prev||this.previousrun);prev=new CronDate(prev,this.options.timezone);if(next){return next.getTime(true)-prev.getTime(true)}else{return null}};Cron.prototype.stop=function(){this.options.kill=true;if(this.currentTimeout){clearTimeout(this.currentTimeout)}};Cron.prototype.pause=function(){return(this.options.paused=true)&&!this.options.kill};Cron.prototype.resume=function(){return!(this.options.paused=false)&&!this.options.kill};Cron.prototype.schedule=function(func,partial){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(partial?partial:this.previousrun);const target=this.next(partial?partial:this.previousrun);if(waitMs===null)return this;if(waitMs>maxDelay){waitMs=maxDelay}this.currentTimeout=setTimeout(()=>{const now=new Date;if(waitMs!==maxDelay&&!this.options.paused&&now.getTime()>=target){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()}else{this.schedule(undefined,now)}},waitMs);return this};Cron.prototype._next=function(prev){const hasPreviousRun=prev||this.previousrun?true:false;prev=new CronDate(prev,this.options.timezone);if(this.options.startAt&&prev&&prev.getTime(true)<this.options.startAt.getTime(true)){prev=this.options.startAt}const nextRun=this.once||new CronDate(prev,this.options.timezone).increment(this.pattern,this.options,hasPreviousRun);if(this.once&&this.once.getTime(true)<=prev.getTime(true)){return null}else if(nextRun===null||this.options.maxRuns<=0||this.options.kill||this.options.stopAt&&nextRun.getTime(true)>=this.options.stopAt.getTime(true)){return null}else{return nextRun}};Cron.Cron=Cron;export{Cron,Cron as default};
|
package/dist/croner.min.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["dist/croner.mjs"],"names":["CronTZ","date","tzString","Date","toLocaleString","timeZone","CronOptions","options","legacyMode","paused","maxRuns","Infinity","catch","interval","parseInt","kill","startAt","CronDate","timezone","stopAt","isNaN","Error","this","fromDate","TypeError","fromString","fromCronDate","prototype","milliseconds","getMilliseconds","seconds","getSeconds","minutes","getMinutes","hours","getHours","days","getDate","months","getMonth","years","getFullYear","apply","newDate","str","parsedDate","parseISOLocal","increment","pattern","hasPreviousRun","findNext","target","offset","override","startPos","let","i","length","match","targetDate","setDate","lastDayOfMonth","targetDateCopy","dowMatch","daysOfWeek","getDay","starDayOfWeek","starDayOfMonth","resetPrevious","doing","toDo","currentValue","internal","getTime","dateTimeString","dateTimeStringSplit","split","NaN","year","month","day","hour","minute","second","generatedDate","indexOf","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","CronPattern","Array","fill","parse","constructor","String","handleNicknames","parts","trim","replace","unshift","toUpperCase","replaceAlphaMonths","replaceAlphaDays","initDate","throwAtIllegalCharacters","partToArray","type","conf","valueIndexOffset","arr","handleRangeWithStepping","handleRange","handleStepping","handleNumber","reValidCron","test","matches","lower","upper","steps","start","cleanPattern","toLowerCase","maxDelay","Math","pow","Cron","fnOrOptions1","fnOrOptions2","func","once","fn","schedule","next","prev","_next","enumerate","n","previous","enumeration","previousrun","push","running","msLeft","msToNext","stop","currentTimeout","clearTimeout","pause","resume","partial","waitMs","setTimeout","now","context","_e","undefined","nextRun"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["dist/croner.mjs"],"names":["CronTZ","date","tzString","Date","toLocaleString","timeZone","CronOptions","options","legacyMode","paused","maxRuns","Infinity","catch","interval","parseInt","kill","startAt","CronDate","timezone","stopAt","isNaN","Error","this","fromDate","TypeError","fromString","fromCronDate","prototype","milliseconds","getMilliseconds","seconds","getSeconds","minutes","getMinutes","hours","getHours","days","getDate","months","getMonth","years","getFullYear","apply","newDate","str","parsedDate","parseISOLocal","increment","pattern","hasPreviousRun","findNext","target","offset","override","startPos","let","i","length","match","targetDate","setDate","lastDayOfMonth","targetDateCopy","dowMatch","daysOfWeek","getDay","starDayOfWeek","starDayOfMonth","resetPrevious","doing","toDo","currentValue","internal","getTime","dateTimeString","dateTimeStringSplit","split","NaN","year","month","day","hour","minute","second","generatedDate","indexOf","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","CronPattern","Array","fill","parse","constructor","String","handleNicknames","parts","trim","replace","unshift","toUpperCase","replaceAlphaMonths","replaceAlphaDays","initDate","throwAtIllegalCharacters","partToArray","type","conf","valueIndexOffset","arr","handleRangeWithStepping","handleRange","handleStepping","handleNumber","reValidCron","test","matches","lower","upper","steps","start","cleanPattern","toLowerCase","maxDelay","Math","pow","Cron","fnOrOptions1","fnOrOptions2","func","once","fn","schedule","next","prev","_next","enumerate","n","previous","enumeration","previousrun","push","running","msLeft","msToNext","stop","currentTimeout","clearTimeout","pause","resume","partial","waitMs","setTimeout","now","context","_e","undefined","nextRun"],"mappings":"AAgBA,SAASA,OAAOC,KAAMC,UACrB,OAAO,IAAIC,KAAKF,KAAKG,eAAe,QAAS,CAACC,SAAUH,QAAQ,CAAC,CAAC,CACnE,CAuBA,SAASI,YAAYC,SAGpB,GAAIA,UAAY,KAAK,EAAG,CACvBA,QAAU,EACX,CAGAA,QAAQC,WAAcD,QAAQC,aAAe,KAAK,EAAK,MAAQD,QAAQC,WACvED,QAAQE,OAAUF,QAAQE,SAAW,KAAK,EAAK,MAAQF,QAAQE,OAC/DF,QAAQG,QAAWH,QAAQG,UAAY,KAAK,EAAKC,SAAWJ,QAAQG,QACpEH,QAAQK,MAASL,QAAQK,QAAU,KAAK,EAAK,MAAQL,QAAQK,MAC7DL,QAAQM,SAAYN,QAAQM,WAAa,KAAK,EAAK,EAAIC,SAASP,QAAQM,SAAU,EAAE,EACpFN,QAAQQ,KAAO,MAGf,GAAIR,QAAQS,QAAU,CACrBT,QAAQS,QAAU,IAAIC,SAASV,QAAQS,QAAST,QAAQW,QAAQ,CACjE,CACA,GAAIX,QAAQY,OAAS,CACpBZ,QAAQY,OAAS,IAAIF,SAASV,QAAQY,OAAQZ,QAAQW,QAAQ,CAC/D,CAGA,GAAIX,QAAQM,WAAa,KAAM,CAC9B,GAAIO,MAAMb,QAAQM,QAAQ,EAAG,CAC5B,MAAM,IAAIQ,MAAM,0DAA0D,CAC3E,MAAO,GAAId,QAAQM,SAAW,EAAG,CAChC,MAAM,IAAIQ,MAAM,8DAA8D,CAC/E,CACD,CAEA,OAAOd,OAER,CASA,SAASU,SAAUhB,KAAMiB,UAExBI,KAAKJ,SAAWA,SAEhB,GAAIjB,MAAQA,gBAAgBE,KAAM,CACjC,GAAI,CAACiB,MAAMnB,IAAI,EAAG,CACjBqB,KAAKC,SAAStB,IAAI,CACnB,KAAO,CACN,MAAM,IAAIuB,UAAU,oEAAoE,CACzF,CACD,MAAO,GAAIvB,OAAS,KAAK,EAAG,CAC3BqB,KAAKC,SAAS,IAAIpB,IAAM,CACzB,MAAO,GAAIF,MAAQ,OAAOA,OAAS,SAAU,CAC5CqB,KAAKG,WAAWxB,IAAI,CACrB,MAAO,GAAIA,gBAAgBgB,SAAU,CACpCK,KAAKI,aAAazB,IAAI,CACvB,KAAO,CACN,MAAM,IAAIuB,UAAU,2BAA6B,OAAOvB,KAAO,+CAA+C,CAC/G,CAED,CAQAgB,SAASU,UAAUJ,SAAW,SAAUtB,MAEvC,GAAIqB,KAAKJ,SAAU,CAClBjB,KAAOD,OAAOC,KAAMqB,KAAKJ,QAAQ,CAClC,CAEAI,KAAKM,aAAe3B,KAAK4B,gBAAgB,EACzCP,KAAKQ,QAAU7B,KAAK8B,WAAW,EAC/BT,KAAKU,QAAU/B,KAAKgC,WAAW,EAC/BX,KAAKY,MAAQjC,KAAKkC,SAAS,EAC3Bb,KAAKc,KAAOnC,KAAKoC,QAAQ,EACzBf,KAAKgB,OAAUrC,KAAKsC,SAAS,EAC7BjB,KAAKkB,MAAQvC,KAAKwC,YAAY,CAE/B,EAQAxB,SAASU,UAAUD,aAAe,SAAUzB,MAC3CqB,KAAKJ,SAAWjB,KAAKiB,SACrBI,KAAKM,aAAe3B,KAAK2B,aACzBN,KAAKQ,QAAU7B,KAAK6B,QACpBR,KAAKU,QAAU/B,KAAK+B,QACpBV,KAAKY,MAAQjC,KAAKiC,MAClBZ,KAAKc,KAAOnC,KAAKmC,KACjBd,KAAKgB,OAASrC,KAAKqC,OACnBhB,KAAKkB,MAAQvC,KAAKuC,KACnB,EAQAvB,SAASU,UAAUe,MAAQ,WAC1B,MAAMC,QAAU,IAAIxC,KAAKmB,KAAKkB,MAAOlB,KAAKgB,OAAQhB,KAAKc,KAAMd,KAAKY,MAAOZ,KAAKU,QAASV,KAAKQ,QAASR,KAAKM,YAAY,EAEtHN,KAAKM,aAAee,QAAQd,gBAAgB,EAC5CP,KAAKQ,QAAUa,QAAQZ,WAAW,EAClCT,KAAKU,QAAUW,QAAQV,WAAW,EAClCX,KAAKY,MAAQS,QAAQR,SAAS,EAC9Bb,KAAKc,KAAOO,QAAQN,QAAQ,EAC5Bf,KAAKgB,OAAUK,QAAQJ,SAAS,EAChCjB,KAAKkB,MAAQG,QAAQF,YAAY,CAClC,EAQAxB,SAASU,UAAUF,WAAa,SAAUmB,KAEzC,MAAMC,WAAavB,KAAKwB,cAAcF,GAAG,EAGzC,GAAIxB,MAAMyB,UAAU,EAAI,CACvB,MAAM,IAAIrB,UAAU,2EAA2E,CAChG,CAEAF,KAAKC,SAASsB,UAAU,CACzB,EAWA5B,SAASU,UAAUoB,UAAY,SAAUC,QAASzC,QAAS0C,gBAG1D,GAAI1C,QAAQM,SAAW,GAAKoC,eAAgB,CAC3C3B,KAAKQ,SAAWvB,QAAQM,QACzB,KAAO,CACNS,KAAKQ,SAAW,CACjB,CACAR,KAAKM,aAAe,EACpBN,KAAKoB,MAAM,EAEX,MAaCQ,SAAW,CAACC,OAAQH,QAASI,OAAQC,YAEpC,MAAMC,SAAYD,WAAa,KAAK,EAAK/B,KAAK6B,QAAUC,OAAS,EAEjE,IAAKG,IAAIC,EAAIF,SAAUE,EAAIR,QAAQG,QAAQM,OAAQD,CAAC,GAAK,CAGxDD,IAAIG,MAAQV,QAAQG,QAAQK,GAG5B,GAAIL,SAAW,OAAQ,CAGtB,MAAMQ,WAAarC,KAAKe,QAAQ,IAAI,EACpCsB,WAAWC,QAAQJ,EAAEJ,MAAM,EAG3B,GAAIJ,QAAQa,eAAgB,CAI3B,MAAMC,eAAiB,IAAI3D,KAAKwD,UAAU,EAC1CG,eAAeF,QAAQJ,EAAEJ,OAAO,CAAC,EAGjC,GAAIU,eAAevB,SAAS,IAAMjB,KAAKgB,OAAQ,CAC9CoB,MAAQ,IACT,CAED,CAIA,MAAMK,SAAWf,QAAQgB,WAAWL,WAAWM,OAAO,GACtD,GAAI1D,QAAQC,WAAY,CACvB,GAAI,CAACwC,QAAQkB,eAAiBlB,QAAQmB,eAAgB,CACrDT,MAAQK,QACT,MAAO,GAAI,CAACf,QAAQkB,eAAiB,CAAClB,QAAQmB,eAAgB,CAC7DT,MAAQA,OAASK,QAClB,CACD,KAAO,CAENL,MAAQA,OAASK,QAClB,CAED,CAEA,GAAIL,MAAO,CACVpC,KAAK6B,QAAUK,EAAEJ,OACjB,OAAO,IACR,CAED,CACA,OAAO,KAER,EAEAgB,cAAgB,SAKf,MAAMC,MAAQjB,QAAU,EAAG,CAO1BF,SAASoB,KAAKD,MAAQjB,QAAQ,GAAIJ,QAASsB,KAAKD,MAAQjB,QAAQ,GAAI,CAAC,EAGrEiB,KAAK,EACN,CACD,EASD,MAAMC,KAAO,CACZ,CAAC,UAAW,UAAW,GACvB,CAAC,UAAW,QAAS,GACrB,CAAC,QAAS,OAAQ,GAClB,CAAC,OAAQ,SAAU,CAAC,GACpB,CAAC,SAAU,QAAS,IAKrBf,IAAIc,MAAQ,EACZ,MAAMA,MAAQ,EAAG,CAOhB,MAAME,aAAejD,KAAKgD,KAAKD,OAAO,IAGtC,GAAG,CAACnB,SAASoB,KAAKD,OAAO,GAAIrB,QAASsB,KAAKD,OAAO,EAAE,EAAG,CAEtD/C,KAAKgD,KAAKD,OAAO,GAAG,GAGpBD,cAAc,CAAC,EAGf9C,KAAKoB,MAAM,CAGZ,MAAO,GAAI6B,eAAiBjD,KAAKgD,KAAKD,OAAO,IAAK,CAGjDD,cAAc,CAAC,CAAC,CAEjB,CAGA,GAAI9C,KAAKkB,OAAS,IAAM,CACvB,OAAO,IACR,CAGA6B,KAAK,EACN,CAGA,OAAO/C,IAER,EASAL,SAASU,UAAUU,QAAU,SAAUmC,UACtC,MAAMb,WAAa,IAAIxD,KAAKmB,KAAKkB,MAAOlB,KAAKgB,OAAQhB,KAAKc,KAAMd,KAAKY,MAAOZ,KAAKU,QAASV,KAAKQ,QAASR,KAAKM,YAAY,EACzH,GAAI4C,UAAY,CAAClD,KAAKJ,SAAU,CAC/B,OAAOyC,UACR,KAAO,CACN,MAAMP,OAASpD,OAAO2D,WAAYrC,KAAKJ,QAAQ,EAAEuD,QAAQ,EAAEd,WAAWc,QAAQ,EAC9E,OAAO,IAAItE,KAAKwD,WAAWc,QAAQ,EAAErB,MAAM,CAC5C,CACD,EASAnC,SAASU,UAAU8C,QAAU,SAAUD,UACtC,OAAOlD,KAAKe,QAAQmC,QAAQ,EAAEC,QAAQ,CACvC,EAUAxD,SAASU,UAAUmB,cAAgB,SAAU4B,gBAC5C,MAAMC,oBAAsBD,eAAeE,MAAM,IAAI,EAGrD,GAAID,oBAAoBlB,OAAS,EAAG,CACnC,OAAOoB,GACR,CAEA,MACCC,KAAOhE,SAAS6D,oBAAoB,GAAI,EAAE,EAC1CI,MAAQjE,SAAS6D,oBAAoB,GAAI,EAAE,EAC3CK,IAAMlE,SAAS6D,oBAAoB,GAAI,EAAE,EACzCM,KAAOnE,SAAS6D,oBAAoB,GAAI,EAAE,EAC1CO,OAASpE,SAAS6D,oBAAoB,GAAI,EAAE,EAC5CQ,OAASrE,SAAS6D,oBAAoB,GAAI,EAAE,EAG7C,GAAIvD,MAAM0D,IAAI,GAAK1D,MAAM2D,KAAK,GAAK3D,MAAM4D,GAAG,GAAK5D,MAAM6D,IAAI,GAAK7D,MAAM8D,MAAM,GAAK9D,MAAM+D,MAAM,EAAI,CAChG,OAAON,GACR,KAAO,CACNtB,IAAI6B,cAGJ,GAAKV,eAAeW,QAAQ,GAAG,EAAI,EAAI,CAGtCD,cAAgB,IAAIjF,KAAKA,KAAKmF,IAAIR,KAAMC,MAAM,EAAGC,IAAKC,KAAMC,OAAQC,MAAM,CAAC,EAG3E,GAAIL,MAAQM,cAAcG,eAAe,GACrCR,OAASK,cAAcI,YAAY,EAAE,GACrCR,KAAOI,cAAcK,WAAW,GAChCR,MAAQG,cAAcM,YAAY,GAClCR,QAAUE,cAAcO,cAAc,GACtCR,QAAUC,cAAcQ,cAAc,EAAG,CAC5C,OAAOR,aACR,KAAO,CACN,OAAOP,GACR,CACD,KAAO,CAGNO,cAAgB,IAAIjF,KAAK2E,KAAMC,MAAM,EAAGC,IAAKC,KAAMC,OAAQC,MAAM,EAGjE,GAAIL,MAAQM,cAAc3C,YAAY,GAClCsC,OAASK,cAAc7C,SAAS,EAAE,GAClCyC,KAAOI,cAAc/C,QAAQ,GAC7B4C,MAAQG,cAAcjD,SAAS,GAC/B+C,QAAUE,cAAcnD,WAAW,GACnCkD,QAAUC,cAAcrD,WAAW,EAAG,CACzC,OAAOqD,aACR,KAAO,CACN,OAAOP,GACR,CACD,CACD,CACD,EAsBA,SAASgB,YAAa7C,QAAS9B,UAE9BI,KAAK0B,QAAYA,QACjB1B,KAAKJ,SAAYA,SAEjBI,KAAKQ,QAAiBgE,MAAM,EAAE,EAAEC,KAAK,CAAC,EACtCzE,KAAKU,QAAiB8D,MAAM,EAAE,EAAEC,KAAK,CAAC,EACtCzE,KAAKY,MAAiB4D,MAAM,EAAE,EAAEC,KAAK,CAAC,EACtCzE,KAAKc,KAAiB0D,MAAM,EAAE,EAAEC,KAAK,CAAC,EACtCzE,KAAKgB,OAAiBwD,MAAM,EAAE,EAAEC,KAAK,CAAC,EACtCzE,KAAK0C,WAAiB8B,MAAM,CAAC,EAAEC,KAAK,CAAC,EAErCzE,KAAKuC,eAAiB,MACtBvC,KAAK6C,eAAiB,MACtB7C,KAAK4C,cAAiB,MAEtB5C,KAAK0E,MAAM,CAEZ,CAMAH,YAAYlE,UAAUqE,MAAQ,WAG7B,GAAI,EAAE,OAAO1E,KAAK0B,UAAY,UAAY1B,KAAK0B,QAAQiD,cAAgBC,QAAU,CAChF,MAAM,IAAI1E,UAAU,gDAAgD,CACrE,CAGAF,KAAK0B,QAAU1B,KAAK6E,gBAAgB7E,KAAK0B,OAAO,EAGhD,MAAMoD,MAAQ9E,KAAK0B,QAAQqD,KAAK,EAAEC,QAAQ,OAAQ,GAAG,EAAE1B,MAAM,GAAG,EAGhE,GAAIwB,MAAM3C,OAAS,GAAK2C,MAAM3C,OAAS,EAAI,CAC1C,MAAM,IAAIjC,UAAU,+CAAiDF,KAAK0B,QAAU,wDAAwD,CAC7I,CAGA,GAAIoD,MAAM3C,SAAW,EAAG,CACvB2C,MAAMG,QAAQ,GAAG,CAClB,CAIA,GAAGH,MAAM,GAAGf,QAAQ,GAAG,GAAK,EAAG,CAC9Be,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAI,EAAE,EAClChF,KAAKuC,eAAiB,IACvB,CAGA,GAAGuC,MAAM,GAAGI,YAAY,GAAK,IAAK,CACjClF,KAAK6C,eAAiB,IACvB,CAGAiC,MAAM,GAAK9E,KAAKmF,mBAAmBL,MAAM,EAAE,EAC3CA,MAAM,GAAK9E,KAAKoF,iBAAiBN,MAAM,EAAE,EAGzC,GAAGA,MAAM,GAAGI,YAAY,GAAK,IAAK,CACjClF,KAAK4C,cAAgB,IACtB,CAGA,MAAMyC,SAAW,IAAI1F,SAAS,IAAId,KAAOmB,KAAKJ,QAAQ,EAAEmB,QAAQ,IAAI,EAEpE+D,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKK,SAAS5E,WAAW,CAAC,EACtDqE,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKK,SAAS1E,WAAW,CAAC,EACtDmE,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKK,SAASxE,SAAS,CAAC,EACpDiE,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKK,SAAStE,QAAQ,CAAC,EACnD+D,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKK,SAASpE,SAAS,EAAE,CAAC,EACtD6D,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKK,SAAS1C,OAAO,CAAC,EAGlD3C,KAAKsF,yBAAyBR,KAAK,EAGnC9E,KAAKuF,YAAY,UAAcT,MAAM,GAAI,CAAC,EAC1C9E,KAAKuF,YAAY,UAAcT,MAAM,GAAI,CAAC,EAC1C9E,KAAKuF,YAAY,QAAcT,MAAM,GAAI,CAAC,EAC1C9E,KAAKuF,YAAY,OAAcT,MAAM,GAAI,CAAC,CAAC,EAC3C9E,KAAKuF,YAAY,SAAcT,MAAM,GAAI,CAAC,CAAC,EAC3C9E,KAAKuF,YAAY,aAAcT,MAAM,GAAI,CAAC,EAG1C,GAAI9E,KAAK0C,WAAW,GAAK,CACxB1C,KAAK0C,WAAW,GAAK,CACtB,CAED,EAWA6B,YAAYlE,UAAUkF,YAAc,SAAUC,KAAMC,KAAMC,kBAEzD,MAAMC,IAAM3F,KAAKwF,MAGjB,GAAIC,OAAS,IAAM,CAClB,IAAKxD,IAAIC,EAAI,EAAGA,EAAIyD,IAAIxD,OAAQD,CAAC,GAAK,CACrCyD,IAAIzD,GAAK,CACV,CACA,MACD,CAGA,MAAMoB,MAAQmC,KAAKnC,MAAM,GAAG,EAC5B,GAAIA,MAAMnB,OAAS,EAAI,CACtB,IAAKF,IAAIC,EAAI,EAAGA,EAAIoB,MAAMnB,OAAQD,CAAC,GAAK,CACvClC,KAAKuF,YAAYC,KAAMlC,MAAMpB,GAAIwD,gBAAgB,CAClD,CAGD,MAAO,GAAID,KAAK1B,QAAQ,GAAG,IAAM,CAAC,GAAK0B,KAAK1B,QAAQ,GAAG,IAAM,CAAC,EAAI,CACjE/D,KAAK4F,wBAAwBH,KAAMD,KAAME,gBAAgB,CAG1D,MAAO,GAAID,KAAK1B,QAAQ,GAAG,IAAM,CAAC,EAAI,CACrC/D,KAAK6F,YAAYJ,KAAMD,KAAME,gBAAgB,CAG9C,MAAO,GAAID,KAAK1B,QAAQ,GAAG,IAAM,CAAC,EAAI,CACrC/D,KAAK8F,eAAeL,KAAMD,KAAME,gBAAgB,CAGjD,MAAO,GAAID,OAAS,GAAK,CACxBzF,KAAK+F,aAAaN,KAAMD,KAAME,gBAAgB,CAC/C,CAED,EAQAnB,YAAYlE,UAAUiF,yBAA2B,SAAUR,OAC1D,MAAMkB,YAAc,cACpB,IAAI/D,IAAIC,EAAI,EAAGA,EAAI4C,MAAM3C,OAAQD,CAAC,GAAI,CACrC,GAAI8D,YAAYC,KAAKnB,MAAM5C,EAAE,EAAI,CAChC,MAAM,IAAIhC,UAAU,oCAAsCgC,EAAI,KAAO4C,MAAM5C,GAAK,gCAAgC,CACjH,CACD,CACD,EAUAqC,YAAYlE,UAAU0F,aAAe,SAAUN,KAAMD,KAAME,kBAC1D,MAAMxD,EAAK1C,SAASiG,KAAM,EAAE,EAAIC,iBAEhC,GAAI5F,MAAMoC,CAAC,EAAI,CACd,MAAM,IAAIhC,UAAU,gBAAkBsF,KAAO,sBAAwBC,KAAO,GAAG,CAChF,CAEA,GAAIvD,EAAI,GAAKA,GAAKlC,KAAKwF,MAAMrD,OAAS,CACrC,MAAM,IAAIjC,UAAU,gBAAkBsF,KAAO,yBAA2BC,KAAO,GAAG,CACnF,CAEAzF,KAAKwF,MAAMtD,GAAK,CACjB,EAUAqC,YAAYlE,UAAUuF,wBAA0B,SAAUH,KAAMD,KAAME,kBACrE,MAAMQ,QAAUT,KAAKrD,MAAM,sBAAsB,EAEjD,GAAI8D,UAAY,KAAO,MAAM,IAAIhG,UAAU,4DAA8DuF,KAAO,GAAG,EAEnHxD,GAAI,CAAC,CAAEkE,MAAOC,MAAOC,OAASH,QAC9BC,MAAQ3G,SAAS2G,MAAO,EAAE,EAAIT,iBAC9BU,MAAQ5G,SAAS4G,MAAO,EAAE,EAAIV,iBAC9BW,MAAQ7G,SAAS6G,MAAO,EAAE,EAE1B,GAAIvG,MAAMqG,KAAK,EAAI,MAAM,IAAIjG,UAAU,sDAAsD,EAC7F,GAAIJ,MAAMsG,KAAK,EAAI,MAAM,IAAIlG,UAAU,sDAAsD,EAC7F,GAAIJ,MAAMuG,KAAK,EAAI,MAAM,IAAInG,UAAU,oDAAoD,EAE3F,GAAImG,QAAU,EAAI,MAAM,IAAInG,UAAU,gDAAgD,EACtF,GAAImG,MAAQrG,KAAKwF,MAAMrD,OAAS,MAAM,IAAIjC,UAAU,kFAAkFF,KAAKwF,MAAMrD,OAAO,GAAG,EAE3J,GAAIgE,MAAQ,GAAKC,OAASpG,KAAKwF,MAAMrD,OAAS,MAAM,IAAIjC,UAAU,qCAAuCuF,KAAO,GAAG,EACnH,GAAIU,MAAQC,MAAQ,MAAM,IAAIlG,UAAU,qDAAuDuF,KAAO,GAAG,EAEzG,IAAKxD,IAAIC,EAAIiE,MAAOjE,GAAKkE,MAAOlE,GAAKmE,MAAO,CAC3CrG,KAAKwF,MAAMtD,GAAK,CACjB,CACD,EAUAqC,YAAYlE,UAAUwF,YAAc,SAAUJ,KAAMD,KAAME,kBACzD,MAAMpC,MAAQmC,KAAKnC,MAAM,GAAG,EAE5B,GAAIA,MAAMnB,SAAW,EAAI,CACxB,MAAM,IAAIjC,UAAU,8CAAgDuF,KAAO,GAAG,CAC/E,CAEA,MAAMU,MAAQ3G,SAAS8D,MAAM,GAAI,EAAE,EAAIoC,iBACtCU,MAAQ5G,SAAS8D,MAAM,GAAI,EAAE,EAAIoC,iBAElC,GAAI5F,MAAMqG,KAAK,EAAI,CAClB,MAAM,IAAIjG,UAAU,sDAAsD,CAC3E,MAAO,GAAIJ,MAAMsG,KAAK,EAAI,CACzB,MAAM,IAAIlG,UAAU,sDAAsD,CAC3E,CAGA,GAAIiG,MAAQ,GAAKC,OAASpG,KAAKwF,MAAMrD,OAAS,CAC7C,MAAM,IAAIjC,UAAU,qCAAuCuF,KAAO,GAAG,CACtE,CAGA,GAAIU,MAAQC,MAAQ,CACnB,MAAM,IAAIlG,UAAU,qDAAuDuF,KAAO,GAAG,CACtF,CAEA,IAAKxD,IAAIC,EAAIiE,MAAOjE,GAAKkE,MAAOlE,CAAC,GAAK,CACrClC,KAAKwF,MAAMtD,GAAK,CACjB,CACD,EASAqC,YAAYlE,UAAUyF,eAAiB,SAAUL,KAAMD,MAEtD,MAAMlC,MAAQmC,KAAKnC,MAAM,GAAG,EAE5B,GAAIA,MAAMnB,SAAW,EAAI,CACxB,MAAM,IAAIjC,UAAU,iDAAmDuF,KAAO,GAAG,CAClF,CAEAxD,IAAIqE,MAAQ,EACZ,GAAIhD,MAAM,KAAO,IAAM,CACtBgD,MAAQ9G,SAAS8D,MAAM,GAAI,EAAE,CAC9B,CAEA,MAAM+C,MAAQ7G,SAAS8D,MAAM,GAAI,EAAE,EAEnC,GAAIxD,MAAMuG,KAAK,EAAI,MAAM,IAAInG,UAAU,oDAAoD,EAC3F,GAAImG,QAAU,EAAI,MAAM,IAAInG,UAAU,gDAAgD,EACtF,GAAImG,MAAQrG,KAAKwF,MAAMrD,OAAS,MAAM,IAAIjC,UAAU,kFAAkFF,KAAKwF,MAAMrD,OAAO,GAAG,EAE3J,IAAKF,IAAIC,EAAIoE,MAAOpE,EAAIlC,KAAKwF,MAAMrD,OAAQD,GAAImE,MAAQ,CACtDrG,KAAKwF,MAAMtD,GAAK,CACjB,CACD,EAWAqC,YAAYlE,UAAU+E,iBAAmB,SAAUK,MAClD,OAAOA,KACLT,QAAQ,SAAU,IAAI,EACtBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,CACvB,EAUAT,YAAYlE,UAAU8E,mBAAqB,SAAUM,MACpD,OAAOA,KACLT,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,GAAG,EACpBA,QAAQ,QAAS,IAAI,EACrBA,QAAQ,QAAS,IAAI,EACrBA,QAAQ,QAAS,IAAI,CACxB,EAUAT,YAAYlE,UAAUwE,gBAAkB,SAAUnD,SAEjD,MAAM6E,aAAe7E,QAAQqD,KAAK,EAAEyB,YAAY,EAChD,GAAID,eAAiB,WAAaA,eAAiB,YAAa,CAC/D,MAAO,WACR,MAAO,GAAIA,eAAiB,WAAY,CACvC,MAAQ,WACT,MAAO,GAAIA,eAAiB,UAAW,CACtC,MAAO,WACR,MAAO,GAAIA,eAAiB,SAAU,CACrC,MAAO,WACR,MAAO,GAAIA,eAAiB,UAAW,CACtC,MAAO,WACR,KAAO,CACN,OAAO7E,OACR,CACD,EA0CA,MAAM+E,SAAWC,KAAKC,IAAI,EAAG,GAAK,CAAC,EAAI,EAWvC,SAASC,KAAMlF,QAASmF,aAAcC,cAGrC,GAAI,EAAE9G,gBAAgB4G,MAAQ,CAC7B,OAAO,IAAIA,KAAKlF,QAASmF,aAAcC,YAAY,CACpD,CAGA7E,IAAIhD,QAAS8H,KAEb,GAAI,OAAOF,eAAiB,WAAa,CACxCE,KAAOF,YACR,MAAO,GAAI,OAAOA,eAAiB,SAAW,CAC7C5H,QAAU4H,YACX,MAAO,GAAIA,eAAiB,KAAK,EAAG,CACnC,MAAM,IAAI9G,MAAM,8FAA8F,CAC/G,CAEA,GAAI,OAAO+G,eAAiB,WAAa,CACxCC,KAAOD,YACR,MAAO,GAAI,OAAOA,eAAiB,SAAW,CAC7C7H,QAAU6H,YACX,MAAO,GAAIA,eAAiB,KAAK,EAAG,CACnC,MAAM,IAAI/G,MAAM,2FAA2F,CAC5G,CAGAC,KAAKf,QAAUD,YAAYC,OAAO,EAGlCe,KAAKgH,KAAO,KAAK,EAGjBhH,KAAK0B,QAAU,KAAK,EAIpB,GAAIA,UAAYA,mBAAmB7C,MAAU,OAAO6C,UAAY,UAAaA,QAAQqC,QAAQ,GAAG,EAAI,GAAK,CACxG/D,KAAKgH,KAAO,IAAIrH,SAAS+B,QAAS1B,KAAKf,QAAQW,QAAQ,CACxD,KAAO,CACNI,KAAK0B,QAAU,IAAI6C,YAAY7C,QAAS1B,KAAKf,QAAQW,QAAQ,CAC9D,CAGA,GAAImH,OAAS,KAAK,EAAI,CACrB/G,KAAKiH,GAAKF,KACV/G,KAAKkH,SAAS,CACf,CAEA,OAAOlH,IAER,CAQA4G,KAAKvG,UAAU8G,KAAO,SAAUC,MAC/B,MAAMD,KAAOnH,KAAKqH,MAAMD,IAAI,EAC5B,OAAOD,KAAOA,KAAKpG,QAAQ,EAAI,IAChC,EASA6F,KAAKvG,UAAUiH,UAAY,SAAUC,EAAGC,UACvC,MAAMC,YAAc,GACpBxF,IAAImF,KAAOI,UAAYxH,KAAK0H,YAC5B,MAAMH,CAAC,KAAOH,KAAOpH,KAAKmH,KAAKC,IAAI,GAAI,CACtCK,YAAYE,KAAKP,IAAI,CACtB,CAEA,OAAOK,WACR,EAQAb,KAAKvG,UAAUuH,QAAU,WACxB,MAAMC,OAAS7H,KAAK8H,SAAS9H,KAAK0H,WAAW,EAC7C,MAAME,QAAU,CAAC5H,KAAKf,QAAQE,QAAUa,KAAKiH,KAAO,KAAK,EACzD,OAAOY,SAAW,MAAQD,OAC3B,EAQAhB,KAAKvG,UAAUmH,SAAW,WACzB,OAAOxH,KAAK0H,YAAc1H,KAAK0H,YAAY3G,QAAQ,EAAI,IACxD,EASA6F,KAAKvG,UAAUyH,SAAW,SAAUV,MAGnC,MAAMD,KAAOnH,KAAKqH,MAAMD,MAAQpH,KAAK0H,WAAW,EAGhDN,KAAO,IAAIzH,SAASyH,KAAMpH,KAAKf,QAAQW,QAAQ,EAE/C,GAAIuH,KAAO,CACV,OAAQA,KAAKhE,QAAQ,IAAI,EAAIiE,KAAKjE,QAAQ,IAAI,CAC/C,KAAO,CACN,OAAO,IACR,CACD,EAMAyD,KAAKvG,UAAU0H,KAAO,WACrB/H,KAAKf,QAAQQ,KAAO,KAEpB,GAAIO,KAAKgI,eAAiB,CACzBC,aAAcjI,KAAKgI,cAAe,CACnC,CACD,EAQApB,KAAKvG,UAAU6H,MAAQ,WACtB,OAAQlI,KAAKf,QAAQE,OAAS,OAAS,CAACa,KAAKf,QAAQQ,IACtD,EAQAmH,KAAKvG,UAAU8H,OAAS,WACvB,MAAO,EAAEnI,KAAKf,QAAQE,OAAS,QAAU,CAACa,KAAKf,QAAQQ,IACxD,EAUAmH,KAAKvG,UAAU6G,SAAW,SAAUH,KAAMqB,SAGzC,GAAIrB,MAAQ/G,KAAKiH,GAAI,CACpB,MAAM,IAAIlH,MAAM,mFAAmF,CAGpG,MAAO,GAAIgH,KAAM,CAChB/G,KAAKiH,GAAKF,IACX,CAGA9E,IAAIoG,OAASrI,KAAK8H,SAASM,QAAUA,QAAUpI,KAAK0H,WAAW,EAC/D,MAAM7F,OAAS7B,KAAKmH,KAAKiB,QAAUA,QAAWpI,KAAK0H,WAAW,EAE9D,GAAMW,SAAW,KAAQ,OAAOrI,KAGhC,GAAIqI,OAAS5B,SAAW,CACvB4B,OAAS5B,QACV,CAGAzG,KAAKgI,eAAiBM,WAAW,KAEhC,MAAMC,IAAM,IAAI1J,KAEhB,GAAIwJ,SAAW5B,UAAY,CAACzG,KAAKf,QAAQE,QAAUoJ,IAAIpF,QAAQ,GAAKtB,OAAS,CAE5E7B,KAAKf,QAAQG,OAAO,GAGpB,GAAIY,KAAKf,QAAQK,MAAO,CACvB,IACCU,KAAKiH,GAAGjH,KAAMA,KAAKf,QAAQuJ,OAAO,CAGnC,CAFE,MAAOC,KAGV,KAAO,CACNzI,KAAKiH,GAAGjH,KAAMA,KAAKf,QAAQuJ,OAAO,CACnC,CAGAxI,KAAK0H,YAAc,IAAI/H,SAAS,KAAK,EAAGK,KAAKf,QAAQW,QAAQ,EAG7DI,KAAKkH,SAAS,CAEf,KAAO,CAENlH,KAAKkH,SAASwB,UAAWH,GAAG,CAC7B,CAGD,EAAGF,MAAM,EAET,OAAOrI,IAER,EAUA4G,KAAKvG,UAAUgH,MAAQ,SAAUD,MAEhC,MAAMzF,eAAkByF,MAAQpH,KAAK0H,YAAe,KAAO,MAG3DN,KAAO,IAAIzH,SAASyH,KAAMpH,KAAKf,QAAQW,QAAQ,EAG/C,GAAII,KAAKf,QAAQS,SAAW0H,MAAQA,KAAKjE,QAAQ,IAAI,EAAInD,KAAKf,QAAQS,QAAQyD,QAAQ,IAAI,EAAI,CAC7FiE,KAAOpH,KAAKf,QAAQS,OACrB,CAGA,MACCiJ,QAAU3I,KAAKgH,MAAQ,IAAIrH,SAASyH,KAAMpH,KAAKf,QAAQW,QAAQ,EAAE6B,UAAUzB,KAAK0B,QAAS1B,KAAKf,QAAS0C,cAAc,EAEtH,GAAI3B,KAAKgH,MAAQhH,KAAKgH,KAAK7D,QAAQ,IAAI,GAAKiE,KAAKjE,QAAQ,IAAI,EAAG,CAC/D,OAAO,IAER,MAAO,GAAKwF,UAAY,MACtB3I,KAAKf,QAAQG,SAAW,GACxBY,KAAKf,QAAY,MACjBe,KAAKf,QAAQY,QAAU8I,QAAQxF,QAAQ,IAAI,GAAKnD,KAAKf,QAAQY,OAAOsD,QAAQ,IAAI,EAAK,CACtF,OAAO,IAER,KAAO,CAEN,OAAOwF,OAER,CAED,EAEA/B,KAAKA,KAAOA,YAEHA,KAAMA,eAAiB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "croner",
|
|
3
|
-
"version": "4.3.
|
|
3
|
+
"version": "4.3.17",
|
|
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",
|
|
@@ -71,14 +71,14 @@
|
|
|
71
71
|
}
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
|
-
"c8": "^7.
|
|
75
|
-
"eslint": "^8.
|
|
76
|
-
"jsdoc": "^3.6.
|
|
74
|
+
"c8": "^7.11.3",
|
|
75
|
+
"eslint": "^8.19.0",
|
|
76
|
+
"jsdoc": "^3.6.10",
|
|
77
77
|
"jsdoc-chameleon-template": "^1.0.2",
|
|
78
|
-
"rollup": "^2.
|
|
79
|
-
"typescript": "^4.
|
|
80
|
-
"uglify-js": "^3.
|
|
81
|
-
"uvu": "^0.5.
|
|
78
|
+
"rollup": "^2.75.7",
|
|
79
|
+
"typescript": "^4.7.4",
|
|
80
|
+
"uglify-js": "^3.16.2",
|
|
81
|
+
"uvu": "^0.5.6"
|
|
82
82
|
},
|
|
83
83
|
"license": "MIT"
|
|
84
84
|
}
|
package/src/croner.js
CHANGED
|
@@ -229,9 +229,8 @@ Cron.prototype.schedule = function (func, partial) {
|
|
|
229
229
|
}
|
|
230
230
|
|
|
231
231
|
// Get ms to next run, bail out early if waitMs is null (no next run)
|
|
232
|
-
let
|
|
233
|
-
|
|
234
|
-
target = this.next(partial ? partial : this.previousrun);
|
|
232
|
+
let waitMs = this.msToNext(partial ? partial : this.previousrun);
|
|
233
|
+
const target = this.next(partial ? partial : this.previousrun);
|
|
235
234
|
|
|
236
235
|
if ( waitMs === null ) return this;
|
|
237
236
|
|
|
@@ -243,7 +242,7 @@ Cron.prototype.schedule = function (func, partial) {
|
|
|
243
242
|
// Ok, go!
|
|
244
243
|
this.currentTimeout = setTimeout(() => {
|
|
245
244
|
|
|
246
|
-
|
|
245
|
+
const now = new Date();
|
|
247
246
|
|
|
248
247
|
if( waitMs !== maxDelay && !this.options.paused && now.getTime() >= target ) {
|
|
249
248
|
|
package/src/date.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { CronTZ } from "./tz.js";
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
// This import is only used by tsc for generating type definitions from js/jsdoc
|
|
4
|
+
// deno-lint-ignore no-unused-vars
|
|
5
|
+
import { CronOptions as CronOptions } from "./options.js"; // eslint-disable-line no-unused-vars
|
|
3
6
|
|
|
4
7
|
/**
|
|
5
8
|
* Converts date to CronDate
|
|
@@ -151,7 +154,7 @@ CronDate.prototype.increment = function (pattern, options, hasPreviousRun) {
|
|
|
151
154
|
if (target === "days") {
|
|
152
155
|
|
|
153
156
|
// Create a date object for the target date
|
|
154
|
-
|
|
157
|
+
const targetDate = this.getDate(true);
|
|
155
158
|
targetDate.setDate(i-offset);
|
|
156
159
|
|
|
157
160
|
// Special handling for L (last day of month), when we are searching for days
|
|
@@ -159,7 +162,7 @@ CronDate.prototype.increment = function (pattern, options, hasPreviousRun) {
|
|
|
159
162
|
|
|
160
163
|
// Create a copy of targetDate
|
|
161
164
|
// Set days to one day after today, if month changes, then we are at the last day of the month
|
|
162
|
-
|
|
165
|
+
const targetDateCopy = new Date(targetDate);
|
|
163
166
|
targetDateCopy.setDate(i-offset+1);
|
|
164
167
|
|
|
165
168
|
// Overwrite match if last day of month is matching
|
|
@@ -239,7 +242,7 @@ CronDate.prototype.increment = function (pattern, options, hasPreviousRun) {
|
|
|
239
242
|
// be set to 5
|
|
240
243
|
|
|
241
244
|
// Store current value at current level
|
|
242
|
-
|
|
245
|
+
const currentValue = this[toDo[doing][0]];
|
|
243
246
|
|
|
244
247
|
// If pattern didn't provide a match, increment next value (e.g. minues)
|
|
245
248
|
if(!findNext(toDo[doing][0], pattern, toDo[doing][2])) {
|
package/src/pattern.js
CHANGED
|
@@ -89,7 +89,7 @@ CronPattern.prototype.parse = function () {
|
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
// Implement '?' in the simplest possible way - replace ? with current value, before further processing
|
|
92
|
-
|
|
92
|
+
const initDate = new CronDate(new Date(),this.timezone).getDate(true);
|
|
93
93
|
|
|
94
94
|
parts[0] = parts[0].replace("?", initDate.getSeconds());
|
|
95
95
|
parts[1] = parts[1].replace("?", initDate.getMinutes());
|