vuer 0.0.25__py3-none-any.whl → 0.0.29rc8__py3-none-any.whl

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.

Potentially problematic release.


This version of vuer might be problematic. Click here for more details.

Files changed (90) hide show
  1. vuer/__init__.py +2 -0
  2. vuer/__pycache__/__init__.cpython-38.pyc +0 -0
  3. vuer/__pycache__/base.cpython-38.pyc +0 -0
  4. vuer/__pycache__/serdes.cpython-38.pyc +0 -0
  5. vuer/__pycache__/server.cpython-38.pyc +0 -0
  6. vuer/base.py +35 -11
  7. vuer/client_build/404.html +18 -0
  8. vuer/client_build/assets/chunks/chunk-033cd999.js +87 -0
  9. vuer/client_build/assets/chunks/chunk-0c07adda.js +17 -0
  10. vuer/client_build/assets/chunks/chunk-0c7b0c67.js +4502 -0
  11. vuer/client_build/assets/chunks/chunk-11242fef.js +87 -0
  12. vuer/client_build/assets/chunks/chunk-11d172c6.js +220 -0
  13. vuer/client_build/assets/chunks/chunk-1573e13d.js +87 -0
  14. vuer/client_build/assets/chunks/chunk-1581dd07.js +4502 -0
  15. vuer/client_build/assets/chunks/chunk-181cf52e.js +4502 -0
  16. vuer/client_build/assets/chunks/chunk-1ffa2560.js +1 -0
  17. vuer/client_build/assets/chunks/chunk-2b009735.js +87 -0
  18. vuer/client_build/assets/chunks/chunk-2c9e68dc.js +220 -0
  19. vuer/client_build/assets/chunks/chunk-32d88b6c.js +87 -0
  20. vuer/client_build/assets/chunks/chunk-3d6a174a.js +87 -0
  21. vuer/client_build/assets/chunks/chunk-3d735b94.js +2 -0
  22. vuer/client_build/assets/chunks/chunk-4291d1b1.js +4502 -0
  23. vuer/client_build/assets/chunks/chunk-46602646.js +1 -0
  24. vuer/client_build/assets/chunks/chunk-4909c71c.js +1 -0
  25. vuer/client_build/assets/chunks/chunk-6b435eb3.js +220 -0
  26. vuer/client_build/assets/chunks/chunk-98620ee4.js +87 -0
  27. vuer/client_build/assets/chunks/chunk-9d4c7361.js +220 -0
  28. vuer/client_build/assets/chunks/chunk-a6eac392.js +220 -0
  29. vuer/client_build/assets/chunks/chunk-b0bf2d23.js +1 -0
  30. vuer/client_build/assets/chunks/chunk-bdd7c22e.js +220 -0
  31. vuer/client_build/assets/chunks/chunk-c353222d.js +4502 -0
  32. vuer/client_build/assets/chunks/chunk-c7c41535.js +4502 -0
  33. vuer/client_build/assets/chunks/chunk-cd30d081.js +1 -0
  34. vuer/client_build/assets/chunks/chunk-ceb3463c.js +24 -0
  35. vuer/client_build/assets/chunks/chunk-cf010ec4.js +1 -0
  36. vuer/client_build/assets/chunks/chunk-d7665daa.js +1 -0
  37. vuer/client_build/assets/chunks/chunk-d8996854.js +1 -0
  38. vuer/client_build/assets/chunks/chunk-e1dbff7e.js +220 -0
  39. vuer/client_build/assets/chunks/chunk-f6ac826f.js +4502 -0
  40. vuer/client_build/assets/entries/entry-client-routing.09665e16.js +2 -0
  41. vuer/client_build/assets/entries/entry-client-routing.9b421a83.js +2 -0
  42. vuer/client_build/assets/entries/entry-client-routing.b091f770.js +2 -0
  43. vuer/client_build/assets/entries/entry-client-routing.b0e9432f.js +2 -0
  44. vuer/client_build/assets/entries/entry-client-routing.d2f1fe7f.js +2 -0
  45. vuer/client_build/assets/entries/entry-client-routing.f109ec3a.js +2 -0
  46. vuer/client_build/assets/entries/entry-client-routing.fef74cf7.js +2 -0
  47. vuer/client_build/assets/entries/entry-server-routing.05de3b91.js +1 -0
  48. vuer/client_build/assets/entries/entry-server-routing.05f74fe9.js +1 -0
  49. vuer/client_build/assets/entries/entry-server-routing.9a7f23b8.js +1 -0
  50. vuer/client_build/assets/entries/entry-server-routing.c86174f6.js +1 -0
  51. vuer/client_build/assets/entries/entry-server-routing.cdb49a95.js +1 -0
  52. vuer/client_build/assets/entries/entry-server-routing.ed130910.js +1 -0
  53. vuer/client_build/assets/entries/entry-server-routing.fddd53eb.js +1 -0
  54. vuer/client_build/assets/entries/pages_hands.page.08c7d15b.js +1 -0
  55. vuer/client_build/assets/entries/pages_hands.page.12ccbd32.js +1 -0
  56. vuer/client_build/assets/entries/pages_hands.page.40ebd865.js +1 -0
  57. vuer/client_build/assets/entries/pages_hands.page.6f1e3303.js +1 -0
  58. vuer/client_build/assets/entries/pages_hands.page.724feffe.js +1 -0
  59. vuer/client_build/assets/entries/pages_hands.page.85f51479.js +1 -0
  60. vuer/client_build/assets/entries/pages_hands.page.fb90f80e.js +1 -0
  61. vuer/client_build/assets/entries/pages_index.page.25e5c467.js +97 -0
  62. vuer/client_build/assets/entries/pages_index.page.25ffff8e.js +97 -0
  63. vuer/client_build/assets/entries/pages_index.page.323784ad.js +97 -0
  64. vuer/client_build/assets/entries/pages_index.page.76e4864a.js +97 -0
  65. vuer/client_build/assets/entries/pages_index.page.95009002.js +97 -0
  66. vuer/client_build/assets/entries/pages_index.page.fb9c94fd.js +97 -0
  67. vuer/client_build/assets/entries/pages_index.page.fbb86891.js +97 -0
  68. vuer/client_build/assets/entries/renderer_default.page.client.98b62a91.js +1 -0
  69. vuer/client_build/assets/entries/renderer_default.page.server.extractAssets.4ed993c7.js +1 -0
  70. vuer/client_build/assets/entries/renderer_error.page.4485c2ac.js +1 -0
  71. vuer/client_build/assets/static/default.page.client.7be06a4d.css +1 -0
  72. vuer/client_build/assets/static/loading.ade72bfe.svg +5 -0
  73. vuer/client_build/assets/static/logo.bebe2e90.svg +36 -0
  74. vuer/client_build/hands/index.html +19 -0
  75. vuer/client_build/hands/index.pageContext.json +1 -0
  76. vuer/client_build/index.html +19 -0
  77. vuer/client_build/index.pageContext.json +1 -0
  78. vuer/client_build/vike.json +11 -0
  79. vuer/schemas/__pycache__/html_components.cpython-38.pyc +0 -0
  80. vuer/schemas/__pycache__/scene_components.cpython-38.pyc +0 -0
  81. vuer/schemas/html_components.py +7 -3
  82. vuer/schemas/scene_components.py +60 -6
  83. vuer/server.py +61 -16
  84. {vuer-0.0.25.dist-info → vuer-0.0.29rc8.dist-info}/METADATA +20 -10
  85. vuer-0.0.29rc8.dist-info/RECORD +109 -0
  86. vuer-0.0.25.dist-info/RECORD +0 -37
  87. {vuer-0.0.25.dist-info → vuer-0.0.29rc8.dist-info}/LICENSE +0 -0
  88. {vuer-0.0.25.dist-info → vuer-0.0.29rc8.dist-info}/WHEEL +0 -0
  89. {vuer-0.0.25.dist-info → vuer-0.0.29rc8.dist-info}/entry_points.txt +0 -0
  90. {vuer-0.0.25.dist-info → vuer-0.0.29rc8.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,2 @@
1
+ import{j as ie,k as a,p,m as gt,b as g,s as ht,n as pt,q as B,r as v,t as k,u as b,v as ke,d as w,w as M,x as I,y as Y,z as A,A as $,B as Fe,C as se,o as m,a as mt,l as G,D as Ee,E as $e,F as Te,G as yt,H as bt,I as U,J as Pt,K as _t,L as St,c as wt,M as Ie,N as Rt,O as Ae,P as vt,Q as F,R as Ct,S as Ot,T as ae,g as le,i as Q,h as xt,U as kt}from"../chunks/chunk-3d735b94.js";import{_ as H}from"../chunks/chunk-cf010ec4.js";function C(e){return typeof e!="object"||e===null?!1:Object.getPrototypeOf(e)===null?!0:e.constructor.name==="Object"}function ye(e){return"["+e.map(t=>"'"+t+"'").join(", ")+"]"}function X(e,t){const n=Object.getOwnPropertyDescriptor(e,t);return!!n&&!("value"in n)&&!!n.get}function Ft(e){return typeof e=="object"&&e!==null&&"then"in e&&ie(e.then)}function Et(e){return[null,void 0].includes(e)?String(e):["boolean","number","string"].includes(typeof e)?JSON.stringify(e):null}function $t(e){return e.replace(/[/\-\\^$*+?.()|[\]{}]/g,"\\$&")}function T(e,t,n){const r=It(e,t);if(r===null)return null;const{value:o,definedAt:i}=r;return n&&Tt(o,n,t,i),r}function Tt(e,t,n,r){a(e!==null);const o=typeof e;if(o===t)return;const i=Et(e),l=i!==null?`value ${p.cyan(i)}`:`type ${p.cyan(o)}`,c=`${gt("Config",n,{definedAt:r})} has an invalid ${l}: it should be a ${p.cyan(t)} instead`;g(!1,c)}function It(e,t){const n=e.configValues[t];return!n||n.value===null?null:n}const At=["default"],Ht=Object.freeze(Object.defineProperty({__proto__:null,exportNames:At},Symbol.toStringTag,{value:"Module"})),Nt=["default"],jt=Object.freeze(Object.defineProperty({__proto__:null,exportNames:Nt},Symbol.toStringTag,{value:"Module"})),Bt=["Page"],Lt=Object.freeze(Object.defineProperty({__proto__:null,exportNames:Bt},Symbol.toStringTag,{value:"Module"})),Wt=["render","passToClient"],Dt=Object.freeze(Object.defineProperty({__proto__:null,exportNames:Wt},Symbol.toStringTag,{value:"Module"})),Vt=["render","onHydrationEnd","onPageTransitionStart","onPageTransitionEnd","clientRouting","hydrationCanBeAborted"],Ut=Object.freeze(Object.defineProperty({__proto__:null,exportNames:Vt},Symbol.toStringTag,{value:"Module"})),ue={},He={},Gt={},J={},zt=[],Ne={},Kt=!0,Mt=[],Yt={configValuesImported:[]},Jt=Object.assign({"/pages/hands.page.tsx":()=>H(()=>import("./pages_hands.page.85f51479.js"),["assets/entries/pages_hands.page.85f51479.js","assets/chunks/chunk-0c07adda.js","assets/chunks/chunk-c7c41535.js","assets/chunks/chunk-cf010ec4.js","assets/chunks/chunk-ceb3463c.js"]),"/pages/index.page.tsx":()=>H(()=>import("./pages_index.page.fbb86891.js"),["assets/entries/pages_index.page.fbb86891.js","assets/chunks/chunk-0c07adda.js","assets/chunks/chunk-c7c41535.js","assets/chunks/chunk-cf010ec4.js","assets/chunks/chunk-ceb3463c.js"]),"/renderer/_error.page.tsx":()=>H(()=>import("./renderer_error.page.4485c2ac.js"),["assets/entries/renderer_error.page.4485c2ac.js","assets/chunks/chunk-0c07adda.js"])}),qt={...Jt};ue[".page"]=qt;const Qt=Object.assign({"/pages/hands.page.tsx":Ht,"/pages/index.page.tsx":jt,"/renderer/_error.page.tsx":Lt}),Xt={...Qt};J[".page"]=Xt;const Zt=Object.assign({"/renderer/_default.page.server.tsx":Dt}),en={...Zt};J[".page.server"]=en;const tn=Object.assign({}),nn={...tn};He[".page.route"]=nn;const rn=Object.assign({"/renderer/_default.page.client.tsx":()=>H(()=>import("./renderer_default.page.client.98b62a91.js"),["assets/entries/renderer_default.page.client.98b62a91.js","assets/chunks/chunk-0c07adda.js","assets/chunks/chunk-ceb3463c.js","assets/static/default.page.client.7be06a4d.css"])}),on={...rn};ue[".page.client"]=on;const sn=Object.assign({"/renderer/_default.page.client.tsx":Ut}),an={...sn};J[".page.client"]=an;const ln=Object.assign({"/renderer/_default.page.server.tsx":()=>H(()=>import("./renderer_default.page.server.extractAssets.4ed993c7.js"),[])}),un={...ln};Ne[".page.server"]=un;const cn=Object.freeze(Object.defineProperty({__proto__:null,isGeneratedFile:Kt,neverLoaded:Ne,pageConfigGlobalSerialized:Yt,pageConfigsSerialized:Mt,pageFilesEager:He,pageFilesExportNamesEager:J,pageFilesExportNamesLazy:Gt,pageFilesLazy:ue,pageFilesList:zt},Symbol.toStringTag,{value:"Module"}));ht(cn);function fn(){pt(),B()}function dn(){var r,o,i,l;const e=!!((o=(r=window.__REACT_DEVTOOLS_GLOBAL_HOOK__)==null?void 0:r.renderers)!=null&&o.size),t=!!((l=(i=window.__REACT_DEVTOOLS_GLOBAL_HOOK__)==null?void 0:i.rendererInterfaces)!=null&&l.size),n=!!window.__vite_plugin_react_preamble_installed__;return e||t||n}function je(e,t){const n=Object.keys,r=typeof e;return e&&t&&r==="object"&&r===typeof t?n(e).length===n(t).length&&n(e).every(i=>je(e[i],t[i])):e===t}function gn(e,t){return v(e)&&v(t)&&e.constructor===t.constructor&&je({...e,stack:null},{...t,stack:null})&&t.message===t.message}function z(e){window.location.href=e}function hn(e){return new Promise(t=>setTimeout(t,e))}function pn(e,t){let n=!1;return()=>{n||(n=!0,setTimeout(()=>{n=!1,e()},t))}}function Be(e){window.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&e()})}function mn(e){window.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&e()})}function yn(e){return!e.startsWith("/")&&!e.startsWith(".")&&!e.startsWith("?")&&e!==""}fn();const te=k("history.ts",{});function Le(){let e=window.history.state;e||(e={});let t=!1;"timestamp"in e||(t=!0,e.timestamp=de()),"scrollPosition"in e||(t=!0,e.scrollPosition=fe()),"triggedBy"in e||(e.triggedBy="browser"),We(e),t&&ge(e)}function ce(){const e=window.history.state||{};return We(e),e}function fe(){return{x:window.scrollX,y:window.scrollY}}function de(){return new Date().getTime()}function be(){const e=fe(),t=ce();ge({...t,scrollPosition:e})}function bn(e,t){if(t)ge(ce(),e);else{const n=de();Pn({timestamp:n,scrollPosition:null,triggedBy:"vike"},e)}}function We(e){if(a(v(e)),"timestamp"in e){const{timestamp:t}=e;a(typeof t=="number")}if("scrollPosition"in e){const{scrollPosition:t}=e;t!==null&&a(b(t,"x","number")&&b(t,"y","number"))}}function ge(e,t){window.history.replaceState(e,"",t??null)}function Pn(e,t){De(e,"",t)}function _n(){te.pushStateOriginal=te.pushStateOriginal??window.history.pushState,window.history.pushState=(e={},...t)=>{g(e==null||v(e),"history.pushState(state) argument state must be an object");const n={scrollPosition:fe(),timestamp:de(),...e,triggedBy:"user"};return De(n,...t)}}function De(...e){te.pushStateOriginal.apply(history,e)}async function Sn(e,t){const r=ke(e,t).filter(i=>i.fileType===".page.server");return await Promise.all(r.map(async i=>{i.exportNames||(a(i.loadExportNames,t),await i.loadExportNames())})),{hasOnBeforeRenderServerSideOnlyHook:r.some(({exportNames:i})=>(a(i),i.includes("onBeforeRender")))}}const Pe=["urlPathname","urlParsed"],wn=["Page","pageExports","exports"];function Ve(e){[...wn,...Pe].forEach(n=>{n in e&&(Pe.includes(n)?(a(n.startsWith("url")),w(!1,`pageContext.${n} is already available in the browser when using Client Routing; adding '${n}' to passToClient has no effect`,{onlyOnce:!0})):w(!1,`pageContext.${n} is a built-in that cannot be overriden; adding '${n}' to passToClient has no effect`,{onlyOnce:!0}),delete e[n])})}const Rn="/";function vn(e,t,n){const{pathnameOriginal:r,searchOriginal:o,hashOriginal:i}=M(e,Rn);e.startsWith("/")&&a(e===`${r}${o||""}${i||""}`,{url:e});const l=r.endsWith("/");let s;return n&&r!=="/"?(l?s=I(r,0,-1):s=r,a(!s.endsWith("/"),{url:e}),a(s!=="")):s=r+(l?"":"/")+"index",a(s),s=s+t,`${s}${o||""}${i||""}`}const Cn=".pageContext.json",On=!1;function xn(e){return vn(e,Cn,On)}function Ue(e,{hookName:t,hookFilePath:n}){if(e==null)return;a(!t.endsWith(")"));const r=`The ${p.cyan("pageContext")} object provided by the ${t}() hook defined by ${n}`;g(v(e),`${r} should be an object (but it's ${p.cyan(`typeof pageContext === ${JSON.stringify(typeof e)}`)} instead)`),g(!("_objectCreatedByVike"in e),`${r} shouldn't be the whole ${p.cyan("pageContext")} object, see https://vike.dev/pageContext-manipulation#do-not-return-entire-pagecontext`),w(!("_pageId"in e),`${r} sets ${p.cyan("pageContext._pageId")} which means that Vike's routing is overriden. This is an experimental feature: make sure to contact a vike maintainer before using this.`,{onlyOnce:!0}),g(!("is404"in e),`${r} sets ${p.cyan("pageContext.is404")} which is forbidden, use ${p.cyan("throw render()")} instead, see https://vike.dev/render`)}function kn(e,t,n){a(!n.endsWith(" "));const r=[],o=Object.keys(e);for(const i of o)t.includes(i)||r.push(i);g(r.length===0,[n,"returned an object with following unknown keys:",ye(r)+".","Only following keys are allowed:",ye(t)+"."].join(" "))}function Fn(e,t){if(e==null)return;const n=`The onBeforeRender() hook defined by ${t}`;g(C(e),`${n} should return a plain JavaScript object, ${p.cyan("undefined")}, or ${p.cyan("null")}`),kn(e,["pageContext"],n),e.pageContext&&Ue(e.pageContext,{hookName:"onBeforeRender",hookFilePath:t})}function En(e,t){if(!C(e))return!1;for(const n of Object.keys(e))if(!t.includes(n))return!1;return!0}function $n(e){return typeof e=="object"&&e!==null&&Object.values(e).every(t=>typeof t=="string")}function Tn(e,t,n=r=>r){if(a(e.length>0),e.length===1)return n(e[0]);const r=e.slice(0,e.length-1),o=e[e.length-1];return r.map(n).join(", ")+` ${t} `+n(o)}Y()&&B();async function In(e,t){let n;if(e._pageFilesAll.length>0?(a(e._pageConfigs.length===0),n=An(e._pageId,e._pageFilesAll)):n=A(e,"guard"),!n)return;const r=n.hookFn;let o=e;const i=t(e);i&&(o=i);const l=await $(()=>r(o),n);g(l===void 0,`The guard() hook of ${n.hookFilePath} returns a value, but guard() doesn't accept any return value`)}function An(e,t){const n=t.find(c=>c.pageId===e&&c.fileType===".page.route");if(!n)return null;const{filePath:r,fileExports:o}=n;a(o);const i=o.guard;if(!i)return null;const l=r,s=Fe("guard");return g(ie(i),`guard() defined by ${l} should be a function`),{hookFn:i,hookName:"guard",hookFilePath:l,hookTimeout:s}}function Hn(e){const t=new Error("AbortRender");return m(t,{_pageContextAbort:e,[Ge]:!0}),t}const Ge="_isAbortError";function _e(e){return typeof e=="object"&&e!==null&&Ge in e}function Nn(e){return e._urlRewrite||e._urlRedirect||e.abortStatusCode?(a(b(e,"_abortCall","string")),!0):!1}function jn(e,t,n){if(t)return;const r=n._urlRewrite??n.urlOriginal;a(r);const o=e._pageContextAbort._abortCall;se(!1,`${p.cyan(o)} intercepted while rendering ${p.cyan(r)}`,{onlyOnce:!1})}function Bn(e){Ln(e);const t={_urlRewrite:null};return e.forEach(n=>{Object.assign(t,n)}),t}function Ln(e){const t=[];e.forEach(n=>{const r=n._urlRewrite;{const o=t.indexOf(r);if(o!==-1){const i=[...t.slice(o),r].map(l=>`render('${l}')`).join(" => ");g(!1,`Infinite loop of render() calls: ${i}`)}}t.push(r)})}function Wn(e,t){const n=[e>0&&p.cyan("throw render('/some-url')"),t>0&&p.cyan("throw redirect('/some-url')")].filter(Boolean).join(" and ");g(e+t<=7,`Maximum chain length of 7 ${n} exceeded. Did you define an infinite loop of ${n}?`)}const ze=k("router/getPageContext.ts",{});async function Dn(e){const t=mt();Ve(t),m(t,{isHydration:!0,_hasPageContextFromClient:!1}),m(t,await G(t._pageId,e));{const n={...e,...t};if(Je(n)){const r=await Me(n);m(t,r)}}return Ye(t),t}async function Vn(e){const t=Ee(e._pageFilesAll,e._pageConfigs);if(!t)throw new Error("No error page defined.");const n={isHydration:!1,_pageId:t};return m(n,await Ke({...e,...n},!0)),n}async function Un(e){const t={isHydration:!1,_pageId:e._pageId};return m(t,await Ke({...e,...t},!1)),Ye(t),t}async function Ke(e,t){let n={};m(n,{_hasPageContextFromClient:!1}),m(n,await G(e._pageId,e));let r=!1;if(!t&&await Gn({...e,...n})){const o=await Kn(e);if(r=!0,!o._isError)m(n,o);else{const i=Ee(e._pageFilesAll,e._pageConfigs);a(i),n={},m(n,{_hasPageContextFromClient:!1,isHydration:!1,_pageId:i}),m(n,await G(n._pageId,e)),a(b(o,"is404","boolean")),a(b(o,"pageProps","object")),a(b(o.pageProps,"is404","boolean")),a(!("serverSideError"in o)),m(n,o)}}else m(n,{_hasPageContextFromServer:!1}),t||await In({...e,...n},o=>$e(o,!0));{const o={...e,...n};if(Je(o)||!r){const i=await Me(o);m(n,i)}else a(r)}return n}async function Me(e){const t=A(e,"onBeforeRender");if(!t)return{_hasPageContextFromClient:!1};const n=t.hookFn,r={_hasPageContextFromClient:!0},o=$e({...e,...r},!0),i=await $(()=>n(o),t);Fn(i,t.hookFilePath);const l=i==null?void 0:i.pageContext;return m(r,l),r}function Ye(e){e._pageContextInitHasClientData&&(ze.pageContextInitHasClientData=!0)}async function Gn(e){return!!ze.pageContextInitHasClientData||await zn(e)}async function zn(e){var t;if(e._pageConfigs.length>0){const n=Te(e._pageId,e._pageConfigs),r=((t=T(n,"onBeforeRenderEnv"))==null?void 0:t.value)??{};return a(v(r)),!!r.server&&!r.client}else{const{hasOnBeforeRenderServerSideOnlyHook:n}=await Sn(e._pageFilesAll,e._pageId);return n}}function Je(e){var t;if(e._pageConfigs.length>0){const n=Te(e._pageId,e._pageConfigs),r=((t=T(n,"onBeforeRenderEnv"))==null?void 0:t.value)??{};return a(v(r)),!!r.client&&!r.server}else return!1}async function Kn(e){const t=xn(e._urlRewrite??e.urlOriginal),n=await fetch(t);{const i=n.headers.get("content-type"),l="application/json",s=i&&i.includes(l);if(!s&&n.status===404)throw z(e.urlOriginal),Yn();g(s,`Wrong Content-Type for ${t}: it should be ${l} but it's ${i} instead. Make sure to properly use pageContext.httpResponse.headers, see https://vike.dev/renderPage`)}const r=await n.text(),o=yt(r);if(a(v(o)),"serverSideError"in o)throw bt("The pageContext object couldn't be fetched from the server as an error occurred on the server-side. Check your server logs.");if(Nn(o))throw Hn(o);return a(b(o,"_pageId","string")),Ve(o),m(o,{_hasPageContextFromServer:!0}),o}function Mn(e){return v(e)&&!!e._alreadyServerSideRouted}function Yn(){const e=new Error("Page doesn't exist");return Object.assign(e,{_alreadyServerSideRouted:!0}),e}function qe(e,t=!0){a(e.urlOriginal),"urlPathname"in e&&(a(typeof e.urlPathname=="string"),a(X(e,"urlPathname"))),"urlParsed"in e&&a(X(e,"urlParsed")),"url"in e&&a(X(e,"url")),Object.defineProperty(e,"urlPathname",{get:Xe,enumerable:t,configurable:!0}),Object.defineProperty(e,"url",{get:Jn,enumerable:!1,configurable:!0}),Object.defineProperty(e,"urlParsed",{get:qn,enumerable:t,configurable:!0})}function Qe(e){let t=e._urlHandler;t||(t=o=>o);let n=e._urlRewrite??e.urlLogical??e.urlOriginal;n=t(n);const r=e._baseServer;return a(n&&typeof n=="string"),a(r.startsWith("/")),M(n,r)}function Xe(){const{pathname:e}=Qe(this),t=e;return a(t.startsWith("/")),t}function Jn(){return w(!1,"`pageContext.url` is outdated. Use `pageContext.urlPathname`, `pageContext.urlParsed`, or `pageContext.urlOriginal` instead. (See https://vike.dev/migration/0.4.23 for more information.)",{onlyOnce:!0,showStackTrace:!0}),Xe.call(this)}function qn(){const e=Qe(this),{origin:t,pathname:n,pathnameOriginal:r,search:o,searchAll:i,searchOriginal:l,hash:s,hashOriginal:c}=e,d=Y(),P=u=>{w(d,`pageContext.urlParsed.${u} isn't available on the server-side (HTTP requests don't include the URL hash by design)`,{onlyOnce:!0,showStackTrace:!0})},f={origin:t,pathname:n,pathnameOriginal:r,search:o,searchAll:i,searchOriginal:l,get hash(){return P("hash"),s},get hashOriginal(){return P("hashOriginal"),c},get hashString(){return w(!1,"pageContext.urlParsed.hashString has been renamed to pageContext.urlParsed.hashOriginal",{onlyOnce:!0,showStackTrace:!0}),P("hashString"),c},get searchString(){return w(!1,"pageContext.urlParsed.searchString has been renamed to pageContext.urlParsed.searchOriginal",{onlyOnce:!0,showStackTrace:!0}),l}};return W(f,"hashString"),W(f,"searchString"),d||(W(f,"hash"),W(f,"hashOriginal")),f}function W(e,t){const n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(e,t,{...n,enumerable:!1})}function Qn(e){a(typeof e.urlOriginal=="string"),a(typeof e.urlPathname=="string"),a(C(e.urlParsed)),a(e.urlPathname===e.urlParsed.pathname)}function Xn(e,t){const r=t.filter(({filesystemRoot:i})=>e.startsWith(i)).sort(U(({filesystemRoot:i})=>i.length))[0];let o;if(r){const{filesystemRoot:i,urlRoot:l}=r,s={pageId:e,filesystemRoot:i,urlRoot:l};a(l.startsWith("/")&&e.startsWith("/")&&i.startsWith("/"),s),a(e.startsWith(i),s),i!=="/"?(a(!i.endsWith("/"),s),o=I(e,i.length,0)):o=e,a(o.startsWith("/"),s),o=l+(l.endsWith("/")?"":"/")+I(o,1,0)}else o=e;return a(o.startsWith("/")),o=o.split("/").filter(i=>i!=="pages"&&i!=="src"&&i!=="index").join("/"),a(!o.includes(".page.")),a(!o.endsWith(".")),o.endsWith("/index")&&(o=I(o,0,-6)),o===""&&(o="/"),a(o.startsWith("/")),a(!o.endsWith("/")||o==="/"),o}async function Zn(e,t,n){Qn(t);let r=e(t);if(Ze(r,`The Route Function ${n}`),r=await r,r===!1)return null;if(r===!0&&(r={}),g(C(r),`The Route Function ${n} should return a boolean or a plain JavaScript object (but it's ${p.cyan(`typeof result === ${JSON.stringify(typeof r)}`)} instead)`),"match"in r){const{match:l}=r;if(g(typeof l=="boolean",`The ${p.cyan("match")} value returned by the Route Function ${n} should be a boolean.`),!l)return null}let o=null;"precedence"in r&&(o=r.precedence,g(typeof o=="number",`The ${p.cyan("precedence")} value returned by the Route Function ${n} should be a number.`)),et(r,`The ${p.cyan("routeParams")} object returned by the Route Function ${n} should`);const i=r.routeParams||{};return g(!("pageContext"in r),`Providing ${p.cyan("pageContext")} in Route Functions is prohibited, see https://vike.dev/route-function#cannot-provide-pagecontext`),a(C(i)),Object.keys(r).forEach(l=>{g(l==="match"||l==="routeParams"||l==="precedence",`The Route Function ${n} returned an object with an unknown property ${p.cyan(l)} (the known properties are ${p.cyan("match")}, ${p.cyan("routeParams")}, and ${p.cyan("precedence")})`)}),{precedence:o,routeParams:i}}function Ze(e,t){w(!Ft(e),`${t} returned a promise, but asynchronous routing is deprecated and will be removed in the next major release, see https://vike.dev/route-function#async`,{onlyOnce:!0})}function Se(){const e=p.cyan("iKnowThePerformanceRisksOfAsyncRouteFunctions");w(!1,`${e} is deprecated and will be removed in the next major release`,{onlyOnce:!0})}function et(e,t){a(t.endsWith(" should")),b(e,"routeParams")&&(a(t.endsWith(" should")),g(C(e.routeParams),`${t} be a plain JavaScript object.`),g($n(e.routeParams),`${t} only hold string values.`))}async function er(e,t,n,r){await Promise.all(e.filter(s=>s.fileType===".page.route").map(s=>{var c;return(c=s.loadFile)==null?void 0:c.call(s)}));const{onBeforeRouteHook:o,filesystemRoots:i}=nr(e,t,n);return{pageRoutes:tr(i,e,t,r),onBeforeRouteHook:o}}function tr(e,t,n,r){const o=[];let i=[...r];if(n.length>0){a(e===null);const l=!0;n.filter(s=>!s.isErrorPage).forEach(s=>{const c=s.pageId;i=or(i,c);let d=null;{const P="route",f=T(s,P);if(f){const u=f.value,y=Pt(f.definedAt,P);typeof u=="string"?d={pageId:c,comesFromV1PageConfig:l,routeString:u,routeDefinedAt:y,routeType:"STRING"}:(a(ie(u)),T(s,"iKnowThePerformanceRisksOfAsyncRouteFunctions","boolean")&&Se(),d={pageId:c,comesFromV1PageConfig:l,routeFunction:u,routeDefinedAt:y,routeType:"FUNCTION"})}}if(!d){const{routeFilesystem:P}=s;a(P);const{routeString:f,definedBy:u}=P;a(P.routeString.startsWith("/")),d={pageId:c,routeFilesystemDefinedBy:u,comesFromV1PageConfig:l,routeString:f,routeDefinedAt:null,routeType:"FILESYSTEM"}}a(d),o.push(d)})}if(n.length===0){a(e);const l=!1;i.filter(s=>!_t(s)).forEach(s=>{const c=t.find(d=>d.pageId===s&&d.fileType===".page.route");if(!c||!("default"in c.fileExports)){const d=Xn(s,e);a(d.startsWith("/")),a(!d.endsWith("/")||d==="/"),o.push({pageId:s,comesFromV1PageConfig:l,routeString:d,routeDefinedAt:null,routeFilesystemDefinedBy:`${s}.page.*`,routeType:"FILESYSTEM"})}else{const{filePath:d,fileExports:P}=c;if(a(P.default),b(P,"default","string")){const f=P.default;g(f.startsWith("/"),`A Route String should start with a leading slash '/' but ${d} has \`export default '${f}'\`. Make sure to \`export default '/${f}'\` instead.`),o.push({pageId:s,comesFromV1PageConfig:l,routeString:f,routeDefinedAt:d,routeType:"STRING"});return}if(b(P,"default","function")){const f=P.default;"iKnowThePerformanceRisksOfAsyncRouteFunctions"in P&&Se(),o.push({pageId:s,comesFromV1PageConfig:l,routeFunction:f,routeDefinedAt:d,routeType:"FUNCTION"});return}g(!1,`The default export of ${d} should be a string or a function.`)}})}return o}function nr(e,t,n){if(t.length>0)return{onBeforeRouteHook:St(n,"onBeforeRoute"),filesystemRoots:null};let r=null;const o=[];return e.filter(i=>i.fileType===".page.route"&&i.isDefaultPageFile).forEach(({filePath:i,fileExports:l})=>{if(a(l),"onBeforeRoute"in l){g(b(l,"onBeforeRoute","function"),`\`export { onBeforeRoute }\` of ${i} should be a function.`);const{onBeforeRoute:s}=l,c="onBeforeRoute";r={hookFilePath:i,hookFn:s,hookName:c,hookTimeout:Fe(c)}}"filesystemRoutingRoot"in l&&(g(b(l,"filesystemRoutingRoot","string"),`\`export { filesystemRoutingRoot }\` of ${i} should be a string.`),g(b(l,"filesystemRoutingRoot","string"),`\`export { filesystemRoutingRoot }\` of ${i} is \`'${l.filesystemRoutingRoot}'\` but it should start with a leading slash \`/\`.`),o.push({filesystemRoot:rr(i),urlRoot:l.filesystemRoutingRoot}))}),{onBeforeRouteHook:r,filesystemRoots:o}}function rr(e){a(e.startsWith("/")),a(!e.endsWith("/"));const t=e.split("/"),n=I(t,0,-1).join("/")||"/";return a(n.startsWith("/")),a(!n.endsWith("/")||n==="/"),n}function or(e,t){const{length:n}=e;return e=e.filter(r=>r!==t),a(e.length===n-1),e}function tt(){const e="/";return a(ir(e)),e}function ir(e){return e.startsWith("/")}const Z=k("createPageContext.ts",{});async function nt(e){Z.pageFilesData||(Z.pageFilesData=await wt(!0));const{pageFilesAll:t,allPageIds:n,pageConfigs:r,pageConfigGlobal:o}=Z.pageFilesData,{pageRoutes:i,onBeforeRouteHook:l}=await er(t,r,o,n),s=tt();a(Ie(s));const d={urlOriginal:e,_objectCreatedByVike:!0,_urlHandler:null,_urlRewrite:null,_baseServer:s,_isProduction:!0,_pageFilesAll:t,_pageConfigs:r,_pageConfigGlobal:o,_allPageIds:n,_pageRoutes:i,_onBeforeRouteHook:l};return qe(d),d}function rt(e){const t=e.getAttribute("href");return!!(t===null||t===""||yn(t)||ar(e)||lr(t)||!ur(t)||!Rt(t)||!sr(e))}function sr(e){if(cr()){const n=e.getAttribute("data-vike-link");return n!==null&&n!=="false"}else return!0}function ar(e){const t=e.getAttribute("target"),n=e.getAttribute("rel");return t==="_blank"||t==="_external"||n==="external"||e.hasAttribute("download")}function lr(e){if(e.startsWith("#"))return!0;const t=n=>n.split("#")[0];return!!(e.includes("#")&&t(e)===t(window.location.href))}function ur(e){const t=tt();a(Ie(t));const{hasBaseServer:n}=M(e,t);return n}function cr(){return!!window._disableAutomaticLinkInterception}function fr(e,t){let n=dr(e,t);return n==="viewport"&&!e._isProduction&&(se(!1,"Viewport prefetching is disabled in development",{onlyOnce:!0}),n="hover"),{prefetchStaticAssets:n}}function dr(e,t){{const n=gr(t);if(n!==null)return n}if("prefetchLinks"in e.exports&&g(!1,"`export { prefetchLinks }` is deprecated, use `export { prefetchStaticAssets }` instead."),"prefetchStaticAssets"in e.exports){const{prefetchStaticAssets:n}=e.exports;if(n===!1)return!1;if(n==="hover")return"hover";if(n==="viewport")return"viewport";const r="prefetchStaticAssets value should be false, 'hover', or 'viewport'";g(C(n),r);const o=Object.keys(n);g(o.length===1&&o[0]==="when",r);const{when:i}=n;if(i==="HOVER"||i==="VIEWPORT"){const l=i.toLowerCase();return w(!1,`prefetchStaticAssets value \`{ when: '${i}' }\` is outdated: set prefetchStaticAssets to '${l}' instead`,{onlyOnce:!0}),l}g(!1,r)}return"hover"}function gr(e){const t=e.getAttribute("data-prefetch-static-assets"),n=e.getAttribute("data-prefetch");if(t===null&&n===null)return null;const r="The attribute data-prefetch is outdated, use data-prefetch-static-assets instead.";if(t){if(g(n===null,r),t==="hover"||t==="viewport")return t;if(t==="false")return!1;g(!1,`data-prefetch-static-assets has value "${t}" but it should instead be "false", "hover", or "viewport"`)}if(n){if(a(!t),w(!1,r,{onlyOnce:!0}),n==="true")return"viewport";if(n==="false")return"hover";g(!1,`data-prefetch has value "${n}" but it should instead be "true" or "false"`)}a(!1)}const ot=new Map;function hr(e){const t=it(e);return ot.has(t)}function pr(e){const t=it(e);ot.set(t,!0)}function it(e){return M(e,"/").pathname}function N(e){return e.fileType===".css"?[]:e.exportNames?e.exportNames:(a(e.fileExports,e.filePath),Object.keys(e.fileExports))}function mr({pageFilesClientSide:e,pageFilesServerSide:t,pageId:n}){return{isHtmlOnly:r(),isClientRouting:i()};function r(){return t.some(s=>s.pageId===n&&s.fileType===".page")?(o(),!1):!(!t.some(s=>s.pageId===n&&s.fileType===".page.server")||e.some(s=>s.pageId===n&&s.fileType===".page.client"&&N(s).includes("render")))}function o(){const l=e.some(s=>N(s).includes("render"));g(l,["No client-side `render()` hook found.","See https://vike.dev/render-modes for more information.",["Loaded client-side page files (none of them `export { render }`):",...e.map((s,c)=>` (${c+1}): ${s.filePath}`)].join(`
2
+ `)].join(" "))}function i(){return e.some(s=>N(s).includes("clientRouting"))}}function yr({pageFilesClientSide:e,pageFilesServerSide:t,isHtmlOnly:n,isClientRouting:r}){let o=[];const i=t.filter(s=>!e.includes(s)),l=[];if(l.push(...e.map(s=>({id:s.filePath,onlyAssets:!1,eagerlyImported:!1}))),l.push(...i.map(s=>({id:s.filePath,onlyAssets:!0,eagerlyImported:!1}))),n)o=e.map(s=>s.filePath);else{const s=br(r);l.push({id:s,onlyAssets:!1,eagerlyImported:!1}),o=[s]}return{clientEntries:o,clientDependencies:l}}function br(e){return e?"@@vike/dist/esm/client/client-routing-runtime/entry.js":"@@vike/dist/esm/client/server-routing-runtime/entry.js"}function Pr(e,t){let n=Ae(e,t);const r=ke(e,t),{isHtmlOnly:o,isClientRouting:i}=mr({pageFilesClientSide:n,pageFilesServerSide:r,pageId:t});o&&(n=n.filter(c=>c.isEnv("CLIENT_ONLY")&&!N(c).includes("render")),n=Sr(n));const{clientEntries:l,clientDependencies:s}=yr({pageFilesClientSide:n,pageFilesServerSide:r,isHtmlOnly:o,isClientRouting:i});return{isHtmlOnly:o,isClientRouting:i,clientEntries:l,clientDependencies:s,pageFilesClientSide:n,pageFilesServerSide:r}}async function _r(e,t,{sharedPageFilesAlreadyLoaded:n}){const r=Ae(e,t);await Promise.all(r.map(async o=>{var i;a(o.isEnv("CLIENT_ONLY")||o.isEnv("CLIENT_AND_SERVER")),!(n&&o.isEnv("CLIENT_AND_SERVER"))&&await((i=o.loadExportNames)==null?void 0:i.call(o))}))}function Sr(e){const t=[];for(const n of e)if(t.push(n),N(n).includes("overrideDefaultPages"))break;return t}function wr(e,t,n){var r,o;if(e){const i=((r=T(e,"clientRouting","boolean"))==null?void 0:r.value)??!1;return{isClientSideRenderable:((o=T(e,"isClientSideRenderable","boolean"))==null?void 0:o.value)??!1,isClientRouting:i}}else{const{isHtmlOnly:i,isClientRouting:l}=Pr(t,n);return{isClientSideRenderable:!i,isClientRouting:l}}}async function st(e,t){await _r(t._pageFilesAll,e,{sharedPageFilesAlreadyLoaded:!1});const n=vt(t._pageConfigs,e),{isClientSideRenderable:r,isClientRouting:o}=wr(n,t._pageFilesAll,e);return r&&o}const at="@",ne=":";function Rr(e,t="Invalid"){let n=`${t} Route String ${x(e)}`;g(e!=="",`${n} (empty string): set it to ${x("/")} instead`),g(["/","*"].includes(e[0]),`${n}: it should start with ${x("/")} or ${x("*")}`),g(!e.includes("**"),`${n}: set it to ${x(e.split("**").join("*"))} instead`)}function re(e,t){Rr(e);const n=lt(e),r=n.map(f=>f.param?"[^/]+":f.glob?f.isLastDir?"|/.*":".*":$t(f.static)).map(f=>`(${f})`).join(""),o=new RegExp(`^${r}/?$`),i=t.match(o);if(!i)return null;const l={},[s,...c]=i;let d=0;const P=n.filter(f=>f.glob).length>1;return n.forEach((f,u)=>{let y=c[u];if(f.param&&(l[f.param]=y),f.glob){const O=`*${P?++d:""}`;f.isLastDir&&(y=y.slice(1)),l[O]=y}}),{routeParams:l}}function lt(e){const t=[],n=o=>{const i=t[t.length-1];i!=null&&i.static?i.static+=o:t.push({static:o})},r=e.split("/");return r.forEach((o,i)=>{const l=i===0,s=i===r.length-1;vr(o)?(w(!o.startsWith(ne),`Outdated Route String ${x(e)}, use ${x(e.split(ne).join(at))} instead`,{onlyOnce:!0}),l||n("/"),t.push({param:o.slice(1)})):o==="*"&&s&&e!=="*"&&e!=="/*"?t.push({glob:!0,isLastDir:!0}):(l||n("/"),o.split("*").forEach((c,d)=>{d!==0&&t.push({glob:!0}),c!==""&&n(c)}))}),t}function D(e){const t=lt(e),n=s=>(s==null?void 0:s.split("/").filter(Boolean).length)||0;let r=0;for(const s of t){if(!s.static)break;r+=n(s.static)}const o=t.map(s=>n(s.static)).reduce((s,c)=>s+c,0),i=t.filter(s=>s.param).length,l=t.filter(s=>s.glob).length;return{numberOfStaticPartsBeginning:r,numberOfStaticParts:o,numberOfParams:i,numberOfGlobs:l}}function vr(e){return e.startsWith(at)||e.startsWith(ne)}function we(e){const n=re(e,e);return a(n),Object.keys(n.routeParams).length===0}function x(e){return Y()?`'${e}'`:(e===""&&(e="''"),p.cyan(e))}function Cr(e){e.sort(Or).sort(F(t=>t.routeType==="FUNCTION"&&!!t.precedence&&t.precedence<0)).sort(F(t=>t.routeType==="STRING"&&we(t.routeString)===!1)).sort(F(t=>t.routeType==="FUNCTION"&&!t.precedence)).sort(F(t=>t.routeType==="STRING"&&we(t.routeString)===!0)).sort(F(t=>t.routeType==="FILESYSTEM")).sort(F(t=>t.routeType==="FUNCTION"&&!!t.precedence&&t.precedence>0))}function Or(e,t){{const n=e.precedence??0,r=t.precedence??0;if(n!==r)return n>r?-1:1}if(!t.routeString||!e.routeString)return 0;{const r=U(o=>D(o).numberOfStaticPartsBeginning)(e.routeString,t.routeString);if(r!==0)return r}{const r=U(o=>D(o).numberOfStaticParts)(e.routeString,t.routeString);if(r!==0)return r}{const r=Ct(o=>D(o).numberOfGlobs)(e.routeString,t.routeString);if(r!==0)return r}{const r=U(o=>D(o).numberOfParams)(e.routeString,t.routeString);if(r!==0)return r}return 0}async function xr(e){const t={};if(!e._onBeforeRouteHook)return null;const n=await kr(e._onBeforeRouteHook,e);return n&&(m(t,n),b(t,"_pageId","string")||b(t,"_pageId","null"))?(b(t,"routeParams")?a(b(t,"routeParams","object")):m(t,{routeParams:{}}),m(t,{_routingProvidedByOnBeforeRouteHook:!0,_debugRouteMatches:"CUSTOM_ROUTING"}),t):(m(t,{_routingProvidedByOnBeforeRouteHook:!1}),t)}async function kr(e,t){let n=e.hookFn(t);Ze(n,`The onBeforeRoute() hook ${e.hookFilePath}`),n=await $(()=>n,e);const r=`The onBeforeRoute() hook defined by ${e.hookFilePath}`;if(g(n==null||En(n,["pageContext"])&&b(n,"pageContext"),`${r} should return ${p.cyan("null")}, ${p.cyan("undefined")}, or a plain JavaScript object ${p.cyan("{ pageContext: { /* ... */ } }")}`),n==null)return null;if(g(b(n,"pageContext","object"),`${r} returned ${p.cyan("{ pageContext }")} but pageContext should be a plain JavaScript object.`),b(n.pageContext,"_pageId")&&!b(n.pageContext,"_pageId","null")){const l=`${r} returned ${p.cyan("{ pageContext: { _pageId } }")} but ${p.cyan("_pageId")} should be`;g(b(n.pageContext,"_pageId","string"),`${l} a string or null`),g(t._allPageIds.includes(n.pageContext._pageId),`${l} ${Tn(t._allPageIds.map(s=>p.cyan(s)),"or")}`)}b(n.pageContext,"routeParams")&&et(n.pageContext,`${r} returned ${p.cyan("{ pageContext: { routeParams } }")} but routeParams should`);const o=l=>`${r} returned ${p.cyan(`{ pageContext: { ${l} } }`)} which is deprecated. Return ${p.cyan("{ pageContext: { urlLogical } }")} instead.`;b(n.pageContext,"url")&&(w(!1,o("url"),{onlyOnce:!0}),n.pageContext.urlLogical=n.pageContext.url,delete n.pageContext.url),b(n.pageContext,"urlOriginal")&&(w(!1,o("urlOriginal"),{onlyOnce:!0}),n.pageContext.urlLogical=n.pageContext.urlOriginal,delete n.pageContext.urlOriginal),b(n.pageContext,"urlLogical")&&Ot(n.pageContext.urlLogical,`${r} returned ${p.cyan("{ pageContext: { urlLogical } }")} but ${p.cyan("urlLogical")}`),Ue(n.pageContext,{hookFilePath:e.hookFilePath,hookName:"onBeforeRoute"});const i={};return m(i,n.pageContext),i}var V;function Re(...e){var t;V||(V=(t=globalThis.__brillout_debug_createDebugger)==null?void 0:t.call(globalThis,"vike:routing")),V&&V(...e)}Y()&&B();async function ut(e){Re("Pages routes:",e._pageRoutes),qe(e);const t={},n=await xr(e);if(n){if(n._routingProvidedByOnBeforeRouteHook)return a(n._pageId),n;m(t,n)}const r={};m(r,e),m(r,n);const o=r._allPageIds;a(o.length>=0),g(r._pageFilesAll.length>0||r._pageConfigs.length>0,"No *.page.js file found. You must create at least one *.page.js file."),g(o.length>0,"You must create at least one *.page.js file that isn't _default.page.*");const{urlPathname:i}=r;a(i.startsWith("/"));const l=[];await Promise.all(r._pageRoutes.map(async c=>{const{pageId:d,routeType:P}=c;if(c.routeType==="FILESYSTEM"){const{routeString:f}=c,u=re(f,i);if(u){const{routeParams:y}=u;l.push({pageId:d,routeParams:y,routeString:f,routeType:P})}return}if(c.routeType==="STRING"){const{routeString:f}=c,u=re(f,i);if(u){const{routeParams:y}=u;a(P==="STRING"),l.push({pageId:d,routeString:f,routeParams:y,routeType:P})}return}if(c.routeType==="FUNCTION"){const{routeFunction:f,routeDefinedAt:u}=c,y=await Zn(f,r,u);if(y){const{routeParams:O,precedence:L}=y;l.push({pageId:d,precedence:L,routeParams:O,routeType:P})}return}a(!1)})),Cr(l);const s=l[0];if(Re(`Route matches for URL ${p.cyan(i)} (in precedence order):`,l),m(t,{_debugRouteMatches:l}),!s)return m(t,{_pageId:null,routeParams:{}}),t;{const{routeParams:c}=s;a(C(c)),m(t,{_pageId:s.pageId,routeParams:s.routeParams})}return t}B();const ve=k("prefetch.ts",{linkPrefetchHandlerAdded:new Map});async function Fr(e,t){try{await G(e,t)}catch(n){if(ae(n))oe(n,!0);else throw n}}function Er(e){pr(e.urlPathname),[...document.getElementsByTagName("A")].forEach(n=>{if(ve.linkPrefetchHandlerAdded.has(n))return;ve.linkPrefetchHandlerAdded.set(n,!0);const r=n.getAttribute("href");if(rt(n)||(a(r),hr(r)))return;const{prefetchStaticAssets:o}=fr(e,n);if(o&&(o==="hover"&&(n.addEventListener("mouseover",()=>{ee(r)}),n.addEventListener("touchstart",()=>{ee(r)},{passive:!0})),o==="viewport")){const i=new IntersectionObserver(l=>{l.forEach(s=>{s.isIntersecting&&(ee(r),i.disconnect())})});i.observe(n)}})}async function ee(e){const t=await nt(e);let n;try{n=await ut(t)}catch{return}n!=null&&n._pageId&&await st(n._pageId,t)&&await Fr(n._pageId,t)}function ct(e){if(e==="preserve-scroll")return;let t;if(e==="scroll-to-top-or-hash"){const n=Tr();if(n&&n!=="top"){const r=document.getElementById(n)||document.getElementsByName(n)[0];if(r){r.scrollIntoView();return}}t={x:0,y:0}}else a("x"in e&&"y"in e),t=e;$r(t)}function $r(e){const t=()=>window.scrollTo(e.x,e.y),n=()=>window.scrollX===e.x&&window.scrollY===e.y;n()||(t(),!n()&&requestAnimationFrame(()=>{t(),!n()&&setTimeout(async()=>{if(t(),n())return;const r=new Date().getTime();for(;;)if(await hn(10),t(),n()||new Date().getTime()-r>100)return},0)}))}function Tr(){let{hash:e}=window.location;return e===""?null:(a(e.startsWith("#")),e=e.slice(1),e)}function Ir(){window.addEventListener("scroll",pn(be,Math.ceil(1e3/3)),{passive:!0}),Be(be)}const E=k("onBrowserHistoryNavigation.ts",{previousState:K()});function Ar(){window.addEventListener("popstate",e=>{const t=K(),n=t.historyState.scrollPosition||"scroll-to-top-or-hash",r=t.historyState.triggedBy==="user",o=t.urlWithoutHash===E.previousState.urlWithoutHash,i=!t.historyState.timestamp||!E.previousState.historyState.timestamp?null:t.historyState.timestamp<E.previousState.historyState.timestamp;E.previousState=t,o&&!r?window.history.state===null?(Le(),E.previousState=K()):ct(n):j({scrollTarget:n,isBackwardNavigation:i,isUserLandPushStateNavigation:r})})}function K(){return{urlWithoutHash:le({withoutHash:!0}),historyState:ce()}}function Hr(){E.previousState=K()}const ft=k("scrollRestoration.ts",{});function Nr(){Ce(),Be(Ce),mn(()=>ft.initialRenderIsDone&&he())}function jr(){ft.initialRenderIsDone=!0}function he(){"scrollRestoration"in window.history&&(window.history.scrollRestoration="manual")}function Ce(){"scrollRestoration"in window.history&&(window.history.scrollRestoration="auto")}const _=k("renderPageClientSide.ts",{renderCounter:0});async function j(e){var me;const{scrollTarget:t,urlOriginal:n=le(),overwriteLastHistoryEntry:r=!1,isBackwardNavigation:o,pageContextsFromRewrite:i=[],redirectCount:l=0,isUserLandPushStateNavigation:s,isClientSideNavigation:c=!0}=e,{abortRender:d,setHydrationCanBeAborted:P,isFirstRender:f}=Wr();if(a(c===!f),Wn(i.length,l),_.clientRoutingIsDisabled){z(n);return}const u=await nt(n);if(d())return;m(u,{isBackwardNavigation:o,isClientSideNavigation:c});{const h=Bn(i);m(u,h)}let y={};const O=h=>{a(h),a(!("err"in y)),a(!("errorWhileRendering"in u)),y.err=h,u.errorWhileRendering=h};if(!f){try{y={pageContextFromRoute:await ut(u)}}catch(h){O(h)}if(d())return;if(y.pageContextFromRoute){const{pageContextFromRoute:h}=y;m(u,h);let S;if(!h._pageId)S=!1;else if(S=await st(h._pageId,u),d())return;if(!S){z(n);return}const R=h._pageId&&((me=_.previousPageContext)==null?void 0:me._pageId)&&h._pageId===_.previousPageContext._pageId;if(s&&R)return}}const L=!f;if(L&&!_.isTransitioning){if(_.onPageTransitionStart){const h=_.onPageTransitionStart,{hookFn:S}=h;await $(()=>S(u),h)}if(_.isTransitioning=!0,d())return}if(f){a(!y.pageContextFromRoute),a(!y.err);try{y.pageContextFromHooks=await Dn(u)}catch(h){O(h)}if(d())return}else if(!y.err){const{pageContextFromRoute:h}=y;a(h),a(h._pageId),a(b(h,"_pageId","string")),m(u,h);try{y.pageContextFromHooks=await Un(u)}catch(S){O(S)}if(d())return}if("err"in y){const{err:h}=y;if(_e(h)||console.error(h),Oe(h,u,f))return;if(_e(h)){const S=h;jn(h,u._isProduction,u);const R=S._pageContextAbort;if(R._urlRewrite){await j({...e,scrollTarget:"scroll-to-top-or-hash",pageContextsFromRewrite:[...i,R]});return}if(R._urlRedirect){const q=R._urlRedirect.url;if(q.startsWith("http")){window.location.href=q;return}else await j({...e,scrollTarget:"scroll-to-top-or-hash",urlOriginal:q,overwriteLastHistoryEntry:!1,isBackwardNavigation:!1,redirectCount:l+1});return}a(R.abortStatusCode),m(u,R),R.abortStatusCode===404&&m(u,{is404:!0})}else m(u,{is404:!1});try{y.pageContextFromHooks=await Vn(u)}catch(S){if(Oe(S,u,f)||(f||setTimeout(()=>{window.location.pathname=n},0),gn(h,S)))return;throw S}if(d())return}const{pageContextFromHooks:pe}=y;a(pe),m(u,pe),Q(u,"onPageTransitionStart");const dt=A(u,"onPageTransitionStart");if(_.onPageTransitionStart=dt,u.exports.hydrationCanBeAborted?P():w(!dn(),"You seem to be using React; we recommend setting hydrationCanBeAborted to true, see https://vike.dev/hydrationCanBeAborted",{onlyOnce:!0}),!d()&&!(_.renderPromise&&(await _.renderPromise,a(_.renderPromise===void 0),d()))){if(Br(n,r),_.previousPageContext=u,a(_.renderPromise===void 0),_.renderPromise=(async()=>{await xt(u,!0),Er(u),_.renderPromise=void 0})(),await _.renderPromise,a(_.renderPromise===void 0),f){Q(u,"onHydrationEnd");const h=A(u,"onHydrationEnd");if(h){const{hookFn:S}=h;if(await $(()=>S(u),h),d(!0))return}}if(!d(!0)){if(L){Q(u,"onPageTransitionEnd");const h=A(u,"onPageTransitionEnd");if(h){const{hookFn:S}=h;if(await $(()=>S(u),h),d(!0))return}_.isTransitioning=void 0}ct(t),he(),jr()}}}function Br(e,t){le()!==e&&(he(),bn(e,t),Hr())}function Oe(e,t,n){return!!(Mn(e)||Lr(e,t,n))}function Lr(e,t,n){if(!ae(e))return!1;if(n)throw oe(e,!1),e;return oe(e,!0),z(t.urlOriginal),!0}function oe(e,t){a(ae(e)),_.clientRoutingIsDisabled=!0,t&&console.log(e),se(!1,["Failed to fetch static asset.","This usually happens when a new frontend is deployed.","Falling back to Server Routing.","(The next page navigation will use Server Routing instead of Client Routing.)"].filter(Boolean).join(" "),{onlyOnce:!0})}function Wr(){const e=++_.renderCounter;a(e>=1);let t=!1;return{abortRender:o=>!o&&e===1&&!t?!1:e!==_.renderCounter,setHydrationCanBeAborted:()=>{t=!0},isFirstRender:e===1}}function xe(){return _.renderCounter}function Dr(){document.addEventListener("click",Vr)}function Vr(e){if(!Ur(e))return;const t=Gr(e.target);if(!t)return;const n=t.getAttribute("href");if(rt(t))return;a(n),e.preventDefault();const o=![null,"false"].includes(t.getAttribute("keep-scroll-position"))?"preserve-scroll":"scroll-to-top-or-hash";j({scrollTarget:o,urlOriginal:n,isBackwardNavigation:!1})}function Ur(e){return e.button===0&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey}function Gr(e){for(;e.tagName!=="A";){const{parentNode:t}=e;if(!t)return null;e=t}return e}function zr(){Nr(),Le(),Ir(),_n(),a(xe()===0),j({scrollTarget:"preserve-scroll",isBackwardNavigation:null,isClientSideNavigation:!1}),a(xe()===1),Dr(),Ar()}B();const Kr=!0;kt(Kr);zr();
@@ -0,0 +1,2 @@
1
+ import{j as ie,k as a,p,m as gt,b as g,s as ht,n as pt,q as B,r as v,t as k,u as b,v as ke,d as w,w as M,x as I,y as Y,z as A,A as $,B as Fe,C as se,o as m,a as mt,l as G,D as Ee,E as $e,F as Te,G as yt,H as bt,I as U,J as Pt,K as _t,L as St,c as wt,M as Ie,N as Rt,O as Ae,P as vt,Q as F,R as Ct,S as Ot,T as ae,g as le,i as Q,h as xt,U as kt}from"../chunks/chunk-3d735b94.js";import{_ as H}from"../chunks/chunk-cf010ec4.js";function C(e){return typeof e!="object"||e===null?!1:Object.getPrototypeOf(e)===null?!0:e.constructor.name==="Object"}function ye(e){return"["+e.map(t=>"'"+t+"'").join(", ")+"]"}function X(e,t){const n=Object.getOwnPropertyDescriptor(e,t);return!!n&&!("value"in n)&&!!n.get}function Ft(e){return typeof e=="object"&&e!==null&&"then"in e&&ie(e.then)}function Et(e){return[null,void 0].includes(e)?String(e):["boolean","number","string"].includes(typeof e)?JSON.stringify(e):null}function $t(e){return e.replace(/[/\-\\^$*+?.()|[\]{}]/g,"\\$&")}function T(e,t,n){const r=It(e,t);if(r===null)return null;const{value:o,definedAt:i}=r;return n&&Tt(o,n,t,i),r}function Tt(e,t,n,r){a(e!==null);const o=typeof e;if(o===t)return;const i=Et(e),l=i!==null?`value ${p.cyan(i)}`:`type ${p.cyan(o)}`,c=`${gt("Config",n,{definedAt:r})} has an invalid ${l}: it should be a ${p.cyan(t)} instead`;g(!1,c)}function It(e,t){const n=e.configValues[t];return!n||n.value===null?null:n}const At=["default"],Ht=Object.freeze(Object.defineProperty({__proto__:null,exportNames:At},Symbol.toStringTag,{value:"Module"})),Nt=["default"],jt=Object.freeze(Object.defineProperty({__proto__:null,exportNames:Nt},Symbol.toStringTag,{value:"Module"})),Bt=["Page"],Lt=Object.freeze(Object.defineProperty({__proto__:null,exportNames:Bt},Symbol.toStringTag,{value:"Module"})),Wt=["render","passToClient"],Dt=Object.freeze(Object.defineProperty({__proto__:null,exportNames:Wt},Symbol.toStringTag,{value:"Module"})),Vt=["render","onHydrationEnd","onPageTransitionStart","onPageTransitionEnd","clientRouting","hydrationCanBeAborted"],Ut=Object.freeze(Object.defineProperty({__proto__:null,exportNames:Vt},Symbol.toStringTag,{value:"Module"})),ue={},He={},Gt={},J={},zt=[],Ne={},Kt=!0,Mt=[],Yt={configValuesImported:[]},Jt=Object.assign({"/pages/hands.page.tsx":()=>H(()=>import("./pages_hands.page.fb90f80e.js"),["assets/entries/pages_hands.page.fb90f80e.js","assets/chunks/chunk-0c07adda.js","assets/chunks/chunk-0c7b0c67.js","assets/chunks/chunk-cf010ec4.js","assets/chunks/chunk-ceb3463c.js"]),"/pages/index.page.tsx":()=>H(()=>import("./pages_index.page.76e4864a.js"),["assets/entries/pages_index.page.76e4864a.js","assets/chunks/chunk-0c07adda.js","assets/chunks/chunk-0c7b0c67.js","assets/chunks/chunk-cf010ec4.js","assets/chunks/chunk-ceb3463c.js"]),"/renderer/_error.page.tsx":()=>H(()=>import("./renderer_error.page.4485c2ac.js"),["assets/entries/renderer_error.page.4485c2ac.js","assets/chunks/chunk-0c07adda.js"])}),qt={...Jt};ue[".page"]=qt;const Qt=Object.assign({"/pages/hands.page.tsx":Ht,"/pages/index.page.tsx":jt,"/renderer/_error.page.tsx":Lt}),Xt={...Qt};J[".page"]=Xt;const Zt=Object.assign({"/renderer/_default.page.server.tsx":Dt}),en={...Zt};J[".page.server"]=en;const tn=Object.assign({}),nn={...tn};He[".page.route"]=nn;const rn=Object.assign({"/renderer/_default.page.client.tsx":()=>H(()=>import("./renderer_default.page.client.98b62a91.js"),["assets/entries/renderer_default.page.client.98b62a91.js","assets/chunks/chunk-0c07adda.js","assets/chunks/chunk-ceb3463c.js","assets/static/default.page.client.7be06a4d.css"])}),on={...rn};ue[".page.client"]=on;const sn=Object.assign({"/renderer/_default.page.client.tsx":Ut}),an={...sn};J[".page.client"]=an;const ln=Object.assign({"/renderer/_default.page.server.tsx":()=>H(()=>import("./renderer_default.page.server.extractAssets.4ed993c7.js"),[])}),un={...ln};Ne[".page.server"]=un;const cn=Object.freeze(Object.defineProperty({__proto__:null,isGeneratedFile:Kt,neverLoaded:Ne,pageConfigGlobalSerialized:Yt,pageConfigsSerialized:Mt,pageFilesEager:He,pageFilesExportNamesEager:J,pageFilesExportNamesLazy:Gt,pageFilesLazy:ue,pageFilesList:zt},Symbol.toStringTag,{value:"Module"}));ht(cn);function fn(){pt(),B()}function dn(){var r,o,i,l;const e=!!((o=(r=window.__REACT_DEVTOOLS_GLOBAL_HOOK__)==null?void 0:r.renderers)!=null&&o.size),t=!!((l=(i=window.__REACT_DEVTOOLS_GLOBAL_HOOK__)==null?void 0:i.rendererInterfaces)!=null&&l.size),n=!!window.__vite_plugin_react_preamble_installed__;return e||t||n}function je(e,t){const n=Object.keys,r=typeof e;return e&&t&&r==="object"&&r===typeof t?n(e).length===n(t).length&&n(e).every(i=>je(e[i],t[i])):e===t}function gn(e,t){return v(e)&&v(t)&&e.constructor===t.constructor&&je({...e,stack:null},{...t,stack:null})&&t.message===t.message}function z(e){window.location.href=e}function hn(e){return new Promise(t=>setTimeout(t,e))}function pn(e,t){let n=!1;return()=>{n||(n=!0,setTimeout(()=>{n=!1,e()},t))}}function Be(e){window.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&e()})}function mn(e){window.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&e()})}function yn(e){return!e.startsWith("/")&&!e.startsWith(".")&&!e.startsWith("?")&&e!==""}fn();const te=k("history.ts",{});function Le(){let e=window.history.state;e||(e={});let t=!1;"timestamp"in e||(t=!0,e.timestamp=de()),"scrollPosition"in e||(t=!0,e.scrollPosition=fe()),"triggedBy"in e||(e.triggedBy="browser"),We(e),t&&ge(e)}function ce(){const e=window.history.state||{};return We(e),e}function fe(){return{x:window.scrollX,y:window.scrollY}}function de(){return new Date().getTime()}function be(){const e=fe(),t=ce();ge({...t,scrollPosition:e})}function bn(e,t){if(t)ge(ce(),e);else{const n=de();Pn({timestamp:n,scrollPosition:null,triggedBy:"vike"},e)}}function We(e){if(a(v(e)),"timestamp"in e){const{timestamp:t}=e;a(typeof t=="number")}if("scrollPosition"in e){const{scrollPosition:t}=e;t!==null&&a(b(t,"x","number")&&b(t,"y","number"))}}function ge(e,t){window.history.replaceState(e,"",t??null)}function Pn(e,t){De(e,"",t)}function _n(){te.pushStateOriginal=te.pushStateOriginal??window.history.pushState,window.history.pushState=(e={},...t)=>{g(e==null||v(e),"history.pushState(state) argument state must be an object");const n={scrollPosition:fe(),timestamp:de(),...e,triggedBy:"user"};return De(n,...t)}}function De(...e){te.pushStateOriginal.apply(history,e)}async function Sn(e,t){const r=ke(e,t).filter(i=>i.fileType===".page.server");return await Promise.all(r.map(async i=>{i.exportNames||(a(i.loadExportNames,t),await i.loadExportNames())})),{hasOnBeforeRenderServerSideOnlyHook:r.some(({exportNames:i})=>(a(i),i.includes("onBeforeRender")))}}const Pe=["urlPathname","urlParsed"],wn=["Page","pageExports","exports"];function Ve(e){[...wn,...Pe].forEach(n=>{n in e&&(Pe.includes(n)?(a(n.startsWith("url")),w(!1,`pageContext.${n} is already available in the browser when using Client Routing; adding '${n}' to passToClient has no effect`,{onlyOnce:!0})):w(!1,`pageContext.${n} is a built-in that cannot be overriden; adding '${n}' to passToClient has no effect`,{onlyOnce:!0}),delete e[n])})}const Rn="/";function vn(e,t,n){const{pathnameOriginal:r,searchOriginal:o,hashOriginal:i}=M(e,Rn);e.startsWith("/")&&a(e===`${r}${o||""}${i||""}`,{url:e});const l=r.endsWith("/");let s;return n&&r!=="/"?(l?s=I(r,0,-1):s=r,a(!s.endsWith("/"),{url:e}),a(s!=="")):s=r+(l?"":"/")+"index",a(s),s=s+t,`${s}${o||""}${i||""}`}const Cn=".pageContext.json",On=!1;function xn(e){return vn(e,Cn,On)}function Ue(e,{hookName:t,hookFilePath:n}){if(e==null)return;a(!t.endsWith(")"));const r=`The ${p.cyan("pageContext")} object provided by the ${t}() hook defined by ${n}`;g(v(e),`${r} should be an object (but it's ${p.cyan(`typeof pageContext === ${JSON.stringify(typeof e)}`)} instead)`),g(!("_objectCreatedByVike"in e),`${r} shouldn't be the whole ${p.cyan("pageContext")} object, see https://vike.dev/pageContext-manipulation#do-not-return-entire-pagecontext`),w(!("_pageId"in e),`${r} sets ${p.cyan("pageContext._pageId")} which means that Vike's routing is overriden. This is an experimental feature: make sure to contact a vike maintainer before using this.`,{onlyOnce:!0}),g(!("is404"in e),`${r} sets ${p.cyan("pageContext.is404")} which is forbidden, use ${p.cyan("throw render()")} instead, see https://vike.dev/render`)}function kn(e,t,n){a(!n.endsWith(" "));const r=[],o=Object.keys(e);for(const i of o)t.includes(i)||r.push(i);g(r.length===0,[n,"returned an object with following unknown keys:",ye(r)+".","Only following keys are allowed:",ye(t)+"."].join(" "))}function Fn(e,t){if(e==null)return;const n=`The onBeforeRender() hook defined by ${t}`;g(C(e),`${n} should return a plain JavaScript object, ${p.cyan("undefined")}, or ${p.cyan("null")}`),kn(e,["pageContext"],n),e.pageContext&&Ue(e.pageContext,{hookName:"onBeforeRender",hookFilePath:t})}function En(e,t){if(!C(e))return!1;for(const n of Object.keys(e))if(!t.includes(n))return!1;return!0}function $n(e){return typeof e=="object"&&e!==null&&Object.values(e).every(t=>typeof t=="string")}function Tn(e,t,n=r=>r){if(a(e.length>0),e.length===1)return n(e[0]);const r=e.slice(0,e.length-1),o=e[e.length-1];return r.map(n).join(", ")+` ${t} `+n(o)}Y()&&B();async function In(e,t){let n;if(e._pageFilesAll.length>0?(a(e._pageConfigs.length===0),n=An(e._pageId,e._pageFilesAll)):n=A(e,"guard"),!n)return;const r=n.hookFn;let o=e;const i=t(e);i&&(o=i);const l=await $(()=>r(o),n);g(l===void 0,`The guard() hook of ${n.hookFilePath} returns a value, but guard() doesn't accept any return value`)}function An(e,t){const n=t.find(c=>c.pageId===e&&c.fileType===".page.route");if(!n)return null;const{filePath:r,fileExports:o}=n;a(o);const i=o.guard;if(!i)return null;const l=r,s=Fe("guard");return g(ie(i),`guard() defined by ${l} should be a function`),{hookFn:i,hookName:"guard",hookFilePath:l,hookTimeout:s}}function Hn(e){const t=new Error("AbortRender");return m(t,{_pageContextAbort:e,[Ge]:!0}),t}const Ge="_isAbortError";function _e(e){return typeof e=="object"&&e!==null&&Ge in e}function Nn(e){return e._urlRewrite||e._urlRedirect||e.abortStatusCode?(a(b(e,"_abortCall","string")),!0):!1}function jn(e,t,n){if(t)return;const r=n._urlRewrite??n.urlOriginal;a(r);const o=e._pageContextAbort._abortCall;se(!1,`${p.cyan(o)} intercepted while rendering ${p.cyan(r)}`,{onlyOnce:!1})}function Bn(e){Ln(e);const t={_urlRewrite:null};return e.forEach(n=>{Object.assign(t,n)}),t}function Ln(e){const t=[];e.forEach(n=>{const r=n._urlRewrite;{const o=t.indexOf(r);if(o!==-1){const i=[...t.slice(o),r].map(l=>`render('${l}')`).join(" => ");g(!1,`Infinite loop of render() calls: ${i}`)}}t.push(r)})}function Wn(e,t){const n=[e>0&&p.cyan("throw render('/some-url')"),t>0&&p.cyan("throw redirect('/some-url')")].filter(Boolean).join(" and ");g(e+t<=7,`Maximum chain length of 7 ${n} exceeded. Did you define an infinite loop of ${n}?`)}const ze=k("router/getPageContext.ts",{});async function Dn(e){const t=mt();Ve(t),m(t,{isHydration:!0,_hasPageContextFromClient:!1}),m(t,await G(t._pageId,e));{const n={...e,...t};if(Je(n)){const r=await Me(n);m(t,r)}}return Ye(t),t}async function Vn(e){const t=Ee(e._pageFilesAll,e._pageConfigs);if(!t)throw new Error("No error page defined.");const n={isHydration:!1,_pageId:t};return m(n,await Ke({...e,...n},!0)),n}async function Un(e){const t={isHydration:!1,_pageId:e._pageId};return m(t,await Ke({...e,...t},!1)),Ye(t),t}async function Ke(e,t){let n={};m(n,{_hasPageContextFromClient:!1}),m(n,await G(e._pageId,e));let r=!1;if(!t&&await Gn({...e,...n})){const o=await Kn(e);if(r=!0,!o._isError)m(n,o);else{const i=Ee(e._pageFilesAll,e._pageConfigs);a(i),n={},m(n,{_hasPageContextFromClient:!1,isHydration:!1,_pageId:i}),m(n,await G(n._pageId,e)),a(b(o,"is404","boolean")),a(b(o,"pageProps","object")),a(b(o.pageProps,"is404","boolean")),a(!("serverSideError"in o)),m(n,o)}}else m(n,{_hasPageContextFromServer:!1}),t||await In({...e,...n},o=>$e(o,!0));{const o={...e,...n};if(Je(o)||!r){const i=await Me(o);m(n,i)}else a(r)}return n}async function Me(e){const t=A(e,"onBeforeRender");if(!t)return{_hasPageContextFromClient:!1};const n=t.hookFn,r={_hasPageContextFromClient:!0},o=$e({...e,...r},!0),i=await $(()=>n(o),t);Fn(i,t.hookFilePath);const l=i==null?void 0:i.pageContext;return m(r,l),r}function Ye(e){e._pageContextInitHasClientData&&(ze.pageContextInitHasClientData=!0)}async function Gn(e){return!!ze.pageContextInitHasClientData||await zn(e)}async function zn(e){var t;if(e._pageConfigs.length>0){const n=Te(e._pageId,e._pageConfigs),r=((t=T(n,"onBeforeRenderEnv"))==null?void 0:t.value)??{};return a(v(r)),!!r.server&&!r.client}else{const{hasOnBeforeRenderServerSideOnlyHook:n}=await Sn(e._pageFilesAll,e._pageId);return n}}function Je(e){var t;if(e._pageConfigs.length>0){const n=Te(e._pageId,e._pageConfigs),r=((t=T(n,"onBeforeRenderEnv"))==null?void 0:t.value)??{};return a(v(r)),!!r.client&&!r.server}else return!1}async function Kn(e){const t=xn(e._urlRewrite??e.urlOriginal),n=await fetch(t);{const i=n.headers.get("content-type"),l="application/json",s=i&&i.includes(l);if(!s&&n.status===404)throw z(e.urlOriginal),Yn();g(s,`Wrong Content-Type for ${t}: it should be ${l} but it's ${i} instead. Make sure to properly use pageContext.httpResponse.headers, see https://vike.dev/renderPage`)}const r=await n.text(),o=yt(r);if(a(v(o)),"serverSideError"in o)throw bt("The pageContext object couldn't be fetched from the server as an error occurred on the server-side. Check your server logs.");if(Nn(o))throw Hn(o);return a(b(o,"_pageId","string")),Ve(o),m(o,{_hasPageContextFromServer:!0}),o}function Mn(e){return v(e)&&!!e._alreadyServerSideRouted}function Yn(){const e=new Error("Page doesn't exist");return Object.assign(e,{_alreadyServerSideRouted:!0}),e}function qe(e,t=!0){a(e.urlOriginal),"urlPathname"in e&&(a(typeof e.urlPathname=="string"),a(X(e,"urlPathname"))),"urlParsed"in e&&a(X(e,"urlParsed")),"url"in e&&a(X(e,"url")),Object.defineProperty(e,"urlPathname",{get:Xe,enumerable:t,configurable:!0}),Object.defineProperty(e,"url",{get:Jn,enumerable:!1,configurable:!0}),Object.defineProperty(e,"urlParsed",{get:qn,enumerable:t,configurable:!0})}function Qe(e){let t=e._urlHandler;t||(t=o=>o);let n=e._urlRewrite??e.urlLogical??e.urlOriginal;n=t(n);const r=e._baseServer;return a(n&&typeof n=="string"),a(r.startsWith("/")),M(n,r)}function Xe(){const{pathname:e}=Qe(this),t=e;return a(t.startsWith("/")),t}function Jn(){return w(!1,"`pageContext.url` is outdated. Use `pageContext.urlPathname`, `pageContext.urlParsed`, or `pageContext.urlOriginal` instead. (See https://vike.dev/migration/0.4.23 for more information.)",{onlyOnce:!0,showStackTrace:!0}),Xe.call(this)}function qn(){const e=Qe(this),{origin:t,pathname:n,pathnameOriginal:r,search:o,searchAll:i,searchOriginal:l,hash:s,hashOriginal:c}=e,d=Y(),P=u=>{w(d,`pageContext.urlParsed.${u} isn't available on the server-side (HTTP requests don't include the URL hash by design)`,{onlyOnce:!0,showStackTrace:!0})},f={origin:t,pathname:n,pathnameOriginal:r,search:o,searchAll:i,searchOriginal:l,get hash(){return P("hash"),s},get hashOriginal(){return P("hashOriginal"),c},get hashString(){return w(!1,"pageContext.urlParsed.hashString has been renamed to pageContext.urlParsed.hashOriginal",{onlyOnce:!0,showStackTrace:!0}),P("hashString"),c},get searchString(){return w(!1,"pageContext.urlParsed.searchString has been renamed to pageContext.urlParsed.searchOriginal",{onlyOnce:!0,showStackTrace:!0}),l}};return W(f,"hashString"),W(f,"searchString"),d||(W(f,"hash"),W(f,"hashOriginal")),f}function W(e,t){const n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(e,t,{...n,enumerable:!1})}function Qn(e){a(typeof e.urlOriginal=="string"),a(typeof e.urlPathname=="string"),a(C(e.urlParsed)),a(e.urlPathname===e.urlParsed.pathname)}function Xn(e,t){const r=t.filter(({filesystemRoot:i})=>e.startsWith(i)).sort(U(({filesystemRoot:i})=>i.length))[0];let o;if(r){const{filesystemRoot:i,urlRoot:l}=r,s={pageId:e,filesystemRoot:i,urlRoot:l};a(l.startsWith("/")&&e.startsWith("/")&&i.startsWith("/"),s),a(e.startsWith(i),s),i!=="/"?(a(!i.endsWith("/"),s),o=I(e,i.length,0)):o=e,a(o.startsWith("/"),s),o=l+(l.endsWith("/")?"":"/")+I(o,1,0)}else o=e;return a(o.startsWith("/")),o=o.split("/").filter(i=>i!=="pages"&&i!=="src"&&i!=="index").join("/"),a(!o.includes(".page.")),a(!o.endsWith(".")),o.endsWith("/index")&&(o=I(o,0,-6)),o===""&&(o="/"),a(o.startsWith("/")),a(!o.endsWith("/")||o==="/"),o}async function Zn(e,t,n){Qn(t);let r=e(t);if(Ze(r,`The Route Function ${n}`),r=await r,r===!1)return null;if(r===!0&&(r={}),g(C(r),`The Route Function ${n} should return a boolean or a plain JavaScript object (but it's ${p.cyan(`typeof result === ${JSON.stringify(typeof r)}`)} instead)`),"match"in r){const{match:l}=r;if(g(typeof l=="boolean",`The ${p.cyan("match")} value returned by the Route Function ${n} should be a boolean.`),!l)return null}let o=null;"precedence"in r&&(o=r.precedence,g(typeof o=="number",`The ${p.cyan("precedence")} value returned by the Route Function ${n} should be a number.`)),et(r,`The ${p.cyan("routeParams")} object returned by the Route Function ${n} should`);const i=r.routeParams||{};return g(!("pageContext"in r),`Providing ${p.cyan("pageContext")} in Route Functions is prohibited, see https://vike.dev/route-function#cannot-provide-pagecontext`),a(C(i)),Object.keys(r).forEach(l=>{g(l==="match"||l==="routeParams"||l==="precedence",`The Route Function ${n} returned an object with an unknown property ${p.cyan(l)} (the known properties are ${p.cyan("match")}, ${p.cyan("routeParams")}, and ${p.cyan("precedence")})`)}),{precedence:o,routeParams:i}}function Ze(e,t){w(!Ft(e),`${t} returned a promise, but asynchronous routing is deprecated and will be removed in the next major release, see https://vike.dev/route-function#async`,{onlyOnce:!0})}function Se(){const e=p.cyan("iKnowThePerformanceRisksOfAsyncRouteFunctions");w(!1,`${e} is deprecated and will be removed in the next major release`,{onlyOnce:!0})}function et(e,t){a(t.endsWith(" should")),b(e,"routeParams")&&(a(t.endsWith(" should")),g(C(e.routeParams),`${t} be a plain JavaScript object.`),g($n(e.routeParams),`${t} only hold string values.`))}async function er(e,t,n,r){await Promise.all(e.filter(s=>s.fileType===".page.route").map(s=>{var c;return(c=s.loadFile)==null?void 0:c.call(s)}));const{onBeforeRouteHook:o,filesystemRoots:i}=nr(e,t,n);return{pageRoutes:tr(i,e,t,r),onBeforeRouteHook:o}}function tr(e,t,n,r){const o=[];let i=[...r];if(n.length>0){a(e===null);const l=!0;n.filter(s=>!s.isErrorPage).forEach(s=>{const c=s.pageId;i=or(i,c);let d=null;{const P="route",f=T(s,P);if(f){const u=f.value,y=Pt(f.definedAt,P);typeof u=="string"?d={pageId:c,comesFromV1PageConfig:l,routeString:u,routeDefinedAt:y,routeType:"STRING"}:(a(ie(u)),T(s,"iKnowThePerformanceRisksOfAsyncRouteFunctions","boolean")&&Se(),d={pageId:c,comesFromV1PageConfig:l,routeFunction:u,routeDefinedAt:y,routeType:"FUNCTION"})}}if(!d){const{routeFilesystem:P}=s;a(P);const{routeString:f,definedBy:u}=P;a(P.routeString.startsWith("/")),d={pageId:c,routeFilesystemDefinedBy:u,comesFromV1PageConfig:l,routeString:f,routeDefinedAt:null,routeType:"FILESYSTEM"}}a(d),o.push(d)})}if(n.length===0){a(e);const l=!1;i.filter(s=>!_t(s)).forEach(s=>{const c=t.find(d=>d.pageId===s&&d.fileType===".page.route");if(!c||!("default"in c.fileExports)){const d=Xn(s,e);a(d.startsWith("/")),a(!d.endsWith("/")||d==="/"),o.push({pageId:s,comesFromV1PageConfig:l,routeString:d,routeDefinedAt:null,routeFilesystemDefinedBy:`${s}.page.*`,routeType:"FILESYSTEM"})}else{const{filePath:d,fileExports:P}=c;if(a(P.default),b(P,"default","string")){const f=P.default;g(f.startsWith("/"),`A Route String should start with a leading slash '/' but ${d} has \`export default '${f}'\`. Make sure to \`export default '/${f}'\` instead.`),o.push({pageId:s,comesFromV1PageConfig:l,routeString:f,routeDefinedAt:d,routeType:"STRING"});return}if(b(P,"default","function")){const f=P.default;"iKnowThePerformanceRisksOfAsyncRouteFunctions"in P&&Se(),o.push({pageId:s,comesFromV1PageConfig:l,routeFunction:f,routeDefinedAt:d,routeType:"FUNCTION"});return}g(!1,`The default export of ${d} should be a string or a function.`)}})}return o}function nr(e,t,n){if(t.length>0)return{onBeforeRouteHook:St(n,"onBeforeRoute"),filesystemRoots:null};let r=null;const o=[];return e.filter(i=>i.fileType===".page.route"&&i.isDefaultPageFile).forEach(({filePath:i,fileExports:l})=>{if(a(l),"onBeforeRoute"in l){g(b(l,"onBeforeRoute","function"),`\`export { onBeforeRoute }\` of ${i} should be a function.`);const{onBeforeRoute:s}=l,c="onBeforeRoute";r={hookFilePath:i,hookFn:s,hookName:c,hookTimeout:Fe(c)}}"filesystemRoutingRoot"in l&&(g(b(l,"filesystemRoutingRoot","string"),`\`export { filesystemRoutingRoot }\` of ${i} should be a string.`),g(b(l,"filesystemRoutingRoot","string"),`\`export { filesystemRoutingRoot }\` of ${i} is \`'${l.filesystemRoutingRoot}'\` but it should start with a leading slash \`/\`.`),o.push({filesystemRoot:rr(i),urlRoot:l.filesystemRoutingRoot}))}),{onBeforeRouteHook:r,filesystemRoots:o}}function rr(e){a(e.startsWith("/")),a(!e.endsWith("/"));const t=e.split("/"),n=I(t,0,-1).join("/")||"/";return a(n.startsWith("/")),a(!n.endsWith("/")||n==="/"),n}function or(e,t){const{length:n}=e;return e=e.filter(r=>r!==t),a(e.length===n-1),e}function tt(){const e="/";return a(ir(e)),e}function ir(e){return e.startsWith("/")}const Z=k("createPageContext.ts",{});async function nt(e){Z.pageFilesData||(Z.pageFilesData=await wt(!0));const{pageFilesAll:t,allPageIds:n,pageConfigs:r,pageConfigGlobal:o}=Z.pageFilesData,{pageRoutes:i,onBeforeRouteHook:l}=await er(t,r,o,n),s=tt();a(Ie(s));const d={urlOriginal:e,_objectCreatedByVike:!0,_urlHandler:null,_urlRewrite:null,_baseServer:s,_isProduction:!0,_pageFilesAll:t,_pageConfigs:r,_pageConfigGlobal:o,_allPageIds:n,_pageRoutes:i,_onBeforeRouteHook:l};return qe(d),d}function rt(e){const t=e.getAttribute("href");return!!(t===null||t===""||yn(t)||ar(e)||lr(t)||!ur(t)||!Rt(t)||!sr(e))}function sr(e){if(cr()){const n=e.getAttribute("data-vike-link");return n!==null&&n!=="false"}else return!0}function ar(e){const t=e.getAttribute("target"),n=e.getAttribute("rel");return t==="_blank"||t==="_external"||n==="external"||e.hasAttribute("download")}function lr(e){if(e.startsWith("#"))return!0;const t=n=>n.split("#")[0];return!!(e.includes("#")&&t(e)===t(window.location.href))}function ur(e){const t=tt();a(Ie(t));const{hasBaseServer:n}=M(e,t);return n}function cr(){return!!window._disableAutomaticLinkInterception}function fr(e,t){let n=dr(e,t);return n==="viewport"&&!e._isProduction&&(se(!1,"Viewport prefetching is disabled in development",{onlyOnce:!0}),n="hover"),{prefetchStaticAssets:n}}function dr(e,t){{const n=gr(t);if(n!==null)return n}if("prefetchLinks"in e.exports&&g(!1,"`export { prefetchLinks }` is deprecated, use `export { prefetchStaticAssets }` instead."),"prefetchStaticAssets"in e.exports){const{prefetchStaticAssets:n}=e.exports;if(n===!1)return!1;if(n==="hover")return"hover";if(n==="viewport")return"viewport";const r="prefetchStaticAssets value should be false, 'hover', or 'viewport'";g(C(n),r);const o=Object.keys(n);g(o.length===1&&o[0]==="when",r);const{when:i}=n;if(i==="HOVER"||i==="VIEWPORT"){const l=i.toLowerCase();return w(!1,`prefetchStaticAssets value \`{ when: '${i}' }\` is outdated: set prefetchStaticAssets to '${l}' instead`,{onlyOnce:!0}),l}g(!1,r)}return"hover"}function gr(e){const t=e.getAttribute("data-prefetch-static-assets"),n=e.getAttribute("data-prefetch");if(t===null&&n===null)return null;const r="The attribute data-prefetch is outdated, use data-prefetch-static-assets instead.";if(t){if(g(n===null,r),t==="hover"||t==="viewport")return t;if(t==="false")return!1;g(!1,`data-prefetch-static-assets has value "${t}" but it should instead be "false", "hover", or "viewport"`)}if(n){if(a(!t),w(!1,r,{onlyOnce:!0}),n==="true")return"viewport";if(n==="false")return"hover";g(!1,`data-prefetch has value "${n}" but it should instead be "true" or "false"`)}a(!1)}const ot=new Map;function hr(e){const t=it(e);return ot.has(t)}function pr(e){const t=it(e);ot.set(t,!0)}function it(e){return M(e,"/").pathname}function N(e){return e.fileType===".css"?[]:e.exportNames?e.exportNames:(a(e.fileExports,e.filePath),Object.keys(e.fileExports))}function mr({pageFilesClientSide:e,pageFilesServerSide:t,pageId:n}){return{isHtmlOnly:r(),isClientRouting:i()};function r(){return t.some(s=>s.pageId===n&&s.fileType===".page")?(o(),!1):!(!t.some(s=>s.pageId===n&&s.fileType===".page.server")||e.some(s=>s.pageId===n&&s.fileType===".page.client"&&N(s).includes("render")))}function o(){const l=e.some(s=>N(s).includes("render"));g(l,["No client-side `render()` hook found.","See https://vike.dev/render-modes for more information.",["Loaded client-side page files (none of them `export { render }`):",...e.map((s,c)=>` (${c+1}): ${s.filePath}`)].join(`
2
+ `)].join(" "))}function i(){return e.some(s=>N(s).includes("clientRouting"))}}function yr({pageFilesClientSide:e,pageFilesServerSide:t,isHtmlOnly:n,isClientRouting:r}){let o=[];const i=t.filter(s=>!e.includes(s)),l=[];if(l.push(...e.map(s=>({id:s.filePath,onlyAssets:!1,eagerlyImported:!1}))),l.push(...i.map(s=>({id:s.filePath,onlyAssets:!0,eagerlyImported:!1}))),n)o=e.map(s=>s.filePath);else{const s=br(r);l.push({id:s,onlyAssets:!1,eagerlyImported:!1}),o=[s]}return{clientEntries:o,clientDependencies:l}}function br(e){return e?"@@vike/dist/esm/client/client-routing-runtime/entry.js":"@@vike/dist/esm/client/server-routing-runtime/entry.js"}function Pr(e,t){let n=Ae(e,t);const r=ke(e,t),{isHtmlOnly:o,isClientRouting:i}=mr({pageFilesClientSide:n,pageFilesServerSide:r,pageId:t});o&&(n=n.filter(c=>c.isEnv("CLIENT_ONLY")&&!N(c).includes("render")),n=Sr(n));const{clientEntries:l,clientDependencies:s}=yr({pageFilesClientSide:n,pageFilesServerSide:r,isHtmlOnly:o,isClientRouting:i});return{isHtmlOnly:o,isClientRouting:i,clientEntries:l,clientDependencies:s,pageFilesClientSide:n,pageFilesServerSide:r}}async function _r(e,t,{sharedPageFilesAlreadyLoaded:n}){const r=Ae(e,t);await Promise.all(r.map(async o=>{var i;a(o.isEnv("CLIENT_ONLY")||o.isEnv("CLIENT_AND_SERVER")),!(n&&o.isEnv("CLIENT_AND_SERVER"))&&await((i=o.loadExportNames)==null?void 0:i.call(o))}))}function Sr(e){const t=[];for(const n of e)if(t.push(n),N(n).includes("overrideDefaultPages"))break;return t}function wr(e,t,n){var r,o;if(e){const i=((r=T(e,"clientRouting","boolean"))==null?void 0:r.value)??!1;return{isClientSideRenderable:((o=T(e,"isClientSideRenderable","boolean"))==null?void 0:o.value)??!1,isClientRouting:i}}else{const{isHtmlOnly:i,isClientRouting:l}=Pr(t,n);return{isClientSideRenderable:!i,isClientRouting:l}}}async function st(e,t){await _r(t._pageFilesAll,e,{sharedPageFilesAlreadyLoaded:!1});const n=vt(t._pageConfigs,e),{isClientSideRenderable:r,isClientRouting:o}=wr(n,t._pageFilesAll,e);return r&&o}const at="@",ne=":";function Rr(e,t="Invalid"){let n=`${t} Route String ${x(e)}`;g(e!=="",`${n} (empty string): set it to ${x("/")} instead`),g(["/","*"].includes(e[0]),`${n}: it should start with ${x("/")} or ${x("*")}`),g(!e.includes("**"),`${n}: set it to ${x(e.split("**").join("*"))} instead`)}function re(e,t){Rr(e);const n=lt(e),r=n.map(f=>f.param?"[^/]+":f.glob?f.isLastDir?"|/.*":".*":$t(f.static)).map(f=>`(${f})`).join(""),o=new RegExp(`^${r}/?$`),i=t.match(o);if(!i)return null;const l={},[s,...c]=i;let d=0;const P=n.filter(f=>f.glob).length>1;return n.forEach((f,u)=>{let y=c[u];if(f.param&&(l[f.param]=y),f.glob){const O=`*${P?++d:""}`;f.isLastDir&&(y=y.slice(1)),l[O]=y}}),{routeParams:l}}function lt(e){const t=[],n=o=>{const i=t[t.length-1];i!=null&&i.static?i.static+=o:t.push({static:o})},r=e.split("/");return r.forEach((o,i)=>{const l=i===0,s=i===r.length-1;vr(o)?(w(!o.startsWith(ne),`Outdated Route String ${x(e)}, use ${x(e.split(ne).join(at))} instead`,{onlyOnce:!0}),l||n("/"),t.push({param:o.slice(1)})):o==="*"&&s&&e!=="*"&&e!=="/*"?t.push({glob:!0,isLastDir:!0}):(l||n("/"),o.split("*").forEach((c,d)=>{d!==0&&t.push({glob:!0}),c!==""&&n(c)}))}),t}function D(e){const t=lt(e),n=s=>(s==null?void 0:s.split("/").filter(Boolean).length)||0;let r=0;for(const s of t){if(!s.static)break;r+=n(s.static)}const o=t.map(s=>n(s.static)).reduce((s,c)=>s+c,0),i=t.filter(s=>s.param).length,l=t.filter(s=>s.glob).length;return{numberOfStaticPartsBeginning:r,numberOfStaticParts:o,numberOfParams:i,numberOfGlobs:l}}function vr(e){return e.startsWith(at)||e.startsWith(ne)}function we(e){const n=re(e,e);return a(n),Object.keys(n.routeParams).length===0}function x(e){return Y()?`'${e}'`:(e===""&&(e="''"),p.cyan(e))}function Cr(e){e.sort(Or).sort(F(t=>t.routeType==="FUNCTION"&&!!t.precedence&&t.precedence<0)).sort(F(t=>t.routeType==="STRING"&&we(t.routeString)===!1)).sort(F(t=>t.routeType==="FUNCTION"&&!t.precedence)).sort(F(t=>t.routeType==="STRING"&&we(t.routeString)===!0)).sort(F(t=>t.routeType==="FILESYSTEM")).sort(F(t=>t.routeType==="FUNCTION"&&!!t.precedence&&t.precedence>0))}function Or(e,t){{const n=e.precedence??0,r=t.precedence??0;if(n!==r)return n>r?-1:1}if(!t.routeString||!e.routeString)return 0;{const r=U(o=>D(o).numberOfStaticPartsBeginning)(e.routeString,t.routeString);if(r!==0)return r}{const r=U(o=>D(o).numberOfStaticParts)(e.routeString,t.routeString);if(r!==0)return r}{const r=Ct(o=>D(o).numberOfGlobs)(e.routeString,t.routeString);if(r!==0)return r}{const r=U(o=>D(o).numberOfParams)(e.routeString,t.routeString);if(r!==0)return r}return 0}async function xr(e){const t={};if(!e._onBeforeRouteHook)return null;const n=await kr(e._onBeforeRouteHook,e);return n&&(m(t,n),b(t,"_pageId","string")||b(t,"_pageId","null"))?(b(t,"routeParams")?a(b(t,"routeParams","object")):m(t,{routeParams:{}}),m(t,{_routingProvidedByOnBeforeRouteHook:!0,_debugRouteMatches:"CUSTOM_ROUTING"}),t):(m(t,{_routingProvidedByOnBeforeRouteHook:!1}),t)}async function kr(e,t){let n=e.hookFn(t);Ze(n,`The onBeforeRoute() hook ${e.hookFilePath}`),n=await $(()=>n,e);const r=`The onBeforeRoute() hook defined by ${e.hookFilePath}`;if(g(n==null||En(n,["pageContext"])&&b(n,"pageContext"),`${r} should return ${p.cyan("null")}, ${p.cyan("undefined")}, or a plain JavaScript object ${p.cyan("{ pageContext: { /* ... */ } }")}`),n==null)return null;if(g(b(n,"pageContext","object"),`${r} returned ${p.cyan("{ pageContext }")} but pageContext should be a plain JavaScript object.`),b(n.pageContext,"_pageId")&&!b(n.pageContext,"_pageId","null")){const l=`${r} returned ${p.cyan("{ pageContext: { _pageId } }")} but ${p.cyan("_pageId")} should be`;g(b(n.pageContext,"_pageId","string"),`${l} a string or null`),g(t._allPageIds.includes(n.pageContext._pageId),`${l} ${Tn(t._allPageIds.map(s=>p.cyan(s)),"or")}`)}b(n.pageContext,"routeParams")&&et(n.pageContext,`${r} returned ${p.cyan("{ pageContext: { routeParams } }")} but routeParams should`);const o=l=>`${r} returned ${p.cyan(`{ pageContext: { ${l} } }`)} which is deprecated. Return ${p.cyan("{ pageContext: { urlLogical } }")} instead.`;b(n.pageContext,"url")&&(w(!1,o("url"),{onlyOnce:!0}),n.pageContext.urlLogical=n.pageContext.url,delete n.pageContext.url),b(n.pageContext,"urlOriginal")&&(w(!1,o("urlOriginal"),{onlyOnce:!0}),n.pageContext.urlLogical=n.pageContext.urlOriginal,delete n.pageContext.urlOriginal),b(n.pageContext,"urlLogical")&&Ot(n.pageContext.urlLogical,`${r} returned ${p.cyan("{ pageContext: { urlLogical } }")} but ${p.cyan("urlLogical")}`),Ue(n.pageContext,{hookFilePath:e.hookFilePath,hookName:"onBeforeRoute"});const i={};return m(i,n.pageContext),i}var V;function Re(...e){var t;V||(V=(t=globalThis.__brillout_debug_createDebugger)==null?void 0:t.call(globalThis,"vike:routing")),V&&V(...e)}Y()&&B();async function ut(e){Re("Pages routes:",e._pageRoutes),qe(e);const t={},n=await xr(e);if(n){if(n._routingProvidedByOnBeforeRouteHook)return a(n._pageId),n;m(t,n)}const r={};m(r,e),m(r,n);const o=r._allPageIds;a(o.length>=0),g(r._pageFilesAll.length>0||r._pageConfigs.length>0,"No *.page.js file found. You must create at least one *.page.js file."),g(o.length>0,"You must create at least one *.page.js file that isn't _default.page.*");const{urlPathname:i}=r;a(i.startsWith("/"));const l=[];await Promise.all(r._pageRoutes.map(async c=>{const{pageId:d,routeType:P}=c;if(c.routeType==="FILESYSTEM"){const{routeString:f}=c,u=re(f,i);if(u){const{routeParams:y}=u;l.push({pageId:d,routeParams:y,routeString:f,routeType:P})}return}if(c.routeType==="STRING"){const{routeString:f}=c,u=re(f,i);if(u){const{routeParams:y}=u;a(P==="STRING"),l.push({pageId:d,routeString:f,routeParams:y,routeType:P})}return}if(c.routeType==="FUNCTION"){const{routeFunction:f,routeDefinedAt:u}=c,y=await Zn(f,r,u);if(y){const{routeParams:O,precedence:L}=y;l.push({pageId:d,precedence:L,routeParams:O,routeType:P})}return}a(!1)})),Cr(l);const s=l[0];if(Re(`Route matches for URL ${p.cyan(i)} (in precedence order):`,l),m(t,{_debugRouteMatches:l}),!s)return m(t,{_pageId:null,routeParams:{}}),t;{const{routeParams:c}=s;a(C(c)),m(t,{_pageId:s.pageId,routeParams:s.routeParams})}return t}B();const ve=k("prefetch.ts",{linkPrefetchHandlerAdded:new Map});async function Fr(e,t){try{await G(e,t)}catch(n){if(ae(n))oe(n,!0);else throw n}}function Er(e){pr(e.urlPathname),[...document.getElementsByTagName("A")].forEach(n=>{if(ve.linkPrefetchHandlerAdded.has(n))return;ve.linkPrefetchHandlerAdded.set(n,!0);const r=n.getAttribute("href");if(rt(n)||(a(r),hr(r)))return;const{prefetchStaticAssets:o}=fr(e,n);if(o&&(o==="hover"&&(n.addEventListener("mouseover",()=>{ee(r)}),n.addEventListener("touchstart",()=>{ee(r)},{passive:!0})),o==="viewport")){const i=new IntersectionObserver(l=>{l.forEach(s=>{s.isIntersecting&&(ee(r),i.disconnect())})});i.observe(n)}})}async function ee(e){const t=await nt(e);let n;try{n=await ut(t)}catch{return}n!=null&&n._pageId&&await st(n._pageId,t)&&await Fr(n._pageId,t)}function ct(e){if(e==="preserve-scroll")return;let t;if(e==="scroll-to-top-or-hash"){const n=Tr();if(n&&n!=="top"){const r=document.getElementById(n)||document.getElementsByName(n)[0];if(r){r.scrollIntoView();return}}t={x:0,y:0}}else a("x"in e&&"y"in e),t=e;$r(t)}function $r(e){const t=()=>window.scrollTo(e.x,e.y),n=()=>window.scrollX===e.x&&window.scrollY===e.y;n()||(t(),!n()&&requestAnimationFrame(()=>{t(),!n()&&setTimeout(async()=>{if(t(),n())return;const r=new Date().getTime();for(;;)if(await hn(10),t(),n()||new Date().getTime()-r>100)return},0)}))}function Tr(){let{hash:e}=window.location;return e===""?null:(a(e.startsWith("#")),e=e.slice(1),e)}function Ir(){window.addEventListener("scroll",pn(be,Math.ceil(1e3/3)),{passive:!0}),Be(be)}const E=k("onBrowserHistoryNavigation.ts",{previousState:K()});function Ar(){window.addEventListener("popstate",e=>{const t=K(),n=t.historyState.scrollPosition||"scroll-to-top-or-hash",r=t.historyState.triggedBy==="user",o=t.urlWithoutHash===E.previousState.urlWithoutHash,i=!t.historyState.timestamp||!E.previousState.historyState.timestamp?null:t.historyState.timestamp<E.previousState.historyState.timestamp;E.previousState=t,o&&!r?window.history.state===null?(Le(),E.previousState=K()):ct(n):j({scrollTarget:n,isBackwardNavigation:i,isUserLandPushStateNavigation:r})})}function K(){return{urlWithoutHash:le({withoutHash:!0}),historyState:ce()}}function Hr(){E.previousState=K()}const ft=k("scrollRestoration.ts",{});function Nr(){Ce(),Be(Ce),mn(()=>ft.initialRenderIsDone&&he())}function jr(){ft.initialRenderIsDone=!0}function he(){"scrollRestoration"in window.history&&(window.history.scrollRestoration="manual")}function Ce(){"scrollRestoration"in window.history&&(window.history.scrollRestoration="auto")}const _=k("renderPageClientSide.ts",{renderCounter:0});async function j(e){var me;const{scrollTarget:t,urlOriginal:n=le(),overwriteLastHistoryEntry:r=!1,isBackwardNavigation:o,pageContextsFromRewrite:i=[],redirectCount:l=0,isUserLandPushStateNavigation:s,isClientSideNavigation:c=!0}=e,{abortRender:d,setHydrationCanBeAborted:P,isFirstRender:f}=Wr();if(a(c===!f),Wn(i.length,l),_.clientRoutingIsDisabled){z(n);return}const u=await nt(n);if(d())return;m(u,{isBackwardNavigation:o,isClientSideNavigation:c});{const h=Bn(i);m(u,h)}let y={};const O=h=>{a(h),a(!("err"in y)),a(!("errorWhileRendering"in u)),y.err=h,u.errorWhileRendering=h};if(!f){try{y={pageContextFromRoute:await ut(u)}}catch(h){O(h)}if(d())return;if(y.pageContextFromRoute){const{pageContextFromRoute:h}=y;m(u,h);let S;if(!h._pageId)S=!1;else if(S=await st(h._pageId,u),d())return;if(!S){z(n);return}const R=h._pageId&&((me=_.previousPageContext)==null?void 0:me._pageId)&&h._pageId===_.previousPageContext._pageId;if(s&&R)return}}const L=!f;if(L&&!_.isTransitioning){if(_.onPageTransitionStart){const h=_.onPageTransitionStart,{hookFn:S}=h;await $(()=>S(u),h)}if(_.isTransitioning=!0,d())return}if(f){a(!y.pageContextFromRoute),a(!y.err);try{y.pageContextFromHooks=await Dn(u)}catch(h){O(h)}if(d())return}else if(!y.err){const{pageContextFromRoute:h}=y;a(h),a(h._pageId),a(b(h,"_pageId","string")),m(u,h);try{y.pageContextFromHooks=await Un(u)}catch(S){O(S)}if(d())return}if("err"in y){const{err:h}=y;if(_e(h)||console.error(h),Oe(h,u,f))return;if(_e(h)){const S=h;jn(h,u._isProduction,u);const R=S._pageContextAbort;if(R._urlRewrite){await j({...e,scrollTarget:"scroll-to-top-or-hash",pageContextsFromRewrite:[...i,R]});return}if(R._urlRedirect){const q=R._urlRedirect.url;if(q.startsWith("http")){window.location.href=q;return}else await j({...e,scrollTarget:"scroll-to-top-or-hash",urlOriginal:q,overwriteLastHistoryEntry:!1,isBackwardNavigation:!1,redirectCount:l+1});return}a(R.abortStatusCode),m(u,R),R.abortStatusCode===404&&m(u,{is404:!0})}else m(u,{is404:!1});try{y.pageContextFromHooks=await Vn(u)}catch(S){if(Oe(S,u,f)||(f||setTimeout(()=>{window.location.pathname=n},0),gn(h,S)))return;throw S}if(d())return}const{pageContextFromHooks:pe}=y;a(pe),m(u,pe),Q(u,"onPageTransitionStart");const dt=A(u,"onPageTransitionStart");if(_.onPageTransitionStart=dt,u.exports.hydrationCanBeAborted?P():w(!dn(),"You seem to be using React; we recommend setting hydrationCanBeAborted to true, see https://vike.dev/hydrationCanBeAborted",{onlyOnce:!0}),!d()&&!(_.renderPromise&&(await _.renderPromise,a(_.renderPromise===void 0),d()))){if(Br(n,r),_.previousPageContext=u,a(_.renderPromise===void 0),_.renderPromise=(async()=>{await xt(u,!0),Er(u),_.renderPromise=void 0})(),await _.renderPromise,a(_.renderPromise===void 0),f){Q(u,"onHydrationEnd");const h=A(u,"onHydrationEnd");if(h){const{hookFn:S}=h;if(await $(()=>S(u),h),d(!0))return}}if(!d(!0)){if(L){Q(u,"onPageTransitionEnd");const h=A(u,"onPageTransitionEnd");if(h){const{hookFn:S}=h;if(await $(()=>S(u),h),d(!0))return}_.isTransitioning=void 0}ct(t),he(),jr()}}}function Br(e,t){le()!==e&&(he(),bn(e,t),Hr())}function Oe(e,t,n){return!!(Mn(e)||Lr(e,t,n))}function Lr(e,t,n){if(!ae(e))return!1;if(n)throw oe(e,!1),e;return oe(e,!0),z(t.urlOriginal),!0}function oe(e,t){a(ae(e)),_.clientRoutingIsDisabled=!0,t&&console.log(e),se(!1,["Failed to fetch static asset.","This usually happens when a new frontend is deployed.","Falling back to Server Routing.","(The next page navigation will use Server Routing instead of Client Routing.)"].filter(Boolean).join(" "),{onlyOnce:!0})}function Wr(){const e=++_.renderCounter;a(e>=1);let t=!1;return{abortRender:o=>!o&&e===1&&!t?!1:e!==_.renderCounter,setHydrationCanBeAborted:()=>{t=!0},isFirstRender:e===1}}function xe(){return _.renderCounter}function Dr(){document.addEventListener("click",Vr)}function Vr(e){if(!Ur(e))return;const t=Gr(e.target);if(!t)return;const n=t.getAttribute("href");if(rt(t))return;a(n),e.preventDefault();const o=![null,"false"].includes(t.getAttribute("keep-scroll-position"))?"preserve-scroll":"scroll-to-top-or-hash";j({scrollTarget:o,urlOriginal:n,isBackwardNavigation:!1})}function Ur(e){return e.button===0&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey}function Gr(e){for(;e.tagName!=="A";){const{parentNode:t}=e;if(!t)return null;e=t}return e}function zr(){Nr(),Le(),Ir(),_n(),a(xe()===0),j({scrollTarget:"preserve-scroll",isBackwardNavigation:null,isClientSideNavigation:!1}),a(xe()===1),Dr(),Ar()}B();const Kr=!0;kt(Kr);zr();
@@ -0,0 +1,2 @@
1
+ import{j as ie,k as a,p,m as gt,b as g,s as ht,n as pt,q as B,r as v,t as k,u as b,v as ke,d as w,w as M,x as I,y as Y,z as A,A as $,B as Fe,C as se,o as m,a as mt,l as G,D as Ee,E as $e,F as Te,G as yt,H as bt,I as U,J as Pt,K as _t,L as St,c as wt,M as Ie,N as Rt,O as Ae,P as vt,Q as F,R as Ct,S as Ot,T as ae,g as le,i as Q,h as xt,U as kt}from"../chunks/chunk-3d735b94.js";import{_ as H}from"../chunks/chunk-cf010ec4.js";function C(e){return typeof e!="object"||e===null?!1:Object.getPrototypeOf(e)===null?!0:e.constructor.name==="Object"}function ye(e){return"["+e.map(t=>"'"+t+"'").join(", ")+"]"}function X(e,t){const n=Object.getOwnPropertyDescriptor(e,t);return!!n&&!("value"in n)&&!!n.get}function Ft(e){return typeof e=="object"&&e!==null&&"then"in e&&ie(e.then)}function Et(e){return[null,void 0].includes(e)?String(e):["boolean","number","string"].includes(typeof e)?JSON.stringify(e):null}function $t(e){return e.replace(/[/\-\\^$*+?.()|[\]{}]/g,"\\$&")}function T(e,t,n){const r=It(e,t);if(r===null)return null;const{value:o,definedAt:i}=r;return n&&Tt(o,n,t,i),r}function Tt(e,t,n,r){a(e!==null);const o=typeof e;if(o===t)return;const i=Et(e),l=i!==null?`value ${p.cyan(i)}`:`type ${p.cyan(o)}`,c=`${gt("Config",n,{definedAt:r})} has an invalid ${l}: it should be a ${p.cyan(t)} instead`;g(!1,c)}function It(e,t){const n=e.configValues[t];return!n||n.value===null?null:n}const At=["default"],Ht=Object.freeze(Object.defineProperty({__proto__:null,exportNames:At},Symbol.toStringTag,{value:"Module"})),Nt=["default"],jt=Object.freeze(Object.defineProperty({__proto__:null,exportNames:Nt},Symbol.toStringTag,{value:"Module"})),Bt=["Page"],Lt=Object.freeze(Object.defineProperty({__proto__:null,exportNames:Bt},Symbol.toStringTag,{value:"Module"})),Wt=["render","passToClient"],Dt=Object.freeze(Object.defineProperty({__proto__:null,exportNames:Wt},Symbol.toStringTag,{value:"Module"})),Vt=["render","onHydrationEnd","onPageTransitionStart","onPageTransitionEnd","clientRouting","hydrationCanBeAborted"],Ut=Object.freeze(Object.defineProperty({__proto__:null,exportNames:Vt},Symbol.toStringTag,{value:"Module"})),ue={},He={},Gt={},J={},zt=[],Ne={},Kt=!0,Mt=[],Yt={configValuesImported:[]},Jt=Object.assign({"/pages/hands.page.tsx":()=>H(()=>import("./pages_hands.page.724feffe.js"),["assets/entries/pages_hands.page.724feffe.js","assets/chunks/chunk-0c07adda.js","assets/chunks/chunk-1581dd07.js","assets/chunks/chunk-cf010ec4.js","assets/chunks/chunk-ceb3463c.js"]),"/pages/index.page.tsx":()=>H(()=>import("./pages_index.page.25ffff8e.js"),["assets/entries/pages_index.page.25ffff8e.js","assets/chunks/chunk-0c07adda.js","assets/chunks/chunk-1581dd07.js","assets/chunks/chunk-cf010ec4.js","assets/chunks/chunk-ceb3463c.js"]),"/renderer/_error.page.tsx":()=>H(()=>import("./renderer_error.page.4485c2ac.js"),["assets/entries/renderer_error.page.4485c2ac.js","assets/chunks/chunk-0c07adda.js"])}),qt={...Jt};ue[".page"]=qt;const Qt=Object.assign({"/pages/hands.page.tsx":Ht,"/pages/index.page.tsx":jt,"/renderer/_error.page.tsx":Lt}),Xt={...Qt};J[".page"]=Xt;const Zt=Object.assign({"/renderer/_default.page.server.tsx":Dt}),en={...Zt};J[".page.server"]=en;const tn=Object.assign({}),nn={...tn};He[".page.route"]=nn;const rn=Object.assign({"/renderer/_default.page.client.tsx":()=>H(()=>import("./renderer_default.page.client.98b62a91.js"),["assets/entries/renderer_default.page.client.98b62a91.js","assets/chunks/chunk-0c07adda.js","assets/chunks/chunk-ceb3463c.js","assets/static/default.page.client.7be06a4d.css"])}),on={...rn};ue[".page.client"]=on;const sn=Object.assign({"/renderer/_default.page.client.tsx":Ut}),an={...sn};J[".page.client"]=an;const ln=Object.assign({"/renderer/_default.page.server.tsx":()=>H(()=>import("./renderer_default.page.server.extractAssets.4ed993c7.js"),[])}),un={...ln};Ne[".page.server"]=un;const cn=Object.freeze(Object.defineProperty({__proto__:null,isGeneratedFile:Kt,neverLoaded:Ne,pageConfigGlobalSerialized:Yt,pageConfigsSerialized:Mt,pageFilesEager:He,pageFilesExportNamesEager:J,pageFilesExportNamesLazy:Gt,pageFilesLazy:ue,pageFilesList:zt},Symbol.toStringTag,{value:"Module"}));ht(cn);function fn(){pt(),B()}function dn(){var r,o,i,l;const e=!!((o=(r=window.__REACT_DEVTOOLS_GLOBAL_HOOK__)==null?void 0:r.renderers)!=null&&o.size),t=!!((l=(i=window.__REACT_DEVTOOLS_GLOBAL_HOOK__)==null?void 0:i.rendererInterfaces)!=null&&l.size),n=!!window.__vite_plugin_react_preamble_installed__;return e||t||n}function je(e,t){const n=Object.keys,r=typeof e;return e&&t&&r==="object"&&r===typeof t?n(e).length===n(t).length&&n(e).every(i=>je(e[i],t[i])):e===t}function gn(e,t){return v(e)&&v(t)&&e.constructor===t.constructor&&je({...e,stack:null},{...t,stack:null})&&t.message===t.message}function z(e){window.location.href=e}function hn(e){return new Promise(t=>setTimeout(t,e))}function pn(e,t){let n=!1;return()=>{n||(n=!0,setTimeout(()=>{n=!1,e()},t))}}function Be(e){window.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&e()})}function mn(e){window.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&e()})}function yn(e){return!e.startsWith("/")&&!e.startsWith(".")&&!e.startsWith("?")&&e!==""}fn();const te=k("history.ts",{});function Le(){let e=window.history.state;e||(e={});let t=!1;"timestamp"in e||(t=!0,e.timestamp=de()),"scrollPosition"in e||(t=!0,e.scrollPosition=fe()),"triggedBy"in e||(e.triggedBy="browser"),We(e),t&&ge(e)}function ce(){const e=window.history.state||{};return We(e),e}function fe(){return{x:window.scrollX,y:window.scrollY}}function de(){return new Date().getTime()}function be(){const e=fe(),t=ce();ge({...t,scrollPosition:e})}function bn(e,t){if(t)ge(ce(),e);else{const n=de();Pn({timestamp:n,scrollPosition:null,triggedBy:"vike"},e)}}function We(e){if(a(v(e)),"timestamp"in e){const{timestamp:t}=e;a(typeof t=="number")}if("scrollPosition"in e){const{scrollPosition:t}=e;t!==null&&a(b(t,"x","number")&&b(t,"y","number"))}}function ge(e,t){window.history.replaceState(e,"",t??null)}function Pn(e,t){De(e,"",t)}function _n(){te.pushStateOriginal=te.pushStateOriginal??window.history.pushState,window.history.pushState=(e={},...t)=>{g(e==null||v(e),"history.pushState(state) argument state must be an object");const n={scrollPosition:fe(),timestamp:de(),...e,triggedBy:"user"};return De(n,...t)}}function De(...e){te.pushStateOriginal.apply(history,e)}async function Sn(e,t){const r=ke(e,t).filter(i=>i.fileType===".page.server");return await Promise.all(r.map(async i=>{i.exportNames||(a(i.loadExportNames,t),await i.loadExportNames())})),{hasOnBeforeRenderServerSideOnlyHook:r.some(({exportNames:i})=>(a(i),i.includes("onBeforeRender")))}}const Pe=["urlPathname","urlParsed"],wn=["Page","pageExports","exports"];function Ve(e){[...wn,...Pe].forEach(n=>{n in e&&(Pe.includes(n)?(a(n.startsWith("url")),w(!1,`pageContext.${n} is already available in the browser when using Client Routing; adding '${n}' to passToClient has no effect`,{onlyOnce:!0})):w(!1,`pageContext.${n} is a built-in that cannot be overriden; adding '${n}' to passToClient has no effect`,{onlyOnce:!0}),delete e[n])})}const Rn="/";function vn(e,t,n){const{pathnameOriginal:r,searchOriginal:o,hashOriginal:i}=M(e,Rn);e.startsWith("/")&&a(e===`${r}${o||""}${i||""}`,{url:e});const l=r.endsWith("/");let s;return n&&r!=="/"?(l?s=I(r,0,-1):s=r,a(!s.endsWith("/"),{url:e}),a(s!=="")):s=r+(l?"":"/")+"index",a(s),s=s+t,`${s}${o||""}${i||""}`}const Cn=".pageContext.json",On=!1;function xn(e){return vn(e,Cn,On)}function Ue(e,{hookName:t,hookFilePath:n}){if(e==null)return;a(!t.endsWith(")"));const r=`The ${p.cyan("pageContext")} object provided by the ${t}() hook defined by ${n}`;g(v(e),`${r} should be an object (but it's ${p.cyan(`typeof pageContext === ${JSON.stringify(typeof e)}`)} instead)`),g(!("_objectCreatedByVike"in e),`${r} shouldn't be the whole ${p.cyan("pageContext")} object, see https://vike.dev/pageContext-manipulation#do-not-return-entire-pagecontext`),w(!("_pageId"in e),`${r} sets ${p.cyan("pageContext._pageId")} which means that Vike's routing is overriden. This is an experimental feature: make sure to contact a vike maintainer before using this.`,{onlyOnce:!0}),g(!("is404"in e),`${r} sets ${p.cyan("pageContext.is404")} which is forbidden, use ${p.cyan("throw render()")} instead, see https://vike.dev/render`)}function kn(e,t,n){a(!n.endsWith(" "));const r=[],o=Object.keys(e);for(const i of o)t.includes(i)||r.push(i);g(r.length===0,[n,"returned an object with following unknown keys:",ye(r)+".","Only following keys are allowed:",ye(t)+"."].join(" "))}function Fn(e,t){if(e==null)return;const n=`The onBeforeRender() hook defined by ${t}`;g(C(e),`${n} should return a plain JavaScript object, ${p.cyan("undefined")}, or ${p.cyan("null")}`),kn(e,["pageContext"],n),e.pageContext&&Ue(e.pageContext,{hookName:"onBeforeRender",hookFilePath:t})}function En(e,t){if(!C(e))return!1;for(const n of Object.keys(e))if(!t.includes(n))return!1;return!0}function $n(e){return typeof e=="object"&&e!==null&&Object.values(e).every(t=>typeof t=="string")}function Tn(e,t,n=r=>r){if(a(e.length>0),e.length===1)return n(e[0]);const r=e.slice(0,e.length-1),o=e[e.length-1];return r.map(n).join(", ")+` ${t} `+n(o)}Y()&&B();async function In(e,t){let n;if(e._pageFilesAll.length>0?(a(e._pageConfigs.length===0),n=An(e._pageId,e._pageFilesAll)):n=A(e,"guard"),!n)return;const r=n.hookFn;let o=e;const i=t(e);i&&(o=i);const l=await $(()=>r(o),n);g(l===void 0,`The guard() hook of ${n.hookFilePath} returns a value, but guard() doesn't accept any return value`)}function An(e,t){const n=t.find(c=>c.pageId===e&&c.fileType===".page.route");if(!n)return null;const{filePath:r,fileExports:o}=n;a(o);const i=o.guard;if(!i)return null;const l=r,s=Fe("guard");return g(ie(i),`guard() defined by ${l} should be a function`),{hookFn:i,hookName:"guard",hookFilePath:l,hookTimeout:s}}function Hn(e){const t=new Error("AbortRender");return m(t,{_pageContextAbort:e,[Ge]:!0}),t}const Ge="_isAbortError";function _e(e){return typeof e=="object"&&e!==null&&Ge in e}function Nn(e){return e._urlRewrite||e._urlRedirect||e.abortStatusCode?(a(b(e,"_abortCall","string")),!0):!1}function jn(e,t,n){if(t)return;const r=n._urlRewrite??n.urlOriginal;a(r);const o=e._pageContextAbort._abortCall;se(!1,`${p.cyan(o)} intercepted while rendering ${p.cyan(r)}`,{onlyOnce:!1})}function Bn(e){Ln(e);const t={_urlRewrite:null};return e.forEach(n=>{Object.assign(t,n)}),t}function Ln(e){const t=[];e.forEach(n=>{const r=n._urlRewrite;{const o=t.indexOf(r);if(o!==-1){const i=[...t.slice(o),r].map(l=>`render('${l}')`).join(" => ");g(!1,`Infinite loop of render() calls: ${i}`)}}t.push(r)})}function Wn(e,t){const n=[e>0&&p.cyan("throw render('/some-url')"),t>0&&p.cyan("throw redirect('/some-url')")].filter(Boolean).join(" and ");g(e+t<=7,`Maximum chain length of 7 ${n} exceeded. Did you define an infinite loop of ${n}?`)}const ze=k("router/getPageContext.ts",{});async function Dn(e){const t=mt();Ve(t),m(t,{isHydration:!0,_hasPageContextFromClient:!1}),m(t,await G(t._pageId,e));{const n={...e,...t};if(Je(n)){const r=await Me(n);m(t,r)}}return Ye(t),t}async function Vn(e){const t=Ee(e._pageFilesAll,e._pageConfigs);if(!t)throw new Error("No error page defined.");const n={isHydration:!1,_pageId:t};return m(n,await Ke({...e,...n},!0)),n}async function Un(e){const t={isHydration:!1,_pageId:e._pageId};return m(t,await Ke({...e,...t},!1)),Ye(t),t}async function Ke(e,t){let n={};m(n,{_hasPageContextFromClient:!1}),m(n,await G(e._pageId,e));let r=!1;if(!t&&await Gn({...e,...n})){const o=await Kn(e);if(r=!0,!o._isError)m(n,o);else{const i=Ee(e._pageFilesAll,e._pageConfigs);a(i),n={},m(n,{_hasPageContextFromClient:!1,isHydration:!1,_pageId:i}),m(n,await G(n._pageId,e)),a(b(o,"is404","boolean")),a(b(o,"pageProps","object")),a(b(o.pageProps,"is404","boolean")),a(!("serverSideError"in o)),m(n,o)}}else m(n,{_hasPageContextFromServer:!1}),t||await In({...e,...n},o=>$e(o,!0));{const o={...e,...n};if(Je(o)||!r){const i=await Me(o);m(n,i)}else a(r)}return n}async function Me(e){const t=A(e,"onBeforeRender");if(!t)return{_hasPageContextFromClient:!1};const n=t.hookFn,r={_hasPageContextFromClient:!0},o=$e({...e,...r},!0),i=await $(()=>n(o),t);Fn(i,t.hookFilePath);const l=i==null?void 0:i.pageContext;return m(r,l),r}function Ye(e){e._pageContextInitHasClientData&&(ze.pageContextInitHasClientData=!0)}async function Gn(e){return!!ze.pageContextInitHasClientData||await zn(e)}async function zn(e){var t;if(e._pageConfigs.length>0){const n=Te(e._pageId,e._pageConfigs),r=((t=T(n,"onBeforeRenderEnv"))==null?void 0:t.value)??{};return a(v(r)),!!r.server&&!r.client}else{const{hasOnBeforeRenderServerSideOnlyHook:n}=await Sn(e._pageFilesAll,e._pageId);return n}}function Je(e){var t;if(e._pageConfigs.length>0){const n=Te(e._pageId,e._pageConfigs),r=((t=T(n,"onBeforeRenderEnv"))==null?void 0:t.value)??{};return a(v(r)),!!r.client&&!r.server}else return!1}async function Kn(e){const t=xn(e._urlRewrite??e.urlOriginal),n=await fetch(t);{const i=n.headers.get("content-type"),l="application/json",s=i&&i.includes(l);if(!s&&n.status===404)throw z(e.urlOriginal),Yn();g(s,`Wrong Content-Type for ${t}: it should be ${l} but it's ${i} instead. Make sure to properly use pageContext.httpResponse.headers, see https://vike.dev/renderPage`)}const r=await n.text(),o=yt(r);if(a(v(o)),"serverSideError"in o)throw bt("The pageContext object couldn't be fetched from the server as an error occurred on the server-side. Check your server logs.");if(Nn(o))throw Hn(o);return a(b(o,"_pageId","string")),Ve(o),m(o,{_hasPageContextFromServer:!0}),o}function Mn(e){return v(e)&&!!e._alreadyServerSideRouted}function Yn(){const e=new Error("Page doesn't exist");return Object.assign(e,{_alreadyServerSideRouted:!0}),e}function qe(e,t=!0){a(e.urlOriginal),"urlPathname"in e&&(a(typeof e.urlPathname=="string"),a(X(e,"urlPathname"))),"urlParsed"in e&&a(X(e,"urlParsed")),"url"in e&&a(X(e,"url")),Object.defineProperty(e,"urlPathname",{get:Xe,enumerable:t,configurable:!0}),Object.defineProperty(e,"url",{get:Jn,enumerable:!1,configurable:!0}),Object.defineProperty(e,"urlParsed",{get:qn,enumerable:t,configurable:!0})}function Qe(e){let t=e._urlHandler;t||(t=o=>o);let n=e._urlRewrite??e.urlLogical??e.urlOriginal;n=t(n);const r=e._baseServer;return a(n&&typeof n=="string"),a(r.startsWith("/")),M(n,r)}function Xe(){const{pathname:e}=Qe(this),t=e;return a(t.startsWith("/")),t}function Jn(){return w(!1,"`pageContext.url` is outdated. Use `pageContext.urlPathname`, `pageContext.urlParsed`, or `pageContext.urlOriginal` instead. (See https://vike.dev/migration/0.4.23 for more information.)",{onlyOnce:!0,showStackTrace:!0}),Xe.call(this)}function qn(){const e=Qe(this),{origin:t,pathname:n,pathnameOriginal:r,search:o,searchAll:i,searchOriginal:l,hash:s,hashOriginal:c}=e,d=Y(),P=u=>{w(d,`pageContext.urlParsed.${u} isn't available on the server-side (HTTP requests don't include the URL hash by design)`,{onlyOnce:!0,showStackTrace:!0})},f={origin:t,pathname:n,pathnameOriginal:r,search:o,searchAll:i,searchOriginal:l,get hash(){return P("hash"),s},get hashOriginal(){return P("hashOriginal"),c},get hashString(){return w(!1,"pageContext.urlParsed.hashString has been renamed to pageContext.urlParsed.hashOriginal",{onlyOnce:!0,showStackTrace:!0}),P("hashString"),c},get searchString(){return w(!1,"pageContext.urlParsed.searchString has been renamed to pageContext.urlParsed.searchOriginal",{onlyOnce:!0,showStackTrace:!0}),l}};return W(f,"hashString"),W(f,"searchString"),d||(W(f,"hash"),W(f,"hashOriginal")),f}function W(e,t){const n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(e,t,{...n,enumerable:!1})}function Qn(e){a(typeof e.urlOriginal=="string"),a(typeof e.urlPathname=="string"),a(C(e.urlParsed)),a(e.urlPathname===e.urlParsed.pathname)}function Xn(e,t){const r=t.filter(({filesystemRoot:i})=>e.startsWith(i)).sort(U(({filesystemRoot:i})=>i.length))[0];let o;if(r){const{filesystemRoot:i,urlRoot:l}=r,s={pageId:e,filesystemRoot:i,urlRoot:l};a(l.startsWith("/")&&e.startsWith("/")&&i.startsWith("/"),s),a(e.startsWith(i),s),i!=="/"?(a(!i.endsWith("/"),s),o=I(e,i.length,0)):o=e,a(o.startsWith("/"),s),o=l+(l.endsWith("/")?"":"/")+I(o,1,0)}else o=e;return a(o.startsWith("/")),o=o.split("/").filter(i=>i!=="pages"&&i!=="src"&&i!=="index").join("/"),a(!o.includes(".page.")),a(!o.endsWith(".")),o.endsWith("/index")&&(o=I(o,0,-6)),o===""&&(o="/"),a(o.startsWith("/")),a(!o.endsWith("/")||o==="/"),o}async function Zn(e,t,n){Qn(t);let r=e(t);if(Ze(r,`The Route Function ${n}`),r=await r,r===!1)return null;if(r===!0&&(r={}),g(C(r),`The Route Function ${n} should return a boolean or a plain JavaScript object (but it's ${p.cyan(`typeof result === ${JSON.stringify(typeof r)}`)} instead)`),"match"in r){const{match:l}=r;if(g(typeof l=="boolean",`The ${p.cyan("match")} value returned by the Route Function ${n} should be a boolean.`),!l)return null}let o=null;"precedence"in r&&(o=r.precedence,g(typeof o=="number",`The ${p.cyan("precedence")} value returned by the Route Function ${n} should be a number.`)),et(r,`The ${p.cyan("routeParams")} object returned by the Route Function ${n} should`);const i=r.routeParams||{};return g(!("pageContext"in r),`Providing ${p.cyan("pageContext")} in Route Functions is prohibited, see https://vike.dev/route-function#cannot-provide-pagecontext`),a(C(i)),Object.keys(r).forEach(l=>{g(l==="match"||l==="routeParams"||l==="precedence",`The Route Function ${n} returned an object with an unknown property ${p.cyan(l)} (the known properties are ${p.cyan("match")}, ${p.cyan("routeParams")}, and ${p.cyan("precedence")})`)}),{precedence:o,routeParams:i}}function Ze(e,t){w(!Ft(e),`${t} returned a promise, but asynchronous routing is deprecated and will be removed in the next major release, see https://vike.dev/route-function#async`,{onlyOnce:!0})}function Se(){const e=p.cyan("iKnowThePerformanceRisksOfAsyncRouteFunctions");w(!1,`${e} is deprecated and will be removed in the next major release`,{onlyOnce:!0})}function et(e,t){a(t.endsWith(" should")),b(e,"routeParams")&&(a(t.endsWith(" should")),g(C(e.routeParams),`${t} be a plain JavaScript object.`),g($n(e.routeParams),`${t} only hold string values.`))}async function er(e,t,n,r){await Promise.all(e.filter(s=>s.fileType===".page.route").map(s=>{var c;return(c=s.loadFile)==null?void 0:c.call(s)}));const{onBeforeRouteHook:o,filesystemRoots:i}=nr(e,t,n);return{pageRoutes:tr(i,e,t,r),onBeforeRouteHook:o}}function tr(e,t,n,r){const o=[];let i=[...r];if(n.length>0){a(e===null);const l=!0;n.filter(s=>!s.isErrorPage).forEach(s=>{const c=s.pageId;i=or(i,c);let d=null;{const P="route",f=T(s,P);if(f){const u=f.value,y=Pt(f.definedAt,P);typeof u=="string"?d={pageId:c,comesFromV1PageConfig:l,routeString:u,routeDefinedAt:y,routeType:"STRING"}:(a(ie(u)),T(s,"iKnowThePerformanceRisksOfAsyncRouteFunctions","boolean")&&Se(),d={pageId:c,comesFromV1PageConfig:l,routeFunction:u,routeDefinedAt:y,routeType:"FUNCTION"})}}if(!d){const{routeFilesystem:P}=s;a(P);const{routeString:f,definedBy:u}=P;a(P.routeString.startsWith("/")),d={pageId:c,routeFilesystemDefinedBy:u,comesFromV1PageConfig:l,routeString:f,routeDefinedAt:null,routeType:"FILESYSTEM"}}a(d),o.push(d)})}if(n.length===0){a(e);const l=!1;i.filter(s=>!_t(s)).forEach(s=>{const c=t.find(d=>d.pageId===s&&d.fileType===".page.route");if(!c||!("default"in c.fileExports)){const d=Xn(s,e);a(d.startsWith("/")),a(!d.endsWith("/")||d==="/"),o.push({pageId:s,comesFromV1PageConfig:l,routeString:d,routeDefinedAt:null,routeFilesystemDefinedBy:`${s}.page.*`,routeType:"FILESYSTEM"})}else{const{filePath:d,fileExports:P}=c;if(a(P.default),b(P,"default","string")){const f=P.default;g(f.startsWith("/"),`A Route String should start with a leading slash '/' but ${d} has \`export default '${f}'\`. Make sure to \`export default '/${f}'\` instead.`),o.push({pageId:s,comesFromV1PageConfig:l,routeString:f,routeDefinedAt:d,routeType:"STRING"});return}if(b(P,"default","function")){const f=P.default;"iKnowThePerformanceRisksOfAsyncRouteFunctions"in P&&Se(),o.push({pageId:s,comesFromV1PageConfig:l,routeFunction:f,routeDefinedAt:d,routeType:"FUNCTION"});return}g(!1,`The default export of ${d} should be a string or a function.`)}})}return o}function nr(e,t,n){if(t.length>0)return{onBeforeRouteHook:St(n,"onBeforeRoute"),filesystemRoots:null};let r=null;const o=[];return e.filter(i=>i.fileType===".page.route"&&i.isDefaultPageFile).forEach(({filePath:i,fileExports:l})=>{if(a(l),"onBeforeRoute"in l){g(b(l,"onBeforeRoute","function"),`\`export { onBeforeRoute }\` of ${i} should be a function.`);const{onBeforeRoute:s}=l,c="onBeforeRoute";r={hookFilePath:i,hookFn:s,hookName:c,hookTimeout:Fe(c)}}"filesystemRoutingRoot"in l&&(g(b(l,"filesystemRoutingRoot","string"),`\`export { filesystemRoutingRoot }\` of ${i} should be a string.`),g(b(l,"filesystemRoutingRoot","string"),`\`export { filesystemRoutingRoot }\` of ${i} is \`'${l.filesystemRoutingRoot}'\` but it should start with a leading slash \`/\`.`),o.push({filesystemRoot:rr(i),urlRoot:l.filesystemRoutingRoot}))}),{onBeforeRouteHook:r,filesystemRoots:o}}function rr(e){a(e.startsWith("/")),a(!e.endsWith("/"));const t=e.split("/"),n=I(t,0,-1).join("/")||"/";return a(n.startsWith("/")),a(!n.endsWith("/")||n==="/"),n}function or(e,t){const{length:n}=e;return e=e.filter(r=>r!==t),a(e.length===n-1),e}function tt(){const e="/";return a(ir(e)),e}function ir(e){return e.startsWith("/")}const Z=k("createPageContext.ts",{});async function nt(e){Z.pageFilesData||(Z.pageFilesData=await wt(!0));const{pageFilesAll:t,allPageIds:n,pageConfigs:r,pageConfigGlobal:o}=Z.pageFilesData,{pageRoutes:i,onBeforeRouteHook:l}=await er(t,r,o,n),s=tt();a(Ie(s));const d={urlOriginal:e,_objectCreatedByVike:!0,_urlHandler:null,_urlRewrite:null,_baseServer:s,_isProduction:!0,_pageFilesAll:t,_pageConfigs:r,_pageConfigGlobal:o,_allPageIds:n,_pageRoutes:i,_onBeforeRouteHook:l};return qe(d),d}function rt(e){const t=e.getAttribute("href");return!!(t===null||t===""||yn(t)||ar(e)||lr(t)||!ur(t)||!Rt(t)||!sr(e))}function sr(e){if(cr()){const n=e.getAttribute("data-vike-link");return n!==null&&n!=="false"}else return!0}function ar(e){const t=e.getAttribute("target"),n=e.getAttribute("rel");return t==="_blank"||t==="_external"||n==="external"||e.hasAttribute("download")}function lr(e){if(e.startsWith("#"))return!0;const t=n=>n.split("#")[0];return!!(e.includes("#")&&t(e)===t(window.location.href))}function ur(e){const t=tt();a(Ie(t));const{hasBaseServer:n}=M(e,t);return n}function cr(){return!!window._disableAutomaticLinkInterception}function fr(e,t){let n=dr(e,t);return n==="viewport"&&!e._isProduction&&(se(!1,"Viewport prefetching is disabled in development",{onlyOnce:!0}),n="hover"),{prefetchStaticAssets:n}}function dr(e,t){{const n=gr(t);if(n!==null)return n}if("prefetchLinks"in e.exports&&g(!1,"`export { prefetchLinks }` is deprecated, use `export { prefetchStaticAssets }` instead."),"prefetchStaticAssets"in e.exports){const{prefetchStaticAssets:n}=e.exports;if(n===!1)return!1;if(n==="hover")return"hover";if(n==="viewport")return"viewport";const r="prefetchStaticAssets value should be false, 'hover', or 'viewport'";g(C(n),r);const o=Object.keys(n);g(o.length===1&&o[0]==="when",r);const{when:i}=n;if(i==="HOVER"||i==="VIEWPORT"){const l=i.toLowerCase();return w(!1,`prefetchStaticAssets value \`{ when: '${i}' }\` is outdated: set prefetchStaticAssets to '${l}' instead`,{onlyOnce:!0}),l}g(!1,r)}return"hover"}function gr(e){const t=e.getAttribute("data-prefetch-static-assets"),n=e.getAttribute("data-prefetch");if(t===null&&n===null)return null;const r="The attribute data-prefetch is outdated, use data-prefetch-static-assets instead.";if(t){if(g(n===null,r),t==="hover"||t==="viewport")return t;if(t==="false")return!1;g(!1,`data-prefetch-static-assets has value "${t}" but it should instead be "false", "hover", or "viewport"`)}if(n){if(a(!t),w(!1,r,{onlyOnce:!0}),n==="true")return"viewport";if(n==="false")return"hover";g(!1,`data-prefetch has value "${n}" but it should instead be "true" or "false"`)}a(!1)}const ot=new Map;function hr(e){const t=it(e);return ot.has(t)}function pr(e){const t=it(e);ot.set(t,!0)}function it(e){return M(e,"/").pathname}function N(e){return e.fileType===".css"?[]:e.exportNames?e.exportNames:(a(e.fileExports,e.filePath),Object.keys(e.fileExports))}function mr({pageFilesClientSide:e,pageFilesServerSide:t,pageId:n}){return{isHtmlOnly:r(),isClientRouting:i()};function r(){return t.some(s=>s.pageId===n&&s.fileType===".page")?(o(),!1):!(!t.some(s=>s.pageId===n&&s.fileType===".page.server")||e.some(s=>s.pageId===n&&s.fileType===".page.client"&&N(s).includes("render")))}function o(){const l=e.some(s=>N(s).includes("render"));g(l,["No client-side `render()` hook found.","See https://vike.dev/render-modes for more information.",["Loaded client-side page files (none of them `export { render }`):",...e.map((s,c)=>` (${c+1}): ${s.filePath}`)].join(`
2
+ `)].join(" "))}function i(){return e.some(s=>N(s).includes("clientRouting"))}}function yr({pageFilesClientSide:e,pageFilesServerSide:t,isHtmlOnly:n,isClientRouting:r}){let o=[];const i=t.filter(s=>!e.includes(s)),l=[];if(l.push(...e.map(s=>({id:s.filePath,onlyAssets:!1,eagerlyImported:!1}))),l.push(...i.map(s=>({id:s.filePath,onlyAssets:!0,eagerlyImported:!1}))),n)o=e.map(s=>s.filePath);else{const s=br(r);l.push({id:s,onlyAssets:!1,eagerlyImported:!1}),o=[s]}return{clientEntries:o,clientDependencies:l}}function br(e){return e?"@@vike/dist/esm/client/client-routing-runtime/entry.js":"@@vike/dist/esm/client/server-routing-runtime/entry.js"}function Pr(e,t){let n=Ae(e,t);const r=ke(e,t),{isHtmlOnly:o,isClientRouting:i}=mr({pageFilesClientSide:n,pageFilesServerSide:r,pageId:t});o&&(n=n.filter(c=>c.isEnv("CLIENT_ONLY")&&!N(c).includes("render")),n=Sr(n));const{clientEntries:l,clientDependencies:s}=yr({pageFilesClientSide:n,pageFilesServerSide:r,isHtmlOnly:o,isClientRouting:i});return{isHtmlOnly:o,isClientRouting:i,clientEntries:l,clientDependencies:s,pageFilesClientSide:n,pageFilesServerSide:r}}async function _r(e,t,{sharedPageFilesAlreadyLoaded:n}){const r=Ae(e,t);await Promise.all(r.map(async o=>{var i;a(o.isEnv("CLIENT_ONLY")||o.isEnv("CLIENT_AND_SERVER")),!(n&&o.isEnv("CLIENT_AND_SERVER"))&&await((i=o.loadExportNames)==null?void 0:i.call(o))}))}function Sr(e){const t=[];for(const n of e)if(t.push(n),N(n).includes("overrideDefaultPages"))break;return t}function wr(e,t,n){var r,o;if(e){const i=((r=T(e,"clientRouting","boolean"))==null?void 0:r.value)??!1;return{isClientSideRenderable:((o=T(e,"isClientSideRenderable","boolean"))==null?void 0:o.value)??!1,isClientRouting:i}}else{const{isHtmlOnly:i,isClientRouting:l}=Pr(t,n);return{isClientSideRenderable:!i,isClientRouting:l}}}async function st(e,t){await _r(t._pageFilesAll,e,{sharedPageFilesAlreadyLoaded:!1});const n=vt(t._pageConfigs,e),{isClientSideRenderable:r,isClientRouting:o}=wr(n,t._pageFilesAll,e);return r&&o}const at="@",ne=":";function Rr(e,t="Invalid"){let n=`${t} Route String ${x(e)}`;g(e!=="",`${n} (empty string): set it to ${x("/")} instead`),g(["/","*"].includes(e[0]),`${n}: it should start with ${x("/")} or ${x("*")}`),g(!e.includes("**"),`${n}: set it to ${x(e.split("**").join("*"))} instead`)}function re(e,t){Rr(e);const n=lt(e),r=n.map(f=>f.param?"[^/]+":f.glob?f.isLastDir?"|/.*":".*":$t(f.static)).map(f=>`(${f})`).join(""),o=new RegExp(`^${r}/?$`),i=t.match(o);if(!i)return null;const l={},[s,...c]=i;let d=0;const P=n.filter(f=>f.glob).length>1;return n.forEach((f,u)=>{let y=c[u];if(f.param&&(l[f.param]=y),f.glob){const O=`*${P?++d:""}`;f.isLastDir&&(y=y.slice(1)),l[O]=y}}),{routeParams:l}}function lt(e){const t=[],n=o=>{const i=t[t.length-1];i!=null&&i.static?i.static+=o:t.push({static:o})},r=e.split("/");return r.forEach((o,i)=>{const l=i===0,s=i===r.length-1;vr(o)?(w(!o.startsWith(ne),`Outdated Route String ${x(e)}, use ${x(e.split(ne).join(at))} instead`,{onlyOnce:!0}),l||n("/"),t.push({param:o.slice(1)})):o==="*"&&s&&e!=="*"&&e!=="/*"?t.push({glob:!0,isLastDir:!0}):(l||n("/"),o.split("*").forEach((c,d)=>{d!==0&&t.push({glob:!0}),c!==""&&n(c)}))}),t}function D(e){const t=lt(e),n=s=>(s==null?void 0:s.split("/").filter(Boolean).length)||0;let r=0;for(const s of t){if(!s.static)break;r+=n(s.static)}const o=t.map(s=>n(s.static)).reduce((s,c)=>s+c,0),i=t.filter(s=>s.param).length,l=t.filter(s=>s.glob).length;return{numberOfStaticPartsBeginning:r,numberOfStaticParts:o,numberOfParams:i,numberOfGlobs:l}}function vr(e){return e.startsWith(at)||e.startsWith(ne)}function we(e){const n=re(e,e);return a(n),Object.keys(n.routeParams).length===0}function x(e){return Y()?`'${e}'`:(e===""&&(e="''"),p.cyan(e))}function Cr(e){e.sort(Or).sort(F(t=>t.routeType==="FUNCTION"&&!!t.precedence&&t.precedence<0)).sort(F(t=>t.routeType==="STRING"&&we(t.routeString)===!1)).sort(F(t=>t.routeType==="FUNCTION"&&!t.precedence)).sort(F(t=>t.routeType==="STRING"&&we(t.routeString)===!0)).sort(F(t=>t.routeType==="FILESYSTEM")).sort(F(t=>t.routeType==="FUNCTION"&&!!t.precedence&&t.precedence>0))}function Or(e,t){{const n=e.precedence??0,r=t.precedence??0;if(n!==r)return n>r?-1:1}if(!t.routeString||!e.routeString)return 0;{const r=U(o=>D(o).numberOfStaticPartsBeginning)(e.routeString,t.routeString);if(r!==0)return r}{const r=U(o=>D(o).numberOfStaticParts)(e.routeString,t.routeString);if(r!==0)return r}{const r=Ct(o=>D(o).numberOfGlobs)(e.routeString,t.routeString);if(r!==0)return r}{const r=U(o=>D(o).numberOfParams)(e.routeString,t.routeString);if(r!==0)return r}return 0}async function xr(e){const t={};if(!e._onBeforeRouteHook)return null;const n=await kr(e._onBeforeRouteHook,e);return n&&(m(t,n),b(t,"_pageId","string")||b(t,"_pageId","null"))?(b(t,"routeParams")?a(b(t,"routeParams","object")):m(t,{routeParams:{}}),m(t,{_routingProvidedByOnBeforeRouteHook:!0,_debugRouteMatches:"CUSTOM_ROUTING"}),t):(m(t,{_routingProvidedByOnBeforeRouteHook:!1}),t)}async function kr(e,t){let n=e.hookFn(t);Ze(n,`The onBeforeRoute() hook ${e.hookFilePath}`),n=await $(()=>n,e);const r=`The onBeforeRoute() hook defined by ${e.hookFilePath}`;if(g(n==null||En(n,["pageContext"])&&b(n,"pageContext"),`${r} should return ${p.cyan("null")}, ${p.cyan("undefined")}, or a plain JavaScript object ${p.cyan("{ pageContext: { /* ... */ } }")}`),n==null)return null;if(g(b(n,"pageContext","object"),`${r} returned ${p.cyan("{ pageContext }")} but pageContext should be a plain JavaScript object.`),b(n.pageContext,"_pageId")&&!b(n.pageContext,"_pageId","null")){const l=`${r} returned ${p.cyan("{ pageContext: { _pageId } }")} but ${p.cyan("_pageId")} should be`;g(b(n.pageContext,"_pageId","string"),`${l} a string or null`),g(t._allPageIds.includes(n.pageContext._pageId),`${l} ${Tn(t._allPageIds.map(s=>p.cyan(s)),"or")}`)}b(n.pageContext,"routeParams")&&et(n.pageContext,`${r} returned ${p.cyan("{ pageContext: { routeParams } }")} but routeParams should`);const o=l=>`${r} returned ${p.cyan(`{ pageContext: { ${l} } }`)} which is deprecated. Return ${p.cyan("{ pageContext: { urlLogical } }")} instead.`;b(n.pageContext,"url")&&(w(!1,o("url"),{onlyOnce:!0}),n.pageContext.urlLogical=n.pageContext.url,delete n.pageContext.url),b(n.pageContext,"urlOriginal")&&(w(!1,o("urlOriginal"),{onlyOnce:!0}),n.pageContext.urlLogical=n.pageContext.urlOriginal,delete n.pageContext.urlOriginal),b(n.pageContext,"urlLogical")&&Ot(n.pageContext.urlLogical,`${r} returned ${p.cyan("{ pageContext: { urlLogical } }")} but ${p.cyan("urlLogical")}`),Ue(n.pageContext,{hookFilePath:e.hookFilePath,hookName:"onBeforeRoute"});const i={};return m(i,n.pageContext),i}var V;function Re(...e){var t;V||(V=(t=globalThis.__brillout_debug_createDebugger)==null?void 0:t.call(globalThis,"vike:routing")),V&&V(...e)}Y()&&B();async function ut(e){Re("Pages routes:",e._pageRoutes),qe(e);const t={},n=await xr(e);if(n){if(n._routingProvidedByOnBeforeRouteHook)return a(n._pageId),n;m(t,n)}const r={};m(r,e),m(r,n);const o=r._allPageIds;a(o.length>=0),g(r._pageFilesAll.length>0||r._pageConfigs.length>0,"No *.page.js file found. You must create at least one *.page.js file."),g(o.length>0,"You must create at least one *.page.js file that isn't _default.page.*");const{urlPathname:i}=r;a(i.startsWith("/"));const l=[];await Promise.all(r._pageRoutes.map(async c=>{const{pageId:d,routeType:P}=c;if(c.routeType==="FILESYSTEM"){const{routeString:f}=c,u=re(f,i);if(u){const{routeParams:y}=u;l.push({pageId:d,routeParams:y,routeString:f,routeType:P})}return}if(c.routeType==="STRING"){const{routeString:f}=c,u=re(f,i);if(u){const{routeParams:y}=u;a(P==="STRING"),l.push({pageId:d,routeString:f,routeParams:y,routeType:P})}return}if(c.routeType==="FUNCTION"){const{routeFunction:f,routeDefinedAt:u}=c,y=await Zn(f,r,u);if(y){const{routeParams:O,precedence:L}=y;l.push({pageId:d,precedence:L,routeParams:O,routeType:P})}return}a(!1)})),Cr(l);const s=l[0];if(Re(`Route matches for URL ${p.cyan(i)} (in precedence order):`,l),m(t,{_debugRouteMatches:l}),!s)return m(t,{_pageId:null,routeParams:{}}),t;{const{routeParams:c}=s;a(C(c)),m(t,{_pageId:s.pageId,routeParams:s.routeParams})}return t}B();const ve=k("prefetch.ts",{linkPrefetchHandlerAdded:new Map});async function Fr(e,t){try{await G(e,t)}catch(n){if(ae(n))oe(n,!0);else throw n}}function Er(e){pr(e.urlPathname),[...document.getElementsByTagName("A")].forEach(n=>{if(ve.linkPrefetchHandlerAdded.has(n))return;ve.linkPrefetchHandlerAdded.set(n,!0);const r=n.getAttribute("href");if(rt(n)||(a(r),hr(r)))return;const{prefetchStaticAssets:o}=fr(e,n);if(o&&(o==="hover"&&(n.addEventListener("mouseover",()=>{ee(r)}),n.addEventListener("touchstart",()=>{ee(r)},{passive:!0})),o==="viewport")){const i=new IntersectionObserver(l=>{l.forEach(s=>{s.isIntersecting&&(ee(r),i.disconnect())})});i.observe(n)}})}async function ee(e){const t=await nt(e);let n;try{n=await ut(t)}catch{return}n!=null&&n._pageId&&await st(n._pageId,t)&&await Fr(n._pageId,t)}function ct(e){if(e==="preserve-scroll")return;let t;if(e==="scroll-to-top-or-hash"){const n=Tr();if(n&&n!=="top"){const r=document.getElementById(n)||document.getElementsByName(n)[0];if(r){r.scrollIntoView();return}}t={x:0,y:0}}else a("x"in e&&"y"in e),t=e;$r(t)}function $r(e){const t=()=>window.scrollTo(e.x,e.y),n=()=>window.scrollX===e.x&&window.scrollY===e.y;n()||(t(),!n()&&requestAnimationFrame(()=>{t(),!n()&&setTimeout(async()=>{if(t(),n())return;const r=new Date().getTime();for(;;)if(await hn(10),t(),n()||new Date().getTime()-r>100)return},0)}))}function Tr(){let{hash:e}=window.location;return e===""?null:(a(e.startsWith("#")),e=e.slice(1),e)}function Ir(){window.addEventListener("scroll",pn(be,Math.ceil(1e3/3)),{passive:!0}),Be(be)}const E=k("onBrowserHistoryNavigation.ts",{previousState:K()});function Ar(){window.addEventListener("popstate",e=>{const t=K(),n=t.historyState.scrollPosition||"scroll-to-top-or-hash",r=t.historyState.triggedBy==="user",o=t.urlWithoutHash===E.previousState.urlWithoutHash,i=!t.historyState.timestamp||!E.previousState.historyState.timestamp?null:t.historyState.timestamp<E.previousState.historyState.timestamp;E.previousState=t,o&&!r?window.history.state===null?(Le(),E.previousState=K()):ct(n):j({scrollTarget:n,isBackwardNavigation:i,isUserLandPushStateNavigation:r})})}function K(){return{urlWithoutHash:le({withoutHash:!0}),historyState:ce()}}function Hr(){E.previousState=K()}const ft=k("scrollRestoration.ts",{});function Nr(){Ce(),Be(Ce),mn(()=>ft.initialRenderIsDone&&he())}function jr(){ft.initialRenderIsDone=!0}function he(){"scrollRestoration"in window.history&&(window.history.scrollRestoration="manual")}function Ce(){"scrollRestoration"in window.history&&(window.history.scrollRestoration="auto")}const _=k("renderPageClientSide.ts",{renderCounter:0});async function j(e){var me;const{scrollTarget:t,urlOriginal:n=le(),overwriteLastHistoryEntry:r=!1,isBackwardNavigation:o,pageContextsFromRewrite:i=[],redirectCount:l=0,isUserLandPushStateNavigation:s,isClientSideNavigation:c=!0}=e,{abortRender:d,setHydrationCanBeAborted:P,isFirstRender:f}=Wr();if(a(c===!f),Wn(i.length,l),_.clientRoutingIsDisabled){z(n);return}const u=await nt(n);if(d())return;m(u,{isBackwardNavigation:o,isClientSideNavigation:c});{const h=Bn(i);m(u,h)}let y={};const O=h=>{a(h),a(!("err"in y)),a(!("errorWhileRendering"in u)),y.err=h,u.errorWhileRendering=h};if(!f){try{y={pageContextFromRoute:await ut(u)}}catch(h){O(h)}if(d())return;if(y.pageContextFromRoute){const{pageContextFromRoute:h}=y;m(u,h);let S;if(!h._pageId)S=!1;else if(S=await st(h._pageId,u),d())return;if(!S){z(n);return}const R=h._pageId&&((me=_.previousPageContext)==null?void 0:me._pageId)&&h._pageId===_.previousPageContext._pageId;if(s&&R)return}}const L=!f;if(L&&!_.isTransitioning){if(_.onPageTransitionStart){const h=_.onPageTransitionStart,{hookFn:S}=h;await $(()=>S(u),h)}if(_.isTransitioning=!0,d())return}if(f){a(!y.pageContextFromRoute),a(!y.err);try{y.pageContextFromHooks=await Dn(u)}catch(h){O(h)}if(d())return}else if(!y.err){const{pageContextFromRoute:h}=y;a(h),a(h._pageId),a(b(h,"_pageId","string")),m(u,h);try{y.pageContextFromHooks=await Un(u)}catch(S){O(S)}if(d())return}if("err"in y){const{err:h}=y;if(_e(h)||console.error(h),Oe(h,u,f))return;if(_e(h)){const S=h;jn(h,u._isProduction,u);const R=S._pageContextAbort;if(R._urlRewrite){await j({...e,scrollTarget:"scroll-to-top-or-hash",pageContextsFromRewrite:[...i,R]});return}if(R._urlRedirect){const q=R._urlRedirect.url;if(q.startsWith("http")){window.location.href=q;return}else await j({...e,scrollTarget:"scroll-to-top-or-hash",urlOriginal:q,overwriteLastHistoryEntry:!1,isBackwardNavigation:!1,redirectCount:l+1});return}a(R.abortStatusCode),m(u,R),R.abortStatusCode===404&&m(u,{is404:!0})}else m(u,{is404:!1});try{y.pageContextFromHooks=await Vn(u)}catch(S){if(Oe(S,u,f)||(f||setTimeout(()=>{window.location.pathname=n},0),gn(h,S)))return;throw S}if(d())return}const{pageContextFromHooks:pe}=y;a(pe),m(u,pe),Q(u,"onPageTransitionStart");const dt=A(u,"onPageTransitionStart");if(_.onPageTransitionStart=dt,u.exports.hydrationCanBeAborted?P():w(!dn(),"You seem to be using React; we recommend setting hydrationCanBeAborted to true, see https://vike.dev/hydrationCanBeAborted",{onlyOnce:!0}),!d()&&!(_.renderPromise&&(await _.renderPromise,a(_.renderPromise===void 0),d()))){if(Br(n,r),_.previousPageContext=u,a(_.renderPromise===void 0),_.renderPromise=(async()=>{await xt(u,!0),Er(u),_.renderPromise=void 0})(),await _.renderPromise,a(_.renderPromise===void 0),f){Q(u,"onHydrationEnd");const h=A(u,"onHydrationEnd");if(h){const{hookFn:S}=h;if(await $(()=>S(u),h),d(!0))return}}if(!d(!0)){if(L){Q(u,"onPageTransitionEnd");const h=A(u,"onPageTransitionEnd");if(h){const{hookFn:S}=h;if(await $(()=>S(u),h),d(!0))return}_.isTransitioning=void 0}ct(t),he(),jr()}}}function Br(e,t){le()!==e&&(he(),bn(e,t),Hr())}function Oe(e,t,n){return!!(Mn(e)||Lr(e,t,n))}function Lr(e,t,n){if(!ae(e))return!1;if(n)throw oe(e,!1),e;return oe(e,!0),z(t.urlOriginal),!0}function oe(e,t){a(ae(e)),_.clientRoutingIsDisabled=!0,t&&console.log(e),se(!1,["Failed to fetch static asset.","This usually happens when a new frontend is deployed.","Falling back to Server Routing.","(The next page navigation will use Server Routing instead of Client Routing.)"].filter(Boolean).join(" "),{onlyOnce:!0})}function Wr(){const e=++_.renderCounter;a(e>=1);let t=!1;return{abortRender:o=>!o&&e===1&&!t?!1:e!==_.renderCounter,setHydrationCanBeAborted:()=>{t=!0},isFirstRender:e===1}}function xe(){return _.renderCounter}function Dr(){document.addEventListener("click",Vr)}function Vr(e){if(!Ur(e))return;const t=Gr(e.target);if(!t)return;const n=t.getAttribute("href");if(rt(t))return;a(n),e.preventDefault();const o=![null,"false"].includes(t.getAttribute("keep-scroll-position"))?"preserve-scroll":"scroll-to-top-or-hash";j({scrollTarget:o,urlOriginal:n,isBackwardNavigation:!1})}function Ur(e){return e.button===0&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey}function Gr(e){for(;e.tagName!=="A";){const{parentNode:t}=e;if(!t)return null;e=t}return e}function zr(){Nr(),Le(),Ir(),_n(),a(xe()===0),j({scrollTarget:"preserve-scroll",isBackwardNavigation:null,isClientSideNavigation:!1}),a(xe()===1),Dr(),Ar()}B();const Kr=!0;kt(Kr);zr();
@@ -0,0 +1,2 @@
1
+ import{j as ie,k as a,p,m as gt,b as g,s as ht,n as pt,q as B,r as v,t as k,u as b,v as ke,d as w,w as M,x as I,y as Y,z as A,A as $,B as Fe,C as se,o as m,a as mt,l as G,D as Ee,E as $e,F as Te,G as yt,H as bt,I as U,J as Pt,K as _t,L as St,c as wt,M as Ie,N as Rt,O as Ae,P as vt,Q as F,R as Ct,S as Ot,T as ae,g as le,i as Q,h as xt,U as kt}from"../chunks/chunk-3d735b94.js";import{_ as H}from"../chunks/chunk-cf010ec4.js";function C(e){return typeof e!="object"||e===null?!1:Object.getPrototypeOf(e)===null?!0:e.constructor.name==="Object"}function ye(e){return"["+e.map(t=>"'"+t+"'").join(", ")+"]"}function X(e,t){const n=Object.getOwnPropertyDescriptor(e,t);return!!n&&!("value"in n)&&!!n.get}function Ft(e){return typeof e=="object"&&e!==null&&"then"in e&&ie(e.then)}function Et(e){return[null,void 0].includes(e)?String(e):["boolean","number","string"].includes(typeof e)?JSON.stringify(e):null}function $t(e){return e.replace(/[/\-\\^$*+?.()|[\]{}]/g,"\\$&")}function T(e,t,n){const r=It(e,t);if(r===null)return null;const{value:o,definedAt:i}=r;return n&&Tt(o,n,t,i),r}function Tt(e,t,n,r){a(e!==null);const o=typeof e;if(o===t)return;const i=Et(e),l=i!==null?`value ${p.cyan(i)}`:`type ${p.cyan(o)}`,c=`${gt("Config",n,{definedAt:r})} has an invalid ${l}: it should be a ${p.cyan(t)} instead`;g(!1,c)}function It(e,t){const n=e.configValues[t];return!n||n.value===null?null:n}const At=["default"],Ht=Object.freeze(Object.defineProperty({__proto__:null,exportNames:At},Symbol.toStringTag,{value:"Module"})),Nt=["default"],jt=Object.freeze(Object.defineProperty({__proto__:null,exportNames:Nt},Symbol.toStringTag,{value:"Module"})),Bt=["Page"],Lt=Object.freeze(Object.defineProperty({__proto__:null,exportNames:Bt},Symbol.toStringTag,{value:"Module"})),Wt=["render","passToClient"],Dt=Object.freeze(Object.defineProperty({__proto__:null,exportNames:Wt},Symbol.toStringTag,{value:"Module"})),Vt=["render","onHydrationEnd","onPageTransitionStart","onPageTransitionEnd","clientRouting","hydrationCanBeAborted"],Ut=Object.freeze(Object.defineProperty({__proto__:null,exportNames:Vt},Symbol.toStringTag,{value:"Module"})),ue={},He={},Gt={},J={},zt=[],Ne={},Kt=!0,Mt=[],Yt={configValuesImported:[]},Jt=Object.assign({"/pages/hands.page.tsx":()=>H(()=>import("./pages_hands.page.6f1e3303.js"),["assets/entries/pages_hands.page.6f1e3303.js","assets/chunks/chunk-0c07adda.js","assets/chunks/chunk-f6ac826f.js","assets/chunks/chunk-cf010ec4.js","assets/chunks/chunk-ceb3463c.js"]),"/pages/index.page.tsx":()=>H(()=>import("./pages_index.page.fb9c94fd.js"),["assets/entries/pages_index.page.fb9c94fd.js","assets/chunks/chunk-0c07adda.js","assets/chunks/chunk-f6ac826f.js","assets/chunks/chunk-cf010ec4.js","assets/chunks/chunk-ceb3463c.js"]),"/renderer/_error.page.tsx":()=>H(()=>import("./renderer_error.page.4485c2ac.js"),["assets/entries/renderer_error.page.4485c2ac.js","assets/chunks/chunk-0c07adda.js"])}),qt={...Jt};ue[".page"]=qt;const Qt=Object.assign({"/pages/hands.page.tsx":Ht,"/pages/index.page.tsx":jt,"/renderer/_error.page.tsx":Lt}),Xt={...Qt};J[".page"]=Xt;const Zt=Object.assign({"/renderer/_default.page.server.tsx":Dt}),en={...Zt};J[".page.server"]=en;const tn=Object.assign({}),nn={...tn};He[".page.route"]=nn;const rn=Object.assign({"/renderer/_default.page.client.tsx":()=>H(()=>import("./renderer_default.page.client.98b62a91.js"),["assets/entries/renderer_default.page.client.98b62a91.js","assets/chunks/chunk-0c07adda.js","assets/chunks/chunk-ceb3463c.js","assets/static/default.page.client.7be06a4d.css"])}),on={...rn};ue[".page.client"]=on;const sn=Object.assign({"/renderer/_default.page.client.tsx":Ut}),an={...sn};J[".page.client"]=an;const ln=Object.assign({"/renderer/_default.page.server.tsx":()=>H(()=>import("./renderer_default.page.server.extractAssets.4ed993c7.js"),[])}),un={...ln};Ne[".page.server"]=un;const cn=Object.freeze(Object.defineProperty({__proto__:null,isGeneratedFile:Kt,neverLoaded:Ne,pageConfigGlobalSerialized:Yt,pageConfigsSerialized:Mt,pageFilesEager:He,pageFilesExportNamesEager:J,pageFilesExportNamesLazy:Gt,pageFilesLazy:ue,pageFilesList:zt},Symbol.toStringTag,{value:"Module"}));ht(cn);function fn(){pt(),B()}function dn(){var r,o,i,l;const e=!!((o=(r=window.__REACT_DEVTOOLS_GLOBAL_HOOK__)==null?void 0:r.renderers)!=null&&o.size),t=!!((l=(i=window.__REACT_DEVTOOLS_GLOBAL_HOOK__)==null?void 0:i.rendererInterfaces)!=null&&l.size),n=!!window.__vite_plugin_react_preamble_installed__;return e||t||n}function je(e,t){const n=Object.keys,r=typeof e;return e&&t&&r==="object"&&r===typeof t?n(e).length===n(t).length&&n(e).every(i=>je(e[i],t[i])):e===t}function gn(e,t){return v(e)&&v(t)&&e.constructor===t.constructor&&je({...e,stack:null},{...t,stack:null})&&t.message===t.message}function z(e){window.location.href=e}function hn(e){return new Promise(t=>setTimeout(t,e))}function pn(e,t){let n=!1;return()=>{n||(n=!0,setTimeout(()=>{n=!1,e()},t))}}function Be(e){window.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&e()})}function mn(e){window.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&e()})}function yn(e){return!e.startsWith("/")&&!e.startsWith(".")&&!e.startsWith("?")&&e!==""}fn();const te=k("history.ts",{});function Le(){let e=window.history.state;e||(e={});let t=!1;"timestamp"in e||(t=!0,e.timestamp=de()),"scrollPosition"in e||(t=!0,e.scrollPosition=fe()),"triggedBy"in e||(e.triggedBy="browser"),We(e),t&&ge(e)}function ce(){const e=window.history.state||{};return We(e),e}function fe(){return{x:window.scrollX,y:window.scrollY}}function de(){return new Date().getTime()}function be(){const e=fe(),t=ce();ge({...t,scrollPosition:e})}function bn(e,t){if(t)ge(ce(),e);else{const n=de();Pn({timestamp:n,scrollPosition:null,triggedBy:"vike"},e)}}function We(e){if(a(v(e)),"timestamp"in e){const{timestamp:t}=e;a(typeof t=="number")}if("scrollPosition"in e){const{scrollPosition:t}=e;t!==null&&a(b(t,"x","number")&&b(t,"y","number"))}}function ge(e,t){window.history.replaceState(e,"",t??null)}function Pn(e,t){De(e,"",t)}function _n(){te.pushStateOriginal=te.pushStateOriginal??window.history.pushState,window.history.pushState=(e={},...t)=>{g(e==null||v(e),"history.pushState(state) argument state must be an object");const n={scrollPosition:fe(),timestamp:de(),...e,triggedBy:"user"};return De(n,...t)}}function De(...e){te.pushStateOriginal.apply(history,e)}async function Sn(e,t){const r=ke(e,t).filter(i=>i.fileType===".page.server");return await Promise.all(r.map(async i=>{i.exportNames||(a(i.loadExportNames,t),await i.loadExportNames())})),{hasOnBeforeRenderServerSideOnlyHook:r.some(({exportNames:i})=>(a(i),i.includes("onBeforeRender")))}}const Pe=["urlPathname","urlParsed"],wn=["Page","pageExports","exports"];function Ve(e){[...wn,...Pe].forEach(n=>{n in e&&(Pe.includes(n)?(a(n.startsWith("url")),w(!1,`pageContext.${n} is already available in the browser when using Client Routing; adding '${n}' to passToClient has no effect`,{onlyOnce:!0})):w(!1,`pageContext.${n} is a built-in that cannot be overriden; adding '${n}' to passToClient has no effect`,{onlyOnce:!0}),delete e[n])})}const Rn="/";function vn(e,t,n){const{pathnameOriginal:r,searchOriginal:o,hashOriginal:i}=M(e,Rn);e.startsWith("/")&&a(e===`${r}${o||""}${i||""}`,{url:e});const l=r.endsWith("/");let s;return n&&r!=="/"?(l?s=I(r,0,-1):s=r,a(!s.endsWith("/"),{url:e}),a(s!=="")):s=r+(l?"":"/")+"index",a(s),s=s+t,`${s}${o||""}${i||""}`}const Cn=".pageContext.json",On=!1;function xn(e){return vn(e,Cn,On)}function Ue(e,{hookName:t,hookFilePath:n}){if(e==null)return;a(!t.endsWith(")"));const r=`The ${p.cyan("pageContext")} object provided by the ${t}() hook defined by ${n}`;g(v(e),`${r} should be an object (but it's ${p.cyan(`typeof pageContext === ${JSON.stringify(typeof e)}`)} instead)`),g(!("_objectCreatedByVike"in e),`${r} shouldn't be the whole ${p.cyan("pageContext")} object, see https://vike.dev/pageContext-manipulation#do-not-return-entire-pagecontext`),w(!("_pageId"in e),`${r} sets ${p.cyan("pageContext._pageId")} which means that Vike's routing is overriden. This is an experimental feature: make sure to contact a vike maintainer before using this.`,{onlyOnce:!0}),g(!("is404"in e),`${r} sets ${p.cyan("pageContext.is404")} which is forbidden, use ${p.cyan("throw render()")} instead, see https://vike.dev/render`)}function kn(e,t,n){a(!n.endsWith(" "));const r=[],o=Object.keys(e);for(const i of o)t.includes(i)||r.push(i);g(r.length===0,[n,"returned an object with following unknown keys:",ye(r)+".","Only following keys are allowed:",ye(t)+"."].join(" "))}function Fn(e,t){if(e==null)return;const n=`The onBeforeRender() hook defined by ${t}`;g(C(e),`${n} should return a plain JavaScript object, ${p.cyan("undefined")}, or ${p.cyan("null")}`),kn(e,["pageContext"],n),e.pageContext&&Ue(e.pageContext,{hookName:"onBeforeRender",hookFilePath:t})}function En(e,t){if(!C(e))return!1;for(const n of Object.keys(e))if(!t.includes(n))return!1;return!0}function $n(e){return typeof e=="object"&&e!==null&&Object.values(e).every(t=>typeof t=="string")}function Tn(e,t,n=r=>r){if(a(e.length>0),e.length===1)return n(e[0]);const r=e.slice(0,e.length-1),o=e[e.length-1];return r.map(n).join(", ")+` ${t} `+n(o)}Y()&&B();async function In(e,t){let n;if(e._pageFilesAll.length>0?(a(e._pageConfigs.length===0),n=An(e._pageId,e._pageFilesAll)):n=A(e,"guard"),!n)return;const r=n.hookFn;let o=e;const i=t(e);i&&(o=i);const l=await $(()=>r(o),n);g(l===void 0,`The guard() hook of ${n.hookFilePath} returns a value, but guard() doesn't accept any return value`)}function An(e,t){const n=t.find(c=>c.pageId===e&&c.fileType===".page.route");if(!n)return null;const{filePath:r,fileExports:o}=n;a(o);const i=o.guard;if(!i)return null;const l=r,s=Fe("guard");return g(ie(i),`guard() defined by ${l} should be a function`),{hookFn:i,hookName:"guard",hookFilePath:l,hookTimeout:s}}function Hn(e){const t=new Error("AbortRender");return m(t,{_pageContextAbort:e,[Ge]:!0}),t}const Ge="_isAbortError";function _e(e){return typeof e=="object"&&e!==null&&Ge in e}function Nn(e){return e._urlRewrite||e._urlRedirect||e.abortStatusCode?(a(b(e,"_abortCall","string")),!0):!1}function jn(e,t,n){if(t)return;const r=n._urlRewrite??n.urlOriginal;a(r);const o=e._pageContextAbort._abortCall;se(!1,`${p.cyan(o)} intercepted while rendering ${p.cyan(r)}`,{onlyOnce:!1})}function Bn(e){Ln(e);const t={_urlRewrite:null};return e.forEach(n=>{Object.assign(t,n)}),t}function Ln(e){const t=[];e.forEach(n=>{const r=n._urlRewrite;{const o=t.indexOf(r);if(o!==-1){const i=[...t.slice(o),r].map(l=>`render('${l}')`).join(" => ");g(!1,`Infinite loop of render() calls: ${i}`)}}t.push(r)})}function Wn(e,t){const n=[e>0&&p.cyan("throw render('/some-url')"),t>0&&p.cyan("throw redirect('/some-url')")].filter(Boolean).join(" and ");g(e+t<=7,`Maximum chain length of 7 ${n} exceeded. Did you define an infinite loop of ${n}?`)}const ze=k("router/getPageContext.ts",{});async function Dn(e){const t=mt();Ve(t),m(t,{isHydration:!0,_hasPageContextFromClient:!1}),m(t,await G(t._pageId,e));{const n={...e,...t};if(Je(n)){const r=await Me(n);m(t,r)}}return Ye(t),t}async function Vn(e){const t=Ee(e._pageFilesAll,e._pageConfigs);if(!t)throw new Error("No error page defined.");const n={isHydration:!1,_pageId:t};return m(n,await Ke({...e,...n},!0)),n}async function Un(e){const t={isHydration:!1,_pageId:e._pageId};return m(t,await Ke({...e,...t},!1)),Ye(t),t}async function Ke(e,t){let n={};m(n,{_hasPageContextFromClient:!1}),m(n,await G(e._pageId,e));let r=!1;if(!t&&await Gn({...e,...n})){const o=await Kn(e);if(r=!0,!o._isError)m(n,o);else{const i=Ee(e._pageFilesAll,e._pageConfigs);a(i),n={},m(n,{_hasPageContextFromClient:!1,isHydration:!1,_pageId:i}),m(n,await G(n._pageId,e)),a(b(o,"is404","boolean")),a(b(o,"pageProps","object")),a(b(o.pageProps,"is404","boolean")),a(!("serverSideError"in o)),m(n,o)}}else m(n,{_hasPageContextFromServer:!1}),t||await In({...e,...n},o=>$e(o,!0));{const o={...e,...n};if(Je(o)||!r){const i=await Me(o);m(n,i)}else a(r)}return n}async function Me(e){const t=A(e,"onBeforeRender");if(!t)return{_hasPageContextFromClient:!1};const n=t.hookFn,r={_hasPageContextFromClient:!0},o=$e({...e,...r},!0),i=await $(()=>n(o),t);Fn(i,t.hookFilePath);const l=i==null?void 0:i.pageContext;return m(r,l),r}function Ye(e){e._pageContextInitHasClientData&&(ze.pageContextInitHasClientData=!0)}async function Gn(e){return!!ze.pageContextInitHasClientData||await zn(e)}async function zn(e){var t;if(e._pageConfigs.length>0){const n=Te(e._pageId,e._pageConfigs),r=((t=T(n,"onBeforeRenderEnv"))==null?void 0:t.value)??{};return a(v(r)),!!r.server&&!r.client}else{const{hasOnBeforeRenderServerSideOnlyHook:n}=await Sn(e._pageFilesAll,e._pageId);return n}}function Je(e){var t;if(e._pageConfigs.length>0){const n=Te(e._pageId,e._pageConfigs),r=((t=T(n,"onBeforeRenderEnv"))==null?void 0:t.value)??{};return a(v(r)),!!r.client&&!r.server}else return!1}async function Kn(e){const t=xn(e._urlRewrite??e.urlOriginal),n=await fetch(t);{const i=n.headers.get("content-type"),l="application/json",s=i&&i.includes(l);if(!s&&n.status===404)throw z(e.urlOriginal),Yn();g(s,`Wrong Content-Type for ${t}: it should be ${l} but it's ${i} instead. Make sure to properly use pageContext.httpResponse.headers, see https://vike.dev/renderPage`)}const r=await n.text(),o=yt(r);if(a(v(o)),"serverSideError"in o)throw bt("The pageContext object couldn't be fetched from the server as an error occurred on the server-side. Check your server logs.");if(Nn(o))throw Hn(o);return a(b(o,"_pageId","string")),Ve(o),m(o,{_hasPageContextFromServer:!0}),o}function Mn(e){return v(e)&&!!e._alreadyServerSideRouted}function Yn(){const e=new Error("Page doesn't exist");return Object.assign(e,{_alreadyServerSideRouted:!0}),e}function qe(e,t=!0){a(e.urlOriginal),"urlPathname"in e&&(a(typeof e.urlPathname=="string"),a(X(e,"urlPathname"))),"urlParsed"in e&&a(X(e,"urlParsed")),"url"in e&&a(X(e,"url")),Object.defineProperty(e,"urlPathname",{get:Xe,enumerable:t,configurable:!0}),Object.defineProperty(e,"url",{get:Jn,enumerable:!1,configurable:!0}),Object.defineProperty(e,"urlParsed",{get:qn,enumerable:t,configurable:!0})}function Qe(e){let t=e._urlHandler;t||(t=o=>o);let n=e._urlRewrite??e.urlLogical??e.urlOriginal;n=t(n);const r=e._baseServer;return a(n&&typeof n=="string"),a(r.startsWith("/")),M(n,r)}function Xe(){const{pathname:e}=Qe(this),t=e;return a(t.startsWith("/")),t}function Jn(){return w(!1,"`pageContext.url` is outdated. Use `pageContext.urlPathname`, `pageContext.urlParsed`, or `pageContext.urlOriginal` instead. (See https://vike.dev/migration/0.4.23 for more information.)",{onlyOnce:!0,showStackTrace:!0}),Xe.call(this)}function qn(){const e=Qe(this),{origin:t,pathname:n,pathnameOriginal:r,search:o,searchAll:i,searchOriginal:l,hash:s,hashOriginal:c}=e,d=Y(),P=u=>{w(d,`pageContext.urlParsed.${u} isn't available on the server-side (HTTP requests don't include the URL hash by design)`,{onlyOnce:!0,showStackTrace:!0})},f={origin:t,pathname:n,pathnameOriginal:r,search:o,searchAll:i,searchOriginal:l,get hash(){return P("hash"),s},get hashOriginal(){return P("hashOriginal"),c},get hashString(){return w(!1,"pageContext.urlParsed.hashString has been renamed to pageContext.urlParsed.hashOriginal",{onlyOnce:!0,showStackTrace:!0}),P("hashString"),c},get searchString(){return w(!1,"pageContext.urlParsed.searchString has been renamed to pageContext.urlParsed.searchOriginal",{onlyOnce:!0,showStackTrace:!0}),l}};return W(f,"hashString"),W(f,"searchString"),d||(W(f,"hash"),W(f,"hashOriginal")),f}function W(e,t){const n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(e,t,{...n,enumerable:!1})}function Qn(e){a(typeof e.urlOriginal=="string"),a(typeof e.urlPathname=="string"),a(C(e.urlParsed)),a(e.urlPathname===e.urlParsed.pathname)}function Xn(e,t){const r=t.filter(({filesystemRoot:i})=>e.startsWith(i)).sort(U(({filesystemRoot:i})=>i.length))[0];let o;if(r){const{filesystemRoot:i,urlRoot:l}=r,s={pageId:e,filesystemRoot:i,urlRoot:l};a(l.startsWith("/")&&e.startsWith("/")&&i.startsWith("/"),s),a(e.startsWith(i),s),i!=="/"?(a(!i.endsWith("/"),s),o=I(e,i.length,0)):o=e,a(o.startsWith("/"),s),o=l+(l.endsWith("/")?"":"/")+I(o,1,0)}else o=e;return a(o.startsWith("/")),o=o.split("/").filter(i=>i!=="pages"&&i!=="src"&&i!=="index").join("/"),a(!o.includes(".page.")),a(!o.endsWith(".")),o.endsWith("/index")&&(o=I(o,0,-6)),o===""&&(o="/"),a(o.startsWith("/")),a(!o.endsWith("/")||o==="/"),o}async function Zn(e,t,n){Qn(t);let r=e(t);if(Ze(r,`The Route Function ${n}`),r=await r,r===!1)return null;if(r===!0&&(r={}),g(C(r),`The Route Function ${n} should return a boolean or a plain JavaScript object (but it's ${p.cyan(`typeof result === ${JSON.stringify(typeof r)}`)} instead)`),"match"in r){const{match:l}=r;if(g(typeof l=="boolean",`The ${p.cyan("match")} value returned by the Route Function ${n} should be a boolean.`),!l)return null}let o=null;"precedence"in r&&(o=r.precedence,g(typeof o=="number",`The ${p.cyan("precedence")} value returned by the Route Function ${n} should be a number.`)),et(r,`The ${p.cyan("routeParams")} object returned by the Route Function ${n} should`);const i=r.routeParams||{};return g(!("pageContext"in r),`Providing ${p.cyan("pageContext")} in Route Functions is prohibited, see https://vike.dev/route-function#cannot-provide-pagecontext`),a(C(i)),Object.keys(r).forEach(l=>{g(l==="match"||l==="routeParams"||l==="precedence",`The Route Function ${n} returned an object with an unknown property ${p.cyan(l)} (the known properties are ${p.cyan("match")}, ${p.cyan("routeParams")}, and ${p.cyan("precedence")})`)}),{precedence:o,routeParams:i}}function Ze(e,t){w(!Ft(e),`${t} returned a promise, but asynchronous routing is deprecated and will be removed in the next major release, see https://vike.dev/route-function#async`,{onlyOnce:!0})}function Se(){const e=p.cyan("iKnowThePerformanceRisksOfAsyncRouteFunctions");w(!1,`${e} is deprecated and will be removed in the next major release`,{onlyOnce:!0})}function et(e,t){a(t.endsWith(" should")),b(e,"routeParams")&&(a(t.endsWith(" should")),g(C(e.routeParams),`${t} be a plain JavaScript object.`),g($n(e.routeParams),`${t} only hold string values.`))}async function er(e,t,n,r){await Promise.all(e.filter(s=>s.fileType===".page.route").map(s=>{var c;return(c=s.loadFile)==null?void 0:c.call(s)}));const{onBeforeRouteHook:o,filesystemRoots:i}=nr(e,t,n);return{pageRoutes:tr(i,e,t,r),onBeforeRouteHook:o}}function tr(e,t,n,r){const o=[];let i=[...r];if(n.length>0){a(e===null);const l=!0;n.filter(s=>!s.isErrorPage).forEach(s=>{const c=s.pageId;i=or(i,c);let d=null;{const P="route",f=T(s,P);if(f){const u=f.value,y=Pt(f.definedAt,P);typeof u=="string"?d={pageId:c,comesFromV1PageConfig:l,routeString:u,routeDefinedAt:y,routeType:"STRING"}:(a(ie(u)),T(s,"iKnowThePerformanceRisksOfAsyncRouteFunctions","boolean")&&Se(),d={pageId:c,comesFromV1PageConfig:l,routeFunction:u,routeDefinedAt:y,routeType:"FUNCTION"})}}if(!d){const{routeFilesystem:P}=s;a(P);const{routeString:f,definedBy:u}=P;a(P.routeString.startsWith("/")),d={pageId:c,routeFilesystemDefinedBy:u,comesFromV1PageConfig:l,routeString:f,routeDefinedAt:null,routeType:"FILESYSTEM"}}a(d),o.push(d)})}if(n.length===0){a(e);const l=!1;i.filter(s=>!_t(s)).forEach(s=>{const c=t.find(d=>d.pageId===s&&d.fileType===".page.route");if(!c||!("default"in c.fileExports)){const d=Xn(s,e);a(d.startsWith("/")),a(!d.endsWith("/")||d==="/"),o.push({pageId:s,comesFromV1PageConfig:l,routeString:d,routeDefinedAt:null,routeFilesystemDefinedBy:`${s}.page.*`,routeType:"FILESYSTEM"})}else{const{filePath:d,fileExports:P}=c;if(a(P.default),b(P,"default","string")){const f=P.default;g(f.startsWith("/"),`A Route String should start with a leading slash '/' but ${d} has \`export default '${f}'\`. Make sure to \`export default '/${f}'\` instead.`),o.push({pageId:s,comesFromV1PageConfig:l,routeString:f,routeDefinedAt:d,routeType:"STRING"});return}if(b(P,"default","function")){const f=P.default;"iKnowThePerformanceRisksOfAsyncRouteFunctions"in P&&Se(),o.push({pageId:s,comesFromV1PageConfig:l,routeFunction:f,routeDefinedAt:d,routeType:"FUNCTION"});return}g(!1,`The default export of ${d} should be a string or a function.`)}})}return o}function nr(e,t,n){if(t.length>0)return{onBeforeRouteHook:St(n,"onBeforeRoute"),filesystemRoots:null};let r=null;const o=[];return e.filter(i=>i.fileType===".page.route"&&i.isDefaultPageFile).forEach(({filePath:i,fileExports:l})=>{if(a(l),"onBeforeRoute"in l){g(b(l,"onBeforeRoute","function"),`\`export { onBeforeRoute }\` of ${i} should be a function.`);const{onBeforeRoute:s}=l,c="onBeforeRoute";r={hookFilePath:i,hookFn:s,hookName:c,hookTimeout:Fe(c)}}"filesystemRoutingRoot"in l&&(g(b(l,"filesystemRoutingRoot","string"),`\`export { filesystemRoutingRoot }\` of ${i} should be a string.`),g(b(l,"filesystemRoutingRoot","string"),`\`export { filesystemRoutingRoot }\` of ${i} is \`'${l.filesystemRoutingRoot}'\` but it should start with a leading slash \`/\`.`),o.push({filesystemRoot:rr(i),urlRoot:l.filesystemRoutingRoot}))}),{onBeforeRouteHook:r,filesystemRoots:o}}function rr(e){a(e.startsWith("/")),a(!e.endsWith("/"));const t=e.split("/"),n=I(t,0,-1).join("/")||"/";return a(n.startsWith("/")),a(!n.endsWith("/")||n==="/"),n}function or(e,t){const{length:n}=e;return e=e.filter(r=>r!==t),a(e.length===n-1),e}function tt(){const e="/";return a(ir(e)),e}function ir(e){return e.startsWith("/")}const Z=k("createPageContext.ts",{});async function nt(e){Z.pageFilesData||(Z.pageFilesData=await wt(!0));const{pageFilesAll:t,allPageIds:n,pageConfigs:r,pageConfigGlobal:o}=Z.pageFilesData,{pageRoutes:i,onBeforeRouteHook:l}=await er(t,r,o,n),s=tt();a(Ie(s));const d={urlOriginal:e,_objectCreatedByVike:!0,_urlHandler:null,_urlRewrite:null,_baseServer:s,_isProduction:!0,_pageFilesAll:t,_pageConfigs:r,_pageConfigGlobal:o,_allPageIds:n,_pageRoutes:i,_onBeforeRouteHook:l};return qe(d),d}function rt(e){const t=e.getAttribute("href");return!!(t===null||t===""||yn(t)||ar(e)||lr(t)||!ur(t)||!Rt(t)||!sr(e))}function sr(e){if(cr()){const n=e.getAttribute("data-vike-link");return n!==null&&n!=="false"}else return!0}function ar(e){const t=e.getAttribute("target"),n=e.getAttribute("rel");return t==="_blank"||t==="_external"||n==="external"||e.hasAttribute("download")}function lr(e){if(e.startsWith("#"))return!0;const t=n=>n.split("#")[0];return!!(e.includes("#")&&t(e)===t(window.location.href))}function ur(e){const t=tt();a(Ie(t));const{hasBaseServer:n}=M(e,t);return n}function cr(){return!!window._disableAutomaticLinkInterception}function fr(e,t){let n=dr(e,t);return n==="viewport"&&!e._isProduction&&(se(!1,"Viewport prefetching is disabled in development",{onlyOnce:!0}),n="hover"),{prefetchStaticAssets:n}}function dr(e,t){{const n=gr(t);if(n!==null)return n}if("prefetchLinks"in e.exports&&g(!1,"`export { prefetchLinks }` is deprecated, use `export { prefetchStaticAssets }` instead."),"prefetchStaticAssets"in e.exports){const{prefetchStaticAssets:n}=e.exports;if(n===!1)return!1;if(n==="hover")return"hover";if(n==="viewport")return"viewport";const r="prefetchStaticAssets value should be false, 'hover', or 'viewport'";g(C(n),r);const o=Object.keys(n);g(o.length===1&&o[0]==="when",r);const{when:i}=n;if(i==="HOVER"||i==="VIEWPORT"){const l=i.toLowerCase();return w(!1,`prefetchStaticAssets value \`{ when: '${i}' }\` is outdated: set prefetchStaticAssets to '${l}' instead`,{onlyOnce:!0}),l}g(!1,r)}return"hover"}function gr(e){const t=e.getAttribute("data-prefetch-static-assets"),n=e.getAttribute("data-prefetch");if(t===null&&n===null)return null;const r="The attribute data-prefetch is outdated, use data-prefetch-static-assets instead.";if(t){if(g(n===null,r),t==="hover"||t==="viewport")return t;if(t==="false")return!1;g(!1,`data-prefetch-static-assets has value "${t}" but it should instead be "false", "hover", or "viewport"`)}if(n){if(a(!t),w(!1,r,{onlyOnce:!0}),n==="true")return"viewport";if(n==="false")return"hover";g(!1,`data-prefetch has value "${n}" but it should instead be "true" or "false"`)}a(!1)}const ot=new Map;function hr(e){const t=it(e);return ot.has(t)}function pr(e){const t=it(e);ot.set(t,!0)}function it(e){return M(e,"/").pathname}function N(e){return e.fileType===".css"?[]:e.exportNames?e.exportNames:(a(e.fileExports,e.filePath),Object.keys(e.fileExports))}function mr({pageFilesClientSide:e,pageFilesServerSide:t,pageId:n}){return{isHtmlOnly:r(),isClientRouting:i()};function r(){return t.some(s=>s.pageId===n&&s.fileType===".page")?(o(),!1):!(!t.some(s=>s.pageId===n&&s.fileType===".page.server")||e.some(s=>s.pageId===n&&s.fileType===".page.client"&&N(s).includes("render")))}function o(){const l=e.some(s=>N(s).includes("render"));g(l,["No client-side `render()` hook found.","See https://vike.dev/render-modes for more information.",["Loaded client-side page files (none of them `export { render }`):",...e.map((s,c)=>` (${c+1}): ${s.filePath}`)].join(`
2
+ `)].join(" "))}function i(){return e.some(s=>N(s).includes("clientRouting"))}}function yr({pageFilesClientSide:e,pageFilesServerSide:t,isHtmlOnly:n,isClientRouting:r}){let o=[];const i=t.filter(s=>!e.includes(s)),l=[];if(l.push(...e.map(s=>({id:s.filePath,onlyAssets:!1,eagerlyImported:!1}))),l.push(...i.map(s=>({id:s.filePath,onlyAssets:!0,eagerlyImported:!1}))),n)o=e.map(s=>s.filePath);else{const s=br(r);l.push({id:s,onlyAssets:!1,eagerlyImported:!1}),o=[s]}return{clientEntries:o,clientDependencies:l}}function br(e){return e?"@@vike/dist/esm/client/client-routing-runtime/entry.js":"@@vike/dist/esm/client/server-routing-runtime/entry.js"}function Pr(e,t){let n=Ae(e,t);const r=ke(e,t),{isHtmlOnly:o,isClientRouting:i}=mr({pageFilesClientSide:n,pageFilesServerSide:r,pageId:t});o&&(n=n.filter(c=>c.isEnv("CLIENT_ONLY")&&!N(c).includes("render")),n=Sr(n));const{clientEntries:l,clientDependencies:s}=yr({pageFilesClientSide:n,pageFilesServerSide:r,isHtmlOnly:o,isClientRouting:i});return{isHtmlOnly:o,isClientRouting:i,clientEntries:l,clientDependencies:s,pageFilesClientSide:n,pageFilesServerSide:r}}async function _r(e,t,{sharedPageFilesAlreadyLoaded:n}){const r=Ae(e,t);await Promise.all(r.map(async o=>{var i;a(o.isEnv("CLIENT_ONLY")||o.isEnv("CLIENT_AND_SERVER")),!(n&&o.isEnv("CLIENT_AND_SERVER"))&&await((i=o.loadExportNames)==null?void 0:i.call(o))}))}function Sr(e){const t=[];for(const n of e)if(t.push(n),N(n).includes("overrideDefaultPages"))break;return t}function wr(e,t,n){var r,o;if(e){const i=((r=T(e,"clientRouting","boolean"))==null?void 0:r.value)??!1;return{isClientSideRenderable:((o=T(e,"isClientSideRenderable","boolean"))==null?void 0:o.value)??!1,isClientRouting:i}}else{const{isHtmlOnly:i,isClientRouting:l}=Pr(t,n);return{isClientSideRenderable:!i,isClientRouting:l}}}async function st(e,t){await _r(t._pageFilesAll,e,{sharedPageFilesAlreadyLoaded:!1});const n=vt(t._pageConfigs,e),{isClientSideRenderable:r,isClientRouting:o}=wr(n,t._pageFilesAll,e);return r&&o}const at="@",ne=":";function Rr(e,t="Invalid"){let n=`${t} Route String ${x(e)}`;g(e!=="",`${n} (empty string): set it to ${x("/")} instead`),g(["/","*"].includes(e[0]),`${n}: it should start with ${x("/")} or ${x("*")}`),g(!e.includes("**"),`${n}: set it to ${x(e.split("**").join("*"))} instead`)}function re(e,t){Rr(e);const n=lt(e),r=n.map(f=>f.param?"[^/]+":f.glob?f.isLastDir?"|/.*":".*":$t(f.static)).map(f=>`(${f})`).join(""),o=new RegExp(`^${r}/?$`),i=t.match(o);if(!i)return null;const l={},[s,...c]=i;let d=0;const P=n.filter(f=>f.glob).length>1;return n.forEach((f,u)=>{let y=c[u];if(f.param&&(l[f.param]=y),f.glob){const O=`*${P?++d:""}`;f.isLastDir&&(y=y.slice(1)),l[O]=y}}),{routeParams:l}}function lt(e){const t=[],n=o=>{const i=t[t.length-1];i!=null&&i.static?i.static+=o:t.push({static:o})},r=e.split("/");return r.forEach((o,i)=>{const l=i===0,s=i===r.length-1;vr(o)?(w(!o.startsWith(ne),`Outdated Route String ${x(e)}, use ${x(e.split(ne).join(at))} instead`,{onlyOnce:!0}),l||n("/"),t.push({param:o.slice(1)})):o==="*"&&s&&e!=="*"&&e!=="/*"?t.push({glob:!0,isLastDir:!0}):(l||n("/"),o.split("*").forEach((c,d)=>{d!==0&&t.push({glob:!0}),c!==""&&n(c)}))}),t}function D(e){const t=lt(e),n=s=>(s==null?void 0:s.split("/").filter(Boolean).length)||0;let r=0;for(const s of t){if(!s.static)break;r+=n(s.static)}const o=t.map(s=>n(s.static)).reduce((s,c)=>s+c,0),i=t.filter(s=>s.param).length,l=t.filter(s=>s.glob).length;return{numberOfStaticPartsBeginning:r,numberOfStaticParts:o,numberOfParams:i,numberOfGlobs:l}}function vr(e){return e.startsWith(at)||e.startsWith(ne)}function we(e){const n=re(e,e);return a(n),Object.keys(n.routeParams).length===0}function x(e){return Y()?`'${e}'`:(e===""&&(e="''"),p.cyan(e))}function Cr(e){e.sort(Or).sort(F(t=>t.routeType==="FUNCTION"&&!!t.precedence&&t.precedence<0)).sort(F(t=>t.routeType==="STRING"&&we(t.routeString)===!1)).sort(F(t=>t.routeType==="FUNCTION"&&!t.precedence)).sort(F(t=>t.routeType==="STRING"&&we(t.routeString)===!0)).sort(F(t=>t.routeType==="FILESYSTEM")).sort(F(t=>t.routeType==="FUNCTION"&&!!t.precedence&&t.precedence>0))}function Or(e,t){{const n=e.precedence??0,r=t.precedence??0;if(n!==r)return n>r?-1:1}if(!t.routeString||!e.routeString)return 0;{const r=U(o=>D(o).numberOfStaticPartsBeginning)(e.routeString,t.routeString);if(r!==0)return r}{const r=U(o=>D(o).numberOfStaticParts)(e.routeString,t.routeString);if(r!==0)return r}{const r=Ct(o=>D(o).numberOfGlobs)(e.routeString,t.routeString);if(r!==0)return r}{const r=U(o=>D(o).numberOfParams)(e.routeString,t.routeString);if(r!==0)return r}return 0}async function xr(e){const t={};if(!e._onBeforeRouteHook)return null;const n=await kr(e._onBeforeRouteHook,e);return n&&(m(t,n),b(t,"_pageId","string")||b(t,"_pageId","null"))?(b(t,"routeParams")?a(b(t,"routeParams","object")):m(t,{routeParams:{}}),m(t,{_routingProvidedByOnBeforeRouteHook:!0,_debugRouteMatches:"CUSTOM_ROUTING"}),t):(m(t,{_routingProvidedByOnBeforeRouteHook:!1}),t)}async function kr(e,t){let n=e.hookFn(t);Ze(n,`The onBeforeRoute() hook ${e.hookFilePath}`),n=await $(()=>n,e);const r=`The onBeforeRoute() hook defined by ${e.hookFilePath}`;if(g(n==null||En(n,["pageContext"])&&b(n,"pageContext"),`${r} should return ${p.cyan("null")}, ${p.cyan("undefined")}, or a plain JavaScript object ${p.cyan("{ pageContext: { /* ... */ } }")}`),n==null)return null;if(g(b(n,"pageContext","object"),`${r} returned ${p.cyan("{ pageContext }")} but pageContext should be a plain JavaScript object.`),b(n.pageContext,"_pageId")&&!b(n.pageContext,"_pageId","null")){const l=`${r} returned ${p.cyan("{ pageContext: { _pageId } }")} but ${p.cyan("_pageId")} should be`;g(b(n.pageContext,"_pageId","string"),`${l} a string or null`),g(t._allPageIds.includes(n.pageContext._pageId),`${l} ${Tn(t._allPageIds.map(s=>p.cyan(s)),"or")}`)}b(n.pageContext,"routeParams")&&et(n.pageContext,`${r} returned ${p.cyan("{ pageContext: { routeParams } }")} but routeParams should`);const o=l=>`${r} returned ${p.cyan(`{ pageContext: { ${l} } }`)} which is deprecated. Return ${p.cyan("{ pageContext: { urlLogical } }")} instead.`;b(n.pageContext,"url")&&(w(!1,o("url"),{onlyOnce:!0}),n.pageContext.urlLogical=n.pageContext.url,delete n.pageContext.url),b(n.pageContext,"urlOriginal")&&(w(!1,o("urlOriginal"),{onlyOnce:!0}),n.pageContext.urlLogical=n.pageContext.urlOriginal,delete n.pageContext.urlOriginal),b(n.pageContext,"urlLogical")&&Ot(n.pageContext.urlLogical,`${r} returned ${p.cyan("{ pageContext: { urlLogical } }")} but ${p.cyan("urlLogical")}`),Ue(n.pageContext,{hookFilePath:e.hookFilePath,hookName:"onBeforeRoute"});const i={};return m(i,n.pageContext),i}var V;function Re(...e){var t;V||(V=(t=globalThis.__brillout_debug_createDebugger)==null?void 0:t.call(globalThis,"vike:routing")),V&&V(...e)}Y()&&B();async function ut(e){Re("Pages routes:",e._pageRoutes),qe(e);const t={},n=await xr(e);if(n){if(n._routingProvidedByOnBeforeRouteHook)return a(n._pageId),n;m(t,n)}const r={};m(r,e),m(r,n);const o=r._allPageIds;a(o.length>=0),g(r._pageFilesAll.length>0||r._pageConfigs.length>0,"No *.page.js file found. You must create at least one *.page.js file."),g(o.length>0,"You must create at least one *.page.js file that isn't _default.page.*");const{urlPathname:i}=r;a(i.startsWith("/"));const l=[];await Promise.all(r._pageRoutes.map(async c=>{const{pageId:d,routeType:P}=c;if(c.routeType==="FILESYSTEM"){const{routeString:f}=c,u=re(f,i);if(u){const{routeParams:y}=u;l.push({pageId:d,routeParams:y,routeString:f,routeType:P})}return}if(c.routeType==="STRING"){const{routeString:f}=c,u=re(f,i);if(u){const{routeParams:y}=u;a(P==="STRING"),l.push({pageId:d,routeString:f,routeParams:y,routeType:P})}return}if(c.routeType==="FUNCTION"){const{routeFunction:f,routeDefinedAt:u}=c,y=await Zn(f,r,u);if(y){const{routeParams:O,precedence:L}=y;l.push({pageId:d,precedence:L,routeParams:O,routeType:P})}return}a(!1)})),Cr(l);const s=l[0];if(Re(`Route matches for URL ${p.cyan(i)} (in precedence order):`,l),m(t,{_debugRouteMatches:l}),!s)return m(t,{_pageId:null,routeParams:{}}),t;{const{routeParams:c}=s;a(C(c)),m(t,{_pageId:s.pageId,routeParams:s.routeParams})}return t}B();const ve=k("prefetch.ts",{linkPrefetchHandlerAdded:new Map});async function Fr(e,t){try{await G(e,t)}catch(n){if(ae(n))oe(n,!0);else throw n}}function Er(e){pr(e.urlPathname),[...document.getElementsByTagName("A")].forEach(n=>{if(ve.linkPrefetchHandlerAdded.has(n))return;ve.linkPrefetchHandlerAdded.set(n,!0);const r=n.getAttribute("href");if(rt(n)||(a(r),hr(r)))return;const{prefetchStaticAssets:o}=fr(e,n);if(o&&(o==="hover"&&(n.addEventListener("mouseover",()=>{ee(r)}),n.addEventListener("touchstart",()=>{ee(r)},{passive:!0})),o==="viewport")){const i=new IntersectionObserver(l=>{l.forEach(s=>{s.isIntersecting&&(ee(r),i.disconnect())})});i.observe(n)}})}async function ee(e){const t=await nt(e);let n;try{n=await ut(t)}catch{return}n!=null&&n._pageId&&await st(n._pageId,t)&&await Fr(n._pageId,t)}function ct(e){if(e==="preserve-scroll")return;let t;if(e==="scroll-to-top-or-hash"){const n=Tr();if(n&&n!=="top"){const r=document.getElementById(n)||document.getElementsByName(n)[0];if(r){r.scrollIntoView();return}}t={x:0,y:0}}else a("x"in e&&"y"in e),t=e;$r(t)}function $r(e){const t=()=>window.scrollTo(e.x,e.y),n=()=>window.scrollX===e.x&&window.scrollY===e.y;n()||(t(),!n()&&requestAnimationFrame(()=>{t(),!n()&&setTimeout(async()=>{if(t(),n())return;const r=new Date().getTime();for(;;)if(await hn(10),t(),n()||new Date().getTime()-r>100)return},0)}))}function Tr(){let{hash:e}=window.location;return e===""?null:(a(e.startsWith("#")),e=e.slice(1),e)}function Ir(){window.addEventListener("scroll",pn(be,Math.ceil(1e3/3)),{passive:!0}),Be(be)}const E=k("onBrowserHistoryNavigation.ts",{previousState:K()});function Ar(){window.addEventListener("popstate",e=>{const t=K(),n=t.historyState.scrollPosition||"scroll-to-top-or-hash",r=t.historyState.triggedBy==="user",o=t.urlWithoutHash===E.previousState.urlWithoutHash,i=!t.historyState.timestamp||!E.previousState.historyState.timestamp?null:t.historyState.timestamp<E.previousState.historyState.timestamp;E.previousState=t,o&&!r?window.history.state===null?(Le(),E.previousState=K()):ct(n):j({scrollTarget:n,isBackwardNavigation:i,isUserLandPushStateNavigation:r})})}function K(){return{urlWithoutHash:le({withoutHash:!0}),historyState:ce()}}function Hr(){E.previousState=K()}const ft=k("scrollRestoration.ts",{});function Nr(){Ce(),Be(Ce),mn(()=>ft.initialRenderIsDone&&he())}function jr(){ft.initialRenderIsDone=!0}function he(){"scrollRestoration"in window.history&&(window.history.scrollRestoration="manual")}function Ce(){"scrollRestoration"in window.history&&(window.history.scrollRestoration="auto")}const _=k("renderPageClientSide.ts",{renderCounter:0});async function j(e){var me;const{scrollTarget:t,urlOriginal:n=le(),overwriteLastHistoryEntry:r=!1,isBackwardNavigation:o,pageContextsFromRewrite:i=[],redirectCount:l=0,isUserLandPushStateNavigation:s,isClientSideNavigation:c=!0}=e,{abortRender:d,setHydrationCanBeAborted:P,isFirstRender:f}=Wr();if(a(c===!f),Wn(i.length,l),_.clientRoutingIsDisabled){z(n);return}const u=await nt(n);if(d())return;m(u,{isBackwardNavigation:o,isClientSideNavigation:c});{const h=Bn(i);m(u,h)}let y={};const O=h=>{a(h),a(!("err"in y)),a(!("errorWhileRendering"in u)),y.err=h,u.errorWhileRendering=h};if(!f){try{y={pageContextFromRoute:await ut(u)}}catch(h){O(h)}if(d())return;if(y.pageContextFromRoute){const{pageContextFromRoute:h}=y;m(u,h);let S;if(!h._pageId)S=!1;else if(S=await st(h._pageId,u),d())return;if(!S){z(n);return}const R=h._pageId&&((me=_.previousPageContext)==null?void 0:me._pageId)&&h._pageId===_.previousPageContext._pageId;if(s&&R)return}}const L=!f;if(L&&!_.isTransitioning){if(_.onPageTransitionStart){const h=_.onPageTransitionStart,{hookFn:S}=h;await $(()=>S(u),h)}if(_.isTransitioning=!0,d())return}if(f){a(!y.pageContextFromRoute),a(!y.err);try{y.pageContextFromHooks=await Dn(u)}catch(h){O(h)}if(d())return}else if(!y.err){const{pageContextFromRoute:h}=y;a(h),a(h._pageId),a(b(h,"_pageId","string")),m(u,h);try{y.pageContextFromHooks=await Un(u)}catch(S){O(S)}if(d())return}if("err"in y){const{err:h}=y;if(_e(h)||console.error(h),Oe(h,u,f))return;if(_e(h)){const S=h;jn(h,u._isProduction,u);const R=S._pageContextAbort;if(R._urlRewrite){await j({...e,scrollTarget:"scroll-to-top-or-hash",pageContextsFromRewrite:[...i,R]});return}if(R._urlRedirect){const q=R._urlRedirect.url;if(q.startsWith("http")){window.location.href=q;return}else await j({...e,scrollTarget:"scroll-to-top-or-hash",urlOriginal:q,overwriteLastHistoryEntry:!1,isBackwardNavigation:!1,redirectCount:l+1});return}a(R.abortStatusCode),m(u,R),R.abortStatusCode===404&&m(u,{is404:!0})}else m(u,{is404:!1});try{y.pageContextFromHooks=await Vn(u)}catch(S){if(Oe(S,u,f)||(f||setTimeout(()=>{window.location.pathname=n},0),gn(h,S)))return;throw S}if(d())return}const{pageContextFromHooks:pe}=y;a(pe),m(u,pe),Q(u,"onPageTransitionStart");const dt=A(u,"onPageTransitionStart");if(_.onPageTransitionStart=dt,u.exports.hydrationCanBeAborted?P():w(!dn(),"You seem to be using React; we recommend setting hydrationCanBeAborted to true, see https://vike.dev/hydrationCanBeAborted",{onlyOnce:!0}),!d()&&!(_.renderPromise&&(await _.renderPromise,a(_.renderPromise===void 0),d()))){if(Br(n,r),_.previousPageContext=u,a(_.renderPromise===void 0),_.renderPromise=(async()=>{await xt(u,!0),Er(u),_.renderPromise=void 0})(),await _.renderPromise,a(_.renderPromise===void 0),f){Q(u,"onHydrationEnd");const h=A(u,"onHydrationEnd");if(h){const{hookFn:S}=h;if(await $(()=>S(u),h),d(!0))return}}if(!d(!0)){if(L){Q(u,"onPageTransitionEnd");const h=A(u,"onPageTransitionEnd");if(h){const{hookFn:S}=h;if(await $(()=>S(u),h),d(!0))return}_.isTransitioning=void 0}ct(t),he(),jr()}}}function Br(e,t){le()!==e&&(he(),bn(e,t),Hr())}function Oe(e,t,n){return!!(Mn(e)||Lr(e,t,n))}function Lr(e,t,n){if(!ae(e))return!1;if(n)throw oe(e,!1),e;return oe(e,!0),z(t.urlOriginal),!0}function oe(e,t){a(ae(e)),_.clientRoutingIsDisabled=!0,t&&console.log(e),se(!1,["Failed to fetch static asset.","This usually happens when a new frontend is deployed.","Falling back to Server Routing.","(The next page navigation will use Server Routing instead of Client Routing.)"].filter(Boolean).join(" "),{onlyOnce:!0})}function Wr(){const e=++_.renderCounter;a(e>=1);let t=!1;return{abortRender:o=>!o&&e===1&&!t?!1:e!==_.renderCounter,setHydrationCanBeAborted:()=>{t=!0},isFirstRender:e===1}}function xe(){return _.renderCounter}function Dr(){document.addEventListener("click",Vr)}function Vr(e){if(!Ur(e))return;const t=Gr(e.target);if(!t)return;const n=t.getAttribute("href");if(rt(t))return;a(n),e.preventDefault();const o=![null,"false"].includes(t.getAttribute("keep-scroll-position"))?"preserve-scroll":"scroll-to-top-or-hash";j({scrollTarget:o,urlOriginal:n,isBackwardNavigation:!1})}function Ur(e){return e.button===0&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey}function Gr(e){for(;e.tagName!=="A";){const{parentNode:t}=e;if(!t)return null;e=t}return e}function zr(){Nr(),Le(),Ir(),_n(),a(xe()===0),j({scrollTarget:"preserve-scroll",isBackwardNavigation:null,isClientSideNavigation:!1}),a(xe()===1),Dr(),Ar()}B();const Kr=!0;kt(Kr);zr();
@@ -0,0 +1,2 @@
1
+ import{j as ie,k as a,p,m as gt,b as g,s as ht,n as pt,q as B,r as v,t as k,u as b,v as ke,d as w,w as M,x as I,y as Y,z as A,A as $,B as Fe,C as se,o as m,a as mt,l as G,D as Ee,E as $e,F as Te,G as yt,H as bt,I as U,J as Pt,K as _t,L as St,c as wt,M as Ie,N as Rt,O as Ae,P as vt,Q as F,R as Ct,S as Ot,T as ae,g as le,i as Q,h as xt,U as kt}from"../chunks/chunk-3d735b94.js";import{_ as H}from"../chunks/chunk-cf010ec4.js";function C(e){return typeof e!="object"||e===null?!1:Object.getPrototypeOf(e)===null?!0:e.constructor.name==="Object"}function ye(e){return"["+e.map(t=>"'"+t+"'").join(", ")+"]"}function X(e,t){const n=Object.getOwnPropertyDescriptor(e,t);return!!n&&!("value"in n)&&!!n.get}function Ft(e){return typeof e=="object"&&e!==null&&"then"in e&&ie(e.then)}function Et(e){return[null,void 0].includes(e)?String(e):["boolean","number","string"].includes(typeof e)?JSON.stringify(e):null}function $t(e){return e.replace(/[/\-\\^$*+?.()|[\]{}]/g,"\\$&")}function T(e,t,n){const r=It(e,t);if(r===null)return null;const{value:o,definedAt:i}=r;return n&&Tt(o,n,t,i),r}function Tt(e,t,n,r){a(e!==null);const o=typeof e;if(o===t)return;const i=Et(e),l=i!==null?`value ${p.cyan(i)}`:`type ${p.cyan(o)}`,c=`${gt("Config",n,{definedAt:r})} has an invalid ${l}: it should be a ${p.cyan(t)} instead`;g(!1,c)}function It(e,t){const n=e.configValues[t];return!n||n.value===null?null:n}const At=["default"],Ht=Object.freeze(Object.defineProperty({__proto__:null,exportNames:At},Symbol.toStringTag,{value:"Module"})),Nt=["default"],jt=Object.freeze(Object.defineProperty({__proto__:null,exportNames:Nt},Symbol.toStringTag,{value:"Module"})),Bt=["Page"],Lt=Object.freeze(Object.defineProperty({__proto__:null,exportNames:Bt},Symbol.toStringTag,{value:"Module"})),Wt=["render","passToClient"],Dt=Object.freeze(Object.defineProperty({__proto__:null,exportNames:Wt},Symbol.toStringTag,{value:"Module"})),Vt=["render","onHydrationEnd","onPageTransitionStart","onPageTransitionEnd","clientRouting","hydrationCanBeAborted"],Ut=Object.freeze(Object.defineProperty({__proto__:null,exportNames:Vt},Symbol.toStringTag,{value:"Module"})),ue={},He={},Gt={},J={},zt=[],Ne={},Kt=!0,Mt=[],Yt={configValuesImported:[]},Jt=Object.assign({"/pages/hands.page.tsx":()=>H(()=>import("./pages_hands.page.40ebd865.js"),["assets/entries/pages_hands.page.40ebd865.js","assets/chunks/chunk-0c07adda.js","assets/chunks/chunk-4291d1b1.js","assets/chunks/chunk-cf010ec4.js","assets/chunks/chunk-ceb3463c.js"]),"/pages/index.page.tsx":()=>H(()=>import("./pages_index.page.323784ad.js"),["assets/entries/pages_index.page.323784ad.js","assets/chunks/chunk-0c07adda.js","assets/chunks/chunk-4291d1b1.js","assets/chunks/chunk-cf010ec4.js","assets/chunks/chunk-ceb3463c.js"]),"/renderer/_error.page.tsx":()=>H(()=>import("./renderer_error.page.4485c2ac.js"),["assets/entries/renderer_error.page.4485c2ac.js","assets/chunks/chunk-0c07adda.js"])}),qt={...Jt};ue[".page"]=qt;const Qt=Object.assign({"/pages/hands.page.tsx":Ht,"/pages/index.page.tsx":jt,"/renderer/_error.page.tsx":Lt}),Xt={...Qt};J[".page"]=Xt;const Zt=Object.assign({"/renderer/_default.page.server.tsx":Dt}),en={...Zt};J[".page.server"]=en;const tn=Object.assign({}),nn={...tn};He[".page.route"]=nn;const rn=Object.assign({"/renderer/_default.page.client.tsx":()=>H(()=>import("./renderer_default.page.client.98b62a91.js"),["assets/entries/renderer_default.page.client.98b62a91.js","assets/chunks/chunk-0c07adda.js","assets/chunks/chunk-ceb3463c.js","assets/static/default.page.client.7be06a4d.css"])}),on={...rn};ue[".page.client"]=on;const sn=Object.assign({"/renderer/_default.page.client.tsx":Ut}),an={...sn};J[".page.client"]=an;const ln=Object.assign({"/renderer/_default.page.server.tsx":()=>H(()=>import("./renderer_default.page.server.extractAssets.4ed993c7.js"),[])}),un={...ln};Ne[".page.server"]=un;const cn=Object.freeze(Object.defineProperty({__proto__:null,isGeneratedFile:Kt,neverLoaded:Ne,pageConfigGlobalSerialized:Yt,pageConfigsSerialized:Mt,pageFilesEager:He,pageFilesExportNamesEager:J,pageFilesExportNamesLazy:Gt,pageFilesLazy:ue,pageFilesList:zt},Symbol.toStringTag,{value:"Module"}));ht(cn);function fn(){pt(),B()}function dn(){var r,o,i,l;const e=!!((o=(r=window.__REACT_DEVTOOLS_GLOBAL_HOOK__)==null?void 0:r.renderers)!=null&&o.size),t=!!((l=(i=window.__REACT_DEVTOOLS_GLOBAL_HOOK__)==null?void 0:i.rendererInterfaces)!=null&&l.size),n=!!window.__vite_plugin_react_preamble_installed__;return e||t||n}function je(e,t){const n=Object.keys,r=typeof e;return e&&t&&r==="object"&&r===typeof t?n(e).length===n(t).length&&n(e).every(i=>je(e[i],t[i])):e===t}function gn(e,t){return v(e)&&v(t)&&e.constructor===t.constructor&&je({...e,stack:null},{...t,stack:null})&&t.message===t.message}function z(e){window.location.href=e}function hn(e){return new Promise(t=>setTimeout(t,e))}function pn(e,t){let n=!1;return()=>{n||(n=!0,setTimeout(()=>{n=!1,e()},t))}}function Be(e){window.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&e()})}function mn(e){window.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&e()})}function yn(e){return!e.startsWith("/")&&!e.startsWith(".")&&!e.startsWith("?")&&e!==""}fn();const te=k("history.ts",{});function Le(){let e=window.history.state;e||(e={});let t=!1;"timestamp"in e||(t=!0,e.timestamp=de()),"scrollPosition"in e||(t=!0,e.scrollPosition=fe()),"triggedBy"in e||(e.triggedBy="browser"),We(e),t&&ge(e)}function ce(){const e=window.history.state||{};return We(e),e}function fe(){return{x:window.scrollX,y:window.scrollY}}function de(){return new Date().getTime()}function be(){const e=fe(),t=ce();ge({...t,scrollPosition:e})}function bn(e,t){if(t)ge(ce(),e);else{const n=de();Pn({timestamp:n,scrollPosition:null,triggedBy:"vike"},e)}}function We(e){if(a(v(e)),"timestamp"in e){const{timestamp:t}=e;a(typeof t=="number")}if("scrollPosition"in e){const{scrollPosition:t}=e;t!==null&&a(b(t,"x","number")&&b(t,"y","number"))}}function ge(e,t){window.history.replaceState(e,"",t??null)}function Pn(e,t){De(e,"",t)}function _n(){te.pushStateOriginal=te.pushStateOriginal??window.history.pushState,window.history.pushState=(e={},...t)=>{g(e==null||v(e),"history.pushState(state) argument state must be an object");const n={scrollPosition:fe(),timestamp:de(),...e,triggedBy:"user"};return De(n,...t)}}function De(...e){te.pushStateOriginal.apply(history,e)}async function Sn(e,t){const r=ke(e,t).filter(i=>i.fileType===".page.server");return await Promise.all(r.map(async i=>{i.exportNames||(a(i.loadExportNames,t),await i.loadExportNames())})),{hasOnBeforeRenderServerSideOnlyHook:r.some(({exportNames:i})=>(a(i),i.includes("onBeforeRender")))}}const Pe=["urlPathname","urlParsed"],wn=["Page","pageExports","exports"];function Ve(e){[...wn,...Pe].forEach(n=>{n in e&&(Pe.includes(n)?(a(n.startsWith("url")),w(!1,`pageContext.${n} is already available in the browser when using Client Routing; adding '${n}' to passToClient has no effect`,{onlyOnce:!0})):w(!1,`pageContext.${n} is a built-in that cannot be overriden; adding '${n}' to passToClient has no effect`,{onlyOnce:!0}),delete e[n])})}const Rn="/";function vn(e,t,n){const{pathnameOriginal:r,searchOriginal:o,hashOriginal:i}=M(e,Rn);e.startsWith("/")&&a(e===`${r}${o||""}${i||""}`,{url:e});const l=r.endsWith("/");let s;return n&&r!=="/"?(l?s=I(r,0,-1):s=r,a(!s.endsWith("/"),{url:e}),a(s!=="")):s=r+(l?"":"/")+"index",a(s),s=s+t,`${s}${o||""}${i||""}`}const Cn=".pageContext.json",On=!1;function xn(e){return vn(e,Cn,On)}function Ue(e,{hookName:t,hookFilePath:n}){if(e==null)return;a(!t.endsWith(")"));const r=`The ${p.cyan("pageContext")} object provided by the ${t}() hook defined by ${n}`;g(v(e),`${r} should be an object (but it's ${p.cyan(`typeof pageContext === ${JSON.stringify(typeof e)}`)} instead)`),g(!("_objectCreatedByVike"in e),`${r} shouldn't be the whole ${p.cyan("pageContext")} object, see https://vike.dev/pageContext-manipulation#do-not-return-entire-pagecontext`),w(!("_pageId"in e),`${r} sets ${p.cyan("pageContext._pageId")} which means that Vike's routing is overriden. This is an experimental feature: make sure to contact a vike maintainer before using this.`,{onlyOnce:!0}),g(!("is404"in e),`${r} sets ${p.cyan("pageContext.is404")} which is forbidden, use ${p.cyan("throw render()")} instead, see https://vike.dev/render`)}function kn(e,t,n){a(!n.endsWith(" "));const r=[],o=Object.keys(e);for(const i of o)t.includes(i)||r.push(i);g(r.length===0,[n,"returned an object with following unknown keys:",ye(r)+".","Only following keys are allowed:",ye(t)+"."].join(" "))}function Fn(e,t){if(e==null)return;const n=`The onBeforeRender() hook defined by ${t}`;g(C(e),`${n} should return a plain JavaScript object, ${p.cyan("undefined")}, or ${p.cyan("null")}`),kn(e,["pageContext"],n),e.pageContext&&Ue(e.pageContext,{hookName:"onBeforeRender",hookFilePath:t})}function En(e,t){if(!C(e))return!1;for(const n of Object.keys(e))if(!t.includes(n))return!1;return!0}function $n(e){return typeof e=="object"&&e!==null&&Object.values(e).every(t=>typeof t=="string")}function Tn(e,t,n=r=>r){if(a(e.length>0),e.length===1)return n(e[0]);const r=e.slice(0,e.length-1),o=e[e.length-1];return r.map(n).join(", ")+` ${t} `+n(o)}Y()&&B();async function In(e,t){let n;if(e._pageFilesAll.length>0?(a(e._pageConfigs.length===0),n=An(e._pageId,e._pageFilesAll)):n=A(e,"guard"),!n)return;const r=n.hookFn;let o=e;const i=t(e);i&&(o=i);const l=await $(()=>r(o),n);g(l===void 0,`The guard() hook of ${n.hookFilePath} returns a value, but guard() doesn't accept any return value`)}function An(e,t){const n=t.find(c=>c.pageId===e&&c.fileType===".page.route");if(!n)return null;const{filePath:r,fileExports:o}=n;a(o);const i=o.guard;if(!i)return null;const l=r,s=Fe("guard");return g(ie(i),`guard() defined by ${l} should be a function`),{hookFn:i,hookName:"guard",hookFilePath:l,hookTimeout:s}}function Hn(e){const t=new Error("AbortRender");return m(t,{_pageContextAbort:e,[Ge]:!0}),t}const Ge="_isAbortError";function _e(e){return typeof e=="object"&&e!==null&&Ge in e}function Nn(e){return e._urlRewrite||e._urlRedirect||e.abortStatusCode?(a(b(e,"_abortCall","string")),!0):!1}function jn(e,t,n){if(t)return;const r=n._urlRewrite??n.urlOriginal;a(r);const o=e._pageContextAbort._abortCall;se(!1,`${p.cyan(o)} intercepted while rendering ${p.cyan(r)}`,{onlyOnce:!1})}function Bn(e){Ln(e);const t={_urlRewrite:null};return e.forEach(n=>{Object.assign(t,n)}),t}function Ln(e){const t=[];e.forEach(n=>{const r=n._urlRewrite;{const o=t.indexOf(r);if(o!==-1){const i=[...t.slice(o),r].map(l=>`render('${l}')`).join(" => ");g(!1,`Infinite loop of render() calls: ${i}`)}}t.push(r)})}function Wn(e,t){const n=[e>0&&p.cyan("throw render('/some-url')"),t>0&&p.cyan("throw redirect('/some-url')")].filter(Boolean).join(" and ");g(e+t<=7,`Maximum chain length of 7 ${n} exceeded. Did you define an infinite loop of ${n}?`)}const ze=k("router/getPageContext.ts",{});async function Dn(e){const t=mt();Ve(t),m(t,{isHydration:!0,_hasPageContextFromClient:!1}),m(t,await G(t._pageId,e));{const n={...e,...t};if(Je(n)){const r=await Me(n);m(t,r)}}return Ye(t),t}async function Vn(e){const t=Ee(e._pageFilesAll,e._pageConfigs);if(!t)throw new Error("No error page defined.");const n={isHydration:!1,_pageId:t};return m(n,await Ke({...e,...n},!0)),n}async function Un(e){const t={isHydration:!1,_pageId:e._pageId};return m(t,await Ke({...e,...t},!1)),Ye(t),t}async function Ke(e,t){let n={};m(n,{_hasPageContextFromClient:!1}),m(n,await G(e._pageId,e));let r=!1;if(!t&&await Gn({...e,...n})){const o=await Kn(e);if(r=!0,!o._isError)m(n,o);else{const i=Ee(e._pageFilesAll,e._pageConfigs);a(i),n={},m(n,{_hasPageContextFromClient:!1,isHydration:!1,_pageId:i}),m(n,await G(n._pageId,e)),a(b(o,"is404","boolean")),a(b(o,"pageProps","object")),a(b(o.pageProps,"is404","boolean")),a(!("serverSideError"in o)),m(n,o)}}else m(n,{_hasPageContextFromServer:!1}),t||await In({...e,...n},o=>$e(o,!0));{const o={...e,...n};if(Je(o)||!r){const i=await Me(o);m(n,i)}else a(r)}return n}async function Me(e){const t=A(e,"onBeforeRender");if(!t)return{_hasPageContextFromClient:!1};const n=t.hookFn,r={_hasPageContextFromClient:!0},o=$e({...e,...r},!0),i=await $(()=>n(o),t);Fn(i,t.hookFilePath);const l=i==null?void 0:i.pageContext;return m(r,l),r}function Ye(e){e._pageContextInitHasClientData&&(ze.pageContextInitHasClientData=!0)}async function Gn(e){return!!ze.pageContextInitHasClientData||await zn(e)}async function zn(e){var t;if(e._pageConfigs.length>0){const n=Te(e._pageId,e._pageConfigs),r=((t=T(n,"onBeforeRenderEnv"))==null?void 0:t.value)??{};return a(v(r)),!!r.server&&!r.client}else{const{hasOnBeforeRenderServerSideOnlyHook:n}=await Sn(e._pageFilesAll,e._pageId);return n}}function Je(e){var t;if(e._pageConfigs.length>0){const n=Te(e._pageId,e._pageConfigs),r=((t=T(n,"onBeforeRenderEnv"))==null?void 0:t.value)??{};return a(v(r)),!!r.client&&!r.server}else return!1}async function Kn(e){const t=xn(e._urlRewrite??e.urlOriginal),n=await fetch(t);{const i=n.headers.get("content-type"),l="application/json",s=i&&i.includes(l);if(!s&&n.status===404)throw z(e.urlOriginal),Yn();g(s,`Wrong Content-Type for ${t}: it should be ${l} but it's ${i} instead. Make sure to properly use pageContext.httpResponse.headers, see https://vike.dev/renderPage`)}const r=await n.text(),o=yt(r);if(a(v(o)),"serverSideError"in o)throw bt("The pageContext object couldn't be fetched from the server as an error occurred on the server-side. Check your server logs.");if(Nn(o))throw Hn(o);return a(b(o,"_pageId","string")),Ve(o),m(o,{_hasPageContextFromServer:!0}),o}function Mn(e){return v(e)&&!!e._alreadyServerSideRouted}function Yn(){const e=new Error("Page doesn't exist");return Object.assign(e,{_alreadyServerSideRouted:!0}),e}function qe(e,t=!0){a(e.urlOriginal),"urlPathname"in e&&(a(typeof e.urlPathname=="string"),a(X(e,"urlPathname"))),"urlParsed"in e&&a(X(e,"urlParsed")),"url"in e&&a(X(e,"url")),Object.defineProperty(e,"urlPathname",{get:Xe,enumerable:t,configurable:!0}),Object.defineProperty(e,"url",{get:Jn,enumerable:!1,configurable:!0}),Object.defineProperty(e,"urlParsed",{get:qn,enumerable:t,configurable:!0})}function Qe(e){let t=e._urlHandler;t||(t=o=>o);let n=e._urlRewrite??e.urlLogical??e.urlOriginal;n=t(n);const r=e._baseServer;return a(n&&typeof n=="string"),a(r.startsWith("/")),M(n,r)}function Xe(){const{pathname:e}=Qe(this),t=e;return a(t.startsWith("/")),t}function Jn(){return w(!1,"`pageContext.url` is outdated. Use `pageContext.urlPathname`, `pageContext.urlParsed`, or `pageContext.urlOriginal` instead. (See https://vike.dev/migration/0.4.23 for more information.)",{onlyOnce:!0,showStackTrace:!0}),Xe.call(this)}function qn(){const e=Qe(this),{origin:t,pathname:n,pathnameOriginal:r,search:o,searchAll:i,searchOriginal:l,hash:s,hashOriginal:c}=e,d=Y(),P=u=>{w(d,`pageContext.urlParsed.${u} isn't available on the server-side (HTTP requests don't include the URL hash by design)`,{onlyOnce:!0,showStackTrace:!0})},f={origin:t,pathname:n,pathnameOriginal:r,search:o,searchAll:i,searchOriginal:l,get hash(){return P("hash"),s},get hashOriginal(){return P("hashOriginal"),c},get hashString(){return w(!1,"pageContext.urlParsed.hashString has been renamed to pageContext.urlParsed.hashOriginal",{onlyOnce:!0,showStackTrace:!0}),P("hashString"),c},get searchString(){return w(!1,"pageContext.urlParsed.searchString has been renamed to pageContext.urlParsed.searchOriginal",{onlyOnce:!0,showStackTrace:!0}),l}};return W(f,"hashString"),W(f,"searchString"),d||(W(f,"hash"),W(f,"hashOriginal")),f}function W(e,t){const n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(e,t,{...n,enumerable:!1})}function Qn(e){a(typeof e.urlOriginal=="string"),a(typeof e.urlPathname=="string"),a(C(e.urlParsed)),a(e.urlPathname===e.urlParsed.pathname)}function Xn(e,t){const r=t.filter(({filesystemRoot:i})=>e.startsWith(i)).sort(U(({filesystemRoot:i})=>i.length))[0];let o;if(r){const{filesystemRoot:i,urlRoot:l}=r,s={pageId:e,filesystemRoot:i,urlRoot:l};a(l.startsWith("/")&&e.startsWith("/")&&i.startsWith("/"),s),a(e.startsWith(i),s),i!=="/"?(a(!i.endsWith("/"),s),o=I(e,i.length,0)):o=e,a(o.startsWith("/"),s),o=l+(l.endsWith("/")?"":"/")+I(o,1,0)}else o=e;return a(o.startsWith("/")),o=o.split("/").filter(i=>i!=="pages"&&i!=="src"&&i!=="index").join("/"),a(!o.includes(".page.")),a(!o.endsWith(".")),o.endsWith("/index")&&(o=I(o,0,-6)),o===""&&(o="/"),a(o.startsWith("/")),a(!o.endsWith("/")||o==="/"),o}async function Zn(e,t,n){Qn(t);let r=e(t);if(Ze(r,`The Route Function ${n}`),r=await r,r===!1)return null;if(r===!0&&(r={}),g(C(r),`The Route Function ${n} should return a boolean or a plain JavaScript object (but it's ${p.cyan(`typeof result === ${JSON.stringify(typeof r)}`)} instead)`),"match"in r){const{match:l}=r;if(g(typeof l=="boolean",`The ${p.cyan("match")} value returned by the Route Function ${n} should be a boolean.`),!l)return null}let o=null;"precedence"in r&&(o=r.precedence,g(typeof o=="number",`The ${p.cyan("precedence")} value returned by the Route Function ${n} should be a number.`)),et(r,`The ${p.cyan("routeParams")} object returned by the Route Function ${n} should`);const i=r.routeParams||{};return g(!("pageContext"in r),`Providing ${p.cyan("pageContext")} in Route Functions is prohibited, see https://vike.dev/route-function#cannot-provide-pagecontext`),a(C(i)),Object.keys(r).forEach(l=>{g(l==="match"||l==="routeParams"||l==="precedence",`The Route Function ${n} returned an object with an unknown property ${p.cyan(l)} (the known properties are ${p.cyan("match")}, ${p.cyan("routeParams")}, and ${p.cyan("precedence")})`)}),{precedence:o,routeParams:i}}function Ze(e,t){w(!Ft(e),`${t} returned a promise, but asynchronous routing is deprecated and will be removed in the next major release, see https://vike.dev/route-function#async`,{onlyOnce:!0})}function Se(){const e=p.cyan("iKnowThePerformanceRisksOfAsyncRouteFunctions");w(!1,`${e} is deprecated and will be removed in the next major release`,{onlyOnce:!0})}function et(e,t){a(t.endsWith(" should")),b(e,"routeParams")&&(a(t.endsWith(" should")),g(C(e.routeParams),`${t} be a plain JavaScript object.`),g($n(e.routeParams),`${t} only hold string values.`))}async function er(e,t,n,r){await Promise.all(e.filter(s=>s.fileType===".page.route").map(s=>{var c;return(c=s.loadFile)==null?void 0:c.call(s)}));const{onBeforeRouteHook:o,filesystemRoots:i}=nr(e,t,n);return{pageRoutes:tr(i,e,t,r),onBeforeRouteHook:o}}function tr(e,t,n,r){const o=[];let i=[...r];if(n.length>0){a(e===null);const l=!0;n.filter(s=>!s.isErrorPage).forEach(s=>{const c=s.pageId;i=or(i,c);let d=null;{const P="route",f=T(s,P);if(f){const u=f.value,y=Pt(f.definedAt,P);typeof u=="string"?d={pageId:c,comesFromV1PageConfig:l,routeString:u,routeDefinedAt:y,routeType:"STRING"}:(a(ie(u)),T(s,"iKnowThePerformanceRisksOfAsyncRouteFunctions","boolean")&&Se(),d={pageId:c,comesFromV1PageConfig:l,routeFunction:u,routeDefinedAt:y,routeType:"FUNCTION"})}}if(!d){const{routeFilesystem:P}=s;a(P);const{routeString:f,definedBy:u}=P;a(P.routeString.startsWith("/")),d={pageId:c,routeFilesystemDefinedBy:u,comesFromV1PageConfig:l,routeString:f,routeDefinedAt:null,routeType:"FILESYSTEM"}}a(d),o.push(d)})}if(n.length===0){a(e);const l=!1;i.filter(s=>!_t(s)).forEach(s=>{const c=t.find(d=>d.pageId===s&&d.fileType===".page.route");if(!c||!("default"in c.fileExports)){const d=Xn(s,e);a(d.startsWith("/")),a(!d.endsWith("/")||d==="/"),o.push({pageId:s,comesFromV1PageConfig:l,routeString:d,routeDefinedAt:null,routeFilesystemDefinedBy:`${s}.page.*`,routeType:"FILESYSTEM"})}else{const{filePath:d,fileExports:P}=c;if(a(P.default),b(P,"default","string")){const f=P.default;g(f.startsWith("/"),`A Route String should start with a leading slash '/' but ${d} has \`export default '${f}'\`. Make sure to \`export default '/${f}'\` instead.`),o.push({pageId:s,comesFromV1PageConfig:l,routeString:f,routeDefinedAt:d,routeType:"STRING"});return}if(b(P,"default","function")){const f=P.default;"iKnowThePerformanceRisksOfAsyncRouteFunctions"in P&&Se(),o.push({pageId:s,comesFromV1PageConfig:l,routeFunction:f,routeDefinedAt:d,routeType:"FUNCTION"});return}g(!1,`The default export of ${d} should be a string or a function.`)}})}return o}function nr(e,t,n){if(t.length>0)return{onBeforeRouteHook:St(n,"onBeforeRoute"),filesystemRoots:null};let r=null;const o=[];return e.filter(i=>i.fileType===".page.route"&&i.isDefaultPageFile).forEach(({filePath:i,fileExports:l})=>{if(a(l),"onBeforeRoute"in l){g(b(l,"onBeforeRoute","function"),`\`export { onBeforeRoute }\` of ${i} should be a function.`);const{onBeforeRoute:s}=l,c="onBeforeRoute";r={hookFilePath:i,hookFn:s,hookName:c,hookTimeout:Fe(c)}}"filesystemRoutingRoot"in l&&(g(b(l,"filesystemRoutingRoot","string"),`\`export { filesystemRoutingRoot }\` of ${i} should be a string.`),g(b(l,"filesystemRoutingRoot","string"),`\`export { filesystemRoutingRoot }\` of ${i} is \`'${l.filesystemRoutingRoot}'\` but it should start with a leading slash \`/\`.`),o.push({filesystemRoot:rr(i),urlRoot:l.filesystemRoutingRoot}))}),{onBeforeRouteHook:r,filesystemRoots:o}}function rr(e){a(e.startsWith("/")),a(!e.endsWith("/"));const t=e.split("/"),n=I(t,0,-1).join("/")||"/";return a(n.startsWith("/")),a(!n.endsWith("/")||n==="/"),n}function or(e,t){const{length:n}=e;return e=e.filter(r=>r!==t),a(e.length===n-1),e}function tt(){const e="/";return a(ir(e)),e}function ir(e){return e.startsWith("/")}const Z=k("createPageContext.ts",{});async function nt(e){Z.pageFilesData||(Z.pageFilesData=await wt(!0));const{pageFilesAll:t,allPageIds:n,pageConfigs:r,pageConfigGlobal:o}=Z.pageFilesData,{pageRoutes:i,onBeforeRouteHook:l}=await er(t,r,o,n),s=tt();a(Ie(s));const d={urlOriginal:e,_objectCreatedByVike:!0,_urlHandler:null,_urlRewrite:null,_baseServer:s,_isProduction:!0,_pageFilesAll:t,_pageConfigs:r,_pageConfigGlobal:o,_allPageIds:n,_pageRoutes:i,_onBeforeRouteHook:l};return qe(d),d}function rt(e){const t=e.getAttribute("href");return!!(t===null||t===""||yn(t)||ar(e)||lr(t)||!ur(t)||!Rt(t)||!sr(e))}function sr(e){if(cr()){const n=e.getAttribute("data-vike-link");return n!==null&&n!=="false"}else return!0}function ar(e){const t=e.getAttribute("target"),n=e.getAttribute("rel");return t==="_blank"||t==="_external"||n==="external"||e.hasAttribute("download")}function lr(e){if(e.startsWith("#"))return!0;const t=n=>n.split("#")[0];return!!(e.includes("#")&&t(e)===t(window.location.href))}function ur(e){const t=tt();a(Ie(t));const{hasBaseServer:n}=M(e,t);return n}function cr(){return!!window._disableAutomaticLinkInterception}function fr(e,t){let n=dr(e,t);return n==="viewport"&&!e._isProduction&&(se(!1,"Viewport prefetching is disabled in development",{onlyOnce:!0}),n="hover"),{prefetchStaticAssets:n}}function dr(e,t){{const n=gr(t);if(n!==null)return n}if("prefetchLinks"in e.exports&&g(!1,"`export { prefetchLinks }` is deprecated, use `export { prefetchStaticAssets }` instead."),"prefetchStaticAssets"in e.exports){const{prefetchStaticAssets:n}=e.exports;if(n===!1)return!1;if(n==="hover")return"hover";if(n==="viewport")return"viewport";const r="prefetchStaticAssets value should be false, 'hover', or 'viewport'";g(C(n),r);const o=Object.keys(n);g(o.length===1&&o[0]==="when",r);const{when:i}=n;if(i==="HOVER"||i==="VIEWPORT"){const l=i.toLowerCase();return w(!1,`prefetchStaticAssets value \`{ when: '${i}' }\` is outdated: set prefetchStaticAssets to '${l}' instead`,{onlyOnce:!0}),l}g(!1,r)}return"hover"}function gr(e){const t=e.getAttribute("data-prefetch-static-assets"),n=e.getAttribute("data-prefetch");if(t===null&&n===null)return null;const r="The attribute data-prefetch is outdated, use data-prefetch-static-assets instead.";if(t){if(g(n===null,r),t==="hover"||t==="viewport")return t;if(t==="false")return!1;g(!1,`data-prefetch-static-assets has value "${t}" but it should instead be "false", "hover", or "viewport"`)}if(n){if(a(!t),w(!1,r,{onlyOnce:!0}),n==="true")return"viewport";if(n==="false")return"hover";g(!1,`data-prefetch has value "${n}" but it should instead be "true" or "false"`)}a(!1)}const ot=new Map;function hr(e){const t=it(e);return ot.has(t)}function pr(e){const t=it(e);ot.set(t,!0)}function it(e){return M(e,"/").pathname}function N(e){return e.fileType===".css"?[]:e.exportNames?e.exportNames:(a(e.fileExports,e.filePath),Object.keys(e.fileExports))}function mr({pageFilesClientSide:e,pageFilesServerSide:t,pageId:n}){return{isHtmlOnly:r(),isClientRouting:i()};function r(){return t.some(s=>s.pageId===n&&s.fileType===".page")?(o(),!1):!(!t.some(s=>s.pageId===n&&s.fileType===".page.server")||e.some(s=>s.pageId===n&&s.fileType===".page.client"&&N(s).includes("render")))}function o(){const l=e.some(s=>N(s).includes("render"));g(l,["No client-side `render()` hook found.","See https://vike.dev/render-modes for more information.",["Loaded client-side page files (none of them `export { render }`):",...e.map((s,c)=>` (${c+1}): ${s.filePath}`)].join(`
2
+ `)].join(" "))}function i(){return e.some(s=>N(s).includes("clientRouting"))}}function yr({pageFilesClientSide:e,pageFilesServerSide:t,isHtmlOnly:n,isClientRouting:r}){let o=[];const i=t.filter(s=>!e.includes(s)),l=[];if(l.push(...e.map(s=>({id:s.filePath,onlyAssets:!1,eagerlyImported:!1}))),l.push(...i.map(s=>({id:s.filePath,onlyAssets:!0,eagerlyImported:!1}))),n)o=e.map(s=>s.filePath);else{const s=br(r);l.push({id:s,onlyAssets:!1,eagerlyImported:!1}),o=[s]}return{clientEntries:o,clientDependencies:l}}function br(e){return e?"@@vike/dist/esm/client/client-routing-runtime/entry.js":"@@vike/dist/esm/client/server-routing-runtime/entry.js"}function Pr(e,t){let n=Ae(e,t);const r=ke(e,t),{isHtmlOnly:o,isClientRouting:i}=mr({pageFilesClientSide:n,pageFilesServerSide:r,pageId:t});o&&(n=n.filter(c=>c.isEnv("CLIENT_ONLY")&&!N(c).includes("render")),n=Sr(n));const{clientEntries:l,clientDependencies:s}=yr({pageFilesClientSide:n,pageFilesServerSide:r,isHtmlOnly:o,isClientRouting:i});return{isHtmlOnly:o,isClientRouting:i,clientEntries:l,clientDependencies:s,pageFilesClientSide:n,pageFilesServerSide:r}}async function _r(e,t,{sharedPageFilesAlreadyLoaded:n}){const r=Ae(e,t);await Promise.all(r.map(async o=>{var i;a(o.isEnv("CLIENT_ONLY")||o.isEnv("CLIENT_AND_SERVER")),!(n&&o.isEnv("CLIENT_AND_SERVER"))&&await((i=o.loadExportNames)==null?void 0:i.call(o))}))}function Sr(e){const t=[];for(const n of e)if(t.push(n),N(n).includes("overrideDefaultPages"))break;return t}function wr(e,t,n){var r,o;if(e){const i=((r=T(e,"clientRouting","boolean"))==null?void 0:r.value)??!1;return{isClientSideRenderable:((o=T(e,"isClientSideRenderable","boolean"))==null?void 0:o.value)??!1,isClientRouting:i}}else{const{isHtmlOnly:i,isClientRouting:l}=Pr(t,n);return{isClientSideRenderable:!i,isClientRouting:l}}}async function st(e,t){await _r(t._pageFilesAll,e,{sharedPageFilesAlreadyLoaded:!1});const n=vt(t._pageConfigs,e),{isClientSideRenderable:r,isClientRouting:o}=wr(n,t._pageFilesAll,e);return r&&o}const at="@",ne=":";function Rr(e,t="Invalid"){let n=`${t} Route String ${x(e)}`;g(e!=="",`${n} (empty string): set it to ${x("/")} instead`),g(["/","*"].includes(e[0]),`${n}: it should start with ${x("/")} or ${x("*")}`),g(!e.includes("**"),`${n}: set it to ${x(e.split("**").join("*"))} instead`)}function re(e,t){Rr(e);const n=lt(e),r=n.map(f=>f.param?"[^/]+":f.glob?f.isLastDir?"|/.*":".*":$t(f.static)).map(f=>`(${f})`).join(""),o=new RegExp(`^${r}/?$`),i=t.match(o);if(!i)return null;const l={},[s,...c]=i;let d=0;const P=n.filter(f=>f.glob).length>1;return n.forEach((f,u)=>{let y=c[u];if(f.param&&(l[f.param]=y),f.glob){const O=`*${P?++d:""}`;f.isLastDir&&(y=y.slice(1)),l[O]=y}}),{routeParams:l}}function lt(e){const t=[],n=o=>{const i=t[t.length-1];i!=null&&i.static?i.static+=o:t.push({static:o})},r=e.split("/");return r.forEach((o,i)=>{const l=i===0,s=i===r.length-1;vr(o)?(w(!o.startsWith(ne),`Outdated Route String ${x(e)}, use ${x(e.split(ne).join(at))} instead`,{onlyOnce:!0}),l||n("/"),t.push({param:o.slice(1)})):o==="*"&&s&&e!=="*"&&e!=="/*"?t.push({glob:!0,isLastDir:!0}):(l||n("/"),o.split("*").forEach((c,d)=>{d!==0&&t.push({glob:!0}),c!==""&&n(c)}))}),t}function D(e){const t=lt(e),n=s=>(s==null?void 0:s.split("/").filter(Boolean).length)||0;let r=0;for(const s of t){if(!s.static)break;r+=n(s.static)}const o=t.map(s=>n(s.static)).reduce((s,c)=>s+c,0),i=t.filter(s=>s.param).length,l=t.filter(s=>s.glob).length;return{numberOfStaticPartsBeginning:r,numberOfStaticParts:o,numberOfParams:i,numberOfGlobs:l}}function vr(e){return e.startsWith(at)||e.startsWith(ne)}function we(e){const n=re(e,e);return a(n),Object.keys(n.routeParams).length===0}function x(e){return Y()?`'${e}'`:(e===""&&(e="''"),p.cyan(e))}function Cr(e){e.sort(Or).sort(F(t=>t.routeType==="FUNCTION"&&!!t.precedence&&t.precedence<0)).sort(F(t=>t.routeType==="STRING"&&we(t.routeString)===!1)).sort(F(t=>t.routeType==="FUNCTION"&&!t.precedence)).sort(F(t=>t.routeType==="STRING"&&we(t.routeString)===!0)).sort(F(t=>t.routeType==="FILESYSTEM")).sort(F(t=>t.routeType==="FUNCTION"&&!!t.precedence&&t.precedence>0))}function Or(e,t){{const n=e.precedence??0,r=t.precedence??0;if(n!==r)return n>r?-1:1}if(!t.routeString||!e.routeString)return 0;{const r=U(o=>D(o).numberOfStaticPartsBeginning)(e.routeString,t.routeString);if(r!==0)return r}{const r=U(o=>D(o).numberOfStaticParts)(e.routeString,t.routeString);if(r!==0)return r}{const r=Ct(o=>D(o).numberOfGlobs)(e.routeString,t.routeString);if(r!==0)return r}{const r=U(o=>D(o).numberOfParams)(e.routeString,t.routeString);if(r!==0)return r}return 0}async function xr(e){const t={};if(!e._onBeforeRouteHook)return null;const n=await kr(e._onBeforeRouteHook,e);return n&&(m(t,n),b(t,"_pageId","string")||b(t,"_pageId","null"))?(b(t,"routeParams")?a(b(t,"routeParams","object")):m(t,{routeParams:{}}),m(t,{_routingProvidedByOnBeforeRouteHook:!0,_debugRouteMatches:"CUSTOM_ROUTING"}),t):(m(t,{_routingProvidedByOnBeforeRouteHook:!1}),t)}async function kr(e,t){let n=e.hookFn(t);Ze(n,`The onBeforeRoute() hook ${e.hookFilePath}`),n=await $(()=>n,e);const r=`The onBeforeRoute() hook defined by ${e.hookFilePath}`;if(g(n==null||En(n,["pageContext"])&&b(n,"pageContext"),`${r} should return ${p.cyan("null")}, ${p.cyan("undefined")}, or a plain JavaScript object ${p.cyan("{ pageContext: { /* ... */ } }")}`),n==null)return null;if(g(b(n,"pageContext","object"),`${r} returned ${p.cyan("{ pageContext }")} but pageContext should be a plain JavaScript object.`),b(n.pageContext,"_pageId")&&!b(n.pageContext,"_pageId","null")){const l=`${r} returned ${p.cyan("{ pageContext: { _pageId } }")} but ${p.cyan("_pageId")} should be`;g(b(n.pageContext,"_pageId","string"),`${l} a string or null`),g(t._allPageIds.includes(n.pageContext._pageId),`${l} ${Tn(t._allPageIds.map(s=>p.cyan(s)),"or")}`)}b(n.pageContext,"routeParams")&&et(n.pageContext,`${r} returned ${p.cyan("{ pageContext: { routeParams } }")} but routeParams should`);const o=l=>`${r} returned ${p.cyan(`{ pageContext: { ${l} } }`)} which is deprecated. Return ${p.cyan("{ pageContext: { urlLogical } }")} instead.`;b(n.pageContext,"url")&&(w(!1,o("url"),{onlyOnce:!0}),n.pageContext.urlLogical=n.pageContext.url,delete n.pageContext.url),b(n.pageContext,"urlOriginal")&&(w(!1,o("urlOriginal"),{onlyOnce:!0}),n.pageContext.urlLogical=n.pageContext.urlOriginal,delete n.pageContext.urlOriginal),b(n.pageContext,"urlLogical")&&Ot(n.pageContext.urlLogical,`${r} returned ${p.cyan("{ pageContext: { urlLogical } }")} but ${p.cyan("urlLogical")}`),Ue(n.pageContext,{hookFilePath:e.hookFilePath,hookName:"onBeforeRoute"});const i={};return m(i,n.pageContext),i}var V;function Re(...e){var t;V||(V=(t=globalThis.__brillout_debug_createDebugger)==null?void 0:t.call(globalThis,"vike:routing")),V&&V(...e)}Y()&&B();async function ut(e){Re("Pages routes:",e._pageRoutes),qe(e);const t={},n=await xr(e);if(n){if(n._routingProvidedByOnBeforeRouteHook)return a(n._pageId),n;m(t,n)}const r={};m(r,e),m(r,n);const o=r._allPageIds;a(o.length>=0),g(r._pageFilesAll.length>0||r._pageConfigs.length>0,"No *.page.js file found. You must create at least one *.page.js file."),g(o.length>0,"You must create at least one *.page.js file that isn't _default.page.*");const{urlPathname:i}=r;a(i.startsWith("/"));const l=[];await Promise.all(r._pageRoutes.map(async c=>{const{pageId:d,routeType:P}=c;if(c.routeType==="FILESYSTEM"){const{routeString:f}=c,u=re(f,i);if(u){const{routeParams:y}=u;l.push({pageId:d,routeParams:y,routeString:f,routeType:P})}return}if(c.routeType==="STRING"){const{routeString:f}=c,u=re(f,i);if(u){const{routeParams:y}=u;a(P==="STRING"),l.push({pageId:d,routeString:f,routeParams:y,routeType:P})}return}if(c.routeType==="FUNCTION"){const{routeFunction:f,routeDefinedAt:u}=c,y=await Zn(f,r,u);if(y){const{routeParams:O,precedence:L}=y;l.push({pageId:d,precedence:L,routeParams:O,routeType:P})}return}a(!1)})),Cr(l);const s=l[0];if(Re(`Route matches for URL ${p.cyan(i)} (in precedence order):`,l),m(t,{_debugRouteMatches:l}),!s)return m(t,{_pageId:null,routeParams:{}}),t;{const{routeParams:c}=s;a(C(c)),m(t,{_pageId:s.pageId,routeParams:s.routeParams})}return t}B();const ve=k("prefetch.ts",{linkPrefetchHandlerAdded:new Map});async function Fr(e,t){try{await G(e,t)}catch(n){if(ae(n))oe(n,!0);else throw n}}function Er(e){pr(e.urlPathname),[...document.getElementsByTagName("A")].forEach(n=>{if(ve.linkPrefetchHandlerAdded.has(n))return;ve.linkPrefetchHandlerAdded.set(n,!0);const r=n.getAttribute("href");if(rt(n)||(a(r),hr(r)))return;const{prefetchStaticAssets:o}=fr(e,n);if(o&&(o==="hover"&&(n.addEventListener("mouseover",()=>{ee(r)}),n.addEventListener("touchstart",()=>{ee(r)},{passive:!0})),o==="viewport")){const i=new IntersectionObserver(l=>{l.forEach(s=>{s.isIntersecting&&(ee(r),i.disconnect())})});i.observe(n)}})}async function ee(e){const t=await nt(e);let n;try{n=await ut(t)}catch{return}n!=null&&n._pageId&&await st(n._pageId,t)&&await Fr(n._pageId,t)}function ct(e){if(e==="preserve-scroll")return;let t;if(e==="scroll-to-top-or-hash"){const n=Tr();if(n&&n!=="top"){const r=document.getElementById(n)||document.getElementsByName(n)[0];if(r){r.scrollIntoView();return}}t={x:0,y:0}}else a("x"in e&&"y"in e),t=e;$r(t)}function $r(e){const t=()=>window.scrollTo(e.x,e.y),n=()=>window.scrollX===e.x&&window.scrollY===e.y;n()||(t(),!n()&&requestAnimationFrame(()=>{t(),!n()&&setTimeout(async()=>{if(t(),n())return;const r=new Date().getTime();for(;;)if(await hn(10),t(),n()||new Date().getTime()-r>100)return},0)}))}function Tr(){let{hash:e}=window.location;return e===""?null:(a(e.startsWith("#")),e=e.slice(1),e)}function Ir(){window.addEventListener("scroll",pn(be,Math.ceil(1e3/3)),{passive:!0}),Be(be)}const E=k("onBrowserHistoryNavigation.ts",{previousState:K()});function Ar(){window.addEventListener("popstate",e=>{const t=K(),n=t.historyState.scrollPosition||"scroll-to-top-or-hash",r=t.historyState.triggedBy==="user",o=t.urlWithoutHash===E.previousState.urlWithoutHash,i=!t.historyState.timestamp||!E.previousState.historyState.timestamp?null:t.historyState.timestamp<E.previousState.historyState.timestamp;E.previousState=t,o&&!r?window.history.state===null?(Le(),E.previousState=K()):ct(n):j({scrollTarget:n,isBackwardNavigation:i,isUserLandPushStateNavigation:r})})}function K(){return{urlWithoutHash:le({withoutHash:!0}),historyState:ce()}}function Hr(){E.previousState=K()}const ft=k("scrollRestoration.ts",{});function Nr(){Ce(),Be(Ce),mn(()=>ft.initialRenderIsDone&&he())}function jr(){ft.initialRenderIsDone=!0}function he(){"scrollRestoration"in window.history&&(window.history.scrollRestoration="manual")}function Ce(){"scrollRestoration"in window.history&&(window.history.scrollRestoration="auto")}const _=k("renderPageClientSide.ts",{renderCounter:0});async function j(e){var me;const{scrollTarget:t,urlOriginal:n=le(),overwriteLastHistoryEntry:r=!1,isBackwardNavigation:o,pageContextsFromRewrite:i=[],redirectCount:l=0,isUserLandPushStateNavigation:s,isClientSideNavigation:c=!0}=e,{abortRender:d,setHydrationCanBeAborted:P,isFirstRender:f}=Wr();if(a(c===!f),Wn(i.length,l),_.clientRoutingIsDisabled){z(n);return}const u=await nt(n);if(d())return;m(u,{isBackwardNavigation:o,isClientSideNavigation:c});{const h=Bn(i);m(u,h)}let y={};const O=h=>{a(h),a(!("err"in y)),a(!("errorWhileRendering"in u)),y.err=h,u.errorWhileRendering=h};if(!f){try{y={pageContextFromRoute:await ut(u)}}catch(h){O(h)}if(d())return;if(y.pageContextFromRoute){const{pageContextFromRoute:h}=y;m(u,h);let S;if(!h._pageId)S=!1;else if(S=await st(h._pageId,u),d())return;if(!S){z(n);return}const R=h._pageId&&((me=_.previousPageContext)==null?void 0:me._pageId)&&h._pageId===_.previousPageContext._pageId;if(s&&R)return}}const L=!f;if(L&&!_.isTransitioning){if(_.onPageTransitionStart){const h=_.onPageTransitionStart,{hookFn:S}=h;await $(()=>S(u),h)}if(_.isTransitioning=!0,d())return}if(f){a(!y.pageContextFromRoute),a(!y.err);try{y.pageContextFromHooks=await Dn(u)}catch(h){O(h)}if(d())return}else if(!y.err){const{pageContextFromRoute:h}=y;a(h),a(h._pageId),a(b(h,"_pageId","string")),m(u,h);try{y.pageContextFromHooks=await Un(u)}catch(S){O(S)}if(d())return}if("err"in y){const{err:h}=y;if(_e(h)||console.error(h),Oe(h,u,f))return;if(_e(h)){const S=h;jn(h,u._isProduction,u);const R=S._pageContextAbort;if(R._urlRewrite){await j({...e,scrollTarget:"scroll-to-top-or-hash",pageContextsFromRewrite:[...i,R]});return}if(R._urlRedirect){const q=R._urlRedirect.url;if(q.startsWith("http")){window.location.href=q;return}else await j({...e,scrollTarget:"scroll-to-top-or-hash",urlOriginal:q,overwriteLastHistoryEntry:!1,isBackwardNavigation:!1,redirectCount:l+1});return}a(R.abortStatusCode),m(u,R),R.abortStatusCode===404&&m(u,{is404:!0})}else m(u,{is404:!1});try{y.pageContextFromHooks=await Vn(u)}catch(S){if(Oe(S,u,f)||(f||setTimeout(()=>{window.location.pathname=n},0),gn(h,S)))return;throw S}if(d())return}const{pageContextFromHooks:pe}=y;a(pe),m(u,pe),Q(u,"onPageTransitionStart");const dt=A(u,"onPageTransitionStart");if(_.onPageTransitionStart=dt,u.exports.hydrationCanBeAborted?P():w(!dn(),"You seem to be using React; we recommend setting hydrationCanBeAborted to true, see https://vike.dev/hydrationCanBeAborted",{onlyOnce:!0}),!d()&&!(_.renderPromise&&(await _.renderPromise,a(_.renderPromise===void 0),d()))){if(Br(n,r),_.previousPageContext=u,a(_.renderPromise===void 0),_.renderPromise=(async()=>{await xt(u,!0),Er(u),_.renderPromise=void 0})(),await _.renderPromise,a(_.renderPromise===void 0),f){Q(u,"onHydrationEnd");const h=A(u,"onHydrationEnd");if(h){const{hookFn:S}=h;if(await $(()=>S(u),h),d(!0))return}}if(!d(!0)){if(L){Q(u,"onPageTransitionEnd");const h=A(u,"onPageTransitionEnd");if(h){const{hookFn:S}=h;if(await $(()=>S(u),h),d(!0))return}_.isTransitioning=void 0}ct(t),he(),jr()}}}function Br(e,t){le()!==e&&(he(),bn(e,t),Hr())}function Oe(e,t,n){return!!(Mn(e)||Lr(e,t,n))}function Lr(e,t,n){if(!ae(e))return!1;if(n)throw oe(e,!1),e;return oe(e,!0),z(t.urlOriginal),!0}function oe(e,t){a(ae(e)),_.clientRoutingIsDisabled=!0,t&&console.log(e),se(!1,["Failed to fetch static asset.","This usually happens when a new frontend is deployed.","Falling back to Server Routing.","(The next page navigation will use Server Routing instead of Client Routing.)"].filter(Boolean).join(" "),{onlyOnce:!0})}function Wr(){const e=++_.renderCounter;a(e>=1);let t=!1;return{abortRender:o=>!o&&e===1&&!t?!1:e!==_.renderCounter,setHydrationCanBeAborted:()=>{t=!0},isFirstRender:e===1}}function xe(){return _.renderCounter}function Dr(){document.addEventListener("click",Vr)}function Vr(e){if(!Ur(e))return;const t=Gr(e.target);if(!t)return;const n=t.getAttribute("href");if(rt(t))return;a(n),e.preventDefault();const o=![null,"false"].includes(t.getAttribute("keep-scroll-position"))?"preserve-scroll":"scroll-to-top-or-hash";j({scrollTarget:o,urlOriginal:n,isBackwardNavigation:!1})}function Ur(e){return e.button===0&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey}function Gr(e){for(;e.tagName!=="A";){const{parentNode:t}=e;if(!t)return null;e=t}return e}function zr(){Nr(),Le(),Ir(),_n(),a(xe()===0),j({scrollTarget:"preserve-scroll",isBackwardNavigation:null,isClientSideNavigation:!1}),a(xe()===1),Dr(),Ar()}B();const Kr=!0;kt(Kr);zr();