gemi 0.4.98 → 0.4.99
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 +2 -2
- package/dist/app/index.js.map +1 -1
- package/dist/broadcasting/index.js +1 -1
- package/dist/chunk-0f8949935ef3c862.js +1 -1
- package/dist/chunk-280cabf2f360003f.js +4 -0
- package/dist/{chunk-8660ff1b3cc94b99.js.map → chunk-280cabf2f360003f.js.map} +5 -5
- package/dist/chunk-28689250fae96e36.js +20 -0
- package/dist/{chunk-6477d7e9d0a3c143.js.map → chunk-28689250fae96e36.js.map} +7 -6
- package/dist/{chunk-7b222caedbdd07ff.js → chunk-2b3b4a0aa3edf9ec.js} +2 -2
- package/dist/{chunk-7b222caedbdd07ff.js.map → chunk-2b3b4a0aa3edf9ec.js.map} +1 -1
- package/dist/chunk-2c5231fcdfa1d6f2.js +4 -0
- package/dist/{chunk-99c32e4d937131e0.js.map → chunk-2c5231fcdfa1d6f2.js.map} +1 -1
- package/dist/chunk-44bbc0745a2b4b82.js +4 -0
- package/dist/chunk-44bbc0745a2b4b82.js.map +14 -0
- package/dist/{chunk-23d3df5f8342ecc6.js → chunk-58fb175982676253.js} +3 -3
- package/dist/{chunk-23d3df5f8342ecc6.js.map → chunk-58fb175982676253.js.map} +1 -1
- package/dist/{chunk-5a217af54dd6ae53.js → chunk-59b0df586fa6a917.js} +3 -3
- package/dist/{chunk-5a217af54dd6ae53.js.map → chunk-59b0df586fa6a917.js.map} +1 -1
- package/dist/chunk-6177d9eb9e7bf615.js +1 -1
- package/dist/{chunk-a32dc07245e51d1d.js → chunk-622a799c82e348e7.js} +2 -2
- package/dist/{chunk-a32dc07245e51d1d.js.map → chunk-622a799c82e348e7.js.map} +1 -1
- package/dist/chunk-7a46d8409a08609d.js +4 -0
- package/dist/{chunk-3507a0044b99a2cc.js.map → chunk-7a46d8409a08609d.js.map} +2 -2
- package/dist/chunk-7afadccff63d6a14.js +1 -1
- package/dist/{chunk-90436b32a64fc784.js → chunk-7ef6dd56fdc9381a.js} +3 -3
- package/dist/{chunk-90436b32a64fc784.js.map → chunk-7ef6dd56fdc9381a.js.map} +1 -1
- package/dist/chunk-874ce9ed3695d6dc.js +4 -0
- package/dist/{chunk-3c0b9555ac26f279.js.map → chunk-874ce9ed3695d6dc.js.map} +2 -2
- package/dist/chunk-8fb697a1aeea8f96.js +1 -1
- package/dist/chunk-92168dbc9ed3cb8e.js +4 -0
- package/dist/{chunk-2f8cf8372320b622.js.map → chunk-92168dbc9ed3cb8e.js.map} +4 -5
- package/dist/{chunk-961bb9fd54d10bbe.js → chunk-934537cc925d759e.js} +2 -2
- package/dist/{chunk-961bb9fd54d10bbe.js.map → chunk-934537cc925d759e.js.map} +1 -1
- package/dist/chunk-9d768d777b1aaf33.js +4 -0
- package/dist/{chunk-797989fd6dd03d3e.js.map → chunk-9d768d777b1aaf33.js.map} +1 -1
- package/dist/{chunk-28ec4c2b20e69deb.js → chunk-9e77cade8671df8d.js} +3 -3
- package/dist/{chunk-28ec4c2b20e69deb.js.map → chunk-9e77cade8671df8d.js.map} +1 -1
- package/dist/{chunk-643529c2ad120db7.js → chunk-a75fda9e77cb626c.js} +3 -3
- package/dist/{chunk-643529c2ad120db7.js.map → chunk-a75fda9e77cb626c.js.map} +1 -1
- package/dist/{chunk-f4faa3f602dc49fa.js → chunk-af12ac64b60b8669.js} +2 -2
- package/dist/{chunk-f4faa3f602dc49fa.js.map → chunk-af12ac64b60b8669.js.map} +1 -1
- package/dist/chunk-c2eec0de415bd820.js +4 -0
- package/dist/{chunk-22c02fbb1a96d282.js.map → chunk-c2eec0de415bd820.js.map} +2 -2
- package/dist/{chunk-0d97333b6af9fc45.js → chunk-c83dcc500d5fefe3.js} +2 -2
- package/dist/{chunk-0d97333b6af9fc45.js.map → chunk-c83dcc500d5fefe3.js.map} +1 -1
- package/dist/{chunk-53b0fab00d83f47e.js → chunk-df2ecbce6f94352a.js} +2 -2
- package/dist/{chunk-53b0fab00d83f47e.js.map → chunk-df2ecbce6f94352a.js.map} +1 -1
- package/dist/chunk-df507e740b7ba846.js +4 -0
- package/dist/{chunk-078b5ca64822d227.js.map → chunk-df507e740b7ba846.js.map} +4 -4
- package/dist/{chunk-9b1d4127b8980a77.js → chunk-e5683d4213970b67.js} +2 -2
- package/dist/{chunk-9b1d4127b8980a77.js.map → chunk-e5683d4213970b67.js.map} +1 -1
- package/dist/{chunk-ae14a8d462938b8e.js → chunk-ebd1b8ef83ffde0a.js} +2 -2
- package/dist/{chunk-ae14a8d462938b8e.js.map → chunk-ebd1b8ef83ffde0a.js.map} +1 -1
- package/dist/email/index.js +2 -2
- package/dist/email/index.js.map +1 -1
- package/dist/facades/index.js +2 -2
- package/dist/facades/index.js.map +1 -1
- package/dist/http/index.js +2 -2
- package/dist/http/index.js.map +1 -1
- package/dist/kernel/index.js +2 -2
- package/dist/kernel/index.js.map +1 -1
- package/dist/server/index.js +5 -5
- package/dist/server/index.js.map +4 -3
- package/dist/services/index.js +3 -3
- package/dist/services/index.js.map +3 -3
- package/dist/services/router/ViewRouterServiceContainer.d.ts +1 -1
- package/dist/services/router/ViewRouterServiceContainer.d.ts.map +1 -1
- package/dist/services/router/ViewRouterServiceProvider.d.ts +1 -1
- package/dist/services/router/ViewRouterServiceProvider.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-078b5ca64822d227.js +0 -4
- package/dist/chunk-22c02fbb1a96d282.js +0 -4
- package/dist/chunk-2f8cf8372320b622.js +0 -4
- package/dist/chunk-3507a0044b99a2cc.js +0 -4
- package/dist/chunk-3c0b9555ac26f279.js +0 -4
- package/dist/chunk-6477d7e9d0a3c143.js +0 -20
- package/dist/chunk-797989fd6dd03d3e.js +0 -4
- package/dist/chunk-8660ff1b3cc94b99.js +0 -3
- package/dist/chunk-99c32e4d937131e0.js +0 -4
- package/dist/chunk-b9c722a5cdfab5dd.js +0 -4
- package/dist/chunk-b9c722a5cdfab5dd.js.map +0 -33
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import"./chunk-
|
|
2
|
+
import"./chunk-c83dcc500d5fefe3.js";import{Ob as E} from"./chunk-2214ecbc4b85c724.js";var _="AWS_ACCESS_KEY_ID",S="AWS_SECRET_ACCESS_KEY",p="AWS_SESSION_TOKEN",A="AWS_CREDENTIAL_EXPIRATION",C="AWS_CREDENTIAL_SCOPE",N="AWS_ACCOUNT_ID",a=(e)=>async()=>{e?.logger?.debug("@aws-sdk/credential-provider-env - fromEnv");const o=process.env[_],r=process.env[S],n=process.env[p],s=process.env[A],t=process.env[C],c=process.env[N];if(o&&r)return{accessKeyId:o,secretAccessKey:r,...n&&{sessionToken:n},...s&&{expiration:new Date(s)},...t&&{credentialScope:t},...c&&{accountId:c}};throw new E("Unable to find environment variable credentials.",{logger:e?.logger})};export{a as fromEnv,p as ENV_SESSION,S as ENV_SECRET,_ as ENV_KEY,A as ENV_EXPIRATION,C as ENV_CREDENTIAL_SCOPE,N as ENV_ACCOUNT_ID};export{_ as C,S as D,a as E};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=2B3B4A0AA3EDF9EC64756e2164756e21
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
"import { CredentialsProviderError } from \"@smithy/property-provider\";\nexport const ENV_KEY = \"AWS_ACCESS_KEY_ID\";\nexport const ENV_SECRET = \"AWS_SECRET_ACCESS_KEY\";\nexport const ENV_SESSION = \"AWS_SESSION_TOKEN\";\nexport const ENV_EXPIRATION = \"AWS_CREDENTIAL_EXPIRATION\";\nexport const ENV_CREDENTIAL_SCOPE = \"AWS_CREDENTIAL_SCOPE\";\nexport const ENV_ACCOUNT_ID = \"AWS_ACCOUNT_ID\";\nexport const fromEnv = (init) => async () => {\n init?.logger?.debug(\"@aws-sdk/credential-provider-env - fromEnv\");\n const accessKeyId = process.env[ENV_KEY];\n const secretAccessKey = process.env[ENV_SECRET];\n const sessionToken = process.env[ENV_SESSION];\n const expiry = process.env[ENV_EXPIRATION];\n const credentialScope = process.env[ENV_CREDENTIAL_SCOPE];\n const accountId = process.env[ENV_ACCOUNT_ID];\n if (accessKeyId && secretAccessKey) {\n return {\n accessKeyId,\n secretAccessKey,\n ...(sessionToken && { sessionToken }),\n ...(expiry && { expiration: new Date(expiry) }),\n ...(credentialScope && { credentialScope }),\n ...(accountId && { accountId }),\n };\n }\n throw new CredentialsProviderError(\"Unable to find environment variable credentials.\", { logger: init?.logger });\n};\n"
|
|
6
6
|
],
|
|
7
7
|
"mappings": ";oFACO,MAAM,EAAU,oBACV,EAAa,wBACb,EAAc,oBACd,EAAiB,4BACjB,EAAuB,uBACvB,EAAiB,iBACjB,EAAU,CAAC,IAAS,SAAY,CACzC,GAAM,QAAQ,MAAM,4CAA4C,EAChE,MAAM,EAAc,QAAQ,IAAI,GAC1B,EAAkB,QAAQ,IAAI,GAC9B,EAAe,QAAQ,IAAI,GAC3B,EAAS,QAAQ,IAAI,GACrB,EAAkB,QAAQ,IAAI,GAC9B,EAAY,QAAQ,IAAI,GAC9B,GAAI,GAAe,EACf,MAAO,CACH,cACA,qBACI,GAAgB,CAAE,cAAa,KAC/B,GAAU,CAAE,WAAY,IAAI,KAAK,CAAM,CAAE,KACzC,GAAmB,CAAE,iBAAgB,KACrC,GAAa,CAAE,WAAU,CACjC,EAEJ,MAAM,IAAI,EAAyB,mDAAoD,CAAE,OAAQ,GAAM,MAAO,CAAC",
|
|
8
|
-
"debugId": "
|
|
8
|
+
"debugId": "2B3B4A0AA3EDF9EC64756e2164756e21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{e as Y,h as z,i as J} from"./http/index.js";import{q as A,s as B,u as G} from"./facades/index.js";import{G as Z} from"./chunk-622a799c82e348e7.js";import{M as K} from"./chunk-92168dbc9ed3cb8e.js";function m(y){const o={};for(let[n,t]of Object.entries(y))if("run"in t){const i=t;if("children"in i){const c=new i.children,s=m(c.routes);for(let[w,{exec:V,middleware:p}]of Object.entries(s)){const u=n==="/"?w:`${n}${w}`,r=w==="/"&&n!=="/"?n:u;o[r]={exec:[i.run.bind(i),...V],middleware:[...i.middlewares,...p]}}}else o[n]={exec:[i.run.bind(i)],middleware:i.middlewares}}else{const i=new t,c=m(i.routes);for(let[s,{exec:w,middleware:V}]of Object.entries(c)){const p=n==="/"?s:`${n}${s}`,u=s==="/"&&n!=="/"?n:p;o[u]={exec:w,middleware:[...i.middlewares,...V]}}}return Object.fromEntries(Object.entries(o).sort(([n],[t])=>{const i=n.split("/").length+n.split(":").length,c=t.split("/").length+t.split(":").length;return i-c}))}import{renderToReadableStream as M} from"react-dom/server.browser";import{createElement as X,Fragment as E} from"react";function T(y){const o={};for(let[n,t]of Object.entries(y))if("run"in t){const i=t.viewPath;if("children"in t)o[n]=[i];if("children"in t){const c=new t.children,s=T(c.routes);for(let[w,V]of Object.entries(s)){const p=n==="/"?w:`${n}${w}`,u=w==="/"&&n!=="/"?n:p;o[u]=[i,...V]}}else o[n]=[i]}else{const i=new t,c=T(i.routes);for(let[s,w]of Object.entries(c)){const V=n==="/"?s:`${n}${s}`,p=s==="/"&&n!=="/"?n:V;o[p]=w}}return o}function h(y){const o=[];for(let[n,t]of Object.entries(y))if("run"in t){const i=t.viewPath;if("children"in t){const c=new t.children,s=h(c.routes);o.push([i,s])}else o.push([i,[]])}else{const i=new t,c=h(i.routes);o.push(...c)}return o}function F(y){let o=[];for(let[n,t]of y)o.push(n,...F(t).flat());return Array.from(new Set(o))}class d extends Z{y;static _name="ViewRouterServiceContainer";flatViewRoutes={};routeManifest={};componentTree=[];flatComponentTree=[];root=null;constructor(y){super();this.service=y;const o={"/":y.rootRouter,"/auth":B};this.flatViewRoutes=m(o),this.routeManifest=T(o),this.componentTree=h(o),this.flatComponentTree=F(this.componentTree),this.root=y.root}boot(){}async handleViewRequest(y){const o=new URL(y.url),n=o.searchParams.get("json");let t=null;try{let f=[],e=[],b=null,j={};for(let[l,x]of Object.entries(this.flatViewRoutes)){const g=new K({pathname:l});if(g.test({pathname:o.pathname})){b=l,j=g.exec({pathname:o.pathname})?.pathname.groups,f=x.exec,e=x.middleware;break}}const O=new J(y,j),{data:_,cookies:P,headers:Q,user:R,prefetchedData:U}=await z.run(O,async()=>{const l=z.getStore();l.setRequest(O),await G.use().runMiddleware(e,b);const x=await Promise.all([...f.map((k)=>k(O)),...Array.from(l.prefetchPromiseQueue).map((k)=>k())]),g=l.cookies,C=l.headers,I=l.prefetchedResources;return{data:x,cookies:g,headers:C,user:l.user,prefetchedData:Object.fromEntries(I.entries())}});t={data:_,prefetchedData:U,currentPathName:b,user:R,params:j,cookies:P,headers:Q}}catch(f){if(f.kind===Y)if(n){const{status:e=400,data:b,directive:j,headers:O}=f.payload.api;return new Response(JSON.stringify({data:b,directive:j}),{headers:O,status:e})}else{const{status:e=400,error:b}=f.payload.view;return new Response(b?.message,{...f.payload.view,status:e})}else throw f}const{data:i,params:c,currentPathName:s,user:w,cookies:V}=t,p=i.reduce((f,e)=>{return{...f,...e}},{}),u=A.use(),r=u.isEnabled;let H={};if(r){const f=u.detectLocale(new J(y,c)),e=u.getPageTranslations(f,s);H={supportedLocales:u.supportedLocales,currentLocale:f,dictionary:{[f]:e}}}if(n){const f=new Headers;return f.set("Content-Type","application/json"),V.forEach((e)=>f.append("Set-Cookie",e.toString())),f.append("Cache-Control",w?"private, no-cache, no-store, max-age=0, must-revalidate":"public, max-age=864000, must-revalidate"),new Response(JSON.stringify({data:{[o.pathname]:p},prefetchedData:t.prefetchedData,i18n:H,is404:!s}),{headers:f})}const $=new Headers;$.set("Content-Type","text/html"),$.set("Cache-Control",w?"private, no-cache, no-store, max-age=0, must-revalidate":"public, max-age=864000, must-revalidate"),$.set("ETag",'W/"'+Math.random().toString(36).substring(7)+'"'),t.cookies.forEach((f)=>$.append("Set-Cookie",f.toString()));const W={kind:"view",data:{pageData:{[o.pathname]:p},prefetchedData:t.prefetchedData,i18n:H,auth:{user:w},routeManifest:this.routeManifest,router:{pathname:s,params:c,currentPath:o.pathname,searchParams:o.search,is404:!s?!0:!1},componentTree:[["404",[]],...this.componentTree]},head:{}},L=this.root;return async(f)=>{const{bootstrapModules:e,loaders:b,styles:j,viewImportMap:O}=f,_=await M(X(E,{children:[j,X(L,{data:W.data,viewImportMap:O})]}),{bootstrapScriptContent:`window.__GEMI_DATA__ = ${JSON.stringify(W.data)}; window.loaders=${b}`,bootstrapModules:e});return new Response(_,{status:!s?404:200,headers:$})}}}
|
|
2
|
+
export{d as K};
|
|
3
|
+
|
|
4
|
+
//# debugId=44BBC0745A2B4B8264756e2164756e21
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../services/router/createFlatViewRoutes.ts", "../services/router/ViewRouterServiceContainer.ts", "../services/router/createRouteManifest.ts", "../services/router/createComponentTree.ts", "../client/helpers/flattenComponentTree.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import { HttpRequest } from \"../../http\";\nimport type { ViewRoutes } from \"../../http/ViewRouter\";\n\nexport type ViewRouteExec = (req: HttpRequest<any, any>) => any; // TODO: fix type\n\nexport type FlatViewRoutes = Record<\n string,\n { exec: ViewRouteExec[]; middleware: (string | any)[] }\n>;\n\nexport function createFlatViewRoutes(routes: ViewRoutes) {\n const flatRoutes: FlatViewRoutes = {};\n\n for (const [routePath, viewConfigOrViewRouter] of Object.entries(routes)) {\n if (\"run\" in viewConfigOrViewRouter) {\n const route = viewConfigOrViewRouter;\n\n if (\"children\" in route) {\n const children = new route.children();\n const result = createFlatViewRoutes(children.routes);\n\n for (const [path, { exec, middleware }] of Object.entries(result)) {\n const key = routePath === \"/\" ? path : `${routePath}${path}`;\n const _key = path === \"/\" && routePath !== \"/\" ? routePath : key;\n\n flatRoutes[_key] = {\n exec: [route.run.bind(route), ...exec],\n middleware: [...route.middlewares, ...middleware],\n };\n }\n } else {\n flatRoutes[routePath] = {\n exec: [route.run.bind(route)],\n middleware: route.middlewares,\n };\n }\n } else {\n const router = new viewConfigOrViewRouter();\n const result = createFlatViewRoutes(router.routes);\n for (const [path, { exec, middleware }] of Object.entries(result)) {\n const key = routePath === \"/\" ? path : `${routePath}${path}`;\n const _key = path === \"/\" && routePath !== \"/\" ? routePath : key;\n flatRoutes[_key] = {\n exec,\n middleware: [...router.middlewares, ...middleware],\n };\n }\n }\n }\n\n return Object.fromEntries(\n Object.entries(flatRoutes).sort(([a], [b]) => {\n const x = a.split(\"/\").length + a.split(\":\").length;\n const y = b.split(\"/\").length + b.split(\":\").length;\n return x - y;\n }),\n );\n}\n",
|
|
6
|
+
"import { HttpRequest } from \"../../http\";\nimport { createRoot } from \"../../client/createRoot\";\n\nimport { Cookie } from \"../../http/Cookie\";\nimport { GEMI_REQUEST_BREAKER_ERROR } from \"../../http/Error\";\nimport { RequestContext } from \"../../http/requestContext\";\nimport type { RouterMiddleware } from \"../../http/Router\";\nimport {\n createFlatViewRoutes,\n FlatViewRoutes,\n type ViewRouteExec,\n} from \"./createFlatViewRoutes\";\nimport { ViewRouterServiceProvider } from \"./ViewRouterServiceProvider\";\n// @ts-ignore\nimport { renderToReadableStream } from \"react-dom/server.browser\";\nimport { createElement, Fragment } from \"react\";\n\n// @ts-ignore\nimport { URLPattern } from \"urlpattern-polyfill/urlpattern\";\nimport { ServiceContainer } from \"../ServiceContainer\";\nimport type { ViewRoutes } from \"../../http/ViewRouter\";\nimport { AuthViewRouter } from \"../../auth/AuthenticationServiceProvider\";\nimport { createRouteManifest } from \"./createRouteManifest\";\nimport { createComponentTree } from \"./createComponentTree\";\nimport { flattenComponentTree } from \"../../client/helpers/flattenComponentTree\";\nimport type { ComponentTree } from \"../../client/types\";\nimport { I18nServiceContainer } from \"../../http/I18nServiceContainer\";\nimport { MiddlewareServiceContainer } from \"../middleware/MiddlewareServiceContainer\";\n\nexport class ViewRouterServiceContainer extends ServiceContainer {\n static _name = \"ViewRouterServiceContainer\";\n\n flatViewRoutes: FlatViewRoutes = {};\n routeManifest: Record<string, string[]> = {};\n componentTree: ComponentTree = [];\n flatComponentTree: string[] = [];\n root: any = null;\n\n constructor(public service: ViewRouterServiceProvider) {\n super();\n const routes: ViewRoutes = {\n \"/\": service.rootRouter,\n \"/auth\": AuthViewRouter,\n };\n this.flatViewRoutes = createFlatViewRoutes(routes);\n this.routeManifest = createRouteManifest(routes);\n this.componentTree = createComponentTree(routes);\n this.flatComponentTree = flattenComponentTree(this.componentTree);\n this.root = service.root;\n }\n\n boot() {}\n\n async handleViewRequest(req: Request) {\n const url = new URL(req.url);\n const isViewDataRequest = url.searchParams.get(\"json\");\n\n let pageData: {\n cookies: Set<Cookie>;\n headers: Headers;\n currentPathName: string;\n data: Record<string, any>;\n prefetchedData: Record<string, any>;\n user: any; // TODO: fix type\n params: Record<string, any>;\n } | null = null;\n\n try {\n let handlers: ViewRouteExec[] = [];\n let middlewares: (RouterMiddleware | string)[] = [];\n let currentPathName: null | string = null;\n let params: Record<string, any> = {};\n\n for (const [pathname, handler] of Object.entries(this.flatViewRoutes)) {\n const pattern = new URLPattern({ pathname });\n if (pattern.test({ pathname: url.pathname })) {\n currentPathName = pathname;\n params = pattern.exec({ pathname: url.pathname })?.pathname.groups!;\n handlers = handler.exec;\n middlewares = handler.middleware;\n break;\n }\n }\n\n const httpRequest = new HttpRequest(req, params);\n const { data, cookies, headers, user, prefetchedData } =\n await RequestContext.run(httpRequest, async () => {\n const ctx = RequestContext.getStore();\n ctx.setRequest(httpRequest);\n\n await MiddlewareServiceContainer.use().runMiddleware(\n middlewares,\n currentPathName,\n );\n\n const data = await Promise.all([\n ...handlers.map((fn) => fn(httpRequest as any)),\n ...Array.from(ctx.prefetchPromiseQueue).map((fn) => fn()),\n ]);\n\n const cookies = ctx.cookies;\n const headers = ctx.headers;\n const prefetchedResources = ctx.prefetchedResources;\n\n return {\n data,\n cookies,\n headers,\n user: ctx.user,\n prefetchedData: Object.fromEntries(prefetchedResources.entries()),\n };\n });\n\n pageData = {\n data,\n prefetchedData,\n currentPathName,\n user,\n params,\n cookies,\n headers,\n };\n } catch (err) {\n if (err.kind === GEMI_REQUEST_BREAKER_ERROR) {\n if (isViewDataRequest) {\n const { status = 400, data, directive, headers } = err.payload.api;\n return new Response(JSON.stringify({ data, directive }), {\n headers,\n status,\n });\n } else {\n const { status = 400, error } = err.payload.view;\n return new Response(error?.message, {\n ...err.payload.view,\n status,\n });\n }\n } else {\n throw err;\n }\n }\n\n const { data, params, currentPathName, user, cookies } = pageData;\n\n const viewData = data.reduce((acc, data) => {\n return {\n ...acc,\n ...data,\n };\n }, {});\n const i18nServiceContainer = I18nServiceContainer.use();\n const isI18nEnabled = i18nServiceContainer.isEnabled;\n let i18n: Record<string, any> = {};\n if (isI18nEnabled) {\n const locale = i18nServiceContainer.detectLocale(\n new HttpRequest(req, params as any),\n );\n const translations = i18nServiceContainer.getPageTranslations(\n locale,\n currentPathName,\n );\n\n i18n = {\n supportedLocales: i18nServiceContainer.supportedLocales,\n currentLocale: locale,\n dictionary: {\n [locale]: translations,\n },\n };\n }\n\n if (isViewDataRequest) {\n const headers = new Headers();\n headers.set(\"Content-Type\", \"application/json\");\n\n cookies.forEach((cookie) =>\n headers.append(\"Set-Cookie\", cookie.toString()),\n );\n\n headers.append(\n \"Cache-Control\",\n user\n ? \"private, no-cache, no-store, max-age=0, must-revalidate\"\n : \"public, max-age=864000, must-revalidate\",\n );\n\n return new Response(\n JSON.stringify({\n data: {\n [url.pathname]: viewData,\n },\n prefetchedData: pageData.prefetchedData,\n i18n,\n is404: !currentPathName,\n }),\n {\n headers,\n },\n );\n }\n\n const headers = new Headers();\n headers.set(\"Content-Type\", \"text/html\");\n headers.set(\n \"Cache-Control\",\n user\n ? \"private, no-cache, no-store, max-age=0, must-revalidate\"\n : \"public, max-age=864000, must-revalidate\",\n );\n headers.set(\"ETag\", 'W/\"' + Math.random().toString(36).substring(7) + '\"');\n\n pageData.cookies.forEach((cookie) =>\n headers.append(\"Set-Cookie\", cookie.toString()),\n );\n\n const result = {\n kind: \"view\",\n data: {\n pageData: {\n [url.pathname]: viewData,\n },\n prefetchedData: pageData.prefetchedData,\n i18n,\n auth: { user },\n routeManifest: this.routeManifest,\n router: {\n pathname: currentPathName,\n params,\n currentPath: url.pathname,\n searchParams: url.search,\n is404: !currentPathName ? true : false,\n },\n componentTree: [[\"404\", []], ...this.componentTree],\n },\n head: {},\n };\n const Root = this.root;\n return async (params: {\n styles: any[];\n viewImportMap: any;\n bootstrapModules: string[];\n loaders: string;\n }) => {\n const { bootstrapModules, loaders, styles, viewImportMap } = params;\n const stream = await renderToReadableStream(\n createElement(Fragment, {\n children: [\n styles,\n createElement(Root, {\n data: result.data,\n viewImportMap,\n }),\n ],\n }),\n {\n bootstrapScriptContent: `window.__GEMI_DATA__ = ${JSON.stringify(result.data)}; window.loaders=${loaders}`,\n bootstrapModules,\n },\n );\n\n return new Response(stream, {\n status: !currentPathName ? 404 : 200,\n headers,\n });\n };\n }\n}\n",
|
|
7
|
+
"import type { ViewRoutes } from \"../../http/ViewRouter\";\n\nexport function createRouteManifest(routes: ViewRoutes) {\n const routeManifest: Record<string, string[]> = {};\n for (const [routePath, routeHandler] of Object.entries(routes)) {\n if (\"run\" in routeHandler) {\n const viewPath = routeHandler.viewPath;\n\n if (\"children\" in routeHandler) {\n routeManifest[routePath] = [viewPath];\n }\n\n if (\"children\" in routeHandler) {\n const children = new routeHandler.children();\n const manifest = createRouteManifest(children.routes);\n for (const [path, viewPaths] of Object.entries(manifest)) {\n const key = routePath === \"/\" ? path : `${routePath}${path}`;\n const _key = path === \"/\" && routePath !== \"/\" ? routePath : key;\n routeManifest[_key] = [viewPath, ...viewPaths];\n }\n } else {\n routeManifest[routePath] = [viewPath];\n }\n } else {\n const router = new routeHandler();\n\n const manifest = createRouteManifest(router.routes);\n for (const [path, viewPaths] of Object.entries(manifest)) {\n const key = routePath === \"/\" ? path : `${routePath}${path}`;\n const _key = path === \"/\" && routePath !== \"/\" ? routePath : key;\n routeManifest[_key] = viewPaths;\n }\n }\n }\n\n return routeManifest;\n}\n",
|
|
8
|
+
"import type { ComponentTree } from \"../../client/types\";\nimport type { ViewRoutes } from \"../../http/ViewRouter\";\n\nexport function createComponentTree(routes: ViewRoutes): ComponentTree {\n const componentTree: ComponentTree = [];\n\n for (const [_, routeHandler] of Object.entries(routes)) {\n if (\"run\" in routeHandler) {\n const viewPath = routeHandler.viewPath;\n if (\"children\" in routeHandler) {\n const router = new routeHandler.children();\n const branch = createComponentTree(router.routes);\n componentTree.push([viewPath, branch]);\n } else {\n componentTree.push([viewPath, []]);\n }\n } else {\n const router = new routeHandler();\n const branch = createComponentTree(router.routes);\n componentTree.push(...branch);\n }\n }\n\n return componentTree;\n}\n",
|
|
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
|
+
],
|
|
11
|
+
"mappings": "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",
|
|
12
|
+
"debugId": "44BBC0745A2B4B8264756e2164756e21",
|
|
13
|
+
"names": []
|
|
14
|
+
}
|