gemi 0.88.2 → 0.90.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 (164) hide show
  1. package/dist/ai/index.js +2 -2
  2. package/dist/ai/index.js.map +1 -1
  3. package/dist/app/index.js +1 -1
  4. package/dist/bun/plugin.js +1 -1
  5. package/dist/bun/preload.js +1 -1
  6. package/dist/{chunk-rp0reqjn.js → chunk-01n76z2m.js} +2 -2
  7. package/dist/{chunk-rp0reqjn.js.map → chunk-01n76z2m.js.map} +1 -1
  8. package/dist/{chunk-rhe7s1fm.js → chunk-126mmhjj.js} +2 -2
  9. package/dist/{chunk-rhe7s1fm.js.map → chunk-126mmhjj.js.map} +1 -1
  10. package/dist/{chunk-ak3yy4za.js → chunk-2e9552jm.js} +1 -1
  11. package/dist/{chunk-k7r6fp2t.js → chunk-3jf1rsbg.js} +2 -2
  12. package/dist/{chunk-k7r6fp2t.js.map → chunk-3jf1rsbg.js.map} +1 -1
  13. package/dist/{chunk-whjhrz97.js → chunk-3nh3h2df.js} +2 -2
  14. package/dist/{chunk-whjhrz97.js.map → chunk-3nh3h2df.js.map} +1 -1
  15. package/dist/{chunk-xc90ycw2.js → chunk-3z8fkczm.js} +2 -2
  16. package/dist/{chunk-xc90ycw2.js.map → chunk-3z8fkczm.js.map} +1 -1
  17. package/dist/{chunk-ztzd90gp.js → chunk-5c7nyk5k.js} +2 -2
  18. package/dist/{chunk-ztzd90gp.js.map → chunk-5c7nyk5k.js.map} +1 -1
  19. package/dist/{chunk-zn5bqe6m.js → chunk-5rpeez39.js} +3 -3
  20. package/dist/{chunk-zn5bqe6m.js.map → chunk-5rpeez39.js.map} +1 -1
  21. package/dist/{chunk-smpmwb7e.js → chunk-6a0grh04.js} +2 -2
  22. package/dist/{chunk-smpmwb7e.js.map → chunk-6a0grh04.js.map} +1 -1
  23. package/dist/{chunk-pwaftx6n.js → chunk-6ffpdkjw.js} +3 -3
  24. package/dist/{chunk-pwaftx6n.js.map → chunk-6ffpdkjw.js.map} +1 -1
  25. package/dist/{chunk-713fezaz.js → chunk-6p62z1h3.js} +2 -2
  26. package/dist/{chunk-713fezaz.js.map → chunk-6p62z1h3.js.map} +1 -1
  27. package/dist/{chunk-8dpnghvk.js → chunk-7k7dfy74.js} +2 -2
  28. package/dist/{chunk-8dpnghvk.js.map → chunk-7k7dfy74.js.map} +1 -1
  29. package/dist/{chunk-jfgjscq6.js → chunk-8acf5bf3.js} +2 -2
  30. package/dist/{chunk-jfgjscq6.js.map → chunk-8acf5bf3.js.map} +1 -1
  31. package/dist/{chunk-yafxbmy3.js → chunk-9kfnd4bf.js} +1 -1
  32. package/dist/{chunk-61rs7kxf.js → chunk-a9a3tbyr.js} +2 -2
  33. package/dist/{chunk-61rs7kxf.js.map → chunk-a9a3tbyr.js.map} +1 -1
  34. package/dist/{chunk-8pesk2wm.js → chunk-araqww9d.js} +2 -2
  35. package/dist/{chunk-8pesk2wm.js.map → chunk-araqww9d.js.map} +1 -1
  36. package/dist/{chunk-d5h5v4rj.js → chunk-b1wjymn0.js} +2 -2
  37. package/dist/{chunk-d5h5v4rj.js.map → chunk-b1wjymn0.js.map} +1 -1
  38. package/dist/{chunk-r9qzgvpx.js → chunk-bj6gsxkv.js} +2 -2
  39. package/dist/{chunk-r9qzgvpx.js.map → chunk-bj6gsxkv.js.map} +1 -1
  40. package/dist/{chunk-e3fnjj0h.js → chunk-cv2sargd.js} +2 -2
  41. package/dist/{chunk-e3fnjj0h.js.map → chunk-cv2sargd.js.map} +1 -1
  42. package/dist/{chunk-pqydkns8.js → chunk-d476f9f6.js} +2 -2
  43. package/dist/{chunk-pqydkns8.js.map → chunk-d476f9f6.js.map} +1 -1
  44. package/dist/{chunk-d1r618e8.js → chunk-dedazpms.js} +1 -1
  45. package/dist/{chunk-3w65ra1s.js → chunk-dk7818hj.js} +2 -2
  46. package/dist/{chunk-3w65ra1s.js.map → chunk-dk7818hj.js.map} +1 -1
  47. package/dist/{chunk-8r7xhy1g.js → chunk-dyq9gcwa.js} +2 -2
  48. package/dist/{chunk-8r7xhy1g.js.map → chunk-dyq9gcwa.js.map} +1 -1
  49. package/dist/{chunk-6dyt8w27.js → chunk-e6ngf60r.js} +2 -2
  50. package/dist/{chunk-6dyt8w27.js.map → chunk-e6ngf60r.js.map} +1 -1
  51. package/dist/{chunk-s72y1w84.js → chunk-e70ggm2m.js} +2 -2
  52. package/dist/{chunk-s72y1w84.js.map → chunk-e70ggm2m.js.map} +1 -1
  53. package/dist/chunk-ecq15njr.js +17 -0
  54. package/dist/{chunk-7hegzdkc.js.map → chunk-ecq15njr.js.map} +3 -3
  55. package/dist/{chunk-0808z3mq.js → chunk-ed346kf4.js} +2 -2
  56. package/dist/{chunk-0808z3mq.js.map → chunk-ed346kf4.js.map} +1 -1
  57. package/dist/{chunk-16mnpn6c.js → chunk-ez0c0mpt.js} +2 -2
  58. package/dist/{chunk-16mnpn6c.js.map → chunk-ez0c0mpt.js.map} +1 -1
  59. package/dist/{chunk-pw95y0fx.js → chunk-f2vjbxh6.js} +2 -2
  60. package/dist/{chunk-pw95y0fx.js.map → chunk-f2vjbxh6.js.map} +1 -1
  61. package/dist/{chunk-56p9a7nx.js → chunk-f64vhjgh.js} +2 -2
  62. package/dist/{chunk-56p9a7nx.js.map → chunk-f64vhjgh.js.map} +1 -1
  63. package/dist/{chunk-t93t317r.js → chunk-fc28h7g2.js} +2 -2
  64. package/dist/{chunk-g2bsmw1m.js.map → chunk-fc28h7g2.js.map} +1 -1
  65. package/dist/{chunk-hnbj9jx2.js → chunk-fj7yk6a7.js} +3 -3
  66. package/dist/{chunk-hnbj9jx2.js.map → chunk-fj7yk6a7.js.map} +1 -1
  67. package/dist/{chunk-9c1zx81w.js → chunk-hc1mcgs9.js} +2 -2
  68. package/dist/{chunk-9c1zx81w.js.map → chunk-hc1mcgs9.js.map} +1 -1
  69. package/dist/{chunk-e71e31kj.js → chunk-hdm74jbr.js} +2 -2
  70. package/dist/{chunk-e71e31kj.js.map → chunk-hdm74jbr.js.map} +1 -1
  71. package/dist/{chunk-rw0t90pf.js → chunk-hx1jg944.js} +2 -2
  72. package/dist/{chunk-rw0t90pf.js.map → chunk-hx1jg944.js.map} +1 -1
  73. package/dist/{chunk-523t3bcz.js → chunk-j0qwgrp6.js} +4 -4
  74. package/dist/{chunk-523t3bcz.js.map → chunk-j0qwgrp6.js.map} +1 -1
  75. package/dist/{chunk-fkt43zw1.js → chunk-j2402q2z.js} +2 -2
  76. package/dist/{chunk-fkt43zw1.js.map → chunk-j2402q2z.js.map} +1 -1
  77. package/dist/{chunk-6rc6yec4.js → chunk-jbzxb75e.js} +2 -2
  78. package/dist/{chunk-6rc6yec4.js.map → chunk-jbzxb75e.js.map} +1 -1
  79. package/dist/{chunk-x85x83pa.js → chunk-kdpc26j2.js} +1 -1
  80. package/dist/{chunk-8y08amzz.js → chunk-kk5x6grc.js} +2 -2
  81. package/dist/{chunk-8y08amzz.js.map → chunk-kk5x6grc.js.map} +1 -1
  82. package/dist/{chunk-64z2zt41.js → chunk-kmebynhc.js} +2 -2
  83. package/dist/{chunk-64z2zt41.js.map → chunk-kmebynhc.js.map} +1 -1
  84. package/dist/{chunk-6s6fj97j.js → chunk-mn5xnk02.js} +2 -2
  85. package/dist/{chunk-6s6fj97j.js.map → chunk-mn5xnk02.js.map} +1 -1
  86. package/dist/{chunk-443dm19c.js → chunk-n2rq7wp8.js} +2 -2
  87. package/dist/{chunk-443dm19c.js.map → chunk-n2rq7wp8.js.map} +1 -1
  88. package/dist/{chunk-zf8bgrnj.js → chunk-n4mfv24c.js} +2 -2
  89. package/dist/{chunk-zf8bgrnj.js.map → chunk-n4mfv24c.js.map} +1 -1
  90. package/dist/{chunk-j0fgc58k.js → chunk-ngrr6wvw.js} +2 -2
  91. package/dist/{chunk-j0fgc58k.js.map → chunk-ngrr6wvw.js.map} +1 -1
  92. package/dist/{chunk-3rb5ht8v.js → chunk-p3n8jjjf.js} +3 -3
  93. package/dist/{chunk-3rb5ht8v.js.map → chunk-p3n8jjjf.js.map} +1 -1
  94. package/dist/{chunk-7r78cdyd.js → chunk-q7gkfkbz.js} +2 -2
  95. package/dist/{chunk-7r78cdyd.js.map → chunk-q7gkfkbz.js.map} +1 -1
  96. package/dist/{chunk-1jaehgna.js → chunk-qht6qsvg.js} +2 -2
  97. package/dist/{chunk-1jaehgna.js.map → chunk-qht6qsvg.js.map} +1 -1
  98. package/dist/{chunk-78gs7xvn.js → chunk-r6jytsz3.js} +2 -2
  99. package/dist/{chunk-78gs7xvn.js.map → chunk-r6jytsz3.js.map} +1 -1
  100. package/dist/{chunk-0efykzjy.js → chunk-sh1cfx9j.js} +3 -3
  101. package/dist/{chunk-0efykzjy.js.map → chunk-sh1cfx9j.js.map} +1 -1
  102. package/dist/chunk-t6hma13w.js +5 -0
  103. package/dist/chunk-t6hma13w.js.map +14 -0
  104. package/dist/{chunk-r78aqvne.js → chunk-w4qek53d.js} +2 -2
  105. package/dist/{chunk-r78aqvne.js.map → chunk-w4qek53d.js.map} +1 -1
  106. package/dist/{chunk-g2bsmw1m.js → chunk-w9j1kxmc.js} +2 -2
  107. package/dist/{chunk-t93t317r.js.map → chunk-w9j1kxmc.js.map} +1 -1
  108. package/dist/{chunk-3ph0aj0x.js → chunk-x97zectc.js} +2 -2
  109. package/dist/{chunk-3ph0aj0x.js.map → chunk-x97zectc.js.map} +1 -1
  110. package/dist/config/index.js +1 -1
  111. package/dist/console/run.js +2 -2
  112. package/dist/console/run.js.map +1 -1
  113. package/dist/container/index.js +2 -2
  114. package/dist/container/index.js.map +1 -1
  115. package/dist/database/index.js +1 -1
  116. package/dist/email/Email.d.ts +2 -2
  117. package/dist/email/Email.d.ts.map +1 -1
  118. package/dist/email/debugEmail.d.ts +1 -0
  119. package/dist/email/debugEmail.d.ts.map +1 -1
  120. package/dist/email/index.js +4 -4
  121. package/dist/email/index.js.map +4 -4
  122. package/dist/facades/index.js +1 -1
  123. package/dist/foundation/index.js +2 -2
  124. package/dist/foundation/index.js.map +1 -1
  125. package/dist/http/createStreamResponse.d.ts +12 -1
  126. package/dist/http/createStreamResponse.d.ts.map +1 -1
  127. package/dist/http/index.d.ts +1 -1
  128. package/dist/http/index.d.ts.map +1 -1
  129. package/dist/http/index.js +1 -1
  130. package/dist/i18n/dictionaryRuntime.js +1 -1
  131. package/dist/i18n/index.js +2 -2
  132. package/dist/i18n/index.js.map +1 -1
  133. package/dist/kernel/index.js +2 -2
  134. package/dist/kernel/index.js.map +1 -1
  135. package/dist/orm/index.js +2 -2
  136. package/dist/orm/index.js.map +1 -1
  137. package/dist/server/index.js +2 -2
  138. package/dist/server/index.js.map +1 -1
  139. package/dist/services/email/MailManager.d.ts +3 -1
  140. package/dist/services/email/MailManager.d.ts.map +1 -1
  141. package/dist/services/email/deliver.d.ts +12 -0
  142. package/dist/services/email/deliver.d.ts.map +1 -0
  143. package/dist/services/email/drivers/EmailDriver.d.ts +17 -1
  144. package/dist/services/email/drivers/EmailDriver.d.ts.map +1 -1
  145. package/dist/services/email/drivers/ResendDriver.d.ts +4 -1
  146. package/dist/services/email/drivers/ResendDriver.d.ts.map +1 -1
  147. package/dist/services/email/drivers/types.d.ts +32 -0
  148. package/dist/services/email/drivers/types.d.ts.map +1 -1
  149. package/dist/services/index.d.ts +1 -1
  150. package/dist/services/index.d.ts.map +1 -1
  151. package/dist/services/index.js +2 -2
  152. package/dist/services/index.js.map +1 -1
  153. package/dist/services/queue/work.js +2 -2
  154. package/dist/services/queue/work.js.map +1 -1
  155. package/dist/support/index.js +2 -2
  156. package/dist/support/index.js.map +1 -1
  157. package/package.json +1 -1
  158. package/dist/chunk-7hegzdkc.js +0 -17
  159. package/dist/chunk-yc3n6zhr.js +0 -5
  160. package/dist/chunk-yc3n6zhr.js.map +0 -13
  161. /package/dist/{chunk-ak3yy4za.js.map → chunk-2e9552jm.js.map} +0 -0
  162. /package/dist/{chunk-yafxbmy3.js.map → chunk-9kfnd4bf.js.map} +0 -0
  163. /package/dist/{chunk-d1r618e8.js.map → chunk-dedazpms.js.map} +0 -0
  164. /package/dist/{chunk-x85x83pa.js.map → chunk-kdpc26j2.js.map} +0 -0
package/dist/app/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{xa as a}from"../chunk-j0fgc58k.js";import"../chunk-7r78cdyd.js";import"../chunk-t93t317r.js";export{a as App};
2
+ import{xa as a}from"../chunk-ngrr6wvw.js";import"../chunk-q7gkfkbz.js";import"../chunk-fc28h7g2.js";export{a as App};
3
3
 
4
4
  //# debugId=1DF7F2A4406AF3BE64756E2164756E21
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{ca as a}from"../chunk-3rb5ht8v.js";import"../chunk-s72y1w84.js";import"../chunk-ztzd90gp.js";import"../chunk-t93t317r.js";export{a as gemiPlugin};
2
+ import{ca as a}from"../chunk-p3n8jjjf.js";import"../chunk-e70ggm2m.js";import"../chunk-5c7nyk5k.js";import"../chunk-fc28h7g2.js";export{a as gemiPlugin};
3
3
 
4
4
  //# debugId=DBAE3729A59FFE4464756E2164756E21
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{ca as k}from"../chunk-3rb5ht8v.js";import"../chunk-s72y1w84.js";import"../chunk-ztzd90gp.js";import{ua as j}from"../chunk-gvkydx8r.js";import"../chunk-t93t317r.js";var{plugin:q}=globalThis.Bun;q(k());var y=await j(process.cwd());for(let x of y.bun?.plugins??[])q(x);
2
+ import{ca as k}from"../chunk-p3n8jjjf.js";import"../chunk-e70ggm2m.js";import"../chunk-5c7nyk5k.js";import{ua as j}from"../chunk-gvkydx8r.js";import"../chunk-fc28h7g2.js";var{plugin:q}=globalThis.Bun;q(k());var y=await j(process.cwd());for(let x of y.bun?.plugins??[])q(x);
3
3
 
