cronli5 0.8.3 → 0.8.5
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/CHANGELOG.md +47 -0
- package/cronli5.min.js +2 -2
- package/dist/cronli5.cjs +19 -1
- package/dist/cronli5.js +19 -1
- package/dist/lang/de.cjs +49 -3
- package/dist/lang/de.js +49 -3
- package/dist/lang/en.cjs +19 -1
- package/dist/lang/en.js +19 -1
- package/dist/lang/es.cjs +68 -5
- package/dist/lang/es.js +68 -5
- package/dist/lang/fi.cjs +30 -0
- package/dist/lang/fi.js +30 -0
- package/dist/lang/fr.cjs +63 -25
- package/dist/lang/fr.js +63 -25
- package/dist/lang/pt.cjs +64 -25
- package/dist/lang/pt.js +64 -25
- package/dist/lang/zh.cjs +13 -3
- package/dist/lang/zh.js +13 -3
- package/package.json +1 -1
- package/src/lang/de/index.ts +119 -7
- package/src/lang/en/index.ts +57 -3
- package/src/lang/es/index.ts +158 -12
- package/src/lang/fi/index.ts +77 -0
- package/src/lang/fr/index.ts +132 -33
- package/src/lang/pt/index.ts +131 -36
- package/src/lang/zh/index.ts +35 -9
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,53 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.8.5]
|
|
10
|
+
|
|
11
|
+
Blind per-language Claude Sonnet panels reviewed the seconds-within-minute
|
|
12
|
+
confinement forms (the non-English mirrors added in 0.8.3–0.8.4).
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
|
|
16
|
+
- **French & Portuguese: a minute step inside the seconds confinement no longer
|
|
17
|
+
reads as a single minute.** It rendered a stepped minute with an ordinal — fr
|
|
18
|
+
"à la sixième minute", pt "no sexto minuto" — which a native reads as one
|
|
19
|
+
minute (the 10th), not every sixth. It now uses the same cardinal cadence the
|
|
20
|
+
standalone already used: fr "…toutes les six minutes à partir de la minute 4…",
|
|
21
|
+
pt "…a cada seis minutos a partir do minuto 4…".
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
|
|
25
|
+
- **Chinese: a clean seconds step is no longer spelled out.** Under a minute
|
|
26
|
+
confinement, `0/6` now reads "每6秒" (mirroring "每6分钟") instead of listing
|
|
27
|
+
"第0、6、…、54秒".
|
|
28
|
+
- **Spanish & German: dropped the comma** before the locative minute phrase in
|
|
29
|
+
the seconds confinement ("cada segundo en los minutos…", "jede Sekunde in den
|
|
30
|
+
Minuten…"). The locative-vs-genitive preposition split is correct grammar and
|
|
31
|
+
is unchanged. Finnish is unchanged pending a dedicated redesign (see backlog).
|
|
32
|
+
|
|
33
|
+
## [0.8.4]
|
|
34
|
+
|
|
35
|
+
### Fixed
|
|
36
|
+
|
|
37
|
+
- **Seconds combined with a minute restriction now confine instead of
|
|
38
|
+
juxtaposing.** A seconds clause beside a minute restriction used to be joined
|
|
39
|
+
by a comma — which reads as two independent schedules — in two places:
|
|
40
|
+
- **English: a seconds *step*** (`0/6`, `*/6`, `5/6`) juxtaposed ("every six
|
|
41
|
+
seconds, every six minutes from four minutes past the hour") while the
|
|
42
|
+
seconds wildcard already confined. English now confines any seconds step:
|
|
43
|
+
"every six seconds during every sixth minute from four minutes past the
|
|
44
|
+
hour" — matching the other six languages.
|
|
45
|
+
- **All languages: a seconds *list, range, or single value*** under a minute
|
|
46
|
+
restriction (`5,10,15 4/6`, `30 4/6`, `0-30 4/6`, `5,10,15 0,15,30`)
|
|
47
|
+
juxtaposed; a blind panel of Claude Sonnet instances confirmed the comma
|
|
48
|
+
reads as two schedules. Each language now confines it — e.g. English "at 5,
|
|
49
|
+
10, and 15 seconds past the minute during every sixth minute from four
|
|
50
|
+
minutes past the hour".
|
|
51
|
+
|
|
52
|
+
English and Chinese are now uniform across the whole seconds × minute surface
|
|
53
|
+
(wildcard, step, offset-step, list, range, single); a remaining es/de/fi/fr/pt
|
|
54
|
+
connector nuance under a minute list is tracked for native review.
|
|
55
|
+
|
|
9
56
|
## [0.8.3]
|
|
10
57
|
|
|
11
58
|
### Fixed
|
package/cronli5.min.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";(()=>{var Cr={SUN:0,MON:1,TUE:2,WED:3,THU:4,FRI:5,SAT:6},xr={JAN:1,FEB:2,MAR:3,APR:4,MAY:5,JUN:6,JUL:7,AUG:8,SEP:9,OCT:10,NOV:11,DEC:12},N={second:{cyclic:!0,max:59,min:0,top:59},minute:{cyclic:!0,max:59,min:0,top:59},hour:{cyclic:!0,max:23,min:0,top:23},date:{cyclic:!0,max:31,min:1,top:31},month:{cyclic:!0,max:12,min:1,numbers:xr,top:12},weekday:{aliases:{L:"6"},cyclic:!0,max:7,min:0,numbers:Cr,top:6},year:{max:9999,min:1970}},M=["second","minute","hour","date","month","weekday","year"],sn={"@annually":"0 0 1 1 *","@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@midnight":"0 0 * * *","@hourly":"0 * * * *"},U=6;function l(n,r){return(""+n).indexOf(r)!==-1}function Z(n){return Array.from(new Set(n))}function H(n){return/^\d+$/.test(n)}function d(n,r){return H(n)?+n:r[n.toUpperCase()]}function Hn(n){return M.forEach(function(e){Pr(n[e],N[e],e)}),n}function Pr(n,r,e){typeof n!="string"&&typeof n!="number"&&Wn(n,e);let t=""+n;t!=="*"&&(e==="date"&&q(t)||e==="weekday"&&Q(t,r)||t.split(",").forEach(function(o){Tr(o,r)||Wn(o,e)}))}function q(n){if(n==="L"||n==="LW"||n==="WL")return!0;let r=/^L-(\d{1,2})$/.exec(n);if(r)return+r[1]>=1&&+r[1]<=30;let e=/^(\d{1,2})W$|^W(\d{1,2})$/.exec(n);if(e){let t=+(e[1]||e[2]);return t>=1&&t<=31}return!1}function Q(n,r){if(/L$/.test(n))return L(n.slice(0,-1),r);let e=n.split("#");return e.length===2?L(e[0],r)&&/^[1-5]$/.test(e[1]):!1}function Tr(n,r){return l(n,"/")?Mr(n,r):l(n,"-")?Ln(n,r):L(n,r)}function Mr(n,r){let e=n.split("/");return e.length!==2||!H(e[1])||+e[1]<1?!1:e[0]==="*"||L(e[0],r)||Ln(e[0],r,!0)}function Ln(n,r,e){let t=n.split("-");return t.length!==2||!L(t[0],r)||!L(t[1],r)?!1:r.cyclic&&!e?!0:d(t[0],r.numbers)<=d(t[1],r.numbers)}function L(n,r){return n==="*"?!1:H(n)?+n>=r.min&&+n<=r.max:r.numbers?n.toUpperCase()in r.numbers:!1}function Wn(n,r){throw new Error('`cronli5` was passed an invalid field value "'+n+'" for the '+r+" field.")}var Fr={hour:24,minute:60,second:60};function jn(n){M.forEach(function(e){let t=N[e].aliases,i=t&&t[""+n[e]];i&&(n[e]=i)})}function Dn(n){return M.forEach(function(e){let t=""+n[e];if(e==="date"&&q(t)||e==="weekday"&&Q(t,N[e])){n[e]=t;return}n[e]=Wr(t,e,N[e])}),n}function Wr(n,r,e){let t=""+n;if(t==="*")return t;let i=Fr[r],o=t.split(",").map(function(s){return Hr(Rn(Dr(Rr(Ar(jr(Er(s,e),e),e),e),e,i),e),e)}).join(",").split(",");return o.indexOf("*")!==-1?"*":Z(o).sort(function(s,c){return En(s,e)-En(c,e)}).join(",")}function Hr(n,r){if(!r.numbers)return n;let e=n.split("/"),t=e[0].split("-").map(function(o){return Lr(o,r)}).join("-");return e.length===2?t+"/"+e[1]:t}function Lr(n,r){if(n==="*")return n;let e=d(n,r.numbers);return""+(e>r.top?r.min:e)}function Er(n,r){let e=n.split("/");if(!r.cyclic||e.length!==2||+e[1]!=1)return n;let t=e[0];return l(t,"-")?t:t==="*"||d(t,r.numbers)===r.min?"*":t+"-"+r.top}function jr(n,r){let e=n.split("/");if(!r.cyclic||typeof r.top!="number"||e.length!==2||l(e[0],"-"))return n;let t=e[0];return(t==="*"?r.min:d(t,r.numbers))+ +e[1]<=r.top?n:t==="*"?""+r.min:t}function Dr(n,r,e){let t=n.split("/");if(typeof e!="number"||t.length!==2||l(t[0],"-"))return n;let i=+t[1],o=t[0]==="*"?r.min:d(t[0]);if(e%i===0&&o<i)return n;let u=[];for(let s=o;s<=r.top;s+=i)u.push(s);return u.join(",")}function Rr(n,r){let e=n.split("/");return e.length!==2||!l(e[0],"-")?n:Rn(e[0],r)==="*"?"*/"+e[1]:n}function Rn(n,r){if(typeof r.top!="number"||l(n,"/")||!l(n,"-"))return n;let e=n.split("-"),t=d(e[0],r.numbers),i=d(e[1],r.numbers);if(t>i)return n;let o=r.top,u={};for(let s=t;s<=i;s+=1)u[s>o?r.min:s]=!0;for(let s=r.min;s<=o;s+=1)if(!u[s])return n;return"*"}function Ar(n,r){let e=n.split("/")[0];if(!l(e,"-"))return n;let t=e.split("-");return d(t[0],r.numbers)!==d(t[1],r.numbers)?n:t[0]}function En(n,r){let e=n.split("/")[0].split("-")[0];return e==="*"?r.min:d(e,r.numbers)}var Ur="`?` is a Quartz token \u2014 pass { quartz: true } to enable Quartz semantics.";function Un(n,r){if(!r){An(n.date),An(n.weekday);return}if(""+n.date=="?"&&(n.date="*"),""+n.weekday=="?"){n.weekday="*";return}n.weekday=qr(""+n.weekday)}function An(n){if(""+n=="?")throw new Error(Ur)}function qr(n){return n==="*"?n:n.split(",").map(Qr).join(",")}function Qr(n){let r=/(#\d+|L)$/.exec(n),e=r?r[0]:"",i=(e?n.slice(0,-e.length):n).split("/"),o=i[0].split("-").map(Vr).join("-");return(i.length===2?o+"/"+i[1]:o)+e}function Vr(n){if(!H(n))return n;if(n==="0")throw new Error('`cronli5` was passed an invalid Quartz day-of-week value "0"; Quartz numbers weekdays 1 (Sunday) through 7 (Saturday).');return""+(+n-1)}function qn(n,r){let e=n instanceof Array;if(n===null||typeof n>"u"||n===""||e&&n.length===0)throw new Error("`cronli5` expects a non-empty cron pattern as the first argument.");if(e)return Qn(n,r);if(typeof n=="object")return Ir(n);if(typeof n=="string")return $r(n,r);throw new Error("`cronli5` was passed an unexpected type.")}function Qn(n,r){if(n.length>7)throw new Error("`cronli5` was passed a cron pattern with more than seven fields.");return!r.seconds&&n.length<(r.years?7:6)&&n.unshift("0"),{second:n[0]||"0",minute:n[1]||"*",hour:n[2]||"*",date:n[3]||"*",month:n[4]||"*",weekday:n[5]||"*",year:n[6]||"*"}}function Ir(n){if(!n.second&&!n.minute&&!n.hour)throw new Error("`cronli5` expects that any object being interpreted as a cron pattern have at least one of the following properties: `second`, `minute`, or `hour`");let r=typeof n.second<"u",e=typeof n.minute<"u",t=r?"*":"0",i=r||e?"*":"0";return{second:F(n.second,"0"),minute:F(n.minute,t),hour:F(n.hour,i),date:F(n.date,"*"),month:F(n.month,"*"),weekday:F(n.weekday,"*"),year:F(n.year,"*")}}function F(n,r){return typeof n>"u"?r:n}function $r(n,r){let e=Jr(n).split(/\s+/);return Qn(e,r)}function Jr(n){let r=n.trim();if(r.charAt(0)!=="@")return n;let e=r.toLowerCase();if(Object.hasOwn(sn,e))return sn[e];throw new Error("`cronli5` does not recognize the macro `"+r+"`.")}function Vn(n){return n===0?7:n}function In(n){let r=n.flatMap(function(i){return i.kind==="step"?i.fires.map(function(u){return{kind:"single",value:""+u}}):[i]});function e(t){return t.kind==="range"?Vn(+t.bounds[0]):Vn(+t.value)}return r.map(function(i,o){return[i,o]}).sort(function(i,o){return e(i[0])-e(o[0])||i[1]-o[1]}).map(function(i){return i[0]})}function B(n){if(n.length<5)return null;let r=n[1]-n[0];if(r<2)return null;for(let e=2;e<n.length;e+=1)if(n[e]-n[e-1]!==r)return null;return{start:n[0],interval:r,last:n[n.length-1]}}function f(n,r){return n.analyses.segments[r]??[]}function k(n,r){return f(n,r)[0]}function V(n){let r=[];for(let e of n){if(e.kind!=="single")return null;r.push(+e.value)}return r}function an(n){return n.start<n.interval&&24%n.interval===0}function Kr(n,r,e){return e-1-(e-1-n)%r}function X(n,r){let{start:e,interval:t,last:i,cycle:o}=n,u=o%t===0&&i===Kr(e,t,o);return e===0&&u?r.bare():e<t&&u?r.offset():r.bounded()}function $n(n){if(n.length<2)return null;let r=n[1]-n[0];if(r<2)return null;for(let e=2;e<n.length;e+=1)if(n[e]-n[e-1]!==r)return null;return n[0]!==0&&n.length<5?null:{interval:r,last:n[n.length-1],start:n[0]}}function Jn(n){return n!=="*"&&!l(n,",")&&!l(n,"-")&&!l(n,"/")}function fn(n){return l(n,"-")&&!l(n,",")&&!l(n,"/")}function Yr(n){return l(n,"/")&&!l(n,",")}function ln(n){return n!=="*"&&!l(n,"-")&&!l(n,"/")}function mn(n){return n!=="*"&&!fn(n)&&!Yr(n)}function E(n){return n.indexOf("/")!==-1&&n.indexOf("-")===-1&&n.indexOf(",")===-1}function I(n,r,e){let t=[],i=n;for(;i<=e;)t.push(i),i+=r;return t}function Kn(n,r,e,t){let i=n.split("/"),o=+i[1];if(l(i[0],"-")){let s=i[0].split("-");return I(d(s[0],t),o,d(s[1],t))}let u=i[0]==="*"?r:d(i[0],t);return I(u,o,e)}function dn(n,r,e){let t=[];return n.split(",").forEach(function(o){if(l(o,"/"))t.push(...Kn(o,r,e));else if(l(o,"-")){let u=o.split("-");+u[0]<=+u[1]?t.push(...I(+u[0],1,+u[1])):(t.push(...I(+u[0],1,e)),t.push(...I(r,1,+u[1])))}else t.push(+o)}),Z(t)}function Gr(n){return ln(n)?n.split(",").map(Number):[0]}function Zr(n){if(n==="*")return[0,59];if(fn(n)){let r=n.split("-");if(+r[0]<=+r[1])return[+r[0],+r[1]]}return null}function Br(n){return n==="*"?59:Math.max(...dn(n,0,59))}function Xr(n){if(Jn(n)&&n!=="0")return+n}function _r(n,r){return n==="*"?"wildcard":r==="date"&&q(n)||r==="weekday"&&Q(n,N.weekday)?"quartz":l(n,",")?"list":l(n,"/")?"step":l(n,"-")?"range":"single"}function ne(n,r,e){return r==="wildcard"||r==="quartz"?null:n.split(",").map(function(i){if(l(i,"/")){let o=i.split("/");return{fires:Kn(i,e.min,e.top,e.numbers),interval:+o[1],kind:"step",startToken:o[0]}}return l(i,"-")?{bounds:i.split("-"),kind:"range"}:{kind:"single",value:i}})}function Yn(n){let r={},e={};M.forEach(function(u){r[u]=_r(n[u],u),e[u]=ne(n[u],r[u],N[u])});let i={analyses:{clockSecond:Xr(n.second),lastMinuteFire:Br(n.minute),minuteSpan:Zr(n.minute),segments:e},pattern:n,shapes:r};return{...i,plan:re(i)}}function re(n){let{analyses:r,pattern:e,shapes:t}=n;if(e.second!=="0"){let i=ee(e,t,r);if(i)return i}return Gn(e,t,r)||Zn(e,t,r)}function ee(n,r,e){let t=te(n,r);return t||(n.hour==="*"&&r.minute==="single"&&n.second!=="*"?{kind:"secondsWithinMinute",singleSecond:r.second==="single"}:r.second==="single"&&ln(n.minute)&&mn(n.hour)?null:{kind:"composeSeconds",rest:Gn(n,r,e,!0)||Zn(n,r,e,!0)})}function te(n,r){return n.minute!=="*"||n.hour!=="*"?null:n.second==="*"?{kind:"everySecond"}:r.second==="single"?{kind:"secondPastMinute"}:{kind:"standaloneSeconds"}}function Gn(n,r,e,t=!1){if(r.minute==="step")return{hours:oe(n,r,e),kind:"minuteFrequency"};if(r.hour==="single"&&e.minuteSpan)return{hour:+n.hour,kind:"minuteSpanInHour",span:e.minuteSpan};let i=ue(n,r);if(i)return i;let o=ie(n,r);if(o)return o;if(n.hour==="*")return se(n,r,t)}function cn(n){let[r,e]=n.split("/"),t=r==="*"?0:+r;return r.indexOf("-")===-1&&24%+e===0&&t<+e}function ie(n,r){return r.hour!=="step"?null:n.minute==="*"?cn(n.hour)?{form:"wildcard",kind:"minuteSpanAcrossHourStep"}:{form:"wildcard",kind:"minutesAcrossHours",times:$(n.hour)}:r.minute==="range"?{form:"range",kind:"minuteSpanAcrossHourStep"}:r.minute==="list"&&cn(n.hour)?{form:"list",kind:"minuteSpanAcrossHourStep"}:null}function oe(n,r,e){if(r.hour==="list")return{kind:"during",times:$(n.hour)};if(r.hour==="range"){let t=n.hour.split("-");return{from:+t[0],kind:"window",last:e.lastMinuteFire,to:+t[1]}}return r.hour==="single"?{from:+n.hour,kind:"window",last:e.lastMinuteFire,to:+n.hour}:r.hour==="step"?cn(n.hour)?{kind:"step"}:{kind:"during",times:$(n.hour)}:{kind:"none"}}function ue(n,r){return mn(n.hour)?n.minute==="*"?{form:"wildcard",kind:"minutesAcrossHours",times:$(n.hour)}:r.minute==="range"||r.minute==="list"&&l(n.minute,"-")&&!l(n.minute,"/")?{form:r.minute==="range"?"range":"list",kind:"minutesAcrossHours",times:$(n.hour)}:null:null}function se(n,r,e){if(r.minute==="range")return{kind:"rangeOfMinutes"};if(r.minute==="list")return{kind:"multipleMinutes"};if(n.minute==="*")return{kind:"everyMinute"};if(n.minute!=="0"||e)return{kind:"singleMinute"}}function Zn(n,r,e,t=!1){let i=t&&n.minute==="0";return r.hour==="range"&&!i?ae(n,r,e):r.hour==="step"&&n.minute==="0"&&!t?{kind:"hourStep"}:n.hour==="*"&&!i?{kind:"everyHour"}:fe(n,e,i)}function ae(n,r,e){let t=n.hour.split("-"),i="lead";return n.minute==="*"?i="wildcard":r.minute==="range"&&(i="range"),{boundMinute:r.minute==="range"||r.minute==="list"?null:e.lastMinuteFire,from:+t[0],kind:"hourRange",last:e.lastMinuteFire,minuteForm:i,to:+t[1]}}function fe(n,r,e=!1){let t=dn(n.hour,0,23),i=Gr(n.minute);if(!e&&t.length*i.length>U)return{fold:i.length===1,kind:"compactClockTimes",minute:i[0]};let o=[];return t.forEach(function(s){i.forEach(function(O){o.push({hour:s,minute:O,second:r.clockSecond})})}),{kind:"clockTimes",times:o}}function $(n){let r=dn(n,0,23);return r.length<=U?{fires:r,kind:"fires"}:{kind:"segments"}}function Bn(n,r){let e=qn(n,r);return Un(e,r.quartz),jn(e),Hn(e),Dn(e)}function v(n){return n=""+n,n.length<2?"0"+n:n}function Xn(n,r,e){return e.short?n:r[n]||n}function gn(n,{sep:r,pad:e,lean:t}){let i=e?v(n.hour):""+n.hour;return t&&!n.minute&&!n.second?i:i+r+v(n.minute)+(n.second?r+v(n.second):"")}var hn={gb:{am:"am",closeUp:!0,dayFirst:!0,midday:"midday",midnight:"midnight",ordinals:!1,pm:"pm",sep:".",serialComma:!1,through:" to "},us:{am:"a.m.",closeUp:!1,dayFirst:!1,midday:"noon",midnight:"midnight",ordinals:!1,pm:"p.m.",sep:":",serialComma:!0,through:" through ",untilWindow:!0},house:{am:"AM",closeUp:!1,dayFirst:!1,midday:"noon",midnight:"midnight",ordinals:!0,pm:"PM",sep:":",serialComma:!0,through:" - "}};function _n(n){return typeof n=="object"&&n!==null?{...hn.us,untilWindow:!1,...n}:hn[n==="uk"?"gb":n]||hn.us}var le=["zero","one","two","three","four","five","six","seven","eight","nine","ten"],pn=["th","st","nd","rd"],me=[null,["January","Jan"],["February","Feb"],["March","Mar"],["April","Apr"],["May","May"],["June","Jun"],["July","Jul"],["August","Aug"],["September","Sep"],["October","Oct"],["November","Nov"],["December","Dec"]],C=[["Sunday","Sun"],["Monday","Mon"],["Tuesday","Tue"],["Wednesday","Wed"],["Thursday","Thu"],["Friday","Fri"],["Saturday","Sat"]],ce={SUN:C[0],MON:C[1],TUE:C[2],WED:C[3],THU:C[4],FRI:C[5],SAT:C[6]},de=[null,"first","second","third","fourth","fifth"];function ge(n){return n=n||{},{ampm:typeof n.ampm=="boolean"?n.ampm:!0,lenient:!!n.lenient,quartz:!!n.quartz,seconds:!!n.seconds,short:!!n.short,style:_n(n.dialect),years:!!n.years}}function he(n,r){let e=Se(n,r);if(e!==null)return rr(e,n,r);let t=nt(n,r)??er(n,n.plan,r),i=G(n,r)?ct(n,r):"";return rr(i+t,n,r)}function er(n,r,e){let t=rt[r.kind];return t(n,r,e)}function bn(n){return n==="step"||n==="range"||n==="list"}function pe(n,r){if(!r.style.untilWindow||r.short||n.plan.kind!=="composeSeconds"||n.plan.rest.kind==="clockTimes"||G(n,r))return!1;let{shapes:e}=n;return bn(e.second)&&bn(e.minute)&&bn(e.hour)}function be(n,r){let e=Nn(n);if(e)return _(e,r);if(n.shapes.hour==="range"){let t=f(n,"hour").find(function(o){return o.kind==="range"});return A({continuous:!1,from:+t.bounds[0],throughMinute:0,to:+t.bounds[1]},r)}return"during the "+R(n,{minute:0,second:null},!1,r)+" hours"}function ye(n,r){return n.shapes.minute==="step"?nn(k(n,"minute"),"minute","hour",r):n.shapes.minute==="range"?K(n.pattern.minute,r):W(f(n,"minute"),"minute","hour",r)??w(T(f(n,"minute"),r),"minute","hour",r)}function Se(n,r){if(!pe(n,r))return null;let e=be(n,r),t=ye(n,r),i=P(n,"minute",r),o=e+", "+t+", and within each of those minutes, "+i,u=a(n,r).trim();return u?u+", "+o:o}function ke(n,r,e){return"every second"+a(n,e)}function Oe(n,r,e){return D(n,e)+a(n,e)}function Ne(n,r,e){let t=n.pattern.second;return g(t,e)+" "+y(t,"second")+" past the minute, every minute"+a(n,e)}function ze(n,r,e){let t=n.pattern.minute,i=g(t,e),o=y(t,"minute");if(r.singleSecond){let u=n.pattern.second;return i+" "+o+" and "+g(u,e)+" "+y(u,"second")+" past the hour, every hour"+a(n,e)}return D(n,e)+", "+i+" "+o+" past the hour, every hour"+a(n,e)}function we(n,r,e){if(!(r.rest.kind==="clockTimes"||r.rest.kind==="compactClockTimes")||n.shapes.minute!=="single")return null;let i=+n.pattern.minute;return wn(n,i,e)??vn(n,i,e)}function ve(n,r,e){return+r.times[0].minute==0&&n.shapes.minute==="single"?D(n,e)+" for one minute at "+xe(n,r,e):D(n,e)+" of "+Pe(n,r,e)}function Ce(n,r,e){let t=we(n,r,e);return t!==null?t:r.rest.kind==="clockTimes"&&(n.shapes.second==="wildcard"||n.shapes.second==="step")?ve(n,r.rest,e):n.shapes.second==="wildcard"&&r.rest.kind==="minuteFrequency"&&r.rest.hours.kind==="none"&&n.pattern.minute==="*/2"?"every second of every other minute"+a(n,e):(r.rest.kind==="compactClockTimes"&&n.analyses.clockSecond?"":D(n,e)+", ")+er(n,r.rest,e)}function xe(n,r,e){let t=r.times.map(function(u){return m({hour:u.hour,minute:0},e)}),i=en(n,Pn,e);return p(t,e)+(i&&", "+i)}function Pe(n,r,e){let t=r.times.map(function(u){return m({hour:u.hour,minute:u.minute,second:u.second,explicit:!0},e)}),i=en(n,Pn,e);return p(t,e)+(i&&", "+i)}function D(n,r){return P(n,"minute",r)}function P(n,r,e){let t=n.pattern.second,i=n.shapes.second;if(t==="*")return"every second";if(i==="step")return nn(k(n,"second"),"second",r,e);if(i==="range"){let o=t.split("-"),u=rn();return"every second from "+u(o[0])+h(e)+u(o[1])+" past the "+r}return i==="single"?"at "+g(t,e)+" "+y(t,"second")+" past the "+r:W(f(n,"second"),"second",r,e)??w(T(f(n,"second"),e),"second",r,e)}function Te(n,r,e){return"every minute"+a(n,e)}function Me(n,r,e){let t=n.pattern.minute;return g(t,e)+" "+y(t,"minute")+" past the hour, every hour"+a(n,e)}function Fe(n,r,e){return K(n.pattern.minute,e)+a(n,e)}function We(n,r,e){return(W(f(n,"minute"),"minute","hour",e)??w(T(f(n,"minute"),e),"minute","hour",e))+a(n,e)}function He(n,r,e){let t=nn(k(n,"minute"),"minute","hour",e);if(r.hours.kind==="during"){let i=Y(n,e);t+=i?", "+i:" during the "+J(n,r.hours.times,!1,e)+" hours"}else if(r.hours.kind==="window")t+=" "+A({continuous:!1,from:r.hours.from,throughMinute:r.hours.last,to:r.hours.to},e);else if(r.hours.kind==="step"){let i=Cn(t);t=i+(i===t?" ":", ")+On(k(n,"hour"),e)}return t+a(n,e)}function Le(n,r,e){return n.pattern.minute==="*"?"every minute of the "+m({hour:r.hour,minute:0},e)+" hour"+a(n,e):"every minute from "+m({hour:r.hour,minute:r.span[0]},e)+h(e)+m({hour:r.hour,minute:r.span[1]},e)+a(n,e)}function Ee(n,r,e){let t=Y(n,e);if(r.form==="wildcard")return t!==null?"every minute, "+t+a(n,e):"every minute during the "+J(n,r.times,!1,e)+" hours"+a(n,e);if(r.form==="range"){let u=K(n.pattern.minute,e);return t!==null?u+", "+t+a(n,e):ut(r.times)?u+", at "+J(n,r.times,!0,e)+a(n,e):u+" during the "+J(n,r.times,!1,e)+" hours"+a(n,e)}let i=W(f(n,"minute"),"minute","hour",e)??w(T(f(n,"minute"),e),"minute","hour",e);if(t!==null)return i+", "+t+a(n,e);let o=J(n,r.times,!0,e);return i+", at "+o+a(n,e)}var tr={2:"other",3:"third",4:"fourth",6:"sixth",8:"eighth",12:"twelfth"},je={2:"other",3:"third",4:"fourth",5:"fifth",6:"sixth",7:"seventh",8:"eighth",9:"ninth",10:"tenth",11:"eleventh",12:"twelfth",15:"fifteenth",20:"twentieth",30:"thirtieth"};function De(n){return je[n]??b(n)}function Re(n,r){let e=" during every "+De(n.interval)+" minute";return X({...n,cycle:60},{bare:()=>e,offset:()=>e+" from "+g(n.start,r)+" "+y(n.start,"minute")+" past the hour",bounded:()=>{let t=rn();return e+" from "+t(n.start)+h(r)+t(n.last)+" "+y(n.last,"minute")+" past the hour"}})}function ir(n){if(n.shapes.minute==="step"){let e=k(n,"minute"),t=e.startToken==="*"?0:+e.startToken;return{interval:e.interval,last:e.fires[e.fires.length-1],start:t}}let r=V(f(n,"minute"));return r&&B(r)}function On(n,r){let e="during every "+tr[n.interval]+" hour",t=n.startToken==="*"?0:+n.startToken;return t===0?e:e+" starting at "+m({hour:t,minute:0},r)}function Ae(n,r,e){let t=k(n,"hour");if(r.form==="wildcard")return"every minute "+On(t,e)+a(n,e);let i=Cn(r.form==="list"?W(f(n,"minute"),"minute","hour",e)??w(T(f(n,"minute"),e),"minute","hour",e):K(n.pattern.minute,e)),o=Y(n,e);return i+", "+(o??lr(t,e))+a(n,e)}function K(n,r){let e=n.split("-"),t=rn();return"every minute from "+t(e[0])+h(r)+t(e[1])+" past the hour"}function Ue(n,r,e){return"every hour"+a(n,e)}function qe(n,r,e){let t=Ie(Ve(r),e);return r.minuteForm==="wildcard"?"every minute "+t+a(n,e):r.minuteForm==="range"?K(n.pattern.minute,e)+", "+t+a(n,e):or(n,e)+" "+t+a(n,e)}function or(n,r){return n.pattern.minute==="0"?"every hour":W(f(n,"minute"),"minute","hour",r)??w(T(f(n,"minute"),r),"minute","hour",r)}function Qe(n,r,e){let t=Y(n,e);return t!==null?t+a(n,e):lr(k(n,"hour"),e)+a(n,e)}function Ve(n){let r=n.minuteForm==="wildcard",e=r?n.boundMinute??0:0;return{from:n.from,closeMinute:e,to:n.to,continuous:r}}function A(n,r){let{from:e,to:t,throughMinute:i,continuous:o}=n,u="from "+m({hour:e,minute:0},r);return r.style.untilWindow&&!r.short&&e!==t?o?u+" until "+m({hour:(t+1)%24,minute:0},r):u+h(r)+m({hour:t,minute:0},r):u+h(r)+m({hour:t,minute:i},r)}function Ie(n,r){return A({continuous:n.continuous,from:n.from,throughMinute:n.closeMinute,to:n.to},r)}function $e(n,r,e){if(n.shapes.minute==="single"){let o=+n.pattern.minute,u=wn(n,o,e)??vn(n,o,e);if(u!==null)return u}let t=xn(r.times),i=r.times.map(function(u){return m({hour:u.hour,minute:u.minute,second:u.second,plain:t},e)});return gr(n,e)+"at "+p(i,e)+ur(n,e)}function ur(n,r){return G(n,r)?pr(n,r):""}function Je(n,r,e){if(r.fold){let u=wn(n,+r.minute,e)??vn(n,+r.minute,e);if(u!==null)return u;if(f(n,"hour").some(function(S){return S.kind==="range"})&&!n.analyses.clockSecond)return Ke(n,r,e)+a(n,e);let c={minute:r.minute,second:n.analyses.clockSecond};return gr(n,e)+"at "+R(n,c,!0,e)+ur(n,e)}let t=W(f(n,"minute"),"minute","hour",e)??w(T(f(n,"minute"),e),"minute","hour",e),i=Y(n,e),o=i?Cn(t)+", "+i+a(n,e):t+", at "+R(n,{minute:0,second:null},!0,e)+a(n,e);return n.analyses.clockSecond?D(n,e)+", "+o:o}function Ke(n,r,e){let t=r.minute,i=[],o=sr(n).map(function(c){return m({hour:c,minute:t},e)});return f(n,"hour").forEach(function(c){c.kind==="range"&&i.push(A({continuous:!1,from:+c.bounds[0],throughMinute:t,to:+c.bounds[1]},e))}),or(n,e)+" "+p(i,e)+ar(o,e)}function sr(n){let r=[];return f(n,"hour").forEach(function(t){t.kind==="step"?r.push(...t.fires):t.kind!=="range"&&r.push(+t.value)}),r}function ar(n,r){return n.length?" and at "+p(n,r):""}function j(n){return n==="*"||n.startsWith("*/")&&n.indexOf("-")===-1}function Ye(n,r){let{second:e,minute:t}=n.pattern;return j(e)?{secondLead:!0,text:P(n,"minute",r)}:e==="0"&&j(t)?{secondLead:!1,text:t==="*"?"every minute":nn(k(n,"minute"),"minute","hour",r)}:null}function Ge(n,r){let e=n.pattern.minute;if(e==="*")return"";if(e==="*/2")return" of every other minute";let t=ir(n);if(t)return Re(t,r);let i=f(n,"minute");if(n.shapes.minute==="single")return" during minute :"+v(e);if(n.shapes.minute==="range"){let u=e.split("-");return" during minutes :"+v(u[0])+h(r)+":"+v(u[1])}let o=T(i,r).map(function(s){return":"+v(s)});return" during minutes "+p(o,r)}function Ze(n,r){let e=n.pattern.hour;if(e==="*")return n.pattern.minute!=="*"&&!j(n.pattern.minute)&&!ir(n)?" of every hour":"";if(j(e))return e==="*/2"?" of every other hour":"";if(n.shapes.hour==="single"){let t=+e;return n.shapes.minute==="step"?" from "+m({hour:t,minute:0},r)+" until "+m({hour:(t+1)%24,minute:0},r):n.pattern.minute!=="*"&&!j(n.pattern.minute)?" at "+m({hour:t,minute:0},r):" of the "+m({hour:t,minute:0},r)+" hour"}if(n.shapes.hour==="range"){let t=e.split("-");return" "+A({continuous:n.pattern.minute==="*",from:+t[0],throughMinute:0,to:+t[1]},r)}return" during the "+R(n,{minute:0,second:null},!1,r)+" hours"}function Be(n){if(n.shapes.hour!=="step")return!0;let r=k(n,"hour");return n.pattern.hour==="*/2"||r.startToken.indexOf("-")!==-1}function Xe(n){if(n.shapes.minute!=="list")return!1;let r=V(f(n,"minute"));return r!==null&&B(r)!==null}function _e(n,r){let{minute:e,hour:t}=n.pattern,i=j(e)&&e!=="*";return Be(n)?r.secondLead?i?e==="*/2"?n.shapes.hour!=="range":n.pattern.hour==="*":Xe(n)?n.pattern.hour==="*":!(n.shapes.minute==="list"&&n.shapes.hour==="list"):t==="*/2"?!0:n.shapes.hour==="single"&&e==="*/2":!1}function nt(n,r){if(!r.style.untilWindow||r.short||n.pattern.minute==="*"&&n.pattern.hour==="*")return null;let e=Ye(n,r);if(!e||!_e(n,e))return null;let t=e.secondLead?Ge(n,r):"";return e.text+t+Ze(n,r)+a(n,r)}var rt={clockTimes:$e,compactClockTimes:Je,composeSeconds:Ce,everyHour:Ue,everyMinute:Te,everySecond:ke,hourRange:qe,hourStep:Qe,minuteFrequency:He,minuteSpanAcrossHourStep:Ae,minuteSpanInHour:Le,minutesAcrossHours:Ee,multipleMinutes:We,rangeOfMinutes:Fe,secondPastMinute:Ne,secondsWithinMinute:ze,singleMinute:Me,standaloneSeconds:Oe};function fr(n,r){let{interval:e,start:t,last:i,cycle:o,unit:u,anchor:s}=n,c="every "+g(e,r)+" "+u+"s";return X({start:t,interval:e,last:i,cycle:o},{bare:()=>c,offset:()=>c+" from "+g(t,r)+" "+y(t,u)+" past the "+s,bounded:()=>{let O=rn();return c+" from "+O(t)+h(r)+O(i)+" "+y(i,u)+" past the "+s}})}function W(n,r,e,t){let i=V(n),o=i&&B(i);return o?fr({...o,cycle:60,unit:r,anchor:e},t):null}function nn(n,r,e,t){if(n.startToken.indexOf("-")!==-1)return w(nr(n.fires,t),r,e,t);let i=n.startToken==="*"?0:+n.startToken;return i!==0&&n.fires.length<=3?w(nr(n.fires,t),r,e,t):fr({interval:n.interval,start:i,last:n.fires[n.fires.length-1],cycle:60,unit:r,anchor:e},t)}function lr(n,r){if(n.startToken.indexOf("-")!==-1)return"at "+yn(n.fires,r);let e=n.startToken==="*"?0:+n.startToken,t=n.interval;return e===0?"every "+g(t,r)+" hours":n.fires.length<=3?"at "+yn(n.fires,r):"every "+g(t,r)+" hours from "+m({hour:e,minute:0},r)}function _(n,r){let{start:e,interval:t,last:i}=n,o="every "+g(t,r)+" hours";return X({start:e,interval:t,last:i,cycle:24},{bare:()=>o,offset:()=>o+" from "+m({hour:e,minute:0},r),bounded:()=>o+" from "+m({hour:e,minute:0},r)+h(r)+m({hour:i,minute:0},r)})}function Y(n,r){let e=Nn(n);return!e||an(e)?null:_(e,r)}function Nn(n){let r=f(n,"hour");if(r.length===1&&r[0].kind==="step"){let t=r[0];if(t.fires.length<2)return null;let i=t.startToken==="*"?0:+t.startToken.split("-")[0];return{interval:t.interval,last:t.fires[t.fires.length-1],start:i}}let e=V(r);return e&&$n(e)}function zn(n){return n.pattern.second==="*"||n.shapes.second==="step"}function mr(n,r,e){if(r===0)return zn(n)?P(n,"minute",e)+" for one minute":P(n,"hour",e);let t=g(r,e)+" "+y(r,"minute")+" past the hour";return n.pattern.second==="0"?t:P(n,"minute",e)+", "+t}function wn(n,r,e){let t=Nn(n);if(!t)return null;let i=(t.last-t.start)/t.interval+1;if(n.pattern.second==="0"&&i<=U&&an(t))return null;let o=r===0&&zn(n)&&et(n);return o?P(n,"minute",e)+" for one minute "+On(o,e)+a(n,e):r===0&&n.pattern.second==="0"?_(t,e)+a(n,e):mr(n,r,e)+", "+_(t,e)+a(n,e)}function et(n){let r=f(n,"hour"),e=r.length===1&&r[0];return!e||e.kind!=="step"||e.startToken.indexOf("-")!==-1||!(e.interval in tr)?null:e}function tt(n){return f(n,"hour").some(function(e){return e.kind==="range"})}function it(n,r){let e=[],t=sr(n);f(n,"hour").forEach(function(s){s.kind==="range"&&e.push(A({continuous:!1,from:+s.bounds[0],throughMinute:0,to:+s.bounds[1]},r))});let i="every hour "+p(e,r),o=t.map(function(s){return m({hour:s,minute:0},r)});return i+ar(o,r)}function vn(n,r,e){return r!==0||!tt(n)||n.pattern.second==="0"?null:zn(n)?P(n,"minute",e)+" for one minute during the "+R(n,{minute:0,second:null},!1,e)+" hours"+a(n,e):mr(n,r,e)+", "+it(n,e)+a(n,e)}function rn(){return function(r){return""+r}}function cr(n,r){return n>1?function(t){return""+t}:function(t){return g(t,r)}}function nr(n,r){return n.map(cr(n.length,r))}function T(n,r){let e=n.reduce(function(o,u){return u.kind==="range"?o+1:o+(u.kind==="step"?u.fires.length:1)},0),t=cr(e,r);return n.flatMap(function(o){return o.kind==="range"?[t(o.bounds[0])+h(r)+t(o.bounds[1])]:o.kind==="step"?o.fires.map(t):[t(o.value)]})}function w(n,r,e,t){return"at "+p(n,t)+" "+r+"s past the "+e}function Cn(n){return n.replace(/ past the hour$/,"")}function ot(n,r,e){return(+n==0||+n==12)&&+r==0&&!(typeof e=="number"&&e>0)}function xn(n){let r=n.filter(function(t){return ot(t.hour,t.minute,t.second)});return r.length>0&&r.length<n.length}function yn(n,r){let e=xn(n.map(function(o){return{hour:o,minute:0}})),t=n.map(function(o){return m({hour:o,minute:0,plain:e},r)});return p(t,r)}function ut(n){return n.kind==="fires"&&n.fires.length===1}function J(n,r,e,t){return r.kind==="fires"?yn(r.fires,t):R(n,{minute:0,second:null},e,t)}function st(n){return n.kind==="range"?n.bounds:n.kind==="step"?n.fires:[n.value]}function R(n,r,e,t){let{minute:i,second:o}=r,u=f(n,"hour"),s=xn(u.flatMap(function(S){return st(S).map(function(un){return{hour:+un,minute:i,second:o}})})),c=[];return u.forEach(function(S){S.kind==="step"?c.push(...S.fires.map(function(un){return m({hour:un,minute:i,second:o,plain:s},t)})):S.kind==="range"?c.push(m({hour:S.bounds[0],minute:i,second:o,plain:s},t)+h(t)+m({hour:S.bounds[1],minute:i,second:o,plain:s},t)):c.push(m({hour:S.value,minute:i,second:o,plain:s},t))}),p(at(c,u,e),t)}function at(n,r,e){let t=r.some(function(o){return o.kind==="range"});return!e||!t?n:n.map(function(o,u){return u===0?o:"at "+o})}function dr(n,r,e){if(n.length<=1)return n.join("");if(n.length===2)return n[0]+r+n[1];let t=e.style.serialComma?","+r:r;return n.slice(0,-1).join(", ")+t+n[n.length-1]}function p(n,r){return dr(n," and ",r)}function ft(n,r){return dr(n," or ",r)}var lt={all:"",month:"in ",recurringWeekday:!0,stepDate:"on ",weekday:"on "},Pn={all:"every day",month:"every day in ",recurringWeekday:!1,stepDate:"",weekday:"every "};function a(n,r){if(G(n,r))return pr(n,r);let e=en(n,lt,r);return e&&" "+e}function gr(n,r){return G(n,r)?"":en(n,Pn,r)+" "}function en(n,r,e){let t=n.pattern;if(t.date!=="*"&&t.weekday!=="*")return pt(n,e);if(t.date!=="*")return mt(n,r,e);if(t.weekday!=="*"){let i=Tn(t.weekday,e);return i?Sn(i,n,e):r.weekday+Or(n,r.recurringWeekday,e)+yr(n,e)}return t.month!=="*"?r.month+z(n,e):r.all}function mt(n,r,e){let t=n.pattern,i=tn(t.date,e);return i?Sn(i,n,e):E(t.date)?Sn(r.stepDate+Sr(t.date),n,e):t.month!=="*"&&!hr(n)?"on the "+kn(n,e)+yr(n,e):t.month!=="*"?"on "+br(n,e):"on the "+kn(n,e)}function hr(n){return!kr(n.pattern.month)&&f(n,"month").every(function(e){return e.kind!=="range"})}function G(n,r){return n.pattern.date!=="*"&&n.pattern.weekday!=="*"&&!!r.style.untilWindow&&!r.short}function pr(n,r){let e=[...dt(n,r),...gt(n,r)];return" whenever the day is "+ft(e,r)}function ct(n,r){return n.pattern.month==="*"?"":"in "+z(n,r)+" "}function dt(n,r){let e=n.pattern.date,t=tn(e,r);if(t)return[t.replace(/^on /,"")];let i=ht(e);if(i)return[i];let o=[];return f(n,"date").forEach(function(s){s.kind==="range"?o.push("from the "+b(s.bounds[0])+h(r)+"the "+b(s.bounds[1])):s.kind==="step"?s.fires.forEach(function(O){o.push("the "+b(O))}):o.push("the "+b(s.value))}),o}function gt(n,r){let e=n.pattern.weekday,t=Tn(e,r);if(t)return[t.replace(/^on /,"")];let i=[];return f(n,"weekday").forEach(function(u){u.kind==="range"&&u.bounds[0]==="1"&&u.bounds[1]==="5"?i.push("a weekday"):u.kind==="range"?i.push("a "+x(u.bounds[0],r)+h(r)+"a "+x(u.bounds[1],r)):u.kind==="step"?u.fires.forEach(function(c){i.push("a "+x(c,r))}):i.push("a "+x(u.value,r))}),i}function ht(n){if(!E(n))return null;let[r,e]=n.split("/");return+e!=2?null:r==="*"||r==="1"?"an odd-numbered day":r==="2"?"an even-numbered day":null}function pt(n,r){let e=n.pattern,t=Tn(e.weekday,r)||"on "+Or(n,!1,r);return e.month!=="*"&&hr(n)&&!tn(e.date,r)&&!E(e.date)?"on "+br(n,r)+" or "+t+" in "+z(n,r):bt(n,r)+" or "+t+yt(n,r)}function bt(n,r){let e=n.pattern,t=tn(e.date,r);return t||(E(e.date)?Sr(e.date):"on the "+kn(n,r))}function yt(n,r){return n.pattern.month==="*"?"":", in "+z(n,r)}function tn(n,r){if(n==="L")return"on the last day of the month";if(n==="LW"||n==="WL")return"on the last weekday of the month";let e=/^L-(\d{1,2})$/.exec(n);if(e)return g(+e[1],r)+" "+y(e[1],"day")+" before the last day of the month";let t=/^(\d{1,2})W$|^W(\d{1,2})$/.exec(n);if(t)return"on the weekday nearest the "+b(t[1]||t[2])}function Tn(n,r){let e=n.split("#");if(e.length===2)return"on the "+de[+e[1]]+" "+x(e[0],r)+" of the month";if(/L$/.test(n))return"on the last "+x(n.slice(0,-1),r)+" of the month"}function br(n,r){let e=z(n,r),t=on(f(n,"date"),r.style.ordinals?b:St,r);return r.style.dayFirst&&n.shapes.date==="single"&&n.shapes.month!=="single"?"the "+b(n.pattern.date)+" of "+e:r.style.dayFirst?t+" "+e:e+" "+t}function St(n){return""+n}function yr(n,r){return n.pattern.month==="*"?"":" in "+z(n,r)}function Sn(n,r,e){if(r.pattern.month==="*")return n;let t=n.indexOf(" of the month")!==-1;return t&&r.shapes.month==="range"?n.replace(" of the month"," of each month")+" from "+z(r,e):t&&(r.shapes.month==="single"||r.shapes.month==="step")?n.replace(" of the month","")+" in "+z(r,e):n+" in "+z(r,e)}function Sr(n){let r=n.split("/"),e=+r[1],t=r[0],o=(e===2?"every other":"every "+b(e))+" day of the month";return t!=="*"&&t!=="1"&&(o+=" from the "+b(t)),o}function kn(n,r){return on(f(n,"date"),b,r)}function z(n,r){let e=kr(n.pattern.month);return e||on(f(n,"month"),function(i){return wt(i,r)},r)}function kr(n){if(!E(n))return null;let[r,e]=n.split("/");return+e!=2?null:r==="*"||r==="1"?"every odd-numbered month":r==="2"?"every even-numbered month":null}function Or(n,r,e){let t=In(f(n,"weekday")),i=t.some(function(s){return s.kind==="range"});return on(t,r&&!i?function(s){return kt(s,e)}:function(s){return x(s,e)},e)}function kt(n,r){let e=x(n,r);return r.short?e:e+"s"}function on(n,r,e){let t=[];return n.forEach(function(o){o.kind==="step"?t.push(...o.fires.map(r)):o.kind==="range"?t.push(o.bounds.map(r).join(h(e))):t.push(r(o.value))}),p(t,e)}function rr(n,r,e){let t=r.pattern.year;if(t==="*")return n;if(t.indexOf("/")!==-1)return n+", "+Nt(t,e);let i=Ot(t,e);if(t.indexOf("-")===-1&&t.indexOf(",")===-1&&r.pattern.date!=="*"&&n.indexOf(" at ")!==-1){let o=e.style.dayFirst?" ":", ";return n.replace(" at ",o+i+" at ")}return n+" in "+i}function Ot(n,r){return n.indexOf(",")!==-1?p(n.split(","),r):n.indexOf("-")!==-1?n.split("-").join(h(r)):n}function Nt(n,r){let e=n.split("/"),t=+e[1],i=e[0];if(t<=1)return"every year";let o=t===2?"every other year":"every "+g(t,r)+" years";return i!=="*"&&i!=="0"&&(o+=" from "+i),o}function m(n,r){let{hour:e,minute:t,plain:i,explicit:o}=n,u=typeof n.second=="number"&&n.second>0?n.second:0;return r.ampm?zt({hour:e,minute:t,second:u,plain:i,explicit:o},r):gn({hour:e,minute:t,second:u},{pad:!0,sep:r.style.sep})}function zt(n,r){let{hour:e,minute:t,second:i,plain:o,explicit:u}=n,s=r.style;if(!o&&!u&&+t==0&&!i){if(+e==0)return s.midnight;if(+e==12)return s.midday}return gn({hour:e%12||12,minute:t,second:i},{lean:!u,sep:s.sep})+(s.closeUp?"":" ")+(e<12?s.am:s.pm)}function g(n,r){return Xn(n,le,r)}function y(n,r){return+n==1?r:r+"s"}function h(n){return n.short?"-":n.style.through}function b(n){let r=Math.abs(n),e=pn[r];return e||(r=(r%100-20)%10,e=pn[r]||pn[0]),n+e}function wt(n,r){let e=me[+n];return e&&e[r.short?1:0]}function x(n,r){let e=n===7||n==="7"?0:n,t=C[e]||ce[e];return t&&t[r.short?1:0]}var vt={describe:he,fallback:"an unrecognizable cron pattern",options:ge,reboot:"at system startup",sentence:n=>"Runs "+n+(n.endsWith(".")?"":".")},Nr=vt;/**
|
|
1
|
+
"use strict";(()=>{var Cr={SUN:0,MON:1,TUE:2,WED:3,THU:4,FRI:5,SAT:6},xr={JAN:1,FEB:2,MAR:3,APR:4,MAY:5,JUN:6,JUL:7,AUG:8,SEP:9,OCT:10,NOV:11,DEC:12},N={second:{cyclic:!0,max:59,min:0,top:59},minute:{cyclic:!0,max:59,min:0,top:59},hour:{cyclic:!0,max:23,min:0,top:23},date:{cyclic:!0,max:31,min:1,top:31},month:{cyclic:!0,max:12,min:1,numbers:xr,top:12},weekday:{aliases:{L:"6"},cyclic:!0,max:7,min:0,numbers:Cr,top:6},year:{max:9999,min:1970}},T=["second","minute","hour","date","month","weekday","year"],sn={"@annually":"0 0 1 1 *","@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@midnight":"0 0 * * *","@hourly":"0 * * * *"},U=6;function f(n,r){return(""+n).indexOf(r)!==-1}function Z(n){return Array.from(new Set(n))}function L(n){return/^\d+$/.test(n)}function d(n,r){return L(n)?+n:r[n.toUpperCase()]}function Hn(n){return T.forEach(function(e){Pr(n[e],N[e],e)}),n}function Pr(n,r,e){typeof n!="string"&&typeof n!="number"&&Wn(n,e);let t=""+n;t!=="*"&&(e==="date"&&q(t)||e==="weekday"&&Q(t,r)||t.split(",").forEach(function(o){Mr(o,r)||Wn(o,e)}))}function q(n){if(n==="L"||n==="LW"||n==="WL")return!0;let r=/^L-(\d{1,2})$/.exec(n);if(r)return+r[1]>=1&&+r[1]<=30;let e=/^(\d{1,2})W$|^W(\d{1,2})$/.exec(n);if(e){let t=+(e[1]||e[2]);return t>=1&&t<=31}return!1}function Q(n,r){if(/L$/.test(n))return E(n.slice(0,-1),r);let e=n.split("#");return e.length===2?E(e[0],r)&&/^[1-5]$/.test(e[1]):!1}function Mr(n,r){return f(n,"/")?Tr(n,r):f(n,"-")?Ln(n,r):E(n,r)}function Tr(n,r){let e=n.split("/");return e.length!==2||!L(e[1])||+e[1]<1?!1:e[0]==="*"||E(e[0],r)||Ln(e[0],r,!0)}function Ln(n,r,e){let t=n.split("-");return t.length!==2||!E(t[0],r)||!E(t[1],r)?!1:r.cyclic&&!e?!0:d(t[0],r.numbers)<=d(t[1],r.numbers)}function E(n,r){return n==="*"?!1:L(n)?+n>=r.min&&+n<=r.max:r.numbers?n.toUpperCase()in r.numbers:!1}function Wn(n,r){throw new Error('`cronli5` was passed an invalid field value "'+n+'" for the '+r+" field.")}var Fr={hour:24,minute:60,second:60};function jn(n){T.forEach(function(e){let t=N[e].aliases,i=t&&t[""+n[e]];i&&(n[e]=i)})}function Dn(n){return T.forEach(function(e){let t=""+n[e];if(e==="date"&&q(t)||e==="weekday"&&Q(t,N[e])){n[e]=t;return}n[e]=Wr(t,e,N[e])}),n}function Wr(n,r,e){let t=""+n;if(t==="*")return t;let i=Fr[r],o=t.split(",").map(function(s){return Hr(Rn(Dr(Rr(Ar(jr(Er(s,e),e),e),e),e,i),e),e)}).join(",").split(",");return o.indexOf("*")!==-1?"*":Z(o).sort(function(s,m){return En(s,e)-En(m,e)}).join(",")}function Hr(n,r){if(!r.numbers)return n;let e=n.split("/"),t=e[0].split("-").map(function(o){return Lr(o,r)}).join("-");return e.length===2?t+"/"+e[1]:t}function Lr(n,r){if(n==="*")return n;let e=d(n,r.numbers);return""+(e>r.top?r.min:e)}function Er(n,r){let e=n.split("/");if(!r.cyclic||e.length!==2||+e[1]!=1)return n;let t=e[0];return f(t,"-")?t:t==="*"||d(t,r.numbers)===r.min?"*":t+"-"+r.top}function jr(n,r){let e=n.split("/");if(!r.cyclic||typeof r.top!="number"||e.length!==2||f(e[0],"-"))return n;let t=e[0];return(t==="*"?r.min:d(t,r.numbers))+ +e[1]<=r.top?n:t==="*"?""+r.min:t}function Dr(n,r,e){let t=n.split("/");if(typeof e!="number"||t.length!==2||f(t[0],"-"))return n;let i=+t[1],o=t[0]==="*"?r.min:d(t[0]);if(e%i===0&&o<i)return n;let u=[];for(let s=o;s<=r.top;s+=i)u.push(s);return u.join(",")}function Rr(n,r){let e=n.split("/");return e.length!==2||!f(e[0],"-")?n:Rn(e[0],r)==="*"?"*/"+e[1]:n}function Rn(n,r){if(typeof r.top!="number"||f(n,"/")||!f(n,"-"))return n;let e=n.split("-"),t=d(e[0],r.numbers),i=d(e[1],r.numbers);if(t>i)return n;let o=r.top,u={};for(let s=t;s<=i;s+=1)u[s>o?r.min:s]=!0;for(let s=r.min;s<=o;s+=1)if(!u[s])return n;return"*"}function Ar(n,r){let e=n.split("/")[0];if(!f(e,"-"))return n;let t=e.split("-");return d(t[0],r.numbers)!==d(t[1],r.numbers)?n:t[0]}function En(n,r){let e=n.split("/")[0].split("-")[0];return e==="*"?r.min:d(e,r.numbers)}var Ur="`?` is a Quartz token \u2014 pass { quartz: true } to enable Quartz semantics.";function Un(n,r){if(!r){An(n.date),An(n.weekday);return}if(""+n.date=="?"&&(n.date="*"),""+n.weekday=="?"){n.weekday="*";return}n.weekday=qr(""+n.weekday)}function An(n){if(""+n=="?")throw new Error(Ur)}function qr(n){return n==="*"?n:n.split(",").map(Qr).join(",")}function Qr(n){let r=/(#\d+|L)$/.exec(n),e=r?r[0]:"",i=(e?n.slice(0,-e.length):n).split("/"),o=i[0].split("-").map(Vr).join("-");return(i.length===2?o+"/"+i[1]:o)+e}function Vr(n){if(!L(n))return n;if(n==="0")throw new Error('`cronli5` was passed an invalid Quartz day-of-week value "0"; Quartz numbers weekdays 1 (Sunday) through 7 (Saturday).');return""+(+n-1)}function qn(n,r){let e=n instanceof Array;if(n===null||typeof n>"u"||n===""||e&&n.length===0)throw new Error("`cronli5` expects a non-empty cron pattern as the first argument.");if(e)return Qn(n,r);if(typeof n=="object")return Ir(n);if(typeof n=="string")return $r(n,r);throw new Error("`cronli5` was passed an unexpected type.")}function Qn(n,r){if(n.length>7)throw new Error("`cronli5` was passed a cron pattern with more than seven fields.");return!r.seconds&&n.length<(r.years?7:6)&&n.unshift("0"),{second:n[0]||"0",minute:n[1]||"*",hour:n[2]||"*",date:n[3]||"*",month:n[4]||"*",weekday:n[5]||"*",year:n[6]||"*"}}function Ir(n){if(!n.second&&!n.minute&&!n.hour)throw new Error("`cronli5` expects that any object being interpreted as a cron pattern have at least one of the following properties: `second`, `minute`, or `hour`");let r=typeof n.second<"u",e=typeof n.minute<"u",t=r?"*":"0",i=r||e?"*":"0";return{second:F(n.second,"0"),minute:F(n.minute,t),hour:F(n.hour,i),date:F(n.date,"*"),month:F(n.month,"*"),weekday:F(n.weekday,"*"),year:F(n.year,"*")}}function F(n,r){return typeof n>"u"?r:n}function $r(n,r){let e=Jr(n).split(/\s+/);return Qn(e,r)}function Jr(n){let r=n.trim();if(r.charAt(0)!=="@")return n;let e=r.toLowerCase();if(Object.hasOwn(sn,e))return sn[e];throw new Error("`cronli5` does not recognize the macro `"+r+"`.")}function Vn(n){return n===0?7:n}function In(n){let r=n.flatMap(function(i){return i.kind==="step"?i.fires.map(function(u){return{kind:"single",value:""+u}}):[i]});function e(t){return t.kind==="range"?Vn(+t.bounds[0]):Vn(+t.value)}return r.map(function(i,o){return[i,o]}).sort(function(i,o){return e(i[0])-e(o[0])||i[1]-o[1]}).map(function(i){return i[0]})}function B(n){if(n.length<5)return null;let r=n[1]-n[0];if(r<2)return null;for(let e=2;e<n.length;e+=1)if(n[e]-n[e-1]!==r)return null;return{start:n[0],interval:r,last:n[n.length-1]}}function c(n,r){return n.analyses.segments[r]??[]}function k(n,r){return c(n,r)[0]}function V(n){let r=[];for(let e of n){if(e.kind!=="single")return null;r.push(+e.value)}return r}function an(n){return n.start<n.interval&&24%n.interval===0}function Kr(n,r,e){return e-1-(e-1-n)%r}function X(n,r){let{start:e,interval:t,last:i,cycle:o}=n,u=o%t===0&&i===Kr(e,t,o);return e===0&&u?r.bare():e<t&&u?r.offset():r.bounded()}function $n(n){if(n.length<2)return null;let r=n[1]-n[0];if(r<2)return null;for(let e=2;e<n.length;e+=1)if(n[e]-n[e-1]!==r)return null;return n[0]!==0&&n.length<5?null:{interval:r,last:n[n.length-1],start:n[0]}}function Jn(n){return n!=="*"&&!f(n,",")&&!f(n,"-")&&!f(n,"/")}function cn(n){return f(n,"-")&&!f(n,",")&&!f(n,"/")}function Yr(n){return f(n,"/")&&!f(n,",")}function fn(n){return n!=="*"&&!f(n,"-")&&!f(n,"/")}function ln(n){return n!=="*"&&!cn(n)&&!Yr(n)}function W(n){return n.indexOf("/")!==-1&&n.indexOf("-")===-1&&n.indexOf(",")===-1}function I(n,r,e){let t=[],i=n;for(;i<=e;)t.push(i),i+=r;return t}function Kn(n,r,e,t){let i=n.split("/"),o=+i[1];if(f(i[0],"-")){let s=i[0].split("-");return I(d(s[0],t),o,d(s[1],t))}let u=i[0]==="*"?r:d(i[0],t);return I(u,o,e)}function dn(n,r,e){let t=[];return n.split(",").forEach(function(o){if(f(o,"/"))t.push(...Kn(o,r,e));else if(f(o,"-")){let u=o.split("-");+u[0]<=+u[1]?t.push(...I(+u[0],1,+u[1])):(t.push(...I(+u[0],1,e)),t.push(...I(r,1,+u[1])))}else t.push(+o)}),Z(t)}function Gr(n){return fn(n)?n.split(",").map(Number):[0]}function Zr(n){if(n==="*")return[0,59];if(cn(n)){let r=n.split("-");if(+r[0]<=+r[1])return[+r[0],+r[1]]}return null}function Br(n){return n==="*"?59:Math.max(...dn(n,0,59))}function Xr(n){if(Jn(n)&&n!=="0")return+n}function _r(n,r){return n==="*"?"wildcard":r==="date"&&q(n)||r==="weekday"&&Q(n,N.weekday)?"quartz":f(n,",")?"list":f(n,"/")?"step":f(n,"-")?"range":"single"}function ne(n,r,e){return r==="wildcard"||r==="quartz"?null:n.split(",").map(function(i){if(f(i,"/")){let o=i.split("/");return{fires:Kn(i,e.min,e.top,e.numbers),interval:+o[1],kind:"step",startToken:o[0]}}return f(i,"-")?{bounds:i.split("-"),kind:"range"}:{kind:"single",value:i}})}function Yn(n){let r={},e={};T.forEach(function(u){r[u]=_r(n[u],u),e[u]=ne(n[u],r[u],N[u])});let i={analyses:{clockSecond:Xr(n.second),lastMinuteFire:Br(n.minute),minuteSpan:Zr(n.minute),segments:e},pattern:n,shapes:r};return{...i,plan:re(i)}}function re(n){let{analyses:r,pattern:e,shapes:t}=n;if(e.second!=="0"){let i=ee(e,t,r);if(i)return i}return Gn(e,t,r)||Zn(e,t,r)}function ee(n,r,e){let t=te(n,r);return t||(n.hour==="*"&&r.minute==="single"&&n.second!=="*"?{kind:"secondsWithinMinute",singleSecond:r.second==="single"}:r.second==="single"&&fn(n.minute)&&ln(n.hour)?null:{kind:"composeSeconds",rest:Gn(n,r,e,!0)||Zn(n,r,e,!0)})}function te(n,r){return n.minute!=="*"||n.hour!=="*"?null:n.second==="*"?{kind:"everySecond"}:r.second==="single"?{kind:"secondPastMinute"}:{kind:"standaloneSeconds"}}function Gn(n,r,e,t=!1){if(r.minute==="step")return{hours:oe(n,r,e),kind:"minuteFrequency"};if(r.hour==="single"&&e.minuteSpan)return{hour:+n.hour,kind:"minuteSpanInHour",span:e.minuteSpan};let i=ue(n,r);if(i)return i;let o=ie(n,r);if(o)return o;if(n.hour==="*")return se(n,r,t)}function mn(n){let[r,e]=n.split("/"),t=r==="*"?0:+r;return r.indexOf("-")===-1&&24%+e===0&&t<+e}function ie(n,r){return r.hour!=="step"?null:n.minute==="*"?mn(n.hour)?{form:"wildcard",kind:"minuteSpanAcrossHourStep"}:{form:"wildcard",kind:"minutesAcrossHours",times:$(n.hour)}:r.minute==="range"?{form:"range",kind:"minuteSpanAcrossHourStep"}:r.minute==="list"&&mn(n.hour)?{form:"list",kind:"minuteSpanAcrossHourStep"}:null}function oe(n,r,e){if(r.hour==="list")return{kind:"during",times:$(n.hour)};if(r.hour==="range"){let t=n.hour.split("-");return{from:+t[0],kind:"window",last:e.lastMinuteFire,to:+t[1]}}return r.hour==="single"?{from:+n.hour,kind:"window",last:e.lastMinuteFire,to:+n.hour}:r.hour==="step"?mn(n.hour)?{kind:"step"}:{kind:"during",times:$(n.hour)}:{kind:"none"}}function ue(n,r){return ln(n.hour)?n.minute==="*"?{form:"wildcard",kind:"minutesAcrossHours",times:$(n.hour)}:r.minute==="range"||r.minute==="list"&&f(n.minute,"-")&&!f(n.minute,"/")?{form:r.minute==="range"?"range":"list",kind:"minutesAcrossHours",times:$(n.hour)}:null:null}function se(n,r,e){if(r.minute==="range")return{kind:"rangeOfMinutes"};if(r.minute==="list")return{kind:"multipleMinutes"};if(n.minute==="*")return{kind:"everyMinute"};if(n.minute!=="0"||e)return{kind:"singleMinute"}}function Zn(n,r,e,t=!1){let i=t&&n.minute==="0";return r.hour==="range"&&!i?ae(n,r,e):r.hour==="step"&&n.minute==="0"&&!t?{kind:"hourStep"}:n.hour==="*"&&!i?{kind:"everyHour"}:ce(n,e,i)}function ae(n,r,e){let t=n.hour.split("-"),i="lead";return n.minute==="*"?i="wildcard":r.minute==="range"&&(i="range"),{boundMinute:r.minute==="range"||r.minute==="list"?null:e.lastMinuteFire,from:+t[0],kind:"hourRange",last:e.lastMinuteFire,minuteForm:i,to:+t[1]}}function ce(n,r,e=!1){let t=dn(n.hour,0,23),i=Gr(n.minute);if(!e&&t.length*i.length>U)return{fold:i.length===1,kind:"compactClockTimes",minute:i[0]};let o=[];return t.forEach(function(s){i.forEach(function(O){o.push({hour:s,minute:O,second:r.clockSecond})})}),{kind:"clockTimes",times:o}}function $(n){let r=dn(n,0,23);return r.length<=U?{fires:r,kind:"fires"}:{kind:"segments"}}function Bn(n,r){let e=qn(n,r);return Un(e,r.quartz),jn(e),Hn(e),Dn(e)}function v(n){return n=""+n,n.length<2?"0"+n:n}function Xn(n,r,e){return e.short?n:r[n]||n}function gn(n,{sep:r,pad:e,lean:t}){let i=e?v(n.hour):""+n.hour;return t&&!n.minute&&!n.second?i:i+r+v(n.minute)+(n.second?r+v(n.second):"")}var hn={gb:{am:"am",closeUp:!0,dayFirst:!0,midday:"midday",midnight:"midnight",ordinals:!1,pm:"pm",sep:".",serialComma:!1,through:" to "},us:{am:"a.m.",closeUp:!1,dayFirst:!1,midday:"noon",midnight:"midnight",ordinals:!1,pm:"p.m.",sep:":",serialComma:!0,through:" through ",untilWindow:!0},house:{am:"AM",closeUp:!1,dayFirst:!1,midday:"noon",midnight:"midnight",ordinals:!0,pm:"PM",sep:":",serialComma:!0,through:" - "}};function _n(n){return typeof n=="object"&&n!==null?{...hn.us,untilWindow:!1,...n}:hn[n==="uk"?"gb":n]||hn.us}var fe=["zero","one","two","three","four","five","six","seven","eight","nine","ten"],pn=["th","st","nd","rd"],le=[null,["January","Jan"],["February","Feb"],["March","Mar"],["April","Apr"],["May","May"],["June","Jun"],["July","Jul"],["August","Aug"],["September","Sep"],["October","Oct"],["November","Nov"],["December","Dec"]],C=[["Sunday","Sun"],["Monday","Mon"],["Tuesday","Tue"],["Wednesday","Wed"],["Thursday","Thu"],["Friday","Fri"],["Saturday","Sat"]],me={SUN:C[0],MON:C[1],TUE:C[2],WED:C[3],THU:C[4],FRI:C[5],SAT:C[6]},de=[null,"first","second","third","fourth","fifth"];function ge(n){return n=n||{},{ampm:typeof n.ampm=="boolean"?n.ampm:!0,lenient:!!n.lenient,quartz:!!n.quartz,seconds:!!n.seconds,short:!!n.short,style:_n(n.dialect),years:!!n.years}}function he(n,r){let e=Se(n,r);if(e!==null)return rr(e,n,r);let t=et(n,r)??er(n,n.plan,r),i=G(n,r)?gt(n,r):"";return rr(i+t,n,r)}function er(n,r,e){let t=tt[r.kind];return t(n,r,e)}function bn(n){return n==="step"||n==="range"||n==="list"}function pe(n,r){if(!r.style.untilWindow||r.short||n.plan.kind!=="composeSeconds"||n.plan.rest.kind==="clockTimes"||G(n,r))return!1;let{shapes:e}=n;return bn(e.second)&&bn(e.minute)&&bn(e.hour)}function be(n,r){let e=Nn(n);if(e)return _(e,r);if(n.shapes.hour==="range"){let t=c(n,"hour").find(function(o){return o.kind==="range"});return A({continuous:!1,from:+t.bounds[0],throughMinute:0,to:+t.bounds[1]},r)}return"during the "+R(n,{minute:0,second:null},!1,r)+" hours"}function ye(n,r){return n.shapes.minute==="step"?nn(k(n,"minute"),"minute","hour",r):n.shapes.minute==="range"?K(n.pattern.minute,r):H(c(n,"minute"),"minute","hour",r)??w(M(c(n,"minute"),r),"minute","hour",r)}function Se(n,r){if(!pe(n,r))return null;let e=be(n,r),t=ye(n,r),i=P(n,"minute",r),o=e+", "+t+", and within each of those minutes, "+i,u=a(n,r).trim();return u?u+", "+o:o}function ke(n,r,e){return"every second"+a(n,e)}function Oe(n,r,e){return D(n,e)+a(n,e)}function Ne(n,r,e){let t=n.pattern.second;return g(t,e)+" "+y(t,"second")+" past the minute, every minute"+a(n,e)}function ze(n,r,e){let t=n.pattern.minute,i=g(t,e),o=y(t,"minute");if(r.singleSecond){let u=n.pattern.second;return i+" "+o+" and "+g(u,e)+" "+y(u,"second")+" past the hour, every hour"+a(n,e)}return D(n,e)+", "+i+" "+o+" past the hour, every hour"+a(n,e)}function we(n,r,e){if(!(r.rest.kind==="clockTimes"||r.rest.kind==="compactClockTimes")||n.shapes.minute!=="single")return null;let i=+n.pattern.minute;return wn(n,i,e)??vn(n,i,e)}function ve(n,r,e){return+r.times[0].minute==0&&n.shapes.minute==="single"?D(n,e)+" for one minute at "+xe(n,r,e):D(n,e)+" of "+Pe(n,r,e)}function Ce(n,r,e){let t=we(n,r,e);return t!==null?t:r.rest.kind==="clockTimes"&&(n.shapes.second==="wildcard"||n.shapes.second==="step")?ve(n,r.rest,e):n.shapes.second==="wildcard"&&r.rest.kind==="minuteFrequency"&&r.rest.hours.kind==="none"&&n.pattern.minute==="*/2"?"every second of every other minute"+a(n,e):(r.rest.kind==="compactClockTimes"&&n.analyses.clockSecond?"":D(n,e)+", ")+er(n,r.rest,e)}function xe(n,r,e){let t=r.times.map(function(u){return l({hour:u.hour,minute:0},e)}),i=en(n,Pn,e);return p(t,e)+(i&&", "+i)}function Pe(n,r,e){let t=r.times.map(function(u){return l({hour:u.hour,minute:u.minute,second:u.second,explicit:!0},e)}),i=en(n,Pn,e);return p(t,e)+(i&&", "+i)}function D(n,r){return P(n,"minute",r)}function P(n,r,e){let t=n.pattern.second,i=n.shapes.second;if(t==="*")return"every second";if(i==="step")return nn(k(n,"second"),"second",r,e);if(i==="range"){let o=t.split("-"),u=rn();return"every second from "+u(o[0])+h(e)+u(o[1])+" past the "+r}return i==="single"?"at "+g(t,e)+" "+y(t,"second")+" past the "+r:H(c(n,"second"),"second",r,e)??w(M(c(n,"second"),e),"second",r,e)}function Me(n,r,e){return"every minute"+a(n,e)}function Te(n,r,e){let t=n.pattern.minute;return g(t,e)+" "+y(t,"minute")+" past the hour, every hour"+a(n,e)}function Fe(n,r,e){return K(n.pattern.minute,e)+a(n,e)}function We(n,r,e){return(H(c(n,"minute"),"minute","hour",e)??w(M(c(n,"minute"),e),"minute","hour",e))+a(n,e)}function He(n,r,e){let t=nn(k(n,"minute"),"minute","hour",e);if(r.hours.kind==="during"){let i=Y(n,e);t+=i?", "+i:" during the "+J(n,r.hours.times,!1,e)+" hours"}else if(r.hours.kind==="window")t+=" "+A({continuous:!1,from:r.hours.from,throughMinute:r.hours.last,to:r.hours.to},e);else if(r.hours.kind==="step"){let i=Cn(t);t=i+(i===t?" ":", ")+On(k(n,"hour"),e)}return t+a(n,e)}function Le(n,r,e){return n.pattern.minute==="*"?"every minute of the "+l({hour:r.hour,minute:0},e)+" hour"+a(n,e):"every minute from "+l({hour:r.hour,minute:r.span[0]},e)+h(e)+l({hour:r.hour,minute:r.span[1]},e)+a(n,e)}function Ee(n,r,e){let t=Y(n,e);if(r.form==="wildcard")return t!==null?"every minute, "+t+a(n,e):"every minute during the "+J(n,r.times,!1,e)+" hours"+a(n,e);if(r.form==="range"){let u=K(n.pattern.minute,e);return t!==null?u+", "+t+a(n,e):at(r.times)?u+", at "+J(n,r.times,!0,e)+a(n,e):u+" during the "+J(n,r.times,!1,e)+" hours"+a(n,e)}let i=H(c(n,"minute"),"minute","hour",e)??w(M(c(n,"minute"),e),"minute","hour",e);if(t!==null)return i+", "+t+a(n,e);let o=J(n,r.times,!0,e);return i+", at "+o+a(n,e)}var tr={2:"other",3:"third",4:"fourth",6:"sixth",8:"eighth",12:"twelfth"},je={2:"other",3:"third",4:"fourth",5:"fifth",6:"sixth",7:"seventh",8:"eighth",9:"ninth",10:"tenth",11:"eleventh",12:"twelfth",15:"fifteenth",20:"twentieth",30:"thirtieth"};function De(n){return je[n]??b(n)}function Re(n,r){let e=" during every "+De(n.interval)+" minute";return X({...n,cycle:60},{bare:()=>e,offset:()=>e+" from "+g(n.start,r)+" "+y(n.start,"minute")+" past the hour",bounded:()=>{let t=rn();return e+" from "+t(n.start)+h(r)+t(n.last)+" "+y(n.last,"minute")+" past the hour"}})}function ir(n){if(n.shapes.minute==="step"){let e=k(n,"minute"),t=e.startToken==="*"?0:+e.startToken;return{interval:e.interval,last:e.fires[e.fires.length-1],start:t}}let r=V(c(n,"minute"));return r&&B(r)}function On(n,r){let e="during every "+tr[n.interval]+" hour",t=n.startToken==="*"?0:+n.startToken;return t===0?e:e+" starting at "+l({hour:t,minute:0},r)}function Ae(n,r,e){let t=k(n,"hour");if(r.form==="wildcard")return"every minute "+On(t,e)+a(n,e);let i=Cn(r.form==="list"?H(c(n,"minute"),"minute","hour",e)??w(M(c(n,"minute"),e),"minute","hour",e):K(n.pattern.minute,e)),o=Y(n,e);return i+", "+(o??fr(t,e))+a(n,e)}function K(n,r){let e=n.split("-"),t=rn();return"every minute from "+t(e[0])+h(r)+t(e[1])+" past the hour"}function Ue(n,r,e){return"every hour"+a(n,e)}function qe(n,r,e){let t=Ie(Ve(r),e);return r.minuteForm==="wildcard"?"every minute "+t+a(n,e):r.minuteForm==="range"?K(n.pattern.minute,e)+", "+t+a(n,e):or(n,e)+" "+t+a(n,e)}function or(n,r){return n.pattern.minute==="0"?"every hour":H(c(n,"minute"),"minute","hour",r)??w(M(c(n,"minute"),r),"minute","hour",r)}function Qe(n,r,e){let t=Y(n,e);return t!==null?t+a(n,e):fr(k(n,"hour"),e)+a(n,e)}function Ve(n){let r=n.minuteForm==="wildcard",e=r?n.boundMinute??0:0;return{from:n.from,closeMinute:e,to:n.to,continuous:r}}function A(n,r){let{from:e,to:t,throughMinute:i,continuous:o}=n,u="from "+l({hour:e,minute:0},r);return r.style.untilWindow&&!r.short&&e!==t?o?u+" until "+l({hour:(t+1)%24,minute:0},r):u+h(r)+l({hour:t,minute:0},r):u+h(r)+l({hour:t,minute:i},r)}function Ie(n,r){return A({continuous:n.continuous,from:n.from,throughMinute:n.closeMinute,to:n.to},r)}function $e(n,r,e){if(n.shapes.minute==="single"){let o=+n.pattern.minute,u=wn(n,o,e)??vn(n,o,e);if(u!==null)return u}let t=xn(r.times),i=r.times.map(function(u){return l({hour:u.hour,minute:u.minute,second:u.second,plain:t},e)});return gr(n,e)+"at "+p(i,e)+ur(n,e)}function ur(n,r){return G(n,r)?pr(n,r):""}function Je(n,r,e){if(r.fold){let u=wn(n,+r.minute,e)??vn(n,+r.minute,e);if(u!==null)return u;if(c(n,"hour").some(function(S){return S.kind==="range"})&&!n.analyses.clockSecond)return Ke(n,r,e)+a(n,e);let m={minute:r.minute,second:n.analyses.clockSecond};return gr(n,e)+"at "+R(n,m,!0,e)+ur(n,e)}let t=H(c(n,"minute"),"minute","hour",e)??w(M(c(n,"minute"),e),"minute","hour",e),i=Y(n,e),o=i?Cn(t)+", "+i+a(n,e):t+", at "+R(n,{minute:0,second:null},!0,e)+a(n,e);return n.analyses.clockSecond?D(n,e)+", "+o:o}function Ke(n,r,e){let t=r.minute,i=[],o=sr(n).map(function(m){return l({hour:m,minute:t},e)});return c(n,"hour").forEach(function(m){m.kind==="range"&&i.push(A({continuous:!1,from:+m.bounds[0],throughMinute:t,to:+m.bounds[1]},e))}),or(n,e)+" "+p(i,e)+ar(o,e)}function sr(n){let r=[];return c(n,"hour").forEach(function(t){t.kind==="step"?r.push(...t.fires):t.kind!=="range"&&r.push(+t.value)}),r}function ar(n,r){return n.length?" and at "+p(n,r):""}function j(n){return n==="*"||n.startsWith("*/")&&n.indexOf("-")===-1}function Ye(n){return j(n.pattern.second)?!0:n.shapes.second!=="step"?!1:W(n.pattern.second)}function Ge(n){if(n.plan.kind!=="composeSeconds"&&n.plan.kind!=="secondsWithinMinute")return!1;let{second:r,minute:e,hour:t}=n.shapes;return(r==="single"||r==="range"||r==="list")&&e!=="wildcard"&&t==="wildcard"&&!(r==="single"&&e==="single")}function Ze(n,r){let{second:e,minute:t}=n.pattern;return Ye(n)||Ge(n)?{secondLead:!0,text:P(n,"minute",r)}:e==="0"&&j(t)?{secondLead:!1,text:t==="*"?"every minute":nn(k(n,"minute"),"minute","hour",r)}:null}function Be(n,r){let e=n.pattern.minute;if(e==="*")return"";if(e==="*/2")return" of every other minute";let t=ir(n);if(t)return Re(t,r);let i=c(n,"minute");if(n.shapes.minute==="single")return" during minute :"+v(e);if(n.shapes.minute==="range"){let u=e.split("-");return" during minutes :"+v(u[0])+h(r)+":"+v(u[1])}let o=M(i,r).map(function(s){return":"+v(s)});return" during minutes "+p(o,r)}function Xe(n,r){let e=n.pattern.hour;if(e==="*")return n.pattern.minute!=="*"&&!j(n.pattern.minute)&&!ir(n)?" of every hour":"";if(j(e))return e==="*/2"?" of every other hour":"";if(n.shapes.hour==="single"){let t=+e;return n.shapes.minute==="step"?" from "+l({hour:t,minute:0},r)+" until "+l({hour:(t+1)%24,minute:0},r):n.pattern.minute!=="*"&&!j(n.pattern.minute)?" at "+l({hour:t,minute:0},r):" of the "+l({hour:t,minute:0},r)+" hour"}if(n.shapes.hour==="range"){let t=e.split("-");return" "+A({continuous:n.pattern.minute==="*",from:+t[0],throughMinute:0,to:+t[1]},r)}return" during the "+R(n,{minute:0,second:null},!1,r)+" hours"}function _e(n){if(n.shapes.hour!=="step")return!0;let r=k(n,"hour");return n.pattern.hour==="*/2"||r.startToken.indexOf("-")!==-1}function nt(n){if(n.shapes.minute!=="list")return!1;let r=V(c(n,"minute"));return r!==null&&B(r)!==null}function rt(n,r){let{minute:e,hour:t}=n.pattern,i=j(e)&&e!=="*";return _e(n)?r.secondLead?i?e==="*/2"?n.shapes.hour!=="range":n.pattern.hour==="*":nt(n)?n.pattern.hour==="*":!(n.shapes.minute==="list"&&n.shapes.hour==="list"):t==="*/2"?!0:n.shapes.hour==="single"&&e==="*/2":!1}function et(n,r){if(!r.style.untilWindow||r.short||n.pattern.minute==="*"&&n.pattern.hour==="*")return null;let e=Ze(n,r);if(!e||!rt(n,e))return null;let t=e.secondLead?Be(n,r):"";return e.text+t+Xe(n,r)+a(n,r)}var tt={clockTimes:$e,compactClockTimes:Je,composeSeconds:Ce,everyHour:Ue,everyMinute:Me,everySecond:ke,hourRange:qe,hourStep:Qe,minuteFrequency:He,minuteSpanAcrossHourStep:Ae,minuteSpanInHour:Le,minutesAcrossHours:Ee,multipleMinutes:We,rangeOfMinutes:Fe,secondPastMinute:Ne,secondsWithinMinute:ze,singleMinute:Te,standaloneSeconds:Oe};function cr(n,r){let{interval:e,start:t,last:i,cycle:o,unit:u,anchor:s}=n,m="every "+g(e,r)+" "+u+"s";return X({start:t,interval:e,last:i,cycle:o},{bare:()=>m,offset:()=>m+" from "+g(t,r)+" "+y(t,u)+" past the "+s,bounded:()=>{let O=rn();return m+" from "+O(t)+h(r)+O(i)+" "+y(i,u)+" past the "+s}})}function H(n,r,e,t){let i=V(n),o=i&&B(i);return o?cr({...o,cycle:60,unit:r,anchor:e},t):null}function nn(n,r,e,t){if(n.startToken.indexOf("-")!==-1)return w(nr(n.fires,t),r,e,t);let i=n.startToken==="*"?0:+n.startToken;return i!==0&&n.fires.length<=3?w(nr(n.fires,t),r,e,t):cr({interval:n.interval,start:i,last:n.fires[n.fires.length-1],cycle:60,unit:r,anchor:e},t)}function fr(n,r){if(n.startToken.indexOf("-")!==-1)return"at "+yn(n.fires,r);let e=n.startToken==="*"?0:+n.startToken,t=n.interval;return e===0?"every "+g(t,r)+" hours":n.fires.length<=3?"at "+yn(n.fires,r):"every "+g(t,r)+" hours from "+l({hour:e,minute:0},r)}function _(n,r){let{start:e,interval:t,last:i}=n,o="every "+g(t,r)+" hours";return X({start:e,interval:t,last:i,cycle:24},{bare:()=>o,offset:()=>o+" from "+l({hour:e,minute:0},r),bounded:()=>o+" from "+l({hour:e,minute:0},r)+h(r)+l({hour:i,minute:0},r)})}function Y(n,r){let e=Nn(n);return!e||an(e)?null:_(e,r)}function Nn(n){let r=c(n,"hour");if(r.length===1&&r[0].kind==="step"){let t=r[0];if(t.fires.length<2)return null;let i=t.startToken==="*"?0:+t.startToken.split("-")[0];return{interval:t.interval,last:t.fires[t.fires.length-1],start:i}}let e=V(r);return e&&$n(e)}function zn(n){return n.pattern.second==="*"||n.shapes.second==="step"}function lr(n,r,e){if(r===0)return zn(n)?P(n,"minute",e)+" for one minute":P(n,"hour",e);let t=g(r,e)+" "+y(r,"minute")+" past the hour";return n.pattern.second==="0"?t:P(n,"minute",e)+", "+t}function wn(n,r,e){let t=Nn(n);if(!t)return null;let i=(t.last-t.start)/t.interval+1;if(n.pattern.second==="0"&&i<=U&&an(t))return null;let o=r===0&&zn(n)&&it(n);return o?P(n,"minute",e)+" for one minute "+On(o,e)+a(n,e):r===0&&n.pattern.second==="0"?_(t,e)+a(n,e):lr(n,r,e)+", "+_(t,e)+a(n,e)}function it(n){let r=c(n,"hour"),e=r.length===1&&r[0];return!e||e.kind!=="step"||e.startToken.indexOf("-")!==-1||!(e.interval in tr)?null:e}function ot(n){return c(n,"hour").some(function(e){return e.kind==="range"})}function ut(n,r){let e=[],t=sr(n);c(n,"hour").forEach(function(s){s.kind==="range"&&e.push(A({continuous:!1,from:+s.bounds[0],throughMinute:0,to:+s.bounds[1]},r))});let i="every hour "+p(e,r),o=t.map(function(s){return l({hour:s,minute:0},r)});return i+ar(o,r)}function vn(n,r,e){return r!==0||!ot(n)||n.pattern.second==="0"?null:zn(n)?P(n,"minute",e)+" for one minute during the "+R(n,{minute:0,second:null},!1,e)+" hours"+a(n,e):lr(n,r,e)+", "+ut(n,e)+a(n,e)}function rn(){return function(r){return""+r}}function mr(n,r){return n>1?function(t){return""+t}:function(t){return g(t,r)}}function nr(n,r){return n.map(mr(n.length,r))}function M(n,r){let e=n.reduce(function(o,u){return u.kind==="range"?o+1:o+(u.kind==="step"?u.fires.length:1)},0),t=mr(e,r);return n.flatMap(function(o){return o.kind==="range"?[t(o.bounds[0])+h(r)+t(o.bounds[1])]:o.kind==="step"?o.fires.map(t):[t(o.value)]})}function w(n,r,e,t){return"at "+p(n,t)+" "+r+"s past the "+e}function Cn(n){return n.replace(/ past the hour$/,"")}function st(n,r,e){return(+n==0||+n==12)&&+r==0&&!(typeof e=="number"&&e>0)}function xn(n){let r=n.filter(function(t){return st(t.hour,t.minute,t.second)});return r.length>0&&r.length<n.length}function yn(n,r){let e=xn(n.map(function(o){return{hour:o,minute:0}})),t=n.map(function(o){return l({hour:o,minute:0,plain:e},r)});return p(t,r)}function at(n){return n.kind==="fires"&&n.fires.length===1}function J(n,r,e,t){return r.kind==="fires"?yn(r.fires,t):R(n,{minute:0,second:null},e,t)}function ct(n){return n.kind==="range"?n.bounds:n.kind==="step"?n.fires:[n.value]}function R(n,r,e,t){let{minute:i,second:o}=r,u=c(n,"hour"),s=xn(u.flatMap(function(S){return ct(S).map(function(un){return{hour:+un,minute:i,second:o}})})),m=[];return u.forEach(function(S){S.kind==="step"?m.push(...S.fires.map(function(un){return l({hour:un,minute:i,second:o,plain:s},t)})):S.kind==="range"?m.push(l({hour:S.bounds[0],minute:i,second:o,plain:s},t)+h(t)+l({hour:S.bounds[1],minute:i,second:o,plain:s},t)):m.push(l({hour:S.value,minute:i,second:o,plain:s},t))}),p(ft(m,u,e),t)}function ft(n,r,e){let t=r.some(function(o){return o.kind==="range"});return!e||!t?n:n.map(function(o,u){return u===0?o:"at "+o})}function dr(n,r,e){if(n.length<=1)return n.join("");if(n.length===2)return n[0]+r+n[1];let t=e.style.serialComma?","+r:r;return n.slice(0,-1).join(", ")+t+n[n.length-1]}function p(n,r){return dr(n," and ",r)}function lt(n,r){return dr(n," or ",r)}var mt={all:"",month:"in ",recurringWeekday:!0,stepDate:"on ",weekday:"on "},Pn={all:"every day",month:"every day in ",recurringWeekday:!1,stepDate:"",weekday:"every "};function a(n,r){if(G(n,r))return pr(n,r);let e=en(n,mt,r);return e&&" "+e}function gr(n,r){return G(n,r)?"":en(n,Pn,r)+" "}function en(n,r,e){let t=n.pattern;if(t.date!=="*"&&t.weekday!=="*")return yt(n,e);if(t.date!=="*")return dt(n,r,e);if(t.weekday!=="*"){let i=Mn(t.weekday,e);return i?Sn(i,n,e):r.weekday+Or(n,r.recurringWeekday,e)+yr(n,e)}return t.month!=="*"?r.month+z(n,e):r.all}function dt(n,r,e){let t=n.pattern,i=tn(t.date,e);return i?Sn(i,n,e):W(t.date)?Sn(r.stepDate+Sr(t.date),n,e):t.month!=="*"&&!hr(n)?"on the "+kn(n,e)+yr(n,e):t.month!=="*"?"on "+br(n,e):"on the "+kn(n,e)}function hr(n){return!kr(n.pattern.month)&&c(n,"month").every(function(e){return e.kind!=="range"})}function G(n,r){return n.pattern.date!=="*"&&n.pattern.weekday!=="*"&&!!r.style.untilWindow&&!r.short}function pr(n,r){let e=[...ht(n,r),...pt(n,r)];return" whenever the day is "+lt(e,r)}function gt(n,r){return n.pattern.month==="*"?"":"in "+z(n,r)+" "}function ht(n,r){let e=n.pattern.date,t=tn(e,r);if(t)return[t.replace(/^on /,"")];let i=bt(e);if(i)return[i];let o=[];return c(n,"date").forEach(function(s){s.kind==="range"?o.push("from the "+b(s.bounds[0])+h(r)+"the "+b(s.bounds[1])):s.kind==="step"?s.fires.forEach(function(O){o.push("the "+b(O))}):o.push("the "+b(s.value))}),o}function pt(n,r){let e=n.pattern.weekday,t=Mn(e,r);if(t)return[t.replace(/^on /,"")];let i=[];return c(n,"weekday").forEach(function(u){u.kind==="range"&&u.bounds[0]==="1"&&u.bounds[1]==="5"?i.push("a weekday"):u.kind==="range"?i.push("a "+x(u.bounds[0],r)+h(r)+"a "+x(u.bounds[1],r)):u.kind==="step"?u.fires.forEach(function(m){i.push("a "+x(m,r))}):i.push("a "+x(u.value,r))}),i}function bt(n){if(!W(n))return null;let[r,e]=n.split("/");return+e!=2?null:r==="*"||r==="1"?"an odd-numbered day":r==="2"?"an even-numbered day":null}function yt(n,r){let e=n.pattern,t=Mn(e.weekday,r)||"on "+Or(n,!1,r);return e.month!=="*"&&hr(n)&&!tn(e.date,r)&&!W(e.date)?"on "+br(n,r)+" or "+t+" in "+z(n,r):St(n,r)+" or "+t+kt(n,r)}function St(n,r){let e=n.pattern,t=tn(e.date,r);return t||(W(e.date)?Sr(e.date):"on the "+kn(n,r))}function kt(n,r){return n.pattern.month==="*"?"":", in "+z(n,r)}function tn(n,r){if(n==="L")return"on the last day of the month";if(n==="LW"||n==="WL")return"on the last weekday of the month";let e=/^L-(\d{1,2})$/.exec(n);if(e)return g(+e[1],r)+" "+y(e[1],"day")+" before the last day of the month";let t=/^(\d{1,2})W$|^W(\d{1,2})$/.exec(n);if(t)return"on the weekday nearest the "+b(t[1]||t[2])}function Mn(n,r){let e=n.split("#");if(e.length===2)return"on the "+de[+e[1]]+" "+x(e[0],r)+" of the month";if(/L$/.test(n))return"on the last "+x(n.slice(0,-1),r)+" of the month"}function br(n,r){let e=z(n,r),t=on(c(n,"date"),r.style.ordinals?b:Ot,r);return r.style.dayFirst&&n.shapes.date==="single"&&n.shapes.month!=="single"?"the "+b(n.pattern.date)+" of "+e:r.style.dayFirst?t+" "+e:e+" "+t}function Ot(n){return""+n}function yr(n,r){return n.pattern.month==="*"?"":" in "+z(n,r)}function Sn(n,r,e){if(r.pattern.month==="*")return n;let t=n.indexOf(" of the month")!==-1;return t&&r.shapes.month==="range"?n.replace(" of the month"," of each month")+" from "+z(r,e):t&&(r.shapes.month==="single"||r.shapes.month==="step")?n.replace(" of the month","")+" in "+z(r,e):n+" in "+z(r,e)}function Sr(n){let r=n.split("/"),e=+r[1],t=r[0],o=(e===2?"every other":"every "+b(e))+" day of the month";return t!=="*"&&t!=="1"&&(o+=" from the "+b(t)),o}function kn(n,r){return on(c(n,"date"),b,r)}function z(n,r){let e=kr(n.pattern.month);return e||on(c(n,"month"),function(i){return Ct(i,r)},r)}function kr(n){if(!W(n))return null;let[r,e]=n.split("/");return+e!=2?null:r==="*"||r==="1"?"every odd-numbered month":r==="2"?"every even-numbered month":null}function Or(n,r,e){let t=In(c(n,"weekday")),i=t.some(function(s){return s.kind==="range"});return on(t,r&&!i?function(s){return Nt(s,e)}:function(s){return x(s,e)},e)}function Nt(n,r){let e=x(n,r);return r.short?e:e+"s"}function on(n,r,e){let t=[];return n.forEach(function(o){o.kind==="step"?t.push(...o.fires.map(r)):o.kind==="range"?t.push(o.bounds.map(r).join(h(e))):t.push(r(o.value))}),p(t,e)}function rr(n,r,e){let t=r.pattern.year;if(t==="*")return n;if(t.indexOf("/")!==-1)return n+", "+wt(t,e);let i=zt(t,e);if(t.indexOf("-")===-1&&t.indexOf(",")===-1&&r.pattern.date!=="*"&&n.indexOf(" at ")!==-1){let o=e.style.dayFirst?" ":", ";return n.replace(" at ",o+i+" at ")}return n+" in "+i}function zt(n,r){return n.indexOf(",")!==-1?p(n.split(","),r):n.indexOf("-")!==-1?n.split("-").join(h(r)):n}function wt(n,r){let e=n.split("/"),t=+e[1],i=e[0];if(t<=1)return"every year";let o=t===2?"every other year":"every "+g(t,r)+" years";return i!=="*"&&i!=="0"&&(o+=" from "+i),o}function l(n,r){let{hour:e,minute:t,plain:i,explicit:o}=n,u=typeof n.second=="number"&&n.second>0?n.second:0;return r.ampm?vt({hour:e,minute:t,second:u,plain:i,explicit:o},r):gn({hour:e,minute:t,second:u},{pad:!0,sep:r.style.sep})}function vt(n,r){let{hour:e,minute:t,second:i,plain:o,explicit:u}=n,s=r.style;if(!o&&!u&&+t==0&&!i){if(+e==0)return s.midnight;if(+e==12)return s.midday}return gn({hour:e%12||12,minute:t,second:i},{lean:!u,sep:s.sep})+(s.closeUp?"":" ")+(e<12?s.am:s.pm)}function g(n,r){return Xn(n,fe,r)}function y(n,r){return+n==1?r:r+"s"}function h(n){return n.short?"-":n.style.through}function b(n){let r=Math.abs(n),e=pn[r];return e||(r=(r%100-20)%10,e=pn[r]||pn[0]),n+e}function Ct(n,r){let e=le[+n];return e&&e[r.short?1:0]}function x(n,r){let e=n===7||n==="7"?0:n,t=C[e]||me[e];return t&&t[r.short?1:0]}var xt={describe:he,fallback:"an unrecognizable cron pattern",options:ge,reboot:"at system startup",sentence:n=>"Runs "+n+(n.endsWith(".")?"":".")},Nr=xt;/**
|
|
2
2
|
* @license MIT, Copyright (c) 2026 Andrew Brož
|
|
3
|
-
*/function
|
|
3
|
+
*/function Tn(n,r){let e=r&&r.lang||Nr,t=e.options(r);if(!t.lenient)return zr(wr(n,e,t),e,r);try{return zr(wr(n,e,t),e,r)}catch{return e.fallback}}function zr(n,r,e){return e&&e.sentence?r.sentence(n):n}function wr(n,r,e){if(typeof n=="string"&&n.trim().toLowerCase()==="@reboot")return r.reboot;let t=Yn(Bn(n,e)),i=r.plan?r.plan(t,t.plan):t.plan;return r.describe({...t,plan:i},e)}function Pt(n,r){return Tn(n,{...r,sentence:!0})}function Mt(n,r){return Tn(n,{...r,sentence:!1})}var Tt=Object.assign(Tn,{sentence:Pt,fragment:Mt}),Fn=Tt;typeof globalThis<"u"&&Object.assign(globalThis,{cronli5:Fn});var zi=Fn;})();
|
package/dist/cronli5.cjs
CHANGED
|
@@ -1560,9 +1560,27 @@ function outlierTail(times, opts) {
|
|
|
1560
1560
|
function isCadenceField(token) {
|
|
1561
1561
|
return token === "*" || token.startsWith("*/") && token.indexOf("-") === -1;
|
|
1562
1562
|
}
|
|
1563
|
+
function secondLeadsCadence(schedule) {
|
|
1564
|
+
if (isCadenceField(schedule.pattern.second)) {
|
|
1565
|
+
return true;
|
|
1566
|
+
}
|
|
1567
|
+
if (schedule.shapes.second !== "step") {
|
|
1568
|
+
return false;
|
|
1569
|
+
}
|
|
1570
|
+
return isOpenStep(schedule.pattern.second);
|
|
1571
|
+
}
|
|
1572
|
+
function secondLeadsClockPoint(schedule) {
|
|
1573
|
+
if (schedule.plan.kind !== "composeSeconds" && schedule.plan.kind !== "secondsWithinMinute") {
|
|
1574
|
+
return false;
|
|
1575
|
+
}
|
|
1576
|
+
const { second, minute, hour } = schedule.shapes;
|
|
1577
|
+
const clockPoint = second === "single" || second === "range" || second === "list";
|
|
1578
|
+
const minuteRestricted = minute !== "wildcard";
|
|
1579
|
+
return clockPoint && minuteRestricted && hour === "wildcard" && !(second === "single" && minute === "single");
|
|
1580
|
+
}
|
|
1563
1581
|
function leadingCadence(schedule, opts) {
|
|
1564
1582
|
const { second, minute } = schedule.pattern;
|
|
1565
|
-
if (
|
|
1583
|
+
if (secondLeadsCadence(schedule) || secondLeadsClockPoint(schedule)) {
|
|
1566
1584
|
return { secondLead: true, text: secondsClause(schedule, "minute", opts) };
|
|
1567
1585
|
}
|
|
1568
1586
|
if (second === "0" && isCadenceField(minute)) {
|
package/dist/cronli5.js
CHANGED
|
@@ -1534,9 +1534,27 @@ function outlierTail(times, opts) {
|
|
|
1534
1534
|
function isCadenceField(token) {
|
|
1535
1535
|
return token === "*" || token.startsWith("*/") && token.indexOf("-") === -1;
|
|
1536
1536
|
}
|
|
1537
|
+
function secondLeadsCadence(schedule) {
|
|
1538
|
+
if (isCadenceField(schedule.pattern.second)) {
|
|
1539
|
+
return true;
|
|
1540
|
+
}
|
|
1541
|
+
if (schedule.shapes.second !== "step") {
|
|
1542
|
+
return false;
|
|
1543
|
+
}
|
|
1544
|
+
return isOpenStep(schedule.pattern.second);
|
|
1545
|
+
}
|
|
1546
|
+
function secondLeadsClockPoint(schedule) {
|
|
1547
|
+
if (schedule.plan.kind !== "composeSeconds" && schedule.plan.kind !== "secondsWithinMinute") {
|
|
1548
|
+
return false;
|
|
1549
|
+
}
|
|
1550
|
+
const { second, minute, hour } = schedule.shapes;
|
|
1551
|
+
const clockPoint = second === "single" || second === "range" || second === "list";
|
|
1552
|
+
const minuteRestricted = minute !== "wildcard";
|
|
1553
|
+
return clockPoint && minuteRestricted && hour === "wildcard" && !(second === "single" && minute === "single");
|
|
1554
|
+
}
|
|
1537
1555
|
function leadingCadence(schedule, opts) {
|
|
1538
1556
|
const { second, minute } = schedule.pattern;
|
|
1539
|
-
if (
|
|
1557
|
+
if (secondLeadsCadence(schedule) || secondLeadsClockPoint(schedule)) {
|
|
1540
1558
|
return { secondLead: true, text: secondsClause(schedule, "minute", opts) };
|
|
1541
1559
|
}
|
|
1542
1560
|
if (second === "0" && isCadenceField(minute)) {
|
package/dist/lang/de.cjs
CHANGED
|
@@ -544,7 +544,10 @@ function renderSecondsWithinMinute(schedule, plan) {
|
|
|
544
544
|
if (plan.singleSecond) {
|
|
545
545
|
return "in Minute " + schedule.pattern.minute + " und Sekunde " + schedule.pattern.second + " jeder Stunde";
|
|
546
546
|
}
|
|
547
|
-
|
|
547
|
+
if (secondsConfinesMinute(schedule)) {
|
|
548
|
+
return secondsLead(schedule) + " " + confinedMinutePhrase(schedule);
|
|
549
|
+
}
|
|
550
|
+
return secondsLead(schedule) + " in Minute " + schedule.pattern.minute + " jeder Stunde";
|
|
548
551
|
}
|
|
549
552
|
function wholeHour(hour) {
|
|
550
553
|
if (hour === 0) {
|
|
@@ -591,6 +594,45 @@ function minuteStepConfinement(schedule, stride) {
|
|
|
591
594
|
function isSteppedMinuteSeconds(schedule, plan) {
|
|
592
595
|
return (plan.rest.kind === "minuteFrequency" || plan.rest.kind === "multipleMinutes") && (schedule.shapes.second === "wildcard" || schedule.shapes.second === "step") && schedule.shapes.hour === "wildcard" && schedule.pattern.minute !== "*/2" && minuteStride(schedule) !== null;
|
|
593
596
|
}
|
|
597
|
+
function confinedMinutePhrase(schedule) {
|
|
598
|
+
const stride = minuteStride(schedule);
|
|
599
|
+
if (stride && schedule.pattern.minute !== "*/2") {
|
|
600
|
+
const ordinal = minuteStepOrdinals[stride.interval];
|
|
601
|
+
const head = ordinal ? "jeder " + ordinal + " Minute" : "alle " + stride.interval + " Minuten";
|
|
602
|
+
const tail = renderStride({ ...stride, cycle: 60 }, {
|
|
603
|
+
bare: () => "",
|
|
604
|
+
offset: () => " ab Minute " + stride.start,
|
|
605
|
+
bounded: () => " von Minute " + stride.start + " bis " + stride.last
|
|
606
|
+
});
|
|
607
|
+
return head + tail + " jeder Stunde";
|
|
608
|
+
}
|
|
609
|
+
const genitive = schedule.shapes.minute === "single" ? "der Minute " + schedule.pattern.minute : "der Minuten " + joinList(fieldValues(schedule, "minute"));
|
|
610
|
+
return genitive + " jeder Stunde";
|
|
611
|
+
}
|
|
612
|
+
function minuteConfinementRender(plan, schedule) {
|
|
613
|
+
if (isSteppedMinuteSeconds(schedule, plan)) {
|
|
614
|
+
return minuteStepConfinement(schedule, minuteStride(schedule));
|
|
615
|
+
}
|
|
616
|
+
const minuteRest = plan.rest.kind === "minuteFrequency" || plan.rest.kind === "multipleMinutes" || plan.rest.kind === "rangeOfMinutes";
|
|
617
|
+
if (minuteRest && secondsConfinesMinute(schedule)) {
|
|
618
|
+
return secondsLead(schedule) + " " + confinedMinutePhrase(schedule);
|
|
619
|
+
}
|
|
620
|
+
return null;
|
|
621
|
+
}
|
|
622
|
+
function secondsConfinesMinute(schedule) {
|
|
623
|
+
const { second, minute, hour } = schedule.shapes;
|
|
624
|
+
if (second === "list") {
|
|
625
|
+
const values = singleValues(segmentsOf(schedule, "second"));
|
|
626
|
+
if (values && arithmeticStep(values)) {
|
|
627
|
+
return false;
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
const clockPoint = second === "single" || second === "range" || second === "list";
|
|
631
|
+
return clockPoint && minute !== "wildcard" && hour === "wildcard" && !(second === "single" && minute === "single");
|
|
632
|
+
}
|
|
633
|
+
function isLocativeMinuteConfinement(schedule, plan) {
|
|
634
|
+
return (plan.rest.kind === "multipleMinutes" || plan.rest.kind === "singleMinute") && schedule.shapes.hour === "wildcard";
|
|
635
|
+
}
|
|
594
636
|
function renderComposeSeconds(schedule, plan, opts) {
|
|
595
637
|
if ((plan.rest.kind === "clockTimes" || plan.rest.kind === "compactClockTimes") && schedule.shapes.minute === "single") {
|
|
596
638
|
const minute = +schedule.pattern.minute;
|
|
@@ -602,12 +644,16 @@ function renderComposeSeconds(schedule, plan, opts) {
|
|
|
602
644
|
if (composeSingleMinute(schedule, plan)) {
|
|
603
645
|
return secondsLead(schedule) + " " + clockMinuteGenitive(plan.rest.times, opts.style.sep);
|
|
604
646
|
}
|
|
605
|
-
|
|
606
|
-
|
|
647
|
+
const confined = minuteConfinementRender(plan, schedule);
|
|
648
|
+
if (confined !== null) {
|
|
649
|
+
return confined;
|
|
607
650
|
}
|
|
608
651
|
if (isEveryOtherMinuteSeconds(schedule, plan)) {
|
|
609
652
|
return secondsLead(schedule) + " jeder zweiten Minute";
|
|
610
653
|
}
|
|
654
|
+
if (isLocativeMinuteConfinement(schedule, plan)) {
|
|
655
|
+
return secondsLead(schedule) + " " + render(schedule, plan.rest, opts);
|
|
656
|
+
}
|
|
611
657
|
const restOwnsLead = plan.rest.kind === "compactClockTimes" && schedule.analyses.clockSecond;
|
|
612
658
|
const lead = restOwnsLead ? "" : secondsLead(schedule) + ", ";
|
|
613
659
|
return lead + render(schedule, plan.rest, opts);
|
package/dist/lang/de.js
CHANGED
|
@@ -518,7 +518,10 @@ function renderSecondsWithinMinute(schedule, plan) {
|
|
|
518
518
|
if (plan.singleSecond) {
|
|
519
519
|
return "in Minute " + schedule.pattern.minute + " und Sekunde " + schedule.pattern.second + " jeder Stunde";
|
|
520
520
|
}
|
|
521
|
-
|
|
521
|
+
if (secondsConfinesMinute(schedule)) {
|
|
522
|
+
return secondsLead(schedule) + " " + confinedMinutePhrase(schedule);
|
|
523
|
+
}
|
|
524
|
+
return secondsLead(schedule) + " in Minute " + schedule.pattern.minute + " jeder Stunde";
|
|
522
525
|
}
|
|
523
526
|
function wholeHour(hour) {
|
|
524
527
|
if (hour === 0) {
|
|
@@ -565,6 +568,45 @@ function minuteStepConfinement(schedule, stride) {
|
|
|
565
568
|
function isSteppedMinuteSeconds(schedule, plan) {
|
|
566
569
|
return (plan.rest.kind === "minuteFrequency" || plan.rest.kind === "multipleMinutes") && (schedule.shapes.second === "wildcard" || schedule.shapes.second === "step") && schedule.shapes.hour === "wildcard" && schedule.pattern.minute !== "*/2" && minuteStride(schedule) !== null;
|
|
567
570
|
}
|
|
571
|
+
function confinedMinutePhrase(schedule) {
|
|
572
|
+
const stride = minuteStride(schedule);
|
|
573
|
+
if (stride && schedule.pattern.minute !== "*/2") {
|
|
574
|
+
const ordinal = minuteStepOrdinals[stride.interval];
|
|
575
|
+
const head = ordinal ? "jeder " + ordinal + " Minute" : "alle " + stride.interval + " Minuten";
|
|
576
|
+
const tail = renderStride({ ...stride, cycle: 60 }, {
|
|
577
|
+
bare: () => "",
|
|
578
|
+
offset: () => " ab Minute " + stride.start,
|
|
579
|
+
bounded: () => " von Minute " + stride.start + " bis " + stride.last
|
|
580
|
+
});
|
|
581
|
+
return head + tail + " jeder Stunde";
|
|
582
|
+
}
|
|
583
|
+
const genitive = schedule.shapes.minute === "single" ? "der Minute " + schedule.pattern.minute : "der Minuten " + joinList(fieldValues(schedule, "minute"));
|
|
584
|
+
return genitive + " jeder Stunde";
|
|
585
|
+
}
|
|
586
|
+
function minuteConfinementRender(plan, schedule) {
|
|
587
|
+
if (isSteppedMinuteSeconds(schedule, plan)) {
|
|
588
|
+
return minuteStepConfinement(schedule, minuteStride(schedule));
|
|
589
|
+
}
|
|
590
|
+
const minuteRest = plan.rest.kind === "minuteFrequency" || plan.rest.kind === "multipleMinutes" || plan.rest.kind === "rangeOfMinutes";
|
|
591
|
+
if (minuteRest && secondsConfinesMinute(schedule)) {
|
|
592
|
+
return secondsLead(schedule) + " " + confinedMinutePhrase(schedule);
|
|
593
|
+
}
|
|
594
|
+
return null;
|
|
595
|
+
}
|
|
596
|
+
function secondsConfinesMinute(schedule) {
|
|
597
|
+
const { second, minute, hour } = schedule.shapes;
|
|
598
|
+
if (second === "list") {
|
|
599
|
+
const values = singleValues(segmentsOf(schedule, "second"));
|
|
600
|
+
if (values && arithmeticStep(values)) {
|
|
601
|
+
return false;
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
const clockPoint = second === "single" || second === "range" || second === "list";
|
|
605
|
+
return clockPoint && minute !== "wildcard" && hour === "wildcard" && !(second === "single" && minute === "single");
|
|
606
|
+
}
|
|
607
|
+
function isLocativeMinuteConfinement(schedule, plan) {
|
|
608
|
+
return (plan.rest.kind === "multipleMinutes" || plan.rest.kind === "singleMinute") && schedule.shapes.hour === "wildcard";
|
|
609
|
+
}
|
|
568
610
|
function renderComposeSeconds(schedule, plan, opts) {
|
|
569
611
|
if ((plan.rest.kind === "clockTimes" || plan.rest.kind === "compactClockTimes") && schedule.shapes.minute === "single") {
|
|
570
612
|
const minute = +schedule.pattern.minute;
|
|
@@ -576,12 +618,16 @@ function renderComposeSeconds(schedule, plan, opts) {
|
|
|
576
618
|
if (composeSingleMinute(schedule, plan)) {
|
|
577
619
|
return secondsLead(schedule) + " " + clockMinuteGenitive(plan.rest.times, opts.style.sep);
|
|
578
620
|
}
|
|
579
|
-
|
|
580
|
-
|
|
621
|
+
const confined = minuteConfinementRender(plan, schedule);
|
|
622
|
+
if (confined !== null) {
|
|
623
|
+
return confined;
|
|
581
624
|
}
|
|
582
625
|
if (isEveryOtherMinuteSeconds(schedule, plan)) {
|
|
583
626
|
return secondsLead(schedule) + " jeder zweiten Minute";
|
|
584
627
|
}
|
|
628
|
+
if (isLocativeMinuteConfinement(schedule, plan)) {
|
|
629
|
+
return secondsLead(schedule) + " " + render(schedule, plan.rest, opts);
|
|
630
|
+
}
|
|
585
631
|
const restOwnsLead = plan.rest.kind === "compactClockTimes" && schedule.analyses.clockSecond;
|
|
586
632
|
const lead = restOwnsLead ? "" : secondsLead(schedule) + ", ";
|
|
587
633
|
return lead + render(schedule, plan.rest, opts);
|
package/dist/lang/en.cjs
CHANGED
|
@@ -741,9 +741,27 @@ function outlierTail(times, opts) {
|
|
|
741
741
|
function isCadenceField(token) {
|
|
742
742
|
return token === "*" || token.startsWith("*/") && token.indexOf("-") === -1;
|
|
743
743
|
}
|
|
744
|
+
function secondLeadsCadence(schedule) {
|
|
745
|
+
if (isCadenceField(schedule.pattern.second)) {
|
|
746
|
+
return true;
|
|
747
|
+
}
|
|
748
|
+
if (schedule.shapes.second !== "step") {
|
|
749
|
+
return false;
|
|
750
|
+
}
|
|
751
|
+
return isOpenStep(schedule.pattern.second);
|
|
752
|
+
}
|
|
753
|
+
function secondLeadsClockPoint(schedule) {
|
|
754
|
+
if (schedule.plan.kind !== "composeSeconds" && schedule.plan.kind !== "secondsWithinMinute") {
|
|
755
|
+
return false;
|
|
756
|
+
}
|
|
757
|
+
const { second, minute, hour } = schedule.shapes;
|
|
758
|
+
const clockPoint = second === "single" || second === "range" || second === "list";
|
|
759
|
+
const minuteRestricted = minute !== "wildcard";
|
|
760
|
+
return clockPoint && minuteRestricted && hour === "wildcard" && !(second === "single" && minute === "single");
|
|
761
|
+
}
|
|
744
762
|
function leadingCadence(schedule, opts) {
|
|
745
763
|
const { second, minute } = schedule.pattern;
|
|
746
|
-
if (
|
|
764
|
+
if (secondLeadsCadence(schedule) || secondLeadsClockPoint(schedule)) {
|
|
747
765
|
return { secondLead: true, text: secondsClause(schedule, "minute", opts) };
|
|
748
766
|
}
|
|
749
767
|
if (second === "0" && isCadenceField(minute)) {
|
package/dist/lang/en.js
CHANGED
|
@@ -715,9 +715,27 @@ function outlierTail(times, opts) {
|
|
|
715
715
|
function isCadenceField(token) {
|
|
716
716
|
return token === "*" || token.startsWith("*/") && token.indexOf("-") === -1;
|
|
717
717
|
}
|
|
718
|
+
function secondLeadsCadence(schedule) {
|
|
719
|
+
if (isCadenceField(schedule.pattern.second)) {
|
|
720
|
+
return true;
|
|
721
|
+
}
|
|
722
|
+
if (schedule.shapes.second !== "step") {
|
|
723
|
+
return false;
|
|
724
|
+
}
|
|
725
|
+
return isOpenStep(schedule.pattern.second);
|
|
726
|
+
}
|
|
727
|
+
function secondLeadsClockPoint(schedule) {
|
|
728
|
+
if (schedule.plan.kind !== "composeSeconds" && schedule.plan.kind !== "secondsWithinMinute") {
|
|
729
|
+
return false;
|
|
730
|
+
}
|
|
731
|
+
const { second, minute, hour } = schedule.shapes;
|
|
732
|
+
const clockPoint = second === "single" || second === "range" || second === "list";
|
|
733
|
+
const minuteRestricted = minute !== "wildcard";
|
|
734
|
+
return clockPoint && minuteRestricted && hour === "wildcard" && !(second === "single" && minute === "single");
|
|
735
|
+
}
|
|
718
736
|
function leadingCadence(schedule, opts) {
|
|
719
737
|
const { second, minute } = schedule.pattern;
|
|
720
|
-
if (
|
|
738
|
+
if (secondLeadsCadence(schedule) || secondLeadsClockPoint(schedule)) {
|
|
721
739
|
return { secondLead: true, text: secondsClause(schedule, "minute", opts) };
|
|
722
740
|
}
|
|
723
741
|
if (second === "0" && isCadenceField(minute)) {
|