gemi 0.8.6 → 0.8.8

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 (91) hide show
  1. package/dist/app/index.js +2 -2
  2. package/dist/app/index.js.map +1 -1
  3. package/dist/auth/adapters/prisma.d.ts.map +1 -1
  4. package/dist/broadcasting/index.js +1 -1
  5. package/dist/{chunk-c28nrk1f.js → chunk-1tp2s8s2.js} +3 -3
  6. package/dist/{chunk-c28nrk1f.js.map → chunk-1tp2s8s2.js.map} +1 -1
  7. package/dist/chunk-1vrq8vch.js +4 -0
  8. package/dist/{chunk-w7mr84t1.js.map → chunk-1vrq8vch.js.map} +1 -1
  9. package/dist/chunk-5gfvsf2h.js +4 -0
  10. package/dist/{chunk-sfh0tdtv.js.map → chunk-5gfvsf2h.js.map} +5 -5
  11. package/dist/{chunk-8mn27b0d.js → chunk-5kxgspw3.js} +2 -2
  12. package/dist/{chunk-8mn27b0d.js.map → chunk-5kxgspw3.js.map} +1 -1
  13. package/dist/{chunk-vqttt2vp.js → chunk-5nkd0pky.js} +3 -3
  14. package/dist/{chunk-vqttt2vp.js.map → chunk-5nkd0pky.js.map} +1 -1
  15. package/dist/chunk-60vt9r0e.js +5 -0
  16. package/dist/{chunk-qg3gere6.js.map → chunk-60vt9r0e.js.map} +13 -5
  17. package/dist/{chunk-6zwq2e83.js → chunk-87tyw2m9.js} +2 -2
  18. package/dist/{chunk-6zwq2e83.js.map → chunk-87tyw2m9.js.map} +1 -1
  19. package/dist/chunk-8b17k5kr.js +4 -0
  20. package/dist/chunk-8b17k5kr.js.map +10 -0
  21. package/dist/{chunk-09kjpedw.js → chunk-a167bv1a.js} +2 -2
  22. package/dist/{chunk-09kjpedw.js.map → chunk-a167bv1a.js.map} +1 -1
  23. package/dist/chunk-d3a38r6t.js +4 -0
  24. package/dist/{chunk-ftff3wvn.js.map → chunk-d3a38r6t.js.map} +6 -6
  25. package/dist/chunk-dn7n97pc.js +4 -0
  26. package/dist/{chunk-9gnm7x44.js.map → chunk-dn7n97pc.js.map} +2 -2
  27. package/dist/chunk-fqqevh9q.js +11 -0
  28. package/dist/{chunk-14vhgp5w.js.map → chunk-fqqevh9q.js.map} +5 -5
  29. package/dist/chunk-fv48m6ej.js +8 -0
  30. package/dist/{chunk-s8k7fmfv.js.map → chunk-fv48m6ej.js.map} +2 -2
  31. package/dist/chunk-gbyyfd5n.js +4 -0
  32. package/dist/{chunk-v2mgf9tn.js.map → chunk-gbyyfd5n.js.map} +2 -2
  33. package/dist/chunk-haysh2cn.js +4 -0
  34. package/dist/{chunk-jy1fag6m.js.map → chunk-haysh2cn.js.map} +2 -2
  35. package/dist/chunk-jk9zhs7r.js +3 -0
  36. package/dist/chunk-jk9zhs7r.js.map +16 -0
  37. package/dist/chunk-jmr4pqkg.js +4 -0
  38. package/dist/{chunk-d08fsdk6.js.map → chunk-jmr4pqkg.js.map} +2 -2
  39. package/dist/{chunk-15121mab.js → chunk-kgvx8f4w.js} +2 -2
  40. package/dist/{chunk-15121mab.js.map → chunk-kgvx8f4w.js.map} +1 -1
  41. package/dist/chunk-mvwes2jb.js +4 -0
  42. package/dist/{chunk-snyhzjf7.js.map → chunk-mvwes2jb.js.map} +2 -2
  43. package/dist/chunk-p6spvhhx.js +4 -0
  44. package/dist/{chunk-jmft2253.js.map → chunk-p6spvhhx.js.map} +6 -6
  45. package/dist/{chunk-zm0pq7zf.js → chunk-pn0gn3dz.js} +2 -2
  46. package/dist/{chunk-zm0pq7zf.js.map → chunk-pn0gn3dz.js.map} +1 -1
  47. package/dist/{chunk-e6q6yr9r.js → chunk-rr5pxvn2.js} +3 -3
  48. package/dist/{chunk-e6q6yr9r.js.map → chunk-rr5pxvn2.js.map} +1 -1
  49. package/dist/{chunk-xam5kps4.js → chunk-svsxbj15.js} +2 -2
  50. package/dist/{chunk-xam5kps4.js.map → chunk-svsxbj15.js.map} +1 -1
  51. package/dist/chunk-t01kx7b9.js +20 -0
  52. package/dist/{chunk-s387x86q.js.map → chunk-t01kx7b9.js.map} +8 -21
  53. package/dist/{chunk-72ymmgtz.js → chunk-vw5n61vd.js} +3 -3
  54. package/dist/{chunk-72ymmgtz.js.map → chunk-vw5n61vd.js.map} +1 -1
  55. package/dist/{chunk-rrb06401.js → chunk-w7fz5zck.js} +3 -3
  56. package/dist/{chunk-rrb06401.js.map → chunk-w7fz5zck.js.map} +1 -1
  57. package/dist/chunk-zyqwxmp6.js +4 -0
  58. package/dist/{chunk-f8w5mnyk.js.map → chunk-zyqwxmp6.js.map} +2 -2
  59. package/dist/email/index.js +2 -2
  60. package/dist/email/index.js.map +1 -1
  61. package/dist/facades/Redirect.d.ts +8 -1
  62. package/dist/facades/Redirect.d.ts.map +1 -1
  63. package/dist/facades/index.js +2 -2
  64. package/dist/facades/index.js.map +4 -4
  65. package/dist/http/index.js +2 -2
  66. package/dist/http/index.js.map +1 -1
  67. package/dist/kernel/index.js +2 -2
  68. package/dist/kernel/index.js.map +3 -3
  69. package/dist/server/index.js +2 -2
  70. package/dist/server/index.js.map +1 -1
  71. package/dist/services/index.js +3 -3
  72. package/dist/services/index.js.map +2 -2
  73. package/package.json +1 -1
  74. package/dist/chunk-14vhgp5w.js +0 -11
  75. package/dist/chunk-8h7xg91g.js +0 -3
  76. package/dist/chunk-8h7xg91g.js.map +0 -15
  77. package/dist/chunk-9gnm7x44.js +0 -4
  78. package/dist/chunk-d08fsdk6.js +0 -4
  79. package/dist/chunk-f8w5mnyk.js +0 -4
  80. package/dist/chunk-ftff3wvn.js +0 -4
  81. package/dist/chunk-jmft2253.js +0 -4
  82. package/dist/chunk-jy1fag6m.js +0 -4
  83. package/dist/chunk-qg3gere6.js +0 -5
  84. package/dist/chunk-r7y238s5.js +0 -4
  85. package/dist/chunk-r7y238s5.js.map +0 -16
  86. package/dist/chunk-s387x86q.js +0 -20
  87. package/dist/chunk-s8k7fmfv.js +0 -8
  88. package/dist/chunk-sfh0tdtv.js +0 -4
  89. package/dist/chunk-snyhzjf7.js +0 -4
  90. package/dist/chunk-v2mgf9tn.js +0 -4
  91. package/dist/chunk-w7mr84t1.js +0 -4