4
4
  //# debugId=D461962ED718EDF864756E2164756E21
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{H as _}from"./chunk-78gs7xvn.js";import{U as ue}from"./chunk-xc90ycw2.js";import{V as w}from"./chunk-8pesk2wm.js";import"./chunk-9c1zx81w.js";import{$ as l}from"./chunk-713fezaz.js";import{Mg as o,Qg as d}from"./chunk-t93t317r.js";var g=o(_(),1);var ie=o(l(),1);var O=o(w(),1),R=o(l(),1),J=o(_(),1);var j=o(w(),1),E=o(l(),1),U=(e,s,t)=>{let n={EcsContainer:async(r)=>{let{fromHttp:a}=await import("./chunk-d5h5v4rj.js"),{fromContainerMetadata:c}=await import("./chunk-61rs7kxf.js");return t?.debug("@aws-sdk/credential-provider-ini - credential_source is EcsContainer"),async()=>E.chain(a(r??{}),c(r))().then(L)},Ec2InstanceMetadata:async(r)=>{t?.debug("@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata");let{fromInstanceMetadata:a}=await import("./chunk-61rs7kxf.js");return async()=>a(r)().then(L)},Environment:async(r)=>{t?.debug("@aws-sdk/credential-provider-ini - credential_source is Environment");let{fromEnv:a}=await import("./chunk-d1r618e8.js");return async()=>a(r)().then(L)}};if(e in n)return n[e];else throw new E.CredentialsProviderError(`Unsupported credential source in profile ${s}. Got ${e}, expected EcsContainer or Ec2InstanceMetadata or Environment.`,{logger:t})},L=(e)=>j.setCredentialFeature(e,"CREDENTIALS_PROFILE_NAMED_PROVIDER","p");var N=(e,{profile:s="default",logger:t}={})=>{return Boolean(e)&&typeof e==="object"&&typeof e.role_arn==="string"&&["undefined","string"].indexOf(typeof e.role_session_name)>-1&&["undefined","string"].indexOf(typeof e.external_id)>-1&&["undefined","string"].indexOf(typeof e.mfa_serial)>-1&&(he(e,{profile:s,logger:t})||ye(e,{profile:s,logger:t}))},he=(e,{profile:s,logger:t})=>{let n=typeof e.source_profile==="string"&&typeof e.credential_source>"u";if(n)t?.debug?.(` ${s} isAssumeRoleWithSourceProfile source_profile=${e.source_profile}`);return n},ye=(e,{profile:s,logger:t})=>{let n=typeof e.credential_source==="string"&&typeof e.source_profile>"u";if(n)t?.debug?.(` ${s} isCredentialSourceProfile credential_source=${e.credential_source}`);return n},v=async(e,s,t,n,r={},a)=>{t.logger?.debug("@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)");let c=s[e],{source_profile:h,region:I}=c;if(!t.roleAssumer){let{getDefaultRoleAssumer:i}=await import("./chunk-16mnpn6c.js").then((m)=>o(m.default,1));t.roleAssumer=i({...t.clientConfig,credentialProviderLogger:t.logger,parentClientConfig:{...n,...t?.parentClientConfig,region:I??t?.parentClientConfig?.region??n?.region}},t.clientPlugins)}if(h&&h in r)throw new R.CredentialsProviderError(`Detected a cycle attempting to resolve credentials for profile ${J.getProfileName(t)}. Profiles visited: `+Object.keys(r).join(", "),{logger:t.logger});t.logger?.debug(`@aws-sdk/credential-provider-ini - finding credential resolver using ${h?`source_profile=[${h}]`:`profile=[${e}]`}`);let T=h?a(h,s,t,n,{...r,[h]:!0},G(s[h]??{})):(await U(c.credential_source,e,t.logger)(t))();if(G(c))return T.then((i)=>O.setCredentialFeature(i,"CREDENTIALS_PROFILE_SOURCE_PROFILE","o"));else{let i={RoleArn:c.role_arn,RoleSessionName:c.role_session_name||`aws-sdk-js-${Date.now()}`,ExternalId:c.external_id,DurationSeconds:parseInt(c.duration_seconds||"3600",10)},{mfa_serial:u}=c;if(u){if(!t.mfaCodeProvider)throw new R.CredentialsProviderError(`Profile ${e} requires multi-factor authentication, but no MFA code callback was provided.`,{logger:t.logger,tryNextLink:!1});i.SerialNumber=u,i.TokenCode=await t.mfaCodeProvider(u)}let y=await T;return t.roleAssumer(y,i).then((m)=>O.setCredentialFeature(m,"CREDENTIALS_PROFILE_SOURCE_PROFILE","o"))}},G=(e)=>{return!e.role_arn&&!!e.credential_source};var V=o(w(),1);var C=o(w(),1),X=o(l(),1),K=o(_(),1);var k=o(l(),1),W=o(ue(),1),z=o(_(),1);import{createHash as de,createPrivateKey as we,createPublicKey as ke,sign as me}from"crypto";import{promises as D}from"fs";import{homedir as fe}from"os";import{dirname as Ie,join as Y}from"path";class b{profileData;init;callerClientConfig;static REFRESH_THRESHOLD=300000;constructor(e,s,t){this.profileData=e,this.init=s,this.callerClientConfig=t}async loadCredentials(){let e=await this.loadToken();if(!e)throw new k.CredentialsProviderError(`Failed to load a token for session ${this.loginSession}, please re-authenticate using aws login`,{tryNextLink:!1,logger:this.logger});let s=e.accessToken,t=Date.now();if(new Date(s.expiresAt).getTime()-t<=b.REFRESH_THRESHOLD)return this.refresh(e);return{accessKeyId:s.accessKeyId,secretAccessKey:s.secretAccessKey,sessionToken:s.sessionToken,accountId:s.accountId,expiration:new Date(s.expiresAt)}}get logger(){return this.init?.logger}get loginSession(){return this.profileData.login_session}async refresh(e){let{SigninClient:s,CreateOAuth2TokenCommand:t}=await import("./chunk-8dpnghvk.js").then((m)=>o(m.default,1)),{logger:n,userAgentAppId:r}=this.callerClientConfig??{},c=((i)=>{return i?.metadata?.handlerProtocol==="h2"})(this.callerClientConfig?.requestHandler)?void 0:this.callerClientConfig?.requestHandler,h=this.profileData.region??await this.callerClientConfig?.region?.()??process.env.AWS_REGION,I=new s({credentials:{accessKeyId:"",secretAccessKey:""},region:h,requestHandler:c,logger:n,userAgentAppId:r,...this.init?.clientConfig});this.createDPoPInterceptor(I.middlewareStack);let T={tokenInput:{clientId:e.clientId,refreshToken:e.refreshToken,grantType:"refresh_token"}};try{let i=await I.send(new t(T)),{accessKeyId:u,secretAccessKey:y,sessionToken:m}=i.tokenOutput?.accessToken??{},{refreshToken:x,expiresIn:H}=i.tokenOutput??{};if(!u||!y||!m||!x)throw new k.CredentialsProviderError("Token refresh response missing required fields",{logger:this.logger,tryNextLink:!1});let A=(H??900)*1000,f=new Date(Date.now()+A),q={...e,accessToken:{...e.accessToken,accessKeyId:u,secretAccessKey:y,sessionToken:m,expiresAt:f.toISOString()},refreshToken:x};await this.saveToken(q);let S=q.accessToken;return{accessKeyId:S.accessKeyId,secretAccessKey:S.secretAccessKey,sessionToken:S.sessionToken,accountId:S.accountId,expiration:f}}catch(i){if(i.name==="AccessDeniedException"){let u=i.error,y;switch(u){case"TOKEN_EXPIRED":y="Your session has expired. Please reauthenticate.";break;case"USER_CREDENTIALS_CHANGED":y="Unable to refresh credentials because of a change in your password. Please reauthenticate with your new password.";break;case"INSUFFICIENT_PERMISSIONS":y="Unable to refresh credentials due to insufficient permissions. You may be missing permission for the 'CreateOAuth2Token' action.";break;default:y=`Failed to refresh token: ${String(i)}. Please re-authenticate using \`aws login\``}throw new k.CredentialsProviderError(y,{logger:this.logger,tryNextLink:!1})}throw new k.CredentialsProviderError(`Failed to refresh token: ${String(i)}. Please re-authenticate using aws login`,{logger:this.logger})}}async loadToken(){let e=this.getTokenFilePath();try{let s;try{s=await z.readFile(e,{ignoreCache:this.init?.ignoreCache})}catch{s=await D.readFile(e,"utf8")}let t=JSON.parse(s),n=["accessToken","clientId","refreshToken","dpopKey"].filter((r)=>!t[r]);if(!t.accessToken?.accountId)n.push("accountId");if(n.length>0)throw new k.CredentialsProviderError(`Token validation failed, missing fields: ${n.join(", ")}`,{logger:this.logger,tryNextLink:!1});return t}catch(s){throw new k.CredentialsProviderError(`Failed to load token from ${e}: ${String(s)}`,{logger:this.logger,tryNextLink:!1})}}async saveToken(e){let s=this.getTokenFilePath(),t=Ie(s);try{await D.mkdir(t,{recursive:!0})}catch(n){}await D.writeFile(s,JSON.stringify(e,null,2),"utf8")}getTokenFilePath(){let e=process.env.AWS_LOGIN_CACHE_DIRECTORY??Y(fe(),".aws","login","cache"),s=Buffer.from(this.loginSession,"utf8"),t=de("sha256").update(s).digest("hex");return Y(e,`${t}.json`)}derToRawSignature(e){let s=2;if(e[s]!==2)throw Error("Invalid DER signature");s++;let t=e[s++],n=e.subarray(s,s+t);if(s+=t,e[s]!==2)throw Error("Invalid DER signature");s++;let r=e[s++],a=e.subarray(s,s+r);n=n[0]===0?n.subarray(1):n,a=a[0]===0?a.subarray(1):a;let c=Buffer.concat([Buffer.alloc(32-n.length),n]),h=Buffer.concat([Buffer.alloc(32-a.length),a]);return Buffer.concat([c,h])}createDPoPInterceptor(e){e.add((s)=>async(t)=>{if(W.HttpRequest.isInstance(t.request)){let n=t.request,r=`${n.protocol}//${n.hostname}${n.port?`:${n.port}`:""}${n.path}`,a=await this.generateDpop(n.method,r);n.headers={...n.headers,DPoP:a}}return s(t)},{step:"finalizeRequest",name:"dpopInterceptor",override:!0})}async generateDpop(e="POST",s){let t=await this.loadToken();try{let n=we({key:t.dpopKey,format:"pem",type:"sec1"}),a=ke(n).export({format:"der",type:"spki"}),c=-1;for(let f=0;f<a.length;f++)if(a[f]===4){c=f;break}let h=a.slice(c+1,c+33),I=a.slice(c+33,c+65),T={alg:"ES256",typ:"dpop+jwt",jwk:{kty:"EC",crv:"P-256",x:h.toString("base64url"),y:I.toString("base64url")}},i={jti:crypto.randomUUID(),htm:e,htu:s,iat:Math.floor(Date.now()/1000)},u=Buffer.from(JSON.stringify(T)).toString("base64url"),y=Buffer.from(JSON.stringify(i)).toString("base64url"),m=`${u}.${y}`,x=me("sha256",Buffer.from(m),n),A=this.derToRawSignature(x).toString("base64url");return`${m}.${A}`}catch(n){throw new k.CredentialsProviderError(`Failed to generate Dpop proof: ${n instanceof Error?n.message:String(n)}`,{logger:this.logger,tryNextLink:!1})}}}var Q=(e)=>async({callerClientConfig:s}={})=>{e?.logger?.debug?.("@aws-sdk/credential-providers - fromLoginCredentials");let t=await K.parseKnownFiles(e||{}),n=K.getProfileName({profile:e?.profile??s?.profile}),r=t[n];if(!r?.login_session)throw new X.CredentialsProviderError(`Profile ${n} does not contain login_session.`,{tryNextLink:!0,logger:e?.logger});let c=await new b(r,e,s).loadCredentials();return C.setCredentialFeature(c,"CREDENTIALS_LOGIN","AD")};var Z=(e)=>{return Boolean(e&&e.login_session)},M=async(e,s,t)=>{let n=await Q({...s,profile:e})({callerClientConfig:t});return V.setCredentialFeature(n,"CREDENTIALS_PROFILE_LOGIN","AC")};var p=o(w(),1),ee=(e)=>Boolean(e)&&typeof e==="object"&&typeof e.credential_process==="string",te=async(e,s)=>import("./chunk-rw0t90pf.js").then(({fromProcess:t})=>t({...e,profile:s})().then((n)=>p.setCredentialFeature(n,"CREDENTIALS_PROFILE_PROCESS","v")));var $=o(w(),1),se=async(e,s,t={},n)=>{let{fromSSO:r}=await import("./chunk-zf8bgrnj.js");return r({profile:e,logger:t.logger,parentClientConfig:t.parentClientConfig,clientConfig:t.clientConfig})({callerClientConfig:n}).then((a)=>{if(s.sso_session)return $.setCredentialFeature(a,"CREDENTIALS_PROFILE_SSO","r");else return $.setCredentialFeature(a,"CREDENTIALS_PROFILE_SSO_LEGACY","t")})},ne=(e)=>e&&(typeof e.sso_start_url==="string"||typeof e.sso_account_id==="string"||typeof e.sso_session==="string"||typeof e.sso_region==="string"||typeof e.sso_role_name==="string");var ce=o(w(),1),P=(e)=>Boolean(e)&&typeof e==="object"&&typeof e.aws_access_key_id==="string"&&typeof e.aws_secret_access_key==="string"&&["undefined","string"].indexOf(typeof e.aws_session_token)>-1&&["undefined","string"].indexOf(typeof e.aws_account_id)>-1,F=async(e,s)=>{s?.logger?.debug("@aws-sdk/credential-provider-ini - resolveStaticCredentials");let t={accessKeyId:e.aws_access_key_id,secretAccessKey:e.aws_secret_access_key,sessionToken:e.aws_session_token,...e.aws_credential_scope&&{credentialScope:e.aws_credential_scope},...e.aws_account_id&&{accountId:e.aws_account_id}};return ce.setCredentialFeature(t,"CREDENTIALS_PROFILE","n")};var re=o(w(),1),ae=(e)=>Boolean(e)&&typeof e==="object"&&typeof e.web_identity_token_file==="string"&&typeof e.role_arn==="string"&&["undefined","string"].indexOf(typeof e.role_session_name)>-1,oe=async(e,s,t)=>import("./chunk-fkt43zw1.js").then(({fromTokenFile:n})=>n({webIdentityTokenFile:e.web_identity_token_file,roleArn:e.role_arn,roleSessionName:e.role_session_name,roleAssumerWithWebIdentity:s.roleAssumerWithWebIdentity,logger:s.logger,parentClientConfig:s.parentClientConfig})({callerClientConfig:t}).then((r)=>re.setCredentialFeature(r,"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN","q")));var B=async(e,s,t,n,r={},a=!1)=>{let c=s[e];if(Object.keys(r).length>0&&P(c))return F(c,t);if(a||N(c,{profile:e,logger:t.logger}))return v(e,s,t,n,r,B);if(P(c))return F(c,t);if(ae(c))return oe(c,t,n);if(ee(c))return te(t,e);if(ne(c))return await se(e,c,t,n);if(Z(c))return M(e,t,n);throw new ie.CredentialsProviderError(`Could not resolve credentials using profile: [${e}] in configuration/credentials file(s).`,{logger:t.logger})};var Ne=(e={})=>async({callerClientConfig:s}={})=>{e.logger?.debug("@aws-sdk/credential-provider-ini - fromIni");let t=await g.parseKnownFiles(e);return B(g.getProfileName({profile:e.profile??s?.profile}),t,e,s)};export{Ne as fromIni};
2
+ import{H as _}from"./chunk-r6jytsz3.js";import{U as ue}from"./chunk-3z8fkczm.js";import{V as w}from"./chunk-araqww9d.js";import"./chunk-hc1mcgs9.js";import{$ as l}from"./chunk-6p62z1h3.js";import{Ng as o,Rg as d}from"./chunk-fc28h7g2.js";var g=o(_(),1);var ie=o(l(),1);var O=o(w(),1),R=o(l(),1),J=o(_(),1);var j=o(w(),1),E=o(l(),1),U=(e,s,t)=>{let n={EcsContainer:async(r)=>{let{fromHttp:a}=await import("./chunk-b1wjymn0.js"),{fromContainerMetadata:c}=await import("./chunk-a9a3tbyr.js");return t?.debug("@aws-sdk/credential-provider-ini - credential_source is EcsContainer"),async()=>E.chain(a(r??{}),c(r))().then(L)},Ec2InstanceMetadata:async(r)=>{t?.debug("@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata");let{fromInstanceMetadata:a}=await import("./chunk-a9a3tbyr.js");return async()=>a(r)().then(L)},Environment:async(r)=>{t?.debug("@aws-sdk/credential-provider-ini - credential_source is Environment");let{fromEnv:a}=await import("./chunk-dedazpms.js");return async()=>a(r)().then(L)}};if(e in n)return n[e];else throw new E.CredentialsProviderError(`Unsupported credential source in profile ${s}. Got ${e}, expected EcsContainer or Ec2InstanceMetadata or Environment.`,{logger:t})},L=(e)=>j.setCredentialFeature(e,"CREDENTIALS_PROFILE_NAMED_PROVIDER","p");var N=(e,{profile:s="default",logger:t}={})=>{return Boolean(e)&&typeof e==="object"&&typeof e.role_arn==="string"&&["undefined","string"].indexOf(typeof e.role_session_name)>-1&&["undefined","string"].indexOf(typeof e.external_id)>-1&&["undefined","string"].indexOf(typeof e.mfa_serial)>-1&&(he(e,{profile:s,logger:t})||ye(e,{profile:s,logger:t}))},he=(e,{profile:s,logger:t})=>{let n=typeof e.source_profile==="string"&&typeof e.credential_source>"u";if(n)t?.debug?.(` ${s} isAssumeRoleWithSourceProfile source_profile=${e.source_profile}`);return n},ye=(e,{profile:s,logger:t})=>{let n=typeof e.credential_source==="string"&&typeof e.source_profile>"u";if(n)t?.debug?.(` ${s} isCredentialSourceProfile credential_source=${e.credential_source}`);return n},v=async(e,s,t,n,r={},a)=>{t.logger?.debug("@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)");let c=s[e],{source_profile:h,region:I}=c;if(!t.roleAssumer){let{getDefaultRoleAssumer:i}=await import("./chunk-ez0c0mpt.js").then((m)=>o(m.default,1));t.roleAssumer=i({...t.clientConfig,credentialProviderLogger:t.logger,parentClientConfig:{...n,...t?.parentClientConfig,region:I??t?.parentClientConfig?.region??n?.region}},t.clientPlugins)}if(h&&h in r)throw new R.CredentialsProviderError(`Detected a cycle attempting to resolve credentials for profile ${J.getProfileName(t)}. Profiles visited: `+Object.keys(r).join(", "),{logger:t.logger});t.logger?.debug(`@aws-sdk/credential-provider-ini - finding credential resolver using ${h?`source_profile=[${h}]`:`profile=[${e}]`}`);let T=h?a(h,s,t,n,{...r,[h]:!0},G(s[h]??{})):(await U(c.credential_source,e,t.logger)(t))();if(G(c))return T.then((i)=>O.setCredentialFeature(i,"CREDENTIALS_PROFILE_SOURCE_PROFILE","o"));else{let i={RoleArn:c.role_arn,RoleSessionName:c.role_session_name||`aws-sdk-js-${Date.now()}`,ExternalId:c.external_id,DurationSeconds:parseInt(c.duration_seconds||"3600",10)},{mfa_serial:u}=c;if(u){if(!t.mfaCodeProvider)throw new R.CredentialsProviderError(`Profile ${e} requires multi-factor authentication, but no MFA code callback was provided.`,{logger:t.logger,tryNextLink:!1});i.SerialNumber=u,i.TokenCode=await t.mfaCodeProvider(u)}let y=await T;return t.roleAssumer(y,i).then((m)=>O.setCredentialFeature(m,"CREDENTIALS_PROFILE_SOURCE_PROFILE","o"))}},G=(e)=>{return!e.role_arn&&!!e.credential_source};var V=o(w(),1);var C=o(w(),1),X=o(l(),1),K=o(_(),1);var k=o(l(),1),W=o(ue(),1),z=o(_(),1);import{createHash as de,createPrivateKey as we,createPublicKey as ke,sign as me}from"crypto";import{promises as D}from"fs";import{homedir as fe}from"os";import{dirname as Ie,join as Y}from"path";class b{profileData;init;callerClientConfig;static REFRESH_THRESHOLD=300000;constructor(e,s,t){this.profileData=e,this.init=s,this.callerClientConfig=t}async loadCredentials(){let e=await this.loadToken();if(!e)throw new k.CredentialsProviderError(`Failed to load a token for session ${this.loginSession}, please re-authenticate using aws login`,{tryNextLink:!1,logger:this.logger});let s=e.accessToken,t=Date.now();if(new Date(s.expiresAt).getTime()-t<=b.REFRESH_THRESHOLD)return this.refresh(e);return{accessKeyId:s.accessKeyId,secretAccessKey:s.secretAccessKey,sessionToken:s.sessionToken,accountId:s.accountId,expiration:new Date(s.expiresAt)}}get logger(){return this.init?.logger}get loginSession(){return this.profileData.login_session}async refresh(e){let{SigninClient:s,CreateOAuth2TokenCommand:t}=await import("./chunk-7k7dfy74.js").then((m)=>o(m.default,1)),{logger:n,userAgentAppId:r}=this.callerClientConfig??{},c=((i)=>{return i?.metadata?.handlerProtocol==="h2"})(this.callerClientConfig?.requestHandler)?void 0:this.callerClientConfig?.requestHandler,h=this.profileData.region??await this.callerClientConfig?.region?.()??process.env.AWS_REGION,I=new s({credentials:{accessKeyId:"",secretAccessKey:""},region:h,requestHandler:c,logger:n,userAgentAppId:r,...this.init?.clientConfig});this.createDPoPInterceptor(I.middlewareStack);let T={tokenInput:{clientId:e.clientId,refreshToken:e.refreshToken,grantType:"refresh_token"}};try{let i=await I.send(new t(T)),{accessKeyId:u,secretAccessKey:y,sessionToken:m}=i.tokenOutput?.accessToken??{},{refreshToken:x,expiresIn:H}=i.tokenOutput??{};if(!u||!y||!m||!x)throw new k.CredentialsProviderError("Token refresh response missing required fields",{logger:this.logger,tryNextLink:!1});let A=(H??900)*1000,f=new Date(Date.now()+A),q={...e,accessToken:{...e.accessToken,accessKeyId:u,secretAccessKey:y,sessionToken:m,expiresAt:f.toISOString()},refreshToken:x};await this.saveToken(q);let S=q.accessToken;return{accessKeyId:S.accessKeyId,secretAccessKey:S.secretAccessKey,sessionToken:S.sessionToken,accountId:S.accountId,expiration:f}}catch(i){if(i.name==="AccessDeniedException"){let u=i.error,y;switch(u){case"TOKEN_EXPIRED":y="Your session has expired. Please reauthenticate.";break;case"USER_CREDENTIALS_CHANGED":y="Unable to refresh credentials because of a change in your password. Please reauthenticate with your new password.";break;case"INSUFFICIENT_PERMISSIONS":y="Unable to refresh credentials due to insufficient permissions. You may be missing permission for the 'CreateOAuth2Token' action.";break;default:y=`Failed to refresh token: ${String(i)}. Please re-authenticate using \`aws login\``}throw new k.CredentialsProviderError(y,{logger:this.logger,tryNextLink:!1})}throw new k.CredentialsProviderError(`Failed to refresh token: ${String(i)}. Please re-authenticate using aws login`,{logger:this.logger})}}async loadToken(){let e=this.getTokenFilePath();try{let s;try{s=await z.readFile(e,{ignoreCache:this.init?.ignoreCache})}catch{s=await D.readFile(e,"utf8")}let t=JSON.parse(s),n=["accessToken","clientId","refreshToken","dpopKey"].filter((r)=>!t[r]);if(!t.accessToken?.accountId)n.push("accountId");if(n.length>0)throw new k.CredentialsProviderError(`Token validation failed, missing fields: ${n.join(", ")}`,{logger:this.logger,tryNextLink:!1});return t}catch(s){throw new k.CredentialsProviderError(`Failed to load token from ${e}: ${String(s)}`,{logger:this.logger,tryNextLink:!1})}}async saveToken(e){let s=this.getTokenFilePath(),t=Ie(s);try{await D.mkdir(t,{recursive:!0})}catch(n){}await D.writeFile(s,JSON.stringify(e,null,2),"utf8")}getTokenFilePath(){let e=process.env.AWS_LOGIN_CACHE_DIRECTORY??Y(fe(),".aws","login","cache"),s=Buffer.from(this.loginSession,"utf8"),t=de("sha256").update(s).digest("hex");return Y(e,`${t}.json`)}derToRawSignature(e){let s=2;if(e[s]!==2)throw Error("Invalid DER signature");s++;let t=e[s++],n=e.subarray(s,s+t);if(s+=t,e[s]!==2)throw Error("Invalid DER signature");s++;let r=e[s++],a=e.subarray(s,s+r);n=n[0]===0?n.subarray(1):n,a=a[0]===0?a.subarray(1):a;let c=Buffer.concat([Buffer.alloc(32-n.length),n]),h=Buffer.concat([Buffer.alloc(32-a.length),a]);return Buffer.concat([c,h])}createDPoPInterceptor(e){e.add((s)=>async(t)=>{if(W.HttpRequest.isInstance(t.request)){let n=t.request,r=`${n.protocol}//${n.hostname}${n.port?`:${n.port}`:""}${n.path}`,a=await this.generateDpop(n.method,r);n.headers={...n.headers,DPoP:a}}return s(t)},{step:"finalizeRequest",name:"dpopInterceptor",override:!0})}async generateDpop(e="POST",s){let t=await this.loadToken();try{let n=we({key:t.dpopKey,format:"pem",type:"sec1"}),a=ke(n).export({format:"der",type:"spki"}),c=-1;for(let f=0;f<a.length;f++)if(a[f]===4){c=f;break}let h=a.slice(c+1,c+33),I=a.slice(c+33,c+65),T={alg:"ES256",typ:"dpop+jwt",jwk:{kty:"EC",crv:"P-256",x:h.toString("base64url"),y:I.toString("base64url")}},i={jti:crypto.randomUUID(),htm:e,htu:s,iat:Math.floor(Date.now()/1000)},u=Buffer.from(JSON.stringify(T)).toString("base64url"),y=Buffer.from(JSON.stringify(i)).toString("base64url"),m=`${u}.${y}`,x=me("sha256",Buffer.from(m),n),A=this.derToRawSignature(x).toString("base64url");return`${m}.${A}`}catch(n){throw new k.CredentialsProviderError(`Failed to generate Dpop proof: ${n instanceof Error?n.message:String(n)}`,{logger:this.logger,tryNextLink:!1})}}}var Q=(e)=>async({callerClientConfig:s}={})=>{e?.logger?.debug?.("@aws-sdk/credential-providers - fromLoginCredentials");let t=await K.parseKnownFiles(e||{}),n=K.getProfileName({profile:e?.profile??s?.profile}),r=t[n];if(!r?.login_session)throw new X.CredentialsProviderError(`Profile ${n} does not contain login_session.`,{tryNextLink:!0,logger:e?.logger});let c=await new b(r,e,s).loadCredentials();return C.setCredentialFeature(c,"CREDENTIALS_LOGIN","AD")};var Z=(e)=>{return Boolean(e&&e.login_session)},M=async(e,s,t)=>{let n=await Q({...s,profile:e})({callerClientConfig:t});return V.setCredentialFeature(n,"CREDENTIALS_PROFILE_LOGIN","AC")};var p=o(w(),1),ee=(e)=>Boolean(e)&&typeof e==="object"&&typeof e.credential_process==="string",te=async(e,s)=>import("./chunk-hx1jg944.js").then(({fromProcess:t})=>t({...e,profile:s})().then((n)=>p.setCredentialFeature(n,"CREDENTIALS_PROFILE_PROCESS","v")));var $=o(w(),1),se=async(e,s,t={},n)=>{let{fromSSO:r}=await import("./chunk-n4mfv24c.js");return r({profile:e,logger:t.logger,parentClientConfig:t.parentClientConfig,clientConfig:t.clientConfig})({callerClientConfig:n}).then((a)=>{if(s.sso_session)return $.setCredentialFeature(a,"CREDENTIALS_PROFILE_SSO","r");else return $.setCredentialFeature(a,"CREDENTIALS_PROFILE_SSO_LEGACY","t")})},ne=(e)=>e&&(typeof e.sso_start_url==="string"||typeof e.sso_account_id==="string"||typeof e.sso_session==="string"||typeof e.sso_region==="string"||typeof e.sso_role_name==="string");var ce=o(w(),1),P=(e)=>Boolean(e)&&typeof e==="object"&&typeof e.aws_access_key_id==="string"&&typeof e.aws_secret_access_key==="string"&&["undefined","string"].indexOf(typeof e.aws_session_token)>-1&&["undefined","string"].indexOf(typeof e.aws_account_id)>-1,F=async(e,s)=>{s?.logger?.debug("@aws-sdk/credential-provider-ini - resolveStaticCredentials");let t={accessKeyId:e.aws_access_key_id,secretAccessKey:e.aws_secret_access_key,sessionToken:e.aws_session_token,...e.aws_credential_scope&&{credentialScope:e.aws_credential_scope},...e.aws_account_id&&{accountId:e.aws_account_id}};return ce.setCredentialFeature(t,"CREDENTIALS_PROFILE","n")};var re=o(w(),1),ae=(e)=>Boolean(e)&&typeof e==="object"&&typeof e.web_identity_token_file==="string"&&typeof e.role_arn==="string"&&["undefined","string"].indexOf(typeof e.role_session_name)>-1,oe=async(e,s,t)=>import("./chunk-j2402q2z.js").then(({fromTokenFile:n})=>n({webIdentityTokenFile:e.web_identity_token_file,roleArn:e.role_arn,roleSessionName:e.role_session_name,roleAssumerWithWebIdentity:s.roleAssumerWithWebIdentity,logger:s.logger,parentClientConfig:s.parentClientConfig})({callerClientConfig:t}).then((r)=>re.setCredentialFeature(r,"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN","q")));var B=async(e,s,t,n,r={},a=!1)=>{let c=s[e];if(Object.keys(r).length>0&&P(c))return F(c,t);if(a||N(c,{profile:e,logger:t.logger}))return v(e,s,t,n,r,B);if(P(c))return F(c,t);if(ae(c))return oe(c,t,n);if(ee(c))return te(t,e);if(ne(c))return await se(e,c,t,n);if(Z(c))return M(e,t,n);throw new ie.CredentialsProviderError(`Could not resolve credentials using profile: [${e}] in configuration/credentials file(s).`,{logger:t.logger})};var Ne=(e={})=>async({callerClientConfig:s}={})=>{e.logger?.debug("@aws-sdk/credential-provider-ini - fromIni");let t=await g.parseKnownFiles(e);return B(g.getProfileName({profile:e.profile??s?.profile}),t,e,s)};export{Ne as fromIni};
3
3
 
