@gobing-ai/spur 0.3.93 → 0.3.95
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/.claude-plugin/marketplace.json +1 -1
- package/README.md +42 -0
- package/board/index.d.ts +38 -0
- package/config/plugin-scripts.json +5 -0
- package/config/rules/boundary/test-subpath-boundary.yaml +48 -0
- package/config/rules/strict/runtime-boundaries.yaml +2 -1
- package/config/rules/structure/protected-files.yaml +4 -0
- package/config/workflows/feature-verification.yaml +7 -4
- package/config/workflows/idea-pipeline.yaml +10 -4
- package/config/workflows/task-pipeline.yaml +71 -52
- package/config/workflows/wrapup-pipeline.yaml +92 -17
- package/package.json +15 -11
- package/plugins/sp/README.md +1 -1
- package/plugins/sp/commands/dev-review-session.md +4 -4
- package/plugins/sp/commands/dev-review.md +16 -5
- package/plugins/sp/commands/dev-verify.md +7 -4
- package/plugins/sp/commands/dev-verifyall.md +4 -3
- package/plugins/sp/commands/dev-wrap.md +1 -1
- package/plugins/sp/hooks/context-post-tool.ts +2 -2
- package/plugins/sp/hooks/context-session-start.ts +2 -1
- package/plugins/sp/hooks/context-session-stop.ts +22 -14
- package/plugins/sp/hooks/pi/guard-extension.ts +112 -172
- package/plugins/sp/lib/idea-handoff.generated.mjs +2 -2
- package/plugins/sp/lib/inline-run.generated.d.mts +4 -2
- package/plugins/sp/lib/inline-run.generated.mjs +35 -14
- package/plugins/sp/plugin.json +1 -1
- package/plugins/sp/scripts/daily-summary/daily-summary.mjs +3 -3
- package/plugins/sp/scripts/daily-summary/daily-summary.ts +3 -3
- package/plugins/sp/scripts/dogfood-testing/detect-pipeline-driving.mjs +2 -0
- package/plugins/sp/scripts/dogfood-testing/detect-pipeline-driving.ts +1 -0
- package/plugins/sp/scripts/dogfood-testing/validate-report.mjs +9 -7
- package/plugins/sp/scripts/dogfood-testing/validate-report.ts +8 -7
- package/plugins/sp/scripts/feature-sync-bounded.mjs +5 -2
- package/plugins/sp/scripts/feature-sync-bounded.ts +3 -1
- package/plugins/sp/scripts/feature-verification-steps.ts +6 -6
- package/plugins/sp/scripts/history-anatomy-cache.mjs +3 -3
- package/plugins/sp/scripts/history-anatomy-cache.ts +4 -4
- package/plugins/sp/scripts/inline-run-setup.mjs +60 -12
- package/plugins/sp/scripts/inline-run-setup.ts +122 -15
- package/plugins/sp/scripts/pr-reviewing.mjs +2 -0
- package/plugins/sp/scripts/pr-reviewing.ts +1 -0
- package/plugins/sp/scripts/quality-gate.mjs +15 -6
- package/plugins/sp/scripts/quality-gate.ts +30 -9
- package/plugins/sp/scripts/residual-scan.mjs +4 -4
- package/plugins/sp/scripts/residual-scan.ts +5 -4
- package/plugins/sp/scripts/script-contract-check.ts +175 -46
- package/plugins/sp/scripts/script-root.mjs +125 -0
- package/plugins/sp/scripts/script-root.ts +195 -0
- package/plugins/sp/scripts/stage-registry-adapter.ts +1 -1
- package/plugins/sp/scripts/task-evidence-precheck.ts +4 -2
- package/plugins/sp/scripts/task-size-precheck.ts +3 -1
- package/plugins/sp/scripts/validate-commands.ts +12 -12
- package/plugins/sp/scripts/validate-flag-contracts.ts +42 -30
- package/plugins/sp/scripts/verify-answer-lint.ts +3 -1
- package/plugins/sp/scripts/workflow-step-profile.mjs +5 -2
- package/plugins/sp/scripts/workflow-step-profile.ts +3 -1
- package/plugins/sp/scripts/wrapup-drift-probe.mjs +5 -2
- package/plugins/sp/scripts/wrapup-drift-probe.ts +4 -2
- package/plugins/sp/scripts/wrapup-steps.mjs +32 -8
- package/plugins/sp/scripts/wrapup-steps.ts +56 -10
- package/plugins/sp/skills/code-verification/SKILL.md +12 -7
- package/plugins/sp/skills/code-verification/references/verdict-schema.md +11 -0
- package/plugins/sp/skills/functional-review/SKILL.md +1 -1
- package/plugins/sp/skills/next-router/references/routing-table.md +1 -1
- package/plugins/sp/skills/session-review/SKILL.md +11 -9
- package/plugins/sp/skills/spur-cli/references/tasks/verbs.md +9 -1
- package/plugins/sp/skills/spur-dev/references/dev-operations.md +8 -2
- package/plugins/sp/skills/spur-dev/references/execution-batch.md +65 -17
- package/plugins/sp/skills/spur-dev/references/flag-glossary.md +16 -3
- package/plugins/sp/skills/spur-dev/references/inline-pipeline-driver.md +22 -5
- package/plugins/sp/tsconfig.json +8 -0
- package/spur.js +20934 -21087
- package/web/_astro/{BoardApp.CerSBgis.js → BoardApp.BxJuwD7I.js} +151 -152
- package/web/_astro/BoardApp.Cpxntzad.js +1 -0
- package/web/_astro/TaskDetail.C5bW4WGV.js +1 -0
- package/web/_astro/_commonjsHelpers.CqkleIqs.js +1 -0
- package/web/_astro/arc.CyjRvNMY.js +1 -0
- package/web/_astro/architectureDiagram-3BPJPVTR.B4lWRzJA.js +36 -0
- package/web/_astro/{blockDiagram-GPEHLZMM.DXVIiv0p.js → blockDiagram-GPEHLZMM.Be38USQ2.js} +1 -1
- package/web/_astro/board-facade-react-dom-client.B2U5wMvk.js +1 -0
- package/web/_astro/board-facade-react-dom.Cd2MuMhF.js +1 -0
- package/web/_astro/board-facade-react-jsx-dev-runtime.B_L3JzfC.js +1 -0
- package/web/_astro/board-facade-react-jsx-runtime.BY2yfHRi.js +1 -0
- package/web/_astro/board-facade-react-router-dom.Dy5pjzOw.js +1 -0
- package/web/_astro/board-facade-react-router.DjjqU27_.js +1 -0
- package/web/_astro/board-facade-react.Dgf4GRyj.js +1 -0
- package/web/_astro/{c4Diagram-AAUBKEIU.BbF_zCxW.js → c4Diagram-AAUBKEIU.DT9Fj5Qx.js} +1 -1
- package/web/_astro/channel.CI6N_tCg.js +1 -0
- package/web/_astro/{chunk-2J33WTMH.CAgQHpPC.js → chunk-2J33WTMH.SeSBWLg5.js} +1 -1
- package/web/_astro/{chunk-4BX2VUAB.BN-5tpw4.js → chunk-4BX2VUAB.DoO4VE14.js} +1 -1
- package/web/_astro/{chunk-55IACEB6.CnPkEEr0.js → chunk-55IACEB6.DrmTFA53.js} +1 -1
- package/web/_astro/{chunk-727SXJPM.BQzQeMVm.js → chunk-727SXJPM.Bi-TUb_V.js} +4 -4
- package/web/_astro/{chunk-AQP2D5EJ.B6xNyDnL.js → chunk-AQP2D5EJ.B-xp8Uhi.js} +1 -1
- package/web/_astro/{chunk-FMBD7UC4.C7f9Ih78.js → chunk-FMBD7UC4.DGWrDnUU.js} +1 -1
- package/web/_astro/chunk-JMJ3UQ3L.BQJEJHu4.js +34 -0
- package/web/_astro/{chunk-ND2GUHAM.CNV1dFXT.js → chunk-ND2GUHAM._BagvPDy.js} +1 -1
- package/web/_astro/{chunk-QZHKN3VN.Cudn2TkJ.js → chunk-QZHKN3VN.VOboYWQ0.js} +1 -1
- package/web/_astro/chunk-YNUBSHFH.CxeAygfi.js +7 -0
- package/web/_astro/{classDiagram-4FO5ZUOK.D1NwP50q.js → classDiagram-4FO5ZUOK.D_apfHS7.js} +1 -1
- package/web/_astro/{classDiagram-v2-Q7XG4LA2.D1NwP50q.js → classDiagram-v2-Q7XG4LA2.D_apfHS7.js} +1 -1
- package/web/_astro/client.BhluLQqe.js +1 -0
- package/web/_astro/client.DBpSRLnx.js +9 -0
- package/web/_astro/cose-bilkent-S5V4N54A.DNLU_L-x.js +1 -0
- package/web/_astro/{cynefin-OW5HDTMX.BmK52w8G.js → cynefin-OW5HDTMX.D8borhV-.js} +1 -1
- package/web/_astro/{dagre-BM42HDAG.Bfy5CTDT.js → dagre-BM42HDAG.Uc0lvjcV.js} +2 -2
- package/web/_astro/diagram-2AECGRRQ.DDIxtDBo.js +43 -0
- package/web/_astro/diagram-5GNKFQAL.DVoDnD3H.js +10 -0
- package/web/_astro/{diagram-KO2AKTUF.CW_vMJ4z.js → diagram-KO2AKTUF.CRubTJ-0.js} +3 -3
- package/web/_astro/{diagram-LMA3HP47.B_8ZGF67.js → diagram-LMA3HP47.m9SeYcXQ.js} +1 -1
- package/web/_astro/{diagram-OG6HWLK6.BppnHsdS.js → diagram-OG6HWLK6.C6s2ZjV5.js} +1 -1
- package/web/_astro/{erDiagram-TEJ5UH35.BEuHXcjJ.js → erDiagram-TEJ5UH35.nSzr5KTj.js} +5 -5
- package/web/_astro/{flowDiagram-I6XJVG4X.CH-UlnGr.js → flowDiagram-I6XJVG4X.DrZcys16.js} +4 -4
- package/web/_astro/ganttDiagram-6RSMTGT7.Do4M1b-K.js +292 -0
- package/web/_astro/{gitGraphDiagram-PVQCEYII.XnPxPPZN.js → gitGraphDiagram-PVQCEYII.BWc9oJ4l.js} +1 -1
- package/web/_astro/index.5dn-Zm-2.js +1 -0
- package/web/_astro/index.C-IqPpW2.js +1 -0
- package/web/_astro/index.CENnIEqT.css +1 -0
- package/web/_astro/index.Cyc_GA4f.js +1 -0
- package/web/_astro/index.tZfqwSut.js +1 -0
- package/web/_astro/{infoDiagram-5YYISTIA.JyjYRu_T.js → infoDiagram-5YYISTIA.BIdOctFk.js} +1 -1
- package/web/_astro/{ishikawaDiagram-YF4QCWOH.BBRBF-Fo.js → ishikawaDiagram-YF4QCWOH.CV5SuG2t.js} +5 -5
- package/web/_astro/{journeyDiagram-JHISSGLW.C_iymSyp.js → journeyDiagram-JHISSGLW.CxE-rEJ-.js} +1 -1
- package/web/_astro/jsx-runtime.DWOiEOII.js +1 -0
- package/web/_astro/{kanban-definition-UN3LZRKU.DdfW-Oqt.js → kanban-definition-UN3LZRKU.BPRdKWs_.js} +7 -7
- package/web/_astro/{linear.C2_IkbZT.js → linear.zRsuuDTE.js} +1 -1
- package/web/_astro/mermaid.core.jAJTcMKc.js +301 -0
- package/web/_astro/{mindmap-definition-RKZ34NQL.DAZIxQSK.js → mindmap-definition-RKZ34NQL.BffJxfCr.js} +2 -2
- package/web/_astro/{pieDiagram-4H26LBE5.CN8sIhKM.js → pieDiagram-4H26LBE5.CacwWaE3.js} +3 -3
- package/web/_astro/{quadrantDiagram-W4KKPZXB.3dGcX5GP.js → quadrantDiagram-W4KKPZXB.hXELD06-.js} +1 -1
- package/web/_astro/{requirementDiagram-4Y6WPE33.BV2y4dd6.js → requirementDiagram-4Y6WPE33.DdEbPcqT.js} +3 -3
- package/web/_astro/{sankeyDiagram-5OEKKPKP.Cqo15Tvo.js → sankeyDiagram-5OEKKPKP.DgaDocKv.js} +4 -4
- package/web/_astro/{sequenceDiagram-3UESZ5HK.CROCPMJB.js → sequenceDiagram-3UESZ5HK.B0KScnAu.js} +1 -1
- package/web/_astro/{stateDiagram-AJRCARHV.RfXZrkFE.js → stateDiagram-AJRCARHV.CV9M_WNc.js} +1 -1
- package/web/_astro/{stateDiagram-v2-BHNVJYJU.CPXmbBs9.js → stateDiagram-v2-BHNVJYJU.BOAo74Et.js} +1 -1
- package/web/_astro/{timeline-definition-PNZ67QCA.DdgKTiO8.js → timeline-definition-PNZ67QCA.CqqepUMe.js} +3 -3
- package/web/_astro/{vennDiagram-CIIHVFJN.CPNVSHF1.js → vennDiagram-CIIHVFJN.DDqe4dOG.js} +5 -5
- package/web/_astro/{wardleyDiagram-YWT4CUSO.CQhA0Jyr.js → wardleyDiagram-YWT4CUSO.B3R9OPdO.js} +3 -3
- package/web/_astro/{xychartDiagram-2RQKCTM6.n61BWyy4.js → xychartDiagram-2RQKCTM6.B3SvgXpQ.js} +1 -1
- package/web/board-runtime.json +69 -0
- package/web/index.html +2 -2
- package/web/_astro/BoardApp.eoTz0pZs.js +0 -1
- package/web/_astro/TaskDetail.DCqiC-OZ.js +0 -1
- package/web/_astro/arc.CPwg6Rw0.js +0 -1
- package/web/_astro/architectureDiagram-3BPJPVTR.DM_vp_hO.js +0 -36
- package/web/_astro/channel.MYZLKNwy.js +0 -1
- package/web/_astro/client.yhYJvxCU.js +0 -9
- package/web/_astro/cose-bilkent-S5V4N54A.B1wSL-Xb.js +0 -1
- package/web/_astro/diagram-2AECGRRQ.DhNnvUvX.js +0 -43
- package/web/_astro/diagram-5GNKFQAL.lTX5KwnS.js +0 -10
- package/web/_astro/ganttDiagram-6RSMTGT7.BO81S85v.js +0 -292
- package/web/_astro/index.De90oHcH.js +0 -1
- package/web/_astro/index.Hjbr15fG.css +0 -1
- package/web/_astro/mermaid.core.GAOYeSR0.js +0 -303
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import{r as c,a as Yo}from"./index.5dn-Zm-2.js";var Ka=e=>{throw TypeError(e)},Jo=(e,t,r)=>t.has(e)||Ka("Cannot "+r),lr=(e,t,r)=>(Jo(e,t,"read from private field"),r?r.call(e):t.get(e)),Vo=(e,t,r)=>t.has(e)?Ka("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),Ko=(e=>(e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE",e))(Ko||{}),va="popstate";function Ga(e={}){let{initialEntries:t=["/"],initialIndex:r,v5Compat:a=!1}=e,n;n=t.map((f,p)=>h(f,typeof f=="string"?null:f.state,p===0?"default":void 0));let o=s(r??n.length-1),i="POP",l=null;function s(f){return Math.min(Math.max(f,0),n.length-1)}function u(){return n[o]}function h(f,p=null,b){let w=Ie(n?u().pathname:"/",f,p,b);return Q(w.pathname.charAt(0)==="/",`relative pathnames are not supported in memory history: ${JSON.stringify(f)}`),w}function d(f){return typeof f=="string"?f:ce(f)}return{get index(){return o},get action(){return i},get location(){return u()},createHref:d,createURL(f){return new URL(d(f),"http://localhost")},encodeLocation(f){let p=typeof f=="string"?Ce(f):f;return{pathname:p.pathname||"",search:p.search||"",hash:p.hash||""}},push(f,p){i="PUSH";let b=h(f,p);o+=1,n.splice(o,n.length,b),a&&l&&l({action:i,location:b,delta:1})},replace(f,p){i="REPLACE";let b=h(f,p);n[o]=b,a&&l&&l({action:i,location:b,delta:0})},go(f){i="POP";let p=s(o+f),b=n[p];o=p,l&&l({action:i,location:b,delta:f})},listen(f){return l=f,()=>{l=null}}}}function Xa(e={}){function t(a,n){let{pathname:o,search:i,hash:l}=a.location;return Ie("",{pathname:o,search:i,hash:l},n.state&&n.state.usr||null,n.state&&n.state.key||"default")}function r(a,n){return typeof n=="string"?n:ce(n)}return Za(t,r,null,e)}function Qa(e={}){function t(n,o){let{pathname:i="/",search:l="",hash:s=""}=Ce(n.location.hash.substring(1));return!i.startsWith("/")&&!i.startsWith(".")&&(i="/"+i),Ie("",{pathname:i,search:l,hash:s},o.state&&o.state.usr||null,o.state&&o.state.key||"default")}function r(n,o){let i=n.document.querySelector("base"),l="";if(i&&i.getAttribute("href")){let s=n.location.href,u=s.indexOf("#");l=u===-1?s:s.slice(0,u)}return l+"#"+(typeof o=="string"?o:ce(o))}function a(n,o){Q(n.pathname.charAt(0)==="/",`relative pathnames are not supported in hash history.push(${JSON.stringify(o)})`)}return Za(t,r,a,e)}function I(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function Q(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function Go(){return Math.random().toString(36).substring(2,10)}function ga(e,t){return{usr:e.state,key:e.key,idx:t}}function Ie(e,t,r=null,a){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?Ce(t):t,state:r,key:t&&t.key||a||Go()}}function ce({pathname:e="/",search:t="",hash:r=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),r&&r!=="#"&&(e+=r.charAt(0)==="#"?r:"#"+r),e}function Ce(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substring(r),e=e.substring(0,r));let a=e.indexOf("?");a>=0&&(t.search=e.substring(a),e=e.substring(0,a)),e&&(t.pathname=e)}return t}function Za(e,t,r,a={}){let{window:n=document.defaultView,v5Compat:o=!1}=a,i=n.history,l="POP",s=null,u=h();u==null&&(u=0,i.replaceState({...i.state,idx:u},""));function h(){return(i.state||{idx:null}).idx}function d(){l="POP";let w=h(),S=w==null?null:w-u;u=w,s&&s({action:l,location:b.location,delta:S})}function y(w,S){l="PUSH";let E=Ie(b.location,w,S);r&&r(E,w),u=h()+1;let C=ga(E,u),L=b.createHref(E);try{i.pushState(C,"",L)}catch(x){if(x instanceof DOMException&&x.name==="DataCloneError")throw x;n.location.assign(L)}o&&s&&s({action:l,location:b.location,delta:1})}function f(w,S){l="REPLACE";let E=Ie(b.location,w,S);r&&r(E,w),u=h();let C=ga(E,u),L=b.createHref(E);i.replaceState(C,"",L),o&&s&&s({action:l,location:b.location,delta:0})}function p(w){return qa(w)}let b={get action(){return l},get location(){return e(n,i)},listen(w){if(s)throw new Error("A history only accepts one active listener");return n.addEventListener(va,d),s=w,()=>{n.removeEventListener(va,d),s=null}},createHref(w){return t(n,w)},createURL:p,encodeLocation(w){let S=p(w);return{pathname:S.pathname,search:S.search,hash:S.hash}},push:y,replace:f,go(w){return i.go(w)}};return b}function qa(e,t=!1){let r="http://localhost";typeof window<"u"&&(r=window.location.origin!=="null"?window.location.origin:window.location.href),I(r,"No window.location.(origin|href) available to create URL");let a=typeof e=="string"?e:ce(e);return a=a.replace(/ $/,"%20"),!t&&a.startsWith("//")&&(a=r+a),new URL(a,r)}function Is(e){return{defaultValue:e}}var Et,it=class{constructor(e){if(Vo(this,Et,new Map),e)for(let[t,r]of e)this.set(t,r)}get(e){if(lr(this,Et).has(e))return lr(this,Et).get(e);if(e.defaultValue!==void 0)return e.defaultValue;throw new Error("No value found for context")}set(e,t){lr(this,Et).set(e,t)}};Et=new WeakMap;var Xo=new Set(["lazy","caseSensitive","path","id","index","children"]);function Qo(e){return Xo.has(e)}var Zo=new Set(["lazy","caseSensitive","path","id","index","middleware","children"]);function qo(e){return Zo.has(e)}function ei(e){return e.index===!0}function et(e,t,r=[],a={},n=!1){return e.map((o,i)=>{let l=[...r,String(i)],s=typeof o.id=="string"?o.id:l.join("-");if(I(o.index!==!0||!o.children,"Cannot specify children on an index route"),I(n||!a[s],`Found a route id collision on id "${s}". Route id's must be globally unique within Data Router usages`),ei(o)){let u={...o,id:s};return a[s]=wa(u,t(u)),u}else{let u={...o,id:s,children:void 0};return a[s]=wa(u,t(u)),o.children&&(u.children=et(o.children,t,l,a,n)),u}})}function wa(e,t){return Object.assign(e,{...t,...typeof t.lazy=="object"&&t.lazy!=null?{lazy:{...e.lazy,...t.lazy}}:{}})}function De(e,t,r="/"){return Rt(e,t,r,!1)}function Rt(e,t,r,a){let n=typeof t=="string"?Ce(t):t,o=fe(n.pathname||"/",r);if(o==null)return null;let i=tn(e);ti(i);let l=null;for(let s=0;l==null&&s<i.length;++s){let u=nn(o);l=ci(i[s],u,a)}return l}function en(e,t){let{route:r,pathname:a,params:n}=e;return{id:r.id,pathname:a,params:n,data:t[r.id],loaderData:t[r.id],handle:r.handle}}function tn(e,t=[],r=[],a="",n=!1){let o=(i,l,s=n,u)=>{let h={relativePath:u===void 0?i.path||"":u,caseSensitive:i.caseSensitive===!0,childrenIndex:l,route:i};if(h.relativePath.startsWith("/")){if(!h.relativePath.startsWith(a)&&s)return;I(h.relativePath.startsWith(a),`Absolute route path "${h.relativePath}" nested under path "${a}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),h.relativePath=h.relativePath.slice(a.length)}let d=Me([a,h.relativePath]),y=r.concat(h);i.children&&i.children.length>0&&(I(i.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${d}".`),tn(i.children,t,y,d,s)),!(i.path==null&&!i.index)&&t.push({path:d,score:si(d,i.index),routesMeta:y})};return e.forEach((i,l)=>{if(i.path===""||!i.path?.includes("?"))o(i,l);else for(let s of rn(i.path))o(i,l,!0,s)}),t}function rn(e){let t=e.split("/");if(t.length===0)return[];let[r,...a]=t,n=r.endsWith("?"),o=r.replace(/\?$/,"");if(a.length===0)return n?[o,""]:[o];let i=rn(a.join("/")),l=[];return l.push(...i.map(s=>s===""?o:[o,s].join("/"))),n&&l.push(...i),l.map(s=>e.startsWith("/")&&s===""?"/":s)}function ti(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:ui(t.routesMeta.map(a=>a.childrenIndex),r.routesMeta.map(a=>a.childrenIndex)))}var ri=/^:[\w-]+$/,ai=3,ni=2,oi=1,ii=10,li=-2,ba=e=>e==="*";function si(e,t){let r=e.split("/"),a=r.length;return r.some(ba)&&(a+=li),t&&(a+=ni),r.filter(n=>!ba(n)).reduce((n,o)=>n+(ri.test(o)?ai:o===""?oi:ii),a)}function ui(e,t){return e.length===t.length&&e.slice(0,-1).every((a,n)=>a===t[n])?e[e.length-1]-t[t.length-1]:0}function ci(e,t,r=!1){let{routesMeta:a}=e,n={},o="/",i=[];for(let l=0;l<a.length;++l){let s=a[l],u=l===a.length-1,h=o==="/"?t:t.slice(o.length)||"/",d=Pt({path:s.relativePath,caseSensitive:s.caseSensitive,end:u},h),y=s.route;if(!d&&u&&r&&!a[a.length-1].route.index&&(d=Pt({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},h)),!d)return null;Object.assign(n,d.params),i.push({params:n,pathname:Me([o,d.pathname]),pathnameBase:hi(Me([o,d.pathnameBase])),route:y}),d.pathnameBase!=="/"&&(o=Me([o,d.pathnameBase]))}return i}function As(e,t={}){let r=e;r.endsWith("*")&&r!=="*"&&!r.endsWith("/*")&&(Q(!1,`Route path "${r}" will be treated as if it were "${r.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${r.replace(/\*$/,"/*")}".`),r=r.replace(/\*$/,"/*"));const a=r.startsWith("/")?"/":"",n=i=>i==null?"":typeof i=="string"?i:String(i),o=r.split(/\/+/).map((i,l,s)=>{if(l===s.length-1&&i==="*")return n(t["*"]);const h=i.match(/^:([\w-]+)(\??)$/);if(h){const[,d,y]=h;let f=t[d];return I(y==="?"||f!=null,`Missing ":${d}" param`),encodeURIComponent(n(f))}return i.replace(/\?$/g,"")}).filter(i=>!!i);return a+o.join("/")}function Pt(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[r,a]=an(e.path,e.caseSensitive,e.end),n=t.match(r);if(!n)return null;let o=n[0],i=o.replace(/(.)\/+$/,"$1"),l=n.slice(1);return{params:a.reduce((u,{paramName:h,isOptional:d},y)=>{if(h==="*"){let p=l[y]||"";i=o.slice(0,o.length-p.length).replace(/(.)\/+$/,"$1")}const f=l[y];return d&&!f?u[h]=void 0:u[h]=(f||"").replace(/%2F/g,"/"),u},{}),pathname:o,pathnameBase:i,pattern:e}}function an(e,t=!1,r=!0){Q(e==="*"||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let a=[],n="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(i,l,s)=>(a.push({paramName:l,isOptional:s!=null}),s?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(a.push({paramName:"*"}),n+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?n+="\\/*$":e!==""&&e!=="/"&&(n+="(?:(?=\\/|$))"),[new RegExp(n,t?void 0:"i"),a]}function nn(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Q(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function fe(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,a=e.charAt(r);return a&&a!=="/"?null:e.slice(r)||"/"}function di({basename:e,pathname:t}){return t==="/"?e:Me([e,t])}var on=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Kt=e=>on.test(e);function fi(e,t="/"){let{pathname:r,search:a="",hash:n=""}=typeof e=="string"?Ce(e):e,o;if(r)if(Kt(r))o=r;else{if(r.includes("//")){let i=r;r=r.replace(/\/\/+/g,"/"),Q(!1,`Pathnames cannot have embedded double slashes - normalizing ${i} -> ${r}`)}r.startsWith("/")?o=Ea(r.substring(1),"/"):o=Ea(r,t)}else o=t;return{pathname:o,search:mi(a),hash:pi(n)}}function Ea(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(n=>{n===".."?r.length>1&&r.pop():n!=="."&&r.push(n)}),r.length>1?r.join("/"):"/"}function sr(e,t,r,a){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(a)}]. Please separate it out to the \`to.${r}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function ln(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function Gt(e){let t=ln(e);return t.map((r,a)=>a===t.length-1?r.pathname:r.pathnameBase)}function Xt(e,t,r,a=!1){let n;typeof e=="string"?n=Ce(e):(n={...e},I(!n.pathname||!n.pathname.includes("?"),sr("?","pathname","search",n)),I(!n.pathname||!n.pathname.includes("#"),sr("#","pathname","hash",n)),I(!n.search||!n.search.includes("#"),sr("#","search","hash",n)));let o=e===""||n.pathname==="",i=o?"/":n.pathname,l;if(i==null)l=r;else{let d=t.length-1;if(!a&&i.startsWith("..")){let y=i.split("/");for(;y[0]==="..";)y.shift(),d-=1;n.pathname=y.join("/")}l=d>=0?t[d]:"/"}let s=fi(n,l),u=i&&i!=="/"&&i.endsWith("/"),h=(o||i===".")&&r.endsWith("/");return!s.pathname.endsWith("/")&&(u||h)&&(s.pathname+="/"),s}var Me=e=>e.join("/").replace(/\/\/+/g,"/"),hi=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),mi=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,pi=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,yi=class{constructor(e,t){this.type="DataWithResponseInit",this.data=e,this.init=t||null}};function vi(e,t){return new yi(e,typeof t=="number"?{status:t}:t)}var $r=(e,t=302)=>{let r=t;typeof r=="number"?r={status:r}:typeof r.status>"u"&&(r.status=302);let a=new Headers(r.headers);return a.set("Location",e),new Response(null,{...r,headers:a})},js=(e,t)=>{let r=$r(e,t);return r.headers.set("X-Remix-Reload-Document","true"),r},Hs=(e,t)=>{let r=$r(e,t);return r.headers.set("X-Remix-Replace","true"),r},Te=class{constructor(e,t,r,a=!1){this.status=e,this.statusText=t||"",this.internal=a,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}};function xe(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function _e(e){return e.map(t=>t.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var sn=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function un(e,t){let r=e;if(typeof r!="string"||!on.test(r))return{absoluteURL:void 0,isExternal:!1,to:r};let a=r,n=!1;if(sn)try{let o=new URL(window.location.href),i=r.startsWith("//")?new URL(o.protocol+r):new URL(r),l=fe(i.pathname,t);i.origin===o.origin&&l!=null?r=l+i.search+i.hash:n=!0}catch{Q(!1,`<Link to="${r}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:a,isExternal:n,to:r}}var Ue=Symbol("Uninstrumented");function cn(e,t){let r={lazy:[],"lazy.loader":[],"lazy.action":[],"lazy.middleware":[],middleware:[],loader:[],action:[]};e.forEach(n=>n({id:t.id,index:t.index,path:t.path,instrument(o){let i=Object.keys(r);for(let l of i)o[l]&&r[l].push(o[l])}}));let a={};if(typeof t.lazy=="function"&&r.lazy.length>0){let n=Ze(r.lazy,t.lazy,()=>{});n&&(a.lazy=n)}if(typeof t.lazy=="object"){let n=t.lazy;["middleware","loader","action"].forEach(o=>{let i=n[o],l=r[`lazy.${o}`];if(typeof i=="function"&&l.length>0){let s=Ze(l,i,()=>{});s&&(a.lazy=Object.assign(a.lazy||{},{[o]:s}))}})}return["loader","action"].forEach(n=>{let o=t[n];if(typeof o=="function"&&r[n].length>0){let i=o[Ue]??o,l=Ze(r[n],i,(...s)=>Ra(s[0]));l&&(l[Ue]=i,a[n]=l)}}),t.middleware&&t.middleware.length>0&&r.middleware.length>0&&(a.middleware=t.middleware.map(n=>{let o=n[Ue]??n,i=Ze(r.middleware,o,(...l)=>Ra(l[0]));return i?(i[Ue]=o,i):n})),a}function gi(e,t){let r={navigate:[],fetch:[]};if(t.forEach(a=>a({instrument(n){let o=Object.keys(n);for(let i of o)n[i]&&r[i].push(n[i])}})),r.navigate.length>0){let a=e.navigate[Ue]??e.navigate,n=Ze(r.navigate,a,(...o)=>{let[i,l]=o;return{to:typeof i=="number"||typeof i=="string"?i:i?ce(i):".",...Sa(e,l??{})}});n&&(n[Ue]=a,e.navigate=n)}if(r.fetch.length>0){let a=e.fetch[Ue]??e.fetch,n=Ze(r.fetch,a,(...o)=>{let[i,,l,s]=o;return{href:l??".",fetcherKey:i,...Sa(e,s??{})}});n&&(n[Ue]=a,e.fetch=n)}return e}function Us(e,t){let r={request:[]};t.forEach(n=>n({instrument(o){let i=Object.keys(o);for(let l of i)o[l]&&r[l].push(o[l])}}));let a=e;return r.request.length>0&&(a=Ze(r.request,e,(...n)=>{let[o,i]=n;return{request:fn(o),context:i!=null?hn(i):i}})),a}function Ze(e,t,r){return e.length===0?null:async(...a)=>{let n=await dn(e,r(...a),()=>t(...a),e.length-1);if(n.type==="error")throw n.value;return n.value}}async function dn(e,t,r,a){let n=e[a],o;if(n){let i,l=async()=>(i?console.error("You cannot call instrumented handlers more than once"):i=dn(e,t,r,a-1),o=await i,I(o,"Expected a result"),o.type==="error"&&o.value instanceof Error?{status:"error",error:o.value}:{status:"success",error:void 0});try{await n(l,t)}catch(s){console.error("An instrumentation function threw an error:",s)}i||await l(),await i}else try{o={type:"success",value:await r()}}catch(i){o={type:"error",value:i}}return o||{type:"error",value:new Error("No result assigned in instrumentation chain.")}}function Ra(e){let{request:t,context:r,params:a,unstable_pattern:n}=e;return{request:fn(t),params:{...a},unstable_pattern:n,context:hn(r)}}function Sa(e,t){return{currentUrl:ce(e.state.location),..."formMethod"in t?{formMethod:t.formMethod}:{},..."formEncType"in t?{formEncType:t.formEncType}:{},..."formData"in t?{formData:t.formData}:{},..."body"in t?{body:t.body}:{}}}function fn(e){return{method:e.method,url:e.url,headers:{get:(...t)=>e.headers.get(...t)}}}function hn(e){if(bi(e)){let t={...e};return Object.freeze(t),t}else return{get:t=>e.get(t)}}var wi=Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function bi(e){if(e===null||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Object.getOwnPropertyNames(t).sort().join("\0")===wi}var mn=["POST","PUT","PATCH","DELETE"],Ei=new Set(mn),Ri=["GET",...mn],Si=new Set(Ri),pn=new Set([301,302,303,307,308]),Pi=new Set([307,308]),Ut={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Nr={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Qe={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},yn=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),vn="remix-router-transitions",gn=Symbol("ResetLoaderData");function Fr(e){const t=e.window?e.window:typeof window<"u"?window:void 0,r=typeof t<"u"&&typeof t.document<"u"&&typeof t.document.createElement<"u";I(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let a=e.hydrationRouteProperties||[],n=e.mapRouteProperties||yn,o=n;if(e.unstable_instrumentations){let m=e.unstable_instrumentations;o=v=>({...n(v),...cn(m.map(R=>R.route).filter(Boolean),v)})}let i={},l=et(e.routes,o,void 0,i),s,u=e.basename||"/";u.startsWith("/")||(u=`/${u}`);let h=e.dataStrategy||$i,d={...e.future},y=null,f=new Set,p=null,b=null,w=null,S=e.hydrationData!=null,E=De(l,e.history.location,u),C=!1,L=null,x;if(E==null&&!e.patchRoutesOnNavigation){let m=ee(404,{pathname:e.history.location.pathname}),{matches:v,route:R}=lt(l);x=!0,E=v,L={[R.id]:m}}else if(E&&!e.hydrationData&&Tt(E,l,e.history.location.pathname).active&&(E=null),E)if(E.some(m=>m.route.lazy))x=!1;else if(!E.some(m=>kr(m.route)))x=!0;else{let m=e.hydrationData?e.hydrationData.loaderData:null,v=e.hydrationData?e.hydrationData.errors:null;if(v){let R=E.findIndex(D=>v[D.route.id]!==void 0);x=E.slice(0,R+1).every(D=>!yr(D.route,m,v))}else x=E.every(R=>!yr(R.route,m,v))}else{x=!1,E=[];let m=Tt(null,l,e.history.location.pathname);m.active&&m.matches&&(C=!0,E=m.matches)}let P,g={historyAction:e.history.action,location:e.history.location,matches:E,initialized:x,navigation:Ut,restoreScrollPosition:e.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||L,fetchers:new Map,blockers:new Map},T="POP",M=null,j=!1,$,z=!1,V=new Map,Z=null,W=!1,G=!1,we=new Set,K=new Map,te=0,me=-1,Le=new Map,pe=new Set,be=new Map,Ee=new Map,ye=new Set,Ye=new Map,Ot,pt=null;function Lo(){if(y=e.history.listen(({action:m,location:v,delta:R})=>{if(Ot){Ot(),Ot=void 0;return}Q(Ye.size===0||R!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let D=fa({currentLocation:g.location,nextLocation:v,historyAction:m});if(D&&R!=null){let O=new Promise(k=>{Ot=k});e.history.go(R*-1),Mt(D,{state:"blocked",location:v,proceed(){Mt(D,{state:"proceeding",proceed:void 0,reset:void 0,location:v}),O.then(()=>e.history.go(R))},reset(){let k=new Map(g.blockers);k.set(D,Qe),ie({blockers:k})}}),M?.resolve(),M=null;return}return Je(m,v)}),r){ji(t,V);let m=()=>Hi(t,V);t.addEventListener("pagehide",m),Z=()=>t.removeEventListener("pagehide",m)}return g.initialized||Je("POP",g.location,{initialHydration:!0}),P}function Do(){y&&y(),Z&&Z(),f.clear(),$&&$.abort(),g.fetchers.forEach((m,v)=>nr(v)),g.blockers.forEach((m,v)=>da(v))}function Oo(m){return f.add(m),()=>f.delete(m)}function ie(m,v={}){m.matches&&(m.matches=m.matches.map(O=>{let k=i[O.route.id],N=O.route;return N.element!==k.element||N.errorElement!==k.errorElement||N.hydrateFallbackElement!==k.hydrateFallbackElement?{...O,route:k}:O})),g={...g,...m};let R=[],D=[];g.fetchers.forEach((O,k)=>{O.state==="idle"&&(ye.has(k)?R.push(k):D.push(k))}),ye.forEach(O=>{!g.fetchers.has(O)&&!K.has(O)&&R.push(O)}),[...f].forEach(O=>O(g,{deletedFetchers:R,newErrors:m.errors??null,viewTransitionOpts:v.viewTransitionOpts,flushSync:v.flushSync===!0})),R.forEach(O=>nr(O)),D.forEach(O=>g.fetchers.delete(O))}function at(m,v,{flushSync:R}={}){let D=g.actionData!=null&&g.navigation.formMethod!=null&&oe(g.navigation.formMethod)&&g.navigation.state==="loading"&&m.state?._isRedirect!==!0,O;v.actionData?Object.keys(v.actionData).length>0?O=v.actionData:O=null:D?O=g.actionData:O=null;let k=v.loaderData?ka(g.loaderData,v.loaderData,v.matches||[],v.errors):g.loaderData,N=g.blockers;N.size>0&&(N=new Map(N),N.forEach((U,A)=>N.set(A,Qe)));let F=W?!1:ma(m,v.matches||g.matches),_=j===!0||g.navigation.formMethod!=null&&oe(g.navigation.formMethod)&&m.state?._isRedirect!==!0;s&&(l=s,s=void 0),W||T==="POP"||(T==="PUSH"?e.history.push(m,m.state):T==="REPLACE"&&e.history.replace(m,m.state));let H;if(T==="POP"){let U=V.get(g.location.pathname);U&&U.has(m.pathname)?H={currentLocation:g.location,nextLocation:m}:V.has(m.pathname)&&(H={currentLocation:m,nextLocation:g.location})}else if(z){let U=V.get(g.location.pathname);U?U.add(m.pathname):(U=new Set([m.pathname]),V.set(g.location.pathname,U)),H={currentLocation:g.location,nextLocation:m}}ie({...v,actionData:O,loaderData:k,historyAction:T,location:m,initialized:!0,navigation:Ut,revalidation:"idle",restoreScrollPosition:F,preventScrollReset:_,blockers:N},{viewTransitionOpts:H,flushSync:R===!0}),T="POP",j=!1,z=!1,W=!1,G=!1,M?.resolve(),M=null,pt?.resolve(),pt=null}async function na(m,v){if(M?.resolve(),M=null,typeof m=="number"){M||(M=Aa());let J=M.promise;return e.history.go(m),J}let R=pr(g.location,g.matches,u,m,v?.fromRouteId,v?.relative),{path:D,submission:O,error:k}=xa(!1,R,v),N=g.location,F=Ie(g.location,D,v&&v.state);F={...F,...e.history.encodeLocation(F)};let _=v&&v.replace!=null?v.replace:void 0,H="PUSH";_===!0?H="REPLACE":_===!1||O!=null&&oe(O.formMethod)&&O.formAction===g.location.pathname+g.location.search&&(H="REPLACE");let U=v&&"preventScrollReset"in v?v.preventScrollReset===!0:void 0,A=(v&&v.flushSync)===!0,Y=fa({currentLocation:N,nextLocation:F,historyAction:H});if(Y){Mt(Y,{state:"blocked",location:F,proceed(){Mt(Y,{state:"proceeding",proceed:void 0,reset:void 0,location:F}),na(m,v)},reset(){let J=new Map(g.blockers);J.set(Y,Qe),ie({blockers:J})}});return}await Je(H,F,{submission:O,pendingError:k,preventScrollReset:U,replace:v&&v.replace,enableViewTransition:v&&v.viewTransition,flushSync:A,callSiteDefaultShouldRevalidate:v&&v.unstable_defaultShouldRevalidate})}function Mo(){pt||(pt=Aa()),ar(),ie({revalidation:"loading"});let m=pt.promise;return g.navigation.state==="submitting"?m:g.navigation.state==="idle"?(Je(g.historyAction,g.location,{startUninterruptedRevalidation:!0}),m):(Je(T||g.historyAction,g.navigation.location,{overrideNavigation:g.navigation,enableViewTransition:z===!0}),m)}async function Je(m,v,R){$&&$.abort(),$=null,T=m,W=(R&&R.startUninterruptedRevalidation)===!0,Uo(g.location,g.matches),j=(R&&R.preventScrollReset)===!0,z=(R&&R.enableViewTransition)===!0;let D=s||l,O=R&&R.overrideNavigation,k=R?.initialHydration&&g.matches&&g.matches.length>0&&!C?g.matches:De(D,v,u),N=(R&&R.flushSync)===!0;if(k&&g.initialized&&!G&&Fi(g.location,v)&&!(R&&R.submission&&oe(R.submission.formMethod))){at(v,{matches:k},{flushSync:N});return}let F=Tt(k,D,v.pathname);if(F.active&&F.matches&&(k=F.matches),!k){let{error:re,notFoundMatches:de,route:X}=or(v.pathname);at(v,{matches:de,loaderData:{},errors:{[X.id]:re}},{flushSync:N});return}$=new AbortController;let _=ot(e.history,v,$.signal,R&&R.submission),H=e.getContext?await e.getContext():new it,U;if(R&&R.pendingError)U=[Pe(k).route.id,{type:"error",error:R.pendingError}];else if(R&&R.submission&&oe(R.submission.formMethod)){let re=await To(_,v,R.submission,k,H,F.active,R&&R.initialHydration===!0,{replace:R.replace,flushSync:N});if(re.shortCircuited)return;if(re.pendingActionResult){let[de,X]=re.pendingActionResult;if(ae(X)&&xe(X.error)&&X.error.status===404){$=null,at(v,{matches:re.matches,loaderData:{},errors:{[de]:X.error}});return}}k=re.matches||k,U=re.pendingActionResult,O=ur(v,R.submission),N=!1,F.active=!1,_=ot(e.history,_.url,_.signal)}let{shortCircuited:A,matches:Y,loaderData:J,errors:ne}=await $o(_,v,k,H,F.active,O,R&&R.submission,R&&R.fetcherSubmission,R&&R.replace,R&&R.initialHydration===!0,N,U,R&&R.callSiteDefaultShouldRevalidate);A||($=null,at(v,{matches:Y||k,..._a(U),loaderData:J,errors:ne}))}async function To(m,v,R,D,O,k,N,F={}){ar();let _=Ii(v,R);if(ie({navigation:_},{flushSync:F.flushSync===!0}),k){let A=await $t(D,v.pathname,m.signal);if(A.type==="aborted")return{shortCircuited:!0};if(A.type==="error"){if(A.partialMatches.length===0){let{matches:J,route:ne}=lt(l);return{matches:J,pendingActionResult:[ne.id,{type:"error",error:A.error}]}}let Y=Pe(A.partialMatches).route.id;return{matches:A.partialMatches,pendingActionResult:[Y,{type:"error",error:A.error}]}}else if(A.matches)D=A.matches;else{let{notFoundMatches:Y,error:J,route:ne}=or(v.pathname);return{matches:Y,pendingActionResult:[ne.id,{type:"error",error:J}]}}}let H,U=st(D,v);if(!U.route.action&&!U.route.lazy)H={type:"error",error:ee(405,{method:m.method,pathname:v.pathname,routeId:U.route.id})};else{let A=Be(o,i,m,D,U,N?[]:a,O),Y=await yt(m,A,O,null);if(H=Y[U.route.id],!H){for(let J of D)if(Y[J.route.id]){H=Y[J.route.id];break}}if(m.signal.aborted)return{shortCircuited:!0}}if(ze(H)){let A;return F&&F.replace!=null?A=F.replace:A=$a(H.response.headers.get("Location"),new URL(m.url),u)===g.location.pathname+g.location.search,await Ve(m,H,!0,{submission:R,replace:A}),{shortCircuited:!0}}if(ae(H)){let A=Pe(D,U.route.id);return(F&&F.replace)!==!0&&(T="PUSH"),{matches:D,pendingActionResult:[A.route.id,H,U.route.id]}}return{matches:D,pendingActionResult:[U.route.id,H]}}async function $o(m,v,R,D,O,k,N,F,_,H,U,A,Y){let J=k||ur(v,N),ne=N||F||Ia(J),re=!W&&!H;if(O){if(re){let le=oa(A);ie({navigation:J,...le!==void 0?{actionData:le}:{}},{flushSync:U})}let B=await $t(R,v.pathname,m.signal);if(B.type==="aborted")return{shortCircuited:!0};if(B.type==="error"){if(B.partialMatches.length===0){let{matches:nt,route:Xe}=lt(l);return{matches:nt,loaderData:{},errors:{[Xe.id]:B.error}}}let le=Pe(B.partialMatches).route.id;return{matches:B.partialMatches,loaderData:{},errors:{[le]:B.error}}}else if(B.matches)R=B.matches;else{let{error:le,notFoundMatches:nt,route:Xe}=or(v.pathname);return{matches:nt,loaderData:{},errors:{[Xe.id]:le}}}}let de=s||l,{dsMatches:X,revalidatingFetchers:Re}=Ca(m,D,o,i,e.history,g,R,ne,v,H?[]:a,H===!0,G,we,ye,be,pe,de,u,e.patchRoutesOnNavigation!=null,A,Y);if(me=++te,!e.dataStrategy&&!X.some(B=>B.shouldLoad)&&!X.some(B=>B.route.middleware&&B.route.middleware.length>0)&&Re.length===0){let B=ua();return at(v,{matches:R,loaderData:{},errors:A&&ae(A[1])?{[A[0]]:A[1].error}:null,..._a(A),...B?{fetchers:new Map(g.fetchers)}:{}},{flushSync:U}),{shortCircuited:!0}}if(re){let B={};if(!O){B.navigation=J;let le=oa(A);le!==void 0&&(B.actionData=le)}Re.length>0&&(B.fetchers=No(Re)),ie(B,{flushSync:U})}Re.forEach(B=>{Fe(B.key),B.controller&&K.set(B.key,B.controller)});let Ke=()=>Re.forEach(B=>Fe(B.key));$&&$.signal.addEventListener("abort",Ke);let{loaderResults:vt,fetcherResults:He}=await ia(X,Re,m,D);if(m.signal.aborted)return{shortCircuited:!0};$&&$.signal.removeEventListener("abort",Ke),Re.forEach(B=>K.delete(B.key));let Oe=_t(vt);if(Oe)return await Ve(m,Oe.result,!0,{replace:_}),{shortCircuited:!0};if(Oe=_t(He),Oe)return pe.add(Oe.key),await Ve(m,Oe.result,!0,{replace:_}),{shortCircuited:!0};let{loaderData:ir,errors:gt}=Fa(g,R,vt,A,Re,He);H&&g.errors&&(gt={...g.errors,...gt});let Ge=ua(),Nt=ca(me),Ft=Ge||Nt||Re.length>0;return{matches:R,loaderData:ir,errors:gt,...Ft?{fetchers:new Map(g.fetchers)}:{}}}function oa(m){if(m&&!ae(m[1]))return{[m[0]]:m[1].data};if(g.actionData)return Object.keys(g.actionData).length===0?null:g.actionData}function No(m){return m.forEach(v=>{let R=g.fetchers.get(v.key),D=wt(void 0,R?R.data:void 0);g.fetchers.set(v.key,D)}),new Map(g.fetchers)}async function Fo(m,v,R,D){Fe(m);let O=(D&&D.flushSync)===!0,k=s||l,N=pr(g.location,g.matches,u,R,v,D?.relative),F=De(k,N,u),_=Tt(F,k,N);if(_.active&&_.matches&&(F=_.matches),!F){Ne(m,v,ee(404,{pathname:N}),{flushSync:O});return}let{path:H,submission:U,error:A}=xa(!0,N,D);if(A){Ne(m,v,A,{flushSync:O});return}let Y=e.getContext?await e.getContext():new it,J=(D&&D.preventScrollReset)===!0;if(U&&oe(U.formMethod)){await ko(m,v,H,F,Y,_.active,O,J,U,D&&D.unstable_defaultShouldRevalidate);return}be.set(m,{routeId:v,path:H}),await _o(m,v,H,F,Y,_.active,O,J,U)}async function ko(m,v,R,D,O,k,N,F,_,H){ar(),be.delete(m);let U=g.fetchers.get(m);$e(m,Ai(_,U),{flushSync:N});let A=new AbortController,Y=ot(e.history,R,A.signal,_);if(k){let q=await $t(D,new URL(Y.url).pathname,Y.signal,m);if(q.type==="aborted")return;if(q.type==="error"){Ne(m,v,q.error,{flushSync:N});return}else if(q.matches)D=q.matches;else{Ne(m,v,ee(404,{pathname:R}),{flushSync:N});return}}let J=st(D,R);if(!J.route.action&&!J.route.lazy){let q=ee(405,{method:_.formMethod,pathname:R,routeId:v});Ne(m,v,q,{flushSync:N});return}K.set(m,A);let ne=te,re=Be(o,i,Y,D,J,a,O),de=await yt(Y,re,O,m),X=de[J.route.id];if(!X){for(let q of re)if(de[q.route.id]){X=de[q.route.id];break}}if(Y.signal.aborted){K.get(m)===A&&K.delete(m);return}if(ye.has(m)){if(ze(X)||ae(X)){$e(m,ke(void 0));return}}else{if(ze(X))if(K.delete(m),me>ne){$e(m,ke(void 0));return}else return pe.add(m),$e(m,wt(_)),Ve(Y,X,!1,{fetcherSubmission:_,preventScrollReset:F});if(ae(X)){Ne(m,v,X.error);return}}let Re=g.navigation.location||g.location,Ke=ot(e.history,Re,A.signal),vt=s||l,He=g.navigation.state!=="idle"?De(vt,g.navigation.location,u):g.matches;I(He,"Didn't find any matches after fetcher action");let Oe=++te;Le.set(m,Oe);let ir=wt(_,X.data);g.fetchers.set(m,ir);let{dsMatches:gt,revalidatingFetchers:Ge}=Ca(Ke,O,o,i,e.history,g,He,_,Re,a,!1,G,we,ye,be,pe,vt,u,e.patchRoutesOnNavigation!=null,[J.route.id,X],H);Ge.filter(q=>q.key!==m).forEach(q=>{let kt=q.key,ya=g.fetchers.get(kt),Wo=wt(void 0,ya?ya.data:void 0);g.fetchers.set(kt,Wo),Fe(kt),q.controller&&K.set(kt,q.controller)}),ie({fetchers:new Map(g.fetchers)});let Nt=()=>Ge.forEach(q=>Fe(q.key));A.signal.addEventListener("abort",Nt);let{loaderResults:Ft,fetcherResults:B}=await ia(gt,Ge,Ke,O);if(A.signal.aborted)return;if(A.signal.removeEventListener("abort",Nt),Le.delete(m),K.delete(m),Ge.forEach(q=>K.delete(q.key)),g.fetchers.has(m)){let q=ke(X.data);g.fetchers.set(m,q)}let le=_t(Ft);if(le)return Ve(Ke,le.result,!1,{preventScrollReset:F});if(le=_t(B),le)return pe.add(le.key),Ve(Ke,le.result,!1,{preventScrollReset:F});let{loaderData:nt,errors:Xe}=Fa(g,He,Ft,void 0,Ge,B);ca(Oe),g.navigation.state==="loading"&&Oe>me?(I(T,"Expected pending action"),$&&$.abort(),at(g.navigation.location,{matches:He,loaderData:nt,errors:Xe,fetchers:new Map(g.fetchers)})):(ie({errors:Xe,loaderData:ka(g.loaderData,nt,He,Xe),fetchers:new Map(g.fetchers)}),G=!1)}async function _o(m,v,R,D,O,k,N,F,_){let H=g.fetchers.get(m);$e(m,wt(_,H?H.data:void 0),{flushSync:N});let U=new AbortController,A=ot(e.history,R,U.signal);if(k){let X=await $t(D,new URL(A.url).pathname,A.signal,m);if(X.type==="aborted")return;if(X.type==="error"){Ne(m,v,X.error,{flushSync:N});return}else if(X.matches)D=X.matches;else{Ne(m,v,ee(404,{pathname:R}),{flushSync:N});return}}let Y=st(D,R);K.set(m,U);let J=te,ne=Be(o,i,A,D,Y,a,O),de=(await yt(A,ne,O,m))[Y.route.id];if(K.get(m)===U&&K.delete(m),!A.signal.aborted){if(ye.has(m)){$e(m,ke(void 0));return}if(ze(de))if(me>J){$e(m,ke(void 0));return}else{pe.add(m),await Ve(A,de,!1,{preventScrollReset:F});return}if(ae(de)){Ne(m,v,de.error);return}$e(m,ke(de.data))}}async function Ve(m,v,R,{submission:D,fetcherSubmission:O,preventScrollReset:k,replace:N}={}){R||(M?.resolve(),M=null),v.response.headers.has("X-Remix-Revalidate")&&(G=!0);let F=v.response.headers.get("Location");I(F,"Expected a Location header on the redirect Response"),F=$a(F,new URL(m.url),u);let _=Ie(g.location,F,{_isRedirect:!0});if(r){let ne=!1;if(v.response.headers.has("X-Remix-Reload-Document"))ne=!0;else if(Kt(F)){const re=qa(F,!0);ne=re.origin!==t.location.origin||fe(re.pathname,u)==null}if(ne){N?t.location.replace(F):t.location.assign(F);return}}$=null;let H=N===!0||v.response.headers.has("X-Remix-Replace")?"REPLACE":"PUSH",{formMethod:U,formAction:A,formEncType:Y}=g.navigation;!D&&!O&&U&&A&&Y&&(D=Ia(g.navigation));let J=D||O;if(Pi.has(v.response.status)&&J&&oe(J.formMethod))await Je(H,_,{submission:{...J,formAction:F},preventScrollReset:k||j,enableViewTransition:R?z:void 0});else{let ne=ur(_,D);await Je(H,_,{overrideNavigation:ne,fetcherSubmission:O,preventScrollReset:k||j,enableViewTransition:R?z:void 0})}}async function yt(m,v,R,D){let O,k={};try{O=await Pn(h,m,v,D,R,!1)}catch(N){return v.filter(F=>F.shouldLoad).forEach(F=>{k[F.route.id]={type:"error",error:N}}),k}if(m.signal.aborted)return k;if(!oe(m.method))for(let N of v){if(O[N.route.id]?.type==="error")break;!O.hasOwnProperty(N.route.id)&&!g.loaderData.hasOwnProperty(N.route.id)&&(!g.errors||!g.errors.hasOwnProperty(N.route.id))&&N.shouldCallHandler()&&(O[N.route.id]={type:"error",result:new Error(`No result returned from dataStrategy for route ${N.route.id}`)})}for(let[N,F]of Object.entries(O))if($n(F)){let _=F.result;k[N]={type:"redirect",response:Ln(_,m,N,v,u)}}else k[N]=await Cn(F);return k}async function ia(m,v,R,D){let O=yt(R,m,D,null),k=Promise.all(v.map(async _=>{if(_.matches&&_.match&&_.request&&_.controller){let U=(await yt(_.request,_.matches,D,_.key))[_.match.route.id];return{[_.key]:U}}else return Promise.resolve({[_.key]:{type:"error",error:ee(404,{pathname:_.path})}})})),N=await O,F=(await k).reduce((_,H)=>Object.assign(_,H),{});return{loaderResults:N,fetcherResults:F}}function ar(){G=!0,be.forEach((m,v)=>{K.has(v)&&we.add(v),Fe(v)})}function $e(m,v,R={}){g.fetchers.set(m,v),ie({fetchers:new Map(g.fetchers)},{flushSync:(R&&R.flushSync)===!0})}function Ne(m,v,R,D={}){let O=Pe(g.matches,v);nr(m),ie({errors:{[O.route.id]:R},fetchers:new Map(g.fetchers)},{flushSync:(D&&D.flushSync)===!0})}function la(m){return Ee.set(m,(Ee.get(m)||0)+1),ye.has(m)&&ye.delete(m),g.fetchers.get(m)||Nr}function Io(m,v){Fe(m,v?.reason),$e(m,ke(null))}function nr(m){let v=g.fetchers.get(m);K.has(m)&&!(v&&v.state==="loading"&&Le.has(m))&&Fe(m),be.delete(m),Le.delete(m),pe.delete(m),ye.delete(m),we.delete(m),g.fetchers.delete(m)}function Ao(m){let v=(Ee.get(m)||0)-1;v<=0?(Ee.delete(m),ye.add(m)):Ee.set(m,v),ie({fetchers:new Map(g.fetchers)})}function Fe(m,v){let R=K.get(m);R&&(R.abort(v),K.delete(m))}function sa(m){for(let v of m){let R=la(v),D=ke(R.data);g.fetchers.set(v,D)}}function ua(){let m=[],v=!1;for(let R of pe){let D=g.fetchers.get(R);I(D,`Expected fetcher: ${R}`),D.state==="loading"&&(pe.delete(R),m.push(R),v=!0)}return sa(m),v}function ca(m){let v=[];for(let[R,D]of Le)if(D<m){let O=g.fetchers.get(R);I(O,`Expected fetcher: ${R}`),O.state==="loading"&&(Fe(R),Le.delete(R),v.push(R))}return sa(v),v.length>0}function jo(m,v){let R=g.blockers.get(m)||Qe;return Ye.get(m)!==v&&Ye.set(m,v),R}function da(m){g.blockers.delete(m),Ye.delete(m)}function Mt(m,v){let R=g.blockers.get(m)||Qe;I(R.state==="unblocked"&&v.state==="blocked"||R.state==="blocked"&&v.state==="blocked"||R.state==="blocked"&&v.state==="proceeding"||R.state==="blocked"&&v.state==="unblocked"||R.state==="proceeding"&&v.state==="unblocked",`Invalid blocker state transition: ${R.state} -> ${v.state}`);let D=new Map(g.blockers);D.set(m,v),ie({blockers:D})}function fa({currentLocation:m,nextLocation:v,historyAction:R}){if(Ye.size===0)return;Ye.size>1&&Q(!1,"A router only supports one blocker at a time");let D=Array.from(Ye.entries()),[O,k]=D[D.length-1],N=g.blockers.get(O);if(!(N&&N.state==="proceeding")&&k({currentLocation:m,nextLocation:v,historyAction:R}))return O}function or(m){let v=ee(404,{pathname:m}),R=s||l,{matches:D,route:O}=lt(R);return{notFoundMatches:D,route:O,error:v}}function Ho(m,v,R){if(p=m,w=v,b=R||null,!S&&g.navigation===Ut){S=!0;let D=ma(g.location,g.matches);D!=null&&ie({restoreScrollPosition:D})}return()=>{p=null,w=null,b=null}}function ha(m,v){return b&&b(m,v.map(D=>en(D,g.loaderData)))||m.key}function Uo(m,v){if(p&&w){let R=ha(m,v);p[R]=w()}}function ma(m,v){if(p){let R=ha(m,v),D=p[R];if(typeof D=="number")return D}return null}function Tt(m,v,R){if(e.patchRoutesOnNavigation)if(m){if(Object.keys(m[0].params).length>0)return{active:!0,matches:Rt(v,R,u,!0)}}else return{active:!0,matches:Rt(v,R,u,!0)||[]};return{active:!1,matches:null}}async function $t(m,v,R,D){if(!e.patchRoutesOnNavigation)return{type:"success",matches:m};let O=m;for(;;){let k=s==null,N=s||l,F=i;try{await e.patchRoutesOnNavigation({signal:R,path:v,matches:O,fetcherKey:D,patch:(U,A)=>{R.aborted||La(U,A,N,F,o,!1)}})}catch(U){return{type:"error",error:U,partialMatches:O}}finally{k&&!R.aborted&&(l=[...l])}if(R.aborted)return{type:"aborted"};let _=De(N,v,u),H=null;if(_){if(Object.keys(_[0].params).length===0)return{type:"success",matches:_};if(H=Rt(N,v,u,!0),!(H&&O.length<H.length&&pa(O,H.slice(0,O.length))))return{type:"success",matches:_}}if(H||(H=Rt(N,v,u,!0)),!H||pa(O,H))return{type:"success",matches:null};O=H}}function pa(m,v){return m.length===v.length&&m.every((R,D)=>R.route.id===v[D].route.id)}function zo(m){i={},s=et(m,o,void 0,i)}function Bo(m,v,R=!1){let D=s==null;La(m,v,s||l,i,o,R),D&&(l=[...l],ie({}))}return P={get basename(){return u},get future(){return d},get state(){return g},get routes(){return l},get window(){return t},initialize:Lo,subscribe:Oo,enableScrollRestoration:Ho,navigate:na,fetch:Fo,revalidate:Mo,createHref:m=>e.history.createHref(m),encodeLocation:m=>e.history.encodeLocation(m),getFetcher:la,resetFetcher:Io,deleteFetcher:Ao,dispose:Do,getBlocker:jo,deleteBlocker:da,patchRoutes:Bo,_internalFetchControllers:K,_internalSetRoutes:zo,_internalSetStateDoNotUseOrYouWillBreakYourApp(m){ie(m)}},e.unstable_instrumentations&&(P=gi(P,e.unstable_instrumentations.map(m=>m.router).filter(Boolean))),P}function xi(e,t){I(e.length>0,"You must provide a non-empty routes array to createStaticHandler");let r={},a=(t?t.basename:null)||"/",n=t?.mapRouteProperties||yn,o=n;if(t?.unstable_instrumentations){let f=t.unstable_instrumentations;o=p=>({...n(p),...cn(f.map(b=>b.route).filter(Boolean),p)})}let i=et(e,o,void 0,r);async function l(f,{requestContext:p,filterMatchesToLoad:b,skipLoaderErrorBubbling:w,skipRevalidation:S,dataStrategy:E,generateMiddlewareResponse:C}={}){let L=new URL(f.url),x=f.method,P=Ie("",ce(L),null,"default"),g=De(i,P,a);if(p=p??new it,!Er(x)&&x!=="HEAD"){let M=ee(405,{method:x}),{matches:j,route:$}=lt(i),z={basename:a,location:P,matches:j,loaderData:{},actionData:null,errors:{[$.id]:M},statusCode:M.status,loaderHeaders:{},actionHeaders:{}};return C?C(()=>Promise.resolve(z)):z}else if(!g){let M=ee(404,{pathname:P.pathname}),{matches:j,route:$}=lt(i),z={basename:a,location:P,matches:j,loaderData:{},actionData:null,errors:{[$.id]:M},statusCode:M.status,loaderHeaders:{},actionHeaders:{}};return C?C(()=>Promise.resolve(z)):z}if(C){I(p instanceof it,"When using middleware in `staticHandler.query()`, any provided `requestContext` must be an instance of `RouterContextProvider`");try{await Ma(g,r,o);let M,j=await Ta({request:f,unstable_pattern:_e(g),matches:g,params:g[0].params,context:p},async()=>await C(async(z,V={})=>{let Z=await u(z,P,g,p,E||null,w===!0,null,"filterMatchesToLoad"in V?V.filterMatchesToLoad??null:b??null,S===!0);return se(Z)?Z:(M={location:P,basename:a,...Z},M)}),async($,z)=>{if(br($))return $;if(se($))try{$=new Te($.status,$.statusText,await xn($))}catch(V){$=V}if(qe($)&&($=Mn($)),M){z in M.loaderData&&(M.loaderData[z]=void 0);let V=Ci(i,M,$,w?z:Pe(g,z).route.id);return C(()=>Promise.resolve(V))}else{let V=w?z:Pe(g,g.find(W=>W.route.id===z||W.route.loader)?.route.id||z).route.id,Z={matches:g,location:P,basename:a,loaderData:{},actionData:null,errors:{[V]:$},statusCode:xe($)?$.status:500,actionHeaders:{},loaderHeaders:{}};return C(()=>Promise.resolve(Z))}});return I(se(j),"Expected a response in query()"),j}catch(M){if(se(M))return M;throw M}}let T=await u(f,P,g,p,E||null,w===!0,null,b||null,S===!0);return se(T)?T:{location:P,basename:a,...T}}async function s(f,{routeId:p,requestContext:b,dataStrategy:w,generateMiddlewareResponse:S}={}){let E=new URL(f.url),C=f.method,L=Ie("",ce(E),null,"default"),x=De(i,L,a);if(b=b??new it,!Er(C)&&C!=="HEAD"&&C!=="OPTIONS")throw ee(405,{method:C});if(!x)throw ee(404,{pathname:L.pathname});let P=p?x.find(M=>M.route.id===p):st(x,L);if(p&&!P)throw ee(403,{pathname:L.pathname,routeId:p});if(!P)throw ee(404,{pathname:L.pathname});if(S)return I(b instanceof it,"When using middleware in `staticHandler.queryRoute()`, any provided `requestContext` must be an instance of `RouterContextProvider`"),await Ma(x,r,o),await Ta({request:f,unstable_pattern:_e(x),matches:x,params:x[0].params,context:b},async()=>await S(async $=>{let z=await u($,L,x,b,w||null,!1,P,null,!1),V=T(z);return se(V)?V:typeof V=="string"?new Response(V):Response.json(V)}),j=>{if(qe(j))return Promise.resolve(wr(j));if(se(j))return Promise.resolve(j);throw j});let g=await u(f,L,x,b,w||null,!1,P,null,!1);return T(g);function T(M){if(se(M))return M;let j=M.errors?Object.values(M.errors)[0]:void 0;if(j!==void 0)throw j;if(M.actionData)return Object.values(M.actionData)[0];if(M.loaderData)return Object.values(M.loaderData)[0]}}async function u(f,p,b,w,S,E,C,L,x){I(f.signal,"query()/queryRoute() requests must contain an AbortController signal");try{if(oe(f.method))return await h(f,b,C||st(b,p),w,S,E,C!=null,L,x);let P=await d(f,b,w,S,E,C,L);return se(P)?P:{...P,actionData:null,actionHeaders:{}}}catch(P){if(Tn(P)&&se(P.result)){if(P.type==="error")throw P.result;return P.result}if(br(P))return P;throw P}}async function h(f,p,b,w,S,E,C,L,x){let P;if(!b.route.action&&!b.route.lazy){let M=ee(405,{method:f.method,pathname:new URL(f.url).pathname,routeId:b.route.id});if(C)throw M;P={type:"error",error:M}}else{let M=Be(o,r,f,p,b,[],w);P=(await y(f,M,C,w,S))[b.route.id],f.signal.aborted&&Pa(f,C)}if(ze(P))throw new Response(null,{status:P.response.status,headers:{Location:P.response.headers.get("Location")}});if(C){if(ae(P))throw P.error;return{matches:[b],loaderData:{},actionData:{[b.route.id]:P.data},errors:null,statusCode:200,loaderHeaders:{},actionHeaders:{}}}if(x)if(ae(P)){let M=E?b:Pe(p,b.route.id);return{statusCode:xe(P.error)?P.error.status:P.statusCode!=null?P.statusCode:500,actionData:null,actionHeaders:{...P.headers?{[b.route.id]:P.headers}:{}},matches:p,loaderData:{},errors:{[M.route.id]:P.error},loaderHeaders:{}}}else return{actionData:{[b.route.id]:P.data},actionHeaders:P.headers?{[b.route.id]:P.headers}:{},matches:p,loaderData:{},errors:null,statusCode:P.statusCode||200,loaderHeaders:{}};let g=new Request(f.url,{headers:f.headers,redirect:f.redirect,signal:f.signal});if(ae(P)){let M=E?b:Pe(p,b.route.id);return{...await d(g,p,w,S,E,null,L,[M.route.id,P]),statusCode:xe(P.error)?P.error.status:P.statusCode!=null?P.statusCode:500,actionData:null,actionHeaders:{...P.headers?{[b.route.id]:P.headers}:{}}}}return{...await d(g,p,w,S,E,null,L),actionData:{[b.route.id]:P.data},...P.statusCode?{statusCode:P.statusCode}:{},actionHeaders:P.headers?{[b.route.id]:P.headers}:{}}}async function d(f,p,b,w,S,E,C,L){let x=E!=null;if(x&&!E?.route.loader&&!E?.route.lazy)throw ee(400,{method:f.method,pathname:new URL(f.url).pathname,routeId:E?.route.id});let P;if(E)P=Be(o,r,f,p,E,[],b);else{let M=L&&ae(L[1])?p.findIndex($=>$.route.id===L[0])-1:void 0,j=_e(p);P=p.map(($,z)=>M!=null&&z>M?xt(o,r,f,j,$,[],b,!1):xt(o,r,f,j,$,[],b,($.route.loader||$.route.lazy)!=null&&(!C||C($))))}if(!w&&!P.some(M=>M.shouldLoad))return{matches:p,loaderData:{},errors:L&&ae(L[1])?{[L[0]]:L[1].error}:null,statusCode:200,loaderHeaders:{}};let g=await y(f,P,x,b,w);return f.signal.aborted&&Pa(f,x),{...Dn(p,g,L,!0,S),matches:p}}async function y(f,p,b,w,S){let E=await Pn(S||vr,f,p,null,w,!0),C={};return await Promise.all(p.map(async L=>{if(!(L.route.id in E))return;let x=E[L.route.id];if($n(x)){let P=x.result;throw Ln(P,f,L.route.id,p,a)}if(b){if(se(x.result))throw x;if(qe(x.result))throw wr(x.result)}C[L.route.id]=await Cn(x)})),C}return{dataRoutes:i,query:l,queryRoute:s}}function Ci(e,t,r,a){let n=a||t._deepestRenderedBoundaryId||e[0].id;return{...t,statusCode:xe(r)?r.status:500,errors:{[n]:r}}}function Pa(e,t){if(e.signal.reason!==void 0)throw e.signal.reason;let r=t?"queryRoute":"query";throw new Error(`${r}() call aborted without an \`AbortSignal.reason\`: ${e.method} ${e.url}`)}function Li(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function pr(e,t,r,a,n,o){let i,l;if(n){i=[];for(let u of t)if(i.push(u),u.route.id===n){l=u;break}}else i=t,l=t[t.length-1];let s=Xt(a||".",Gt(i),fe(e.pathname,r)||e.pathname,o==="path");if(a==null&&(s.search=e.search,s.hash=e.hash),(a==null||a===""||a===".")&&l){let u=Ir(s.search);if(l.route.index&&!u)s.search=s.search?s.search.replace(/^\?/,"?index&"):"?index";else if(!l.route.index&&u){let h=new URLSearchParams(s.search),d=h.getAll("index");h.delete("index"),d.filter(f=>f).forEach(f=>h.append("index",f));let y=h.toString();s.search=y?`?${y}`:""}}return r!=="/"&&(s.pathname=di({basename:r,pathname:s.pathname})),ce(s)}function xa(e,t,r){if(!r||!Li(r))return{path:t};if(r.formMethod&&!Er(r.formMethod))return{path:t,error:ee(405,{method:r.formMethod})};let a=()=>({path:t,error:ee(400,{type:"invalid-body"})}),o=(r.formMethod||"get").toUpperCase(),i=On(t);if(r.body!==void 0){if(r.formEncType==="text/plain"){if(!oe(o))return a();let d=typeof r.body=="string"?r.body:r.body instanceof FormData||r.body instanceof URLSearchParams?Array.from(r.body.entries()).reduce((y,[f,p])=>`${y}${f}=${p}
|
|
2
|
+
`,""):String(r.body);return{path:t,submission:{formMethod:o,formAction:i,formEncType:r.formEncType,formData:void 0,json:void 0,text:d}}}else if(r.formEncType==="application/json"){if(!oe(o))return a();try{let d=typeof r.body=="string"?JSON.parse(r.body):r.body;return{path:t,submission:{formMethod:o,formAction:i,formEncType:r.formEncType,formData:void 0,json:d,text:void 0}}}catch{return a()}}}I(typeof FormData=="function","FormData is not available in this environment");let l,s;if(r.formData)l=gr(r.formData),s=r.formData;else if(r.body instanceof FormData)l=gr(r.body),s=r.body;else if(r.body instanceof URLSearchParams)l=r.body,s=Na(l);else if(r.body==null)l=new URLSearchParams,s=new FormData;else try{l=new URLSearchParams(r.body),s=Na(l)}catch{return a()}let u={formMethod:o,formAction:i,formEncType:r&&r.formEncType||"application/x-www-form-urlencoded",formData:s,json:void 0,text:void 0};if(oe(u.formMethod))return{path:t,submission:u};let h=Ce(t);return e&&h.search&&Ir(h.search)&&l.append("index",""),h.search=`?${l}`,{path:ce(h),submission:u}}function Ca(e,t,r,a,n,o,i,l,s,u,h,d,y,f,p,b,w,S,E,C,L){let x=C?ae(C[1])?C[1].error:C[1].data:void 0,P=n.createURL(o.location),g=n.createURL(s),T;if(h&&o.errors){let W=Object.keys(o.errors)[0];T=i.findIndex(G=>G.route.id===W)}else if(C&&ae(C[1])){let W=C[0];T=i.findIndex(G=>G.route.id===W)-1}let M=C?C[1].statusCode:void 0,j=M&&M>=400,$={currentUrl:P,currentParams:o.matches[0]?.params||{},nextUrl:g,nextParams:i[0].params,...l,actionResult:x,actionStatus:M},z=_e(i),V=i.map((W,G)=>{let{route:we}=W,K=null;if(T!=null&&G>T?K=!1:we.lazy?K=!0:kr(we)?h?K=yr(we,o.loaderData,o.errors):Di(o.loaderData,o.matches[G],W)&&(K=!0):K=!1,K!==null)return xt(r,a,e,z,W,u,t,K);let te=!1;typeof L=="boolean"?te=L:j?te=!1:(d||P.pathname+P.search===g.pathname+g.search||P.search!==g.search||Oi(o.matches[G],W))&&(te=!0);let me={...$,defaultShouldRevalidate:te},Le=St(W,me);return xt(r,a,e,z,W,u,t,Le,me,L)}),Z=[];return p.forEach((W,G)=>{if(h||!i.some(Ee=>Ee.route.id===W.routeId)||f.has(G))return;let we=o.fetchers.get(G),K=we&&we.state!=="idle"&&we.data===void 0,te=De(w,W.path,S);if(!te){if(E&&K)return;Z.push({key:G,routeId:W.routeId,path:W.path,matches:null,match:null,request:null,controller:null});return}if(b.has(G))return;let me=st(te,W.path),Le=new AbortController,pe=ot(n,W.path,Le.signal),be=null;if(y.has(G))y.delete(G),be=Be(r,a,pe,te,me,u,t);else if(K)d&&(be=Be(r,a,pe,te,me,u,t));else{let Ee;typeof L=="boolean"?Ee=L:j?Ee=!1:Ee=d;let ye={...$,defaultShouldRevalidate:Ee};St(me,ye)&&(be=Be(r,a,pe,te,me,u,t,ye))}be&&Z.push({key:G,routeId:W.routeId,path:W.path,matches:be,match:me,request:pe,controller:Le})}),{dsMatches:V,revalidatingFetchers:Z}}function kr(e){return e.loader!=null||e.middleware!=null&&e.middleware.length>0}function yr(e,t,r){if(e.lazy)return!0;if(!kr(e))return!1;let a=t!=null&&e.id in t,n=r!=null&&r[e.id]!==void 0;return!a&&n?!1:typeof e.loader=="function"&&e.loader.hydrate===!0?!0:!a&&!n}function Di(e,t,r){let a=!t||r.route.id!==t.route.id,n=!e.hasOwnProperty(r.route.id);return a||n}function Oi(e,t){let r=e.route.path;return e.pathname!==t.pathname||r!=null&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function St(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if(typeof r=="boolean")return r}return t.defaultShouldRevalidate}function La(e,t,r,a,n,o){let i;if(e){let u=a[e];I(u,`No route found to patch children into: routeId = ${e}`),u.children||(u.children=[]),i=u.children}else i=r;let l=[],s=[];if(t.forEach(u=>{let h=i.find(d=>wn(u,d));h?s.push({existingRoute:h,newRoute:u}):l.push(u)}),l.length>0){let u=et(l,n,[e||"_","patch",String(i?.length||"0")],a);i.push(...u)}if(o&&s.length>0)for(let u=0;u<s.length;u++){let{existingRoute:h,newRoute:d}=s[u],y=h,[f]=et([d],n,[],{},!0);Object.assign(y,{element:f.element?f.element:y.element,errorElement:f.errorElement?f.errorElement:y.errorElement,hydrateFallbackElement:f.hydrateFallbackElement?f.hydrateFallbackElement:y.hydrateFallbackElement})}}function wn(e,t){return"id"in e&&"id"in t&&e.id===t.id?!0:e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive?(!e.children||e.children.length===0)&&(!t.children||t.children.length===0)?!0:e.children.every((r,a)=>t.children?.some(n=>wn(r,n))):!1}var Da=new WeakMap,_r=({key:e,route:t,manifest:r,mapRouteProperties:a})=>{let n=r[t.id];if(I(n,"No route found in manifest"),!n.lazy||typeof n.lazy!="object")return;let o=n.lazy[e];if(!o)return;let i=Da.get(n);i||(i={},Da.set(n,i));let l=i[e];if(l)return l;let s=(async()=>{let u=Qo(e),d=n[e]!==void 0&&e!=="hasErrorBoundary";if(u)Q(!u,"Route property "+e+" is not a supported lazy route property. This property will be ignored."),i[e]=Promise.resolve();else if(d)Q(!1,`Route "${n.id}" has a static property "${e}" defined. The lazy property will be ignored.`);else{let y=await o();y!=null&&(Object.assign(n,{[e]:y}),Object.assign(n,a(n)))}typeof n.lazy=="object"&&(n.lazy[e]=void 0,Object.values(n.lazy).every(y=>y===void 0)&&(n.lazy=void 0))})();return i[e]=s,s},Oa=new WeakMap;function Mi(e,t,r,a,n){let o=r[e.id];if(I(o,"No route found in manifest"),!e.lazy)return{lazyRoutePromise:void 0,lazyHandlerPromise:void 0};if(typeof e.lazy=="function"){let h=Oa.get(o);if(h)return{lazyRoutePromise:h,lazyHandlerPromise:h};let d=(async()=>{I(typeof e.lazy=="function","No lazy route function found");let y=await e.lazy(),f={};for(let p in y){let b=y[p];if(b===void 0)continue;let w=qo(p),E=o[p]!==void 0&&p!=="hasErrorBoundary";w?Q(!w,"Route property "+p+" is not a supported property to be returned from a lazy route function. This property will be ignored."):E?Q(!E,`Route "${o.id}" has a static property "${p}" defined but its lazy function is also returning a value for this property. The lazy route property "${p}" will be ignored.`):f[p]=b}Object.assign(o,f),Object.assign(o,{...a(o),lazy:void 0})})();return Oa.set(o,d),d.catch(()=>{}),{lazyRoutePromise:d,lazyHandlerPromise:d}}let i=Object.keys(e.lazy),l=[],s;for(let h of i){if(n&&n.includes(h))continue;let d=_r({key:h,route:e,manifest:r,mapRouteProperties:a});d&&(l.push(d),h===t&&(s=d))}let u=l.length>0?Promise.all(l).then(()=>{}):void 0;return u?.catch(()=>{}),s?.catch(()=>{}),{lazyRoutePromise:u,lazyHandlerPromise:s}}function Ti(e){return e!==void 0}function Ma(e,t,r){let a=e.map(({route:n})=>{if(!(typeof n.lazy!="object"||!n.lazy.middleware))return _r({key:"middleware",route:n,manifest:t,mapRouteProperties:r})}).filter(Ti);return a.length>0?Promise.all(a):void 0}async function vr(e){let t=e.matches.filter(n=>n.shouldLoad),r={};return(await Promise.all(t.map(n=>n.resolve()))).forEach((n,o)=>{r[t[o].route.id]=n}),r}async function $i(e){return e.matches.some(t=>t.route.middleware)?bn(e,()=>vr(e)):vr(e)}function Ta(e,t,r){return En(e,t,a,se,r);function a(n){return qe(n)?wr(n):n}}function bn(e,t){return En(e,t,a=>{if(br(a))throw a;return a},ki,r);function r(a,n,o){if(o)return Promise.resolve(Object.assign(o.value,{[n]:{type:"error",result:a}}));{let{matches:i}=e,l=Math.min(Math.max(i.findIndex(u=>u.route.id===n),0),Math.max(i.findIndex(u=>u.shouldCallHandler()),0)),s=Pe(i,i[l].route.id).route.id;return Promise.resolve({[s]:{type:"error",result:a}})}}}async function En(e,t,r,a,n){let{matches:o,request:i,params:l,context:s,unstable_pattern:u}=e,h=o.flatMap(y=>y.route.middleware?y.route.middleware.map(f=>[y.route.id,f]):[]);return await Rn({request:i,params:l,context:s,unstable_pattern:u},h,t,r,a,n)}async function Rn(e,t,r,a,n,o,i=0){let{request:l}=e;if(l.signal.aborted)throw l.signal.reason??new Error(`Request aborted: ${l.method} ${l.url}`);let s=t[i];if(!s)return await r();let[u,h]=s,d,y=async()=>{if(d)throw new Error("You may only call `next()` once per middleware");try{return d={value:await Rn(e,t,r,a,n,o,i+1)},d.value}catch(f){return d={value:await o(f,u,d)},d.value}};try{let f=await h(e,y),p=f!=null?a(f):void 0;return n(p)?p:d?p??d.value:(d={value:await y()},d.value)}catch(f){return await o(f,u,d)}}function Sn(e,t,r,a,n){let o=_r({key:"middleware",route:a.route,manifest:t,mapRouteProperties:e}),i=Mi(a.route,oe(r.method)?"action":"loader",t,e,n);return{middleware:o,route:i.lazyRoutePromise,handler:i.lazyHandlerPromise}}function xt(e,t,r,a,n,o,i,l,s=null,u){let h=!1,d=Sn(e,t,r,n,o);return{...n,_lazyPromises:d,shouldLoad:l,shouldRevalidateArgs:s,shouldCallHandler(y){return h=!0,s?typeof u=="boolean"?St(n,{...s,defaultShouldRevalidate:u}):typeof y=="boolean"?St(n,{...s,defaultShouldRevalidate:y}):St(n,s):l},resolve(y){let{lazy:f,loader:p,middleware:b}=n.route,w=h||l||y&&!oe(r.method)&&(f||p),S=b&&b.length>0&&!p&&!f;return w&&(oe(r.method)||!S)?Ni({request:r,unstable_pattern:a,match:n,lazyHandlerPromise:d?.handler,lazyRoutePromise:d?.route,handlerOverride:y,scopedContext:i}):Promise.resolve({type:"data",result:void 0})}}}function Be(e,t,r,a,n,o,i,l=null){return a.map(s=>s.route.id!==n.route.id?{...s,shouldLoad:!1,shouldRevalidateArgs:l,shouldCallHandler:()=>!1,_lazyPromises:Sn(e,t,r,s,o),resolve:()=>Promise.resolve({type:"data",result:void 0})}:xt(e,t,r,_e(a),s,o,i,!0,l))}async function Pn(e,t,r,a,n,o){r.some(u=>u._lazyPromises?.middleware)&&await Promise.all(r.map(u=>u._lazyPromises?.middleware));let i={request:t,unstable_pattern:_e(r),params:r[0].params,context:n,matches:r},s=await e({...i,fetcherKey:a,runClientMiddleware:o?()=>{throw new Error("You cannot call `runClientMiddleware()` from a static handler `dataStrategy`. Middleware is run outside of `dataStrategy` during SSR in order to bubble up the Response. You can enable middleware via the `respond` API in `query`/`queryRoute`")}:u=>{let h=i;return bn(h,()=>u({...h,fetcherKey:a,runClientMiddleware:()=>{throw new Error("Cannot call `runClientMiddleware()` from within an `runClientMiddleware` handler")}}))}});try{await Promise.all(r.flatMap(u=>[u._lazyPromises?.handler,u._lazyPromises?.route]))}catch{}return s}async function Ni({request:e,unstable_pattern:t,match:r,lazyHandlerPromise:a,lazyRoutePromise:n,handlerOverride:o,scopedContext:i}){let l,s,u=oe(e.method),h=u?"action":"loader",d=y=>{let f,p=new Promise((S,E)=>f=E);s=()=>f(),e.signal.addEventListener("abort",s);let b=S=>typeof y!="function"?Promise.reject(new Error(`You cannot call the handler for a route which defines a boolean "${h}" [routeId: ${r.route.id}]`)):y({request:e,unstable_pattern:t,params:r.params,context:i},...S!==void 0?[S]:[]),w=(async()=>{try{return{type:"data",result:await(o?o(E=>b(E)):b())}}catch(S){return{type:"error",result:S}}})();return Promise.race([w,p])};try{let y=u?r.route.action:r.route.loader;if(a||n)if(y){let f,[p]=await Promise.all([d(y).catch(b=>{f=b}),a,n]);if(f!==void 0)throw f;l=p}else{await a;let f=u?r.route.action:r.route.loader;if(f)[l]=await Promise.all([d(f),n]);else if(h==="action"){let p=new URL(e.url),b=p.pathname+p.search;throw ee(405,{method:e.method,pathname:b,routeId:r.route.id})}else return{type:"data",result:void 0}}else if(y)l=await d(y);else{let f=new URL(e.url),p=f.pathname+f.search;throw ee(404,{pathname:p})}}catch(y){return{type:"error",result:y}}finally{s&&e.signal.removeEventListener("abort",s)}return l}async function xn(e){let t=e.headers.get("Content-Type");return t&&/\bapplication\/json\b/.test(t)?e.body==null?null:e.json():e.text()}async function Cn(e){let{result:t,type:r}=e;if(se(t)){let a;try{a=await xn(t)}catch(n){return{type:"error",error:n}}return r==="error"?{type:"error",error:new Te(t.status,t.statusText,a),statusCode:t.status,headers:t.headers}:{type:"data",data:a,statusCode:t.status,headers:t.headers}}return r==="error"?qe(t)?t.data instanceof Error?{type:"error",error:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"error",error:Mn(t),statusCode:xe(t)?t.status:void 0,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"error",error:t,statusCode:xe(t)?t.status:void 0}:qe(t)?{type:"data",data:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"data",data:t}}function Ln(e,t,r,a,n){let o=e.headers.get("Location");if(I(o,"Redirects returned/thrown from loaders/actions must have a Location header"),!Kt(o)){let i=a.slice(0,a.findIndex(l=>l.route.id===r)+1);o=pr(new URL(t.url),i,n,o),e.headers.set("Location",o)}return e}function $a(e,t,r){if(Kt(e)){let a=e,n=a.startsWith("//")?new URL(t.protocol+a):new URL(a),o=fe(n.pathname,r)!=null;if(n.origin===t.origin&&o)return n.pathname+n.search+n.hash}return e}function ot(e,t,r,a){let n=e.createURL(On(t)).toString(),o={signal:r};if(a&&oe(a.formMethod)){let{formMethod:i,formEncType:l}=a;o.method=i.toUpperCase(),l==="application/json"?(o.headers=new Headers({"Content-Type":l}),o.body=JSON.stringify(a.json)):l==="text/plain"?o.body=a.text:l==="application/x-www-form-urlencoded"&&a.formData?o.body=gr(a.formData):o.body=a.formData}return new Request(n,o)}function gr(e){let t=new URLSearchParams;for(let[r,a]of e.entries())t.append(r,typeof a=="string"?a:a.name);return t}function Na(e){let t=new FormData;for(let[r,a]of e.entries())t.append(r,a);return t}function Dn(e,t,r,a=!1,n=!1){let o={},i=null,l,s=!1,u={},h=r&&ae(r[1])?r[1].error:void 0;return e.forEach(d=>{if(!(d.route.id in t))return;let y=d.route.id,f=t[y];if(I(!ze(f),"Cannot handle redirect results in processLoaderData"),ae(f)){let p=f.error;if(h!==void 0&&(p=h,h=void 0),i=i||{},n)i[y]=p;else{let b=Pe(e,y);i[b.route.id]==null&&(i[b.route.id]=p)}a||(o[y]=gn),s||(s=!0,l=xe(f.error)?f.error.status:500),f.headers&&(u[y]=f.headers)}else o[y]=f.data,f.statusCode&&f.statusCode!==200&&!s&&(l=f.statusCode),f.headers&&(u[y]=f.headers)}),h!==void 0&&r&&(i={[r[0]]:h},r[2]&&(o[r[2]]=void 0)),{loaderData:o,errors:i,statusCode:l||200,loaderHeaders:u}}function Fa(e,t,r,a,n,o){let{loaderData:i,errors:l}=Dn(t,r,a);return n.filter(s=>!s.matches||s.matches.some(u=>u.shouldLoad)).forEach(s=>{let{key:u,match:h,controller:d}=s;if(d&&d.signal.aborted)return;let y=o[u];if(I(y,"Did not find corresponding fetcher result"),ae(y)){let f=Pe(e.matches,h?.route.id);l&&l[f.route.id]||(l={...l,[f.route.id]:y.error}),e.fetchers.delete(u)}else if(ze(y))I(!1,"Unhandled fetcher revalidation redirect");else{let f=ke(y.data);e.fetchers.set(u,f)}}),{loaderData:i,errors:l}}function ka(e,t,r,a){let n=Object.entries(t).filter(([,o])=>o!==gn).reduce((o,[i,l])=>(o[i]=l,o),{});for(let o of r){let i=o.route.id;if(!t.hasOwnProperty(i)&&e.hasOwnProperty(i)&&o.route.loader&&(n[i]=e[i]),a&&a.hasOwnProperty(i))break}return n}function _a(e){return e?ae(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function Pe(e,t){return(t?e.slice(0,e.findIndex(a=>a.route.id===t)+1):[...e]).reverse().find(a=>a.route.hasErrorBoundary===!0)||e[0]}function lt(e){let t=e.length===1?e[0]:e.find(r=>r.index||!r.path||r.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function ee(e,{pathname:t,routeId:r,method:a,type:n,message:o}={}){let i="Unknown Server Error",l="Unknown @remix-run/router error";return e===400?(i="Bad Request",a&&t&&r?l=`You made a ${a} request to "${t}" but did not provide a \`loader\` for route "${r}", so there is no way to handle the request.`:n==="invalid-body"&&(l="Unable to encode submission body")):e===403?(i="Forbidden",l=`Route "${r}" does not match URL "${t}"`):e===404?(i="Not Found",l=`No route matches URL "${t}"`):e===405&&(i="Method Not Allowed",a&&t&&r?l=`You made a ${a.toUpperCase()} request to "${t}" but did not provide an \`action\` for route "${r}", so there is no way to handle the request.`:a&&(l=`Invalid request method "${a.toUpperCase()}"`)),new Te(e||500,i,new Error(l),!0)}function _t(e){let t=Object.entries(e);for(let r=t.length-1;r>=0;r--){let[a,n]=t[r];if(ze(n))return{key:a,result:n}}}function On(e){let t=typeof e=="string"?Ce(e):e;return ce({...t,hash:""})}function Fi(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function wr(e){return Response.json(e.data,e.init??void 0)}function Mn(e){return new Te(e.init?.status??500,e.init?.statusText??"Internal Server Error",e.data)}function ki(e){return e!=null&&typeof e=="object"&&Object.entries(e).every(([t,r])=>typeof t=="string"&&Tn(r))}function Tn(e){return e!=null&&typeof e=="object"&&"type"in e&&"result"in e&&(e.type==="data"||e.type==="error")}function $n(e){return se(e.result)&&pn.has(e.result.status)}function ae(e){return e.type==="error"}function ze(e){return(e&&e.type)==="redirect"}function qe(e){return typeof e=="object"&&e!=null&&"type"in e&&"data"in e&&"init"in e&&e.type==="DataWithResponseInit"}function se(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function _i(e){return pn.has(e)}function br(e){return se(e)&&_i(e.status)&&e.headers.has("Location")}function Er(e){return Si.has(e.toUpperCase())}function oe(e){return Ei.has(e.toUpperCase())}function Ir(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function st(e,t){let r=typeof t=="string"?Ce(t).search:t.search;if(e[e.length-1].route.index&&Ir(r||""))return e[e.length-1];let a=ln(e);return a[a.length-1]}function Ia(e){let{formMethod:t,formAction:r,formEncType:a,text:n,formData:o,json:i}=e;if(!(!t||!r||!a)){if(n!=null)return{formMethod:t,formAction:r,formEncType:a,formData:void 0,json:void 0,text:n};if(o!=null)return{formMethod:t,formAction:r,formEncType:a,formData:o,json:void 0,text:void 0};if(i!==void 0)return{formMethod:t,formAction:r,formEncType:a,formData:void 0,json:i,text:void 0}}}function ur(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function Ii(e,t){return{state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}function wt(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function Ai(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}function ke(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function ji(e,t){try{let r=e.sessionStorage.getItem(vn);if(r){let a=JSON.parse(r);for(let[n,o]of Object.entries(a||{}))o&&Array.isArray(o)&&t.set(n,new Set(o||[]))}}catch{}}function Hi(e,t){if(t.size>0){let r={};for(let[a,n]of t)r[a]=[...n];try{e.sessionStorage.setItem(vn,JSON.stringify(r))}catch(a){Q(!1,`Failed to save applied view transitions in sessionStorage (${a}).`)}}}function Aa(){let e,t,r=new Promise((a,n)=>{e=async o=>{a(o);try{await r}catch{}},t=async o=>{n(o);try{await r}catch{}}});return{promise:r,resolve:e,reject:t}}var Ae=c.createContext(null);Ae.displayName="DataRouter";var We=c.createContext(null);We.displayName="DataRouterState";var Nn=c.createContext(!1);function Fn(){return c.useContext(Nn)}var Qt=c.createContext({isTransitioning:!1});Qt.displayName="ViewTransition";var Zt=c.createContext(new Map);Zt.displayName="Fetchers";var dt=c.createContext(null);dt.displayName="Await";var zs=e=>c.createElement(dt.Provider,e),he=c.createContext(null);he.displayName="Navigation";var ft=c.createContext(null);ft.displayName="Location";var ve=c.createContext({outlet:null,matches:[],isDataRoute:!1});ve.displayName="Route";var Ar=c.createContext(null);Ar.displayName="RouteError";var kn="REACT_ROUTER_ERROR",Ui="REDIRECT",zi="ROUTE_ERROR_RESPONSE";function Bi(e){if(e.startsWith(`${kn}:${Ui}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.location=="string"&&typeof t.reloadDocument=="boolean"&&typeof t.replace=="boolean")return t}catch{}}function Wi(e){if(e.startsWith(`${kn}:${zi}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string")return new Te(t.status,t.statusText,t.data)}catch{}}function Yi(e,{relative:t}={}){I(tt(),"useHref() may be used only in the context of a <Router> component.");let{basename:r,navigator:a}=c.useContext(he),{hash:n,pathname:o,search:i}=Lt(e,{relative:t}),l=o;return r!=="/"&&(l=o==="/"?r:Me([r,o])),a.createHref({pathname:l,search:i,hash:n})}function tt(){return c.useContext(ft)!=null}function ge(){return I(tt(),"useLocation() may be used only in the context of a <Router> component."),c.useContext(ft).location}function Bs(){return c.useContext(ft).navigationType}function Ws(e){I(tt(),"useMatch() may be used only in the context of a <Router> component.");let{pathname:t}=ge();return c.useMemo(()=>Pt(e,nn(t)),[t,e])}var _n="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function In(e){c.useContext(he).static||c.useLayoutEffect(e)}function jr(){let{isDataRoute:e}=c.useContext(ve);return e?ol():Ji()}function Ji(){I(tt(),"useNavigate() may be used only in the context of a <Router> component.");let e=c.useContext(Ae),{basename:t,navigator:r}=c.useContext(he),{matches:a}=c.useContext(ve),{pathname:n}=ge(),o=JSON.stringify(Gt(a)),i=c.useRef(!1);return In(()=>{i.current=!0}),c.useCallback((s,u={})=>{if(Q(i.current,_n),!i.current)return;if(typeof s=="number"){r.go(s);return}let h=Xt(s,JSON.parse(o),n,u.relative==="path");e==null&&t!=="/"&&(h.pathname=h.pathname==="/"?t:Me([t,h.pathname])),(u.replace?r.replace:r.push)(h,u.state,u)},[t,r,o,n,e])}var An=c.createContext(null);function Ys(){return c.useContext(An)}function Vi(e){let t=c.useContext(ve).outlet;return c.useMemo(()=>t&&c.createElement(An.Provider,{value:e},t),[t,e])}function Hr(){let{matches:e}=c.useContext(ve),t=e[e.length-1];return t?t.params:{}}function Lt(e,{relative:t}={}){let{matches:r}=c.useContext(ve),{pathname:a}=ge(),n=JSON.stringify(Gt(r));return c.useMemo(()=>Xt(e,JSON.parse(n),a,t==="path"),[e,n,a,t])}function Ki(e,t){return Ur(e,t)}function Ur(e,t,r,a,n){I(tt(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:o}=c.useContext(he),{matches:i}=c.useContext(ve),l=i[i.length-1],s=l?l.params:{},u=l?l.pathname:"/",h=l?l.pathnameBase:"/",d=l&&l.route;{let E=d&&d.path||"";Un(u,!d||E.endsWith("*")||E.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${u}" (under <Route path="${E}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
|
|
3
|
+
|
|
4
|
+
Please change the parent <Route path="${E}"> to <Route path="${E==="/"?"*":`${E}/*`}">.`)}let y=ge(),f;if(t){let E=typeof t=="string"?Ce(t):t;I(h==="/"||E.pathname?.startsWith(h),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${h}" but pathname "${E.pathname}" was given in the \`location\` prop.`),f=E}else f=y;let p=f.pathname||"/",b=p;if(h!=="/"){let E=h.replace(/^\//,"").split("/");b="/"+p.replace(/^\//,"").split("/").slice(E.length).join("/")}let w=De(e,{pathname:b});Q(d||w!=null,`No routes matched location "${f.pathname}${f.search}${f.hash}" `),Q(w==null||w[w.length-1].route.element!==void 0||w[w.length-1].route.Component!==void 0||w[w.length-1].route.lazy!==void 0,`Matched leaf route at location "${f.pathname}${f.search}${f.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let S=Hn(w&&w.map(E=>Object.assign({},E,{params:Object.assign({},s,E.params),pathname:Me([h,o.encodeLocation?o.encodeLocation(E.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:E.pathname]),pathnameBase:E.pathnameBase==="/"?h:Me([h,o.encodeLocation?o.encodeLocation(E.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:E.pathnameBase])})),i,r,a,n);return t&&S?c.createElement(ft.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...f},navigationType:"POP"}},S):S}function Gi(){let e=Vr(),t=xe(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,a="rgba(200,200,200, 0.5)",n={padding:"0.5rem",backgroundColor:a},o={padding:"2px 4px",backgroundColor:a},i=null;return console.error("Error handled by React Router default ErrorBoundary:",e),i=c.createElement(c.Fragment,null,c.createElement("p",null,"💿 Hey developer 👋"),c.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",c.createElement("code",{style:o},"ErrorBoundary")," or"," ",c.createElement("code",{style:o},"errorElement")," prop on your route.")),c.createElement(c.Fragment,null,c.createElement("h2",null,"Unexpected Application Error!"),c.createElement("h3",{style:{fontStyle:"italic"}},t),r?c.createElement("pre",{style:n},r):null,i)}var Xi=c.createElement(Gi,null),jn=class extends c.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){let e=this.state.error;if(this.context&&typeof e=="object"&&e&&"digest"in e&&typeof e.digest=="string"){const r=Wi(e.digest);r&&(e=r)}let t=e!==void 0?c.createElement(ve.Provider,{value:this.props.routeContext},c.createElement(Ar.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?c.createElement(Qi,{error:e},t):t}};jn.contextType=Nn;var cr=new WeakMap;function Qi({children:e,error:t}){let{basename:r}=c.useContext(he);if(typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){let a=Bi(t.digest);if(a){let n=cr.get(t);if(n)throw n;let o=un(a.location,r);if(sn&&!cr.get(t))if(o.isExternal||a.reloadDocument)window.location.href=o.absoluteURL||o.to;else{const i=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(o.to,{replace:a.replace}));throw cr.set(t,i),i}return c.createElement("meta",{httpEquiv:"refresh",content:`0;url=${o.absoluteURL||o.to}`})}}return e}function Zi({routeContext:e,match:t,children:r}){let a=c.useContext(Ae);return a&&a.static&&a.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=t.route.id),c.createElement(ve.Provider,{value:e},r)}function Hn(e,t=[],r=null,a=null,n=null){if(e==null){if(!r)return null;if(r.errors)e=r.matches;else if(t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let o=e,i=r?.errors;if(i!=null){let h=o.findIndex(d=>d.route.id&&i?.[d.route.id]!==void 0);I(h>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(i).join(",")}`),o=o.slice(0,Math.min(o.length,h+1))}let l=!1,s=-1;if(r)for(let h=0;h<o.length;h++){let d=o[h];if((d.route.HydrateFallback||d.route.hydrateFallbackElement)&&(s=h),d.route.id){let{loaderData:y,errors:f}=r,p=d.route.loader&&!y.hasOwnProperty(d.route.id)&&(!f||f[d.route.id]===void 0);if(d.route.lazy||p){l=!0,s>=0?o=o.slice(0,s+1):o=[o[0]];break}}}let u=r&&a?(h,d)=>{a(h,{location:r.location,params:r.matches?.[0]?.params??{},unstable_pattern:_e(r.matches),errorInfo:d})}:void 0;return o.reduceRight((h,d,y)=>{let f,p=!1,b=null,w=null;r&&(f=i&&d.route.id?i[d.route.id]:void 0,b=d.route.errorElement||Xi,l&&(s<0&&y===0?(Un("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),p=!0,w=null):s===y&&(p=!0,w=d.route.hydrateFallbackElement||null)));let S=t.concat(o.slice(0,y+1)),E=()=>{let C;return f?C=b:p?C=w:d.route.Component?C=c.createElement(d.route.Component,null):d.route.element?C=d.route.element:C=h,c.createElement(Zi,{match:d,routeContext:{outlet:h,matches:S,isDataRoute:r!=null},children:C})};return r&&(d.route.ErrorBoundary||d.route.errorElement||y===0)?c.createElement(jn,{location:r.location,revalidation:r.revalidation,component:b,error:f,children:E(),routeContext:{outlet:null,matches:S,isDataRoute:!0},onError:u}):E()},null)}function zr(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Br(e){let t=c.useContext(Ae);return I(t,zr(e)),t}function je(e){let t=c.useContext(We);return I(t,zr(e)),t}function qi(e){let t=c.useContext(ve);return I(t,zr(e)),t}function ht(e){let t=qi(e),r=t.matches[t.matches.length-1];return I(r.route.id,`${e} can only be used on routes that contain a unique "id"`),r.route.id}function el(){return ht("useRouteId")}function tl(){return je("useNavigation").navigation}function Js(){let e=Br("useRevalidator"),t=je("useRevalidator"),r=c.useCallback(async()=>{await e.router.revalidate()},[e.router]);return c.useMemo(()=>({revalidate:r,state:t.revalidation}),[r,t.revalidation])}function Wr(){let{matches:e,loaderData:t}=je("useMatches");return c.useMemo(()=>e.map(r=>en(r,t)),[e,t])}function Yr(){let e=je("useLoaderData"),t=ht("useLoaderData");return e.loaderData[t]}function Vs(e){return je("useRouteLoaderData").loaderData[e]}function Jr(){let e=je("useActionData"),t=ht("useLoaderData");return e.actionData?e.actionData[t]:void 0}function Vr(){let e=c.useContext(Ar),t=je("useRouteError"),r=ht("useRouteError");return e!==void 0?e:t.errors?.[r]}function rl(){return c.useContext(dt)?._data}function Ks(){return c.useContext(dt)?._error}var al=0;function nl(e){let{router:t,basename:r}=Br("useBlocker"),a=je("useBlocker"),[n,o]=c.useState(""),i=c.useCallback(l=>{if(typeof e!="function")return!!e;if(r==="/")return e(l);let{currentLocation:s,nextLocation:u,historyAction:h}=l;return e({currentLocation:{...s,pathname:fe(s.pathname,r)||s.pathname},nextLocation:{...u,pathname:fe(u.pathname,r)||u.pathname},historyAction:h})},[r,e]);return c.useEffect(()=>{let l=String(++al);return o(l),()=>t.deleteBlocker(l)},[t]),c.useEffect(()=>{n!==""&&t.getBlocker(n,i)},[t,n,i]),n&&a.blockers.has(n)?a.blockers.get(n):Qe}function ol(){let{router:e}=Br("useNavigate"),t=ht("useNavigate"),r=c.useRef(!1);return In(()=>{r.current=!0}),c.useCallback(async(n,o={})=>{Q(r.current,_n),r.current&&(typeof n=="number"?await e.navigate(n):await e.navigate(n,{fromRouteId:t,...o}))},[e,t])}var ja={};function Un(e,t,r){!t&&!ja[e]&&(ja[e]=!0,Q(!1,r))}function Gs(...e){const t=ht("useRoute"),r=e[0]??t,a=je("useRoute"),n=a.matches.find(({route:o})=>o.id===r);if(n!==void 0)return{handle:n.route.handle,loaderData:a.loaderData[r],actionData:a.actionData?.[r]}}var Ha={};function Rr(e,t){!e&&!Ha[t]&&(Ha[t]=!0,console.warn(t))}var il="useOptimistic",Ua=Yo[il],ll=()=>{};function sl(e){return Ua?Ua(e):[e,ll]}function Dt(e){let t={hasErrorBoundary:e.hasErrorBoundary||e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&(e.element&&Q(!1,"You should not include both `Component` and `element` on your route - `Component` will be used."),Object.assign(t,{element:c.createElement(e.Component),Component:void 0})),e.HydrateFallback&&(e.hydrateFallbackElement&&Q(!1,"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - `HydrateFallback` will be used."),Object.assign(t,{hydrateFallbackElement:c.createElement(e.HydrateFallback),HydrateFallback:void 0})),e.ErrorBoundary&&(e.errorElement&&Q(!1,"You should not include both `ErrorBoundary` and `errorElement` on your route - `ErrorBoundary` will be used."),Object.assign(t,{errorElement:c.createElement(e.ErrorBoundary),ErrorBoundary:void 0})),t}var Kr=["HydrateFallback","hydrateFallbackElement"];function Xs(e,t){return Fr({basename:t?.basename,getContext:t?.getContext,future:t?.future,history:Ga({initialEntries:t?.initialEntries,initialIndex:t?.initialIndex}),hydrationData:t?.hydrationData,routes:e,hydrationRouteProperties:Kr,mapRouteProperties:Dt,dataStrategy:t?.dataStrategy,patchRoutesOnNavigation:t?.patchRoutesOnNavigation,unstable_instrumentations:t?.unstable_instrumentations}).initialize()}var ul=class{constructor(){this.status="pending",this.promise=new Promise((e,t)=>{this.resolve=r=>{this.status==="pending"&&(this.status="resolved",e(r))},this.reject=r=>{this.status==="pending"&&(this.status="rejected",t(r))}})}};function Qs({router:e,flushSync:t,onError:r,unstable_useTransitions:a}){a=Fn()||a;let[o,i]=c.useState(e.state),[l,s]=sl(o),[u,h]=c.useState(),[d,y]=c.useState({isTransitioning:!1}),[f,p]=c.useState(),[b,w]=c.useState(),[S,E]=c.useState(),C=c.useRef(new Map),L=c.useCallback((T,{deletedFetchers:M,newErrors:j,flushSync:$,viewTransitionOpts:z})=>{j&&r&&Object.values(j).forEach(Z=>r(Z,{location:T.location,params:T.matches[0]?.params??{},unstable_pattern:_e(T.matches)})),T.fetchers.forEach((Z,W)=>{Z.data!==void 0&&C.current.set(W,Z.data)}),M.forEach(Z=>C.current.delete(Z)),Rr($===!1||t!=null,'You provided the `flushSync` option to a router update, but you are not using the `<RouterProvider>` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable. Please update your app to `import { RouterProvider } from "react-router/dom"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.');let V=e.window!=null&&e.window.document!=null&&typeof e.window.document.startViewTransition=="function";if(Rr(z==null||V,"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available."),!z||!V){t&&$?t(()=>i(T)):a===!1?i(T):c.startTransition(()=>{a===!0&&s(Z=>za(Z,T)),i(T)});return}if(t&&$){t(()=>{b&&(f?.resolve(),b.skipTransition()),y({isTransitioning:!0,flushSync:!0,currentLocation:z.currentLocation,nextLocation:z.nextLocation})});let Z=e.window.document.startViewTransition(()=>{t(()=>i(T))});Z.finished.finally(()=>{t(()=>{p(void 0),w(void 0),h(void 0),y({isTransitioning:!1})})}),t(()=>w(Z));return}b?(f?.resolve(),b.skipTransition(),E({state:T,currentLocation:z.currentLocation,nextLocation:z.nextLocation})):(h(T),y({isTransitioning:!0,flushSync:!1,currentLocation:z.currentLocation,nextLocation:z.nextLocation}))},[e.window,t,b,f,a,s,r]);c.useLayoutEffect(()=>e.subscribe(L),[e,L]),c.useEffect(()=>{d.isTransitioning&&!d.flushSync&&p(new ul)},[d]),c.useEffect(()=>{if(f&&u&&e.window){let T=u,M=f.promise,j=e.window.document.startViewTransition(async()=>{a===!1?i(T):c.startTransition(()=>{a===!0&&s($=>za($,T)),i(T)}),await M});j.finished.finally(()=>{p(void 0),w(void 0),h(void 0),y({isTransitioning:!1})}),w(j)}},[u,f,e.window,a,s]),c.useEffect(()=>{f&&u&&l.location.key===u.location.key&&f.resolve()},[f,b,l.location,u]),c.useEffect(()=>{!d.isTransitioning&&S&&(h(S.state),y({isTransitioning:!0,flushSync:!1,currentLocation:S.currentLocation,nextLocation:S.nextLocation}),E(void 0))},[d.isTransitioning,S]);let x=c.useMemo(()=>({createHref:e.createHref,encodeLocation:e.encodeLocation,go:T=>e.navigate(T),push:(T,M,j)=>e.navigate(T,{state:M,preventScrollReset:j?.preventScrollReset}),replace:(T,M,j)=>e.navigate(T,{replace:!0,state:M,preventScrollReset:j?.preventScrollReset})}),[e]),P=e.basename||"/",g=c.useMemo(()=>({router:e,navigator:x,static:!1,basename:P,onError:r}),[e,x,P,r]);return c.createElement(c.Fragment,null,c.createElement(Ae.Provider,{value:g},c.createElement(We.Provider,{value:l},c.createElement(Zt.Provider,{value:C.current},c.createElement(Qt.Provider,{value:d},c.createElement(rt,{basename:P,location:l.location,navigationType:l.historyAction,navigator:x,unstable_useTransitions:a},c.createElement(cl,{routes:e.routes,future:e.future,state:l,onError:r})))))),null)}function za(e,t){return{...e,navigation:t.navigation.state!=="idle"?t.navigation:e.navigation,revalidation:t.revalidation!=="idle"?t.revalidation:e.revalidation,actionData:t.navigation.state!=="submitting"?t.actionData:e.actionData,fetchers:t.fetchers}}var cl=c.memo(dl);function dl({routes:e,future:t,state:r,onError:a}){return Ur(e,void 0,r,a,t)}function Zs({basename:e,children:t,initialEntries:r,initialIndex:a,unstable_useTransitions:n}){let o=c.useRef();o.current==null&&(o.current=Ga({initialEntries:r,initialIndex:a,v5Compat:!0}));let i=o.current,[l,s]=c.useState({action:i.action,location:i.location}),u=c.useCallback(h=>{n===!1?s(h):c.startTransition(()=>s(h))},[n]);return c.useLayoutEffect(()=>i.listen(u),[i,u]),c.createElement(rt,{basename:e,children:t,location:l.location,navigationType:l.action,navigator:i,unstable_useTransitions:n})}function qs({to:e,replace:t,state:r,relative:a}){I(tt(),"<Navigate> may be used only in the context of a <Router> component.");let{static:n}=c.useContext(he);Q(!n,"<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.");let{matches:o}=c.useContext(ve),{pathname:i}=ge(),l=jr(),s=Xt(e,Gt(o),i,a==="path"),u=JSON.stringify(s);return c.useEffect(()=>{l(JSON.parse(u),{replace:t,state:r,relative:a})},[l,u,a,t,r]),null}function eu(e){return Vi(e.context)}function fl(e){I(!1,"A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.")}function rt({basename:e="/",children:t=null,location:r,navigationType:a="POP",navigator:n,static:o=!1,unstable_useTransitions:i}){I(!tt(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let l=e.replace(/^\/*/,"/"),s=c.useMemo(()=>({basename:l,navigator:n,static:o,unstable_useTransitions:i,future:{}}),[l,n,o,i]);typeof r=="string"&&(r=Ce(r));let{pathname:u="/",search:h="",hash:d="",state:y=null,key:f="default"}=r,p=c.useMemo(()=>{let b=fe(u,l);return b==null?null:{location:{pathname:b,search:h,hash:d,state:y,key:f},navigationType:a}},[l,u,h,d,y,f,a]);return Q(p!=null,`<Router basename="${l}"> is not able to match the URL "${u}${h}${d}" because it does not start with the basename, so the <Router> won't render anything.`),p==null?null:c.createElement(he.Provider,{value:s},c.createElement(ft.Provider,{children:t,value:p}))}function tu({children:e,location:t}){return Ki(Yt(e),t)}function ru({children:e,errorElement:t,resolve:r}){let a=c.useContext(Ae),n=c.useContext(We),o=c.useCallback((i,l)=>{a&&a.onError&&n&&a.onError(i,{location:n.location,params:n.matches[0]?.params||{},unstable_pattern:_e(n.matches),errorInfo:l})},[a,n]);return c.createElement(hl,{resolve:r,errorElement:t,onError:o},c.createElement(ml,null,e))}var hl=class extends c.Component{constructor(e){super(e),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("<Await> caught the following error during render",e,t)}render(){let{children:e,errorElement:t,resolve:r}=this.props,a=null,n=0;if(!(r instanceof Promise))n=1,a=Promise.resolve(),Object.defineProperty(a,"_tracked",{get:()=>!0}),Object.defineProperty(a,"_data",{get:()=>r});else if(this.state.error){n=2;let o=this.state.error;a=Promise.reject().catch(()=>{}),Object.defineProperty(a,"_tracked",{get:()=>!0}),Object.defineProperty(a,"_error",{get:()=>o})}else r._tracked?(a=r,n="_error"in a?2:"_data"in a?1:0):(n=0,Object.defineProperty(r,"_tracked",{get:()=>!0}),a=r.then(o=>Object.defineProperty(r,"_data",{get:()=>o}),o=>{this.props.onError?.(o),Object.defineProperty(r,"_error",{get:()=>o})}));if(n===2&&!t)throw a._error;if(n===2)return c.createElement(dt.Provider,{value:a,children:t});if(n===1)return c.createElement(dt.Provider,{value:a,children:e});throw a}};function ml({children:e}){let t=rl(),r=typeof e=="function"?e(t):e;return c.createElement(c.Fragment,null,r)}function Yt(e,t=[]){let r=[];return c.Children.forEach(e,(a,n)=>{if(!c.isValidElement(a))return;let o=[...t,n];if(a.type===c.Fragment){r.push.apply(r,Yt(a.props.children,o));return}I(a.type===fl,`[${typeof a.type=="string"?a.type:a.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),I(!a.props.index||!a.props.children,"An index route cannot have child routes.");let i={id:a.props.id||o.join("-"),caseSensitive:a.props.caseSensitive,element:a.props.element,Component:a.props.Component,index:a.props.index,path:a.props.path,middleware:a.props.middleware,loader:a.props.loader,action:a.props.action,hydrateFallbackElement:a.props.hydrateFallbackElement,HydrateFallback:a.props.HydrateFallback,errorElement:a.props.errorElement,ErrorBoundary:a.props.ErrorBoundary,hasErrorBoundary:a.props.hasErrorBoundary===!0||a.props.ErrorBoundary!=null||a.props.errorElement!=null,shouldRevalidate:a.props.shouldRevalidate,handle:a.props.handle,lazy:a.props.lazy};a.props.children&&(i.children=Yt(a.props.children,o)),r.push(i)}),r}var au=Yt;function nu(e){return Hn(e)}function zn(){return{params:Hr(),loaderData:Yr(),actionData:Jr(),matches:Wr()}}function ou({children:e}){const t=zn();return c.cloneElement(e,t)}function iu(e){return function(){const r=zn();return c.createElement(e,r)}}function Bn(){return{params:Hr(),loaderData:Yr(),actionData:Jr()}}function lu({children:e}){const t=Bn();return c.cloneElement(e,t)}function su(e){return function(){const r=Bn();return c.createElement(e,r)}}function Wn(){return{params:Hr(),loaderData:Yr(),actionData:Jr(),error:Vr()}}function uu({children:e}){const t=Wn();return c.cloneElement(e,t)}function cu(e){return function(){const r=Wn();return c.createElement(e,r)}}var zt="get",Bt="application/x-www-form-urlencoded";function qt(e){return typeof HTMLElement<"u"&&e instanceof HTMLElement}function pl(e){return qt(e)&&e.tagName.toLowerCase()==="button"}function yl(e){return qt(e)&&e.tagName.toLowerCase()==="form"}function vl(e){return qt(e)&&e.tagName.toLowerCase()==="input"}function gl(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function wl(e,t){return e.button===0&&(!t||t==="_self")&&!gl(e)}function Sr(e=""){return new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,r)=>{let a=e[r];return t.concat(Array.isArray(a)?a.map(n=>[r,n]):[[r,a]])},[]))}function bl(e,t){let r=Sr(e);return t&&t.forEach((a,n)=>{r.has(n)||t.getAll(n).forEach(o=>{r.append(n,o)})}),r}var It=null;function El(){if(It===null)try{new FormData(document.createElement("form"),0),It=!1}catch{It=!0}return It}var Rl=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function dr(e){return e!=null&&!Rl.has(e)?(Q(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Bt}"`),null):e}function Sl(e,t){let r,a,n,o,i;if(yl(e)){let l=e.getAttribute("action");a=l?fe(l,t):null,r=e.getAttribute("method")||zt,n=dr(e.getAttribute("enctype"))||Bt,o=new FormData(e)}else if(pl(e)||vl(e)&&(e.type==="submit"||e.type==="image")){let l=e.form;if(l==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let s=e.getAttribute("formaction")||l.getAttribute("action");if(a=s?fe(s,t):null,r=e.getAttribute("formmethod")||l.getAttribute("method")||zt,n=dr(e.getAttribute("formenctype"))||dr(l.getAttribute("enctype"))||Bt,o=new FormData(l,e),!El()){let{name:u,type:h,value:d}=e;if(h==="image"){let y=u?`${u}.`:"";o.append(`${y}x`,"0"),o.append(`${y}y`,"0")}else u&&o.append(u,d)}}else{if(qt(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');r=zt,a=null,n=Bt,i=e}return o&&n==="text/plain"&&(i=o,o=void 0),{action:a,method:r.toLowerCase(),encType:n,formData:o,body:i}}var Yn=-1,Jn=-2,Vn=-3,Kn=-4,Gr=-5,Gn=-6,Xn=-7,Qn="B",Zn="D",ut="E",Pr="M",qn="N",ct="P",eo="R",xr="S",to="Y",ro="U",Cr="Z",ao=class{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}};function Pl(){const e=new TextDecoder;let t="";return new TransformStream({transform(r,a){const n=e.decode(r,{stream:!0}),o=(t+n).split(`
|
|
5
|
+
`);t=o.pop()||"";for(const i of o)a.enqueue(i)},flush(r){t&&r.enqueue(t)}})}function Se(e){const{indices:t}=this,r=t.get(e);if(r)return[r];if(e===void 0)return Xn;if(e===null)return Gr;if(Number.isNaN(e))return Jn;if(e===Number.POSITIVE_INFINITY)return Gn;if(e===Number.NEGATIVE_INFINITY)return Vn;if(e===0&&1/e<0)return Kn;const a=this.index++;return t.set(e,a),xl.call(this,e,a),a}function xl(e,t){const{deferred:r,plugins:a,postPlugins:n}=this,o=this.stringified,i=[[e,t]];for(;i.length>0;){const[l,s]=i.pop(),u=d=>Object.keys(d).map(y=>`"_${Se.call(this,y)}":${Se.call(this,d[y])}`).join(",");let h=null;switch(typeof l){case"boolean":case"number":case"string":o[s]=JSON.stringify(l);break;case"bigint":o[s]=`["${Qn}","${l}"]`;break;case"symbol":{const d=Symbol.keyFor(l);d?o[s]=`["${to}",${JSON.stringify(d)}]`:h=new Error("Cannot encode symbol unless created with Symbol.for()");break}case"object":{if(!l){o[s]=`${Gr}`;break}const d=Array.isArray(l);let y=!1;if(!d&&a)for(const f of a){const p=f(l);if(Array.isArray(p)){y=!0;const[b,...w]=p;o[s]=`[${JSON.stringify(b)}`,w.length>0&&(o[s]+=`,${w.map(S=>Se.call(this,S)).join(",")}`),o[s]+="]";break}}if(!y){let f=d?"[":"{";if(d){for(let p=0;p<l.length;p++)f+=(p?",":"")+(p in l?Se.call(this,l[p]):Yn);o[s]=`${f}]`}else if(l instanceof Date){const p=l.getTime();o[s]=`["${Zn}",${Number.isNaN(p)?JSON.stringify("invalid"):p}]`}else l instanceof URL?o[s]=`["${ro}",${JSON.stringify(l.href)}]`:l instanceof RegExp?o[s]=`["${eo}",${JSON.stringify(l.source)},${JSON.stringify(l.flags)}]`:l instanceof Set?l.size>0?o[s]=`["${xr}",${[...l].map(p=>Se.call(this,p)).join(",")}]`:o[s]=`["${xr}"]`:l instanceof Map?l.size>0?o[s]=`["${Pr}",${[...l].flatMap(([p,b])=>[Se.call(this,p),Se.call(this,b)]).join(",")}]`:o[s]=`["${Pr}"]`:l instanceof Promise?(o[s]=`["${ct}",${s}]`,r[s]=l):l instanceof Error?(o[s]=`["${ut}",${JSON.stringify(l.message)}`,l.name!=="Error"&&(o[s]+=`,${JSON.stringify(l.name)}`),o[s]+="]"):Object.getPrototypeOf(l)===null?o[s]=`["${qn}",{${u(l)}}]`:Ll(l)?o[s]=`{${u(l)}}`:h=new Error("Cannot encode object with prototype")}break}default:{const d=Array.isArray(l);let y=!1;if(!d&&a)for(const f of a){const p=f(l);if(Array.isArray(p)){y=!0;const[b,...w]=p;o[s]=`[${JSON.stringify(b)}`,w.length>0&&(o[s]+=`,${w.map(S=>Se.call(this,S)).join(",")}`),o[s]+="]";break}}y||(h=new Error("Cannot encode function or unexpected type"))}}if(h){let d=!1;if(n)for(const y of n){const f=y(l);if(Array.isArray(f)){d=!0;const[p,...b]=f;o[s]=`[${JSON.stringify(p)}`,b.length>0&&(o[s]+=`,${b.map(w=>Se.call(this,w)).join(",")}`),o[s]+="]";break}}if(!d)throw h}}}var Cl=Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function Ll(e){const t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Object.getOwnPropertyNames(t).sort().join("\0")===Cl}var fr=typeof window<"u"?window:typeof globalThis<"u"?globalThis:void 0;function Lr(e){const{hydrated:t,values:r}=this;if(typeof e=="number")return Ba.call(this,e);if(!Array.isArray(e)||!e.length)throw new SyntaxError;const a=r.length;for(const n of e)r.push(n);return t.length=r.length,Ba.call(this,a)}function Ba(e){const{hydrated:t,values:r,deferred:a,plugins:n}=this;let o;const i=[[e,s=>{o=s}]];let l=[];for(;i.length>0;){const[s,u]=i.pop();switch(s){case Xn:u(void 0);continue;case Gr:u(null);continue;case Jn:u(NaN);continue;case Gn:u(1/0);continue;case Vn:u(-1/0);continue;case Kn:u(-0);continue}if(t[s]){u(t[s]);continue}const h=r[s];if(!h||typeof h!="object"){t[s]=h,u(h);continue}if(Array.isArray(h))if(typeof h[0]=="string"){const[d,y,f]=h;switch(d){case Zn:u(t[s]=new Date(y));continue;case ro:u(t[s]=new URL(y));continue;case Qn:u(t[s]=BigInt(y));continue;case eo:u(t[s]=new RegExp(y,f));continue;case to:u(t[s]=Symbol.for(y));continue;case xr:const p=new Set;t[s]=p;for(let L=h.length-1;L>0;L--)i.push([h[L],x=>{p.add(x)}]);u(p);continue;case Pr:const b=new Map;t[s]=b;for(let L=h.length-2;L>0;L-=2){const x=[];i.push([h[L+1],P=>{x[1]=P}]),i.push([h[L],P=>{x[0]=P}]),l.push(()=>{b.set(x[0],x[1])})}u(b);continue;case qn:const w=Object.create(null);t[s]=w;for(const L of Object.keys(y).reverse()){const x=[];i.push([y[L],P=>{x[1]=P}]),i.push([Number(L.slice(1)),P=>{x[0]=P}]),l.push(()=>{w[x[0]]=x[1]})}u(w);continue;case ct:if(t[y])u(t[s]=t[y]);else{const L=new ao;a[y]=L,u(t[s]=L.promise)}continue;case ut:const[,S,E]=h;let C=E&&fr&&fr[E]?new fr[E](S):new Error(S);t[s]=C,u(C);continue;case Cr:u(t[s]=t[y]);continue;default:if(Array.isArray(n)){const L=[],x=h.slice(1);for(let P=0;P<x.length;P++){const g=x[P];i.push([g,T=>{L[P]=T}])}l.push(()=>{for(const P of n){const g=P(h[0],...L);if(g){u(t[s]=g.value);return}}throw new SyntaxError});continue}throw new SyntaxError}}else{const d=[];t[s]=d;for(let y=0;y<h.length;y++){const f=h[y];f!==Yn&&i.push([f,p=>{d[y]=p}])}u(d);continue}else{const d={};t[s]=d;for(const y of Object.keys(h).reverse()){const f=[];i.push([h[y],p=>{f[1]=p}]),i.push([Number(y.slice(1)),p=>{f[0]=p}]),l.push(()=>{d[f[0]]=f[1]})}u(d);continue}}for(;l.length>0;)l.pop()();return o}async function Dl(e,t){const{plugins:r}=t??{},a=new ao,n=e.pipeThrough(Pl()).getReader(),o={values:[],hydrated:[],deferred:{},plugins:r},i=await Ol.call(o,n);let l=a.promise;return i.done?a.resolve():l=Ml.call(o,n).then(a.resolve).catch(s=>{for(const u of Object.values(o.deferred))u.reject(s);a.reject(s)}),{done:l.then(()=>n.closed),value:i.value}}async function Ol(e){const t=await e.read();if(!t.value)throw new SyntaxError;let r;try{r=JSON.parse(t.value)}catch{throw new SyntaxError}return{done:t.done,value:Lr.call(this,r)}}async function Ml(e){let t=await e.read();for(;!t.done;){if(!t.value)continue;const r=t.value;switch(r[0]){case ct:{const a=r.indexOf(":"),n=Number(r.slice(1,a)),o=this.deferred[n];if(!o)throw new Error(`Deferred ID ${n} not found in stream`);const i=r.slice(a+1);let l;try{l=JSON.parse(i)}catch{throw new SyntaxError}const s=Lr.call(this,l);o.resolve(s);break}case ut:{const a=r.indexOf(":"),n=Number(r.slice(1,a)),o=this.deferred[n];if(!o)throw new Error(`Deferred ID ${n} not found in stream`);const i=r.slice(a+1);let l;try{l=JSON.parse(i)}catch{throw new SyntaxError}const s=Lr.call(this,l);o.reject(s);break}default:throw new SyntaxError}t=await e.read()}}function du(e,t){const{plugins:r,postPlugins:a,signal:n}=t??{},o={deferred:{},index:0,indices:new Map,stringified:[],plugins:r,postPlugins:a,signal:n},i=new TextEncoder;let l=0;return new ReadableStream({async start(u){const h=Se.call(o,e);if(Array.isArray(h))throw new Error("This should never happen");h<0?u.enqueue(i.encode(`${h}
|
|
6
|
+
`)):(u.enqueue(i.encode(`[${o.stringified.join(",")}]
|
|
7
|
+
`)),l=o.stringified.length-1);const d=new WeakSet;if(Object.keys(o.deferred).length){let y;const f=new Promise((p,b)=>{if(y=p,n){const w=()=>b(n.reason||new Error("Signal was aborted."));n.aborted?w():n.addEventListener("abort",S=>{w()})}});for(;Object.keys(o.deferred).length>0;){for(const[p,b]of Object.entries(o.deferred))d.has(b)||d.add(o.deferred[Number(p)]=Promise.race([f,b]).then(w=>{const S=Se.call(o,w);if(Array.isArray(S))u.enqueue(i.encode(`${ct}${p}:[["${Cr}",${S[0]}]]
|
|
8
|
+
`)),o.index++,l++;else if(S<0)u.enqueue(i.encode(`${ct}${p}:${S}
|
|
9
|
+
`));else{const E=o.stringified.slice(l+1).join(",");u.enqueue(i.encode(`${ct}${p}:[${E}]
|
|
10
|
+
`)),l=o.stringified.length-1}},w=>{(!w||typeof w!="object"||!(w instanceof Error))&&(w=new Error("An unknown error occurred"));const S=Se.call(o,w);if(Array.isArray(S))u.enqueue(i.encode(`${ut}${p}:[["${Cr}",${S[0]}]]
|
|
11
|
+
`)),o.index++,l++;else if(S<0)u.enqueue(i.encode(`${ut}${p}:${S}
|
|
12
|
+
`));else{const E=o.stringified.slice(l+1).join(",");u.enqueue(i.encode(`${ut}${p}:[${E}]
|
|
13
|
+
`)),l=o.stringified.length-1}}).finally(()=>{delete o.deferred[Number(p)]}));await Promise.race(Object.values(o.deferred))}y()}await Promise.all(Object.values(o.deferred)),u.close()}})}async function Tl(e){let t={signal:e.signal};if(e.method!=="GET"){t.method=e.method;let r=e.headers.get("Content-Type");r&&/\bapplication\/json\b/.test(r)?(t.headers={"Content-Type":r},t.body=JSON.stringify(await e.json())):r&&/\btext\/plain\b/.test(r)?(t.headers={"Content-Type":r},t.body=await e.text()):r&&/\bapplication\/x-www-form-urlencoded\b/.test(r)?t.body=new URLSearchParams(await e.text()):t.body=await e.formData()}return t}var $l={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},Nl=/[&><\u2028\u2029]/g;function no(e){return e.replace(Nl,t=>$l[t])}function ue(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}var Dr=Symbol("SingleFetchRedirect"),oo=class extends Error{},Fl=202,kl=new Set([100,101,204,205]);function _l({context:e,identifier:t,reader:r,textDecoder:a,nonce:n}){if(!e.renderMeta||!e.renderMeta.didRenderScripts)return null;e.renderMeta.streamCache||(e.renderMeta.streamCache={});let{streamCache:o}=e.renderMeta,i=o[t];if(i||(i=o[t]=r.read().then(h=>{o[t].result={done:h.done,value:a.decode(h.value,{stream:!0})}}).catch(h=>{o[t].error=h})),i.error)throw i.error;if(i.result===void 0)throw i;let{done:l,value:s}=i.result,u=s?c.createElement("script",{nonce:n,dangerouslySetInnerHTML:{__html:`window.__reactRouterContext.streamController.enqueue(${no(JSON.stringify(s))});`}}):null;return l?c.createElement(c.Fragment,null,u,c.createElement("script",{nonce:n,dangerouslySetInnerHTML:{__html:"window.__reactRouterContext.streamController.close();"}})):c.createElement(c.Fragment,null,u,c.createElement(c.Suspense,null,c.createElement(_l,{context:e,identifier:t+1,reader:r,textDecoder:a,nonce:n})))}function fu(e,t,r,a,n){let o=Il(e,i=>{let l=t.routes[i.route.id];ue(l,"Route not found in manifest");let s=r[i.route.id];return{hasLoader:l.hasLoader,hasClientLoader:l.hasClientLoader,hasShouldRevalidate:!!s?.shouldRevalidate}},Wl,a,n);return async i=>i.runClientMiddleware(o)}function Il(e,t,r,a,n,o=()=>!0){return async i=>{let{request:l,matches:s,fetcherKey:u}=i,h=e();if(l.method!=="GET")return Al(i,r,n);let d=s.some(y=>{let{hasLoader:f,hasClientLoader:p}=t(y);return y.shouldCallHandler()&&f&&!p});return!a&&!d?jl(i,t,r,n):u?zl(i,r,n):Hl(i,h,t,r,a,n,o)}}async function Al(e,t,r){let a=e.matches.find(i=>i.shouldCallHandler());ue(a,"No action match found");let n,o=await a.resolve(async i=>await i(async()=>{let{data:s,status:u}=await t(e,r,[a.route.id]);return n=u,Ct(s,a.route.id)}));return se(o.result)||xe(o.result)||qe(o.result)?{[a.route.id]:o}:{[a.route.id]:{type:o.type,result:vi(o.result,n)}}}async function jl(e,t,r,a){let n=e.matches.filter(i=>i.shouldCallHandler()),o={};return await Promise.all(n.map(i=>i.resolve(async l=>{try{let{hasClientLoader:s}=t(i),u=i.route.id,h=s?await l(async()=>{let{data:d}=await r(e,a,[u]);return Ct(d,u)}):await l();o[i.route.id]={type:"data",result:h}}catch(s){o[i.route.id]={type:"error",result:s}}}))),o}async function Hl(e,t,r,a,n,o,i=()=>!0){let l=new Set,s=!1,u=e.matches.map(()=>Wa()),h=Wa(),d={},y=Promise.all(e.matches.map(async(p,b)=>p.resolve(async w=>{u[b].resolve();let S=p.route.id,{hasLoader:E,hasClientLoader:C,hasShouldRevalidate:L}=r(p),x=!p.shouldRevalidateArgs||p.shouldRevalidateArgs.actionStatus==null||p.shouldRevalidateArgs.actionStatus<400;if(!p.shouldCallHandler(x)){s||(s=p.shouldRevalidateArgs!=null&&E&&L===!0);return}if(i(p)&&C){E&&(s=!0);try{let g=await w(async()=>{let{data:T}=await a(e,o,[S]);return Ct(T,S)});d[S]={type:"data",result:g}}catch(g){d[S]={type:"error",result:g}}return}E&&l.add(S);try{let g=await w(async()=>{let T=await h.promise;return Ct(T,S)});d[S]={type:"data",result:g}}catch(g){d[S]={type:"error",result:g}}})));if(await Promise.all(u.map(p=>p.promise)),(!t.state.initialized&&t.state.navigation.state==="idle"||l.size===0)&&!window.__reactRouterHdrActive)h.resolve({routes:{}});else{let p=n&&s&&l.size>0?[...l.keys()]:void 0;try{let b=await a(e,o,p);h.resolve(b.data)}catch(b){h.reject(b)}}return await y,await Ul(h.promise,e.matches,l,d),d}async function Ul(e,t,r,a){try{let n,o=await e;if("routes"in o){for(let i of t)if(i.route.id in o.routes){let l=o.routes[i.route.id];if("error"in l){n=l.error,a[i.route.id]?.result==null&&(a[i.route.id]={type:"error",result:n});break}}}n!==void 0&&Array.from(r.values()).forEach(i=>{a[i].result instanceof oo&&(a[i].result=n)})}catch{}}async function zl(e,t,r){let a=e.matches.find(i=>i.shouldCallHandler());ue(a,"No fetcher match found");let n=a.route.id,o=await a.resolve(async i=>i(async()=>{let{data:l}=await t(e,r,[n]);return Ct(l,n)}));return{[a.route.id]:o}}function Bl(e){let t=e.searchParams.getAll("index");e.searchParams.delete("index");let r=[];for(let a of t)a&&r.push(a);for(let a of r)e.searchParams.append("index",a);return e}function io(e,t,r){let a=typeof e=="string"?new URL(e,typeof window>"u"?"server://singlefetch/":window.location.origin):e;return a.pathname==="/"?a.pathname=`_root.${r}`:t&&fe(a.pathname,t)==="/"?a.pathname=`${t.replace(/\/$/,"")}/_root.${r}`:a.pathname=`${a.pathname.replace(/\/$/,"")}.${r}`,a}async function Wl(e,t,r){let{request:a}=e,n=io(a.url,t,"data");a.method==="GET"&&(n=Bl(n),r&&n.searchParams.set("_routes",r.join(",")));let o=await fetch(n,await Tl(a));if(o.status>=400&&!o.headers.has("X-Remix-Response"))throw new Te(o.status,o.statusText,await o.text());if(o.status===204&&o.headers.has("X-Remix-Redirect"))return{status:Fl,data:{redirect:{redirect:o.headers.get("X-Remix-Redirect"),status:Number(o.headers.get("X-Remix-Status")||"302"),revalidate:o.headers.get("X-Remix-Revalidate")==="true",reload:o.headers.get("X-Remix-Reload-Document")==="true",replace:o.headers.get("X-Remix-Replace")==="true"}}};if(kl.has(o.status)){let i={};return r&&a.method!=="GET"&&(i[r[0]]={data:void 0}),{status:o.status,data:{routes:i}}}ue(o.body,"No response body to decode");try{let i=await Yl(o.body,window),l;if(a.method==="GET"){let s=i.value;Dr in s?l={redirect:s[Dr]}:l={routes:s}}else{let s=i.value,u=r?.[0];ue(u,"No routeId found for single fetch call decoding"),"redirect"in s?l={redirect:s}:l={routes:{[u]:s}}}return{status:o.status,data:l}}catch{throw new Error("Unable to decode turbo-stream response")}}function Yl(e,t){return Dl(e,{plugins:[(r,...a)=>{if(r==="SanitizedError"){let[n,o,i]=a,l=Error;n&&n in t&&typeof t[n]=="function"&&(l=t[n]);let s=new l(o);return s.stack=i,{value:s}}if(r==="ErrorResponse"){let[n,o,i]=a;return{value:new Te(o,i,n)}}if(r==="SingleFetchRedirect")return{value:{[Dr]:a[0]}};if(r==="SingleFetchClassInstance")return{value:a[0]};if(r==="SingleFetchFallback")return{value:void 0}}]})}function Ct(e,t){if("redirect"in e){let{redirect:a,revalidate:n,reload:o,replace:i,status:l}=e.redirect;throw $r(a,{status:l,headers:{...n?{"X-Remix-Revalidate":"yes"}:null,...o?{"X-Remix-Reload-Document":"yes"}:null,...i?{"X-Remix-Replace":"yes"}:null}})}let r=e.routes[t];if(r==null)throw new oo(`No result found for routeId "${t}"`);if("error"in r)throw r.error;if("data"in r)return r.data;throw new Error(`Invalid response found for routeId "${t}"`)}function Wa(){let e,t,r=new Promise((a,n)=>{e=async o=>{a(o);try{await r}catch{}},t=async o=>{n(o);try{await r}catch{}}});return{promise:r,resolve:e,reject:t}}async function lo(e,t){if(e.id in t)return t[e.id];try{let r=await import(e.module);return t[e.id]=r,r}catch(r){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(r),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function Jl(e,t,r){let a=e.map(o=>{let i=t[o.route.id],l=r.routes[o.route.id];return[l&&l.css?l.css.map(s=>({rel:"stylesheet",href:s})):[],i?.links?.()||[]]}).flat(2),n=Qr(e,r);return fo(a,n)}function so(e){return e.css?e.css.map(t=>({rel:"stylesheet",href:t})):[]}async function Vl(e){if(!e.css)return;let t=so(e);await Promise.all(t.map(co))}async function uo(e,t){if(!e.css&&!t.links||!Zl())return;let r=[];if(e.css&&r.push(...so(e)),t.links&&r.push(...t.links()),r.length===0)return;let a=[];for(let n of r)!Xr(n)&&n.rel==="stylesheet"&&a.push({...n,rel:"preload",as:"style"});await Promise.all(a.map(co))}async function co(e){return new Promise(t=>{if(e.media&&!window.matchMedia(e.media).matches||document.querySelector(`link[rel="stylesheet"][href="${e.href}"]`))return t();let r=document.createElement("link");Object.assign(r,e);function a(){document.head.contains(r)&&document.head.removeChild(r)}r.onload=()=>{a(),t()},r.onerror=()=>{a(),t()},document.head.appendChild(r)})}function Xr(e){return e!=null&&typeof e.page=="string"}function Kl(e){return e==null?!1:e.href==null?e.rel==="preload"&&typeof e.imageSrcSet=="string"&&typeof e.imageSizes=="string":typeof e.rel=="string"&&typeof e.href=="string"}async function Gl(e,t,r){let a=await Promise.all(e.map(async n=>{let o=t.routes[n.route.id];if(o){let i=await lo(o,r);return i.links?i.links():[]}return[]}));return fo(a.flat(1).filter(Kl).filter(n=>n.rel==="stylesheet"||n.rel==="preload").map(n=>n.rel==="stylesheet"?{...n,rel:"prefetch",as:"style"}:{...n,rel:"prefetch"}))}function Ya(e,t,r,a,n,o){let i=(s,u)=>r[u]?s.route.id!==r[u].route.id:!0,l=(s,u)=>r[u].pathname!==s.pathname||r[u].route.path?.endsWith("*")&&r[u].params["*"]!==s.params["*"];return o==="assets"?t.filter((s,u)=>i(s,u)||l(s,u)):o==="data"?t.filter((s,u)=>{let h=a.routes[s.route.id];if(!h||!h.hasLoader)return!1;if(i(s,u)||l(s,u))return!0;if(s.route.shouldRevalidate){let d=s.route.shouldRevalidate({currentUrl:new URL(n.pathname+n.search+n.hash,window.origin),currentParams:r[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:s.params,defaultShouldRevalidate:!0});if(typeof d=="boolean")return d}return!0}):[]}function Qr(e,t,{includeHydrateFallback:r}={}){return Xl(e.map(a=>{let n=t.routes[a.route.id];if(!n)return[];let o=[n.module];return n.clientActionModule&&(o=o.concat(n.clientActionModule)),n.clientLoaderModule&&(o=o.concat(n.clientLoaderModule)),r&&n.hydrateFallbackModule&&(o=o.concat(n.hydrateFallbackModule)),n.imports&&(o=o.concat(n.imports)),o}).flat(1))}function Xl(e){return[...new Set(e)]}function Ql(e){let t={},r=Object.keys(e).sort();for(let a of r)t[a]=e[a];return t}function fo(e,t){let r=new Set,a=new Set(t);return e.reduce((n,o)=>{if(t&&!Xr(o)&&o.as==="script"&&o.href&&a.has(o.href))return n;let l=JSON.stringify(Ql(o));return r.has(l)||(r.add(l),n.push({key:l,link:o})),n},[])}var At;function Zl(){if(At!==void 0)return At;let e=document.createElement("link");return At=e.relList.supports("preload"),e=null,At}function ql(){return c.createElement(Or,{title:"Loading...",renderScripts:!0},c.createElement("script",{dangerouslySetInnerHTML:{__html:`
|
|
14
|
+
console.log(
|
|
15
|
+
"💿 Hey developer 👋. You can provide a way better UX than this " +
|
|
16
|
+
"when your app is loading JS modules and/or running \`clientLoader\` " +
|
|
17
|
+
"functions. Check out https://reactrouter.com/start/framework/route-module#hydratefallback " +
|
|
18
|
+
"for more information."
|
|
19
|
+
);
|
|
20
|
+
`}}))}function Zr(e){let t={};return Object.values(e).forEach(r=>{if(r){let a=r.parentId||"";t[a]||(t[a]=[]),t[a].push(r)}}),t}function ho(e,t,r){let a=mo(t),n=t.HydrateFallback&&(!r||e.id==="root")?t.HydrateFallback:e.id==="root"?ql:void 0,o=t.ErrorBoundary?t.ErrorBoundary:e.id==="root"?()=>c.createElement(vo,{error:Vr()}):void 0;return e.id==="root"&&t.Layout?{...a?{element:c.createElement(t.Layout,null,c.createElement(a,null))}:{Component:a},...o?{errorElement:c.createElement(t.Layout,null,c.createElement(o,null))}:{ErrorBoundary:o},...n?{hydrateFallbackElement:c.createElement(t.Layout,null,c.createElement(n,null))}:{HydrateFallback:n}}:{Component:a,ErrorBoundary:o,HydrateFallback:n}}function es(e,t,r,a,n="",o=Zr(e),i=Promise.resolve({Component:()=>null})){return(o[n]||[]).map(l=>{let s=t[l.id];ue(s,"No `routeModule` available to create server routes");let u={...ho(l,s,a),caseSensitive:l.caseSensitive,id:l.id,index:l.index,path:l.path,handle:s.handle,lazy:a?()=>i:void 0,loader:l.hasLoader||l.hasClientLoader?()=>null:void 0},h=es(e,t,r,a,l.id,o,i);return h.length>0&&(u.children=h),u})}function hu(e,t,r,a,n,o){return qr(t,r,a,n,o,"",Zr(t),e)}function jt(e,t){if(e==="loader"&&!t.hasLoader||e==="action"&&!t.hasAction){let a=`You are trying to call ${e==="action"?"serverAction()":"serverLoader()"} on a route that does not have a server ${e} (routeId: "${t.id}")`;throw console.error(a),new Te(400,"Bad Request",new Error(a),!0)}}function hr(e,t){let r=e==="clientAction"?"a":"an",a=`Route "${t}" does not have ${r} ${e}, but you are trying to submit to it. To fix this, please add ${r} \`${e}\` function to the route`;throw console.error(a),new Te(405,"Method Not Allowed",new Error(a),!0)}function qr(e,t,r,a,n,o="",i=Zr(e),l){return(i[o]||[]).map(s=>{let u=t[s.id];function h(E){return ue(typeof E=="function","No single fetch function available for route handler"),E()}function d(E){return s.hasLoader?h(E):Promise.resolve(null)}function y(E){if(!s.hasAction)throw hr("action",s.id);return h(E)}function f(E){import(E)}function p(E){E.clientActionModule&&f(E.clientActionModule),E.clientLoaderModule&&f(E.clientLoaderModule)}async function b(E){let C=t[s.id],L=C?uo(s,C):Promise.resolve();try{return E()}finally{await L}}let w={id:s.id,index:s.index,path:s.path};if(u){Object.assign(w,{...w,...ho(s,u,n),middleware:u.clientMiddleware,handle:u.handle,shouldRevalidate:Ja(w.path,u,s,a,l)});let E=r&&r.loaderData&&s.id in r.loaderData,C=E?r?.loaderData?.[s.id]:void 0,L=r&&r.errors&&s.id in r.errors,x=L?r?.errors?.[s.id]:void 0,P=l==null&&(u.clientLoader?.hydrate===!0||!s.hasLoader);w.loader=async({request:g,params:T,context:M,unstable_pattern:j},$)=>{try{return await b(async()=>(ue(u,"No `routeModule` available for critical-route loader"),u.clientLoader?u.clientLoader({request:g,params:T,context:M,unstable_pattern:j,async serverLoader(){if(jt("loader",s),P){if(E)return C;if(L)throw x}return d($)}}):d($)))}finally{P=!1}},w.loader.hydrate=as(s.id,u.clientLoader,s.hasLoader,n),w.action=({request:g,params:T,context:M,unstable_pattern:j},$)=>b(async()=>{if(ue(u,"No `routeModule` available for critical-route action"),!u.clientAction){if(n)throw hr("clientAction",s.id);return y($)}return u.clientAction({request:g,params:T,context:M,unstable_pattern:j,async serverAction(){return jt("action",s),y($)}})})}else{s.hasClientLoader||(w.loader=(L,x)=>b(()=>d(x))),s.hasClientAction||(w.action=(L,x)=>b(()=>{if(n)throw hr("clientAction",s.id);return y(x)}));let E;async function C(){return E?await E:(E=(async()=>{(s.clientLoaderModule||s.clientActionModule)&&await new Promise(x=>setTimeout(x,0));let L=rs(s,t);return p(s),await L})(),await E)}w.lazy={loader:s.hasClientLoader?async()=>{let{clientLoader:L}=s.clientLoaderModule?await import(s.clientLoaderModule):await C();return ue(L,"No `clientLoader` export found"),(x,P)=>L({...x,async serverLoader(){return jt("loader",s),d(P)}})}:void 0,action:s.hasClientAction?async()=>{let L=s.clientActionModule?import(s.clientActionModule):C();p(s);let{clientAction:x}=await L;return ue(x,"No `clientAction` export found"),(P,g)=>x({...P,async serverAction(){return jt("action",s),y(g)}})}:void 0,middleware:s.hasClientMiddleware?async()=>{let{clientMiddleware:L}=s.clientMiddlewareModule?await import(s.clientMiddlewareModule):await C();return ue(L,"No `clientMiddleware` export found"),L}:void 0,shouldRevalidate:async()=>{let L=await C();return Ja(w.path,L,s,a,l)},handle:async()=>(await C()).handle,Component:async()=>(await C()).Component,ErrorBoundary:s.hasErrorBoundary?async()=>(await C()).ErrorBoundary:void 0}}let S=qr(e,t,r,a,n,s.id,i,l);return S.length>0&&(w.children=S),w})}function Ja(e,t,r,a,n){if(n)return ts(r.id,t.shouldRevalidate,n);if(!a&&r.hasLoader&&!r.hasClientLoader){let o=e?an(e)[1].map(l=>l.paramName):[];const i=l=>o.some(s=>l.currentParams[s]!==l.nextParams[s]);if(t.shouldRevalidate){let l=t.shouldRevalidate;return s=>l({...s,defaultShouldRevalidate:i(s)})}else return l=>i(l)}return t.shouldRevalidate}function ts(e,t,r){let a=!1;return n=>a?t?t(n):n.defaultShouldRevalidate:(a=!0,r.has(e))}async function rs(e,t){let r=lo(e,t),a=Vl(e),n=await r;return await Promise.all([a,uo(e,n)]),{Component:mo(n),ErrorBoundary:n.ErrorBoundary,clientMiddleware:n.clientMiddleware,clientAction:n.clientAction,clientLoader:n.clientLoader,handle:n.handle,links:n.links,meta:n.meta,shouldRevalidate:n.shouldRevalidate}}function mo(e){if(e.default==null)return;if(!(typeof e.default=="object"&&Object.keys(e.default).length===0))return e.default}function as(e,t,r,a){return a&&e!=="root"||t!=null&&(t.hydrate===!0||r!==!0)}var Wt=new Set,ns=1e3,Jt=new Set,os=7680;function ea(e,t){return e.mode==="lazy"&&t===!0}function is({sri:e,...t},r){let a=new Set(r.state.matches.map(l=>l.route.id)),n=r.state.location.pathname.split("/").filter(Boolean),o=["/"];for(n.pop();n.length>0;)o.push(`/${n.join("/")}`),n.pop();o.forEach(l=>{let s=De(r.routes,l,r.basename);s&&s.forEach(u=>a.add(u.route.id))});let i=[...a].reduce((l,s)=>Object.assign(l,{[s]:t.routes[s]}),{});return{...t,routes:i,sri:e?!0:void 0}}function mu(e,t,r,a,n,o){if(ea(a,r))return async({path:i,patch:l,signal:s,fetcherKey:u})=>{Jt.has(i)||await po([i],u?window.location.href:i,e,t,r,n,o,a.manifestPath,l,s)}}function pu(e,t,r,a,n,o){c.useEffect(()=>{if(!ea(n,a)||window.navigator?.connection?.saveData===!0)return;function i(h){let d=h.tagName==="FORM"?h.getAttribute("action"):h.getAttribute("href");if(!d)return;let y=h.tagName==="A"?h.pathname:new URL(d,window.location.origin).pathname;Jt.has(y)||Wt.add(y)}async function l(){document.querySelectorAll("a[data-discover], form[data-discover]").forEach(i);let h=Array.from(Wt.keys()).filter(d=>Jt.has(d)?(Wt.delete(d),!1):!0);if(h.length!==0)try{await po(h,null,t,r,a,o,e.basename,n.manifestPath,e.patchRoutes)}catch(d){console.error("Failed to fetch manifest patches",d)}}let s=us(l,100);l();let u=new MutationObserver(()=>s());return u.observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["data-discover","href","action"]}),()=>u.disconnect()},[a,o,t,r,e,n])}function ls(e,t){let r=e||"/__manifest";return t==null?r:`${t}${r}`.replace(/\/+/g,"/")}var mr="react-router-manifest-version";async function po(e,t,r,a,n,o,i,l,s,u){const h=new URLSearchParams;h.set("paths",e.sort().join(",")),h.set("version",r.version);let d=new URL(ls(l,i),window.location.origin);if(d.search=h.toString(),d.toString().length>os){Wt.clear();return}let y;try{let w=await fetch(d,{signal:u});if(w.ok){if(w.status===204&&w.headers.has("X-Remix-Reload-Document")){if(!t){console.warn("Detected a manifest version mismatch during eager route discovery. The next navigation/fetch to an undiscovered route will result in a new document navigation to sync up with the latest manifest.");return}try{if(sessionStorage.getItem(mr)===r.version){console.error("Unable to discover routes due to manifest version mismatch.");return}sessionStorage.setItem(mr,r.version)}catch{}window.location.href=t,console.warn("Detected manifest version mismatch, reloading..."),await new Promise(()=>{})}else if(w.status>=400)throw new Error(await w.text())}else throw new Error(`${w.status} ${w.statusText}`);try{sessionStorage.removeItem(mr)}catch{}y=await w.json()}catch(w){if(u?.aborted)return;throw w}let f=new Set(Object.keys(r.routes)),p=Object.values(y).reduce((w,S)=>(S&&!f.has(S.id)&&(w[S.id]=S),w),{});Object.assign(r.routes,p),e.forEach(w=>ss(w,Jt));let b=new Set;Object.values(p).forEach(w=>{w&&(!w.parentId||!p[w.parentId])&&b.add(w.parentId)}),b.forEach(w=>s(w||null,qr(p,a,null,n,o,w)))}function ss(e,t){if(t.size>=ns){let r=t.values().next().value;t.delete(r)}t.add(e)}function us(e,t){let r;return(...a)=>{window.clearTimeout(r),r=window.setTimeout(()=>e(...a),t)}}function ta(){let e=c.useContext(Ae);return ue(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function er(){let e=c.useContext(We);return ue(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var tr=c.createContext(void 0);tr.displayName="FrameworkContext";function mt(){let e=c.useContext(tr);return ue(e,"You must render this element inside a <HydratedRouter> element"),e}function cs(e,t){let r=c.useContext(tr),[a,n]=c.useState(!1),[o,i]=c.useState(!1),{onFocus:l,onBlur:s,onMouseEnter:u,onMouseLeave:h,onTouchStart:d}=t,y=c.useRef(null);c.useEffect(()=>{if(e==="render"&&i(!0),e==="viewport"){let b=S=>{S.forEach(E=>{i(E.isIntersecting)})},w=new IntersectionObserver(b,{threshold:.5});return y.current&&w.observe(y.current),()=>{w.disconnect()}}},[e]),c.useEffect(()=>{if(a){let b=setTimeout(()=>{i(!0)},100);return()=>{clearTimeout(b)}}},[a]);let f=()=>{n(!0)},p=()=>{n(!1),i(!1)};return r?e!=="intent"?[o,y,{}]:[o,y,{onFocus:bt(l,f),onBlur:bt(s,p),onMouseEnter:bt(u,f),onMouseLeave:bt(h,p),onTouchStart:bt(d,f)}]:[!1,y,{}]}function bt(e,t){return r=>{e&&e(r),r.defaultPrevented||t(r)}}function ra(e,t,r){if(r&&!Vt)return[e[0]];if(t){let a=e.findIndex(n=>t[n.route.id]!==void 0);return e.slice(0,a+1)}return e}var Va="data-react-router-critical-css";function yu({nonce:e}){let{isSpaMode:t,manifest:r,routeModules:a,criticalCss:n}=mt(),{errors:o,matches:i}=er(),l=ra(i,o,t),s=c.useMemo(()=>Jl(l,a,r),[l,a,r]);return c.createElement(c.Fragment,null,typeof n=="string"?c.createElement("style",{[Va]:"",dangerouslySetInnerHTML:{__html:n}}):null,typeof n=="object"?c.createElement("link",{[Va]:"",rel:"stylesheet",href:n.href,nonce:e}):null,s.map(({key:u,link:h})=>Xr(h)?c.createElement(yo,{key:u,nonce:e,...h}):c.createElement("link",{key:u,nonce:e,...h})))}function yo({page:e,...t}){let{router:r}=ta(),a=c.useMemo(()=>De(r.routes,e,r.basename),[r.routes,e,r.basename]);return a?c.createElement(fs,{page:e,matches:a,...t}):null}function ds(e){let{manifest:t,routeModules:r}=mt(),[a,n]=c.useState([]);return c.useEffect(()=>{let o=!1;return Gl(e,t,r).then(i=>{o||n(i)}),()=>{o=!0}},[e,t,r]),a}function fs({page:e,matches:t,...r}){let a=ge(),{manifest:n,routeModules:o}=mt(),{basename:i}=ta(),{loaderData:l,matches:s}=er(),u=c.useMemo(()=>Ya(e,t,s,n,a,"data"),[e,t,s,n,a]),h=c.useMemo(()=>Ya(e,t,s,n,a,"assets"),[e,t,s,n,a]),d=c.useMemo(()=>{if(e===a.pathname+a.search+a.hash)return[];let p=new Set,b=!1;if(t.forEach(S=>{let E=n.routes[S.route.id];!E||!E.hasLoader||(!u.some(C=>C.route.id===S.route.id)&&S.route.id in l&&o[S.route.id]?.shouldRevalidate||E.hasClientLoader?b=!0:p.add(S.route.id))}),p.size===0)return[];let w=io(e,i,"data");return b&&p.size>0&&w.searchParams.set("_routes",t.filter(S=>p.has(S.route.id)).map(S=>S.route.id).join(",")),[w.pathname+w.search]},[i,l,a,n,u,t,e,o]),y=c.useMemo(()=>Qr(h,n),[h,n]),f=ds(h);return c.createElement(c.Fragment,null,d.map(p=>c.createElement("link",{key:p,rel:"prefetch",as:"fetch",href:p,...r})),y.map(p=>c.createElement("link",{key:p,rel:"modulepreload",href:p,...r})),f.map(({key:p,link:b})=>c.createElement("link",{key:p,nonce:r.nonce,...b})))}function vu(){let{isSpaMode:e,routeModules:t}=mt(),{errors:r,matches:a,loaderData:n}=er(),o=ge(),i=ra(a,r,e),l=null;r&&(l=r[i[i.length-1].route.id]);let s=[],u=null,h=[];for(let d=0;d<i.length;d++){let y=i[d],f=y.route.id,p=n[f],b=y.params,w=t[f],S=[],E={id:f,data:p,loaderData:p,meta:[],params:y.params,pathname:y.pathname,handle:y.route.handle,error:l};if(h[d]=E,w?.meta?S=typeof w.meta=="function"?w.meta({data:p,loaderData:p,params:b,location:o,matches:h,error:l}):Array.isArray(w.meta)?[...w.meta]:w.meta:u&&(S=[...u]),S=S||[],!Array.isArray(S))throw new Error("The route at "+y.route.path+` returns an invalid value. All route meta functions must return an array of meta objects.
|
|
21
|
+
|
|
22
|
+
To reference the meta function API, see https://remix.run/route/meta`);E.meta=S,h[d]=E,s=[...S],u=s}return c.createElement(c.Fragment,null,s.flat().map(d=>{if(!d)return null;if("tagName"in d){let{tagName:y,...f}=d;if(!hs(y))return console.warn(`A meta object uses an invalid tagName: ${y}. Expected either 'link' or 'meta'`),null;let p=y;return c.createElement(p,{key:JSON.stringify(f),...f})}if("title"in d)return c.createElement("title",{key:"title"},String(d.title));if("charset"in d&&(d.charSet??(d.charSet=d.charset),delete d.charset),"charSet"in d&&d.charSet!=null)return typeof d.charSet=="string"?c.createElement("meta",{key:"charSet",charSet:d.charSet}):null;if("script:ld+json"in d)try{let y=JSON.stringify(d["script:ld+json"]);return c.createElement("script",{key:`script:ld+json:${y}`,type:"application/ld+json",dangerouslySetInnerHTML:{__html:no(y)}})}catch{return null}return c.createElement("meta",{key:JSON.stringify(d),...d})}))}function hs(e){return typeof e=="string"&&/^(meta|link)$/.test(e)}var Vt=!1;function ms(){Vt=!0}function ps(e){let{manifest:t,serverHandoffString:r,isSpaMode:a,renderMeta:n,routeDiscovery:o,ssr:i}=mt(),{router:l,static:s,staticContext:u}=ta(),{matches:h}=er(),d=Fn(),y=ea(o,i);n&&(n.didRenderScripts=!0);let f=ra(h,null,a);c.useEffect(()=>{ms()},[]);let p=c.useMemo(()=>{if(d)return null;let E=u?`window.__reactRouterContext = ${r};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());`:" ",C=s?`${t.hmr?.runtime?`import ${JSON.stringify(t.hmr.runtime)};`:""}${y?"":`import ${JSON.stringify(t.url)}`};
|
|
23
|
+
${f.map((L,x)=>{let P=`route${x}`,g=t.routes[L.route.id];ue(g,`Route ${L.route.id} not found in manifest`);let{clientActionModule:T,clientLoaderModule:M,clientMiddlewareModule:j,hydrateFallbackModule:$,module:z}=g,V=[...T?[{module:T,varName:`${P}_clientAction`}]:[],...M?[{module:M,varName:`${P}_clientLoader`}]:[],...j?[{module:j,varName:`${P}_clientMiddleware`}]:[],...$?[{module:$,varName:`${P}_HydrateFallback`}]:[],{module:z,varName:`${P}_main`}];if(V.length===1)return`import * as ${P} from ${JSON.stringify(z)};`;let Z=V.map(G=>`import * as ${G.varName} from "${G.module}";`).join(`
|
|
24
|
+
`),W=`const ${P} = {${V.map(G=>`...${G.varName}`).join(",")}};`;return[Z,W].join(`
|
|
25
|
+
`)}).join(`
|
|
26
|
+
`)}
|
|
27
|
+
${y?`window.__reactRouterManifest = ${JSON.stringify(is(t,l),null,2)};`:""}
|
|
28
|
+
window.__reactRouterRouteModules = {${f.map((L,x)=>`${JSON.stringify(L.route.id)}:route${x}`).join(",")}};
|
|
29
|
+
|
|
30
|
+
import(${JSON.stringify(t.entry.module)});`:" ";return c.createElement(c.Fragment,null,c.createElement("script",{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:E},type:void 0}),c.createElement("script",{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:C},type:"module",async:!0}))},[]),b=Vt||d?[]:ys(t.entry.imports.concat(Qr(f,t,{includeHydrateFallback:!0}))),w=typeof t.sri=="object"?t.sri:{};return Rr(!d,"The <Scripts /> element is a no-op when using RSC and can be safely removed."),Vt||d?null:c.createElement(c.Fragment,null,typeof t.sri=="object"?c.createElement("script",{"rr-importmap":"",type:"importmap",suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:JSON.stringify({integrity:w})}}):null,y?null:c.createElement("link",{rel:"modulepreload",href:t.url,crossOrigin:e.crossOrigin,integrity:w[t.url],suppressHydrationWarning:!0}),c.createElement("link",{rel:"modulepreload",href:t.entry.module,crossOrigin:e.crossOrigin,integrity:w[t.entry.module],suppressHydrationWarning:!0}),b.map(S=>c.createElement("link",{key:S,rel:"modulepreload",href:S,crossOrigin:e.crossOrigin,integrity:w[S],suppressHydrationWarning:!0})),p)}function ys(e){return[...new Set(e)]}function vs(...e){return t=>{e.forEach(r=>{typeof r=="function"?r(t):r!=null&&(r.current=t)})}}var gu=class extends c.Component{constructor(e){super(e),this.state={error:e.error||null,location:e.location}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location?{error:e.error||null,location:e.location}:{error:e.error||t.error,location:t.location}}render(){return this.state.error?c.createElement(vo,{error:this.state.error,isOutsideRemixApp:!0}):this.props.children}};function vo({error:e,isOutsideRemixApp:t}){console.error(e);let r=c.createElement("script",{dangerouslySetInnerHTML:{__html:`
|
|
31
|
+
console.log(
|
|
32
|
+
"💿 Hey developer 👋. You can provide a way better UX than this when your app throws errors. Check out https://reactrouter.com/how-to/error-boundary for more information."
|
|
33
|
+
);
|
|
34
|
+
`}});if(xe(e))return c.createElement(Or,{title:"Unhandled Thrown Response!"},c.createElement("h1",{style:{fontSize:"24px"}},e.status," ",e.statusText),r);let a;if(e instanceof Error)a=e;else{let n=e==null?"Unknown Error":typeof e=="object"&&"toString"in e?e.toString():JSON.stringify(e);a=new Error(n)}return c.createElement(Or,{title:"Application Error!",isOutsideRemixApp:t},c.createElement("h1",{style:{fontSize:"24px"}},"Application Error"),c.createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},a.stack),r)}function Or({title:e,renderScripts:t,isOutsideRemixApp:r,children:a}){let{routeModules:n}=mt();return n.root?.Layout&&!r?a:c.createElement("html",{lang:"en"},c.createElement("head",null,c.createElement("meta",{charSet:"utf-8"}),c.createElement("meta",{name:"viewport",content:"width=device-width,initial-scale=1,viewport-fit=cover"}),c.createElement("title",null,e)),c.createElement("body",null,c.createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},a,t?c.createElement(ps,null):null)))}var gs=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{gs&&(window.__reactRouterVersion="7.11.0")}catch{}function wu(e,t){return Fr({basename:t?.basename,getContext:t?.getContext,future:t?.future,history:Xa({window:t?.window}),hydrationData:t?.hydrationData||go(),routes:e,mapRouteProperties:Dt,hydrationRouteProperties:Kr,dataStrategy:t?.dataStrategy,patchRoutesOnNavigation:t?.patchRoutesOnNavigation,window:t?.window,unstable_instrumentations:t?.unstable_instrumentations}).initialize()}function bu(e,t){return Fr({basename:t?.basename,getContext:t?.getContext,future:t?.future,history:Qa({window:t?.window}),hydrationData:t?.hydrationData||go(),routes:e,mapRouteProperties:Dt,hydrationRouteProperties:Kr,dataStrategy:t?.dataStrategy,patchRoutesOnNavigation:t?.patchRoutesOnNavigation,window:t?.window,unstable_instrumentations:t?.unstable_instrumentations}).initialize()}function go(){let e=window?.__staticRouterHydrationData;return e&&e.errors&&(e={...e,errors:ws(e.errors)}),e}function ws(e){if(!e)return null;let t=Object.entries(e),r={};for(let[a,n]of t)if(n&&n.__type==="RouteErrorResponse")r[a]=new Te(n.status,n.statusText,n.data,n.internal===!0);else if(n&&n.__type==="Error"){if(n.__subType){let o=window[n.__subType];if(typeof o=="function")try{let i=new o(n.message);i.stack="",r[a]=i}catch{}}if(r[a]==null){let o=new Error(n.message);o.stack="",r[a]=o}}else r[a]=n;return r}function Eu({basename:e,children:t,unstable_useTransitions:r,window:a}){let n=c.useRef();n.current==null&&(n.current=Xa({window:a,v5Compat:!0}));let o=n.current,[i,l]=c.useState({action:o.action,location:o.location}),s=c.useCallback(u=>{r===!1?l(u):c.startTransition(()=>l(u))},[r]);return c.useLayoutEffect(()=>o.listen(s),[o,s]),c.createElement(rt,{basename:e,children:t,location:i.location,navigationType:i.action,navigator:o,unstable_useTransitions:r})}function Ru({basename:e,children:t,unstable_useTransitions:r,window:a}){let n=c.useRef();n.current==null&&(n.current=Qa({window:a,v5Compat:!0}));let o=n.current,[i,l]=c.useState({action:o.action,location:o.location}),s=c.useCallback(u=>{r===!1?l(u):c.startTransition(()=>l(u))},[r]);return c.useLayoutEffect(()=>o.listen(s),[o,s]),c.createElement(rt,{basename:e,children:t,location:i.location,navigationType:i.action,navigator:o,unstable_useTransitions:r})}function bs({basename:e,children:t,history:r,unstable_useTransitions:a}){let[n,o]=c.useState({action:r.action,location:r.location}),i=c.useCallback(l=>{a===!1?o(l):c.startTransition(()=>o(l))},[a]);return c.useLayoutEffect(()=>r.listen(i),[r,i]),c.createElement(rt,{basename:e,children:t,location:n.location,navigationType:n.action,navigator:r,unstable_useTransitions:a})}bs.displayName="unstable_HistoryRouter";var wo=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,bo=c.forwardRef(function({onClick:t,discover:r="render",prefetch:a="none",relative:n,reloadDocument:o,replace:i,state:l,target:s,to:u,preventScrollReset:h,viewTransition:d,unstable_defaultShouldRevalidate:y,...f},p){let{basename:b,unstable_useTransitions:w}=c.useContext(he),S=typeof u=="string"&&wo.test(u),E=un(u,b);u=E.to;let C=Yi(u,{relative:n}),[L,x,P]=cs(a,f),g=Ss(u,{replace:i,state:l,target:s,preventScrollReset:h,relative:n,viewTransition:d,unstable_defaultShouldRevalidate:y,unstable_useTransitions:w});function T(j){t&&t(j),j.defaultPrevented||g(j)}let M=c.createElement("a",{...f,...P,href:E.absoluteURL||C,onClick:E.isExternal||o?t:T,ref:vs(p,x),target:s,"data-discover":!S&&r==="render"?"true":void 0});return L&&!S?c.createElement(c.Fragment,null,M,c.createElement(yo,{page:C})):M});bo.displayName="Link";var Es=c.forwardRef(function({"aria-current":t="page",caseSensitive:r=!1,className:a="",end:n=!1,style:o,to:i,viewTransition:l,children:s,...u},h){let d=Lt(i,{relative:u.relative}),y=ge(),f=c.useContext(We),{navigator:p,basename:b}=c.useContext(he),w=f!=null&&Os(d)&&l===!0,S=p.encodeLocation?p.encodeLocation(d).pathname:d.pathname,E=y.pathname,C=f&&f.navigation&&f.navigation.location?f.navigation.location.pathname:null;r||(E=E.toLowerCase(),C=C?C.toLowerCase():null,S=S.toLowerCase()),C&&b&&(C=fe(C,b)||C);const L=S!=="/"&&S.endsWith("/")?S.length-1:S.length;let x=E===S||!n&&E.startsWith(S)&&E.charAt(L)==="/",P=C!=null&&(C===S||!n&&C.startsWith(S)&&C.charAt(S.length)==="/"),g={isActive:x,isPending:P,isTransitioning:w},T=x?t:void 0,M;typeof a=="function"?M=a(g):M=[a,x?"active":null,P?"pending":null,w?"transitioning":null].filter(Boolean).join(" ");let j=typeof o=="function"?o(g):o;return c.createElement(bo,{...u,"aria-current":T,className:M,ref:h,style:j,to:i,viewTransition:l},typeof s=="function"?s(g):s)});Es.displayName="NavLink";var Eo=c.forwardRef(({discover:e="render",fetcherKey:t,navigate:r,reloadDocument:a,replace:n,state:o,method:i=zt,action:l,onSubmit:s,relative:u,preventScrollReset:h,viewTransition:d,unstable_defaultShouldRevalidate:y,...f},p)=>{let{unstable_useTransitions:b}=c.useContext(he),w=So(),S=Cs(l,{relative:u}),E=i.toLowerCase()==="get"?"get":"post",C=typeof l=="string"&&wo.test(l),L=x=>{if(s&&s(x),x.defaultPrevented)return;x.preventDefault();let P=x.nativeEvent.submitter,g=P?.getAttribute("formmethod")||i,T=()=>w(P||x.currentTarget,{fetcherKey:t,method:g,navigate:r,replace:n,state:o,relative:u,preventScrollReset:h,viewTransition:d,unstable_defaultShouldRevalidate:y});b&&r!==!1?c.startTransition(()=>T()):T()};return c.createElement("form",{ref:p,method:E,action:S,onSubmit:a?s:L,...f,"data-discover":!C&&e==="render"?"true":void 0})});Eo.displayName="Form";function Rs({getKey:e,storageKey:t,...r}){let a=c.useContext(tr),{basename:n}=c.useContext(he),o=ge(),i=Wr();Ls({getKey:e,storageKey:t});let l=c.useMemo(()=>{if(!a||!e)return null;let u=Tr(o,i,n,e);return u!==o.key?u:null},[]);if(!a||a.isSpaMode)return null;let s=((u,h)=>{if(!window.history.state||!window.history.state.key){let d=Math.random().toString(32).slice(2);window.history.replaceState({key:d},"")}try{let y=JSON.parse(sessionStorage.getItem(u)||"{}")[h||window.history.state.key];typeof y=="number"&&window.scrollTo(0,y)}catch(d){console.error(d),sessionStorage.removeItem(u)}}).toString();return c.createElement("script",{...r,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${s})(${JSON.stringify(t||Mr)}, ${JSON.stringify(l)})`}})}Rs.displayName="ScrollRestoration";function Ro(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function rr(e){let t=c.useContext(Ae);return I(t,Ro(e)),t}function aa(e){let t=c.useContext(We);return I(t,Ro(e)),t}function Ss(e,{target:t,replace:r,state:a,preventScrollReset:n,relative:o,viewTransition:i,unstable_defaultShouldRevalidate:l,unstable_useTransitions:s}={}){let u=jr(),h=ge(),d=Lt(e,{relative:o});return c.useCallback(y=>{if(wl(y,t)){y.preventDefault();let f=r!==void 0?r:ce(h)===ce(d),p=()=>u(e,{replace:f,state:a,preventScrollReset:n,relative:o,viewTransition:i,unstable_defaultShouldRevalidate:l});s?c.startTransition(()=>p()):p()}},[h,u,d,r,a,t,e,n,o,i,l,s])}function Su(e){Q(typeof URLSearchParams<"u","You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=c.useRef(Sr(e)),r=c.useRef(!1),a=ge(),n=c.useMemo(()=>bl(a.search,r.current?null:t.current),[a.search]),o=jr(),i=c.useCallback((l,s)=>{const u=Sr(typeof l=="function"?l(new URLSearchParams(n)):l);r.current=!0,o("?"+u,s)},[o,n]);return[n,i]}var Ps=0,xs=()=>`__${String(++Ps)}__`;function So(){let{router:e}=rr("useSubmit"),{basename:t}=c.useContext(he),r=el(),a=e.fetch,n=e.navigate;return c.useCallback(async(o,i={})=>{let{action:l,method:s,encType:u,formData:h,body:d}=Sl(o,t);if(i.navigate===!1){let y=i.fetcherKey||xs();await a(y,r,i.action||l,{unstable_defaultShouldRevalidate:i.unstable_defaultShouldRevalidate,preventScrollReset:i.preventScrollReset,formData:h,body:d,formMethod:i.method||s,formEncType:i.encType||u,flushSync:i.flushSync})}else await n(i.action||l,{unstable_defaultShouldRevalidate:i.unstable_defaultShouldRevalidate,preventScrollReset:i.preventScrollReset,formData:h,body:d,formMethod:i.method||s,formEncType:i.encType||u,replace:i.replace,state:i.state,fromRouteId:r,flushSync:i.flushSync,viewTransition:i.viewTransition})},[a,n,t,r])}function Cs(e,{relative:t}={}){let{basename:r}=c.useContext(he),a=c.useContext(ve);I(a,"useFormAction must be used inside a RouteContext");let[n]=a.matches.slice(-1),o={...Lt(e||".",{relative:t})},i=ge();if(e==null){o.search=i.search;let l=new URLSearchParams(o.search),s=l.getAll("index");if(s.some(h=>h==="")){l.delete("index"),s.filter(d=>d).forEach(d=>l.append("index",d));let h=l.toString();o.search=h?`?${h}`:""}}return(!e||e===".")&&n.route.index&&(o.search=o.search?o.search.replace(/^\?/,"?index&"):"?index"),r!=="/"&&(o.pathname=o.pathname==="/"?r:Me([r,o.pathname])),ce(o)}function Pu({key:e}={}){let{router:t}=rr("useFetcher"),r=aa("useFetcher"),a=c.useContext(Zt),n=c.useContext(ve),o=n.matches[n.matches.length-1]?.route.id;I(a,"useFetcher must be used inside a FetchersContext"),I(n,"useFetcher must be used inside a RouteContext"),I(o!=null,'useFetcher can only be used on routes that contain a unique "id"');let i=c.useId(),[l,s]=c.useState(e||i);e&&e!==l&&s(e);let{deleteFetcher:u,getFetcher:h,resetFetcher:d,fetch:y}=t;c.useEffect(()=>(h(l),()=>u(l)),[u,h,l]);let f=c.useCallback(async(x,P)=>{I(o,"No routeId available for fetcher.load()"),await y(l,o,x,P)},[l,o,y]),p=So(),b=c.useCallback(async(x,P)=>{await p(x,{...P,navigate:!1,fetcherKey:l})},[l,p]),w=c.useCallback(x=>d(l,x),[d,l]),S=c.useMemo(()=>{let x=c.forwardRef((P,g)=>c.createElement(Eo,{...P,navigate:!1,fetcherKey:l,ref:g}));return x.displayName="fetcher.Form",x},[l]),E=r.fetchers.get(l)||Nr,C=a.get(l);return c.useMemo(()=>({Form:S,submit:b,load:f,reset:w,...E,data:C}),[S,b,f,w,E,C])}function xu(){let e=aa("useFetchers");return Array.from(e.fetchers.entries()).map(([t,r])=>({...r,key:t}))}var Mr="react-router-scroll-positions",Ht={};function Tr(e,t,r,a){let n=null;return a&&(r!=="/"?n=a({...e,pathname:fe(e.pathname,r)||e.pathname},t):n=a(e,t)),n==null&&(n=e.key),n}function Ls({getKey:e,storageKey:t}={}){let{router:r}=rr("useScrollRestoration"),{restoreScrollPosition:a,preventScrollReset:n}=aa("useScrollRestoration"),{basename:o}=c.useContext(he),i=ge(),l=Wr(),s=tl();c.useEffect(()=>(window.history.scrollRestoration="manual",()=>{window.history.scrollRestoration="auto"}),[]),Ds(c.useCallback(()=>{if(s.state==="idle"){let u=Tr(i,l,o,e);Ht[u]=window.scrollY}try{sessionStorage.setItem(t||Mr,JSON.stringify(Ht))}catch(u){Q(!1,`Failed to save scroll positions in sessionStorage, <ScrollRestoration /> will not work properly (${u}).`)}window.history.scrollRestoration="auto"},[s.state,e,o,i,l,t])),typeof document<"u"&&(c.useLayoutEffect(()=>{try{let u=sessionStorage.getItem(t||Mr);u&&(Ht=JSON.parse(u))}catch{}},[t]),c.useLayoutEffect(()=>{let u=r?.enableScrollRestoration(Ht,()=>window.scrollY,e?(h,d)=>Tr(h,d,o,e):void 0);return()=>u&&u()},[r,o,e]),c.useLayoutEffect(()=>{if(a!==!1){if(typeof a=="number"){window.scrollTo(0,a);return}try{if(i.hash){let u=document.getElementById(decodeURIComponent(i.hash.slice(1)));if(u){u.scrollIntoView();return}}}catch{Q(!1,`"${i.hash.slice(1)}" is not a decodable element ID. The view will not scroll to it.`)}n!==!0&&window.scrollTo(0,0)}},[i,a,n]))}function Cu(e,t){let{capture:r}=t||{};c.useEffect(()=>{let a=r!=null?{capture:r}:void 0;return window.addEventListener("beforeunload",e,a),()=>{window.removeEventListener("beforeunload",e,a)}},[e,r])}function Ds(e,t){let{capture:r}={};c.useEffect(()=>{let a=r!=null?{capture:r}:void 0;return window.addEventListener("pagehide",e,a),()=>{window.removeEventListener("pagehide",e,a)}},[e,r])}function Lu({when:e,message:t}){let r=nl(e);c.useEffect(()=>{r.state==="blocked"&&(window.confirm(t)?setTimeout(r.proceed,0):r.reset())},[r,t]),c.useEffect(()=>{r.state==="blocked"&&!e&&r.reset()},[r,e])}function Os(e,{relative:t}={}){let r=c.useContext(Qt);I(r!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:a}=rr("useViewTransitionState"),n=Lt(e,{relative:t});if(!r.isTransitioning)return!1;let o=fe(r.currentLocation.pathname,a)||r.currentLocation.pathname,i=fe(r.nextLocation.pathname,a)||r.nextLocation.pathname;return Pt(n.pathname,i)!=null||Pt(n.pathname,o)!=null}function Du({basename:e,children:t,location:r="/"}){typeof r=="string"&&(r=Ce(r));let a="POP",n={pathname:r.pathname||"/",search:r.search||"",hash:r.hash||"",state:r.state!=null?r.state:null,key:r.key||"default"},o=Po();return c.createElement(rt,{basename:e,children:t,location:n,navigationType:a,navigator:o,static:!0,unstable_useTransitions:!1})}function Ou({context:e,router:t,hydrate:r=!0,nonce:a}){I(t&&e,"You must provide `router` and `context` to <StaticRouterProvider>");let n={router:t,navigator:Po(),static:!0,staticContext:e,basename:e.basename||"/"},o=new Map,i="";if(r!==!1){let s={loaderData:e.loaderData,actionData:e.actionData,errors:Ts(e.errors)};i=`window.__staticRouterHydrationData = JSON.parse(${ks(JSON.stringify(JSON.stringify(s)))});`}let{state:l}=n.router;return c.createElement(c.Fragment,null,c.createElement(Ae.Provider,{value:n},c.createElement(We.Provider,{value:l},c.createElement(Zt.Provider,{value:o},c.createElement(Qt.Provider,{value:{isTransitioning:!1}},c.createElement(rt,{basename:n.basename,location:l.location,navigationType:l.historyAction,navigator:n.navigator,static:n.static,unstable_useTransitions:!1},c.createElement(Ms,{routes:t.routes,future:t.future,state:l})))))),i?c.createElement("script",{suppressHydrationWarning:!0,nonce:a,dangerouslySetInnerHTML:{__html:i}}):null)}function Ms({routes:e,future:t,state:r}){return Ur(e,void 0,r,void 0,t)}function Ts(e){if(!e)return null;let t=Object.entries(e),r={};for(let[a,n]of t)xe(n)?r[a]={...n,__type:"RouteErrorResponse"}:n instanceof Error?r[a]={message:n.message,__type:"Error",...n.name!=="Error"?{__subType:n.name}:{}}:r[a]=n;return r}function Po(){return{createHref:xo,encodeLocation:Co,push(e){throw new Error(`You cannot use navigator.push() on the server because it is a stateless environment. This error was probably triggered when you did a \`navigate(${JSON.stringify(e)})\` somewhere in your app.`)},replace(e){throw new Error(`You cannot use navigator.replace() on the server because it is a stateless environment. This error was probably triggered when you did a \`navigate(${JSON.stringify(e)}, { replace: true })\` somewhere in your app.`)},go(e){throw new Error(`You cannot use navigator.go() on the server because it is a stateless environment. This error was probably triggered when you did a \`navigate(${e})\` somewhere in your app.`)},back(){throw new Error("You cannot use navigator.back() on the server because it is a stateless environment.")},forward(){throw new Error("You cannot use navigator.forward() on the server because it is a stateless environment.")}}}function Mu(e,t){return xi(e,{...t,mapRouteProperties:Dt})}function Tu(e,t,r={}){let a={},n=et(e,Dt,void 0,a),o=t.matches.map(l=>{let s=a[l.route.id]||l.route;return{...l,route:s}}),i=l=>`You cannot use router.${l}() on the server because it is a stateless environment`;return{get basename(){return t.basename},get future(){return{v8_middleware:!1,...r?.future}},get state(){return{historyAction:"POP",location:t.location,matches:o,loaderData:t.loaderData,actionData:t.actionData,errors:t.errors,initialized:!0,navigation:Ut,restoreScrollPosition:null,preventScrollReset:!1,revalidation:"idle",fetchers:new Map,blockers:new Map}},get routes(){return n},get window(){},initialize(){throw i("initialize")},subscribe(){throw i("subscribe")},enableScrollRestoration(){throw i("enableScrollRestoration")},navigate(){throw i("navigate")},fetch(){throw i("fetch")},revalidate(){throw i("revalidate")},createHref:xo,encodeLocation:Co,getFetcher(){return Nr},deleteFetcher(){throw i("deleteFetcher")},resetFetcher(){throw i("resetFetcher")},dispose(){throw i("dispose")},getBlocker(){return Qe},deleteBlocker(){throw i("deleteBlocker")},patchRoutes(){throw i("patchRoutes")},_internalFetchControllers:new Map,_internalSetRoutes(){throw i("_internalSetRoutes")},_internalSetStateDoNotUseOrYouWillBreakYourApp(){throw i("_internalSetStateDoNotUseOrYouWillBreakYourApp")}}}function xo(e){return typeof e=="string"?e:ce(e)}function Co(e){let t=typeof e=="string"?e:ce(e);t=t.replace(/ $/,"%20");let r=$s.test(t)?new URL(t):new URL(t,"http://localhost");return{pathname:r.pathname,search:r.search,hash:r.hash}}var $s=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Ns={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},Fs=/[&><\u2028\u2029]/g;function ks(e){return e.replace(Fs,t=>Ns[t])}export{iu as $,ru as A,Eu as B,hu as C,Ae as D,Te as E,Eo as F,Fr as G,Ru as H,Qe as I,Yl as J,mu as K,bo as L,Zs as M,Es as N,eu as O,yo as P,fu as Q,fl as R,ps as S,Kr as T,I as U,Qt as V,ou as W,Dt as X,as as Y,pu as Z,Ls as _,Nr as a,es as a$,cu as a0,su as a1,wu as a2,Is as a3,bu as a4,Xs as a5,ce as a6,Yt as a7,au as a8,Sr as a9,Ss as aA,Yr as aB,ge as aC,Ws as aD,Wr as aE,jr as aF,tl as aG,Bs as aH,Vi as aI,Ys as aJ,Hr as aK,Lt as aL,Js as aM,Vr as aN,Vs as aO,Ki as aP,Su as aQ,So as aR,Os as aS,ms as aT,Nn as aU,hr as aV,Il as aW,io as aX,Bl as aY,Tl as aZ,oe as a_,Mu as aa,Tu as ab,vi as ac,As as ad,xe as ae,Pt as af,De as ag,Ce as ah,$r as ai,js as aj,nu as ak,Hs as al,fi as am,bs as an,Lu as ao,Gs as ap,Jr as aq,Ks as ar,rl as as,Cu as at,nl as au,Pu as av,xu as aw,Cs as ax,Yi as ay,tt as az,Ut as b,_l as b0,et as b1,Fl as b2,Bi as b3,Wi as b4,no as b5,Rr as b6,xi as b7,Us as b8,fe as b9,ls as ba,br as bb,qe as bc,_i as bd,se as be,Ci as bf,kl as bg,du as bh,yu as c,vu as d,qs as e,Ko as f,rt as g,it as h,Qs as i,tu as j,Rs as k,Du as l,Ou as m,zs as n,We as o,Zt as p,tr as q,ft as r,he as s,gu as t,ve as u,Dr as v,uu as w,lu as x,Xa as y,qr as z};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as i,d as l,
|
|
1
|
+
import{_ as i,d as l,T as d,j as o}from"./mermaid.core.jAJTcMKc.js";var x=i((r,t)=>{const e=r.append("rect");if(e.attr("x",t.x),e.attr("y",t.y),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("width",t.width),e.attr("height",t.height),t.name&&e.attr("name",t.name),t.rx&&e.attr("rx",t.rx),t.ry&&e.attr("ry",t.ry),t.attrs!==void 0)for(const s in t.attrs)e.attr(s,t.attrs[s]);return t.class&&e.attr("class",t.class),e},"drawRect"),p=i((r,t)=>{const e={x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"};x(r,e).lower()},"drawBackgroundRect"),y=i((r,t)=>{const e=t.text.replace(d," "),s=r.append("text");s.attr("x",t.x),s.attr("y",t.y),s.attr("class","legend"),s.style("text-anchor",t.anchor),t.class&&s.attr("class",t.class);const a=s.append("tspan");return a.attr("x",t.x+t.textMargin*2),a.text(e),s},"drawText"),m=i((r,t,e,s)=>{const a=r.append("image");a.attr("x",t),a.attr("y",e);const n=o.sanitizeUrl(s);a.attr("xlink:href",n)},"drawImage"),g=i((r,t,e,s)=>{const a=r.append("use");a.attr("x",t),a.attr("y",e);const n=o.sanitizeUrl(s);a.attr("xlink:href",`#${n}`)},"drawEmbeddedImage"),h=i(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),f=i(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj"),w=i(()=>{let r=l(".mermaidTooltip");return r.empty()&&(r=l("body").append("div").attr("class","mermaidTooltip").style("opacity",0).style("position","absolute").style("text-align","center").style("max-width","200px").style("padding","2px").style("font-size","12px").style("background","#ffffde").style("border","1px solid #333").style("border-radius","2px").style("pointer-events","none").style("z-index","100")),r},"createTooltip");export{p as a,f as b,w as c,x as d,g as e,m as f,h as g,y as h};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as i}from"./mermaid.core.
|
|
1
|
+
import{_ as i}from"./mermaid.core.jAJTcMKc.js";var r=class{constructor(t){this.init=t,this.records=this.init()}static{i(this,"ImperativeState")}reset(){this.records=this.init()}};export{r as I};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import{a$ as Ue,Y as ee,ab as Ee,q as te,t as ze,m as be,b0 as Ne,aN as qe,E as j,ag as Ce,h as Q,b1 as Ve,a5 as We,i as Je,aU as Xe,b2 as xe,b3 as se,b4 as oe,b5 as K,ae as A,b6 as ke,b7 as Qe,b8 as Ke,a0 as Ge,a1 as Ye,$ as Ze,O as et,J as tt,v as $,aj as rt,al as at,ai as nt,b9 as U,ba as st,bb as ie,bc as ot,bd as re,be as I,bf as it,bg as lt,bh as ut}from"./chunk-JMJ3UQ3L.BQJEJHu4.js";import{r as T,R as D,a as dt}from"./index.5dn-Zm-2.js";var P={},le;function ct(){if(le)return P;le=1,Object.defineProperty(P,"__esModule",{value:!0}),P.parseCookie=u,P.parse=u,P.stringifyCookie=s,P.stringifySetCookie=i,P.serialize=i,P.parseSetCookie=l,P.stringifySetCookie=i,P.serialize=i;const e=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,t=/^[\u0021-\u003A\u003C-\u007E]*$/,r=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,a=/^[\u0020-\u003A\u003D-\u007E]*$/,n=/^-?\d+$/,o=Object.prototype.toString,d=(()=>{const f=function(){};return f.prototype=Object.create(null),f})();function u(f,S){const m=new d,c=f.length;if(c<2)return m;const g=S?.decode||y;let v=0;do{const C=p(f,v,c);if(C===-1)break;const E=h(f,v,c);if(C>E){v=f.lastIndexOf(";",C-1)+1;continue}const k=w(f,v,C);m[k]===void 0&&(m[k]=g(w(f,C+1,E))),v=E+1}while(v<c);return m}function s(f,S){const m=S?.encode||encodeURIComponent,c=[];for(const g of Object.keys(f)){const v=f[g];if(v===void 0)continue;if(!e.test(g))throw new TypeError(`cookie name is invalid: ${g}`);const C=m(v);if(!t.test(C))throw new TypeError(`cookie val is invalid: ${v}`);c.push(`${g}=${C}`)}return c.join("; ")}function i(f,S,m){const c=typeof f=="object"?f:{...m,name:f,value:String(S)},v=(typeof S=="object"?S:m)?.encode||encodeURIComponent;if(!e.test(c.name))throw new TypeError(`argument name is invalid: ${c.name}`);const C=c.value?v(c.value):"";if(!t.test(C))throw new TypeError(`argument val is invalid: ${c.value}`);let E=c.name+"="+C;if(c.maxAge!==void 0){if(!Number.isInteger(c.maxAge))throw new TypeError(`option maxAge is invalid: ${c.maxAge}`);E+="; Max-Age="+c.maxAge}if(c.domain){if(!r.test(c.domain))throw new TypeError(`option domain is invalid: ${c.domain}`);E+="; Domain="+c.domain}if(c.path){if(!a.test(c.path))throw new TypeError(`option path is invalid: ${c.path}`);E+="; Path="+c.path}if(c.expires){if(!R(c.expires)||!Number.isFinite(c.expires.valueOf()))throw new TypeError(`option expires is invalid: ${c.expires}`);E+="; Expires="+c.expires.toUTCString()}if(c.httpOnly&&(E+="; HttpOnly"),c.secure&&(E+="; Secure"),c.partitioned&&(E+="; Partitioned"),c.priority)switch(typeof c.priority=="string"?c.priority.toLowerCase():void 0){case"low":E+="; Priority=Low";break;case"medium":E+="; Priority=Medium";break;case"high":E+="; Priority=High";break;default:throw new TypeError(`option priority is invalid: ${c.priority}`)}if(c.sameSite)switch(typeof c.sameSite=="string"?c.sameSite.toLowerCase():c.sameSite){case!0:case"strict":E+="; SameSite=Strict";break;case"lax":E+="; SameSite=Lax";break;case"none":E+="; SameSite=None";break;default:throw new TypeError(`option sameSite is invalid: ${c.sameSite}`)}return E}function l(f,S){const m=S?.decode||y,c=f.length,g=h(f,0,c),v=p(f,0,g),C=v===-1?{name:"",value:m(w(f,0,g))}:{name:w(f,0,v),value:m(w(f,v+1,g))};let E=g+1;for(;E<c;){const k=h(f,E,c),O=p(f,E,k),x=O===-1?w(f,E,k):w(f,E,O),b=O===-1?void 0:w(f,O+1,k);switch(x.toLowerCase()){case"httponly":C.httpOnly=!0;break;case"secure":C.secure=!0;break;case"partitioned":C.partitioned=!0;break;case"domain":C.domain=b;break;case"path":C.path=b;break;case"max-age":b&&n.test(b)&&(C.maxAge=Number(b));break;case"expires":if(!b)break;const H=new Date(b);Number.isFinite(H.valueOf())&&(C.expires=H);break;case"priority":if(!b)break;const _=b.toLowerCase();(_==="low"||_==="medium"||_==="high")&&(C.priority=_);break;case"samesite":if(!b)break;const M=b.toLowerCase();(M==="lax"||M==="strict"||M==="none")&&(C.sameSite=M);break}E=k+1}return C}function h(f,S,m){const c=f.indexOf(";",S);return c===-1?m:c}function p(f,S,m){const c=f.indexOf("=",S);return c<m?c:-1}function w(f,S,m){let c=S,g=m;do{const v=f.charCodeAt(c);if(v!==32&&v!==9)break}while(++c<g);for(;g>c;){const v=f.charCodeAt(g-1);if(v!==32&&v!==9)break;g--}return f.slice(c,g)}function y(f){if(f.indexOf("%")===-1)return f;try{return decodeURIComponent(f)}catch{return f}}function R(f){return o.call(f)==="[object Date]"}return P}var ue=ct(),F={exports:{}},de;function ft(){if(de)return F.exports;de=1;var e={decodeValues:!0,map:!1,silent:!1};function t(s){return typeof s!="string"||s in{}}function r(){return Object.create(null)}function a(s){return typeof s=="string"&&!!s.trim()}function n(s,i){var l=s.split(";").filter(a),h=l.shift(),p=o(h),w=p.name,y=p.value;if(i=i?Object.assign({},e,i):e,t(w))return null;try{y=i.decodeValues?decodeURIComponent(y):y}catch(f){console.error("set-cookie-parser: failed to decode cookie value. Set options.decodeValues=false to disable decoding.",f)}var R=r();return R.name=w,R.value=y,l.forEach(function(f){var S=f.split("="),m=S.shift().trimLeft().toLowerCase();if(!t(m)){var c=S.join("=");if(m==="expires")R.expires=new Date(c);else if(m==="max-age"){var g=parseInt(c,10);Number.isNaN(g)||(R.maxAge=g)}else m==="secure"?R.secure=!0:m==="httponly"?R.httpOnly=!0:m==="samesite"?R.sameSite=c:m==="partitioned"?R.partitioned=!0:m&&(R[m]=c)}}),R}function o(s){var i="",l="",h=s.split("=");return h.length>1?(i=h.shift(),l=h.join("=")):l=s,{name:i,value:l}}function d(s,i){if(i=i?Object.assign({},e,i):e,!s)return i.map?r():[];if(s.headers)if(typeof s.headers.getSetCookie=="function")s=s.headers.getSetCookie();else if(s.headers["set-cookie"])s=s.headers["set-cookie"];else{var l=s.headers[Object.keys(s.headers).find(function(p){return p.toLowerCase()==="set-cookie"})];!l&&s.headers.cookie&&!i.silent&&console.warn("Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning."),s=l}if(Array.isArray(s)||(s=[s]),i.map){var h=r();return s.filter(a).reduce(function(p,w){var y=n(w,i);return y&&!t(y.name)&&(p[y.name]=y),p},h)}else return s.filter(a).map(function(p){return n(p,i)}).filter(Boolean)}function u(s){if(Array.isArray(s))return s;if(typeof s!="string")return[];var i=[],l=0,h,p,w,y,R;function f(){for(;l<s.length&&/\s/.test(s.charAt(l));)l+=1;return l<s.length}function S(){return p=s.charAt(l),p!=="="&&p!==";"&&p!==","}for(;l<s.length;){for(h=l,R=!1;f();)if(p=s.charAt(l),p===","){for(w=l,l+=1,f(),y=l;l<s.length&&S();)l+=1;l<s.length&&s.charAt(l)==="="?(R=!0,l=y,i.push(s.substring(h,w)),h=l):l=w+1}else l+=1;(!R||l>=s.length)&&i.push(s.substring(h,s.length))}return i}return F.exports=d,F.exports.parse=d,F.exports.parseString=n,F.exports.splitCookiesString=u,F.exports}var ht=ft(),pt={};function Zt({context:e,url:t,nonce:r}){typeof t=="string"&&(t=new URL(t));let{manifest:a,routeModules:n,criticalCss:o,serverHandoffString:d}=e,u=Ue(a.routes,n,e.future,e.isSpaMode);e.staticHandlerContext.loaderData={...e.staticHandlerContext.loaderData};for(let i of e.staticHandlerContext.matches){let l=i.route.id,h=n[l],p=e.manifest.routes[l];h&&p&&ee(l,h.clientLoader,p.hasLoader,e.isSpaMode)&&(h.HydrateFallback||!p.hasLoader)&&delete e.staticHandlerContext.loaderData[l]}let s=Ee(u,e.staticHandlerContext);return T.createElement(T.Fragment,null,T.createElement(te.Provider,{value:{manifest:a,routeModules:n,criticalCss:o,serverHandoffString:d,future:e.future,ssr:e.ssr,isSpaMode:e.isSpaMode,routeDiscovery:e.routeDiscovery,serializeError:e.serializeError,renderMeta:e.renderMeta}},T.createElement(ze,{location:s.state.location},T.createElement(be,{router:s,context:e.staticHandlerContext,hydrate:!1}))),e.serverHandoffStream?T.createElement(T.Suspense,null,T.createElement(Ne,{context:e,identifier:0,reader:e.serverHandoffStream.getReader(),textDecoder:new TextDecoder,nonce:r})):null)}function er(e,t){return function({initialEntries:a,initialIndex:n,hydrationData:o,future:d}){let u=T.useRef(),s=T.useRef();if(u.current==null){s.current={future:{unstable_subResourceIntegrity:d?.unstable_subResourceIntegrity===!0,v8_middleware:d?.v8_middleware===!0},manifest:{routes:{},entry:{imports:[],module:""},url:"",version:""},routeModules:{},ssr:!1,isSpaMode:!1,routeDiscovery:{mode:"lazy",manifestPath:"/__manifest"}};let i=Te(Ve(e,l=>l),t!==void 0?t:d?.v8_middleware?new Q:{},s.current.manifest,s.current.routeModules);u.current=We(i,{initialEntries:a,initialIndex:n,hydrationData:o})}return T.createElement(te.Provider,{value:s.current},T.createElement(Je,{router:u.current}))}}function Te(e,t,r,a,n){return e.map(o=>{if(!o.id)throw new Error("Expected a route.id in react-router processRoutes() function");let d={id:o.id,path:o.path,index:o.index,Component:o.Component?Ze(o.Component):void 0,HydrateFallback:o.HydrateFallback?Ye(o.HydrateFallback):void 0,ErrorBoundary:o.ErrorBoundary?Ge(o.ErrorBoundary):void 0,action:o.action?s=>o.action({...s,context:t}):void 0,loader:o.loader?s=>o.loader({...s,context:t}):void 0,middleware:o.middleware?o.middleware.map(s=>(...i)=>s({...i[0],context:t},i[1])):void 0,handle:o.handle,shouldRevalidate:o.shouldRevalidate},u={id:o.id,path:o.path,index:o.index,parentId:n,hasAction:o.action!=null,hasLoader:o.loader!=null,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasErrorBoundary:o.ErrorBoundary!=null,module:"build/stub-path-to-module.js",clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0};return r.routes[d.id]=u,a[o.id]={default:d.Component||et,ErrorBoundary:d.ErrorBoundary||void 0,handle:o.handle,links:o.links,meta:o.meta,shouldRevalidate:o.shouldRevalidate},o.children&&(d.children=Te(o.children,t,r,a,d.id)),d})}var ae=new TextEncoder,mt=async(e,t)=>{let r=ae.encode(e),a=await De(t,["sign"]),n=await crypto.subtle.sign("HMAC",a,r),o=btoa(String.fromCharCode(...new Uint8Array(n))).replace(/=+$/,"");return e+"."+o},yt=async(e,t)=>{let r=e.lastIndexOf("."),a=e.slice(0,r),n=e.slice(r+1),o=ae.encode(a),d=await De(t,["verify"]);try{let u=wt(atob(n));return await crypto.subtle.verify("HMAC",d,u,o)?a:!1}catch{return!1}},De=async(e,t)=>crypto.subtle.importKey("raw",ae.encode(e),{name:"HMAC",hash:"SHA-256"},!1,t);function wt(e){let t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}var He=(e,t={})=>{let{secrets:r=[],...a}={path:"/",sameSite:"lax",...t};return bt(e,a.expires),{get name(){return e},get isSigned(){return r.length>0},get expires(){return typeof a.maxAge<"u"?new Date(Date.now()+a.maxAge*1e3):a.expires},async parse(n,o){if(!n)return null;let d=ue.parse(n,{...a,...o});if(e in d){let u=d[e];return typeof u=="string"&&u!==""?await Rt(u,r):""}else return null},async serialize(n,o){return ue.serialize(e,n===""?"":await gt(n,r),{...a,...o})}}},_e=e=>e!=null&&typeof e.name=="string"&&typeof e.isSigned=="boolean"&&typeof e.parse=="function"&&typeof e.serialize=="function";async function gt(e,t){let r=vt(e);return t.length>0&&(r=await mt(r,t[0])),r}async function Rt(e,t){if(t.length>0){for(let r of t){let a=await yt(e,r);if(a!==!1)return ce(a)}return null}return ce(e)}function vt(e){return btoa(Et(encodeURIComponent(JSON.stringify(e))))}function ce(e){try{return JSON.parse(decodeURIComponent(St(atob(e))))}catch{return{}}}function St(e){let t=e.toString(),r="",a=0,n,o;for(;a<t.length;)n=t.charAt(a++),/[\w*+\-./@]/.exec(n)?r+=n:(o=n.charCodeAt(0),o<256?r+="%"+fe(o,2):r+="%u"+fe(o,4).toUpperCase());return r}function fe(e,t){let r=e.toString(16);for(;r.length<t;)r="0"+r;return r}function Et(e){let t=e.toString(),r="",a=0,n,o;for(;a<t.length;){if(n=t.charAt(a++),n==="%"){if(t.charAt(a)==="u"){if(o=t.slice(a+1,a+5),/^[\da-f]{4}$/i.exec(o)){r+=String.fromCharCode(parseInt(o,16)),a+=5;continue}}else if(o=t.slice(a,a+2),/^[\da-f]{2}$/i.exec(o)){r+=String.fromCharCode(parseInt(o,16)),a+=2;continue}}r+=n}return r}function bt(e,t){ke(!t,`The "${e}" cookie has an "expires" property set. This will cause the expires value to not be updated when the session is committed. Instead, you should set the expires value when serializing the cookie. You can use \`commitSession(session, { expires })\` if using a session storage object, or \`cookie.serialize("value", { expires })\` if you're using the cookie directly.`)}function Ct(e){return Object.keys(e).reduce((t,r)=>{let a=e[r];return a&&(t[r]=a.module),t},{})}var xt=(e=>(e.Development="development",e.Production="production",e.Test="test",e))(xt||{});function kt(e){return e==="development"||e==="production"||e==="test"}function V(e,t){if(e instanceof Error&&t!=="development"){let r=new Error("Unexpected Server Error");return r.stack=void 0,r}return e}function N(e,t){return Object.entries(e).reduce((r,[a,n])=>Object.assign(r,{[a]:V(n,t)}),{})}function Pe(e,t){let r=V(e,t);return{message:r.message,stack:r.stack}}function he(e,t){if(!e)return null;let r=Object.entries(e),a={};for(let[n,o]of r)if(A(o))a[n]={...o,__type:"RouteErrorResponse"};else if(o instanceof Error){let d=V(o,t);a[n]={message:d.message,stack:d.stack,__type:"Error",...d.name!=="Error"?{__subType:d.name}:{}}}else a[n]=o;return a}function G(e,t,r){let a=Ce(e,t,r);return a?a.map(n=>({params:n.params,pathname:n.pathname,route:n.route})):null}async function pe(e,t){let r=await e({request:Dt(Tt(t.request)),params:t.params,context:t.context,unstable_pattern:t.unstable_pattern});if(ot(r)&&r.init&&r.init.status&&re(r.init.status))throw new Response(null,r.init);return r}function Tt(e){let t=new URL(e.url),r=t.searchParams.getAll("index");t.searchParams.delete("index");let a=[];for(let o of r)o&&a.push(o);for(let o of a)t.searchParams.append("index",o);let n={method:e.method,body:e.body,headers:e.headers,signal:e.signal};return n.body&&(n.duplex="half"),new Request(t.href,n)}function Dt(e){let t=new URL(e.url);t.searchParams.delete("_routes");let r={method:e.method,body:e.body,headers:e.headers,signal:e.signal};return r.body&&(r.duplex="half"),new Request(t.href,r)}function z(e,t){if(e===!1||e===null||typeof e>"u")throw console.error("The following error is a bug in React Router; please open an issue! https://github.com/remix-run/react-router/issues/new/choose"),new Error(t)}var Oe="__reactRouterDevServerHooks";function tr(e){globalThis[Oe]=e}function W(){return globalThis[Oe]}function Ae(e,t){if(typeof process<"u")try{if(pt?.IS_RR_BUILD_REQUEST==="yes")return e.headers.get(t)}catch{}return null}function Le(e){let t={};return Object.values(e).forEach(r=>{if(r){let a=r.parentId||"";t[a]||(t[a]=[]),t[a].push(r)}}),t}function Ie(e,t="",r=Le(e)){return(r[t]||[]).map(a=>({...a,children:Ie(e,a.id,r)}))}function Fe(e,t,r="",a=Le(e)){return(a[r]||[]).map(n=>{let o={hasErrorBoundary:n.id==="root"||n.module.ErrorBoundary!=null,id:n.id,path:n.path,middleware:n.module.middleware,loader:n.module.loader?async d=>{let u=Ae(d.request,"X-React-Router-Prerender-Data");if(u!=null){let i=u&&decodeURI(u);z(i,"Missing prerendered data for route");let l=new TextEncoder().encode(i),h=new ReadableStream({start(y){y.enqueue(l),y.close()}}),w=(await tt(h,global)).value;if(w&&$ in w){let y=w[$],R={status:y.status};throw y.reload?rt(y.redirect,R):y.replace?at(y.redirect,R):nt(y.redirect,R)}else{z(w&&n.id in w,"Unable to decode prerendered data");let y=w[n.id];return z("data"in y,"Unable to process prerendered data"),y.data}}return await pe(n.module.loader,d)}:void 0,action:n.module.action?d=>pe(n.module.action,d):void 0,handle:n.module.handle};return n.index?{index:!0,...o}:{caseSensitive:n.caseSensitive,children:Fe(e,t,n.id,a),...o}})}function me(e){return K(JSON.stringify(e))}function ne(e,t){return Ht(e,r=>{let a=t.routes[r.route.id];return z(a,`Route with id "${r.route.id}" not found in build`),a.module.headers})}function Ht(e,t,r){let a=e.errors?e.matches.findIndex(u=>e.errors[u.route.id]):-1,n=a>=0?e.matches.slice(0,a+1):e.matches,o;if(a>=0){let{actionHeaders:u,actionData:s,loaderHeaders:i,loaderData:l}=e;e.matches.slice(a).some(h=>{let p=h.route.id;return u[p]&&(!s||!s.hasOwnProperty(p))?o=u[p]:i[p]&&!l.hasOwnProperty(p)&&(o=i[p]),o!=null})}const d=new Headers(r);return n.reduce((u,s,i)=>{let{id:l}=s.route,h=e.loaderHeaders[l]||new Headers,p=e.actionHeaders[l]||new Headers,w=o!=null&&i===n.length-1,y=w&&o!==h&&o!==p,R=t(s);if(R==null){let S=new Headers(u);return y&&L(o,S),L(p,S),L(h,S),S}let f=new Headers(typeof R=="function"?R({loaderHeaders:h,parentHeaders:u,actionHeaders:p,errorHeaders:w?o:void 0}):R);return y&&L(o,f),L(p,f),L(h,f),L(u,f),f},new Headers(d))}function L(e,t){let r=e.get("Set-Cookie");if(r){let a=ht.splitCookiesString(r),n=new Set(t.getSetCookie());a.forEach(o=>{n.has(o)||t.append("Set-Cookie",o)})}}var je=new Set([...lt,304]);async function _t(e,t,r,a,n,o,d){try{let l=new Request(n,{method:a.method,body:a.body,headers:a.headers,signal:a.signal,...a.body?{duplex:"half"}:void 0}),h=await r.query(l,{requestContext:o,skipLoaderErrorBubbling:!0,skipRevalidation:!0,generateMiddlewareResponse:e.future.v8_middleware?async p=>{try{let w=await p(l);return u(w)}catch(w){return s(w)}}:void 0});return u(h)}catch(l){return s(l)}function u(l){return I(l)?l:i(l)}function s(l){return d(l),B(a,e,t,{result:{error:l},headers:new Headers,status:500})}function i(l){let h=ne(l,e);if(re(l.statusCode)&&h.has("Location"))return new Response(null,{status:l.statusCode,headers:h});l.errors&&(Object.values(l.errors).forEach(w=>{(!A(w)||w.error)&&d(w)}),l.errors=N(l.errors,t));let p;return l.errors?p={error:Object.values(l.errors)[0]}:p={data:Object.values(l.actionData||{})[0]},B(a,e,t,{result:p,headers:h,status:l.statusCode})}}async function Pt(e,t,r,a,n,o,d){let u=new URL(a.url).searchParams.get("_routes"),s=u?new Set(u.split(",")):null;try{let p=new Request(n,{headers:a.headers,signal:a.signal}),w=await r.query(p,{requestContext:o,filterMatchesToLoad:y=>!s||s.has(y.route.id),skipLoaderErrorBubbling:!0,generateMiddlewareResponse:e.future.v8_middleware?async y=>{try{let R=await y(p);return i(R)}catch(R){return l(R)}}:void 0});return i(w)}catch(p){return l(p)}function i(p){return I(p)?p:h(p)}function l(p){return d(p),B(a,e,t,{result:{error:p},headers:new Headers,status:500})}function h(p){let w=ne(p,e);if(re(p.statusCode)&&w.has("Location"))return new Response(null,{status:p.statusCode,headers:w});p.errors&&(Object.values(p.errors).forEach(f=>{(!A(f)||f.error)&&d(f)}),p.errors=N(p.errors,t));let y={},R=new Set(p.matches.filter(f=>s?s.has(f.route.id):f.route.loader!=null).map(f=>f.route.id));if(p.errors)for(let[f,S]of Object.entries(p.errors))y[f]={error:S};for(let[f,S]of Object.entries(p.loaderData))!(f in y)&&R.has(f)&&(y[f]={data:S});return B(a,e,t,{result:y,headers:w,status:p.statusCode})}}function B(e,t,r,{result:a,headers:n,status:o}){let d=new Headers(n);return d.set("X-Remix-Response","yes"),je.has(o)?new Response(null,{status:o,headers:d}):(d.set("Content-Type","text/x-script"),d.delete("Content-Length"),new Response(Y(a,e.signal,t.entry.module.streamTimeout,r),{status:o||200,headers:d}))}function ye(e,t,r,a){let n=Ot(e.status,e.headers,r.basename),o=new Headers(e.headers);return o.delete("Location"),o.set("Content-Type","text/x-script"),B(t,r,a,{result:t.method==="GET"?{[$]:n}:n,headers:o,status:xe})}function Ot(e,t,r){let a=t.get("Location");return r&&(a=U(a,r)||a),{redirect:a,status:e,revalidate:t.has("X-Remix-Revalidate")||t.has("Set-Cookie"),reload:t.has("X-Remix-Reload-Document"),replace:t.has("X-Remix-Replace")}}function Y(e,t,r,a){let n=new AbortController,o=setTimeout(()=>n.abort(new Error("Server Timeout")),typeof r=="number"?r:4950);return t.addEventListener("abort",()=>clearTimeout(o)),ut(e,{signal:n.signal,plugins:[d=>{if(d instanceof Error){let{name:u,message:s,stack:i}=a==="production"?V(d,a):d;return["SanitizedError",u,s,i]}if(d instanceof j){let{data:u,status:s,statusText:i}=d;return["ErrorResponse",u,s,i]}if(d&&typeof d=="object"&&$ in d)return["SingleFetchRedirect",d[$]]}],postPlugins:[d=>{if(d&&typeof d=="object")return["SingleFetchClassInstance",Object.fromEntries(Object.entries(d))]},()=>["SingleFetchFallback"]]})}function we(e,t){let r=Ie(e.routes),a=Fe(e.routes,e.future),n=kt(t)?t:"production",o=Qe(a,{basename:e.basename,unstable_instrumentations:e.entry.module.unstable_instrumentations}),d=e.entry.module.handleError||((s,{request:i})=>{n!=="test"&&!i.signal.aborted&&console.error(A(s)&&s.error?s.error:s)}),u=async(s,i)=>{let l={},h,p=g=>{t==="development"&&W()?.processRequestError?.(g),d(g,{context:h,params:l,request:s})};if(e.future.v8_middleware){if(i&&!(i instanceof Q)){let g=new Error("Invalid `context` value provided to `handleRequest`. When middleware is enabled you must return an instance of `RouterContextProvider` from your `getLoadContext` function.");return p(g),q(g,n)}h=i||new Q}else h=i||{};let w=new URL(s.url),y=e.basename||"/",R=w.pathname;U(R,y)==="/_root.data"?R=y:R.endsWith(".data")&&(R=R.replace(/\.data$/,"")),U(R,y)!=="/"&&R.endsWith("/")&&(R=R.slice(0,-1));let f=Ae(s,"X-React-Router-SPA-Mode")==="yes";if(!e.ssr){let g=decodeURI(R);if(y!=="/"){let v=U(g,y);if(v==null)return d(new j(404,"Not Found",`Refusing to prerender the \`${g}\` path because it does not start with the basename \`${y}\``),{context:h,params:l,request:s}),new Response("Not Found",{status:404,statusText:"Not Found"});g=v}if(e.prerender.length===0)f=!0;else if(!e.prerender.includes(g)&&!e.prerender.includes(g+"/")){if(w.pathname.endsWith(".data"))return d(new j(404,"Not Found",`Refusing to SSR the path \`${g}\` because \`ssr:false\` is set and the path is not included in the \`prerender\` config, so in production the path will be a 404.`),{context:h,params:l,request:s}),new Response("Not Found",{status:404,statusText:"Not Found"});f=!0}}let S=st(e.routeDiscovery.manifestPath,y);if(w.pathname===S)try{return await At(e,r,w)}catch(g){return p(g),new Response("Unknown Server Error",{status:500})}let m=G(r,R,e.basename);m&&m.length>0&&Object.assign(l,m[0].params);let c;if(w.pathname.endsWith(".data")){let g=new URL(s.url);g.pathname=R;let v=G(r,g.pathname,e.basename);c=await Lt(n,e,o,s,g,h,p),ie(c)&&(c=ye(c,s,e,n)),e.entry.module.handleDataRequest&&(c=await e.entry.module.handleDataRequest(c,{context:h,params:v?v[0].params:{},request:s}),ie(c)&&(c=ye(c,s,e,n)))}else if(!f&&m&&m[m.length-1].route.module.default==null&&m[m.length-1].route.module.ErrorBoundary==null)c=await Ft(n,e,o,m.slice(-1)[0].route.id,s,h,p);else{let{pathname:g}=w,v;e.unstable_getCriticalCss?v=await e.unstable_getCriticalCss({pathname:g}):t==="development"&&W()?.getCriticalCss&&(v=await W()?.getCriticalCss?.(g)),c=await It(n,e,o,s,h,p,f,v)}return s.method==="HEAD"?new Response(null,{headers:c.headers,status:c.status,statusText:c.statusText}):c};return e.entry.module.unstable_instrumentations&&(u=Ke(u,e.entry.module.unstable_instrumentations.map(s=>s.handler).filter(Boolean))),{routes:r,dataRoutes:a,serverMode:n,staticHandler:o,errorHandler:d,requestHandler:u}}var rr=(e,t)=>{let r,a,n,o,d,u;return async function(i,l){if(r=typeof e=="function"?await e():e,typeof e=="function"){let h=we(r,t);a=h.routes,n=h.serverMode,o=h.staticHandler,d=h.errorHandler,u=h.requestHandler}else if(!a||!n||!o||!d||!u){let h=we(r,t);a=h.routes,n=h.serverMode,o=h.staticHandler,d=h.errorHandler,u=h.requestHandler}return u(i,l)}};async function At(e,t,r){if(e.assets.version!==r.searchParams.get("version"))return new Response(null,{status:204,headers:{"X-Remix-Reload-Document":"true"}});let a={};if(r.searchParams.has("paths")){let n=new Set;(r.searchParams.get("paths")||"").split(",").filter(Boolean).forEach(u=>{u.startsWith("/")||(u=`/${u}`);let s=u.split("/").slice(1);s.forEach((i,l)=>{let h=s.slice(0,l+1).join("/");n.add(`/${h}`)})});for(let u of n){let s=G(t,u,e.basename);if(s)for(let i of s){let l=i.route.id,h=e.assets.routes[l];h&&(a[l]=h)}}return Response.json(a,{headers:{"Cache-Control":"public, max-age=31536000, immutable"}})}return new Response("Invalid Request",{status:400})}async function Lt(e,t,r,a,n,o,d){return a.method!=="GET"?await _t(t,e,r,a,n,o,d):await Pt(t,e,r,a,n,o,d)}async function It(e,t,r,a,n,o,d,u){try{let i=await r.query(a,{requestContext:n,generateMiddlewareResponse:t.future.v8_middleware?async l=>{try{let h=await l(a);return I(h)||(h=await s(h,d)),h}catch(h){return o(h),new Response(null,{status:500})}}:void 0});return I(i)||(i=await s(i,d)),i}catch(i){return o(i),new Response(null,{status:500})}async function s(i,l){let h=ne(i,t);if(je.has(i.statusCode))return new Response(null,{status:i.statusCode,headers:h});i.errors&&(Object.values(i.errors).forEach(f=>{(!A(f)||f.error)&&o(f)}),i.errors=N(i.errors,e));let p={loaderData:i.loaderData,actionData:i.actionData,errors:he(i.errors,e)},w={basename:t.basename,future:t.future,routeDiscovery:t.routeDiscovery,ssr:t.ssr,isSpaMode:l},y={manifest:t.assets,routeModules:Ct(t.routes),staticHandlerContext:i,criticalCss:u,serverHandoffString:me({...w,criticalCss:u}),serverHandoffStream:Y(p,a.signal,t.entry.module.streamTimeout,e),renderMeta:{},future:t.future,ssr:t.ssr,routeDiscovery:t.routeDiscovery,isSpaMode:l,serializeError:f=>Pe(f,e)},R=t.entry.module.default;try{return await R(a,i.statusCode,h,y,n)}catch(f){o(f);let S=f;if(I(f))try{let c=await $t(f);S=new j(f.status,f.statusText,c)}catch{}i=it(r.dataRoutes,i,S),i.errors&&(i.errors=N(i.errors,e));let m={loaderData:i.loaderData,actionData:i.actionData,errors:he(i.errors,e)};y={...y,staticHandlerContext:i,serverHandoffString:me(w),serverHandoffStream:Y(m,a.signal,t.entry.module.streamTimeout,e),renderMeta:{}};try{return await R(a,i.statusCode,h,y,n)}catch(c){return o(c),q(c,e)}}}}async function Ft(e,t,r,a,n,o,d){try{let i=await r.queryRoute(n,{routeId:a,requestContext:o,generateMiddlewareResponse:t.future.v8_middleware?async l=>{try{let h=await l(n);return u(h)}catch(h){return s(h)}}:void 0});return u(i)}catch(i){return s(i)}function u(i){return I(i)?i:typeof i=="string"?new Response(i):Response.json(i)}function s(i){if(I(i))return i;if(A(i))return d(i),jt(i,e);if(i instanceof Error&&i.message==="Expected a response from queryRoute"){let l=new Error("Expected a Response to be returned from resource route handler");return d(l),q(l,e)}return d(i),q(i,e)}}function jt(e,t){return Response.json(Pe(e.error||new Error("Unexpected Server Error"),t),{status:e.status,statusText:e.statusText})}function q(e,t){let r="Unexpected Server Error";return t!=="production"&&(r+=`
|
|
2
|
+
|
|
3
|
+
${String(e)}`),new Response(r,{status:500,headers:{"Content-Type":"text/plain"}})}function $t(e){let t=e.headers.get("Content-Type");return t&&/\bapplication\/json\b/.test(t)?e.body==null?null:e.json():e.text()}function J(e){return`__flash_${e}__`}var $e=(e={},t="")=>{let r=new Map(Object.entries(e));return{get id(){return t},get data(){return Object.fromEntries(r)},has(a){return r.has(a)||r.has(J(a))},get(a){if(r.has(a))return r.get(a);let n=J(a);if(r.has(n)){let o=r.get(n);return r.delete(n),o}},set(a,n){r.set(a,n)},flash(a,n){r.set(J(a),n)},unset(a){r.delete(a)}}},ar=e=>e!=null&&typeof e.id=="string"&&typeof e.data<"u"&&typeof e.has=="function"&&typeof e.get=="function"&&typeof e.set=="function"&&typeof e.flash=="function"&&typeof e.unset=="function";function Bt({cookie:e,createData:t,readData:r,updateData:a,deleteData:n}){let o=_e(e)?e:He(e?.name||"__session",e);return Be(o),{async getSession(d,u){let s=d&&await o.parse(d,u),i=s&&await r(s);return $e(i||{},s||"")},async commitSession(d,u){let{id:s,data:i}=d,l=u?.maxAge!=null?new Date(Date.now()+u.maxAge*1e3):u?.expires!=null?u.expires:o.expires;return s?await a(s,i,l):s=await t(i,l),o.serialize(s,u)},async destroySession(d,u){return await n(d.id),o.serialize("",{...u,maxAge:void 0,expires:new Date(0)})}}}function Be(e){ke(e.isSigned,`The "${e.name}" cookie is not signed, but session cookies should be signed to prevent tampering on the client before they are sent back to the server. See https://reactrouter.com/explanation/sessions-and-cookies#signing-cookies for more information.`)}function nr({cookie:e}={}){let t=_e(e)?e:He(e?.name||"__session",e);return Be(t),{async getSession(r,a){return $e(r&&await t.parse(r,a)||{})},async commitSession(r,a){let n=await t.serialize(r.data,a);if(n.length>4096)throw new Error("Cookie length will exceed browser maximum. Length: "+n.length);return n},async destroySession(r,a){return t.serialize("",{...a,maxAge:void 0,expires:new Date(0)})}}}function sr({cookie:e}={}){let t=new Map;return Bt({cookie:e,async createData(r,a){let n=Math.random().toString(36).substring(2,10);return t.set(n,{data:r,expires:a}),n},async readData(r){if(t.has(r)){let{data:a,expires:n}=t.get(r);if(!n||n>new Date)return a;n&&t.delete(r)}return null},async updateData(r,a,n){t.set(r,{data:a,expires:n})},async deleteData(r){t.delete(r)}})}function or(e,...t){let r=t[0],a=Mt(e).replace(/\/:([\w-]+)(\?)?/g,(n,o,d)=>{const u=d===void 0,s=r?.[o];if(u&&s===void 0)throw new Error(`Path '${e}' requires param '${o}' but it was not provided`);return s===void 0?"":"/"+s});if(e.endsWith("*")){const n=r?.["*"];n!==void 0&&(a+="/"+n)}return a||"/"}function Mt(e){let t=e.length-1,r=e[t];if(r!=="*"&&r!=="/")return e;for(t--;t>=0&&e[t]==="/";t--);return e.slice(0,t+1)}var Z=new TextEncoder,ge="</body></html>";function Re(e){let t=new TextDecoder,r,a=new Promise(s=>r=s),n=!1,o=[],d=null;function u(s){for(let i of o){let l=t.decode(i,{stream:!0});l.endsWith(ge)&&(l=l.slice(0,-ge.length)),s.enqueue(Z.encode(l))}o.length=0,d=null}return new TransformStream({transform(s,i){o.push(s),!d&&(d=setTimeout(async()=>{u(i),n||(n=!0,Ut(e,i).catch(l=>i.error(l)).then(r))},0))},async flush(s){await a,d&&(clearTimeout(d),u(s)),s.enqueue(Z.encode("</body></html>"))}})}async function Ut(e,t){let r=new TextDecoder("utf-8",{fatal:!0});const a=e.getReader();try{let o;for(;(o=await a.read())&&!o.done;){const d=o.value;try{X(JSON.stringify(r.decode(d,{stream:!0})),t)}catch{let s=JSON.stringify(btoa(String.fromCodePoint(...d)));X(`Uint8Array.from(atob(${s}), m => m.codePointAt(0))`,t)}}}finally{a.releaseLock()}let n=r.decode();n.length&&X(JSON.stringify(n),t)}function X(e,t){t.enqueue(Z.encode(`<script>${zt(`(self.__FLIGHT_DATA||=[]).push(${e})`)}<\/script>`))}function zt(e){return e.replace(/<!--/g,"<\\!--").replace(/<\/(script)/gi,"</\\$1")}var Nt=class extends D.Component{constructor(e){super(e),this.state={error:null,location:e.location}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location?{error:null,location:e.location}:{error:t.error,location:t.location}}render(){return this.state.error?D.createElement(Me,{error:this.state.error,renderAppShell:!0}):this.props.children}};function ve({renderAppShell:e,title:t,children:r}){return e?D.createElement("html",{lang:"en"},D.createElement("head",null,D.createElement("meta",{charSet:"utf-8"}),D.createElement("meta",{name:"viewport",content:"width=device-width,initial-scale=1,viewport-fit=cover"}),D.createElement("title",null,t)),D.createElement("body",null,D.createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},r))):r}function Me({error:e,renderAppShell:t}){console.error(e);let r=D.createElement("script",{dangerouslySetInnerHTML:{__html:`
|
|
4
|
+
console.log(
|
|
5
|
+
"💿 Hey developer 👋. You can provide a way better UX than this when your app throws errors. Check out https://reactrouter.com/how-to/error-boundary for more information."
|
|
6
|
+
);
|
|
7
|
+
`}});if(A(e))return D.createElement(ve,{renderAppShell:t,title:"Unhandled Thrown Response!"},D.createElement("h1",{style:{fontSize:"24px"}},e.status," ",e.statusText),r);let a;if(e instanceof Error)a=e;else{let n=e==null?"Unknown Error":typeof e=="object"&&"toString"in e?e.toString():JSON.stringify(e);a=new Error(n)}return D.createElement(ve,{renderAppShell:t,title:"Application Error!"},D.createElement("h1",{style:{fontSize:"24px"}},"Application Error"),D.createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},a.stack),r)}function ir({hasRootLayout:e}){let t=qe();if(e===void 0)throw new Error("Missing 'hasRootLayout' prop");return D.createElement(Me,{renderAppShell:!e,error:t})}function qt(e){const t={};for(const r of e.matches)Vt(t,r);return t}function Vt(e,t){t=Array.isArray(t)?t:[t];for(const r of t)e[r.id]={links:r.links,meta:r.meta,default:Wt}}var Wt=()=>null,Jt="use",Se=dt[Jt];function Xt(e){if(Se)return Se(e);throw new Error("React Router v7 requires React 19+ for RSC features.")}async function lr({request:e,serverResponse:t,createFromReadableStream:r,renderHTML:a,hydrate:n=!0}){const o=new URL(e.url);if(Qt(o)||Kt(o)||e.headers.has("rsc-action-id")||t.headers.get("React-Router-Resource")==="true")return t;if(!t.body)throw new Error("Missing body in server response");const s=t.clone();let i=null;n&&(i=t.clone());const l=t.body;let h,p=[];const w=()=>h?new ReadableStream({start(m){h.forEach(c=>m.enqueue(c)),p.push(m)}}):(h=[],l.pipeThrough(new TransformStream({transform(m,c){h.push(m),c.enqueue(m),p.forEach(g=>g.enqueue(m))},flush(){p.forEach(m=>m.close()),p=[]}})));let y=null;const R=()=>{const m=Promise.resolve(r(w()));return Object.defineProperties(m,{_deepestRenderedBoundaryId:{get(){return y},set(c){y=c}},formState:{get(){return m.then(c=>c.type==="render"?c.formState:void 0)}}})};let f,S;try{if(!s.body)throw new Error("Failed to clone server response");const m=await r(s.body);if(t.status===xe&&m.type==="redirect"){const x=new Headers(t.headers);return x.delete("Content-Encoding"),x.delete("Content-Length"),x.delete("Content-Type"),x.delete("X-Remix-Response"),x.set("Location",m.location),new Response(i?.body||"",{headers:x,status:m.status,statusText:t.statusText})}let c=new Headers,g=t.status,v=t.statusText,C=await a(R,{onError(x){if(typeof x=="object"&&x&&"digest"in x&&typeof x.digest=="string"){if(f=se(x.digest),f)return x.digest;let b=oe(x.digest);if(b)return S=b,g=b.status,v=b.statusText,x.digest}},onHeaders(x){for(const[b,H]of x)c.append(b,H)}});const E=new Headers(c);for(const[x,b]of t.headers)E.append(x,b);if(E.set("Content-Type","text/html; charset=utf-8"),f)return E.set("Location",f.location),new Response(C,{status:f.status,headers:E});const k=new TransformStream({flush(x){f&&x.enqueue(new TextEncoder().encode(`<meta http-equiv="refresh" content="0;url=${K(f.location)}"/>`))}});if(!n)return new Response(C.pipeThrough(k),{status:g,statusText:v,headers:E});if(!i?.body)throw new Error("Failed to clone server response");const O=C.pipeThrough(Re(i.body)).pipeThrough(k);return new Response(O,{status:g,statusText:v,headers:E})}catch(m){if(m instanceof Response)return m;if(f)return new Response(`Redirect: ${f.location}`,{status:f.status,headers:{Location:f.location}});try{m=S??m;let[c,g]=A(m)?[m.status,m.statusText]:[500,""],v,C=new Headers;const E=await a(()=>{const H=Promise.resolve(r(w())).then(_=>Object.assign(_,{status:c,errors:y?{[y]:m}:{}}));return Object.defineProperties(H,{_deepestRenderedBoundaryId:{get(){return y},set(_){y=_}},formState:{get(){return H.then(_=>_.type==="render"?_.formState:void 0)}}})},{onError(b){if(typeof b=="object"&&b&&"digest"in b&&typeof b.digest=="string"){if(v=se(b.digest),v)return b.digest;let H=oe(b.digest);if(H)return c=H.status,g=H.statusText,b.digest}},onHeaders(b){for(const[H,_]of b)C.append(H,_)}}),k=new Headers(C);for(const[b,H]of t.headers)k.append(b,H);if(k.set("Content-Type","text/html; charset=utf-8"),v)return k.set("Location",v.location),new Response(E,{status:v.status,headers:k});const O=new TransformStream({flush(b){v&&b.enqueue(new TextEncoder().encode(`<meta http-equiv="refresh" content="0;url=${K(v.location)}"/>`))}});if(!n)return new Response(E.pipeThrough(O),{status:c,statusText:g,headers:k});if(!i?.body)throw new Error("Failed to clone server response");const x=E.pipeThrough(Re(i.body)).pipeThrough(O);return new Response(x,{status:c,statusText:g,headers:k})}catch{}throw m}}function ur({getPayload:e}){const t=e(),r=Xt(t);if(r.type==="redirect")throw new Response(null,{status:r.status,headers:{Location:r.location}});if(r.type!=="render")return null;let a={...r.loaderData};for(const u of r.matches)ee(u.id,u.clientLoader,u.hasLoader,!1)&&(u.hydrateFallbackElement||!u.hasLoader)&&delete a[u.id];const n={get _deepestRenderedBoundaryId(){return t._deepestRenderedBoundaryId??null},set _deepestRenderedBoundaryId(u){t._deepestRenderedBoundaryId=u},actionData:r.actionData,actionHeaders:{},basename:r.basename,errors:r.errors,loaderData:a,loaderHeaders:{},location:r.location,statusCode:200,matches:r.matches.map(u=>({params:u.params,pathname:u.pathname,pathnameBase:u.pathnameBase,route:{id:u.id,action:u.hasAction||!!u.clientAction,handle:u.handle,hasErrorBoundary:u.hasErrorBoundary,loader:u.hasLoader||!!u.clientLoader,index:u.index,path:u.path,shouldRevalidate:u.shouldRevalidate}}))},o=Ee(r.matches.reduceRight((u,s)=>{const i={id:s.id,action:s.hasAction||!!s.clientAction,element:s.element,errorElement:s.errorElement,handle:s.handle,hasErrorBoundary:!!s.errorElement,hydrateFallbackElement:s.hydrateFallbackElement,index:s.index,loader:s.hasLoader||!!s.clientLoader,path:s.path,shouldRevalidate:s.shouldRevalidate};return u.length>0&&(i.children=u),[i]},[]),n),d={future:{v8_middleware:!1,unstable_subResourceIntegrity:!1},isSpaMode:!1,ssr:!0,criticalCss:"",manifest:{routes:{},version:"1",url:"",entry:{module:"",imports:[]}},routeDiscovery:{mode:"lazy",manifestPath:"/__manifest"},routeModules:qt(r)};return T.createElement(Xe.Provider,{value:!0},T.createElement(Nt,{location:r.location},T.createElement(te.Provider,{value:d},T.createElement(be,{context:n,router:o,hydrate:!1,nonce:r.nonce}))))}function Qt(e){return e.pathname.endsWith(".rsc")}function Kt(e){return e.pathname.endsWith(".manifest")}function dr(e){if(!e)return null;let t=Object.entries(e),r={};for(let[a,n]of t)if(n&&n.__type==="RouteErrorResponse")r[a]=new j(n.status,n.statusText,n.data,n.internal===!0);else if(n&&n.__type==="Error"){if(n.__subType){let o=window[n.__subType];if(typeof o=="function")try{let d=new o(n.message);d.stack=n.stack,r[a]=d}catch{}}if(r[a]==null){let o=new Error(n.message);o.stack=n.stack,r[a]=o}}else r[a]=n;return r}function cr({state:e,routes:t,getRouteInfo:r,location:a,basename:n,isSpaMode:o}){let d={...e,loaderData:{...e.loaderData}},u=Ce(t,a,n);if(u)for(let s of u){let i=s.route.id,l=r(i);ee(i,l.clientLoader,l.hasLoader,o)&&(l.hasHydrateFallback||!l.hasLoader)?delete d.loaderData[i]:l.hasLoader||(d.loaderData[i]=null)}return d}export{ir as R,Zt as S,xt as a,nr as b,He as c,dr as d,sr as e,rr as f,cr as g,er as h,$e as i,Bt as j,or as k,_e as l,ar as m,ur as n,Nt as o,Vt as p,lr as r,tr as s};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as r,c as s,a as e,C as t}from"./chunk-727SXJPM.
|
|
1
|
+
import{s as r,c as s,a as e,C as t}from"./chunk-727SXJPM.Bi-TUb_V.js";import{_ as l}from"./mermaid.core.jAJTcMKc.js";var d={parser:e,get db(){return new t},renderer:s,styles:r,init:l(a=>{a.class||(a.class={}),a.class.arrowMarkerAbsolute=a.arrowMarkerAbsolute},"init")};export{d as diagram};
|
package/web/_astro/{classDiagram-v2-Q7XG4LA2.D1NwP50q.js → classDiagram-v2-Q7XG4LA2.D_apfHS7.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as r,c as s,a as e,C as t}from"./chunk-727SXJPM.
|
|
1
|
+
import{s as r,c as s,a as e,C as t}from"./chunk-727SXJPM.Bi-TUb_V.js";import{_ as l}from"./mermaid.core.jAJTcMKc.js";var d={parser:e,get db(){return new t},renderer:s,styles:r,init:l(a=>{a.class||(a.class={}),a.class.arrowMarkerAbsolute=a.arrowMarkerAbsolute},"init")};export{d as diagram};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as a}from"./index.5dn-Zm-2.js";import{c as p}from"./client.DBpSRLnx.js";const _=({value:t,name:r,hydrate:e=!0})=>{if(t==null||t.trim()==="")return null;const n=e?"astro-slot":"astro-static-slot";return a.createElement(n,{name:r,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:t}})};var N=a.memo(_,()=>!0);function b(t){for(const r in t)if(r.startsWith("__reactContainer"))return r}const g={class:"className",for:"htmlFor"};let E=0;function v(t,r,e){r===void 0&&(E+=1,r=E,e=0);let n={};for(const o of t.attributes){const c=g[o.name]||o.name;n[c]=o.value}if(n.key=`${r}-${e}`,t.firstChild===null)return a.createElement(t.localName,n);let i=0;return a.createElement(t.localName,n,Array.from(t.childNodes).map(o=>o.nodeType===Node.TEXT_NODE?o.data:o.nodeType===Node.ELEMENT_NODE?(i+=1,v(o,r,i)):void 0).filter(o=>!!o))}function M(t,r){if(r&&t){let e=[],n=document.createElement("template");n.innerHTML=t;for(let i of n.content.children)e.push(v(i));return e}else return t?a.createElement(N,{value:t}):void 0}let y=new WeakMap;const h=(t,r)=>{let e=y.get(t);return e||(e=r(),y.set(t,e)),e};var H=t=>(r,e,{default:n,...i},{client:o})=>{if(!t.hasAttribute("ssr"))return;const c=t.getAttribute("data-action-key"),d=t.getAttribute("data-action-name"),f=t.getAttribute("data-action-result"),A=c&&d&&f?[JSON.parse(f),c,d]:void 0,T={identifierPrefix:t.getAttribute("prefix"),formState:A};for(const[u,s]of Object.entries(i))e[u]=a.createElement(N,{value:s,name:u});const l=a.createElement(r,e,M(n,t.hasAttribute("data-react-children"))),m=b(t);if(m&&delete t[m],o==="only")return a.startTransition(()=>{h(t,()=>{const s=p.createRoot(t);return t.addEventListener("astro:unmount",()=>s.unmount(),{once:!0}),s}).render(l)});a.startTransition(()=>{h(t,()=>{const s=p.hydrateRoot(t,l,T);return t.addEventListener("astro:unmount",()=>s.unmount(),{once:!0}),s}).render(l)})};export{H as default};
|