@@ -1,4 +1,4 @@
1
- import{g as B}from"./chunk-641dtrzq.js";import{tb as L}from"./chunk-c28nrk1f.js";import{Ab as Q,Db as T,zb as K}from"./facades/index.js";import{Qb as H}from"./chunk-e6q6yr9r.js";import{Tb as Z,Wb as J,Xb as W,Zb as G}from"./chunk-8mn27b0d.js";function g(f){let n={};for(let[o,i]of Object.entries(f))if("run"in i){let t=i;if("children"in t){let p=new t.children,c=g(p.routes);for(let[u,{exec:s,middleware:y}]of Object.entries(c)){let l=o==="/"?u:`${o}${u}`,V=u==="/"&&o!=="/"?o:l;n[V]={exec:[t.run.bind(t),...s],middleware:[...t.middlewares,...y]}}}else n[o]={exec:[t.run.bind(t)],middleware:t.middlewares}}else{let t=new i,p=g(t.routes);for(let[c,{exec:u,middleware:s}]of Object.entries(p)){let y=o==="/"?c:`${o}${c}`,l=c==="/"&&o!=="/"?o:y;n[l]={exec:u,middleware:[...t.middlewares,...s]}}}return Object.fromEntries(Object.entries(n).sort(([o],[i])=>{let t=o.split("/").length+o.split(":").length,p=i.split("/").length+i.split(":").length;return t-p}))}import{renderToReadableStream as S}from"react-dom/server.browser";import{createElement as Y,Fragment as v}from"react";function _(f){let n={};for(let[o,i]of Object.entries(f))if("run"in i){let t=i.viewPath;if("children"in i)n[o]=[t];if("children"in i){let p=new i.children,c=_(p.routes);for(let[u,s]of Object.entries(c)){let y=o==="/"?u:`${o}${u}`,l=u==="/"&&o!=="/"?o:y;n[l]=[t,...s]}}else n[o]=[t]}else{let t=new i,p=_(t.routes);for(let[c,u]of Object.entries(p)){let s=o==="/"?c:`${o}${c}`,y=c==="/"&&o!=="/"?o:s;n[y]=u}}return n}function m(f){let n=[];for(let[o,i]of Object.entries(f))if("run"in i){let t=i.viewPath;if(t==="__")continue;if("children"in i){let p=new i.children,c=m(p.routes);n.push([t,c])}else n.push([t,[]])}else{let t=new i,p=m(t.routes);n.push(...p)}return n}function z(f){let n=[];for(let[o,i]of f)n.push(o,...z(i).flat());return Array.from(new Set(n))}import{randomBytes as r,createHmac as q}from"crypto";class a extends G{f;static _name="ViewRouterServiceContainer";flatViewRoutes={};routeManifest={};componentTree=[];flatComponentTree=[];root=null;constructor(f){super();this.service=f;let n={"/":f.rootRouter,"/auth":Q};this.flatViewRoutes=g(n),this.routeManifest=_(n),this.componentTree=m(n),this.flatComponentTree=z(this.componentTree),this.root=f.root}boot(){}generateCSRFTokenWithHmac(){let f=Buffer.from(process.env.SECRET,"utf8"),o=r(21).toString("base64"),i=q("sha256",f);i.update(o);let t=i.digest();return{csrfToken:o,csrfTokenHMAC:t}}async onRequestEnd(f){if(!f.cookies.has("session_id"))f.ctx().setCookie("session_id",L(),{httpOnly:!0,secure:!0,sameSite:"Strict",expires:new Date(Date.now()+31536000000)});return await this.service.onRequestEnd(f)}async handleViewRequest(f){let n=new URL(f.url),o=n.searchParams.get("json"),i=[],t=[],p=null,c={};try{for(let[s,y]of Object.entries(this.flatViewRoutes)){let l=new B({pathname:s});if(l.test({pathname:n.pathname})){p=s,c=l.exec({pathname:n.pathname})?.pathname.groups,i=y.exec,t=y.middleware;break}}}catch(s){throw s}let u=new W(f,c,"view",p);return await J.run(u,async()=>{let s=null,y=J.getStore(),l=y.req;try{await T.use().runMiddleware(t);let V=await Promise.all([...i.map((w)=>w(l)),...Array.from(y.prefetchPromiseQueue).map((w)=>w())]),j=y.cookies,b=y.headers,h=y.prefetchedResources;s={data:V,cookies:j,headers:b,user:y.user,prefetchedData:Object.fromEntries(h.entries()),currentPathName:l.routePath,params:l.params};let{params:x,currentPathName:O,user:P}=s,X=V.reduce((w,$)=>{return{...w,...$}},{}),e=H.use(),U=e.isEnabled,F={};if(U){let w=e.detectLocale(new W(f,x)),$=e.getPageTranslations(w,O);F={supportedLocales:e.supportedLocales,currentLocale:w,dictionary:{[w]:$}}}if(o)return b.set("Content-Type","application/json"),j.forEach((w)=>b.append("Set-Cookie",w.toString())),await this.service.onRequestEnd(l),new Response(JSON.stringify({data:{[n.pathname]:X},prefetchedData:s.prefetchedData,i18n:F,is404:!O}),{headers:b});b.set("Content-Type","text/html"),j.forEach((w)=>b.append("Set-Cookie",w.toString()));let{csrfToken:k,csrfTokenHMAC:A}=this.generateCSRFTokenWithHmac();b.append("Set-Cookie",`csrf_token=${k}; HttpOnly; Secure; SameSite=Strict; Expires=${new Date(Date.now()+86400000).toUTCString()}`);let d={kind:"view",data:{pageData:{[n.pathname]:X},__csrf:A.toString("base64"),prefetchedData:s.prefetchedData,i18n:F,auth:{user:P},routeManifest:this.routeManifest,router:{pathname:O,params:x,currentPath:n.pathname,searchParams:n.search,is404:!O?!0:!1},componentTree:[["404",[]],...this.componentTree]},head:{}};try{await this.onRequestEnd(l)}catch(w){K.error(w?.message??'Error in "onRequestEnd" event handler',{err:JSON.stringify(w)})}let I=this.root,C=this.routeManifest[O];return async(w)=>{let{bootstrapModules:$,loaders:R,getStyles:E,viewImportMap:M,cssManifest:D}=w;d.data.cssManifest=D;let N=await S(Y(v,{children:[...await E(C),Y(I,{data:d.data,viewImportMap:M,key:"root"})]}),{bootstrapScriptContent:`window.__GEMI_DATA__ = ${JSON.stringify(d.data)}; window.loaders=${R}`,bootstrapModules:$});return new Response(N,{status:!O?404:200,headers:b})}}catch(V){if(V.kind===Z)if(o){let{status:j=400,data:b,directive:h,headers:x}=V.payload.api;return new Response(JSON.stringify({data:b,directive:h}),{headers:x,status:j})}else{let{status:j=400,error:b}=V.payload.view;return new Response(b?.message,{...V.payload.view,status:j})}else throw this.service.onRequestFail(l,V),V}})}}
1
+ import{g as B}from"./chunk-641dtrzq.js";import{vb as L}from"./chunk-1tp2s8s2.js";import{Bb as K,Cb as Q,Fb as T}from"./facades/index.js";import{Sb as H}from"./chunk-rr5pxvn2.js";import{$b as G,Vb as Z,Yb as J,Zb as W}from"./chunk-5kxgspw3.js";function g(f){let n={};for(let[o,i]of Object.entries(f))if("run"in i){let t=i;if("children"in t){let p=new t.children,c=g(p.routes);for(let[u,{exec:s,middleware:y}]of Object.entries(c)){let l=o==="/"?u:`${o}${u}`,V=u==="/"&&o!=="/"?o:l;n[V]={exec:[t.run.bind(t),...s],middleware:[...t.middlewares,...y]}}}else n[o]={exec:[t.run.bind(t)],middleware:t.middlewares}}else{let t=new i,p=g(t.routes);for(let[c,{exec:u,middleware:s}]of Object.entries(p)){let y=o==="/"?c:`${o}${c}`,l=c==="/"&&o!=="/"?o:y;n[l]={exec:u,middleware:[...t.middlewares,...s]}}}return Object.fromEntries(Object.entries(n).sort(([o],[i])=>{let t=o.split("/").length+o.split(":").length,p=i.split("/").length+i.split(":").length;return t-p}))}import{renderToReadableStream as S}from"react-dom/server.browser";import{createElement as Y,Fragment as v}from"react";function _(f){let n={};for(let[o,i]of Object.entries(f))if("run"in i){let t=i.viewPath;if("children"in i)n[o]=[t];if("children"in i){let p=new i.children,c=_(p.routes);for(let[u,s]of Object.entries(c)){let y=o==="/"?u:`${o}${u}`,l=u==="/"&&o!=="/"?o:y;n[l]=[t,...s]}}else n[o]=[t]}else{let t=new i,p=_(t.routes);for(let[c,u]of Object.entries(p)){let s=o==="/"?c:`${o}${c}`,y=c==="/"&&o!=="/"?o:s;n[y]=u}}return n}function m(f){let n=[];for(let[o,i]of Object.entries(f))if("run"in i){let t=i.viewPath;if(t==="__")continue;if("children"in i){let p=new i.children,c=m(p.routes);n.push([t,c])}else n.push([t,[]])}else{let t=new i,p=m(t.routes);n.push(...p)}return n}function z(f){let n=[];for(let[o,i]of f)n.push(o,...z(i).flat());return Array.from(new Set(n))}import{randomBytes as r,createHmac as q}from"crypto";class a extends G{f;static _name="ViewRouterServiceContainer";flatViewRoutes={};routeManifest={};componentTree=[];flatComponentTree=[];root=null;constructor(f){super();this.service=f;let n={"/":f.rootRouter,"/auth":Q};this.flatViewRoutes=g(n),this.routeManifest=_(n),this.componentTree=m(n),this.flatComponentTree=z(this.componentTree),this.root=f.root}boot(){}generateCSRFTokenWithHmac(){let f=Buffer.from(process.env.SECRET,"utf8"),o=r(21).toString("base64"),i=q("sha256",f);i.update(o);let t=i.digest();return{csrfToken:o,csrfTokenHMAC:t}}async onRequestEnd(f){if(!f.cookies.has("session_id"))f.ctx().setCookie("session_id",L(),{httpOnly:!0,secure:!0,sameSite:"Strict",expires:new Date(Date.now()+31536000000)});return await this.service.onRequestEnd(f)}async handleViewRequest(f){let n=new URL(f.url),o=n.searchParams.get("json"),i=[],t=[],p=null,c={};try{for(let[s,y]of Object.entries(this.flatViewRoutes)){let l=new B({pathname:s});if(l.test({pathname:n.pathname})){p=s,c=l.exec({pathname:n.pathname})?.pathname.groups,i=y.exec,t=y.middleware;break}}}catch(s){throw s}let u=new W(f,c,"view",p);return await J.run(u,async()=>{let s=null,y=J.getStore(),l=y.req;try{await T.use().runMiddleware(t);let V=await Promise.all([...i.map((w)=>w(l)),...Array.from(y.prefetchPromiseQueue).map((w)=>w())]),j=y.cookies,b=y.headers,h=y.prefetchedResources;s={data:V,cookies:j,headers:b,user:y.user,prefetchedData:Object.fromEntries(h.entries()),currentPathName:l.routePath,params:l.params};let{params:x,currentPathName:O,user:P}=s,X=V.reduce((w,$)=>{return{...w,...$}},{}),e=H.use(),U=e.isEnabled,F={};if(U){let w=e.detectLocale(new W(f,x)),$=e.getPageTranslations(w,O);F={supportedLocales:e.supportedLocales,currentLocale:w,dictionary:{[w]:$}}}if(o)return b.set("Content-Type","application/json"),j.forEach((w)=>b.append("Set-Cookie",w.toString())),await this.service.onRequestEnd(l),new Response(JSON.stringify({data:{[n.pathname]:X},prefetchedData:s.prefetchedData,i18n:F,is404:!O}),{headers:b});b.set("Content-Type","text/html"),j.forEach((w)=>b.append("Set-Cookie",w.toString()));let{csrfToken:k,csrfTokenHMAC:A}=this.generateCSRFTokenWithHmac();b.append("Set-Cookie",`csrf_token=${k}; HttpOnly; Secure; SameSite=Strict; Expires=${new Date(Date.now()+86400000).toUTCString()}`);let d={kind:"view",data:{pageData:{[n.pathname]:X},__csrf:A.toString("base64"),prefetchedData:s.prefetchedData,i18n:F,auth:{user:P},routeManifest:this.routeManifest,router:{pathname:O,params:x,currentPath:n.pathname,searchParams:n.search,is404:!O?!0:!1},componentTree:[["404",[]],...this.componentTree]},head:{}};try{await this.onRequestEnd(l)}catch(w){K.error(w?.message??'Error in "onRequestEnd" event handler',{err:JSON.stringify(w)})}let I=this.root,C=this.routeManifest[O];return async(w)=>{let{bootstrapModules:$,loaders:R,getStyles:E,viewImportMap:M,cssManifest:D}=w;d.data.cssManifest=D;let N=await S(Y(v,{children:[...await E(C),Y(I,{data:d.data,viewImportMap:M,key:"root"})]}),{bootstrapScriptContent:`window.__GEMI_DATA__ = ${JSON.stringify(d.data)}; window.loaders=${R}`,bootstrapModules:$});return new Response(N,{status:!O?404:200,headers:b})}}catch(V){if(V.kind===Z)if(o){let{status:j=400,data:b,directive:h,headers:x}=V.payload.api;return new Response(JSON.stringify({data:b,directive:h}),{headers:x,status:j})}else{let{status:j=400,error:b}=V.payload.view;return new Response(b?.message,{...V.payload.view,status:j})}else throw this.service.onRequestFail(l,V),V}})}}
2
2
  export{a as e};