4
- //# debugId=2E376F13F890F5C464756E2164756E21
4
+ //# debugId=38E96FA1DA7103DB64756E2164756E21
@@ -15,6 +15,6 @@
15
15
  "import { setCredentialFeature } from \"@aws-sdk/core/client\";\nexport const isWebIdentityProfile = (arg) => Boolean(arg) &&\n typeof arg === \"object\" &&\n typeof arg.web_identity_token_file === \"string\" &&\n typeof arg.role_arn === \"string\" &&\n [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1;\nexport const resolveWebIdentityCredentials = async (profile, options, callerClientConfig) => import(\"@aws-sdk/credential-provider-web-identity\").then(({ fromTokenFile }) => fromTokenFile({\n webIdentityTokenFile: profile.web_identity_token_file,\n roleArn: profile.role_arn,\n roleSessionName: profile.role_session_name,\n roleAssumerWithWebIdentity: options.roleAssumerWithWebIdentity,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig,\n})({\n callerClientConfig,\n}).then((creds) => setCredentialFeature(creds, \"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN\", \"q\")));\n"
16
16
  ],
17
17
  "mappings": "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",
18
- "debugId": "2E376F13F890F5C464756E2164756E21",
18
+ "debugId": "38E96FA1DA7103DB64756E2164756E21",
19
19
  "names": []
20
20
  }
@@ -1,7 +1,7 @@
1
1
  // @bun
