gemi 0.115.0 → 0.116.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.
Files changed (73) hide show
  1. package/dist/ai/index.js +1 -1
  2. package/dist/{chunk-t24p7gc6.js → chunk-1q9kd20m.js} +1 -1
  3. package/dist/{chunk-0z8ejxre.js → chunk-4088szy9.js} +1 -1
  4. package/dist/chunk-49nyyjfe.js +5 -0
  5. package/dist/{chunk-9b4erdy2.js.map → chunk-49nyyjfe.js.map} +3 -3
  6. package/dist/{chunk-0av6xvm6.js → chunk-6cx8ncd4.js} +1 -1
  7. package/dist/{chunk-jafm3613.js → chunk-6d8rvr1v.js} +2 -2
  8. package/dist/{chunk-jafm3613.js.map → chunk-6d8rvr1v.js.map} +1 -1
  9. package/dist/{chunk-wzrt5mac.js → chunk-79xg42e7.js} +1 -1
  10. package/dist/chunk-jmg2zsaf.js +5 -0
  11. package/dist/{chunk-7g9yh5ae.js.map → chunk-jmg2zsaf.js.map} +4 -4
  12. package/dist/chunk-ms9k0rx6.js +46 -0
  13. package/dist/{chunk-d6591xck.js.map → chunk-ms9k0rx6.js.map} +5 -5
  14. package/dist/{chunk-mps6ynbh.js → chunk-p91b8zcn.js} +1 -1
  15. package/dist/{chunk-dexdkh3z.js → chunk-pn8v6fj2.js} +1 -1
  16. package/dist/{chunk-mtbygktb.js → chunk-v1tfdgy1.js} +1 -1
  17. package/dist/{chunk-t4t3hqe0.js → chunk-yf1njzd5.js} +1 -1
  18. package/dist/chunks/{ThemeProvider-BgLyzzOL.js → ThemeProvider-BLI4zpLu.js} +8 -3
  19. package/dist/chunks/ThemeProvider-BLI4zpLu.js.map +1 -0
  20. package/dist/client/ClientRouter.d.ts +3 -5
  21. package/dist/client/ClientRouter.d.ts.map +1 -1
  22. package/dist/client/ClientRouterContext.d.ts.map +1 -1
  23. package/dist/client/Head.d.ts +1 -1
  24. package/dist/client/Head.d.ts.map +1 -1
  25. package/dist/client/ServerDataProvider.d.ts +2 -0
  26. package/dist/client/ServerDataProvider.d.ts.map +1 -1
  27. package/dist/client/createRoot.d.ts +2 -4
  28. package/dist/client/createRoot.d.ts.map +1 -1
  29. package/dist/client/htmlAttributes.d.ts +18 -0
  30. package/dist/client/htmlAttributes.d.ts.map +1 -0
  31. package/dist/client/index.d.ts +1 -0
  32. package/dist/client/index.d.ts.map +1 -1
  33. package/dist/client/index.js +79 -6
  34. package/dist/client/index.js.map +1 -1
  35. package/dist/email/index.js +1 -1
  36. package/dist/facades/Meta.d.ts +11 -1
  37. package/dist/facades/Meta.d.ts.map +1 -1
  38. package/dist/facades/index.js +1 -1
  39. package/dist/http/HttpRequest.d.ts +3 -0
  40. package/dist/http/HttpRequest.d.ts.map +1 -1
  41. package/dist/http/Metadata.d.ts +23 -0
  42. package/dist/http/Metadata.d.ts.map +1 -1
  43. package/dist/http/index.js +1 -1
  44. package/dist/http/requestContext.d.ts +3 -0
  45. package/dist/http/requestContext.d.ts.map +1 -1
  46. package/dist/i18n/index.d.ts +1 -0
  47. package/dist/i18n/index.d.ts.map +1 -1
  48. package/dist/i18n/index.js +2 -2
  49. package/dist/i18n/index.js.map +2 -2
  50. package/dist/kernel/index.js +1 -1
  51. package/dist/orm/index.js +1 -1
  52. package/dist/server/index.js +1 -1
  53. package/dist/services/index.d.ts +1 -1
  54. package/dist/services/index.d.ts.map +1 -1
  55. package/dist/services/index.js +1 -1
  56. package/dist/services/router/ViewRouteDispatcher.d.ts +3 -1
  57. package/dist/services/router/ViewRouteDispatcher.d.ts.map +1 -1
  58. package/dist/services/router/config.d.ts +19 -0
  59. package/dist/services/router/config.d.ts.map +1 -1
  60. package/dist/testing/index.js +1 -1
  61. package/package.json +1 -1
  62. package/dist/chunk-7g9yh5ae.js +0 -5
  63. package/dist/chunk-9b4erdy2.js +0 -5
  64. package/dist/chunk-d6591xck.js +0 -46
  65. package/dist/chunks/ThemeProvider-BgLyzzOL.js.map +0 -1
  66. /package/dist/{chunk-t24p7gc6.js.map → chunk-1q9kd20m.js.map} +0 -0
  67. /package/dist/{chunk-0z8ejxre.js.map → chunk-4088szy9.js.map} +0 -0
  68. /package/dist/{chunk-0av6xvm6.js.map → chunk-6cx8ncd4.js.map} +0 -0
  69. /package/dist/{chunk-wzrt5mac.js.map → chunk-79xg42e7.js.map} +0 -0
  70. /package/dist/{chunk-mps6ynbh.js.map → chunk-p91b8zcn.js.map} +0 -0
  71. /package/dist/{chunk-dexdkh3z.js.map → chunk-pn8v6fj2.js.map} +0 -0
  72. /package/dist/{chunk-mtbygktb.js.map → chunk-v1tfdgy1.js.map} +0 -0
  73. /package/dist/{chunk-t4t3hqe0.js.map → chunk-yf1njzd5.js.map} +0 -0
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{Th as qS,Uh as JS}from"../chunk-qsrcdzan.js";import{Zh as $S}from"../chunk-7g9yh5ae.js";import{bi as P}from"../chunk-t4yh4nf9.js";import"../chunk-1vzks22y.js";import"../chunk-vw8849ys.js";import{render as s}from"jsx-email";import B from"process";import{Buffer as n}from"buffer";import r from"path";import{fileURLToPath as PS}from"url";import{promisify as yS}from"util";import o from"child_process";import wS,{constants as fS}from"fs/promises";import h from"process";import l,{constants as zS}from"fs/promises";import g from"process";import NS from"os";import W from"fs";import RS from"fs";import b from"fs";var F;function HS(){try{return b.statSync("/.dockerenv"),!0}catch{return!1}}function XS(){try{return b.readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return!1}}function L(){if(F===void 0)F=HS()||XS();return F}var O,US=()=>{try{return RS.statSync("/run/.containerenv"),!0}catch{return!1}};function R(){if(O===void 0)O=US()||L();return O}var u=()=>{if(g.platform!=="linux")return!1;if(NS.release().toLowerCase().includes("microsoft")){if(R())return!1;return!0}try{if(W.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft"))return!R()}catch{}if(W.existsSync("/proc/sys/fs/binfmt_misc/WSLInterop")||W.existsSync("/run/WSL"))return!R();return!1},H=g.env.__IS_WSL_TEST__?u:u();var ES=(()=>{let S;return async function(){if(S)return S;let q="/etc/wsl.conf",J=!1;try{await l.access(q,zS.F_OK),J=!0}catch{}if(!J)return"/mnt/";let K=await l.readFile(q,{encoding:"utf8"}),Q=/(?<!#.*)root\s*=\s*(?<mountPoint>.*)/g.exec(K);if(!Q)return"/mnt/";return S=Q.groups.mountPoint.trim(),S=S.endsWith("/")?S:`${S}/`,S}})(),MS=async()=>{return`${await ES()}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`},v=async()=>{if(H)return MS();return`${h.env.SYSTEMROOT||h.env.windir||String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`};function X($,S,q){let J=(K)=>Object.defineProperty($,S,{value:K,enumerable:!0,writable:!0});return Object.defineProperty($,S,{configurable:!0,enumerable:!0,get(){let K=q();return J(K),K},set(K){J(K)}}),$}import{promisify as jS}from"util";import j from"process";import{execFile as xS}from"child_process";import{promisify as _S}from"util";import kS from"process";import{execFile as DS}from"child_process";var FS=_S(DS);async function T(){if(kS.platform!=="darwin")throw Error("macOS only");let{stdout:$}=await FS("defaults",["read","com.apple.LaunchServices/com.apple.launchservices.secure","LSHandlers"]),q=/LSHandlerRoleAll = "(?!-)(?<id>[^"]+?)";\s+?LSHandlerURLScheme = (?:http|https);/.exec($)?.groups.id??"com.apple.Safari";if(q==="com.apple.safari")return"com.apple.Safari";return q}import LS from"process";import{promisify as OS}from"util";import{execFile as WS,execFileSync as H0}from"child_process";var vS=OS(WS);async function m($,{humanReadableOutput:S=!0,signal:q}={}){if(LS.platform!=="darwin")throw Error("macOS only");let J=S?[]:["-ss"],K={};if(q)K.signal=q;let{stdout:Q}=await vS("osascript",["-e",$,J],K);return Q.trim()}async function C($){return m(`tell application "Finder" to set app_path to application file id "${$}" as string
2
+ import{Th as qS,Uh as JS}from"../chunk-qsrcdzan.js";import{Zh as $S}from"../chunk-jmg2zsaf.js";import{bi as P}from"../chunk-t4yh4nf9.js";import"../chunk-1vzks22y.js";import"../chunk-vw8849ys.js";import{render as s}from"jsx-email";import B from"process";import{Buffer as n}from"buffer";import r from"path";import{fileURLToPath as PS}from"url";import{promisify as yS}from"util";import o from"child_process";import wS,{constants as fS}from"fs/promises";import h from"process";import l,{constants as zS}from"fs/promises";import g from"process";import NS from"os";import W from"fs";import RS from"fs";import b from"fs";var F;function HS(){try{return b.statSync("/.dockerenv"),!0}catch{return!1}}function XS(){try{return b.readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return!1}}function L(){if(F===void 0)F=HS()||XS();return F}var O,US=()=>{try{return RS.statSync("/run/.containerenv"),!0}catch{return!1}};function R(){if(O===void 0)O=US()||L();return O}var u=()=>{if(g.platform!=="linux")return!1;if(NS.release().toLowerCase().includes("microsoft")){if(R())return!1;return!0}try{if(W.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft"))return!R()}catch{}if(W.existsSync("/proc/sys/fs/binfmt_misc/WSLInterop")||W.existsSync("/run/WSL"))return!R();return!1},H=g.env.__IS_WSL_TEST__?u:u();var ES=(()=>{let S;return async function(){if(S)return S;let q="/etc/wsl.conf",J=!1;try{await l.access(q,zS.F_OK),J=!0}catch{}if(!J)return"/mnt/";let K=await l.readFile(q,{encoding:"utf8"}),Q=/(?<!#.*)root\s*=\s*(?<mountPoint>.*)/g.exec(K);if(!Q)return"/mnt/";return S=Q.groups.mountPoint.trim(),S=S.endsWith("/")?S:`${S}/`,S}})(),MS=async()=>{return`${await ES()}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`},v=async()=>{if(H)return MS();return`${h.env.SYSTEMROOT||h.env.windir||String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`};function X($,S,q){let J=(K)=>Object.defineProperty($,S,{value:K,enumerable:!0,writable:!0});return Object.defineProperty($,S,{configurable:!0,enumerable:!0,get(){let K=q();return J(K),K},set(K){J(K)}}),$}import{promisify as jS}from"util";import j from"process";import{execFile as xS}from"child_process";import{promisify as _S}from"util";import kS from"process";import{execFile as DS}from"child_process";var FS=_S(DS);async function T(){if(kS.platform!=="darwin")throw Error("macOS only");let{stdout:$}=await FS("defaults",["read","com.apple.LaunchServices/com.apple.launchservices.secure","LSHandlers"]),q=/LSHandlerRoleAll = "(?!-)(?<id>[^"]+?)";\s+?LSHandlerURLScheme = (?:http|https);/.exec($)?.groups.id??"com.apple.Safari";if(q==="com.apple.safari")return"com.apple.Safari";return q}import LS from"process";import{promisify as OS}from"util";import{execFile as WS,execFileSync as H0}from"child_process";var vS=OS(WS);async function m($,{humanReadableOutput:S=!0,signal:q}={}){if(LS.platform!=="darwin")throw Error("macOS only");let J=S?[]:["-ss"],K={};if(q)K.signal=q;let{stdout:Q}=await vS("osascript",["-e",$,J],K);return Q.trim()}async function C($){return m(`tell application "Finder" to set app_path to application file id "${$}" as string
3
3
  tell application "System Events" to get value of property list item "CFBundleName" of property list file (app_path & ":Contents:Info.plist")`)}import{promisify as TS}from"util";import{execFile as CS}from"child_process";var IS=TS(CS),_={MSEdgeHTM:{name:"Edge",id:"com.microsoft.edge"},MSEdgeBHTML:{name:"Edge Beta",id:"com.microsoft.edge.beta"},MSEdgeDHTML:{name:"Edge Dev",id:"com.microsoft.edge.dev"},AppXq0fevzme2pys62n3e0fbqa7peapykr8v:{name:"Edge",id:"com.microsoft.edge.old"},ChromeHTML:{name:"Chrome",id:"com.google.chrome"},ChromeBHTML:{name:"Chrome Beta",id:"com.google.chrome.beta"},ChromeDHTML:{name:"Chrome Dev",id:"com.google.chrome.dev"},ChromiumHTM:{name:"Chromium",id:"org.chromium.Chromium"},BraveHTML:{name:"Brave",id:"com.brave.Browser"},BraveBHTML:{name:"Brave Beta",id:"com.brave.Browser.beta"},BraveDHTML:{name:"Brave Dev",id:"com.brave.Browser.dev"},BraveSSHTM:{name:"Brave Nightly",id:"com.brave.Browser.nightly"},FirefoxURL:{name:"Firefox",id:"org.mozilla.firefox"},OperaStable:{name:"Opera",id:"com.operasoftware.Opera"},VivaldiHTM:{name:"Vivaldi",id:"com.vivaldi.Vivaldi"},"IE.HTTP":{name:"Internet Explorer",id:"com.microsoft.ie"}},E0=new Map(Object.entries(_));class c extends Error{}async function I($=IS){let{stdout:S}=await $("reg",["QUERY"," HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\http\\UserChoice","/v","ProgId"]),q=/ProgId\s*REG_SZ\s*(?<id>\S+)/.exec(S);if(!q)throw new c(`Cannot find Windows browser in stdout: ${JSON.stringify(S)}`);let{id:J}=q.groups,K=J.lastIndexOf("."),Q=J.lastIndexOf("-"),Z=K===-1?void 0:J.slice(0,K),V=Q===-1?void 0:J.slice(0,Q);return _[J]??_[Z]??_[V]??{name:J,id:J}}var BS=jS(xS),AS=($)=>$.toLowerCase().replaceAll(/(?:^|\s|-)\S/g,(S)=>S.toUpperCase());async function x(){if(j.platform==="darwin"){let $=await T();return{name:await C($),id:$}}if(j.platform==="linux"){let{stdout:$}=await BS("xdg-mime",["query","default","x-scheme-handler/http"]),S=$.trim();return{name:AS(S.replace(/.desktop$/,"").replace("-"," ")),id:S}}if(j.platform==="win32")return I();throw Error("Only macOS, Linux, and Windows are supported")}var bS=yS(o.execFile),A=r.dirname(PS(import.meta.url)),d=r.join(A,"xdg-open"),{platform:N,arch:p}=B;async function uS(){let $=await v(),S=String.raw`(Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice").ProgId`,q=n.from(S,"utf16le").toString("base64"),{stdout:J}=await bS($,["-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-EncodedCommand",q],{encoding:"utf8"}),K=J.trim(),Q={ChromeHTML:"com.google.chrome",BraveHTML:"com.brave.Browser",MSEdgeHTM:"com.microsoft.edge",FirefoxURL:"org.mozilla.firefox"};return Q[K]?{id:Q[K]}:{}}var t=async($,S)=>{let q;for(let J of $)try{return await S(J)}catch(K){q=K}throw q},k=async($)=>{if($={wait:!1,background:!1,newInstance:!1,allowNonzeroExitCode:!1,...$},Array.isArray($.app))return t($.app,(V)=>k({...$,app:V}));let{name:S,arguments:q=[]}=$.app??{};if(q=[...q],Array.isArray(S))return t(S,(V)=>k({...$,app:{name:V,arguments:q}}));if(S==="browser"||S==="browserPrivate"){let V={"com.google.chrome":"chrome","google-chrome.desktop":"chrome","com.brave.Browser":"brave","org.mozilla.firefox":"firefox","firefox.desktop":"firefox","com.microsoft.msedge":"edge","com.microsoft.edge":"edge","com.microsoft.edgemac":"edge","microsoft-edge.desktop":"edge"},Y={chrome:"--incognito",brave:"--incognito",firefox:"--private-window",edge:"--inPrivate"},G=H?await uS():await x();if(G.id in V){let z=V[G.id];if(S==="browserPrivate")q.push(Y[z]);return k({...$,app:{name:U[z],arguments:q}})}throw Error(`${G.name} is not supported as a default browser`)}let J,K=[],Q={};if(N==="darwin"){if(J="open",$.wait)K.push("--wait-apps");if($.background)K.push("--background");if($.newInstance)K.push("--new");if(S)K.push("-a",S)}else if(N==="win32"||H&&!R()&&!S){if(J=await v(),K.push("-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-EncodedCommand"),!H)Q.windowsVerbatimArguments=!0;let V=["Start"];if($.wait)V.push("-Wait");if(S){if(V.push(`"\`"${S}\`""`),$.target)q.push($.target)}else if($.target)V.push(`"${$.target}"`);if(q.length>0)q=q.map((Y)=>`"\`"${Y}\`""`),V.push("-ArgumentList",q.join(","));$.target=n.from(V.join(" "),"utf16le").toString("base64")}else{if(S)J=S;else{let V=!A||A==="/",Y=!1;try{await wS.access(d,fS.X_OK),Y=!0}catch{}J=B.versions.electron??(N==="android"||V||!Y)?"xdg-open":d}if(q.length>0)K.push(...q);if(!$.wait)Q.stdio="ignore",Q.detached=!0}if(N==="darwin"&&q.length>0)K.push("--args",...q);if($.target)K.push($.target);let Z=o.spawn(J,K,Q);if($.wait)return new Promise((V,Y)=>{Z.once("error",Y),Z.once("close",(G)=>{if(!$.allowNonzeroExitCode&&G>0){Y(Error(`Exited with code ${G}`));return}V(Z)})});return Z.unref(),Z},gS=($,S)=>{if(typeof $!=="string")throw TypeError("Expected a `target`");return k({...S,target:$})};function i($){if(typeof $==="string"||Array.isArray($))return $;let{[p]:S}=$;if(!S)throw Error(`${p} is not supported`);return S}function D({[N]:$},{wsl:S}){if(S&&H)return i(S);if(!$)throw Error(`${N} is not supported`);return i($)}var U={};X(U,"chrome",()=>D({darwin:"google chrome",win32:"chrome",linux:["google-chrome","google-chrome-stable","chromium"]},{wsl:{ia32:"/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe",x64:["/mnt/c/Program Files/Google/Chrome/Application/chrome.exe","/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe"]}}));X(U,"brave",()=>D({darwin:"brave browser",win32:"brave",linux:["brave-browser","brave"]},{wsl:{ia32:"/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe",x64:["/mnt/c/Program Files/BraveSoftware/Brave-Browser/Application/brave.exe","/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe"]}}));X(U,"firefox",()=>D({darwin:"firefox",win32:String.raw`C:\Program Files\Mozilla Firefox\firefox.exe`,linux:"firefox"},{wsl:"/mnt/c/Program Files/Mozilla Firefox/firefox.exe"}));X(U,"edge",()=>D({darwin:"microsoft edge",win32:"msedge",linux:["microsoft-edge","microsoft-edge-dev"]},{wsl:"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"}));X(U,"browser",()=>"browser");X(U,"browserPrivate",()=>"browserPrivate");var a=gS;function hS($){return Array.from($,(S)=>{let q=S.charCodeAt(0);return S==="/"||S==="\\"||q<32||q===127?"_":S}).join("")}async function e($,S,q={}){let J=`${$}/${new Date().toISOString()}${hS(S.subject)}`,K={to:S.to,cc:S.cc,bcc:S.bcc,from:S.from,subject:S.subject,headers:S.headers??{},attachments:S.attachments.map((Q)=>({filename:Q.filename,bytes:Buffer.byteLength(Q.content)})),scheduledAt:S.scheduledAt??null,idempotencyKey:S.idempotencyKey??null,locale:q.locale??null,text:S.text??null};return await Bun.write(`${J}.json`,`${JSON.stringify(K,null,2)}
4
4
  `),await Bun.write(`${J}.html`,S.html),`${J}.html`}import{jsx as SS}from"react/jsx-runtime";class KS{from="";to=[];subject="No Subject";cc=[];bcc=[];attachments=[];template;headers={};static async send($){let S=new this,q=P($S).defaultLocale,J=P(JS),{to:K=S.to,from:Q=S.from,subject:Z=typeof S.subject==="string"?S.subject:S.subject[$.locale||q],cc:V=S.cc,bcc:Y=S.bcc,attachments:G=S.attachments,data:z,headers:QS={}}=$,VS={...J.headers??{},...S.headers??{},...QS??{}},y=process.env.EMAIL_DEBUG==="true",E=y?"debug":J.driver?.provider??"custom",w=await J.filterRecipients(K);if(!w.length)return{id:null,provider:E,status:"skipped"};let[YS,ZS]=await Promise.all([S.render({...z,locale:$.locale}),S.renderText({...z,locale:$.locale})]),f={bcc:Y,cc:V,from:Q,subject:Z,to:w,attachments:G,html:YS,headers:VS,text:ZS,scheduledAt:$.scheduledAt,idempotencyKey:$.idempotencyKey};if(y){let GS=await e(`${process.env.ROOT_DIR}/.debug/emails`,f,{locale:$.locale});if(process.env.CI!=="true")await a(GS);return{id:`debug_${crypto.randomUUID()}`,provider:E,status:"debug"}}let M=await qS(J,f);return M.ok?{id:M.id,provider:E,status:"sent"}:{id:M.id,provider:E,status:"failed",error:M.error}}static async preview($){return await new this().render({...$.data,locale:$.locale})}async render($){let S=this.template;return await s(SS(S,{...$}))}async renderText($){let S=this.template;return await s(SS(S,{...$}),{plainText:!0})}}export{KS as Email};
5
5
 
@@ -1,8 +1,18 @@
1
- import type { OpenGraphParams } from "../http/Metadata";
1
+ import type { AlternateLink, HtmlAttributes, OpenGraphParams } from "../http/Metadata";
2
2
  export declare class Meta {
3
3
  protected name: string;
4
4
  static description(description: string): void;
5
5
  static title(title: string): void;
6
6
  static openGraph(params: OpenGraphParams): void;
7
+ /**
8
+ * Attributes for this response's `<html>` element (`lang`, `dir`), e.g. a
9
+ * page whose language is its content's rather than the visitor's. The
10
+ * layout receives them as `htmlAttributes`; spread it onto `<html>`.
11
+ */
12
+ static htmlAttributes(attributes: HtmlAttributes): void;
13
+ /** `<link rel="canonical">`, rendered by `<Head />`. */
14
+ static canonical(url: string): void;
15
+ /** `<link rel="alternate" hreflang>` for each language this page exists in, rendered by `<Head />`. */
16
+ static alternates(links: AlternateLink[]): void;
7
17
  }
8
18
  //# sourceMappingURL=Meta.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Meta.d.ts","sourceRoot":"","sources":["../../facades/Meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGxD,qBAAa,IAAI;IACf,SAAS,CAAC,IAAI,SAAU;IACxB,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM;IAGtC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM;IAG1B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,eAAe;CAGzC"}
1
+ {"version":3,"file":"Meta.d.ts","sourceRoot":"","sources":["../../facades/Meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGvF,qBAAa,IAAI;IACf,SAAS,CAAC,IAAI,SAAU;IACxB,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM;IAGtC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM;IAG1B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,eAAe;IAGxC;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc;IAGhD,wDAAwD;IACxD,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM;IAG5B,uGAAuG;IACvG,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE;CAGzC"}
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{$d as q,Ad as l,Bd as m,Ld as n,Vc as a,Zd as o,_d as p,td as c,ud as d,vd as f,wd as g,xd as i,yd as j,zd as k}from"../chunk-d6591xck.js";import"../chunk-whtzggn6.js";import"../chunk-hytt9qyj.js";import{Hg as e,Jg as h,yg as b}from"../chunk-dexdkh3z.js";import"../chunk-15c2vgaf.js";import"../chunk-9b4erdy2.js";import"../chunk-tn2bryy2.js";import"../chunk-cbqazg9k.js";import"../chunk-1myhm0g3.js";import"../chunk-kejwjerj.js";import"../chunk-aazmrxj9.js";import"../chunk-7g9yh5ae.js";import"../chunk-t4yh4nf9.js";import"../chunk-1vzks22y.js";import"../chunk-zyt2w03d.js";import"../chunk-1hr4xht1.js";import"../chunk-d9mar37g.js";import"../chunk-vw8849ys.js";export{g as Url,e as Storage,k as Redis,a as Redirect,l as RateLimiter,f as Query,i as Meta,h as Log,m as Lock,d as Lang,o as Features,b as Facade,q as DB,j as Cookie,p as ConnectionQueries,n as ChangeFeed,c as Auth};
2
+ import{$d as q,Ad as l,Bd as m,Ld as n,Vc as a,Zd as o,_d as p,td as c,ud as d,vd as f,wd as g,xd as i,yd as j,zd as k}from"../chunk-ms9k0rx6.js";import"../chunk-whtzggn6.js";import"../chunk-hytt9qyj.js";import{Hg as e,Jg as h,yg as b}from"../chunk-pn8v6fj2.js";import"../chunk-15c2vgaf.js";import"../chunk-49nyyjfe.js";import"../chunk-tn2bryy2.js";import"../chunk-cbqazg9k.js";import"../chunk-1myhm0g3.js";import"../chunk-kejwjerj.js";import"../chunk-aazmrxj9.js";import"../chunk-jmg2zsaf.js";import"../chunk-t4yh4nf9.js";import"../chunk-1vzks22y.js";import"../chunk-zyt2w03d.js";import"../chunk-1hr4xht1.js";import"../chunk-d9mar37g.js";import"../chunk-vw8849ys.js";export{g as Url,e as Storage,k as Redis,a as Redirect,l as RateLimiter,f as Query,i as Meta,h as Log,m as Lock,d as Lang,o as Features,b as Facade,q as DB,j as Cookie,p as ConnectionQueries,n as ChangeFeed,c as Auth};
3
3
 
4
4
  //# debugId=B53505FDA1BB538064756E2164756E21
@@ -86,6 +86,9 @@ export declare class HttpRequest<T extends Body = Record<string, never>, Params
86
86
  title: any;
87
87
  description: any;
88
88
  openGraph: any;
89
+ htmlAttributes: any;
90
+ canonical: any;
91
+ alternates: any;
89
92
  };
90
93
  setCSRFHmac(hmac: string): void;
91
94
  setCookie(name: string, value: string, options?: import("./requestContext").CreateCookieOptions): void;
@@ -1 +1 @@
1
- {"version":3,"file":"HttpRequest.d.ts","sourceRoot":"","sources":["../../http/HttpRequest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpRequest.d.ts","sourceRoot":"","sources":["../../http/HttpRequest.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,22 @@ export type OpenGraphParams = {
12
12
  twitterImageWidth?: number;
13
13
  twitterImageHeight?: number;
14
14
  };
15
+ /**
16
+ * Attributes for the document's `<html>` element, handed to the root (or a
17
+ * static view's) layout as its `htmlAttributes` prop.
18
+ */
19
+ export type HtmlAttributes = {
20
+ /** The document's language, e.g. `"tr"`. Defaults to the request's locale. */
21
+ lang?: string;
22
+ /** Text direction. Defaults to the one `lang` is written in. */
23
+ dir?: "ltr" | "rtl" | "auto";
24
+ };
25
+ /** One `<link rel="alternate" hreflang>`: the same page in another language. */
26
+ export type AlternateLink = {
27
+ /** A BCP 47 tag, or `"x-default"` for the page to use when none matches. */
28
+ hrefLang: string;
29
+ href: string;
30
+ };
15
31
  export declare class Metadata {
16
32
  content: any;
17
33
  /**
@@ -24,7 +40,14 @@ export declare class Metadata {
24
40
  title: any;
25
41
  description: any;
26
42
  openGraph: any;
43
+ htmlAttributes: any;
44
+ canonical: any;
45
+ alternates: any;
27
46
  };
47
+ /** Merged into what earlier calls set; `undefined` leaves an attribute alone. */
48
+ htmlAttributes(attributes: HtmlAttributes): void;
49
+ canonical(url: string): void;
50
+ alternates(links: AlternateLink[]): void;
28
51
  title(title: string): void;
29
52
  description(description: string): void;
30
53
  openGraph({ title, description, type, url, image, imageAlt, imageWidth, imageHeight, twitterImage, twitterImageAlt, twitterImageWidth, twitterImageHeight, }: OpenGraphParams): void;
@@ -1 +1 @@
1
- {"version":3,"file":"Metadata.d.ts","sourceRoot":"","sources":["../../http/Metadata.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AACF,qBAAa,QAAQ;IACnB,OAAO,EAAE,GAAG,CAIV;IAEF;;;;OAIG;IACH,OAAO,UAAS;IAEhB,MAAM;;;;;IAQN,KAAK,CAAC,KAAK,EAAE,MAAM;IAKnB,WAAW,CAAC,WAAW,EAAE,MAAM;IAK/B,SAAS,CAAC,EACR,KAAK,EACL,WAAW,EACX,IAAI,EACJ,GAAG,EACH,KAAK,EACL,QAAQ,EACR,UAAU,EACV,WAAW,EACX,YAAoB,EACpB,eAA0B,EAC1B,iBAA8B,EAC9B,kBAAgC,GACjC,EAAE,eAAe;CAyBnB"}
1
+ {"version":3,"file":"Metadata.d.ts","sourceRoot":"","sources":["../../http/Metadata.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AACF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,8EAA8E;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;CAC9B,CAAC;AAEF,gFAAgF;AAChF,MAAM,MAAM,aAAa,GAAG;IAC1B,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,qBAAa,QAAQ;IACnB,OAAO,EAAE,GAAG,CAOV;IAEF;;;;OAIG;IACH,OAAO,UAAS;IAEhB,MAAM;;;;;;;;IAWN,iFAAiF;IACjF,cAAc,CAAC,UAAU,EAAE,cAAc;IAQzC,SAAS,CAAC,GAAG,EAAE,MAAM;IAKrB,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE;IAKjC,KAAK,CAAC,KAAK,EAAE,MAAM;IAKnB,WAAW,CAAC,WAAW,EAAE,MAAM;IAK/B,SAAS,CAAC,EACR,KAAK,EACL,WAAW,EACX,IAAI,EACJ,GAAG,EACH,KAAK,EACL,QAAQ,EACR,UAAU,EACV,WAAW,EACX,YAAoB,EACpB,eAA0B,EAC1B,iBAA8B,EAC9B,kBAAgC,GACjC,EAAE,eAAe;CAyBnB"}
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{$c as H,Be as N,Ce as O,De as P,Ee as Q,Fe as R,Ge as S,He as T,Ie as U,Je as V,Ke as W,Le as X,Mc as n,Me as Y,Nc as o,Ne as Z,Oc as p,Oe as _,Pc as q,Pe as $,Qc as r,Qe as aa,Rc as y,Re as ba,Sc as z,Se as ca,Tc as A,Te as da,Uc as B,Ue as ea,Ve as fa,Wc as C,Xc as D,Yc as E,Zc as F,_c as G,ad as I,fd as J,gd as K,hd as L,he as M}from"../chunk-d6591xck.js";import"../chunk-whtzggn6.js";import"../chunk-hytt9qyj.js";import{Xf as a,Yf as b,Zf as d,cg as e,dg as f,eg as g,fg as h,gg as i,hg as j,mg as k,ng as l,rg as m,sg as s,tg as t,ug as u,vg as v,wg as w,xg as x}from"../chunk-dexdkh3z.js";import{Rg as c}from"../chunk-15c2vgaf.js";import"../chunk-9b4erdy2.js";import"../chunk-tn2bryy2.js";import"../chunk-cbqazg9k.js";import"../chunk-1myhm0g3.js";import"../chunk-kejwjerj.js";import"../chunk-aazmrxj9.js";import"../chunk-7g9yh5ae.js";import"../chunk-t4yh4nf9.js";import"../chunk-1vzks22y.js";import"../chunk-zyt2w03d.js";import"../chunk-1hr4xht1.js";import"../chunk-d9mar37g.js";import"../chunk-vw8849ys.js";export{g as toRangeHeaderValue,n as toMiddlewareList,fa as safeFetch,f as resolveRange,e as parseRangeHeader,h as parseContentRange,r as parseByteSize,I as middlewareConfigDefaults,D as httpError,d as getCookies,j as formatUnsatisfiedContentRange,i as formatContentRange,U as defineResourcePolicy,H as defineMiddlewareConfig,o as createUnsatisfiableResponse,p as createStreamResponse,E as createFileResponse,L as clientIp,V as classifyAddress,F as ViewRouter,k as ValidationError,ca as TooManyRedirectsError,aa as TooLargeError,$ as TimeoutError,ea as SafeResponse,W as SafeFetchError,T as ResourcePolicy,b as ResourceController,c as RequestBreakerError,K as RateLimitMiddleware,J as RateLimitExceededError,u as RangeNotSatisfiableError,R as PoliciesServiceProvider,S as Policies,q as PayloadTooLargeError,v as NotFoundError,da as NetworkError,G as Middleware,B as McpRouter,A as McpRouteDeclaration,z as McpModelParam,l as InvalidValidationRuleError,X as InvalidUrlError,t as InsufficientPermissionsError,C as HttpResponse,m as HttpRequest,w as FileNotFoundError,_ as DnsError,P as CorsMiddleware,a as Controller,ba as ContentTypeError,O as CacheMiddleware,Q as CSRFMiddleware,M as BodyLimitMiddleware,Y as BlockedHostError,Z as BlockedAddressError,s as AuthorizationError,N as AuthenticationMiddleware,x as AuthenticationError,y as ApiRouter};
2
+ import{$c as H,Be as N,Ce as O,De as P,Ee as Q,Fe as R,Ge as S,He as T,Ie as U,Je as V,Ke as W,Le as X,Mc as n,Me as Y,Nc as o,Ne as Z,Oc as p,Oe as _,Pc as q,Pe as $,Qc as r,Qe as aa,Rc as y,Re as ba,Sc as z,Se as ca,Tc as A,Te as da,Uc as B,Ue as ea,Ve as fa,Wc as C,Xc as D,Yc as E,Zc as F,_c as G,ad as I,fd as J,gd as K,hd as L,he as M}from"../chunk-ms9k0rx6.js";import"../chunk-whtzggn6.js";import"../chunk-hytt9qyj.js";import{Xf as a,Yf as b,Zf as d,cg as e,dg as f,eg as g,fg as h,gg as i,hg as j,mg as k,ng as l,rg as m,sg as s,tg as t,ug as u,vg as v,wg as w,xg as x}from"../chunk-pn8v6fj2.js";import{Rg as c}from"../chunk-15c2vgaf.js";import"../chunk-49nyyjfe.js";import"../chunk-tn2bryy2.js";import"../chunk-cbqazg9k.js";import"../chunk-1myhm0g3.js";import"../chunk-kejwjerj.js";import"../chunk-aazmrxj9.js";import"../chunk-jmg2zsaf.js";import"../chunk-t4yh4nf9.js";import"../chunk-1vzks22y.js";import"../chunk-zyt2w03d.js";import"../chunk-1hr4xht1.js";import"../chunk-d9mar37g.js";import"../chunk-vw8849ys.js";export{g as toRangeHeaderValue,n as toMiddlewareList,fa as safeFetch,f as resolveRange,e as parseRangeHeader,h as parseContentRange,r as parseByteSize,I as middlewareConfigDefaults,D as httpError,d as getCookies,j as formatUnsatisfiedContentRange,i as formatContentRange,U as defineResourcePolicy,H as defineMiddlewareConfig,o as createUnsatisfiableResponse,p as createStreamResponse,E as createFileResponse,L as clientIp,V as classifyAddress,F as ViewRouter,k as ValidationError,ca as TooManyRedirectsError,aa as TooLargeError,$ as TimeoutError,ea as SafeResponse,W as SafeFetchError,T as ResourcePolicy,b as ResourceController,c as RequestBreakerError,K as RateLimitMiddleware,J as RateLimitExceededError,u as RangeNotSatisfiableError,R as PoliciesServiceProvider,S as Policies,q as PayloadTooLargeError,v as NotFoundError,da as NetworkError,G as Middleware,B as McpRouter,A as McpRouteDeclaration,z as McpModelParam,l as InvalidValidationRuleError,X as InvalidUrlError,t as InsufficientPermissionsError,C as HttpResponse,m as HttpRequest,w as FileNotFoundError,_ as DnsError,P as CorsMiddleware,a as Controller,ba as ContentTypeError,O as CacheMiddleware,Q as CSRFMiddleware,M as BodyLimitMiddleware,Y as BlockedHostError,Z as BlockedAddressError,s as AuthorizationError,N as AuthenticationMiddleware,x as AuthenticationError,y as ApiRouter};
3
3
 
4
4
  //# debugId=B99279976969749164756E2164756E21
@@ -103,6 +103,9 @@ declare class Store {
103
103
  title: any;
104
104
  description: any;
105
105
  openGraph: any;
106
+ htmlAttributes: any;
107
+ canonical: any;
108
+ alternates: any;
106
109
  };
107
110
  setCSRFHmac(hmac: string): void;
108
111
  setCookie(name: string, value: string, options?: CreateCookieOptions): void;
@@ -1 +1 @@
1
- {"version":3,"file":"requestContext.d.ts","sourceRoot":"","sources":["../../http/requestContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"requestContext.d.ts","sourceRoot":"","sources":["../../http/requestContext.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export { defineTranslationConfig, translationConfigDefaults, type TranslationCon
4
4
  export { Dictionary } from "./Dictionary";
5
5
  export { defineDictionary, type DictionaryHandle, } from "./defineDictionary";
6
6
  export { translate } from "./translate";
7
+ export { resolveLocale } from "./resolveLocale";
7
8
  export type { DictionaryTranslations, LocaleStrings } from "./dictionaryShape";
8
9
  export { createFormatter, isValidTimeZone, DEFAULT_TIME_ZONE, type Formatter, type FormatterInit, type DateInput, } from "./formatter";
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,KAAK,iBAAiB,GACvB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK1C,OAAO,EACL,gBAAgB,EAChB,KAAK,gBAAgB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EACL,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,SAAS,GACf,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,KAAK,iBAAiB,GACvB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK1C,OAAO,EACL,gBAAgB,EAChB,KAAK,gBAAgB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EACL,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,SAAS,GACf,MAAM,aAAa,CAAC"}
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{ba as w}from"../chunk-785b41h1.js";import"../chunk-yer1r3t3.js";import{eb as b}from"../chunk-t24p7gc6.js";import{Jc as R,Kc as S}from"../chunk-mtbygktb.js";import"../chunk-n672d4g8.js";import{ud as j}from"../chunk-d6591xck.js";import"../chunk-whtzggn6.js";import"../chunk-hytt9qyj.js";import"../chunk-dexdkh3z.js";import"../chunk-15c2vgaf.js";import"../chunk-9b4erdy2.js";import"../chunk-tn2bryy2.js";import"../chunk-cbqazg9k.js";import"../chunk-1myhm0g3.js";import"../chunk-kejwjerj.js";import"../chunk-aazmrxj9.js";import{Wh as X,Xh as E,Yh as V,Zh as L}from"../chunk-7g9yh5ae.js";import"../chunk-t4yh4nf9.js";import"../chunk-1vzks22y.js";import"../chunk-zyt2w03d.js";import"../chunk-1hr4xht1.js";import"../chunk-d9mar37g.js";import"../chunk-vw8849ys.js";import{createElement as J,Fragment as M,isValidElement as U}from"react";function $(q,B){let G=Object.values(B).some((z)=>typeof z==="function"&&U(z(""))),Q=/{{([^{}]+?)(?::([^{}\[\]]+?))?(?:\[(.*?)\])?}}/g;if(!G)return q.replace(Q,(W,O,_,Z)=>{let C=O.includes(":")?O.split(":")[0]:O,H=B[C];if(H===void 0)return W;if(typeof H==="function"){let K=H(Z!==void 0?Z:"");if(U(K))throw Error("JSX returned in string context");return String(K)}if(_)switch(_.toLowerCase()){case"number":return Number(H).toString();case"string":return String(H);case"boolean":return Boolean(H).toString();default:return String(H)}return String(H)});else{let z=[],W=0,O=null;while((O=Q.exec(q))!==null){let[_,Z,C,H]=O,F=O.index,K=Z.includes(":")?Z.split(":")[0]:Z;if(F>W)z.push(q.substring(W,F));let Y=B[K];if(Y===void 0)z.push(_);else if(typeof Y==="function"){let A=Y(H!==void 0?H:"");z.push(A)}else if(C)switch(C.toLowerCase()){case"number":z.push(Number(Y).toString());break;case"string":z.push(String(Y));break;case"boolean":z.push(Boolean(Y).toString());break;default:z.push(String(Y))}else z.push(String(Y));W=F+_.length}if(W<q.length)z.push(q.substring(W));return J(M,{},...z)}}class P{name;dictionary;constructor(q,B){this.name=q;this.dictionary=B}reference(q){if(typeof window<"u")throw Error("Cannot use reference in the browser");if(!this.dictionary?.[q])throw Error(`Translation not found for ${String(q)}`);return this.dictionary[q]}render(q,...B){let{locale:G=j.locale(),params:Q}={params:{},...B[0]};if(typeof window<"u")throw Error("Cannot use render in the browser");if(!this.dictionary?.[q]?.[G])throw Error(`Translation not found for ${String(q)} in ${String(G)}`);return $(this.dictionary[q][G],Q??{})}static create(q,B){return new P(q,B)}static text(q,...B){let{locale:G=j.locale(),params:Q}={params:{},...B?.[0]};if(!q?.[G])throw Error(`Translation not found for ${String(G)}`);return $(q[G],Q??{})}}async function N(q,B,...G){let{locale:Q=j.locale(),params:z}={params:{},...G[0]},O=(await q.load(String(Q)))[B];if(typeof O!=="string")throw Error(`Translation not found for "${B}" in "${String(Q)}" (dictionary ${q.id})`);return $(O,z??{})}export{S as translationConfigDefaults,N as translate,E as isValidTimeZone,R as defineTranslationConfig,w as defineDictionary,V as createFormatter,L as Translator,b as TranslationServiceProvider,P as Dictionary,X as DEFAULT_TIME_ZONE};
2
+ import{ba as D}from"../chunk-785b41h1.js";import"../chunk-yer1r3t3.js";import{eb as w}from"../chunk-1q9kd20m.js";import{Jc as S,Kc as b}from"../chunk-v1tfdgy1.js";import"../chunk-n672d4g8.js";import{ud as j}from"../chunk-ms9k0rx6.js";import"../chunk-whtzggn6.js";import"../chunk-hytt9qyj.js";import"../chunk-pn8v6fj2.js";import"../chunk-15c2vgaf.js";import"../chunk-49nyyjfe.js";import"../chunk-tn2bryy2.js";import"../chunk-cbqazg9k.js";import"../chunk-1myhm0g3.js";import"../chunk-kejwjerj.js";import"../chunk-aazmrxj9.js";import{Vh as X,Wh as A,Xh as E,Yh as L,Zh as R}from"../chunk-jmg2zsaf.js";import"../chunk-t4yh4nf9.js";import"../chunk-1vzks22y.js";import"../chunk-zyt2w03d.js";import"../chunk-1hr4xht1.js";import"../chunk-d9mar37g.js";import"../chunk-vw8849ys.js";import{createElement as M,Fragment as N,isValidElement as U}from"react";function $(q,B){let G=Object.values(B).some((z)=>typeof z==="function"&&U(z(""))),Q=/{{([^{}]+?)(?::([^{}\[\]]+?))?(?:\[(.*?)\])?}}/g;if(!G)return q.replace(Q,(W,O,_,Z)=>{let C=O.includes(":")?O.split(":")[0]:O,H=B[C];if(H===void 0)return W;if(typeof H==="function"){let K=H(Z!==void 0?Z:"");if(U(K))throw Error("JSX returned in string context");return String(K)}if(_)switch(_.toLowerCase()){case"number":return Number(H).toString();case"string":return String(H);case"boolean":return Boolean(H).toString();default:return String(H)}return String(H)});else{let z=[],W=0,O=null;while((O=Q.exec(q))!==null){let[_,Z,C,H]=O,F=O.index,K=Z.includes(":")?Z.split(":")[0]:Z;if(F>W)z.push(q.substring(W,F));let Y=B[K];if(Y===void 0)z.push(_);else if(typeof Y==="function"){let J=Y(H!==void 0?H:"");z.push(J)}else if(C)switch(C.toLowerCase()){case"number":z.push(Number(Y).toString());break;case"string":z.push(String(Y));break;case"boolean":z.push(Boolean(Y).toString());break;default:z.push(String(Y))}else z.push(String(Y));W=F+_.length}if(W<q.length)z.push(q.substring(W));return M(N,{},...z)}}class P{name;dictionary;constructor(q,B){this.name=q;this.dictionary=B}reference(q){if(typeof window<"u")throw Error("Cannot use reference in the browser");if(!this.dictionary?.[q])throw Error(`Translation not found for ${String(q)}`);return this.dictionary[q]}render(q,...B){let{locale:G=j.locale(),params:Q}={params:{},...B[0]};if(typeof window<"u")throw Error("Cannot use render in the browser");if(!this.dictionary?.[q]?.[G])throw Error(`Translation not found for ${String(q)} in ${String(G)}`);return $(this.dictionary[q][G],Q??{})}static create(q,B){return new P(q,B)}static text(q,...B){let{locale:G=j.locale(),params:Q}={params:{},...B?.[0]};if(!q?.[G])throw Error(`Translation not found for ${String(G)}`);return $(q[G],Q??{})}}async function V(q,B,...G){let{locale:Q=j.locale(),params:z}={params:{},...G[0]},O=(await q.load(String(Q)))[B];if(typeof O!=="string")throw Error(`Translation not found for "${B}" in "${String(Q)}" (dictionary ${q.id})`);return $(O,z??{})}export{b as translationConfigDefaults,V as translate,X as resolveLocale,E as isValidTimeZone,S as defineTranslationConfig,D as defineDictionary,L as createFormatter,R as Translator,w as TranslationServiceProvider,P as Dictionary,A as DEFAULT_TIME_ZONE};
3
3
 
4
- //# debugId=1034A775AACC311764756E2164756E21
4
+ //# debugId=E46CFD3CEED33FE064756E2164756E21
@@ -6,7 +6,7 @@
6
6
  "// The module, not the `../facades` barrel. A dictionary is the one server-side\n// artifact a *component* test has to import — `<Page dictionaries={[…]}>` takes\n// the app's real `app/i18n/index.ts` — and the barrel drags the whole facade\n// set in behind it, including `Redis` and its `import { RedisClient } from\n// \"bun\"`. Under a browser-targeted runner (vitest/jsdom) that specifier does\n// not resolve, so importing the app's dictionaries failed to collect before it\n// rendered anything. `Lang` itself only needs the translator and the request\n// context.\nimport { Lang } from \"../facades/Lang\";\nimport { parseTranslation } from \"../utils/parseTranslation\";\nimport type {\n ParseTranslationParams,\n ParseTranslationParamsServer,\n Prettify,\n} from \"../utils/type\";\n\ntype Translations = Record<string, Record<string, string>>;\n\nexport class Dictionary<T extends Translations> {\n constructor(\n public name: string,\n public dictionary: T,\n ) {}\n\n reference(key: keyof T) {\n if (typeof window !== \"undefined\") {\n throw new Error(\"Cannot use reference in the browser\");\n }\n if (!this.dictionary?.[key]) {\n throw new Error(`Translation not found for ${String(key)}`);\n }\n return this.dictionary[key];\n }\n\n render<\n K extends keyof T,\n U extends keyof T[K],\n R = Prettify<ParseTranslationParams<T[K][U]>>,\n >(\n key: K,\n ...args: R extends Record<string, never>\n ? [args?: { locale?: U | (string & {}) }]\n : [args: { locale?: U | (string & {}); params: R }]\n ) {\n const { locale = Lang.locale(), params } = {\n params: {},\n ...args[0],\n };\n\n if (typeof window !== \"undefined\") {\n throw new Error(\"Cannot use render in the browser\");\n }\n\n if (!this.dictionary?.[key]?.[locale]) {\n throw new Error(\n `Translation not found for ${String(key)} in ${String(locale)}`,\n );\n }\n return parseTranslation(this.dictionary[key][locale], params ?? {});\n }\n\n /**\n * @deprecated Use `defineDictionary` from `gemi/client`, declared next to the\n * component that reads it. A dictionary made here has to be re-exported from\n * `app/i18n/index.ts` and listed against a route in the `prefetch` config,\n * and every locale of it stays resident whether a page uses it or not. Still\n * supported; see `docs/i18n.md`.\n */\n static create<const T extends Translations>(name: string, translations: T) {\n return new Dictionary<T>(name, translations);\n }\n\n static text<const T extends Record<string, string>, U extends keyof T>(\n content: T,\n ...args: Prettify<ParseTranslationParamsServer<T[U]>> extends Record<\n string,\n never\n >\n ? [args?: { locale?: U | (string & {}) }]\n : [\n args: {\n locale?: U | (string & {});\n params: Prettify<ParseTranslationParamsServer<T[U]>>;\n },\n ]\n ): string {\n const { locale = Lang.locale(), params } = { params: {}, ...args?.[0] };\n\n if (!content?.[locale]) {\n throw new Error(`Translation not found for ${String(locale)}`);\n }\n\n return parseTranslation(content[locale], params ?? {});\n }\n}\n",
7
7
  "import { Lang } from \"../facades\";\nimport { parseTranslation } from \"../utils/parseTranslation\";\nimport type { ParseTranslationParamsServer, Prettify } from \"../utils/type\";\nimport type { DictionaryHandle } from \"./defineDictionary\";\nimport type { DictionaryTranslations } from \"./dictionaryShape\";\n\n/**\n * Read one string from a `defineDictionary` dictionary outside React — a\n * controller, a job, an email template.\n *\n * Async because a bundled dictionary loads its locale on demand. Server code\n * does not go through the bundler, so in practice this resolves without ever\n * yielding; the `await` is what makes the same call work either way.\n *\n * Kept out of `defineDictionary.ts` on purpose: that module is imported by\n * components and has to stay free of the server facades this one needs.\n */\nexport async function translate<\n T extends DictionaryTranslations,\n K extends keyof T & string,\n U extends keyof T[K],\n R = Prettify<ParseTranslationParamsServer<T[K][U] & string>>,\n>(\n dictionary: DictionaryHandle<T>,\n key: K,\n ...args: R extends Record<string, never>\n ? [args?: { locale?: U | (string & {}) }]\n : [args: { locale?: U | (string & {}); params: R }]\n): Promise<string> {\n const { locale = Lang.locale(), params } = { params: {}, ...args[0] };\n const strings = await dictionary.load(String(locale));\n const template = strings[key];\n\n if (typeof template !== \"string\") {\n throw new Error(\n `Translation not found for \"${key}\" in \"${String(locale)}\" (dictionary ${dictionary.id})`,\n );\n }\n\n return parseTranslation(template, (params ?? {}) as any) as string;\n}\n"
8
8
  ],
9
- "mappings": "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",
10
- "debugId": "1034A775AACC311764756E2164756E21",
9
+ "mappings": "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",
10
+ "debugId": "E46CFD3CEED33FE064756E2164756E21",
11
11
  "names": []
12
12
  }
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{Ia as g}from"../chunk-wyw6p3fg.js";import{db as e}from"../chunk-0av6xvm6.js";import{eb as w}from"../chunk-t24p7gc6.js";import{Ab as S,Bb as h,Db as R,Eb as u,Fb as l,Gb as v,Jb as d,Kb as c,Nb as p,Qb as n,Rb as a,qb as r,rb as T,sb as D,tb as zj,ub as A,vb as y,wb as P}from"../chunk-t4t3hqe0.js";import"../chunk-0z8ejxre.js";import"../chunk-ktr3k768.js";import"../chunk-2z1981d0.js";import{Ec as jj}from"../chunk-7vb4eey2.js";import"../chunk-mtbygktb.js";import"../chunk-n672d4g8.js";import{ie as x,md as Gj,nd as Nj,ne as I,oe as E,qd as Oj,rd as Hj,se as K,te as q,ue as t,ve as m,we as C,xe as Q,ye as o,ze as i}from"../chunk-d6591xck.js";import{Ze as s}from"../chunk-whtzggn6.js";import{kf as V,pf as f}from"../chunk-hytt9qyj.js";import{rg as b}from"../chunk-dexdkh3z.js";import{Qg as B}from"../chunk-15c2vgaf.js";import{Wg as L}from"../chunk-9b4erdy2.js";import"../chunk-tn2bryy2.js";import"../chunk-cbqazg9k.js";import"../chunk-1myhm0g3.js";import"../chunk-kejwjerj.js";import"../chunk-aazmrxj9.js";import"../chunk-qsrcdzan.js";import"../chunk-7g9yh5ae.js";import{_h as _,ai as O,bi as F}from"../chunk-t4yh4nf9.js";import"../chunk-1vzks22y.js";import"../chunk-zyt2w03d.js";import"../chunk-1hr4xht1.js";import{oi as M}from"../chunk-d9mar37g.js";import"../chunk-vw8849ys.js";function Xj(j){let X=j.headers.get("Cache-Control")?.toLowerCase()??"";return/(^|[\s,])(public|s-maxage)\b/.test(X)}var Yj=new Set,Zj={refusal:null,apply:(j)=>j,carried:null};async function k(j){let X=F(x);if(X.config.global.length===0)return Zj;let{pathname:Z}=new URL(j.url),W=M(Z),z=new b(j,{},W?"api":"view","");return await L.run(z,async()=>{let $=L.getStore(),{headers:N,cookies:Wj}=$,Y=(J)=>{if(!Xj(J))return Q(J,N,Wj);let G=new Headers(N);return G.delete("Set-Cookie"),Q(J,G,Yj)};try{return await X.runGlobalMiddleware(),{refusal:null,apply:Y,carried:{user:$.user}}}catch(J){let G=!W&&Z.endsWith(".json");if(J?.kind===B){let H=W?C(J.payload.api):G?q(J.payload.viewData??J.payload.api):K(J.payload.view);return{refusal:Y(H),apply:Y,carried:null}}if(V(J)&&(W||G))return{refusal:Y(m()),apply:Y,carried:null};if(f(J)){console.error(J);let H=W||G?I():K(E());return{refusal:Y(H),apply:Y,carried:null}}throw J}finally{$.destroy()}})}var U=[v,c,g,S,a,y,h,d,u,D,R,n,l,w,p,P,A];class Jj{config={};providers=[];services=[];serviceInstances=[];serviceTokens=new Set;servicesBooted=!1;models=[];app=new O;boot(){if(this.models.length>0)e(...this.models);else $j();this.app.config.merge(this.config),O.setInstance(this.app),this.app.registerMany([...U,...this.providers]),this.registerServices()}registerServices(){let j=this.serviceTokens;this.serviceInstances=[],this.serviceTokens=new Set,this.servicesBooted=!1;let X=new Map;for(let Z of this.services){let W=typeof Z==="function"?new Z:Z,z=W.constructor;if(!z.token)throw Error(`Service [${z.name}] is listed in \`services\` but does not declare a \`static token\`.`);let $=X.get(z.token);if($)throw Error(`Services [${$}] and [${z.name}] both declare the token "${z.token}". Tokens are the container's keys, so they must be unique.`);X.set(z.token,z.name);let N=z;if(!j.has(z.token)&&this.app.bound(N))throw Error(`Service [${z.name}] declares the token "${z.token}", which is already bound in the container by the framework or a provider. Binding it would replace that service everywhere, so pick a token nothing else owns.`);this.app.instance(N,W),this.serviceInstances.push(W),this.serviceTokens.add(z.token)}}async waitForBoot(){await this.app.boot(),await this.bootServices(),zj(this.app)}async bootServices(){if(this.servicesBooted)return;for(let j of this.serviceInstances)await j.boot();this.servicesBooted=!0}shutdown(j){return this.run(()=>this.app.shutdown(j))}run(j){return _.run(this.app,j)}resolve(j){return this.app.make(j)}apiRoutes(){return this.app.make(o)}viewRoutes(){return this.app.make(t)}domains(){return this.app.make(i)}queue(){return this.app.make(jj)}mcpHttp(){return this.app.config.get("route.mcp.remote.enabled")===!0?this.app.make(r):null}globalMiddleware(j){return k(j)}destroy(){if(this.app.resolved(T))this.app.make(T).stop();if(this.app.flush(),O.getInstance()===this.app)O.setInstance(void 0);_.disable()}}function $j(){if(Bun.env.NODE_ENV==="production")return;let j=s();if(j.length===0)return;console.warn(`[gemi] ${j.length} model${j.length===1?" is":"s are"} registered, but Kernel.models is empty.
2
+ import{Ia as g}from"../chunk-wyw6p3fg.js";import{db as e}from"../chunk-6cx8ncd4.js";import{eb as w}from"../chunk-1q9kd20m.js";import{Ab as S,Bb as h,Db as R,Eb as u,Fb as l,Gb as v,Jb as d,Kb as c,Nb as p,Qb as n,Rb as a,qb as r,rb as T,sb as D,tb as zj,ub as A,vb as y,wb as P}from"../chunk-yf1njzd5.js";import"../chunk-4088szy9.js";import"../chunk-ktr3k768.js";import"../chunk-2z1981d0.js";import{Ec as jj}from"../chunk-7vb4eey2.js";import"../chunk-v1tfdgy1.js";import"../chunk-n672d4g8.js";import{ie as x,md as Gj,nd as Nj,ne as I,oe as E,qd as Oj,rd as Hj,se as K,te as q,ue as t,ve as m,we as C,xe as Q,ye as o,ze as i}from"../chunk-ms9k0rx6.js";import{Ze as s}from"../chunk-whtzggn6.js";import{kf as V,pf as f}from"../chunk-hytt9qyj.js";import{rg as b}from"../chunk-pn8v6fj2.js";import{Qg as B}from"../chunk-15c2vgaf.js";import{Wg as L}from"../chunk-49nyyjfe.js";import"../chunk-tn2bryy2.js";import"../chunk-cbqazg9k.js";import"../chunk-1myhm0g3.js";import"../chunk-kejwjerj.js";import"../chunk-aazmrxj9.js";import"../chunk-qsrcdzan.js";import"../chunk-jmg2zsaf.js";import{_h as _,ai as O,bi as F}from"../chunk-t4yh4nf9.js";import"../chunk-1vzks22y.js";import"../chunk-zyt2w03d.js";import"../chunk-1hr4xht1.js";import{oi as M}from"../chunk-d9mar37g.js";import"../chunk-vw8849ys.js";function Xj(j){let X=j.headers.get("Cache-Control")?.toLowerCase()??"";return/(^|[\s,])(public|s-maxage)\b/.test(X)}var Yj=new Set,Zj={refusal:null,apply:(j)=>j,carried:null};async function k(j){let X=F(x);if(X.config.global.length===0)return Zj;let{pathname:Z}=new URL(j.url),W=M(Z),z=new b(j,{},W?"api":"view","");return await L.run(z,async()=>{let $=L.getStore(),{headers:N,cookies:Wj}=$,Y=(J)=>{if(!Xj(J))return Q(J,N,Wj);let G=new Headers(N);return G.delete("Set-Cookie"),Q(J,G,Yj)};try{return await X.runGlobalMiddleware(),{refusal:null,apply:Y,carried:{user:$.user}}}catch(J){let G=!W&&Z.endsWith(".json");if(J?.kind===B){let H=W?C(J.payload.api):G?q(J.payload.viewData??J.payload.api):K(J.payload.view);return{refusal:Y(H),apply:Y,carried:null}}if(V(J)&&(W||G))return{refusal:Y(m()),apply:Y,carried:null};if(f(J)){console.error(J);let H=W||G?I():K(E());return{refusal:Y(H),apply:Y,carried:null}}throw J}finally{$.destroy()}})}var U=[v,c,g,S,a,y,h,d,u,D,R,n,l,w,p,P,A];class Jj{config={};providers=[];services=[];serviceInstances=[];serviceTokens=new Set;servicesBooted=!1;models=[];app=new O;boot(){if(this.models.length>0)e(...this.models);else $j();this.app.config.merge(this.config),O.setInstance(this.app),this.app.registerMany([...U,...this.providers]),this.registerServices()}registerServices(){let j=this.serviceTokens;this.serviceInstances=[],this.serviceTokens=new Set,this.servicesBooted=!1;let X=new Map;for(let Z of this.services){let W=typeof Z==="function"?new Z:Z,z=W.constructor;if(!z.token)throw Error(`Service [${z.name}] is listed in \`services\` but does not declare a \`static token\`.`);let $=X.get(z.token);if($)throw Error(`Services [${$}] and [${z.name}] both declare the token "${z.token}". Tokens are the container's keys, so they must be unique.`);X.set(z.token,z.name);let N=z;if(!j.has(z.token)&&this.app.bound(N))throw Error(`Service [${z.name}] declares the token "${z.token}", which is already bound in the container by the framework or a provider. Binding it would replace that service everywhere, so pick a token nothing else owns.`);this.app.instance(N,W),this.serviceInstances.push(W),this.serviceTokens.add(z.token)}}async waitForBoot(){await this.app.boot(),await this.bootServices(),zj(this.app)}async bootServices(){if(this.servicesBooted)return;for(let j of this.serviceInstances)await j.boot();this.servicesBooted=!0}shutdown(j){return this.run(()=>this.app.shutdown(j))}run(j){return _.run(this.app,j)}resolve(j){return this.app.make(j)}apiRoutes(){return this.app.make(o)}viewRoutes(){return this.app.make(t)}domains(){return this.app.make(i)}queue(){return this.app.make(jj)}mcpHttp(){return this.app.config.get("route.mcp.remote.enabled")===!0?this.app.make(r):null}globalMiddleware(j){return k(j)}destroy(){if(this.app.resolved(T))this.app.make(T).stop();if(this.app.flush(),O.getInstance()===this.app)O.setInstance(void 0);_.disable()}}function $j(){if(Bun.env.NODE_ENV==="production")return;let j=s();if(j.length===0)return;console.warn(`[gemi] ${j.length} model${j.length===1?" is":"s are"} registered, but Kernel.models is empty.
3
3
  Nested relation reads resolve a model by name, so a policy on a subclass that does not own its
4
4
  `+" name is skipped inside every include \u2014 scoped at the root, "+`unscoped in an include, with nothing
5
5
  to notice it. Declaring the modules registers each class under its own name and audits the set:
package/dist/orm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{$a as E4,Ja as n5,Ka as l5,La as i,Ma as L9,Na as U3,Oa as p8,Pa as d8,Qa as F0,Ra as m5,Sa as N3,Ta as c8,Ua as o0,Va as Q0,Wa as S4,Xa as A4,Ya as b4,Za as E5,_a as q4,ab as w4,bb as s8,cb as i8,db as n8}from"../chunk-0av6xvm6.js";import{$e as g8,We as R8,Xe as D0,Ye as G0,Ze as G9,_e as h3,af as y8,bf as h8,cf as u8,df as m8}from"../chunk-whtzggn6.js";import{Af as T8,Bf as x0,Cf as k5,Df as I0,Ef as n,Ff as P,Gf as s,Jf as T,Kf as E,Lf as m,Mf as b8,Nf as q8,Of as E8,Pf as w8,Qf as v3,Rf as f,Sf as x8,Tf as v8,Uf as k8,Vf as f8,Wf as u5,ef as _,ff as I,gf as E0,hf as k,if as j8,jf as r,kf as P8,lf as w5,mf as _8,nf as D5,of as K8,qf as Q8,rf as x5,sf as C8,tf as L8,uf as v5,vf as P3,wf as w0,xf as g3,yf as y3,zf as p}from"../chunk-hytt9qyj.js";import"../chunk-9b4erdy2.js";import{$g as N8,ah as l0,bh as _0,ch as T3,fh as O8,hh as F8,ih as S8,jh as f5,kh as g5,lh as b5,mh as R3,nh as A8,oh as y5,ph as h5}from"../chunk-1myhm0g3.js";import{Ah as I8,Ch as U8,Eh as q5}from"../chunk-kejwjerj.js";import{bi as A5}from"../chunk-t4yh4nf9.js";import"../chunk-1vzks22y.js";import"../chunk-vw8849ys.js";function L0($,Z,X,z,J,V){let Y=e($,Z),G=V0($,Y,Z,V),H=X.quoteIdent(z),W=`${H}.`,M=G.parentFields.map((C,Q)=>{let R=`${W}${X.quoteIdent(r0(Y,Z,G.childFields[Q]))}`,S=`${J}${X.quoteIdent(r0($,Z,C))}`;return`${R} = ${S}`}).join(" and ");if(!G.join)return{child:Y,source:`${X.quoteIdent(Y.table)} as ${H}`,correlation:M,qualifier:W};let B=`${W}${X.quoteIdent(r0(Y,Z,G.childFields[0]))}`,D=`${J}${X.quoteIdent(r0($,Z,G.parentFields[0]))}`,j=X.quoteIdent(`${z}j`);return{child:Y,source:`${X.quoteIdent(Y.table)} as ${H} join ${X.quoteIdent(G.join.table)} as ${j} on ${j}.${X.quoteIdent(G.join.childColumn)} = ${B}`,correlation:`${j}.${X.quoteIdent(G.join.parentColumn)} = ${D}`,qualifier:W}}function r0($,Z,X){let z=$.fields[X];if(!z)throw new p($.name,Z.name,`it joins on '${X}', which is not a field on ${$.name}.`);return z.column}function y($,Z,X){let z=a0($);if(typeof Z!=="object"||Z===null||Array.isArray(Z))throw s5($,X,z);let J=Object.keys(Z).filter((Y)=>Z[Y]!==void 0),V=Z;for(let Y of z){if(Y.length===1&&J.includes(Y[0]))return c5($,X,Y[0],V[Y[0]]),Y;let G=Y.join("_");if(Y.length>1&&J.includes(G)){let H=V[G];if(H&&typeof H==="object"&&!Array.isArray(H))for(let W of Y)c5($,X,`${G}.${W}`,H[W]);return Y}}throw s5($,X,z)}function A3($){if($===null||$===void 0)return!1;let Z=typeof $;if(Z!=="object")return Z!=="function"&&Z!=="symbol";if(Array.isArray($))return!1;if($ instanceof Date||ArrayBuffer.isView($))return!0;let X=Object.getPrototypeOf($);return X!==Object.prototype&&X!==null}function c5($,Z,X,z){if(z===void 0||A3(z))return;throw new I(`${Z.argument}.${X}`,Z.model,Z.operation,`A unique key takes a plain value to match, not ${z===null?"null":Array.isArray(z)?"an array":"a filter object"}. Use findFirst/findMany (or updateMany/deleteMany) to filter on ${$.name}.${X.split(".").pop()}.`)}function b3($,Z,X){y($,Z,{model:$.name,operation:X,argument:"where"})}function a0($){let Z=[];if($.primaryKey.length>0)Z.push($.primaryKey);for(let X of $.uniques)Z.push(X);return Z}function s5($,Z,X){let z=X.map((Y)=>Y.length===1?Y[0]:Y.join("_")).join(", "),V=Z.argument.startsWith("data.")?`Name it by one of those, or reach it through the ${$.name} model directly.`:`Use ${Z.operation==="delete"||Z.operation==="update"?`${Z.operation}Many`:"findFirst"} to query on anything else.`;return new _(Z.argument,Z.model,Z.operation,`${$.name} needs a unique field here. It declares: ${z}. ${V}`)}function g($,Z,X){let z=Z.castParameter($);if(!z)return s(X);return s((J,V)=>{let Y=X(J,V);if(Y===null||Y===void 0)return null;let G=f(Y);if(G==="db")return null;if(G==="json")return"null";if(G==="any")throw Error("gemi ORM bug: Prisma.AnyNull reached the parameter binder. It is a filter operand only, and both the filter and write paths are supposed to have handled it before this point.");return JSON.stringify(Y)},z)}function v($,Z,X,z){if(Z===void 0||Z===null)return null;if(typeof Z!=="object"||Array.isArray(Z))throw new I("where",$.name,X.operation,"Expected an object.");let J=[];for(let V of Object.keys(Z).sort()){let Y=Z[V];if(Y===void 0)continue;let G=(W)=>z(W)?.[V];if(V==="AND"||V==="OR"){let W=i5($,Y,X,G,V);if(W)J.push(W);continue}if(V===$0){J.push(d4($,Y,X,G));continue}if(V==="NOT"){let W=i5($,Y,X,G,"AND");if(W)J.push(T(P("not "),A0(W)));continue}if(V in $.relations){let W=u4($,$.relations[V],Y,X,G);if(W)J.push(W);continue}let H=$.fields[V];if(!H){let W=p4($,V,Y,X,G);if(W){J.push(W);continue}throw new k(V,$.name,Object.keys($.fields))}J.push(k3($,H,Y,X,G))}if(J.length===0)return null;if(J.length===1)return J[0];return l(J," and ")}function u4($,Z,X,z,J){let V=n5(Z.kind),Y=m4($,Z,X,V,z),G=z.relationDepth??0,H=z.dialect,W=z.qualifier??`${H.quoteIdent($.table)}.`,M=L0($,Z,H,`_r${G}`,W,z.operation),B=M.child,D=P(M.correlation),j={...z,qualifier:M.qualifier,relationDepth:G+1},C=[];for(let Q of V){if(!(Q in Y))continue;let R=Y[Q],S=(U)=>Y.direct?J(U):J(U)?.[Q];if(R===null){C.push(q3(M,D,null,Q==="is"));continue}let K=v(B,R,j,S);if(Q==="every"){if(!K)continue;C.push(q3(M,D,T(P("not "),A0(K)),!0));continue}let L=Q==="none"||Q==="isNot";C.push(q3(M,D,K,L))}if(C.length===0)return null;if(C.length===1)return C[0];return l(C," and ")}function q3($,Z,X,z){let J=[P(`${z?"not ":""}exists (select 1 from ${$.source} where `),Z];if(X)J.push(P(" and "),X);return J.push(P(")")),T(...J)}function m4($,Z,X,z,J){let V=`where.${Z.name}`,Y=Z.kind==="many";if(X===null){if(Y)throw new _(V,$.name,J.operation,`${Z.name} is a to-many relation, so null is not a filter for it. Use { none: {} } for "has no related rows".`);return{is:null,direct:!0}}if(typeof X!=="object"||Array.isArray(X))throw new I(V,$.name,J.operation,Y?`Expected an object holding ${z.join(", ")}.`:"Expected an object, or null.");if(l5(X,z))return X;if(Y)throw new _(V,$.name,J.operation,`Expected one of ${z.join(", ")}. A to-many relation has no `+"single reading of a bare filter \u2014 { some: \u2026 } and { every: \u2026 } mean "+"different things.");return{is:X,direct:!0}}function p4($,Z,X,z,J){let V=a0($).find((H)=>H.length>1&&H.join("_")===Z);if(!V)return null;if(typeof X!=="object"||X===null||Array.isArray(X))throw new I(`where.${Z}`,$.name,z.operation,`Expected an object holding ${V.join(" and ")}.`);let Y=X,G=[];for(let H of V){if(Y[H]===void 0)throw new _(`where.${Z}`,$.name,z.operation,`Missing '${H}'. A composite key needs all of ${V.join(", ")}.`);if(!A3(Y[H]))throw new I(`where.${Z}.${H}`,$.name,z.operation,`A composite key takes a plain value for each of ${V.join(", ")}, not a filter, an array or null.`);G.push(k3($,$.fields[H],Y[H],z,(W)=>J(W)?.[H]))}return G.length===1?G[0]:l(G," and ")}function i5($,Z,X,z,J){let V=[];if(Array.isArray(Z))for(let Y=0;Y<Z.length;Y++){let G=v($,Z[Y],X,(H)=>z(H)?.[Y]);if(G)V.push(G)}else{let Y=v($,Z,X,z);if(Y)V.push(Y)}if(V.length===0)return J==="AND"?null:o5;if(V.length===1)return V[0];return l(V,J==="AND"?" and ":" or ")}var o5=P("false");function l($,Z){return T(P("("),E($,Z),P(")"))}function A0($){return $.text.startsWith("(")?$:l([$],"")}var x3=new Set(["equals","not","in","notIn","lt","lte","gt","gte","contains","startsWith","endsWith","mode"]),t5={lt:"<",lte:"<=",gt:">",gte:">="},$0="$compositeIn",r5=Symbol("gemi.orm.compositeInFromPlanner");function a5($,Z){return{[r5]:!0,fields:$,values:Z}}function d4($,Z,X,z){let{dialect:J}=X,Y=c4($,Z,X).map((H)=>{let W=$.fields[H];if(!W)throw new k(H,$.name,Object.keys($.fields));return W}),G=Y.map((H)=>`${X.qualifier??""}${J.quoteIdent(H.column)}`);return J.compositeIn(G,Y.map((H)=>H.type),(H)=>z(H).values)}function c4($,Z,X){let z=()=>{throw new k($0,$.name,Object.keys($.fields))};if(typeof Z!=="object"||Z===null||Array.isArray(Z))return z();if(Z[r5]!==!0)return z();let J=(G)=>{throw new _($0,$.name,X.operation,G)},{fields:V,values:Y}=Z;if(!Array.isArray(V)||V.length===0)return J(`the planner built a '${$0}' with no fields.`);if(!V.every((G)=>typeof G==="string"))return J(`the planner built a '${$0}' with a non-string field.`);if(!Array.isArray(Y))return J(`the planner built a '${$0}' with no values.`);if(!Y.every((G)=>Array.isArray(G)&&G.length===V.length))return J(`the planner built a '${$0}' whose tuples do not all have ${V.length} value(s).`);return V}var s4=["equals","has","hasEvery","hasSome","isEmpty"],E3=new Set(s4);function i4($,Z,X,z,J,V){let{dialect:Y}=J;if(R0($,Z,`where.${Z.name}`,J.operation,Y),Array.isArray(z))throw new I(`where.${Z.name}`,$.name,J.operation,`'${Z.name}' is a scalar list, and a bare array is not a filter on `+"one \u2014 Prisma rejects it here too. Say which comparison you mean: "+`{ ${Z.name}: { equals: [...] } } for the whole list, or { ${Z.name}: { hasEvery: [...] } } for "contains all of these". A bare array *is* accepted as a value in \`data\`.`);if(!f3(z))throw new I(`where.${Z.name}`,$.name,J.operation,`'${Z.name}' is a scalar list. Expected an object holding ${[...E3].sort().join(", ")}; received ${z===null?"null":typeof z}.`);let G=z,H=[];for(let W of Object.keys(G).sort()){let M=G[W];if(M===void 0)continue;if(!E3.has(W))throw new I(`where.${Z.name}.${W}`,$.name,J.operation,`'${Z.name}' is a scalar list, and a list filter takes ${[...E3].sort().join(", ")}. The scalar operators \u2014 `+`${[...x3].sort().join(", ")} \u2014 apply to a single value and `+"Prisma does not offer them here.");let B=(D)=>V(D)?.[W];H.push(n4($,Z,X,W,M,J,B))}if(H.length===0)return P("true");if(H.length===1)return H[0];return l(H," and ")}function n4($,Z,X,z,J,V,Y){let{dialect:G}=V;if(z==="equals")return l4($,Z,X,J,V,Y);if(z==="isEmpty"){if(typeof J!=="boolean")throw new I(`where.${Z.name}.isEmpty`,$.name,V.operation,`Expected true or false, received ${J===null?"null":typeof J}.`);return G.listIsEmpty(X,J)}if(z==="has"){let W=o4(Z);return G.listHas(X,g(W,G,T0(W,G,Y)))}if(!Array.isArray(J))throw new I(`where.${Z.name}.${z}`,$.name,V.operation,`Expected an array, received ${J===null?"null":typeof J}.`);let H=g(Z,G,T0(Z,G,Y));return z==="hasEvery"?G.listHasEvery(X,H):G.listHasSome(X,H)}function l4($,Z,X,z,J,V){let{dialect:Y}=J;if(z===null)return P(`${X} is null`);if(!Array.isArray(z))throw new I(`where.${Z.name}.equals`,$.name,J.operation,`'${Z.name}' is a scalar list, so it compares against an array. Received ${typeof z}. For "is this element present", use { ${Z.name}: { has: \u2026 } }.`);return T(P(`${X} = `),g(Z,Y,T0(Z,Y,V)))}function o4($){return{...$,isList:!1}}function R0($,Z,X,z,J){if(J.listFilters.size>0)return;throw new _(X,$.name,z,`'${Z.name}' is a scalar list, and ${J.name} has no array type to hold one. Prisma refuses the column itself on ${J.name} \u2014 `+'"the current connector does not support lists of primitive types" \u2014 so '+`this is a difference between the databases rather than a gap in the ORM. The generated artifact is dialect-agnostic, which is why this surfaces here rather than at \`prisma generate\`: the schema was generated against Postgres and DATABASE_URL names a ${J.name} database, which has no '${Z.column}' column either. It works on postgres.`)}var t4=["equals","not","string_contains","string_starts_with","string_ends_with","array_contains","lt","lte","gt","gte"],w3=new Set(t4),r4=["has_key","has_some_keys","has_every_key"],e0=new Set(r4);function e5($,Z,X,z,J,V,Y,G){let H=z!=="has_key",W=`where.${Z.name}.${z}`,M=(D)=>{if(!(H?Array.isArray(D)&&D.every((C)=>typeof C==="string"):typeof D==="string"))throw new I(W,$.name,V.operation,H?"Expected an array of key names, like ['a', 'b'].":"Expected a key name, like 'a'.");return D};M(J);let B=(D,j)=>M(G(D,j));return V.dialect.jsonHasKeys(X,Y,B,z==="has_key"?"one":z==="has_some_keys"?"some":"every",Array.isArray(J)?J.length:0)}function a4($,Z,X,z,J,V){let{dialect:Y}=J;if(Z.type!=="Json")throw new _(`${Z.name}.path`,$.name,J.operation,`A 'path' filter reads inside a JSON document, and '${Z.name}' is a ${Z.type} column.`);X7($,Z,z.path,J);let G=(M)=>V(M)?.path,H=Object.keys(z).filter((M)=>M!=="path"&&z[M]!==void 0).sort();if(H.length===0)throw new _(`${Z.name}.path`,$.name,J.operation,`A 'path' needs a filter beside it \u2014 ${[...w3,...e0].sort().join(", ")}. Prisma refuses a bare path too.`);let W=[];for(let M of H){if(e0.has(M)){W.push(e5($,Z,X,M,z[M],J,G,(j)=>V(j)?.[M]));continue}if(!w3.has(M))throw new _(`${Z.name}.${M}`,$.name,J.operation,`A JSON path filter takes ${[...w3,...e0].sort().join(", ")}.`);if(!Y.jsonFilters.has(M))throw new _(`${Z.name}.${M}`,$.name,J.operation,`'${M}' on a JSON path is not available on ${Y.name}. Prisma refuses it here too, so this is a difference between the databases rather than a gap in the ORM. It works on postgres.`);let B=z[M],D=B===null?"json":f(B);if(D&&(M==="equals"||M==="not")){W.push(e4(D,X,G,Z,Y,M==="not"));continue}if(D&&B!==null){let j=M==="array_contains"?"'array_contains' tests containment against a document, and a sentinel is not one":`'${M}' compares an extracted value against a scalar, and a sentinel is not one`;throw new I(`where.${Z.name}.${M}`,$.name,J.operation,`${b0(D)} asks which kind of null a value is, which `+`only 'equals' and 'not' can express \u2014 ${j}. Prisma refuses it under this operator too. Write { ${Z.name}: { path: [\u2026], equals: ${b0(D)} } }, `+"or filter the column itself \u2014 "+`{ ${Z.name}: { equals: ${b0(D)} } }.`)}if($9(B))throw new I(`where.${Z.name}.${M}`,$.name,J.operation,"Prisma.AnyNull is a question rather than a value \u2014 'either kind of "+"null' \u2014 so it cannot appear inside a document. Ask it directly: "+`{ ${Z.name}: { path: [\u2026], equals: Prisma.AnyNull } }.`);$7(M,B,$,Z,J),W.push(Z7(M,X,G,Z,Y,(j)=>V(j)?.[M]))}return W.length===1?W[0]:l(W," and ")}function e4($,Z,X,z,J,V){let Y=()=>T(J.jsonValueAt(Z,X),P(V?" is not null":" is null")),G=()=>T(J.jsonValueAt(Z,X),P(V?" <> ":" = "),g(z,J,()=>J.encode(v3,z)));if($==="db")return Y();if($==="json")return G();return l([G(),Y()],V?" and ":" or ")}function $7($,Z,X,z,J){let V=$==="string_contains"||$==="string_starts_with"||$==="string_ends_with";if(V&&typeof Z!=="string")throw new I(`where.${z.name}.${$}`,X.name,J.operation,`Expected a string, received ${Z===null?"null":typeof Z}. Prisma raises here too \u2014 without this the pattern becomes `+`'%${String(Z)}%', which runs and returns the wrong rows.`);if(Z===null)throw new I(`where.${z.name}.${$}`,X.name,J.operation,$==="array_contains"?"null cannot be tested for containment through a JSON path: the operand binds as SQL NULL rather than as the JSON value, and "+"'x @> NULL' is NULL rather than true \u2014 the query would run and "+`match nothing. A null *inside* the document is an ordinary value and still compiles: { ${z.name}: { path: [\u2026], array_contains: [null] } }.`:`null cannot be compared through a JSON path with '${$}', which `+"compares the extracted value as a number \u2014 the comparison against "+`NULL is NULL rather than true, so the query would run and match nothing. Prisma refuses it here too. For "the value at this path is a JSON null", use equals or not: { ${z.name}: { path: [\u2026], equals: null } }.`);if($==="array_contains"||V)return;if(typeof Z==="object")throw new _(`where.${z.name}.${$}`,X.name,J.operation,`'${$}' on a JSON path compares the extracted value as a scalar, so `+"an object or array operand cannot be expressed \u2014 it would bind as "+`'${String(Z)}' and match nothing. Prisma accepts one here; gemi does not yet. Use array_contains for containment, or narrow the path until it names a scalar.`)}function Z7($,Z,X,z,J,V){if($==="array_contains")return J.jsonArrayContains(Z,X,V);let Y=$==="string_contains"||$==="string_starts_with"||$==="string_ends_with",G=J.jsonExtract(Z,X,!0);if(Y){let B=$==="string_contains"?(D)=>`%${D}%`:$==="string_starts_with"?(D)=>`${D}%`:(D)=>`%${D}`;return T(P("("),G,P(") like "),s((D,j)=>{let C=V(D,j);return C===null||C===void 0?null:B(String(C))}))}let H=$==="equals"?"=":$==="not"?"<>":t5[$],W=$!=="equals"&&$!=="not",M=W?T(P("cast(("),G,P(") as real)")):T(P("("),G,P(")"));return T(M,P(` ${H} `),s((B,D)=>{let j=V(B,D);if(j===null||j===void 0)return null;if(W)return Number(j);return J.jsonComparesAsText?String(j):j}))}function X7($,Z,X,z){let{dialect:J}=z,V=J.jsonPathSyntax==="array"?"array":"jsonpath",Y=Array.isArray(X)?"array":typeof X==="string"?"jsonpath":"other";if(Array.isArray(X)&&X.length===0||X==="")throw new _(`${Z.name}.path`,$.name,z.operation,`A JSON path cannot be empty. ${J.jsonPathSyntax==="array"?`On ${J.name} an empty array selects the whole document, `+"which is a filter on the column rather than on a path \u2014 write "+`{ ${Z.name}: { equals: \u2026 } } if that is what you meant.`:`On ${J.name} an empty string raises inside json_extract.`}`);if(Y===V){if(V!=="array")return;let H=X.findIndex((B)=>typeof B!=="string");if(H===-1)return;let W=X[H],M=W===null?"null":W===void 0?"undefined":Array.isArray(W)?"an array":typeof W==="object"?"an object":`a ${typeof W}`;throw new _(`${Z.name}.path`,$.name,z.operation,`A JSON path is an array of strings, and path[${H}] is ${M}. `+(typeof W==="number"?'An array index is a key too \u2014 write ["items", "0"] rather than '+`["items", 0]; it reaches the same element, because ${J.name} takes the path as text. Prisma's path is string[] and its client refuses a number here too.`:"Prisma's path is string[] too."))}throw new _(`${Z.name}.path`,$.name,z.operation,J.jsonPathSyntax==="array"?`On ${J.name} a JSON path is an array of keys \u2014 ["a", "b"] \u2014 `+"not a JSONPath string. Prisma splits them the same way, and refuses the other form on each database.":`On ${J.name} a JSON path is a JSONPath string \u2014 "$.a.b" \u2014 not `+"an array of keys. Prisma splits them the same way, and refuses the other form on each database.")}function k3($,Z,X,z,J){let{dialect:V}=z,Y=`${z.qualifier??""}${V.quoteIdent(Z.column)}`,G=f(X);if(G)throw new I(`where.${Z.name}`,$.name,z.operation,`${b0(G)} is not a filter on `+"its own \u2014 Prisma rejects it here too. Write it as an explicit "+`comparison: { ${Z.name}: { equals: ${b0(G)} } }.`);if(Z.isList)return i4($,Z,Y,X,z,J);if(!f3(X))return $3(Y,Z,X,V,J);let H=X,W=Object.keys(H).sort();if(H.path!==void 0)return a4($,Z,Y,H,z,J);let M=H.mode==="insensitive";if(H.mode!==void 0&&H.mode!=="default"){if(!M)throw new I(`mode: ${JSON.stringify(H.mode)}`,$.name,z.operation,"Prisma takes 'default' or 'insensitive'.");if(!V.supportsInsensitiveMode)throw new _('mode: "insensitive"',$.name,z.operation,`The ${V.name} dialect cannot express it \u2014 Prisma rejects it `+"here too. Note SQLite's LIKE is already case-insensitive for ASCII.")}let B=[];for(let D of W){let j=H[D];if(j===void 0||D==="mode")continue;if(Z.type==="Json"&&e0.has(D)){B.push(e5($,Z,Y,D,j,z,void 0,(Q)=>J(Q)?.[D]));continue}if(!x3.has(D))throw new I(`where.${Z.name}.${D}`,$.name,z.operation,`A scalar filter takes ${[...x3].sort().join(", ")}.`);if(D!=="equals"&&D!=="not"&&$9(j))throw new I(`where.${Z.name}.${D}`,$.name,z.operation,`Prisma.AnyNull means 'either kind of null', which only 'equals' and 'not' can express. Write { ${Z.name}: { equals: Prisma.AnyNull } }, or name the one you mean with Prisma.DbNull or Prisma.JsonNull.`);let C=(Q)=>J(Q)?.[D];switch(D){case"equals":B.push($3(Y,Z,j,V,C));break;case"not":B.push(z7($,Z,j,z,C,Y));break;case"in":case"notIn":B.push(Y7($,Y,Z,j,z,C,D==="notIn"));break;case"lt":case"lte":case"gt":case"gte":B.push(T(P(`${Y} ${t5[D]} `),g(Z,V,T0(Z,V,C))));break;case"contains":case"startsWith":case"endsWith":if(typeof j!=="string")throw new I(`where.${Z.name}.${D}`,$.name,z.operation,`Expected a string, received ${j===null?"null":typeof j}.`);if(Z.type!=="String")throw new _(`where.${Z.name}.${D}`,$.name,z.operation,`'${Z.name}' is a ${Z.type}, and ${D} only applies to strings.`);B.push(V.like(Y,M,V7(D,C)));break}}if(B.length===0)return P("true");if(B.length===1)return B[0];return l(B," and ")}function b0($){return`Prisma.${$==="db"?"DbNull":$==="json"?"JsonNull":"AnyNull"}`}function $9($){if(f($)==="any")return!0;return Array.isArray($)&&$.some((Z)=>f(Z)==="any")}function z7($,Z,X,z,J,V){if(X===null||f(X)==="db")return P(`${V} is not null`);if(f(X)==="json")return T(P("not "),A0($3(V,Z,X,z.dialect,J)));if(f(X)==="any")return T(P("not "),A0($3(V,Z,X,z.dialect,J)));if(!f3(X))return T(P(`${V} <> `),g(Z,z.dialect,T0(Z,z.dialect,J)));let Y=k3($,Z,X,z,J);return T(P("not "),A0(Y))}function $3($,Z,X,z,J){if(X===null||f(X)==="db")return P(`${$} is null`);if(f(X)==="any")return l([P(`${$} is null`),J7($,Z,z)]," or ");return T(P(`${$} = `),g(Z,z,T0(Z,z,J)))}function J7($,Z,X){return T(P(`${$} = `),g(Z,X,()=>X.encode(v3,Z)))}function Y7($,Z,X,z,J,V,Y){let{dialect:G}=J;if(!Array.isArray(z))throw new I(`where.${X.name}.${Y?"notIn":"in"}`,$.name,J.operation,"Expected an array.");if(z.length===0)return Y?P("true"):o5;return G.inList(Z,Y,z.length,(H)=>{return V(H).map((M)=>G.encode(M,X))})}function V7($,Z){return(X)=>{let z=String(Z(X));if($==="contains")return`%${z}%`;if($==="startsWith")return`${z}%`;return`%${z}`}}function T0($,Z,X){return(z)=>Z.encode(X(z),$)}function f3($){return typeof $==="object"&&$!==null&&!Array.isArray($)&&!($ instanceof Date)&&!ArrayBuffer.isView($)}function Z9($,Z,X,z,J,V,Y){let G=`orderBy.${Z.name}`;if(typeof X!=="object"||X===null||Array.isArray(X))throw new I(G,$.name,z,Z.kind==="many"?'Expected { _count: "asc" | "desc" }.':`Expected an object naming one field of ${Z.model}.`);let H=X,W=Object.keys(H).filter((Q)=>Q!=="where");if(W.length!==1)throw new _(G,$.name,z,W.length===0?"Name the field to order by.":`Name exactly one field to order by; got ${W.join(", ")}. `+"Order by several with an array: [{ a: \u2026 }, { b: \u2026 }].");let[M]=W,B=L0($,Z,J,`_o${Y}`,`${J.quoteIdent($.table)}.`,z),D=H7($,Z,B.child,M,H[M],z,B.qualifier,J),j=v(B.child,H.where,{dialect:J,operation:z,qualifier:B.qualifier},(Q)=>V(Q)?.where),C=[P(`(select ${D.expression} from ${B.source} where ${B.correlation}`)];if(j)C.push(P(" and "),j);return C.push(P(")")),{expression:T(...C),direction:D.direction,nulls:D.nulls}}function H7($,Z,X,z,J,V,Y,G){let H=`orderBy.${Z.name}.${z}`,{direction:W,nulls:M}=G7($,H,J,V);if(z===i){if(Z.kind!=="many")throw new _(H,$.name,V,`${Z.name} is a to-one relation, so its count is 0 or 1. Order by one of ${X.name}'s fields instead.`);return{expression:"count(*)",direction:W,nulls:M}}if(Z.kind==="many")throw new _(H,$.name,V,`${Z.name} is a to-many relation, so ordering by '${z}' has no single answer for a parent with several children. Only `+"{ _count: \u2026 } is supported.");let B=X.fields[z];if(!B)throw new _(H,$.name,V,`'${z}' is not a field on ${X.name}. Known fields: ${Object.keys(X.fields).join(", ")}.`);return{expression:`${Y}${G.quoteIdent(B.column)}`,direction:W,nulls:M}}function G7($,Z,X,z){if(X==="asc"||X==="desc")return{direction:X};if(typeof X==="object"&&X!==null){let{sort:J,nulls:V}=X;if(J!=="asc"&&J!=="desc")throw new I(Z,$.name,z,'Expected "asc" or "desc".');if(V===void 0)return{direction:J};if(V!=="first"&&V!=="last")throw new _(`${Z}.nulls`,$.name,z,'Expected "first" or "last".');return{direction:J,nulls:V}}throw new _(Z,$.name,z,'Expected "asc", "desc", or { sort, nulls }.')}var W7=new Set(["asc","desc"]),M7=new Set(["first","last"]);function H0($,Z,X,z){if(Z===void 0||Z===null)return[];let J=Array.isArray(Z),V=J?Z:[Z],Y=[];for(let G=0;G<V.length;G++){let H=V[G],W=(M)=>{let B=z?.locate(M);return J?B?.[G]:B};if(typeof H!=="object"||H===null)throw new I("orderBy",$.name,X,"Expected an object or an array of objects.");for(let[M,B]of Object.entries(H)){if(B===void 0)continue;if(M in $.relations){if(!z)throw new _(`orderBy.${M}`,$.name,X,"Ordering by a relation is not implemented here.");let j=Z9($,$.relations[M],B,X,z.dialect,(C)=>W(C)?.[M],Y.length);Y.push({column:M,direction:j.direction,...j.nulls?{nulls:j.nulls}:{},expression:j.expression});continue}let D=$.fields[M];if(!D)throw new k(M,$.name,Object.keys($.fields));Y.push({column:D.column,...X9($,M,B,X)})}}return Y}function X9($,Z,X,z){if(typeof X==="string"){if(!W7.has(X))throw new I(`orderBy.${Z}: ${JSON.stringify(X)}`,$.name,z,'Expected "asc" or "desc".');return{direction:X}}if(typeof X==="object"&&X!==null){let{sort:J,nulls:V}=X,Y=X9($,Z,J,z).direction;if(V===void 0)return{direction:Y};if(typeof V!=="string"||!M7.has(V))throw new _(`orderBy.${Z}.nulls: ${JSON.stringify(V)}`,$.name,z,'Expected "first" or "last".');return{direction:Y,nulls:V}}throw new _(`orderBy.${Z}`,$.name,z,'Expected "asc", "desc", or { sort, nulls }.')}function Z3($){return $.map((Z)=>({...Z,direction:Z.direction==="asc"?"desc":"asc",...Z.nulls?{nulls:Z.nulls==="first"?"last":"first"}:{}}))}function o($,Z,X){if($.length===0)return null;return E($.map((z)=>{let J=` ${z.direction}`+(z.nulls?` nulls ${z.nulls}`:"");if(z.expression)return E([z.expression,P(J)],"");return P(`${X??""}${Z.quoteIdent(z.column)}${J}`)}),", ")}function X3($,Z,X,z,J){if(typeof J!=="number"||!Number.isInteger(J))throw new I(X,$,Z,`Expected an integer, got ${JSON.stringify(J)}.`);if(z==="skip"&&J<0)throw new I(X,$,Z,"A 'skip' counts rows to pass over, so it cannot be negative. Prisma rejects one too.")}function B0($,Z,X,z,J,V=!1){if(X?.take!==void 0)X3($.name,Z,"take","take",X.take);if(X?.skip!==void 0)X3($.name,Z,"skip","skip",X.skip);let Y=V?1:X?.take,G=X?.skip,H=J;if((Y!==void 0||G!==void 0)&&H.length===0&&!V)H=$.primaryKey.map((j)=>({column:$.fields[j]?.column??j,direction:"asc"}));let M=typeof Y==="number"&&Y<0;if(M)H=Z3(H);let B=Y===void 0?null:V?()=>1:(j)=>Math.abs(Number(j?.take)),D=G===void 0?null:(j)=>Number(j?.skip);return{clause:z.paginate(B,D),terms:H,reversed:M}}function Z0($,Z,X){let z=Z?.select,J=Z?.omit;if(z!==void 0&&Z?.include!==void 0)throw new _("select + include",$.name,X,"Prisma allows only one of them on the same query.");if(z!==void 0&&J!==void 0)throw new _("select + omit",$.name,X,"'select' names what to keep and 'omit' what to drop, so the two describe different column lists. Prisma allows only one of them on "+"the same query. Drop the 'omit' \u2014 a 'select' already excludes "+"everything it does not name.");if(z===void 0||z===null)return B7($,J,X);if(typeof z!=="object"||Array.isArray(z))throw new I("select",$.name,X,"Expected an object.");let V=[];for(let[G,H]of Object.entries($.fields))if(z[G]===!0)V.push(H);let Y=0;for(let G of Object.keys(z)){let H=z[G];if(H===void 0)continue;if(G in $.relations){if(H!==!1)Y++;continue}if(G===i){if(H!==!1)Y++;continue}if(!(G in $.fields))throw new k(G,$.name,Object.keys($.fields));if(typeof H!=="boolean")throw new I(`select.${G}`,$.name,X,"Expected true or false.")}if(V.length===0&&Y===0)throw new _("select",$.name,X,"At least one field must be selected.");return V}function B7($,Z,X){if(Z===void 0||Z===null)return Object.values($.fields);if(typeof Z!=="object"||Array.isArray(Z))throw new I("omit",$.name,X,"Expected an object of fields.");let z=new Set;for(let V of Object.keys(Z)){let Y=Z[V];if(Y===void 0)continue;if(V in $.relations)throw new _(`omit.${V}`,$.name,X,`'${V}' is a relation, not a column. A relation is already absent unless an 'include' asks for it.`);if(!(V in $.fields))throw new k(V,$.name,Object.keys($.fields));if(typeof Y!=="boolean")throw new I(`omit.${V}`,$.name,X,"Expected true or false.");if(Y)z.add(V)}let J=Object.values($.fields).filter((V)=>!z.has(V.name));if(J.length===0)throw new _("omit",$.name,X,`It omits every field on ${$.name}, which leaves no column to select. Prisma rejects that too.`);return J}function z3($,Z,X){if(X.length===0)return{fields:Z};let z=new Set(Z.map((Y)=>Y.name)),J=X.filter((Y)=>!z.has(Y));if(J.length===0)return{fields:Z};let V=new Set([...z,...J]);return{fields:Object.values($.fields).filter((Y)=>V.has(Y.name)),hidden:J}}var z9=new Set(["where","orderBy","select","omit","include","take","skip"]),J9=new Set(["where","select","omit","include"]),V3=10;function v0($){return[...new Set($.map((Z)=>Z.strategy))].sort()}function U0($,Z,X,z,J=W0){let V=k0($,Z,z);if(V.length===0)return{plans:[],keyFields:[]};let Y=[],G=new Set;for(let H of V){M9($,H,z);let W=j9($,H);B9(W,H.node,z,2);let M=J.plan({parent:$,child:W,relation:H.relation,as:H.as,node:H.node,locate:H.locate,dialect:X,operation:z});Y.push(M);for(let B of M.parentFields)G.add(B)}return{plans:Y,keyFields:[...G]}}async function H3($,Z,X,z,J){let V=Array.isArray(X)?X:X===null||X===void 0?[]:[X];if(V.length===0)return;for(let Y of $){if(Y.root)continue;await Y.load(V,z,J)}if(Z&&Z.length>0)for(let Y of V)for(let G of Z)delete Y[G]}function k0($,Z,X){if(Z===void 0||Z===null)return[];let{include:z,select:J}=Z;W9($,z,J,X);let V=[];if(z!==void 0&&z!==null){if(typeof z!=="object"||Array.isArray(z))throw new I("include",$.name,X,"Expected an object.");for(let Y of Object.keys(z).sort()){let G=z[Y];if(G===void 0||G===!1)continue;if(Y===i)continue;let H=$.relations[Y];if(!H)throw new w0(Y,$.name,Object.keys($.relations));V.push({as:Y,relation:H,node:G,locate:(W)=>W?.include?.[Y]})}return V}if(J!==void 0&&J!==null&&typeof J==="object")for(let Y of Object.keys(J).sort()){let G=J[Y];if(G===void 0||G===!1)continue;let H=$.relations[Y];if(!H)continue;V.push({as:Y,relation:H,node:G,locate:(W)=>W?.select?.[Y]})}return V}function W9($,Z,X,z,J){if(Z===void 0||X===void 0)return;throw new _(J?`${J}: select + include`:"select + include",$.name,z,"Prisma allows only one of them on the same query, at any level.")}function M9($,Z,X){let z=Z.node;if(z===!0)return;if(typeof z!=="object"||z===null||Array.isArray(z))throw new I(Z.as,$.name,X,"Expected true or an object of relation arguments.");let J=z;W9($,J.include,J.select,X,Z.as);let V=Z.relation.kind==="many";for(let Y of Object.keys(J).sort()){if(J[Y]===void 0)continue;if(V&&(Y==="take"||Y==="skip")){D7($,Z,X,Y,J[Y]);continue}if(V?z9.has(Y):J9.has(Y))continue;if(Y==="lock")throw new E0(`${Z.as}.lock`,$.name,X,"'lock' locks the rows of the model being queried, not an included relation's. Lock the related rows with their own locking read in the same transaction.");if(Y==="orderBy"&&!V)throw new _(`${Z.as}.orderBy`,$.name,X,"Prisma does not accept 'orderBy' on a to-one relation \u2014 there is at "+"most one row to order.");if(Y==="take"||Y==="skip")throw new _(`${Z.as}.${Y}`,$.name,X,`Prisma does not accept '${Y}' on a to-one relation.`);throw new _(`${Z.as}.${Y}`,$.name,X,`A relation node takes ${[...V?z9:J9].sort().join(", ")}.`)}}function D7($,Z,X,z,J){X3($.name,X,`${Z.as}.${z}`,z,J)}function u3($,Z){let X=$.node;if(typeof X!=="object"||X===null||Array.isArray(X))return;for(let z of["take","skip"]){if(X[z]===void 0)continue;throw new _(`${$.as}.${z}`,$.parent.name,$.operation,`A '${z}' inside a to-many relation is per parent, and the batched `+"relation planner serves every parent from one query \u2014 so the only "+`limit it could emit would page every parent's children as one set. Only the lateral join strategy can express it, by paginating inside a subquery that already runs once per parent row, and it needs Postgres: ${Z}. Load '${$.as}' as its own query, or narrow it with 'where'.`)}}function B9($,Z,X,z){if(typeof Z!=="object"||Z===null||Array.isArray(Z))return;if(Z.select!==void 0)Z0($,Z,X);let J=k0($,Z,X);if(J.length===0)return;if(z>V3)throw new g3($.name,V3);for(let V of J)M9($,V,X),B9(j9($,V),V.node,X,z+1)}function D9($,Z,X,z){if($.parentFields.length!==1)throw new _(X.name,Z.name,z,`${X.name} joins on ${$.parentFields.length} fields (${$.parentFields.join(", ")}), and it is planned through a join table, which links two models by a single primary key each side. Prisma does not build an implicit many-to-many over a composite key.`);return{parentField:$.parentFields[0],childField:$.childFields[0],join:$.join}}function V0($,Z,X,z){if(X.joinTable)return P7($,Z,X);if(X.from.length>0)return Y9($,X,X.from,X.to,z);let J=j7($,Z,X);if(J.from.length===0)throw new p($.name,X.name,`neither ${$.name}.${X.name} nor ${Z.name}.${J.name} holds the foreign key.`);return Y9($,X,J.to,J.from,z)}function Y9($,Z,X,z,J){if(X.length===0)throw new _(Z.name,$.name,J,`${Z.name} names no join fields.`);if(X.length!==z.length)throw new p($.name,Z.name,`it joins ${X.length} field(s) to ${z.length}: ${X.join(", ")} against ${z.join(", ")}.`);return{parentFields:X,childFields:z}}function j7($,Z,X){let z=Object.values(Z.relations).filter((J)=>J.relationName===X.relationName&&!(Z.name===$.name&&J.name===X.name));if(z.length!==1)throw new p($.name,X.name,z.length===0?`${Z.name} declares no relation named '${X.relationName}'.`:`${Z.name} declares ${z.length} relations named '${X.relationName}'.`);return z[0]}function P7($,Z,X){let{table:z,a:J,b:V}=X.joinTable;if(J===V){let G=X.joinTable.ownerColumn;if(!G)throw new _(X.name,$.name,"include",`${X.name} is a self-referential implicit many-to-many, and the generated artifact predates support for one. Re-run \`prisma generate\`.`);return{parentFields:[J3($,X)],childFields:[J3(Z,X)],join:{table:z,parentColumn:G,childColumn:G==="A"?"B":"A"}}}if($.name!==J&&$.name!==V)throw new p($.name,X.name,`the join table '${z}' connects ${J} and ${V}, neither of which is ${$.name}.`);let Y=$.name===J?"A":"B";return{parentFields:[J3($,X)],childFields:[J3(Z,X)],join:{table:z,parentColumn:Y,childColumn:Y==="A"?"B":"A"}}}function J3($,Z){if($.primaryKey.length!==1)throw new p($.name,Z.name,`an implicit many-to-many joins on ${$.name}'s primary key, which has ${$.primaryKey.length} fields.`);return $.primaryKey[0]}function Y3($,Z,X){let z=$.fields[X];if(!z)throw new p($.name,Z.name,`it joins on '${X}', which is not a field on ${$.name}.`);return z}function j9($,Z){return e($,Z.relation,Z.as)}function e($,Z,X=Z.name){let z=Z.model;if(!D0(z))throw new y3($.name,X,z,G9());let J=G0(z)?.$schema;if(!J)throw new x0(z);return J}var V9="batched",W0={name:V9,plan($){u3($,"this query planned with the batched strategy");let Z=V0($.parent,$.child,$.relation,$.operation);for(let V of Z.parentFields)H9($.parent,$.relation,Y3($.parent,$.relation,V));for(let V of Z.childFields)H9($.child,$.relation,Y3($.child,$.relation,V));let X=Y3($.parent,$.relation,Z.parentFields[0]),z=Y3($.child,$.relation,Z.childFields[0]),J=$.relation.kind==="many";return{as:$.as,model:$.relation.model,kind:$.relation.kind,parentFields:Z.parentFields,strategy:V9,load(V,Y,G){let H={parentKeyField:X,childKeyField:z,many:J,parents:V,args:Y,executor:G};return Z.join?K7($,Z,H):_7($,Z,H)}}}};async function _7($,Z,X){let{keys:z,byKey:J}=K9(X.parents,Z.parentFields);if(z.length===0)return;let V=$.locate(X.args),Y=P9(V,Z.childFields,z,$.child,$.dialect),G=await X.executor.exec($.relation.model,"findMany",Y.args,!0);for(let H of G){let W=J.get(q0(Z.childFields.map((M)=>H[M])));if(!W)continue;for(let M of W)_9(M,$.as,H,X.many)}if(Y.hidden)for(let H of G)for(let W of Z.childFields)delete H[W]}async function K7($,Z,X){let{keys:z,byKey:J}=K9(X.parents,Z.parentFields);if(z.length===0)return;let{dialect:V}=$,Y=Z.join,G=await Q7(V,Y,z.map((j)=>V.encode(j[0],X.parentKeyField)),X.executor),H=new Map,W=[];for(let j of G){let C=q0([V.decode(j[Y.parentColumn],X.parentKeyField)]),Q=J.get(C);if(!Q)continue;let R=V.decode(j[Y.childColumn],X.childKeyField),S=q0([R]),K=H.get(S);if(K===void 0)K=[],H.set(S,K),W.push([R]);for(let L of Q)K.push(L)}if(W.length===0)return;let M=$.locate(X.args),B=P9(M,Z.childFields,W,$.child,$.dialect),D=await X.executor.exec($.relation.model,"findMany",B.args,!0);for(let j of D){let C=H.get(q0([j[Z.childFields[0]]]));if(!C)continue;for(let Q of C)_9(Q,$.as,j,X.many)}if(B.hidden)for(let j of D)delete j[Z.childFields[0]]}async function Q7($,Z,X,z){let J=T(P(`select ${$.quoteIdent(Z.parentColumn)}, ${$.quoteIdent(Z.childColumn)} from ${$.quoteIdent(Z.table)} where `),$.inList($.quoteIdent(Z.parentColumn),!1,X.length,()=>X)),{text:V,binders:Y}=m(J,$,{model:Z.table,operation:"include"}),G=I0();return z.query(V,Y.map((H)=>H(void 0,G)))}function P9($,Z,X,z,J){let V=$===!0||$===null||typeof $!=="object"?{}:$,Y=Z.length===1?{[Z[0]]:{in:X.map((B)=>B[0])}}:C7(z,Z,X,J),G={where:V.where===void 0?Y:{AND:[V.where,Y]}};if(V.orderBy!==void 0)G.orderBy=V.orderBy;if(V.include!==void 0)G.include=V.include;let H=V.omit;if(H!==void 0){let B=Z.filter((D)=>H[D]===!0);if(B.length===0)G.omit=H;else{let D={...H};for(let j of B)delete D[j];return G.omit=D,{args:G,hidden:!0}}}let W=V.select;if(W===void 0)return{args:G,hidden:!1};let M=Z.filter((B)=>W[B]!==!0);if(M.length===0)return G.select=W,{args:G,hidden:!1};G.select={...W};for(let B of M)G.select[B]=!0;return{args:G,hidden:!0}}function C7($,Z,X,z){let J=Z.map((V)=>$.fields[V]?.type);if(J.every((V)=>V!==void 0)&&z.canBindCompositeIn(J))return{[$0]:a5(Z,X)};return{OR:X.map((V)=>Object.fromEntries(Z.map((Y,G)=>[Y,V[G]])))}}function q0($){return JSON.stringify($.map(L7))}function _9($,Z,X,z){if(z){$[Z].push(X);return}if($[Z]===null)$[Z]=X}function K9($,Z){let X=new Map,z=[];for(let J of $){let V=Z.map((H)=>J[H]);if(V.some((H)=>H===null||H===void 0))continue;let Y=q0(V),G=X.get(Y);if(G===void 0)G=[],X.set(Y,G),z.push(V);G.push(J)}return{keys:z,byKey:X}}function L7($){if(typeof $!=="object"||$===null)return $;if($ instanceof Date)return $.getTime();if(ArrayBuffer.isView($)){let Z=new Uint8Array($.buffer,$.byteOffset,$.byteLength),X="";for(let z of Z)X+=z.toString(16).padStart(2,"0");return`bytes:${X}`}throw Error(`Cannot key a relation stitch on ${Object.prototype.toString.call($)}.`)}function H9($,Z,X){if(X.isList)throw new p($.name,Z.name,`it joins on '${X.name}', a ${X.type} list \u2014 which decodes to a new `+"array per row and so cannot be compared between the two sides.");if(X.type!=="Json")return;throw new p($.name,Z.name,`it joins on '${X.name}', a ${X.type} \u2014 which decodes to a new object `+"per row and so cannot be compared between the two sides.")}var Q9=(()=>{try{return Function("return 1")()===1}catch{return!1}})(),C9=!0;function T7($){C9=$}function R7(){return Q9}function f0($,Z,X=[]){if(Q9&&C9)return I7($,Z,X);return m3($,Z,X)}function m3($,Z,X=[]){let z=$.map((G)=>({key:G.name,column:G.column,field:G,decode:Z.needsDecode(G)})),J=z.length,V=X.map((G)=>({key:G.key,many:G.kind==="many"})),Y=V.length;return(G)=>{let H=[];for(let W=0;W<G.length;W++){let M=G[W],B={};for(let D=0;D<J;D++){let j=z[D],C=M[j.column];B[j.key]=j.decode?Z.decode(C,j.field):C??null}for(let D=0;D<Y;D++)B[V[D].key]=V[D].many?[]:null;H.push(B)}return H}}function I7($,Z,X){let z=[];for(let V=0;V<$.length;V++){let Y=$[V],G=JSON.stringify(Y.name),H=JSON.stringify(Y.column);z.push(Z.needsDecode(Y)?`${G}: d.decode(row[${H}], f[${V}])`:`${G}: row[${H}] ?? null`)}for(let V of X)z.push(`${JSON.stringify(V.key)}: ${V.kind==="many"?"[]":"null"}`);let J=`
2
+ import{$a as E4,Ja as n5,Ka as l5,La as i,Ma as L9,Na as U3,Oa as p8,Pa as d8,Qa as F0,Ra as m5,Sa as N3,Ta as c8,Ua as o0,Va as Q0,Wa as S4,Xa as A4,Ya as b4,Za as E5,_a as q4,ab as w4,bb as s8,cb as i8,db as n8}from"../chunk-6cx8ncd4.js";import{$e as g8,We as R8,Xe as D0,Ye as G0,Ze as G9,_e as h3,af as y8,bf as h8,cf as u8,df as m8}from"../chunk-whtzggn6.js";import{Af as T8,Bf as x0,Cf as k5,Df as I0,Ef as n,Ff as P,Gf as s,Jf as T,Kf as E,Lf as m,Mf as b8,Nf as q8,Of as E8,Pf as w8,Qf as v3,Rf as f,Sf as x8,Tf as v8,Uf as k8,Vf as f8,Wf as u5,ef as _,ff as I,gf as E0,hf as k,if as j8,jf as r,kf as P8,lf as w5,mf as _8,nf as D5,of as K8,qf as Q8,rf as x5,sf as C8,tf as L8,uf as v5,vf as P3,wf as w0,xf as g3,yf as y3,zf as p}from"../chunk-hytt9qyj.js";import"../chunk-49nyyjfe.js";import{$g as N8,ah as l0,bh as _0,ch as T3,fh as O8,hh as F8,ih as S8,jh as f5,kh as g5,lh as b5,mh as R3,nh as A8,oh as y5,ph as h5}from"../chunk-1myhm0g3.js";import{Ah as I8,Ch as U8,Eh as q5}from"../chunk-kejwjerj.js";import{bi as A5}from"../chunk-t4yh4nf9.js";import"../chunk-1vzks22y.js";import"../chunk-vw8849ys.js";function L0($,Z,X,z,J,V){let Y=e($,Z),G=V0($,Y,Z,V),H=X.quoteIdent(z),W=`${H}.`,M=G.parentFields.map((C,Q)=>{let R=`${W}${X.quoteIdent(r0(Y,Z,G.childFields[Q]))}`,S=`${J}${X.quoteIdent(r0($,Z,C))}`;return`${R} = ${S}`}).join(" and ");if(!G.join)return{child:Y,source:`${X.quoteIdent(Y.table)} as ${H}`,correlation:M,qualifier:W};let B=`${W}${X.quoteIdent(r0(Y,Z,G.childFields[0]))}`,D=`${J}${X.quoteIdent(r0($,Z,G.parentFields[0]))}`,j=X.quoteIdent(`${z}j`);return{child:Y,source:`${X.quoteIdent(Y.table)} as ${H} join ${X.quoteIdent(G.join.table)} as ${j} on ${j}.${X.quoteIdent(G.join.childColumn)} = ${B}`,correlation:`${j}.${X.quoteIdent(G.join.parentColumn)} = ${D}`,qualifier:W}}function r0($,Z,X){let z=$.fields[X];if(!z)throw new p($.name,Z.name,`it joins on '${X}', which is not a field on ${$.name}.`);return z.column}function y($,Z,X){let z=a0($);if(typeof Z!=="object"||Z===null||Array.isArray(Z))throw s5($,X,z);let J=Object.keys(Z).filter((Y)=>Z[Y]!==void 0),V=Z;for(let Y of z){if(Y.length===1&&J.includes(Y[0]))return c5($,X,Y[0],V[Y[0]]),Y;let G=Y.join("_");if(Y.length>1&&J.includes(G)){let H=V[G];if(H&&typeof H==="object"&&!Array.isArray(H))for(let W of Y)c5($,X,`${G}.${W}`,H[W]);return Y}}throw s5($,X,z)}function A3($){if($===null||$===void 0)return!1;let Z=typeof $;if(Z!=="object")return Z!=="function"&&Z!=="symbol";if(Array.isArray($))return!1;if($ instanceof Date||ArrayBuffer.isView($))return!0;let X=Object.getPrototypeOf($);return X!==Object.prototype&&X!==null}function c5($,Z,X,z){if(z===void 0||A3(z))return;throw new I(`${Z.argument}.${X}`,Z.model,Z.operation,`A unique key takes a plain value to match, not ${z===null?"null":Array.isArray(z)?"an array":"a filter object"}. Use findFirst/findMany (or updateMany/deleteMany) to filter on ${$.name}.${X.split(".").pop()}.`)}function b3($,Z,X){y($,Z,{model:$.name,operation:X,argument:"where"})}function a0($){let Z=[];if($.primaryKey.length>0)Z.push($.primaryKey);for(let X of $.uniques)Z.push(X);return Z}function s5($,Z,X){let z=X.map((Y)=>Y.length===1?Y[0]:Y.join("_")).join(", "),V=Z.argument.startsWith("data.")?`Name it by one of those, or reach it through the ${$.name} model directly.`:`Use ${Z.operation==="delete"||Z.operation==="update"?`${Z.operation}Many`:"findFirst"} to query on anything else.`;return new _(Z.argument,Z.model,Z.operation,`${$.name} needs a unique field here. It declares: ${z}. ${V}`)}function g($,Z,X){let z=Z.castParameter($);if(!z)return s(X);return s((J,V)=>{let Y=X(J,V);if(Y===null||Y===void 0)return null;let G=f(Y);if(G==="db")return null;if(G==="json")return"null";if(G==="any")throw Error("gemi ORM bug: Prisma.AnyNull reached the parameter binder. It is a filter operand only, and both the filter and write paths are supposed to have handled it before this point.");return JSON.stringify(Y)},z)}function v($,Z,X,z){if(Z===void 0||Z===null)return null;if(typeof Z!=="object"||Array.isArray(Z))throw new I("where",$.name,X.operation,"Expected an object.");let J=[];for(let V of Object.keys(Z).sort()){let Y=Z[V];if(Y===void 0)continue;let G=(W)=>z(W)?.[V];if(V==="AND"||V==="OR"){let W=i5($,Y,X,G,V);if(W)J.push(W);continue}if(V===$0){J.push(d4($,Y,X,G));continue}if(V==="NOT"){let W=i5($,Y,X,G,"AND");if(W)J.push(T(P("not "),A0(W)));continue}if(V in $.relations){let W=u4($,$.relations[V],Y,X,G);if(W)J.push(W);continue}let H=$.fields[V];if(!H){let W=p4($,V,Y,X,G);if(W){J.push(W);continue}throw new k(V,$.name,Object.keys($.fields))}J.push(k3($,H,Y,X,G))}if(J.length===0)return null;if(J.length===1)return J[0];return l(J," and ")}function u4($,Z,X,z,J){let V=n5(Z.kind),Y=m4($,Z,X,V,z),G=z.relationDepth??0,H=z.dialect,W=z.qualifier??`${H.quoteIdent($.table)}.`,M=L0($,Z,H,`_r${G}`,W,z.operation),B=M.child,D=P(M.correlation),j={...z,qualifier:M.qualifier,relationDepth:G+1},C=[];for(let Q of V){if(!(Q in Y))continue;let R=Y[Q],S=(U)=>Y.direct?J(U):J(U)?.[Q];if(R===null){C.push(q3(M,D,null,Q==="is"));continue}let K=v(B,R,j,S);if(Q==="every"){if(!K)continue;C.push(q3(M,D,T(P("not "),A0(K)),!0));continue}let L=Q==="none"||Q==="isNot";C.push(q3(M,D,K,L))}if(C.length===0)return null;if(C.length===1)return C[0];return l(C," and ")}function q3($,Z,X,z){let J=[P(`${z?"not ":""}exists (select 1 from ${$.source} where `),Z];if(X)J.push(P(" and "),X);return J.push(P(")")),T(...J)}function m4($,Z,X,z,J){let V=`where.${Z.name}`,Y=Z.kind==="many";if(X===null){if(Y)throw new _(V,$.name,J.operation,`${Z.name} is a to-many relation, so null is not a filter for it. Use { none: {} } for "has no related rows".`);return{is:null,direct:!0}}if(typeof X!=="object"||Array.isArray(X))throw new I(V,$.name,J.operation,Y?`Expected an object holding ${z.join(", ")}.`:"Expected an object, or null.");if(l5(X,z))return X;if(Y)throw new _(V,$.name,J.operation,`Expected one of ${z.join(", ")}. A to-many relation has no `+"single reading of a bare filter \u2014 { some: \u2026 } and { every: \u2026 } mean "+"different things.");return{is:X,direct:!0}}function p4($,Z,X,z,J){let V=a0($).find((H)=>H.length>1&&H.join("_")===Z);if(!V)return null;if(typeof X!=="object"||X===null||Array.isArray(X))throw new I(`where.${Z}`,$.name,z.operation,`Expected an object holding ${V.join(" and ")}.`);let Y=X,G=[];for(let H of V){if(Y[H]===void 0)throw new _(`where.${Z}`,$.name,z.operation,`Missing '${H}'. A composite key needs all of ${V.join(", ")}.`);if(!A3(Y[H]))throw new I(`where.${Z}.${H}`,$.name,z.operation,`A composite key takes a plain value for each of ${V.join(", ")}, not a filter, an array or null.`);G.push(k3($,$.fields[H],Y[H],z,(W)=>J(W)?.[H]))}return G.length===1?G[0]:l(G," and ")}function i5($,Z,X,z,J){let V=[];if(Array.isArray(Z))for(let Y=0;Y<Z.length;Y++){let G=v($,Z[Y],X,(H)=>z(H)?.[Y]);if(G)V.push(G)}else{let Y=v($,Z,X,z);if(Y)V.push(Y)}if(V.length===0)return J==="AND"?null:o5;if(V.length===1)return V[0];return l(V,J==="AND"?" and ":" or ")}var o5=P("false");function l($,Z){return T(P("("),E($,Z),P(")"))}function A0($){return $.text.startsWith("(")?$:l([$],"")}var x3=new Set(["equals","not","in","notIn","lt","lte","gt","gte","contains","startsWith","endsWith","mode"]),t5={lt:"<",lte:"<=",gt:">",gte:">="},$0="$compositeIn",r5=Symbol("gemi.orm.compositeInFromPlanner");function a5($,Z){return{[r5]:!0,fields:$,values:Z}}function d4($,Z,X,z){let{dialect:J}=X,Y=c4($,Z,X).map((H)=>{let W=$.fields[H];if(!W)throw new k(H,$.name,Object.keys($.fields));return W}),G=Y.map((H)=>`${X.qualifier??""}${J.quoteIdent(H.column)}`);return J.compositeIn(G,Y.map((H)=>H.type),(H)=>z(H).values)}function c4($,Z,X){let z=()=>{throw new k($0,$.name,Object.keys($.fields))};if(typeof Z!=="object"||Z===null||Array.isArray(Z))return z();if(Z[r5]!==!0)return z();let J=(G)=>{throw new _($0,$.name,X.operation,G)},{fields:V,values:Y}=Z;if(!Array.isArray(V)||V.length===0)return J(`the planner built a '${$0}' with no fields.`);if(!V.every((G)=>typeof G==="string"))return J(`the planner built a '${$0}' with a non-string field.`);if(!Array.isArray(Y))return J(`the planner built a '${$0}' with no values.`);if(!Y.every((G)=>Array.isArray(G)&&G.length===V.length))return J(`the planner built a '${$0}' whose tuples do not all have ${V.length} value(s).`);return V}var s4=["equals","has","hasEvery","hasSome","isEmpty"],E3=new Set(s4);function i4($,Z,X,z,J,V){let{dialect:Y}=J;if(R0($,Z,`where.${Z.name}`,J.operation,Y),Array.isArray(z))throw new I(`where.${Z.name}`,$.name,J.operation,`'${Z.name}' is a scalar list, and a bare array is not a filter on `+"one \u2014 Prisma rejects it here too. Say which comparison you mean: "+`{ ${Z.name}: { equals: [...] } } for the whole list, or { ${Z.name}: { hasEvery: [...] } } for "contains all of these". A bare array *is* accepted as a value in \`data\`.`);if(!f3(z))throw new I(`where.${Z.name}`,$.name,J.operation,`'${Z.name}' is a scalar list. Expected an object holding ${[...E3].sort().join(", ")}; received ${z===null?"null":typeof z}.`);let G=z,H=[];for(let W of Object.keys(G).sort()){let M=G[W];if(M===void 0)continue;if(!E3.has(W))throw new I(`where.${Z.name}.${W}`,$.name,J.operation,`'${Z.name}' is a scalar list, and a list filter takes ${[...E3].sort().join(", ")}. The scalar operators \u2014 `+`${[...x3].sort().join(", ")} \u2014 apply to a single value and `+"Prisma does not offer them here.");let B=(D)=>V(D)?.[W];H.push(n4($,Z,X,W,M,J,B))}if(H.length===0)return P("true");if(H.length===1)return H[0];return l(H," and ")}function n4($,Z,X,z,J,V,Y){let{dialect:G}=V;if(z==="equals")return l4($,Z,X,J,V,Y);if(z==="isEmpty"){if(typeof J!=="boolean")throw new I(`where.${Z.name}.isEmpty`,$.name,V.operation,`Expected true or false, received ${J===null?"null":typeof J}.`);return G.listIsEmpty(X,J)}if(z==="has"){let W=o4(Z);return G.listHas(X,g(W,G,T0(W,G,Y)))}if(!Array.isArray(J))throw new I(`where.${Z.name}.${z}`,$.name,V.operation,`Expected an array, received ${J===null?"null":typeof J}.`);let H=g(Z,G,T0(Z,G,Y));return z==="hasEvery"?G.listHasEvery(X,H):G.listHasSome(X,H)}function l4($,Z,X,z,J,V){let{dialect:Y}=J;if(z===null)return P(`${X} is null`);if(!Array.isArray(z))throw new I(`where.${Z.name}.equals`,$.name,J.operation,`'${Z.name}' is a scalar list, so it compares against an array. Received ${typeof z}. For "is this element present", use { ${Z.name}: { has: \u2026 } }.`);return T(P(`${X} = `),g(Z,Y,T0(Z,Y,V)))}function o4($){return{...$,isList:!1}}function R0($,Z,X,z,J){if(J.listFilters.size>0)return;throw new _(X,$.name,z,`'${Z.name}' is a scalar list, and ${J.name} has no array type to hold one. Prisma refuses the column itself on ${J.name} \u2014 `+'"the current connector does not support lists of primitive types" \u2014 so '+`this is a difference between the databases rather than a gap in the ORM. The generated artifact is dialect-agnostic, which is why this surfaces here rather than at \`prisma generate\`: the schema was generated against Postgres and DATABASE_URL names a ${J.name} database, which has no '${Z.column}' column either. It works on postgres.`)}var t4=["equals","not","string_contains","string_starts_with","string_ends_with","array_contains","lt","lte","gt","gte"],w3=new Set(t4),r4=["has_key","has_some_keys","has_every_key"],e0=new Set(r4);function e5($,Z,X,z,J,V,Y,G){let H=z!=="has_key",W=`where.${Z.name}.${z}`,M=(D)=>{if(!(H?Array.isArray(D)&&D.every((C)=>typeof C==="string"):typeof D==="string"))throw new I(W,$.name,V.operation,H?"Expected an array of key names, like ['a', 'b'].":"Expected a key name, like 'a'.");return D};M(J);let B=(D,j)=>M(G(D,j));return V.dialect.jsonHasKeys(X,Y,B,z==="has_key"?"one":z==="has_some_keys"?"some":"every",Array.isArray(J)?J.length:0)}function a4($,Z,X,z,J,V){let{dialect:Y}=J;if(Z.type!=="Json")throw new _(`${Z.name}.path`,$.name,J.operation,`A 'path' filter reads inside a JSON document, and '${Z.name}' is a ${Z.type} column.`);X7($,Z,z.path,J);let G=(M)=>V(M)?.path,H=Object.keys(z).filter((M)=>M!=="path"&&z[M]!==void 0).sort();if(H.length===0)throw new _(`${Z.name}.path`,$.name,J.operation,`A 'path' needs a filter beside it \u2014 ${[...w3,...e0].sort().join(", ")}. Prisma refuses a bare path too.`);let W=[];for(let M of H){if(e0.has(M)){W.push(e5($,Z,X,M,z[M],J,G,(j)=>V(j)?.[M]));continue}if(!w3.has(M))throw new _(`${Z.name}.${M}`,$.name,J.operation,`A JSON path filter takes ${[...w3,...e0].sort().join(", ")}.`);if(!Y.jsonFilters.has(M))throw new _(`${Z.name}.${M}`,$.name,J.operation,`'${M}' on a JSON path is not available on ${Y.name}. Prisma refuses it here too, so this is a difference between the databases rather than a gap in the ORM. It works on postgres.`);let B=z[M],D=B===null?"json":f(B);if(D&&(M==="equals"||M==="not")){W.push(e4(D,X,G,Z,Y,M==="not"));continue}if(D&&B!==null){let j=M==="array_contains"?"'array_contains' tests containment against a document, and a sentinel is not one":`'${M}' compares an extracted value against a scalar, and a sentinel is not one`;throw new I(`where.${Z.name}.${M}`,$.name,J.operation,`${b0(D)} asks which kind of null a value is, which `+`only 'equals' and 'not' can express \u2014 ${j}. Prisma refuses it under this operator too. Write { ${Z.name}: { path: [\u2026], equals: ${b0(D)} } }, `+"or filter the column itself \u2014 "+`{ ${Z.name}: { equals: ${b0(D)} } }.`)}if($9(B))throw new I(`where.${Z.name}.${M}`,$.name,J.operation,"Prisma.AnyNull is a question rather than a value \u2014 'either kind of "+"null' \u2014 so it cannot appear inside a document. Ask it directly: "+`{ ${Z.name}: { path: [\u2026], equals: Prisma.AnyNull } }.`);$7(M,B,$,Z,J),W.push(Z7(M,X,G,Z,Y,(j)=>V(j)?.[M]))}return W.length===1?W[0]:l(W," and ")}function e4($,Z,X,z,J,V){let Y=()=>T(J.jsonValueAt(Z,X),P(V?" is not null":" is null")),G=()=>T(J.jsonValueAt(Z,X),P(V?" <> ":" = "),g(z,J,()=>J.encode(v3,z)));if($==="db")return Y();if($==="json")return G();return l([G(),Y()],V?" and ":" or ")}function $7($,Z,X,z,J){let V=$==="string_contains"||$==="string_starts_with"||$==="string_ends_with";if(V&&typeof Z!=="string")throw new I(`where.${z.name}.${$}`,X.name,J.operation,`Expected a string, received ${Z===null?"null":typeof Z}. Prisma raises here too \u2014 without this the pattern becomes `+`'%${String(Z)}%', which runs and returns the wrong rows.`);if(Z===null)throw new I(`where.${z.name}.${$}`,X.name,J.operation,$==="array_contains"?"null cannot be tested for containment through a JSON path: the operand binds as SQL NULL rather than as the JSON value, and "+"'x @> NULL' is NULL rather than true \u2014 the query would run and "+`match nothing. A null *inside* the document is an ordinary value and still compiles: { ${z.name}: { path: [\u2026], array_contains: [null] } }.`:`null cannot be compared through a JSON path with '${$}', which `+"compares the extracted value as a number \u2014 the comparison against "+`NULL is NULL rather than true, so the query would run and match nothing. Prisma refuses it here too. For "the value at this path is a JSON null", use equals or not: { ${z.name}: { path: [\u2026], equals: null } }.`);if($==="array_contains"||V)return;if(typeof Z==="object")throw new _(`where.${z.name}.${$}`,X.name,J.operation,`'${$}' on a JSON path compares the extracted value as a scalar, so `+"an object or array operand cannot be expressed \u2014 it would bind as "+`'${String(Z)}' and match nothing. Prisma accepts one here; gemi does not yet. Use array_contains for containment, or narrow the path until it names a scalar.`)}function Z7($,Z,X,z,J,V){if($==="array_contains")return J.jsonArrayContains(Z,X,V);let Y=$==="string_contains"||$==="string_starts_with"||$==="string_ends_with",G=J.jsonExtract(Z,X,!0);if(Y){let B=$==="string_contains"?(D)=>`%${D}%`:$==="string_starts_with"?(D)=>`${D}%`:(D)=>`%${D}`;return T(P("("),G,P(") like "),s((D,j)=>{let C=V(D,j);return C===null||C===void 0?null:B(String(C))}))}let H=$==="equals"?"=":$==="not"?"<>":t5[$],W=$!=="equals"&&$!=="not",M=W?T(P("cast(("),G,P(") as real)")):T(P("("),G,P(")"));return T(M,P(` ${H} `),s((B,D)=>{let j=V(B,D);if(j===null||j===void 0)return null;if(W)return Number(j);return J.jsonComparesAsText?String(j):j}))}function X7($,Z,X,z){let{dialect:J}=z,V=J.jsonPathSyntax==="array"?"array":"jsonpath",Y=Array.isArray(X)?"array":typeof X==="string"?"jsonpath":"other";if(Array.isArray(X)&&X.length===0||X==="")throw new _(`${Z.name}.path`,$.name,z.operation,`A JSON path cannot be empty. ${J.jsonPathSyntax==="array"?`On ${J.name} an empty array selects the whole document, `+"which is a filter on the column rather than on a path \u2014 write "+`{ ${Z.name}: { equals: \u2026 } } if that is what you meant.`:`On ${J.name} an empty string raises inside json_extract.`}`);if(Y===V){if(V!=="array")return;let H=X.findIndex((B)=>typeof B!=="string");if(H===-1)return;let W=X[H],M=W===null?"null":W===void 0?"undefined":Array.isArray(W)?"an array":typeof W==="object"?"an object":`a ${typeof W}`;throw new _(`${Z.name}.path`,$.name,z.operation,`A JSON path is an array of strings, and path[${H}] is ${M}. `+(typeof W==="number"?'An array index is a key too \u2014 write ["items", "0"] rather than '+`["items", 0]; it reaches the same element, because ${J.name} takes the path as text. Prisma's path is string[] and its client refuses a number here too.`:"Prisma's path is string[] too."))}throw new _(`${Z.name}.path`,$.name,z.operation,J.jsonPathSyntax==="array"?`On ${J.name} a JSON path is an array of keys \u2014 ["a", "b"] \u2014 `+"not a JSONPath string. Prisma splits them the same way, and refuses the other form on each database.":`On ${J.name} a JSON path is a JSONPath string \u2014 "$.a.b" \u2014 not `+"an array of keys. Prisma splits them the same way, and refuses the other form on each database.")}function k3($,Z,X,z,J){let{dialect:V}=z,Y=`${z.qualifier??""}${V.quoteIdent(Z.column)}`,G=f(X);if(G)throw new I(`where.${Z.name}`,$.name,z.operation,`${b0(G)} is not a filter on `+"its own \u2014 Prisma rejects it here too. Write it as an explicit "+`comparison: { ${Z.name}: { equals: ${b0(G)} } }.`);if(Z.isList)return i4($,Z,Y,X,z,J);if(!f3(X))return $3(Y,Z,X,V,J);let H=X,W=Object.keys(H).sort();if(H.path!==void 0)return a4($,Z,Y,H,z,J);let M=H.mode==="insensitive";if(H.mode!==void 0&&H.mode!=="default"){if(!M)throw new I(`mode: ${JSON.stringify(H.mode)}`,$.name,z.operation,"Prisma takes 'default' or 'insensitive'.");if(!V.supportsInsensitiveMode)throw new _('mode: "insensitive"',$.name,z.operation,`The ${V.name} dialect cannot express it \u2014 Prisma rejects it `+"here too. Note SQLite's LIKE is already case-insensitive for ASCII.")}let B=[];for(let D of W){let j=H[D];if(j===void 0||D==="mode")continue;if(Z.type==="Json"&&e0.has(D)){B.push(e5($,Z,Y,D,j,z,void 0,(Q)=>J(Q)?.[D]));continue}if(!x3.has(D))throw new I(`where.${Z.name}.${D}`,$.name,z.operation,`A scalar filter takes ${[...x3].sort().join(", ")}.`);if(D!=="equals"&&D!=="not"&&$9(j))throw new I(`where.${Z.name}.${D}`,$.name,z.operation,`Prisma.AnyNull means 'either kind of null', which only 'equals' and 'not' can express. Write { ${Z.name}: { equals: Prisma.AnyNull } }, or name the one you mean with Prisma.DbNull or Prisma.JsonNull.`);let C=(Q)=>J(Q)?.[D];switch(D){case"equals":B.push($3(Y,Z,j,V,C));break;case"not":B.push(z7($,Z,j,z,C,Y));break;case"in":case"notIn":B.push(Y7($,Y,Z,j,z,C,D==="notIn"));break;case"lt":case"lte":case"gt":case"gte":B.push(T(P(`${Y} ${t5[D]} `),g(Z,V,T0(Z,V,C))));break;case"contains":case"startsWith":case"endsWith":if(typeof j!=="string")throw new I(`where.${Z.name}.${D}`,$.name,z.operation,`Expected a string, received ${j===null?"null":typeof j}.`);if(Z.type!=="String")throw new _(`where.${Z.name}.${D}`,$.name,z.operation,`'${Z.name}' is a ${Z.type}, and ${D} only applies to strings.`);B.push(V.like(Y,M,V7(D,C)));break}}if(B.length===0)return P("true");if(B.length===1)return B[0];return l(B," and ")}function b0($){return`Prisma.${$==="db"?"DbNull":$==="json"?"JsonNull":"AnyNull"}`}function $9($){if(f($)==="any")return!0;return Array.isArray($)&&$.some((Z)=>f(Z)==="any")}function z7($,Z,X,z,J,V){if(X===null||f(X)==="db")return P(`${V} is not null`);if(f(X)==="json")return T(P("not "),A0($3(V,Z,X,z.dialect,J)));if(f(X)==="any")return T(P("not "),A0($3(V,Z,X,z.dialect,J)));if(!f3(X))return T(P(`${V} <> `),g(Z,z.dialect,T0(Z,z.dialect,J)));let Y=k3($,Z,X,z,J);return T(P("not "),A0(Y))}function $3($,Z,X,z,J){if(X===null||f(X)==="db")return P(`${$} is null`);if(f(X)==="any")return l([P(`${$} is null`),J7($,Z,z)]," or ");return T(P(`${$} = `),g(Z,z,T0(Z,z,J)))}function J7($,Z,X){return T(P(`${$} = `),g(Z,X,()=>X.encode(v3,Z)))}function Y7($,Z,X,z,J,V,Y){let{dialect:G}=J;if(!Array.isArray(z))throw new I(`where.${X.name}.${Y?"notIn":"in"}`,$.name,J.operation,"Expected an array.");if(z.length===0)return Y?P("true"):o5;return G.inList(Z,Y,z.length,(H)=>{return V(H).map((M)=>G.encode(M,X))})}function V7($,Z){return(X)=>{let z=String(Z(X));if($==="contains")return`%${z}%`;if($==="startsWith")return`${z}%`;return`%${z}`}}function T0($,Z,X){return(z)=>Z.encode(X(z),$)}function f3($){return typeof $==="object"&&$!==null&&!Array.isArray($)&&!($ instanceof Date)&&!ArrayBuffer.isView($)}function Z9($,Z,X,z,J,V,Y){let G=`orderBy.${Z.name}`;if(typeof X!=="object"||X===null||Array.isArray(X))throw new I(G,$.name,z,Z.kind==="many"?'Expected { _count: "asc" | "desc" }.':`Expected an object naming one field of ${Z.model}.`);let H=X,W=Object.keys(H).filter((Q)=>Q!=="where");if(W.length!==1)throw new _(G,$.name,z,W.length===0?"Name the field to order by.":`Name exactly one field to order by; got ${W.join(", ")}. `+"Order by several with an array: [{ a: \u2026 }, { b: \u2026 }].");let[M]=W,B=L0($,Z,J,`_o${Y}`,`${J.quoteIdent($.table)}.`,z),D=H7($,Z,B.child,M,H[M],z,B.qualifier,J),j=v(B.child,H.where,{dialect:J,operation:z,qualifier:B.qualifier},(Q)=>V(Q)?.where),C=[P(`(select ${D.expression} from ${B.source} where ${B.correlation}`)];if(j)C.push(P(" and "),j);return C.push(P(")")),{expression:T(...C),direction:D.direction,nulls:D.nulls}}function H7($,Z,X,z,J,V,Y,G){let H=`orderBy.${Z.name}.${z}`,{direction:W,nulls:M}=G7($,H,J,V);if(z===i){if(Z.kind!=="many")throw new _(H,$.name,V,`${Z.name} is a to-one relation, so its count is 0 or 1. Order by one of ${X.name}'s fields instead.`);return{expression:"count(*)",direction:W,nulls:M}}if(Z.kind==="many")throw new _(H,$.name,V,`${Z.name} is a to-many relation, so ordering by '${z}' has no single answer for a parent with several children. Only `+"{ _count: \u2026 } is supported.");let B=X.fields[z];if(!B)throw new _(H,$.name,V,`'${z}' is not a field on ${X.name}. Known fields: ${Object.keys(X.fields).join(", ")}.`);return{expression:`${Y}${G.quoteIdent(B.column)}`,direction:W,nulls:M}}function G7($,Z,X,z){if(X==="asc"||X==="desc")return{direction:X};if(typeof X==="object"&&X!==null){let{sort:J,nulls:V}=X;if(J!=="asc"&&J!=="desc")throw new I(Z,$.name,z,'Expected "asc" or "desc".');if(V===void 0)return{direction:J};if(V!=="first"&&V!=="last")throw new _(`${Z}.nulls`,$.name,z,'Expected "first" or "last".');return{direction:J,nulls:V}}throw new _(Z,$.name,z,'Expected "asc", "desc", or { sort, nulls }.')}var W7=new Set(["asc","desc"]),M7=new Set(["first","last"]);function H0($,Z,X,z){if(Z===void 0||Z===null)return[];let J=Array.isArray(Z),V=J?Z:[Z],Y=[];for(let G=0;G<V.length;G++){let H=V[G],W=(M)=>{let B=z?.locate(M);return J?B?.[G]:B};if(typeof H!=="object"||H===null)throw new I("orderBy",$.name,X,"Expected an object or an array of objects.");for(let[M,B]of Object.entries(H)){if(B===void 0)continue;if(M in $.relations){if(!z)throw new _(`orderBy.${M}`,$.name,X,"Ordering by a relation is not implemented here.");let j=Z9($,$.relations[M],B,X,z.dialect,(C)=>W(C)?.[M],Y.length);Y.push({column:M,direction:j.direction,...j.nulls?{nulls:j.nulls}:{},expression:j.expression});continue}let D=$.fields[M];if(!D)throw new k(M,$.name,Object.keys($.fields));Y.push({column:D.column,...X9($,M,B,X)})}}return Y}function X9($,Z,X,z){if(typeof X==="string"){if(!W7.has(X))throw new I(`orderBy.${Z}: ${JSON.stringify(X)}`,$.name,z,'Expected "asc" or "desc".');return{direction:X}}if(typeof X==="object"&&X!==null){let{sort:J,nulls:V}=X,Y=X9($,Z,J,z).direction;if(V===void 0)return{direction:Y};if(typeof V!=="string"||!M7.has(V))throw new _(`orderBy.${Z}.nulls: ${JSON.stringify(V)}`,$.name,z,'Expected "first" or "last".');return{direction:Y,nulls:V}}throw new _(`orderBy.${Z}`,$.name,z,'Expected "asc", "desc", or { sort, nulls }.')}function Z3($){return $.map((Z)=>({...Z,direction:Z.direction==="asc"?"desc":"asc",...Z.nulls?{nulls:Z.nulls==="first"?"last":"first"}:{}}))}function o($,Z,X){if($.length===0)return null;return E($.map((z)=>{let J=` ${z.direction}`+(z.nulls?` nulls ${z.nulls}`:"");if(z.expression)return E([z.expression,P(J)],"");return P(`${X??""}${Z.quoteIdent(z.column)}${J}`)}),", ")}function X3($,Z,X,z,J){if(typeof J!=="number"||!Number.isInteger(J))throw new I(X,$,Z,`Expected an integer, got ${JSON.stringify(J)}.`);if(z==="skip"&&J<0)throw new I(X,$,Z,"A 'skip' counts rows to pass over, so it cannot be negative. Prisma rejects one too.")}function B0($,Z,X,z,J,V=!1){if(X?.take!==void 0)X3($.name,Z,"take","take",X.take);if(X?.skip!==void 0)X3($.name,Z,"skip","skip",X.skip);let Y=V?1:X?.take,G=X?.skip,H=J;if((Y!==void 0||G!==void 0)&&H.length===0&&!V)H=$.primaryKey.map((j)=>({column:$.fields[j]?.column??j,direction:"asc"}));let M=typeof Y==="number"&&Y<0;if(M)H=Z3(H);let B=Y===void 0?null:V?()=>1:(j)=>Math.abs(Number(j?.take)),D=G===void 0?null:(j)=>Number(j?.skip);return{clause:z.paginate(B,D),terms:H,reversed:M}}function Z0($,Z,X){let z=Z?.select,J=Z?.omit;if(z!==void 0&&Z?.include!==void 0)throw new _("select + include",$.name,X,"Prisma allows only one of them on the same query.");if(z!==void 0&&J!==void 0)throw new _("select + omit",$.name,X,"'select' names what to keep and 'omit' what to drop, so the two describe different column lists. Prisma allows only one of them on "+"the same query. Drop the 'omit' \u2014 a 'select' already excludes "+"everything it does not name.");if(z===void 0||z===null)return B7($,J,X);if(typeof z!=="object"||Array.isArray(z))throw new I("select",$.name,X,"Expected an object.");let V=[];for(let[G,H]of Object.entries($.fields))if(z[G]===!0)V.push(H);let Y=0;for(let G of Object.keys(z)){let H=z[G];if(H===void 0)continue;if(G in $.relations){if(H!==!1)Y++;continue}if(G===i){if(H!==!1)Y++;continue}if(!(G in $.fields))throw new k(G,$.name,Object.keys($.fields));if(typeof H!=="boolean")throw new I(`select.${G}`,$.name,X,"Expected true or false.")}if(V.length===0&&Y===0)throw new _("select",$.name,X,"At least one field must be selected.");return V}function B7($,Z,X){if(Z===void 0||Z===null)return Object.values($.fields);if(typeof Z!=="object"||Array.isArray(Z))throw new I("omit",$.name,X,"Expected an object of fields.");let z=new Set;for(let V of Object.keys(Z)){let Y=Z[V];if(Y===void 0)continue;if(V in $.relations)throw new _(`omit.${V}`,$.name,X,`'${V}' is a relation, not a column. A relation is already absent unless an 'include' asks for it.`);if(!(V in $.fields))throw new k(V,$.name,Object.keys($.fields));if(typeof Y!=="boolean")throw new I(`omit.${V}`,$.name,X,"Expected true or false.");if(Y)z.add(V)}let J=Object.values($.fields).filter((V)=>!z.has(V.name));if(J.length===0)throw new _("omit",$.name,X,`It omits every field on ${$.name}, which leaves no column to select. Prisma rejects that too.`);return J}function z3($,Z,X){if(X.length===0)return{fields:Z};let z=new Set(Z.map((Y)=>Y.name)),J=X.filter((Y)=>!z.has(Y));if(J.length===0)return{fields:Z};let V=new Set([...z,...J]);return{fields:Object.values($.fields).filter((Y)=>V.has(Y.name)),hidden:J}}var z9=new Set(["where","orderBy","select","omit","include","take","skip"]),J9=new Set(["where","select","omit","include"]),V3=10;function v0($){return[...new Set($.map((Z)=>Z.strategy))].sort()}function U0($,Z,X,z,J=W0){let V=k0($,Z,z);if(V.length===0)return{plans:[],keyFields:[]};let Y=[],G=new Set;for(let H of V){M9($,H,z);let W=j9($,H);B9(W,H.node,z,2);let M=J.plan({parent:$,child:W,relation:H.relation,as:H.as,node:H.node,locate:H.locate,dialect:X,operation:z});Y.push(M);for(let B of M.parentFields)G.add(B)}return{plans:Y,keyFields:[...G]}}async function H3($,Z,X,z,J){let V=Array.isArray(X)?X:X===null||X===void 0?[]:[X];if(V.length===0)return;for(let Y of $){if(Y.root)continue;await Y.load(V,z,J)}if(Z&&Z.length>0)for(let Y of V)for(let G of Z)delete Y[G]}function k0($,Z,X){if(Z===void 0||Z===null)return[];let{include:z,select:J}=Z;W9($,z,J,X);let V=[];if(z!==void 0&&z!==null){if(typeof z!=="object"||Array.isArray(z))throw new I("include",$.name,X,"Expected an object.");for(let Y of Object.keys(z).sort()){let G=z[Y];if(G===void 0||G===!1)continue;if(Y===i)continue;let H=$.relations[Y];if(!H)throw new w0(Y,$.name,Object.keys($.relations));V.push({as:Y,relation:H,node:G,locate:(W)=>W?.include?.[Y]})}return V}if(J!==void 0&&J!==null&&typeof J==="object")for(let Y of Object.keys(J).sort()){let G=J[Y];if(G===void 0||G===!1)continue;let H=$.relations[Y];if(!H)continue;V.push({as:Y,relation:H,node:G,locate:(W)=>W?.select?.[Y]})}return V}function W9($,Z,X,z,J){if(Z===void 0||X===void 0)return;throw new _(J?`${J}: select + include`:"select + include",$.name,z,"Prisma allows only one of them on the same query, at any level.")}function M9($,Z,X){let z=Z.node;if(z===!0)return;if(typeof z!=="object"||z===null||Array.isArray(z))throw new I(Z.as,$.name,X,"Expected true or an object of relation arguments.");let J=z;W9($,J.include,J.select,X,Z.as);let V=Z.relation.kind==="many";for(let Y of Object.keys(J).sort()){if(J[Y]===void 0)continue;if(V&&(Y==="take"||Y==="skip")){D7($,Z,X,Y,J[Y]);continue}if(V?z9.has(Y):J9.has(Y))continue;if(Y==="lock")throw new E0(`${Z.as}.lock`,$.name,X,"'lock' locks the rows of the model being queried, not an included relation's. Lock the related rows with their own locking read in the same transaction.");if(Y==="orderBy"&&!V)throw new _(`${Z.as}.orderBy`,$.name,X,"Prisma does not accept 'orderBy' on a to-one relation \u2014 there is at "+"most one row to order.");if(Y==="take"||Y==="skip")throw new _(`${Z.as}.${Y}`,$.name,X,`Prisma does not accept '${Y}' on a to-one relation.`);throw new _(`${Z.as}.${Y}`,$.name,X,`A relation node takes ${[...V?z9:J9].sort().join(", ")}.`)}}function D7($,Z,X,z,J){X3($.name,X,`${Z.as}.${z}`,z,J)}function u3($,Z){let X=$.node;if(typeof X!=="object"||X===null||Array.isArray(X))return;for(let z of["take","skip"]){if(X[z]===void 0)continue;throw new _(`${$.as}.${z}`,$.parent.name,$.operation,`A '${z}' inside a to-many relation is per parent, and the batched `+"relation planner serves every parent from one query \u2014 so the only "+`limit it could emit would page every parent's children as one set. Only the lateral join strategy can express it, by paginating inside a subquery that already runs once per parent row, and it needs Postgres: ${Z}. Load '${$.as}' as its own query, or narrow it with 'where'.`)}}function B9($,Z,X,z){if(typeof Z!=="object"||Z===null||Array.isArray(Z))return;if(Z.select!==void 0)Z0($,Z,X);let J=k0($,Z,X);if(J.length===0)return;if(z>V3)throw new g3($.name,V3);for(let V of J)M9($,V,X),B9(j9($,V),V.node,X,z+1)}function D9($,Z,X,z){if($.parentFields.length!==1)throw new _(X.name,Z.name,z,`${X.name} joins on ${$.parentFields.length} fields (${$.parentFields.join(", ")}), and it is planned through a join table, which links two models by a single primary key each side. Prisma does not build an implicit many-to-many over a composite key.`);return{parentField:$.parentFields[0],childField:$.childFields[0],join:$.join}}function V0($,Z,X,z){if(X.joinTable)return P7($,Z,X);if(X.from.length>0)return Y9($,X,X.from,X.to,z);let J=j7($,Z,X);if(J.from.length===0)throw new p($.name,X.name,`neither ${$.name}.${X.name} nor ${Z.name}.${J.name} holds the foreign key.`);return Y9($,X,J.to,J.from,z)}function Y9($,Z,X,z,J){if(X.length===0)throw new _(Z.name,$.name,J,`${Z.name} names no join fields.`);if(X.length!==z.length)throw new p($.name,Z.name,`it joins ${X.length} field(s) to ${z.length}: ${X.join(", ")} against ${z.join(", ")}.`);return{parentFields:X,childFields:z}}function j7($,Z,X){let z=Object.values(Z.relations).filter((J)=>J.relationName===X.relationName&&!(Z.name===$.name&&J.name===X.name));if(z.length!==1)throw new p($.name,X.name,z.length===0?`${Z.name} declares no relation named '${X.relationName}'.`:`${Z.name} declares ${z.length} relations named '${X.relationName}'.`);return z[0]}function P7($,Z,X){let{table:z,a:J,b:V}=X.joinTable;if(J===V){let G=X.joinTable.ownerColumn;if(!G)throw new _(X.name,$.name,"include",`${X.name} is a self-referential implicit many-to-many, and the generated artifact predates support for one. Re-run \`prisma generate\`.`);return{parentFields:[J3($,X)],childFields:[J3(Z,X)],join:{table:z,parentColumn:G,childColumn:G==="A"?"B":"A"}}}if($.name!==J&&$.name!==V)throw new p($.name,X.name,`the join table '${z}' connects ${J} and ${V}, neither of which is ${$.name}.`);let Y=$.name===J?"A":"B";return{parentFields:[J3($,X)],childFields:[J3(Z,X)],join:{table:z,parentColumn:Y,childColumn:Y==="A"?"B":"A"}}}function J3($,Z){if($.primaryKey.length!==1)throw new p($.name,Z.name,`an implicit many-to-many joins on ${$.name}'s primary key, which has ${$.primaryKey.length} fields.`);return $.primaryKey[0]}function Y3($,Z,X){let z=$.fields[X];if(!z)throw new p($.name,Z.name,`it joins on '${X}', which is not a field on ${$.name}.`);return z}function j9($,Z){return e($,Z.relation,Z.as)}function e($,Z,X=Z.name){let z=Z.model;if(!D0(z))throw new y3($.name,X,z,G9());let J=G0(z)?.$schema;if(!J)throw new x0(z);return J}var V9="batched",W0={name:V9,plan($){u3($,"this query planned with the batched strategy");let Z=V0($.parent,$.child,$.relation,$.operation);for(let V of Z.parentFields)H9($.parent,$.relation,Y3($.parent,$.relation,V));for(let V of Z.childFields)H9($.child,$.relation,Y3($.child,$.relation,V));let X=Y3($.parent,$.relation,Z.parentFields[0]),z=Y3($.child,$.relation,Z.childFields[0]),J=$.relation.kind==="many";return{as:$.as,model:$.relation.model,kind:$.relation.kind,parentFields:Z.parentFields,strategy:V9,load(V,Y,G){let H={parentKeyField:X,childKeyField:z,many:J,parents:V,args:Y,executor:G};return Z.join?K7($,Z,H):_7($,Z,H)}}}};async function _7($,Z,X){let{keys:z,byKey:J}=K9(X.parents,Z.parentFields);if(z.length===0)return;let V=$.locate(X.args),Y=P9(V,Z.childFields,z,$.child,$.dialect),G=await X.executor.exec($.relation.model,"findMany",Y.args,!0);for(let H of G){let W=J.get(q0(Z.childFields.map((M)=>H[M])));if(!W)continue;for(let M of W)_9(M,$.as,H,X.many)}if(Y.hidden)for(let H of G)for(let W of Z.childFields)delete H[W]}async function K7($,Z,X){let{keys:z,byKey:J}=K9(X.parents,Z.parentFields);if(z.length===0)return;let{dialect:V}=$,Y=Z.join,G=await Q7(V,Y,z.map((j)=>V.encode(j[0],X.parentKeyField)),X.executor),H=new Map,W=[];for(let j of G){let C=q0([V.decode(j[Y.parentColumn],X.parentKeyField)]),Q=J.get(C);if(!Q)continue;let R=V.decode(j[Y.childColumn],X.childKeyField),S=q0([R]),K=H.get(S);if(K===void 0)K=[],H.set(S,K),W.push([R]);for(let L of Q)K.push(L)}if(W.length===0)return;let M=$.locate(X.args),B=P9(M,Z.childFields,W,$.child,$.dialect),D=await X.executor.exec($.relation.model,"findMany",B.args,!0);for(let j of D){let C=H.get(q0([j[Z.childFields[0]]]));if(!C)continue;for(let Q of C)_9(Q,$.as,j,X.many)}if(B.hidden)for(let j of D)delete j[Z.childFields[0]]}async function Q7($,Z,X,z){let J=T(P(`select ${$.quoteIdent(Z.parentColumn)}, ${$.quoteIdent(Z.childColumn)} from ${$.quoteIdent(Z.table)} where `),$.inList($.quoteIdent(Z.parentColumn),!1,X.length,()=>X)),{text:V,binders:Y}=m(J,$,{model:Z.table,operation:"include"}),G=I0();return z.query(V,Y.map((H)=>H(void 0,G)))}function P9($,Z,X,z,J){let V=$===!0||$===null||typeof $!=="object"?{}:$,Y=Z.length===1?{[Z[0]]:{in:X.map((B)=>B[0])}}:C7(z,Z,X,J),G={where:V.where===void 0?Y:{AND:[V.where,Y]}};if(V.orderBy!==void 0)G.orderBy=V.orderBy;if(V.include!==void 0)G.include=V.include;let H=V.omit;if(H!==void 0){let B=Z.filter((D)=>H[D]===!0);if(B.length===0)G.omit=H;else{let D={...H};for(let j of B)delete D[j];return G.omit=D,{args:G,hidden:!0}}}let W=V.select;if(W===void 0)return{args:G,hidden:!1};let M=Z.filter((B)=>W[B]!==!0);if(M.length===0)return G.select=W,{args:G,hidden:!1};G.select={...W};for(let B of M)G.select[B]=!0;return{args:G,hidden:!0}}function C7($,Z,X,z){let J=Z.map((V)=>$.fields[V]?.type);if(J.every((V)=>V!==void 0)&&z.canBindCompositeIn(J))return{[$0]:a5(Z,X)};return{OR:X.map((V)=>Object.fromEntries(Z.map((Y,G)=>[Y,V[G]])))}}function q0($){return JSON.stringify($.map(L7))}function _9($,Z,X,z){if(z){$[Z].push(X);return}if($[Z]===null)$[Z]=X}function K9($,Z){let X=new Map,z=[];for(let J of $){let V=Z.map((H)=>J[H]);if(V.some((H)=>H===null||H===void 0))continue;let Y=q0(V),G=X.get(Y);if(G===void 0)G=[],X.set(Y,G),z.push(V);G.push(J)}return{keys:z,byKey:X}}function L7($){if(typeof $!=="object"||$===null)return $;if($ instanceof Date)return $.getTime();if(ArrayBuffer.isView($)){let Z=new Uint8Array($.buffer,$.byteOffset,$.byteLength),X="";for(let z of Z)X+=z.toString(16).padStart(2,"0");return`bytes:${X}`}throw Error(`Cannot key a relation stitch on ${Object.prototype.toString.call($)}.`)}function H9($,Z,X){if(X.isList)throw new p($.name,Z.name,`it joins on '${X.name}', a ${X.type} list \u2014 which decodes to a new `+"array per row and so cannot be compared between the two sides.");if(X.type!=="Json")return;throw new p($.name,Z.name,`it joins on '${X.name}', a ${X.type} \u2014 which decodes to a new object `+"per row and so cannot be compared between the two sides.")}var Q9=(()=>{try{return Function("return 1")()===1}catch{return!1}})(),C9=!0;function T7($){C9=$}function R7(){return Q9}function f0($,Z,X=[]){if(Q9&&C9)return I7($,Z,X);return m3($,Z,X)}function m3($,Z,X=[]){let z=$.map((G)=>({key:G.name,column:G.column,field:G,decode:Z.needsDecode(G)})),J=z.length,V=X.map((G)=>({key:G.key,many:G.kind==="many"})),Y=V.length;return(G)=>{let H=[];for(let W=0;W<G.length;W++){let M=G[W],B={};for(let D=0;D<J;D++){let j=z[D],C=M[j.column];B[j.key]=j.decode?Z.decode(C,j.field):C??null}for(let D=0;D<Y;D++)B[V[D].key]=V[D].many?[]:null;H.push(B)}return H}}function I7($,Z,X){let z=[];for(let V=0;V<$.length;V++){let Y=$[V],G=JSON.stringify(Y.name),H=JSON.stringify(Y.column);z.push(Z.needsDecode(Y)?`${G}: d.decode(row[${H}], f[${V}])`:`${G}: row[${H}] ?? null`)}for(let V of X)z.push(`${JSON.stringify(V.key)}: ${V.kind==="many"?"[]":"null"}`);let J=`
3
3
  return function shape(rows) {
4
4
  const out = [];
5
5
  for (let i = 0; i < rows.length; i++) {
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{Ga as I}from"../chunk-5stgtwqw.js";import{Ha as W}from"../chunk-tw5kwbx4.js";import{ei as b,gi as V,hi as A,ii as H,ji as O}from"../chunk-zyt2w03d.js";import{ni as k}from"../chunk-1hr4xht1.js";import"../chunk-d9mar37g.js";import{ui as $}from"../chunk-vw8849ys.js";var X=Symbol.for("gemi.server.devGeneration"),L={graceMs:1e4,providerTimeoutMs:5000};class Q{app;inFlight=0;waiters=new Set;constructor(z){this.app=z}track(z){return async(B,J)=>{this.inFlight++;try{return await z(B,J)}finally{if(this.inFlight--,this.inFlight===0)this.wake()}}}get pending(){return this.inFlight}async retire({graceMs:z,providerTimeoutMs:B}){try{await this.idle(z),await Promise.resolve().then(()=>this.app.shutdown({timeoutMs:B}))}catch(J){Z(J)}}idle(z){if(this.inFlight===0)return Promise.resolve();return new Promise((B)=>{let J=()=>{clearTimeout(K),this.waiters.delete(J),B()},K=setTimeout(J,z);this.waiters.add(J)})}wake(){for(let z of this.waiters)z()}}function Y(z,B=L){let J=globalThis,K=J[X];if(J[X]=z,!K||K===z||typeof K.retire!=="function")return Promise.resolve();let _=K.retire.bind(K);return Promise.resolve().then(()=>_(B)).catch(Z)}function Z(z){console.error("[gemi] Shutting down the application a reload replaced failed:",z)}class P{app;instrumentation;handleSignals;server;stopping;settings;constructor(z){this.app=new W({kernel:z.kernel}),this.handleSignals=z.handleSignals??!0,this.instrumentation=H(z.instrumentation??((B,J)=>J(B)))}async start(){process.env.ROOT_DIR=k();let z=Bun.env.NODE_ENV==="production";if(z){if(this.handleSignals)O(()=>this.stop());this.settings=V()}try{await this.app.waitForBoot()}catch(B){if(!z)this.app.shutdown({timeoutMs:L.providerTimeoutMs});throw B}if(z){let{httpProd:B}=await import("../chunk-wzrt5mac.js");this.server=await B(this.app,this.instrumentation.bind(this))}else{I();let{httpDev:B}=await import("../chunk-mps6ynbh.js"),J=new Q(this.app);this.server=await B(this.app,J.track(this.instrumentation.bind(this))),Y(J)}return this.server}stop(z={}){return this.stopping??=A({server:this.server,shutdownProviders:(B)=>this.app.shutdown(B),settings:{...this.settings??V(),...z}}),this.stopping}}export{b as isShuttingDown,P as Server};
2
+ import{Ga as I}from"../chunk-5stgtwqw.js";import{Ha as W}from"../chunk-tw5kwbx4.js";import{ei as b,gi as V,hi as A,ii as H,ji as O}from"../chunk-zyt2w03d.js";import{ni as k}from"../chunk-1hr4xht1.js";import"../chunk-d9mar37g.js";import{ui as $}from"../chunk-vw8849ys.js";var X=Symbol.for("gemi.server.devGeneration"),L={graceMs:1e4,providerTimeoutMs:5000};class Q{app;inFlight=0;waiters=new Set;constructor(z){this.app=z}track(z){return async(B,J)=>{this.inFlight++;try{return await z(B,J)}finally{if(this.inFlight--,this.inFlight===0)this.wake()}}}get pending(){return this.inFlight}async retire({graceMs:z,providerTimeoutMs:B}){try{await this.idle(z),await Promise.resolve().then(()=>this.app.shutdown({timeoutMs:B}))}catch(J){Z(J)}}idle(z){if(this.inFlight===0)return Promise.resolve();return new Promise((B)=>{let J=()=>{clearTimeout(K),this.waiters.delete(J),B()},K=setTimeout(J,z);this.waiters.add(J)})}wake(){for(let z of this.waiters)z()}}function Y(z,B=L){let J=globalThis,K=J[X];if(J[X]=z,!K||K===z||typeof K.retire!=="function")return Promise.resolve();let _=K.retire.bind(K);return Promise.resolve().then(()=>_(B)).catch(Z)}function Z(z){console.error("[gemi] Shutting down the application a reload replaced failed:",z)}class P{app;instrumentation;handleSignals;server;stopping;settings;constructor(z){this.app=new W({kernel:z.kernel}),this.handleSignals=z.handleSignals??!0,this.instrumentation=H(z.instrumentation??((B,J)=>J(B)))}async start(){process.env.ROOT_DIR=k();let z=Bun.env.NODE_ENV==="production";if(z){if(this.handleSignals)O(()=>this.stop());this.settings=V()}try{await this.app.waitForBoot()}catch(B){if(!z)this.app.shutdown({timeoutMs:L.providerTimeoutMs});throw B}if(z){let{httpProd:B}=await import("../chunk-79xg42e7.js");this.server=await B(this.app,this.instrumentation.bind(this))}else{I();let{httpDev:B}=await import("../chunk-p91b8zcn.js"),J=new Q(this.app);this.server=await B(this.app,J.track(this.instrumentation.bind(this))),Y(J)}return this.server}stop(z={}){return this.stopping??=A({server:this.server,shutdownProviders:(B)=>this.app.shutdown(B),settings:{...this.settings??V(),...z}}),this.stopping}}export{b as isShuttingDown,P as Server};
3
3
 
4
4
  //# debugId=893DC0539C493A4C64756E2164756E21
@@ -97,7 +97,7 @@ export type { EvaluationReason, FeatureContext, FeatureDescriptor, FeatureEvalua
97
97
  export { defineFilesystemConfig, filesystemConfigDefaults, type FilesystemConfig, } from "./file-storage/config";
98
98
  export { defineRateLimiterConfig, rateLimiterConfigDefaults, type RateLimiterConfig, } from "./rate-limiter/config";
99
99
  export { defineMailConfig, mailConfigDefaults, type MailConfig, } from "./email/config";
100
- export { defineRouteConfig, apiRouteConfigDefaults, viewRouteConfigDefaults, type RouteConfig, type ApiRouteConfig, type McpRouteConfig, type ViewRouteConfig, } from "./router/config";
100
+ export { defineRouteConfig, apiRouteConfigDefaults, viewRouteConfigDefaults, type RouteConfig, type ApiRouteConfig, type McpRouteConfig, type ViewRouteConfig, type LocaleRouting, } from "./router/config";
101
101
  export { defineLogConfig, logConfigDefaults, type LogConfig, } from "./logging/config";
102
102
  export { defineQueueConfig, queueConfigDefaults, type QueueConfig, } from "./queue/config";
103
103
  export { defineChangeFeedConfig, changeFeedConfigDefaults, type ChangeFeedConfig, } from "./change-feed/config";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../services/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../services/index.ts"],"names":[],"mappings":"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"}