croner 5.0.0 → 5.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -120,7 +120,7 @@ const job : Cron = new Cron("* * * * * *", () => {
120
120
  JavaScript
121
121
 
122
122
  ```javascript
123
- import Cron from "https://deno.land/x/croner@5.0.0/src/croner.js";
123
+ import Cron from "https://deno.land/x/croner@5.0.1/src/croner.js";
124
124
 
125
125
  Cron("* * * * * *", () => {
126
126
  console.log("This will run every second.");
@@ -130,7 +130,7 @@ Cron("* * * * * *", () => {
130
130
  TypeScript
131
131
 
132
132
  ```typescript
133
- import { Cron } from "https://deno.land/x/croner@5.0.0/src/croner.js";
133
+ import { Cron } from "https://deno.land/x/croner@5.0.1/src/croner.js";
134
134
 
135
135
  const _scheduler : Cron = new Cron("* * * * * *", () => {
136
136
  console.log("This will run every second.");
package/dist/croner.cjs CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  /* ------------------------------------------------------------------------------------
8
8
 
9
- minitz 2.1.3 - MIT License - Hexagon <hexagon@56k.guru>
9
+ minitz 3.0.0 - MIT License - Hexagon <hexagon@56k.guru>
10
10
 
11
11
  Bundled manually, check https://github.com/Hexagon/minitz for updates
12
12
 
@@ -245,45 +245,27 @@
245
245
  * @returns {TimePoint} - TimePoint instance from parsing the string
246
246
  */
247
247
  function parseISOLocal(dateTimeString, timezone) {
248
- const dateTimeStringSplit = dateTimeString.split(/\D/);
248
+
249
+ // Parse date using built in Date.parse
250
+ const parsed = new Date(Date.parse(dateTimeString));
249
251
 
250
252
  // Check for completeness
251
- if (dateTimeStringSplit.length < 6) {
252
- throw new Error("minitz: Incomplete ISO8601 passed to parser.");
253
+ if (isNaN(parsed)) {
254
+ throw new Error("minitz: Invalid ISO8601 passed to parser.");
253
255
  }
254
-
255
- const
256
- year = parseInt(dateTimeStringSplit[0], 10),
257
- month = parseInt(dateTimeStringSplit[1], 10),
258
- day = parseInt(dateTimeStringSplit[2], 10),
259
- hour = parseInt(dateTimeStringSplit[3], 10),
260
- minute = parseInt(dateTimeStringSplit[4], 10),
261
- second = parseInt(dateTimeStringSplit[5], 10);
262
-
263
- // Check parts for numeric
264
- if( isNaN(year) || isNaN(month) || isNaN(day) || isNaN(hour) || isNaN(minute) || isNaN(second) ) {
265
- throw new Error("minitz: Could not parse ISO8601 string.");
256
+
257
+ // If
258
+ // * date/time is specified in UTC (Z-flag included)
259
+ // * or UTC offset is specified (+ or - included after character 9 (20200101 or 2020-01-0))
260
+ // Return time in utc, else return local time and include timezone identifier
261
+ const stringEnd = dateTimeString.substring(9);
262
+ if (dateTimeString.includes("Z") || stringEnd.includes("-") || stringEnd.includes("+")) {
263
+ return minitz.tp(parsed.getUTCFullYear(), parsed.getUTCMonth()+1, parsed.getUTCDate(),parsed.getUTCHours(), parsed.getUTCMinutes(),parsed.getUTCSeconds(), "Etc/UTC");
266
264
  } else {
267
- // Check generated date
268
- const generatedDate = new Date(Date.UTC(year, month-1, day, hour, minute, second));
269
- if (!(year == generatedDate.getUTCFullYear()
270
- && month == generatedDate.getUTCMonth()+1
271
- && day == generatedDate.getUTCDate()
272
- && hour == generatedDate.getUTCHours()
273
- && minute == generatedDate.getUTCMinutes()
274
- && second == generatedDate.getUTCSeconds())) {
275
- throw new Error("minitz: ISO8601 string contains invalid date or time");
276
- }
277
- // Check for UTC flag
278
- if ((dateTimeString.indexOf("Z") > 0)) {
279
- // Handle date as UTC time, ignoring input timezone
280
- return minitz.tp(year, month, day, hour, minute, second, "Etc/UTC");
281
- } else {
282
- // Handle date as local time, and convert from specified time zone
283
- // Note: Date already validated by the UTC-parsing
284
- return minitz.tp(year, month, day, hour, minute, second, timezone);
285
- }
265
+ return minitz.tp(parsed.getFullYear(), parsed.getMonth()+1, parsed.getDate(),parsed.getHours(), parsed.getMinutes(),parsed.getSeconds(), timezone);
286
266
  }
267
+ // Treat date as local time, in target timezone
268
+
287
269
  }
288
270
 
289
271
  minitz.minitz = minitz;
@@ -1130,6 +1112,9 @@
1130
1112
  * @returns {Date[]} - Next n run times
1131
1113
  */
1132
1114
  Cron.prototype.enumerate = function (n, previous) {
1115
+ if(n > this.options.maxRuns){
1116
+ n = this.options.maxRuns;
1117
+ }
1133
1118
  const enumeration = [];
1134
1119
  let prev = previous || this.previousrun;
1135
1120
  while(n-- && (prev = this.next(prev))) {
@@ -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 minitz(year,month,day,hour,minute,second,timezone,throwOnInvalidTime){return minitz.fromTZ(minitz.tp(year,month,day,hour,minute,second,timezone),throwOnInvalidTime)}minitz.fromTZISO=(localTimeString,timezone,throwOnInvalidTime)=>{return minitz.fromTZ(parseISOLocal(localTimeString,timezone),throwOnInvalidTime)};minitz.fromTZ=function(timePoint,throwOnInvalidTime){const inputDate=new Date(Date.UTC(timePoint.year,timePoint.month-1,timePoint.day,timePoint.hour,timePoint.minute,timePoint.second)),offset=getTimezoneOffset(timePoint.timezone,inputDate),guessedLocalDate=new Date(inputDate.getTime()-offset),guessedInputDateOffset=getTimezoneOffset(timePoint.timezone,guessedLocalDate);if(guessedInputDateOffset-offset===0){return guessedLocalDate}else{const guessedLocalDate2=new Date(inputDate.getTime()-guessedInputDateOffset),guessedInputDateOffset2=getTimezoneOffset(timePoint.timezone,guessedLocalDate2);if(guessedInputDateOffset2-guessedInputDateOffset===0){return guessedLocalDate2}else if(!throwOnInvalidTime){return guessedLocalDate}else{throw new Error("Invalid date passed to fromTZ()")}}};minitz.toTZ=function(date,tzString){const target=new Date(date.toLocaleString("sv-SE",{timeZone:tzString}));return{year:target.getFullYear(),month:target.getMonth()+1,day:target.getDate(),hour:target.getHours(),minute:target.getMinutes(),second:target.getSeconds(),timezone:tzString}};minitz.tp=(y,m,d,h,i,s,t)=>{return{year:y,month:m,day:d,hour:h,minute:i,second:s,timezone:t}};function getTimezoneOffset(timeZone,date=new Date){const tz=date.toLocaleString("en",{timeZone:timeZone,timeStyle:"long"}).split(" ").slice(-1)[0];const dateString=date.toString();return Date.parse(`${dateString} UTC`)-Date.parse(`${dateString} ${tz}`)}function parseISOLocal(dateTimeString,timezone){const dateTimeStringSplit=dateTimeString.split(/\D/);if(dateTimeStringSplit.length<6){throw new Error("minitz: Incomplete ISO8601 passed to parser.")}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)){throw new Error("minitz: Could not parse ISO8601 string.")}else{const 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())){throw new Error("minitz: ISO8601 string contains invalid date or time")}if(dateTimeString.indexOf("Z")>0){return minitz.tp(year,month,day,hour,minute,second,"Etc/UTC")}else{return minitz.tp(year,month,day,hour,minute,second,timezone)}}}minitz.minitz=minitz;function CronOptions(options){if(options===void 0){options={}}options.legacyMode=options.legacyMode===void 0?true: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(inputDate){const date=minitz.toTZ(inputDate,this.timezone);this.milliseconds=inputDate.getMilliseconds();this.seconds=date.second;this.minutes=date.minute;this.hours=date.hour;this.days=date.day;this.months=date.month-1;this.years=date.year};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(Date.UTC(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds));this.milliseconds=newDate.getUTCMilliseconds();this.seconds=newDate.getUTCSeconds();this.minutes=newDate.getUTCMinutes();this.hours=newDate.getUTCHours();this.days=newDate.getUTCDate();this.months=newDate.getUTCMonth();this.years=newDate.getUTCFullYear()};CronDate.prototype.fromString=function(str){return this.fromDate(minitz.fromTZISO(str,this.timezone))};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){if(internal||!this.timezone){return new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds)}else{return minitz(this.years,this.months+1,this.days,this.hours,this.minutes,this.seconds,this.timezone)}};CronDate.prototype.getTime=function(){return this.getDate().getTime()};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()<this.options.startAt.getTime()){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()<=prev.getTime()){return null}else if(nextRun===null||this.options.maxRuns<=0||this.options.kill||this.options.stopAt&&nextRun.getTime()>=this.options.stopAt.getTime()){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 minitz(year,month,day,hour,minute,second,timezone,throwOnInvalidTime){return minitz.fromTZ(minitz.tp(year,month,day,hour,minute,second,timezone),throwOnInvalidTime)}minitz.fromTZISO=(localTimeString,timezone,throwOnInvalidTime)=>{return minitz.fromTZ(parseISOLocal(localTimeString,timezone),throwOnInvalidTime)};minitz.fromTZ=function(timePoint,throwOnInvalidTime){const inputDate=new Date(Date.UTC(timePoint.year,timePoint.month-1,timePoint.day,timePoint.hour,timePoint.minute,timePoint.second)),offset=getTimezoneOffset(timePoint.timezone,inputDate),guessedLocalDate=new Date(inputDate.getTime()-offset),guessedInputDateOffset=getTimezoneOffset(timePoint.timezone,guessedLocalDate);if(guessedInputDateOffset-offset===0){return guessedLocalDate}else{const guessedLocalDate2=new Date(inputDate.getTime()-guessedInputDateOffset),guessedInputDateOffset2=getTimezoneOffset(timePoint.timezone,guessedLocalDate2);if(guessedInputDateOffset2-guessedInputDateOffset===0){return guessedLocalDate2}else if(!throwOnInvalidTime){return guessedLocalDate}else{throw new Error("Invalid date passed to fromTZ()")}}};minitz.toTZ=function(date,tzString){const target=new Date(date.toLocaleString("sv-SE",{timeZone:tzString}));return{year:target.getFullYear(),month:target.getMonth()+1,day:target.getDate(),hour:target.getHours(),minute:target.getMinutes(),second:target.getSeconds(),timezone:tzString}};minitz.tp=(y,m,d,h,i,s,t)=>{return{year:y,month:m,day:d,hour:h,minute:i,second:s,timezone:t}};function getTimezoneOffset(timeZone,date=new Date){const tz=date.toLocaleString("en",{timeZone:timeZone,timeStyle:"long"}).split(" ").slice(-1)[0];const dateString=date.toString();return Date.parse(`${dateString} UTC`)-Date.parse(`${dateString} ${tz}`)}function parseISOLocal(dateTimeString,timezone){const parsed=new Date(Date.parse(dateTimeString));if(isNaN(parsed)){throw new Error("minitz: Invalid ISO8601 passed to parser.")}const stringEnd=dateTimeString.substring(9);if(dateTimeString.includes("Z")||stringEnd.includes("-")||stringEnd.includes("+")){return minitz.tp(parsed.getUTCFullYear(),parsed.getUTCMonth()+1,parsed.getUTCDate(),parsed.getUTCHours(),parsed.getUTCMinutes(),parsed.getUTCSeconds(),"Etc/UTC")}else{return minitz.tp(parsed.getFullYear(),parsed.getMonth()+1,parsed.getDate(),parsed.getHours(),parsed.getMinutes(),parsed.getSeconds(),timezone)}}minitz.minitz=minitz;function CronOptions(options){if(options===void 0){options={}}options.legacyMode=options.legacyMode===void 0?true: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(inputDate){const date=minitz.toTZ(inputDate,this.timezone);this.milliseconds=inputDate.getMilliseconds();this.seconds=date.second;this.minutes=date.minute;this.hours=date.hour;this.days=date.day;this.months=date.month-1;this.years=date.year};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(Date.UTC(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds));this.milliseconds=newDate.getUTCMilliseconds();this.seconds=newDate.getUTCSeconds();this.minutes=newDate.getUTCMinutes();this.hours=newDate.getUTCHours();this.days=newDate.getUTCDate();this.months=newDate.getUTCMonth();this.years=newDate.getUTCFullYear()};CronDate.prototype.fromString=function(str){return this.fromDate(minitz.fromTZISO(str,this.timezone))};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){if(internal||!this.timezone){return new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds)}else{return minitz(this.years,this.months+1,this.days,this.hours,this.minutes,this.seconds,this.timezone)}};CronDate.prototype.getTime=function(){return this.getDate().getTime()};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){if(n>this.options.maxRuns){n=this.options.maxRuns}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()<this.options.startAt.getTime()){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()<=prev.getTime()){return null}else if(nextRun===null||this.options.maxRuns<=0||this.options.kill||this.options.stopAt&&nextRun.getTime()>=this.options.stopAt.getTime()){return null}else{return nextRun}};Cron.Cron=Cron;Cron.Cron=Cron;return Cron});
@@ -1 +1 @@
1
- {"version":3,"sources":["dist/croner.cjs"],"names":["global","factory","exports","module","define","amd","globalThis","self","Cron","this","minitz","year","month","day","hour","minute","second","timezone","throwOnInvalidTime","fromTZ","tp","fromTZISO","localTimeString","parseISOLocal","timePoint","inputDate","Date","UTC","offset","getTimezoneOffset","guessedLocalDate","getTime","guessedInputDateOffset","guessedLocalDate2","guessedInputDateOffset2","Error","toTZ","date","tzString","target","toLocaleString","timeZone","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","y","m","d","h","i","s","t","tz","timeStyle","split","slice","dateString","toString","parse","dateTimeString","dateTimeStringSplit","length","parseInt","isNaN","generatedDate","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","indexOf","CronOptions","options","legacyMode","paused","maxRuns","Infinity","catch","interval","kill","startAt","CronDate","stopAt","fromDate","TypeError","fromString","fromCronDate","prototype","milliseconds","getMilliseconds","seconds","minutes","hours","days","months","years","apply","newDate","getUTCMilliseconds","str","increment","pattern","hasPreviousRun","findNext","override","startPos","let","match","targetDate","setDate","lastDayOfMonth","targetDateCopy","dowMatch","daysOfWeek","getDay","starDayOfWeek","starDayOfMonth","resetPrevious","doing","toDo","currentValue","internal","CronPattern","Array","fill","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","minitz","year","month","day","hour","minute","second","timezone","throwOnInvalidTime","fromTZ","tp","fromTZISO","localTimeString","parseISOLocal","timePoint","inputDate","Date","UTC","offset","getTimezoneOffset","guessedLocalDate","getTime","guessedInputDateOffset","guessedLocalDate2","guessedInputDateOffset2","Error","toTZ","date","tzString","target","toLocaleString","timeZone","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","y","m","d","h","i","s","t","tz","timeStyle","split","slice","dateString","toString","parse","dateTimeString","parsed","isNaN","stringEnd","substring","includes","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","CronOptions","options","legacyMode","paused","maxRuns","Infinity","catch","interval","parseInt","kill","startAt","CronDate","stopAt","fromDate","TypeError","fromString","fromCronDate","prototype","milliseconds","getMilliseconds","seconds","minutes","hours","days","months","years","apply","newDate","getUTCMilliseconds","str","increment","pattern","hasPreviousRun","findNext","override","startPos","let","length","match","targetDate","setDate","lastDayOfMonth","targetDateCopy","dowMatch","daysOfWeek","getDay","starDayOfWeek","starDayOfMonth","resetPrevious","doing","toDo","currentValue","internal","CronPattern","Array","fill","constructor","String","handleNicknames","parts","trim","replace","unshift","indexOf","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,aA+DvB,SAASC,OAAOC,KAAMC,MAAOC,IAAKC,KAAMC,OAAQC,OAAQC,SAAUC,oBACjE,OAAOR,OAAOS,OAAOT,OAAOU,GAAGT,KAAMC,MAAOC,IAAKC,KAAMC,OAAQC,OAAQC,QAAQ,EAAGC,kBAAkB,CACrG,CAgBAR,OAAOW,UAAY,CAACC,gBAAiBL,SAAUC,sBAC9C,OAAOR,OAAOS,OAAOI,cAAcD,gBAAiBL,QAAQ,EAAGC,kBAAkB,CAClF,EAcAR,OAAOS,OAAS,SAASK,UAAWN,oBAEnC,MAGCO,UAAY,IAAIC,KAAKA,KAAKC,IACzBH,UAAUb,KACVa,UAAUZ,MAAQ,EAClBY,UAAUX,IACVW,UAAUV,KACVU,UAAUT,OACVS,UAAUR,MACX,CAAC,EAGDY,OAASC,kBAAkBL,UAAUP,SAAUQ,SAAS,EAGxDK,iBAAmB,IAAIJ,KAAKD,UAAUM,QAAQ,EAAIH,MAAM,EAGxDI,uBAAyBH,kBAAkBL,UAAUP,SAAUa,gBAAgB,EAIhF,GAAKE,uBAAyBJ,SAAY,EAAG,CAC5C,OAAOE,gBACR,KAAO,CAIN,MACCG,kBAAoB,IAAIP,KAAKD,UAAUM,QAAQ,EAAIC,sBAAsB,EACzEE,wBAA0BL,kBAAkBL,UAAUP,SAAUgB,iBAAiB,EAClF,GAAKC,wBAA0BF,yBAA4B,EAAG,CAE7D,OAAOC,iBACR,MAAO,GAAI,CAACf,mBAAoB,CAG/B,OAAOY,gBACR,KAAO,CAEN,MAAM,IAAIK,MAAM,iCAAiC,CAClD,CACD,CACD,EAwCAzB,OAAO0B,KAAO,SAAUC,KAAMC,UAC7B,MAAMC,OAAS,IAAIb,KAAKW,KAAKG,eAAe,QAAS,CAACC,SAAUH,QAAQ,CAAC,CAAC,EAC1E,MAAO,CACN3B,KAAM4B,OAAOG,YAAY,EACzB9B,MAAO2B,OAAOI,SAAS,EAAI,EAC3B9B,IAAK0B,OAAOK,QAAQ,EACpB9B,KAAMyB,OAAOM,SAAS,EACtB9B,OAAQwB,OAAOO,WAAW,EAC1B9B,OAAQuB,OAAOQ,WAAW,EAC1B9B,SAAUqB,QACX,CACD,EAmBA5B,OAAOU,GAAK,CAAC4B,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,KAAQ,MAAO,CAAE3C,KAAMqC,EAAGpC,MAAOqC,EAAGpC,IAAKqC,EAAGpC,KAAMqC,EAAGpC,OAAQqC,EAAGpC,OAAQqC,EAAGpC,SAAUqC,CAAE,CAAG,EAYnH,SAASzB,kBAAkBY,SAAUJ,KAAO,IAAIX,MAC/C,MAAM6B,GAAKlB,KAAKG,eAAe,KAAM,CAACC,SAAAA,SAAUe,UAAW,MAAM,CAAC,EAAEC,MAAM,GAAG,EAAEC,MAAM,CAAC,CAAC,EAAE,GACzF,MAAMC,WAAatB,KAAKuB,SAAS,EACjC,OAAOlC,KAAKmC,SAASF,gBAAgB,EAAIjC,KAAKmC,SAASF,cAAcJ,IAAI,CAC1E,CAaA,SAAShC,cAAcuC,eAAgB7C,UAGtC,MAAM8C,OAAS,IAAIrC,KAAKA,KAAKmC,MAAMC,cAAc,CAAC,EAGlD,GAAIE,MAAMD,MAAM,EAAG,CAClB,MAAM,IAAI5B,MAAM,2CAA2C,CAC5D,CAMA,MAAM8B,UAAYH,eAAeI,UAAU,CAAC,EAC5C,GAAIJ,eAAeK,SAAS,GAAG,GAAKF,UAAUE,SAAS,GAAG,GAAKF,UAAUE,SAAS,GAAG,EAAG,CACvF,OAAOzD,OAAOU,GAAG2C,OAAOK,eAAe,EAAGL,OAAOM,YAAY,EAAE,EAAGN,OAAOO,WAAW,EAAEP,OAAOQ,YAAY,EAAGR,OAAOS,cAAc,EAAET,OAAOU,cAAc,EAAG,SAAS,CACrK,KAAO,CACN,OAAO/D,OAAOU,GAAG2C,OAAOrB,YAAY,EAAGqB,OAAOpB,SAAS,EAAE,EAAGoB,OAAOnB,QAAQ,EAAEmB,OAAOlB,SAAS,EAAGkB,OAAOjB,WAAW,EAAEiB,OAAOhB,WAAW,EAAG9B,QAAQ,CAClJ,CAGD,CAEAP,OAAOA,OAASA,OAuBhB,SAASgE,YAAYC,SAGpB,GAAIA,UAAY,KAAK,EAAG,CACvBA,QAAU,EACX,CAGAA,QAAQC,WAAcD,QAAQC,aAAe,KAAK,EAAK,KAAOD,QAAQC,WACtED,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,QAAQ1D,QAAQ,CACjE,CACA,GAAI0D,QAAQW,OAAS,CACpBX,QAAQW,OAAS,IAAID,SAASV,QAAQW,OAAQX,QAAQ1D,QAAQ,CAC/D,CAGA,GAAI0D,QAAQM,WAAa,KAAM,CAC9B,GAAIjB,MAAMW,QAAQM,QAAQ,EAAG,CAC5B,MAAM,IAAI9C,MAAM,0DAA0D,CAC3E,MAAO,GAAIwC,QAAQM,SAAW,EAAG,CAChC,MAAM,IAAI9C,MAAM,8DAA8D,CAC/E,CACD,CAEA,OAAOwC,OAER,CASA,SAASU,SAAUhD,KAAMpB,UAExBR,KAAKQ,SAAWA,SAEhB,GAAIoB,MAAQA,gBAAgBX,KAAM,CACjC,GAAI,CAACsC,MAAM3B,IAAI,EAAG,CACjB5B,KAAK8E,SAASlD,IAAI,CACnB,KAAO,CACN,MAAM,IAAImD,UAAU,oEAAoE,CACzF,CACD,MAAO,GAAInD,OAAS,KAAK,EAAG,CAC3B5B,KAAK8E,SAAS,IAAI7D,IAAM,CACzB,MAAO,GAAIW,MAAQ,OAAOA,OAAS,SAAU,CAC5C5B,KAAKgF,WAAWpD,IAAI,CACrB,MAAO,GAAIA,gBAAgBgD,SAAU,CACpC5E,KAAKiF,aAAarD,IAAI,CACvB,KAAO,CACN,MAAM,IAAImD,UAAU,2BAA6B,OAAOnD,KAAO,+CAA+C,CAC/G,CAED,CAQAgD,SAASM,UAAUJ,SAAW,SAAU9D,WAEvC,MAAMY,KAAO3B,OAAO0B,KAAKX,UAAWhB,KAAKQ,QAAQ,EAEjDR,KAAKmF,aAAenE,UAAUoE,gBAAgB,EAC9CpF,KAAKqF,QAAUzD,KAAKrB,OACpBP,KAAKsF,QAAU1D,KAAKtB,OACpBN,KAAKuF,MAAQ3D,KAAKvB,KAClBL,KAAKwF,KAAO5D,KAAKxB,IACjBJ,KAAKyF,OAAU7D,KAAKzB,MAAQ,EAC5BH,KAAK0F,MAAQ9D,KAAK1B,IAEnB,EAQA0E,SAASM,UAAUD,aAAe,SAAUrD,MAC3C5B,KAAKQ,SAAWoB,KAAKpB,SACrBR,KAAKmF,aAAevD,KAAKuD,aACzBnF,KAAKqF,QAAUzD,KAAKyD,QACpBrF,KAAKsF,QAAU1D,KAAK0D,QACpBtF,KAAKuF,MAAQ3D,KAAK2D,MAClBvF,KAAKwF,KAAO5D,KAAK4D,KACjBxF,KAAKyF,OAAS7D,KAAK6D,OACnBzF,KAAK0F,MAAQ9D,KAAK8D,KACnB,EAQAd,SAASM,UAAUS,MAAQ,WAC1B,MAAMC,QAAU,IAAI3E,KAAKA,KAAKC,IAAIlB,KAAK0F,MAAO1F,KAAKyF,OAAQzF,KAAKwF,KAAMxF,KAAKuF,MAAOvF,KAAKsF,QAAStF,KAAKqF,QAASrF,KAAKmF,YAAY,CAAC,EAEhInF,KAAKmF,aAAeS,QAAQC,mBAAmB,EAC/C7F,KAAKqF,QAAUO,QAAQ5B,cAAc,EACrChE,KAAKsF,QAAUM,QAAQ7B,cAAc,EACrC/D,KAAKuF,MAAQK,QAAQ9B,YAAY,EACjC9D,KAAKwF,KAAOI,QAAQ/B,WAAW,EAC/B7D,KAAKyF,OAAUG,QAAQhC,YAAY,EACnC5D,KAAK0F,MAAQE,QAAQjC,eAAe,CACrC,EAQAiB,SAASM,UAAUF,WAAa,SAAUc,KACzC,OAAO9F,KAAK8E,SAAS7E,OAAOW,UAAUkF,IAAK9F,KAAKQ,QAAQ,CAAC,CAC1D,EAWAoE,SAASM,UAAUa,UAAY,SAAUC,QAAS9B,QAAS+B,gBAG1D,GAAI/B,QAAQM,SAAW,GAAKyB,eAAgB,CAC3CjG,KAAKqF,SAAWnB,QAAQM,QACzB,KAAO,CACNxE,KAAKqF,SAAW,CACjB,CACArF,KAAKmF,aAAe,EACpBnF,KAAK2F,MAAM,EAEX,MAaCO,SAAW,CAACpE,OAAQkE,QAAS7E,OAAQgF,YAEpC,MAAMC,SAAYD,WAAa,KAAK,EAAKnG,KAAK8B,QAAUX,OAAS,EAEjE,IAAKkF,IAAI1D,EAAIyD,SAAUzD,EAAIqD,QAAQlE,QAAQwE,OAAQ3D,CAAC,GAAK,CAGxD0D,IAAIE,MAAQP,QAAQlE,QAAQa,GAG5B,GAAIb,SAAW,OAAQ,CAGtB,MAAM0E,WAAaxG,KAAKmC,QAAQ,IAAI,EACpCqE,WAAWC,QAAQ9D,EAAExB,MAAM,EAG3B,GAAI6E,QAAQU,eAAgB,CAI3B,MAAMC,eAAiB,IAAI1F,KAAKuF,UAAU,EAC1CG,eAAeF,QAAQ9D,EAAExB,OAAO,CAAC,EAGjC,GAAIwF,eAAezE,SAAS,IAAMlC,KAAKyF,OAAQ,CAC9Cc,MAAQ,IACT,CAED,CAIA,MAAMK,SAAWZ,QAAQa,WAAWL,WAAWM,OAAO,GACtD,GAAI5C,QAAQC,WAAY,CACvB,GAAI,CAAC6B,QAAQe,eAAiBf,QAAQgB,eAAgB,CACrDT,MAAQK,QACT,MAAO,GAAI,CAACZ,QAAQe,eAAiB,CAACf,QAAQgB,eAAgB,CAC7DT,MAAQA,OAASK,QAClB,CACD,KAAO,CAENL,MAAQA,OAASK,QAClB,CAED,CAEA,GAAIL,MAAO,CACVvG,KAAK8B,QAAUa,EAAExB,OACjB,OAAO,IACR,CAED,CACA,OAAO,KAER,EAEA8F,cAAgB,SAKf,MAAMC,MAAQ/F,QAAU,EAAG,CAO1B+E,SAASiB,KAAKD,MAAQ/F,QAAQ,GAAI6E,QAASmB,KAAKD,MAAQ/F,QAAQ,GAAI,CAAC,EAGrE+F,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,IAKrBd,IAAIa,MAAQ,EACZ,MAAMA,MAAQ,EAAG,CAOhB,MAAME,aAAepH,KAAKmH,KAAKD,OAAO,IAGtC,GAAG,CAAChB,SAASiB,KAAKD,OAAO,GAAIlB,QAASmB,KAAKD,OAAO,EAAE,EAAG,CAEtDlH,KAAKmH,KAAKD,OAAO,GAAG,GAGpBD,cAAc,CAAC,EAGfjH,KAAK2F,MAAM,CAGZ,MAAO,GAAIyB,eAAiBpH,KAAKmH,KAAKD,OAAO,IAAK,CAGjDD,cAAc,CAAC,CAAC,CAEjB,CAGA,GAAIjH,KAAK0F,OAAS,IAAM,CACvB,OAAO,IACR,CAGAwB,KAAK,EACN,CAGA,OAAOlH,IAER,EASA4E,SAASM,UAAU/C,QAAU,SAAUkF,UACtC,GAAIA,UAAY,CAACrH,KAAKQ,SAAU,CAC/B,OAAO,IAAIS,KAAKjB,KAAK0F,MAAO1F,KAAKyF,OAAQzF,KAAKwF,KAAMxF,KAAKuF,MAAOvF,KAAKsF,QAAStF,KAAKqF,QAASrF,KAAKmF,YAAY,CAC9G,KAAO,CACN,OAAOlF,OAAOD,KAAK0F,MAAO1F,KAAKyF,OAAO,EAAGzF,KAAKwF,KAAMxF,KAAKuF,MAAOvF,KAAKsF,QAAStF,KAAKqF,QAASrF,KAAKQ,QAAQ,CAC1G,CACD,EAQAoE,SAASM,UAAU5D,QAAU,WAC5B,OAAOtB,KAAKmC,QAAQ,EAAEb,QAAQ,CAC/B,EAsBA,SAASgG,YAAatB,QAASxF,UAE9BR,KAAKgG,QAAYA,QACjBhG,KAAKQ,SAAYA,SAEjBR,KAAKqF,QAAiBkC,MAAM,EAAE,EAAEC,KAAK,CAAC,EACtCxH,KAAKsF,QAAiBiC,MAAM,EAAE,EAAEC,KAAK,CAAC,EACtCxH,KAAKuF,MAAiBgC,MAAM,EAAE,EAAEC,KAAK,CAAC,EACtCxH,KAAKwF,KAAiB+B,MAAM,EAAE,EAAEC,KAAK,CAAC,EACtCxH,KAAKyF,OAAiB8B,MAAM,EAAE,EAAEC,KAAK,CAAC,EACtCxH,KAAK6G,WAAiBU,MAAM,CAAC,EAAEC,KAAK,CAAC,EAErCxH,KAAK0G,eAAiB,MACtB1G,KAAKgH,eAAiB,MACtBhH,KAAK+G,cAAiB,MAEtB/G,KAAKoD,MAAM,CAEZ,CAMAkE,YAAYpC,UAAU9B,MAAQ,WAG7B,GAAI,EAAE,OAAOpD,KAAKgG,UAAY,UAAYhG,KAAKgG,QAAQyB,cAAgBC,QAAU,CAChF,MAAM,IAAI3C,UAAU,gDAAgD,CACrE,CAGA/E,KAAKgG,QAAUhG,KAAK2H,gBAAgB3H,KAAKgG,OAAO,EAGhD,MAAM4B,MAAQ5H,KAAKgG,QAAQ6B,KAAK,EAAEC,QAAQ,OAAQ,GAAG,EAAE9E,MAAM,GAAG,EAGhE,GAAI4E,MAAMtB,OAAS,GAAKsB,MAAMtB,OAAS,EAAI,CAC1C,MAAM,IAAIvB,UAAU,+CAAiD/E,KAAKgG,QAAU,wDAAwD,CAC7I,CAGA,GAAI4B,MAAMtB,SAAW,EAAG,CACvBsB,MAAMG,QAAQ,GAAG,CAClB,CAIA,GAAGH,MAAM,GAAGI,QAAQ,GAAG,GAAK,EAAG,CAC9BJ,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAI,EAAE,EAClC9H,KAAK0G,eAAiB,IACvB,CAGA,GAAGkB,MAAM,GAAGK,YAAY,GAAK,IAAK,CACjCjI,KAAKgH,eAAiB,IACvB,CAGAY,MAAM,GAAK5H,KAAKkI,mBAAmBN,MAAM,EAAE,EAC3CA,MAAM,GAAK5H,KAAKmI,iBAAiBP,MAAM,EAAE,EAGzC,GAAGA,MAAM,GAAGK,YAAY,GAAK,IAAK,CACjCjI,KAAK+G,cAAgB,IACtB,CAGA,MAAMqB,SAAW,IAAIxD,SAAS,IAAI3D,KAAOjB,KAAKQ,QAAQ,EAAE2B,QAAQ,IAAI,EAEpEyF,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKM,SAAS9F,WAAW,CAAC,EACtDsF,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKM,SAAS/F,WAAW,CAAC,EACtDuF,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKM,SAAShG,SAAS,CAAC,EACpDwF,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKM,SAASjG,QAAQ,CAAC,EACnDyF,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKM,SAASlG,SAAS,EAAE,CAAC,EACtD0F,MAAM,GAAKA,MAAM,GAAGE,QAAQ,IAAKM,SAAStB,OAAO,CAAC,EAGlD9G,KAAKqI,yBAAyBT,KAAK,EAGnC5H,KAAKsI,YAAY,UAAcV,MAAM,GAAI,CAAC,EAC1C5H,KAAKsI,YAAY,UAAcV,MAAM,GAAI,CAAC,EAC1C5H,KAAKsI,YAAY,QAAcV,MAAM,GAAI,CAAC,EAC1C5H,KAAKsI,YAAY,OAAcV,MAAM,GAAI,CAAC,CAAC,EAC3C5H,KAAKsI,YAAY,SAAcV,MAAM,GAAI,CAAC,CAAC,EAC3C5H,KAAKsI,YAAY,aAAcV,MAAM,GAAI,CAAC,EAG1C,GAAI5H,KAAK6G,WAAW,GAAK,CACxB7G,KAAK6G,WAAW,GAAK,CACtB,CAED,EAWAS,YAAYpC,UAAUoD,YAAc,SAAUC,KAAMC,KAAMC,kBAEzD,MAAMC,IAAM1I,KAAKuI,MAGjB,GAAIC,OAAS,IAAM,CAClB,IAAKnC,IAAI1D,EAAI,EAAGA,EAAI+F,IAAIpC,OAAQ3D,CAAC,GAAK,CACrC+F,IAAI/F,GAAK,CACV,CACA,MACD,CAGA,MAAMK,MAAQwF,KAAKxF,MAAM,GAAG,EAC5B,GAAIA,MAAMsD,OAAS,EAAI,CACtB,IAAKD,IAAI1D,EAAI,EAAGA,EAAIK,MAAMsD,OAAQ3D,CAAC,GAAK,CACvC3C,KAAKsI,YAAYC,KAAMvF,MAAML,GAAI8F,gBAAgB,CAClD,CAGD,MAAO,GAAID,KAAKR,QAAQ,GAAG,IAAM,CAAC,GAAKQ,KAAKR,QAAQ,GAAG,IAAM,CAAC,EAAI,CACjEhI,KAAK2I,wBAAwBH,KAAMD,KAAME,gBAAgB,CAG1D,MAAO,GAAID,KAAKR,QAAQ,GAAG,IAAM,CAAC,EAAI,CACrChI,KAAK4I,YAAYJ,KAAMD,KAAME,gBAAgB,CAG9C,MAAO,GAAID,KAAKR,QAAQ,GAAG,IAAM,CAAC,EAAI,CACrChI,KAAK6I,eAAeL,KAAMD,KAAME,gBAAgB,CAGjD,MAAO,GAAID,OAAS,GAAK,CACxBxI,KAAK8I,aAAaN,KAAMD,KAAME,gBAAgB,CAC/C,CAED,EAQAnB,YAAYpC,UAAUmD,yBAA2B,SAAUT,OAC1D,MAAMmB,YAAc,cACpB,IAAI1C,IAAI1D,EAAI,EAAGA,EAAIiF,MAAMtB,OAAQ3D,CAAC,GAAI,CACrC,GAAIoG,YAAYC,KAAKpB,MAAMjF,EAAE,EAAI,CAChC,MAAM,IAAIoC,UAAU,oCAAsCpC,EAAI,KAAOiF,MAAMjF,GAAK,gCAAgC,CACjH,CACD,CACD,EAUA2E,YAAYpC,UAAU4D,aAAe,SAAUN,KAAMD,KAAME,kBAC1D,MAAM9F,EAAK8B,SAAS+D,KAAM,EAAE,EAAIC,iBAEhC,GAAIlF,MAAMZ,CAAC,EAAI,CACd,MAAM,IAAIoC,UAAU,gBAAkBwD,KAAO,sBAAwBC,KAAO,GAAG,CAChF,CAEA,GAAI7F,EAAI,GAAKA,GAAK3C,KAAKuI,MAAMjC,OAAS,CACrC,MAAM,IAAIvB,UAAU,gBAAkBwD,KAAO,yBAA2BC,KAAO,GAAG,CACnF,CAEAxI,KAAKuI,MAAM5F,GAAK,CACjB,EAUA2E,YAAYpC,UAAUyD,wBAA0B,SAAUH,KAAMD,KAAME,kBACrE,MAAMQ,QAAUT,KAAKjC,MAAM,sBAAsB,EAEjD,GAAI0C,UAAY,KAAO,MAAM,IAAIlE,UAAU,4DAA8DyD,KAAO,GAAG,EAEnHnC,GAAI,CAAC,CAAE6C,MAAOC,MAAOC,OAASH,QAC9BC,MAAQzE,SAASyE,MAAO,EAAE,EAAIT,iBAC9BU,MAAQ1E,SAAS0E,MAAO,EAAE,EAAIV,iBAC9BW,MAAQ3E,SAAS2E,MAAO,EAAE,EAE1B,GAAI7F,MAAM2F,KAAK,EAAI,MAAM,IAAInE,UAAU,sDAAsD,EAC7F,GAAIxB,MAAM4F,KAAK,EAAI,MAAM,IAAIpE,UAAU,sDAAsD,EAC7F,GAAIxB,MAAM6F,KAAK,EAAI,MAAM,IAAIrE,UAAU,oDAAoD,EAE3F,GAAIqE,QAAU,EAAI,MAAM,IAAIrE,UAAU,gDAAgD,EACtF,GAAIqE,MAAQpJ,KAAKuI,MAAMjC,OAAS,MAAM,IAAIvB,UAAU,kFAAkF/E,KAAKuI,MAAMjC,OAAO,GAAG,EAE3J,GAAI4C,MAAQ,GAAKC,OAASnJ,KAAKuI,MAAMjC,OAAS,MAAM,IAAIvB,UAAU,qCAAuCyD,KAAO,GAAG,EACnH,GAAIU,MAAQC,MAAQ,MAAM,IAAIpE,UAAU,qDAAuDyD,KAAO,GAAG,EAEzG,IAAKnC,IAAI1D,EAAIuG,MAAOvG,GAAKwG,MAAOxG,GAAKyG,MAAO,CAC3CpJ,KAAKuI,MAAM5F,GAAK,CACjB,CACD,EAUA2E,YAAYpC,UAAU0D,YAAc,SAAUJ,KAAMD,KAAME,kBACzD,MAAMzF,MAAQwF,KAAKxF,MAAM,GAAG,EAE5B,GAAIA,MAAMsD,SAAW,EAAI,CACxB,MAAM,IAAIvB,UAAU,8CAAgDyD,KAAO,GAAG,CAC/E,CAEA,MAAMU,MAAQzE,SAASzB,MAAM,GAAI,EAAE,EAAIyF,iBACtCU,MAAQ1E,SAASzB,MAAM,GAAI,EAAE,EAAIyF,iBAElC,GAAIlF,MAAM2F,KAAK,EAAI,CAClB,MAAM,IAAInE,UAAU,sDAAsD,CAC3E,MAAO,GAAIxB,MAAM4F,KAAK,EAAI,CACzB,MAAM,IAAIpE,UAAU,sDAAsD,CAC3E,CAGA,GAAImE,MAAQ,GAAKC,OAASnJ,KAAKuI,MAAMjC,OAAS,CAC7C,MAAM,IAAIvB,UAAU,qCAAuCyD,KAAO,GAAG,CACtE,CAGA,GAAIU,MAAQC,MAAQ,CACnB,MAAM,IAAIpE,UAAU,qDAAuDyD,KAAO,GAAG,CACtF,CAEA,IAAKnC,IAAI1D,EAAIuG,MAAOvG,GAAKwG,MAAOxG,CAAC,GAAK,CACrC3C,KAAKuI,MAAM5F,GAAK,CACjB,CACD,EASA2E,YAAYpC,UAAU2D,eAAiB,SAAUL,KAAMD,MAEtD,MAAMvF,MAAQwF,KAAKxF,MAAM,GAAG,EAE5B,GAAIA,MAAMsD,SAAW,EAAI,CACxB,MAAM,IAAIvB,UAAU,iDAAmDyD,KAAO,GAAG,CAClF,CAEAnC,IAAIgD,MAAQ,EACZ,GAAIrG,MAAM,KAAO,IAAM,CACtBqG,MAAQ5E,SAASzB,MAAM,GAAI,EAAE,CAC9B,CAEA,MAAMoG,MAAQ3E,SAASzB,MAAM,GAAI,EAAE,EAEnC,GAAIO,MAAM6F,KAAK,EAAI,MAAM,IAAIrE,UAAU,oDAAoD,EAC3F,GAAIqE,QAAU,EAAI,MAAM,IAAIrE,UAAU,gDAAgD,EACtF,GAAIqE,MAAQpJ,KAAKuI,MAAMjC,OAAS,MAAM,IAAIvB,UAAU,kFAAkF/E,KAAKuI,MAAMjC,OAAO,GAAG,EAE3J,IAAKD,IAAI1D,EAAI0G,MAAO1G,EAAI3C,KAAKuI,MAAMjC,OAAQ3D,GAAIyG,MAAQ,CACtDpJ,KAAKuI,MAAM5F,GAAK,CACjB,CACD,EAWA2E,YAAYpC,UAAUiD,iBAAmB,SAAUK,MAClD,OAAOA,KACLV,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,EAUAR,YAAYpC,UAAUgD,mBAAqB,SAAUM,MACpD,OAAOA,KACLV,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,EAUAR,YAAYpC,UAAUyC,gBAAkB,SAAU3B,SAEjD,MAAMsD,aAAetD,QAAQ6B,KAAK,EAAE0B,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,OAAOtD,OACR,CACD,EA0CA,MAAMwD,SAAWC,KAAKC,IAAI,EAAG,GAAK,CAAC,EAAI,EAWvC,SAAS3J,KAAMiG,QAAS2D,aAAcC,cAGrC,GAAI,EAAE5J,gBAAgBD,MAAQ,CAC7B,OAAO,IAAIA,KAAKiG,QAAS2D,aAAcC,YAAY,CACpD,CAGAvD,IAAInC,QAAS2F,KAEb,GAAI,OAAOF,eAAiB,WAAa,CACxCE,KAAOF,YACR,MAAO,GAAI,OAAOA,eAAiB,SAAW,CAC7CzF,QAAUyF,YACX,MAAO,GAAIA,eAAiB,KAAK,EAAG,CACnC,MAAM,IAAIjI,MAAM,8FAA8F,CAC/G,CAEA,GAAI,OAAOkI,eAAiB,WAAa,CACxCC,KAAOD,YACR,MAAO,GAAI,OAAOA,eAAiB,SAAW,CAC7C1F,QAAU0F,YACX,MAAO,GAAIA,eAAiB,KAAK,EAAG,CACnC,MAAM,IAAIlI,MAAM,2FAA2F,CAC5G,CAGA1B,KAAKkE,QAAUD,YAAYC,OAAO,EAGlClE,KAAK8J,KAAO,KAAK,EAGjB9J,KAAKgG,QAAU,KAAK,EAIpB,GAAIA,UAAYA,mBAAmB/E,MAAU,OAAO+E,UAAY,UAAaA,QAAQgC,QAAQ,GAAG,EAAI,GAAK,CACxGhI,KAAK8J,KAAO,IAAIlF,SAASoB,QAAShG,KAAKkE,QAAQ1D,QAAQ,CACxD,KAAO,CACNR,KAAKgG,QAAU,IAAIsB,YAAYtB,QAAShG,KAAKkE,QAAQ1D,QAAQ,CAC9D,CAGA,GAAIqJ,OAAS,KAAK,EAAI,CACrB7J,KAAK+J,GAAKF,KACV7J,KAAKgK,SAAS,CACf,CAEA,OAAOhK,IAER,CAQAD,KAAKmF,UAAU+E,KAAO,SAAUC,MAC/B,MAAMD,KAAOjK,KAAKmK,MAAMD,IAAI,EAC5B,OAAOD,KAAOA,KAAK9H,QAAQ,EAAI,IAChC,EASApC,KAAKmF,UAAUkF,UAAY,SAAUC,EAAGC,UACvC,GAAGD,EAAIrK,KAAKkE,QAAQG,QAAQ,CAC3BgG,EAAIrK,KAAKkE,QAAQG,OAClB,CACA,MAAMkG,YAAc,GACpBlE,IAAI6D,KAAOI,UAAYtK,KAAKwK,YAC5B,MAAMH,CAAC,KAAOH,KAAOlK,KAAKiK,KAAKC,IAAI,GAAI,CACtCK,YAAYE,KAAKP,IAAI,CACtB,CAEA,OAAOK,WACR,EAQAxK,KAAKmF,UAAUwF,QAAU,WACxB,MAAMC,OAAS3K,KAAK4K,SAAS5K,KAAKwK,WAAW,EAC7C,MAAME,QAAU,CAAC1K,KAAKkE,QAAQE,QAAUpE,KAAK+J,KAAO,KAAK,EACzD,OAAOY,SAAW,MAAQD,OAC3B,EAQA3K,KAAKmF,UAAUoF,SAAW,WACzB,OAAOtK,KAAKwK,YAAcxK,KAAKwK,YAAYrI,QAAQ,EAAI,IACxD,EASApC,KAAKmF,UAAU0F,SAAW,SAAUV,MAGnC,MAAMD,KAAOjK,KAAKmK,MAAMD,MAAQlK,KAAKwK,WAAW,EAGhDN,KAAO,IAAItF,SAASsF,KAAMlK,KAAKkE,QAAQ1D,QAAQ,EAE/C,GAAIyJ,KAAO,CACV,OAAQA,KAAK3I,QAAQ,IAAI,EAAI4I,KAAK5I,QAAQ,IAAI,CAC/C,KAAO,CACN,OAAO,IACR,CACD,EAMAvB,KAAKmF,UAAU2F,KAAO,WACrB7K,KAAKkE,QAAQQ,KAAO,KAEpB,GAAI1E,KAAK8K,eAAiB,CACzBC,aAAc/K,KAAK8K,cAAe,CACnC,CACD,EAQA/K,KAAKmF,UAAU8F,MAAQ,WACtB,OAAQhL,KAAKkE,QAAQE,OAAS,OAAS,CAACpE,KAAKkE,QAAQQ,IACtD,EAQA3E,KAAKmF,UAAU+F,OAAS,WACvB,MAAO,EAAEjL,KAAKkE,QAAQE,OAAS,QAAU,CAACpE,KAAKkE,QAAQQ,IACxD,EAUA3E,KAAKmF,UAAU8E,SAAW,SAAUH,KAAMqB,SAGzC,GAAIrB,MAAQ7J,KAAK+J,GAAI,CACpB,MAAM,IAAIrI,MAAM,mFAAmF,CAGpG,MAAO,GAAImI,KAAM,CAChB7J,KAAK+J,GAAKF,IACX,CAGAxD,IAAI8E,OAASnL,KAAK4K,SAASM,QAAUA,QAAUlL,KAAKwK,WAAW,EAC/D,MAAM1I,OAAS9B,KAAKiK,KAAKiB,QAAUA,QAAWlL,KAAKwK,WAAW,EAE9D,GAAMW,SAAW,KAAQ,OAAOnL,KAGhC,GAAImL,OAAS3B,SAAW,CACvB2B,OAAS3B,QACV,CAGAxJ,KAAK8K,eAAiBM,WAAW,KAEhC,MAAMC,IAAM,IAAIpK,KAEhB,GAAIkK,SAAW3B,UAAY,CAACxJ,KAAKkE,QAAQE,QAAUiH,IAAI/J,QAAQ,GAAKQ,OAAS,CAE5E9B,KAAKkE,QAAQG,OAAO,GAGpB,GAAIrE,KAAKkE,QAAQK,MAAO,CACvB,IACCvE,KAAK+J,GAAG/J,KAAMA,KAAKkE,QAAQoH,OAAO,CAGnC,CAFE,MAAOC,KAGV,KAAO,CACNvL,KAAK+J,GAAG/J,KAAMA,KAAKkE,QAAQoH,OAAO,CACnC,CAGAtL,KAAKwK,YAAc,IAAI5F,SAAS,KAAK,EAAG5E,KAAKkE,QAAQ1D,QAAQ,EAG7DR,KAAKgK,SAAS,CAEf,KAAO,CAENhK,KAAKgK,SAASwB,UAAWH,GAAG,CAC7B,CAGD,EAAGF,MAAM,EAET,OAAOnL,IAER,EAUAD,KAAKmF,UAAUiF,MAAQ,SAAUD,MAEhC,MAAMjE,eAAkBiE,MAAQlK,KAAKwK,YAAe,KAAO,MAG3DN,KAAO,IAAItF,SAASsF,KAAMlK,KAAKkE,QAAQ1D,QAAQ,EAG/C,GAAIR,KAAKkE,QAAQS,SAAWuF,MAAQA,KAAK5I,QAAQ,EAAItB,KAAKkE,QAAQS,QAAQrD,QAAQ,EAAI,CACrF4I,KAAOlK,KAAKkE,QAAQS,OACrB,CAGA,MACC8G,QAAUzL,KAAK8J,MAAQ,IAAIlF,SAASsF,KAAMlK,KAAKkE,QAAQ1D,QAAQ,EAAEuF,UAAU/F,KAAKgG,QAAShG,KAAKkE,QAAS+B,cAAc,EAEtH,GAAIjG,KAAK8J,MAAQ9J,KAAK8J,KAAKxI,QAAQ,GAAK4I,KAAK5I,QAAQ,EAAG,CACvD,OAAO,IAER,MAAO,GAAKmK,UAAY,MACtBzL,KAAKkE,QAAQG,SAAW,GACxBrE,KAAKkE,QAAY,MACjBlE,KAAKkE,QAAQW,QAAU4G,QAAQnK,QAAQ,GAAKtB,KAAKkE,QAAQW,OAAOvD,QAAQ,EAAK,CAC9E,OAAO,IAER,KAAO,CAEN,OAAOmK,OAER,CAED,EAEA1L,KAAKA,KAAOA,KAEZA,KAAKA,KAAOA,KAEZ,OAAOA,IAEP,CAAC"}
@@ -1 +1 @@
1
- function minitz(year,month,day,hour,minute,second,timezone,throwOnInvalidTime){return minitz.fromTZ(minitz.tp(year,month,day,hour,minute,second,timezone),throwOnInvalidTime)}minitz.fromTZISO=(localTimeString,timezone,throwOnInvalidTime)=>{return minitz.fromTZ(parseISOLocal(localTimeString,timezone),throwOnInvalidTime)};minitz.fromTZ=function(timePoint,throwOnInvalidTime){const inputDate=new Date(Date.UTC(timePoint.year,timePoint.month-1,timePoint.day,timePoint.hour,timePoint.minute,timePoint.second)),offset=getTimezoneOffset(timePoint.timezone,inputDate),guessedLocalDate=new Date(inputDate.getTime()-offset),guessedInputDateOffset=getTimezoneOffset(timePoint.timezone,guessedLocalDate);if(guessedInputDateOffset-offset===0){return guessedLocalDate}else{const guessedLocalDate2=new Date(inputDate.getTime()-guessedInputDateOffset),guessedInputDateOffset2=getTimezoneOffset(timePoint.timezone,guessedLocalDate2);if(guessedInputDateOffset2-guessedInputDateOffset===0){return guessedLocalDate2}else if(!throwOnInvalidTime){return guessedLocalDate}else{throw new Error("Invalid date passed to fromTZ()")}}};minitz.toTZ=function(date,tzString){const target=new Date(date.toLocaleString("sv-SE",{timeZone:tzString}));return{year:target.getFullYear(),month:target.getMonth()+1,day:target.getDate(),hour:target.getHours(),minute:target.getMinutes(),second:target.getSeconds(),timezone:tzString}};minitz.tp=(y,m,d,h,i,s,t)=>{return{year:y,month:m,day:d,hour:h,minute:i,second:s,timezone:t}};function getTimezoneOffset(timeZone,date=new Date){const tz=date.toLocaleString("en",{timeZone:timeZone,timeStyle:"long"}).split(" ").slice(-1)[0];const dateString=date.toString();return Date.parse(`${dateString} UTC`)-Date.parse(`${dateString} ${tz}`)}function parseISOLocal(dateTimeString,timezone){const dateTimeStringSplit=dateTimeString.split(/\D/);if(dateTimeStringSplit.length<6){throw new Error("minitz: Incomplete ISO8601 passed to parser.")}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)){throw new Error("minitz: Could not parse ISO8601 string.")}else{const 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())){throw new Error("minitz: ISO8601 string contains invalid date or time")}if(dateTimeString.indexOf("Z")>0){return minitz.tp(year,month,day,hour,minute,second,"Etc/UTC")}else{return minitz.tp(year,month,day,hour,minute,second,timezone)}}}minitz.minitz=minitz;function CronOptions(options){if(options===void 0){options={}}options.legacyMode=options.legacyMode===void 0?true: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(inputDate){const date=minitz.toTZ(inputDate,this.timezone);this.milliseconds=inputDate.getMilliseconds();this.seconds=date.second;this.minutes=date.minute;this.hours=date.hour;this.days=date.day;this.months=date.month-1;this.years=date.year};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(Date.UTC(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds));this.milliseconds=newDate.getUTCMilliseconds();this.seconds=newDate.getUTCSeconds();this.minutes=newDate.getUTCMinutes();this.hours=newDate.getUTCHours();this.days=newDate.getUTCDate();this.months=newDate.getUTCMonth();this.years=newDate.getUTCFullYear()};CronDate.prototype.fromString=function(str){return this.fromDate(minitz.fromTZISO(str,this.timezone))};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){if(internal||!this.timezone){return new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds)}else{return minitz(this.years,this.months+1,this.days,this.hours,this.minutes,this.seconds,this.timezone)}};CronDate.prototype.getTime=function(){return this.getDate().getTime()};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()<this.options.startAt.getTime()){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()<=prev.getTime()){return null}else if(nextRun===null||this.options.maxRuns<=0||this.options.kill||this.options.stopAt&&nextRun.getTime()>=this.options.stopAt.getTime()){return null}else{return nextRun}};Cron.Cron=Cron;export{Cron,Cron as default};
1
+ function minitz(year,month,day,hour,minute,second,timezone,throwOnInvalidTime){return minitz.fromTZ(minitz.tp(year,month,day,hour,minute,second,timezone),throwOnInvalidTime)}minitz.fromTZISO=(localTimeString,timezone,throwOnInvalidTime)=>{return minitz.fromTZ(parseISOLocal(localTimeString,timezone),throwOnInvalidTime)};minitz.fromTZ=function(timePoint,throwOnInvalidTime){const inputDate=new Date(Date.UTC(timePoint.year,timePoint.month-1,timePoint.day,timePoint.hour,timePoint.minute,timePoint.second)),offset=getTimezoneOffset(timePoint.timezone,inputDate),guessedLocalDate=new Date(inputDate.getTime()-offset),guessedInputDateOffset=getTimezoneOffset(timePoint.timezone,guessedLocalDate);if(guessedInputDateOffset-offset===0){return guessedLocalDate}else{const guessedLocalDate2=new Date(inputDate.getTime()-guessedInputDateOffset),guessedInputDateOffset2=getTimezoneOffset(timePoint.timezone,guessedLocalDate2);if(guessedInputDateOffset2-guessedInputDateOffset===0){return guessedLocalDate2}else if(!throwOnInvalidTime){return guessedLocalDate}else{throw new Error("Invalid date passed to fromTZ()")}}};minitz.toTZ=function(date,tzString){const target=new Date(date.toLocaleString("sv-SE",{timeZone:tzString}));return{year:target.getFullYear(),month:target.getMonth()+1,day:target.getDate(),hour:target.getHours(),minute:target.getMinutes(),second:target.getSeconds(),timezone:tzString}};minitz.tp=(y,m,d,h,i,s,t)=>{return{year:y,month:m,day:d,hour:h,minute:i,second:s,timezone:t}};function getTimezoneOffset(timeZone,date=new Date){const tz=date.toLocaleString("en",{timeZone:timeZone,timeStyle:"long"}).split(" ").slice(-1)[0];const dateString=date.toString();return Date.parse(`${dateString} UTC`)-Date.parse(`${dateString} ${tz}`)}function parseISOLocal(dateTimeString,timezone){const parsed=new Date(Date.parse(dateTimeString));if(isNaN(parsed)){throw new Error("minitz: Invalid ISO8601 passed to parser.")}const stringEnd=dateTimeString.substring(9);if(dateTimeString.includes("Z")||stringEnd.includes("-")||stringEnd.includes("+")){return minitz.tp(parsed.getUTCFullYear(),parsed.getUTCMonth()+1,parsed.getUTCDate(),parsed.getUTCHours(),parsed.getUTCMinutes(),parsed.getUTCSeconds(),"Etc/UTC")}else{return minitz.tp(parsed.getFullYear(),parsed.getMonth()+1,parsed.getDate(),parsed.getHours(),parsed.getMinutes(),parsed.getSeconds(),timezone)}}minitz.minitz=minitz;function CronOptions(options){if(options===void 0){options={}}options.legacyMode=options.legacyMode===void 0?true: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(inputDate){const date=minitz.toTZ(inputDate,this.timezone);this.milliseconds=inputDate.getMilliseconds();this.seconds=date.second;this.minutes=date.minute;this.hours=date.hour;this.days=date.day;this.months=date.month-1;this.years=date.year};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(Date.UTC(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds));this.milliseconds=newDate.getUTCMilliseconds();this.seconds=newDate.getUTCSeconds();this.minutes=newDate.getUTCMinutes();this.hours=newDate.getUTCHours();this.days=newDate.getUTCDate();this.months=newDate.getUTCMonth();this.years=newDate.getUTCFullYear()};CronDate.prototype.fromString=function(str){return this.fromDate(minitz.fromTZISO(str,this.timezone))};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){if(internal||!this.timezone){return new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds)}else{return minitz(this.years,this.months+1,this.days,this.hours,this.minutes,this.seconds,this.timezone)}};CronDate.prototype.getTime=function(){return this.getDate().getTime()};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){if(n>this.options.maxRuns){n=this.options.maxRuns}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()<this.options.startAt.getTime()){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()<=prev.getTime()){return null}else if(nextRun===null||this.options.maxRuns<=0||this.options.kill||this.options.stopAt&&nextRun.getTime()>=this.options.stopAt.getTime()){return null}else{return nextRun}};Cron.Cron=Cron;export{Cron,Cron as default};
@@ -1 +1 @@
1
- {"version":3,"sources":["dist/croner.mjs"],"names":["minitz","year","month","day","hour","minute","second","timezone","throwOnInvalidTime","fromTZ","tp","fromTZISO","localTimeString","parseISOLocal","timePoint","inputDate","Date","UTC","offset","getTimezoneOffset","guessedLocalDate","getTime","guessedInputDateOffset","guessedLocalDate2","guessedInputDateOffset2","Error","toTZ","date","tzString","target","toLocaleString","timeZone","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","y","m","d","h","i","s","t","tz","timeStyle","split","slice","dateString","toString","parse","dateTimeString","dateTimeStringSplit","length","parseInt","isNaN","generatedDate","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","indexOf","CronOptions","options","legacyMode","paused","maxRuns","Infinity","catch","interval","kill","startAt","CronDate","stopAt","this","fromDate","TypeError","fromString","fromCronDate","prototype","milliseconds","getMilliseconds","seconds","minutes","hours","days","months","years","apply","newDate","getUTCMilliseconds","str","increment","pattern","hasPreviousRun","findNext","override","startPos","let","match","targetDate","setDate","lastDayOfMonth","targetDateCopy","dowMatch","daysOfWeek","getDay","starDayOfWeek","starDayOfMonth","resetPrevious","doing","toDo","currentValue","internal","CronPattern","Array","fill","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":["minitz","year","month","day","hour","minute","second","timezone","throwOnInvalidTime","fromTZ","tp","fromTZISO","localTimeString","parseISOLocal","timePoint","inputDate","Date","UTC","offset","getTimezoneOffset","guessedLocalDate","getTime","guessedInputDateOffset","guessedLocalDate2","guessedInputDateOffset2","Error","toTZ","date","tzString","target","toLocaleString","timeZone","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","y","m","d","h","i","s","t","tz","timeStyle","split","slice","dateString","toString","parse","dateTimeString","parsed","isNaN","stringEnd","substring","includes","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","CronOptions","options","legacyMode","paused","maxRuns","Infinity","catch","interval","parseInt","kill","startAt","CronDate","stopAt","this","fromDate","TypeError","fromString","fromCronDate","prototype","milliseconds","getMilliseconds","seconds","minutes","hours","days","months","years","apply","newDate","getUTCMilliseconds","str","increment","pattern","hasPreviousRun","findNext","override","startPos","let","length","match","targetDate","setDate","lastDayOfMonth","targetDateCopy","dowMatch","daysOfWeek","getDay","starDayOfWeek","starDayOfMonth","resetPrevious","doing","toDo","currentValue","internal","CronPattern","Array","fill","constructor","String","handleNicknames","parts","trim","replace","unshift","indexOf","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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "croner",
3
- "version": "5.0.0",
3
+ "version": "5.0.2",
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",
@@ -56,16 +56,22 @@
56
56
  "main": "./dist/croner.cjs",
57
57
  "browser": "./dist/croner.min.js",
58
58
  "module": "./src/croner.js",
59
- "types": "types/croner.d.ts",
59
+ "types": "./types/croner.d.ts",
60
60
  "exports": {
61
61
  "./package.json": "./package.json",
62
62
  ".": {
63
- "import": "./src/croner.js",
63
+ "import": {
64
+ "types": "./types/croner.d.ts",
65
+ "default": "./src/croner.js"
66
+ },
64
67
  "require": "./dist/croner.cjs",
65
68
  "browser": "./dist/croner.min.js"
66
69
  },
67
70
  "./minified": {
68
- "import": "./dist/croner.min.mjs",
71
+ "import": {
72
+ "types": "./types/croner.d.ts",
73
+ "default": "./dist/croner.min.mjs"
74
+ },
69
75
  "require": "./dist/croner.min.js",
70
76
  "browser": "./dist/croner.min.js"
71
77
  }
@@ -75,10 +81,10 @@
75
81
  "eslint": "^8.19.0",
76
82
  "jsdoc": "^3.6.10",
77
83
  "jsdoc-chameleon-template": "^1.0.2",
78
- "minitz": "^1.0.1",
84
+ "minitz": "^3.0.0",
79
85
  "rollup": "^2.75.7",
80
86
  "typescript": "^4.7.4",
81
- "uglify-js": "^3.16.2",
87
+ "uglify-js": "^3.17.1",
82
88
  "uvu": "^0.5.6"
83
89
  },
84
90
  "license": "MIT"
package/src/croner.js CHANGED
@@ -124,6 +124,9 @@ Cron.prototype.next = function (prev) {
124
124
  * @returns {Date[]} - Next n run times
125
125
  */
126
126
  Cron.prototype.enumerate = function (n, previous) {
127
+ if(n > this.options.maxRuns){
128
+ n = this.options.maxRuns;
129
+ }
127
130
  const enumeration = [];
128
131
  let prev = previous || this.previousrun;
129
132
  while(n-- && (prev = this.next(prev))) {
package/src/minitz.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /* ------------------------------------------------------------------------------------
2
2
 
3
- minitz 2.1.3 - MIT License - Hexagon <hexagon@56k.guru>
3
+ minitz 3.0.0 - MIT License - Hexagon <hexagon@56k.guru>
4
4
 
5
5
  Bundled manually, check https://github.com/Hexagon/minitz for updates
6
6
 
@@ -239,45 +239,27 @@ function getTimezoneOffset(timeZone, date = new Date()) {
239
239
  * @returns {TimePoint} - TimePoint instance from parsing the string
240
240
  */
241
241
  function parseISOLocal(dateTimeString, timezone) {
242
- const dateTimeStringSplit = dateTimeString.split(/\D/);
242
+
243
+ // Parse date using built in Date.parse
244
+ const parsed = new Date(Date.parse(dateTimeString));
243
245
 
244
246
  // Check for completeness
245
- if (dateTimeStringSplit.length < 6) {
246
- throw new Error("minitz: Incomplete ISO8601 passed to parser.");
247
+ if (isNaN(parsed)) {
248
+ throw new Error("minitz: Invalid ISO8601 passed to parser.");
247
249
  }
248
-
249
- const
250
- year = parseInt(dateTimeStringSplit[0], 10),
251
- month = parseInt(dateTimeStringSplit[1], 10),
252
- day = parseInt(dateTimeStringSplit[2], 10),
253
- hour = parseInt(dateTimeStringSplit[3], 10),
254
- minute = parseInt(dateTimeStringSplit[4], 10),
255
- second = parseInt(dateTimeStringSplit[5], 10);
256
-
257
- // Check parts for numeric
258
- if( isNaN(year) || isNaN(month) || isNaN(day) || isNaN(hour) || isNaN(minute) || isNaN(second) ) {
259
- throw new Error("minitz: Could not parse ISO8601 string.");
250
+
251
+ // If
252
+ // * date/time is specified in UTC (Z-flag included)
253
+ // * or UTC offset is specified (+ or - included after character 9 (20200101 or 2020-01-0))
254
+ // Return time in utc, else return local time and include timezone identifier
255
+ const stringEnd = dateTimeString.substring(9);
256
+ if (dateTimeString.includes("Z") || stringEnd.includes("-") || stringEnd.includes("+")) {
257
+ return minitz.tp(parsed.getUTCFullYear(), parsed.getUTCMonth()+1, parsed.getUTCDate(),parsed.getUTCHours(), parsed.getUTCMinutes(),parsed.getUTCSeconds(), "Etc/UTC");
260
258
  } else {
261
- // Check generated date
262
- const generatedDate = new Date(Date.UTC(year, month-1, day, hour, minute, second));
263
- if (!(year == generatedDate.getUTCFullYear()
264
- && month == generatedDate.getUTCMonth()+1
265
- && day == generatedDate.getUTCDate()
266
- && hour == generatedDate.getUTCHours()
267
- && minute == generatedDate.getUTCMinutes()
268
- && second == generatedDate.getUTCSeconds())) {
269
- throw new Error("minitz: ISO8601 string contains invalid date or time");
270
- }
271
- // Check for UTC flag
272
- if ((dateTimeString.indexOf("Z") > 0)) {
273
- // Handle date as UTC time, ignoring input timezone
274
- return minitz.tp(year, month, day, hour, minute, second, "Etc/UTC");
275
- } else {
276
- // Handle date as local time, and convert from specified time zone
277
- // Note: Date already validated by the UTC-parsing
278
- return minitz.tp(year, month, day, hour, minute, second, timezone);
279
- }
259
+ return minitz.tp(parsed.getFullYear(), parsed.getMonth()+1, parsed.getDate(),parsed.getHours(), parsed.getMinutes(),parsed.getSeconds(), timezone);
280
260
  }
261
+ // Treat date as local time, in target timezone
262
+
281
263
  }
282
264
 
283
265
  minitz.minitz = minitz;