lula2 0.7.5-nightly.1 → 0.8.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/_app/immutable/chunks/BHkKokgA.js +1 -0
- package/dist/_app/immutable/chunks/{B3K8aJnm.js → BNu54jRO.js} +1 -1
- package/dist/_app/immutable/chunks/{DveOLWfB.js → BzIr_GrC.js} +42 -42
- package/dist/_app/immutable/chunks/CC6oS456.js +1 -0
- package/dist/_app/immutable/chunks/DHuA7MQr.js +1 -0
- package/dist/_app/immutable/chunks/{BOr7AGz1.js → DJTXGU6C.js} +1 -1
- package/dist/_app/immutable/chunks/{C04NlUEE.js → DSxRA67V.js} +1 -1
- package/dist/_app/immutable/chunks/{BTEcqCut.js → DpCtGpHu.js} +1 -1
- package/dist/_app/immutable/chunks/{CYCiyXhX.js → DznG4VMX.js} +2 -2
- package/dist/_app/immutable/chunks/{Dqqytqkj.js → Ew6_cz_0.js} +1 -1
- package/dist/_app/immutable/chunks/{2BRL7VKY.js → kRA7ZCNG.js} +1 -1
- package/dist/_app/immutable/entry/{app.DQYVFQmH.js → app.CpHUD0XU.js} +2 -2
- package/dist/_app/immutable/entry/start.BavDkynd.js +1 -0
- package/dist/_app/immutable/nodes/{0.VqJIWUds.js → 0.D5TULpJI.js} +1 -1
- package/dist/_app/immutable/nodes/1.BBgWG9H0.js +1 -0
- package/dist/_app/immutable/nodes/{2.CwWiKEBj.js → 2.c2WlghKX.js} +1 -1
- package/dist/_app/immutable/nodes/{3.UIV2UOH1.js → 3.hNTFAKFs.js} +1 -1
- package/dist/_app/immutable/nodes/{4.BdgTjqjd.js → 4.C7MOPYAO.js} +1 -1
- package/dist/_app/version.json +1 -1
- package/dist/cli/commands/ui.js +98 -8
- package/dist/cli/server/index.js +98 -8
- package/dist/cli/server/server.js +98 -8
- package/dist/cli/server/serverState.js +40 -6
- package/dist/cli/server/websocketServer.js +1146 -1056
- package/dist/index.html +11 -11
- package/dist/index.js +98 -8
- package/package.json +128 -127
- package/src/lib/components/controls/tabs/MappingsTab.svelte +16 -5
- package/src/lib/websocket.ts +7 -0
- package/dist/_app/immutable/chunks/CvMmkcEK.js +0 -1
- package/dist/_app/immutable/chunks/DlvidjXv.js +0 -1
- package/dist/_app/immutable/chunks/OZt-i3RT.js +0 -1
- package/dist/_app/immutable/entry/start.CRaGL1oc.js +0 -1
- package/dist/_app/immutable/nodes/1.DOuy_I_c.js +0 -1
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
[](https://npmjs.com/package/lula-next)
|
|
16
16
|
[](https://codecov.io/gh/defenseunicorns/lula)
|
|
17
17
|
|
|
18
|
-
Bring GitOps principles to compliance management. Lula treats security controls as code, enabling teams to manage compliance frameworks (NIST 800-53, CIS, SOC2) through pull requests, code reviews, and automated workflows—just like your application code in a user-friendly web interface. Your data stays your data--Lula takes spreadsheet imports, lets you drag & drop the UI layout and version control the data as yaml automatically for you.
|
|
18
|
+
Bring GitOps principles to compliance management. Lula treats security controls as code, enabling teams to manage compliance frameworks (NIST 800-53, CIS, SOC2) through pull requests, code reviews, and automated workflows — just like your application code in a user-friendly web interface. Your data stays your data--Lula takes spreadsheet imports, lets you drag & drop the UI layout and version control the data as yaml automatically for you.
|
|
19
19
|
|
|
20
20
|
## Quickstart
|
|
21
21
|
|
|
@@ -241,7 +241,7 @@ properties:
|
|
|
241
241
|
|
|
242
242
|
### GitOps Workflow
|
|
243
243
|
|
|
244
|
-
Manage compliance like code with
|
|
244
|
+
Manage compliance like code with GitOps practices:
|
|
245
245
|
|
|
246
246
|
```bash
|
|
247
247
|
# Create feature branch for control updates
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b9 as ke,o as De,d as A,g as T,b as I,ad as Z,bk as qe,bl as gt}from"./DHuA7MQr.js";class Ee{constructor(t,n){this.status=t,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${t}`}}toString(){return JSON.stringify(this.body)}}class Se{constructor(t,n){this.status=t,this.location=n}}class Re extends Error{constructor(t,n,a){super(a),this.status=t,this.text=n}}new URL("sveltekit-internal://");function _t(e,t){return e==="/"||t==="ignore"?e:t==="never"?e.endsWith("/")?e.slice(0,-1):e:t==="always"&&!e.endsWith("/")?e+"/":e}function mt(e){return e.split("%25").map(decodeURI).join("%25")}function wt(e){for(const t in e)e[t]=decodeURIComponent(e[t]);return e}function he({href:e}){return e.split("#")[0]}function vt(...e){let t=5381;for(const n of e)if(typeof n=="string"){let a=n.length;for(;a;)t=t*33^n.charCodeAt(--a)}else if(ArrayBuffer.isView(n)){const a=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let r=a.length;for(;r;)t=t*33^a[--r]}else throw new TypeError("value must be a string or TypedArray");return(t>>>0).toString(36)}new TextEncoder;new TextDecoder;function yt(e){const t=atob(e),n=new Uint8Array(t.length);for(let a=0;a<t.length;a++)n[a]=t.charCodeAt(a);return n}const bt=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||"GET")!=="GET"&&F.delete(xe(e)),bt(e,t));const F=new Map;function kt(e,t){const n=xe(e,t),a=document.querySelector(n);if(a?.textContent){a.remove();let{body:r,...s}=JSON.parse(a.textContent);const o=a.getAttribute("data-ttl");return o&&F.set(n,{body:r,init:s,ttl:1e3*Number(o)}),a.getAttribute("data-b64")!==null&&(r=yt(r)),Promise.resolve(new Response(r,s))}return window.fetch(e,t)}function Et(e,t,n){if(F.size>0){const a=xe(e,n),r=F.get(a);if(r){if(performance.now()<r.ttl&&["default","force-cache","only-if-cached",void 0].includes(n?.cache))return new Response(r.body,r.init);F.delete(a)}}return window.fetch(t,n)}function xe(e,t){let a=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){const r=[];t.headers&&r.push([...new Headers(t.headers)].join(",")),t.body&&(typeof t.body=="string"||ArrayBuffer.isView(t.body))&&r.push(t.body),a+=`[data-hash="${vt(...r)}"]`}return a}const St=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function Rt(e){const t=[];return{pattern:e==="/"?/^\/$/:new RegExp(`^${Lt(e).map(a=>{const r=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(a);if(r)return t.push({name:r[1],matcher:r[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const s=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(a);if(s)return t.push({name:s[1],matcher:s[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!a)return;const o=a.split(/\[(.+?)\](?!\])/);return"/"+o.map((c,l)=>{if(l%2){if(c.startsWith("x+"))return pe(String.fromCharCode(parseInt(c.slice(2),16)));if(c.startsWith("u+"))return pe(String.fromCharCode(...c.slice(2).split("-").map(m=>parseInt(m,16))));const f=St.exec(c),[,h,w,u,g]=f;return t.push({name:u,matcher:g,optional:!!h,rest:!!w,chained:w?l===1&&o[0]==="":!1}),w?"([^]*?)":h?"([^/]*)?":"([^/]+?)"}return pe(c)}).join("")}).join("")}/?$`),params:t}}function xt(e){return e!==""&&!/^\([^)]+\)$/.test(e)}function Lt(e){return e.slice(1).split("/").filter(xt)}function Ut(e,t,n){const a={},r=e.slice(1),s=r.filter(i=>i!==void 0);let o=0;for(let i=0;i<t.length;i+=1){const c=t[i];let l=r[i-o];if(c.chained&&c.rest&&o&&(l=r.slice(i-o,i+1).filter(f=>f).join("/"),o=0),l===void 0){c.rest&&(a[c.name]="");continue}if(!c.matcher||n[c.matcher](l)){a[c.name]=l;const f=t[i+1],h=r[i+1];f&&!f.rest&&f.optional&&h&&c.chained&&(o=0),!f&&!h&&Object.keys(a).length===s.length&&(o=0);continue}if(c.optional&&c.chained){o++;continue}return}if(!o)return a}function pe(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function At({nodes:e,server_loads:t,dictionary:n,matchers:a}){const r=new Set(t);return Object.entries(n).map(([i,[c,l,f]])=>{const{pattern:h,params:w}=Rt(i),u={id:i,exec:g=>{const m=h.exec(g);if(m)return Ut(m,w,a)},errors:[1,...f||[]].map(g=>e[g]),layouts:[0,...l||[]].map(o),leaf:s(c)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function s(i){const c=i<0;return c&&(i=~i),[c,e[i]]}function o(i){return i===void 0?i:[r.has(i),e[i]]}}function Ye(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function Ve(e,t,n=JSON.stringify){const a=n(t);try{sessionStorage[e]=a}catch{}}const L=globalThis.__sveltekit_11w68nn?.base??"",Tt=globalThis.__sveltekit_11w68nn?.assets??L??"",It="1765552236798",ze="sveltekit:snapshot",He="sveltekit:scroll",Je="sveltekit:states",Ot="sveltekit:pageurl",B="sveltekit:history",W="sveltekit:navigation",j={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},ce=location.origin;function Le(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){const n=document.getElementsByTagName("base");t=n.length?n[0].href:document.URL}return new URL(e,t)}function le(){return{x:pageXOffset,y:pageYOffset}}function V(e,t){return e.getAttribute(`data-sveltekit-${t}`)}const Be={...j,"":j.hover};function Xe(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function Qe(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=Xe(e)}}function me(e,t,n){let a;try{if(a=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&a.hash.match(/^#[^/]/)){const i=location.hash.split("#")[1]||"/";a.hash=`#${i}${a.hash}`}}catch{}const r=e instanceof SVGAElement?e.target.baseVal:e.target,s=!a||!!r||ue(a,t,n)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),o=a?.origin===ce&&e.hasAttribute("download");return{url:a,external:s,target:r,download:o}}function ee(e){let t=null,n=null,a=null,r=null,s=null,o=null,i=e;for(;i&&i!==document.documentElement;)a===null&&(a=V(i,"preload-code")),r===null&&(r=V(i,"preload-data")),t===null&&(t=V(i,"keepfocus")),n===null&&(n=V(i,"noscroll")),s===null&&(s=V(i,"reload")),o===null&&(o=V(i,"replacestate")),i=Xe(i);function c(l){switch(l){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:Be[a??"off"],preload_data:Be[r??"off"],keepfocus:c(t),noscroll:c(n),reload:c(s),replace_state:c(o)}}function Ke(e){const t=ke(e);let n=!0;function a(){n=!0,t.update(o=>o)}function r(o){n=!1,t.set(o)}function s(o){let i;return t.subscribe(c=>{(i===void 0||n&&c!==i)&&o(i=c)})}return{notify:a,set:r,subscribe:s}}const Ze={v:()=>{}};function Pt(){const{set:e,subscribe:t}=ke(!1);let n;async function a(){clearTimeout(n);try{const r=await fetch(`${Tt}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!r.ok)return!1;const o=(await r.json()).version!==It;return o&&(e(!0),Ze.v(),clearTimeout(n)),o}catch{return!1}}return{subscribe:t,check:a}}function ue(e,t,n){return e.origin!==ce||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function rn(e){}const et=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...et];const $t=new Set([...et]);[...$t];function Ct(e){return e.filter(t=>t!=null)}function Ue(e){return e instanceof Ee||e instanceof Re?e.status:500}function jt(e){return e instanceof Re?e.text:"Internal Error"}let k,Y,ge;const Nt=De.toString().includes("$$")||/function \w+\(\) \{\}/.test(De.toString());Nt?(k={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL("https://example.com")},Y={current:null},ge={current:!1}):(k=new class{#e=A({});get data(){return T(this.#e)}set data(t){I(this.#e,t)}#t=A(null);get form(){return T(this.#t)}set form(t){I(this.#t,t)}#n=A(null);get error(){return T(this.#n)}set error(t){I(this.#n,t)}#a=A({});get params(){return T(this.#a)}set params(t){I(this.#a,t)}#r=A({id:null});get route(){return T(this.#r)}set route(t){I(this.#r,t)}#o=A({});get state(){return T(this.#o)}set state(t){I(this.#o,t)}#s=A(-1);get status(){return T(this.#s)}set status(t){I(this.#s,t)}#i=A(new URL("https://example.com"));get url(){return T(this.#i)}set url(t){I(this.#i,t)}},Y=new class{#e=A(null);get current(){return T(this.#e)}set current(t){I(this.#e,t)}},ge=new class{#e=A(!1);get current(){return T(this.#e)}set current(t){I(this.#e,t)}},Ze.v=()=>ge.current=!0);function tt(e){Object.assign(k,e)}const Dt=new Set(["icon","shortcut icon","apple-touch-icon"]),D=Ye(He)??{},z=Ye(ze)??{},C={url:Ke({}),page:Ke({}),navigating:ke(null),updated:Pt()};function Ae(e){D[e]=le()}function qt(e,t){let n=e+1;for(;D[n];)delete D[n],n+=1;for(n=t+1;z[n];)delete z[n],n+=1}function H(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(()=>{})}async function nt(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration(L||"/");e&&await e.update()}}function Me(){}let Te,we,te,O,ve,v;const ne=[],ae=[];let R=null;function ye(){R?.fork?.then(e=>e?.discard()),R=null}const Q=new Map,at=new Set,Vt=new Set,G=new Set;let _={branch:[],error:null,url:null},rt=!1,re=!1,Fe=!0,J=!1,M=!1,ot=!1,Ie=!1,Oe,y,x,N;const oe=new Set,Ge=new Map;async function ln(e,t,n){globalThis.__sveltekit_11w68nn?.data&&globalThis.__sveltekit_11w68nn.data,document.URL!==location.href&&(location.href=location.href),v=e,await e.hooks.init?.(),Te=At(e),O=document.documentElement,ve=t,we=e.nodes[0],te=e.nodes[1],we(),te(),y=history.state?.[B],x=history.state?.[W],y||(y=x=Date.now(),history.replaceState({...history.state,[B]:y,[W]:x},""));const a=D[y];function r(){a&&(history.scrollRestoration="manual",scrollTo(a.x,a.y))}n?(r(),await Zt(ve,n)):(await K({type:"enter",url:Le(v.hash?nn(new URL(location.href)):location.href),replace_state:!0}),r()),Qt()}function Bt(){ne.length=0,Ie=!1}function st(e){ae.some(t=>t?.snapshot)&&(z[e]=ae.map(t=>t?.snapshot?.capture()))}function it(e){z[e]?.forEach((t,n)=>{ae[n]?.snapshot?.restore(t)})}function We(){Ae(y),Ve(He,D),st(x),Ve(ze,z)}async function ct(e,t,n,a){let r;t.invalidateAll&&ye(),await K({type:"goto",url:Le(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:n,nav_token:a,accept:()=>{t.invalidateAll&&(Ie=!0,r=[...Ge.keys()]),t.invalidate&&t.invalidate.forEach(Xt)}}),t.invalidateAll&&Z().then(Z).then(()=>{Ge.forEach(({resource:s},o)=>{r?.includes(o)&&s.refresh?.()})})}async function Kt(e){if(e.id!==R?.id){ye();const t={};if(oe.add(t),R={id:e.id,token:t,promise:ut({...e,preload:t}).then(n=>(oe.delete(t),n.type==="loaded"&&n.state.error&&ye(),n)),fork:null},qe){const n=R;n.fork=n.promise.then(a=>{if(n===R&&a.type==="loaded")try{return qe(()=>{Oe.$set(a.props),tt(a.props.page)})}catch{}return null})}}return R.promise}async function _e(e){const t=(await fe(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].map(n=>n?.[1]()))}async function lt(e,t,n){_=e.state;const a=document.querySelector("style[data-sveltekit]");if(a&&a.remove(),Object.assign(k,e.props.page),Oe=new v.root({target:t,props:{...e.props,stores:C,components:ae},hydrate:n,sync:!1}),await Promise.resolve(),it(x),n){const r={from:null,to:{params:_.params,route:{id:_.route?.id??null},url:new URL(location.href)},willUnload:!1,type:"enter",complete:Promise.resolve()};G.forEach(s=>s(r))}re=!0}function se({url:e,params:t,branch:n,status:a,error:r,route:s,form:o}){let i="never";if(L&&(e.pathname===L||e.pathname===L+"/"))i="always";else for(const u of n)u?.slash!==void 0&&(i=u.slash);e.pathname=_t(e.pathname,i),e.search=e.search;const c={type:"loaded",state:{url:e,params:t,branch:n,error:r,route:s},props:{constructors:Ct(n).map(u=>u.node.component),page:Ne(k)}};o!==void 0&&(c.props.form=o);let l={},f=!k,h=0;for(let u=0;u<Math.max(n.length,_.branch.length);u+=1){const g=n[u],m=_.branch[u];g?.data!==m?.data&&(f=!0),g&&(l={...l,...g.data},f&&(c.props[`data_${h}`]=l),h+=1)}return(!_.url||e.href!==_.url.href||_.error!==r||o!==void 0&&o!==k.form||f)&&(c.props.page={error:r,params:t,route:{id:s?.id??null},state:{},status:a,url:new URL(e),form:o??null,data:f?l:k.data}),c}async function Pe({loader:e,parent:t,url:n,params:a,route:r,server_data_node:s}){let o=null;const i={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},c=await e();return{node:c,loader:e,server:s,universal:c.universal?.load?{type:"data",data:o,uses:i}:null,data:o??s?.data??null,slash:c.universal?.trailingSlash??s?.slash}}function Mt(e,t,n){let a=e instanceof Request?e.url:e;const r=new URL(a,n);r.origin===n.origin&&(a=r.href.slice(n.origin.length));const s=re?Et(a,r.href,t):kt(a,t);return{resolved:r,promise:s}}function Ft(e,t,n,a,r,s){if(Ie)return!0;if(!r)return!1;if(r.parent&&e||r.route&&t||r.url&&n)return!0;for(const o of r.search_params)if(a.has(o))return!0;for(const o of r.params)if(s[o]!==_.params[o])return!0;for(const o of r.dependencies)if(ne.some(i=>i(new URL(o))))return!0;return!1}function $e(e,t){return e?.type==="data"?e:e?.type==="skip"?t??null:null}function Gt(e,t){if(!e)return new Set(t.searchParams.keys());const n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(const a of n){const r=e.searchParams.getAll(a),s=t.searchParams.getAll(a);r.every(o=>s.includes(o))&&s.every(o=>r.includes(o))&&n.delete(a)}return n}function Wt({error:e,url:t,route:n,params:a}){return{type:"loaded",state:{error:e,url:t,route:n,params:a,branch:[]},props:{page:Ne(k),constructors:[]}}}async function ut({id:e,invalidating:t,url:n,params:a,route:r,preload:s}){if(R?.id===e)return oe.delete(R.token),R.promise;const{errors:o,layouts:i,leaf:c}=r,l=[...i,c];o.forEach(p=>p?.().catch(()=>{})),l.forEach(p=>p?.[1]().catch(()=>{}));const f=_.url?e!==ie(_.url):!1,h=_.route?r.id!==_.route.id:!1,w=Gt(_.url,n);let u=!1;const g=l.map(async(p,d)=>{if(!p)return;const E=_.branch[d];return p[1]===E?.loader&&!Ft(u,h,f,w,E.universal?.uses,a)?E:(u=!0,Pe({loader:p[1],url:n,params:a,route:r,parent:async()=>{const P={};for(let U=0;U<d;U+=1)Object.assign(P,(await g[U])?.data);return P},server_data_node:$e(p[0]?{type:"skip"}:null,p[0]?E?.server:void 0)}))});for(const p of g)p.catch(()=>{});const m=[];for(let p=0;p<l.length;p+=1)if(l[p])try{m.push(await g[p])}catch(d){if(d instanceof Se)return{type:"redirect",location:d.location};if(oe.has(s))return Wt({error:await X(d,{params:a,url:n,route:{id:r.id}}),url:n,params:a,route:r});let E=Ue(d),S;if(d instanceof Ee)S=d.body;else{if(await C.updated.check())return await nt(),await H(n);S=await X(d,{params:a,url:n,route:{id:r.id}})}const P=await Yt(p,m,o);return P?se({url:n,params:a,branch:m.slice(0,P.idx).concat(P.node),status:E,error:S,route:r}):await dt(n,{id:r.id},S,E)}else m.push(void 0);return se({url:n,params:a,branch:m,status:200,error:null,route:r,form:t?void 0:null})}async function Yt(e,t,n){for(;e--;)if(n[e]){let a=e;for(;!t[a];)a-=1;try{return{idx:a+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function Ce({status:e,error:t,url:n,route:a}){const r={};let s=null;try{const o=await Pe({loader:we,url:n,params:r,route:a,parent:()=>Promise.resolve({}),server_data_node:$e(s)}),i={node:await te(),loader:te,universal:null,server:null,data:null};return se({url:n,params:r,branch:[o,i],status:e,error:t,route:null})}catch(o){if(o instanceof Se)return ct(new URL(o.location,location.href),{},0);throw o}}async function zt(e){const t=e.href;if(Q.has(t))return Q.get(t);let n;try{const a=(async()=>{let r=await v.hooks.reroute({url:new URL(e),fetch:async(s,o)=>Mt(s,o,e).promise})??e;if(typeof r=="string"){const s=new URL(e);v.hash?s.hash=r:s.pathname=r,r=s}return r})();Q.set(t,a),n=await a}catch{Q.delete(t);return}return n}async function fe(e,t){if(e&&!ue(e,L,v.hash)){const n=await zt(e);if(!n)return;const a=Ht(n);for(const r of Te){const s=r.exec(a);if(s)return{id:ie(e),invalidating:t,route:r,params:wt(s),url:e}}}}function Ht(e){return mt(v.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice(L.length))||"/"}function ie(e){return(v.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function ft({url:e,type:t,intent:n,delta:a,event:r}){let s=!1;const o=je(_,n,e,t);a!==void 0&&(o.navigation.delta=a),r!==void 0&&(o.navigation.event=r);const i={...o.navigation,cancel:()=>{s=!0,o.reject(new Error("navigation cancelled"))}};return J||at.forEach(c=>c(i)),s?null:o}async function K({type:e,url:t,popped:n,keepfocus:a,noscroll:r,replace_state:s,state:o={},redirect_count:i=0,nav_token:c={},accept:l=Me,block:f=Me,event:h}){const w=N;N=c;const u=await fe(t,!1),g=e==="enter"?je(_,u,t,e):ft({url:t,type:e,delta:n?.delta,intent:u,event:h});if(!g){f(),N===c&&(N=w);return}const m=y,p=x;l(),J=!0,re&&g.navigation.type!=="enter"&&C.navigating.set(Y.current=g.navigation);let d=u&&await ut(u);if(!d){if(ue(t,L,v.hash))return await H(t,s);d=await dt(t,{id:null},await X(new Re(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404,s)}if(t=u?.url||t,N!==c)return g.reject(new Error("navigation aborted")),!1;if(d.type==="redirect"){if(i<20){await K({type:e,url:new URL(d.location,t),popped:n,keepfocus:a,noscroll:r,replace_state:s,state:o,redirect_count:i+1,nav_token:c}),g.fulfil(void 0);return}d=await Ce({status:500,error:await X(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}})}else d.props.page.status>=400&&await C.updated.check()&&(await nt(),await H(t,s));if(Bt(),Ae(m),st(p),d.props.page.url.pathname!==t.pathname&&(t.pathname=d.props.page.url.pathname),o=n?n.state:o,!n){const b=s?0:1,q={[B]:y+=b,[W]:x+=b,[Je]:o};(s?history.replaceState:history.pushState).call(history,q,"",t),s||qt(y,x)}const E=u&&R?.id===u.id?R.fork:null;R=null,d.props.page.state=o;let S;if(re){const b=(await Promise.all(Array.from(Vt,$=>$(g.navigation)))).filter($=>typeof $=="function");if(b.length>0){let $=function(){b.forEach(de=>{G.delete(de)})};b.push($),b.forEach(de=>{G.add(de)})}_=d.state,d.props.page&&(d.props.page.url=t);const q=E&&await E;q?S=q.commit():(Oe.$set(d.props),tt(d.props.page),S=gt?.()),ot=!0}else await lt(d,ve,!1);const{activeElement:P}=document;await S,await Z(),await Z();let U=n?n.scroll:r?le():null;if(Fe){const b=t.hash&&document.getElementById(ht(t));if(U)scrollTo(U.x,U.y);else if(b){b.scrollIntoView();const{top:q,left:$}=b.getBoundingClientRect();U={x:pageXOffset+$,y:pageYOffset+q}}else scrollTo(0,0)}const pt=document.activeElement!==P&&document.activeElement!==document.body;!a&&!pt&&tn(t,U),Fe=!0,d.props.page&&Object.assign(k,d.props.page),J=!1,e==="popstate"&&it(x),g.fulfil(void 0),G.forEach(b=>b(g.navigation)),C.navigating.set(Y.current=null)}async function dt(e,t,n,a,r){return e.origin===ce&&e.pathname===location.pathname&&!rt?await Ce({status:a,error:n,url:e,route:t}):await H(e,r)}function Jt(){let e,t,n;O.addEventListener("mousemove",i=>{const c=i.target;clearTimeout(e),e=setTimeout(()=>{s(c,j.hover)},20)});function a(i){i.defaultPrevented||s(i.composedPath()[0],j.tap)}O.addEventListener("mousedown",a),O.addEventListener("touchstart",a,{passive:!0});const r=new IntersectionObserver(i=>{for(const c of i)c.isIntersecting&&(_e(new URL(c.target.href)),r.unobserve(c.target))},{threshold:0});async function s(i,c){const l=Qe(i,O),f=l===t&&c>=n;if(!l||f)return;const{url:h,external:w,download:u}=me(l,L,v.hash);if(w||u)return;const g=ee(l),m=h&&ie(_.url)===ie(h);if(!(g.reload||m))if(c<=g.preload_data){t=l,n=j.tap;const p=await fe(h,!1);if(!p)return;Kt(p)}else c<=g.preload_code&&(t=l,n=c,_e(h))}function o(){r.disconnect();for(const i of O.querySelectorAll("a")){const{url:c,external:l,download:f}=me(i,L,v.hash);if(l||f)continue;const h=ee(i);h.reload||(h.preload_code===j.viewport&&r.observe(i),h.preload_code===j.eager&&_e(c))}}G.add(o),o()}function X(e,t){if(e instanceof Ee)return e.body;const n=Ue(e),a=jt(e);return v.hooks.handleError({error:e,event:t,status:n,message:a})??{message:a}}function un(e,t={}){return e=new URL(Le(e)),e.origin!==ce?Promise.reject(new Error("goto: invalid URL")):ct(e,t,0)}function Xt(e){if(typeof e=="function")ne.push(e);else{const{href:t}=new URL(e,location.href);ne.push(n=>n.href===t)}}function Qt(){history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let n=!1;if(We(),!J){const a=je(_,void 0,null,"leave"),r={...a.navigation,cancel:()=>{n=!0,a.reject(new Error("navigation cancelled"))}};at.forEach(s=>s(r))}n?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&We()}),navigator.connection?.saveData||Jt(),O.addEventListener("click",async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const n=Qe(t.composedPath()[0],O);if(!n)return;const{url:a,external:r,target:s,download:o}=me(n,L,v.hash);if(!a)return;if(s==="_parent"||s==="_top"){if(window.parent!==window)return}else if(s&&s!=="_self")return;const i=ee(n);if(!(n instanceof SVGAElement)&&a.protocol!==location.protocol&&!(a.protocol==="https:"||a.protocol==="http:")||o)return;const[l,f]=(v.hash?a.hash.replace(/^#/,""):a.href).split("#"),h=l===he(location);if(r||i.reload&&(!h||!f)){ft({url:a,type:"link",event:t})?J=!0:t.preventDefault();return}if(f!==void 0&&h){const[,w]=_.url.href.split("#");if(w===f){if(t.preventDefault(),f===""||f==="top"&&n.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const u=n.ownerDocument.getElementById(decodeURIComponent(f));u&&(u.scrollIntoView(),u.focus())}return}if(M=!0,Ae(y),e(a),!i.replace_state)return;M=!1}t.preventDefault(),await new Promise(w=>{requestAnimationFrame(()=>{setTimeout(w,0)}),setTimeout(w,100)}),await K({type:"link",url:a,keepfocus:i.keepfocus,noscroll:i.noscroll,replace_state:i.replace_state??a.href===location.href,event:t})}),O.addEventListener("submit",t=>{if(t.defaultPrevented)return;const n=HTMLFormElement.prototype.cloneNode.call(t.target),a=t.submitter;if((a?.formTarget||n.target)==="_blank"||(a?.formMethod||n.method)!=="get")return;const o=new URL(a?.hasAttribute("formaction")&&a?.formAction||n.action);if(ue(o,L,!1))return;const i=t.target,c=ee(i);if(c.reload)return;t.preventDefault(),t.stopPropagation();const l=new FormData(i,a);o.search=new URLSearchParams(l).toString(),K({type:"form",url:o,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??o.href===location.href,event:t})}),addEventListener("popstate",async t=>{if(!be){if(t.state?.[B]){const n=t.state[B];if(N={},n===y)return;const a=D[n],r=t.state[Je]??{},s=new URL(t.state[Ot]??location.href),o=t.state[W],i=_.url?he(location)===he(_.url):!1;if(o===x&&(ot||i)){r!==k.state&&(k.state=r),e(s),D[y]=le(),a&&scrollTo(a.x,a.y),y=n;return}const l=n-y;await K({type:"popstate",url:s,popped:{state:r,scroll:a,delta:l},accept:()=>{y=n,x=o},block:()=>{history.go(-l)},nav_token:N,event:t})}else if(!M){const n=new URL(location.href);e(n),v.hash&&location.reload()}}}),addEventListener("hashchange",()=>{M&&(M=!1,history.replaceState({...history.state,[B]:++y,[W]:x},"",location.href))});for(const t of document.querySelectorAll("link"))Dt.has(t.rel)&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&C.navigating.set(Y.current=null)});function e(t){_.url=k.url=t,C.page.set(Ne(k)),C.page.notify()}}async function Zt(e,{status:t=200,error:n,node_ids:a,params:r,route:s,server_route:o,data:i,form:c}){rt=!0;const l=new URL(location.href);let f;({params:r={},route:s={id:null}}=await fe(l,!1)||{}),f=Te.find(({id:u})=>u===s.id);let h,w=!0;try{const u=a.map(async(m,p)=>{const d=i[p];return d?.uses&&(d.uses=en(d.uses)),Pe({loader:v.nodes[m],url:l,params:r,route:s,parent:async()=>{const E={};for(let S=0;S<p;S+=1)Object.assign(E,(await u[S]).data);return E},server_data_node:$e(d)})}),g=await Promise.all(u);if(f){const m=f.layouts;for(let p=0;p<m.length;p++)m[p]||g.splice(p,0,void 0)}h=se({url:l,params:r,branch:g,status:t,error:n,form:c,route:f??null})}catch(u){if(u instanceof Se){await H(new URL(u.location,location.href));return}h=await Ce({status:Ue(u),error:await X(u,{url:l,params:r,route:s}),url:l,route:s}),e.textContent="",w=!1}h.props.page&&(h.props.page.state={}),await lt(h,e,w)}function en(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}let be=!1;function tn(e,t=null){const n=document.querySelector("[autofocus]");if(n)n.focus();else{const a=ht(e);if(a&&document.getElementById(a)){const{x:s,y:o}=t??le();setTimeout(()=>{const i=history.state;be=!0,location.replace(`#${a}`),v.hash&&location.replace(e.hash),history.replaceState(i,"",e.hash),scrollTo(s,o),be=!1})}else{const s=document.body,o=s.getAttribute("tabindex");s.tabIndex=-1,s.focus({preventScroll:!0,focusVisible:!1}),o!==null?s.setAttribute("tabindex",o):s.removeAttribute("tabindex")}const r=getSelection();if(r&&r.type!=="None"){const s=[];for(let o=0;o<r.rangeCount;o+=1)s.push(r.getRangeAt(o));setTimeout(()=>{if(r.rangeCount===s.length){for(let o=0;o<r.rangeCount;o+=1){const i=s[o],c=r.getRangeAt(o);if(i.commonAncestorContainer!==c.commonAncestorContainer||i.startContainer!==c.startContainer||i.endContainer!==c.endContainer||i.startOffset!==c.startOffset||i.endOffset!==c.endOffset)return}r.removeAllRanges()}})}}}function je(e,t,n,a){let r,s;const o=new Promise((c,l)=>{r=c,s=l});return o.catch(()=>{}),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n},willUnload:!t,type:a,complete:o},fulfil:r,reject:s}}function Ne(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function nn(e){const t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function ht(e){let t;if(v.hash){const[,,n]=e.hash.split("#",3);t=n??""}else t=e.hash.slice(1);return decodeURIComponent(t)}export{ln as a,un as g,rn as l,k as p,C as s};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as h,h as t,i as S,q as b,S as k}from"./
|
|
1
|
+
import{e as h,h as t,i as S,q as b,S as k}from"./DHuA7MQr.js";function u(r,i){return r===i||r?.[k]===i}function c(r={},i,a,q){return h(()=>{var f,s;return t(()=>{f=s,s=[],S(()=>{r!==a(...s)&&(i(r,...s),f&&u(a(...f),r)&&i(null,...f))})}),()=>{b(()=>{s&&u(a(...s),r)&&i(null,...s)})}}),r}export{c as b};
|