3
3
 
4
- //# debugId=2EB8646720126BD164756E2164756E21
4
+ //# debugId=7AED123FD20A03CE64756E2164756E21
@@ -9,6 +9,6 @@
9
9
  "import type { ComponentTree } from \"../types\";\n\nexport function flattenComponentTree(componentTree: ComponentTree): string[] {\n let out: string[] = [];\n for (const [root, branches] of componentTree) {\n out.push(root, ...flattenComponentTree(branches).flat());\n }\n return Array.from(new Set(out));\n}\n"
10
10
  ],
11
11
  "mappings": "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",
12
- "debugId": "2EB8646720126BD164756E2164756E21",
12
+ "debugId": "7AED123FD20A03CE64756E2164756E21",
13
13
  "names": []
14
14
  }
@@ -1,4 +1,4 @@
1
- import{Sb as p,Xb as u,Zb as f}from"./chunk-8mn27b0d.js";class g extends p{middlewares=["cache:private"];routes={"/translations":this.get(async()=>{let s=new u,{scope:e,locale:r}=s.search.toJSON(),t=r??c.use().detectLocale(s),o=c.use().getPageTranslations(t,e);return s.ctx().setCookie("i18n-locale",t,{expires:new Date(Date.now()+31536000000)}),{[t]:o}})}}class c extends f{s;static _name="I18nServiceContainer";isEnabled=!1;translations=new Map;supportedLocales=[];constructor(s){super();this.service=s;let e=new Map;for(let[t,o]of Object.entries(this.service.dictionary))for(let[n,a]of Object.entries(o))for(let[l,d]of Object.entries(a)){let i=l==="default"?this.service.defaultLocale:l;if(!e.has(`${i}.${t}`))e.set(`${i}.${t}`,new Map);e.get(`${i}.${t}`)?.set(n,d),this.isEnabled=!0}let r=new Set(s.supportedLocales);for(let[t,o]of e.entries()){this.translations.set(t,Object.fromEntries(o.entries()));let[n]=t.split(".");if(!r.has(n))r.add(n)}this.supportedLocales=Array.from(r)}detectLocale(s){let e=this.service.detectLocale(s);if(this.supportedLocales.includes(e))return e;let t=s.cookies.get("i18n-locale")??(s.headers.get("accept-language")||"en-US"),[o]=t.split(","),n=o.length===2?`${o}-${o.toUpperCase()}`:o;if(this.supportedLocales.includes(n))return n;let a=this.service.defaultLocale??this.supportedLocales[0];if(a)return a;return"en-US"}getPageTranslations(s,e){if(!e)return{};let r=this.translations.get(`${s}.view:${e}`)??{},t={[`view:${e}`]:r};for(let[o]of this.translations.entries()){let n=o.split(".")[1];if(!n.startsWith("layout:"))continue;let a=n.split(":")[1];if(e?.startsWith(a))t[n]=this.translations.get(`${s}.${n}`)??{}}return t}}
2
- export{g as Pb,c as Qb};
1
+ import{$b as f,Ub as p,Zb as u}from"./chunk-5kxgspw3.js";class g extends p{middlewares=["cache:private"];routes={"/translations":this.get(async()=>{let s=new u,{scope:e,locale:r}=s.search.toJSON(),t=r??c.use().detectLocale(s),o=c.use().getPageTranslations(t,e);return s.ctx().setCookie("i18n-locale",t,{expires:new Date(Date.now()+31536000000)}),{[t]:o}})}}class c extends f{s;static _name="I18nServiceContainer";isEnabled=!1;translations=new Map;supportedLocales=[];constructor(s){super();this.service=s;let e=new Map;for(let[t,o]of Object.entries(this.service.dictionary))for(let[n,a]of Object.entries(o))for(let[l,d]of Object.entries(a)){let i=l==="default"?this.service.defaultLocale:l;if(!e.has(`${i}.${t}`))e.set(`${i}.${t}`,new Map);e.get(`${i}.${t}`)?.set(n,d),this.isEnabled=!0}let r=new Set(s.supportedLocales);for(let[t,o]of e.entries()){this.translations.set(t,Object.fromEntries(o.entries()));let[n]=t.split(".");if(!r.has(n))r.add(n)}this.supportedLocales=Array.from(r)}detectLocale(s){let e=this.service.detectLocale(s);if(this.supportedLocales.includes(e))return e;let t=s.cookies.get("i18n-locale")??(s.headers.get("accept-language")||"en-US"),[o]=t.split(","),n=o.length===2?`${o}-${o.toUpperCase()}`:o;if(this.supportedLocales.includes(n))return n;let a=this.service.defaultLocale??this.supportedLocales[0];if(a)return a;return"en-US"}getPageTranslations(s,e){if(!e)return{};let r=this.translations.get(`${s}.view:${e}`)??{},t={[`view:${e}`]:r};for(let[o]of this.translations.entries()){let n=o.split(".")[1];if(!n.startsWith("layout:"))continue;let a=n.split(":")[1];if(e?.startsWith(a))t[n]=this.translations.get(`${s}.${n}`)??{}}return t}}
2
+ export{g as Rb,c as Sb};
3
3
 