2
- import{vf as O,wf as _,xf as B}from"./chunk-xqyx8kzr.js";import{Af as R}from"./chunk-17nh5gfm.js";import{wg as s}from"./chunk-0efykzjy.js";import{Jg as j}from"./chunk-64z2zt41.js";import{Qg as DH}from"./chunk-t93t317r.js";class f{static kind="controller";constructor(){}}class HH extends f{}function F(H){let K=new Map;if(!H)return K;for(let G of H.split(";")){let W=G.indexOf("=");if(W===-1)continue;let Q=G.slice(0,W).trim();if(!Q)continue;K.set(Q,G.slice(W+1).trim())}return K}function zH(H){return F(H.headers.get("cookie"))}function M(H){if(!/^\d+$/.test(H))return null;let K=Number(H);return Number.isSafeInteger(K)?K:null}function g(H){if(!H)return null;let K=H.trim();if(!/^bytes=/i.test(K))return null;let W=K.slice(6).split(",").map((J)=>J.trim()).filter((J)=>J!=="");if(W.length!==1)return null;let Q=W[0],T=Q.indexOf("-");if(T===-1)return null;let X=Q.slice(0,T),Z=Q.slice(T+1);if(X===""){let J=M(Z);if(J===null)return null;return{kind:"suffix",suffixLength:J}}let Y=M(X);if(Y===null)return null;if(Z==="")return{kind:"offset",start:Y,end:null};let $=M(Z);if($===null||$<Y)return null;return{kind:"offset",start:Y,end:$}}function v(H,K){if(!Number.isFinite(K)||K<=0)return null;let G,W;if(H.kind==="suffix"){if(H.suffixLength<=0)return null;G=Math.max(0,K-H.suffixLength),W=K-1}else{if(H.start>=K)return null;if(G=H.start,W=H.end===null?K-1:Math.min(H.end,K-1),W<G)return null}return{start:G,end:W,length:W-G+1}}function xH(H){if(H.kind==="suffix")return`bytes=-${H.suffixLength}`;return H.end===null?`bytes=${H.start}-`:`bytes=${H.start}-${H.end}`}function FH(H){if(!H)return null;let K=/^bytes\s+(\d+)-(\d+)\/(\d+)$/i.exec(H.trim());if(!K)return null;let G=M(K[1]),W=M(K[2]),Q=M(K[3]);if(G===null||W===null||Q===null||W<G)return null;return{start:G,end:W,total:Q}}function NH(H,K,G){return`bytes ${H}-${K}/${G}`}function h(H){return`bytes */${H}`}class A extends O{errors={};constructor(H){super("Validation error");this.name="ValidationError",this.errors=H,this.payload={api:{status:400,data:{error:{kind:"validation_error",messages:H,status:400}},headers:{"Content-Type":"application/json"}},view:{status:400}}}}function KH(H){let[K,G]=H.match(/\d+|\D+/g)??[];if(!K||!G)return 0;let W=Number.parseInt(K);switch(G){case"B":return W;case"KB":return W*1024;case"MB":return W*1024*1024;case"GB":return W*1024*1024*1024;case"TB":return W*1024*1024*1024*1024;default:return 0}}function WH(H){switch(H){case"image":return"image";case"png":return"image/png";case"jpg":return"image/jpeg";case"jpeg":return"image/jpeg";case"ttf":return"font/ttf";case"excel":return"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";case"csv":return"text/csv";case"word":return"application/vnd.openxmlformats-officedocument.wordprocessingml.document";case"pdf":return"application/pdf";case"json":return"application/json";default:return H}}function m(H){if(typeof H==="string"||Array.isArray(H))return H.length;return}function N(H){return typeof H==="number"&&!Number.isNaN(H)}var GH=["required","string","boolean","number","email","password","min","max","gte","lte","file","fileType","fileSize"];class D extends Error{name="InvalidValidationRuleError"}function z(H,K){let G=K===void 0||K.trim()===""?Number.NaN:Number(K);if(Number.isNaN(G))throw new D(`Validation rule "${H}:${K??""}" needs a number, e.g. "${H}:3"`);return G}function d(H){let[K,G]=H.split(":");switch(K){case"required":return(W)=>{if(W instanceof Blob)return W.size>0;if(W===null||W===void 0)return!1;if(typeof W==="string"||Array.isArray(W))return W.length>0;return!0};case"string":return(W)=>typeof W==="string";case"boolean":return(W)=>typeof W==="boolean";case"number":return(W)=>N(W);case"password":return(W)=>{return typeof W==="string"&&/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9]).{8,}$/.test(W)};case"min":{let W=z(K,G);return(Q)=>{let T=m(Q);return T!==void 0&&T>=W}}case"max":{let W=z(K,G);return(Q)=>{let T=m(Q);return T!==void 0&&T<=W}}case"gte":{let W=z(K,G);return(Q)=>N(Q)&&Q>=W}case"lte":{let W=z(K,G);return(Q)=>N(Q)&&Q<=W}case"email":return(W)=>{return typeof W==="string"&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(W)};case"file":return(W)=>{return W instanceof Blob};case"fileType":{if(!G)throw new D('Validation rule "fileType" needs a type, e.g. "fileType:png" or "fileType:image"');let W=WH(G);return(Q)=>Q instanceof Blob&&Q.type.startsWith(W)}case"fileSize":{let W=KH(G??"");if(W===0&&!/^0+(B|KB|MB|GB|TB)$/.test(G??""))throw new D(`Validation rule "fileSize:${G??""}" needs a whole size in B, KB, MB, GB or TB, e.g. "fileSize:5MB"`);return(Q)=>Q instanceof Blob&&Q.size<=W}default:throw new D(`Unknown validation rule "${H}". Known rules: ${GH.join(", ")}`)}}function p(H){if(typeof H!=="string")return null;let[K]=H.split(";",1),G=K.trim().toLowerCase();return G===""?null:G}function i(H){if(H===null)return!1;if(H==="application/json")return!0;let K=H.indexOf("/");return K>0&&H.endsWith("+json")&&H.length>K+1+5}var V=new WeakMap;function EH(H,K){V.set(H,{clientAddress:K})}function u(H){return V.has(H)}function qH(H){return V.get(H)?.clientAddress}var n=new WeakMap;function yH(H,K){n.set(H,K)}function o(H){return n.get(H)??null}var S=new WeakMap;function bH(H,K){let G=S.get(H)??[];if(!G.includes(K))S.set(H,[...G,K])}function cH(H){return S.get(H)??[]}class L{data;constructor(H){this.data=H}get(H){return this.data[H]}has(H){return this.data[H]!==void 0}toJSON(){return this.data}}class QH{kind;rawRequest;headers;cookies;search;schema={};routePath;params;domain;constructor(H,K,G,W){if(!H){let Y=R.getStore().req;this.params=Y.params,this.rawRequest=Y.rawRequest,this.kind=Y.kind,this.routePath=Y.routePath,this.domain=Y.domain??null}else this.params=K,this.rawRequest=H,this.routePath=W,this.kind=G??"api",this.domain=o(H);this.headers=this.rawRequest.headers;let Q=F(this.rawRequest.headers.get("Cookie")),T=new URL(this.rawRequest.url),X=new Map;for(let[Y,$]of T.searchParams)if(X.has(Y)){let J=X.get(Y);if(Array.isArray(J))J.push($),X.set(Y,J);else X.set(Y,[J,$])}else X.set(Y,$);let Z=Object.fromEntries(X.entries());this.search=new L(Z),this.cookies=Q}locale(){return R.getStore().locale}ctx(){return R.getStore()}isModelOriginated(){return u(this.rawRequest)}get signal(){return this.rawRequest.signal}range(){return g(this.rawRequest.headers.get("Range"))}refine(H){return{}}async parseBody(){let H=p(this.rawRequest.headers.get("Content-Type"));if(i(H))return new L(await this.parseJsonBody());if(H==="application/x-www-form-urlencoded"||H==="multipart/form-data"){let K;try{K=await this.rawRequest.formData()}catch{throw new O("The request body could not be read as a form.")}let G=new Map;for(let[W,Q]of K.entries())if(G.has(W)){let T=G.get(W);if(Array.isArray(T))T.push(Q);else G.set(W,[T,Q])}else G.set(W,Q);return new L(Object.fromEntries(G.entries()))}return new L({})}async parseJsonBody(){if(!this.rawRequest.body)return{};let H;try{H=await this.rawRequest.text()}catch{throw new O("The request body could not be read.")}if(H.trim()==="")return{};let K;try{K=JSON.parse(H)}catch{throw new O("The request body is not valid JSON.")}if(K===null||typeof K!=="object")throw new O("The request body must be a JSON object.");return K}validateInput(H){let K={},G=Object.entries(this.schema).map(([W,Q])=>({key:W,rules:Object.entries(Q).map(([T,X])=>({rule:T,message:X,check:typeof X==="function"?null:this.ruleFor(W,T)}))}));for(let{key:W,rules:Q}of G){let T=H.get(W),X=Q.some(({rule:$})=>$==="required"),Z=T===void 0||T===null||T==="",Y=[];for(let{rule:$,message:J,check:e}of Q){let P=J,x=!1;if(typeof J==="function")P=J(T),x=typeof P>"u";else x=e(T);if(x)continue;if(Z&&!X)continue;if($==="required"){Y.splice(0,Y.length,String(P));break}if(!Y.includes(String(P)))Y.push(String(P))}if(Y.length>0)K[W]=Y}for(let[W,Q]of Object.entries(this.refine(H.toJSON())??{})){let T=K[W]??[];K[W]=T.includes(Q)?T:[...T,Q]}if(Object.keys(K).length>0)throw new A(K);return H}ruleFor(H,K){try{return d(K)}catch(G){if(G instanceof D)throw new D(`${this.constructor.name}.schema.${H}: ${G.message}`);throw G}}async input(){return this.validateInput(await this.parseBody())}async safeInput(){let H=await this.parseBody();try{return this.validateInput(H),{isValid:!0,errors:{},input:H}}catch(K){if(!(K instanceof A))throw K;return{isValid:!1,errors:K.errors,input:H}}}}class TH extends O{error;constructor(H="Not authorized"){super(H);this.name="AuthorizationError",this.error=H,this.payload={api:{status:401,data:{error:B("authorization",this.error,401)}},view:{}}}}class w extends O{static apiStatus=403;error;constructor(H="Insufficient permissions"){super(H);this.name="InsufficientPermissionsError",this.error=H,this.payload={api:{status:w.apiStatus,data:{error:B("permission",this.error,w.apiStatus)}},view:{status:403}}}}class I extends O{total;constructor(H){super("Range not satisfiable");this.total=H;this.name="RangeNotSatisfiableError",this.payload={api:{status:416,data:{error:_("range_not_satisfiable","Range not satisfiable",416)},headers:{"Content-Range":h(H),"Accept-Ranges":"bytes","Cache-Control":"no-store"}},view:{}}}}class U extends O{fileName;constructor(H){super("File not found");this.fileName=H;this.name="FileNotFoundError",this.payload={api:{status:404,data:{error:_("not_found","Not found",404)},headers:{"Cache-Control":"no-store"}},view:{}}}}class XH extends O{constructor(H={}){super("Authentication error");this.name="AuthenticationError";let K=H.redirectTo??"/auth/sign-in";this.payload={api:{status:401,data:{error:B("authentication","Authentication error",401)}},viewData:{status:200,data:{},headers:{"Cache-Control":"private, no-cache, no-store, max-age=0, must-revalidate"},directive:{kind:"Redirect",path:K}},view:{status:302,headers:{"Cache-Control":"private, no-cache, no-store, max-age=0, must-revalidate",Location:K}}}}}class C{static getFacadeAccessor(){throw Error(`Facade [${this.name}] does not implement getFacadeAccessor().`)}static getFacadeRoot(){return s(this.getFacadeAccessor())}}class E{async delete(H){throw Error(`${this.constructor.name} does not implement delete(). Override it to remove objects from this backend.`)}async read(H){let K=typeof H==="string"?{name:H}:H,G=await this.fetch({name:K.name,bucket:K.bucket});if(!G.ok)throw new U(K.name);let W=G.headers.get("Content-Type")??"application/octet-stream",Q=G.headers.get("ETag")??void 0,T=G.headers.get("Last-Modified"),X=T?new Date(T):void 0;if(K.range){let $=await G.blob();return{body:$,start:0,end:$.size-1,total:$.size,partial:!1,type:W,etag:Q,lastModified:X,name:K.name}}let Z=Number(G.headers.get("Content-Length")),Y=Number.isFinite(Z)?Z:0;return{body:G.body,start:0,end:Y-1,total:Y,partial:!1,type:W,etag:Q,lastModified:X,name:K.name}}async size(H){let K=typeof H==="string"?H:H.name,G=typeof H==="string"?void 0:H.bucket,W=await this.fetch({name:K,bucket:G});if(!W.ok)throw new U(K);let Q=Number(W.headers.get("Content-Length"));if(Number.isFinite(Q))return await W.body?.cancel(),Q;return(await W.blob()).size}}function t(H,K){if(!K)return H;let G=H.getReader(),W=!1,Q,T=()=>{if(W=!0,Q)K.removeEventListener("abort",Q)};return new ReadableStream({start(X){if(Q=()=>{if(W)return;T(),X.error(K.reason),G.cancel(K.reason).catch(()=>{})},K.aborted)Q();else K.addEventListener("abort",Q,{once:!0})},async pull(X){let Z;try{Z=await G.read()}catch(Y){if(W)return;T(),X.error(Y);return}if(W)return;if(Z.done){T(),X.close();return}X.enqueue(Z.value)},cancel(X){return T(),G.cancel(X)}},{highWaterMark:0})}import{readdir as YH,unlink as ZH}from"fs/promises";import{isAbsolute as $H,relative as JH,resolve as l,sep as OH}from"path";class q extends E{configured;constructor(H){super();this.configured=H}get folderPath(){return this.configured??`${j()}/storage`}async put(H,{signal:K}={}){K?.throwIfAborted();let G,W;if(H instanceof Blob)G=H,W=`${Bun.randomUUIDv7()}.${H.type.split("/")[1].split(";")[0]}`;else G=H.body,W=H.name;let Q=G instanceof Buffer?G:G instanceof Blob||G instanceof File?Buffer.from(await G.arrayBuffer()):"",T=`${this.folderPath}/${W}`;return K?.throwIfAborted(),await Bun.write(T,Q),W}async fetch(H,{signal:K}={}){K?.throwIfAborted();let G=process.env.BUCKET_NAME,W;if(typeof H==="string")W=H;else G=H.bucket??G,W=H.name;if(!W)throw Error("Object name has to be specified");let Q=`${this.folderPath}/${W}`,T=Bun.file(Q),X=t(Bun.file(Q).stream(),K),Z=new Date(T.lastModified).toUTCString();return new Response(X,{headers:{"Content-Type":T.type,"Content-Length":String(T.size),"Cache-Control":"private, max-age=12000, must-revalidate","Last-Modified":Z}})}async read(H){let K=typeof H==="string"?{name:H}:H,{name:G,range:W=null}=K;if(!G)throw Error("Object name has to be specified");let Q=Bun.file(`${this.folderPath}/${G}`);if(!await Q.exists())throw new U(G);let T=Q.size,X=W?v(W,T):null;if(W&&!X)throw new I(T);let Z=X?.start??0,Y=X?X.end:T-1;return{body:X?Q.slice(Z,Y+1):Q,start:Z,end:Y,total:T,partial:Boolean(X),type:Q.type||"application/octet-stream",lastModified:new Date(Q.lastModified),name:G}}async size(H){let K=typeof H==="string"?H:H.name,G=Bun.file(`${this.folderPath}/${K}`);if(!await G.exists())throw new U(K);return G.size}async delete(H){let K=typeof H==="string"?H:H.name;if(!K)throw Error("Object name has to be specified");let G=l(this.folderPath),W=l(G,K),Q=JH(G,W);if(!Q||Q===".."||Q.startsWith(`..${OH}`)||$H(Q))throw Error(`Refusing to delete "${K}": it is outside the storage folder`);try{await ZH(W)}catch(T){if(T?.code==="ENOENT")return;throw T}}async list(){return await YH(this.folderPath)}}function O0(H){return H}function r(){return{driver:new q}}class k{static token="filesystem";driver;constructor(H={}){this.driver=H.driver??r().driver}}import{Buffer as RH}from"buffer";async function a(H){try{return(await import("sharp")).default}catch(K){throw Error(`${H} requires the 'sharp' package. Install it with \`bun add sharp\`.`,{cause:K})}}class UH extends C{static getFacadeAccessor(){return k}static async put(H,K={}){return this.getFacadeRoot().driver.put(H,K)}static async metadata(H){let K=RH.from(await H.arrayBuffer()),G=await a("Storage.metadata()");try{return await G(K).metadata()}catch{return{}}}static async fetch(H,K={}){return K.signal?.throwIfAborted(),this.getFacadeRoot().driver.fetch(H,K)}static async read(H,K={}){let G=typeof H==="string"?{name:H}:{...H},W="range"in K?K.range??null:G.range!==void 0?G.range:R.getStore()?.rangeRequest??null;return this.getFacadeRoot().driver.read({...G,range:W})}static list(H){return this.getFacadeRoot().driver.list(H)}static async delete(H){return this.getFacadeRoot().driver.delete(H)}}import{mkdir as y,readdir as MH,access as PH}from"fs/promises";async function b(H){try{return await PH(H),!0}catch{return!1}}class c{config;static token="log";writer;isReady=!1;flushTimeout;fileSize=0;writerSize=0;isCreatingFile=!1;bootPromise=null;currentLogFilePath;get logsDirPath(){return`${j()}/storage/logs`}constructor(H){this.config=H}boot(){if(!this.bootPromise)this.bootPromise=this.createStorage().catch((H)=>{console.error("Log storage unavailable, file logging disabled",H)}).then(()=>{this.isReady=!0});return this.bootPromise}async createStorage(){let H=`${j()}/storage`;if(!await b(H))await y(H);if(!await b(this.logsDirPath))await y(this.logsDirPath);await this.newLogFile()}async newLogFile(){if(!await b(this.logsDirPath))await y(this.logsDirPath);if(this.isCreatingFile=!0,this.currentLogFilePath){this.writer.flush(),this.writer.end(),this.writer=null;let G=new File([await Bun.file(this.currentLogFilePath).arrayBuffer()],this.currentLogFilePath.split("/").pop(),{type:"text/plain"});this.config.onLogFileClosed(G),this.fileSize=0,this.writerSize=0}let K=(await MH(this.logsDirPath)).sort().reverse()[0];if(K){let G=Bun.file(`${this.logsDirPath}/${K}`);if(G.size<this.config.maxFileSize)this.currentLogFilePath=`${this.logsDirPath}/${K}`,this.writer=G.writer(),this.writer.write(await G.text()),this.writer.write(`
2
+ import{vf as O,wf as _,xf as B}from"./chunk-xqyx8kzr.js";import{Af as R}from"./chunk-17nh5gfm.js";import{xg as s}from"./chunk-sh1cfx9j.js";import{Kg as j}from"./chunk-kmebynhc.js";import{Rg as DH}from"./chunk-fc28h7g2.js";class f{static kind="controller";constructor(){}}class HH extends f{}function F(H){let K=new Map;if(!H)return K;for(let G of H.split(";")){let W=G.indexOf("=");if(W===-1)continue;let Q=G.slice(0,W).trim();if(!Q)continue;K.set(Q,G.slice(W+1).trim())}return K}function zH(H){return F(H.headers.get("cookie"))}function M(H){if(!/^\d+$/.test(H))return null;let K=Number(H);return Number.isSafeInteger(K)?K:null}function g(H){if(!H)return null;let K=H.trim();if(!/^bytes=/i.test(K))return null;let W=K.slice(6).split(",").map((J)=>J.trim()).filter((J)=>J!=="");if(W.length!==1)return null;let Q=W[0],T=Q.indexOf("-");if(T===-1)return null;let X=Q.slice(0,T),Z=Q.slice(T+1);if(X===""){let J=M(Z);if(J===null)return null;return{kind:"suffix",suffixLength:J}}let Y=M(X);if(Y===null)return null;if(Z==="")return{kind:"offset",start:Y,end:null};let $=M(Z);if($===null||$<Y)return null;return{kind:"offset",start:Y,end:$}}function v(H,K){if(!Number.isFinite(K)||K<=0)return null;let G,W;if(H.kind==="suffix"){if(H.suffixLength<=0)return null;G=Math.max(0,K-H.suffixLength),W=K-1}else{if(H.start>=K)return null;if(G=H.start,W=H.end===null?K-1:Math.min(H.end,K-1),W<G)return null}return{start:G,end:W,length:W-G+1}}function xH(H){if(H.kind==="suffix")return`bytes=-${H.suffixLength}`;return H.end===null?`bytes=${H.start}-`:`bytes=${H.start}-${H.end}`}function FH(H){if(!H)return null;let K=/^bytes\s+(\d+)-(\d+)\/(\d+)$/i.exec(H.trim());if(!K)return null;let G=M(K[1]),W=M(K[2]),Q=M(K[3]);if(G===null||W===null||Q===null||W<G)return null;return{start:G,end:W,total:Q}}function NH(H,K,G){return`bytes ${H}-${K}/${G}`}function h(H){return`bytes */${H}`}class A extends O{errors={};constructor(H){super("Validation error");this.name="ValidationError",this.errors=H,this.payload={api:{status:400,data:{error:{kind:"validation_error",messages:H,status:400}},headers:{"Content-Type":"application/json"}},view:{status:400}}}}function KH(H){let[K,G]=H.match(/\d+|\D+/g)??[];if(!K||!G)return 0;let W=Number.parseInt(K);switch(G){case"B":return W;case"KB":return W*1024;case"MB":return W*1024*1024;case"GB":return W*1024*1024*1024;case"TB":return W*1024*1024*1024*1024;default:return 0}}function WH(H){switch(H){case"image":return"image";case"png":return"image/png";case"jpg":return"image/jpeg";case"jpeg":return"image/jpeg";case"ttf":return"font/ttf";case"excel":return"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";case"csv":return"text/csv";case"word":return"application/vnd.openxmlformats-officedocument.wordprocessingml.document";case"pdf":return"application/pdf";case"json":return"application/json";default:return H}}function m(H){if(typeof H==="string"||Array.isArray(H))return H.length;return}function N(H){return typeof H==="number"&&!Number.isNaN(H)}var GH=["required","string","boolean","number","email","password","min","max","gte","lte","file","fileType","fileSize"];class D extends Error{name="InvalidValidationRuleError"}function z(H,K){let G=K===void 0||K.trim()===""?Number.NaN:Number(K);if(Number.isNaN(G))throw new D(`Validation rule "${H}:${K??""}" needs a number, e.g. "${H}:3"`);return G}function d(H){let[K,G]=H.split(":");switch(K){case"required":return(W)=>{if(W instanceof Blob)return W.size>0;if(W===null||W===void 0)return!1;if(typeof W==="string"||Array.isArray(W))return W.length>0;return!0};case"string":return(W)=>typeof W==="string";case"boolean":return(W)=>typeof W==="boolean";case"number":return(W)=>N(W);case"password":return(W)=>{return typeof W==="string"&&/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9]).{8,}$/.test(W)};case"min":{let W=z(K,G);return(Q)=>{let T=m(Q);return T!==void 0&&T>=W}}case"max":{let W=z(K,G);return(Q)=>{let T=m(Q);return T!==void 0&&T<=W}}case"gte":{let W=z(K,G);return(Q)=>N(Q)&&Q>=W}case"lte":{let W=z(K,G);return(Q)=>N(Q)&&Q<=W}case"email":return(W)=>{return typeof W==="string"&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(W)};case"file":return(W)=>{return W instanceof Blob};case"fileType":{if(!G)throw new D('Validation rule "fileType" needs a type, e.g. "fileType:png" or "fileType:image"');let W=WH(G);return(Q)=>Q instanceof Blob&&Q.type.startsWith(W)}case"fileSize":{let W=KH(G??"");if(W===0&&!/^0+(B|KB|MB|GB|TB)$/.test(G??""))throw new D(`Validation rule "fileSize:${G??""}" needs a whole size in B, KB, MB, GB or TB, e.g. "fileSize:5MB"`);return(Q)=>Q instanceof Blob&&Q.size<=W}default:throw new D(`Unknown validation rule "${H}". Known rules: ${GH.join(", ")}`)}}function p(H){if(typeof H!=="string")return null;let[K]=H.split(";",1),G=K.trim().toLowerCase();return G===""?null:G}function i(H){if(H===null)return!1;if(H==="application/json")return!0;let K=H.indexOf("/");return K>0&&H.endsWith("+json")&&H.length>K+1+5}var V=new WeakMap;function EH(H,K){V.set(H,{clientAddress:K})}function u(H){return V.has(H)}function qH(H){return V.get(H)?.clientAddress}var n=new WeakMap;function yH(H,K){n.set(H,K)}function o(H){return n.get(H)??null}var S=new WeakMap;function bH(H,K){let G=S.get(H)??[];if(!G.includes(K))S.set(H,[...G,K])}function cH(H){return S.get(H)??[]}class L{data;constructor(H){this.data=H}get(H){return this.data[H]}has(H){return this.data[H]!==void 0}toJSON(){return this.data}}class QH{kind;rawRequest;headers;cookies;search;schema={};routePath;params;domain;constructor(H,K,G,W){if(!H){let Y=R.getStore().req;this.params=Y.params,this.rawRequest=Y.rawRequest,this.kind=Y.kind,this.routePath=Y.routePath,this.domain=Y.domain??null}else this.params=K,this.rawRequest=H,this.routePath=W,this.kind=G??"api",this.domain=o(H);this.headers=this.rawRequest.headers;let Q=F(this.rawRequest.headers.get("Cookie")),T=new URL(this.rawRequest.url),X=new Map;for(let[Y,$]of T.searchParams)if(X.has(Y)){let J=X.get(Y);if(Array.isArray(J))J.push($),X.set(Y,J);else X.set(Y,[J,$])}else X.set(Y,$);let Z=Object.fromEntries(X.entries());this.search=new L(Z),this.cookies=Q}locale(){return R.getStore().locale}ctx(){return R.getStore()}isModelOriginated(){return u(this.rawRequest)}get signal(){return this.rawRequest.signal}range(){return g(this.rawRequest.headers.get("Range"))}refine(H){return{}}async parseBody(){let H=p(this.rawRequest.headers.get("Content-Type"));if(i(H))return new L(await this.parseJsonBody());if(H==="application/x-www-form-urlencoded"||H==="multipart/form-data"){let K;try{K=await this.rawRequest.formData()}catch{throw new O("The request body could not be read as a form.")}let G=new Map;for(let[W,Q]of K.entries())if(G.has(W)){let T=G.get(W);if(Array.isArray(T))T.push(Q);else G.set(W,[T,Q])}else G.set(W,Q);return new L(Object.fromEntries(G.entries()))}return new L({})}async parseJsonBody(){if(!this.rawRequest.body)return{};let H;try{H=await this.rawRequest.text()}catch{throw new O("The request body could not be read.")}if(H.trim()==="")return{};let K;try{K=JSON.parse(H)}catch{throw new O("The request body is not valid JSON.")}if(K===null||typeof K!=="object")throw new O("The request body must be a JSON object.");return K}validateInput(H){let K={},G=Object.entries(this.schema).map(([W,Q])=>({key:W,rules:Object.entries(Q).map(([T,X])=>({rule:T,message:X,check:typeof X==="function"?null:this.ruleFor(W,T)}))}));for(let{key:W,rules:Q}of G){let T=H.get(W),X=Q.some(({rule:$})=>$==="required"),Z=T===void 0||T===null||T==="",Y=[];for(let{rule:$,message:J,check:e}of Q){let P=J,x=!1;if(typeof J==="function")P=J(T),x=typeof P>"u";else x=e(T);if(x)continue;if(Z&&!X)continue;if($==="required"){Y.splice(0,Y.length,String(P));break}if(!Y.includes(String(P)))Y.push(String(P))}if(Y.length>0)K[W]=Y}for(let[W,Q]of Object.entries(this.refine(H.toJSON())??{})){let T=K[W]??[];K[W]=T.includes(Q)?T:[...T,Q]}if(Object.keys(K).length>0)throw new A(K);return H}ruleFor(H,K){try{return d(K)}catch(G){if(G instanceof D)throw new D(`${this.constructor.name}.schema.${H}: ${G.message}`);throw G}}async input(){return this.validateInput(await this.parseBody())}async safeInput(){let H=await this.parseBody();try{return this.validateInput(H),{isValid:!0,errors:{},input:H}}catch(K){if(!(K instanceof A))throw K;return{isValid:!1,errors:K.errors,input:H}}}}class TH extends O{error;constructor(H="Not authorized"){super(H);this.name="AuthorizationError",this.error=H,this.payload={api:{status:401,data:{error:B("authorization",this.error,401)}},view:{}}}}class w extends O{static apiStatus=403;error;constructor(H="Insufficient permissions"){super(H);this.name="InsufficientPermissionsError",this.error=H,this.payload={api:{status:w.apiStatus,data:{error:B("permission",this.error,w.apiStatus)}},view:{status:403}}}}class I extends O{total;constructor(H){super("Range not satisfiable");this.total=H;this.name="RangeNotSatisfiableError",this.payload={api:{status:416,data:{error:_("range_not_satisfiable","Range not satisfiable",416)},headers:{"Content-Range":h(H),"Accept-Ranges":"bytes","Cache-Control":"no-store"}},view:{}}}}class U extends O{fileName;constructor(H){super("File not found");this.fileName=H;this.name="FileNotFoundError",this.payload={api:{status:404,data:{error:_("not_found","Not found",404)},headers:{"Cache-Control":"no-store"}},view:{}}}}class XH extends O{constructor(H={}){super("Authentication error");this.name="AuthenticationError";let K=H.redirectTo??"/auth/sign-in";this.payload={api:{status:401,data:{error:B("authentication","Authentication error",401)}},viewData:{status:200,data:{},headers:{"Cache-Control":"private, no-cache, no-store, max-age=0, must-revalidate"},directive:{kind:"Redirect",path:K}},view:{status:302,headers:{"Cache-Control":"private, no-cache, no-store, max-age=0, must-revalidate",Location:K}}}}}class C{static getFacadeAccessor(){throw Error(`Facade [${this.name}] does not implement getFacadeAccessor().`)}static getFacadeRoot(){return s(this.getFacadeAccessor())}}class E{async delete(H){throw Error(`${this.constructor.name} does not implement delete(). Override it to remove objects from this backend.`)}async read(H){let K=typeof H==="string"?{name:H}:H,G=await this.fetch({name:K.name,bucket:K.bucket});if(!G.ok)throw new U(K.name);let W=G.headers.get("Content-Type")??"application/octet-stream",Q=G.headers.get("ETag")??void 0,T=G.headers.get("Last-Modified"),X=T?new Date(T):void 0;if(K.range){let $=await G.blob();return{body:$,start:0,end:$.size-1,total:$.size,partial:!1,type:W,etag:Q,lastModified:X,name:K.name}}let Z=Number(G.headers.get("Content-Length")),Y=Number.isFinite(Z)?Z:0;return{body:G.body,start:0,end:Y-1,total:Y,partial:!1,type:W,etag:Q,lastModified:X,name:K.name}}async size(H){let K=typeof H==="string"?H:H.name,G=typeof H==="string"?void 0:H.bucket,W=await this.fetch({name:K,bucket:G});if(!W.ok)throw new U(K);let Q=Number(W.headers.get("Content-Length"));if(Number.isFinite(Q))return await W.body?.cancel(),Q;return(await W.blob()).size}}function t(H,K){if(!K)return H;let G=H.getReader(),W=!1,Q,T=()=>{if(W=!0,Q)K.removeEventListener("abort",Q)};return new ReadableStream({start(X){if(Q=()=>{if(W)return;T(),X.error(K.reason),G.cancel(K.reason).catch(()=>{})},K.aborted)Q();else K.addEventListener("abort",Q,{once:!0})},async pull(X){let Z;try{Z=await G.read()}catch(Y){if(W)return;T(),X.error(Y);return}if(W)return;if(Z.done){T(),X.close();return}X.enqueue(Z.value)},cancel(X){return T(),G.cancel(X)}},{highWaterMark:0})}import{readdir as YH,unlink as ZH}from"fs/promises";import{isAbsolute as $H,relative as JH,resolve as l,sep as OH}from"path";class q extends E{configured;constructor(H){super();this.configured=H}get folderPath(){return this.configured??`${j()}/storage`}async put(H,{signal:K}={}){K?.throwIfAborted();let G,W;if(H instanceof Blob)G=H,W=`${Bun.randomUUIDv7()}.${H.type.split("/")[1].split(";")[0]}`;else G=H.body,W=H.name;let Q=G instanceof Buffer?G:G instanceof Blob||G instanceof File?Buffer.from(await G.arrayBuffer()):"",T=`${this.folderPath}/${W}`;return K?.throwIfAborted(),await Bun.write(T,Q),W}async fetch(H,{signal:K}={}){K?.throwIfAborted();let G=process.env.BUCKET_NAME,W;if(typeof H==="string")W=H;else G=H.bucket??G,W=H.name;if(!W)throw Error("Object name has to be specified");let Q=`${this.folderPath}/${W}`,T=Bun.file(Q),X=t(Bun.file(Q).stream(),K),Z=new Date(T.lastModified).toUTCString();return new Response(X,{headers:{"Content-Type":T.type,"Content-Length":String(T.size),"Cache-Control":"private, max-age=12000, must-revalidate","Last-Modified":Z}})}async read(H){let K=typeof H==="string"?{name:H}:H,{name:G,range:W=null}=K;if(!G)throw Error("Object name has to be specified");let Q=Bun.file(`${this.folderPath}/${G}`);if(!await Q.exists())throw new U(G);let T=Q.size,X=W?v(W,T):null;if(W&&!X)throw new I(T);let Z=X?.start??0,Y=X?X.end:T-1;return{body:X?Q.slice(Z,Y+1):Q,start:Z,end:Y,total:T,partial:Boolean(X),type:Q.type||"application/octet-stream",lastModified:new Date(Q.lastModified),name:G}}async size(H){let K=typeof H==="string"?H:H.name,G=Bun.file(`${this.folderPath}/${K}`);if(!await G.exists())throw new U(K);return G.size}async delete(H){let K=typeof H==="string"?H:H.name;if(!K)throw Error("Object name has to be specified");let G=l(this.folderPath),W=l(G,K),Q=JH(G,W);if(!Q||Q===".."||Q.startsWith(`..${OH}`)||$H(Q))throw Error(`Refusing to delete "${K}": it is outside the storage folder`);try{await ZH(W)}catch(T){if(T?.code==="ENOENT")return;throw T}}async list(){return await YH(this.folderPath)}}function O0(H){return H}function r(){return{driver:new q}}class k{static token="filesystem";driver;constructor(H={}){this.driver=H.driver??r().driver}}import{Buffer as RH}from"buffer";async function a(H){try{return(await import("sharp")).default}catch(K){throw Error(`${H} requires the 'sharp' package. Install it with \`bun add sharp\`.`,{cause:K})}}class UH extends C{static getFacadeAccessor(){return k}static async put(H,K={}){return this.getFacadeRoot().driver.put(H,K)}static async metadata(H){let K=RH.from(await H.arrayBuffer()),G=await a("Storage.metadata()");try{return await G(K).metadata()}catch{return{}}}static async fetch(H,K={}){return K.signal?.throwIfAborted(),this.getFacadeRoot().driver.fetch(H,K)}static async read(H,K={}){let G=typeof H==="string"?{name:H}:{...H},W="range"in K?K.range??null:G.range!==void 0?G.range:R.getStore()?.rangeRequest??null;return this.getFacadeRoot().driver.read({...G,range:W})}static list(H){return this.getFacadeRoot().driver.list(H)}static async delete(H){return this.getFacadeRoot().driver.delete(H)}}import{mkdir as y,readdir as MH,access as PH}from"fs/promises";async function b(H){try{return await PH(H),!0}catch{return!1}}class c{config;static token="log";writer;isReady=!1;flushTimeout;fileSize=0;writerSize=0;isCreatingFile=!1;bootPromise=null;currentLogFilePath;get logsDirPath(){return`${j()}/storage/logs`}constructor(H){this.config=H}boot(){if(!this.bootPromise)this.bootPromise=this.createStorage().catch((H)=>{console.error("Log storage unavailable, file logging disabled",H)}).then(()=>{this.isReady=!0});return this.bootPromise}async createStorage(){let H=`${j()}/storage`;if(!await b(H))await y(H);if(!await b(this.logsDirPath))await y(this.logsDirPath);await this.newLogFile()}async newLogFile(){if(!await b(this.logsDirPath))await y(this.logsDirPath);if(this.isCreatingFile=!0,this.currentLogFilePath){this.writer.flush(),this.writer.end(),this.writer=null;let G=new File([await Bun.file(this.currentLogFilePath).arrayBuffer()],this.currentLogFilePath.split("/").pop(),{type:"text/plain"});this.config.onLogFileClosed(G),this.fileSize=0,this.writerSize=0}let K=(await MH(this.logsDirPath)).sort().reverse()[0];if(K){let G=Bun.file(`${this.logsDirPath}/${K}`);if(G.size<this.config.maxFileSize)this.currentLogFilePath=`${this.logsDirPath}/${K}`,this.writer=G.writer(),this.writer.write(await G.text()),this.writer.write(`
3
3
  `),this.writer.flush(),this.fileSize=G.size}if(!this.writer){let G=`${new Date(Date.now()).toISOString()}.log`.replaceAll(":","-");this.currentLogFilePath=`${this.logsDirPath}/${G}`;let W=Bun.file(`${this.logsDirPath}/${G}`);this.writer=W.writer(),this.fileSize=0,this.writerSize=0}this.isCreatingFile=!1}async log(H,K,G={}){if(!this.isReady)await this.boot();let W=R.getStore(),Q={};if(W)Q={url:W.req.rawRequest.url,method:W.req.rawRequest.method,headers:W.req.rawRequest.headers,body:W.req.rawRequest.body};let T={timestamp:new Date(Date.now()).toISOString(),env:Bun.env.NODE_ENV,level:H,message:K,metadata:{...Q,...G}},X="";try{X=JSON.stringify(T)}catch(Z){console.log("Error parsing log object",Z)}try{let Z=this.config.onLogCreated(T);if(Z instanceof Promise)Z.catch((Y)=>console.error("Error in onLogCreated",Y))}catch(Z){console.error("Error in onLogCreated",Z)}if(!this.writer)return;this.writerSize+=X.length,this.fileSize+=X.length;try{this.writer.write(X),this.writer.write(`
4
4
  `),this.tryFlush()}catch(Z){console.error("Error writing log",Z)}}async tryFlush(){if(this.fileSize>this.config.maxFileSize){if(!this.isCreatingFile)await this.newLogFile()}if(this.writerSize>this.config.maxFileSize/2)await this.writer.flush(),this.writerSize=0,await this.newLogFile();else clearTimeout(this.flushTimeout),this.flushTimeout=setTimeout(async()=>{await this.writer.flush(),this.writerSize=0},100)}}class LH extends C{static getFacadeAccessor(){return c}static debug(H,K){this.getFacadeRoot().log("debug",H,K)}static info(H,K){this.getFacadeRoot().log("info",H,K)}static notice(H,K){this.getFacadeRoot().log("notice",H,K)}static warning(H,K){this.getFacadeRoot().log("warning",H,K)}static error(H,K){this.getFacadeRoot().log("error",H,K)}static critical(H,K){this.getFacadeRoot().log("critical",H,K)}static alert(H,K){this.getFacadeRoot().log("alert",H,K)}static emergency(H,K){this.getFacadeRoot().log("emergency",H,K)}}class CH{config;static token="redis";instance=null;constructor(H={}){this.config=H}get client(){return this.instance??=new(jH())(this.config.url,this.config.options)}set client(H){this.instance=H}close(){let H=this.instance;this.instance=null,H?.close()}}function jH(){let H=globalThis.Bun?.RedisClient;if(typeof H!=="function")throw Error("Redis requires Bun's built-in Redis client, which this runtime does not provide. Run the app under Bun, or bind your own client for the 'redis' token.");return H}
5
5
  export{f as Le,HH as Me,zH as Ne,p as Oe,EH as Pe,qH as Qe,g as Re,v as Se,xH as Te,FH as Ue,NH as Ve,h as We,yH as Xe,o as Ye,bH as Ze,cH as _e,A as $e,D as af,QH as bf,TH as cf,w as df,I as ef,U as ff,XH as gf,C as hf,a as if,E as jf,t as kf,q as lf,O0 as mf,r as nf,k as of,UH as pf,c as qf,LH as rf,CH as sf};
6
6
 
7
- //# debugId=7878C9506444F2EC64756E2164756E21
7
+ //# debugId=CF3D6FC1A273451F64756E2164756E21
@@ -25,6 +25,6 @@
25
25
  "import type { RedisClient, RedisOptions } from \"bun\";\nimport type { RedisConfig } from \"./config\";\n\n/**\n * The constructor `Bun.RedisClient` is, described structurally.\n *\n * Reached through the `Bun` global rather than `import { RedisClient } from\n * \"bun\"`, which is what this module used to do. That was a **value** import of\n * a specifier only the Bun runtime can resolve, and this class is re-exported\n * from `gemi/services` and reached from `gemi/facades` through the `Redis`\n * facade — the two barrels that are also the only door to `CronJob`, `Job`,\n * `DB` and `Lang`. So the specifier landed in the graph of every app and every\n * test that imported either one, and under a browser-targeted runner the whole\n * barrel simply failed to resolve (#396, #403).\n *\n * The global carries no specifier for a bundler or a test runner to resolve, so\n * the cost is paid only by code that actually asks for a client.\n */\ntype RedisClientConstructor = new (\n url?: string,\n options?: RedisOptions,\n) => RedisClient;\n\nexport class RedisManager {\n static token = \"redis\";\n\n private instance: RedisClient | null = null;\n\n constructor(public config: RedisConfig = {}) {}\n\n /**\n * Bun's Redis client. Built on first access and memoized.\n *\n * It connects lazily on the first command, so building it here is safe even\n * when Redis isn't running or configured — nothing connects until something\n * actually issues a command.\n */\n get client(): RedisClient {\n return (this.instance ??= new (redisClientConstructor())(\n this.config.url,\n this.config.options,\n ));\n }\n\n /**\n * `client` was a plain public property before it was a getter, and\n * overwriting a manager's client is how this repo fakes one —\n * `S3Driver.test.ts` does exactly that, and the `S3Driver` half of #403 kept\n * that seam working on purpose. An accessor with no setter would have turned\n * `manager.client = fake` into `TypeError: Attempted to assign to readonly\n * property` instead, which is not a change this was meant to make.\n */\n set client(client: RedisClient) {\n this.instance = client;\n }\n\n /**\n * Closes the client, when one was built; a later `client` builds a new one.\n * Does not build one to close it.\n */\n close(): void {\n const client = this.instance;\n this.instance = null;\n client?.close();\n }\n}\n\nfunction redisClientConstructor(): RedisClientConstructor {\n const ctor = (globalThis as any).Bun?.RedisClient as\n | RedisClientConstructor\n | undefined;\n\n if (typeof ctor !== \"function\") {\n throw new Error(\n \"Redis requires Bun's built-in Redis client, which this runtime does not provide. Run the app under Bun, or bind your own client for the 'redis' token.\",\n );\n }\n\n return ctor;\n}\n"
26
26
  ],
