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 +2 -2
- package/dist/croner.cjs +20 -35
- package/dist/croner.min.js +1 -1
- package/dist/croner.min.js.map +1 -1
- package/dist/croner.min.mjs +1 -1
- package/dist/croner.min.mjs.map +1 -1
- package/package.json +12 -6
- package/src/croner.js +3 -0
- package/src/minitz.js +17 -35
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.
|
|
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.
|
|
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
|
|
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
|
-
|
|
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 (
|
|
252
|
-
throw new Error("minitz:
|
|
253
|
+
if (isNaN(parsed)) {
|
|
254
|
+
throw new Error("minitz: Invalid ISO8601 passed to parser.");
|
|
253
255
|
}
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
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
|
-
|
|
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))) {
|
package/dist/croner.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?module.exports=factory():typeof define==="function"&&define.amd?define(factory):(global=typeof globalThis!=="undefined"?globalThis:global||self,global.Cron=factory())})(this,function(){"use strict";function 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});
|
package/dist/croner.min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["dist/croner.cjs"],"names":["global","factory","exports","module","define","amd","globalThis","self","Cron","this","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":"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"}
|
package/dist/croner.min.mjs
CHANGED
|
@@ -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};
|
package/dist/croner.min.mjs.map
CHANGED
|
@@ -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.
|
|
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":
|
|
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":
|
|
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": "^
|
|
84
|
+
"minitz": "^3.0.0",
|
|
79
85
|
"rollup": "^2.75.7",
|
|
80
86
|
"typescript": "^4.7.4",
|
|
81
|
-
"uglify-js": "^3.
|
|
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
|
|
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
|
-
|
|
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 (
|
|
246
|
-
throw new Error("minitz:
|
|
247
|
+
if (isNaN(parsed)) {
|
|
248
|
+
throw new Error("minitz: Invalid ISO8601 passed to parser.");
|
|
247
249
|
}
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
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
|
-
|
|
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;
|