@shumai-one/shumai 0.4.2 → 0.4.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 (269) hide show
  1. package/bin/chunk-071x515q.js +4 -0
  2. package/bin/{chunk-adekdctx.css → chunk-0ccg9ddn.css} +1 -1
  3. package/bin/chunk-0cmx7k4c.js +1 -0
  4. package/bin/chunk-0qaq0sp8.js +5 -0
  5. package/bin/chunk-0qjfahk9.js +2 -0
  6. package/bin/chunk-0zv3bks2.js +2 -0
  7. package/bin/chunk-16xax8kk.js +1 -0
  8. package/bin/chunk-1gvscz88.js +5 -0
  9. package/bin/chunk-1j27fzy1.js +2 -0
  10. package/bin/chunk-1t167cvj.js +11 -0
  11. package/bin/chunk-1xh34aew.js +2 -0
  12. package/bin/chunk-1zwajpwf.js +8 -0
  13. package/bin/chunk-2w5xqhjm.js +1 -0
  14. package/bin/chunk-3tedzb2j.js +54 -0
  15. package/bin/chunk-3ttrhqy3.js +2 -0
  16. package/bin/chunk-3zkasqb8.js +1 -0
  17. package/bin/chunk-453ykvaw.js +2 -0
  18. package/bin/chunk-4991gz3y.js +13 -0
  19. package/bin/chunk-4hkkdm2q.js +2 -0
  20. package/bin/chunk-4mjywsj8.js +3 -0
  21. package/bin/chunk-4v41a1r9.js +6 -0
  22. package/bin/chunk-4wy87hwd.js +3 -0
  23. package/bin/chunk-579e4wv4.js +3 -0
  24. package/bin/chunk-5adsx8x4.js +2 -0
  25. package/bin/chunk-5hg6kcfz.js +45 -0
  26. package/bin/chunk-5nm2jvg5.js +32 -0
  27. package/bin/chunk-5tcdwep5.js +11 -0
  28. package/bin/chunk-5vzrpz50.js +2 -0
  29. package/bin/chunk-6ghcj4a9.js +3 -0
  30. package/bin/chunk-77fmkpdz.js +10 -0
  31. package/bin/chunk-7bcxj1jd.js +2 -0
  32. package/bin/chunk-7gmdnsdg.js +2 -0
  33. package/bin/chunk-7jtmwt5a.js +3 -0
  34. package/bin/chunk-7kjgvxqa.js +2 -0
  35. package/bin/chunk-7pw1550a.js +2 -0
  36. package/bin/chunk-7rhz2gze.js +211 -0
  37. package/bin/chunk-837fky18.js +3 -0
  38. package/bin/chunk-84as6x83.js +1 -0
  39. package/bin/chunk-8e28hcny.js +2 -0
  40. package/bin/chunk-914bp49r.js +4 -0
  41. package/bin/chunk-97f2af6d.js +12 -0
  42. package/bin/chunk-98715kc3.js +2 -0
  43. package/bin/chunk-9ccw540k.js +2 -0
  44. package/bin/chunk-9t8n2des.js +2 -0
  45. package/bin/chunk-9ybt6vbm.js +1 -0
  46. package/bin/chunk-a6gx7f5q.js +1 -0
  47. package/bin/chunk-avwgktxb.js +2 -0
  48. package/bin/chunk-bkr5zm4h.js +2 -0
  49. package/bin/chunk-cbgq517y.js +2 -0
  50. package/bin/chunk-d27mm390.js +1 -0
  51. package/bin/chunk-dj92fss9.js +2 -0
  52. package/bin/chunk-dqxeztfa.js +2 -0
  53. package/bin/chunk-drepsbb4.js +2 -0
  54. package/bin/chunk-f6svp4dp.js +2 -0
  55. package/bin/chunk-fahk9h62.js +8 -0
  56. package/bin/chunk-fb40xxz3.js +3 -0
  57. package/bin/chunk-fnmwksnb.js +3 -0
  58. package/bin/chunk-fpc4p0j8.js +3 -0
  59. package/bin/chunk-fsyzs0tf.js +1 -0
  60. package/bin/chunk-fxecgp5k.js +1 -0
  61. package/bin/chunk-g3fpmyyn.js +3 -0
  62. package/bin/chunk-gc5sbfa5.js +2 -0
  63. package/bin/chunk-gdm6yfqq.js +2 -0
  64. package/bin/chunk-gk2q9a3f.js +2 -0
  65. package/bin/chunk-gt4csat6.js +3 -0
  66. package/bin/chunk-gye8gabk.js +2 -0
  67. package/bin/chunk-hk5rc6cd.js +24 -0
  68. package/bin/chunk-hm0dkzed.js +3 -0
  69. package/bin/chunk-hmpwg5za.js +16 -0
  70. package/bin/chunk-j1tkmcae.js +3 -0
  71. package/bin/chunk-j2bvj2yn.js +2 -0
  72. package/bin/chunk-jffktpqg.js +1 -0
  73. package/bin/chunk-jgs8an3h.js +18 -0
  74. package/bin/chunk-jmpb5633.js +2 -0
  75. package/bin/chunk-jrjnqx78.js +2 -0
  76. package/bin/chunk-k2k9vjq6.js +1 -0
  77. package/bin/chunk-kpgfqkp0.js +3 -0
  78. package/bin/chunk-ks8xzc95.js +3 -0
  79. package/bin/chunk-kswvyqq1.js +2 -0
  80. package/bin/chunk-m9pr03kn.js +2 -0
  81. package/bin/chunk-mfn9qjm4.js +2 -0
  82. package/bin/chunk-msfw3jmc.js +3 -0
  83. package/bin/chunk-mz0yjra0.js +5 -0
  84. package/bin/chunk-nbdw8fen.js +1 -0
  85. package/bin/chunk-nkdk229f.js +2 -0
  86. package/bin/chunk-nr20tvnw.js +3 -0
  87. package/bin/chunk-pazjhrnf.js +12 -0
  88. package/bin/chunk-q806pqeh.js +1 -0
  89. package/bin/chunk-qka4mkmj.js +2 -0
  90. package/bin/chunk-qsr1a0rp.js +2 -0
  91. package/bin/chunk-rchsme43.js +3 -0
  92. package/bin/chunk-reyxk4bw.js +2 -0
  93. package/bin/chunk-rhvv1vvk.js +3 -0
  94. package/bin/chunk-rq0n0vcc.js +2 -0
  95. package/bin/chunk-rqf7999q.js +42 -0
  96. package/bin/chunk-rssgmj7x.js +2 -0
  97. package/bin/chunk-ryzz5fht.js +2 -0
  98. package/bin/chunk-s2fnfyn9.js +2 -0
  99. package/bin/chunk-s2k4qntr.js +3 -0
  100. package/bin/chunk-snhsjs4x.js +299 -0
  101. package/bin/chunk-t2hy6tj9.js +2 -0
  102. package/bin/chunk-t7nsgg5k.js +4 -0
  103. package/bin/chunk-tm7f32c7.js +14 -0
  104. package/bin/chunk-trveq4wg.js +3 -0
  105. package/bin/chunk-vap4k11j.js +20 -0
  106. package/bin/chunk-vm5fx7td.js +3 -0
  107. package/bin/chunk-vy8gntez.js +1 -0
  108. package/bin/chunk-vyzptrea.js +2 -0
  109. package/bin/chunk-w4ghe71n.js +2 -0
  110. package/bin/chunk-wdsf44hs.js +2 -0
  111. package/bin/chunk-wjyaezs7.js +2 -0
  112. package/bin/chunk-wndm3px3.js +1 -0
  113. package/bin/chunk-x5jwwvs0.js +1 -0
  114. package/bin/chunk-x92cq59c.js +1 -0
  115. package/bin/chunk-xa18z1py.js +3 -0
  116. package/bin/chunk-xarsrs08.js +2 -0
  117. package/bin/chunk-xtf3c29c.css +1 -0
  118. package/bin/chunk-xx337zcw.js +2 -0
  119. package/bin/chunk-xz6713tj.js +2 -0
  120. package/bin/chunk-yfnem6se.js +2 -0
  121. package/bin/chunk-ytdwk2fq.js +2 -0
  122. package/bin/chunk-ze20rm02.js +7 -0
  123. package/bin/chunk-zw86wnwe.js +7 -0
  124. package/bin/chunk-zxk7q0zk.js +2 -0
  125. package/bin/{pdf.worker.min-szxdj13d.mjs → pdf.worker.min-vf48er29.mjs} +14423 -13889
  126. package/bin/shumai-app.html +1 -1
  127. package/bin/shumai-app.js +841 -678
  128. package/package.json +18 -18
  129. package/prisma/migrations/20260904022457_add_agent_id_to_assets_and_audit_logs/migration.sql +17 -0
  130. package/prisma/migrations/20260906081230_default_denied_tools_delete_asset/migration.sql +15 -0
  131. package/prisma/migrations/20260907021754_add_asset_upload_id/migration.sql +2 -0
  132. package/prisma/schema.prisma +10 -0
  133. package/bin/chunk-07h4b77v.js +0 -2
  134. package/bin/chunk-0t4n4d5w.js +0 -4
  135. package/bin/chunk-1611z9jg.js +0 -2
  136. package/bin/chunk-1phqxp6z.js +0 -3
  137. package/bin/chunk-23hckrrz.js +0 -2
  138. package/bin/chunk-30z44j1g.js +0 -2
  139. package/bin/chunk-3j463k1g.js +0 -1
  140. package/bin/chunk-4181tdds.js +0 -14
  141. package/bin/chunk-480jtqng.js +0 -4
  142. package/bin/chunk-4c3g146q.js +0 -2
  143. package/bin/chunk-4ca0zt5e.js +0 -1
  144. package/bin/chunk-4d9bgmf2.js +0 -2
  145. package/bin/chunk-4ev56fss.js +0 -9
  146. package/bin/chunk-4gk52tjq.js +0 -45
  147. package/bin/chunk-4mdqkj4d.js +0 -1
  148. package/bin/chunk-4r91fggc.js +0 -2
  149. package/bin/chunk-50fb1x3w.js +0 -1
  150. package/bin/chunk-59gj1njz.js +0 -1
  151. package/bin/chunk-5pr0t7fb.js +0 -2
  152. package/bin/chunk-5vewxmz7.js +0 -3
  153. package/bin/chunk-62zx96pe.js +0 -2
  154. package/bin/chunk-63y0eb07.js +0 -2
  155. package/bin/chunk-6d5xrgfx.js +0 -2
  156. package/bin/chunk-6gbtz5bf.js +0 -67
  157. package/bin/chunk-6gjg5egq.js +0 -3
  158. package/bin/chunk-6m4jz9s1.js +0 -44
  159. package/bin/chunk-6s4x525w.js +0 -2
  160. package/bin/chunk-6w2wmvqs.js +0 -3
  161. package/bin/chunk-77d23vcn.js +0 -2
  162. package/bin/chunk-77m5p188.js +0 -2
  163. package/bin/chunk-7bvx087f.js +0 -1
  164. package/bin/chunk-7pfjfrjg.js +0 -5
  165. package/bin/chunk-7q10s127.js +0 -4
  166. package/bin/chunk-7thx8ctx.js +0 -3
  167. package/bin/chunk-8t4s91gh.js +0 -2
  168. package/bin/chunk-98ey5p2e.js +0 -3
  169. package/bin/chunk-9amndcyh.js +0 -6
  170. package/bin/chunk-9bk23g9x.js +0 -1
  171. package/bin/chunk-9mkcfy43.js +0 -1
  172. package/bin/chunk-9t3nsq5n.js +0 -2
  173. package/bin/chunk-9tjq99ds.js +0 -2
  174. package/bin/chunk-9wm9rwh1.js +0 -2
  175. package/bin/chunk-ab16fyg4.js +0 -4
  176. package/bin/chunk-arv0g2av.js +0 -1
  177. package/bin/chunk-aytj4zxg.js +0 -3
  178. package/bin/chunk-b1ypjqgp.js +0 -2
  179. package/bin/chunk-bdjv0ykq.js +0 -2
  180. package/bin/chunk-c1k86mfa.js +0 -10
  181. package/bin/chunk-caa96dgd.js +0 -2
  182. package/bin/chunk-ce4v2yjy.js +0 -1
  183. package/bin/chunk-cqh60y54.js +0 -3
  184. package/bin/chunk-cvq7zgw7.js +0 -1
  185. package/bin/chunk-d9mjbtp2.js +0 -2
  186. package/bin/chunk-dn7sbjws.js +0 -3
  187. package/bin/chunk-dxyq9h8n.js +0 -3
  188. package/bin/chunk-e3cabksx.js +0 -3
  189. package/bin/chunk-egcrbj94.js +0 -2
  190. package/bin/chunk-ev17v1mv.js +0 -2
  191. package/bin/chunk-evtpwg71.js +0 -2
  192. package/bin/chunk-f3e0nsv2.js +0 -2
  193. package/bin/chunk-f40gjqpq.js +0 -2
  194. package/bin/chunk-fe7822ak.js +0 -299
  195. package/bin/chunk-g8tkhw9j.js +0 -2
  196. package/bin/chunk-g9r0p4t8.js +0 -2
  197. package/bin/chunk-gbjyh9ms.js +0 -1
  198. package/bin/chunk-gtbsb39v.js +0 -3
  199. package/bin/chunk-gytz1q13.js +0 -13
  200. package/bin/chunk-h0fxysxs.js +0 -7
  201. package/bin/chunk-h8bdvsqt.js +0 -2
  202. package/bin/chunk-hag024w8.js +0 -2
  203. package/bin/chunk-hc6w5nw4.js +0 -7
  204. package/bin/chunk-j69dqc48.js +0 -2
  205. package/bin/chunk-jbtw1zym.js +0 -8
  206. package/bin/chunk-jc1vb7rj.js +0 -5
  207. package/bin/chunk-jdv78w9r.js +0 -2
  208. package/bin/chunk-jjs70y9v.js +0 -3
  209. package/bin/chunk-jmdar2gz.js +0 -2
  210. package/bin/chunk-jvwz10n4.js +0 -2
  211. package/bin/chunk-k47md1g4.js +0 -2
  212. package/bin/chunk-k4v0brcb.js +0 -2
  213. package/bin/chunk-k6n7c07e.js +0 -1
  214. package/bin/chunk-kk2cstsg.js +0 -2
  215. package/bin/chunk-knz4h56q.js +0 -12
  216. package/bin/chunk-kqqtt6bd.js +0 -3
  217. package/bin/chunk-kvyp1t4j.js +0 -7
  218. package/bin/chunk-kxskpgsq.js +0 -5
  219. package/bin/chunk-m6srbjcs.js +0 -2
  220. package/bin/chunk-mcc1scxs.js +0 -12
  221. package/bin/chunk-mq83a0kk.js +0 -2
  222. package/bin/chunk-mxm8g4q0.js +0 -1
  223. package/bin/chunk-nhpgdqq5.js +0 -2
  224. package/bin/chunk-nne496aa.js +0 -2
  225. package/bin/chunk-nqpb0r9h.js +0 -11
  226. package/bin/chunk-ns0zww9g.js +0 -2
  227. package/bin/chunk-ps4xfp23.js +0 -2
  228. package/bin/chunk-pz2ec6xt.js +0 -2
  229. package/bin/chunk-q163k309.js +0 -2
  230. package/bin/chunk-q1da61ps.js +0 -1
  231. package/bin/chunk-qrf0ady6.js +0 -68
  232. package/bin/chunk-qy28f25e.js +0 -2
  233. package/bin/chunk-r7s4ypw1.js +0 -2
  234. package/bin/chunk-ran23vm9.js +0 -1
  235. package/bin/chunk-rfvdc4n0.js +0 -2
  236. package/bin/chunk-rgthkvgx.js +0 -3
  237. package/bin/chunk-s39n3yw3.js +0 -2
  238. package/bin/chunk-s7wdd0g7.js +0 -8
  239. package/bin/chunk-s88ha5kx.js +0 -3
  240. package/bin/chunk-sf91bt9m.js +0 -2
  241. package/bin/chunk-sjwbjf9j.js +0 -2
  242. package/bin/chunk-t62076pv.js +0 -1
  243. package/bin/chunk-tbbwss3v.js +0 -3
  244. package/bin/chunk-tjcc7a6y.js +0 -24
  245. package/bin/chunk-tp6ab26e.js +0 -2
  246. package/bin/chunk-v2wxk9p5.js +0 -4
  247. package/bin/chunk-vbk6y4hk.js +0 -2
  248. package/bin/chunk-vfgfg5fk.js +0 -2
  249. package/bin/chunk-vm6c3xx9.js +0 -2
  250. package/bin/chunk-vsx96mt6.js +0 -3
  251. package/bin/chunk-wbyw1shz.js +0 -6
  252. package/bin/chunk-whh2vh50.css +0 -1
  253. package/bin/chunk-wjkcq65s.js +0 -2
  254. package/bin/chunk-wkefwkfp.js +0 -41
  255. package/bin/chunk-x7bsnk1e.js +0 -2
  256. package/bin/chunk-xbhw6bpz.js +0 -3
  257. package/bin/chunk-xg5yrcj5.js +0 -2
  258. package/bin/chunk-xg9xscqz.js +0 -1
  259. package/bin/chunk-xw2gpcsh.js +0 -3
  260. package/bin/chunk-ycq8ank7.js +0 -2
  261. package/bin/chunk-yp9hvkc5.js +0 -73
  262. package/bin/chunk-ytypyfkc.js +0 -65
  263. package/bin/chunk-z1kjmf60.js +0 -2
  264. package/bin/chunk-z36bx86r.js +0 -2
  265. package/bin/chunk-z7hdnecp.js +0 -3
  266. package/bin/chunk-zeby1cq7.js +0 -2
  267. package/bin/chunk-zs5e8z1w.js +0 -1
  268. package/bin/chunk-zxnyefg5.js +0 -2
  269. /package/bin/{chunk-24ke0th1.css → chunk-kegybs91.css} +0 -0
@@ -1,44 +0,0 @@
1
- // @bun
2
- import{sn as I8,tn as b,xn as a}from"./chunk-dxyq9h8n.js";var gZ=b((tU,fZ)=>{function O0(Z,$){if(typeof $==="boolean")$={forever:$};if(this._originalTimeouts=JSON.parse(JSON.stringify(Z)),this._timeouts=Z,this._options=$||{},this._maxRetryTime=$&&$.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._timer=null,this._options.forever)this._cachedTimeouts=this._timeouts.slice(0)}fZ.exports=O0;O0.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts.slice(0)};O0.prototype.stop=function(){if(this._timeout)clearTimeout(this._timeout);if(this._timer)clearTimeout(this._timer);this._timeouts=[],this._cachedTimeouts=null};O0.prototype.retry=function(Z){if(this._timeout)clearTimeout(this._timeout);if(!Z)return!1;var $=new Date().getTime();if(Z&&$-this._operationStart>=this._maxRetryTime)return this._errors.push(Z),this._errors.unshift(Error("RetryOperation timeout occurred")),!1;this._errors.push(Z);var Q=this._timeouts.shift();if(Q===void 0)if(this._cachedTimeouts)this._errors.splice(0,this._errors.length-1),Q=this._cachedTimeouts.slice(-1);else return!1;var Y=this;if(this._timer=setTimeout(function(){if(Y._attempts++,Y._operationTimeoutCb){if(Y._timeout=setTimeout(function(){Y._operationTimeoutCb(Y._attempts)},Y._operationTimeout),Y._options.unref)Y._timeout.unref()}Y._fn(Y._attempts)},Q),this._options.unref)this._timer.unref();return!0};O0.prototype.attempt=function(Z,$){if(this._fn=Z,$){if($.timeout)this._operationTimeout=$.timeout;if($.cb)this._operationTimeoutCb=$.cb}var Q=this;if(this._operationTimeoutCb)this._timeout=setTimeout(function(){Q._operationTimeoutCb()},Q._operationTimeout);this._operationStart=new Date().getTime(),this._fn(this._attempts)};O0.prototype.try=function(Z){console.log("Using RetryOperation.try() is deprecated"),this.attempt(Z)};O0.prototype.start=function(Z){console.log("Using RetryOperation.start() is deprecated"),this.attempt(Z)};O0.prototype.start=O0.prototype.try;O0.prototype.errors=function(){return this._errors};O0.prototype.attempts=function(){return this._attempts};O0.prototype.mainError=function(){if(this._errors.length===0)return null;var Z={},$=null,Q=0;for(var Y=0;Y<this._errors.length;Y++){var W=this._errors[Y],J=W.message,K=(Z[J]||0)+1;if(Z[J]=K,K>=Q)$=W,Q=K}return $}});var mZ=b((kJ)=>{var hJ=gZ();kJ.operation=function(Z){var $=kJ.timeouts(Z);return new hJ($,{forever:Z&&(Z.forever||Z.retries===1/0),unref:Z&&Z.unref,maxRetryTime:Z&&Z.maxRetryTime})};kJ.timeouts=function(Z){if(Z instanceof Array)return[].concat(Z);var $={retries:10,factor:2,minTimeout:1000,maxTimeout:1/0,randomize:!1};for(var Q in Z)$[Q]=Z[Q];if($.minTimeout>$.maxTimeout)throw Error("minTimeout is greater than maxTimeout");var Y=[];for(var W=0;W<$.retries;W++)Y.push(this.createTimeout(W,$));if(Z&&Z.forever&&!Y.length)Y.push(this.createTimeout(W,$));return Y.sort(function(J,K){return J-K}),Y};kJ.createTimeout=function(Z,$){var Q=$.randomize?Math.random()+1:1,Y=Math.round(Q*Math.max($.minTimeout,1)*Math.pow($.factor,Z));return Y=Math.min(Y,$.maxTimeout),Y};kJ.wrap=function(Z,$,Q){if($ instanceof Array)Q=$,$=null;if(!Q){Q=[];for(var Y in Z)if(typeof Z[Y]==="function")Q.push(Y)}for(var W=0;W<Q.length;W++){var J=Q[W],K=Z[J];Z[J]=function(H){var w=kJ.operation($),F=Array.prototype.slice.call(arguments,1),z=F.pop();F.push(function(G){if(w.retry(G))return;if(G)arguments[0]=w.mainError();z.apply(this,arguments)}),w.attempt(function(){H.apply(Z,F)})}.bind(Z,K),Z[J].options=$}}});var dZ=b((ZD,H1)=>{var gJ=mZ(),bJ=["Failed to fetch","NetworkError when attempting to fetch resource.","The Internet connection appears to be offline.","Network request failed"];class z8 extends Error{constructor(Z){super();if(Z instanceof Error)this.originalError=Z,{message:Z}=Z;else this.originalError=Error(Z),this.originalError.stack=this.stack;this.name="AbortError",this.message=Z}}var mJ=(Z,$,Q)=>{let Y=Q.retries-($-1);return Z.attemptNumber=$,Z.retriesLeft=Y,Z},uJ=(Z)=>bJ.includes(Z),uZ=(Z,$)=>new Promise((Q,Y)=>{$={onFailedAttempt:()=>{},retries:10,...$};let W=gJ.operation($);W.attempt(async(J)=>{try{Q(await Z(J))}catch(K){if(!(K instanceof Error)){Y(TypeError(`Non-error was thrown: "${K}". You should only throw errors.`));return}if(K instanceof z8)W.stop(),Y(K.originalError);else if(K instanceof TypeError&&!uJ(K.message))W.stop(),Y(K);else{mJ(K,J,$);try{await $.onFailedAttempt(K)}catch(q){Y(q);return}if(!W.retry(K))Y(W.mainError())}}})});H1.exports=uZ;H1.exports.default=uZ;H1.exports.AbortError=z8});var F8=b(($D,sZ)=>{var w1=Object.prototype.hasOwnProperty,rZ=Object.prototype.toString,lZ=Object.defineProperty,cZ=Object.getOwnPropertyDescriptor,pZ=function($){if(typeof Array.isArray==="function")return Array.isArray($);return rZ.call($)==="[object Array]"},iZ=function($){if(!$||rZ.call($)!=="[object Object]")return!1;var Q=w1.call($,"constructor"),Y=$.constructor&&$.constructor.prototype&&w1.call($.constructor.prototype,"isPrototypeOf");if($.constructor&&!Q&&!Y)return!1;var W;for(W in $);return typeof W>"u"||w1.call($,W)},aZ=function($,Q){if(lZ&&Q.name==="__proto__")lZ($,Q.name,{enumerable:!0,configurable:!0,value:Q.newValue,writable:!0});else $[Q.name]=Q.newValue},nZ=function($,Q){if(Q==="__proto__"){if(!w1.call($,Q))return;else if(cZ)return cZ($,Q).value}return $[Q]};sZ.exports=function Z(){var $,Q,Y,W,J,K,q=arguments[0],H=1,w=arguments.length,F=!1;if(typeof q==="boolean")F=q,q=arguments[1]||{},H=2;if(q==null||typeof q!=="object"&&typeof q!=="function")q={};for(;H<w;++H)if($=arguments[H],$!=null){for(Q in $)if(Y=nZ(q,Q),W=nZ($,Q),q!==W){if(F&&W&&(iZ(W)||(J=pZ(W)))){if(J)J=!1,K=Y&&pZ(Y)?Y:[];else K=Y&&iZ(Y)?Y:{};aZ(q,{name:Q,newValue:Z(F,K,W)})}else if(typeof W<"u")aZ(q,{name:Q,newValue:W})}}return q}});var oZ=b((QD,dJ)=>{dJ.exports={name:"gaxios",version:"7.1.4",description:"A simple common HTTP client specifically for Google APIs and services.",main:"build/cjs/src/index.js",types:"build/cjs/src/index.d.ts",files:["build/"],exports:{".":{import:{types:"./build/esm/src/index.d.ts",default:"./build/esm/src/index.js"},require:{types:"./build/cjs/src/index.d.ts",default:"./build/cjs/src/index.js"}}},scripts:{lint:"gts check --no-inline-config",test:"c8 mocha build/esm/test","presystem-test":"npm run compile","system-test":"mocha build/esm/system-test --timeout 80000",compile:"tsc -b ./tsconfig.json ./tsconfig.cjs.json && node utils/enable-esm.mjs",fix:"gts fix",prepare:"npm run compile",pretest:"npm run compile",webpack:"webpack","prebrowser-test":"npm run compile","browser-test":"node build/browser-test/browser-test-runner.js",docs:"jsdoc -c .jsdoc.js","docs-test":"linkinator docs","predocs-test":"npm run docs","samples-test":"cd samples/ && npm link ../ && npm test && cd ../",prelint:"cd samples; npm link ../; npm install",clean:"gts clean"},repository:{type:"git",directory:"packages/gaxios",url:"https://github.com/googleapis/google-cloud-node-core.git"},keywords:["google"],engines:{node:">=18"},author:"Google, LLC",license:"Apache-2.0",devDependencies:{"@babel/plugin-proposal-private-methods":"^7.18.6","@types/cors":"^2.8.6","@types/express":"^5.0.0","@types/extend":"^3.0.1","@types/mocha":"^10.0.10","@types/multiparty":"4.2.1","@types/mv":"^2.1.0","@types/ncp":"^2.0.8","@types/node":"^22.13.1","@types/sinon":"^17.0.3","@types/tmp":"^0.2.6",assert:"^2.0.0",browserify:"^17.0.0",c8:"^10.1.3",cors:"^2.8.5",express:"^5.0.0",gts:"^6.0.2","is-docker":"^3.0.0",jsdoc:"^4.0.4","jsdoc-fresh":"^5.0.0","jsdoc-region-tag":"^4.0.0",karma:"^6.0.0","karma-chrome-launcher":"^3.0.0","karma-coverage":"^2.0.0","karma-firefox-launcher":"^2.0.0","karma-mocha":"^2.0.0","karma-remap-coverage":"^0.1.5","karma-sourcemap-loader":"^0.4.0","karma-webpack":"^5.0.1",linkinator:"^6.1.2",mocha:"^11.1.0",multiparty:"^4.2.1",mv:"^2.1.1",ncp:"^2.0.0",nock:"^14.0.5","null-loader":"^4.0.1","pack-n-play":"^4.0.0",puppeteer:"^24.0.0",sinon:"^21.0.0","stream-browserify":"^3.0.0",tmp:"0.2.5","ts-loader":"^9.5.2",typescript:"5.8.3",webpack:"^5.97.1","webpack-cli":"^6.0.1"},dependencies:{extend:"^3.0.2","https-proxy-agent":"^7.0.1","node-fetch":"^3.3.2"},homepage:"https://github.com/googleapis/google-cloud-node-core/tree/main/packages/gaxios"}});var eZ=b((YD,tZ)=>{var lJ=oZ();tZ.exports={pkg:lJ}});var D8=b((j0)=>{var $$=j0&&j0.__importDefault||function(Z){return Z&&Z.__esModule?Z:{default:Z}};Object.defineProperty(j0,"__esModule",{value:!0});j0.GaxiosError=j0.GAXIOS_ERROR_SYMBOL=void 0;j0.defaultErrorRedactor=Q$;var Z$=$$(F8()),cJ=$$(eZ()),G8=cJ.default.pkg;j0.GAXIOS_ERROR_SYMBOL=Symbol.for(`${G8.name}-gaxios-error`);class U8 extends Error{config;response;code;status;error;[j0.GAXIOS_ERROR_SYMBOL]=G8.version;static[Symbol.hasInstance](Z){if(Z&&typeof Z==="object"&&j0.GAXIOS_ERROR_SYMBOL in Z&&Z[j0.GAXIOS_ERROR_SYMBOL]===G8.version)return!0;return Function.prototype[Symbol.hasInstance].call(U8,Z)}constructor(Z,$,Q,Y){super(Z,{cause:Y});if(this.config=$,this.response=Q,this.error=Y instanceof Error?Y:void 0,this.config=(0,Z$.default)(!0,{},$),this.response)this.response.config=(0,Z$.default)(!0,{},this.response.config);if(this.response){try{this.response.data=pJ(this.config.responseType,this.response?.bodyUsed?this.response?.data:void 0)}catch{}this.status=this.response.status}if(Y instanceof DOMException)this.code=Y.name;else if(Y&&typeof Y==="object"&&"code"in Y&&(typeof Y.code==="string"||typeof Y.code==="number"))this.code=Y.code}static extractAPIErrorFromResponse(Z,$="The request failed"){let Q=$;if(typeof Z.data==="string")Q=Z.data;if(Z.data&&typeof Z.data==="object"&&"error"in Z.data&&Z.data.error&&!Z.ok){if(typeof Z.data.error==="string")return{message:Z.data.error,code:Z.status,status:Z.statusText};if(typeof Z.data.error==="object"){Q="message"in Z.data.error&&typeof Z.data.error.message==="string"?Z.data.error.message:Q;let Y="status"in Z.data.error&&typeof Z.data.error.status==="string"?Z.data.error.status:Z.statusText,W="code"in Z.data.error&&typeof Z.data.error.code==="number"?Z.data.error.code:Z.status;if("errors"in Z.data.error&&Array.isArray(Z.data.error.errors)){let J=[];for(let K of Z.data.error.errors)if(typeof K==="object"&&"message"in K&&typeof K.message==="string")J.push(K.message);return Object.assign({message:J.join(`
3
- `)||Q,code:W,status:Y},Z.data.error)}return Object.assign({message:Q,code:W,status:Y},Z.data.error)}}return{message:Q,code:Z.status,status:Z.statusText}}}j0.GaxiosError=U8;function pJ(Z,$){switch(Z){case"stream":return $;case"json":return JSON.parse(JSON.stringify($));case"arraybuffer":return JSON.parse(Buffer.from($).toString("utf8"));case"blob":return JSON.parse($.text());default:return $}}function Q$(Z){function Q(J){if(!J)return;J.forEach((K,q)=>{if(/^authentication$/i.test(q)||/^authorization$/i.test(q)||/secret/i.test(q))J.set(q,"<<REDACTED> - See `errorRedactor` option in `gaxios` for configuration>.")})}function Y(J,K){if(typeof J==="object"&&J!==null&&typeof J[K]==="string"){let q=J[K];if(/grant_type=/i.test(q)||/assertion=/i.test(q)||/secret/i.test(q))J[K]="<<REDACTED> - See `errorRedactor` option in `gaxios` for configuration>."}}function W(J){if(!J||typeof J!=="object")return;else if(J instanceof FormData||J instanceof URLSearchParams||"forEach"in J&&"set"in J)J.forEach((K,q)=>{if(["grant_type","assertion"].includes(q)||/secret/.test(q))J.set(q,"<<REDACTED> - See `errorRedactor` option in `gaxios` for configuration>.")});else{if("grant_type"in J)J.grant_type="<<REDACTED> - See `errorRedactor` option in `gaxios` for configuration>.";if("assertion"in J)J.assertion="<<REDACTED> - See `errorRedactor` option in `gaxios` for configuration>.";if("client_secret"in J)J.client_secret="<<REDACTED> - See `errorRedactor` option in `gaxios` for configuration>."}}if(Z.config){if(Q(Z.config.headers),Y(Z.config,"data"),W(Z.config.data),Y(Z.config,"body"),W(Z.config.body),Z.config.url.searchParams.has("token"))Z.config.url.searchParams.set("token","<<REDACTED> - See `errorRedactor` option in `gaxios` for configuration>.");if(Z.config.url.searchParams.has("client_secret"))Z.config.url.searchParams.set("client_secret","<<REDACTED> - See `errorRedactor` option in `gaxios` for configuration>.")}if(Z.response){if(Q$({config:Z.response.config}),Q(Z.response.headers),Z.response.bodyUsed)Y(Z.response,"data"),W(Z.response.data)}return Z}});var V$=b((W$)=>{Object.defineProperty(W$,"__esModule",{value:!0});W$.getRetryConfig=iJ;async function iJ(Z){let $=Y$(Z);if(!Z||!Z.config||!$&&!Z.config.retry)return{shouldRetry:!1};$=$||{},$.currentRetryAttempt=$.currentRetryAttempt||0,$.retry=$.retry===void 0||$.retry===null?3:$.retry,$.httpMethodsToRetry=$.httpMethodsToRetry||["GET","HEAD","PUT","OPTIONS","DELETE"],$.noResponseRetries=$.noResponseRetries===void 0||$.noResponseRetries===null?2:$.noResponseRetries,$.retryDelayMultiplier=$.retryDelayMultiplier?$.retryDelayMultiplier:2,$.timeOfFirstRequest=$.timeOfFirstRequest?$.timeOfFirstRequest:Date.now(),$.totalTimeout=$.totalTimeout?$.totalTimeout:Number.MAX_SAFE_INTEGER,$.maxRetryDelay=$.maxRetryDelay?$.maxRetryDelay:Number.MAX_SAFE_INTEGER;let Q=[[100,199],[408,408],[429,429],[500,599]];if($.statusCodesToRetry=$.statusCodesToRetry||Q,Z.config.retryConfig=$,!await($.shouldRetry||aJ)(Z))return{shouldRetry:!1,config:Z.config};let W=nJ($);Z.config.retryConfig.currentRetryAttempt+=1;let J=$.retryBackoff?$.retryBackoff(Z,W):new Promise((K)=>{setTimeout(K,W)});if($.onRetryAttempt)await $.onRetryAttempt(Z);return await J,{shouldRetry:!0,config:Z.config}}function aJ(Z){let $=Y$(Z);if(Z.config.signal?.aborted&&Z.code!=="TimeoutError"||Z.code==="AbortError")return!1;if(!$||$.retry===0)return!1;if(!Z.response&&($.currentRetryAttempt||0)>=$.noResponseRetries)return!1;if(!$.httpMethodsToRetry||!$.httpMethodsToRetry.includes(Z.config.method?.toUpperCase()||"GET"))return!1;if(Z.response&&Z.response.status){let Q=!1;for(let[Y,W]of $.statusCodesToRetry){let J=Z.response.status;if(J>=Y&&J<=W){Q=!0;break}}if(!Q)return!1}if($.currentRetryAttempt=$.currentRetryAttempt||0,$.currentRetryAttempt>=$.retry)return!1;return!0}function Y$(Z){if(Z&&Z.config&&Z.config.retryConfig)return Z.config.retryConfig;return}function nJ(Z){let Q=(Z.currentRetryAttempt?0:Z.retryDelay??100)+(Math.pow(Z.retryDelayMultiplier,Z.currentRetryAttempt)-1)/2*1000,Y=Z.totalTimeout-(Date.now()-Z.timeOfFirstRequest);return Math.min(Q,Y,Z.maxRetryDelay)}});var M8=b((X$)=>{Object.defineProperty(X$,"__esModule",{value:!0});X$.GaxiosInterceptorManager=void 0;class J$ extends Set{}X$.GaxiosInterceptorManager=J$});var w$=b((T4)=>{var sJ=T4&&T4.__importDefault||function(Z){return Z&&Z.__esModule?Z:{default:Z}},N4;Object.defineProperty(T4,"__esModule",{value:!0});T4.Gaxios=void 0;var oJ=sJ(F8()),tJ=a("https"),z4=D8(),eJ=V$(),q$=a("stream"),H$=M8(),Z7=async()=>globalThis.crypto?.randomUUID()||(await import("crypto")).randomUUID(),$7=204;class N8{agentCache=new Map;defaults;interceptors;constructor(Z){this.defaults=Z||{},this.interceptors={request:new H$.GaxiosInterceptorManager,response:new H$.GaxiosInterceptorManager}}fetch(...Z){let $=Z[0],Q=Z[1],Y=void 0,W=new Headers;if(typeof $==="string")Y=new URL($);else if($ instanceof URL)Y=$;else if($&&$.url)Y=new URL($.url);if($&&typeof $==="object"&&"headers"in $)N4.mergeHeaders(W,$.headers);if(Q)N4.mergeHeaders(W,new Headers(Q.headers));if(typeof $==="object"&&!($ instanceof URL))return this.request({...Q,...$,headers:W,url:Y});else return this.request({...Q,headers:W,url:Y})}async request(Z={}){let $=await this.#Y(Z);return $=await this.#$($),this.#Q(this._request($))}async _defaultAdapter(Z){let $=Z.fetchImplementation||this.defaults.fetchImplementation||await N4.#K(),Q={...Z};delete Q.data;let Y=await $(Z.url,Q),W=await this.getResponseData(Z,Y);if(!Object.getOwnPropertyDescriptor(Y,"data")?.configurable)Object.defineProperties(Y,{data:{configurable:!0,writable:!0,enumerable:!0,value:W}});return Object.assign(Y,{config:Z,data:W})}async _request(Z){try{let $;if(Z.adapter)$=await Z.adapter(Z,this._defaultAdapter.bind(this));else $=await this._defaultAdapter(Z);if(!Z.validateStatus($.status)){if(Z.responseType==="stream"){let Y=[];for await(let W of $.data)Y.push(W);$.data=Y.toString()}let Q=z4.GaxiosError.extractAPIErrorFromResponse($,`Request failed with status code ${$.status}`);throw new z4.GaxiosError(Q?.message,Z,$,Q)}return $}catch($){let Q;if($ instanceof z4.GaxiosError)Q=$;else if($ instanceof Error)Q=new z4.GaxiosError($.message,Z,void 0,$);else Q=new z4.GaxiosError("Unexpected Gaxios Error",Z,void 0,$);let{shouldRetry:Y,config:W}=await(0,eJ.getRetryConfig)(Q);if(Y&&W)return Q.config.retryConfig.currentRetryAttempt=W.retryConfig.currentRetryAttempt,Z.retryConfig=Q.config?.retryConfig,this.#W(Z),this._request(Z);if(Z.errorRedactor)Z.errorRedactor(Q);throw Q}}async getResponseData(Z,$){if($.status===$7)return"";if(Z.maxContentLength&&$.headers.has("content-length")&&Z.maxContentLength<Number.parseInt($.headers?.get("content-length")||""))throw new z4.GaxiosError("Response's `Content-Length` is over the limit.",Z,Object.assign($,{config:Z}));switch(Z.responseType){case"stream":return $.body;case"json":{let Q=await $.text();try{return JSON.parse(Q)}catch{return Q}}case"arraybuffer":return $.arrayBuffer();case"blob":return $.blob();case"text":return $.text();default:return this.getResponseDataFromContentType($)}}#Z(Z,$=[]){let Q=new URL(Z),Y=[...$],W=(process.env.NO_PROXY??process.env.no_proxy)?.split(",")||[];for(let J of W)Y.push(J.trim());for(let J of Y)if(J instanceof RegExp){if(J.test(Q.toString()))return!1}else if(J instanceof URL){if(J.origin===Q.origin)return!1}else if(J.startsWith("*.")||J.startsWith(".")){let K=J.replace(/^\*\./,".");if(Q.hostname.endsWith(K))return!1}else if(J===Q.origin||J===Q.hostname||J===Q.href)return!1;return!0}async#$(Z){let $=Promise.resolve(Z);for(let Q of this.interceptors.request.values())if(Q)$=$.then(Q.resolved,Q.rejected);return $}async#Q(Z){let $=Promise.resolve(Z);for(let Q of this.interceptors.response.values())if(Q)$=$.then(Q.resolved,Q.rejected);return $}async#Y(Z){let $=new Headers(this.defaults.headers);N4.mergeHeaders($,Z.headers);let Q=(0,oJ.default)(!0,{},this.defaults,Z);if(!Q.url)throw Error("URL is required.");if(Q.baseURL)Q.url=new URL(Q.url,Q.baseURL);if(Q.url=new URL(Q.url),Q.params)if(Q.paramsSerializer){let J=Q.paramsSerializer(Q.params);if(J.startsWith("?"))J=J.slice(1);let K=Q.url.toString().includes("?")?"&":"?";Q.url=Q.url+K+J}else{let J=Q.url instanceof URL?Q.url:new URL(Q.url);for(let[K,q]of new URLSearchParams(Q.params))J.searchParams.append(K,q);Q.url=J}if(typeof Z.maxContentLength==="number")Q.size=Z.maxContentLength;if(typeof Z.maxRedirects==="number")Q.follow=Z.maxRedirects;let Y=typeof Q.data==="string"||Q.data instanceof ArrayBuffer||Q.data instanceof Blob||globalThis.File&&Q.data instanceof File||Q.data instanceof FormData||Q.data instanceof q$.Readable||Q.data instanceof ReadableStream||Q.data instanceof String||Q.data instanceof URLSearchParams||ArrayBuffer.isView(Q.data)||["Blob","File","FormData"].includes(Q.data?.constructor?.name||"");if(Q.multipart?.length){let J=await Z7();$.set("content-type",`multipart/related; boundary=${J}`),Q.body=q$.Readable.from(this.getMultipartRequest(Q.multipart,J))}else if(Y)Q.body=Q.data;else if(typeof Q.data==="object")if($.get("Content-Type")==="application/x-www-form-urlencoded")Q.body=Q.paramsSerializer?Q.paramsSerializer(Q.data):new URLSearchParams(Q.data);else{if(!$.has("content-type"))$.set("content-type","application/json");Q.body=JSON.stringify(Q.data)}else if(Q.data)Q.body=Q.data;if(Q.validateStatus=Q.validateStatus||this.validateStatus,Q.responseType=Q.responseType||"unknown",!$.has("accept")&&Q.responseType==="json")$.set("accept","application/json");let W=Q.proxy||process?.env?.HTTPS_PROXY||process?.env?.https_proxy||process?.env?.HTTP_PROXY||process?.env?.http_proxy;if(Q.agent);else if(W&&this.#Z(Q.url,Q.noProxy)){let J=await N4.#X();if(this.agentCache.has(W))Q.agent=this.agentCache.get(W);else Q.agent=new J(W,{cert:Q.cert,key:Q.key}),this.agentCache.set(W,Q.agent)}else if(Q.cert&&Q.key)if(this.agentCache.has(Q.key))Q.agent=this.agentCache.get(Q.key);else Q.agent=new tJ.Agent({cert:Q.cert,key:Q.key}),this.agentCache.set(Q.key,Q.agent);if(typeof Q.errorRedactor!=="function"&&Q.errorRedactor!==!1)Q.errorRedactor=z4.defaultErrorRedactor;if(Q.body&&!("duplex"in Q))Q.duplex="half";return this.#W(Q),Object.assign(Q,{headers:$,url:Q.url instanceof URL?Q.url:new URL(Q.url)})}#W(Z){if(Z.timeout){let $=AbortSignal.timeout(Z.timeout);if(Z.signal&&!Z.signal.aborted)Z.signal=AbortSignal.any([Z.signal,$]);else Z.signal=$}}validateStatus(Z){return Z>=200&&Z<300}async getResponseDataFromContentType(Z){let $=Z.headers.get("Content-Type");if($===null)return Z.text();if($=$.toLowerCase(),$.includes("application/json")){let Q=await Z.text();try{Q=JSON.parse(Q)}catch{}return Q}else if($.match(/^text\//))return Z.text();else return Z.blob()}async*getMultipartRequest(Z,$){let Q=`--${$}--`;for(let Y of Z){let W=Y.headers.get("Content-Type")||"application/octet-stream";if(yield`--${$}\r
4
- Content-Type: ${W}\r
5
- \r
6
- `,typeof Y.content==="string")yield Y.content;else yield*Y.content;yield`\r
7
- `}yield Q}static#V;static#J;static async#X(){return this.#V||=(await import("./chunk-gytz1q13.js").then((m)=>I8(m.default))).HttpsProxyAgent,this.#V}static async#K(){let Z=typeof window<"u"&&!!window;return this.#J||=Z?window.fetch:(await import("node-fetch")).default,this.#J}static mergeHeaders(Z,...$){Z=Z instanceof Headers?Z:new Headers(Z);for(let Q of $)(Q instanceof Headers?Q:new Headers(Q)).forEach((W,J)=>{J==="set-cookie"?Z.append(J,W):Z.set(J,W)});return Z}}T4.Gaxios=N8;N4=N8});var G0=b((I0)=>{var Q7=I0&&I0.__createBinding||(Object.create?function(Z,$,Q,Y){if(Y===void 0)Y=Q;var W=Object.getOwnPropertyDescriptor($,Q);if(!W||("get"in W?!$.__esModule:W.writable||W.configurable))W={enumerable:!0,get:function(){return $[Q]}};Object.defineProperty(Z,Y,W)}:function(Z,$,Q,Y){if(Y===void 0)Y=Q;Z[Y]=$[Q]}),Y7=I0&&I0.__exportStar||function(Z,$){for(var Q in Z)if(Q!=="default"&&!Object.prototype.hasOwnProperty.call($,Q))Q7($,Z,Q)};Object.defineProperty(I0,"__esModule",{value:!0});I0.instance=I0.Gaxios=I0.GaxiosError=void 0;I0.request=V7;var z$=w$();Object.defineProperty(I0,"Gaxios",{enumerable:!0,get:function(){return z$.Gaxios}});var W7=D8();Object.defineProperty(I0,"GaxiosError",{enumerable:!0,get:function(){return W7.GaxiosError}});Y7(M8(),I0);I0.instance=new z$.Gaxios;async function V7(Z){return I0.instance.request(Z)}});var T8=b((F$,z1)=>{(function(Z){var $,Q=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,Y=Math.ceil,W=Math.floor,J="[BigNumber Error] ",K=J+"Number primitive has more than 15 significant digits: ",q=100000000000000,H=14,w=9007199254740991,F=[1,10,100,1000,1e4,1e5,1e6,1e7,1e8,1e9,10000000000,100000000000,1000000000000,10000000000000],z=1e7,G=1e9;function D(f){var S,d,h,_=g.prototype={constructor:g,toString:null,valueOf:null},n=new g(1),o=20,t=4,J0=-7,$0=21,V0=-1e7,q0=1e7,L0=!1,R0=1,H0=0,H4={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:"\xA0",suffix:""},w4="0123456789abcdefghijklmnopqrstuvwxyz",X8=!0;function g(U,M){var N,v,L,A,j,B,R,E,C=this;if(!(C instanceof g))return new g(U,M);if(M==null){if(U&&U._isBigNumber===!0){if(C.s=U.s,!U.c||U.e>q0)C.c=C.e=null;else if(U.e<V0)C.c=[C.e=0];else C.e=U.e,C.c=U.c.slice();return}if((B=typeof U=="number")&&U*0==0){if(C.s=1/U<0?(U=-U,-1):1,U===~~U){for(A=0,j=U;j>=10;j/=10,A++);if(A>q0)C.c=C.e=null;else C.e=A,C.c=[U];return}E=String(U)}else{if(!Q.test(E=String(U)))return h(C,E,B);C.s=E.charCodeAt(0)==45?(E=E.slice(1),-1):1}if((A=E.indexOf("."))>-1)E=E.replace(".","");if((j=E.search(/e/i))>0){if(A<0)A=j;A+=+E.slice(j+1),E=E.substring(0,j)}else if(A<0)A=E.length}else{if(O(M,2,w4.length,"Base"),M==10&&X8)return C=new g(U),v0(C,o+C.e+1,t);if(E=String(U),B=typeof U=="number"){if(U*0!=0)return h(C,E,B,M);if(C.s=1/U<0?(E=E.slice(1),-1):1,g.DEBUG&&E.replace(/^0\.0*|\./,"").length>15)throw Error(K+U)}else C.s=E.charCodeAt(0)===45?(E=E.slice(1),-1):1;N=w4.slice(0,M),A=j=0;for(R=E.length;j<R;j++)if(N.indexOf(v=E.charAt(j))<0){if(v=="."){if(j>A){A=R;continue}}else if(!L){if(E==E.toUpperCase()&&(E=E.toLowerCase())||E==E.toLowerCase()&&(E=E.toUpperCase())){L=!0,j=-1,A=0;continue}}return h(C,String(U),B,M)}if(B=!1,E=d(E,M,10,C.s),(A=E.indexOf("."))>-1)E=E.replace(".","");else A=E.length}for(j=0;E.charCodeAt(j)===48;j++);for(R=E.length;E.charCodeAt(--R)===48;);if(E=E.slice(j,++R)){if(R-=j,B&&g.DEBUG&&R>15&&(U>w||U!==W(U)))throw Error(K+C.s*U);if((A=A-j-1)>q0)C.c=C.e=null;else if(A<V0)C.c=[C.e=0];else{if(C.e=A,C.c=[],j=(A+1)%H,A<0)j+=H;if(j<R){if(j)C.c.push(+E.slice(0,j));for(R-=H;j<R;)C.c.push(+E.slice(j,j+=H));j=H-(E=E.slice(j)).length}else j-=R;for(;j--;E+="0");C.c.push(+E)}}else C.c=[C.e=0]}g.clone=D,g.ROUND_UP=0,g.ROUND_DOWN=1,g.ROUND_CEIL=2,g.ROUND_FLOOR=3,g.ROUND_HALF_UP=4,g.ROUND_HALF_DOWN=5,g.ROUND_HALF_EVEN=6,g.ROUND_HALF_CEIL=7,g.ROUND_HALF_FLOOR=8,g.EUCLID=9,g.config=g.set=function(U){var M,N;if(U!=null)if(typeof U=="object"){if(U.hasOwnProperty(M="DECIMAL_PLACES"))N=U[M],O(N,0,G,M),o=N;if(U.hasOwnProperty(M="ROUNDING_MODE"))N=U[M],O(N,0,8,M),t=N;if(U.hasOwnProperty(M="EXPONENTIAL_AT"))if(N=U[M],N&&N.pop)O(N[0],-G,0,M),O(N[1],0,G,M),J0=N[0],$0=N[1];else O(N,-G,G,M),J0=-($0=N<0?-N:N);if(U.hasOwnProperty(M="RANGE"))if(N=U[M],N&&N.pop)O(N[0],-G,-1,M),O(N[1],1,G,M),V0=N[0],q0=N[1];else if(O(N,-G,G,M),N)V0=-(q0=N<0?-N:N);else throw Error(J+M+" cannot be zero: "+N);if(U.hasOwnProperty(M="CRYPTO"))if(N=U[M],N===!!N)if(N)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))L0=N;else throw L0=!N,Error(J+"crypto unavailable");else L0=N;else throw Error(J+M+" not true or false: "+N);if(U.hasOwnProperty(M="MODULO_MODE"))N=U[M],O(N,0,9,M),R0=N;if(U.hasOwnProperty(M="POW_PRECISION"))N=U[M],O(N,0,G,M),H0=N;if(U.hasOwnProperty(M="FORMAT"))if(N=U[M],typeof N=="object")H4=N;else throw Error(J+M+" not an object: "+N);if(U.hasOwnProperty(M="ALPHABET"))if(N=U[M],typeof N=="string"&&!/^.?$|[+\-.\s]|(.).*\1/.test(N))X8=N.slice(0,10)=="0123456789",w4=N;else throw Error(J+M+" invalid: "+N)}else throw Error(J+"Object expected: "+U);return{DECIMAL_PLACES:o,ROUNDING_MODE:t,EXPONENTIAL_AT:[J0,$0],RANGE:[V0,q0],CRYPTO:L0,MODULO_MODE:R0,POW_PRECISION:H0,FORMAT:H4,ALPHABET:w4}},g.isBigNumber=function(U){if(!U||U._isBigNumber!==!0)return!1;if(!g.DEBUG)return!0;var M,N,v=U.c,L=U.e,A=U.s;Z:if({}.toString.call(v)=="[object Array]"){if((A===1||A===-1)&&L>=-G&&L<=G&&L===W(L)){if(v[0]===0){if(L===0&&v.length===1)return!0;break Z}if(M=(L+1)%H,M<1)M+=H;if(String(v[0]).length==M){for(M=0;M<v.length;M++)if(N=v[M],N<0||N>=q||N!==W(N))break Z;if(N!==0)return!0}}}else if(v===null&&L===null&&(A===null||A===1||A===-1))return!0;throw Error(J+"Invalid BigNumber: "+U)},g.maximum=g.max=function(){return xZ(arguments,-1)},g.minimum=g.min=function(){return xZ(arguments,1)},g.random=function(){var U=9007199254740992,M=Math.random()*U&2097151?function(){return W(Math.random()*U)}:function(){return(Math.random()*1073741824|0)*8388608+(Math.random()*8388608|0)};return function(N){var v,L,A,j,B,R=0,E=[],C=new g(n);if(N==null)N=o;else O(N,0,G);if(j=Y(N/H),L0)if(crypto.getRandomValues){v=crypto.getRandomValues(new Uint32Array(j*=2));for(;R<j;)if(B=v[R]*131072+(v[R+1]>>>11),B>=9000000000000000)L=crypto.getRandomValues(new Uint32Array(2)),v[R]=L[0],v[R+1]=L[1];else E.push(B%100000000000000),R+=2;R=j/2}else if(crypto.randomBytes){v=crypto.randomBytes(j*=7);for(;R<j;)if(B=(v[R]&31)*281474976710656+v[R+1]*1099511627776+v[R+2]*4294967296+v[R+3]*16777216+(v[R+4]<<16)+(v[R+5]<<8)+v[R+6],B>=9000000000000000)crypto.randomBytes(7).copy(v,R);else E.push(B%100000000000000),R+=7;R=j/7}else throw L0=!1,Error(J+"crypto unavailable");if(!L0){for(;R<j;)if(B=M(),B<9000000000000000)E[R++]=B%100000000000000}if(j=E[--R],N%=H,j&&N)B=F[H-N],E[R]=W(j/B)*B;for(;E[R]===0;E.pop(),R--);if(R<0)E=[A=0];else{for(A=-1;E[0]===0;E.splice(0,1),A-=H);for(R=1,B=E[0];B>=10;B/=10,R++);if(R<H)A-=H-R}return C.e=A,C.c=E,C}}(),g.sum=function(){var U=1,M=arguments,N=new g(M[0]);for(;U<M.length;)N=N.plus(M[U++]);return N},d=function(){var U="0123456789";function M(N,v,L,A){var j,B=[0],R,E=0,C=N.length;for(;E<C;){for(R=B.length;R--;B[R]*=v);B[0]+=A.indexOf(N.charAt(E++));for(j=0;j<B.length;j++)if(B[j]>L-1){if(B[j+1]==null)B[j+1]=0;B[j+1]+=B[j]/L|0,B[j]%=L}}return B.reverse()}return function(N,v,L,A,j){var B,R,E,C,k,c,p,Q0,X0=N.indexOf("."),z0=o,e=t;if(X0>=0)C=H0,H0=0,N=N.replace(".",""),Q0=new g(v),c=Q0.pow(N.length-X0),H0=C,Q0.c=M(m(I(c.c),c.e,"0"),10,L,U),Q0.e=Q0.c.length;p=M(N,v,L,j?(B=w4,U):(B=U,w4)),E=C=p.length;for(;p[--C]==0;p.pop());if(!p[0])return B.charAt(0);if(X0<0)--E;else c.c=p,c.e=E,c.s=A,c=S(c,Q0,z0,e,L),p=c.c,k=c.r,E=c.e;if(R=E+z0+1,X0=p[R],C=L/2,k=k||R<0||p[R+1]!=null,k=e<4?(X0!=null||k)&&(e==0||e==(c.s<0?3:2)):X0>C||X0==C&&(e==4||k||e==6&&p[R-1]&1||e==(c.s<0?8:7)),R<1||!p[0])N=k?m(B.charAt(1),-z0,B.charAt(0)):B.charAt(0);else{if(p.length=R,k){for(--L;++p[--R]>L;)if(p[R]=0,!R)++E,p=[1].concat(p)}for(C=p.length;!p[--C];);for(X0=0,N="";X0<=C;N+=B.charAt(p[X0++]));N=m(N,E,B.charAt(0))}return N}}(),S=function(){function U(v,L,A){var j,B,R,E,C=0,k=v.length,c=L%z,p=L/z|0;for(v=v.slice();k--;)R=v[k]%z,E=v[k]/z|0,j=p*R+E*c,B=c*R+j%z*z+C,C=(B/A|0)+(j/z|0)+p*E,v[k]=B%A;if(C)v=[C].concat(v);return v}function M(v,L,A,j){var B,R;if(A!=j)R=A>j?1:-1;else for(B=R=0;B<A;B++)if(v[B]!=L[B]){R=v[B]>L[B]?1:-1;break}return R}function N(v,L,A,j){var B=0;for(;A--;)v[A]-=B,B=v[A]<L[A]?1:0,v[A]=B*j+v[A]-L[A];for(;!v[0]&&v.length>1;v.splice(0,1));}return function(v,L,A,j,B){var R,E,C,k,c,p,Q0,X0,z0,e,Y0,D0,q1,H8,w8,l0,u4,E0=v.s==L.s?1:-1,M0=v.c,K0=L.c;if(!M0||!M0[0]||!K0||!K0[0])return new g(!v.s||!L.s||(M0?K0&&M0[0]==K0[0]:!K0)?NaN:M0&&M0[0]==0||!K0?E0*0:E0/0);if(X0=new g(E0),z0=X0.c=[],E=v.e-L.e,E0=A+E+1,!B)B=q,E=T(v.e/H)-T(L.e/H),E0=E0/H|0;for(C=0;K0[C]==(M0[C]||0);C++);if(K0[C]>(M0[C]||0))E--;if(E0<0)z0.push(1),k=!0;else{if(H8=M0.length,l0=K0.length,C=0,E0+=2,c=W(B/(K0[0]+1)),c>1)K0=U(K0,c,B),M0=U(M0,c,B),l0=K0.length,H8=M0.length;q1=l0,e=M0.slice(0,l0),Y0=e.length;for(;Y0<l0;e[Y0++]=0);if(u4=K0.slice(),u4=[0].concat(u4),w8=K0[0],K0[1]>=B/2)w8++;do{if(c=0,R=M(K0,e,l0,Y0),R<0){if(D0=e[0],l0!=Y0)D0=D0*B+(e[1]||0);if(c=W(D0/w8),c>1){if(c>=B)c=B-1;p=U(K0,c,B),Q0=p.length,Y0=e.length;while(M(p,e,Q0,Y0)==1)c--,N(p,l0<Q0?u4:K0,Q0,B),Q0=p.length,R=1}else{if(c==0)R=c=1;p=K0.slice(),Q0=p.length}if(Q0<Y0)p=[0].concat(p);if(N(e,p,Y0,B),Y0=e.length,R==-1)while(M(K0,e,l0,Y0)<1)c++,N(e,l0<Y0?u4:K0,Y0,B),Y0=e.length}else if(R===0)c++,e=[0];if(z0[C++]=c,e[0])e[Y0++]=M0[q1]||0;else e=[M0[q1]],Y0=1}while((q1++<H8||e[0]!=null)&&E0--);if(k=e[0]!=null,!z0[0])z0.splice(0,1)}if(B==q){for(C=1,E0=z0[0];E0>=10;E0/=10,C++);v0(X0,A+(X0.e=C+E*H-1)+1,j,k)}else X0.e=E,X0.r=+k;return X0}}();function K8(U,M,N,v){var L,A,j,B,R;if(N==null)N=t;else O(N,0,8);if(!U.c)return U.toString();if(L=U.c[0],j=U.e,M==null)R=I(U.c),R=v==1||v==2&&(j<=J0||j>=$0)?x(R,j):m(R,j,"0");else if(U=v0(new g(U),M,N),A=U.e,R=I(U.c),B=R.length,v==1||v==2&&(M<=A||A<=J0)){for(;B<M;R+="0",B++);R=x(R,A)}else if(M-=j+(v===2&&A>j),R=m(R,A,"0"),A+1>B){if(--M>0)for(R+=".";M--;R+="0");}else if(M+=A-B,M>0){if(A+1==B)R+=".";for(;M--;R+="0");}return U.s<0&&L?"-"+R:R}function xZ(U,M){var N,v,L=1,A=new g(U[0]);for(;L<U.length;L++)if(v=new g(U[L]),!v.s||(N=P(A,v))===M||N===0&&A.s===M)A=v;return A}function q8(U,M,N){var v=1,L=M.length;for(;!M[--L];M.pop());for(L=M[0];L>=10;L/=10,v++);if((N=v+N*H-1)>q0)U.c=U.e=null;else if(N<V0)U.c=[U.e=0];else U.e=N,U.c=M;return U}h=function(){var U=/^(-?)0([xbo])(?=\w[\w.]*$)/i,M=/^([^.]+)\.$/,N=/^\.([^.]+)$/,v=/^-?(Infinity|NaN)$/,L=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(A,j,B,R){var E,C=B?j:j.replace(L,"");if(v.test(C))A.s=isNaN(C)?null:C<0?-1:1;else{if(!B){if(C=C.replace(U,function(k,c,p){return E=(p=p.toLowerCase())=="x"?16:p=="b"?2:8,!R||R==E?c:k}),R)E=R,C=C.replace(M,"$1").replace(N,"0.$1");if(j!=C)return new g(C,E)}if(g.DEBUG)throw Error(J+"Not a"+(R?" base "+R:"")+" number: "+j);A.s=null}A.c=A.e=null}}();function v0(U,M,N,v){var L,A,j,B,R,E,C,k=U.c,c=F;if(k){Z:{for(L=1,B=k[0];B>=10;B/=10,L++);if(A=M-L,A<0)A+=H,j=M,R=k[E=0],C=W(R/c[L-j-1]%10);else if(E=Y((A+1)/H),E>=k.length)if(v){for(;k.length<=E;k.push(0));R=C=0,L=1,A%=H,j=A-H+1}else break Z;else{R=B=k[E];for(L=1;B>=10;B/=10,L++);A%=H,j=A-H+L,C=j<0?0:W(R/c[L-j-1]%10)}if(v=v||M<0||k[E+1]!=null||(j<0?R:R%c[L-j-1]),v=N<4?(C||v)&&(N==0||N==(U.s<0?3:2)):C>5||C==5&&(N==4||v||N==6&&(A>0?j>0?R/c[L-j]:0:k[E-1])%10&1||N==(U.s<0?8:7)),M<1||!k[0]){if(k.length=0,v)M-=U.e+1,k[0]=c[(H-M%H)%H],U.e=-M||0;else k[0]=U.e=0;return U}if(A==0)k.length=E,B=1,E--;else k.length=E+1,B=c[H-A],k[E]=j>0?W(R/c[L-j]%c[j])*B:0;if(v)for(;;)if(E==0){for(A=1,j=k[0];j>=10;j/=10,A++);j=k[0]+=B;for(B=1;j>=10;j/=10,B++);if(A!=B){if(U.e++,k[0]==q)k[0]=1}break}else{if(k[E]+=B,k[E]!=q)break;k[E--]=0,B=1}for(A=k.length;k[--A]===0;k.pop());}if(U.e>q0)U.c=U.e=null;else if(U.e<V0)U.c=[U.e=0]}return U}function n0(U){var M,N=U.e;if(N===null)return U.toString();return M=I(U.c),M=N<=J0||N>=$0?x(M,N):m(M,N,"0"),U.s<0?"-"+M:M}if(_.absoluteValue=_.abs=function(){var U=new g(this);if(U.s<0)U.s=1;return U},_.comparedTo=function(U,M){return P(this,new g(U,M))},_.decimalPlaces=_.dp=function(U,M){var N,v,L,A=this;if(U!=null){if(O(U,0,G),M==null)M=t;else O(M,0,8);return v0(new g(A),U+A.e+1,M)}if(!(N=A.c))return null;if(v=((L=N.length-1)-T(this.e/H))*H,L=N[L])for(;L%10==0;L/=10,v--);if(v<0)v=0;return v},_.dividedBy=_.div=function(U,M){return S(this,new g(U,M),o,t)},_.dividedToIntegerBy=_.idiv=function(U,M){return S(this,new g(U,M),0,1)},_.exponentiatedBy=_.pow=function(U,M){var N,v,L,A,j,B,R,E,C,k=this;if(U=new g(U),U.c&&!U.isInteger())throw Error(J+"Exponent not an integer: "+n0(U));if(M!=null)M=new g(M);if(B=U.e>14,!k.c||!k.c[0]||k.c[0]==1&&!k.e&&k.c.length==1||!U.c||!U.c[0])return C=new g(Math.pow(+n0(k),B?U.s*(2-y(U)):+n0(U))),M?C.mod(M):C;if(R=U.s<0,M){if(M.c?!M.c[0]:!M.s)return new g(NaN);if(v=!R&&k.isInteger()&&M.isInteger(),v)k=k.mod(M)}else if(U.e>9&&(k.e>0||k.e<-1||(k.e==0?k.c[0]>1||B&&k.c[1]>=240000000:k.c[0]<80000000000000||B&&k.c[0]<=99999750000000))){if(A=k.s<0&&y(U)?-0:0,k.e>-1)A=1/A;return new g(R?1/A:A)}else if(H0)A=Y(H0/H+2);if(B){if(N=new g(0.5),R)U.s=1;E=y(U)}else L=Math.abs(+n0(U)),E=L%2;C=new g(n);for(;;){if(E){if(C=C.times(k),!C.c)break;if(A){if(C.c.length>A)C.c.length=A}else if(v)C=C.mod(M)}if(L){if(L=W(L/2),L===0)break;E=L%2}else if(U=U.times(N),v0(U,U.e+1,1),U.e>14)E=y(U);else{if(L=+n0(U),L===0)break;E=L%2}if(k=k.times(k),A){if(k.c&&k.c.length>A)k.c.length=A}else if(v)k=k.mod(M)}if(v)return C;if(R)C=n.div(C);return M?C.mod(M):A?v0(C,H0,t,j):C},_.integerValue=function(U){var M=new g(this);if(U==null)U=t;else O(U,0,8);return v0(M,M.e+1,U)},_.isEqualTo=_.eq=function(U,M){return P(this,new g(U,M))===0},_.isFinite=function(){return!!this.c},_.isGreaterThan=_.gt=function(U,M){return P(this,new g(U,M))>0},_.isGreaterThanOrEqualTo=_.gte=function(U,M){return(M=P(this,new g(U,M)))===1||M===0},_.isInteger=function(){return!!this.c&&T(this.e/H)>this.c.length-2},_.isLessThan=_.lt=function(U,M){return P(this,new g(U,M))<0},_.isLessThanOrEqualTo=_.lte=function(U,M){return(M=P(this,new g(U,M)))===-1||M===0},_.isNaN=function(){return!this.s},_.isNegative=function(){return this.s<0},_.isPositive=function(){return this.s>0},_.isZero=function(){return!!this.c&&this.c[0]==0},_.minus=function(U,M){var N,v,L,A,j=this,B=j.s;if(U=new g(U,M),M=U.s,!B||!M)return new g(NaN);if(B!=M)return U.s=-M,j.plus(U);var R=j.e/H,E=U.e/H,C=j.c,k=U.c;if(!R||!E){if(!C||!k)return C?(U.s=-M,U):new g(k?j:NaN);if(!C[0]||!k[0])return k[0]?(U.s=-M,U):new g(C[0]?j:t==3?-0:0)}if(R=T(R),E=T(E),C=C.slice(),B=R-E){if(A=B<0)B=-B,L=C;else E=R,L=k;L.reverse();for(M=B;M--;L.push(0));L.reverse()}else{v=(A=(B=C.length)<(M=k.length))?B:M;for(B=M=0;M<v;M++)if(C[M]!=k[M]){A=C[M]<k[M];break}}if(A)L=C,C=k,k=L,U.s=-U.s;if(M=(v=k.length)-(N=C.length),M>0)for(;M--;C[N++]=0);M=q-1;for(;v>B;){if(C[--v]<k[v]){for(N=v;N&&!C[--N];C[N]=M);--C[N],C[v]+=q}C[v]-=k[v]}for(;C[0]==0;C.splice(0,1),--E);if(!C[0])return U.s=t==3?-1:1,U.c=[U.e=0],U;return q8(U,C,E)},_.modulo=_.mod=function(U,M){var N,v,L=this;if(U=new g(U,M),!L.c||!U.s||U.c&&!U.c[0])return new g(NaN);else if(!U.c||L.c&&!L.c[0])return new g(L);if(R0==9)v=U.s,U.s=1,N=S(L,U,0,3),U.s=v,N.s*=v;else N=S(L,U,0,R0);if(U=L.minus(N.times(U)),!U.c[0]&&R0==1)U.s=L.s;return U},_.multipliedBy=_.times=function(U,M){var N,v,L,A,j,B,R,E,C,k,c,p,Q0,X0,z0,e=this,Y0=e.c,D0=(U=new g(U,M)).c;if(!Y0||!D0||!Y0[0]||!D0[0]){if(!e.s||!U.s||Y0&&!Y0[0]&&!D0||D0&&!D0[0]&&!Y0)U.c=U.e=U.s=null;else if(U.s*=e.s,!Y0||!D0)U.c=U.e=null;else U.c=[0],U.e=0;return U}if(v=T(e.e/H)+T(U.e/H),U.s*=e.s,R=Y0.length,k=D0.length,R<k)Q0=Y0,Y0=D0,D0=Q0,L=R,R=k,k=L;for(L=R+k,Q0=[];L--;Q0.push(0));X0=q,z0=z;for(L=k;--L>=0;){N=0,c=D0[L]%z0,p=D0[L]/z0|0;for(j=R,A=L+j;A>L;)E=Y0[--j]%z0,C=Y0[j]/z0|0,B=p*E+C*c,E=c*E+B%z0*z0+Q0[A]+N,N=(E/X0|0)+(B/z0|0)+p*C,Q0[A--]=E%X0;Q0[A]=N}if(N)++v;else Q0.splice(0,1);return q8(U,Q0,v)},_.negated=function(){var U=new g(this);return U.s=-U.s||null,U},_.plus=function(U,M){var N,v=this,L=v.s;if(U=new g(U,M),M=U.s,!L||!M)return new g(NaN);if(L!=M)return U.s=-M,v.minus(U);var A=v.e/H,j=U.e/H,B=v.c,R=U.c;if(!A||!j){if(!B||!R)return new g(L/0);if(!B[0]||!R[0])return R[0]?U:new g(B[0]?v:L*0)}if(A=T(A),j=T(j),B=B.slice(),L=A-j){if(L>0)j=A,N=R;else L=-L,N=B;N.reverse();for(;L--;N.push(0));N.reverse()}if(L=B.length,M=R.length,L-M<0)N=R,R=B,B=N,M=L;for(L=0;M;)L=(B[--M]=B[M]+R[M]+L)/q|0,B[M]=q===B[M]?0:B[M]%q;if(L)B=[L].concat(B),++j;return q8(U,B,j)},_.precision=_.sd=function(U,M){var N,v,L,A=this;if(U!=null&&U!==!!U){if(O(U,1,G),M==null)M=t;else O(M,0,8);return v0(new g(A),U,M)}if(!(N=A.c))return null;if(L=N.length-1,v=L*H+1,L=N[L]){for(;L%10==0;L/=10,v--);for(L=N[0];L>=10;L/=10,v++);}if(U&&A.e+1>v)v=A.e+1;return v},_.shiftedBy=function(U){return O(U,-w,w),this.times("1e"+U)},_.squareRoot=_.sqrt=function(){var U,M,N,v,L,A=this,j=A.c,B=A.s,R=A.e,E=o+4,C=new g("0.5");if(B!==1||!j||!j[0])return new g(!B||B<0&&(!j||j[0])?NaN:j?A:1/0);if(B=Math.sqrt(+n0(A)),B==0||B==1/0){if(M=I(j),(M.length+R)%2==0)M+="0";if(B=Math.sqrt(+M),R=T((R+1)/2)-(R<0||R%2),B==1/0)M="5e"+R;else M=B.toExponential(),M=M.slice(0,M.indexOf("e")+1)+R;N=new g(M)}else N=new g(B+"");if(N.c[0]){if(R=N.e,B=R+E,B<3)B=0;for(;;)if(L=N,N=C.times(L.plus(S(A,L,E,1))),I(L.c).slice(0,B)===(M=I(N.c)).slice(0,B)){if(N.e<R)--B;if(M=M.slice(B-3,B+1),M=="9999"||!v&&M=="4999"){if(!v){if(v0(L,L.e+o+2,0),L.times(L).eq(A)){N=L;break}}E+=4,B+=4,v=1}else{if(!+M||!+M.slice(1)&&M.charAt(0)=="5")v0(N,N.e+o+2,1),U=!N.times(N).eq(A);break}}}return v0(N,N.e+o+1,t,U)},_.toExponential=function(U,M){if(U!=null)O(U,0,G),U++;return K8(this,U,M,1)},_.toFixed=function(U,M){if(U!=null)O(U,0,G),U=U+this.e+1;return K8(this,U,M)},_.toFormat=function(U,M,N){var v,L=this;if(N==null)if(U!=null&&M&&typeof M=="object")N=M,M=null;else if(U&&typeof U=="object")N=U,U=M=null;else N=H4;else if(typeof N!="object")throw Error(J+"Argument not an object: "+N);if(v=L.toFixed(U,M),L.c){var A,j=v.split("."),B=+N.groupSize,R=+N.secondaryGroupSize,E=N.groupSeparator||"",C=j[0],k=j[1],c=L.s<0,p=c?C.slice(1):C,Q0=p.length;if(R)A=B,B=R,R=A,Q0-=A;if(B>0&&Q0>0){A=Q0%B||B,C=p.substr(0,A);for(;A<Q0;A+=B)C+=E+p.substr(A,B);if(R>0)C+=E+p.slice(A);if(c)C="-"+C}v=k?C+(N.decimalSeparator||"")+((R=+N.fractionGroupSize)?k.replace(new RegExp("\\d{"+R+"}\\B","g"),"$&"+(N.fractionGroupSeparator||"")):k):C}return(N.prefix||"")+v+(N.suffix||"")},_.toFraction=function(U){var M,N,v,L,A,j,B,R,E,C,k,c,p=this,Q0=p.c;if(U!=null){if(B=new g(U),!B.isInteger()&&(B.c||B.s!==1)||B.lt(n))throw Error(J+"Argument "+(B.isInteger()?"out of range: ":"not an integer: ")+n0(B))}if(!Q0)return new g(p);M=new g(n),E=N=new g(n),v=R=new g(n),c=I(Q0),A=M.e=c.length-p.e-1,M.c[0]=F[(j=A%H)<0?H+j:j],U=!U||B.comparedTo(M)>0?A>0?M:E:B,j=q0,q0=1/0,B=new g(c),R.c[0]=0;for(;;){if(C=S(B,M,0,1),L=N.plus(C.times(v)),L.comparedTo(U)==1)break;N=v,v=L,E=R.plus(C.times(L=E)),R=L,M=B.minus(C.times(L=M)),B=L}return L=S(U.minus(N),v,0,1),R=R.plus(L.times(E)),N=N.plus(L.times(v)),R.s=E.s=p.s,A=A*2,k=S(E,v,A,t).minus(p).abs().comparedTo(S(R,N,A,t).minus(p).abs())<1?[E,v]:[R,N],q0=j,k},_.toNumber=function(){return+n0(this)},_.toPrecision=function(U,M){if(U!=null)O(U,1,G);return K8(this,U,M,2)},_.toString=function(U){var M,N=this,v=N.s,L=N.e;if(L===null)if(v){if(M="Infinity",v<0)M="-"+M}else M="NaN";else{if(U==null)M=L<=J0||L>=$0?x(I(N.c),L):m(I(N.c),L,"0");else if(U===10&&X8)N=v0(new g(N),o+L+1,t),M=m(I(N.c),N.e,"0");else O(U,2,w4.length,"Base"),M=d(m(I(N.c),L,"0"),10,U,v,!0);if(v<0&&N.c[0])M="-"+M}return M},_.valueOf=_.toJSON=function(){return n0(this)},_._isBigNumber=!0,f!=null)g.set(f);return g}function T(f){var S=f|0;return f>0||f===S?S:S-1}function I(f){var S,d,h=1,_=f.length,n=f[0]+"";for(;h<_;){S=f[h++]+"",d=H-S.length;for(;d--;S="0"+S);n+=S}for(_=n.length;n.charCodeAt(--_)===48;);return n.slice(0,_+1||1)}function P(f,S){var d,h,_=f.c,n=S.c,o=f.s,t=S.s,J0=f.e,$0=S.e;if(!o||!t)return null;if(d=_&&!_[0],h=n&&!n[0],d||h)return d?h?0:-t:o;if(o!=t)return o;if(d=o<0,h=J0==$0,!_||!n)return h?0:!_^d?1:-1;if(!h)return J0>$0^d?1:-1;t=(J0=_.length)<($0=n.length)?J0:$0;for(o=0;o<t;o++)if(_[o]!=n[o])return _[o]>n[o]^d?1:-1;return J0==$0?0:J0>$0^d?1:-1}function O(f,S,d,h){if(f<S||f>d||f!==W(f))throw Error(J+(h||"Argument")+(typeof f=="number"?f<S||f>d?" out of range: ":" not an integer: ":" not a primitive number: ")+String(f))}function y(f){var S=f.c.length-1;return T(f.e/H)==S&&f.c[S]%2!=0}function x(f,S){return(f.length>1?f.charAt(0)+"."+f.slice(1):f)+(S<0?"e":"e+")+S}function m(f,S,d){var h,_;if(S<0){for(_=d+".";++S;_+=d);f=_+f}else if(h=f.length,++S>h){for(_=d,S-=h;--S;_+=d);f+=_}else if(S<h)f=f.slice(0,S)+"."+f.slice(S);return f}if($=D(),$.default=$.BigNumber=$,typeof define=="function"&&define.amd)define(function(){return $});else if(typeof z1<"u"&&z1.exports)z1.exports=$;else{if(!Z)Z=typeof self<"u"&&self?self:window;Z.BigNumber=$}})(F$)});var M$=b((qD,D$)=>{var G$=T8(),U$=qD;(function(){function Z(w){return w<10?"0"+w:w}var $=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,Q=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,Y,W,J={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':"\\\"","\\":"\\\\"},K;function q(w){return Q.lastIndex=0,Q.test(w)?'"'+w.replace(Q,function(F){var z=J[F];return typeof z==="string"?z:"\\u"+("0000"+F.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+w+'"'}function H(w,F){var z,G,D,T,I=Y,P,O=F[w],y=O!=null&&(O instanceof G$||G$.isBigNumber(O));if(O&&typeof O==="object"&&typeof O.toJSON==="function")O=O.toJSON(w);if(typeof K==="function")O=K.call(F,w,O);switch(typeof O){case"string":if(y)return O;else return q(O);case"number":return isFinite(O)?String(O):"null";case"boolean":case"null":case"bigint":return String(O);case"object":if(!O)return"null";if(Y+=W,P=[],Object.prototype.toString.apply(O)==="[object Array]"){T=O.length;for(z=0;z<T;z+=1)P[z]=H(z,O)||"null";return D=P.length===0?"[]":Y?`[
8
- `+Y+P.join(`,
9
- `+Y)+`
10
- `+I+"]":"["+P.join(",")+"]",Y=I,D}if(K&&typeof K==="object"){T=K.length;for(z=0;z<T;z+=1)if(typeof K[z]==="string"){if(G=K[z],D=H(G,O),D)P.push(q(G)+(Y?": ":":")+D)}}else Object.keys(O).forEach(function(x){var m=H(x,O);if(m)P.push(q(x)+(Y?": ":":")+m)});return D=P.length===0?"{}":Y?`{
11
- `+Y+P.join(`,
12
- `+Y)+`
13
- `+I+"}":"{"+P.join(",")+"}",Y=I,D}}if(typeof U$.stringify!=="function")U$.stringify=function(w,F,z){var G;if(Y="",W="",typeof z==="number")for(G=0;G<z;G+=1)W+=" ";else if(typeof z==="string")W=z;if(K=F,F&&typeof F!=="function"&&(typeof F!=="object"||typeof F.length!=="number"))throw Error("JSON.stringify");return H("",{"":w})}})()});var N$=b((HD,I$)=>{var F1=null,J7=/(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])/,X7=/(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)/,K7=function(Z){var $={strict:!1,storeAsString:!1,alwaysParseAsBig:!1,useNativeBigInt:!1,protoAction:"error",constructorAction:"error"};if(Z!==void 0&&Z!==null){if(Z.strict===!0)$.strict=!0;if(Z.storeAsString===!0)$.storeAsString=!0;if($.alwaysParseAsBig=Z.alwaysParseAsBig===!0?Z.alwaysParseAsBig:!1,$.useNativeBigInt=Z.useNativeBigInt===!0?Z.useNativeBigInt:!1,typeof Z.constructorAction<"u")if(Z.constructorAction==="error"||Z.constructorAction==="ignore"||Z.constructorAction==="preserve")$.constructorAction=Z.constructorAction;else throw Error(`Incorrect value for constructorAction option, must be "error", "ignore" or undefined but passed ${Z.constructorAction}`);if(typeof Z.protoAction<"u")if(Z.protoAction==="error"||Z.protoAction==="ignore"||Z.protoAction==="preserve")$.protoAction=Z.protoAction;else throw Error(`Incorrect value for protoAction option, must be "error", "ignore" or undefined but passed ${Z.protoAction}`)}var Q,Y,W={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
14
- `,r:"\r",t:"\t"},J,K=function(I){throw{name:"SyntaxError",message:I,at:Q,text:J}},q=function(I){if(I&&I!==Y)K("Expected '"+I+"' instead of '"+Y+"'");return Y=J.charAt(Q),Q+=1,Y},H=function(){var I,P="";if(Y==="-")P="-",q("-");while(Y>="0"&&Y<="9")P+=Y,q();if(Y==="."){P+=".";while(q()&&Y>="0"&&Y<="9")P+=Y}if(Y==="e"||Y==="E"){if(P+=Y,q(),Y==="-"||Y==="+")P+=Y,q();while(Y>="0"&&Y<="9")P+=Y,q()}if(I=+P,!isFinite(I))K("Bad number");else{if(F1==null)F1=T8();if(P.length>15)return $.storeAsString?P:$.useNativeBigInt?BigInt(P):new F1(P);else return!$.alwaysParseAsBig?I:$.useNativeBigInt?BigInt(I):new F1(I)}},w=function(){var I,P,O="",y;if(Y==='"'){var x=Q;while(q()){if(Y==='"'){if(Q-1>x)O+=J.substring(x,Q-1);return q(),O}if(Y==="\\"){if(Q-1>x)O+=J.substring(x,Q-1);if(q(),Y==="u"){y=0;for(P=0;P<4;P+=1){if(I=parseInt(q(),16),!isFinite(I))break;y=y*16+I}O+=String.fromCharCode(y)}else if(typeof W[Y]==="string")O+=W[Y];else break;x=Q}}}K("Bad string")},F=function(){while(Y&&Y<=" ")q()},z=function(){switch(Y){case"t":return q("t"),q("r"),q("u"),q("e"),!0;case"f":return q("f"),q("a"),q("l"),q("s"),q("e"),!1;case"n":return q("n"),q("u"),q("l"),q("l"),null}K("Unexpected '"+Y+"'")},G,D=function(){var I=[];if(Y==="["){if(q("["),F(),Y==="]")return q("]"),I;while(Y){if(I.push(G()),F(),Y==="]")return q("]"),I;q(","),F()}}K("Bad array")},T=function(){var I,P=Object.create(null);if(Y==="{"){if(q("{"),F(),Y==="}")return q("}"),P;while(Y){if(I=w(),F(),q(":"),$.strict===!0&&Object.hasOwnProperty.call(P,I))K('Duplicate key "'+I+'"');if(J7.test(I)===!0)if($.protoAction==="error")K("Object contains forbidden prototype property");else if($.protoAction==="ignore")G();else P[I]=G();else if(X7.test(I)===!0)if($.constructorAction==="error")K("Object contains forbidden constructor property");else if($.constructorAction==="ignore")G();else P[I]=G();else P[I]=G();if(F(),Y==="}")return q("}"),P;q(","),F()}}K("Bad object")};return G=function(){switch(F(),Y){case"{":return T();case"[":return D();case'"':return w();case"-":return H();default:return Y>="0"&&Y<="9"?H():z()}},function(I,P){var O;if(J=I+"",Q=0,Y=" ",O=G(),F(),Y)K("Syntax error");return typeof P==="function"?function y(x,m){var f,S,d=x[m];if(d&&typeof d==="object")Object.keys(d).forEach(function(h){if(S=y(d,h),S!==void 0)d[h]=S;else delete d[h]});return P.call(x,m,d)}({"":O},""):O}};I$.exports=K7});var L$=b((wD,G1)=>{var T$=M$().stringify,B$=N$();G1.exports=function(Z){return{parse:B$(Z),stringify:T$}};G1.exports.parse=B$();G1.exports.stringify=T$});var B8=b((E$)=>{Object.defineProperty(E$,"__esModule",{value:!0});E$.GCE_LINUX_BIOS_PATHS=void 0;E$.isGoogleCloudServerless=P$;E$.isGoogleComputeEngineLinux=S$;E$.isGoogleComputeEngineMACAddress=C$;E$.isGoogleComputeEngine=v$;E$.detectGCPResidency=H7;var R$=a("fs"),A$=a("os");E$.GCE_LINUX_BIOS_PATHS={BIOS_DATE:"/sys/class/dmi/id/bios_date",BIOS_VENDOR:"/sys/class/dmi/id/bios_vendor"};var q7=/^42:01/;function P$(){return!!(process.env.CLOUD_RUN_JOB||process.env.FUNCTION_NAME||process.env.K_SERVICE)}function S$(){if((0,A$.platform)()!=="linux")return!1;try{(0,R$.statSync)(E$.GCE_LINUX_BIOS_PATHS.BIOS_DATE);let Z=(0,R$.readFileSync)(E$.GCE_LINUX_BIOS_PATHS.BIOS_VENDOR,"utf8");return/Google/.test(Z)}catch{return!1}}function C$(){let Z=(0,A$.networkInterfaces)();for(let $ of Object.values(Z)){if(!$)continue;for(let{mac:Q}of $)if(q7.test(Q))return!0}return!1}function v$(){return S$()||C$()}function H7(){return P$()||v$()}});var _$=b((O$)=>{Object.defineProperty(O$,"__esModule",{value:!0});O$.Colours=void 0;class s{static isEnabled(Z){return Z&&Z.isTTY&&(typeof Z.getColorDepth==="function"?Z.getColorDepth()>2:!0)}static refresh(){if(s.enabled=s.isEnabled(process===null||process===void 0?void 0:process.stderr),!this.enabled)s.reset="",s.bright="",s.dim="",s.red="",s.green="",s.yellow="",s.blue="",s.magenta="",s.cyan="",s.white="",s.grey="";else s.reset="\x1B[0m",s.bright="\x1B[1m",s.dim="\x1B[2m",s.red="\x1B[31m",s.green="\x1B[32m",s.yellow="\x1B[33m",s.blue="\x1B[34m",s.magenta="\x1B[35m",s.cyan="\x1B[36m",s.white="\x1B[37m",s.grey="\x1B[90m"}}O$.Colours=s;s.enabled=!1;s.reset="";s.bright="";s.dim="";s.red="";s.green="";s.yellow="";s.blue="";s.magenta="";s.cyan="";s.white="";s.grey="";s.refresh()});var b$=b((W0)=>{var D7=W0&&W0.__createBinding||(Object.create?function(Z,$,Q,Y){if(Y===void 0)Y=Q;var W=Object.getOwnPropertyDescriptor($,Q);if(!W||("get"in W?!$.__esModule:W.writable||W.configurable))W={enumerable:!0,get:function(){return $[Q]}};Object.defineProperty(Z,Y,W)}:function(Z,$,Q,Y){if(Y===void 0)Y=Q;Z[Y]=$[Q]}),M7=W0&&W0.__setModuleDefault||(Object.create?function(Z,$){Object.defineProperty(Z,"default",{enumerable:!0,value:$})}:function(Z,$){Z.default=$}),h$=W0&&W0.__importStar||function(){var Z=function($){return Z=Object.getOwnPropertyNames||function(Q){var Y=[];for(var W in Q)if(Object.prototype.hasOwnProperty.call(Q,W))Y[Y.length]=W;return Y},Z($)};return function($){if($&&$.__esModule)return $;var Q={};if($!=null){for(var Y=Z($),W=0;W<Y.length;W++)if(Y[W]!=="default")D7(Q,$,Y[W])}return M7(Q,$),Q}}();Object.defineProperty(W0,"__esModule",{value:!0});W0.env=W0.DebugLogBackendBase=W0.placeholder=W0.AdhocDebugLogger=W0.LogSeverity=void 0;W0.getNodeBackend=L8;W0.getDebugBackend=N7;W0.getStructuredBackend=T7;W0.setBackend=B7;W0.log=g$;var I7=a("events"),d4=h$(a("process")),k$=h$(a("util")),A0=_$(),y0;(function(Z){Z.DEFAULT="DEFAULT",Z.DEBUG="DEBUG",Z.INFO="INFO",Z.WARNING="WARNING",Z.ERROR="ERROR"})(y0||(W0.LogSeverity=y0={}));class D1 extends I7.EventEmitter{constructor(Z,$){super();this.namespace=Z,this.upstream=$,this.func=Object.assign(this.invoke.bind(this),{instance:this,on:(Q,Y)=>this.on(Q,Y)}),this.func.debug=(...Q)=>this.invokeSeverity(y0.DEBUG,...Q),this.func.info=(...Q)=>this.invokeSeverity(y0.INFO,...Q),this.func.warn=(...Q)=>this.invokeSeverity(y0.WARNING,...Q),this.func.error=(...Q)=>this.invokeSeverity(y0.ERROR,...Q),this.func.sublog=(Q)=>g$(Q,this.func)}invoke(Z,...$){if(this.upstream)try{this.upstream(Z,...$)}catch(Q){}try{this.emit("log",Z,$)}catch(Q){}}invokeSeverity(Z,...$){this.invoke({severity:Z},...$)}}W0.AdhocDebugLogger=D1;W0.placeholder=new D1("",()=>{}).func;class l4{constructor(){var Z;this.cached=new Map,this.filters=[],this.filtersSet=!1;let $=(Z=d4.env[W0.env.nodeEnables])!==null&&Z!==void 0?Z:"*";if($==="all")$="*";this.filters=$.split(",")}log(Z,$,...Q){try{if(!this.filtersSet)this.setFilters(),this.filtersSet=!0;let Y=this.cached.get(Z);if(!Y)Y=this.makeLogger(Z),this.cached.set(Z,Y);Y($,...Q)}catch(Y){console.error(Y)}}}W0.DebugLogBackendBase=l4;class y$ extends l4{constructor(){super(...arguments);this.enabledRegexp=/.*/g}isEnabled(Z){return this.enabledRegexp.test(Z)}makeLogger(Z){if(!this.enabledRegexp.test(Z))return()=>{};return($,...Q)=>{var Y;let W=`${A0.Colours.green}${Z}${A0.Colours.reset}`,J=`${A0.Colours.yellow}${d4.pid}${A0.Colours.reset}`,K;switch($.severity){case y0.ERROR:K=`${A0.Colours.red}${$.severity}${A0.Colours.reset}`;break;case y0.INFO:K=`${A0.Colours.magenta}${$.severity}${A0.Colours.reset}`;break;case y0.WARNING:K=`${A0.Colours.yellow}${$.severity}${A0.Colours.reset}`;break;default:K=(Y=$.severity)!==null&&Y!==void 0?Y:y0.DEFAULT;break}let q=k$.formatWithOptions({colors:A0.Colours.enabled},...Q),H=Object.assign({},$);delete H.severity;let w=Object.getOwnPropertyNames(H).length?JSON.stringify(H):"",F=w?`${A0.Colours.grey}${w}${A0.Colours.reset}`:"";console.error("%s [%s|%s] %s%s",J,W,K,q,w?` ${F}`:"")}}setFilters(){let $=this.filters.join(",").replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^");this.enabledRegexp=new RegExp(`^${$}$`,"i")}}function L8(){return new y$}class x$ extends l4{constructor(Z){super();this.debugPkg=Z}makeLogger(Z){let $=this.debugPkg(Z);return(Q,...Y)=>{$(Y[0],...Y.slice(1))}}setFilters(){var Z;let $=(Z=d4.env.NODE_DEBUG)!==null&&Z!==void 0?Z:"";d4.env.NODE_DEBUG=`${$}${$?",":""}${this.filters.join(",")}`}}function N7(Z){return new x$(Z)}class f$ extends l4{constructor(Z){var $;super();this.upstream=($=Z)!==null&&$!==void 0?$:void 0}makeLogger(Z){var $;let Q=($=this.upstream)===null||$===void 0?void 0:$.makeLogger(Z);return(Y,...W)=>{var J;let K=(J=Y.severity)!==null&&J!==void 0?J:y0.INFO,q=Object.assign({severity:K,message:k$.format(...W)},Y),H=JSON.stringify(q);if(Q)Q(Y,H);else console.log("%s",H)}}setFilters(){var Z;(Z=this.upstream)===null||Z===void 0||Z.setFilters()}}function T7(Z){return new f$(Z)}W0.env={nodeEnables:"GOOGLE_SDK_NODE_LOGGING"};var R8=new Map,P0=void 0;function B7(Z){P0=Z,R8.clear()}function g$(Z,$){if(!P0){if(!d4.env[W0.env.nodeEnables])return W0.placeholder}if(!Z)return W0.placeholder;if($)Z=`${$.instance.namespace}:${Z}`;let Q=R8.get(Z);if(Q)return Q.func;if(P0===null)return W0.placeholder;else if(P0===void 0)P0=L8();let Y=(()=>{let W=void 0;return new D1(Z,(K,...q)=>{if(W!==P0){if(P0===null)return;else if(P0===void 0)P0=L8();W=P0}P0===null||P0===void 0||P0.log(Z,K,...q)})})();return R8.set(Z,Y),Y.func}});var A8=b((F4)=>{var L7=F4&&F4.__createBinding||(Object.create?function(Z,$,Q,Y){if(Y===void 0)Y=Q;var W=Object.getOwnPropertyDescriptor($,Q);if(!W||("get"in W?!$.__esModule:W.writable||W.configurable))W={enumerable:!0,get:function(){return $[Q]}};Object.defineProperty(Z,Y,W)}:function(Z,$,Q,Y){if(Y===void 0)Y=Q;Z[Y]=$[Q]}),R7=F4&&F4.__exportStar||function(Z,$){for(var Q in Z)if(Q!=="default"&&!Object.prototype.hasOwnProperty.call($,Q))L7($,Z,Q)};Object.defineProperty(F4,"__esModule",{value:!0});R7(b$(),F4)});var p4=b((i)=>{var u$=i&&i.__createBinding||(Object.create?function(Z,$,Q,Y){if(Y===void 0)Y=Q;var W=Object.getOwnPropertyDescriptor($,Q);if(!W||("get"in W?!$.__esModule:W.writable||W.configurable))W={enumerable:!0,get:function(){return $[Q]}};Object.defineProperty(Z,Y,W)}:function(Z,$,Q,Y){if(Y===void 0)Y=Q;Z[Y]=$[Q]}),A7=i&&i.__setModuleDefault||(Object.create?function(Z,$){Object.defineProperty(Z,"default",{enumerable:!0,value:$})}:function(Z,$){Z.default=$}),P7=i&&i.__importStar||function(){var Z=function($){return Z=Object.getOwnPropertyNames||function(Q){var Y=[];for(var W in Q)if(Object.prototype.hasOwnProperty.call(Q,W))Y[Y.length]=W;return Y},Z($)};return function($){if($&&$.__esModule)return $;var Q={};if($!=null){for(var Y=Z($),W=0;W<Y.length;W++)if(Y[W]!=="default")u$(Q,$,Y[W])}return A7(Q,$),Q}}(),S7=i&&i.__exportStar||function(Z,$){for(var Q in Z)if(Q!=="default"&&!Object.prototype.hasOwnProperty.call($,Q))u$($,Z,Q)};Object.defineProperty(i,"__esModule",{value:!0});i.gcpResidencyCache=i.METADATA_SERVER_DETECTION=i.HEADERS=i.HEADER_VALUE=i.HEADER_NAME=i.SECONDARY_HOST_ADDRESS=i.HOST_ADDRESS=i.BASE_PATH=void 0;i.instance=_7;i.project=h7;i.universe=k7;i.bulk=y7;i.isAvailable=f7;i.resetIsAvailableCache=g7;i.getGCPResidency=C8;i.setGCPResidency=d$;i.requestTimeout=l$;var P8=G0(),C7=L$(),v7=B8(),E7=P7(A8());i.BASE_PATH="/computeMetadata/v1";i.HOST_ADDRESS="http://169.254.169.254";i.SECONDARY_HOST_ADDRESS="http://metadata.google.internal.";i.HEADER_NAME="Metadata-Flavor";i.HEADER_VALUE="Google";i.HEADERS=Object.freeze({[i.HEADER_NAME]:i.HEADER_VALUE});var m$=E7.log("gcp-metadata");i.METADATA_SERVER_DETECTION=Object.freeze({"assume-present":"don't try to ping the metadata server, but assume it's present",none:"don't try to ping the metadata server, but don't try to use it either","bios-only":"treat the result of a BIOS probe as canonical (don't fall back to pinging)","ping-only":"skip the BIOS probe, and go straight to pinging"});function S8(Z){if(!Z)Z=process.env.GCE_METADATA_IP||process.env.GCE_METADATA_HOST||i.HOST_ADDRESS;if(!/^https?:\/\//.test(Z))Z=`http://${Z}`;return new URL(i.BASE_PATH,Z).href}function O7(Z){Object.keys(Z).forEach(($)=>{switch($){case"params":case"property":case"headers":break;case"qs":throw Error("'qs' is not a valid configuration option. Please use 'params' instead.");default:throw Error(`'${$}' is not a valid configuration option.`)}})}async function c4(Z,$={},Q=3,Y=!1){let W=new Headers(i.HEADERS),J="",K={};if(typeof Z==="object"){let z=Z;new Headers(z.headers).forEach((G,D)=>W.set(D,G)),J=z.metadataKey,K=z.params||K,Q=z.noResponseRetries||Q,Y=z.fastFail||Y}else J=Z;if(typeof $==="string")J+=`/${$}`;else{if(O7($),$.property)J+=`/${$.property}`;new Headers($.headers).forEach((z,G)=>W.set(G,z)),K=$.params||K}let q=Y?j7:P8.request,H={url:`${S8()}/${J}`,headers:W,retryConfig:{noResponseRetries:Q},params:K,responseType:"text",timeout:l$()};m$.info("instance request %j",H);let w=await q(H);m$.info("instance metadata is %s",w.data);let F=w.headers.get(i.HEADER_NAME);if(F!==i.HEADER_VALUE)throw RangeError(`Invalid response from metadata service: incorrect ${i.HEADER_NAME} header. Expected '${i.HEADER_VALUE}', got ${F?`'${F}'`:"no header"}`);if(typeof w.data==="string")try{return C7.parse(w.data)}catch{}return w.data}async function j7(Z){let $={...Z,url:Z.url?.toString().replace(S8(),S8(i.SECONDARY_HOST_ADDRESS))},Q=(0,P8.request)(Z),Y=(0,P8.request)($);return Promise.any([Q,Y])}function _7(Z){return c4("instance",Z)}function h7(Z){return c4("project",Z)}function k7(Z){return c4("universe",Z)}async function y7(Z){let $={};return await Promise.all(Z.map((Q)=>{return(async()=>{let Y=await c4(Q),W=Q.metadataKey;$[W]=Y})()})),$}function x7(){return process.env.DETECT_GCP_RETRIES?Number(process.env.DETECT_GCP_RETRIES):0}var M1;async function f7(){if(process.env.METADATA_SERVER_DETECTION){let Z=process.env.METADATA_SERVER_DETECTION.trim().toLocaleLowerCase();if(!(Z in i.METADATA_SERVER_DETECTION))throw RangeError(`Unknown \`METADATA_SERVER_DETECTION\` env variable. Got \`${Z}\`, but it should be \`${Object.keys(i.METADATA_SERVER_DETECTION).join("`, `")}\`, or unset`);switch(Z){case"assume-present":return!0;case"none":return!1;case"bios-only":return C8();case"ping-only":}}try{if(M1===void 0)M1=c4("instance",void 0,x7(),!(process.env.GCE_METADATA_IP||process.env.GCE_METADATA_HOST));return await M1,!0}catch(Z){let $=Z;if(process.env.DEBUG_AUTH)console.info($);if($.type==="request-timeout")return!1;if($.response&&$.response.status===404)return!1;else{if(!($.response&&$.response.status===404)&&(!$.code||!["EHOSTDOWN","EHOSTUNREACH","ENETUNREACH","ENOENT","ENOTFOUND","ECONNREFUSED"].includes($.code.toString()))){let Q="UNKNOWN";if($.code)Q=$.code.toString();process.emitWarning(`received unexpected error = ${$.message} code = ${Q}`,"MetadataLookupWarning")}return!1}}}function g7(){M1=void 0}i.gcpResidencyCache=null;function C8(){if(i.gcpResidencyCache===null)d$();return i.gcpResidencyCache}function d$(Z=null){i.gcpResidencyCache=Z!==null?Z:(0,v7.detectGCPResidency)()}function l$(){return C8()?0:3000}S7(B8(),i)});var p$=b((i7)=>{i7.byteLength=m7;i7.toByteArray=d7;i7.fromByteArray=p7;var c0=[],_0=[],b7=typeof Uint8Array<"u"?Uint8Array:Array,v8="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for($4=0,E8=v8.length;$4<E8;++$4)c0[$4]=v8[$4],_0[v8.charCodeAt($4)]=$4;var $4,E8;_0[45]=62;_0[95]=63;function c$(Z){var $=Z.length;if($%4>0)throw Error("Invalid string. Length must be a multiple of 4");var Q=Z.indexOf("=");if(Q===-1)Q=$;var Y=Q===$?0:4-Q%4;return[Q,Y]}function m7(Z){var $=c$(Z),Q=$[0],Y=$[1];return(Q+Y)*3/4-Y}function u7(Z,$,Q){return($+Q)*3/4-Q}function d7(Z){var $,Q=c$(Z),Y=Q[0],W=Q[1],J=new b7(u7(Z,Y,W)),K=0,q=W>0?Y-4:Y,H;for(H=0;H<q;H+=4)$=_0[Z.charCodeAt(H)]<<18|_0[Z.charCodeAt(H+1)]<<12|_0[Z.charCodeAt(H+2)]<<6|_0[Z.charCodeAt(H+3)],J[K++]=$>>16&255,J[K++]=$>>8&255,J[K++]=$&255;if(W===2)$=_0[Z.charCodeAt(H)]<<2|_0[Z.charCodeAt(H+1)]>>4,J[K++]=$&255;if(W===1)$=_0[Z.charCodeAt(H)]<<10|_0[Z.charCodeAt(H+1)]<<4|_0[Z.charCodeAt(H+2)]>>2,J[K++]=$>>8&255,J[K++]=$&255;return J}function l7(Z){return c0[Z>>18&63]+c0[Z>>12&63]+c0[Z>>6&63]+c0[Z&63]}function c7(Z,$,Q){var Y,W=[];for(var J=$;J<Q;J+=3)Y=(Z[J]<<16&16711680)+(Z[J+1]<<8&65280)+(Z[J+2]&255),W.push(l7(Y));return W.join("")}function p7(Z){var $,Q=Z.length,Y=Q%3,W=[],J=16383;for(var K=0,q=Q-Y;K<q;K+=J)W.push(c7(Z,K,K+J>q?q:K+J));if(Y===1)$=Z[Q-1],W.push(c0[$>>2]+c0[$<<4&63]+"==");else if(Y===2)$=(Z[Q-2]<<8)+Z[Q-1],W.push(c0[$>>10]+c0[$>>4&63]+c0[$<<2&63]+"=");return W.join("")}});var O8=b((i$)=>{Object.defineProperty(i$,"__esModule",{value:!0});i$.fromArrayBufferToHex=s7;function s7(Z){return Array.from(new Uint8Array(Z)).map((Q)=>{return Q.toString(16).padStart(2,"0")}).join("")}});var r$=b((a$)=>{Object.defineProperty(a$,"__esModule",{value:!0});a$.BrowserCrypto=void 0;var B4=p$(),t7=O8();class I1{constructor(){if(typeof window>"u"||window.crypto===void 0||window.crypto.subtle===void 0)throw Error("SubtleCrypto not found. Make sure it's an https:// website.")}async sha256DigestBase64(Z){let $=new TextEncoder().encode(Z),Q=await window.crypto.subtle.digest("SHA-256",$);return B4.fromByteArray(new Uint8Array(Q))}randomBytesBase64(Z){let $=new Uint8Array(Z);return window.crypto.getRandomValues($),B4.fromByteArray($)}static padBase64(Z){while(Z.length%4!==0)Z+="=";return Z}async verify(Z,$,Q){let Y={name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},W=new TextEncoder().encode($),J=B4.toByteArray(I1.padBase64(Q)),K=await window.crypto.subtle.importKey("jwk",Z,Y,!0,["verify"]);return await window.crypto.subtle.verify(Y,K,Buffer.from(J),W)}async sign(Z,$){let Q={name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},Y=new TextEncoder().encode($),W=await window.crypto.subtle.importKey("jwk",Z,Q,!0,["sign"]),J=await window.crypto.subtle.sign(Q,W,Y);return B4.fromByteArray(new Uint8Array(J))}decodeBase64StringUtf8(Z){let $=B4.toByteArray(I1.padBase64(Z));return new TextDecoder().decode($)}encodeBase64StringUtf8(Z){let $=new TextEncoder().encode(Z);return B4.fromByteArray($)}async sha256DigestHex(Z){let $=new TextEncoder().encode(Z),Q=await window.crypto.subtle.digest("SHA-256",$);return(0,t7.fromArrayBufferToHex)(Q)}async signWithHmacSha256(Z,$){let Q=typeof Z==="string"?Z:String.fromCharCode(...new Uint16Array(Z)),Y=new TextEncoder,W=await window.crypto.subtle.importKey("raw",Y.encode(Q),{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]);return window.crypto.subtle.sign("HMAC",W,Y.encode($))}}a$.BrowserCrypto=I1});var e$=b((o$)=>{Object.defineProperty(o$,"__esModule",{value:!0});o$.NodeCrypto=void 0;var L4=a("crypto");class s${async sha256DigestBase64(Z){return L4.createHash("sha256").update(Z).digest("base64")}randomBytesBase64(Z){return L4.randomBytes(Z).toString("base64")}async verify(Z,$,Q){let Y=L4.createVerify("RSA-SHA256");return Y.update($),Y.end(),Y.verify(Z,Q,"base64")}async sign(Z,$){let Q=L4.createSign("RSA-SHA256");return Q.update($),Q.end(),Q.sign(Z,"base64")}decodeBase64StringUtf8(Z){return Buffer.from(Z,"base64").toString("utf-8")}encodeBase64StringUtf8(Z){return Buffer.from(Z,"utf-8").toString("base64")}async sha256DigestHex(Z){return L4.createHash("sha256").update(Z).digest("hex")}async signWithHmacSha256(Z,$){let Q=typeof Z==="string"?Z:ZX(Z);return e7(L4.createHmac("sha256",Q).update($).digest())}}o$.NodeCrypto=s$;function e7(Z){let $=new ArrayBuffer(Z.length),Q=new Uint8Array($);for(let Y=0;Y<Z.length;++Y)Q[Y]=Z[Y];return $}function ZX(Z){return Buffer.from(Z)}});var i4=b((r0)=>{var $X=r0&&r0.__createBinding||(Object.create?function(Z,$,Q,Y){if(Y===void 0)Y=Q;var W=Object.getOwnPropertyDescriptor($,Q);if(!W||("get"in W?!$.__esModule:W.writable||W.configurable))W={enumerable:!0,get:function(){return $[Q]}};Object.defineProperty(Z,Y,W)}:function(Z,$,Q,Y){if(Y===void 0)Y=Q;Z[Y]=$[Q]}),QX=r0&&r0.__exportStar||function(Z,$){for(var Q in Z)if(Q!=="default"&&!Object.prototype.hasOwnProperty.call($,Q))$X($,Z,Q)};Object.defineProperty(r0,"__esModule",{value:!0});r0.createCrypto=VX;r0.hasBrowserCrypto=Z9;var YX=r$(),WX=e$();QX(O8(),r0);function VX(){if(Z9())return new YX.BrowserCrypto;return new WX.NodeCrypto}function Z9(){return typeof window<"u"&&typeof window.crypto<"u"&&typeof window.crypto.subtle<"u"}});var R4=b((j8,Q9)=>{/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */var N1=a("buffer"),p0=N1.Buffer;function $9(Z,$){for(var Q in Z)$[Q]=Z[Q]}if(p0.from&&p0.alloc&&p0.allocUnsafe&&p0.allocUnsafeSlow)Q9.exports=N1;else $9(N1,j8),j8.Buffer=G4;function G4(Z,$,Q){return p0(Z,$,Q)}G4.prototype=Object.create(p0.prototype);$9(p0,G4);G4.from=function(Z,$,Q){if(typeof Z==="number")throw TypeError("Argument must not be a number");return p0(Z,$,Q)};G4.alloc=function(Z,$,Q){if(typeof Z!=="number")throw TypeError("Argument must be a number");var Y=p0(Z);if($!==void 0)if(typeof Q==="string")Y.fill($,Q);else Y.fill($);else Y.fill(0);return Y};G4.allocUnsafe=function(Z){if(typeof Z!=="number")throw TypeError("Argument must be a number");return p0(Z)};G4.allocUnsafeSlow=function(Z){if(typeof Z!=="number")throw TypeError("Argument must be a number");return N1.SlowBuffer(Z)}});var W9=b((LD,Y9)=>{function _8(Z){var $=(Z/8|0)+(Z%8===0?0:1);return $}var JX={ES256:_8(256),ES384:_8(384),ES512:_8(521)};function XX(Z){var $=JX[Z];if($)return $;throw Error('Unknown algorithm "'+Z+'"')}Y9.exports=XX});var h8=b((RD,H9)=>{var T1=R4().Buffer,J9=W9(),B1=128,X9=0,KX=32,qX=16,HX=2,K9=qX|KX|X9<<6,L1=HX|X9<<6;function wX(Z){return Z.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function q9(Z){if(T1.isBuffer(Z))return Z;else if(typeof Z==="string")return T1.from(Z,"base64");throw TypeError("ECDSA signature must be a Base64 string or a Buffer")}function zX(Z,$){Z=q9(Z);var Q=J9($),Y=Q+1,W=Z.length,J=0;if(Z[J++]!==K9)throw Error('Could not find expected "seq"');var K=Z[J++];if(K===(B1|1))K=Z[J++];if(W-J<K)throw Error('"seq" specified length of "'+K+'", only "'+(W-J)+'" remaining');if(Z[J++]!==L1)throw Error('Could not find expected "int" for "r"');var q=Z[J++];if(W-J-2<q)throw Error('"r" specified length of "'+q+'", only "'+(W-J-2)+'" available');if(Y<q)throw Error('"r" specified length of "'+q+'", max of "'+Y+'" is acceptable');var H=J;if(J+=q,Z[J++]!==L1)throw Error('Could not find expected "int" for "s"');var w=Z[J++];if(W-J!==w)throw Error('"s" specified length of "'+w+'", expected "'+(W-J)+'"');if(Y<w)throw Error('"s" specified length of "'+w+'", max of "'+Y+'" is acceptable');var F=J;if(J+=w,J!==W)throw Error('Expected to consume entire buffer, but "'+(W-J)+'" bytes remain');var z=Q-q,G=Q-w,D=T1.allocUnsafe(z+q+G+w);for(J=0;J<z;++J)D[J]=0;Z.copy(D,J,H+Math.max(-z,0),H+q),J=Q;for(var T=J;J<T+G;++J)D[J]=0;return Z.copy(D,J,F+Math.max(-G,0),F+w),D=D.toString("base64"),D=wX(D),D}function V9(Z,$,Q){var Y=0;while($+Y<Q&&Z[$+Y]===0)++Y;var W=Z[$+Y]>=B1;if(W)--Y;return Y}function FX(Z,$){Z=q9(Z);var Q=J9($),Y=Z.length;if(Y!==Q*2)throw TypeError('"'+$+'" signatures must be "'+Q*2+'" bytes, saw "'+Y+'"');var W=V9(Z,0,Q),J=V9(Z,Q,Z.length),K=Q-W,q=Q-J,H=2+K+1+1+q,w=H<B1,F=T1.allocUnsafe((w?2:3)+H),z=0;if(F[z++]=K9,w)F[z++]=H;else F[z++]=B1|1,F[z++]=H&255;if(F[z++]=L1,F[z++]=K,W<0)F[z++]=0,z+=Z.copy(F,z,0,Q);else z+=Z.copy(F,z,W,Q);if(F[z++]=L1,F[z++]=q,J<0)F[z++]=0,Z.copy(F,z,Q);else Z.copy(F,z,Q+J);return F}H9.exports={derToJose:zX,joseToDer:FX}});var x0=b((G9)=>{Object.defineProperty(G9,"__esModule",{value:!0});G9.LRUCache=void 0;G9.snakeToCamel=z9;G9.originalOrCamelOptions=MX;G9.removeUndefinedValuesInObject=IX;G9.isValidFile=NX;G9.getWellKnownCertificateConfigFileLocation=TX;var GX=a("fs"),UX=a("os"),k8=a("path"),DX="certificate_config.json",w9="gcloud";function z9(Z){return Z.replace(/([_][^_])/g,($)=>$.slice(1).toUpperCase())}function MX(Z){function $(Q){let Y=Z||{};return Y[Q]??Y[z9(Q)]}return{get:$}}class F9{capacity;#Z=new Map;maxAge;constructor(Z){this.capacity=Z.capacity,this.maxAge=Z.maxAge}#$(Z,$){this.#Z.delete(Z),this.#Z.set(Z,{value:$,lastAccessed:Date.now()})}set(Z,$){this.#$(Z,$),this.#Q()}get(Z){let $=this.#Z.get(Z);if(!$)return;return this.#$(Z,$.value),this.#Q(),$.value}#Q(){let Z=this.maxAge?Date.now()-this.maxAge:0,$=this.#Z.entries().next();while(!$.done&&(this.#Z.size>this.capacity||$.value[1].lastAccessed<Z))this.#Z.delete($.value[0]),$=this.#Z.entries().next()}}G9.LRUCache=F9;function IX(Z){return Object.entries(Z).forEach(([$,Q])=>{if(Q===void 0||Q==="undefined")delete Z[$]}),Z}async function NX(Z){try{return(await GX.promises.lstat(Z)).isFile()}catch($){return!1}}function TX(){let Z=process.env.CLOUDSDK_CONFIG||(BX()?k8.join(process.env.APPDATA||"",w9):k8.join(process.env.HOME||"",".config",w9));return k8.join(Z,DX)}function BX(){return UX.platform().startsWith("win")}});var D9=b((PD,CX)=>{CX.exports={name:"google-auth-library",version:"10.6.2",author:"Google Inc.",description:"Google APIs Authentication Client Library for Node.js",engines:{node:">=18"},main:"./build/src/index.js",types:"./build/src/index.d.ts",repository:{type:"git",directory:"packages/google-auth-library-nodejs",url:"https://github.com/googleapis/google-cloud-node-core.git"},keywords:["google","api","google apis","client","client library"],dependencies:{"base64-js":"^1.3.0","ecdsa-sig-formatter":"^1.0.11",gaxios:"^7.1.4","gcp-metadata":"8.1.2","google-logging-utils":"1.1.3",jws:"^4.0.0"},devDependencies:{"@types/base64-js":"^1.2.5","@types/jws":"^3.1.0","@types/mocha":"^10.0.10","@types/mv":"^2.1.0","@types/ncp":"^2.0.8","@types/node":"^24.0.0","@types/sinon":"^21.0.0","assert-rejects":"^1.0.0",c8:"^10.1.3",codecov:"^3.8.3",gts:"^6.0.2","is-docker":"^3.0.0",jsdoc:"^4.0.4","jsdoc-fresh":"^5.0.0","jsdoc-region-tag":"^4.0.0",karma:"^6.0.0","karma-chrome-launcher":"^3.0.0","karma-coverage":"^2.0.0","karma-firefox-launcher":"^2.0.0","karma-mocha":"^2.0.0","karma-sourcemap-loader":"^0.4.0","karma-webpack":"^5.0.1",keypair:"^1.0.4",mocha:"^11.1.0",mv:"^2.1.1",ncp:"^2.0.0",nock:"^14.0.5","null-loader":"^4.0.1",puppeteer:"^24.0.0",sinon:"^21.0.0","ts-loader":"^9.5.2",typescript:"5.8.3",webpack:"^5.97.1","webpack-cli":"^6.0.1"},files:["build/src","!build/src/**/*.map"],scripts:{test:"c8 mocha build/test",clean:"gts clean",prepare:"npm run compile",lint:"gts check --no-inline-config",compile:"tsc -p .",fix:"gts fix",pretest:"npm run compile -- --sourceMap",docs:"jsdoc -c .jsdoc.js","samples-setup":"cd samples/ && npm link ../ && npm run setup && cd ../","samples-test":"cd samples/ && npm link ../ && npm test && cd ../","system-test":"mocha build/system-test --timeout 60000","presystem-test":"npm run compile -- --sourceMap",webpack:"webpack","browser-test":"karma start","docs-test":"echo 'disabled until linkinator is fixed'","predocs-test":"npm run docs",prelint:"cd samples; npm link ../; npm install"},license:"Apache-2.0",homepage:"https://github.com/googleapis/google-cloud-node-core/tree/main/packages/google-auth-library-nodejs"}});var y8=b((N9)=>{Object.defineProperty(N9,"__esModule",{value:!0});N9.USER_AGENT=N9.PRODUCT_NAME=N9.pkg=void 0;var M9=D9();N9.pkg=M9;var I9="google-api-nodejs-client";N9.PRODUCT_NAME=I9;var vX=`${I9}/${M9.version}`;N9.USER_AGENT=vX});var S0=b((B9)=>{Object.defineProperty(B9,"__esModule",{value:!0});B9.AuthClient=B9.DEFAULT_EAGER_REFRESH_THRESHOLD_MILLIS=B9.DEFAULT_UNIVERSE=void 0;var jX=a("events"),x8=G0(),_X=x0(),hX=A8(),f8=y8();B9.DEFAULT_UNIVERSE="googleapis.com";B9.DEFAULT_EAGER_REFRESH_THRESHOLD_MILLIS=300000;class U0 extends jX.EventEmitter{apiKey;projectId;quotaProjectId;transporter;credentials={};eagerRefreshThresholdMillis=B9.DEFAULT_EAGER_REFRESH_THRESHOLD_MILLIS;forceRefreshOnFailure=!1;universeDomain=B9.DEFAULT_UNIVERSE;static RequestMethodNameSymbol=Symbol("request method name");static RequestLogIdSymbol=Symbol("request log id");constructor(Z={}){super();let $=(0,_X.originalOrCamelOptions)(Z);if(this.apiKey=Z.apiKey,this.projectId=$.get("project_id")??null,this.quotaProjectId=$.get("quota_project_id"),this.credentials=$.get("credentials")??{},this.universeDomain=$.get("universe_domain")??B9.DEFAULT_UNIVERSE,this.transporter=Z.transporter??new x8.Gaxios(Z.transporterOptions),$.get("useAuthRequestParameters")!==!1)this.transporter.interceptors.request.add(U0.DEFAULT_REQUEST_INTERCEPTOR),this.transporter.interceptors.response.add(U0.DEFAULT_RESPONSE_INTERCEPTOR);if(Z.eagerRefreshThresholdMillis)this.eagerRefreshThresholdMillis=Z.eagerRefreshThresholdMillis;this.forceRefreshOnFailure=Z.forceRefreshOnFailure??!1}fetch(...Z){let $=Z[0],Q=Z[1],Y=void 0,W=new Headers;if(typeof $==="string")Y=new URL($);else if($ instanceof URL)Y=$;else if($&&$.url)Y=new URL($.url);if($&&typeof $==="object"&&"headers"in $)x8.Gaxios.mergeHeaders(W,$.headers);if(Q)x8.Gaxios.mergeHeaders(W,new Headers(Q.headers));if(typeof $==="object"&&!($ instanceof URL))return this.request({...Q,...$,headers:W,url:Y});else return this.request({...Q,headers:W,url:Y})}setCredentials(Z){this.credentials=Z}addSharedMetadataHeaders(Z){if(!Z.has("x-goog-user-project")&&this.quotaProjectId)Z.set("x-goog-user-project",this.quotaProjectId);return Z}addUserProjectAndAuthHeaders(Z,$){let Q=$.get("x-goog-user-project"),Y=$.get("authorization");if(Q)Z.set("x-goog-user-project",Q);if(Y)Z.set("authorization",Y);return Z}static log=(0,hX.log)("auth");static DEFAULT_REQUEST_INTERCEPTOR={resolved:async(Z)=>{if(!Z.headers.has("x-goog-api-client")){let Q=process.version.replace(/^v/,"");Z.headers.set("x-goog-api-client",`gl-node/${Q}`)}let $=Z.headers.get("User-Agent");if(!$)Z.headers.set("User-Agent",f8.USER_AGENT);else if(!$.includes(`${f8.PRODUCT_NAME}/`))Z.headers.set("User-Agent",`${$} ${f8.USER_AGENT}`);try{let Q=Z,Y=Q[U0.RequestMethodNameSymbol],W=`${Math.floor(Math.random()*1000)}`;Q[U0.RequestLogIdSymbol]=W;let J={url:Z.url,headers:Z.headers};if(Y)U0.log.info("%s [%s] request %j",Y,W,J);else U0.log.info("[%s] request %j",W,J)}catch(Q){}return Z}};static DEFAULT_RESPONSE_INTERCEPTOR={resolved:async(Z)=>{try{let $=Z.config,Q=$[U0.RequestMethodNameSymbol],Y=$[U0.RequestLogIdSymbol];if(Q)U0.log.info("%s [%s] response %j",Q,Y,Z.data);else U0.log.info("[%s] response %j",Y,Z.data)}catch($){}return Z},rejected:async(Z)=>{try{let $=Z.config,Q=$[U0.RequestMethodNameSymbol],Y=$[U0.RequestLogIdSymbol];if(Q)U0.log.info("%s [%s] error %j",Q,Y,Z.response?.data);else U0.log.error("[%s] error %j",Y,Z.response?.data)}catch($){}throw Z}};static setMethodName(Z,$){try{let Q=Z;Q[U0.RequestMethodNameSymbol]=$}catch(Q){}}static get RETRY_CONFIG(){return{retry:!0,retryConfig:{httpMethodsToRetry:["GET","PUT","POST","HEAD","OPTIONS","DELETE"]}}}}B9.AuthClient=U0});var b8=b((P9)=>{Object.defineProperty(P9,"__esModule",{value:!0});P9.LoginTicket=void 0;class A9{envelope;payload;constructor(Z,$){this.envelope=Z,this.payload=$}getEnvelope(){return this.envelope}getPayload(){return this.payload}getUserId(){let Z=this.getPayload();if(Z&&Z.sub)return Z.sub;return null}getAttributes(){return{envelope:this.getEnvelope(),payload:this.getPayload()}}}P9.LoginTicket=A9});var U4=b((O9)=>{Object.defineProperty(O9,"__esModule",{value:!0});O9.OAuth2Client=O9.ClientAuthentication=O9.CertificateFormat=O9.CodeChallengeMethod=void 0;var C9=G0(),kX=a("querystring"),yX=a("stream"),xX=h8(),v9=x0(),m8=i4(),A4=S0(),fX=b8(),E9;(function(Z){Z.Plain="plain",Z.S256="S256"})(E9||(O9.CodeChallengeMethod=E9={}));var s0;(function(Z){Z.PEM="PEM",Z.JWK="JWK"})(s0||(O9.CertificateFormat=s0={}));var a4;(function(Z){Z.ClientSecretPost="ClientSecretPost",Z.ClientSecretBasic="ClientSecretBasic",Z.None="None"})(a4||(O9.ClientAuthentication=a4={}));class h0 extends A4.AuthClient{redirectUri;certificateCache={};certificateExpiry=null;certificateCacheFormat=s0.PEM;refreshTokenPromises=new Map;endpoints;issuers;clientAuthentication;_clientId;_clientSecret;refreshHandler;constructor(Z={},$,Q){super(typeof Z==="object"?Z:{});if(typeof Z!=="object")Z={clientId:Z,clientSecret:$,redirectUri:Q};this._clientId=Z.clientId||Z.client_id,this._clientSecret=Z.clientSecret||Z.client_secret,this.redirectUri=Z.redirectUri||Z.redirect_uris?.[0],this.endpoints={tokenInfoUrl:"https://oauth2.googleapis.com/tokeninfo",oauth2AuthBaseUrl:"https://accounts.google.com/o/oauth2/v2/auth",oauth2TokenUrl:"https://oauth2.googleapis.com/token",oauth2RevokeUrl:"https://oauth2.googleapis.com/revoke",oauth2FederatedSignonPemCertsUrl:"https://www.googleapis.com/oauth2/v1/certs",oauth2FederatedSignonJwkCertsUrl:"https://www.googleapis.com/oauth2/v3/certs",oauth2IapPublicKeyUrl:"https://www.gstatic.com/iap/verify/public_key",...Z.endpoints},this.clientAuthentication=Z.clientAuthentication||a4.ClientSecretPost,this.issuers=Z.issuers||["accounts.google.com","https://accounts.google.com",this.universeDomain]}static GOOGLE_TOKEN_INFO_URL="https://oauth2.googleapis.com/tokeninfo";static CLOCK_SKEW_SECS_=300;static DEFAULT_MAX_TOKEN_LIFETIME_SECS_=86400;generateAuthUrl(Z={}){if(Z.code_challenge_method&&!Z.code_challenge)throw Error("If a code_challenge_method is provided, code_challenge must be included.");if(Z.response_type=Z.response_type||"code",Z.client_id=Z.client_id||this._clientId,Z.redirect_uri=Z.redirect_uri||this.redirectUri,Array.isArray(Z.scope))Z.scope=Z.scope.join(" ");return this.endpoints.oauth2AuthBaseUrl.toString()+"?"+kX.stringify(Z)}generateCodeVerifier(){throw Error("generateCodeVerifier is removed, please use generateCodeVerifierAsync instead.")}async generateCodeVerifierAsync(){let Z=(0,m8.createCrypto)(),Q=Z.randomBytesBase64(96).replace(/\+/g,"~").replace(/=/g,"_").replace(/\//g,"-"),W=(await Z.sha256DigestBase64(Q)).split("=")[0].replace(/\+/g,"-").replace(/\//g,"_");return{codeVerifier:Q,codeChallenge:W}}getToken(Z,$){let Q=typeof Z==="string"?{code:Z}:Z;if($)this.getTokenAsync(Q).then((Y)=>$(null,Y.tokens,Y.res),(Y)=>$(Y,null,Y.response));else return this.getTokenAsync(Q)}async getTokenAsync(Z){let $=this.endpoints.oauth2TokenUrl.toString(),Q=new Headers,Y={client_id:Z.client_id||this._clientId,code_verifier:Z.codeVerifier,code:Z.code,grant_type:"authorization_code",redirect_uri:Z.redirect_uri||this.redirectUri};if(this.clientAuthentication===a4.ClientSecretBasic){let q=Buffer.from(`${this._clientId}:${this._clientSecret}`);Q.set("authorization",`Basic ${q.toString("base64")}`)}if(this.clientAuthentication===a4.ClientSecretPost)Y.client_secret=this._clientSecret;let W={...h0.RETRY_CONFIG,method:"POST",url:$,data:new URLSearchParams((0,v9.removeUndefinedValuesInObject)(Y)),headers:Q};A4.AuthClient.setMethodName(W,"getTokenAsync");let J=await this.transporter.request(W),K=J.data;if(J.data&&J.data.expires_in)K.expiry_date=new Date().getTime()+J.data.expires_in*1000,delete K.expires_in;return this.emit("tokens",K),{tokens:K,res:J}}async refreshToken(Z){if(!Z)return this.refreshTokenNoCache(Z);if(this.refreshTokenPromises.has(Z))return this.refreshTokenPromises.get(Z);let $=this.refreshTokenNoCache(Z).then((Q)=>{return this.refreshTokenPromises.delete(Z),Q},(Q)=>{throw this.refreshTokenPromises.delete(Z),Q});return this.refreshTokenPromises.set(Z,$),$}async refreshTokenNoCache(Z){if(!Z)throw Error("No refresh token is set.");let $=this.endpoints.oauth2TokenUrl.toString(),Q={refresh_token:Z,client_id:this._clientId,client_secret:this._clientSecret,grant_type:"refresh_token"},Y;try{let J={...h0.RETRY_CONFIG,method:"POST",url:$,data:new URLSearchParams((0,v9.removeUndefinedValuesInObject)(Q))};A4.AuthClient.setMethodName(J,"refreshTokenNoCache"),Y=await this.transporter.request(J)}catch(J){if(J instanceof C9.GaxiosError&&J.message==="invalid_grant"&&J.response?.data&&/ReAuth/i.test(J.response.data.error_description))J.message=JSON.stringify(J.response.data);throw J}let W=Y.data;if(Y.data&&Y.data.expires_in)W.expiry_date=new Date().getTime()+Y.data.expires_in*1000,delete W.expires_in;return this.emit("tokens",W),{tokens:W,res:Y}}refreshAccessToken(Z){if(Z)this.refreshAccessTokenAsync().then(($)=>Z(null,$.credentials,$.res),Z);else return this.refreshAccessTokenAsync()}async refreshAccessTokenAsync(){let Z=await this.refreshToken(this.credentials.refresh_token),$=Z.tokens;return $.refresh_token=this.credentials.refresh_token,this.credentials=$,{credentials:this.credentials,res:Z.res}}getAccessToken(Z){if(Z)this.getAccessTokenAsync().then(($)=>Z(null,$.token,$.res),Z);else return this.getAccessTokenAsync()}async getAccessTokenAsync(){if(!this.credentials.access_token||this.isTokenExpiring()){if(!this.credentials.refresh_token)if(this.refreshHandler){let Q=await this.processAndValidateRefreshHandler();if(Q?.access_token)return this.setCredentials(Q),{token:this.credentials.access_token}}else throw Error("No refresh token or refresh handler callback is set.");let $=await this.refreshAccessTokenAsync();if(!$.credentials||$.credentials&&!$.credentials.access_token)throw Error("Could not refresh access token.");return{token:$.credentials.access_token,res:$.res}}else return{token:this.credentials.access_token}}async getRequestHeaders(Z){return(await this.getRequestMetadataAsync(Z)).headers}async getRequestMetadataAsync(Z){let $=this.credentials;if(!$.access_token&&!$.refresh_token&&!this.apiKey&&!this.refreshHandler)throw Error("No access, refresh token, API key or refresh handler callback is set.");if($.access_token&&!this.isTokenExpiring()){$.token_type=$.token_type||"Bearer";let K=new Headers({authorization:$.token_type+" "+$.access_token});return{headers:this.addSharedMetadataHeaders(K)}}if(this.refreshHandler){let K=await this.processAndValidateRefreshHandler();if(K?.access_token){this.setCredentials(K);let q=new Headers({authorization:"Bearer "+this.credentials.access_token});return{headers:this.addSharedMetadataHeaders(q)}}}if(this.apiKey)return{headers:new Headers({"X-Goog-Api-Key":this.apiKey})};let Q=null,Y=null;try{Q=await this.refreshToken($.refresh_token),Y=Q.tokens}catch(K){let q=K;if(q.response&&(q.response.status===403||q.response.status===404))q.message=`Could not refresh access token: ${q.message}`;throw q}let W=this.credentials;W.token_type=W.token_type||"Bearer",Y.refresh_token=W.refresh_token,this.credentials=Y;let J=new Headers({authorization:W.token_type+" "+Y.access_token});return{headers:this.addSharedMetadataHeaders(J),res:Q.res}}static getRevokeTokenUrl(Z){return new h0().getRevokeTokenURL(Z).toString()}getRevokeTokenURL(Z){let $=new URL(this.endpoints.oauth2RevokeUrl);return $.searchParams.append("token",Z),$}revokeToken(Z,$){let Q={...h0.RETRY_CONFIG,url:this.getRevokeTokenURL(Z).toString(),method:"POST"};if(A4.AuthClient.setMethodName(Q,"revokeToken"),$)this.transporter.request(Q).then((Y)=>$(null,Y),$);else return this.transporter.request(Q)}revokeCredentials(Z){if(Z)this.revokeCredentialsAsync().then(($)=>Z(null,$),Z);else return this.revokeCredentialsAsync()}async revokeCredentialsAsync(){let Z=this.credentials.access_token;if(this.credentials={},Z)return this.revokeToken(Z);else throw Error("No access token to revoke.")}request(Z,$){if($)this.requestAsync(Z).then((Q)=>$(null,Q),(Q)=>{return $(Q,Q.response)});else return this.requestAsync(Z)}async requestAsync(Z,$=!1){try{let Q=await this.getRequestMetadataAsync();if(Z.headers=C9.Gaxios.mergeHeaders(Z.headers),this.addUserProjectAndAuthHeaders(Z.headers,Q.headers),this.apiKey)Z.headers.set("X-Goog-Api-Key",this.apiKey);return await this.transporter.request(Z)}catch(Q){let Y=Q.response;if(Y){let W=Y.status,J=this.credentials&&this.credentials.access_token&&this.credentials.refresh_token&&(!this.credentials.expiry_date||this.forceRefreshOnFailure),K=this.credentials&&this.credentials.access_token&&!this.credentials.refresh_token&&(!this.credentials.expiry_date||this.forceRefreshOnFailure)&&this.refreshHandler,q=Y.config.data instanceof yX.Readable,H=W===401||W===403;if(!$&&H&&!q&&J)return await this.refreshAccessTokenAsync(),this.requestAsync(Z,!0);else if(!$&&H&&!q&&K){let w=await this.processAndValidateRefreshHandler();if(w?.access_token)this.setCredentials(w);return this.requestAsync(Z,!0)}}throw Q}}verifyIdToken(Z,$){if($&&typeof $!=="function")throw Error("This method accepts an options object as the first parameter, which includes the idToken, audience, and maxExpiry.");if($)this.verifyIdTokenAsync(Z).then((Q)=>$(null,Q),$);else return this.verifyIdTokenAsync(Z)}async verifyIdTokenAsync(Z){if(!Z.idToken)throw Error("The verifyIdToken method requires an ID Token");let $=await this.getFederatedSignonCertsAsync();return await this.verifySignedJwtWithCertsAsync(Z.idToken,$.certs,Z.audience,this.issuers,Z.maxExpiry)}async getTokenInfo(Z){let{data:$}=await this.transporter.request({...h0.RETRY_CONFIG,method:"POST",headers:{"content-type":"application/x-www-form-urlencoded;charset=UTF-8",authorization:`Bearer ${Z}`},url:this.endpoints.tokenInfoUrl.toString()}),Q=Object.assign({expiry_date:new Date().getTime()+$.expires_in*1000,scopes:$.scope.split(" ")},$);return delete Q.expires_in,delete Q.scope,Q}getFederatedSignonCerts(Z){if(Z)this.getFederatedSignonCertsAsync().then(($)=>Z(null,$.certs,$.res),Z);else return this.getFederatedSignonCertsAsync()}async getFederatedSignonCertsAsync(){let Z=new Date().getTime(),$=(0,m8.hasBrowserCrypto)()?s0.JWK:s0.PEM;if(this.certificateExpiry&&Z<this.certificateExpiry.getTime()&&this.certificateCacheFormat===$)return{certs:this.certificateCache,format:$};let Q,Y;switch($){case s0.PEM:Y=this.endpoints.oauth2FederatedSignonPemCertsUrl.toString();break;case s0.JWK:Y=this.endpoints.oauth2FederatedSignonJwkCertsUrl.toString();break;default:throw Error(`Unsupported certificate format ${$}`)}try{let H={...h0.RETRY_CONFIG,url:Y};A4.AuthClient.setMethodName(H,"getFederatedSignonCertsAsync"),Q=await this.transporter.request(H)}catch(H){if(H instanceof Error)H.message=`Failed to retrieve verification certificates: ${H.message}`;throw H}let W=Q?.headers.get("cache-control"),J=-1;if(W){let H=/max-age=(?<maxAge>[0-9]+)/.exec(W)?.groups?.maxAge;if(H)J=Number(H)*1000}let K={};switch($){case s0.PEM:K=Q.data;break;case s0.JWK:for(let H of Q.data.keys)K[H.kid]=H;break;default:throw Error(`Unsupported certificate format ${$}`)}let q=new Date;return this.certificateExpiry=J===-1?null:new Date(q.getTime()+J),this.certificateCache=K,this.certificateCacheFormat=$,{certs:K,format:$,res:Q}}getIapPublicKeys(Z){if(Z)this.getIapPublicKeysAsync().then(($)=>Z(null,$.pubkeys,$.res),Z);else return this.getIapPublicKeysAsync()}async getIapPublicKeysAsync(){let Z,$=this.endpoints.oauth2IapPublicKeyUrl.toString();try{let Q={...h0.RETRY_CONFIG,url:$};A4.AuthClient.setMethodName(Q,"getIapPublicKeysAsync"),Z=await this.transporter.request(Q)}catch(Q){if(Q instanceof Error)Q.message=`Failed to retrieve verification certificates: ${Q.message}`;throw Q}return{pubkeys:Z.data,res:Z}}verifySignedJwtWithCerts(){throw Error("verifySignedJwtWithCerts is removed, please use verifySignedJwtWithCertsAsync instead.")}async verifySignedJwtWithCertsAsync(Z,$,Q,Y,W){let J=(0,m8.createCrypto)();if(!W)W=h0.DEFAULT_MAX_TOKEN_LIFETIME_SECS_;let K=Z.split(".");if(K.length!==3)throw Error("Wrong number of segments in token: "+Z);let q=K[0]+"."+K[1],H=K[2],w,F;try{w=JSON.parse(J.decodeBase64StringUtf8(K[0]))}catch(y){if(y instanceof Error)y.message=`Can't parse token envelope: ${K[0]}': ${y.message}`;throw y}if(!w)throw Error("Can't parse token envelope: "+K[0]);try{F=JSON.parse(J.decodeBase64StringUtf8(K[1]))}catch(y){if(y instanceof Error)y.message=`Can't parse token payload '${K[0]}`;throw y}if(!F)throw Error("Can't parse token payload: "+K[1]);if(!Object.prototype.hasOwnProperty.call($,w.kid))throw Error("No pem found for envelope: "+JSON.stringify(w));let z=$[w.kid];if(w.alg==="ES256")H=xX.joseToDer(H,"ES256").toString("base64");if(!await J.verify(z,q,H))throw Error("Invalid token signature: "+Z);if(!F.iat)throw Error("No issue time in token: "+JSON.stringify(F));if(!F.exp)throw Error("No expiration time in token: "+JSON.stringify(F));let D=Number(F.iat);if(isNaN(D))throw Error("iat field using invalid format");let T=Number(F.exp);if(isNaN(T))throw Error("exp field using invalid format");let I=new Date().getTime()/1000;if(T>=I+W)throw Error("Expiration time too far in future: "+JSON.stringify(F));let P=D-h0.CLOCK_SKEW_SECS_,O=T+h0.CLOCK_SKEW_SECS_;if(I<P)throw Error("Token used too early, "+I+" < "+P+": "+JSON.stringify(F));if(I>O)throw Error("Token used too late, "+I+" > "+O+": "+JSON.stringify(F));if(Y&&Y.indexOf(F.iss)<0)throw Error("Invalid issuer, expected one of ["+Y+"], but got "+F.iss);if(typeof Q<"u"&&Q!==null){let y=F.aud,x=!1;if(Q.constructor===Array)x=Q.indexOf(y)>-1;else x=y===Q;if(!x)throw Error("Wrong recipient, payload audience != requiredAudience")}return new fX.LoginTicket(w,F)}async processAndValidateRefreshHandler(){if(this.refreshHandler){let Z=await this.refreshHandler();if(!Z.access_token)throw Error("No access token is returned by the refreshHandler callback.");return Z}return}isTokenExpiring(){let Z=this.credentials.expiry_date;return Z?Z<=new Date().getTime()+this.eagerRefreshThresholdMillis:!1}}O9.OAuth2Client=h0});var u8=b((k9)=>{Object.defineProperty(k9,"__esModule",{value:!0});k9.Compute=void 0;var uX=G0(),_9=p4(),dX=U4();class h9 extends dX.OAuth2Client{serviceAccountEmail;scopes;constructor(Z={}){super(Z);this.credentials={expiry_date:1,refresh_token:"compute-placeholder"},this.serviceAccountEmail=Z.serviceAccountEmail||"default",this.scopes=Array.isArray(Z.scopes)?Z.scopes:Z.scopes?[Z.scopes]:[]}async refreshTokenNoCache(){let Z=`service-accounts/${this.serviceAccountEmail}/token`,$;try{let Y={property:Z};if(this.scopes.length>0)Y.params={scopes:this.scopes.join(",")};$=await _9.instance(Y)}catch(Y){if(Y instanceof uX.GaxiosError)Y.message=`Could not refresh access token: ${Y.message}`,this.wrapError(Y);throw Y}let Q=$;if($&&$.expires_in)Q.expiry_date=new Date().getTime()+$.expires_in*1000,delete Q.expires_in;return this.emit("tokens",Q),{tokens:Q,res:null}}async fetchIdToken(Z){let $=`service-accounts/${this.serviceAccountEmail}/identity?format=full&audience=${Z}`,Q;try{let Y={property:$};Q=await _9.instance(Y)}catch(Y){if(Y instanceof Error)Y.message=`Could not fetch ID token: ${Y.message}`;throw Y}return Q}wrapError(Z){let $=Z.response;if($&&$.status){if(Z.status=$.status,$.status===403)Z.message="A Forbidden error was returned while attempting to retrieve an access token for the Compute Engine built-in service account. This may be because the Compute Engine instance does not have the correct permission scopes specified: "+Z.message;else if($.status===404)Z.message="A Not Found error was returned while attempting to retrieve an accesstoken for the Compute Engine built-in service account. This may be because the Compute Engine instance does not have any permission scopes specified: "+Z.message}}}k9.Compute=h9});var d8=b((f9)=>{Object.defineProperty(f9,"__esModule",{value:!0});f9.IdTokenClient=void 0;var lX=U4();class x9 extends lX.OAuth2Client{targetAudience;idTokenProvider;constructor(Z){super(Z);this.targetAudience=Z.targetAudience,this.idTokenProvider=Z.idTokenProvider}async getRequestMetadataAsync(){if(!this.credentials.id_token||!this.credentials.expiry_date||this.isTokenExpiring()){let $=await this.idTokenProvider.fetchIdToken(this.targetAudience);this.credentials={id_token:$,expiry_date:this.getIdTokenExpiryDate($)}}return{headers:new Headers({authorization:"Bearer "+this.credentials.id_token})}}getIdTokenExpiryDate(Z){let $=Z.split(".")[1];if($)return JSON.parse(Buffer.from($,"base64").toString("ascii")).exp*1000}}f9.IdTokenClient=x9});var l8=b((m9)=>{Object.defineProperty(m9,"__esModule",{value:!0});m9.GCPEnv=void 0;m9.clear=cX;m9.getEnv=pX;var b9=p4(),i0;(function(Z){Z.APP_ENGINE="APP_ENGINE",Z.KUBERNETES_ENGINE="KUBERNETES_ENGINE",Z.CLOUD_FUNCTIONS="CLOUD_FUNCTIONS",Z.COMPUTE_ENGINE="COMPUTE_ENGINE",Z.CLOUD_RUN="CLOUD_RUN",Z.CLOUD_RUN_JOBS="CLOUD_RUN_JOBS",Z.NONE="NONE"})(i0||(m9.GCPEnv=i0={}));var n4;function cX(){n4=void 0}async function pX(){if(n4)return n4;return n4=iX(),n4}async function iX(){let Z=i0.NONE;if(aX())Z=i0.APP_ENGINE;else if(nX())Z=i0.CLOUD_FUNCTIONS;else if(await tX())if(await oX())Z=i0.KUBERNETES_ENGINE;else if(rX())Z=i0.CLOUD_RUN;else if(sX())Z=i0.CLOUD_RUN_JOBS;else Z=i0.COMPUTE_ENGINE;else Z=i0.NONE;return Z}function aX(){return!!(process.env.GAE_SERVICE||process.env.GAE_MODULE_NAME)}function nX(){return!!(process.env.FUNCTION_NAME||process.env.FUNCTION_TARGET)}function rX(){return!!process.env.K_CONFIGURATION}function sX(){return!!process.env.CLOUD_RUN_JOB}async function oX(){try{return await b9.instance("attributes/cluster-name"),!0}catch(Z){return!1}}async function tX(){return b9.isAvailable()}});var c8=b((hD,d9)=>{var R1=R4().Buffer,$K=a("stream"),QK=a("util");function A1(Z){if(this.buffer=null,this.writable=!0,this.readable=!0,!Z)return this.buffer=R1.alloc(0),this;if(typeof Z.pipe==="function")return this.buffer=R1.alloc(0),Z.pipe(this),this;if(Z.length||typeof Z==="object")return this.buffer=Z,this.writable=!1,process.nextTick(function(){this.emit("end",Z),this.readable=!1,this.emit("close")}.bind(this)),this;throw TypeError("Unexpected data type ("+typeof Z+")")}QK.inherits(A1,$K);A1.prototype.write=function($){this.buffer=R1.concat([this.buffer,R1.from($)]),this.emit("data",$)};A1.prototype.end=function($){if($)this.write($);this.emit("end",$),this.emit("close"),this.writable=!1,this.readable=!1};d9.exports=A1});var c9=b((kD,l9)=>{var r4=a("buffer").Buffer,p8=a("buffer").SlowBuffer;l9.exports=P1;function P1(Z,$){if(!r4.isBuffer(Z)||!r4.isBuffer($))return!1;if(Z.length!==$.length)return!1;var Q=0;for(var Y=0;Y<Z.length;Y++)Q|=Z[Y]^$[Y];return Q===0}P1.install=function(){r4.prototype.equal=p8.prototype.equal=function($){return P1(this,$)}};var YK=r4.prototype.equal,WK=p8.prototype.equal;P1.restore=function(){r4.prototype.equal=YK,p8.prototype.equal=WK}});var r8=b((yD,e9)=>{var S4=R4().Buffer,k0=a("crypto"),i9=h8(),p9=a("util"),VK=`"%s" is not a valid algorithm.
15
- Supported algorithms are:
16
- "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "PS256", "PS384", "PS512", "ES256", "ES384", "ES512" and "none".`,s4="secret must be a string or buffer",P4="key must be a string or a buffer",JK="key must be a string, a buffer or an object",a8=typeof k0.createPublicKey==="function";if(a8)P4+=" or a KeyObject",s4+="or a KeyObject";function a9(Z){if(S4.isBuffer(Z))return;if(typeof Z==="string")return;if(!a8)throw f0(P4);if(typeof Z!=="object")throw f0(P4);if(typeof Z.type!=="string")throw f0(P4);if(typeof Z.asymmetricKeyType!=="string")throw f0(P4);if(typeof Z.export!=="function")throw f0(P4)}function n9(Z){if(S4.isBuffer(Z))return;if(typeof Z==="string")return;if(typeof Z==="object")return;throw f0(JK)}function XK(Z){if(S4.isBuffer(Z))return;if(typeof Z==="string")return Z;if(!a8)throw f0(s4);if(typeof Z!=="object")throw f0(s4);if(Z.type!=="secret")throw f0(s4);if(typeof Z.export!=="function")throw f0(s4)}function n8(Z){return Z.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function r9(Z){Z=Z.toString();var $=4-Z.length%4;if($!==4)for(var Q=0;Q<$;++Q)Z+="=";return Z.replace(/\-/g,"+").replace(/_/g,"/")}function f0(Z){var $=[].slice.call(arguments,1),Q=p9.format.bind(p9,Z).apply(null,$);return TypeError(Q)}function KK(Z){return S4.isBuffer(Z)||typeof Z==="string"}function o4(Z){if(!KK(Z))Z=JSON.stringify(Z);return Z}function s9(Z){return function(Q,Y){XK(Y),Q=o4(Q);var W=k0.createHmac("sha"+Z,Y),J=(W.update(Q),W.digest("base64"));return n8(J)}}var i8,qK="timingSafeEqual"in k0?function($,Q){if($.byteLength!==Q.byteLength)return!1;return k0.timingSafeEqual($,Q)}:function($,Q){if(!i8)i8=c9();return i8($,Q)};function HK(Z){return function(Q,Y,W){var J=s9(Z)(Q,W);return qK(S4.from(Y),S4.from(J))}}function o9(Z){return function(Q,Y){n9(Y),Q=o4(Q);var W=k0.createSign("RSA-SHA"+Z),J=(W.update(Q),W.sign(Y,"base64"));return n8(J)}}function t9(Z){return function(Q,Y,W){a9(W),Q=o4(Q),Y=r9(Y);var J=k0.createVerify("RSA-SHA"+Z);return J.update(Q),J.verify(W,Y,"base64")}}function wK(Z){return function(Q,Y){n9(Y),Q=o4(Q);var W=k0.createSign("RSA-SHA"+Z),J=(W.update(Q),W.sign({key:Y,padding:k0.constants.RSA_PKCS1_PSS_PADDING,saltLength:k0.constants.RSA_PSS_SALTLEN_DIGEST},"base64"));return n8(J)}}function zK(Z){return function(Q,Y,W){a9(W),Q=o4(Q),Y=r9(Y);var J=k0.createVerify("RSA-SHA"+Z);return J.update(Q),J.verify({key:W,padding:k0.constants.RSA_PKCS1_PSS_PADDING,saltLength:k0.constants.RSA_PSS_SALTLEN_DIGEST},Y,"base64")}}function FK(Z){var $=o9(Z);return function(){var Y=$.apply(null,arguments);return Y=i9.derToJose(Y,"ES"+Z),Y}}function GK(Z){var $=t9(Z);return function(Y,W,J){W=i9.joseToDer(W,"ES"+Z).toString("base64");var K=$(Y,W,J);return K}}function UK(){return function(){return""}}function DK(){return function($,Q){return Q===""}}e9.exports=function($){var Q={hs:s9,rs:o9,ps:wK,es:FK,none:UK},Y={hs:HK,rs:t9,ps:zK,es:GK,none:DK},W=$.match(/^(RS|PS|ES|HS)(256|384|512)$|^(none)$/);if(!W)throw f0(VK,$);var J=(W[1]||W[3]).toLowerCase(),K=W[2];return{sign:Q[J](K),verify:Y[J](K)}}});var s8=b((xD,ZQ)=>{var MK=a("buffer").Buffer;ZQ.exports=function($){if(typeof $==="string")return $;if(typeof $==="number"||MK.isBuffer($))return $.toString();return JSON.stringify($)}});var JQ=b((fD,VQ)=>{var IK=R4().Buffer,$Q=c8(),NK=r8(),TK=a("stream"),QQ=s8(),o8=a("util");function YQ(Z,$){return IK.from(Z,$).toString("base64").replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function BK(Z,$,Q){Q=Q||"utf8";var Y=YQ(QQ(Z),"binary"),W=YQ(QQ($),Q);return o8.format("%s.%s",Y,W)}function WQ(Z){var{header:$,payload:Q}=Z,Y=Z.secret||Z.privateKey,W=Z.encoding,J=NK($.alg),K=BK($,Q,W),q=J.sign(K,Y);return o8.format("%s.%s",K,q)}function S1(Z){var $=Z.secret;if($=$==null?Z.privateKey:$,$=$==null?Z.key:$,/^hs/i.test(Z.header.alg)===!0&&$==null)throw TypeError("secret must be a string or buffer or a KeyObject");var Q=new $Q($);this.readable=!0,this.header=Z.header,this.encoding=Z.encoding,this.secret=this.privateKey=this.key=Q,this.payload=new $Q(Z.payload),this.secret.once("close",function(){if(!this.payload.writable&&this.readable)this.sign()}.bind(this)),this.payload.once("close",function(){if(!this.secret.writable&&this.readable)this.sign()}.bind(this))}o8.inherits(S1,TK);S1.prototype.sign=function(){try{var $=WQ({header:this.header,payload:this.payload.buffer,secret:this.secret.buffer,encoding:this.encoding});return this.emit("done",$),this.emit("data",$),this.emit("end"),this.readable=!1,$}catch(Q){this.readable=!1,this.emit("error",Q),this.emit("close")}};S1.sign=WQ;VQ.exports=S1});var DQ=b((gD,UQ)=>{var KQ=R4().Buffer,XQ=c8(),LK=r8(),RK=a("stream"),qQ=s8(),AK=a("util"),PK=/^[a-zA-Z0-9\-_]+?\.[a-zA-Z0-9\-_]+?\.([a-zA-Z0-9\-_]+)?$/;function SK(Z){return Object.prototype.toString.call(Z)==="[object Object]"}function CK(Z){if(SK(Z))return Z;try{return JSON.parse(Z)}catch($){return}}function HQ(Z){var $=Z.split(".",1)[0];return CK(KQ.from($,"base64").toString("binary"))}function vK(Z){return Z.split(".",2).join(".")}function wQ(Z){return Z.split(".")[2]}function EK(Z,$){$=$||"utf8";var Q=Z.split(".")[1];return KQ.from(Q,"base64").toString($)}function zQ(Z){return PK.test(Z)&&!!HQ(Z)}function FQ(Z,$,Q){if(!$){var Y=Error("Missing algorithm parameter for jws.verify");throw Y.code="MISSING_ALGORITHM",Y}Z=qQ(Z);var W=wQ(Z),J=vK(Z),K=LK($);return K.verify(J,W,Q)}function GQ(Z,$){if($=$||{},Z=qQ(Z),!zQ(Z))return null;var Q=HQ(Z);if(!Q)return null;var Y=EK(Z);if(Q.typ==="JWT"||$.json)Y=JSON.parse(Y,$.encoding);return{header:Q,payload:Y,signature:wQ(Z)}}function C4(Z){Z=Z||{};var $=Z.secret;if($=$==null?Z.publicKey:$,$=$==null?Z.key:$,/^hs/i.test(Z.algorithm)===!0&&$==null)throw TypeError("secret must be a string or buffer or a KeyObject");var Q=new XQ($);this.readable=!0,this.algorithm=Z.algorithm,this.encoding=Z.encoding,this.secret=this.publicKey=this.key=Q,this.signature=new XQ(Z.signature),this.secret.once("close",function(){if(!this.signature.writable&&this.readable)this.verify()}.bind(this)),this.signature.once("close",function(){if(!this.secret.writable&&this.readable)this.verify()}.bind(this))}AK.inherits(C4,RK);C4.prototype.verify=function(){try{var $=FQ(this.signature.buffer,this.algorithm,this.key.buffer),Q=GQ(this.signature.buffer,this.encoding);return this.emit("done",$,Q),this.emit("data",$),this.emit("end"),this.readable=!1,$}catch(Y){this.readable=!1,this.emit("error",Y),this.emit("close")}};C4.decode=GQ;C4.isValid=zQ;C4.verify=FQ;UQ.exports=C4});var t8=b((jK)=>{var MQ=JQ(),C1=DQ(),OK=["HS256","HS384","HS512","RS256","RS384","RS512","PS256","PS384","PS512","ES256","ES384","ES512"];jK.ALGORITHMS=OK;jK.sign=MQ.sign;jK.verify=C1.verify;jK.decode=C1.decode;jK.isValid=C1.isValid;jK.createSign=function($){return new MQ($)};jK.createVerify=function($){return new C1($)}});var TQ=b((NQ)=>{Object.defineProperty(NQ,"__esModule",{value:!0});NQ.buildPayloadForJwsSign=IQ;NQ.getJwsSign=dK;var bK=t8(),mK="RS256",uK="https://oauth2.googleapis.com/token";function IQ(Z){let $=Math.floor(new Date().getTime()/1000);return{iss:Z.iss,scope:Z.scope,aud:uK,exp:$+3600,iat:$,sub:Z.sub,...Z.additionalClaims}}function dK(Z){let $=IQ(Z);return(0,bK.sign)({header:{alg:mK},payload:$,secret:Z.key})}});var LQ=b((BQ)=>{Object.defineProperty(BQ,"__esModule",{value:!0});BQ.getToken=rK;var pK=TQ(),iK="https://oauth2.googleapis.com/token",aK="urn:ietf:params:oauth:grant-type:jwt-bearer",nK=(Z)=>{return{method:"POST",url:iK,data:new URLSearchParams({grant_type:aK,assertion:(0,pK.getJwsSign)(Z)}),responseType:"json",retryConfig:{httpMethodsToRetry:["POST"]}}};async function rK(Z){if(!Z.transporter)throw Error("No transporter set.");try{let $=nK(Z);return(await Z.transporter.request($)).data}catch($){let Q=$,Y=Q.response?.data;if(Y?.error)Q.message=`${Y.error}: ${Y.error_description}`;throw Q}}});var SQ=b((AQ)=>{Object.defineProperty(AQ,"__esModule",{value:!0});AQ.ErrorWithCode=void 0;class RQ extends Error{code;constructor(Z,$){super(Z);this.code=$}}AQ.ErrorWithCode=RQ});var e8=b((hQ)=>{Object.defineProperty(hQ,"__esModule",{value:!0});hQ.getCredentials=eK;var oK=a("path"),CQ=a("fs"),tK=a("util"),v1=SQ(),vQ=CQ.readFile?(0,tK.promisify)(CQ.readFile):async()=>{throw new v1.ErrorWithCode("use key rather than keyFile.","MISSING_CREDENTIALS")},Q4;(function(Z){Z.JSON=".json",Z.DER=".der",Z.CRT=".crt",Z.PEM=".pem",Z.P12=".p12",Z.PFX=".pfx"})(Q4||(Q4={}));class EQ{keyFilePath;constructor(Z){this.keyFilePath=Z}async getCredentials(){let Z=await vQ(this.keyFilePath,"utf8"),$;try{$=JSON.parse(Z)}catch(W){throw Error(`Invalid JSON key file: ${W.message}`)}let{private_key:Q,client_email:Y}=$;if(!Q||!Y)throw new v1.ErrorWithCode("private_key and client_email are required.","MISSING_CREDENTIALS");return{privateKey:Q,clientEmail:Y}}}class OQ{keyFilePath;constructor(Z){this.keyFilePath=Z}async getCredentials(){return{privateKey:await vQ(this.keyFilePath,"utf8")}}}class jQ{async getCredentials(){throw new v1.ErrorWithCode("*.p12 certificates are not supported after v6.1.2. Consider utilizing *.json format or converting *.p12 to *.pem using the OpenSSL CLI.","UNKNOWN_CERTIFICATE_TYPE")}}class _Q{static create(Z){switch(oK.extname(Z)){case Q4.JSON:return new EQ(Z);case Q4.DER:case Q4.CRT:case Q4.PEM:return new OQ(Z);case Q4.P12:case Q4.PFX:return new jQ;default:throw new v1.ErrorWithCode("Unknown certificate type. Type is determined based on file extension. Current supported extensions are *.json, and *.pem.","UNKNOWN_CERTIFICATE_TYPE")}}}async function eK(Z){return _Q.create(Z).getCredentials()}});var fQ=b((yQ)=>{Object.defineProperty(yQ,"__esModule",{value:!0});yQ.TokenHandler=void 0;var $q=LQ(),Qq=e8();class kQ{token;tokenExpiresAt;inFlightRequest;tokenOptions;constructor(Z){this.tokenOptions=Z}async processCredentials(){if(!this.tokenOptions.key&&!this.tokenOptions.keyFile)throw Error("No key or keyFile set.");if(!this.tokenOptions.key&&this.tokenOptions.keyFile){let Z=await(0,Qq.getCredentials)(this.tokenOptions.keyFile);this.tokenOptions.key=Z.privateKey,this.tokenOptions.email=Z.clientEmail}}isTokenExpiring(){if(!this.token||!this.tokenExpiresAt)return!0;let Z=new Date().getTime(),$=this.tokenOptions.eagerRefreshThresholdMillis??0;return this.tokenExpiresAt<=Z+$}hasExpired(){let Z=new Date().getTime();if(this.token&&this.tokenExpiresAt)return new Date().getTime()>=this.tokenExpiresAt;return!0}async getToken(Z){if(await this.processCredentials(),this.inFlightRequest&&!Z)return this.inFlightRequest;if(this.token&&!this.isTokenExpiring()&&!Z)return this.token;try{this.inFlightRequest=(0,$q.getToken)(this.tokenOptions);let $=await this.inFlightRequest;return this.token=$,this.tokenExpiresAt=new Date().getTime()+($.expires_in??0)*1000,$}finally{this.inFlightRequest=void 0}}}yQ.TokenHandler=kQ});var bQ=b((gQ)=>{Object.defineProperty(gQ,"__esModule",{value:!0});gQ.revokeToken=Vq;var Yq="https://oauth2.googleapis.com/revoke?token=",Wq=!0;async function Vq(Z,$){let Q=Yq+Z;return await $.request({url:Q,retry:Wq})}});var Z6=b((dQ)=>{Object.defineProperty(dQ,"__esModule",{value:!0});dQ.GoogleToken=void 0;var Xq=G0(),mQ=fQ(),Kq=bQ();class uQ{tokenOptions;tokenHandler;constructor(Z){if(this.tokenOptions=Z||{},this.tokenOptions.transporter=this.tokenOptions.transporter||{request:($)=>(0,Xq.request)($)},!this.tokenOptions.iss)this.tokenOptions.iss=this.tokenOptions.email;if(typeof this.tokenOptions.scope==="object")this.tokenOptions.scope=this.tokenOptions.scope.join(" ");this.tokenHandler=new mQ.TokenHandler(this.tokenOptions)}get expiresAt(){return this.tokenHandler.tokenExpiresAt}get accessToken(){return this.tokenHandler.token?.access_token}get idToken(){return this.tokenHandler.token?.id_token}get tokenType(){return this.tokenHandler.token?.token_type}get refreshToken(){return this.tokenHandler.token?.refresh_token}hasExpired(){return this.tokenHandler.hasExpired()}isTokenExpiring(){return this.tokenHandler.isTokenExpiring()}getToken(Z,$={forceRefresh:!1}){let Q;if(typeof Z==="function")Q=Z;else if(typeof Z==="object")$=Z;let Y=this.tokenHandler.getToken($.forceRefresh??!1);if(Q)Y.then((W)=>Q(null,W),Q);return Y}revokeToken(Z){if(!this.accessToken)return Promise.reject(Error("No token to revoke."));let $=(0,Kq.revokeToken)(this.accessToken,this.tokenOptions.transporter);if(Z)$.then(()=>Z(),Z);this.tokenHandler=new mQ.TokenHandler(this.tokenOptions)}get googleTokenOptions(){return this.tokenOptions}}dQ.GoogleToken=uQ});var Q6=b((pQ)=>{Object.defineProperty(pQ,"__esModule",{value:!0});pQ.JWTAccess=void 0;var qq=t8(),Hq=x0(),cQ={alg:"RS256",typ:"JWT"};class $6{email;key;keyId;projectId;eagerRefreshThresholdMillis;cache=new Hq.LRUCache({capacity:500,maxAge:3600000});constructor(Z,$,Q,Y){this.email=Z,this.key=$,this.keyId=Q,this.eagerRefreshThresholdMillis=Y??300000}getCachedKey(Z,$){let Q=Z;if($&&Array.isArray($)&&$.length)Q=Z?`${Z}_${$.join("_")}`:`${$.join("_")}`;else if(typeof $==="string")Q=Z?`${Z}_${$}`:$;if(!Q)throw Error("Scopes or url must be provided");return Q}getRequestHeaders(Z,$,Q){let Y=this.getCachedKey(Z,Q),W=this.cache.get(Y),J=Date.now();if(W&&W.expiration-J>this.eagerRefreshThresholdMillis)return new Headers(W.headers);let K=Math.floor(Date.now()/1000),q=$6.getExpirationTime(K),H;if(Array.isArray(Q))Q=Q.join(" ");if(Q)H={iss:this.email,sub:this.email,scope:Q,exp:q,iat:K};else H={iss:this.email,sub:this.email,aud:Z,exp:q,iat:K};if($){for(let D in H)if($[D])throw Error(`The '${D}' property is not allowed when passing additionalClaims. This claim is included in the JWT by default.`)}let w=this.keyId?{...cQ,kid:this.keyId}:cQ,F=Object.assign(H,$),z=qq.sign({header:w,payload:F,secret:this.key}),G=new Headers({authorization:`Bearer ${z}`});return this.cache.set(Y,{expiration:q*1000,headers:G}),G}static getExpirationTime(Z){return Z+3600}fromJSON(Z){if(!Z)throw Error("Must pass in a JSON object containing the service account auth settings.");if(!Z.client_email)throw Error("The incoming JSON object does not contain a client_email field");if(!Z.private_key)throw Error("The incoming JSON object does not contain a private_key field");this.email=Z.client_email,this.key=Z.private_key,this.keyId=Z.private_key_id,this.projectId=Z.project_id}fromStream(Z,$){if($)this.fromStreamAsync(Z).then(()=>$(),$);else return this.fromStreamAsync(Z)}fromStreamAsync(Z){return new Promise(($,Q)=>{if(!Z)Q(Error("Must pass in a stream containing the service account auth settings."));let Y="";Z.setEncoding("utf8").on("data",(W)=>Y+=W).on("error",Q).on("end",()=>{try{let W=JSON.parse(Y);this.fromJSON(W),$()}catch(W){Q(W)}})})}}pQ.JWTAccess=$6});var W6=b((nQ)=>{Object.defineProperty(nQ,"__esModule",{value:!0});nQ.JWT=void 0;var aQ=Z6(),wq=e8(),zq=Q6(),Fq=U4(),E1=S0();class Y6 extends Fq.OAuth2Client{email;keyFile;key;keyId;defaultScopes;scopes;scope;subject;gtoken;additionalClaims;useJWTAccessWithScope;defaultServicePath;access;constructor(Z={}){super(Z);this.email=Z.email,this.keyFile=Z.keyFile,this.key=Z.key,this.keyId=Z.keyId,this.scopes=Z.scopes,this.subject=Z.subject,this.additionalClaims=Z.additionalClaims,this.credentials={refresh_token:"jwt-placeholder",expiry_date:1}}createScoped(Z){let $=new Y6(this);return $.scopes=Z,$}async getRequestMetadataAsync(Z){Z=this.defaultServicePath?`https://${this.defaultServicePath}/`:Z;let $=!this.hasUserScopes()&&Z||this.useJWTAccessWithScope&&this.hasAnyScopes()||this.universeDomain!==E1.DEFAULT_UNIVERSE;if(this.subject&&this.universeDomain!==E1.DEFAULT_UNIVERSE)throw RangeError(`Service Account user is configured for the credential. Domain-wide delegation is not supported in universes other than ${E1.DEFAULT_UNIVERSE}`);if(!this.apiKey&&$)if(this.additionalClaims&&this.additionalClaims.target_audience){let{tokens:Q}=await this.refreshToken();return{headers:this.addSharedMetadataHeaders(new Headers({authorization:`Bearer ${Q.id_token}`}))}}else{if(!this.access)this.access=new zq.JWTAccess(this.email,this.key,this.keyId,this.eagerRefreshThresholdMillis);let Q;if(this.hasUserScopes())Q=this.scopes;else if(!Z)Q=this.defaultScopes;let Y=this.useJWTAccessWithScope||this.universeDomain!==E1.DEFAULT_UNIVERSE,W=await this.access.getRequestHeaders(Z??void 0,this.additionalClaims,Y?Q:void 0);return{headers:this.addSharedMetadataHeaders(W)}}else if(this.hasAnyScopes()||this.apiKey)return super.getRequestMetadataAsync(Z);else return{headers:new Headers}}async fetchIdToken(Z){let $=new aQ.GoogleToken({iss:this.email,sub:this.subject,scope:this.scopes||this.defaultScopes,keyFile:this.keyFile,key:this.key,additionalClaims:{target_audience:Z},transporter:this.transporter});if(await $.getToken({forceRefresh:!0}),!$.idToken)throw Error("Unknown error: Failed to fetch ID token");return $.idToken}hasUserScopes(){if(!this.scopes)return!1;return this.scopes.length>0}hasAnyScopes(){if(this.scopes&&this.scopes.length>0)return!0;if(this.defaultScopes&&this.defaultScopes.length>0)return!0;return!1}authorize(Z){if(Z)this.authorizeAsync().then(($)=>Z(null,$),Z);else return this.authorizeAsync()}async authorizeAsync(){let Z=await this.refreshToken();if(!Z)throw Error("No result returned");return this.credentials=Z.tokens,this.credentials.refresh_token="jwt-placeholder",this.key=this.gtoken.googleTokenOptions?.key,this.email=this.gtoken.googleTokenOptions?.iss,Z.tokens}async refreshTokenNoCache(){let Z=this.createGToken(),Q={access_token:(await Z.getToken({forceRefresh:this.isTokenExpiring()})).access_token,token_type:"Bearer",expiry_date:Z.expiresAt,id_token:Z.idToken};return this.emit("tokens",Q),{res:null,tokens:Q}}createGToken(){if(!this.gtoken)this.gtoken=new aQ.GoogleToken({iss:this.email,sub:this.subject,scope:this.scopes||this.defaultScopes,keyFile:this.keyFile,key:this.key,additionalClaims:this.additionalClaims,transporter:this.transporter});return this.gtoken}fromJSON(Z){if(!Z)throw Error("Must pass in a JSON object containing the service account auth settings.");if(!Z.client_email)throw Error("The incoming JSON object does not contain a client_email field");if(!Z.private_key)throw Error("The incoming JSON object does not contain a private_key field");this.email=Z.client_email,this.key=Z.private_key,this.keyId=Z.private_key_id,this.projectId=Z.project_id,this.quotaProjectId=Z.quota_project_id,this.universeDomain=Z.universe_domain||this.universeDomain}fromStream(Z,$){if($)this.fromStreamAsync(Z).then(()=>$(),$);else return this.fromStreamAsync(Z)}fromStreamAsync(Z){return new Promise(($,Q)=>{if(!Z)throw Error("Must pass in a stream containing the service account auth settings.");let Y="";Z.setEncoding("utf8").on("error",Q).on("data",(W)=>Y+=W).on("end",()=>{try{let W=JSON.parse(Y);this.fromJSON(W),$()}catch(W){Q(W)}})})}fromAPIKey(Z){if(typeof Z!=="string")throw Error("Must provide an API Key string.");this.apiKey=Z}async getCredentials(){if(this.key)return{private_key:this.key,client_email:this.email};else if(this.keyFile){let Z=this.createGToken(),$=await(0,wq.getCredentials)(this.keyFile);return{private_key:$.privateKey,client_email:$.clientEmail}}throw Error("A key or a keyFile must be provided to getCredentials.")}}nQ.JWT=Y6});var V6=b((sQ)=>{Object.defineProperty(sQ,"__esModule",{value:!0});sQ.UserRefreshClient=sQ.USER_REFRESH_ACCOUNT_TYPE=void 0;var Gq=U4(),Uq=S0();sQ.USER_REFRESH_ACCOUNT_TYPE="authorized_user";class O1 extends Gq.OAuth2Client{_refreshToken;constructor(Z,$,Q,Y,W){let J=Z&&typeof Z==="object"?Z:{clientId:Z,clientSecret:$,refreshToken:Q,eagerRefreshThresholdMillis:Y,forceRefreshOnFailure:W};super(J);this._refreshToken=J.refreshToken,this.credentials.refresh_token=J.refreshToken}async refreshTokenNoCache(){return super.refreshTokenNoCache(this._refreshToken)}async fetchIdToken(Z){let $={...O1.RETRY_CONFIG,url:this.endpoints.oauth2TokenUrl,method:"POST",data:new URLSearchParams({client_id:this._clientId,client_secret:this._clientSecret,grant_type:"refresh_token",refresh_token:this._refreshToken,target_audience:Z}),responseType:"json"};return Uq.AuthClient.setMethodName($,"fetchIdToken"),(await this.transporter.request($)).data.id_token}fromJSON(Z){if(!Z)throw Error("Must pass in a JSON object containing the user refresh token");if(Z.type!=="authorized_user")throw Error('The incoming JSON object does not have the "authorized_user" type');if(!Z.client_id)throw Error("The incoming JSON object does not contain a client_id field");if(!Z.client_secret)throw Error("The incoming JSON object does not contain a client_secret field");if(!Z.refresh_token)throw Error("The incoming JSON object does not contain a refresh_token field");this._clientId=Z.client_id,this._clientSecret=Z.client_secret,this._refreshToken=Z.refresh_token,this.credentials.refresh_token=Z.refresh_token,this.quotaProjectId=Z.quota_project_id,this.universeDomain=Z.universe_domain||this.universeDomain}fromStream(Z,$){if($)this.fromStreamAsync(Z).then(()=>$(),$);else return this.fromStreamAsync(Z)}async fromStreamAsync(Z){return new Promise(($,Q)=>{if(!Z)return Q(Error("Must pass in a stream containing the user refresh token."));let Y="";Z.setEncoding("utf8").on("error",Q).on("data",(W)=>Y+=W).on("end",()=>{try{let W=JSON.parse(Y);return this.fromJSON(W),$()}catch(W){return Q(W)}})})}static fromJSON(Z){let $=new O1;return $.fromJSON(Z),$}}sQ.UserRefreshClient=O1});var J6=b((eQ)=>{Object.defineProperty(eQ,"__esModule",{value:!0});eQ.Impersonated=eQ.IMPERSONATED_ACCOUNT_TYPE=void 0;var tQ=U4(),Mq=G0(),Iq=x0();eQ.IMPERSONATED_ACCOUNT_TYPE="impersonated_service_account";class t4 extends tQ.OAuth2Client{sourceClient;targetPrincipal;targetScopes;delegates;lifetime;endpoint;constructor(Z={}){super(Z);if(this.credentials={expiry_date:1,refresh_token:"impersonated-placeholder"},this.sourceClient=Z.sourceClient??new tQ.OAuth2Client,this.targetPrincipal=Z.targetPrincipal??"",this.delegates=Z.delegates??[],this.targetScopes=Z.targetScopes??[],this.lifetime=Z.lifetime??3600,!(0,Iq.originalOrCamelOptions)(Z).get("universe_domain"))this.universeDomain=this.sourceClient.universeDomain;else if(this.sourceClient.universeDomain!==this.universeDomain)throw RangeError(`Universe domain ${this.sourceClient.universeDomain} in source credentials does not match ${this.universeDomain} universe domain set for impersonated credentials.`);this.endpoint=Z.endpoint??`https://iamcredentials.${this.universeDomain}`}async sign(Z){await this.sourceClient.getAccessToken();let $=`projects/-/serviceAccounts/${this.targetPrincipal}`,Q=`${this.endpoint}/v1/${$}:signBlob`,Y={delegates:this.delegates,payload:Buffer.from(Z).toString("base64")};return(await this.sourceClient.request({...t4.RETRY_CONFIG,url:Q,data:Y,method:"POST"})).data}getTargetPrincipal(){return this.targetPrincipal}async refreshToken(){try{await this.sourceClient.getAccessToken();let Z="projects/-/serviceAccounts/"+this.targetPrincipal,$=`${this.endpoint}/v1/${Z}:generateAccessToken`,Q={delegates:this.delegates,scope:this.targetScopes,lifetime:this.lifetime+"s"},Y=await this.sourceClient.request({...t4.RETRY_CONFIG,url:$,data:Q,method:"POST"}),W=Y.data;return this.credentials.access_token=W.accessToken,this.credentials.expiry_date=Date.parse(W.expireTime),{tokens:this.credentials,res:Y}}catch(Z){if(!(Z instanceof Error))throw Z;let $=0,Q="";if(Z instanceof Mq.GaxiosError)$=Z?.response?.data?.error?.status,Q=Z?.response?.data?.error?.message;if($&&Q)throw Z.message=`${$}: unable to impersonate: ${Q}`,Z;else throw Z.message=`unable to impersonate: ${Z}`,Z}}async fetchIdToken(Z,$){await this.sourceClient.getAccessToken();let Q=`projects/-/serviceAccounts/${this.targetPrincipal}`,Y=`${this.endpoint}/v1/${Q}:generateIdToken`,W={delegates:this.delegates,audience:Z,includeEmail:$?.includeEmail??!0,useEmailAzp:$?.includeEmail??!0};return(await this.sourceClient.request({...t4.RETRY_CONFIG,url:Y,data:W,method:"POST"})).data.token}}eQ.Impersonated=t4});var X6=b((QY)=>{Object.defineProperty(QY,"__esModule",{value:!0});QY.OAuthClientAuthHandler=void 0;QY.getErrorFromOAuthErrorResponse=Lq;var v4=G0(),Tq=i4(),Bq=["PUT","POST","PATCH"];class $Y{#Z=(0,Tq.createCrypto)();#$;transporter;constructor(Z){if(Z&&"clientId"in Z)this.#$=Z,this.transporter=new v4.Gaxios;else this.#$=Z?.clientAuthentication,this.transporter=Z?.transporter||new v4.Gaxios}applyClientAuthenticationOptions(Z,$){if(Z.headers=v4.Gaxios.mergeHeaders(Z.headers),this.injectAuthenticatedHeaders(Z,$),!$)this.injectAuthenticatedRequestBody(Z)}injectAuthenticatedHeaders(Z,$){if($)Z.headers=v4.Gaxios.mergeHeaders(Z.headers,{authorization:`Bearer ${$}`});else if(this.#$?.confidentialClientType==="basic"){Z.headers=v4.Gaxios.mergeHeaders(Z.headers);let Q=this.#$.clientId,Y=this.#$.clientSecret||"",W=this.#Z.encodeBase64StringUtf8(`${Q}:${Y}`);v4.Gaxios.mergeHeaders(Z.headers,{authorization:`Basic ${W}`})}}injectAuthenticatedRequestBody(Z){if(this.#$?.confidentialClientType==="request-body"){let $=(Z.method||"GET").toUpperCase();if(!Bq.includes($))throw Error(`${$} HTTP method does not support ${this.#$.confidentialClientType} client authentication`);let Y=new Headers(Z.headers).get("content-type");if(Y?.startsWith("application/x-www-form-urlencoded")||Z.data instanceof URLSearchParams){let W=new URLSearchParams(Z.data??"");W.append("client_id",this.#$.clientId),W.append("client_secret",this.#$.clientSecret||""),Z.data=W}else if(Y?.startsWith("application/json"))Z.data=Z.data||{},Object.assign(Z.data,{client_id:this.#$.clientId,client_secret:this.#$.clientSecret||""});else throw Error(`${Y} content-types are not supported with ${this.#$.confidentialClientType} client authentication`)}}static get RETRY_CONFIG(){return{retry:!0,retryConfig:{httpMethodsToRetry:["GET","PUT","POST","HEAD","OPTIONS","DELETE"]}}}}QY.OAuthClientAuthHandler=$Y;function Lq(Z,$){let{error:Q,error_description:Y,error_uri:W}=Z,J=`Error code ${Q}`;if(typeof Y<"u")J+=`: ${Y}`;if(typeof W<"u")J+=` - ${W}`;let K=Error(J);if($){let q=Object.keys($);if($.stack)q.push("stack");q.forEach((H)=>{if(H!=="message")Object.defineProperty(K,H,{value:$[H],writable:!1,enumerable:!0})})}return K}});var j1=b((VY)=>{Object.defineProperty(VY,"__esModule",{value:!0});VY.StsCredentials=void 0;var Aq=G0(),Pq=S0(),WY=X6(),Sq=x0();class K6 extends WY.OAuthClientAuthHandler{#Z;constructor(Z={tokenExchangeEndpoint:""},$){if(typeof Z!=="object"||Z instanceof URL)Z={tokenExchangeEndpoint:Z,clientAuthentication:$};super(Z);this.#Z=Z.tokenExchangeEndpoint}async exchangeToken(Z,$,Q){let Y={grant_type:Z.grantType,resource:Z.resource,audience:Z.audience,scope:Z.scope?.join(" "),requested_token_type:Z.requestedTokenType,subject_token:Z.subjectToken,subject_token_type:Z.subjectTokenType,actor_token:Z.actingParty?.actorToken,actor_token_type:Z.actingParty?.actorTokenType,options:Q&&JSON.stringify(Q)},W={...K6.RETRY_CONFIG,url:this.#Z.toString(),method:"POST",headers:$,data:new URLSearchParams((0,Sq.removeUndefinedValuesInObject)(Y)),responseType:"json"};Pq.AuthClient.setMethodName(W,"exchangeToken"),this.applyClientAuthenticationOptions(W);try{let J=await this.transporter.request(W),K=J.data;return K.res=J,K}catch(J){if(J instanceof Aq.GaxiosError&&J.response)throw(0,WY.getErrorFromOAuthErrorResponse)(J.response.data,J);throw J}}}VY.StsCredentials=K6});var Y4=b((KY)=>{Object.defineProperty(KY,"__esModule",{value:!0});KY.BaseExternalAccountClient=KY.CLOUD_RESOURCE_MANAGER=KY.EXTERNAL_ACCOUNT_TYPE=KY.EXPIRATION_TIME_OFFSET=void 0;var Cq=G0(),vq=a("stream"),q6=S0(),Eq=j1(),XY=x0(),Oq=y8(),jq="urn:ietf:params:oauth:grant-type:token-exchange",_q="urn:ietf:params:oauth:token-type:access_token",H6="https://www.googleapis.com/auth/cloud-platform",hq=3600;KY.EXPIRATION_TIME_OFFSET=300000;KY.EXTERNAL_ACCOUNT_TYPE="external_account";KY.CLOUD_RESOURCE_MANAGER="https://cloudresourcemanager.googleapis.com/v1/projects/";var kq="//iam\\.googleapis\\.com/locations/[^/]+/workforcePools/[^/]+/providers/.+",yq="https://sts.{universeDomain}/v1/token";class _1 extends q6.AuthClient{scopes;projectNumber;audience;subjectTokenType;stsCredential;clientAuth;credentialSourceType;cachedAccessToken;serviceAccountImpersonationUrl;serviceAccountImpersonationLifetime;workforcePoolUserProject;configLifetimeRequested;tokenUrl;cloudResourceManagerURL;supplierContext;#Z=null;constructor(Z){super(Z);let $=(0,XY.originalOrCamelOptions)(Z),Q=$.get("type");if(Q&&Q!==KY.EXTERNAL_ACCOUNT_TYPE)throw Error(`Expected "${KY.EXTERNAL_ACCOUNT_TYPE}" type but received "${Z.type}"`);let Y=$.get("client_id"),W=$.get("client_secret");this.tokenUrl=$.get("token_url")??yq.replace("{universeDomain}",this.universeDomain);let J=$.get("subject_token_type"),K=$.get("workforce_pool_user_project"),q=$.get("service_account_impersonation_url"),H=$.get("service_account_impersonation"),w=(0,XY.originalOrCamelOptions)(H).get("token_lifetime_seconds");if(this.cloudResourceManagerURL=new URL($.get("cloud_resource_manager_url")||`https://cloudresourcemanager.${this.universeDomain}/v1/projects/`),Y)this.clientAuth={confidentialClientType:"basic",clientId:Y,clientSecret:W};this.stsCredential=new Eq.StsCredentials({tokenExchangeEndpoint:this.tokenUrl,clientAuthentication:this.clientAuth}),this.scopes=$.get("scopes")||[H6],this.cachedAccessToken=null,this.audience=$.get("audience"),this.subjectTokenType=J,this.workforcePoolUserProject=K;let F=new RegExp(kq);if(this.workforcePoolUserProject&&!this.audience.match(F))throw Error("workforcePoolUserProject should not be set for non-workforce pool credentials.");if(this.serviceAccountImpersonationUrl=q,this.serviceAccountImpersonationLifetime=w,this.serviceAccountImpersonationLifetime)this.configLifetimeRequested=!0;else this.configLifetimeRequested=!1,this.serviceAccountImpersonationLifetime=hq;this.projectNumber=this.getProjectNumber(this.audience),this.supplierContext={audience:this.audience,subjectTokenType:this.subjectTokenType,transporter:this.transporter}}getServiceAccountEmail(){if(this.serviceAccountImpersonationUrl){if(this.serviceAccountImpersonationUrl.length>256)throw RangeError(`URL is too long: ${this.serviceAccountImpersonationUrl}`);return/serviceAccounts\/(?<email>[^:]+):generateAccessToken$/.exec(this.serviceAccountImpersonationUrl)?.groups?.email||null}return null}setCredentials(Z){super.setCredentials(Z),this.cachedAccessToken=Z}async getAccessToken(){if(!this.cachedAccessToken||this.isExpired(this.cachedAccessToken))await this.refreshAccessTokenAsync();return{token:this.cachedAccessToken.access_token,res:this.cachedAccessToken.res}}async getRequestHeaders(){let Z=await this.getAccessToken(),$=new Headers({authorization:`Bearer ${Z.token}`});return this.addSharedMetadataHeaders($)}request(Z,$){if($)this.requestAsync(Z).then((Q)=>$(null,Q),(Q)=>{return $(Q,Q.response)});else return this.requestAsync(Z)}async getProjectId(){let Z=this.projectNumber||this.workforcePoolUserProject;if(this.projectId)return this.projectId;else if(Z){let $=await this.getRequestHeaders(),Q={..._1.RETRY_CONFIG,headers:$,url:`${this.cloudResourceManagerURL.toString()}${Z}`,responseType:"json"};q6.AuthClient.setMethodName(Q,"getProjectId");let Y=await this.transporter.request(Q);return this.projectId=Y.data.projectId,this.projectId}return null}async requestAsync(Z,$=!1){let Q;try{let Y=await this.getRequestHeaders();Z.headers=Cq.Gaxios.mergeHeaders(Z.headers),this.addUserProjectAndAuthHeaders(Z.headers,Y),Q=await this.transporter.request(Z)}catch(Y){let W=Y.response;if(W){let J=W.status,K=W.config.data instanceof vq.Readable;if(!$&&(J===401||J===403)&&!K&&this.forceRefreshOnFailure)return await this.refreshAccessTokenAsync(),await this.requestAsync(Z,!0)}throw Y}return Q}async refreshAccessTokenAsync(){this.#Z=this.#Z||this.#$();try{return await this.#Z}finally{this.#Z=null}}async#$(){let Z=await this.retrieveSubjectToken(),$={grantType:jq,audience:this.audience,requestedTokenType:_q,subjectToken:Z,subjectTokenType:this.subjectTokenType,scope:this.serviceAccountImpersonationUrl?[H6]:this.getScopesArray()},Q=!this.clientAuth&&this.workforcePoolUserProject?{userProject:this.workforcePoolUserProject}:void 0,Y=new Headers({"x-goog-api-client":this.getMetricsHeaderValue()}),W=await this.stsCredential.exchangeToken($,Y,Q);if(this.serviceAccountImpersonationUrl)this.cachedAccessToken=await this.getImpersonatedAccessToken(W.access_token);else if(W.expires_in)this.cachedAccessToken={access_token:W.access_token,expiry_date:new Date().getTime()+W.expires_in*1000,res:W.res};else this.cachedAccessToken={access_token:W.access_token,res:W.res};return this.credentials={},Object.assign(this.credentials,this.cachedAccessToken),delete this.credentials.res,this.emit("tokens",{refresh_token:null,expiry_date:this.cachedAccessToken.expiry_date,access_token:this.cachedAccessToken.access_token,token_type:"Bearer",id_token:null}),this.cachedAccessToken}getProjectNumber(Z){let $=Z.match(/\/projects\/([^/]+)/);if(!$)return null;return $[1]}async getImpersonatedAccessToken(Z){let $={..._1.RETRY_CONFIG,url:this.serviceAccountImpersonationUrl,method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${Z}`},data:{scope:this.getScopesArray(),lifetime:this.serviceAccountImpersonationLifetime+"s"},responseType:"json"};q6.AuthClient.setMethodName($,"getImpersonatedAccessToken");let Q=await this.transporter.request($),Y=Q.data;return{access_token:Y.accessToken,expiry_date:new Date(Y.expireTime).getTime(),res:Q}}isExpired(Z){let $=new Date().getTime();return Z.expiry_date?$>=Z.expiry_date-this.eagerRefreshThresholdMillis:!1}getScopesArray(){if(typeof this.scopes==="string")return[this.scopes];return this.scopes||[H6]}getMetricsHeaderValue(){let Z=process.version.replace(/^v/,""),$=this.serviceAccountImpersonationUrl!==void 0,Q=this.credentialSourceType?this.credentialSourceType:"unknown";return`gl-node/${Z} auth/${Oq.pkg.version} google-byoid-sdk source/${Q} sa-impersonation/${$} config-lifetime/${this.configLifetimeRequested}`}getTokenUrl(){return this.tokenUrl}}KY.BaseExternalAccountClient=_1});var FY=b((wY)=>{Object.defineProperty(wY,"__esModule",{value:!0});wY.FileSubjectTokenSupplier=void 0;var z6=a("util"),F6=a("fs"),gq=(0,z6.promisify)(F6.readFile??(()=>{})),bq=(0,z6.promisify)(F6.realpath??(()=>{})),mq=(0,z6.promisify)(F6.lstat??(()=>{}));class HY{filePath;formatType;subjectTokenFieldName;constructor(Z){this.filePath=Z.filePath,this.formatType=Z.formatType,this.subjectTokenFieldName=Z.subjectTokenFieldName}async getSubjectToken(){let Z=this.filePath;try{if(Z=await bq(Z),!(await mq(Z)).isFile())throw Error()}catch(Y){if(Y instanceof Error)Y.message=`The file at ${Z} does not exist, or it is not a file. ${Y.message}`;throw Y}let $,Q=await gq(Z,{encoding:"utf8"});if(this.formatType==="text")$=Q;else if(this.formatType==="json"&&this.subjectTokenFieldName)$=JSON.parse(Q)[this.subjectTokenFieldName];if(!$)throw Error("Unable to parse the subject_token from the credential_source file");return $}}wY.FileSubjectTokenSupplier=HY});var MY=b((UY)=>{Object.defineProperty(UY,"__esModule",{value:!0});UY.UrlSubjectTokenSupplier=void 0;var uq=S0();class GY{url;headers;formatType;subjectTokenFieldName;additionalGaxiosOptions;constructor(Z){this.url=Z.url,this.formatType=Z.formatType,this.subjectTokenFieldName=Z.subjectTokenFieldName,this.headers=Z.headers,this.additionalGaxiosOptions=Z.additionalGaxiosOptions}async getSubjectToken(Z){let $={...this.additionalGaxiosOptions,url:this.url,method:"GET",headers:this.headers,responseType:this.formatType};uq.AuthClient.setMethodName($,"getSubjectToken");let Q;if(this.formatType==="text")Q=(await Z.transporter.request($)).data;else if(this.formatType==="json"&&this.subjectTokenFieldName)Q=(await Z.transporter.request($)).data[this.subjectTokenFieldName];if(!Q)throw Error("Unable to parse the subject_token from the credential_source URL");return Q}}UY.UrlSubjectTokenSupplier=GY});var BY=b((NY)=>{Object.defineProperty(NY,"__esModule",{value:!0});NY.CertificateSubjectTokenSupplier=NY.InvalidConfigurationError=NY.CertificateSourceUnavailableError=NY.CERTIFICATE_CONFIGURATION_ENV_VARIABLE=void 0;var h1=x0(),k1=a("fs"),y1=a("crypto"),dq=a("https");NY.CERTIFICATE_CONFIGURATION_ENV_VARIABLE="GOOGLE_API_CERTIFICATE_CONFIG";class o0 extends Error{constructor(Z){super(Z);this.name="CertificateSourceUnavailableError"}}NY.CertificateSourceUnavailableError=o0;class g0 extends Error{constructor(Z){super(Z);this.name="InvalidConfigurationError"}}NY.InvalidConfigurationError=g0;class IY{certificateConfigPath;trustChainPath;cert;key;constructor(Z){if(!Z.useDefaultCertificateConfig&&!Z.certificateConfigLocation)throw new g0("Either `useDefaultCertificateConfig` must be true or a `certificateConfigLocation` must be provided.");if(Z.useDefaultCertificateConfig&&Z.certificateConfigLocation)throw new g0("Both `useDefaultCertificateConfig` and `certificateConfigLocation` cannot be provided.");this.trustChainPath=Z.trustChainPath,this.certificateConfigPath=Z.certificateConfigLocation??""}async createMtlsHttpsAgent(){if(!this.key||!this.cert)throw new g0("Cannot create mTLS Agent with missing certificate or key");return new dq.Agent({key:this.key,cert:this.cert})}async getSubjectToken(){this.certificateConfigPath=await this.#Z();let{certPath:Z,keyPath:$}=await this.#$();return{cert:this.cert,key:this.key}=await this.#Q(Z,$),await this.#Y(this.cert)}async#Z(){let Z=this.certificateConfigPath;if(Z){if(await(0,h1.isValidFile)(Z))return Z;throw new o0(`Provided certificate config path is invalid: ${Z}`)}let $=process.env[NY.CERTIFICATE_CONFIGURATION_ENV_VARIABLE];if($){if(await(0,h1.isValidFile)($))return $;throw new o0(`Path from environment variable "${NY.CERTIFICATE_CONFIGURATION_ENV_VARIABLE}" is invalid: ${$}`)}let Q=(0,h1.getWellKnownCertificateConfigFileLocation)();if(await(0,h1.isValidFile)(Q))return Q;throw new o0(`Could not find certificate configuration file. Searched override path, the "${NY.CERTIFICATE_CONFIGURATION_ENV_VARIABLE}" env var, and the gcloud path (${Q}).`)}async#$(){let Z=this.certificateConfigPath,$;try{$=await k1.promises.readFile(Z,"utf8")}catch(Q){throw new o0(`Failed to read certificate config file at: ${Z}`)}try{let Q=JSON.parse($),Y=Q?.cert_configs?.workload?.cert_path,W=Q?.cert_configs?.workload?.key_path;if(!Y||!W)throw new g0(`Certificate config file (${Z}) is missing required "cert_path" or "key_path" in the workload config.`);return{certPath:Y,keyPath:W}}catch(Q){if(Q instanceof g0)throw Q;throw new g0(`Failed to parse certificate config from ${Z}: ${Q.message}`)}}async#Q(Z,$){let Q,Y;try{Q=await k1.promises.readFile(Z),new y1.X509Certificate(Q)}catch(W){let J=W instanceof Error?W.message:String(W);throw new o0(`Failed to read certificate file at ${Z}: ${J}`)}try{Y=await k1.promises.readFile($),(0,y1.createPrivateKey)(Y)}catch(W){let J=W instanceof Error?W.message:String(W);throw new o0(`Failed to read private key file at ${$}: ${J}`)}return{cert:Q,key:Y}}async#Y(Z){let $=new y1.X509Certificate(Z);if(!this.trustChainPath)return JSON.stringify([$.raw.toString("base64")]);try{let W=((await k1.promises.readFile(this.trustChainPath,"utf8")).match(/-----BEGIN CERTIFICATE-----[^-]+-----END CERTIFICATE-----/g)??[]).map((q,H)=>{try{return new y1.X509Certificate(q)}catch(w){let F=w instanceof Error?w.message:String(w);throw new g0(`Failed to parse certificate at index ${H} in trust chain file ${this.trustChainPath}: ${F}`)}}),J=W.findIndex((q)=>$.raw.equals(q.raw)),K;if(J===-1)K=[$,...W];else if(J===0)K=W;else throw new g0(`Leaf certificate exists in the trust chain but is not the first entry (found at index ${J}).`);return JSON.stringify(K.map((q)=>q.raw.toString("base64")))}catch(Q){if(Q instanceof g0)throw Q;let Y=Q instanceof Error?Q.message:String(Q);throw new o0(`Failed to process certificate chain from ${this.trustChainPath}: ${Y}`)}}}NY.CertificateSubjectTokenSupplier=IY});var D6=b((AY)=>{Object.defineProperty(AY,"__esModule",{value:!0});AY.IdentityPoolClient=void 0;var pq=Y4(),G6=x0(),iq=FY(),aq=MY(),LY=BY(),nq=j1(),RY=G0();class U6 extends pq.BaseExternalAccountClient{subjectTokenSupplier;constructor(Z){super(Z);let $=(0,G6.originalOrCamelOptions)(Z),Q=$.get("credential_source"),Y=$.get("subject_token_supplier");if(!Q&&!Y)throw Error("A credential source or subject token supplier must be specified.");if(Q&&Y)throw Error("Only one of credential source or subject token supplier can be specified.");if(Y)this.subjectTokenSupplier=Y,this.credentialSourceType="programmatic";else{let W=(0,G6.originalOrCamelOptions)(Q),J=(0,G6.originalOrCamelOptions)(W.get("format")),K=J.get("type")||"text",q=J.get("subject_token_field_name");if(K!=="json"&&K!=="text")throw Error(`Invalid credential_source format "${K}"`);if(K==="json"&&!q)throw Error("Missing subject_token_field_name for JSON credential_source format");let H=W.get("file"),w=W.get("url"),F=W.get("certificate"),z=W.get("headers");if(H&&w||w&&F||H&&F)throw Error('No valid Identity Pool "credential_source" provided, must be either file, url, or certificate.');else if(H)this.credentialSourceType="file",this.subjectTokenSupplier=new iq.FileSubjectTokenSupplier({filePath:H,formatType:K,subjectTokenFieldName:q});else if(w)this.credentialSourceType="url",this.subjectTokenSupplier=new aq.UrlSubjectTokenSupplier({url:w,formatType:K,subjectTokenFieldName:q,headers:z,additionalGaxiosOptions:U6.RETRY_CONFIG});else if(F){this.credentialSourceType="certificate";let G=new LY.CertificateSubjectTokenSupplier({useDefaultCertificateConfig:F.use_default_certificate_config,certificateConfigLocation:F.certificate_config_location,trustChainPath:F.trust_chain_path});this.subjectTokenSupplier=G}else throw Error('No valid Identity Pool "credential_source" provided, must be either file, url, or certificate.')}}async retrieveSubjectToken(){let Z=await this.subjectTokenSupplier.getSubjectToken(this.supplierContext);if(this.subjectTokenSupplier instanceof LY.CertificateSubjectTokenSupplier){let $=await this.subjectTokenSupplier.createMtlsHttpsAgent();this.stsCredential=new nq.StsCredentials({tokenExchangeEndpoint:this.getTokenUrl(),clientAuthentication:this.clientAuth,transporter:new RY.Gaxios({agent:$})}),this.transporter=new RY.Gaxios({...this.transporter.defaults||{},agent:$})}return Z}}AY.IdentityPoolClient=U6});var M6=b((EY)=>{Object.defineProperty(EY,"__esModule",{value:!0});EY.AwsRequestSigner=void 0;var f1=G0(),CY=i4(),SY="AWS4-HMAC-SHA256",rq="aws4_request";class vY{getCredentials;region;crypto;constructor(Z,$){this.getCredentials=Z,this.region=$,this.crypto=(0,CY.createCrypto)()}async getRequestOptions(Z){if(!Z.url)throw RangeError('"url" is required in "amzOptions"');let $=typeof Z.data==="object"?JSON.stringify(Z.data):Z.data,Q=Z.url,Y=Z.method||"GET",W=Z.body||$,J=Z.headers,K=await this.getCredentials(),q=new URL(Q);if(typeof W!=="string"&&W!==void 0)throw TypeError(`'requestPayload' is expected to be a string if provided. Got: ${W}`);let H=await oq({crypto:this.crypto,host:q.host,canonicalUri:q.pathname,canonicalQuerystring:q.search.slice(1),method:Y,region:this.region,securityCredentials:K,requestPayload:W,additionalAmzHeaders:J}),w=f1.Gaxios.mergeHeaders(H.amzDate?{"x-amz-date":H.amzDate}:{},{authorization:H.authorizationHeader,host:q.host},J||{});if(K.token)f1.Gaxios.mergeHeaders(w,{"x-amz-security-token":K.token});let F={url:Q,method:Y,headers:w};if(W!==void 0)F.body=W;return F}}EY.AwsRequestSigner=vY;async function e4(Z,$,Q){return await Z.signWithHmacSha256($,Q)}async function sq(Z,$,Q,Y,W){let J=await e4(Z,`AWS4${$}`,Q),K=await e4(Z,J,Y),q=await e4(Z,K,W);return await e4(Z,q,"aws4_request")}async function oq(Z){let $=f1.Gaxios.mergeHeaders(Z.additionalAmzHeaders),Q=Z.requestPayload||"",Y=Z.host.split(".")[0],W=new Date,J=W.toISOString().replace(/[-:]/g,"").replace(/\.[0-9]+/,""),K=W.toISOString().replace(/[-]/g,"").replace(/T.*/,"");if(Z.securityCredentials.token)$.set("x-amz-security-token",Z.securityCredentials.token);let q=f1.Gaxios.mergeHeaders({host:Z.host},$.has("date")?{}:{"x-amz-date":J},$),H="",w=[...q.keys()].sort();w.forEach((y)=>{H+=`${y}:${q.get(y)}
17
- `});let F=w.join(";"),z=await Z.crypto.sha256DigestHex(Q),G=`${Z.method.toUpperCase()}
18
- ${Z.canonicalUri}
19
- ${Z.canonicalQuerystring}
20
- ${H}
21
- ${F}
22
- ${z}`,D=`${K}/${Z.region}/${Y}/${rq}`,T=`${SY}
23
- ${J}
24
- ${D}
25
- `+await Z.crypto.sha256DigestHex(G),I=await sq(Z.crypto,Z.securityCredentials.secretAccessKey,K,Z.region,Y),P=await e4(Z.crypto,I,T),O=`${SY} Credential=${Z.securityCredentials.accessKeyId}/${D}, SignedHeaders=${F}, Signature=${(0,CY.fromArrayBufferToHex)(P)}`;return{amzDate:$.has("date")?void 0:J,authorizationHeader:O,canonicalQuerystring:Z.canonicalQuerystring}}});var kY=b((_Y)=>{Object.defineProperty(_Y,"__esModule",{value:!0});_Y.DefaultAwsSecurityCredentialsSupplier=void 0;var g1=S0();class jY{regionUrl;securityCredentialsUrl;imdsV2SessionTokenUrl;additionalGaxiosOptions;constructor(Z){this.regionUrl=Z.regionUrl,this.securityCredentialsUrl=Z.securityCredentialsUrl,this.imdsV2SessionTokenUrl=Z.imdsV2SessionTokenUrl,this.additionalGaxiosOptions=Z.additionalGaxiosOptions}async getAwsRegion(Z){if(this.#Y)return this.#Y;let $=new Headers;if(!this.#Y&&this.imdsV2SessionTokenUrl)$.set("x-aws-ec2-metadata-token",await this.#Z(Z.transporter));if(!this.regionUrl)throw RangeError('Unable to determine AWS region due to missing "options.credential_source.region_url"');let Q={...this.additionalGaxiosOptions,url:this.regionUrl,method:"GET",responseType:"text",headers:$};g1.AuthClient.setMethodName(Q,"getAwsRegion");let Y=await Z.transporter.request(Q);return Y.data.substr(0,Y.data.length-1)}async getAwsSecurityCredentials(Z){if(this.#W)return this.#W;let $=new Headers;if(this.imdsV2SessionTokenUrl)$.set("x-aws-ec2-metadata-token",await this.#Z(Z.transporter));let Q=await this.#$($,Z.transporter),Y=await this.#Q(Q,$,Z.transporter);return{accessKeyId:Y.AccessKeyId,secretAccessKey:Y.SecretAccessKey,token:Y.Token}}async#Z(Z){let $={...this.additionalGaxiosOptions,url:this.imdsV2SessionTokenUrl,method:"PUT",responseType:"text",headers:{"x-aws-ec2-metadata-token-ttl-seconds":"300"}};return g1.AuthClient.setMethodName($,"#getImdsV2SessionToken"),(await Z.request($)).data}async#$(Z,$){if(!this.securityCredentialsUrl)throw Error('Unable to determine AWS role name due to missing "options.credential_source.url"');let Q={...this.additionalGaxiosOptions,url:this.securityCredentialsUrl,method:"GET",responseType:"text",headers:Z};return g1.AuthClient.setMethodName(Q,"#getAwsRoleName"),(await $.request(Q)).data}async#Q(Z,$,Q){let Y={...this.additionalGaxiosOptions,url:`${this.securityCredentialsUrl}/${Z}`,headers:$,responseType:"json"};return g1.AuthClient.setMethodName(Y,"#retrieveAwsSecurityCredentials"),(await Q.request(Y)).data}get#Y(){return process.env.AWS_REGION||process.env.AWS_DEFAULT_REGION||null}get#W(){if(process.env.AWS_ACCESS_KEY_ID&&process.env.AWS_SECRET_ACCESS_KEY)return{accessKeyId:process.env.AWS_ACCESS_KEY_ID,secretAccessKey:process.env.AWS_SECRET_ACCESS_KEY,token:process.env.AWS_SESSION_TOKEN};return null}}_Y.DefaultAwsSecurityCredentialsSupplier=jY});var I6=b((xY)=>{Object.defineProperty(xY,"__esModule",{value:!0});xY.AwsClient=void 0;var tq=M6(),eq=Y4(),ZH=kY(),yY=x0(),$H=G0();class b1 extends eq.BaseExternalAccountClient{environmentId;awsSecurityCredentialsSupplier;regionalCredVerificationUrl;awsRequestSigner;region;static#Z="https://sts.{region}.amazonaws.com?Action=GetCallerIdentity&Version=2011-06-15";static AWS_EC2_METADATA_IPV4_ADDRESS="169.254.169.254";static AWS_EC2_METADATA_IPV6_ADDRESS="fd00:ec2::254";constructor(Z){super(Z);let $=(0,yY.originalOrCamelOptions)(Z),Q=$.get("credential_source"),Y=$.get("aws_security_credentials_supplier");if(!Q&&!Y)throw Error("A credential source or AWS security credentials supplier must be specified.");if(Q&&Y)throw Error("Only one of credential source or AWS security credentials supplier can be specified.");if(Y)this.awsSecurityCredentialsSupplier=Y,this.regionalCredVerificationUrl=b1.#Z,this.credentialSourceType="programmatic";else{let W=(0,yY.originalOrCamelOptions)(Q);this.environmentId=W.get("environment_id");let J=W.get("region_url"),K=W.get("url"),q=W.get("imdsv2_session_token_url");this.awsSecurityCredentialsSupplier=new ZH.DefaultAwsSecurityCredentialsSupplier({regionUrl:J,securityCredentialsUrl:K,imdsV2SessionTokenUrl:q}),this.regionalCredVerificationUrl=W.get("regional_cred_verification_url"),this.credentialSourceType="aws",this.validateEnvironmentId()}this.awsRequestSigner=null,this.region=""}validateEnvironmentId(){let Z=this.environmentId?.match(/^(aws)(\d+)$/);if(!Z||!this.regionalCredVerificationUrl)throw Error('No valid AWS "credential_source" provided');else if(parseInt(Z[2],10)!==1)throw Error(`aws version "${Z[2]}" is not supported in the current build.`)}async retrieveSubjectToken(){if(!this.awsRequestSigner)this.region=await this.awsSecurityCredentialsSupplier.getAwsRegion(this.supplierContext),this.awsRequestSigner=new tq.AwsRequestSigner(async()=>{return this.awsSecurityCredentialsSupplier.getAwsSecurityCredentials(this.supplierContext)},this.region);let Z=await this.awsRequestSigner.getRequestOptions({...b1.RETRY_CONFIG,url:this.regionalCredVerificationUrl.replace("{region}",this.region),method:"POST"}),$=[];return $H.Gaxios.mergeHeaders({"x-goog-cloud-target-resource":this.audience},Z.headers).forEach((Y,W)=>$.push({key:W,value:Y})),encodeURIComponent(JSON.stringify({url:Z.url,method:Z.method,headers:$}))}}xY.AwsClient=b1});var S6=b((mY)=>{Object.defineProperty(mY,"__esModule",{value:!0});mY.InvalidSubjectTokenError=mY.InvalidMessageFieldError=mY.InvalidCodeFieldError=mY.InvalidTokenTypeFieldError=mY.InvalidExpirationTimeFieldError=mY.InvalidSuccessFieldError=mY.InvalidVersionFieldError=mY.ExecutableResponseError=mY.ExecutableResponse=void 0;var m1="urn:ietf:params:oauth:token-type:saml2",N6="urn:ietf:params:oauth:token-type:id_token",T6="urn:ietf:params:oauth:token-type:jwt";class gY{version;success;expirationTime;tokenType;errorCode;errorMessage;subjectToken;constructor(Z){if(!Z.version)throw new B6("Executable response must contain a 'version' field.");if(Z.success===void 0)throw new L6("Executable response must contain a 'success' field.");if(this.version=Z.version,this.success=Z.success,this.success){if(this.expirationTime=Z.expiration_time,this.tokenType=Z.token_type,this.tokenType!==m1&&this.tokenType!==N6&&this.tokenType!==T6)throw new R6(`Executable response must contain a 'token_type' field when successful and it must be one of ${N6}, ${T6}, or ${m1}.`);if(this.tokenType===m1){if(!Z.saml_response)throw new u1(`Executable response must contain a 'saml_response' field when token_type=${m1}.`);this.subjectToken=Z.saml_response}else{if(!Z.id_token)throw new u1(`Executable response must contain a 'id_token' field when token_type=${N6} or ${T6}.`);this.subjectToken=Z.id_token}}else{if(!Z.code)throw new A6("Executable response must contain a 'code' field when unsuccessful.");if(!Z.message)throw new P6("Executable response must contain a 'message' field when unsuccessful.");this.errorCode=Z.code,this.errorMessage=Z.message}}isValid(){return!this.isExpired()&&this.success}isExpired(){return this.expirationTime!==void 0&&this.expirationTime<Math.round(Date.now()/1000)}}mY.ExecutableResponse=gY;class t0 extends Error{constructor(Z){super(Z);Object.setPrototypeOf(this,new.target.prototype)}}mY.ExecutableResponseError=t0;class B6 extends t0{}mY.InvalidVersionFieldError=B6;class L6 extends t0{}mY.InvalidSuccessFieldError=L6;class bY extends t0{}mY.InvalidExpirationTimeFieldError=bY;class R6 extends t0{}mY.InvalidTokenTypeFieldError=R6;class A6 extends t0{}mY.InvalidCodeFieldError=A6;class P6 extends t0{}mY.InvalidMessageFieldError=P6;class u1 extends t0{}mY.InvalidSubjectTokenError=u1});var O6=b((dY)=>{Object.defineProperty(dY,"__esModule",{value:!0});dY.PluggableAuthHandler=dY.ExecutableError=void 0;var D4=S6(),HH=a("child_process"),C6=a("fs");class v6 extends Error{code;constructor(Z,$){super(`The executable failed with exit code: ${$} and error message: ${Z}.`);this.code=$,Object.setPrototypeOf(this,new.target.prototype)}}dY.ExecutableError=v6;class E6{commandComponents;timeoutMillis;outputFile;constructor(Z){if(!Z.command)throw Error("No command provided.");if(this.commandComponents=E6.parseCommand(Z.command),this.timeoutMillis=Z.timeoutMillis,!this.timeoutMillis)throw Error("No timeoutMillis provided.");this.outputFile=Z.outputFile}retrieveResponseFromExecutable(Z){return new Promise(($,Q)=>{let Y=HH.spawn(this.commandComponents[0],this.commandComponents.slice(1),{env:{...process.env,...Object.fromEntries(Z)}}),W="";Y.stdout.on("data",(K)=>{W+=K}),Y.stderr.on("data",(K)=>{W+=K});let J=setTimeout(()=>{return Y.removeAllListeners(),Y.kill(),Q(Error("The executable failed to finish within the timeout specified."))},this.timeoutMillis);Y.on("close",(K)=>{if(clearTimeout(J),K===0)try{let q=JSON.parse(W),H=new D4.ExecutableResponse(q);return $(H)}catch(q){if(q instanceof D4.ExecutableResponseError)return Q(q);return Q(new D4.ExecutableResponseError(`The executable returned an invalid response: ${W}`))}else return Q(new v6(W,K.toString()))})})}async retrieveCachedResponse(){if(!this.outputFile||this.outputFile.length===0)return;let Z;try{Z=await C6.promises.realpath(this.outputFile)}catch{return}if(!(await C6.promises.lstat(Z)).isFile())return;let $=await C6.promises.readFile(Z,{encoding:"utf8"});if($==="")return;try{let Q=JSON.parse($);if(new D4.ExecutableResponse(Q).isValid())return new D4.ExecutableResponse(Q);return}catch(Q){if(Q instanceof D4.ExecutableResponseError)throw Q;throw new D4.ExecutableResponseError(`The output file contained an invalid response: ${$}`)}}static parseCommand(Z){let $=Z.match(/(?:[^\s"]+|"[^"]*")+/g);if(!$)throw Error(`Provided command: "${Z}" could not be parsed.`);for(let Q=0;Q<$.length;Q++)if($[Q][0]==='"'&&$[Q].slice(-1)==='"')$[Q]=$[Q].slice(1,-1);return $}}dY.PluggableAuthHandler=E6});var _6=b((j6)=>{Object.defineProperty(j6,"__esModule",{value:!0});j6.PluggableAuthClient=j6.ExecutableError=void 0;var zH=Y4(),FH=S6(),cY=O6(),GH=O6();Object.defineProperty(j6,"ExecutableError",{enumerable:!0,get:function(){return GH.ExecutableError}});var UH=30000,pY=5000,iY=120000,DH="GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES",aY=1;class nY extends zH.BaseExternalAccountClient{command;timeoutMillis;outputFile;handler;constructor(Z){super(Z);if(!Z.credential_source.executable)throw Error('No valid Pluggable Auth "credential_source" provided.');if(this.command=Z.credential_source.executable.command,!this.command)throw Error('No valid Pluggable Auth "credential_source" provided.');if(Z.credential_source.executable.timeout_millis===void 0)this.timeoutMillis=UH;else if(this.timeoutMillis=Z.credential_source.executable.timeout_millis,this.timeoutMillis<pY||this.timeoutMillis>iY)throw Error(`Timeout must be between ${pY} and ${iY} milliseconds.`);this.outputFile=Z.credential_source.executable.output_file,this.handler=new cY.PluggableAuthHandler({command:this.command,timeoutMillis:this.timeoutMillis,outputFile:this.outputFile}),this.credentialSourceType="executable"}async retrieveSubjectToken(){if(process.env[DH]!=="1")throw Error("Pluggable Auth executables need to be explicitly allowed to run by setting the GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES environment Variable to 1.");let Z=void 0;if(this.outputFile)Z=await this.handler.retrieveCachedResponse();if(!Z){let $=new Map;if($.set("GOOGLE_EXTERNAL_ACCOUNT_AUDIENCE",this.audience),$.set("GOOGLE_EXTERNAL_ACCOUNT_TOKEN_TYPE",this.subjectTokenType),$.set("GOOGLE_EXTERNAL_ACCOUNT_INTERACTIVE","0"),this.outputFile)$.set("GOOGLE_EXTERNAL_ACCOUNT_OUTPUT_FILE",this.outputFile);let Q=this.getServiceAccountEmail();if(Q)$.set("GOOGLE_EXTERNAL_ACCOUNT_IMPERSONATED_EMAIL",Q);Z=await this.handler.retrieveResponseFromExecutable($)}if(Z.version>aY)throw Error(`Version of executable is not currently supported, maximum supported version is ${aY}.`);if(!Z.success)throw new cY.ExecutableError(Z.errorMessage,Z.errorCode);if(this.outputFile){if(!Z.expirationTime)throw new FH.InvalidExpirationTimeFieldError("The executable response must contain the `expiration_time` field for successful responses when an output_file has been specified in the configuration.")}if(Z.isExpired())throw Error("Executable response is expired.");return Z.subjectToken}}j6.PluggableAuthClient=nY});var h6=b((oY)=>{Object.defineProperty(oY,"__esModule",{value:!0});oY.ExternalAccountClient=void 0;var MH=Y4(),IH=D6(),NH=I6(),TH=_6();class sY{constructor(){throw Error("ExternalAccountClients should be initialized via: ExternalAccountClient.fromJSON(), directly via explicit constructors, eg. new AwsClient(options), new IdentityPoolClient(options), newPluggableAuthClientOptions, or via new GoogleAuth(options).getClient()")}static fromJSON(Z){if(Z&&Z.type===MH.EXTERNAL_ACCOUNT_TYPE)if(Z.credential_source?.environment_id)return new NH.AwsClient(Z);else if(Z.credential_source?.executable)return new TH.PluggableAuthClient(Z);else return new IH.IdentityPoolClient(Z);else return null}}oY.ExternalAccountClient=sY});var y6=b((YW)=>{Object.defineProperty(YW,"__esModule",{value:!0});YW.ExternalAccountAuthorizedUserClient=YW.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE=void 0;var ZW=S0(),eY=X6(),$W=G0(),BH=a("stream"),LH=Y4();YW.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE="external_account_authorized_user";var RH="https://sts.{universeDomain}/v1/oauthtoken";class k6 extends eY.OAuthClientAuthHandler{#Z;constructor(Z){super(Z);this.#Z=Z.tokenRefreshEndpoint}async refreshToken(Z,$){let Q={...k6.RETRY_CONFIG,url:this.#Z,method:"POST",headers:$,data:new URLSearchParams({grant_type:"refresh_token",refresh_token:Z}),responseType:"json"};ZW.AuthClient.setMethodName(Q,"refreshToken"),this.applyClientAuthenticationOptions(Q);try{let Y=await this.transporter.request(Q),W=Y.data;return W.res=Y,W}catch(Y){if(Y instanceof $W.GaxiosError&&Y.response)throw(0,eY.getErrorFromOAuthErrorResponse)(Y.response.data,Y);throw Y}}}class QW extends ZW.AuthClient{cachedAccessToken;externalAccountAuthorizedUserHandler;refreshToken;constructor(Z){super(Z);if(Z.universe_domain)this.universeDomain=Z.universe_domain;this.refreshToken=Z.refresh_token;let $={confidentialClientType:"basic",clientId:Z.client_id,clientSecret:Z.client_secret};if(this.externalAccountAuthorizedUserHandler=new k6({tokenRefreshEndpoint:Z.token_url??RH.replace("{universeDomain}",this.universeDomain),transporter:this.transporter,clientAuthentication:$}),this.cachedAccessToken=null,this.quotaProjectId=Z.quota_project_id,typeof Z?.eagerRefreshThresholdMillis!=="number")this.eagerRefreshThresholdMillis=LH.EXPIRATION_TIME_OFFSET;else this.eagerRefreshThresholdMillis=Z.eagerRefreshThresholdMillis;this.forceRefreshOnFailure=!!Z?.forceRefreshOnFailure}async getAccessToken(){if(!this.cachedAccessToken||this.isExpired(this.cachedAccessToken))await this.refreshAccessTokenAsync();return{token:this.cachedAccessToken.access_token,res:this.cachedAccessToken.res}}async getRequestHeaders(){let Z=await this.getAccessToken(),$=new Headers({authorization:`Bearer ${Z.token}`});return this.addSharedMetadataHeaders($)}request(Z,$){if($)this.requestAsync(Z).then((Q)=>$(null,Q),(Q)=>{return $(Q,Q.response)});else return this.requestAsync(Z)}async requestAsync(Z,$=!1){let Q;try{let Y=await this.getRequestHeaders();Z.headers=$W.Gaxios.mergeHeaders(Z.headers),this.addUserProjectAndAuthHeaders(Z.headers,Y),Q=await this.transporter.request(Z)}catch(Y){let W=Y.response;if(W){let J=W.status,K=W.config.data instanceof BH.Readable;if(!$&&(J===401||J===403)&&!K&&this.forceRefreshOnFailure)return await this.refreshAccessTokenAsync(),await this.requestAsync(Z,!0)}throw Y}return Q}async refreshAccessTokenAsync(){let Z=await this.externalAccountAuthorizedUserHandler.refreshToken(this.refreshToken);if(this.cachedAccessToken={access_token:Z.access_token,expiry_date:new Date().getTime()+Z.expires_in*1000,res:Z.res},Z.refresh_token!==void 0)this.refreshToken=Z.refresh_token;return this.cachedAccessToken}isExpired(Z){let $=new Date().getTime();return Z.expiry_date?$>=Z.expiry_date-this.eagerRefreshThresholdMillis:!1}}YW.ExternalAccountAuthorizedUserClient=QW});var wW=b((qW)=>{Object.defineProperty(qW,"__esModule",{value:!0});qW.GoogleAuth=qW.GoogleAuthExceptionMessages=void 0;var PH=a("child_process"),Z1=a("fs"),SH=G0(),$1=p4(),CH=a("os"),x6=a("path"),vH=i4(),EH=u8(),OH=d8(),jH=l8(),E4=W6(),VW=V6(),O4=J6(),_H=h6(),Q1=Y4(),f6=S0(),JW=y6(),XW=x0();qW.GoogleAuthExceptionMessages={API_KEY_WITH_CREDENTIALS:"API Keys and Credentials are mutually exclusive authentication methods and cannot be used together.",NO_PROJECT_ID_FOUND:`Unable to detect a Project Id in the current environment.
26
- To learn more about authentication and Google APIs, visit:
27
- https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment.
28
- To learn more about authentication and Google APIs, visit:
29
- https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started for more information.",NO_UNIVERSE_DOMAIN_FOUND:`Unable to detect a Universe Domain in the current environment.
30
- To learn more about Universe Domain retrieval, visit:
31
- https://cloud.google.com/compute/docs/metadata/predefined-metadata-keys`};class KW{checkIsGCE=void 0;useJWTAccessWithScope;defaultServicePath;get isGCE(){return this.checkIsGCE}_findProjectIdPromise;_cachedProjectId;jsonContent=null;apiKey;cachedCredential=null;#Z=null;defaultScopes;keyFilename;scopes;clientOptions={};constructor(Z={}){if(this._cachedProjectId=Z.projectId||null,this.cachedCredential=Z.authClient||null,this.keyFilename=Z.keyFilename||Z.keyFile,this.scopes=Z.scopes,this.clientOptions=Z.clientOptions||{},this.jsonContent=Z.credentials||null,this.apiKey=Z.apiKey||this.clientOptions.apiKey||null,this.apiKey&&(this.jsonContent||this.clientOptions.credentials))throw RangeError(qW.GoogleAuthExceptionMessages.API_KEY_WITH_CREDENTIALS);if(Z.universeDomain)this.clientOptions.universeDomain=Z.universeDomain}setGapicJWTValues(Z){Z.defaultServicePath=this.defaultServicePath,Z.useJWTAccessWithScope=this.useJWTAccessWithScope,Z.defaultScopes=this.defaultScopes}getProjectId(Z){if(Z)this.getProjectIdAsync().then(($)=>Z(null,$),Z);else return this.getProjectIdAsync()}async getProjectIdOptional(){try{return await this.getProjectId()}catch(Z){if(Z instanceof Error&&Z.message===qW.GoogleAuthExceptionMessages.NO_PROJECT_ID_FOUND)return null;else throw Z}}async findAndCacheProjectId(){let Z=null;if(Z||=await this.getProductionProjectId(),Z||=await this.getFileProjectId(),Z||=await this.getDefaultServiceProjectId(),Z||=await this.getGCEProjectId(),Z||=await this.getExternalAccountClientProjectId(),Z)return this._cachedProjectId=Z,Z;else throw Error(qW.GoogleAuthExceptionMessages.NO_PROJECT_ID_FOUND)}async getProjectIdAsync(){if(this._cachedProjectId)return this._cachedProjectId;if(!this._findProjectIdPromise)this._findProjectIdPromise=this.findAndCacheProjectId();return this._findProjectIdPromise}async getUniverseDomainFromMetadataServer(){let Z;try{Z=await $1.universe("universe-domain"),Z||=f6.DEFAULT_UNIVERSE}catch($){if($&&$?.response?.status===404)Z=f6.DEFAULT_UNIVERSE;else throw $}return Z}async getUniverseDomain(){let Z=(0,XW.originalOrCamelOptions)(this.clientOptions).get("universe_domain");try{Z??=(await this.getClient()).universeDomain}catch{Z??=f6.DEFAULT_UNIVERSE}return Z}getAnyScopes(){return this.scopes||this.defaultScopes}getApplicationDefault(Z={},$){let Q;if(typeof Z==="function")$=Z;else Q=Z;if($)this.getApplicationDefaultAsync(Q).then((Y)=>$(null,Y.credential,Y.projectId),$);else return this.getApplicationDefaultAsync(Q)}async getApplicationDefaultAsync(Z={}){if(this.cachedCredential)return await this.#$(this.cachedCredential,null);let $;if($=await this._tryGetApplicationCredentialsFromEnvironmentVariable(Z),$){if($ instanceof E4.JWT)$.scopes=this.scopes;else if($ instanceof Q1.BaseExternalAccountClient)$.scopes=this.getAnyScopes();return await this.#$($)}if($=await this._tryGetApplicationCredentialsFromWellKnownFile(Z),$){if($ instanceof E4.JWT)$.scopes=this.scopes;else if($ instanceof Q1.BaseExternalAccountClient)$.scopes=this.getAnyScopes();return await this.#$($)}if(await this._checkIsGCE())return Z.scopes=this.getAnyScopes(),await this.#$(new EH.Compute(Z));throw Error(qW.GoogleAuthExceptionMessages.NO_ADC_FOUND)}async#$(Z,$=process.env.GOOGLE_CLOUD_QUOTA_PROJECT||null){let Q=await this.getProjectIdOptional();if($)Z.quotaProjectId=$;return this.cachedCredential=Z,{credential:Z,projectId:Q}}async _checkIsGCE(){if(this.checkIsGCE===void 0)this.checkIsGCE=$1.getGCPResidency()||await $1.isAvailable();return this.checkIsGCE}async _tryGetApplicationCredentialsFromEnvironmentVariable(Z){let $=process.env.GOOGLE_APPLICATION_CREDENTIALS||process.env.google_application_credentials;if(!$||$.length===0)return null;try{return this._getApplicationCredentialsFromFilePath($,Z)}catch(Q){if(Q instanceof Error)Q.message=`Unable to read the credential file specified by the GOOGLE_APPLICATION_CREDENTIALS environment variable: ${Q.message}`;throw Q}}async _tryGetApplicationCredentialsFromWellKnownFile(Z){let $=null;if(this._isWindows())$=process.env.APPDATA;else{let Y=process.env.HOME;if(Y)$=x6.join(Y,".config")}if($){if($=x6.join($,"gcloud","application_default_credentials.json"),!Z1.existsSync($))$=null}if(!$)return null;return await this._getApplicationCredentialsFromFilePath($,Z)}async _getApplicationCredentialsFromFilePath(Z,$={}){if(!Z||Z.length===0)throw Error("The file path is invalid.");try{if(Z=Z1.realpathSync(Z),!Z1.lstatSync(Z).isFile())throw Error()}catch(Y){if(Y instanceof Error)Y.message=`The file at ${Z} does not exist, or it is not a file. ${Y.message}`;throw Y}let Q=Z1.createReadStream(Z);return this.fromStream(Q,$)}fromImpersonatedJSON(Z){if(!Z)throw Error("Must pass in a JSON object containing an impersonated refresh token");if(Z.type!==O4.IMPERSONATED_ACCOUNT_TYPE)throw Error(`The incoming JSON object does not have the "${O4.IMPERSONATED_ACCOUNT_TYPE}" type`);if(!Z.source_credentials)throw Error("The incoming JSON object does not contain a source_credentials field");if(!Z.service_account_impersonation_url)throw Error("The incoming JSON object does not contain a service_account_impersonation_url field");let $=this.fromJSON(Z.source_credentials);if(Z.service_account_impersonation_url?.length>256)throw RangeError(`Target principal is too long: ${Z.service_account_impersonation_url}`);let Q=/(?<target>[^/]+):(generateAccessToken|generateIdToken)$/.exec(Z.service_account_impersonation_url)?.groups?.target;if(!Q)throw RangeError(`Cannot extract target principal from ${Z.service_account_impersonation_url}`);let Y=(this.scopes||Z.scopes||this.defaultScopes)??[];return new O4.Impersonated({...Z,sourceClient:$,targetPrincipal:Q,targetScopes:Array.isArray(Y)?Y:[Y]})}fromJSON(Z,$={}){let Q,Y=(0,XW.originalOrCamelOptions)($).get("universe_domain");if(Z.type===VW.USER_REFRESH_ACCOUNT_TYPE)Q=new VW.UserRefreshClient($),Q.fromJSON(Z);else if(Z.type===O4.IMPERSONATED_ACCOUNT_TYPE)Q=this.fromImpersonatedJSON(Z);else if(Z.type===Q1.EXTERNAL_ACCOUNT_TYPE)Q=_H.ExternalAccountClient.fromJSON({...Z,...$}),Q.scopes=this.getAnyScopes();else if(Z.type===JW.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE)Q=new JW.ExternalAccountAuthorizedUserClient({...Z,...$});else $.scopes=this.scopes,Q=new E4.JWT($),this.setGapicJWTValues(Q),Q.fromJSON(Z);if(Y)Q.universeDomain=Y;return Q}_cacheClientFromJSON(Z,$){let Q=this.fromJSON(Z,$);return this.jsonContent=Z,this.cachedCredential=Q,Q}fromStream(Z,$={},Q){let Y={};if(typeof $==="function")Q=$;else Y=$;if(Q)this.fromStreamAsync(Z,Y).then((W)=>Q(null,W),Q);else return this.fromStreamAsync(Z,Y)}fromStreamAsync(Z,$){return new Promise((Q,Y)=>{if(!Z)throw Error("Must pass in a stream containing the Google auth settings.");let W=[];Z.setEncoding("utf8").on("error",Y).on("data",(J)=>W.push(J)).on("end",()=>{try{try{let J=JSON.parse(W.join("")),K=this._cacheClientFromJSON(J,$);return Q(K)}catch(J){if(!this.keyFilename)throw J;let K=new E4.JWT({...this.clientOptions,keyFile:this.keyFilename});return this.cachedCredential=K,this.setGapicJWTValues(K),Q(K)}}catch(J){return Y(J)}})})}fromAPIKey(Z,$={}){return new E4.JWT({...$,apiKey:Z})}_isWindows(){let Z=CH.platform();if(Z&&Z.length>=3){if(Z.substring(0,3).toLowerCase()==="win")return!0}return!1}async getDefaultServiceProjectId(){return new Promise((Z)=>{(0,PH.exec)("gcloud config config-helper --format json",($,Q)=>{if(!$&&Q)try{let Y=JSON.parse(Q).configuration.properties.core.project;Z(Y);return}catch(Y){}Z(null)})})}getProductionProjectId(){return process.env.GCLOUD_PROJECT||process.env.GOOGLE_CLOUD_PROJECT||process.env.gcloud_project||process.env.google_cloud_project}async getFileProjectId(){if(this.cachedCredential)return this.cachedCredential.projectId;if(this.keyFilename){let $=await this.getClient();if($&&$.projectId)return $.projectId}let Z=await this._tryGetApplicationCredentialsFromEnvironmentVariable();if(Z)return Z.projectId;else return null}async getExternalAccountClientProjectId(){if(!this.jsonContent||this.jsonContent.type!==Q1.EXTERNAL_ACCOUNT_TYPE)return null;return await(await this.getClient()).getProjectId()}async getGCEProjectId(){try{return await $1.project("project-id")}catch(Z){return null}}getCredentials(Z){if(Z)this.getCredentialsAsync().then(($)=>Z(null,$),Z);else return this.getCredentialsAsync()}async getCredentialsAsync(){let Z=await this.getClient();if(Z instanceof O4.Impersonated)return{client_email:Z.getTargetPrincipal()};if(Z instanceof Q1.BaseExternalAccountClient){let $=Z.getServiceAccountEmail();if($)return{client_email:$,universe_domain:Z.universeDomain}}if(this.jsonContent)return{client_email:this.jsonContent.client_email,private_key:this.jsonContent.private_key,universe_domain:this.jsonContent.universe_domain};if(await this._checkIsGCE()){let[$,Q]=await Promise.all([$1.instance("service-accounts/default/email"),this.getUniverseDomain()]);return{client_email:$,universe_domain:Q}}throw Error(qW.GoogleAuthExceptionMessages.NO_CREDENTIALS_FOUND)}async getClient(){if(this.cachedCredential)return this.cachedCredential;this.#Z=this.#Z||this.#Q();try{return await this.#Z}finally{this.#Z=null}}async#Q(){if(this.jsonContent)return this._cacheClientFromJSON(this.jsonContent,this.clientOptions);else if(this.keyFilename){let Z=x6.resolve(this.keyFilename),$=Z1.createReadStream(Z);return await this.fromStreamAsync($,this.clientOptions)}else if(this.apiKey){let Z=await this.fromAPIKey(this.apiKey,this.clientOptions);Z.scopes=this.scopes;let{credential:$}=await this.#$(Z);return $}else{let{credential:Z}=await this.getApplicationDefaultAsync(this.clientOptions);return Z}}async getIdTokenClient(Z){let $=await this.getClient();if(!("fetchIdToken"in $))throw Error("Cannot fetch ID token in this environment, use GCE or set the GOOGLE_APPLICATION_CREDENTIALS environment variable to a service account credentials JSON file.");return new OH.IdTokenClient({targetAudience:Z,idTokenProvider:$})}async getAccessToken(){return(await(await this.getClient()).getAccessToken()).token}async getRequestHeaders(Z){return(await this.getClient()).getRequestHeaders(Z)}async authorizeRequest(Z={}){let $=Z.url,Y=await(await this.getClient()).getRequestHeaders($);return Z.headers=SH.Gaxios.mergeHeaders(Z.headers,Y),Z}async fetch(...Z){return(await this.getClient()).fetch(...Z)}async request(Z){return(await this.getClient()).request(Z)}getEnv(){return(0,jH.getEnv)()}async sign(Z,$){let Q=await this.getClient(),Y=await this.getUniverseDomain();if($=$||`https://iamcredentials.${Y}/v1/projects/-/serviceAccounts/`,Q instanceof O4.Impersonated)return(await Q.sign(Z)).signedBlob;let W=(0,vH.createCrypto)();if(Q instanceof E4.JWT&&Q.key)return await W.sign(Q.key,Z);let J=await this.getCredentials();if(!J.client_email)throw Error("Cannot sign data without `client_email`.");return this.signBlob(W,J.client_email,Z,$)}async signBlob(Z,$,Q,Y){let W=new URL(Y+`${$}:signBlob`);return(await this.request({method:"POST",url:W.href,data:{payload:Z.encodeBase64StringUtf8(Q)},retry:!0,retryConfig:{httpMethodsToRetry:["POST"]}})).data.signedBlob}}qW.GoogleAuth=KW});var UW=b((FW)=>{Object.defineProperty(FW,"__esModule",{value:!0});FW.IAMAuth=void 0;class zW{selector;token;constructor(Z,$){this.selector=Z,this.token=$,this.selector=Z,this.token=$}getRequestHeaders(){return{"x-goog-iam-authority-selector":this.selector,"x-goog-iam-authorization-token":this.token}}}FW.IAMAuth=zW});var NW=b((MW)=>{Object.defineProperty(MW,"__esModule",{value:!0});MW.DownscopedClient=MW.EXPIRATION_TIME_OFFSET=MW.MAX_ACCESS_BOUNDARY_RULES_COUNT=void 0;var hH=G0(),kH=a("stream"),g6=S0(),yH=j1(),xH="urn:ietf:params:oauth:grant-type:token-exchange",fH="urn:ietf:params:oauth:token-type:access_token",gH="urn:ietf:params:oauth:token-type:access_token";MW.MAX_ACCESS_BOUNDARY_RULES_COUNT=10;MW.EXPIRATION_TIME_OFFSET=300000;class DW extends g6.AuthClient{authClient;credentialAccessBoundary;cachedDownscopedAccessToken;stsCredential;constructor(Z,$={accessBoundary:{accessBoundaryRules:[]}}){super(Z instanceof g6.AuthClient?{}:Z);if(Z instanceof g6.AuthClient)this.authClient=Z,this.credentialAccessBoundary=$;else this.authClient=Z.authClient,this.credentialAccessBoundary=Z.credentialAccessBoundary;if(this.credentialAccessBoundary.accessBoundary.accessBoundaryRules.length===0)throw Error("At least one access boundary rule needs to be defined.");else if(this.credentialAccessBoundary.accessBoundary.accessBoundaryRules.length>MW.MAX_ACCESS_BOUNDARY_RULES_COUNT)throw Error(`The provided access boundary has more than ${MW.MAX_ACCESS_BOUNDARY_RULES_COUNT} access boundary rules.`);for(let Q of this.credentialAccessBoundary.accessBoundary.accessBoundaryRules)if(Q.availablePermissions.length===0)throw Error("At least one permission should be defined in access boundary rules.");this.stsCredential=new yH.StsCredentials({tokenExchangeEndpoint:`https://sts.${this.universeDomain}/v1/token`}),this.cachedDownscopedAccessToken=null}setCredentials(Z){if(!Z.expiry_date)throw Error("The access token expiry_date field is missing in the provided credentials.");super.setCredentials(Z),this.cachedDownscopedAccessToken=Z}async getAccessToken(){if(!this.cachedDownscopedAccessToken||this.isExpired(this.cachedDownscopedAccessToken))await this.refreshAccessTokenAsync();return{token:this.cachedDownscopedAccessToken.access_token,expirationTime:this.cachedDownscopedAccessToken.expiry_date,res:this.cachedDownscopedAccessToken.res}}async getRequestHeaders(){let Z=await this.getAccessToken(),$=new Headers({authorization:`Bearer ${Z.token}`});return this.addSharedMetadataHeaders($)}request(Z,$){if($)this.requestAsync(Z).then((Q)=>$(null,Q),(Q)=>{return $(Q,Q.response)});else return this.requestAsync(Z)}async requestAsync(Z,$=!1){let Q;try{let Y=await this.getRequestHeaders();Z.headers=hH.Gaxios.mergeHeaders(Z.headers),this.addUserProjectAndAuthHeaders(Z.headers,Y),Q=await this.transporter.request(Z)}catch(Y){let W=Y.response;if(W){let J=W.status,K=W.config.data instanceof kH.Readable;if(!$&&(J===401||J===403)&&!K&&this.forceRefreshOnFailure)return await this.refreshAccessTokenAsync(),await this.requestAsync(Z,!0)}throw Y}return Q}async refreshAccessTokenAsync(){let Z=(await this.authClient.getAccessToken()).token,$={grantType:xH,requestedTokenType:fH,subjectToken:Z,subjectTokenType:gH},Q=await this.stsCredential.exchangeToken($,void 0,this.credentialAccessBoundary),Y=this.authClient.credentials?.expiry_date||null,W=Q.expires_in?new Date().getTime()+Q.expires_in*1000:Y;return this.cachedDownscopedAccessToken={access_token:Q.access_token,expiry_date:W,res:Q.res},this.credentials={},Object.assign(this.credentials,this.cachedDownscopedAccessToken),delete this.credentials.res,this.emit("tokens",{refresh_token:null,expiry_date:this.cachedDownscopedAccessToken.expiry_date,access_token:this.cachedDownscopedAccessToken.access_token,token_type:"Bearer",id_token:null}),this.cachedDownscopedAccessToken}isExpired(Z){let $=new Date().getTime();return Z.expiry_date?$>=Z.expiry_date-this.eagerRefreshThresholdMillis:!1}}MW.DownscopedClient=DW});var RW=b((BW)=>{Object.defineProperty(BW,"__esModule",{value:!0});BW.PassThroughClient=void 0;var mH=S0();class TW extends mH.AuthClient{async request(Z){return this.transporter.request(Z)}async getAccessToken(){return{}}async getRequestHeaders(){return new Headers}}BW.PassThroughClient=TW});var vW=b((l)=>{var uH=l&&l.__createBinding||(Object.create?function(Z,$,Q,Y){if(Y===void 0)Y=Q;var W=Object.getOwnPropertyDescriptor($,Q);if(!W||("get"in W?!$.__esModule:W.writable||W.configurable))W={enumerable:!0,get:function(){return $[Q]}};Object.defineProperty(Z,Y,W)}:function(Z,$,Q,Y){if(Y===void 0)Y=Q;Z[Y]=$[Q]}),dH=l&&l.__exportStar||function(Z,$){for(var Q in Z)if(Q!=="default"&&!Object.prototype.hasOwnProperty.call($,Q))uH($,Z,Q)};Object.defineProperty(l,"__esModule",{value:!0});l.GoogleAuth=l.auth=l.PassThroughClient=l.ExternalAccountAuthorizedUserClient=l.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE=l.ExecutableError=l.PluggableAuthClient=l.DownscopedClient=l.BaseExternalAccountClient=l.ExternalAccountClient=l.IdentityPoolClient=l.AwsRequestSigner=l.AwsClient=l.UserRefreshClient=l.LoginTicket=l.ClientAuthentication=l.OAuth2Client=l.CodeChallengeMethod=l.Impersonated=l.JWT=l.JWTAccess=l.IdTokenClient=l.IAMAuth=l.GCPEnv=l.Compute=l.DEFAULT_UNIVERSE=l.AuthClient=l.gaxios=l.gcpMetadata=void 0;var AW=wW();Object.defineProperty(l,"GoogleAuth",{enumerable:!0,get:function(){return AW.GoogleAuth}});l.gcpMetadata=p4();l.gaxios=G0();var PW=S0();Object.defineProperty(l,"AuthClient",{enumerable:!0,get:function(){return PW.AuthClient}});Object.defineProperty(l,"DEFAULT_UNIVERSE",{enumerable:!0,get:function(){return PW.DEFAULT_UNIVERSE}});var lH=u8();Object.defineProperty(l,"Compute",{enumerable:!0,get:function(){return lH.Compute}});var cH=l8();Object.defineProperty(l,"GCPEnv",{enumerable:!0,get:function(){return cH.GCPEnv}});var pH=UW();Object.defineProperty(l,"IAMAuth",{enumerable:!0,get:function(){return pH.IAMAuth}});var iH=d8();Object.defineProperty(l,"IdTokenClient",{enumerable:!0,get:function(){return iH.IdTokenClient}});var aH=Q6();Object.defineProperty(l,"JWTAccess",{enumerable:!0,get:function(){return aH.JWTAccess}});var nH=W6();Object.defineProperty(l,"JWT",{enumerable:!0,get:function(){return nH.JWT}});var rH=J6();Object.defineProperty(l,"Impersonated",{enumerable:!0,get:function(){return rH.Impersonated}});var m6=U4();Object.defineProperty(l,"CodeChallengeMethod",{enumerable:!0,get:function(){return m6.CodeChallengeMethod}});Object.defineProperty(l,"OAuth2Client",{enumerable:!0,get:function(){return m6.OAuth2Client}});Object.defineProperty(l,"ClientAuthentication",{enumerable:!0,get:function(){return m6.ClientAuthentication}});var sH=b8();Object.defineProperty(l,"LoginTicket",{enumerable:!0,get:function(){return sH.LoginTicket}});var oH=V6();Object.defineProperty(l,"UserRefreshClient",{enumerable:!0,get:function(){return oH.UserRefreshClient}});var tH=I6();Object.defineProperty(l,"AwsClient",{enumerable:!0,get:function(){return tH.AwsClient}});var eH=M6();Object.defineProperty(l,"AwsRequestSigner",{enumerable:!0,get:function(){return eH.AwsRequestSigner}});var Zw=D6();Object.defineProperty(l,"IdentityPoolClient",{enumerable:!0,get:function(){return Zw.IdentityPoolClient}});var $w=h6();Object.defineProperty(l,"ExternalAccountClient",{enumerable:!0,get:function(){return $w.ExternalAccountClient}});var Qw=Y4();Object.defineProperty(l,"BaseExternalAccountClient",{enumerable:!0,get:function(){return Qw.BaseExternalAccountClient}});var Yw=NW();Object.defineProperty(l,"DownscopedClient",{enumerable:!0,get:function(){return Yw.DownscopedClient}});var SW=_6();Object.defineProperty(l,"PluggableAuthClient",{enumerable:!0,get:function(){return SW.PluggableAuthClient}});Object.defineProperty(l,"ExecutableError",{enumerable:!0,get:function(){return SW.ExecutableError}});var CW=y6();Object.defineProperty(l,"EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE",{enumerable:!0,get:function(){return CW.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE}});Object.defineProperty(l,"ExternalAccountAuthorizedUserClient",{enumerable:!0,get:function(){return CW.ExternalAccountAuthorizedUserClient}});var Ww=RW();Object.defineProperty(l,"PassThroughClient",{enumerable:!0,get:function(){return Ww.PassThroughClient}});dH(Z6(),l);var Vw=new AW.GoogleAuth;l.auth=Vw});var e1=I8(dZ(),1),KV=I8(vW(),1);import{createWriteStream as Jw}from"fs";import*as Z8 from"fs/promises";import{writeFile as Xw}from"fs/promises";import{Readable as Kw}from"stream";import{finished as qw}from"stream/promises";import*as qV from"ws";import*as HV from"path";var Hw=void 0,ww=void 0;function zw(){return{geminiUrl:Hw,vertexUrl:ww}}function Fw(Z,$,Q,Y){var W,J;if(!(Z===null||Z===void 0?void 0:Z.baseUrl)){let K=zw();if($)return(W=K.vertexUrl)!==null&&W!==void 0?W:Q;else return(J=K.geminiUrl)!==null&&J!==void 0?J:Y}return Z.baseUrl}class a0{}function u(Z,$){let Q=/\{([^}]+)\}/g;return Z.replace(Q,(Y,W)=>{if(Object.prototype.hasOwnProperty.call($,W)){let J=$[W];return J!==void 0&&J!==null?String(J):""}else throw Error(`Key '${W}' not found in valueMap.`)})}function X(Z,$,Q){for(let J=0;J<$.length-1;J++){let K=$[J];if(K.endsWith("[]")){let q=K.slice(0,-2);if(!(q in Z))if(Array.isArray(Q))Z[q]=Array.from({length:Q.length},()=>({}));else throw Error(`Value must be a list given an array path ${K}`);if(Array.isArray(Z[q])){let H=Z[q];if(Array.isArray(Q))for(let w=0;w<H.length;w++){let F=H[w];X(F,$.slice(J+1),Q[w])}else for(let w of H)X(w,$.slice(J+1),Q)}return}else if(K.endsWith("[0]")){let q=K.slice(0,-3);if(!(q in Z))Z[q]=[{}];let H=Z[q];X(H[0],$.slice(J+1),Q);return}if(!Z[K]||typeof Z[K]!=="object")Z[K]={};Z=Z[K]}let Y=$[$.length-1],W=Z[Y];if(W!==void 0){if(!Q||typeof Q==="object"&&Object.keys(Q).length===0)return;if(Q===W)return;if(typeof W==="object"&&typeof Q==="object"&&W!==null&&Q!==null)Object.assign(W,Q);else throw Error(`Cannot set value for an existing key. Key: ${Y}`)}else if(Y==="_self"&&typeof Q==="object"&&Q!==null&&!Array.isArray(Q))Object.assign(Z,Q);else Z[Y]=Q}function V(Z,$,Q=void 0){try{if($.length===1&&$[0]==="_self")return Z;for(let Y=0;Y<$.length;Y++){if(typeof Z!=="object"||Z===null)return Q;let W=$[Y];if(W.endsWith("[]")){let J=W.slice(0,-2);if(J in Z){let K=Z[J];if(!Array.isArray(K))return Q;return K.map((q)=>V(q,$.slice(Y+1),Q))}else return Q}else Z=Z[W]}return Z}catch(Y){if(Y instanceof TypeError)return Q;throw Y}}function Gw(Z,$){for(let[Q,Y]of Object.entries($)){let W=Q.split("."),J=Y.split("."),K=new Set,q=-1;for(let H=0;H<W.length;H++)if(W[H]==="*"){q=H;break}if(q!==-1&&J.length>q)for(let H=q;H<J.length;H++){let w=J[H];if(w!=="*"&&!w.endsWith("[]")&&!w.endsWith("[0]"))K.add(w)}c6(Z,W,J,0,K)}}function c6(Z,$,Q,Y,W){if(Y>=$.length)return;if(typeof Z!=="object"||Z===null)return;let J=$[Y];if(J.endsWith("[]")){let K=J.slice(0,-2),q=Z;if(K in q&&Array.isArray(q[K]))for(let H of q[K])c6(H,$,Q,Y+1,W)}else if(J==="*"){if(typeof Z==="object"&&Z!==null&&!Array.isArray(Z)){let K=Z,q=Object.keys(K).filter((w)=>!w.startsWith("_")&&!W.has(w)),H={};for(let w of q)H[w]=K[w];for(let[w,F]of Object.entries(H)){let z=[];for(let G of Q.slice(Y))if(G==="*")z.push(w);else z.push(G);X(K,z,F)}for(let w of q)delete K[w]}}else{let K=Z;if(J in K)c6(K[J],$,Q,Y+1,W)}}function zZ(Z){if(typeof Z!=="string")throw Error("fromImageBytes must be a string");return Z}function Uw(Z){let $={},Q=V(Z,["operationName"]);if(Q!=null)X($,["operationName"],Q);let Y=V(Z,["resourceName"]);if(Y!=null)X($,["_url","resourceName"],Y);return $}function Dw(Z){let $={},Q=V(Z,["name"]);if(Q!=null)X($,["name"],Q);let Y=V(Z,["metadata"]);if(Y!=null)X($,["metadata"],Y);let W=V(Z,["done"]);if(W!=null)X($,["done"],W);let J=V(Z,["error"]);if(J!=null)X($,["error"],J);let K=V(Z,["response","generateVideoResponse"]);if(K!=null)X($,["response"],Iw(K));return $}function Mw(Z){let $={},Q=V(Z,["name"]);if(Q!=null)X($,["name"],Q);let Y=V(Z,["metadata"]);if(Y!=null)X($,["metadata"],Y);let W=V(Z,["done"]);if(W!=null)X($,["done"],W);let J=V(Z,["error"]);if(J!=null)X($,["error"],J);let K=V(Z,["response"]);if(K!=null)X($,["response"],Nw(K));return $}function Iw(Z){let $={},Q=V(Z,["generatedSamples"]);if(Q!=null){let J=Q;if(Array.isArray(J))J=J.map((K)=>{return Tw(K)});X($,["generatedVideos"],J)}let Y=V(Z,["raiMediaFilteredCount"]);if(Y!=null)X($,["raiMediaFilteredCount"],Y);let W=V(Z,["raiMediaFilteredReasons"]);if(W!=null)X($,["raiMediaFilteredReasons"],W);return $}function Nw(Z){let $={},Q=V(Z,["videos"]);if(Q!=null){let J=Q;if(Array.isArray(J))J=J.map((K)=>{return Bw(K)});X($,["generatedVideos"],J)}let Y=V(Z,["raiMediaFilteredCount"]);if(Y!=null)X($,["raiMediaFilteredCount"],Y);let W=V(Z,["raiMediaFilteredReasons"]);if(W!=null)X($,["raiMediaFilteredReasons"],W);return $}function Tw(Z){let $={},Q=V(Z,["video"]);if(Q!=null)X($,["video"],Cw(Q));return $}function Bw(Z){let $={},Q=V(Z,["_self"]);if(Q!=null)X($,["video"],vw(Q));return $}function Lw(Z){let $={},Q=V(Z,["operationName"]);if(Q!=null)X($,["_url","operationName"],Q);return $}function Rw(Z){let $={},Q=V(Z,["operationName"]);if(Q!=null)X($,["_url","operationName"],Q);return $}function Aw(Z){let $={},Q=V(Z,["name"]);if(Q!=null)X($,["name"],Q);let Y=V(Z,["metadata"]);if(Y!=null)X($,["metadata"],Y);let W=V(Z,["done"]);if(W!=null)X($,["done"],W);let J=V(Z,["error"]);if(J!=null)X($,["error"],J);let K=V(Z,["response"]);if(K!=null)X($,["response"],Pw(K));return $}function Pw(Z){let $={},Q=V(Z,["sdkHttpResponse"]);if(Q!=null)X($,["sdkHttpResponse"],Q);let Y=V(Z,["parent"]);if(Y!=null)X($,["parent"],Y);let W=V(Z,["documentName"]);if(W!=null)X($,["documentName"],W);return $}function FZ(Z){let $={},Q=V(Z,["name"]);if(Q!=null)X($,["name"],Q);let Y=V(Z,["metadata"]);if(Y!=null)X($,["metadata"],Y);let W=V(Z,["done"]);if(W!=null)X($,["done"],W);let J=V(Z,["error"]);if(J!=null)X($,["error"],J);let K=V(Z,["response"]);if(K!=null)X($,["response"],Sw(K));return $}function Sw(Z){let $={},Q=V(Z,["sdkHttpResponse"]);if(Q!=null)X($,["sdkHttpResponse"],Q);let Y=V(Z,["parent"]);if(Y!=null)X($,["parent"],Y);let W=V(Z,["documentName"]);if(W!=null)X($,["documentName"],W);return $}function Cw(Z){let $={},Q=V(Z,["uri"]);if(Q!=null)X($,["uri"],Q);let Y=V(Z,["encodedVideo"]);if(Y!=null)X($,["videoBytes"],zZ(Y));let W=V(Z,["encoding"]);if(W!=null)X($,["mimeType"],W);return $}function vw(Z){let $={},Q=V(Z,["gcsUri"]);if(Q!=null)X($,["uri"],Q);let Y=V(Z,["bytesBase64Encoded"]);if(Y!=null)X($,["videoBytes"],zZ(Y));let W=V(Z,["mimeType"]);if(W!=null)X($,["mimeType"],W);return $}var EW;(function(Z){Z.LANGUAGE_UNSPECIFIED="LANGUAGE_UNSPECIFIED",Z.PYTHON="PYTHON"})(EW||(EW={}));var OW;(function(Z){Z.OUTCOME_UNSPECIFIED="OUTCOME_UNSPECIFIED",Z.OUTCOME_OK="OUTCOME_OK",Z.OUTCOME_FAILED="OUTCOME_FAILED",Z.OUTCOME_DEADLINE_EXCEEDED="OUTCOME_DEADLINE_EXCEEDED"})(OW||(OW={}));var jW;(function(Z){Z.SCHEDULING_UNSPECIFIED="SCHEDULING_UNSPECIFIED",Z.SILENT="SILENT",Z.WHEN_IDLE="WHEN_IDLE",Z.INTERRUPT="INTERRUPT"})(jW||(jW={}));var W4;(function(Z){Z.TYPE_UNSPECIFIED="TYPE_UNSPECIFIED",Z.STRING="STRING",Z.NUMBER="NUMBER",Z.INTEGER="INTEGER",Z.BOOLEAN="BOOLEAN",Z.ARRAY="ARRAY",Z.OBJECT="OBJECT",Z.NULL="NULL"})(W4||(W4={}));var _W;(function(Z){Z.ENVIRONMENT_UNSPECIFIED="ENVIRONMENT_UNSPECIFIED",Z.ENVIRONMENT_BROWSER="ENVIRONMENT_BROWSER"})(_W||(_W={}));var hW;(function(Z){Z.AUTH_TYPE_UNSPECIFIED="AUTH_TYPE_UNSPECIFIED",Z.NO_AUTH="NO_AUTH",Z.API_KEY_AUTH="API_KEY_AUTH",Z.HTTP_BASIC_AUTH="HTTP_BASIC_AUTH",Z.GOOGLE_SERVICE_ACCOUNT_AUTH="GOOGLE_SERVICE_ACCOUNT_AUTH",Z.OAUTH="OAUTH",Z.OIDC_AUTH="OIDC_AUTH"})(hW||(hW={}));var kW;(function(Z){Z.HTTP_IN_UNSPECIFIED="HTTP_IN_UNSPECIFIED",Z.HTTP_IN_QUERY="HTTP_IN_QUERY",Z.HTTP_IN_HEADER="HTTP_IN_HEADER",Z.HTTP_IN_PATH="HTTP_IN_PATH",Z.HTTP_IN_BODY="HTTP_IN_BODY",Z.HTTP_IN_COOKIE="HTTP_IN_COOKIE"})(kW||(kW={}));var yW;(function(Z){Z.API_SPEC_UNSPECIFIED="API_SPEC_UNSPECIFIED",Z.SIMPLE_SEARCH="SIMPLE_SEARCH",Z.ELASTIC_SEARCH="ELASTIC_SEARCH"})(yW||(yW={}));var xW;(function(Z){Z.PHISH_BLOCK_THRESHOLD_UNSPECIFIED="PHISH_BLOCK_THRESHOLD_UNSPECIFIED",Z.BLOCK_LOW_AND_ABOVE="BLOCK_LOW_AND_ABOVE",Z.BLOCK_MEDIUM_AND_ABOVE="BLOCK_MEDIUM_AND_ABOVE",Z.BLOCK_HIGH_AND_ABOVE="BLOCK_HIGH_AND_ABOVE",Z.BLOCK_HIGHER_AND_ABOVE="BLOCK_HIGHER_AND_ABOVE",Z.BLOCK_VERY_HIGH_AND_ABOVE="BLOCK_VERY_HIGH_AND_ABOVE",Z.BLOCK_ONLY_EXTREMELY_HIGH="BLOCK_ONLY_EXTREMELY_HIGH"})(xW||(xW={}));var fW;(function(Z){Z.UNSPECIFIED="UNSPECIFIED",Z.BLOCKING="BLOCKING",Z.NON_BLOCKING="NON_BLOCKING"})(fW||(fW={}));var gW;(function(Z){Z.MODE_UNSPECIFIED="MODE_UNSPECIFIED",Z.MODE_DYNAMIC="MODE_DYNAMIC"})(gW||(gW={}));var bW;(function(Z){Z.MODE_UNSPECIFIED="MODE_UNSPECIFIED",Z.AUTO="AUTO",Z.ANY="ANY",Z.NONE="NONE",Z.VALIDATED="VALIDATED"})(bW||(bW={}));var mW;(function(Z){Z.THINKING_LEVEL_UNSPECIFIED="THINKING_LEVEL_UNSPECIFIED",Z.MINIMAL="MINIMAL",Z.LOW="LOW",Z.MEDIUM="MEDIUM",Z.HIGH="HIGH"})(mW||(mW={}));var uW;(function(Z){Z.DONT_ALLOW="DONT_ALLOW",Z.ALLOW_ADULT="ALLOW_ADULT",Z.ALLOW_ALL="ALLOW_ALL"})(uW||(uW={}));var dW;(function(Z){Z.PROMINENT_PEOPLE_UNSPECIFIED="PROMINENT_PEOPLE_UNSPECIFIED",Z.ALLOW_PROMINENT_PEOPLE="ALLOW_PROMINENT_PEOPLE",Z.BLOCK_PROMINENT_PEOPLE="BLOCK_PROMINENT_PEOPLE"})(dW||(dW={}));var lW;(function(Z){Z.HARM_CATEGORY_UNSPECIFIED="HARM_CATEGORY_UNSPECIFIED",Z.HARM_CATEGORY_HARASSMENT="HARM_CATEGORY_HARASSMENT",Z.HARM_CATEGORY_HATE_SPEECH="HARM_CATEGORY_HATE_SPEECH",Z.HARM_CATEGORY_SEXUALLY_EXPLICIT="HARM_CATEGORY_SEXUALLY_EXPLICIT",Z.HARM_CATEGORY_DANGEROUS_CONTENT="HARM_CATEGORY_DANGEROUS_CONTENT",Z.HARM_CATEGORY_CIVIC_INTEGRITY="HARM_CATEGORY_CIVIC_INTEGRITY",Z.HARM_CATEGORY_IMAGE_HATE="HARM_CATEGORY_IMAGE_HATE",Z.HARM_CATEGORY_IMAGE_DANGEROUS_CONTENT="HARM_CATEGORY_IMAGE_DANGEROUS_CONTENT",Z.HARM_CATEGORY_IMAGE_HARASSMENT="HARM_CATEGORY_IMAGE_HARASSMENT",Z.HARM_CATEGORY_IMAGE_SEXUALLY_EXPLICIT="HARM_CATEGORY_IMAGE_SEXUALLY_EXPLICIT",Z.HARM_CATEGORY_JAILBREAK="HARM_CATEGORY_JAILBREAK"})(lW||(lW={}));var cW;(function(Z){Z.HARM_BLOCK_METHOD_UNSPECIFIED="HARM_BLOCK_METHOD_UNSPECIFIED",Z.SEVERITY="SEVERITY",Z.PROBABILITY="PROBABILITY"})(cW||(cW={}));var pW;(function(Z){Z.HARM_BLOCK_THRESHOLD_UNSPECIFIED="HARM_BLOCK_THRESHOLD_UNSPECIFIED",Z.BLOCK_LOW_AND_ABOVE="BLOCK_LOW_AND_ABOVE",Z.BLOCK_MEDIUM_AND_ABOVE="BLOCK_MEDIUM_AND_ABOVE",Z.BLOCK_ONLY_HIGH="BLOCK_ONLY_HIGH",Z.BLOCK_NONE="BLOCK_NONE",Z.OFF="OFF"})(pW||(pW={}));var iW;(function(Z){Z.FINISH_REASON_UNSPECIFIED="FINISH_REASON_UNSPECIFIED",Z.STOP="STOP",Z.MAX_TOKENS="MAX_TOKENS",Z.SAFETY="SAFETY",Z.RECITATION="RECITATION",Z.LANGUAGE="LANGUAGE",Z.OTHER="OTHER",Z.BLOCKLIST="BLOCKLIST",Z.PROHIBITED_CONTENT="PROHIBITED_CONTENT",Z.SPII="SPII",Z.MALFORMED_FUNCTION_CALL="MALFORMED_FUNCTION_CALL",Z.IMAGE_SAFETY="IMAGE_SAFETY",Z.UNEXPECTED_TOOL_CALL="UNEXPECTED_TOOL_CALL",Z.IMAGE_PROHIBITED_CONTENT="IMAGE_PROHIBITED_CONTENT",Z.NO_IMAGE="NO_IMAGE",Z.IMAGE_RECITATION="IMAGE_RECITATION",Z.IMAGE_OTHER="IMAGE_OTHER"})(iW||(iW={}));var aW;(function(Z){Z.HARM_PROBABILITY_UNSPECIFIED="HARM_PROBABILITY_UNSPECIFIED",Z.NEGLIGIBLE="NEGLIGIBLE",Z.LOW="LOW",Z.MEDIUM="MEDIUM",Z.HIGH="HIGH"})(aW||(aW={}));var nW;(function(Z){Z.HARM_SEVERITY_UNSPECIFIED="HARM_SEVERITY_UNSPECIFIED",Z.HARM_SEVERITY_NEGLIGIBLE="HARM_SEVERITY_NEGLIGIBLE",Z.HARM_SEVERITY_LOW="HARM_SEVERITY_LOW",Z.HARM_SEVERITY_MEDIUM="HARM_SEVERITY_MEDIUM",Z.HARM_SEVERITY_HIGH="HARM_SEVERITY_HIGH"})(nW||(nW={}));var rW;(function(Z){Z.URL_RETRIEVAL_STATUS_UNSPECIFIED="URL_RETRIEVAL_STATUS_UNSPECIFIED",Z.URL_RETRIEVAL_STATUS_SUCCESS="URL_RETRIEVAL_STATUS_SUCCESS",Z.URL_RETRIEVAL_STATUS_ERROR="URL_RETRIEVAL_STATUS_ERROR",Z.URL_RETRIEVAL_STATUS_PAYWALL="URL_RETRIEVAL_STATUS_PAYWALL",Z.URL_RETRIEVAL_STATUS_UNSAFE="URL_RETRIEVAL_STATUS_UNSAFE"})(rW||(rW={}));var sW;(function(Z){Z.BLOCKED_REASON_UNSPECIFIED="BLOCKED_REASON_UNSPECIFIED",Z.SAFETY="SAFETY",Z.OTHER="OTHER",Z.BLOCKLIST="BLOCKLIST",Z.PROHIBITED_CONTENT="PROHIBITED_CONTENT",Z.IMAGE_SAFETY="IMAGE_SAFETY",Z.MODEL_ARMOR="MODEL_ARMOR",Z.JAILBREAK="JAILBREAK"})(sW||(sW={}));var oW;(function(Z){Z.TRAFFIC_TYPE_UNSPECIFIED="TRAFFIC_TYPE_UNSPECIFIED",Z.ON_DEMAND="ON_DEMAND",Z.ON_DEMAND_PRIORITY="ON_DEMAND_PRIORITY",Z.ON_DEMAND_FLEX="ON_DEMAND_FLEX",Z.PROVISIONED_THROUGHPUT="PROVISIONED_THROUGHPUT"})(oW||(oW={}));var a1;(function(Z){Z.MODALITY_UNSPECIFIED="MODALITY_UNSPECIFIED",Z.TEXT="TEXT",Z.IMAGE="IMAGE",Z.AUDIO="AUDIO",Z.VIDEO="VIDEO"})(a1||(a1={}));var tW;(function(Z){Z.MODEL_STAGE_UNSPECIFIED="MODEL_STAGE_UNSPECIFIED",Z.UNSTABLE_EXPERIMENTAL="UNSTABLE_EXPERIMENTAL",Z.EXPERIMENTAL="EXPERIMENTAL",Z.PREVIEW="PREVIEW",Z.STABLE="STABLE",Z.LEGACY="LEGACY",Z.DEPRECATED="DEPRECATED",Z.RETIRED="RETIRED"})(tW||(tW={}));var eW;(function(Z){Z.MEDIA_RESOLUTION_UNSPECIFIED="MEDIA_RESOLUTION_UNSPECIFIED",Z.MEDIA_RESOLUTION_LOW="MEDIA_RESOLUTION_LOW",Z.MEDIA_RESOLUTION_MEDIUM="MEDIA_RESOLUTION_MEDIUM",Z.MEDIA_RESOLUTION_HIGH="MEDIA_RESOLUTION_HIGH"})(eW||(eW={}));var Z5;(function(Z){Z.TUNING_MODE_UNSPECIFIED="TUNING_MODE_UNSPECIFIED",Z.TUNING_MODE_FULL="TUNING_MODE_FULL",Z.TUNING_MODE_PEFT_ADAPTER="TUNING_MODE_PEFT_ADAPTER"})(Z5||(Z5={}));var $5;(function(Z){Z.ADAPTER_SIZE_UNSPECIFIED="ADAPTER_SIZE_UNSPECIFIED",Z.ADAPTER_SIZE_ONE="ADAPTER_SIZE_ONE",Z.ADAPTER_SIZE_TWO="ADAPTER_SIZE_TWO",Z.ADAPTER_SIZE_FOUR="ADAPTER_SIZE_FOUR",Z.ADAPTER_SIZE_EIGHT="ADAPTER_SIZE_EIGHT",Z.ADAPTER_SIZE_SIXTEEN="ADAPTER_SIZE_SIXTEEN",Z.ADAPTER_SIZE_THIRTY_TWO="ADAPTER_SIZE_THIRTY_TWO"})($5||($5={}));var p6;(function(Z){Z.JOB_STATE_UNSPECIFIED="JOB_STATE_UNSPECIFIED",Z.JOB_STATE_QUEUED="JOB_STATE_QUEUED",Z.JOB_STATE_PENDING="JOB_STATE_PENDING",Z.JOB_STATE_RUNNING="JOB_STATE_RUNNING",Z.JOB_STATE_SUCCEEDED="JOB_STATE_SUCCEEDED",Z.JOB_STATE_FAILED="JOB_STATE_FAILED",Z.JOB_STATE_CANCELLING="JOB_STATE_CANCELLING",Z.JOB_STATE_CANCELLED="JOB_STATE_CANCELLED",Z.JOB_STATE_PAUSED="JOB_STATE_PAUSED",Z.JOB_STATE_EXPIRED="JOB_STATE_EXPIRED",Z.JOB_STATE_UPDATING="JOB_STATE_UPDATING",Z.JOB_STATE_PARTIALLY_SUCCEEDED="JOB_STATE_PARTIALLY_SUCCEEDED"})(p6||(p6={}));var Q5;(function(Z){Z.TUNING_JOB_STATE_UNSPECIFIED="TUNING_JOB_STATE_UNSPECIFIED",Z.TUNING_JOB_STATE_WAITING_FOR_QUOTA="TUNING_JOB_STATE_WAITING_FOR_QUOTA",Z.TUNING_JOB_STATE_PROCESSING_DATASET="TUNING_JOB_STATE_PROCESSING_DATASET",Z.TUNING_JOB_STATE_WAITING_FOR_CAPACITY="TUNING_JOB_STATE_WAITING_FOR_CAPACITY",Z.TUNING_JOB_STATE_TUNING="TUNING_JOB_STATE_TUNING",Z.TUNING_JOB_STATE_POST_PROCESSING="TUNING_JOB_STATE_POST_PROCESSING"})(Q5||(Q5={}));var Y5;(function(Z){Z.AGGREGATION_METRIC_UNSPECIFIED="AGGREGATION_METRIC_UNSPECIFIED",Z.AVERAGE="AVERAGE",Z.MODE="MODE",Z.STANDARD_DEVIATION="STANDARD_DEVIATION",Z.VARIANCE="VARIANCE",Z.MINIMUM="MINIMUM",Z.MAXIMUM="MAXIMUM",Z.MEDIAN="MEDIAN",Z.PERCENTILE_P90="PERCENTILE_P90",Z.PERCENTILE_P95="PERCENTILE_P95",Z.PERCENTILE_P99="PERCENTILE_P99"})(Y5||(Y5={}));var W5;(function(Z){Z.PAIRWISE_CHOICE_UNSPECIFIED="PAIRWISE_CHOICE_UNSPECIFIED",Z.BASELINE="BASELINE",Z.CANDIDATE="CANDIDATE",Z.TIE="TIE"})(W5||(W5={}));var V5;(function(Z){Z.TUNING_TASK_UNSPECIFIED="TUNING_TASK_UNSPECIFIED",Z.TUNING_TASK_I2V="TUNING_TASK_I2V",Z.TUNING_TASK_T2V="TUNING_TASK_T2V",Z.TUNING_TASK_R2V="TUNING_TASK_R2V"})(V5||(V5={}));var J5;(function(Z){Z.STATE_UNSPECIFIED="STATE_UNSPECIFIED",Z.STATE_PENDING="STATE_PENDING",Z.STATE_ACTIVE="STATE_ACTIVE",Z.STATE_FAILED="STATE_FAILED"})(J5||(J5={}));var X5;(function(Z){Z.MEDIA_RESOLUTION_UNSPECIFIED="MEDIA_RESOLUTION_UNSPECIFIED",Z.MEDIA_RESOLUTION_LOW="MEDIA_RESOLUTION_LOW",Z.MEDIA_RESOLUTION_MEDIUM="MEDIA_RESOLUTION_MEDIUM",Z.MEDIA_RESOLUTION_HIGH="MEDIA_RESOLUTION_HIGH",Z.MEDIA_RESOLUTION_ULTRA_HIGH="MEDIA_RESOLUTION_ULTRA_HIGH"})(X5||(X5={}));var K5;(function(Z){Z.TOOL_TYPE_UNSPECIFIED="TOOL_TYPE_UNSPECIFIED",Z.GOOGLE_SEARCH_WEB="GOOGLE_SEARCH_WEB",Z.GOOGLE_SEARCH_IMAGE="GOOGLE_SEARCH_IMAGE",Z.URL_CONTEXT="URL_CONTEXT",Z.GOOGLE_MAPS="GOOGLE_MAPS",Z.FILE_SEARCH="FILE_SEARCH"})(K5||(K5={}));var i6;(function(Z){Z.COLLECTION="COLLECTION"})(i6||(i6={}));var q5;(function(Z){Z.UNSPECIFIED="unspecified",Z.FLEX="flex",Z.STANDARD="standard",Z.PRIORITY="priority"})(q5||(q5={}));var H5;(function(Z){Z.FEATURE_SELECTION_PREFERENCE_UNSPECIFIED="FEATURE_SELECTION_PREFERENCE_UNSPECIFIED",Z.PRIORITIZE_QUALITY="PRIORITIZE_QUALITY",Z.BALANCED="BALANCED",Z.PRIORITIZE_COST="PRIORITIZE_COST"})(H5||(H5={}));var n1;(function(Z){Z.PREDICT="PREDICT",Z.EMBED_CONTENT="EMBED_CONTENT"})(n1||(n1={}));var w5;(function(Z){Z.BLOCK_LOW_AND_ABOVE="BLOCK_LOW_AND_ABOVE",Z.BLOCK_MEDIUM_AND_ABOVE="BLOCK_MEDIUM_AND_ABOVE",Z.BLOCK_ONLY_HIGH="BLOCK_ONLY_HIGH",Z.BLOCK_NONE="BLOCK_NONE"})(w5||(w5={}));var z5;(function(Z){Z.auto="auto",Z.en="en",Z.ja="ja",Z.ko="ko",Z.hi="hi",Z.zh="zh",Z.pt="pt",Z.es="es"})(z5||(z5={}));var F5;(function(Z){Z.MASK_MODE_DEFAULT="MASK_MODE_DEFAULT",Z.MASK_MODE_USER_PROVIDED="MASK_MODE_USER_PROVIDED",Z.MASK_MODE_BACKGROUND="MASK_MODE_BACKGROUND",Z.MASK_MODE_FOREGROUND="MASK_MODE_FOREGROUND",Z.MASK_MODE_SEMANTIC="MASK_MODE_SEMANTIC"})(F5||(F5={}));var G5;(function(Z){Z.CONTROL_TYPE_DEFAULT="CONTROL_TYPE_DEFAULT",Z.CONTROL_TYPE_CANNY="CONTROL_TYPE_CANNY",Z.CONTROL_TYPE_SCRIBBLE="CONTROL_TYPE_SCRIBBLE",Z.CONTROL_TYPE_FACE_MESH="CONTROL_TYPE_FACE_MESH"})(G5||(G5={}));var U5;(function(Z){Z.SUBJECT_TYPE_DEFAULT="SUBJECT_TYPE_DEFAULT",Z.SUBJECT_TYPE_PERSON="SUBJECT_TYPE_PERSON",Z.SUBJECT_TYPE_ANIMAL="SUBJECT_TYPE_ANIMAL",Z.SUBJECT_TYPE_PRODUCT="SUBJECT_TYPE_PRODUCT"})(U5||(U5={}));var D5;(function(Z){Z.EDIT_MODE_DEFAULT="EDIT_MODE_DEFAULT",Z.EDIT_MODE_INPAINT_REMOVAL="EDIT_MODE_INPAINT_REMOVAL",Z.EDIT_MODE_INPAINT_INSERTION="EDIT_MODE_INPAINT_INSERTION",Z.EDIT_MODE_OUTPAINT="EDIT_MODE_OUTPAINT",Z.EDIT_MODE_CONTROLLED_EDITING="EDIT_MODE_CONTROLLED_EDITING",Z.EDIT_MODE_STYLE="EDIT_MODE_STYLE",Z.EDIT_MODE_BGSWAP="EDIT_MODE_BGSWAP",Z.EDIT_MODE_PRODUCT_IMAGE="EDIT_MODE_PRODUCT_IMAGE"})(D5||(D5={}));var M5;(function(Z){Z.FOREGROUND="FOREGROUND",Z.BACKGROUND="BACKGROUND",Z.PROMPT="PROMPT",Z.SEMANTIC="SEMANTIC",Z.INTERACTIVE="INTERACTIVE"})(M5||(M5={}));var I5;(function(Z){Z.ASSET="ASSET",Z.STYLE="STYLE"})(I5||(I5={}));var N5;(function(Z){Z.INSERT="INSERT",Z.REMOVE="REMOVE",Z.REMOVE_STATIC="REMOVE_STATIC",Z.OUTPAINT="OUTPAINT"})(N5||(N5={}));var T5;(function(Z){Z.OPTIMIZED="OPTIMIZED",Z.LOSSLESS="LOSSLESS"})(T5||(T5={}));var B5;(function(Z){Z.CROP="CROP",Z.PAD="PAD"})(B5||(B5={}));var L5;(function(Z){Z.SUPERVISED_FINE_TUNING="SUPERVISED_FINE_TUNING",Z.PREFERENCE_TUNING="PREFERENCE_TUNING",Z.DISTILLATION="DISTILLATION"})(L5||(L5={}));var R5;(function(Z){Z.STATE_UNSPECIFIED="STATE_UNSPECIFIED",Z.PROCESSING="PROCESSING",Z.ACTIVE="ACTIVE",Z.FAILED="FAILED"})(R5||(R5={}));var A5;(function(Z){Z.SOURCE_UNSPECIFIED="SOURCE_UNSPECIFIED",Z.UPLOADED="UPLOADED",Z.GENERATED="GENERATED",Z.REGISTERED="REGISTERED"})(A5||(A5={}));var P5;(function(Z){Z.TURN_COMPLETE_REASON_UNSPECIFIED="TURN_COMPLETE_REASON_UNSPECIFIED",Z.MALFORMED_FUNCTION_CALL="MALFORMED_FUNCTION_CALL",Z.RESPONSE_REJECTED="RESPONSE_REJECTED",Z.NEED_MORE_INPUT="NEED_MORE_INPUT",Z.PROHIBITED_INPUT_CONTENT="PROHIBITED_INPUT_CONTENT",Z.IMAGE_PROHIBITED_INPUT_CONTENT="IMAGE_PROHIBITED_INPUT_CONTENT",Z.INPUT_TEXT_CONTAIN_PROMINENT_PERSON_PROHIBITED="INPUT_TEXT_CONTAIN_PROMINENT_PERSON_PROHIBITED",Z.INPUT_IMAGE_CELEBRITY="INPUT_IMAGE_CELEBRITY",Z.INPUT_IMAGE_PHOTO_REALISTIC_CHILD_PROHIBITED="INPUT_IMAGE_PHOTO_REALISTIC_CHILD_PROHIBITED",Z.INPUT_TEXT_NCII_PROHIBITED="INPUT_TEXT_NCII_PROHIBITED",Z.INPUT_OTHER="INPUT_OTHER",Z.INPUT_IP_PROHIBITED="INPUT_IP_PROHIBITED",Z.BLOCKLIST="BLOCKLIST",Z.UNSAFE_PROMPT_FOR_IMAGE_GENERATION="UNSAFE_PROMPT_FOR_IMAGE_GENERATION",Z.GENERATED_IMAGE_SAFETY="GENERATED_IMAGE_SAFETY",Z.GENERATED_CONTENT_SAFETY="GENERATED_CONTENT_SAFETY",Z.GENERATED_AUDIO_SAFETY="GENERATED_AUDIO_SAFETY",Z.GENERATED_VIDEO_SAFETY="GENERATED_VIDEO_SAFETY",Z.GENERATED_CONTENT_PROHIBITED="GENERATED_CONTENT_PROHIBITED",Z.GENERATED_CONTENT_BLOCKLIST="GENERATED_CONTENT_BLOCKLIST",Z.GENERATED_IMAGE_PROHIBITED="GENERATED_IMAGE_PROHIBITED",Z.GENERATED_IMAGE_CELEBRITY="GENERATED_IMAGE_CELEBRITY",Z.GENERATED_IMAGE_PROMINENT_PEOPLE_DETECTED_BY_REWRITER="GENERATED_IMAGE_PROMINENT_PEOPLE_DETECTED_BY_REWRITER",Z.GENERATED_IMAGE_IDENTIFIABLE_PEOPLE="GENERATED_IMAGE_IDENTIFIABLE_PEOPLE",Z.GENERATED_IMAGE_MINORS="GENERATED_IMAGE_MINORS",Z.OUTPUT_IMAGE_IP_PROHIBITED="OUTPUT_IMAGE_IP_PROHIBITED",Z.GENERATED_OTHER="GENERATED_OTHER",Z.MAX_REGENERATION_REACHED="MAX_REGENERATION_REACHED"})(P5||(P5={}));var S5;(function(Z){Z.MODALITY_UNSPECIFIED="MODALITY_UNSPECIFIED",Z.TEXT="TEXT",Z.IMAGE="IMAGE",Z.VIDEO="VIDEO",Z.AUDIO="AUDIO",Z.DOCUMENT="DOCUMENT"})(S5||(S5={}));var C5;(function(Z){Z.VAD_SIGNAL_TYPE_UNSPECIFIED="VAD_SIGNAL_TYPE_UNSPECIFIED",Z.VAD_SIGNAL_TYPE_SOS="VAD_SIGNAL_TYPE_SOS",Z.VAD_SIGNAL_TYPE_EOS="VAD_SIGNAL_TYPE_EOS"})(C5||(C5={}));var v5;(function(Z){Z.TYPE_UNSPECIFIED="TYPE_UNSPECIFIED",Z.ACTIVITY_START="ACTIVITY_START",Z.ACTIVITY_END="ACTIVITY_END"})(v5||(v5={}));var E5;(function(Z){Z.START_SENSITIVITY_UNSPECIFIED="START_SENSITIVITY_UNSPECIFIED",Z.START_SENSITIVITY_HIGH="START_SENSITIVITY_HIGH",Z.START_SENSITIVITY_LOW="START_SENSITIVITY_LOW"})(E5||(E5={}));var O5;(function(Z){Z.END_SENSITIVITY_UNSPECIFIED="END_SENSITIVITY_UNSPECIFIED",Z.END_SENSITIVITY_HIGH="END_SENSITIVITY_HIGH",Z.END_SENSITIVITY_LOW="END_SENSITIVITY_LOW"})(O5||(O5={}));var j5;(function(Z){Z.ACTIVITY_HANDLING_UNSPECIFIED="ACTIVITY_HANDLING_UNSPECIFIED",Z.START_OF_ACTIVITY_INTERRUPTS="START_OF_ACTIVITY_INTERRUPTS",Z.NO_INTERRUPTION="NO_INTERRUPTION"})(j5||(j5={}));var _5;(function(Z){Z.TURN_COVERAGE_UNSPECIFIED="TURN_COVERAGE_UNSPECIFIED",Z.TURN_INCLUDES_ONLY_ACTIVITY="TURN_INCLUDES_ONLY_ACTIVITY",Z.TURN_INCLUDES_ALL_INPUT="TURN_INCLUDES_ALL_INPUT",Z.TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO="TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO"})(_5||(_5={}));var h5;(function(Z){Z.SCALE_UNSPECIFIED="SCALE_UNSPECIFIED",Z.C_MAJOR_A_MINOR="C_MAJOR_A_MINOR",Z.D_FLAT_MAJOR_B_FLAT_MINOR="D_FLAT_MAJOR_B_FLAT_MINOR",Z.D_MAJOR_B_MINOR="D_MAJOR_B_MINOR",Z.E_FLAT_MAJOR_C_MINOR="E_FLAT_MAJOR_C_MINOR",Z.E_MAJOR_D_FLAT_MINOR="E_MAJOR_D_FLAT_MINOR",Z.F_MAJOR_D_MINOR="F_MAJOR_D_MINOR",Z.G_FLAT_MAJOR_E_FLAT_MINOR="G_FLAT_MAJOR_E_FLAT_MINOR",Z.G_MAJOR_E_MINOR="G_MAJOR_E_MINOR",Z.A_FLAT_MAJOR_F_MINOR="A_FLAT_MAJOR_F_MINOR",Z.A_MAJOR_G_FLAT_MINOR="A_MAJOR_G_FLAT_MINOR",Z.B_FLAT_MAJOR_G_MINOR="B_FLAT_MAJOR_G_MINOR",Z.B_MAJOR_A_FLAT_MINOR="B_MAJOR_A_FLAT_MINOR"})(h5||(h5={}));var k5;(function(Z){Z.MUSIC_GENERATION_MODE_UNSPECIFIED="MUSIC_GENERATION_MODE_UNSPECIFIED",Z.QUALITY="QUALITY",Z.DIVERSITY="DIVERSITY",Z.VOCALIZATION="VOCALIZATION"})(k5||(k5={}));var h4;(function(Z){Z.PLAYBACK_CONTROL_UNSPECIFIED="PLAYBACK_CONTROL_UNSPECIFIED",Z.PLAY="PLAY",Z.PAUSE="PAUSE",Z.STOP="STOP",Z.RESET_CONTEXT="RESET_CONTEXT"})(h4||(h4={}));class I4{constructor(Z){let $={};for(let Q of Z.headers.entries())$[Q[0]]=Q[1];this.headers=$,this.responseInternal=Z}json(){return this.responseInternal.json()}}class _4{get text(){var Z,$,Q,Y,W,J,K,q;if(((Y=(Q=($=(Z=this.candidates)===null||Z===void 0?void 0:Z[0])===null||$===void 0?void 0:$.content)===null||Q===void 0?void 0:Q.parts)===null||Y===void 0?void 0:Y.length)===0)return;if(this.candidates&&this.candidates.length>1)console.warn("there are multiple candidates in the response, returning text from the first one.");let H="",w=!1,F=[];for(let z of(q=(K=(J=(W=this.candidates)===null||W===void 0?void 0:W[0])===null||J===void 0?void 0:J.content)===null||K===void 0?void 0:K.parts)!==null&&q!==void 0?q:[]){for(let[G,D]of Object.entries(z))if(G!=="text"&&G!=="thought"&&G!=="thoughtSignature"&&(D!==null||D!==void 0))F.push(G);if(typeof z.text==="string"){if(typeof z.thought==="boolean"&&z.thought)continue;w=!0,H+=z.text}}if(F.length>0)console.warn(`there are non-text parts ${F} in the response, returning concatenation of all text parts. Please refer to the non text parts for a full response from model.`);return w?H:void 0}get data(){var Z,$,Q,Y,W,J,K,q;if(((Y=(Q=($=(Z=this.candidates)===null||Z===void 0?void 0:Z[0])===null||$===void 0?void 0:$.content)===null||Q===void 0?void 0:Q.parts)===null||Y===void 0?void 0:Y.length)===0)return;if(this.candidates&&this.candidates.length>1)console.warn("there are multiple candidates in the response, returning data from the first one.");let H="",w=[];for(let F of(q=(K=(J=(W=this.candidates)===null||W===void 0?void 0:W[0])===null||J===void 0?void 0:J.content)===null||K===void 0?void 0:K.parts)!==null&&q!==void 0?q:[]){for(let[z,G]of Object.entries(F))if(z!=="inlineData"&&(G!==null||G!==void 0))w.push(z);if(F.inlineData&&typeof F.inlineData.data==="string")H+=atob(F.inlineData.data)}if(w.length>0)console.warn(`there are non-data parts ${w} in the response, returning concatenation of all data parts. Please refer to the non data parts for a full response from model.`);return H.length>0?btoa(H):void 0}get functionCalls(){var Z,$,Q,Y,W,J,K,q;if(((Y=(Q=($=(Z=this.candidates)===null||Z===void 0?void 0:Z[0])===null||$===void 0?void 0:$.content)===null||Q===void 0?void 0:Q.parts)===null||Y===void 0?void 0:Y.length)===0)return;if(this.candidates&&this.candidates.length>1)console.warn("there are multiple candidates in the response, returning function calls from the first one.");let H=(q=(K=(J=(W=this.candidates)===null||W===void 0?void 0:W[0])===null||J===void 0?void 0:J.content)===null||K===void 0?void 0:K.parts)===null||q===void 0?void 0:q.filter((w)=>w.functionCall).map((w)=>w.functionCall).filter((w)=>w!==void 0);if((H===null||H===void 0?void 0:H.length)===0)return;return H}get executableCode(){var Z,$,Q,Y,W,J,K,q,H;if(((Y=(Q=($=(Z=this.candidates)===null||Z===void 0?void 0:Z[0])===null||$===void 0?void 0:$.content)===null||Q===void 0?void 0:Q.parts)===null||Y===void 0?void 0:Y.length)===0)return;if(this.candidates&&this.candidates.length>1)console.warn("there are multiple candidates in the response, returning executable code from the first one.");let w=(q=(K=(J=(W=this.candidates)===null||W===void 0?void 0:W[0])===null||J===void 0?void 0:J.content)===null||K===void 0?void 0:K.parts)===null||q===void 0?void 0:q.filter((F)=>F.executableCode).map((F)=>F.executableCode).filter((F)=>F!==void 0);if((w===null||w===void 0?void 0:w.length)===0)return;return(H=w===null||w===void 0?void 0:w[0])===null||H===void 0?void 0:H.code}get codeExecutionResult(){var Z,$,Q,Y,W,J,K,q,H;if(((Y=(Q=($=(Z=this.candidates)===null||Z===void 0?void 0:Z[0])===null||$===void 0?void 0:$.content)===null||Q===void 0?void 0:Q.parts)===null||Y===void 0?void 0:Y.length)===0)return;if(this.candidates&&this.candidates.length>1)console.warn("there are multiple candidates in the response, returning code execution result from the first one.");let w=(q=(K=(J=(W=this.candidates)===null||W===void 0?void 0:W[0])===null||J===void 0?void 0:J.content)===null||K===void 0?void 0:K.parts)===null||q===void 0?void 0:q.filter((F)=>F.codeExecutionResult).map((F)=>F.codeExecutionResult).filter((F)=>F!==void 0);if((w===null||w===void 0?void 0:w.length)===0)return;return(H=w===null||w===void 0?void 0:w[0])===null||H===void 0?void 0:H.output}}class a6{}class n6{}class wV{}class zV{}class FV{}class GV{}class r6{}class s6{}class o6{}class UV{}class r1{_fromAPIResponse({apiResponse:Z,_isVertexAI:$}){let Q=new r1,Y,W=Z;if($)Y=Mw(W);else Y=Dw(W);return Object.assign(Q,Y),Q}}class DV{}class t6{}class e6{}class ZZ{}class MV{}class IV{}class NV{}class GZ{_fromAPIResponse({apiResponse:Z,_isVertexAI:$}){let Q=new GZ,W=Aw(Z);return Object.assign(Q,W),Q}}class TV{}class BV{}class LV{}class RV{}class $Z{}class AV{get text(){var Z,$,Q;let Y="",W=!1,J=[];for(let K of(Q=($=(Z=this.serverContent)===null||Z===void 0?void 0:Z.modelTurn)===null||$===void 0?void 0:$.parts)!==null&&Q!==void 0?Q:[]){for(let[q,H]of Object.entries(K))if(q!=="text"&&q!=="thought"&&H!==null)J.push(q);if(typeof K.text==="string"){if(typeof K.thought==="boolean"&&K.thought)continue;W=!0,Y+=K.text}}if(J.length>0)console.warn(`there are non-text parts ${J} in the response, returning concatenation of all text parts. Please refer to the non text parts for a full response from model.`);return W?Y:void 0}get data(){var Z,$,Q;let Y="",W=[];for(let J of(Q=($=(Z=this.serverContent)===null||Z===void 0?void 0:Z.modelTurn)===null||$===void 0?void 0:$.parts)!==null&&Q!==void 0?Q:[]){for(let[K,q]of Object.entries(J))if(K!=="inlineData"&&q!==null)W.push(K);if(J.inlineData&&typeof J.inlineData.data==="string")Y+=atob(J.inlineData.data)}if(W.length>0)console.warn(`there are non-data parts ${W} in the response, returning concatenation of all data parts. Please refer to the non data parts for a full response from model.`);return Y.length>0?btoa(Y):void 0}}class PV{get audioChunk(){if(this.serverContent&&this.serverContent.audioChunks&&this.serverContent.audioChunks.length>0)return this.serverContent.audioChunks[0];return}}class $8{_fromAPIResponse({apiResponse:Z,_isVertexAI:$}){let Q=new $8,W=FZ(Z);return Object.assign(Q,W),Q}}function Z0(Z,$){if(!$||typeof $!=="string")throw Error("model is required and must be a string");if($.includes("..")||$.includes("?")||$.includes("&"))throw Error("invalid model parameter");if(Z.isVertexAI())if($.startsWith("publishers/")||$.startsWith("projects/")||$.startsWith("models/"))return $;else if($.indexOf("/")>=0){let Q=$.split("/",2);return`publishers/${Q[0]}/models/${Q[1]}`}else return`publishers/google/models/${$}`;else if($.startsWith("models/")||$.startsWith("tunedModels/"))return $;else return`models/${$}`}function SV(Z,$){let Q=Z0(Z,$);if(!Q)return"";if(Q.startsWith("publishers/")&&Z.isVertexAI())return`projects/${Z.getProject()}/locations/${Z.getLocation()}/${Q}`;else if(Q.startsWith("models/")&&Z.isVertexAI())return`projects/${Z.getProject()}/locations/${Z.getLocation()}/publishers/google/${Q}`;else return Q}function CV(Z){if(Array.isArray(Z))return Z.map(($)=>s1($));else return[s1(Z)]}function s1(Z){if(typeof Z==="object"&&Z!==null)return Z;throw Error(`Could not parse input as Blob. Unsupported blob type: ${typeof Z}`)}function vV(Z){let $=s1(Z);if($.mimeType&&$.mimeType.startsWith("image/"))return $;throw Error(`Unsupported mime type: ${$.mimeType}`)}function EV(Z){let $=s1(Z);if($.mimeType&&$.mimeType.startsWith("audio/"))return $;throw Error(`Unsupported mime type: ${$.mimeType}`)}function y5(Z){if(Z===null||Z===void 0)throw Error("PartUnion is required");if(typeof Z==="object")return Z;if(typeof Z==="string")return{text:Z};throw Error(`Unsupported part type: ${typeof Z}`)}function OV(Z){if(Z===null||Z===void 0||Array.isArray(Z)&&Z.length===0)throw Error("PartListUnion is required");if(Array.isArray(Z))return Z.map(($)=>y5($));return[y5(Z)]}function QZ(Z){return Z!==null&&Z!==void 0&&typeof Z==="object"&&"parts"in Z&&Array.isArray(Z.parts)}function x5(Z){return Z!==null&&Z!==void 0&&typeof Z==="object"&&"functionCall"in Z}function f5(Z){return Z!==null&&Z!==void 0&&typeof Z==="object"&&"functionResponse"in Z}function F0(Z){if(Z===null||Z===void 0)throw Error("ContentUnion is required");if(QZ(Z))return Z;return{role:"user",parts:OV(Z)}}function UZ(Z,$){if(!$)return[];if(Z.isVertexAI()&&Array.isArray($))return $.flatMap((Q)=>{let Y=F0(Q);if(Y.parts&&Y.parts.length>0&&Y.parts[0].text!==void 0)return[Y.parts[0].text];return[]});else if(Z.isVertexAI()){let Q=F0($);if(Q.parts&&Q.parts.length>0&&Q.parts[0].text!==void 0)return[Q.parts[0].text];return[]}if(Array.isArray($))return $.map((Q)=>F0(Q));return[F0($)]}function B0(Z){if(Z===null||Z===void 0||Array.isArray(Z)&&Z.length===0)throw Error("contents are required");if(!Array.isArray(Z)){if(x5(Z)||f5(Z))throw Error("To specify functionCall or functionResponse parts, please wrap them in a Content object, specifying the role for them");return[F0(Z)]}let $=[],Q=[],Y=QZ(Z[0]);for(let W of Z){let J=QZ(W);if(J!=Y)throw Error("Mixing Content and Parts is not supported, please group the parts into a the appropriate Content objects and specify the roles for them");if(J)$.push(W);else if(x5(W)||f5(W))throw Error("To specify functionCall or functionResponse parts, please wrap them, and any other parts, in Content objects as appropriate, specifying the role for them");else Q.push(W)}if(!Y)$.push({role:"user",parts:OV(Q)});return $}function Ew(Z,$){if(Z.includes("null"))$.nullable=!0;let Q=Z.filter((Y)=>Y!=="null");if(Q.length===1)$.type=Object.values(W4).includes(Q[0].toUpperCase())?Q[0].toUpperCase():W4.TYPE_UNSPECIFIED;else{$.anyOf=[];for(let Y of Q)$.anyOf.push({type:Object.values(W4).includes(Y.toUpperCase())?Y.toUpperCase():W4.TYPE_UNSPECIFIED})}}function y4(Z){let $={},Q=["items"],Y=["anyOf"],W=["properties"];if(Z.type&&Z.anyOf)throw Error("type and anyOf cannot be both populated.");let J=Z.anyOf;if(J!=null&&J.length==2){if(J[0].type==="null")$.nullable=!0,Z=J[1];else if(J[1].type==="null")$.nullable=!0,Z=J[0]}if(Z.type instanceof Array)Ew(Z.type,$);for(let[K,q]of Object.entries(Z)){if(q==null)continue;if(K=="type"){if(q==="null")throw Error("type: null can not be the only possible type for the field.");if(q instanceof Array)continue;$.type=Object.values(W4).includes(q.toUpperCase())?q.toUpperCase():W4.TYPE_UNSPECIFIED}else if(Q.includes(K))$[K]=y4(q);else if(Y.includes(K)){let H=[];for(let w of q){if(w.type=="null"){$.nullable=!0;continue}H.push(y4(w))}$[K]=H}else if(W.includes(K)){let H={};for(let[w,F]of Object.entries(q))H[w]=y4(F);$[K]=H}else{if(K==="additionalProperties")continue;$[K]=q}}return $}function DZ(Z){return y4(Z)}function MZ(Z){if(typeof Z==="object")return Z;else if(typeof Z==="string")return{voiceConfig:{prebuiltVoiceConfig:{voiceName:Z}}};else throw Error(`Unsupported speechConfig type: ${typeof Z}`)}function IZ(Z){if("multiSpeakerVoiceConfig"in Z)throw Error("multiSpeakerVoiceConfig is not supported in the live API.");return Z}function f4(Z){if(Z.functionDeclarations)for(let $ of Z.functionDeclarations){if($.parameters){if(!Object.keys($.parameters).includes("$schema"))$.parameters=y4($.parameters);else if(!$.parametersJsonSchema)$.parametersJsonSchema=$.parameters,delete $.parameters}if($.response){if(!Object.keys($.response).includes("$schema"))$.response=y4($.response);else if(!$.responseJsonSchema)$.responseJsonSchema=$.response,delete $.response}}return Z}function g4(Z){if(Z===void 0||Z===null)throw Error("tools is required");if(!Array.isArray(Z))throw Error("tools is required and must be an array of Tools");let $=[];for(let Q of Z)$.push(Q);return $}function Ow(Z,$,Q,Y=1){let W=!$.startsWith(`${Q}/`)&&$.split("/").length===Y;if(Z.isVertexAI())if($.startsWith("projects/"))return $;else if($.startsWith("locations/"))return`projects/${Z.getProject()}/${$}`;else if($.startsWith(`${Q}/`))return`projects/${Z.getProject()}/locations/${Z.getLocation()}/${$}`;else if(W)return`projects/${Z.getProject()}/locations/${Z.getLocation()}/${Q}/${$}`;else return $;if(W)return`${Q}/${$}`;return $}function Z4(Z,$){if(typeof $!=="string")throw Error("name must be a string");return Ow(Z,$,"cachedContents")}function jV(Z){switch(Z){case"STATE_UNSPECIFIED":return"JOB_STATE_UNSPECIFIED";case"CREATING":return"JOB_STATE_RUNNING";case"ACTIVE":return"JOB_STATE_SUCCEEDED";case"FAILED":return"JOB_STATE_FAILED";default:return Z}}function K4(Z){return zZ(Z)}function jw(Z){return Z!==null&&Z!==void 0&&typeof Z==="object"&&"name"in Z}function _V(Z){return Z!==null&&Z!==void 0&&typeof Z==="object"&&"video"in Z}function hV(Z){return Z!==null&&Z!==void 0&&typeof Z==="object"&&"uri"in Z}function NZ(Z){var $;let Q;if(jw(Z))Q=Z.name;if(hV(Z)){if(Q=Z.uri,Q===void 0)return}if(_V(Z)){if(Q=($=Z.video)===null||$===void 0?void 0:$.uri,Q===void 0)return}if(typeof Z==="string")Q=Z;if(Q===void 0)throw Error("Could not extract file name from the provided input.");if(Q.startsWith("https://")){let W=Q.split("files/")[1].match(/[a-z0-9]+/);if(W===null)throw Error(`Could not extract file name from URI ${Q}`);Q=W[0]}else if(Q.startsWith("files/"))Q=Q.split("files/")[1];return Q}function kV(Z,$){let Q;if(Z.isVertexAI())Q=$?"publishers/google/models":"models";else Q=$?"models":"tunedModels";return Q}function yV(Z){for(let $ of["models","tunedModels","publisherModels"])if(_w(Z,$))return Z[$];return[]}function _w(Z,$){return Z!==null&&typeof Z==="object"&&$ in Z}function hw(Z,$={}){let Q=Z,Y={name:Q.name,description:Q.description,parametersJsonSchema:Q.inputSchema};if(Q.outputSchema)Y.responseJsonSchema=Q.outputSchema;if($.behavior)Y.behavior=$.behavior;return{functionDeclarations:[Y]}}function kw(Z,$={}){let Q=[],Y=new Set;for(let W of Z){let J=W.name;if(Y.has(J))throw Error(`Duplicate function name ${J} found in MCP tools. Please ensure function names are unique.`);Y.add(J);let K=hw(W,$);if(K.functionDeclarations)Q.push(...K.functionDeclarations)}return{functionDeclarations:Q}}function xV(Z,$){let Q;if(typeof $==="string")if(Z.isVertexAI())if($.startsWith("gs://"))Q={format:"jsonl",gcsUri:[$]};else if($.startsWith("bq://"))Q={format:"bigquery",bigqueryUri:$};else if(/^projects\/[^/]+\/locations\/[^/]+\/datasets\/[^/]+$/.test($))Q={format:"vertex-dataset",vertexDatasetName:$};else throw Error(`Unsupported string source for Vertex AI: ${$}`);else if($.startsWith("files/"))Q={fileName:$};else throw Error(`Unsupported string source for Gemini API: ${$}`);else if(Array.isArray($)){if(Z.isVertexAI())throw Error("InlinedRequest[] is not supported in Vertex AI.");Q={inlinedRequests:$}}else Q=$;let Y=[Q.gcsUri,Q.bigqueryUri,Q.vertexDatasetName].filter(Boolean).length,W=[Q.inlinedRequests,Q.fileName].filter(Boolean).length;if(Z.isVertexAI()){if(W>0||Y!==1)throw Error("Exactly one of `gcsUri`, `bigqueryUri`, or `vertexDatasetName` must be set for Vertex AI.")}else if(Y>0||W!==1)throw Error("Exactly one of `inlinedRequests`, `fileName`, must be set for Gemini API.");return Q}function yw(Z){if(typeof Z!=="string")return Z;let $=Z;if($.startsWith("gs://"))return{format:"jsonl",gcsUri:$};else if($.startsWith("bq://"))return{format:"bigquery",bigqueryUri:$};else throw Error(`Unsupported destination: ${$}`)}function fV(Z){if(typeof Z!=="object"||Z===null)return{};let $=Z,Q=$.inlinedResponses;if(typeof Q!=="object"||Q===null)return Z;let W=Q.inlinedResponses;if(!Array.isArray(W)||W.length===0)return Z;let J=!1;for(let K of W){if(typeof K!=="object"||K===null)continue;let H=K.response;if(typeof H!=="object"||H===null)continue;if(H.embedding!==void 0){J=!0;break}}if(J)$.inlinedEmbedContentResponses=$.inlinedResponses,delete $.inlinedResponses;return Z}function b4(Z,$){let Q=$;if(!Z.isVertexAI())if(/batches\/[^/]+$/.test(Q))return Q.split("/").pop();else throw Error(`Invalid batch job name: ${Q}.`);if(/^projects\/[^/]+\/locations\/[^/]+\/batchPredictionJobs\/[^/]+$/.test(Q))return Q.split("/").pop();else if(/^\d+$/.test(Q))return Q;else throw Error(`Invalid batch job name: ${Q}.`)}function gV(Z){let $=Z;if($==="BATCH_STATE_UNSPECIFIED")return"JOB_STATE_UNSPECIFIED";else if($==="BATCH_STATE_PENDING")return"JOB_STATE_PENDING";else if($==="BATCH_STATE_RUNNING")return"JOB_STATE_RUNNING";else if($==="BATCH_STATE_SUCCEEDED")return"JOB_STATE_SUCCEEDED";else if($==="BATCH_STATE_FAILED")return"JOB_STATE_FAILED";else if($==="BATCH_STATE_CANCELLED")return"JOB_STATE_CANCELLED";else if($==="BATCH_STATE_EXPIRED")return"JOB_STATE_EXPIRED";else return $}function xw(Z){return Z.includes("gemini")&&Z!=="gemini-embedding-001"||Z.includes("maas")}function fw(Z){let $={},Q=V(Z,["apiKey"]);if(Q!=null)X($,["apiKey"],Q);if(V(Z,["apiKeyConfig"])!==void 0)throw Error("apiKeyConfig parameter is not supported in Gemini API.");if(V(Z,["authType"])!==void 0)throw Error("authType parameter is not supported in Gemini API.");if(V(Z,["googleServiceAccountConfig"])!==void 0)throw Error("googleServiceAccountConfig parameter is not supported in Gemini API.");if(V(Z,["httpBasicAuthConfig"])!==void 0)throw Error("httpBasicAuthConfig parameter is not supported in Gemini API.");if(V(Z,["oauthConfig"])!==void 0)throw Error("oauthConfig parameter is not supported in Gemini API.");if(V(Z,["oidcConfig"])!==void 0)throw Error("oidcConfig parameter is not supported in Gemini API.");return $}function gw(Z){let $={},Q=V(Z,["responsesFile"]);if(Q!=null)X($,["fileName"],Q);let Y=V(Z,["inlinedResponses","inlinedResponses"]);if(Y!=null){let J=Y;if(Array.isArray(J))J=J.map((K)=>{return Iz(K)});X($,["inlinedResponses"],J)}let W=V(Z,["inlinedEmbedContentResponses","inlinedResponses"]);if(W!=null){let J=W;if(Array.isArray(J))J=J.map((K)=>{return K});X($,["inlinedEmbedContentResponses"],J)}return $}function bw(Z){let $={},Q=V(Z,["predictionsFormat"]);if(Q!=null)X($,["format"],Q);let Y=V(Z,["gcsDestination","outputUriPrefix"]);if(Y!=null)X($,["gcsUri"],Y);let W=V(Z,["bigqueryDestination","outputUri"]);if(W!=null)X($,["bigqueryUri"],W);let J=V(Z,["vertexMultimodalDatasetDestination"]);if(J!=null)X($,["vertexDataset"],Ez(J));return $}function mw(Z){let $={},Q=V(Z,["format"]);if(Q!=null)X($,["predictionsFormat"],Q);let Y=V(Z,["gcsUri"]);if(Y!=null)X($,["gcsDestination","outputUriPrefix"],Y);let W=V(Z,["bigqueryUri"]);if(W!=null)X($,["bigqueryDestination","outputUri"],W);if(V(Z,["fileName"])!==void 0)throw Error("fileName parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");if(V(Z,["inlinedResponses"])!==void 0)throw Error("inlinedResponses parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");if(V(Z,["inlinedEmbedContentResponses"])!==void 0)throw Error("inlinedEmbedContentResponses parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");let J=V(Z,["vertexDataset"]);if(J!=null)X($,["vertexMultimodalDatasetDestination"],Oz(J));return $}function p1(Z){let $={},Q=V(Z,["name"]);if(Q!=null)X($,["name"],Q);let Y=V(Z,["metadata","displayName"]);if(Y!=null)X($,["displayName"],Y);let W=V(Z,["metadata","state"]);if(W!=null)X($,["state"],gV(W));let J=V(Z,["metadata","createTime"]);if(J!=null)X($,["createTime"],J);let K=V(Z,["metadata","endTime"]);if(K!=null)X($,["endTime"],K);let q=V(Z,["metadata","updateTime"]);if(q!=null)X($,["updateTime"],q);let H=V(Z,["metadata","model"]);if(H!=null)X($,["model"],H);let w=V(Z,["metadata","output"]);if(w!=null)X($,["dest"],gw(fV(w)));return $}function YZ(Z){let $={},Q=V(Z,["name"]);if(Q!=null)X($,["name"],Q);let Y=V(Z,["displayName"]);if(Y!=null)X($,["displayName"],Y);let W=V(Z,["state"]);if(W!=null)X($,["state"],gV(W));let J=V(Z,["error"]);if(J!=null)X($,["error"],J);let K=V(Z,["createTime"]);if(K!=null)X($,["createTime"],K);let q=V(Z,["startTime"]);if(q!=null)X($,["startTime"],q);let H=V(Z,["endTime"]);if(H!=null)X($,["endTime"],H);let w=V(Z,["updateTime"]);if(w!=null)X($,["updateTime"],w);let F=V(Z,["model"]);if(F!=null)X($,["model"],F);let z=V(Z,["inputConfig"]);if(z!=null)X($,["src"],uw(z));let G=V(Z,["outputConfig"]);if(G!=null)X($,["dest"],bw(fV(G)));let D=V(Z,["completionStats"]);if(D!=null)X($,["completionStats"],D);let T=V(Z,["outputInfo"]);if(T!=null)X($,["outputInfo"],T);return $}function uw(Z){let $={},Q=V(Z,["instancesFormat"]);if(Q!=null)X($,["format"],Q);let Y=V(Z,["gcsSource","uris"]);if(Y!=null)X($,["gcsUri"],Y);let W=V(Z,["bigquerySource","inputUri"]);if(W!=null)X($,["bigqueryUri"],W);let J=V(Z,["vertexMultimodalDatasetSource","datasetName"]);if(J!=null)X($,["vertexDatasetName"],J);return $}function dw(Z,$){let Q={};if(V($,["format"])!==void 0)throw Error("format parameter is not supported in Gemini API.");if(V($,["gcsUri"])!==void 0)throw Error("gcsUri parameter is not supported in Gemini API.");if(V($,["bigqueryUri"])!==void 0)throw Error("bigqueryUri parameter is not supported in Gemini API.");let Y=V($,["fileName"]);if(Y!=null)X(Q,["fileName"],Y);let W=V($,["inlinedRequests"]);if(W!=null){let J=W;if(Array.isArray(J))J=J.map((K)=>{return Mz(Z,K)});X(Q,["requests","requests"],J)}if(V($,["vertexDatasetName"])!==void 0)throw Error("vertexDatasetName parameter is not supported in Gemini API.");return Q}function lw(Z){let $={},Q=V(Z,["format"]);if(Q!=null)X($,["instancesFormat"],Q);let Y=V(Z,["gcsUri"]);if(Y!=null)X($,["gcsSource","uris"],Y);let W=V(Z,["bigqueryUri"]);if(W!=null)X($,["bigquerySource","inputUri"],W);if(V(Z,["fileName"])!==void 0)throw Error("fileName parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");if(V(Z,["inlinedRequests"])!==void 0)throw Error("inlinedRequests parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");let J=V(Z,["vertexDatasetName"]);if(J!=null)X($,["vertexMultimodalDatasetSource","datasetName"],J);return $}function cw(Z){let $={},Q=V(Z,["data"]);if(Q!=null)X($,["data"],Q);if(V(Z,["displayName"])!==void 0)throw Error("displayName parameter is not supported in Gemini API.");let Y=V(Z,["mimeType"]);if(Y!=null)X($,["mimeType"],Y);return $}function pw(Z,$){let Q={},Y=V($,["name"]);if(Y!=null)X(Q,["_url","name"],b4(Z,Y));return Q}function iw(Z,$){let Q={},Y=V($,["name"]);if(Y!=null)X(Q,["_url","name"],b4(Z,Y));return Q}function aw(Z){let $={},Q=V(Z,["content"]);if(Q!=null)X($,["content"],Q);let Y=V(Z,["citationMetadata"]);if(Y!=null)X($,["citationMetadata"],nw(Y));let W=V(Z,["tokenCount"]);if(W!=null)X($,["tokenCount"],W);let J=V(Z,["finishReason"]);if(J!=null)X($,["finishReason"],J);let K=V(Z,["groundingMetadata"]);if(K!=null)X($,["groundingMetadata"],K);let q=V(Z,["avgLogprobs"]);if(q!=null)X($,["avgLogprobs"],q);let H=V(Z,["index"]);if(H!=null)X($,["index"],H);let w=V(Z,["logprobsResult"]);if(w!=null)X($,["logprobsResult"],w);let F=V(Z,["safetyRatings"]);if(F!=null){let G=F;if(Array.isArray(G))G=G.map((D)=>{return D});X($,["safetyRatings"],G)}let z=V(Z,["urlContextMetadata"]);if(z!=null)X($,["urlContextMetadata"],z);return $}function nw(Z){let $={},Q=V(Z,["citationSources"]);if(Q!=null){let Y=Q;if(Array.isArray(Y))Y=Y.map((W)=>{return W});X($,["citations"],Y)}return $}function bV(Z){let $={},Q=V(Z,["parts"]);if(Q!=null){let W=Q;if(Array.isArray(W))W=W.map((J)=>{return Pz(J)});X($,["parts"],W)}let Y=V(Z,["role"]);if(Y!=null)X($,["role"],Y);return $}function rw(Z,$){let Q={},Y=V(Z,["displayName"]);if($!==void 0&&Y!=null)X($,["batch","displayName"],Y);if(V(Z,["dest"])!==void 0)throw Error("dest parameter is not supported in Gemini API.");let W=V(Z,["webhookConfig"]);if($!==void 0&&W!=null)X($,["batch","webhookConfig"],W);return Q}function sw(Z,$){let Q={},Y=V(Z,["displayName"]);if($!==void 0&&Y!=null)X($,["displayName"],Y);let W=V(Z,["dest"]);if($!==void 0&&W!=null)X($,["outputConfig"],mw(yw(W)));if(V(Z,["webhookConfig"])!==void 0)throw Error("webhookConfig parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");return Q}function g5(Z,$){let Q={},Y=V($,["model"]);if(Y!=null)X(Q,["_url","model"],Z0(Z,Y));let W=V($,["src"]);if(W!=null)X(Q,["batch","inputConfig"],dw(Z,xV(Z,W)));let J=V($,["config"]);if(J!=null)rw(J,Q);return Q}function ow(Z,$){let Q={},Y=V($,["model"]);if(Y!=null)X(Q,["model"],Z0(Z,Y));let W=V($,["src"]);if(W!=null)X(Q,["inputConfig"],lw(xV(Z,W)));let J=V($,["config"]);if(J!=null)sw(J,Q);return Q}function tw(Z,$){let Q={},Y=V(Z,["displayName"]);if($!==void 0&&Y!=null)X($,["batch","displayName"],Y);return Q}function ew(Z,$){let Q={},Y=V($,["model"]);if(Y!=null)X(Q,["_url","model"],Z0(Z,Y));let W=V($,["src"]);if(W!=null)X(Q,["batch","inputConfig"],Jz(Z,W));let J=V($,["config"]);if(J!=null)tw(J,Q);return Q}function Zz(Z,$){let Q={},Y=V($,["name"]);if(Y!=null)X(Q,["_url","name"],b4(Z,Y));return Q}function $z(Z,$){let Q={},Y=V($,["name"]);if(Y!=null)X(Q,["_url","name"],b4(Z,Y));return Q}function Qz(Z){let $={},Q=V(Z,["sdkHttpResponse"]);if(Q!=null)X($,["sdkHttpResponse"],Q);let Y=V(Z,["name"]);if(Y!=null)X($,["name"],Y);let W=V(Z,["done"]);if(W!=null)X($,["done"],W);let J=V(Z,["error"]);if(J!=null)X($,["error"],J);return $}function Yz(Z){let $={},Q=V(Z,["sdkHttpResponse"]);if(Q!=null)X($,["sdkHttpResponse"],Q);let Y=V(Z,["name"]);if(Y!=null)X($,["name"],Y);let W=V(Z,["done"]);if(W!=null)X($,["done"],W);let J=V(Z,["error"]);if(J!=null)X($,["error"],J);return $}function Wz(Z,$){let Q={},Y=V($,["contents"]);if(Y!=null){let J=UZ(Z,Y);if(Array.isArray(J))J=J.map((K)=>{return K});X(Q,["requests[]","request","content"],J)}let W=V($,["config"]);if(W!=null)X(Q,["_self"],Vz(W,Q)),Gw(Q,{"requests[].*":"requests[].request.*"});return Q}function Vz(Z,$){let Q={},Y=V(Z,["taskType"]);if($!==void 0&&Y!=null)X($,["requests[]","taskType"],Y);let W=V(Z,["title"]);if($!==void 0&&W!=null)X($,["requests[]","title"],W);let J=V(Z,["outputDimensionality"]);if($!==void 0&&J!=null)X($,["requests[]","outputDimensionality"],J);if(V(Z,["mimeType"])!==void 0)throw Error("mimeType parameter is not supported in Gemini API.");if(V(Z,["autoTruncate"])!==void 0)throw Error("autoTruncate parameter is not supported in Gemini API.");if(V(Z,["documentOcr"])!==void 0)throw Error("documentOcr parameter is not supported in Gemini API.");if(V(Z,["audioTrackExtraction"])!==void 0)throw Error("audioTrackExtraction parameter is not supported in Gemini API.");return Q}function Jz(Z,$){let Q={},Y=V($,["fileName"]);if(Y!=null)X(Q,["file_name"],Y);let W=V($,["inlinedRequests"]);if(W!=null)X(Q,["requests"],Wz(Z,W));return Q}function Xz(Z){let $={};if(V(Z,["displayName"])!==void 0)throw Error("displayName parameter is not supported in Gemini API.");let Q=V(Z,["fileUri"]);if(Q!=null)X($,["fileUri"],Q);let Y=V(Z,["mimeType"]);if(Y!=null)X($,["mimeType"],Y);return $}function Kz(Z){let $={},Q=V(Z,["id"]);if(Q!=null)X($,["id"],Q);let Y=V(Z,["args"]);if(Y!=null)X($,["args"],Y);let W=V(Z,["name"]);if(W!=null)X($,["name"],W);if(V(Z,["partialArgs"])!==void 0)throw Error("partialArgs parameter is not supported in Gemini API.");if(V(Z,["willContinue"])!==void 0)throw Error("willContinue parameter is not supported in Gemini API.");return $}function qz(Z){let $={},Q=V(Z,["allowedFunctionNames"]);if(Q!=null)X($,["allowedFunctionNames"],Q);let Y=V(Z,["mode"]);if(Y!=null)X($,["mode"],Y);if(V(Z,["streamFunctionCallArguments"])!==void 0)throw Error("streamFunctionCallArguments parameter is not supported in Gemini API.");return $}function Hz(Z,$,Q){let Y={},W=V($,["systemInstruction"]);if(Q!==void 0&&W!=null)X(Q,["systemInstruction"],bV(F0(W)));let J=V($,["temperature"]);if(J!=null)X(Y,["temperature"],J);let K=V($,["topP"]);if(K!=null)X(Y,["topP"],K);let q=V($,["topK"]);if(q!=null)X(Y,["topK"],q);let H=V($,["candidateCount"]);if(H!=null)X(Y,["candidateCount"],H);let w=V($,["maxOutputTokens"]);if(w!=null)X(Y,["maxOutputTokens"],w);let F=V($,["stopSequences"]);if(F!=null)X(Y,["stopSequences"],F);let z=V($,["responseLogprobs"]);if(z!=null)X(Y,["responseLogprobs"],z);let G=V($,["logprobs"]);if(G!=null)X(Y,["logprobs"],G);let D=V($,["presencePenalty"]);if(D!=null)X(Y,["presencePenalty"],D);let T=V($,["frequencyPenalty"]);if(T!=null)X(Y,["frequencyPenalty"],T);let I=V($,["seed"]);if(I!=null)X(Y,["seed"],I);let P=V($,["responseMimeType"]);if(P!=null)X(Y,["responseMimeType"],P);let O=V($,["responseSchema"]);if(O!=null)X(Y,["responseSchema"],DZ(O));let y=V($,["responseJsonSchema"]);if(y!=null)X(Y,["responseJsonSchema"],y);if(V($,["routingConfig"])!==void 0)throw Error("routingConfig parameter is not supported in Gemini API.");if(V($,["modelSelectionConfig"])!==void 0)throw Error("modelSelectionConfig parameter is not supported in Gemini API.");let x=V($,["safetySettings"]);if(Q!==void 0&&x!=null){let $0=x;if(Array.isArray($0))$0=$0.map((V0)=>{return Sz(V0)});X(Q,["safetySettings"],$0)}let m=V($,["tools"]);if(Q!==void 0&&m!=null){let $0=g4(m);if(Array.isArray($0))$0=$0.map((V0)=>{return vz(f4(V0))});X(Q,["tools"],$0)}let f=V($,["toolConfig"]);if(Q!==void 0&&f!=null)X(Q,["toolConfig"],Cz(f));if(V($,["labels"])!==void 0)throw Error("labels parameter is not supported in Gemini API.");let S=V($,["cachedContent"]);if(Q!==void 0&&S!=null)X(Q,["cachedContent"],Z4(Z,S));let d=V($,["responseModalities"]);if(d!=null)X(Y,["responseModalities"],d);let h=V($,["mediaResolution"]);if(h!=null)X(Y,["mediaResolution"],h);let _=V($,["speechConfig"]);if(_!=null)X(Y,["speechConfig"],MZ(_));if(V($,["audioTimestamp"])!==void 0)throw Error("audioTimestamp parameter is not supported in Gemini API.");let n=V($,["thinkingConfig"]);if(n!=null)X(Y,["thinkingConfig"],n);let o=V($,["imageConfig"]);if(o!=null)X(Y,["imageConfig"],Dz(o));let t=V($,["enableEnhancedCivicAnswers"]);if(t!=null)X(Y,["enableEnhancedCivicAnswers"],t);if(V($,["modelArmorConfig"])!==void 0)throw Error("modelArmorConfig parameter is not supported in Gemini API.");let J0=V($,["serviceTier"]);if(Q!==void 0&&J0!=null)X(Q,["serviceTier"],J0);return Y}function wz(Z){let $={},Q=V(Z,["sdkHttpResponse"]);if(Q!=null)X($,["sdkHttpResponse"],Q);let Y=V(Z,["candidates"]);if(Y!=null){let w=Y;if(Array.isArray(w))w=w.map((F)=>{return aw(F)});X($,["candidates"],w)}let W=V(Z,["modelVersion"]);if(W!=null)X($,["modelVersion"],W);let J=V(Z,["promptFeedback"]);if(J!=null)X($,["promptFeedback"],J);let K=V(Z,["responseId"]);if(K!=null)X($,["responseId"],K);let q=V(Z,["usageMetadata"]);if(q!=null)X($,["usageMetadata"],q);let H=V(Z,["modelStatus"]);if(H!=null)X($,["modelStatus"],H);return $}function zz(Z,$){let Q={},Y=V($,["name"]);if(Y!=null)X(Q,["_url","name"],b4(Z,Y));return Q}function Fz(Z,$){let Q={},Y=V($,["name"]);if(Y!=null)X(Q,["_url","name"],b4(Z,Y));return Q}function Gz(Z){let $={},Q=V(Z,["authConfig"]);if(Q!=null)X($,["authConfig"],fw(Q));let Y=V(Z,["enableWidget"]);if(Y!=null)X($,["enableWidget"],Y);return $}function Uz(Z){let $={},Q=V(Z,["searchTypes"]);if(Q!=null)X($,["searchTypes"],Q);if(V(Z,["blockingConfidence"])!==void 0)throw Error("blockingConfidence parameter is not supported in Gemini API.");if(V(Z,["excludeDomains"])!==void 0)throw Error("excludeDomains parameter is not supported in Gemini API.");let Y=V(Z,["timeRangeFilter"]);if(Y!=null)X($,["timeRangeFilter"],Y);return $}function Dz(Z){let $={},Q=V(Z,["aspectRatio"]);if(Q!=null)X($,["aspectRatio"],Q);let Y=V(Z,["imageSize"]);if(Y!=null)X($,["imageSize"],Y);if(V(Z,["personGeneration"])!==void 0)throw Error("personGeneration parameter is not supported in Gemini API.");if(V(Z,["prominentPeople"])!==void 0)throw Error("prominentPeople parameter is not supported in Gemini API.");if(V(Z,["outputMimeType"])!==void 0)throw Error("outputMimeType parameter is not supported in Gemini API.");if(V(Z,["outputCompressionQuality"])!==void 0)throw Error("outputCompressionQuality parameter is not supported in Gemini API.");if(V(Z,["imageOutputOptions"])!==void 0)throw Error("imageOutputOptions parameter is not supported in Gemini API.");return $}function Mz(Z,$){let Q={},Y=V($,["model"]);if(Y!=null)X(Q,["request","model"],Z0(Z,Y));let W=V($,["contents"]);if(W!=null){let q=B0(W);if(Array.isArray(q))q=q.map((H)=>{return bV(H)});X(Q,["request","contents"],q)}let J=V($,["metadata"]);if(J!=null)X(Q,["metadata"],J);let K=V($,["config"]);if(K!=null)X(Q,["request","generationConfig"],Hz(Z,K,V(Q,["request"],{})));return Q}function Iz(Z){let $={},Q=V(Z,["response"]);if(Q!=null)X($,["response"],wz(Q));let Y=V(Z,["metadata"]);if(Y!=null)X($,["metadata"],Y);let W=V(Z,["error"]);if(W!=null)X($,["error"],W);return $}function Nz(Z,$){let Q={},Y=V(Z,["pageSize"]);if($!==void 0&&Y!=null)X($,["_query","pageSize"],Y);let W=V(Z,["pageToken"]);if($!==void 0&&W!=null)X($,["_query","pageToken"],W);if(V(Z,["filter"])!==void 0)throw Error("filter parameter is not supported in Gemini API.");return Q}function Tz(Z,$){let Q={},Y=V(Z,["pageSize"]);if($!==void 0&&Y!=null)X($,["_query","pageSize"],Y);let W=V(Z,["pageToken"]);if($!==void 0&&W!=null)X($,["_query","pageToken"],W);let J=V(Z,["filter"]);if($!==void 0&&J!=null)X($,["_query","filter"],J);return Q}function Bz(Z){let $={},Q=V(Z,["config"]);if(Q!=null)Nz(Q,$);return $}function Lz(Z){let $={},Q=V(Z,["config"]);if(Q!=null)Tz(Q,$);return $}function Rz(Z){let $={},Q=V(Z,["sdkHttpResponse"]);if(Q!=null)X($,["sdkHttpResponse"],Q);let Y=V(Z,["nextPageToken"]);if(Y!=null)X($,["nextPageToken"],Y);let W=V(Z,["operations"]);if(W!=null){let J=W;if(Array.isArray(J))J=J.map((K)=>{return p1(K)});X($,["batchJobs"],J)}return $}function Az(Z){let $={},Q=V(Z,["sdkHttpResponse"]);if(Q!=null)X($,["sdkHttpResponse"],Q);let Y=V(Z,["nextPageToken"]);if(Y!=null)X($,["nextPageToken"],Y);let W=V(Z,["batchPredictionJobs"]);if(W!=null){let J=W;if(Array.isArray(J))J=J.map((K)=>{return YZ(K)});X($,["batchJobs"],J)}return $}function Pz(Z){let $={},Q=V(Z,["mediaResolution"]);if(Q!=null)X($,["mediaResolution"],Q);let Y=V(Z,["codeExecutionResult"]);if(Y!=null)X($,["codeExecutionResult"],Y);let W=V(Z,["executableCode"]);if(W!=null)X($,["executableCode"],W);let J=V(Z,["fileData"]);if(J!=null)X($,["fileData"],Xz(J));let K=V(Z,["functionCall"]);if(K!=null)X($,["functionCall"],Kz(K));let q=V(Z,["functionResponse"]);if(q!=null)X($,["functionResponse"],q);let H=V(Z,["inlineData"]);if(H!=null)X($,["inlineData"],cw(H));let w=V(Z,["text"]);if(w!=null)X($,["text"],w);let F=V(Z,["thought"]);if(F!=null)X($,["thought"],F);let z=V(Z,["thoughtSignature"]);if(z!=null)X($,["thoughtSignature"],z);let G=V(Z,["videoMetadata"]);if(G!=null)X($,["videoMetadata"],G);let D=V(Z,["toolCall"]);if(D!=null)X($,["toolCall"],D);let T=V(Z,["toolResponse"]);if(T!=null)X($,["toolResponse"],T);let I=V(Z,["partMetadata"]);if(I!=null)X($,["partMetadata"],I);return $}function Sz(Z){let $={},Q=V(Z,["category"]);if(Q!=null)X($,["category"],Q);if(V(Z,["method"])!==void 0)throw Error("method parameter is not supported in Gemini API.");let Y=V(Z,["threshold"]);if(Y!=null)X($,["threshold"],Y);return $}function Cz(Z){let $={},Q=V(Z,["retrievalConfig"]);if(Q!=null)X($,["retrievalConfig"],Q);let Y=V(Z,["functionCallingConfig"]);if(Y!=null)X($,["functionCallingConfig"],qz(Y));let W=V(Z,["includeServerSideToolInvocations"]);if(W!=null)X($,["includeServerSideToolInvocations"],W);return $}function vz(Z){let $={};if(V(Z,["retrieval"])!==void 0)throw Error("retrieval parameter is not supported in Gemini API.");let Q=V(Z,["computerUse"]);if(Q!=null)X($,["computerUse"],Q);let Y=V(Z,["fileSearch"]);if(Y!=null)X($,["fileSearch"],Y);let W=V(Z,["googleSearch"]);if(W!=null)X($,["googleSearch"],Uz(W));let J=V(Z,["googleMaps"]);if(J!=null)X($,["googleMaps"],Gz(J));let K=V(Z,["codeExecution"]);if(K!=null)X($,["codeExecution"],K);if(V(Z,["enterpriseWebSearch"])!==void 0)throw Error("enterpriseWebSearch parameter is not supported in Gemini API.");let q=V(Z,["functionDeclarations"]);if(q!=null){let z=q;if(Array.isArray(z))z=z.map((G)=>{return G});X($,["functionDeclarations"],z)}let H=V(Z,["googleSearchRetrieval"]);if(H!=null)X($,["googleSearchRetrieval"],H);if(V(Z,["parallelAiSearch"])!==void 0)throw Error("parallelAiSearch parameter is not supported in Gemini API.");let w=V(Z,["urlContext"]);if(w!=null)X($,["urlContext"],w);let F=V(Z,["mcpServers"]);if(F!=null){let z=F;if(Array.isArray(z))z=z.map((G)=>{return G});X($,["mcpServers"],z)}return $}function Ez(Z){let $={},Q=V(Z,["bigqueryDestination","outputUri"]);if(Q!=null)X($,["bigqueryDestination"],Q);let Y=V(Z,["displayName"]);if(Y!=null)X($,["displayName"],Y);return $}function Oz(Z){let $={},Q=V(Z,["bigqueryDestination"]);if(Q!=null)X($,["bigqueryDestination","outputUri"],Q);let Y=V(Z,["displayName"]);if(Y!=null)X($,["displayName"],Y);return $}var e0;(function(Z){Z.PAGED_ITEM_BATCH_JOBS="batchJobs",Z.PAGED_ITEM_MODELS="models",Z.PAGED_ITEM_TUNING_JOBS="tuningJobs",Z.PAGED_ITEM_FILES="files",Z.PAGED_ITEM_CACHED_CONTENTS="cachedContents",Z.PAGED_ITEM_FILE_SEARCH_STORES="fileSearchStores",Z.PAGED_ITEM_DOCUMENTS="documents"})(e0||(e0={}));class q4{constructor(Z,$,Q,Y){this.pageInternal=[],this.paramsInternal={},this.requestInternal=$,this.init(Z,Q,Y)}init(Z,$,Q){var Y,W;this.nameInternal=Z,this.pageInternal=$[this.nameInternal]||[],this.sdkHttpResponseInternal=$===null||$===void 0?void 0:$.sdkHttpResponse,this.idxInternal=0;let J={config:{}};if(!Q||Object.keys(Q).length===0)J={config:{}};else if(typeof Q==="object")J=Object.assign({},Q);else J=Q;if(J.config)J.config.pageToken=$.nextPageToken;this.paramsInternal=J,this.pageInternalSize=(W=(Y=J.config)===null||Y===void 0?void 0:Y.pageSize)!==null&&W!==void 0?W:this.pageInternal.length}initNextPage(Z){this.init(this.nameInternal,Z,this.paramsInternal)}get page(){return this.pageInternal}get name(){return this.nameInternal}get pageSize(){return this.pageInternalSize}get sdkHttpResponse(){return this.sdkHttpResponseInternal}get params(){return this.paramsInternal}get pageLength(){return this.pageInternal.length}getItem(Z){return this.pageInternal[Z]}[Symbol.asyncIterator](){return{next:async()=>{if(this.idxInternal>=this.pageLength)if(this.hasNextPage())await this.nextPage();else return{value:void 0,done:!0};let Z=this.getItem(this.idxInternal);return this.idxInternal+=1,{value:Z,done:!1}},return:async()=>{return{value:void 0,done:!0}}}}async nextPage(){if(!this.hasNextPage())throw Error("No more pages to fetch.");let Z=await this.requestInternal(this.params);return this.initNextPage(Z),this.page}hasNextPage(){var Z;if(((Z=this.params.config)===null||Z===void 0?void 0:Z.pageToken)!==void 0)return!0;return!1}}class mV extends a0{constructor(Z){super();this.apiClient=Z,this.list=async($={})=>{return new q4(e0.PAGED_ITEM_BATCH_JOBS,(Q)=>this.listInternal(Q),await this.listInternal($),$)},this.create=async($)=>{if(this.apiClient.isVertexAI())$.config=this.formatDestination($.src,$.config);return this.createInternal($)},this.createEmbeddings=async($)=>{if(console.warn("batches.createEmbeddings() is experimental and may change without notice."),this.apiClient.isVertexAI())throw Error("Gemini Enterprise Agent Platform (previously known as Vertex AI) does not support batches.createEmbeddings.");return this.createEmbeddingsInternal($)}}createInlinedGenerateContentRequest(Z){let $=g5(this.apiClient,Z),Q=$._url,Y=u("{model}:batchGenerateContent",Q),K=$.batch.inputConfig.requests,q=K.requests,H=[];for(let w of q){let F=Object.assign({},w);if(F.systemInstruction){let z=F.systemInstruction;delete F.systemInstruction;let G=F.request;G.systemInstruction=z,F.request=G}H.push(F)}return K.requests=H,delete $.config,delete $._url,delete $._query,{path:Y,body:$}}getGcsUri(Z){if(typeof Z==="string")return Z.startsWith("gs://")?Z:void 0;if(!Array.isArray(Z)&&Z.gcsUri&&Z.gcsUri.length>0)return Z.gcsUri[0];return}getBigqueryUri(Z){if(typeof Z==="string")return Z.startsWith("bq://")?Z:void 0;if(!Array.isArray(Z))return Z.bigqueryUri;return}formatDestination(Z,$){let Q=$?Object.assign({},$):{},Y=Date.now().toString();if(!Q.displayName)Q.displayName=`genaiBatchJob_${Y}`;if(Q.dest===void 0){let W=this.getGcsUri(Z),J=this.getBigqueryUri(Z);if(W)if(W.endsWith(".jsonl"))Q.dest=`${W.slice(0,-6)}/dest`;else Q.dest=`${W}_dest_${Y}`;else if(J)Q.dest=`${J}_dest_${Y}`;else throw Error("Unsupported source for Gemini Enterprise Agent Platform (previously known as Vertex AI): No GCS or BigQuery URI found.")}return Q}async createInternal(Z){var $,Q,Y,W;let J,K="",q={};if(this.apiClient.isVertexAI()){let H=ow(this.apiClient,Z);return K=u("batchPredictionJobs",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"POST",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((w)=>{return w.json()}),J.then((w)=>{return YZ(w)})}else{let H=g5(this.apiClient,Z);return K=u("{model}:batchGenerateContent",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"POST",httpOptions:(Y=Z.config)===null||Y===void 0?void 0:Y.httpOptions,abortSignal:(W=Z.config)===null||W===void 0?void 0:W.abortSignal}).then((w)=>{return w.json()}),J.then((w)=>{return p1(w)})}}async createEmbeddingsInternal(Z){var $,Q;let Y,W="",J={};if(this.apiClient.isVertexAI())throw Error("This method is only supported by the Gemini Developer API.");else{let K=ew(this.apiClient,Z);return W=u("{model}:asyncBatchEmbedContent",K._url),J=K._query,delete K._url,delete K._query,Y=this.apiClient.request({path:W,queryParams:J,body:JSON.stringify(K),httpMethod:"POST",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((q)=>{return q.json()}),Y.then((q)=>{return p1(q)})}}async get(Z){var $,Q,Y,W;let J,K="",q={};if(this.apiClient.isVertexAI()){let H=Fz(this.apiClient,Z);return K=u("batchPredictionJobs/{name}",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"GET",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((w)=>{return w.json()}),J.then((w)=>{return YZ(w)})}else{let H=zz(this.apiClient,Z);return K=u("batches/{name}",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"GET",httpOptions:(Y=Z.config)===null||Y===void 0?void 0:Y.httpOptions,abortSignal:(W=Z.config)===null||W===void 0?void 0:W.abortSignal}).then((w)=>{return w.json()}),J.then((w)=>{return p1(w)})}}async cancel(Z){var $,Q,Y,W;let J="",K={};if(this.apiClient.isVertexAI()){let q=iw(this.apiClient,Z);J=u("batchPredictionJobs/{name}:cancel",q._url),K=q._query,delete q._url,delete q._query,await this.apiClient.request({path:J,queryParams:K,body:JSON.stringify(q),httpMethod:"POST",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal})}else{let q=pw(this.apiClient,Z);J=u("batches/{name}:cancel",q._url),K=q._query,delete q._url,delete q._query,await this.apiClient.request({path:J,queryParams:K,body:JSON.stringify(q),httpMethod:"POST",httpOptions:(Y=Z.config)===null||Y===void 0?void 0:Y.httpOptions,abortSignal:(W=Z.config)===null||W===void 0?void 0:W.abortSignal})}}async listInternal(Z){var $,Q,Y,W;let J,K="",q={};if(this.apiClient.isVertexAI()){let H=Lz(Z);return K=u("batchPredictionJobs",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"GET",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((w)=>{return w.json().then((F)=>{let z=F;return z.sdkHttpResponse={headers:w.headers},z})}),J.then((w)=>{let F=Az(w),z=new $Z;return Object.assign(z,F),z})}else{let H=Bz(Z);return K=u("batches",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"GET",httpOptions:(Y=Z.config)===null||Y===void 0?void 0:Y.httpOptions,abortSignal:(W=Z.config)===null||W===void 0?void 0:W.abortSignal}).then((w)=>{return w.json().then((F)=>{let z=F;return z.sdkHttpResponse={headers:w.headers},z})}),J.then((w)=>{let F=Rz(w),z=new $Z;return Object.assign(z,F),z})}}async delete(Z){var $,Q,Y,W;let J,K="",q={};if(this.apiClient.isVertexAI()){let H=$z(this.apiClient,Z);return K=u("batchPredictionJobs/{name}",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"DELETE",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((w)=>{return w.json().then((F)=>{let z=F;return z.sdkHttpResponse={headers:w.headers},z})}),J.then((w)=>{return Yz(w)})}else{let H=Zz(this.apiClient,Z);return K=u("batches/{name}",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"DELETE",httpOptions:(Y=Z.config)===null||Y===void 0?void 0:Y.httpOptions,abortSignal:(W=Z.config)===null||W===void 0?void 0:W.abortSignal}).then((w)=>{return w.json().then((F)=>{let z=F;return z.sdkHttpResponse={headers:w.headers},z})}),J.then((w)=>{return Qz(w)})}}}function jz(Z){let $={},Q=V(Z,["apiKey"]);if(Q!=null)X($,["apiKey"],Q);if(V(Z,["apiKeyConfig"])!==void 0)throw Error("apiKeyConfig parameter is not supported in Gemini API.");if(V(Z,["authType"])!==void 0)throw Error("authType parameter is not supported in Gemini API.");if(V(Z,["googleServiceAccountConfig"])!==void 0)throw Error("googleServiceAccountConfig parameter is not supported in Gemini API.");if(V(Z,["httpBasicAuthConfig"])!==void 0)throw Error("httpBasicAuthConfig parameter is not supported in Gemini API.");if(V(Z,["oauthConfig"])!==void 0)throw Error("oauthConfig parameter is not supported in Gemini API.");if(V(Z,["oidcConfig"])!==void 0)throw Error("oidcConfig parameter is not supported in Gemini API.");return $}function _z(Z){let $={},Q=V(Z,["data"]);if(Q!=null)X($,["data"],Q);if(V(Z,["displayName"])!==void 0)throw Error("displayName parameter is not supported in Gemini API.");let Y=V(Z,["mimeType"]);if(Y!=null)X($,["mimeType"],Y);return $}function b5(Z){let $={},Q=V(Z,["parts"]);if(Q!=null){let W=Q;if(Array.isArray(W))W=W.map((J)=>{return $3(J)});X($,["parts"],W)}let Y=V(Z,["role"]);if(Y!=null)X($,["role"],Y);return $}function m5(Z){let $={},Q=V(Z,["parts"]);if(Q!=null){let W=Q;if(Array.isArray(W))W=W.map((J)=>{return Q3(J)});X($,["parts"],W)}let Y=V(Z,["role"]);if(Y!=null)X($,["role"],Y);return $}function hz(Z,$){let Q={},Y=V(Z,["ttl"]);if($!==void 0&&Y!=null)X($,["ttl"],Y);let W=V(Z,["expireTime"]);if($!==void 0&&W!=null)X($,["expireTime"],W);let J=V(Z,["displayName"]);if($!==void 0&&J!=null)X($,["displayName"],J);let K=V(Z,["contents"]);if($!==void 0&&K!=null){let F=B0(K);if(Array.isArray(F))F=F.map((z)=>{return b5(z)});X($,["contents"],F)}let q=V(Z,["systemInstruction"]);if($!==void 0&&q!=null)X($,["systemInstruction"],b5(F0(q)));let H=V(Z,["tools"]);if($!==void 0&&H!=null){let F=H;if(Array.isArray(F))F=F.map((z)=>{return V3(z)});X($,["tools"],F)}let w=V(Z,["toolConfig"]);if($!==void 0&&w!=null)X($,["toolConfig"],Y3(w));if(V(Z,["kmsKeyName"])!==void 0)throw Error("kmsKeyName parameter is not supported in Gemini API.");return Q}function kz(Z,$){let Q={},Y=V(Z,["ttl"]);if($!==void 0&&Y!=null)X($,["ttl"],Y);let W=V(Z,["expireTime"]);if($!==void 0&&W!=null)X($,["expireTime"],W);let J=V(Z,["displayName"]);if($!==void 0&&J!=null)X($,["displayName"],J);let K=V(Z,["contents"]);if($!==void 0&&K!=null){let z=B0(K);if(Array.isArray(z))z=z.map((G)=>{return m5(G)});X($,["contents"],z)}let q=V(Z,["systemInstruction"]);if($!==void 0&&q!=null)X($,["systemInstruction"],m5(F0(q)));let H=V(Z,["tools"]);if($!==void 0&&H!=null){let z=H;if(Array.isArray(z))z=z.map((G)=>{return J3(G)});X($,["tools"],z)}let w=V(Z,["toolConfig"]);if($!==void 0&&w!=null)X($,["toolConfig"],W3(w));let F=V(Z,["kmsKeyName"]);if($!==void 0&&F!=null)X($,["encryption_spec","kmsKeyName"],F);return Q}function yz(Z,$){let Q={},Y=V($,["model"]);if(Y!=null)X(Q,["model"],SV(Z,Y));let W=V($,["config"]);if(W!=null)hz(W,Q);return Q}function xz(Z,$){let Q={},Y=V($,["model"]);if(Y!=null)X(Q,["model"],SV(Z,Y));let W=V($,["config"]);if(W!=null)kz(W,Q);return Q}function fz(Z,$){let Q={},Y=V($,["name"]);if(Y!=null)X(Q,["_url","name"],Z4(Z,Y));return Q}function gz(Z,$){let Q={},Y=V($,["name"]);if(Y!=null)X(Q,["_url","name"],Z4(Z,Y));return Q}function bz(Z){let $={},Q=V(Z,["sdkHttpResponse"]);if(Q!=null)X($,["sdkHttpResponse"],Q);return $}function mz(Z){let $={},Q=V(Z,["sdkHttpResponse"]);if(Q!=null)X($,["sdkHttpResponse"],Q);return $}function uz(Z){let $={};if(V(Z,["displayName"])!==void 0)throw Error("displayName parameter is not supported in Gemini API.");let Q=V(Z,["fileUri"]);if(Q!=null)X($,["fileUri"],Q);let Y=V(Z,["mimeType"]);if(Y!=null)X($,["mimeType"],Y);return $}function dz(Z){let $={},Q=V(Z,["id"]);if(Q!=null)X($,["id"],Q);let Y=V(Z,["args"]);if(Y!=null)X($,["args"],Y);let W=V(Z,["name"]);if(W!=null)X($,["name"],W);if(V(Z,["partialArgs"])!==void 0)throw Error("partialArgs parameter is not supported in Gemini API.");if(V(Z,["willContinue"])!==void 0)throw Error("willContinue parameter is not supported in Gemini API.");return $}function lz(Z){let $={},Q=V(Z,["allowedFunctionNames"]);if(Q!=null)X($,["allowedFunctionNames"],Q);let Y=V(Z,["mode"]);if(Y!=null)X($,["mode"],Y);if(V(Z,["streamFunctionCallArguments"])!==void 0)throw Error("streamFunctionCallArguments parameter is not supported in Gemini API.");return $}function cz(Z){let $={},Q=V(Z,["description"]);if(Q!=null)X($,["description"],Q);let Y=V(Z,["name"]);if(Y!=null)X($,["name"],Y);let W=V(Z,["parameters"]);if(W!=null)X($,["parameters"],W);let J=V(Z,["parametersJsonSchema"]);if(J!=null)X($,["parametersJsonSchema"],J);let K=V(Z,["response"]);if(K!=null)X($,["response"],K);let q=V(Z,["responseJsonSchema"]);if(q!=null)X($,["responseJsonSchema"],q);if(V(Z,["behavior"])!==void 0)throw Error("behavior parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");return $}function pz(Z,$){let Q={},Y=V($,["name"]);if(Y!=null)X(Q,["_url","name"],Z4(Z,Y));return Q}function iz(Z,$){let Q={},Y=V($,["name"]);if(Y!=null)X(Q,["_url","name"],Z4(Z,Y));return Q}function az(Z){let $={},Q=V(Z,["authConfig"]);if(Q!=null)X($,["authConfig"],jz(Q));let Y=V(Z,["enableWidget"]);if(Y!=null)X($,["enableWidget"],Y);return $}function nz(Z){let $={},Q=V(Z,["searchTypes"]);if(Q!=null)X($,["searchTypes"],Q);if(V(Z,["blockingConfidence"])!==void 0)throw Error("blockingConfidence parameter is not supported in Gemini API.");if(V(Z,["excludeDomains"])!==void 0)throw Error("excludeDomains parameter is not supported in Gemini API.");let Y=V(Z,["timeRangeFilter"]);if(Y!=null)X($,["timeRangeFilter"],Y);return $}function rz(Z,$){let Q={},Y=V(Z,["pageSize"]);if($!==void 0&&Y!=null)X($,["_query","pageSize"],Y);let W=V(Z,["pageToken"]);if($!==void 0&&W!=null)X($,["_query","pageToken"],W);return Q}function sz(Z,$){let Q={},Y=V(Z,["pageSize"]);if($!==void 0&&Y!=null)X($,["_query","pageSize"],Y);let W=V(Z,["pageToken"]);if($!==void 0&&W!=null)X($,["_query","pageToken"],W);return Q}function oz(Z){let $={},Q=V(Z,["config"]);if(Q!=null)rz(Q,$);return $}function tz(Z){let $={},Q=V(Z,["config"]);if(Q!=null)sz(Q,$);return $}function ez(Z){let $={},Q=V(Z,["sdkHttpResponse"]);if(Q!=null)X($,["sdkHttpResponse"],Q);let Y=V(Z,["nextPageToken"]);if(Y!=null)X($,["nextPageToken"],Y);let W=V(Z,["cachedContents"]);if(W!=null){let J=W;if(Array.isArray(J))J=J.map((K)=>{return K});X($,["cachedContents"],J)}return $}function Z3(Z){let $={},Q=V(Z,["sdkHttpResponse"]);if(Q!=null)X($,["sdkHttpResponse"],Q);let Y=V(Z,["nextPageToken"]);if(Y!=null)X($,["nextPageToken"],Y);let W=V(Z,["cachedContents"]);if(W!=null){let J=W;if(Array.isArray(J))J=J.map((K)=>{return K});X($,["cachedContents"],J)}return $}function $3(Z){let $={},Q=V(Z,["mediaResolution"]);if(Q!=null)X($,["mediaResolution"],Q);let Y=V(Z,["codeExecutionResult"]);if(Y!=null)X($,["codeExecutionResult"],Y);let W=V(Z,["executableCode"]);if(W!=null)X($,["executableCode"],W);let J=V(Z,["fileData"]);if(J!=null)X($,["fileData"],uz(J));let K=V(Z,["functionCall"]);if(K!=null)X($,["functionCall"],dz(K));let q=V(Z,["functionResponse"]);if(q!=null)X($,["functionResponse"],q);let H=V(Z,["inlineData"]);if(H!=null)X($,["inlineData"],_z(H));let w=V(Z,["text"]);if(w!=null)X($,["text"],w);let F=V(Z,["thought"]);if(F!=null)X($,["thought"],F);let z=V(Z,["thoughtSignature"]);if(z!=null)X($,["thoughtSignature"],z);let G=V(Z,["videoMetadata"]);if(G!=null)X($,["videoMetadata"],G);let D=V(Z,["toolCall"]);if(D!=null)X($,["toolCall"],D);let T=V(Z,["toolResponse"]);if(T!=null)X($,["toolResponse"],T);let I=V(Z,["partMetadata"]);if(I!=null)X($,["partMetadata"],I);return $}function Q3(Z){let $={},Q=V(Z,["mediaResolution"]);if(Q!=null)X($,["mediaResolution"],Q);let Y=V(Z,["codeExecutionResult"]);if(Y!=null)X($,["codeExecutionResult"],Y);let W=V(Z,["executableCode"]);if(W!=null)X($,["executableCode"],W);let J=V(Z,["fileData"]);if(J!=null)X($,["fileData"],J);let K=V(Z,["functionCall"]);if(K!=null)X($,["functionCall"],K);let q=V(Z,["functionResponse"]);if(q!=null)X($,["functionResponse"],q);let H=V(Z,["inlineData"]);if(H!=null)X($,["inlineData"],H);let w=V(Z,["text"]);if(w!=null)X($,["text"],w);let F=V(Z,["thought"]);if(F!=null)X($,["thought"],F);let z=V(Z,["thoughtSignature"]);if(z!=null)X($,["thoughtSignature"],z);let G=V(Z,["videoMetadata"]);if(G!=null)X($,["videoMetadata"],G);if(V(Z,["toolCall"])!==void 0)throw Error("toolCall parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");if(V(Z,["toolResponse"])!==void 0)throw Error("toolResponse parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");if(V(Z,["partMetadata"])!==void 0)throw Error("partMetadata parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");return $}function Y3(Z){let $={},Q=V(Z,["retrievalConfig"]);if(Q!=null)X($,["retrievalConfig"],Q);let Y=V(Z,["functionCallingConfig"]);if(Y!=null)X($,["functionCallingConfig"],lz(Y));let W=V(Z,["includeServerSideToolInvocations"]);if(W!=null)X($,["includeServerSideToolInvocations"],W);return $}function W3(Z){let $={},Q=V(Z,["retrievalConfig"]);if(Q!=null)X($,["retrievalConfig"],Q);let Y=V(Z,["functionCallingConfig"]);if(Y!=null)X($,["functionCallingConfig"],Y);if(V(Z,["includeServerSideToolInvocations"])!==void 0)throw Error("includeServerSideToolInvocations parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");return $}function V3(Z){let $={};if(V(Z,["retrieval"])!==void 0)throw Error("retrieval parameter is not supported in Gemini API.");let Q=V(Z,["computerUse"]);if(Q!=null)X($,["computerUse"],Q);let Y=V(Z,["fileSearch"]);if(Y!=null)X($,["fileSearch"],Y);let W=V(Z,["googleSearch"]);if(W!=null)X($,["googleSearch"],nz(W));let J=V(Z,["googleMaps"]);if(J!=null)X($,["googleMaps"],az(J));let K=V(Z,["codeExecution"]);if(K!=null)X($,["codeExecution"],K);if(V(Z,["enterpriseWebSearch"])!==void 0)throw Error("enterpriseWebSearch parameter is not supported in Gemini API.");let q=V(Z,["functionDeclarations"]);if(q!=null){let z=q;if(Array.isArray(z))z=z.map((G)=>{return G});X($,["functionDeclarations"],z)}let H=V(Z,["googleSearchRetrieval"]);if(H!=null)X($,["googleSearchRetrieval"],H);if(V(Z,["parallelAiSearch"])!==void 0)throw Error("parallelAiSearch parameter is not supported in Gemini API.");let w=V(Z,["urlContext"]);if(w!=null)X($,["urlContext"],w);let F=V(Z,["mcpServers"]);if(F!=null){let z=F;if(Array.isArray(z))z=z.map((G)=>{return G});X($,["mcpServers"],z)}return $}function J3(Z){let $={},Q=V(Z,["retrieval"]);if(Q!=null)X($,["retrieval"],Q);let Y=V(Z,["computerUse"]);if(Y!=null)X($,["computerUse"],Y);if(V(Z,["fileSearch"])!==void 0)throw Error("fileSearch parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");let W=V(Z,["googleSearch"]);if(W!=null)X($,["googleSearch"],W);let J=V(Z,["googleMaps"]);if(J!=null)X($,["googleMaps"],J);let K=V(Z,["codeExecution"]);if(K!=null)X($,["codeExecution"],K);let q=V(Z,["enterpriseWebSearch"]);if(q!=null)X($,["enterpriseWebSearch"],q);let H=V(Z,["functionDeclarations"]);if(H!=null){let G=H;if(Array.isArray(G))G=G.map((D)=>{return cz(D)});X($,["functionDeclarations"],G)}let w=V(Z,["googleSearchRetrieval"]);if(w!=null)X($,["googleSearchRetrieval"],w);let F=V(Z,["parallelAiSearch"]);if(F!=null)X($,["parallelAiSearch"],F);let z=V(Z,["urlContext"]);if(z!=null)X($,["urlContext"],z);if(V(Z,["mcpServers"])!==void 0)throw Error("mcpServers parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");return $}function X3(Z,$){let Q={},Y=V(Z,["ttl"]);if($!==void 0&&Y!=null)X($,["ttl"],Y);let W=V(Z,["expireTime"]);if($!==void 0&&W!=null)X($,["expireTime"],W);return Q}function K3(Z,$){let Q={},Y=V(Z,["ttl"]);if($!==void 0&&Y!=null)X($,["ttl"],Y);let W=V(Z,["expireTime"]);if($!==void 0&&W!=null)X($,["expireTime"],W);return Q}function q3(Z,$){let Q={},Y=V($,["name"]);if(Y!=null)X(Q,["_url","name"],Z4(Z,Y));let W=V($,["config"]);if(W!=null)X3(W,Q);return Q}function H3(Z,$){let Q={},Y=V($,["name"]);if(Y!=null)X(Q,["_url","name"],Z4(Z,Y));let W=V($,["config"]);if(W!=null)K3(W,Q);return Q}class uV extends a0{constructor(Z){super();this.apiClient=Z,this.list=async($={})=>{return new q4(e0.PAGED_ITEM_CACHED_CONTENTS,(Q)=>this.listInternal(Q),await this.listInternal($),$)}}async create(Z){var $,Q,Y,W;let J,K="",q={};if(this.apiClient.isVertexAI()){let H=xz(this.apiClient,Z);return K=u("cachedContents",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"POST",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((w)=>{return w.json()}),J.then((w)=>{return w})}else{let H=yz(this.apiClient,Z);return K=u("cachedContents",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"POST",httpOptions:(Y=Z.config)===null||Y===void 0?void 0:Y.httpOptions,abortSignal:(W=Z.config)===null||W===void 0?void 0:W.abortSignal}).then((w)=>{return w.json()}),J.then((w)=>{return w})}}async get(Z){var $,Q,Y,W;let J,K="",q={};if(this.apiClient.isVertexAI()){let H=iz(this.apiClient,Z);return K=u("{name}",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"GET",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((w)=>{return w.json()}),J.then((w)=>{return w})}else{let H=pz(this.apiClient,Z);return K=u("{name}",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"GET",httpOptions:(Y=Z.config)===null||Y===void 0?void 0:Y.httpOptions,abortSignal:(W=Z.config)===null||W===void 0?void 0:W.abortSignal}).then((w)=>{return w.json()}),J.then((w)=>{return w})}}async delete(Z){var $,Q,Y,W;let J,K="",q={};if(this.apiClient.isVertexAI()){let H=gz(this.apiClient,Z);return K=u("{name}",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"DELETE",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((w)=>{return w.json().then((F)=>{let z=F;return z.sdkHttpResponse={headers:w.headers},z})}),J.then((w)=>{let F=mz(w),z=new e6;return Object.assign(z,F),z})}else{let H=fz(this.apiClient,Z);return K=u("{name}",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"DELETE",httpOptions:(Y=Z.config)===null||Y===void 0?void 0:Y.httpOptions,abortSignal:(W=Z.config)===null||W===void 0?void 0:W.abortSignal}).then((w)=>{return w.json().then((F)=>{let z=F;return z.sdkHttpResponse={headers:w.headers},z})}),J.then((w)=>{let F=bz(w),z=new e6;return Object.assign(z,F),z})}}async update(Z){var $,Q,Y,W;let J,K="",q={};if(this.apiClient.isVertexAI()){let H=H3(this.apiClient,Z);return K=u("{name}",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"PATCH",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((w)=>{return w.json()}),J.then((w)=>{return w})}else{let H=q3(this.apiClient,Z);return K=u("{name}",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"PATCH",httpOptions:(Y=Z.config)===null||Y===void 0?void 0:Y.httpOptions,abortSignal:(W=Z.config)===null||W===void 0?void 0:W.abortSignal}).then((w)=>{return w.json()}),J.then((w)=>{return w})}}async listInternal(Z){var $,Q,Y,W;let J,K="",q={};if(this.apiClient.isVertexAI()){let H=tz(Z);return K=u("cachedContents",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"GET",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((w)=>{return w.json().then((F)=>{let z=F;return z.sdkHttpResponse={headers:w.headers},z})}),J.then((w)=>{let F=Z3(w),z=new ZZ;return Object.assign(z,F),z})}else{let H=oz(Z);return K=u("cachedContents",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"GET",httpOptions:(Y=Z.config)===null||Y===void 0?void 0:Y.httpOptions,abortSignal:(W=Z.config)===null||W===void 0?void 0:W.abortSignal}).then((w)=>{return w.json().then((F)=>{let z=F;return z.sdkHttpResponse={headers:w.headers},z})}),J.then((w)=>{let F=ez(w),z=new ZZ;return Object.assign(z,F),z})}}}function V4(Z,$){var Q={};for(var Y in Z)if(Object.prototype.hasOwnProperty.call(Z,Y)&&$.indexOf(Y)<0)Q[Y]=Z[Y];if(Z!=null&&typeof Object.getOwnPropertySymbols==="function"){for(var W=0,Y=Object.getOwnPropertySymbols(Z);W<Y.length;W++)if($.indexOf(Y[W])<0&&Object.prototype.propertyIsEnumerable.call(Z,Y[W]))Q[Y[W]]=Z[Y[W]]}return Q}function u5(Z){var $=typeof Symbol==="function"&&Symbol.iterator,Q=$&&Z[$],Y=0;if(Q)return Q.call(Z);if(Z&&typeof Z.length==="number")return{next:function(){if(Z&&Y>=Z.length)Z=void 0;return{value:Z&&Z[Y++],done:!Z}}};throw TypeError($?"Object is not iterable.":"Symbol.iterator is not defined.")}function r(Z){return this instanceof r?(this.v=Z,this):new r(Z)}function m0(Z,$,Q){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var Y=Q.apply(Z,$||[]),W,J=[];return W=Object.create((typeof AsyncIterator==="function"?AsyncIterator:Object).prototype),q("next"),q("throw"),q("return",K),W[Symbol.asyncIterator]=function(){return this},W;function K(D){return function(T){return Promise.resolve(T).then(D,z)}}function q(D,T){if(Y[D]){if(W[D]=function(I){return new Promise(function(P,O){J.push([D,I,P,O])>1||H(D,I)})},T)W[D]=T(W[D])}}function H(D,T){try{w(Y[D](T))}catch(I){G(J[0][3],I)}}function w(D){D.value instanceof r?Promise.resolve(D.value.v).then(F,z):G(J[0][2],D)}function F(D){H("next",D)}function z(D){H("throw",D)}function G(D,T){if(D(T),J.shift(),J.length)H(J[0][0],J[0][1])}}function u0(Z){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var $=Z[Symbol.asyncIterator],Q;return $?$.call(Z):(Z=typeof u5==="function"?u5(Z):Z[Symbol.iterator](),Q={},Y("next"),Y("throw"),Y("return"),Q[Symbol.asyncIterator]=function(){return this},Q);function Y(J){Q[J]=Z[J]&&function(K){return new Promise(function(q,H){K=Z[J](K),W(q,H,K.done,K.value)})}}function W(J,K,q,H){Promise.resolve(H).then(function(w){J({value:w,done:q})},K)}}function w3(Z){var $;if(Z.candidates==null||Z.candidates.length===0)return!1;let Q=($=Z.candidates[0])===null||$===void 0?void 0:$.content;if(Q===void 0)return!1;return dV(Q)}function dV(Z){if(Z.parts===void 0||Z.parts.length===0)return!1;for(let $ of Z.parts)if($===void 0||Object.keys($).length===0)return!1;return!0}function z3(Z){if(Z.length===0)return;for(let $ of Z)if($.role!=="user"&&$.role!=="model")throw Error(`Role must be user or model, but got ${$.role}.`)}function d5(Z){if(Z===void 0||Z.length===0)return[];let $=[],Q=Z.length,Y=0;while(Y<Q)if(Z[Y].role==="user")$.push(Z[Y]),Y++;else{let W=[],J=!0;while(Y<Q&&Z[Y].role==="model"){if(W.push(Z[Y]),J&&!dV(Z[Y]))J=!1;Y++}if(J)$.push(...W);else $.pop()}return $}class lV{constructor(Z,$){this.modelsModule=Z,this.apiClient=$}create(Z){return new cV(this.apiClient,this.modelsModule,Z.model,Z.config,structuredClone(Z.history))}}class cV{constructor(Z,$,Q,Y={},W=[]){this.apiClient=Z,this.modelsModule=$,this.model=Q,this.config=Y,this.history=W,this.sendPromise=Promise.resolve(),z3(W)}async sendMessage(Z){var $;await this.sendPromise;let Q=F0(Z.message),Y=this.modelsModule.generateContent({model:this.model,contents:this.getHistory(!0).concat(Q),config:($=Z.config)!==null&&$!==void 0?$:this.config});return this.sendPromise=(async()=>{var W,J,K;let q=await Y,H=(J=(W=q.candidates)===null||W===void 0?void 0:W[0])===null||J===void 0?void 0:J.content,w=q.automaticFunctionCallingHistory,F=this.getHistory(!0).length,z=[];if(w!=null)z=(K=w.slice(F))!==null&&K!==void 0?K:[];let G=H?[H]:[];this.recordHistory(Q,G,z);return})(),await this.sendPromise.catch(()=>{this.sendPromise=Promise.resolve()}),Y}async sendMessageStream(Z){var $;await this.sendPromise;let Q=F0(Z.message),Y=this.modelsModule.generateContentStream({model:this.model,contents:this.getHistory(!0).concat(Q),config:($=Z.config)!==null&&$!==void 0?$:this.config});this.sendPromise=Y.then(()=>{return}).catch(()=>{return});let W=await Y;return this.processStreamResponse(W,Q)}getHistory(Z=!1){let $=Z?d5(this.history):this.history;return structuredClone($)}processStreamResponse(Z,$){return m0(this,arguments,function*(){var Y,W,J,K,q,H;let w=[];try{for(var F=!0,z=u0(Z),G;G=yield r(z.next()),Y=G.done,!Y;F=!0){K=G.value,F=!1;let D=K;if(w3(D)){let T=(H=(q=D.candidates)===null||q===void 0?void 0:q[0])===null||H===void 0?void 0:H.content;if(T!==void 0)w.push(T)}yield yield r(D)}}catch(D){W={error:D}}finally{try{if(!F&&!Y&&(J=z.return))yield r(J.call(z))}finally{if(W)throw W.error}}this.recordHistory($,w)})}recordHistory(Z,$,Q){let Y=[];if($.length>0&&$.every((W)=>W.role!==void 0))Y=$;else Y.push({role:"model",parts:[]});if(Q&&Q.length>0)this.history.push(...d5(Q));else this.history.push(Z);this.history.push(...Y)}}class Q8 extends Error{constructor(Z){super(Z.message);this.name="ApiError",this.status=Z.status,Object.setPrototypeOf(this,Q8.prototype)}}function F3(Z){let $={},Q=V(Z,["file"]);if(Q!=null)X($,["file"],Q);return $}function G3(Z){let $={},Q=V(Z,["sdkHttpResponse"]);if(Q!=null)X($,["sdkHttpResponse"],Q);return $}function U3(Z){let $={},Q=V(Z,["name"]);if(Q!=null)X($,["_url","file"],NZ(Q));return $}function D3(Z){let $={},Q=V(Z,["sdkHttpResponse"]);if(Q!=null)X($,["sdkHttpResponse"],Q);return $}function M3(Z){let $={},Q=V(Z,["name"]);if(Q!=null)X($,["_url","file"],NZ(Q));return $}function I3(Z){let $={},Q=V(Z,["uris"]);if(Q!=null)X($,["uris"],Q);return $}function N3(Z,$){let Q={},Y=V(Z,["pageSize"]);if($!==void 0&&Y!=null)X($,["_query","pageSize"],Y);let W=V(Z,["pageToken"]);if($!==void 0&&W!=null)X($,["_query","pageToken"],W);return Q}function T3(Z){let $={},Q=V(Z,["config"]);if(Q!=null)N3(Q,$);return $}function B3(Z){let $={},Q=V(Z,["sdkHttpResponse"]);if(Q!=null)X($,["sdkHttpResponse"],Q);let Y=V(Z,["nextPageToken"]);if(Y!=null)X($,["nextPageToken"],Y);let W=V(Z,["files"]);if(W!=null){let J=W;if(Array.isArray(J))J=J.map((K)=>{return K});X($,["files"],J)}return $}function L3(Z){let $={},Q=V(Z,["sdkHttpResponse"]);if(Q!=null)X($,["sdkHttpResponse"],Q);let Y=V(Z,["files"]);if(Y!=null){let W=Y;if(Array.isArray(W))W=W.map((J)=>{return J});X($,["files"],W)}return $}class pV extends a0{constructor(Z){super();this.apiClient=Z,this.list=async($={})=>{return new q4(e0.PAGED_ITEM_FILES,(Q)=>this.listInternal(Q),await this.listInternal($),$)}}async upload(Z){if(this.apiClient.isVertexAI())throw Error("Gemini Enterprise Agent Platform (previously known as Vertex AI) does not support uploading files. You can share files through a GCS bucket.");return this.apiClient.uploadFile(Z.file,Z.config).then(($)=>{return $})}async download(Z){await this.apiClient.downloadFile(Z)}async registerFiles(Z){throw Error("registerFiles is only supported in Node.js environments.")}async _registerFiles(Z){return this.registerFilesInternal(Z)}async listInternal(Z){var $,Q;let Y,W="",J={};if(this.apiClient.isVertexAI())throw Error("This method is only supported by the Gemini Developer API.");else{let K=T3(Z);return W=u("files",K._url),J=K._query,delete K._url,delete K._query,Y=this.apiClient.request({path:W,queryParams:J,body:JSON.stringify(K),httpMethod:"GET",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((q)=>{return q.json().then((H)=>{let w=H;return w.sdkHttpResponse={headers:q.headers},w})}),Y.then((q)=>{let H=B3(q),w=new TV;return Object.assign(w,H),w})}}async createInternal(Z){var $,Q;let Y,W="",J={};if(this.apiClient.isVertexAI())throw Error("This method is only supported by the Gemini Developer API.");else{let K=F3(Z);return W=u("upload/v1beta/files",K._url),J=K._query,delete K._url,delete K._query,Y=this.apiClient.request({path:W,queryParams:J,body:JSON.stringify(K),httpMethod:"POST",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((q)=>{return q.json()}),Y.then((q)=>{let H=G3(q),w=new BV;return Object.assign(w,H),w})}}async get(Z){var $,Q;let Y,W="",J={};if(this.apiClient.isVertexAI())throw Error("This method is only supported by the Gemini Developer API.");else{let K=M3(Z);return W=u("files/{file}",K._url),J=K._query,delete K._url,delete K._query,Y=this.apiClient.request({path:W,queryParams:J,body:JSON.stringify(K),httpMethod:"GET",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((q)=>{return q.json()}),Y.then((q)=>{return q})}}async delete(Z){var $,Q;let Y,W="",J={};if(this.apiClient.isVertexAI())throw Error("This method is only supported by the Gemini Developer API.");else{let K=U3(Z);return W=u("files/{file}",K._url),J=K._query,delete K._url,delete K._query,Y=this.apiClient.request({path:W,queryParams:J,body:JSON.stringify(K),httpMethod:"DELETE",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((q)=>{return q.json().then((H)=>{let w=H;return w.sdkHttpResponse={headers:q.headers},w})}),Y.then((q)=>{let H=D3(q),w=new LV;return Object.assign(w,H),w})}}async registerFilesInternal(Z){var $,Q;let Y,W="",J={};if(this.apiClient.isVertexAI())throw Error("This method is only supported by the Gemini Developer API.");else{let K=I3(Z);return W=u("files:register",K._url),J=K._query,delete K._url,delete K._query,Y=this.apiClient.request({path:W,queryParams:J,body:JSON.stringify(K),httpMethod:"POST",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((q)=>{return q.json()}),Y.then((q)=>{let H=L3(q),w=new RV;return Object.assign(w,H),w})}}}function l5(Z){let $={};if(V(Z,["languageCodes"])!==void 0)throw Error("languageCodes parameter is not supported in Gemini API.");return $}function R3(Z){let $={},Q=V(Z,["apiKey"]);if(Q!=null)X($,["apiKey"],Q);if(V(Z,["apiKeyConfig"])!==void 0)throw Error("apiKeyConfig parameter is not supported in Gemini API.");if(V(Z,["authType"])!==void 0)throw Error("authType parameter is not supported in Gemini API.");if(V(Z,["googleServiceAccountConfig"])!==void 0)throw Error("googleServiceAccountConfig parameter is not supported in Gemini API.");if(V(Z,["httpBasicAuthConfig"])!==void 0)throw Error("httpBasicAuthConfig parameter is not supported in Gemini API.");if(V(Z,["oauthConfig"])!==void 0)throw Error("oauthConfig parameter is not supported in Gemini API.");if(V(Z,["oidcConfig"])!==void 0)throw Error("oidcConfig parameter is not supported in Gemini API.");return $}function i1(Z){let $={},Q=V(Z,["data"]);if(Q!=null)X($,["data"],Q);if(V(Z,["displayName"])!==void 0)throw Error("displayName parameter is not supported in Gemini API.");let Y=V(Z,["mimeType"]);if(Y!=null)X($,["mimeType"],Y);return $}function A3(Z){let $={},Q=V(Z,["parts"]);if(Q!=null){let W=Q;if(Array.isArray(W))W=W.map((J)=>{return u3(J)});X($,["parts"],W)}let Y=V(Z,["role"]);if(Y!=null)X($,["role"],Y);return $}function P3(Z){let $={},Q=V(Z,["parts"]);if(Q!=null){let W=Q;if(Array.isArray(W))W=W.map((J)=>{return d3(J)});X($,["parts"],W)}let Y=V(Z,["role"]);if(Y!=null)X($,["role"],Y);return $}function S3(Z){let $={};if(V(Z,["displayName"])!==void 0)throw Error("displayName parameter is not supported in Gemini API.");let Q=V(Z,["fileUri"]);if(Q!=null)X($,["fileUri"],Q);let Y=V(Z,["mimeType"]);if(Y!=null)X($,["mimeType"],Y);return $}function C3(Z){let $={},Q=V(Z,["id"]);if(Q!=null)X($,["id"],Q);let Y=V(Z,["args"]);if(Y!=null)X($,["args"],Y);let W=V(Z,["name"]);if(W!=null)X($,["name"],W);if(V(Z,["partialArgs"])!==void 0)throw Error("partialArgs parameter is not supported in Gemini API.");if(V(Z,["willContinue"])!==void 0)throw Error("willContinue parameter is not supported in Gemini API.");return $}function v3(Z){let $={},Q=V(Z,["description"]);if(Q!=null)X($,["description"],Q);let Y=V(Z,["name"]);if(Y!=null)X($,["name"],Y);let W=V(Z,["parameters"]);if(W!=null)X($,["parameters"],W);let J=V(Z,["parametersJsonSchema"]);if(J!=null)X($,["parametersJsonSchema"],J);let K=V(Z,["response"]);if(K!=null)X($,["response"],K);let q=V(Z,["responseJsonSchema"]);if(q!=null)X($,["responseJsonSchema"],q);if(V(Z,["behavior"])!==void 0)throw Error("behavior parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");return $}function E3(Z){let $={},Q=V(Z,["modelSelectionConfig"]);if(Q!=null)X($,["modelConfig"],Q);let Y=V(Z,["responseJsonSchema"]);if(Y!=null)X($,["responseJsonSchema"],Y);let W=V(Z,["audioTimestamp"]);if(W!=null)X($,["audioTimestamp"],W);let J=V(Z,["candidateCount"]);if(J!=null)X($,["candidateCount"],J);let K=V(Z,["enableAffectiveDialog"]);if(K!=null)X($,["enableAffectiveDialog"],K);let q=V(Z,["frequencyPenalty"]);if(q!=null)X($,["frequencyPenalty"],q);let H=V(Z,["logprobs"]);if(H!=null)X($,["logprobs"],H);let w=V(Z,["maxOutputTokens"]);if(w!=null)X($,["maxOutputTokens"],w);let F=V(Z,["mediaResolution"]);if(F!=null)X($,["mediaResolution"],F);let z=V(Z,["presencePenalty"]);if(z!=null)X($,["presencePenalty"],z);let G=V(Z,["responseLogprobs"]);if(G!=null)X($,["responseLogprobs"],G);let D=V(Z,["responseMimeType"]);if(D!=null)X($,["responseMimeType"],D);let T=V(Z,["responseModalities"]);if(T!=null)X($,["responseModalities"],T);let I=V(Z,["responseSchema"]);if(I!=null)X($,["responseSchema"],I);let P=V(Z,["routingConfig"]);if(P!=null)X($,["routingConfig"],P);let O=V(Z,["seed"]);if(O!=null)X($,["seed"],O);let y=V(Z,["speechConfig"]);if(y!=null)X($,["speechConfig"],y);let x=V(Z,["stopSequences"]);if(x!=null)X($,["stopSequences"],x);let m=V(Z,["temperature"]);if(m!=null)X($,["temperature"],m);let f=V(Z,["thinkingConfig"]);if(f!=null)X($,["thinkingConfig"],f);let S=V(Z,["topK"]);if(S!=null)X($,["topK"],S);let d=V(Z,["topP"]);if(d!=null)X($,["topP"],d);if(V(Z,["enableEnhancedCivicAnswers"])!==void 0)throw Error("enableEnhancedCivicAnswers parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");return $}function O3(Z){let $={},Q=V(Z,["authConfig"]);if(Q!=null)X($,["authConfig"],R3(Q));let Y=V(Z,["enableWidget"]);if(Y!=null)X($,["enableWidget"],Y);return $}function j3(Z){let $={},Q=V(Z,["searchTypes"]);if(Q!=null)X($,["searchTypes"],Q);if(V(Z,["blockingConfidence"])!==void 0)throw Error("blockingConfidence parameter is not supported in Gemini API.");if(V(Z,["excludeDomains"])!==void 0)throw Error("excludeDomains parameter is not supported in Gemini API.");let Y=V(Z,["timeRangeFilter"]);if(Y!=null)X($,["timeRangeFilter"],Y);return $}function _3(Z,$){let Q={},Y=V(Z,["generationConfig"]);if($!==void 0&&Y!=null)X($,["setup","generationConfig"],Y);let W=V(Z,["responseModalities"]);if($!==void 0&&W!=null)X($,["setup","generationConfig","responseModalities"],W);let J=V(Z,["temperature"]);if($!==void 0&&J!=null)X($,["setup","generationConfig","temperature"],J);let K=V(Z,["topP"]);if($!==void 0&&K!=null)X($,["setup","generationConfig","topP"],K);let q=V(Z,["topK"]);if($!==void 0&&q!=null)X($,["setup","generationConfig","topK"],q);let H=V(Z,["maxOutputTokens"]);if($!==void 0&&H!=null)X($,["setup","generationConfig","maxOutputTokens"],H);let w=V(Z,["mediaResolution"]);if($!==void 0&&w!=null)X($,["setup","generationConfig","mediaResolution"],w);let F=V(Z,["seed"]);if($!==void 0&&F!=null)X($,["setup","generationConfig","seed"],F);let z=V(Z,["speechConfig"]);if($!==void 0&&z!=null)X($,["setup","generationConfig","speechConfig"],IZ(z));let G=V(Z,["thinkingConfig"]);if($!==void 0&&G!=null)X($,["setup","generationConfig","thinkingConfig"],G);let D=V(Z,["enableAffectiveDialog"]);if($!==void 0&&D!=null)X($,["setup","generationConfig","enableAffectiveDialog"],D);let T=V(Z,["systemInstruction"]);if($!==void 0&&T!=null)X($,["setup","systemInstruction"],A3(F0(T)));let I=V(Z,["tools"]);if($!==void 0&&I!=null){let h=g4(I);if(Array.isArray(h))h=h.map((_)=>{return p3(f4(_))});X($,["setup","tools"],h)}let P=V(Z,["sessionResumption"]);if($!==void 0&&P!=null)X($,["setup","sessionResumption"],c3(P));let O=V(Z,["inputAudioTranscription"]);if($!==void 0&&O!=null)X($,["setup","inputAudioTranscription"],l5(O));let y=V(Z,["outputAudioTranscription"]);if($!==void 0&&y!=null)X($,["setup","outputAudioTranscription"],l5(y));let x=V(Z,["realtimeInputConfig"]);if($!==void 0&&x!=null)X($,["setup","realtimeInputConfig"],x);let m=V(Z,["contextWindowCompression"]);if($!==void 0&&m!=null)X($,["setup","contextWindowCompression"],m);let f=V(Z,["proactivity"]);if($!==void 0&&f!=null)X($,["setup","proactivity"],f);if(V(Z,["explicitVadSignal"])!==void 0)throw Error("explicitVadSignal parameter is not supported in Gemini API.");let S=V(Z,["avatarConfig"]);if($!==void 0&&S!=null)X($,["setup","avatarConfig"],S);let d=V(Z,["safetySettings"]);if($!==void 0&&d!=null){let h=d;if(Array.isArray(h))h=h.map((_)=>{return l3(_)});X($,["setup","safetySettings"],h)}return Q}function h3(Z,$){let Q={},Y=V(Z,["generationConfig"]);if($!==void 0&&Y!=null)X($,["setup","generationConfig"],E3(Y));let W=V(Z,["responseModalities"]);if($!==void 0&&W!=null)X($,["setup","generationConfig","responseModalities"],W);let J=V(Z,["temperature"]);if($!==void 0&&J!=null)X($,["setup","generationConfig","temperature"],J);let K=V(Z,["topP"]);if($!==void 0&&K!=null)X($,["setup","generationConfig","topP"],K);let q=V(Z,["topK"]);if($!==void 0&&q!=null)X($,["setup","generationConfig","topK"],q);let H=V(Z,["maxOutputTokens"]);if($!==void 0&&H!=null)X($,["setup","generationConfig","maxOutputTokens"],H);let w=V(Z,["mediaResolution"]);if($!==void 0&&w!=null)X($,["setup","generationConfig","mediaResolution"],w);let F=V(Z,["seed"]);if($!==void 0&&F!=null)X($,["setup","generationConfig","seed"],F);let z=V(Z,["speechConfig"]);if($!==void 0&&z!=null)X($,["setup","generationConfig","speechConfig"],IZ(z));let G=V(Z,["thinkingConfig"]);if($!==void 0&&G!=null)X($,["setup","generationConfig","thinkingConfig"],G);let D=V(Z,["enableAffectiveDialog"]);if($!==void 0&&D!=null)X($,["setup","generationConfig","enableAffectiveDialog"],D);let T=V(Z,["systemInstruction"]);if($!==void 0&&T!=null)X($,["setup","systemInstruction"],P3(F0(T)));let I=V(Z,["tools"]);if($!==void 0&&I!=null){let _=g4(I);if(Array.isArray(_))_=_.map((n)=>{return i3(f4(n))});X($,["setup","tools"],_)}let P=V(Z,["sessionResumption"]);if($!==void 0&&P!=null)X($,["setup","sessionResumption"],P);let O=V(Z,["inputAudioTranscription"]);if($!==void 0&&O!=null)X($,["setup","inputAudioTranscription"],O);let y=V(Z,["outputAudioTranscription"]);if($!==void 0&&y!=null)X($,["setup","outputAudioTranscription"],y);let x=V(Z,["realtimeInputConfig"]);if($!==void 0&&x!=null)X($,["setup","realtimeInputConfig"],x);let m=V(Z,["contextWindowCompression"]);if($!==void 0&&m!=null)X($,["setup","contextWindowCompression"],m);let f=V(Z,["proactivity"]);if($!==void 0&&f!=null)X($,["setup","proactivity"],f);let S=V(Z,["explicitVadSignal"]);if($!==void 0&&S!=null)X($,["setup","explicitVadSignal"],S);let d=V(Z,["avatarConfig"]);if($!==void 0&&d!=null)X($,["setup","avatarConfig"],d);let h=V(Z,["safetySettings"]);if($!==void 0&&h!=null){let _=h;if(Array.isArray(_))_=_.map((n)=>{return n});X($,["setup","safetySettings"],_)}return Q}function k3(Z,$){let Q={},Y=V($,["model"]);if(Y!=null)X(Q,["setup","model"],Z0(Z,Y));let W=V($,["config"]);if(W!=null)X(Q,["config"],_3(W,Q));return Q}function y3(Z,$){let Q={},Y=V($,["model"]);if(Y!=null)X(Q,["setup","model"],Z0(Z,Y));let W=V($,["config"]);if(W!=null)X(Q,["config"],h3(W,Q));return Q}function x3(Z){let $={},Q=V(Z,["musicGenerationConfig"]);if(Q!=null)X($,["musicGenerationConfig"],Q);return $}function f3(Z){let $={},Q=V(Z,["weightedPrompts"]);if(Q!=null){let Y=Q;if(Array.isArray(Y))Y=Y.map((W)=>{return W});X($,["weightedPrompts"],Y)}return $}function g3(Z){let $={},Q=V(Z,["media"]);if(Q!=null){let w=CV(Q);if(Array.isArray(w))w=w.map((F)=>{return i1(F)});X($,["mediaChunks"],w)}let Y=V(Z,["audio"]);if(Y!=null)X($,["audio"],i1(EV(Y)));let W=V(Z,["audioStreamEnd"]);if(W!=null)X($,["audioStreamEnd"],W);let J=V(Z,["video"]);if(J!=null)X($,["video"],i1(vV(J)));let K=V(Z,["text"]);if(K!=null)X($,["text"],K);let q=V(Z,["activityStart"]);if(q!=null)X($,["activityStart"],q);let H=V(Z,["activityEnd"]);if(H!=null)X($,["activityEnd"],H);return $}function b3(Z){let $={},Q=V(Z,["media"]);if(Q!=null){let w=CV(Q);if(Array.isArray(w))w=w.map((F)=>{return F});X($,["mediaChunks"],w)}let Y=V(Z,["audio"]);if(Y!=null)X($,["audio"],EV(Y));let W=V(Z,["audioStreamEnd"]);if(W!=null)X($,["audioStreamEnd"],W);let J=V(Z,["video"]);if(J!=null)X($,["video"],vV(J));let K=V(Z,["text"]);if(K!=null)X($,["text"],K);let q=V(Z,["activityStart"]);if(q!=null)X($,["activityStart"],q);let H=V(Z,["activityEnd"]);if(H!=null)X($,["activityEnd"],H);return $}function m3(Z){let $={},Q=V(Z,["setupComplete"]);if(Q!=null)X($,["setupComplete"],Q);let Y=V(Z,["serverContent"]);if(Y!=null)X($,["serverContent"],Y);let W=V(Z,["toolCall"]);if(W!=null)X($,["toolCall"],W);let J=V(Z,["toolCallCancellation"]);if(J!=null)X($,["toolCallCancellation"],J);let K=V(Z,["usageMetadata"]);if(K!=null)X($,["usageMetadata"],a3(K));let q=V(Z,["goAway"]);if(q!=null)X($,["goAway"],q);let H=V(Z,["sessionResumptionUpdate"]);if(H!=null)X($,["sessionResumptionUpdate"],H);let w=V(Z,["voiceActivityDetectionSignal"]);if(w!=null)X($,["voiceActivityDetectionSignal"],w);let F=V(Z,["voiceActivity"]);if(F!=null)X($,["voiceActivity"],n3(F));return $}function u3(Z){let $={},Q=V(Z,["mediaResolution"]);if(Q!=null)X($,["mediaResolution"],Q);let Y=V(Z,["codeExecutionResult"]);if(Y!=null)X($,["codeExecutionResult"],Y);let W=V(Z,["executableCode"]);if(W!=null)X($,["executableCode"],W);let J=V(Z,["fileData"]);if(J!=null)X($,["fileData"],S3(J));let K=V(Z,["functionCall"]);if(K!=null)X($,["functionCall"],C3(K));let q=V(Z,["functionResponse"]);if(q!=null)X($,["functionResponse"],q);let H=V(Z,["inlineData"]);if(H!=null)X($,["inlineData"],i1(H));let w=V(Z,["text"]);if(w!=null)X($,["text"],w);let F=V(Z,["thought"]);if(F!=null)X($,["thought"],F);let z=V(Z,["thoughtSignature"]);if(z!=null)X($,["thoughtSignature"],z);let G=V(Z,["videoMetadata"]);if(G!=null)X($,["videoMetadata"],G);let D=V(Z,["toolCall"]);if(D!=null)X($,["toolCall"],D);let T=V(Z,["toolResponse"]);if(T!=null)X($,["toolResponse"],T);let I=V(Z,["partMetadata"]);if(I!=null)X($,["partMetadata"],I);return $}function d3(Z){let $={},Q=V(Z,["mediaResolution"]);if(Q!=null)X($,["mediaResolution"],Q);let Y=V(Z,["codeExecutionResult"]);if(Y!=null)X($,["codeExecutionResult"],Y);let W=V(Z,["executableCode"]);if(W!=null)X($,["executableCode"],W);let J=V(Z,["fileData"]);if(J!=null)X($,["fileData"],J);let K=V(Z,["functionCall"]);if(K!=null)X($,["functionCall"],K);let q=V(Z,["functionResponse"]);if(q!=null)X($,["functionResponse"],q);let H=V(Z,["inlineData"]);if(H!=null)X($,["inlineData"],H);let w=V(Z,["text"]);if(w!=null)X($,["text"],w);let F=V(Z,["thought"]);if(F!=null)X($,["thought"],F);let z=V(Z,["thoughtSignature"]);if(z!=null)X($,["thoughtSignature"],z);let G=V(Z,["videoMetadata"]);if(G!=null)X($,["videoMetadata"],G);if(V(Z,["toolCall"])!==void 0)throw Error("toolCall parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");if(V(Z,["toolResponse"])!==void 0)throw Error("toolResponse parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");if(V(Z,["partMetadata"])!==void 0)throw Error("partMetadata parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");return $}function l3(Z){let $={},Q=V(Z,["category"]);if(Q!=null)X($,["category"],Q);if(V(Z,["method"])!==void 0)throw Error("method parameter is not supported in Gemini API.");let Y=V(Z,["threshold"]);if(Y!=null)X($,["threshold"],Y);return $}function c3(Z){let $={},Q=V(Z,["handle"]);if(Q!=null)X($,["handle"],Q);if(V(Z,["transparent"])!==void 0)throw Error("transparent parameter is not supported in Gemini API.");return $}function p3(Z){let $={};if(V(Z,["retrieval"])!==void 0)throw Error("retrieval parameter is not supported in Gemini API.");let Q=V(Z,["computerUse"]);if(Q!=null)X($,["computerUse"],Q);let Y=V(Z,["fileSearch"]);if(Y!=null)X($,["fileSearch"],Y);let W=V(Z,["googleSearch"]);if(W!=null)X($,["googleSearch"],j3(W));let J=V(Z,["googleMaps"]);if(J!=null)X($,["googleMaps"],O3(J));let K=V(Z,["codeExecution"]);if(K!=null)X($,["codeExecution"],K);if(V(Z,["enterpriseWebSearch"])!==void 0)throw Error("enterpriseWebSearch parameter is not supported in Gemini API.");let q=V(Z,["functionDeclarations"]);if(q!=null){let z=q;if(Array.isArray(z))z=z.map((G)=>{return G});X($,["functionDeclarations"],z)}let H=V(Z,["googleSearchRetrieval"]);if(H!=null)X($,["googleSearchRetrieval"],H);if(V(Z,["parallelAiSearch"])!==void 0)throw Error("parallelAiSearch parameter is not supported in Gemini API.");let w=V(Z,["urlContext"]);if(w!=null)X($,["urlContext"],w);let F=V(Z,["mcpServers"]);if(F!=null){let z=F;if(Array.isArray(z))z=z.map((G)=>{return G});X($,["mcpServers"],z)}return $}function i3(Z){let $={},Q=V(Z,["retrieval"]);if(Q!=null)X($,["retrieval"],Q);let Y=V(Z,["computerUse"]);if(Y!=null)X($,["computerUse"],Y);if(V(Z,["fileSearch"])!==void 0)throw Error("fileSearch parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");let W=V(Z,["googleSearch"]);if(W!=null)X($,["googleSearch"],W);let J=V(Z,["googleMaps"]);if(J!=null)X($,["googleMaps"],J);let K=V(Z,["codeExecution"]);if(K!=null)X($,["codeExecution"],K);let q=V(Z,["enterpriseWebSearch"]);if(q!=null)X($,["enterpriseWebSearch"],q);let H=V(Z,["functionDeclarations"]);if(H!=null){let G=H;if(Array.isArray(G))G=G.map((D)=>{return v3(D)});X($,["functionDeclarations"],G)}let w=V(Z,["googleSearchRetrieval"]);if(w!=null)X($,["googleSearchRetrieval"],w);let F=V(Z,["parallelAiSearch"]);if(F!=null)X($,["parallelAiSearch"],F);let z=V(Z,["urlContext"]);if(z!=null)X($,["urlContext"],z);if(V(Z,["mcpServers"])!==void 0)throw Error("mcpServers parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");return $}function a3(Z){let $={},Q=V(Z,["promptTokenCount"]);if(Q!=null)X($,["promptTokenCount"],Q);let Y=V(Z,["cachedContentTokenCount"]);if(Y!=null)X($,["cachedContentTokenCount"],Y);let W=V(Z,["candidatesTokenCount"]);if(W!=null)X($,["responseTokenCount"],W);let J=V(Z,["toolUsePromptTokenCount"]);if(J!=null)X($,["toolUsePromptTokenCount"],J);let K=V(Z,["thoughtsTokenCount"]);if(K!=null)X($,["thoughtsTokenCount"],K);let q=V(Z,["totalTokenCount"]);if(q!=null)X($,["totalTokenCount"],q);let H=V(Z,["promptTokensDetails"]);if(H!=null){let D=H;if(Array.isArray(D))D=D.map((T)=>{return T});X($,["promptTokensDetails"],D)}let w=V(Z,["cacheTokensDetails"]);if(w!=null){let D=w;if(Array.isArray(D))D=D.map((T)=>{return T});X($,["cacheTokensDetails"],D)}let F=V(Z,["candidatesTokensDetails"]);if(F!=null){let D=F;if(Array.isArray(D))D=D.map((T)=>{return T});X($,["responseTokensDetails"],D)}let z=V(Z,["toolUsePromptTokensDetails"]);if(z!=null){let D=z;if(Array.isArray(D))D=D.map((T)=>{return T});X($,["toolUsePromptTokensDetails"],D)}let G=V(Z,["trafficType"]);if(G!=null)X($,["trafficType"],G);return $}function n3(Z){let $={},Q=V(Z,["type"]);if(Q!=null)X($,["voiceActivityType"],Q);return $}function r3(Z,$){let Q={},Y=V(Z,["apiKey"]);if(Y!=null)X(Q,["apiKey"],Y);if(V(Z,["apiKeyConfig"])!==void 0)throw Error("apiKeyConfig parameter is not supported in Gemini API.");if(V(Z,["authType"])!==void 0)throw Error("authType parameter is not supported in Gemini API.");if(V(Z,["googleServiceAccountConfig"])!==void 0)throw Error("googleServiceAccountConfig parameter is not supported in Gemini API.");if(V(Z,["httpBasicAuthConfig"])!==void 0)throw Error("httpBasicAuthConfig parameter is not supported in Gemini API.");if(V(Z,["oauthConfig"])!==void 0)throw Error("oauthConfig parameter is not supported in Gemini API.");if(V(Z,["oidcConfig"])!==void 0)throw Error("oidcConfig parameter is not supported in Gemini API.");return Q}function s3(Z,$){let Q={},Y=V(Z,["data"]);if(Y!=null)X(Q,["data"],Y);if(V(Z,["displayName"])!==void 0)throw Error("displayName parameter is not supported in Gemini API.");let W=V(Z,["mimeType"]);if(W!=null)X(Q,["mimeType"],W);return Q}function o3(Z,$){let Q={},Y=V(Z,["content"]);if(Y!=null)X(Q,["content"],Y);let W=V(Z,["citationMetadata"]);if(W!=null)X(Q,["citationMetadata"],t3(W));let J=V(Z,["tokenCount"]);if(J!=null)X(Q,["tokenCount"],J);let K=V(Z,["finishReason"]);if(K!=null)X(Q,["finishReason"],K);let q=V(Z,["groundingMetadata"]);if(q!=null)X(Q,["groundingMetadata"],q);let H=V(Z,["avgLogprobs"]);if(H!=null)X(Q,["avgLogprobs"],H);let w=V(Z,["index"]);if(w!=null)X(Q,["index"],w);let F=V(Z,["logprobsResult"]);if(F!=null)X(Q,["logprobsResult"],F);let z=V(Z,["safetyRatings"]);if(z!=null){let D=z;if(Array.isArray(D))D=D.map((T)=>{return T});X(Q,["safetyRatings"],D)}let G=V(Z,["urlContextMetadata"]);if(G!=null)X(Q,["urlContextMetadata"],G);return Q}function t3(Z,$){let Q={},Y=V(Z,["citationSources"]);if(Y!=null){let W=Y;if(Array.isArray(W))W=W.map((J)=>{return J});X(Q,["citations"],W)}return Q}function e3(Z,$,Q){let Y={},W=V($,["model"]);if(W!=null)X(Y,["_url","model"],Z0(Z,W));let J=V($,["contents"]);if(J!=null){let K=B0(J);if(Array.isArray(K))K=K.map((q)=>{return m4(q)});X(Y,["contents"],K)}return Y}function ZF(Z,$){let Q={},Y=V(Z,["sdkHttpResponse"]);if(Y!=null)X(Q,["sdkHttpResponse"],Y);let W=V(Z,["tokensInfo"]);if(W!=null){let J=W;if(Array.isArray(J))J=J.map((K)=>{return K});X(Q,["tokensInfo"],J)}return Q}function $F(Z,$){let Q={},Y=V(Z,["values"]);if(Y!=null)X(Q,["values"],Y);let W=V(Z,["statistics"]);if(W!=null)X(Q,["statistics"],QF(W));return Q}function QF(Z,$){let Q={},Y=V(Z,["truncated"]);if(Y!=null)X(Q,["truncated"],Y);let W=V(Z,["token_count"]);if(W!=null)X(Q,["tokenCount"],W);return Q}function J1(Z,$){let Q={},Y=V(Z,["parts"]);if(Y!=null){let J=Y;if(Array.isArray(J))J=J.map((K)=>{return w2(K)});X(Q,["parts"],J)}let W=V(Z,["role"]);if(W!=null)X(Q,["role"],W);return Q}function m4(Z,$){let Q={},Y=V(Z,["parts"]);if(Y!=null){let J=Y;if(Array.isArray(J))J=J.map((K)=>{return z2(K)});X(Q,["parts"],J)}let W=V(Z,["role"]);if(W!=null)X(Q,["role"],W);return Q}function YF(Z,$){let Q={},Y=V(Z,["controlType"]);if(Y!=null)X(Q,["controlType"],Y);let W=V(Z,["enableControlImageComputation"]);if(W!=null)X(Q,["computeControl"],W);return Q}function WF(Z,$){let Q={};if(V(Z,["systemInstruction"])!==void 0)throw Error("systemInstruction parameter is not supported in Gemini API.");if(V(Z,["tools"])!==void 0)throw Error("tools parameter is not supported in Gemini API.");if(V(Z,["generationConfig"])!==void 0)throw Error("generationConfig parameter is not supported in Gemini API.");return Q}function VF(Z,$,Q){let Y={},W=V(Z,["systemInstruction"]);if($!==void 0&&W!=null)X($,["systemInstruction"],m4(F0(W)));let J=V(Z,["tools"]);if($!==void 0&&J!=null){let q=J;if(Array.isArray(q))q=q.map((H)=>{return rV(H)});X($,["tools"],q)}let K=V(Z,["generationConfig"]);if($!==void 0&&K!=null)X($,["generationConfig"],sF(K));return Y}function JF(Z,$,Q){let Y={},W=V($,["model"]);if(W!=null)X(Y,["_url","model"],Z0(Z,W));let J=V($,["contents"]);if(J!=null){let q=B0(J);if(Array.isArray(q))q=q.map((H)=>{return J1(H)});X(Y,["contents"],q)}let K=V($,["config"]);if(K!=null)WF(K);return Y}function XF(Z,$,Q){let Y={},W=V($,["model"]);if(W!=null)X(Y,["_url","model"],Z0(Z,W));let J=V($,["contents"]);if(J!=null){let q=B0(J);if(Array.isArray(q))q=q.map((H)=>{return m4(H)});X(Y,["contents"],q)}let K=V($,["config"]);if(K!=null)VF(K,Y);return Y}function KF(Z,$){let Q={},Y=V(Z,["sdkHttpResponse"]);if(Y!=null)X(Q,["sdkHttpResponse"],Y);let W=V(Z,["totalTokens"]);if(W!=null)X(Q,["totalTokens"],W);let J=V(Z,["cachedContentTokenCount"]);if(J!=null)X(Q,["cachedContentTokenCount"],J);return Q}function qF(Z,$){let Q={},Y=V(Z,["sdkHttpResponse"]);if(Y!=null)X(Q,["sdkHttpResponse"],Y);let W=V(Z,["totalTokens"]);if(W!=null)X(Q,["totalTokens"],W);return Q}function HF(Z,$,Q){let Y={},W=V($,["model"]);if(W!=null)X(Y,["_url","name"],Z0(Z,W));return Y}function wF(Z,$,Q){let Y={},W=V($,["model"]);if(W!=null)X(Y,["_url","name"],Z0(Z,W));return Y}function zF(Z,$){let Q={},Y=V(Z,["sdkHttpResponse"]);if(Y!=null)X(Q,["sdkHttpResponse"],Y);return Q}function FF(Z,$){let Q={},Y=V(Z,["sdkHttpResponse"]);if(Y!=null)X(Q,["sdkHttpResponse"],Y);return Q}function GF(Z,$,Q){let Y={},W=V(Z,["outputGcsUri"]);if($!==void 0&&W!=null)X($,["parameters","storageUri"],W);let J=V(Z,["negativePrompt"]);if($!==void 0&&J!=null)X($,["parameters","negativePrompt"],J);let K=V(Z,["numberOfImages"]);if($!==void 0&&K!=null)X($,["parameters","sampleCount"],K);let q=V(Z,["aspectRatio"]);if($!==void 0&&q!=null)X($,["parameters","aspectRatio"],q);let H=V(Z,["guidanceScale"]);if($!==void 0&&H!=null)X($,["parameters","guidanceScale"],H);let w=V(Z,["seed"]);if($!==void 0&&w!=null)X($,["parameters","seed"],w);let F=V(Z,["safetyFilterLevel"]);if($!==void 0&&F!=null)X($,["parameters","safetySetting"],F);let z=V(Z,["personGeneration"]);if($!==void 0&&z!=null)X($,["parameters","personGeneration"],z);let G=V(Z,["includeSafetyAttributes"]);if($!==void 0&&G!=null)X($,["parameters","includeSafetyAttributes"],G);let D=V(Z,["includeRaiReason"]);if($!==void 0&&D!=null)X($,["parameters","includeRaiReason"],D);let T=V(Z,["language"]);if($!==void 0&&T!=null)X($,["parameters","language"],T);let I=V(Z,["outputMimeType"]);if($!==void 0&&I!=null)X($,["parameters","outputOptions","mimeType"],I);let P=V(Z,["outputCompressionQuality"]);if($!==void 0&&P!=null)X($,["parameters","outputOptions","compressionQuality"],P);let O=V(Z,["addWatermark"]);if($!==void 0&&O!=null)X($,["parameters","addWatermark"],O);let y=V(Z,["labels"]);if($!==void 0&&y!=null)X($,["labels"],y);let x=V(Z,["editMode"]);if($!==void 0&&x!=null)X($,["parameters","editMode"],x);let m=V(Z,["baseSteps"]);if($!==void 0&&m!=null)X($,["parameters","editConfig","baseSteps"],m);return Y}function UF(Z,$,Q){let Y={},W=V($,["model"]);if(W!=null)X(Y,["_url","model"],Z0(Z,W));let J=V($,["prompt"]);if(J!=null)X(Y,["instances[0]","prompt"],J);let K=V($,["referenceImages"]);if(K!=null){let H=K;if(Array.isArray(H))H=H.map((w)=>{return I2(w)});X(Y,["instances[0]","referenceImages"],H)}let q=V($,["config"]);if(q!=null)GF(q,Y);return Y}function DF(Z,$){let Q={},Y=V(Z,["sdkHttpResponse"]);if(Y!=null)X(Q,["sdkHttpResponse"],Y);let W=V(Z,["predictions"]);if(W!=null){let J=W;if(Array.isArray(J))J=J.map((K)=>{return Y8(K)});X(Q,["generatedImages"],J)}return Q}function MF(Z,$,Q){let Y={},W=V(Z,["taskType"]);if($!==void 0&&W!=null)X($,["requests[]","taskType"],W);let J=V(Z,["title"]);if($!==void 0&&J!=null)X($,["requests[]","title"],J);let K=V(Z,["outputDimensionality"]);if($!==void 0&&K!=null)X($,["requests[]","outputDimensionality"],K);if(V(Z,["mimeType"])!==void 0)throw Error("mimeType parameter is not supported in Gemini API.");if(V(Z,["autoTruncate"])!==void 0)throw Error("autoTruncate parameter is not supported in Gemini API.");if(V(Z,["documentOcr"])!==void 0)throw Error("documentOcr parameter is not supported in Gemini API.");if(V(Z,["audioTrackExtraction"])!==void 0)throw Error("audioTrackExtraction parameter is not supported in Gemini API.");return Y}function IF(Z,$,Q){let Y={},W=V(Q,["embeddingApiType"]);if(W===void 0)W="PREDICT";if(W==="PREDICT"){let z=V(Z,["taskType"]);if($!==void 0&&z!=null)X($,["instances[]","task_type"],z)}else if(W==="EMBED_CONTENT"){let z=V(Z,["taskType"]);if($!==void 0&&z!=null)X($,["embedContentConfig","taskType"],z)}let J=V(Q,["embeddingApiType"]);if(J===void 0)J="PREDICT";if(J==="PREDICT"){let z=V(Z,["title"]);if($!==void 0&&z!=null)X($,["instances[]","title"],z)}else if(J==="EMBED_CONTENT"){let z=V(Z,["title"]);if($!==void 0&&z!=null)X($,["embedContentConfig","title"],z)}let K=V(Q,["embeddingApiType"]);if(K===void 0)K="PREDICT";if(K==="PREDICT"){let z=V(Z,["outputDimensionality"]);if($!==void 0&&z!=null)X($,["parameters","outputDimensionality"],z)}else if(K==="EMBED_CONTENT"){let z=V(Z,["outputDimensionality"]);if($!==void 0&&z!=null)X($,["embedContentConfig","outputDimensionality"],z)}let q=V(Q,["embeddingApiType"]);if(q===void 0)q="PREDICT";if(q==="PREDICT"){let z=V(Z,["mimeType"]);if($!==void 0&&z!=null)X($,["instances[]","mimeType"],z)}let H=V(Q,["embeddingApiType"]);if(H===void 0)H="PREDICT";if(H==="PREDICT"){let z=V(Z,["autoTruncate"]);if($!==void 0&&z!=null)X($,["parameters","autoTruncate"],z)}else if(H==="EMBED_CONTENT"){let z=V(Z,["autoTruncate"]);if($!==void 0&&z!=null)X($,["embedContentConfig","autoTruncate"],z)}let w=V(Q,["embeddingApiType"]);if(w===void 0)w="PREDICT";if(w==="EMBED_CONTENT"){let z=V(Z,["documentOcr"]);if($!==void 0&&z!=null)X($,["embedContentConfig","documentOcr"],z)}let F=V(Q,["embeddingApiType"]);if(F===void 0)F="PREDICT";if(F==="EMBED_CONTENT"){let z=V(Z,["audioTrackExtraction"]);if($!==void 0&&z!=null)X($,["embedContentConfig","audioTrackExtraction"],z)}return Y}function NF(Z,$,Q){let Y={},W=V($,["model"]);if(W!=null)X(Y,["_url","model"],Z0(Z,W));let J=V($,["contents"]);if(J!=null){let w=UZ(Z,J);if(Array.isArray(w))w=w.map((F)=>{return F});X(Y,["requests[]","content"],w)}let K=V($,["content"]);if(K!=null)J1(F0(K));let q=V($,["config"]);if(q!=null)MF(q,Y);let H=V($,["model"]);if(H!==void 0)X(Y,["requests[]","model"],Z0(Z,H));return Y}function TF(Z,$,Q){let Y={},W=V($,["model"]);if(W!=null)X(Y,["_url","model"],Z0(Z,W));let J=V(Q,["embeddingApiType"]);if(J===void 0)J="PREDICT";if(J==="PREDICT"){let H=V($,["contents"]);if(H!=null){let w=UZ(Z,H);if(Array.isArray(w))w=w.map((F)=>{return F});X(Y,["instances[]","content"],w)}}let K=V(Q,["embeddingApiType"]);if(K===void 0)K="PREDICT";if(K==="EMBED_CONTENT"){let H=V($,["content"]);if(H!=null)X(Y,["content"],m4(F0(H)))}let q=V($,["config"]);if(q!=null)IF(q,Y,Q);return Y}function BF(Z,$){let Q={},Y=V(Z,["sdkHttpResponse"]);if(Y!=null)X(Q,["sdkHttpResponse"],Y);let W=V(Z,["embeddings"]);if(W!=null){let K=W;if(Array.isArray(K))K=K.map((q)=>{return q});X(Q,["embeddings"],K)}let J=V(Z,["metadata"]);if(J!=null)X(Q,["metadata"],J);return Q}function LF(Z,$){let Q={},Y=V(Z,["sdkHttpResponse"]);if(Y!=null)X(Q,["sdkHttpResponse"],Y);let W=V(Z,["predictions[]","embeddings"]);if(W!=null){let K=W;if(Array.isArray(K))K=K.map((q)=>{return $F(q)});X(Q,["embeddings"],K)}let J=V(Z,["metadata"]);if(J!=null)X(Q,["metadata"],J);if($&&V($,["embeddingApiType"])==="EMBED_CONTENT"){let K=V(Z,["embedding"]),q=V(Z,["usageMetadata"]),H=V(Z,["truncated"]);if(K){let w={};if(q&&q.promptTokenCount)w.tokenCount=q.promptTokenCount;if(H)w.truncated=H;K.statistics=w,X(Q,["embeddings"],[K])}}return Q}function RF(Z,$){let Q={},Y=V(Z,["endpoint"]);if(Y!=null)X(Q,["name"],Y);let W=V(Z,["deployedModelId"]);if(W!=null)X(Q,["deployedModelId"],W);return Q}function AF(Z,$){let Q={};if(V(Z,["displayName"])!==void 0)throw Error("displayName parameter is not supported in Gemini API.");let Y=V(Z,["fileUri"]);if(Y!=null)X(Q,["fileUri"],Y);let W=V(Z,["mimeType"]);if(W!=null)X(Q,["mimeType"],W);return Q}function PF(Z,$){let Q={},Y=V(Z,["id"]);if(Y!=null)X(Q,["id"],Y);let W=V(Z,["args"]);if(W!=null)X(Q,["args"],W);let J=V(Z,["name"]);if(J!=null)X(Q,["name"],J);if(V(Z,["partialArgs"])!==void 0)throw Error("partialArgs parameter is not supported in Gemini API.");if(V(Z,["willContinue"])!==void 0)throw Error("willContinue parameter is not supported in Gemini API.");return Q}function SF(Z,$){let Q={},Y=V(Z,["allowedFunctionNames"]);if(Y!=null)X(Q,["allowedFunctionNames"],Y);let W=V(Z,["mode"]);if(W!=null)X(Q,["mode"],W);if(V(Z,["streamFunctionCallArguments"])!==void 0)throw Error("streamFunctionCallArguments parameter is not supported in Gemini API.");return Q}function CF(Z,$){let Q={},Y=V(Z,["description"]);if(Y!=null)X(Q,["description"],Y);let W=V(Z,["name"]);if(W!=null)X(Q,["name"],W);let J=V(Z,["parameters"]);if(J!=null)X(Q,["parameters"],J);let K=V(Z,["parametersJsonSchema"]);if(K!=null)X(Q,["parametersJsonSchema"],K);let q=V(Z,["response"]);if(q!=null)X(Q,["response"],q);let H=V(Z,["responseJsonSchema"]);if(H!=null)X(Q,["responseJsonSchema"],H);if(V(Z,["behavior"])!==void 0)throw Error("behavior parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");return Q}function vF(Z,$,Q,Y){let W={},J=V($,["systemInstruction"]);if(Q!==void 0&&J!=null)X(Q,["systemInstruction"],J1(F0(J)));let K=V($,["temperature"]);if(K!=null)X(W,["temperature"],K);let q=V($,["topP"]);if(q!=null)X(W,["topP"],q);let H=V($,["topK"]);if(H!=null)X(W,["topK"],H);let w=V($,["candidateCount"]);if(w!=null)X(W,["candidateCount"],w);let F=V($,["maxOutputTokens"]);if(F!=null)X(W,["maxOutputTokens"],F);let z=V($,["stopSequences"]);if(z!=null)X(W,["stopSequences"],z);let G=V($,["responseLogprobs"]);if(G!=null)X(W,["responseLogprobs"],G);let D=V($,["logprobs"]);if(D!=null)X(W,["logprobs"],D);let T=V($,["presencePenalty"]);if(T!=null)X(W,["presencePenalty"],T);let I=V($,["frequencyPenalty"]);if(I!=null)X(W,["frequencyPenalty"],I);let P=V($,["seed"]);if(P!=null)X(W,["seed"],P);let O=V($,["responseMimeType"]);if(O!=null)X(W,["responseMimeType"],O);let y=V($,["responseSchema"]);if(y!=null)X(W,["responseSchema"],DZ(y));let x=V($,["responseJsonSchema"]);if(x!=null)X(W,["responseJsonSchema"],x);if(V($,["routingConfig"])!==void 0)throw Error("routingConfig parameter is not supported in Gemini API.");if(V($,["modelSelectionConfig"])!==void 0)throw Error("modelSelectionConfig parameter is not supported in Gemini API.");let m=V($,["safetySettings"]);if(Q!==void 0&&m!=null){let V0=m;if(Array.isArray(V0))V0=V0.map((q0)=>{return N2(q0)});X(Q,["safetySettings"],V0)}let f=V($,["tools"]);if(Q!==void 0&&f!=null){let V0=g4(f);if(Array.isArray(V0))V0=V0.map((q0)=>{return C2(f4(q0))});X(Q,["tools"],V0)}let S=V($,["toolConfig"]);if(Q!==void 0&&S!=null)X(Q,["toolConfig"],P2(S));if(V($,["labels"])!==void 0)throw Error("labels parameter is not supported in Gemini API.");let d=V($,["cachedContent"]);if(Q!==void 0&&d!=null)X(Q,["cachedContent"],Z4(Z,d));let h=V($,["responseModalities"]);if(h!=null)X(W,["responseModalities"],h);let _=V($,["mediaResolution"]);if(_!=null)X(W,["mediaResolution"],_);let n=V($,["speechConfig"]);if(n!=null)X(W,["speechConfig"],MZ(n));if(V($,["audioTimestamp"])!==void 0)throw Error("audioTimestamp parameter is not supported in Gemini API.");let o=V($,["thinkingConfig"]);if(o!=null)X(W,["thinkingConfig"],o);let t=V($,["imageConfig"]);if(t!=null)X(W,["imageConfig"],$2(t));let J0=V($,["enableEnhancedCivicAnswers"]);if(J0!=null)X(W,["enableEnhancedCivicAnswers"],J0);if(V($,["modelArmorConfig"])!==void 0)throw Error("modelArmorConfig parameter is not supported in Gemini API.");let $0=V($,["serviceTier"]);if(Q!==void 0&&$0!=null)X(Q,["serviceTier"],$0);return W}function EF(Z,$,Q,Y){let W={},J=V($,["systemInstruction"]);if(Q!==void 0&&J!=null)X(Q,["systemInstruction"],m4(F0(J)));let K=V($,["temperature"]);if(K!=null)X(W,["temperature"],K);let q=V($,["topP"]);if(q!=null)X(W,["topP"],q);let H=V($,["topK"]);if(H!=null)X(W,["topK"],H);let w=V($,["candidateCount"]);if(w!=null)X(W,["candidateCount"],w);let F=V($,["maxOutputTokens"]);if(F!=null)X(W,["maxOutputTokens"],F);let z=V($,["stopSequences"]);if(z!=null)X(W,["stopSequences"],z);let G=V($,["responseLogprobs"]);if(G!=null)X(W,["responseLogprobs"],G);let D=V($,["logprobs"]);if(D!=null)X(W,["logprobs"],D);let T=V($,["presencePenalty"]);if(T!=null)X(W,["presencePenalty"],T);let I=V($,["frequencyPenalty"]);if(I!=null)X(W,["frequencyPenalty"],I);let P=V($,["seed"]);if(P!=null)X(W,["seed"],P);let O=V($,["responseMimeType"]);if(O!=null)X(W,["responseMimeType"],O);let y=V($,["responseSchema"]);if(y!=null)X(W,["responseSchema"],DZ(y));let x=V($,["responseJsonSchema"]);if(x!=null)X(W,["responseJsonSchema"],x);let m=V($,["routingConfig"]);if(m!=null)X(W,["routingConfig"],m);let f=V($,["modelSelectionConfig"]);if(f!=null)X(W,["modelConfig"],f);let S=V($,["safetySettings"]);if(Q!==void 0&&S!=null){let H0=S;if(Array.isArray(H0))H0=H0.map((H4)=>{return H4});X(Q,["safetySettings"],H0)}let d=V($,["tools"]);if(Q!==void 0&&d!=null){let H0=g4(d);if(Array.isArray(H0))H0=H0.map((H4)=>{return rV(f4(H4))});X(Q,["tools"],H0)}let h=V($,["toolConfig"]);if(Q!==void 0&&h!=null)X(Q,["toolConfig"],S2(h));let _=V($,["labels"]);if(Q!==void 0&&_!=null)X(Q,["labels"],_);let n=V($,["cachedContent"]);if(Q!==void 0&&n!=null)X(Q,["cachedContent"],Z4(Z,n));let o=V($,["responseModalities"]);if(o!=null)X(W,["responseModalities"],o);let t=V($,["mediaResolution"]);if(t!=null)X(W,["mediaResolution"],t);let J0=V($,["speechConfig"]);if(J0!=null)X(W,["speechConfig"],MZ(J0));let $0=V($,["audioTimestamp"]);if($0!=null)X(W,["audioTimestamp"],$0);let V0=V($,["thinkingConfig"]);if(V0!=null)X(W,["thinkingConfig"],V0);let q0=V($,["imageConfig"]);if(q0!=null)X(W,["imageConfig"],Q2(q0));if(V($,["enableEnhancedCivicAnswers"])!==void 0)throw Error("enableEnhancedCivicAnswers parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");let L0=V($,["modelArmorConfig"]);if(Q!==void 0&&L0!=null)X(Q,["modelArmorConfig"],L0);let R0=V($,["serviceTier"]);if(Q!==void 0&&R0!=null)X(Q,["serviceTier"],R0);return W}function c5(Z,$,Q){let Y={},W=V($,["model"]);if(W!=null)X(Y,["_url","model"],Z0(Z,W));let J=V($,["contents"]);if(J!=null){let q=B0(J);if(Array.isArray(q))q=q.map((H)=>{return J1(H)});X(Y,["contents"],q)}let K=V($,["config"]);if(K!=null)X(Y,["generationConfig"],vF(Z,K,Y));return Y}function p5(Z,$,Q){let Y={},W=V($,["model"]);if(W!=null)X(Y,["_url","model"],Z0(Z,W));let J=V($,["contents"]);if(J!=null){let q=B0(J);if(Array.isArray(q))q=q.map((H)=>{return m4(H)});X(Y,["contents"],q)}let K=V($,["config"]);if(K!=null)X(Y,["generationConfig"],EF(Z,K,Y));return Y}function i5(Z,$){let Q={},Y=V(Z,["sdkHttpResponse"]);if(Y!=null)X(Q,["sdkHttpResponse"],Y);let W=V(Z,["candidates"]);if(W!=null){let F=W;if(Array.isArray(F))F=F.map((z)=>{return o3(z)});X(Q,["candidates"],F)}let J=V(Z,["modelVersion"]);if(J!=null)X(Q,["modelVersion"],J);let K=V(Z,["promptFeedback"]);if(K!=null)X(Q,["promptFeedback"],K);let q=V(Z,["responseId"]);if(q!=null)X(Q,["responseId"],q);let H=V(Z,["usageMetadata"]);if(H!=null)X(Q,["usageMetadata"],H);let w=V(Z,["modelStatus"]);if(w!=null)X(Q,["modelStatus"],w);return Q}function a5(Z,$){let Q={},Y=V(Z,["sdkHttpResponse"]);if(Y!=null)X(Q,["sdkHttpResponse"],Y);let W=V(Z,["candidates"]);if(W!=null){let F=W;if(Array.isArray(F))F=F.map((z)=>{return z});X(Q,["candidates"],F)}let J=V(Z,["createTime"]);if(J!=null)X(Q,["createTime"],J);let K=V(Z,["modelVersion"]);if(K!=null)X(Q,["modelVersion"],K);let q=V(Z,["promptFeedback"]);if(q!=null)X(Q,["promptFeedback"],q);let H=V(Z,["responseId"]);if(H!=null)X(Q,["responseId"],H);let w=V(Z,["usageMetadata"]);if(w!=null)X(Q,["usageMetadata"],w);return Q}function OF(Z,$,Q){let Y={};if(V(Z,["outputGcsUri"])!==void 0)throw Error("outputGcsUri parameter is not supported in Gemini API.");if(V(Z,["negativePrompt"])!==void 0)throw Error("negativePrompt parameter is not supported in Gemini API.");let W=V(Z,["numberOfImages"]);if($!==void 0&&W!=null)X($,["parameters","sampleCount"],W);let J=V(Z,["aspectRatio"]);if($!==void 0&&J!=null)X($,["parameters","aspectRatio"],J);let K=V(Z,["guidanceScale"]);if($!==void 0&&K!=null)X($,["parameters","guidanceScale"],K);if(V(Z,["seed"])!==void 0)throw Error("seed parameter is not supported in Gemini API.");let q=V(Z,["safetyFilterLevel"]);if($!==void 0&&q!=null)X($,["parameters","safetySetting"],q);let H=V(Z,["personGeneration"]);if($!==void 0&&H!=null)X($,["parameters","personGeneration"],H);let w=V(Z,["includeSafetyAttributes"]);if($!==void 0&&w!=null)X($,["parameters","includeSafetyAttributes"],w);let F=V(Z,["includeRaiReason"]);if($!==void 0&&F!=null)X($,["parameters","includeRaiReason"],F);let z=V(Z,["language"]);if($!==void 0&&z!=null)X($,["parameters","language"],z);let G=V(Z,["outputMimeType"]);if($!==void 0&&G!=null)X($,["parameters","outputOptions","mimeType"],G);let D=V(Z,["outputCompressionQuality"]);if($!==void 0&&D!=null)X($,["parameters","outputOptions","compressionQuality"],D);if(V(Z,["addWatermark"])!==void 0)throw Error("addWatermark parameter is not supported in Gemini API.");if(V(Z,["labels"])!==void 0)throw Error("labels parameter is not supported in Gemini API.");let T=V(Z,["imageSize"]);if($!==void 0&&T!=null)X($,["parameters","sampleImageSize"],T);if(V(Z,["enhancePrompt"])!==void 0)throw Error("enhancePrompt parameter is not supported in Gemini API.");return Y}function jF(Z,$,Q){let Y={},W=V(Z,["outputGcsUri"]);if($!==void 0&&W!=null)X($,["parameters","storageUri"],W);let J=V(Z,["negativePrompt"]);if($!==void 0&&J!=null)X($,["parameters","negativePrompt"],J);let K=V(Z,["numberOfImages"]);if($!==void 0&&K!=null)X($,["parameters","sampleCount"],K);let q=V(Z,["aspectRatio"]);if($!==void 0&&q!=null)X($,["parameters","aspectRatio"],q);let H=V(Z,["guidanceScale"]);if($!==void 0&&H!=null)X($,["parameters","guidanceScale"],H);let w=V(Z,["seed"]);if($!==void 0&&w!=null)X($,["parameters","seed"],w);let F=V(Z,["safetyFilterLevel"]);if($!==void 0&&F!=null)X($,["parameters","safetySetting"],F);let z=V(Z,["personGeneration"]);if($!==void 0&&z!=null)X($,["parameters","personGeneration"],z);let G=V(Z,["includeSafetyAttributes"]);if($!==void 0&&G!=null)X($,["parameters","includeSafetyAttributes"],G);let D=V(Z,["includeRaiReason"]);if($!==void 0&&D!=null)X($,["parameters","includeRaiReason"],D);let T=V(Z,["language"]);if($!==void 0&&T!=null)X($,["parameters","language"],T);let I=V(Z,["outputMimeType"]);if($!==void 0&&I!=null)X($,["parameters","outputOptions","mimeType"],I);let P=V(Z,["outputCompressionQuality"]);if($!==void 0&&P!=null)X($,["parameters","outputOptions","compressionQuality"],P);let O=V(Z,["addWatermark"]);if($!==void 0&&O!=null)X($,["parameters","addWatermark"],O);let y=V(Z,["labels"]);if($!==void 0&&y!=null)X($,["labels"],y);let x=V(Z,["imageSize"]);if($!==void 0&&x!=null)X($,["parameters","sampleImageSize"],x);let m=V(Z,["enhancePrompt"]);if($!==void 0&&m!=null)X($,["parameters","enhancePrompt"],m);return Y}function _F(Z,$,Q){let Y={},W=V($,["model"]);if(W!=null)X(Y,["_url","model"],Z0(Z,W));let J=V($,["prompt"]);if(J!=null)X(Y,["instances[0]","prompt"],J);let K=V($,["config"]);if(K!=null)OF(K,Y);return Y}function hF(Z,$,Q){let Y={},W=V($,["model"]);if(W!=null)X(Y,["_url","model"],Z0(Z,W));let J=V($,["prompt"]);if(J!=null)X(Y,["instances[0]","prompt"],J);let K=V($,["config"]);if(K!=null)jF(K,Y);return Y}function kF(Z,$){let Q={},Y=V(Z,["sdkHttpResponse"]);if(Y!=null)X(Q,["sdkHttpResponse"],Y);let W=V(Z,["predictions"]);if(W!=null){let K=W;if(Array.isArray(K))K=K.map((q)=>{return iF(q)});X(Q,["generatedImages"],K)}let J=V(Z,["positivePromptSafetyAttributes"]);if(J!=null)X(Q,["positivePromptSafetyAttributes"],aV(J));return Q}function yF(Z,$){let Q={},Y=V(Z,["sdkHttpResponse"]);if(Y!=null)X(Q,["sdkHttpResponse"],Y);let W=V(Z,["predictions"]);if(W!=null){let K=W;if(Array.isArray(K))K=K.map((q)=>{return Y8(q)});X(Q,["generatedImages"],K)}let J=V(Z,["positivePromptSafetyAttributes"]);if(J!=null)X(Q,["positivePromptSafetyAttributes"],nV(J));return Q}function xF(Z,$,Q){let Y={},W=V(Z,["numberOfVideos"]);if($!==void 0&&W!=null)X($,["parameters","sampleCount"],W);if(V(Z,["outputGcsUri"])!==void 0)throw Error("outputGcsUri parameter is not supported in Gemini API.");if(V(Z,["fps"])!==void 0)throw Error("fps parameter is not supported in Gemini API.");let J=V(Z,["durationSeconds"]);if($!==void 0&&J!=null)X($,["parameters","durationSeconds"],J);if(V(Z,["seed"])!==void 0)throw Error("seed parameter is not supported in Gemini API.");let K=V(Z,["aspectRatio"]);if($!==void 0&&K!=null)X($,["parameters","aspectRatio"],K);let q=V(Z,["resolution"]);if($!==void 0&&q!=null)X($,["parameters","resolution"],q);let H=V(Z,["personGeneration"]);if($!==void 0&&H!=null)X($,["parameters","personGeneration"],H);if(V(Z,["pubsubTopic"])!==void 0)throw Error("pubsubTopic parameter is not supported in Gemini API.");let w=V(Z,["negativePrompt"]);if($!==void 0&&w!=null)X($,["parameters","negativePrompt"],w);let F=V(Z,["enhancePrompt"]);if($!==void 0&&F!=null)X($,["parameters","enhancePrompt"],F);if(V(Z,["generateAudio"])!==void 0)throw Error("generateAudio parameter is not supported in Gemini API.");let z=V(Z,["lastFrame"]);if($!==void 0&&z!=null)X($,["instances[0]","lastFrame"],W8(z));let G=V(Z,["referenceImages"]);if($!==void 0&&G!=null){let T=G;if(Array.isArray(T))T=T.map((I)=>{return m2(I)});X($,["instances[0]","referenceImages"],T)}if(V(Z,["mask"])!==void 0)throw Error("mask parameter is not supported in Gemini API.");if(V(Z,["compressionQuality"])!==void 0)throw Error("compressionQuality parameter is not supported in Gemini API.");if(V(Z,["labels"])!==void 0)throw Error("labels parameter is not supported in Gemini API.");let D=V(Z,["webhookConfig"]);if($!==void 0&&D!=null)X($,["webhookConfig"],D);if(V(Z,["resizeMode"])!==void 0)throw Error("resizeMode parameter is not supported in Gemini API.");return Y}function fF(Z,$,Q){let Y={},W=V(Z,["numberOfVideos"]);if($!==void 0&&W!=null)X($,["parameters","sampleCount"],W);let J=V(Z,["outputGcsUri"]);if($!==void 0&&J!=null)X($,["parameters","storageUri"],J);let K=V(Z,["fps"]);if($!==void 0&&K!=null)X($,["parameters","fps"],K);let q=V(Z,["durationSeconds"]);if($!==void 0&&q!=null)X($,["parameters","durationSeconds"],q);let H=V(Z,["seed"]);if($!==void 0&&H!=null)X($,["parameters","seed"],H);let w=V(Z,["aspectRatio"]);if($!==void 0&&w!=null)X($,["parameters","aspectRatio"],w);let F=V(Z,["resolution"]);if($!==void 0&&F!=null)X($,["parameters","resolution"],F);let z=V(Z,["personGeneration"]);if($!==void 0&&z!=null)X($,["parameters","personGeneration"],z);let G=V(Z,["pubsubTopic"]);if($!==void 0&&G!=null)X($,["parameters","pubsubTopic"],G);let D=V(Z,["negativePrompt"]);if($!==void 0&&D!=null)X($,["parameters","negativePrompt"],D);let T=V(Z,["enhancePrompt"]);if($!==void 0&&T!=null)X($,["parameters","enhancePrompt"],T);let I=V(Z,["generateAudio"]);if($!==void 0&&I!=null)X($,["parameters","generateAudio"],I);let P=V(Z,["lastFrame"]);if($!==void 0&&P!=null)X($,["instances[0]","lastFrame"],d0(P));let O=V(Z,["referenceImages"]);if($!==void 0&&O!=null){let S=O;if(Array.isArray(S))S=S.map((d)=>{return u2(d)});X($,["instances[0]","referenceImages"],S)}let y=V(Z,["mask"]);if($!==void 0&&y!=null)X($,["instances[0]","mask"],b2(y));let x=V(Z,["compressionQuality"]);if($!==void 0&&x!=null)X($,["parameters","compressionQuality"],x);let m=V(Z,["labels"]);if($!==void 0&&m!=null)X($,["labels"],m);if(V(Z,["webhookConfig"])!==void 0)throw Error("webhookConfig parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");let f=V(Z,["resizeMode"]);if($!==void 0&&f!=null)X($,["parameters","resizeMode"],f);return Y}function gF(Z,$){let Q={},Y=V(Z,["name"]);if(Y!=null)X(Q,["name"],Y);let W=V(Z,["metadata"]);if(W!=null)X(Q,["metadata"],W);let J=V(Z,["done"]);if(J!=null)X(Q,["done"],J);let K=V(Z,["error"]);if(K!=null)X(Q,["error"],K);let q=V(Z,["response","generateVideoResponse"]);if(q!=null)X(Q,["response"],dF(q));return Q}function bF(Z,$){let Q={},Y=V(Z,["name"]);if(Y!=null)X(Q,["name"],Y);let W=V(Z,["metadata"]);if(W!=null)X(Q,["metadata"],W);let J=V(Z,["done"]);if(J!=null)X(Q,["done"],J);let K=V(Z,["error"]);if(K!=null)X(Q,["error"],K);let q=V(Z,["response"]);if(q!=null)X(Q,["response"],lF(q));return Q}function mF(Z,$,Q){let Y={},W=V($,["model"]);if(W!=null)X(Y,["_url","model"],Z0(Z,W));let J=V($,["prompt"]);if(J!=null)X(Y,["instances[0]","prompt"],J);let K=V($,["image"]);if(K!=null)X(Y,["instances[0]","image"],W8(K));let q=V($,["video"]);if(q!=null)X(Y,["instances[0]","video"],sV(q));let H=V($,["source"]);if(H!=null)cF(H,Y);let w=V($,["config"]);if(w!=null)xF(w,Y);return Y}function uF(Z,$,Q){let Y={},W=V($,["model"]);if(W!=null)X(Y,["_url","model"],Z0(Z,W));let J=V($,["prompt"]);if(J!=null)X(Y,["instances[0]","prompt"],J);let K=V($,["image"]);if(K!=null)X(Y,["instances[0]","image"],d0(K));let q=V($,["video"]);if(q!=null)X(Y,["instances[0]","video"],oV(q));let H=V($,["source"]);if(H!=null)pF(H,Y);let w=V($,["config"]);if(w!=null)fF(w,Y);return Y}function dF(Z,$){let Q={},Y=V(Z,["generatedSamples"]);if(Y!=null){let K=Y;if(Array.isArray(K))K=K.map((q)=>{return nF(q)});X(Q,["generatedVideos"],K)}let W=V(Z,["raiMediaFilteredCount"]);if(W!=null)X(Q,["raiMediaFilteredCount"],W);let J=V(Z,["raiMediaFilteredReasons"]);if(J!=null)X(Q,["raiMediaFilteredReasons"],J);return Q}function lF(Z,$){let Q={},Y=V(Z,["videos"]);if(Y!=null){let K=Y;if(Array.isArray(K))K=K.map((q)=>{return rF(q)});X(Q,["generatedVideos"],K)}let W=V(Z,["raiMediaFilteredCount"]);if(W!=null)X(Q,["raiMediaFilteredCount"],W);let J=V(Z,["raiMediaFilteredReasons"]);if(J!=null)X(Q,["raiMediaFilteredReasons"],J);return Q}function cF(Z,$,Q){let Y={},W=V(Z,["prompt"]);if($!==void 0&&W!=null)X($,["instances[0]","prompt"],W);let J=V(Z,["image"]);if($!==void 0&&J!=null)X($,["instances[0]","image"],W8(J));let K=V(Z,["video"]);if($!==void 0&&K!=null)X($,["instances[0]","video"],sV(K));return Y}function pF(Z,$,Q){let Y={},W=V(Z,["prompt"]);if($!==void 0&&W!=null)X($,["instances[0]","prompt"],W);let J=V(Z,["image"]);if($!==void 0&&J!=null)X($,["instances[0]","image"],d0(J));let K=V(Z,["video"]);if($!==void 0&&K!=null)X($,["instances[0]","video"],oV(K));return Y}function iF(Z,$){let Q={},Y=V(Z,["_self"]);if(Y!=null)X(Q,["image"],Y2(Y));let W=V(Z,["raiFilteredReason"]);if(W!=null)X(Q,["raiFilteredReason"],W);let J=V(Z,["_self"]);if(J!=null)X(Q,["safetyAttributes"],aV(J));return Q}function Y8(Z,$){let Q={},Y=V(Z,["_self"]);if(Y!=null)X(Q,["image"],iV(Y));let W=V(Z,["raiFilteredReason"]);if(W!=null)X(Q,["raiFilteredReason"],W);let J=V(Z,["_self"]);if(J!=null)X(Q,["safetyAttributes"],nV(J));let K=V(Z,["prompt"]);if(K!=null)X(Q,["enhancedPrompt"],K);return Q}function aF(Z,$){let Q={},Y=V(Z,["_self"]);if(Y!=null)X(Q,["mask"],iV(Y));let W=V(Z,["labels"]);if(W!=null){let J=W;if(Array.isArray(J))J=J.map((K)=>{return K});X(Q,["labels"],J)}return Q}function nF(Z,$){let Q={},Y=V(Z,["video"]);if(Y!=null)X(Q,["video"],f2(Y));return Q}function rF(Z,$){let Q={},Y=V(Z,["_self"]);if(Y!=null)X(Q,["video"],g2(Y));return Q}function sF(Z,$){let Q={},Y=V(Z,["modelSelectionConfig"]);if(Y!=null)X(Q,["modelConfig"],Y);let W=V(Z,["responseJsonSchema"]);if(W!=null)X(Q,["responseJsonSchema"],W);let J=V(Z,["audioTimestamp"]);if(J!=null)X(Q,["audioTimestamp"],J);let K=V(Z,["candidateCount"]);if(K!=null)X(Q,["candidateCount"],K);let q=V(Z,["enableAffectiveDialog"]);if(q!=null)X(Q,["enableAffectiveDialog"],q);let H=V(Z,["frequencyPenalty"]);if(H!=null)X(Q,["frequencyPenalty"],H);let w=V(Z,["logprobs"]);if(w!=null)X(Q,["logprobs"],w);let F=V(Z,["maxOutputTokens"]);if(F!=null)X(Q,["maxOutputTokens"],F);let z=V(Z,["mediaResolution"]);if(z!=null)X(Q,["mediaResolution"],z);let G=V(Z,["presencePenalty"]);if(G!=null)X(Q,["presencePenalty"],G);let D=V(Z,["responseLogprobs"]);if(D!=null)X(Q,["responseLogprobs"],D);let T=V(Z,["responseMimeType"]);if(T!=null)X(Q,["responseMimeType"],T);let I=V(Z,["responseModalities"]);if(I!=null)X(Q,["responseModalities"],I);let P=V(Z,["responseSchema"]);if(P!=null)X(Q,["responseSchema"],P);let O=V(Z,["routingConfig"]);if(O!=null)X(Q,["routingConfig"],O);let y=V(Z,["seed"]);if(y!=null)X(Q,["seed"],y);let x=V(Z,["speechConfig"]);if(x!=null)X(Q,["speechConfig"],x);let m=V(Z,["stopSequences"]);if(m!=null)X(Q,["stopSequences"],m);let f=V(Z,["temperature"]);if(f!=null)X(Q,["temperature"],f);let S=V(Z,["thinkingConfig"]);if(S!=null)X(Q,["thinkingConfig"],S);let d=V(Z,["topK"]);if(d!=null)X(Q,["topK"],d);let h=V(Z,["topP"]);if(h!=null)X(Q,["topP"],h);if(V(Z,["enableEnhancedCivicAnswers"])!==void 0)throw Error("enableEnhancedCivicAnswers parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");return Q}function oF(Z,$,Q){let Y={},W=V($,["model"]);if(W!=null)X(Y,["_url","name"],Z0(Z,W));return Y}function tF(Z,$,Q){let Y={},W=V($,["model"]);if(W!=null)X(Y,["_url","name"],Z0(Z,W));return Y}function eF(Z,$){let Q={},Y=V(Z,["authConfig"]);if(Y!=null)X(Q,["authConfig"],r3(Y));let W=V(Z,["enableWidget"]);if(W!=null)X(Q,["enableWidget"],W);return Q}function Z2(Z,$){let Q={},Y=V(Z,["searchTypes"]);if(Y!=null)X(Q,["searchTypes"],Y);if(V(Z,["blockingConfidence"])!==void 0)throw Error("blockingConfidence parameter is not supported in Gemini API.");if(V(Z,["excludeDomains"])!==void 0)throw Error("excludeDomains parameter is not supported in Gemini API.");let W=V(Z,["timeRangeFilter"]);if(W!=null)X(Q,["timeRangeFilter"],W);return Q}function $2(Z,$){let Q={},Y=V(Z,["aspectRatio"]);if(Y!=null)X(Q,["aspectRatio"],Y);let W=V(Z,["imageSize"]);if(W!=null)X(Q,["imageSize"],W);if(V(Z,["personGeneration"])!==void 0)throw Error("personGeneration parameter is not supported in Gemini API.");if(V(Z,["prominentPeople"])!==void 0)throw Error("prominentPeople parameter is not supported in Gemini API.");if(V(Z,["outputMimeType"])!==void 0)throw Error("outputMimeType parameter is not supported in Gemini API.");if(V(Z,["outputCompressionQuality"])!==void 0)throw Error("outputCompressionQuality parameter is not supported in Gemini API.");if(V(Z,["imageOutputOptions"])!==void 0)throw Error("imageOutputOptions parameter is not supported in Gemini API.");return Q}function Q2(Z,$){let Q={},Y=V(Z,["aspectRatio"]);if(Y!=null)X(Q,["aspectRatio"],Y);let W=V(Z,["imageSize"]);if(W!=null)X(Q,["imageSize"],W);let J=V(Z,["personGeneration"]);if(J!=null)X(Q,["personGeneration"],J);let K=V(Z,["prominentPeople"]);if(K!=null)X(Q,["prominentPeople"],K);let q=V(Z,["outputMimeType"]);if(q!=null)X(Q,["imageOutputOptions","mimeType"],q);let H=V(Z,["outputCompressionQuality"]);if(H!=null)X(Q,["imageOutputOptions","compressionQuality"],H);let w=V(Z,["imageOutputOptions"]);if(w!=null)X(Q,["imageOutputOptions"],w);return Q}function Y2(Z,$){let Q={},Y=V(Z,["bytesBase64Encoded"]);if(Y!=null)X(Q,["imageBytes"],K4(Y));let W=V(Z,["mimeType"]);if(W!=null)X(Q,["mimeType"],W);return Q}function iV(Z,$){let Q={},Y=V(Z,["gcsUri"]);if(Y!=null)X(Q,["gcsUri"],Y);let W=V(Z,["bytesBase64Encoded"]);if(W!=null)X(Q,["imageBytes"],K4(W));let J=V(Z,["mimeType"]);if(J!=null)X(Q,["mimeType"],J);return Q}function W8(Z,$){let Q={};if(V(Z,["gcsUri"])!==void 0)throw Error("gcsUri parameter is not supported in Gemini API.");let Y=V(Z,["imageBytes"]);if(Y!=null)X(Q,["bytesBase64Encoded"],K4(Y));let W=V(Z,["mimeType"]);if(W!=null)X(Q,["mimeType"],W);return Q}function d0(Z,$){let Q={},Y=V(Z,["gcsUri"]);if(Y!=null)X(Q,["gcsUri"],Y);let W=V(Z,["imageBytes"]);if(W!=null)X(Q,["bytesBase64Encoded"],K4(W));let J=V(Z,["mimeType"]);if(J!=null)X(Q,["mimeType"],J);return Q}function W2(Z,$,Q,Y){let W={},J=V($,["pageSize"]);if(Q!==void 0&&J!=null)X(Q,["_query","pageSize"],J);let K=V($,["pageToken"]);if(Q!==void 0&&K!=null)X(Q,["_query","pageToken"],K);let q=V($,["filter"]);if(Q!==void 0&&q!=null)X(Q,["_query","filter"],q);let H=V($,["queryBase"]);if(Q!==void 0&&H!=null)X(Q,["_url","models_url"],kV(Z,H));return W}function V2(Z,$,Q,Y){let W={},J=V($,["pageSize"]);if(Q!==void 0&&J!=null)X(Q,["_query","pageSize"],J);let K=V($,["pageToken"]);if(Q!==void 0&&K!=null)X(Q,["_query","pageToken"],K);let q=V($,["filter"]);if(Q!==void 0&&q!=null)X(Q,["_query","filter"],q);let H=V($,["queryBase"]);if(Q!==void 0&&H!=null)X(Q,["_url","models_url"],kV(Z,H));return W}function J2(Z,$,Q){let Y={},W=V($,["config"]);if(W!=null)W2(Z,W,Y);return Y}function X2(Z,$,Q){let Y={},W=V($,["config"]);if(W!=null)V2(Z,W,Y);return Y}function K2(Z,$){let Q={},Y=V(Z,["sdkHttpResponse"]);if(Y!=null)X(Q,["sdkHttpResponse"],Y);let W=V(Z,["nextPageToken"]);if(W!=null)X(Q,["nextPageToken"],W);let J=V(Z,["_self"]);if(J!=null){let K=yV(J);if(Array.isArray(K))K=K.map((q)=>{return WZ(q)});X(Q,["models"],K)}return Q}function q2(Z,$){let Q={},Y=V(Z,["sdkHttpResponse"]);if(Y!=null)X(Q,["sdkHttpResponse"],Y);let W=V(Z,["nextPageToken"]);if(W!=null)X(Q,["nextPageToken"],W);let J=V(Z,["_self"]);if(J!=null){let K=yV(J);if(Array.isArray(K))K=K.map((q)=>{return VZ(q)});X(Q,["models"],K)}return Q}function H2(Z,$){let Q={},Y=V(Z,["maskMode"]);if(Y!=null)X(Q,["maskMode"],Y);let W=V(Z,["segmentationClasses"]);if(W!=null)X(Q,["maskClasses"],W);let J=V(Z,["maskDilation"]);if(J!=null)X(Q,["dilation"],J);return Q}function WZ(Z,$){let Q={},Y=V(Z,["name"]);if(Y!=null)X(Q,["name"],Y);let W=V(Z,["displayName"]);if(W!=null)X(Q,["displayName"],W);let J=V(Z,["description"]);if(J!=null)X(Q,["description"],J);let K=V(Z,["version"]);if(K!=null)X(Q,["version"],K);let q=V(Z,["_self"]);if(q!=null)X(Q,["tunedModelInfo"],v2(q));let H=V(Z,["inputTokenLimit"]);if(H!=null)X(Q,["inputTokenLimit"],H);let w=V(Z,["outputTokenLimit"]);if(w!=null)X(Q,["outputTokenLimit"],w);let F=V(Z,["supportedGenerationMethods"]);if(F!=null)X(Q,["supportedActions"],F);let z=V(Z,["temperature"]);if(z!=null)X(Q,["temperature"],z);let G=V(Z,["maxTemperature"]);if(G!=null)X(Q,["maxTemperature"],G);let D=V(Z,["topP"]);if(D!=null)X(Q,["topP"],D);let T=V(Z,["topK"]);if(T!=null)X(Q,["topK"],T);let I=V(Z,["thinking"]);if(I!=null)X(Q,["thinking"],I);return Q}function VZ(Z,$){let Q={},Y=V(Z,["name"]);if(Y!=null)X(Q,["name"],Y);let W=V(Z,["displayName"]);if(W!=null)X(Q,["displayName"],W);let J=V(Z,["description"]);if(J!=null)X(Q,["description"],J);let K=V(Z,["versionId"]);if(K!=null)X(Q,["version"],K);let q=V(Z,["deployedModels"]);if(q!=null){let G=q;if(Array.isArray(G))G=G.map((D)=>{return RF(D)});X(Q,["endpoints"],G)}let H=V(Z,["labels"]);if(H!=null)X(Q,["labels"],H);let w=V(Z,["_self"]);if(w!=null)X(Q,["tunedModelInfo"],E2(w));let F=V(Z,["defaultCheckpointId"]);if(F!=null)X(Q,["defaultCheckpointId"],F);let z=V(Z,["checkpoints"]);if(z!=null){let G=z;if(Array.isArray(G))G=G.map((D)=>{return D});X(Q,["checkpoints"],G)}return Q}function w2(Z,$){let Q={},Y=V(Z,["mediaResolution"]);if(Y!=null)X(Q,["mediaResolution"],Y);let W=V(Z,["codeExecutionResult"]);if(W!=null)X(Q,["codeExecutionResult"],W);let J=V(Z,["executableCode"]);if(J!=null)X(Q,["executableCode"],J);let K=V(Z,["fileData"]);if(K!=null)X(Q,["fileData"],AF(K));let q=V(Z,["functionCall"]);if(q!=null)X(Q,["functionCall"],PF(q));let H=V(Z,["functionResponse"]);if(H!=null)X(Q,["functionResponse"],H);let w=V(Z,["inlineData"]);if(w!=null)X(Q,["inlineData"],s3(w));let F=V(Z,["text"]);if(F!=null)X(Q,["text"],F);let z=V(Z,["thought"]);if(z!=null)X(Q,["thought"],z);let G=V(Z,["thoughtSignature"]);if(G!=null)X(Q,["thoughtSignature"],G);let D=V(Z,["videoMetadata"]);if(D!=null)X(Q,["videoMetadata"],D);let T=V(Z,["toolCall"]);if(T!=null)X(Q,["toolCall"],T);let I=V(Z,["toolResponse"]);if(I!=null)X(Q,["toolResponse"],I);let P=V(Z,["partMetadata"]);if(P!=null)X(Q,["partMetadata"],P);return Q}function z2(Z,$){let Q={},Y=V(Z,["mediaResolution"]);if(Y!=null)X(Q,["mediaResolution"],Y);let W=V(Z,["codeExecutionResult"]);if(W!=null)X(Q,["codeExecutionResult"],W);let J=V(Z,["executableCode"]);if(J!=null)X(Q,["executableCode"],J);let K=V(Z,["fileData"]);if(K!=null)X(Q,["fileData"],K);let q=V(Z,["functionCall"]);if(q!=null)X(Q,["functionCall"],q);let H=V(Z,["functionResponse"]);if(H!=null)X(Q,["functionResponse"],H);let w=V(Z,["inlineData"]);if(w!=null)X(Q,["inlineData"],w);let F=V(Z,["text"]);if(F!=null)X(Q,["text"],F);let z=V(Z,["thought"]);if(z!=null)X(Q,["thought"],z);let G=V(Z,["thoughtSignature"]);if(G!=null)X(Q,["thoughtSignature"],G);let D=V(Z,["videoMetadata"]);if(D!=null)X(Q,["videoMetadata"],D);if(V(Z,["toolCall"])!==void 0)throw Error("toolCall parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");if(V(Z,["toolResponse"])!==void 0)throw Error("toolResponse parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");if(V(Z,["partMetadata"])!==void 0)throw Error("partMetadata parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");return Q}function F2(Z,$){let Q={},Y=V(Z,["productImage"]);if(Y!=null)X(Q,["image"],d0(Y));return Q}function G2(Z,$,Q){let Y={},W=V(Z,["numberOfImages"]);if($!==void 0&&W!=null)X($,["parameters","sampleCount"],W);let J=V(Z,["baseSteps"]);if($!==void 0&&J!=null)X($,["parameters","baseSteps"],J);let K=V(Z,["outputGcsUri"]);if($!==void 0&&K!=null)X($,["parameters","storageUri"],K);let q=V(Z,["seed"]);if($!==void 0&&q!=null)X($,["parameters","seed"],q);let H=V(Z,["safetyFilterLevel"]);if($!==void 0&&H!=null)X($,["parameters","safetySetting"],H);let w=V(Z,["personGeneration"]);if($!==void 0&&w!=null)X($,["parameters","personGeneration"],w);let F=V(Z,["addWatermark"]);if($!==void 0&&F!=null)X($,["parameters","addWatermark"],F);let z=V(Z,["outputMimeType"]);if($!==void 0&&z!=null)X($,["parameters","outputOptions","mimeType"],z);let G=V(Z,["outputCompressionQuality"]);if($!==void 0&&G!=null)X($,["parameters","outputOptions","compressionQuality"],G);let D=V(Z,["enhancePrompt"]);if($!==void 0&&D!=null)X($,["parameters","enhancePrompt"],D);let T=V(Z,["labels"]);if($!==void 0&&T!=null)X($,["labels"],T);return Y}function U2(Z,$,Q){let Y={},W=V($,["model"]);if(W!=null)X(Y,["_url","model"],Z0(Z,W));let J=V($,["source"]);if(J!=null)M2(J,Y);let K=V($,["config"]);if(K!=null)G2(K,Y);return Y}function D2(Z,$){let Q={},Y=V(Z,["predictions"]);if(Y!=null){let W=Y;if(Array.isArray(W))W=W.map((J)=>{return Y8(J)});X(Q,["generatedImages"],W)}return Q}function M2(Z,$,Q){let Y={},W=V(Z,["prompt"]);if($!==void 0&&W!=null)X($,["instances[0]","prompt"],W);let J=V(Z,["personImage"]);if($!==void 0&&J!=null)X($,["instances[0]","personImage","image"],d0(J));let K=V(Z,["productImages"]);if($!==void 0&&K!=null){let q=K;if(Array.isArray(q))q=q.map((H)=>{return F2(H)});X($,["instances[0]","productImages"],q)}return Y}function I2(Z,$){let Q={},Y=V(Z,["referenceImage"]);if(Y!=null)X(Q,["referenceImage"],d0(Y));let W=V(Z,["referenceId"]);if(W!=null)X(Q,["referenceId"],W);let J=V(Z,["referenceType"]);if(J!=null)X(Q,["referenceType"],J);let K=V(Z,["maskImageConfig"]);if(K!=null)X(Q,["maskImageConfig"],H2(K));let q=V(Z,["controlImageConfig"]);if(q!=null)X(Q,["controlImageConfig"],YF(q));let H=V(Z,["styleImageConfig"]);if(H!=null)X(Q,["styleImageConfig"],H);let w=V(Z,["subjectImageConfig"]);if(w!=null)X(Q,["subjectImageConfig"],w);return Q}function aV(Z,$){let Q={},Y=V(Z,["safetyAttributes","categories"]);if(Y!=null)X(Q,["categories"],Y);let W=V(Z,["safetyAttributes","scores"]);if(W!=null)X(Q,["scores"],W);let J=V(Z,["contentType"]);if(J!=null)X(Q,["contentType"],J);return Q}function nV(Z,$){let Q={},Y=V(Z,["safetyAttributes","categories"]);if(Y!=null)X(Q,["categories"],Y);let W=V(Z,["safetyAttributes","scores"]);if(W!=null)X(Q,["scores"],W);let J=V(Z,["contentType"]);if(J!=null)X(Q,["contentType"],J);return Q}function N2(Z,$){let Q={},Y=V(Z,["category"]);if(Y!=null)X(Q,["category"],Y);if(V(Z,["method"])!==void 0)throw Error("method parameter is not supported in Gemini API.");let W=V(Z,["threshold"]);if(W!=null)X(Q,["threshold"],W);return Q}function T2(Z,$){let Q={},Y=V(Z,["image"]);if(Y!=null)X(Q,["image"],d0(Y));return Q}function B2(Z,$,Q){let Y={},W=V(Z,["mode"]);if($!==void 0&&W!=null)X($,["parameters","mode"],W);let J=V(Z,["maxPredictions"]);if($!==void 0&&J!=null)X($,["parameters","maxPredictions"],J);let K=V(Z,["confidenceThreshold"]);if($!==void 0&&K!=null)X($,["parameters","confidenceThreshold"],K);let q=V(Z,["maskDilation"]);if($!==void 0&&q!=null)X($,["parameters","maskDilation"],q);let H=V(Z,["binaryColorThreshold"]);if($!==void 0&&H!=null)X($,["parameters","binaryColorThreshold"],H);let w=V(Z,["labels"]);if($!==void 0&&w!=null)X($,["labels"],w);return Y}function L2(Z,$,Q){let Y={},W=V($,["model"]);if(W!=null)X(Y,["_url","model"],Z0(Z,W));let J=V($,["source"]);if(J!=null)A2(J,Y);let K=V($,["config"]);if(K!=null)B2(K,Y);return Y}function R2(Z,$){let Q={},Y=V(Z,["predictions"]);if(Y!=null){let W=Y;if(Array.isArray(W))W=W.map((J)=>{return aF(J)});X(Q,["generatedMasks"],W)}return Q}function A2(Z,$,Q){let Y={},W=V(Z,["prompt"]);if($!==void 0&&W!=null)X($,["instances[0]","prompt"],W);let J=V(Z,["image"]);if($!==void 0&&J!=null)X($,["instances[0]","image"],d0(J));let K=V(Z,["scribbleImage"]);if($!==void 0&&K!=null)X($,["instances[0]","scribble"],T2(K));return Y}function P2(Z,$){let Q={},Y=V(Z,["retrievalConfig"]);if(Y!=null)X(Q,["retrievalConfig"],Y);let W=V(Z,["functionCallingConfig"]);if(W!=null)X(Q,["functionCallingConfig"],SF(W));let J=V(Z,["includeServerSideToolInvocations"]);if(J!=null)X(Q,["includeServerSideToolInvocations"],J);return Q}function S2(Z,$){let Q={},Y=V(Z,["retrievalConfig"]);if(Y!=null)X(Q,["retrievalConfig"],Y);let W=V(Z,["functionCallingConfig"]);if(W!=null)X(Q,["functionCallingConfig"],W);if(V(Z,["includeServerSideToolInvocations"])!==void 0)throw Error("includeServerSideToolInvocations parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");return Q}function C2(Z,$){let Q={};if(V(Z,["retrieval"])!==void 0)throw Error("retrieval parameter is not supported in Gemini API.");let Y=V(Z,["computerUse"]);if(Y!=null)X(Q,["computerUse"],Y);let W=V(Z,["fileSearch"]);if(W!=null)X(Q,["fileSearch"],W);let J=V(Z,["googleSearch"]);if(J!=null)X(Q,["googleSearch"],Z2(J));let K=V(Z,["googleMaps"]);if(K!=null)X(Q,["googleMaps"],eF(K));let q=V(Z,["codeExecution"]);if(q!=null)X(Q,["codeExecution"],q);if(V(Z,["enterpriseWebSearch"])!==void 0)throw Error("enterpriseWebSearch parameter is not supported in Gemini API.");let H=V(Z,["functionDeclarations"]);if(H!=null){let G=H;if(Array.isArray(G))G=G.map((D)=>{return D});X(Q,["functionDeclarations"],G)}let w=V(Z,["googleSearchRetrieval"]);if(w!=null)X(Q,["googleSearchRetrieval"],w);if(V(Z,["parallelAiSearch"])!==void 0)throw Error("parallelAiSearch parameter is not supported in Gemini API.");let F=V(Z,["urlContext"]);if(F!=null)X(Q,["urlContext"],F);let z=V(Z,["mcpServers"]);if(z!=null){let G=z;if(Array.isArray(G))G=G.map((D)=>{return D});X(Q,["mcpServers"],G)}return Q}function rV(Z,$){let Q={},Y=V(Z,["retrieval"]);if(Y!=null)X(Q,["retrieval"],Y);let W=V(Z,["computerUse"]);if(W!=null)X(Q,["computerUse"],W);if(V(Z,["fileSearch"])!==void 0)throw Error("fileSearch parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");let J=V(Z,["googleSearch"]);if(J!=null)X(Q,["googleSearch"],J);let K=V(Z,["googleMaps"]);if(K!=null)X(Q,["googleMaps"],K);let q=V(Z,["codeExecution"]);if(q!=null)X(Q,["codeExecution"],q);let H=V(Z,["enterpriseWebSearch"]);if(H!=null)X(Q,["enterpriseWebSearch"],H);let w=V(Z,["functionDeclarations"]);if(w!=null){let D=w;if(Array.isArray(D))D=D.map((T)=>{return CF(T)});X(Q,["functionDeclarations"],D)}let F=V(Z,["googleSearchRetrieval"]);if(F!=null)X(Q,["googleSearchRetrieval"],F);let z=V(Z,["parallelAiSearch"]);if(z!=null)X(Q,["parallelAiSearch"],z);let G=V(Z,["urlContext"]);if(G!=null)X(Q,["urlContext"],G);if(V(Z,["mcpServers"])!==void 0)throw Error("mcpServers parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");return Q}function v2(Z,$){let Q={},Y=V(Z,["baseModel"]);if(Y!=null)X(Q,["baseModel"],Y);let W=V(Z,["createTime"]);if(W!=null)X(Q,["createTime"],W);let J=V(Z,["updateTime"]);if(J!=null)X(Q,["updateTime"],J);return Q}function E2(Z,$){let Q={},Y=V(Z,["labels","google-vertex-llm-tuning-base-model-id"]);if(Y!=null)X(Q,["baseModel"],Y);let W=V(Z,["createTime"]);if(W!=null)X(Q,["createTime"],W);let J=V(Z,["updateTime"]);if(J!=null)X(Q,["updateTime"],J);return Q}function O2(Z,$,Q){let Y={},W=V(Z,["displayName"]);if($!==void 0&&W!=null)X($,["displayName"],W);let J=V(Z,["description"]);if($!==void 0&&J!=null)X($,["description"],J);let K=V(Z,["defaultCheckpointId"]);if($!==void 0&&K!=null)X($,["defaultCheckpointId"],K);return Y}function j2(Z,$,Q){let Y={},W=V(Z,["displayName"]);if($!==void 0&&W!=null)X($,["displayName"],W);let J=V(Z,["description"]);if($!==void 0&&J!=null)X($,["description"],J);let K=V(Z,["defaultCheckpointId"]);if($!==void 0&&K!=null)X($,["defaultCheckpointId"],K);return Y}function _2(Z,$,Q){let Y={},W=V($,["model"]);if(W!=null)X(Y,["_url","name"],Z0(Z,W));let J=V($,["config"]);if(J!=null)O2(J,Y);return Y}function h2(Z,$,Q){let Y={},W=V($,["model"]);if(W!=null)X(Y,["_url","model"],Z0(Z,W));let J=V($,["config"]);if(J!=null)j2(J,Y);return Y}function k2(Z,$,Q){let Y={},W=V(Z,["outputGcsUri"]);if($!==void 0&&W!=null)X($,["parameters","storageUri"],W);let J=V(Z,["safetyFilterLevel"]);if($!==void 0&&J!=null)X($,["parameters","safetySetting"],J);let K=V(Z,["personGeneration"]);if($!==void 0&&K!=null)X($,["parameters","personGeneration"],K);let q=V(Z,["includeRaiReason"]);if($!==void 0&&q!=null)X($,["parameters","includeRaiReason"],q);let H=V(Z,["outputMimeType"]);if($!==void 0&&H!=null)X($,["parameters","outputOptions","mimeType"],H);let w=V(Z,["outputCompressionQuality"]);if($!==void 0&&w!=null)X($,["parameters","outputOptions","compressionQuality"],w);let F=V(Z,["enhanceInputImage"]);if($!==void 0&&F!=null)X($,["parameters","upscaleConfig","enhanceInputImage"],F);let z=V(Z,["imagePreservationFactor"]);if($!==void 0&&z!=null)X($,["parameters","upscaleConfig","imagePreservationFactor"],z);let G=V(Z,["labels"]);if($!==void 0&&G!=null)X($,["labels"],G);let D=V(Z,["numberOfImages"]);if($!==void 0&&D!=null)X($,["parameters","sampleCount"],D);let T=V(Z,["mode"]);if($!==void 0&&T!=null)X($,["parameters","mode"],T);return Y}function y2(Z,$,Q){let Y={},W=V($,["model"]);if(W!=null)X(Y,["_url","model"],Z0(Z,W));let J=V($,["image"]);if(J!=null)X(Y,["instances[0]","image"],d0(J));let K=V($,["upscaleFactor"]);if(K!=null)X(Y,["parameters","upscaleConfig","upscaleFactor"],K);let q=V($,["config"]);if(q!=null)k2(q,Y);return Y}function x2(Z,$){let Q={},Y=V(Z,["sdkHttpResponse"]);if(Y!=null)X(Q,["sdkHttpResponse"],Y);let W=V(Z,["predictions"]);if(W!=null){let J=W;if(Array.isArray(J))J=J.map((K)=>{return Y8(K)});X(Q,["generatedImages"],J)}return Q}function f2(Z,$){let Q={},Y=V(Z,["uri"]);if(Y!=null)X(Q,["uri"],Y);let W=V(Z,["encodedVideo"]);if(W!=null)X(Q,["videoBytes"],K4(W));let J=V(Z,["encoding"]);if(J!=null)X(Q,["mimeType"],J);return Q}function g2(Z,$){let Q={},Y=V(Z,["gcsUri"]);if(Y!=null)X(Q,["uri"],Y);let W=V(Z,["bytesBase64Encoded"]);if(W!=null)X(Q,["videoBytes"],K4(W));let J=V(Z,["mimeType"]);if(J!=null)X(Q,["mimeType"],J);return Q}function b2(Z,$){let Q={},Y=V(Z,["image"]);if(Y!=null)X(Q,["_self"],d0(Y));let W=V(Z,["maskMode"]);if(W!=null)X(Q,["maskMode"],W);return Q}function m2(Z,$){let Q={},Y=V(Z,["image"]);if(Y!=null)X(Q,["image"],W8(Y));let W=V(Z,["referenceType"]);if(W!=null)X(Q,["referenceType"],W);return Q}function u2(Z,$){let Q={},Y=V(Z,["image"]);if(Y!=null)X(Q,["image"],d0(Y));let W=V(Z,["referenceType"]);if(W!=null)X(Q,["referenceType"],W);return Q}function sV(Z,$){let Q={},Y=V(Z,["uri"]);if(Y!=null)X(Q,["uri"],Y);let W=V(Z,["videoBytes"]);if(W!=null)X(Q,["encodedVideo"],K4(W));let J=V(Z,["mimeType"]);if(J!=null)X(Q,["encoding"],J);return Q}function oV(Z,$){let Q={},Y=V(Z,["uri"]);if(Y!=null)X(Q,["gcsUri"],Y);let W=V(Z,["videoBytes"]);if(W!=null)X(Q,["bytesBase64Encoded"],K4(W));let J=V(Z,["mimeType"]);if(J!=null)X(Q,["mimeType"],J);return Q}function d2(Z,$,Q){let Y={},W=V($,["displayName"]);if(Q!==void 0&&W!=null)X(Q,["displayName"],W);let J=V($,["embeddingModel"]);if(Q!==void 0&&J!=null)X(Q,["embeddingModel"],Z0(Z,J));return Y}function l2(Z,$){let Q={},Y=V($,["config"]);if(Y!=null)d2(Z,Y,Q);return Q}function c2(Z,$){let Q={},Y=V(Z,["force"]);if($!==void 0&&Y!=null)X($,["_query","force"],Y);return Q}function p2(Z){let $={},Q=V(Z,["name"]);if(Q!=null)X($,["_url","name"],Q);let Y=V(Z,["config"]);if(Y!=null)c2(Y,$);return $}function i2(Z){let $={},Q=V(Z,["name"]);if(Q!=null)X($,["_url","name"],Q);return $}function a2(Z,$){let Q={},Y=V(Z,["customMetadata"]);if($!==void 0&&Y!=null){let J=Y;if(Array.isArray(J))J=J.map((K)=>{return K});X($,["customMetadata"],J)}let W=V(Z,["chunkingConfig"]);if($!==void 0&&W!=null)X($,["chunkingConfig"],W);return Q}function n2(Z){let $={},Q=V(Z,["name"]);if(Q!=null)X($,["name"],Q);let Y=V(Z,["metadata"]);if(Y!=null)X($,["metadata"],Y);let W=V(Z,["done"]);if(W!=null)X($,["done"],W);let J=V(Z,["error"]);if(J!=null)X($,["error"],J);let K=V(Z,["response"]);if(K!=null)X($,["response"],s2(K));return $}function r2(Z){let $={},Q=V(Z,["fileSearchStoreName"]);if(Q!=null)X($,["_url","file_search_store_name"],Q);let Y=V(Z,["fileName"]);if(Y!=null)X($,["fileName"],Y);let W=V(Z,["config"]);if(W!=null)a2(W,$);return $}function s2(Z){let $={},Q=V(Z,["sdkHttpResponse"]);if(Q!=null)X($,["sdkHttpResponse"],Q);let Y=V(Z,["parent"]);if(Y!=null)X($,["parent"],Y);let W=V(Z,["documentName"]);if(W!=null)X($,["documentName"],W);return $}function o2(Z,$){let Q={},Y=V(Z,["pageSize"]);if($!==void 0&&Y!=null)X($,["_query","pageSize"],Y);let W=V(Z,["pageToken"]);if($!==void 0&&W!=null)X($,["_query","pageToken"],W);return Q}function t2(Z){let $={},Q=V(Z,["config"]);if(Q!=null)o2(Q,$);return $}function e2(Z){let $={},Q=V(Z,["sdkHttpResponse"]);if(Q!=null)X($,["sdkHttpResponse"],Q);let Y=V(Z,["nextPageToken"]);if(Y!=null)X($,["nextPageToken"],Y);let W=V(Z,["fileSearchStores"]);if(W!=null){let J=W;if(Array.isArray(J))J=J.map((K)=>{return K});X($,["fileSearchStores"],J)}return $}function tV(Z,$){let Q={},Y=V(Z,["mimeType"]);if($!==void 0&&Y!=null)X($,["mimeType"],Y);let W=V(Z,["displayName"]);if($!==void 0&&W!=null)X($,["displayName"],W);let J=V(Z,["customMetadata"]);if($!==void 0&&J!=null){let q=J;if(Array.isArray(q))q=q.map((H)=>{return H});X($,["customMetadata"],q)}let K=V(Z,["chunkingConfig"]);if($!==void 0&&K!=null)X($,["chunkingConfig"],K);return Q}function ZG(Z){let $={},Q=V(Z,["fileSearchStoreName"]);if(Q!=null)X($,["_url","file_search_store_name"],Q);let Y=V(Z,["config"]);if(Y!=null)tV(Y,$);return $}function $G(Z){let $={},Q=V(Z,["sdkHttpResponse"]);if(Q!=null)X($,["sdkHttpResponse"],Q);return $}var QG="Content-Type",YG="X-Server-Timeout",WG="User-Agent",JZ="x-goog-api-client",VG="1.52.0",JG=`google-genai-sdk/${VG}`,XG="v1beta1",KG="v1beta",qG=new Set(["us","eu"]),HG=5,wG=[408,429,500,502,503,504];class eV{constructor(Z){var $,Q,Y;if(this.clientOptions=Object.assign({},Z),this.customBaseUrl=($=Z.httpOptions)===null||$===void 0?void 0:$.baseUrl,this.clientOptions.vertexai){if(this.clientOptions.project&&this.clientOptions.location)this.clientOptions.apiKey=void 0;else if(this.clientOptions.apiKey)this.clientOptions.project=void 0,this.clientOptions.location=void 0}let W={};if(this.clientOptions.vertexai){if(!this.clientOptions.location&&!this.clientOptions.apiKey&&!this.customBaseUrl)this.clientOptions.location="global";if(!(this.clientOptions.project&&this.clientOptions.location||this.clientOptions.apiKey)&&!this.customBaseUrl)throw Error("Authentication is not set up. Please provide either a project and location, or an API key, or a custom base URL.");let K=Z.project&&Z.location||!!Z.apiKey;if(this.customBaseUrl&&!K)W.baseUrl=this.customBaseUrl,this.clientOptions.project=void 0,this.clientOptions.location=void 0;else if(this.clientOptions.apiKey||this.clientOptions.location==="global")W.baseUrl="https://aiplatform.googleapis.com/";else if(this.clientOptions.project&&this.clientOptions.location&&qG.has(this.clientOptions.location))W.baseUrl=`https://aiplatform.${this.clientOptions.location}.rep.googleapis.com/`;else if(this.clientOptions.project&&this.clientOptions.location)W.baseUrl=`https://${this.clientOptions.location}-aiplatform.googleapis.com/`;W.apiVersion=(Q=this.clientOptions.apiVersion)!==null&&Q!==void 0?Q:XG}else{if(!this.clientOptions.apiKey)console.warn("API key should be set when using the Gemini API.");W.apiVersion=(Y=this.clientOptions.apiVersion)!==null&&Y!==void 0?Y:KG,W.baseUrl="https://generativelanguage.googleapis.com/"}if(W.headers=this.getDefaultHeaders(),this.clientOptions.httpOptions=W,Z.httpOptions)this.clientOptions.httpOptions=this.patchHttpOptions(W,Z.httpOptions)}isVertexAI(){var Z;return(Z=this.clientOptions.vertexai)!==null&&Z!==void 0?Z:!1}getProject(){return this.clientOptions.project}getLocation(){return this.clientOptions.location}getCustomBaseUrl(){return this.customBaseUrl}async getAuthHeaders(){let Z=new Headers;return await this.clientOptions.auth.addAuthHeaders(Z),Z}getApiVersion(){if(this.clientOptions.httpOptions&&this.clientOptions.httpOptions.apiVersion!==void 0)return this.clientOptions.httpOptions.apiVersion;throw Error("API version is not set.")}getBaseUrl(){if(this.clientOptions.httpOptions&&this.clientOptions.httpOptions.baseUrl!==void 0)return this.clientOptions.httpOptions.baseUrl;throw Error("Base URL is not set.")}getRequestUrl(){return this.getRequestUrlInternal(this.clientOptions.httpOptions)}getHeaders(){if(this.clientOptions.httpOptions&&this.clientOptions.httpOptions.headers!==void 0)return this.clientOptions.httpOptions.headers;else throw Error("Headers are not set.")}getRequestUrlInternal(Z){if(!Z||Z.baseUrl===void 0||Z.apiVersion===void 0)throw Error("HTTP options are not correctly set.");let Q=[Z.baseUrl.endsWith("/")?Z.baseUrl.slice(0,-1):Z.baseUrl];if(Z.apiVersion&&Z.apiVersion!=="")Q.push(Z.apiVersion);return Q.join("/")}getBaseResourcePath(){return`projects/${this.clientOptions.project}/locations/${this.clientOptions.location}`}getApiKey(){return this.clientOptions.apiKey}getWebsocketBaseUrl(){let Z=this.getBaseUrl(),$=new URL(Z);return $.protocol=$.protocol=="http:"?"ws":"wss",$.toString()}setBaseUrl(Z){if(this.clientOptions.httpOptions)this.clientOptions.httpOptions.baseUrl=Z;else throw Error("HTTP options are not correctly set.")}constructUrl(Z,$,Q){let Y=[this.getRequestUrlInternal($)];if(Q)Y.push(this.getBaseResourcePath());if(Z!=="")Y.push(Z);return new URL(`${Y.join("/")}`)}shouldPrependVertexProjectPath(Z,$){if($.baseUrl&&$.baseUrlResourceScope===i6.COLLECTION)return!1;if(this.clientOptions.apiKey)return!1;if(!this.clientOptions.vertexai)return!1;if(Z.path.startsWith("projects/"))return!1;if(Z.httpMethod==="GET"&&Z.path.startsWith("publishers/google/models"))return!1;return!0}async request(Z){let $=this.clientOptions.httpOptions;if(Z.httpOptions)$=this.patchHttpOptions(this.clientOptions.httpOptions,Z.httpOptions);let Q=this.shouldPrependVertexProjectPath(Z,$),Y=this.constructUrl(Z.path,$,Q);if(Z.queryParams)for(let[J,K]of Object.entries(Z.queryParams))Y.searchParams.append(J,String(K));let W={};if(Z.httpMethod==="GET"){if(Z.body&&Z.body!=="{}")throw Error("Request body should be empty for GET request, but got non empty request body")}else W.body=Z.body;return W=await this.includeExtraHttpOptionsToRequestInit(W,$,Y.toString(),Z.abortSignal),this.unaryApiCall(Y,W,Z.httpMethod)}patchHttpOptions(Z,$){let Q=JSON.parse(JSON.stringify(Z));for(let[Y,W]of Object.entries($))if(typeof W==="object")Q[Y]=Object.assign(Object.assign({},Q[Y]),W);else if(W!==void 0)Q[Y]=W;return Q}async requestStream(Z){let $=this.clientOptions.httpOptions;if(Z.httpOptions)$=this.patchHttpOptions(this.clientOptions.httpOptions,Z.httpOptions);let Q=this.shouldPrependVertexProjectPath(Z,$),Y=this.constructUrl(Z.path,$,Q);if(!Y.searchParams.has("alt")||Y.searchParams.get("alt")!=="sse")Y.searchParams.set("alt","sse");let W={};return W.body=Z.body,W=await this.includeExtraHttpOptionsToRequestInit(W,$,Y.toString(),Z.abortSignal),this.streamApiCall(Y,W,Z.httpMethod)}async includeExtraHttpOptionsToRequestInit(Z,$,Q,Y){if($&&$.timeout||Y){let W=new AbortController,J=W.signal;if($.timeout&&($===null||$===void 0?void 0:$.timeout)>0){let K=setTimeout(()=>W.abort(),$.timeout);if(K&&typeof K.unref==="function")K.unref()}if(Y)Y.addEventListener("abort",()=>{W.abort()});Z.signal=J}if($&&$.extraBody!==null)zG(Z,$.extraBody);return Z.headers=await this.getHeadersInternal($,Q),Z}async unaryApiCall(Z,$,Q){return this.apiCall(Z.toString(),Object.assign(Object.assign({},$),{method:Q})).then(async(Y)=>{return await n5(Y),new I4(Y)}).catch((Y)=>{if(Y instanceof Error)throw Y;else throw Error(JSON.stringify(Y))})}async streamApiCall(Z,$,Q){return this.apiCall(Z.toString(),Object.assign(Object.assign({},$),{method:Q})).then(async(Y)=>{return await n5(Y),this.processStreamResponse(Y)}).catch((Y)=>{if(Y instanceof Error)throw Y;else throw Error(JSON.stringify(Y))})}processStreamResponse(Z){return m0(this,arguments,function*(){var Q;let Y=(Q=Z===null||Z===void 0?void 0:Z.body)===null||Q===void 0?void 0:Q.getReader(),W=new TextDecoder("utf-8");if(!Y)throw Error("Response body is empty");try{let J="",K="data:",q=[`
32
-
33
- `,"\r\r",`\r
34
- \r
35
- `];while(!0){let{done:H,value:w}=yield r(Y.read());if(H){if(J.trim().length>0)throw Error("Incomplete JSON segment at the end");break}let F=W.decode(w,{stream:!0});try{let D=JSON.parse(F);if("error"in D){let T=JSON.parse(JSON.stringify(D.error)),I=T.status,P=T.code,O=`got status: ${I}. ${JSON.stringify(D)}`;if(P>=400&&P<600)throw new Q8({message:O,status:P})}}catch(D){if(D.name==="ApiError")throw D}J+=F;let z=-1,G=0;while(!0){z=-1,G=0;for(let I of q){let P=J.indexOf(I);if(P!==-1&&(z===-1||P<z))z=P,G=I.length}if(z===-1)break;let D=J.substring(0,z);J=J.substring(z+G);let T=D.trim();if(T.startsWith(K)){let I=T.substring(K.length).trim();try{let P=new Response(I,{headers:Z===null||Z===void 0?void 0:Z.headers,status:Z===null||Z===void 0?void 0:Z.status,statusText:Z===null||Z===void 0?void 0:Z.statusText});yield yield r(new I4(P))}catch(P){throw Error(`exception parsing stream chunk ${I}. ${P}`)}}}}}finally{Y.releaseLock()}})}async apiCall(Z,$){var Q;if(!this.clientOptions.httpOptions||!this.clientOptions.httpOptions.retryOptions)return fetch(Z,$);let Y=this.clientOptions.httpOptions.retryOptions;return e1.default(async()=>{let J=await fetch(Z,$);if(J.ok)return J;if(wG.includes(J.status))throw Error(`Retryable HTTP Error: ${J.statusText}`);throw new e1.AbortError(`Non-retryable exception ${J.statusText} sending request`)},{retries:((Q=Y.attempts)!==null&&Q!==void 0?Q:HG)-1})}getDefaultHeaders(){let Z={},$=JG+" "+this.clientOptions.userAgentExtra;return Z[WG]=$,Z[JZ]=$,Z[QG]="application/json",Z}async getHeadersInternal(Z,$){let Q=new Headers;if(Z&&Z.headers){for(let[Y,W]of Object.entries(Z.headers))Q.append(Y,W);if(Z.timeout&&Z.timeout>0)Q.append(YG,String(Math.ceil(Z.timeout/1000)))}return await this.clientOptions.auth.addAuthHeaders(Q,$),Q}getFileName(Z){var $;let Q="";if(typeof Z==="string")Q=Z.replace(/[/\\]+$/,""),Q=($=Q.split(/[/\\]/).pop())!==null&&$!==void 0?$:"";return Q}async uploadFile(Z,$){var Q;let Y={};if($!=null)Y.mimeType=$.mimeType,Y.name=$.name,Y.displayName=$.displayName;if(Y.name&&!Y.name.startsWith("files/"))Y.name=`files/${Y.name}`;let W=this.clientOptions.uploader,J=await W.stat(Z);Y.sizeBytes=String(J.size);let K=(Q=$===null||$===void 0?void 0:$.mimeType)!==null&&Q!==void 0?Q:J.type;if(K===void 0||K==="")throw Error("Can not determine mimeType. Please provide mimeType in the config.");Y.mimeType=K;let q={file:Y},H=this.getFileName(Z),w=u("upload/v1beta/files",q._url),F=await this.fetchUploadUrl(w,Y.sizeBytes,Y.mimeType,H,q,$===null||$===void 0?void 0:$.httpOptions);return W.upload(Z,F,this)}async uploadFileToFileSearchStore(Z,$,Q){var Y;let W=this.clientOptions.uploader,J=await W.stat($),K=String(J.size),q=(Y=Q===null||Q===void 0?void 0:Q.mimeType)!==null&&Y!==void 0?Y:J.type;if(q===void 0||q==="")throw Error("Can not determine mimeType. Please provide mimeType in the config.");let H=`upload/v1beta/${Z}:uploadToFileSearchStore`,w=this.getFileName($),F={};if(Q!=null)tV(Q,F);let z=await this.fetchUploadUrl(H,K,q,w,F,Q===null||Q===void 0?void 0:Q.httpOptions);return W.uploadToFileSearchStore($,z,this)}async downloadFile(Z){await this.clientOptions.downloader.download(Z,this)}async fetchUploadUrl(Z,$,Q,Y,W,J){var K;let q={};if(J)q=J;else q={apiVersion:"",headers:Object.assign({"Content-Type":"application/json","X-Goog-Upload-Protocol":"resumable","X-Goog-Upload-Command":"start","X-Goog-Upload-Header-Content-Length":`${$}`,"X-Goog-Upload-Header-Content-Type":`${Q}`},Y?{"X-Goog-Upload-File-Name":Y}:{})};let H=await this.request({path:Z,body:JSON.stringify(W),httpMethod:"POST",httpOptions:q});if(!H||!(H===null||H===void 0?void 0:H.headers))throw Error("Server did not return an HttpResponse or the returned HttpResponse did not have headers.");let w=(K=H===null||H===void 0?void 0:H.headers)===null||K===void 0?void 0:K["x-goog-upload-url"];if(w===void 0)throw Error("Failed to get upload url. Server did not return the x-google-upload-url in the headers");return w}}async function n5(Z){var $;if(Z===void 0)throw Error("response is undefined");if(!Z.ok){let Q=Z.status,Y;if(($=Z.headers.get("content-type"))===null||$===void 0?void 0:$.includes("application/json"))Y=await Z.json();else Y={error:{message:await Z.text(),code:Z.status,status:Z.statusText}};let W=JSON.stringify(Y);if(Q>=400&&Q<600)throw new Q8({message:W,status:Q});throw Error(W)}}function zG(Z,$){if(!$||Object.keys($).length===0)return;if(Z.body instanceof Blob){console.warn("includeExtraBodyToRequestInit: extraBody provided but current request body is a Blob. extraBody will be ignored as merging is not supported for Blob bodies.");return}let Q={};if(typeof Z.body==="string"&&Z.body.length>0)try{let J=JSON.parse(Z.body);if(typeof J==="object"&&J!==null&&!Array.isArray(J))Q=J;else{console.warn("includeExtraBodyToRequestInit: Original request body is valid JSON but not a non-array object. Skip applying extraBody to the request body.");return}}catch(J){console.warn("includeExtraBodyToRequestInit: Original request body is not valid JSON. Skip applying extraBody to the request body.");return}function Y(J,K){let q=Object.assign({},J);for(let H in K)if(Object.prototype.hasOwnProperty.call(K,H)){let w=K[H],F=q[H];if(w&&typeof w==="object"&&!Array.isArray(w)&&F&&typeof F==="object"&&!Array.isArray(F))q[H]=Y(F,w);else{if(F&&w&&typeof F!==typeof w)console.warn(`includeExtraBodyToRequestInit:deepMerge: Type mismatch for key "${H}". Original type: ${typeof F}, New type: ${typeof w}. Overwriting.`);q[H]=w}}return q}let W=Y(Q,$);Z.body=JSON.stringify(W)}var FG="mcp_used/unknown",GG=!1;function ZJ(Z){for(let $ of Z){if(UG($))return!0;if(typeof $==="object"&&"inputSchema"in $)return!0}return GG}function $J(Z){var $;let Q=($=Z[JZ])!==null&&$!==void 0?$:"";Z[JZ]=(Q+` ${FG}`).trimStart()}function UG(Z){return Z!==null&&typeof Z==="object"&&Z instanceof TZ}function DG(Z){return m0(this,arguments,function*(Q,Y=100){let W=void 0,J=0;while(J<Y){let K=yield r(Q.listTools({cursor:W}));for(let q of K.tools)yield yield r(q),J++;if(!K.nextCursor)break;W=K.nextCursor}})}class TZ{constructor(Z=[],$){this.mcpTools=[],this.functionNameToMcpClient={},this.mcpClients=Z,this.config=$}static create(Z,$){return new TZ(Z,$)}async initialize(){var Z,$,Q,Y;if(this.mcpTools.length>0)return;let W={},J=[];for(let w of this.mcpClients)try{for(var K=!0,q=($=void 0,u0(DG(w))),H;H=await q.next(),Z=H.done,!Z;K=!0){Y=H.value,K=!1;let F=Y;J.push(F);let z=F.name;if(W[z])throw Error(`Duplicate function name ${z} found in MCP tools. Please ensure function names are unique.`);W[z]=w}}catch(F){$={error:F}}finally{try{if(!K&&!Z&&(Q=q.return))await Q.call(q)}finally{if($)throw $.error}}this.mcpTools=J,this.functionNameToMcpClient=W}async tool(){return await this.initialize(),kw(this.mcpTools,this.config)}async callTool(Z){await this.initialize();let $=[];for(let Q of Z)if(Q.name in this.functionNameToMcpClient){let Y=this.functionNameToMcpClient[Q.name],W=void 0;if(this.config.timeout)W={timeout:this.config.timeout};let J=await Y.callTool({name:Q.name,arguments:Q.args},void 0,W);$.push({functionResponse:{name:Q.name,response:J.isError?{error:J}:J}})}return $}}async function MG(Z,$,Q){let Y=new PV,W;if(Q.data instanceof Blob)W=JSON.parse(await Q.data.text());else W=JSON.parse(Q.data);Object.assign(Y,W),$(Y)}class QJ{constructor(Z,$,Q){this.apiClient=Z,this.auth=$,this.webSocketFactory=Q}async connect(Z){var $,Q;if(this.apiClient.isVertexAI())throw Error("Live music is not supported for Vertex AI.");console.warn("Live music generation is experimental and may change in future versions.");let Y=this.apiClient.getWebsocketBaseUrl(),W=this.apiClient.getApiVersion(),J=NG(this.apiClient.getDefaultHeaders()),K=this.apiClient.getApiKey(),q=`${Y}/ws/google.ai.generativelanguage.${W}.GenerativeService.BidiGenerateMusic?key=${K}`,H=()=>{},w=new Promise((y)=>{H=y}),F=Z.callbacks,z=function(){H({})},G=this.apiClient,D={onopen:z,onmessage:(y)=>{MG(G,F.onmessage,y)},onerror:($=F===null||F===void 0?void 0:F.onerror)!==null&&$!==void 0?$:function(y){},onclose:(Q=F===null||F===void 0?void 0:F.onclose)!==null&&Q!==void 0?Q:function(y){}},T=this.webSocketFactory.create(q,IG(J),D);T.connect(),await w;let O={setup:{model:Z0(this.apiClient,Z.model)}};return T.send(JSON.stringify(O)),new YJ(T,this.apiClient)}}class YJ{constructor(Z,$){this.conn=Z,this.apiClient=$}async setWeightedPrompts(Z){if(!Z.weightedPrompts||Object.keys(Z.weightedPrompts).length===0)throw Error("Weighted prompts must be set and contain at least one entry.");let $=f3(Z);this.conn.send(JSON.stringify({clientContent:$}))}async setMusicGenerationConfig(Z){if(!Z.musicGenerationConfig)Z.musicGenerationConfig={};let $=x3(Z);this.conn.send(JSON.stringify($))}sendPlaybackControl(Z){let $={playbackControl:Z};this.conn.send(JSON.stringify($))}play(){this.sendPlaybackControl(h4.PLAY)}pause(){this.sendPlaybackControl(h4.PAUSE)}stop(){this.sendPlaybackControl(h4.STOP)}resetContext(){this.sendPlaybackControl(h4.RESET_CONTEXT)}close(){this.conn.close()}}function IG(Z){let $={};return Z.forEach((Q,Y)=>{$[Y]=Q}),$}function NG(Z){let $=new Headers;for(let[Q,Y]of Object.entries(Z))$.append(Q,Y);return $}var TG="FunctionResponse request must have an `id` field from the response of a ToolCall.FunctionalCalls in Google AI.";async function BG(Z,$,Q){let Y=new AV,W;if(Q.data instanceof Blob)W=await Q.data.text();else if(Q.data instanceof ArrayBuffer)W=new TextDecoder().decode(Q.data);else W=Q.data;let J=JSON.parse(W);if(Z.isVertexAI()){let K=m3(J);Object.assign(Y,K)}else Object.assign(Y,J);$(Y)}class WJ{constructor(Z,$,Q){this.apiClient=Z,this.auth=$,this.webSocketFactory=Q,this.music=new QJ(this.apiClient,this.auth,this.webSocketFactory)}async connect(Z){var $,Q,Y,W,J,K;if(Z.config&&Z.config.httpOptions)throw Error("The Live module does not support httpOptions at request-level in LiveConnectConfig yet. Please use the client-level httpOptions configuration instead.");let q=this.apiClient.getWebsocketBaseUrl(),H=this.apiClient.getApiVersion(),w,F=this.apiClient.getHeaders();if(Z.config&&Z.config.tools&&ZJ(Z.config.tools))$J(F);let z=AG(F);if(this.apiClient.isVertexAI()){let h=this.apiClient.getProject(),_=this.apiClient.getLocation(),n=this.apiClient.getApiKey(),o=!!h&&!!_||!!n;if(this.apiClient.getCustomBaseUrl()&&!o)w=q;else w=`${q}/ws/google.cloud.aiplatform.${H}.LlmBidiService/BidiGenerateContent`,await this.auth.addAuthHeaders(z,w)}else{let h=this.apiClient.getApiKey(),_="BidiGenerateContent",n="key";if(h===null||h===void 0?void 0:h.startsWith("auth_tokens/")){if(console.warn("Warning: Ephemeral token support is experimental and may change in future versions."),H!=="v1alpha")console.warn("Warning: The SDK's ephemeral token support is in v1alpha only. Please use const ai = new GoogleGenAI({apiKey: token.name, httpOptions: { apiVersion: 'v1alpha' }}); before session connection.");_="BidiGenerateContentConstrained",n="access_token"}w=`${q}/ws/google.ai.generativelanguage.${H}.GenerativeService.${_}?${n}=${h}`}let G=()=>{},D=new Promise((h)=>{G=h}),T=Z.callbacks,I=function(){var h;(h=T===null||T===void 0?void 0:T.onopen)===null||h===void 0||h.call(T),G({})},P=this.apiClient,O={onopen:I,onmessage:(h)=>{BG(P,T.onmessage,h)},onerror:($=T===null||T===void 0?void 0:T.onerror)!==null&&$!==void 0?$:function(h){},onclose:(Q=T===null||T===void 0?void 0:T.onclose)!==null&&Q!==void 0?Q:function(h){}},y=this.webSocketFactory.create(w,RG(z),O);y.connect(),await D;let x=Z0(this.apiClient,Z.model);if(this.apiClient.isVertexAI()&&x.startsWith("publishers/")){let h=this.apiClient.getProject(),_=this.apiClient.getLocation();if(h&&_)x=`projects/${h}/locations/${_}/`+x}let m={};if(this.apiClient.isVertexAI()&&((Y=Z.config)===null||Y===void 0?void 0:Y.responseModalities)===void 0)if(Z.config===void 0)Z.config={responseModalities:[a1.AUDIO]};else Z.config.responseModalities=[a1.AUDIO];if((W=Z.config)===null||W===void 0?void 0:W.generationConfig)console.warn("Setting `LiveConnectConfig.generation_config` is deprecated, please set the fields on `LiveConnectConfig` directly. This will become an error in a future version (not before Q3 2025).");let f=(K=(J=Z.config)===null||J===void 0?void 0:J.tools)!==null&&K!==void 0?K:[],S=[];for(let h of f)if(this.isCallableTool(h)){let _=h;S.push(await _.tool())}else S.push(h);if(S.length>0)Z.config.tools=S;let d={model:x,config:Z.config,callbacks:Z.callbacks};if(this.apiClient.isVertexAI())m=y3(this.apiClient,d);else m=k3(this.apiClient,d);return delete m.config,y.send(JSON.stringify(m)),new VJ(y,this.apiClient)}isCallableTool(Z){return"callTool"in Z&&typeof Z.callTool==="function"}}var LG={turnComplete:!0};class VJ{constructor(Z,$){this.conn=Z,this.apiClient=$}tLiveClientContent(Z,$){if($.turns!==null&&$.turns!==void 0){let Q=[];try{if(Q=B0($.turns),!Z.isVertexAI())Q=Q.map((Y)=>J1(Y))}catch(Y){throw Error(`Failed to parse client content "turns", type: '${typeof $.turns}'`)}return{clientContent:{turns:Q,turnComplete:$.turnComplete}}}return{clientContent:{turnComplete:$.turnComplete}}}tLiveClienttToolResponse(Z,$){let Q=[];if($.functionResponses==null)throw Error("functionResponses is required.");if(!Array.isArray($.functionResponses))Q=[$.functionResponses];else Q=$.functionResponses;if(Q.length===0)throw Error("functionResponses is required.");for(let W of Q){if(typeof W!=="object"||W===null||!("name"in W)||!("response"in W))throw Error(`Could not parse function response, type '${typeof W}'.`);if(!Z.isVertexAI()&&!("id"in W))throw Error(TG)}return{toolResponse:{functionResponses:Q}}}sendClientContent(Z){Z=Object.assign(Object.assign({},LG),Z);let $=this.tLiveClientContent(this.apiClient,Z);this.conn.send(JSON.stringify($))}sendRealtimeInput(Z){let $={};if(this.apiClient.isVertexAI())$={realtimeInput:b3(Z)};else $={realtimeInput:g3(Z)};this.conn.send(JSON.stringify($))}sendToolResponse(Z){if(Z.functionResponses==null)throw Error("Tool response parameters are required.");let $=this.tLiveClienttToolResponse(this.apiClient,Z);this.conn.send(JSON.stringify($))}close(){this.conn.close()}}function RG(Z){let $={};return Z.forEach((Q,Y)=>{$[Y]=Q}),$}function AG(Z){let $=new Headers;for(let[Q,Y]of Object.entries(Z))$.append(Q,Y);return $}var r5=10;function s5(Z){var $,Q,Y;if(($=Z===null||Z===void 0?void 0:Z.automaticFunctionCalling)===null||$===void 0?void 0:$.disable)return!0;let W=!1;for(let K of(Q=Z===null||Z===void 0?void 0:Z.tools)!==null&&Q!==void 0?Q:[])if(x4(K)){W=!0;break}if(!W)return!0;let J=(Y=Z===null||Z===void 0?void 0:Z.automaticFunctionCalling)===null||Y===void 0?void 0:Y.maximumRemoteCalls;if(J&&(J<0||!Number.isInteger(J))||J==0)return console.warn("Invalid maximumRemoteCalls value provided for automatic function calling. Disabled automatic function calling. Please provide a valid integer value greater than 0. maximumRemoteCalls provided:",J),!0;return!1}function x4(Z){return"callTool"in Z&&typeof Z.callTool==="function"}function PG(Z){var $,Q,Y;return(Y=(Q=($=Z.config)===null||$===void 0?void 0:$.tools)===null||Q===void 0?void 0:Q.some((W)=>x4(W)))!==null&&Y!==void 0?Y:!1}function o5(Z){var $;let Q=[];if(!(($=Z===null||Z===void 0?void 0:Z.config)===null||$===void 0?void 0:$.tools))return Q;return Z.config.tools.forEach((Y,W)=>{if(x4(Y))return;let J=Y;if(J.functionDeclarations&&J.functionDeclarations.length>0)Q.push(W)}),Q}function t5(Z){var $;return!(($=Z===null||Z===void 0?void 0:Z.automaticFunctionCalling)===null||$===void 0?void 0:$.ignoreCallHistory)}class JJ extends a0{constructor(Z){super();this.apiClient=Z,this.embedContent=async($)=>{if(!this.apiClient.isVertexAI()){if($.model.includes("gemini-embedding-2"))$.contents=B0($.contents);return await this.embedContentInternal($)}if($.model.includes("gemini")&&$.model!=="gemini-embedding-001"||$.model.includes("maas")){let Y=B0($.contents);if(Y.length>1)throw Error("The embedContent API for this model only supports one content at a time.");let W=Object.assign(Object.assign({},$),{content:Y[0],embeddingApiType:n1.EMBED_CONTENT});return await this.embedContentInternal(W)}else{let Y=Object.assign(Object.assign({},$),{embeddingApiType:n1.PREDICT});return await this.embedContentInternal(Y)}},this.generateContent=async($)=>{var Q,Y,W,J,K;let q=await this.processParamsMaybeAddMcpUsage($);if(this.maybeMoveToResponseJsonSchem($),!PG($)||s5($.config))return await this.generateContentInternal(q);let H=o5($);if(H.length>0){let T=H.map((I)=>`tools[${I}]`).join(", ");throw Error(`Automatic function calling with CallableTools (or MCP objects) and basic FunctionDeclarations is not yet supported. Incompatible tools found at ${T}.`)}let w,F,z=B0(q.contents),G=(W=(Y=(Q=q.config)===null||Q===void 0?void 0:Q.automaticFunctionCalling)===null||Y===void 0?void 0:Y.maximumRemoteCalls)!==null&&W!==void 0?W:r5,D=0;while(D<G){if(w=await this.generateContentInternal(q),!w.functionCalls||w.functionCalls.length===0)break;let T=w.candidates[0].content,I=[];for(let P of(K=(J=$.config)===null||J===void 0?void 0:J.tools)!==null&&K!==void 0?K:[])if(x4(P)){let y=await P.callTool(w.functionCalls);I.push(...y)}if(D++,F={role:"user",parts:I},q.contents=B0(q.contents),q.contents.push(T),q.contents.push(F),t5(q.config))z.push(T),z.push(F)}if(t5(q.config))w.automaticFunctionCallingHistory=z;return w},this.generateContentStream=async($)=>{var Q,Y,W,J,K;if(this.maybeMoveToResponseJsonSchem($),s5($.config)){let F=await this.processParamsMaybeAddMcpUsage($);return await this.generateContentStreamInternal(F)}let q=o5($);if(q.length>0){let F=q.map((z)=>`tools[${z}]`).join(", ");throw Error(`Incompatible tools found at ${F}. Automatic function calling with CallableTools (or MCP objects) and basic FunctionDeclarations" is not yet supported.`)}let H=(W=(Y=(Q=$===null||$===void 0?void 0:$.config)===null||Q===void 0?void 0:Q.toolConfig)===null||Y===void 0?void 0:Y.functionCallingConfig)===null||W===void 0?void 0:W.streamFunctionCallArguments,w=(K=(J=$===null||$===void 0?void 0:$.config)===null||J===void 0?void 0:J.automaticFunctionCalling)===null||K===void 0?void 0:K.disable;if(H&&!w)throw Error("Running in streaming mode with 'streamFunctionCallArguments' enabled, this feature is not compatible with automatic function calling (AFC). Please set 'config.automaticFunctionCalling.disable' to true to disable AFC or leave 'config.toolConfig.functionCallingConfig.streamFunctionCallArguments' to be undefined or set to false to disable streaming function call arguments feature.");return await this.processAfcStream($)},this.generateImages=async($)=>{return await this.generateImagesInternal($).then((Q)=>{var Y;let W,J=[];if(Q===null||Q===void 0?void 0:Q.generatedImages)for(let q of Q.generatedImages)if(q&&(q===null||q===void 0?void 0:q.safetyAttributes)&&((Y=q===null||q===void 0?void 0:q.safetyAttributes)===null||Y===void 0?void 0:Y.contentType)==="Positive Prompt")W=q===null||q===void 0?void 0:q.safetyAttributes;else J.push(q);let K;if(W)K={generatedImages:J,positivePromptSafetyAttributes:W,sdkHttpResponse:Q.sdkHttpResponse};else K={generatedImages:J,sdkHttpResponse:Q.sdkHttpResponse};return K})},this.list=async($)=>{var Q;let J={config:Object.assign(Object.assign({},{queryBase:!0}),$===null||$===void 0?void 0:$.config)};if(this.apiClient.isVertexAI()){if(!J.config.queryBase)if((Q=J.config)===null||Q===void 0?void 0:Q.filter)throw Error("Filtering tuned models list for Gemini Enterprise Agent Platform (previously known as Vertex AI) is not currently supported");else J.config.filter="labels.tune-type:*"}return new q4(e0.PAGED_ITEM_MODELS,(K)=>this.listInternal(K),await this.listInternal(J),J)},this.editImage=async($)=>{let Q={model:$.model,prompt:$.prompt,referenceImages:[],config:$.config};if($.referenceImages){if($.referenceImages)Q.referenceImages=$.referenceImages.map((Y)=>Y.toReferenceImageAPI())}return await this.editImageInternal(Q)},this.upscaleImage=async($)=>{let Q={numberOfImages:1,mode:"upscale"};if($.config)Q=Object.assign(Object.assign({},Q),$.config);let Y={model:$.model,image:$.image,upscaleFactor:$.upscaleFactor,config:Q};return await this.upscaleImageInternal(Y)},this.generateVideos=async($)=>{var Q,Y,W,J,K,q;if(($.prompt||$.image||$.video)&&$.source)throw Error("Source and prompt/image/video are mutually exclusive. Please only use source.");if(!this.apiClient.isVertexAI()){if(((Q=$.video)===null||Q===void 0?void 0:Q.uri)&&((Y=$.video)===null||Y===void 0?void 0:Y.videoBytes))$.video={uri:$.video.uri,mimeType:$.video.mimeType};else if(((J=(W=$.source)===null||W===void 0?void 0:W.video)===null||J===void 0?void 0:J.uri)&&((q=(K=$.source)===null||K===void 0?void 0:K.video)===null||q===void 0?void 0:q.videoBytes))$.source.video={uri:$.source.video.uri,mimeType:$.source.video.mimeType}}return await this.generateVideosInternal($)}}maybeMoveToResponseJsonSchem(Z){if(Z.config&&Z.config.responseSchema){if(!Z.config.responseJsonSchema){if(Object.keys(Z.config.responseSchema).includes("$schema"))Z.config.responseJsonSchema=Z.config.responseSchema,delete Z.config.responseSchema}}return}async processParamsMaybeAddMcpUsage(Z){var $,Q,Y;let W=($=Z.config)===null||$===void 0?void 0:$.tools;if(!W)return Z;let J=await Promise.all(W.map(async(q)=>{if(x4(q))return await q.tool();return q})),K={model:Z.model,contents:Z.contents,config:Object.assign(Object.assign({},Z.config),{tools:J})};if(K.config.tools=J,Z.config&&Z.config.tools&&ZJ(Z.config.tools)){let q=(Y=(Q=Z.config.httpOptions)===null||Q===void 0?void 0:Q.headers)!==null&&Y!==void 0?Y:{},H=Object.assign({},q);if(Object.keys(H).length===0)H=this.apiClient.getDefaultHeaders();$J(H),K.config.httpOptions=Object.assign(Object.assign({},Z.config.httpOptions),{headers:H})}return K}async initAfcToolsMap(Z){var $,Q,Y;let W=new Map;for(let J of(Q=($=Z.config)===null||$===void 0?void 0:$.tools)!==null&&Q!==void 0?Q:[])if(x4(J)){let K=J,q=await K.tool();for(let H of(Y=q.functionDeclarations)!==null&&Y!==void 0?Y:[]){if(!H.name)throw Error("Function declaration name is required.");if(W.has(H.name))throw Error(`Duplicate tool declaration name: ${H.name}`);W.set(H.name,K)}}return W}async processAfcStream(Z){var $,Q,Y;let W=(Y=(Q=($=Z.config)===null||$===void 0?void 0:$.automaticFunctionCalling)===null||Q===void 0?void 0:Q.maximumRemoteCalls)!==null&&Y!==void 0?Y:r5,J=!1,K=0,q=await this.initAfcToolsMap(Z);return function(H,w,F){return m0(this,arguments,function*(){var z,G,D,T,I,P;while(K<W){if(J)K++,J=!1;let m=yield r(H.processParamsMaybeAddMcpUsage(F)),f=yield r(H.generateContentStreamInternal(m)),S=[],d=[];try{for(var O=!0,y=(G=void 0,u0(f)),x;x=yield r(y.next()),z=x.done,!z;O=!0){T=x.value,O=!1;let h=T;if(yield yield r(h),h.candidates&&((I=h.candidates[0])===null||I===void 0?void 0:I.content)){d.push(h.candidates[0].content);for(let _ of(P=h.candidates[0].content.parts)!==null&&P!==void 0?P:[])if(K<W&&_.functionCall){if(!_.functionCall.name)throw Error("Function call name was not returned by the model.");if(!w.has(_.functionCall.name))throw Error(`Automatic function calling was requested, but not all the tools the model used implement the CallableTool interface. Available tools: ${w.keys()}, mising tool: ${_.functionCall.name}`);else{let n=yield r(w.get(_.functionCall.name).callTool([_.functionCall]));S.push(...n)}}}}}catch(h){G={error:h}}finally{try{if(!O&&!z&&(D=y.return))yield r(D.call(y))}finally{if(G)throw G.error}}if(S.length>0){J=!0;let h=new _4;h.candidates=[{content:{role:"user",parts:S}}],yield yield r(h);let _=[];_.push(...d),_.push({role:"user",parts:S});let n=B0(F.contents).concat(_);F.contents=n}else break}})}(this,q,Z)}async generateContentInternal(Z){var $,Q,Y,W;let J,K="",q={};if(this.apiClient.isVertexAI()){let H=p5(this.apiClient,Z);return K=u("{model}:generateContent",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"POST",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((w)=>{return w.json().then((F)=>{let z=F;return z.sdkHttpResponse={headers:w.headers},z})}),J.then((w)=>{let F=a5(w),z=new _4;return Object.assign(z,F),z})}else{let H=c5(this.apiClient,Z);return K=u("{model}:generateContent",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"POST",httpOptions:(Y=Z.config)===null||Y===void 0?void 0:Y.httpOptions,abortSignal:(W=Z.config)===null||W===void 0?void 0:W.abortSignal}).then((w)=>{return w.json().then((F)=>{let z=F;return z.sdkHttpResponse={headers:w.headers},z})}),J.then((w)=>{let F=i5(w),z=new _4;return Object.assign(z,F),z})}}async generateContentStreamInternal(Z){var $,Q,Y,W;let J,K="",q={};if(this.apiClient.isVertexAI()){let H=p5(this.apiClient,Z);return K=u("{model}:streamGenerateContent?alt=sse",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.requestStream({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"POST",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}),J.then(function(F){return m0(this,arguments,function*(){var z,G,D,T;try{for(var I=!0,P=u0(F),O;O=yield r(P.next()),z=O.done,!z;I=!0){T=O.value,I=!1;let y=T,x=a5(yield r(y.json()),Z);x.sdkHttpResponse={headers:y.headers};let m=new _4;Object.assign(m,x),yield yield r(m)}}catch(y){G={error:y}}finally{try{if(!I&&!z&&(D=P.return))yield r(D.call(P))}finally{if(G)throw G.error}}})})}else{let H=c5(this.apiClient,Z);return K=u("{model}:streamGenerateContent?alt=sse",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.requestStream({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"POST",httpOptions:(Y=Z.config)===null||Y===void 0?void 0:Y.httpOptions,abortSignal:(W=Z.config)===null||W===void 0?void 0:W.abortSignal}),J.then(function(F){return m0(this,arguments,function*(){var z,G,D,T;try{for(var I=!0,P=u0(F),O;O=yield r(P.next()),z=O.done,!z;I=!0){T=O.value,I=!1;let y=T,x=i5(yield r(y.json()),Z);x.sdkHttpResponse={headers:y.headers};let m=new _4;Object.assign(m,x),yield yield r(m)}}catch(y){G={error:y}}finally{try{if(!I&&!z&&(D=P.return))yield r(D.call(P))}finally{if(G)throw G.error}}})})}}async embedContentInternal(Z){var $,Q,Y,W;let J,K="",q={};if(this.apiClient.isVertexAI()){let H=TF(this.apiClient,Z,Z),w=xw(Z.model)?"{model}:embedContent":"{model}:predict";return K=u(w,H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"POST",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((F)=>{return F.json().then((z)=>{let G=z;return G.sdkHttpResponse={headers:F.headers},G})}),J.then((F)=>{let z=LF(F,Z),G=new a6;return Object.assign(G,z),G})}else{let H=NF(this.apiClient,Z);return K=u("{model}:batchEmbedContents",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"POST",httpOptions:(Y=Z.config)===null||Y===void 0?void 0:Y.httpOptions,abortSignal:(W=Z.config)===null||W===void 0?void 0:W.abortSignal}).then((w)=>{return w.json().then((F)=>{let z=F;return z.sdkHttpResponse={headers:w.headers},z})}),J.then((w)=>{let F=BF(w),z=new a6;return Object.assign(z,F),z})}}async generateImagesInternal(Z){var $,Q,Y,W;let J,K="",q={};if(this.apiClient.isVertexAI()){let H=hF(this.apiClient,Z);return K=u("{model}:predict",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"POST",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((w)=>{return w.json().then((F)=>{let z=F;return z.sdkHttpResponse={headers:w.headers},z})}),J.then((w)=>{let F=yF(w),z=new n6;return Object.assign(z,F),z})}else{let H=_F(this.apiClient,Z);return K=u("{model}:predict",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"POST",httpOptions:(Y=Z.config)===null||Y===void 0?void 0:Y.httpOptions,abortSignal:(W=Z.config)===null||W===void 0?void 0:W.abortSignal}).then((w)=>{return w.json().then((F)=>{let z=F;return z.sdkHttpResponse={headers:w.headers},z})}),J.then((w)=>{let F=kF(w),z=new n6;return Object.assign(z,F),z})}}async editImageInternal(Z){var $,Q;let Y,W="",J={};if(this.apiClient.isVertexAI()){let K=UF(this.apiClient,Z);return W=u("{model}:predict",K._url),J=K._query,delete K._url,delete K._query,Y=this.apiClient.request({path:W,queryParams:J,body:JSON.stringify(K),httpMethod:"POST",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((q)=>{return q.json().then((H)=>{let w=H;return w.sdkHttpResponse={headers:q.headers},w})}),Y.then((q)=>{let H=DF(q),w=new wV;return Object.assign(w,H),w})}else throw Error("This method is only supported by the Gemini Enterprise Agent Platform (previously known as Vertex AI).")}async upscaleImageInternal(Z){var $,Q;let Y,W="",J={};if(this.apiClient.isVertexAI()){let K=y2(this.apiClient,Z);return W=u("{model}:predict",K._url),J=K._query,delete K._url,delete K._query,Y=this.apiClient.request({path:W,queryParams:J,body:JSON.stringify(K),httpMethod:"POST",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((q)=>{return q.json().then((H)=>{let w=H;return w.sdkHttpResponse={headers:q.headers},w})}),Y.then((q)=>{let H=x2(q),w=new zV;return Object.assign(w,H),w})}else throw Error("This method is only supported by the Gemini Enterprise Agent Platform (previously known as Vertex AI).")}async recontextImage(Z){var $,Q;let Y,W="",J={};if(this.apiClient.isVertexAI()){let K=U2(this.apiClient,Z);return W=u("{model}:predict",K._url),J=K._query,delete K._url,delete K._query,Y=this.apiClient.request({path:W,queryParams:J,body:JSON.stringify(K),httpMethod:"POST",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((q)=>{return q.json()}),Y.then((q)=>{let H=D2(q),w=new FV;return Object.assign(w,H),w})}else throw Error("This method is only supported by the Gemini Enterprise Agent Platform (previously known as Vertex AI).")}async segmentImage(Z){var $,Q;let Y,W="",J={};if(this.apiClient.isVertexAI()){let K=L2(this.apiClient,Z);return W=u("{model}:predict",K._url),J=K._query,delete K._url,delete K._query,Y=this.apiClient.request({path:W,queryParams:J,body:JSON.stringify(K),httpMethod:"POST",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((q)=>{return q.json()}),Y.then((q)=>{let H=R2(q),w=new GV;return Object.assign(w,H),w})}else throw Error("This method is only supported by the Gemini Enterprise Agent Platform (previously known as Vertex AI).")}async get(Z){var $,Q,Y,W;let J,K="",q={};if(this.apiClient.isVertexAI()){let H=tF(this.apiClient,Z);return K=u("{name}",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"GET",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((w)=>{return w.json()}),J.then((w)=>{return VZ(w)})}else{let H=oF(this.apiClient,Z);return K=u("{name}",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"GET",httpOptions:(Y=Z.config)===null||Y===void 0?void 0:Y.httpOptions,abortSignal:(W=Z.config)===null||W===void 0?void 0:W.abortSignal}).then((w)=>{return w.json()}),J.then((w)=>{return WZ(w)})}}async listInternal(Z){var $,Q,Y,W;let J,K="",q={};if(this.apiClient.isVertexAI()){let H=X2(this.apiClient,Z);return K=u("{models_url}",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"GET",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((w)=>{return w.json().then((F)=>{let z=F;return z.sdkHttpResponse={headers:w.headers},z})}),J.then((w)=>{let F=q2(w),z=new r6;return Object.assign(z,F),z})}else{let H=J2(this.apiClient,Z);return K=u("{models_url}",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"GET",httpOptions:(Y=Z.config)===null||Y===void 0?void 0:Y.httpOptions,abortSignal:(W=Z.config)===null||W===void 0?void 0:W.abortSignal}).then((w)=>{return w.json().then((F)=>{let z=F;return z.sdkHttpResponse={headers:w.headers},z})}),J.then((w)=>{let F=K2(w),z=new r6;return Object.assign(z,F),z})}}async update(Z){var $,Q,Y,W;let J,K="",q={};if(this.apiClient.isVertexAI()){let H=h2(this.apiClient,Z);return K=u("{model}",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"PATCH",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((w)=>{return w.json()}),J.then((w)=>{return VZ(w)})}else{let H=_2(this.apiClient,Z);return K=u("{name}",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"PATCH",httpOptions:(Y=Z.config)===null||Y===void 0?void 0:Y.httpOptions,abortSignal:(W=Z.config)===null||W===void 0?void 0:W.abortSignal}).then((w)=>{return w.json()}),J.then((w)=>{return WZ(w)})}}async delete(Z){var $,Q,Y,W;let J,K="",q={};if(this.apiClient.isVertexAI()){let H=wF(this.apiClient,Z);return K=u("{name}",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"DELETE",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((w)=>{return w.json().then((F)=>{let z=F;return z.sdkHttpResponse={headers:w.headers},z})}),J.then((w)=>{let F=FF(w),z=new s6;return Object.assign(z,F),z})}else{let H=HF(this.apiClient,Z);return K=u("{name}",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"DELETE",httpOptions:(Y=Z.config)===null||Y===void 0?void 0:Y.httpOptions,abortSignal:(W=Z.config)===null||W===void 0?void 0:W.abortSignal}).then((w)=>{return w.json().then((F)=>{let z=F;return z.sdkHttpResponse={headers:w.headers},z})}),J.then((w)=>{let F=zF(w),z=new s6;return Object.assign(z,F),z})}}async countTokens(Z){var $,Q,Y,W;let J,K="",q={};if(this.apiClient.isVertexAI()){let H=XF(this.apiClient,Z);return K=u("{model}:countTokens",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"POST",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((w)=>{return w.json().then((F)=>{let z=F;return z.sdkHttpResponse={headers:w.headers},z})}),J.then((w)=>{let F=qF(w),z=new o6;return Object.assign(z,F),z})}else{let H=JF(this.apiClient,Z);return K=u("{model}:countTokens",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"POST",httpOptions:(Y=Z.config)===null||Y===void 0?void 0:Y.httpOptions,abortSignal:(W=Z.config)===null||W===void 0?void 0:W.abortSignal}).then((w)=>{return w.json().then((F)=>{let z=F;return z.sdkHttpResponse={headers:w.headers},z})}),J.then((w)=>{let F=KF(w),z=new o6;return Object.assign(z,F),z})}}async computeTokens(Z){var $,Q;let Y,W="",J={};if(this.apiClient.isVertexAI()){let K=e3(this.apiClient,Z);return W=u("{model}:computeTokens",K._url),J=K._query,delete K._url,delete K._query,Y=this.apiClient.request({path:W,queryParams:J,body:JSON.stringify(K),httpMethod:"POST",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((q)=>{return q.json().then((H)=>{let w=H;return w.sdkHttpResponse={headers:q.headers},w})}),Y.then((q)=>{let H=ZF(q),w=new UV;return Object.assign(w,H),w})}else throw Error("This method is only supported by the Gemini Enterprise Agent Platform (previously known as Vertex AI).")}async generateVideosInternal(Z){var $,Q,Y,W;let J,K="",q={};if(this.apiClient.isVertexAI()){let H=uF(this.apiClient,Z);return K=u("{model}:predictLongRunning",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"POST",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((w)=>{return w.json()}),J.then((w)=>{let F=bF(w),z=new r1;return Object.assign(z,F),z})}else{let H=mF(this.apiClient,Z);return K=u("{model}:predictLongRunning",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"POST",httpOptions:(Y=Z.config)===null||Y===void 0?void 0:Y.httpOptions,abortSignal:(W=Z.config)===null||W===void 0?void 0:W.abortSignal}).then((w)=>{return w.json()}),J.then((w)=>{let F=gF(w),z=new r1;return Object.assign(z,F),z})}}}class XJ extends a0{constructor(Z){super();this.apiClient=Z}async getVideosOperation(Z){let{operation:$,config:Q}=Z;if($.name===void 0||$.name==="")throw Error("Operation name is required.");if(this.apiClient.isVertexAI()){let Y=$.name.split("/operations/")[0],W=void 0;if(Q&&"httpOptions"in Q)W=Q.httpOptions;let J=await this.fetchPredictVideosOperationInternal({operationName:$.name,resourceName:Y,config:{httpOptions:W}});return $._fromAPIResponse({apiResponse:J,_isVertexAI:!0})}else{let Y=await this.getVideosOperationInternal({operationName:$.name,config:Q});return $._fromAPIResponse({apiResponse:Y,_isVertexAI:!1})}}async get(Z){let{operation:$,config:Q}=Z;if($.name===void 0||$.name==="")throw Error("Operation name is required.");if(this.apiClient.isVertexAI()){let Y=$.name.split("/operations/")[0],W=void 0;if(Q&&"httpOptions"in Q)W=Q.httpOptions;let J=await this.fetchPredictVideosOperationInternal({operationName:$.name,resourceName:Y,config:{httpOptions:W}});return $._fromAPIResponse({apiResponse:J,_isVertexAI:!0})}else{let Y=await this.getVideosOperationInternal({operationName:$.name,config:Q});return $._fromAPIResponse({apiResponse:Y,_isVertexAI:!1})}}async getVideosOperationInternal(Z){var $,Q,Y,W;let J,K="",q={};if(this.apiClient.isVertexAI()){let H=Rw(Z);return K=u("{operationName}",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"GET",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((w)=>{return w.json()}),J}else{let H=Lw(Z);return K=u("{operationName}",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"GET",httpOptions:(Y=Z.config)===null||Y===void 0?void 0:Y.httpOptions,abortSignal:(W=Z.config)===null||W===void 0?void 0:W.abortSignal}).then((w)=>{return w.json()}),J}}async fetchPredictVideosOperationInternal(Z){var $,Q;let Y,W="",J={};if(this.apiClient.isVertexAI()){let K=Uw(Z);return W=u("{resourceName}:fetchPredictOperation",K._url),J=K._query,delete K._url,delete K._query,Y=this.apiClient.request({path:W,queryParams:J,body:JSON.stringify(K),httpMethod:"POST",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((q)=>{return q.json()}),Y}else throw Error("This method is only supported by the Gemini Enterprise Agent Platform (previously known as Vertex AI).")}}function e5(Z){let $={};if(V(Z,["languageCodes"])!==void 0)throw Error("languageCodes parameter is not supported in Gemini API.");return $}function SG(Z){let $={},Q=V(Z,["apiKey"]);if(Q!=null)X($,["apiKey"],Q);if(V(Z,["apiKeyConfig"])!==void 0)throw Error("apiKeyConfig parameter is not supported in Gemini API.");if(V(Z,["authType"])!==void 0)throw Error("authType parameter is not supported in Gemini API.");if(V(Z,["googleServiceAccountConfig"])!==void 0)throw Error("googleServiceAccountConfig parameter is not supported in Gemini API.");if(V(Z,["httpBasicAuthConfig"])!==void 0)throw Error("httpBasicAuthConfig parameter is not supported in Gemini API.");if(V(Z,["oauthConfig"])!==void 0)throw Error("oauthConfig parameter is not supported in Gemini API.");if(V(Z,["oidcConfig"])!==void 0)throw Error("oidcConfig parameter is not supported in Gemini API.");return $}function CG(Z){let $={},Q=V(Z,["data"]);if(Q!=null)X($,["data"],Q);if(V(Z,["displayName"])!==void 0)throw Error("displayName parameter is not supported in Gemini API.");let Y=V(Z,["mimeType"]);if(Y!=null)X($,["mimeType"],Y);return $}function vG(Z){let $={},Q=V(Z,["parts"]);if(Q!=null){let W=Q;if(Array.isArray(W))W=W.map((J)=>{return fG(J)});X($,["parts"],W)}let Y=V(Z,["role"]);if(Y!=null)X($,["role"],Y);return $}function EG(Z,$,Q){let Y={},W=V($,["expireTime"]);if(Q!==void 0&&W!=null)X(Q,["expireTime"],W);let J=V($,["newSessionExpireTime"]);if(Q!==void 0&&J!=null)X(Q,["newSessionExpireTime"],J);let K=V($,["uses"]);if(Q!==void 0&&K!=null)X(Q,["uses"],K);let q=V($,["liveConnectConstraints"]);if(Q!==void 0&&q!=null)X(Q,["bidiGenerateContentSetup"],xG(Z,q));let H=V($,["lockAdditionalFields"]);if(Q!==void 0&&H!=null)X(Q,["fieldMask"],H);return Y}function OG(Z,$){let Q={},Y=V($,["config"]);if(Y!=null)X(Q,["config"],EG(Z,Y,Q));return Q}function jG(Z){let $={};if(V(Z,["displayName"])!==void 0)throw Error("displayName parameter is not supported in Gemini API.");let Q=V(Z,["fileUri"]);if(Q!=null)X($,["fileUri"],Q);let Y=V(Z,["mimeType"]);if(Y!=null)X($,["mimeType"],Y);return $}function _G(Z){let $={},Q=V(Z,["id"]);if(Q!=null)X($,["id"],Q);let Y=V(Z,["args"]);if(Y!=null)X($,["args"],Y);let W=V(Z,["name"]);if(W!=null)X($,["name"],W);if(V(Z,["partialArgs"])!==void 0)throw Error("partialArgs parameter is not supported in Gemini API.");if(V(Z,["willContinue"])!==void 0)throw Error("willContinue parameter is not supported in Gemini API.");return $}function hG(Z){let $={},Q=V(Z,["authConfig"]);if(Q!=null)X($,["authConfig"],SG(Q));let Y=V(Z,["enableWidget"]);if(Y!=null)X($,["enableWidget"],Y);return $}function kG(Z){let $={},Q=V(Z,["searchTypes"]);if(Q!=null)X($,["searchTypes"],Q);if(V(Z,["blockingConfidence"])!==void 0)throw Error("blockingConfidence parameter is not supported in Gemini API.");if(V(Z,["excludeDomains"])!==void 0)throw Error("excludeDomains parameter is not supported in Gemini API.");let Y=V(Z,["timeRangeFilter"]);if(Y!=null)X($,["timeRangeFilter"],Y);return $}function yG(Z,$){let Q={},Y=V(Z,["generationConfig"]);if($!==void 0&&Y!=null)X($,["setup","generationConfig"],Y);let W=V(Z,["responseModalities"]);if($!==void 0&&W!=null)X($,["setup","generationConfig","responseModalities"],W);let J=V(Z,["temperature"]);if($!==void 0&&J!=null)X($,["setup","generationConfig","temperature"],J);let K=V(Z,["topP"]);if($!==void 0&&K!=null)X($,["setup","generationConfig","topP"],K);let q=V(Z,["topK"]);if($!==void 0&&q!=null)X($,["setup","generationConfig","topK"],q);let H=V(Z,["maxOutputTokens"]);if($!==void 0&&H!=null)X($,["setup","generationConfig","maxOutputTokens"],H);let w=V(Z,["mediaResolution"]);if($!==void 0&&w!=null)X($,["setup","generationConfig","mediaResolution"],w);let F=V(Z,["seed"]);if($!==void 0&&F!=null)X($,["setup","generationConfig","seed"],F);let z=V(Z,["speechConfig"]);if($!==void 0&&z!=null)X($,["setup","generationConfig","speechConfig"],IZ(z));let G=V(Z,["thinkingConfig"]);if($!==void 0&&G!=null)X($,["setup","generationConfig","thinkingConfig"],G);let D=V(Z,["enableAffectiveDialog"]);if($!==void 0&&D!=null)X($,["setup","generationConfig","enableAffectiveDialog"],D);let T=V(Z,["systemInstruction"]);if($!==void 0&&T!=null)X($,["setup","systemInstruction"],vG(F0(T)));let I=V(Z,["tools"]);if($!==void 0&&I!=null){let h=g4(I);if(Array.isArray(h))h=h.map((_)=>{return mG(f4(_))});X($,["setup","tools"],h)}let P=V(Z,["sessionResumption"]);if($!==void 0&&P!=null)X($,["setup","sessionResumption"],bG(P));let O=V(Z,["inputAudioTranscription"]);if($!==void 0&&O!=null)X($,["setup","inputAudioTranscription"],e5(O));let y=V(Z,["outputAudioTranscription"]);if($!==void 0&&y!=null)X($,["setup","outputAudioTranscription"],e5(y));let x=V(Z,["realtimeInputConfig"]);if($!==void 0&&x!=null)X($,["setup","realtimeInputConfig"],x);let m=V(Z,["contextWindowCompression"]);if($!==void 0&&m!=null)X($,["setup","contextWindowCompression"],m);let f=V(Z,["proactivity"]);if($!==void 0&&f!=null)X($,["setup","proactivity"],f);if(V(Z,["explicitVadSignal"])!==void 0)throw Error("explicitVadSignal parameter is not supported in Gemini API.");let S=V(Z,["avatarConfig"]);if($!==void 0&&S!=null)X($,["setup","avatarConfig"],S);let d=V(Z,["safetySettings"]);if($!==void 0&&d!=null){let h=d;if(Array.isArray(h))h=h.map((_)=>{return gG(_)});X($,["setup","safetySettings"],h)}return Q}function xG(Z,$){let Q={},Y=V($,["model"]);if(Y!=null)X(Q,["setup","model"],Z0(Z,Y));let W=V($,["config"]);if(W!=null)X(Q,["config"],yG(W,Q));return Q}function fG(Z){let $={},Q=V(Z,["mediaResolution"]);if(Q!=null)X($,["mediaResolution"],Q);let Y=V(Z,["codeExecutionResult"]);if(Y!=null)X($,["codeExecutionResult"],Y);let W=V(Z,["executableCode"]);if(W!=null)X($,["executableCode"],W);let J=V(Z,["fileData"]);if(J!=null)X($,["fileData"],jG(J));let K=V(Z,["functionCall"]);if(K!=null)X($,["functionCall"],_G(K));let q=V(Z,["functionResponse"]);if(q!=null)X($,["functionResponse"],q);let H=V(Z,["inlineData"]);if(H!=null)X($,["inlineData"],CG(H));let w=V(Z,["text"]);if(w!=null)X($,["text"],w);let F=V(Z,["thought"]);if(F!=null)X($,["thought"],F);let z=V(Z,["thoughtSignature"]);if(z!=null)X($,["thoughtSignature"],z);let G=V(Z,["videoMetadata"]);if(G!=null)X($,["videoMetadata"],G);let D=V(Z,["toolCall"]);if(D!=null)X($,["toolCall"],D);let T=V(Z,["toolResponse"]);if(T!=null)X($,["toolResponse"],T);let I=V(Z,["partMetadata"]);if(I!=null)X($,["partMetadata"],I);return $}function gG(Z){let $={},Q=V(Z,["category"]);if(Q!=null)X($,["category"],Q);if(V(Z,["method"])!==void 0)throw Error("method parameter is not supported in Gemini API.");let Y=V(Z,["threshold"]);if(Y!=null)X($,["threshold"],Y);return $}function bG(Z){let $={},Q=V(Z,["handle"]);if(Q!=null)X($,["handle"],Q);if(V(Z,["transparent"])!==void 0)throw Error("transparent parameter is not supported in Gemini API.");return $}function mG(Z){let $={};if(V(Z,["retrieval"])!==void 0)throw Error("retrieval parameter is not supported in Gemini API.");let Q=V(Z,["computerUse"]);if(Q!=null)X($,["computerUse"],Q);let Y=V(Z,["fileSearch"]);if(Y!=null)X($,["fileSearch"],Y);let W=V(Z,["googleSearch"]);if(W!=null)X($,["googleSearch"],kG(W));let J=V(Z,["googleMaps"]);if(J!=null)X($,["googleMaps"],hG(J));let K=V(Z,["codeExecution"]);if(K!=null)X($,["codeExecution"],K);if(V(Z,["enterpriseWebSearch"])!==void 0)throw Error("enterpriseWebSearch parameter is not supported in Gemini API.");let q=V(Z,["functionDeclarations"]);if(q!=null){let z=q;if(Array.isArray(z))z=z.map((G)=>{return G});X($,["functionDeclarations"],z)}let H=V(Z,["googleSearchRetrieval"]);if(H!=null)X($,["googleSearchRetrieval"],H);if(V(Z,["parallelAiSearch"])!==void 0)throw Error("parallelAiSearch parameter is not supported in Gemini API.");let w=V(Z,["urlContext"]);if(w!=null)X($,["urlContext"],w);let F=V(Z,["mcpServers"]);if(F!=null){let z=F;if(Array.isArray(z))z=z.map((G)=>{return G});X($,["mcpServers"],z)}return $}function uG(Z){let $=[];for(let Q in Z)if(Object.prototype.hasOwnProperty.call(Z,Q)){let Y=Z[Q];if(typeof Y==="object"&&Y!=null&&Object.keys(Y).length>0){let W=Object.keys(Y).map((J)=>`${Q}.${J}`);$.push(...W)}else $.push(Q)}return $.join(",")}function dG(Z,$){let Q=null,Y=Z.bidiGenerateContentSetup;if(typeof Y==="object"&&Y!==null&&"setup"in Y){let J=Y.setup;if(typeof J==="object"&&J!==null)Z.bidiGenerateContentSetup=J,Q=J;else delete Z.bidiGenerateContentSetup}else if(Y!==void 0)delete Z.bidiGenerateContentSetup;let W=Z.fieldMask;if(Q){let J=uG(Q);if(Array.isArray($===null||$===void 0?void 0:$.lockAdditionalFields)&&($===null||$===void 0?void 0:$.lockAdditionalFields.length)===0)if(J)Z.fieldMask=J;else delete Z.fieldMask;else if(($===null||$===void 0?void 0:$.lockAdditionalFields)&&$.lockAdditionalFields.length>0&&W!==null&&Array.isArray(W)&&W.length>0){let K=["temperature","topK","topP","maxOutputTokens","responseModalities","seed","speechConfig"],q=[];if(W.length>0)q=W.map((w)=>{if(K.includes(w))return`generationConfig.${w}`;return w});let H=[];if(J)H.push(J);if(q.length>0)H.push(...q);if(H.length>0)Z.fieldMask=H.join(",");else delete Z.fieldMask}else delete Z.fieldMask}else if(W!==null&&Array.isArray(W)&&W.length>0)Z.fieldMask=W.join(",");else delete Z.fieldMask;return Z}class KJ extends a0{constructor(Z){super();this.apiClient=Z}async create(Z){var $,Q;let Y,W="",J={};if(this.apiClient.isVertexAI())throw Error("The client.tokens.create method is only supported by the Gemini Developer API.");else{let K=OG(this.apiClient,Z);W=u("auth_tokens",K._url),J=K._query,delete K.config,delete K._url,delete K._query;let q=dG(K,Z.config);return Y=this.apiClient.request({path:W,queryParams:J,body:JSON.stringify(q),httpMethod:"POST",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((H)=>{return H.json()}),Y.then((H)=>{return H})}}}function lG(Z,$){let Q={},Y=V(Z,["force"]);if($!==void 0&&Y!=null)X($,["_query","force"],Y);return Q}function cG(Z){let $={},Q=V(Z,["name"]);if(Q!=null)X($,["_url","name"],Q);let Y=V(Z,["config"]);if(Y!=null)lG(Y,$);return $}function pG(Z){let $={},Q=V(Z,["name"]);if(Q!=null)X($,["_url","name"],Q);return $}function iG(Z,$){let Q={},Y=V(Z,["pageSize"]);if($!==void 0&&Y!=null)X($,["_query","pageSize"],Y);let W=V(Z,["pageToken"]);if($!==void 0&&W!=null)X($,["_query","pageToken"],W);return Q}function aG(Z){let $={},Q=V(Z,["parent"]);if(Q!=null)X($,["_url","parent"],Q);let Y=V(Z,["config"]);if(Y!=null)iG(Y,$);return $}function nG(Z){let $={},Q=V(Z,["sdkHttpResponse"]);if(Q!=null)X($,["sdkHttpResponse"],Q);let Y=V(Z,["nextPageToken"]);if(Y!=null)X($,["nextPageToken"],Y);let W=V(Z,["documents"]);if(W!=null){let J=W;if(Array.isArray(J))J=J.map((K)=>{return K});X($,["documents"],J)}return $}class qJ extends a0{constructor(Z){super();this.apiClient=Z,this.list=async($)=>{return new q4(e0.PAGED_ITEM_DOCUMENTS,(Q)=>this.listInternal({parent:$.parent,config:Q.config}),await this.listInternal($),$)}}async get(Z){var $,Q;let Y,W="",J={};if(this.apiClient.isVertexAI())throw Error("This method is only supported by the Gemini Developer API.");else{let K=pG(Z);return W=u("{name}",K._url),J=K._query,delete K._url,delete K._query,Y=this.apiClient.request({path:W,queryParams:J,body:JSON.stringify(K),httpMethod:"GET",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((q)=>{return q.json()}),Y.then((q)=>{return q})}}async delete(Z){var $,Q;let Y="",W={};if(this.apiClient.isVertexAI())throw Error("This method is only supported by the Gemini Developer API.");else{let J=cG(Z);Y=u("{name}",J._url),W=J._query,delete J._url,delete J._query,await this.apiClient.request({path:Y,queryParams:W,body:JSON.stringify(J),httpMethod:"DELETE",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal})}}async listInternal(Z){var $,Q;let Y,W="",J={};if(this.apiClient.isVertexAI())throw Error("This method is only supported by the Gemini Developer API.");else{let K=aG(Z);return W=u("{parent}/documents",K._url),J=K._query,delete K._url,delete K._query,Y=this.apiClient.request({path:W,queryParams:J,body:JSON.stringify(K),httpMethod:"GET",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((q)=>{return q.json()}),Y.then((q)=>{let H=nG(q),w=new MV;return Object.assign(w,H),w})}}}class HJ extends a0{constructor(Z,$=new qJ(Z)){super();this.apiClient=Z,this.documents=$,this.list=async(Q={})=>{return new q4(e0.PAGED_ITEM_FILE_SEARCH_STORES,(Y)=>this.listInternal(Y),await this.listInternal(Q),Q)}}async uploadToFileSearchStore(Z){if(this.apiClient.isVertexAI())throw Error("Gemini Enterprise Agent Platform (previously known as Vertex AI) does not support uploading files to a file search store.");return this.apiClient.uploadFileToFileSearchStore(Z.fileSearchStoreName,Z.file,Z.config)}async downloadMedia(Z,$){if(this.apiClient.isVertexAI())throw Error("This method is only supported in the Gemini Developer client.");let Q=new URL(Z,"http://dummy.com"),Y=Q.pathname;if(Y.startsWith("/"))Y=Y.slice(1);if(!Y.includes("/media/"))throw Error(`Invalid uri format: ${Z}. Expected to contain /media/`);let W={};Q.searchParams.forEach((q,H)=>{W[H]=q}),W.alt="media";let J=Object.assign({},$===null||$===void 0?void 0:$.httpOptions),K=await this.apiClient.request({path:Y,httpMethod:"GET",queryParams:W,httpOptions:J});if(K instanceof I4){let q=await K.responseInternal.arrayBuffer();return new Uint8Array(q)}else throw Error("Unexpected response type from downloadMedia")}async create(Z){var $,Q;let Y,W="",J={};if(this.apiClient.isVertexAI())throw Error("This method is only supported by the Gemini Developer API.");else{let K=l2(this.apiClient,Z);return W=u("fileSearchStores",K._url),J=K._query,delete K._url,delete K._query,Y=this.apiClient.request({path:W,queryParams:J,body:JSON.stringify(K),httpMethod:"POST",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((q)=>{return q.json()}),Y.then((q)=>{return q})}}async get(Z){var $,Q;let Y,W="",J={};if(this.apiClient.isVertexAI())throw Error("This method is only supported by the Gemini Developer API.");else{let K=i2(Z);return W=u("{name}",K._url),J=K._query,delete K._url,delete K._query,Y=this.apiClient.request({path:W,queryParams:J,body:JSON.stringify(K),httpMethod:"GET",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((q)=>{return q.json()}),Y.then((q)=>{return q})}}async delete(Z){var $,Q;let Y="",W={};if(this.apiClient.isVertexAI())throw Error("This method is only supported by the Gemini Developer API.");else{let J=p2(Z);Y=u("{name}",J._url),W=J._query,delete J._url,delete J._query,await this.apiClient.request({path:Y,queryParams:W,body:JSON.stringify(J),httpMethod:"DELETE",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal})}}async listInternal(Z){var $,Q;let Y,W="",J={};if(this.apiClient.isVertexAI())throw Error("This method is only supported by the Gemini Developer API.");else{let K=t2(Z);return W=u("fileSearchStores",K._url),J=K._query,delete K._url,delete K._query,Y=this.apiClient.request({path:W,queryParams:J,body:JSON.stringify(K),httpMethod:"GET",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((q)=>{return q.json()}),Y.then((q)=>{let H=e2(q),w=new IV;return Object.assign(w,H),w})}}async uploadToFileSearchStoreInternal(Z){var $,Q;let Y,W="",J={};if(this.apiClient.isVertexAI())throw Error("This method is only supported by the Gemini Developer API.");else{let K=ZG(Z);return W=u("upload/v1beta/{file_search_store_name}:uploadToFileSearchStore",K._url),J=K._query,delete K._url,delete K._query,Y=this.apiClient.request({path:W,queryParams:J,body:JSON.stringify(K),httpMethod:"POST",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((q)=>{return q.json()}),Y.then((q)=>{let H=$G(q),w=new NV;return Object.assign(w,H),w})}}async importFile(Z){var $,Q;let Y,W="",J={};if(this.apiClient.isVertexAI())throw Error("This method is only supported by the Gemini Developer API.");else{let K=r2(Z);return W=u("{file_search_store_name}:importFile",K._url),J=K._query,delete K._url,delete K._query,Y=this.apiClient.request({path:W,queryParams:J,body:JSON.stringify(K),httpMethod:"POST",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((q)=>{return q.json()}),Y.then((q)=>{let H=n2(q),w=new GZ;return Object.assign(w,H),w})}}}var wJ=function(){let{crypto:Z}=globalThis;if(Z===null||Z===void 0?void 0:Z.randomUUID)return wJ=Z.randomUUID.bind(Z),Z.randomUUID();let $=new Uint8Array(1),Q=Z?()=>Z.getRandomValues($)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,(Y)=>(+Y^Q()&15>>+Y/4).toString(16))},rG=()=>wJ();function XZ(Z){return typeof Z==="object"&&Z!==null&&(("name"in Z)&&Z.name==="AbortError"||("message"in Z)&&String(Z.message).includes("FetchRequestCanceledException"))}var KZ=(Z)=>{if(Z instanceof Error)return Z;if(typeof Z==="object"&&Z!==null){try{if(Object.prototype.toString.call(Z)==="[object Error]"){let $=Error(Z.message,Z.cause?{cause:Z.cause}:{});if(Z.stack)$.stack=Z.stack;if(Z.cause&&!$.cause)$.cause=Z.cause;if(Z.name)$.name=Z.name;return $}}catch($){}try{return Error(JSON.stringify(Z))}catch($){}}return Error(Z)};class C0 extends Error{}class T0 extends C0{constructor(Z,$,Q,Y){super(`${T0.makeMessage(Z,$,Q)}`);this.status=Z,this.headers=Y,this.error=$}static makeMessage(Z,$,Q){let Y=($===null||$===void 0?void 0:$.message)?typeof $.message==="string"?$.message:JSON.stringify($.message):$?JSON.stringify($):Q;if(Z&&Y)return`${Z} ${Y}`;if(Z)return`${Z} status code (no body)`;if(Y)return Y;return"(no status code or body)"}static generate(Z,$,Q,Y){if(!Z||!Y)return new X1({message:Q,cause:KZ($)});let W=$;if(Z===400)return new LZ(Z,W,Q,Y);if(Z===401)return new RZ(Z,W,Q,Y);if(Z===403)return new AZ(Z,W,Q,Y);if(Z===404)return new PZ(Z,W,Q,Y);if(Z===409)return new SZ(Z,W,Q,Y);if(Z===422)return new CZ(Z,W,Q,Y);if(Z===429)return new vZ(Z,W,Q,Y);if(Z>=500)return new EZ(Z,W,Q,Y);return new T0(Z,W,Q,Y)}}class o1 extends T0{constructor({message:Z}={}){super(void 0,void 0,Z||"Request was aborted.",void 0)}}class X1 extends T0{constructor({message:Z,cause:$}){super(void 0,void 0,Z||"Connection error.",void 0);if($)this.cause=$}}class BZ extends X1{constructor({message:Z}={}){super({message:Z!==null&&Z!==void 0?Z:"Request timed out."})}}class LZ extends T0{}class RZ extends T0{}class AZ extends T0{}class PZ extends T0{}class SZ extends T0{}class CZ extends T0{}class vZ extends T0{}class EZ extends T0{}var sG=/^[a-z][a-z0-9+.-]*:/i,oG=(Z)=>{return sG.test(Z)},qZ=(Z)=>(qZ=Array.isArray,qZ(Z)),tG=qZ,eG=tG,ZV=eG;function $V(Z){if(!Z)return!0;for(let $ in Z)return!1;return!0}function ZU(Z,$){return Object.prototype.hasOwnProperty.call(Z,$)}var $U=(Z,$)=>{if(typeof $!=="number"||!Number.isInteger($))throw new C0(`${Z} must be an integer`);if($<0)throw new C0(`${Z} must be a positive integer`);return $},QU=(Z)=>{try{return JSON.parse(Z)}catch($){return}},YU=(Z)=>new Promise(($)=>setTimeout($,Z));function WU(){if(typeof fetch<"u")return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new GeminiNextGenAPIClient({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function zJ(...Z){let $=globalThis.ReadableStream;if(typeof $>"u")throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new $(...Z)}function VU(Z){let $=Symbol.asyncIterator in Z?Z[Symbol.asyncIterator]():Z[Symbol.iterator]();return zJ({start(){},async pull(Q){let{done:Y,value:W}=await $.next();if(Y)Q.close();else Q.enqueue(W)},async cancel(){var Q;await((Q=$.return)===null||Q===void 0?void 0:Q.call($))}})}function FJ(Z){if(Z[Symbol.asyncIterator])return Z;let $=Z.getReader();return{async next(){try{let Q=await $.read();if(Q===null||Q===void 0?void 0:Q.done)$.releaseLock();return Q}catch(Q){throw $.releaseLock(),Q}},async return(){let Q=$.cancel();return $.releaseLock(),await Q,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function JU(Z){var $,Q;if(Z===null||typeof Z!=="object")return;if(Z[Symbol.asyncIterator]){await((Q=($=Z[Symbol.asyncIterator]()).return)===null||Q===void 0?void 0:Q.call($));return}let Y=Z.getReader(),W=Y.cancel();Y.releaseLock(),await W}var XU=({headers:Z,body:$})=>{return{bodyHeaders:{"content-type":"application/json"},body:JSON.stringify($)}};function KU(Z){return Object.entries(Z).filter(([$,Q])=>typeof Q<"u").map(([$,Q])=>{if(typeof Q==="string"||typeof Q==="number"||typeof Q==="boolean")return`${encodeURIComponent($)}=${encodeURIComponent(Q)}`;if(Q===null)return`${encodeURIComponent($)}=`;throw new C0(`Cannot stringify type ${typeof Q}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}var qU="0.0.1",GJ=()=>{var Z;if(typeof File>"u"){let{process:$}=globalThis,Q=typeof((Z=$===null||$===void 0?void 0:$.versions)===null||Z===void 0?void 0:Z.node)==="string"&&parseInt($.versions.node.split("."))<20;throw Error("`File` is not defined as a global, which is required for file uploads."+(Q?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function u6(Z,$,Q){return GJ(),new File(Z,$!==null&&$!==void 0?$:"unknown_file",Q)}function HU(Z){return(typeof Z==="object"&&Z!==null&&(("name"in Z)&&Z.name&&String(Z.name)||("url"in Z)&&Z.url&&String(Z.url)||("filename"in Z)&&Z.filename&&String(Z.filename)||("path"in Z)&&Z.path&&String(Z.path))||"").split(/[\\/]/).pop()||void 0}var wU=(Z)=>Z!=null&&typeof Z==="object"&&typeof Z[Symbol.asyncIterator]==="function",UJ=(Z)=>Z!=null&&typeof Z==="object"&&typeof Z.size==="number"&&typeof Z.type==="string"&&typeof Z.text==="function"&&typeof Z.slice==="function"&&typeof Z.arrayBuffer==="function",zU=(Z)=>Z!=null&&typeof Z==="object"&&typeof Z.name==="string"&&typeof Z.lastModified==="number"&&UJ(Z),FU=(Z)=>Z!=null&&typeof Z==="object"&&typeof Z.url==="string"&&typeof Z.blob==="function";async function GU(Z,$,Q){if(GJ(),Z=await Z,zU(Z)){if(Z instanceof File)return Z;return u6([await Z.arrayBuffer()],Z.name)}if(FU(Z)){let W=await Z.blob();return $||($=new URL(Z.url).pathname.split(/[\\/]/).pop()),u6(await HZ(W),$,Q)}let Y=await HZ(Z);if($||($=HU(Z)),!(Q===null||Q===void 0?void 0:Q.type)){let W=Y.find((J)=>typeof J==="object"&&("type"in J)&&J.type);if(typeof W==="string")Q=Object.assign(Object.assign({},Q),{type:W})}return u6(Y,$,Q)}async function HZ(Z){var $,Q,Y,W,J;let K=[];if(typeof Z==="string"||ArrayBuffer.isView(Z)||Z instanceof ArrayBuffer)K.push(Z);else if(UJ(Z))K.push(Z instanceof Blob?Z:await Z.arrayBuffer());else if(wU(Z))try{for(var q=!0,H=u0(Z),w;w=await H.next(),$=w.done,!$;q=!0){W=w.value,q=!1;let F=W;K.push(...await HZ(F))}}catch(F){Q={error:F}}finally{try{if(!q&&!$&&(Y=H.return))await Y.call(H)}finally{if(Q)throw Q.error}}else{let F=(J=Z===null||Z===void 0?void 0:Z.constructor)===null||J===void 0?void 0:J.name;throw Error(`Unexpected data type: ${typeof Z}${F?`; constructor: ${F}`:""}${UU(Z)}`)}return K}function UU(Z){if(typeof Z!=="object"||Z===null)return"";return`; props: [${Object.getOwnPropertyNames(Z).map((Q)=>`"${Q}"`).join(", ")}]`}class V8{constructor(Z){this._client=Z}}V8._key=[];function DJ(Z){return Z.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var QV=Object.freeze(Object.create(null)),DU=(Z=DJ)=>function(Q,...Y){if(Q.length===1)return Q[0];let W=!1,J=[],K=Q.reduce((F,z,G)=>{var D,T,I;if(/[?#]/.test(z))W=!0;let P=Y[G],O=(W?encodeURIComponent:Z)(""+P);if(G!==Y.length&&(P==null||typeof P==="object"&&P.toString===((I=Object.getPrototypeOf((T=Object.getPrototypeOf((D=P.hasOwnProperty)!==null&&D!==void 0?D:QV))!==null&&T!==void 0?T:QV))===null||I===void 0?void 0:I.toString)))O=P+"",J.push({start:F.length+z.length,length:O.length,error:`Value of type ${Object.prototype.toString.call(P).slice(8,-1)} is not a valid path parameter`});return F+z+(G===Y.length?"":O)},""),q=K.split(/[?#]/,1)[0],H=/(^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,w;while((w=H.exec(q))!==null){let F=w[0].startsWith("/"),z=F?1:0,G=F?w[0].slice(1):w[0];J.push({start:w.index+z,length:G.length,error:`Value "${G}" can't be safely passed as a path parameter`})}if(J.sort((F,z)=>F.start-z.start),J.length>0){let F=0,z=J.reduce((G,D)=>{let T=" ".repeat(D.start-F),I="^".repeat(D.length);return F=D.start+D.length,G+T+I},"");throw new C0(`Path parameters result in path with invalid segments:
36
- ${J.map((G)=>G.error).join(`
37
- `)}
38
- ${K}
39
- ${z}`)}return K},b0=DU(DJ);class OZ extends V8{create(Z,$){var Q;let{api_version:Y=this._client.apiVersion}=Z,W=V4(Z,["api_version"]);if("model"in W&&"agent_config"in W)throw new C0("Invalid request: specified `model` and `agent_config`. If specifying `model`, use `generation_config`.");if("agent"in W&&"generation_config"in W)throw new C0("Invalid request: specified `agent` and `generation_config`. If specifying `agent`, use `agent_config`.");return this._client.post(b0`/${Y}/interactions`,Object.assign(Object.assign({body:W},$),{stream:(Q=Z.stream)!==null&&Q!==void 0?Q:!1}))}delete(Z,$={},Q){let{api_version:Y=this._client.apiVersion}=$!==null&&$!==void 0?$:{};return this._client.delete(b0`/${Y}/interactions/${Z}`,Q)}cancel(Z,$={},Q){let{api_version:Y=this._client.apiVersion}=$!==null&&$!==void 0?$:{};return this._client.post(b0`/${Y}/interactions/${Z}/cancel`,Q)}get(Z,$={},Q){var Y;let W=$!==null&&$!==void 0?$:{},{api_version:J=this._client.apiVersion}=W,K=V4(W,["api_version"]);return this._client.get(b0`/${J}/interactions/${Z}`,Object.assign(Object.assign({query:K},Q),{stream:(Y=$===null||$===void 0?void 0:$.stream)!==null&&Y!==void 0?Y:!1}))}}OZ._key=Object.freeze(["interactions"]);class jZ extends OZ{}class _Z extends V8{create(Z,$){let{api_version:Q=this._client.apiVersion}=Z,Y=V4(Z,["api_version"]);return this._client.post(b0`/${Q}/webhooks`,Object.assign({body:Y},$))}update(Z,$={},Q){let Y=$!==null&&$!==void 0?$:{},{api_version:W=this._client.apiVersion,update_mask:J}=Y,K=V4(Y,["api_version","update_mask"]);return this._client.patch(b0`/${W}/webhooks/${Z}`,Object.assign({query:{update_mask:J},body:K},Q))}list(Z={},$){let Q=Z!==null&&Z!==void 0?Z:{},{api_version:Y=this._client.apiVersion}=Q,W=V4(Q,["api_version"]);return this._client.get(b0`/${Y}/webhooks`,Object.assign({query:W},$))}delete(Z,$={},Q){let{api_version:Y=this._client.apiVersion}=$!==null&&$!==void 0?$:{};return this._client.delete(b0`/${Y}/webhooks/${Z}`,Q)}get(Z,$={},Q){let{api_version:Y=this._client.apiVersion}=$!==null&&$!==void 0?$:{};return this._client.get(b0`/${Y}/webhooks/${Z}`,Q)}ping(Z,$=void 0,Q){let{api_version:Y=this._client.apiVersion,body:W}=$!==null&&$!==void 0?$:{};return this._client.post(b0`/${Y}/webhooks/${Z}:ping`,Object.assign({body:W},Q))}rotateSigningSecret(Z,$={},Q){let Y=$!==null&&$!==void 0?$:{},{api_version:W=this._client.apiVersion}=Y,J=V4(Y,["api_version"]);return this._client.post(b0`/${W}/webhooks/${Z}:rotateSigningSecret`,Object.assign({body:J},Q))}}_Z._key=Object.freeze(["webhooks"]);class hZ extends _Z{}function MU(Z){let $=0;for(let W of Z)$+=W.length;let Q=new Uint8Array($),Y=0;for(let W of Z)Q.set(W,Y),Y+=W.length;return Q}var d1;function kZ(Z){let $;return(d1!==null&&d1!==void 0?d1:($=new globalThis.TextEncoder,d1=$.encode.bind($)))(Z)}var l1;function YV(Z){let $;return(l1!==null&&l1!==void 0?l1:($=new globalThis.TextDecoder,l1=$.decode.bind($)))(Z)}class K1{constructor(){this.buffer=new Uint8Array,this.carriageReturnIndex=null,this.searchIndex=0}decode(Z){var $;if(Z==null)return[];let Q=Z instanceof ArrayBuffer?new Uint8Array(Z):typeof Z==="string"?kZ(Z):Z;this.buffer=MU([this.buffer,Q]);let Y=[],W;while((W=IU(this.buffer,($=this.carriageReturnIndex)!==null&&$!==void 0?$:this.searchIndex))!=null){if(W.carriage&&this.carriageReturnIndex==null){this.carriageReturnIndex=W.index;continue}if(this.carriageReturnIndex!=null&&(W.index!==this.carriageReturnIndex+1||W.carriage)){Y.push(YV(this.buffer.subarray(0,this.carriageReturnIndex-1))),this.buffer=this.buffer.subarray(this.carriageReturnIndex),this.carriageReturnIndex=null,this.searchIndex=0;continue}let J=this.carriageReturnIndex!==null?W.preceding-1:W.preceding,K=YV(this.buffer.subarray(0,J));Y.push(K),this.buffer=this.buffer.subarray(W.index),this.carriageReturnIndex=null,this.searchIndex=0}return this.searchIndex=Math.max(0,this.buffer.length-1),Y}flush(){if(!this.buffer.length)return[];return this.decode(`
40
- `)}}K1.NEWLINE_CHARS=new Set([`
41
- `,"\r"]);K1.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function IU(Z,$){let W=$!==null&&$!==void 0?$:0,J=Z.indexOf(10,W),K=Z.indexOf(13,W);if(J===-1&&K===-1)return null;let q;if(J!==-1&&K!==-1)q=Math.min(J,K);else q=J!==-1?J:K;if(Z[q]===10)return{preceding:q,index:q+1,carriage:!1};return{preceding:q,index:q+1,carriage:!0}}var t1={off:0,error:200,warn:300,info:400,debug:500},WV=(Z,$,Q)=>{if(!Z)return;if(ZU(t1,Z))return Z;N0(Q).warn(`${$} was set to ${JSON.stringify(Z)}, expected one of ${JSON.stringify(Object.keys(t1))}`);return};function V1(){}function c1(Z,$,Q){if(!$||t1[Z]>t1[Q])return V1;else return $[Z].bind($)}var NU={error:V1,warn:V1,info:V1,debug:V1},VV=new WeakMap;function N0(Z){var $;let Q=Z.logger,Y=($=Z.logLevel)!==null&&$!==void 0?$:"off";if(!Q)return NU;let W=VV.get(Q);if(W&&W[0]===Y)return W[1];let J={error:c1("error",Q,Y),warn:c1("warn",Q,Y),info:c1("info",Q,Y),debug:c1("debug",Q,Y)};return VV.set(Q,[Y,J]),J}var M4=(Z)=>{if(Z.options)Z.options=Object.assign({},Z.options),delete Z.options.headers;if(Z.headers)Z.headers=Object.fromEntries((Z.headers instanceof Headers?[...Z.headers]:Object.entries(Z.headers)).map(([$,Q])=>[$,$.toLowerCase()==="x-goog-api-key"||$.toLowerCase()==="authorization"||$.toLowerCase()==="cookie"||$.toLowerCase()==="set-cookie"?"***":Q]));if("retryOfRequestLogID"in Z){if(Z.retryOfRequestLogID)Z.retryOf=Z.retryOfRequestLogID;delete Z.retryOfRequestLogID}return Z};class k4{constructor(Z,$,Q){this.iterator=Z,this.controller=$,this.client=Q}static fromSSEResponse(Z,$,Q){let Y=!1,W=Q?N0(Q):console;function J(){return m0(this,arguments,function*(){var q,H,w,F;if(Y)throw new C0("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");Y=!0;let z=!1;try{try{for(var G=!0,D=u0(TU(Z,$)),T;T=yield r(D.next()),q=T.done,!q;G=!0){F=T.value,G=!1;let I=F;if(z)continue;if(I.data.startsWith("[DONE]")){z=!0;continue}else try{yield yield r(JSON.parse(I.data))}catch(P){throw W.error("Could not parse message into JSON:",I.data),W.error("From chunk:",I.raw),P}}}catch(I){H={error:I}}finally{try{if(!G&&!q&&(w=D.return))yield r(w.call(D))}finally{if(H)throw H.error}}z=!0}catch(I){if(XZ(I))return yield r(void 0);throw I}finally{if(!z)$.abort()}})}return new k4(J,$,Q)}static fromReadableStream(Z,$,Q){let Y=!1;function W(){return m0(this,arguments,function*(){var q,H,w,F;let z=new K1,G=FJ(Z);try{for(var D=!0,T=u0(G),I;I=yield r(T.next()),q=I.done,!q;D=!0){F=I.value,D=!1;let P=F;for(let O of z.decode(P))yield yield r(O)}}catch(P){H={error:P}}finally{try{if(!D&&!q&&(w=T.return))yield r(w.call(T))}finally{if(H)throw H.error}}for(let P of z.flush())yield yield r(P)})}function J(){return m0(this,arguments,function*(){var q,H,w,F;if(Y)throw new C0("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");Y=!0;let z=!1;try{try{for(var G=!0,D=u0(W()),T;T=yield r(D.next()),q=T.done,!q;G=!0){F=T.value,G=!1;let I=F;if(z)continue;if(I)yield yield r(JSON.parse(I))}}catch(I){H={error:I}}finally{try{if(!G&&!q&&(w=D.return))yield r(w.call(D))}finally{if(H)throw H.error}}z=!0}catch(I){if(XZ(I))return yield r(void 0);throw I}finally{if(!z)$.abort()}})}return new k4(J,$,Q)}[Symbol.asyncIterator](){return this.iterator()}tee(){let Z=[],$=[],Q=this.iterator(),Y=(W)=>{return{next:()=>{if(W.length===0){let J=Q.next();Z.push(J),$.push(J)}return W.shift()}}};return[new k4(()=>Y(Z),this.controller,this.client),new k4(()=>Y($),this.controller,this.client)]}toReadableStream(){let Z=this,$;return zJ({async start(){$=Z[Symbol.asyncIterator]()},async pull(Q){try{let{value:Y,done:W}=await $.next();if(W)return Q.close();let J=kZ(JSON.stringify(Y)+`
42
- `);Q.enqueue(J)}catch(Y){Q.error(Y)}},async cancel(){var Q;await((Q=$.return)===null||Q===void 0?void 0:Q.call($))}})}}function TU(Z,$){return m0(this,arguments,function*(){var Y,W,J,K;if(!Z.body){if($.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative")throw new C0("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api");throw new C0("Attempted to iterate over a response with no body")}let q=new MJ,H=new K1,w=FJ(Z.body);try{for(var F=!0,z=u0(BU(w)),G;G=yield r(z.next()),Y=G.done,!Y;F=!0){K=G.value,F=!1;let D=K;for(let T of H.decode(D)){let I=q.decode(T);if(I)yield yield r(I)}}}catch(D){W={error:D}}finally{try{if(!F&&!Y&&(J=z.return))yield r(J.call(z))}finally{if(W)throw W.error}}for(let D of H.flush()){let T=q.decode(D);if(T)yield yield r(T)}})}function BU(Z){return m0(this,arguments,function*(){var Q,Y,W,J;try{for(var K=!0,q=u0(Z),H;H=yield r(q.next()),Q=H.done,!Q;K=!0){J=H.value,K=!1;let w=J;if(w==null)continue;let F=w instanceof ArrayBuffer?new Uint8Array(w):typeof w==="string"?kZ(w):w;yield yield r(F)}}catch(w){Y={error:w}}finally{try{if(!K&&!Q&&(W=q.return))yield r(W.call(q))}finally{if(Y)throw Y.error}}})}class MJ{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(Z){if(Z.endsWith("\r"))Z=Z.substring(0,Z.length-1);if(!Z){if(!this.event&&!this.data.length)return null;let W={event:this.event,data:this.data.join(`
43
- `),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],W}if(this.chunks.push(Z),Z.startsWith(":"))return null;let[$,Q,Y]=LU(Z,":");if(Y.startsWith(" "))Y=Y.substring(1);if($==="event")this.event=Y;else if($==="data")this.data.push(Y);return null}}function LU(Z,$){let Q=Z.indexOf($);if(Q!==-1)return[Z.substring(0,Q),$,Z.substring(Q+$.length)];return[Z,"",""]}async function RU(Z,$){let{response:Q,requestLogID:Y,retryOfRequestLogID:W,startTime:J}=$,K=await(async()=>{var q;if($.options.stream){if(N0(Z).debug("response",Q.status,Q.url,Q.headers,Q.body),$.options.__streamClass)return $.options.__streamClass.fromSSEResponse(Q,$.controller,Z);return k4.fromSSEResponse(Q,$.controller,Z)}if(Q.status===204)return null;if($.options.__binaryResponse)return Q;let H=Q.headers.get("content-type"),w=(q=H===null||H===void 0?void 0:H.split(";")[0])===null||q===void 0?void 0:q.trim();if((w===null||w===void 0?void 0:w.includes("application/json"))||(w===null||w===void 0?void 0:w.endsWith("+json"))){if(Q.headers.get("content-length")==="0")return;return await Q.json()}return await Q.text()})();return N0(Z).debug(`[${Y}] response parsed`,M4({retryOfRequestLogID:W,url:Q.url,status:Q.status,body:K,durationMs:Date.now()-J})),K}class yZ extends Promise{constructor(Z,$,Q=RU){super((Y)=>{Y(null)});this.responsePromise=$,this.parseResponse=Q,this.client=Z}_thenUnwrap(Z){return new yZ(this.client,this.responsePromise,async($,Q)=>Z(await this.parseResponse($,Q),Q))}asResponse(){return this.responsePromise.then((Z)=>Z.response)}async withResponse(){let[Z,$]=await Promise.all([this.parse(),this.asResponse()]);return{data:Z,response:$}}parse(){if(!this.parsedPromise)this.parsedPromise=this.responsePromise.then((Z)=>this.parseResponse(this.client,Z));return this.parsedPromise}then(Z,$){return this.parse().then(Z,$)}catch(Z){return this.parse().catch(Z)}finally(Z){return this.parse().finally(Z)}}var IJ=Symbol("brand.privateNullableHeaders");function*AU(Z){if(!Z)return;if(IJ in Z){let{values:Y,nulls:W}=Z;yield*Y.entries();for(let J of W)yield[J,null];return}let $=!1,Q;if(Z instanceof Headers)Q=Z.entries();else if(ZV(Z))Q=Z;else $=!0,Q=Object.entries(Z!==null&&Z!==void 0?Z:{});for(let Y of Q){let W=Y[0];if(typeof W!=="string")throw TypeError("expected header name to be a string");let J=ZV(Y[1])?Y[1]:[Y[1]],K=!1;for(let q of J){if(q===void 0)continue;if($&&!K)K=!0,yield[W,null];yield[W,q]}}}var Y1=(Z)=>{let $=new Headers,Q=new Set;for(let Y of Z){let W=new Set;for(let[J,K]of AU(Y)){let q=J.toLowerCase();if(!W.has(q))$.delete(J),W.add(q);if(K===null)$.delete(J),Q.add(q);else $.append(J,K),Q.delete(q)}}return{[IJ]:!0,values:$,nulls:Q}},d6=(Z)=>{var $,Q,Y,W,J;if(typeof globalThis.process<"u")return((Q=($=globalThis.process.env)===null||$===void 0?void 0:$[Z])===null||Q===void 0?void 0:Q.trim())||void 0;if(typeof globalThis.Deno<"u")return((J=(W=(Y=globalThis.Deno.env)===null||Y===void 0?void 0:Y.get)===null||W===void 0?void 0:W.call(Y,Z))===null||J===void 0?void 0:J.trim())||void 0;return},NJ;class J8{constructor(Z){var $,Q,Y,W,J,K,q,{baseURL:H=d6("GEMINI_NEXT_GEN_API_BASE_URL"),apiKey:w=($=d6("GEMINI_API_KEY"))!==null&&$!==void 0?$:null,apiVersion:F="v1beta"}=Z,z=V4(Z,["baseURL","apiKey","apiVersion"]);let G=Object.assign(Object.assign({apiKey:w,apiVersion:F},z),{baseURL:H||"https://generativelanguage.googleapis.com"});this.baseURL=G.baseURL,this.timeout=(Q=G.timeout)!==null&&Q!==void 0?Q:J8.DEFAULT_TIMEOUT,this.logger=(Y=G.logger)!==null&&Y!==void 0?Y:console;let D="warn";this.logLevel=D,this.logLevel=(J=(W=WV(G.logLevel,"ClientOptions.logLevel",this))!==null&&W!==void 0?W:WV(d6("GEMINI_NEXT_GEN_API_LOG"),"process.env['GEMINI_NEXT_GEN_API_LOG']",this))!==null&&J!==void 0?J:D,this.fetchOptions=G.fetchOptions,this.maxRetries=(K=G.maxRetries)!==null&&K!==void 0?K:2,this.fetch=(q=G.fetch)!==null&&q!==void 0?q:WU(),this.encoder=XU,this._options=G,this.apiKey=w,this.apiVersion=F,this.clientAdapter=G.clientAdapter}withOptions(Z){return new this.constructor(Object.assign(Object.assign(Object.assign({},this._options),{baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,apiVersion:this.apiVersion}),Z))}baseURLOverridden(){return this.baseURL!=="https://generativelanguage.googleapis.com"}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:Z,nulls:$}){if(Z.has("authorization")||Z.has("x-goog-api-key"))return;if(this.apiKey&&Z.get("x-goog-api-key"))return;if($.has("x-goog-api-key"))return;throw Error('Could not resolve authentication method. Expected the apiKey to be set. Or for the "x-goog-api-key" headers to be explicitly omitted')}async authHeaders(Z){let $=Y1([Z.headers]);if($.values.has("authorization")||$.values.has("x-goog-api-key"))return;if(this.apiKey)return Y1([{"x-goog-api-key":this.apiKey}]);if(this.clientAdapter&&this.clientAdapter.isVertexAI())return Y1([await this.clientAdapter.getAuthHeaders()]);return}stringifyQuery(Z){return KU(Z)}getUserAgent(){return`${this.constructor.name}/JS ${qU}`}defaultIdempotencyKey(){return`stainless-node-retry-${rG()}`}makeStatusError(Z,$,Q,Y){return T0.generate(Z,$,Q,Y)}buildURL(Z,$,Q){let Y=!this.baseURLOverridden()&&Q||this.baseURL,W=oG(Z)?new URL(Z):new URL(Y+(Y.endsWith("/")&&Z.startsWith("/")?Z.slice(1):Z)),J=this.defaultQuery(),K=Object.fromEntries(W.searchParams);if(!$V(J)||!$V(K))$=Object.assign(Object.assign(Object.assign({},K),J),$);if(typeof $==="object"&&$&&!Array.isArray($))W.search=this.stringifyQuery($);return W.toString()}async prepareOptions(Z){if(this.clientAdapter&&this.clientAdapter.isVertexAI()&&!Z.path.startsWith(`/${this.apiVersion}/projects/`)){let $=Z.path.slice(this.apiVersion.length+1);Z.path=`/${this.apiVersion}/projects/${this.clientAdapter.getProject()}/locations/${this.clientAdapter.getLocation()}${$}`}}async prepareRequest(Z,{url:$,options:Q}){}get(Z,$){return this.methodRequest("get",Z,$)}post(Z,$){return this.methodRequest("post",Z,$)}patch(Z,$){return this.methodRequest("patch",Z,$)}put(Z,$){return this.methodRequest("put",Z,$)}delete(Z,$){return this.methodRequest("delete",Z,$)}methodRequest(Z,$,Q){return this.request(Promise.resolve(Q).then((Y)=>{return Object.assign({method:Z,path:$},Y)}))}request(Z,$=null){return new yZ(this,this.makeRequest(Z,$,void 0))}async makeRequest(Z,$,Q){var Y,W,J;let K=await Z,q=(Y=K.maxRetries)!==null&&Y!==void 0?Y:this.maxRetries;if($==null)$=q;await this.prepareOptions(K);let{req:H,url:w,timeout:F}=await this.buildRequest(K,{retryCount:q-$});await this.prepareRequest(H,{url:w,options:K});let z="log_"+(Math.random()*16777216|0).toString(16).padStart(6,"0"),G=Q===void 0?"":`, retryOf: ${Q}`,D=Date.now();if(N0(this).debug(`[${z}] sending request`,M4({retryOfRequestLogID:Q,method:K.method,url:w,options:K,headers:H.headers})),(W=K.signal)===null||W===void 0?void 0:W.aborted)throw new o1;let T=new AbortController,I=await this.fetchWithTimeout(w,H,F,T).catch(KZ),P=Date.now();if(I instanceof globalThis.Error){let y=`retrying, ${$} attempts remaining`;if((J=K.signal)===null||J===void 0?void 0:J.aborted)throw new o1;let x=XZ(I)||/timed? ?out/i.test(String(I)+("cause"in I?String(I.cause):""));if($)return N0(this).info(`[${z}] connection ${x?"timed out":"failed"} - ${y}`),N0(this).debug(`[${z}] connection ${x?"timed out":"failed"} (${y})`,M4({retryOfRequestLogID:Q,url:w,durationMs:P-D,message:I.message})),this.retryRequest(K,$,Q!==null&&Q!==void 0?Q:z);if(N0(this).info(`[${z}] connection ${x?"timed out":"failed"} - error; no more retries left`),N0(this).debug(`[${z}] connection ${x?"timed out":"failed"} (error; no more retries left)`,M4({retryOfRequestLogID:Q,url:w,durationMs:P-D,message:I.message})),x)throw new BZ;throw new X1({cause:I})}let O=`[${z}${G}] ${H.method} ${w} ${I.ok?"succeeded":"failed"} with status ${I.status} in ${P-D}ms`;if(!I.ok){let y=await this.shouldRetry(I);if($&&y){let h=`retrying, ${$} attempts remaining`;return await JU(I.body),N0(this).info(`${O} - ${h}`),N0(this).debug(`[${z}] response error (${h})`,M4({retryOfRequestLogID:Q,url:I.url,status:I.status,headers:I.headers,durationMs:P-D})),this.retryRequest(K,$,Q!==null&&Q!==void 0?Q:z,I.headers)}let x=y?"error; no more retries left":"error; not retryable";N0(this).info(`${O} - ${x}`);let m=await I.text().catch((h)=>KZ(h).message),f=QU(m),S=f?void 0:m;throw N0(this).debug(`[${z}] response error (${x})`,M4({retryOfRequestLogID:Q,url:I.url,status:I.status,headers:I.headers,message:S,durationMs:Date.now()-D})),this.makeStatusError(I.status,f,S,I.headers)}return N0(this).info(O),N0(this).debug(`[${z}] response start`,M4({retryOfRequestLogID:Q,url:I.url,status:I.status,headers:I.headers,durationMs:P-D})),{response:I,options:K,controller:T,requestLogID:z,retryOfRequestLogID:Q,startTime:D}}async fetchWithTimeout(Z,$,Q,Y){let W=$||{},{signal:J,method:K}=W,q=V4(W,["signal","method"]),H=this._makeAbort(Y);if(J)J.addEventListener("abort",H,{once:!0});let w=setTimeout(H,Q),F=globalThis.ReadableStream&&q.body instanceof globalThis.ReadableStream||typeof q.body==="object"&&q.body!==null&&Symbol.asyncIterator in q.body,z=Object.assign(Object.assign(Object.assign({signal:Y.signal},F?{duplex:"half"}:{}),{method:"GET"}),q);if(K)z.method=K.toUpperCase();try{return await this.fetch.call(void 0,Z,z)}finally{clearTimeout(w)}}async shouldRetry(Z){let $=Z.headers.get("x-should-retry");if($==="true")return!0;if($==="false")return!1;if(Z.status===408)return!0;if(Z.status===409)return!0;if(Z.status===429)return!0;if(Z.status>=500)return!0;return!1}async retryRequest(Z,$,Q,Y){var W;let J,K=Y===null||Y===void 0?void 0:Y.get("retry-after-ms");if(K){let H=parseFloat(K);if(!Number.isNaN(H))J=H}let q=Y===null||Y===void 0?void 0:Y.get("retry-after");if(q&&!J){let H=parseFloat(q);if(!Number.isNaN(H))J=H*1000;else J=Date.parse(q)-Date.now()}if(J===void 0){let H=(W=Z.maxRetries)!==null&&W!==void 0?W:this.maxRetries;J=this.calculateDefaultRetryTimeoutMillis($,H)}return await YU(J),this.makeRequest(Z,$-1,Q)}calculateDefaultRetryTimeoutMillis(Z,$){let W=$-Z,J=Math.min(0.5*Math.pow(2,W),8),K=1-Math.random()*0.25;return J*K*1000}async buildRequest(Z,{retryCount:$=0}={}){var Q,Y,W;let J=Object.assign({},Z),{method:K,path:q,query:H,defaultBaseURL:w}=J,F=this.buildURL(q,H,w);if("timeout"in J)$U("timeout",J.timeout);J.timeout=(Q=J.timeout)!==null&&Q!==void 0?Q:this.timeout;let{bodyHeaders:z,body:G}=this.buildBody({options:J}),D=await this.buildHeaders({options:Z,method:K,bodyHeaders:z,retryCount:$});return{req:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({method:K,headers:D},J.signal&&{signal:J.signal}),globalThis.ReadableStream&&G instanceof globalThis.ReadableStream&&{duplex:"half"}),G&&{body:G}),(Y=this.fetchOptions)!==null&&Y!==void 0?Y:{}),(W=J.fetchOptions)!==null&&W!==void 0?W:{}),url:F,timeout:J.timeout}}async buildHeaders({options:Z,method:$,bodyHeaders:Q,retryCount:Y}){let W={};if(this.idempotencyHeader&&$!=="get"){if(!Z.idempotencyKey)Z.idempotencyKey=this.defaultIdempotencyKey();W[this.idempotencyHeader]=Z.idempotencyKey}let J=await this.authHeaders(Z),K=Y1([W,{Accept:"application/json","User-Agent":this.getUserAgent()},this._options.defaultHeaders,Q,Z.headers,J]);return this.validateHeaders(K),K.values}_makeAbort(Z){return()=>Z.abort()}buildBody({options:{body:Z,headers:$}}){if(!Z)return{bodyHeaders:void 0,body:void 0};let Q=Y1([$]);if(ArrayBuffer.isView(Z)||Z instanceof ArrayBuffer||Z instanceof DataView||typeof Z==="string"&&Q.values.has("content-type")||globalThis.Blob&&Z instanceof globalThis.Blob||Z instanceof FormData||Z instanceof URLSearchParams||globalThis.ReadableStream&&Z instanceof globalThis.ReadableStream)return{bodyHeaders:void 0,body:Z};else if(typeof Z==="object"&&((Symbol.asyncIterator in Z)||(Symbol.iterator in Z)&&("next"in Z)&&typeof Z.next==="function"))return{bodyHeaders:void 0,body:VU(Z)};else if(typeof Z==="object"&&Q.values.get("content-type")==="application/x-www-form-urlencoded")return{bodyHeaders:{"content-type":"application/x-www-form-urlencoded"},body:this.stringifyQuery(Z)};else return this.encoder({body:Z,headers:Q})}}J8.DEFAULT_TIMEOUT=60000;class w0 extends J8{constructor(){super(...arguments);this.interactions=new jZ(this),this.webhooks=new hZ(this)}}NJ=w0;w0.GeminiNextGenAPIClient=NJ;w0.GeminiNextGenAPIClientError=C0;w0.APIError=T0;w0.APIConnectionError=X1;w0.APIConnectionTimeoutError=BZ;w0.APIUserAbortError=o1;w0.NotFoundError=PZ;w0.ConflictError=SZ;w0.RateLimitError=vZ;w0.BadRequestError=LZ;w0.AuthenticationError=RZ;w0.InternalServerError=EZ;w0.PermissionDeniedError=AZ;w0.UnprocessableEntityError=CZ;w0.toFile=GU;w0.Interactions=jZ;w0.Webhooks=hZ;var JV="x-goog-api-key",W1="https://www.googleapis.com/auth/cloud-platform";class TJ{constructor(Z){if(Z.apiKey!==void 0){this.apiKey=Z.apiKey;return}let $=PU(Z.googleAuthOptions);this.googleAuth=new KV.GoogleAuth($)}async addAuthHeaders(Z,$){if(this.apiKey!==void 0){if(this.apiKey.startsWith("auth_tokens/"))throw Error("Ephemeral tokens are only supported by the live API.");this.addKeyHeader(Z);return}return this.addGoogleAuthHeaders(Z,$)}addKeyHeader(Z){if(Z.get(JV)!==null)return;if(this.apiKey===void 0)throw Error("Trying to set API key header but apiKey is not set");Z.append(JV,this.apiKey)}async addGoogleAuthHeaders(Z,$){if(this.googleAuth===void 0)throw Error("Trying to set google-auth headers but googleAuth is unset");let Q=await this.googleAuth.getRequestHeaders($);for(let[Y,W]of Q){if(Z.get(Y)!==null)continue;Z.append(Y,W)}}}function PU(Z){let $;if(!Z)return $={scopes:[W1]},$;else{if($=Z,!$.scopes)return $.scopes=[W1],$;else if(typeof $.scopes==="string"&&$.scopes!==W1||Array.isArray($.scopes)&&$.scopes.indexOf(W1)<0)throw Error(`Invalid auth scopes. Scopes must include: ${W1}`);return $}}class BJ{async download(Z,$){if(Z.downloadPath){let Q=await SU(Z,$);if(Q instanceof I4){let Y=Jw(Z.downloadPath);Kw.fromWeb(Q.responseInternal.body).pipe(Y),await qw(Y)}else try{await Xw(Z.downloadPath,Q,{encoding:"base64"})}catch(Y){throw Error(`Failed to write file to ${Z.downloadPath}: ${Y}`)}}}}async function SU(Z,$){var Q,Y,W;let J=NZ(Z.file);if(J!==void 0)return await $.request({path:`files/${J}:download`,httpMethod:"GET",queryParams:{alt:"media"},httpOptions:(Q=Z.config)===null||Q===void 0?void 0:Q.httpOptions,abortSignal:(Y=Z.config)===null||Y===void 0?void 0:Y.abortSignal});else if(_V(Z.file)){let K=(W=Z.file.video)===null||W===void 0?void 0:W.videoBytes;if(typeof K==="string")return K;else throw Error("Failed to download generated video, Uri or videoBytes not found.")}else if(hV(Z.file)){let K=Z.file.videoBytes;if(typeof K==="string")return K;else throw Error("Failed to download video, Uri or videoBytes not found.")}else throw Error("Unsupported file type")}class LJ{create(Z,$,Q){return new RJ(Z,$,Q)}}class RJ{constructor(Z,$,Q){this.url=Z,this.headers=$,this.callbacks=Q}connect(){this.ws=new qV.WebSocket(this.url,{headers:this.headers}),this.ws.onopen=this.callbacks.onopen,this.ws.onerror=this.callbacks.onerror,this.ws.onclose=this.callbacks.onclose,this.ws.onmessage=this.callbacks.onmessage}send(Z){if(this.ws===void 0)throw Error("WebSocket is not connected");this.ws.send(Z)}close(){if(this.ws===void 0)throw Error("WebSocket is not connected");this.ws.close()}}function CU(Z,$){let Q={},Y=V(Z,["name"]);if(Y!=null)X(Q,["_url","name"],Y);return Q}function vU(Z,$){let Q={},Y=V(Z,["name"]);if(Y!=null)X(Q,["_url","name"],Y);return Q}function EU(Z,$){let Q={},Y=V(Z,["sdkHttpResponse"]);if(Y!=null)X(Q,["sdkHttpResponse"],Y);return Q}function OU(Z,$){let Q={},Y=V(Z,["sdkHttpResponse"]);if(Y!=null)X(Q,["sdkHttpResponse"],Y);return Q}function jU(Z,$,Q){let Y={};if(V(Z,["validationDataset"])!==void 0)throw Error("validationDataset parameter is not supported in Gemini API.");let W=V(Z,["tunedModelDisplayName"]);if($!==void 0&&W!=null)X($,["displayName"],W);if(V(Z,["description"])!==void 0)throw Error("description parameter is not supported in Gemini API.");let J=V(Z,["epochCount"]);if($!==void 0&&J!=null)X($,["tuningTask","hyperparameters","epochCount"],J);let K=V(Z,["learningRateMultiplier"]);if(K!=null)X(Y,["tuningTask","hyperparameters","learningRateMultiplier"],K);if(V(Z,["exportLastCheckpointOnly"])!==void 0)throw Error("exportLastCheckpointOnly parameter is not supported in Gemini API.");if(V(Z,["preTunedModelCheckpointId"])!==void 0)throw Error("preTunedModelCheckpointId parameter is not supported in Gemini API.");if(V(Z,["adapterSize"])!==void 0)throw Error("adapterSize parameter is not supported in Gemini API.");if(V(Z,["tuningMode"])!==void 0)throw Error("tuningMode parameter is not supported in Gemini API.");if(V(Z,["customBaseModel"])!==void 0)throw Error("customBaseModel parameter is not supported in Gemini API.");let q=V(Z,["batchSize"]);if($!==void 0&&q!=null)X($,["tuningTask","hyperparameters","batchSize"],q);let H=V(Z,["learningRate"]);if($!==void 0&&H!=null)X($,["tuningTask","hyperparameters","learningRate"],H);if(V(Z,["labels"])!==void 0)throw Error("labels parameter is not supported in Gemini API.");if(V(Z,["beta"])!==void 0)throw Error("beta parameter is not supported in Gemini API.");if(V(Z,["baseTeacherModel"])!==void 0)throw Error("baseTeacherModel parameter is not supported in Gemini API.");if(V(Z,["tunedTeacherModelSource"])!==void 0)throw Error("tunedTeacherModelSource parameter is not supported in Gemini API.");if(V(Z,["sftLossWeightMultiplier"])!==void 0)throw Error("sftLossWeightMultiplier parameter is not supported in Gemini API.");if(V(Z,["outputUri"])!==void 0)throw Error("outputUri parameter is not supported in Gemini API.");if(V(Z,["encryptionSpec"])!==void 0)throw Error("encryptionSpec parameter is not supported in Gemini API.");return Y}function _U(Z,$,Q){let Y={},W=V(Q,["config","method"]);if(W===void 0)W="SUPERVISED_FINE_TUNING";if(W==="SUPERVISED_FINE_TUNING"){let S=V(Z,["validationDataset"]);if($!==void 0&&S!=null)X($,["supervisedTuningSpec"],l6(S))}else if(W==="PREFERENCE_TUNING"){let S=V(Z,["validationDataset"]);if($!==void 0&&S!=null)X($,["preferenceOptimizationSpec"],l6(S))}else if(W==="DISTILLATION"){let S=V(Z,["validationDataset"]);if($!==void 0&&S!=null)X($,["distillationSpec"],l6(S))}let J=V(Z,["tunedModelDisplayName"]);if($!==void 0&&J!=null)X($,["tunedModelDisplayName"],J);let K=V(Z,["description"]);if($!==void 0&&K!=null)X($,["description"],K);let q=V(Q,["config","method"]);if(q===void 0)q="SUPERVISED_FINE_TUNING";if(q==="SUPERVISED_FINE_TUNING"){let S=V(Z,["epochCount"]);if($!==void 0&&S!=null)X($,["supervisedTuningSpec","hyperParameters","epochCount"],S)}else if(q==="PREFERENCE_TUNING"){let S=V(Z,["epochCount"]);if($!==void 0&&S!=null)X($,["preferenceOptimizationSpec","hyperParameters","epochCount"],S)}else if(q==="DISTILLATION"){let S=V(Z,["epochCount"]);if($!==void 0&&S!=null)X($,["distillationSpec","hyperParameters","epochCount"],S)}let H=V(Q,["config","method"]);if(H===void 0)H="SUPERVISED_FINE_TUNING";if(H==="SUPERVISED_FINE_TUNING"){let S=V(Z,["learningRateMultiplier"]);if($!==void 0&&S!=null)X($,["supervisedTuningSpec","hyperParameters","learningRateMultiplier"],S)}else if(H==="PREFERENCE_TUNING"){let S=V(Z,["learningRateMultiplier"]);if($!==void 0&&S!=null)X($,["preferenceOptimizationSpec","hyperParameters","learningRateMultiplier"],S)}else if(H==="DISTILLATION"){let S=V(Z,["learningRateMultiplier"]);if($!==void 0&&S!=null)X($,["distillationSpec","hyperParameters","learningRateMultiplier"],S)}let w=V(Q,["config","method"]);if(w===void 0)w="SUPERVISED_FINE_TUNING";if(w==="SUPERVISED_FINE_TUNING"){let S=V(Z,["exportLastCheckpointOnly"]);if($!==void 0&&S!=null)X($,["supervisedTuningSpec","exportLastCheckpointOnly"],S)}else if(w==="PREFERENCE_TUNING"){let S=V(Z,["exportLastCheckpointOnly"]);if($!==void 0&&S!=null)X($,["preferenceOptimizationSpec","exportLastCheckpointOnly"],S)}else if(w==="DISTILLATION"){let S=V(Z,["exportLastCheckpointOnly"]);if($!==void 0&&S!=null)X($,["distillationSpec","exportLastCheckpointOnly"],S)}let F=V(Q,["config","method"]);if(F===void 0)F="SUPERVISED_FINE_TUNING";if(F==="SUPERVISED_FINE_TUNING"){let S=V(Z,["adapterSize"]);if($!==void 0&&S!=null)X($,["supervisedTuningSpec","hyperParameters","adapterSize"],S)}else if(F==="PREFERENCE_TUNING"){let S=V(Z,["adapterSize"]);if($!==void 0&&S!=null)X($,["preferenceOptimizationSpec","hyperParameters","adapterSize"],S)}else if(F==="DISTILLATION"){let S=V(Z,["adapterSize"]);if($!==void 0&&S!=null)X($,["distillationSpec","hyperParameters","adapterSize"],S)}let z=V(Q,["config","method"]);if(z===void 0)z="SUPERVISED_FINE_TUNING";if(z==="SUPERVISED_FINE_TUNING"){let S=V(Z,["tuningMode"]);if($!==void 0&&S!=null)X($,["supervisedTuningSpec","tuningMode"],S)}else if(z==="DISTILLATION"){let S=V(Z,["tuningMode"]);if($!==void 0&&S!=null)X($,["distillationSpec","tuningMode"],S)}let G=V(Z,["customBaseModel"]);if($!==void 0&&G!=null)X($,["customBaseModel"],G);let D=V(Q,["config","method"]);if(D===void 0)D="SUPERVISED_FINE_TUNING";if(D==="SUPERVISED_FINE_TUNING"){let S=V(Z,["batchSize"]);if($!==void 0&&S!=null)X($,["supervisedTuningSpec","hyperParameters","batchSize"],S)}else if(D==="DISTILLATION"){let S=V(Z,["batchSize"]);if($!==void 0&&S!=null)X($,["distillationSpec","hyperParameters","batchSize"],S)}let T=V(Q,["config","method"]);if(T===void 0)T="SUPERVISED_FINE_TUNING";if(T==="SUPERVISED_FINE_TUNING"){let S=V(Z,["learningRate"]);if($!==void 0&&S!=null)X($,["supervisedTuningSpec","hyperParameters","learningRate"],S)}else if(T==="DISTILLATION"){let S=V(Z,["learningRate"]);if($!==void 0&&S!=null)X($,["distillationSpec","hyperParameters","learningRate"],S)}let I=V(Z,["labels"]);if($!==void 0&&I!=null)X($,["labels"],I);let P=V(Z,["beta"]);if($!==void 0&&P!=null)X($,["preferenceOptimizationSpec","hyperParameters","beta"],P);let O=V(Z,["baseTeacherModel"]);if($!==void 0&&O!=null)X($,["distillationSpec","baseTeacherModel"],O);let y=V(Z,["tunedTeacherModelSource"]);if($!==void 0&&y!=null)X($,["distillationSpec","tunedTeacherModelSource"],y);let x=V(Z,["sftLossWeightMultiplier"]);if($!==void 0&&x!=null)X($,["distillationSpec","hyperParameters","sftLossWeightMultiplier"],x);let m=V(Z,["outputUri"]);if($!==void 0&&m!=null)X($,["outputUri"],m);let f=V(Z,["encryptionSpec"]);if($!==void 0&&f!=null)X($,["encryptionSpec"],f);return Y}function hU(Z,$){let Q={},Y=V(Z,["baseModel"]);if(Y!=null)X(Q,["baseModel"],Y);let W=V(Z,["preTunedModel"]);if(W!=null)X(Q,["preTunedModel"],W);let J=V(Z,["trainingDataset"]);if(J!=null)uU(J);let K=V(Z,["config"]);if(K!=null)jU(K,Q);return Q}function kU(Z,$){let Q={},Y=V(Z,["baseModel"]);if(Y!=null)X(Q,["baseModel"],Y);let W=V(Z,["preTunedModel"]);if(W!=null)X(Q,["preTunedModel"],W);let J=V(Z,["trainingDataset"]);if(J!=null)dU(J,Q,$);let K=V(Z,["config"]);if(K!=null)_U(K,Q,$);return Q}function yU(Z,$){let Q={},Y=V(Z,["name"]);if(Y!=null)X(Q,["_url","name"],Y);return Q}function xU(Z,$){let Q={},Y=V(Z,["name"]);if(Y!=null)X(Q,["_url","name"],Y);return Q}function fU(Z,$,Q){let Y={},W=V(Z,["pageSize"]);if($!==void 0&&W!=null)X($,["_query","pageSize"],W);let J=V(Z,["pageToken"]);if($!==void 0&&J!=null)X($,["_query","pageToken"],J);let K=V(Z,["filter"]);if($!==void 0&&K!=null)X($,["_query","filter"],K);return Y}function gU(Z,$){let Q={},Y=V(Z,["config"]);if(Y!=null)fU(Y,Q);return Q}function bU(Z,$){let Q={},Y=V(Z,["sdkHttpResponse"]);if(Y!=null)X(Q,["sdkHttpResponse"],Y);let W=V(Z,["nextPageToken"]);if(W!=null)X(Q,["nextPageToken"],W);let J=V(Z,["tuningJobs"]);if(J!=null){let K=J;if(Array.isArray(K))K=K.map((q)=>{return wZ(q)});X(Q,["tuningJobs"],K)}return Q}function mU(Z,$){let Q={},Y=V(Z,["name"]);if(Y!=null)X(Q,["model"],Y);let W=V(Z,["name"]);if(W!=null)X(Q,["endpoint"],W);return Q}function uU(Z,$){let Q={};if(V(Z,["gcsUri"])!==void 0)throw Error("gcsUri parameter is not supported in Gemini API.");if(V(Z,["vertexDatasetResource"])!==void 0)throw Error("vertexDatasetResource parameter is not supported in Gemini API.");let Y=V(Z,["examples"]);if(Y!=null){let W=Y;if(Array.isArray(W))W=W.map((J)=>{return J});X(Q,["examples","examples"],W)}return Q}function dU(Z,$,Q){let Y={},W=V(Q,["config","method"]);if(W===void 0)W="SUPERVISED_FINE_TUNING";if(W==="SUPERVISED_FINE_TUNING"){let K=V(Z,["gcsUri"]);if($!==void 0&&K!=null)X($,["supervisedTuningSpec","trainingDatasetUri"],K)}else if(W==="PREFERENCE_TUNING"){let K=V(Z,["gcsUri"]);if($!==void 0&&K!=null)X($,["preferenceOptimizationSpec","trainingDatasetUri"],K)}else if(W==="DISTILLATION"){let K=V(Z,["gcsUri"]);if($!==void 0&&K!=null)X($,["distillationSpec","promptDatasetUri"],K)}let J=V(Q,["config","method"]);if(J===void 0)J="SUPERVISED_FINE_TUNING";if(J==="SUPERVISED_FINE_TUNING"){let K=V(Z,["vertexDatasetResource"]);if($!==void 0&&K!=null)X($,["supervisedTuningSpec","trainingDatasetUri"],K)}else if(J==="PREFERENCE_TUNING"){let K=V(Z,["vertexDatasetResource"]);if($!==void 0&&K!=null)X($,["preferenceOptimizationSpec","trainingDatasetUri"],K)}else if(J==="DISTILLATION"){let K=V(Z,["vertexDatasetResource"]);if($!==void 0&&K!=null)X($,["distillationSpec","promptDatasetUri"],K)}if(V(Z,["examples"])!==void 0)throw Error("examples parameter is not supported in Gemini Enterprise Agent Platform (previously known as Vertex AI).");return Y}function lU(Z,$){let Q={},Y=V(Z,["sdkHttpResponse"]);if(Y!=null)X(Q,["sdkHttpResponse"],Y);let W=V(Z,["name"]);if(W!=null)X(Q,["name"],W);let J=V(Z,["state"]);if(J!=null)X(Q,["state"],jV(J));let K=V(Z,["createTime"]);if(K!=null)X(Q,["createTime"],K);let q=V(Z,["tuningTask","startTime"]);if(q!=null)X(Q,["startTime"],q);let H=V(Z,["tuningTask","completeTime"]);if(H!=null)X(Q,["endTime"],H);let w=V(Z,["updateTime"]);if(w!=null)X(Q,["updateTime"],w);let F=V(Z,["description"]);if(F!=null)X(Q,["description"],F);let z=V(Z,["baseModel"]);if(z!=null)X(Q,["baseModel"],z);let G=V(Z,["_self"]);if(G!=null)X(Q,["tunedModel"],mU(G));return Q}function wZ(Z,$){let Q={},Y=V(Z,["sdkHttpResponse"]);if(Y!=null)X(Q,["sdkHttpResponse"],Y);let W=V(Z,["name"]);if(W!=null)X(Q,["name"],W);let J=V(Z,["state"]);if(J!=null)X(Q,["state"],jV(J));let K=V(Z,["createTime"]);if(K!=null)X(Q,["createTime"],K);let q=V(Z,["startTime"]);if(q!=null)X(Q,["startTime"],q);let H=V(Z,["endTime"]);if(H!=null)X(Q,["endTime"],H);let w=V(Z,["updateTime"]);if(w!=null)X(Q,["updateTime"],w);let F=V(Z,["error"]);if(F!=null)X(Q,["error"],F);let z=V(Z,["description"]);if(z!=null)X(Q,["description"],z);let G=V(Z,["baseModel"]);if(G!=null)X(Q,["baseModel"],G);let D=V(Z,["tunedModel"]);if(D!=null)X(Q,["tunedModel"],D);let T=V(Z,["preTunedModel"]);if(T!=null)X(Q,["preTunedModel"],T);let I=V(Z,["supervisedTuningSpec"]);if(I!=null)X(Q,["supervisedTuningSpec"],I);let P=V(Z,["preferenceOptimizationSpec"]);if(P!=null)X(Q,["preferenceOptimizationSpec"],P);let O=V(Z,["distillationSpec"]);if(O!=null)X(Q,["distillationSpec"],O);let y=V(Z,["tuningDataStats"]);if(y!=null)X(Q,["tuningDataStats"],y);let x=V(Z,["encryptionSpec"]);if(x!=null)X(Q,["encryptionSpec"],x);let m=V(Z,["partnerModelTuningSpec"]);if(m!=null)X(Q,["partnerModelTuningSpec"],m);let f=V(Z,["customBaseModel"]);if(f!=null)X(Q,["customBaseModel"],f);let S=V(Z,["evaluateDatasetRuns"]);if(S!=null){let R0=S;if(Array.isArray(R0))R0=R0.map((H0)=>{return H0});X(Q,["evaluateDatasetRuns"],R0)}let d=V(Z,["experiment"]);if(d!=null)X(Q,["experiment"],d);let h=V(Z,["fullFineTuningSpec"]);if(h!=null)X(Q,["fullFineTuningSpec"],h);let _=V(Z,["labels"]);if(_!=null)X(Q,["labels"],_);let n=V(Z,["outputUri"]);if(n!=null)X(Q,["outputUri"],n);let o=V(Z,["pipelineJob"]);if(o!=null)X(Q,["pipelineJob"],o);let t=V(Z,["serviceAccount"]);if(t!=null)X(Q,["serviceAccount"],t);let J0=V(Z,["tunedModelDisplayName"]);if(J0!=null)X(Q,["tunedModelDisplayName"],J0);let $0=V(Z,["tuningJobState"]);if($0!=null)X(Q,["tuningJobState"],$0);let V0=V(Z,["veoTuningSpec"]);if(V0!=null)X(Q,["veoTuningSpec"],V0);let q0=V(Z,["distillationSamplingSpec"]);if(q0!=null)X(Q,["distillationSamplingSpec"],q0);let L0=V(Z,["tuningJobMetadata"]);if(L0!=null)X(Q,["tuningJobMetadata"],L0);return Q}function cU(Z,$){let Q={},Y=V(Z,["sdkHttpResponse"]);if(Y!=null)X(Q,["sdkHttpResponse"],Y);let W=V(Z,["name"]);if(W!=null)X(Q,["name"],W);let J=V(Z,["metadata"]);if(J!=null)X(Q,["metadata"],J);let K=V(Z,["done"]);if(K!=null)X(Q,["done"],K);let q=V(Z,["error"]);if(q!=null)X(Q,["error"],q);return Q}function l6(Z,$){let Q={},Y=V(Z,["gcsUri"]);if(Y!=null)X(Q,["validationDatasetUri"],Y);let W=V(Z,["vertexDatasetResource"]);if(W!=null)X(Q,["validationDatasetUri"],W);return Q}class AJ extends a0{constructor(Z){super();this.apiClient=Z,this.list=async($={})=>{return new q4(e0.PAGED_ITEM_TUNING_JOBS,(Q)=>this.listInternal(Q),await this.listInternal($),$)},this.get=async($)=>{return await this.getInternal($)},this.tune=async($)=>{var Q;if(this.apiClient.isVertexAI())if($.baseModel.startsWith("projects/")){let Y={tunedModelName:$.baseModel};if((Q=$.config)===null||Q===void 0?void 0:Q.preTunedModelCheckpointId)Y.checkpointId=$.config.preTunedModelCheckpointId;let W=Object.assign(Object.assign({},$),{preTunedModel:Y});return W.baseModel=void 0,await this.tuneInternal(W)}else{let Y=Object.assign({},$);return await this.tuneInternal(Y)}else{let Y=Object.assign({},$),W=await this.tuneMldevInternal(Y),J="";if(W.metadata!==void 0&&W.metadata.tunedModel!==void 0)J=W.metadata.tunedModel;else if(W.name!==void 0&&W.name.includes("/operations/"))J=W.name.split("/operations/")[0];return{name:J,state:p6.JOB_STATE_QUEUED}}}}async getInternal(Z){var $,Q,Y,W;let J,K="",q={};if(this.apiClient.isVertexAI()){let H=xU(Z);return K=u("{name}",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"GET",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((w)=>{return w.json().then((F)=>{let z=F;return z.sdkHttpResponse={headers:w.headers},z})}),J.then((w)=>{return wZ(w)})}else{let H=yU(Z);return K=u("{name}",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"GET",httpOptions:(Y=Z.config)===null||Y===void 0?void 0:Y.httpOptions,abortSignal:(W=Z.config)===null||W===void 0?void 0:W.abortSignal}).then((w)=>{return w.json().then((F)=>{let z=F;return z.sdkHttpResponse={headers:w.headers},z})}),J.then((w)=>{return lU(w)})}}async listInternal(Z){var $,Q;let Y,W="",J={};if(this.apiClient.isVertexAI()){let K=gU(Z);return W=u("tuningJobs",K._url),J=K._query,delete K._url,delete K._query,Y=this.apiClient.request({path:W,queryParams:J,body:JSON.stringify(K),httpMethod:"GET",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((q)=>{return q.json().then((H)=>{let w=H;return w.sdkHttpResponse={headers:q.headers},w})}),Y.then((q)=>{let H=bU(q),w=new DV;return Object.assign(w,H),w})}else throw Error("This method is only supported by the Gemini Enterprise Agent Platform (previously known as Vertex AI).")}async cancel(Z){var $,Q,Y,W;let J,K="",q={};if(this.apiClient.isVertexAI()){let H=vU(Z);return K=u("{name}:cancel",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"POST",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((w)=>{return w.json().then((F)=>{let z=F;return z.sdkHttpResponse={headers:w.headers},z})}),J.then((w)=>{let F=OU(w),z=new t6;return Object.assign(z,F),z})}else{let H=CU(Z);return K=u("{name}:cancel",H._url),q=H._query,delete H._url,delete H._query,J=this.apiClient.request({path:K,queryParams:q,body:JSON.stringify(H),httpMethod:"POST",httpOptions:(Y=Z.config)===null||Y===void 0?void 0:Y.httpOptions,abortSignal:(W=Z.config)===null||W===void 0?void 0:W.abortSignal}).then((w)=>{return w.json().then((F)=>{let z=F;return z.sdkHttpResponse={headers:w.headers},z})}),J.then((w)=>{let F=EU(w),z=new t6;return Object.assign(z,F),z})}}async tuneInternal(Z){var $,Q;let Y,W="",J={};if(this.apiClient.isVertexAI()){let K=kU(Z,Z);return W=u("tuningJobs",K._url),J=K._query,delete K._url,delete K._query,Y=this.apiClient.request({path:W,queryParams:J,body:JSON.stringify(K),httpMethod:"POST",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((q)=>{return q.json().then((H)=>{let w=H;return w.sdkHttpResponse={headers:q.headers},w})}),Y.then((q)=>{return wZ(q)})}else throw Error("This method is only supported by the Gemini Enterprise Agent Platform (previously known as Vertex AI).")}async tuneMldevInternal(Z){var $,Q;let Y,W="",J={};if(this.apiClient.isVertexAI())throw Error("This method is only supported by the Gemini Developer API.");else{let K=hU(Z);return W=u("tunedModels",K._url),J=K._query,delete K._url,delete K._query,Y=this.apiClient.request({path:W,queryParams:J,body:JSON.stringify(K),httpMethod:"POST",httpOptions:($=Z.config)===null||$===void 0?void 0:$.httpOptions,abortSignal:(Q=Z.config)===null||Q===void 0?void 0:Q.abortSignal}).then((q)=>{return q.json().then((H)=>{let w=H;return w.sdkHttpResponse={headers:q.headers},w})}),Y.then((q)=>{return cU(q)})}}}var PJ=8388608,SJ=3,CJ=1000,vJ=2,J4="x-goog-upload-status";async function pU(Z,$,Q,Y){var W;let J=await EJ(Z,$,Q,Y),K=await(J===null||J===void 0?void 0:J.json());if(((W=J===null||J===void 0?void 0:J.headers)===null||W===void 0?void 0:W[J4])!=="final")throw Error("Failed to upload file: Upload status is not finalized.");return K.file}async function iU(Z,$,Q,Y){var W;let J=await EJ(Z,$,Q,Y),K=await(J===null||J===void 0?void 0:J.json());if(((W=J===null||J===void 0?void 0:J.headers)===null||W===void 0?void 0:W[J4])!=="final")throw Error("Failed to upload file: Upload status is not finalized.");let q=FZ(K),H=new $8;return Object.assign(H,q),H}async function EJ(Z,$,Q,Y){var W,J,K;let q=$,H=(Y===null||Y===void 0?void 0:Y.baseUrl)||((W=Q.clientOptions.httpOptions)===null||W===void 0?void 0:W.baseUrl);if(H){let D=new URL(H),T=new URL($);T.protocol=D.protocol,T.host=D.host,T.port=D.port,q=T.toString()}let w=0,F=0,z=new I4(new Response),G="upload";w=Z.size;while(F<w){let D=Math.min(PJ,w-F),T=Z.slice(F,F+D);if(F+D>=w)G+=", finalize";let I=0,P=CJ;while(I<SJ){let O=Object.assign(Object.assign({},(Y===null||Y===void 0?void 0:Y.headers)||{}),{"X-Goog-Upload-Command":G,"X-Goog-Upload-Offset":String(F),"Content-Length":String(D)});if(z=await Q.request({path:"",body:T,httpMethod:"POST",httpOptions:Object.assign(Object.assign({},Y),{apiVersion:"",baseUrl:q,headers:O})}),(J=z===null||z===void 0?void 0:z.headers)===null||J===void 0?void 0:J[J4])break;I++,await OJ(P),P=P*vJ}if(F+=D,((K=z===null||z===void 0?void 0:z.headers)===null||K===void 0?void 0:K[J4])!=="active")break;if(w<=F)throw Error("All content has been uploaded, but the upload status is not finalized.")}return z}async function aU(Z){return{size:Z.size,type:Z.type}}function OJ(Z){return new Promise(($)=>setTimeout($,Z))}class jJ{async stat(Z){let $={size:0,type:void 0};if(typeof Z==="string"){let Q=await Z8.stat(Z);return $.size=Q.size,$.type=this.inferMimeType(Z),$}else return await aU(Z)}async upload(Z,$,Q,Y){if(typeof Z==="string")return await this.uploadFileFromPath(Z,$,Q,Y);else return pU(Z,$,Q,Y)}async uploadToFileSearchStore(Z,$,Q,Y){if(typeof Z==="string")return await this.uploadFileToFileSearchStoreFromPath(Z,$,Q,Y);else return iU(Z,$,Q,Y)}inferMimeType(Z){let $=Z.slice(Z.lastIndexOf(".")+1);return{aac:"audio/aac",abw:"application/x-abiword",arc:"application/x-freearc",avi:"video/x-msvideo",azw:"application/vnd.amazon.ebook",bin:"application/octet-stream",bmp:"image/bmp",bz:"application/x-bzip",bz2:"application/x-bzip2",csh:"application/x-csh",css:"text/css",csv:"text/csv",doc:"application/msword",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",eot:"application/vnd.ms-fontobject",epub:"application/epub+zip",gz:"application/gzip",gif:"image/gif",htm:"text/html",html:"text/html",ico:"image/vnd.microsoft.icon",ics:"text/calendar",jar:"application/java-archive",jpeg:"image/jpeg",jpg:"image/jpeg",js:"text/javascript",json:"application/json",jsonld:"application/ld+json",kml:"application/vnd.google-earth.kml+xml",kmz:"application/vnd.google-earth.kmz+xml",mjs:"text/javascript",mp3:"audio/mpeg",mp4:"video/mp4",mpeg:"video/mpeg",mpkg:"application/vnd.apple.installer+xml",odt:"application/vnd.oasis.opendocument.text",oga:"audio/ogg",ogv:"video/ogg",ogx:"application/ogg",opus:"audio/opus",otf:"font/otf",png:"image/png",pdf:"application/pdf",php:"application/x-httpd-php",ppt:"application/vnd.ms-powerpoint",pptx:"application/vnd.openxmlformats-officedocument.presentationml.presentation",rar:"application/vnd.rar",rtf:"application/rtf",sh:"application/x-sh",svg:"image/svg+xml",swf:"application/x-shockwave-flash",tar:"application/x-tar",tif:"image/tiff",tiff:"image/tiff",ts:"video/mp2t",ttf:"font/ttf",txt:"text/plain",vsd:"application/vnd.visio",wav:"audio/wav",weba:"audio/webm",webm:"video/webm",webp:"image/webp",woff:"font/woff",woff2:"font/woff2",xhtml:"application/xhtml+xml",xls:"application/vnd.ms-excel",xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",xml:"application/xml",xul:"application/vnd.mozilla.xul+xml",zip:"application/zip","3gp":"video/3gpp","3g2":"video/3gpp2","7z":"application/x-7z-compressed"}[$.toLowerCase()]}async uploadFileFromPath(Z,$,Q,Y){var W;let J=await this.uploadFileFromPathInternal(Z,$,Q,Y),K=await(J===null||J===void 0?void 0:J.json());if(((W=J===null||J===void 0?void 0:J.headers)===null||W===void 0?void 0:W[J4])!=="final")throw Error("Failed to upload file: Upload status is not finalized.");return K.file}async uploadFileToFileSearchStoreFromPath(Z,$,Q,Y){var W;let J=await this.uploadFileFromPathInternal(Z,$,Q,Y),K=await(J===null||J===void 0?void 0:J.json());if(((W=J===null||J===void 0?void 0:J.headers)===null||W===void 0?void 0:W[J4])!=="final")throw Error("Failed to upload file: Upload status is not finalized.");let q=FZ(K),H=new $8;return Object.assign(H,q),H}async uploadFileFromPathInternal(Z,$,Q,Y){var W,J,K;let q=$,H=(Y===null||Y===void 0?void 0:Y.baseUrl)||((W=Q.clientOptions.httpOptions)===null||W===void 0?void 0:W.baseUrl);if(H){let I=new URL(H),P=new URL($);P.protocol=I.protocol,P.host=I.host,P.port=I.port,q=P.toString()}let w=0,F=0,z=new I4(new Response),G="upload",D,T=HV.basename(Z);try{if(D=await Z8.open(Z,"r"),!D)throw Error("Failed to open file");w=(await D.stat()).size;while(F<w){let I=Math.min(PJ,w-F);if(F+I>=w)G+=", finalize";let P=new Uint8Array(I),{bytesRead:O}=await D.read(P,0,I,F);if(O!==I)throw Error(`Failed to read ${I} bytes from file at offset ${F}. bytes actually read: ${O}`);let y=new Blob([P]),x=0,m=CJ;while(x<SJ){let f=Object.assign(Object.assign({},(Y===null||Y===void 0?void 0:Y.headers)||{}),{"X-Goog-Upload-Command":G,"X-Goog-Upload-Offset":String(F),"Content-Length":String(O),"X-Goog-Upload-File-Name":T});if(z=await Q.request({path:"",body:y,httpMethod:"POST",httpOptions:Object.assign(Object.assign({},Y),{apiVersion:"",baseUrl:q,headers:f})}),(J=z===null||z===void 0?void 0:z.headers)===null||J===void 0?void 0:J[J4])break;x++,await OJ(m),m=m*vJ}if(F+=O,((K=z===null||z===void 0?void 0:z.headers)===null||K===void 0?void 0:K[J4])!=="active")break;if(w<=F)throw Error("All content has been uploaded, but the upload status is not finalized.")}return z}finally{if(D)await D.close()}}}class _J extends pV{async registerFiles(Z){if(typeof process>"u"||!process.versions||!process.versions.node)throw Error("registerFiles is only supported in Node.js environments.");let Q=await Z.auth.getRequestHeaders(),Y=Z.config||{},W=Y.httpOptions||{},J=Object.assign({},W.headers||{});if(Q)if(typeof Q[Symbol.iterator]==="function")for(let[K,q]of Q)J[K]=q;else for(let[K,q]of Object.entries(Q))J[K]=q;return this._registerFiles({uris:Z.uris,config:Object.assign(Object.assign({},Y),{httpOptions:Object.assign(Object.assign({},W),{headers:J})})})}}var nU="gl-node/";function rU(Z){var $;if(Z.enterprise!==void 0||Z.vertexai!==void 0){if(Z.enterprise!==void 0&&Z.vertexai!==void 0&&Z.enterprise!==Z.vertexai)throw Error("enterprise and vertexAI flags have conflicting values, please set enterprise value only.");return($=Z.enterprise)!==null&&$!==void 0?$:Z.vertexai}let Q=X4("GOOGLE_GENAI_USE_ENTERPRISE"),Y=X4("GOOGLE_GENAI_USE_VERTEXAI"),W=XV(Q),J=XV(Y);if(Q!==void 0&&Y!==void 0&&W!==J)console.warn("Warning: Both GOOGLE_GENAI_USE_ENTERPRISE and GOOGLE_GENAI_USE_VERTEXAI are set with conflicting values. The value of GOOGLE_GENAI_USE_ENTERPRISE will be used.");if(Q!==void 0)return W;if(Y!==void 0)return J;return!1}class sU{getNextGenClient(){var Z;let $=this.httpOptions;if(this._nextGenClient===void 0)this._nextGenClient=new w0({baseURL:this.apiClient.getBaseUrl(),apiKey:this.apiKey,apiVersion:this.apiClient.getApiVersion(),clientAdapter:this.apiClient,defaultHeaders:this.apiClient.getDefaultHeaders(),timeout:$===null||$===void 0?void 0:$.timeout,maxRetries:(Z=$===null||$===void 0?void 0:$.retryOptions)===null||Z===void 0?void 0:Z.attempts});if($===null||$===void 0?void 0:$.extraBody)console.warn("GoogleGenAI.interactions: Client level httpOptions.extraBody is not supported by the interactions client and will be ignored.");return this._nextGenClient}get interactions(){if(this._interactions!==void 0)return this._interactions;return console.warn("GoogleGenAI.interactions: Interactions usage is experimental and may change in future versions."),this._interactions=this.getNextGenClient().interactions,this._interactions}get webhooks(){if(this._webhooks!==void 0)return this._webhooks;return this._webhooks=this.getNextGenClient().webhooks,this._webhooks}constructor(Z){var $,Q,Y,W;if((Z.project||Z.location)&&Z.apiKey)throw Error("Project/location and API key are mutually exclusive in the client initializer.");this.vertexai=rU(Z);let J=oU(),K=X4("GOOGLE_CLOUD_PROJECT"),q=X4("GOOGLE_CLOUD_LOCATION");if(this.apiKey=($=Z.apiKey)!==null&&$!==void 0?$:J,this.project=(Q=Z.project)!==null&&Q!==void 0?Q:K,this.location=(Y=Z.location)!==null&&Y!==void 0?Y:q,!this.vertexai&&!this.apiKey)console.warn("API key should be set when using the Gemini API.");if(this.vertexai){if((W=Z.googleAuthOptions)===null||W===void 0?void 0:W.credentials)console.debug("The user provided Google Cloud credentials will take precedence over the API key from the environment variable."),this.apiKey=void 0;if((K||q)&&Z.apiKey)console.debug("The user provided Vertex AI API key will take precedence over the project/location from the environment variables."),this.project=void 0,this.location=void 0;else if((Z.project||Z.location)&&J)console.debug("The user provided project/location will take precedence over the API key from the environment variables."),this.apiKey=void 0;else if((K||q)&&J)console.debug("The project/location from the environment variables will take precedence over the API key from the environment variables."),this.apiKey=void 0;if(!this.location&&!this.apiKey)this.location="global"}let H=Fw(Z.httpOptions,this.vertexai,X4("GOOGLE_VERTEX_BASE_URL"),X4("GOOGLE_GEMINI_BASE_URL"));if(H)if(Z.httpOptions)Z.httpOptions.baseUrl=H;else Z.httpOptions={baseUrl:H};this.apiVersion=Z.apiVersion,this.httpOptions=Z.httpOptions;let w=new TJ({apiKey:this.apiKey,googleAuthOptions:Z.googleAuthOptions});this.apiClient=new eV({auth:w,project:this.project,location:this.location,apiVersion:this.apiVersion,apiKey:this.apiKey,vertexai:this.vertexai,httpOptions:this.httpOptions,userAgentExtra:nU+process.version,uploader:new jJ,downloader:new BJ}),this.models=new JJ(this.apiClient),this.live=new WJ(this.apiClient,w,new LJ),this.batches=new mV(this.apiClient),this.chats=new lV(this.models,this.apiClient),this.caches=new uV(this.apiClient),this.files=new _J(this.apiClient),this.operations=new XJ(this.apiClient),this.authTokens=new KJ(this.apiClient),this.tunings=new AJ(this.apiClient),this.fileSearchStores=new HJ(this.apiClient)}}function X4(Z){var $,Q,Y;return(Y=(Q=($=process===null||process===void 0?void 0:process.env)===null||$===void 0?void 0:$[Z])===null||Q===void 0?void 0:Q.trim())!==null&&Y!==void 0?Y:void 0}function XV(Z){if(Z===void 0)return!1;return Z.toLowerCase()==="true"}function oU(){let Z=X4("GOOGLE_API_KEY"),$=X4("GEMINI_API_KEY");if(Z&&$)console.warn("Both GOOGLE_API_KEY and GEMINI_API_KEY are set. Using GOOGLE_API_KEY.");return Z||$||void 0}
44
- export{bW as Rm,mW as Sm,iW as Tm,i6 as Um,sU as Vm};