27
27
  "mappings": "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",
28
- "debugId": "7878C9506444F2EC64756E2164756E21",
28
+ "debugId": "CF3D6FC1A273451F64756E2164756E21",
29
29
  "names": []
30
30
  }
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{Kd as O,Ld as E,Md as k}from"./chunk-6rc6yec4.js";import{Ud as T,ce as R,ee as i,fe as C,ge as M,he as Xz}from"./chunk-ngq4n2b3.js";import{Af as l}from"./chunk-17nh5gfm.js";import{Mf as a}from"./chunk-6y62ccam.js";var $z=["every","none","some"],Vz=["is","isNot"];function g(z){return z==="many"?$z:Vz}function h(z,J){let W=Object.keys(z);return W.length>0&&W.every((Z)=>J.includes(Z))}var m="_count";function y(z){return Object.keys(z.relations).filter((J)=>z.relations[J]?.kind==="many").sort()}function N(z,J,W,Z){let X={model:z,operation:J,hasUser:W!=null};return Object.defineProperty(X,"user",{enumerable:!0,get(){if(W==null&&!Z)throw new R(z,J,"no-user");return W}}),X}class n{}class Qz extends n{}var qz=new Set(["findMany","findFirst","findFirstOrThrow","findUnique","findUniqueOrThrow","count","aggregate","groupBy","update","updateMany","delete","deleteMany"]),Yz=new Set(["create","createMany","upsert"]),jz=new Set(["update","updateMany","upsert"]),Lz=new Set(["update","updateMany"]),Kz=new Set(["create","createMany"]),p=new WeakMap;function Gz(z,J,W){if(typeof z!=="function")return z;let Z=p.get(z);if(Z!==void 0)return Z;let X;try{X=new z}catch($){throw new M(b(J),W,"constructor-threw",`${f(z)}, and constructing it threw:
2
+ import{Kd as O,Ld as E,Md as k}from"./chunk-jbzxb75e.js";import{Ud as T,ce as R,ee as i,fe as C,ge as M,he as Xz}from"./chunk-ngq4n2b3.js";import{Af as l}from"./chunk-17nh5gfm.js";import{Mf as a}from"./chunk-6y62ccam.js";var $z=["every","none","some"],Vz=["is","isNot"];function g(z){return z==="many"?$z:Vz}function h(z,J){let W=Object.keys(z);return W.length>0&&W.every((Z)=>J.includes(Z))}var m="_count";function y(z){return Object.keys(z.relations).filter((J)=>z.relations[J]?.kind==="many").sort()}function N(z,J,W,Z){let X={model:z,operation:J,hasUser:W!=null};return Object.defineProperty(X,"user",{enumerable:!0,get(){if(W==null&&!Z)throw new R(z,J,"no-user");return W}}),X}class n{}class Qz extends n{}var qz=new Set(["findMany","findFirst","findFirstOrThrow","findUnique","findUniqueOrThrow","count","aggregate","groupBy","update","updateMany","delete","deleteMany"]),Yz=new Set(["create","createMany","upsert"]),jz=new Set(["update","updateMany","upsert"]),Lz=new Set(["update","updateMany"]),Kz=new Set(["create","createMany"]),p=new WeakMap;function Gz(z,J,W){if(typeof z!=="function")return z;let Z=p.get(z);if(Z!==void 0)return Z;let X;try{X=new z}catch($){throw new M(b(J),W,"constructor-threw",`${f(z)}, and constructing it threw:
3
3
 
4
4
  ${$?.message??String($)}`,H,void 0,{cause:$})}return t(X,J,W),p.set(z,X),X}function S(z,J){return z.map((W,Z)=>Gz(W,J,Z))}var H=["before","scope","onCreate","onUpdate","redact"];var u=new WeakSet;function s(z,J){if(u.has(J))return;for(let W=0;W<J.length;W++)Uz(J[W],z,W);u.add(J)}function Uz(z,J,W){let Z=b(J),X=typeof z;if(z===null||Array.isArray(z)||X!=="object"&&X!=="function")throw new M(Z,W,"not-a-policy",o(z),H);if(X==="function"){if(!Mz(z))throw new M(Z,W,"not-constructable",f(z),H);return}t(z,J,W)}function t(z,J,W){let Z=b(J),X=0,$=[];for(let Y of H){let q=z[Y];if(q===void 0||q===null){if(Y in z)$.push(Y);continue}if(typeof q!=="function")throw new M(Z,W,"hook-not-callable",`'${Y}' that is ${o(q)} rather than a function`,H);X++}if(X>0)return;if($.length>0)throw new M(Z,W,"no-hooks",`It writes ${$.map((Y)=>`'${Y}'`).join(", ")} down and leaves ${$.length===1?"it":"them"} unset, which reads as `+"absent \u2014 so nothing is left to run.",H);let V=Fz(z),Q=Iz(V);throw new M(Z,W,"no-hooks",V.length===0?"It is empty.":`It spells ${Hz(V)}.`+(V.length===1&&V[0]==="default"?" A lone 'default' is a module namespace rather than the policy "+"inside it \u2014 put `entry.default` in the array, or import the "+"policy by name.":""),H,Q)}function Hz(z){let J=z.slice(0,8).map((W)=>`'${W}'`);return z.length>J.length?`${J.join(", ")} and ${z.length-J.length} more`:J.join(", ")}function Mz(z){try{return Reflect.construct(Bz,[],z),!0}catch{return!1}}var Bz=function(){};function Fz(z){let J=new Set,W=z;while(W!==null&&W!==Object.prototype){for(let Z of Object.getOwnPropertyNames(W))if(Z!=="constructor")J.add(Z);W=Object.getPrototypeOf(W)}return[...J]}function Iz(z){let J,W=2;for(let Z of z)for(let X of H){let $=Tz(Z.toLowerCase(),X.toLowerCase());if($<W)W=$,J={key:Z,hook:X}}return J}function Tz(z,J){if(z===J)return 0;let W=Array.from({length:J.length+1},(Z,X)=>X);for(let Z=1;Z<=z.length;Z++){let X=W[0];W[0]=Z;for(let $=1;$<=J.length;$++){let V=W[$];W[$]=Math.min(W[$]+1,W[$-1]+1,X+(z[Z-1]===J[$-1]?0:1)),X=V}}return W[J.length]}function o(z){if(z===null)return"null";if(z===void 0)return"undefined";if(typeof z==="string")return`the string ${JSON.stringify(z)}`;if(typeof z==="function")return f(z);if(Array.isArray(z))return"an array";if(typeof z==="object")return"an object";return`the ${typeof z} ${String(z)}`}function f(z){return z.name?`the function \`${z.name}\``:"an anonymous function"}function _(z){let J,W,Z,X=z;while(X&&X!==Function.prototype){if(Object.hasOwn(X,"$policy"))throw Error(`${X.name??"This model"} declares \`$policy\`, which is now \`$policies\` and takes a list. The old `+"name is not read, so this model is currently unpolicied \u2014 every "+"scope, onCreate and redact on it is being skipped.");if(Object.hasOwn(X,"$policies")&&X.$policies){let $=X.$policies;if($.length>0){let V=X;if(s(V,$),W===void 0&&J===void 0)W=$,Z=V;else J??=S(W,Z),W=void 0,J.unshift(...S($,V))}}X=Object.getPrototypeOf(X)}if(J!==void 0)return J;if(W===void 0)return Nz;return W.some(($)=>typeof $==="function")?S(W,Z):W}function r(z){let J=z;while(J&&J!==Function.prototype){if(Object.hasOwn(J,"$policies")&&J.$policies){let W=J.$policies;if(W.length>0)s(J,W)}J=Object.getPrototypeOf(J)}}function b(z){return z?.name??"This model"}var Nz=Object.freeze([]);function D(z,J,W,Z=[]){if(z.length===0)return W;let X=W,$;for(let V of z)if(V.before){if(V.before(J)===!1)throw new R(J.model,J.operation)}for(let V of z){if(!V.scope)continue;if(Kz.has(J.operation)){Sz(V,J);continue}let Q=V.scope(J);if(Q===void 0||Q===null)continue;if(Rz(J),Lz.has(J.operation)&&!V.onUpdate){let Y=Pz(Q);if(Y.length>0)($??=[]).push(...Y)}X=_z(X,Q)}if(Yz.has(J.operation)){for(let V of z)if(V.onCreate)X=Dz(X,J,V)}if(jz.has(J.operation)){for(let V of z)if(V.onUpdate)X=Az(X,J,V)}if($!==void 0)Cz($,J,X,Z);return X}function _z(z,J){let W=z?.where;if(W===void 0||W===null)return{...z,where:J};if(typeof W!=="object"||Array.isArray(W))return{...z,where:{AND:[W,J]}};let Z=W.AND,X=Z===void 0||Z===null?[]:Array.isArray(Z)?Z:[Z];return{...z,where:{...W,AND:[...X,J]}}}function Dz(z,J,W){let Z=(X)=>W.onCreate(J,{...X});if(J.operation==="createMany"){let X=z?.data;return{...z,data:Array.isArray(X)?X.map(Z):Z(X)}}if(J.operation==="upsert")return{...z,create:Z(z?.create)};return{...z,data:Z(z?.data)}}function Az(z,J,W){let Z=J.operation==="upsert"?"update":"data",X=z?.[Z];if(X===void 0||X===null)return z;return{...z,[Z]:W.onUpdate(J,{...X})}}function Cz(z,J,W,Z=[]){let X=W?.data;if(typeof X!=="object"||X===null)return;let $=z.filter((V)=>(V in X)&&!Z.includes(V));if($.length===0)return;throw new i(J.model,J.operation,[...new Set($)])}function Pz(z){if(typeof z!=="object"||z===null||Array.isArray(z))return[];let J=[];for(let W of Object.keys(z)){if(W==="AND"||W==="OR"||W==="NOT")continue;J.push(W)}return J}function Sz(z,J){if(z.onCreate)return;throw new T(J.operation,J.model,J.operation,`${J.model} has a policy that scopes reads but no 'onCreate', and ${J.operation} has no where clause for a scope to narrow. As written the policy would confine reads to the caller and let an insert name any value it likes. Add an onCreate that sets the scoped `+"column \u2014 or, if unscoped creates are intended, say so with an onCreate "+"that returns its data unchanged.")}function Rz(z){if(qz.has(z.operation))return;throw new T(z.operation,z.model,z.operation,`${z.model} has a policy with a scope, and ${z.operation} cannot carry one: its where clause compiles to an 'on conflict' target, which is a key rather than a filter. Running it would write outside the scope.
5
5
 
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{Fb as f,zb as qZ}from"./chunk-4v4v5wkh.js";import{Ob as m,Qb as M,Sb as XZ,Tb as e,Ub as HZ,Wb as KZ}from"./chunk-56p9a7nx.js";import{$b as J,Zb as o,_b as n,ac as t,bc as r,dc as a}from"./chunk-6dyt8w27.js";import{gc as K}from"./chunk-bsbn7qtd.js";import{$c as c,Bd as F,Cd as g,Dd as v,Ec as JZ,_c as WZ,dd as D,ld as d,md as w,qd as l,tc as IZ,xc as i,xd as T}from"./chunk-7hegzdkc.js";import{Ld as GZ,Md as h}from"./chunk-6rc6yec4.js";import{of as u,qf as y,rf as k,sf as S}from"./chunk-rhe7s1fm.js";import{Gf as zZ}from"./chunk-6y62ccam.js";import{mg as U}from"./chunk-ttckhvew.js";import{rg as p}from"./chunk-yc3n6zhr.js";import{wg as j}from"./chunk-0efykzjy.js";import{xg as $Z}from"./chunk-8r7xhy1g.js";async function LZ(Z){try{if(!await Z.shouldRun.call(Z))return}catch($){console.error(`Error evaluating shouldRun for cron job ${Z.name}:`,$);return}try{await Z.onTick.call(Z)}catch($){console.error(`Error executing cron job ${Z.name}:`,$)}try{await Z.callback.call(Z)}catch($){console.error(`Error in cron job ${Z.name}:`,$)}try{await Z.onComplete.call(Z)}catch($){console.error(`Error completing cron job ${Z.name}:`,$)}}class L{static token="scheduler";handles=[];resolved;inFlight=new Map;stopped=!1;constructor(Z){this.resolved=Z.jobs}get jobs(){return[...this.resolved]}useJobs(Z){this.resolved=Z}start(Z=($)=>$()){if(this.stopped=!1,this.resolved.length===0)return;let $=globalThis.__gemiCronJobs??=new Map,H=new Map;for(let W of this.resolved){let G=new W;if(!G.name){console.error(`Cron job must have a name \u2014 ${W.name||"an anonymous class"} has none, so it is not scheduled. If this is a base class that other jobs extend, move it out of the discovered directory: \`abstract\` does not survive to runtime, so a class under app/cron is indistinguishable from a job.`);continue}if(!G.cron){console.error(`Cron job must have an expression. Job: ${G.name}`);continue}let V=H.get(G.name);if(V!==void 0){console.error(`Two cron jobs claim the name "${G.name}" \u2014 ${V} is scheduled and ${W.name||"an anonymous class"} is not. A name is the scheduler's key, so only one job can hold it. Rename one.`);continue}H.set(G.name,W.name||"an anonymous class"),$.get(G.name)?.stop();let X=Bun.cron(G.cron,()=>{if(this.stopped)return;return this.track(G.name,()=>Z(()=>LZ(G)))});$.set(G.name,X),this.handles.push(X)}}stop(){this.stopped=!0;for(let Z of this.handles)Z.stop();this.handles=[]}async drain(Z=1/0){this.stop();let $,H=new Promise((W)=>{if(Z!==1/0)$=setTimeout(W,Z)});return await Promise.race([Promise.allSettled([...this.inFlight.values()].map((W)=>W.done)),H]),clearTimeout($),{unfinished:[...this.inFlight.values()].map((W)=>({...W.tick}))}}get running(){return this.inFlight.size}track(Z,$){let H={},W=Promise.resolve().then($).finally(()=>this.inFlight.delete(H));return this.inFlight.set(H,{tick:{name:Z,startedAt:new Date},done:W}),W}}import{isMainThread as QZ}from"worker_threads";var NZ=100,FZ=(Z)=>Math.min(NZ,Math.floor(Z/10));class xZ extends K{register(){this.app.singleton(J,()=>new J(this.app.config.get("queue",{}),{application:this.app}))}async boot(){let Z=this.app.config.get("queue",{});if(Z.jobs!==void 0)return;let{jobsDir:$}=U(o(),Z);this.app.make(J).useJobs(await e($))}async shutdown(Z){if(!this.app.resolved(J))return;let $=this.app.make(J);if($.running>0)console.log(`[gemi] Shutting down: waiting for ${$.running} running queued job(s).`);let H=Z?.timeoutMs,{unfinished:W}=await $.drain(H===void 0?1/0:Math.max(0,H-FZ(H)));if(W.length>0)return console.error("[gemi] Queued jobs still running at shutdown: "+W.map((G)=>`${G.name} (${G.id})`).join(", ")),{abandoned:!0}}}function z3(Z){if(EZ(Z),Bun.env.NODE_ENV!=="production")return TZ(Z);if(ZZ(Z))return;if(!t())return;if(!Z.bound(J))return;Z.make(J).start()}function ZZ(Z){let $=Z.config.get("queue",{}).driver??"memory";return $==="memory"||$ instanceof n}function SZ(Z){if(ZZ(Z))return!0;if(typeof Z.config.get("queue",{}).driver!=="function"||!Z.bound(J))return!1;try{return!Z.make(J).durable}catch{return!1}}function EZ(Z){let $=process.env.GEMI_QUEUE_CLAIM;if($===void 0||a())return;if(process.env.ROOT_DIR===void 0||!QZ)return;if(r()){if(!SZ(Z))return;console.warn('[gemi] GEMI_QUEUE_CLAIM=off is ignored: the memory queue driver keeps jobs in the process that dispatched them, so no worker could run them. This server runs its own jobs. Use a driver other processes can read, such as "database", to hand jobs to `gemi queue:work`.')}else if($.trim().toLowerCase()!=="on")console.warn(`[gemi] GEMI_QUEUE_CLAIM="${$}" is not "off" or "on", so this server claims jobs. Set it to "off" to leave them to \`gemi queue:work\`.`)}function TZ(Z){let $=globalThis.__gemiDevQueue;if(!$)return;if(globalThis.__gemiDevQueue=void 0,$.stop(),Z.bound(J))Z.make(J).start()}class RZ extends K{register(){this.app.singleton(v,()=>new v(this.app.config.get("auth",{})))}}var kZ=100,DZ=(Z)=>Math.min(kZ,Math.floor(Z/10));class jZ extends K{register(){this.app.singleton(L,()=>new L(U(m(),this.app.config.get("schedule",{}))))}async boot(){let Z=this.app.make(L),$=this.app.config.get("schedule",{});if($.jobs===void 0){let{jobsDir:W}=U(m(),$);Z.useJobs(await HZ(W))}if(process.env.GEMI_NO_SCHEDULE==="1")return;let H=this.app;Z.start((W)=>$Z.run(H,W))}async shutdown(Z){if(!this.app.resolved(L))return;let $=this.app.make(L);if($.running>0)console.log(`[gemi] Shutting down: waiting for ${$.running} running cron tick(s).`);let H=Z?.timeoutMs,{unfinished:W}=await $.drain(H===void 0?1/0:Math.max(0,H-DZ(H)));if(W.length>0)return console.error("[gemi] Cron jobs still running at shutdown: "+W.map((G)=>`${G.name} (started ${G.startedAt.toISOString()})`).join(", ")),{abandoned:!0}}}class N extends WZ{modelName;constructor(Z="FeatureFlag"){super();this.modelName=Z}get available(){return GZ(this.modelName)}async load(){if(!this.available)throw new c(this.modelName);let Z=h(this.modelName);return await Z.asSystem(()=>Z.findMany())}async write(Z,$,H){if(!this.available)throw new c(this.modelName);let W=h(this.modelName),G=this.hasActorColumn(W),V={active:$};if(G)V.updatedBy=H.actor;return await W.asSystem(()=>W.upsert({where:{key:Z},create:{key:Z,...V},update:V})),{actorRecorded:G}}hasActorColumn(Z){let $=Z?.$schema?.fields?.updatedBy;return $!==void 0&&$.type==="String"}}function x3(Z){return Z}function VZ(){return{features:void 0,enabled:!0,source:new N,model:"FeatureFlag",ttl:30,context:void 0,onEvaluate:void 0,maxClientFlags:200}}class MZ extends K{register(){this.app.singleton(D,()=>{let Z=this.app.config.get("features",{}),$=U(VZ(),Z);if(Z?.model!==void 0&&Z?.source===void 0)$.source=new N(Z.model);else if(Z?.model!==void 0&&Z.source instanceof N&&Z.source.modelName!==Z.model)k.warning(`app/config/features.ts sets \`model: "${Z.model}"\` and a source reading "${Z.source.modelName}". The source wins; drop \`model\` to silence this.`);return new D($,(H)=>k.warning(H))})}async boot(){let Z=this.app.make(D);if(!Z.config.enabled)return;try{await Z.refresh()}catch($){k.error(`Could not warm the feature flag cache at boot. ${$ instanceof Error?$.message:String($)}`)}}}class yZ extends K{register(){this.app.singleton(p,()=>new p(this.app.config.get("mail",{})))}}function wZ(Z){return`listener:${Z}`}function YZ(Z,$){fZ(Z);let{maxAttempts:H,backoff:W,worker:G}=$,V=Z.event.name,X=class extends XZ{maxAttempts=H;backoff=W;worker=G;async run(...Y){let[C,B]=bZ(Y),I=j(Q).rehydrate(C,B);await new Z().handle(I)}onFail(Y){console.error(`The listener ${Z.name} threw while handling ${V} off the queue. The queue will retry it up to ${H} times in total; nothing the dispatcher did is waiting on it.`,Y)}onDeadletter(Y){console.error(`The listener ${Z.name} failed every one of its ${H} attempts at ${V} and has been dead-lettered, so this side effect did not happen and will not be retried.`,Y)}};return Object.defineProperty(X,"name",{value:wZ(Z.name),writable:!0}),X}function fZ(Z){if(Object.getOwnPropertyDescriptor(Z,"name")?.writable)return;throw Error(`The listener ${Z.name} sets \`queued = true\` but does not declare \`static name\`, so it would be registered with the queue `+"under its class name \u2014 which a production build renames while the "+`payload that names it does not. Add: static name = "${Z.name}";`)}function bZ(Z){return typeof Z[0]==="string"?Z:Z[0]}class Q{static token="events";listeners={};events={};warnedFor=new Set;warnedAboutWaiting=new Set;config;constructor(Z={}){this.config=U(M(),Z),this.useListeners(this.config.listeners)}useListeners(Z){this.config.listeners=Z,this.listeners={},this.events={};let $=new Set;for(let H of Z){if(!H.event){console.error(`Listener ${H.name} does not declare \`static event\`, so there is no event name to register it under and its handle will never run. Add: static event = SomeEvent;`);continue}if($.has(H.name)){console.error(`Two event listeners are named "${H.name}" \u2014 the first is `+"registered and this one is not. A listener's name identifies it across the framework, so only one class can hold it. Rename one.");continue}$.add(H.name);let W=H.event.name,G=new H;this.events[W]??=H.event,(this.listeners[W]??=[]).push({listener:H,job:G.queued?YZ(H,G):null})}}get queuedListenerJobs(){return Object.values(this.listeners).flat().flatMap(({job:Z})=>Z?[Z]:[])}get registeredListeners(){return[...this.config.listeners]}dispatch(Z,$){if(this.deferToCommit(Z,$,!1))return;this.runListeners(Z,$)}async dispatchAndWait(Z,$){if(this.deferToCommit(Z,$,!0))return;return this.runListeners(Z,$)}deferToCommit(Z,$,H){let{name:W,afterCommit:G}=Z.constructor;if(!G)return!1;let V=zZ(()=>this.runListeners(Z,$));if(V&&H)this.warnNothingIsWaitedFor(W);return V}async runListeners(Z,$){let H=Z.constructor.name,W=this.listeners[H];if(!W?.length){this.warnNothingIsListening(H);return}for(let{listener:G,job:V}of W){if(V){this.enqueue(V,G,H,$);continue}try{await new G().handle(Z)}catch(X){console.error(`The listener ${G.name} threw while handling ${H}. The `+"listeners after it still ran \u2014 a listener's failure is its own.",X)}}}rehydrate(Z,$=[]){let H=this.events[Z];if(!H)throw Error(`Cannot rebuild the event "${Z}" that came off the queue: no registered listener binds to an event of that name, so there is no class to construct. A queued listener runs in an application that `+"discovered its own listeners \u2014 check that this process sees the "+`same app/listeners as the one that dispatched, and that the event declares \`static name = "${Z}"\`.`);return new H(...$)}enqueue(Z,$,H,W){if(W===void 0){console.error(`The listener ${$.name} is queued, but ${H} reached the dispatcher without its constructor arguments, so there is nothing for the queue to rebuild it from and the listener was skipped. Dispatch through ${H}.dispatch(...) or ${H}.dispatchAndWait(...), which carry them.`);return}let G=(V)=>console.error(`The listener ${$.name} could not be queued for ${H}, so it did not run and will not be retried. The listeners after it still ran.`,V);try{j(J).push(Z,JSON.stringify([H,W]),{reportFailure:!1}).catch(G)}catch(V){G(V)}}warnNothingIsWaitedFor(Z){if(Bun.env.NODE_ENV==="production")return;if(this.warnedAboutWaiting.has(Z))return;this.warnedAboutWaiting.add(Z),console.warn(`[gemi] ${Z}.dispatchAndWait() was called inside a transaction and ${Z} declares \`static afterCommit = true\`, so it resolved `+"immediately with no listener having run \u2014 they run when the "+"transaction commits. Await the transaction instead, or drop afterCommit if the caller needs the side effects first. Development only.")}warnNothingIsListening(Z){if(Bun.env.NODE_ENV==="production")return;if(this.warnedFor.has(Z))return;this.warnedFor.add(Z),console.warn(`[gemi] ${Z} was dispatched and nothing is listening for it. A listener registers under the name its event declares, so check that app/listeners holds a Listener with \`static event = ${Z}\` and that ${Z} declares \`static name = "${Z}"\`. Development only.`)}}class gZ extends K{register(){this.app.singleton(Q,()=>new Q(this.app.config.get("events",{})))}async boot(){let Z=this.app.make(Q),$=this.app.config.get("events",{});if($.listeners===void 0){let{listenersDir:G}=U(M(),$);Z.useListeners(await KZ(G))}let H=Z.queuedListenerJobs;if(H.length===0)return;let W=this.app.make(J);for(let G of H)W.registerJob(G)}}class vZ extends K{register(){this.app.singleton(u,()=>new u(this.app.config.get("filesystem",{})))}}class mZ extends K{register(){this.app.singleton(d,()=>new d(this.app.config.get("image",{})))}}class hZ extends K{register(){this.app.instance(l,new l)}}function U4(Z){return Z}function UZ(){return{maxFileSize:10485760,onLogFileClosed:()=>{},onLogCreated:()=>{}}}class cZ extends K{register(){this.app.singleton(y,()=>new y(U(UZ(),this.app.config.get("log",{}))))}async boot(){if(!process.env.ROOT_DIR)return;await this.app.make(y).boot()}}class pZ extends K{register(){this.app.singleton(w,()=>new w(U(IZ(),this.app.config.get("middleware",{}))))}boot(){this.app.make(w).assertGlobalMiddleware()}}function F4(Z){return Z}function CZ(){return{driver:new JZ,limit:1000,window:60}}class uZ extends K{register(){this.app.singleton(i,()=>new i(U(CZ(),this.app.config.get("ratelimiter",{}))))}}function D4(Z){return Z}function BZ(){return{url:process.env.REDIS_URL,options:void 0}}class dZ extends K{register(){this.app.singleton(S,()=>new S(U(BZ(),this.app.config.get("redis",{}))))}shutdown(){if(!this.app.resolved(S))return;this.app.make(S).close()}}class P extends qZ{status;constructor(Z,$){super(Z);this.status=$;this.name="McpToolError"}}var lZ=/^[A-Za-z0-9_-]{1,64}$/,iZ=/:([A-Za-z_][A-Za-z0-9_]*)([?*+]?)/g,PZ=4000,s=1e5,sZ=/^(text\/|application\/([\w.+-]*\+)?(json|xml))/i;class E{dispatcher;static token="router.mcp";plans=new Map;constructor(Z,$){this.dispatcher=$;for(let[H,W]of Object.entries(Z.routes??{}))this.plans.set(H,this.plan(H,W))}list(Z,$){return _Z(Z),this.descriptors($)}descriptors(Z){let $=[];for(let{descriptor:H}of this.plans.values()){if(Z?.names&&!Z.names.includes(H.name))continue;if(Z?.tags&&!H.tags.some((W)=>Z.tags.includes(W)))continue;$.push(H)}return $}async execute(Z,$,H,W){_Z(Z);let G=this.plans.get($);if(!G)throw Error(`McpRegistry: there is no tool named "${$}".`);let{descriptor:V}=G,X=V.inputSchema.safeParse(H);if(X.ok===!1)throw new P(`Invalid arguments for "${$}": ${X.errors.join(", ")}`);let Y=X.value,C=await this.fillPath(G,Y,Z.req),{path:B}=this.dispatcher.getRouteHandlerAndParams(new Request(`http://gemi.internal/api${C}`));if(B!==V.url)throw new P(`"${$}" has nothing at ${C}.`,404);let I={};for(let A of G.jsonKeys)if(Y[A]!==void 0)I[A]=Y[A];let _,O="";if(G.fileFields.length>0)_=await this.formData(G,Y,I,W);else if(V.method==="GET")O=rZ(I);else if(G.jsonKeys.length>0)_=I;let x;try{x=await this.dispatcher.dispatchAs(Z.req,V.method,O?`${C}?${O}`:C,_)}catch(A){throw console.error(`[gemi/mcp] Dispatching "${$}" failed:`,A),new P(`"${$}" failed on the server.`,500)}return await aZ($,x)}plan(Z,$){if(!lZ.test(Z))throw Error(`McpRouter: "${Z}" is not a valid tool name. A routes key is the tool's name as a model and an MCP client see it, used verbatim \u2014 letters, digits, "_" and "-", at most 64.`);let H=`McpRouter: "${Z}" (${$?.method} ${$?.url})`;if(!($ instanceof Object)||$.__internal_brand!=="McpRoute")throw Error(`McpRouter: "${Z}" is not a route. Declare it with this.fromApiRoute(...).`);let{method:W,url:G,meta:V}=$;if(G.startsWith("/__gemi__"))throw Error(`${H} is a framework route, not an app route.`);let X=this.dispatcher.flatRoutes[G]?.[W];if(!X)throw Error(`${H} names no route of this app. Expose a route by the path and verb it is mounted at.`);let Y=[...G.matchAll(iZ)].map(([,z,q])=>({name:z,modifier:q})),C=V.params??{};for(let z of Y)if(!(z.name in C))throw Error(`${H}: the path param "${z.name}" must be bound or declared "input".`);for(let[z,q]of Object.entries(C)){if(!Y.some((R)=>R.name===z))throw Error(`${H}: "${z}" in params is not a param of the url.`);OZ(H,`params.${z}`,q)}let B=[],I;if(V.input){if(I=V.input.toJSONSchema(),I.type!=="object"||!I.properties)throw Error(`${H}: input must be an s.object(...), the fields of the request body.`);B=Object.keys(I.properties)}let _=Object.entries(V.files??{}).map(([z,q])=>({name:z,binder:q}));for(let z of _)OZ(H,`files.${z.name}`,z.binder);if(_.length>0&&W==="GET")throw Error(`${H}: a GET has no body to carry a file.`);let O={},x=new Map;for(let z of Y){let q=C[z.name];if(q==="input"){let R=f.string().describe(`The ":${z.name}" segment of the url.`);O[z.name]=z.modifier==="?"||z.modifier==="*"?R.optional():R}else x.set(z.name,q)}for(let z of _)if(z.binder==="input")O[z.name]=f.string().describe("The id of an attachment the user uploaded or a tool produced (gemi_att_\u2026), whose file is sent as this field.");let A=[...Object.keys(O),..._.map((z)=>z.name)];for(let z of new Set(A))if(B.includes(z))throw Error(`${H}: "${z}" is both an input field and a param or file, and the model can only send one.`);return{descriptor:Object.freeze({name:Z,description:V.description,method:W,url:G,inputSchema:nZ(V.input,I,f.object(O)),annotations:oZ(W),tags:Object.freeze([...V.tags??[]]),requiresApproval:V.requiresApproval===!0,...X.source?{source:X.source}:{}}),params:Y,paramBinders:x,fileFields:_,jsonKeys:B}}async fillPath(Z,$,H){let W=Z.descriptor.url;for(let G of Z.params){let V=Z.paramBinders.get(G.name),X;if(V){if(X=await this.bind(Z,`the param "${G.name}"`,()=>V(H)),X===void 0||X===null||X==="")throw console.error(`[gemi/mcp] The binder for "${G.name}" of "${Z.descriptor.name}" returned ${JSON.stringify(X)}.`),new P(`"${Z.descriptor.name}" failed on the server.`,500)}else X=$[G.name];let Y=`:${G.name}${G.modifier}`;if(X===void 0||X===null||X===""){if(G.modifier!=="?"&&G.modifier!=="*")throw new P(`"${G.name}" of "${Z.descriptor.name}" must not be empty.`);W=W.replace(`/${Y}`,"");continue}W=W.replace(Y,tZ(Z.descriptor.name,G,String(X)))}return W}async formData(Z,$,H,W){let G=Z.descriptor.name;if(!W)throw Error(`McpRegistry: "${G}" sends a file, which is resolved through the tool context's attachments, and none was passed to execute().`);let V=new FormData;for(let[X,Y]of Object.entries(H))AZ(V,X,Y);for(let X of Z.fileFields){let Y=X.binder==="input"?$[X.name]:await this.bind(Z,`the file "${X.name}"`,()=>X.binder(W));if(typeof Y!=="string"||Y==="")throw new P(`"${G}" needs a file for "${X.name}", and this turn has none. Ask the user to attach one.`);V.append(X.name,await W.attachments.file(Y))}return V}async bind(Z,$,H){try{return await H()}catch(W){throw console.error(`[gemi/mcp] Binding ${$} of "${Z.descriptor.name}" failed:`,W),new P(`"${Z.descriptor.name}" failed on the server.`,500)}}}function _Z(Z){if(Z?.kind!=="local")throw Error("McpRegistry: only local callers are implemented. A remote caller needs a bearer-token resolver, which v1 does not have \u2014 and until it does there is no remote surface to call from.")}function OZ(Z,$,H){if(H!=="input"&&typeof H!=="function")throw Error(`${Z}: ${$} must be a function or "input".`)}function oZ(Z){switch(Z){case"GET":return Object.freeze({readOnlyHint:!0});case"DELETE":return Object.freeze({destructiveHint:!0});case"PUT":return Object.freeze({idempotentHint:!0});default:return Object.freeze({})}}function nZ(Z,$,H){let W=H.toJSONSchema(),G={...$??{},type:"object",properties:{...$?.properties??{},...W.properties},required:[...$?.required??[],...W.required??[]],additionalProperties:!1},V=(X)=>{if(typeof X!=="object"||X===null||Array.isArray(X))return{ok:!1,errors:["expected an object"]};let Y=[],C={};if(Z){let I=Z.safeParse(X);if(I.ok===!1)Y.push(...I.errors);else C={...I.value}}let B=H.safeParse(X);if(B.ok===!1)Y.push(...B.errors);else C={...C,...B.value};return Y.length>0?{ok:!1,errors:Y}:{ok:!0,value:C}};return{toJSONSchema:()=>G,safeParse:V,parse(X){let Y=V(X);if(Y.ok===!1)throw Error(Y.errors.join(", "));return Y.value}}}function tZ(Z,$,H){let W=$.modifier==="*"||$.modifier==="+"?H.split("/"):[H];if(W.some((G)=>G==="."||G===".."))throw new P(`"${H}" is not a valid value for "${$.name}" of "${Z}".`);return W.map(encodeURIComponent).join("/")}function AZ(Z,$,H){if(H===void 0||H===null)return;if(Array.isArray(H)){for(let W of H)AZ(Z,$,W);return}Z.append($,typeof H==="object"?JSON.stringify(H):String(H))}function rZ(Z){let $=new URLSearchParams,H=(W,G)=>{if(G===void 0||G===null)return;if(Array.isArray(G)){for(let V of G)H(W,V);return}$.append(W,typeof G==="object"?JSON.stringify(G):String(G))};for(let[W,G]of Object.entries(Z))H(W,G);return $.toString()}async function aZ(Z,$){if($.status>=200&&$.status<300){let W=$.headers.get("Content-Type");if(W&&!sZ.test(W)){let V=(await $.arrayBuffer()).byteLength;return`"${Z}" answered with ${V} bytes of ${W}, which is not shown.`}let G=await $.text();if(G==="")return null;if(G.length>s)return`${G.slice(0,s)}\u2026 [cut at ${s} of ${G.length} characters]`;try{return JSON.parse(G)}catch{return G}}let H=await $.text();if($.status>=400&&$.status<500){let W=H.length>PZ?`${H.slice(0,PZ)}\u2026`:H;throw new P(`"${Z}" was refused with ${$.status}${W?`: ${W}`:"."}`,$.status)}if($.status<500)console.error(`[gemi/mcp] "${Z}" answered ${$.status}${$.headers.get("Location")?` to ${$.headers.get("Location")}`:""}, which a tool call cannot follow.`);throw new P(`"${Z}" failed on the server.`,$.status)}function b(Z,$){let H=Z.get($);if(!H)throw Error(`Missing "${$}" configuration. Route dispatching needs a root router \u2014 declare it in "app/config/route.ts".`);return H}class eZ extends K{register(){this.app.singleton(F,()=>new F(b(this.app.config,"route.api"))),this.app.singleton(T,()=>new T(b(this.app.config,"route.view"))),this.app.singleton(g,()=>new g({api:this.app.make(F),view:this.app.make(T)},{api:b(this.app.config,"route.api"),view:b(this.app.config,"route.view"),domains:this.app.config.get("route.domains")})),this.app.singleton(E,()=>{let Z=this.app.config.get("route.mcp");if(!Z?.router)throw Error('No MCP router is configured. Declare one as `mcp: { router }` in "app/config/route.ts".');return new E(new Z.router,this.app.make(F))})}boot(){if(this.app.make(F),this.app.make(T),this.app.make(g),this.app.config.get("route.mcp"))this.app.make(E)}}
2
+ import{Fb as f,zb as qZ}from"./chunk-4v4v5wkh.js";import{Ob as m,Qb as M,Sb as XZ,Tb as e,Ub as HZ,Wb as KZ}from"./chunk-f64vhjgh.js";import{$b as J,Zb as o,_b as n,ac as t,bc as r,dc as a}from"./chunk-e6ngf60r.js";import{gc as K}from"./chunk-bsbn7qtd.js";import{$c as c,Bd as F,Cd as g,Dd as v,Ec as JZ,_c as WZ,dd as D,ld as d,md as w,qd as l,tc as IZ,xc as i,xd as T}from"./chunk-ecq15njr.js";import{Ld as GZ,Md as h}from"./chunk-jbzxb75e.js";import{of as u,qf as y,rf as k,sf as S}from"./chunk-126mmhjj.js";import{Gf as zZ}from"./chunk-6y62ccam.js";import{mg as U}from"./chunk-ttckhvew.js";import{sg as p}from"./chunk-t6hma13w.js";import{xg as j}from"./chunk-sh1cfx9j.js";import{yg as $Z}from"./chunk-dyq9gcwa.js";async function LZ(Z){try{if(!await Z.shouldRun.call(Z))return}catch($){console.error(`Error evaluating shouldRun for cron job ${Z.name}:`,$);return}try{await Z.onTick.call(Z)}catch($){console.error(`Error executing cron job ${Z.name}:`,$)}try{await Z.callback.call(Z)}catch($){console.error(`Error in cron job ${Z.name}:`,$)}try{await Z.onComplete.call(Z)}catch($){console.error(`Error completing cron job ${Z.name}:`,$)}}class L{static token="scheduler";handles=[];resolved;inFlight=new Map;stopped=!1;constructor(Z){this.resolved=Z.jobs}get jobs(){return[...this.resolved]}useJobs(Z){this.resolved=Z}start(Z=($)=>$()){if(this.stopped=!1,this.resolved.length===0)return;let $=globalThis.__gemiCronJobs??=new Map,H=new Map;for(let W of this.resolved){let G=new W;if(!G.name){console.error(`Cron job must have a name \u2014 ${W.name||"an anonymous class"} has none, so it is not scheduled. If this is a base class that other jobs extend, move it out of the discovered directory: \`abstract\` does not survive to runtime, so a class under app/cron is indistinguishable from a job.`);continue}if(!G.cron){console.error(`Cron job must have an expression. Job: ${G.name}`);continue}let V=H.get(G.name);if(V!==void 0){console.error(`Two cron jobs claim the name "${G.name}" \u2014 ${V} is scheduled and ${W.name||"an anonymous class"} is not. A name is the scheduler's key, so only one job can hold it. Rename one.`);continue}H.set(G.name,W.name||"an anonymous class"),$.get(G.name)?.stop();let X=Bun.cron(G.cron,()=>{if(this.stopped)return;return this.track(G.name,()=>Z(()=>LZ(G)))});$.set(G.name,X),this.handles.push(X)}}stop(){this.stopped=!0;for(let Z of this.handles)Z.stop();this.handles=[]}async drain(Z=1/0){this.stop();let $,H=new Promise((W)=>{if(Z!==1/0)$=setTimeout(W,Z)});return await Promise.race([Promise.allSettled([...this.inFlight.values()].map((W)=>W.done)),H]),clearTimeout($),{unfinished:[...this.inFlight.values()].map((W)=>({...W.tick}))}}get running(){return this.inFlight.size}track(Z,$){let H={},W=Promise.resolve().then($).finally(()=>this.inFlight.delete(H));return this.inFlight.set(H,{tick:{name:Z,startedAt:new Date},done:W}),W}}import{isMainThread as QZ}from"worker_threads";var NZ=100,FZ=(Z)=>Math.min(NZ,Math.floor(Z/10));class xZ extends K{register(){this.app.singleton(J,()=>new J(this.app.config.get("queue",{}),{application:this.app}))}async boot(){let Z=this.app.config.get("queue",{});if(Z.jobs!==void 0)return;let{jobsDir:$}=U(o(),Z);this.app.make(J).useJobs(await e($))}async shutdown(Z){if(!this.app.resolved(J))return;let $=this.app.make(J);if($.running>0)console.log(`[gemi] Shutting down: waiting for ${$.running} running queued job(s).`);let H=Z?.timeoutMs,{unfinished:W}=await $.drain(H===void 0?1/0:Math.max(0,H-FZ(H)));if(W.length>0)return console.error("[gemi] Queued jobs still running at shutdown: "+W.map((G)=>`${G.name} (${G.id})`).join(", ")),{abandoned:!0}}}function z3(Z){if(EZ(Z),Bun.env.NODE_ENV!=="production")return TZ(Z);if(ZZ(Z))return;if(!t())return;if(!Z.bound(J))return;Z.make(J).start()}function ZZ(Z){let $=Z.config.get("queue",{}).driver??"memory";return $==="memory"||$ instanceof n}function SZ(Z){if(ZZ(Z))return!0;if(typeof Z.config.get("queue",{}).driver!=="function"||!Z.bound(J))return!1;try{return!Z.make(J).durable}catch{return!1}}function EZ(Z){let $=process.env.GEMI_QUEUE_CLAIM;if($===void 0||a())return;if(process.env.ROOT_DIR===void 0||!QZ)return;if(r()){if(!SZ(Z))return;console.warn('[gemi] GEMI_QUEUE_CLAIM=off is ignored: the memory queue driver keeps jobs in the process that dispatched them, so no worker could run them. This server runs its own jobs. Use a driver other processes can read, such as "database", to hand jobs to `gemi queue:work`.')}else if($.trim().toLowerCase()!=="on")console.warn(`[gemi] GEMI_QUEUE_CLAIM="${$}" is not "off" or "on", so this server claims jobs. Set it to "off" to leave them to \`gemi queue:work\`.`)}function TZ(Z){let $=globalThis.__gemiDevQueue;if(!$)return;if(globalThis.__gemiDevQueue=void 0,$.stop(),Z.bound(J))Z.make(J).start()}class RZ extends K{register(){this.app.singleton(v,()=>new v(this.app.config.get("auth",{})))}}var kZ=100,DZ=(Z)=>Math.min(kZ,Math.floor(Z/10));class jZ extends K{register(){this.app.singleton(L,()=>new L(U(m(),this.app.config.get("schedule",{}))))}async boot(){let Z=this.app.make(L),$=this.app.config.get("schedule",{});if($.jobs===void 0){let{jobsDir:W}=U(m(),$);Z.useJobs(await HZ(W))}if(process.env.GEMI_NO_SCHEDULE==="1")return;let H=this.app;Z.start((W)=>$Z.run(H,W))}async shutdown(Z){if(!this.app.resolved(L))return;let $=this.app.make(L);if($.running>0)console.log(`[gemi] Shutting down: waiting for ${$.running} running cron tick(s).`);let H=Z?.timeoutMs,{unfinished:W}=await $.drain(H===void 0?1/0:Math.max(0,H-DZ(H)));if(W.length>0)return console.error("[gemi] Cron jobs still running at shutdown: "+W.map((G)=>`${G.name} (started ${G.startedAt.toISOString()})`).join(", ")),{abandoned:!0}}}class N extends WZ{modelName;constructor(Z="FeatureFlag"){super();this.modelName=Z}get available(){return GZ(this.modelName)}async load(){if(!this.available)throw new c(this.modelName);let Z=h(this.modelName);return await Z.asSystem(()=>Z.findMany())}async write(Z,$,H){if(!this.available)throw new c(this.modelName);let W=h(this.modelName),G=this.hasActorColumn(W),V={active:$};if(G)V.updatedBy=H.actor;return await W.asSystem(()=>W.upsert({where:{key:Z},create:{key:Z,...V},update:V})),{actorRecorded:G}}hasActorColumn(Z){let $=Z?.$schema?.fields?.updatedBy;return $!==void 0&&$.type==="String"}}function x3(Z){return Z}function VZ(){return{features:void 0,enabled:!0,source:new N,model:"FeatureFlag",ttl:30,context:void 0,onEvaluate:void 0,maxClientFlags:200}}class MZ extends K{register(){this.app.singleton(D,()=>{let Z=this.app.config.get("features",{}),$=U(VZ(),Z);if(Z?.model!==void 0&&Z?.source===void 0)$.source=new N(Z.model);else if(Z?.model!==void 0&&Z.source instanceof N&&Z.source.modelName!==Z.model)k.warning(`app/config/features.ts sets \`model: "${Z.model}"\` and a source reading "${Z.source.modelName}". The source wins; drop \`model\` to silence this.`);return new D($,(H)=>k.warning(H))})}async boot(){let Z=this.app.make(D);if(!Z.config.enabled)return;try{await Z.refresh()}catch($){k.error(`Could not warm the feature flag cache at boot. ${$ instanceof Error?$.message:String($)}`)}}}class yZ extends K{register(){this.app.singleton(p,()=>new p(this.app.config.get("mail",{})))}}function wZ(Z){return`listener:${Z}`}function YZ(Z,$){fZ(Z);let{maxAttempts:H,backoff:W,worker:G}=$,V=Z.event.name,X=class extends XZ{maxAttempts=H;backoff=W;worker=G;async run(...Y){let[C,B]=bZ(Y),I=j(Q).rehydrate(C,B);await new Z().handle(I)}onFail(Y){console.error(`The listener ${Z.name} threw while handling ${V} off the queue. The queue will retry it up to ${H} times in total; nothing the dispatcher did is waiting on it.`,Y)}onDeadletter(Y){console.error(`The listener ${Z.name} failed every one of its ${H} attempts at ${V} and has been dead-lettered, so this side effect did not happen and will not be retried.`,Y)}};return Object.defineProperty(X,"name",{value:wZ(Z.name),writable:!0}),X}function fZ(Z){if(Object.getOwnPropertyDescriptor(Z,"name")?.writable)return;throw Error(`The listener ${Z.name} sets \`queued = true\` but does not declare \`static name\`, so it would be registered with the queue `+"under its class name \u2014 which a production build renames while the "+`payload that names it does not. Add: static name = "${Z.name}";`)}function bZ(Z){return typeof Z[0]==="string"?Z:Z[0]}class Q{static token="events";listeners={};events={};warnedFor=new Set;warnedAboutWaiting=new Set;config;constructor(Z={}){this.config=U(M(),Z),this.useListeners(this.config.listeners)}useListeners(Z){this.config.listeners=Z,this.listeners={},this.events={};let $=new Set;for(let H of Z){if(!H.event){console.error(`Listener ${H.name} does not declare \`static event\`, so there is no event name to register it under and its handle will never run. Add: static event = SomeEvent;`);continue}if($.has(H.name)){console.error(`Two event listeners are named "${H.name}" \u2014 the first is `+"registered and this one is not. A listener's name identifies it across the framework, so only one class can hold it. Rename one.");continue}$.add(H.name);let W=H.event.name,G=new H;this.events[W]??=H.event,(this.listeners[W]??=[]).push({listener:H,job:G.queued?YZ(H,G):null})}}get queuedListenerJobs(){return Object.values(this.listeners).flat().flatMap(({job:Z})=>Z?[Z]:[])}get registeredListeners(){return[...this.config.listeners]}dispatch(Z,$){if(this.deferToCommit(Z,$,!1))return;this.runListeners(Z,$)}async dispatchAndWait(Z,$){if(this.deferToCommit(Z,$,!0))return;return this.runListeners(Z,$)}deferToCommit(Z,$,H){let{name:W,afterCommit:G}=Z.constructor;if(!G)return!1;let V=zZ(()=>this.runListeners(Z,$));if(V&&H)this.warnNothingIsWaitedFor(W);return V}async runListeners(Z,$){let H=Z.constructor.name,W=this.listeners[H];if(!W?.length){this.warnNothingIsListening(H);return}for(let{listener:G,job:V}of W){if(V){this.enqueue(V,G,H,$);continue}try{await new G().handle(Z)}catch(X){console.error(`The listener ${G.name} threw while handling ${H}. The `+"listeners after it still ran \u2014 a listener's failure is its own.",X)}}}rehydrate(Z,$=[]){let H=this.events[Z];if(!H)throw Error(`Cannot rebuild the event "${Z}" that came off the queue: no registered listener binds to an event of that name, so there is no class to construct. A queued listener runs in an application that `+"discovered its own listeners \u2014 check that this process sees the "+`same app/listeners as the one that dispatched, and that the event declares \`static name = "${Z}"\`.`);return new H(...$)}enqueue(Z,$,H,W){if(W===void 0){console.error(`The listener ${$.name} is queued, but ${H} reached the dispatcher without its constructor arguments, so there is nothing for the queue to rebuild it from and the listener was skipped. Dispatch through ${H}.dispatch(...) or ${H}.dispatchAndWait(...), which carry them.`);return}let G=(V)=>console.error(`The listener ${$.name} could not be queued for ${H}, so it did not run and will not be retried. The listeners after it still ran.`,V);try{j(J).push(Z,JSON.stringify([H,W]),{reportFailure:!1}).catch(G)}catch(V){G(V)}}warnNothingIsWaitedFor(Z){if(Bun.env.NODE_ENV==="production")return;if(this.warnedAboutWaiting.has(Z))return;this.warnedAboutWaiting.add(Z),console.warn(`[gemi] ${Z}.dispatchAndWait() was called inside a transaction and ${Z} declares \`static afterCommit = true\`, so it resolved `+"immediately with no listener having run \u2014 they run when the "+"transaction commits. Await the transaction instead, or drop afterCommit if the caller needs the side effects first. Development only.")}warnNothingIsListening(Z){if(Bun.env.NODE_ENV==="production")return;if(this.warnedFor.has(Z))return;this.warnedFor.add(Z),console.warn(`[gemi] ${Z} was dispatched and nothing is listening for it. A listener registers under the name its event declares, so check that app/listeners holds a Listener with \`static event = ${Z}\` and that ${Z} declares \`static name = "${Z}"\`. Development only.`)}}class gZ extends K{register(){this.app.singleton(Q,()=>new Q(this.app.config.get("events",{})))}async boot(){let Z=this.app.make(Q),$=this.app.config.get("events",{});if($.listeners===void 0){let{listenersDir:G}=U(M(),$);Z.useListeners(await KZ(G))}let H=Z.queuedListenerJobs;if(H.length===0)return;let W=this.app.make(J);for(let G of H)W.registerJob(G)}}class vZ extends K{register(){this.app.singleton(u,()=>new u(this.app.config.get("filesystem",{})))}}class mZ extends K{register(){this.app.singleton(d,()=>new d(this.app.config.get("image",{})))}}class hZ extends K{register(){this.app.instance(l,new l)}}function U4(Z){return Z}function UZ(){return{maxFileSize:10485760,onLogFileClosed:()=>{},onLogCreated:()=>{}}}class cZ extends K{register(){this.app.singleton(y,()=>new y(U(UZ(),this.app.config.get("log",{}))))}async boot(){if(!process.env.ROOT_DIR)return;await this.app.make(y).boot()}}class pZ extends K{register(){this.app.singleton(w,()=>new w(U(IZ(),this.app.config.get("middleware",{}))))}boot(){this.app.make(w).assertGlobalMiddleware()}}function F4(Z){return Z}function CZ(){return{driver:new JZ,limit:1000,window:60}}class uZ extends K{register(){this.app.singleton(i,()=>new i(U(CZ(),this.app.config.get("ratelimiter",{}))))}}function D4(Z){return Z}function BZ(){return{url:process.env.REDIS_URL,options:void 0}}class dZ extends K{register(){this.app.singleton(S,()=>new S(U(BZ(),this.app.config.get("redis",{}))))}shutdown(){if(!this.app.resolved(S))return;this.app.make(S).close()}}class P extends qZ{status;constructor(Z,$){super(Z);this.status=$;this.name="McpToolError"}}var lZ=/^[A-Za-z0-9_-]{1,64}$/,iZ=/:([A-Za-z_][A-Za-z0-9_]*)([?*+]?)/g,PZ=4000,s=1e5,sZ=/^(text\/|application\/([\w.+-]*\+)?(json|xml))/i;class E{dispatcher;static token="router.mcp";plans=new Map;constructor(Z,$){this.dispatcher=$;for(let[H,W]of Object.entries(Z.routes??{}))this.plans.set(H,this.plan(H,W))}list(Z,$){return _Z(Z),this.descriptors($)}descriptors(Z){let $=[];for(let{descriptor:H}of this.plans.values()){if(Z?.names&&!Z.names.includes(H.name))continue;if(Z?.tags&&!H.tags.some((W)=>Z.tags.includes(W)))continue;$.push(H)}return $}async execute(Z,$,H,W){_Z(Z);let G=this.plans.get($);if(!G)throw Error(`McpRegistry: there is no tool named "${$}".`);let{descriptor:V}=G,X=V.inputSchema.safeParse(H);if(X.ok===!1)throw new P(`Invalid arguments for "${$}": ${X.errors.join(", ")}`);let Y=X.value,C=await this.fillPath(G,Y,Z.req),{path:B}=this.dispatcher.getRouteHandlerAndParams(new Request(`http://gemi.internal/api${C}`));if(B!==V.url)throw new P(`"${$}" has nothing at ${C}.`,404);let I={};for(let A of G.jsonKeys)if(Y[A]!==void 0)I[A]=Y[A];let _,O="";if(G.fileFields.length>0)_=await this.formData(G,Y,I,W);else if(V.method==="GET")O=rZ(I);else if(G.jsonKeys.length>0)_=I;let x;try{x=await this.dispatcher.dispatchAs(Z.req,V.method,O?`${C}?${O}`:C,_)}catch(A){throw console.error(`[gemi/mcp] Dispatching "${$}" failed:`,A),new P(`"${$}" failed on the server.`,500)}return await aZ($,x)}plan(Z,$){if(!lZ.test(Z))throw Error(`McpRouter: "${Z}" is not a valid tool name. A routes key is the tool's name as a model and an MCP client see it, used verbatim \u2014 letters, digits, "_" and "-", at most 64.`);let H=`McpRouter: "${Z}" (${$?.method} ${$?.url})`;if(!($ instanceof Object)||$.__internal_brand!=="McpRoute")throw Error(`McpRouter: "${Z}" is not a route. Declare it with this.fromApiRoute(...).`);let{method:W,url:G,meta:V}=$;if(G.startsWith("/__gemi__"))throw Error(`${H} is a framework route, not an app route.`);let X=this.dispatcher.flatRoutes[G]?.[W];if(!X)throw Error(`${H} names no route of this app. Expose a route by the path and verb it is mounted at.`);let Y=[...G.matchAll(iZ)].map(([,z,q])=>({name:z,modifier:q})),C=V.params??{};for(let z of Y)if(!(z.name in C))throw Error(`${H}: the path param "${z.name}" must be bound or declared "input".`);for(let[z,q]of Object.entries(C)){if(!Y.some((R)=>R.name===z))throw Error(`${H}: "${z}" in params is not a param of the url.`);OZ(H,`params.${z}`,q)}let B=[],I;if(V.input){if(I=V.input.toJSONSchema(),I.type!=="object"||!I.properties)throw Error(`${H}: input must be an s.object(...), the fields of the request body.`);B=Object.keys(I.properties)}let _=Object.entries(V.files??{}).map(([z,q])=>({name:z,binder:q}));for(let z of _)OZ(H,`files.${z.name}`,z.binder);if(_.length>0&&W==="GET")throw Error(`${H}: a GET has no body to carry a file.`);let O={},x=new Map;for(let z of Y){let q=C[z.name];if(q==="input"){let R=f.string().describe(`The ":${z.name}" segment of the url.`);O[z.name]=z.modifier==="?"||z.modifier==="*"?R.optional():R}else x.set(z.name,q)}for(let z of _)if(z.binder==="input")O[z.name]=f.string().describe("The id of an attachment the user uploaded or a tool produced (gemi_att_\u2026), whose file is sent as this field.");let A=[...Object.keys(O),..._.map((z)=>z.name)];for(let z of new Set(A))if(B.includes(z))throw Error(`${H}: "${z}" is both an input field and a param or file, and the model can only send one.`);return{descriptor:Object.freeze({name:Z,description:V.description,method:W,url:G,inputSchema:nZ(V.input,I,f.object(O)),annotations:oZ(W),tags:Object.freeze([...V.tags??[]]),requiresApproval:V.requiresApproval===!0,...X.source?{source:X.source}:{}}),params:Y,paramBinders:x,fileFields:_,jsonKeys:B}}async fillPath(Z,$,H){let W=Z.descriptor.url;for(let G of Z.params){let V=Z.paramBinders.get(G.name),X;if(V){if(X=await this.bind(Z,`the param "${G.name}"`,()=>V(H)),X===void 0||X===null||X==="")throw console.error(`[gemi/mcp] The binder for "${G.name}" of "${Z.descriptor.name}" returned ${JSON.stringify(X)}.`),new P(`"${Z.descriptor.name}" failed on the server.`,500)}else X=$[G.name];let Y=`:${G.name}${G.modifier}`;if(X===void 0||X===null||X===""){if(G.modifier!=="?"&&G.modifier!=="*")throw new P(`"${G.name}" of "${Z.descriptor.name}" must not be empty.`);W=W.replace(`/${Y}`,"");continue}W=W.replace(Y,tZ(Z.descriptor.name,G,String(X)))}return W}async formData(Z,$,H,W){let G=Z.descriptor.name;if(!W)throw Error(`McpRegistry: "${G}" sends a file, which is resolved through the tool context's attachments, and none was passed to execute().`);let V=new FormData;for(let[X,Y]of Object.entries(H))AZ(V,X,Y);for(let X of Z.fileFields){let Y=X.binder==="input"?$[X.name]:await this.bind(Z,`the file "${X.name}"`,()=>X.binder(W));if(typeof Y!=="string"||Y==="")throw new P(`"${G}" needs a file for "${X.name}", and this turn has none. Ask the user to attach one.`);V.append(X.name,await W.attachments.file(Y))}return V}async bind(Z,$,H){try{return await H()}catch(W){throw console.error(`[gemi/mcp] Binding ${$} of "${Z.descriptor.name}" failed:`,W),new P(`"${Z.descriptor.name}" failed on the server.`,500)}}}function _Z(Z){if(Z?.kind!=="local")throw Error("McpRegistry: only local callers are implemented. A remote caller needs a bearer-token resolver, which v1 does not have \u2014 and until it does there is no remote surface to call from.")}function OZ(Z,$,H){if(H!=="input"&&typeof H!=="function")throw Error(`${Z}: ${$} must be a function or "input".`)}function oZ(Z){switch(Z){case"GET":return Object.freeze({readOnlyHint:!0});case"DELETE":return Object.freeze({destructiveHint:!0});case"PUT":return Object.freeze({idempotentHint:!0});default:return Object.freeze({})}}function nZ(Z,$,H){let W=H.toJSONSchema(),G={...$??{},type:"object",properties:{...$?.properties??{},...W.properties},required:[...$?.required??[],...W.required??[]],additionalProperties:!1},V=(X)=>{if(typeof X!=="object"||X===null||Array.isArray(X))return{ok:!1,errors:["expected an object"]};let Y=[],C={};if(Z){let I=Z.safeParse(X);if(I.ok===!1)Y.push(...I.errors);else C={...I.value}}let B=H.safeParse(X);if(B.ok===!1)Y.push(...B.errors);else C={...C,...B.value};return Y.length>0?{ok:!1,errors:Y}:{ok:!0,value:C}};return{toJSONSchema:()=>G,safeParse:V,parse(X){let Y=V(X);if(Y.ok===!1)throw Error(Y.errors.join(", "));return Y.value}}}function tZ(Z,$,H){let W=$.modifier==="*"||$.modifier==="+"?H.split("/"):[H];if(W.some((G)=>G==="."||G===".."))throw new P(`"${H}" is not a valid value for "${$.name}" of "${Z}".`);return W.map(encodeURIComponent).join("/")}function AZ(Z,$,H){if(H===void 0||H===null)return;if(Array.isArray(H)){for(let W of H)AZ(Z,$,W);return}Z.append($,typeof H==="object"?JSON.stringify(H):String(H))}function rZ(Z){let $=new URLSearchParams,H=(W,G)=>{if(G===void 0||G===null)return;if(Array.isArray(G)){for(let V of G)H(W,V);return}$.append(W,typeof G==="object"?JSON.stringify(G):String(G))};for(let[W,G]of Object.entries(Z))H(W,G);return $.toString()}async function aZ(Z,$){if($.status>=200&&$.status<300){let W=$.headers.get("Content-Type");if(W&&!sZ.test(W)){let V=(await $.arrayBuffer()).byteLength;return`"${Z}" answered with ${V} bytes of ${W}, which is not shown.`}let G=await $.text();if(G==="")return null;if(G.length>s)return`${G.slice(0,s)}\u2026 [cut at ${s} of ${G.length} characters]`;try{return JSON.parse(G)}catch{return G}}let H=await $.text();if($.status>=400&&$.status<500){let W=H.length>PZ?`${H.slice(0,PZ)}\u2026`:H;throw new P(`"${Z}" was refused with ${$.status}${W?`: ${W}`:"."}`,$.status)}if($.status<500)console.error(`[gemi/mcp] "${Z}" answered ${$.status}${$.headers.get("Location")?` to ${$.headers.get("Location")}`:""}, which a tool call cannot follow.`);throw new P(`"${Z}" failed on the server.`,$.status)}function b(Z,$){let H=Z.get($);if(!H)throw Error(`Missing "${$}" configuration. Route dispatching needs a root router \u2014 declare it in "app/config/route.ts".`);return H}class eZ extends K{register(){this.app.singleton(F,()=>new F(b(this.app.config,"route.api"))),this.app.singleton(T,()=>new T(b(this.app.config,"route.view"))),this.app.singleton(g,()=>new g({api:this.app.make(F),view:this.app.make(T)},{api:b(this.app.config,"route.api"),view:b(this.app.config,"route.view"),domains:this.app.config.get("route.domains")})),this.app.singleton(E,()=>{let Z=this.app.config.get("route.mcp");if(!Z?.router)throw Error('No MCP router is configured. Declare one as `mcp: { router }` in "app/config/route.ts".');return new E(new Z.router,this.app.make(F))})}boot(){if(this.app.make(F),this.app.make(T),this.app.make(g),this.app.config.get("route.mcp"))this.app.make(E)}}
3
3
  export{L as Za,xZ as _a,z3 as $a,RZ as ab,jZ as bb,N as cb,x3 as db,VZ as eb,MZ as fb,yZ as gb,Q as hb,gZ as ib,vZ as jb,mZ as kb,hZ as lb,U4 as mb,UZ as nb,cZ as ob,pZ as pb,F4 as qb,CZ as rb,uZ as sb,D4 as tb,BZ as ub,dZ as vb,P as wb,E as xb,eZ as yb};
