@shumai-one/shumai 0.6.2 → 0.6.4

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 (192) hide show
  1. package/bin/{chunk-mcj1xpcc.js → chunk-01vx2chc.js} +2 -2
  2. package/bin/chunk-0epkrexd.js +2 -0
  3. package/bin/chunk-0h5239kt.js +2 -0
  4. package/bin/{chunk-jt0ykktx.js → chunk-0jnstdgf.js} +1 -1
  5. package/bin/{chunk-x03jwaga.js → chunk-0njsjy6x.js} +4 -4
  6. package/bin/{chunk-7naa7tpn.js → chunk-13rq2gtr.js} +2 -2
  7. package/bin/chunk-1aqs9sdh.js +3 -0
  8. package/bin/{chunk-m0q2cgfg.js → chunk-22jbsrka.js} +1 -1
  9. package/bin/chunk-2qknebmd.js +1 -0
  10. package/bin/{chunk-a411xhmm.js → chunk-2qzmh3ae.js} +4 -4
  11. package/bin/{chunk-2nhgdqdg.js → chunk-2tt0b8ym.js} +2 -2
  12. package/bin/{chunk-p3f5aevs.js → chunk-2zm7czk6.js} +1 -1
  13. package/bin/{chunk-p4s95471.js → chunk-396tfwdx.js} +1 -1
  14. package/bin/chunk-3mx4trvh.js +10 -0
  15. package/bin/{chunk-b5rhvzv9.js → chunk-45pb3kzz.js} +2 -2
  16. package/bin/{chunk-q83h0hkx.js → chunk-47fmhzwv.js} +2 -2
  17. package/bin/chunk-4awk4xhq.js +2 -0
  18. package/bin/{chunk-2cdxm1cp.js → chunk-4b2x2qba.js} +23 -23
  19. package/bin/{chunk-knj2s8mg.js → chunk-4rjy7ybr.js} +8 -8
  20. package/bin/{chunk-q8w4mbw4.js → chunk-598x693h.js} +2 -2
  21. package/bin/chunk-5c7ztqs7.js +1 -0
  22. package/bin/{chunk-2jj4j8cn.js → chunk-65dh7x4c.js} +2 -2
  23. package/bin/{chunk-hnkcgvcj.js → chunk-66e2vrky.js} +1 -1
  24. package/bin/{chunk-g22wmpk1.js → chunk-6j3beg6n.js} +2 -2
  25. package/bin/{chunk-cgmebxx6.js → chunk-6ke13k69.js} +1 -1
  26. package/bin/{chunk-7sgrtxbt.js → chunk-6rqakmg0.js} +2 -2
  27. package/bin/{chunk-4mws03es.js → chunk-6ty4tfmf.js} +3 -3
  28. package/bin/chunk-7e9ws6dh.js +129 -0
  29. package/bin/chunk-7mdddkfc.js +1 -0
  30. package/bin/{chunk-q2bew2vc.js → chunk-7q4mgd5x.js} +2 -2
  31. package/bin/chunk-7yv7shad.js +1 -0
  32. package/bin/{chunk-qwpkcp8d.js → chunk-81b8rfv7.js} +2 -2
  33. package/bin/{chunk-atfz7g7e.js → chunk-8a7ymmd4.js} +2 -2
  34. package/bin/chunk-8ac9at5y.js +2 -0
  35. package/bin/{chunk-gxepkvt2.js → chunk-8zcfgz9c.js} +1 -1
  36. package/bin/{chunk-mcw198kg.js → chunk-955kf5kc.js} +8 -8
  37. package/bin/{chunk-jzgbxqdg.js → chunk-978rm9a9.js} +2 -2
  38. package/bin/{chunk-jt02kpfc.js → chunk-9qzbrp4d.js} +2 -2
  39. package/bin/{chunk-tekwpkjf.js → chunk-a283dh05.js} +2 -2
  40. package/bin/chunk-aa2a06cc.js +1 -0
  41. package/bin/{chunk-8cjet7pp.js → chunk-ajr1w3vq.js} +6 -6
  42. package/bin/chunk-akafypge.js +218 -0
  43. package/bin/chunk-amk373q2.js +2 -0
  44. package/bin/chunk-apq2gvvp.js +4 -0
  45. package/bin/chunk-av2w1sez.js +2 -0
  46. package/bin/{chunk-5wapd171.js → chunk-b6kmj34z.js} +12 -12
  47. package/bin/chunk-bkzaw9p8.js +1 -0
  48. package/bin/{chunk-zezje74z.js → chunk-bssb9tar.js} +3 -3
  49. package/bin/chunk-bwvj1aqc.js +1 -0
  50. package/bin/chunk-by9esjn7.js +3 -0
  51. package/bin/chunk-bywk8mbc.js +2 -0
  52. package/bin/{chunk-9xhjy897.js → chunk-c61g9hfa.js} +4 -4
  53. package/bin/{chunk-zrszykjf.js → chunk-cdcgjh8k.js} +1 -1
  54. package/bin/{chunk-yk12hydf.js → chunk-d277evce.js} +4 -4
  55. package/bin/{chunk-55h9ze53.js → chunk-d3brvxh7.js} +2 -2
  56. package/bin/{chunk-9t3p4xp6.js → chunk-dcb1nzf1.js} +1 -1
  57. package/bin/{chunk-mzsw9var.js → chunk-dfbzatq9.js} +2 -2
  58. package/bin/chunk-e0bckx12.js +2 -0
  59. package/bin/{chunk-3ckkwdjx.js → chunk-e2p4s2pj.js} +3 -3
  60. package/bin/chunk-e8zzg57c.js +2 -0
  61. package/bin/{chunk-vp3czaeh.js → chunk-edfaqwaq.js} +2 -2
  62. package/bin/chunk-ehgrp0f9.js +1 -0
  63. package/bin/chunk-evs2aaav.js +12 -0
  64. package/bin/{chunk-s9ksftq2.js → chunk-f5bhcjhw.js} +1 -1
  65. package/bin/{chunk-ns33grgx.js → chunk-fb9dedm2.js} +2 -2
  66. package/bin/{chunk-srxp5jav.js → chunk-ff0mh9p3.js} +32 -32
  67. package/bin/chunk-fpfby5tz.js +1 -0
  68. package/bin/{chunk-eyjfhdp9.js → chunk-gd3b5akr.js} +2 -2
  69. package/bin/{chunk-1wfg56z3.js → chunk-gm1fy3hm.js} +5 -5
  70. package/bin/{chunk-9n1w5dw1.js → chunk-gqkjx7rz.js} +3 -3
  71. package/bin/{chunk-1nvd90g2.js → chunk-h7f5370s.js} +1 -1
  72. package/bin/chunk-hcyhsn8e.js +2 -0
  73. package/bin/{chunk-vcrmjtcz.js → chunk-jxm0gzmf.js} +2 -2
  74. package/bin/{chunk-b7bnp021.js → chunk-k3ggy3xk.js} +2 -2
  75. package/bin/{chunk-257dcd2f.js → chunk-k9vjs21p.js} +2 -2
  76. package/bin/chunk-ka40gv72.js +1 -0
  77. package/bin/chunk-km70p970.js +2 -0
  78. package/bin/{chunk-e4yscwen.js → chunk-m6v8rb39.js} +8 -8
  79. package/bin/chunk-m8spagwp.js +4 -0
  80. package/bin/{chunk-y241cxff.js → chunk-mfh7mg5b.js} +1 -1
  81. package/bin/chunk-n0cn0218.js +2 -0
  82. package/bin/chunk-n54ftsdx.js +2 -0
  83. package/bin/{chunk-02fvcrej.js → chunk-n7cvj15k.js} +7 -7
  84. package/bin/chunk-na5fh7er.js +2 -0
  85. package/bin/chunk-neazdbxy.js +1 -0
  86. package/bin/chunk-nk24qw3m.js +1 -0
  87. package/bin/{chunk-73yncv54.js → chunk-nsbbseff.js} +2 -2
  88. package/bin/chunk-nseef85h.js +1 -0
  89. package/bin/chunk-p35ztj2z.js +3 -0
  90. package/bin/chunk-pcjc9ygv.js +2 -0
  91. package/bin/{chunk-167z646e.js → chunk-pemmtd8q.js} +1 -1
  92. package/bin/{chunk-82tps5n1.js → chunk-pzrqnnpg.js} +1 -1
  93. package/bin/{chunk-a74g6h8a.js → chunk-q43m934j.js} +2 -2
  94. package/bin/{chunk-r1xer8gn.js → chunk-q57m34h0.js} +3 -3
  95. package/bin/chunk-q5k72jz9.js +3 -0
  96. package/bin/chunk-q9fsxakd.js +2 -0
  97. package/bin/chunk-qadpe0ct.js +2 -0
  98. package/bin/chunk-qeypjv4f.css +1 -0
  99. package/bin/chunk-qw92z3wf.js +2 -0
  100. package/bin/chunk-r0byfq1t.js +1 -0
  101. package/bin/chunk-r0q88qw3.js +2 -0
  102. package/bin/chunk-rjhczkh3.js +2 -0
  103. package/bin/{chunk-mwktrwtx.js → chunk-s0wxbybf.js} +1 -1
  104. package/bin/{chunk-q5vkxee3.js → chunk-s4hkcw24.js} +2 -2
  105. package/bin/chunk-szta50g1.js +1 -0
  106. package/bin/chunk-t6cb99gp.js +2 -0
  107. package/bin/chunk-tcr080b9.js +1 -0
  108. package/bin/{chunk-yq32evnn.js → chunk-v4nqx084.js} +5 -5
  109. package/bin/{chunk-ympbfzz4.js → chunk-v7jzc3ye.js} +1 -1
  110. package/bin/{chunk-9zsv6d2f.js → chunk-vbe8wred.js} +1 -1
  111. package/bin/{chunk-hpbn0k9n.js → chunk-vf9s8b5t.js} +2 -2
  112. package/bin/{chunk-m9adtgzk.js → chunk-vk3eqr65.js} +1 -1
  113. package/bin/{chunk-hpwv4am3.js → chunk-vm9bbk97.js} +4 -4
  114. package/bin/{chunk-v05rrxp5.js → chunk-w4gqg27w.js} +2 -2
  115. package/bin/{chunk-x8mjh387.js → chunk-w6ym7tsd.js} +4 -4
  116. package/bin/{chunk-hzkjgcre.js → chunk-ways29d1.js} +1 -1
  117. package/bin/chunk-wesg7tg9.js +1 -0
  118. package/bin/chunk-wmrrapwv.js +2 -0
  119. package/bin/chunk-wnwsjgj8.js +2 -0
  120. package/bin/{chunk-hw6czrya.js → chunk-wrb4xq9v.js} +1 -1
  121. package/bin/{chunk-v5cn90cf.js → chunk-wzrzc07t.js} +2 -2
  122. package/bin/chunk-xd1axsdv.js +2 -0
  123. package/bin/{chunk-cwat1jwx.js → chunk-xk0jmx4s.js} +2 -2
  124. package/bin/{chunk-g6sdezec.js → chunk-y545vfn0.js} +1 -1
  125. package/bin/{chunk-fatmqnp1.js → chunk-y6h885fs.js} +1 -1
  126. package/bin/{chunk-cz13a82m.js → chunk-yncmfr39.js} +2 -2
  127. package/bin/{chunk-01052ssf.js → chunk-yxnz4ypt.js} +11 -11
  128. package/bin/chunk-zc1asygg.js +2 -0
  129. package/bin/{chunk-m82tkhaa.js → chunk-zc7wzcvh.js} +7 -7
  130. package/bin/chunk-zdvhh8mk.js +2 -0
  131. package/bin/{chunk-kvhf12b4.js → chunk-zg0b902x.js} +2 -2
  132. package/bin/{chunk-7v7mypc6.js → chunk-zhq7a7hs.js} +2 -2
  133. package/bin/{chunk-f25fe9th.js → chunk-zmnvskn7.js} +11 -11
  134. package/bin/shumai-app.html +1 -1
  135. package/bin/shumai-app.js +470 -389
  136. package/package.json +7 -7
  137. package/prisma/migrations/20261102032402_add_archive_storage/migration.sql +25 -0
  138. package/prisma/schema.prisma +12 -6
  139. package/bin/chunk-0bj887zm.js +0 -2
  140. package/bin/chunk-1ktk6764.js +0 -10
  141. package/bin/chunk-26qn7fek.js +0 -2
  142. package/bin/chunk-2ne2b54t.js +0 -2
  143. package/bin/chunk-2vbeqczj.js +0 -1
  144. package/bin/chunk-37p6bcx2.js +0 -1
  145. package/bin/chunk-3knfx6dm.js +0 -1
  146. package/bin/chunk-3z85zxkn.js +0 -1
  147. package/bin/chunk-54tbfvya.js +0 -2
  148. package/bin/chunk-56kh5fxc.js +0 -1
  149. package/bin/chunk-576nj64j.js +0 -2
  150. package/bin/chunk-6cnqjngz.js +0 -1
  151. package/bin/chunk-7g46e1wy.js +0 -3
  152. package/bin/chunk-84x8p7v5.js +0 -1
  153. package/bin/chunk-88jg9dq5.js +0 -2
  154. package/bin/chunk-8fyg9dy4.js +0 -2
  155. package/bin/chunk-8gtfgkrn.js +0 -2
  156. package/bin/chunk-8mqbztj8.js +0 -2
  157. package/bin/chunk-8qdtvfx3.css +0 -1
  158. package/bin/chunk-8xb6yz11.js +0 -2
  159. package/bin/chunk-8yjsmr7g.js +0 -2
  160. package/bin/chunk-91rb0jpb.js +0 -2
  161. package/bin/chunk-96qpjght.js +0 -2
  162. package/bin/chunk-9f1xk1nt.js +0 -1
  163. package/bin/chunk-9mk9cvbk.js +0 -1
  164. package/bin/chunk-9nw5w8vh.js +0 -1
  165. package/bin/chunk-ah8fjb6f.js +0 -2
  166. package/bin/chunk-cf5axr8c.js +0 -1
  167. package/bin/chunk-dk42gf7v.js +0 -2
  168. package/bin/chunk-e4f56spj.js +0 -4
  169. package/bin/chunk-eb7mzbfm.js +0 -1
  170. package/bin/chunk-er14d498.js +0 -3
  171. package/bin/chunk-f6avg5qe.js +0 -129
  172. package/bin/chunk-fvx9k1dc.js +0 -2
  173. package/bin/chunk-gtf19jc1.js +0 -2
  174. package/bin/chunk-h1n7jqnw.js +0 -1
  175. package/bin/chunk-hfm82066.js +0 -2
  176. package/bin/chunk-j2s311yc.js +0 -3
  177. package/bin/chunk-kj6h5j5a.js +0 -4
  178. package/bin/chunk-km4gn6b6.js +0 -1
  179. package/bin/chunk-ny1kbmxt.js +0 -2
  180. package/bin/chunk-p3j6ydk1.js +0 -1
  181. package/bin/chunk-pk406dgy.js +0 -2
  182. package/bin/chunk-s1e4qy3q.js +0 -14
  183. package/bin/chunk-swtwaaqe.js +0 -1
  184. package/bin/chunk-tagdrg7p.js +0 -1
  185. package/bin/chunk-twtxnzbv.js +0 -2
  186. package/bin/chunk-v5mcjwxy.js +0 -2
  187. package/bin/chunk-vkzasgxw.js +0 -2
  188. package/bin/chunk-x342vzdx.js +0 -2
  189. package/bin/chunk-xc54vhfz.js +0 -2
  190. package/bin/chunk-xvkwbczx.js +0 -3
  191. package/bin/chunk-z1p13dnc.js +0 -2
  192. package/bin/chunk-zarz3sqn.js +0 -211
