republisher/repub/static/datastar@1.0.0-RC.8.js

10 lines
32 KiB
JavaScript
Raw Normal View History

2026-03-30 12:27:45 +02:00
// Datastar v1.0.0-RC.8
var ut=/🖕JS_DS🚀/.source,Ge=ut.slice(0,5),je=ut.slice(4),j="datastar-fetch",ee="datastar-signal-patch";var P=Object.hasOwn??Object.prototype.hasOwnProperty.call;var J=e=>e!==null&&typeof e=="object"&&(Object.getPrototypeOf(e)===Object.prototype||Object.getPrototypeOf(e)===null),ft=e=>{for(let t in e)if(P(e,t))return!1;return!0},te=(e,t)=>{for(let n in e){let r=e[n];J(r)||Array.isArray(r)?te(r,t):e[n]=t(r)}},Re=e=>{let t={};for(let[n,r]of e){let s=n.split("."),i=s.pop(),o=s.reduce((a,c)=>a[c]??={},t);o[i]=r}return t};var Me=[],We=[],Oe=0,xe=0,Be=0,Ue,W,Le=0,M=()=>{Oe++},x=()=>{--Oe||(pt(),K())},k=e=>{Ue=W,W=e},H=()=>{W=Ue,Ue=void 0},pe=e=>Zt.bind(0,{previousValue:e,t:e,e:1}),Je=Symbol("computed"),Pe=e=>{let t=Yt.bind(0,{e:17,getter:e});return t[Je]=1,t},T=e=>{let t={d:e,e:2};W&&ze(t,W),k(t),M();try{t.d()}finally{x(),H()}return bt.bind(0,t)},pt=()=>{for(;xe<Be;){let e=We[xe];We[xe++]=void 0,yt(e,e.e&=-65)}xe=0,Be=0},dt=e=>"getter"in e?gt(e):ht(e,e.t),gt=e=>{k(e),vt(e);try{let t=e.t;return t!==(e.t=e.getter(t))}finally{H(),Et(e)}},ht=(e,t)=>(e.e=1,e.previousValue!==(e.previousValue=t)),Ke=e=>{let t=e.e;if(!(t&64)){e.e=t|64;let n=e.r;n?Ke(n.o):We[Be++]=e}},yt=(e,t)=>{if(t&16||t&32&&St(e.s,e)){k(e),vt(e),M();try{e.d()}finally{x(),H(),Et(e)}return}t&32&&(e.e=t&-33);let n=e.s;for(;n;){let r=n.c,s=r.e;s&64&&yt(r,r.e=s&-65),n=n.i}},Zt=(e,...t)=>{if(t.length){if(e.t!==(e.t=t[0])){e.e=17;let r=e.r;return r&&(Xt(r),Oe||pt()),!0}return!1}let n=e.t;if(e.e&16&&ht(e,n)){let r=e.r;r&&Ce(r)}return W&&ze(e,W),n},Yt=e=>{let t=e.e;if(t&16||t&32&&St(e.s,e)){if(gt(e)){let n=e.r;n&&Ce(n)}}else t&32&&(e.e=t&-33);return W&&ze(e,W),e.t},bt=e=>{let t=e.s;for(;t;)t=Fe(t,e);let n=e.r;n&&Fe(n),e.e=0},ze=(e,t)=>{let n=t.a;if(n&&n.c===e)return;let r=n?n.i:t.s;if(r&&r.c===e){r.m=Le,t.a=r;return}let s=e.p;if(s&&s.m===Le&&s.o===t)return;let i=t.a=e.p={m:Le,c:e,o:t,l:n,i:r,u:s};r&&(r.l=i),n?n.i=i:t.s=i,s?s.n=i:e.r=i},Fe=(e,t=e.o)=>{let n=e.c,r=e.l,s=e.i,i=e.n,o=e.u;if(s?s.l=r:t.a=r,r?r.i=s:t.s=s,i?i.u=o:n.p=o,o)o.n=i;else if(!(n.r=i))if("getter"in n){let a=n.s;if(a){n.e=17;do a=Fe(a,n);while(a)}}else"previousValue"in n||bt(n);return s},Xt=e=>{let t=e.n,n;e:for(;;){let r=e.o,s=r.e;if(s&60?s&12?s&4?!(s&48)&&en(e,r)?(r.e=s|40,s&=1):s=0:r.e=s&-9|32:s=0:r.e=s|32,s&2&&Ke(r),s&1){let i=r.r;if(i){let o=(e=i).n;o&&(n={t,f:n},t=o);continue}}if(e=t){t=e.n;continue}for(;n;)if(e=n.t,n=n.f,e){t=e.n;continue e}break}},vt=e=>{Le++,e.a=void 0,e.e=e.e&-57|4},Et=e=>{let t=e.a,n=t?t.i:e.s;for(;n;)n=Fe(n,e);e.e&=-5},St=(e,t)=>{let n,r=0,s=!1;e:for(;;){let i=e.c,o=i.e;if(t.e&16)s=!0;else if((o&17)===17){if(dt(i)){let a=i.r;a.n&&Ce(a),s=!0}}else if((o&33)===33){(e.n||e.u)&&(n={t:e,f:n}),e=i.s,t=i,++r;continue}if(!s){let a=e.i;if(a){e=a;continue}}for(;r--;){let a=t.r,c=a.n;if(c?(e=n.t,n=n.f):e=a,s){if(dt(t)){c&&Ce(a),t=e.o;continue}s=!1}else t.e&=-33;if(t=e.o,e.i){e=e.i;continue e}}return s}},Ce=e=>{do{let t=e.o,n=t.e;(n&48)===32&&(t.e=n|16,n&2&&Ke(t))}while(e=e.n)},en=(e,t)=>{let n=t.a;for(;n;){if(n===e)return!0;n=n.l}return!1},ie=e=>{let t=ne,n=e.split(".");for(let r of n){if(t==null||!P(t,r))return;t=t[r]}return t},Ne=(e,t="")=>{let n=Array.isArray(e);if(n||J(e)){let r=n?[]:{};for(let i in e)r[i]=pe(Ne(e[i],`${t+i}.`));let s=pe(0);return new Proxy(r,{get(i,o){if(!(o==="toJSON"&&!P(r,o)))return n&&o in Array.prototype?(s(),r[o]):typeof o=="symbol"?r[o]:((!P(r,o)||r[o]()==null)&&(r[o]=pe(""),K(t+o,""),s(s()+1)),r[o]())},set(i,o,a){let c=t+o;if(n&&o==="length"){let l=r[o]-a;if(r[o]=a,l>0){let u={};for(let d=a;d<r[o];d++)u[d]=null;K(t.slice(0,-1),u),s(s()+1)}}else if(P(r,o))if(a==null)delete r[o];else if(P(a,Je))r[o]=a,K(c,"");else{let l=r[o](),u=`${c}.`;if(J(l)&&J(a)){for(let d in l)P(a,d)||(delete l[d],K(u+d,null));for(let d in a){let h=a[d];l[d]!==h&&(l[d]=h)}}else r[o](Ne(a,u))&&K(c,a)}else a!=null&&(P(a,Je)?(r[o]=a,K(c,"")):(r[o]=pe(Ne(a,`${c}.`)),K(c,a)),s(s()+1));return!0},deleteProperty(i,o){return delete r[o],s(s()+1),!0},ownKeys(){return s(),Reflect.ownKeys(r)},has(i,o){return s(),o in r}})}return e},K=(e,t)=>{if(e!==void 0&&t!==void 0&&Me.push([e,t]),!Oe&&Me.length
More info: ${nn}/${s}?${i}
Context: ${o}`,r},ye=new Map,Ze=new Map,Mt=new Map,xt=new Proxy({},{get:(e,t)=>ye.get(t)?.apply,has:(e,t)=>ye.has(t),ownKeys:()=>Reflect.ownKeys(ye),set:()=>!1,deleteProperty:()=>!1}),be=new Map,ke=[],Ye=new Set,rn=new WeakSet,g=e=>{ke.push(e),ke.length===1&&setTimeout(()=>{for(let t of ke)Ye.add(t.name),Ze.set(t.name,t);ke.length=0,ln(),Ye.clear()})},V=e=>{ye.set(e.name,e)};document.addEventListener(j,e=>{let t=Mt.get(e.detail.type);t&&t.apply({error:he.bind(0,{plugin:{type:"watcher",name:t.name},element:{id:e.target.id,tag:e.target.tagName}})},e.detail.argsRaw)});var ve=e=>{Mt.set(e.name,e)},Rt=e=>{for(let t of e){let n=be.get(t);if(n&&be.delete(t))for(let r of n.values())for(let s of r.values())s()}},Lt=B("ignore"),sn=`[${Lt}]`,Nt=e=>e.hasAttribute(`${Lt}__self`)||!!e.closest(sn),He=(e,t)=>{for(let n of e)if(!Nt(n)){let r=new Set;for(let s in n.dataset){let i=s.replace(/[A-Z]/g,"-$&").toLowerCase();r.add(i),Xe(n,i,n.dataset[s],t)}for(let s of Array.from(n.attributes)){if(!s.name.startsWith("data-"))continue;let i=s.name.slice(5);r.has(i)||Xe(n,i,s.value,t)}}},on=e=>{for(let{target:t,type:n,attributeName:r,addedNodes:s,removedNodes:i}of e)if(n==="childList"){for(let o of i)z(o)&&(Rt([o]),Rt(o.querySelectorAll("*")));for(let o of s)z(o)&&(He([o]),He(o.querySelectorAll("*")))}else if(n==="attributes"&&r.startsWith("data-")&&z(t)&&!Nt(t)){let o=r.slice(5),a=Qe(o);if(!a)continue;let c=t.getAttribute(r);if(c===null){let l=be.get(t);if(l){let u=l.get(a);if(u){for(let d of u.values())d();l.delete(a)}}}else Xe(t,o,c)}},an=new MutationObserver(on),cn=e=>{let[t,...n]=e.split("__"),[r,s]=t.split(/:(.+)/),i=new Map;for(let o of n){let[a,...c]=o.split(".");i.set(a,new Set(c))}return{pluginName:r,key:s,mods:i}};var ln=(e=document.documentElement,t=!0)=>{z(e)&&He([e],!0),He(e.querySelectorAll("*"),!0),t&&(an.observe(e,{subtree:!0,childList:!0,attributes:!0}),rn.add(e))};var Xe=(e,t,n,r)=>{let s=Qe(t);if(!s)return;let{pluginName:i,key:o,mods:a}=cn(s),c=Ze.get(i);if((!r||Ye.has(i))&&!!c){let u={el:e,rawKey:s,mods:a,error:he.bind(0,{plugin:{type:"attribute",name:c.name},element:{id:e.id,tag:e.tagName},expression:{rawKey:s,key:o,value:n}}),key:o,value:n,loadedPluginNames:{actions:new Set(ye.keys()),attributes:new Set(Ze.keys())},rx:void 0},d=c.requirement&&(typeof c.requirement=="string"?c.requirement:c.requirement.key)||"allowed",h=c.requirement&&(typeof c.requirement=="string"?c.requirement:c.requirement.value)||"allowed",f=o!=null&&o!=="",p=n!=null&&n!=="";if(f){if(d==="denied")throw u.error("KeyNotAllowed")}else if(d==="must")throw u.error("KeyRequired");if(p){if(h==="denied")throw u.error("ValueNotAllowed")}else if(h==="must")throw u.error("ValueRequired");if(d==="exclusive"||h==="exclusive"){if(f&&p)throw u.error("KeyAndValueProvided");if(!f&&!p)throw u.error("KeyOrValueRequired")}let m=new Map;if(p){let v;u.rx=(...C)=>(v||(v=un(n,{returnsValue:c.returnsValue,argNames:c.argNames,cleanups:m})),v(e,...C))}let b=c.apply(u);b&&m.set("attribute",b);let R=be.get(e);if(R){let v=R.get(s);if(v)for(let C of v.values())C()}else R=new Map,be.set(e,R);R.set(s,m)}},un=(e,{returnsValue:t=!1,argNames:n=[],cleanups:r=new Map}={})=>{let s="";if(t){let c=/(\/(\\\/|[^/])*\/|"(\\"|[^"])*"|'(\\'|[^'])*'|`(\\`|[^`])*`|\(\s*((function)\s*\(\s*\)|(\(\s*\))\s*=>)\s*(?:\{[\s\S]*?\}|[^;){]*)\s*\)\s*\(\s*\)|[^;])+/gm,l=e.trim().match(c);if(l){let u=l.length-1,d=l[u].trim();d.startsWith("return")||(l[u]=`return (${d});`),s=l.join(`;
`)}}else s=e.trim();let i=new Map,o=RegExp(`(?:${Ge})(.*?)(?:${je})`,"gm"),a=0;for(let c of s.matchAll(o)){let l=c[1],u=`__escaped${a++}`;i.set(u,l),s=s.replace(Ge+l+je,u)}s=s.replace(/("(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|`(?:\\.|[^`\\$]|\$(?!\{))*`)|\$\{([^{}]*)\}|\$([a-zA-Z_\d]\w*(?:[.-]\w+)*)/g,(c,l,u,d)=>l?c:u!==void 0?`\${${u.replace(/\$([a-zA-Z_\d]\w*(?:[.-]\w+)*)/g,(h,f)=>f.split(".").reduce((p,m)=>`${p}['${m}']`,"$"))}}`:d.split(".").reduce((h,f)=>`${h}['${f}']`,"$")),s=s.replaceAll(/@([A-Za-z_$][\w$]*)\(/g,'__action("$1",evt,');for(let[c,l]of i)s=s.replace(c,l);try{let c=Function("el","$","__action","evt",...n,s);return(l,...u)=>{let d=(h,f,...p)=>{let m=he.bind(0,{plugin:{type:"action",name:h},element:{id:l.id,tag:l.tagName},expression:{fnContent:s,value:e}}),b=xt[h];if(b)return b({el:l,evt:f,error:m,cleanups:r},...p);throw m("UndefinedAction")};try{return c(l,ne,d,void 0,...u)}catch(h){throw console.error(h),he({element:{id:l.id,tag:l.tagName},expression:{fnContent:s,value:e},error:h.message},"ExecuteExpression")}}}catch(c){throw console.error(c),he({expression:{fnContent:s,value:e},error:c.message},"GenerateExpression")}};V({name:"peek",apply(e,t){k();try{return t()}finally{H()}}});V({name:"setAll",apply(e,t,n){k();let r=$(n);te(r,()=>t),_(r),H()}});V({name:"toggleAll",apply(e,t){k();let n=$(t);te(n,r=>!r),_(n),H()}});var Ft=new WeakMap,Ee=(e,t,n=!0)=>V({name:e,apply:async({el:r,evt:s,error:i,cleanups:o},a,{selector:c,headers:l,contentType:u="json",filterSignals:{include:d=/.*/,exclude:h=/(^|\.)_/}={},openWhenHidden:f=n,payload:p,requestCancellation:m="auto",retry:b="auto",retryInterval:R=1e3,retryScaler:v=2,retryMaxWaitMs:C=3e4,retryMaxCount:_e=10}={})=>{let Y=m instanceof AbortController?m:new AbortController;(m==="auto"||m==="cleanup")&&(Ft.get(r)?.abort(),Ft.set(r,Y)),m==="cleanup"&&(o.get(`@${e}`)?.(),o.set(`@${e}`,async()=>{Y.abort(),await Promise.resolve()}));let X=()=>{};try{if(!a?.length)throw i("FetchNoUrlProvided",{action:V});let fe={Accept:"text/event-stream, text/html, application/json","Datastar-Request":!0};u==="json"&&(fe["Content-Type"]="application/json");let q=Object.assign({},fe,l),N={input:"",method:t,headers:q,openWhenHidden:f,retry:b,retryInterval:R,retryScaler:v,retryMaxWaitMs:C,retryMaxCount:_e,signal:Y.signal,onopen:async y=>{y.status>=400&&re(fn,r,{status:y.status.toString()})},onmessage:y=>{if(!y.event.startsWith("datastar"))return;let U=y.event,E={};for(let F of y.data.split(`
`)){let S=F.indexOf(" "),O=F.slice(0,S),w=F.slice(S+1);(E[O]||=[]).push(w)}let D=Object.fromEntries(Object.entries(E).map(([F,S])=>[F,S.join(`
`)]));re(U,r,D)},onerror:y=>{if(Ct(y))throw y("FetchExpectedTextEventStream",{url:a});y&&(console.error(y.message),re(dn,r,{message:y.message}))}},Ve=()=>{let y=new URL(a,document.baseURI),U=new URLSearchParams(y.search);if(u==="json"){k(),p=p!==void 0?p:$({include:d,exclude:h}),H();let E=JSON.stringify(p);t==="GET"?U.set("datastar",E):N.body=E}else if(u==="form"){let E=c?document.querySelector(c):r.closest("form");if(!E)throw i("FetchFormNotFound",{action:V,selector:c});if(!E.noValidate&&!E.checkValidity()){E.reportValidity();return}let D=new FormData(E),F=r;if(r===E&&s instanceof SubmitEvent)F=s.submitter;else{let w=de=>de.preventDefault();E.addEventListener("submit",w),X=()=>{E.removeEventListener("submit",w)}}if(F instanceof HTMLButtonElement){let w=F.getAttribute("name");w&&D.append(w,F.value)}let S=E.getAttribute("enctype")==="multipart/form-data";S||(q["Content-Type"]="application/x-www-form-urlencoded");let O=new URLSearchParams(D);if(t==="GET")for(let[w,de]of O)U.append(w,de);else S?N.body=D:N.body=O}else throw i("FetchInvalidContentType",{action:V,contentType:u});return y.search=U.toString(),N.input=y.toString(),N};re(et,r,{});try{await bn(r,Ve)}catch(y){if(!Ct(y))throw i("FetchFailed",{method:t,url:a,error:y.message})}}finally{re(tt,r,{}),X(),o.delete(`@${e}`)}}});Ee("get","GET",!1);Ee("patch","PATCH");Ee("post","POST");Ee("put","PUT");Ee("delete","DELETE");var et="started",tt="finished",fn="error",dn="retrying",mn="retries-failed",re=(e,t,n)=>document.dispatchEvent(new CustomEvent(j,{detail:{type:e,el:t,argsRaw:n}})),Ct=e=>`${e}`.includes("text/event-stream"),pn=async(e,t)=>{let n=e.getReader(),r=await n.read();for(;!r.done;)t(r.value),r=await n.read()},gn=e=>{let t,n,r,s=!1;return i=>{t?t=yn(t,i):(t=i,n=0,r=-1);let o=t.length,a=0;for(;n<o;){s&&(t[n]===10&&(a=++n),s=!1);let c=-1;for(;n<o&&c===-1;++n)switch(t[n]){case 58:r===-1&&(r=n-a);break;case 13:s=!0;case 10:c=n;break}if(c===-1)break;e(t.subarray(a,c),r),a=n,r=-1}a===o?t=void 0:a&&(t=t.subarray(a),n-=a)}},hn=(e,t,n)=>{let r=Ot(),s=new TextDecoder;return(i,o)=>{if(!i.length)n?.(r),r=Ot();else if(o>0){let a=s.decode(i.subarray(0,o)),c=o+(i[o+1]===32?2:1),l=s.decode(i.subarray(c));switch(a){case"data":r.data=r.data?`${r.data}
${l}`:l;break;case"event":r.event=l;break;case"id":e(r.id=l);break;case"retry":{let u=+l;Number.isNaN(u)||t(r.retry=u);break}}}}},yn=(e,t)=>{let n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n},Ot=()=>({data:"",event:"",id:"",retry:void 0}),bn=(e,t)=>new Promise((n,r)=>{let s=t();if(!s)return;let{input:i,signal:o,headers:a,onopen:c,onmessage:l,onclose:u,onerror:d,openWhenHidden:h,fetch:f,retry:p="auto",retryInterval:m=1e3,retryScaler:b=2,retryMaxWaitMs:R=3e4,retryMaxCount:v=10,responseOverrides:C,..._e}=s,Y={...a},X,fe=()=>{X.abort(),document.hidden||D()};h||document.addEventListener("visibilitychange",fe);let q,N=()=>{document.removeEventListener("visibilitychange",fe),clearTimeout(q),X.abort()};o?.addEventListener("abort",()=>{N(),n()});let Ve=f||window.fetch,y=c||(()=>{}),U=0,E=m,D=async()=>{X=new AbortController;let F=X.signal;try{let S=await Ve(i,{..._e,headers:Y,signal:F});await y(S);let O=async(G,me,De,Ae,...Qt)=>{let lt={[De]:await me.text()};for(let $e of Qt){let qe=me.headers.get(`datastar-${ge($e)}`);if(Ae){let we=Ae[$e];we&&(qe=typeof we=="string"?we:JSON.stringify(we))}qe&&(lt[$e]=qe)}re(G,e,lt),N(),n()},w=S.status,de=w===204,ct=w>=300&&w<400,zt=w>=400&&w<600;if(w!==200){if(u?.(),p!=="never"&&!de&&!ct&&(p==="always"||p==="error"&&zt)){clearTimeout(q),q=setTimeout(D,m);return}N(),n();return}U=0,m=E;let Ie=S.headers.get("Content-Type");if(Ie?.includes("text/html"))return await O("datastar-patch-elements",S,"elements",C,"selector","mode","namespace","useViewTransition");if(Ie?.includes("application/json"))return await O("datastar-patch-signals",S,"signals",C,"onlyIfMissing");if(Ie?.includes("text/javascript")){let G=document.createElement("script"),me=S.headers.get("datastar-script-attributes");if(me)for(let[De,Ae]of Object.entries(JSON.parse(me)))G.setAttribute(De,Ae);G.textContent=await S.text(),document.head.appendChild(G),N();return}if(await pn(S.body,gn(hn(G=>{G?Y["last-event-id"]=G:delete Y["last-event-id"]},G=>{E=m=G},l))),u?.(),p==="always"&&!ct){clearTimeout(q),q=setTimeout(D,m);return}N(),n()}catch(S){if(!F.aborted)try{let O=d?.(S)||m;clearTimeout(q),q=setTimeout(D,O),m=Math.min(m*b,R),++U>=v?(re(mn,e,{}),N(),r("Max retries reached.")):console.error(`Datastar failed to reach ${i.toString()} retrying in ${O}ms.`)}catch(O){N(),r(O)}}};D()});g({name:"attr",requirement:{value:"must"},returnsValue:!0,apply({el:e,key:t,rx:n}){let r=(a,c)=>{c===""||c===!0?e.setAttribute(a,""):c===!1||c==null?e.removeAttribute(a):typeof c=="string"?e.setAttribute(a,c):typeof c=="function"?e.setAttribute(a,c.toString()):e.setAttribute(a,JSON.stringify(c,(l,u)=>typeof u=="function"?u.toString():u))},s=t?()=>{i.disconnect();let a=n();r(t,a),i.observe(e,{attributeFilter:[t]})}:()=>{i.disconnect();let a=n(),c=Object.keys(a);for(let l of c)r(l,a[l]);i.observe(e,{attributeFilter:c})},i=new MutationObserver(s),o=T(s);return()=>{i.disconnect(),o()}}});var vn=/^data:(?<mime>[^;]+);base64,(?<contents>.*)$/,Pt=Symbol("empty"),kt=B("bind");g({name:"bind",requirement:"exclusive",apply({el:e,key:t,mods:n,value:r,error:s}){let i=t!=null?L(t,n):r,o=(f,p)=>p==="number"?+f.value:f.value,a=f=>{e.value=`${f}`};if(e instanceof HTMLInputElement)switch(e.type){case"range":case"number":o=(f,p)=>p==="string"?f.value:+f.value;break;case"checkbox":o=(f,p)=>f.value!=="on"?p==="boolean"?f.checked:f.checked?f.value:"":p==="string"?f.checked?f.value:"":f.checked,a=f=>{e.checked=typeof f=="string"?f===e.value:f};break;case"radio":e.getAttribute("name")?.length||e.setAttribute("name",i),o=(f,p)=>f.checked?p==="number"?+f.value:f.value:Pt,a=f=>{e.checked=f===(typeof f=="number"?+e.value:e.value)};break;case"file":{let f=()=>{let p=[...e.files||[]],m=[];Promise.all(p.map(b=>new Promise(R=>{let v=new FileReader;v.onload=()=>{if(typeof v.result!="string")throw s("InvalidFileResultType",{resultType:typeof v.result});let C=v.result.match(vn);if(!C?.groups)throw s("InvalidDataUri",{result:v.result});m.push({name:b.name,contents:C.groups.contents,mime:C.groups.mime})},v.onloadend=()=>R(),v.readAsDataURL(b)}))).then(()=>{A([[i,m]])})};return e
//# sourceMappingURL=datastar.js.map