4
4
 
5
- //# debugId=1A66A7243A44937164756E2164756E21
5
+ //# debugId=E99506432D2CAC8A64756E2164756E21
@@ -27,6 +27,6 @@
27
27
  "import { ServiceProvider } from \"../../support/ServiceProvider\";\nimport { McpRegistry } from \"../mcp/McpRegistry\";\nimport { ApiRouteDispatcher } from \"./ApiRouteDispatcher\";\nimport { DomainRouter } from \"./DomainRouter\";\nimport { ViewRouteDispatcher } from \"./ViewRouteDispatcher\";\nimport type { ApiRouteConfig, DomainsConfig, McpRouteConfig, ViewRouteConfig } from \"./config\";\nimport type { Repository } from \"../../support/Repository\";\n\nfunction readConfig<T>(config: Repository, key: string): T {\n const slice = config.get<T>(key);\n if (!slice) {\n throw new Error(\n `Missing \"${key}\" configuration. Route dispatching needs a root router — declare it in \"app/config/route.ts\".`,\n );\n }\n return slice;\n}\n\n/**\n * Owns both route dispatchers. Laravel ships a single RouteServiceProvider for\n * every route file it loads; the api/view split is a config slice, not a\n * separate provider.\n */\nexport class RouteServiceProvider extends ServiceProvider {\n register() {\n this.app.singleton(\n ApiRouteDispatcher,\n () =>\n new ApiRouteDispatcher(\n readConfig<ApiRouteConfig>(this.app.config, \"route.api\"),\n ),\n );\n\n this.app.singleton(\n ViewRouteDispatcher,\n () =>\n new ViewRouteDispatcher(\n readConfig<ViewRouteConfig>(this.app.config, \"route.view\"),\n ),\n );\n\n // The root pair above is the root group's; the other `route.domains`\n // groups get their own only when they bring their own routers.\n this.app.singleton(\n DomainRouter,\n () =>\n new DomainRouter(\n { api: this.app.make(ApiRouteDispatcher), view: this.app.make(ViewRouteDispatcher) },\n {\n api: readConfig<ApiRouteConfig>(this.app.config, \"route.api\"),\n view: readConfig<ViewRouteConfig>(this.app.config, \"route.view\"),\n domains: this.app.config.get<DomainsConfig | undefined>(\"route.domains\"),\n },\n ),\n );\n\n // Bound whether or not the app declares one, so asking for it without\n // `route.mcp` fails with a sentence rather than an unbound token.\n this.app.singleton(McpRegistry, () => {\n const config = this.app.config.get<McpRouteConfig | undefined>(\"route.mcp\");\n if (!config?.router) {\n throw new Error(\n 'No MCP router is configured. Declare one as `mcp: { router }` in \"app/config/route.ts\".',\n );\n }\n return new McpRegistry(new config.router(), this.app.make(ApiRouteDispatcher));\n });\n }\n\n /**\n * The dispatchers of every host group, and the MCP registry when an app declares one, must\n * not be built lazily: constructing the dispatchers flattens the route\n * tables and runs `assertNoReservedRoutePaths`, and constructing the registry\n * resolves every tool against those tables. A missing `route` config, a\n * route under a reserved prefix or a tool naming a route that is gone has to\n * fail the boot rather than the first request, or the first tool call, that\n * happens to hit it.\n */\n boot() {\n this.app.make(ApiRouteDispatcher);\n this.app.make(ViewRouteDispatcher);\n // Builds every host group's dispatchers and validates `route.domains`.\n this.app.make(DomainRouter);\n if (this.app.config.get(\"route.mcp\")) {\n this.app.make(McpRegistry);\n }\n }\n}\n"