4
- //# debugId=3B5E2F716C5E0ABB64756E2164756E21
4
+ //# debugId=F6967C18BAFBB88E64756E2164756E21
@@ -5,6 +5,6 @@
5
5
  "import { log } from \"util\";\nimport { KernelContext } from \"../kernel/KernelContext\";\nimport { ServiceContainer } from \"../services/ServiceContainer\";\nimport { ApiRouter } from \"./ApiRouter\";\nimport { HttpRequest } from \"./HttpRequest\";\nimport { I18nServiceProvider } from \"./I18nServiceProvider\";\n\nexport class I18nRouter extends ApiRouter {\n middlewares = [\"cache:private\"];\n routes = {\n \"/translations\": this.get(async () => {\n const req = new HttpRequest<any, any>();\n const { scope, locale: forcedLocale } = req.search.toJSON() as {\n scope: string;\n locale: string;\n };\n\n const locale =\n forcedLocale ?? I18nServiceContainer.use().detectLocale(req);\n\n const translations = I18nServiceContainer.use().getPageTranslations(\n locale,\n scope,\n );\n\n req.ctx().setCookie(\"i18n-locale\", locale, {\n expires: new Date(Date.now() + 1000 * 60 * 60 * 24 * 365),\n });\n\n return {\n [locale]: translations,\n };\n }),\n };\n}\n\nexport class I18nServiceContainer extends ServiceContainer {\n static _name = \"I18nServiceContainer\";\n\n isEnabled = false;\n translations = new Map();\n supportedLocales: string[] = [];\n\n constructor(public service: I18nServiceProvider) {\n super();\n const tmpStore = new Map<string, Map<string, string>>();\n\n for (const [scope, translations] of Object.entries(\n this.service.dictionary,\n )) {\n for (const [key, translation] of Object.entries(translations)) {\n for (const [_locale, value] of Object.entries(translation)) {\n const locale =\n _locale === \"default\" ? this.service.defaultLocale : _locale;\n if (!tmpStore.has(`${locale}.${scope}`)) {\n tmpStore.set(`${locale}.${scope}`, new Map());\n }\n tmpStore.get(`${locale}.${scope}`)?.set(key, value);\n this.isEnabled = true;\n }\n }\n }\n\n const supportedLocales = new Set<string>(service.supportedLocales);\n for (const [key, value] of tmpStore.entries()) {\n this.translations.set(key, Object.fromEntries(value.entries()));\n const [locale] = key.split(\".\");\n if (!supportedLocales.has(locale)) {\n supportedLocales.add(locale);\n }\n }\n this.supportedLocales = Array.from(supportedLocales);\n }\n\n detectLocale(req: HttpRequest<any, any>) {\n const detectedLocale = this.service.detectLocale(req);\n if (this.supportedLocales.includes(detectedLocale)) {\n return detectedLocale;\n }\n\n const forcedLocale = req.cookies.get(\"i18n-locale\");\n\n const locale =\n forcedLocale ?? (req.headers.get(\"accept-language\") || \"en-US\");\n\n const [l] = locale.split(\",\");\n\n const _locale = l.length === 2 ? `${l}-${l.toUpperCase()}` : l;\n\n if (this.supportedLocales.includes(_locale)) {\n return _locale;\n }\n\n const fallbackLocale =\n this.service.defaultLocale ?? this.supportedLocales[0];\n\n if (fallbackLocale) {\n return fallbackLocale;\n }\n\n return \"en-US\";\n }\n\n getPageTranslations(locale: string, scope: string) {\n if (!scope) {\n return {};\n }\n const viewTranslations =\n this.translations.get(`${locale}.view:${scope}`) ?? {};\n const out = {\n [`view:${scope}`]: viewTranslations,\n };\n\n for (const [key] of this.translations.entries()) {\n const layoutKey = key.split(\".\")[1];\n\n if (!layoutKey.startsWith(\"layout:\")) {\n continue;\n }\n const layoutScope = layoutKey.split(\":\")[1];\n\n if (scope?.startsWith(layoutScope)) {\n out[layoutKey] = this.translations.get(`${locale}.${layoutKey}`) ?? {};\n }\n }\n\n return out;\n }\n}\n"
