gemi 0.55.0 → 0.57.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/index.js +1 -1
- package/dist/broadcasting/index.js +1 -1
- package/dist/bun/plugin.js +1 -1
- package/dist/bun/preload.js +1 -1
- package/dist/{chunk-rsdg619q.js → chunk-11dkjm1r.js} +2 -2
- package/dist/{chunk-rsdg619q.js.map → chunk-11dkjm1r.js.map} +1 -1
- package/dist/{chunk-eqrd31ye.js → chunk-17m5wxv0.js} +2 -2
- package/dist/{chunk-eqrd31ye.js.map → chunk-17m5wxv0.js.map} +1 -1
- package/dist/{chunk-ct274qts.js → chunk-1esnvq2z.js} +2 -2
- package/dist/{chunk-ct274qts.js.map → chunk-1esnvq2z.js.map} +1 -1
- package/dist/{chunk-4xx78ba9.js → chunk-1nqdzmvm.js} +2 -2
- package/dist/{chunk-4xx78ba9.js.map → chunk-1nqdzmvm.js.map} +1 -1
- package/dist/{chunk-dzzmqv0j.js → chunk-32d510cd.js} +2 -2
- package/dist/{chunk-dzzmqv0j.js.map → chunk-32d510cd.js.map} +1 -1
- package/dist/{chunk-kgmr9qxx.js → chunk-4f69ygc8.js} +2 -2
- package/dist/{chunk-kgmr9qxx.js.map → chunk-4f69ygc8.js.map} +1 -1
- package/dist/chunk-5fmbsy4q.js +6 -0
- package/dist/{chunk-9r1atj8w.js.map → chunk-5fmbsy4q.js.map} +2 -2
- package/dist/{chunk-699z6d8y.js → chunk-5txddtaa.js} +3 -3
- package/dist/{chunk-699z6d8y.js.map → chunk-5txddtaa.js.map} +1 -1
- package/dist/{chunk-gasdfwva.js → chunk-5z5xskg1.js} +2 -2
- package/dist/{chunk-gasdfwva.js.map → chunk-5z5xskg1.js.map} +1 -1
- package/dist/{chunk-3e88tyee.js → chunk-64bq12j3.js} +2 -2
- package/dist/{chunk-3e88tyee.js.map → chunk-64bq12j3.js.map} +1 -1
- package/dist/{chunk-javjeayw.js → chunk-67zyjx0c.js} +2 -2
- package/dist/{chunk-javjeayw.js.map → chunk-67zyjx0c.js.map} +1 -1
- package/dist/{chunk-xjy5apyr.js → chunk-6c14bexh.js} +2 -2
- package/dist/{chunk-xjy5apyr.js.map → chunk-6c14bexh.js.map} +1 -1
- package/dist/{chunk-vkngcrzq.js → chunk-6fc909z5.js} +2 -2
- package/dist/{chunk-vkngcrzq.js.map → chunk-6fc909z5.js.map} +1 -1
- package/dist/{chunk-v6v6sem5.js → chunk-74aj8ms2.js} +2 -2
- package/dist/{chunk-v6v6sem5.js.map → chunk-74aj8ms2.js.map} +1 -1
- package/dist/{chunk-npg72mez.js → chunk-7pn0bnsc.js} +2 -2
- package/dist/{chunk-npg72mez.js.map → chunk-7pn0bnsc.js.map} +1 -1
- package/dist/{chunk-x14sk95v.js → chunk-8v81dvje.js} +3 -3
- package/dist/{chunk-x14sk95v.js.map → chunk-8v81dvje.js.map} +1 -1
- package/dist/chunk-9j9wqrb2.js +5 -0
- package/dist/chunk-9j9wqrb2.js.map +33 -0
- package/dist/{chunk-enhkf60v.js → chunk-a70s8pz4.js} +2 -2
- package/dist/{chunk-enhkf60v.js.map → chunk-a70s8pz4.js.map} +1 -1
- package/dist/{chunk-wgpa04jb.js → chunk-ae6xz52s.js} +2 -2
- package/dist/{chunk-wgpa04jb.js.map → chunk-ae6xz52s.js.map} +1 -1
- package/dist/{chunk-62ke19q4.js → chunk-ba0rkpk5.js} +4 -4
- package/dist/{chunk-62ke19q4.js.map → chunk-ba0rkpk5.js.map} +1 -1
- package/dist/{chunk-4yafsffx.js → chunk-btr9kyqh.js} +2 -2
- package/dist/{chunk-4yafsffx.js.map → chunk-btr9kyqh.js.map} +1 -1
- package/dist/{chunk-gzdf2025.js → chunk-bw8kt7ps.js} +2 -2
- package/dist/{chunk-gzdf2025.js.map → chunk-bw8kt7ps.js.map} +1 -1
- package/dist/{chunk-02gdzs5t.js → chunk-cecq6q1b.js} +1 -1
- package/dist/{chunk-d36dfqxw.js → chunk-d6kgxmp7.js} +3 -3
- package/dist/{chunk-d36dfqxw.js.map → chunk-d6kgxmp7.js.map} +1 -1
- package/dist/{chunk-g30q4n5y.js → chunk-dcwjwfjc.js} +2 -2
- package/dist/{chunk-g30q4n5y.js.map → chunk-dcwjwfjc.js.map} +1 -1
- package/dist/{chunk-77xj0dgc.js → chunk-dwz0wbhj.js} +2 -2
- package/dist/{chunk-77xj0dgc.js.map → chunk-dwz0wbhj.js.map} +1 -1
- package/dist/{chunk-9r0sb4zn.js → chunk-dxxak51x.js} +2 -2
- package/dist/{chunk-9r0sb4zn.js.map → chunk-dxxak51x.js.map} +1 -1
- package/dist/{chunk-62723jyy.js → chunk-e9zz0zfv.js} +1 -1
- package/dist/{chunk-01am9k5v.js → chunk-f233yzxf.js} +2 -2
- package/dist/{chunk-01am9k5v.js.map → chunk-f233yzxf.js.map} +1 -1
- package/dist/{chunk-tja0c815.js → chunk-fck5yw2s.js} +2 -2
- package/dist/{chunk-tja0c815.js.map → chunk-fck5yw2s.js.map} +1 -1
- package/dist/chunk-g5pj95dz.js +9 -0
- package/dist/{chunk-kry5vwam.js.map → chunk-g5pj95dz.js.map} +3 -3
- package/dist/{chunk-31kcf7dq.js → chunk-j21tm6jf.js} +2 -2
- package/dist/{chunk-31kcf7dq.js.map → chunk-j21tm6jf.js.map} +1 -1
- package/dist/{chunk-pvdbrt4z.js → chunk-jny4f23c.js} +3 -3
- package/dist/{chunk-pvdbrt4z.js.map → chunk-jny4f23c.js.map} +1 -1
- package/dist/{chunk-64s1pzz1.js → chunk-jzatvtjd.js} +2 -2
- package/dist/{chunk-64s1pzz1.js.map → chunk-jzatvtjd.js.map} +1 -1
- package/dist/{chunk-cn2r5jfj.js → chunk-k5bjfhz8.js} +2 -2
- package/dist/{chunk-cn2r5jfj.js.map → chunk-k5bjfhz8.js.map} +1 -1
- package/dist/{chunk-kgg1eqne.js → chunk-ka4tdhm8.js} +2 -2
- package/dist/{chunk-kgg1eqne.js.map → chunk-ka4tdhm8.js.map} +1 -1
- package/dist/{chunk-h3mwgbg7.js → chunk-katt90qz.js} +2 -2
- package/dist/{chunk-h3mwgbg7.js.map → chunk-katt90qz.js.map} +1 -1
- package/dist/{chunk-y9fp58bg.js → chunk-knvxwrwh.js} +2 -2
- package/dist/{chunk-y9fp58bg.js.map → chunk-knvxwrwh.js.map} +1 -1
- package/dist/{chunk-9c89q2mz.js → chunk-ma5rj4st.js} +2 -2
- package/dist/{chunk-9c89q2mz.js.map → chunk-ma5rj4st.js.map} +1 -1
- package/dist/{chunk-v06qcyj5.js → chunk-mqwrmbh4.js} +3 -3
- package/dist/{chunk-v06qcyj5.js.map → chunk-mqwrmbh4.js.map} +1 -1
- package/dist/{chunk-jdj7k3r9.js → chunk-msyqr4y7.js} +2 -2
- package/dist/{chunk-jdj7k3r9.js.map → chunk-msyqr4y7.js.map} +1 -1
- package/dist/{chunk-q0waxxz5.js → chunk-n2zmg475.js} +2 -2
- package/dist/{chunk-q0waxxz5.js.map → chunk-n2zmg475.js.map} +1 -1
- package/dist/{chunk-33wjsw4r.js → chunk-nkbreczg.js} +3 -3
- package/dist/{chunk-33wjsw4r.js.map → chunk-nkbreczg.js.map} +1 -1
- package/dist/{chunk-1pwwrpa3.js → chunk-nqk3cx97.js} +2 -2
- package/dist/{chunk-1pwwrpa3.js.map → chunk-nqk3cx97.js.map} +1 -1
- package/dist/{chunk-4qwwy968.js → chunk-q8k3gh8k.js} +2 -2
- package/dist/{chunk-4qwwy968.js.map → chunk-q8k3gh8k.js.map} +1 -1
- package/dist/{chunk-f9mfw82d.js → chunk-qfzyym5h.js} +3 -3
- package/dist/{chunk-f9mfw82d.js.map → chunk-qfzyym5h.js.map} +1 -1
- package/dist/{chunk-rgb69nh1.js → chunk-qkrba9c2.js} +2 -2
- package/dist/{chunk-rgb69nh1.js.map → chunk-qkrba9c2.js.map} +1 -1
- package/dist/{chunk-1zfsgffv.js → chunk-r8637cqv.js} +3 -3
- package/dist/{chunk-1zfsgffv.js.map → chunk-r8637cqv.js.map} +1 -1
- package/dist/chunk-r9as9htn.js +5 -0
- package/dist/{chunk-b50zmz3t.js.map → chunk-r9as9htn.js.map} +1 -1
- package/dist/{chunk-tmnhkphv.js → chunk-r9h6aj7g.js} +4 -4
- package/dist/{chunk-tmnhkphv.js.map → chunk-r9h6aj7g.js.map} +1 -1
- package/dist/{chunk-w9k9s4wh.js → chunk-rc2asvyf.js} +2 -2
- package/dist/{chunk-w9k9s4wh.js.map → chunk-rc2asvyf.js.map} +1 -1
- package/dist/{chunk-m0ggfy1m.js → chunk-rxsmwbxv.js} +2 -2
- package/dist/{chunk-m0ggfy1m.js.map → chunk-rxsmwbxv.js.map} +1 -1
- package/dist/{chunk-rjxdc0xh.js → chunk-swe2b6rv.js} +1 -1
- package/dist/chunk-tzsnadg1.js +37 -0
- package/dist/chunk-tzsnadg1.js.map +20 -0
- package/dist/{chunk-3y75q5a2.js → chunk-vdzb29p5.js} +2 -2
- package/dist/{chunk-3y75q5a2.js.map → chunk-vdzb29p5.js.map} +1 -1
- package/dist/{chunk-8k1zqrvh.js → chunk-wrypq618.js} +2 -2
- package/dist/{chunk-8k1zqrvh.js.map → chunk-wrypq618.js.map} +1 -1
- package/dist/{chunk-hs5v3eqj.js → chunk-yhzb9qpk.js} +2 -2
- package/dist/{chunk-hs5v3eqj.js.map → chunk-yhzb9qpk.js.map} +1 -1
- package/dist/client/index.d.ts +3 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/config/index.js +1 -1
- package/dist/console/run.js +2 -2
- package/dist/console/run.js.map +1 -1
- package/dist/container/index.js +2 -2
- package/dist/container/index.js.map +1 -1
- package/dist/database/index.js +2 -2
- package/dist/database/index.js.map +1 -1
- package/dist/email/index.js +2 -2
- package/dist/email/index.js.map +1 -1
- package/dist/facades/index.d.ts +1 -0
- package/dist/facades/index.d.ts.map +1 -1
- package/dist/facades/index.js +2 -2
- package/dist/facades/index.js.map +1 -1
- package/dist/foundation/index.js +2 -2
- package/dist/foundation/index.js.map +1 -1
- package/dist/gemi.d.ts +45 -0
- package/dist/http/index.js +2 -2
- package/dist/http/index.js.map +1 -1
- package/dist/i18n/dictionaryRuntime.js +2 -2
- package/dist/i18n/dictionaryRuntime.js.map +1 -1
- package/dist/i18n/index.js +2 -2
- package/dist/i18n/index.js.map +1 -1
- package/dist/ide/typescript-plugin/index.js +1206 -0
- package/dist/ide/typescript-plugin/index.js.map +17 -0
- package/dist/internal/type-stubs/app/http/routes/api.d.ts +24 -0
- package/dist/internal/type-stubs/app/http/routes/api.d.ts.map +1 -0
- package/dist/internal/type-stubs/app/http/routes/view.d.ts +6 -0
- package/dist/internal/type-stubs/app/http/routes/view.d.ts.map +1 -0
- package/dist/internal/type-stubs/app/i18n/index.d.ts +4 -0
- package/dist/internal/type-stubs/app/i18n/index.d.ts.map +1 -0
- package/dist/kernel/index.js +3 -3
- package/dist/kernel/index.js.map +3 -3
- package/dist/kernel/providers.d.ts +16 -4
- package/dist/kernel/providers.d.ts.map +1 -1
- package/dist/orm/context.d.ts +65 -0
- package/dist/orm/context.d.ts.map +1 -1
- package/dist/orm/index.js +2 -2
- package/dist/orm/index.js.map +1 -1
- package/dist/server/index.js +2 -2
- package/dist/server/index.js.map +1 -1
- package/dist/services/discovery.d.ts +27 -0
- package/dist/services/discovery.d.ts.map +1 -1
- package/dist/services/events/Event.d.ts +208 -0
- package/dist/services/events/Event.d.ts.map +1 -0
- package/dist/services/events/EventManager.d.ts +285 -0
- package/dist/services/events/EventManager.d.ts.map +1 -0
- package/dist/services/events/EventServiceProvider.d.ts +46 -0
- package/dist/services/events/EventServiceProvider.d.ts.map +1 -0
- package/dist/services/events/FakeEventManager.d.ts +155 -0
- package/dist/services/events/FakeEventManager.d.ts.map +1 -0
- package/dist/services/events/FakeEventManager.test-d.d.ts +2 -0
- package/dist/services/events/FakeEventManager.test-d.d.ts.map +1 -0
- package/dist/services/events/Listener.d.ts +189 -0
- package/dist/services/events/Listener.d.ts.map +1 -0
- package/dist/services/events/Listener.test-d.d.ts +2 -0
- package/dist/services/events/Listener.test-d.d.ts.map +1 -0
- package/dist/services/events/config.d.ts +55 -0
- package/dist/services/events/config.d.ts.map +1 -0
- package/dist/services/events/listenerJob.d.ts +43 -0
- package/dist/services/events/listenerJob.d.ts.map +1 -0
- package/dist/services/index.d.ts +6 -1
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +8 -8
- package/dist/services/index.js.map +5 -3
- package/dist/services/queue/QueueManager.d.ts +31 -0
- package/dist/services/queue/QueueManager.d.ts.map +1 -1
- package/dist/support/index.js +2 -2
- package/dist/support/index.js.map +1 -1
- package/dist/testing/index.d.ts +24 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/ide/typescript-plugin/package.json +5 -0
- package/package.json +4 -2
- package/dist/chunk-4t80js0n.js +0 -33
- package/dist/chunk-4t80js0n.js.map +0 -18
- package/dist/chunk-98a576s9.js +0 -5
- package/dist/chunk-98a576s9.js.map +0 -30
- package/dist/chunk-9r1atj8w.js +0 -6
- package/dist/chunk-b50zmz3t.js +0 -5
- package/dist/chunk-kry5vwam.js +0 -9
- /package/dist/{chunk-02gdzs5t.js.map → chunk-cecq6q1b.js.map} +0 -0
- /package/dist/{chunk-62723jyy.js.map → chunk-e9zz0zfv.js.map} +0 -0
- /package/dist/{chunk-rjxdc0xh.js.map → chunk-swe2b6rv.js.map} +0 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{Rb as o}from"./chunk-jzatvtjd.js";import{Sb as i}from"./chunk-17m5wxv0.js";import{_e as t}from"./chunk-btr9kyqh.js";import{ef as r}from"./chunk-1esnvq2z.js";class n extends i{register(){this.app.singleton(r,()=>new r(t(o(),this.app.config.get("translation",{}))))}}
|
|
3
|
+
export{n as Qa};
|
|
4
|
+
|
|
5
|
+
//# debugId=B44BE5B0934BCAE564756E2164756E21
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
"import { ServiceProvider } from \"../support/ServiceProvider\";\nimport { withDefaults } from \"../support/withDefaults\";\nimport { Translator } from \"./Translator\";\nimport { translationConfigDefaults, type TranslationConfig } from \"./config\";\n\nexport class TranslationServiceProvider extends ServiceProvider {\n register() {\n this.app.singleton(\n Translator,\n () =>\n new Translator(\n withDefaults(\n translationConfigDefaults(),\n this.app.config.get<TranslationConfig>(\"translation\", {}),\n ),\n ),\n );\n }\n}\n"
|
|
6
6
|
],
|
|
7
7
|
"mappings": ";sLAKO,AAAM,IAAmC,LAAgB,CAC9D,QAAQ,EAAG,CACT,KAAK,IAAI,UACP,EACA,IACE,IAAI,EACF,EACE,EAA0B,EAC1B,KAAK,IAAI,OAAO,IAAuB,cAAe,CAAC,CAAC,CAC1D,CACF,CACJ,EAEJ",
|
|
8
|
-
"debugId": "
|
|
8
|
+
"debugId": "B44BE5B0934BCAE564756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Fc as mf,Kc as yf,wc as cf,xc as b0,yc as Pf,zc as Rf}from"./chunk-kry5vwam.js";import{Vc as M0,qd as pf}from"./chunk-x14sk95v.js";import{Ad as _f,vd as Mf}from"./chunk-q0waxxz5.js";import{Bd as R0,Dd as d0,Fd as v0,Kd as Ni,Md as p,Nd as V,Qd as m0,Rd as bi,Sd as k0,Td as wi,Ud as H0,Vd as y,Wd as h,Yd as bf,Zd as di,ce as Li,ge as b,ke as kf}from"./chunk-vkngcrzq.js";import{re as L}from"./chunk-f9mfw82d.js";import{Ze as H}from"./chunk-ct274qts.js";import{_e as gi,bf as X}from"./chunk-v06qcyj5.js";import{if as pi}from"./chunk-kgmr9qxx.js";class E{static getFacadeAccessor(){throw Error(`Facade [${this.name}] does not implement getFacadeAccessor().`)}static getFacadeRoot(){return X(this.getFacadeAccessor())}}import{AsyncLocalStorage as ef}from"async_hooks";class mi{config;static token="broadcast";publishCb;context=new ef;constructor(i){this.config=i}get channels(){return this.config.channels}onPublish(i){this.publishCb=i}publish(...i){let[f,$,z]=i;this.publishCb(f,$,z)}async handleMessage(i,f){let $=JSON.parse(f);if($.type==="subscribe"){let z=Object.entries(this.channels).sort(([U],[C])=>U.length-C.length);for(let[U,C]of z){let j=new URLPattern({pathname:U});if(j.test({pathname:$.topic})){let O=j.exec({pathname:$.topic})?.pathname.groups,w=new C;if(await w.subscribe.call(w,O))i.subscribe($.topic);break}}}if($.type==="broadcast")i.publish($.topic,JSON.stringify({topic:$.topic,data:$.payload}));if($.type==="unsubscribe")i.unsubscribe($.topic)}run(i,f){let $=i.get("Cookie"),z=new Map;if($){let U=$.split(";");for(let C of U){let[j,O]=C.split("=");z.set(j.trim(),O.trim())}}this.context.run({headers:i,cookies:z},f)}}class Di extends E{static getFacadeAccessor(){return mi}static channel(i,f){let $=this.getFacadeRoot(),z=$.channels[i];if(!z)return console.error(`Channel ${i} not found`),{publish:()=>{}};let U=new z;return{publish:(C,j=!1)=>{let O=h(i,f);$.publish(O,JSON.stringify({topic:O,data:U.publish(C)}),j)}}}}class u extends E{static getFacadeAccessor(){return b}static async user(){let i=L.getStore(),f=Di.getFacadeRoot().context.getStore(),$="",z="";if(i?.req)$=i.req.cookies.get("access_token"),z=i.req.headers.get("User-Agent");if(f?.cookies)z=f.headers.get("User-Agent"),$=f.cookies.get("access_token");let U=i?.user;if(!U)U=(await this.getFacadeRoot().getSession($,z))?.user,i?.setUser(U);if(U)return U;throw new H0}static async guard(i){let f=await u.user();if(!f)throw new bi;try{if(!await i(f))throw new bi}catch($){throw new bi}}static async guardSafe(i){let f=await u.user();if(!f)return!1;try{return await i(f)}catch($){return!1}}static async authenticate(i){return await this.getFacadeRoot().authenticate(i)}static async createMagicLink(i){return await this.getFacadeRoot().createMagicLinkToken(i)}}class Ci extends E{static getFacadeAccessor(){return H}static getSupportedLocales(){return this.getFacadeRoot().supportedLocales}static getDefaultLocale(){return this.getFacadeRoot().defaultLocale}static locale(){let i=this.getFacadeRoot(),f=L.getStore();if(f)return f.locale??i.detectLocale(f.req);return i.defaultLocale}static setLocale(i=Ci.locale()){let f=this.getFacadeRoot(),$=i;if(!f.supportedLocales.includes(i))$=f.defaultLocale;let z=L.getStore();return z.setCookie("i18n-locale",$,{expires:new Date(Date.now()+31536000000),secure:!1,httpOnly:!1}),z.setLocale($),$}}import{Buffer as f1}from"buffer";async function Wi(i){try{return(await import("sharp")).default}catch(f){throw Error(`${i} requires the 'sharp' package. Install it with \`bun add sharp\`.`,{cause:f})}}class yi{async read(i){let f=typeof i==="string"?{name:i}:i,$=await this.fetch({name:f.name,bucket:f.bucket});if(!$.ok)throw new wi(f.name);let z=$.headers.get("Content-Type")??"application/octet-stream",U=$.headers.get("ETag")??void 0,C=$.headers.get("Last-Modified"),j=C?new Date(C):void 0;if(f.range){let W=await $.blob();return{body:W,start:0,end:W.size-1,total:W.size,partial:!1,type:z,etag:U,lastModified:j,name:f.name}}let O=Number($.headers.get("Content-Length")),w=Number.isFinite(O)?O:0;return{body:$.body,start:0,end:w-1,total:w,partial:!1,type:z,etag:U,lastModified:j,name:f.name}}async size(i){let f=typeof i==="string"?i:i.name,$=typeof i==="string"?void 0:i.bucket,z=await this.fetch({name:f,bucket:$});if(!z.ok)throw new wi(f);let U=Number(z.headers.get("Content-Length"));if(Number.isFinite(U))return await z.body?.cancel(),U;return(await z.blob()).size}}import{readdir as i1}from"fs/promises";class qi extends yi{folderPath;constructor(i=`${process.env.ROOT_DIR}/storage`){super();this.folderPath=i}async put(i){let f,$;if(i instanceof Blob)f=i,$=`${Bun.randomUUIDv7()}.${i.type.split("/")[1].split(";")[0]}`;else f=i.body,$=i.name;let z=f instanceof Buffer?f:f instanceof Blob||f instanceof File?Buffer.from(await f.arrayBuffer()):"",U=`${this.folderPath}/${$}`;return await Bun.write(U,z),$}async fetch(i){let f=process.env.BUCKET_NAME,$;if(typeof i==="string")$=i;else f=i.bucket??f,$=i.name;if(!$)throw Error("Object name has to be specified");let z=`${this.folderPath}/${$}`,U=Bun.file(z),C=Bun.file(z).stream(),j=new Date(U.lastModified).toUTCString();return new Response(C,{headers:{"Content-Type":U.type,"Content-Length":String(U.size),"Cache-Control":"private, max-age=12000, must-revalidate","Last-Modified":j}})}async read(i){let f=typeof i==="string"?{name:i}:i,{name:$,range:z=null}=f;if(!$)throw Error("Object name has to be specified");let U=Bun.file(`${this.folderPath}/${$}`);if(!await U.exists())throw new wi($);let C=U.size,j=z?v0(z,C):null;if(z&&!j)throw new k0(C);let O=j?.start??0,w=j?j.end:C-1;return{body:j?U.slice(O,w+1):U,start:O,end:w,total:C,partial:Boolean(j),type:U.type||"application/octet-stream",lastModified:new Date(U.lastModified),name:$}}async size(i){let f=typeof i==="string"?i:i.name,$=Bun.file(`${this.folderPath}/${f}`);if(!await $.exists())throw new wi(f);return $.size}async list(){return await i1(this.folderPath)}}function x$(i){return i}function h0(){return{driver:new qi}}class ni{static token="filesystem";driver;constructor(i={}){this.driver=i.driver??h0().driver}}class c0 extends E{static getFacadeAccessor(){return ni}static async put(i){return this.getFacadeRoot().driver.put(i)}static async metadata(i){let f=f1.from(await i.arrayBuffer()),$=await Wi("Storage.metadata()");try{return await $(f).metadata()}catch{return{}}}static async fetch(i){return this.getFacadeRoot().driver.fetch(i)}static async read(i,f={}){let $=typeof i==="string"?{name:i}:{...i},z="range"in f?f.range??null:$.range!==void 0?$.range:L.getStore()?.rangeRequest??null;return this.getFacadeRoot().driver.read({...$,range:z})}static list(i){return this.getFacadeRoot().driver.list(i)}static delete(){}}function P0(i){return Object.fromEntries(Object.entries(i).filter(([,f])=>{return f!==null&&f!==void 0}))}var $1=50;class Ji{fetcher;entries=new Map;settleListener=null;failListener=null;shellAt=null;settledBacklog=[];shipped=new Set;requestStartedAt=performance.now();renderStartedAt=null;discoveryHintsMuted=!1;constructor(i){this.fetcher=i}elapsed(){return Math.round(performance.now()-this.requestStartedAt)}keyFor(i,f){return[i,f].filter(($)=>$.length>0).join("?")}markRenderStart(){if(this.renderStartedAt===null)this.renderStartedAt=performance.now()}markShell(){if(this.shellAt===null)this.shellAt=this.elapsed()}summarize(i){let f=this.elapsed();return{shellAt:this.shellAt??f,settledAt:f,aborted:i,queries:Array.from(this.entries.values(),($)=>({path:$.path,variantKey:$.variantKey,startedAt:$.startedAt,settledAt:$.settledAt,status:$.status,source:$.source}))}}onQueryFail(i){this.failListener=i}muteDiscoveryHints(){this.discoveryHintsMuted=!0}maybeLogLateDiscovery(i){if(!i.lateBy||this.discoveryHintsMuted)return;if(i.status!=="resolved")return;if(Bun.env.NODE_ENV==="production")return;let f="";try{let U=JSON.stringify(i.data)?.length??0;f=U>=1024?`${(U/1024).toFixed(1)} kB`:`${U} B`}catch{f="an unserializable payload"}let $=(i.settledAt??0)-i.startedAt,z=i.variantKey?`, { search: ${JSON.stringify(Object.fromEntries(new URLSearchParams(i.variantKey)))} }`:"";console.warn(`[gemi] useQuery("${i.patternPath}") was discovered ${i.lateBy}ms into the `+`server render \u2014 under a suspended segment, so its fetch (${$}ms, resolved ${f}) could not overlap the others. It still streamed. If the query belongs on this route, \`Query.prefetch("${i.patternPath}"${z})\` in the view `+"handler starts it at request time \u2014 but note prefetched data is also re-fetched and "+`streamed into every client-side navigation payload for the route, even when the client already holds it, so weigh that bandwidth against the ${f}. If the data is only needed conditionally (a closed popover, a hidden tab), \`{ lazy: true }\` + \`trigger()\` avoids running it here at all. \`Query.noPrefetch()\` in the handler marks the omission intentional and silences this hint for the route.`)}read(i,f){return this.entries.get(this.keyFor(i,f))}ensure(i,f={},$="render"){let z=f.params??{},U=new URLSearchParams(P0(f.search??{}));U.delete("json"),U.sort();let C=h(i,z),j=U.toString(),O=this.keyFor(C,j),w=this.entries.get(O);if(w)return w;let W;if($==="render"&&this.renderStartedAt!==null){let x=Math.round(performance.now()-this.renderStartedAt);if(x>$1)W=x}let J,Y=new Promise((x)=>{J=x}),I={path:C,patternPath:i,variantKey:j,lateBy:W,status:"pending",promise:Y,source:$,startedAt:this.elapsed()};return this.entries.set(O,I),this.fetcher(i,z,U).then((x)=>{I.status="resolved",I.data=x},(x)=>{I.status="rejected",I.error=x}).then(()=>{if(I.settledAt=this.elapsed(),this.maybeLogLateDiscovery(I),I.status==="rejected"&&this.failListener)this.failListener(I);if(this.settleListener)this.settleListener(I);else this.settledBacklog.push(I);J()}),I}async allSettled(){let i=0;while(i!==this.entries.size)i=this.entries.size,await Promise.all(Array.from(this.entries.values(),(f)=>f.promise))}snapshotResolved(){let i={};for(let[f,$]of this.entries){if($.status!=="resolved")continue;this.shipped.add(f),i[$.path]??={},i[$.path][$.variantKey]=$.data}return i}onSettle(i){this.settleListener=($)=>{if(this.shipped.has(this.keyFor($.path,$.variantKey)))return;i($)};let f=this.settledBacklog;this.settledBacklog=[];for(let $ of f)this.settleListener($)}}class Ki extends Error{path;variantKey;status;body;constructor(i,f,$,z){super(typeof z?.message==="string"?z.message:`Request to /api${i} failed with status ${$}`);this.path=i;this.variantKey=f;this.status=$;this.body=z;this.name="QueryError"}}class si extends V{schema={email:{required:"Email is required",string:"Invalid email",email:"Invalid email"},password:{required:"Password is required"}}}class p0 extends V{schema={email:{required:"Email is required",email:"Invalid email"}}}class y0 extends V{schema={password:{required:"Password is required",password:"Invalid password"}}}class M extends R0{async me(){let i=await u.user();if(!i)throw new m0;return i}async verifyEmail(i=new V){let f=await i.input(),{userProvider:$}=X(b),z=await $.findUserByVerificationToken(f.get("token"));if(!z)return{email:null};return await $.verifyUser(z.email),{email:z.email}}async signInWithMagicLink(i=new V){let f=X(b),{userProvider:$}=f,z=i.search.get("token"),U=decodeURIComponent(i.search.get("email")).toLowerCase().trim(),C=null;try{C=await $.findUserMagicLinkToken({email:U,token:z})}catch(w){return console.log(w),{error:JSON.stringify(w)}}if(!C)return{error:"Invalid token"};await $.verifyUser(U),await $.deleteMagicLinkToken(U);let j=await f.createOrUpdateSession({email:U}),O=new URL(i.rawRequest.url);return i.ctx().setCookie("access_token",j.token,{expires:j.expiresAt,secure:!O.origin.includes("localhost"),httpOnly:!0}),await f.config.onSignIn(j,i.search.toJSON()),{session:j}}async signInWithPinV2(i=new V){let f=X(b),{userProvider:$}=f,z=await i.input(),{email:U,pin:C}=z.toJSON(),j=U.toLowerCase().trim();if(!await $.findUserMagicLinkToken({email:j,pin:C}))throw new p({pin:["Invalid pin"]});await $.deleteMagicLinkToken(j),await $.verifyUser(j);let w=await f.createOrUpdateSessionV2({email:j}),W=new URL(i.rawRequest.url);return i.ctx().setCookie("access_token",w.token,{expires:w.expiresAt,secure:!W.origin.includes("localhost"),httpOnly:!0}),await f.config.onSignIn(w,i.search.toJSON()),w}async signInWithPin(i=new V){let f=X(b),{userProvider:$}=f,z=await i.input(),{email:U,pin:C}=z.toJSON(),j=U.toLowerCase().trim();if(!await $.findUserMagicLinkToken({email:j,pin:C}))throw new p({pin:["Invalid pin"]});await $.deleteMagicLinkToken(j),await $.verifyUser(j);let w=await f.createOrUpdateSession({email:j}),W=new URL(i.rawRequest.url);return i.ctx().setCookie("access_token",w.token,{expires:w.expiresAt,secure:!W.origin.includes("localhost"),httpOnly:!0}),await f.config.onSignIn(w,i.search.toJSON()),{session:w}}async signInV2(i=new si){let f=new URL(i.rawRequest.url),$=await i.input(),{email:z,password:U}=$.toJSON(),C=z.toLowerCase().trim(),j=X(b),O=await j.userProvider.findUserByEmailAddress(C,j.config.verifyEmail);if(!O)throw new p({invalid_credentials:["Invalid credentials"]});if(!await j.config.verifyPassword(U,O.password))throw new p({invalid_credentials:["Invalid credentials"]});let W=await j.createOrUpdateSessionV2({email:O.email,id:O.id});i.ctx().setCookie("access_token",W.token,{expires:W.expiresAt,secure:!f.origin.includes("localhost"),httpOnly:!0}),await j.config.onSignIn(O,i.search.toJSON());let{password:J,...Y}=O;return Y}async signIn(i=new si){let f=await i.input(),{email:$,password:z}=f.toJSON(),U=$.toLowerCase().trim(),C=X(b),j=await C.userProvider.findUserByEmailAddress(U,C.config.verifyEmail);if(!j)throw new p({invalid_credentials:["Invalid credentials"]});if(!await C.config.verifyPassword(z,j.password))throw new p({invalid_credentials:["Invalid credentials"]});let w=await C.createOrUpdateSession({email:j.email,id:j.id}),W=new URL(i.rawRequest.url);i.ctx().setCookie("access_token",w.token,{expires:w.expiresAt,secure:!W.origin.includes("localhost"),httpOnly:!0}),await C.config.onSignIn(j,i.search.toJSON());let{password:J,...Y}=j;return Y}async signUp(){let i=X(b),{userProvider:f,config:$}=i,z=new $.signUpRequest,U=await z.input(),{email:C,password:j,name:O,invitationId:w}=U.toJSON(),W=C.toLowerCase().trim();if(await f.findUserByEmailAddress(W,!1))throw new p({email:["Email address already exists"]});let Y=await $.hashPassword(j),I=X(H).detectLocale(z),x;if(w)x=await f.findInvitation(w,W);let B,T="";if(x)B=await f.transaction(async()=>{await f.deleteInvitationById(w);let F=await f.createUser({email:W,name:O,password:Y,emailVerifiedAt:new Date,locale:I});return await f.createAccount({organizationId:x.organizationId,userId:F.id,organizationRole:x.role}),await $.onUserCreated(F),F});else T=await $.generateEmailVerificationToken(W),B=await f.transaction(async()=>{let F=await f.createUser({email:W,name:O,password:Y,verificationToken:T,locale:I});return await $.onUserCreated(F),F});return await $.onSignUp(B,T,z.search.toJSON()),B}async signOut(i=new V){let f=i.cookies.get("access_token"),$=await u.user(),{userProvider:z,config:U}=X(b);await z.deleteSession({token:f});let C=new URL(i.rawRequest.url);return i.ctx().setCookie("access_token","",{expires:new Date(0),secure:!C.origin.includes("localhost"),httpOnly:!0}),await U.onSignOut($),{}}async forgotPassword(i=new p0){let $=(await i.input()).get("email").toLowerCase().trim(),{userProvider:z,config:U}=X(b),C=await z.findUserByEmailAddress($,U.verifyEmail);if(!C)return{};let j=await U.generateForgotPasswordToken(C);return await z.createPasswordResetToken({user:C,token:j}),await U.onForgotPassword(C,j),{}}async resetPassword(i=new y0){let{userProvider:f,config:$}=X(b),z=await i.input(),{password:U,token:C}=z.toJSON(),j=await f.findPasswordResetToken({token:C});if(!j)throw new p({token:["Invalid token"]});if(Li.Instant.from(j.createdAt.toISOString()).add({hours:24}).until(Li.Now.instant()).sign>=0)throw new p({token:["Token expired"]});await f.deletePasswordResetToken({token:C});let w=await f.findUserByEmailAddress(j.user.email,$.verifyEmail);if(!w)throw new p({email:["User not found"]});let W=await $.hashPassword(U);return await f.updateUserPassword({id:w.id,password:W}),await f.deleteAllUserSessions(w.id),await $.onResetPassword(w),{}}async changePassword(i=new V){let{userProvider:f,config:$}=X(b),z=await u.user(),U=await i.input(),{oldPassword:C,newPassword:j}=U.toJSON(),{password:O}=await f.findUserByEmailAddress(z.email,$.verifyEmail);if(!await $.verifyPassword(C,O))throw new p({oldPassword:["Incorrect password"]});let W=await $.hashPassword(j);return await f.updateUserPassword({id:z.id,password:W}),await f.deleteAllUserSessions(z.id),{}}async oauthRedirect(i=new V){let{provider:f}=i.params,$=X(b).config.oauthProviders[f];if(!$)throw Error(`Invalid provider: ${f}`);return{destination:await $.getRedirectUrl(i)}}async oauthCallback(i=new V){let{provider:f}=i.params,$=X(b),{userProvider:z,config:U}=$,C=U.oauthProviders[f],{email:j,name:O}=await C.onCallback(i);if(!j)return console.error("Authentication error: No email returned from OAuth provider callback"),{session:null};let w=await z.findUserByEmailAddress(j,!1),W=X(H).detectLocale(i),J="signin";if(!w)J="signup",w=await z.transaction(async()=>{let x=await z.createUser({email:j,name:O,locale:W,emailVerifiedAt:new Date});return await z.createSocialAccount({provider:f,userId:x.id,email:j,username:O,providerId:"",expiresAt:new Date,accessToken:"",refreshToken:""}),await U.onUserCreated(x),x});let Y=await $.createOrUpdateSessionV2({email:w.email,id:w.id}),I=new URL(i.rawRequest.url);if(i.ctx().setCookie("access_token",Y.token,{secure:!I.origin.includes("localhost"),httpOnly:!0,expires:Y.expiresAt}),J==="signup")await U.onSignUp(w,"",i.search.toJSON());else await U.onSignIn(w,i.search.toJSON());return{session:Y}}async createMagicLinkToken(i=new V){let $=(await i.input()).get("email").toLowerCase().trim(),z=X(b),{user:U,pin:C,token:j}=await z.createMagicLinkToken($);if(U)return await z.config.onMagicLinkCreated(U,{email:$,pin:C,token:j}),{email:$};return{email:null}}}class q0 extends di{middlewares=["cache:private"];routes={"/:provider":this.view("_Redirect",[M,"oauthRedirect"]),"/:provider/callback":this.view("auth/OauthCallback",[M,"oauthCallback"])}}class ui extends di{middlewares=["cache:private"];routes={"/sign-in/magic-link":this.view("auth/MagicLinkSignIn",[M,"signInWithMagicLink"]),"/oauth":q0}}class li extends y{middlewares=["cache:private"];routes={"/sign-in":this.post(M,"signIn"),"/sign-in-v2":this.post(M,"signInV2"),"/sign-up":this.post(M,"signUp"),"/sign-out":this.post(M,"signOut"),"/forgot-password":this.post(M,"forgotPassword"),"/reset-password":this.post(M,"resetPassword"),"/change-password":this.post(M,"changePassword"),"/verify-email":this.post(M,"verifyEmail"),"/me":this.get(M,"me").middleware(["auth"]),"/magic-link":this.post(M,"createMagicLinkToken"),"/sign-in-with-pin":this.post(M,"signInWithPin"),"/sign-in-with-pin-v2":this.post(M,"signInWithPinV2")}}class oi extends y{middlewares=["cache:private,0,no-store"];routes={"/set-locale/:locale":this.get(async()=>{let f=new V().params.locale;return await X(H).onLocaleChange(f),{locale:f}}),"/translations/:locale/:scope*":this.get(async()=>{let i=new V,f=`/${i.params.scope??""}`,$=i.params.locale,z=X(H),U=$??z.detectLocale(i),C=z.getPageTranslations(U,f);return i.ctx().setCookie("i18n-locale",U,{expires:new Date(Date.now()+31536000000)}),{[U]:C}})}}class ti{}class ri extends ti{async resize(i,f){let{height:$,width:z,quality:U,fit:C}=f;return await(await Wi("The Sharp image optimization driver"))(i).resize(z>0?z:void 0,$>0?$:void 0,{fit:C}).webp({quality:U>0?U:80,force:!0}).toBuffer()}}function a$(i){return i}function n0(){return{driver:new ri}}class ai extends y{routes={"/resize":this.file(async()=>{let i=new V,f=new URL(i.rawRequest.url),$=f.searchParams.get("url"),z=Number(f.searchParams.get("w")),U=Number(f.searchParams.get("h")),C=f.searchParams.get("fit")??"cover",j=Number(f.searchParams.get("q"));if(!$)return new Response(JSON.stringify({error:"url query parameter is required"}),{headers:{"Content-Type":"application/json"},status:404});let w=`${$.startsWith("http")?"":`http://localhost:${process.env.PORT||5173}`}${$}`,W=await fetch(w);if(!W.ok)return new Response(JSON.stringify({error:"Image not found",info:w}),{headers:{"Content-Type":"application/json"},status:404});let J=Buffer.from(await W.arrayBuffer()),Y=await X(s0).resize(J,{height:U,width:z,fit:C,quality:j});W.headers.delete("Content-Type"),W.headers.delete("Content-Length");let I=new Headers(W.headers);return I.set("Content-Type","image/webp"),I.set("Content-Length",`${Y.byteLength}`),new Response(new Uint8Array(Y),{headers:I})})}}class s0{static token="image";driver;constructor(i={}){this.driver=i.driver??n0().driver}resize(i,f){return this.driver.resize(i,f)}}import{mkdir as ei,readdir as z1,access as U1}from"fs/promises";async function i0(i){try{return await U1(i),!0}catch{return!1}}class Vi{config;static token="log";writer;isReady=!1;logsDirPath=`${process.env.ROOT_DIR}/storage/logs`;flushTimeout;fileSize=0;writerSize=0;isCreatingFile=!1;bootPromise=null;currentLogFilePath;constructor(i){this.config=i}boot(){if(!this.bootPromise)this.bootPromise=this.createStorage().then(()=>{this.isReady=!0});return this.bootPromise}async createStorage(){if(!process.env.ROOT_DIR)return;if(!await i0(`${process.env.ROOT_DIR}/storage`))await ei(`${process.env.ROOT_DIR}/storage`);if(!await i0(this.logsDirPath))await ei(this.logsDirPath);await this.newLogFile()}async newLogFile(){if(!await i0(this.logsDirPath))await ei(this.logsDirPath);if(this.isCreatingFile=!0,this.currentLogFilePath){this.writer.flush(),this.writer.end(),this.writer=null;let $=new File([await Bun.file(this.currentLogFilePath).arrayBuffer()],this.currentLogFilePath.split("/").pop(),{type:"text/plain"});this.config.onLogFileClosed($),this.fileSize=0,this.writerSize=0}let f=(await z1(this.logsDirPath)).sort().reverse()[0];if(f){let $=Bun.file(`${this.logsDirPath}/${f}`);if($.size<this.config.maxFileSize)this.currentLogFilePath=`${this.logsDirPath}/${f}`,this.writer=$.writer(),this.writer.write(await $.text()),this.writer.write(`
|
|
2
|
+
import{Cc as cf,Dc as b0,Ec as Pf,Fc as Rf,Mc as mf,Rc as yf}from"./chunk-g5pj95dz.js";import{ad as M0,xd as pf}from"./chunk-8v81dvje.js";import{Cd as Mf,Hd as _f}from"./chunk-n2zmg475.js";import{$d as H0,Id as R0,Kd as d0,Md as v0,Rd as Ni,Td as p,Ud as V,Xd as m0,Yd as bi,Zd as k0,_d as wi,ae as y,be as h,de as bf,ee as di,je as Li,ne as b,re as kf}from"./chunk-6fc909z5.js";import{ye as L}from"./chunk-qfzyym5h.js";import{ef as H}from"./chunk-1esnvq2z.js";import{ff as gi,if as X}from"./chunk-mqwrmbh4.js";import{pf as pi}from"./chunk-4f69ygc8.js";class E{static getFacadeAccessor(){throw Error(`Facade [${this.name}] does not implement getFacadeAccessor().`)}static getFacadeRoot(){return X(this.getFacadeAccessor())}}import{AsyncLocalStorage as ef}from"async_hooks";class mi{config;static token="broadcast";publishCb;context=new ef;constructor(i){this.config=i}get channels(){return this.config.channels}onPublish(i){this.publishCb=i}publish(...i){let[f,$,z]=i;this.publishCb(f,$,z)}async handleMessage(i,f){let $=JSON.parse(f);if($.type==="subscribe"){let z=Object.entries(this.channels).sort(([U],[C])=>U.length-C.length);for(let[U,C]of z){let j=new URLPattern({pathname:U});if(j.test({pathname:$.topic})){let O=j.exec({pathname:$.topic})?.pathname.groups,w=new C;if(await w.subscribe.call(w,O))i.subscribe($.topic);break}}}if($.type==="broadcast")i.publish($.topic,JSON.stringify({topic:$.topic,data:$.payload}));if($.type==="unsubscribe")i.unsubscribe($.topic)}run(i,f){let $=i.get("Cookie"),z=new Map;if($){let U=$.split(";");for(let C of U){let[j,O]=C.split("=");z.set(j.trim(),O.trim())}}this.context.run({headers:i,cookies:z},f)}}class Di extends E{static getFacadeAccessor(){return mi}static channel(i,f){let $=this.getFacadeRoot(),z=$.channels[i];if(!z)return console.error(`Channel ${i} not found`),{publish:()=>{}};let U=new z;return{publish:(C,j=!1)=>{let O=h(i,f);$.publish(O,JSON.stringify({topic:O,data:U.publish(C)}),j)}}}}class u extends E{static getFacadeAccessor(){return b}static async user(){let i=L.getStore(),f=Di.getFacadeRoot().context.getStore(),$="",z="";if(i?.req)$=i.req.cookies.get("access_token"),z=i.req.headers.get("User-Agent");if(f?.cookies)z=f.headers.get("User-Agent"),$=f.cookies.get("access_token");let U=i?.user;if(!U)U=(await this.getFacadeRoot().getSession($,z))?.user,i?.setUser(U);if(U)return U;throw new H0}static async guard(i){let f=await u.user();if(!f)throw new bi;try{if(!await i(f))throw new bi}catch($){throw new bi}}static async guardSafe(i){let f=await u.user();if(!f)return!1;try{return await i(f)}catch($){return!1}}static async authenticate(i){return await this.getFacadeRoot().authenticate(i)}static async createMagicLink(i){return await this.getFacadeRoot().createMagicLinkToken(i)}}class Ci extends E{static getFacadeAccessor(){return H}static getSupportedLocales(){return this.getFacadeRoot().supportedLocales}static getDefaultLocale(){return this.getFacadeRoot().defaultLocale}static locale(){let i=this.getFacadeRoot(),f=L.getStore();if(f)return f.locale??i.detectLocale(f.req);return i.defaultLocale}static setLocale(i=Ci.locale()){let f=this.getFacadeRoot(),$=i;if(!f.supportedLocales.includes(i))$=f.defaultLocale;let z=L.getStore();return z.setCookie("i18n-locale",$,{expires:new Date(Date.now()+31536000000),secure:!1,httpOnly:!1}),z.setLocale($),$}}import{Buffer as f1}from"buffer";async function Wi(i){try{return(await import("sharp")).default}catch(f){throw Error(`${i} requires the 'sharp' package. Install it with \`bun add sharp\`.`,{cause:f})}}class yi{async read(i){let f=typeof i==="string"?{name:i}:i,$=await this.fetch({name:f.name,bucket:f.bucket});if(!$.ok)throw new wi(f.name);let z=$.headers.get("Content-Type")??"application/octet-stream",U=$.headers.get("ETag")??void 0,C=$.headers.get("Last-Modified"),j=C?new Date(C):void 0;if(f.range){let W=await $.blob();return{body:W,start:0,end:W.size-1,total:W.size,partial:!1,type:z,etag:U,lastModified:j,name:f.name}}let O=Number($.headers.get("Content-Length")),w=Number.isFinite(O)?O:0;return{body:$.body,start:0,end:w-1,total:w,partial:!1,type:z,etag:U,lastModified:j,name:f.name}}async size(i){let f=typeof i==="string"?i:i.name,$=typeof i==="string"?void 0:i.bucket,z=await this.fetch({name:f,bucket:$});if(!z.ok)throw new wi(f);let U=Number(z.headers.get("Content-Length"));if(Number.isFinite(U))return await z.body?.cancel(),U;return(await z.blob()).size}}import{readdir as i1}from"fs/promises";class qi extends yi{folderPath;constructor(i=`${process.env.ROOT_DIR}/storage`){super();this.folderPath=i}async put(i){let f,$;if(i instanceof Blob)f=i,$=`${Bun.randomUUIDv7()}.${i.type.split("/")[1].split(";")[0]}`;else f=i.body,$=i.name;let z=f instanceof Buffer?f:f instanceof Blob||f instanceof File?Buffer.from(await f.arrayBuffer()):"",U=`${this.folderPath}/${$}`;return await Bun.write(U,z),$}async fetch(i){let f=process.env.BUCKET_NAME,$;if(typeof i==="string")$=i;else f=i.bucket??f,$=i.name;if(!$)throw Error("Object name has to be specified");let z=`${this.folderPath}/${$}`,U=Bun.file(z),C=Bun.file(z).stream(),j=new Date(U.lastModified).toUTCString();return new Response(C,{headers:{"Content-Type":U.type,"Content-Length":String(U.size),"Cache-Control":"private, max-age=12000, must-revalidate","Last-Modified":j}})}async read(i){let f=typeof i==="string"?{name:i}:i,{name:$,range:z=null}=f;if(!$)throw Error("Object name has to be specified");let U=Bun.file(`${this.folderPath}/${$}`);if(!await U.exists())throw new wi($);let C=U.size,j=z?v0(z,C):null;if(z&&!j)throw new k0(C);let O=j?.start??0,w=j?j.end:C-1;return{body:j?U.slice(O,w+1):U,start:O,end:w,total:C,partial:Boolean(j),type:U.type||"application/octet-stream",lastModified:new Date(U.lastModified),name:$}}async size(i){let f=typeof i==="string"?i:i.name,$=Bun.file(`${this.folderPath}/${f}`);if(!await $.exists())throw new wi(f);return $.size}async list(){return await i1(this.folderPath)}}function x$(i){return i}function h0(){return{driver:new qi}}class ni{static token="filesystem";driver;constructor(i={}){this.driver=i.driver??h0().driver}}class c0 extends E{static getFacadeAccessor(){return ni}static async put(i){return this.getFacadeRoot().driver.put(i)}static async metadata(i){let f=f1.from(await i.arrayBuffer()),$=await Wi("Storage.metadata()");try{return await $(f).metadata()}catch{return{}}}static async fetch(i){return this.getFacadeRoot().driver.fetch(i)}static async read(i,f={}){let $=typeof i==="string"?{name:i}:{...i},z="range"in f?f.range??null:$.range!==void 0?$.range:L.getStore()?.rangeRequest??null;return this.getFacadeRoot().driver.read({...$,range:z})}static list(i){return this.getFacadeRoot().driver.list(i)}static delete(){}}function P0(i){return Object.fromEntries(Object.entries(i).filter(([,f])=>{return f!==null&&f!==void 0}))}var $1=50;class Ji{fetcher;entries=new Map;settleListener=null;failListener=null;shellAt=null;settledBacklog=[];shipped=new Set;requestStartedAt=performance.now();renderStartedAt=null;discoveryHintsMuted=!1;constructor(i){this.fetcher=i}elapsed(){return Math.round(performance.now()-this.requestStartedAt)}keyFor(i,f){return[i,f].filter(($)=>$.length>0).join("?")}markRenderStart(){if(this.renderStartedAt===null)this.renderStartedAt=performance.now()}markShell(){if(this.shellAt===null)this.shellAt=this.elapsed()}summarize(i){let f=this.elapsed();return{shellAt:this.shellAt??f,settledAt:f,aborted:i,queries:Array.from(this.entries.values(),($)=>({path:$.path,variantKey:$.variantKey,startedAt:$.startedAt,settledAt:$.settledAt,status:$.status,source:$.source}))}}onQueryFail(i){this.failListener=i}muteDiscoveryHints(){this.discoveryHintsMuted=!0}maybeLogLateDiscovery(i){if(!i.lateBy||this.discoveryHintsMuted)return;if(i.status!=="resolved")return;if(Bun.env.NODE_ENV==="production")return;let f="";try{let U=JSON.stringify(i.data)?.length??0;f=U>=1024?`${(U/1024).toFixed(1)} kB`:`${U} B`}catch{f="an unserializable payload"}let $=(i.settledAt??0)-i.startedAt,z=i.variantKey?`, { search: ${JSON.stringify(Object.fromEntries(new URLSearchParams(i.variantKey)))} }`:"";console.warn(`[gemi] useQuery("${i.patternPath}") was discovered ${i.lateBy}ms into the `+`server render \u2014 under a suspended segment, so its fetch (${$}ms, resolved ${f}) could not overlap the others. It still streamed. If the query belongs on this route, \`Query.prefetch("${i.patternPath}"${z})\` in the view `+"handler starts it at request time \u2014 but note prefetched data is also re-fetched and "+`streamed into every client-side navigation payload for the route, even when the client already holds it, so weigh that bandwidth against the ${f}. If the data is only needed conditionally (a closed popover, a hidden tab), \`{ lazy: true }\` + \`trigger()\` avoids running it here at all. \`Query.noPrefetch()\` in the handler marks the omission intentional and silences this hint for the route.`)}read(i,f){return this.entries.get(this.keyFor(i,f))}ensure(i,f={},$="render"){let z=f.params??{},U=new URLSearchParams(P0(f.search??{}));U.delete("json"),U.sort();let C=h(i,z),j=U.toString(),O=this.keyFor(C,j),w=this.entries.get(O);if(w)return w;let W;if($==="render"&&this.renderStartedAt!==null){let x=Math.round(performance.now()-this.renderStartedAt);if(x>$1)W=x}let J,Y=new Promise((x)=>{J=x}),I={path:C,patternPath:i,variantKey:j,lateBy:W,status:"pending",promise:Y,source:$,startedAt:this.elapsed()};return this.entries.set(O,I),this.fetcher(i,z,U).then((x)=>{I.status="resolved",I.data=x},(x)=>{I.status="rejected",I.error=x}).then(()=>{if(I.settledAt=this.elapsed(),this.maybeLogLateDiscovery(I),I.status==="rejected"&&this.failListener)this.failListener(I);if(this.settleListener)this.settleListener(I);else this.settledBacklog.push(I);J()}),I}async allSettled(){let i=0;while(i!==this.entries.size)i=this.entries.size,await Promise.all(Array.from(this.entries.values(),(f)=>f.promise))}snapshotResolved(){let i={};for(let[f,$]of this.entries){if($.status!=="resolved")continue;this.shipped.add(f),i[$.path]??={},i[$.path][$.variantKey]=$.data}return i}onSettle(i){this.settleListener=($)=>{if(this.shipped.has(this.keyFor($.path,$.variantKey)))return;i($)};let f=this.settledBacklog;this.settledBacklog=[];for(let $ of f)this.settleListener($)}}class Ki extends Error{path;variantKey;status;body;constructor(i,f,$,z){super(typeof z?.message==="string"?z.message:`Request to /api${i} failed with status ${$}`);this.path=i;this.variantKey=f;this.status=$;this.body=z;this.name="QueryError"}}class si extends V{schema={email:{required:"Email is required",string:"Invalid email",email:"Invalid email"},password:{required:"Password is required"}}}class p0 extends V{schema={email:{required:"Email is required",email:"Invalid email"}}}class y0 extends V{schema={password:{required:"Password is required",password:"Invalid password"}}}class M extends R0{async me(){let i=await u.user();if(!i)throw new m0;return i}async verifyEmail(i=new V){let f=await i.input(),{userProvider:$}=X(b),z=await $.findUserByVerificationToken(f.get("token"));if(!z)return{email:null};return await $.verifyUser(z.email),{email:z.email}}async signInWithMagicLink(i=new V){let f=X(b),{userProvider:$}=f,z=i.search.get("token"),U=decodeURIComponent(i.search.get("email")).toLowerCase().trim(),C=null;try{C=await $.findUserMagicLinkToken({email:U,token:z})}catch(w){return console.log(w),{error:JSON.stringify(w)}}if(!C)return{error:"Invalid token"};await $.verifyUser(U),await $.deleteMagicLinkToken(U);let j=await f.createOrUpdateSession({email:U}),O=new URL(i.rawRequest.url);return i.ctx().setCookie("access_token",j.token,{expires:j.expiresAt,secure:!O.origin.includes("localhost"),httpOnly:!0}),await f.config.onSignIn(j,i.search.toJSON()),{session:j}}async signInWithPinV2(i=new V){let f=X(b),{userProvider:$}=f,z=await i.input(),{email:U,pin:C}=z.toJSON(),j=U.toLowerCase().trim();if(!await $.findUserMagicLinkToken({email:j,pin:C}))throw new p({pin:["Invalid pin"]});await $.deleteMagicLinkToken(j),await $.verifyUser(j);let w=await f.createOrUpdateSessionV2({email:j}),W=new URL(i.rawRequest.url);return i.ctx().setCookie("access_token",w.token,{expires:w.expiresAt,secure:!W.origin.includes("localhost"),httpOnly:!0}),await f.config.onSignIn(w,i.search.toJSON()),w}async signInWithPin(i=new V){let f=X(b),{userProvider:$}=f,z=await i.input(),{email:U,pin:C}=z.toJSON(),j=U.toLowerCase().trim();if(!await $.findUserMagicLinkToken({email:j,pin:C}))throw new p({pin:["Invalid pin"]});await $.deleteMagicLinkToken(j),await $.verifyUser(j);let w=await f.createOrUpdateSession({email:j}),W=new URL(i.rawRequest.url);return i.ctx().setCookie("access_token",w.token,{expires:w.expiresAt,secure:!W.origin.includes("localhost"),httpOnly:!0}),await f.config.onSignIn(w,i.search.toJSON()),{session:w}}async signInV2(i=new si){let f=new URL(i.rawRequest.url),$=await i.input(),{email:z,password:U}=$.toJSON(),C=z.toLowerCase().trim(),j=X(b),O=await j.userProvider.findUserByEmailAddress(C,j.config.verifyEmail);if(!O)throw new p({invalid_credentials:["Invalid credentials"]});if(!await j.config.verifyPassword(U,O.password))throw new p({invalid_credentials:["Invalid credentials"]});let W=await j.createOrUpdateSessionV2({email:O.email,id:O.id});i.ctx().setCookie("access_token",W.token,{expires:W.expiresAt,secure:!f.origin.includes("localhost"),httpOnly:!0}),await j.config.onSignIn(O,i.search.toJSON());let{password:J,...Y}=O;return Y}async signIn(i=new si){let f=await i.input(),{email:$,password:z}=f.toJSON(),U=$.toLowerCase().trim(),C=X(b),j=await C.userProvider.findUserByEmailAddress(U,C.config.verifyEmail);if(!j)throw new p({invalid_credentials:["Invalid credentials"]});if(!await C.config.verifyPassword(z,j.password))throw new p({invalid_credentials:["Invalid credentials"]});let w=await C.createOrUpdateSession({email:j.email,id:j.id}),W=new URL(i.rawRequest.url);i.ctx().setCookie("access_token",w.token,{expires:w.expiresAt,secure:!W.origin.includes("localhost"),httpOnly:!0}),await C.config.onSignIn(j,i.search.toJSON());let{password:J,...Y}=j;return Y}async signUp(){let i=X(b),{userProvider:f,config:$}=i,z=new $.signUpRequest,U=await z.input(),{email:C,password:j,name:O,invitationId:w}=U.toJSON(),W=C.toLowerCase().trim();if(await f.findUserByEmailAddress(W,!1))throw new p({email:["Email address already exists"]});let Y=await $.hashPassword(j),I=X(H).detectLocale(z),x;if(w)x=await f.findInvitation(w,W);let B,T="";if(x)B=await f.transaction(async()=>{await f.deleteInvitationById(w);let F=await f.createUser({email:W,name:O,password:Y,emailVerifiedAt:new Date,locale:I});return await f.createAccount({organizationId:x.organizationId,userId:F.id,organizationRole:x.role}),await $.onUserCreated(F),F});else T=await $.generateEmailVerificationToken(W),B=await f.transaction(async()=>{let F=await f.createUser({email:W,name:O,password:Y,verificationToken:T,locale:I});return await $.onUserCreated(F),F});return await $.onSignUp(B,T,z.search.toJSON()),B}async signOut(i=new V){let f=i.cookies.get("access_token"),$=await u.user(),{userProvider:z,config:U}=X(b);await z.deleteSession({token:f});let C=new URL(i.rawRequest.url);return i.ctx().setCookie("access_token","",{expires:new Date(0),secure:!C.origin.includes("localhost"),httpOnly:!0}),await U.onSignOut($),{}}async forgotPassword(i=new p0){let $=(await i.input()).get("email").toLowerCase().trim(),{userProvider:z,config:U}=X(b),C=await z.findUserByEmailAddress($,U.verifyEmail);if(!C)return{};let j=await U.generateForgotPasswordToken(C);return await z.createPasswordResetToken({user:C,token:j}),await U.onForgotPassword(C,j),{}}async resetPassword(i=new y0){let{userProvider:f,config:$}=X(b),z=await i.input(),{password:U,token:C}=z.toJSON(),j=await f.findPasswordResetToken({token:C});if(!j)throw new p({token:["Invalid token"]});if(Li.Instant.from(j.createdAt.toISOString()).add({hours:24}).until(Li.Now.instant()).sign>=0)throw new p({token:["Token expired"]});await f.deletePasswordResetToken({token:C});let w=await f.findUserByEmailAddress(j.user.email,$.verifyEmail);if(!w)throw new p({email:["User not found"]});let W=await $.hashPassword(U);return await f.updateUserPassword({id:w.id,password:W}),await f.deleteAllUserSessions(w.id),await $.onResetPassword(w),{}}async changePassword(i=new V){let{userProvider:f,config:$}=X(b),z=await u.user(),U=await i.input(),{oldPassword:C,newPassword:j}=U.toJSON(),{password:O}=await f.findUserByEmailAddress(z.email,$.verifyEmail);if(!await $.verifyPassword(C,O))throw new p({oldPassword:["Incorrect password"]});let W=await $.hashPassword(j);return await f.updateUserPassword({id:z.id,password:W}),await f.deleteAllUserSessions(z.id),{}}async oauthRedirect(i=new V){let{provider:f}=i.params,$=X(b).config.oauthProviders[f];if(!$)throw Error(`Invalid provider: ${f}`);return{destination:await $.getRedirectUrl(i)}}async oauthCallback(i=new V){let{provider:f}=i.params,$=X(b),{userProvider:z,config:U}=$,C=U.oauthProviders[f],{email:j,name:O}=await C.onCallback(i);if(!j)return console.error("Authentication error: No email returned from OAuth provider callback"),{session:null};let w=await z.findUserByEmailAddress(j,!1),W=X(H).detectLocale(i),J="signin";if(!w)J="signup",w=await z.transaction(async()=>{let x=await z.createUser({email:j,name:O,locale:W,emailVerifiedAt:new Date});return await z.createSocialAccount({provider:f,userId:x.id,email:j,username:O,providerId:"",expiresAt:new Date,accessToken:"",refreshToken:""}),await U.onUserCreated(x),x});let Y=await $.createOrUpdateSessionV2({email:w.email,id:w.id}),I=new URL(i.rawRequest.url);if(i.ctx().setCookie("access_token",Y.token,{secure:!I.origin.includes("localhost"),httpOnly:!0,expires:Y.expiresAt}),J==="signup")await U.onSignUp(w,"",i.search.toJSON());else await U.onSignIn(w,i.search.toJSON());return{session:Y}}async createMagicLinkToken(i=new V){let $=(await i.input()).get("email").toLowerCase().trim(),z=X(b),{user:U,pin:C,token:j}=await z.createMagicLinkToken($);if(U)return await z.config.onMagicLinkCreated(U,{email:$,pin:C,token:j}),{email:$};return{email:null}}}class q0 extends di{middlewares=["cache:private"];routes={"/:provider":this.view("_Redirect",[M,"oauthRedirect"]),"/:provider/callback":this.view("auth/OauthCallback",[M,"oauthCallback"])}}class ui extends di{middlewares=["cache:private"];routes={"/sign-in/magic-link":this.view("auth/MagicLinkSignIn",[M,"signInWithMagicLink"]),"/oauth":q0}}class li extends y{middlewares=["cache:private"];routes={"/sign-in":this.post(M,"signIn"),"/sign-in-v2":this.post(M,"signInV2"),"/sign-up":this.post(M,"signUp"),"/sign-out":this.post(M,"signOut"),"/forgot-password":this.post(M,"forgotPassword"),"/reset-password":this.post(M,"resetPassword"),"/change-password":this.post(M,"changePassword"),"/verify-email":this.post(M,"verifyEmail"),"/me":this.get(M,"me").middleware(["auth"]),"/magic-link":this.post(M,"createMagicLinkToken"),"/sign-in-with-pin":this.post(M,"signInWithPin"),"/sign-in-with-pin-v2":this.post(M,"signInWithPinV2")}}class oi extends y{middlewares=["cache:private,0,no-store"];routes={"/set-locale/:locale":this.get(async()=>{let f=new V().params.locale;return await X(H).onLocaleChange(f),{locale:f}}),"/translations/:locale/:scope*":this.get(async()=>{let i=new V,f=`/${i.params.scope??""}`,$=i.params.locale,z=X(H),U=$??z.detectLocale(i),C=z.getPageTranslations(U,f);return i.ctx().setCookie("i18n-locale",U,{expires:new Date(Date.now()+31536000000)}),{[U]:C}})}}class ti{}class ri extends ti{async resize(i,f){let{height:$,width:z,quality:U,fit:C}=f;return await(await Wi("The Sharp image optimization driver"))(i).resize(z>0?z:void 0,$>0?$:void 0,{fit:C}).webp({quality:U>0?U:80,force:!0}).toBuffer()}}function a$(i){return i}function n0(){return{driver:new ri}}class ai extends y{routes={"/resize":this.file(async()=>{let i=new V,f=new URL(i.rawRequest.url),$=f.searchParams.get("url"),z=Number(f.searchParams.get("w")),U=Number(f.searchParams.get("h")),C=f.searchParams.get("fit")??"cover",j=Number(f.searchParams.get("q"));if(!$)return new Response(JSON.stringify({error:"url query parameter is required"}),{headers:{"Content-Type":"application/json"},status:404});let w=`${$.startsWith("http")?"":`http://localhost:${process.env.PORT||5173}`}${$}`,W=await fetch(w);if(!W.ok)return new Response(JSON.stringify({error:"Image not found",info:w}),{headers:{"Content-Type":"application/json"},status:404});let J=Buffer.from(await W.arrayBuffer()),Y=await X(s0).resize(J,{height:U,width:z,fit:C,quality:j});W.headers.delete("Content-Type"),W.headers.delete("Content-Length");let I=new Headers(W.headers);return I.set("Content-Type","image/webp"),I.set("Content-Length",`${Y.byteLength}`),new Response(new Uint8Array(Y),{headers:I})})}}class s0{static token="image";driver;constructor(i={}){this.driver=i.driver??n0().driver}resize(i,f){return this.driver.resize(i,f)}}import{mkdir as ei,readdir as z1,access as U1}from"fs/promises";async function i0(i){try{return await U1(i),!0}catch{return!1}}class Vi{config;static token="log";writer;isReady=!1;logsDirPath=`${process.env.ROOT_DIR}/storage/logs`;flushTimeout;fileSize=0;writerSize=0;isCreatingFile=!1;bootPromise=null;currentLogFilePath;constructor(i){this.config=i}boot(){if(!this.bootPromise)this.bootPromise=this.createStorage().then(()=>{this.isReady=!0});return this.bootPromise}async createStorage(){if(!process.env.ROOT_DIR)return;if(!await i0(`${process.env.ROOT_DIR}/storage`))await ei(`${process.env.ROOT_DIR}/storage`);if(!await i0(this.logsDirPath))await ei(this.logsDirPath);await this.newLogFile()}async newLogFile(){if(!await i0(this.logsDirPath))await ei(this.logsDirPath);if(this.isCreatingFile=!0,this.currentLogFilePath){this.writer.flush(),this.writer.end(),this.writer=null;let $=new File([await Bun.file(this.currentLogFilePath).arrayBuffer()],this.currentLogFilePath.split("/").pop(),{type:"text/plain"});this.config.onLogFileClosed($),this.fileSize=0,this.writerSize=0}let f=(await z1(this.logsDirPath)).sort().reverse()[0];if(f){let $=Bun.file(`${this.logsDirPath}/${f}`);if($.size<this.config.maxFileSize)this.currentLogFilePath=`${this.logsDirPath}/${f}`,this.writer=$.writer(),this.writer.write(await $.text()),this.writer.write(`
|
|
3
3
|
`),this.writer.flush(),this.fileSize=$.size}if(!this.writer){let $=`${new Date(Date.now()).toISOString()}.log`.replaceAll(":","-");this.currentLogFilePath=`${this.logsDirPath}/${$}`;let z=Bun.file(`${this.logsDirPath}/${$}`);this.writer=z.writer(),this.fileSize=0,this.writerSize=0}this.isCreatingFile=!1}async log(i,f,$={}){if(!this.isReady)await this.boot();let z=L.getStore(),U={};if(z)U={url:z.req.rawRequest.url,method:z.req.rawRequest.method,headers:z.req.rawRequest.headers,body:z.req.rawRequest.body};let C={timestamp:new Date(Date.now()).toISOString(),env:Bun.env.NODE_ENV,level:i,message:f,metadata:{...U,...$}},j="";try{j=JSON.stringify(C)}catch(O){console.log("Error parsing log object",O)}this.writerSize+=j.length,this.fileSize+=j.length;try{this.writer.write(j),this.writer.write(`
|
|
4
4
|
`),this.config.onLogCreated(C),this.tryFlush()}catch(O){console.error("Error writing log",O)}}async tryFlush(){if(this.fileSize>this.config.maxFileSize){if(!this.isCreatingFile)await this.newLogFile()}if(this.writerSize>this.config.maxFileSize/2)await this.writer.flush(),this.writerSize=0,await this.newLogFile();else clearTimeout(this.flushTimeout),this.flushTimeout=setTimeout(async()=>{await this.writer.flush(),this.writerSize=0},100)}}class f0 extends y{middlewares=["cache:private,0"];routes={"/live":this.get(async()=>{let i=Bun.file(X(Vi).currentLogFilePath);return new Response(await i.text(),{headers:{"Content-Type":"text/plain"}})})}}function O1(i){let f=new Map;for(let $ of i)if(typeof $==="string"){let[z,U=""]=$.split(":");if(z.startsWith("-")){if(f.has(z.replace("-","")))f.delete(z.replace("-",""))}else f.set(z,U.split(",").filter(Boolean))}else f.set($,[]);return f}class Ti{config;static token="middleware";constructor(i){this.config=i}get aliases(){return this.config.aliases}runMiddleware(i){let f=new V;return Array.from(O1(i).entries()).map(([$,z])=>{if(typeof $==="string"){let U=this.aliases[$];if(U){let C=new U(f);return()=>C.run.call(C,...z)}}else{if(d0($)){let U=new $(f);return U.run.bind(U)}return $}}).filter(Boolean).reduce(($,z)=>{return async()=>{return{...await $(),...await z()}}},()=>Promise.resolve({}))()}}function X3(i){return i}function u0(){return{onRequestStart:()=>{},onRequestEnd:()=>{},onRequestFail:()=>{}}}function l0(){return{partialRendering:!0,onRequestStart:()=>{},onRequestEnd:()=>{},onRequestFail:()=>{},onStreamComplete:()=>{}}}function j1(i){return"run"in i}function C1(i){return Object.hasOwn(i,"get")||Object.hasOwn(i,"post")||Object.hasOwn(i,"put")||Object.hasOwn(i,"delete")}function W1(i){return Object.hasOwn(i,"first")&&Object.hasOwn(i,"second")}function w1(i){if("__brand"in i)return i.__brand==="ApiRouter";return!1}function J1(i){if("__internal_brand"in i)return i.__internal_brand==="ProxyHandler";return!1}function I1(i){if("__internal_brand"in i)return i.__internal_brand==="StreamHandler";return!1}function $0(i,f="",$=[]){let z={};function U(C,j,O,w){let W=C==="/"?"":C,J=f==="/"?"":f,Y=(`${J}${W}`===""?"/":`${J}${W}`).replaceAll("//","/");if(!z[Y])z[Y]={};z[Y][j.toUpperCase()]={exec:O,middleware:[...$,...w]},z[Y].OPTIONS={exec:()=>{let x=new V().ctx().headers;return new Response(null,{headers:x,status:204})},middleware:[]}}for(let[C,j]of Object.entries(i)){if(J1(j)){let O=j;for(let w of["GET","POST","PUT","DELETE"])U(C,w,O.run.bind(O),[]);continue}if(j1(j)){let O=j,w=O.method,W=O.middlewares,J=O.run.bind(O);if(U(C,w,J,W),I1(j))U(C,"HEAD",J,W)}if(C1(j))for(let[O,w]of Object.entries(j)){let W=w.middlewares,J=w.run.bind(w);U(C,O,J,W)}if(w1(j)){let O=new j,w=$0(O.routes,`${f}${C}`,O.middlewares);for(let[W,J]of Object.entries(w))z[W.replaceAll("//","/")]=J}if(W1(j)){let{first:O,second:w}=j;for(let[W,J]of Object.entries(O)){let Y=J.middlewares,I=J.run.bind(J),[x,...B]=C.split("/").reverse();if(!x.startsWith(":"))throw Error("Resource route must end with a dynamic segment");U(B.reverse().join("/"),W,I,Y)}for(let[W,J]of Object.entries(w)){let Y=J.middlewares,I=J.run.bind(J);U(C,W,I,Y)}}}return Object.fromEntries(Object.entries(z).sort(([C],[j])=>{let O=C.split("/").length+C.split(":").length,w=j.split("/").length+j.split(":").length;return O-w}))}function Mi(i){return i.replace(/\([^)]*\)/g,"").replace(/\/\//g,"/")}function z0(i,f){if(i==="/")return f;if(f==="/")return i;return`${i}${f}`}function U0(i){let f=Mi(i);return f.length>1?f.replace(/\/$/,""):f}function o0(i,f){return f.map(($)=>({...$,path:U0(z0(i,$.path))}))}function _i(i){let f={};for(let[$,z]of Object.entries(i))if("run"in z){let U=z;if("children"in U){let C=new U.children,j=_i(C.routes);for(let[O,{exec:w,middleware:W,segments:J}]of Object.entries(j)){let Y=z0($,O),I=(x)=>U.run.call(U,x,$);f[Mi(Y)]={exec:[I,...w],middleware:[...U.middlewares,...W],viewPath:U.viewPath,segments:[{path:U0($),viewPath:U.viewPath,...U.alwaysRuns?{alwaysRun:!0}:{}},...o0($,J)]}}}else{let C=(j)=>U.run.call(U,j,$);f[Mi($)]={exec:[C],middleware:U.middlewares,viewPath:U.viewPath,segments:[{path:U0($),viewPath:U.viewPath}]}}}else{let U=new z,C=_i(U.routes);for(let[j,{exec:O,middleware:w,viewPath:W,segments:J}]of Object.entries(C)){let Y=z0($,j);f[Mi(Y)]={exec:O,middleware:[...U.middlewares,...w],viewPath:W,segments:o0($,J)}}}return Object.fromEntries(Object.entries(f).sort(([$],[z])=>{let U=$.split("/").length+$.split(":").length,C=z.split("/").length+z.split(":").length;return U-C}))}var Y1=Object.defineProperty,Z=(i,f)=>Y1(i,"name",{value:f,configurable:!0}),Zi=class{type=3;name="";prefix="";value="";suffix="";modifier=3;constructor(i,f,$,z,U,C){this.type=i,this.name=f,this.prefix=$,this.value=z,this.suffix=U,this.modifier=C}hasCustomName(){return this.name!==""&&typeof this.name!="number"}};Z(Zi,"Part");var Z1=/[$_\p{ID_Start}]/u,x1=/[$_\u200C\u200D\p{ID_Continue}]/u,j0=".*";function t0(i,f){return(f?/^[\x00-\xFF]*$/:/^[\x00-\x7F]*$/).test(i)}Z(t0,"isASCII");function w0(i,f=!1){let $=[],z=0;for(;z<i.length;){let U=i[z],C=Z(function(j){if(!f)throw TypeError(j);$.push({type:"INVALID_CHAR",index:z,value:i[z++]})},"ErrorOrInvalid");if(U==="*"){$.push({type:"ASTERISK",index:z,value:i[z++]});continue}if(U==="+"||U==="?"){$.push({type:"OTHER_MODIFIER",index:z,value:i[z++]});continue}if(U==="\\"){$.push({type:"ESCAPED_CHAR",index:z++,value:i[z++]});continue}if(U==="{"){$.push({type:"OPEN",index:z,value:i[z++]});continue}if(U==="}"){$.push({type:"CLOSE",index:z,value:i[z++]});continue}if(U===":"){let j="",O=z+1;for(;O<i.length;){let w=i.substr(O,1);if(O===z+1&&Z1.test(w)||O!==z+1&&x1.test(w)){j+=i[O++];continue}break}if(!j){C(`Missing parameter name at ${z}`);continue}$.push({type:"NAME",index:z,value:j}),z=O;continue}if(U==="("){let j=1,O="",w=z+1,W=!1;if(i[w]==="?"){C(`Pattern cannot start with "?" at ${w}`);continue}for(;w<i.length;){if(!t0(i[w],!1)){C(`Invalid character '${i[w]}' at ${w}.`),W=!0;break}if(i[w]==="\\"){O+=i[w++]+i[w++];continue}if(i[w]===")"){if(j--,j===0){w++;break}}else if(i[w]==="("&&(j++,i[w+1]!=="?")){C(`Capturing groups are not allowed at ${w}`),W=!0;break}O+=i[w++]}if(W)continue;if(j){C(`Unbalanced pattern at ${z}`);continue}if(!O){C(`Missing pattern at ${z}`);continue}$.push({type:"REGEX",index:z,value:O}),z=w;continue}$.push({type:"CHAR",index:z,value:i[z++]})}return $.push({type:"END",index:z,value:""}),$}Z(w0,"lexer");function J0(i,f={}){let $=w0(i);f.delimiter??="/#?",f.prefixes??="./";let z=`[^${P(f.delimiter)}]+?`,U=[],C=0,j=0,O="",w=new Set,W=Z((g)=>{if(j<$.length&&$[j].type===g)return $[j++].value},"tryConsume"),J=Z(()=>W("OTHER_MODIFIER")??W("ASTERISK"),"tryConsumeModifier"),Y=Z((g)=>{let G=W(g);if(G!==void 0)return G;let{type:N,index:R}=$[j];throw TypeError(`Unexpected ${N} at ${R}, expected ${g}`)},"mustConsume"),I=Z(()=>{let g="",G;for(;G=W("CHAR")??W("ESCAPED_CHAR");)g+=G;return g},"consumeText"),x=Z((g)=>g,"DefaultEncodePart"),B=f.encodePart||x,T="",F=Z((g)=>{T+=g},"appendToPendingFixedValue"),D=Z(()=>{T.length&&(U.push(new Zi(3,"","",B(T),"",3)),T="")},"maybeAddPartFromPendingFixedValue"),n=Z((g,G,N,R,S)=>{let Q=3;switch(S){case"?":Q=1;break;case"*":Q=0;break;case"+":Q=2;break}if(!G&&!N&&Q===3){F(g);return}if(D(),!G&&!N){if(!g)return;U.push(new Zi(3,"","",B(g),"",Q));return}let K;N?N==="*"?K=j0:K=N:K=z;let c=2;K===z?(c=1,K=""):K===j0&&(c=0,K="");let _;if(G?_=G:N&&(_=C++),w.has(_))throw TypeError(`Duplicate name '${_}'.`);w.add(_),U.push(new Zi(c,_,B(g),K,B(R),Q))},"addPart");for(;j<$.length;){let g=W("CHAR"),G=W("NAME"),N=W("REGEX");if(!G&&!N&&(N=W("ASTERISK")),G||N){let S=g??"";f.prefixes.indexOf(S)===-1&&(F(S),S=""),D();let Q=J();n(S,G,N,"",Q);continue}let R=g??W("ESCAPED_CHAR");if(R){F(R);continue}if(W("OPEN")){let S=I(),Q=W("NAME"),K=W("REGEX");!Q&&!K&&(K=W("ASTERISK"));let c=I();Y("CLOSE");let _=J();n(S,Q,K,c,_);continue}D(),Y("END")}return U}Z(J0,"parse");function P(i){return i.replace(/([.+*?^${}()[\]|/\\])/g,"\\$1")}Z(P,"escapeString");function C0(i){return i&&i.ignoreCase?"ui":"u"}Z(C0,"flags");function r0(i,f,$){return I0(J0(i,$),f,$)}Z(r0,"stringToRegexp");function e(i){switch(i){case 0:return"*";case 1:return"?";case 2:return"+";case 3:return""}}Z(e,"modifierToString");function I0(i,f,$={}){$.delimiter??="/#?",$.prefixes??="./",$.sensitive??=!1,$.strict??=!1,$.end??=!0,$.start??=!0,$.endsWith="";let z=$.start?"^":"";for(let O of i){if(O.type===3){O.modifier===3?z+=P(O.value):z+=`(?:${P(O.value)})${e(O.modifier)}`;continue}f&&f.push(O.name);let w=`[^${P($.delimiter)}]+?`,W=O.value;if(O.type===1?W=w:O.type===0&&(W=j0),!O.prefix.length&&!O.suffix.length){O.modifier===3||O.modifier===1?z+=`(${W})${e(O.modifier)}`:z+=`((?:${W})${e(O.modifier)})`;continue}if(O.modifier===3||O.modifier===1){z+=`(?:${P(O.prefix)}(${W})${P(O.suffix)})`,z+=e(O.modifier);continue}z+=`(?:${P(O.prefix)}`,z+=`((?:${W})(?:`,z+=P(O.suffix),z+=P(O.prefix),z+=`(?:${W}))*)${P(O.suffix)})`,O.modifier===0&&(z+="?")}let U=`[${P($.endsWith)}]|$`,C=`[${P($.delimiter)}]`;if($.end)return $.strict||(z+=`${C}?`),$.endsWith.length?z+=`(?=${U})`:z+="$",new RegExp(z,C0($));$.strict||(z+=`(?:${C}(?=${U}))?`);let j=!1;if(i.length){let O=i[i.length-1];O.type===3&&O.modifier===3&&(j=$.delimiter.indexOf(O)>-1)}return j||(z+=`(?=${C}|${U})`),new RegExp(z,C0($))}Z(I0,"partsToRegexp");var o={delimiter:"",prefixes:"",sensitive:!0,strict:!0},X1={delimiter:".",prefixes:"",sensitive:!0,strict:!0},g1={delimiter:"/",prefixes:"/",sensitive:!0,strict:!0};function a0(i,f){return i.length?i[0]==="/"?!0:!f||i.length<2?!1:(i[0]=="\\"||i[0]=="{")&&i[1]=="/":!1}Z(a0,"isAbsolutePathname");function Y0(i,f){return i.startsWith(f)?i.substring(f.length,i.length):i}Z(Y0,"maybeStripPrefix");function e0(i,f){return i.endsWith(f)?i.substr(0,i.length-f.length):i}Z(e0,"maybeStripSuffix");function Z0(i){return!i||i.length<2?!1:i[0]==="["||(i[0]==="\\"||i[0]==="{")&&i[1]==="["}Z(Z0,"treatAsIPv6Hostname");var ff=["ftp","file","http","https","ws","wss"];function x0(i){if(!i)return!0;for(let f of ff)if(i.test(f))return!0;return!1}Z(x0,"isSpecialScheme");function $f(i,f){if(i=Y0(i,"#"),f||i==="")return i;let $=new URL("https://example.com");return $.hash=i,$.hash?$.hash.substring(1,$.hash.length):""}Z($f,"canonicalizeHash");function zf(i,f){if(i=Y0(i,"?"),f||i==="")return i;let $=new URL("https://example.com");return $.search=i,$.search?$.search.substring(1,$.search.length):""}Z(zf,"canonicalizeSearch");function Uf(i,f){return f||i===""?i:Z0(i)?B0(i):g0(i)}Z(Uf,"canonicalizeHostname");function Of(i,f){if(f||i==="")return i;let $=new URL("https://example.com");return $.password=i,$.password}Z(Of,"canonicalizePassword");function jf(i,f){if(f||i==="")return i;let $=new URL("https://example.com");return $.username=i,$.username}Z(jf,"canonicalizeUsername");function Cf(i,f,$){if($||i==="")return i;if(f&&!ff.includes(f))return new URL(`${f}:${i}`).pathname;let z=i[0]=="/";return i=new URL(z?i:"/-"+i,"https://example.com").pathname,z||(i=i.substring(2,i.length)),i}Z(Cf,"canonicalizePathname");function Wf(i,f,$){return X0(f)===i&&(i=""),$||i===""?i:G0(i)}Z(Wf,"canonicalizePort");function wf(i,f){return i=e0(i,":"),f||i===""?i:Si(i)}Z(wf,"canonicalizeProtocol");function X0(i){switch(i){case"ws":case"http":return"80";case"wws":case"https":return"443";case"ftp":return"21";default:return""}}Z(X0,"defaultPortForProtocol");function Si(i){if(i==="")return i;if(/^[-+.A-Za-z0-9]*$/.test(i))return i.toLowerCase();throw TypeError(`Invalid protocol '${i}'.`)}Z(Si,"protocolEncodeCallback");function Jf(i){if(i==="")return i;let f=new URL("https://example.com");return f.username=i,f.username}Z(Jf,"usernameEncodeCallback");function If(i){if(i==="")return i;let f=new URL("https://example.com");return f.password=i,f.password}Z(If,"passwordEncodeCallback");function g0(i){if(i==="")return i;if(/[\t\n\r #%/:<>?@[\]^\\|]/g.test(i))throw TypeError(`Invalid hostname '${i}'`);let f=new URL("https://example.com");return f.hostname=i,f.hostname}Z(g0,"hostnameEncodeCallback");function B0(i){if(i==="")return i;if(/[^0-9a-fA-F[\]:]/g.test(i))throw TypeError(`Invalid IPv6 hostname '${i}'`);return i.toLowerCase()}Z(B0,"ipv6HostnameEncodeCallback");function G0(i){if(i===""||/^[0-9]*$/.test(i)&&parseInt(i)<=65535)return i;throw TypeError(`Invalid port '${i}'.`)}Z(G0,"portEncodeCallback");function Yf(i){if(i==="")return i;let f=new URL("https://example.com");return f.pathname=i[0]!=="/"?"/-"+i:i,i[0]!=="/"?f.pathname.substring(2,f.pathname.length):f.pathname}Z(Yf,"standardURLPathnameEncodeCallback");function Zf(i){return i===""?i:new URL(`data:${i}`).pathname}Z(Zf,"pathURLPathnameEncodeCallback");function xf(i){if(i==="")return i;let f=new URL("https://example.com");return f.search=i,f.search.substring(1,f.search.length)}Z(xf,"searchEncodeCallback");function Xf(i){if(i==="")return i;let f=new URL("https://example.com");return f.hash=i,f.hash.substring(1,f.hash.length)}Z(Xf,"hashEncodeCallback");var gf=class{#O;#z=[];#f={};#i=0;#U=1;#w=0;#C=0;#Z=0;#x=0;#X=!1;constructor(i){this.#O=i}get result(){return this.#f}parse(){for(this.#z=w0(this.#O,!0);this.#i<this.#z.length;this.#i+=this.#U){if(this.#U=1,this.#z[this.#i].type==="END"){if(this.#C===0){this.#K(),this.#J()?this.#$(9,1):this.#I()?this.#$(8,1):this.#$(7,0);continue}else if(this.#C===2){this.#Y(5);continue}this.#$(10,0);break}if(this.#Z>0)if(this.#F())this.#Z-=1;else continue;if(this.#A()){this.#Z+=1;continue}switch(this.#C){case 0:this.#L()&&this.#Y(1);break;case 1:if(this.#L()){this.#b();let i=7,f=1;this.#T()?(i=2,f=3):this.#X&&(i=2),this.#$(i,f)}break;case 2:this.#B()?this.#Y(3):(this.#G()||this.#I()||this.#J())&&this.#Y(5);break;case 3:this.#N()?this.#$(4,1):this.#B()&&this.#$(5,1);break;case 4:this.#B()&&this.#$(5,1);break;case 5:this.#E()?this.#x+=1:this.#D()&&(this.#x-=1),this.#Q()&&!this.#x?this.#$(6,1):this.#G()?this.#$(7,0):this.#I()?this.#$(8,1):this.#J()&&this.#$(9,1);break;case 6:this.#G()?this.#$(7,0):this.#I()?this.#$(8,1):this.#J()&&this.#$(9,1);break;case 7:this.#I()?this.#$(8,1):this.#J()&&this.#$(9,1);break;case 8:this.#J()&&this.#$(9,1);break;case 9:break;case 10:break}}this.#f.hostname!==void 0&&this.#f.port===void 0&&(this.#f.port="")}#$(i,f){switch(this.#C){case 0:break;case 1:this.#f.protocol=this.#W();break;case 2:break;case 3:this.#f.username=this.#W();break;case 4:this.#f.password=this.#W();break;case 5:this.#f.hostname=this.#W();break;case 6:this.#f.port=this.#W();break;case 7:this.#f.pathname=this.#W();break;case 8:this.#f.search=this.#W();break;case 9:this.#f.hash=this.#W();break;case 10:break}this.#C!==0&&i!==10&&([1,2,3,4].includes(this.#C)&&[6,7,8,9].includes(i)&&(this.#f.hostname??=""),[1,2,3,4,5,6].includes(this.#C)&&[8,9].includes(i)&&(this.#f.pathname??=this.#X?"/":""),[1,2,3,4,5,6,7].includes(this.#C)&&i===9&&(this.#f.search??="")),this.#V(i,f)}#V(i,f){this.#C=i,this.#w=this.#i+f,this.#i+=f,this.#U=0}#K(){this.#i=this.#w,this.#U=0}#Y(i){this.#K(),this.#C=i}#g(i){return i<0&&(i=this.#z.length-i),i<this.#z.length?this.#z[i]:this.#z[this.#z.length-1]}#j(i,f){let $=this.#g(i);return $.value===f&&($.type==="CHAR"||$.type==="ESCAPED_CHAR"||$.type==="INVALID_CHAR")}#L(){return this.#j(this.#i,":")}#T(){return this.#j(this.#i+1,"/")&&this.#j(this.#i+2,"/")}#B(){return this.#j(this.#i,"@")}#N(){return this.#j(this.#i,":")}#Q(){return this.#j(this.#i,":")}#G(){return this.#j(this.#i,"/")}#I(){if(this.#j(this.#i,"?"))return!0;if(this.#z[this.#i].value!=="?")return!1;let i=this.#g(this.#i-1);return i.type!=="NAME"&&i.type!=="REGEX"&&i.type!=="CLOSE"&&i.type!=="ASTERISK"}#J(){return this.#j(this.#i,"#")}#A(){return this.#z[this.#i].type=="OPEN"}#F(){return this.#z[this.#i].type=="CLOSE"}#E(){return this.#j(this.#i,"[")}#D(){return this.#j(this.#i,"]")}#W(){let i=this.#z[this.#i],f=this.#g(this.#w).index;return this.#O.substring(f,i.index)}#b(){let i={};Object.assign(i,o),i.encodePart=Si;let f=r0(this.#W(),void 0,i);this.#X=x0(f)}};Z(gf,"Parser");var O0=["protocol","username","password","hostname","port","pathname","search","hash"],l="*";function W0(i,f){if(typeof i!="string")throw TypeError("parameter 1 is not of type 'string'.");let $=new URL(i,f);return{protocol:$.protocol.substring(0,$.protocol.length-1),username:$.username,password:$.password,hostname:$.hostname,port:$.port,pathname:$.pathname,search:$.search!==""?$.search.substring(1,$.search.length):void 0,hash:$.hash!==""?$.hash.substring(1,$.hash.length):void 0}}Z(W0,"extractValues");function q(i,f){return f?Yi(i):i}Z(q,"processBaseURLString");function Ii(i,f,$){let z;if(typeof f.baseURL=="string")try{z=new URL(f.baseURL),f.protocol===void 0&&(i.protocol=q(z.protocol.substring(0,z.protocol.length-1),$)),!$&&f.protocol===void 0&&f.hostname===void 0&&f.port===void 0&&f.username===void 0&&(i.username=q(z.username,$)),!$&&f.protocol===void 0&&f.hostname===void 0&&f.port===void 0&&f.username===void 0&&f.password===void 0&&(i.password=q(z.password,$)),f.protocol===void 0&&f.hostname===void 0&&(i.hostname=q(z.hostname,$)),f.protocol===void 0&&f.hostname===void 0&&f.port===void 0&&(i.port=q(z.port,$)),f.protocol===void 0&&f.hostname===void 0&&f.port===void 0&&f.pathname===void 0&&(i.pathname=q(z.pathname,$)),f.protocol===void 0&&f.hostname===void 0&&f.port===void 0&&f.pathname===void 0&&f.search===void 0&&(i.search=q(z.search.substring(1,z.search.length),$)),f.protocol===void 0&&f.hostname===void 0&&f.port===void 0&&f.pathname===void 0&&f.search===void 0&&f.hash===void 0&&(i.hash=q(z.hash.substring(1,z.hash.length),$))}catch{throw TypeError(`invalid baseURL '${f.baseURL}'.`)}if(typeof f.protocol=="string"&&(i.protocol=wf(f.protocol,$)),typeof f.username=="string"&&(i.username=jf(f.username,$)),typeof f.password=="string"&&(i.password=Of(f.password,$)),typeof f.hostname=="string"&&(i.hostname=Uf(f.hostname,$)),typeof f.port=="string"&&(i.port=Wf(f.port,i.protocol,$)),typeof f.pathname=="string"){if(i.pathname=f.pathname,z&&!a0(i.pathname,$)){let U=z.pathname.lastIndexOf("/");U>=0&&(i.pathname=q(z.pathname.substring(0,U+1),$)+i.pathname)}i.pathname=Cf(i.pathname,i.protocol,$)}return typeof f.search=="string"&&(i.search=zf(f.search,$)),typeof f.hash=="string"&&(i.hash=$f(f.hash,$)),i}Z(Ii,"applyInit");function Yi(i){return i.replace(/([+*?:{}()\\])/g,"\\$1")}Z(Yi,"escapePatternString");function Bf(i){return i.replace(/([.+*?^${}()[\]|/\\])/g,"\\$1")}Z(Bf,"escapeRegexpString");function Gf(i,f){f.delimiter??="/#?",f.prefixes??="./",f.sensitive??=!1,f.strict??=!1,f.end??=!0,f.start??=!0,f.endsWith="";let $=".*",z=`[^${Bf(f.delimiter)}]+?`,U=/[$_\u200C\u200D\p{ID_Continue}]/u,C="";for(let j=0;j<i.length;++j){let O=i[j];if(O.type===3){if(O.modifier===3){C+=Yi(O.value);continue}C+=`{${Yi(O.value)}}${e(O.modifier)}`;continue}let w=O.hasCustomName(),W=!!O.suffix.length||!!O.prefix.length&&(O.prefix.length!==1||!f.prefixes.includes(O.prefix)),J=j>0?i[j-1]:null,Y=j<i.length-1?i[j+1]:null;if(!W&&w&&O.type===1&&O.modifier===3&&Y&&!Y.prefix.length&&!Y.suffix.length)if(Y.type===3){let I=Y.value.length>0?Y.value[0]:"";W=U.test(I)}else W=!Y.hasCustomName();if(!W&&!O.prefix.length&&J&&J.type===3){let I=J.value[J.value.length-1];W=f.prefixes.includes(I)}W&&(C+="{"),C+=Yi(O.prefix),w&&(C+=`:${O.name}`),O.type===2?C+=`(${O.value})`:O.type===1?w||(C+=`(${z})`):O.type===0&&(!w&&(!J||J.type===3||J.modifier!==3||W||O.prefix!=="")?C+="*":C+=`(${$})`),O.type===1&&w&&O.suffix.length&&U.test(O.suffix[0])&&(C+="\\"),C+=Yi(O.suffix),W&&(C+="}"),O.modifier!==3&&(C+=e(O.modifier))}return C}Z(Gf,"partsToPattern");var K0=class{#O;#z={};#f={};#i={};#U={};#w=!1;constructor(i={},f,$){try{let z;if(typeof f=="string"?z=f:$=f,typeof i=="string"){let O=new gf(i);if(O.parse(),i=O.result,z===void 0&&typeof i.protocol!="string")throw TypeError("A base URL must be provided for a relative constructor string.");i.baseURL=z}else{if(!i||typeof i!="object")throw TypeError("parameter 1 is not of type 'string' and cannot convert to dictionary.");if(z)throw TypeError("parameter 1 is not of type 'string'.")}typeof $>"u"&&($={ignoreCase:!1});let U={ignoreCase:$.ignoreCase===!0},C={pathname:l,protocol:l,username:l,password:l,hostname:l,port:l,search:l,hash:l};this.#O=Ii(C,i,!0),X0(this.#O.protocol)===this.#O.port&&(this.#O.port="");let j;for(j of O0){if(!(j in this.#O))continue;let O={},w=this.#O[j];switch(this.#f[j]=[],j){case"protocol":Object.assign(O,o),O.encodePart=Si;break;case"username":Object.assign(O,o),O.encodePart=Jf;break;case"password":Object.assign(O,o),O.encodePart=If;break;case"hostname":Object.assign(O,X1),Z0(w)?O.encodePart=B0:O.encodePart=g0;break;case"port":Object.assign(O,o),O.encodePart=G0;break;case"pathname":x0(this.#z.protocol)?(Object.assign(O,g1,U),O.encodePart=Yf):(Object.assign(O,o,U),O.encodePart=Zf);break;case"search":Object.assign(O,o,U),O.encodePart=xf;break;case"hash":Object.assign(O,o,U),O.encodePart=Xf;break}try{this.#U[j]=J0(w,O),this.#z[j]=I0(this.#U[j],this.#f[j],O),this.#i[j]=Gf(this.#U[j],O),this.#w=this.#w||this.#U[j].some((W)=>W.type===2)}catch{throw TypeError(`invalid ${j} pattern '${this.#O[j]}'.`)}}}catch(z){throw TypeError(`Failed to construct 'URLPattern': ${z.message}`)}}get[Symbol.toStringTag](){return"URLPattern"}test(i={},f){let $={pathname:"",protocol:"",username:"",password:"",hostname:"",port:"",search:"",hash:""};if(typeof i!="string"&&f)throw TypeError("parameter 1 is not of type 'string'.");if(typeof i>"u")return!1;try{typeof i=="object"?$=Ii($,i,!1):$=Ii($,W0(i,f),!1)}catch{return!1}let z;for(z of O0)if(!this.#z[z].exec($[z]))return!1;return!0}exec(i={},f){let $={pathname:"",protocol:"",username:"",password:"",hostname:"",port:"",search:"",hash:""};if(typeof i!="string"&&f)throw TypeError("parameter 1 is not of type 'string'.");if(typeof i>"u")return;try{typeof i=="object"?$=Ii($,i,!1):$=Ii($,W0(i,f),!1)}catch{return null}let z={};f?z.inputs=[i,f]:z.inputs=[i];let U;for(U of O0){let C=this.#z[U].exec($[U]);if(!C)return null;let j={};for(let[O,w]of this.#f[U].entries())if(typeof w=="string"||typeof w=="number"){let W=C[O+1];j[w]=W}z[U]={input:$[U]??"",groups:j}}return z}static compareComponent(i,f,$){let z=Z((O,w)=>{for(let W of["type","modifier","prefix","value","suffix"]){if(O[W]<w[W])return-1;if(O[W]===w[W])continue;return 1}return 0},"comparePart"),U=new Zi(3,"","","","",3),C=new Zi(0,"","","","",3),j=Z((O,w)=>{let W=0;for(;W<Math.min(O.length,w.length);++W){let J=z(O[W],w[W]);if(J)return J}return O.length===w.length?0:z(O[W]??U,w[W]??U)},"comparePartList");return!f.#i[i]&&!$.#i[i]?0:f.#i[i]&&!$.#i[i]?j(f.#U[i],[C]):!f.#i[i]&&$.#i[i]?j([C],$.#U[i]):j(f.#U[i],$.#U[i])}get protocol(){return this.#i.protocol}get username(){return this.#i.username}get password(){return this.#i.password}get hostname(){return this.#i.hostname}get port(){return this.#i.port}get pathname(){return this.#i.pathname}get search(){return this.#i.search}get hash(){return this.#i.hash}get hasRegExpGroups(){return this.#w}};Z(K0,"URLPattern");function Hi(i,f){for(let[$,z]of Object.entries(i)){let U=new K0({pathname:$});if(U.test({pathname:f}))return{routePath:$,params:U.exec({pathname:f})?.pathname.groups??{},route:z}}return null}var ii={startIndex:0,carriedViews:[]};function Kf(i,f){let $=h(i.path,f);return $.includes("*")?null:$}function B1(i,f){if(!i)return ii;if(i.search!==f.search)return ii;let $=Math.min(i.segments.length,f.segments.length-1),z=0;while(z<$){let U=i.segments[z],C=f.segments[z];if(C.alwaysRun)break;if(U.viewPath!==C.viewPath)break;let j=Kf(U,i.params),O=Kf(C,f.params);if(j===null||O===null||j!==O)break;z++}if(z===0)return ii;return{startIndex:z,carriedViews:f.segments.slice(0,z).map(({viewPath:U})=>U)}}function G1(i,f){let[,$,...z]=i.split("/");if(!f.includes($))return i;let U=`/${z.join("/")}`;return U==="/"?"/":U.replace(/\/$/,"")}function Lf(i){let{flatViewRoutes:f,supportedLocales:$,from:z,origin:U,to:C}=i;if(!z)return ii;let j;try{j=new URL(z,U)}catch{return ii}if(j.origin!==U)return ii;let O=Hi(f,G1(j.pathname,$));if(!O)return ii;return B1({segments:O.route.segments,params:O.params,search:j.search},C)}var L0="x-gemi-from";import{createElement as Xi,Fragment as H1}from"react";function K1(i){return i.replace(/\([^)]*\)/g,"").replace(/\/\//g,"/")}function vi(i){let f={};for(let[$,z]of Object.entries(i))if("run"in z){let U=z.viewPath;if("children"in z){f[$]=[U];let C=new z.children,j=vi(C.routes);for(let[O,w]of Object.entries(j)){let W=$==="/"?O:`${$}${O}`,J=O==="/"&&$!=="/"?$:W;f[J]=[U,...w]}if(f[$].length===1)delete f[$]}else f[$]=[U]}else{let U=new z,C=vi(U.routes);for(let[j,O]of Object.entries(C)){let w=$==="/"?j:`${$}${j}`,W=j==="/"&&$!=="/"?$:w;f[W]=O}}return Object.fromEntries(Object.entries(f).map(([$,z])=>[K1($),z]))}function ki(i){let f=[];for(let[$,z]of Object.entries(i))if("run"in z){let U=z.viewPath;if(U==="__")continue;if(U==="REDIRECT")continue;if(U==="FILE")continue;if("children"in z){let C=new z.children,j=ki(C.routes);f.push([U,j])}else f.push([U,[]])}else{let U=new z,C=ki(U.routes);f.push(...C)}return f}function V0(i){let f=[];for(let[$,z]of i)f.push($,...V0(z).flat());return Array.from(new Set(f))}class xi extends E{static getFacadeAccessor(){return Vi}static debug(i,f){this.getFacadeRoot().log("debug",i,f)}static info(i,f){this.getFacadeRoot().log("info",i,f)}static notice(i,f){this.getFacadeRoot().log("notice",i,f)}static warning(i,f){this.getFacadeRoot().log("warning",i,f)}static error(i,f){this.getFacadeRoot().log("error",i,f)}static critical(i,f){this.getFacadeRoot().log("critical",i,f)}static alert(i,f){this.getFacadeRoot().log("alert",i,f)}static emergency(i,f){this.getFacadeRoot().log("emergency",i,f)}}class T0{id;static token="kernel.id";constructor(i=crypto.randomUUID()){this.id=i}}var L1=new Set(["script","style","textarea","title","xmp","iframe","noembed","noframes","noscript"]),V1=new Set(["svg","math"]);function Vf(i){return i===32||i===9||i===10||i===12||i===13}function Tf(i){return i>=65&&i<=90||i>=97&&i<=122}function hi(i){return i>=65&&i<=90?i+32:i}function Nf(){let i="data",f="",$=!1,z="",U=0,C=0,j=!1,O=0,w=0,W=()=>i==="data"&&O===0&&w===0,J=()=>{if(!$&&L1.has(f)){i="rawText",z=`</${f}`,U=0,f="";return}if(i="data",f==="template")if($)O=Math.max(0,O-1);else O+=1;else if(V1.has(f)){if($)w=Math.max(0,w-1);else if(!j)w+=1}f=""},Y=(I)=>{switch(i){case"data":if(I===60)i="tagOpen";return;case"tagOpen":if(I===33)i="bang",C=0;else if(I===47)i="endTagOpen";else if(Tf(I))i="tagName",$=!1,j=!1,f=String.fromCharCode(hi(I));else if(I===63)i="bogus";else if(I===60)i="tagOpen";else i="data";return;case"endTagOpen":if(Tf(I))i="tagName",$=!0,j=!1,f=String.fromCharCode(hi(I));else if(I===62)i="data";else i="bogus";return;case"tagName":if(Vf(I)||I===47)i="inTag",j=I===47;else if(I===62)J();else f+=String.fromCharCode(hi(I));return;case"inTag":if(I===62){J();return}if(j=I===47,I===34)i="attrDouble";else if(I===39)i="attrSingle";return;case"attrDouble":if(I===34)i="inTag";j=!1;return;case"attrSingle":if(I===39)i="inTag";j=!1;return;case"bang":if(I===45){if(C+=1,C===2)i="comment",C=0}else if(I===62)i="data";else i="bogus";return;case"bogus":if(I===62)i="data";return;case"comment":if(I===45)C=C<2?C+1:2;else if(I===62&&C>=2)i="data",C=0;else C=0;return;case"rawText":{if(U<z.length){if(hi(I)===z.charCodeAt(U))U+=1;else U=I===60?1:0;return}if(I===62)i="data",f="";else if(Vf(I)||I===47)i="inTag",f="";else U=I===60?1:0;return}}};return{scanToInsertionPoint(I){for(let x=0;x<I.length;x++){if(W())return x;Y(I[x])}return I.length},write(I){for(let x=0;x<I.length;x++)Y(I[x])},isSafe:W}}function Qf(i){return JSON.stringify(i).replace(/</g,"\\u003c").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}function T1(i){return`<script>(self.__GEMI_STREAM__=self.__GEMI_STREAM__||[]).push(${Qf([i.path,i.variantKey,i.data])})</script>`}function N1(i){return`<script>(self.__GEMI_DICT__=self.__GEMI_DICT__||[]).push(${Qf([i.id,i.locale,i.strings])})</script>`}function N0(i,f,$={},z){let U=new TextEncoder,C=[],j=!1,O=!1,w=()=>{if(O)return;O=!0,$.onClose?.()};f.onSettle((B)=>{if(B.status!=="resolved")return;C.push(T1(B))}),z?.onUse((B)=>{C.push(N1(B))});let W=i.getReader(),J=Nf(),Y=(B,T)=>{B.enqueue(T),$.onChunk?.(T)},I=(B)=>{while(C.length>0){let T=U.encode(C.shift());J.write(T),Y(B,T)}},x=(B,T)=>{if(C.length===0){J.write(T),Y(B,T);return}let F=J.scanToInsertionPoint(T);if(F>0)Y(B,T.subarray(0,F));if(J.isSafe())I(B);let D=T.subarray(F);if(D.length>0)J.write(D),Y(B,D)};return new ReadableStream({async pull(B){let T;try{T=await W.read()}catch(n){throw w(),n}let{done:F,value:D}=T;if(F){I(B),B.close(),w();return}if(!j){if(j=!0,J.write(D),Y(B,D),$.onShell?.(),J.isSafe())I(B);return}x(B,D)},cancel(B){return w(),W.cancel(B)}})}var Q1=/bot|crawler|spider|crawling|slurp|bingpreview|mediapartners|headless|lighthouse|prerender|facebookexternalhit|whatsapp|telegram|discord|twitterbot|linkedinbot/i;function Af(i){if(!i)return!1;return Q1.test(i)}var A1=new Set(["script","style","template","title"]),F1=/\shidden([\s=/]|$)/i,E1=/"[^"]*"|'[^']*'/g;function D1(i){let f=0,$=0,z=0,U=0;while(U<i.length){let C=i.indexOf("<",U),j=C===-1?i.length:C;if(j>U){let Y=i.slice(U,j).replace(/\s+/g,"").length;if(z>0)$+=Y;else f+=Y}if(C===-1)break;if(i.startsWith("<!--",C)){let Y=i.indexOf("-->",C+4);U=Y===-1?i.length:Y+3;continue}let O=i.indexOf(">",C);if(O===-1)break;let w=i.slice(C+1,O);U=O+1;let W=/^\/?([a-zA-Z][a-zA-Z0-9-]*)/.exec(w)?.[1]?.toLowerCase();if(!W)continue;let J=w.startsWith("/");if(!J&&A1.has(W)&&!w.endsWith("/")){let Y=i.indexOf(`</${W}`,U);U=Y===-1?i.length:Y;continue}if(W!=="div")continue;if(J){if(z>0)z-=1}else if(z>0)z+=1;else if(F1.test(w.replace(E1,'""')))z=1}return{shellChars:f,deferredChars:$}}var b1=1000,M1=64;function _1(i){return i>=1000?`${(i/1000).toFixed(1)} kB`:`${i} chars`}function S1(i,f){if(f.deferredChars<b1)return null;if(f.shellChars>=M1)return null;return`[gemi] GET ${i} streams ${_1(f.deferredChars)} of its `+`content behind reveal scripts \u2014 a no-JS visitor sees ~${f.shellChars} chars. If this is a public/content route, add "no-stream" to its middleware.`}function Ff(i=console.warn){let f=new Set;return{shouldObserve($){return!f.has($)},report($,z){if(f.has($))return;let U=S1($,z);if(!U)return;f.add($),i(U)}}}function Ef(){let i=new TextDecoder,f="";return{onChunk($){f+=i.decode($,{stream:!0})},measure(){return f+=i.decode(),D1(f)}}}function Df(i,f,$=1e4,z){let U=new TextEncoder,C=()=>{};return new ReadableStream({start(j){let O=!1,w=(J)=>{if(O)return;O=!0,clearTimeout(W);try{j.close()}catch{}z?.({aborted:J})};C=w,j.enqueue(U.encode(`${JSON.stringify(i)}
|
|
5
5
|
`)),f.onSettle((J)=>{if(O||J.status!=="resolved")return;j.enqueue(U.encode(`${JSON.stringify([J.path,J.variantKey,J.data])}
|
|
6
|
-
`))});let W=setTimeout(()=>w(!0),$);f.allSettled().then(()=>w(!1),()=>w(!1))},cancel(){C(!1)}})}var v1=async()=>(await import("./chunk-
|
|
6
|
+
`))});let W=setTimeout(()=>w(!0),$);f.allSettled().then(()=>w(!1),()=>w(!1))},cancel(){C(!1)}})}var v1=async()=>(await import("./chunk-nkbreczg.js")).default,Q0,A0=async(...i)=>{return Q0??=import("react-dom/server.browser").catch((f)=>{throw Q0=void 0,f}),(await Q0).renderToReadableStream(...i)},k1=1e4,h1=`
|
|
7
7
|
!function(){try{var d=document.documentElement,c=d.classList;
|
|
8
8
|
c.remove('light','dark');
|
|
9
9
|
var e=localStorage.getItem('theme');
|
|
@@ -14,6 +14,6 @@ if('system'===e||(!e&&'system'===defaultTheme)){
|
|
|
14
14
|
}else if(e){
|
|
15
15
|
c.add(e||'')
|
|
16
16
|
}}catch(e){}}()
|
|
17
|
-
`;async function c1(i,f,$){let z=`${$==="italic"?"italic,":""}wght@${$==="italic"?"1,":""}${f}`,j=(await(await fetch(`https://fonts.googleapis.com/css2?family=${i}:${z}&display=swap`,{headers:{"User-Agent":"Mozilla/5.0 Firefox/1.0"}})).text()).match(/url\(([^)]+)\)/)?.[1];return await fetch(j).then((O)=>O.arrayBuffer())}var F0="/assets";function P1(i){let f=i.filter(($)=>$===F0||$.startsWith(`${F0}/`));if(f.length>0){let $=f.length>1;throw Error(`View route path${$?"s":""} ${f.map((z)=>`"${z}"`).join(", ")} use${$?"":"s"} the reserved "${F0}" prefix. The client build output is served from there before the router runs, so the route would never match. Mount it somewhere else.`)}}class E0{static token="router.view";flatViewRoutes={};routeManifest={};clientRouteManifest={};componentTree=[];flatComponentTree=[];root=null;shellReporter=Ff();preloadCache=new WeakMap;hooks;partialRendering;constructor(i){let f=l0();this.partialRendering=i.partialRendering??f.partialRendering,this.hooks={onRequestStart:i.onRequestStart??f.onRequestStart,onRequestEnd:i.onRequestEnd??f.onRequestEnd,onRequestFail:i.onRequestFail??f.onRequestFail,onStreamComplete:i.onStreamComplete??f.onStreamComplete};let $={"/":i.rootRouter,"/auth":ui};this.flatViewRoutes=_i($),P1(Object.keys(this.flatViewRoutes)),this.routeManifest=vi($),this.clientRouteManifest=Object.fromEntries(Object.entries(this.routeManifest).filter(([,z])=>z.at(-1)!=="FILE")),this.componentTree=ki($),this.flatComponentTree=V0(this.componentTree),this.root=i.root}async onRequestEnd(i){if(!i.cookies.has("session_id"))i.ctx().setCookie("session_id",Bun.randomUUIDv7(),{httpOnly:!0,secure:Bun.env.NODE_ENV==="production",sameSite:"Strict",expires:new Date(Date.now()+31536000000)});return await this.hooks.onRequestEnd(i)}completeStream(i,f){let $=(z)=>{xi.error(z?.message??'Error in "onStreamComplete" event handler',{err:JSON.stringify(z)})};try{Promise.resolve(this.hooks.onStreamComplete(i,f)).catch($)}catch(z){$(z)}}modulePreloadLinks(i){let{clientEntry:f,modulePreloadManifest:$,views:z,routeKey:U}=i,C=()=>{let w=new Set(f?.preload??[]);for(let W of z)for(let J of $?.[W]??[])w.add(J);return[...w].map((W)=>Xi("link",{key:`modulepreload:${W}`,rel:"modulepreload",href:W}))};if(!$)return C();let j=this.preloadCache.get($);if(!j||j.clientEntry!==f)j={clientEntry:f,byRoute:new Map},this.preloadCache.set($,j);let O=j.byRoute.get(U);if(!O)O=C(),j.byRoute.set(U,O);return O}async render(i){let{req:f,runInRequestScope:$,csrfTokenHMAC:z,currentPathName:U,headers:C,i18n:j,params:O,pathname:w,serverQueries:W,userAgent:J,noStream:Y,url:I,user:x,viewData:B,breadcrumbs:T,urlLocaleSegment:F,meta:D,isOgRequest:n,appId:g}=i,G=w.replace(`/${F}`,""),N={kind:"view",data:{meta:D,pageData:{[G]:B},__csrf:z.toString("base64"),prefetchedData:{},i18n:j,auth:{user:x},routeManifest:this.clientRouteManifest,breadcrumbs:T,router:{urlLocaleSegment:F,pathname:U,params:O,currentPath:w,searchParams:I.search,is404:!U?!0:!1},appId:g,componentTree:[["404",[]],...this.componentTree]},head:{}},R=this.root,S=this.routeManifest[U];return async(Q)=>{let{bootstrapModules:K=[],loaders:c,getStyles:_,viewImportMap:d,cssManifest:fi,ogMap:t,viewModules:v,clientEntry:$i,modulePreloadManifest:zi}=Q,Bi=$i?[]:K,r=(m)=>[m,`window.loaders=${c}`,...$i?[`import(${JSON.stringify($i.module)}).catch(function(e){setTimeout(function(){throw e})})`]:[]].join(";");if(n){let m=null,Oi=null;for(let ji of S??[])if(typeof t[ji]==="function")Oi=ji,m=t[ji];if(!m)return new Response("Not found",{status:404});let nf=Object.values(N.data.pageData)[0];try{await A0(Xi(m,nf[Oi]),{onError:()=>{}})}catch(ji){let{fonts:sf,...df}=ji.satoriOptions,uf=await Promise.all(sf.map((Ei)=>{return c1(Ei.name,Ei.weight,Ei.style).then((af)=>({...Ei,data:af}))})),S0=new Headers(C);S0.set("Content-Type","image/png");let[lf,of]=await Promise.all([v1(),Wi("Rendering an OG image")]),tf=await lf(ji.jsx,{...df,fonts:uf}),rf=await of(Buffer.from(tf)).png({compressionLevel:0,effort:10}).toBuffer();return new Response(new Uint8Array(rf),{headers:S0})}return new Response("data")}N.data.cssManifest=fi,N.data.modulePreloadManifest=zi??{};let Gi=this.modulePreloadLinks({clientEntry:$i,modulePreloadManifest:zi,views:S??["404"],routeKey:U??"404"}),Fi=await _(S);N.data.prefetchedData=W.snapshotResolved(),W.markRenderStart();let Ui=new AbortController,A=setTimeout(()=>Ui.abort(),k1),k=Af(J)||Y,a=Bun.env.NODE_ENV!=="production"&&!k&&U&&this.shellReporter.shouldObserve(U)?Ef():null,_0=_f();try{let m=await A0(Xi(H1,{children:[...Gi,...Fi,Xi("script",{key:"theme-script",dangerouslySetInnerHTML:{__html:h1}}),Xi(R,{data:N.data,viewImportMap:d,viewModules:v,serverQueries:W,dictionarySink:_0,key:"root"})]}),{bootstrapScriptContent:r(`window.__GEMI_DATA__ = ${JSON.stringify(N.data)}`),bootstrapModules:Bi,signal:Ui.signal,...k?{progressiveChunkSize:Number.MAX_SAFE_INTEGER}:{},onError(Oi){if(Bun.env.NODE_ENV!=="production")console.error(Oi)}});if(m.allReady.catch(()=>{}).finally(()=>clearTimeout(A)),k)await m.allReady.catch(()=>{});return new Response(N0(m,W,{onShell:k?void 0:()=>W.markShell(),onChunk:a?.onChunk,onClose:()=>$(()=>{if(this.completeStream(f,W.summarize(Ui.signal.aborted)),a)this.shellReporter.report(U,a.measure())})},_0),{status:!U?404:200,headers:C})}catch(m){clearTimeout(A);let Oi=await A0(Xi("div"),{bootstrapScriptContent:r(`window.error= ${JSON.stringify(m.message)}; window.stack_trace=${JSON.stringify(m.stack)};window.__GEMI_DATA__ = ${JSON.stringify(N.data)}`),bootstrapModules:Bun.env.NODE_ENV==="development"?["/render-error.js",...Bi]:Bi});return new Response(N0(Oi,W,{onClose:()=>$(()=>this.completeStream(f,W.summarize(Ui.signal.aborted)))}),{status:!U?404:200,headers:C})}}}async handleViewRequest(i){let f=new URL(i.url),$=f.pathname.endsWith(".json"),z=f.pathname.endsWith(".og"),U=f.pathname.replace(".json","").replace(".og",""),[,C,...j]=U.split("/"),O=`/${j.join("/")}`,w=null,W=null,J=X(H);if(!J.supportedLocales.includes(C))O=U;else w=C,W=C;if(J.isLocaleAware&&!z){let g=X(H).detectLocale(new V(i,{},"view",O));if(W===null&&g!==J.defaultLocale){let G=f.pathname==="/"?"":f.pathname;return new Response("",{status:302,headers:{"Cache-Control":"private, no-cache, no-store, max-age=0, must-revalidate",Location:`/${g}${G}${f.search}`}})}}O=O.replace("//","/");let I=[],x=[],B=null,T={},F=null,D=!1;try{let g=Hi(this.flatViewRoutes,O);if(g){if(B=g.routePath,T=g.params,I=g.route.exec,x=g.route.middleware,D=x.includes("no-stream"),$&&this.partialRendering){let G=i.headers.get(L0),N=Lf({flatViewRoutes:this.flatViewRoutes,supportedLocales:X(H).supportedLocales,from:G,origin:f.origin,to:{segments:g.route.segments,params:T,search:f.search}});if(N.startIndex>0)I=I.slice(N.startIndex),F={from:G,carriedViews:N.carriedViews}}}}catch(g){throw g}let n=new V(i,T,"view",B);return this.hooks.onRequestStart(n),await L.run(n,async()=>{let g=null,G=L.getStore(),N=gi.getStore(),R=(K)=>gi.run(N,()=>L.runWith(G,K));G.serverQueries=new Ji(Qi(i));let S=new Set;if(G.serverQueries.onQueryFail((K)=>{S.add(K.error);try{R(()=>Promise.resolve(this.hooks.onRequestFail(Q,K.error)).catch(()=>{}))}catch{}}),W){let K=W.replaceAll("/","");Ci.setLocale(K)}else Ci.setLocale();let Q=G.req;try{await X(Ti).runMiddleware(x);let K=X(H),c=K.isEnabled,_=K.isLocaleAware,d={};if(_){let A=null;if(W)A=W.replaceAll("/",""),G.setLocale(A);else A=K.detectLocale(new V(i,Q.params)),G.setLocale(A);let k=c?K.getPageTranslations(A,Q.routePath):{};d={supportedLocales:K.supportedLocales,currentLocale:A,dictionary:{[A]:k},defaultLocale:K.defaultLocale}}await Mf(d.currentLocale??"");let fi=await Promise.all(I.map((A)=>A(Q))),t=G.cookies,v=G.headers;g={data:fi,cookies:t,headers:v,user:G.user,prefetchedData:G.serverQueries.snapshotResolved(),currentPathName:Q.routePath,params:Q.params,urlLocaleSegment:w,meta:G.renderMeta(),appId:X(T0).id};let{params:$i,currentPathName:zi,user:Bi}=g,r={},Gi={};for(let A of fi??[]){let[k,a]=Object.entries(A)?.[0]??[];if(!k||!a)continue;Gi[`${k}:${zi}`]=a.breadcrumb,r[k]=a}let Fi=r.FILE;if(Fi){for(let A of t)v.append("Set-Cookie",A.toString());try{await this.onRequestEnd(Q)}catch(A){xi.error(A?.message??'Error in "onRequestEnd" event handler',{err:JSON.stringify(A)})}return await bf(Fi,v)}if($){v.set("Content-Type","application/x-ndjson; charset=utf-8"),v.append("Vary",L0),t.forEach((k)=>v.append("Set-Cookie",k.toString())),await this.hooks.onRequestEnd(Q);let A={meta:F&&!G.metadata.touched?null:g.meta,data:{[O]:r},breadcrumbs:Gi,prefetchedData:G.serverQueries.snapshotResolved(),i18n:d,is404:!zi,appId:g.appId,partial:F};return new Response(Df(A,G.serverQueries,void 0,({aborted:k})=>R(()=>this.completeStream(Q,G.serverQueries.summarize(k)))),{headers:v})}if(v.set("Content-Type","text/html; charset=utf-8"),!D)v.append("Vary","User-Agent");for(let A of t)v.append("Set-Cookie",A.toString());let Ui=Bun.CSRF.generate(process.env.SECRET);v.append("Set-Cookie",`csrf_token=${Ui}; HttpOnly; Secure; SameSite=Strict; Expires=${new Date(Date.now()+86400000).toUTCString()}`);try{await this.onRequestEnd(Q)}catch(A){xi.error(A?.message??'Error in "onRequestEnd" event handler',{err:JSON.stringify(A)})}return await this.render({req:Q,runInRequestScope:R,csrfTokenHMAC:Buffer.from(""),currentPathName:zi,headers:v,i18n:d,params:$i,pathname:f.pathname,serverQueries:G.serverQueries,userAgent:i.headers.get("user-agent"),noStream:D,url:f,user:Bi,viewData:r,breadcrumbs:Gi,urlLocaleSegment:w,meta:g.meta,appId:g.appId,isOgRequest:z})}catch(K){if(K.kind===Ni)if($){let{status:c=400,data:_,directive:d,headers:fi}=K.payload.api;return new Response(JSON.stringify({data:_,directive:d}),{headers:fi,status:c})}else{let{status:c=400,error:_}=K.payload.view;return new Response(_?.message,{...K.payload.view,status:c})}if(!S.has(K))this.hooks.onRequestFail(Q,K);throw K}})}}class Sf extends y{routes={"/api-routes":this.get(()=>{let i=X(ci).flatRoutes,f=[];for(let[$,z]of Object.entries(i))for(let[U,C]of Object.entries(z)){let{exec:j,middleware:O}=C;f.push({path:$,method:U,middleware:O})}return f}),"/view-routes":this.get(()=>{let i=X(E0).flatViewRoutes,f=[];for(let[$,{middleware:z,viewPath:U}]of Object.entries(i))f.push({path:$,method:"GET",viewPath:U,middleware:z});return f})}}class ci{static token="router.api";flatRoutes={};onRequestStart;onRequestEnd;onRequestFail;constructor(i){let f=u0();this.onRequestStart=i.onRequestStart??f.onRequestStart,this.onRequestEnd=i.onRequestEnd??f.onRequestEnd,this.onRequestFail=i.onRequestFail??f.onRequestFail,this.flatRoutes=$0({"/":i.rootRouter,"/auth":li,"/__gemi__/services/i18n":oi,"/__gemi__/services/logs":f0,"/__gemi__/services/image":ai,"/__gemi__/debug":Sf})}getRouteHandlerAndParams(i){let $=new URL(i.url).pathname.replace("/api",""),z={},U;for(let[C]of Object.entries(this.flatRoutes))try{let j=new URLPattern({pathname:C});if(j.test({pathname:$})){U=C,z=j.exec({pathname:$})?.pathname.groups;break}}catch(j){console.error(j)}return{params:z,path:U}}async runRouteMiddleware(i,f){let z=this.flatRoutes[i][f.rawRequest.method].middleware;try{await X(Ti).runMiddleware(z)}catch(U){if(U.kind===Ni){if(f.rawRequest.url.includes("/api")){let{status:C=400,data:j,headers:O}=U.payload.api;return new Response(JSON.stringify(j),{status:C,headers:{"Content-Type":"application/json",...O}})}}else throw this.onRequestFail(f,U),console.error(U),U}}async getRouteData(i){let f=this.flatRoutes[i],$=L.getStore(),z=f[$.req.rawRequest.method].exec??(()=>Promise.resolve({})),U={};try{U=await z()}catch(C){if(C.kind===Ni){let{status:j=400,data:O,headers:w}=C.payload.api;return new Response(JSON.stringify(O),{status:j,headers:{"Content-Type":"application/json",...w}})}throw this.onRequestFail($.req,C),console.error(C),C}return U}mergeContextIntoResponse(i,f,$){let z=[];f?.forEach((j,O)=>z.push([O,j]));let U=[...typeof f?.getSetCookie==="function"?f.getSetCookie():[],...Array.from($??[])];if(z.length===0&&U.length===0)return i;let C=(j)=>{for(let[O,w]of z){if(O.toLowerCase()==="set-cookie")continue;if(!j.has(O))j.set(O,w)}for(let O of U)j.append("Set-Cookie",O)};try{return C(i.headers),i}catch{let j=new Headers(i.headers);return C(j),new Response(i.body,{status:i.status,statusText:i.statusText,headers:j})}}async handleApiRequest(i){let{params:f,path:$}=this.getRouteHandlerAndParams(i),z=this.flatRoutes[$];if(!z||!z[i.method])return new Response(JSON.stringify({error:{message:"Not found"}}),{status:404});let U=new V(i,f,"api",$);if(!i.url.includes("/__gemi__"))this.onRequestStart(U);return await L.run(U,async()=>{let C=L.getStore(),j=X(H);if(j.isEnabled){let Y=j.detectLocale(U);C.setLocale(Y)}C.setRequest(U);let O=await this.runRouteMiddleware($,U);if(O instanceof Response)return O;let w=await this.getRouteData($),W=C.headers,J=C.cookies;if(w instanceof Response){let Y=this.mergeContextIntoResponse(w,W,J);if(!i.url.includes("/__gemi__"))this.onRequestEnd(U);return C.destroy(),Y}if(W.set("Content-Type","application/json"),J.forEach((Y)=>W.append("Set-Cookie",Y.toString())),!i.url.includes("/__gemi__"))this.onRequestEnd(U);return C.destroy(),new Response(JSON.stringify(w),{headers:W})})}}function Qi(i){let f=gi.getStore();return($,z,U)=>{let C=new URL(i.url).origin,j=[h($,z),U.toString()].filter((W)=>W.length>0).join("?"),O=new Request(`${C}/${j}`,{headers:i.headers}),w=new V(O,z);return gi.run(f,()=>L.run(w,async()=>{try{let W=await X(ci).getRouteData($);if(W instanceof Response){let J=await W.json().catch(()=>null);if(!W.ok)throw new Ki(h($,z),U.toString(),W.status,J);return J}return W}catch(W){if(W instanceof Ki)throw W;let J=new Ki(h($,z),U.toString(),500,{message:W instanceof Error?W.message:String(W)});throw J.cause=W,J}}))}}class Pi{static ensure(i,f={}){let $=L.getStore();if($.req.kind==="api")throw Error("Query.prefetch() cannot be called from an API request");return $.serverQueries??=new Ji(Qi($.req.rawRequest)),$.serverQueries.ensure(i,f,"prefetch")}static async instant(i,...f){let $=Pi.ensure(i,f[0]);if(await $.promise,$.status==="rejected")throw $.error;return $.data}static prefetch(i,...f){Pi.ensure(i,f[0])}static noPrefetch(){let i=L.getStore();if(i.req.kind==="api")throw Error("Query.noPrefetch() cannot be called from an API request");i.serverQueries??=new Ji(Qi(i.req.rawRequest)),i.serverQueries.muteDiscoveryHints()}}class Hf{static absolute(i,...f){return`${process.env.HOST_NAME}${h(String(i),f[0]??{})}`}static relative(i,...f){return h(String(i),f[0]??{})}}class vf{name="Meta";static description(i){L.getStore().metadata.description(i)}static title(i){L.getStore().metadata.title(i)}static openGraph(i){L.getStore().metadata.openGraph(i)}}var R1={set(i,f,$){L.getStore().setCookie(i,f,$)},setIfAbsent(i,f,$){if(L.getStore().req.cookies.has(i))return!1;return L.getStore().setCookie(i,f,$),!0},delete(i){L.getStore().deleteCookie(i)}};class D0{config;static token="redis";instance=null;constructor(i={}){this.config=i}get client(){return this.instance??=new(m1())(this.config.url,this.config.options)}set client(i){this.instance=i}}function m1(){let i=globalThis.Bun?.RedisClient;if(typeof i!=="function")throw Error("Redis requires Bun's built-in Redis client, which this runtime does not provide. Run the app under Bun, or bind your own client for the 'redis' token.");return i}class s extends E{static getFacadeAccessor(){return D0}static get client(){return this.getFacadeRoot().client}static get(i){return s.client.get(i)}static set(i,f){return s.client.set(i,f)}static del(...i){return s.client.del(...i)}static exists(i){return s.client.exists(i)}static incr(i){return s.client.incr(i)}static expire(i,f){return s.client.expire(i,f)}static ttl(i){return s.client.ttl(i)}}class hf extends E{static getFacadeAccessor(){return kf}static consume(i,f={}){return this.getFacadeRoot().consume(i,f)}}class Ri{bound;constructor(i){this.bound=i}get name(){return this.bound??b0()}get sql(){return this.connection().sql}get dialect(){return this.connection().dialect}async query(i){return await this.run(i,"query")}async execute(i){let f=await this.run(i,"execute");return Number(f?.count??0)}async transaction(i){let f=this.name,$=this.connection(f);return mf($.sql,(z)=>Pf(f,()=>i(z)),{slowTransactionThreshold:$.config.slowTransactionThreshold,connection:f})}run(i,f){let $=this.connection(),{text:z,values:U}=yf(i,pf($.dialect),f);return(this.handle()??$.sql).unsafe(z,U)}handle(){let i=cf();if(i===void 0)return;return b0()===this.name?i:void 0}connection(i=this.name){return Rf(i),X(M0).connection(i)}}var Ai=new Ri;class qf extends E{static getFacadeAccessor(){return M0}static connection(i){return new Ri(i)}static get sql(){return Ai.sql}static get dialect(){return Ai.dialect}static query(i){return Ai.query(i)}static execute(i){return Ai.execute(i)}static transaction(i){return Ai.transaction(i)}static close(){return this.getFacadeRoot().close()}}export{E as Nb,mi as Ob,Di as Pb,u as Qb,Ci as Rb,yi as Sb,qi as Tb,x$ as Ub,h0 as Vb,ni as Wb,c0 as Xb,ti as Yb,ri as Zb,a$ as _b,n0 as $b,s0 as ac,Vi as bc,Ti as cc,X3 as dc,u0 as ec,l0 as fc,K0 as gc,xi as hc,T0 as ic,F0 as jc,E0 as kc,ci as lc,Pi as mc,Hf as nc,vf as oc,R1 as pc,D0 as qc,s as rc,hf as sc,Ri as tc,qf as uc};
|
|
17
|
+
`;async function c1(i,f,$){let z=`${$==="italic"?"italic,":""}wght@${$==="italic"?"1,":""}${f}`,j=(await(await fetch(`https://fonts.googleapis.com/css2?family=${i}:${z}&display=swap`,{headers:{"User-Agent":"Mozilla/5.0 Firefox/1.0"}})).text()).match(/url\(([^)]+)\)/)?.[1];return await fetch(j).then((O)=>O.arrayBuffer())}var F0="/assets";function P1(i){let f=i.filter(($)=>$===F0||$.startsWith(`${F0}/`));if(f.length>0){let $=f.length>1;throw Error(`View route path${$?"s":""} ${f.map((z)=>`"${z}"`).join(", ")} use${$?"":"s"} the reserved "${F0}" prefix. The client build output is served from there before the router runs, so the route would never match. Mount it somewhere else.`)}}class E0{static token="router.view";flatViewRoutes={};routeManifest={};clientRouteManifest={};componentTree=[];flatComponentTree=[];root=null;shellReporter=Ff();preloadCache=new WeakMap;hooks;partialRendering;constructor(i){let f=l0();this.partialRendering=i.partialRendering??f.partialRendering,this.hooks={onRequestStart:i.onRequestStart??f.onRequestStart,onRequestEnd:i.onRequestEnd??f.onRequestEnd,onRequestFail:i.onRequestFail??f.onRequestFail,onStreamComplete:i.onStreamComplete??f.onStreamComplete};let $={"/":i.rootRouter,"/auth":ui};this.flatViewRoutes=_i($),P1(Object.keys(this.flatViewRoutes)),this.routeManifest=vi($),this.clientRouteManifest=Object.fromEntries(Object.entries(this.routeManifest).filter(([,z])=>z.at(-1)!=="FILE")),this.componentTree=ki($),this.flatComponentTree=V0(this.componentTree),this.root=i.root}async onRequestEnd(i){if(!i.cookies.has("session_id"))i.ctx().setCookie("session_id",Bun.randomUUIDv7(),{httpOnly:!0,secure:Bun.env.NODE_ENV==="production",sameSite:"Strict",expires:new Date(Date.now()+31536000000)});return await this.hooks.onRequestEnd(i)}completeStream(i,f){let $=(z)=>{xi.error(z?.message??'Error in "onStreamComplete" event handler',{err:JSON.stringify(z)})};try{Promise.resolve(this.hooks.onStreamComplete(i,f)).catch($)}catch(z){$(z)}}modulePreloadLinks(i){let{clientEntry:f,modulePreloadManifest:$,views:z,routeKey:U}=i,C=()=>{let w=new Set(f?.preload??[]);for(let W of z)for(let J of $?.[W]??[])w.add(J);return[...w].map((W)=>Xi("link",{key:`modulepreload:${W}`,rel:"modulepreload",href:W}))};if(!$)return C();let j=this.preloadCache.get($);if(!j||j.clientEntry!==f)j={clientEntry:f,byRoute:new Map},this.preloadCache.set($,j);let O=j.byRoute.get(U);if(!O)O=C(),j.byRoute.set(U,O);return O}async render(i){let{req:f,runInRequestScope:$,csrfTokenHMAC:z,currentPathName:U,headers:C,i18n:j,params:O,pathname:w,serverQueries:W,userAgent:J,noStream:Y,url:I,user:x,viewData:B,breadcrumbs:T,urlLocaleSegment:F,meta:D,isOgRequest:n,appId:g}=i,G=w.replace(`/${F}`,""),N={kind:"view",data:{meta:D,pageData:{[G]:B},__csrf:z.toString("base64"),prefetchedData:{},i18n:j,auth:{user:x},routeManifest:this.clientRouteManifest,breadcrumbs:T,router:{urlLocaleSegment:F,pathname:U,params:O,currentPath:w,searchParams:I.search,is404:!U?!0:!1},appId:g,componentTree:[["404",[]],...this.componentTree]},head:{}},R=this.root,S=this.routeManifest[U];return async(Q)=>{let{bootstrapModules:K=[],loaders:c,getStyles:_,viewImportMap:d,cssManifest:fi,ogMap:t,viewModules:v,clientEntry:$i,modulePreloadManifest:zi}=Q,Bi=$i?[]:K,r=(m)=>[m,`window.loaders=${c}`,...$i?[`import(${JSON.stringify($i.module)}).catch(function(e){setTimeout(function(){throw e})})`]:[]].join(";");if(n){let m=null,Oi=null;for(let ji of S??[])if(typeof t[ji]==="function")Oi=ji,m=t[ji];if(!m)return new Response("Not found",{status:404});let nf=Object.values(N.data.pageData)[0];try{await A0(Xi(m,nf[Oi]),{onError:()=>{}})}catch(ji){let{fonts:sf,...df}=ji.satoriOptions,uf=await Promise.all(sf.map((Ei)=>{return c1(Ei.name,Ei.weight,Ei.style).then((af)=>({...Ei,data:af}))})),S0=new Headers(C);S0.set("Content-Type","image/png");let[lf,of]=await Promise.all([v1(),Wi("Rendering an OG image")]),tf=await lf(ji.jsx,{...df,fonts:uf}),rf=await of(Buffer.from(tf)).png({compressionLevel:0,effort:10}).toBuffer();return new Response(new Uint8Array(rf),{headers:S0})}return new Response("data")}N.data.cssManifest=fi,N.data.modulePreloadManifest=zi??{};let Gi=this.modulePreloadLinks({clientEntry:$i,modulePreloadManifest:zi,views:S??["404"],routeKey:U??"404"}),Fi=await _(S);N.data.prefetchedData=W.snapshotResolved(),W.markRenderStart();let Ui=new AbortController,A=setTimeout(()=>Ui.abort(),k1),k=Af(J)||Y,a=Bun.env.NODE_ENV!=="production"&&!k&&U&&this.shellReporter.shouldObserve(U)?Ef():null,_0=_f();try{let m=await A0(Xi(H1,{children:[...Gi,...Fi,Xi("script",{key:"theme-script",dangerouslySetInnerHTML:{__html:h1}}),Xi(R,{data:N.data,viewImportMap:d,viewModules:v,serverQueries:W,dictionarySink:_0,key:"root"})]}),{bootstrapScriptContent:r(`window.__GEMI_DATA__ = ${JSON.stringify(N.data)}`),bootstrapModules:Bi,signal:Ui.signal,...k?{progressiveChunkSize:Number.MAX_SAFE_INTEGER}:{},onError(Oi){if(Bun.env.NODE_ENV!=="production")console.error(Oi)}});if(m.allReady.catch(()=>{}).finally(()=>clearTimeout(A)),k)await m.allReady.catch(()=>{});return new Response(N0(m,W,{onShell:k?void 0:()=>W.markShell(),onChunk:a?.onChunk,onClose:()=>$(()=>{if(this.completeStream(f,W.summarize(Ui.signal.aborted)),a)this.shellReporter.report(U,a.measure())})},_0),{status:!U?404:200,headers:C})}catch(m){clearTimeout(A);let Oi=await A0(Xi("div"),{bootstrapScriptContent:r(`window.error= ${JSON.stringify(m.message)}; window.stack_trace=${JSON.stringify(m.stack)};window.__GEMI_DATA__ = ${JSON.stringify(N.data)}`),bootstrapModules:Bun.env.NODE_ENV==="development"?["/render-error.js",...Bi]:Bi});return new Response(N0(Oi,W,{onClose:()=>$(()=>this.completeStream(f,W.summarize(Ui.signal.aborted)))}),{status:!U?404:200,headers:C})}}}async handleViewRequest(i){let f=new URL(i.url),$=f.pathname.endsWith(".json"),z=f.pathname.endsWith(".og"),U=f.pathname.replace(".json","").replace(".og",""),[,C,...j]=U.split("/"),O=`/${j.join("/")}`,w=null,W=null,J=X(H);if(!J.supportedLocales.includes(C))O=U;else w=C,W=C;if(J.isLocaleAware&&!z){let g=X(H).detectLocale(new V(i,{},"view",O));if(W===null&&g!==J.defaultLocale){let G=f.pathname==="/"?"":f.pathname;return new Response("",{status:302,headers:{"Cache-Control":"private, no-cache, no-store, max-age=0, must-revalidate",Location:`/${g}${G}${f.search}`}})}}O=O.replace("//","/");let I=[],x=[],B=null,T={},F=null,D=!1;try{let g=Hi(this.flatViewRoutes,O);if(g){if(B=g.routePath,T=g.params,I=g.route.exec,x=g.route.middleware,D=x.includes("no-stream"),$&&this.partialRendering){let G=i.headers.get(L0),N=Lf({flatViewRoutes:this.flatViewRoutes,supportedLocales:X(H).supportedLocales,from:G,origin:f.origin,to:{segments:g.route.segments,params:T,search:f.search}});if(N.startIndex>0)I=I.slice(N.startIndex),F={from:G,carriedViews:N.carriedViews}}}}catch(g){throw g}let n=new V(i,T,"view",B);return this.hooks.onRequestStart(n),await L.run(n,async()=>{let g=null,G=L.getStore(),N=gi.getStore(),R=(K)=>gi.run(N,()=>L.runWith(G,K));G.serverQueries=new Ji(Qi(i));let S=new Set;if(G.serverQueries.onQueryFail((K)=>{S.add(K.error);try{R(()=>Promise.resolve(this.hooks.onRequestFail(Q,K.error)).catch(()=>{}))}catch{}}),W){let K=W.replaceAll("/","");Ci.setLocale(K)}else Ci.setLocale();let Q=G.req;try{await X(Ti).runMiddleware(x);let K=X(H),c=K.isEnabled,_=K.isLocaleAware,d={};if(_){let A=null;if(W)A=W.replaceAll("/",""),G.setLocale(A);else A=K.detectLocale(new V(i,Q.params)),G.setLocale(A);let k=c?K.getPageTranslations(A,Q.routePath):{};d={supportedLocales:K.supportedLocales,currentLocale:A,dictionary:{[A]:k},defaultLocale:K.defaultLocale}}await Mf(d.currentLocale??"");let fi=await Promise.all(I.map((A)=>A(Q))),t=G.cookies,v=G.headers;g={data:fi,cookies:t,headers:v,user:G.user,prefetchedData:G.serverQueries.snapshotResolved(),currentPathName:Q.routePath,params:Q.params,urlLocaleSegment:w,meta:G.renderMeta(),appId:X(T0).id};let{params:$i,currentPathName:zi,user:Bi}=g,r={},Gi={};for(let A of fi??[]){let[k,a]=Object.entries(A)?.[0]??[];if(!k||!a)continue;Gi[`${k}:${zi}`]=a.breadcrumb,r[k]=a}let Fi=r.FILE;if(Fi){for(let A of t)v.append("Set-Cookie",A.toString());try{await this.onRequestEnd(Q)}catch(A){xi.error(A?.message??'Error in "onRequestEnd" event handler',{err:JSON.stringify(A)})}return await bf(Fi,v)}if($){v.set("Content-Type","application/x-ndjson; charset=utf-8"),v.append("Vary",L0),t.forEach((k)=>v.append("Set-Cookie",k.toString())),await this.hooks.onRequestEnd(Q);let A={meta:F&&!G.metadata.touched?null:g.meta,data:{[O]:r},breadcrumbs:Gi,prefetchedData:G.serverQueries.snapshotResolved(),i18n:d,is404:!zi,appId:g.appId,partial:F};return new Response(Df(A,G.serverQueries,void 0,({aborted:k})=>R(()=>this.completeStream(Q,G.serverQueries.summarize(k)))),{headers:v})}if(v.set("Content-Type","text/html; charset=utf-8"),!D)v.append("Vary","User-Agent");for(let A of t)v.append("Set-Cookie",A.toString());let Ui=Bun.CSRF.generate(process.env.SECRET);v.append("Set-Cookie",`csrf_token=${Ui}; HttpOnly; Secure; SameSite=Strict; Expires=${new Date(Date.now()+86400000).toUTCString()}`);try{await this.onRequestEnd(Q)}catch(A){xi.error(A?.message??'Error in "onRequestEnd" event handler',{err:JSON.stringify(A)})}return await this.render({req:Q,runInRequestScope:R,csrfTokenHMAC:Buffer.from(""),currentPathName:zi,headers:v,i18n:d,params:$i,pathname:f.pathname,serverQueries:G.serverQueries,userAgent:i.headers.get("user-agent"),noStream:D,url:f,user:Bi,viewData:r,breadcrumbs:Gi,urlLocaleSegment:w,meta:g.meta,appId:g.appId,isOgRequest:z})}catch(K){if(K.kind===Ni)if($){let{status:c=400,data:_,directive:d,headers:fi}=K.payload.api;return new Response(JSON.stringify({data:_,directive:d}),{headers:fi,status:c})}else{let{status:c=400,error:_}=K.payload.view;return new Response(_?.message,{...K.payload.view,status:c})}if(!S.has(K))this.hooks.onRequestFail(Q,K);throw K}})}}class Sf extends y{routes={"/api-routes":this.get(()=>{let i=X(ci).flatRoutes,f=[];for(let[$,z]of Object.entries(i))for(let[U,C]of Object.entries(z)){let{exec:j,middleware:O}=C;f.push({path:$,method:U,middleware:O})}return f}),"/view-routes":this.get(()=>{let i=X(E0).flatViewRoutes,f=[];for(let[$,{middleware:z,viewPath:U}]of Object.entries(i))f.push({path:$,method:"GET",viewPath:U,middleware:z});return f})}}class ci{static token="router.api";flatRoutes={};onRequestStart;onRequestEnd;onRequestFail;constructor(i){let f=u0();this.onRequestStart=i.onRequestStart??f.onRequestStart,this.onRequestEnd=i.onRequestEnd??f.onRequestEnd,this.onRequestFail=i.onRequestFail??f.onRequestFail,this.flatRoutes=$0({"/":i.rootRouter,"/auth":li,"/__gemi__/services/i18n":oi,"/__gemi__/services/logs":f0,"/__gemi__/services/image":ai,"/__gemi__/debug":Sf})}getRouteHandlerAndParams(i){let $=new URL(i.url).pathname.replace("/api",""),z={},U;for(let[C]of Object.entries(this.flatRoutes))try{let j=new URLPattern({pathname:C});if(j.test({pathname:$})){U=C,z=j.exec({pathname:$})?.pathname.groups;break}}catch(j){console.error(j)}return{params:z,path:U}}async runRouteMiddleware(i,f){let z=this.flatRoutes[i][f.rawRequest.method].middleware;try{await X(Ti).runMiddleware(z)}catch(U){if(U.kind===Ni){if(f.rawRequest.url.includes("/api")){let{status:C=400,data:j,headers:O}=U.payload.api;return new Response(JSON.stringify(j),{status:C,headers:{"Content-Type":"application/json",...O}})}}else throw this.onRequestFail(f,U),console.error(U),U}}async getRouteData(i){let f=this.flatRoutes[i],$=L.getStore(),z=f[$.req.rawRequest.method].exec??(()=>Promise.resolve({})),U={};try{U=await z()}catch(C){if(C.kind===Ni){let{status:j=400,data:O,headers:w}=C.payload.api;return new Response(JSON.stringify(O),{status:j,headers:{"Content-Type":"application/json",...w}})}throw this.onRequestFail($.req,C),console.error(C),C}return U}mergeContextIntoResponse(i,f,$){let z=[];f?.forEach((j,O)=>z.push([O,j]));let U=[...typeof f?.getSetCookie==="function"?f.getSetCookie():[],...Array.from($??[])];if(z.length===0&&U.length===0)return i;let C=(j)=>{for(let[O,w]of z){if(O.toLowerCase()==="set-cookie")continue;if(!j.has(O))j.set(O,w)}for(let O of U)j.append("Set-Cookie",O)};try{return C(i.headers),i}catch{let j=new Headers(i.headers);return C(j),new Response(i.body,{status:i.status,statusText:i.statusText,headers:j})}}async handleApiRequest(i){let{params:f,path:$}=this.getRouteHandlerAndParams(i),z=this.flatRoutes[$];if(!z||!z[i.method])return new Response(JSON.stringify({error:{message:"Not found"}}),{status:404});let U=new V(i,f,"api",$);if(!i.url.includes("/__gemi__"))this.onRequestStart(U);return await L.run(U,async()=>{let C=L.getStore(),j=X(H);if(j.isEnabled){let Y=j.detectLocale(U);C.setLocale(Y)}C.setRequest(U);let O=await this.runRouteMiddleware($,U);if(O instanceof Response)return O;let w=await this.getRouteData($),W=C.headers,J=C.cookies;if(w instanceof Response){let Y=this.mergeContextIntoResponse(w,W,J);if(!i.url.includes("/__gemi__"))this.onRequestEnd(U);return C.destroy(),Y}if(W.set("Content-Type","application/json"),J.forEach((Y)=>W.append("Set-Cookie",Y.toString())),!i.url.includes("/__gemi__"))this.onRequestEnd(U);return C.destroy(),new Response(JSON.stringify(w),{headers:W})})}}function Qi(i){let f=gi.getStore();return($,z,U)=>{let C=new URL(i.url).origin,j=[h($,z),U.toString()].filter((W)=>W.length>0).join("?"),O=new Request(`${C}/${j}`,{headers:i.headers}),w=new V(O,z);return gi.run(f,()=>L.run(w,async()=>{try{let W=await X(ci).getRouteData($);if(W instanceof Response){let J=await W.json().catch(()=>null);if(!W.ok)throw new Ki(h($,z),U.toString(),W.status,J);return J}return W}catch(W){if(W instanceof Ki)throw W;let J=new Ki(h($,z),U.toString(),500,{message:W instanceof Error?W.message:String(W)});throw J.cause=W,J}}))}}class Pi{static ensure(i,f={}){let $=L.getStore();if($.req.kind==="api")throw Error("Query.prefetch() cannot be called from an API request");return $.serverQueries??=new Ji(Qi($.req.rawRequest)),$.serverQueries.ensure(i,f,"prefetch")}static async instant(i,...f){let $=Pi.ensure(i,f[0]);if(await $.promise,$.status==="rejected")throw $.error;return $.data}static prefetch(i,...f){Pi.ensure(i,f[0])}static noPrefetch(){let i=L.getStore();if(i.req.kind==="api")throw Error("Query.noPrefetch() cannot be called from an API request");i.serverQueries??=new Ji(Qi(i.req.rawRequest)),i.serverQueries.muteDiscoveryHints()}}class Hf{static absolute(i,...f){return`${process.env.HOST_NAME}${h(String(i),f[0]??{})}`}static relative(i,...f){return h(String(i),f[0]??{})}}class vf{name="Meta";static description(i){L.getStore().metadata.description(i)}static title(i){L.getStore().metadata.title(i)}static openGraph(i){L.getStore().metadata.openGraph(i)}}var R1={set(i,f,$){L.getStore().setCookie(i,f,$)},setIfAbsent(i,f,$){if(L.getStore().req.cookies.has(i))return!1;return L.getStore().setCookie(i,f,$),!0},delete(i){L.getStore().deleteCookie(i)}};class D0{config;static token="redis";instance=null;constructor(i={}){this.config=i}get client(){return this.instance??=new(m1())(this.config.url,this.config.options)}set client(i){this.instance=i}}function m1(){let i=globalThis.Bun?.RedisClient;if(typeof i!=="function")throw Error("Redis requires Bun's built-in Redis client, which this runtime does not provide. Run the app under Bun, or bind your own client for the 'redis' token.");return i}class s extends E{static getFacadeAccessor(){return D0}static get client(){return this.getFacadeRoot().client}static get(i){return s.client.get(i)}static set(i,f){return s.client.set(i,f)}static del(...i){return s.client.del(...i)}static exists(i){return s.client.exists(i)}static incr(i){return s.client.incr(i)}static expire(i,f){return s.client.expire(i,f)}static ttl(i){return s.client.ttl(i)}}class hf extends E{static getFacadeAccessor(){return kf}static consume(i,f={}){return this.getFacadeRoot().consume(i,f)}}class Ri{bound;constructor(i){this.bound=i}get name(){return this.bound??b0()}get sql(){return this.connection().sql}get dialect(){return this.connection().dialect}async query(i){return await this.run(i,"query")}async execute(i){let f=await this.run(i,"execute");return Number(f?.count??0)}async transaction(i){let f=this.name,$=this.connection(f);return mf($.sql,(z)=>Pf(f,()=>i(z)),{slowTransactionThreshold:$.config.slowTransactionThreshold,connection:f})}run(i,f){let $=this.connection(),{text:z,values:U}=yf(i,pf($.dialect),f);return(this.handle()??$.sql).unsafe(z,U)}handle(){let i=cf();if(i===void 0)return;return b0()===this.name?i:void 0}connection(i=this.name){return Rf(i),X(M0).connection(i)}}var Ai=new Ri;class qf extends E{static getFacadeAccessor(){return M0}static connection(i){return new Ri(i)}static get sql(){return Ai.sql}static get dialect(){return Ai.dialect}static query(i){return Ai.query(i)}static execute(i){return Ai.execute(i)}static transaction(i){return Ai.transaction(i)}static close(){return this.getFacadeRoot().close()}}export{E as Tb,mi as Ub,Di as Vb,u as Wb,Ci as Xb,yi as Yb,qi as Zb,x$ as _b,h0 as $b,ni as ac,c0 as bc,ti as cc,ri as dc,a$ as ec,n0 as fc,s0 as gc,Vi as hc,Ti as ic,X3 as jc,u0 as kc,l0 as lc,K0 as mc,xi as nc,T0 as oc,F0 as pc,E0 as qc,ci as rc,Pi as sc,Hf as tc,vf as uc,R1 as vc,D0 as wc,s as xc,hf as yc,Ri as zc,qf as Ac};
|
|
18
18
|
|
|
19
|
-
//# debugId=
|
|
19
|
+
//# debugId=6A09809AB60C65EA64756E2164756E21
|
|
@@ -55,6 +55,6 @@
|
|
|
55
55
|
"import type { SQL } from \"bun\";\nimport type { DatabaseConnection } from \"../database/Connection\";\nimport { DatabaseManager } from \"../database/DatabaseManager\";\nimport type { Dialect } from \"../database/dialect\";\nimport { app } from \"../foundation/app\";\nimport {\n assertConnectionUsable,\n currentConnectionName,\n currentTransaction,\n runOnConnection,\n withTransaction,\n} from \"../orm/context\";\nimport { dialectFor } from \"../orm/dialect\";\nimport { renderFragment, type SqlFragment } from \"../orm/sql\";\nimport { Facade } from \"./Facade\";\n\n/**\n * The raw-SQL surface, pointed at one connection.\n *\n * `DB` itself is one of these — the one that resolves the **ambient**\n * connection per call — and `DB.connection(name)` returns one bound to a name.\n * Written once rather than twice so the two cannot drift: a fragment run\n * through a named connection has to reach the driver by exactly the path\n * `DB.query` does, or the ambient transaction, the placeholder numbering and\n * the string refusal would each be a thing that works on one of them.\n *\n * Every method resolves the manager, the connection and the dialect **per\n * call** and captures none of them, which is the rule `Model.$exec` follows and\n * what keeps the connection swappable in tests.\n */\nexport class ConnectionQueries {\n /**\n * `undefined` means *whichever connection is ambient*, which is the default\n * one unless an enclosing transaction or `Model.on` named another. That is\n * the mode `DB`'s own statics use, and it is why an unqualified `DB.query`\n * inside `DB.connection(\"analytics\").transaction(...)` joins that transaction\n * instead of being refused by it.\n */\n constructor(private readonly bound?: string) {}\n\n /** The name this handle will use for the call happening now. */\n get name(): string {\n return this.bound ?? currentConnectionName();\n }\n\n /**\n * The Bun `SQL` client. Tagged-template queries go through here.\n *\n * **The pool, not the open transaction.** `DB.sql` has always been Bun's own\n * template and has never joined the ambient transaction — on Postgres it runs\n * on a pooled connection and survives a rollback — and a named handle does\n * not change that, only which pool it is. `query` and `execute` are the ones\n * that join; reach for them when the difference matters.\n *\n * **This getter throws where the methods reject**, and it cannot do\n * otherwise: an accessor has nowhere to put a rejection. So\n * `DB.connection(\"typo\").sql` throws `UnknownConnectionError` synchronously,\n * and reading it while a transaction is open on another connection throws\n * `CrossConnectionTransactionError` the same way. `query`, `execute` and\n * `transaction` are `async` precisely so a `.catch()` cannot miss those.\n */\n get sql(): SQL {\n return this.connection().sql;\n }\n\n /**\n * Which database is in use, inferred from the connection URL. Read this when\n * generating SQL that differs across databases (upserts, `RETURNING`,\n * autoincrement, boolean and timestamp types).\n *\n * Throws rather than rejects, for the reason given on `sql` above.\n */\n get dialect(): Dialect {\n return this.connection().dialect;\n }\n\n // Runs a composed fragment and returns its rows.\n //\n // const where = filters.length ? sql`where ${join(filters, \" and \")}` : empty\n // const rows = await DB.query(sql`select * from \"Product\" ${where}`)\n //\n // Two things it does that `DB.sql` does not, and they are the reason it\n // exists rather than being sugar:\n //\n // - It takes a **fragment**, so a predicate can be built as a value and\n // passed around. See `orm/sql.ts` for why that shape is the one raw SQL\n // actually needs.\n // - It runs on the **ambient transaction** when there is one. A raw statement\n // that quietly escapes `Model.transaction` and commits while its neighbours\n // roll back is worse than no raw statement at all — so this resolves the\n // handle exactly as `Model.$exec` does, through `currentTransaction()`.\n //\n // A plain string is refused. That is deliberate: accepting one would make an\n // interpolated template the path of least resistance, which is the injection\n // this whole mechanism exists to keep closed. `unsafeSql` is the door, and it\n // is named so that using it is a decision.\n //\n // `async` rather than returning the driver's promise directly, so that a\n // rejected fragment — a plain string, a parameter count over the ceiling —\n // *rejects* instead of throwing synchronously. An API that does one sometimes\n // and the other otherwise is a footgun: `DB.query(...).catch(…)` would miss\n // exactly the errors this refuses to run.\n async query<T = any>(fragment: SqlFragment): Promise<T[]> {\n return (await this.run(fragment, \"query\")) as T[];\n }\n\n // The same, for a statement whose answer is *how many rows it touched*.\n //\n // const won = await DB.execute(\n // sql`update \"Reservation\" set status = 'claimed'\n // where id = ${id} and status = 'reserved'`,\n // )\n // if (won === 0) { /* somebody else claimed it first */ }\n //\n // The count is the concurrency primitive there, not a diagnostic: 1 means this\n // caller won the compare-and-swap and 0 means it lost, and an API that\n // discarded it could not express that at all.\n //\n // **Where the number comes from.** Bun puts it on `count`, and leaves\n // `affectedRows` null — measured on both dialects rather than read from a\n // changelog, for `update`, `delete`, `insert`, a statement matching nothing,\n // and one with `returning`.\n //\n // `result.count` on what is otherwise an *array* reads like a bug, so: Bun\n // returns an array with `count`, `command` and `lastInsertRowid` hung off it,\n // on every statement including the ones that return no rows at all. A write\n // without `returning` is therefore a zero-length array whose `count` is the\n // number of rows it touched, and a write *with* one is an array of the rows\n // whose `count` matches their number. `compile/write.ts` records the same measurement\n // from the other side: the *ORM's* counts come from `RETURNING` instead,\n // because there the statement shape is ours to choose and an exact count that\n // depends on nothing undocumented is worth a key column per row. Here the\n // statement is the caller's, so there is nothing to add a `RETURNING` to.\n async execute(fragment: SqlFragment): Promise<number> {\n const result = await this.run(fragment, \"execute\");\n return Number((result as { count?: unknown })?.count ?? 0);\n }\n\n // Runs the callback inside a transaction, committing when it resolves and\n // rolling back if it throws. The callback still receives the raw handle, as\n // it always has.\n //\n // It goes through the ORM's `withTransaction` rather than straight to\n // `sql.begin` so that the two transaction systems are one: a `User.create`\n // inside a `DB.transaction` joins it instead of committing separately on a\n // pooled connection, and a `DB.transaction` nested inside a\n // `Model.transaction` becomes a savepoint instead of throwing (Bun refuses\n // `begin` inside a transaction). Two systems that silently ignored each other\n // would be worse than either alone — a rollback would leave half the work\n // committed.\n //\n // The slow-transaction threshold comes from the same `database` config as it\n // does for the ORM, so a `DB.transaction` holding a connection too long warns\n // exactly as a `Model.transaction` would. Same reason as above: one system.\n //\n // On a named connection the whole callback runs with that connection ambient,\n // so a `User.create` inside `DB.connection(\"analytics\").transaction(...)`\n // joins the transaction rather than opening a second one on the hot path.\n //\n // `async` so that a handle used inside a transaction on another connection\n // *rejects* rather than throwing synchronously — the same reason `query`\n // above is, and the same `.catch()` that would otherwise miss it.\n async transaction<T>(fn: (tx: SQL) => Promise<T>): Promise<T> {\n const name = this.name;\n const connection = this.connection(name);\n\n return withTransaction(\n connection.sql,\n (tx) => runOnConnection(name, () => fn(tx)),\n {\n slowTransactionThreshold: connection.config.slowTransactionThreshold,\n connection: name,\n },\n );\n }\n\n private run(fragment: SqlFragment, operation: string) {\n const db = this.connection();\n // Per call, never captured: the same rule `Model.$exec` follows, and what\n // keeps the connection swappable in tests.\n const { text, values } = renderFragment(\n fragment,\n dialectFor(db.dialect),\n operation,\n );\n return (this.handle() ?? db.sql).unsafe(text, values);\n }\n\n /**\n * The open transaction, but only when it belongs to this handle's connection.\n *\n * `assertConnectionUsable` has already refused the case where they differ, so\n * reaching this with a mismatch is impossible — except for the unqualified\n * handle, whose name *is* the transaction's. The comparison is kept anyway\n * because it is what makes that reasoning local: nothing here has to know\n * which caller checked what.\n */\n private handle() {\n const tx = currentTransaction();\n if (tx === undefined) return undefined;\n return currentConnectionName() === this.name ? tx : undefined;\n }\n\n private connection(name = this.name): DatabaseConnection {\n assertConnectionUsable(name);\n return app(DatabaseManager).connection(name);\n }\n}\n\n/** The unqualified handle: whichever connection is ambient, per call. */\nconst ambient = new ConnectionQueries();\n\n// Access to the app's database connections. Bun's `SQL` client is a tagged\n// template, so queries read the same here as they do in Bun's own docs:\n//\n// const users = await DB.sql`select * from users where id = ${id}`\n//\n// Values interpolated into the template are bound as parameters, not\n// concatenated into the SQL string — `${id}` is a placeholder, so this is not a\n// SQL injection risk.\n//\n// Every static here works on the **ambient** connection: the default one,\n// unless an enclosing `DB.connection(name).transaction(...)` named another.\n// `DB.connection(name)` is the way to name one explicitly.\nexport class DB extends Facade {\n static getFacadeAccessor() {\n return DatabaseManager;\n }\n\n /**\n * The raw-SQL surface for a named connection.\n *\n * const rows = await DB.connection(\"analytics\").query(sql`…`)\n * await DB.connection(\"analytics\").transaction(async () => { … })\n *\n * The names are the keys of `connections` in `app/config/database.ts`, plus\n * `\"default\"` for the top-level `url`. An unknown one raises\n * `UnknownConnectionError` when the handle is used, listing what is\n * configured — never a silent fall back to the default, which would put the\n * query on precisely the pool the caller was trying to stay off.\n *\n * A transaction cannot span two connections. Using a named handle while a\n * transaction is open on another connection raises\n * `CrossConnectionTransactionError` rather than running the statement outside\n * that transaction, where it would survive the rollback.\n */\n // Built per call rather than memoised by name. A handle is one string and a\n // few methods that resolve everything else per call, so caching it saves an\n // allocation — and a `Map` keyed on the caller's string is a slow leak the\n // moment a name reaches it from a request, since an unknown name is not\n // rejected until the handle is *used*. Nothing is worth keeping here.\n static connection(name: string): ConnectionQueries {\n return new ConnectionQueries(name);\n }\n\n // The Bun `SQL` client. Tagged-template queries go through here.\n static get sql(): SQL {\n return ambient.sql;\n }\n\n // Which database is in use, inferred from the connection URL. Read this when\n // generating SQL that differs across databases (upserts, `RETURNING`,\n // autoincrement, boolean and timestamp types).\n static get dialect(): Dialect {\n return ambient.dialect;\n }\n\n // Runs a composed fragment and returns its rows, on the ambient transaction\n // when there is one. See `ConnectionQueries.query`, which is the whole of it.\n static query<T = any>(fragment: SqlFragment): Promise<T[]> {\n return ambient.query<T>(fragment);\n }\n\n // The same, for a statement whose answer is *how many rows it touched* — the\n // compare-and-swap primitive. See `ConnectionQueries.execute`.\n static execute(fragment: SqlFragment): Promise<number> {\n return ambient.execute(fragment);\n }\n\n // Runs the callback inside a transaction, committing when it resolves and\n // rolling back if it throws. One transaction system with the ORM's, so a\n // `User.create` inside this joins it. See `ConnectionQueries.transaction`.\n static transaction<T>(fn: (tx: SQL) => Promise<T>): Promise<T> {\n return ambient.transaction(fn);\n }\n\n /** Closes every configured connection, not only the default one. */\n static close(): Promise<void> {\n return this.getFacadeRoot().close();\n }\n}\n"
|
|
56
56
|
],
|
|
57
57
|
"mappings": "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",
|
|
58
|
-
"debugId": "
|
|
58
|
+
"debugId": "6A09809AB60C65EA64756E2164756E21",
|
|
59
59
|
"names": []
|
|
60
60
|
}
|