@weftui/dom 0.20.9 → 0.22.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.
@@ -0,0 +1 @@
1
+ import{Effect as e}from"effect";import{FAILURE_BOUNDARY as t,FRAGMENT as n,LIST as r,SERVER_BOUNDARY as i,SUSPENSE_BOUNDARY as a,getElementDescriptor as o,isStream as s}from"@weftui/core";function c(e){return` stream-start-${e} `}function l(e){return` stream-end-${e} `}function u(e){return` suspense-start-${e} `}function d(e){return` suspense-end-${e} `}const f=`data-weft-suspense-failure`,p=/^ suspense-(start|end)-(\d+) $/;function m(e){let t=p.exec(e.data);return t===null?null:{kind:t[1],id:Number.parseInt(t[2],10)}}function h(e){return` boundary-start-${e} `}function g(e){return` boundary-end-${e} `}const _=/^ stream-(start|end)-(\d+) $/;function v(e){let t=_.exec(e.data);return t===null?null:{kind:t[1],id:Number.parseInt(t[2],10)}}function y(e){return` list-item-start-${e} `}function b(e){return` list-item-end-${e} `}const x=/^ list-item-(start|end)-(\d+) $/;function S(e){let t=x.exec(e.data);return t===null?null:{kind:t[1],id:Number.parseInt(t[2],10)}}const C=`data-weft-boundary-failure`;function w(e){let t=[];return T(e,t),t}function T(t,n){if(!(t==null||typeof t==`boolean`)&&!(typeof t==`string`||typeof t==`number`||typeof t==`bigint`)){if(s(t)||e.isEffect(t)){let e=o(t);e!==void 0&&E(e,n);return}if(typeof t==`object`&&Symbol.iterator in t&&!(`type`in t)){for(let e of t)T(e,n);return}typeof t==`object`&&`type`in t&&!(Symbol.iterator in t)&&E(t,n)}}function E(e,o){let{type:s,props:c}=e;if(s===i){o.push(c);return}if(s===n||s===a||s===t){D(c,o);return}if(s!==r){if(typeof s==`string`){D(c,o);return}typeof s==`function`&&T(s(c),o)}}function D(e,t){let n=`children`in e?e.children:void 0;if(n==null)return;let r=Array.isArray(n)?n:[n];for(let e of r)T(e,t)}export{h as a,S as c,l as d,c as f,g as i,v as l,u as m,w as n,b as o,d as p,f as r,y as s,C as t,m as u};
@@ -1 +1 @@
1
- import{i as e,n as t,o as n,r,s as i,t as a}from"../data-Bk62ePeP.js";import{a as o,c as s,d as c,f as l,i as u,l as d,n as f,o as p,p as m,r as h,s as g,u as _}from"../boundary-replay-C9r9jASU.js";import{Cause as v,Deferred as y,Effect as b,ExecutionStrategy as x,Exit as S,Fiber as C,HashMap as w,HashSet as T,Layer as E,ManagedRuntime as ee,Option as D,Ref as O,Schema as te,Scope as k,Stream as A,SubscriptionRef as j,pipe as M}from"effect";import{AppRpcClientTag as ne,FAILURE_BOUNDARY as re,FRAGMENT as ie,LIST as ae,SERVER_BOUNDARY as oe,SUSPENSE_BOUNDARY as se,Source as ce,getElementDescriptor as N,isStream as P,toStream as F}from"@weftui/core";function I(){return b.gen(function*(){let e=yield*r;return++e.streamIdCounter.current})}const le=I;let ue=0;const de=()=>++ue;function fe(e){if(e.length<=2||!e.startsWith(`on`))return!1;let t=e[2];return t!==void 0&&t>=`a`&&t<=`z`}function L(e,t){return b.gen(function*(){for(let[n,r]of Object.entries(t))if(n!==`children`){if(fe(n)){yield*ye(e,n,r);continue}if(n===`ref`&&typeof r==`object`&&O.RefTypeId in r){yield*O.set(r,D.some(e));continue}if(n===`style`){yield*_e(e,r);continue}pe(e,n)?yield*me(e,n,r):yield*he(e,n,r)}})}function pe(e,t){if(t.startsWith(`data-`)||t.startsWith(`aria-`))return!1;let n=Object.getPrototypeOf(e);for(;n!==null;){if(Object.hasOwn(n,t))return!0;n=Object.getPrototypeOf(n)}return t in e}function me(e,t,n){return b.gen(function*(){P(n)||b.isEffect(n)?yield*z(F(n),n=>{n==null?delete e[t]:e[t]=n},`property:${t}`):n!=null&&(e[t]=n)})}function he(e,t,n){return b.gen(function*(){if(P(n)||b.isEffect(n))yield*z(F(n),n=>{if(n==null)e.removeAttribute(t);else{let r=ge(n);r!==void 0&&(typeof n==`boolean`?n?e.setAttribute(t,``):e.removeAttribute(t):e.setAttribute(t,r))}},`attribute:${t}`);else{let r=ge(n);r!==void 0&&(typeof n==`boolean`?n?e.setAttribute(t,``):e.removeAttribute(t):e.setAttribute(t,r))}})}function ge(e){if(e!=null)return String(e)}function _e(e,t){return b.gen(function*(){if(P(t)||b.isEffect(t)){yield*z(F(t),t=>{if(typeof t==`string`)e.setAttribute(`style`,t);else if(typeof t==`object`&&t){e.style.cssText=``;for(let[n,r]of Object.entries(t))r!=null&&e.style.setProperty(R(n),String(r))}},`style`);return}if(typeof t==`string`){e.setAttribute(`style`,t);return}typeof t==`object`&&t&&(yield*ve(e,t))})}function ve(e,t){return b.gen(function*(){for(let[n,r]of Object.entries(t))P(r)||b.isEffect(r)?yield*z(F(r),t=>{t!=null&&e.style.setProperty(R(n),String(t))},`style.${n}`):r!=null&&e.style.setProperty(R(n),String(r))})}function R(e){return e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}function z(e,t,n){return b.gen(function*(){let n=yield*r,i=yield*b.serviceOption(a),o=A.runForEach(e,e=>b.sync(()=>void t(e))),s=yield*b.forkIn(o,n.scope);yield*M(C.await(s),b.flatMap(e=>S.isFailure(e)&&D.isSome(i)?i.value.reportError(e.cause):b.void),b.forkIn(n.scope))})}function ye(e,t,n){return b.gen(function*(){let i=yield*r,a=t.slice(2).toLowerCase(),o=null,s=()=>{o&&=(e.removeEventListener(a,o),null)},c=n=>{s(),!(n==null||n===!1)&&typeof n==`function`&&(o=e=>{let r=n(e);b.isEffect(r)&&i.runtime.runFork(M(r,b.catchAll(e=>process.env.NODE_ENV===`development`?b.logError(`Event handler error: ${t}`,{error:e}):b.void)))},e.addEventListener(a,o))};yield*k.addFinalizer(i.scope,b.sync(s)),P(n)||b.isEffect(n)?yield*z(F(n),e=>c(e),`event:${t}`):c(n)})}function be(e){return b.gen(function*(){let t=yield*r,n=yield*b.serviceOption(a),i=de(),o=document.createComment(u(i)),s=document.createComment(h(i)),c=yield*k.fork(t.scope,x.sequential),l={...t,scope:c},d=yield*y.make(),f=yield*M(V(e.children),b.provideService(a,{reportError:e=>y.fail(d,e).pipe(b.asVoid)}),b.provideService(r,l),b.provideService(k.Scope,c),b.catchAllCause(t=>{let n=e.match(t);return n===null?b.failCause(t):M(k.close(c,S.void),b.flatMap(()=>B(n)),b.map(e=>e===null?[]:Array.isArray(e)?e:[e]))})),p=b.gen(function*(){let t=yield*y.await(d).pipe(b.flip),r=e.match(t);if(yield*k.close(c,S.void),r===null)return D.isSome(n)?yield*n.value.reportError(t):yield*b.logError(`Unhandled error escaped the outermost Boundary`,t);K(o,s);let i=yield*B(r),a=s.parentNode;if(a!==null&&i!==null)if(Array.isArray(i))for(let e of i)a.insertBefore(e,s);else a.insertBefore(i,s)});return yield*b.forkIn(p,t.scope),[o,...f,s]})}function xe(e){return b.gen(function*(){let t=yield*r,i=yield*O.make(1),a=yield*y.make(),o=M(O.updateAndGet(i,e=>e-1),b.flatMap(e=>e<=0?b.asVoid(y.succeed(a,void 0)):b.void)),s={register:O.update(i,e=>e+1),settle:o},c=e.children,u=yield*B((c===void 0?[]:Array.isArray(c)?c:[c]).map(e=>b.isEffect(e)||P(e)?{type:()=>e,props:{}}:e)).pipe(b.provideService(n,s)),d=u===null?[]:Array.isArray(u)?u:[u];yield*o;let f=yield*y.poll(a);if(D.isSome(f))return d;let p=yield*le(),h=document.createComment(m(p)),g=document.createComment(l(p)),_=yield*B(e.fallback??null),v=[];_!==null&&(Array.isArray(_)?v.push(..._):v.push(_));let x=document.createDocumentFragment();for(let e of d)x.appendChild(e);let S=b.gen(function*(){yield*y.await(a),K(h,g);let e=g.parentNode;e!==null&&(e.insertBefore(x,g),h.remove(),g.remove())});return yield*b.forkIn(S,t.scope),[h,...v,g]})}function Se(t){return b.gen(function*(){let n=yield*r,i=yield*b.serviceOption(ne);if(D.isNone(i))return yield*b.fail(new e({cause:void 0,message:`Boundary.rpc "${t.tag}" was mounted client-first without an AppRpcClient in context. Mount the app under @weftui/router (RouterLive), which provides the rpc client, so the boundary can resolve its data.`}));let a=i.value,o=de(),s=document.createComment(u(o)),c=document.createComment(h(o)),l=yield*B(t.fallback??null),d=[];l!==null&&(Array.isArray(l)?d.push(...l):d.push(l));let f=b.gen(function*(){let e=yield*a.call(t.tag,t.payload()),n=yield*Ke(t.tag,t.payload,e,i),r=yield*B(t.render(n));K(s,c);let o=c.parentNode;if(o!==null&&r!==null)if(Array.isArray(r))for(let e of r)o.insertBefore(e,c);else o.insertBefore(r,c)}).pipe(b.catchAllCause(e=>b.logError(`[weft] Boundary.rpc "${t.tag}" mount failed to resolve; fallback left in place.`,e)));return yield*b.forkIn(f,n.scope),[s,...d,c]})}function B(e){return b.gen(function*(){if(typeof e==`string`||typeof e==`number`||typeof e==`bigint`)return document.createTextNode(String(e));if(typeof e==`boolean`||e==null)return null;if(P(e)||b.isEffect(e)){let t=N(e);if(t!==void 0)return yield*B(t);if(b.isEffect(e)){let t=b.runSyncExit(e);if(S.isSuccess(t))return yield*B(t.value)}return yield*H(F(e))}if(typeof e==`object`&&Symbol.iterator in e&&!(`type`in e))return yield*V(Ce(e));if(typeof e==`object`&&`type`in e&&!(Symbol.iterator in e)){let{type:t,props:n}=e;return t===ie?yield*we(n):t===se?yield*xe(n):t===oe?yield*Se(n):t===re?yield*be(n):t===ae?yield*je(n):typeof t==`string`?yield*Te(t,n):typeof t==`function`?yield*Ee(t,n):yield*b.fail(new i({type:t,message:`Invalid Renderable type: expected string, FRAGMENT, or function, got ${typeof t}`}))}return null})}function Ce(e){let t=[];function n(e){if(P(e)||b.isEffect(e)){t.push(e);return}if(typeof e==`object`&&e&&Symbol.iterator in e&&!(`type`in e))for(let t of e)n(t);else t.push(e)}return n(e),t}function V(e){return b.gen(function*(){let t=[];for(let n of e)if(P(n)||b.isEffect(n)){let e=yield*H(F(n));t.push(...e)}else{let e=yield*B(n);e!==null&&(Array.isArray(e)?t.push(...e):t.push(e))}return t})}function we(e){return b.gen(function*(){let t=`children`in e?e.children:void 0;return t===void 0?[]:yield*V(Array.isArray(t)?t:[t])})}function Te(e,t){return b.gen(function*(){let n=document.createElement(e);yield*L(n,t);let r=`children`in t?t.children:void 0;if(r!==void 0){let e=Array.isArray(r)?r:[r];for(let t of e)if(P(t)||b.isEffect(t)){let e=yield*H(F(t));for(let t of e)n.appendChild(t)}else{let e=yield*B(t);if(e!==null)if(Array.isArray(e))for(let t of e)n.appendChild(t);else n.appendChild(e)}}return n})}function Ee(e,t){return b.gen(function*(){let i=e(t);if(P(i)||b.isEffect(i)){let e=yield*r,t=yield*k.fork(e.scope,x.sequential),a={...e,scope:t},o=yield*b.serviceOption(n),s=F(i);return D.isSome(o)&&(yield*o.value.register,s=M(s,A.zipWithIndex,A.flatMap(([e,t])=>t===0?A.fromEffect(b.as(o.value.settle,e)):A.make(e)))),yield*H(s).pipe(b.provideService(r,a),b.provideService(k.Scope,t))}return yield*B(i)})}function H(e){return b.gen(function*(){let t=yield*r,[n,i]=De(yield*I()),o=null,s=A.runForEach(e,e=>b.gen(function*(){o!==null&&(yield*k.close(o,S.void)),o=yield*k.fork(t.scope,x.sequential);let a={...t,scope:o};yield*U(n,i,e).pipe(b.provideService(r,a),b.provideService(k.Scope,o))})),c=yield*b.forkIn(s,t.scope),l=yield*b.serviceOption(a);return yield*M(C.await(c),b.flatMap(e=>S.isFailure(e)&&D.isSome(l)?l.value.reportError(e.cause):b.void),b.forkIn(t.scope)),[n,i]})}function De(e){return[document.createComment(c(e)),document.createComment(_(e))]}function U(e,t,n){return b.gen(function*(){let r=e.nextSibling,i=r!==null&&r!==t&&r.nextSibling===t;if(i&&r.nodeType===$e&&W(n)){let e=String(n);r.data!==e&&(r.data=e);return}if(i&&r.nodeType===X){let e=G(n);if(e!==void 0&&typeof e.type==`string`&&r.tagName.toLowerCase()===e.type.toLowerCase()){yield*Oe(r,e);return}}K(e,t);let a=yield*B(n),o=e.parentNode;if(o!==null&&a!==null)if(Array.isArray(a))for(let e of a)o.insertBefore(e,t);else o.insertBefore(a,t)})}function W(e){return typeof e==`string`||typeof e==`number`||typeof e==`bigint`}function G(e){let t=N(e);if(t!==void 0)return t;if(typeof e==`object`&&e&&`type`in e&&!(Symbol.iterator in e)&&!P(e)&&!b.isEffect(e))return e}function Oe(e,t){return b.gen(function*(){yield*L(e,t.props);let n=t.props.children,r=n===void 0?[]:Array.isArray(n)?n:[n];if(!(yield*ke(e,r))){for(;e.firstChild!==null;)e.firstChild.remove();yield*Ae(e,r)}})}function ke(e,t){return b.gen(function*(){let n=Array.from(e.childNodes);if(n.length!==t.length)return!1;for(let e=0;e<t.length;e++){let r=t[e],i=n[e];if(W(r)){if(i.nodeType!==$e)return!1}else{let e=G(r);if(e===void 0||typeof e.type!=`string`||i.nodeType!==X||i.tagName.toLowerCase()!==e.type.toLowerCase())return!1}}for(let e=0;e<t.length;e++){let r=t[e],i=n[e];if(W(r)){let e=String(r);i.data!==e&&(i.data=e)}else yield*Oe(i,G(r))}return!0})}function Ae(e,t){return b.gen(function*(){for(let n of t)if(P(n)||b.isEffect(n)){let t=yield*H(F(n));for(let n of t)e.appendChild(n)}else{let t=yield*B(n);if(t!==null)if(Array.isArray(t))for(let n of t)e.appendChild(n);else e.appendChild(t)}})}function K(e,t){let n=e.nextSibling;for(;n!==null&&n!==t;){let e=n.nextSibling;n.remove(),n=e}}function je(e){return b.gen(function*(){let t=yield*r,{of:n,by:i,render:o}=e,[s,c]=De(yield*I()),l=yield*k.fork(t.scope,x.sequential),u=(yield*ce.toSubscribable(n).pipe(b.provideService(k.Scope,l))).changes,d={records:w.empty(),order:[]},f=A.runForEach(u,e=>b.gen(function*(){d=yield*q(Array.from(e),i,o,d,l,c,t)})),p=yield*b.forkIn(f,l),m=yield*b.serviceOption(a);return yield*M(C.await(p),b.flatMap(e=>S.isFailure(e)&&D.isSome(m)?m.value.reportError(e.cause):b.void),b.forkIn(t.scope)),[s,c]})}function Me(t,n){return b.gen(function*(){let r=[],i=T.empty();for(let a=0;a<t.length;a++){let o=n===void 0?t[a]:n(t[a],a);if(T.has(i,o))return yield*b.fail(new e({cause:o,message:`List.each: duplicate key ${Ie(o)} in a single emission; keys must be unique (set a stable \`by\`).`}));i=T.add(i,o),r.push(o)}return r})}function q(e,t,n,r,i,a,o){return b.gen(function*(){let s=yield*Me(e,t),c=w.empty();r.order.forEach((e,t)=>{c=w.set(c,e,t)});let l=[],u=[];for(let t=0;t<e.length;t++){let a=s[t],d=w.get(r.records,a);if(D.isSome(d))l.push(d.value),u.push(D.getOrElse(w.get(c,a),()=>-1));else{let r=yield*Ne(a,e[t],t,n,i,o);l.push(r),u.push(-1)}}let d=T.empty();for(let e of s)d=T.add(d,e);for(let e of r.order)if(!T.has(d,e)){let t=w.get(r.records,e);D.isSome(t)&&(yield*k.close(t.value.scope,S.void),Fe(t.value.startMarker,t.value.endMarker))}let f=Le(u),p=a.parentNode;if(p!==null)for(let e=l.length-1;e>=0;e--){let t=l[e];if(u[e]!==-1&&f.has(e))continue;let n=e+1<l.length?l[e+1].startMarker:a,r=u[e]===-1?[t.startMarker,...t.nodes,t.endMarker]:Pe(t.startMarker,t.endMarker);for(let e of r)p.insertBefore(e,n)}let m=w.empty();for(let e of l)m=w.set(m,e.key,e);return{records:m,order:s}})}function Ne(e,t,n,i,a,s){return b.gen(function*(){let c=yield*k.fork(a,x.sequential),l={...s,scope:c},u=yield*I(),d=document.createComment(p(u)),f=document.createComment(o(u)),m=yield*B(i(t,n)).pipe(b.provideService(r,l),b.provideService(k.Scope,c));return{key:e,scope:c,startMarker:d,endMarker:f,nodes:m===null?[]:Array.isArray(m)?m:[m]}})}function Pe(e,t){let n=[],r=e;for(;r!==null&&(n.push(r),r!==t);)r=r.nextSibling;return n}function Fe(e,t){let n=e;for(;n!==null;){let e=n.nextSibling;if(n.remove(),n===t)break;n=e}}function Ie(e){if(typeof e==`string`)return JSON.stringify(e);if(typeof e==`object`&&e)try{return JSON.stringify(e)}catch{return Object.prototype.toString.call(e)}return String(e)}function Le(e){let t=e.length,n=[],r=Array.from({length:t},()=>-1);for(let i=0;i<t;i++){let t=e[i];if(t===-1)continue;let a=0,o=n.length;for(;a<o;){let r=a+o>>1;e[n[r]]<t?a=r+1:o=r}a>0&&(r[i]=n[a-1]),n[a]=i}let i=new Set,a=n.length>0?n[n.length-1]:-1;for(;a!==-1;)i.add(a),a=r[a];return i}function Re(e,t){return b.gen(function*(){let n=yield*b.context(),i=ee.make(E.succeedContext(n)),a=yield*k.make(),o={runtime:i,scope:a,streamIdCounter:{current:0}},s=b.zipRight(k.close(a,S.void),b.promise(()=>i.dispose()));t.innerHTML=``;let c=yield*B(e).pipe(b.provideService(r,o),b.provideService(k.Scope,a),b.tapError(()=>s));if(c!==null)if(Array.isArray(c))for(let e of c)t.appendChild(e);else t.appendChild(c);let l=!1;return{unmount:()=>b.gen(function*(){l||(l=!0,yield*k.close(a,S.void),yield*b.promise(()=>i.dispose()))})}})}function ze(e,t){return b.gen(function*(){let n=yield*b.context(),i=ee.make(E.succeedContext(n)),a=yield*k.make(),o=yield*Ve(),s={runtime:i,scope:a,streamIdCounter:{current:0},hydrationReady:o};et(t,s.streamIdCounter);let c=b.zipRight(k.close(a,S.void),b.promise(()=>i.dispose()));yield*J(e,t.firstChild,`root`).pipe(b.provideService(r,s),b.provideService(k.Scope,a),b.tapError(()=>c)),yield*o.settle,yield*o.awaitReady;let l=!1;return{unmount:()=>b.gen(function*(){l||(l=!0,yield*k.close(a,S.void),yield*b.promise(()=>i.dispose()))})}})}function J(e,t,n){return b.gen(function*(){if(typeof e==`string`||typeof e==`number`||typeof e==`bigint`)return yield*Be(String(e),t,n);if(typeof e==`boolean`||e==null)return t;if(P(e)||b.isEffect(e)){let r=N(e);if(r!==void 0)return yield*J(r,t,n);if(b.isEffect(e)){let r=b.runSyncExit(e);if(S.isSuccess(r))return yield*J(r.value,t,n)}return yield*Ue(F(e),t,n)}if(typeof e==`object`&&Symbol.iterator in e&&!(`type`in e)){let r=t,i=0;for(let t of e)r=yield*J(t,r,`${n}[${i}]`),i++;return r}if(typeof e==`object`&&`type`in e&&!(Symbol.iterator in e)){let{type:r,props:a}=e;return r===ie||r===se?yield*Y(a,t,n):r===re?yield*Ge(a,t,n):r===oe?yield*qe(a,t,n):r===ae?yield*Ye(a,t,n):typeof r==`string`?yield*Je(r,a,t,n):typeof r==`function`?yield*J(r(a),t,n):yield*b.fail(new i({type:r,message:`Invalid Renderable type during hydration at ${n}: expected string, FRAGMENT, or function, got ${typeof r}`}))}return t})}function Be(e,t,n){return b.gen(function*(){if(e.length===0)return t;if(t===null||t.nodeType!==$e)return yield*$(`text ${JSON.stringify(e)}`,Q(t),n);let r=t;return r.data.startsWith(e)?r.data.length>e.length?r.splitText(e.length):r.nextSibling:yield*$(`text ${JSON.stringify(e)}`,Q(t),n)})}function Ve(){return b.gen(function*(){let e=yield*O.make(1),t=yield*y.make(),n=M(O.updateAndGet(e,e=>e-1),b.flatMap(e=>e<=0?b.asVoid(y.succeed(t,void 0)):b.void));return{register:O.update(e,e=>e+1),settle:n,awaitReady:y.await(t)}})}function He(e){let t=!1;return b.suspend(()=>t||e===void 0?b.void:(t=!0,e.settle))}function Ue(e,t,n){return b.gen(function*(){let i=yield*r;if(t===null||t.nodeType!==Z)return yield*$(`reactive region start marker`,Q(t),n);let a=t,o=s(a);if(o===null||o.kind!==`start`)return yield*$(`reactive region start marker`,Q(t),n);let c=tt(a);if(c===null)return yield*$(`reactive region end marker`,`unterminated region starting at ${JSON.stringify(a.data)}`,n);let l=He(i.hydrationReady),u=!0,d=null,f=A.runForEach(e,e=>b.gen(function*(){d!==null&&(yield*k.close(d,S.void)),d=yield*k.fork(i.scope,x.sequential);let t={...i,scope:d};yield*b.gen(function*(){u?(u=!1,yield*We(e,a,c,n),yield*l):yield*U(a,c,e)}).pipe(b.provideService(r,t),b.provideService(k.Scope,d))})).pipe(b.ensuring(l));return i.hydrationReady!==void 0&&(yield*i.hydrationReady.register),yield*b.forkIn(f,i.scope),c.nextSibling})}function We(e,t,n,r){return b.gen(function*(){let i=yield*J(e,t.nextSibling,`${r}<resume>`).pipe(b.map(e=>e===n?null:`adopted content did not align with the end marker`),b.catchTag(`HydrationMismatchError`,e=>b.succeed(`expected ${e.expected}, found ${e.actual} at ${e.path}`)));i!==null&&(console.error(`[weft] hydrate: reactive region at ${r} diverged from server output (${i}); patching.`),yield*U(t,n,e))})}function Ge(e,t,n){return b.gen(function*(){if(t===null||t.nodeType!==X||t.tagName!==`SCRIPT`||t.getAttribute(`type`)!==`application/json`||!t.hasAttribute(`data-weft-boundary-failure`))return yield*Y(e,t,n);let r=t,i=r.textContent??``,a=yield*b.gen(function*(){let t=yield*b.try({try:()=>JSON.parse(i),catch:e=>e}),n=f(e.children)[t.index];if(n===void 0)return null;let r=yield*te.decodeUnknown(n.errorSchema)(t.error);return e.match(v.fail(r))}).pipe(b.catchAll(e=>(console.error(`[weft] hydrate: boundary failure payload at ${n} failed to decode; cannot replay.`,e),b.succeed(null))));if(a===null)return yield*$(`replayable boundary failure`,`undecodable failure payload`,n);let o=yield*J(a,r.nextSibling,n);return r.remove(),o})}function Ke(e,t,n,r){return b.gen(function*(){let i=yield*j.make(n),a=yield*j.make(!1),o=yield*j.make(D.none());return{value:i,refetch:D.match(r,{onNone:()=>b.void,onSome:n=>b.gen(function*(){(yield*j.get(a))||(yield*j.set(a,!0),yield*b.gen(function*(){let r=yield*b.exit(n.call(e,t()));S.isSuccess(r)?(yield*j.set(i,r.value),yield*j.set(o,D.none())):yield*j.set(o,D.some(v.squash(r.cause)))}).pipe(b.ensuring(j.set(a,!1))))})}),pending:a,error:o}})}function qe(e,t,n){return b.gen(function*(){if(t===null||t.nodeType!==X||t.tagName!==`SCRIPT`||t.getAttribute(`type`)!==`application/json`)return yield*$(`server boundary payload <script type="application/json">`,Q(t),n);if(t.hasAttribute(`data-weft-boundary-failure`))return yield*$(`server boundary success payload <script type="application/json">`,`boundary failure payload`,n);let r=t,i=r.textContent??``,a=yield*b.try({try:()=>JSON.parse(i),catch:e=>e}).pipe(b.flatMap(t=>te.decodeUnknown(e.successSchema)(t)),b.catchAll(e=>(console.error(`[weft] hydrate: server boundary payload at ${n} failed to decode; cannot replay.`,e),$(`decodable server boundary payload`,`undecodable payload`,n)))),o=yield*b.serviceOption(ne),s=yield*Ke(e.tag,e.payload,a,o),c=yield*J(e.render(s),r.nextSibling,n);return r.remove(),c})}function Je(e,t,n,r){return b.gen(function*(){if(n===null||n.nodeType!==X)return yield*$(`<${e}>`,Q(n),r);let i=n;return i.tagName.toLowerCase()===e.toLowerCase()?(yield*L(i,t),yield*Y(t,i.firstChild,`${r} > ${e}`),i.nextSibling):yield*$(`<${e}>`,Q(n),r)})}function Y(e,t,n){return b.gen(function*(){let r=`children`in e?e.children:void 0;if(r===void 0)return t;let i=Array.isArray(r)?r:[r],a=t,o=0;for(let e of i)a=yield*J(e,a,`${n}[${o}]`),o++;return a})}function Ye(e,t,n){return b.gen(function*(){let i=yield*r,{of:o,by:c,render:l}=e;if(t===null||t.nodeType!==Z)return yield*$(`list region start marker`,Q(t),n);let u=t,d=s(u);if(d===null||d.kind!==`start`)return yield*$(`list region start marker`,Q(t),n);let f=tt(u);if(f===null)return yield*$(`list region end marker`,`unterminated region starting at ${JSON.stringify(u.data)}`,n);let p=Xe(u,f),m=yield*k.fork(i.scope,x.sequential),h=(yield*ce.toSubscribable(o).pipe(b.provideService(k.Scope,m))).changes,g={records:w.empty(),order:[]},_=!0,v=He(i.hydrationReady),y=A.runForEach(h,e=>b.gen(function*(){let t=Array.from(e);_?(_=!1,g=yield*Ze(t,c,l,p,m,u,f,i,n),yield*v):g=yield*q(t,c,l,g,m,f,i)})).pipe(b.ensuring(v));i.hydrationReady!==void 0&&(yield*i.hydrationReady.register);let T=yield*b.forkIn(y,m),E=yield*b.serviceOption(a);return yield*M(C.await(T),b.flatMap(e=>S.isFailure(e)&&D.isSome(E)?E.value.reportError(e.cause):b.void),b.forkIn(i.scope)),f.nextSibling})}function Xe(e,t){let n=[],r=e.nextSibling;for(;r!==null&&r!==t;){let e=r.nodeType===Z?g(r):null;if(e===null||e.kind!==`start`){r=r.nextSibling;continue}let i=r,a=[],o=0,s=null,c=i.nextSibling;for(;c!==null&&c!==t;){if(c.nodeType===Z){let e=g(c);if(e!==null)if(e.kind===`start`)o++;else if(o===0){s=c;break}else o--}a.push(c),c=c.nextSibling}if(s===null)break;n.push({startMarker:i,endMarker:s,nodes:a}),r=s.nextSibling}return n}function Ze(e,t,n,r,i,a,o,s,c){return b.gen(function*(){let l=yield*Me(e,t);if(l.length!==r.length)return console.error(`[weft] hydrate: list region at ${c} had ${r.length} server item(s) but the first emission has ${l.length}; rebuilding.`),K(a,o),yield*q(e,t,n,{records:w.empty(),order:[]},i,o,s);let u=[];for(let t=0;t<e.length;t++){let a=yield*Qe(l[t],e[t],t,n,r[t],i,s,c);u.push(a)}let d=w.empty();for(let e of u)d=w.set(d,e.key,e);return{records:d,order:l}})}function Qe(e,t,n,i,a,o,s,c){return b.gen(function*(){let l=yield*k.fork(o,x.sequential),u={...s,scope:l},d=i(t,n),f=yield*J(d,a.startMarker.nextSibling,`${c}<item>`).pipe(b.provideService(r,u),b.provideService(k.Scope,l),b.map(e=>e===a.endMarker?null:`adopted item content did not align with its end marker`),b.catchTag(`HydrationMismatchError`,e=>b.succeed(`expected ${e.expected}, found ${e.actual} at ${e.path}`)));if(f===null)return{key:e,scope:l,startMarker:a.startMarker,endMarker:a.endMarker,nodes:a.nodes};console.error(`[weft] hydrate: list item at ${c} diverged from server output (${f}); patching.`),yield*k.close(l,S.void);let p=yield*k.fork(o,x.sequential),m={...s,scope:p};K(a.startMarker,a.endMarker);let h=yield*B(d).pipe(b.provideService(r,m),b.provideService(k.Scope,p)),g=h===null?[]:Array.isArray(h)?h:[h],_=a.endMarker.parentNode;if(_!==null)for(let e of g)_.insertBefore(e,a.endMarker);return{key:e,scope:p,startMarker:a.startMarker,endMarker:a.endMarker,nodes:g}})}const X=1,$e=3,Z=8;function et(e,t){let n=document.createTreeWalker(e,128),r=t.current;for(let e=n.nextNode();e!==null;e=n.nextNode()){let t=e,n=s(t)??d(t)??g(t);n!==null&&n.id>r&&(r=n.id)}t.current=r}function tt(e){let t=0,n=e.nextSibling;for(;n!==null;){if(n.nodeType===8){let e=s(n);if(e!==null)if(e.kind===`start`)t++;else if(t===0)return n;else t--}n=n.nextSibling}return null}function Q(e){if(e===null)return`end of children`;switch(e.nodeType){case 1:return`<${e.tagName.toLowerCase()}>`;case 3:return`text ${JSON.stringify(e.data)}`;case 8:return`comment ${JSON.stringify(e.data)}`;default:return`node(type ${e.nodeType})`}}function $(e,n,r){return b.fail(new t({expected:e,actual:n,path:r}))}export{ze as hydrate,Re as mount};
1
+ import{i as e,n as t,o as n,r,s as i,t as a}from"../data-Bk62ePeP.js";import{a as o,c as s,d as c,f as l,i as u,l as d,m as f,n as p,o as m,p as h,s as g,u as _}from"../boundary-replay-BR26_puM.js";import{Cause as v,Deferred as y,Effect as b,ExecutionStrategy as x,Exit as S,Fiber as C,HashMap as w,HashSet as T,Layer as E,ManagedRuntime as ee,Option as D,Ref as O,Schema as te,Scope as k,Stream as A,SubscriptionRef as j,pipe as M}from"effect";import{AppRpcClientTag as ne,FAILURE_BOUNDARY as re,FRAGMENT as ie,LIST as ae,SERVER_BOUNDARY as oe,SUSPENSE_BOUNDARY as se,Source as ce,getElementDescriptor as le,isStream as N,toStream as P}from"@weftui/core";function F(){return b.gen(function*(){let e=yield*r;return++e.streamIdCounter.current})}const ue=F;let de=0;const I=()=>++de;function fe(e){if(e.length<=2||!e.startsWith(`on`))return!1;let t=e[2];return t!==void 0&&t>=`a`&&t<=`z`}function L(e,t){return b.gen(function*(){for(let[n,r]of Object.entries(t))if(n!==`children`){if(fe(n)){yield*ye(e,n,r);continue}if(n===`ref`&&typeof r==`object`&&O.RefTypeId in r){yield*O.set(r,D.some(e));continue}if(n===`style`){yield*_e(e,r);continue}pe(e,n)?yield*me(e,n,r):yield*he(e,n,r)}})}function pe(e,t){if(t.startsWith(`data-`)||t.startsWith(`aria-`))return!1;let n=Object.getPrototypeOf(e);for(;n!==null;){if(Object.hasOwn(n,t))return!0;n=Object.getPrototypeOf(n)}return t in e}function me(e,t,n){return b.gen(function*(){N(n)||b.isEffect(n)?yield*z(P(n),n=>{n==null?delete e[t]:e[t]=n},`property:${t}`):n!=null&&(e[t]=n)})}function he(e,t,n){return b.gen(function*(){if(N(n)||b.isEffect(n))yield*z(P(n),n=>{if(n==null)e.removeAttribute(t);else{let r=ge(n);r!==void 0&&(typeof n==`boolean`?n?e.setAttribute(t,``):e.removeAttribute(t):e.setAttribute(t,r))}},`attribute:${t}`);else{let r=ge(n);r!==void 0&&(typeof n==`boolean`?n?e.setAttribute(t,``):e.removeAttribute(t):e.setAttribute(t,r))}})}function ge(e){if(e!=null)return String(e)}function _e(e,t){return b.gen(function*(){if(N(t)||b.isEffect(t)){yield*z(P(t),t=>{if(typeof t==`string`)e.setAttribute(`style`,t);else if(typeof t==`object`&&t){e.style.cssText=``;for(let[n,r]of Object.entries(t))r!=null&&e.style.setProperty(R(n),String(r))}},`style`);return}if(typeof t==`string`){e.setAttribute(`style`,t);return}typeof t==`object`&&t&&(yield*ve(e,t))})}function ve(e,t){return b.gen(function*(){for(let[n,r]of Object.entries(t))N(r)||b.isEffect(r)?yield*z(P(r),t=>{t!=null&&e.style.setProperty(R(n),String(t))},`style.${n}`):r!=null&&e.style.setProperty(R(n),String(r))})}function R(e){return e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}function z(e,t,n){return b.gen(function*(){let n=yield*r,i=yield*b.serviceOption(a),o=A.runForEach(e,e=>b.sync(()=>void t(e))),s=yield*b.forkIn(o,n.scope);yield*M(C.await(s),b.flatMap(e=>S.isFailure(e)&&D.isSome(i)?i.value.reportError(e.cause):b.void),b.forkIn(n.scope))})}function ye(e,t,n){return b.gen(function*(){let i=yield*r,a=t.slice(2).toLowerCase(),o=null,s=()=>{o&&=(e.removeEventListener(a,o),null)},c=n=>{s(),!(n==null||n===!1)&&typeof n==`function`&&(o=e=>{let r=n(e);b.isEffect(r)&&i.runtime.runFork(M(r,b.catchAll(e=>process.env.NODE_ENV===`development`?b.logError(`Event handler error: ${t}`,{error:e}):b.void)))},e.addEventListener(a,o))};yield*k.addFinalizer(i.scope,b.sync(s)),N(n)||b.isEffect(n)?yield*z(P(n),e=>c(e),`event:${t}`):c(n)})}function be(e,t,n,r,i,a){return b.gen(function*(){let o=yield*y.await(t).pipe(b.flip,b.catchAll(()=>b.interrupt)),s=e.match(o);if(yield*k.close(n,S.void),s===null)return D.isSome(r)?yield*r.value.reportError(o):yield*b.logError(`Unhandled error escaped the outermost Boundary`,o);K(i,a);let c=yield*B(s),l=a.parentNode;if(l!==null&&c!==null)if(Array.isArray(c))for(let e of c)l.insertBefore(e,a);else l.insertBefore(c,a)})}function xe(e){return b.gen(function*(){let t=yield*r,n=yield*b.serviceOption(a),i=I(),s=document.createComment(o(i)),c=document.createComment(u(i)),l=yield*k.fork(t.scope,x.sequential),d={...t,scope:l},f=yield*y.make(),p=yield*M(V(e.children),b.provideService(a,{reportError:e=>y.fail(f,e).pipe(b.asVoid)}),b.provideService(r,d),b.provideService(k.Scope,l),b.catchAllCause(t=>{let n=e.match(t);return n===null?b.failCause(t):M(k.close(l,S.void),b.flatMap(()=>B(n)),b.map(e=>e===null?[]:Array.isArray(e)?e:[e]))}));return yield*b.forkIn(be(e,f,l,n,s,c),t.scope),[s,...p,c]})}function Se(e){return b.gen(function*(){let t=yield*r,i=yield*O.make(1),a=yield*y.make(),o=M(O.updateAndGet(i,e=>e-1),b.flatMap(e=>e<=0?b.asVoid(y.succeed(a,void 0)):b.void)),s={register:O.update(i,e=>e+1),settle:o},c=e.children,l=yield*B((c===void 0?[]:Array.isArray(c)?c:[c]).map(e=>b.isEffect(e)||N(e)?{type:()=>e,props:{}}:e)).pipe(b.provideService(n,s)),u=l===null?[]:Array.isArray(l)?l:[l];yield*o;let d=yield*y.poll(a);if(D.isSome(d))return u;let p=yield*ue(),m=document.createComment(f(p)),g=document.createComment(h(p)),_=yield*B(e.fallback??null),v=[];_!==null&&(Array.isArray(_)?v.push(..._):v.push(_));let x=document.createDocumentFragment();for(let e of u)x.appendChild(e);let S=b.gen(function*(){yield*y.await(a),K(m,g);let e=g.parentNode;e!==null&&(e.insertBefore(x,g),m.remove(),g.remove())});return yield*b.forkIn(S,t.scope),[m,...v,g]})}function Ce(t){return b.gen(function*(){let n=yield*r,i=yield*b.serviceOption(ne);if(D.isNone(i))return yield*b.fail(new e({cause:void 0,message:`Boundary.rpc "${t.tag}" was mounted client-first without an AppRpcClient in context. Mount the app under @weftui/router (RouterLive), which provides the rpc client, so the boundary can resolve its data.`}));let a=i.value,s=I(),c=document.createComment(o(s)),l=document.createComment(u(s)),d=yield*B(t.fallback??null),f=[];d!==null&&(Array.isArray(d)?f.push(...d):f.push(d));let p=b.gen(function*(){let e=yield*a.call(t.tag,t.payload()),n=yield*Ye(t.tag,t.payload,e,i),r=yield*B(t.render(n));K(c,l);let o=l.parentNode;if(o!==null&&r!==null)if(Array.isArray(r))for(let e of r)o.insertBefore(e,l);else o.insertBefore(r,l)}).pipe(b.catchAllCause(e=>b.logError(`[weft] Boundary.rpc "${t.tag}" mount failed to resolve; fallback left in place.`,e)));return yield*b.forkIn(p,n.scope),[c,...f,l]})}function B(e){return b.gen(function*(){if(typeof e==`string`||typeof e==`number`||typeof e==`bigint`)return document.createTextNode(String(e));if(typeof e==`boolean`||e==null)return null;if(N(e)||b.isEffect(e)){let t=le(e);if(t!==void 0)return yield*B(t);if(b.isEffect(e)){let t=b.runSyncExit(e);if(S.isSuccess(t))return yield*B(t.value)}return yield*H(P(e))}if(typeof e==`object`&&Symbol.iterator in e&&!(`type`in e))return yield*V(we(e));if(typeof e==`object`&&`type`in e&&!(Symbol.iterator in e)){let{type:t,props:n}=e;return t===ie?yield*Te(n):t===se?yield*Se(n):t===oe?yield*Ce(n):t===re?yield*xe(n):t===ae?yield*Me(n):typeof t==`string`?yield*Ee(t,n):typeof t==`function`?yield*De(t,n):yield*b.fail(new i({type:t,message:`Invalid Renderable type: expected string, FRAGMENT, or function, got ${typeof t}`}))}return null})}function we(e){let t=[];function n(e){if(N(e)||b.isEffect(e)){t.push(e);return}if(typeof e==`object`&&e&&Symbol.iterator in e&&!(`type`in e))for(let t of e)n(t);else t.push(e)}return n(e),t}function V(e){return b.gen(function*(){let t=[];for(let n of e)if(N(n)||b.isEffect(n)){let e=yield*H(P(n));t.push(...e)}else{let e=yield*B(n);e!==null&&(Array.isArray(e)?t.push(...e):t.push(e))}return t})}function Te(e){return b.gen(function*(){let t=`children`in e?e.children:void 0;return t===void 0?[]:yield*V(Array.isArray(t)?t:[t])})}function Ee(e,t){return b.gen(function*(){let n=document.createElement(e);yield*L(n,t);let r=`children`in t?t.children:void 0;if(r!==void 0){let e=Array.isArray(r)?r:[r];for(let t of e)if(N(t)||b.isEffect(t)){let e=yield*H(P(t));for(let t of e)n.appendChild(t)}else{let e=yield*B(t);if(e!==null)if(Array.isArray(e))for(let t of e)n.appendChild(t);else n.appendChild(e)}}return n})}function De(e,t){return b.gen(function*(){let i=e(t);if(N(i)||b.isEffect(i)){let e=yield*r,t=yield*k.fork(e.scope,x.sequential),a={...e,scope:t},o=yield*b.serviceOption(n),s=P(i);return D.isSome(o)&&(yield*o.value.register,s=M(s,A.zipWithIndex,A.flatMap(([e,t])=>t===0?A.fromEffect(b.as(o.value.settle,e)):A.make(e)))),yield*H(s).pipe(b.provideService(r,a),b.provideService(k.Scope,t))}return yield*B(i)})}function H(e){return b.gen(function*(){let t=yield*r,[n,i]=Oe(yield*F()),o=null,s=A.runForEach(e,e=>b.gen(function*(){o!==null&&(yield*k.close(o,S.void)),o=yield*k.fork(t.scope,x.sequential);let a={...t,scope:o};yield*U(n,i,e).pipe(b.provideService(r,a),b.provideService(k.Scope,o))})),c=yield*b.forkIn(s,t.scope),l=yield*b.serviceOption(a);return yield*M(C.await(c),b.flatMap(e=>S.isFailure(e)&&D.isSome(l)?l.value.reportError(e.cause):b.void),b.forkIn(t.scope)),[n,i]})}function Oe(e){return[document.createComment(l(e)),document.createComment(c(e))]}function U(e,t,n){return b.gen(function*(){let r=e.nextSibling,i=r!==null&&r!==t&&r.nextSibling===t;if(i&&r.nodeType===nt&&W(n)){let e=String(n);r.data!==e&&(r.data=e);return}if(i&&r.nodeType===X){let e=G(n);if(e!==void 0&&typeof e.type==`string`&&r.tagName.toLowerCase()===e.type.toLowerCase()){yield*ke(r,e);return}}K(e,t);let a=yield*B(n),o=e.parentNode;if(o!==null&&a!==null)if(Array.isArray(a))for(let e of a)o.insertBefore(e,t);else o.insertBefore(a,t)})}function W(e){return typeof e==`string`||typeof e==`number`||typeof e==`bigint`}function G(e){let t=le(e);if(t!==void 0)return t;if(typeof e==`object`&&e&&`type`in e&&!(Symbol.iterator in e)&&!N(e)&&!b.isEffect(e))return e}function ke(e,t){return b.gen(function*(){yield*L(e,t.props);let n=t.props.children,r=n===void 0?[]:Array.isArray(n)?n:[n];if(!(yield*Ae(e,r))){for(;e.firstChild!==null;)e.firstChild.remove();yield*je(e,r)}})}function Ae(e,t){return b.gen(function*(){let n=Array.from(e.childNodes);if(n.length!==t.length)return!1;for(let e=0;e<t.length;e++){let r=t[e],i=n[e];if(W(r)){if(i.nodeType!==nt)return!1}else{let e=G(r);if(e===void 0||typeof e.type!=`string`||i.nodeType!==X||i.tagName.toLowerCase()!==e.type.toLowerCase())return!1}}for(let e=0;e<t.length;e++){let r=t[e],i=n[e];if(W(r)){let e=String(r);i.data!==e&&(i.data=e)}else yield*ke(i,G(r))}return!0})}function je(e,t){return b.gen(function*(){for(let n of t)if(N(n)||b.isEffect(n)){let t=yield*H(P(n));for(let n of t)e.appendChild(n)}else{let t=yield*B(n);if(t!==null)if(Array.isArray(t))for(let n of t)e.appendChild(n);else e.appendChild(t)}})}function K(e,t){let n=e.nextSibling;for(;n!==null&&n!==t;){let e=n.nextSibling;n.remove(),n=e}}function Me(e){return b.gen(function*(){let t=yield*r,{of:n,by:i,render:o}=e,[s,c]=Oe(yield*F()),l=yield*k.fork(t.scope,x.sequential),u=(yield*ce.toSubscribable(n).pipe(b.provideService(k.Scope,l))).changes,d={records:w.empty(),order:[]},f=A.runForEach(u,e=>b.gen(function*(){d=yield*q(Array.from(e),i,o,d,l,c,t)})),p=yield*b.forkIn(f,l),m=yield*b.serviceOption(a);return yield*M(C.await(p),b.flatMap(e=>S.isFailure(e)&&D.isSome(m)?m.value.reportError(e.cause):b.void),b.forkIn(t.scope)),[s,c]})}function Ne(t,n){return b.gen(function*(){let r=[],i=T.empty();for(let a=0;a<t.length;a++){let o=n===void 0?t[a]:n(t[a],a);if(T.has(i,o))return yield*b.fail(new e({cause:o,message:`List.each: duplicate key ${Le(o)} in a single emission; keys must be unique (set a stable \`by\`).`}));i=T.add(i,o),r.push(o)}return r})}function q(e,t,n,r,i,a,o){return b.gen(function*(){let s=yield*Ne(e,t),c=w.empty();r.order.forEach((e,t)=>{c=w.set(c,e,t)});let l=[],u=[];for(let t=0;t<e.length;t++){let a=s[t],d=w.get(r.records,a);if(D.isSome(d))l.push(d.value),u.push(D.getOrElse(w.get(c,a),()=>-1));else{let r=yield*Pe(a,e[t],t,n,i,o);l.push(r),u.push(-1)}}let d=T.empty();for(let e of s)d=T.add(d,e);for(let e of r.order)if(!T.has(d,e)){let t=w.get(r.records,e);D.isSome(t)&&(yield*k.close(t.value.scope,S.void),Ie(t.value.startMarker,t.value.endMarker))}let f=Re(u),p=a.parentNode;if(p!==null)for(let e=l.length-1;e>=0;e--){let t=l[e];if(u[e]!==-1&&f.has(e))continue;let n=e+1<l.length?l[e+1].startMarker:a,r=u[e]===-1?[t.startMarker,...t.nodes,t.endMarker]:Fe(t.startMarker,t.endMarker);for(let e of r)p.insertBefore(e,n)}let m=w.empty();for(let e of l)m=w.set(m,e.key,e);return{records:m,order:s}})}function Pe(e,t,n,i,a,o){return b.gen(function*(){let s=yield*k.fork(a,x.sequential),c={...o,scope:s},l=yield*F(),u=document.createComment(g(l)),d=document.createComment(m(l)),f=yield*B(i(t,n)).pipe(b.provideService(r,c),b.provideService(k.Scope,s));return{key:e,scope:s,startMarker:u,endMarker:d,nodes:f===null?[]:Array.isArray(f)?f:[f]}})}function Fe(e,t){let n=[],r=e;for(;r!==null&&(n.push(r),r!==t);)r=r.nextSibling;return n}function Ie(e,t){let n=e;for(;n!==null;){let e=n.nextSibling;if(n.remove(),n===t)break;n=e}}function Le(e){if(typeof e==`string`)return JSON.stringify(e);if(typeof e==`object`&&e)try{return JSON.stringify(e)}catch{return Object.prototype.toString.call(e)}return String(e)}function Re(e){let t=e.length,n=[],r=Array.from({length:t},()=>-1);for(let i=0;i<t;i++){let t=e[i];if(t===-1)continue;let a=0,o=n.length;for(;a<o;){let r=a+o>>1;e[n[r]]<t?a=r+1:o=r}a>0&&(r[i]=n[a-1]),n[a]=i}let i=new Set,a=n.length>0?n[n.length-1]:-1;for(;a!==-1;)i.add(a),a=r[a];return i}function ze(e,t){return b.gen(function*(){let n=yield*b.context(),i=ee.make(E.succeedContext(n)),a=yield*k.make(),o={runtime:i,scope:a,streamIdCounter:{current:0}},s=b.zipRight(k.close(a,S.void),b.promise(()=>i.dispose()));t.innerHTML=``;let c=yield*B(e).pipe(b.provideService(r,o),b.provideService(k.Scope,a),b.tapError(()=>s));if(c!==null)if(Array.isArray(c))for(let e of c)t.appendChild(e);else t.appendChild(c);let l=!1;return{unmount:()=>b.gen(function*(){l||(l=!0,yield*k.close(a,S.void),yield*b.promise(()=>i.dispose()))})}})}function Be(e,t){return b.gen(function*(){let n=yield*b.context(),i=ee.make(E.succeedContext(n)),a=yield*k.make(),o=yield*He(),s={runtime:i,scope:a,streamIdCounter:{current:0},hydrationReady:o};rt(t,s.streamIdCounter);let c=b.zipRight(k.close(a,S.void),b.promise(()=>i.dispose()));yield*J(e,t.firstChild,`root`).pipe(b.provideService(r,s),b.provideService(k.Scope,a),b.tapError(()=>c)),yield*o.settle,yield*o.awaitReady;let l=!1;return{unmount:()=>b.gen(function*(){l||(l=!0,yield*k.close(a,S.void),yield*b.promise(()=>i.dispose()))})}})}function J(e,t,n){return b.gen(function*(){if(typeof e==`string`||typeof e==`number`||typeof e==`bigint`)return yield*Ve(String(e),t,n);if(typeof e==`boolean`||e==null)return t;if(N(e)||b.isEffect(e)){let r=le(e);if(r!==void 0)return yield*J(r,t,n);if(b.isEffect(e)){let r=b.runSyncExit(e);if(S.isSuccess(r))return yield*J(r.value,t,n)}return yield*We(P(e),t,n)}if(typeof e==`object`&&Symbol.iterator in e&&!(`type`in e)){let r=t,i=0;for(let t of e)r=yield*J(t,r,`${n}[${i}]`),i++;return r}if(typeof e==`object`&&`type`in e&&!(Symbol.iterator in e)){let{type:r,props:a}=e;if(r===ie)return yield*Y(a,t,n);if(r===se){if(t!==null&&t.nodeType===Z){let e=_(t);if(e!==null&&e.kind===`start`)return yield*Ke(t,n)}return yield*Y(a,t,n)}return r===re?yield*Je(a,t,n):r===oe?yield*Xe(a,t,n):r===ae?yield*Qe(a,t,n):typeof r==`string`?yield*Ze(r,a,t,n):typeof r==`function`?yield*J(r(a),t,n):yield*b.fail(new i({type:r,message:`Invalid Renderable type during hydration at ${n}: expected string, FRAGMENT, or function, got ${typeof r}`}))}return t})}function Ve(e,t,n){return b.gen(function*(){if(e.length===0)return t;if(t===null||t.nodeType!==nt)return yield*$(`text ${JSON.stringify(e)}`,Q(t),n);let r=t;return r.data.startsWith(e)?r.data.length>e.length?r.splitText(e.length):r.nextSibling:yield*$(`text ${JSON.stringify(e)}`,Q(t),n)})}function He(){return b.gen(function*(){let e=yield*O.make(1),t=yield*y.make(),n=M(O.updateAndGet(e,e=>e-1),b.flatMap(e=>e<=0?b.asVoid(y.succeed(t,void 0)):b.void));return{register:O.update(e,e=>e+1),settle:n,awaitReady:y.await(t)}})}function Ue(e){let t=!1;return b.suspend(()=>t||e===void 0?b.void:(t=!0,e.settle))}function We(e,t,n){return b.gen(function*(){let i=yield*r;if(t===null||t.nodeType!==Z)return yield*$(`reactive region start marker`,Q(t),n);let o=t,s=d(o);if(s===null||s.kind!==`start`)return yield*$(`reactive region start marker`,Q(t),n);let c=it(o);if(c===null)return yield*$(`reactive region end marker`,`unterminated region starting at ${JSON.stringify(o.data)}`,n);let l=Ue(i.hydrationReady),u=!0,f=null,p=A.runForEach(e,e=>b.gen(function*(){f!==null&&(yield*k.close(f,S.void)),f=yield*k.fork(i.scope,x.sequential);let t={...i,scope:f};yield*b.gen(function*(){u?(u=!1,yield*Ge(e,o,c,n),yield*l):yield*U(o,c,e)}).pipe(b.provideService(r,t),b.provideService(k.Scope,f))})).pipe(b.ensuring(l));i.hydrationReady!==void 0&&(yield*i.hydrationReady.register);let m=yield*b.forkIn(p,i.scope),h=yield*b.serviceOption(a);return yield*M(C.await(m),b.flatMap(e=>S.isFailure(e)&&D.isSome(h)?h.value.reportError(e.cause):b.void),b.forkIn(i.scope)),c.nextSibling})}function Ge(e,t,n,r){return b.gen(function*(){let i=yield*J(e,t.nextSibling,`${r}<resume>`).pipe(b.map(e=>e===n?null:`adopted content did not align with the end marker`),b.catchTag(`HydrationMismatchError`,e=>b.succeed(`expected ${e.expected}, found ${e.actual} at ${e.path}`)));i!==null&&(console.error(`[weft] hydrate: reactive region at ${r} diverged from server output (${i}); patching.`),yield*U(t,n,e))})}function Ke(e,t){return b.gen(function*(){let n=qe(e);if(n===null)return yield*$(`substituted suspense end marker`,`unterminated region starting at ${JSON.stringify(e.data)}`,t);let r=null;for(let t=e.nextSibling;t!==null&&t!==n;t=t.nextSibling)if(t.nodeType===X&&t.tagName===`SCRIPT`&&t.getAttribute(`type`)===`application/json`&&t.hasAttribute(`data-weft-suspense-failure`)){r=t;break}let i=null;if(r!==null){let e=r.textContent??``;i=yield*b.try({try:()=>JSON.parse(e),catch:e=>e}).pipe(b.catchAll(()=>b.succeed(null)))}if(typeof i!=`object`||!i||!(`error`in i))return console.error(`[weft] hydrate: substituted suspense region at ${t} has no decodable failure sentinel; leaving its static content.`),n.nextSibling;let o=yield*b.serviceOption(a);return D.isNone(o)?(console.error(`[weft] hydrate: substituted suspense region at ${t} has no enclosing Boundary to replay its failure to; leaving its static content.`,i.error),n.nextSibling):(yield*o.value.reportError(v.fail(i.error)),n.nextSibling)})}function qe(e){let t=0,n=e.nextSibling;for(;n!==null;){if(n.nodeType===Z){let e=_(n);if(e!==null)if(e.kind===`start`)t++;else if(t===0)return n;else t--}n=n.nextSibling}return null}function Je(e,t,n){return b.gen(function*(){if(t===null||t.nodeType!==X||t.tagName!==`SCRIPT`||t.getAttribute(`type`)!==`application/json`||!t.hasAttribute(`data-weft-boundary-failure`)){let i=yield*r,s=yield*b.serviceOption(a),c=yield*k.fork(i.scope,x.sequential),l={...i,scope:c},d=yield*y.make(),f=yield*Y(e,t,n).pipe(b.provideService(a,{reportError:e=>y.fail(d,e).pipe(b.asVoid)}),b.provideService(r,l),b.provideService(k.Scope,c)),p=t?.parentNode??null;if(t===null||t===f||p===null)return console.error(`[weft] hydrate: boundary at ${n} adopted an empty extent; live failure recovery is not installed for it.`),f;let m=I(),h=document.createComment(o(m)),g=document.createComment(u(m));return p.insertBefore(h,t),f===null?p.appendChild(g):p.insertBefore(g,f),yield*b.forkIn(be(e,d,c,s,h,g),i.scope),f}let i=t,s=i.textContent??``,c=yield*b.gen(function*(){let t=yield*b.try({try:()=>JSON.parse(s),catch:e=>e}),n=p(e.children)[t.index];if(n===void 0)return null;let r=yield*te.decodeUnknown(n.errorSchema)(t.error);return e.match(v.fail(r))}).pipe(b.catchAll(e=>(console.error(`[weft] hydrate: boundary failure payload at ${n} failed to decode; cannot replay.`,e),b.succeed(null))));if(c===null)return yield*$(`replayable boundary failure`,`undecodable failure payload`,n);let l=yield*J(c,i.nextSibling,n);return i.remove(),l})}function Ye(e,t,n,r){return b.gen(function*(){let i=yield*j.make(n),a=yield*j.make(!1),o=yield*j.make(D.none());return{value:i,refetch:D.match(r,{onNone:()=>b.void,onSome:n=>b.gen(function*(){(yield*j.get(a))||(yield*j.set(a,!0),yield*b.gen(function*(){let r=yield*b.exit(n.call(e,t()));S.isSuccess(r)?(yield*j.set(i,r.value),yield*j.set(o,D.none())):yield*j.set(o,D.some(v.squash(r.cause)))}).pipe(b.ensuring(j.set(a,!1))))})}),pending:a,error:o}})}function Xe(e,t,n){return b.gen(function*(){if(t===null||t.nodeType!==X||t.tagName!==`SCRIPT`||t.getAttribute(`type`)!==`application/json`)return yield*$(`server boundary payload <script type="application/json">`,Q(t),n);if(t.hasAttribute(`data-weft-boundary-failure`))return yield*$(`server boundary success payload <script type="application/json">`,`boundary failure payload`,n);let r=t,i=r.textContent??``,a=yield*b.try({try:()=>JSON.parse(i),catch:e=>e}).pipe(b.flatMap(t=>te.decodeUnknown(e.successSchema)(t)),b.catchAll(e=>(console.error(`[weft] hydrate: server boundary payload at ${n} failed to decode; cannot replay.`,e),$(`decodable server boundary payload`,`undecodable payload`,n)))),o=yield*b.serviceOption(ne),s=yield*Ye(e.tag,e.payload,a,o),c=yield*J(e.render(s),r.nextSibling,n);return r.remove(),c})}function Ze(e,t,n,r){return b.gen(function*(){if(n===null||n.nodeType!==X)return yield*$(`<${e}>`,Q(n),r);let i=n;return i.tagName.toLowerCase()===e.toLowerCase()?(yield*L(i,t),yield*Y(t,i.firstChild,`${r} > ${e}`),i.nextSibling):yield*$(`<${e}>`,Q(n),r)})}function Y(e,t,n){return b.gen(function*(){let r=`children`in e?e.children:void 0;if(r===void 0)return t;let i=Array.isArray(r)?r:[r],a=t,o=0;for(let e of i)a=yield*J(e,a,`${n}[${o}]`),o++;return a})}function Qe(e,t,n){return b.gen(function*(){let i=yield*r,{of:o,by:s,render:c}=e;if(t===null||t.nodeType!==Z)return yield*$(`list region start marker`,Q(t),n);let l=t,u=d(l);if(u===null||u.kind!==`start`)return yield*$(`list region start marker`,Q(t),n);let f=it(l);if(f===null)return yield*$(`list region end marker`,`unterminated region starting at ${JSON.stringify(l.data)}`,n);let p=$e(l,f),m=yield*k.fork(i.scope,x.sequential),h=(yield*ce.toSubscribable(o).pipe(b.provideService(k.Scope,m))).changes,g={records:w.empty(),order:[]},_=!0,v=Ue(i.hydrationReady),y=A.runForEach(h,e=>b.gen(function*(){let t=Array.from(e);_?(_=!1,g=yield*et(t,s,c,p,m,l,f,i,n),yield*v):g=yield*q(t,s,c,g,m,f,i)})).pipe(b.ensuring(v));i.hydrationReady!==void 0&&(yield*i.hydrationReady.register);let T=yield*b.forkIn(y,m),E=yield*b.serviceOption(a);return yield*M(C.await(T),b.flatMap(e=>S.isFailure(e)&&D.isSome(E)?E.value.reportError(e.cause):b.void),b.forkIn(i.scope)),f.nextSibling})}function $e(e,t){let n=[],r=e.nextSibling;for(;r!==null&&r!==t;){let e=r.nodeType===Z?s(r):null;if(e===null||e.kind!==`start`){r=r.nextSibling;continue}let i=r,a=[],o=0,c=null,l=i.nextSibling;for(;l!==null&&l!==t;){if(l.nodeType===Z){let e=s(l);if(e!==null)if(e.kind===`start`)o++;else if(o===0){c=l;break}else o--}a.push(l),l=l.nextSibling}if(c===null)break;n.push({startMarker:i,endMarker:c,nodes:a}),r=c.nextSibling}return n}function et(e,t,n,r,i,a,o,s,c){return b.gen(function*(){let l=yield*Ne(e,t);if(l.length!==r.length)return console.error(`[weft] hydrate: list region at ${c} had ${r.length} server item(s) but the first emission has ${l.length}; rebuilding.`),K(a,o),yield*q(e,t,n,{records:w.empty(),order:[]},i,o,s);let u=[];for(let t=0;t<e.length;t++){let a=yield*tt(l[t],e[t],t,n,r[t],i,s,c);u.push(a)}let d=w.empty();for(let e of u)d=w.set(d,e.key,e);return{records:d,order:l}})}function tt(e,t,n,i,a,o,s,c){return b.gen(function*(){let l=yield*k.fork(o,x.sequential),u={...s,scope:l},d=i(t,n),f=yield*J(d,a.startMarker.nextSibling,`${c}<item>`).pipe(b.provideService(r,u),b.provideService(k.Scope,l),b.map(e=>e===a.endMarker?null:`adopted item content did not align with its end marker`),b.catchTag(`HydrationMismatchError`,e=>b.succeed(`expected ${e.expected}, found ${e.actual} at ${e.path}`)));if(f===null)return{key:e,scope:l,startMarker:a.startMarker,endMarker:a.endMarker,nodes:a.nodes};console.error(`[weft] hydrate: list item at ${c} diverged from server output (${f}); patching.`),yield*k.close(l,S.void);let p=yield*k.fork(o,x.sequential),m={...s,scope:p};K(a.startMarker,a.endMarker);let h=yield*B(d).pipe(b.provideService(r,m),b.provideService(k.Scope,p)),g=h===null?[]:Array.isArray(h)?h:[h],_=a.endMarker.parentNode;if(_!==null)for(let e of g)_.insertBefore(e,a.endMarker);return{key:e,scope:p,startMarker:a.startMarker,endMarker:a.endMarker,nodes:g}})}const X=1,nt=3,Z=8;function rt(e,t){let n=document.createTreeWalker(e,128),r=t.current;for(let e=n.nextNode();e!==null;e=n.nextNode()){let t=e,n=d(t)??_(t)??s(t);n!==null&&n.id>r&&(r=n.id)}t.current=r}function it(e){let t=0,n=e.nextSibling;for(;n!==null;){if(n.nodeType===8){let e=d(n);if(e!==null)if(e.kind===`start`)t++;else if(t===0)return n;else t--}n=n.nextSibling}return null}function Q(e){if(e===null)return`end of children`;switch(e.nodeType){case 1:return`<${e.tagName.toLowerCase()}>`;case 3:return`text ${JSON.stringify(e.data)}`;case 8:return`comment ${JSON.stringify(e.data)}`;default:return`node(type ${e.nodeType})`}}function $(e,n,r){return b.fail(new t({expected:e,actual:n,path:r}))}export{Be as hydrate,ze as mount};
@@ -1,4 +1,4 @@
1
- import { Effect, Stream } from "effect";
1
+ import { Cause, Context, Effect, Option, Scope, Stream } from "effect";
2
2
  import { AppRpcClientTag, Renderable } from "@weftui/core";
