croner 4.4.0 → 4.4.1
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/dist/croner.cjs +100 -55
- 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 +2 -1
- package/src/date.js +3 -3
- package/src/tz.js +100 -55
- package/types/tz.d.ts +38 -18
package/dist/croner.cjs
CHANGED
|
@@ -4,69 +4,114 @@
|
|
|
4
4
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Cron = factory());
|
|
5
5
|
})(this, (function () { 'use strict';
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
* "Converts" a date to a specific time zone
|
|
9
|
-
*
|
|
10
|
-
* Note: This is only for specific and controlled usage,
|
|
11
|
-
* as the internal UTC time of the resulting object will be off.
|
|
12
|
-
*
|
|
13
|
-
* Example:
|
|
14
|
-
* let normalDate = new Date(); // d is a normal Date instance, with local timezone and correct utc representation
|
|
15
|
-
* tzDate = CronTZ(d, 'America/New_York') // d is a tainted Date instance, where getHours()
|
|
16
|
-
* (for example) will return local time in new york, but getUTCHours()
|
|
17
|
-
* will return something irrelevant.
|
|
18
|
-
*
|
|
19
|
-
* @param {date} date - Input date
|
|
20
|
-
* @param {string} tzString - Timezone string in Europe/Stockholm format
|
|
21
|
-
* @param {boolean} [reverse] - Reverse operation
|
|
22
|
-
* @returns {date}
|
|
23
|
-
*/
|
|
24
|
-
function CronTZ(date, tzString, reverse) {
|
|
25
|
-
if (reverse) {
|
|
26
|
-
return CronFromTZ(date, tzString);
|
|
27
|
-
} else {
|
|
28
|
-
return new Date(date.toLocaleString("sv-SE", {timeZone: tzString}));
|
|
29
|
-
}
|
|
30
|
-
}
|
|
7
|
+
/* ------------------------------------------------------------------------------------
|
|
31
8
|
|
|
32
|
-
|
|
33
|
-
* Reverse of CronTZ
|
|
34
|
-
*
|
|
35
|
-
* @param {date} date - Input (tainted) date
|
|
36
|
-
* @param {string} tzString - Timezone string in Europe/Stockholm format
|
|
37
|
-
* @returns {date}
|
|
38
|
-
*/
|
|
39
|
-
function CronFromTZ(sourceDate, tzString) {
|
|
9
|
+
minitz - 1.0.1 - MIT License - Hexagon <hexagon@56k.guru>
|
|
40
10
|
|
|
41
|
-
|
|
42
|
-
const
|
|
43
|
-
targetPlus = new Date(sourceDate.toLocaleString("sv-SE", {timeZone: tzString})),
|
|
44
|
-
offset = sourceDate.getTime() - targetPlus.getTime();
|
|
11
|
+
Bundled manually, check for updates at https://github.com/Hexagon/minitz
|
|
45
12
|
|
|
46
|
-
|
|
47
|
-
iterations = 0,
|
|
48
|
-
closestAfter = -Infinity;
|
|
13
|
+
------------------------------------------------------------------------------------
|
|
49
14
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
15
|
+
License:
|
|
16
|
+
|
|
17
|
+
Copyright (c) 2022 Hexagon <hexagon@56k.guru>
|
|
18
|
+
|
|
19
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
20
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
21
|
+
in the Software without restriction, including without limitation the rights
|
|
22
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
23
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
24
|
+
furnished to do so, subject to the following conditions:
|
|
25
|
+
The above copyright notice and this permission notice shall be included in
|
|
26
|
+
all copies or substantial portions of the Software.
|
|
27
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
28
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
29
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
30
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
31
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
32
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
33
|
+
THE SOFTWARE.
|
|
54
34
|
|
|
55
|
-
|
|
35
|
+
------------------------------------------------------------------------------------ */
|
|
56
36
|
|
|
57
|
-
|
|
58
|
-
|
|
37
|
+
const minitz = {};
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* "Converts" a date to a specific time zone
|
|
41
|
+
*
|
|
42
|
+
* **Note:** The resulting Date object will have local time set to target timezone,
|
|
43
|
+
* but any functions/formatting working with UTC time, or offset will be misleading.
|
|
44
|
+
*
|
|
45
|
+
* Only use this function to get a formatted local time string.
|
|
46
|
+
*
|
|
47
|
+
* Example:
|
|
48
|
+
* let normalDate = new Date(); // d is a normal Date instance, with local timezone and correct utc representation
|
|
49
|
+
* tzDate = minitz.toTZ(d, 'America/New_York') // d is a tainted Date instance, where getHours()
|
|
50
|
+
* (for example) will return local time in new york, but getUTCHours()
|
|
51
|
+
* will return something irrelevant.
|
|
52
|
+
*
|
|
53
|
+
* @public
|
|
54
|
+
*
|
|
55
|
+
* @param {date} date - Input date
|
|
56
|
+
* @param {string} tzString - Timezone string in Europe/Stockholm format
|
|
57
|
+
* @returns {date} - Date object with local time adjusted to target timezone. UTC time WILL be off.
|
|
58
|
+
*/
|
|
59
|
+
minitz.toTZ = function (date, tzString) {
|
|
60
|
+
return new Date(date.toLocaleString("sv-SE", {timeZone: tzString}));
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Reverse of toTZ
|
|
65
|
+
*
|
|
66
|
+
* @public
|
|
67
|
+
*
|
|
68
|
+
* @param {date} date - Tainted input date, where local time is time in target timezone
|
|
69
|
+
* @param {string} tzString - Timezone string in Europe/Stockholm format
|
|
70
|
+
* @param {boolean} [throwOnInvalidTime] - Default is to return adjusted time if input time is during an DST switch.
|
|
71
|
+
* E.g. assume 01:01:01 if input is 00:01:01 but time actually
|
|
72
|
+
* skips from 23:59:59 to 01:00:00. Setting this flag makes the library throw instead.
|
|
73
|
+
* @returns {null|date} - Normal date object with correct UTC and Local time
|
|
74
|
+
*/
|
|
75
|
+
minitz.fromTZ = function(inputDate, tzString, throwOnInvalidTime) {
|
|
76
|
+
|
|
77
|
+
// Get initial offset between timezones starting from input time.
|
|
78
|
+
// Then create a guessed local time by subtracting offset from input time
|
|
79
|
+
// and try recreating input time using guessed local time and calculated offset.
|
|
80
|
+
const
|
|
81
|
+
inputDateWithOffset = new Date(inputDate.toLocaleString("sv-SE", {timeZone: tzString})),
|
|
82
|
+
offset = inputDate.getTime() - inputDateWithOffset.getTime(),
|
|
83
|
+
guessedLocalDate = new Date(inputDate.getTime() + offset),
|
|
84
|
+
guessedInputDate = new Date(guessedLocalDate.toLocaleString("sv-SE", {timeZone: tzString}));
|
|
85
|
+
|
|
86
|
+
// Check if recreated input time matches actual input time
|
|
87
|
+
const
|
|
88
|
+
guessedInputDateOffset = guessedInputDate.getTime() - inputDate.getTime();
|
|
89
|
+
if (guessedInputDateOffset === 0) {
|
|
90
|
+
// All good, return local time
|
|
91
|
+
return guessedLocalDate;
|
|
92
|
+
} else {
|
|
93
|
+
// Not quite there yet, make a second try on guessing local time, adjust by the offset from previous guess
|
|
94
|
+
// Try recreating input time again
|
|
95
|
+
// Then calculate and check offset again
|
|
96
|
+
const
|
|
97
|
+
guessedLocalDate2 = new Date(inputDate.getTime() + offset - guessedInputDateOffset),
|
|
98
|
+
guessedInputDate2 = new Date(guessedLocalDate2.toLocaleString("sv-SE", {timeZone: tzString})),
|
|
99
|
+
guessedInputDateOffset2 = guessedInputDate2.getTime() - inputDate.getTime();
|
|
100
|
+
if (guessedInputDateOffset2 === 0) {
|
|
101
|
+
// All good, return local time
|
|
102
|
+
return guessedLocalDate2;
|
|
103
|
+
} else if (!throwOnInvalidTime) {
|
|
104
|
+
// Input time is invalid, it is probably a point in time skipped by a DST switch, return the local time adjusted by initial offset
|
|
105
|
+
return guessedLocalDate;
|
|
59
106
|
} else {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
107
|
+
// Input time is invalid, and the library is instructed to throw, so let's do it
|
|
108
|
+
throw new Error("Invalid date passed to fromTZ()");
|
|
63
109
|
}
|
|
64
|
-
|
|
65
110
|
}
|
|
66
111
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
minitz.minitz = minitz;
|
|
70
115
|
|
|
71
116
|
/**
|
|
72
117
|
* @typedef {Object} CronOptions - Cron scheduler options
|
|
@@ -163,7 +208,7 @@
|
|
|
163
208
|
CronDate.prototype.fromDate = function (date) {
|
|
164
209
|
|
|
165
210
|
if (this.timezone) {
|
|
166
|
-
date =
|
|
211
|
+
date = minitz.toTZ(date, this.timezone);
|
|
167
212
|
}
|
|
168
213
|
|
|
169
214
|
this.milliseconds = date.getMilliseconds();
|
|
@@ -410,7 +455,7 @@
|
|
|
410
455
|
if (internal || !this.timezone) {
|
|
411
456
|
return targetDate;
|
|
412
457
|
} else {
|
|
413
|
-
return
|
|
458
|
+
return minitz.fromTZ(targetDate, this.timezone);
|
|
414
459
|
}
|
|
415
460
|
};
|
|
416
461
|
|
package/dist/croner.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?module.exports=factory():typeof define==="function"&&define.amd?define(factory):(global=typeof globalThis!=="undefined"?globalThis:global||self,global.Cron=factory())})(this,function(){"use strict";function CronTZ(date,tzString,reverse){if(reverse){return CronFromTZ(date,tzString)}else{return new Date(date.toLocaleString("sv-SE",{timeZone:tzString}))}}function CronFromTZ(sourceDate,tzString){const targetPlus=new Date(sourceDate.toLocaleString("sv-SE",{timeZone:tzString})),offset=sourceDate.getTime()-targetPlus.getTime();let testOffset=0,iterations=0,closestAfter=-Infinity;while(iterations++<2){const testTarget=new Date(sourceDate.getTime()+offset-testOffset),test=new Date(testTarget.toLocaleString("sv-SE",{timeZone:tzString}));testOffset=test.getTime()-sourceDate.getTime();if(testOffset===0){return testTarget}else{if(testOffset<0&&testOffset>closestAfter){closestAfter=testOffset}}}return new Date(sourceDate.getTime()+offset-closestAfter)}function CronOptions(options){if(options===void 0){options={}}options.legacyMode=options.legacyMode===void 0?false:options.legacyMode;options.paused=options.paused===void 0?false:options.paused;options.maxRuns=options.maxRuns===void 0?Infinity:options.maxRuns;options.catch=options.catch===void 0?false:options.catch;options.interval=options.interval===void 0?0:parseInt(options.interval,10);options.kill=false;if(options.startAt){options.startAt=new CronDate(options.startAt,options.timezone)}if(options.stopAt){options.stopAt=new CronDate(options.stopAt,options.timezone)}if(options.interval!==null){if(isNaN(options.interval)){throw new Error("CronOptions: Supplied value for interval is not a number")}else if(options.interval<0){throw new Error("CronOptions: Supplied value for interval can not be negative")}}return options}function CronDate(date,timezone){this.timezone=timezone;if(date&&date instanceof Date){if(!isNaN(date)){this.fromDate(date)}else{throw new TypeError("CronDate: Invalid date passed as parameter to CronDate constructor")}}else if(date===void 0){this.fromDate(new Date)}else if(date&&typeof date==="string"){this.fromString(date)}else if(date instanceof CronDate){this.fromCronDate(date)}else{throw new TypeError("CronDate: Invalid type ("+typeof date+") passed as parameter to CronDate constructor")}}CronDate.prototype.fromDate=function(date){if(this.timezone){date=CronTZ(date,this.timezone)}this.milliseconds=date.getMilliseconds();this.seconds=date.getSeconds();this.minutes=date.getMinutes();this.hours=date.getHours();this.days=date.getDate();this.months=date.getMonth();this.years=date.getFullYear()};CronDate.prototype.fromCronDate=function(date){this.timezone=date.timezone;this.milliseconds=date.milliseconds;this.seconds=date.seconds;this.minutes=date.minutes;this.hours=date.hours;this.days=date.days;this.months=date.months;this.years=date.years};CronDate.prototype.apply=function(){const newDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);this.milliseconds=newDate.getMilliseconds();this.seconds=newDate.getSeconds();this.minutes=newDate.getMinutes();this.hours=newDate.getHours();this.days=newDate.getDate();this.months=newDate.getMonth();this.years=newDate.getFullYear()};CronDate.prototype.fromString=function(str){const parsedDate=this.parseISOLocal(str);if(isNaN(parsedDate)){throw new TypeError("CronDate: Provided string value for CronDate could not be parsed as date.")}this.fromDate(parsedDate)};CronDate.prototype.increment=function(pattern,options,hasPreviousRun){if(options.interval>1&&hasPreviousRun){this.seconds+=options.interval}else{this.seconds+=1}this.milliseconds=0;this.apply();const findNext=(target,pattern,offset,override)=>{const startPos=override===void 0?this[target]+offset:0;for(let i=startPos;i<pattern[target].length;i++){let match=pattern[target][i];if(target==="days"){const targetDate=this.getDate(true);targetDate.setDate(i-offset);if(pattern.lastDayOfMonth){const targetDateCopy=new Date(targetDate);targetDateCopy.setDate(i-offset+1);if(targetDateCopy.getMonth()!==this.months){match=true}}const dowMatch=pattern.daysOfWeek[targetDate.getDay()];if(options.legacyMode){if(!pattern.starDayOfWeek&&pattern.starDayOfMonth){match=dowMatch}else if(!pattern.starDayOfWeek&&!pattern.starDayOfMonth){match=match||dowMatch}}else{match=match&&dowMatch}}if(match){this[target]=i-offset;return true}}return false},resetPrevious=offset=>{while(doing+offset>=0){findNext(toDo[doing+offset][0],pattern,toDo[doing+offset][2],0);doing--}};const toDo=[["seconds","minutes",0],["minutes","hours",0],["hours","days",0],["days","months",-1],["months","years",0]];let doing=0;while(doing<5){const currentValue=this[toDo[doing][0]];if(!findNext(toDo[doing][0],pattern,toDo[doing][2])){this[toDo[doing][1]]++;resetPrevious(0);this.apply()}else if(currentValue!==this[toDo[doing][0]]){resetPrevious(-1)}if(this.years>=4e3){return null}doing++}return this};CronDate.prototype.getDate=function(internal){const targetDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);if(internal||!this.timezone){return targetDate}else{return CronTZ(targetDate,this.timezone,true)}};CronDate.prototype.getTime=function(internal){return this.getDate(internal).getTime()};CronDate.prototype.parseISOLocal=function(dateTimeString){const dateTimeStringSplit=dateTimeString.split(/\D/);if(dateTimeStringSplit.length<6){return NaN}const year=parseInt(dateTimeStringSplit[0],10),month=parseInt(dateTimeStringSplit[1],10),day=parseInt(dateTimeStringSplit[2],10),hour=parseInt(dateTimeStringSplit[3],10),minute=parseInt(dateTimeStringSplit[4],10),second=parseInt(dateTimeStringSplit[5],10);if(isNaN(year)||isNaN(month)||isNaN(day)||isNaN(hour)||isNaN(minute)||isNaN(second)){return NaN}else{let generatedDate;if(dateTimeString.indexOf("Z")>0){generatedDate=new Date(Date.UTC(year,month-1,day,hour,minute,second));if(year==generatedDate.getUTCFullYear()&&month==generatedDate.getUTCMonth()+1&&day==generatedDate.getUTCDate()&&hour==generatedDate.getUTCHours()&&minute==generatedDate.getUTCMinutes()&&second==generatedDate.getUTCSeconds()){return generatedDate}else{return NaN}}else{generatedDate=new Date(year,month-1,day,hour,minute,second);if(year==generatedDate.getFullYear()&&month==generatedDate.getMonth()+1&&day==generatedDate.getDate()&&hour==generatedDate.getHours()&&minute==generatedDate.getMinutes()&&second==generatedDate.getSeconds()){return generatedDate}else{return NaN}}}};function CronPattern(pattern,timezone){this.pattern=pattern;this.timezone=timezone;this.seconds=Array(60).fill(0);this.minutes=Array(60).fill(0);this.hours=Array(24).fill(0);this.days=Array(31).fill(0);this.months=Array(12).fill(0);this.daysOfWeek=Array(8).fill(0);this.lastDayOfMonth=false;this.starDayOfMonth=false;this.starDayOfWeek=false;this.parse()}CronPattern.prototype.parse=function(){if(!(typeof this.pattern==="string"||this.pattern.constructor===String)){throw new TypeError("CronPattern: Pattern has to be of type string.")}this.pattern=this.handleNicknames(this.pattern);const parts=this.pattern.trim().replace(/\s+/g," ").split(" ");if(parts.length<5||parts.length>6){throw new TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exacly five or six space separated parts required.")}if(parts.length===5){parts.unshift("0")}if(parts[3].indexOf("L")>=0){parts[3]=parts[3].replace("L","");this.lastDayOfMonth=true}if(parts[3].toUpperCase()=="*"){this.starDayOfMonth=true}parts[4]=this.replaceAlphaMonths(parts[4]);parts[5]=this.replaceAlphaDays(parts[5]);if(parts[5].toUpperCase()=="*"){this.starDayOfWeek=true}const initDate=new CronDate(new Date,this.timezone).getDate(true);parts[0]=parts[0].replace("?",initDate.getSeconds());parts[1]=parts[1].replace("?",initDate.getMinutes());parts[2]=parts[2].replace("?",initDate.getHours());parts[3]=parts[3].replace("?",initDate.getDate());parts[4]=parts[4].replace("?",initDate.getMonth()+1);parts[5]=parts[5].replace("?",initDate.getDay());this.throwAtIllegalCharacters(parts);this.partToArray("seconds",parts[0],0);this.partToArray("minutes",parts[1],0);this.partToArray("hours",parts[2],0);this.partToArray("days",parts[3],-1);this.partToArray("months",parts[4],-1);this.partToArray("daysOfWeek",parts[5],0);if(this.daysOfWeek[7]){this.daysOfWeek[0]=1}};CronPattern.prototype.partToArray=function(type,conf,valueIndexOffset){const arr=this[type];if(conf==="*"){for(let i=0;i<arr.length;i++){arr[i]=1}return}const split=conf.split(",");if(split.length>1){for(let i=0;i<split.length;i++){this.partToArray(type,split[i],valueIndexOffset)}}else if(conf.indexOf("-")!==-1&&conf.indexOf("/")!==-1){this.handleRangeWithStepping(conf,type,valueIndexOffset)}else if(conf.indexOf("-")!==-1){this.handleRange(conf,type,valueIndexOffset)}else if(conf.indexOf("/")!==-1){this.handleStepping(conf,type,valueIndexOffset)}else if(conf!==""){this.handleNumber(conf,type,valueIndexOffset)}};CronPattern.prototype.throwAtIllegalCharacters=function(parts){const reValidCron=/[^/*0-9,-]+/;for(let i=0;i<parts.length;i++){if(reValidCron.test(parts[i])){throw new TypeError("CronPattern: configuration entry "+i+" ("+parts[i]+") contains illegal characters.")}}};CronPattern.prototype.handleNumber=function(conf,type,valueIndexOffset){const i=parseInt(conf,10)+valueIndexOffset;if(isNaN(i)){throw new TypeError("CronPattern: "+type+" is not a number: '"+conf+"'")}if(i<0||i>=this[type].length){throw new TypeError("CronPattern: "+type+" value out of range: '"+conf+"'")}this[type][i]=1};CronPattern.prototype.handleRangeWithStepping=function(conf,type,valueIndexOffset){const matches=conf.match(/^(\d+)-(\d+)\/(\d+)$/);if(matches===null)throw new TypeError("CronPattern: Syntax error, illegal range with stepping: '"+conf+"'");let[,lower,upper,steps]=matches;lower=parseInt(lower,10)+valueIndexOffset;upper=parseInt(upper,10)+valueIndexOffset;steps=parseInt(steps,10);if(isNaN(lower))throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(upper))throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");if(lower<0||upper>=this[type].length)throw new TypeError("CronPattern: Value out of range: '"+conf+"'");if(lower>upper)throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'");for(let i=lower;i<=upper;i+=steps){this[type][i]=1}};CronPattern.prototype.handleRange=function(conf,type,valueIndexOffset){const split=conf.split("-");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal range: '"+conf+"'")}const lower=parseInt(split[0],10)+valueIndexOffset,upper=parseInt(split[1],10)+valueIndexOffset;if(isNaN(lower)){throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)")}else if(isNaN(upper)){throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)")}if(lower<0||upper>=this[type].length){throw new TypeError("CronPattern: Value out of range: '"+conf+"'")}if(lower>upper){throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'")}for(let i=lower;i<=upper;i++){this[type][i]=1}};CronPattern.prototype.handleStepping=function(conf,type){const split=conf.split("/");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal stepping: '"+conf+"'")}let start=0;if(split[0]!=="*"){start=parseInt(split[0],10)}const steps=parseInt(split[1],10);if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");for(let i=start;i<this[type].length;i+=steps){this[type][i]=1}};CronPattern.prototype.replaceAlphaDays=function(conf){return conf.replace(/-sun/gi,"-7").replace(/sun/gi,"0").replace(/mon/gi,"1").replace(/tue/gi,"2").replace(/wed/gi,"3").replace(/thu/gi,"4").replace(/fri/gi,"5").replace(/sat/gi,"6")};CronPattern.prototype.replaceAlphaMonths=function(conf){return conf.replace(/jan/gi,"1").replace(/feb/gi,"2").replace(/mar/gi,"3").replace(/apr/gi,"4").replace(/may/gi,"5").replace(/jun/gi,"6").replace(/jul/gi,"7").replace(/aug/gi,"8").replace(/sep/gi,"9").replace(/oct/gi,"10").replace(/nov/gi,"11").replace(/dec/gi,"12")};CronPattern.prototype.handleNicknames=function(pattern){const cleanPattern=pattern.trim().toLowerCase();if(cleanPattern==="@yearly"||cleanPattern==="@annually"){return"0 0 1 1 *"}else if(cleanPattern==="@monthly"){return"0 0 1 * *"}else if(cleanPattern==="@weekly"){return"0 0 * * 0"}else if(cleanPattern==="@daily"){return"0 0 * * *"}else if(cleanPattern==="@hourly"){return"0 * * * *"}else{return pattern}};const maxDelay=Math.pow(2,32-1)-1;function Cron(pattern,fnOrOptions1,fnOrOptions2){if(!(this instanceof Cron)){return new Cron(pattern,fnOrOptions1,fnOrOptions2)}let options,func;if(typeof fnOrOptions1==="function"){func=fnOrOptions1}else if(typeof fnOrOptions1==="object"){options=fnOrOptions1}else if(fnOrOptions1!==void 0){throw new Error("Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).")}if(typeof fnOrOptions2==="function"){func=fnOrOptions2}else if(typeof fnOrOptions2==="object"){options=fnOrOptions2}else if(fnOrOptions2!==void 0){throw new Error("Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).")}this.options=CronOptions(options);this.once=void 0;this.pattern=void 0;if(pattern&&(pattern instanceof Date||typeof pattern==="string"&&pattern.indexOf(":")>0)){this.once=new CronDate(pattern,this.options.timezone)}else{this.pattern=new CronPattern(pattern,this.options.timezone)}if(func!==void 0){this.fn=func;this.schedule()}return this}Cron.prototype.next=function(prev){const next=this._next(prev);return next?next.getDate():null};Cron.prototype.enumerate=function(n,previous){const enumeration=[];let prev=previous||this.previousrun;while(n--&&(prev=this.next(prev))){enumeration.push(prev)}return enumeration};Cron.prototype.running=function(){const msLeft=this.msToNext(this.previousrun);const running=!this.options.paused&&this.fn!==void 0;return msLeft!==null&&running};Cron.prototype.previous=function(){return this.previousrun?this.previousrun.getDate():null};Cron.prototype.msToNext=function(prev){const next=this._next(prev||this.previousrun);prev=new CronDate(prev,this.options.timezone);if(next){return next.getTime(true)-prev.getTime(true)}else{return null}};Cron.prototype.stop=function(){this.options.kill=true;if(this.currentTimeout){clearTimeout(this.currentTimeout)}};Cron.prototype.pause=function(){return(this.options.paused=true)&&!this.options.kill};Cron.prototype.resume=function(){return!(this.options.paused=false)&&!this.options.kill};Cron.prototype.schedule=function(func,partial){if(func&&this.fn){throw new Error("Cron: It is not allowed to schedule two functions using the same Croner instance.")}else if(func){this.fn=func}let waitMs=this.msToNext(partial?partial:this.previousrun);const target=this.next(partial?partial:this.previousrun);if(waitMs===null)return this;if(waitMs>maxDelay){waitMs=maxDelay}this.currentTimeout=setTimeout(()=>{const now=new Date;if(waitMs!==maxDelay&&!this.options.paused&&now.getTime()>=target){this.options.maxRuns--;if(this.options.catch){try{this.fn(this,this.options.context)}catch(_e){}}else{this.fn(this,this.options.context)}this.previousrun=new CronDate(void 0,this.options.timezone);this.schedule()}else{this.schedule(undefined,now)}},waitMs);return this};Cron.prototype._next=function(prev){const hasPreviousRun=prev||this.previousrun?true:false;prev=new CronDate(prev,this.options.timezone);if(this.options.startAt&&prev&&prev.getTime(true)<this.options.startAt.getTime(true)){prev=this.options.startAt}const nextRun=this.once||new CronDate(prev,this.options.timezone).increment(this.pattern,this.options,hasPreviousRun);if(this.once&&this.once.getTime(true)<=prev.getTime(true)){return null}else if(nextRun===null||this.options.maxRuns<=0||this.options.kill||this.options.stopAt&&nextRun.getTime(true)>=this.options.stopAt.getTime(true)){return null}else{return nextRun}};Cron.Cron=Cron;Cron.Cron=Cron;return Cron});
|
|
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";const minitz={};minitz.toTZ=function(date,tzString){return new Date(date.toLocaleString("sv-SE",{timeZone:tzString}))};minitz.fromTZ=function(inputDate,tzString,throwOnInvalidTime){const inputDateWithOffset=new Date(inputDate.toLocaleString("sv-SE",{timeZone:tzString})),offset=inputDate.getTime()-inputDateWithOffset.getTime(),guessedLocalDate=new Date(inputDate.getTime()+offset),guessedInputDate=new Date(guessedLocalDate.toLocaleString("sv-SE",{timeZone:tzString}));const guessedInputDateOffset=guessedInputDate.getTime()-inputDate.getTime();if(guessedInputDateOffset===0){return guessedLocalDate}else{const guessedLocalDate2=new Date(inputDate.getTime()+offset-guessedInputDateOffset),guessedInputDate2=new Date(guessedLocalDate2.toLocaleString("sv-SE",{timeZone:tzString})),guessedInputDateOffset2=guessedInputDate2.getTime()-inputDate.getTime();if(guessedInputDateOffset2===0){return guessedLocalDate2}else if(!throwOnInvalidTime){return guessedLocalDate}else{throw new Error("Invalid date passed to fromTZ()")}}};minitz.minitz=minitz;function CronOptions(options){if(options===void 0){options={}}options.legacyMode=options.legacyMode===void 0?false:options.legacyMode;options.paused=options.paused===void 0?false:options.paused;options.maxRuns=options.maxRuns===void 0?Infinity:options.maxRuns;options.catch=options.catch===void 0?false:options.catch;options.interval=options.interval===void 0?0:parseInt(options.interval,10);options.kill=false;if(options.startAt){options.startAt=new CronDate(options.startAt,options.timezone)}if(options.stopAt){options.stopAt=new CronDate(options.stopAt,options.timezone)}if(options.interval!==null){if(isNaN(options.interval)){throw new Error("CronOptions: Supplied value for interval is not a number")}else if(options.interval<0){throw new Error("CronOptions: Supplied value for interval can not be negative")}}return options}function CronDate(date,timezone){this.timezone=timezone;if(date&&date instanceof Date){if(!isNaN(date)){this.fromDate(date)}else{throw new TypeError("CronDate: Invalid date passed as parameter to CronDate constructor")}}else if(date===void 0){this.fromDate(new Date)}else if(date&&typeof date==="string"){this.fromString(date)}else if(date instanceof CronDate){this.fromCronDate(date)}else{throw new TypeError("CronDate: Invalid type ("+typeof date+") passed as parameter to CronDate constructor")}}CronDate.prototype.fromDate=function(date){if(this.timezone){date=minitz.toTZ(date,this.timezone)}this.milliseconds=date.getMilliseconds();this.seconds=date.getSeconds();this.minutes=date.getMinutes();this.hours=date.getHours();this.days=date.getDate();this.months=date.getMonth();this.years=date.getFullYear()};CronDate.prototype.fromCronDate=function(date){this.timezone=date.timezone;this.milliseconds=date.milliseconds;this.seconds=date.seconds;this.minutes=date.minutes;this.hours=date.hours;this.days=date.days;this.months=date.months;this.years=date.years};CronDate.prototype.apply=function(){const newDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);this.milliseconds=newDate.getMilliseconds();this.seconds=newDate.getSeconds();this.minutes=newDate.getMinutes();this.hours=newDate.getHours();this.days=newDate.getDate();this.months=newDate.getMonth();this.years=newDate.getFullYear()};CronDate.prototype.fromString=function(str){const parsedDate=this.parseISOLocal(str);if(isNaN(parsedDate)){throw new TypeError("CronDate: Provided string value for CronDate could not be parsed as date.")}this.fromDate(parsedDate)};CronDate.prototype.increment=function(pattern,options,hasPreviousRun){if(options.interval>1&&hasPreviousRun){this.seconds+=options.interval}else{this.seconds+=1}this.milliseconds=0;this.apply();const findNext=(target,pattern,offset,override)=>{const startPos=override===void 0?this[target]+offset:0;for(let i=startPos;i<pattern[target].length;i++){let match=pattern[target][i];if(target==="days"){const targetDate=this.getDate(true);targetDate.setDate(i-offset);if(pattern.lastDayOfMonth){const targetDateCopy=new Date(targetDate);targetDateCopy.setDate(i-offset+1);if(targetDateCopy.getMonth()!==this.months){match=true}}const dowMatch=pattern.daysOfWeek[targetDate.getDay()];if(options.legacyMode){if(!pattern.starDayOfWeek&&pattern.starDayOfMonth){match=dowMatch}else if(!pattern.starDayOfWeek&&!pattern.starDayOfMonth){match=match||dowMatch}}else{match=match&&dowMatch}}if(match){this[target]=i-offset;return true}}return false},resetPrevious=offset=>{while(doing+offset>=0){findNext(toDo[doing+offset][0],pattern,toDo[doing+offset][2],0);doing--}};const toDo=[["seconds","minutes",0],["minutes","hours",0],["hours","days",0],["days","months",-1],["months","years",0]];let doing=0;while(doing<5){const currentValue=this[toDo[doing][0]];if(!findNext(toDo[doing][0],pattern,toDo[doing][2])){this[toDo[doing][1]]++;resetPrevious(0);this.apply()}else if(currentValue!==this[toDo[doing][0]]){resetPrevious(-1)}if(this.years>=4e3){return null}doing++}return this};CronDate.prototype.getDate=function(internal){const targetDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);if(internal||!this.timezone){return targetDate}else{return minitz.fromTZ(targetDate,this.timezone)}};CronDate.prototype.getTime=function(internal){return this.getDate(internal).getTime()};CronDate.prototype.parseISOLocal=function(dateTimeString){const dateTimeStringSplit=dateTimeString.split(/\D/);if(dateTimeStringSplit.length<6){return NaN}const year=parseInt(dateTimeStringSplit[0],10),month=parseInt(dateTimeStringSplit[1],10),day=parseInt(dateTimeStringSplit[2],10),hour=parseInt(dateTimeStringSplit[3],10),minute=parseInt(dateTimeStringSplit[4],10),second=parseInt(dateTimeStringSplit[5],10);if(isNaN(year)||isNaN(month)||isNaN(day)||isNaN(hour)||isNaN(minute)||isNaN(second)){return NaN}else{let generatedDate;if(dateTimeString.indexOf("Z")>0){generatedDate=new Date(Date.UTC(year,month-1,day,hour,minute,second));if(year==generatedDate.getUTCFullYear()&&month==generatedDate.getUTCMonth()+1&&day==generatedDate.getUTCDate()&&hour==generatedDate.getUTCHours()&&minute==generatedDate.getUTCMinutes()&&second==generatedDate.getUTCSeconds()){return generatedDate}else{return NaN}}else{generatedDate=new Date(year,month-1,day,hour,minute,second);if(year==generatedDate.getFullYear()&&month==generatedDate.getMonth()+1&&day==generatedDate.getDate()&&hour==generatedDate.getHours()&&minute==generatedDate.getMinutes()&&second==generatedDate.getSeconds()){return generatedDate}else{return NaN}}}};function CronPattern(pattern,timezone){this.pattern=pattern;this.timezone=timezone;this.seconds=Array(60).fill(0);this.minutes=Array(60).fill(0);this.hours=Array(24).fill(0);this.days=Array(31).fill(0);this.months=Array(12).fill(0);this.daysOfWeek=Array(8).fill(0);this.lastDayOfMonth=false;this.starDayOfMonth=false;this.starDayOfWeek=false;this.parse()}CronPattern.prototype.parse=function(){if(!(typeof this.pattern==="string"||this.pattern.constructor===String)){throw new TypeError("CronPattern: Pattern has to be of type string.")}this.pattern=this.handleNicknames(this.pattern);const parts=this.pattern.trim().replace(/\s+/g," ").split(" ");if(parts.length<5||parts.length>6){throw new TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exacly five or six space separated parts required.")}if(parts.length===5){parts.unshift("0")}if(parts[3].indexOf("L")>=0){parts[3]=parts[3].replace("L","");this.lastDayOfMonth=true}if(parts[3].toUpperCase()=="*"){this.starDayOfMonth=true}parts[4]=this.replaceAlphaMonths(parts[4]);parts[5]=this.replaceAlphaDays(parts[5]);if(parts[5].toUpperCase()=="*"){this.starDayOfWeek=true}const initDate=new CronDate(new Date,this.timezone).getDate(true);parts[0]=parts[0].replace("?",initDate.getSeconds());parts[1]=parts[1].replace("?",initDate.getMinutes());parts[2]=parts[2].replace("?",initDate.getHours());parts[3]=parts[3].replace("?",initDate.getDate());parts[4]=parts[4].replace("?",initDate.getMonth()+1);parts[5]=parts[5].replace("?",initDate.getDay());this.throwAtIllegalCharacters(parts);this.partToArray("seconds",parts[0],0);this.partToArray("minutes",parts[1],0);this.partToArray("hours",parts[2],0);this.partToArray("days",parts[3],-1);this.partToArray("months",parts[4],-1);this.partToArray("daysOfWeek",parts[5],0);if(this.daysOfWeek[7]){this.daysOfWeek[0]=1}};CronPattern.prototype.partToArray=function(type,conf,valueIndexOffset){const arr=this[type];if(conf==="*"){for(let i=0;i<arr.length;i++){arr[i]=1}return}const split=conf.split(",");if(split.length>1){for(let i=0;i<split.length;i++){this.partToArray(type,split[i],valueIndexOffset)}}else if(conf.indexOf("-")!==-1&&conf.indexOf("/")!==-1){this.handleRangeWithStepping(conf,type,valueIndexOffset)}else if(conf.indexOf("-")!==-1){this.handleRange(conf,type,valueIndexOffset)}else if(conf.indexOf("/")!==-1){this.handleStepping(conf,type,valueIndexOffset)}else if(conf!==""){this.handleNumber(conf,type,valueIndexOffset)}};CronPattern.prototype.throwAtIllegalCharacters=function(parts){const reValidCron=/[^/*0-9,-]+/;for(let i=0;i<parts.length;i++){if(reValidCron.test(parts[i])){throw new TypeError("CronPattern: configuration entry "+i+" ("+parts[i]+") contains illegal characters.")}}};CronPattern.prototype.handleNumber=function(conf,type,valueIndexOffset){const i=parseInt(conf,10)+valueIndexOffset;if(isNaN(i)){throw new TypeError("CronPattern: "+type+" is not a number: '"+conf+"'")}if(i<0||i>=this[type].length){throw new TypeError("CronPattern: "+type+" value out of range: '"+conf+"'")}this[type][i]=1};CronPattern.prototype.handleRangeWithStepping=function(conf,type,valueIndexOffset){const matches=conf.match(/^(\d+)-(\d+)\/(\d+)$/);if(matches===null)throw new TypeError("CronPattern: Syntax error, illegal range with stepping: '"+conf+"'");let[,lower,upper,steps]=matches;lower=parseInt(lower,10)+valueIndexOffset;upper=parseInt(upper,10)+valueIndexOffset;steps=parseInt(steps,10);if(isNaN(lower))throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(upper))throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");if(lower<0||upper>=this[type].length)throw new TypeError("CronPattern: Value out of range: '"+conf+"'");if(lower>upper)throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'");for(let i=lower;i<=upper;i+=steps){this[type][i]=1}};CronPattern.prototype.handleRange=function(conf,type,valueIndexOffset){const split=conf.split("-");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal range: '"+conf+"'")}const lower=parseInt(split[0],10)+valueIndexOffset,upper=parseInt(split[1],10)+valueIndexOffset;if(isNaN(lower)){throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)")}else if(isNaN(upper)){throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)")}if(lower<0||upper>=this[type].length){throw new TypeError("CronPattern: Value out of range: '"+conf+"'")}if(lower>upper){throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'")}for(let i=lower;i<=upper;i++){this[type][i]=1}};CronPattern.prototype.handleStepping=function(conf,type){const split=conf.split("/");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal stepping: '"+conf+"'")}let start=0;if(split[0]!=="*"){start=parseInt(split[0],10)}const steps=parseInt(split[1],10);if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");for(let i=start;i<this[type].length;i+=steps){this[type][i]=1}};CronPattern.prototype.replaceAlphaDays=function(conf){return conf.replace(/-sun/gi,"-7").replace(/sun/gi,"0").replace(/mon/gi,"1").replace(/tue/gi,"2").replace(/wed/gi,"3").replace(/thu/gi,"4").replace(/fri/gi,"5").replace(/sat/gi,"6")};CronPattern.prototype.replaceAlphaMonths=function(conf){return conf.replace(/jan/gi,"1").replace(/feb/gi,"2").replace(/mar/gi,"3").replace(/apr/gi,"4").replace(/may/gi,"5").replace(/jun/gi,"6").replace(/jul/gi,"7").replace(/aug/gi,"8").replace(/sep/gi,"9").replace(/oct/gi,"10").replace(/nov/gi,"11").replace(/dec/gi,"12")};CronPattern.prototype.handleNicknames=function(pattern){const cleanPattern=pattern.trim().toLowerCase();if(cleanPattern==="@yearly"||cleanPattern==="@annually"){return"0 0 1 1 *"}else if(cleanPattern==="@monthly"){return"0 0 1 * *"}else if(cleanPattern==="@weekly"){return"0 0 * * 0"}else if(cleanPattern==="@daily"){return"0 0 * * *"}else if(cleanPattern==="@hourly"){return"0 * * * *"}else{return pattern}};const maxDelay=Math.pow(2,32-1)-1;function Cron(pattern,fnOrOptions1,fnOrOptions2){if(!(this instanceof Cron)){return new Cron(pattern,fnOrOptions1,fnOrOptions2)}let options,func;if(typeof fnOrOptions1==="function"){func=fnOrOptions1}else if(typeof fnOrOptions1==="object"){options=fnOrOptions1}else if(fnOrOptions1!==void 0){throw new Error("Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).")}if(typeof fnOrOptions2==="function"){func=fnOrOptions2}else if(typeof fnOrOptions2==="object"){options=fnOrOptions2}else if(fnOrOptions2!==void 0){throw new Error("Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).")}this.options=CronOptions(options);this.once=void 0;this.pattern=void 0;if(pattern&&(pattern instanceof Date||typeof pattern==="string"&&pattern.indexOf(":")>0)){this.once=new CronDate(pattern,this.options.timezone)}else{this.pattern=new CronPattern(pattern,this.options.timezone)}if(func!==void 0){this.fn=func;this.schedule()}return this}Cron.prototype.next=function(prev){const next=this._next(prev);return next?next.getDate():null};Cron.prototype.enumerate=function(n,previous){const enumeration=[];let prev=previous||this.previousrun;while(n--&&(prev=this.next(prev))){enumeration.push(prev)}return enumeration};Cron.prototype.running=function(){const msLeft=this.msToNext(this.previousrun);const running=!this.options.paused&&this.fn!==void 0;return msLeft!==null&&running};Cron.prototype.previous=function(){return this.previousrun?this.previousrun.getDate():null};Cron.prototype.msToNext=function(prev){const next=this._next(prev||this.previousrun);prev=new CronDate(prev,this.options.timezone);if(next){return next.getTime(true)-prev.getTime(true)}else{return null}};Cron.prototype.stop=function(){this.options.kill=true;if(this.currentTimeout){clearTimeout(this.currentTimeout)}};Cron.prototype.pause=function(){return(this.options.paused=true)&&!this.options.kill};Cron.prototype.resume=function(){return!(this.options.paused=false)&&!this.options.kill};Cron.prototype.schedule=function(func,partial){if(func&&this.fn){throw new Error("Cron: It is not allowed to schedule two functions using the same Croner instance.")}else if(func){this.fn=func}let waitMs=this.msToNext(partial?partial:this.previousrun);const target=this.next(partial?partial:this.previousrun);if(waitMs===null)return this;if(waitMs>maxDelay){waitMs=maxDelay}this.currentTimeout=setTimeout(()=>{const now=new Date;if(waitMs!==maxDelay&&!this.options.paused&&now.getTime()>=target){this.options.maxRuns--;if(this.options.catch){try{this.fn(this,this.options.context)}catch(_e){}}else{this.fn(this,this.options.context)}this.previousrun=new CronDate(void 0,this.options.timezone);this.schedule()}else{this.schedule(undefined,now)}},waitMs);return this};Cron.prototype._next=function(prev){const hasPreviousRun=prev||this.previousrun?true:false;prev=new CronDate(prev,this.options.timezone);if(this.options.startAt&&prev&&prev.getTime(true)<this.options.startAt.getTime(true)){prev=this.options.startAt}const nextRun=this.once||new CronDate(prev,this.options.timezone).increment(this.pattern,this.options,hasPreviousRun);if(this.once&&this.once.getTime(true)<=prev.getTime(true)){return null}else if(nextRun===null||this.options.maxRuns<=0||this.options.kill||this.options.stopAt&&nextRun.getTime(true)>=this.options.stopAt.getTime(true)){return null}else{return nextRun}};Cron.Cron=Cron;Cron.Cron=Cron;return Cron});
|
package/dist/croner.min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["dist/croner.cjs"],"names":["global","factory","exports","module","define","amd","globalThis","self","Cron","this","CronTZ","date","tzString","reverse","CronFromTZ","Date","toLocaleString","timeZone","sourceDate","targetPlus","offset","getTime","let","testOffset","iterations","closestAfter","Infinity","testTarget","test","CronOptions","options","legacyMode","paused","maxRuns","catch","interval","parseInt","kill","startAt","CronDate","timezone","stopAt","isNaN","Error","fromDate","TypeError","fromString","fromCronDate","prototype","milliseconds","getMilliseconds","seconds","getSeconds","minutes","getMinutes","hours","getHours","days","getDate","months","getMonth","years","getFullYear","apply","newDate","str","parsedDate","parseISOLocal","increment","pattern","hasPreviousRun","findNext","target","override","startPos","i","length","match","targetDate","setDate","lastDayOfMonth","targetDateCopy","dowMatch","daysOfWeek","getDay","starDayOfWeek","starDayOfMonth","resetPrevious","doing","toDo","currentValue","internal","dateTimeString","dateTimeStringSplit","split","NaN","year","month","day","hour","minute","second","generatedDate","indexOf","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","CronPattern","Array","fill","parse","constructor","String","handleNicknames","parts","trim","replace","unshift","toUpperCase","replaceAlphaMonths","replaceAlphaDays","initDate","throwAtIllegalCharacters","partToArray","type","conf","valueIndexOffset","arr","handleRangeWithStepping","handleRange","handleStepping","handleNumber","reValidCron","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","toTZ","date","tzString","Date","toLocaleString","timeZone","fromTZ","inputDate","throwOnInvalidTime","inputDateWithOffset","offset","getTime","guessedLocalDate","guessedInputDate","guessedInputDateOffset","guessedLocalDate2","guessedInputDate2","guessedInputDateOffset2","Error","CronOptions","options","legacyMode","paused","maxRuns","Infinity","catch","interval","parseInt","kill","startAt","CronDate","timezone","stopAt","isNaN","fromDate","TypeError","fromString","fromCronDate","prototype","milliseconds","getMilliseconds","seconds","getSeconds","minutes","getMinutes","hours","getHours","days","getDate","months","getMonth","years","getFullYear","apply","newDate","str","parsedDate","parseISOLocal","increment","pattern","hasPreviousRun","findNext","target","override","startPos","let","i","length","match","targetDate","setDate","lastDayOfMonth","targetDateCopy","dowMatch","daysOfWeek","getDay","starDayOfWeek","starDayOfMonth","resetPrevious","doing","toDo","currentValue","internal","dateTimeString","dateTimeStringSplit","split","NaN","year","month","day","hour","minute","second","generatedDate","indexOf","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","CronPattern","Array","fill","parse","constructor","String","handleNicknames","parts","trim","replace","unshift","toUpperCase","replaceAlphaMonths","replaceAlphaDays","initDate","throwAtIllegalCharacters","partToArray","type","conf","valueIndexOffset","arr","handleRangeWithStepping","handleRange","handleStepping","handleNumber","reValidCron","test","matches","lower","upper","steps","start","cleanPattern","toLowerCase","maxDelay","Math","pow","fnOrOptions1","fnOrOptions2","func","once","fn","schedule","next","prev","_next","enumerate","n","previous","enumeration","previousrun","push","running","msLeft","msToNext","stop","currentTimeout","clearTimeout","pause","resume","partial","waitMs","setTimeout","now","context","_e","undefined","nextRun"],"mappings":"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"}
|
package/dist/croner.min.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function CronTZ(date,tzString,reverse){if(reverse){return CronFromTZ(date,tzString)}else{return new Date(date.toLocaleString("sv-SE",{timeZone:tzString}))}}function CronFromTZ(sourceDate,tzString){const targetPlus=new Date(sourceDate.toLocaleString("sv-SE",{timeZone:tzString})),offset=sourceDate.getTime()-targetPlus.getTime();let testOffset=0,iterations=0,closestAfter=-Infinity;while(iterations++<2){const testTarget=new Date(sourceDate.getTime()+offset-testOffset),test=new Date(testTarget.toLocaleString("sv-SE",{timeZone:tzString}));testOffset=test.getTime()-sourceDate.getTime();if(testOffset===0){return testTarget}else{if(testOffset<0&&testOffset>closestAfter){closestAfter=testOffset}}}return new Date(sourceDate.getTime()+offset-closestAfter)}function CronOptions(options){if(options===void 0){options={}}options.legacyMode=options.legacyMode===void 0?false:options.legacyMode;options.paused=options.paused===void 0?false:options.paused;options.maxRuns=options.maxRuns===void 0?Infinity:options.maxRuns;options.catch=options.catch===void 0?false:options.catch;options.interval=options.interval===void 0?0:parseInt(options.interval,10);options.kill=false;if(options.startAt){options.startAt=new CronDate(options.startAt,options.timezone)}if(options.stopAt){options.stopAt=new CronDate(options.stopAt,options.timezone)}if(options.interval!==null){if(isNaN(options.interval)){throw new Error("CronOptions: Supplied value for interval is not a number")}else if(options.interval<0){throw new Error("CronOptions: Supplied value for interval can not be negative")}}return options}function CronDate(date,timezone){this.timezone=timezone;if(date&&date instanceof Date){if(!isNaN(date)){this.fromDate(date)}else{throw new TypeError("CronDate: Invalid date passed as parameter to CronDate constructor")}}else if(date===void 0){this.fromDate(new Date)}else if(date&&typeof date==="string"){this.fromString(date)}else if(date instanceof CronDate){this.fromCronDate(date)}else{throw new TypeError("CronDate: Invalid type ("+typeof date+") passed as parameter to CronDate constructor")}}CronDate.prototype.fromDate=function(date){if(this.timezone){date=CronTZ(date,this.timezone)}this.milliseconds=date.getMilliseconds();this.seconds=date.getSeconds();this.minutes=date.getMinutes();this.hours=date.getHours();this.days=date.getDate();this.months=date.getMonth();this.years=date.getFullYear()};CronDate.prototype.fromCronDate=function(date){this.timezone=date.timezone;this.milliseconds=date.milliseconds;this.seconds=date.seconds;this.minutes=date.minutes;this.hours=date.hours;this.days=date.days;this.months=date.months;this.years=date.years};CronDate.prototype.apply=function(){const newDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);this.milliseconds=newDate.getMilliseconds();this.seconds=newDate.getSeconds();this.minutes=newDate.getMinutes();this.hours=newDate.getHours();this.days=newDate.getDate();this.months=newDate.getMonth();this.years=newDate.getFullYear()};CronDate.prototype.fromString=function(str){const parsedDate=this.parseISOLocal(str);if(isNaN(parsedDate)){throw new TypeError("CronDate: Provided string value for CronDate could not be parsed as date.")}this.fromDate(parsedDate)};CronDate.prototype.increment=function(pattern,options,hasPreviousRun){if(options.interval>1&&hasPreviousRun){this.seconds+=options.interval}else{this.seconds+=1}this.milliseconds=0;this.apply();const findNext=(target,pattern,offset,override)=>{const startPos=override===void 0?this[target]+offset:0;for(let i=startPos;i<pattern[target].length;i++){let match=pattern[target][i];if(target==="days"){const targetDate=this.getDate(true);targetDate.setDate(i-offset);if(pattern.lastDayOfMonth){const targetDateCopy=new Date(targetDate);targetDateCopy.setDate(i-offset+1);if(targetDateCopy.getMonth()!==this.months){match=true}}const dowMatch=pattern.daysOfWeek[targetDate.getDay()];if(options.legacyMode){if(!pattern.starDayOfWeek&&pattern.starDayOfMonth){match=dowMatch}else if(!pattern.starDayOfWeek&&!pattern.starDayOfMonth){match=match||dowMatch}}else{match=match&&dowMatch}}if(match){this[target]=i-offset;return true}}return false},resetPrevious=offset=>{while(doing+offset>=0){findNext(toDo[doing+offset][0],pattern,toDo[doing+offset][2],0);doing--}};const toDo=[["seconds","minutes",0],["minutes","hours",0],["hours","days",0],["days","months",-1],["months","years",0]];let doing=0;while(doing<5){const currentValue=this[toDo[doing][0]];if(!findNext(toDo[doing][0],pattern,toDo[doing][2])){this[toDo[doing][1]]++;resetPrevious(0);this.apply()}else if(currentValue!==this[toDo[doing][0]]){resetPrevious(-1)}if(this.years>=4e3){return null}doing++}return this};CronDate.prototype.getDate=function(internal){const targetDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);if(internal||!this.timezone){return targetDate}else{return CronTZ(targetDate,this.timezone,true)}};CronDate.prototype.getTime=function(internal){return this.getDate(internal).getTime()};CronDate.prototype.parseISOLocal=function(dateTimeString){const dateTimeStringSplit=dateTimeString.split(/\D/);if(dateTimeStringSplit.length<6){return NaN}const year=parseInt(dateTimeStringSplit[0],10),month=parseInt(dateTimeStringSplit[1],10),day=parseInt(dateTimeStringSplit[2],10),hour=parseInt(dateTimeStringSplit[3],10),minute=parseInt(dateTimeStringSplit[4],10),second=parseInt(dateTimeStringSplit[5],10);if(isNaN(year)||isNaN(month)||isNaN(day)||isNaN(hour)||isNaN(minute)||isNaN(second)){return NaN}else{let generatedDate;if(dateTimeString.indexOf("Z")>0){generatedDate=new Date(Date.UTC(year,month-1,day,hour,minute,second));if(year==generatedDate.getUTCFullYear()&&month==generatedDate.getUTCMonth()+1&&day==generatedDate.getUTCDate()&&hour==generatedDate.getUTCHours()&&minute==generatedDate.getUTCMinutes()&&second==generatedDate.getUTCSeconds()){return generatedDate}else{return NaN}}else{generatedDate=new Date(year,month-1,day,hour,minute,second);if(year==generatedDate.getFullYear()&&month==generatedDate.getMonth()+1&&day==generatedDate.getDate()&&hour==generatedDate.getHours()&&minute==generatedDate.getMinutes()&&second==generatedDate.getSeconds()){return generatedDate}else{return NaN}}}};function CronPattern(pattern,timezone){this.pattern=pattern;this.timezone=timezone;this.seconds=Array(60).fill(0);this.minutes=Array(60).fill(0);this.hours=Array(24).fill(0);this.days=Array(31).fill(0);this.months=Array(12).fill(0);this.daysOfWeek=Array(8).fill(0);this.lastDayOfMonth=false;this.starDayOfMonth=false;this.starDayOfWeek=false;this.parse()}CronPattern.prototype.parse=function(){if(!(typeof this.pattern==="string"||this.pattern.constructor===String)){throw new TypeError("CronPattern: Pattern has to be of type string.")}this.pattern=this.handleNicknames(this.pattern);const parts=this.pattern.trim().replace(/\s+/g," ").split(" ");if(parts.length<5||parts.length>6){throw new TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exacly five or six space separated parts required.")}if(parts.length===5){parts.unshift("0")}if(parts[3].indexOf("L")>=0){parts[3]=parts[3].replace("L","");this.lastDayOfMonth=true}if(parts[3].toUpperCase()=="*"){this.starDayOfMonth=true}parts[4]=this.replaceAlphaMonths(parts[4]);parts[5]=this.replaceAlphaDays(parts[5]);if(parts[5].toUpperCase()=="*"){this.starDayOfWeek=true}const initDate=new CronDate(new Date,this.timezone).getDate(true);parts[0]=parts[0].replace("?",initDate.getSeconds());parts[1]=parts[1].replace("?",initDate.getMinutes());parts[2]=parts[2].replace("?",initDate.getHours());parts[3]=parts[3].replace("?",initDate.getDate());parts[4]=parts[4].replace("?",initDate.getMonth()+1);parts[5]=parts[5].replace("?",initDate.getDay());this.throwAtIllegalCharacters(parts);this.partToArray("seconds",parts[0],0);this.partToArray("minutes",parts[1],0);this.partToArray("hours",parts[2],0);this.partToArray("days",parts[3],-1);this.partToArray("months",parts[4],-1);this.partToArray("daysOfWeek",parts[5],0);if(this.daysOfWeek[7]){this.daysOfWeek[0]=1}};CronPattern.prototype.partToArray=function(type,conf,valueIndexOffset){const arr=this[type];if(conf==="*"){for(let i=0;i<arr.length;i++){arr[i]=1}return}const split=conf.split(",");if(split.length>1){for(let i=0;i<split.length;i++){this.partToArray(type,split[i],valueIndexOffset)}}else if(conf.indexOf("-")!==-1&&conf.indexOf("/")!==-1){this.handleRangeWithStepping(conf,type,valueIndexOffset)}else if(conf.indexOf("-")!==-1){this.handleRange(conf,type,valueIndexOffset)}else if(conf.indexOf("/")!==-1){this.handleStepping(conf,type,valueIndexOffset)}else if(conf!==""){this.handleNumber(conf,type,valueIndexOffset)}};CronPattern.prototype.throwAtIllegalCharacters=function(parts){const reValidCron=/[^/*0-9,-]+/;for(let i=0;i<parts.length;i++){if(reValidCron.test(parts[i])){throw new TypeError("CronPattern: configuration entry "+i+" ("+parts[i]+") contains illegal characters.")}}};CronPattern.prototype.handleNumber=function(conf,type,valueIndexOffset){const i=parseInt(conf,10)+valueIndexOffset;if(isNaN(i)){throw new TypeError("CronPattern: "+type+" is not a number: '"+conf+"'")}if(i<0||i>=this[type].length){throw new TypeError("CronPattern: "+type+" value out of range: '"+conf+"'")}this[type][i]=1};CronPattern.prototype.handleRangeWithStepping=function(conf,type,valueIndexOffset){const matches=conf.match(/^(\d+)-(\d+)\/(\d+)$/);if(matches===null)throw new TypeError("CronPattern: Syntax error, illegal range with stepping: '"+conf+"'");let[,lower,upper,steps]=matches;lower=parseInt(lower,10)+valueIndexOffset;upper=parseInt(upper,10)+valueIndexOffset;steps=parseInt(steps,10);if(isNaN(lower))throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(upper))throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");if(lower<0||upper>=this[type].length)throw new TypeError("CronPattern: Value out of range: '"+conf+"'");if(lower>upper)throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'");for(let i=lower;i<=upper;i+=steps){this[type][i]=1}};CronPattern.prototype.handleRange=function(conf,type,valueIndexOffset){const split=conf.split("-");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal range: '"+conf+"'")}const lower=parseInt(split[0],10)+valueIndexOffset,upper=parseInt(split[1],10)+valueIndexOffset;if(isNaN(lower)){throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)")}else if(isNaN(upper)){throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)")}if(lower<0||upper>=this[type].length){throw new TypeError("CronPattern: Value out of range: '"+conf+"'")}if(lower>upper){throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'")}for(let i=lower;i<=upper;i++){this[type][i]=1}};CronPattern.prototype.handleStepping=function(conf,type){const split=conf.split("/");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal stepping: '"+conf+"'")}let start=0;if(split[0]!=="*"){start=parseInt(split[0],10)}const steps=parseInt(split[1],10);if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");for(let i=start;i<this[type].length;i+=steps){this[type][i]=1}};CronPattern.prototype.replaceAlphaDays=function(conf){return conf.replace(/-sun/gi,"-7").replace(/sun/gi,"0").replace(/mon/gi,"1").replace(/tue/gi,"2").replace(/wed/gi,"3").replace(/thu/gi,"4").replace(/fri/gi,"5").replace(/sat/gi,"6")};CronPattern.prototype.replaceAlphaMonths=function(conf){return conf.replace(/jan/gi,"1").replace(/feb/gi,"2").replace(/mar/gi,"3").replace(/apr/gi,"4").replace(/may/gi,"5").replace(/jun/gi,"6").replace(/jul/gi,"7").replace(/aug/gi,"8").replace(/sep/gi,"9").replace(/oct/gi,"10").replace(/nov/gi,"11").replace(/dec/gi,"12")};CronPattern.prototype.handleNicknames=function(pattern){const cleanPattern=pattern.trim().toLowerCase();if(cleanPattern==="@yearly"||cleanPattern==="@annually"){return"0 0 1 1 *"}else if(cleanPattern==="@monthly"){return"0 0 1 * *"}else if(cleanPattern==="@weekly"){return"0 0 * * 0"}else if(cleanPattern==="@daily"){return"0 0 * * *"}else if(cleanPattern==="@hourly"){return"0 * * * *"}else{return pattern}};const maxDelay=Math.pow(2,32-1)-1;function Cron(pattern,fnOrOptions1,fnOrOptions2){if(!(this instanceof Cron)){return new Cron(pattern,fnOrOptions1,fnOrOptions2)}let options,func;if(typeof fnOrOptions1==="function"){func=fnOrOptions1}else if(typeof fnOrOptions1==="object"){options=fnOrOptions1}else if(fnOrOptions1!==void 0){throw new Error("Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).")}if(typeof fnOrOptions2==="function"){func=fnOrOptions2}else if(typeof fnOrOptions2==="object"){options=fnOrOptions2}else if(fnOrOptions2!==void 0){throw new Error("Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).")}this.options=CronOptions(options);this.once=void 0;this.pattern=void 0;if(pattern&&(pattern instanceof Date||typeof pattern==="string"&&pattern.indexOf(":")>0)){this.once=new CronDate(pattern,this.options.timezone)}else{this.pattern=new CronPattern(pattern,this.options.timezone)}if(func!==void 0){this.fn=func;this.schedule()}return this}Cron.prototype.next=function(prev){const next=this._next(prev);return next?next.getDate():null};Cron.prototype.enumerate=function(n,previous){const enumeration=[];let prev=previous||this.previousrun;while(n--&&(prev=this.next(prev))){enumeration.push(prev)}return enumeration};Cron.prototype.running=function(){const msLeft=this.msToNext(this.previousrun);const running=!this.options.paused&&this.fn!==void 0;return msLeft!==null&&running};Cron.prototype.previous=function(){return this.previousrun?this.previousrun.getDate():null};Cron.prototype.msToNext=function(prev){const next=this._next(prev||this.previousrun);prev=new CronDate(prev,this.options.timezone);if(next){return next.getTime(true)-prev.getTime(true)}else{return null}};Cron.prototype.stop=function(){this.options.kill=true;if(this.currentTimeout){clearTimeout(this.currentTimeout)}};Cron.prototype.pause=function(){return(this.options.paused=true)&&!this.options.kill};Cron.prototype.resume=function(){return!(this.options.paused=false)&&!this.options.kill};Cron.prototype.schedule=function(func,partial){if(func&&this.fn){throw new Error("Cron: It is not allowed to schedule two functions using the same Croner instance.")}else if(func){this.fn=func}let waitMs=this.msToNext(partial?partial:this.previousrun);const target=this.next(partial?partial:this.previousrun);if(waitMs===null)return this;if(waitMs>maxDelay){waitMs=maxDelay}this.currentTimeout=setTimeout(()=>{const now=new Date;if(waitMs!==maxDelay&&!this.options.paused&&now.getTime()>=target){this.options.maxRuns--;if(this.options.catch){try{this.fn(this,this.options.context)}catch(_e){}}else{this.fn(this,this.options.context)}this.previousrun=new CronDate(void 0,this.options.timezone);this.schedule()}else{this.schedule(undefined,now)}},waitMs);return this};Cron.prototype._next=function(prev){const hasPreviousRun=prev||this.previousrun?true:false;prev=new CronDate(prev,this.options.timezone);if(this.options.startAt&&prev&&prev.getTime(true)<this.options.startAt.getTime(true)){prev=this.options.startAt}const nextRun=this.once||new CronDate(prev,this.options.timezone).increment(this.pattern,this.options,hasPreviousRun);if(this.once&&this.once.getTime(true)<=prev.getTime(true)){return null}else if(nextRun===null||this.options.maxRuns<=0||this.options.kill||this.options.stopAt&&nextRun.getTime(true)>=this.options.stopAt.getTime(true)){return null}else{return nextRun}};Cron.Cron=Cron;export{Cron,Cron as default};
|
|
1
|
+
const minitz={};minitz.toTZ=function(date,tzString){return new Date(date.toLocaleString("sv-SE",{timeZone:tzString}))};minitz.fromTZ=function(inputDate,tzString,throwOnInvalidTime){const inputDateWithOffset=new Date(inputDate.toLocaleString("sv-SE",{timeZone:tzString})),offset=inputDate.getTime()-inputDateWithOffset.getTime(),guessedLocalDate=new Date(inputDate.getTime()+offset),guessedInputDate=new Date(guessedLocalDate.toLocaleString("sv-SE",{timeZone:tzString}));const guessedInputDateOffset=guessedInputDate.getTime()-inputDate.getTime();if(guessedInputDateOffset===0){return guessedLocalDate}else{const guessedLocalDate2=new Date(inputDate.getTime()+offset-guessedInputDateOffset),guessedInputDate2=new Date(guessedLocalDate2.toLocaleString("sv-SE",{timeZone:tzString})),guessedInputDateOffset2=guessedInputDate2.getTime()-inputDate.getTime();if(guessedInputDateOffset2===0){return guessedLocalDate2}else if(!throwOnInvalidTime){return guessedLocalDate}else{throw new Error("Invalid date passed to fromTZ()")}}};minitz.minitz=minitz;function CronOptions(options){if(options===void 0){options={}}options.legacyMode=options.legacyMode===void 0?false:options.legacyMode;options.paused=options.paused===void 0?false:options.paused;options.maxRuns=options.maxRuns===void 0?Infinity:options.maxRuns;options.catch=options.catch===void 0?false:options.catch;options.interval=options.interval===void 0?0:parseInt(options.interval,10);options.kill=false;if(options.startAt){options.startAt=new CronDate(options.startAt,options.timezone)}if(options.stopAt){options.stopAt=new CronDate(options.stopAt,options.timezone)}if(options.interval!==null){if(isNaN(options.interval)){throw new Error("CronOptions: Supplied value for interval is not a number")}else if(options.interval<0){throw new Error("CronOptions: Supplied value for interval can not be negative")}}return options}function CronDate(date,timezone){this.timezone=timezone;if(date&&date instanceof Date){if(!isNaN(date)){this.fromDate(date)}else{throw new TypeError("CronDate: Invalid date passed as parameter to CronDate constructor")}}else if(date===void 0){this.fromDate(new Date)}else if(date&&typeof date==="string"){this.fromString(date)}else if(date instanceof CronDate){this.fromCronDate(date)}else{throw new TypeError("CronDate: Invalid type ("+typeof date+") passed as parameter to CronDate constructor")}}CronDate.prototype.fromDate=function(date){if(this.timezone){date=minitz.toTZ(date,this.timezone)}this.milliseconds=date.getMilliseconds();this.seconds=date.getSeconds();this.minutes=date.getMinutes();this.hours=date.getHours();this.days=date.getDate();this.months=date.getMonth();this.years=date.getFullYear()};CronDate.prototype.fromCronDate=function(date){this.timezone=date.timezone;this.milliseconds=date.milliseconds;this.seconds=date.seconds;this.minutes=date.minutes;this.hours=date.hours;this.days=date.days;this.months=date.months;this.years=date.years};CronDate.prototype.apply=function(){const newDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);this.milliseconds=newDate.getMilliseconds();this.seconds=newDate.getSeconds();this.minutes=newDate.getMinutes();this.hours=newDate.getHours();this.days=newDate.getDate();this.months=newDate.getMonth();this.years=newDate.getFullYear()};CronDate.prototype.fromString=function(str){const parsedDate=this.parseISOLocal(str);if(isNaN(parsedDate)){throw new TypeError("CronDate: Provided string value for CronDate could not be parsed as date.")}this.fromDate(parsedDate)};CronDate.prototype.increment=function(pattern,options,hasPreviousRun){if(options.interval>1&&hasPreviousRun){this.seconds+=options.interval}else{this.seconds+=1}this.milliseconds=0;this.apply();const findNext=(target,pattern,offset,override)=>{const startPos=override===void 0?this[target]+offset:0;for(let i=startPos;i<pattern[target].length;i++){let match=pattern[target][i];if(target==="days"){const targetDate=this.getDate(true);targetDate.setDate(i-offset);if(pattern.lastDayOfMonth){const targetDateCopy=new Date(targetDate);targetDateCopy.setDate(i-offset+1);if(targetDateCopy.getMonth()!==this.months){match=true}}const dowMatch=pattern.daysOfWeek[targetDate.getDay()];if(options.legacyMode){if(!pattern.starDayOfWeek&&pattern.starDayOfMonth){match=dowMatch}else if(!pattern.starDayOfWeek&&!pattern.starDayOfMonth){match=match||dowMatch}}else{match=match&&dowMatch}}if(match){this[target]=i-offset;return true}}return false},resetPrevious=offset=>{while(doing+offset>=0){findNext(toDo[doing+offset][0],pattern,toDo[doing+offset][2],0);doing--}};const toDo=[["seconds","minutes",0],["minutes","hours",0],["hours","days",0],["days","months",-1],["months","years",0]];let doing=0;while(doing<5){const currentValue=this[toDo[doing][0]];if(!findNext(toDo[doing][0],pattern,toDo[doing][2])){this[toDo[doing][1]]++;resetPrevious(0);this.apply()}else if(currentValue!==this[toDo[doing][0]]){resetPrevious(-1)}if(this.years>=4e3){return null}doing++}return this};CronDate.prototype.getDate=function(internal){const targetDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);if(internal||!this.timezone){return targetDate}else{return minitz.fromTZ(targetDate,this.timezone)}};CronDate.prototype.getTime=function(internal){return this.getDate(internal).getTime()};CronDate.prototype.parseISOLocal=function(dateTimeString){const dateTimeStringSplit=dateTimeString.split(/\D/);if(dateTimeStringSplit.length<6){return NaN}const year=parseInt(dateTimeStringSplit[0],10),month=parseInt(dateTimeStringSplit[1],10),day=parseInt(dateTimeStringSplit[2],10),hour=parseInt(dateTimeStringSplit[3],10),minute=parseInt(dateTimeStringSplit[4],10),second=parseInt(dateTimeStringSplit[5],10);if(isNaN(year)||isNaN(month)||isNaN(day)||isNaN(hour)||isNaN(minute)||isNaN(second)){return NaN}else{let generatedDate;if(dateTimeString.indexOf("Z")>0){generatedDate=new Date(Date.UTC(year,month-1,day,hour,minute,second));if(year==generatedDate.getUTCFullYear()&&month==generatedDate.getUTCMonth()+1&&day==generatedDate.getUTCDate()&&hour==generatedDate.getUTCHours()&&minute==generatedDate.getUTCMinutes()&&second==generatedDate.getUTCSeconds()){return generatedDate}else{return NaN}}else{generatedDate=new Date(year,month-1,day,hour,minute,second);if(year==generatedDate.getFullYear()&&month==generatedDate.getMonth()+1&&day==generatedDate.getDate()&&hour==generatedDate.getHours()&&minute==generatedDate.getMinutes()&&second==generatedDate.getSeconds()){return generatedDate}else{return NaN}}}};function CronPattern(pattern,timezone){this.pattern=pattern;this.timezone=timezone;this.seconds=Array(60).fill(0);this.minutes=Array(60).fill(0);this.hours=Array(24).fill(0);this.days=Array(31).fill(0);this.months=Array(12).fill(0);this.daysOfWeek=Array(8).fill(0);this.lastDayOfMonth=false;this.starDayOfMonth=false;this.starDayOfWeek=false;this.parse()}CronPattern.prototype.parse=function(){if(!(typeof this.pattern==="string"||this.pattern.constructor===String)){throw new TypeError("CronPattern: Pattern has to be of type string.")}this.pattern=this.handleNicknames(this.pattern);const parts=this.pattern.trim().replace(/\s+/g," ").split(" ");if(parts.length<5||parts.length>6){throw new TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exacly five or six space separated parts required.")}if(parts.length===5){parts.unshift("0")}if(parts[3].indexOf("L")>=0){parts[3]=parts[3].replace("L","");this.lastDayOfMonth=true}if(parts[3].toUpperCase()=="*"){this.starDayOfMonth=true}parts[4]=this.replaceAlphaMonths(parts[4]);parts[5]=this.replaceAlphaDays(parts[5]);if(parts[5].toUpperCase()=="*"){this.starDayOfWeek=true}const initDate=new CronDate(new Date,this.timezone).getDate(true);parts[0]=parts[0].replace("?",initDate.getSeconds());parts[1]=parts[1].replace("?",initDate.getMinutes());parts[2]=parts[2].replace("?",initDate.getHours());parts[3]=parts[3].replace("?",initDate.getDate());parts[4]=parts[4].replace("?",initDate.getMonth()+1);parts[5]=parts[5].replace("?",initDate.getDay());this.throwAtIllegalCharacters(parts);this.partToArray("seconds",parts[0],0);this.partToArray("minutes",parts[1],0);this.partToArray("hours",parts[2],0);this.partToArray("days",parts[3],-1);this.partToArray("months",parts[4],-1);this.partToArray("daysOfWeek",parts[5],0);if(this.daysOfWeek[7]){this.daysOfWeek[0]=1}};CronPattern.prototype.partToArray=function(type,conf,valueIndexOffset){const arr=this[type];if(conf==="*"){for(let i=0;i<arr.length;i++){arr[i]=1}return}const split=conf.split(",");if(split.length>1){for(let i=0;i<split.length;i++){this.partToArray(type,split[i],valueIndexOffset)}}else if(conf.indexOf("-")!==-1&&conf.indexOf("/")!==-1){this.handleRangeWithStepping(conf,type,valueIndexOffset)}else if(conf.indexOf("-")!==-1){this.handleRange(conf,type,valueIndexOffset)}else if(conf.indexOf("/")!==-1){this.handleStepping(conf,type,valueIndexOffset)}else if(conf!==""){this.handleNumber(conf,type,valueIndexOffset)}};CronPattern.prototype.throwAtIllegalCharacters=function(parts){const reValidCron=/[^/*0-9,-]+/;for(let i=0;i<parts.length;i++){if(reValidCron.test(parts[i])){throw new TypeError("CronPattern: configuration entry "+i+" ("+parts[i]+") contains illegal characters.")}}};CronPattern.prototype.handleNumber=function(conf,type,valueIndexOffset){const i=parseInt(conf,10)+valueIndexOffset;if(isNaN(i)){throw new TypeError("CronPattern: "+type+" is not a number: '"+conf+"'")}if(i<0||i>=this[type].length){throw new TypeError("CronPattern: "+type+" value out of range: '"+conf+"'")}this[type][i]=1};CronPattern.prototype.handleRangeWithStepping=function(conf,type,valueIndexOffset){const matches=conf.match(/^(\d+)-(\d+)\/(\d+)$/);if(matches===null)throw new TypeError("CronPattern: Syntax error, illegal range with stepping: '"+conf+"'");let[,lower,upper,steps]=matches;lower=parseInt(lower,10)+valueIndexOffset;upper=parseInt(upper,10)+valueIndexOffset;steps=parseInt(steps,10);if(isNaN(lower))throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(upper))throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");if(lower<0||upper>=this[type].length)throw new TypeError("CronPattern: Value out of range: '"+conf+"'");if(lower>upper)throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'");for(let i=lower;i<=upper;i+=steps){this[type][i]=1}};CronPattern.prototype.handleRange=function(conf,type,valueIndexOffset){const split=conf.split("-");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal range: '"+conf+"'")}const lower=parseInt(split[0],10)+valueIndexOffset,upper=parseInt(split[1],10)+valueIndexOffset;if(isNaN(lower)){throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)")}else if(isNaN(upper)){throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)")}if(lower<0||upper>=this[type].length){throw new TypeError("CronPattern: Value out of range: '"+conf+"'")}if(lower>upper){throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'")}for(let i=lower;i<=upper;i++){this[type][i]=1}};CronPattern.prototype.handleStepping=function(conf,type){const split=conf.split("/");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal stepping: '"+conf+"'")}let start=0;if(split[0]!=="*"){start=parseInt(split[0],10)}const steps=parseInt(split[1],10);if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");for(let i=start;i<this[type].length;i+=steps){this[type][i]=1}};CronPattern.prototype.replaceAlphaDays=function(conf){return conf.replace(/-sun/gi,"-7").replace(/sun/gi,"0").replace(/mon/gi,"1").replace(/tue/gi,"2").replace(/wed/gi,"3").replace(/thu/gi,"4").replace(/fri/gi,"5").replace(/sat/gi,"6")};CronPattern.prototype.replaceAlphaMonths=function(conf){return conf.replace(/jan/gi,"1").replace(/feb/gi,"2").replace(/mar/gi,"3").replace(/apr/gi,"4").replace(/may/gi,"5").replace(/jun/gi,"6").replace(/jul/gi,"7").replace(/aug/gi,"8").replace(/sep/gi,"9").replace(/oct/gi,"10").replace(/nov/gi,"11").replace(/dec/gi,"12")};CronPattern.prototype.handleNicknames=function(pattern){const cleanPattern=pattern.trim().toLowerCase();if(cleanPattern==="@yearly"||cleanPattern==="@annually"){return"0 0 1 1 *"}else if(cleanPattern==="@monthly"){return"0 0 1 * *"}else if(cleanPattern==="@weekly"){return"0 0 * * 0"}else if(cleanPattern==="@daily"){return"0 0 * * *"}else if(cleanPattern==="@hourly"){return"0 * * * *"}else{return pattern}};const maxDelay=Math.pow(2,32-1)-1;function Cron(pattern,fnOrOptions1,fnOrOptions2){if(!(this instanceof Cron)){return new Cron(pattern,fnOrOptions1,fnOrOptions2)}let options,func;if(typeof fnOrOptions1==="function"){func=fnOrOptions1}else if(typeof fnOrOptions1==="object"){options=fnOrOptions1}else if(fnOrOptions1!==void 0){throw new Error("Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).")}if(typeof fnOrOptions2==="function"){func=fnOrOptions2}else if(typeof fnOrOptions2==="object"){options=fnOrOptions2}else if(fnOrOptions2!==void 0){throw new Error("Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).")}this.options=CronOptions(options);this.once=void 0;this.pattern=void 0;if(pattern&&(pattern instanceof Date||typeof pattern==="string"&&pattern.indexOf(":")>0)){this.once=new CronDate(pattern,this.options.timezone)}else{this.pattern=new CronPattern(pattern,this.options.timezone)}if(func!==void 0){this.fn=func;this.schedule()}return this}Cron.prototype.next=function(prev){const next=this._next(prev);return next?next.getDate():null};Cron.prototype.enumerate=function(n,previous){const enumeration=[];let prev=previous||this.previousrun;while(n--&&(prev=this.next(prev))){enumeration.push(prev)}return enumeration};Cron.prototype.running=function(){const msLeft=this.msToNext(this.previousrun);const running=!this.options.paused&&this.fn!==void 0;return msLeft!==null&&running};Cron.prototype.previous=function(){return this.previousrun?this.previousrun.getDate():null};Cron.prototype.msToNext=function(prev){const next=this._next(prev||this.previousrun);prev=new CronDate(prev,this.options.timezone);if(next){return next.getTime(true)-prev.getTime(true)}else{return null}};Cron.prototype.stop=function(){this.options.kill=true;if(this.currentTimeout){clearTimeout(this.currentTimeout)}};Cron.prototype.pause=function(){return(this.options.paused=true)&&!this.options.kill};Cron.prototype.resume=function(){return!(this.options.paused=false)&&!this.options.kill};Cron.prototype.schedule=function(func,partial){if(func&&this.fn){throw new Error("Cron: It is not allowed to schedule two functions using the same Croner instance.")}else if(func){this.fn=func}let waitMs=this.msToNext(partial?partial:this.previousrun);const target=this.next(partial?partial:this.previousrun);if(waitMs===null)return this;if(waitMs>maxDelay){waitMs=maxDelay}this.currentTimeout=setTimeout(()=>{const now=new Date;if(waitMs!==maxDelay&&!this.options.paused&&now.getTime()>=target){this.options.maxRuns--;if(this.options.catch){try{this.fn(this,this.options.context)}catch(_e){}}else{this.fn(this,this.options.context)}this.previousrun=new CronDate(void 0,this.options.timezone);this.schedule()}else{this.schedule(undefined,now)}},waitMs);return this};Cron.prototype._next=function(prev){const hasPreviousRun=prev||this.previousrun?true:false;prev=new CronDate(prev,this.options.timezone);if(this.options.startAt&&prev&&prev.getTime(true)<this.options.startAt.getTime(true)){prev=this.options.startAt}const nextRun=this.once||new CronDate(prev,this.options.timezone).increment(this.pattern,this.options,hasPreviousRun);if(this.once&&this.once.getTime(true)<=prev.getTime(true)){return null}else if(nextRun===null||this.options.maxRuns<=0||this.options.kill||this.options.stopAt&&nextRun.getTime(true)>=this.options.stopAt.getTime(true)){return null}else{return nextRun}};Cron.Cron=Cron;export{Cron,Cron as default};
|
package/dist/croner.min.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["dist/croner.mjs"],"names":["CronTZ","date","tzString","reverse","CronFromTZ","Date","toLocaleString","timeZone","sourceDate","targetPlus","offset","getTime","let","testOffset","iterations","closestAfter","Infinity","testTarget","test","CronOptions","options","legacyMode","paused","maxRuns","catch","interval","parseInt","kill","startAt","CronDate","timezone","stopAt","isNaN","Error","this","fromDate","TypeError","fromString","fromCronDate","prototype","milliseconds","getMilliseconds","seconds","getSeconds","minutes","getMinutes","hours","getHours","days","getDate","months","getMonth","years","getFullYear","apply","newDate","str","parsedDate","parseISOLocal","increment","pattern","hasPreviousRun","findNext","target","override","startPos","i","length","match","targetDate","setDate","lastDayOfMonth","targetDateCopy","dowMatch","daysOfWeek","getDay","starDayOfWeek","starDayOfMonth","resetPrevious","doing","toDo","currentValue","internal","dateTimeString","dateTimeStringSplit","split","NaN","year","month","day","hour","minute","second","generatedDate","indexOf","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","CronPattern","Array","fill","parse","constructor","String","handleNicknames","parts","trim","replace","unshift","toUpperCase","replaceAlphaMonths","replaceAlphaDays","initDate","throwAtIllegalCharacters","partToArray","type","conf","valueIndexOffset","arr","handleRangeWithStepping","handleRange","handleStepping","handleNumber","reValidCron","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","toTZ","date","tzString","Date","toLocaleString","timeZone","fromTZ","inputDate","throwOnInvalidTime","inputDateWithOffset","offset","getTime","guessedLocalDate","guessedInputDate","guessedInputDateOffset","guessedLocalDate2","guessedInputDate2","guessedInputDateOffset2","Error","CronOptions","options","legacyMode","paused","maxRuns","Infinity","catch","interval","parseInt","kill","startAt","CronDate","timezone","stopAt","isNaN","this","fromDate","TypeError","fromString","fromCronDate","prototype","milliseconds","getMilliseconds","seconds","getSeconds","minutes","getMinutes","hours","getHours","days","getDate","months","getMonth","years","getFullYear","apply","newDate","str","parsedDate","parseISOLocal","increment","pattern","hasPreviousRun","findNext","target","override","startPos","let","i","length","match","targetDate","setDate","lastDayOfMonth","targetDateCopy","dowMatch","daysOfWeek","getDay","starDayOfWeek","starDayOfMonth","resetPrevious","doing","toDo","currentValue","internal","dateTimeString","dateTimeStringSplit","split","NaN","year","month","day","hour","minute","second","generatedDate","indexOf","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","CronPattern","Array","fill","parse","constructor","String","handleNicknames","parts","trim","replace","unshift","toUpperCase","replaceAlphaMonths","replaceAlphaDays","initDate","throwAtIllegalCharacters","partToArray","type","conf","valueIndexOffset","arr","handleRangeWithStepping","handleRange","handleStepping","handleNumber","reValidCron","test","matches","lower","upper","steps","start","cleanPattern","toLowerCase","maxDelay","Math","pow","Cron","fnOrOptions1","fnOrOptions2","func","once","fn","schedule","next","prev","_next","enumerate","n","previous","enumeration","previousrun","push","running","msLeft","msToNext","stop","currentTimeout","clearTimeout","pause","resume","partial","waitMs","setTimeout","now","context","_e","undefined","nextRun"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "croner",
|
|
3
|
-
"version": "4.4.
|
|
3
|
+
"version": "4.4.1",
|
|
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",
|
|
@@ -75,6 +75,7 @@
|
|
|
75
75
|
"eslint": "^8.19.0",
|
|
76
76
|
"jsdoc": "^3.6.10",
|
|
77
77
|
"jsdoc-chameleon-template": "^1.0.2",
|
|
78
|
+
"minitz": "^1.0.1",
|
|
78
79
|
"rollup": "^2.75.7",
|
|
79
80
|
"typescript": "^4.7.4",
|
|
80
81
|
"uglify-js": "^3.16.2",
|
package/src/date.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { minitz } from "./tz.js";
|
|
2
2
|
|
|
3
3
|
// This import is only used by tsc for generating type definitions from js/jsdoc
|
|
4
4
|
// deno-lint-ignore no-unused-vars
|
|
@@ -42,7 +42,7 @@ function CronDate (date, timezone) {
|
|
|
42
42
|
CronDate.prototype.fromDate = function (date) {
|
|
43
43
|
|
|
44
44
|
if (this.timezone) {
|
|
45
|
-
date =
|
|
45
|
+
date = minitz.toTZ(date, this.timezone);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
this.milliseconds = date.getMilliseconds();
|
|
@@ -289,7 +289,7 @@ CronDate.prototype.getDate = function (internal) {
|
|
|
289
289
|
if (internal || !this.timezone) {
|
|
290
290
|
return targetDate;
|
|
291
291
|
} else {
|
|
292
|
-
return
|
|
292
|
+
return minitz.fromTZ(targetDate, this.timezone);
|
|
293
293
|
}
|
|
294
294
|
};
|
|
295
295
|
|
package/src/tz.js
CHANGED
|
@@ -1,65 +1,110 @@
|
|
|
1
|
-
|
|
2
|
-
* "Converts" a date to a specific time zone
|
|
3
|
-
*
|
|
4
|
-
* Note: This is only for specific and controlled usage,
|
|
5
|
-
* as the internal UTC time of the resulting object will be off.
|
|
6
|
-
*
|
|
7
|
-
* Example:
|
|
8
|
-
* let normalDate = new Date(); // d is a normal Date instance, with local timezone and correct utc representation
|
|
9
|
-
* tzDate = CronTZ(d, 'America/New_York') // d is a tainted Date instance, where getHours()
|
|
10
|
-
* (for example) will return local time in new york, but getUTCHours()
|
|
11
|
-
* will return something irrelevant.
|
|
12
|
-
*
|
|
13
|
-
* @param {date} date - Input date
|
|
14
|
-
* @param {string} tzString - Timezone string in Europe/Stockholm format
|
|
15
|
-
* @param {boolean} [reverse] - Reverse operation
|
|
16
|
-
* @returns {date}
|
|
17
|
-
*/
|
|
18
|
-
function CronTZ(date, tzString, reverse) {
|
|
19
|
-
if (reverse) {
|
|
20
|
-
return CronFromTZ(date, tzString);
|
|
21
|
-
} else {
|
|
22
|
-
return new Date(date.toLocaleString("sv-SE", {timeZone: tzString}));
|
|
23
|
-
}
|
|
24
|
-
}
|
|
1
|
+
/* ------------------------------------------------------------------------------------
|
|
25
2
|
|
|
26
|
-
|
|
27
|
-
* Reverse of CronTZ
|
|
28
|
-
*
|
|
29
|
-
* @param {date} date - Input (tainted) date
|
|
30
|
-
* @param {string} tzString - Timezone string in Europe/Stockholm format
|
|
31
|
-
* @returns {date}
|
|
32
|
-
*/
|
|
33
|
-
function CronFromTZ(sourceDate, tzString) {
|
|
3
|
+
minitz - 1.0.1 - MIT License - Hexagon <hexagon@56k.guru>
|
|
34
4
|
|
|
35
|
-
|
|
36
|
-
const
|
|
37
|
-
targetPlus = new Date(sourceDate.toLocaleString("sv-SE", {timeZone: tzString})),
|
|
38
|
-
offset = sourceDate.getTime() - targetPlus.getTime();
|
|
5
|
+
Bundled manually, check for updates at https://github.com/Hexagon/minitz
|
|
39
6
|
|
|
40
|
-
|
|
41
|
-
iterations = 0,
|
|
42
|
-
closestAfter = -Infinity;
|
|
7
|
+
------------------------------------------------------------------------------------
|
|
43
8
|
|
|
44
|
-
|
|
45
|
-
const
|
|
46
|
-
testTarget = new Date(sourceDate.getTime() + offset - testOffset),
|
|
47
|
-
test = new Date(testTarget.toLocaleString("sv-SE", {timeZone: tzString}));
|
|
9
|
+
License:
|
|
48
10
|
|
|
49
|
-
|
|
11
|
+
Copyright (c) 2022 Hexagon <hexagon@56k.guru>
|
|
50
12
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
13
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
14
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
15
|
+
in the Software without restriction, including without limitation the rights
|
|
16
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
17
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
18
|
+
furnished to do so, subject to the following conditions:
|
|
19
|
+
The above copyright notice and this permission notice shall be included in
|
|
20
|
+
all copies or substantial portions of the Software.
|
|
21
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
22
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
23
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
24
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
25
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
26
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
27
|
+
THE SOFTWARE.
|
|
58
28
|
|
|
59
|
-
|
|
29
|
+
------------------------------------------------------------------------------------ */
|
|
60
30
|
|
|
61
|
-
|
|
31
|
+
const minitz = {};
|
|
62
32
|
|
|
63
|
-
|
|
33
|
+
/**
|
|
34
|
+
* "Converts" a date to a specific time zone
|
|
35
|
+
*
|
|
36
|
+
* **Note:** The resulting Date object will have local time set to target timezone,
|
|
37
|
+
* but any functions/formatting working with UTC time, or offset will be misleading.
|
|
38
|
+
*
|
|
39
|
+
* Only use this function to get a formatted local time string.
|
|
40
|
+
*
|
|
41
|
+
* Example:
|
|
42
|
+
* let normalDate = new Date(); // d is a normal Date instance, with local timezone and correct utc representation
|
|
43
|
+
* tzDate = minitz.toTZ(d, 'America/New_York') // d is a tainted Date instance, where getHours()
|
|
44
|
+
* (for example) will return local time in new york, but getUTCHours()
|
|
45
|
+
* will return something irrelevant.
|
|
46
|
+
*
|
|
47
|
+
* @public
|
|
48
|
+
*
|
|
49
|
+
* @param {date} date - Input date
|
|
50
|
+
* @param {string} tzString - Timezone string in Europe/Stockholm format
|
|
51
|
+
* @returns {date} - Date object with local time adjusted to target timezone. UTC time WILL be off.
|
|
52
|
+
*/
|
|
53
|
+
minitz.toTZ = function (date, tzString) {
|
|
54
|
+
return new Date(date.toLocaleString("sv-SE", {timeZone: tzString}));
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Reverse of toTZ
|
|
59
|
+
*
|
|
60
|
+
* @public
|
|
61
|
+
*
|
|
62
|
+
* @param {date} date - Tainted input date, where local time is time in target timezone
|
|
63
|
+
* @param {string} tzString - Timezone string in Europe/Stockholm format
|
|
64
|
+
* @param {boolean} [throwOnInvalidTime] - Default is to return adjusted time if input time is during an DST switch.
|
|
65
|
+
* E.g. assume 01:01:01 if input is 00:01:01 but time actually
|
|
66
|
+
* skips from 23:59:59 to 01:00:00. Setting this flag makes the library throw instead.
|
|
67
|
+
* @returns {null|date} - Normal date object with correct UTC and Local time
|
|
68
|
+
*/
|
|
69
|
+
minitz.fromTZ = function(inputDate, tzString, throwOnInvalidTime) {
|
|
70
|
+
|
|
71
|
+
// Get initial offset between timezones starting from input time.
|
|
72
|
+
// Then create a guessed local time by subtracting offset from input time
|
|
73
|
+
// and try recreating input time using guessed local time and calculated offset.
|
|
74
|
+
const
|
|
75
|
+
inputDateWithOffset = new Date(inputDate.toLocaleString("sv-SE", {timeZone: tzString})),
|
|
76
|
+
offset = inputDate.getTime() - inputDateWithOffset.getTime(),
|
|
77
|
+
guessedLocalDate = new Date(inputDate.getTime() + offset),
|
|
78
|
+
guessedInputDate = new Date(guessedLocalDate.toLocaleString("sv-SE", {timeZone: tzString}));
|
|
79
|
+
|
|
80
|
+
// Check if recreated input time matches actual input time
|
|
81
|
+
const
|
|
82
|
+
guessedInputDateOffset = guessedInputDate.getTime() - inputDate.getTime();
|
|
83
|
+
if (guessedInputDateOffset === 0) {
|
|
84
|
+
// All good, return local time
|
|
85
|
+
return guessedLocalDate;
|
|
86
|
+
} else {
|
|
87
|
+
// Not quite there yet, make a second try on guessing local time, adjust by the offset from previous guess
|
|
88
|
+
// Try recreating input time again
|
|
89
|
+
// Then calculate and check offset again
|
|
90
|
+
const
|
|
91
|
+
guessedLocalDate2 = new Date(inputDate.getTime() + offset - guessedInputDateOffset),
|
|
92
|
+
guessedInputDate2 = new Date(guessedLocalDate2.toLocaleString("sv-SE", {timeZone: tzString})),
|
|
93
|
+
guessedInputDateOffset2 = guessedInputDate2.getTime() - inputDate.getTime();
|
|
94
|
+
if (guessedInputDateOffset2 === 0) {
|
|
95
|
+
// All good, return local time
|
|
96
|
+
return guessedLocalDate2;
|
|
97
|
+
} else if (!throwOnInvalidTime) {
|
|
98
|
+
// Input time is invalid, it is probably a point in time skipped by a DST switch, return the local time adjusted by initial offset
|
|
99
|
+
return guessedLocalDate;
|
|
100
|
+
} else {
|
|
101
|
+
// Input time is invalid, and the library is instructed to throw, so let's do it
|
|
102
|
+
throw new Error("Invalid date passed to fromTZ()");
|
|
103
|
+
}
|
|
104
|
+
}
|
|
64
105
|
|
|
65
|
-
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
minitz.minitz = minitz;
|
|
109
|
+
export default minitz;
|
|
110
|
+
export { minitz };
|
package/types/tz.d.ts
CHANGED
|
@@ -1,18 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
1
|
+
export default minitz;
|
|
2
|
+
export namespace minitz {
|
|
3
|
+
/**
|
|
4
|
+
* "Converts" a date to a specific time zone
|
|
5
|
+
*
|
|
6
|
+
* **Note:** The resulting Date object will have local time set to target timezone,
|
|
7
|
+
* but any functions/formatting working with UTC time, or offset will be misleading.
|
|
8
|
+
*
|
|
9
|
+
* Only use this function to get a formatted local time string.
|
|
10
|
+
*
|
|
11
|
+
* Example:
|
|
12
|
+
* let normalDate = new Date(); // d is a normal Date instance, with local timezone and correct utc representation
|
|
13
|
+
* tzDate = minitz.toTZ(d, 'America/New_York') // d is a tainted Date instance, where getHours()
|
|
14
|
+
* (for example) will return local time in new york, but getUTCHours()
|
|
15
|
+
* will return something irrelevant.
|
|
16
|
+
*
|
|
17
|
+
* @public
|
|
18
|
+
*
|
|
19
|
+
* @param {date} date - Input date
|
|
20
|
+
* @param {string} tzString - Timezone string in Europe/Stockholm format
|
|
21
|
+
* @returns {date} - Date object with local time adjusted to target timezone. UTC time WILL be off.
|
|
22
|
+
*/
|
|
23
|
+
export function toTZ(date: any, tzString: string): any;
|
|
24
|
+
/**
|
|
25
|
+
* Reverse of toTZ
|
|
26
|
+
*
|
|
27
|
+
* @public
|
|
28
|
+
*
|
|
29
|
+
* @param {date} date - Tainted input date, where local time is time in target timezone
|
|
30
|
+
* @param {string} tzString - Timezone string in Europe/Stockholm format
|
|
31
|
+
* @param {boolean} [throwOnInvalidTime] - Default is to return adjusted time if input time is during an DST switch.
|
|
32
|
+
* E.g. assume 01:01:01 if input is 00:01:01 but time actually
|
|
33
|
+
* skips from 23:59:59 to 01:00:00. Setting this flag makes the library throw instead.
|
|
34
|
+
* @returns {null|date} - Normal date object with correct UTC and Local time
|
|
35
|
+
*/
|
|
36
|
+
export function fromTZ(inputDate: any, tzString: string, throwOnInvalidTime?: boolean): any;
|
|
37
|
+
export { minitz };
|
|
38
|
+
}
|