28
28
  ],
29
29
  "mappings": "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",
30
- "debugId": "1A66A7243A44937164756E2164756E21",
30
+ "debugId": "E99506432D2CAC8A64756E2164756E21",
31
31
  "names": []
32
32
  }
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{Ng as t,Qg as A}from"./chunk-t93t317r.js";var o=t((b)=>{var i=(r)=>typeof ArrayBuffer==="function"&&r instanceof ArrayBuffer||Object.prototype.toString.call(r)==="[object ArrayBuffer]";b.isArrayBuffer=i});var y=t((g)=>{var m=o(),f=A("buffer"),B=(r,e=0,u=r.byteLength-e)=>{if(!m.isArrayBuffer(r))throw TypeError(`The "input" argument must be ArrayBuffer. Received type ${typeof r} (${r})`);return f.Buffer.from(r,e,u)},a=(r,e)=>{if(typeof r!=="string")throw TypeError(`The "input" argument must be of type string. Received type ${typeof r} (${r})`);return e?f.Buffer.from(r,e):f.Buffer.from(r)};g.fromArrayBuffer=B;g.fromString=a});var x=t((w)=>{var n=y(),s=(r)=>{let e=n.fromString(r,"utf8");return new Uint8Array(e.buffer,e.byteOffset,e.byteLength/Uint8Array.BYTES_PER_ELEMENT)},h=(r)=>{if(typeof r==="string")return s(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength/Uint8Array.BYTES_PER_ELEMENT);return new Uint8Array(r)},p=(r)=>{if(typeof r==="string")return r;if(typeof r!=="object"||typeof r.byteOffset!=="number"||typeof r.byteLength!=="number")throw Error("@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.");return n.fromArrayBuffer(r.buffer,r.byteOffset,r.byteLength).toString("utf8")};w.fromUtf8=s;w.toUint8Array=h;w.toUtf8=p});
2
+ import{Og as t,Rg as A}from"./chunk-fc28h7g2.js";var o=t((b)=>{var i=(r)=>typeof ArrayBuffer==="function"&&r instanceof ArrayBuffer||Object.prototype.toString.call(r)==="[object ArrayBuffer]";b.isArrayBuffer=i});var y=t((g)=>{var m=o(),f=A("buffer"),B=(r,e=0,u=r.byteLength-e)=>{if(!m.isArrayBuffer(r))throw TypeError(`The "input" argument must be ArrayBuffer. Received type ${typeof r} (${r})`);return f.Buffer.from(r,e,u)},a=(r,e)=>{if(typeof r!=="string")throw TypeError(`The "input" argument must be of type string. Received type ${typeof r} (${r})`);return e?f.Buffer.from(r,e):f.Buffer.from(r)};g.fromArrayBuffer=B;g.fromString=a});var x=t((w)=>{var n=y(),s=(r)=>{let e=n.fromString(r,"utf8");return new Uint8Array(e.buffer,e.byteOffset,e.byteLength/Uint8Array.BYTES_PER_ELEMENT)},h=(r)=>{if(typeof r==="string")return s(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength/Uint8Array.BYTES_PER_ELEMENT);return new Uint8Array(r)},p=(r)=>{if(typeof r==="string")return r;if(typeof r!=="object"||typeof r.byteOffset!=="number"||typeof r.byteLength!=="number")throw Error("@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.");return n.fromArrayBuffer(r.buffer,r.byteOffset,r.byteLength).toString("utf8")};w.fromUtf8=s;w.toUint8Array=h;w.toUtf8=p});
3
3
  export{o as W,y as X,x as Y};
