temporal-fmt 0.8.8 → 0.8.82
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -482,8 +482,8 @@ test` locally will pass even with a broken `vitest/` suite.
|
|
|
482
482
|
|
|
483
483
|
## Related tools
|
|
484
484
|
|
|
485
|
-
- [`eslint-plugin-temporal-fmt`](https://
|
|
486
|
-
- [`temporal-fmt-codemod`](https://
|
|
485
|
+
- [`eslint-plugin-temporal-fmt`](https://www.npmjs.com/package/eslint-plugin-temporal-fmt) — lints format strings for common mistakes (e.g. `hh` without `a`)
|
|
486
|
+
- [`temporal-fmt-codemod`](https://www.npmjs.com/package/temporal-fmt-codemod) — one-time migration tool that rewrites dayjs/date-fns calls to temporal-fmt
|
|
487
487
|
|
|
488
488
|
## License
|
|
489
489
|
|
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var xe=Object.defineProperty;var lt=Object.getOwnPropertyDescriptor;var dt=Object.getOwnPropertyNames;var ft=Object.prototype.hasOwnProperty;var pt=(e,t)=>{for(var n in t)xe(e,n,{get:t[n],enumerable:!0})},ht=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of dt(t))!ft.call(e,o)&&o!==n&&xe(e,o,{get:()=>t[o],enumerable:!(r=lt(t,o))||r.enumerable});return e};var gt=e=>ht(xe({},"__esModule",{value:!0}),e);var yn={};pt(yn,{format:()=>He,formatDistance:()=>Je,formatDuration:()=>Ke,parse:()=>Ve,parseRelative:()=>mt,registerLocaleVocab:()=>Ie,setTemporal:()=>Ce});module.exports=gt(yn);var Oe,Ae=[];function Le(e){Ae.push(e)}function Ce(e){Oe=e;for(let t of Ae)t()}function yt(){return Oe??globalThis.Temporal}function C(){let e=yt();if(!e)throw new Error("temporal-fmt: parse() needs a Temporal implementation to construct its result. Call setTemporal(Temporal) once at startup, or assign one to globalThis.Temporal (native on Node 26+, or a polyfill like temporal-polyfill).");return e}var ve=new Map;function wt(e,t){let n=[{key:"monthLong",length:12,label:"long month names"},{key:"monthShort",length:12,label:"short month names"},{key:"weekdayLong",length:7,label:"long weekday names"},{key:"weekdayShort",length:7,label:"short weekday names"},{key:"dayPeriod",length:2,label:"day period markers (AM/PM-equivalent)"}];for(let{key:r,length:o,label:a}of n){let s=e[r];if(s===void 0)throw new Error(`temporal-fmt: registerLocaleVocab for locale "${t}" is missing required field "${r}" (${a}).`);if(!Array.isArray(s))throw new Error(`temporal-fmt: registerLocaleVocab for locale "${t}": "${r}" must be an array, got ${typeof s}.`);if(s.length!==o)throw new Error(`temporal-fmt: registerLocaleVocab for locale "${t}": "${r}" must have exactly ${o} entries (got ${s.length}) \u2014 ${a}.`);s.forEach((i,u)=>{if(typeof i!="string"||i.length===0)throw new Error(`temporal-fmt: registerLocaleVocab for locale "${t}": "${r}[${u}]" must be a non-empty string, got ${String(i)}.`)})}if(D(e.monthLong,"MMMM month",t),D(e.monthShort,"MMM month",t),D(e.weekdayLong,"EEEE weekday",t),D(e.weekdayShort,"EEE weekday",t),e.dayPeriod[0]===e.dayPeriod[1])throw new Error(`temporal-fmt: registerLocaleVocab for locale "${t}": dayPeriod entries must differ (both are "${e.dayPeriod[0]}"); otherwise parse() can't tell AM from PM.`)}function Ie(e,t){if(typeof e!="string"||e.length===0)throw new Error(`temporal-fmt: registerLocaleVocab requires a non-empty locale string, got ${String(e)}.`);wt(t,e);let n=v(e);ve.set(n,{monthLong:[...t.monthLong],monthShort:[...t.monthShort],weekdayLong:[...t.weekdayLong],weekdayShort:[...t.weekdayShort],dayPeriod:[...t.dayPeriod]}),X.delete(n)}function v(e){try{return new Intl.Locale(e.replace(/_/g,"-")).toString().toLowerCase()}catch{return e}}var X=new Map,St=500;function I(e,t,n){let r=e.formatToParts(t),o=r.findIndex(u=>u.type===n);if(o===-1)throw new Error(`temporal-fmt: locale produced no "${n}" part while building match vocabulary.`);let a=r[o].value,s=r[o-1],i=r[o+1];return s?.type==="literal"&&!/\s/.test(s.value)&&(a=s.value+a),i?.type==="literal"&&!/\s/.test(i.value)&&(a=a+i.value),a}function D(e,t,n){let r=new Map;for(let o=0;o<e.length;o++){let a=r.get(e[o]);if(a!==void 0)throw new Error(`temporal-fmt: locale "${n}" renders ${t} index ${a} and ${o} identically ("${e[o]}"). parse() can't reliably tell these apart for this locale/token, so this combination isn't supported.`);r.set(e[o],o)}}function H(e){let t=v(e);return ve.get(t)}function U(e){let t=v(e),n=ve.get(t);if(n)return n;let r=X.get(t);if(r)return r;let o=new Intl.DateTimeFormat(e,{month:"long",timeZone:"UTC"}),a=new Intl.DateTimeFormat(e,{month:"short",timeZone:"UTC"}),s=[],i=[];for(let S=0;S<12;S++){let N=new Date(Date.UTC(2020,S,1));s.push(I(o,N,"month")),i.push(I(a,N,"month"))}D(s,"MMMM month",e),D(i,"MMM month",e);let u=new Intl.DateTimeFormat(e,{weekday:"long",timeZone:"UTC"}),c=new Intl.DateTimeFormat(e,{weekday:"short",timeZone:"UTC"}),m=[],p=[];for(let S=0;S<7;S++){let N=new Date(Date.UTC(2024,0,1+S));m.push(I(u,N,"weekday")),p.push(I(c,N,"weekday"))}D(m,"EEEE weekday",e),D(p,"EEE weekday",e);let l=new Intl.DateTimeFormat(e,{hour:"numeric",hour12:!0,timeZone:"UTC"}),g=I(l,new Date(Date.UTC(2020,0,1,1)),"dayPeriod"),y=I(l,new Date(Date.UTC(2020,0,1,13)),"dayPeriod"),w=[...new Set([g,y])],E={monthLong:s,monthShort:i,weekdayLong:m,weekdayShort:p,dayPeriod:w};if(X.size>=St){let S=X.keys().next().value;S!==void 0&&X.delete(S)}return X.set(t,E),E}var bt=[0,31,59,90,120,151,181,212,243,273,304,334];function Q(e){return e%4===0&&e%100!==0||e%400===0}function G(e){return Q(e)?366:365}function De(e,t,n){let r=bt[t-1]+n;return t>2&&Q(e)&&(r+=1),r}var Me=2e3;function Et(e){let t=0;if(e>=Me)for(let r=Me;r<e;r++)t+=G(r);else for(let r=e;r<Me;r++)t-=G(r);return((5+t)%7+7)%7+1}function Re(e,t,n,r){let a=De(e,t,n)+(4-r),s,i;a<1?(s=e-1,i=a+G(s)):a>G(e)?(s=e+1,i=a-G(e)):(s=e,i=a);let c=1+(4-Et(s)+7)%7,m=1+Math.floor((i-c)/7);return{isoYear:s,week:m}}function h(e,t){let n=e<0,r=String(Math.abs(e)).padStart(t,"0");return n?"-"+r:r}h.fraction=function(t,n){let r=t.millisecond*1e6+(t.microsecond??0)*1e3+(t.nanosecond??0);return h(r,9).slice(0,n)};var j="en-US",J=new Map,kt=500;function Xe(e,t){let n=JSON.stringify([v(e),t]),r=J.get(n);if(r)return r;if(J.size>=kt){let o=J.keys().next().value;o!==void 0&&J.delete(o)}return r=new Intl.DateTimeFormat(e,t),J.set(n,r),r}var q;Le(()=>{q=void 0});function $t(){if(q===void 0){q=!1;try{let e=C();new Intl.DateTimeFormat("en-US",{day:"numeric"}).formatToParts(e.PlainDate.from({year:1970,month:1,day:1})),q=!0}catch{}}return q}function Tt(e,t,n,r){let o=e?.calendarId,a={...n,calendar:o&&o!=="iso8601"?o:"gregory"};if(!$t())return e.toLocaleString(t,a);let{toInstant:s,timeZoneId:i}=e,u=typeof s=="function"&&typeof i=="string",c=u?e.toInstant():e,m={...a,...u?{timeZone:i}:{}},l=Xe(t,m).formatToParts(c),g=l.findIndex(S=>S.type===r);if(g===-1)throw new Error(`temporal-fmt: locale "${t}" produced no "${r}" part for this token. This usually means the Temporal object is missing the field the token needs.`);let y=l[g].value,w=l[g-1],E=l[g+1];return w?.type==="literal"&&!/\s/.test(w.value)&&(y=w.value+y),E?.type==="literal"&&!/\s/.test(E.value)&&(y=y+E.value),y}function xt(e,t){let n=H(t);if(n)return e<12?n.dayPeriod[0]:n.dayPeriod[1];let r=new Date(Date.UTC(1970,0,1,e)),a=Xe(t,{hour:"numeric",hour12:!0,timeZone:"UTC"}).formatToParts(r).find(s=>s.type==="dayPeriod");if(!a)throw new Error(`temporal-fmt: locale "${t}" produced no "dayPeriod" part for token "a".`);return a.value}function ie(e,t,n,r,o,a){return o&&a!==void 0&&a>=0&&a<o.length?o[a]:Tt(e,t,n,r)}function z(e,t){if(e==="+00:00"&&(t==="X"||t==="XX"||t==="XXX"))return"Z";let n=e[0],r=e.slice(1,3),o=e.slice(4,6);switch(t){case"X":case"x":return o==="00"?`${n}${r}`:`${n}${r}${o}`;case"XX":case"xx":return`${n}${r}${o}`;case"XXX":case"xxx":return`${n}${r}:${o}`}}var me=[["yyyy",e=>h(e.year,4),"year"],["yy",e=>{if(e.year<0)throw new Error(`temporal-fmt: token "yy" doesn't support negative years (got ${e.year}), since truncating to 2 digits would make it indistinguishable from a positive year. Use "yyyy" instead.`);return h(e.year%100,2)},"year"],["MMMM",(e,t)=>{let n=H(t);return ie(e,t,{month:"long"},"month",n?.monthLong,e.month-1)},"month"],["MMM",(e,t)=>{let n=H(t);return ie(e,t,{month:"short"},"month",n?.monthShort,e.month-1)},"month"],["MM",e=>h(e.month,2),"month"],["M",e=>String(e.month),"month"],["dd",e=>h(e.day,2),"day"],["d",e=>String(e.day),"day"],["EEEE",(e,t)=>{let n=H(t);return ie(e,t,{weekday:"long"},"weekday",n?.weekdayLong,e.dayOfWeek-1)},"dayOfWeek"],["EEE",(e,t)=>{let n=H(t);return ie(e,t,{weekday:"short"},"weekday",n?.weekdayShort,e.dayOfWeek-1)},"dayOfWeek"],["HH",e=>h(e.hour,2),"hour"],["H",e=>String(e.hour),"hour"],["hh",e=>h(e.hour%12||12,2),"hour"],["h",e=>String(e.hour%12||12),"hour"],["mm",e=>h(e.minute,2),"minute"],["m",e=>String(e.minute),"minute"],["ss",e=>h(e.second,2),"second"],["s",e=>String(e.second),"second"],["SSSSSSSSS",e=>h.fraction(e,9),"millisecond"],["SSSSSSSS",e=>h.fraction(e,8),"millisecond"],["SSSSSSS",e=>h.fraction(e,7),"millisecond"],["SSSSSS",e=>h.fraction(e,6),"millisecond"],["SSSSS",e=>h.fraction(e,5),"millisecond"],["SSSS",e=>h.fraction(e,4),"millisecond"],["SSS",e=>h.fraction(e,3),"millisecond"],["SS",e=>h.fraction(e,2),"millisecond"],["S",e=>h.fraction(e,1),"millisecond"],["a",(e,t)=>xt(e.hour,t),"hour"],["zzz",e=>e.timeZoneId,"timeZoneId"],["xxx",e=>z(e.offset,"xxx"),"offset"],["xx",e=>z(e.offset,"xx"),"offset"],["X",e=>z(e.offset,"X"),"offset"],["XX",e=>z(e.offset,"XX"),"offset"],["XXX",e=>z(e.offset,"XXX"),"offset"],["x",e=>z(e.offset,"x"),"offset"],["do",e=>{let t=e.day,n=t%10,r=t%100;return r>=11&&r<=13?t+"th":n===1?t+"st":n===2?t+"nd":n===3?t+"rd":t+"th"},"day"],["Q",e=>String(Math.ceil(e.month/3)),"month"],["QQQ",e=>"Q"+Math.ceil(e.month/3),"month"],["ww",e=>{let{week:t}=Re(e.year,e.month,e.day,e.dayOfWeek);return h(t,2)},"dayOfWeek"],["RRRR",e=>{let{isoYear:t}=Re(e.year,e.month,e.day,e.dayOfWeek);return h(t,4)},"dayOfWeek"]];var vt=me.map(([e])=>e).sort((e,t)=>t.length-e.length);function ue(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r==="'"){if(e[n+1]==="'"){Ne(t,"'"),n+=2;continue}let a=n+1,s="",i=!1;for(;a<e.length;){if(e[a]==="'"){if(e[a+1]==="'"){s+="'",a+=2;continue}i=!0,a+=1;break}s+=e[a],a+=1}if(!i)throw new Error(`temporal-fmt: unterminated quote in format string "${e}"`);Ne(t,s),n=a;continue}let o=vt.find(a=>e.startsWith(a,n));if(o){t.push({kind:"token",value:o}),n+=o.length;continue}Ne(t,r),n+=1}return t}function Ne(e,t){let n=e[e.length-1];n&&n.kind==="literal"?n.value+=t:e.push({kind:"literal",value:t})}var Mt=new Map(me.map(([e,t,n])=>[e,{fn:t,field:n}]));function He(e,t,n={}){if(t.length>1e3)throw new Error(`temporal-fmt: format string exceeds maximum length of ${1e3} characters (got ${t.length}).`);let r=n.locale??j,o=ue(t),a="";for(let s of o){if(s.kind==="literal"){a+=s.value;continue}let i=Mt.get(s.value);if(!i)throw new Error(`temporal-fmt: unknown token "${s.value}"`);if(e[i.field]===void 0)throw new Error(`temporal-fmt: token "${s.value}" requires "${i.field}", which this Temporal object doesn't have. (e.g. PlainDate has no time fields, PlainTime has no date fields)`);a+=i.fn(e,r)}return a}function Dt(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ee(e,t=!1){let n=e.map(Dt);return t?`(?:${n.map(Rt).join("|")})`:`(?:${n.join("|")})`}function Rt(e){return e.replace(/[a-zA-Z]/g,t=>`[${t.toLowerCase()}${t.toUpperCase()}]`)}var Nt="(?:UTC|[+-]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,9})?)?|[A-Za-z_]+(?:[+-]\\d{1,2})?(?:\\/[A-Za-z0-9_+-]+)*)",Ft={X:"(?:Z|[+-]\\d{2}(?:\\d{2})?)",XX:"(?:Z|[+-]\\d{4})",XXX:"(?:Z|[+-]\\d{2}:\\d{2})",x:"[+-]\\d{2}(?:\\d{2})?",xx:"[+-]\\d{4}",xxx:"[+-]\\d{2}:\\d{2}"};function Pt(){return Nt}var ce;function _t(){return ce||(ce=new Set(Intl.supportedValuesOf("timeZone")),ce.add("UTC")),ce}var Ot=/^[+-]\d{2}:\d{2}(?::\d{2}(?:\.\d{1,9})?)?$/;function Ue(e){return Ot.test(e)||_t().has(e)}var At={yy:"\\d{2}",MM:"(?:0[1-9]|1[0-2])",M:"(?:1[0-2]|[1-9])",dd:"(?:0[1-9]|[12]\\d|3[01])",d:"(?:[12]\\d|3[01]|[1-9])",HH:"(?:[01]\\d|2[0-3])",H:"(?:1\\d|2[0-3]|[0-9])",hh:"(?:0[1-9]|1[0-2])",h:"(?:1[0-2]|[1-9])",mm:"(?:[0-5]\\d)",m:"(?:[1-5]\\d|[0-9])",ss:"(?:[0-5]\\d)",s:"(?:[1-5]\\d|[0-9])",SSSSSSSSS:"\\d{9}",SSSSSSSS:"\\d{8}",SSSSSSS:"\\d{7}",SSSSSS:"\\d{6}",SSSSS:"\\d{5}",SSSS:"\\d{4}",SSS:"\\d{3}",SS:"\\d{2}",S:"\\d",Q:"[1-4]"},Lt="Q[1-4]",Ct=new Set(["do","ww","RRRR"]),It="-?\\d{4}",Xt="-?\\d{4,}",Ht=new Set(["yyyy","yy","MM","M","dd","d","HH","H","hh","h","mm","m","ss","s","SSSSSSSSS","SSSSSSSS","SSSSSSS","SSSSSS","SSSSS","SSSS","SSS","SS","S"]);function ze(e,t,n){if(e==="yyyy")return n!==void 0&&Ht.has(n)?It:Xt;let r=At[e];if(r)return r;if(e==="QQQ")return Lt;if(Ct.has(e))throw new Error(`temporal-fmt: token "${e}" is format-only \u2014 it can't be parsed back into a value. Use a different token in the parse format string (e.g. "d" for "do", "MM" for "ww").`);let o=U(t);switch(e){case"MMMM":return ee(o.monthLong);case"MMM":return ee(o.monthShort);case"EEEE":return ee(o.weekdayLong);case"EEE":return ee(o.weekdayShort);case"a":return ee(o.dayPeriod,!0);case"zzz":return Pt();case"X":case"XX":case"XXX":case"x":case"xx":case"xxx":return Ft[e];default:throw new Error(`temporal-fmt: unknown token "${e}"`)}}var je=new Set(["M","d","H","h","m","s"]),Ut={M:[{digits:1,min:1,max:9},{digits:2,min:10,max:12}],d:[{digits:1,min:1,max:9},{digits:2,min:10,max:31}],H:[{digits:1,min:0,max:9},{digits:2,min:10,max:23}],h:[{digits:1,min:1,max:9},{digits:2,min:10,max:12}],m:[{digits:1,min:0,max:9},{digits:2,min:10,max:59}],s:[{digits:1,min:0,max:9},{digits:2,min:10,max:59}]};function Ze(e,t){let n=new Map;function r(o,a){let s=`${o}:${a}`,i=n.get(s);if(i)return i;if(o===t.length){let p=a===e.length?[[]]:[];return n.set(s,p),p}let u=t[o],c=Ut[u];if(!c)throw new Error(`temporal-fmt: internal error \u2014 "${u}" is not an unpadded numeric token`);let m=[];for(let{digits:p,min:l,max:g}of c){if(a+p>e.length)continue;let y=e.slice(a,a+p);if(p===2&&y[0]==="0")continue;let w=Number(y);if(!(w<l||w>g)){for(let E of r(o+1,a+p))if(m.push([w,...E]),m.length===2)break;if(m.length===2)break}}return n.set(s,m),m}return r(0,0)}function zt(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ye(e,t){let n=[],r=[],o="",a=0,s={groupNames:[],tokens:[]},i=()=>{s.tokens.length>=2&&r.push(s),s={groupNames:[],tokens:[]}};for(let[u,c]of e.entries()){if(c.kind==="literal"){o+=zt(c.value),i();continue}let m=`g${a++}`;n.push({name:m,token:c.value});let p=e[u+1],l=p?.kind==="token"?p.value:void 0;o+=`(?<${m}>${ze(c.value,t,l)})`,je.has(c.value)?(s.groupNames.push(m),s.tokens.push(c.value)):i()}return i(),{regex:new RegExp(`^(?:${o})$`,"u"),groups:n,ambiguousRuns:r}}var te=new Map,Zt=500;function Yt(e,t){let n=JSON.stringify([v(t),e]),r=te.get(n);if(r)return r;if(te.size>=Zt){let o=te.keys().next().value;o!==void 0&&te.delete(o)}return r=Ye(ue(e),t),te.set(n,r),r}var Z=new Map,Vt=500;function Wt(e){let t=new Intl.Locale(e).toString().toLowerCase();if(Z.has(t))return Z.get(t);if(Z.size>=Vt){let s=Z.keys().next().value;s!==void 0&&Z.delete(s)}let n,r=t.split("-"),o=r.indexOf("u"),a=o===-1?-1:r.indexOf("ca",o+1);if(a!==-1&&a+1<r.length){let s=new Intl.DateTimeFormat(t).resolvedOptions().calendar;n=s==="gregory"?void 0:s}return Z.set(t,n),n}function Kt(e,t){if(e==="Z"){if(t==="x"||t==="xx"||t==="xxx")throw new Error(`temporal-fmt: offset token "${t}" doesn't accept "Z" \u2014 only the uppercase variants (X/XX/XXX) emit "Z" for UTC. Use "+00:00", "+0000", or "+00" depending on the variant's width.`);return"+00:00"}let n=e[0];if(n!=="+"&&n!=="-")throw new Error(`temporal-fmt: offset "${e}" for token "${t}" doesn't start with "+", "-", or "Z".`);let r=e.slice(1),o,a;if(r.length===2){if(t!=="X"&&t!=="x")throw new Error(`temporal-fmt: offset token "${t}" can't match "${e}" \u2014 it requires minutes, but "${e}" has none.`);o=r,a="00"}else if(r.length===4){if(t==="XXX"||t==="xxx")throw new Error(`temporal-fmt: offset token "${t}" can't match "${e}" \u2014 it requires a colon between hours and minutes (e.g. "${n}${r.slice(0,2)}:${r.slice(2)}").`);o=r.slice(0,2),a=r.slice(2,4)}else if(r.length===5&&r[2]===":"){if(t!=="XXX"&&t!=="xxx")throw new Error(`temporal-fmt: offset token "${t}" can't match "${e}" \u2014 it doesn't use a colon (use "${n}${r.slice(0,2)}${r.slice(3)}" instead).`);o=r.slice(0,2),a=r.slice(3,5)}else throw new Error(`temporal-fmt: offset "${e}" doesn't match the shape token "${t}" accepts.`);let s=Number(o),i=Number(a);if(s>14)throw new Error(`temporal-fmt: offset hours ${s} in "${e}" out of range (max 14 \u2014 Kiritimati, Line Islands is +14:00).`);if(i>59)throw new Error(`temporal-fmt: offset minutes ${i} in "${e}" out of range (max 59).`);if(n==="+"&&s===14&&i!==0)throw new Error(`temporal-fmt: offset "${e}" exceeds the maximum supported UTC offset of +14:00.`);if(n==="-"&&s===12&&i!==0)throw new Error(`temporal-fmt: offset "${e}" exceeds the maximum supported negative UTC offset of -12:00.`);return`${n}${o}:${a}`}function f(e,t,n){e[t]=n}function Gt(e,t,n,r,o){let a=U(r);switch(t){case"yyyy":f(e,"year",Number(n));break;case"yy":f(e,"twoDigitYear",Number(n));break;case"MM":case"M":f(e,"month",Number(n));break;case"MMMM":f(e,"month",a.monthLong.indexOf(n)+1);break;case"MMM":f(e,"month",a.monthShort.indexOf(n)+1);break;case"dd":case"d":f(e,"day",Number(n));break;case"EEEE":f(e,"weekdayRaw",n),f(e,"weekdayExpected",a.weekdayLong.indexOf(n)+1);break;case"EEE":f(e,"weekdayRaw",n),f(e,"weekdayExpected",a.weekdayShort.indexOf(n)+1);break;case"HH":case"H":f(e,"hour",Number(n));break;case"hh":case"h":f(e,"hour12",Number(n));break;case"mm":case"m":f(e,"minute",Number(n));break;case"ss":case"s":f(e,"second",Number(n));break;case"S":case"SS":case"SSS":case"SSSS":case"SSSSS":case"SSSSSS":case"SSSSSSS":case"SSSSSSSS":case"SSSSSSSSS":{let s=Number(n.padEnd(9,"0"));f(e,"millisecond",Math.floor(s/1e6)),f(e,"microsecond",Math.floor(s/1e3)%1e3),f(e,"nanosecond",s%1e3);break}case"a":{let s=a.dayPeriod.findIndex(i=>i.toLowerCase()===n.toLowerCase());if(s<0)throw new Error(`temporal-fmt: unknown day period "${n}" for locale "${r}".`);f(e,"dayPeriodRaw",n),f(e,"isPM",s===1);break}case"zzz":f(e,"timeZoneId",n);break;case"X":case"XX":case"XXX":case"x":case"xx":case"xxx":f(e,"offsetString",Kt(n,t));break;case"Q":f(e,"quarter",Number(n));break;case"QQQ":f(e,"quarter",Number(n.slice(1)));break}}function Qt(e,t){let n=t.indexOf("d");if(n!==-1){let r=e.filter(o=>o[n]<=12);if(r.length>0)return r[0]}return e[0]}function Jt(e){if(e.year!==void 0&&e.twoDigitYear!==void 0)throw new Error('temporal-fmt: format string mixes "yyyy" and "yy" year representations.');if(e.year!==void 0)return e.year;if(e.twoDigitYear!==void 0)return e.twoDigitYear<=68?2e3+e.twoDigitYear:1900+e.twoDigitYear}function qt(e,t,n){if(e.hour!==void 0&&e.hour12!==void 0)throw new Error(`temporal-fmt: format string "${t}" mixes a 24-hour token ("HH"/"H") with a 12-hour token ("hh"/"h").`);if(e.hour!==void 0){if(e.dayPeriodRaw!==void 0){let r=U(n),o=e.hour<12?r.dayPeriod[0]:r.dayPeriod[1];if(e.dayPeriodRaw.toLowerCase()!==o?.toLowerCase())throw new Error(`temporal-fmt: format string "${t}" contains a day period that contradicts the 24-hour value.`)}return e.hour}if(e.hour12!==void 0){if(e.isPM===void 0)throw new Error(`temporal-fmt: format string "${t}" uses a 12-hour token ("hh"/"h") without an "a" token, so parse() can't tell AM from PM.`);return e.hour12%12+(e.isPM?12:0)}}function Ve(e,t,n={}){if(e.length>1e3)throw new Error(`temporal-fmt: format string exceeds maximum length of ${1e3} characters (got ${e.length}).`);if(t.length>1e5)throw new Error(`temporal-fmt: input exceeds maximum length of ${1e5} characters (got ${t.length}).`);let r=n.locale??j,o=Wt(r),a=Yt(e,r),s=a.regex.exec(t);if(!s)throw new Error("temporal-fmt: no valid pattern matches the format string and input shape");if(a.groups.length===0)throw new Error(`temporal-fmt: format string "${e}" has no tokens \u2014 nothing to parse into a value.`);for(let{name:d,token:$}of a.groups)if($==="zzz"&&!Ue(s.groups[d]))throw new Error("temporal-fmt: no valid pattern matches the format string and input shape");let i=[];for(let d of a.ambiguousRuns){let $=d.groupNames.map(Te=>s.groups[Te]).join(""),x=Ze($,d.tokens);if(x.length>1){if(!n.lenient)throw new Error(`temporal-fmt: "${$}" in format string "${e}" is ambiguous \u2014 ${x.length} different ways to read tokens "${d.tokens.join("")}" (with no separator between them) are all individually valid (e.g. ${JSON.stringify(x[0])} vs ${JSON.stringify(x[1])}). parse() won't guess; add a separator between these tokens, or use their padded form (e.g. "MM" instead of "M") so each one has a fixed width. Pass { lenient: true } to opt into a documented heuristic that picks one.`);i.push({groupNames:d.groupNames,values:Qt(x,d.tokens)})}}let u={},c=new Map;for(let{groupNames:d,values:$}of i)d.forEach((x,Te)=>c.set(x,String($[Te])));for(let{name:d,token:$}of a.groups){let x=c.get(d)??s.groups[d];Gt(u,$,x,r,e)}let m=Jt(u),p=qt(u,e,r),{month:l,day:g,minute:y,second:w,millisecond:E,microsecond:S,nanosecond:N,timeZoneId:V,offsetString:L,weekdayExpected:ke,weekdayRaw:ut,quarter:$e}=u,ct=m!==void 0||l!==void 0||g!==void 0,F=m!==void 0&&l!==void 0&&g!==void 0;if(ct&&!F)throw new Error(`temporal-fmt: format string "${e}" has an incomplete date \u2014 year, month, and day tokens must all be present together.`);let oe=p!==void 0||y!==void 0||w!==void 0||E!==void 0;if(V!==void 0&&!(F&&oe))throw new Error(`temporal-fmt: format string "${e}" has a "zzz" token but needs a full date and time to build a ZonedDateTime.`);if(L!==void 0&&!(F&&oe))throw new Error(`temporal-fmt: format string "${e}" has an offset token (X/XX/XXX/x/xx/xxx) but needs a full date and time to build a ZonedDateTime.`);if(ke!==void 0&&!F)throw new Error(`temporal-fmt: format string "${e}" has a weekday token ("EEEE"/"EEE") but needs a full date to validate it against.`);if(!F&&!oe)throw new Error(`temporal-fmt: format string "${e}" has no date or time tokens to parse.`);let W=C(),ae={hour:p??0,minute:y??0,second:w??0,millisecond:E??0,microsecond:S??0,nanosecond:N??0},se=o?{calendar:o}:{},K={overflow:"reject"},M;try{V!==void 0?M=W.ZonedDateTime.from({year:m,month:l,day:g,...ae,...se,timeZone:V},K):L!==void 0?M=W.ZonedDateTime.from({year:m,month:l,day:g,...ae,...se,timeZone:L},K):F&&oe?M=W.PlainDateTime.from({year:m,month:l,day:g,...ae,...se},K):F?M=W.PlainDate.from({year:m,month:l,day:g,...se},K):M=W.PlainTime.from(ae,K)}catch(d){throw new Error(`temporal-fmt: "${t}" doesn't describe a valid date/time for format "${e}": ${d.message}`)}if(L!==void 0&&V!==void 0){let d=M.offset;if(d!==L)throw new Error(`temporal-fmt: format string "${e}" has both a "zzz" zone ("${V}") and an offset token ("${L}"), but the zone's actual offset at this instant is "${d}". The offset and the zone disagree \u2014 fix one or the other.`)}if(ke!==void 0){let d=M.dayOfWeek;if(d!==ke){let $=U(r);throw new Error(`temporal-fmt: "${ut}" doesn't match the actual weekday (${$.weekdayLong[d-1]}) for the parsed date.`)}}if($e!==void 0&&l!==void 0){let d=Math.ceil(l/3);if($e!==d)throw new Error(`temporal-fmt: format string "${e}" contains a quarter token (Q/QQQ) whose value (Q${$e}) disagrees with the parsed month's actual quarter \u2014 month ${l} is in Q${d}.`)}return M}var We={y:{longSingular:"year",longPlural:"years",shortSingular:"yr",shortPlural:"yrs",field:"years",intlUnit:"year"},o:{longSingular:"month",longPlural:"months",shortSingular:"mo",shortPlural:"mos",field:"months",intlUnit:"month"},w:{longSingular:"week",longPlural:"weeks",shortSingular:"wk",shortPlural:"wks",field:"weeks",intlUnit:"week"},d:{longSingular:"day",longPlural:"days",shortSingular:"d",shortPlural:"d",field:"days",intlUnit:"day"},h:{longSingular:"hour",longPlural:"hours",shortSingular:"h",shortPlural:"h",field:"hours",intlUnit:"hour"},m:{longSingular:"minute",longPlural:"minutes",shortSingular:"m",shortPlural:"m",field:"minutes",intlUnit:"minute"},s:{longSingular:"second",longPlural:"seconds",shortSingular:"s",shortPlural:"s",field:"seconds",intlUnit:"second"},S:{longSingular:"millisecond",longPlural:"milliseconds",shortSingular:"ms",shortPlural:"ms",field:"milliseconds",intlUnit:"millisecond"}},Bt=Object.keys(We).flatMap(e=>[e+e+e,e+e,e]).sort((e,t)=>t.length-e.length);function en(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r==="'"){if(e[n+1]==="'"){Fe(t,"'"),n+=2;continue}let a=n+1,s="",i=!1;for(;a<e.length;){if(e[a]==="'"){if(e[a+1]==="'"){s+="'",a+=2;continue}i=!0,a+=1;break}s+=e[a],a+=1}if(!i)throw new Error(`temporal-fmt: unterminated quote in duration format string "${e}"`);Fe(t,s),n=a;continue}let o=Bt.find(a=>e.startsWith(a,n));if(o){let a=o[0],s=o.length===1?"numeric":o.length===2?"short":"long";t.push({kind:"token",value:o,unit:a,form:s}),n+=o.length;continue}Fe(t,r),n+=1}return t}function Fe(e,t){let n=e[e.length-1];n&&n.kind==="literal"?n.value+=t:e.push({kind:"literal",value:t})}function tn(e,t){let n=e[t];if(n==null)return 0;if(typeof n=="number"&&Number.isFinite(n))return n;let r=Number(n);if(!Number.isFinite(r))throw new Error(`temporal-fmt: duration field "${t}" is not a finite number (got ${String(n)}).`);return r}var ne=new Map,nn=200;function rn(e,t,n){let r=`${v(e)}|${t}|${n}`,o=ne.get(r);if(o)return o;if(ne.size>=nn){let s=ne.keys().next().value;s!==void 0&&ne.delete(s)}let a=new Intl.NumberFormat(e,{style:"unit",unit:t,unitDisplay:n});return ne.set(r,a),a}function Ke(e,t,n={}){if(t.length>1e3)throw new Error(`temporal-fmt: duration format string exceeds maximum length of ${1e3} characters (got ${t.length}).`);let r=n.showZeroValues===!0,o=n.locale,a=o!==void 0,s=en(t),i="";for(let u of s){if(u.kind==="literal"){i+=u.value;continue}let c=We[u.unit];if(!c)throw new Error(`temporal-fmt: unknown duration token "${u.value}"`);let m=tn(e,c.field);if(!(m===0&&!r)){if(u.form==="numeric"){i+=String(m);continue}if(a){let p=u.form==="short"?"short":"long",l=rn(o,c.intlUnit,p);i+=l.format(m);continue}u.form==="short"?i+=m+(m===1||m===-1?c.shortSingular:c.shortPlural):i+=m+" "+(m===1||m===-1?c.longSingular:c.longPlural)}}return i}function Ge(e,t){if(e===null||typeof e!="object")throw new Error(`temporal-fmt: formatDistance expects Temporal values, got ${t} = ${String(e)}.`);let n=e,r=typeof n.year=="number",o=typeof n.month=="number",a=typeof n.day=="number";if(r!==o||o!==a)throw new Error(`temporal-fmt: formatDistance got a ${t} with a partial date (some of year/month/day missing). Pass a full Temporal.PlainDate / PlainDateTime / ZonedDateTime.`);return{year:r?n.year:void 0,month:o?n.month:void 0,day:a?n.day:void 0,hour:typeof n.hour=="number"?n.hour:void 0,minute:typeof n.minute=="number"?n.minute:void 0,second:typeof n.second=="number"?n.second:void 0,millisecond:typeof n.millisecond=="number"?n.millisecond:void 0}}var Pe=2e3,le=1e3,de=60*le,fe=60*de,R=24*fe;function on(e,t,n){let r=0;if(e>=Pe)for(let o=Pe;o<e;o++)r+=Q(o)?366:365;else for(let o=e;o<Pe;o++)r-=Q(o)?366:365;return r+=De(e,t,n)-1,r}function Qe(e){if(e.year===void 0||e.month===void 0||e.day===void 0)throw new Error("temporal-fmt: formatDistance needs a Temporal value with year/month/day fields (PlainDate, PlainDateTime, or ZonedDateTime). A PlainTime or other shape has no anchor date to diff against.");let t=on(e.year,e.month,e.day),n=e.hour??0,r=e.minute??0,o=e.second??0,a=e.millisecond??0;return t*R+n*fe+r*de+o*le+a}var an={seconds:60,minutes:60,hours:24,days:30,months:365};function sn(e){let t={...an,...e};for(let i of Object.keys(t)){let u=t[i];if(typeof u!="number"||!Number.isFinite(u)||u<=0)throw new Error(`temporal-fmt: formatDistance cutoff "${i}" must be a positive finite number (got ${String(u)}).`)}let n=t.seconds*le,r=t.minutes*de,o=t.hours*fe,a=t.days*R,s=t.months*R;if(!(n<=r&&r<=o&&o<=a&&a<=s))throw new Error(`temporal-fmt: formatDistance cutoffs must be monotonically non-decreasing in equivalent ms (seconds \u2264 minutes \u2264 hours \u2264 days \u2264 months). Got: seconds=${t.seconds}s, minutes=${t.minutes}min, hours=${t.hours}h, days=${t.days}d, months=${t.months}d \u2014 pick a sequence where each boundary is at least as large as the one before it.`);return[{maxMs:n,unit:"second"},{maxMs:r,unit:"minute"},{maxMs:o,unit:"hour"},{maxMs:a,unit:"day"},{maxMs:s,unit:"month"}]}var re=new Map,mn=100;function un(e,t){let n=`${cn(e)}|${t}`,r=re.get(n);if(r)return r;if(re.size>=mn){let o=re.keys().next().value;o!==void 0&&re.delete(o)}return r=new Intl.RelativeTimeFormat(e,{numeric:t}),re.set(n,r),r}function cn(e){try{return new Intl.Locale(e.replace(/_/g,"-")).toString().toLowerCase()}catch{return e}}function Je(e,t,n={}){let r=Ge(e,"date1"),o=Ge(t,"date2"),a=Qe(r)-Qe(o),s=Math.abs(a),i=sn(n.cutoffs),u="year";for(let{maxMs:y,unit:w}of i)if(s<y){u=w;break}let c=ln(u),m=Math.round(a/c),p=n.numeric??"auto",l=n.locale??j;return un(l,p).format(m,u)}function ln(e){switch(e){case"second":return le;case"minute":return de;case"hour":return fe;case"day":return R;case"week":return 7*R;case"month":return 30*R;case"quarter":return 91*R;case"year":return 365*R;default:throw new Error(`temporal-fmt: formatDistance hit unhandled unit "${String(e)}".`)}}function T(e){return e.toLowerCase().replace(/ä/g,"ae").replace(/ö/g,"oe").replace(/ü/g,"ue").replace(/ß/g,"ss").normalize("NFD").replace(/[\u0300-\u036f]/g,"")}function _(e){if(typeof e.year!="number")throw new Error("temporal-fmt: parseRelative reference date is missing year.");return e.year}function O(e){if(typeof e.month!="number")throw new Error("temporal-fmt: parseRelative reference date is missing month.");return e.month}function A(e){if(typeof e.day!="number")throw new Error("temporal-fmt: parseRelative reference date is missing day.");return e.day}function ge(e){let t=e.dayOfWeek;if(typeof t!="number")throw new Error("temporal-fmt: parseRelative needs a reference date exposing dayOfWeek (a Temporal.PlainDate / PlainDateTime / ZonedDateTime).");return t}function k(e){return[...e.map(T)].sort((r,o)=>o.length-r.length).map(r=>r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|")}function ye(e,t,n,r){return e.PlainDate.from({year:t,month:n,day:r},{overflow:"reject"})}function b(e,t,n){return e.PlainDate.from({year:_(t),month:O(t),day:A(t)}).add({days:n})}function P(e,t,n,r){let o=e.PlainDate.from({year:_(t),month:O(t),day:A(t)}),a={};return r==="day"&&(a.days=n),r==="week"&&(a.weeks=n),r==="month"&&(a.months=n),r==="year"&&(a.years=n),o.add(a)}function we(e,t,n){if(e==="next"){let r=n-t;return r<=0&&(r+=7),r}if(e==="last"){let r=n-t;return r>=0&&(r-=7),r}return n-t}function Se(e,t,n,r){let o=_(t),a=e.PlainDate.from({year:o,month:O(t),day:A(t)});try{let s=e.PlainDate.from({year:o,month:n,day:r},{overflow:"reject"});if(!e.PlainDate.compare)throw new Error("temporal-fmt: parseRelative needs Temporal.PlainDate.compare to resolve month-day phrases; the active implementation does not expose it.");return e.PlainDate.compare(s,a)>=0?s:e.PlainDate.from({year:o+1,month:n,day:r},{overflow:"reject"})}catch(s){try{return e.PlainDate.from({year:o+1,month:n,day:r},{overflow:"reject"})}catch{throw new Error(`temporal-fmt: parseRelative can't resolve month ${n} day ${r} \u2014 it isn't a valid date in either ${o} or ${o+1}. Original error: ${s.message}`)}}}function be(e,t){let n=T(e),r=t.findIndex(o=>T(o)===n);if(r<0)throw new Error(`temporal-fmt: parseRelative internal error \u2014 weekday "${e}" not in names list.`);return r+1}function Ee(e,t,n=[]){let r=T(e),o=t.findIndex(s=>T(s)===r);if(o>=0)return o+1;let a=n.findIndex(s=>T(s)===r);if(a>=0)return a+1;throw new Error(`temporal-fmt: parseRelative internal error \u2014 month "${e}" not in names list.`)}var qe=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],Be=["January","February","March","April","May","June","July","August","September","October","November","December"],et=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],he={supportedHint:'Supported: weekday refs ("next Tuesday"), day offsets ("today"/"tomorrow"/"yesterday"), unit offsets ("in 3 days", "2 weeks ago"), and month-day ("March 5th").',matchers:[{pattern:/^today$/i,resolve:(e,t)=>ye(t.temporal,_(t.reference),O(t.reference),A(t.reference))},{pattern:/^tomorrow$/i,resolve:(e,t)=>b(t.temporal,t.reference,1)},{pattern:/^yesterday$/i,resolve:(e,t)=>b(t.temporal,t.reference,-1)},{pattern:new RegExp(`^(next|last|this)\\s+(${k(qe)})$`,"i"),resolve:(e,t)=>{let n=e[1].toLowerCase(),r=be(e[2],qe),o=ge(t.reference);return b(t.temporal,t.reference,we(n,o,r))}},{pattern:/^(in\s+)?(\d+)\s+(day|week|month|year)s?(?:\s+ago)?$/i,resolve:(e,t)=>{let n=e[1],r=e[2],o=e[3].toLowerCase(),a=!!n,s=/\bago\b/i.test(e[0]);if(!a&&!s)throw new Error(`temporal-fmt: parseRelative can't tell whether "${e[0]}" is past or future \u2014 use "in ${r} ${o}s" or "${r} ${o}s ago".`);let i=a?1:-1;return P(t.temporal,t.reference,i*Number(r),o)}},{pattern:new RegExp(`^(${k([...Be,...et])})\\s+(\\d{1,2})(?:st|nd|rd|th)?(?:,?\\s*(\\d{4}))?$`,"i"),resolve:(e,t)=>{let n=Ee(e[1],Be,et),r=Number(e[2]);return Se(t.temporal,t.reference,n,r)}}]},pe=["lunes","martes","mi\xE9rcoles","jueves","viernes","s\xE1bado","domingo"],tt=["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],nt=["ene","feb","mar","abr","may","jun","jul","ago","sept","oct","nov","dic"],dn={supportedHint:'Frases soportadas: referencias de d\xEDa de la semana ("el pr\xF3ximo lunes", "el lunes pasado", "este martes"), offsets de d\xEDa ("hoy"/"ma\xF1ana"/"ayer"), offsets de unidad ("en 3 d\xEDas", "hace 2 semanas"), y mes-d\xEDa ("5 de marzo").',matchers:[{pattern:/^hoy$/i,resolve:(e,t)=>ye(t.temporal,_(t.reference),O(t.reference),A(t.reference))},{pattern:/^ma[ñn]ana$/i,resolve:(e,t)=>b(t.temporal,t.reference,1)},{pattern:/^ayer$/i,resolve:(e,t)=>b(t.temporal,t.reference,-1)},{pattern:new RegExp(`^(?:el\\s+)?(?:(pr[o\xF3]ximo|pasado)\\s+(${k(pe)})|(${k(pe)})\\s+(pr[o\xF3]ximo|pasado)|este\\s+(${k(pe)}))$`,"i"),resolve:(e,t)=>{let n,r;e[1]&&e[2]?(n=e[1],r=e[2]):e[3]&&e[4]?(r=e[3],n=e[4]):(n="este",r=e[5]);let o=T(n)==="proximo"?"next":n.toLowerCase()==="este"?"this":"last",a=be(r,pe),s=ge(t.reference);return b(t.temporal,t.reference,we(o,s,a))}},{pattern:new RegExp("^(?:(en|dentro\\s+de)\\s+(\\d+)\\s+(d[i\xED]a|semana|mes|a[\xF1n]o)s?|(\\d+)\\s+(d[i\xED]a|semana|mes|a[\xF1n]o)s?\\s+(hace))$","i"),resolve:(e,t)=>{let n,r,o;e[1]&&e[2]&&e[3]?(n=e[2],r=e[3],o=1):(n=e[5],r=e[6],o=-1);let a=Y(r);return P(t.temporal,t.reference,o*Number(n),a)}},{pattern:new RegExp("^hace\\s+(\\d+)\\s+(d[i\xED]a|semana|mes|a[\xF1n]o)s?$","i"),resolve:(e,t)=>{let n=Number(e[1]),r=Y(e[2]);return P(t.temporal,t.reference,-n,r)}},{pattern:new RegExp("^(\\d+)\\s+(d[i\xED]a|semana|mes|a[\xF1n]o)s?$","i"),resolve:(e,t)=>{throw new Error(`temporal-fmt: parseRelative no puede decidir si "${e[0]}" es pasado o futuro \u2014 usa "en ${e[1]} ${e[2]}s" o "hace ${e[1]} ${e[2]}s".`)}},{pattern:new RegExp(`^(\\d{1,2})\\.?\\s+de\\s+(${k([...tt,...nt])})(?:\\s+de\\s+(\\d{4}))?$`,"i"),resolve:(e,t)=>{let n=Number(e[1]),r=Ee(e[2],tt,nt);return Se(t.temporal,t.reference,r,n)}}]},_e=["lundi","mardi","mercredi","jeudi","vendredi","samedi","dimanche"],rt=["janvier","f\xE9vrier","mars","avril","mai","juin","juillet","ao\xFBt","septembre","octobre","novembre","d\xE9cembre"],ot=["janv.","f\xE9vr.","mars","avr.","mai","juin","juil.","ao\xFBt","sept.","oct.","nov.","d\xE9c."],fn={supportedHint:`Phrases prises en charge : r\xE9f\xE9rences de jour de la semaine ("lundi prochain", "mardi dernier", "ce mercredi"), d\xE9calages de jour ("aujourd'hui"/"demain"/"hier"), d\xE9calages d'unit\xE9 ("dans 3 jours", "il y a 2 semaines"), et mois-jour ("5 mars").`,matchers:[{pattern:/^aujourd'hui$/i,resolve:(e,t)=>ye(t.temporal,_(t.reference),O(t.reference),A(t.reference))},{pattern:/^demain$/i,resolve:(e,t)=>b(t.temporal,t.reference,1)},{pattern:/^hier$/i,resolve:(e,t)=>b(t.temporal,t.reference,-1)},{pattern:new RegExp(`^(?:(${k(_e)})\\s+(prochain|dernier)|ce\\s+(${k(_e)}))$`,"i"),resolve:(e,t)=>{let n,r;e[1]&&e[2]?(r=e[1],n=e[2].toLowerCase()==="prochain"?"next":"last"):(n="this",r=e[3]);let o=be(r,_e),a=ge(t.reference);return b(t.temporal,t.reference,we(n,a,o))}},{pattern:new RegExp("^il\\s+y\\s+a\\s+(\\d+)\\s+(jour|semaine|mois|an|ann[e\xE9e]e)s?$","i"),resolve:(e,t)=>{let n=Number(e[1]),r=Y(e[2]);return P(t.temporal,t.reference,-n,r)}},{pattern:new RegExp("^dans\\s+(\\d+)\\s+(jour|semaine|mois|an|ann[e\xE9e]e)s?$","i"),resolve:(e,t)=>{let n=Number(e[1]),r=Y(e[2]);return P(t.temporal,t.reference,n,r)}},{pattern:new RegExp("^(\\d+)\\s+(jour|semaine|mois|an|ann[e\xE9e]e)s?$","i"),resolve:(e,t)=>{throw new Error(`temporal-fmt: parseRelative ne peut pas d\xE9terminer si "${e[0]}" est pass\xE9 ou futur \u2014 utilisez "dans ${e[1]} ${e[2]}s" ou "il y a ${e[1]} ${e[2]}s".`)}},{pattern:new RegExp(`^(\\d{1,2})\\s+(${k([...rt,...ot])})(?:\\s+(\\d{4}))?$`,"i"),resolve:(e,t)=>{let n=Number(e[1]),r=Ee(e[2],rt,ot);return Se(t.temporal,t.reference,r,n)}}]},at=["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"],st=["Januar","Februar","M\xE4rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],it=["Jan","Feb","M\xE4r","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],pn={supportedHint:'Unterst\xFCtzte Phrasen: Wochentag-Bez\xFCge ("n\xE4chsten Dienstag", "letzten Freitag", "diesen Montag"), Tages-Offsets ("heute"/"morgen"/"gestern"), Einheiten-Offsets ("in 3 Tagen", "vor 2 Wochen"), und Monat-Tag ("5. M\xE4rz").',matchers:[{pattern:/^heute$/i,resolve:(e,t)=>ye(t.temporal,_(t.reference),O(t.reference),A(t.reference))},{pattern:/^morgen$/i,resolve:(e,t)=>b(t.temporal,t.reference,1)},{pattern:/^gestern$/i,resolve:(e,t)=>b(t.temporal,t.reference,-1)},{pattern:new RegExp(`^(n(?:ae|a|\xE4)chsten|letzten|diesen)\\s+(${k(at)})$`,"i"),resolve:(e,t)=>{let n=T(e[1]),r=n==="nachsten"||n==="naechsten"?"next":n==="diesen"?"this":"last",o=be(e[2],at),a=ge(t.reference);return b(t.temporal,t.reference,we(r,a,o))}},{pattern:new RegExp("^vor\\s+(\\d+)\\s+(Tag(?:e|n|en)?|Woche(?:n)?|Monat(?:e|n|en)?|Jahr(?:e|n|en)?)$","i"),resolve:(e,t)=>{let n=Number(e[1]),r=Y(e[2]);return P(t.temporal,t.reference,-n,r)}},{pattern:new RegExp("^in\\s+(\\d+)\\s+(Tag(?:e|n|en)?|Woche(?:n)?|Monat(?:e|n|en)?|Jahr(?:e|n|en)?)$","i"),resolve:(e,t)=>{let n=Number(e[1]),r=Y(e[2]);return P(t.temporal,t.reference,n,r)}},{pattern:new RegExp("^(\\d+)\\s+(Tag(?:e|n|en)?|Woche(?:n)?|Monat(?:e|n|en)?|Jahr(?:e|n|en)?)$","i"),resolve:(e,t)=>{throw new Error(`temporal-fmt: parseRelative kann nicht erkennen, ob "${e[0]}" Vergangenheit oder Zukunft ist \u2014 verwende "in ${e[1]} ${e[2]}" oder "vor ${e[1]} ${e[2]}".`)}},{pattern:new RegExp(`^(\\d{1,2})\\.?\\s+(${k([...st,...it,"Maerz","Maer"])})(?:\\s+(\\d{4}))?$`,"i"),resolve:(e,t)=>{let n=Number(e[1]),r=Ee(e[2],st,it);return Se(t.temporal,t.reference,r,n)}}]},hn={en:he,es:dn,fr:fn,de:pn};function gn(e){if(!e)return he;try{let n=new Intl.Locale(e.replace(/_/g,"-")).language.toLowerCase();return hn[n]??he}catch{return he}}function Y(e){let t=T(e);if(t==="day"||t==="week"||t==="month"||t==="year")return t;if(t==="dia")return"day";if(t==="semana")return"week";if(t==="mes")return"month";if(t==="ano"||t==="a\xF1o")return"year";if(t==="jour")return"day";if(t==="semaine")return"week";if(t==="mois")return"month";if(t==="an"||t==="annee")return"year";if(t==="tag"||t==="tagen")return"day";if(t==="woche"||t==="wochen")return"week";if(t==="monat"||t==="monaten")return"month";if(t==="jahr"||t==="jahren")return"year";throw new Error(`temporal-fmt: parseRelative internal error \u2014 unrecognized unit word "${e}".`)}function mt(e,t,n={}){let r=t,o=C(),a=(e??"").trim().replace(/\s+/g," ");if(a.length===0)throw new Error("temporal-fmt: parseRelative got an empty input string.");let s=T(a),i=gn(n.locale),u={temporal:o,reference:r};for(let c of i.matchers){let m=s.match(c.pattern);if(m)return c.resolve(m,u)}throw new Error(`temporal-fmt: parseRelative doesn't recognize "${a}". `+i.supportedHint)}0&&(module.exports={format,formatDistance,formatDuration,parse,parseRelative,registerLocaleVocab,setTemporal});
|
|
1
|
+
"use strict";var xe=Object.defineProperty;var lt=Object.getOwnPropertyDescriptor;var dt=Object.getOwnPropertyNames;var ft=Object.prototype.hasOwnProperty;var pt=(e,t)=>{for(var n in t)xe(e,n,{get:t[n],enumerable:!0})},ht=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of dt(t))!ft.call(e,o)&&o!==n&&xe(e,o,{get:()=>t[o],enumerable:!(r=lt(t,o))||r.enumerable});return e};var gt=e=>ht(xe({},"__esModule",{value:!0}),e);var yn={};pt(yn,{format:()=>He,formatDistance:()=>Je,formatDuration:()=>Ke,parse:()=>Ve,parseRelative:()=>mt,registerLocaleVocab:()=>Ie,setTemporal:()=>Ce});module.exports=gt(yn);var Oe,Ae=[];function Le(e){Ae.push(e)}function Ce(e){Oe=e;for(let t of Ae)t()}function yt(){return Oe??globalThis.Temporal}function X(){let e=yt();if(!e)throw new Error("temporal-fmt: parse() needs a Temporal implementation to construct its result. Call setTemporal(Temporal) once at startup, or assign one to globalThis.Temporal (native on Node 26+, or a polyfill like temporal-polyfill).");return e}var ve=new Map;function wt(e,t){let n=[{key:"monthLong",length:12,label:"long month names"},{key:"monthShort",length:12,label:"short month names"},{key:"weekdayLong",length:7,label:"long weekday names"},{key:"weekdayShort",length:7,label:"short weekday names"},{key:"dayPeriod",length:2,label:"day period markers (AM/PM-equivalent)"}];for(let{key:r,length:o,label:a}of n){let i=e[r];if(i===void 0)throw new Error(`temporal-fmt: registerLocaleVocab for locale "${t}" is missing required field "${r}" (${a}).`);if(!Array.isArray(i))throw new Error(`temporal-fmt: registerLocaleVocab for locale "${t}": "${r}" must be an array, got ${typeof i}.`);if(i.length!==o)throw new Error(`temporal-fmt: registerLocaleVocab for locale "${t}": "${r}" must have exactly ${o} entries (got ${i.length}) \u2014 ${a}.`);i.forEach((s,u)=>{if(typeof s!="string"||s.length===0)throw new Error(`temporal-fmt: registerLocaleVocab for locale "${t}": "${r}[${u}]" must be a non-empty string, got ${String(s)}.`)})}if(R(e.monthLong,"MMMM month",t),R(e.monthShort,"MMM month",t),R(e.weekdayLong,"EEEE weekday",t),R(e.weekdayShort,"EEE weekday",t),e.dayPeriod[0]===e.dayPeriod[1])throw new Error(`temporal-fmt: registerLocaleVocab for locale "${t}": dayPeriod entries must differ (both are "${e.dayPeriod[0]}"); otherwise parse() can't tell AM from PM.`)}function Ie(e,t){if(typeof e!="string"||e.length===0)throw new Error(`temporal-fmt: registerLocaleVocab requires a non-empty locale string, got ${String(e)}.`);wt(t,e);let n=M(e);ve.set(n,{monthLong:[...t.monthLong],monthShort:[...t.monthShort],weekdayLong:[...t.weekdayLong],weekdayShort:[...t.weekdayShort],dayPeriod:[...t.dayPeriod]}),U.delete(n)}function M(e){try{return new Intl.Locale(e.replace(/_/g,"-")).toString().toLowerCase()}catch{return e}}var U=new Map,St=500;function H(e,t,n){let r=e.formatToParts(t),o=r.findIndex(u=>u.type===n);if(o===-1)throw new Error(`temporal-fmt: locale produced no "${n}" part while building match vocabulary.`);let a=r[o].value,i=r[o-1],s=r[o+1];return i?.type==="literal"&&!/\s/.test(i.value)&&(a=i.value+a),s?.type==="literal"&&!/\s/.test(s.value)&&(a=a+s.value),a}function R(e,t,n){let r=new Map;for(let o=0;o<e.length;o++){let a=r.get(e[o]);if(a!==void 0)throw new Error(`temporal-fmt: locale "${n}" renders ${t} index ${a} and ${o} identically ("${e[o]}"). parse() can't reliably tell these apart for this locale/token, so this combination isn't supported.`);r.set(e[o],o)}}function z(e){let t=M(e);return ve.get(t)}function j(e){let t=M(e),n=ve.get(t);if(n)return n;let r=U.get(t);if(r)return r;let o=new Intl.DateTimeFormat(e,{month:"long",timeZone:"UTC"}),a=new Intl.DateTimeFormat(e,{month:"short",timeZone:"UTC"}),i=[],s=[];for(let b=0;b<12;b++){let F=new Date(Date.UTC(2020,b,1));i.push(H(o,F,"month")),s.push(H(a,F,"month"))}R(i,"MMMM month",e),R(s,"MMM month",e);let u=new Intl.DateTimeFormat(e,{weekday:"long",timeZone:"UTC"}),c=new Intl.DateTimeFormat(e,{weekday:"short",timeZone:"UTC"}),m=[],f=[];for(let b=0;b<7;b++){let F=new Date(Date.UTC(2024,0,1+b));m.push(H(u,F,"weekday")),f.push(H(c,F,"weekday"))}R(m,"EEEE weekday",e),R(f,"EEE weekday",e);let l=new Intl.DateTimeFormat(e,{hour:"numeric",hour12:!0,timeZone:"UTC"}),g=H(l,new Date(Date.UTC(2020,0,1,1)),"dayPeriod"),y=H(l,new Date(Date.UTC(2020,0,1,13)),"dayPeriod"),S=[...new Set([g,y])],k={monthLong:i,monthShort:s,weekdayLong:m,weekdayShort:f,dayPeriod:S};if(U.size>=St){let b=U.keys().next().value;b!==void 0&&U.delete(b)}return U.set(t,k),k}var bt=[0,31,59,90,120,151,181,212,243,273,304,334];function J(e){return e%4===0&&e%100!==0||e%400===0}function Q(e){return J(e)?366:365}function De(e,t,n){let r=bt[t-1]+n;return t>2&&J(e)&&(r+=1),r}var Me=2e3;function Et(e){let t=0;if(e>=Me)for(let r=Me;r<e;r++)t+=Q(r);else for(let r=e;r<Me;r++)t-=Q(r);return((5+t)%7+7)%7+1}function Re(e,t,n,r){let a=De(e,t,n)+(4-r),i,s;a<1?(i=e-1,s=a+Q(i)):a>Q(e)?(i=e+1,s=a-Q(e)):(i=e,s=a);let c=1+(4-Et(i)+7)%7,m=1+Math.floor((s-c)/7);return{isoYear:i,week:m}}function h(e,t){let n=e<0,r=String(Math.abs(e)).padStart(t,"0");return n?"-"+r:r}h.fraction=function(t,n){let r=t.millisecond*1e6+(t.microsecond??0)*1e3+(t.nanosecond??0);return h(r,9).slice(0,n)};var Y="en-US",q=new Map,kt=500;function Xe(e,t){let n=JSON.stringify([M(e),t]),r=q.get(n);if(r)return r;if(q.size>=kt){let o=q.keys().next().value;o!==void 0&&q.delete(o)}return r=new Intl.DateTimeFormat(e,t),q.set(n,r),r}var B;Le(()=>{B=void 0});function $t(){if(B===void 0){B=!1;try{let e=X();new Intl.DateTimeFormat("en-US",{day:"numeric"}).formatToParts(e.PlainDate.from({year:1970,month:1,day:1})),B=!0}catch{}}return B}function Tt(e,t,n,r){let o=e?.calendarId,a={...n,calendar:o&&o!=="iso8601"?o:"gregory"};if(!$t())return e.toLocaleString(t,a);let{toInstant:i,timeZoneId:s}=e,u=typeof i=="function"&&typeof s=="string",c=u?e.toInstant():e,m={...a,...u?{timeZone:s}:{}},l=Xe(t,m).formatToParts(c),g=l.findIndex(b=>b.type===r);if(g===-1)throw new Error(`temporal-fmt: locale "${t}" produced no "${r}" part for this token. This usually means the Temporal object is missing the field the token needs.`);let y=l[g].value,S=l[g-1],k=l[g+1];return S?.type==="literal"&&!/\s/.test(S.value)&&(y=S.value+y),k?.type==="literal"&&!/\s/.test(k.value)&&(y=y+k.value),y}function xt(e,t){let n=z(t);if(n)return e<12?n.dayPeriod[0]:n.dayPeriod[1];let r=new Date(Date.UTC(1970,0,1,e)),a=Xe(t,{hour:"numeric",hour12:!0,timeZone:"UTC"}).formatToParts(r).find(i=>i.type==="dayPeriod");if(!a)throw new Error(`temporal-fmt: locale "${t}" produced no "dayPeriod" part for token "a".`);return a.value}function me(e,t,n,r,o,a){return o&&a!==void 0&&a>=0&&a<o.length?o[a]:Tt(e,t,n,r)}function Z(e,t){if(e==="+00:00"&&(t==="X"||t==="XX"||t==="XXX"))return"Z";let n=e[0],r=e.slice(1,3),o=e.slice(4,6);switch(t){case"X":case"x":return o==="00"?`${n}${r}`:`${n}${r}${o}`;case"XX":case"xx":return`${n}${r}${o}`;case"XXX":case"xxx":return`${n}${r}:${o}`}}var ue=[["yyyy",e=>h(e.year,4),"year"],["yy",e=>{if(e.year<0)throw new Error(`temporal-fmt: token "yy" doesn't support negative years (got ${e.year}), since truncating to 2 digits would make it indistinguishable from a positive year. Use "yyyy" instead.`);return h(e.year%100,2)},"year"],["MMMM",(e,t)=>{let n=z(t);return me(e,t,{month:"long"},"month",n?.monthLong,e.month-1)},"month"],["MMM",(e,t)=>{let n=z(t);return me(e,t,{month:"short"},"month",n?.monthShort,e.month-1)},"month"],["MM",e=>h(e.month,2),"month"],["M",e=>String(e.month),"month"],["dd",e=>h(e.day,2),"day"],["d",e=>String(e.day),"day"],["EEEE",(e,t)=>{let n=z(t);return me(e,t,{weekday:"long"},"weekday",n?.weekdayLong,e.dayOfWeek-1)},"dayOfWeek"],["EEE",(e,t)=>{let n=z(t);return me(e,t,{weekday:"short"},"weekday",n?.weekdayShort,e.dayOfWeek-1)},"dayOfWeek"],["HH",e=>h(e.hour,2),"hour"],["H",e=>String(e.hour),"hour"],["hh",e=>h(e.hour%12||12,2),"hour"],["h",e=>String(e.hour%12||12),"hour"],["mm",e=>h(e.minute,2),"minute"],["m",e=>String(e.minute),"minute"],["ss",e=>h(e.second,2),"second"],["s",e=>String(e.second),"second"],["SSSSSSSSS",e=>h.fraction(e,9),"millisecond"],["SSSSSSSS",e=>h.fraction(e,8),"millisecond"],["SSSSSSS",e=>h.fraction(e,7),"millisecond"],["SSSSSS",e=>h.fraction(e,6),"millisecond"],["SSSSS",e=>h.fraction(e,5),"millisecond"],["SSSS",e=>h.fraction(e,4),"millisecond"],["SSS",e=>h.fraction(e,3),"millisecond"],["SS",e=>h.fraction(e,2),"millisecond"],["S",e=>h.fraction(e,1),"millisecond"],["a",(e,t)=>xt(e.hour,t),"hour"],["zzz",e=>e.timeZoneId,"timeZoneId"],["xxx",e=>Z(e.offset,"xxx"),"offset"],["xx",e=>Z(e.offset,"xx"),"offset"],["X",e=>Z(e.offset,"X"),"offset"],["XX",e=>Z(e.offset,"XX"),"offset"],["XXX",e=>Z(e.offset,"XXX"),"offset"],["x",e=>Z(e.offset,"x"),"offset"],["do",e=>{let t=e.day,n=t%10,r=t%100;return r>=11&&r<=13?t+"th":n===1?t+"st":n===2?t+"nd":n===3?t+"rd":t+"th"},"day"],["Q",e=>String(Math.ceil(e.month/3)),"month"],["QQQ",e=>"Q"+Math.ceil(e.month/3),"month"],["ww",e=>{let{week:t}=Re(e.year,e.month,e.day,e.dayOfWeek);return h(t,2)},"dayOfWeek"],["RRRR",e=>{let{isoYear:t}=Re(e.year,e.month,e.day,e.dayOfWeek);return h(t,4)},"dayOfWeek"]];var vt=ue.map(([e])=>e).sort((e,t)=>t.length-e.length);function ce(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r==="'"){if(e[n+1]==="'"){Ne(t,"'"),n+=2;continue}let a=n+1,i="",s=!1;for(;a<e.length;){if(e[a]==="'"){if(e[a+1]==="'"){i+="'",a+=2;continue}s=!0,a+=1;break}i+=e[a],a+=1}if(!s)throw new Error(`temporal-fmt: unterminated quote in format string "${e}"`);Ne(t,i),n=a;continue}let o=vt.find(a=>e.startsWith(a,n));if(o){let a=o[o.length-1];if(e[n+o.length]===a){let i=n+o.length;for(;e[i]===a;)i+=1;throw new Error(`temporal-fmt: "${e.slice(n,i)}" in format string "${e}" isn't a recognized token \u2014 did you mean "${o}"?`)}t.push({kind:"token",value:o}),n+=o.length;continue}Ne(t,r),n+=1}return t}function Ne(e,t){let n=e[e.length-1];n&&n.kind==="literal"?n.value+=t:e.push({kind:"literal",value:t})}var Mt=new Map(ue.map(([e,t,n])=>[e,{fn:t,field:n}]));function He(e,t,n={}){if(t.length>1e3)throw new Error(`temporal-fmt: format string exceeds maximum length of ${1e3} characters (got ${t.length}).`);let r=n.locale??Y,o=ce(t),a="";for(let i of o){if(i.kind==="literal"){a+=i.value;continue}let s=Mt.get(i.value);if(!s)throw new Error(`temporal-fmt: unknown token "${i.value}"`);if(e[s.field]===void 0)throw new Error(`temporal-fmt: token "${i.value}" requires "${s.field}", which this Temporal object doesn't have. (e.g. PlainDate has no time fields, PlainTime has no date fields)`);a+=s.fn(e,r)}return a}function Dt(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function te(e,t=!1){let n=e.map(Dt);return t?`(?:${n.map(Rt).join("|")})`:`(?:${n.join("|")})`}function Rt(e){return e.replace(/[a-zA-Z]/g,t=>`[${t.toLowerCase()}${t.toUpperCase()}]`)}var Nt="(?:UTC|[+-]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,9})?)?|[A-Za-z_]+(?:[+-]\\d{1,2})?(?:\\/[A-Za-z0-9_+-]+)*)",Ft={X:"(?:Z|[+-]\\d{2}(?:\\d{2})?)",XX:"(?:Z|[+-]\\d{4})",XXX:"(?:Z|[+-]\\d{2}:\\d{2})",x:"[+-]\\d{2}(?:\\d{2})?",xx:"[+-]\\d{4}",xxx:"[+-]\\d{2}:\\d{2}"};function Pt(){return Nt}var le;function _t(){return le||(le=new Set(Intl.supportedValuesOf("timeZone")),le.add("UTC")),le}var Ot=/^[+-]\d{2}:\d{2}(?::\d{2}(?:\.\d{1,9})?)?$/;function Ue(e){return Ot.test(e)||_t().has(e)}var At={yy:"\\d{2}",MM:"(?:0[1-9]|1[0-2])",M:"(?:1[0-2]|[1-9])",dd:"(?:0[1-9]|[12]\\d|3[01])",d:"(?:[12]\\d|3[01]|[1-9])",HH:"(?:[01]\\d|2[0-3])",H:"(?:1\\d|2[0-3]|[0-9])",hh:"(?:0[1-9]|1[0-2])",h:"(?:1[0-2]|[1-9])",mm:"(?:[0-5]\\d)",m:"(?:[1-5]\\d|[0-9])",ss:"(?:[0-5]\\d)",s:"(?:[1-5]\\d|[0-9])",SSSSSSSSS:"\\d{9}",SSSSSSSS:"\\d{8}",SSSSSSS:"\\d{7}",SSSSSS:"\\d{6}",SSSSS:"\\d{5}",SSSS:"\\d{4}",SSS:"\\d{3}",SS:"\\d{2}",S:"\\d",Q:"[1-4]"},Lt="Q[1-4]",Ct=new Set(["do","ww","RRRR"]),It="-?\\d{4}",Xt="-?\\d{4,}",Ht=new Set(["yyyy","yy","MM","M","dd","d","HH","H","hh","h","mm","m","ss","s","SSSSSSSSS","SSSSSSSS","SSSSSSS","SSSSSS","SSSSS","SSSS","SSS","SS","S"]);function ze(e,t,n){if(e==="yyyy")return n!==void 0&&Ht.has(n)?It:Xt;let r=At[e];if(r)return r;if(e==="QQQ")return Lt;if(Ct.has(e))throw new Error(`temporal-fmt: token "${e}" is format-only \u2014 it can't be parsed back into a value. Use a different token in the parse format string (e.g. "d" for "do", "MM" for "ww").`);let o=j(t);switch(e){case"MMMM":return te(o.monthLong);case"MMM":return te(o.monthShort);case"EEEE":return te(o.weekdayLong);case"EEE":return te(o.weekdayShort);case"a":return te(o.dayPeriod,!0);case"zzz":return Pt();case"X":case"XX":case"XXX":case"x":case"xx":case"xxx":return Ft[e];default:throw new Error(`temporal-fmt: unknown token "${e}"`)}}var je=new Set(["M","d","H","h","m","s"]),Ut={M:[{digits:1,min:1,max:9},{digits:2,min:10,max:12}],d:[{digits:1,min:1,max:9},{digits:2,min:10,max:31}],H:[{digits:1,min:0,max:9},{digits:2,min:10,max:23}],h:[{digits:1,min:1,max:9},{digits:2,min:10,max:12}],m:[{digits:1,min:0,max:9},{digits:2,min:10,max:59}],s:[{digits:1,min:0,max:9},{digits:2,min:10,max:59}]};function Ze(e,t){let n=new Map;function r(o,a){let i=`${o}:${a}`,s=n.get(i);if(s)return s;if(o===t.length){let f=a===e.length?[[]]:[];return n.set(i,f),f}let u=t[o],c=Ut[u];if(!c)throw new Error(`temporal-fmt: internal error \u2014 "${u}" is not an unpadded numeric token`);let m=[];for(let{digits:f,min:l,max:g}of c){if(a+f>e.length)continue;let y=e.slice(a,a+f);if(f===2&&y[0]==="0")continue;let S=Number(y);if(!(S<l||S>g)){for(let k of r(o+1,a+f))if(m.push([S,...k]),m.length===2)break;if(m.length===2)break}}return n.set(i,m),m}return r(0,0)}function zt(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ye(e,t){let n=[],r=[],o="",a=0,i={groupNames:[],tokens:[]},s=()=>{i.tokens.length>=2&&r.push(i),i={groupNames:[],tokens:[]}};for(let[u,c]of e.entries()){if(c.kind==="literal"){o+=zt(c.value),s();continue}let m=`g${a++}`;n.push({name:m,token:c.value});let f=e[u+1],l=f?.kind==="token"?f.value:void 0;o+=`(?<${m}>${ze(c.value,t,l)})`,je.has(c.value)?(i.groupNames.push(m),i.tokens.push(c.value)):s()}return s(),{regex:new RegExp(`^(?:${o})$`,"u"),groups:n,ambiguousRuns:r}}var ne=new Map,Zt=500;function Yt(e,t){let n=JSON.stringify([M(t),e]),r=ne.get(n);if(r)return r;if(ne.size>=Zt){let o=ne.keys().next().value;o!==void 0&&ne.delete(o)}return r=Ye(ce(e),t),ne.set(n,r),r}var V=new Map,Vt=500;function Wt(e){let t=new Intl.Locale(e).toString().toLowerCase();if(V.has(t))return V.get(t);if(V.size>=Vt){let i=V.keys().next().value;i!==void 0&&V.delete(i)}let n,r=t.split("-"),o=r.indexOf("u"),a=o===-1?-1:r.indexOf("ca",o+1);if(a!==-1&&a+1<r.length){let i=new Intl.DateTimeFormat(t).resolvedOptions().calendar;n=i==="gregory"?void 0:i}return V.set(t,n),n}function Kt(e,t){if(e==="Z"){if(t==="x"||t==="xx"||t==="xxx")throw new Error(`temporal-fmt: offset token "${t}" doesn't accept "Z" \u2014 only the uppercase variants (X/XX/XXX) emit "Z" for UTC. Use "+00:00", "+0000", or "+00" depending on the variant's width.`);return"+00:00"}let n=e[0];if(n!=="+"&&n!=="-")throw new Error(`temporal-fmt: offset "${e}" for token "${t}" doesn't start with "+", "-", or "Z".`);let r=e.slice(1),o,a;if(r.length===2){if(t!=="X"&&t!=="x")throw new Error(`temporal-fmt: offset token "${t}" can't match "${e}" \u2014 it requires minutes, but "${e}" has none.`);o=r,a="00"}else if(r.length===4){if(t==="XXX"||t==="xxx")throw new Error(`temporal-fmt: offset token "${t}" can't match "${e}" \u2014 it requires a colon between hours and minutes (e.g. "${n}${r.slice(0,2)}:${r.slice(2)}").`);o=r.slice(0,2),a=r.slice(2,4)}else if(r.length===5&&r[2]===":"){if(t!=="XXX"&&t!=="xxx")throw new Error(`temporal-fmt: offset token "${t}" can't match "${e}" \u2014 it doesn't use a colon (use "${n}${r.slice(0,2)}${r.slice(3)}" instead).`);o=r.slice(0,2),a=r.slice(3,5)}else throw new Error(`temporal-fmt: offset "${e}" doesn't match the shape token "${t}" accepts.`);let i=Number(o),s=Number(a);if(i>14)throw new Error(`temporal-fmt: offset hours ${i} in "${e}" out of range (max 14 \u2014 Kiritimati, Line Islands is +14:00).`);if(s>59)throw new Error(`temporal-fmt: offset minutes ${s} in "${e}" out of range (max 59).`);if(n==="+"&&i===14&&s!==0)throw new Error(`temporal-fmt: offset "${e}" exceeds the maximum supported UTC offset of +14:00.`);if(n==="-"&&i===12&&s!==0)throw new Error(`temporal-fmt: offset "${e}" exceeds the maximum supported negative UTC offset of -12:00.`);return`${n}${o}:${a}`}function d(e,t,n){e[t]=n}function Gt(e,t,n,r,o){let a=j(r);switch(t){case"yyyy":d(e,"year",Number(n));break;case"yy":d(e,"twoDigitYear",Number(n));break;case"MM":case"M":d(e,"month",Number(n));break;case"MMMM":d(e,"month",a.monthLong.indexOf(n)+1);break;case"MMM":d(e,"month",a.monthShort.indexOf(n)+1);break;case"dd":case"d":d(e,"day",Number(n));break;case"EEEE":d(e,"weekdayRaw",n),d(e,"weekdayExpected",a.weekdayLong.indexOf(n)+1);break;case"EEE":d(e,"weekdayRaw",n),d(e,"weekdayExpected",a.weekdayShort.indexOf(n)+1);break;case"HH":case"H":d(e,"hour",Number(n));break;case"hh":case"h":d(e,"hour12",Number(n));break;case"mm":case"m":d(e,"minute",Number(n));break;case"ss":case"s":d(e,"second",Number(n));break;case"S":case"SS":case"SSS":case"SSSS":case"SSSSS":case"SSSSSS":case"SSSSSSS":case"SSSSSSSS":case"SSSSSSSSS":{let i=Number(n.padEnd(9,"0"));d(e,"millisecond",Math.floor(i/1e6)),d(e,"microsecond",Math.floor(i/1e3)%1e3),d(e,"nanosecond",i%1e3);break}case"a":{let i=a.dayPeriod.findIndex(s=>s.toLowerCase()===n.toLowerCase());if(i<0)throw new Error(`temporal-fmt: unknown day period "${n}" for locale "${r}".`);d(e,"dayPeriodRaw",n),d(e,"isPM",i===1);break}case"zzz":d(e,"timeZoneId",n);break;case"X":case"XX":case"XXX":case"x":case"xx":case"xxx":d(e,"offsetString",Kt(n,t));break;case"Q":d(e,"quarter",Number(n));break;case"QQQ":d(e,"quarter",Number(n.slice(1)));break}}function Qt(e,t){let n=t.indexOf("d");if(n!==-1){let r=e.filter(o=>o[n]<=12);if(r.length>0)return r[0]}return e[0]}function Jt(e){if(e.year!==void 0&&e.twoDigitYear!==void 0)throw new Error('temporal-fmt: format string mixes "yyyy" and "yy" year representations.');if(e.year!==void 0)return e.year;if(e.twoDigitYear!==void 0)return e.twoDigitYear<=68?2e3+e.twoDigitYear:1900+e.twoDigitYear}function qt(e,t,n){if(e.hour!==void 0&&e.hour12!==void 0)throw new Error(`temporal-fmt: format string "${t}" mixes a 24-hour token ("HH"/"H") with a 12-hour token ("hh"/"h").`);if(e.hour!==void 0){if(e.dayPeriodRaw!==void 0){let r=j(n),o=e.hour<12?r.dayPeriod[0]:r.dayPeriod[1];if(e.dayPeriodRaw.toLowerCase()!==o?.toLowerCase())throw new Error(`temporal-fmt: format string "${t}" contains a day period that contradicts the 24-hour value.`)}return e.hour}if(e.hour12!==void 0){if(e.isPM===void 0)throw new Error(`temporal-fmt: format string "${t}" uses a 12-hour token ("hh"/"h") without an "a" token, so parse() can't tell AM from PM.`);return e.hour12%12+(e.isPM?12:0)}}function Ve(e,t,n={}){if(e.length>1e3)throw new Error(`temporal-fmt: format string exceeds maximum length of ${1e3} characters (got ${e.length}).`);if(t.length>1e5)throw new Error(`temporal-fmt: input exceeds maximum length of ${1e5} characters (got ${t.length}).`);let r=n.locale??Y,o=Wt(r),a=Yt(e,r),i=a.regex.exec(t);if(!i)throw new Error("temporal-fmt: no valid pattern matches the format string and input shape");if(a.groups.length===0)throw new Error(`temporal-fmt: format string "${e}" has no tokens \u2014 nothing to parse into a value.`);for(let{name:p,token:w}of a.groups)if(w==="zzz"&&!Ue(i.groups[p]))throw new Error("temporal-fmt: no valid pattern matches the format string and input shape");let s=[];for(let p of a.ambiguousRuns){let w=p.groupNames.map(I=>i.groups[I]).join(""),T=Ze(w,p.tokens);if(T.length>1){if(!n.lenient)throw new Error(`temporal-fmt: "${w}" in format string "${e}" is ambiguous \u2014 ${T.length} different ways to read tokens "${p.tokens.join("")}" (with no separator between them) are all individually valid (e.g. ${JSON.stringify(T[0])} vs ${JSON.stringify(T[1])}). parse() won't guess; add a separator between these tokens, or use their padded form (e.g. "MM" instead of "M") so each one has a fixed width. Pass { lenient: true } to opt into a documented heuristic that picks one.`);s.push({groupNames:p.groupNames,values:Qt(T,p.tokens)})}}let u={},c=new Map;for(let{groupNames:p,values:w}of s)p.forEach((T,I)=>c.set(T,String(w[I])));for(let{name:p,token:w}of a.groups){let T=c.get(p)??i.groups[p];Gt(u,w,T,r,e)}let m=Jt(u),f=qt(u,e,r),{month:l,day:g,minute:y,second:S,millisecond:k,microsecond:b,nanosecond:F,timeZoneId:K,offsetString:v,weekdayExpected:$e,weekdayRaw:ut,quarter:Te}=u,ct=m!==void 0||l!==void 0||g!==void 0,P=m!==void 0&&l!==void 0&&g!==void 0;if(ct&&!P)throw new Error(`temporal-fmt: format string "${e}" has an incomplete date \u2014 year, month, and day tokens must all be present together.`);let ae=f!==void 0||y!==void 0||S!==void 0||k!==void 0;if(K!==void 0&&!(P&&ae))throw new Error(`temporal-fmt: format string "${e}" has a "zzz" token but needs a full date and time to build a ZonedDateTime.`);if(v!==void 0&&!(P&&ae))throw new Error(`temporal-fmt: format string "${e}" has an offset token (X/XX/XXX/x/xx/xxx) but needs a full date and time to build a ZonedDateTime.`);if($e!==void 0&&!P)throw new Error(`temporal-fmt: format string "${e}" has a weekday token ("EEEE"/"EEE") but needs a full date to validate it against.`);if(!P&&!ae)throw new Error(`temporal-fmt: format string "${e}" has no date or time tokens to parse.`);let G=X(),_={hour:f??0,minute:y??0,second:S??0,millisecond:k??0,microsecond:b??0,nanosecond:F??0},ie=o?{calendar:o}:{},se={overflow:"reject"},D;try{if(K!==void 0){let p={overflow:"reject",offset:"prefer"};if(D=G.ZonedDateTime.from({year:m,month:l,day:g,..._,...ie,timeZone:K,...v!==void 0?{offset:v}:{}},p),v!==void 0){let w=D;if(w.hour!==_.hour||w.minute!==_.minute||w.second!==_.second)throw new Error(`"${K}" has no such wall-clock time on this date \u2014 it falls in a DST gap, not an ambiguous or valid instant.`);let I=w.offset;if(I!==v)throw new Error(`has both a "zzz" zone (${K}) and an offset token (${v}), but the zone's actual offset at this date/time is ${I}, not ${v}.`)}}else v!==void 0?D=G.ZonedDateTime.from({year:m,month:l,day:g,..._,...ie,timeZone:v},se):P&&ae?D=G.PlainDateTime.from({year:m,month:l,day:g,..._,...ie},se):P?D=G.PlainDate.from({year:m,month:l,day:g,...ie},se):D=G.PlainTime.from(_,se)}catch(p){throw new Error(`temporal-fmt: "${t}" doesn't describe a valid date/time for format "${e}": ${p.message}`)}if($e!==void 0){let p=D.dayOfWeek;if(p!==$e){let w=j(r);throw new Error(`temporal-fmt: "${ut}" doesn't match the actual weekday (${w.weekdayLong[p-1]}) for the parsed date.`)}}if(Te!==void 0&&l!==void 0){let p=Math.ceil(l/3);if(Te!==p)throw new Error(`temporal-fmt: format string "${e}" contains a quarter token (Q/QQQ) whose value (Q${Te}) disagrees with the parsed month's actual quarter \u2014 month ${l} is in Q${p}.`)}return D}var We={y:{longSingular:"year",longPlural:"years",shortSingular:"yr",shortPlural:"yrs",field:"years",intlUnit:"year"},o:{longSingular:"month",longPlural:"months",shortSingular:"mo",shortPlural:"mos",field:"months",intlUnit:"month"},w:{longSingular:"week",longPlural:"weeks",shortSingular:"wk",shortPlural:"wks",field:"weeks",intlUnit:"week"},d:{longSingular:"day",longPlural:"days",shortSingular:"d",shortPlural:"d",field:"days",intlUnit:"day"},h:{longSingular:"hour",longPlural:"hours",shortSingular:"h",shortPlural:"h",field:"hours",intlUnit:"hour"},m:{longSingular:"minute",longPlural:"minutes",shortSingular:"m",shortPlural:"m",field:"minutes",intlUnit:"minute"},s:{longSingular:"second",longPlural:"seconds",shortSingular:"s",shortPlural:"s",field:"seconds",intlUnit:"second"},S:{longSingular:"millisecond",longPlural:"milliseconds",shortSingular:"ms",shortPlural:"ms",field:"milliseconds",intlUnit:"millisecond"}},Bt=Object.keys(We).flatMap(e=>[e+e+e,e+e,e]).sort((e,t)=>t.length-e.length);function en(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r==="'"){if(e[n+1]==="'"){Fe(t,"'"),n+=2;continue}let a=n+1,i="",s=!1;for(;a<e.length;){if(e[a]==="'"){if(e[a+1]==="'"){i+="'",a+=2;continue}s=!0,a+=1;break}i+=e[a],a+=1}if(!s)throw new Error(`temporal-fmt: unterminated quote in duration format string "${e}"`);Fe(t,i),n=a;continue}let o=Bt.find(a=>e.startsWith(a,n));if(o){let a=o[0],i=o.length===1?"numeric":o.length===2?"short":"long";t.push({kind:"token",value:o,unit:a,form:i}),n+=o.length;continue}Fe(t,r),n+=1}return t}function Fe(e,t){let n=e[e.length-1];n&&n.kind==="literal"?n.value+=t:e.push({kind:"literal",value:t})}function tn(e,t){let n=e[t];if(n==null)return 0;if(typeof n=="number"&&Number.isFinite(n))return n;let r=Number(n);if(!Number.isFinite(r))throw new Error(`temporal-fmt: duration field "${t}" is not a finite number (got ${String(n)}).`);return r}var re=new Map,nn=200;function rn(e,t,n){let r=`${M(e)}|${t}|${n}`,o=re.get(r);if(o)return o;if(re.size>=nn){let i=re.keys().next().value;i!==void 0&&re.delete(i)}let a=new Intl.NumberFormat(e,{style:"unit",unit:t,unitDisplay:n});return re.set(r,a),a}function Ke(e,t,n={}){if(t.length>1e3)throw new Error(`temporal-fmt: duration format string exceeds maximum length of ${1e3} characters (got ${t.length}).`);let r=n.showZeroValues===!0,o=n.locale,a=o!==void 0,i=en(t),s="";for(let u of i){if(u.kind==="literal"){s+=u.value;continue}let c=We[u.unit];if(!c)throw new Error(`temporal-fmt: unknown duration token "${u.value}"`);let m=tn(e,c.field);if(!(m===0&&!r)){if(u.form==="numeric"){s+=String(m);continue}if(a){let f=u.form==="short"?"short":"long",l=rn(o,c.intlUnit,f);s+=l.format(m);continue}u.form==="short"?s+=m+(m===1||m===-1?c.shortSingular:c.shortPlural):s+=m+" "+(m===1||m===-1?c.longSingular:c.longPlural)}}return s}function Ge(e,t){if(e===null||typeof e!="object")throw new Error(`temporal-fmt: formatDistance expects Temporal values, got ${t} = ${String(e)}.`);let n=e,r=typeof n.year=="number",o=typeof n.month=="number",a=typeof n.day=="number";if(r!==o||o!==a)throw new Error(`temporal-fmt: formatDistance got a ${t} with a partial date (some of year/month/day missing). Pass a full Temporal.PlainDate / PlainDateTime / ZonedDateTime.`);return{year:r?n.year:void 0,month:o?n.month:void 0,day:a?n.day:void 0,hour:typeof n.hour=="number"?n.hour:void 0,minute:typeof n.minute=="number"?n.minute:void 0,second:typeof n.second=="number"?n.second:void 0,millisecond:typeof n.millisecond=="number"?n.millisecond:void 0}}var Pe=2e3,de=1e3,fe=60*de,pe=60*fe,N=24*pe;function on(e,t,n){let r=0;if(e>=Pe)for(let o=Pe;o<e;o++)r+=J(o)?366:365;else for(let o=e;o<Pe;o++)r-=J(o)?366:365;return r+=De(e,t,n)-1,r}function Qe(e){if(e.year===void 0||e.month===void 0||e.day===void 0)throw new Error("temporal-fmt: formatDistance needs a Temporal value with year/month/day fields (PlainDate, PlainDateTime, or ZonedDateTime). A PlainTime or other shape has no anchor date to diff against.");let t=on(e.year,e.month,e.day),n=e.hour??0,r=e.minute??0,o=e.second??0,a=e.millisecond??0;return t*N+n*pe+r*fe+o*de+a}var an={seconds:60,minutes:60,hours:24,days:30,months:365};function sn(e){let t={...an,...e};for(let s of Object.keys(t)){let u=t[s];if(typeof u!="number"||!Number.isFinite(u)||u<=0)throw new Error(`temporal-fmt: formatDistance cutoff "${s}" must be a positive finite number (got ${String(u)}).`)}let n=t.seconds*de,r=t.minutes*fe,o=t.hours*pe,a=t.days*N,i=t.months*N;if(!(n<=r&&r<=o&&o<=a&&a<=i))throw new Error(`temporal-fmt: formatDistance cutoffs must be monotonically non-decreasing in equivalent ms (seconds \u2264 minutes \u2264 hours \u2264 days \u2264 months). Got: seconds=${t.seconds}s, minutes=${t.minutes}min, hours=${t.hours}h, days=${t.days}d, months=${t.months}d \u2014 pick a sequence where each boundary is at least as large as the one before it.`);return[{maxMs:n,unit:"second"},{maxMs:r,unit:"minute"},{maxMs:o,unit:"hour"},{maxMs:a,unit:"day"},{maxMs:i,unit:"month"}]}var oe=new Map,mn=100;function un(e,t){let n=`${cn(e)}|${t}`,r=oe.get(n);if(r)return r;if(oe.size>=mn){let o=oe.keys().next().value;o!==void 0&&oe.delete(o)}return r=new Intl.RelativeTimeFormat(e,{numeric:t}),oe.set(n,r),r}function cn(e){try{return new Intl.Locale(e.replace(/_/g,"-")).toString().toLowerCase()}catch{return e}}function Je(e,t,n={}){let r=Ge(e,"date1"),o=Ge(t,"date2"),a=Qe(r)-Qe(o),i=Math.abs(a),s=sn(n.cutoffs),u="year";for(let{maxMs:y,unit:S}of s)if(i<y){u=S;break}let c=ln(u),m=Math.round(a/c),f=n.numeric??"auto",l=n.locale??Y;return un(l,f).format(m,u)}function ln(e){switch(e){case"second":return de;case"minute":return fe;case"hour":return pe;case"day":return N;case"week":return 7*N;case"month":return 30*N;case"quarter":return 91*N;case"year":return 365*N;default:throw new Error(`temporal-fmt: formatDistance hit unhandled unit "${String(e)}".`)}}function x(e){return e.toLowerCase().replace(/ä/g,"ae").replace(/ö/g,"oe").replace(/ü/g,"ue").replace(/ß/g,"ss").normalize("NFD").replace(/[\u0300-\u036f]/g,"")}function A(e){if(typeof e.year!="number")throw new Error("temporal-fmt: parseRelative reference date is missing year.");return e.year}function L(e){if(typeof e.month!="number")throw new Error("temporal-fmt: parseRelative reference date is missing month.");return e.month}function C(e){if(typeof e.day!="number")throw new Error("temporal-fmt: parseRelative reference date is missing day.");return e.day}function ye(e){let t=e.dayOfWeek;if(typeof t!="number")throw new Error("temporal-fmt: parseRelative needs a reference date exposing dayOfWeek (a Temporal.PlainDate / PlainDateTime / ZonedDateTime).");return t}function $(e){return[...e.map(x)].sort((r,o)=>o.length-r.length).map(r=>r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|")}function we(e,t,n,r){return e.PlainDate.from({year:t,month:n,day:r},{overflow:"reject"})}function E(e,t,n){return e.PlainDate.from({year:A(t),month:L(t),day:C(t)}).add({days:n})}function O(e,t,n,r){let o=e.PlainDate.from({year:A(t),month:L(t),day:C(t)}),a={};return r==="day"&&(a.days=n),r==="week"&&(a.weeks=n),r==="month"&&(a.months=n),r==="year"&&(a.years=n),o.add(a)}function Se(e,t,n){if(e==="next"){let r=n-t;return r<=0&&(r+=7),r}if(e==="last"){let r=n-t;return r>=0&&(r-=7),r}return n-t}function be(e,t,n,r){let o=A(t),a=e.PlainDate.from({year:o,month:L(t),day:C(t)});try{let i=e.PlainDate.from({year:o,month:n,day:r},{overflow:"reject"});if(!e.PlainDate.compare)throw new Error("temporal-fmt: parseRelative needs Temporal.PlainDate.compare to resolve month-day phrases; the active implementation does not expose it.");return e.PlainDate.compare(i,a)>=0?i:e.PlainDate.from({year:o+1,month:n,day:r},{overflow:"reject"})}catch(i){try{return e.PlainDate.from({year:o+1,month:n,day:r},{overflow:"reject"})}catch{throw new Error(`temporal-fmt: parseRelative can't resolve month ${n} day ${r} \u2014 it isn't a valid date in either ${o} or ${o+1}. Original error: ${i.message}`)}}}function Ee(e,t){let n=x(e),r=t.findIndex(o=>x(o)===n);if(r<0)throw new Error(`temporal-fmt: parseRelative internal error \u2014 weekday "${e}" not in names list.`);return r+1}function ke(e,t,n=[]){let r=x(e),o=t.findIndex(i=>x(i)===r);if(o>=0)return o+1;let a=n.findIndex(i=>x(i)===r);if(a>=0)return a+1;throw new Error(`temporal-fmt: parseRelative internal error \u2014 month "${e}" not in names list.`)}var qe=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],Be=["January","February","March","April","May","June","July","August","September","October","November","December"],et=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],ge={supportedHint:'Supported: weekday refs ("next Tuesday"), day offsets ("today"/"tomorrow"/"yesterday"), unit offsets ("in 3 days", "2 weeks ago"), and month-day ("March 5th").',matchers:[{pattern:/^today$/i,resolve:(e,t)=>we(t.temporal,A(t.reference),L(t.reference),C(t.reference))},{pattern:/^tomorrow$/i,resolve:(e,t)=>E(t.temporal,t.reference,1)},{pattern:/^yesterday$/i,resolve:(e,t)=>E(t.temporal,t.reference,-1)},{pattern:new RegExp(`^(next|last|this)\\s+(${$(qe)})$`,"i"),resolve:(e,t)=>{let n=e[1].toLowerCase(),r=Ee(e[2],qe),o=ye(t.reference);return E(t.temporal,t.reference,Se(n,o,r))}},{pattern:/^(in\s+)?(\d+)\s+(day|week|month|year)s?(?:\s+ago)?$/i,resolve:(e,t)=>{let n=e[1],r=e[2],o=e[3].toLowerCase(),a=!!n,i=/\bago\b/i.test(e[0]);if(!a&&!i)throw new Error(`temporal-fmt: parseRelative can't tell whether "${e[0]}" is past or future \u2014 use "in ${r} ${o}s" or "${r} ${o}s ago".`);let s=a?1:-1;return O(t.temporal,t.reference,s*Number(r),o)}},{pattern:new RegExp(`^(${$([...Be,...et])})\\s+(\\d{1,2})(?:st|nd|rd|th)?(?:,?\\s*(\\d{4}))?$`,"i"),resolve:(e,t)=>{let n=ke(e[1],Be,et),r=Number(e[2]);return be(t.temporal,t.reference,n,r)}}]},he=["lunes","martes","mi\xE9rcoles","jueves","viernes","s\xE1bado","domingo"],tt=["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],nt=["ene","feb","mar","abr","may","jun","jul","ago","sept","oct","nov","dic"],dn={supportedHint:'Frases soportadas: referencias de d\xEDa de la semana ("el pr\xF3ximo lunes", "el lunes pasado", "este martes"), offsets de d\xEDa ("hoy"/"ma\xF1ana"/"ayer"), offsets de unidad ("en 3 d\xEDas", "hace 2 semanas"), y mes-d\xEDa ("5 de marzo").',matchers:[{pattern:/^hoy$/i,resolve:(e,t)=>we(t.temporal,A(t.reference),L(t.reference),C(t.reference))},{pattern:/^ma[ñn]ana$/i,resolve:(e,t)=>E(t.temporal,t.reference,1)},{pattern:/^ayer$/i,resolve:(e,t)=>E(t.temporal,t.reference,-1)},{pattern:new RegExp(`^(?:el\\s+)?(?:(pr[o\xF3]ximo|pasado)\\s+(${$(he)})|(${$(he)})\\s+(pr[o\xF3]ximo|pasado)|este\\s+(${$(he)}))$`,"i"),resolve:(e,t)=>{let n,r;e[1]&&e[2]?(n=e[1],r=e[2]):e[3]&&e[4]?(r=e[3],n=e[4]):(n="este",r=e[5]);let o=x(n)==="proximo"?"next":n.toLowerCase()==="este"?"this":"last",a=Ee(r,he),i=ye(t.reference);return E(t.temporal,t.reference,Se(o,i,a))}},{pattern:new RegExp("^(?:(en|dentro\\s+de)\\s+(\\d+)\\s+(d[i\xED]a|semana|mes|a[\xF1n]o)s?|(\\d+)\\s+(d[i\xED]a|semana|mes|a[\xF1n]o)s?\\s+(hace))$","i"),resolve:(e,t)=>{let n,r,o;e[1]&&e[2]&&e[3]?(n=e[2],r=e[3],o=1):(n=e[5],r=e[6],o=-1);let a=W(r);return O(t.temporal,t.reference,o*Number(n),a)}},{pattern:new RegExp("^hace\\s+(\\d+)\\s+(d[i\xED]a|semana|mes|a[\xF1n]o)s?$","i"),resolve:(e,t)=>{let n=Number(e[1]),r=W(e[2]);return O(t.temporal,t.reference,-n,r)}},{pattern:new RegExp("^(\\d+)\\s+(d[i\xED]a|semana|mes|a[\xF1n]o)s?$","i"),resolve:(e,t)=>{throw new Error(`temporal-fmt: parseRelative no puede decidir si "${e[0]}" es pasado o futuro \u2014 usa "en ${e[1]} ${e[2]}s" o "hace ${e[1]} ${e[2]}s".`)}},{pattern:new RegExp(`^(\\d{1,2})\\.?\\s+de\\s+(${$([...tt,...nt])})(?:\\s+de\\s+(\\d{4}))?$`,"i"),resolve:(e,t)=>{let n=Number(e[1]),r=ke(e[2],tt,nt);return be(t.temporal,t.reference,r,n)}}]},_e=["lundi","mardi","mercredi","jeudi","vendredi","samedi","dimanche"],rt=["janvier","f\xE9vrier","mars","avril","mai","juin","juillet","ao\xFBt","septembre","octobre","novembre","d\xE9cembre"],ot=["janv.","f\xE9vr.","mars","avr.","mai","juin","juil.","ao\xFBt","sept.","oct.","nov.","d\xE9c."],fn={supportedHint:`Phrases prises en charge : r\xE9f\xE9rences de jour de la semaine ("lundi prochain", "mardi dernier", "ce mercredi"), d\xE9calages de jour ("aujourd'hui"/"demain"/"hier"), d\xE9calages d'unit\xE9 ("dans 3 jours", "il y a 2 semaines"), et mois-jour ("5 mars").`,matchers:[{pattern:/^aujourd'hui$/i,resolve:(e,t)=>we(t.temporal,A(t.reference),L(t.reference),C(t.reference))},{pattern:/^demain$/i,resolve:(e,t)=>E(t.temporal,t.reference,1)},{pattern:/^hier$/i,resolve:(e,t)=>E(t.temporal,t.reference,-1)},{pattern:new RegExp(`^(?:(${$(_e)})\\s+(prochain|dernier)|ce\\s+(${$(_e)}))$`,"i"),resolve:(e,t)=>{let n,r;e[1]&&e[2]?(r=e[1],n=e[2].toLowerCase()==="prochain"?"next":"last"):(n="this",r=e[3]);let o=Ee(r,_e),a=ye(t.reference);return E(t.temporal,t.reference,Se(n,a,o))}},{pattern:new RegExp("^il\\s+y\\s+a\\s+(\\d+)\\s+(jour|semaine|mois|an|ann[e\xE9e]e)s?$","i"),resolve:(e,t)=>{let n=Number(e[1]),r=W(e[2]);return O(t.temporal,t.reference,-n,r)}},{pattern:new RegExp("^dans\\s+(\\d+)\\s+(jour|semaine|mois|an|ann[e\xE9e]e)s?$","i"),resolve:(e,t)=>{let n=Number(e[1]),r=W(e[2]);return O(t.temporal,t.reference,n,r)}},{pattern:new RegExp("^(\\d+)\\s+(jour|semaine|mois|an|ann[e\xE9e]e)s?$","i"),resolve:(e,t)=>{throw new Error(`temporal-fmt: parseRelative ne peut pas d\xE9terminer si "${e[0]}" est pass\xE9 ou futur \u2014 utilisez "dans ${e[1]} ${e[2]}s" ou "il y a ${e[1]} ${e[2]}s".`)}},{pattern:new RegExp(`^(\\d{1,2})\\s+(${$([...rt,...ot])})(?:\\s+(\\d{4}))?$`,"i"),resolve:(e,t)=>{let n=Number(e[1]),r=ke(e[2],rt,ot);return be(t.temporal,t.reference,r,n)}}]},at=["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"],it=["Januar","Februar","M\xE4rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],st=["Jan","Feb","M\xE4r","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],pn={supportedHint:'Unterst\xFCtzte Phrasen: Wochentag-Bez\xFCge ("n\xE4chsten Dienstag", "letzten Freitag", "diesen Montag"), Tages-Offsets ("heute"/"morgen"/"gestern"), Einheiten-Offsets ("in 3 Tagen", "vor 2 Wochen"), und Monat-Tag ("5. M\xE4rz").',matchers:[{pattern:/^heute$/i,resolve:(e,t)=>we(t.temporal,A(t.reference),L(t.reference),C(t.reference))},{pattern:/^morgen$/i,resolve:(e,t)=>E(t.temporal,t.reference,1)},{pattern:/^gestern$/i,resolve:(e,t)=>E(t.temporal,t.reference,-1)},{pattern:new RegExp(`^(n(?:ae|a|\xE4)chsten|letzten|diesen)\\s+(${$(at)})$`,"i"),resolve:(e,t)=>{let n=x(e[1]),r=n==="nachsten"||n==="naechsten"?"next":n==="diesen"?"this":"last",o=Ee(e[2],at),a=ye(t.reference);return E(t.temporal,t.reference,Se(r,a,o))}},{pattern:new RegExp("^vor\\s+(\\d+)\\s+(Tag(?:e|n|en)?|Woche(?:n)?|Monat(?:e|n|en)?|Jahr(?:e|n|en)?)$","i"),resolve:(e,t)=>{let n=Number(e[1]),r=W(e[2]);return O(t.temporal,t.reference,-n,r)}},{pattern:new RegExp("^in\\s+(\\d+)\\s+(Tag(?:e|n|en)?|Woche(?:n)?|Monat(?:e|n|en)?|Jahr(?:e|n|en)?)$","i"),resolve:(e,t)=>{let n=Number(e[1]),r=W(e[2]);return O(t.temporal,t.reference,n,r)}},{pattern:new RegExp("^(\\d+)\\s+(Tag(?:e|n|en)?|Woche(?:n)?|Monat(?:e|n|en)?|Jahr(?:e|n|en)?)$","i"),resolve:(e,t)=>{throw new Error(`temporal-fmt: parseRelative kann nicht erkennen, ob "${e[0]}" Vergangenheit oder Zukunft ist \u2014 verwende "in ${e[1]} ${e[2]}" oder "vor ${e[1]} ${e[2]}".`)}},{pattern:new RegExp(`^(\\d{1,2})\\.?\\s+(${$([...it,...st,"Maerz","Maer"])})(?:\\s+(\\d{4}))?$`,"i"),resolve:(e,t)=>{let n=Number(e[1]),r=ke(e[2],it,st);return be(t.temporal,t.reference,r,n)}}]},hn={en:ge,es:dn,fr:fn,de:pn};function gn(e){if(!e)return ge;try{let n=new Intl.Locale(e.replace(/_/g,"-")).language.toLowerCase();return hn[n]??ge}catch{return ge}}function W(e){let t=x(e);if(t==="day"||t==="week"||t==="month"||t==="year")return t;if(t==="dia")return"day";if(t==="semana")return"week";if(t==="mes")return"month";if(t==="ano"||t==="a\xF1o")return"year";if(t==="jour")return"day";if(t==="semaine")return"week";if(t==="mois")return"month";if(t==="an"||t==="annee")return"year";if(t==="tag"||t==="tagen")return"day";if(t==="woche"||t==="wochen")return"week";if(t==="monat"||t==="monaten")return"month";if(t==="jahr"||t==="jahren")return"year";throw new Error(`temporal-fmt: parseRelative internal error \u2014 unrecognized unit word "${e}".`)}function mt(e,t,n={}){let r=t,o=X(),a=(e??"").trim().replace(/\s+/g," ");if(a.length===0)throw new Error("temporal-fmt: parseRelative got an empty input string.");let i=x(a),s=gn(n.locale),u={temporal:o,reference:r};for(let c of s.matchers){let m=i.match(c.pattern);if(m)return c.resolve(m,u)}throw new Error(`temporal-fmt: parseRelative doesn't recognize "${a}". `+s.supportedHint)}0&&(module.exports={format,formatDistance,formatDuration,parse,parseRelative,registerLocaleVocab,setTemporal});
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|