vitral 0.4.0 → 0.6.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/angular.d.ts +2 -2
- package/dist/angular.js +5 -5
- package/dist/auto.js +5 -5
- package/dist/chunk-B2MPYF4M.js +27 -0
- package/dist/chunk-DAESKNQ6.js +207 -0
- package/dist/{chunk-WD4CDGDZ.js → chunk-HIVMSPGM.js} +12 -11
- package/dist/{chunk-IH3ZT3QU.js → chunk-JBNITHPI.js} +1 -1
- package/dist/{chunk-6EX5KYT5.js → chunk-KU6HF2EW.js} +2 -2
- package/dist/chunk-NZEQGRBL.js +93 -0
- package/dist/chunk-OVVGVPIV.js +21 -0
- package/dist/{chunk-BCC25ANK.js → chunk-PLM7U7LR.js} +10 -6
- package/dist/chunk-PY7P5BF4.js +404 -0
- package/dist/{chunk-EMSB2NVX.js → chunk-S7PIVPBX.js} +10 -4
- package/dist/{chunk-W6322KGP.js → chunk-UXLKRSOM.js} +2 -2
- package/dist/cli.js +414 -44
- package/dist/dict.d.ts +69 -0
- package/dist/dict.js +8 -0
- package/dist/edge.d.ts +124 -0
- package/dist/edge.js +413 -0
- package/dist/element.d.ts +2 -2
- package/dist/element.js +5 -5
- package/dist/embed.js +2 -2
- package/dist/{events-Dkpkw_Sv.d.ts → events-0rxFlWJJ.d.ts} +1 -1
- package/dist/{expose-OVWTPHH5.js → expose-EQOWTJNC.js} +3 -3
- package/dist/federation.d.ts +1 -1
- package/dist/hydrate-R76V2I36.js +182 -0
- package/dist/iframe.js +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +3 -3
- package/dist/match-CMBM_jLW.d.ts +16 -0
- package/dist/otel.d.ts +29 -1
- package/dist/otel.js +13 -1
- package/dist/preact.d.ts +4 -4
- package/dist/preact.js +4 -4
- package/dist/prefetch.d.ts +25 -0
- package/dist/prefetch.js +178 -0
- package/dist/react-server.d.ts +20 -0
- package/dist/react-server.js +13 -0
- package/dist/react.d.ts +7 -4
- package/dist/react.js +19 -31
- package/dist/reframe-MUV472OU.js +251 -0
- package/dist/routes.d.ts +4 -13
- package/dist/routes.js +27 -23
- package/dist/{shadow-PVSETNMZ.js → shadow-S4SKHTA7.js} +2 -2
- package/dist/single-spa.d.ts +1 -1
- package/dist/{slot-UPg6ob9v.d.ts → slot-D49L1rdU.d.ts} +1 -1
- package/dist/solid.d.ts +3 -3
- package/dist/solid.js +4 -4
- package/dist/{sri-M7ZRU57G.js → sri-576GTDIA.js} +2 -1
- package/dist/svelte.d.ts +4 -4
- package/dist/svelte.js +4 -4
- package/dist/testing.d.ts +171 -3
- package/dist/testing.js +191 -4
- package/dist/{types-CA2p9KHC.d.ts → types-DUtcF3HO.d.ts} +12 -1
- package/dist/vitals.d.ts +29 -0
- package/dist/vitals.js +152 -0
- package/dist/vite.js +28 -422
- package/dist/vue.d.ts +2 -2
- package/dist/vue.js +4 -4
- package/package.json +111 -16
package/dist/embed.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(()=>{var
|
|
2
|
-
`),document.head.appendChild(c)}i.replaceSync(u);let p=[...t,e];return Promise.all(l.filter(c=>!p.includes(c)).map(c=>tt(c,p))).then(c=>[...c.flat(),i])}).catch(()=>(de.delete(e),[])),de.set(e,n)),n}function Qe(e){let t=document.documentElement,o=[],r=()=>{e.classList.remove(...o),o=[...t.classList].filter(i=>!e.classList.contains(i)),e.classList.add(...o);let s=t.getAttribute("data-theme");s===null?e.removeAttribute("data-theme"):e.setAttribute("data-theme",s)};r();let n=new MutationObserver(r);return n.observe(t,{attributeFilter:["class","data-theme"]}),()=>n.disconnect()}var de,fo,ze,go,ho,pe,me,Xe,Ze,he=h(()=>{"use strict";te();de=new Map,fo=()=>{},ze=new Set,go=/url\(\s*(['"]?)(?![a-z]+:|\/\/|#)([^'")]+)\1\s*\)/gi,ho=/@property\s+(--[\w-]+)\s*\{[^}]*\}|@font-face\s*\{[^}]*\}|@import\s+(?:url\(\s*)?(?:(['"])(.*?)\2|([^'"\s);]+))\s*\)?[^;]*;/gi;pe=new Map,me=!1,Xe=e=>Object.getPrototypeOf(e)===customElements,Ze=new Map});function ye(e,t,o){let r=`${e} ${t??""}`,n=ve.get(r);return n||(n=q(e,d().settings().timeout,e,{integrity:t,priority:o}).then(s=>new TextDecoder().decode(s)),n.catch(()=>ve.delete(r)),ve.set(r,n)),n}function nt(e,t,o="auto"){if(t&&wo())Promise.resolve().then(()=>(he(),ge)).then(r=>r.prefetch(e,o),rt);else for(let r of e.css)document.querySelector(`link[href="${r}"]`)||C("preload",r,{as:"style",integrity:e.sri?.[r]??"",fetchPriority:o})}function st(e,t,o,r){return t?Promise.resolve().then(()=>(he(),ge)).then(n=>n.attachShadowRoot(t,o,e,d().settings().styles,r)):F(e.css,null,e.sri).then(()=>[rt])}function F(e,t,o={}){let r=t??document,n=ot.get(r);n||ot.set(r,n=new Map);let s=t??document.head,i=d().settings().timeout;return Promise.all(e.map(a=>{let l=n.get(a);return l||(l=new Promise(u=>{let p=C("stylesheet",a,{integrity:o[a]??""},s);setTimeout(u,i),p.onload=()=>u(),p.onerror=()=>{p.remove(),n.delete(a),u()}}),n.set(a,l)),l}))}var ot,ve,rt,wo,te=h(()=>{"use strict";R();k();ot=new WeakMap,ve=new Map,rt=()=>{},wo=()=>typeof CSSStyleSheet<"u"&&"replaceSync"in CSSStyleSheet.prototype});var lt={};O(lt,{resolveModule:()=>So,resolveTarget:()=>bo,splitName:()=>it});function it(e){let t=d(),o=e.length;if(!t.entry(e))for(;(o=e.lastIndexOf("/",o-1))>0&&!t.entry(e.slice(0,o)););return o>0&&o<e.length?[e.slice(0,o),"."+e.slice(o)]:[e,null]}function bo(e,t){return at(e,t).then(o=>Ee(e,o))}function at(e,t){let o=d();return o.entry(e)||!e.includes("/")?t(e):o.pending().then(async()=>{let[r,n]=it(e);if(!n)return t(e);let s=await t(r),i=s.exports?.exposes;if(!i?.[n])throw new f("NOT_EXPOSED",e,`${r} n\xE3o exp\xF5e ${n}. Expostos: ${Object.keys(i??{}).join(", ")}`);try{let a=i[n],l=await(typeof a=="function"?a():a);return{...s,module:l?.default??l,exports:l}}catch(a){throw new f("LOAD_FAILED",e,String(a),a)}})}async function So(e,t){let o=await at(e,t);if(!o.exports)throw new f("INVALID_MODULE",e,"o remote foi carregado por uma c\xF3pia antiga da lib, que n\xE3o guarda os exports");return o.exports}var ct=h(()=>{"use strict";b();oe();R()});async function dt(e,t,o){let r=o.split(/\s+/).map(a=>/^sha(256|384|512)-([\w+/=-]+)/.exec(a)).filter(a=>!!a);if(!r.length)throw new f("INTEGRITY",e,`formato de integrity inv\xE1lido: ${o}`);let n=Math.max(...r.map(a=>+a[1])),s=btoa(String.fromCharCode(...new Uint8Array(await crypto.subtle.digest("SHA-"+n,t)))),i=r.filter(a=>+a[1]===n).map(a=>a[2]);if(!i.some(a=>ut(a)===ut(s)))throw new f("INTEGRITY",e,`o hash n\xE3o confere: esperado sha${n}-${i.join(" ou ")}, obtido sha${n}-${s}`)}var ut,pt=h(()=>{"use strict";b();ut=e=>e.replace(/-/g,"+").replace(/_/g,"/").replace(/=/g,"")});var wt={};O(wt,{importVerified:()=>Po,verified:()=>Et});async function Po(e,t,o,r){let{entry:n,integrity:s,priority:i}=t;if(!Re.has(n))try{let p=await V(r,e,(async()=>{let c=await Et(t.split??{entry:n,chunks:[],sri:{[n]:s},priority:i},o);return c&&{ns:await o(c)}})());if(p)return p.ns}catch(u){if(Re.add(n),u instanceof f&&u.code==="TIMEOUT")throw u}let a=await q(n,r,e,Re.has(n)?{priority:i,cache:"reload"}:{priority:i});await dt(e,a,s);let l=URL.createObjectURL(new Blob([a],{type:"text/javascript"}));try{return await o(l)}finally{URL.revokeObjectURL(l)}}async function Oo(e){if(we)return await we&&yt(e,!1);let t=!1;try{t=localStorage[gt]===navigator.userAgent}catch{}let o=await(we=yt(e,!t));if(o&&!t)try{localStorage[gt]=navigator.userAgent}catch{}return o}async function Et(e,t){let{entry:o,chunks:r,sri:n,priority:s="auto",dedupe:i=[]}=e,a=i.flatMap(p=>[...p.chunks??[],p.file]);if(![o,...r,...a].every(p=>xo.test(n[p]??"")))return;let l=globalThis[Symbol.for("vitral")],u=async p=>{if(!t||!i.length)return;let{shared:c}=await Promise.resolve().then(()=>(Q(),Z));for(let g of i)c(l)(g.name,g.range,{version:g.version,url:g.file,load:async()=>(p&&await Promise.all([...g.chunks??[],g.file].map(m=>be(m,n[m],s))),(await t(g.file)).default)})};if(ft!==!1&&(ft=await Oo(n))){await u();for(let p of r)fetch(p,{priority:s}).catch(()=>{});return o}if(await(Lo??=Mo()))return l.sri={...l.sri,...n},await u(!0),await Promise.all([...r,o].map(p=>be(p,n[p],s))),o}async function yt(e,t){if(!HTMLScriptElement.supports?.("importmap"))return!1;let o={};for(let s in e)/\.css([?#]|$)/.test(s)||(o[s]=e[s]);let r=t?["export{}","export{}//"].map(s=>URL.createObjectURL(new Blob([s],{type:"text/javascript"}))):[];for(let s of r)o[s]=vt;let n=!0;try{let s=document.createElement("script");s.type="importmap",s.nonce=document.querySelector("script[nonce]")?.nonce??"",s.onerror=()=>n=!1,s.addEventListener("securitypolicyviolation",()=>n=!1),s.textContent=JSON.stringify({integrity:o}),document.head.append(s),await ht(),await ht(),n&&t&&(n=await Rt(i=>import(i),r[0],r[1]))}catch{n=!1}for(let s of r)URL.revokeObjectURL(s);return n}function be(e,t,o="auto"){return new Promise((r,n)=>{let s=C("modulepreload",e,{integrity:t,fetchPriority:o});s.onload=r,s.onerror=n})}function Mo(){return document.createElement("link").relList.supports("modulepreload")?Rt(e=>be(e,vt),mt,mt+"//"):Promise.resolve(!1)}function Rt(e,t,o){return Promise.race([Promise.all([e(t).then(()=>!0,()=>!1),e(o).then(()=>!1,()=>!0)]).then(([r,n])=>r&&n),new Promise(r=>setTimeout(r,3e3,!1))])}var Re,xo,mt,vt,ft,we,Lo,gt,ht,bt=h(()=>{"use strict";pt();b();k();Re=new Set;xo=/^(sha(256|384|512)-[A-Za-z0-9+/]+={0,2}( +|$))+$/,mt="data:text/javascript,export{}",vt="sha256-d3bjIZdvLjBurwdLwkSVOnEBPFFly+T1SR9r3VVHBGg=",gt="vitral:sri-map";ht=()=>new Promise(e=>{let t=new MessageChannel;t.port1.onmessage=()=>e(),t.port2.postMessage(0)})});var Mt={};O(Mt,{OVERRIDES_KEY:()=>re,activeOverrides:()=>Ot,clearOverrides:()=>xt,dropOverride:()=>Co,isRef:()=>Se,manifestUrl:()=>ne,overrideFor:()=>Ao,overridesEnabled:()=>Pt,resolveOverride:()=>Lt,storeOverride:()=>ko,storedOverrides:()=>xe});function Pt(){return!!d().settings().devOverrides||typeof location<"u"&&/^(localhost|127\.0\.0\.1|\[::1\])$/.test(location.hostname)}function ko(e,t){let o=xe();t?o[e]=Se(t)?t:ne(t):delete o[e],K(ie,o)}function To(){let e=Pe(se),t=new URLSearchParams(location.search).getAll("vitral").join(",").split(",");if(!t.some(Boolean))return e;for(let o of t){let r=o.indexOf("@");o==="off"?(xt(),Object.keys(e).forEach(n=>delete e[n])):r>0&&o.slice(r+1)==="off"?delete e[o.slice(0,r)]:r>0&&(e[o.slice(0,r)]=o.slice(r+1))}return K(se,e),e}function xt(){K(se,{}),K(ie,{})}function Co(e){for(let t of[se,ie]){let o=Pe(t);delete o[e],K(t,o)}}function Lt(e,t){if(!Se(t))return new URL(ne(t),location.href).href;let o=d().settings().devOverrides,r=typeof o=="object"?o.preview:void 0;if(!r)return;let n=r.replace(/\{name\}/g,encodeURIComponent(e)).replace(/\{ref\}/g,encodeURIComponent(t));return new URL(ne(n),location.href).href}function Ot(){let e=To(),t={};for(let[o,r]of[["navegador",xe()],["aba",e]])for(let[n,s]of Object.entries(r))t[n]={name:n,value:s,url:Lt(n,s),source:o};return Object.values(t)}function Ao(e){if(!Pt())return;let t=Ot().find(i=>i.name===e);if(!t)return;let o=!St.has(e)&&St.add(e);if(!t.url){o&&console.warn(`[vitral] override ${e}@${t.value} ignorado: falta configure({ devOverrides: { preview } })`);return}let r=d(),n=r.settings().trusted??[],s=new URL(t.url).origin;return n.includes(s)||r.configure({trusted:[...n,s]}),o&&console.warn(`[vitral] override ativo: ${e} \u2192 ${t.url} (${t.source}). Para limpar: ?vitral=off`),{url:t.url}}var re,ne,Se,Pe,K,ie,se,xe,St,kt=h(()=>{"use strict";R();re="vitral:overrides";ne=e=>/\.(json|m?js)(\?|$)/.test(e)?e:e.replace(/\/?$/,"/vitral.json"),Se=e=>/^[\w.-]+$/.test(e),Pe=e=>{try{return JSON.parse(e().getItem(re)??"{}")??{}}catch{return{}}},K=(e,t)=>{try{Object.keys(t).length?e().setItem(re,JSON.stringify(t)):e().removeItem(re)}catch{}},ie=()=>localStorage,se=()=>sessionStorage,xe=()=>Pe(ie);St=new Set});var Dt={};O(Dt,{bucket:()=>It,pick:()=>Io,resetChannels:()=>Ho,versionUrl:()=>At});async function Io(e,t,o){if(typeof o.stable!="string")throw new f("INVALID_MODULE",e,`canal inv\xE1lido em ${t.url}: falta "stable"`);M.watch=Do;let r={name:e,bucket:It(e)},{canary:n,stable:s}=o,i=await t.resolve?.(o,r)??(n&&r.bucket<n.percent?n.version:s);return i!==s&&$t()[e]===i&&(i=s),i===s||t.rollback===!1?N.delete(e):N.get(e)?.from!==i&&N.set(e,{from:i,to:s,errors:0,mounts:0,max:{errors:3,mounts:20,...t.rollback}}),{...t,url:At(i,t.url),integrity:void 0,manifest:void 0}}function It(e){let t=d().settings().canaryKey??$o(),o=2166136261;for(let r of`${t}:${e}`)o=Math.imul(o^r.charCodeAt(0),16777619);return(o>>>0)%100}function $o(){try{H??=localStorage.getItem(Tt)??void 0}catch{}if(!H){H=Math.random().toString(36).slice(2);try{localStorage.setItem(Tt,H)}catch{}}return H}function $t(){try{return{...JSON.parse(sessionStorage.getItem(Ct)||"{}"),...G}}catch{return G}}function Do(e,t){for(let[o,r]of N)e!==o&&!e.startsWith(o+"/")||(t?++r.errors>=r.max.errors&&Uo(o,r):++r.mounts>r.max.mounts&&(r.mounts=1,r.errors=0))}function Uo(e,t){N.delete(e),G={...$t(),[e]:t.from};try{sessionStorage.setItem(Ct,JSON.stringify(G))}catch{}console.warn(`[vitral] ${e}: ${t.errors} erros em ${t.mounts} montagens da vers\xE3o ${t.from}; voltando para ${t.to}`);try{d().settings().onRollback?.({name:e,from:t.from,to:t.to,errors:t.errors,mounts:t.mounts})}catch{}let o=d();o.register(e,o.entry(e)),o.events.emit("vitral:refresh",e)}function Ho(){N.clear(),G={},H=void 0}var Ct,Tt,N,G,H,At,Ut=h(()=>{"use strict";b();W();R();k();Ct="vitral:rollback",Tt="vitral:id",N=new Map,G={};At=(e,t)=>S(/[/:]|\.(m?js|json)$/.test(e)?e:`${e}/vitral.json`,t)});var Ht={};O(Ht,{checkContract:()=>No});async function No(e,t=d().settings().contract){let{satisfies:o}=await Promise.resolve().then(()=>(Q(),Z));if(e.version&&!o(e.version,t))return`o host aceita contrato ${t}, o remote publica ${e.version}`;let r=d().settings().offered??{};for(let n in e.peers){let s=r[n];if(s&&!o(s,e.peers[n]))return`o remote espera ${n} ${e.peers[n]}, o host oferece ${s}`}}var Nt=h(()=>{"use strict";R()});function jt(e){Oe(e).catch(()=>{})}function Oe(e,t,o){let r=n=>jo(n,t,o);return(d().entry(e)||!e.includes("/")?r(e).then(n=>Ee(e,n)):Promise.resolve().then(()=>(ct(),lt)).then(n=>n.resolveTarget(e,r))).catch(z)}function jo(e,t,o){let r=d();return r.load(e,async()=>{Bt??=Promise.resolve().then(()=>(bt(),wt)).catch(()=>null);let n;try{await r.pending();let s=await _t(e),i=s?{isolate:r.entry(e)?.isolate,...s}:r.entry(e);if(!i)throw new f("NOT_REGISTERED",e,"remote n\xE3o registrado. Use configure({ remotes }).");if(i.module)return await Bo(e,i);let a=performance.now();n=await Le(e,i,o),D(e,"manifest",a),nt(n,(t??n.isolate??r.settings().isolate)==="shadow",o),a=performance.now();let l=await je(r.settings().retries,()=>_o(e,n));return D(e,"js",a),{...n,module:l?.default??l,exports:l}}catch(s){throw L(w(s)?s:new f("LOAD_FAILED",e,String(s?.message??s),s),n)}})}function _t(e){try{let t="vitral:overrides";if(location.search.includes("vitral")||localStorage[t]||sessionStorage[t])return Promise.resolve().then(()=>(kt(),Mt)).then(o=>o.overrideFor(e))}catch{}}async function Bo(e,t){let o=t.module;return typeof o=="function"&&(o=await o()),{module:o?.default??o,exports:o,entry:typeof location<"u"?location.href:"http://localhost/",css:t.css??[],isolate:t.isolate}}async function Le(e,t,o){ee(e,t.url);let r=t.manifest??(new URL(t.url).pathname.endsWith(".json")?await X(t.url,d().settings().timeout,e,{cache:"no-cache",priority:o}):{name:e,entry:t.url});if(r?.stable)return Le(e,await(await Promise.resolve().then(()=>(Ut(),Dt))).pick(e,t,r),o);if(typeof r?.entry!="string")throw new f("INVALID_MODULE",e,`manifesto inv\xE1lido em ${t.url}`);if(r.contract&&(t.contract||d().settings().contract)){let a=await(await Promise.resolve().then(()=>(Nt(),Ht))).checkContract(r.contract,t.contract);if(a)throw new f("CONTRACT_MISMATCH",e,a)}let n=a=>S(a,t.url),s={};for(let a in r.files??{})s[n(a)]=r.files[a];let i={entry:n(r.entry),css:[...r.css??[],...t.css??[]].map(n),shadow:r.shadow,integrity:t.integrity??r.integrity,isolate:t.isolate,scope:r.scope,version:r.version,sri:s,priority:o,split:r.split&&!t.integrity?{entry:n(r.split.entry),chunks:(r.split.chunks??[]).map(n),sri:s,priority:o,dedupe:r.dedupe?.map(a=>({...a,file:n(a.file),chunks:a.chunks?.map(n)}))}:void 0};ee(e,i.entry);for(let a of[i.split?.entry,...(i.split?.dedupe??[]).map(l=>l.file)])a&&ee(e,a);if(e===t.url&&r.name){let a=await _t(r.name);if(a)return{...await Le(e,a),name:r.name};i.name=r.name,d().entry(r.name)||d().register(r.name,t)}return i}async function _o(e,t){let{timeout:o}=d().settings(),r=s=>V(o,e,import(s)).catch(i=>{throw w(i)?i:new f("LOAD_FAILED",e,`falha ao importar ${t.entry}`,i)});if(!t.integrity)return r(t.entry);let n=await Bt;if(!n)throw new f("LOAD_FAILED",e,"n\xE3o foi poss\xEDvel carregar o verificador de integrity");return n.importVerified(e,t,r,o)}function Ee(e,t){if(typeof t.module?.mount!="function")throw new f("INVALID_MODULE",e,"o m\xF3dulo n\xE3o exporta mount(). Use defineRemote(), ou loadModule() para m\xF3dulo sem UI.");return t}var Bt,oe=h(()=>{"use strict";te();b();U();R();k()});U();te();b();R();var I={emit:(e,t)=>d().events.emit(e,t),on:(e,t)=>d().events.on(e,t),last:e=>d().events.last(e)};function Vt(){let e=new Set,t=o=>{let r=()=>(e.delete(r),o());return e.add(r),r};return{bus:{emit:(o,r)=>I.emit(o,r),last:o=>I.last(o),on:(o,r)=>t(I.on(o,r))},track:t,dispose(){for(let o of[...e])o()}}}W();oe();function qt(e,t={}){let o=new URL(e,location.href);if(o.origin!==location.origin){location.assign(o.href);return}t.replace?history.replaceState(history.state,"",o.href):history.pushState(history.state,"",o.href),dispatchEvent(new PopStateEvent("popstate",{state:history.state})),I.emit("vitral:navigate",o.pathname+o.search+o.hash)}R();b();var Ft=new Map,J=new Map;function Jt(e,t){return Ft.set(e,t.entry),$.set(e,t),J.set(e,(J.get(e)??0)+1),()=>{let o=J.get(e)-1;o?J.set(e,o):(J.delete(e),Ft.delete(e),$.delete(e))}}var Kt=null;function Yt(e,t,o,r){let n=0,s=I.on("vitral:refresh",i=>{if(i!==t&&!t.startsWith(i+"/"))return;let a=++n,l=o,u=r(l).then(p=>{if(e.unmount===Gt||a!==n)return p.unmount();let c=e;e=p,c.unmount(),o!==l&&p.update?.(o)});Kt?Kt.push(u):u.catch(console.error)});return{update(i){o=i,e.update?.(i)},unmount(){s(),e.unmount(),e={unmount:Gt}}}}var Gt=()=>{};k();async function Xt(e,t,o,r={}){return Yt(await zt(e,t,o,r),t,o,n=>zt(e,t,n,r))}var Wt;async function zt(e,t,o,r){let n=d();if(await n.pending(),(r.isolate??Vo(t)?.isolate??n.settings().isolate)==="iframe"){if(!Wt)throw L(new f("MOUNT_FAILED",t,'isolate="iframe" precisa de enableIframe(), de vitral/iframe'));return Wt(e,t,o,r).catch(z)}let{module:s,...i}=await Oe(t,r.isolate,r.priority),a=Jt(t,i);M.watch?.(t);let l=r.isolate??i.isolate??d().settings().isolate,u=i.name??t,p=E=>{let P=document.createElement("div",E);return P.setAttribute("data-vitral-root",u),i.scope&&P.setAttribute("data-vitral-scope",i.scope),P.style.display="contents",P},c=performance.now(),[g,m=document.body,y=null,x=customElements,v=e.appendChild(p())]=await st(i,l==="shadow"&&e,p,r.styles);D(t,"css",c),c=performance.now();let Y=Vt(),Ce=E=>P=>(v.addEventListener(E,P),()=>v.removeEventListener(E,P)),Ae={name:u,baseUrl:new URL(".",i.entry).href,events:Y.bus,shadowRoot:y,portalContainer:m,customElements:x,reportError(E){let P=L(w(E)?E:new f("RENDER_FAILED",u,String(E?.message??E),E),i);r.onError?r.onError(P):console.error(P)},navigate:qt,protocol:d().protocol,onActivate:Ce("vitral:activate"),onDeactivate:Ce("vitral:deactivate")};M.shared&&(Ae.shared=M.shared(t,Y.track));let ae;try{ae=await s.mount(v,o,Ae),D(t,"mount",c)}catch(E){throw a(),Y.dispose(),g(),v.remove(),L(new f("MOUNT_FAILED",u,"erro ao montar",E),i)}let le=!0;return{update(E){le&&ae.update?.(E)},unmount(){if(le){le=!1;try{ae.unmount()}finally{a(),Y.dispose(),g(),v.remove()}}}}}function Vo(e){let t=d(),o=e;for(;o&&!t.entry(o);)o=o.slice(0,Math.max(0,o.lastIndexOf("/")));return o?t.entry(o):void 0}b();U();function Zt(e,t){let{isolate:o}=t,r=m=>m.src?A(m.src,m.name):m.name??"",n=r(t),s=t.props??{},i=null,a=null,l=0,u="loading",p=(m,y=null)=>{u=m,a&&(a.style.display=m==="error"?"none":""),t.onStatus?.(m,y)},c=()=>{i?.unmount(),i=null,a?.remove(),a=null},g=()=>{let m=++l;c(),a=document.createElement("div"),a.setAttribute("data-vitral-slot",n),e.appendChild(a),p("loading");let y=v=>{m===l&&p("error",w(v)?v:new f("MOUNT_FAILED",n,String(v),v))},x=s;Xt(a,n,s,{isolate:o,priority:t.priority,styles:t.styles,onError:y}).then(v=>{if(m!==l)return v.unmount();i=v,s!==x&&v.update?.(s),p("ready")},y)};return g(),{update(m){s=m,i?.update?.(m)},set(m){let y=m.src||m.name!==void 0?r(m):n,x=y!==n||"isolate"in m&&m.isolate!==o;n=y,"isolate"in m&&(o=m.isolate),x&&g()},retry:g,destroy(){l++,c()},get status(){return u}}}oe();U();var Me=()=>{};function eo(e){let t={};if(typeof performance>"u"||!performance.getEntriesByName)return t;for(let o of["manifest","js","css","mount"]){let r=performance.getEntriesByName(`vitral:${e}:${o}`,"measure").pop();r&&(t[o]=Math.round(r.duration*10)/10)}return t}function Qt(e,t,o){if(t==="lazy"||t==="visible"){if(typeof IntersectionObserver>"u")return o(),Me;let r=new IntersectionObserver(n=>{n.some(s=>s.isIntersecting)&&(r.disconnect(),o())},{rootMargin:"200px"});return r.observe(e),()=>r.disconnect()}if(t==="idle"){if(typeof requestIdleCallback>"u"){let n=setTimeout(o,1);return()=>clearTimeout(n)}let r=requestIdleCallback(o,{timeout:2e3});return()=>cancelIdleCallback(r)}if(t==="hover"){let r=()=>(n(),o()),n=()=>{e.removeEventListener("pointerenter",r),e.removeEventListener("focusin",r)};return e.addEventListener("pointerenter",r),e.addEventListener("focusin",r),n}return o(),Me}var T=new Map,j=null;function to(e,t){try{e.moveBefore(t,null)}catch{e.appendChild(t)}}function ke(e,t){for(let o of e.querySelectorAll("*"))o.hasAttribute("data-vitral-root")&&o.dispatchEvent(new Event(t)),o.shadowRoot&&ke(o.shadowRoot,t)}function qo(e,t,o){T.get(e)?.slot.destroy(),T.delete(e),j?.isConnected||(j=document.createElement("div"),j.hidden=!0,j.setAttribute("data-vitral-keep-alive",""),document.body.appendChild(j)),to(j,t.box),ke(t.box,"vitral:deactivate"),T.set(e,t);for(let[r,n]of T){if(T.size<=o)break;T.delete(r),n.slot.destroy(),n.box.remove()}}function oo(e,t){let{props:o={},keepAlive:r}=t,n=c=>c.src?A(c.src,c.name):c.name??"",s=n(t),i="loading",a=null,l=(c,g)=>{i=c,t.onStatus?.(c,g)},u=t.prefetch?Qt(e,t.prefetch,()=>jt(s)):Me,p=Qt(e,t.loading,()=>{u();let c=r?T.get(s):void 0;if(c){T.delete(s),a=c,a.on=l,to(e,a.box),a.slot.update(o),ke(a.box,"vitral:activate"),l(a.slot.status,null);return}let g=e;r&&(g=e.appendChild(document.createElement("div")),g.style.display="contents");let m={box:g,on:l,slot:null};m.slot=Zt(g,{...t,name:s,src:void 0,props:o,onStatus:(y,x)=>m.on(y,x)}),a=m});return{update(c){o=c,a?.slot.update(c)},set(c){(c.src||c.name!==void 0)&&(s=n(c)),a?.slot.set({...c,src:void 0,name:s})},retry:()=>a?.slot.retry(),destroy(){p(),u(),a&&(r&&i==="ready"?qo(s,a,r===!0?5:r):(a.slot.destroy(),a.box!==e&&a.box.remove()),a=null)},get status(){return i}}}U();var Fo=typeof HTMLElement>"u"?class{}:HTMLElement,Te=class extends Fo{static{this.observedAttributes=["name","src","props","isolate"]}#e=null;#t={};get props(){return this.#t}set props(t){this.#t=t??{},this.#e?.update(this.#t)}get status(){return this.#e?.status??"loading"}retry(){this.#e?.retry()}connectedCallback(){if(this.#e)return;let t=this.#r();if(!t)return;this.hasAttribute("props")&&!Object.keys(this.#t).length&&(this.#t=ro(this.getAttribute("props")));let o=this.getAttribute("keep-alive");this.#e=oo(this,{name:t,props:this.#t,isolate:this.getAttribute("isolate")||void 0,loading:this.getAttribute("loading"),prefetch:this.getAttribute("prefetch"),priority:this.getAttribute("priority")||void 0,keepAlive:o===null?!1:Number(o)||!0,styles:{inherit:this.getAttribute("inherit-styles")?.split(/\s+/).filter(Boolean)},onStatus:(r,n)=>{this.setAttribute("data-vitral-status",r),r==="loading"?this.setAttribute("aria-busy","true"):this.removeAttribute("aria-busy");let s=i=>{let a=this.querySelectorAll(`:scope > [slot="${i}"]`);for(let l of a)l.hidden=r!==(i==="fallback"?"loading":"error");return a.length>0};queueMicrotask(()=>{if(this.#e?.status!==r)return;let i={loading:s("fallback"),error:s("error"),ready:!0};this.#n(i[r]?null:r)}),r==="ready"&&this.dispatchEvent(new CustomEvent("vitral-ready",{bubbles:!0,detail:{timings:eo(t)}})),r==="error"&&this.dispatchEvent(new CustomEvent("vitral-error",{bubbles:!0,detail:{error:n}}))}})}#r(){let t=this.getAttribute("src"),o=this.getAttribute("name");return t?A(t,o??void 0,!1):o}#o=null;#n(t){if(this.#o?.remove(),this.#o=null,!t)return;let o=document.createElement("div");if(o.setAttribute("data-vitral-default",t),t==="loading")o.setAttribute("role","status"),o.textContent="Carregando\u2026";else{o.setAttribute("role","alert");let r=document.createElement("button");r.type="button",r.textContent="Tentar de novo",r.onclick=()=>this.retry(),o.append("N\xE3o foi poss\xEDvel carregar. ",r)}this.prepend(this.#o=o)}disconnectedCallback(){queueMicrotask(()=>{this.isConnected||(this.#e?.destroy(),this.#e=null,this.#n(null))})}attributeChangedCallback(t,o,r){if(t==="props")return void(this.props=ro(r));if(!this.#e)return void(this.isConnected&&this.connectedCallback());if(t==="name"||t==="src"){let n=this.#r();n&&this.#e.set({name:n})}t==="isolate"&&this.#e.set({isolate:r||void 0})}};function ro(e){if(!e)return{};try{return JSON.parse(e)}catch{return console.error("[vitral] atributo props n\xE3o \xE9 JSON v\xE1lido:",e),{}}}function no(e="vitral-remote"){typeof customElements<"u"&&!customElements.get(e)&&customElements.define(e,class extends Te{})}R();k();var so="data-vitral-embed";function io(e){let t=e.dataset;if(!t.remote||e.hasAttribute(so))return null;let o=t.target?document.querySelector(t.target):e.closest("body")?e:document.body;if(!o)return document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>io(e),{once:!0}):console.error(`[vitral] data-target n\xE3o encontrado: ${t.target}`),null;e.setAttribute(so,"");let r=S(t.remote);Ko([new URL(r).origin,...t.origins?.split(/\s+/).filter(Boolean)??[]]),no();let n=document.createElement("vitral-remote");return n.setAttribute("isolate",t.isolate||"shadow"),t.loading&&n.setAttribute("loading",t.loading),t.props&&n.setAttribute("props",t.props),t.name&&n.setAttribute("name",t.name),n.setAttribute("src",r),o===e?e.after(n):o.appendChild(n),n}function Ko(e){let t=d(),o=t.settings().allowedOrigins??[_(),...t.origins()].filter(Boolean);ue({allowedOrigins:[...new Set([...o,...e])]})}var Go=Symbol.for("vitral:embed"),Jo=globalThis[Go]??=io;typeof document<"u"&&document.currentScript instanceof HTMLScriptElement&&Jo(document.currentScript);})();
|
|
1
|
+
"use strict";(()=>{var uo=Object.defineProperty;var h=(t,e)=>()=>(t&&(e=t(t=0)),e);var L=(t,e)=>{for(var o in e)uo(t,o,{get:e[o],enumerable:!0})};var O,W=h(()=>{"use strict";O={}});function Dt(){let t=new Map,e=new Map;return{emit(o,r){e.set(o,r);for(let n of[...t.get(o)??[]])try{n(r)}catch(s){console.error(`[vitral] handler de "${o}" falhou`,s)}},on(o,r){let n=t.get(o);return n||t.set(o,n=new Set),n.add(r),()=>n.delete(r)},last(o){return e.get(o)}}}var Ht=h(()=>{"use strict"});function po(){let t={timeout:15e3,retries:1,isolate:"none",allowedOrigins:null},e=new Map,o=new Map,r=Promise.resolve();return{protocol:Nt,events:Dt(),settings:()=>t,configure(n){Object.assign(t,n)},register(n,s){e.set(n,s),o.delete(n)},entry:n=>e.get(n),origins:()=>[...e.values()].filter(n=>n.url).map(n=>new URL(n.url).origin),pending(n){return n&&(r=Promise.all([r,n])),r.then(()=>{})},load(n,s){let a=o.get(n);if(!a){a=s();let i=a;i.catch(()=>o.get(n)===i&&o.delete(n)),o.set(n,a)}return a}}}function d(){let t=Ut[_t];return t&&typeof t.protocol=="number"&&t.protocol>=Nt?t:Ut[_t]=po()}var Nt,_t,Ut,R=h(()=>{"use strict";Ht();Nt=1,_t=Symbol.for("vitral"),Ut=globalThis});function M(t,e){if(S(t)&&!j.has(t)){j.add(t),t.cause instanceof Object&&j.add(t.cause),t.entry??=e?.entry??d().entry(t.remote)?.url,t.version??=e?.version;try{d().settings().onError?.(t)}catch{}O.watch?.(t.remote,t)}return t}var jt,f,S,$,j,z,w=h(()=>{"use strict";W();R();jt="https://joaogabriel15.github.io/vitral/erros/",f=class extends Error{constructor(o,r,n,s){super(`[vitral] ${r}: ${n} (${jt}${o})`);this.code=o;this.remote=r;this.cause=s;this.name="RemoteError",this.docs=`${jt}${o}`,typeof location<"u"&&(this.route=location.pathname)}},S=t=>t?.name==="RemoteError",$=new Map,j=new WeakSet;z=t=>{throw M(t)}});function B(){return typeof location<"u"?location.origin:null}function b(t,e){return new URL(t,e??(typeof location<"u"?location.href:void 0)).href}async function Bt(t,e){for(let o=0;;o++)try{return await e()}catch(r){if(!(S(r)&&(r.code==="LOAD_FAILED"||r.code==="TIMEOUT"))||o>=t)throw r;await new Promise(s=>setTimeout(s,200*2**o))}}function V(t,e,o){return new Promise((r,n)=>{let s=setTimeout(()=>n(new f("TIMEOUT",e,`n\xE3o respondeu em ${t}ms`)),t);o.then(r,n).finally(()=>clearTimeout(s))})}function q(t,e,o,r){let n=new AbortController,s=fetch(t,{signal:n.signal,credentials:"omit",...r}).then(a=>{if(!a.ok)throw new f("LOAD_FAILED",o,`HTTP ${a.status} em ${t}`);return a.arrayBuffer()},a=>{throw new f("LOAD_FAILED",o,`falha ao baixar ${t}`,a)});return V(e,o,s).catch(a=>{throw n.abort(),a})}async function X(t,e,o,r){let n=new TextDecoder().decode(await q(t,e,o,r));try{return JSON.parse(n)}catch(s){throw new f("INVALID_MODULE",o,`JSON inv\xE1lido em ${t}`,s)}}function C(t,e,o={},r=document.head){return r.appendChild(Object.assign(document.createElement("link"),{rel:t,crossOrigin:"anonymous",href:e},o))}function D(t,e,o){try{let r=`vitral:${t}:${e}`;performance.clearMeasures(r),performance.measure(r,{start:o}),d().settings().onMetric?.({name:t,stage:e,start:o,duration:performance.now()-o})}catch{}}var k=h(()=>{"use strict";w();R()});var Kt={};L(Kt,{capture:()=>mo,owner:()=>Ft});function mo(){Vt||typeof addEventListener>"u"||(Vt=!0,addEventListener("error",t=>qt(t.error,t.filename)),addEventListener("unhandledrejection",t=>qt(t.reason)))}function Ft(t,e){let o=e||String(t?.stack??"").match(/(?:https?|file):\/\/[^\s)'"]+/)?.[0];if(!o)return;let r=[...document.querySelectorAll("script[src],link[rel=modulepreload]")].map(a=>a.src||a.href),n,s=0;for(let[a,{entry:i}]of $){let l=new URL(".",i).href;l.length>s&&o.startsWith(l)&&!r.some(u=>u.startsWith(l))&&(n=a,s=l.length)}return n}function qt(t,e){if(!d().settings().captureGlobalErrors||S(t)||t instanceof Object&&j.has(t))return;let o=Ft(t,e);o&&M(new f("RENDER_FAILED",o,String(t?.message??t),t),$.get(o))}var Vt,Gt=h(()=>{"use strict";w();R();Vt=!1});function ct(t,e){if(e==="*")return!0;let[,o="",r=""]=/^(\^|~|>=|=)?(.*)$/.exec(e.trim());if(!o||o==="="||t.includes("-"))return t===r;let[n,s]=[t,r].map(i=>(i+".0.0").split(".",3).map(Number));for(let i=0;i<3;i++)if(n[i]!==s[i]){if(!(n[i]>s[i]))return!1;break}if(o===">=")return!0;let a=Math.min(r.split(".").length,o==="~"?2:s[0]?1:s[1]?2:3);return n.slice(0,a).join(".")===s.slice(0,a).join(".")}var Jt=h(()=>{"use strict"});var Z={};L(Z,{offer:()=>ho,satisfies:()=>ct,shared:()=>Wt});function Wt(t){if(!t.dedupe){let e=new Map,o=new Map,r=(s,a)=>s.includes(a)&&s.splice(s.indexOf(a),1),n=(s,a,i)=>(i.p||((i.p=i.load()).catch(()=>r(a,i)),i.url&&i.p.then(()=>go(`${s}@${i.version}`,i.url),()=>{})),i.p);t.dedupe=(s,a,i)=>{let l=i,u=e.get(s)??[];e.set(s,u),l?.url&&o.get(s+l.url)?.(l);let p=u.find(c=>ct(c.version,a));if(!p&&l){p=u[u.push(l)-1];let c=l.url&&fo(`${s}@${l.version}`);c&&c!==l.url&&(l.p=new Promise(g=>{o.set(s+c,g),setTimeout(g,300,l)}).then(g=>(o.delete(s+c),g===l&&(l.p=void 0),n(s,u,g))),l.p.catch(()=>r(u,l)))}return p&&n(s,u,p)}}return t.dedupe}function ho(t,e){for(let o in e){let{version:r,modules:n}=e[o];Wt(t)(o,r,{version:r,load:async()=>n}),t.configure({offered:{...t.settings().offered,[o]:r}})}}var Yt,fo,go,Q=h(()=>{"use strict";Jt();Yt="vitral:dedupe:",fo=t=>{try{return localStorage.getItem(Yt+t)}catch{return null}},go=(t,e)=>{try{localStorage.setItem(Yt+t,e)}catch{}}});function ut(t){let e=d(),{remotes:o,dedupe:r,...n}=t;if(e.configure(n),n.captureGlobalErrors&&Promise.resolve().then(()=>(Gt(),Kt)).then(s=>s.capture()),r&&e.pending(Promise.resolve().then(()=>(Q(),Z)).then(s=>s.offer(e,r)).catch(()=>{})),typeof o=="string"){let s=b(o);e.pending(X(s,e.settings().timeout,"remotes",{cache:"no-cache"}).then(a=>zt(a,s))).catch(()=>{})}else o&&zt(o)}function Xt(t,e){let o=typeof e=="string"?{url:e}:e;if(!o.url&&!o.module)throw new f("NOT_REGISTERED",t,"informe url ou module");if(!o.url)return d().register(t,o);let r=b(o.url);d().register(t,{...o,url:r});let{origin:n}=new URL(r);typeof document<"u"&&n!==B()&&n!=="null"&&!document.querySelector(`link[href="${n}"]`)&&C("preconnect",n)}function A(t,e,o=!0){let r=d(),n=b(t),s=e||n;r.entry(s)?.url!==n&&r.register(s,{url:n});let a=new URL(n).origin,i=r.settings().trusted??[];return o&&!i.includes(a)&&r.configure({trusted:[...i,a]}),s}function zt(t,e){for(let[o,r]of Object.entries(t)){let n=typeof r=="string"?{url:r}:r;Xt(o,n.url?{...n,url:b(n.url,e)}:n)}}function tt(t,e){let o=d(),r=new URL(e).origin,{allowedOrigins:n,trusted:s=[]}=o.settings(),a=[...n??[B(),...o.origins()].filter(Boolean),...s];if(!(a.includes("*")||a.includes(r)||e.startsWith("blob:")))throw new f("ORIGIN_BLOCKED",t,`origem ${r} n\xE3o est\xE1 em allowedOrigins`)}var H=h(()=>{"use strict";w();R();k()});var gt={};L(gt,{attachShadowRoot:()=>wo,prefetch:()=>Ro,registryFor:()=>ft});function oe({css:t,shadow:e}){let o=n=>new URL(n,t[0]).href,r=e?e.css.map(o):[];return[e?[...(e.imports??[]).map(o),...r,...t.slice(r.length)]:t,r,(e?.global??[]).map(o)]}function Ro(t,e){let[o,,r]=oe(t);for(let n of o)yt(n,t.sri?.[n],e).catch(yo);F(r,null,t.sri)}async function wo(t,e,o,r={},n={}){let s=e().getAttribute("data-vitral-root"),a=ft(s),i=t.shadowRoot;if(!i&&!Qt(a))try{i=t.attachShadow({mode:"open",customElementRegistry:a})}catch{mt=!0,pt.delete(s),a=ft(s)}i??=t.attachShadow({mode:"open"});let l=i.customElementRegistry??a,u=e();if(!Qt(l))try{u=e({customElementRegistry:l})}catch{}return u.isConnected||i.appendChild(u),[...await bo(i,u,o,r,n),i,l,u]}function ft(t){let e=pt.get(t);if(e)return e;let o=customElements;if(!mt&&"initialize"in CustomElementRegistry.prototype)try{o=new CustomElementRegistry}catch{mt=!0}let r=o===customElements,n=e=r?Object.create(o):o;if(r)for(let a of["get","getName","upgrade","whenDefined"])a in o&&(n[a]=o[a].bind(o));let s=o.define;return n.define=(a,i,l)=>{let u=o.get(a),p=te.get(a);if(!u)return r&&te.set(a,t),s.call(o,a,i,l);r&&u!==i&&p!==t&&So()&&console.warn(`[vitral] ${t}: <${a}> j\xE1 foi definido por ${p??"outro c\xF3digo"}; fica essa defini\xE7\xE3o. Sem Scoped Custom Element Registries, os remotes dividem o registro global.`)},pt.set(t,e),e}function So(){try{return process.env.NODE_ENV!=="production"}catch{return!1}}async function bo(t,e,o,r={},n={}){let s=o.sri??{},[a,i,l]=oe(o),u=e.cloneNode();u.setAttribute("data-vitral-portal",""),e.after(u);let p=[...r.inherit??[],...n.inherit??[]].map(m=>new URL(m,document.baseURI).href).concat(a),c=F(l,null,s);if(typeof CSSStyleSheet<"u"&&"replaceSync"in CSSStyleSheet.prototype){let m=await Promise.all(p.map(y=>re(y,[],s[y],i.includes(y)?!!o.shadow.rebase:void 0)));t.adoptedStyleSheets=[...new Set([...t.adoptedStyleSheets,...m.flat()])]}else await F(p,t,s);await c;let g=(n.mirrorTheme??r.mirrorTheme)===!1?[]:[ee(e),ee(u)];return[()=>(g.forEach(m=>m()),u.remove()),u]}function re(t,e,o,r){let n=dt.get(t);return n||(n=yt(t,o).then(s=>{let a=new CSSStyleSheet;if(r!==!1&&(s=s.replace(vo,(c,g,m)=>`url(${g}${new URL(m,t).href}${g})`)),r!=null)return a.replaceSync(s),[a];let i=[],l=[],u=s.replace(Eo,(c,g,m,y,x)=>{let v=y??x;return v?l.push(new URL(v,t).href):Zt.has(g??c)||(Zt.add(g??c),i.push(c)),""});if(i.length){let c=document.createElement("style");c.setAttribute("data-vitral-properties",""),c.textContent=i.join(`
|
|
2
|
+
`),document.head.appendChild(c)}a.replaceSync(u);let p=[...e,t];return Promise.all(l.filter(c=>!p.includes(c)).map(c=>re(c,p))).then(c=>[...c.flat(),a])}).catch(()=>(dt.delete(t),[])),dt.set(t,n)),n}function ee(t){let e=document.documentElement,o=[],r=()=>{t.classList.remove(...o),o=[...e.classList].filter(a=>!t.classList.contains(a)),t.classList.add(...o);let s=e.getAttribute("data-theme");s===null?t.removeAttribute("data-theme"):t.setAttribute("data-theme",s)};r();let n=new MutationObserver(r);return n.observe(e,{attributeFilter:["class","data-theme"]}),()=>n.disconnect()}var dt,yo,Zt,vo,Eo,pt,mt,Qt,te,ht=h(()=>{"use strict";et();dt=new Map,yo=()=>{},Zt=new Set,vo=/url\(\s*(['"]?)(?![a-z]+:|\/\/|#)([^'")]+)\1\s*\)/gi,Eo=/@property\s+(--[\w-]+)\s*\{[^}]*\}|@font-face\s*\{[^}]*\}|@import\s+(?:url\(\s*)?(?:(['"])(.*?)\2|([^'"\s);]+))\s*\)?[^;]*;/gi;pt=new Map,mt=!1,Qt=t=>Object.getPrototypeOf(t)===customElements,te=new Map});function yt(t,e,o){let r=`${t} ${e??""}`,n=vt.get(r);return n||(n=q(t,d().settings().timeout,t,{integrity:e,priority:o}).then(s=>new TextDecoder().decode(s)),n.catch(()=>vt.delete(r)),vt.set(r,n)),n}function ie(t,e,o="auto"){if(e&&Po())Promise.resolve().then(()=>(ht(),gt)).then(r=>r.prefetch(t,o),se);else for(let r of t.css)document.querySelector(`link[href="${r}"]`)||C("preload",r,{as:"style",integrity:t.sri?.[r]??"",fetchPriority:o})}function ae(t,e,o,r){return e?Promise.resolve().then(()=>(ht(),gt)).then(n=>n.attachShadowRoot(e,o,t,d().settings().styles,r)):F(t.css,null,t.sri).then(()=>[se])}function F(t,e,o={}){let r=e??document,n=ne.get(r);n||ne.set(r,n=new Map);let s=e??document.head,a=d().settings().timeout;return Promise.all(t.map(i=>{let l=n.get(i);return l||(l=new Promise(u=>{let p=C("stylesheet",i,{integrity:o[i]??""},s);setTimeout(u,a),p.onload=()=>u(),p.onerror=()=>{p.remove(),n.delete(i),u()}}),n.set(i,l)),l}))}var ne,vt,se,Po,et=h(()=>{"use strict";R();k();ne=new WeakMap,vt=new Map,se=()=>{},Po=()=>typeof CSSStyleSheet<"u"&&"replaceSync"in CSSStyleSheet.prototype});var ue={};L(ue,{resolveModule:()=>Lo,resolveTarget:()=>xo,splitName:()=>le});function le(t){let e=d(),o=t.length;if(!e.entry(t))for(;(o=t.lastIndexOf("/",o-1))>0&&!e.entry(t.slice(0,o)););return o>0&&o<t.length?[t.slice(0,o),"."+t.slice(o)]:[t,null]}function xo(t,e){return ce(t,e).then(o=>Et(t,o))}function ce(t,e){let o=d();return o.entry(t)||!t.includes("/")?e(t):o.pending().then(async()=>{let[r,n]=le(t);if(!n)return e(t);let s=await e(r),a=s.exports?.exposes;if(!a?.[n])throw new f("NOT_EXPOSED",t,`${r} n\xE3o exp\xF5e ${n}. Expostos: ${Object.keys(a??{}).join(", ")}`);try{let i=a[n],l=await(typeof i=="function"?i():i);return{...s,module:l?.default??l,exports:l}}catch(i){throw new f("LOAD_FAILED",t,String(i),i)}})}async function Lo(t,e){let o=await ce(t,e);if(!o.exports)throw new f("INVALID_MODULE",t,"o remote foi carregado por uma c\xF3pia antiga da lib, que n\xE3o guarda os exports");return o.exports}var de=h(()=>{"use strict";w();ot();R()});async function me(t,e,o){let r=o.split(/\s+/).map(i=>/^sha(256|384|512)-([\w+/=-]+)/.exec(i)).filter(i=>!!i);if(!r.length)throw new f("INTEGRITY",t,`formato de integrity inv\xE1lido: ${o}`);let n=Math.max(...r.map(i=>+i[1])),s=btoa(String.fromCharCode(...new Uint8Array(await crypto.subtle.digest("SHA-"+n,e)))),a=r.filter(i=>+i[1]===n).map(i=>i[2]);if(!a.some(i=>pe(i)===pe(s)))throw new f("INTEGRITY",t,`o hash n\xE3o confere: esperado sha${n}-${a.join(" ou ")}, obtido sha${n}-${s}`)}var pe,fe=h(()=>{"use strict";w();pe=t=>t.replace(/-/g,"+").replace(/_/g,"/").replace(/=/g,"")});var Pe={};L(Pe,{importVerified:()=>Oo,verified:()=>Se});async function Oo(t,e,o,r){let{entry:n,integrity:s,priority:a}=e;if(!Rt.has(n))try{let p=await V(r,t,(async()=>{let c=await Se(e.split??{entry:n,chunks:[],sri:{[n]:s},priority:a},o);return c&&{ns:await o(c)}})());if(p)return p.ns}catch(u){if(Rt.add(n),u instanceof f&&u.code==="TIMEOUT")throw u}let i=await q(n,r,t,Rt.has(n)?{priority:a,cache:"reload"}:{priority:a});await me(t,i,s);let l=URL.createObjectURL(new Blob([i],{type:"text/javascript"}));try{return await o(l)}finally{URL.revokeObjectURL(l)}}async function To(t){if(wt)return await wt&&Re(t,!1);let e=!1;try{e=localStorage[ve]===navigator.userAgent}catch{}let o=await(wt=Re(t,!e));if(o&&!e)try{localStorage[ve]=navigator.userAgent}catch{}return o}async function Se(t,e){let{entry:o,chunks:r,sri:n,priority:s="auto",dedupe:a=[]}=t,i=a.flatMap(p=>[...p.chunks??[],p.file]);if(![o,...r,...i].every(p=>Mo.test(n[p]??"")))return;let l=globalThis[Symbol.for("vitral")],u=async p=>{if(!e||!a.length)return;let{shared:c}=await Promise.resolve().then(()=>(Q(),Z));for(let g of a)c(l)(g.name,g.range,{version:g.version,url:g.file,load:async()=>(p&&await Promise.all([...g.chunks??[],g.file].map(m=>St(m,n[m],s))),(await e(g.file)).default)})};if(he!==!1&&(he=await To(n))){await u();for(let p of r)fetch(p,{priority:s}).catch(()=>{});return o}if(await(ko??=Co()))return l.sri={...l.sri,...n},await u(!0),await Promise.all([...r,o].map(p=>St(p,n[p],s))),o}async function Re(t,e){if(!HTMLScriptElement.supports?.("importmap"))return!1;let o={};for(let s in t)!/\.css([?#]|$)/.test(s)&&!ye.has(s)&&(ye.add(s),o[s]=t[s]);let r=e?["export{}","export{}//"].map(s=>URL.createObjectURL(new Blob([s],{type:"text/javascript"}))):[];for(let s of r)o[s]=we;let n=!0;try{let s=document.createElement("script");s.type="importmap",s.nonce=document.querySelector("script[nonce]")?.nonce??"",s.onerror=()=>n=!1,s.addEventListener("securitypolicyviolation",()=>n=!1),s.textContent=JSON.stringify({integrity:o}),document.head.append(s),await Ee(),await Ee(),n&&e&&(n=await be(a=>import(a),r[0],r[1]))}catch{n=!1}for(let s of r)URL.revokeObjectURL(s);return n}function St(t,e,o="auto"){return new Promise((r,n)=>{let s=C("modulepreload",t,{integrity:e,fetchPriority:o});s.onload=r,s.onerror=n})}function Co(){return document.createElement("link").relList.supports("modulepreload")?be(t=>St(t,we),ge,ge+"//"):Promise.resolve(!1)}function be(t,e,o){return Promise.race([Promise.all([t(e).then(()=>!0,()=>!1),t(o).then(()=>!1,()=>!0)]).then(([r,n])=>r&&n),new Promise(r=>setTimeout(r,3e3,!1))])}var Rt,Mo,ge,we,he,ye,wt,ko,ve,Ee,xe=h(()=>{"use strict";fe();w();k();Rt=new Set;Mo=/^(sha(256|384|512)-[A-Za-z0-9+/]+={0,2}( +|$))+$/,ge="data:text/javascript,export{}",we="sha256-d3bjIZdvLjBurwdLwkSVOnEBPFFly+T1SR9r3VVHBGg=",ye=new Set,ve="vitral:sri-map";Ee=()=>new Promise(t=>{let e=new MessageChannel;e.port1.onmessage=()=>t(),e.port2.postMessage(0)})});var Ce={};L(Ce,{OVERRIDES_KEY:()=>rt,activeOverrides:()=>Te,clearOverrides:()=>Me,dropOverride:()=>$o,isRef:()=>bt,manifestUrl:()=>nt,overrideFor:()=>Do,overridesEnabled:()=>Oe,resolveOverride:()=>ke,storeOverride:()=>Ao,storedOverrides:()=>xt});function Oe(){return!!d().settings().devOverrides||typeof location<"u"&&/^(localhost|127\.0\.0\.1|\[::1\])$/.test(location.hostname)}function Ao(t,e){let o=xt();e?o[t]=bt(e)?e:nt(e):delete o[t],K(it,o)}function Io(){let t=Pt(st),e=new URLSearchParams(location.search).getAll("vitral").join(",").split(",");if(!e.some(Boolean))return t;for(let o of e){let r=o.indexOf("@");o==="off"?(Me(),Object.keys(t).forEach(n=>delete t[n])):r>0&&o.slice(r+1)==="off"?delete t[o.slice(0,r)]:r>0&&(t[o.slice(0,r)]=o.slice(r+1))}return K(st,t),t}function Me(){K(st,{}),K(it,{})}function $o(t){for(let e of[st,it]){let o=Pt(e);delete o[t],K(e,o)}}function ke(t,e){if(!bt(e))return new URL(nt(e),location.href).href;let o=d().settings().devOverrides,r=typeof o=="object"?o.preview:void 0;if(!r)return;let n=r.replace(/\{name\}/g,encodeURIComponent(t)).replace(/\{ref\}/g,encodeURIComponent(e));return new URL(nt(n),location.href).href}function Te(){let t=Io(),e={};for(let[o,r]of[["navegador",xt()],["aba",t]])for(let[n,s]of Object.entries(r))e[n]={name:n,value:s,url:ke(n,s),source:o};return Object.values(e)}function Do(t){if(!Oe())return;let e=Te().find(a=>a.name===t);if(!e)return;let o=!Le.has(t)&&Le.add(t);if(!e.url){o&&console.warn(`[vitral] override ${t}@${e.value} ignorado: falta configure({ devOverrides: { preview } })`);return}let r=d(),n=r.settings().trusted??[],s=new URL(e.url).origin;return n.includes(s)||r.configure({trusted:[...n,s]}),o&&console.warn(`[vitral] override ativo: ${t} \u2192 ${e.url} (${e.source}). Para limpar: ?vitral=off`),{url:e.url}}var rt,nt,bt,Pt,K,it,st,xt,Le,Ae=h(()=>{"use strict";R();rt="vitral:overrides";nt=t=>/\.(json|m?js)(\?|$)/.test(t)?t:t.replace(/\/?$/,"/vitral.json"),bt=t=>/^[\w.-]+$/.test(t),Pt=t=>{try{return JSON.parse(t().getItem(rt)??"{}")??{}}catch{return{}}},K=(t,e)=>{try{Object.keys(e).length?t().setItem(rt,JSON.stringify(e)):t().removeItem(rt)}catch{}},it=()=>localStorage,st=()=>sessionStorage,xt=()=>Pt(it);Le=new Set});var Ue={};L(Ue,{bucket:()=>He,pick:()=>Ho,resetChannels:()=>jo,versionUrl:()=>De});async function Ho(t,e,o){if(typeof o.stable!="string")throw new f("INVALID_MODULE",t,`canal inv\xE1lido em ${e.url}: falta "stable"`);O.watch=Uo;let r={name:t,bucket:He(t)},{canary:n,stable:s}=o,a=await e.resolve?.(o,r)??(n&&r.bucket<n.percent?n.version:s);return a!==s&&_e()[t]===a&&(a=s),a===s||e.rollback===!1?U.delete(t):U.get(t)?.from!==a&&U.set(t,{from:a,to:s,errors:0,mounts:0,max:{errors:3,mounts:20,...e.rollback}}),{...e,url:De(a,e.url),integrity:void 0,manifest:void 0}}function He(t){let e=d().settings().canaryKey??_o(),o=2166136261;for(let r of`${e}:${t}`)o=Math.imul(o^r.charCodeAt(0),16777619);return(o>>>0)%100}function _o(){try{_??=localStorage.getItem(Ie)??void 0}catch{}if(!_){_=Math.random().toString(36).slice(2);try{localStorage.setItem(Ie,_)}catch{}}return _}function _e(){try{return{...JSON.parse(sessionStorage.getItem($e)||"{}"),...G}}catch{return G}}function Uo(t,e){for(let[o,r]of U)t!==o&&!t.startsWith(o+"/")||(e?++r.errors>=r.max.errors&&No(o,r):++r.mounts>r.max.mounts&&(r.mounts=1,r.errors=0))}function No(t,e){U.delete(t),G={..._e(),[t]:e.from};try{sessionStorage.setItem($e,JSON.stringify(G))}catch{}console.warn(`[vitral] ${t}: ${e.errors} erros em ${e.mounts} montagens da vers\xE3o ${e.from}; voltando para ${e.to}`);try{d().settings().onRollback?.({name:t,from:e.from,to:e.to,errors:e.errors,mounts:e.mounts})}catch{}let o=d();o.register(t,o.entry(t)),o.events.emit("vitral:refresh",t)}function jo(){U.clear(),G={},_=void 0}var $e,Ie,U,G,_,De,Ne=h(()=>{"use strict";w();W();R();k();$e="vitral:rollback",Ie="vitral:id",U=new Map,G={};De=(t,e)=>b(/[/:]|\.(m?js|json)$/.test(t)?t:`${t}/vitral.json`,e)});var je={};L(je,{checkContract:()=>Bo});async function Bo(t,e=d().settings().contract){let{satisfies:o}=await Promise.resolve().then(()=>(Q(),Z));if(t.version&&!o(t.version,e))return`o host aceita contrato ${e}, o remote publica ${t.version}`;let r=d().settings().offered??{};for(let n in t.peers){let s=r[n];if(s&&!o(s,t.peers[n]))return`o remote espera ${n} ${t.peers[n]}, o host oferece ${s}`}}var Be=h(()=>{"use strict";R()});function Ve(t){Ot(t).catch(()=>{})}function Ot(t,e,o){let r=n=>Vo(n,e,o);return(d().entry(t)||!t.includes("/")?r(t).then(n=>Et(t,n)):Promise.resolve().then(()=>(de(),ue)).then(n=>n.resolveTarget(t,r))).catch(z)}function Vo(t,e,o){let r=d();return r.load(t,async()=>{qe??=Promise.resolve().then(()=>(xe(),Pe)).catch(()=>null);let n;try{await r.pending();let s=await Fe(t),a=s?{isolate:r.entry(t)?.isolate,...s}:r.entry(t);if(!a)throw new f("NOT_REGISTERED",t,"remote n\xE3o registrado. Use configure({ remotes }).");if(a.module)return await qo(t,a);let i=performance.now();n=await Lt(t,a,o),D(t,"manifest",i),ie(n,(e??n.isolate??r.settings().isolate)==="shadow",o),i=performance.now();let l=await Bt(r.settings().retries,()=>Fo(t,n));return D(t,"js",i),{...n,module:l?.default??l,exports:l}}catch(s){throw M(S(s)?s:new f("LOAD_FAILED",t,String(s?.message??s),s),n)}})}function Fe(t){try{let e="vitral:overrides";if(location.search.includes("vitral")||localStorage[e]||sessionStorage[e])return Promise.resolve().then(()=>(Ae(),Ce)).then(o=>o.overrideFor(t))}catch{}}async function qo(t,e){let o=e.module;return typeof o=="function"&&(o=await o()),{module:o?.default??o,exports:o,entry:typeof location<"u"?location.href:"http://localhost/",css:e.css??[],isolate:e.isolate}}async function Lt(t,e,o){tt(t,e.url);let r=e.manifest??(new URL(e.url).pathname.endsWith(".json")?await X(e.url,d().settings().timeout,t,{cache:"no-cache",priority:o}):{name:t,entry:e.url});if(r?.stable)return Lt(t,await(await Promise.resolve().then(()=>(Ne(),Ue))).pick(t,e,r),o);if(typeof r?.entry!="string")throw new f("INVALID_MODULE",t,`manifesto inv\xE1lido em ${e.url}`);if(r.contract&&(e.contract||d().settings().contract)){let i=await(await Promise.resolve().then(()=>(Be(),je))).checkContract(r.contract,e.contract);if(i)throw new f("CONTRACT_MISMATCH",t,i)}let n=i=>b(i,e.url),s={};for(let i in r.files??{})s[n(i)]=r.files[i];let a={entry:n(r.entry),css:[...r.css??[],...e.css??[]].map(n),shadow:r.shadow,integrity:e.integrity??r.integrity,isolate:e.isolate,scope:r.scope,version:r.version,sri:s,priority:o,split:r.split&&!e.integrity?{entry:n(r.split.entry),chunks:(r.split.chunks??[]).map(n),sri:s,priority:o,dedupe:r.dedupe?.map(i=>({...i,file:n(i.file),chunks:i.chunks?.map(n)}))}:void 0};tt(t,a.entry);for(let i of[a.split?.entry,...(a.split?.dedupe??[]).map(l=>l.file)])i&&tt(t,i);if(t===e.url&&r.name){let i=await Fe(r.name);if(i)return{...await Lt(t,i),name:r.name};a.name=r.name,d().entry(r.name)||d().register(r.name,e)}return a}async function Fo(t,e){let{timeout:o}=d().settings(),r=s=>V(o,t,import(s)).catch(a=>{throw S(a)?a:new f("LOAD_FAILED",t,`falha ao importar ${e.entry}`,a)});if(!e.integrity)return r(e.entry);let n=await qe;if(!n)throw new f("LOAD_FAILED",t,"n\xE3o foi poss\xEDvel carregar o verificador de integrity");return n.importVerified(t,e,r,o)}function Et(t,e){if(typeof e.module?.mount!="function")throw new f("INVALID_MODULE",t,"o m\xF3dulo n\xE3o exporta mount(). Use defineRemote(), ou loadModule() para m\xF3dulo sem UI.");return e}var qe,ot=h(()=>{"use strict";et();w();H();R();k()});var Mt={};L(Mt,{load:()=>Ze,noFrames:()=>Ko});function Ze(t){throw new f("MOUNT_FAILED",t,"isolate sem suporte no embed.js")}var Ko,kt=h(()=>{"use strict";w();Ko=(t,e)=>Ze(e)});H();et();w();R();var I={emit:(t,e)=>d().events.emit(t,e),on:(t,e)=>d().events.on(t,e),last:t=>d().events.last(t)};function Ke(){let t=new Set,e=o=>{let r=()=>(t.delete(r),o());return t.add(r),r};return{bus:{emit:(o,r)=>I.emit(o,r),last:o=>I.last(o),on:(o,r)=>e(I.on(o,r))},track:e,dispose(){for(let o of[...t])o()}}}W();ot();function Ge(t,e={}){let o=new URL(t,location.href);if(o.origin!==location.origin){location.assign(o.href);return}e.replace?history.replaceState(history.state,"",o.href):history.pushState(history.state,"",o.href),dispatchEvent(new PopStateEvent("popstate",{state:history.state})),I.emit("vitral:navigate",o.pathname+o.search+o.hash)}R();w();var Je=new Map,J=new Map;function ze(t,e){return Je.set(t,e.entry),$.set(t,e),J.set(t,(J.get(t)??0)+1),()=>{let o=J.get(t)-1;o?J.set(t,o):(J.delete(t),Je.delete(t),$.delete(t))}}var Ye=null;function Xe(t,e,o,r){let n=0,s=I.on("vitral:refresh",a=>{if(a!==e&&!e.startsWith(a+"/"))return;let i=++n,l=o,u=r(l).then(p=>{if(t.unmount===We||i!==n)return p.unmount();let c=t;t=p,c.unmount(),o!==l&&p.update?.(o)});Ye?Ye.push(u):u.catch(console.error)});return{update(a){o=a,t.update?.(a)},unmount(){s(),t.unmount(),t={unmount:We}}}}var We=()=>{};k();async function to(t,e,o,r={}){return Xe(await Qe(t,e,o,r),e,o,n=>Qe(t,e,n,r))}var Go;async function Qe(t,e,o,r){let n=d();await n.pending();let s=r.isolate??Jo(e)?.isolate??n.settings().isolate;if(s==="iframe")return(Go??(await Promise.resolve().then(()=>(kt(),Mt))).noFrames)(t,e,o,r).catch(z);let{module:a,...i}=await(s=="reframe"?(await Promise.resolve().then(()=>(kt(),Mt))).load:Ot)(e,s,r.priority),l=ze(e,i);O.watch?.(e);let u=i.name??e,p=E=>{let P=document.createElement("div",E);return P.setAttribute("data-vitral-root",u),i.scope&&P.setAttribute("data-vitral-scope",i.scope),P.style.display="contents",P},c=performance.now(),[g,m=document.body,y=null,x=customElements,v=t.appendChild(p())]=await ae(i,s>"q"&&t,p,r.styles);D(e,"css",c),c=performance.now();let Y=Ke(),It=E=>P=>(v.addEventListener(E,P),()=>v.removeEventListener(E,P)),$t={name:u,baseUrl:new URL(".",i.entry).href,events:Y.bus,shadowRoot:y,portalContainer:m,customElements:x,reportError(E){let P=M(S(E)?E:new f("RENDER_FAILED",u,String(E?.message??E),E),i);r.onError?r.onError(P):console.error(P)},navigate:Ge,protocol:n.protocol,onActivate:It("vitral:activate"),onDeactivate:It("vitral:deactivate")};O.shared&&($t.shared=O.shared(e,Y.track));let at;try{at=await a.mount(v,o,$t),D(e,"mount",c)}catch(E){throw l(),Y.dispose(),g(),v.remove(),M(new f("MOUNT_FAILED",u,"erro ao montar",E),i)}let lt=!0;return{update(E){lt&&at.update?.(E)},unmount(){if(lt){lt=!1;try{at.unmount()}finally{l(),Y.dispose(),g(),v.remove()}}}}}function Jo(t){let e=d(),o=t;for(;o&&!e.entry(o);)o=o.slice(0,Math.max(0,o.lastIndexOf("/")));return o?e.entry(o):void 0}w();H();function eo(t,e){let{isolate:o}=e,r=m=>m.src?A(m.src,m.name):m.name??"",n=r(e),s=e.props??{},a=null,i=null,l=0,u="loading",p=(m,y=null)=>{u=m,i&&(i.style.display=m==="error"?"none":""),e.onStatus?.(m,y)},c=()=>{a?.unmount(),a=null,i?.remove(),i=null},g=()=>{let m=++l;c(),i=document.createElement("div"),i.setAttribute("data-vitral-slot",n),t.appendChild(i),p("loading");let y=v=>{m===l&&p("error",S(v)?v:new f("MOUNT_FAILED",n,String(v),v))},x=s;to(i,n,s,{isolate:o,priority:e.priority,styles:e.styles,onError:y}).then(v=>{if(m!==l)return v.unmount();a=v,s!==x&&v.update?.(s),p("ready")},y)};return g(),{update(m){s=m,a?.update?.(m)},set(m){let y=m.src||m.name!==void 0?r(m):n,x=y!==n||"isolate"in m&&m.isolate!==o;n=y,"isolate"in m&&(o=m.isolate),x&&g()},retry:g,destroy(){l++,c()},get status(){return u}}}ot();H();var Tt=()=>{};function ro(t){let e={};if(typeof performance>"u"||!performance.getEntriesByName)return e;for(let o of["manifest","js","css","mount"]){let r=performance.getEntriesByName(`vitral:${t}:${o}`,"measure").pop();r&&(e[o]=Math.round(r.duration*10)/10)}return e}function oo(t,e,o){if(e==="lazy"||e==="visible"){if(typeof IntersectionObserver>"u")return o(),Tt;let r=new IntersectionObserver(n=>{n.some(s=>s.isIntersecting)&&(r.disconnect(),o())},{rootMargin:"200px"});return r.observe(t),()=>r.disconnect()}if(e==="idle"){if(typeof requestIdleCallback>"u"){let n=setTimeout(o,1);return()=>clearTimeout(n)}let r=requestIdleCallback(o,{timeout:2e3});return()=>cancelIdleCallback(r)}if(e==="hover"){let r=()=>(n(),o()),n=()=>{t.removeEventListener("pointerenter",r),t.removeEventListener("focusin",r)};return t.addEventListener("pointerenter",r),t.addEventListener("focusin",r),n}return o(),Tt}var T=new Map,N=null;function no(t,e){try{t.moveBefore(e,null)}catch{t.appendChild(e)}}function Ct(t,e){for(let o of t.querySelectorAll("*"))o.hasAttribute("data-vitral-root")&&o.dispatchEvent(new Event(e)),o.shadowRoot&&Ct(o.shadowRoot,e)}function Yo(t,e,o){T.get(t)?.slot.destroy(),T.delete(t),N?.isConnected||(N=document.createElement("div"),N.hidden=!0,N.setAttribute("data-vitral-keep-alive",""),document.body.appendChild(N)),no(N,e.box),Ct(e.box,"vitral:deactivate"),T.set(t,e);for(let[r,n]of T){if(T.size<=o)break;T.delete(r),n.slot.destroy(),n.box.remove()}}function so(t,e){let{props:o={},keepAlive:r}=e,n=c=>c.src?A(c.src,c.name):c.name??"",s=n(e),a="loading",i=null,l=(c,g)=>{a=c,e.onStatus?.(c,g)},u=e.prefetch?oo(t,e.prefetch,()=>Ve(s)):Tt,p=oo(t,e.loading,()=>{u();let c=r?T.get(s):void 0;if(c){T.delete(s),i=c,i.on=l,no(t,i.box),i.slot.update(o),Ct(i.box,"vitral:activate"),l(i.slot.status,null);return}let g=t;r&&(g=t.appendChild(document.createElement("div")),g.style.display="contents");let m={box:g,on:l,slot:null};m.slot=eo(g,{...e,name:s,src:void 0,props:o,onStatus:(y,x)=>m.on(y,x)}),i=m});return{update(c){o=c,i?.slot.update(c)},set(c){(c.src||c.name!==void 0)&&(s=n(c)),i?.slot.set({...c,src:void 0,name:s})},retry:()=>i?.slot.retry(),destroy(){p(),u(),i&&(r&&a==="ready"?Yo(s,i,r===!0?5:r):(i.slot.destroy(),i.box!==t&&i.box.remove()),i=null)},get status(){return a}}}H();var Wo=typeof HTMLElement>"u"?class{}:HTMLElement,At=class extends Wo{static{this.observedAttributes=["name","src","props","isolate"]}#t=null;#e={};get props(){return this.#e}set props(e){this.#e=e??{},this.#t?.update(this.#e)}get status(){return this.#t?.status??"loading"}retry(){this.#t?.retry()}connectedCallback(){if(this.#t)return;let e=this.#r();if(!e)return;this.hasAttribute("props")&&!Object.keys(this.#e).length&&(this.#e=io(this.getAttribute("props")));let o=this.getAttribute("keep-alive"),r={name:e,props:this.#e,isolate:this.getAttribute("isolate")||void 0,loading:this.getAttribute("loading"),prefetch:this.getAttribute("prefetch"),priority:this.getAttribute("priority")||void 0,keepAlive:o===null?!1:Number(o)||!0,styles:{inherit:this.getAttribute("inherit-styles")?.split(/\s+/).filter(Boolean)},onStatus:(s,a)=>{this.setAttribute("data-vitral-status",s),s==="loading"?this.setAttribute("aria-busy","true"):this.removeAttribute("aria-busy");let i=l=>{let u=this.querySelectorAll(`:scope > [slot="${l}"]`);for(let p of u)p.hidden=s!==(l==="fallback"?"loading":"error");return u.length>0};queueMicrotask(()=>{if(this.#t?.status!==s)return;let l={loading:i("fallback"),error:i("error"),ready:!0};this.#n(l[s]?null:s)}),s==="ready"&&this.dispatchEvent(new CustomEvent("vitral-ready",{bubbles:!0,detail:{timings:ro(e)}})),s==="error"&&this.dispatchEvent(new CustomEvent("vitral-error",{bubbles:!0,detail:{error:a}}))}},n=null;this.#t=so(this,r)}#r(){let e=this.getAttribute("src"),o=this.getAttribute("name");return e?A(e,o??void 0,!1):o}#o=null;#n(e){if(this.#o?.remove(),this.#o=null,!e)return;let o=document.createElement("div");if(o.setAttribute("data-vitral-default",e),e==="loading")o.setAttribute("role","status"),o.textContent="Carregando\u2026";else{o.setAttribute("role","alert");let r=document.createElement("button");r.type="button",r.textContent="Tentar de novo",r.onclick=()=>this.retry(),o.append("N\xE3o foi poss\xEDvel carregar. ",r)}this.prepend(this.#o=o)}disconnectedCallback(){queueMicrotask(()=>{this.isConnected||(this.#t?.destroy(),this.#t=null,this.#n(null))})}attributeChangedCallback(e,o,r){if(e==="props")return void(this.props=io(r));if(!this.#t)return void(this.isConnected&&this.connectedCallback());if(e==="name"||e==="src"){let n=this.#r();n&&this.#t.set({name:n})}e==="isolate"&&this.#t.set({isolate:r||void 0})}};function io(t){if(!t)return{};try{return JSON.parse(t)}catch{return console.error("[vitral] atributo props n\xE3o \xE9 JSON v\xE1lido:",t),{}}}function ao(t="vitral-remote"){typeof customElements<"u"&&!customElements.get(t)&&customElements.define(t,class extends At{})}R();k();var lo="data-vitral-embed";function co(t){let e=t.dataset;if(!e.remote||t.hasAttribute(lo))return null;let o=e.target?document.querySelector(e.target):t.closest("body")?t:document.body;if(!o)return document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>co(t),{once:!0}):console.error(`[vitral] data-target n\xE3o encontrado: ${e.target}`),null;t.setAttribute(lo,"");let r=b(e.remote);zo([new URL(r).origin,...e.origins?.split(/\s+/).filter(Boolean)??[]]),ao();let n=document.createElement("vitral-remote");return n.setAttribute("isolate",e.isolate||"shadow"),e.loading&&n.setAttribute("loading",e.loading),e.props&&n.setAttribute("props",e.props),e.name&&n.setAttribute("name",e.name),n.setAttribute("src",r),o===t?t.after(n):o.appendChild(n),n}function zo(t){let e=d(),o=e.settings().allowedOrigins??[B(),...e.origins()].filter(Boolean);ut({allowedOrigins:[...new Set([...o,...t])]})}var Xo=Symbol.for("vitral:embed"),Zo=globalThis[Xo]??=co;typeof document<"u"&&document.currentScript instanceof HTMLScriptElement&&Zo(document.currentScript);})();
|
|
@@ -2,9 +2,9 @@ import {
|
|
|
2
2
|
resolveModule,
|
|
3
3
|
resolveTarget,
|
|
4
4
|
splitName
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-JBNITHPI.js";
|
|
6
|
+
import "./chunk-S7PIVPBX.js";
|
|
7
|
+
import "./chunk-KU6HF2EW.js";
|
|
8
8
|
import "./chunk-TW7KYJQ6.js";
|
|
9
9
|
import "./chunk-463H6B56.js";
|
|
10
10
|
import "./chunk-GNPFWISJ.js";
|
package/dist/federation.d.ts
CHANGED
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import {
|
|
2
|
+
hostSlot
|
|
3
|
+
} from "./chunk-UXLKRSOM.js";
|
|
4
|
+
import {
|
|
5
|
+
mountOnce,
|
|
6
|
+
navigate,
|
|
7
|
+
refreshable,
|
|
8
|
+
registered,
|
|
9
|
+
scopedEvents,
|
|
10
|
+
track
|
|
11
|
+
} from "./chunk-HIVMSPGM.js";
|
|
12
|
+
import {
|
|
13
|
+
load
|
|
14
|
+
} from "./chunk-S7PIVPBX.js";
|
|
15
|
+
import {
|
|
16
|
+
injectStyles
|
|
17
|
+
} from "./chunk-KU6HF2EW.js";
|
|
18
|
+
import {
|
|
19
|
+
absolute,
|
|
20
|
+
metric
|
|
21
|
+
} from "./chunk-TW7KYJQ6.js";
|
|
22
|
+
import {
|
|
23
|
+
RemoteError,
|
|
24
|
+
ctxHooks,
|
|
25
|
+
isRemoteError,
|
|
26
|
+
report
|
|
27
|
+
} from "./chunk-463H6B56.js";
|
|
28
|
+
import {
|
|
29
|
+
protocol
|
|
30
|
+
} from "./chunk-GNPFWISJ.js";
|
|
31
|
+
|
|
32
|
+
// src/core/hydrate.ts
|
|
33
|
+
function hydrateSlot(target, holder, options) {
|
|
34
|
+
const name = options.name ?? "";
|
|
35
|
+
let props = options.props ?? {};
|
|
36
|
+
let handle = null;
|
|
37
|
+
let inner = null;
|
|
38
|
+
let status = "loading";
|
|
39
|
+
let dead = false;
|
|
40
|
+
const setStatus = (s, e = null) => {
|
|
41
|
+
status = s;
|
|
42
|
+
options.onStatus?.(s, e);
|
|
43
|
+
};
|
|
44
|
+
const fallback = (next = {}) => {
|
|
45
|
+
handle?.unmount();
|
|
46
|
+
handle = null;
|
|
47
|
+
inner = hostSlot(target, {
|
|
48
|
+
...options,
|
|
49
|
+
...next,
|
|
50
|
+
props,
|
|
51
|
+
onStatus(s, e) {
|
|
52
|
+
if (s !== "loading") holder.remove();
|
|
53
|
+
if (s !== "loading" || !holder.isConnected) setStatus(s, e);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
const initial = props;
|
|
58
|
+
hydrateRemote(holder, name, props, options).then(
|
|
59
|
+
(h) => {
|
|
60
|
+
if (dead) return h?.unmount();
|
|
61
|
+
if (!h) return fallback();
|
|
62
|
+
handle = h;
|
|
63
|
+
if (props !== initial) h.update?.(props);
|
|
64
|
+
setStatus("ready");
|
|
65
|
+
},
|
|
66
|
+
(e) => {
|
|
67
|
+
if (dead) return;
|
|
68
|
+
holder.remove();
|
|
69
|
+
setStatus("error", isRemoteError(e) ? e : new RemoteError("MOUNT_FAILED", name, String(e), e));
|
|
70
|
+
}
|
|
71
|
+
);
|
|
72
|
+
return {
|
|
73
|
+
update(next) {
|
|
74
|
+
props = next;
|
|
75
|
+
(inner ?? handle)?.update?.(next);
|
|
76
|
+
},
|
|
77
|
+
set(next) {
|
|
78
|
+
if (inner) return inner.set(next);
|
|
79
|
+
const changed = next.name !== void 0 && next.name !== name || "isolate" in next && next.isolate !== options.isolate;
|
|
80
|
+
if (changed) holder.remove(), fallback(next);
|
|
81
|
+
},
|
|
82
|
+
retry() {
|
|
83
|
+
if (inner) return inner.retry();
|
|
84
|
+
holder.remove();
|
|
85
|
+
fallback();
|
|
86
|
+
},
|
|
87
|
+
destroy() {
|
|
88
|
+
dead = true;
|
|
89
|
+
inner?.destroy();
|
|
90
|
+
handle?.unmount();
|
|
91
|
+
holder.remove();
|
|
92
|
+
},
|
|
93
|
+
get status() {
|
|
94
|
+
return inner?.status ?? status;
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
async function hydrateRemote(holder, name, props, options) {
|
|
99
|
+
const p = protocol();
|
|
100
|
+
await p.pending();
|
|
101
|
+
const isolate = options.isolate ?? registered(name)?.isolate ?? p.settings().isolate;
|
|
102
|
+
if (isolate === "iframe") return null;
|
|
103
|
+
const entry = p.entry(name);
|
|
104
|
+
const seed = entry?.url && !entry.manifest ? manifestFrom(holder, entry.url) : void 0;
|
|
105
|
+
if (seed) entry.manifest = seed;
|
|
106
|
+
const { module: mod, ...resolved } = await load(name, isolate, options.priority).finally(() => seed && entry.manifest === seed && delete entry.manifest);
|
|
107
|
+
const shadow = isolate === "shadow";
|
|
108
|
+
const el = [...(shadow ? holder.shadowRoot : holder)?.children ?? []].find((c) => c.hasAttribute("data-vitral-root"));
|
|
109
|
+
if (typeof mod.hydrate !== "function" || !el) return null;
|
|
110
|
+
const untrack = track(name, resolved);
|
|
111
|
+
ctxHooks.watch?.(name);
|
|
112
|
+
const label = resolved.name ?? name;
|
|
113
|
+
let t = performance.now();
|
|
114
|
+
const [release, portal = document.body, shadowRoot = null, registry = customElements] = await injectStyles(resolved, shadow && holder, () => el, options.styles);
|
|
115
|
+
if (shadowRoot?.adoptedStyleSheets.length) for (const s of shadowRoot.querySelectorAll("style[data-vitral-ssr]")) s.remove();
|
|
116
|
+
metric(name, "css", t);
|
|
117
|
+
t = performance.now();
|
|
118
|
+
const scoped = scopedEvents();
|
|
119
|
+
const on = (type) => (fn) => (el.addEventListener(type, fn), () => el.removeEventListener(type, fn));
|
|
120
|
+
const ctx = {
|
|
121
|
+
name: label,
|
|
122
|
+
baseUrl: new URL(".", resolved.entry).href,
|
|
123
|
+
events: scoped.bus,
|
|
124
|
+
shadowRoot,
|
|
125
|
+
portalContainer: portal,
|
|
126
|
+
customElements: registry,
|
|
127
|
+
reportError(e) {
|
|
128
|
+
const err = report(isRemoteError(e) ? e : new RemoteError("RENDER_FAILED", label, String(e?.message ?? e), e), resolved);
|
|
129
|
+
if (options.onError) options.onError(err);
|
|
130
|
+
else console.error(err);
|
|
131
|
+
},
|
|
132
|
+
navigate,
|
|
133
|
+
protocol: p.protocol,
|
|
134
|
+
onActivate: on("vitral:activate"),
|
|
135
|
+
onDeactivate: on("vitral:deactivate")
|
|
136
|
+
};
|
|
137
|
+
if (ctxHooks.shared) ctx.shared = ctxHooks.shared(name, scoped.track);
|
|
138
|
+
let mounted;
|
|
139
|
+
try {
|
|
140
|
+
mounted = await mod.hydrate(el, props, ctx);
|
|
141
|
+
metric(name, "mount", t);
|
|
142
|
+
} catch (e) {
|
|
143
|
+
untrack();
|
|
144
|
+
scoped.dispose();
|
|
145
|
+
release();
|
|
146
|
+
el.remove();
|
|
147
|
+
throw report(new RemoteError("MOUNT_FAILED", label, "erro ao hidratar", e), resolved);
|
|
148
|
+
}
|
|
149
|
+
let alive = true;
|
|
150
|
+
const current = {
|
|
151
|
+
update(next) {
|
|
152
|
+
if (alive) mounted.update?.(next);
|
|
153
|
+
},
|
|
154
|
+
unmount() {
|
|
155
|
+
if (!alive) return;
|
|
156
|
+
alive = false;
|
|
157
|
+
try {
|
|
158
|
+
mounted.unmount();
|
|
159
|
+
} finally {
|
|
160
|
+
untrack();
|
|
161
|
+
scoped.dispose();
|
|
162
|
+
release();
|
|
163
|
+
el.remove();
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
return refreshable(current, name, props, (latest) => mountOnce(holder, name, latest, options));
|
|
168
|
+
}
|
|
169
|
+
function manifestFrom(holder, url) {
|
|
170
|
+
for (const s of holder.querySelectorAll(":scope>script[data-vitral-manifest]")) {
|
|
171
|
+
if (absolute(s.getAttribute("data-vitral-manifest") ?? "") !== url) continue;
|
|
172
|
+
try {
|
|
173
|
+
const m = JSON.parse(s.textContent ?? "");
|
|
174
|
+
if (typeof m?.entry === "string") return m;
|
|
175
|
+
} catch {
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
export {
|
|
180
|
+
hydrateRemote,
|
|
181
|
+
hydrateSlot
|
|
182
|
+
};
|
package/dist/iframe.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
splitName
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-JBNITHPI.js";
|
|
4
4
|
import {
|
|
5
5
|
verifyIntegrity
|
|
6
6
|
} from "./chunk-UYOPJ4XQ.js";
|
|
@@ -9,11 +9,11 @@ import {
|
|
|
9
9
|
navigate,
|
|
10
10
|
setFrameMounter,
|
|
11
11
|
track
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-HIVMSPGM.js";
|
|
13
13
|
import {
|
|
14
14
|
resolveEntry
|
|
15
|
-
} from "./chunk-
|
|
16
|
-
import "./chunk-
|
|
15
|
+
} from "./chunk-S7PIVPBX.js";
|
|
16
|
+
import "./chunk-KU6HF2EW.js";
|
|
17
17
|
import {
|
|
18
18
|
fetchBytes,
|
|
19
19
|
withRetry,
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { V as VitralConfig, c as RemoteEntry, P as Props, a as RemoteModule, I as Isolation, d as StyleOptions, M as MountedRemote, E as EventBus, R as RemoteContext, e as SharedValue } from './types-
|
|
2
|
-
export { f as Channel, g as ChannelContext, C as CheckedProps, D as DevOverrides, H as Handler, h as McpAppBridge, i as PropsOf, j as ProvideOptions, k as ProvidedValue, l as RemoteContract, m as RemoteManifest, n as RemoteMetric, o as Remotes, p as RollbackInfo, S as Shared, q as SharedApi, b as SharedModules, r as SharedType, s as batch, t as provide, u as shared } from './types-
|
|
1
|
+
import { V as VitralConfig, c as RemoteEntry, P as Props, a as RemoteModule, I as Isolation, d as StyleOptions, M as MountedRemote, E as EventBus, R as RemoteContext, e as SharedValue } from './types-DUtcF3HO.js';
|
|
2
|
+
export { f as Channel, g as ChannelContext, C as CheckedProps, D as DevOverrides, H as Handler, h as McpAppBridge, i as PropsOf, j as ProvideOptions, k as ProvidedValue, l as RemoteContract, m as RemoteManifest, n as RemoteMetric, o as Remotes, p as RollbackInfo, S as Shared, q as SharedApi, b as SharedModules, r as SharedType, s as batch, t as provide, u as shared } from './types-DUtcF3HO.js';
|
|
3
3
|
import { R as RemoteError } from './errors-kjBv6IH_.js';
|
|
4
4
|
export { a as RemoteErrorCode } from './errors-kjBv6IH_.js';
|
|
5
|
-
export { R as RemoteSlot, a as SlotOptions, S as SlotStatus, c as createSlot } from './slot-
|
|
6
|
-
export { e as events } from './events-
|
|
5
|
+
export { R as RemoteSlot, a as SlotOptions, S as SlotStatus, c as createSlot } from './slot-D49L1rdU.js';
|
|
6
|
+
export { e as events } from './events-0rxFlWJJ.js';
|
|
7
7
|
export { n as navigate } from './navigate-BRG1WJUM.js';
|
|
8
8
|
export { r as __reset } from './state-BDdCwc21.js';
|
|
9
9
|
|
package/dist/index.js
CHANGED
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
syncTabs,
|
|
18
18
|
unsafeHTML,
|
|
19
19
|
watchUpdates
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-HIVMSPGM.js";
|
|
21
21
|
import {
|
|
22
22
|
configure,
|
|
23
23
|
loadModule,
|
|
@@ -25,8 +25,8 @@ import {
|
|
|
25
25
|
preload,
|
|
26
26
|
register,
|
|
27
27
|
registerSrc
|
|
28
|
-
} from "./chunk-
|
|
29
|
-
import "./chunk-
|
|
28
|
+
} from "./chunk-S7PIVPBX.js";
|
|
29
|
+
import "./chunk-KU6HF2EW.js";
|
|
30
30
|
import "./chunk-TW7KYJQ6.js";
|
|
31
31
|
import {
|
|
32
32
|
RemoteError
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rotas → remote, sem DOM: o `<vitral-outlet>` (`vitral/routes`) e o gateway
|
|
3
|
+
* (`vitral/edge`) usam o mesmo mapa e a mesma regra.
|
|
4
|
+
*/
|
|
5
|
+
/** Padrão de URL → nome do remote. A primeira rota que bate vence. */
|
|
6
|
+
type Routes = Record<string, string>;
|
|
7
|
+
interface RouteMatch {
|
|
8
|
+
/** Nome do remote. */
|
|
9
|
+
name: string;
|
|
10
|
+
/** Padrão que bateu. */
|
|
11
|
+
pattern: string;
|
|
12
|
+
/** Segmentos `:nome` do padrão. */
|
|
13
|
+
params: Record<string, string>;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export type { Routes as R, RouteMatch as a };
|
package/dist/otel.d.ts
CHANGED
|
@@ -40,5 +40,33 @@ interface OtelOptions {
|
|
|
40
40
|
}
|
|
41
41
|
/** `onError` para o `configure` que registra cada `RemoteError` no OpenTelemetry. */
|
|
42
42
|
declare function otelOnError({ trace, tracer }: OtelOptions): (error: RemoteError) => void;
|
|
43
|
+
/** A parte de um `Meter` de `@opentelemetry/api` que `otelVitals` usa. */
|
|
44
|
+
interface MeterLike {
|
|
45
|
+
createHistogram(name: string, options?: {
|
|
46
|
+
unit?: string;
|
|
47
|
+
description?: string;
|
|
48
|
+
}): {
|
|
49
|
+
record(value: number, attributes?: Attributes): void;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* `onReport` para o `vitals()` de `vitral/vitals` que grava cada Web Vital
|
|
54
|
+
* num histograma `vitral.vitals.<lcp|cls|inp|fcp|ttfb>`:
|
|
55
|
+
*
|
|
56
|
+
* import { metrics } from '@opentelemetry/api'
|
|
57
|
+
* vitals({ onReport: otelVitals(metrics.getMeter('host')) })
|
|
58
|
+
*
|
|
59
|
+
* Atributos: `vitral.remote`, `vitral.version`, `vitral.route`,
|
|
60
|
+
* `vitral.navigation_id` e `vitral.rating`. Os ausentes ficam de fora.
|
|
61
|
+
*/
|
|
62
|
+
declare function otelVitals(meter: MeterLike): (report: {
|
|
63
|
+
name: string;
|
|
64
|
+
remote?: string;
|
|
65
|
+
version?: string;
|
|
66
|
+
route: string;
|
|
67
|
+
navigationId?: string;
|
|
68
|
+
value: number;
|
|
69
|
+
rating: string;
|
|
70
|
+
}) => void;
|
|
43
71
|
|
|
44
|
-
export { type Attributes, type OtelOptions, type SpanLike, otelOnError };
|
|
72
|
+
export { type Attributes, type MeterLike, type OtelOptions, type SpanLike, otelOnError, otelVitals };
|
package/dist/otel.js
CHANGED
|
@@ -22,6 +22,18 @@ function otelOnError({ trace, tracer }) {
|
|
|
22
22
|
span.end();
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
|
+
function otelVitals(meter) {
|
|
26
|
+
const histograms = {};
|
|
27
|
+
return (r) => {
|
|
28
|
+
const attributes = { "vitral.route": r.route, "vitral.rating": r.rating };
|
|
29
|
+
if (r.remote) attributes["vitral.remote"] = r.remote;
|
|
30
|
+
if (r.version) attributes["vitral.version"] = r.version;
|
|
31
|
+
if (r.navigationId) attributes["vitral.navigation_id"] = r.navigationId;
|
|
32
|
+
const name = r.name.toLowerCase();
|
|
33
|
+
(histograms[name] ??= meter.createHistogram("vitral.vitals." + name, { unit: name == "cls" ? "1" : "ms" })).record(r.value, attributes);
|
|
34
|
+
};
|
|
35
|
+
}
|
|
25
36
|
export {
|
|
26
|
-
otelOnError
|
|
37
|
+
otelOnError,
|
|
38
|
+
otelVitals
|
|
27
39
|
};
|
package/dist/preact.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as preact from 'preact';
|
|
2
2
|
import { VNode, ComponentType } from 'preact';
|
|
3
|
-
import { P as Props, I as Isolation, C as CheckedProps, a as RemoteModule, S as Shared } from './types-
|
|
4
|
-
export { R as RemoteContext } from './types-
|
|
3
|
+
import { P as Props, I as Isolation, C as CheckedProps, a as RemoteModule, S as Shared } from './types-DUtcF3HO.js';
|
|
4
|
+
export { R as RemoteContext } from './types-DUtcF3HO.js';
|
|
5
5
|
import { R as RemoteError } from './errors-kjBv6IH_.js';
|
|
6
|
-
import { S as SlotStatus } from './slot-
|
|
7
|
-
export { e as events } from './events-
|
|
6
|
+
import { S as SlotStatus } from './slot-D49L1rdU.js';
|
|
7
|
+
export { e as events } from './events-0rxFlWJJ.js';
|
|
8
8
|
export { n as navigate } from './navigate-BRG1WJUM.js';
|
|
9
9
|
import { L as Loading, P as Prefetch } from './host-slot-Cz6EiGsB.js';
|
|
10
10
|
|
package/dist/preact.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
hostSlot
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-UXLKRSOM.js";
|
|
4
4
|
import {
|
|
5
5
|
defineRemote,
|
|
6
6
|
events,
|
|
@@ -8,9 +8,9 @@ import {
|
|
|
8
8
|
navigate,
|
|
9
9
|
same,
|
|
10
10
|
shared
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-HIVMSPGM.js";
|
|
12
|
+
import "./chunk-S7PIVPBX.js";
|
|
13
|
+
import "./chunk-KU6HF2EW.js";
|
|
14
14
|
import "./chunk-TW7KYJQ6.js";
|
|
15
15
|
import "./chunk-463H6B56.js";
|
|
16
16
|
import "./chunk-GNPFWISJ.js";
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
interface PrefetchOptions {
|
|
2
|
+
/** Probabilidade mínima da rota seguinte para baixar os remotes dela. Padrão: 0.4. */
|
|
3
|
+
threshold?: number;
|
|
4
|
+
/** Transições contadas a partir da rota atual antes de prever. Padrão: 2. */
|
|
5
|
+
min?: number;
|
|
6
|
+
/** Onde guardar as contagens. `null` guarda só na memória. Padrão: localStorage. */
|
|
7
|
+
storage?: Pick<Storage, 'getItem' | 'setItem'> | null;
|
|
8
|
+
/** Chave da rota. Padrão: `url.pathname`. */
|
|
9
|
+
key?: (url: URL) => string;
|
|
10
|
+
/** Chamado depois de baixar os remotes previstos. */
|
|
11
|
+
onPrefetch?: (remotes: string[], route: string) => void;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Começa a aprender as rotas e a pré-carregar o próximo remote. Devolve a
|
|
15
|
+
* função que para tudo (as contagens continuam guardadas).
|
|
16
|
+
*/
|
|
17
|
+
declare function prefetch(options?: PrefetchOptions): () => void;
|
|
18
|
+
/**
|
|
19
|
+
* Baixa o manifesto e os arquivos de um remote sem executar nada. Com
|
|
20
|
+
* integrity, pelo mesmo caminho de SRI que a montagem vai usar. Devolve
|
|
21
|
+
* false se o remote não pôde ser pré-carregado (sem erro no console).
|
|
22
|
+
*/
|
|
23
|
+
declare function warm(name: string): Promise<boolean>;
|
|
24
|
+
|
|
25
|
+
export { type PrefetchOptions, prefetch, warm };
|