@hozu/runtime-client 0.6.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/chunk-627YWRJ6.js +1 -0
- package/dist/browser/client.js +1 -1
- package/dist/browser-dev/client.js +202 -403
- package/dist/dom.d.ts.map +1 -1
- package/dist/dom.js +5 -5
- package/dist/dom.js.map +1 -1
- package/dist/files.js +1 -1
- package/dist/hydrate.d.ts +2 -8
- package/dist/hydrate.d.ts.map +1 -1
- package/dist/hydrate.js +64 -90
- package/dist/hydrate.js.map +1 -1
- package/dist/live.d.ts +1 -1
- package/dist/live.d.ts.map +1 -1
- package/dist/live.js +5 -2
- package/dist/live.js.map +1 -1
- package/package.json +3 -3
- package/dist/browser/chunk-FZY6ENWQ.js +0 -1
- package/dist/browser/navigate.js +0 -1
package/dist/dom.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAEzC,eAAO,MAAM,MAAM,+BAA+B,CAAA;AAIlD,eAAO,MAAM,IAAI,MAAO,IAAI,GAAG,SAAS,WACoD,CAAA;AAE5F,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAOzE;AAED,eAAO,MAAM,UAAU,aAAqD,CAAA;AAE5E,eAAO,MAAM,OAAO,aAQlB,CAAA;AAIF,eAAO,MAAM,OAAO,mBAA0B,CAAA;AAW9C,eAAO,MAAM,QAAQ,MACf,KAAK,aACD,MAAM,KAAG,IA2BhB,CAAA;AAEH,eAAO,MAAM,SAAS,SAAU,MAAM,GAAG,IAAI,UAAU,MAAM,EAAE,WACmB,CAAA;AAElF,eAAO,MAAM,SAAS,SAAU,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,WAK/C,CAAA"}
|
package/dist/dom.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { formEntries } from '@hozu/core/forms';
|
|
1
2
|
export const SVG_NS = 'http://www.w3.org/2000/svg';
|
|
2
3
|
const stringBooleans = new Set(['contenteditable', 'draggable', 'spellcheck']);
|
|
3
4
|
export const text = (v) => v === null || v === undefined ? '' : typeof v === 'object' ? JSON.stringify(v) : String(v);
|
|
@@ -41,13 +42,12 @@ export const domField = (e) => (field) => {
|
|
|
41
42
|
return num(t?.valueAsNumber);
|
|
42
43
|
case 'files':
|
|
43
44
|
return fileList(t?.files ?? e.dataTransfer?.files);
|
|
44
|
-
case 'form':
|
|
45
|
-
|
|
45
|
+
case 'form':
|
|
46
|
+
case 'formAll': {
|
|
46
47
|
const form = e.target;
|
|
47
48
|
const win = form.ownerDocument.defaultView;
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
return out;
|
|
49
|
+
const d = formEntries(new (win?.FormData ?? FormData)(form, e.submitter));
|
|
50
|
+
return field === 'form' ? d.first : d.all;
|
|
51
51
|
}
|
|
52
52
|
case 'open':
|
|
53
53
|
return t?.open === true;
|
package/dist/dom.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom.js","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dom.js","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"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"}
|
package/dist/files.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const files = {"chunk-7HUHKEFT.js":"var s=(t,e,n=[])=>{if(typeof t==\"string\")e.has(t)&&n.push(t);else if(t&&typeof t==\"object\")for(let o of Object.values(t))s(o,e,n);return n};function c(t,e,n){let o=s(e,n);if(!o.length)return t;let r=new FormData;r.append(\"request\",t);for(let f of o)r.append(f,n.get(f));return r}export{c as encode};\n","chunk-7P45Q5IA.js":"function c(e){let o=new AbortController;e.el.setAttribute(\"data-hozu-widget\",e.name),e.el.setAttribute(\"data-hozu-widget-state\",\"loading\");let a=e.props(),i,d=t=>{i=void 0,e.el.setAttribute(\"data-hozu-widget-state\",\"failed\"),e.doc.defaultView?.console.error(`Widget ${e.name} failed`,t)},s=()=>{e.load(e.ref.url).then(t=>{if(!o.signal.aborted)try{i=t({el:e.el,props:a,emit:e.emit,signal:o.signal})??void 0,e.el.setAttribute(\"data-hozu-widget-state\",\"mounted\")}catch(n){d(n)}},d)},r=e.doc.defaultView;if(e.ref.load===\"eager\"||!r)s();else if(e.ref.load===\"idle\")(r.requestIdleCallback??r.setTimeout)(s);else if(!r.IntersectionObserver)s();else{let t=new r.IntersectionObserver(n=>{n.some(l=>l.isIntersecting)&&(t.disconnect(),s())});t.observe(e.el),o.signal.addEventListener(\"abort\",()=>t.disconnect())}e.watch(()=>{let t=e.props();if(!e.same(t,a)){a=t;try{i?.update?.(t)}catch(n){d(n)}}}),e.own(()=>{o.abort(),i?.destroy?.()})}export{c as mountWidget};\n","chunk-DRLGN2D4.js":"var a=new WeakSet;function c(n){let s=n.defaultView;if(!s?.IntersectionObserver||a.has(n))return;a.add(n);let r=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&t.target.dispatchEvent(new s.Event(\"visible\"))}),i=e=>{e instanceof s.Element&&e.hasAttribute(\"data-hozu-visible\")&&r.observe(e);for(let t of e.querySelectorAll(\"[data-hozu-visible]\"))r.observe(t)};i(n),new s.MutationObserver(e=>{for(let t of e)for(let o of t.addedNodes)o.nodeType===1&&i(o)}).observe(n.body,{childList:!0,subtree:!0})}export{c as watch};\n","chunk-FZY6ENWQ.js":"var n=t=>r=>{let e=t.defaultView?.EventSource;e&&new e(new URL(\"live\",import.meta.url)).addEventListener(\"message\",a=>r(JSON.parse(a.data)))};export{n as liveStream};\n","chunk-HGZ7KQUC.js":"var a=t=>t.split(\",\").map(n=>Number.parseFloat(n)*(n.trim().endsWith(\"ms\")?1:1e3)||0);function u(t){let n=t.ownerDocument.defaultView?.getComputedStyle(t);if(!n)return 0;let e=(s,o)=>{let r=a(s),i=a(o);return Math.max(0,...r.map((d,f)=>d+(i[f%i.length]??0)))};return Math.max(e(n.transitionDuration,n.transitionDelay),e(n.animationDuration,n.animationDelay))}var p=(t,n)=>{let e=t.ownerDocument.defaultView;if(!e?.requestAnimationFrame)return n();e.requestAnimationFrame(()=>e.requestAnimationFrame(n))};function c(t,n){let e=u(t);if(e===0)return n();let s=!1,o=()=>{s||(s=!0,t.removeEventListener(\"transitionend\",o),t.removeEventListener(\"animationend\",o),n())};t.addEventListener(\"transitionend\",o),t.addEventListener(\"animationend\",o),setTimeout(o,e+50)}var v=t=>t.defaultView?.matchMedia?.(\"(prefers-reduced-motion: reduce)\").matches===!0;function m(t,n,e,s){let o=`${n}-${e}-from`,r=`${n}-${e}-active`,i=`${n}-${e}-to`;t.classList.add(o,r),p(t,()=>{t.classList.remove(o),t.classList.add(i),c(t,()=>{t.classList.remove(r,i),s()})})}function l(t,n){for(let e of t)e.nodeType===1&&m(e,n,\"enter\",()=>{})}function L(t,n){for(let e of t)e.nodeType===1?m(e,n,\"leave\",()=>e.remove()):e.remove()}function $(t,n,e){let s=t.getBoundingClientRect(),o=n.left-s.left,r=n.top-s.top;if(!o&&!r)return;let i=t.style;i.transitionDuration=\"0s\",i.transform=`translate(${o}px, ${r}px)`,t.offsetWidth,t.classList.add(`${e}-move`),i.transitionDuration=\"\",i.transform=\"\",c(t,()=>t.classList.remove(`${e}-move`))}export{l as enter,$ as flip,L as leave,v as reduced};\n","client.js":"function B(t,e){let n=t;for(let o of e){if(n===null||typeof n!=\"object\")return null;n=n[o]}return n===void 0?null:n}function Q(t,e,n,o=0){if(o===e.length)return n;let s=e[o];if(Array.isArray(t)){let u=t.slice();return u[Number(s)]=Q(t[Number(s)]??null,e,n,o+1),u}let c=t!==null&&typeof t==\"object\"?t:{};return{...c,[s]:Q(c[s]??null,e,n,o+1)}}function P(t,e){if(t===e)return!0;if(t===null||e===null||typeof t!=\"object\"||typeof e!=\"object\")return!1;if(Array.isArray(t)){if(!Array.isArray(e)||t.length!==e.length)return!1;for(let o=0;o<t.length;o++)if(!P(t[o],e[o]))return!1;return!0}if(Array.isArray(e))return!1;let n=Object.keys(t);if(n.length!==Object.keys(e).length)return!1;for(let o of n)if(!Object.hasOwn(e,o)||!P(t[o],e[o]))return!1;return!0}var gt=(t,e,n)=>{let[o=\"\",s=\"\"]=t.split(\"?\"),c=o.replace(/\\/:([A-Za-z]\\w*)[?*+]?/g,(b,T)=>[B(e,[T])??[]].flat().map(j=>`/${encodeURIComponent(String(j))}`).join(\"\"))||\"/\",u=s.split(\"&\"),x=\"\";if(n&&typeof n==\"object\")for(let b of Object.keys(n).sort()){let T=n[b],g=`${encodeURIComponent(b)}=${encodeURIComponent(String(T))}`;T!==null&&typeof T!=\"object\"&&!u.includes(g)&&(x+=`${x&&\"&\"}${g}`)}return x?`${c}?${x}`:c};var rt=class extends Error{name=\"CompileError\"};function U(t,e){if(\"literal\"in t){let s=t.literal;return()=>s}if(\"object\"in t){let s=Object.entries(t.object).map(([c,u])=>[c,U(u,e)]);return c=>{let u={};for(let[x,b]of s)u[x]=b(c);return u}}if(\"fn\"in t){let s=e[t.fn];if(!s)throw new rt(`No implementation bound for fn ${t.fn}`);let c=U(t.arg,e);return u=>s(c(u))}if(\"link\"in t){let s=t.link,c=U(t.params,e),u=U(t.search,e);return x=>gt(x.routes?.[s]??\"\",c(x),u(x))}if(\"test\"in t){let s=it(t.test,e);return c=>s(c)}let{path:n}=t;if(t.ref===\"binding\"){let s=t.depth;return n.length?c=>B(c.bindings?.[s],n):c=>c.bindings?.[s]??null}if(t.ref===\"dom\"){let[s,...c]=n;return u=>u.dom&&s?B(u.dom(s),c):null}let o=t.ref;return n.length===0?s=>s[o]??null:s=>B(s[o],n)}var K=t=>typeof t==\"number\"||typeof t==\"string\"?t:Number.NaN;function it(t,e){switch(t.op){case\"and\":{let n=t.args.map(o=>it(o,e));return o=>n.every(s=>s(o))}case\"or\":{let n=t.args.map(o=>it(o,e));return o=>n.some(s=>s(o))}case\"not\":{let n=it(t.arg,e);return o=>!n(o)}case\"fn\":{let n=U({fn:t.fn,arg:t.arg},e);return o=>n(o)===!0}default:{let n=U(t.left,e),o=U(t.right,e);switch(t.op){case\"eq\":return s=>P(n(s),o(s));case\"neq\":return s=>!P(n(s),o(s));case\"lt\":return s=>K(n(s))<K(o(s));case\"lte\":return s=>K(n(s))<=K(o(s));case\"gt\":return s=>K(n(s))>K(o(s));default:return s=>K(n(s))>=K(o(s))}}}}function Ut(t,e){let{path:n}=t,o=U(t.value,e);switch(t.op){case\"set\":return(s,c)=>Q(s,n,o({...c,context:s}));case\"append\":return(s,c)=>{let u=B(s,n);return Q(s,n,[...Array.isArray(u)?u:[],o({...c,context:s})])};case\"inc\":return(s,c)=>Q(s,n,Number(B(s,n)??0)+Number(o({...c,context:s})));case\"removeWhere\":{let s=t.key;return(c,u)=>{let x=B(c,n),b=o({...u,context:c}),T=Array.isArray(x)?x:[];return Q(c,n,T.filter(g=>!P(g!==null&&typeof g==\"object\"&&!Array.isArray(g)?g[s]:null,b)))}}}}var qt=(t,e)=>n=>t({...n,routes:e});function yt(t,e={},n={}){let o=t.machine;if(!o)throw new rt(`Feature ${t.id} has no machine`);let s=Object.keys(o.states),c=new Map(s.map((g,j)=>[g,j])),u=g=>{let j=c.get(g);if(j===void 0)throw new rt(`Unknown state \"${g}\" in ${t.id}`);return j},x=[],b=(g,j)=>(x.push(j),{id:j,guard:g.guard?it(g.guard,e):null,target:u(g.target),assign:g.assign.map(C=>Ut(C,e)),navigate:g.navigate?qt(U(g.navigate,e),n):null}),T=s.map(g=>{let j=o.states[g],C=new Map;for(let[E,O]of Object.entries(j.on))C.set(E,O.map((q,I)=>b(q,`${g}/on/${E}/${I}`)));let _=new Map;j.after.forEach((E,O)=>{let q=b(E.transition,`${g}/after/${O}`);_.set(E.ms,[..._.get(E.ms)??[],q])});let M=j.invoke;return{name:g,final:j.final,on:C,invoke:M&&{effect:M.effect,input:U(M.input,e),done:M.done.map((E,O)=>b(E,`${g}/invoke/done/${O}`)),failed:new Map(Object.entries(M.failed).map(([E,O])=>[E,O.map((q,I)=>b(q,`${g}/invoke/failed/${E}/${I}`))]))},after:_,timers:[..._.keys()].sort((E,O)=>E-O)}});return{feature:t.id,initial:u(o.initial),initialContext:o.initialContext,states:T,index:c,transitions:x}}function St(t,e,n,o,s){let c=t.states[e];c.invoke&&s.push({type:\"invoke\",entry:o,effect:c.invoke.effect,input:c.invoke.input({context:n})});for(let u of c.timers)s.push({type:\"timer\",entry:o,ms:u})}function jt(t,e,n,o=1){let s=t.index.get(e);if(s===void 0)throw new Error(`Unknown state \"${e}\" in ${t.feature}`);let c=[];return St(t,s,n,o,c),{snapshot:{state:e,context:n,entry:o},effects:c,taken:null}}var ht=t=>jt(t,t.states[t.initial].name,t.initialContext),st=t=>({snapshot:t,effects:[],taken:null});function ut(t,e,n,o){if(!n)return st(e);for(let s of n){if(s.guard&&!s.guard(o))continue;let c=e.context;for(let b of s.assign)c=b(c,o);let u=e.entry+1,x=s.navigate===null?[]:[{type:\"navigate\",url:String(s.navigate(o))}];return St(t,s.target,c,u,x),{snapshot:{state:t.states[s.target].name,context:c,entry:u},effects:x,taken:s.id}}return st(e)}function xt(t,e,n){let o=t.states[t.index.get(e.state)??-1];if(!o||o.final)return st(e);let s=e.context;switch(n.type){case\"event\":return ut(t,e,o.on.get(n.event),{context:s,event:n.payload});case\"done\":return n.entry!==e.entry||!o.invoke?st(e):ut(t,e,o.invoke.done,{context:s,result:n.result});case\"failed\":{if(n.entry!==e.entry||!o.invoke)return st(e);let c=o.invoke.failed,u=c.has(n.error),x=u?n.data:{message:Dt(n.data,n.error)};return ut(t,e,c.get(u?n.error:\"Unexpected\"),{context:s,error:x})}case\"timer\":return n.entry!==e.entry?st(e):ut(t,e,o.after.get(n.ms),{context:s})}}function Dt(t,e){return t!==null&&typeof t==\"object\"&&!Array.isArray(t)&&typeof t.message==\"string\"?t.message:e}var pt=\"http://www.w3.org/2000/svg\",zt=new Set([\"contenteditable\",\"draggable\",\"spellcheck\"]),X=t=>t==null?\"\":typeof t==\"object\"?JSON.stringify(t):String(t);function Ot(t,e){return e==null?null:typeof e==\"boolean\"?t.startsWith(\"aria-\")||t.startsWith(\"data-\")||zt.has(t)?String(e):e?\"\":null:X(e)}var $t=new Set([\"value\",\"checked\",\"selected\",\"muted\"]),wt=new Set([\"scroll\",\"wheel\",\"touchstart\",\"touchmove\",\"touchend\",\"pointermove\",\"mousemove\"]),Nt=t=>typeof t==\"number\"&&!Number.isNaN(t)?t:null,at=new Map,Bt=t=>t?[...t].map(e=>{let n=`u${at.size+1}`;return at.set(n,e),{name:e.name,size:e.size,type:e.type,token:n}}):[],bt=t=>e=>{let n=t.target;switch(e){case\"value\":return typeof n?.value==\"string\"?n.value:\"\";case\"checked\":return n?.checked===!0;case\"valueAsNumber\":return Nt(n?.valueAsNumber);case\"files\":return Bt(n?.files??t.dataTransfer?.files);case\"form\":{let o={},s=t.target,c=s.ownerDocument.defaultView;for(let[u,x]of new(c?.FormData??FormData)(s))o[u]=typeof x==\"string\"?x:x.name;return o}case\"open\":return n?.open===!0;case\"returnValue\":return typeof n?.returnValue==\"string\"?n.returnValue:\"\";default:{let o=e in t?t[e]:n?.[e];return typeof o==\"number\"?Nt(o):typeof o==\"string\"||typeof o==\"boolean\"?o:null}}},At=(t,e)=>t?e.length?`${t} ${e.join(\" \")}`:t:e.join(\" \");var Tt=JSON.stringify;function mt(t){if(t===null)return\"null\";switch(typeof t){case\"string\":return Tt(t);case\"boolean\":return t?\"true\":\"false\";case\"number\":if(!Number.isFinite(t))throw new TypeError(`Non-finite number ${t} is not valid JSON`);return Object.is(t,-0)?\"0\":String(t);case\"object\":{if(Array.isArray(t))return`[${t.map(mt).join(\",\")}]`;let e=t,n=Object.keys(e).sort(),o=\"{\";for(let s=0;s<n.length;s++){let c=n[s],u=e[c];if(u===void 0)throw new TypeError(`Undefined value at key \"${c}\"`);o+=`${s?\",\":\"\"}${Tt(c)}:${mt(u)}`}return`${o}}`}default:throw new TypeError(`Value of type ${typeof t} is not valid JSON`)}}var kt=t=>{switch(t.op){case\"and\":case\"or\":return t.args.some(kt);case\"not\":return kt(t.arg);case\"fn\":return Y(t.arg);default:return Y(t.left)||Y(t.right)}},Y=t=>\"ref\"in t?t.ref===\"context\"||t.ref===\"binding\":\"object\"in t?Object.values(t.object).some(Y):\"fn\"in t?Y(t.arg):\"test\"in t&&kt(t.test),_t=(t,e)=>t+mt(e),Ft=t=>t instanceof Map?{data:t,versions:new Map}:t;var ot=(t,e)=>t!==null&&t.nodeType===8&&t.data===e;function tt(t,e){let n=[t],o=t;for(;o!==e&&(o=o.nextSibling,!!o);)n.push(o);return n}function vt(t,e){let n=t.next?t.next.previousSibling:t.parent.lastChild;return e(),[n?n.nextSibling:t.parent.firstChild,t.next?t.next.previousSibling:t.parent.lastChild]}function Et(t,e){for(;t.nextSibling&&t.nextSibling!==e;)t.nextSibling.remove()}function Ct(t,e){let{machine:n,fns:o={},params:s=null,search:c=null,routes:u={}}=e,{data:x}=Ft(e.payload),b=[],T=new Set,g=n?e.snapshot?null:ht(n):null,j=e.snapshot??g?.snapshot??null,C=[],_=new Set,M=new Set,E=new WeakMap,O=(r,a,i)=>{let h=E.get(r);return h||(h=U(r,o),E.set(r,h)),h({context:j?.context??null,bindings:a,params:s,search:c,routes:u,...i?{dom:i}:{}})},q=(r,a,i,h)=>{let w=O(a,i);h(w),Y(a)&&r.push(()=>{let p=O(a,i);p!==w&&(w=p,h(p))})},I=(r,a)=>{if(r.claim&&ot(r.next,a)){let i=r.next;return r.next=i.nextSibling,i}return r.parent.insertBefore(t.createComment(a),r.next)},ct=r=>{if(!r.claim||!ot(r.next,\"[\"))return;let a=0;for(;r.next;){let i=r.next;if(r.next=i.nextSibling,ot(i,\"[\"))a++;else if(ot(i,\"]\")&&--a===0)return}},D=(r,a,i,h,w)=>{switch(r.kind){case\"text\":{let p;i.claim&&i.next?.nodeType===3?(p=i.next,i.next=p.nextSibling):p=i.parent.insertBefore(t.createTextNode(\"\"),i.next),i.claim&&ot(i.next,\"\")&&(i.next=i.next.nextSibling),q(h,r.value,a,d=>{let l=X(d);p.data!==l&&(p.data=l)});return}case\"el\":{let p=r.tag,d=p===\"svg\"?pt:w,l,f=i.claim&&i.next?.nodeType===1&&i.next.localName===p;f?(l=i.next,i.next=l.nextSibling):(l=d?t.createElementNS(d,p):t.createElement(p),r.class&&l.setAttribute(\"class\",r.class),i.parent.insertBefore(l,i.next));for(let m in r.attrs){let k=r.attrs[m],z=$t.has(m)&&m in l;f&&!Y(k)||q(h,k,a,R=>{if(z){let L=l,lt=m===\"value\"?X(R):R===!0;L[m]!==lt&&(L[m]=lt);return}let G=Ot(m,R);G===null?l.removeAttribute(m):l.getAttribute(m)!==G&&l.setAttribute(m,G)})}et(l,r,a,h);for(let m in r.on){let k=r.on[m];l.addEventListener(m,z=>{m===\"submit\"&&z.preventDefault(),Z({type:\"event\",event:k.event,payload:O(k.payload,a,bt(z))})},wt.has(m)?{passive:!0}:void 0)}if(p===\"textarea\")return;let v={parent:l,next:f?l.firstChild:null,claim:f},N=p===\"foreignObject\"?null:d;for(let m of r.children)D(m,a,v,h,N);return}case\"when\":{let p=()=>j?r.states.includes(j.state):!1;A(i,h,p,(d,l)=>{if(p())for(let f of r.children)D(f,a,d,l,w)},r.motion);return}case\"query\":{let p=a;A(i,h,()=>{let l=_t(r.query,O(r.input,a)),f=x.get(l);return f&&p!==a&&p.splice(0,p.length,...a,f.ok?f.value:f.data),`${l}|${f?f.ok?\"ready\":r.failed[f.error]?f.error:\"Unexpected\":\"\"}`},(l,f)=>{let v=O(r.input,a),N=_t(r.query,v),m=x.get(N);if(p=a,!m){l.claim||J(N,r.query,v),r.pending&&D(r.pending,a,l,f,w);return}let k=m.ok?r.ready:r.failed[m.error]??r.failed.Unexpected;p=[...a,m.ok?m.value:m.data],k&&D(k,p,l,f,w)});return}case\"each\":V(r,a,i,h,w);return;case\"widget\":$(r,a,i,h);return;case\"if\":{let p=()=>O({test:r.test},a)===!0;A(i,h,p,(d,l)=>{let f=p()?r.ifTrue:r.ifFalse;for(let v of f)D(v,a,d,l,w)},r.motion);return}case\"html\":{let p=I(i,\"[\"),d;if(i.claim){for(;i.next&&!ot(i.next,\"]\");)i.next=i.next.nextSibling;d=i.next??i.parent.appendChild(t.createComment(\"]\")),i.next=d.nextSibling}else d=I(i,\"]\");let l=i.claim?X(O(r.value,a)):null;q(h,r.value,a,f=>{let v=X(f);if(v===l)return;l=v,Et(p,d);let N=t.createElement(\"template\");N.innerHTML=v,d.parentNode.insertBefore(N.content,d)});return}case\"global\":{let p=I(i,\"g\"),d=r.target===\"window\"?t.defaultView:t,l=[];for(let f in r.on){let v=r.on[f],N=k=>Z({type:\"event\",event:v.event,payload:O(v.payload,a,bt(k))}),m=wt.has(f)?{passive:!0}:void 0;d.addEventListener(f,N,m),l.push(()=>d.removeEventListener(f,N))}M.add({el:p,stop:()=>l.forEach(f=>f())});return}default:ct(i)}},et=(r,a,i,h)=>{let w=Object.entries(a.toggle);if(w.length){let p=()=>{let l=[];for(let[f,v]of w)O(v,i)===!0&&l.push(f);return At(a.class,l)},d=p();r.getAttribute(\"class\")!==d&&r.setAttribute(\"class\",d),w.some(([,l])=>Y(l))&&h.push(()=>{let l=p();l!==d&&(d=l,r.setAttribute(\"class\",l))})}for(let p in a.vars)q(h,a.vars[p],i,d=>{let l=r.style;d===null||d===\"\"?l.removeProperty(p):l.getPropertyValue(p)!==X(d)&&l.setProperty(p,X(d))})},$=(r,a,i,h)=>{let w=e.widgets?.[r.widget],p=w?.tag??\"div\",d,l=i.claim&&i.next?.nodeType===1&&i.next.localName===p;if(l?(d=i.next,i.next=d.nextSibling):(d=t.createElement(p),r.class&&d.setAttribute(\"class\",r.class),i.parent.insertBefore(d,i.next)),et(d,r,a,h),!l||w?.wraps){let f={parent:d,next:l?d.firstChild:null,claim:l};for(let v of r.children)D(v,a,f,h,null)}w||console.error(`Hozu: widget ${r.widget} has no client code (bundleWidgets)`),!(!w||!e.loadWidget||!e.mountWidget)&&e.mountWidget({el:d,ref:w,name:r.widget,doc:t,props:()=>O(r.props,a),emit:(f,v)=>{let N=r.on[f];N&&Z({type:\"event\",event:N.event,payload:O(N.payload,a,m=>m===\"detail\"?v:null)})},load:e.loadWidget,watch:f=>h.push(f),own:f=>M.add({el:d,stop:f}),same:P})},F=new Set,J=(r,a,i)=>{!e.onQuery||F.has(r)||(F.add(r),e.onQuery(a,i).then(h=>{F.delete(r),x.set(r,h);for(let w of C)w();y()}))},y=()=>{for(let r=C.length-1;r>=0;r--)_.delete(C[r])&&C.splice(r,1);for(let r of M)r.el.isConnected||(r.stop(),M.delete(r))},A=(r,a,i,h,w=null)=>{let p=I(r,\"[\"),d=i(),l=[];h(r,l);let f=I(r,\"]\");a.push(()=>{let v=i();if(v===d){for(let z of l)z();return}d=v,l=[];let N=e.motion;if(!w||!N||N.reduced(t)){Et(p,f),h({parent:f.parentNode,next:f,claim:!1},l);return}N.leave(p.nextSibling===f?[]:tt(p.nextSibling,f.previousSibling),w);let[m,k]=vt({parent:f.parentNode,next:f,claim:!1},()=>h({parent:f.parentNode,next:f,claim:!1},l));m&&k&&m!==f&&N.enter(tt(m,k),w)})},V=(r,a,i,h,w)=>{let p=I(i,\"[\"),d=m=>{let k=r.key===null?m:B(m,[r.key]);return typeof k==\"string\"?`s${k}`:JSON.stringify(k)},l=()=>{let m=O(r.source,a);return Array.isArray(m)?m:[]},f=(m,k)=>{let z=[...a,m],R=[],[G,L]=vt(k,()=>D(r.item,z,k,R,w));return{key:d(m),value:m,scope:z,block:R,first:G,last:L}},v=l().map(m=>f(m,i)),N=I(i,\"]\");h.push(()=>{let m=e.motion,k=r.motion&&m&&!m.reduced(t)?r.motion:null,z=k?new Map(v.flatMap(S=>S.first.nodeType===1?[[S,S.first.getBoundingClientRect()]]:[])):null,R=new Map(v.map(S=>[S.key,S])),G=new Set,L=[];for(let S of l()){let H=d(S),nt=R.get(H);if(nt){R.delete(H),nt.value=S,nt.scope.splice(0,nt.scope.length,...a,S);for(let ft of nt.block)ft();L.push(nt)}else{let ft=f(S,{parent:t.createDocumentFragment(),next:null,claim:!1});G.add(ft),L.push(ft)}}for(let S of R.values())if(k)m.leave(tt(S.first,S.last),k);else for(let H of tt(S.first,S.last))H.remove();let lt=N.parentNode,dt=p.nextSibling??N;for(let S of L)if(S.first===dt)dt=S.last.nextSibling??N;else for(let H of tt(S.first,S.last))lt.insertBefore(H,dt);if(v=L,!!k)for(let S of L)if(G.has(S))m.enter(tt(S.first,S.last),k);else{let H=z?.get(S);H&&m.flip(S.first,H,k)}})},W=r=>{for(let a of r.effects)if(a.type===\"navigate\")e.onNavigate?.(a.url);else if(a.type===\"timer\"){let i=setTimeout(()=>{T.delete(i),Z({type:\"timer\",entry:a.entry,ms:a.ms})},a.ms);T.add(i)}else e.onInvoke?.(a.effect,a.input).then(i=>Z(i.ok?{type:\"done\",entry:a.entry,result:i.value}:{type:\"failed\",entry:a.entry,error:i.error,data:i.data}))};function Z(r){if(!n||!j)return;let a=xt(n,j,r);if(a.taken){j=a.snapshot;for(let i of C)i();y(),W(a)}}return{attach(r,a,i,h,w){let p={parent:r,next:a,claim:w},d=r.namespaceURI===pt?pt:null,l=[],[f,v]=vt(p,()=>D(i,h,p,l,d));f&&v&&b.push([f,v]);let N=f?.isConnected===!0,m=()=>{if(N&&!f.isConnected)_.add(m);else for(let k of l)k()};C.push(m)},start(){g&&W(g),g=null},sync:()=>{for(let r of C)r();y()},dispatch:Z,snapshot:()=>j,destroy:()=>{for(let r of T)clearTimeout(r);T.clear();for(let r of M)r.stop();M.clear(),C.length=0;for(let[r,a]of b)for(let i of tt(r,a))i.remove();b.length=0}}}var Vt=function(t,e){return typeof t==\"string\"&&/^\\.\\.?\\//.test(t)?t.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i,function(n,o,s,c,u){return o?e?\".jsx\":\".js\":s&&(!c||!u)?n:s+c+\".\"+u.toLowerCase()+\"js\"}):t},Mt=t=>t.islands.flatMap(([e,n,...o])=>{let s=t.ids[e],c=s.slice(0,s.indexOf(\".\"));return o.map(u=>({feature:c,node:s,scope:[...Array(n).fill(null),...u]}))}),It=t=>new URL(t,import.meta.url),Jt=async(t,e,n)=>{let o=JSON.stringify({effect:t,input:e,keys:n}),s=at.size?await(await import(\"./chunk-7HUHKEFT.js\")).encode(o,e,at):o;return await(await fetch(It(\"effect\"),{method:\"POST\",headers:typeof s==\"string\"?{\"content-type\":\"application/json\"}:{},body:s})).json()},Rt=async(t,e)=>await(await fetch(It(\"query\"),{method:\"POST\",headers:{\"content-type\":\"application/json\"},body:JSON.stringify({query:t,input:e})})).json(),Lt=async t=>(await import(Vt(t))).default,Ht=async t=>(await import(Vt(t))).fns;async function Wt(t,{transport:e=Jt,query:n=Rt,live:o,loadFns:s=Ht,loadWidget:c=Lt}={}){let u=new Map,x=t.getElementById(\"hozu-payload\");if(!x?.textContent)return u;let b={data:new Map,versions:new Map},T={},g={},j={},C=new Map,_={},M=new Map,E=($,F)=>{let J=$+JSON.stringify(F),y=M.get(J);return y||(y=n($,F).finally(()=>M.delete(J)),M.set(J,y)),y},O=async($,F)=>{let{result:J,refreshed:y}=await e($,F,[...b.data.keys()]);for(let[A,V]of y)b.data.set(A,V),b.versions.set(A,(b.versions.get(A)??0)+1);if(y.length)for(let A of u.values())A.sync();return J},q=null,I={doc:t,apps:u,islands:Mt,async mount($,F){!_.motion&&$.motion&&(_.motion=await import(\"./chunk-HGZ7KQUC.js\")),$.visible&&import(\"./chunk-DRLGN2D4.js\").then(y=>y.watch(t)),!_.mountWidget&&Object.keys($.widgets).length&&(_.mountWidget=(await import(\"./chunk-7P45Q5IA.js\")).mountWidget),!_.fns&&$.fns&&(Object.assign(T,await s($.fns)),_.fns=!0),Object.assign(g,$.widgets),Object.assign(j,$.routes);for(let[y,A]of $.data)b.data.has(y)&&b.versions.set(y,(b.versions.get(y)??0)+1),b.data.set(y,A);let J=[];for(let[y,A]of Object.entries($.features)){if(u.has(y))continue;let V=$.snapshots?.[y],W=Ct(t,{machine:A?yt({id:y,machine:A},T,j):null,payload:b,params:$.params,search:$.search,...V?{snapshot:V}:{},fns:T,widgets:g,routes:j,get motion(){return _.motion},get mountWidget(){return _.mountWidget},loadWidget:c,onQuery:E,onInvoke:O,onNavigate:Z=>t.defaultView?.location.assign(Z)});u.set(y,W),J.push(W)}Mt($).forEach((y,A)=>{let V=F[A],W=$.nodes[y.node];V?.parentNode&&W&&u.get(y.feature)?.attach(V.parentNode,V.nextSibling,W,y.scope,!0)});for(let y of u.values())y.sync();for(let y of J)y.start();for(let[y,A]of Object.entries($.live??{}))C.set(y,A);C.size&&!_.live&&(_.live=!0,(o??(await import(\"./chunk-FZY6ENWQ.js\")).liveStream(t))(async y=>{let A=[...C].filter(([,V])=>V.tags.some(W=>y.includes(W)));for(let[V,W]of A)b.data.set(V,await n(W.query,W.input));if(A.length)for(let V of u.values())V.sync()}))}},ct=JSON.parse(x.textContent),D=[],et=t.createTreeWalker(t.body??t,128);for(;et.nextNode();)et.currentNode.data===\"i\"&&D.push(et.currentNode);return await I.mount(ct,D),ct.soft&&import(\"./navigate.js\").then($=>$.soft(I)),t.documentElement.setAttribute(\"data-hozu-ready\",\"\"),u}Wt(document);\n","navigate.js":"var b='title,meta[name=description],meta[name=robots],link[rel=canonical],meta[property],script[type=\"application/ld+json\"]',S={\"?\":\"(?:/[^/]+)?\",\"+\":\"(?:/[^/]+)+\",\"*\":\"(?:/[^/]+)*\"},A=r=>{let n=0,t=r.split(/(\\/:[A-Za-z]\\w*[?*+]?)/).map((o,a)=>{if(a%2===0)return o.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\");let s=o.at(-1);return n+=s===\"+\"||s===\"*\"?1.01:1,S[s]??\"/[^/]+\"}).join(\"\");return{pattern:new RegExp(`^${t.replace(/\\/$/,\"\")}/?$`),keys:n}};function O(r,n){let t=null,o=1/0;for(let[a,s]of Object.entries(r)){let{pattern:i,keys:f}=A(s);f<o&&i.test(n)&&(t=a,o=f)}return t}function E(r){let n=[],t=(r.ownerDocument??r).createTreeWalker(r,128),o=null;for(;t.nextNode();){let a=t.currentNode;a.data===\"i\"?n.push({marker:a,view:o}):a.data.startsWith(\"v:\")?o=a.data.slice(2):a.data===\"/v\"&&(o=null)}return n}function C(r,n,t,o){n.islands(t).forEach((a,s)=>{let i=o[s]?.view;if(!i)return;let f=r.views.get(i)??new Set;f.add(a.feature),r.views.set(i,f)}),r.soft=t.soft??{},Object.assign(r.routes,t.routes)}function k(r){let n=new Map,t=null;for(let o of[...r.childNodes])o.nodeType===8&&o.data.startsWith(\"v:\")?(t=[o],n.set(o.data.slice(2),t)):t&&(t.push(o),o.nodeType===8&&o.data===\"/v\"&&(t=null));return n}async function z(r,n,t,o){let{doc:a,apps:s}=r,{views:i}=n,f=t.getElementById(\"hozu-payload\"),y=k(t.body),c=k(a.body);if(!f?.textContent||o.some(e=>!y.has(e)||!c.has(e)))return!1;let p=JSON.parse(f.textContent),d=new Set(o),m=E(t.body),w=new Set;for(let e of d)for(let l of i.get(e)??[])w.add(l);r.islands(p).forEach((e,l)=>{let u=m[l]?.view;(u==null||!d.has(u))&&w.add(e.feature)});for(let[e,l]of s)w.has(e)||(l.destroy(),s.delete(e));for(let e of[...i.keys()])d.has(e)||i.delete(e);let v=a.getElementById(\"hozu-payload\"),h=0,g=[...c.keys()].filter(e=>d.has(e));for(let[e,l]of y){if(d.has(e)){h++;continue}let u=g[h]?c.get(g[h])[0]:v;for(let x of l)a.body.insertBefore(x,u)}for(let[e,l]of c)if(!d.has(e))for(let u of l)u.remove();v&&(v.textContent=f.textContent);for(let e of a.head.querySelectorAll(b))e.remove();for(let e of t.head.querySelectorAll(b))a.head.append(e);return a.documentElement.lang=t.documentElement.lang,await r.mount(p,m.map(e=>e.view!==null&&d.has(e.view)?void 0:e.marker)),C(n,r,p,m),!0}function I(r){let{doc:n}=r,t=n.defaultView,o=n.getElementById(\"hozu-payload\");if(!t?.navigation||!o?.textContent)return;let a={views:new Map,soft:{},routes:{}};C(a,r,JSON.parse(o.textContent),E(n.body));let s=null,i=!1,f=y=>{s||(s=n.createElement(\"div\"),s.setAttribute(\"aria-live\",\"polite\"),s.style.cssText=\"position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap\",n.body.append(s)),s.textContent=y};t.navigation.addEventListener(\"navigate\",y=>{let c=y;if(i||!c.canIntercept||c.hashChange||c.downloadRequest!==null||c.formData||c.navigationType===\"reload\")return;let p=new URL(c.destination.url);if(p.origin!==t.location.origin)return;let d=O(a.routes,p.pathname),m=d?a.soft[d]:void 0;if(!m)return;let w=()=>{i=!0,t.location.replace(p.href)};c.intercept({handler:async()=>{let v=n.documentElement;v.setAttribute(\"data-hozu-navigating\",\"\");try{let h=await t.fetch(p.href,{headers:{accept:\"text/html\"}}),g=h.headers.get(\"content-type\")??\"\";if(h.status!==200||h.redirected||!g.includes(\"text/html\"))return w();let e=new t.DOMParser().parseFromString(await h.text(),\"text/html\"),l=!0,u=async()=>{l=await z(r,a,e,m)},x=n.startViewTransition;if(x?await x.call(n,u).updateCallbackDone:await u(),!l)return w();f(n.title)}catch{w()}finally{v.removeAttribute(\"data-hozu-navigating\")}}})})}export{E as islandsIn,k as ranges,O as routeOf,I as soft,z as swap,C as track};\n"}
|
|
1
|
+
export const files = {"chunk-627YWRJ6.js":"var s=a=>(n,o)=>{let t=a.defaultView?.EventSource;if(!t)return;let r=new URL(\"live\",import.meta.url);for(let e of new Set(o))r.searchParams.append(\"tag\",e);new t(r).addEventListener(\"message\",e=>n(JSON.parse(e.data)))};export{s as liveStream};\n","chunk-7HUHKEFT.js":"var s=(t,e,n=[])=>{if(typeof t==\"string\")e.has(t)&&n.push(t);else if(t&&typeof t==\"object\")for(let o of Object.values(t))s(o,e,n);return n};function c(t,e,n){let o=s(e,n);if(!o.length)return t;let r=new FormData;r.append(\"request\",t);for(let f of o)r.append(f,n.get(f));return r}export{c as encode};\n","chunk-7P45Q5IA.js":"function c(e){let o=new AbortController;e.el.setAttribute(\"data-hozu-widget\",e.name),e.el.setAttribute(\"data-hozu-widget-state\",\"loading\");let a=e.props(),i,d=t=>{i=void 0,e.el.setAttribute(\"data-hozu-widget-state\",\"failed\"),e.doc.defaultView?.console.error(`Widget ${e.name} failed`,t)},s=()=>{e.load(e.ref.url).then(t=>{if(!o.signal.aborted)try{i=t({el:e.el,props:a,emit:e.emit,signal:o.signal})??void 0,e.el.setAttribute(\"data-hozu-widget-state\",\"mounted\")}catch(n){d(n)}},d)},r=e.doc.defaultView;if(e.ref.load===\"eager\"||!r)s();else if(e.ref.load===\"idle\")(r.requestIdleCallback??r.setTimeout)(s);else if(!r.IntersectionObserver)s();else{let t=new r.IntersectionObserver(n=>{n.some(l=>l.isIntersecting)&&(t.disconnect(),s())});t.observe(e.el),o.signal.addEventListener(\"abort\",()=>t.disconnect())}e.watch(()=>{let t=e.props();if(!e.same(t,a)){a=t;try{i?.update?.(t)}catch(n){d(n)}}}),e.own(()=>{o.abort(),i?.destroy?.()})}export{c as mountWidget};\n","chunk-DRLGN2D4.js":"var a=new WeakSet;function c(n){let s=n.defaultView;if(!s?.IntersectionObserver||a.has(n))return;a.add(n);let r=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&t.target.dispatchEvent(new s.Event(\"visible\"))}),i=e=>{e instanceof s.Element&&e.hasAttribute(\"data-hozu-visible\")&&r.observe(e);for(let t of e.querySelectorAll(\"[data-hozu-visible]\"))r.observe(t)};i(n),new s.MutationObserver(e=>{for(let t of e)for(let o of t.addedNodes)o.nodeType===1&&i(o)}).observe(n.body,{childList:!0,subtree:!0})}export{c as watch};\n","chunk-HGZ7KQUC.js":"var a=t=>t.split(\",\").map(n=>Number.parseFloat(n)*(n.trim().endsWith(\"ms\")?1:1e3)||0);function u(t){let n=t.ownerDocument.defaultView?.getComputedStyle(t);if(!n)return 0;let e=(s,o)=>{let r=a(s),i=a(o);return Math.max(0,...r.map((d,f)=>d+(i[f%i.length]??0)))};return Math.max(e(n.transitionDuration,n.transitionDelay),e(n.animationDuration,n.animationDelay))}var p=(t,n)=>{let e=t.ownerDocument.defaultView;if(!e?.requestAnimationFrame)return n();e.requestAnimationFrame(()=>e.requestAnimationFrame(n))};function c(t,n){let e=u(t);if(e===0)return n();let s=!1,o=()=>{s||(s=!0,t.removeEventListener(\"transitionend\",o),t.removeEventListener(\"animationend\",o),n())};t.addEventListener(\"transitionend\",o),t.addEventListener(\"animationend\",o),setTimeout(o,e+50)}var v=t=>t.defaultView?.matchMedia?.(\"(prefers-reduced-motion: reduce)\").matches===!0;function m(t,n,e,s){let o=`${n}-${e}-from`,r=`${n}-${e}-active`,i=`${n}-${e}-to`;t.classList.add(o,r),p(t,()=>{t.classList.remove(o),t.classList.add(i),c(t,()=>{t.classList.remove(r,i),s()})})}function l(t,n){for(let e of t)e.nodeType===1&&m(e,n,\"enter\",()=>{})}function L(t,n){for(let e of t)e.nodeType===1?m(e,n,\"leave\",()=>e.remove()):e.remove()}function $(t,n,e){let s=t.getBoundingClientRect(),o=n.left-s.left,r=n.top-s.top;if(!o&&!r)return;let i=t.style;i.transitionDuration=\"0s\",i.transform=`translate(${o}px, ${r}px)`,t.offsetWidth,t.classList.add(`${e}-move`),i.transitionDuration=\"\",i.transform=\"\",c(t,()=>t.classList.remove(`${e}-move`))}export{l as enter,$ as flip,L as leave,v as reduced};\n","client.js":"function W(t,e){let r=t;for(let s of e){if(typeof r==\"string\"&&s===\"length\")return r.length;if(r===null||typeof r!=\"object\")return null;r=r[s]}return r===void 0?null:r}function P(t,e,r,s=0){if(s===e.length)return r;let o=e[s];if(Array.isArray(t)){let f=t.slice();return f[Number(o)]=P(t[Number(o)]??null,e,r,s+1),f}let a=t!==null&&typeof t==\"object\"?t:{};return{...a,[o]:P(a[o]??null,e,r,s+1)}}function L(t,e){if(t===e)return!0;if(t===null||e===null||typeof t!=\"object\"||typeof e!=\"object\")return!1;if(Array.isArray(t)){if(!Array.isArray(e)||t.length!==e.length)return!1;for(let s=0;s<t.length;s++)if(!L(t[s],e[s]))return!1;return!0}if(Array.isArray(e))return!1;let r=Object.keys(t);if(r.length!==Object.keys(e).length)return!1;for(let s of r)if(!Object.hasOwn(e,s)||!L(t[s],e[s]))return!1;return!0}var ft=(t,e,r)=>{let[s=\"\",o=\"\"]=t.split(\"?\"),a=s.replace(/\\/:([A-Za-z]\\w*)[?*+]?/g,(y,O)=>[W(e,[O])??[]].flat().map(j=>`/${encodeURIComponent(String(j))}`).join(\"\"))||\"/\",f=o.split(\"&\"),g=\"\";if(r&&typeof r==\"object\")for(let y of Object.keys(r).sort()){let O=r[y],h=`${encodeURIComponent(y)}=${encodeURIComponent(String(O))}`;O!==null&&typeof O!=\"object\"&&!f.includes(h)&&(g+=`${g&&\"&\"}${h}`)}return g?`${a}?${g}`:a};var et=class extends Error{name=\"CompileError\"};function V(t,e){if(\"literal\"in t||\"formRef\"in t){let a=\"literal\"in t?t.literal:t.formRef;return()=>a}if(\"object\"in t){let a=Object.entries(t.object).map(([f,g])=>[f,V(g,e)]);return f=>{let g={};for(let[y,O]of a)g[y]=O(f);return g}}if(\"fn\"in t){let a=e[t.fn];if(!a)throw new et(`No implementation bound for fn ${t.fn}`);let f=V(t.arg,e);return g=>a(f(g))}if(\"link\"in t){let a=t.link,f=V(t.params,e),g=V(t.search,e);return y=>ft(y.routes?.[a]??\"\",f(y),g(y))}if(\"test\"in t){let a=ot(t.test,e);return f=>a(f)}if(\"endpoint\"in t){let a=t.endpoint,f=V(t.input??{literal:null},e);return g=>ft(g.routes?.[a]??\"\",null,f(g))}let r=t,{path:s}=r;if(r.ref===\"binding\"){let a=r.depth;return s.length?f=>W(f.bindings?.[a],s):f=>f.bindings?.[a]??null}if(r.ref===\"dom\"){let[a,...f]=s;return g=>g.dom&&a?W(g.dom(a),f)??(a===\"formAll\"?[]:null):null}let o=r.ref;return s.length===0?a=>a[o]??null:a=>W(a[o],s)}var Z=t=>typeof t==\"number\"||typeof t==\"string\"?t:Number.NaN;function ot(t,e){switch(t.op){case\"and\":{let r=t.args.map(s=>ot(s,e));return s=>r.every(o=>o(s))}case\"or\":{let r=t.args.map(s=>ot(s,e));return s=>r.some(o=>o(s))}case\"not\":{let r=ot(t.arg,e);return s=>!r(s)}case\"fn\":{let r=V({fn:t.fn,arg:t.arg},e);return s=>r(s)===!0}default:{let r=V(t.left,e),s=V(t.right,e);switch(t.op){case\"eq\":return o=>L(r(o),s(o));case\"neq\":return o=>!L(r(o),s(o));case\"lt\":return o=>Z(r(o))<Z(s(o));case\"lte\":return o=>Z(r(o))<=Z(s(o));case\"gt\":return o=>Z(r(o))>Z(s(o));default:return o=>Z(r(o))>=Z(s(o))}}}}function Ut(t,e){let{path:r}=t,s=V(t.value,e);switch(t.op){case\"set\":return(o,a)=>P(o,r,s({...a,context:o}));case\"append\":return(o,a)=>{let f=W(o,r);return P(o,r,[...Array.isArray(f)?f:[],s({...a,context:o})])};case\"inc\":return(o,a)=>P(o,r,Number(W(o,r)??0)+Number(s({...a,context:o})));case\"removeWhere\":{let o=t.key;return(a,f)=>{let g=W(a,r),y=s({...f,context:a}),O=Array.isArray(g)?g:[];return P(a,r,O.filter(h=>!L(o===null?h:h!==null&&typeof h==\"object\"&&!Array.isArray(h)?h[o]:null,y)))}}}}var qt=(t,e)=>r=>t({...r,routes:e});function gt(t,e={},r={}){let s=t.machine;if(!s)throw new et(`Feature ${t.id} has no machine`);let o=Object.keys(s.states),a=new Map(o.map((h,j)=>[h,j])),f=h=>{let j=a.get(h);if(j===void 0)throw new et(`Unknown state \"${h}\" in ${t.id}`);return j},g=[],y=(h,j)=>(g.push(j),{id:j,guard:h.guard?ot(h.guard,e):null,target:f(h.target),assign:h.assign.map(E=>Ut(E,e)),navigate:h.navigate?qt(V(h.navigate,e),r):null}),O=o.map(h=>{let j=s.states[h],E=new Map;for(let[A,$]of Object.entries(j.on))E.set(A,$.map((I,R)=>y(I,`${h}/on/${A}/${R}`)));let z=new Map;j.after.forEach((A,$)=>{let I=y(A.transition,`${h}/after/${$}`);z.set(A.ms,[...z.get(A.ms)??[],I])});let M=j.invoke;return{name:h,final:j.final,on:E,invoke:M&&{effect:M.effect,input:V(M.input,e),done:M.done.map((A,$)=>y(A,`${h}/invoke/done/${$}`)),failed:new Map(Object.entries(M.failed).map(([A,$])=>[A,$.map((I,R)=>y(I,`${h}/invoke/failed/${A}/${R}`))]))},after:z,timers:[...z.keys()].sort((A,$)=>A-$)}});return{feature:t.id,initial:f(s.initial),initialContext:s.initialContext,states:O,index:a,transitions:g}}function vt(t,e,r,s,o){let a=t.states[e];a.invoke&&o.push({type:\"invoke\",entry:s,effect:a.invoke.effect,input:a.invoke.input({context:r})});for(let f of a.timers)o.push({type:\"timer\",entry:s,ms:f})}function jt(t,e,r,s=1){let o=t.index.get(e);if(o===void 0)throw new Error(`Unknown state \"${e}\" in ${t.feature}`);let a=[];return vt(t,o,r,s,a),{snapshot:{state:e,context:r,entry:s},effects:a,taken:null}}var yt=t=>jt(t,t.states[t.initial].name,t.initialContext),nt=t=>({snapshot:t,effects:[],taken:null});function ut(t,e,r,s){if(!r)return nt(e);for(let o of r){if(o.guard&&!o.guard(s))continue;let a=e.context;for(let y of o.assign)a=y(a,s);let f=e.entry+1,g=o.navigate===null?[]:[{type:\"navigate\",url:String(o.navigate(s))}];return vt(t,o.target,a,f,g),{snapshot:{state:t.states[o.target].name,context:a,entry:f},effects:g,taken:o.id}}return nt(e)}function ht(t,e,r){let s=t.states[t.index.get(e.state)??-1];if(!s||s.final)return nt(e);let o=e.context;switch(r.type){case\"event\":return ut(t,e,s.on.get(r.event),{context:o,event:r.payload});case\"done\":return r.entry!==e.entry||!s.invoke?nt(e):ut(t,e,s.invoke.done,{context:o,result:r.result});case\"failed\":{if(r.entry!==e.entry||!s.invoke)return nt(e);let a=s.invoke.failed,f=a.has(r.error),g=f?r.data:{message:Wt(r.data,r.error)};return ut(t,e,a.get(f?r.error:\"Unexpected\"),{context:o,error:g})}case\"timer\":return r.entry!==e.entry?nt(e):ut(t,e,s.after.get(r.ms),{context:o})}}function Wt(t,e){return t!==null&&typeof t==\"object\"&&!Array.isArray(t)&&typeof t.message==\"string\"?t.message:e}function Nt(t,e){let r=Object.create(null),s=Object.create(null),o=(a,f)=>{let g=typeof f==\"string\"?f:f.name,y=s[a];y?y.push(g):(s[a]=[g],r[a]=g)};for(let[a,f]of t)o(a,f);return e&&o(...e),{first:r,all:s}}var pt=\"http://www.w3.org/2000/svg\",Dt=new Set([\"contenteditable\",\"draggable\",\"spellcheck\"]),G=t=>t==null?\"\":typeof t==\"object\"?JSON.stringify(t):String(t);function $t(t,e){return e==null?null:typeof e==\"boolean\"?t.startsWith(\"aria-\")||t.startsWith(\"data-\")||Dt.has(t)?String(e):e?\"\":null:G(e)}var At=new Set([\"value\",\"checked\",\"selected\",\"muted\"]),xt=new Set([\"scroll\",\"wheel\",\"touchstart\",\"touchmove\",\"touchend\",\"pointermove\",\"mousemove\"]),Ot=t=>typeof t==\"number\"&&!Number.isNaN(t)?t:null,it=new Map,Ft=t=>t?[...t].map(e=>{let r=`u${it.size+1}`;return it.set(r,e),{name:e.name,size:e.size,type:e.type,token:r}}):[],wt=t=>e=>{let r=t.target;switch(e){case\"value\":return typeof r?.value==\"string\"?r.value:\"\";case\"checked\":return r?.checked===!0;case\"valueAsNumber\":return Ot(r?.valueAsNumber);case\"files\":return Ft(r?.files??t.dataTransfer?.files);case\"form\":case\"formAll\":{let s=t.target,o=s.ownerDocument.defaultView,a=Nt(new(o?.FormData??FormData)(s,t.submitter));return e===\"form\"?a.first:a.all}case\"open\":return r?.open===!0;case\"returnValue\":return typeof r?.returnValue==\"string\"?r.returnValue:\"\";default:{let s=e in t?t[e]:r?.[e];return typeof s==\"number\"?Ot(s):typeof s==\"string\"||typeof s==\"boolean\"?s:null}}},_t=(t,e)=>t?e.length?`${t} ${e.join(\" \")}`:t:e.join(\" \");var Tt=JSON.stringify;function mt(t){if(t===null)return\"null\";switch(typeof t){case\"string\":return Tt(t);case\"boolean\":return t?\"true\":\"false\";case\"number\":if(!Number.isFinite(t))throw new TypeError(`Non-finite number ${t} is not valid JSON`);return Object.is(t,-0)?\"0\":String(t);case\"object\":{if(Array.isArray(t))return`[${t.map(mt).join(\",\")}]`;let e=t,r=Object.keys(e).sort(),s=\"{\";for(let o=0;o<r.length;o++){let a=r[o],f=e[a];if(f===void 0)throw new TypeError(`Undefined value at key \"${a}\"`);s+=`${o?\",\":\"\"}${Tt(a)}:${mt(f)}`}return`${s}}`}default:throw new TypeError(`Value of type ${typeof t} is not valid JSON`)}}var kt=t=>{switch(t.op){case\"and\":case\"or\":return t.args.some(kt);case\"not\":return kt(t.arg);case\"fn\":return Q(t.arg);default:return Q(t.left)||Q(t.right)}},Q=t=>\"ref\"in t?t.ref===\"context\"||t.ref===\"binding\":\"object\"in t?Object.values(t.object).some(Q):\"fn\"in t?Q(t.arg):\"test\"in t&&kt(t.test),Et=(t,e)=>t+mt(e),zt=t=>t instanceof Map?{data:t,versions:new Map}:t;var rt=(t,e)=>t!==null&&t.nodeType===8&&t.data===e;function K(t,e){let r=[t],s=t;for(;s!==e&&(s=s.nextSibling,!!s);)r.push(s);return r}function bt(t,e){let r=t.next?t.next.previousSibling:t.parent.lastChild;return e(),[r?r.nextSibling:t.parent.firstChild,t.next?t.next.previousSibling:t.parent.lastChild]}function Ct(t,e){for(;t.nextSibling&&t.nextSibling!==e;)t.nextSibling.remove()}function Mt(t,e){let{machine:r,fns:s={},params:o=null,search:a=null,routes:f={}}=e,{data:g}=zt(e.payload),y=[],O=new Set,h=r?e.snapshot?null:yt(r):null,j=e.snapshot??h?.snapshot??null,E=[],z=new Set,M=new Set,A=new WeakMap,$=(n,l,i)=>{let x=A.get(n);return x||(x=V(n,s),A.set(n,x)),x({context:j?.context??null,bindings:l,params:o,search:a,routes:f,...i?{dom:i}:{}})},I=(n,l,i,x)=>{let w=$(l,i);x(w),Q(l)&&n.push(()=>{let p=$(l,i);p!==w&&(w=p,x(p))})},R=(n,l)=>{if(n.claim&&rt(n.next,l)){let i=n.next;return n.next=i.nextSibling,i}return n.parent.insertBefore(t.createComment(l),n.next)},X=n=>{if(!n.claim||!rt(n.next,\"[\"))return;let l=0;for(;n.next;){let i=n.next;if(n.next=i.nextSibling,rt(i,\"[\"))l++;else if(rt(i,\"]\")&&--l===0)return}},U=(n,l,i,x,w)=>{switch(n.kind){case\"text\":{let p;i.claim&&i.next?.nodeType===3?(p=i.next,i.next=p.nextSibling):p=i.parent.insertBefore(t.createTextNode(\"\"),i.next),i.claim&&rt(i.next,\"\")&&(i.next=i.next.nextSibling),I(x,n.value,l,d=>{let c=G(d);p.data!==c&&(p.data=c)});return}case\"el\":{let p=n.tag,d=p===\"svg\"?pt:w,c,u=i.claim&&i.next?.nodeType===1&&i.next.localName===p;u?(c=i.next,i.next=c.nextSibling):(c=d?t.createElementNS(d,p):t.createElement(p),n.class&&c.setAttribute(\"class\",n.class),i.parent.insertBefore(c,i.next));for(let m in n.attrs){let k=n.attrs[m],q=At.has(m)&&m in c;u&&!Q(k)||I(x,k,l,D=>{if(q){let F=c,lt=m===\"value\"?G(D):D===!0;F[m]!==lt&&(F[m]=lt);return}let H=$t(m,D);H===null?c.removeAttribute(m):c.getAttribute(m)!==H&&c.setAttribute(m,H)})}at(c,n,l,x);for(let m in n.on){let k=n.on[m];c.addEventListener(m,q=>{m===\"submit\"&&q.preventDefault(),B({type:\"event\",event:k.event,payload:$(k.payload,l,wt(q))})},xt.has(m)?{passive:!0}:void 0)}if(p===\"textarea\")return;let b={parent:c,next:u?c.firstChild:null,claim:u},N=p===\"foreignObject\"?null:d;for(let m of n.children)U(m,l,b,x,N);return}case\"when\":{let p=()=>j?n.states.includes(j.state):!1;C(i,x,p,(d,c)=>{if(p())for(let u of n.children)U(u,l,d,c,w)},n.motion);return}case\"query\":{let p=l;C(i,x,()=>{let c=Et(n.query,$(n.input,l)),u=g.get(c);return u&&p!==l&&p.splice(0,p.length,...l,u.ok?u.value:u.data),`${c}|${u?u.ok?\"ready\":n.failed[u.error]?u.error:\"Unexpected\":\"\"}`},(c,u)=>{let b=$(n.input,l),N=Et(n.query,b),m=g.get(N);if(p=l,!m){c.claim||st(N,n.query,b),n.pending&&U(n.pending,l,c,u,w);return}let k=m.ok?n.ready:n.failed[m.error]??n.failed.Unexpected;p=[...l,m.ok?m.value:m.data],k&&U(k,p,c,u,w)});return}case\"each\":_(n,l,i,x,w);return;case\"widget\":St(n,l,i,x);return;case\"if\":{let p=()=>$({test:n.test},l)===!0;C(i,x,p,(d,c)=>{let u=p()?n.ifTrue:n.ifFalse;for(let b of u)U(b,l,d,c,w)},n.motion);return}case\"html\":{let p=R(i,\"[\"),d;if(i.claim){for(;i.next&&!rt(i.next,\"]\");)i.next=i.next.nextSibling;d=i.next??i.parent.appendChild(t.createComment(\"]\")),i.next=d.nextSibling}else d=R(i,\"]\");let c=i.claim?G($(n.value,l)):null;I(x,n.value,l,u=>{let b=G(u);if(b===c)return;c=b,Ct(p,d);let N=t.createElement(\"template\");N.innerHTML=b,d.parentNode.insertBefore(N.content,d)});return}case\"global\":{let p=R(i,\"g\"),d=n.target===\"window\"?t.defaultView:t,c=[];for(let u in n.on){let b=n.on[u],N=k=>B({type:\"event\",event:b.event,payload:$(b.payload,l,wt(k))}),m=xt.has(u)?{passive:!0}:void 0;d.addEventListener(u,N,m),c.push(()=>d.removeEventListener(u,N))}M.add({el:p,stop:()=>c.forEach(u=>u())});return}default:X(i)}},at=(n,l,i,x)=>{let w=Object.entries(l.toggle);if(w.length){let p=()=>{let c=[];for(let[u,b]of w)$(b,i)===!0&&c.push(u);return _t(l.class,c)},d=p();n.getAttribute(\"class\")!==d&&n.setAttribute(\"class\",d),w.some(([,c])=>Q(c))&&x.push(()=>{let c=p();c!==d&&(d=c,n.setAttribute(\"class\",c))})}for(let p in l.vars)I(x,l.vars[p],i,d=>{let c=n.style;d===null||d===\"\"?c.removeProperty(p):c.getPropertyValue(p)!==G(d)&&c.setProperty(p,G(d))})},St=(n,l,i,x)=>{let w=e.widgets?.[n.widget],p=w?.tag??\"div\",d,c=i.claim&&i.next?.nodeType===1&&i.next.localName===p;if(c?(d=i.next,i.next=d.nextSibling):(d=t.createElement(p),n.class&&d.setAttribute(\"class\",n.class),i.parent.insertBefore(d,i.next)),at(d,n,l,x),!c||w?.wraps){let u={parent:d,next:c?d.firstChild:null,claim:c};for(let b of n.children)U(b,l,u,x,null)}w||console.error(`Hozu: widget ${n.widget} has no client code (bundleWidgets)`),!(!w||!e.loadWidget||!e.mountWidget)&&e.mountWidget({el:d,ref:w,name:n.widget,doc:t,props:()=>$(n.props,l),emit:(u,b)=>{let N=n.on[u];N&&B({type:\"event\",event:N.event,payload:$(N.payload,l,m=>m===\"detail\"?b:null)})},load:e.loadWidget,watch:u=>x.push(u),own:u=>M.add({el:d,stop:u}),same:L})},Y=new Set,st=(n,l,i)=>{!e.onQuery||Y.has(n)||(Y.add(n),e.onQuery(l,i).then(x=>{Y.delete(n),g.set(n,x);for(let w of E)w();S()}))},S=()=>{for(let n=E.length-1;n>=0;n--)z.delete(E[n])&&E.splice(n,1);for(let n of M)n.el.isConnected||(n.stop(),M.delete(n))},C=(n,l,i,x,w=null)=>{let p=R(n,\"[\"),d=i(),c=[];x(n,c);let u=R(n,\"]\");l.push(()=>{let b=i();if(b===d){for(let q of c)q();return}d=b,c=[];let N=e.motion;if(!w||!N||N.reduced(t)){Ct(p,u),x({parent:u.parentNode,next:u,claim:!1},c);return}N.leave(p.nextSibling===u?[]:K(p.nextSibling,u.previousSibling),w);let[m,k]=bt({parent:u.parentNode,next:u,claim:!1},()=>x({parent:u.parentNode,next:u,claim:!1},c));m&&k&&m!==u&&N.enter(K(m,k),w)})},_=(n,l,i,x,w)=>{let p=R(i,\"[\"),d=m=>{let k=n.key===null?m:W(m,[n.key]);return typeof k==\"string\"?`s${k}`:JSON.stringify(k)},c=()=>{let m=$(n.source,l);return Array.isArray(m)?m:[]},u=(m,k)=>{let q=[...l,m],D=[],[H,F]=bt(k,()=>U(n.item,q,k,D,w));return{key:d(m),value:m,scope:q,block:D,first:H,last:F}},b=c().map(m=>u(m,i)),N=R(i,\"]\");x.push(()=>{let m=e.motion,k=n.motion&&m&&!m.reduced(t)?n.motion:null,q=k?new Map(b.flatMap(v=>v.first.nodeType===1?[[v,v.first.getBoundingClientRect()]]:[])):null,D=new Map(b.map(v=>[v.key,v])),H=new Set,F=[];for(let v of c()){let J=d(v),tt=D.get(J);if(tt){D.delete(J),tt.value=v,tt.scope.splice(0,tt.scope.length,...l,v);for(let ct of tt.block)ct();F.push(tt)}else{let ct=u(v,{parent:t.createDocumentFragment(),next:null,claim:!1});H.add(ct),F.push(ct)}}for(let v of D.values())if(k)m.leave(K(v.first,v.last),k);else for(let J of K(v.first,v.last))J.remove();let lt=N.parentNode,dt=p.nextSibling??N;for(let v of F)if(v.first===dt)dt=v.last.nextSibling??N;else for(let J of K(v.first,v.last))lt.insertBefore(J,dt);if(b=F,!!k)for(let v of F)if(H.has(v))m.enter(K(v.first,v.last),k);else{let J=q?.get(v);J&&m.flip(v.first,J,k)}})},T=n=>{for(let l of n.effects)if(l.type===\"navigate\")e.onNavigate?.(l.url);else if(l.type===\"timer\"){let i=setTimeout(()=>{O.delete(i),B({type:\"timer\",entry:l.entry,ms:l.ms})},l.ms);O.add(i)}else e.onInvoke?.(l.effect,l.input).then(i=>B(i.ok?{type:\"done\",entry:l.entry,result:i.value}:{type:\"failed\",entry:l.entry,error:i.error,data:i.data}))};function B(n){if(!r||!j)return;let l=ht(r,j,n);if(l.taken){j=l.snapshot;for(let i of E)i();S(),T(l)}}return{attach(n,l,i,x,w){let p={parent:n,next:l,claim:w},d=n.namespaceURI===pt?pt:null,c=[],[u,b]=bt(p,()=>U(i,x,p,c,d));u&&b&&y.push([u,b]);let N=u?.isConnected===!0,m=()=>{if(N&&!u.isConnected)z.add(m);else for(let k of c)k()};E.push(m)},start(){h&&T(h),h=null},sync:()=>{for(let n of E)n();S()},dispatch:B,snapshot:()=>j,destroy:()=>{for(let n of O)clearTimeout(n);O.clear();for(let n of M)n.stop();M.clear(),E.length=0;for(let[n,l]of y)for(let i of K(n,l))i.remove();y.length=0}}}var It=function(t,e){return typeof t==\"string\"&&/^\\.\\.?\\//.test(t)?t.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i,function(r,s,o,a,f){return s?e?\".jsx\":\".js\":o&&(!a||!f)?r:o+a+\".\"+f.toLowerCase()+\"js\"}):t},Bt=t=>t.islands.flatMap(([e,r,...s])=>{let o=t.ids[e],a=o.slice(0,o.indexOf(\".\"));return s.map(f=>({feature:a,node:o,scope:[...Array(r).fill(null),...f]}))}),Rt=t=>new URL(t,import.meta.url),Jt=async(t,e,r)=>{let s=JSON.stringify({effect:t,input:e,keys:r}),o=it.size?await(await import(\"./chunk-7HUHKEFT.js\")).encode(s,e,it):s;return await(await fetch(Rt(\"effect\"),{method:\"POST\",headers:typeof o==\"string\"?{\"content-type\":\"application/json\"}:{},body:o})).json()},Lt=async(t,e)=>await(await fetch(Rt(\"query\"),{method:\"POST\",headers:{\"content-type\":\"application/json\"},body:JSON.stringify({query:t,input:e})})).json(),Ht=async t=>(await import(It(t))).default,Pt=async t=>(await import(It(t))).fns;async function Vt(t,{transport:e=Jt,query:r=Lt,live:s,loadFns:o=Pt,loadWidget:a=Ht}={}){let f=new Map,g=t.getElementById(\"hozu-payload\");if(!g?.textContent)return f;let y=JSON.parse(g.textContent),O={data:new Map(y.data),versions:new Map},h=y.fns?await o(y.fns):{},{widgets:j,routes:E}=y,z=y.motion?await import(\"./chunk-HGZ7KQUC.js\"):void 0,M=Object.keys(j).length?(await import(\"./chunk-7P45Q5IA.js\")).mountWidget:void 0;y.visible&&import(\"./chunk-DRLGN2D4.js\").then(S=>S.watch(t));let A=new Map,$=(S,C)=>{let _=S+JSON.stringify(C),T=A.get(_);return T||(T=r(S,C).finally(()=>A.delete(_)),A.set(_,T)),T},I=Object.entries(y.live??{}),R=async S=>{if(X)return void U.push(...S);let C=I.filter(([,_])=>_.tags.some(T=>S.includes(T)));for(let[_,T]of C)O.data.set(_,await r(T.query,T.input));if(C.length)for(let _ of f.values())_.sync()},X=0,U=[],at=async(S,C)=>{X++;let{result:_,refreshed:T,session:B}=await e(S,C,[...O.data.keys()]).finally(()=>X--);B&&(O.data.clear(),U=[]);for(let[n,l]of T)O.data.set(n,l),O.versions.set(n,(O.versions.get(n)??0)+1);if(T.length||B)for(let n of f.values())n.sync();return!X&&U.length&&R(U.splice(0)),_},St=null;for(let[S,C]of Object.entries(y.features)){let _=y.snapshots?.[S];f.set(S,Mt(t,{machine:C?gt({id:S,machine:C},h,E):null,payload:O,params:y.params,search:y.search,..._?{snapshot:_}:{},fns:h,widgets:j,routes:E,motion:z,mountWidget:M,loadWidget:a,onQuery:$,onInvoke:at,onNavigate:T=>t.defaultView?.location.assign(T)}))}let Y=[],st=t.createTreeWalker(t.body??t,128);for(;st.nextNode();)st.currentNode.data===\"i\"&&Y.push(st.currentNode);Bt(y).forEach((S,C)=>{let _=Y[C],T=y.nodes[S.node];_?.parentNode&&T&&f.get(S.feature)?.attach(_.parentNode,_.nextSibling,T,S.scope,!0)});for(let S of f.values())S.sync();for(let S of f.values())S.start();return I.length&&(s??(await import(\"./chunk-627YWRJ6.js\")).liveStream(t))(R,I.flatMap(([,S])=>S.tags)),t.documentElement.setAttribute(\"data-hozu-ready\",\"\"),f}Vt(document);\n"}
|
package/dist/hydrate.d.ts
CHANGED
|
@@ -24,7 +24,6 @@ export interface PagePayload {
|
|
|
24
24
|
widgets: Record<string, WidgetRef>;
|
|
25
25
|
routes: Record<string, string>;
|
|
26
26
|
live: Record<string, LiveQuery>;
|
|
27
|
-
soft?: Record<string, string[]>;
|
|
28
27
|
}
|
|
29
28
|
export interface LiveQuery {
|
|
30
29
|
query: string;
|
|
@@ -34,6 +33,7 @@ export interface LiveQuery {
|
|
|
34
33
|
export interface EffectResponse {
|
|
35
34
|
result: Result;
|
|
36
35
|
refreshed: [string, Result][];
|
|
36
|
+
session?: true;
|
|
37
37
|
}
|
|
38
38
|
export type Transport = (effect: string, input: Json, keys: string[]) => Promise<EffectResponse>;
|
|
39
39
|
export declare const fetchTransport: Transport;
|
|
@@ -42,15 +42,9 @@ export declare const fetchQuery: QueryTransport;
|
|
|
42
42
|
export interface HydrateOptions {
|
|
43
43
|
transport?: Transport;
|
|
44
44
|
query?: QueryTransport;
|
|
45
|
-
live?: (onTags: (tags: string[]) => void) => void;
|
|
45
|
+
live?: (onTags: (tags: string[]) => void, tags: string[]) => void;
|
|
46
46
|
loadFns?: (url: string) => Promise<Record<string, never>>;
|
|
47
47
|
loadWidget?: (url: string) => Promise<WidgetSetup>;
|
|
48
48
|
}
|
|
49
|
-
export interface Session {
|
|
50
|
-
doc: Document;
|
|
51
|
-
apps: Map<string, App>;
|
|
52
|
-
mount(payload: PagePayload, markers: (Comment | undefined)[]): Promise<void>;
|
|
53
|
-
islands(payload: PagePayload): IslandRef[];
|
|
54
|
-
}
|
|
55
49
|
export declare function hydrate(doc: Document, { transport, query, live, loadFns, loadWidget, }?: HydrateOptions): Promise<Map<string, App>>;
|
|
56
50
|
//# sourceMappingURL=hydrate.d.ts.map
|
package/dist/hydrate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hydrate.d.ts","sourceRoot":"","sources":["../src/hydrate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACzE,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7D,OAAO,
|
|
1
|
+
{"version":3,"file":"hydrate.d.ts","sourceRoot":"","sources":["../src/hydrate.ts"],"names":[],"mappings":"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"}
|
package/dist/hydrate.js
CHANGED
|
@@ -8,7 +8,7 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
|
|
|
8
8
|
};
|
|
9
9
|
import { compileMachine } from '@hozu/machine';
|
|
10
10
|
import { uploads } from './dom.js';
|
|
11
|
-
import { createApp
|
|
11
|
+
import { createApp } from './mount.js';
|
|
12
12
|
const islandsOf = (payload) => payload.islands.flatMap(([n, lead, ...tails]) => {
|
|
13
13
|
const node = payload.ids[n];
|
|
14
14
|
const feature = node.slice(0, node.indexOf('.'));
|
|
@@ -40,12 +40,14 @@ export async function hydrate(doc, { transport = fetchTransport, query = fetchQu
|
|
|
40
40
|
const script = doc.getElementById('hozu-payload');
|
|
41
41
|
if (!script?.textContent)
|
|
42
42
|
return apps;
|
|
43
|
-
const
|
|
44
|
-
const
|
|
45
|
-
const
|
|
46
|
-
const routes =
|
|
47
|
-
const
|
|
48
|
-
const
|
|
43
|
+
const payload = JSON.parse(script.textContent);
|
|
44
|
+
const shared = { data: new Map(payload.data), versions: new Map() };
|
|
45
|
+
const fns = payload.fns ? await loadFns(payload.fns) : {};
|
|
46
|
+
const { widgets, routes } = payload;
|
|
47
|
+
const motion = payload.motion ? await import('./motion.js') : undefined;
|
|
48
|
+
const mountWidget = Object.keys(widgets).length ? (await import('./widget.js')).mountWidget : undefined;
|
|
49
|
+
if (payload.visible)
|
|
50
|
+
void import('./visible.js').then((m) => m.watch(doc));
|
|
49
51
|
const inflight = new Map();
|
|
50
52
|
const onQuery = (q, input) => {
|
|
51
53
|
const key = q + JSON.stringify(input);
|
|
@@ -56,108 +58,80 @@ export async function hydrate(doc, { transport = fetchTransport, query = fetchQu
|
|
|
56
58
|
}
|
|
57
59
|
return pending;
|
|
58
60
|
};
|
|
61
|
+
const liveKeys = Object.entries(payload.live ?? {});
|
|
62
|
+
const onTags = async (tags) => {
|
|
63
|
+
if (busy)
|
|
64
|
+
return void queued.push(...tags);
|
|
65
|
+
const stale = liveKeys.filter(([, l]) => l.tags.some((t) => tags.includes(t)));
|
|
66
|
+
for (const [key, l] of stale)
|
|
67
|
+
shared.data.set(key, await query(l.query, l.input));
|
|
68
|
+
if (stale.length)
|
|
69
|
+
for (const app of apps.values())
|
|
70
|
+
app.sync();
|
|
71
|
+
};
|
|
72
|
+
let busy = 0;
|
|
73
|
+
let queued = [];
|
|
59
74
|
const onInvoke = async (effect, input) => {
|
|
60
|
-
|
|
75
|
+
busy++;
|
|
76
|
+
const { result, refreshed, session } = await transport(effect, input, [...shared.data.keys()]).finally(() => busy--);
|
|
77
|
+
if (session) {
|
|
78
|
+
shared.data.clear();
|
|
79
|
+
queued = [];
|
|
80
|
+
}
|
|
61
81
|
for (const [key, value] of refreshed) {
|
|
62
82
|
shared.data.set(key, value);
|
|
63
83
|
shared.versions.set(key, (shared.versions.get(key) ?? 0) + 1);
|
|
64
84
|
}
|
|
65
|
-
if (refreshed.length)
|
|
85
|
+
if (refreshed.length || session)
|
|
66
86
|
for (const app of apps.values())
|
|
67
87
|
app.sync();
|
|
88
|
+
if (!busy && queued.length)
|
|
89
|
+
onTags(queued.splice(0));
|
|
68
90
|
return result;
|
|
69
91
|
};
|
|
70
92
|
const dev = globalThis.__HOZU_DEV__
|
|
71
93
|
? { restore: (await import('./dev.js')).restore(doc), machines: new Map() }
|
|
72
94
|
: null;
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}
|
|
95
|
-
const created = [];
|
|
96
|
-
for (const [id, machine] of Object.entries(payload.features)) {
|
|
97
|
-
if (apps.has(id))
|
|
98
|
-
continue;
|
|
99
|
-
const snapshot = (globalThis.__HOZU_DEV__ && dev?.restore(id, machine)) || payload.snapshots?.[id];
|
|
100
|
-
if (globalThis.__HOZU_DEV__)
|
|
101
|
-
dev?.machines.set(id, machine);
|
|
102
|
-
const app = createApp(doc, {
|
|
103
|
-
machine: machine ? compileMachine({ id, machine }, fns, routes) : null,
|
|
104
|
-
payload: shared,
|
|
105
|
-
params: payload.params,
|
|
106
|
-
search: payload.search,
|
|
107
|
-
...(snapshot ? { snapshot } : {}),
|
|
108
|
-
fns,
|
|
109
|
-
widgets,
|
|
110
|
-
routes,
|
|
111
|
-
get motion() {
|
|
112
|
-
return loaded.motion;
|
|
113
|
-
},
|
|
114
|
-
get mountWidget() {
|
|
115
|
-
return loaded.mountWidget;
|
|
116
|
-
},
|
|
117
|
-
loadWidget,
|
|
118
|
-
onQuery,
|
|
119
|
-
onInvoke,
|
|
120
|
-
onNavigate: (url) => doc.defaultView?.location.assign(url),
|
|
121
|
-
});
|
|
122
|
-
apps.set(id, app);
|
|
123
|
-
created.push(app);
|
|
124
|
-
}
|
|
125
|
-
islandsOf(payload).forEach((island, i) => {
|
|
126
|
-
const at = markers[i];
|
|
127
|
-
const node = payload.nodes[island.node];
|
|
128
|
-
if (at?.parentNode && node)
|
|
129
|
-
apps.get(island.feature)?.attach(at.parentNode, at.nextSibling, node, island.scope, true);
|
|
130
|
-
});
|
|
131
|
-
for (const app of apps.values())
|
|
132
|
-
app.sync();
|
|
133
|
-
for (const app of created)
|
|
134
|
-
app.start();
|
|
135
|
-
for (const [key, l] of Object.entries(payload.live ?? {}))
|
|
136
|
-
liveKeys.set(key, l);
|
|
137
|
-
if (liveKeys.size && !loaded.live) {
|
|
138
|
-
loaded.live = true;
|
|
139
|
-
(live ?? (await import('./live.js')).liveStream(doc))(async (tags) => {
|
|
140
|
-
const stale = [...liveKeys].filter(([, l]) => l.tags.some((t) => tags.includes(t)));
|
|
141
|
-
for (const [key, l] of stale)
|
|
142
|
-
shared.data.set(key, await query(l.query, l.input));
|
|
143
|
-
if (stale.length)
|
|
144
|
-
for (const app of apps.values())
|
|
145
|
-
app.sync();
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
},
|
|
149
|
-
};
|
|
150
|
-
const payload = JSON.parse(script.textContent);
|
|
95
|
+
for (const [id, machine] of Object.entries(payload.features)) {
|
|
96
|
+
const snapshot = (globalThis.__HOZU_DEV__ && dev?.restore(id, machine)) || payload.snapshots?.[id];
|
|
97
|
+
if (globalThis.__HOZU_DEV__)
|
|
98
|
+
dev?.machines.set(id, machine);
|
|
99
|
+
apps.set(id, createApp(doc, {
|
|
100
|
+
machine: machine ? compileMachine({ id, machine }, fns, routes) : null,
|
|
101
|
+
payload: shared,
|
|
102
|
+
params: payload.params,
|
|
103
|
+
search: payload.search,
|
|
104
|
+
...(snapshot ? { snapshot } : {}),
|
|
105
|
+
fns,
|
|
106
|
+
widgets,
|
|
107
|
+
routes,
|
|
108
|
+
motion,
|
|
109
|
+
mountWidget,
|
|
110
|
+
loadWidget,
|
|
111
|
+
onQuery,
|
|
112
|
+
onInvoke,
|
|
113
|
+
onNavigate: (url) => doc.defaultView?.location.assign(url),
|
|
114
|
+
}));
|
|
115
|
+
}
|
|
151
116
|
const markers = [];
|
|
152
117
|
const walker = doc.createTreeWalker(doc.body ?? doc, 128);
|
|
153
118
|
while (walker.nextNode())
|
|
154
119
|
if (walker.currentNode.data === 'i')
|
|
155
120
|
markers.push(walker.currentNode);
|
|
156
|
-
|
|
121
|
+
islandsOf(payload).forEach((island, i) => {
|
|
122
|
+
const at = markers[i];
|
|
123
|
+
const node = payload.nodes[island.node];
|
|
124
|
+
if (at?.parentNode && node)
|
|
125
|
+
apps.get(island.feature)?.attach(at.parentNode, at.nextSibling, node, island.scope, true);
|
|
126
|
+
});
|
|
127
|
+
for (const app of apps.values())
|
|
128
|
+
app.sync();
|
|
129
|
+
for (const app of apps.values())
|
|
130
|
+
app.start();
|
|
131
|
+
if (liveKeys.length)
|
|
132
|
+
(live ?? (await import('./live.js')).liveStream(doc))(onTags, liveKeys.flatMap(([, l]) => l.tags));
|
|
157
133
|
if (globalThis.__HOZU_DEV__ && dev)
|
|
158
134
|
(await import('./dev.js')).expose(doc, apps, dev.machines);
|
|
159
|
-
if (payload.soft)
|
|
160
|
-
void import('./navigate.js').then((m) => m.soft(session));
|
|
161
135
|
doc.documentElement.setAttribute('data-hozu-ready', '');
|
|
162
136
|
return apps;
|
|
163
137
|
}
|
package/dist/hydrate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hydrate.js","sourceRoot":"","sources":["../src/hydrate.ts"],"names":[],"mappings":";;;;;;;;AACA,OAAO,EAAE,cAAc,EAAiB,MAAM,eAAe,CAAA;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,
|
|
1
|
+
{"version":3,"file":"hydrate.js","sourceRoot":"","sources":["../src/hydrate.ts"],"names":[],"mappings":"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"}
|
package/dist/live.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const liveStream: (doc: Document) => (onTags: (tags: string[]) => void) => void;
|
|
1
|
+
export declare const liveStream: (doc: Document) => (onTags: (tags: string[]) => void, tags: string[]) => void;
|
|
2
2
|
//# sourceMappingURL=live.d.ts.map
|
package/dist/live.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,QAAS,QAAQ,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,
|
|
1
|
+
{"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,QAAS,QAAQ,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,QAAQ,MAAM,EAAE,SAM7F,CAAA"}
|
package/dist/live.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
export const liveStream = (doc) => (onTags) => {
|
|
1
|
+
export const liveStream = (doc) => (onTags, tags) => {
|
|
2
2
|
const Source = doc.defaultView?.EventSource;
|
|
3
3
|
if (!Source)
|
|
4
4
|
return;
|
|
5
|
-
|
|
5
|
+
const url = new URL('live', import.meta.url);
|
|
6
|
+
for (const t of new Set(tags))
|
|
7
|
+
url.searchParams.append('tag', t);
|
|
8
|
+
new Source(url).addEventListener('message', (e) => onTags(JSON.parse(e.data)));
|
|
6
9
|
};
|
|
7
10
|
//# sourceMappingURL=live.js.map
|
package/dist/live.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live.js","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAa,EAAE,EAAE,CAAC,CAAC,MAAgC,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"live.js","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAa,EAAE,EAAE,CAAC,CAAC,MAAgC,EAAE,IAAc,EAAE,EAAE;IAChG,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,EAAE,WAAW,CAAA;IAC3C,IAAI,CAAC,MAAM;QAAE,OAAM;IACnB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;IAC5C,KAAK,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC;QAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAChE,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAE,CAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAClG,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hozu/runtime-client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Hozu client runtime: fine-grained DOM islands, no virtual DOM, about 7.5 KB gzipped",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"hozu",
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"access": "public"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@hozu/core": "0.
|
|
50
|
-
"@hozu/machine": "0.
|
|
49
|
+
"@hozu/core": "0.8.0",
|
|
50
|
+
"@hozu/machine": "0.8.0"
|
|
51
51
|
},
|
|
52
52
|
"sideEffects": false
|
|
53
53
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var n=t=>r=>{let e=t.defaultView?.EventSource;e&&new e(new URL("live",import.meta.url)).addEventListener("message",a=>r(JSON.parse(a.data)))};export{n as liveStream};
|
package/dist/browser/navigate.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var b='title,meta[name=description],meta[name=robots],link[rel=canonical],meta[property],script[type="application/ld+json"]',S={"?":"(?:/[^/]+)?","+":"(?:/[^/]+)+","*":"(?:/[^/]+)*"},A=r=>{let n=0,t=r.split(/(\/:[A-Za-z]\w*[?*+]?)/).map((o,a)=>{if(a%2===0)return o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");let s=o.at(-1);return n+=s==="+"||s==="*"?1.01:1,S[s]??"/[^/]+"}).join("");return{pattern:new RegExp(`^${t.replace(/\/$/,"")}/?$`),keys:n}};function O(r,n){let t=null,o=1/0;for(let[a,s]of Object.entries(r)){let{pattern:i,keys:f}=A(s);f<o&&i.test(n)&&(t=a,o=f)}return t}function E(r){let n=[],t=(r.ownerDocument??r).createTreeWalker(r,128),o=null;for(;t.nextNode();){let a=t.currentNode;a.data==="i"?n.push({marker:a,view:o}):a.data.startsWith("v:")?o=a.data.slice(2):a.data==="/v"&&(o=null)}return n}function C(r,n,t,o){n.islands(t).forEach((a,s)=>{let i=o[s]?.view;if(!i)return;let f=r.views.get(i)??new Set;f.add(a.feature),r.views.set(i,f)}),r.soft=t.soft??{},Object.assign(r.routes,t.routes)}function k(r){let n=new Map,t=null;for(let o of[...r.childNodes])o.nodeType===8&&o.data.startsWith("v:")?(t=[o],n.set(o.data.slice(2),t)):t&&(t.push(o),o.nodeType===8&&o.data==="/v"&&(t=null));return n}async function z(r,n,t,o){let{doc:a,apps:s}=r,{views:i}=n,f=t.getElementById("hozu-payload"),y=k(t.body),c=k(a.body);if(!f?.textContent||o.some(e=>!y.has(e)||!c.has(e)))return!1;let p=JSON.parse(f.textContent),d=new Set(o),m=E(t.body),w=new Set;for(let e of d)for(let l of i.get(e)??[])w.add(l);r.islands(p).forEach((e,l)=>{let u=m[l]?.view;(u==null||!d.has(u))&&w.add(e.feature)});for(let[e,l]of s)w.has(e)||(l.destroy(),s.delete(e));for(let e of[...i.keys()])d.has(e)||i.delete(e);let v=a.getElementById("hozu-payload"),h=0,g=[...c.keys()].filter(e=>d.has(e));for(let[e,l]of y){if(d.has(e)){h++;continue}let u=g[h]?c.get(g[h])[0]:v;for(let x of l)a.body.insertBefore(x,u)}for(let[e,l]of c)if(!d.has(e))for(let u of l)u.remove();v&&(v.textContent=f.textContent);for(let e of a.head.querySelectorAll(b))e.remove();for(let e of t.head.querySelectorAll(b))a.head.append(e);return a.documentElement.lang=t.documentElement.lang,await r.mount(p,m.map(e=>e.view!==null&&d.has(e.view)?void 0:e.marker)),C(n,r,p,m),!0}function I(r){let{doc:n}=r,t=n.defaultView,o=n.getElementById("hozu-payload");if(!t?.navigation||!o?.textContent)return;let a={views:new Map,soft:{},routes:{}};C(a,r,JSON.parse(o.textContent),E(n.body));let s=null,i=!1,f=y=>{s||(s=n.createElement("div"),s.setAttribute("aria-live","polite"),s.style.cssText="position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap",n.body.append(s)),s.textContent=y};t.navigation.addEventListener("navigate",y=>{let c=y;if(i||!c.canIntercept||c.hashChange||c.downloadRequest!==null||c.formData||c.navigationType==="reload")return;let p=new URL(c.destination.url);if(p.origin!==t.location.origin)return;let d=O(a.routes,p.pathname),m=d?a.soft[d]:void 0;if(!m)return;let w=()=>{i=!0,t.location.replace(p.href)};c.intercept({handler:async()=>{let v=n.documentElement;v.setAttribute("data-hozu-navigating","");try{let h=await t.fetch(p.href,{headers:{accept:"text/html"}}),g=h.headers.get("content-type")??"";if(h.status!==200||h.redirected||!g.includes("text/html"))return w();let e=new t.DOMParser().parseFromString(await h.text(),"text/html"),l=!0,u=async()=>{l=await z(r,a,e,m)},x=n.startViewTransition;if(x?await x.call(n,u).updateCallbackDone:await u(),!l)return w();f(n.title)}catch{w()}finally{v.removeAttribute("data-hozu-navigating")}}})})}export{E as islandsIn,k as ranges,O as routeOf,I as soft,z as swap,C as track};
|