@@ -1,3 +1,3 @@
1
1
  // @bun
2
- var f=-1/0,e=0;function a(n){if(globalThis.crypto?.getRandomValues){globalThis.crypto.getRandomValues(n);return}for(let i=0;i<n.length;i++)n[i]=Math.floor(Math.random()*256)}function lc(){let n=new Uint8Array(16);a(n);let i=Date.now();if(i>f)e=n[6]*16777216+n[7]*65536+n[8]*256+n[9],f=i;else if(e=e+1>>>0,e===0)f++;let t=new Uint8Array(16);t[0]=f/1099511627776&255,t[1]=f/4294967296&255,t[2]=f/16777216&255,t[3]=f/65536&255,t[4]=f/256&255,t[5]=f&255,t[6]=112|e>>>28&15,t[7]=e>>>20&255,t[8]=128|e>>>14&63,t[9]=e>>>6&255,t[10]=(e&63)<<2|n[10]&3,t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15];let o=Array.from(t,(x)=>x.toString(16).padStart(2,"0"));return`${o.slice(0,4).join("")}-${o.slice(4,6).join("")}-${o.slice(6,8).join("")}-${o.slice(8,10).join("")}-${o.slice(10,16).join("")}`}
3
- export{lc};
2
+ var f=-1/0,e=0;function a(n){if(globalThis.crypto?.getRandomValues){globalThis.crypto.getRandomValues(n);return}for(let i=0;i<n.length;i++)n[i]=Math.floor(Math.random()*256)}function Ec(){let n=new Uint8Array(16);a(n);let i=Date.now();if(i>f)e=n[6]*16777216+n[7]*65536+n[8]*256+n[9],f=i;else if(e=e+1>>>0,e===0)f++;let t=new Uint8Array(16);t[0]=f/1099511627776&255,t[1]=f/4294967296&255,t[2]=f/16777216&255,t[3]=f/65536&255,t[4]=f/256&255,t[5]=f&255,t[6]=112|e>>>28&15,t[7]=e>>>20&255,t[8]=128|e>>>14&63,t[9]=e>>>6&255,t[10]=(e&63)<<2|n[10]&3,t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15];let o=Array.from(t,(x)=>x.toString(16).padStart(2,"0"));return`${o.slice(0,4).join("")}-${o.slice(4,6).join("")}-${o.slice(6,8).join("")}-${o.slice(8,10).join("")}-${o.slice(10,16).join("")}`}
3
+ export{Ec};
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{yv,bA,Nf,Rl,ND,FD,LD,wA,vv,ZD,Ff,Vn}from"./chunk-zmnvskn7.js";import"./chunk-8zcfgz9c.js";import"./chunk-e2p4s2pj.js";import"./chunk-d277evce.js";export{Rl as d,bA as f,Nf as h,Ff as i,FD as m,vv as n,LD as o,ND as p,ZD as r,wA as s,Vn as t,yv as u};
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import"./chunk-d277evce.js";import{Fm,DD}from"./chunk-ajr1w3vq.js";import"./chunk-e2p4s2pj.js";import"./chunk-0njsjy6x.js";export{Fm as createKyselyAdapter,DD as kyselyAdapter};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{At}from"./chunk-02fvcrej.js";import{kr}from"./chunk-cwat1jwx.js";import"./chunk-x8mjh387.js";import{Oa}from"./chunk-7v7mypc6.js";import{Pa,Da}from"./chunk-b7bnp021.js";import{$i,Hi,Qi}from"./chunk-1wfg56z3.js";import{Bs}from"./chunk-j2s311yc.js";import{no,oo}from"./chunk-eyjfhdp9.js";import{Us}from"./chunk-jt02kpfc.js";import{Hn}from"./chunk-7g46e1wy.js";import{Co,Yr}from"./chunk-vcrmjtcz.js";import{vn}from"./chunk-jzgbxqdg.js";import{mr}from"./chunk-v05rrxp5.js";var O=new Set(["openai","openai-codex","opencode"]),E=16;function h(e,o){if(!e)return!1;let r=o.toLowerCase();for(let[t,s]of Object.entries(e))if(t.toLowerCase()===r&&s!==null&&s.trim().length>0)return!0;return!1}function g(e,o,r){if(o)return o;if(h(r,"authorization")||h(r,"cf-aig-authorization"))return"unused";throw Error(`No API key for provider: ${e}`)}function I(e){return e.provider==="openrouter"||e.baseUrl.includes("openrouter.ai")?"openrouter":"openai"}function R(e,o){if(e)return e;if(kr("PI_CACHE_RETENTION",o)==="long")return"long";return"short"}function m(e){return{supportsDeveloperRole:e.compat?.supportsDeveloperRole??!0,sessionAffinityFormat:e.compat?.sessionAffinityFormat??I(e),supportsLongCacheRetention:e.compat?.supportsLongCacheRetention??!0,supportsStrictMode:e.compat?.supportsStrictMode??!1,supportsOpenAIGrammarTools:e.compat?.supportsOpenAIGrammarTools??!1,supportsToolSearch:e.compat?.supportsToolSearch??!1,supportsExplicitPromptCacheMode:e.compat?.supportsExplicitPromptCacheMode??!1}}function P(e,o){return o==="long"&&e.supportsLongCacheRetention?"24h":void 0}function S(e){return oo(no(e),"OpenAI API error")}var C=(e,o,r)=>{let t=new mr;return(async()=>{let s={role:"assistant",content:[],api:e.api,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:"stop",timestamp:Date.now()};try{let i=g(e.provider,r?.apiKey,r?.headers),c=R(r?.cacheRetention,r?.env)==="none"?void 0:r?.sessionId,p=m(e),a=Co(o.tools,p.supportsOpenAIGrammarTools),u=w(e,o,i,r?.headers,c),f=M(e,o,r,p,a),l=await r?.onPayload?.(f,e);if(l!==void 0)f=l;let v={...r?.signal?{signal:r.signal}:{},...r?.timeoutMs!==void 0?{timeout:r.timeoutMs}:{},maxRetries:0},{data:y,response:d}=await Us(()=>u.responses.create(f,v).withResponse(),{maxRetries:r?.maxRetries,maxRetryDelayMs:r?.maxRetryDelayMs,signal:r?.signal});if(await r?.onResponse?.({status:d.status,headers:Hn(d.headers)},e),t.push({type:"start",partial:s}),await Qi(y,s,t,e,{serviceTier:r?.serviceTier,grammarToolInputProperties:a,applyServiceTierPricing:(T,A)=>b(T,A,e)}),r?.signal?.aborted)throw Error("Request was aborted");if(s.stopReason==="aborted"||s.stopReason==="error")throw Error("An unknown error occurred");t.push({type:"done",reason:s.stopReason,message:s}),t.end()}catch(i){for(let n of s.content)delete n.index,delete n.partialJson,delete n.customInput;s.stopReason=r?.signal?.aborted?"aborted":"error",s.errorMessage=S(i),t.push({type:"error",reason:s.stopReason,error:s}),t.end()}})(),t},z=(e,o,r)=>{g(e.provider,r?.apiKey,r?.headers);let t=Yr(e,o,r,r?.apiKey),s=r?.reasoning?vn(e,r.reasoning):void 0;return C(e,o,{...t,reasoningEffort:s==="off"?void 0:s})};function w(e,o,r,t,s){let i=m(e),n={...e.headers};if(e.provider==="github-copilot"){let c=Pa(o.messages),p=Da({messages:o.messages,hasImages:c});Object.assign(n,p)}if(s)if(i.sessionAffinityFormat==="openrouter")n["x-session-id"]=s;else{if(i.sessionAffinityFormat==="openai")n.session_id=s;n["x-client-request-id"]=s}if(t)Object.assign(n,t);return new At({apiKey:r,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:n})}function M(e,o,r,t=m(e),s=Co(o.tools,t.supportsOpenAIGrammarTools)){let i=Oa(o,t.supportsToolSearch),n=$i(e,o,O,{grammarToolInputProperties:s,deferredTools:i.deferred,toolOptions:{supportsStrictMode:t.supportsStrictMode,supportsOpenAIGrammarTools:t.supportsOpenAIGrammarTools}}),c=R(r?.cacheRetention,r?.env),p=c==="none"&&t.supportsExplicitPromptCacheMode,a={model:e.id,input:n,stream:!0,prompt_cache_key:c==="none"?void 0:Bs(r?.sessionId),prompt_cache_retention:P(t,c),prompt_cache_options:p?{mode:"explicit"}:void 0,store:!1};if(r?.maxTokens)a.max_output_tokens=Math.max(r.maxTokens,E);if(r?.temperature!==void 0)a.temperature=r?.temperature;if(r?.serviceTier!==void 0)a.service_tier=r.serviceTier;if(i.immediate.length>0)a.tools=Hi(i.immediate,{supportsStrictMode:t.supportsStrictMode,supportsOpenAIGrammarTools:t.supportsOpenAIGrammarTools});if(r?.toolChoice!==void 0)a.tool_choice=r.toolChoice;if(e.reasoning){if(r?.reasoningEffort||r?.reasoningSummary){let u=r?.reasoningEffort?e.thinkingLevelMap?.[r.reasoningEffort]??r.reasoningEffort:"medium";a.reasoning={effort:u,summary:r?.reasoningSummary||"auto"},a.include=["reasoning.encrypted_content"]}else if(e.provider!=="github-copilot"&&e.thinkingLevelMap?.off!==null)a.reasoning={effort:e.thinkingLevelMap?.off??"none"};if(e.provider==="xai")a.include=["reasoning.encrypted_content"]}return a}function _(e,o){switch(o){case"flex":return 0.5;case"priority":return e.id==="gpt-5.5"?2.5:2;default:return 1}}function b(e,o,r){let t=_(r,o);if(t===1)return;e.cost.input*=t,e.cost.output*=t,e.cost.cacheRead*=t,e.cost.cacheWrite*=t,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite}export{C as stream,z as streamSimple};
2
+ import{Tt}from"./chunk-n7cvj15k.js";import{Mr}from"./chunk-xk0jmx4s.js";import"./chunk-w6ym7tsd.js";import{$a}from"./chunk-zhq7a7hs.js";import{Ha,Qa}from"./chunk-k3ggy3xk.js";import{Ji,Yi,Xi}from"./chunk-gm1fy3hm.js";import{Qs}from"./chunk-by9esjn7.js";import{io,ao}from"./chunk-gd3b5akr.js";import{Gs}from"./chunk-9qzbrp4d.js";import{Gn}from"./chunk-1aqs9sdh.js";import{Ro,tn}from"./chunk-jxm0gzmf.js";import{En}from"./chunk-978rm9a9.js";import{hr}from"./chunk-w4gqg27w.js";var O=new Set(["openai","openai-codex","opencode"]),E=16;function h(e,o){if(!e)return!1;let r=o.toLowerCase();for(let[t,s]of Object.entries(e))if(t.toLowerCase()===r&&s!==null&&s.trim().length>0)return!0;return!1}function g(e,o,r){if(o)return o;if(h(r,"authorization")||h(r,"cf-aig-authorization"))return"unused";throw Error(`No API key for provider: ${e}`)}function I(e){return e.provider==="openrouter"||e.baseUrl.includes("openrouter.ai")?"openrouter":"openai"}function R(e,o){if(e)return e;if(Mr("PI_CACHE_RETENTION",o)==="long")return"long";return"short"}function m(e){return{supportsDeveloperRole:e.compat?.supportsDeveloperRole??!0,sessionAffinityFormat:e.compat?.sessionAffinityFormat??I(e),supportsLongCacheRetention:e.compat?.supportsLongCacheRetention??!0,supportsStrictMode:e.compat?.supportsStrictMode??!1,supportsOpenAIGrammarTools:e.compat?.supportsOpenAIGrammarTools??!1,supportsToolSearch:e.compat?.supportsToolSearch??!1,supportsExplicitPromptCacheMode:e.compat?.supportsExplicitPromptCacheMode??!1}}function P(e,o){return o==="long"&&e.supportsLongCacheRetention?"24h":void 0}function S(e){return ao(io(e),"OpenAI API error")}var C=(e,o,r)=>{let t=new hr;return(async()=>{let s={role:"assistant",content:[],api:e.api,provider:e.provider,model:e.id,usage:{input:0,output:0,cacheRead:0,cacheWrite:0,totalTokens:0,cost:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0}},stopReason:"stop",timestamp:Date.now()};try{let i=g(e.provider,r?.apiKey,r?.headers),c=R(r?.cacheRetention,r?.env)==="none"?void 0:r?.sessionId,p=m(e),a=Ro(o.tools,p.supportsOpenAIGrammarTools),u=w(e,o,i,r?.headers,c),f=M(e,o,r,p,a),l=await r?.onPayload?.(f,e);if(l!==void 0)f=l;let v={...r?.signal?{signal:r.signal}:{},...r?.timeoutMs!==void 0?{timeout:r.timeoutMs}:{},maxRetries:0},{data:y,response:d}=await Gs(()=>u.responses.create(f,v).withResponse(),{maxRetries:r?.maxRetries,maxRetryDelayMs:r?.maxRetryDelayMs,signal:r?.signal});if(await r?.onResponse?.({status:d.status,headers:Gn(d.headers)},e),t.push({type:"start",partial:s}),await Xi(y,s,t,e,{serviceTier:r?.serviceTier,grammarToolInputProperties:a,applyServiceTierPricing:(T,A)=>b(T,A,e)}),r?.signal?.aborted)throw Error("Request was aborted");if(s.stopReason==="aborted"||s.stopReason==="error")throw Error("An unknown error occurred");t.push({type:"done",reason:s.stopReason,message:s}),t.end()}catch(i){for(let n of s.content)delete n.index,delete n.partialJson,delete n.customInput;s.stopReason=r?.signal?.aborted?"aborted":"error",s.errorMessage=S(i),t.push({type:"error",reason:s.stopReason,error:s}),t.end()}})(),t},z=(e,o,r)=>{g(e.provider,r?.apiKey,r?.headers);let t=tn(e,o,r,r?.apiKey),s=r?.reasoning?En(e,r.reasoning):void 0;return C(e,o,{...t,reasoningEffort:s==="off"?void 0:s})};function w(e,o,r,t,s){let i=m(e),n={...e.headers};if(e.provider==="github-copilot"){let c=Ha(o.messages),p=Qa({messages:o.messages,hasImages:c});Object.assign(n,p)}if(s)if(i.sessionAffinityFormat==="openrouter")n["x-session-id"]=s;else{if(i.sessionAffinityFormat==="openai")n.session_id=s;n["x-client-request-id"]=s}if(t)Object.assign(n,t);return new Tt({apiKey:r,baseURL:e.baseUrl,dangerouslyAllowBrowser:!0,defaultHeaders:n})}function M(e,o,r,t=m(e),s=Ro(o.tools,t.supportsOpenAIGrammarTools)){let i=$a(o,t.supportsToolSearch),n=Ji(e,o,O,{grammarToolInputProperties:s,deferredTools:i.deferred,toolOptions:{supportsStrictMode:t.supportsStrictMode,supportsOpenAIGrammarTools:t.supportsOpenAIGrammarTools}}),c=R(r?.cacheRetention,r?.env),p=c==="none"&&t.supportsExplicitPromptCacheMode,a={model:e.id,input:n,stream:!0,prompt_cache_key:c==="none"?void 0:Qs(r?.sessionId),prompt_cache_retention:P(t,c),prompt_cache_options:p?{mode:"explicit"}:void 0,store:!1};if(r?.maxTokens)a.max_output_tokens=Math.max(r.maxTokens,E);if(r?.temperature!==void 0)a.temperature=r?.temperature;if(r?.serviceTier!==void 0)a.service_tier=r.serviceTier;if(i.immediate.length>0)a.tools=Yi(i.immediate,{supportsStrictMode:t.supportsStrictMode,supportsOpenAIGrammarTools:t.supportsOpenAIGrammarTools});if(r?.toolChoice!==void 0)a.tool_choice=r.toolChoice;if(e.reasoning){if(r?.reasoningEffort||r?.reasoningSummary){let u=r?.reasoningEffort?e.thinkingLevelMap?.[r.reasoningEffort]??r.reasoningEffort:"medium";a.reasoning={effort:u,summary:r?.reasoningSummary||"auto"},a.include=["reasoning.encrypted_content"]}else if(e.provider!=="github-copilot"&&e.thinkingLevelMap?.off!==null)a.reasoning={effort:e.thinkingLevelMap?.off??"none"};if(e.provider==="xai")a.include=["reasoning.encrypted_content"]}return a}function _(e,o){switch(o){case"flex":return 0.5;case"priority":return e.id==="gpt-5.5"?2.5:2;default:return 1}}function b(e,o,r){let t=_(r,o);if(t===1)return;e.cost.input*=t,e.cost.output*=t,e.cost.cacheRead*=t,e.cost.cacheWrite*=t,e.cost.total=e.cost.input+e.cost.output+e.cost.cacheRead+e.cost.cacheWrite}export{C as stream,z as streamSimple};
@@ -1,8 +1,8 @@
1
1
  // @bun