4
4
 
5
- //# debugId=EDAE92EFBED01E6064756E2164756E21
5
+ //# debugId=702197C36AAF385D64756E2164756E21
@@ -7,6 +7,6 @@
7
7
  "'use strict';\n\nvar utilBufferFrom = require('@smithy/util-buffer-from');\n\nconst fromUtf8 = (input) => {\n const buf = utilBufferFrom.fromString(input, \"utf8\");\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n};\n\nconst toUint8Array = (data) => {\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n};\n\nconst toUtf8 = (input) => {\n if (typeof input === \"string\") {\n return input;\n }\n if (typeof input !== \"object\" || typeof input.byteOffset !== \"number\" || typeof input.byteLength !== \"number\") {\n throw new Error(\"@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.\");\n }\n return utilBufferFrom.fromArrayBuffer(input.buffer, input.byteOffset, input.byteLength).toString(\"utf8\");\n};\n\nexports.fromUtf8 = fromUtf8;\nexports.toUint8Array = toUint8Array;\nexports.toUtf8 = toUtf8;\n"
8
8
  ],
9
9
  "mappings": ";+DAEA,IAAM,EAAgB,CAAC,IAAS,OAAO,cAAgB,YAAc,aAAe,aAChF,OAAO,UAAU,SAAS,KAAK,CAAG,IAAM,uBAEpC,gBAAgB,kBCHxB,IAAI,MACA,cAEE,EAAkB,CAAC,EAAO,EAAS,EAAG,EAAS,EAAM,WAAa,IAAW,CAC/E,GAAI,CAAC,EAAc,cAAc,CAAK,EAClC,MAAU,UAAU,2DAA2D,OAAO,MAAU,IAAQ,EAE5G,OAAO,EAAO,OAAO,KAAK,EAAO,EAAQ,CAAM,GAE7C,EAAa,CAAC,EAAO,IAAa,CACpC,GAAI,OAAO,IAAU,SACjB,MAAU,UAAU,8DAA8D,OAAO,MAAU,IAAQ,EAE/G,OAAO,EAAW,EAAO,OAAO,KAAK,EAAO,CAAQ,EAAI,EAAO,OAAO,KAAK,CAAK,GAG5E,kBAAkB,EAClB,aAAa,kBCjBrB,IAAI,MAEE,EAAW,CAAC,IAAU,CACxB,IAAM,EAAM,EAAe,WAAW,EAAO,MAAM,EACnD,OAAO,IAAI,WAAW,EAAI,OAAQ,EAAI,WAAY,EAAI,WAAa,WAAW,iBAAiB,GAG7F,EAAe,CAAC,IAAS,CAC3B,GAAI,OAAO,IAAS,SAChB,OAAO,EAAS,CAAI,EAExB,GAAI,YAAY,OAAO,CAAI,EACvB,OAAO,IAAI,WAAW,EAAK,OAAQ,EAAK,WAAY,EAAK,WAAa,WAAW,iBAAiB,EAEtG,OAAO,IAAI,WAAW,CAAI,GAGxB,EAAS,CAAC,IAAU,CACtB,GAAI,OAAO,IAAU,SACjB,OAAO,EAEX,GAAI,OAAO,IAAU,UAAY,OAAO,EAAM,aAAe,UAAY,OAAO,EAAM,aAAe,SACjG,MAAU,MAAM,8EAA8E,EAElG,OAAO,EAAe,gBAAgB,EAAM,OAAQ,EAAM,WAAY,EAAM,UAAU,EAAE,SAAS,MAAM,GAGnG,WAAW,EACX,eAAe,EACf,SAAS",
10
- "debugId": "EDAE92EFBED01E6064756E2164756E21",
10
+ "debugId": "702197C36AAF385D64756E2164756E21",
11
11
  "names": []
12
12
  }
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{_ as J}from"./chunk-9c1zx81w.js";import{Ng as I}from"./chunk-t93t317r.js";var Z=I((Q)=>{var K=J(),L=(b)=>{return{setHttpHandler(j){b.httpHandler=j},httpHandler(){return b.httpHandler},updateHttpClientConfig(j,w){b.httpHandler?.updateHttpClientConfig(j,w)},httpHandlerConfigs(){return b.httpHandler.httpHandlerConfigs()}}},M=(b)=>{return{httpHandler:b.httpHandler()}};class B{name;kind;values;constructor({name:b,kind:j=K.FieldPosition.HEADER,values:w=[]}){this.name=b,this.kind=j,this.values=w}add(b){this.values.push(b)}set(b){this.values=b}remove(b){this.values=this.values.filter((j)=>j!==b)}toString(){return this.values.map((b)=>b.includes(",")||b.includes(" ")?`"${b}"`:b).join(", ")}get(){return this.values}}class D{entries={};encoding;constructor({fields:b=[],encoding:j="utf-8"}){b.forEach(this.setField.bind(this)),this.encoding=j}setField(b){this.entries[b.name.toLowerCase()]=b}getField(b){return this.entries[b.toLowerCase()]}removeField(b){delete this.entries[b.toLowerCase()]}getByType(b){return Object.values(this.entries).filter((j)=>j.kind===b)}}class z{method;protocol;hostname;port;path;query;headers;username;password;fragment;body;constructor(b){this.method=b.method||"GET",this.hostname=b.hostname||"localhost",this.port=b.port,this.query=b.query||{},this.headers=b.headers||{},this.body=b.body,this.protocol=b.protocol?b.protocol.slice(-1)!==":"?`${b.protocol}:`:b.protocol:"https:",this.path=b.path?b.path.charAt(0)!=="/"?`/${b.path}`:b.path:"/",this.username=b.username,this.password=b.password,this.fragment=b.fragment}static clone(b){let j=new z({...b,headers:{...b.headers}});if(j.query)j.query=O(j.query);return j}static isInstance(b){if(!b)return!1;let j=b;return"method"in j&&"protocol"in j&&"hostname"in j&&"path"in j&&typeof j.query==="object"&&typeof j.headers==="object"}clone(){return z.clone(this)}}function O(b){return Object.keys(b).reduce((j,w)=>{let A=b[w];return{...j,[w]:Array.isArray(A)?[...A]:A}},{})}class G{statusCode;reason;headers;body;constructor(b){this.statusCode=b.statusCode,this.reason=b.reason,this.headers=b.headers||{},this.body=b.body}static isInstance(b){if(!b)return!1;let j=b;return typeof j.statusCode==="number"&&typeof j.headers==="object"}}function P(b){return/^[a-z0-9][a-z0-9\.\-]*[a-z0-9]$/.test(b)}Q.Field=B;Q.Fields=D;Q.HttpRequest=z;Q.HttpResponse=G;Q.getHttpHandlerExtensionConfiguration=L;Q.isValidHostname=P;Q.resolveHttpHandlerRuntimeConfig=M});
2
+ import{_ as J}from"./chunk-hc1mcgs9.js";import{Og as I}from"./chunk-fc28h7g2.js";var Z=I((Q)=>{var K=J(),L=(b)=>{return{setHttpHandler(j){b.httpHandler=j},httpHandler(){return b.httpHandler},updateHttpClientConfig(j,w){b.httpHandler?.updateHttpClientConfig(j,w)},httpHandlerConfigs(){return b.httpHandler.httpHandlerConfigs()}}},M=(b)=>{return{httpHandler:b.httpHandler()}};class B{name;kind;values;constructor({name:b,kind:j=K.FieldPosition.HEADER,values:w=[]}){this.name=b,this.kind=j,this.values=w}add(b){this.values.push(b)}set(b){this.values=b}remove(b){this.values=this.values.filter((j)=>j!==b)}toString(){return this.values.map((b)=>b.includes(",")||b.includes(" ")?`"${b}"`:b).join(", ")}get(){return this.values}}class D{entries={};encoding;constructor({fields:b=[],encoding:j="utf-8"}){b.forEach(this.setField.bind(this)),this.encoding=j}setField(b){this.entries[b.name.toLowerCase()]=b}getField(b){return this.entries[b.toLowerCase()]}removeField(b){delete this.entries[b.toLowerCase()]}getByType(b){return Object.values(this.entries).filter((j)=>j.kind===b)}}class z{method;protocol;hostname;port;path;query;headers;username;password;fragment;body;constructor(b){this.method=b.method||"GET",this.hostname=b.hostname||"localhost",this.port=b.port,this.query=b.query||{},this.headers=b.headers||{},this.body=b.body,this.protocol=b.protocol?b.protocol.slice(-1)!==":"?`${b.protocol}:`:b.protocol:"https:",this.path=b.path?b.path.charAt(0)!=="/"?`/${b.path}`:b.path:"/",this.username=b.username,this.password=b.password,this.fragment=b.fragment}static clone(b){let j=new z({...b,headers:{...b.headers}});if(j.query)j.query=O(j.query);return j}static isInstance(b){if(!b)return!1;let j=b;return"method"in j&&"protocol"in j&&"hostname"in j&&"path"in j&&typeof j.query==="object"&&typeof j.headers==="object"}clone(){return z.clone(this)}}function O(b){return Object.keys(b).reduce((j,w)=>{let A=b[w];return{...j,[w]:Array.isArray(A)?[...A]:A}},{})}class G{statusCode;reason;headers;body;constructor(b){this.statusCode=b.statusCode,this.reason=b.reason,this.headers=b.headers||{},this.body=b.body}static isInstance(b){if(!b)return!1;let j=b;return typeof j.statusCode==="number"&&typeof j.headers==="object"}}function P(b){return/^[a-z0-9][a-z0-9\.\-]*[a-z0-9]$/.test(b)}Q.Field=B;Q.Fields=D;Q.HttpRequest=z;Q.HttpResponse=G;Q.getHttpHandlerExtensionConfiguration=L;Q.isValidHostname=P;Q.resolveHttpHandlerRuntimeConfig=M});
3
3
  export{Z as U};
4
4
 
5
- //# debugId=FD9EB20F22BD6CCE64756E2164756E21
5
+ //# debugId=91D18405B4D22DFE64756E2164756E21
@@ -5,6 +5,6 @@
5
5
  "'use strict';\n\nvar types = require('@smithy/types');\n\nconst getHttpHandlerExtensionConfiguration = (runtimeConfig) => {\n return {\n setHttpHandler(handler) {\n runtimeConfig.httpHandler = handler;\n },\n httpHandler() {\n return runtimeConfig.httpHandler;\n },\n updateHttpClientConfig(key, value) {\n runtimeConfig.httpHandler?.updateHttpClientConfig(key, value);\n },\n httpHandlerConfigs() {\n return runtimeConfig.httpHandler.httpHandlerConfigs();\n },\n };\n};\nconst resolveHttpHandlerRuntimeConfig = (httpHandlerExtensionConfiguration) => {\n return {\n httpHandler: httpHandlerExtensionConfiguration.httpHandler(),\n };\n};\n\nclass Field {\n name;\n kind;\n values;\n constructor({ name, kind = types.FieldPosition.HEADER, values = [] }) {\n this.name = name;\n this.kind = kind;\n this.values = values;\n }\n add(value) {\n this.values.push(value);\n }\n set(values) {\n this.values = values;\n }\n remove(value) {\n this.values = this.values.filter((v) => v !== value);\n }\n toString() {\n return this.values.map((v) => (v.includes(\",\") || v.includes(\" \") ? `\"${v}\"` : v)).join(\", \");\n }\n get() {\n return this.values;\n }\n}\n\nclass Fields {\n entries = {};\n encoding;\n constructor({ fields = [], encoding = \"utf-8\" }) {\n fields.forEach(this.setField.bind(this));\n this.encoding = encoding;\n }\n setField(field) {\n this.entries[field.name.toLowerCase()] = field;\n }\n getField(name) {\n return this.entries[name.toLowerCase()];\n }\n removeField(name) {\n delete this.entries[name.toLowerCase()];\n }\n getByType(kind) {\n return Object.values(this.entries).filter((field) => field.kind === kind);\n }\n}\n\nclass HttpRequest {\n method;\n protocol;\n hostname;\n port;\n path;\n query;\n headers;\n username;\n password;\n fragment;\n body;\n constructor(options) {\n this.method = options.method || \"GET\";\n this.hostname = options.hostname || \"localhost\";\n this.port = options.port;\n this.query = options.query || {};\n this.headers = options.headers || {};\n this.body = options.body;\n this.protocol = options.protocol\n ? options.protocol.slice(-1) !== \":\"\n ? `${options.protocol}:`\n : options.protocol\n : \"https:\";\n this.path = options.path ? (options.path.charAt(0) !== \"/\" ? `/${options.path}` : options.path) : \"/\";\n this.username = options.username;\n this.password = options.password;\n this.fragment = options.fragment;\n }\n static clone(request) {\n const cloned = new HttpRequest({\n ...request,\n headers: { ...request.headers },\n });\n if (cloned.query) {\n cloned.query = cloneQuery(cloned.query);\n }\n return cloned;\n }\n static isInstance(request) {\n if (!request) {\n return false;\n }\n const req = request;\n return (\"method\" in req &&\n \"protocol\" in req &&\n \"hostname\" in req &&\n \"path\" in req &&\n typeof req[\"query\"] === \"object\" &&\n typeof req[\"headers\"] === \"object\");\n }\n clone() {\n return HttpRequest.clone(this);\n }\n}\nfunction cloneQuery(query) {\n return Object.keys(query).reduce((carry, paramName) => {\n const param = query[paramName];\n return {\n ...carry,\n [paramName]: Array.isArray(param) ? [...param] : param,\n };\n }, {});\n}\n\nclass HttpResponse {\n statusCode;\n reason;\n headers;\n body;\n constructor(options) {\n this.statusCode = options.statusCode;\n this.reason = options.reason;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n static isInstance(response) {\n if (!response)\n return false;\n const resp = response;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n }\n}\n\nfunction isValidHostname(hostname) {\n const hostPattern = /^[a-z0-9][a-z0-9\\.\\-]*[a-z0-9]$/;\n return hostPattern.test(hostname);\n}\n\nexports.Field = Field;\nexports.Fields = Fields;\nexports.HttpRequest = HttpRequest;\nexports.HttpResponse = HttpResponse;\nexports.getHttpHandlerExtensionConfiguration = getHttpHandlerExtensionConfiguration;\nexports.isValidHostname = isValidHostname;\nexports.resolveHttpHandlerRuntimeConfig = resolveHttpHandlerRuntimeConfig;\n"
6
6
  ],
7
7
  "mappings": "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",
8
- "debugId": "FD9EB20F22BD6CCE64756E2164756E21",
8
+ "debugId": "91D18405B4D22DFE64756E2164756E21",
9
9
  "names": []
10
10
  }