gemi 0.47.0 → 0.48.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-732aak4d.js → chunk-1ng8cg7d.js} +1 -1
- package/dist/{chunk-bk76mah1.js → chunk-c705601x.js} +2 -2
- package/dist/{chunk-bk76mah1.js.map → chunk-c705601x.js.map} +1 -1
- package/dist/{chunk-3wjd8x9t.js → chunk-ktcg2j50.js} +1 -1
- package/dist/client/ClientRouter.d.ts.map +1 -1
- package/dist/client/ClientRouterContext.d.ts +11 -0
- package/dist/client/ClientRouterContext.d.ts.map +1 -1
- package/dist/client/Link.d.ts +19 -0
- package/dist/client/Link.d.ts.map +1 -1
- package/dist/client/PrefetchCache.d.ts +50 -0
- package/dist/client/PrefetchCache.d.ts.map +1 -0
- package/dist/client/helpers/loadRoutePayload.d.ts +28 -0
- package/dist/client/helpers/loadRoutePayload.d.ts.map +1 -0
- package/dist/client/helpers/routeDataUrl.d.ts +16 -0
- package/dist/client/helpers/routeDataUrl.d.ts.map +1 -0
- package/dist/client/index.d.ts +2 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +838 -551
- package/dist/client/index.js.map +1 -1
- package/dist/client/useMutation.d.ts.map +1 -1
- package/dist/client/usePrefetch.d.ts +21 -0
- package/dist/client/usePrefetch.d.ts.map +1 -0
- package/dist/server/index.js +1 -1
- package/package.json +1 -1
- /package/dist/{chunk-732aak4d.js.map → chunk-1ng8cg7d.js.map} +0 -0
- /package/dist/{chunk-3wjd8x9t.js.map → chunk-ktcg2j50.js.map} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{g as I,i as f}from"./chunk-
|
|
2
|
+
import{g as I,i as f}from"./chunk-c705601x.js";import{j as b,k as y}from"./chunk-ghes36xj.js";import"./chunk-vv72kw74.js";import"./chunk-ppt296ye.js";import"./chunk-r64ba1pf.js";import"./chunk-d9k245jt.js";import"./chunk-evkv0xa7.js";import"./chunk-p5r0t9jh.js";import"./chunk-xkrthw08.js";import"./chunk-4z53shav.js";import"./chunk-m0earq80.js";import"./chunk-f18weffa.js";import{IncomingMessage as w,ServerResponse as N}from"http";import{Socket as T}from"net";import{join as g}from"path";import{createServer as E}from"vite";function S(H){return H.replace(/\x1b\[[0-9;]*m/g,"").replace(/\[[0-9;]*m/g,"").replace(/\n\s*\n/g,`
|
|
3
3
|
`).split(`
|
|
4
4
|
`).map((J)=>J.trim()).filter((J)=>J.length>0).join(`
|
|
5
5
|
`).trim()}function P(H){return`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{m as y}from"./chunk-ppt296ye.js";import{createElement as j}from"react";function z(i,n){let t=Object.keys(n).sort((e,s)=>s.length-e.length).map((e)=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")),p=new RegExp(t.join("|"),"g");return i.replace(p,(e)=>n[e])}async function W(i,n,t=[]){let p=[...t.map((b)=>`${i}/views/${b}.tsx`),`${i}/views/RootLayout.tsx`],e=new Set;for(let b of p){let u=n.moduleGraph.getModulesByFile(b);if(u)for(let g of u)e.add(g)}let s=[],r=[],c={};for(let b of e)if(b)for(let u of b.importedModules){if(u.file.includes("module.css"))c[u.file]=u.ssrTransformResult.map.sourcesContent.join("");if(u.file.includes(".css"))r.push(u.file)}for(let b of r){let u=await n.transformRequest(b+"?direct"),g=b.includes("module.css"),h="";if(g)h=z(c[b],u.default);s.push({isDev:!0,id:b,content:g?h:u.code})}return s.map((b,u)=>{return j("style",{key:u,type:"text/css","data-vite-dev-id":b.id,dangerouslySetInnerHTML:{__html:b.content}})})}async function X(i=[]){return i.map((n,t)=>{return j("style",{key:t,id:n?.id,type:"text/css",dangerouslySetInnerHTML:{__html:n.content}})})}import{existsSync as T}from"fs";import{basename as a}from"path";import{networkInterfaces as q}from"os";var v={name:"gemi",version:"0.
|
|
2
|
+
import{m as y}from"./chunk-ppt296ye.js";import{createElement as j}from"react";function z(i,n){let t=Object.keys(n).sort((e,s)=>s.length-e.length).map((e)=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")),p=new RegExp(t.join("|"),"g");return i.replace(p,(e)=>n[e])}async function W(i,n,t=[]){let p=[...t.map((b)=>`${i}/views/${b}.tsx`),`${i}/views/RootLayout.tsx`],e=new Set;for(let b of p){let u=n.moduleGraph.getModulesByFile(b);if(u)for(let g of u)e.add(g)}let s=[],r=[],c={};for(let b of e)if(b)for(let u of b.importedModules){if(u.file.includes("module.css"))c[u.file]=u.ssrTransformResult.map.sourcesContent.join("");if(u.file.includes(".css"))r.push(u.file)}for(let b of r){let u=await n.transformRequest(b+"?direct"),g=b.includes("module.css"),h="";if(g)h=z(c[b],u.default);s.push({isDev:!0,id:b,content:g?h:u.code})}return s.map((b,u)=>{return j("style",{key:u,type:"text/css","data-vite-dev-id":b.id,dangerouslySetInnerHTML:{__html:b.content}})})}async function X(i=[]){return i.map((n,t)=>{return j("style",{key:t,id:n?.id,type:"text/css",dangerouslySetInnerHTML:{__html:n.content}})})}import{existsSync as T}from"fs";import{basename as a}from"path";import{networkInterfaces as q}from"os";var v={name:"gemi",version:"0.48.0",private:!1,license:"MIT",author:"Enes Tufekci <enes@gemijs.dev>",repository:{type:"git",url:"git+https://github.com/nstfkc/gemi.git",directory:"packages/gemi"},bin:{gemi:"./dist/bin/gemi.js"},files:["dist/**/*"],module:!0,exports:{"./http":"./http/index.ts","./client":"./client/index.ts","./app":"./app/index.ts","./facades":"./facades/index.ts","./email":"./email/index.ts","./vite":"./dist/vite/index.mjs","./runtime":"./client/runtime.ts","./kernel":"./kernel/index.ts","./services":"./services/index.ts","./broadcasting":"./broadcasting/index.ts","./i18n":"./i18n/index.ts","./server":"./server/index.ts","./config":"./config/index.ts","./bun/preload":"./bun/preload.ts","./bun/plugin":"./bun/plugin.ts"},scripts:{lint:"oxlint",build:"NODE_ENV=production bun run build:core && bun run build:bin && bun run build:types && bun run build:client && bun run build:plugin && bun run build:client-types","build:core":"bun ./scripts/build.ts","build:bin":"bun build --outdir=./dist/bin --target=bun --external=vite --external=react-dom --external=react/jsx-runtime --external=bun --external=sharp --external=@azure/storage-blob --sourcemap ./bin/gemi.ts && bun ./scripts/prepare-bin.ts","build:client":"vite build -c vite.client.config.mts","build:plugin":"vite build -c vite.plugin.config.mts","build:types":"tsc","build:client-types":"tsc -p tsconfig.browser.json",test:"vitest","test:types":"vitest run --typecheck.only","build:publish":"bun scripts/build-publish.ts",prepublishOnly:"echo 'Do not publish from this directory \u2014 its exports point at TS source. Run: bun run build:publish, then publish from .publish/' && exit 1"},dependencies:{"@aws-sdk/client-s3":"^3.629.0","@aws-sdk/s3-request-presigner":"^3.629.0","@prisma/client":"^6.4.1","ast-types":"^0.14.2",commander:"^12.1.0",history:"^5.3.0","jsx-email":"2.0.0-rc2.1",open:"^10.1.0","react-error-boundary":"^6.0.0",recast:"^0.23.9",resend:"^6.12.3",satori:"^0.12.2","temporal-polyfill":"^0.2.5","twitter-api-v2":"^1.20.2","urlpattern-polyfill":"^10.0.0",uuid:"^9.0.1"},devDependencies:{"@babel/parser":"^7.25.4","@repo/typescript-config":"*","@types/bun":"^1.3.14","@types/eslint":"^8.56.5","@types/node":"^20.11.24","@types/react":"^19.0.2","@types/react-dom":"^19.0.2",eslint:"^8.57.0",oxlint:"^1.39.0",react:"19.2.3","react-dom":"19.2.3",typescript:"^5.7.3",vitest:"^4.0.0"},peerDependencies:{"@azure/storage-blob":"^12.28.0",react:">=19","react-dom":">=19",sharp:"^0.34.2",vite:"^8.0.0"},peerDependenciesMeta:{"@azure/storage-blob":{optional:!0}}};var _=[" \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557\u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D \u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2554\u2588\u2588\u2588\u2588\u2554\u2588\u2588\u2551\u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u255D \u2588\u2588\u2551\u255A\u2588\u2588\u2554\u255D\u2588\u2588\u2551\u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u255A\u2550\u255D \u2588\u2588\u2551\u2588\u2588\u2551"," \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u255D"],k=Boolean(process.stdout.isTTY)&&!process.env.NO_COLOR,l=(i,n)=>k?`\x1B[${i}m${n}\x1B[0m`:n,G=(i)=>l("1",i),d=(i)=>l("2",i),x=(i)=>l("36",i),H=(i)=>l("32",i),J=(i)=>l("35",i);function L(){return v.version??"?"}function N(i){for(let n of Object.values(q()))for(let t of n??[])if((t.family==="IPv4"||t.family===4)&&!t.internal)return`http://${t.address}:${i}`;return null}function Q(i){return y(i).filter((n)=>T(n)).map((n)=>a(n))}function I(i){let{port:n,rootDir:t}=i,p=`http://localhost:${n}`,e=N(n),s=Q(t),r=(b,u)=>` ${H("\u279C")} ${G(b.padEnd(9))}${u}`,c=["",..._.map((b)=>J(b)),"",` ${d("gemi")} ${x(`v${L()}`)}`,"",r("Local:",x(p)),r("Network:",e?x(e):d("unavailable")),r("Env:",s.length?s.join(", "):d("none")),""];console.log(c.join(`
|
|
3
3
|
`))}
|
|
4
4
|
export{W as g,X as h,I as i};
|
|
5
5
|
|
|
6
|
-
//# debugId=
|
|
6
|
+
//# debugId=6FA499CE8220FA9264756E2164756E21
|
|
@@ -6,6 +6,6 @@
|
|
|
6
6
|
"import { existsSync } from \"node:fs\";\nimport { basename } from \"node:path\";\nimport { networkInterfaces } from \"node:os\";\nimport { envFiles } from \"./watchEnv\";\nimport pkg from \"../package.json\";\n\n// \"GEMI\" — ANSI Shadow figlet font.\nconst ART = [\n \" ██████╗ ███████╗███╗ ███╗██╗\",\n \"██╔════╝ ██╔════╝████╗ ████║██║\",\n \"██║ ███╗█████╗ ██╔████╔██║██║\",\n \"██║ ██║██╔══╝ ██║╚██╔╝██║██║\",\n \"╚██████╔╝███████╗██║ ╚═╝ ██║██║\",\n \" ╚═════╝ ╚══════╝╚═╝ ╚═╝╚═╝\",\n];\n\nconst useColor = Boolean(process.stdout.isTTY) && !process.env.NO_COLOR;\nconst paint = (code: string, text: string) =>\n useColor ? `\\x1b[${code}m${text}\\x1b[0m` : text;\nconst bold = (t: string) => paint(\"1\", t);\nconst dim = (t: string) => paint(\"2\", t);\nconst cyan = (t: string) => paint(\"36\", t);\nconst green = (t: string) => paint(\"32\", t);\nconst magenta = (t: string) => paint(\"35\", t);\n\nfunction gemiVersion(): string {\n return (pkg as { version?: string }).version ?? \"?\";\n}\n\nfunction networkUrl(port: number | string): string | null {\n for (const ifaces of Object.values(networkInterfaces())) {\n for (const iface of ifaces ?? []) {\n // Node <18 reported `family` as the number 4; newer Bun/Node use \"IPv4\".\n const isV4 = iface.family === \"IPv4\" || (iface.family as unknown) === 4;\n if (isV4 && !iface.internal) return `http://${iface.address}:${port}`;\n }\n }\n return null;\n}\n\nfunction loadedEnvFiles(rootDir: string): string[] {\n return envFiles(rootDir)\n .filter((file) => existsSync(file))\n .map((file) => basename(file));\n}\n\nexport function printStartupBanner(params: {\n port: number | string;\n rootDir: string;\n}) {\n const { port, rootDir } = params;\n const local = `http://localhost:${port}`;\n const network = networkUrl(port);\n const env = loadedEnvFiles(rootDir);\n\n const row = (label: string, value: string) =>\n ` ${green(\"➜\")} ${bold(label.padEnd(9))}${value}`;\n\n const out = [\n \"\",\n ...ART.map((line) => magenta(line)),\n \"\",\n ` ${dim(\"gemi\")} ${cyan(`v${gemiVersion()}`)}`,\n \"\",\n row(\"Local:\", cyan(local)),\n row(\"Network:\", network ? cyan(network) : dim(\"unavailable\")),\n row(\"Env:\", env.length ? env.join(\", \") : dim(\"none\")),\n \"\",\n ];\n\n console.log(out.join(\"\\n\"));\n}\n"
|
|
7
7
|
],
|
|
8
8
|
"mappings": "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",
|
|
9
|
-
"debugId": "
|
|
9
|
+
"debugId": "6FA499CE8220FA9264756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{h as I,i as R}from"./chunk-
|
|
2
|
+
import{h as I,i as R}from"./chunk-c705601x.js";import"./chunk-ppt296ye.js";import{K as T,M as _}from"./chunk-d9k245jt.js";import"./chunk-evkv0xa7.js";import"./chunk-p5r0t9jh.js";import"./chunk-4z53shav.js";import"./chunk-m0earq80.js";import"./chunk-f18weffa.js";import{join as M}from"path";import{Duplex as E}from"stream";import{constants as P,createBrotliCompress as q,createGzip as m}from"zlib";var h=["br","gzip"],c=1024,l=5,o=19,d=6;function p($){if($===void 0)return 1;if(!/^\d+(\.\d{0,3})?$/.test($.trim()))return 1;let J=Number($.trim());return Number.isFinite(J)?Math.min(J,1):1}function n($){if($===null||$===void 0)return null;let J=new Map;for(let H of $.split(",")){let[z,...G]=H.split(";"),x=z.trim().toLowerCase();if(x==="")continue;let j=1;for(let Q of G){let k=Q.indexOf("=");if(k===-1)continue;if(Q.slice(0,k).trim().toLowerCase()==="q"){j=p(Q.slice(k+1));break}}J.set(x,j)}return J}function i($,J=h){let H=n($);if(!H)return null;let z=H.get("*"),G=null,x=0;for(let j of J){let Q=H.get(j)??z??0;if(Q>x)G=j,x=Q}return G}function t($,J){if(!$)return!1;return $.split(",").some((H)=>H.trim().toLowerCase().split("=")[0].trim()===J)}function a($,J){if($==="HEAD")return!1;if(!J.body)return!1;if(J.status<200||J.status===204||J.status===206||J.status===304)return!1;if(J.headers.has("Content-Range"))return!1;let H=J.headers.get("Content-Type");if(!H||!/^\s*text\/html\s*(;|$)/i.test(H))return!1;let z=J.headers.get("Content-Encoding");if(z&&z.trim().toLowerCase()!=="identity")return!1;if(t(J.headers.get("Cache-Control"),"no-transform"))return!1;let G=J.headers.get("Content-Length");if(G!==null&&Number(G)<c)return!1;return!0}function s($){let J=$==="br"?q({params:{[P.BROTLI_PARAM_QUALITY]:l,[P.BROTLI_PARAM_LGWIN]:o},flush:P.BROTLI_OPERATION_FLUSH}):m({level:d,flush:P.Z_SYNC_FLUSH});return E.toWeb(J)}function r($){let J=$.get("Vary");if(!J){$.set("Vary","Accept-Encoding");return}let H=J.split(",").map((z)=>z.trim().toLowerCase());if(H.includes("*")||H.includes("accept-encoding"))return;$.append("Vary","Accept-Encoding")}function V($,J){if(!a($.method,J))return J;let H=new Headers(J.headers);r(H);let z=i($.headers.get("Accept-Encoding"));if(!z)return new Response(J.body,{status:J.status,statusText:J.statusText,headers:H});let G;try{G=s(z)}catch{return new Response(J.body,{status:J.status,statusText:J.statusText,headers:H})}return H.set("Content-Encoding",z),H.delete("Content-Length"),new Response(J.body.pipeThrough(G),{status:J.status,statusText:J.statusText,headers:H})}function D($){let J=$.toString(),H=new Bun.CryptoHasher("sha1");return H.update(J),H.digest("hex")}if(!globalThis.URLPattern)globalThis.URLPattern=T;import{exists as e}from"fs/promises";var JJ=process.env.GEMI_PROJECT_DIR??"",C=M(process.cwd(),JJ),$J=M(C,"app"),A=M(C,"dist");async function OJ($,J){let H=await import(`${A}/client/.vite/manifest.json`),z=await import(`${A}/server/.vite/manifest.json`);process.env.ROOT_DIR=C,process.env.APP_DIR=$J,process.env.DIST_DIR=A;let G={},x={},j={},Q=(K,Z)=>`"${K}": () => import("${Z}")`,k=[];for(let K of["404",...$.getFlatComponentTree.call($)]){let Z=z[`app/views/${K}.tsx`];if(!Z?.file){console.log(`Server file not found for ${K}`),console.log(Z);let W=Object.keys(z),L=`app/views/${K}.tsx`;console.log(`${L} not found in server manifest`),console.log(W)}let X=await import(`${process.env.DIST_DIR}/server/${Z?.file}`);G[K]=X.default,x[K]=X.OpenGraph;let U=H[`app/views/${K}.tsx`];if(U?.css&&U?.css.length>0)j[K]=U?.css;if(U)k.push(Q(K,`/${U?.file}`))}let F=`{${k.join(",")}}`,w=H["app/client.tsx"]?.css??[],g=(await Promise.all(w.map((K)=>Bun.file(`${A}/client/${K}`).text()))).join(`
|
|
3
3
|
`),f=new T({pathname:"/*.:filetype(png|txt|js|css|jpg|svg|jpeg|avif|webp|ico|ttf|map)"});async function v(K){let{pathname:Z}=new URL(K.url),X=Z.startsWith("/.well-known"),U=f.test({pathname:Z})||X,W=Z.startsWith("/api");if(U&&!W){let L=new URL(K.url),B=K.url.replace(L.origin,"").split("?")[0],O=`${A}/client${B.replace("/assets/assets","/assets")}`,b=await e(O);if(!b&&L.pathname.includes(".js"))return new Response(`if(caches){caches?.delete("${O}")}window.location.reload();export {}`,{headers:{"Content-Type":"application/javascript"}});if(!b){if(Z===_||Z.startsWith(`${_}/`))return new Response("Not found",{status:404});return await N(K,Z)}try{let Y=Bun.file(O),y=D(Y.lastModified);return new Response(Y.stream(),{headers:{"Content-Type":Y.type,"Cache-Control":"public, max-age=31536000, must-revalidate","Content-Length":String(Y.size),ETag:y}})}catch(Y){return $.onException?.(Y),new Response("Not found",{status:404})}}return await N(K,Z)}async function N(K,Z){let X=$.fetch.bind($);try{let U=await X(K);if(U instanceof Response)return U;else{let W=[];return W.push({content:g}),await U({getStyles:async(B)=>{if(!B)return I([]);for(let O of B){let b=H[`app/views/${O}.tsx`];for(let Y of b?.css??[]){let y=Bun.file(`${process.env.DIST_DIR}/client/${Y}`);W.push({id:Y,content:await y.text()})}}return I(W)},bootstrapModules:[`/${H["app/client.tsx"].file}`],loaders:F,viewImportMap:G,ogMap:x,cssManifest:j})}}catch(U){if(console.error(U),Z.startsWith("/api"))return new Response(JSON.stringify({error:U.message}),{status:500,headers:{"Content-Type":"application/json"}});return $.onException?.(U),new Response(U.stack,{status:500})}}let u=(process.env.GEMI_COMPRESSION??"auto").toLowerCase()!=="off",S=Bun.serve({maxRequestBodySize:10737418240,fetch:async(K,Z)=>{if(!K.headers.get("x-forwarded-for")){let U=Z.requestIP(K);if(U)K.headers.set("x-forwarded-for",U.address)}let X=await J(K,v);return u?V(K,X):X},idleTimeout:Number(process.env.SERVER_IDLE_TIMEOUT??10),port:process.env.PORT||5173});return R({port:S.port,rootDir:C}),S}export{OJ as httpProd};
|
|
4
4
|
|
|
5
5
|
//# debugId=45C6664548EA439D64756E2164756E21
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientRouter.d.ts","sourceRoot":"","sources":["../../client/ClientRouter.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAqB,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ClientRouter.d.ts","sourceRoot":"","sources":["../../client/ClientRouter.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAqB,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAgC/E,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC;KACrC;CACF;AAgRD,eAAO,MAAM,YAAY,GAAI,OAAO;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IACxD,UAAU,EAAE,aAAa,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpE,4CA2CA,CAAC"}
|
|
@@ -4,6 +4,14 @@ import { Subject } from "../utils/Subject";
|
|
|
4
4
|
import { ProgressManager } from "./ProgressManager";
|
|
5
5
|
import type { Breadcrumb } from "./useBreadcrumbs";
|
|
6
6
|
import type { RouteState } from "./RouteStateContext";
|
|
7
|
+
export interface PrefetchTarget {
|
|
8
|
+
/** Concrete pathname, without the locale segment. */
|
|
9
|
+
pathname: string;
|
|
10
|
+
/** Query string including the leading `?`, or empty. */
|
|
11
|
+
search?: string;
|
|
12
|
+
/** `/tr-TR` style prefix, or empty for the default locale. */
|
|
13
|
+
localeSegment?: string;
|
|
14
|
+
}
|
|
7
15
|
declare global {
|
|
8
16
|
interface Window {
|
|
9
17
|
scrollHistory: Map<string, number>;
|
|
@@ -21,6 +29,9 @@ interface ClientRouterContextValue {
|
|
|
21
29
|
setNavigationAbortController: (controller: AbortController) => void;
|
|
22
30
|
progressManager: ProgressManager;
|
|
23
31
|
fetchRouteCSS: (routePath: string) => Promise<void>;
|
|
32
|
+
prefetchRoute: (target: PrefetchTarget) => Promise<void>;
|
|
33
|
+
takePrefetched: (url: string) => Promise<unknown> | null;
|
|
34
|
+
clearPrefetchCache: () => void;
|
|
24
35
|
breadcrumbsCache: Map<string, Breadcrumb>;
|
|
25
36
|
routerSubject: Subject<RouteState>;
|
|
26
37
|
urlLocaleSegment: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientRouterContext.d.ts","sourceRoot":"","sources":["../../client/ClientRouterContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,OAAO,EAAwB,MAAM,SAAS,CAAC;AAC1E,OAAO,EAOL,KAAK,iBAAiB,EACvB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAG3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"ClientRouterContext.d.ts","sourceRoot":"","sources":["../../client/ClientRouterContext.tsx"],"names":[],"mappings":"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"}
|
package/dist/client/Link.d.ts
CHANGED
|
@@ -6,10 +6,29 @@ type Views = {
|
|
|
6
6
|
[K in keyof ViewRPC as K extends `view:${infer P}` ? P : never]: ViewResult<K>;
|
|
7
7
|
};
|
|
8
8
|
type Search = Record<string, string | number | boolean | undefined | null>;
|
|
9
|
+
/**
|
|
10
|
+
* When to warm the target route's data, styles and chunks.
|
|
11
|
+
*
|
|
12
|
+
* - `hover` — the moment the pointer arrives, or on touch or keyboard focus.
|
|
13
|
+
* - `intent` — hover held long enough to read as intent, so a cursor sweeping
|
|
14
|
+
* across a nav bar does not fire a request per link it crosses.
|
|
15
|
+
* - `viewport` — as the link comes into view.
|
|
16
|
+
* - `render` — as soon as the link renders.
|
|
17
|
+
*
|
|
18
|
+
* Several can be combined. The useful pairing is a bulk strategy with an
|
|
19
|
+
* interactive one — `["viewport", "intent"]` warms the link on the way past and
|
|
20
|
+
* warms it again on approach if the cached payload has since gone stale.
|
|
21
|
+
* `hover` and `intent` together is just `hover`, since it fires first.
|
|
22
|
+
*
|
|
23
|
+
* Every strategy stands down on metered or very slow connections.
|
|
24
|
+
*/
|
|
25
|
+
export type PrefetchStrategy = "hover" | "intent" | "viewport" | "render";
|
|
9
26
|
type LinkBaseProps<T extends keyof Views> = Omit<ComponentProps<"a">, "href"> & {
|
|
10
27
|
active?: boolean;
|
|
11
28
|
href: T;
|
|
12
29
|
hash?: string;
|
|
30
|
+
/** Off unless set. `false` is accepted so it can be driven by a variable. */
|
|
31
|
+
prefetch?: PrefetchStrategy | readonly PrefetchStrategy[] | false;
|
|
13
32
|
params: UrlParser<T>;
|
|
14
33
|
search?: T extends keyof Views ? Views[T]["input"] extends Record<string, never> ? Search : Prettify<Partial<Views[T]["input"]> & Search> : Search;
|
|
15
34
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../client/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../client/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,cAAc,EAEpB,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAM9C,KAAK,KAAK,GAAG;KACV,CAAC,IAAI,MAAM,OAAO,IAAI,CAAC,SAAS,QAAQ,MAAM,CAAC,EAAE,GAC9C,CAAC,GACD,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC;CAC1B,CAAC;AAEF,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;AAE3E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAQ1E,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,KAAK,IAAI,IAAI,CAC9C,cAAc,CAAC,GAAG,CAAC,EACnB,MAAM,CACP,GAAG;IACF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,CAAC,CAAC;IACR,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,gBAAgB,GAAG,SAAS,gBAAgB,EAAE,GAAG,KAAK,CAAC;IAClE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,CAAC,EAAE,CAAC,SAAS,MAAM,KAAK,GAC1B,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAC7C,MAAM,GACN,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,GAC/C,MAAM,CAAC;CACZ,CAAC;AAEF,KAAK,SAAS,CAAC,CAAC,SAAS,MAAM,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CACxE,MAAM,EACN,KAAK,CACN,GACG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,GAChC,aAAa,CAAC,CAAC,CAAC,CAAC;AAUrB,eAAO,MAAM,IAAI,wCAAS,CAAC,SAAS,MAAM,KAAK,SAAS,SAAS,CAAC,CAAC,CAAC,8CAqMlE,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How long a prefetched payload stays usable. Long enough to cover the gap
|
|
3
|
+
* between hovering a link and clicking it, short enough that a navigation is
|
|
4
|
+
* not served a snapshot the visitor would notice as out of date.
|
|
5
|
+
*
|
|
6
|
+
* A payload cached here is committed wholesale on navigation — including into
|
|
7
|
+
* the query cache via `hydrate` — so anything that invalidates page data has to
|
|
8
|
+
* `clear()` this too. `useMutation` does exactly that on every successful
|
|
9
|
+
* write; locale needs no such call, since the locale segment is part of the key.
|
|
10
|
+
*/
|
|
11
|
+
export declare const PREFETCH_TTL = 10000;
|
|
12
|
+
/**
|
|
13
|
+
* Ceiling on retained payloads. Entries only leave on their own when a
|
|
14
|
+
* navigation consumes them, and `viewport`/`render` on a long list warms links
|
|
15
|
+
* that are mostly never clicked — each one a full page payload. Oldest goes
|
|
16
|
+
* first, which is also the one closest to expiry.
|
|
17
|
+
*/
|
|
18
|
+
export declare const PREFETCH_MAX_ENTRIES = 12;
|
|
19
|
+
/**
|
|
20
|
+
* Payloads fetched ahead of a navigation, keyed by the `.json` URL that
|
|
21
|
+
* navigation would request. Entries are handed over once — a navigation that
|
|
22
|
+
* consumes one becomes the live route data, so keeping a copy around would only
|
|
23
|
+
* let a later visit render from a stale snapshot.
|
|
24
|
+
*/
|
|
25
|
+
export declare class PrefetchCache {
|
|
26
|
+
private entries;
|
|
27
|
+
private isFresh;
|
|
28
|
+
/** Drops what has expired, then the oldest of whatever is still over budget. */
|
|
29
|
+
private evict;
|
|
30
|
+
/**
|
|
31
|
+
* Runs `load` unless the same URL is already in flight or freshly cached, so
|
|
32
|
+
* a link hovered repeatedly — or a screenful of eagerly prefetched links
|
|
33
|
+
* pointing at one route — costs a single request.
|
|
34
|
+
*/
|
|
35
|
+
prime(url: string, load: () => Promise<unknown>): Promise<unknown>;
|
|
36
|
+
/**
|
|
37
|
+
* Hands the payload for `url` to a navigation, if one was prefetched and is
|
|
38
|
+
* still fresh. Resolves to `null` when the prefetch failed, which callers
|
|
39
|
+
* must treat as a miss.
|
|
40
|
+
*/
|
|
41
|
+
take(url: string): Promise<unknown> | null;
|
|
42
|
+
/**
|
|
43
|
+
* Drops everything, for when the data behind these payloads may have moved
|
|
44
|
+
* on. In-flight loads still settle; their entries are simply gone by then.
|
|
45
|
+
*/
|
|
46
|
+
clear(): void;
|
|
47
|
+
/** Retained entries, fresh or not. Exposed for tests. */
|
|
48
|
+
get size(): number;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=PrefetchCache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrefetchCache.d.ts","sourceRoot":"","sources":["../../client/PrefetchCache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,QAAS,CAAC;AAEnC;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAOvC;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAA4B;IAE3C,OAAO,CAAC,OAAO;IAIf,gFAAgF;IAChF,OAAO,CAAC,KAAK;IAeb;;;;OAIG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAwBlE;;;;OAIG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI;IAS1C;;;OAGG;IACH,KAAK;IAIL,yDAAyD;IACzD,IAAI,IAAI,WAEP;CACF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
interface LoadRoutePayloadOptions {
|
|
2
|
+
/** The `.json` URL for the route being navigated to. */
|
|
3
|
+
url: string;
|
|
4
|
+
/** `x-gemi-from` value for the route currently on screen. */
|
|
5
|
+
from: string;
|
|
6
|
+
/** Hands over a payload warmed ahead of this navigation, if there is one. */
|
|
7
|
+
takePrefetched?: (url: string) => Promise<unknown> | null;
|
|
8
|
+
/**
|
|
9
|
+
* The route that is on screen *now*, re-read at the moment a response lands.
|
|
10
|
+
* A navigation that committed while this one was in flight invalidates the
|
|
11
|
+
* partial-render plan the server computed.
|
|
12
|
+
*/
|
|
13
|
+
renderedRoute: () => string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The page data for a navigation, from whichever source can produce it.
|
|
17
|
+
*
|
|
18
|
+
* A prefetched payload is always a full render, so it can be committed as-is
|
|
19
|
+
* and the `x-gemi-from` round trip skipped entirely. Everything else — no
|
|
20
|
+
* prefetch, a prefetch that failed, a partial response computed against a route
|
|
21
|
+
* that has since been navigated away from — falls through to a request.
|
|
22
|
+
*
|
|
23
|
+
* Returns `null` when nothing usable came back; the caller leaves the current
|
|
24
|
+
* route on screen.
|
|
25
|
+
*/
|
|
26
|
+
export declare function loadRoutePayload(options: LoadRoutePayloadOptions): Promise<any>;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=loadRoutePayload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadRoutePayload.d.ts","sourceRoot":"","sources":["../../../client/helpers/loadRoutePayload.ts"],"names":[],"mappings":"AAKA,UAAU,uBAAuB;IAC/B,wDAAwD;IACxD,GAAG,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAC1D;;;;OAIG;IACH,aAAa,EAAE,MAAM,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,GAAG,CAAC,CAyCd"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `.json` URL a route's page data is served from.
|
|
3
|
+
*
|
|
4
|
+
* Prefetching and navigation have to agree on this string exactly — the
|
|
5
|
+
* prefetch cache is keyed by it, and any disagreement silently turns every
|
|
6
|
+
* prefetch into a wasted request plus a full fetch on click.
|
|
7
|
+
*/
|
|
8
|
+
export declare function routeDataUrl(options: {
|
|
9
|
+
/** Concrete pathname, without the locale segment. */
|
|
10
|
+
pathname: string;
|
|
11
|
+
/** Query string including the leading `?`, or empty. */
|
|
12
|
+
search?: string;
|
|
13
|
+
/** `/tr-TR` style prefix, or empty for the default locale. */
|
|
14
|
+
localeSegment?: string;
|
|
15
|
+
}): string;
|
|
16
|
+
//# sourceMappingURL=routeDataUrl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routeDataUrl.d.ts","sourceRoot":"","sources":["../../../client/helpers/routeDataUrl.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE;IACpC,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,UAKA"}
|
package/dist/client/index.d.ts
CHANGED
|
@@ -11,9 +11,11 @@ export { useRoute } from "./useRoute";
|
|
|
11
11
|
export { useIsNavigationPending } from "./useIsNavigationPending";
|
|
12
12
|
export { useNavigationProgress } from "./useNavigationProgress";
|
|
13
13
|
export { useNavigate } from "./useNavigate";
|
|
14
|
+
export { usePrefetch } from "./usePrefetch";
|
|
14
15
|
export { useBreadcrumbs } from "./useBreadcrumbs";
|
|
15
16
|
export { useRouteTransition } from "./RouteTransitionProvider";
|
|
16
17
|
export { Link } from "./Link";
|
|
18
|
+
export type { PrefetchStrategy } from "./Link";
|
|
17
19
|
export { Redirect } from "./Redirect";
|
|
18
20
|
export { init, create } from "./init";
|
|
19
21
|
export { createRoot } from "./createRoot";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EACL,WAAW,EACX,SAAS,EACT,QAAQ,EACR,OAAO,EACP,MAAM,EACN,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EACL,IAAI,EACJ,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,YAAY,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC1D,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtD,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EACL,WAAW,EACX,SAAS,EACT,QAAQ,EACR,OAAO,EACP,MAAM,EACN,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EACL,IAAI,EACJ,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,YAAY,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC1D,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtD,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
|