gemi 0.13.2 → 0.13.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/dist/app/index.js +2 -2
  2. package/dist/app/index.js.map +1 -1
  3. package/dist/broadcasting/index.js +1 -1
  4. package/dist/chunk-16td76ax.js +4 -0
  5. package/dist/{chunk-68kvbrqd.js.map → chunk-16td76ax.js.map} +2 -2
  6. package/dist/chunk-21ykvw7s.js +5 -0
  7. package/dist/{chunk-jwebzy40.js.map → chunk-21ykvw7s.js.map} +2 -2
  8. package/dist/{chunk-yvrp97kk.js → chunk-44ec3e65.js} +3 -3
  9. package/dist/{chunk-yvrp97kk.js.map → chunk-44ec3e65.js.map} +1 -1
  10. package/dist/chunk-4551h204.js +4 -0
  11. package/dist/chunk-4551h204.js.map +10 -0
  12. package/dist/chunk-4p614yj1.js +4 -0
  13. package/dist/{chunk-3nzz6kqw.js.map → chunk-4p614yj1.js.map} +4 -4
  14. package/dist/chunk-5pzb32h4.js +5 -0
  15. package/dist/{chunk-m2p40y0k.js.map → chunk-5pzb32h4.js.map} +6 -6
  16. package/dist/chunk-7ntk17x8.js +4 -0
  17. package/dist/{chunk-6kfbsmxx.js.map → chunk-7ntk17x8.js.map} +2 -2
  18. package/dist/{chunk-tw3t6x2n.js → chunk-8qypdvap.js} +3 -3
  19. package/dist/{chunk-tw3t6x2n.js.map → chunk-8qypdvap.js.map} +1 -1
  20. package/dist/{chunk-rre72epn.js → chunk-b7yj67zc.js} +3 -3
  21. package/dist/{chunk-rre72epn.js.map → chunk-b7yj67zc.js.map} +1 -1
  22. package/dist/{chunk-5q5qjyxf.js → chunk-bvf4sg7q.js} +2 -2
  23. package/dist/{chunk-5q5qjyxf.js.map → chunk-bvf4sg7q.js.map} +1 -1
  24. package/dist/{chunk-0mfpz0sr.js → chunk-cm0h7j42.js} +2 -2
  25. package/dist/{chunk-0mfpz0sr.js.map → chunk-cm0h7j42.js.map} +1 -1
  26. package/dist/chunk-cw9m170z.js +9 -0
  27. package/dist/{chunk-wbg45cdc.js.map → chunk-cw9m170z.js.map} +3 -4
  28. package/dist/chunk-dznj0x9h.js +4 -0
  29. package/dist/{chunk-qcr71k85.js.map → chunk-dznj0x9h.js.map} +2 -2
  30. package/dist/{chunk-fe1gn043.js → chunk-epfkjx6k.js} +2 -2
  31. package/dist/{chunk-fe1gn043.js.map → chunk-epfkjx6k.js.map} +1 -1
  32. package/dist/{chunk-6fy0y9na.js → chunk-fmwhbymf.js} +2 -2
  33. package/dist/{chunk-6fy0y9na.js.map → chunk-fmwhbymf.js.map} +1 -1
  34. package/dist/chunk-gwb05xjg.js +4 -0
  35. package/dist/{chunk-wewz52mc.js.map → chunk-gwb05xjg.js.map} +11 -8
  36. package/dist/chunk-h21vms98.js +4 -0
  37. package/dist/{chunk-0vq2p4bq.js.map → chunk-h21vms98.js.map} +5 -5
  38. package/dist/{chunk-cgh2sw3g.js → chunk-h458a00k.js} +2 -2
  39. package/dist/{chunk-cgh2sw3g.js.map → chunk-h458a00k.js.map} +1 -1
  40. package/dist/chunk-hx9d1jge.js +4 -0
  41. package/dist/{chunk-0wr6m6f4.js.map → chunk-hx9d1jge.js.map} +5 -5
  42. package/dist/{chunk-0wa1m3yq.js → chunk-j4ww5456.js} +4 -4
  43. package/dist/{chunk-0wa1m3yq.js.map → chunk-j4ww5456.js.map} +3 -4
  44. package/dist/chunk-kh76hvyt.js +27 -0
  45. package/dist/{chunk-acfdk70y.js.map → chunk-kh76hvyt.js.map} +3 -4
  46. package/dist/{chunk-67ytmbmn.js → chunk-krb4n3vt.js} +3 -3
  47. package/dist/{chunk-67ytmbmn.js.map → chunk-krb4n3vt.js.map} +1 -1
  48. package/dist/{chunk-jxftkhsd.js → chunk-kxazj8vp.js} +2 -2
  49. package/dist/{chunk-jxftkhsd.js.map → chunk-kxazj8vp.js.map} +1 -1
  50. package/dist/chunk-mm628pqn.js +4 -0
  51. package/dist/{chunk-jn8jhrkd.js.map → chunk-mm628pqn.js.map} +2 -2
  52. package/dist/chunk-n6jpcs1c.js +5 -0
  53. package/dist/{chunk-4e18rqet.js.map → chunk-n6jpcs1c.js.map} +5 -5
  54. package/dist/{chunk-tyv9h73f.js → chunk-nyf26bew.js} +3 -3
  55. package/dist/{chunk-tyv9h73f.js.map → chunk-nyf26bew.js.map} +1 -1
  56. package/dist/chunk-qk22b9m3.js +8 -0
  57. package/dist/{chunk-95b1a8cw.js.map → chunk-qk22b9m3.js.map} +2 -2
  58. package/dist/chunk-r4w7h0fn.js +4 -0
  59. package/dist/chunk-r4w7h0fn.js.map +10 -0
  60. package/dist/{chunk-pvxzx61f.js → chunk-rdhrywt2.js} +3 -3
  61. package/dist/{chunk-pvxzx61f.js.map → chunk-rdhrywt2.js.map} +1 -1
  62. package/dist/chunk-rpk217v7.js +4 -0
  63. package/dist/{chunk-3q85w7aa.js.map → chunk-rpk217v7.js.map} +1 -1
  64. package/dist/chunk-t1gpz4hs.js +4 -0
  65. package/dist/{chunk-svh4hjg3.js.map → chunk-t1gpz4hs.js.map} +2 -2
  66. package/dist/{chunk-nxrhps23.js → chunk-tp4mpr2z.js} +2 -2
  67. package/dist/{chunk-nxrhps23.js.map → chunk-tp4mpr2z.js.map} +1 -1
  68. package/dist/chunk-x7sd5abn.js +4 -0
  69. package/dist/{chunk-6pwjkfk5.js.map → chunk-x7sd5abn.js.map} +1 -1
  70. package/dist/client/I18nContext.d.ts.map +1 -0
  71. package/dist/client/ServerDataProvider.d.ts +1 -1
  72. package/dist/client/ServerDataProvider.d.ts.map +1 -1
  73. package/dist/client/index.d.ts +3 -3
  74. package/dist/client/index.d.ts.map +1 -1
  75. package/dist/client/index.js.map +1 -1
  76. package/dist/client/useLocale.d.ts.map +1 -0
  77. package/dist/client/{i18n/useTranslator.d.ts → useTranslator.d.ts} +2 -2
  78. package/dist/client/useTranslator.d.ts.map +1 -0
  79. package/dist/email/index.js +1 -1
  80. package/dist/facades/index.js +2 -2
  81. package/dist/facades/index.js.map +1 -1
  82. package/dist/http/index.js +2 -2
  83. package/dist/http/index.js.map +1 -1
  84. package/dist/i18n/I18nServiceContainer.d.ts.map +1 -1
  85. package/dist/i18n/index.js +1 -1
  86. package/dist/kernel/index.js +2 -2
  87. package/dist/kernel/index.js.map +1 -1
  88. package/dist/server/index.js +2 -2
  89. package/dist/server/index.js.map +1 -1
  90. package/dist/services/index.js +62 -73
  91. package/dist/services/index.js.map +6 -18
  92. package/package.json +3 -3
  93. package/dist/chunk-00q77h4a.js +0 -3
  94. package/dist/chunk-00q77h4a.js.map +0 -15
  95. package/dist/chunk-0vq2p4bq.js +0 -4
  96. package/dist/chunk-0wr6m6f4.js +0 -4
  97. package/dist/chunk-3nzz6kqw.js +0 -4
  98. package/dist/chunk-3q85w7aa.js +0 -4
  99. package/dist/chunk-4e18rqet.js +0 -5
  100. package/dist/chunk-68kvbrqd.js +0 -4
  101. package/dist/chunk-6kfbsmxx.js +0 -4
  102. package/dist/chunk-6pwjkfk5.js +0 -4
  103. package/dist/chunk-95b1a8cw.js +0 -8
  104. package/dist/chunk-9aswnsye.js +0 -4
  105. package/dist/chunk-9aswnsye.js.map +0 -10
  106. package/dist/chunk-acfdk70y.js +0 -27
  107. package/dist/chunk-jn8jhrkd.js +0 -4
  108. package/dist/chunk-jwebzy40.js +0 -5
  109. package/dist/chunk-m2p40y0k.js +0 -5
  110. package/dist/chunk-qcr71k85.js +0 -4
  111. package/dist/chunk-svh4hjg3.js +0 -4
  112. package/dist/chunk-wbg45cdc.js +0 -9
  113. package/dist/chunk-wewz52mc.js +0 -3
  114. package/dist/client/i18n/I18nContext.d.ts.map +0 -1
  115. package/dist/client/i18n/useLocale.d.ts.map +0 -1
  116. package/dist/client/i18n/useTranslator.d.ts.map +0 -1
  117. /package/dist/client/{i18n/I18nContext.d.ts → I18nContext.d.ts} +0 -0
  118. /package/dist/client/{i18n/useLocale.d.ts → useLocale.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLocale.d.ts","sourceRoot":"","sources":["../../client/useLocale.ts"],"names":[],"mappings":"AAKA,wBAAgB,SAAS,+BAKU,MAAM,oBAMxC"}
@@ -1,5 +1,5 @@
1
- import type { I18nDictionary } from "../rpc";
2
- import type { ParseTranslationParams, Prettify } from "../../utils/type";
1
+ import type { I18nDictionary } from "./rpc";
2
+ import type { ParseTranslationParams, Prettify } from "../utils/type";
3
3
  type Parser<T extends Record<string, string>> = {
4
4
  [K in keyof T]: ParseTranslationParams<T[K]>;
5
5
  }[keyof T];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTranslator.d.ts","sourceRoot":"","sources":["../../client/useTranslator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAKtE,KAAK,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI;KAC7C,CAAC,IAAI,MAAM,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7C,CAAC,MAAM,CAAC,CAAC,CAAC;AAEX,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnD,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,GAChB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAEhB,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,cAAc,EAAE,SAAS,EAAE,CAAC,IAGhE,CAAC,SAAS,MAAM,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EACrD,KAAK,CAAC,EACN,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAa/E"}
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{T as B}from"../chunk-6pwjkfk5.js";import{U as A}from"../chunk-9aswnsye.js";import"../chunk-nxrhps23.js";import"../chunk-6fy0y9na.js";import{render as P}from"jsx-email";import{jsx as Q}from"react/jsx-runtime";class D{from="";to=[];subject="No Subject";cc=[];bcc=[];attachments=[];template;static async send(q){let k=new this,F=A.use().service.defaultLocale,{to:G=k.to,from:H=k.from,subject:w=typeof k.subject==="string"?k.subject:k.subject[q.locale||F],cc:J=k.cc,bcc:K=k.bcc,attachments:M=k.attachments,data:O}=q,y=await k.render({...O,locale:q.locale});if(process.env.EMAIL_DEBUG==="true"){let z=`${process.env.ROOT_DIR}/.debug/emails/${new Date().toISOString()}${w}.html`;await Bun.write(z,y),Bun.spawnSync(["open",z]);return}await B.use().service.driver.send({bcc:K,cc:J,from:H,subject:w,to:G,attachments:M,html:y})}async render(q){let k=this.template;return await P(Q(k,{...q}))}}export{D as Email};
2
+ import{T as B}from"../chunk-x7sd5abn.js";import{U as A}from"../chunk-4551h204.js";import"../chunk-tp4mpr2z.js";import"../chunk-fmwhbymf.js";import{render as P}from"jsx-email";import{jsx as Q}from"react/jsx-runtime";class D{from="";to=[];subject="No Subject";cc=[];bcc=[];attachments=[];template;static async send(q){let k=new this,F=A.use().service.defaultLocale,{to:G=k.to,from:H=k.from,subject:w=typeof k.subject==="string"?k.subject:k.subject[q.locale||F],cc:J=k.cc,bcc:K=k.bcc,attachments:M=k.attachments,data:O}=q,y=await k.render({...O,locale:q.locale});if(process.env.EMAIL_DEBUG==="true"){let z=`${process.env.ROOT_DIR}/.debug/emails/${new Date().toISOString()}${w}.html`;await Bun.write(z,y),Bun.spawnSync(["open",z]);return}await B.use().service.driver.send({bcc:K,cc:J,from:H,subject:w,to:G,attachments:M,html:y})}async render(q){let k=this.template;return await P(Q(k,{...q}))}}export{D as Email};
3
3
 
4
4
  //# debugId=3CD313A52C95A57264756E2164756E21
@@ -1,6 +1,6 @@
1
1
  // @bun
2
- import{G as xc,H as _c,I as M,J as a,K as W,L as z,M as F,O as jc,P as d,Q as V,R as x}from"../http/index.js";import{U as B}from"../chunk-9aswnsye.js";import{V as Wc}from"../chunk-mtbjk5px.js";import{qc as Nc}from"../chunk-pvxzx61f.js";import{rc as k,tc as X,uc as Cc}from"../chunk-fe1gn043.js";import{vc as $c}from"../chunk-3q85w7aa.js";import{xc as D}from"../chunk-nxrhps23.js";import{zc as Kc}from"../chunk-6fy0y9na.js";import{AsyncLocalStorage as Zc}from"async_hooks";class N extends D{service;static _name="BroadcastingServiceContainer";publishCb;context=new Zc;constructor(c){super();this.service=c}onPublish(c){this.publishCb=c}publish(...c){let[s,f,i]=c;this.publishCb(s,f,i)}async handleMessage(c,s){let f=JSON.parse(s);if(f.type==="subscribe"){let i=Object.entries(this.service.channels).sort(([l],[w])=>l.length-w.length);for(let[l,w]of i){let b=new URLPattern({pathname:l});if(b.test({pathname:f.topic})){let y=b.exec({pathname:f.topic})?.pathname.groups,g=new w;if(await g.subscribe.call(g,y))c.subscribe(f.topic);break}}}if(f.type==="broadcast")c.publish(f.topic,JSON.stringify({topic:f.topic,data:f.payload}));if(f.type==="unsubscribe")c.unsubscribe(f.topic)}run(c,s){let f=c.get("Cookie"),i=new Map;if(f){let l=f.split(";");for(let w of l){let[b,y]=w.split("=");i.set(b.trim(),y.trim())}}this.context.run({headers:c,cookies:i},s)}}class U{static async user(){let c=z.getStore(),s=N.use().context.getStore(),f="",i="";if(c?.req)f=c.req.cookies.get("access_token"),i=c.req.headers.get("User-Agent");if(s?.cookies)i=s.headers.get("User-Agent"),f=s.cookies.get("access_token");let l=c?.user;if(!l)l=(await x.use().getSession(f,i))?.user,c?.setUser(l);if(l)return l;return null}static async guard(c){let s=await U.user();if(!s)throw new d;try{if(!await c(s))throw new d}catch(f){throw new d}}static async guardSafe(c){let s=await U.user();if(!s)return!1;try{return await c(s)}catch(f){return!1}}static async authenticate(c){await x.use().authenticate(c)}static async createMagicLink(c){return await x.use().createMagicLinkToken(c)}}class G{static getSupportedLocales(){return B.use().supportedLocales}static getDefaultLocale(){return B.use().service.defaultLocale}static locale(){return B.use().detectLocale(z.getStore().req)}static setLocale(c=G.locale()){let s=B.use(),f=c;if(!s.supportedLocales.includes(c))f=s.service.defaultLocale;return z.getStore().setCookie("i18n-locale",f,{expires:new Date(Date.now()+31536000000)}),f}}var Oc=Kc(Nc(),1);import{Buffer as Hc}from"buffer";class I extends D{service;static _name="FileStorageServiceContainer";constructor(c){super();this.service=c}}class Lc{static async put(c){return I.use().service.driver.put(c)}static async metadata(c){let s=Hc.from(await c.arrayBuffer());try{return await Oc.default(s).metadata()}catch{return{}}}static async fetch(c){return I.use().service.driver.fetch(c)}static list(c){return I.use().service.driver.list(c)}static delete(){}}function Fc(c){return Object.fromEntries(Object.entries(c).filter(([,s])=>{return s!==null&&s!==void 0}))}class Y extends Error{constructor(){super("Adapter not found");this.name="AdapterNotFound"}}class e{createSession(){throw new Y}deleteSession(){throw new Y}findSession(){throw new Y}findUserByEmailAddress(){throw new Y}updateSession(){throw new Y}createUser(){throw new Y}}class zc extends F{schema={email:{required:"Email is required",string:"Invalid email",email:"Invalid email"},password:{required:"Password is required"}}}class Tc extends F{schema={name:{string:"Invalid name",required:"Name is required","min:2":"Name must be at least 3 characters"},email:{string:"Invalid email",required:"Email is required",email:"Invalid email"},password:{required:"Password is required","min:8":"Password must be at least 8 characters"}}}class Dc extends F{schema={email:{required:"Email is required",email:"Invalid email"}}}class Bc extends F{schema={password:{required:"Password is required",password:"Invalid password"}}}class o extends xc{provider=x.use()?.provider;async me(){let c=await U.user();if(!c)throw new jc;return c}async verifyEmail(c=new F){let s=await c.input(),f=x.use()?.provider,i=await f.adapter.findUserByVerificationToken(s.get("token"));if(!i)return{email:null};if(await f.adapter.verifyUser(i.email),i)return{email:i.email};return{email:null}}async signInWithMagicLink(c=new F){let s=x.use(),f=s.provider,i=c.search.get("token"),l=decodeURIComponent(c.search.get("email")),w=null;try{w=await f.adapter.findUserMagicLinkToken({email:l,token:i})}catch(y){return console.log(y),{error:JSON.stringify(y)}}if(!w)return{error:"Invalid token"};await f.adapter.verifyUser(l),await f.adapter.deleteMagicLinkToken(l);let b=await s.createOrUpdateSession({email:l});return c.ctx().setCookie("access_token",b.token,{expires:b.absoluteExpiresAt}),await f.onSignIn(b),{session:b}}async signInWithPin(c=new F){let s=x.use(),f=s.provider,i=await c.input(),{email:l,pin:w}=i.toJSON();if(!await f.adapter.findUserMagicLinkToken({email:l,pin:w}))throw new W({pin:["Invalid pin"]});await f.adapter.deleteMagicLinkToken(l),await f.adapter.verifyUser(l);let y=await s.createOrUpdateSession({email:l});return c.ctx().setCookie("access_token",y.token,{expires:y.absoluteExpiresAt}),await f.onSignIn(y),{session:y}}async signIn(c=new zc){let s=await c.input(),{email:f,password:i}=s.toJSON(),l=x.use().provider,w=await l.adapter.findUserByEmailAddress(f,l.verifyEmail);if(!w)throw new W({invalid_credentials:["Invalid credentials"]});if(!await l.verifyPassword(i,w.password))throw new W({invalid_credentials:["Invalid credentials"]});let y=await x.use().createOrUpdateSession({email:w.email,id:w.id});c.ctx().setCookie("access_token",y.token,{expires:y.absoluteExpiresAt}),await l.onSignIn(w);let{password:g,...n}=w;return n}async signUp(c=new Tc){let s=await c.input(),{email:f,password:i,name:l,invitationId:w}=s.toJSON(),b=x.use().provider;if(await b.adapter.findUserByEmailAddress(f,!1))throw new W({email:["Email address already exists"]});let g=await b.hashPassword(i),n=B.use().detectLocale(c),p;if(w){if(p=await b.adapter.findInvitation(w,f),p)await b.adapter.deleteInvitationById(w)}let O,L;if(p)O=await b.adapter.createUser({email:f,name:l,password:g,emailVerifiedAt:new Date,locale:n}),await b.adapter.createAccount({organizationId:p.organizationId,userId:O.id,organizationRole:p.role});else L=await b.generateEmailVerificationToken(f),O=await b.adapter.createUser({email:f,name:l,password:g,verificationToken:L,locale:n});return await b.onSignUp(O,L),O}async signOut(c=new F){let s=c.cookies.get("access_token"),f=await U.user(),i=x.use().provider;return await i.adapter.deleteSession({token:s}),c.ctx().setCookie("access_token","",{expires:new Date(0)}),await i.onSignOut(f),{}}async forgotPassword(c=new Dc){let s=await c.input(),{email:f}=s.toJSON(),i=x.use().provider,l=await i.adapter.findUserByEmailAddress(f,i.verifyEmail);if(!l)return{};let w=await i.generateForgotPasswordToken(l);return await i.adapter.createPasswordResetToken({user:l,token:w}),await i.onForgotPassword(l,w),{}}async resetPassword(c=new Bc){let s=x.use().provider,f=await c.input(),{password:i,token:l}=f.toJSON(),w=await s.adapter.findPasswordResetToken({token:l});if(!w)throw new W({token:["Invalid token"]});if(V.Instant.from(w.createdAt.toISOString()).add({hours:24}).until(V.Now.instant()).sign>=0)throw new W({token:["Token expired"]});await s.adapter.deletePasswordResetToken({token:l});let y=await s.adapter.findUserByEmailAddress(w.user.email,s.verifyEmail);if(!y)throw new W({email:["User not found"]});let g=await s.hashPassword(i);return await s.adapter.updateUserPassword({id:y.id,password:g}),await s.adapter.deleteAllUserSessions(y.id),await s.onResetPassword(y),{}}async changePassword(c=new F){let s=x.use().provider,f=await U.user(),i=await c.input(),{oldPassword:l,newPassword:w}=i.toJSON(),{password:b}=await s.adapter.findUserByEmailAddress(f.email,s.verifyEmail);if(!await s.verifyPassword(l,b))throw new W({oldPassword:["Incorrect password"]});let g=await s.hashPassword(w);return await s.adapter.updateUserPassword({id:f.id,password:g}),await s.adapter.deleteAllUserSessions(f.id),{}}async oauthRedirect(c=new F){let{provider:s}=c.params,f=x.use().provider.oauthProviders[s];if(!f)throw new Error(`Invalid provider: ${s}`);return{destination:await f.getRedirectUrl(c)}}async oauthCallback(c=new F){let{provider:s}=c.params,f=x.use(),i=f.provider,l=i.oauthProviders[s],{email:w,name:b,username:y,providerId:g}=await l.onCallback(c);if(!y&&!w)throw new Error("Email or username is required");let n=w??`${y}:${s}`,p=await i.adapter.findUserByEmailAddress(n,!1),O=B.use().detectLocale(c);if(!p)p=await i.adapter.createUser({email:n,name:b,locale:O,emailVerifiedAt:new Date}),await i.adapter.createSocialAccount({provider:s,userId:p.id,email:n,username:y,providerId:g,expiresAt:new Date,accessToken:"",refreshToken:""});let L=await f.createOrUpdateSession({email:p.email,id:p.id});return c.ctx().setCookie("access_token",L.token,{expires:L.expiresAt}),await i.onSignIn(p),{destination:i.redirectPath}}async createMagicLinkToken(c=new F){let s=await c.input(),{email:f}=s.toJSON(),i=x.use(),l=i.provider,{user:w,pin:b,token:y}=await i.createMagicLinkToken(f);return await l.onMagicLinkCreated(w,{email:f,pin:b,token:y}),{email:f}}}class oc extends a{routes={"/:provider":this.redirect([o,"oauthRedirect"]),"/:provider/callback":this.redirect([o,"oauthCallback"])}}class cc extends a{routes={"/sign-in/magic-link":this.view("auth/MagicLinkSignIn",[o,"signInWithMagicLink"]),"/oauth":oc}}class sc extends M{middlewares=["cache:private"];routes={"/sign-in":this.post(o,"signIn"),"/sign-up":this.post(o,"signUp"),"/sign-out":this.post(o,"signOut"),"/forgot-password":this.post(o,"forgotPassword"),"/reset-password":this.post(o,"resetPassword"),"/change-password":this.post(o,"changePassword"),"/verify-email":this.post(o,"verifyEmail"),"/me":this.get(o,"me").middleware(["auth"]),"/magic-link":this.post(o,"createMagicLinkToken"),"/sign-in-with-pin":this.post(o,"signInWithPin")}}class Qc extends $c{basePath="/auth";verifyEmail=!0;redirectPath="/dashboard";sessionExpiresInHours=24;sessionAbsoluteExpiresInHours=672;adapter=new e;oauthProviders={};boot(){}async verifyPassword(c,s){return await Bun.password.verify(c,s)}async hashPassword(c){return await Bun.password.hash(c)}async generateForgotPasswordToken(c){let s=new Bun.CryptoHasher("sha256");return s.update(`${c.email}${Date.now()}`),s.digest("hex")}generateEmailVerificationToken(c){if(!this.verifyEmail)return"";let s=new Bun.CryptoHasher("sha256");return s.update(`${c}${Date.now()}`),s.digest("hex")}generateMagicLinkToken(c){let s=new Bun.CryptoHasher("sha256");return s.update(`${c}${Date.now()}`),s.digest("hex")}extendSession(c){return{}}onSignUp(c,s){}onSignIn(c){}onSignOut(c){}onForgotPassword(c,s){}onResetPassword(c){}onMagicLinkCreated(c,s){return}}class fc extends M{middlewares=["cache:private,0,no-store"];routes={"/translations/:locale/:scope*":this.get(async()=>{let c=new F,s=`/${c.params.scope??""}`,i=c.params.locale??B.use().detectLocale(c),l=B.use().getPageTranslations(i,s);return c.ctx().setCookie("i18n-locale",i,{expires:new Date(Date.now()+31536000000)}),{[i]:l}})}}class ic extends M{routes={"/resize":this.file(async()=>{let c=new F,s=new URL(c.rawRequest.url),f=s.searchParams.get("url"),i=Number(s.searchParams.get("w")),l=Number(s.searchParams.get("h")),w=s.searchParams.get("fit")??"cover",b=Number(s.searchParams.get("q"));if(!f)return new Response(JSON.stringify({error:"url query parameter is required"}),{headers:{"Content-Type":"application/json"},status:404});let g=`${f.startsWith("http")?"":`http://localhost:${process.env.PORT||5173}`}${f}`,n=await fetch(g);if(!n.ok)return new Response(JSON.stringify({error:"Image not found",info:g}),{headers:{"Content-Type":"application/json"},status:404});let p=Buffer.from(await n.arrayBuffer()),O=await Jc.use().service.driver.resize(p,{height:l,width:i,fit:w,quality:b});return n.headers.delete("Content-Type"),n.headers.delete("Content-Length"),new Response(O,{headers:{"Content-Type":"image/webp","Content-Length":`${O.byteLength}`,...n.headers.toJSON()}})})}}class Jc extends D{service;static _name="ImageOptimizationServiceContainer";constructor(c){super();this.service=c}}import{mkdir as lc,exists as wc,readdir as Sc}from"fs/promises";class R{static channel(c,s){let f=N.use().service.channels[c];if(!f)return console.error(`Channel ${c} not found`),{publish:()=>{}};let i=new f;return{publish:(l,w=!1)=>{let b=X(c,s);N.use().publish(b,JSON.stringify({topic:b,data:i.publish(l)}),w)}}}}class _ extends D{service;static _name="LoggingServiceContainer";writer;isReady=!1;logsDirPath=`${process.env.ROOT_DIR}/storage/logs`;flushTimeout;fileSize=0;writerSize=0;isCreatingFile=!1;currentLogFilePath;constructor(c){super();this.service=c;this.boot().then(()=>{this.isReady=!0})}async boot(){if(!process.env.ROOT_DIR)return;if(!await wc(`${process.env.ROOT_DIR}/storage`))await lc(`${process.env.ROOT_DIR}/storage`);if(!await wc(this.logsDirPath))await lc(this.logsDirPath);this.newLogFile()}async newLogFile(){if(!await wc(this.logsDirPath))await lc(this.logsDirPath);if(this.isCreatingFile=!0,this.currentLogFilePath){this.writer.flush(),this.writer.end(),this.writer=null;let f=new File([await Bun.file(this.currentLogFilePath).arrayBuffer()],this.currentLogFilePath.split("/").pop(),{type:"text/plain"});this.service.onLogFileClosed(f),this.fileSize=0,this.writerSize=0}let s=(await Sc(this.logsDirPath)).sort().reverse()[0];if(s){let f=Bun.file(`${this.logsDirPath}/${s}`);if(f.size<this.service.maxFileSize)this.currentLogFilePath=`${this.logsDirPath}/${s}`,this.writer=f.writer(),this.writer.write(await f.text()),this.writer.write(`
2
+ import{G as xc,H as _c,I as M,J as a,K as W,L as z,M as F,O as jc,P as d,Q as V,R as x}from"../http/index.js";import{U as B}from"../chunk-4551h204.js";import{V as Wc}from"../chunk-mtbjk5px.js";import{oc as Nc}from"../chunk-rdhrywt2.js";import{pc as k,rc as X,sc as Cc}from"../chunk-epfkjx6k.js";import{tc as $c}from"../chunk-rpk217v7.js";import{vc as D}from"../chunk-tp4mpr2z.js";import{xc as Kc}from"../chunk-fmwhbymf.js";import{AsyncLocalStorage as Zc}from"async_hooks";class N extends D{service;static _name="BroadcastingServiceContainer";publishCb;context=new Zc;constructor(c){super();this.service=c}onPublish(c){this.publishCb=c}publish(...c){let[s,f,i]=c;this.publishCb(s,f,i)}async handleMessage(c,s){let f=JSON.parse(s);if(f.type==="subscribe"){let i=Object.entries(this.service.channels).sort(([l],[w])=>l.length-w.length);for(let[l,w]of i){let b=new URLPattern({pathname:l});if(b.test({pathname:f.topic})){let y=b.exec({pathname:f.topic})?.pathname.groups,g=new w;if(await g.subscribe.call(g,y))c.subscribe(f.topic);break}}}if(f.type==="broadcast")c.publish(f.topic,JSON.stringify({topic:f.topic,data:f.payload}));if(f.type==="unsubscribe")c.unsubscribe(f.topic)}run(c,s){let f=c.get("Cookie"),i=new Map;if(f){let l=f.split(";");for(let w of l){let[b,y]=w.split("=");i.set(b.trim(),y.trim())}}this.context.run({headers:c,cookies:i},s)}}class U{static async user(){let c=z.getStore(),s=N.use().context.getStore(),f="",i="";if(c?.req)f=c.req.cookies.get("access_token"),i=c.req.headers.get("User-Agent");if(s?.cookies)i=s.headers.get("User-Agent"),f=s.cookies.get("access_token");let l=c?.user;if(!l)l=(await x.use().getSession(f,i))?.user,c?.setUser(l);if(l)return l;return null}static async guard(c){let s=await U.user();if(!s)throw new d;try{if(!await c(s))throw new d}catch(f){throw new d}}static async guardSafe(c){let s=await U.user();if(!s)return!1;try{return await c(s)}catch(f){return!1}}static async authenticate(c){await x.use().authenticate(c)}static async createMagicLink(c){return await x.use().createMagicLinkToken(c)}}class G{static getSupportedLocales(){return B.use().supportedLocales}static getDefaultLocale(){return B.use().service.defaultLocale}static locale(){return B.use().detectLocale(z.getStore().req)}static setLocale(c=G.locale()){let s=B.use(),f=c;if(!s.supportedLocales.includes(c))f=s.service.defaultLocale;return z.getStore().setCookie("i18n-locale",f,{expires:new Date(Date.now()+31536000000)}),f}}var Oc=Kc(Nc(),1);import{Buffer as Hc}from"buffer";class I extends D{service;static _name="FileStorageServiceContainer";constructor(c){super();this.service=c}}class Lc{static async put(c){return I.use().service.driver.put(c)}static async metadata(c){let s=Hc.from(await c.arrayBuffer());try{return await Oc.default(s).metadata()}catch{return{}}}static async fetch(c){return I.use().service.driver.fetch(c)}static list(c){return I.use().service.driver.list(c)}static delete(){}}function Fc(c){return Object.fromEntries(Object.entries(c).filter(([,s])=>{return s!==null&&s!==void 0}))}class Y extends Error{constructor(){super("Adapter not found");this.name="AdapterNotFound"}}class e{createSession(){throw new Y}deleteSession(){throw new Y}findSession(){throw new Y}findUserByEmailAddress(){throw new Y}updateSession(){throw new Y}createUser(){throw new Y}}class zc extends F{schema={email:{required:"Email is required",string:"Invalid email",email:"Invalid email"},password:{required:"Password is required"}}}class Tc extends F{schema={name:{string:"Invalid name",required:"Name is required","min:2":"Name must be at least 3 characters"},email:{string:"Invalid email",required:"Email is required",email:"Invalid email"},password:{required:"Password is required","min:8":"Password must be at least 8 characters"}}}class Dc extends F{schema={email:{required:"Email is required",email:"Invalid email"}}}class Bc extends F{schema={password:{required:"Password is required",password:"Invalid password"}}}class o extends xc{provider=x.use()?.provider;async me(){let c=await U.user();if(!c)throw new jc;return c}async verifyEmail(c=new F){let s=await c.input(),f=x.use()?.provider,i=await f.adapter.findUserByVerificationToken(s.get("token"));if(!i)return{email:null};if(await f.adapter.verifyUser(i.email),i)return{email:i.email};return{email:null}}async signInWithMagicLink(c=new F){let s=x.use(),f=s.provider,i=c.search.get("token"),l=decodeURIComponent(c.search.get("email")),w=null;try{w=await f.adapter.findUserMagicLinkToken({email:l,token:i})}catch(y){return console.log(y),{error:JSON.stringify(y)}}if(!w)return{error:"Invalid token"};await f.adapter.verifyUser(l),await f.adapter.deleteMagicLinkToken(l);let b=await s.createOrUpdateSession({email:l});return c.ctx().setCookie("access_token",b.token,{expires:b.absoluteExpiresAt}),await f.onSignIn(b),{session:b}}async signInWithPin(c=new F){let s=x.use(),f=s.provider,i=await c.input(),{email:l,pin:w}=i.toJSON();if(!await f.adapter.findUserMagicLinkToken({email:l,pin:w}))throw new W({pin:["Invalid pin"]});await f.adapter.deleteMagicLinkToken(l),await f.adapter.verifyUser(l);let y=await s.createOrUpdateSession({email:l});return c.ctx().setCookie("access_token",y.token,{expires:y.absoluteExpiresAt}),await f.onSignIn(y),{session:y}}async signIn(c=new zc){let s=await c.input(),{email:f,password:i}=s.toJSON(),l=x.use().provider,w=await l.adapter.findUserByEmailAddress(f,l.verifyEmail);if(!w)throw new W({invalid_credentials:["Invalid credentials"]});if(!await l.verifyPassword(i,w.password))throw new W({invalid_credentials:["Invalid credentials"]});let y=await x.use().createOrUpdateSession({email:w.email,id:w.id});c.ctx().setCookie("access_token",y.token,{expires:y.absoluteExpiresAt}),await l.onSignIn(w);let{password:g,...n}=w;return n}async signUp(c=new Tc){let s=await c.input(),{email:f,password:i,name:l,invitationId:w}=s.toJSON(),b=x.use().provider;if(await b.adapter.findUserByEmailAddress(f,!1))throw new W({email:["Email address already exists"]});let g=await b.hashPassword(i),n=B.use().detectLocale(c),p;if(w){if(p=await b.adapter.findInvitation(w,f),p)await b.adapter.deleteInvitationById(w)}let O,L;if(p)O=await b.adapter.createUser({email:f,name:l,password:g,emailVerifiedAt:new Date,locale:n}),await b.adapter.createAccount({organizationId:p.organizationId,userId:O.id,organizationRole:p.role});else L=await b.generateEmailVerificationToken(f),O=await b.adapter.createUser({email:f,name:l,password:g,verificationToken:L,locale:n});return await b.onSignUp(O,L),O}async signOut(c=new F){let s=c.cookies.get("access_token"),f=await U.user(),i=x.use().provider;return await i.adapter.deleteSession({token:s}),c.ctx().setCookie("access_token","",{expires:new Date(0)}),await i.onSignOut(f),{}}async forgotPassword(c=new Dc){let s=await c.input(),{email:f}=s.toJSON(),i=x.use().provider,l=await i.adapter.findUserByEmailAddress(f,i.verifyEmail);if(!l)return{};let w=await i.generateForgotPasswordToken(l);return await i.adapter.createPasswordResetToken({user:l,token:w}),await i.onForgotPassword(l,w),{}}async resetPassword(c=new Bc){let s=x.use().provider,f=await c.input(),{password:i,token:l}=f.toJSON(),w=await s.adapter.findPasswordResetToken({token:l});if(!w)throw new W({token:["Invalid token"]});if(V.Instant.from(w.createdAt.toISOString()).add({hours:24}).until(V.Now.instant()).sign>=0)throw new W({token:["Token expired"]});await s.adapter.deletePasswordResetToken({token:l});let y=await s.adapter.findUserByEmailAddress(w.user.email,s.verifyEmail);if(!y)throw new W({email:["User not found"]});let g=await s.hashPassword(i);return await s.adapter.updateUserPassword({id:y.id,password:g}),await s.adapter.deleteAllUserSessions(y.id),await s.onResetPassword(y),{}}async changePassword(c=new F){let s=x.use().provider,f=await U.user(),i=await c.input(),{oldPassword:l,newPassword:w}=i.toJSON(),{password:b}=await s.adapter.findUserByEmailAddress(f.email,s.verifyEmail);if(!await s.verifyPassword(l,b))throw new W({oldPassword:["Incorrect password"]});let g=await s.hashPassword(w);return await s.adapter.updateUserPassword({id:f.id,password:g}),await s.adapter.deleteAllUserSessions(f.id),{}}async oauthRedirect(c=new F){let{provider:s}=c.params,f=x.use().provider.oauthProviders[s];if(!f)throw new Error(`Invalid provider: ${s}`);return{destination:await f.getRedirectUrl(c)}}async oauthCallback(c=new F){let{provider:s}=c.params,f=x.use(),i=f.provider,l=i.oauthProviders[s],{email:w,name:b,username:y,providerId:g}=await l.onCallback(c);if(!y&&!w)throw new Error("Email or username is required");let n=w??`${y}:${s}`,p=await i.adapter.findUserByEmailAddress(n,!1),O=B.use().detectLocale(c);if(!p)p=await i.adapter.createUser({email:n,name:b,locale:O,emailVerifiedAt:new Date}),await i.adapter.createSocialAccount({provider:s,userId:p.id,email:n,username:y,providerId:g,expiresAt:new Date,accessToken:"",refreshToken:""});let L=await f.createOrUpdateSession({email:p.email,id:p.id});return c.ctx().setCookie("access_token",L.token,{expires:L.expiresAt}),await i.onSignIn(p),{destination:i.redirectPath}}async createMagicLinkToken(c=new F){let s=await c.input(),{email:f}=s.toJSON(),i=x.use(),l=i.provider,{user:w,pin:b,token:y}=await i.createMagicLinkToken(f);return await l.onMagicLinkCreated(w,{email:f,pin:b,token:y}),{email:f}}}class oc extends a{routes={"/:provider":this.redirect([o,"oauthRedirect"]),"/:provider/callback":this.redirect([o,"oauthCallback"])}}class cc extends a{routes={"/sign-in/magic-link":this.view("auth/MagicLinkSignIn",[o,"signInWithMagicLink"]),"/oauth":oc}}class sc extends M{middlewares=["cache:private"];routes={"/sign-in":this.post(o,"signIn"),"/sign-up":this.post(o,"signUp"),"/sign-out":this.post(o,"signOut"),"/forgot-password":this.post(o,"forgotPassword"),"/reset-password":this.post(o,"resetPassword"),"/change-password":this.post(o,"changePassword"),"/verify-email":this.post(o,"verifyEmail"),"/me":this.get(o,"me").middleware(["auth"]),"/magic-link":this.post(o,"createMagicLinkToken"),"/sign-in-with-pin":this.post(o,"signInWithPin")}}class Qc extends $c{basePath="/auth";verifyEmail=!0;redirectPath="/dashboard";sessionExpiresInHours=24;sessionAbsoluteExpiresInHours=672;adapter=new e;oauthProviders={};boot(){}async verifyPassword(c,s){return await Bun.password.verify(c,s)}async hashPassword(c){return await Bun.password.hash(c)}async generateForgotPasswordToken(c){let s=new Bun.CryptoHasher("sha256");return s.update(`${c.email}${Date.now()}`),s.digest("hex")}generateEmailVerificationToken(c){if(!this.verifyEmail)return"";let s=new Bun.CryptoHasher("sha256");return s.update(`${c}${Date.now()}`),s.digest("hex")}generateMagicLinkToken(c){let s=new Bun.CryptoHasher("sha256");return s.update(`${c}${Date.now()}`),s.digest("hex")}extendSession(c){return{}}onSignUp(c,s){}onSignIn(c){}onSignOut(c){}onForgotPassword(c,s){}onResetPassword(c){}onMagicLinkCreated(c,s){return}}class fc extends M{middlewares=["cache:private,0,no-store"];routes={"/translations/:locale/:scope*":this.get(async()=>{let c=new F,s=`/${c.params.scope??""}`,i=c.params.locale??B.use().detectLocale(c),l=B.use().getPageTranslations(i,s);return c.ctx().setCookie("i18n-locale",i,{expires:new Date(Date.now()+31536000000)}),{[i]:l}})}}class ic extends M{routes={"/resize":this.file(async()=>{let c=new F,s=new URL(c.rawRequest.url),f=s.searchParams.get("url"),i=Number(s.searchParams.get("w")),l=Number(s.searchParams.get("h")),w=s.searchParams.get("fit")??"cover",b=Number(s.searchParams.get("q"));if(!f)return new Response(JSON.stringify({error:"url query parameter is required"}),{headers:{"Content-Type":"application/json"},status:404});let g=`${f.startsWith("http")?"":`http://localhost:${process.env.PORT||5173}`}${f}`,n=await fetch(g);if(!n.ok)return new Response(JSON.stringify({error:"Image not found",info:g}),{headers:{"Content-Type":"application/json"},status:404});let p=Buffer.from(await n.arrayBuffer()),O=await Jc.use().service.driver.resize(p,{height:l,width:i,fit:w,quality:b});return n.headers.delete("Content-Type"),n.headers.delete("Content-Length"),new Response(O,{headers:{"Content-Type":"image/webp","Content-Length":`${O.byteLength}`,...n.headers.toJSON()}})})}}class Jc extends D{service;static _name="ImageOptimizationServiceContainer";constructor(c){super();this.service=c}}import{mkdir as lc,exists as wc,readdir as Sc}from"fs/promises";class R{static channel(c,s){let f=N.use().service.channels[c];if(!f)return console.error(`Channel ${c} not found`),{publish:()=>{}};let i=new f;return{publish:(l,w=!1)=>{let b=X(c,s);N.use().publish(b,JSON.stringify({topic:b,data:i.publish(l)}),w)}}}}class _ extends D{service;static _name="LoggingServiceContainer";writer;isReady=!1;logsDirPath=`${process.env.ROOT_DIR}/storage/logs`;flushTimeout;fileSize=0;writerSize=0;isCreatingFile=!1;currentLogFilePath;constructor(c){super();this.service=c;this.boot().then(()=>{this.isReady=!0})}async boot(){if(!process.env.ROOT_DIR)return;if(!await wc(`${process.env.ROOT_DIR}/storage`))await lc(`${process.env.ROOT_DIR}/storage`);if(!await wc(this.logsDirPath))await lc(this.logsDirPath);this.newLogFile()}async newLogFile(){if(!await wc(this.logsDirPath))await lc(this.logsDirPath);if(this.isCreatingFile=!0,this.currentLogFilePath){this.writer.flush(),this.writer.end(),this.writer=null;let f=new File([await Bun.file(this.currentLogFilePath).arrayBuffer()],this.currentLogFilePath.split("/").pop(),{type:"text/plain"});this.service.onLogFileClosed(f),this.fileSize=0,this.writerSize=0}let s=(await Sc(this.logsDirPath)).sort().reverse()[0];if(s){let f=Bun.file(`${this.logsDirPath}/${s}`);if(f.size<this.service.maxFileSize)this.currentLogFilePath=`${this.logsDirPath}/${s}`,this.writer=f.writer(),this.writer.write(await f.text()),this.writer.write(`
3
3
  `),this.writer.flush(),this.fileSize=f.size}if(!this.writer){let f=`${new Date(Date.now()).toISOString()}.log`.replaceAll(":","-");this.currentLogFilePath=`${this.logsDirPath}/${f}`;let i=Bun.file(`${this.logsDirPath}/${f}`);this.writer=i.writer(),this.fileSize=0,this.writerSize=0}this.isCreatingFile=!1}async log(c,s,f={}){if(!this.isReady)await new Promise((y)=>{let g=setInterval(()=>{if(this.isReady)y({}),clearInterval(g)},100)});let i=z.getStore(),l={};if(i)l={url:i.req.rawRequest.url,method:i.req.rawRequest.method,headers:i.req.rawRequest.headers,body:i.req.rawRequest.body};let w={timestamp:new Date(Date.now()).toISOString(),env:"production",level:c,message:s,metadata:{...l,...f}},b="";try{b=JSON.stringify(w)}catch(y){throw new Error("Metadata must be a valid JSON object")}this.writerSize+=b.length,this.fileSize+=b.length,this.writer.write(b),this.writer.write(`
4
4
  `),R.channel("/logs/live",{}).publish(JSON.stringify(w)),this.service.onLogCreated(w),this.tryFlush()}async tryFlush(){if(this.fileSize>this.service.maxFileSize){if(!this.isCreatingFile)await this.newLogFile()}if(this.writerSize>this.service.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 bc extends M{middlewares=["cache:private,0"];routes={"/live":this.get(async()=>{let c=Bun.file(_.use().currentLogFilePath);return new Response(await c.text(),{headers:{"Content-Type":"text/plain"}})})}}function Gc(c){let s=new Map;for(let f of c)if(typeof f==="string"){let[i,l=""]=f.split(":");if(i.startsWith("-")){if(s.has(i.replace("-","")))s.delete(i.replace("-",""))}else s.set(i,l.split(",").filter(Boolean))}else s.set(f,[]);return s}class E extends D{service;static _name="MiddlewareServiceContainer";constructor(c){super();this.service=c}runMiddleware(c){let s=new F;return Array.from(Gc(c).entries()).map(([f,i])=>{if(typeof f==="string"){let l=this.service.aliases[f];if(l){let w=new l(s);return()=>w.run.call(w,...i)}}else{if(_c(f)){let l=new f(s);return l.run.bind(l)}return f}}).filter(Boolean).reduce((f,i)=>{return async()=>{return{...await f(),...await i()}}},()=>Promise.resolve({}))()}}function Ic(c){return"run"in c}function Vc(c){return Object.hasOwn(c,"get")||Object.hasOwn(c,"post")||Object.hasOwn(c,"put")||Object.hasOwn(c,"delete")}function Ec(c){return Object.hasOwn(c,"first")&&Object.hasOwn(c,"second")}function kc(c){if("__brand"in c)return c.__brand==="ApiRouter";return!1}function yc(c,s="",f=[]){let i={};function l(w,b,y,g){let n=w==="/"?"":w,p=s==="/"?"":s,O=(`${p}${n}`===""?"/":`${p}${n}`).replaceAll("//","/");if(!i[O])i[O]={};i[O][b.toUpperCase()]={exec:y,middleware:[...f,...g]},i[O].OPTIONS={exec:()=>{let j=new F().ctx().headers;return new Response(null,{headers:j,status:204})},middleware:[]}}for(let[w,b]of Object.entries(c)){if(Ic(b)){let y=b,g=y.method,n=y.middlewares,p=y.run.bind(y);l(w,g,p,n)}if(Vc(b))for(let[y,g]of Object.entries(b)){let n=g.middlewares,p=g.run.bind(g);l(w,y,p,n)}if(kc(b)){let y=new b,g=yc(y.routes,`${s}${w}`,y.middlewares);for(let[n,p]of Object.entries(g))i[n.replaceAll("//","/")]=p}if(Ec(b)){let{first:y,second:g}=b;for(let[n,p]of Object.entries(y)){let O=p.middlewares,L=p.run.bind(p),[j,...$]=w.split("/").reverse();if(!j.startsWith(":"))throw new Error("Resource route must end with a dynamic segment");l($.reverse().join("/"),n,L,O)}for(let[n,p]of Object.entries(g)){let O=p.middlewares,L=p.run.bind(p);l(w,n,L,O)}}}return Object.fromEntries(Object.entries(i).sort(([w],[b])=>{let y=w.split("/").length+w.split(":").length,g=b.split("/").length+b.split(":").length;return y-g}))}function nc(c){return c.replace(/\([^)]*\)/g,"").replace(/\/\//g,"/")}function A(c){let s={};for(let[f,i]of Object.entries(c))if("run"in i){let l=i;if("children"in l){let w=new l.children,b=A(w.routes);for(let[y,{exec:g,middleware:n}]of Object.entries(b)){let p=f==="/"?y:`${f}${y}`,O=y==="/"&&f!=="/"?f:p,L=(j)=>l.run.call(l,j,f);s[nc(O)]={exec:[L,...g],middleware:[...l.middlewares,...n],viewPath:l.viewPath}}}else{let w=(b)=>l.run.call(l,b,f);s[nc(f)]={exec:[w],middleware:l.middlewares,viewPath:l.viewPath}}}else{let l=new i,w=A(l.routes);for(let[b,{exec:y,middleware:g,viewPath:n}]of Object.entries(w)){let p=f==="/"?b:`${f}${b}`,O=b==="/"&&f!=="/"?f:p;s[nc(O)]={exec:y,middleware:[...l.middlewares,...g],viewPath:n}}}return Object.fromEntries(Object.entries(s).sort(([f],[i])=>{let l=f.split("/").length+f.split(":").length,w=i.split("/").length+i.split(":").length;return l-w}))}import{renderToReadableStream as Rc}from"react-dom/server.browser";import{createElement as Mc,Fragment as Ac}from"react";function dc(c){return c.replace(/\([^)]*\)/g,"").replace(/\/\//g,"/")}function C(c){let s={};for(let[f,i]of Object.entries(c))if("run"in i){let l=i.viewPath;if("children"in i){s[f]=[l];let w=new i.children,b=C(w.routes);for(let[y,g]of Object.entries(b)){let n=f==="/"?y:`${f}${y}`,p=y==="/"&&f!=="/"?f:n;s[p]=[l,...g]}if(s[f].length===1)delete s[f]}else s[f]=[l]}else{let l=new i,w=C(l.routes);for(let[b,y]of Object.entries(w)){let g=f==="/"?b:`${f}${b}`,n=b==="/"&&f!=="/"?f:g;s[n]=y}}return Object.fromEntries(Object.entries(s).map(([f,i])=>[dc(f),i]))}function t(c){let s=[];for(let[f,i]of Object.entries(c))if("run"in i){let l=i.viewPath;if(l==="__")continue;if(l==="REDIRECT")continue;if("children"in i){let w=new i.children,b=t(w.routes);s.push([l,b])}else s.push([l,[]])}else{let l=new i,w=t(l.routes);s.push(...w)}return s}function gc(c){let s=[];for(let[f,i]of c)s.push(f,...gc(i).flat());return Array.from(new Set(s))}class P{static debug(c,s){_.use().log("debug",c,s)}static info(c,s){_.use().log("info",c,s)}static notice(c,s){_.use().log("notice",c,s)}static warning(c,s){_.use().log("warning",c,s)}static error(c,s){_.use().log("error",c,s)}static critical(c,s){_.use().log("critical",c,s)}static alert(c,s){_.use().log("alert",c,s)}static emergency(c,s){_.use().log("emergency",c,s)}}class pc extends D{service;static _name="ViewRouterServiceContainer";flatViewRoutes={};routeManifest={};componentTree=[];flatComponentTree=[];root=null;constructor(c){super();this.service=c;let s={"/":c.rootRouter,"/auth":cc};this.flatViewRoutes=A(s),this.routeManifest=C(s),this.componentTree=t(s),this.flatComponentTree=gc(this.componentTree),this.root=c.root}boot(){}async onRequestEnd(c){if(!c.cookies.has("session_id"))c.ctx().setCookie("session_id",Bun.randomUUIDv7(),{httpOnly:!0,secure:!0,sameSite:"Strict",expires:new Date(Date.now()+31536000000)});return await this.service.onRequestEnd(c)}async render(c){let{csrfTokenHMAC:s,currentPathName:f,headers:i,i18n:l,params:w,pathname:b,prefetchedData:y,url:g,user:n,viewData:p,breadcrumbs:O}=c,L={kind:"view",data:{pageData:{[b]:p},__csrf:s.toString("base64"),prefetchedData:y,i18n:l,auth:{user:n},routeManifest:this.routeManifest,breadcrumbs:O,router:{pathname:f,params:w,currentPath:b,searchParams:g.search,is404:!f?!0:!1},componentTree:[["404",[]],...this.componentTree]},head:{}},j=this.root,$=this.routeManifest[f];return async(m)=>{let{bootstrapModules:J,loaders:Z,getStyles:q,viewImportMap:H,cssManifest:Q}=m;L.data.cssManifest=Q;let K=await Rc(Mc(Ac,{children:[...await q($),Mc(j,{data:L.data,viewImportMap:H,key:"root"})]}),{bootstrapScriptContent:`window.__GEMI_DATA__ = ${JSON.stringify(L.data)}; window.loaders=${Z}`,bootstrapModules:J});return new Response(K,{status:!f?404:200,headers:i})}}async handleViewRequest(c){let s=new URL(c.url),f=s.pathname.endsWith(".json"),i=s.pathname.replace(".json",""),l=[],w=[],b=null,y={};try{for(let[n,p]of Object.entries(this.flatViewRoutes)){let O=new Wc({pathname:n});if(O.test({pathname:i})){b=n,y=O.exec({pathname:i})?.pathname.groups,l=p.exec,w=p.middleware;break}}}catch(n){throw n}let g=new F(c,y,"view",b);return await z.run(g,async()=>{G.setLocale();let n=null,p=z.getStore(),O=p.req;try{await E.use().runMiddleware(w);let L=await Promise.all([...l.map((T)=>T(O)),...Array.from(p.prefetchPromiseQueue).map((T)=>T())]),j=p.cookies,$=p.headers,m=p.prefetchedResources;n={data:L,cookies:j,headers:$,user:p.user,prefetchedData:Object.fromEntries(m.entries()),currentPathName:O.routePath,params:O.params};let{params:J,currentPathName:Z,user:q}=n,H={},Q={};for(let T of L){let[S,r]=Object.entries(T)?.[0]??[];if(!S||!r)continue;Q[`${S}:${Z}`]=r.breadcrumb,H[S]=r}let K=B.use(),Xc=K.isEnabled,u={};if(Xc){let T=K.detectLocale(new F(c,J)),S=K.getPageTranslations(T,Z);u={supportedLocales:K.supportedLocales,currentLocale:T,dictionary:{[T]:S}}}if(f)return $.set("Content-Type","application/json"),j.forEach((T)=>$.append("Set-Cookie",T.toString())),await this.service.onRequestEnd(O),new Response(JSON.stringify({data:{[i]:H},breadcrumbs:Q,prefetchedData:n.prefetchedData,i18n:u,is404:!Z}),{headers:$});$.set("Content-Type","text/html");for(let T of j)$.append("Set-Cookie",T.toString());let Yc=Bun.CSRF.generate(process.env.SECRET);$.append("Set-Cookie",`csrf_token=${Yc}; HttpOnly; Secure; SameSite=Strict; Expires=${new Date(Date.now()+86400000).toUTCString()}`);try{await this.onRequestEnd(O)}catch(T){P.error(T?.message??'Error in "onRequestEnd" event handler',{err:JSON.stringify(T)})}return await this.render({csrfTokenHMAC:Buffer.from(""),currentPathName:Z,headers:$,i18n:u,params:J,pathname:s.pathname,prefetchedData:n.prefetchedData,url:s,user:q,viewData:H,breadcrumbs:Q})}catch(L){if(L.kind===k)if(f){let{status:j=400,data:$,directive:m,headers:J}=L.payload.api;return new Response(JSON.stringify({data:$,directive:m}),{headers:J,status:j})}else{let{status:j=400,error:$}=L.payload.view;return new Response($?.message,{...L.payload.view,status:j})}else throw this.service.onRequestFail(O,L),L}})}}class mc extends M{routes={"/api-routes":this.get(()=>{let c=v.use().flatRoutes,s=[];for(let[f,i]of Object.entries(c))for(let[l,w]of Object.entries(i)){let{exec:b,middleware:y}=w;s.push({path:f,method:l,middleware:y})}return s}),"/view-routes":this.get(()=>{let c=pc.use().flatViewRoutes,s=[];for(let[f,{middleware:i,viewPath:l}]of Object.entries(c))s.push({path:f,method:"GET",viewPath:l,middleware:i});return s})}}class v extends D{service;static _name="ApiRouterServiceContainer";flatRoutes={};constructor(c){super();this.service=c;this.flatRoutes=yc({"/":this.service.rootRouter.bind(this.service),"/auth":sc,"/__gemi__/services/i18n":fc,"/__gemi__/services/logs":bc,"/__gemi__/services/image":ic,"/__gemi__/debug":mc})}getRouteHandlerAndParams(c){let f=new URL(c.url).pathname.replace("/api",""),i={},l;for(let[w]of Object.entries(this.flatRoutes))try{let b=new URLPattern({pathname:w});if(b.test({pathname:f})){l=w,i=b.exec({pathname:f})?.pathname.groups;break}}catch(b){console.error(b)}return{params:i,path:l}}async runRouteMiddleware(c,s){let i=this.flatRoutes[c][s.rawRequest.method].middleware;try{await E.use().runMiddleware(i)}catch(l){if(l.kind===k){if(s.rawRequest.url.includes("/api")){let{status:w=400,data:b,headers:y}=l.payload.api;return new Response(JSON.stringify(b),{status:w,headers:{"Content-Type":"application/json",...y}})}}else throw this.service.onRequestFail(s,l),console.error(l),l}}async getRouteData(c){let s=this.flatRoutes[c],f=z.getStore(),i=s[f.req.rawRequest.method].exec??(()=>Promise.resolve({})),l={};try{l=await i()}catch(w){if(w.kind===k){let{status:b=400,data:y,headers:g}=w.payload.api;return new Response(JSON.stringify(y),{status:b,headers:{"Content-Type":"application/json",...g}})}throw this.service.onRequestFail(f.req,w),console.error(w),w}return l}async handleApiRequest(c){let{params:s,path:f}=this.getRouteHandlerAndParams(c),i=this.flatRoutes[f];if(!i||!i[c.method])return new Response(JSON.stringify({error:{message:"Not found"}}),{status:404});let l=new F(c,s,"api",f);if(!c.url.includes("/__gemi__"))this.service.onRequestStart(l);return await z.run(l,async()=>{let w=z.getStore();w.setRequest(l);let b=await this.runRouteMiddleware(f,l);if(b instanceof Response)return b;let y=await this.getRouteData(f);if(y instanceof Response)return y;let g=w.headers;if(g.append("Content-Type","application/json"),w.cookies.forEach((n)=>g.append("Set-Cookie",n.toString())),w.destroy(),!c.url.includes("/__gemi__"))this.service.onRequestEnd(l);return new Response(JSON.stringify(y),{headers:g})})}}class h{static prepare(c,...s){let f={params:{},search:{}},[i={}]=s,{search:l,params:w}={...f,...i},b=z.getStore();if(b.req.kind==="api")throw new Error("Query.prefetch() cannot be called from an API request");let y=b.req.rawRequest,g=new URL(y.url),n=new URLSearchParams(Fc(l));n.delete("json"),n.sort();let p=[`${X(c,w)}`,n.toString()].filter((J)=>J.length>0).join("?"),O=`${g.origin}/${p}`,L=new Request(O,{headers:y.headers}),j=new F(L,w),$=(J)=>{b.prefetchedResources.set(X(c,w),{[n.toString()]:J})},m=()=>{return z.run(j,async()=>{let J=await v.use().getRouteData(c);return $(J),J})};return{instant:m,prefetch:()=>{b.prefetchPromiseQueue.add(m)}}}static instant(c,...s){return h.prepare(c,...s).instant()}static prefetch(c,...s){return h.prepare(c,...s).prefetch()}}class Uc{static absolute(c,...s){return`${process.env.HOST_NAME}${X(String(c),s[0]??{})}`}static relative(c,...s){return X(String(c),s[0]??{})}}export{Uc as Url,Cc as Redirect,h as Query,P as Log,G as I18n,Lc as FileStorage,R as Broadcast,U as Auth};export{N as y,I as z,_ as A,Qc as B,Jc as C,E as D,pc as E,v as F};
5
5
 
6
- //# debugId=D86968DEFFB8914B64756E2164756E21
6
+ //# debugId=432F301C64DEAC6464756E2164756E21
@@ -28,6 +28,6 @@
28
28
  "import type { UrlParser, ViewPaths } from \"../client/types\";\nimport { applyParams } from \"../utils/applyParams\";\n\nexport class Url {\n static absolute<T extends ViewPaths>(\n key: T,\n ...args: UrlParser<T> extends Record<string, never>\n ? []\n : [params: UrlParser<T>]\n ) {\n return `${process.env.HOST_NAME}${applyParams(String(key), args[0] ?? {})}`;\n }\n\n static relative<T extends ViewPaths>(\n key: T,\n ...args: UrlParser<T> extends Record<string, never>\n ? []\n : [params: UrlParser<T>]\n ) {\n return applyParams(String(key), args[0] ?? {});\n }\n}\n"
29
29
  ],
30
30
  "mappings": "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",
31
- "debugId": "D86968DEFFB8914B64756E2164756E21",
31
+ "debugId": "432F301C64DEAC6464756E2164756E21",
32
32
  "names": []
33
33
  }