3
3
  import { Renderable as Renderable$1 } from "@weftui/core/types";
4
4
 
@@ -47,4 +47,89 @@ declare const renderToString: (node: Renderable$1) => Effect.Effect<string, Erro
47
47
  */
48
48
  declare const renderToStringHydratable: (node: Renderable$1) => Effect.Effect<string, Error, AppRpcClientTag>;
49
49
  //#endregion
50
- export { renderToStream, renderToStreamHydratable, renderToString, renderToStringHydratable };
50
+ //#region src/server/streaming-shell.d.ts
51
+ /**
52
+ * The result of {@link renderToHydratableShell}: the fully buffered main
53
+ * document walk plus the trailing Suspense patch stream.
54
+ */
55
+ interface HydratableShell {
56
+ /**
57
+ * The fully buffered main walk — byte-identical to the `mainStream` portion
58
+ * of `renderToStreamHydratable` for the same tree: reactive-region markers,
59
+ * Suspense fallbacks inline with their markers, resolved (blocking)
60
+ * `Boundary.rpc` regions, and failure-boundary fallbacks with payloads.
61
+ */
62
+ readonly shell: string;
63
+ /**
64
+ * The Suspense patch queue as a stream. Never fails (resolution fibers
65
+ * handle their own errors — see {@link SuspenseFailureHandlerTag}); completes
66
+ * once all pending boundaries have resolved, or immediately if the tree has
67
+ * no `Boundary.suspend`.
68
+ */
69
+ readonly patches: Stream.Stream<string>;
70
+ }
71
+ /**
72
+ * Shell-split variant of `renderToStreamHydratable` (spec:
73
+ * `streaming-shell.specs.md`). Buffers the main document walk into `shell` so
74
+ * an HTTP consumer can decide status/headers before flushing any bytes, then
75
+ * streams Suspense patches separately.
76
+ *
77
+ * Errors raised during the main walk fail this Effect — nothing has been
78
+ * handed to the consumer yet, so the caller may respond with a different
79
+ * document and a real status (AC-SH2).
80
+ *
81
+ * Suspense resolution fibers are forked into the ambient `Scope.Scope`: keep
82
+ * it open until `patches` completes; closing it interrupts pending fibers
83
+ * (consumer disconnect, AC-SH6).
84
+ */
85
+ declare const renderToHydratableShell: (node: Renderable) => Effect.Effect<HydratableShell, Error, AppRpcClientTag | Scope.Scope>;
86
+ //#endregion
87
+ //#region src/server/suspense-failure-handler.d.ts
88
+ /**
89
+ * Substitute patch content returned by a {@link SuspenseFailureHandler} for an
90
+ * otherwise-unhandled Suspense resolution failure.
91
+ */
92
+ interface SuspenseFailureSubstitute {
93
+ /** Rendered (hydratable pass) as the patch content for the failed boundary. */
94
+ readonly content: Renderable;
95
+ /**
96
+ * When `true`, the patch script also injects
97
+ * `<meta name="robots" content="noindex">` into `document.head` before
98
+ * performing the swap (the head has long been flushed; DOM injection is the
99
+ * only route — Googlebot's soft-404 pattern).
100
+ */
101
+ readonly markNoindex: boolean;
102
+ /**
103
+ * Optional already-Schema-encoded, JSON-serializable failure value. When
104
+ * present, the patch is emitted in the failure-replay variant (AC-FH7):
105
+ * the suspense markers are retained and a
106
+ * `<script type="application/json" data-weft-suspense-failure>` sentinel
107
+ * carrying `{"error":<this value>}` is prepended to the swapped-in content,
108
+ * so the client `hydrate` can replay the failure to its nearest boundary
109
+ * (`hydrate.specs.md` AC-H14).
110
+ */
111
+ readonly failureReplay?: unknown;
112
+ }
113
+ /**
114
+ * Ambient, optional seam consulted by the Suspense resolution fiber when a
115
+ * cause escapes the suspended children unhandled (no failure `Boundary`
116
+ * inside the children matched it). Returning `Option.some` substitutes the
117
+ * patch content for that boundary; `Option.none` (or an absent service)
118
+ * keeps the default behaviour — the failure is swallowed, no patch is
119
+ * emitted, and the fallback persists. Spec: `streaming-shell.specs.md`
120
+ * (AC-FH1 … AC-FH6).
121
+ */
122
+ interface SuspenseFailureHandler {
123
+ /** Decide a substitute for an unhandled Suspense resolution failure. */
124
+ readonly handle: (cause: Cause.Cause<unknown>) => Option.Option<SuspenseFailureSubstitute>;
125
+ }
126
+ declare const SuspenseFailureHandlerTag_base: Context.TagClass<SuspenseFailureHandlerTag, "@weftui/dom/SuspenseFailureHandler", SuspenseFailureHandler>;
127
+ /**
128
+ * `Context.Tag` for the {@link SuspenseFailureHandler} seam. Read via
129
+ * `Effect.serviceOption` inside the Suspense resolution fiber, so providing it
130
+ * is always optional. Lives in `@weftui/dom` (like `AppRpcClientTag`) so dom
131
+ * never imports its consumers.
132
+ */
133
+ declare class SuspenseFailureHandlerTag extends SuspenseFailureHandlerTag_base {}
134
+ //#endregion
135
+ export { type HydratableShell, type SuspenseFailureHandler, SuspenseFailureHandlerTag, type SuspenseFailureSubstitute, renderToHydratableShell, renderToStream, renderToStreamHydratable, renderToString, renderToStringHydratable };
@@ -1 +1 @@
1
- import{s as e}from"../data-Bk62ePeP.js";import{a as t,d as n,f as r,n as i,o as a,p as o,t as s,u as c}from"../boundary-replay-C9r9jASU.js";import{Cause as l,Effect as u,Exit as d,Option as f,Queue as p,Ref as m,Schema as h,Stream as g,Subscribable as _}from"effect";import{AppRpcClientTag as v,FAILURE_BOUNDARY as y,FRAGMENT as b,LIST as x,SERVER_BOUNDARY as S,SUSPENSE_BOUNDARY as C,Source as w,getElementDescriptor as T,isStream as E,toStream as D}from"@weftui/core";function O(e){if(e.length<=2||!e.startsWith(`on`))return!1;let t=e[2];return t!==void 0&&t>=`a`&&t<=`z`}const k=new Set([`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`link`,`meta`,`param`,`source`,`track`,`wbr`]),A={'"':`&quot;`,"&":`&amp;`,"'":`&#x27;`,"<":`&lt;`,">":`&gt;`};function j(e){return e.replace(/["'&<>]/g,e=>A[e]??e)}const ee=new Set([38,60,62,8232,8233]);function M(e){let t=JSON.stringify(e),n=``;for(let e=0;e<t.length;e++){let r=t.charCodeAt(e);ee.has(r)?n+=`\\u${r.toString(16).padStart(4,`0`)}`:n+=t[e]}return n}function N(e){return e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}function P(e){return u.gen(function*(){let t=``;for(let[n,r]of Object.entries(e))if(!(n===`children`||n===`ref`||O(n))){if(n===`style`){t+=yield*L(r);continue}t+=yield*I(n,r)}return t})}function F(e){return E(e)||u.isEffect(e)?D(e).pipe(g.runHead,u.map(f.getOrElse(()=>void 0))):u.succeed(e)}function I(e,t){return u.gen(function*(){let n=yield*F(t);return n==null?``:typeof n==`boolean`?n?` ${e}=""`:``:` ${e}="${j(String(n))}"`})}function L(e){return u.gen(function*(){let t=yield*F(e);if(t==null)return``;if(typeof t==`string`)return t===``?``:` style="${j(t)}"`;if(typeof t==`object`){let e=[];for(let[n,r]of Object.entries(t)){let t=yield*F(r);t!=null&&e.push(`${N(n)}: ${String(t)}`)}return e.length===0?``:` style="${j(e.join(`; `))}"`}return``})}function R(e,t){return`<template id="ef-s-${e}">${t}</template><script>(function(){var w=document.createTreeWalker(document,128),s,e;while(w.nextNode()){var d=w.currentNode.data;if(d==="${o(e)}")s=w.currentNode;if(d==="${r(e)}"){e=w.currentNode;break;}}if(!s||!e)return;var p=s.parentNode,c=s.nextSibling,n;while(c&&c!==e){n=c.nextSibling;p.removeChild(c);c=n;}var t=document.getElementById("ef-s-${e}");p.insertBefore(t.content,e);p.removeChild(s);p.removeChild(e);t.remove();document.currentScript.remove();})();<\/script>`}function z(e,t,n){return g.unwrap(u.gen(function*(){let i=++t.idCounter.current;yield*m.update(t.pendingCount,e=>e+1);let a=e.children===void 0?null:(Array.isArray(e.children),e.children),s=u.gen(function*(){let e=yield*g.mkString(n(a));yield*p.offer(t.patchQueue,R(i,e))}).pipe(u.ensuring(m.updateAndGet(t.pendingCount,e=>e-1).pipe(u.flatMap(e=>e<=0?p.shutdown(t.patchQueue):u.void))),u.ignore);yield*u.forkIn(s,t.scope);let c=`<!--${o(i)}-->`,l=`<!--${r(i)}-->`,d=e.fallback??null;return g.make(c).pipe(g.concat(n(d)),g.concat(g.make(l)))}))}function B(e,t,n){let r=e.children.length===0?null:e.children.length===1?e.children[0]:e.children;return g.unwrapScoped(u.gen(function*(){let a=yield*g.mkString(n(r)).pipe(u.catchAllCause(r=>u.gen(function*(){let a=e.match(r);if(a===null)return yield*u.failCause(r);let o=yield*g.mkString(n(a));if(t===null)return o;let c=yield*m.getAndSet(t,f.none());return f.isNone(c)?o:`<script type="application/json" ${s}>${M({index:i(e.children).indexOf(c.value.owner),error:c.value.encoded})}<\/script>`+o})));return g.make(a)}))}function V(e,t,n){if(t===null)return u.failCause(n);let r=l.failureOption(n);return f.isNone(r)?u.failCause(n):h.encode(e.errorSchema)(r.value).pipe(u.flatMap(n=>m.set(t,f.some({owner:e,encoded:n}))),u.matchCauseEffect({onFailure:()=>u.failCause(n),onSuccess:()=>u.failCause(n)}))}function H(e){return{value:_.make({get:u.succeed(e),changes:g.make(e)}),refetch:u.void,pending:_.make({get:u.succeed(!1),changes:g.make(!1)}),error:_.make({get:u.succeed(f.none()),changes:g.make(f.none())})}}function U(e,t,n,r){return g.unwrap(u.gen(function*(){let i=yield*(yield*v).call(e.tag,e.payload()).pipe(u.catchAllCause(t=>V(e,n,t))),a=r(e.render(H(i)));if(!t)return a;let o=`<script type="application/json">${M(yield*h.encode(e.successSchema)(i))}<\/script>`;return g.make(o).pipe(g.concat(a))}))}function W(e){return u.scoped(w.toSubscribable(e).pipe(u.flatMap(e=>e.get),u.map(e=>Array.from(e)),u.catchTag(`NoPropValue`,()=>u.succeed([]))))}function G(t,n){if(t==null||typeof t==`boolean`)return g.empty;if(typeof t==`string`||typeof t==`number`||typeof t==`bigint`)return g.make(j(String(t)));if(E(t)||u.isEffect(t)){let e=T(t);if(e!==void 0)return G(e,n);if(u.isEffect(t)){let e=u.runSyncExit(t);if(d.isSuccess(e))return G(e.value,n)}return D(t).pipe(g.runHead,u.map(f.match({onNone:()=>g.empty,onSome:e=>G(e,n)})),g.unwrap)}if(typeof t==`object`&&Symbol.iterator in t&&!(`type`in t))return g.flatMap(g.fromIterable(t),e=>G(e,n));if(typeof t==`object`&&`type`in t&&!(Symbol.iterator in t)){let{type:e,props:r}=t;if(e===b)return q(r,n);if(e===C){let e=r;return n===null?G(e.fallback??null,null):z(e,n,e=>G(e,n))}if(e===y)return B(r,null,e=>G(e,n));if(e===S)return U(r,!1,null,e=>G(e,n));if(e===x)return K(r,n);if(typeof e==`string`){let t=g.fromEffect(P(r).pipe(u.map(t=>`<${e}${t}>`)));return k.has(e)?t:t.pipe(g.concat(q(r,n)),g.concat(g.make(`</${e}>`)))}if(typeof e==`function`)return G(e(r),n)}return g.fail(new e({type:t.type,message:`Invalid Renderable type: expected string, FRAGMENT, or function, got ${typeof t.type}`}))}function K(e,t){return g.unwrap(u.gen(function*(){let n=yield*W(e.of),r=g.empty;return n.forEach((n,i)=>{r=r.pipe(g.concat(G(e.render(n,i),t)))}),r}))}function q(e,t){let n=`children`in e?e.children:void 0;if(n==null)return g.empty;let r=Array.isArray(n)?n:[n];return g.flatMap(g.fromIterable(r),e=>G(e,t))}function J(t,r,i){if(t==null||typeof t==`boolean`)return g.empty;if(typeof t==`string`||typeof t==`number`||typeof t==`bigint`)return g.make(j(String(t)));if(E(t)||u.isEffect(t)){let e=T(t);if(e!==void 0)return J(e,r,i);if(u.isEffect(t)){let e=u.runSyncExit(t);if(d.isSuccess(e))return J(e.value,r,i)}return D(t).pipe(g.runHead,u.map(e=>{let t=++r.current,a=f.match(e,{onNone:()=>g.empty,onSome:e=>J(e,r,i)});return g.make(`<!--${n(t)}-->`).pipe(g.concat(a),g.concat(g.make(`<!--${c(t)}-->`)))}),g.unwrap)}if(typeof t==`object`&&Symbol.iterator in t&&!(`type`in t))return g.flatMap(g.fromIterable(t),e=>J(e,r,i));if(typeof t==`object`&&`type`in t&&!(Symbol.iterator in t)){let{type:e,props:n}=t;if(e===b)return X(n,r,i);if(e===C){let e=n;return i===null?J(e.fallback??null,r,null):z(e,i,e=>J(e,r,i))}if(e===y)return B(n,i?.failureCollector??null,e=>J(e,r,i));if(e===S)return U(n,!0,i?.failureCollector??null,e=>J(e,r,i));if(e===x)return Y(n,r,i);if(typeof e==`string`){let t=g.fromEffect(P(n).pipe(u.map(t=>`<${e}${t}>`)));return k.has(e)?t:t.pipe(g.concat(X(n,r,i)),g.concat(g.make(`</${e}>`)))}if(typeof e==`function`)return J(e(n),r,i)}return g.fail(new e({type:t.type,message:`Invalid Renderable type: expected string, FRAGMENT, or function, got ${typeof t.type}`}))}function Y(e,r,i){return g.unwrap(u.gen(function*(){let o=++r.current,s=yield*W(e.of),l=g.empty;return s.forEach((n,o)=>{let s=++r.current;l=l.pipe(g.concat(g.make(`<!--${a(s)}-->`)),g.concat(J(e.render(n,o),r,i)),g.concat(g.make(`<!--${t(s)}-->`)))}),g.make(`<!--${n(o)}-->`).pipe(g.concat(l),g.concat(g.make(`<!--${c(o)}-->`)))}))}function X(e,t,n){let r=`children`in e?e.children:void 0;if(r==null)return g.empty;let i=Array.isArray(r)?r:[r];return g.flatMap(g.fromIterable(i),e=>J(e,t,n))}const Z=e=>G(e,null),Q=e=>g.unwrapScoped(u.gen(function*(){let t=yield*p.unbounded(),n=yield*m.make(0),r=G(e,{patchQueue:t,pendingCount:n,idCounter:{current:0},scope:yield*u.scope,failureCollector:null}).pipe(g.ensuring(m.get(n).pipe(u.flatMap(e=>e===0?p.shutdown(t):u.void))));return g.concat(r,g.fromQueue(t))})),$=e=>g.unwrapScoped(u.gen(function*(){let t=yield*p.unbounded(),n=yield*m.make(0),r=J(e,{current:0},{patchQueue:t,pendingCount:n,idCounter:{current:0},scope:yield*u.scope,failureCollector:yield*m.make(f.none())}).pipe(g.ensuring(m.get(n).pipe(u.flatMap(e=>e===0?p.shutdown(t):u.void))));return g.concat(r,g.fromQueue(t))})),te=e=>Z(e).pipe(g.mkString),ne=e=>$(e).pipe(g.mkString);export{Q as renderToStream,$ as renderToStreamHydratable,te as renderToString,ne as renderToStringHydratable};
1
+ import{s as e}from"../data-Bk62ePeP.js";import{d as t,f as n,m as r,n as i,o as a,p as o,r as s,s as c,t as l}from"../boundary-replay-BR26_puM.js";import{Cause as u,Context as d,Effect as f,ExecutionStrategy as p,Exit as m,Option as h,Queue as g,Ref as _,Schema as v,Scope as y,Stream as b,Subscribable as x}from"effect";import{AppRpcClientTag as ee,FAILURE_BOUNDARY as S,FRAGMENT as C,LIST as w,SERVER_BOUNDARY as T,SUSPENSE_BOUNDARY as E,Source as D,getElementDescriptor as O,isStream as k,toStream as A}from"@weftui/core";function te(e){if(e.length<=2||!e.startsWith(`on`))return!1;let t=e[2];return t!==void 0&&t>=`a`&&t<=`z`}const j=new Set([`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`link`,`meta`,`param`,`source`,`track`,`wbr`]),M={'"':`&quot;`,"&":`&amp;`,"'":`&#x27;`,"<":`&lt;`,">":`&gt;`};function N(e){return e.replace(/["'&<>]/g,e=>M[e]??e)}const ne=new Set([38,60,62,8232,8233]);function P(e){let t=JSON.stringify(e),n=``;for(let e=0;e<t.length;e++){let r=t.charCodeAt(e);ne.has(r)?n+=`\\u${r.toString(16).padStart(4,`0`)}`:n+=t[e]}return n}function re(e){return e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}function F(e){return f.gen(function*(){let t=``;for(let[n,r]of Object.entries(e))if(!(n===`children`||n===`ref`||te(n))){if(n===`style`){t+=yield*R(r);continue}t+=yield*L(n,r)}return t})}function I(e){return k(e)||f.isEffect(e)?A(e).pipe(b.runHead,f.map(h.getOrElse(()=>void 0))):f.succeed(e)}function L(e,t){return f.gen(function*(){let n=yield*I(t);return n==null?``:typeof n==`boolean`?n?` ${e}=""`:``:` ${e}="${N(String(n))}"`})}function R(e){return f.gen(function*(){let t=yield*I(e);if(t==null)return``;if(typeof t==`string`)return t===``?``:` style="${N(t)}"`;if(typeof t==`object`){let e=[];for(let[n,r]of Object.entries(t)){let t=yield*I(r);t!=null&&e.push(`${re(n)}: ${String(t)}`)}return e.length===0?``:` style="${N(e.join(`; `))}"`}return``})}var z=class extends d.Tag(`@weftui/dom/SuspenseFailureHandler`)(){};function B(e,t,n=!1,i){let a=r(e),c=o(e),l=n?`var m=document.createElement("meta");m.setAttribute("name","robots");m.setAttribute("content","noindex");document.head.appendChild(m);`:``,u=i!==void 0,d=u?`<script type="application/json" ${s}>`+P({error:i})+`<\/script>`+t:t,f=u?``:`p.removeChild(s);p.removeChild(e);`;return`<template id="ef-s-${e}">${d}</template><script>(function(){`+l+`var w=document.createTreeWalker(document,128),s,e;while(w.nextNode()){var d=w.currentNode.data;if(d==="${a}")s=w.currentNode;if(d==="${c}"){e=w.currentNode;break;}}if(!s||!e)return;var p=s.parentNode,c=s.nextSibling,n;while(c&&c!==e){n=c.nextSibling;p.removeChild(c);c=n;}var t=document.getElementById("ef-s-${e}");p.insertBefore(t.content,e);`+f+`t.remove();document.currentScript.remove();})();<\/script>`}function V(e,t,n){return b.unwrap(f.gen(function*(){let i=++t.idCounter.current;yield*_.update(t.pendingCount,e=>e+1);let a=e.children===void 0?null:(Array.isArray(e.children),e.children),s=f.gen(function*(){let e=yield*b.mkString(n(a));yield*g.offer(t.patchQueue,h.some(B(i,e)))}).pipe(f.catchAllCause(e=>u.isInterruptedOnly(e)?f.failCause(e):f.gen(function*(){let r=yield*f.serviceOption(z);if(h.isNone(r))return;let a=r.value.handle(e);if(h.isNone(a))return;let o=yield*b.mkString(n(a.value.content));yield*g.offer(t.patchQueue,h.some(B(i,o,a.value.markNoindex,a.value.failureReplay)))})),f.ensuring(_.updateAndGet(t.pendingCount,e=>e-1).pipe(f.flatMap(e=>e<=0?g.offer(t.patchQueue,h.none()).pipe(f.asVoid):f.void))),f.ignore);yield*f.forkIn(s,t.scope);let c=`<!--${r(i)}-->`,l=`<!--${o(i)}-->`,d=e.fallback??null;return b.make(c).pipe(b.concat(n(d)),b.concat(b.make(l)))}))}function H(e,t,n){let r=e.children.length===0?null:e.children.length===1?e.children[0]:e.children;return b.unwrapScoped(f.gen(function*(){let a=yield*b.mkString(n(r)).pipe(f.catchAllCause(r=>f.gen(function*(){let a=e.match(r);if(a===null)return yield*f.failCause(r);let o=yield*b.mkString(n(a));if(t===null)return o;let s=yield*_.getAndSet(t,h.none());return h.isNone(s)?o:`<script type="application/json" ${l}>${P({index:i(e.children).indexOf(s.value.owner),error:s.value.encoded})}<\/script>`+o})));return b.make(a)}))}function ie(e,t,n){if(t===null)return f.failCause(n);let r=u.failureOption(n);return h.isNone(r)?f.failCause(n):v.encode(e.errorSchema)(r.value).pipe(f.flatMap(n=>_.set(t,h.some({owner:e,encoded:n}))),f.matchCauseEffect({onFailure:()=>f.failCause(n),onSuccess:()=>f.failCause(n)}))}function U(e){return{value:x.make({get:f.succeed(e),changes:b.make(e)}),refetch:f.void,pending:x.make({get:f.succeed(!1),changes:b.make(!1)}),error:x.make({get:f.succeed(h.none()),changes:b.make(h.none())})}}function W(e,t,n,r){return b.unwrap(f.gen(function*(){let i=yield*(yield*ee).call(e.tag,e.payload()).pipe(f.catchAllCause(t=>ie(e,n,t))),a=r(e.render(U(i)));if(!t)return a;let o=`<script type="application/json">${P(yield*v.encode(e.successSchema)(i))}<\/script>`;return b.make(o).pipe(b.concat(a))}))}function G(e){return f.scoped(D.toSubscribable(e).pipe(f.flatMap(e=>e.get),f.map(e=>Array.from(e)),f.catchTag(`NoPropValue`,()=>f.succeed([]))))}function K(t,n){if(t==null||typeof t==`boolean`)return b.empty;if(typeof t==`string`||typeof t==`number`||typeof t==`bigint`)return b.make(N(String(t)));if(k(t)||f.isEffect(t)){let e=O(t);if(e!==void 0)return K(e,n);if(f.isEffect(t)){let e=f.runSyncExit(t);if(m.isSuccess(e))return K(e.value,n)}return A(t).pipe(b.runHead,f.map(h.match({onNone:()=>b.empty,onSome:e=>K(e,n)})),b.unwrap)}if(typeof t==`object`&&Symbol.iterator in t&&!(`type`in t))return b.flatMap(b.fromIterable(t),e=>K(e,n));if(typeof t==`object`&&`type`in t&&!(Symbol.iterator in t)){let{type:e,props:r}=t;if(e===C)return J(r,n);if(e===E){let e=r;return n===null?K(e.fallback??null,null):V(e,n,e=>K(e,n))}if(e===S)return H(r,null,e=>K(e,n));if(e===T)return W(r,!1,null,e=>K(e,n));if(e===w)return q(r,n);if(typeof e==`string`){let t=b.fromEffect(F(r).pipe(f.map(t=>`<${e}${t}>`)));return j.has(e)?t:t.pipe(b.concat(J(r,n)),b.concat(b.make(`</${e}>`)))}if(typeof e==`function`)return K(e(r),n)}return b.fail(new e({type:t.type,message:`Invalid Renderable type: expected string, FRAGMENT, or function, got ${typeof t.type}`}))}function q(e,t){return b.unwrap(f.gen(function*(){let n=yield*G(e.of),r=b.empty;return n.forEach((n,i)=>{r=r.pipe(b.concat(K(e.render(n,i),t)))}),r}))}function J(e,t){let n=`children`in e?e.children:void 0;if(n==null)return b.empty;let r=Array.isArray(n)?n:[n];return b.flatMap(b.fromIterable(r),e=>K(e,t))}function Y(r,i,a){if(r==null||typeof r==`boolean`)return b.empty;if(typeof r==`string`||typeof r==`number`||typeof r==`bigint`)return b.make(N(String(r)));if(k(r)||f.isEffect(r)){let e=O(r);if(e!==void 0)return Y(e,i,a);if(f.isEffect(r)){let e=f.runSyncExit(r);if(m.isSuccess(e))return Y(e.value,i,a)}return A(r).pipe(b.runHead,f.map(e=>{let r=++i.current,o=h.match(e,{onNone:()=>b.empty,onSome:e=>Y(e,i,a)});return b.make(`<!--${n(r)}-->`).pipe(b.concat(o),b.concat(b.make(`<!--${t(r)}-->`)))}),b.unwrap)}if(typeof r==`object`&&Symbol.iterator in r&&!(`type`in r))return b.flatMap(b.fromIterable(r),e=>Y(e,i,a));if(typeof r==`object`&&`type`in r&&!(Symbol.iterator in r)){let{type:e,props:t}=r;if(e===C)return X(t,i,a);if(e===E){let e=t;return a===null?Y(e.fallback??null,i,null):V(e,a,e=>Y(e,i,a))}if(e===S)return H(t,a?.failureCollector??null,e=>Y(e,i,a));if(e===T)return W(t,!0,a?.failureCollector??null,e=>Y(e,i,a));if(e===w)return ae(t,i,a);if(typeof e==`string`){let n=b.fromEffect(F(t).pipe(f.map(t=>`<${e}${t}>`)));return j.has(e)?n:n.pipe(b.concat(X(t,i,a)),b.concat(b.make(`</${e}>`)))}if(typeof e==`function`)return Y(e(t),i,a)}return b.fail(new e({type:r.type,message:`Invalid Renderable type: expected string, FRAGMENT, or function, got ${typeof r.type}`}))}function ae(e,r,i){return b.unwrap(f.gen(function*(){let o=++r.current,s=yield*G(e.of),l=b.empty;return s.forEach((t,n)=>{let o=++r.current;l=l.pipe(b.concat(b.make(`<!--${c(o)}-->`)),b.concat(Y(e.render(t,n),r,i)),b.concat(b.make(`<!--${a(o)}-->`)))}),b.make(`<!--${n(o)}-->`).pipe(b.concat(l),b.concat(b.make(`<!--${t(o)}-->`)))}))}function X(e,t,n){let r=`children`in e?e.children:void 0;if(r==null)return b.empty;let i=Array.isArray(r)?r:[r];return b.flatMap(b.fromIterable(i),e=>Y(e,t,n))}const oe=e=>K(e,null),se=e=>b.unwrapScoped(f.gen(function*(){let t=yield*g.unbounded(),n=yield*_.make(0),r=K(e,{patchQueue:t,pendingCount:n,idCounter:{current:0},scope:yield*f.scope,failureCollector:null}).pipe(b.ensuring(_.get(n).pipe(f.flatMap(e=>e===0?g.offer(t,h.none()).pipe(f.asVoid):f.void))));return b.concat(r,Z(t))})),Z=e=>b.fromQueue(e).pipe(b.takeWhile(h.isSome),b.map(e=>e.value)),Q=(e,t)=>f.gen(function*(){let n=yield*g.unbounded(),r=yield*_.make(0);return{mainStream:Y(e,{current:0},{patchQueue:n,pendingCount:r,idCounter:{current:0},scope:t,failureCollector:yield*_.make(h.none())}).pipe(b.ensuring(_.get(r).pipe(f.flatMap(e=>e===0?g.offer(n,h.none()).pipe(f.asVoid):f.void)))),patches:Z(n)}}),$=e=>b.unwrapScoped(f.gen(function*(){let{mainStream:t,patches:n}=yield*Q(e,yield*f.scope);return b.concat(t,n)})),ce=e=>oe(e).pipe(b.mkString),le=e=>$(e).pipe(b.mkString),ue=e=>f.gen(function*(){let t=yield*f.scope,n=yield*y.fork(t,p.sequential),{mainStream:r,patches:i}=yield*Q(e,n);return{shell:yield*b.mkString(r).pipe(f.onError(e=>y.close(n,m.failCause(e)))),patches:i}});export{z as SuspenseFailureHandlerTag,ue as renderToHydratableShell,se as renderToStream,$ as renderToStreamHydratable,ce as renderToString,le as renderToStringHydratable};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@weftui/dom",
3
- "version": "0.20.9",
3
+ "version": "0.22.0",
4
4
  "description": "Client-side DOM renderer for Weft",
5
5
  "license": "MIT",
6
6
  "author": "Stef van Wijchen",
@@ -30,17 +30,17 @@
30
30
  "access": "public"
31
31
  },
32
32
  "dependencies": {
33
- "@weftui/core": "0.20.9"
33
+ "@weftui/core": "0.22.0"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@effect/rpc": "^0.75.1",
37
37
  "@types/jsdom": "^28.0.3",
38
- "@types/node": "^25.9.1",
39
- "effect": "^3.21.2",
38
+ "@types/node": "^25.9.2",
39
+ "effect": "^3.21.3",
40
40
  "jsdom": "^29.1.1",
41
- "tsx": "^4.22.3",
41
+ "tsx": "^4.22.4",
42
42
  "typescript": "^6.0.3",
43
- "vite-plus": "latest"
43
+ "vite-plus": "0.2.1"
44
44
  },
45
45
  "peerDependencies": {
46
46
  "effect": "^3.21"
@@ -1 +0,0 @@
1
- import{Effect as e}from"effect";import{FAILURE_BOUNDARY as t,FRAGMENT as n,LIST as r,SERVER_BOUNDARY as i,SUSPENSE_BOUNDARY as a,getElementDescriptor as o,isStream as s}from"@weftui/core";function c(e){return` stream-start-${e} `}function l(e){return` stream-end-${e} `}function u(e){return` suspense-start-${e} `}function d(e){return` suspense-end-${e} `}const f=/^ suspense-(start|end)-(\d+) $/;function p(e){let t=f.exec(e.data);return t===null?null:{kind:t[1],id:Number.parseInt(t[2],10)}}function m(e){return` boundary-start-${e} `}function h(e){return` boundary-end-${e} `}const g=/^ stream-(start|end)-(\d+) $/;function _(e){let t=g.exec(e.data);return t===null?null:{kind:t[1],id:Number.parseInt(t[2],10)}}function v(e){return` list-item-start-${e} `}function y(e){return` list-item-end-${e} `}const b=/^ list-item-(start|end)-(\d+) $/;function x(e){let t=b.exec(e.data);return t===null?null:{kind:t[1],id:Number.parseInt(t[2],10)}}const S=`data-weft-boundary-failure`;function C(e){let t=[];return w(e,t),t}function w(t,n){if(!(t==null||typeof t==`boolean`)&&!(typeof t==`string`||typeof t==`number`||typeof t==`bigint`)){if(s(t)||e.isEffect(t)){let e=o(t);e!==void 0&&T(e,n);return}if(typeof t==`object`&&Symbol.iterator in t&&!(`type`in t)){for(let e of t)w(e,n);return}typeof t==`object`&&`type`in t&&!(Symbol.iterator in t)&&T(t,n)}}function T(e,o){let{type:s,props:c}=e;if(s===i){o.push(c);return}if(s===n||s===a||s===t){E(c,o);return}if(s!==r){if(typeof s==`string`){E(c,o);return}typeof s==`function`&&w(s(c),o)}}function E(e,t){let n=`children`in e?e.children:void 0;if(n==null)return;let r=Array.isArray(n)?n:[n];for(let e of r)w(e,t)}export{y as a,_ as c,c as d,d as f,m as i,p as l,C as n,v as o,u as p,h as r,x as s,S as t,l as u};