6
6
  ],
7
7
  "mappings": "yDAOO,MAAM,UAAmB,CAAU,CACxC,YAAc,CAAC,eAAe,EAC9B,OAAS,CACP,gBAAiB,KAAK,IAAI,SAAY,CACpC,IAAM,EAAM,IAAI,GACR,QAAO,OAAQ,GAAiB,EAAI,OAAO,OAAO,EAKpD,EACJ,GAAgB,EAAqB,IAAI,EAAE,aAAa,CAAG,EAEvD,EAAe,EAAqB,IAAI,EAAE,oBAC9C,EACA,CACF,EAMA,OAJA,EAAI,IAAI,EAAE,UAAU,cAAe,EAAQ,CACzC,QAAS,IAAI,KAAK,KAAK,IAAI,EAAI,WAAyB,CAC1D,CAAC,EAEM,EACJ,GAAS,CACZ,EACD,CACH,CACF,CAEO,MAAM,UAA6B,CAAiB,CAOtC,QANZ,OAAQ,uBAEf,UAAY,GACZ,aAAe,IAAI,IACnB,iBAA6B,CAAC,EAE9B,WAAW,CAAQ,EAA8B,CAC/C,MAAM,EADW,eAEjB,IAAM,EAAW,IAAI,IAErB,QAAY,EAAO,KAAiB,OAAO,QACzC,KAAK,QAAQ,UACf,EACE,QAAY,EAAK,KAAgB,OAAO,QAAQ,CAAY,EAC1D,QAAY,EAAS,KAAU,OAAO,QAAQ,CAAW,EAAG,CAC1D,IAAM,EACJ,IAAY,UAAY,KAAK,QAAQ,cAAgB,EACvD,IAAK,EAAS,IAAI,GAAG,KAAU,GAAO,EACpC,EAAS,IAAI,GAAG,KAAU,IAAS,IAAI,GAAK,EAE9C,EAAS,IAAI,GAAG,KAAU,GAAO,GAAG,IAAI,EAAK,CAAK,EAClD,KAAK,UAAY,GAKvB,IAAM,EAAmB,IAAI,IAAY,EAAQ,gBAAgB,EACjE,QAAY,EAAK,KAAU,EAAS,QAAQ,EAAG,CAC7C,KAAK,aAAa,IAAI,EAAK,OAAO,YAAY,EAAM,QAAQ,CAAC,CAAC,EAC9D,IAAO,GAAU,EAAI,MAAM,GAAG,EAC9B,IAAK,EAAiB,IAAI,CAAM,EAC9B,EAAiB,IAAI,CAAM,EAG/B,KAAK,iBAAmB,MAAM,KAAK,CAAgB,EAGrD,YAAY,CAAC,EAA4B,CACvC,IAAM,EAAiB,KAAK,QAAQ,aAAa,CAAG,EACpD,GAAI,KAAK,iBAAiB,SAAS,CAAc,EAC/C,OAAO,EAKT,IAAM,EAFe,EAAI,QAAQ,IAAI,aAAa,IAG/B,EAAI,QAAQ,IAAI,iBAAiB,GAAK,UAElD,GAAK,EAAO,MAAM,GAAG,EAEtB,EAAU,EAAE,SAAW,EAAI,GAAG,KAAK,EAAE,YAAY,IAAM,EAE7D,GAAI,KAAK,iBAAiB,SAAS,CAAO,EACxC,OAAO,EAGT,IAAM,EACJ,KAAK,QAAQ,eAAiB,KAAK,iBAAiB,GAEtD,GAAI,EACF,OAAO,EAGT,MAAO,QAGT,mBAAmB,CAAC,EAAgB,EAAe,CACjD,IAAK,EACH,MAAO,CAAC,EAEV,IAAM,EACJ,KAAK,aAAa,IAAI,GAAG,UAAe,GAAO,GAAK,CAAC,EACjD,EAAM,EACT,QAAQ,KAAU,CACrB,EAEA,QAAY,KAAQ,KAAK,aAAa,QAAQ,EAAG,CAC/C,IAAM,EAAY,EAAI,MAAM,GAAG,EAAE,GAEjC,IAAK,EAAU,WAAW,SAAS,EACjC,SAEF,IAAM,EAAc,EAAU,MAAM,GAAG,EAAE,GAEzC,GAAI,GAAO,WAAW,CAAW,EAC/B,EAAI,GAAa,KAAK,aAAa,IAAI,GAAG,KAAU,GAAW,GAAK,CAAC,EAIzE,OAAO,EAEX",
8
- "debugId": "3B5E2F716C5E0ABB64756E2164756E21",
8
+ "debugId": "F6967C18BAFBB88E64756E2164756E21",
9
9
  "names": []
10
10
  }