2
- import{te,go,wf,fn,bi,Es,Tf,Mr,vr,Go,ds}from"./chunk-yk12hydf.js";import{e,_,E,W,ue,l,D,k}from"./chunk-2cdxm1cp.js";var oe=({schema:y,usePlural:c})=>{let w=Es({schema:y,usePlural:c});return({field:P,model:t})=>{if(P==="id"||P==="_id")return"id";let K=w(t),b=y[K]?.fields[P];if(!b){let Y=Object.entries(y[K].fields).find(([v,O])=>O.fieldName===P);if(Y)b=Y[1],P=Y[0]}if(!b)throw new te(`Field ${P} not found in model ${K}`);return P}};var se=({usePlural:y,schema:c,options:w,customIdGenerator:S,disableIdGeneration:P})=>{let t=Es({usePlural:y,schema:c}),K=oe({usePlural:y,schema:c}),b=Tf({usePlural:y,schema:c,options:w,customIdGenerator:S,disableIdGeneration:P});return({model:v,field:O})=>{let N=t(v),R=K({field:O,model:N}),J=c[N].fields;J.id=b({customModelName:N});let C=J[R];if(!C)throw new te(`Field ${O} not found in model ${v}`);return C}};var Yu=({schema:y,usePlural:c})=>{let w=Es({schema:y,usePlural:c}),S=oe({schema:y,usePlural:c});function P({model:t,field:K}){let b=w(t),Y=S({model:b,field:K});return y[b]?.fields[Y]?.fieldName||Y}return P};var Xu=({usePlural:y,schema:c})=>{let w=Es({schema:c,usePlural:y});return(P)=>{let t=w(P);if(c&&c[t]&&c[t].modelName!==P)return y?`${c[t].modelName}s`:c[t].modelName;return y?`${P}s`:P}};function de(y,c,w){if(w==="update"){if(y===void 0&&c.onUpdate!==void 0){if(typeof c.onUpdate==="function")return c.onUpdate();return c.onUpdate}return y}if(w==="create"){if(y===void 0||c.required===!0&&y===null){if(c.defaultValue!==void 0){if(typeof c.defaultValue==="function")return c.defaultValue();return c.defaultValue}}}return y}var ce=5,me=D([e(),_(),E(),ue()]).nullable(),pe=k(e(),W()).nullish(),ye=k(e(),W()).transform((y)=>{let c={};for(let[w,S]of Object.entries(y))if(S!==void 0)c[w]=S;return c}),he=l({increment:k(e(),_()),set:ye.optional()}),$e=_().nullish();function le(y){let{adapter:c,adapterId:w}=y,S=Object.entries(y.mapKeysTransformOutput??{}).find(([,O])=>O==="id")?.[0]??"id";async function P(O,N,R){let J=y.mapKeysTransformInput?.id||y.getFieldName({model:N,field:"id"});if(O[J]===void 0||O[J]===null)throw new te(`Adapter "${y.adapterId}" must return the row id for atomic fallbacks.`);let C=(await y.transformOutput(O,N,[S],void 0))?.id;if(typeof C!=="string"&&typeof C!=="number")throw new te(`Adapter "${y.adapterId}" must expose a logical string or number id through its output transform.`);let[V]=y.transformWhereClause({model:N,where:[{field:"id",value:C}],action:R});if(!V)throw new te("The atomic fallback id condition was transformed away.");return V}async function t({model:O,modelKey:N,where:R}){let J=pe.safeParse(await c.findOne({model:O,modelKey:N,where:R}));if(!J.success)throw new te(`Adapter "${w}" must return a row snapshot or null.`);return J.data??null}async function K(O,N,R,J){let C=await P(O,R.modelKey,J),V=R.where.some((x)=>x.connector==="OR"),X=V?[C]:[...R.where,C],q=new Set(N);for(let x of q){if(x===C.field)continue;let Q=me.safeParse(O[x]??null);if(!Q.success){if(V&&R.where.some((L)=>L.field===x))throw new te(`Adapter "${w}" must implement native atomic methods for OR predicates on structured values.`);continue}X.push({field:x,value:Q.data,operator:"eq",connector:"AND",mode:"sensitive"})}return X}function b(O){if(O!==0&&O!==1)throw new te(`Adapter "${w}" must return an affected row count of 0 or 1 from an atomic fallback.`);return O===1}async function Y(O){let{model:N,where:R}=O,J=await t(O);if(J===null)return null;let C=await K(J,[...Object.keys(J),...R.map(({field:V})=>V)],O,"consumeOne");return b(await c.deleteMany({model:N,modelKey:O.modelKey,where:C}))?J:null}async function v(O){let{model:N,where:R}=O,J=he.safeParse(O);if(!J.success)throw new te("incrementOne requires finite increments and a set object for the atomic fallback.");let{increment:C,set:V}=J.data,X=Object.entries(C),q=[...R.map(({field:x})=>x),...Object.keys(C),...Object.keys(V??{})];for(let x=0;x<ce;x++){let Q=await t(O);if(Q===null)return null;let L={...V};for(let[ne,Z]of X){let i=$e.safeParse(Q[ne]);if(!i.success)throw new te(`Adapter "${w}" must return finite numeric counter values or null for atomic increments.`);let m=i.data??0,r=m+Z;if(!Number.isFinite(r)||Z!==0&&r===m)throw new te(`Adapter "${w}" cannot represent the requested counter increment safely.`);L[ne]=r}let re=await K(Q,q,O,"incrementOne");if(Object.entries(L).every(([ne,Z])=>{let i=Q[ne];if(i instanceof Date&&Z instanceof Date)return i.getTime()===Z.getTime();return Object.is(i,Z)}))return Q;if(b(await c.updateMany({model:N,modelKey:O.modelKey,where:re,update:L})))return{...Q,...L}}throw new te(`Adapter "${w}" could not complete an atomic increment due to contention. Retry the operation or implement incrementOne natively.`)}return{consumeOne:Y,incrementOne:v}}var ae=[],z=-1,be=(y)=>(c)=>c(y),Gs=({adapter:y,config:c})=>(w)=>{let S=ds(w),P=Math.random().toString(36).substring(2,15),t={...c,supportsBooleans:c.supportsBooleans??!0,supportsDates:c.supportsDates??!0,supportsJSON:c.supportsJSON??!1,adapterName:c.adapterName??c.adapterId,supportsNumericIds:c.supportsNumericIds??!0,supportsUUIDs:c.supportsUUIDs??!1,supportsArrays:c.supportsArrays??!1,transaction:c.transaction??!1,disableTransformInput:c.disableTransformInput??!1,disableTransformOutput:c.disableTransformOutput??!1,disableTransformJoin:c.disableTransformJoin??!1};if(w.advanced?.database?.generateId==="serial"&&t.supportsNumericIds===!1)throw new te(`[${t.adapterName}] Your database or database adapter does not support numeric ids. Please disable "useNumberId" in your config.`);let K=go(w),b=(...i)=>{if(t.debugLogs===!0||typeof t.debugLogs==="object"){let m=bi({level:"info"});if(typeof t.debugLogs==="object"&&"isRunningAdapterTests"in t.debugLogs){if(t.debugLogs.isRunningAdapterTests)i.shift(),ae.push({instance:P,args:i});return}if(typeof t.debugLogs==="object"&&t.debugLogs.logCondition&&!t.debugLogs.logCondition?.())return;if(typeof i[0]==="object"&&"method"in i[0]){let r=i.shift().method;if(typeof t.debugLogs==="object"){if(r==="create"&&!t.debugLogs.create)return;else if(r==="update"&&!t.debugLogs.update)return;else if(r==="updateMany"&&!t.debugLogs.updateMany)return;else if(r==="findOne"&&!t.debugLogs.findOne)return;else if(r==="findMany"&&!t.debugLogs.findMany)return;else if(r==="delete"&&!t.debugLogs.delete)return;else if(r==="deleteMany"&&!t.debugLogs.deleteMany)return;else if(r==="consumeOne"&&!t.debugLogs.consumeOne)return;else if(r==="incrementOne"&&!t.debugLogs.incrementOne)return;else if(r==="count"&&!t.debugLogs.count)return}m.info(`[${t.adapterName}]`,...i)}else m.info(`[${t.adapterName}]`,...i)}},Y=bi(w.logger),v=Es({usePlural:t.usePlural,schema:K}),O=oe({usePlural:t.usePlural,schema:K}),N=Xu({usePlural:t.usePlural,schema:K}),R=Yu({schema:K,usePlural:t.usePlural}),J=Tf({schema:K,options:w,usePlural:t.usePlural,disableIdGeneration:t.disableIdGeneration,customIdGenerator:t.customIdGenerator,supportsUUIDs:t.supportsUUIDs}),C=se({schema:K,options:w,usePlural:t.usePlural,disableIdGeneration:t.disableIdGeneration,customIdGenerator:t.customIdGenerator}),V=async(i,m,r,o)=>{let n={},s=K[m].fields,f=t.mapKeysTransformInput??{},h=w.advanced?.database?.generateId==="serial";s.id=J({customModelName:m,forceAllowId:o&&"id"in i});for(let u in s){let p=i[u],a=s[u],g=f[u]||s[u].fieldName||u;if(p===void 0&&(a.defaultValue===void 0&&!a.transform?.input&&!(r==="update"&&a.onUpdate)||r==="update"&&!a.onUpdate))continue;if(a&&a.type==="date"&&!(p instanceof Date)&&typeof p==="string")try{p=new Date(p)}catch{Y.error("[Adapter Factory] Failed to convert string to date",{value:p,field:u})}let d=de(p,a,r);if(a.transform?.input)d=await a.transform.input(d);if(a.references?.field==="id"&&h)if(Array.isArray(d))d=d.map((j)=>j!==null?Number(j):null);else d=d!==null?Number(d):null;else if(t.supportsJSON===!1&&typeof d==="object"&&a.type==="json")d=JSON.stringify(d);else if(t.supportsArrays===!1&&Array.isArray(d)&&(a.type==="string[]"||a.type==="number[]"))d=JSON.stringify(d);else if(t.supportsDates===!1&&d instanceof Date&&a.type==="date")d=d.toISOString();else if(t.supportsBooleans===!1&&typeof d==="boolean")d=d?1:0;if(t.customTransformInput)d=t.customTransformInput({data:d,action:r,field:g,fieldAttributes:a,model:N(m),schema:K,options:w});if(d!==void 0)n[g]=d}return n},X=async(i,m,r=[],o)=>{let n=async(u,p,a=[])=>{if(!u)return null;let g=v(p),d=t.mapKeysTransformOutput??{},j={},T=K[g].fields,H=Object.entries(d).find(([F,B])=>B==="id")?.[0];T[H??"id"]={type:w.advanced?.database?.generateId==="serial"?"number":"string"};for(let F in T){if(a.length&&!a.includes(F))continue;let B=T[F];if(B){let ee=B.fieldName||F,U=u[Object.entries(d).find(([we,fe])=>fe===ee)?.[0]||ee];if(B.transform?.output)U=await B.transform.output(U);let ie=d[F]||F;if(ee==="id"||B.references?.field==="id"){if(typeof U<"u"&&U!==null)U=String(U)}else if(t.supportsJSON===!1&&typeof U==="string"&&B.type==="json")U=Mr(U);else if(t.supportsArrays===!1&&typeof U==="string"&&(B.type==="string[]"||B.type==="number[]"))U=Mr(U);else if(t.supportsDates===!1&&typeof U==="string"&&B.type==="date")U=new Date(U);else if(t.supportsBooleans===!1&&typeof U==="number"&&B.type==="boolean")U=U===1;if(t.customTransformOutput)U=t.customTransformOutput({data:U,field:ie,fieldAttributes:B,select:a,model:N(g),schema:K,options:w});j[ie]=U}}return j};if(!o||Object.keys(o).length===0)return await n(i,m,r);let s=v(m),f=await n(i,s,r),h=Object.entries(o).map(([u,p])=>({modelName:u,defaultModelName:p.modelKey??v(u),joinConfig:p}));if(!i)return null;for(let{modelName:u,defaultModelName:p,joinConfig:a}of h){let g=await(async()=>{if(w.advanced?.database?.joins){if(u in i)return i[u]}return await Q({baseModel:s,baseData:f,joinModel:u,specificJoinConfig:a})})();if(g===void 0||g===null)g=a.relation==="one-to-one"?null:[];if(a.relation==="one-to-many"&&!Array.isArray(g))g=[g];let d=[];if(Array.isArray(g))for(let j of g){let T=await n(j,p,[]);d.push(T)}else{let j=await n(g,p,[]);d.push(j)}f[p]=(a.relation==="one-to-one"?d[0]:d)??null}return f},q=({model:i,where:m,action:r})=>{if(!m)return;let o=t.mapKeysTransformInput??{};return m.map((n)=>{let{field:s,value:f,operator:h="eq",connector:u="AND",mode:p="sensitive"}=n;if(h==="in"){if(!Array.isArray(f))throw new te("Value must be an array")}let a=f,g=v(i),d=O({field:s,model:i}),j=o[d]||R({field:d,model:g}),T=C({field:d,model:g}),H=w.advanced?.database?.generateId==="serial";if(d==="id"||T.references?.field==="id"){if(H)if(Array.isArray(f))a=f.map(Number);else a=Number(f)}if(T.type==="date"&&f instanceof Date&&!t.supportsDates)a=f.toISOString();if(T.type==="boolean"&&typeof a==="string")a=a==="true";if(T.type==="number"){if(typeof a==="string"&&a.trim()!==""){let F=Number(a);if(!Number.isNaN(F))a=F}else if(Array.isArray(a)){let F=a.map((B)=>typeof B==="string"&&B.trim()!==""?Number(B):NaN);if(F.every((B)=>!Number.isNaN(B)))a=F}}if(T.type==="boolean"&&typeof a==="boolean"&&!t.supportsBooleans)a=a?1:0;if(T.type==="json"&&typeof f==="object"&&!t.supportsJSON)try{a=JSON.stringify(f)}catch(F){throw Error(`Failed to stringify JSON value for field ${j}`,{cause:F})}if(t.customTransformInput)a=t.customTransformInput({data:a,fieldAttributes:T,field:j,model:N(i),schema:K,options:w,action:r});return{operator:h,connector:u,field:j,value:a,mode:p}})},x=(i,m,r)=>{if(!m)return;if(Object.keys(m).length===0)return;let o={};for(let[n,s]of Object.entries(m)){if(!s)continue;let f=v(n),h=v(i),u=Object.entries(K[f].fields).filter(([B,ee])=>ee.references&&v(ee.references.model)===h),p=!0;if(!u.length)u=Object.entries(K[h].fields).filter(([B,ee])=>ee.references&&v(ee.references.model)===f),p=!1;if(!u.length)throw new te(`No foreign key found for model ${n} and base model ${i} while performing join operation.`);else if(u.length>1)throw new te(`Multiple foreign keys found for model ${n} and base model ${i} while performing join operation. Only one foreign key is supported.`);let[a,g]=u[0];if(!g.references)throw new te(`No references found for foreign key ${a} on model ${n} while performing join operation.`);let d,j,T;if(p)T=g.references.field,d=R({model:i,field:T}),j=R({model:n,field:a});else T=a,d=R({model:i,field:T}),j=R({model:n,field:g.references.field});if(r&&!r.includes(T))r.push(T);let H=j==="id"?!0:g.unique??!1,F=w.advanced?.database?.defaultFindManyLimit??100;if(H)F=1;else if(typeof s==="object"&&typeof s.limit==="number")F=s.limit;o[N(n)]={modelKey:n,on:{from:d,to:j},limit:F,relation:H?"one-to-one":"one-to-many"}}return{join:o,select:r}},Q=async({baseModel:i,baseData:m,joinModel:r,specificJoinConfig:o})=>{if(!m)return m;let n=o.modelKey??v(r),s=N(n),f=o.on.to,h=m[O({field:o.on.from,model:i})];if(h===null||h===void 0)return o.relation==="one-to-one"?null:[];let u,p=q({model:n,where:[{field:f,value:h,operator:"eq",connector:"AND"}],action:"findOne"});try{if(o.relation==="one-to-one")u=await S(`db findOne ${s}`,{[Go]:"findOne",[vr]:s},()=>L.findOne({model:s,modelKey:n,where:p}));else{let a=o.limit??w.advanced?.database?.defaultFindManyLimit??100;u=await S(`db findMany ${s}`,{[Go]:"findMany",[vr]:s},()=>L.findMany({model:s,modelKey:n,where:p,limit:a}))}}catch(a){throw Y.error(`Failed to query fallback join for model ${s}:`,{where:p,limit:o.limit}),console.error(a),a}return u},L=y({options:w,schema:K,debugLog:b,getFieldName:R,getModelName:N,getDefaultModelName:v,getDefaultFieldName:O,getFieldAttributes:C,transformInput:V,transformOutput:X,transformWhereClause:q}),re=null,ne=le({adapter:L,adapterId:t.adapterId,mapKeysTransformInput:t.mapKeysTransformInput,mapKeysTransformOutput:t.mapKeysTransformOutput,getFieldName:R,transformOutput:X,transformWhereClause:q}),Z={transaction:async(i)=>{if(!re)if(!t.transaction)re=be(Z);else Y.debug(`[${t.adapterName}] - Using provided transaction implementation.`),re=t.transaction;return re(i)},create:async({data:i,model:m,select:r,forceAllowId:o=!1})=>{z++;let n=z,s=v(m),f=N(s);if("id"in i&&typeof i.id<"u"&&!o){Y.warn(`[${t.adapterName}] - You are trying to create a record with an id. This is not allowed as we handle id generation for you, unless you pass in the \`forceAllowId\` parameter. The id will be ignored.`);let a=Error().stack?.split(`
2
+ import{te,bo,qf,pn,Si,Ms,Kf,Pr,wr,Wo,_s}from"./chunk-d277evce.js";import{e,_,E,J,de,l,D,k}from"./chunk-4b2x2qba.js";var oe=({schema:y,usePlural:c})=>{let w=Ms({schema:y,usePlural:c});return({field:P,model:t})=>{if(P==="id"||P==="_id")return"id";let K=w(t),b=y[K]?.fields[P];if(!b){let Y=Object.entries(y[K].fields).find(([v,O])=>O.fieldName===P);if(Y)b=Y[1],P=Y[0]}if(!b)throw new te(`Field ${P} not found in model ${K}`);return P}};var se=({usePlural:y,schema:c,options:w,customIdGenerator:S,disableIdGeneration:P})=>{let t=Ms({usePlural:y,schema:c}),K=oe({usePlural:y,schema:c}),b=Kf({usePlural:y,schema:c,options:w,customIdGenerator:S,disableIdGeneration:P});return({model:v,field:O})=>{let N=t(v),R=K({field:O,model:N}),z=c[N].fields;z.id=b({customModelName:N});let V=z[R];if(!V)throw new te(`Field ${O} not found in model ${v}`);return V}};var hd=({schema:y,usePlural:c})=>{let w=Ms({schema:y,usePlural:c}),S=oe({schema:y,usePlural:c});function P({model:t,field:K}){let b=w(t),Y=S({model:b,field:K});return y[b]?.fields[Y]?.fieldName||Y}return P};var gd=({usePlural:y,schema:c})=>{let w=Ms({schema:c,usePlural:y});return(P)=>{let t=w(P);if(c&&c[t]&&c[t].modelName!==P)return y?`${c[t].modelName}s`:c[t].modelName;return y?`${P}s`:P}};function le(y,c,w){if(w==="update"){if(y===void 0&&c.onUpdate!==void 0){if(typeof c.onUpdate==="function")return c.onUpdate();return c.onUpdate}return y}if(w==="create"){if(y===void 0||c.required===!0&&y===null){if(c.defaultValue!==void 0){if(typeof c.defaultValue==="function")return c.defaultValue();return c.defaultValue}}}return y}var ce=5,me=D([e(),_(),E(),de()]).nullable(),pe=k(e(),J()).nullish(),ye=k(e(),J()).transform((y)=>{let c={};for(let[w,S]of Object.entries(y))if(S!==void 0)c[w]=S;return c}),he=l({increment:k(e(),_()),set:ye.optional()}),$e=_().nullish();function ue(y){let{adapter:c,adapterId:w}=y,S=Object.entries(y.mapKeysTransformOutput??{}).find(([,O])=>O==="id")?.[0]??"id";async function P(O,N,R){let z=y.mapKeysTransformInput?.id||y.getFieldName({model:N,field:"id"});if(O[z]===void 0||O[z]===null)throw new te(`Adapter "${y.adapterId}" must return the row id for atomic fallbacks.`);let V=(await y.transformOutput(O,N,[S],void 0))?.id;if(typeof V!=="string"&&typeof V!=="number")throw new te(`Adapter "${y.adapterId}" must expose a logical string or number id through its output transform.`);let[q]=y.transformWhereClause({model:N,where:[{field:"id",value:V}],action:R});if(!q)throw new te("The atomic fallback id condition was transformed away.");return q}async function t({model:O,modelKey:N,where:R}){let z=pe.safeParse(await c.findOne({model:O,modelKey:N,where:R}));if(!z.success)throw new te(`Adapter "${w}" must return a row snapshot or null.`);return z.data??null}async function K(O,N,R,z){let V=await P(O,R.modelKey,z),q=R.where.some((x)=>x.connector==="OR"),X=q?[V]:[...R.where,V],W=new Set(N);for(let x of W){if(x===V.field)continue;let Q=me.safeParse(O[x]??null);if(!Q.success){if(q&&R.where.some((L)=>L.field===x))throw new te(`Adapter "${w}" must implement native atomic methods for OR predicates on structured values.`);continue}X.push({field:x,value:Q.data,operator:"eq",connector:"AND",mode:"sensitive"})}return X}function b(O){if(O!==0&&O!==1)throw new te(`Adapter "${w}" must return an affected row count of 0 or 1 from an atomic fallback.`);return O===1}async function Y(O){let{model:N,where:R}=O,z=await t(O);if(z===null)return null;let V=await K(z,[...Object.keys(z),...R.map(({field:q})=>q)],O,"consumeOne");return b(await c.deleteMany({model:N,modelKey:O.modelKey,where:V}))?z:null}async function v(O){let{model:N,where:R}=O,z=he.safeParse(O);if(!z.success)throw new te("incrementOne requires finite increments and a set object for the atomic fallback.");let{increment:V,set:q}=z.data,X=Object.entries(V),W=[...R.map(({field:x})=>x),...Object.keys(V),...Object.keys(q??{})];for(let x=0;x<ce;x++){let Q=await t(O);if(Q===null)return null;let L={...q};for(let[ne,Z]of X){let i=$e.safeParse(Q[ne]);if(!i.success)throw new te(`Adapter "${w}" must return finite numeric counter values or null for atomic increments.`);let m=i.data??0,r=m+Z;if(!Number.isFinite(r)||Z!==0&&r===m)throw new te(`Adapter "${w}" cannot represent the requested counter increment safely.`);L[ne]=r}let re=await K(Q,W,O,"incrementOne");if(Object.entries(L).every(([ne,Z])=>{let i=Q[ne];if(i instanceof Date&&Z instanceof Date)return i.getTime()===Z.getTime();return Object.is(i,Z)}))return Q;if(b(await c.updateMany({model:N,modelKey:O.modelKey,where:re,update:L})))return{...Q,...L}}throw new te(`Adapter "${w}" could not complete an atomic increment due to contention. Retry the operation or implement incrementOne natively.`)}return{consumeOne:Y,incrementOne:v}}var ae=[],C=-1,be=(y)=>(c)=>c(y),ei=({adapter:y,config:c})=>(w)=>{let S=_s(w),P=Math.random().toString(36).substring(2,15),t={...c,supportsBooleans:c.supportsBooleans??!0,supportsDates:c.supportsDates??!0,supportsJSON:c.supportsJSON??!1,adapterName:c.adapterName??c.adapterId,supportsNumericIds:c.supportsNumericIds??!0,supportsUUIDs:c.supportsUUIDs??!1,supportsArrays:c.supportsArrays??!1,transaction:c.transaction??!1,disableTransformInput:c.disableTransformInput??!1,disableTransformOutput:c.disableTransformOutput??!1,disableTransformJoin:c.disableTransformJoin??!1};if(w.advanced?.database?.generateId==="serial"&&t.supportsNumericIds===!1)throw new te(`[${t.adapterName}] Your database or database adapter does not support numeric ids. Please disable "useNumberId" in your config.`);let K=bo(w),b=(...i)=>{if(t.debugLogs===!0||typeof t.debugLogs==="object"){let m=Si({level:"info"});if(typeof t.debugLogs==="object"&&"isRunningAdapterTests"in t.debugLogs){if(t.debugLogs.isRunningAdapterTests)i.shift(),ae.push({instance:P,args:i});return}if(typeof t.debugLogs==="object"&&t.debugLogs.logCondition&&!t.debugLogs.logCondition?.())return;if(typeof i[0]==="object"&&"method"in i[0]){let r=i.shift().method;if(typeof t.debugLogs==="object"){if(r==="create"&&!t.debugLogs.create)return;else if(r==="update"&&!t.debugLogs.update)return;else if(r==="updateMany"&&!t.debugLogs.updateMany)return;else if(r==="findOne"&&!t.debugLogs.findOne)return;else if(r==="findMany"&&!t.debugLogs.findMany)return;else if(r==="delete"&&!t.debugLogs.delete)return;else if(r==="deleteMany"&&!t.debugLogs.deleteMany)return;else if(r==="consumeOne"&&!t.debugLogs.consumeOne)return;else if(r==="incrementOne"&&!t.debugLogs.incrementOne)return;else if(r==="count"&&!t.debugLogs.count)return}m.info(`[${t.adapterName}]`,...i)}else m.info(`[${t.adapterName}]`,...i)}},Y=Si(w.logger),v=Ms({usePlural:t.usePlural,schema:K}),O=oe({usePlural:t.usePlural,schema:K}),N=gd({usePlural:t.usePlural,schema:K}),R=hd({schema:K,usePlural:t.usePlural}),z=Kf({schema:K,options:w,usePlural:t.usePlural,disableIdGeneration:t.disableIdGeneration,customIdGenerator:t.customIdGenerator,supportsUUIDs:t.supportsUUIDs}),V=se({schema:K,options:w,usePlural:t.usePlural,disableIdGeneration:t.disableIdGeneration,customIdGenerator:t.customIdGenerator}),q=async(i,m,r,o)=>{let n={},s=K[m].fields,f=t.mapKeysTransformInput??{},h=w.advanced?.database?.generateId==="serial";s.id=z({customModelName:m,forceAllowId:o&&"id"in i});for(let u in s){let p=i[u],a=s[u],g=f[u]||s[u].fieldName||u;if(p===void 0&&(a.defaultValue===void 0&&!a.transform?.input&&!(r==="update"&&a.onUpdate)||r==="update"&&!a.onUpdate))continue;if(a&&a.type==="date"&&!(p instanceof Date)&&typeof p==="string")try{p=new Date(p)}catch{Y.error("[Adapter Factory] Failed to convert string to date",{value:p,field:u})}let d=le(p,a,r);if(a.transform?.input)d=await a.transform.input(d);if(a.references?.field==="id"&&h)if(Array.isArray(d))d=d.map((j)=>j!==null?Number(j):null);else d=d!==null?Number(d):null;else if(t.supportsJSON===!1&&typeof d==="object"&&a.type==="json")d=JSON.stringify(d);else if(t.supportsArrays===!1&&Array.isArray(d)&&(a.type==="string[]"||a.type==="number[]"))d=JSON.stringify(d);else if(t.supportsDates===!1&&d instanceof Date&&a.type==="date")d=d.toISOString();else if(t.supportsBooleans===!1&&typeof d==="boolean")d=d?1:0;if(t.customTransformInput)d=t.customTransformInput({data:d,action:r,field:g,fieldAttributes:a,model:N(m),schema:K,options:w});if(d!==void 0)n[g]=d}return n},X=async(i,m,r=[],o)=>{let n=async(u,p,a=[])=>{if(!u)return null;let g=v(p),d=t.mapKeysTransformOutput??{},j={},T=K[g].fields,H=Object.entries(d).find(([F,B])=>B==="id")?.[0];T[H??"id"]={type:w.advanced?.database?.generateId==="serial"?"number":"string"};for(let F in T){if(a.length&&!a.includes(F))continue;let B=T[F];if(B){let ee=B.fieldName||F,U=u[Object.entries(d).find(([we,fe])=>fe===ee)?.[0]||ee];if(B.transform?.output)U=await B.transform.output(U);let ie=d[F]||F;if(ee==="id"||B.references?.field==="id"){if(typeof U<"u"&&U!==null)U=String(U)}else if(t.supportsJSON===!1&&typeof U==="string"&&B.type==="json")U=Pr(U);else if(t.supportsArrays===!1&&typeof U==="string"&&(B.type==="string[]"||B.type==="number[]"))U=Pr(U);else if(t.supportsDates===!1&&typeof U==="string"&&B.type==="date")U=new Date(U);else if(t.supportsBooleans===!1&&typeof U==="number"&&B.type==="boolean")U=U===1;if(t.customTransformOutput)U=t.customTransformOutput({data:U,field:ie,fieldAttributes:B,select:a,model:N(g),schema:K,options:w});j[ie]=U}}return j};if(!o||Object.keys(o).length===0)return await n(i,m,r);let s=v(m),f=await n(i,s,r),h=Object.entries(o).map(([u,p])=>({modelName:u,defaultModelName:p.modelKey??v(u),joinConfig:p}));if(!i)return null;for(let{modelName:u,defaultModelName:p,joinConfig:a}of h){let g=await(async()=>{if(w.advanced?.database?.joins){if(u in i)return i[u]}return await Q({baseModel:s,baseData:f,joinModel:u,specificJoinConfig:a})})();if(g===void 0||g===null)g=a.relation==="one-to-one"?null:[];if(a.relation==="one-to-many"&&!Array.isArray(g))g=[g];let d=[];if(Array.isArray(g))for(let j of g){let T=await n(j,p,[]);d.push(T)}else{let j=await n(g,p,[]);d.push(j)}f[p]=(a.relation==="one-to-one"?d[0]:d)??null}return f},W=({model:i,where:m,action:r})=>{if(!m)return;let o=t.mapKeysTransformInput??{};return m.map((n)=>{let{field:s,value:f,operator:h="eq",connector:u="AND",mode:p="sensitive"}=n;if(h==="in"){if(!Array.isArray(f))throw new te("Value must be an array")}let a=f,g=v(i),d=O({field:s,model:i}),j=o[d]||R({field:d,model:g}),T=V({field:d,model:g}),H=w.advanced?.database?.generateId==="serial";if(d==="id"||T.references?.field==="id"){if(H)if(Array.isArray(f))a=f.map(Number);else a=Number(f)}if(T.type==="date"&&f instanceof Date&&!t.supportsDates)a=f.toISOString();if(T.type==="boolean"&&typeof a==="string")a=a==="true";if(T.type==="number"){if(typeof a==="string"&&a.trim()!==""){let F=Number(a);if(!Number.isNaN(F))a=F}else if(Array.isArray(a)){let F=a.map((B)=>typeof B==="string"&&B.trim()!==""?Number(B):NaN);if(F.every((B)=>!Number.isNaN(B)))a=F}}if(T.type==="boolean"&&typeof a==="boolean"&&!t.supportsBooleans)a=a?1:0;if(T.type==="json"&&typeof f==="object"&&!t.supportsJSON)try{a=JSON.stringify(f)}catch(F){throw Error(`Failed to stringify JSON value for field ${j}`,{cause:F})}if(t.customTransformInput)a=t.customTransformInput({data:a,fieldAttributes:T,field:j,model:N(i),schema:K,options:w,action:r});return{operator:h,connector:u,field:j,value:a,mode:p}})},x=(i,m,r)=>{if(!m)return;if(Object.keys(m).length===0)return;let o={};for(let[n,s]of Object.entries(m)){if(!s)continue;let f=v(n),h=v(i),u=Object.entries(K[f].fields).filter(([B,ee])=>ee.references&&v(ee.references.model)===h),p=!0;if(!u.length)u=Object.entries(K[h].fields).filter(([B,ee])=>ee.references&&v(ee.references.model)===f),p=!1;if(!u.length)throw new te(`No foreign key found for model ${n} and base model ${i} while performing join operation.`);else if(u.length>1)throw new te(`Multiple foreign keys found for model ${n} and base model ${i} while performing join operation. Only one foreign key is supported.`);let[a,g]=u[0];if(!g.references)throw new te(`No references found for foreign key ${a} on model ${n} while performing join operation.`);let d,j,T;if(p)T=g.references.field,d=R({model:i,field:T}),j=R({model:n,field:a});else T=a,d=R({model:i,field:T}),j=R({model:n,field:g.references.field});if(r&&!r.includes(T))r.push(T);let H=j==="id"?!0:g.unique??!1,F=w.advanced?.database?.defaultFindManyLimit??100;if(H)F=1;else if(typeof s==="object"&&typeof s.limit==="number")F=s.limit;o[N(n)]={modelKey:n,on:{from:d,to:j},limit:F,relation:H?"one-to-one":"one-to-many"}}return{join:o,select:r}},Q=async({baseModel:i,baseData:m,joinModel:r,specificJoinConfig:o})=>{if(!m)return m;let n=o.modelKey??v(r),s=N(n),f=o.on.to,h=m[O({field:o.on.from,model:i})];if(h===null||h===void 0)return o.relation==="one-to-one"?null:[];let u,p=W({model:n,where:[{field:f,value:h,operator:"eq",connector:"AND"}],action:"findOne"});try{if(o.relation==="one-to-one")u=await S(`db findOne ${s}`,{[Wo]:"findOne",[wr]:s},()=>L.findOne({model:s,modelKey:n,where:p}));else{let a=o.limit??w.advanced?.database?.defaultFindManyLimit??100;u=await S(`db findMany ${s}`,{[Wo]:"findMany",[wr]:s},()=>L.findMany({model:s,modelKey:n,where:p,limit:a}))}}catch(a){throw Y.error(`Failed to query fallback join for model ${s}:`,{where:p,limit:o.limit}),console.error(a),a}return u},L=y({options:w,schema:K,debugLog:b,getFieldName:R,getModelName:N,getDefaultModelName:v,getDefaultFieldName:O,getFieldAttributes:V,transformInput:q,transformOutput:X,transformWhereClause:W}),re=null,ne=ue({adapter:L,adapterId:t.adapterId,mapKeysTransformInput:t.mapKeysTransformInput,mapKeysTransformOutput:t.mapKeysTransformOutput,getFieldName:R,transformOutput:X,transformWhereClause:W}),Z={transaction:async(i)=>{if(!re)if(!t.transaction)re=be(Z);else Y.debug(`[${t.adapterName}] - Using provided transaction implementation.`),re=t.transaction;return re(i)},create:async({data:i,model:m,select:r,forceAllowId:o=!1})=>{C++;let n=C,s=v(m),f=N(s);if("id"in i&&typeof i.id<"u"&&!o){Y.warn(`[${t.adapterName}] - You are trying to create a record with an id. This is not allowed as we handle id generation for you, unless you pass in the \`forceAllowId\` parameter. The id will be ignored.`);let a=Error().stack?.split(`
3
3
  `).filter((g,d)=>d!==1).join(`
4
- `).replace("Error:","Create method with `id` being called at:");console.log(a),i.id=void 0}b({method:"create"},`${I(n)} ${M(1,4)}`,`${A("create")} ${G("Unsafe Input")}:`,{model:f,data:i});let h=i;if(!t.disableTransformInput)h=await V(i,s,"create",o);b({method:"create"},`${I(n)} ${M(2,4)}`,`${A("create")} ${G("Parsed Input")}:`,{model:f,data:h});let u=await S(`db create ${f}`,{[Go]:"create",[vr]:f},()=>L.create({data:h,model:f,modelKey:s}));b({method:"create"},`${I(n)} ${M(3,4)}`,`${A("create")} ${G("DB Result")}:`,{model:f,res:u});let p=u;if(!t.disableTransformOutput)p=await X(u,s,r,void 0);return b({method:"create"},`${I(n)} ${M(4,4)}`,`${A("create")} ${G("Parsed Result")}:`,{model:f,data:p}),p},update:async({model:i,where:m,update:r})=>{z++;let o=z,n=v(i),s=N(n),f=q({model:n,where:m,action:"update"});if(f.length===0)return null;b({method:"update"},`${I(o)} ${M(1,4)}`,`${A("update")} ${G("Unsafe Input")}:`,{model:s,data:r});let h=r;if(!t.disableTransformInput)h=await V(r,n,"update");b({method:"update"},`${I(o)} ${M(2,4)}`,`${A("update")} ${G("Parsed Input")}:`,{model:s,data:h});let u=await S(`db update ${s}`,{[Go]:"update",[vr]:s},()=>L.update({model:s,modelKey:n,where:f,update:h}));b({method:"update"},`${I(o)} ${M(3,4)}`,`${A("update")} ${G("DB Result")}:`,{model:s,data:u});let p=u;if(!t.disableTransformOutput)p=await X(u,n,void 0,void 0);return b({method:"update"},`${I(o)} ${M(4,4)}`,`${A("update")} ${G("Parsed Result")}:`,{model:s,data:p}),p},updateMany:async({model:i,where:m,update:r})=>{z++;let o=z,n=v(i),s=N(n),f=q({model:n,where:m,action:"updateMany"});b({method:"updateMany"},`${I(o)} ${M(1,4)}`,`${A("updateMany")} ${G("Unsafe Input")}:`,{model:s,data:r});let h=r;if(!t.disableTransformInput)h=await V(r,n,"update");b({method:"updateMany"},`${I(o)} ${M(2,4)}`,`${A("updateMany")} ${G("Parsed Input")}:`,{model:s,data:h});let u=await S(`db updateMany ${s}`,{[Go]:"updateMany",[vr]:s},()=>L.updateMany({model:s,modelKey:n,where:f,update:h}));if(typeof u!=="number"||!Number.isFinite(u))throw new te(`Adapter "${t.adapterId}" updateMany must return a finite number affected row count.`);return b({method:"updateMany"},`${I(o)} ${M(3,4)}`,`${A("updateMany")} ${G("DB Result")}:`,{model:s,data:u}),b({method:"updateMany"},`${I(o)} ${M(4,4)}`,`${A("updateMany")} ${G("Parsed Result")}:`,{model:s,data:u}),u},findOne:async({model:i,where:m,select:r,join:o})=>{z++;let n=z,s=v(i),f=N(s),h=q({model:s,where:m,action:"findOne"}),u,p=!0;if(!t.disableTransformJoin){let d=x(s,o,r);if(d)u=d.join,r=d.select;if(!w.advanced?.database?.joins&&u&&Object.keys(u).length>0)p=!1}else u=o;b({method:"findOne"},`${I(n)} ${M(1,3)}`,`${A("findOne")}:`,{model:f,where:h,select:r,join:u});let a=await S(`db findOne ${f}`,{[Go]:"findOne",[vr]:f},()=>L.findOne({model:f,modelKey:s,where:h,select:r,join:p?u:void 0}));b({method:"findOne"},`${I(n)} ${M(2,3)}`,`${A("findOne")} ${G("DB Result")}:`,{model:f,data:a});let g=a;if(!t.disableTransformOutput)g=await X(a,s,r,u);return b({method:"findOne"},`${I(n)} ${M(3,3)}`,`${A("findOne")} ${G("Parsed Result")}:`,{model:f,data:g}),g},findMany:async({model:i,where:m,limit:r,select:o,sortBy:n,offset:s,join:f})=>{z++;let h=z,u=r??w.advanced?.database?.defaultFindManyLimit??100,p=v(i),a=N(p),g=q({model:p,where:m,action:"findMany"}),d,j=!0;if(!t.disableTransformJoin){let F=x(p,f,o);if(F)d=F.join,o=F.select;if(!w.advanced?.database?.joins&&d&&Object.keys(d).length>0)j=!1}else d=f;b({method:"findMany"},`${I(h)} ${M(1,3)}`,`${A("findMany")}:`,{model:a,where:g,limit:u,sortBy:n,offset:s,join:d});let T=await S(`db findMany ${a}`,{[Go]:"findMany",[vr]:a},()=>L.findMany({model:a,modelKey:p,where:g,limit:u,select:o,sortBy:n,offset:s,join:j?d:void 0}));b({method:"findMany"},`${I(h)} ${M(2,3)}`,`${A("findMany")} ${G("DB Result")}:`,{model:a,data:T});let H=T;if(!t.disableTransformOutput)H=await Promise.all(T.map(async(F)=>await X(F,p,void 0,d)));return b({method:"findMany"},`${I(h)} ${M(3,3)}`,`${A("findMany")} ${G("Parsed Result")}:`,{model:a,data:H}),H},delete:async({model:i,where:m})=>{z++;let r=z,o=v(i),n=N(o),s=q({model:o,where:m,action:"delete"});b({method:"delete"},`${I(r)} ${M(1,2)}`,`${A("delete")}:`,{model:n,where:s}),await S(`db delete ${n}`,{[Go]:"delete",[vr]:n},()=>L.delete({model:n,modelKey:o,where:s})),b({method:"delete"},`${I(r)} ${M(2,2)}`,`${A("delete")} ${G("DB Result")}:`,{model:n})},deleteMany:async({model:i,where:m})=>{z++;let r=z,o=v(i),n=N(o),s=q({model:o,where:m,action:"deleteMany"});b({method:"deleteMany"},`${I(r)} ${M(1,2)}`,`${A("deleteMany")} ${G("DeleteMany")}:`,{model:n,where:s});let f=await S(`db deleteMany ${n}`,{[Go]:"deleteMany",[vr]:n},()=>L.deleteMany({model:n,modelKey:o,where:s}));return b({method:"deleteMany"},`${I(r)} ${M(2,2)}`,`${A("deleteMany")} ${G("DB Result")}:`,{model:n,data:f}),f},consumeOne:async({model:i,where:m})=>{z++;let r=z,o=v(i),n=N(o),s=q({model:o,where:m,action:"consumeOne"});b({method:"consumeOne"},`${I(r)} ${M(1,3)}`,`${A("consumeOne")} ${G("ConsumeOne")}:`,{model:n,where:s});let f=await S(`db consumeOne ${n}`,{[Go]:"consumeOne",[vr]:n},()=>L.consumeOne?L.consumeOne({model:n,modelKey:o,where:s}):ne.consumeOne({model:n,modelKey:o,where:s}));b({method:"consumeOne"},`${I(r)} ${M(2,3)}`,`${A("consumeOne")} ${G("DB Result")}:`,{model:n,data:f});let h=f;if(!t.disableTransformOutput&&f)h=await X(f,o,void 0,void 0);return b({method:"consumeOne"},`${I(r)} ${M(3,3)}`,`${A("consumeOne")} ${G("Parsed Result")}:`,{model:n,data:h}),h},incrementOne:async({model:i,where:m,increment:r,set:o})=>{let n=Object.keys(r).length>0,s=!!o&&Object.keys(o).length>0;if(!n&&!s)throw new te("incrementOne requires a non-empty `increment` or `set`; both were empty.");z++;let f=z,h=v(i),u=N(h),p=q({model:h,where:m,action:"incrementOne"});b({method:"incrementOne"},`${I(f)} ${M(1,3)}`,`${A("incrementOne")} ${G("IncrementOne")}:`,{model:u,where:p,increment:r,set:o});let a=t.mapKeysTransformInput??{},g={};for(let[H,F]of Object.entries(r))g[a[H]||R({model:h,field:H})]=F;let d;if(o&&!t.disableTransformInput)d=await V(o,h,"update");else d=o;if(Object.keys(g).length===0&&(!d||Object.keys(d).length===0))throw new te("incrementOne resolved to an empty update: every increment/set field was unknown to the schema or transformed away.");let j=await S(`db incrementOne ${u}`,{[Go]:"incrementOne",[vr]:u},()=>L.incrementOne?L.incrementOne({model:u,modelKey:h,where:p,increment:g,set:d}):ne.incrementOne({model:u,modelKey:h,where:p,increment:g,set:d}));b({method:"incrementOne"},`${I(f)} ${M(2,3)}`,`${A("incrementOne")} ${G("DB Result")}:`,{model:u,data:j});let T=j;if(!t.disableTransformOutput&&j)T=await X(j,h,void 0,void 0);return b({method:"incrementOne"},`${I(f)} ${M(3,3)}`,`${A("incrementOne")} ${G("Parsed Result")}:`,{model:u,data:T}),T},count:async({model:i,where:m})=>{z++;let r=z,o=v(i),n=N(o),s=q({model:o,where:m,action:"count"});b({method:"count"},`${I(r)} ${M(1,2)}`,`${A("count")}:`,{model:n,where:s});let f=await S(`db count ${n}`,{[Go]:"count",[vr]:n},()=>L.count({model:n,modelKey:o,where:s}));return b({method:"count"},`${I(r)} ${M(2,2)}`,`${A("count")}:`,{model:n,data:f}),f},createSchema:L.createSchema?async(i,m)=>{let r=go(w);if(w.secondaryStorage&&!w.session?.storeSessionInDatabase)delete r.session;return L.createSchema({file:m,tables:r})}:void 0,options:{adapterConfig:t,...L.options??{}},id:t.adapterId,...t.debugLogs?.isRunningAdapterTests?{adapterTestDebugLogs:{resetDebugLogs(){ae=ae.filter((i)=>i.instance!==P)},printDebugLogs(){let i="\u2500".repeat(80),m=ae.filter((o)=>o.instance===P);if(m.length===0)return;let r=m.reverse().map((o)=>(o.args[0]=`
4
+ `).replace("Error:","Create method with `id` being called at:");console.log(a),i.id=void 0}b({method:"create"},`${I(n)} ${M(1,4)}`,`${A("create")} ${G("Unsafe Input")}:`,{model:f,data:i});let h=i;if(!t.disableTransformInput)h=await q(i,s,"create",o);b({method:"create"},`${I(n)} ${M(2,4)}`,`${A("create")} ${G("Parsed Input")}:`,{model:f,data:h});let u=await S(`db create ${f}`,{[Wo]:"create",[wr]:f},()=>L.create({data:h,model:f,modelKey:s}));b({method:"create"},`${I(n)} ${M(3,4)}`,`${A("create")} ${G("DB Result")}:`,{model:f,res:u});let p=u;if(!t.disableTransformOutput)p=await X(u,s,r,void 0);return b({method:"create"},`${I(n)} ${M(4,4)}`,`${A("create")} ${G("Parsed Result")}:`,{model:f,data:p}),p},update:async({model:i,where:m,update:r})=>{C++;let o=C,n=v(i),s=N(n),f=W({model:n,where:m,action:"update"});if(f.length===0)return null;b({method:"update"},`${I(o)} ${M(1,4)}`,`${A("update")} ${G("Unsafe Input")}:`,{model:s,data:r});let h=r;if(!t.disableTransformInput)h=await q(r,n,"update");b({method:"update"},`${I(o)} ${M(2,4)}`,`${A("update")} ${G("Parsed Input")}:`,{model:s,data:h});let u=await S(`db update ${s}`,{[Wo]:"update",[wr]:s},()=>L.update({model:s,modelKey:n,where:f,update:h}));b({method:"update"},`${I(o)} ${M(3,4)}`,`${A("update")} ${G("DB Result")}:`,{model:s,data:u});let p=u;if(!t.disableTransformOutput)p=await X(u,n,void 0,void 0);return b({method:"update"},`${I(o)} ${M(4,4)}`,`${A("update")} ${G("Parsed Result")}:`,{model:s,data:p}),p},updateMany:async({model:i,where:m,update:r})=>{C++;let o=C,n=v(i),s=N(n),f=W({model:n,where:m,action:"updateMany"});b({method:"updateMany"},`${I(o)} ${M(1,4)}`,`${A("updateMany")} ${G("Unsafe Input")}:`,{model:s,data:r});let h=r;if(!t.disableTransformInput)h=await q(r,n,"update");b({method:"updateMany"},`${I(o)} ${M(2,4)}`,`${A("updateMany")} ${G("Parsed Input")}:`,{model:s,data:h});let u=await S(`db updateMany ${s}`,{[Wo]:"updateMany",[wr]:s},()=>L.updateMany({model:s,modelKey:n,where:f,update:h}));if(typeof u!=="number"||!Number.isFinite(u))throw new te(`Adapter "${t.adapterId}" updateMany must return a finite number affected row count.`);return b({method:"updateMany"},`${I(o)} ${M(3,4)}`,`${A("updateMany")} ${G("DB Result")}:`,{model:s,data:u}),b({method:"updateMany"},`${I(o)} ${M(4,4)}`,`${A("updateMany")} ${G("Parsed Result")}:`,{model:s,data:u}),u},findOne:async({model:i,where:m,select:r,join:o})=>{C++;let n=C,s=v(i),f=N(s),h=W({model:s,where:m,action:"findOne"}),u,p=!0;if(!t.disableTransformJoin){let d=x(s,o,r);if(d)u=d.join,r=d.select;if(!w.advanced?.database?.joins&&u&&Object.keys(u).length>0)p=!1}else u=o;b({method:"findOne"},`${I(n)} ${M(1,3)}`,`${A("findOne")}:`,{model:f,where:h,select:r,join:u});let a=await S(`db findOne ${f}`,{[Wo]:"findOne",[wr]:f},()=>L.findOne({model:f,modelKey:s,where:h,select:r,join:p?u:void 0}));b({method:"findOne"},`${I(n)} ${M(2,3)}`,`${A("findOne")} ${G("DB Result")}:`,{model:f,data:a});let g=a;if(!t.disableTransformOutput)g=await X(a,s,r,u);return b({method:"findOne"},`${I(n)} ${M(3,3)}`,`${A("findOne")} ${G("Parsed Result")}:`,{model:f,data:g}),g},findMany:async({model:i,where:m,limit:r,select:o,sortBy:n,offset:s,join:f})=>{C++;let h=C,u=r??w.advanced?.database?.defaultFindManyLimit??100,p=v(i),a=N(p),g=W({model:p,where:m,action:"findMany"}),d,j=!0;if(!t.disableTransformJoin){let F=x(p,f,o);if(F)d=F.join,o=F.select;if(!w.advanced?.database?.joins&&d&&Object.keys(d).length>0)j=!1}else d=f;b({method:"findMany"},`${I(h)} ${M(1,3)}`,`${A("findMany")}:`,{model:a,where:g,limit:u,sortBy:n,offset:s,join:d});let T=await S(`db findMany ${a}`,{[Wo]:"findMany",[wr]:a},()=>L.findMany({model:a,modelKey:p,where:g,limit:u,select:o,sortBy:n,offset:s,join:j?d:void 0}));b({method:"findMany"},`${I(h)} ${M(2,3)}`,`${A("findMany")} ${G("DB Result")}:`,{model:a,data:T});let H=T;if(!t.disableTransformOutput)H=await Promise.all(T.map(async(F)=>await X(F,p,void 0,d)));return b({method:"findMany"},`${I(h)} ${M(3,3)}`,`${A("findMany")} ${G("Parsed Result")}:`,{model:a,data:H}),H},delete:async({model:i,where:m})=>{C++;let r=C,o=v(i),n=N(o),s=W({model:o,where:m,action:"delete"});b({method:"delete"},`${I(r)} ${M(1,2)}`,`${A("delete")}:`,{model:n,where:s}),await S(`db delete ${n}`,{[Wo]:"delete",[wr]:n},()=>L.delete({model:n,modelKey:o,where:s})),b({method:"delete"},`${I(r)} ${M(2,2)}`,`${A("delete")} ${G("DB Result")}:`,{model:n})},deleteMany:async({model:i,where:m})=>{C++;let r=C,o=v(i),n=N(o),s=W({model:o,where:m,action:"deleteMany"});b({method:"deleteMany"},`${I(r)} ${M(1,2)}`,`${A("deleteMany")} ${G("DeleteMany")}:`,{model:n,where:s});let f=await S(`db deleteMany ${n}`,{[Wo]:"deleteMany",[wr]:n},()=>L.deleteMany({model:n,modelKey:o,where:s}));return b({method:"deleteMany"},`${I(r)} ${M(2,2)}`,`${A("deleteMany")} ${G("DB Result")}:`,{model:n,data:f}),f},consumeOne:async({model:i,where:m})=>{C++;let r=C,o=v(i),n=N(o),s=W({model:o,where:m,action:"consumeOne"});b({method:"consumeOne"},`${I(r)} ${M(1,3)}`,`${A("consumeOne")} ${G("ConsumeOne")}:`,{model:n,where:s});let f=await S(`db consumeOne ${n}`,{[Wo]:"consumeOne",[wr]:n},()=>L.consumeOne?L.consumeOne({model:n,modelKey:o,where:s}):ne.consumeOne({model:n,modelKey:o,where:s}));b({method:"consumeOne"},`${I(r)} ${M(2,3)}`,`${A("consumeOne")} ${G("DB Result")}:`,{model:n,data:f});let h=f;if(!t.disableTransformOutput&&f)h=await X(f,o,void 0,void 0);return b({method:"consumeOne"},`${I(r)} ${M(3,3)}`,`${A("consumeOne")} ${G("Parsed Result")}:`,{model:n,data:h}),h},incrementOne:async({model:i,where:m,increment:r,set:o})=>{let n=Object.keys(r).length>0,s=!!o&&Object.keys(o).length>0;if(!n&&!s)throw new te("incrementOne requires a non-empty `increment` or `set`; both were empty.");C++;let f=C,h=v(i),u=N(h),p=W({model:h,where:m,action:"incrementOne"});b({method:"incrementOne"},`${I(f)} ${M(1,3)}`,`${A("incrementOne")} ${G("IncrementOne")}:`,{model:u,where:p,increment:r,set:o});let a=t.mapKeysTransformInput??{},g={};for(let[H,F]of Object.entries(r))g[a[H]||R({model:h,field:H})]=F;let d;if(o&&!t.disableTransformInput)d=await q(o,h,"update");else d=o;if(Object.keys(g).length===0&&(!d||Object.keys(d).length===0))throw new te("incrementOne resolved to an empty update: every increment/set field was unknown to the schema or transformed away.");let j=await S(`db incrementOne ${u}`,{[Wo]:"incrementOne",[wr]:u},()=>L.incrementOne?L.incrementOne({model:u,modelKey:h,where:p,increment:g,set:d}):ne.incrementOne({model:u,modelKey:h,where:p,increment:g,set:d}));b({method:"incrementOne"},`${I(f)} ${M(2,3)}`,`${A("incrementOne")} ${G("DB Result")}:`,{model:u,data:j});let T=j;if(!t.disableTransformOutput&&j)T=await X(j,h,void 0,void 0);return b({method:"incrementOne"},`${I(f)} ${M(3,3)}`,`${A("incrementOne")} ${G("Parsed Result")}:`,{model:u,data:T}),T},count:async({model:i,where:m})=>{C++;let r=C,o=v(i),n=N(o),s=W({model:o,where:m,action:"count"});b({method:"count"},`${I(r)} ${M(1,2)}`,`${A("count")}:`,{model:n,where:s});let f=await S(`db count ${n}`,{[Wo]:"count",[wr]:n},()=>L.count({model:n,modelKey:o,where:s}));return b({method:"count"},`${I(r)} ${M(2,2)}`,`${A("count")}:`,{model:n,data:f}),f},createSchema:L.createSchema?async(i,m)=>{let r=bo(w);if(w.secondaryStorage&&!w.session?.storeSessionInDatabase)delete r.session;return L.createSchema({file:m,tables:r})}:void 0,options:{adapterConfig:t,...L.options??{}},id:t.adapterId,...t.debugLogs?.isRunningAdapterTests?{adapterTestDebugLogs:{resetDebugLogs(){ae=ae.filter((i)=>i.instance!==P)},printDebugLogs(){let i="\u2500".repeat(80),m=ae.filter((o)=>o.instance===P);if(m.length===0)return;let r=m.reverse().map((o)=>(o.args[0]=`
5
5
  ${o.args[0]}`,[...o.args,`
6
6
  `])).reduce((o,n)=>[...n,...o],[`
7
- ${i}`]);console.log(...r)}}}:{}};return Z};function I(y){if(wf()<8)return`#${y}`;return`${fn.fg.magenta}#${y}${fn.reset}`}function M(y,c){return`${fn.bg.black}${fn.fg.yellow}[${y}/${c}]${fn.reset}`}function A(y){return`${fn.bright}${y}${fn.reset}`}function G(y){return`${fn.dim}(${y})${fn.reset}`}
8
- export{Yu,Xu,Gs};
7
+ ${i}`]);console.log(...r)}}}:{}};return Z};function I(y){if(qf()<8)return`#${y}`;return`${pn.fg.magenta}#${y}${pn.reset}`}function M(y,c){return`${pn.bg.black}${pn.fg.yellow}[${y}/${c}]${pn.reset}`}function A(y){return`${pn.bright}${y}${pn.reset}`}function G(y){return`${pn.dim}(${y})${pn.reset}`}
8
+ export{hd,gd,ei};
@@ -1,2 +1,2 @@
1
- import{z}from"./chunk-zarz3sqn.js";var a=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],uu=z("external-link",a);
2
- export{uu};
1
+ import{j}from"./chunk-akafypge.js";var a=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],Su=j("external-link",a);
2
+ export{Su};
@@ -0,0 +1,3 @@
1
+ // @bun
2
+ function Gn(n){let e={};for(let[t,r]of n.entries())e[t]=r;return e}function Ga(n){if(!n)return;let e={};for(let[t,r]of Object.entries(n))if(r!==null)e[t]=r;return Object.keys(e).length>0?e:void 0}
3
+ export{Gn,Ga};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{Yt}from"./chunk-9xhjy897.js";import{at,sr}from"./chunk-e4yscwen.js";import{se}from"./chunk-2jj4j8cn.js";var A=se(Yt()),f=se(at());var g=se(at()),P=se(sr());import{createHash as F,createPrivateKey as L,createPublicKey as O,sign as H}from"crypto";import{promises as x}from"fs";import{homedir as K}from"os";import{dirname as _,join as I}from"path";class h{profileData;init;callerClientConfig;static REFRESH_THRESHOLD=300000;constructor(e,t,s){this.profileData=e,this.init=t,this.callerClientConfig=s}async loadCredentials(){let e=await this.loadToken();if(!e)throw new g.CredentialsProviderError(`Failed to load a token for session ${this.loginSession}, please re-authenticate using aws login`,{tryNextLink:!1,logger:this.logger});let t=e.accessToken,s=Date.now();if(new Date(t.expiresAt).getTime()-s<=h.REFRESH_THRESHOLD)return this.refresh(e);return this.toCredentials(e.accessToken)}get logger(){return this.init?.logger}get loginSession(){return this.profileData.login_session}toCredentials(e){return{accessKeyId:e.accessKeyId,secretAccessKey:e.secretAccessKey,sessionToken:e.sessionToken,accountId:e.accountId,expiration:new Date(e.expiresAt)}}async refresh(e){let t=await this.loadToken().catch(()=>e),s=Date.now(),r=new Date(t.accessToken.expiresAt).getTime(),n=new Date(e.accessToken.expiresAt).getTime(),o=r<=s&&n>s?e:t;if(new Date(o.accessToken.expiresAt).getTime()-Date.now()>h.REFRESH_THRESHOLD)return this.toCredentials(o.accessToken);let{SigninClient:p,CreateOAuth2TokenCommand:w}=await import("./chunk-fatmqnp1.js"),{logger:y,userAgentAppId:m}=this.callerClientConfig??{},T=((i)=>i?.metadata?.handlerProtocol==="h2")(this.callerClientConfig?.requestHandler)?void 0:this.callerClientConfig?.requestHandler,d=this.profileData.region??await this.callerClientConfig?.region?.()??process.env.AWS_REGION,u=new p({credentials:{accessKeyId:"",secretAccessKey:""},region:d,requestHandler:T,logger:y,userAgentAppId:m,...this.init?.clientConfig});this.createDPoPInterceptor(u.middlewareStack);let S={tokenInput:{clientId:o.clientId,refreshToken:o.refreshToken,grantType:"refresh_token"}};try{let i=await u.send(new w(S)),{accessKeyId:c,secretAccessKey:k,sessionToken:l}=i.tokenOutput?.accessToken??{},{refreshToken:D,expiresIn:N}=i.tokenOutput??{};if(!c||!k||!l||!D)throw new g.CredentialsProviderError("Token refresh response missing required fields",{logger:this.logger,tryNextLink:!1});let R=(N??900)*1000,b=new Date(Date.now()+R),C={...o,accessToken:{...o.accessToken,accessKeyId:c,secretAccessKey:k,sessionToken:l,expiresAt:b.toISOString()},refreshToken:D};return await this.saveToken(C),this.toCredentials(C.accessToken)}catch(i){if(i.name==="AccessDeniedException"){let k=i.error,l;switch(k){case"TOKEN_EXPIRED":l="Your session has expired. Please reauthenticate.";break;case"USER_CREDENTIALS_CHANGED":l="Unable to refresh credentials because of a change in your password. Please reauthenticate with your new password.";break;case"INSUFFICIENT_PERMISSIONS":l="Unable to refresh credentials due to insufficient permissions. You may be missing permission for the 'CreateOAuth2Token' action.";break;default:l=`Failed to refresh token: ${String(i)}. Please re-authenticate using \`aws login\``}throw new g.CredentialsProviderError(l,{logger:this.logger,tryNextLink:!1})}if(new Date(o.accessToken.expiresAt).getTime()>Date.now())return this.logger?.warn?.(`Failed to refresh token: ${String(i)}. Using existing token until expiry.`),this.toCredentials(o.accessToken);throw new g.CredentialsProviderError(`Failed to refresh token: ${String(i)}. Please re-authenticate using aws login`,{logger:this.logger})}}async loadToken(){let e=this.getTokenFilePath();try{let t=await x.readFile(e,"utf8"),s=JSON.parse(t),r=["accessToken","clientId","refreshToken","dpopKey"].filter((n)=>!s[n]);if(!s.accessToken?.accountId)r.push("accountId");if(r.length>0)throw new g.CredentialsProviderError(`Token validation failed, missing fields: ${r.join(", ")}`,{logger:this.logger,tryNextLink:!1});return s}catch(t){throw new g.CredentialsProviderError(`Failed to load token from ${e}: ${String(t)}`,{logger:this.logger,tryNextLink:!1})}}async saveToken(e){let t=this.getTokenFilePath(),s=_(t);try{await x.mkdir(s,{recursive:!0})}catch(r){}await x.writeFile(t,JSON.stringify(e,null,2),"utf8")}getTokenFilePath(){let e=process.env.AWS_LOGIN_CACHE_DIRECTORY??I(K(),".aws","login","cache"),t=Buffer.from(this.loginSession,"utf8"),s=F("sha256").update(t).digest("hex");return I(e,`${s}.json`)}derToRawSignature(e){let t=2;if(e[t]!==2)throw Error("Invalid DER signature");t++;let s=e[t++],r=e.subarray(t,t+s);if(t+=s,e[t]!==2)throw Error("Invalid DER signature");t++;let n=e[t++],o=e.subarray(t,t+n);r=r[0]===0?r.subarray(1):r,o=o[0]===0?o.subarray(1):o;let a=Buffer.concat([Buffer.alloc(32-r.length),r]),p=Buffer.concat([Buffer.alloc(32-o.length),o]);return Buffer.concat([a,p])}createDPoPInterceptor(e){e.add((t)=>async(s)=>{if(P.HttpRequest.isInstance(s.request)){let r=s.request,n=`${r.protocol}//${r.hostname}${r.port?`:${r.port}`:""}${r.path}`,o=await this.generateDpop(r.method,n);r.headers={...r.headers,DPoP:o}}return t(s)},{step:"finalizeRequest",name:"dpopInterceptor",override:!0})}async generateDpop(e="POST",t){let s=await this.loadToken();try{let r=L({key:s.dpopKey,format:"pem",type:"sec1"}),o=O(r).export({format:"der",type:"spki"}),a=-1;for(let c=0;c<o.length;c++)if(o[c]===4){a=c;break}let p=o.slice(a+1,a+33),w=o.slice(a+33,a+65),y={alg:"ES256",typ:"dpop+jwt",jwk:{kty:"EC",crv:"P-256",x:p.toString("base64url"),y:w.toString("base64url")}},m={jti:crypto.randomUUID(),htm:e,htu:t,iat:Math.floor(Date.now()/1000)},E=Buffer.from(JSON.stringify(y)).toString("base64url"),T=Buffer.from(JSON.stringify(m)).toString("base64url"),d=`${E}.${T}`,u=H("sha256",Buffer.from(d),r),i=this.derToRawSignature(u).toString("base64url");return`${d}.${i}`}catch(r){throw new g.CredentialsProviderError(`Failed to generate Dpop proof: ${r instanceof Error?r.message:String(r)}`,{logger:this.logger,tryNextLink:!1})}}}var v=(e)=>async({callerClientConfig:t}={})=>{e?.logger?.debug?.("@aws-sdk/credential-providers - fromLoginCredentials");let s=await f.parseKnownFiles(e||{}),r=f.getProfileName({profile:e?.profile??t?.profile}),n=s[r];if(!n?.login_session)throw new f.CredentialsProviderError(`Profile ${r} does not contain login_session.`,{tryNextLink:!0,logger:e?.logger});let a=await new h(n,e,t).loadCredentials();return A.setCredentialFeature(a,"CREDENTIALS_LOGIN","AD")};export{v as fromLoginCredentials};
2
+ import{Xt}from"./chunk-c61g9hfa.js";import{At,ar}from"./chunk-m6v8rb39.js";import{ie}from"./chunk-65dh7x4c.js";var A=ie(Xt()),f=ie(At());var g=ie(At()),P=ie(ar());import{createHash as F,createPrivateKey as L,createPublicKey as O,sign as H}from"crypto";import{promises as x}from"fs";import{homedir as K}from"os";import{dirname as _,join as I}from"path";class h{profileData;init;callerClientConfig;static REFRESH_THRESHOLD=300000;constructor(e,t,s){this.profileData=e,this.init=t,this.callerClientConfig=s}async loadCredentials(){let e=await this.loadToken();if(!e)throw new g.CredentialsProviderError(`Failed to load a token for session ${this.loginSession}, please re-authenticate using aws login`,{tryNextLink:!1,logger:this.logger});let t=e.accessToken,s=Date.now();if(new Date(t.expiresAt).getTime()-s<=h.REFRESH_THRESHOLD)return this.refresh(e);return this.toCredentials(e.accessToken)}get logger(){return this.init?.logger}get loginSession(){return this.profileData.login_session}toCredentials(e){return{accessKeyId:e.accessKeyId,secretAccessKey:e.secretAccessKey,sessionToken:e.sessionToken,accountId:e.accountId,expiration:new Date(e.expiresAt)}}async refresh(e){let t=await this.loadToken().catch(()=>e),s=Date.now(),r=new Date(t.accessToken.expiresAt).getTime(),n=new Date(e.accessToken.expiresAt).getTime(),o=r<=s&&n>s?e:t;if(new Date(o.accessToken.expiresAt).getTime()-Date.now()>h.REFRESH_THRESHOLD)return this.toCredentials(o.accessToken);let{SigninClient:p,CreateOAuth2TokenCommand:w}=await import("./chunk-y6h885fs.js"),{logger:y,userAgentAppId:m}=this.callerClientConfig??{},T=((i)=>i?.metadata?.handlerProtocol==="h2")(this.callerClientConfig?.requestHandler)?void 0:this.callerClientConfig?.requestHandler,d=this.profileData.region??await this.callerClientConfig?.region?.()??process.env.AWS_REGION,u=new p({credentials:{accessKeyId:"",secretAccessKey:""},region:d,requestHandler:T,logger:y,userAgentAppId:m,...this.init?.clientConfig});this.createDPoPInterceptor(u.middlewareStack);let S={tokenInput:{clientId:o.clientId,refreshToken:o.refreshToken,grantType:"refresh_token"}};try{let i=await u.send(new w(S)),{accessKeyId:c,secretAccessKey:k,sessionToken:l}=i.tokenOutput?.accessToken??{},{refreshToken:D,expiresIn:N}=i.tokenOutput??{};if(!c||!k||!l||!D)throw new g.CredentialsProviderError("Token refresh response missing required fields",{logger:this.logger,tryNextLink:!1});let R=(N??900)*1000,b=new Date(Date.now()+R),C={...o,accessToken:{...o.accessToken,accessKeyId:c,secretAccessKey:k,sessionToken:l,expiresAt:b.toISOString()},refreshToken:D};return await this.saveToken(C),this.toCredentials(C.accessToken)}catch(i){if(i.name==="AccessDeniedException"){let k=i.error,l;switch(k){case"TOKEN_EXPIRED":l="Your session has expired. Please reauthenticate.";break;case"USER_CREDENTIALS_CHANGED":l="Unable to refresh credentials because of a change in your password. Please reauthenticate with your new password.";break;case"INSUFFICIENT_PERMISSIONS":l="Unable to refresh credentials due to insufficient permissions. You may be missing permission for the 'CreateOAuth2Token' action.";break;default:l=`Failed to refresh token: ${String(i)}. Please re-authenticate using \`aws login\``}throw new g.CredentialsProviderError(l,{logger:this.logger,tryNextLink:!1})}if(new Date(o.accessToken.expiresAt).getTime()>Date.now())return this.logger?.warn?.(`Failed to refresh token: ${String(i)}. Using existing token until expiry.`),this.toCredentials(o.accessToken);throw new g.CredentialsProviderError(`Failed to refresh token: ${String(i)}. Please re-authenticate using aws login`,{logger:this.logger})}}async loadToken(){let e=this.getTokenFilePath();try{let t=await x.readFile(e,"utf8"),s=JSON.parse(t),r=["accessToken","clientId","refreshToken","dpopKey"].filter((n)=>!s[n]);if(!s.accessToken?.accountId)r.push("accountId");if(r.length>0)throw new g.CredentialsProviderError(`Token validation failed, missing fields: ${r.join(", ")}`,{logger:this.logger,tryNextLink:!1});return s}catch(t){throw new g.CredentialsProviderError(`Failed to load token from ${e}: ${String(t)}`,{logger:this.logger,tryNextLink:!1})}}async saveToken(e){let t=this.getTokenFilePath(),s=_(t);try{await x.mkdir(s,{recursive:!0})}catch(r){}await x.writeFile(t,JSON.stringify(e,null,2),"utf8")}getTokenFilePath(){let e=process.env.AWS_LOGIN_CACHE_DIRECTORY??I(K(),".aws","login","cache"),t=Buffer.from(this.loginSession,"utf8"),s=F("sha256").update(t).digest("hex");return I(e,`${s}.json`)}derToRawSignature(e){let t=2;if(e[t]!==2)throw Error("Invalid DER signature");t++;let s=e[t++],r=e.subarray(t,t+s);if(t+=s,e[t]!==2)throw Error("Invalid DER signature");t++;let n=e[t++],o=e.subarray(t,t+n);r=r[0]===0?r.subarray(1):r,o=o[0]===0?o.subarray(1):o;let a=Buffer.concat([Buffer.alloc(32-r.length),r]),p=Buffer.concat([Buffer.alloc(32-o.length),o]);return Buffer.concat([a,p])}createDPoPInterceptor(e){e.add((t)=>async(s)=>{if(P.HttpRequest.isInstance(s.request)){let r=s.request,n=`${r.protocol}//${r.hostname}${r.port?`:${r.port}`:""}${r.path}`,o=await this.generateDpop(r.method,n);r.headers={...r.headers,DPoP:o}}return t(s)},{step:"finalizeRequest",name:"dpopInterceptor",override:!0})}async generateDpop(e="POST",t){let s=await this.loadToken();try{let r=L({key:s.dpopKey,format:"pem",type:"sec1"}),o=O(r).export({format:"der",type:"spki"}),a=-1;for(let c=0;c<o.length;c++)if(o[c]===4){a=c;break}let p=o.slice(a+1,a+33),w=o.slice(a+33,a+65),y={alg:"ES256",typ:"dpop+jwt",jwk:{kty:"EC",crv:"P-256",x:p.toString("base64url"),y:w.toString("base64url")}},m={jti:crypto.randomUUID(),htm:e,htu:t,iat:Math.floor(Date.now()/1000)},E=Buffer.from(JSON.stringify(y)).toString("base64url"),T=Buffer.from(JSON.stringify(m)).toString("base64url"),d=`${E}.${T}`,u=H("sha256",Buffer.from(d),r),i=this.derToRawSignature(u).toString("base64url");return`${d}.${i}`}catch(r){throw new g.CredentialsProviderError(`Failed to generate Dpop proof: ${r instanceof Error?r.message:String(r)}`,{logger:this.logger,tryNextLink:!1})}}}var v=(e)=>async({callerClientConfig:t}={})=>{e?.logger?.debug?.("@aws-sdk/credential-providers - fromLoginCredentials");let s=await f.parseKnownFiles(e||{}),r=f.getProfileName({profile:e?.profile??t?.profile}),n=s[r];if(!n?.login_session)throw new f.CredentialsProviderError(`Profile ${r} does not contain login_session.`,{tryNextLink:!0,logger:e?.logger});let a=await new h(n,e,t).loadCredentials();return A.setCredentialFeature(a,"CREDENTIALS_LOGIN","AD")};export{v as fromLoginCredentials};
@@ -0,0 +1 @@
1
+ import{S,L,a,ee,Je,R,Ft,$t,Wg}from"./chunk-akafypge.js";import"./chunk-7e9ws6dh.js";import"./chunk-evs2aaav.js";import"./chunk-fb9dedm2.js";import"./chunk-7q4mgd5x.js";import"./chunk-d3brvxh7.js";import"./chunk-3mx4trvh.js";import"./chunk-wmrrapwv.js";import"./chunk-t6cb99gp.js";import"./chunk-xd1axsdv.js";import"./chunk-zdvhh8mk.js";import"./chunk-bssb9tar.js";import"./chunk-q57m34h0.js";import"./chunk-s4hkcw24.js";import{To}from"./chunk-e0bckx12.js";import"./chunk-vf9s8b5t.js";import{yr}from"./chunk-e8zzg57c.js";import"./chunk-av2w1sez.js";import"./chunk-km70p970.js";import"./chunk-8a7ymmd4.js";import"./chunk-k9vjs21p.js";import"./chunk-n54ftsdx.js";import"./chunk-na5fh7er.js";import"./chunk-qw92z3wf.js";import"./chunk-zg0b902x.js";import"./chunk-81b8rfv7.js";import"./chunk-wzrzc07t.js";L();function m(){let{projectId:o}=c.useParams(),{teamId:r,ensureTeamIdForProject:t}=Ft();S(()=>{t(o)},[o,t]);let{data:n}=yr(Wg(o)),e=n?.rootFolder,{data:s}=ee({queryKey:["folders",e],queryFn:()=>(async()=>await(await R.api.folders[":folderId"].$get({param:{folderId:e}})).json())(),enabled:!!e});if(!r||!e||!s)return a($t,{});return a(To,{teamId:r,projectId:o,projectName:n.name??"",assetId:"recents",rootFolderId:e})}var c=Je("/projects/$projectId/recents")({component:m});export{c as Route};