@maincode-ai/matilda-code 0.22.2 → 0.22.3-nightly.20261110.cb1234773
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/chunks/agent-7LLN72GU.js +3 -0
- package/chunks/agent-headless-APBRBFN3.js +3 -0
- package/chunks/{askUserQuestion-DHYKAZWH.js → askUserQuestion-76LPP5ST.js} +1 -1
- package/chunks/{chunk-MZ73LBEY.js → chunk-3EQIOCSJ.js} +1 -1
- package/chunks/chunk-4SDFTVQW.js +62 -0
- package/chunks/chunk-B7BF33U4.js +31 -0
- package/chunks/chunk-BEP4F3GO.js +2556 -0
- package/chunks/chunk-DERMLVT6.js +68 -0
- package/chunks/{chunk-OWEBLTAN.js → chunk-EEPSTT7K.js} +1 -1
- package/chunks/{chunk-OF7ORAN6.js → chunk-GDRS4OWI.js} +71 -67
- package/chunks/chunk-HK3QQSM7.js +18 -0
- package/chunks/{chunk-PFXCFIHY.js → chunk-J6NYCXUR.js} +1 -1
- package/chunks/chunk-JVQHQDDE.js +10 -0
- package/chunks/chunk-JZMGEGR6.js +12 -0
- package/chunks/{chunk-HJK3NKAR.js → chunk-M5ABGGE7.js} +1 -1
- package/chunks/chunk-N3AQRPV5.js +207 -0
- package/chunks/{chunk-DZKI2CAC.js → chunk-NO6BFSGG.js} +1 -1
- package/chunks/chunk-QKAKC34Q.js +8 -0
- package/chunks/{chunk-VWM3GUBH.js → chunk-QUITDDTB.js} +1 -1
- package/chunks/{chunk-ZUQRP3N6.js → chunk-R373GBK6.js} +1 -1
- package/chunks/{chunk-BS7Q7KA6.js → chunk-T6MRYRLI.js} +1 -1
- package/chunks/{chunk-REUZDMLM.js → chunk-TVNM3PQ7.js} +25 -25
- package/chunks/chunk-VBZS7ARJ.js +8 -0
- package/chunks/{chunk-FY3LL4OC.js → chunk-VNSW4TSX.js} +1 -1
- package/chunks/{chunk-HRD7WD3P.js → chunk-WAZCC4SE.js} +1 -1
- package/chunks/chunk-YUCEPXGG.js +12 -0
- package/chunks/{computer-use-5T3ZH24D.js → computer-use-RIDTFLYZ.js} +5 -17
- package/chunks/cron-create-T5QOBRRU.js +38 -0
- package/chunks/cron-delete-JXDOHSJF.js +3 -0
- package/chunks/cron-list-ZQ76A2FW.js +5 -0
- package/chunks/{edit-Y7YSDGLT.js → edit-LDTYXEVU.js} +1 -1
- package/chunks/en-SCZAH2YB.js +23 -0
- package/chunks/{enter-worktree-5ZGIYDUE.js → enter-worktree-FOFQXTPW.js} +1 -1
- package/chunks/enterPlanMode-2GHHILQY.js +18 -0
- package/chunks/{exit-worktree-3F5UY76U.js → exit-worktree-OK7AD7DC.js} +1 -1
- package/chunks/{exitPlanMode-HWK5EUVS.js → exitPlanMode-EANVOWTX.js} +30 -27
- package/chunks/{glob-H7DNNPJ4.js → glob-VZD7TOML.js} +1 -1
- package/chunks/{goal-tools-CJINJJ3Y.js → goal-tools-REBEAKVP.js} +1 -1
- package/chunks/{grep-5MCMGW6A.js → grep-JPEHWEM3.js} +1 -1
- package/chunks/ls-EP4ZVFNW.js +15 -0
- package/chunks/{lsp-Y46R5DO5.js → lsp-ULZTGWC4.js} +1 -1
- package/chunks/monitor-5WDGSYNZ.js +33 -0
- package/chunks/notebook-edit-W42S562V.js +17 -0
- package/chunks/openaiContentGenerator-QLDLWN4P.js +52 -0
- package/chunks/read-file-4M76GCWT.js +3 -0
- package/chunks/ripGrep-LF2E2V6N.js +3 -0
- package/chunks/scheduler-G4LEIBL4.js +8 -0
- package/chunks/send-message-TDOMZHNJ.js +8 -0
- package/chunks/shell-NUMSSUOV.js +3 -0
- package/chunks/{skill-5EMGSWRM.js → skill-IVESDHGG.js} +1 -1
- package/chunks/symbol-search-BLJAKP7C.js +19 -0
- package/chunks/syntheticOutput-5SCRQCXN.js +3 -0
- package/chunks/task-create-T4DIVG5X.js +3 -0
- package/chunks/task-detach-ES3IMGJ4.js +9 -0
- package/chunks/task-list-LYK4TOBS.js +9 -0
- package/chunks/{task-stop-OEAEE5R7.js → task-stop-FETAYKFU.js} +1 -1
- package/chunks/{task-update-4ANRU74G.js → task-update-I6PVT46S.js} +1 -1
- package/chunks/{team-create-G4N2NCFN.js → team-create-QQD472XN.js} +1 -1
- package/chunks/team-delete-P5F32IYK.js +8 -0
- package/chunks/todoWrite-ADAGHJLI.js +3 -0
- package/chunks/tool-call-W6PAJOF6.js +3 -0
- package/chunks/tool-search-LGTQYGTC.js +26 -0
- package/chunks/{web-fetch-VA2BZ4VR.js → web-fetch-5X37JMDH.js} +1 -1
- package/chunks/{web-search-OVFXJQDS.js → web-search-62YZTP3D.js} +1 -1
- package/chunks/{workflow-6VMVM5BG.js → workflow-OT4I6TMY.js} +2 -2
- package/chunks/write-file-GMIHG7AP.js +15 -0
- package/cli.js +472 -486
- package/locales/en.js +45 -113
- package/npm-postinstall.js +2 -2
- package/package.json +2 -2
- package/chunks/agent-IJOGVY62.js +0 -3
- package/chunks/agent-headless-FZGKJCVK.js +0 -3
- package/chunks/ca-HHQCT6S2.js +0 -23
- package/chunks/chunk-225CZWD7.js +0 -89
- package/chunks/chunk-3BT7ZYAM.js +0 -121
- package/chunks/chunk-3IG6LNQ3.js +0 -2581
- package/chunks/chunk-46FFWNRO.js +0 -12
- package/chunks/chunk-55YW6EUC.js +0 -8
- package/chunks/chunk-BQDEPKIG.js +0 -46
- package/chunks/chunk-E2KMVG7F.js +0 -8
- package/chunks/chunk-FPGKJJJY.js +0 -13
- package/chunks/chunk-L2FKLLEC.js +0 -12
- package/chunks/chunk-N2BE647T.js +0 -10
- package/chunks/chunk-P24OL22U.js +0 -31
- package/chunks/chunk-VWE5BSHV.js +0 -56
- package/chunks/chunk-WL27X35X.js +0 -44
- package/chunks/cron-create-5RRFCP36.js +0 -38
- package/chunks/cron-delete-7DTRWCSV.js +0 -3
- package/chunks/cron-list-HY6XJD7D.js +0 -5
- package/chunks/de-MJBGC47E.js +0 -23
- package/chunks/en-JITX7JKV.js +0 -23
- package/chunks/enterPlanMode-TWD4MXCW.js +0 -18
- package/chunks/fr-WT3R2JCR.js +0 -23
- package/chunks/ja-OEXP6Z3S.js +0 -23
- package/chunks/keychain-token-storage-BCODB632.js +0 -3
- package/chunks/ls-JORGCXES.js +0 -15
- package/chunks/mcp-client-54J5M542.js +0 -3
- package/chunks/monitor-BRJR6PR3.js +0 -32
- package/chunks/notebook-edit-UCCVQ4JP.js +0 -17
- package/chunks/openaiContentGenerator-H6JOS3XU.js +0 -52
- package/chunks/pt-PCVIFK7H.js +0 -23
- package/chunks/read-file-LVMBCRCT.js +0 -3
- package/chunks/ripGrep-F6AJSDKU.js +0 -3
- package/chunks/ru-CB5SIZZM.js +0 -23
- package/chunks/scheduler-XAOD6LG6.js +0 -8
- package/chunks/send-message-VY4DP63A.js +0 -8
- package/chunks/shell-QUDC6MJK.js +0 -3
- package/chunks/symbol-search-YNGX4Z5T.js +0 -19
- package/chunks/syntheticOutput-4JANVS4D.js +0 -3
- package/chunks/task-create-NRBVXURQ.js +0 -3
- package/chunks/task-detach-VHDDAO2K.js +0 -9
- package/chunks/task-list-T2IET466.js +0 -9
- package/chunks/team-delete-M4ORNSTT.js +0 -8
- package/chunks/todoWrite-RN2OP46T.js +0 -3
- package/chunks/tool-search-WEUURHFZ.js +0 -28
- package/chunks/write-file-5ZAZVXBB.js +0 -15
- package/locales/ca.js +0 -1895
- package/locales/de.js +0 -1935
- package/locales/fr.js +0 -1936
- package/locales/ja.js +0 -1698
- package/locales/pt.js +0 -1921
- package/locales/ru.js +0 -1911
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import{Aa as ns,Ca as os,Cb as rs,Db as is,Fb as ss,I as Xt,K as Oo,L as Uo,M as Lo,U as Go,V as Ot,ha as Fo,ia as qo,qa as St,ya as ts}from"./chunk-GDRS4OWI.js";import{P as Do,Q as xu,V as Nu,d as Mu,e as ku,ea as Ge,f as ot,g as Vn,k as No,r as vt,w as Le}from"./chunk-4SDFTVQW.js";import{h as ht,i as bo,k as ji,m as es}from"./chunk-HEJO7OBH.js";import{b as p}from"./chunk-GZPNIYVZ.js";import{a as J,d as b,f as Pu}from"./chunk-OWGSC52X.js";var bu=b((OS,Du)=>{p();function Fe(t,e){typeof e=="boolean"&&(e={forever:e}),this._originalTimeouts=JSON.parse(JSON.stringify(t)),this._timeouts=t,this._options=e||{},this._maxRetryTime=e&&e.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))}Du.exports=Fe;Fe.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts.slice(0)};Fe.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timer&&clearTimeout(this._timer),this._timeouts=[],this._cachedTimeouts=null};Fe.prototype.retry=function(t){if(this._timeout&&clearTimeout(this._timeout),!t)return!1;var e=new Date().getTime();if(t&&e-this._operationStart>=this._maxRetryTime)return this._errors.push(t),this._errors.unshift(new Error("RetryOperation timeout occurred")),!1;this._errors.push(t);var n=this._timeouts.shift();if(n===void 0)if(this._cachedTimeouts)this._errors.splice(0,this._errors.length-1),n=this._cachedTimeouts.slice(-1);else return!1;var o=this;return this._timer=setTimeout(function(){o._attempts++,o._operationTimeoutCb&&(o._timeout=setTimeout(function(){o._operationTimeoutCb(o._attempts)},o._operationTimeout),o._options.unref&&o._timeout.unref()),o._fn(o._attempts)},n),this._options.unref&&this._timer.unref(),!0};Fe.prototype.attempt=function(t,e){this._fn=t,e&&(e.timeout&&(this._operationTimeout=e.timeout),e.cb&&(this._operationTimeoutCb=e.cb));var n=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){n._operationTimeoutCb()},n._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)};Fe.prototype.try=function(t){console.log("Using RetryOperation.try() is deprecated"),this.attempt(t)};Fe.prototype.start=function(t){console.log("Using RetryOperation.start() is deprecated"),this.attempt(t)};Fe.prototype.start=Fe.prototype.try;Fe.prototype.errors=function(){return this._errors};Fe.prototype.attempts=function(){return this._attempts};Fe.prototype.mainError=function(){if(this._errors.length===0)return null;for(var t={},e=null,n=0,o=0;o<this._errors.length;o++){var r=this._errors[o],i=r.message,s=(t[i]||0)+1;t[i]=s,s>=n&&(e=r,n=s)}return e}});var Ou=b(Ut=>{p();var ng=bu();Ut.operation=function(t){var e=Ut.timeouts(t);return new ng(e,{forever:t&&(t.forever||t.retries===1/0),unref:t&&t.unref,maxRetryTime:t&&t.maxRetryTime})};Ut.timeouts=function(t){if(t instanceof Array)return[].concat(t);var e={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var n in t)e[n]=t[n];if(e.minTimeout>e.maxTimeout)throw new Error("minTimeout is greater than maxTimeout");for(var o=[],r=0;r<e.retries;r++)o.push(this.createTimeout(r,e));return t&&t.forever&&!o.length&&o.push(this.createTimeout(r,e)),o.sort(function(i,s){return i-s}),o};Ut.createTimeout=function(t,e){var n=e.randomize?Math.random()+1:1,o=Math.round(n*Math.max(e.minTimeout,1)*Math.pow(e.factor,t));return o=Math.min(o,e.maxTimeout),o};Ut.wrap=function(t,e,n){if(e instanceof Array&&(n=e,e=null),!n){n=[];for(var o in t)typeof t[o]=="function"&&n.push(o)}for(var r=0;r<n.length;r++){var i=n[r],s=t[i];t[i]=function(l){var u=Ut.operation(e),c=Array.prototype.slice.call(arguments,1),f=c.pop();c.push(function(h){u.retry(h)||(h&&(arguments[0]=u.mainError()),f.apply(this,arguments))}),u.attempt(function(){l.apply(t,c)})}.bind(t,s),t[i].options=e}}});var Lu=b((FS,Uu)=>{p();Uu.exports=Ou()});var Fu=b((BS,Ho)=>{"use strict";p();var og=Lu(),rg=["Failed to fetch","NetworkError when attempting to fetch resource.","The Internet connection appears to be offline.","Network request failed"],Bo=class extends Error{constructor(e){super(),e instanceof Error?(this.originalError=e,{message:e}=e):(this.originalError=new Error(e),this.originalError.stack=this.stack),this.name="AbortError",this.message=e}},ig=(t,e,n)=>{let o=n.retries-(e-1);return t.attemptNumber=e,t.retriesLeft=o,t},sg=t=>rg.includes(t),Gu=(t,e)=>new Promise((n,o)=>{e={onFailedAttempt:()=>{},retries:10,...e};let r=og.operation(e);r.attempt(async i=>{try{n(await t(i))}catch(s){if(!(s instanceof Error)){o(new TypeError(`Non-error was thrown: "${s}". You should only throw errors.`));return}if(s instanceof Bo)r.stop(),o(s.originalError);else if(s instanceof TypeError&&!sg(s.message))r.stop(),o(s);else{ig(s,i,e);try{await e.onFailedAttempt(s)}catch(a){o(a);return}r.retry(s)||o(r.mainError())}}})});Ho.exports=Gu;Ho.exports.default=Gu;Ho.exports.AbortError=Bo});var as=b((VS,Wu)=>{"use strict";p();var Vo=Object.prototype.hasOwnProperty,Ju=Object.prototype.toString,qu=Object.defineProperty,Bu=Object.getOwnPropertyDescriptor,Hu=function(e){return typeof Array.isArray=="function"?Array.isArray(e):Ju.call(e)==="[object Array]"},Vu=function(e){if(!e||Ju.call(e)!=="[object Object]")return!1;var n=Vo.call(e,"constructor"),o=e.constructor&&e.constructor.prototype&&Vo.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!n&&!o)return!1;var r;for(r in e);return typeof r>"u"||Vo.call(e,r)},$u=function(e,n){qu&&n.name==="__proto__"?qu(e,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):e[n.name]=n.newValue},Ku=function(e,n){if(n==="__proto__")if(Vo.call(e,n)){if(Bu)return Bu(e,n).value}else return;return e[n]};Wu.exports=function t(){var e,n,o,r,i,s,a=arguments[0],l=1,u=arguments.length,c=!1;for(typeof a=="boolean"&&(c=a,a=arguments[1]||{},l=2),(a==null||typeof a!="object"&&typeof a!="function")&&(a={});l<u;++l)if(e=arguments[l],e!=null)for(n in e)o=Ku(a,n),r=Ku(e,n),a!==r&&(c&&r&&(Vu(r)||(i=Hu(r)))?(i?(i=!1,s=o&&Hu(o)?o:[]):s=o&&Vu(o)?o:{},$u(a,{name:n,newValue:t(c,s,r)})):typeof r<"u"&&$u(a,{name:n,newValue:r}));return a}});var Yu=b((KS,ag)=>{ag.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 Xu=b((JS,zu)=>{"use strict";p();var lg=Yu();zu.exports={pkg:lg}});var cs=b(qe=>{"use strict";p();var Zu=qe&&qe.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qe,"__esModule",{value:!0});qe.GaxiosError=qe.GAXIOS_ERROR_SYMBOL=void 0;qe.defaultErrorRedactor=ju;var Qu=Zu(as()),ug=Zu(Xu()),ls=ug.default.pkg;qe.GAXIOS_ERROR_SYMBOL=Symbol.for(`${ls.name}-gaxios-error`);var us=class t extends Error{config;response;code;status;error;[qe.GAXIOS_ERROR_SYMBOL]=ls.version;static[Symbol.hasInstance](e){return e&&typeof e=="object"&&qe.GAXIOS_ERROR_SYMBOL in e&&e[qe.GAXIOS_ERROR_SYMBOL]===ls.version?!0:Function.prototype[Symbol.hasInstance].call(t,e)}constructor(e,n,o,r){if(super(e,{cause:r}),this.config=n,this.response=o,this.error=r instanceof Error?r:void 0,this.config=(0,Qu.default)(!0,{},n),this.response&&(this.response.config=(0,Qu.default)(!0,{},this.response.config)),this.response){try{this.response.data=cg(this.config.responseType,this.response?.bodyUsed?this.response?.data:void 0)}catch{}this.status=this.response.status}r instanceof DOMException?this.code=r.name:r&&typeof r=="object"&&"code"in r&&(typeof r.code=="string"||typeof r.code=="number")&&(this.code=r.code)}static extractAPIErrorFromResponse(e,n="The request failed"){let o=n;if(typeof e.data=="string"&&(o=e.data),e.data&&typeof e.data=="object"&&"error"in e.data&&e.data.error&&!e.ok){if(typeof e.data.error=="string")return{message:e.data.error,code:e.status,status:e.statusText};if(typeof e.data.error=="object"){o="message"in e.data.error&&typeof e.data.error.message=="string"?e.data.error.message:o;let r="status"in e.data.error&&typeof e.data.error.status=="string"?e.data.error.status:e.statusText,i="code"in e.data.error&&typeof e.data.error.code=="number"?e.data.error.code:e.status;if("errors"in e.data.error&&Array.isArray(e.data.error.errors)){let s=[];for(let a of e.data.error.errors)typeof a=="object"&&"message"in a&&typeof a.message=="string"&&s.push(a.message);return Object.assign({message:s.join(`
|
|
4
|
+
`)||o,code:i,status:r},e.data.error)}return Object.assign({message:o,code:i,status:r},e.data.error)}}return{message:o,code:e.status,status:e.statusText}}};qe.GaxiosError=us;function cg(t,e){switch(t){case"stream":return e;case"json":return JSON.parse(JSON.stringify(e));case"arraybuffer":return JSON.parse(Buffer.from(e).toString("utf8"));case"blob":return JSON.parse(e.text());default:return e}}function ju(t){let e="<<REDACTED> - See `errorRedactor` option in `gaxios` for configuration>.";function n(i){i&&i.forEach((s,a)=>{(/^authentication$/i.test(a)||/^authorization$/i.test(a)||/secret/i.test(a))&&i.set(a,e)})}function o(i,s){if(typeof i=="object"&&i!==null&&typeof i[s]=="string"){let a=i[s];(/grant_type=/i.test(a)||/assertion=/i.test(a)||/secret/i.test(a))&&(i[s]=e)}}function r(i){!i||typeof i!="object"||(i instanceof FormData||i instanceof URLSearchParams||"forEach"in i&&"set"in i?i.forEach((s,a)=>{(["grant_type","assertion"].includes(a)||/secret/.test(a))&&i.set(a,e)}):("grant_type"in i&&(i.grant_type=e),"assertion"in i&&(i.assertion=e),"client_secret"in i&&(i.client_secret=e)))}return t.config&&(n(t.config.headers),o(t.config,"data"),r(t.config.data),o(t.config,"body"),r(t.config.body),t.config.url.searchParams.has("token")&&t.config.url.searchParams.set("token",e),t.config.url.searchParams.has("client_secret")&&t.config.url.searchParams.set("client_secret",e)),t.response&&(ju({config:t.response.config}),n(t.response.headers),t.response.bodyUsed&&(o(t.response,"data"),r(t.response.data))),t}});var tc=b(ds=>{"use strict";p();Object.defineProperty(ds,"__esModule",{value:!0});ds.getRetryConfig=dg;async function dg(t){let e=ec(t);if(!t||!t.config||!e&&!t.config.retry)return{shouldRetry:!1};e=e||{},e.currentRetryAttempt=e.currentRetryAttempt||0,e.retry=e.retry===void 0||e.retry===null?3:e.retry,e.httpMethodsToRetry=e.httpMethodsToRetry||["GET","HEAD","PUT","OPTIONS","DELETE"],e.noResponseRetries=e.noResponseRetries===void 0||e.noResponseRetries===null?2:e.noResponseRetries,e.retryDelayMultiplier=e.retryDelayMultiplier?e.retryDelayMultiplier:2,e.timeOfFirstRequest=e.timeOfFirstRequest?e.timeOfFirstRequest:Date.now(),e.totalTimeout=e.totalTimeout?e.totalTimeout:Number.MAX_SAFE_INTEGER,e.maxRetryDelay=e.maxRetryDelay?e.maxRetryDelay:Number.MAX_SAFE_INTEGER;let n=[[100,199],[408,408],[429,429],[500,599]];if(e.statusCodesToRetry=e.statusCodesToRetry||n,t.config.retryConfig=e,!await(e.shouldRetry||fg)(t))return{shouldRetry:!1,config:t.config};let r=pg(e);t.config.retryConfig.currentRetryAttempt+=1;let i=e.retryBackoff?e.retryBackoff(t,r):new Promise(s=>{setTimeout(s,r)});return e.onRetryAttempt&&await e.onRetryAttempt(t),await i,{shouldRetry:!0,config:t.config}}function fg(t){let e=ec(t);if(t.config.signal?.aborted&&t.code!=="TimeoutError"||t.code==="AbortError"||!e||e.retry===0||!t.response&&(e.currentRetryAttempt||0)>=e.noResponseRetries||!e.httpMethodsToRetry||!e.httpMethodsToRetry.includes(t.config.method?.toUpperCase()||"GET"))return!1;if(t.response&&t.response.status){let n=!1;for(let[o,r]of e.statusCodesToRetry){let i=t.response.status;if(i>=o&&i<=r){n=!0;break}}if(!n)return!1}return e.currentRetryAttempt=e.currentRetryAttempt||0,!(e.currentRetryAttempt>=e.retry)}function ec(t){if(t&&t.config&&t.config.retryConfig)return t.config.retryConfig}function pg(t){let n=(t.currentRetryAttempt?0:t.retryDelay??100)+(Math.pow(t.retryDelayMultiplier,t.currentRetryAttempt)-1)/2*1e3,o=t.totalTimeout-(Date.now()-t.timeOfFirstRequest);return Math.min(n,o,t.maxRetryDelay)}});var ps=b($o=>{"use strict";p();Object.defineProperty($o,"__esModule",{value:!0});$o.GaxiosInterceptorManager=void 0;var fs=class extends Set{};$o.GaxiosInterceptorManager=fs});var rc=b(Zt=>{"use strict";p();var hg=Zt&&Zt.__importDefault||function(t){return t&&t.__esModule?t:{default:t}},Qt;Object.defineProperty(Zt,"__esModule",{value:!0});Zt.Gaxios=void 0;var mg=hg(as()),gg=J("https"),Lt=cs(),yg=tc(),nc=J("stream"),oc=ps(),Eg=async()=>globalThis.crypto?.randomUUID()||(await import("crypto")).randomUUID(),Tg=204,Ko=class{agentCache=new Map;defaults;interceptors;constructor(e){this.defaults=e||{},this.interceptors={request:new oc.GaxiosInterceptorManager,response:new oc.GaxiosInterceptorManager}}fetch(...e){let n=e[0],o=e[1],r,i=new Headers;return typeof n=="string"?r=new URL(n):n instanceof URL?r=n:n&&n.url&&(r=new URL(n.url)),n&&typeof n=="object"&&"headers"in n&&Qt.mergeHeaders(i,n.headers),o&&Qt.mergeHeaders(i,new Headers(o.headers)),typeof n=="object"&&!(n instanceof URL)?this.request({...o,...n,headers:i,url:r}):this.request({...o,headers:i,url:r})}async request(e={}){let n=await this.#o(e);return n=await this.#t(n),this.#n(this._request(n))}async _defaultAdapter(e){let n=e.fetchImplementation||this.defaults.fetchImplementation||await Qt.#l(),o={...e};delete o.data;let r=await n(e.url,o),i=await this.getResponseData(e,r);return Object.getOwnPropertyDescriptor(r,"data")?.configurable||Object.defineProperties(r,{data:{configurable:!0,writable:!0,enumerable:!0,value:i}}),Object.assign(r,{config:e,data:i})}async _request(e){try{let n;if(e.adapter?n=await e.adapter(e,this._defaultAdapter.bind(this)):n=await this._defaultAdapter(e),!e.validateStatus(n.status)){if(e.responseType==="stream"){let r=[];for await(let i of n.data)r.push(i);n.data=r.toString()}let o=Lt.GaxiosError.extractAPIErrorFromResponse(n,`Request failed with status code ${n.status}`);throw new Lt.GaxiosError(o?.message,e,n,o)}return n}catch(n){let o;n instanceof Lt.GaxiosError?o=n:n instanceof Error?o=new Lt.GaxiosError(n.message,e,void 0,n):o=new Lt.GaxiosError("Unexpected Gaxios Error",e,void 0,n);let{shouldRetry:r,config:i}=await(0,yg.getRetryConfig)(o);if(r&&i)return o.config.retryConfig.currentRetryAttempt=i.retryConfig.currentRetryAttempt,e.retryConfig=o.config?.retryConfig,this.#r(e),this._request(e);throw e.errorRedactor&&e.errorRedactor(o),o}}async getResponseData(e,n){if(n.status===Tg)return"";if(e.maxContentLength&&n.headers.has("content-length")&&e.maxContentLength<Number.parseInt(n.headers?.get("content-length")||""))throw new Lt.GaxiosError("Response's `Content-Length` is over the limit.",e,Object.assign(n,{config:e}));switch(e.responseType){case"stream":return n.body;case"json":{let o=await n.text();try{return JSON.parse(o)}catch{return o}}case"arraybuffer":return n.arrayBuffer();case"blob":return n.blob();case"text":return n.text();default:return this.getResponseDataFromContentType(n)}}#e(e,n=[]){let o=new URL(e),r=[...n],i=(process.env.NO_PROXY??process.env.no_proxy)?.split(",")||[];for(let s of i)r.push(s.trim());for(let s of r)if(s instanceof RegExp){if(s.test(o.toString()))return!1}else if(s instanceof URL){if(s.origin===o.origin)return!1}else if(s.startsWith("*.")||s.startsWith(".")){let a=s.replace(/^\*\./,".");if(o.hostname.endsWith(a))return!1}else if(s===o.origin||s===o.hostname||s===o.href)return!1;return!0}async#t(e){let n=Promise.resolve(e);for(let o of this.interceptors.request.values())o&&(n=n.then(o.resolved,o.rejected));return n}async#n(e){let n=Promise.resolve(e);for(let o of this.interceptors.response.values())o&&(n=n.then(o.resolved,o.rejected));return n}async#o(e){let n=new Headers(this.defaults.headers);Qt.mergeHeaders(n,e.headers);let o=(0,mg.default)(!0,{},this.defaults,e);if(!o.url)throw new Error("URL is required.");if(o.baseURL&&(o.url=new URL(o.url,o.baseURL)),o.url=new URL(o.url),o.params)if(o.paramsSerializer){let s=o.paramsSerializer(o.params);s.startsWith("?")&&(s=s.slice(1));let a=o.url.toString().includes("?")?"&":"?";o.url=o.url+a+s}else{let s=o.url instanceof URL?o.url:new URL(o.url);for(let[a,l]of new URLSearchParams(o.params))s.searchParams.append(a,l);o.url=s}typeof e.maxContentLength=="number"&&(o.size=e.maxContentLength),typeof e.maxRedirects=="number"&&(o.follow=e.maxRedirects);let r=typeof o.data=="string"||o.data instanceof ArrayBuffer||o.data instanceof Blob||globalThis.File&&o.data instanceof File||o.data instanceof FormData||o.data instanceof nc.Readable||o.data instanceof ReadableStream||o.data instanceof String||o.data instanceof URLSearchParams||ArrayBuffer.isView(o.data)||["Blob","File","FormData"].includes(o.data?.constructor?.name||"");if(o.multipart?.length){let s=await Eg();n.set("content-type",`multipart/related; boundary=${s}`),o.body=nc.Readable.from(this.getMultipartRequest(o.multipart,s))}else r?o.body=o.data:typeof o.data=="object"?n.get("Content-Type")==="application/x-www-form-urlencoded"?o.body=o.paramsSerializer?o.paramsSerializer(o.data):new URLSearchParams(o.data):(n.has("content-type")||n.set("content-type","application/json"),o.body=JSON.stringify(o.data)):o.data&&(o.body=o.data);o.validateStatus=o.validateStatus||this.validateStatus,o.responseType=o.responseType||"unknown",!n.has("accept")&&o.responseType==="json"&&n.set("accept","application/json");let i=o.proxy||process?.env?.HTTPS_PROXY||process?.env?.https_proxy||process?.env?.HTTP_PROXY||process?.env?.http_proxy;if(!o.agent)if(i&&this.#e(o.url,o.noProxy)){let s=await Qt.#a();this.agentCache.has(i)?o.agent=this.agentCache.get(i):(o.agent=new s(i,{cert:o.cert,key:o.key}),this.agentCache.set(i,o.agent))}else o.cert&&o.key&&(this.agentCache.has(o.key)?o.agent=this.agentCache.get(o.key):(o.agent=new gg.Agent({cert:o.cert,key:o.key}),this.agentCache.set(o.key,o.agent)));return typeof o.errorRedactor!="function"&&o.errorRedactor!==!1&&(o.errorRedactor=Lt.defaultErrorRedactor),o.body&&!("duplex"in o)&&(o.duplex="half"),this.#r(o),Object.assign(o,{headers:n,url:o.url instanceof URL?o.url:new URL(o.url)})}#r(e){if(e.timeout){let n=AbortSignal.timeout(e.timeout);e.signal&&!e.signal.aborted?e.signal=AbortSignal.any([e.signal,n]):e.signal=n}}validateStatus(e){return e>=200&&e<300}async getResponseDataFromContentType(e){let n=e.headers.get("Content-Type");if(n===null)return e.text();if(n=n.toLowerCase(),n.includes("application/json")){let o=await e.text();try{o=JSON.parse(o)}catch{}return o}else return n.match(/^text\//)?e.text():e.blob()}async*getMultipartRequest(e,n){let o=`--${n}--`;for(let r of e){let i=r.headers.get("Content-Type")||"application/octet-stream";yield`--${n}\r
|
|
5
|
+
Content-Type: ${i}\r
|
|
6
|
+
\r
|
|
7
|
+
`,typeof r.content=="string"?yield r.content:yield*r.content,yield`\r
|
|
8
|
+
`}yield o}static#i;static#s;static async#a(){return this.#i||=(await import("./dist-UWUWLWTO.js")).HttpsProxyAgent,this.#i}static async#l(){let e=typeof window<"u"&&!!window;return this.#s||=e?window.fetch:(await import("./src-LZEU4AYF.js")).default,this.#s}static mergeHeaders(e,...n){e=e instanceof Headers?e:new Headers(e);for(let o of n)(o instanceof Headers?o:new Headers(o)).forEach((i,s)=>{s==="set-cookie"?e.append(s,i):e.set(s,i)});return e}};Zt.Gaxios=Ko;Qt=Ko});var ye=b(Ae=>{"use strict";p();var _g=Ae&&Ae.__createBinding||(Object.create?function(t,e,n,o){o===void 0&&(o=n);var r=Object.getOwnPropertyDescriptor(e,n);(!r||("get"in r?!e.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,o,r)}:function(t,e,n,o){o===void 0&&(o=n),t[o]=e[n]}),Cg=Ae&&Ae.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&_g(e,t,n)};Object.defineProperty(Ae,"__esModule",{value:!0});Ae.instance=Ae.Gaxios=Ae.GaxiosError=void 0;Ae.request=vg;var ic=rc();Object.defineProperty(Ae,"Gaxios",{enumerable:!0,get:function(){return ic.Gaxios}});var Ag=cs();Object.defineProperty(Ae,"GaxiosError",{enumerable:!0,get:function(){return Ag.GaxiosError}});Cg(ps(),Ae);Ae.instance=new ic.Gaxios;async function vg(t){return Ae.instance.request(t)}});var hs=b((sc,Jo)=>{p();(function(t){"use strict";var e,n=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,o=Math.ceil,r=Math.floor,i="[BigNumber Error] ",s=i+"Number primitive has more than 15 significant digits: ",a=1e14,l=14,u=9007199254740991,c=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],f=1e7,h=1e9;function y(U){var L,$,Y,x=N.prototype={constructor:N,toString:null,valueOf:null},ne=new N(1),W=20,Z=4,pe=-7,le=21,ue=-1e7,ge=1e7,pt=!1,F=1,K=0,z={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:"\xA0",suffix:""},be="0123456789abcdefghijklmnopqrstuvwxyz",Ye=!0;function N(d,m){var g,I,_,v,M,E,C,P,w=this;if(!(w instanceof N))return new N(d,m);if(m==null){if(d&&d._isBigNumber===!0){w.s=d.s,!d.c||d.e>ge?w.c=w.e=null:d.e<ue?w.c=[w.e=0]:(w.e=d.e,w.c=d.c.slice());return}if((E=typeof d=="number")&&d*0==0){if(w.s=1/d<0?(d=-d,-1):1,d===~~d){for(v=0,M=d;M>=10;M/=10,v++);v>ge?w.c=w.e=null:(w.e=v,w.c=[d]);return}P=String(d)}else{if(!n.test(P=String(d)))return Y(w,P,E);w.s=P.charCodeAt(0)==45?(P=P.slice(1),-1):1}(v=P.indexOf("."))>-1&&(P=P.replace(".","")),(M=P.search(/e/i))>0?(v<0&&(v=M),v+=+P.slice(M+1),P=P.substring(0,M)):v<0&&(v=P.length)}else{if(R(m,2,be.length,"Base"),m==10&&Ye)return w=new N(d),ce(w,W+w.e+1,Z);if(P=String(d),E=typeof d=="number"){if(d*0!=0)return Y(w,P,E,m);if(w.s=1/d<0?(P=P.slice(1),-1):1,N.DEBUG&&P.replace(/^0\.0*|\./,"").length>15)throw Error(s+d)}else w.s=P.charCodeAt(0)===45?(P=P.slice(1),-1):1;for(g=be.slice(0,m),v=M=0,C=P.length;M<C;M++)if(g.indexOf(I=P.charAt(M))<0){if(I=="."){if(M>v){v=C;continue}}else if(!_&&(P==P.toUpperCase()&&(P=P.toLowerCase())||P==P.toLowerCase()&&(P=P.toUpperCase()))){_=!0,M=-1,v=0;continue}return Y(w,String(d),E,m)}E=!1,P=$(P,m,10,w.s),(v=P.indexOf("."))>-1?P=P.replace(".",""):v=P.length}for(M=0;P.charCodeAt(M)===48;M++);for(C=P.length;P.charCodeAt(--C)===48;);if(P=P.slice(M,++C)){if(C-=M,E&&N.DEBUG&&C>15&&(d>u||d!==r(d)))throw Error(s+w.s*d);if((v=v-M-1)>ge)w.c=w.e=null;else if(v<ue)w.c=[w.e=0];else{if(w.e=v,w.c=[],M=(v+1)%l,v<0&&(M+=l),M<C){for(M&&w.c.push(+P.slice(0,M)),C-=l;M<C;)w.c.push(+P.slice(M,M+=l));M=l-(P=P.slice(M)).length}else M-=C;for(;M--;P+="0");w.c.push(+P)}}else w.c=[w.e=0]}N.clone=y,N.ROUND_UP=0,N.ROUND_DOWN=1,N.ROUND_CEIL=2,N.ROUND_FLOOR=3,N.ROUND_HALF_UP=4,N.ROUND_HALF_DOWN=5,N.ROUND_HALF_EVEN=6,N.ROUND_HALF_CEIL=7,N.ROUND_HALF_FLOOR=8,N.EUCLID=9,N.config=N.set=function(d){var m,g;if(d!=null)if(typeof d=="object"){if(d.hasOwnProperty(m="DECIMAL_PLACES")&&(g=d[m],R(g,0,h,m),W=g),d.hasOwnProperty(m="ROUNDING_MODE")&&(g=d[m],R(g,0,8,m),Z=g),d.hasOwnProperty(m="EXPONENTIAL_AT")&&(g=d[m],g&&g.pop?(R(g[0],-h,0,m),R(g[1],0,h,m),pe=g[0],le=g[1]):(R(g,-h,h,m),pe=-(le=g<0?-g:g))),d.hasOwnProperty(m="RANGE"))if(g=d[m],g&&g.pop)R(g[0],-h,-1,m),R(g[1],1,h,m),ue=g[0],ge=g[1];else if(R(g,-h,h,m),g)ue=-(ge=g<0?-g:g);else throw Error(i+m+" cannot be zero: "+g);if(d.hasOwnProperty(m="CRYPTO"))if(g=d[m],g===!!g)if(g)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))pt=g;else throw pt=!g,Error(i+"crypto unavailable");else pt=g;else throw Error(i+m+" not true or false: "+g);if(d.hasOwnProperty(m="MODULO_MODE")&&(g=d[m],R(g,0,9,m),F=g),d.hasOwnProperty(m="POW_PRECISION")&&(g=d[m],R(g,0,h,m),K=g),d.hasOwnProperty(m="FORMAT"))if(g=d[m],typeof g=="object")z=g;else throw Error(i+m+" not an object: "+g);if(d.hasOwnProperty(m="ALPHABET"))if(g=d[m],typeof g=="string"&&!/^.?$|[+\-.\s]|(.).*\1/.test(g))Ye=g.slice(0,10)=="0123456789",be=g;else throw Error(i+m+" invalid: "+g)}else throw Error(i+"Object expected: "+d);return{DECIMAL_PLACES:W,ROUNDING_MODE:Z,EXPONENTIAL_AT:[pe,le],RANGE:[ue,ge],CRYPTO:pt,MODULO_MODE:F,POW_PRECISION:K,FORMAT:z,ALPHABET:be}},N.isBigNumber=function(d){if(!d||d._isBigNumber!==!0)return!1;if(!N.DEBUG)return!0;var m,g,I=d.c,_=d.e,v=d.s;e:if({}.toString.call(I)=="[object Array]"){if((v===1||v===-1)&&_>=-h&&_<=h&&_===r(_)){if(I[0]===0){if(_===0&&I.length===1)return!0;break e}if(m=(_+1)%l,m<1&&(m+=l),String(I[0]).length==m){for(m=0;m<I.length;m++)if(g=I[m],g<0||g>=a||g!==r(g))break e;if(g!==0)return!0}}}else if(I===null&&_===null&&(v===null||v===1||v===-1))return!0;throw Error(i+"Invalid BigNumber: "+d)},N.maximum=N.max=function(){return he(arguments,-1)},N.minimum=N.min=function(){return he(arguments,1)},N.random=function(){var d=9007199254740992,m=Math.random()*d&2097151?function(){return r(Math.random()*d)}:function(){return(Math.random()*1073741824|0)*8388608+(Math.random()*8388608|0)};return function(g){var I,_,v,M,E,C=0,P=[],w=new N(ne);if(g==null?g=W:R(g,0,h),M=o(g/l),pt)if(crypto.getRandomValues){for(I=crypto.getRandomValues(new Uint32Array(M*=2));C<M;)E=I[C]*131072+(I[C+1]>>>11),E>=9e15?(_=crypto.getRandomValues(new Uint32Array(2)),I[C]=_[0],I[C+1]=_[1]):(P.push(E%1e14),C+=2);C=M/2}else if(crypto.randomBytes){for(I=crypto.randomBytes(M*=7);C<M;)E=(I[C]&31)*281474976710656+I[C+1]*1099511627776+I[C+2]*4294967296+I[C+3]*16777216+(I[C+4]<<16)+(I[C+5]<<8)+I[C+6],E>=9e15?crypto.randomBytes(7).copy(I,C):(P.push(E%1e14),C+=7);C=M/7}else throw pt=!1,Error(i+"crypto unavailable");if(!pt)for(;C<M;)E=m(),E<9e15&&(P[C++]=E%1e14);for(M=P[--C],g%=l,M&&g&&(E=c[l-g],P[C]=r(M/E)*E);P[C]===0;P.pop(),C--);if(C<0)P=[v=0];else{for(v=-1;P[0]===0;P.splice(0,1),v-=l);for(C=1,E=P[0];E>=10;E/=10,C++);C<l&&(v-=l-C)}return w.e=v,w.c=P,w}}(),N.sum=function(){for(var d=1,m=arguments,g=new N(m[0]);d<m.length;)g=g.plus(m[d++]);return g},$=function(){var d="0123456789";function m(g,I,_,v){for(var M,E=[0],C,P=0,w=g.length;P<w;){for(C=E.length;C--;E[C]*=I);for(E[0]+=v.indexOf(g.charAt(P++)),M=0;M<E.length;M++)E[M]>_-1&&(E[M+1]==null&&(E[M+1]=0),E[M+1]+=E[M]/_|0,E[M]%=_)}return E.reverse()}return function(g,I,_,v,M){var E,C,P,w,k,B,H,Q,se=g.indexOf("."),me=W,X=Z;for(se>=0&&(w=K,K=0,g=g.replace(".",""),Q=new N(I),B=Q.pow(g.length-se),K=w,Q.c=m(q(A(B.c),B.e,"0"),10,_,d),Q.e=Q.c.length),H=m(g,I,_,M?(E=be,d):(E=d,be)),P=w=H.length;H[--w]==0;H.pop());if(!H[0])return E.charAt(0);if(se<0?--P:(B.c=H,B.e=P,B.s=v,B=L(B,Q,me,X,_),H=B.c,k=B.r,P=B.e),C=P+me+1,se=H[C],w=_/2,k=k||C<0||H[C+1]!=null,k=X<4?(se!=null||k)&&(X==0||X==(B.s<0?3:2)):se>w||se==w&&(X==4||k||X==6&&H[C-1]&1||X==(B.s<0?8:7)),C<1||!H[0])g=k?q(E.charAt(1),-me,E.charAt(0)):E.charAt(0);else{if(H.length=C,k)for(--_;++H[--C]>_;)H[C]=0,C||(++P,H=[1].concat(H));for(w=H.length;!H[--w];);for(se=0,g="";se<=w;g+=E.charAt(H[se++]));g=q(g,P,E.charAt(0))}return g}}(),L=function(){function d(I,_,v){var M,E,C,P,w=0,k=I.length,B=_%f,H=_/f|0;for(I=I.slice();k--;)C=I[k]%f,P=I[k]/f|0,M=H*C+P*B,E=B*C+M%f*f+w,w=(E/v|0)+(M/f|0)+H*P,I[k]=E%v;return w&&(I=[w].concat(I)),I}function m(I,_,v,M){var E,C;if(v!=M)C=v>M?1:-1;else for(E=C=0;E<v;E++)if(I[E]!=_[E]){C=I[E]>_[E]?1:-1;break}return C}function g(I,_,v,M){for(var E=0;v--;)I[v]-=E,E=I[v]<_[v]?1:0,I[v]=E*M+I[v]-_[v];for(;!I[0]&&I.length>1;I.splice(0,1));}return function(I,_,v,M,E){var C,P,w,k,B,H,Q,se,me,X,j,Te,xo,Qi,Zi,nt,Hn,Ue=I.s==_.s?1:-1,Ce=I.c,ae=_.c;if(!Ce||!Ce[0]||!ae||!ae[0])return new N(!I.s||!_.s||(Ce?ae&&Ce[0]==ae[0]:!ae)?NaN:Ce&&Ce[0]==0||!ae?Ue*0:Ue/0);for(se=new N(Ue),me=se.c=[],P=I.e-_.e,Ue=v+P+1,E||(E=a,P=S(I.e/l)-S(_.e/l),Ue=Ue/l|0),w=0;ae[w]==(Ce[w]||0);w++);if(ae[w]>(Ce[w]||0)&&P--,Ue<0)me.push(1),k=!0;else{for(Qi=Ce.length,nt=ae.length,w=0,Ue+=2,B=r(E/(ae[0]+1)),B>1&&(ae=d(ae,B,E),Ce=d(Ce,B,E),nt=ae.length,Qi=Ce.length),xo=nt,X=Ce.slice(0,nt),j=X.length;j<nt;X[j++]=0);Hn=ae.slice(),Hn=[0].concat(Hn),Zi=ae[0],ae[1]>=E/2&&Zi++;do{if(B=0,C=m(ae,X,nt,j),C<0){if(Te=X[0],nt!=j&&(Te=Te*E+(X[1]||0)),B=r(Te/Zi),B>1)for(B>=E&&(B=E-1),H=d(ae,B,E),Q=H.length,j=X.length;m(H,X,Q,j)==1;)B--,g(H,nt<Q?Hn:ae,Q,E),Q=H.length,C=1;else B==0&&(C=B=1),H=ae.slice(),Q=H.length;if(Q<j&&(H=[0].concat(H)),g(X,H,j,E),j=X.length,C==-1)for(;m(ae,X,nt,j)<1;)B++,g(X,nt<j?Hn:ae,j,E),j=X.length}else C===0&&(B++,X=[0]);me[w++]=B,X[0]?X[j++]=Ce[xo]||0:(X=[Ce[xo]],j=1)}while((xo++<Qi||X[0]!=null)&&Ue--);k=X[0]!=null,me[0]||me.splice(0,1)}if(E==a){for(w=1,Ue=me[0];Ue>=10;Ue/=10,w++);ce(se,v+(se.e=w+P*l-1)+1,M,k)}else se.e=P,se.r=+k;return se}}();function oe(d,m,g,I){var _,v,M,E,C;if(g==null?g=Z:R(g,0,8),!d.c)return d.toString();if(_=d.c[0],M=d.e,m==null)C=A(d.c),C=I==1||I==2&&(M<=pe||M>=le)?D(C,M):q(C,M,"0");else if(d=ce(new N(d),m,g),v=d.e,C=A(d.c),E=C.length,I==1||I==2&&(m<=v||v<=pe)){for(;E<m;C+="0",E++);C=D(C,v)}else if(m-=M+(I===2&&v>M),C=q(C,v,"0"),v+1>E){if(--m>0)for(C+=".";m--;C+="0");}else if(m+=v-E,m>0)for(v+1==E&&(C+=".");m--;C+="0");return d.s<0&&_?"-"+C:C}function he(d,m){for(var g,I,_=1,v=new N(d[0]);_<d.length;_++)I=new N(d[_]),(!I.s||(g=T(v,I))===m||g===0&&v.s===m)&&(v=I);return v}function bt(d,m,g){for(var I=1,_=m.length;!m[--_];m.pop());for(_=m[0];_>=10;_/=10,I++);return(g=I+g*l-1)>ge?d.c=d.e=null:g<ue?d.c=[d.e=0]:(d.e=g,d.c=m),d}Y=function(){var d=/^(-?)0([xbo])(?=\w[\w.]*$)/i,m=/^([^.]+)\.$/,g=/^\.([^.]+)$/,I=/^-?(Infinity|NaN)$/,_=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(v,M,E,C){var P,w=E?M:M.replace(_,"");if(I.test(w))v.s=isNaN(w)?null:w<0?-1:1;else{if(!E&&(w=w.replace(d,function(k,B,H){return P=(H=H.toLowerCase())=="x"?16:H=="b"?2:8,!C||C==P?B:k}),C&&(P=C,w=w.replace(m,"$1").replace(g,"0.$1")),M!=w))return new N(w,P);if(N.DEBUG)throw Error(i+"Not a"+(C?" base "+C:"")+" number: "+M);v.s=null}v.c=v.e=null}}();function ce(d,m,g,I){var _,v,M,E,C,P,w,k=d.c,B=c;if(k){e:{for(_=1,E=k[0];E>=10;E/=10,_++);if(v=m-_,v<0)v+=l,M=m,C=k[P=0],w=r(C/B[_-M-1]%10);else if(P=o((v+1)/l),P>=k.length)if(I){for(;k.length<=P;k.push(0));C=w=0,_=1,v%=l,M=v-l+1}else break e;else{for(C=E=k[P],_=1;E>=10;E/=10,_++);v%=l,M=v-l+_,w=M<0?0:r(C/B[_-M-1]%10)}if(I=I||m<0||k[P+1]!=null||(M<0?C:C%B[_-M-1]),I=g<4?(w||I)&&(g==0||g==(d.s<0?3:2)):w>5||w==5&&(g==4||I||g==6&&(v>0?M>0?C/B[_-M]:0:k[P-1])%10&1||g==(d.s<0?8:7)),m<1||!k[0])return k.length=0,I?(m-=d.e+1,k[0]=B[(l-m%l)%l],d.e=-m||0):k[0]=d.e=0,d;if(v==0?(k.length=P,E=1,P--):(k.length=P+1,E=B[l-v],k[P]=M>0?r(C/B[_-M]%B[M])*E:0),I)for(;;)if(P==0){for(v=1,M=k[0];M>=10;M/=10,v++);for(M=k[0]+=E,E=1;M>=10;M/=10,E++);v!=E&&(d.e++,k[0]==a&&(k[0]=1));break}else{if(k[P]+=E,k[P]!=a)break;k[P--]=0,E=1}for(v=k.length;k[--v]===0;k.pop());}d.e>ge?d.c=d.e=null:d.e<ue&&(d.c=[d.e=0])}return d}function Oe(d){var m,g=d.e;return g===null?d.toString():(m=A(d.c),m=g<=pe||g>=le?D(m,g):q(m,g,"0"),d.s<0?"-"+m:m)}return x.absoluteValue=x.abs=function(){var d=new N(this);return d.s<0&&(d.s=1),d},x.comparedTo=function(d,m){return T(this,new N(d,m))},x.decimalPlaces=x.dp=function(d,m){var g,I,_,v=this;if(d!=null)return R(d,0,h),m==null?m=Z:R(m,0,8),ce(new N(v),d+v.e+1,m);if(!(g=v.c))return null;if(I=((_=g.length-1)-S(this.e/l))*l,_=g[_])for(;_%10==0;_/=10,I--);return I<0&&(I=0),I},x.dividedBy=x.div=function(d,m){return L(this,new N(d,m),W,Z)},x.dividedToIntegerBy=x.idiv=function(d,m){return L(this,new N(d,m),0,1)},x.exponentiatedBy=x.pow=function(d,m){var g,I,_,v,M,E,C,P,w,k=this;if(d=new N(d),d.c&&!d.isInteger())throw Error(i+"Exponent not an integer: "+Oe(d));if(m!=null&&(m=new N(m)),E=d.e>14,!k.c||!k.c[0]||k.c[0]==1&&!k.e&&k.c.length==1||!d.c||!d.c[0])return w=new N(Math.pow(+Oe(k),E?d.s*(2-O(d)):+Oe(d))),m?w.mod(m):w;if(C=d.s<0,m){if(m.c?!m.c[0]:!m.s)return new N(NaN);I=!C&&k.isInteger()&&m.isInteger(),I&&(k=k.mod(m))}else{if(d.e>9&&(k.e>0||k.e<-1||(k.e==0?k.c[0]>1||E&&k.c[1]>=24e7:k.c[0]<8e13||E&&k.c[0]<=9999975e7)))return v=k.s<0&&O(d)?-0:0,k.e>-1&&(v=1/v),new N(C?1/v:v);K&&(v=o(K/l+2))}for(E?(g=new N(.5),C&&(d.s=1),P=O(d)):(_=Math.abs(+Oe(d)),P=_%2),w=new N(ne);;){if(P){if(w=w.times(k),!w.c)break;v?w.c.length>v&&(w.c.length=v):I&&(w=w.mod(m))}if(_){if(_=r(_/2),_===0)break;P=_%2}else if(d=d.times(g),ce(d,d.e+1,1),d.e>14)P=O(d);else{if(_=+Oe(d),_===0)break;P=_%2}k=k.times(k),v?k.c&&k.c.length>v&&(k.c.length=v):I&&(k=k.mod(m))}return I?w:(C&&(w=ne.div(w)),m?w.mod(m):v?ce(w,K,Z,M):w)},x.integerValue=function(d){var m=new N(this);return d==null?d=Z:R(d,0,8),ce(m,m.e+1,d)},x.isEqualTo=x.eq=function(d,m){return T(this,new N(d,m))===0},x.isFinite=function(){return!!this.c},x.isGreaterThan=x.gt=function(d,m){return T(this,new N(d,m))>0},x.isGreaterThanOrEqualTo=x.gte=function(d,m){return(m=T(this,new N(d,m)))===1||m===0},x.isInteger=function(){return!!this.c&&S(this.e/l)>this.c.length-2},x.isLessThan=x.lt=function(d,m){return T(this,new N(d,m))<0},x.isLessThanOrEqualTo=x.lte=function(d,m){return(m=T(this,new N(d,m)))===-1||m===0},x.isNaN=function(){return!this.s},x.isNegative=function(){return this.s<0},x.isPositive=function(){return this.s>0},x.isZero=function(){return!!this.c&&this.c[0]==0},x.minus=function(d,m){var g,I,_,v,M=this,E=M.s;if(d=new N(d,m),m=d.s,!E||!m)return new N(NaN);if(E!=m)return d.s=-m,M.plus(d);var C=M.e/l,P=d.e/l,w=M.c,k=d.c;if(!C||!P){if(!w||!k)return w?(d.s=-m,d):new N(k?M:NaN);if(!w[0]||!k[0])return k[0]?(d.s=-m,d):new N(w[0]?M:Z==3?-0:0)}if(C=S(C),P=S(P),w=w.slice(),E=C-P){for((v=E<0)?(E=-E,_=w):(P=C,_=k),_.reverse(),m=E;m--;_.push(0));_.reverse()}else for(I=(v=(E=w.length)<(m=k.length))?E:m,E=m=0;m<I;m++)if(w[m]!=k[m]){v=w[m]<k[m];break}if(v&&(_=w,w=k,k=_,d.s=-d.s),m=(I=k.length)-(g=w.length),m>0)for(;m--;w[g++]=0);for(m=a-1;I>E;){if(w[--I]<k[I]){for(g=I;g&&!w[--g];w[g]=m);--w[g],w[I]+=a}w[I]-=k[I]}for(;w[0]==0;w.splice(0,1),--P);return w[0]?bt(d,w,P):(d.s=Z==3?-1:1,d.c=[d.e=0],d)},x.modulo=x.mod=function(d,m){var g,I,_=this;return d=new N(d,m),!_.c||!d.s||d.c&&!d.c[0]?new N(NaN):!d.c||_.c&&!_.c[0]?new N(_):(F==9?(I=d.s,d.s=1,g=L(_,d,0,3),d.s=I,g.s*=I):g=L(_,d,0,F),d=_.minus(g.times(d)),!d.c[0]&&F==1&&(d.s=_.s),d)},x.multipliedBy=x.times=function(d,m){var g,I,_,v,M,E,C,P,w,k,B,H,Q,se,me,X=this,j=X.c,Te=(d=new N(d,m)).c;if(!j||!Te||!j[0]||!Te[0])return!X.s||!d.s||j&&!j[0]&&!Te||Te&&!Te[0]&&!j?d.c=d.e=d.s=null:(d.s*=X.s,!j||!Te?d.c=d.e=null:(d.c=[0],d.e=0)),d;for(I=S(X.e/l)+S(d.e/l),d.s*=X.s,C=j.length,k=Te.length,C<k&&(Q=j,j=Te,Te=Q,_=C,C=k,k=_),_=C+k,Q=[];_--;Q.push(0));for(se=a,me=f,_=k;--_>=0;){for(g=0,B=Te[_]%me,H=Te[_]/me|0,M=C,v=_+M;v>_;)P=j[--M]%me,w=j[M]/me|0,E=H*P+w*B,P=B*P+E%me*me+Q[v]+g,g=(P/se|0)+(E/me|0)+H*w,Q[v--]=P%se;Q[v]=g}return g?++I:Q.splice(0,1),bt(d,Q,I)},x.negated=function(){var d=new N(this);return d.s=-d.s||null,d},x.plus=function(d,m){var g,I=this,_=I.s;if(d=new N(d,m),m=d.s,!_||!m)return new N(NaN);if(_!=m)return d.s=-m,I.minus(d);var v=I.e/l,M=d.e/l,E=I.c,C=d.c;if(!v||!M){if(!E||!C)return new N(_/0);if(!E[0]||!C[0])return C[0]?d:new N(E[0]?I:_*0)}if(v=S(v),M=S(M),E=E.slice(),_=v-M){for(_>0?(M=v,g=C):(_=-_,g=E),g.reverse();_--;g.push(0));g.reverse()}for(_=E.length,m=C.length,_-m<0&&(g=C,C=E,E=g,m=_),_=0;m;)_=(E[--m]=E[m]+C[m]+_)/a|0,E[m]=a===E[m]?0:E[m]%a;return _&&(E=[_].concat(E),++M),bt(d,E,M)},x.precision=x.sd=function(d,m){var g,I,_,v=this;if(d!=null&&d!==!!d)return R(d,1,h),m==null?m=Z:R(m,0,8),ce(new N(v),d,m);if(!(g=v.c))return null;if(_=g.length-1,I=_*l+1,_=g[_]){for(;_%10==0;_/=10,I--);for(_=g[0];_>=10;_/=10,I++);}return d&&v.e+1>I&&(I=v.e+1),I},x.shiftedBy=function(d){return R(d,-u,u),this.times("1e"+d)},x.squareRoot=x.sqrt=function(){var d,m,g,I,_,v=this,M=v.c,E=v.s,C=v.e,P=W+4,w=new N("0.5");if(E!==1||!M||!M[0])return new N(!E||E<0&&(!M||M[0])?NaN:M?v:1/0);if(E=Math.sqrt(+Oe(v)),E==0||E==1/0?(m=A(M),(m.length+C)%2==0&&(m+="0"),E=Math.sqrt(+m),C=S((C+1)/2)-(C<0||C%2),E==1/0?m="5e"+C:(m=E.toExponential(),m=m.slice(0,m.indexOf("e")+1)+C),g=new N(m)):g=new N(E+""),g.c[0]){for(C=g.e,E=C+P,E<3&&(E=0);;)if(_=g,g=w.times(_.plus(L(v,_,P,1))),A(_.c).slice(0,E)===(m=A(g.c)).slice(0,E))if(g.e<C&&--E,m=m.slice(E-3,E+1),m=="9999"||!I&&m=="4999"){if(!I&&(ce(_,_.e+W+2,0),_.times(_).eq(v))){g=_;break}P+=4,E+=4,I=1}else{(!+m||!+m.slice(1)&&m.charAt(0)=="5")&&(ce(g,g.e+W+2,1),d=!g.times(g).eq(v));break}}return ce(g,g.e+W+1,Z,d)},x.toExponential=function(d,m){return d!=null&&(R(d,0,h),d++),oe(this,d,m,1)},x.toFixed=function(d,m){return d!=null&&(R(d,0,h),d=d+this.e+1),oe(this,d,m)},x.toFormat=function(d,m,g){var I,_=this;if(g==null)d!=null&&m&&typeof m=="object"?(g=m,m=null):d&&typeof d=="object"?(g=d,d=m=null):g=z;else if(typeof g!="object")throw Error(i+"Argument not an object: "+g);if(I=_.toFixed(d,m),_.c){var v,M=I.split("."),E=+g.groupSize,C=+g.secondaryGroupSize,P=g.groupSeparator||"",w=M[0],k=M[1],B=_.s<0,H=B?w.slice(1):w,Q=H.length;if(C&&(v=E,E=C,C=v,Q-=v),E>0&&Q>0){for(v=Q%E||E,w=H.substr(0,v);v<Q;v+=E)w+=P+H.substr(v,E);C>0&&(w+=P+H.slice(v)),B&&(w="-"+w)}I=k?w+(g.decimalSeparator||"")+((C=+g.fractionGroupSize)?k.replace(new RegExp("\\d{"+C+"}\\B","g"),"$&"+(g.fractionGroupSeparator||"")):k):w}return(g.prefix||"")+I+(g.suffix||"")},x.toFraction=function(d){var m,g,I,_,v,M,E,C,P,w,k,B,H=this,Q=H.c;if(d!=null&&(E=new N(d),!E.isInteger()&&(E.c||E.s!==1)||E.lt(ne)))throw Error(i+"Argument "+(E.isInteger()?"out of range: ":"not an integer: ")+Oe(E));if(!Q)return new N(H);for(m=new N(ne),P=g=new N(ne),I=C=new N(ne),B=A(Q),v=m.e=B.length-H.e-1,m.c[0]=c[(M=v%l)<0?l+M:M],d=!d||E.comparedTo(m)>0?v>0?m:P:E,M=ge,ge=1/0,E=new N(B),C.c[0]=0;w=L(E,m,0,1),_=g.plus(w.times(I)),_.comparedTo(d)!=1;)g=I,I=_,P=C.plus(w.times(_=P)),C=_,m=E.minus(w.times(_=m)),E=_;return _=L(d.minus(g),I,0,1),C=C.plus(_.times(P)),g=g.plus(_.times(I)),C.s=P.s=H.s,v=v*2,k=L(P,I,v,Z).minus(H).abs().comparedTo(L(C,g,v,Z).minus(H).abs())<1?[P,I]:[C,g],ge=M,k},x.toNumber=function(){return+Oe(this)},x.toPrecision=function(d,m){return d!=null&&R(d,1,h),oe(this,d,m,2)},x.toString=function(d){var m,g=this,I=g.s,_=g.e;return _===null?I?(m="Infinity",I<0&&(m="-"+m)):m="NaN":(d==null?m=_<=pe||_>=le?D(A(g.c),_):q(A(g.c),_,"0"):d===10&&Ye?(g=ce(new N(g),W+_+1,Z),m=q(A(g.c),g.e,"0")):(R(d,2,be.length,"Base"),m=$(q(A(g.c),_,"0"),10,d,I,!0)),I<0&&g.c[0]&&(m="-"+m)),m},x.valueOf=x.toJSON=function(){return Oe(this)},x._isBigNumber=!0,U!=null&&N.set(U),N}function S(U){var L=U|0;return U>0||U===L?L:L-1}function A(U){for(var L,$,Y=1,x=U.length,ne=U[0]+"";Y<x;){for(L=U[Y++]+"",$=l-L.length;$--;L="0"+L);ne+=L}for(x=ne.length;ne.charCodeAt(--x)===48;);return ne.slice(0,x+1||1)}function T(U,L){var $,Y,x=U.c,ne=L.c,W=U.s,Z=L.s,pe=U.e,le=L.e;if(!W||!Z)return null;if($=x&&!x[0],Y=ne&&!ne[0],$||Y)return $?Y?0:-Z:W;if(W!=Z)return W;if($=W<0,Y=pe==le,!x||!ne)return Y?0:!x^$?1:-1;if(!Y)return pe>le^$?1:-1;for(Z=(pe=x.length)<(le=ne.length)?pe:le,W=0;W<Z;W++)if(x[W]!=ne[W])return x[W]>ne[W]^$?1:-1;return pe==le?0:pe>le^$?1:-1}function R(U,L,$,Y){if(U<L||U>$||U!==r(U))throw Error(i+(Y||"Argument")+(typeof U=="number"?U<L||U>$?" out of range: ":" not an integer: ":" not a primitive number: ")+String(U))}function O(U){var L=U.c.length-1;return S(U.e/l)==L&&U.c[L]%2!=0}function D(U,L){return(U.length>1?U.charAt(0)+"."+U.slice(1):U)+(L<0?"e":"e+")+L}function q(U,L,$){var Y,x;if(L<0){for(x=$+".";++L;x+=$);U=x+U}else if(Y=U.length,++L>Y){for(x=$,L-=Y;--L;x+=$);U+=x}else L<Y&&(U=U.slice(0,L)+"."+U.slice(L));return U}e=y(),e.default=e.BigNumber=e,typeof define=="function"&&define.amd?define(function(){return e}):typeof Jo<"u"&&Jo.exports?Jo.exports=e:(t||(t=typeof self<"u"&&self?self:window),t.BigNumber=e)})(sc)});var cc=b((iw,uc)=>{p();var ac=hs(),lc=uc.exports;(function(){"use strict";function t(u){return u<10?"0"+u:u}var e=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,n=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,o,r,i={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},s;function a(u){return n.lastIndex=0,n.test(u)?'"'+u.replace(n,function(c){var f=i[c];return typeof f=="string"?f:"\\u"+("0000"+c.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+u+'"'}function l(u,c){var f,h,y,S,A=o,T,R=c[u],O=R!=null&&(R instanceof ac||ac.isBigNumber(R));switch(R&&typeof R=="object"&&typeof R.toJSON=="function"&&(R=R.toJSON(u)),typeof s=="function"&&(R=s.call(c,u,R)),typeof R){case"string":return O?R:a(R);case"number":return isFinite(R)?String(R):"null";case"boolean":case"null":case"bigint":return String(R);case"object":if(!R)return"null";if(o+=r,T=[],Object.prototype.toString.apply(R)==="[object Array]"){for(S=R.length,f=0;f<S;f+=1)T[f]=l(f,R)||"null";return y=T.length===0?"[]":o?`[
|
|
9
|
+
`+o+T.join(`,
|
|
10
|
+
`+o)+`
|
|
11
|
+
`+A+"]":"["+T.join(",")+"]",o=A,y}if(s&&typeof s=="object")for(S=s.length,f=0;f<S;f+=1)typeof s[f]=="string"&&(h=s[f],y=l(h,R),y&&T.push(a(h)+(o?": ":":")+y));else Object.keys(R).forEach(function(D){var q=l(D,R);q&&T.push(a(D)+(o?": ":":")+q)});return y=T.length===0?"{}":o?`{
|
|
12
|
+
`+o+T.join(`,
|
|
13
|
+
`+o)+`
|
|
14
|
+
`+A+"}":"{"+T.join(",")+"}",o=A,y}}typeof lc.stringify!="function"&&(lc.stringify=function(u,c,f){var h;if(o="",r="",typeof f=="number")for(h=0;h<f;h+=1)r+=" ";else typeof f=="string"&&(r=f);if(s=c,c&&typeof c!="function"&&(typeof c!="object"||typeof c.length!="number"))throw new Error("JSON.stringify");return l("",{"":u})})})()});var fc=b((aw,dc)=>{p();var Wo=null,Sg=/(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])/,wg=/(?: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)/,Ig=function(t){"use strict";var e={strict:!1,storeAsString:!1,alwaysParseAsBig:!1,useNativeBigInt:!1,protoAction:"error",constructorAction:"error"};if(t!=null){if(t.strict===!0&&(e.strict=!0),t.storeAsString===!0&&(e.storeAsString=!0),e.alwaysParseAsBig=t.alwaysParseAsBig===!0?t.alwaysParseAsBig:!1,e.useNativeBigInt=t.useNativeBigInt===!0?t.useNativeBigInt:!1,typeof t.constructorAction<"u")if(t.constructorAction==="error"||t.constructorAction==="ignore"||t.constructorAction==="preserve")e.constructorAction=t.constructorAction;else throw new Error(`Incorrect value for constructorAction option, must be "error", "ignore" or undefined but passed ${t.constructorAction}`);if(typeof t.protoAction<"u")if(t.protoAction==="error"||t.protoAction==="ignore"||t.protoAction==="preserve")e.protoAction=t.protoAction;else throw new Error(`Incorrect value for protoAction option, must be "error", "ignore" or undefined but passed ${t.protoAction}`)}var n,o,r={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
|
|
15
|
+
`,r:"\r",t:" "},i,s=function(A){throw{name:"SyntaxError",message:A,at:n,text:i}},a=function(A){return A&&A!==o&&s("Expected '"+A+"' instead of '"+o+"'"),o=i.charAt(n),n+=1,o},l=function(){var A,T="";for(o==="-"&&(T="-",a("-"));o>="0"&&o<="9";)T+=o,a();if(o===".")for(T+=".";a()&&o>="0"&&o<="9";)T+=o;if(o==="e"||o==="E")for(T+=o,a(),(o==="-"||o==="+")&&(T+=o,a());o>="0"&&o<="9";)T+=o,a();if(A=+T,!isFinite(A))s("Bad number");else return Wo==null&&(Wo=hs()),T.length>15?e.storeAsString?T:e.useNativeBigInt?BigInt(T):new Wo(T):e.alwaysParseAsBig?e.useNativeBigInt?BigInt(A):new Wo(A):A},u=function(){var A,T,R="",O;if(o==='"')for(var D=n;a();){if(o==='"')return n-1>D&&(R+=i.substring(D,n-1)),a(),R;if(o==="\\"){if(n-1>D&&(R+=i.substring(D,n-1)),a(),o==="u"){for(O=0,T=0;T<4&&(A=parseInt(a(),16),!!isFinite(A));T+=1)O=O*16+A;R+=String.fromCharCode(O)}else if(typeof r[o]=="string")R+=r[o];else break;D=n}}s("Bad string")},c=function(){for(;o&&o<=" ";)a()},f=function(){switch(o){case"t":return a("t"),a("r"),a("u"),a("e"),!0;case"f":return a("f"),a("a"),a("l"),a("s"),a("e"),!1;case"n":return a("n"),a("u"),a("l"),a("l"),null}s("Unexpected '"+o+"'")},h,y=function(){var A=[];if(o==="["){if(a("["),c(),o==="]")return a("]"),A;for(;o;){if(A.push(h()),c(),o==="]")return a("]"),A;a(","),c()}}s("Bad array")},S=function(){var A,T=Object.create(null);if(o==="{"){if(a("{"),c(),o==="}")return a("}"),T;for(;o;){if(A=u(),c(),a(":"),e.strict===!0&&Object.hasOwnProperty.call(T,A)&&s('Duplicate key "'+A+'"'),Sg.test(A)===!0?e.protoAction==="error"?s("Object contains forbidden prototype property"):e.protoAction==="ignore"?h():T[A]=h():wg.test(A)===!0?e.constructorAction==="error"?s("Object contains forbidden constructor property"):e.constructorAction==="ignore"?h():T[A]=h():T[A]=h(),c(),o==="}")return a("}"),T;a(","),c()}}s("Bad object")};return h=function(){switch(c(),o){case"{":return S();case"[":return y();case'"':return u();case"-":return l();default:return o>="0"&&o<="9"?l():f()}},function(A,T){var R;return i=A+"",n=0,o=" ",R=h(),c(),o&&s("Syntax error"),typeof T=="function"?function O(D,q){var U,L,$=D[q];return $&&typeof $=="object"&&Object.keys($).forEach(function(Y){L=O($,Y),L!==void 0?$[Y]=L:delete $[Y]}),T.call(D,q,$)}({"":R},""):R}};dc.exports=Ig});var mc=b((uw,Yo)=>{p();var pc=cc().stringify,hc=fc();Yo.exports=function(t){return{parse:hc(t),stringify:pc}};Yo.exports.parse=hc();Yo.exports.stringify=pc});var ms=b(ze=>{"use strict";p();Object.defineProperty(ze,"__esModule",{value:!0});ze.GCE_LINUX_BIOS_PATHS=void 0;ze.isGoogleCloudServerless=Ec;ze.isGoogleComputeEngineLinux=Tc;ze.isGoogleComputeEngineMACAddress=_c;ze.isGoogleComputeEngine=Cc;ze.detectGCPResidency=Pg;var gc=J("fs"),yc=J("os");ze.GCE_LINUX_BIOS_PATHS={BIOS_DATE:"/sys/class/dmi/id/bios_date",BIOS_VENDOR:"/sys/class/dmi/id/bios_vendor"};var Rg=/^42:01/;function Ec(){return!!(process.env.CLOUD_RUN_JOB||process.env.FUNCTION_NAME||process.env.K_SERVICE)}function Tc(){if((0,yc.platform)()!=="linux")return!1;try{(0,gc.statSync)(ze.GCE_LINUX_BIOS_PATHS.BIOS_DATE);let t=(0,gc.readFileSync)(ze.GCE_LINUX_BIOS_PATHS.BIOS_VENDOR,"utf8");return/Google/.test(t)}catch{return!1}}function _c(){let t=(0,yc.networkInterfaces)();for(let e of Object.values(t))if(e){for(let{mac:n}of e)if(Rg.test(n))return!0}return!1}function Cc(){return Tc()||_c()}function Pg(){return Ec()||Cc()}});var Ac=b(zo=>{"use strict";p();Object.defineProperty(zo,"__esModule",{value:!0});zo.Colours=void 0;var _e=class t{static isEnabled(e){return e&&e.isTTY&&(typeof e.getColorDepth=="function"?e.getColorDepth()>2:!0)}static refresh(){t.enabled=t.isEnabled(process==null?void 0:process.stderr),this.enabled?(t.reset="\x1B[0m",t.bright="\x1B[1m",t.dim="\x1B[2m",t.red="\x1B[31m",t.green="\x1B[32m",t.yellow="\x1B[33m",t.blue="\x1B[34m",t.magenta="\x1B[35m",t.cyan="\x1B[36m",t.white="\x1B[37m",t.grey="\x1B[90m"):(t.reset="",t.bright="",t.dim="",t.red="",t.green="",t.yellow="",t.blue="",t.magenta="",t.cyan="",t.white="",t.grey="")}};zo.Colours=_e;_e.enabled=!1;_e.reset="";_e.bright="";_e.dim="";_e.red="";_e.green="";_e.yellow="";_e.blue="";_e.magenta="";_e.cyan="";_e.white="";_e.grey="";_e.refresh()});var Ic=b(ee=>{"use strict";p();var Mg=ee&&ee.__createBinding||(Object.create?function(t,e,n,o){o===void 0&&(o=n);var r=Object.getOwnPropertyDescriptor(e,n);(!r||("get"in r?!e.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,o,r)}:function(t,e,n,o){o===void 0&&(o=n),t[o]=e[n]}),kg=ee&&ee.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),vc=ee&&ee.__importStar||function(){var t=function(e){return t=Object.getOwnPropertyNames||function(n){var o=[];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(o[o.length]=r);return o},t(e)};return function(e){if(e&&e.__esModule)return e;var n={};if(e!=null)for(var o=t(e),r=0;r<o.length;r++)o[r]!=="default"&&Mg(n,e,o[r]);return kg(n,e),n}}();Object.defineProperty(ee,"__esModule",{value:!0});ee.env=ee.DebugLogBackendBase=ee.placeholder=ee.AdhocDebugLogger=ee.LogSeverity=void 0;ee.getNodeBackend=ys;ee.getDebugBackend=Ng;ee.getStructuredBackend=Dg;ee.setBackend=bg;ee.log=wc;var xg=J("events"),$n=vc(J("process")),Sc=vc(J("util")),Me=Ac(),Xe;(function(t){t.DEFAULT="DEFAULT",t.DEBUG="DEBUG",t.INFO="INFO",t.WARNING="WARNING",t.ERROR="ERROR"})(Xe||(ee.LogSeverity=Xe={}));var Kn=class extends xg.EventEmitter{constructor(e,n){super(),this.namespace=e,this.upstream=n,this.func=Object.assign(this.invoke.bind(this),{instance:this,on:(o,r)=>this.on(o,r)}),this.func.debug=(...o)=>this.invokeSeverity(Xe.DEBUG,...o),this.func.info=(...o)=>this.invokeSeverity(Xe.INFO,...o),this.func.warn=(...o)=>this.invokeSeverity(Xe.WARNING,...o),this.func.error=(...o)=>this.invokeSeverity(Xe.ERROR,...o),this.func.sublog=o=>wc(o,this.func)}invoke(e,...n){if(this.upstream)try{this.upstream(e,...n)}catch{}try{this.emit("log",e,n)}catch{}}invokeSeverity(e,...n){this.invoke({severity:e},...n)}};ee.AdhocDebugLogger=Kn;ee.placeholder=new Kn("",()=>{}).func;var jt=class{constructor(){var e;this.cached=new Map,this.filters=[],this.filtersSet=!1;let n=(e=$n.env[ee.env.nodeEnables])!==null&&e!==void 0?e:"*";n==="all"&&(n="*"),this.filters=n.split(",")}log(e,n,...o){try{this.filtersSet||(this.setFilters(),this.filtersSet=!0);let r=this.cached.get(e);r||(r=this.makeLogger(e),this.cached.set(e,r)),r(n,...o)}catch(r){console.error(r)}}};ee.DebugLogBackendBase=jt;var gs=class extends jt{constructor(){super(...arguments),this.enabledRegexp=/.*/g}isEnabled(e){return this.enabledRegexp.test(e)}makeLogger(e){return this.enabledRegexp.test(e)?(n,...o)=>{var r;let i=`${Me.Colours.green}${e}${Me.Colours.reset}`,s=`${Me.Colours.yellow}${$n.pid}${Me.Colours.reset}`,a;switch(n.severity){case Xe.ERROR:a=`${Me.Colours.red}${n.severity}${Me.Colours.reset}`;break;case Xe.INFO:a=`${Me.Colours.magenta}${n.severity}${Me.Colours.reset}`;break;case Xe.WARNING:a=`${Me.Colours.yellow}${n.severity}${Me.Colours.reset}`;break;default:a=(r=n.severity)!==null&&r!==void 0?r:Xe.DEFAULT;break}let l=Sc.formatWithOptions({colors:Me.Colours.enabled},...o),u=Object.assign({},n);delete u.severity;let c=Object.getOwnPropertyNames(u).length?JSON.stringify(u):"",f=c?`${Me.Colours.grey}${c}${Me.Colours.reset}`:"";console.error("%s [%s|%s] %s%s",s,i,a,l,c?` ${f}`:"")}:()=>{}}setFilters(){let n=this.filters.join(",").replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^");this.enabledRegexp=new RegExp(`^${n}$`,"i")}};function ys(){return new gs}var Es=class extends jt{constructor(e){super(),this.debugPkg=e}makeLogger(e){let n=this.debugPkg(e);return(o,...r)=>{n(r[0],...r.slice(1))}}setFilters(){var e;let n=(e=$n.env.NODE_DEBUG)!==null&&e!==void 0?e:"";$n.env.NODE_DEBUG=`${n}${n?",":""}${this.filters.join(",")}`}};function Ng(t){return new Es(t)}var Ts=class extends jt{constructor(e){var n;super(),this.upstream=(n=e)!==null&&n!==void 0?n:void 0}makeLogger(e){var n;let o=(n=this.upstream)===null||n===void 0?void 0:n.makeLogger(e);return(r,...i)=>{var s;let a=(s=r.severity)!==null&&s!==void 0?s:Xe.INFO,l=Object.assign({severity:a,message:Sc.format(...i)},r),u=JSON.stringify(l);o?o(r,u):console.log("%s",u)}}setFilters(){var e;(e=this.upstream)===null||e===void 0||e.setFilters()}};function Dg(t){return new Ts(t)}ee.env={nodeEnables:"GOOGLE_SDK_NODE_LOGGING"};var _s=new Map,ke;function bg(t){ke=t,_s.clear()}function wc(t,e){if(!ke&&!$n.env[ee.env.nodeEnables]||!t)return ee.placeholder;e&&(t=`${e.instance.namespace}:${t}`);let n=_s.get(t);if(n)return n.func;if(ke===null)return ee.placeholder;ke===void 0&&(ke=ys());let o=(()=>{let r;return new Kn(t,(s,...a)=>{if(r!==ke){if(ke===null)return;ke===void 0&&(ke=ys()),r=ke}ke?.log(t,s,...a)})})();return _s.set(t,o),o.func}});var Cs=b(Gt=>{"use strict";p();var Og=Gt&&Gt.__createBinding||(Object.create?function(t,e,n,o){o===void 0&&(o=n);var r=Object.getOwnPropertyDescriptor(e,n);(!r||("get"in r?!e.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,o,r)}:function(t,e,n,o){o===void 0&&(o=n),t[o]=e[n]}),Ug=Gt&&Gt.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&Og(e,t,n)};Object.defineProperty(Gt,"__esModule",{value:!0});Ug(Ic(),Gt)});var Wn=b(V=>{"use strict";p();var Pc=V&&V.__createBinding||(Object.create?function(t,e,n,o){o===void 0&&(o=n);var r=Object.getOwnPropertyDescriptor(e,n);(!r||("get"in r?!e.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,o,r)}:function(t,e,n,o){o===void 0&&(o=n),t[o]=e[n]}),Lg=V&&V.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Gg=V&&V.__importStar||function(){var t=function(e){return t=Object.getOwnPropertyNames||function(n){var o=[];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(o[o.length]=r);return o},t(e)};return function(e){if(e&&e.__esModule)return e;var n={};if(e!=null)for(var o=t(e),r=0;r<o.length;r++)o[r]!=="default"&&Pc(n,e,o[r]);return Lg(n,e),n}}(),Fg=V&&V.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&Pc(e,t,n)};Object.defineProperty(V,"__esModule",{value:!0});V.gcpResidencyCache=V.METADATA_SERVER_DETECTION=V.HEADERS=V.HEADER_VALUE=V.HEADER_NAME=V.SECONDARY_HOST_ADDRESS=V.HOST_ADDRESS=V.BASE_PATH=void 0;V.instance=Kg;V.project=Jg;V.universe=Wg;V.bulk=Yg;V.isAvailable=Xg;V.resetIsAvailableCache=Qg;V.getGCPResidency=Ss;V.setGCPResidency=Mc;V.requestTimeout=kc;var As=ye(),qg=mc(),Bg=ms(),Hg=Gg(Cs());V.BASE_PATH="/computeMetadata/v1";V.HOST_ADDRESS="http://169.254.169.254";V.SECONDARY_HOST_ADDRESS="http://metadata.google.internal.";V.HEADER_NAME="Metadata-Flavor";V.HEADER_VALUE="Google";V.HEADERS=Object.freeze({[V.HEADER_NAME]:V.HEADER_VALUE});var Rc=Hg.log("gcp-metadata");V.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 vs(t){return t||(t=process.env.GCE_METADATA_IP||process.env.GCE_METADATA_HOST||V.HOST_ADDRESS),/^https?:\/\//.test(t)||(t=`http://${t}`),new URL(V.BASE_PATH,t).href}function Vg(t){Object.keys(t).forEach(e=>{switch(e){case"params":case"property":case"headers":break;case"qs":throw new Error("'qs' is not a valid configuration option. Please use 'params' instead.");default:throw new Error(`'${e}' is not a valid configuration option.`)}})}async function Jn(t,e={},n=3,o=!1){let r=new Headers(V.HEADERS),i="",s={};if(typeof t=="object"){let f=t;new Headers(f.headers).forEach((h,y)=>r.set(y,h)),i=f.metadataKey,s=f.params||s,n=f.noResponseRetries||n,o=f.fastFail||o}else i=t;typeof e=="string"?i+=`/${e}`:(Vg(e),e.property&&(i+=`/${e.property}`),new Headers(e.headers).forEach((f,h)=>r.set(h,f)),s=e.params||s);let a=o?$g:As.request,l={url:`${vs()}/${i}`,headers:r,retryConfig:{noResponseRetries:n},params:s,responseType:"text",timeout:kc()};Rc.info("instance request %j",l);let u=await a(l);Rc.info("instance metadata is %s",u.data);let c=u.headers.get(V.HEADER_NAME);if(c!==V.HEADER_VALUE)throw new RangeError(`Invalid response from metadata service: incorrect ${V.HEADER_NAME} header. Expected '${V.HEADER_VALUE}', got ${c?`'${c}'`:"no header"}`);if(typeof u.data=="string")try{return qg.parse(u.data)}catch{}return u.data}async function $g(t){let e={...t,url:t.url?.toString().replace(vs(),vs(V.SECONDARY_HOST_ADDRESS))},n=(0,As.request)(t),o=(0,As.request)(e);return Promise.any([n,o])}function Kg(t){return Jn("instance",t)}function Jg(t){return Jn("project",t)}function Wg(t){return Jn("universe",t)}async function Yg(t){let e={};return await Promise.all(t.map(n=>(async()=>{let o=await Jn(n),r=n.metadataKey;e[r]=o})())),e}function zg(){return process.env.DETECT_GCP_RETRIES?Number(process.env.DETECT_GCP_RETRIES):0}var Xo;async function Xg(){if(process.env.METADATA_SERVER_DETECTION){let t=process.env.METADATA_SERVER_DETECTION.trim().toLocaleLowerCase();if(!(t in V.METADATA_SERVER_DETECTION))throw new RangeError(`Unknown \`METADATA_SERVER_DETECTION\` env variable. Got \`${t}\`, but it should be \`${Object.keys(V.METADATA_SERVER_DETECTION).join("`, `")}\`, or unset`);switch(t){case"assume-present":return!0;case"none":return!1;case"bios-only":return Ss();case"ping-only":}}try{return Xo===void 0&&(Xo=Jn("instance",void 0,zg(),!(process.env.GCE_METADATA_IP||process.env.GCE_METADATA_HOST))),await Xo,!0}catch(t){let e=t;if(process.env.DEBUG_AUTH&&console.info(e),e.type==="request-timeout"||e.response&&e.response.status===404)return!1;if(!(e.response&&e.response.status===404)&&(!e.code||!["EHOSTDOWN","EHOSTUNREACH","ENETUNREACH","ENOENT","ENOTFOUND","ECONNREFUSED"].includes(e.code.toString()))){let n="UNKNOWN";e.code&&(n=e.code.toString()),process.emitWarning(`received unexpected error = ${e.message} code = ${n}`,"MetadataLookupWarning")}return!1}}function Qg(){Xo=void 0}V.gcpResidencyCache=null;function Ss(){return V.gcpResidencyCache===null&&Mc(),V.gcpResidencyCache}function Mc(t=null){V.gcpResidencyCache=t!==null?t:(0,Bg.detectGCPResidency)()}function kc(){return Ss()?0:3e3}Fg(ms(),V)});var Dc=b(Qo=>{"use strict";p();Qo.byteLength=jg;Qo.toByteArray=ty;Qo.fromByteArray=ry;var rt=[],Be=[],Zg=typeof Uint8Array<"u"?Uint8Array:Array,ws="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(Ft=0,xc=ws.length;Ft<xc;++Ft)rt[Ft]=ws[Ft],Be[ws.charCodeAt(Ft)]=Ft;var Ft,xc;Be[45]=62;Be[95]=63;function Nc(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");n===-1&&(n=e);var o=n===e?0:4-n%4;return[n,o]}function jg(t){var e=Nc(t),n=e[0],o=e[1];return(n+o)*3/4-o}function ey(t,e,n){return(e+n)*3/4-n}function ty(t){var e,n=Nc(t),o=n[0],r=n[1],i=new Zg(ey(t,o,r)),s=0,a=r>0?o-4:o,l;for(l=0;l<a;l+=4)e=Be[t.charCodeAt(l)]<<18|Be[t.charCodeAt(l+1)]<<12|Be[t.charCodeAt(l+2)]<<6|Be[t.charCodeAt(l+3)],i[s++]=e>>16&255,i[s++]=e>>8&255,i[s++]=e&255;return r===2&&(e=Be[t.charCodeAt(l)]<<2|Be[t.charCodeAt(l+1)]>>4,i[s++]=e&255),r===1&&(e=Be[t.charCodeAt(l)]<<10|Be[t.charCodeAt(l+1)]<<4|Be[t.charCodeAt(l+2)]>>2,i[s++]=e>>8&255,i[s++]=e&255),i}function ny(t){return rt[t>>18&63]+rt[t>>12&63]+rt[t>>6&63]+rt[t&63]}function oy(t,e,n){for(var o,r=[],i=e;i<n;i+=3)o=(t[i]<<16&16711680)+(t[i+1]<<8&65280)+(t[i+2]&255),r.push(ny(o));return r.join("")}function ry(t){for(var e,n=t.length,o=n%3,r=[],i=16383,s=0,a=n-o;s<a;s+=i)r.push(oy(t,s,s+i>a?a:s+i));return o===1?(e=t[n-1],r.push(rt[e>>2]+rt[e<<4&63]+"==")):o===2&&(e=(t[n-2]<<8)+t[n-1],r.push(rt[e>>10]+rt[e>>4&63]+rt[e<<2&63]+"=")),r.join("")}});var Rs=b(Is=>{"use strict";p();Object.defineProperty(Is,"__esModule",{value:!0});Is.fromArrayBufferToHex=iy;function iy(t){return Array.from(new Uint8Array(t)).map(n=>n.toString(16).padStart(2,"0")).join("")}});var bc=b(Zo=>{"use strict";p();Object.defineProperty(Zo,"__esModule",{value:!0});Zo.BrowserCrypto=void 0;var en=Dc(),sy=Rs(),Ps=class t{constructor(){if(typeof window>"u"||window.crypto===void 0||window.crypto.subtle===void 0)throw new Error("SubtleCrypto not found. Make sure it's an https:// website.")}async sha256DigestBase64(e){let n=new TextEncoder().encode(e),o=await window.crypto.subtle.digest("SHA-256",n);return en.fromByteArray(new Uint8Array(o))}randomBytesBase64(e){let n=new Uint8Array(e);return window.crypto.getRandomValues(n),en.fromByteArray(n)}static padBase64(e){for(;e.length%4!==0;)e+="=";return e}async verify(e,n,o){let r={name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},i=new TextEncoder().encode(n),s=en.toByteArray(t.padBase64(o)),a=await window.crypto.subtle.importKey("jwk",e,r,!0,["verify"]);return await window.crypto.subtle.verify(r,a,Buffer.from(s),i)}async sign(e,n){let o={name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},r=new TextEncoder().encode(n),i=await window.crypto.subtle.importKey("jwk",e,o,!0,["sign"]),s=await window.crypto.subtle.sign(o,i,r);return en.fromByteArray(new Uint8Array(s))}decodeBase64StringUtf8(e){let n=en.toByteArray(t.padBase64(e));return new TextDecoder().decode(n)}encodeBase64StringUtf8(e){let n=new TextEncoder().encode(e);return en.fromByteArray(n)}async sha256DigestHex(e){let n=new TextEncoder().encode(e),o=await window.crypto.subtle.digest("SHA-256",n);return(0,sy.fromArrayBufferToHex)(o)}async signWithHmacSha256(e,n){let o=typeof e=="string"?e:String.fromCharCode(...new Uint16Array(e)),r=new TextEncoder,i=await window.crypto.subtle.importKey("raw",r.encode(o),{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]);return window.crypto.subtle.sign("HMAC",i,r.encode(n))}};Zo.BrowserCrypto=Ps});var Oc=b(jo=>{"use strict";p();Object.defineProperty(jo,"__esModule",{value:!0});jo.NodeCrypto=void 0;var tn=J("crypto"),Ms=class{async sha256DigestBase64(e){return tn.createHash("sha256").update(e).digest("base64")}randomBytesBase64(e){return tn.randomBytes(e).toString("base64")}async verify(e,n,o){let r=tn.createVerify("RSA-SHA256");return r.update(n),r.end(),r.verify(e,o,"base64")}async sign(e,n){let o=tn.createSign("RSA-SHA256");return o.update(n),o.end(),o.sign(e,"base64")}decodeBase64StringUtf8(e){return Buffer.from(e,"base64").toString("utf-8")}encodeBase64StringUtf8(e){return Buffer.from(e,"utf-8").toString("base64")}async sha256DigestHex(e){return tn.createHash("sha256").update(e).digest("hex")}async signWithHmacSha256(e,n){let o=typeof e=="string"?e:ly(e);return ay(tn.createHmac("sha256",o).update(n).digest())}};jo.NodeCrypto=Ms;function ay(t){let e=new ArrayBuffer(t.length),n=new Uint8Array(e);for(let o=0;o<t.length;++o)n[o]=t[o];return e}function ly(t){return Buffer.from(t)}});var Yn=b(mt=>{"use strict";p();var uy=mt&&mt.__createBinding||(Object.create?function(t,e,n,o){o===void 0&&(o=n);var r=Object.getOwnPropertyDescriptor(e,n);(!r||("get"in r?!e.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,o,r)}:function(t,e,n,o){o===void 0&&(o=n),t[o]=e[n]}),cy=mt&&mt.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&uy(e,t,n)};Object.defineProperty(mt,"__esModule",{value:!0});mt.createCrypto=py;mt.hasBrowserCrypto=Uc;var dy=bc(),fy=Oc();cy(Rs(),mt);function py(){return Uc()?new dy.BrowserCrypto:new fy.NodeCrypto}function Uc(){return typeof window<"u"&&typeof window.crypto<"u"&&typeof window.crypto.subtle<"u"}});var nn=b((ks,Gc)=>{p();var er=J("buffer"),it=er.Buffer;function Lc(t,e){for(var n in t)e[n]=t[n]}it.from&&it.alloc&&it.allocUnsafe&&it.allocUnsafeSlow?Gc.exports=er:(Lc(er,ks),ks.Buffer=qt);function qt(t,e,n){return it(t,e,n)}qt.prototype=Object.create(it.prototype);Lc(it,qt);qt.from=function(t,e,n){if(typeof t=="number")throw new TypeError("Argument must not be a number");return it(t,e,n)};qt.alloc=function(t,e,n){if(typeof t!="number")throw new TypeError("Argument must be a number");var o=it(t);return e!==void 0?typeof n=="string"?o.fill(e,n):o.fill(e):o.fill(0),o};qt.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return it(t)};qt.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return er.SlowBuffer(t)}});var qc=b((Nw,Fc)=>{"use strict";p();function xs(t){var e=(t/8|0)+(t%8===0?0:1);return e}var hy={ES256:xs(256),ES384:xs(384),ES512:xs(521)};function my(t){var e=hy[t];if(e)return e;throw new Error('Unknown algorithm "'+t+'"')}Fc.exports=my});var Ns=b((bw,Jc)=>{"use strict";p();var tr=nn().Buffer,Hc=qc(),nr=128,Vc=0,gy=32,yy=16,Ey=2,$c=yy|gy|Vc<<6,or=Ey|Vc<<6;function Ty(t){return t.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function Kc(t){if(tr.isBuffer(t))return t;if(typeof t=="string")return tr.from(t,"base64");throw new TypeError("ECDSA signature must be a Base64 string or a Buffer")}function _y(t,e){t=Kc(t);var n=Hc(e),o=n+1,r=t.length,i=0;if(t[i++]!==$c)throw new Error('Could not find expected "seq"');var s=t[i++];if(s===(nr|1)&&(s=t[i++]),r-i<s)throw new Error('"seq" specified length of "'+s+'", only "'+(r-i)+'" remaining');if(t[i++]!==or)throw new Error('Could not find expected "int" for "r"');var a=t[i++];if(r-i-2<a)throw new Error('"r" specified length of "'+a+'", only "'+(r-i-2)+'" available');if(o<a)throw new Error('"r" specified length of "'+a+'", max of "'+o+'" is acceptable');var l=i;if(i+=a,t[i++]!==or)throw new Error('Could not find expected "int" for "s"');var u=t[i++];if(r-i!==u)throw new Error('"s" specified length of "'+u+'", expected "'+(r-i)+'"');if(o<u)throw new Error('"s" specified length of "'+u+'", max of "'+o+'" is acceptable');var c=i;if(i+=u,i!==r)throw new Error('Expected to consume entire buffer, but "'+(r-i)+'" bytes remain');var f=n-a,h=n-u,y=tr.allocUnsafe(f+a+h+u);for(i=0;i<f;++i)y[i]=0;t.copy(y,i,l+Math.max(-f,0),l+a),i=n;for(var S=i;i<S+h;++i)y[i]=0;return t.copy(y,i,c+Math.max(-h,0),c+u),y=y.toString("base64"),y=Ty(y),y}function Bc(t,e,n){for(var o=0;e+o<n&&t[e+o]===0;)++o;var r=t[e+o]>=nr;return r&&--o,o}function Cy(t,e){t=Kc(t);var n=Hc(e),o=t.length;if(o!==n*2)throw new TypeError('"'+e+'" signatures must be "'+n*2+'" bytes, saw "'+o+'"');var r=Bc(t,0,n),i=Bc(t,n,t.length),s=n-r,a=n-i,l=2+s+1+1+a,u=l<nr,c=tr.allocUnsafe((u?2:3)+l),f=0;return c[f++]=$c,u?c[f++]=l:(c[f++]=nr|1,c[f++]=l&255),c[f++]=or,c[f++]=s,r<0?(c[f++]=0,f+=t.copy(c,f,0,n)):f+=t.copy(c,f,r,n),c[f++]=or,c[f++]=a,i<0?(c[f++]=0,t.copy(c,f,n)):t.copy(c,f,n+i),c}Jc.exports={derToJose:_y,joseToDer:Cy}});var Qe=b(gt=>{"use strict";p();Object.defineProperty(gt,"__esModule",{value:!0});gt.LRUCache=void 0;gt.snakeToCamel=Yc;gt.originalOrCamelOptions=wy;gt.removeUndefinedValuesInObject=Iy;gt.isValidFile=Ry;gt.getWellKnownCertificateConfigFileLocation=Py;var Ay=J("fs"),vy=J("os"),Ds=J("path"),Sy="certificate_config.json",Wc="gcloud";function Yc(t){return t.replace(/([_][^_])/g,e=>e.slice(1).toUpperCase())}function wy(t){function e(n){let o=t||{};return o[n]??o[Yc(n)]}return{get:e}}var bs=class{capacity;#e=new Map;maxAge;constructor(e){this.capacity=e.capacity,this.maxAge=e.maxAge}#t(e,n){this.#e.delete(e),this.#e.set(e,{value:n,lastAccessed:Date.now()})}set(e,n){this.#t(e,n),this.#n()}get(e){let n=this.#e.get(e);if(n)return this.#t(e,n.value),this.#n(),n.value}#n(){let e=this.maxAge?Date.now()-this.maxAge:0,n=this.#e.entries().next();for(;!n.done&&(this.#e.size>this.capacity||n.value[1].lastAccessed<e);)this.#e.delete(n.value[0]),n=this.#e.entries().next()}};gt.LRUCache=bs;function Iy(t){return Object.entries(t).forEach(([e,n])=>{(n===void 0||n==="undefined")&&delete t[e]}),t}async function Ry(t){try{return(await Ay.promises.lstat(t)).isFile()}catch{return!1}}function Py(){let t=process.env.CLOUDSDK_CONFIG||(My()?Ds.join(process.env.APPDATA||"",Wc):Ds.join(process.env.HOME||"",".config",Wc));return Ds.join(t,Sy)}function My(){return vy.platform().startsWith("win")}});var zc=b((Gw,ky)=>{ky.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 Os=b(wt=>{"use strict";p();Object.defineProperty(wt,"__esModule",{value:!0});wt.USER_AGENT=wt.PRODUCT_NAME=wt.pkg=void 0;var Xc=zc();wt.pkg=Xc;var Qc="google-api-nodejs-client";wt.PRODUCT_NAME=Qc;var xy=`${Qc}/${Xc.version}`;wt.USER_AGENT=xy});var xe=b(Ze=>{"use strict";p();Object.defineProperty(Ze,"__esModule",{value:!0});Ze.AuthClient=Ze.DEFAULT_EAGER_REFRESH_THRESHOLD_MILLIS=Ze.DEFAULT_UNIVERSE=void 0;var Ny=J("events"),Us=ye(),Dy=Qe(),by=Cs(),Ls=Os();Ze.DEFAULT_UNIVERSE="googleapis.com";Ze.DEFAULT_EAGER_REFRESH_THRESHOLD_MILLIS=5*60*1e3;var Gs=class t extends Ny.EventEmitter{apiKey;projectId;quotaProjectId;transporter;credentials={};eagerRefreshThresholdMillis=Ze.DEFAULT_EAGER_REFRESH_THRESHOLD_MILLIS;forceRefreshOnFailure=!1;universeDomain=Ze.DEFAULT_UNIVERSE;static RequestMethodNameSymbol=Symbol("request method name");static RequestLogIdSymbol=Symbol("request log id");constructor(e={}){super();let n=(0,Dy.originalOrCamelOptions)(e);this.apiKey=e.apiKey,this.projectId=n.get("project_id")??null,this.quotaProjectId=n.get("quota_project_id"),this.credentials=n.get("credentials")??{},this.universeDomain=n.get("universe_domain")??Ze.DEFAULT_UNIVERSE,this.transporter=e.transporter??new Us.Gaxios(e.transporterOptions),n.get("useAuthRequestParameters")!==!1&&(this.transporter.interceptors.request.add(t.DEFAULT_REQUEST_INTERCEPTOR),this.transporter.interceptors.response.add(t.DEFAULT_RESPONSE_INTERCEPTOR)),e.eagerRefreshThresholdMillis&&(this.eagerRefreshThresholdMillis=e.eagerRefreshThresholdMillis),this.forceRefreshOnFailure=e.forceRefreshOnFailure??!1}fetch(...e){let n=e[0],o=e[1],r,i=new Headers;return typeof n=="string"?r=new URL(n):n instanceof URL?r=n:n&&n.url&&(r=new URL(n.url)),n&&typeof n=="object"&&"headers"in n&&Us.Gaxios.mergeHeaders(i,n.headers),o&&Us.Gaxios.mergeHeaders(i,new Headers(o.headers)),typeof n=="object"&&!(n instanceof URL)?this.request({...o,...n,headers:i,url:r}):this.request({...o,headers:i,url:r})}setCredentials(e){this.credentials=e}addSharedMetadataHeaders(e){return!e.has("x-goog-user-project")&&this.quotaProjectId&&e.set("x-goog-user-project",this.quotaProjectId),e}addUserProjectAndAuthHeaders(e,n){let o=n.get("x-goog-user-project"),r=n.get("authorization");return o&&e.set("x-goog-user-project",o),r&&e.set("authorization",r),e}static log=(0,by.log)("auth");static DEFAULT_REQUEST_INTERCEPTOR={resolved:async e=>{if(!e.headers.has("x-goog-api-client")){let o=process.version.replace(/^v/,"");e.headers.set("x-goog-api-client",`gl-node/${o}`)}let n=e.headers.get("User-Agent");n?n.includes(`${Ls.PRODUCT_NAME}/`)||e.headers.set("User-Agent",`${n} ${Ls.USER_AGENT}`):e.headers.set("User-Agent",Ls.USER_AGENT);try{let o=e,r=o[t.RequestMethodNameSymbol],i=`${Math.floor(Math.random()*1e3)}`;o[t.RequestLogIdSymbol]=i;let s={url:e.url,headers:e.headers};r?t.log.info("%s [%s] request %j",r,i,s):t.log.info("[%s] request %j",i,s)}catch{}return e}};static DEFAULT_RESPONSE_INTERCEPTOR={resolved:async e=>{try{let n=e.config,o=n[t.RequestMethodNameSymbol],r=n[t.RequestLogIdSymbol];o?t.log.info("%s [%s] response %j",o,r,e.data):t.log.info("[%s] response %j",r,e.data)}catch{}return e},rejected:async e=>{try{let n=e.config,o=n[t.RequestMethodNameSymbol],r=n[t.RequestLogIdSymbol];o?t.log.info("%s [%s] error %j",o,r,e.response?.data):t.log.error("[%s] error %j",r,e.response?.data)}catch{}throw e}};static setMethodName(e,n){try{let o=e;o[t.RequestMethodNameSymbol]=n}catch{}}static get RETRY_CONFIG(){return{retry:!0,retryConfig:{httpMethodsToRetry:["GET","PUT","POST","HEAD","OPTIONS","DELETE"]}}}};Ze.AuthClient=Gs});var qs=b(rr=>{"use strict";p();Object.defineProperty(rr,"__esModule",{value:!0});rr.LoginTicket=void 0;var Fs=class{envelope;payload;constructor(e,n){this.envelope=e,this.payload=n}getEnvelope(){return this.envelope}getPayload(){return this.payload}getUserId(){let e=this.getPayload();return e&&e.sub?e.sub:null}getAttributes(){return{envelope:this.getEnvelope(),payload:this.getPayload()}}};rr.LoginTicket=Fs});var Bt=b(st=>{"use strict";p();Object.defineProperty(st,"__esModule",{value:!0});st.OAuth2Client=st.ClientAuthentication=st.CertificateFormat=st.CodeChallengeMethod=void 0;var Zc=ye(),Oy=J("querystring"),Uy=J("stream"),Ly=Ns(),jc=Qe(),Bs=Yn(),on=xe(),Gy=qs(),ed;(function(t){t.Plain="plain",t.S256="S256"})(ed||(st.CodeChallengeMethod=ed={}));var yt;(function(t){t.PEM="PEM",t.JWK="JWK"})(yt||(st.CertificateFormat=yt={}));var zn;(function(t){t.ClientSecretPost="ClientSecretPost",t.ClientSecretBasic="ClientSecretBasic",t.None="None"})(zn||(st.ClientAuthentication=zn={}));var Hs=class t extends on.AuthClient{redirectUri;certificateCache={};certificateExpiry=null;certificateCacheFormat=yt.PEM;refreshTokenPromises=new Map;endpoints;issuers;clientAuthentication;_clientId;_clientSecret;refreshHandler;constructor(e={},n,o){super(typeof e=="object"?e:{}),typeof e!="object"&&(e={clientId:e,clientSecret:n,redirectUri:o}),this._clientId=e.clientId||e.client_id,this._clientSecret=e.clientSecret||e.client_secret,this.redirectUri=e.redirectUri||e.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",...e.endpoints},this.clientAuthentication=e.clientAuthentication||zn.ClientSecretPost,this.issuers=e.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(e={}){if(e.code_challenge_method&&!e.code_challenge)throw new Error("If a code_challenge_method is provided, code_challenge must be included.");return e.response_type=e.response_type||"code",e.client_id=e.client_id||this._clientId,e.redirect_uri=e.redirect_uri||this.redirectUri,Array.isArray(e.scope)&&(e.scope=e.scope.join(" ")),this.endpoints.oauth2AuthBaseUrl.toString()+"?"+Oy.stringify(e)}generateCodeVerifier(){throw new Error("generateCodeVerifier is removed, please use generateCodeVerifierAsync instead.")}async generateCodeVerifierAsync(){let e=(0,Bs.createCrypto)(),o=e.randomBytesBase64(96).replace(/\+/g,"~").replace(/=/g,"_").replace(/\//g,"-"),i=(await e.sha256DigestBase64(o)).split("=")[0].replace(/\+/g,"-").replace(/\//g,"_");return{codeVerifier:o,codeChallenge:i}}getToken(e,n){let o=typeof e=="string"?{code:e}:e;if(n)this.getTokenAsync(o).then(r=>n(null,r.tokens,r.res),r=>n(r,null,r.response));else return this.getTokenAsync(o)}async getTokenAsync(e){let n=this.endpoints.oauth2TokenUrl.toString(),o=new Headers,r={client_id:e.client_id||this._clientId,code_verifier:e.codeVerifier,code:e.code,grant_type:"authorization_code",redirect_uri:e.redirect_uri||this.redirectUri};if(this.clientAuthentication===zn.ClientSecretBasic){let l=Buffer.from(`${this._clientId}:${this._clientSecret}`);o.set("authorization",`Basic ${l.toString("base64")}`)}this.clientAuthentication===zn.ClientSecretPost&&(r.client_secret=this._clientSecret);let i={...t.RETRY_CONFIG,method:"POST",url:n,data:new URLSearchParams((0,jc.removeUndefinedValuesInObject)(r)),headers:o};on.AuthClient.setMethodName(i,"getTokenAsync");let s=await this.transporter.request(i),a=s.data;return s.data&&s.data.expires_in&&(a.expiry_date=new Date().getTime()+s.data.expires_in*1e3,delete a.expires_in),this.emit("tokens",a),{tokens:a,res:s}}async refreshToken(e){if(!e)return this.refreshTokenNoCache(e);if(this.refreshTokenPromises.has(e))return this.refreshTokenPromises.get(e);let n=this.refreshTokenNoCache(e).then(o=>(this.refreshTokenPromises.delete(e),o),o=>{throw this.refreshTokenPromises.delete(e),o});return this.refreshTokenPromises.set(e,n),n}async refreshTokenNoCache(e){if(!e)throw new Error("No refresh token is set.");let n=this.endpoints.oauth2TokenUrl.toString(),o={refresh_token:e,client_id:this._clientId,client_secret:this._clientSecret,grant_type:"refresh_token"},r;try{let s={...t.RETRY_CONFIG,method:"POST",url:n,data:new URLSearchParams((0,jc.removeUndefinedValuesInObject)(o))};on.AuthClient.setMethodName(s,"refreshTokenNoCache"),r=await this.transporter.request(s)}catch(s){throw s instanceof Zc.GaxiosError&&s.message==="invalid_grant"&&s.response?.data&&/ReAuth/i.test(s.response.data.error_description)&&(s.message=JSON.stringify(s.response.data)),s}let i=r.data;return r.data&&r.data.expires_in&&(i.expiry_date=new Date().getTime()+r.data.expires_in*1e3,delete i.expires_in),this.emit("tokens",i),{tokens:i,res:r}}refreshAccessToken(e){if(e)this.refreshAccessTokenAsync().then(n=>e(null,n.credentials,n.res),e);else return this.refreshAccessTokenAsync()}async refreshAccessTokenAsync(){let e=await this.refreshToken(this.credentials.refresh_token),n=e.tokens;return n.refresh_token=this.credentials.refresh_token,this.credentials=n,{credentials:this.credentials,res:e.res}}getAccessToken(e){if(e)this.getAccessTokenAsync().then(n=>e(null,n.token,n.res),e);else return this.getAccessTokenAsync()}async getAccessTokenAsync(){if(!this.credentials.access_token||this.isTokenExpiring()){if(!this.credentials.refresh_token)if(this.refreshHandler){let o=await this.processAndValidateRefreshHandler();if(o?.access_token)return this.setCredentials(o),{token:this.credentials.access_token}}else throw new Error("No refresh token or refresh handler callback is set.");let n=await this.refreshAccessTokenAsync();if(!n.credentials||n.credentials&&!n.credentials.access_token)throw new Error("Could not refresh access token.");return{token:n.credentials.access_token,res:n.res}}else return{token:this.credentials.access_token}}async getRequestHeaders(e){return(await this.getRequestMetadataAsync(e)).headers}async getRequestMetadataAsync(e){let n=this.credentials;if(!n.access_token&&!n.refresh_token&&!this.apiKey&&!this.refreshHandler)throw new Error("No access, refresh token, API key or refresh handler callback is set.");if(n.access_token&&!this.isTokenExpiring()){n.token_type=n.token_type||"Bearer";let a=new Headers({authorization:n.token_type+" "+n.access_token});return{headers:this.addSharedMetadataHeaders(a)}}if(this.refreshHandler){let a=await this.processAndValidateRefreshHandler();if(a?.access_token){this.setCredentials(a);let l=new Headers({authorization:"Bearer "+this.credentials.access_token});return{headers:this.addSharedMetadataHeaders(l)}}}if(this.apiKey)return{headers:new Headers({"X-Goog-Api-Key":this.apiKey})};let o=null,r=null;try{o=await this.refreshToken(n.refresh_token),r=o.tokens}catch(a){let l=a;throw l.response&&(l.response.status===403||l.response.status===404)&&(l.message=`Could not refresh access token: ${l.message}`),l}let i=this.credentials;i.token_type=i.token_type||"Bearer",r.refresh_token=i.refresh_token,this.credentials=r;let s=new Headers({authorization:i.token_type+" "+r.access_token});return{headers:this.addSharedMetadataHeaders(s),res:o.res}}static getRevokeTokenUrl(e){return new t().getRevokeTokenURL(e).toString()}getRevokeTokenURL(e){let n=new URL(this.endpoints.oauth2RevokeUrl);return n.searchParams.append("token",e),n}revokeToken(e,n){let o={...t.RETRY_CONFIG,url:this.getRevokeTokenURL(e).toString(),method:"POST"};if(on.AuthClient.setMethodName(o,"revokeToken"),n)this.transporter.request(o).then(r=>n(null,r),n);else return this.transporter.request(o)}revokeCredentials(e){if(e)this.revokeCredentialsAsync().then(n=>e(null,n),e);else return this.revokeCredentialsAsync()}async revokeCredentialsAsync(){let e=this.credentials.access_token;if(this.credentials={},e)return this.revokeToken(e);throw new Error("No access token to revoke.")}request(e,n){if(n)this.requestAsync(e).then(o=>n(null,o),o=>n(o,o.response));else return this.requestAsync(e)}async requestAsync(e,n=!1){try{let o=await this.getRequestMetadataAsync();return e.headers=Zc.Gaxios.mergeHeaders(e.headers),this.addUserProjectAndAuthHeaders(e.headers,o.headers),this.apiKey&&e.headers.set("X-Goog-Api-Key",this.apiKey),await this.transporter.request(e)}catch(o){let r=o.response;if(r){let i=r.status,s=this.credentials&&this.credentials.access_token&&this.credentials.refresh_token&&(!this.credentials.expiry_date||this.forceRefreshOnFailure),a=this.credentials&&this.credentials.access_token&&!this.credentials.refresh_token&&(!this.credentials.expiry_date||this.forceRefreshOnFailure)&&this.refreshHandler,l=r.config.data instanceof Uy.Readable,u=i===401||i===403;if(!n&&u&&!l&&s)return await this.refreshAccessTokenAsync(),this.requestAsync(e,!0);if(!n&&u&&!l&&a){let c=await this.processAndValidateRefreshHandler();return c?.access_token&&this.setCredentials(c),this.requestAsync(e,!0)}}throw o}}verifyIdToken(e,n){if(n&&typeof n!="function")throw new Error("This method accepts an options object as the first parameter, which includes the idToken, audience, and maxExpiry.");if(n)this.verifyIdTokenAsync(e).then(o=>n(null,o),n);else return this.verifyIdTokenAsync(e)}async verifyIdTokenAsync(e){if(!e.idToken)throw new Error("The verifyIdToken method requires an ID Token");let n=await this.getFederatedSignonCertsAsync();return await this.verifySignedJwtWithCertsAsync(e.idToken,n.certs,e.audience,this.issuers,e.maxExpiry)}async getTokenInfo(e){let{data:n}=await this.transporter.request({...t.RETRY_CONFIG,method:"POST",headers:{"content-type":"application/x-www-form-urlencoded;charset=UTF-8",authorization:`Bearer ${e}`},url:this.endpoints.tokenInfoUrl.toString()}),o=Object.assign({expiry_date:new Date().getTime()+n.expires_in*1e3,scopes:n.scope.split(" ")},n);return delete o.expires_in,delete o.scope,o}getFederatedSignonCerts(e){if(e)this.getFederatedSignonCertsAsync().then(n=>e(null,n.certs,n.res),e);else return this.getFederatedSignonCertsAsync()}async getFederatedSignonCertsAsync(){let e=new Date().getTime(),n=(0,Bs.hasBrowserCrypto)()?yt.JWK:yt.PEM;if(this.certificateExpiry&&e<this.certificateExpiry.getTime()&&this.certificateCacheFormat===n)return{certs:this.certificateCache,format:n};let o,r;switch(n){case yt.PEM:r=this.endpoints.oauth2FederatedSignonPemCertsUrl.toString();break;case yt.JWK:r=this.endpoints.oauth2FederatedSignonJwkCertsUrl.toString();break;default:throw new Error(`Unsupported certificate format ${n}`)}try{let u={...t.RETRY_CONFIG,url:r};on.AuthClient.setMethodName(u,"getFederatedSignonCertsAsync"),o=await this.transporter.request(u)}catch(u){throw u instanceof Error&&(u.message=`Failed to retrieve verification certificates: ${u.message}`),u}let i=o?.headers.get("cache-control"),s=-1;if(i){let u=/max-age=(?<maxAge>[0-9]+)/.exec(i)?.groups?.maxAge;u&&(s=Number(u)*1e3)}let a={};switch(n){case yt.PEM:a=o.data;break;case yt.JWK:for(let u of o.data.keys)a[u.kid]=u;break;default:throw new Error(`Unsupported certificate format ${n}`)}let l=new Date;return this.certificateExpiry=s===-1?null:new Date(l.getTime()+s),this.certificateCache=a,this.certificateCacheFormat=n,{certs:a,format:n,res:o}}getIapPublicKeys(e){if(e)this.getIapPublicKeysAsync().then(n=>e(null,n.pubkeys,n.res),e);else return this.getIapPublicKeysAsync()}async getIapPublicKeysAsync(){let e,n=this.endpoints.oauth2IapPublicKeyUrl.toString();try{let o={...t.RETRY_CONFIG,url:n};on.AuthClient.setMethodName(o,"getIapPublicKeysAsync"),e=await this.transporter.request(o)}catch(o){throw o instanceof Error&&(o.message=`Failed to retrieve verification certificates: ${o.message}`),o}return{pubkeys:e.data,res:e}}verifySignedJwtWithCerts(){throw new Error("verifySignedJwtWithCerts is removed, please use verifySignedJwtWithCertsAsync instead.")}async verifySignedJwtWithCertsAsync(e,n,o,r,i){let s=(0,Bs.createCrypto)();i||(i=t.DEFAULT_MAX_TOKEN_LIFETIME_SECS_);let a=e.split(".");if(a.length!==3)throw new Error("Wrong number of segments in token: "+e);let l=a[0]+"."+a[1],u=a[2],c,f;try{c=JSON.parse(s.decodeBase64StringUtf8(a[0]))}catch(D){throw D instanceof Error&&(D.message=`Can't parse token envelope: ${a[0]}': ${D.message}`),D}if(!c)throw new Error("Can't parse token envelope: "+a[0]);try{f=JSON.parse(s.decodeBase64StringUtf8(a[1]))}catch(D){throw D instanceof Error&&(D.message=`Can't parse token payload '${a[0]}`),D}if(!f)throw new Error("Can't parse token payload: "+a[1]);if(!Object.prototype.hasOwnProperty.call(n,c.kid))throw new Error("No pem found for envelope: "+JSON.stringify(c));let h=n[c.kid];if(c.alg==="ES256"&&(u=Ly.joseToDer(u,"ES256").toString("base64")),!await s.verify(h,l,u))throw new Error("Invalid token signature: "+e);if(!f.iat)throw new Error("No issue time in token: "+JSON.stringify(f));if(!f.exp)throw new Error("No expiration time in token: "+JSON.stringify(f));let S=Number(f.iat);if(isNaN(S))throw new Error("iat field using invalid format");let A=Number(f.exp);if(isNaN(A))throw new Error("exp field using invalid format");let T=new Date().getTime()/1e3;if(A>=T+i)throw new Error("Expiration time too far in future: "+JSON.stringify(f));let R=S-t.CLOCK_SKEW_SECS_,O=A+t.CLOCK_SKEW_SECS_;if(T<R)throw new Error("Token used too early, "+T+" < "+R+": "+JSON.stringify(f));if(T>O)throw new Error("Token used too late, "+T+" > "+O+": "+JSON.stringify(f));if(r&&r.indexOf(f.iss)<0)throw new Error("Invalid issuer, expected one of ["+r+"], but got "+f.iss);if(typeof o<"u"&&o!==null){let D=f.aud,q=!1;if(o.constructor===Array?q=o.indexOf(D)>-1:q=D===o,!q)throw new Error("Wrong recipient, payload audience != requiredAudience")}return new Gy.LoginTicket(c,f)}async processAndValidateRefreshHandler(){if(this.refreshHandler){let e=await this.refreshHandler();if(!e.access_token)throw new Error("No access token is returned by the refreshHandler callback.");return e}}isTokenExpiring(){let e=this.credentials.expiry_date;return e?e<=new Date().getTime()+this.eagerRefreshThresholdMillis:!1}};st.OAuth2Client=Hs});var $s=b(ir=>{"use strict";p();Object.defineProperty(ir,"__esModule",{value:!0});ir.Compute=void 0;var Fy=ye(),td=Wn(),qy=Bt(),Vs=class extends qy.OAuth2Client{serviceAccountEmail;scopes;constructor(e={}){super(e),this.credentials={expiry_date:1,refresh_token:"compute-placeholder"},this.serviceAccountEmail=e.serviceAccountEmail||"default",this.scopes=Array.isArray(e.scopes)?e.scopes:e.scopes?[e.scopes]:[]}async refreshTokenNoCache(){let e=`service-accounts/${this.serviceAccountEmail}/token`,n;try{let r={property:e};this.scopes.length>0&&(r.params={scopes:this.scopes.join(",")}),n=await td.instance(r)}catch(r){throw r instanceof Fy.GaxiosError&&(r.message=`Could not refresh access token: ${r.message}`,this.wrapError(r)),r}let o=n;return n&&n.expires_in&&(o.expiry_date=new Date().getTime()+n.expires_in*1e3,delete o.expires_in),this.emit("tokens",o),{tokens:o,res:null}}async fetchIdToken(e){let n=`service-accounts/${this.serviceAccountEmail}/identity?format=full&audience=${e}`,o;try{let r={property:n};o=await td.instance(r)}catch(r){throw r instanceof Error&&(r.message=`Could not fetch ID token: ${r.message}`),r}return o}wrapError(e){let n=e.response;n&&n.status&&(e.status=n.status,n.status===403?e.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: "+e.message:n.status===404&&(e.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: "+e.message))}};ir.Compute=Vs});var Js=b(sr=>{"use strict";p();Object.defineProperty(sr,"__esModule",{value:!0});sr.IdTokenClient=void 0;var By=Bt(),Ks=class extends By.OAuth2Client{targetAudience;idTokenProvider;constructor(e){super(e),this.targetAudience=e.targetAudience,this.idTokenProvider=e.idTokenProvider}async getRequestMetadataAsync(){if(!this.credentials.id_token||!this.credentials.expiry_date||this.isTokenExpiring()){let n=await this.idTokenProvider.fetchIdToken(this.targetAudience);this.credentials={id_token:n,expiry_date:this.getIdTokenExpiryDate(n)}}return{headers:new Headers({authorization:"Bearer "+this.credentials.id_token})}}getIdTokenExpiryDate(e){let n=e.split(".")[1];if(n)return JSON.parse(Buffer.from(n,"base64").toString("ascii")).exp*1e3}};sr.IdTokenClient=Ks});var Ws=b(rn=>{"use strict";p();Object.defineProperty(rn,"__esModule",{value:!0});rn.GCPEnv=void 0;rn.clear=Hy;rn.getEnv=Vy;var nd=Wn(),at;(function(t){t.APP_ENGINE="APP_ENGINE",t.KUBERNETES_ENGINE="KUBERNETES_ENGINE",t.CLOUD_FUNCTIONS="CLOUD_FUNCTIONS",t.COMPUTE_ENGINE="COMPUTE_ENGINE",t.CLOUD_RUN="CLOUD_RUN",t.CLOUD_RUN_JOBS="CLOUD_RUN_JOBS",t.NONE="NONE"})(at||(rn.GCPEnv=at={}));var Xn;function Hy(){Xn=void 0}async function Vy(){return Xn||(Xn=$y(),Xn)}async function $y(){let t=at.NONE;return Ky()?t=at.APP_ENGINE:Jy()?t=at.CLOUD_FUNCTIONS:await Xy()?await zy()?t=at.KUBERNETES_ENGINE:Wy()?t=at.CLOUD_RUN:Yy()?t=at.CLOUD_RUN_JOBS:t=at.COMPUTE_ENGINE:t=at.NONE,t}function Ky(){return!!(process.env.GAE_SERVICE||process.env.GAE_MODULE_NAME)}function Jy(){return!!(process.env.FUNCTION_NAME||process.env.FUNCTION_TARGET)}function Wy(){return!!process.env.K_CONFIGURATION}function Yy(){return!!process.env.CLOUD_RUN_JOB}async function zy(){try{return await nd.instance("attributes/cluster-name"),!0}catch{return!1}}async function Xy(){return nd.isAvailable()}});var Ys=b((jw,od)=>{p();var ar=nn().Buffer,Qy=J("stream"),Zy=J("util");function lr(t){if(this.buffer=null,this.writable=!0,this.readable=!0,!t)return this.buffer=ar.alloc(0),this;if(typeof t.pipe=="function")return this.buffer=ar.alloc(0),t.pipe(this),this;if(t.length||typeof t=="object")return this.buffer=t,this.writable=!1,process.nextTick(function(){this.emit("end",t),this.readable=!1,this.emit("close")}.bind(this)),this;throw new TypeError("Unexpected data type ("+typeof t+")")}Zy.inherits(lr,Qy);lr.prototype.write=function(e){this.buffer=ar.concat([this.buffer,ar.from(e)]),this.emit("data",e)};lr.prototype.end=function(e){e&&this.write(e),this.emit("end",e),this.emit("close"),this.writable=!1,this.readable=!1};od.exports=lr});var id=b((tI,rd)=>{"use strict";p();var Qn=J("buffer").Buffer,zs=J("buffer").SlowBuffer;rd.exports=ur;function ur(t,e){if(!Qn.isBuffer(t)||!Qn.isBuffer(e)||t.length!==e.length)return!1;for(var n=0,o=0;o<t.length;o++)n|=t[o]^e[o];return n===0}ur.install=function(){Qn.prototype.equal=zs.prototype.equal=function(e){return ur(this,e)}};var jy=Qn.prototype.equal,eE=zs.prototype.equal;ur.restore=function(){Qn.prototype.equal=jy,zs.prototype.equal=eE}});var js=b((oI,hd)=>{p();var an=nn().Buffer,He=J("crypto"),ad=Ns(),sd=J("util"),tE=`"%s" is not a valid algorithm.
|
|
16
|
+
Supported algorithms are:
|
|
17
|
+
"HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "PS256", "PS384", "PS512", "ES256", "ES384", "ES512" and "none".`,Zn="secret must be a string or buffer",sn="key must be a string or a buffer",nE="key must be a string, a buffer or an object",Qs=typeof He.createPublicKey=="function";Qs&&(sn+=" or a KeyObject",Zn+="or a KeyObject");function ld(t){if(!an.isBuffer(t)&&typeof t!="string"&&(!Qs||typeof t!="object"||typeof t.type!="string"||typeof t.asymmetricKeyType!="string"||typeof t.export!="function"))throw je(sn)}function ud(t){if(!an.isBuffer(t)&&typeof t!="string"&&typeof t!="object")throw je(nE)}function oE(t){if(!an.isBuffer(t)){if(typeof t=="string")return t;if(!Qs||typeof t!="object"||t.type!=="secret"||typeof t.export!="function")throw je(Zn)}}function Zs(t){return t.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function cd(t){t=t.toString();var e=4-t.length%4;if(e!==4)for(var n=0;n<e;++n)t+="=";return t.replace(/\-/g,"+").replace(/_/g,"/")}function je(t){var e=[].slice.call(arguments,1),n=sd.format.bind(sd,t).apply(null,e);return new TypeError(n)}function rE(t){return an.isBuffer(t)||typeof t=="string"}function jn(t){return rE(t)||(t=JSON.stringify(t)),t}function dd(t){return function(n,o){oE(o),n=jn(n);var r=He.createHmac("sha"+t,o),i=(r.update(n),r.digest("base64"));return Zs(i)}}var Xs,iE="timingSafeEqual"in He?function(e,n){return e.byteLength!==n.byteLength?!1:He.timingSafeEqual(e,n)}:function(e,n){return Xs||(Xs=id()),Xs(e,n)};function sE(t){return function(n,o,r){var i=dd(t)(n,r);return iE(an.from(o),an.from(i))}}function fd(t){return function(n,o){ud(o),n=jn(n);var r=He.createSign("RSA-SHA"+t),i=(r.update(n),r.sign(o,"base64"));return Zs(i)}}function pd(t){return function(n,o,r){ld(r),n=jn(n),o=cd(o);var i=He.createVerify("RSA-SHA"+t);return i.update(n),i.verify(r,o,"base64")}}function aE(t){return function(n,o){ud(o),n=jn(n);var r=He.createSign("RSA-SHA"+t),i=(r.update(n),r.sign({key:o,padding:He.constants.RSA_PKCS1_PSS_PADDING,saltLength:He.constants.RSA_PSS_SALTLEN_DIGEST},"base64"));return Zs(i)}}function lE(t){return function(n,o,r){ld(r),n=jn(n),o=cd(o);var i=He.createVerify("RSA-SHA"+t);return i.update(n),i.verify({key:r,padding:He.constants.RSA_PKCS1_PSS_PADDING,saltLength:He.constants.RSA_PSS_SALTLEN_DIGEST},o,"base64")}}function uE(t){var e=fd(t);return function(){var o=e.apply(null,arguments);return o=ad.derToJose(o,"ES"+t),o}}function cE(t){var e=pd(t);return function(o,r,i){r=ad.joseToDer(r,"ES"+t).toString("base64");var s=e(o,r,i);return s}}function dE(){return function(){return""}}function fE(){return function(e,n){return n===""}}hd.exports=function(e){var n={hs:dd,rs:fd,ps:aE,es:uE,none:dE},o={hs:sE,rs:pd,ps:lE,es:cE,none:fE},r=e.match(/^(RS|PS|ES|HS)(256|384|512)$|^(none)$/);if(!r)throw je(tE,e);var i=(r[1]||r[3]).toLowerCase(),s=r[2];return{sign:n[i](s),verify:o[i](s)}}});var ea=b((iI,md)=>{p();var pE=J("buffer").Buffer;md.exports=function(e){return typeof e=="string"?e:typeof e=="number"||pE.isBuffer(e)?e.toString():JSON.stringify(e)}});var Cd=b((aI,_d)=>{p();var hE=nn().Buffer,gd=Ys(),mE=js(),gE=J("stream"),yd=ea(),ta=J("util");function Ed(t,e){return hE.from(t,e).toString("base64").replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function yE(t,e,n){n=n||"utf8";var o=Ed(yd(t),"binary"),r=Ed(yd(e),n);return ta.format("%s.%s",o,r)}function Td(t){var e=t.header,n=t.payload,o=t.secret||t.privateKey,r=t.encoding,i=mE(e.alg),s=yE(e,n,r),a=i.sign(s,o);return ta.format("%s.%s",s,a)}function cr(t){var e=t.secret;if(e=e??t.privateKey,e=e??t.key,/^hs/i.test(t.header.alg)===!0&&e==null)throw new TypeError("secret must be a string or buffer or a KeyObject");var n=new gd(e);this.readable=!0,this.header=t.header,this.encoding=t.encoding,this.secret=this.privateKey=this.key=n,this.payload=new gd(t.payload),this.secret.once("close",function(){!this.payload.writable&&this.readable&&this.sign()}.bind(this)),this.payload.once("close",function(){!this.secret.writable&&this.readable&&this.sign()}.bind(this))}ta.inherits(cr,gE);cr.prototype.sign=function(){try{var e=Td({header:this.header,payload:this.payload.buffer,secret:this.secret.buffer,encoding:this.encoding});return this.emit("done",e),this.emit("data",e),this.emit("end"),this.readable=!1,e}catch(n){this.readable=!1,this.emit("error",n),this.emit("close")}};cr.sign=Td;_d.exports=cr});var xd=b((uI,kd)=>{p();var vd=nn().Buffer,Ad=Ys(),EE=js(),TE=J("stream"),Sd=ea(),_E=J("util"),CE=/^[a-zA-Z0-9\-_]+?\.[a-zA-Z0-9\-_]+?\.([a-zA-Z0-9\-_]+)?$/;function AE(t){return Object.prototype.toString.call(t)==="[object Object]"}function vE(t){if(AE(t))return t;try{return JSON.parse(t)}catch{return}}function wd(t){var e=t.split(".",1)[0];return vE(vd.from(e,"base64").toString("binary"))}function SE(t){return t.split(".",2).join(".")}function Id(t){return t.split(".")[2]}function wE(t,e){e=e||"utf8";var n=t.split(".")[1];return vd.from(n,"base64").toString(e)}function Rd(t){return CE.test(t)&&!!wd(t)}function Pd(t,e,n){if(!e){var o=new Error("Missing algorithm parameter for jws.verify");throw o.code="MISSING_ALGORITHM",o}t=Sd(t);var r=Id(t),i=SE(t),s=EE(e);return s.verify(i,r,n)}function Md(t,e){if(e=e||{},t=Sd(t),!Rd(t))return null;var n=wd(t);if(!n)return null;var o=wE(t);return(n.typ==="JWT"||e.json)&&(o=JSON.parse(o,e.encoding)),{header:n,payload:o,signature:Id(t)}}function ln(t){t=t||{};var e=t.secret;if(e=e??t.publicKey,e=e??t.key,/^hs/i.test(t.algorithm)===!0&&e==null)throw new TypeError("secret must be a string or buffer or a KeyObject");var n=new Ad(e);this.readable=!0,this.algorithm=t.algorithm,this.encoding=t.encoding,this.secret=this.publicKey=this.key=n,this.signature=new Ad(t.signature),this.secret.once("close",function(){!this.signature.writable&&this.readable&&this.verify()}.bind(this)),this.signature.once("close",function(){!this.secret.writable&&this.readable&&this.verify()}.bind(this))}_E.inherits(ln,TE);ln.prototype.verify=function(){try{var e=Pd(this.signature.buffer,this.algorithm,this.key.buffer),n=Md(this.signature.buffer,this.encoding);return this.emit("done",e,n),this.emit("data",e),this.emit("end"),this.readable=!1,e}catch(o){this.readable=!1,this.emit("error",o),this.emit("close")}};ln.decode=Md;ln.isValid=Rd;ln.verify=Pd;kd.exports=ln});var na=b(It=>{p();var Nd=Cd(),dr=xd(),IE=["HS256","HS384","HS512","RS256","RS384","RS512","PS256","PS384","PS512","ES256","ES384","ES512"];It.ALGORITHMS=IE;It.sign=Nd.sign;It.verify=dr.verify;It.decode=dr.decode;It.isValid=dr.isValid;It.createSign=function(e){return new Nd(e)};It.createVerify=function(e){return new dr(e)}});var bd=b(fr=>{"use strict";p();Object.defineProperty(fr,"__esModule",{value:!0});fr.buildPayloadForJwsSign=Dd;fr.getJwsSign=kE;var RE=na(),PE="RS256",ME="https://oauth2.googleapis.com/token";function Dd(t){let e=Math.floor(new Date().getTime()/1e3);return{iss:t.iss,scope:t.scope,aud:ME,exp:e+3600,iat:e,sub:t.sub,...t.additionalClaims}}function kE(t){let e=Dd(t);return(0,RE.sign)({header:{alg:PE},payload:e,secret:t.key})}});var Od=b(oa=>{"use strict";p();Object.defineProperty(oa,"__esModule",{value:!0});oa.getToken=OE;var xE=bd(),NE="https://oauth2.googleapis.com/token",DE="urn:ietf:params:oauth:grant-type:jwt-bearer",bE=t=>({method:"POST",url:NE,data:new URLSearchParams({grant_type:DE,assertion:(0,xE.getJwsSign)(t)}),responseType:"json",retryConfig:{httpMethodsToRetry:["POST"]}});async function OE(t){if(!t.transporter)throw new Error("No transporter set.");try{let e=bE(t);return(await t.transporter.request(e)).data}catch(e){let n=e,o=n.response?.data;throw o?.error&&(n.message=`${o.error}: ${o.error_description}`),n}}});var Ud=b(pr=>{"use strict";p();Object.defineProperty(pr,"__esModule",{value:!0});pr.ErrorWithCode=void 0;var ra=class extends Error{code;constructor(e,n){super(e),this.code=n}};pr.ErrorWithCode=ra});var ca=b(ua=>{"use strict";p();Object.defineProperty(ua,"__esModule",{value:!0});ua.getCredentials=GE;var UE=J("path"),Ld=J("fs"),LE=J("util"),hr=Ud(),Gd=Ld.readFile?(0,LE.promisify)(Ld.readFile):async()=>{throw new hr.ErrorWithCode("use key rather than keyFile.","MISSING_CREDENTIALS")},Rt;(function(t){t.JSON=".json",t.DER=".der",t.CRT=".crt",t.PEM=".pem",t.P12=".p12",t.PFX=".pfx"})(Rt||(Rt={}));var ia=class{keyFilePath;constructor(e){this.keyFilePath=e}async getCredentials(){let e=await Gd(this.keyFilePath,"utf8"),n;try{n=JSON.parse(e)}catch(i){let s=i;throw new Error(`Invalid JSON key file: ${s.message}`)}let o=n.private_key,r=n.client_email;if(!o||!r)throw new hr.ErrorWithCode("private_key and client_email are required.","MISSING_CREDENTIALS");return{privateKey:o,clientEmail:r}}},sa=class{keyFilePath;constructor(e){this.keyFilePath=e}async getCredentials(){return{privateKey:await Gd(this.keyFilePath,"utf8")}}},aa=class{async getCredentials(){throw new hr.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")}},la=class{static create(e){switch(UE.extname(e)){case Rt.JSON:return new ia(e);case Rt.DER:case Rt.CRT:case Rt.PEM:return new sa(e);case Rt.P12:case Rt.PFX:return new aa;default:throw new hr.ErrorWithCode("Unknown certificate type. Type is determined based on file extension. Current supported extensions are *.json, and *.pem.","UNKNOWN_CERTIFICATE_TYPE")}}};async function GE(t){return la.create(t).getCredentials()}});var Fd=b(mr=>{"use strict";p();Object.defineProperty(mr,"__esModule",{value:!0});mr.TokenHandler=void 0;var FE=Od(),qE=ca(),da=class{token;tokenExpiresAt;inFlightRequest;tokenOptions;constructor(e){this.tokenOptions=e}async processCredentials(){if(!this.tokenOptions.key&&!this.tokenOptions.keyFile)throw new Error("No key or keyFile set.");if(!this.tokenOptions.key&&this.tokenOptions.keyFile){let e=await(0,qE.getCredentials)(this.tokenOptions.keyFile);this.tokenOptions.key=e.privateKey,this.tokenOptions.email=e.clientEmail}}isTokenExpiring(){if(!this.token||!this.tokenExpiresAt)return!0;let e=new Date().getTime(),n=this.tokenOptions.eagerRefreshThresholdMillis??0;return this.tokenExpiresAt<=e+n}hasExpired(){let e=new Date().getTime();return this.token&&this.tokenExpiresAt?new Date().getTime()>=this.tokenExpiresAt:!0}async getToken(e){if(await this.processCredentials(),this.inFlightRequest&&!e)return this.inFlightRequest;if(this.token&&!this.isTokenExpiring()&&!e)return this.token;try{this.inFlightRequest=(0,FE.getToken)(this.tokenOptions);let n=await this.inFlightRequest;return this.token=n,this.tokenExpiresAt=new Date().getTime()+(n.expires_in??0)*1e3,n}finally{this.inFlightRequest=void 0}}};mr.TokenHandler=da});var qd=b(fa=>{"use strict";p();Object.defineProperty(fa,"__esModule",{value:!0});fa.revokeToken=VE;var BE="https://oauth2.googleapis.com/revoke?token=",HE=!0;async function VE(t,e){let n=BE+t;return await e.request({url:n,retry:HE})}});var ha=b(gr=>{"use strict";p();Object.defineProperty(gr,"__esModule",{value:!0});gr.GoogleToken=void 0;var $E=ye(),Bd=Fd(),KE=qd(),pa=class{tokenOptions;tokenHandler;constructor(e){this.tokenOptions=e||{},this.tokenOptions.transporter=this.tokenOptions.transporter||{request:n=>(0,$E.request)(n)},this.tokenOptions.iss||(this.tokenOptions.iss=this.tokenOptions.email),typeof this.tokenOptions.scope=="object"&&(this.tokenOptions.scope=this.tokenOptions.scope.join(" ")),this.tokenHandler=new Bd.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(e,n={forceRefresh:!1}){let o;typeof e=="function"?o=e:typeof e=="object"&&(n=e);let r=this.tokenHandler.getToken(n.forceRefresh??!1);return o&&r.then(i=>o(null,i),o),r}revokeToken(e){if(!this.accessToken)return Promise.reject(new Error("No token to revoke."));let n=(0,KE.revokeToken)(this.accessToken,this.tokenOptions.transporter);e&&n.then(()=>e(),e),this.tokenHandler=new Bd.TokenHandler(this.tokenOptions)}get googleTokenOptions(){return this.tokenOptions}};gr.GoogleToken=pa});var ga=b(yr=>{"use strict";p();Object.defineProperty(yr,"__esModule",{value:!0});yr.JWTAccess=void 0;var JE=na(),WE=Qe(),Hd={alg:"RS256",typ:"JWT"},ma=class t{email;key;keyId;projectId;eagerRefreshThresholdMillis;cache=new WE.LRUCache({capacity:500,maxAge:60*60*1e3});constructor(e,n,o,r){this.email=e,this.key=n,this.keyId=o,this.eagerRefreshThresholdMillis=r??5*60*1e3}getCachedKey(e,n){let o=e;if(n&&Array.isArray(n)&&n.length?o=e?`${e}_${n.join("_")}`:`${n.join("_")}`:typeof n=="string"&&(o=e?`${e}_${n}`:n),!o)throw Error("Scopes or url must be provided");return o}getRequestHeaders(e,n,o){let r=this.getCachedKey(e,o),i=this.cache.get(r),s=Date.now();if(i&&i.expiration-s>this.eagerRefreshThresholdMillis)return new Headers(i.headers);let a=Math.floor(Date.now()/1e3),l=t.getExpirationTime(a),u;if(Array.isArray(o)&&(o=o.join(" ")),o?u={iss:this.email,sub:this.email,scope:o,exp:l,iat:a}:u={iss:this.email,sub:this.email,aud:e,exp:l,iat:a},n){for(let S in u)if(n[S])throw new Error(`The '${S}' property is not allowed when passing additionalClaims. This claim is included in the JWT by default.`)}let c=this.keyId?{...Hd,kid:this.keyId}:Hd,f=Object.assign(u,n),h=JE.sign({header:c,payload:f,secret:this.key}),y=new Headers({authorization:`Bearer ${h}`});return this.cache.set(r,{expiration:l*1e3,headers:y}),y}static getExpirationTime(e){return e+3600}fromJSON(e){if(!e)throw new Error("Must pass in a JSON object containing the service account auth settings.");if(!e.client_email)throw new Error("The incoming JSON object does not contain a client_email field");if(!e.private_key)throw new Error("The incoming JSON object does not contain a private_key field");this.email=e.client_email,this.key=e.private_key,this.keyId=e.private_key_id,this.projectId=e.project_id}fromStream(e,n){if(n)this.fromStreamAsync(e).then(()=>n(),n);else return this.fromStreamAsync(e)}fromStreamAsync(e){return new Promise((n,o)=>{e||o(new Error("Must pass in a stream containing the service account auth settings."));let r="";e.setEncoding("utf8").on("data",i=>r+=i).on("error",o).on("end",()=>{try{let i=JSON.parse(r);this.fromJSON(i),n()}catch(i){o(i)}})})}};yr.JWTAccess=ma});var Ea=b(Tr=>{"use strict";p();Object.defineProperty(Tr,"__esModule",{value:!0});Tr.JWT=void 0;var Vd=ha(),YE=ca(),zE=ga(),XE=Bt(),Er=xe(),ya=class t extends XE.OAuth2Client{email;keyFile;key;keyId;defaultScopes;scopes;scope;subject;gtoken;additionalClaims;useJWTAccessWithScope;defaultServicePath;access;constructor(e={}){super(e),this.email=e.email,this.keyFile=e.keyFile,this.key=e.key,this.keyId=e.keyId,this.scopes=e.scopes,this.subject=e.subject,this.additionalClaims=e.additionalClaims,this.credentials={refresh_token:"jwt-placeholder",expiry_date:1}}createScoped(e){let n=new t(this);return n.scopes=e,n}async getRequestMetadataAsync(e){e=this.defaultServicePath?`https://${this.defaultServicePath}/`:e;let n=!this.hasUserScopes()&&e||this.useJWTAccessWithScope&&this.hasAnyScopes()||this.universeDomain!==Er.DEFAULT_UNIVERSE;if(this.subject&&this.universeDomain!==Er.DEFAULT_UNIVERSE)throw new RangeError(`Service Account user is configured for the credential. Domain-wide delegation is not supported in universes other than ${Er.DEFAULT_UNIVERSE}`);if(!this.apiKey&&n)if(this.additionalClaims&&this.additionalClaims.target_audience){let{tokens:o}=await this.refreshToken();return{headers:this.addSharedMetadataHeaders(new Headers({authorization:`Bearer ${o.id_token}`}))}}else{this.access||(this.access=new zE.JWTAccess(this.email,this.key,this.keyId,this.eagerRefreshThresholdMillis));let o;this.hasUserScopes()?o=this.scopes:e||(o=this.defaultScopes);let r=this.useJWTAccessWithScope||this.universeDomain!==Er.DEFAULT_UNIVERSE,i=await this.access.getRequestHeaders(e??void 0,this.additionalClaims,r?o:void 0);return{headers:this.addSharedMetadataHeaders(i)}}else return this.hasAnyScopes()||this.apiKey?super.getRequestMetadataAsync(e):{headers:new Headers}}async fetchIdToken(e){let n=new Vd.GoogleToken({iss:this.email,sub:this.subject,scope:this.scopes||this.defaultScopes,keyFile:this.keyFile,key:this.key,additionalClaims:{target_audience:e},transporter:this.transporter});if(await n.getToken({forceRefresh:!0}),!n.idToken)throw new Error("Unknown error: Failed to fetch ID token");return n.idToken}hasUserScopes(){return this.scopes?this.scopes.length>0:!1}hasAnyScopes(){return!!(this.scopes&&this.scopes.length>0||this.defaultScopes&&this.defaultScopes.length>0)}authorize(e){if(e)this.authorizeAsync().then(n=>e(null,n),e);else return this.authorizeAsync()}async authorizeAsync(){let e=await this.refreshToken();if(!e)throw new Error("No result returned");return this.credentials=e.tokens,this.credentials.refresh_token="jwt-placeholder",this.key=this.gtoken.googleTokenOptions?.key,this.email=this.gtoken.googleTokenOptions?.iss,e.tokens}async refreshTokenNoCache(){let e=this.createGToken(),o={access_token:(await e.getToken({forceRefresh:this.isTokenExpiring()})).access_token,token_type:"Bearer",expiry_date:e.expiresAt,id_token:e.idToken};return this.emit("tokens",o),{res:null,tokens:o}}createGToken(){return this.gtoken||(this.gtoken=new Vd.GoogleToken({iss:this.email,sub:this.subject,scope:this.scopes||this.defaultScopes,keyFile:this.keyFile,key:this.key,additionalClaims:this.additionalClaims,transporter:this.transporter})),this.gtoken}fromJSON(e){if(!e)throw new Error("Must pass in a JSON object containing the service account auth settings.");if(!e.client_email)throw new Error("The incoming JSON object does not contain a client_email field");if(!e.private_key)throw new Error("The incoming JSON object does not contain a private_key field");this.email=e.client_email,this.key=e.private_key,this.keyId=e.private_key_id,this.projectId=e.project_id,this.quotaProjectId=e.quota_project_id,this.universeDomain=e.universe_domain||this.universeDomain}fromStream(e,n){if(n)this.fromStreamAsync(e).then(()=>n(),n);else return this.fromStreamAsync(e)}fromStreamAsync(e){return new Promise((n,o)=>{if(!e)throw new Error("Must pass in a stream containing the service account auth settings.");let r="";e.setEncoding("utf8").on("error",o).on("data",i=>r+=i).on("end",()=>{try{let i=JSON.parse(r);this.fromJSON(i),n()}catch(i){o(i)}})})}fromAPIKey(e){if(typeof e!="string")throw new Error("Must provide an API Key string.");this.apiKey=e}async getCredentials(){if(this.key)return{private_key:this.key,client_email:this.email};if(this.keyFile){let e=this.createGToken(),n=await(0,YE.getCredentials)(this.keyFile);return{private_key:n.privateKey,client_email:n.clientEmail}}throw new Error("A key or a keyFile must be provided to getCredentials.")}};Tr.JWT=ya});var _a=b(un=>{"use strict";p();Object.defineProperty(un,"__esModule",{value:!0});un.UserRefreshClient=un.USER_REFRESH_ACCOUNT_TYPE=void 0;var QE=Bt(),ZE=xe();un.USER_REFRESH_ACCOUNT_TYPE="authorized_user";var Ta=class t extends QE.OAuth2Client{_refreshToken;constructor(e,n,o,r,i){let s=e&&typeof e=="object"?e:{clientId:e,clientSecret:n,refreshToken:o,eagerRefreshThresholdMillis:r,forceRefreshOnFailure:i};super(s),this._refreshToken=s.refreshToken,this.credentials.refresh_token=s.refreshToken}async refreshTokenNoCache(){return super.refreshTokenNoCache(this._refreshToken)}async fetchIdToken(e){let n={...t.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:e}),responseType:"json"};return ZE.AuthClient.setMethodName(n,"fetchIdToken"),(await this.transporter.request(n)).data.id_token}fromJSON(e){if(!e)throw new Error("Must pass in a JSON object containing the user refresh token");if(e.type!=="authorized_user")throw new Error('The incoming JSON object does not have the "authorized_user" type');if(!e.client_id)throw new Error("The incoming JSON object does not contain a client_id field");if(!e.client_secret)throw new Error("The incoming JSON object does not contain a client_secret field");if(!e.refresh_token)throw new Error("The incoming JSON object does not contain a refresh_token field");this._clientId=e.client_id,this._clientSecret=e.client_secret,this._refreshToken=e.refresh_token,this.credentials.refresh_token=e.refresh_token,this.quotaProjectId=e.quota_project_id,this.universeDomain=e.universe_domain||this.universeDomain}fromStream(e,n){if(n)this.fromStreamAsync(e).then(()=>n(),n);else return this.fromStreamAsync(e)}async fromStreamAsync(e){return new Promise((n,o)=>{if(!e)return o(new Error("Must pass in a stream containing the user refresh token."));let r="";e.setEncoding("utf8").on("error",o).on("data",i=>r+=i).on("end",()=>{try{let i=JSON.parse(r);return this.fromJSON(i),n()}catch(i){return o(i)}})})}static fromJSON(e){let n=new t;return n.fromJSON(e),n}};un.UserRefreshClient=Ta});var Aa=b(cn=>{"use strict";p();Object.defineProperty(cn,"__esModule",{value:!0});cn.Impersonated=cn.IMPERSONATED_ACCOUNT_TYPE=void 0;var $d=Bt(),jE=ye(),eT=Qe();cn.IMPERSONATED_ACCOUNT_TYPE="impersonated_service_account";var Ca=class t extends $d.OAuth2Client{sourceClient;targetPrincipal;targetScopes;delegates;lifetime;endpoint;constructor(e={}){if(super(e),this.credentials={expiry_date:1,refresh_token:"impersonated-placeholder"},this.sourceClient=e.sourceClient??new $d.OAuth2Client,this.targetPrincipal=e.targetPrincipal??"",this.delegates=e.delegates??[],this.targetScopes=e.targetScopes??[],this.lifetime=e.lifetime??3600,!!!(0,eT.originalOrCamelOptions)(e).get("universe_domain"))this.universeDomain=this.sourceClient.universeDomain;else if(this.sourceClient.universeDomain!==this.universeDomain)throw new RangeError(`Universe domain ${this.sourceClient.universeDomain} in source credentials does not match ${this.universeDomain} universe domain set for impersonated credentials.`);this.endpoint=e.endpoint??`https://iamcredentials.${this.universeDomain}`}async sign(e){await this.sourceClient.getAccessToken();let n=`projects/-/serviceAccounts/${this.targetPrincipal}`,o=`${this.endpoint}/v1/${n}:signBlob`,r={delegates:this.delegates,payload:Buffer.from(e).toString("base64")};return(await this.sourceClient.request({...t.RETRY_CONFIG,url:o,data:r,method:"POST"})).data}getTargetPrincipal(){return this.targetPrincipal}async refreshToken(){try{await this.sourceClient.getAccessToken();let e="projects/-/serviceAccounts/"+this.targetPrincipal,n=`${this.endpoint}/v1/${e}:generateAccessToken`,o={delegates:this.delegates,scope:this.targetScopes,lifetime:this.lifetime+"s"},r=await this.sourceClient.request({...t.RETRY_CONFIG,url:n,data:o,method:"POST"}),i=r.data;return this.credentials.access_token=i.accessToken,this.credentials.expiry_date=Date.parse(i.expireTime),{tokens:this.credentials,res:r}}catch(e){if(!(e instanceof Error))throw e;let n=0,o="";throw e instanceof jE.GaxiosError&&(n=e?.response?.data?.error?.status,o=e?.response?.data?.error?.message),n&&o?(e.message=`${n}: unable to impersonate: ${o}`,e):(e.message=`unable to impersonate: ${e}`,e)}}async fetchIdToken(e,n){await this.sourceClient.getAccessToken();let o=`projects/-/serviceAccounts/${this.targetPrincipal}`,r=`${this.endpoint}/v1/${o}:generateIdToken`,i={delegates:this.delegates,audience:e,includeEmail:n?.includeEmail??!0,useEmailAzp:n?.includeEmail??!0};return(await this.sourceClient.request({...t.RETRY_CONFIG,url:r,data:i,method:"POST"})).data.token}};cn.Impersonated=Ca});var Sa=b(eo=>{"use strict";p();Object.defineProperty(eo,"__esModule",{value:!0});eo.OAuthClientAuthHandler=void 0;eo.getErrorFromOAuthErrorResponse=oT;var dn=ye(),tT=Yn(),nT=["PUT","POST","PATCH"],va=class{#e=(0,tT.createCrypto)();#t;transporter;constructor(e){e&&"clientId"in e?(this.#t=e,this.transporter=new dn.Gaxios):(this.#t=e?.clientAuthentication,this.transporter=e?.transporter||new dn.Gaxios)}applyClientAuthenticationOptions(e,n){e.headers=dn.Gaxios.mergeHeaders(e.headers),this.injectAuthenticatedHeaders(e,n),n||this.injectAuthenticatedRequestBody(e)}injectAuthenticatedHeaders(e,n){if(n)e.headers=dn.Gaxios.mergeHeaders(e.headers,{authorization:`Bearer ${n}`});else if(this.#t?.confidentialClientType==="basic"){e.headers=dn.Gaxios.mergeHeaders(e.headers);let o=this.#t.clientId,r=this.#t.clientSecret||"",i=this.#e.encodeBase64StringUtf8(`${o}:${r}`);dn.Gaxios.mergeHeaders(e.headers,{authorization:`Basic ${i}`})}}injectAuthenticatedRequestBody(e){if(this.#t?.confidentialClientType==="request-body"){let n=(e.method||"GET").toUpperCase();if(!nT.includes(n))throw new Error(`${n} HTTP method does not support ${this.#t.confidentialClientType} client authentication`);let r=new Headers(e.headers).get("content-type");if(r?.startsWith("application/x-www-form-urlencoded")||e.data instanceof URLSearchParams){let i=new URLSearchParams(e.data??"");i.append("client_id",this.#t.clientId),i.append("client_secret",this.#t.clientSecret||""),e.data=i}else if(r?.startsWith("application/json"))e.data=e.data||{},Object.assign(e.data,{client_id:this.#t.clientId,client_secret:this.#t.clientSecret||""});else throw new Error(`${r} content-types are not supported with ${this.#t.confidentialClientType} client authentication`)}}static get RETRY_CONFIG(){return{retry:!0,retryConfig:{httpMethodsToRetry:["GET","PUT","POST","HEAD","OPTIONS","DELETE"]}}}};eo.OAuthClientAuthHandler=va;function oT(t,e){let n=t.error,o=t.error_description,r=t.error_uri,i=`Error code ${n}`;typeof o<"u"&&(i+=`: ${o}`),typeof r<"u"&&(i+=` - ${r}`);let s=new Error(i);if(e){let a=Object.keys(e);e.stack&&a.push("stack"),a.forEach(l=>{l!=="message"&&Object.defineProperty(s,l,{value:e[l],writable:!1,enumerable:!0})})}return s}});var Cr=b(_r=>{"use strict";p();Object.defineProperty(_r,"__esModule",{value:!0});_r.StsCredentials=void 0;var rT=ye(),iT=xe(),Kd=Sa(),sT=Qe(),wa=class t extends Kd.OAuthClientAuthHandler{#e;constructor(e={tokenExchangeEndpoint:""},n){(typeof e!="object"||e instanceof URL)&&(e={tokenExchangeEndpoint:e,clientAuthentication:n}),super(e),this.#e=e.tokenExchangeEndpoint}async exchangeToken(e,n,o){let r={grant_type:e.grantType,resource:e.resource,audience:e.audience,scope:e.scope?.join(" "),requested_token_type:e.requestedTokenType,subject_token:e.subjectToken,subject_token_type:e.subjectTokenType,actor_token:e.actingParty?.actorToken,actor_token_type:e.actingParty?.actorTokenType,options:o&&JSON.stringify(o)},i={...t.RETRY_CONFIG,url:this.#e.toString(),method:"POST",headers:n,data:new URLSearchParams((0,sT.removeUndefinedValuesInObject)(r)),responseType:"json"};iT.AuthClient.setMethodName(i,"exchangeToken"),this.applyClientAuthenticationOptions(i);try{let s=await this.transporter.request(i),a=s.data;return a.res=s,a}catch(s){throw s instanceof rT.GaxiosError&&s.response?(0,Kd.getErrorFromOAuthErrorResponse)(s.response.data,s):s}}};_r.StsCredentials=wa});var Pt=b(Ve=>{"use strict";p();Object.defineProperty(Ve,"__esModule",{value:!0});Ve.BaseExternalAccountClient=Ve.CLOUD_RESOURCE_MANAGER=Ve.EXTERNAL_ACCOUNT_TYPE=Ve.EXPIRATION_TIME_OFFSET=void 0;var aT=ye(),lT=J("stream"),Ia=xe(),uT=Cr(),Jd=Qe(),cT=Os(),dT="urn:ietf:params:oauth:grant-type:token-exchange",fT="urn:ietf:params:oauth:token-type:access_token",Ra="https://www.googleapis.com/auth/cloud-platform",pT=3600;Ve.EXPIRATION_TIME_OFFSET=5*60*1e3;Ve.EXTERNAL_ACCOUNT_TYPE="external_account";Ve.CLOUD_RESOURCE_MANAGER="https://cloudresourcemanager.googleapis.com/v1/projects/";var hT="//iam\\.googleapis\\.com/locations/[^/]+/workforcePools/[^/]+/providers/.+",mT="https://sts.{universeDomain}/v1/token",Pa=class t extends Ia.AuthClient{scopes;projectNumber;audience;subjectTokenType;stsCredential;clientAuth;credentialSourceType;cachedAccessToken;serviceAccountImpersonationUrl;serviceAccountImpersonationLifetime;workforcePoolUserProject;configLifetimeRequested;tokenUrl;cloudResourceManagerURL;supplierContext;#e=null;constructor(e){super(e);let n=(0,Jd.originalOrCamelOptions)(e),o=n.get("type");if(o&&o!==Ve.EXTERNAL_ACCOUNT_TYPE)throw new Error(`Expected "${Ve.EXTERNAL_ACCOUNT_TYPE}" type but received "${e.type}"`);let r=n.get("client_id"),i=n.get("client_secret");this.tokenUrl=n.get("token_url")??mT.replace("{universeDomain}",this.universeDomain);let s=n.get("subject_token_type"),a=n.get("workforce_pool_user_project"),l=n.get("service_account_impersonation_url"),u=n.get("service_account_impersonation"),c=(0,Jd.originalOrCamelOptions)(u).get("token_lifetime_seconds");this.cloudResourceManagerURL=new URL(n.get("cloud_resource_manager_url")||`https://cloudresourcemanager.${this.universeDomain}/v1/projects/`),r&&(this.clientAuth={confidentialClientType:"basic",clientId:r,clientSecret:i}),this.stsCredential=new uT.StsCredentials({tokenExchangeEndpoint:this.tokenUrl,clientAuthentication:this.clientAuth}),this.scopes=n.get("scopes")||[Ra],this.cachedAccessToken=null,this.audience=n.get("audience"),this.subjectTokenType=s,this.workforcePoolUserProject=a;let f=new RegExp(hT);if(this.workforcePoolUserProject&&!this.audience.match(f))throw new Error("workforcePoolUserProject should not be set for non-workforce pool credentials.");this.serviceAccountImpersonationUrl=l,this.serviceAccountImpersonationLifetime=c,this.serviceAccountImpersonationLifetime?this.configLifetimeRequested=!0:(this.configLifetimeRequested=!1,this.serviceAccountImpersonationLifetime=pT),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 new RangeError(`URL is too long: ${this.serviceAccountImpersonationUrl}`);return/serviceAccounts\/(?<email>[^:]+):generateAccessToken$/.exec(this.serviceAccountImpersonationUrl)?.groups?.email||null}return null}setCredentials(e){super.setCredentials(e),this.cachedAccessToken=e}async getAccessToken(){return(!this.cachedAccessToken||this.isExpired(this.cachedAccessToken))&&await this.refreshAccessTokenAsync(),{token:this.cachedAccessToken.access_token,res:this.cachedAccessToken.res}}async getRequestHeaders(){let e=await this.getAccessToken(),n=new Headers({authorization:`Bearer ${e.token}`});return this.addSharedMetadataHeaders(n)}request(e,n){if(n)this.requestAsync(e).then(o=>n(null,o),o=>n(o,o.response));else return this.requestAsync(e)}async getProjectId(){let e=this.projectNumber||this.workforcePoolUserProject;if(this.projectId)return this.projectId;if(e){let n=await this.getRequestHeaders(),o={...t.RETRY_CONFIG,headers:n,url:`${this.cloudResourceManagerURL.toString()}${e}`,responseType:"json"};Ia.AuthClient.setMethodName(o,"getProjectId");let r=await this.transporter.request(o);return this.projectId=r.data.projectId,this.projectId}return null}async requestAsync(e,n=!1){let o;try{let r=await this.getRequestHeaders();e.headers=aT.Gaxios.mergeHeaders(e.headers),this.addUserProjectAndAuthHeaders(e.headers,r),o=await this.transporter.request(e)}catch(r){let i=r.response;if(i){let s=i.status,a=i.config.data instanceof lT.Readable;if(!n&&(s===401||s===403)&&!a&&this.forceRefreshOnFailure)return await this.refreshAccessTokenAsync(),await this.requestAsync(e,!0)}throw r}return o}async refreshAccessTokenAsync(){this.#e=this.#e||this.#t();try{return await this.#e}finally{this.#e=null}}async#t(){let e=await this.retrieveSubjectToken(),n={grantType:dT,audience:this.audience,requestedTokenType:fT,subjectToken:e,subjectTokenType:this.subjectTokenType,scope:this.serviceAccountImpersonationUrl?[Ra]:this.getScopesArray()},o=!this.clientAuth&&this.workforcePoolUserProject?{userProject:this.workforcePoolUserProject}:void 0,r=new Headers({"x-goog-api-client":this.getMetricsHeaderValue()}),i=await this.stsCredential.exchangeToken(n,r,o);return this.serviceAccountImpersonationUrl?this.cachedAccessToken=await this.getImpersonatedAccessToken(i.access_token):i.expires_in?this.cachedAccessToken={access_token:i.access_token,expiry_date:new Date().getTime()+i.expires_in*1e3,res:i.res}:this.cachedAccessToken={access_token:i.access_token,res:i.res},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(e){let n=e.match(/\/projects\/([^/]+)/);return n?n[1]:null}async getImpersonatedAccessToken(e){let n={...t.RETRY_CONFIG,url:this.serviceAccountImpersonationUrl,method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${e}`},data:{scope:this.getScopesArray(),lifetime:this.serviceAccountImpersonationLifetime+"s"},responseType:"json"};Ia.AuthClient.setMethodName(n,"getImpersonatedAccessToken");let o=await this.transporter.request(n),r=o.data;return{access_token:r.accessToken,expiry_date:new Date(r.expireTime).getTime(),res:o}}isExpired(e){let n=new Date().getTime();return e.expiry_date?n>=e.expiry_date-this.eagerRefreshThresholdMillis:!1}getScopesArray(){return typeof this.scopes=="string"?[this.scopes]:this.scopes||[Ra]}getMetricsHeaderValue(){let e=process.version.replace(/^v/,""),n=this.serviceAccountImpersonationUrl!==void 0,o=this.credentialSourceType?this.credentialSourceType:"unknown";return`gl-node/${e} auth/${cT.pkg.version} google-byoid-sdk source/${o} sa-impersonation/${n} config-lifetime/${this.configLifetimeRequested}`}getTokenUrl(){return this.tokenUrl}};Ve.BaseExternalAccountClient=Pa});var Wd=b(Ar=>{"use strict";p();Object.defineProperty(Ar,"__esModule",{value:!0});Ar.FileSubjectTokenSupplier=void 0;var ka=J("util"),xa=J("fs"),gT=(0,ka.promisify)(xa.readFile??(()=>{})),yT=(0,ka.promisify)(xa.realpath??(()=>{})),ET=(0,ka.promisify)(xa.lstat??(()=>{})),Ma=class{filePath;formatType;subjectTokenFieldName;constructor(e){this.filePath=e.filePath,this.formatType=e.formatType,this.subjectTokenFieldName=e.subjectTokenFieldName}async getSubjectToken(){let e=this.filePath;try{if(e=await yT(e),!(await ET(e)).isFile())throw new Error}catch(r){throw r instanceof Error&&(r.message=`The file at ${e} does not exist, or it is not a file. ${r.message}`),r}let n,o=await gT(e,{encoding:"utf8"});if(this.formatType==="text"?n=o:this.formatType==="json"&&this.subjectTokenFieldName&&(n=JSON.parse(o)[this.subjectTokenFieldName]),!n)throw new Error("Unable to parse the subject_token from the credential_source file");return n}};Ar.FileSubjectTokenSupplier=Ma});var Yd=b(vr=>{"use strict";p();Object.defineProperty(vr,"__esModule",{value:!0});vr.UrlSubjectTokenSupplier=void 0;var TT=xe(),Na=class{url;headers;formatType;subjectTokenFieldName;additionalGaxiosOptions;constructor(e){this.url=e.url,this.formatType=e.formatType,this.subjectTokenFieldName=e.subjectTokenFieldName,this.headers=e.headers,this.additionalGaxiosOptions=e.additionalGaxiosOptions}async getSubjectToken(e){let n={...this.additionalGaxiosOptions,url:this.url,method:"GET",headers:this.headers,responseType:this.formatType};TT.AuthClient.setMethodName(n,"getSubjectToken");let o;if(this.formatType==="text"?o=(await e.transporter.request(n)).data:this.formatType==="json"&&this.subjectTokenFieldName&&(o=(await e.transporter.request(n)).data[this.subjectTokenFieldName]),!o)throw new Error("Unable to parse the subject_token from the credential_source URL");return o}};vr.UrlSubjectTokenSupplier=Na});var zd=b(Ne=>{"use strict";p();Object.defineProperty(Ne,"__esModule",{value:!0});Ne.CertificateSubjectTokenSupplier=Ne.InvalidConfigurationError=Ne.CertificateSourceUnavailableError=Ne.CERTIFICATE_CONFIGURATION_ENV_VARIABLE=void 0;var Sr=Qe(),wr=J("fs"),Ir=J("crypto"),_T=J("https");Ne.CERTIFICATE_CONFIGURATION_ENV_VARIABLE="GOOGLE_API_CERTIFICATE_CONFIG";var lt=class extends Error{constructor(e){super(e),this.name="CertificateSourceUnavailableError"}};Ne.CertificateSourceUnavailableError=lt;var $e=class extends Error{constructor(e){super(e),this.name="InvalidConfigurationError"}};Ne.InvalidConfigurationError=$e;var Da=class{certificateConfigPath;trustChainPath;cert;key;constructor(e){if(!e.useDefaultCertificateConfig&&!e.certificateConfigLocation)throw new $e("Either `useDefaultCertificateConfig` must be true or a `certificateConfigLocation` must be provided.");if(e.useDefaultCertificateConfig&&e.certificateConfigLocation)throw new $e("Both `useDefaultCertificateConfig` and `certificateConfigLocation` cannot be provided.");this.trustChainPath=e.trustChainPath,this.certificateConfigPath=e.certificateConfigLocation??""}async createMtlsHttpsAgent(){if(!this.key||!this.cert)throw new $e("Cannot create mTLS Agent with missing certificate or key");return new _T.Agent({key:this.key,cert:this.cert})}async getSubjectToken(){this.certificateConfigPath=await this.#e();let{certPath:e,keyPath:n}=await this.#t();return{cert:this.cert,key:this.key}=await this.#n(e,n),await this.#o(this.cert)}async#e(){let e=this.certificateConfigPath;if(e){if(await(0,Sr.isValidFile)(e))return e;throw new lt(`Provided certificate config path is invalid: ${e}`)}let n=process.env[Ne.CERTIFICATE_CONFIGURATION_ENV_VARIABLE];if(n){if(await(0,Sr.isValidFile)(n))return n;throw new lt(`Path from environment variable "${Ne.CERTIFICATE_CONFIGURATION_ENV_VARIABLE}" is invalid: ${n}`)}let o=(0,Sr.getWellKnownCertificateConfigFileLocation)();if(await(0,Sr.isValidFile)(o))return o;throw new lt(`Could not find certificate configuration file. Searched override path, the "${Ne.CERTIFICATE_CONFIGURATION_ENV_VARIABLE}" env var, and the gcloud path (${o}).`)}async#t(){let e=this.certificateConfigPath,n;try{n=await wr.promises.readFile(e,"utf8")}catch{throw new lt(`Failed to read certificate config file at: ${e}`)}try{let o=JSON.parse(n),r=o?.cert_configs?.workload?.cert_path,i=o?.cert_configs?.workload?.key_path;if(!r||!i)throw new $e(`Certificate config file (${e}) is missing required "cert_path" or "key_path" in the workload config.`);return{certPath:r,keyPath:i}}catch(o){throw o instanceof $e?o:new $e(`Failed to parse certificate config from ${e}: ${o.message}`)}}async#n(e,n){let o,r;try{o=await wr.promises.readFile(e),new Ir.X509Certificate(o)}catch(i){let s=i instanceof Error?i.message:String(i);throw new lt(`Failed to read certificate file at ${e}: ${s}`)}try{r=await wr.promises.readFile(n),(0,Ir.createPrivateKey)(r)}catch(i){let s=i instanceof Error?i.message:String(i);throw new lt(`Failed to read private key file at ${n}: ${s}`)}return{cert:o,key:r}}async#o(e){let n=new Ir.X509Certificate(e);if(!this.trustChainPath)return JSON.stringify([n.raw.toString("base64")]);try{let i=((await wr.promises.readFile(this.trustChainPath,"utf8")).match(/-----BEGIN CERTIFICATE-----[^-]+-----END CERTIFICATE-----/g)??[]).map((l,u)=>{try{return new Ir.X509Certificate(l)}catch(c){let f=c instanceof Error?c.message:String(c);throw new $e(`Failed to parse certificate at index ${u} in trust chain file ${this.trustChainPath}: ${f}`)}}),s=i.findIndex(l=>n.raw.equals(l.raw)),a;if(s===-1)a=[n,...i];else if(s===0)a=i;else throw new $e(`Leaf certificate exists in the trust chain but is not the first entry (found at index ${s}).`);return JSON.stringify(a.map(l=>l.raw.toString("base64")))}catch(o){if(o instanceof $e)throw o;let r=o instanceof Error?o.message:String(o);throw new lt(`Failed to process certificate chain from ${this.trustChainPath}: ${r}`)}}};Ne.CertificateSubjectTokenSupplier=Da});var Ua=b(Rr=>{"use strict";p();Object.defineProperty(Rr,"__esModule",{value:!0});Rr.IdentityPoolClient=void 0;var CT=Pt(),ba=Qe(),AT=Wd(),vT=Yd(),Xd=zd(),ST=Cr(),Qd=ye(),Oa=class t extends CT.BaseExternalAccountClient{subjectTokenSupplier;constructor(e){super(e);let n=(0,ba.originalOrCamelOptions)(e),o=n.get("credential_source"),r=n.get("subject_token_supplier");if(!o&&!r)throw new Error("A credential source or subject token supplier must be specified.");if(o&&r)throw new Error("Only one of credential source or subject token supplier can be specified.");if(r)this.subjectTokenSupplier=r,this.credentialSourceType="programmatic";else{let i=(0,ba.originalOrCamelOptions)(o),s=(0,ba.originalOrCamelOptions)(i.get("format")),a=s.get("type")||"text",l=s.get("subject_token_field_name");if(a!=="json"&&a!=="text")throw new Error(`Invalid credential_source format "${a}"`);if(a==="json"&&!l)throw new Error("Missing subject_token_field_name for JSON credential_source format");let u=i.get("file"),c=i.get("url"),f=i.get("certificate"),h=i.get("headers");if(u&&c||c&&f||u&&f)throw new Error('No valid Identity Pool "credential_source" provided, must be either file, url, or certificate.');if(u)this.credentialSourceType="file",this.subjectTokenSupplier=new AT.FileSubjectTokenSupplier({filePath:u,formatType:a,subjectTokenFieldName:l});else if(c)this.credentialSourceType="url",this.subjectTokenSupplier=new vT.UrlSubjectTokenSupplier({url:c,formatType:a,subjectTokenFieldName:l,headers:h,additionalGaxiosOptions:t.RETRY_CONFIG});else if(f){this.credentialSourceType="certificate";let y=new Xd.CertificateSubjectTokenSupplier({useDefaultCertificateConfig:f.use_default_certificate_config,certificateConfigLocation:f.certificate_config_location,trustChainPath:f.trust_chain_path});this.subjectTokenSupplier=y}else throw new Error('No valid Identity Pool "credential_source" provided, must be either file, url, or certificate.')}}async retrieveSubjectToken(){let e=await this.subjectTokenSupplier.getSubjectToken(this.supplierContext);if(this.subjectTokenSupplier instanceof Xd.CertificateSubjectTokenSupplier){let n=await this.subjectTokenSupplier.createMtlsHttpsAgent();this.stsCredential=new ST.StsCredentials({tokenExchangeEndpoint:this.getTokenUrl(),clientAuthentication:this.clientAuth,transporter:new Qd.Gaxios({agent:n})}),this.transporter=new Qd.Gaxios({...this.transporter.defaults||{},agent:n})}return e}};Rr.IdentityPoolClient=Oa});var Ga=b(Mr=>{"use strict";p();Object.defineProperty(Mr,"__esModule",{value:!0});Mr.AwsRequestSigner=void 0;var Pr=ye(),jd=Yn(),Zd="AWS4-HMAC-SHA256",wT="aws4_request",La=class{getCredentials;region;crypto;constructor(e,n){this.getCredentials=e,this.region=n,this.crypto=(0,jd.createCrypto)()}async getRequestOptions(e){if(!e.url)throw new RangeError('"url" is required in "amzOptions"');let n=typeof e.data=="object"?JSON.stringify(e.data):e.data,o=e.url,r=e.method||"GET",i=e.body||n,s=e.headers,a=await this.getCredentials(),l=new URL(o);if(typeof i!="string"&&i!==void 0)throw new TypeError(`'requestPayload' is expected to be a string if provided. Got: ${i}`);let u=await RT({crypto:this.crypto,host:l.host,canonicalUri:l.pathname,canonicalQuerystring:l.search.slice(1),method:r,region:this.region,securityCredentials:a,requestPayload:i,additionalAmzHeaders:s}),c=Pr.Gaxios.mergeHeaders(u.amzDate?{"x-amz-date":u.amzDate}:{},{authorization:u.authorizationHeader,host:l.host},s||{});a.token&&Pr.Gaxios.mergeHeaders(c,{"x-amz-security-token":a.token});let f={url:o,method:r,headers:c};return i!==void 0&&(f.body=i),f}};Mr.AwsRequestSigner=La;async function to(t,e,n){return await t.signWithHmacSha256(e,n)}async function IT(t,e,n,o,r){let i=await to(t,`AWS4${e}`,n),s=await to(t,i,o),a=await to(t,s,r);return await to(t,a,"aws4_request")}async function RT(t){let e=Pr.Gaxios.mergeHeaders(t.additionalAmzHeaders),n=t.requestPayload||"",o=t.host.split(".")[0],r=new Date,i=r.toISOString().replace(/[-:]/g,"").replace(/\.[0-9]+/,""),s=r.toISOString().replace(/[-]/g,"").replace(/T.*/,"");t.securityCredentials.token&&e.set("x-amz-security-token",t.securityCredentials.token);let a=Pr.Gaxios.mergeHeaders({host:t.host},e.has("date")?{}:{"x-amz-date":i},e),l="",u=[...a.keys()].sort();u.forEach(O=>{l+=`${O}:${a.get(O)}
|
|
18
|
+
`});let c=u.join(";"),f=await t.crypto.sha256DigestHex(n),h=`${t.method.toUpperCase()}
|
|
19
|
+
${t.canonicalUri}
|
|
20
|
+
${t.canonicalQuerystring}
|
|
21
|
+
${l}
|
|
22
|
+
${c}
|
|
23
|
+
${f}`,y=`${s}/${t.region}/${o}/${wT}`,S=`${Zd}
|
|
24
|
+
${i}
|
|
25
|
+
${y}
|
|
26
|
+
`+await t.crypto.sha256DigestHex(h),A=await IT(t.crypto,t.securityCredentials.secretAccessKey,s,t.region,o),T=await to(t.crypto,A,S),R=`${Zd} Credential=${t.securityCredentials.accessKeyId}/${y}, SignedHeaders=${c}, Signature=${(0,jd.fromArrayBufferToHex)(T)}`;return{amzDate:e.has("date")?void 0:i,authorizationHeader:R,canonicalQuerystring:t.canonicalQuerystring}}});var ef=b(xr=>{"use strict";p();Object.defineProperty(xr,"__esModule",{value:!0});xr.DefaultAwsSecurityCredentialsSupplier=void 0;var kr=xe(),Fa=class{regionUrl;securityCredentialsUrl;imdsV2SessionTokenUrl;additionalGaxiosOptions;constructor(e){this.regionUrl=e.regionUrl,this.securityCredentialsUrl=e.securityCredentialsUrl,this.imdsV2SessionTokenUrl=e.imdsV2SessionTokenUrl,this.additionalGaxiosOptions=e.additionalGaxiosOptions}async getAwsRegion(e){if(this.#o)return this.#o;let n=new Headers;if(!this.#o&&this.imdsV2SessionTokenUrl&&n.set("x-aws-ec2-metadata-token",await this.#e(e.transporter)),!this.regionUrl)throw new RangeError('Unable to determine AWS region due to missing "options.credential_source.region_url"');let o={...this.additionalGaxiosOptions,url:this.regionUrl,method:"GET",responseType:"text",headers:n};kr.AuthClient.setMethodName(o,"getAwsRegion");let r=await e.transporter.request(o);return r.data.substr(0,r.data.length-1)}async getAwsSecurityCredentials(e){if(this.#r)return this.#r;let n=new Headers;this.imdsV2SessionTokenUrl&&n.set("x-aws-ec2-metadata-token",await this.#e(e.transporter));let o=await this.#t(n,e.transporter),r=await this.#n(o,n,e.transporter);return{accessKeyId:r.AccessKeyId,secretAccessKey:r.SecretAccessKey,token:r.Token}}async#e(e){let n={...this.additionalGaxiosOptions,url:this.imdsV2SessionTokenUrl,method:"PUT",responseType:"text",headers:{"x-aws-ec2-metadata-token-ttl-seconds":"300"}};return kr.AuthClient.setMethodName(n,"#getImdsV2SessionToken"),(await e.request(n)).data}async#t(e,n){if(!this.securityCredentialsUrl)throw new Error('Unable to determine AWS role name due to missing "options.credential_source.url"');let o={...this.additionalGaxiosOptions,url:this.securityCredentialsUrl,method:"GET",responseType:"text",headers:e};return kr.AuthClient.setMethodName(o,"#getAwsRoleName"),(await n.request(o)).data}async#n(e,n,o){let r={...this.additionalGaxiosOptions,url:`${this.securityCredentialsUrl}/${e}`,headers:n,responseType:"json"};return kr.AuthClient.setMethodName(r,"#retrieveAwsSecurityCredentials"),(await o.request(r)).data}get#o(){return process.env.AWS_REGION||process.env.AWS_DEFAULT_REGION||null}get#r(){return process.env.AWS_ACCESS_KEY_ID&&process.env.AWS_SECRET_ACCESS_KEY?{accessKeyId:process.env.AWS_ACCESS_KEY_ID,secretAccessKey:process.env.AWS_SECRET_ACCESS_KEY,token:process.env.AWS_SESSION_TOKEN}:null}};xr.DefaultAwsSecurityCredentialsSupplier=Fa});var Ba=b(Nr=>{"use strict";p();Object.defineProperty(Nr,"__esModule",{value:!0});Nr.AwsClient=void 0;var PT=Ga(),MT=Pt(),kT=ef(),tf=Qe(),xT=ye(),qa=class t extends MT.BaseExternalAccountClient{environmentId;awsSecurityCredentialsSupplier;regionalCredVerificationUrl;awsRequestSigner;region;static#e="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(e){super(e);let n=(0,tf.originalOrCamelOptions)(e),o=n.get("credential_source"),r=n.get("aws_security_credentials_supplier");if(!o&&!r)throw new Error("A credential source or AWS security credentials supplier must be specified.");if(o&&r)throw new Error("Only one of credential source or AWS security credentials supplier can be specified.");if(r)this.awsSecurityCredentialsSupplier=r,this.regionalCredVerificationUrl=t.#e,this.credentialSourceType="programmatic";else{let i=(0,tf.originalOrCamelOptions)(o);this.environmentId=i.get("environment_id");let s=i.get("region_url"),a=i.get("url"),l=i.get("imdsv2_session_token_url");this.awsSecurityCredentialsSupplier=new kT.DefaultAwsSecurityCredentialsSupplier({regionUrl:s,securityCredentialsUrl:a,imdsV2SessionTokenUrl:l}),this.regionalCredVerificationUrl=i.get("regional_cred_verification_url"),this.credentialSourceType="aws",this.validateEnvironmentId()}this.awsRequestSigner=null,this.region=""}validateEnvironmentId(){let e=this.environmentId?.match(/^(aws)(\d+)$/);if(!e||!this.regionalCredVerificationUrl)throw new Error('No valid AWS "credential_source" provided');if(parseInt(e[2],10)!==1)throw new Error(`aws version "${e[2]}" is not supported in the current build.`)}async retrieveSubjectToken(){this.awsRequestSigner||(this.region=await this.awsSecurityCredentialsSupplier.getAwsRegion(this.supplierContext),this.awsRequestSigner=new PT.AwsRequestSigner(async()=>this.awsSecurityCredentialsSupplier.getAwsSecurityCredentials(this.supplierContext),this.region));let e=await this.awsRequestSigner.getRequestOptions({...t.RETRY_CONFIG,url:this.regionalCredVerificationUrl.replace("{region}",this.region),method:"POST"}),n=[];return xT.Gaxios.mergeHeaders({"x-goog-cloud-target-resource":this.audience},e.headers).forEach((r,i)=>n.push({key:i,value:r})),encodeURIComponent(JSON.stringify({url:e.url,method:e.method,headers:n}))}};Nr.AwsClient=qa});var Ja=b(fe=>{"use strict";p();Object.defineProperty(fe,"__esModule",{value:!0});fe.InvalidSubjectTokenError=fe.InvalidMessageFieldError=fe.InvalidCodeFieldError=fe.InvalidTokenTypeFieldError=fe.InvalidExpirationTimeFieldError=fe.InvalidSuccessFieldError=fe.InvalidVersionFieldError=fe.ExecutableResponseError=fe.ExecutableResponse=void 0;var Dr="urn:ietf:params:oauth:token-type:saml2",Ha="urn:ietf:params:oauth:token-type:id_token",Va="urn:ietf:params:oauth:token-type:jwt",$a=class{version;success;expirationTime;tokenType;errorCode;errorMessage;subjectToken;constructor(e){if(!e.version)throw new br("Executable response must contain a 'version' field.");if(e.success===void 0)throw new Or("Executable response must contain a 'success' field.");if(this.version=e.version,this.success=e.success,this.success){if(this.expirationTime=e.expiration_time,this.tokenType=e.token_type,this.tokenType!==Dr&&this.tokenType!==Ha&&this.tokenType!==Va)throw new Ur(`Executable response must contain a 'token_type' field when successful and it must be one of ${Ha}, ${Va}, or ${Dr}.`);if(this.tokenType===Dr){if(!e.saml_response)throw new no(`Executable response must contain a 'saml_response' field when token_type=${Dr}.`);this.subjectToken=e.saml_response}else{if(!e.id_token)throw new no(`Executable response must contain a 'id_token' field when token_type=${Ha} or ${Va}.`);this.subjectToken=e.id_token}}else{if(!e.code)throw new Lr("Executable response must contain a 'code' field when unsuccessful.");if(!e.message)throw new Gr("Executable response must contain a 'message' field when unsuccessful.");this.errorCode=e.code,this.errorMessage=e.message}}isValid(){return!this.isExpired()&&this.success}isExpired(){return this.expirationTime!==void 0&&this.expirationTime<Math.round(Date.now()/1e3)}};fe.ExecutableResponse=$a;var ut=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,new.target.prototype)}};fe.ExecutableResponseError=ut;var br=class extends ut{};fe.InvalidVersionFieldError=br;var Or=class extends ut{};fe.InvalidSuccessFieldError=Or;var Ka=class extends ut{};fe.InvalidExpirationTimeFieldError=Ka;var Ur=class extends ut{};fe.InvalidTokenTypeFieldError=Ur;var Lr=class extends ut{};fe.InvalidCodeFieldError=Lr;var Gr=class extends ut{};fe.InvalidMessageFieldError=Gr;var no=class extends ut{};fe.InvalidSubjectTokenError=no});var za=b(fn=>{"use strict";p();Object.defineProperty(fn,"__esModule",{value:!0});fn.PluggableAuthHandler=fn.ExecutableError=void 0;var Ht=Ja(),NT=J("child_process"),Wa=J("fs"),Fr=class extends Error{code;constructor(e,n){super(`The executable failed with exit code: ${n} and error message: ${e}.`),this.code=n,Object.setPrototypeOf(this,new.target.prototype)}};fn.ExecutableError=Fr;var Ya=class t{commandComponents;timeoutMillis;outputFile;constructor(e){if(!e.command)throw new Error("No command provided.");if(this.commandComponents=t.parseCommand(e.command),this.timeoutMillis=e.timeoutMillis,!this.timeoutMillis)throw new Error("No timeoutMillis provided.");this.outputFile=e.outputFile}retrieveResponseFromExecutable(e){return new Promise((n,o)=>{let r=NT.spawn(this.commandComponents[0],this.commandComponents.slice(1),{env:{...process.env,...Object.fromEntries(e)}}),i="";r.stdout.on("data",a=>{i+=a}),r.stderr.on("data",a=>{i+=a});let s=setTimeout(()=>(r.removeAllListeners(),r.kill(),o(new Error("The executable failed to finish within the timeout specified."))),this.timeoutMillis);r.on("close",a=>{if(clearTimeout(s),a===0)try{let l=JSON.parse(i),u=new Ht.ExecutableResponse(l);return n(u)}catch(l){return l instanceof Ht.ExecutableResponseError?o(l):o(new Ht.ExecutableResponseError(`The executable returned an invalid response: ${i}`))}else return o(new Fr(i,a.toString()))})})}async retrieveCachedResponse(){if(!this.outputFile||this.outputFile.length===0)return;let e;try{e=await Wa.promises.realpath(this.outputFile)}catch{return}if(!(await Wa.promises.lstat(e)).isFile())return;let n=await Wa.promises.readFile(e,{encoding:"utf8"});if(n!=="")try{let o=JSON.parse(n);return new Ht.ExecutableResponse(o).isValid()?new Ht.ExecutableResponse(o):void 0}catch(o){throw o instanceof Ht.ExecutableResponseError?o:new Ht.ExecutableResponseError(`The output file contained an invalid response: ${n}`)}}static parseCommand(e){let n=e.match(/(?:[^\s"]+|"[^"]*")+/g);if(!n)throw new Error(`Provided command: "${e}" could not be parsed.`);for(let o=0;o<n.length;o++)n[o][0]==='"'&&n[o].slice(-1)==='"'&&(n[o]=n[o].slice(1,-1));return n}};fn.PluggableAuthHandler=Ya});var Qa=b(pn=>{"use strict";p();Object.defineProperty(pn,"__esModule",{value:!0});pn.PluggableAuthClient=pn.ExecutableError=void 0;var DT=Pt(),bT=Ja(),nf=za(),OT=za();Object.defineProperty(pn,"ExecutableError",{enumerable:!0,get:function(){return OT.ExecutableError}});var UT=30*1e3,of=5*1e3,rf=120*1e3,LT="GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES",sf=1,Xa=class extends DT.BaseExternalAccountClient{command;timeoutMillis;outputFile;handler;constructor(e){if(super(e),!e.credential_source.executable)throw new Error('No valid Pluggable Auth "credential_source" provided.');if(this.command=e.credential_source.executable.command,!this.command)throw new Error('No valid Pluggable Auth "credential_source" provided.');if(e.credential_source.executable.timeout_millis===void 0)this.timeoutMillis=UT;else if(this.timeoutMillis=e.credential_source.executable.timeout_millis,this.timeoutMillis<of||this.timeoutMillis>rf)throw new Error(`Timeout must be between ${of} and ${rf} milliseconds.`);this.outputFile=e.credential_source.executable.output_file,this.handler=new nf.PluggableAuthHandler({command:this.command,timeoutMillis:this.timeoutMillis,outputFile:this.outputFile}),this.credentialSourceType="executable"}async retrieveSubjectToken(){if(process.env[LT]!=="1")throw new Error("Pluggable Auth executables need to be explicitly allowed to run by setting the GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES environment Variable to 1.");let e;if(this.outputFile&&(e=await this.handler.retrieveCachedResponse()),!e){let n=new Map;n.set("GOOGLE_EXTERNAL_ACCOUNT_AUDIENCE",this.audience),n.set("GOOGLE_EXTERNAL_ACCOUNT_TOKEN_TYPE",this.subjectTokenType),n.set("GOOGLE_EXTERNAL_ACCOUNT_INTERACTIVE","0"),this.outputFile&&n.set("GOOGLE_EXTERNAL_ACCOUNT_OUTPUT_FILE",this.outputFile);let o=this.getServiceAccountEmail();o&&n.set("GOOGLE_EXTERNAL_ACCOUNT_IMPERSONATED_EMAIL",o),e=await this.handler.retrieveResponseFromExecutable(n)}if(e.version>sf)throw new Error(`Version of executable is not currently supported, maximum supported version is ${sf}.`);if(!e.success)throw new nf.ExecutableError(e.errorMessage,e.errorCode);if(this.outputFile&&!e.expirationTime)throw new bT.InvalidExpirationTimeFieldError("The executable response must contain the `expiration_time` field for successful responses when an output_file has been specified in the configuration.");if(e.isExpired())throw new Error("Executable response is expired.");return e.subjectToken}};pn.PluggableAuthClient=Xa});var ja=b(qr=>{"use strict";p();Object.defineProperty(qr,"__esModule",{value:!0});qr.ExternalAccountClient=void 0;var GT=Pt(),FT=Ua(),qT=Ba(),BT=Qa(),Za=class{constructor(){throw new 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(e){return e&&e.type===GT.EXTERNAL_ACCOUNT_TYPE?e.credential_source?.environment_id?new qT.AwsClient(e):e.credential_source?.executable?new BT.PluggableAuthClient(e):new FT.IdentityPoolClient(e):null}};qr.ExternalAccountClient=Za});var nl=b(hn=>{"use strict";p();Object.defineProperty(hn,"__esModule",{value:!0});hn.ExternalAccountAuthorizedUserClient=hn.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE=void 0;var lf=xe(),af=Sa(),uf=ye(),HT=J("stream"),VT=Pt();hn.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE="external_account_authorized_user";var $T="https://sts.{universeDomain}/v1/oauthtoken",el=class t extends af.OAuthClientAuthHandler{#e;constructor(e){super(e),this.#e=e.tokenRefreshEndpoint}async refreshToken(e,n){let o={...t.RETRY_CONFIG,url:this.#e,method:"POST",headers:n,data:new URLSearchParams({grant_type:"refresh_token",refresh_token:e}),responseType:"json"};lf.AuthClient.setMethodName(o,"refreshToken"),this.applyClientAuthenticationOptions(o);try{let r=await this.transporter.request(o),i=r.data;return i.res=r,i}catch(r){throw r instanceof uf.GaxiosError&&r.response?(0,af.getErrorFromOAuthErrorResponse)(r.response.data,r):r}}},tl=class extends lf.AuthClient{cachedAccessToken;externalAccountAuthorizedUserHandler;refreshToken;constructor(e){super(e),e.universe_domain&&(this.universeDomain=e.universe_domain),this.refreshToken=e.refresh_token;let n={confidentialClientType:"basic",clientId:e.client_id,clientSecret:e.client_secret};this.externalAccountAuthorizedUserHandler=new el({tokenRefreshEndpoint:e.token_url??$T.replace("{universeDomain}",this.universeDomain),transporter:this.transporter,clientAuthentication:n}),this.cachedAccessToken=null,this.quotaProjectId=e.quota_project_id,typeof e?.eagerRefreshThresholdMillis!="number"?this.eagerRefreshThresholdMillis=VT.EXPIRATION_TIME_OFFSET:this.eagerRefreshThresholdMillis=e.eagerRefreshThresholdMillis,this.forceRefreshOnFailure=!!e?.forceRefreshOnFailure}async getAccessToken(){return(!this.cachedAccessToken||this.isExpired(this.cachedAccessToken))&&await this.refreshAccessTokenAsync(),{token:this.cachedAccessToken.access_token,res:this.cachedAccessToken.res}}async getRequestHeaders(){let e=await this.getAccessToken(),n=new Headers({authorization:`Bearer ${e.token}`});return this.addSharedMetadataHeaders(n)}request(e,n){if(n)this.requestAsync(e).then(o=>n(null,o),o=>n(o,o.response));else return this.requestAsync(e)}async requestAsync(e,n=!1){let o;try{let r=await this.getRequestHeaders();e.headers=uf.Gaxios.mergeHeaders(e.headers),this.addUserProjectAndAuthHeaders(e.headers,r),o=await this.transporter.request(e)}catch(r){let i=r.response;if(i){let s=i.status,a=i.config.data instanceof HT.Readable;if(!n&&(s===401||s===403)&&!a&&this.forceRefreshOnFailure)return await this.refreshAccessTokenAsync(),await this.requestAsync(e,!0)}throw r}return o}async refreshAccessTokenAsync(){let e=await this.externalAccountAuthorizedUserHandler.refreshToken(this.refreshToken);return this.cachedAccessToken={access_token:e.access_token,expiry_date:new Date().getTime()+e.expires_in*1e3,res:e.res},e.refresh_token!==void 0&&(this.refreshToken=e.refresh_token),this.cachedAccessToken}isExpired(e){let n=new Date().getTime();return e.expiry_date?n>=e.expiry_date-this.eagerRefreshThresholdMillis:!1}};hn.ExternalAccountAuthorizedUserClient=tl});var pf=b(et=>{"use strict";p();Object.defineProperty(et,"__esModule",{value:!0});et.GoogleAuth=et.GoogleAuthExceptionMessages=void 0;var KT=J("child_process"),oo=J("fs"),JT=ye(),ro=Wn(),WT=J("os"),ol=J("path"),YT=Yn(),zT=$s(),XT=Js(),QT=Ws(),mn=Ea(),cf=_a(),gn=Aa(),ZT=ja(),io=Pt(),rl=xe(),df=nl(),ff=Qe();et.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.
|
|
27
|
+
To learn more about authentication and Google APIs, visit:
|
|
28
|
+
https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment.
|
|
29
|
+
To learn more about authentication and Google APIs, visit:
|
|
30
|
+
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.
|
|
31
|
+
To learn more about Universe Domain retrieval, visit:
|
|
32
|
+
https://cloud.google.com/compute/docs/metadata/predefined-metadata-keys`};var il=class{checkIsGCE=void 0;useJWTAccessWithScope;defaultServicePath;get isGCE(){return this.checkIsGCE}_findProjectIdPromise;_cachedProjectId;jsonContent=null;apiKey;cachedCredential=null;#e=null;defaultScopes;keyFilename;scopes;clientOptions={};constructor(e={}){if(this._cachedProjectId=e.projectId||null,this.cachedCredential=e.authClient||null,this.keyFilename=e.keyFilename||e.keyFile,this.scopes=e.scopes,this.clientOptions=e.clientOptions||{},this.jsonContent=e.credentials||null,this.apiKey=e.apiKey||this.clientOptions.apiKey||null,this.apiKey&&(this.jsonContent||this.clientOptions.credentials))throw new RangeError(et.GoogleAuthExceptionMessages.API_KEY_WITH_CREDENTIALS);e.universeDomain&&(this.clientOptions.universeDomain=e.universeDomain)}setGapicJWTValues(e){e.defaultServicePath=this.defaultServicePath,e.useJWTAccessWithScope=this.useJWTAccessWithScope,e.defaultScopes=this.defaultScopes}getProjectId(e){if(e)this.getProjectIdAsync().then(n=>e(null,n),e);else return this.getProjectIdAsync()}async getProjectIdOptional(){try{return await this.getProjectId()}catch(e){if(e instanceof Error&&e.message===et.GoogleAuthExceptionMessages.NO_PROJECT_ID_FOUND)return null;throw e}}async findAndCacheProjectId(){let e=null;if(e||=await this.getProductionProjectId(),e||=await this.getFileProjectId(),e||=await this.getDefaultServiceProjectId(),e||=await this.getGCEProjectId(),e||=await this.getExternalAccountClientProjectId(),e)return this._cachedProjectId=e,e;throw new Error(et.GoogleAuthExceptionMessages.NO_PROJECT_ID_FOUND)}async getProjectIdAsync(){return this._cachedProjectId?this._cachedProjectId:(this._findProjectIdPromise||(this._findProjectIdPromise=this.findAndCacheProjectId()),this._findProjectIdPromise)}async getUniverseDomainFromMetadataServer(){let e;try{e=await ro.universe("universe-domain"),e||=rl.DEFAULT_UNIVERSE}catch(n){if(n&&n?.response?.status===404)e=rl.DEFAULT_UNIVERSE;else throw n}return e}async getUniverseDomain(){let e=(0,ff.originalOrCamelOptions)(this.clientOptions).get("universe_domain");try{e??=(await this.getClient()).universeDomain}catch{e??=rl.DEFAULT_UNIVERSE}return e}getAnyScopes(){return this.scopes||this.defaultScopes}getApplicationDefault(e={},n){let o;if(typeof e=="function"?n=e:o=e,n)this.getApplicationDefaultAsync(o).then(r=>n(null,r.credential,r.projectId),n);else return this.getApplicationDefaultAsync(o)}async getApplicationDefaultAsync(e={}){if(this.cachedCredential)return await this.#t(this.cachedCredential,null);let n;if(n=await this._tryGetApplicationCredentialsFromEnvironmentVariable(e),n)return n instanceof mn.JWT?n.scopes=this.scopes:n instanceof io.BaseExternalAccountClient&&(n.scopes=this.getAnyScopes()),await this.#t(n);if(n=await this._tryGetApplicationCredentialsFromWellKnownFile(e),n)return n instanceof mn.JWT?n.scopes=this.scopes:n instanceof io.BaseExternalAccountClient&&(n.scopes=this.getAnyScopes()),await this.#t(n);if(await this._checkIsGCE())return e.scopes=this.getAnyScopes(),await this.#t(new zT.Compute(e));throw new Error(et.GoogleAuthExceptionMessages.NO_ADC_FOUND)}async#t(e,n=process.env.GOOGLE_CLOUD_QUOTA_PROJECT||null){let o=await this.getProjectIdOptional();return n&&(e.quotaProjectId=n),this.cachedCredential=e,{credential:e,projectId:o}}async _checkIsGCE(){return this.checkIsGCE===void 0&&(this.checkIsGCE=ro.getGCPResidency()||await ro.isAvailable()),this.checkIsGCE}async _tryGetApplicationCredentialsFromEnvironmentVariable(e){let n=process.env.GOOGLE_APPLICATION_CREDENTIALS||process.env.google_application_credentials;if(!n||n.length===0)return null;try{return this._getApplicationCredentialsFromFilePath(n,e)}catch(o){throw o instanceof Error&&(o.message=`Unable to read the credential file specified by the GOOGLE_APPLICATION_CREDENTIALS environment variable: ${o.message}`),o}}async _tryGetApplicationCredentialsFromWellKnownFile(e){let n=null;if(this._isWindows())n=process.env.APPDATA;else{let r=process.env.HOME;r&&(n=ol.join(r,".config"))}return n&&(n=ol.join(n,"gcloud","application_default_credentials.json"),oo.existsSync(n)||(n=null)),n?await this._getApplicationCredentialsFromFilePath(n,e):null}async _getApplicationCredentialsFromFilePath(e,n={}){if(!e||e.length===0)throw new Error("The file path is invalid.");try{if(e=oo.realpathSync(e),!oo.lstatSync(e).isFile())throw new Error}catch(r){throw r instanceof Error&&(r.message=`The file at ${e} does not exist, or it is not a file. ${r.message}`),r}let o=oo.createReadStream(e);return this.fromStream(o,n)}fromImpersonatedJSON(e){if(!e)throw new Error("Must pass in a JSON object containing an impersonated refresh token");if(e.type!==gn.IMPERSONATED_ACCOUNT_TYPE)throw new Error(`The incoming JSON object does not have the "${gn.IMPERSONATED_ACCOUNT_TYPE}" type`);if(!e.source_credentials)throw new Error("The incoming JSON object does not contain a source_credentials field");if(!e.service_account_impersonation_url)throw new Error("The incoming JSON object does not contain a service_account_impersonation_url field");let n=this.fromJSON(e.source_credentials);if(e.service_account_impersonation_url?.length>256)throw new RangeError(`Target principal is too long: ${e.service_account_impersonation_url}`);let o=/(?<target>[^/]+):(generateAccessToken|generateIdToken)$/.exec(e.service_account_impersonation_url)?.groups?.target;if(!o)throw new RangeError(`Cannot extract target principal from ${e.service_account_impersonation_url}`);let r=(this.scopes||e.scopes||this.defaultScopes)??[];return new gn.Impersonated({...e,sourceClient:n,targetPrincipal:o,targetScopes:Array.isArray(r)?r:[r]})}fromJSON(e,n={}){let o,r=(0,ff.originalOrCamelOptions)(n).get("universe_domain");return e.type===cf.USER_REFRESH_ACCOUNT_TYPE?(o=new cf.UserRefreshClient(n),o.fromJSON(e)):e.type===gn.IMPERSONATED_ACCOUNT_TYPE?o=this.fromImpersonatedJSON(e):e.type===io.EXTERNAL_ACCOUNT_TYPE?(o=ZT.ExternalAccountClient.fromJSON({...e,...n}),o.scopes=this.getAnyScopes()):e.type===df.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE?o=new df.ExternalAccountAuthorizedUserClient({...e,...n}):(n.scopes=this.scopes,o=new mn.JWT(n),this.setGapicJWTValues(o),o.fromJSON(e)),r&&(o.universeDomain=r),o}_cacheClientFromJSON(e,n){let o=this.fromJSON(e,n);return this.jsonContent=e,this.cachedCredential=o,o}fromStream(e,n={},o){let r={};if(typeof n=="function"?o=n:r=n,o)this.fromStreamAsync(e,r).then(i=>o(null,i),o);else return this.fromStreamAsync(e,r)}fromStreamAsync(e,n){return new Promise((o,r)=>{if(!e)throw new Error("Must pass in a stream containing the Google auth settings.");let i=[];e.setEncoding("utf8").on("error",r).on("data",s=>i.push(s)).on("end",()=>{try{try{let s=JSON.parse(i.join("")),a=this._cacheClientFromJSON(s,n);return o(a)}catch(s){if(!this.keyFilename)throw s;let a=new mn.JWT({...this.clientOptions,keyFile:this.keyFilename});return this.cachedCredential=a,this.setGapicJWTValues(a),o(a)}}catch(s){return r(s)}})})}fromAPIKey(e,n={}){return new mn.JWT({...n,apiKey:e})}_isWindows(){let e=WT.platform();return!!(e&&e.length>=3&&e.substring(0,3).toLowerCase()==="win")}async getDefaultServiceProjectId(){return new Promise(e=>{(0,KT.exec)("gcloud config config-helper --format json",(n,o)=>{if(!n&&o)try{let r=JSON.parse(o).configuration.properties.core.project;e(r);return}catch{}e(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 n=await this.getClient();if(n&&n.projectId)return n.projectId}let e=await this._tryGetApplicationCredentialsFromEnvironmentVariable();return e?e.projectId:null}async getExternalAccountClientProjectId(){return!this.jsonContent||this.jsonContent.type!==io.EXTERNAL_ACCOUNT_TYPE?null:await(await this.getClient()).getProjectId()}async getGCEProjectId(){try{return await ro.project("project-id")}catch{return null}}getCredentials(e){if(e)this.getCredentialsAsync().then(n=>e(null,n),e);else return this.getCredentialsAsync()}async getCredentialsAsync(){let e=await this.getClient();if(e instanceof gn.Impersonated)return{client_email:e.getTargetPrincipal()};if(e instanceof io.BaseExternalAccountClient){let n=e.getServiceAccountEmail();if(n)return{client_email:n,universe_domain:e.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[n,o]=await Promise.all([ro.instance("service-accounts/default/email"),this.getUniverseDomain()]);return{client_email:n,universe_domain:o}}throw new Error(et.GoogleAuthExceptionMessages.NO_CREDENTIALS_FOUND)}async getClient(){if(this.cachedCredential)return this.cachedCredential;this.#e=this.#e||this.#n();try{return await this.#e}finally{this.#e=null}}async#n(){if(this.jsonContent)return this._cacheClientFromJSON(this.jsonContent,this.clientOptions);if(this.keyFilename){let e=ol.resolve(this.keyFilename),n=oo.createReadStream(e);return await this.fromStreamAsync(n,this.clientOptions)}else if(this.apiKey){let e=await this.fromAPIKey(this.apiKey,this.clientOptions);e.scopes=this.scopes;let{credential:n}=await this.#t(e);return n}else{let{credential:e}=await this.getApplicationDefaultAsync(this.clientOptions);return e}}async getIdTokenClient(e){let n=await this.getClient();if(!("fetchIdToken"in n))throw new 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 XT.IdTokenClient({targetAudience:e,idTokenProvider:n})}async getAccessToken(){return(await(await this.getClient()).getAccessToken()).token}async getRequestHeaders(e){return(await this.getClient()).getRequestHeaders(e)}async authorizeRequest(e={}){let n=e.url,r=await(await this.getClient()).getRequestHeaders(n);return e.headers=JT.Gaxios.mergeHeaders(e.headers,r),e}async fetch(...e){return(await this.getClient()).fetch(...e)}async request(e){return(await this.getClient()).request(e)}getEnv(){return(0,QT.getEnv)()}async sign(e,n){let o=await this.getClient(),r=await this.getUniverseDomain();if(n=n||`https://iamcredentials.${r}/v1/projects/-/serviceAccounts/`,o instanceof gn.Impersonated)return(await o.sign(e)).signedBlob;let i=(0,YT.createCrypto)();if(o instanceof mn.JWT&&o.key)return await i.sign(o.key,e);let s=await this.getCredentials();if(!s.client_email)throw new Error("Cannot sign data without `client_email`.");return this.signBlob(i,s.client_email,e,n)}async signBlob(e,n,o,r){let i=new URL(r+`${n}:signBlob`);return(await this.request({method:"POST",url:i.href,data:{payload:e.encodeBase64StringUtf8(o)},retry:!0,retryConfig:{httpMethodsToRetry:["POST"]}})).data.signedBlob}};et.GoogleAuth=il});var hf=b(Br=>{"use strict";p();Object.defineProperty(Br,"__esModule",{value:!0});Br.IAMAuth=void 0;var sl=class{selector;token;constructor(e,n){this.selector=e,this.token=n,this.selector=e,this.token=n}getRequestHeaders(){return{"x-goog-iam-authority-selector":this.selector,"x-goog-iam-authorization-token":this.token}}};Br.IAMAuth=sl});var mf=b(ct=>{"use strict";p();Object.defineProperty(ct,"__esModule",{value:!0});ct.DownscopedClient=ct.EXPIRATION_TIME_OFFSET=ct.MAX_ACCESS_BOUNDARY_RULES_COUNT=void 0;var jT=ye(),e_=J("stream"),al=xe(),t_=Cr(),n_="urn:ietf:params:oauth:grant-type:token-exchange",o_="urn:ietf:params:oauth:token-type:access_token",r_="urn:ietf:params:oauth:token-type:access_token";ct.MAX_ACCESS_BOUNDARY_RULES_COUNT=10;ct.EXPIRATION_TIME_OFFSET=5*60*1e3;var ll=class extends al.AuthClient{authClient;credentialAccessBoundary;cachedDownscopedAccessToken;stsCredential;constructor(e,n={accessBoundary:{accessBoundaryRules:[]}}){if(super(e instanceof al.AuthClient?{}:e),e instanceof al.AuthClient?(this.authClient=e,this.credentialAccessBoundary=n):(this.authClient=e.authClient,this.credentialAccessBoundary=e.credentialAccessBoundary),this.credentialAccessBoundary.accessBoundary.accessBoundaryRules.length===0)throw new Error("At least one access boundary rule needs to be defined.");if(this.credentialAccessBoundary.accessBoundary.accessBoundaryRules.length>ct.MAX_ACCESS_BOUNDARY_RULES_COUNT)throw new Error(`The provided access boundary has more than ${ct.MAX_ACCESS_BOUNDARY_RULES_COUNT} access boundary rules.`);for(let o of this.credentialAccessBoundary.accessBoundary.accessBoundaryRules)if(o.availablePermissions.length===0)throw new Error("At least one permission should be defined in access boundary rules.");this.stsCredential=new t_.StsCredentials({tokenExchangeEndpoint:`https://sts.${this.universeDomain}/v1/token`}),this.cachedDownscopedAccessToken=null}setCredentials(e){if(!e.expiry_date)throw new Error("The access token expiry_date field is missing in the provided credentials.");super.setCredentials(e),this.cachedDownscopedAccessToken=e}async getAccessToken(){return(!this.cachedDownscopedAccessToken||this.isExpired(this.cachedDownscopedAccessToken))&&await this.refreshAccessTokenAsync(),{token:this.cachedDownscopedAccessToken.access_token,expirationTime:this.cachedDownscopedAccessToken.expiry_date,res:this.cachedDownscopedAccessToken.res}}async getRequestHeaders(){let e=await this.getAccessToken(),n=new Headers({authorization:`Bearer ${e.token}`});return this.addSharedMetadataHeaders(n)}request(e,n){if(n)this.requestAsync(e).then(o=>n(null,o),o=>n(o,o.response));else return this.requestAsync(e)}async requestAsync(e,n=!1){let o;try{let r=await this.getRequestHeaders();e.headers=jT.Gaxios.mergeHeaders(e.headers),this.addUserProjectAndAuthHeaders(e.headers,r),o=await this.transporter.request(e)}catch(r){let i=r.response;if(i){let s=i.status,a=i.config.data instanceof e_.Readable;if(!n&&(s===401||s===403)&&!a&&this.forceRefreshOnFailure)return await this.refreshAccessTokenAsync(),await this.requestAsync(e,!0)}throw r}return o}async refreshAccessTokenAsync(){let e=(await this.authClient.getAccessToken()).token,n={grantType:n_,requestedTokenType:o_,subjectToken:e,subjectTokenType:r_},o=await this.stsCredential.exchangeToken(n,void 0,this.credentialAccessBoundary),r=this.authClient.credentials?.expiry_date||null,i=o.expires_in?new Date().getTime()+o.expires_in*1e3:r;return this.cachedDownscopedAccessToken={access_token:o.access_token,expiry_date:i,res:o.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(e){let n=new Date().getTime();return e.expiry_date?n>=e.expiry_date-this.eagerRefreshThresholdMillis:!1}};ct.DownscopedClient=ll});var gf=b(Hr=>{"use strict";p();Object.defineProperty(Hr,"__esModule",{value:!0});Hr.PassThroughClient=void 0;var i_=xe(),ul=class extends i_.AuthClient{async request(e){return this.transporter.request(e)}async getAccessToken(){return{}}async getRequestHeaders(){return new Headers}};Hr.PassThroughClient=ul});var Cf=b(G=>{"use strict";p();var s_=G&&G.__createBinding||(Object.create?function(t,e,n,o){o===void 0&&(o=n);var r=Object.getOwnPropertyDescriptor(e,n);(!r||("get"in r?!e.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,o,r)}:function(t,e,n,o){o===void 0&&(o=n),t[o]=e[n]}),a_=G&&G.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&s_(e,t,n)};Object.defineProperty(G,"__esModule",{value:!0});G.GoogleAuth=G.auth=G.PassThroughClient=G.ExternalAccountAuthorizedUserClient=G.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE=G.ExecutableError=G.PluggableAuthClient=G.DownscopedClient=G.BaseExternalAccountClient=G.ExternalAccountClient=G.IdentityPoolClient=G.AwsRequestSigner=G.AwsClient=G.UserRefreshClient=G.LoginTicket=G.ClientAuthentication=G.OAuth2Client=G.CodeChallengeMethod=G.Impersonated=G.JWT=G.JWTAccess=G.IdTokenClient=G.IAMAuth=G.GCPEnv=G.Compute=G.DEFAULT_UNIVERSE=G.AuthClient=G.gaxios=G.gcpMetadata=void 0;var yf=pf();Object.defineProperty(G,"GoogleAuth",{enumerable:!0,get:function(){return yf.GoogleAuth}});G.gcpMetadata=Wn();G.gaxios=ye();var Ef=xe();Object.defineProperty(G,"AuthClient",{enumerable:!0,get:function(){return Ef.AuthClient}});Object.defineProperty(G,"DEFAULT_UNIVERSE",{enumerable:!0,get:function(){return Ef.DEFAULT_UNIVERSE}});var l_=$s();Object.defineProperty(G,"Compute",{enumerable:!0,get:function(){return l_.Compute}});var u_=Ws();Object.defineProperty(G,"GCPEnv",{enumerable:!0,get:function(){return u_.GCPEnv}});var c_=hf();Object.defineProperty(G,"IAMAuth",{enumerable:!0,get:function(){return c_.IAMAuth}});var d_=Js();Object.defineProperty(G,"IdTokenClient",{enumerable:!0,get:function(){return d_.IdTokenClient}});var f_=ga();Object.defineProperty(G,"JWTAccess",{enumerable:!0,get:function(){return f_.JWTAccess}});var p_=Ea();Object.defineProperty(G,"JWT",{enumerable:!0,get:function(){return p_.JWT}});var h_=Aa();Object.defineProperty(G,"Impersonated",{enumerable:!0,get:function(){return h_.Impersonated}});var cl=Bt();Object.defineProperty(G,"CodeChallengeMethod",{enumerable:!0,get:function(){return cl.CodeChallengeMethod}});Object.defineProperty(G,"OAuth2Client",{enumerable:!0,get:function(){return cl.OAuth2Client}});Object.defineProperty(G,"ClientAuthentication",{enumerable:!0,get:function(){return cl.ClientAuthentication}});var m_=qs();Object.defineProperty(G,"LoginTicket",{enumerable:!0,get:function(){return m_.LoginTicket}});var g_=_a();Object.defineProperty(G,"UserRefreshClient",{enumerable:!0,get:function(){return g_.UserRefreshClient}});var y_=Ba();Object.defineProperty(G,"AwsClient",{enumerable:!0,get:function(){return y_.AwsClient}});var E_=Ga();Object.defineProperty(G,"AwsRequestSigner",{enumerable:!0,get:function(){return E_.AwsRequestSigner}});var T_=Ua();Object.defineProperty(G,"IdentityPoolClient",{enumerable:!0,get:function(){return T_.IdentityPoolClient}});var __=ja();Object.defineProperty(G,"ExternalAccountClient",{enumerable:!0,get:function(){return __.ExternalAccountClient}});var C_=Pt();Object.defineProperty(G,"BaseExternalAccountClient",{enumerable:!0,get:function(){return C_.BaseExternalAccountClient}});var A_=mf();Object.defineProperty(G,"DownscopedClient",{enumerable:!0,get:function(){return A_.DownscopedClient}});var Tf=Qa();Object.defineProperty(G,"PluggableAuthClient",{enumerable:!0,get:function(){return Tf.PluggableAuthClient}});Object.defineProperty(G,"ExecutableError",{enumerable:!0,get:function(){return Tf.ExecutableError}});var _f=nl();Object.defineProperty(G,"EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE",{enumerable:!0,get:function(){return _f.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE}});Object.defineProperty(G,"ExternalAccountAuthorizedUserClient",{enumerable:!0,get:function(){return _f.ExternalAccountAuthorizedUserClient}});var v_=gf();Object.defineProperty(G,"PassThroughClient",{enumerable:!0,get:function(){return v_.PassThroughClient}});a_(ha(),G);var S_=new yf.GoogleAuth;G.auth=S_});p();p();var Jp=Pu(Fu(),1),w_=Pu(Cf(),1);var Af;(function(t){t.OUTCOME_UNSPECIFIED="OUTCOME_UNSPECIFIED",t.OUTCOME_OK="OUTCOME_OK",t.OUTCOME_FAILED="OUTCOME_FAILED",t.OUTCOME_DEADLINE_EXCEEDED="OUTCOME_DEADLINE_EXCEEDED"})(Af||(Af={}));var vf;(function(t){t.LANGUAGE_UNSPECIFIED="LANGUAGE_UNSPECIFIED",t.PYTHON="PYTHON"})(vf||(vf={}));var Sf;(function(t){t.SCHEDULING_UNSPECIFIED="SCHEDULING_UNSPECIFIED",t.SILENT="SILENT",t.WHEN_IDLE="WHEN_IDLE",t.INTERRUPT="INTERRUPT"})(Sf||(Sf={}));var wf;(function(t){t.TYPE_UNSPECIFIED="TYPE_UNSPECIFIED",t.STRING="STRING",t.NUMBER="NUMBER",t.INTEGER="INTEGER",t.BOOLEAN="BOOLEAN",t.ARRAY="ARRAY",t.OBJECT="OBJECT",t.NULL="NULL"})(wf||(wf={}));var If;(function(t){t.ENVIRONMENT_UNSPECIFIED="ENVIRONMENT_UNSPECIFIED",t.ENVIRONMENT_BROWSER="ENVIRONMENT_BROWSER",t.ENVIRONMENT_MOBILE="ENVIRONMENT_MOBILE",t.ENVIRONMENT_DESKTOP="ENVIRONMENT_DESKTOP"})(If||(If={}));var Rf;(function(t){t.AUTH_TYPE_UNSPECIFIED="AUTH_TYPE_UNSPECIFIED",t.NO_AUTH="NO_AUTH",t.API_KEY_AUTH="API_KEY_AUTH",t.HTTP_BASIC_AUTH="HTTP_BASIC_AUTH",t.GOOGLE_SERVICE_ACCOUNT_AUTH="GOOGLE_SERVICE_ACCOUNT_AUTH",t.OAUTH="OAUTH",t.OIDC_AUTH="OIDC_AUTH"})(Rf||(Rf={}));var Pf;(function(t){t.HTTP_IN_UNSPECIFIED="HTTP_IN_UNSPECIFIED",t.HTTP_IN_QUERY="HTTP_IN_QUERY",t.HTTP_IN_HEADER="HTTP_IN_HEADER",t.HTTP_IN_PATH="HTTP_IN_PATH",t.HTTP_IN_BODY="HTTP_IN_BODY",t.HTTP_IN_COOKIE="HTTP_IN_COOKIE"})(Pf||(Pf={}));var Mf;(function(t){t.API_SPEC_UNSPECIFIED="API_SPEC_UNSPECIFIED",t.SIMPLE_SEARCH="SIMPLE_SEARCH",t.ELASTIC_SEARCH="ELASTIC_SEARCH"})(Mf||(Mf={}));var kf;(function(t){t.PHISH_BLOCK_THRESHOLD_UNSPECIFIED="PHISH_BLOCK_THRESHOLD_UNSPECIFIED",t.BLOCK_LOW_AND_ABOVE="BLOCK_LOW_AND_ABOVE",t.BLOCK_MEDIUM_AND_ABOVE="BLOCK_MEDIUM_AND_ABOVE",t.BLOCK_HIGH_AND_ABOVE="BLOCK_HIGH_AND_ABOVE",t.BLOCK_HIGHER_AND_ABOVE="BLOCK_HIGHER_AND_ABOVE",t.BLOCK_VERY_HIGH_AND_ABOVE="BLOCK_VERY_HIGH_AND_ABOVE",t.BLOCK_ONLY_EXTREMELY_HIGH="BLOCK_ONLY_EXTREMELY_HIGH"})(kf||(kf={}));var xf;(function(t){t.UNSPECIFIED="UNSPECIFIED",t.BLOCKING="BLOCKING",t.NON_BLOCKING="NON_BLOCKING"})(xf||(xf={}));var Nf;(function(t){t.MODE_UNSPECIFIED="MODE_UNSPECIFIED",t.MODE_DYNAMIC="MODE_DYNAMIC"})(Nf||(Nf={}));var Df;(function(t){t.MODE_UNSPECIFIED="MODE_UNSPECIFIED",t.AUTO="AUTO",t.ANY="ANY",t.NONE="NONE",t.VALIDATED="VALIDATED"})(Df||(Df={}));var bf;(function(t){t.THINKING_LEVEL_UNSPECIFIED="THINKING_LEVEL_UNSPECIFIED",t.MINIMAL="MINIMAL",t.LOW="LOW",t.MEDIUM="MEDIUM",t.HIGH="HIGH"})(bf||(bf={}));var Of;(function(t){t.DONT_ALLOW="DONT_ALLOW",t.ALLOW_ADULT="ALLOW_ADULT",t.ALLOW_ALL="ALLOW_ALL"})(Of||(Of={}));var Uf;(function(t){t.PROMINENT_PEOPLE_UNSPECIFIED="PROMINENT_PEOPLE_UNSPECIFIED",t.ALLOW_PROMINENT_PEOPLE="ALLOW_PROMINENT_PEOPLE",t.BLOCK_PROMINENT_PEOPLE="BLOCK_PROMINENT_PEOPLE"})(Uf||(Uf={}));var Lf;(function(t){t.HARM_CATEGORY_UNSPECIFIED="HARM_CATEGORY_UNSPECIFIED",t.HARM_CATEGORY_HARASSMENT="HARM_CATEGORY_HARASSMENT",t.HARM_CATEGORY_HATE_SPEECH="HARM_CATEGORY_HATE_SPEECH",t.HARM_CATEGORY_SEXUALLY_EXPLICIT="HARM_CATEGORY_SEXUALLY_EXPLICIT",t.HARM_CATEGORY_DANGEROUS_CONTENT="HARM_CATEGORY_DANGEROUS_CONTENT",t.HARM_CATEGORY_CIVIC_INTEGRITY="HARM_CATEGORY_CIVIC_INTEGRITY",t.HARM_CATEGORY_IMAGE_HATE="HARM_CATEGORY_IMAGE_HATE",t.HARM_CATEGORY_IMAGE_DANGEROUS_CONTENT="HARM_CATEGORY_IMAGE_DANGEROUS_CONTENT",t.HARM_CATEGORY_IMAGE_HARASSMENT="HARM_CATEGORY_IMAGE_HARASSMENT",t.HARM_CATEGORY_IMAGE_SEXUALLY_EXPLICIT="HARM_CATEGORY_IMAGE_SEXUALLY_EXPLICIT",t.HARM_CATEGORY_JAILBREAK="HARM_CATEGORY_JAILBREAK"})(Lf||(Lf={}));var Gf;(function(t){t.HARM_BLOCK_METHOD_UNSPECIFIED="HARM_BLOCK_METHOD_UNSPECIFIED",t.SEVERITY="SEVERITY",t.PROBABILITY="PROBABILITY"})(Gf||(Gf={}));var Ff;(function(t){t.HARM_BLOCK_THRESHOLD_UNSPECIFIED="HARM_BLOCK_THRESHOLD_UNSPECIFIED",t.BLOCK_LOW_AND_ABOVE="BLOCK_LOW_AND_ABOVE",t.BLOCK_MEDIUM_AND_ABOVE="BLOCK_MEDIUM_AND_ABOVE",t.BLOCK_ONLY_HIGH="BLOCK_ONLY_HIGH",t.BLOCK_NONE="BLOCK_NONE",t.OFF="OFF"})(Ff||(Ff={}));var ie;(function(t){t.FINISH_REASON_UNSPECIFIED="FINISH_REASON_UNSPECIFIED",t.STOP="STOP",t.MAX_TOKENS="MAX_TOKENS",t.SAFETY="SAFETY",t.RECITATION="RECITATION",t.LANGUAGE="LANGUAGE",t.OTHER="OTHER",t.BLOCKLIST="BLOCKLIST",t.PROHIBITED_CONTENT="PROHIBITED_CONTENT",t.SPII="SPII",t.MALFORMED_FUNCTION_CALL="MALFORMED_FUNCTION_CALL",t.IMAGE_SAFETY="IMAGE_SAFETY",t.UNEXPECTED_TOOL_CALL="UNEXPECTED_TOOL_CALL",t.IMAGE_PROHIBITED_CONTENT="IMAGE_PROHIBITED_CONTENT",t.NO_IMAGE="NO_IMAGE",t.IMAGE_RECITATION="IMAGE_RECITATION",t.IMAGE_OTHER="IMAGE_OTHER"})(ie||(ie={}));var qf;(function(t){t.HARM_PROBABILITY_UNSPECIFIED="HARM_PROBABILITY_UNSPECIFIED",t.NEGLIGIBLE="NEGLIGIBLE",t.LOW="LOW",t.MEDIUM="MEDIUM",t.HIGH="HIGH"})(qf||(qf={}));var Bf;(function(t){t.HARM_SEVERITY_UNSPECIFIED="HARM_SEVERITY_UNSPECIFIED",t.HARM_SEVERITY_NEGLIGIBLE="HARM_SEVERITY_NEGLIGIBLE",t.HARM_SEVERITY_LOW="HARM_SEVERITY_LOW",t.HARM_SEVERITY_MEDIUM="HARM_SEVERITY_MEDIUM",t.HARM_SEVERITY_HIGH="HARM_SEVERITY_HIGH"})(Bf||(Bf={}));var Hf;(function(t){t.URL_RETRIEVAL_STATUS_UNSPECIFIED="URL_RETRIEVAL_STATUS_UNSPECIFIED",t.URL_RETRIEVAL_STATUS_SUCCESS="URL_RETRIEVAL_STATUS_SUCCESS",t.URL_RETRIEVAL_STATUS_ERROR="URL_RETRIEVAL_STATUS_ERROR",t.URL_RETRIEVAL_STATUS_PAYWALL="URL_RETRIEVAL_STATUS_PAYWALL",t.URL_RETRIEVAL_STATUS_UNSAFE="URL_RETRIEVAL_STATUS_UNSAFE"})(Hf||(Hf={}));var Vf;(function(t){t.BLOCKED_REASON_UNSPECIFIED="BLOCKED_REASON_UNSPECIFIED",t.SAFETY="SAFETY",t.OTHER="OTHER",t.BLOCKLIST="BLOCKLIST",t.PROHIBITED_CONTENT="PROHIBITED_CONTENT",t.IMAGE_SAFETY="IMAGE_SAFETY",t.MODEL_ARMOR="MODEL_ARMOR",t.JAILBREAK="JAILBREAK"})(Vf||(Vf={}));var $f;(function(t){t.TRAFFIC_TYPE_UNSPECIFIED="TRAFFIC_TYPE_UNSPECIFIED",t.ON_DEMAND="ON_DEMAND",t.ON_DEMAND_PRIORITY="ON_DEMAND_PRIORITY",t.ON_DEMAND_FLEX="ON_DEMAND_FLEX",t.PROVISIONED_THROUGHPUT="PROVISIONED_THROUGHPUT"})($f||($f={}));var Kf;(function(t){t.MODALITY_UNSPECIFIED="MODALITY_UNSPECIFIED",t.TEXT="TEXT",t.IMAGE="IMAGE",t.AUDIO="AUDIO",t.VIDEO="VIDEO"})(Kf||(Kf={}));var Jf;(function(t){t.MODEL_STAGE_UNSPECIFIED="MODEL_STAGE_UNSPECIFIED",t.UNSTABLE_EXPERIMENTAL="UNSTABLE_EXPERIMENTAL",t.EXPERIMENTAL="EXPERIMENTAL",t.PREVIEW="PREVIEW",t.STABLE="STABLE",t.LEGACY="LEGACY",t.DEPRECATED="DEPRECATED",t.RETIRED="RETIRED"})(Jf||(Jf={}));var Wf;(function(t){t.MEDIA_RESOLUTION_UNSPECIFIED="MEDIA_RESOLUTION_UNSPECIFIED",t.MEDIA_RESOLUTION_LOW="MEDIA_RESOLUTION_LOW",t.MEDIA_RESOLUTION_MEDIUM="MEDIA_RESOLUTION_MEDIUM",t.MEDIA_RESOLUTION_HIGH="MEDIA_RESOLUTION_HIGH"})(Wf||(Wf={}));var Yf;(function(t){t.TUNING_MODE_UNSPECIFIED="TUNING_MODE_UNSPECIFIED",t.TUNING_MODE_FULL="TUNING_MODE_FULL",t.TUNING_MODE_PEFT_ADAPTER="TUNING_MODE_PEFT_ADAPTER"})(Yf||(Yf={}));var zf;(function(t){t.ADAPTER_SIZE_UNSPECIFIED="ADAPTER_SIZE_UNSPECIFIED",t.ADAPTER_SIZE_ONE="ADAPTER_SIZE_ONE",t.ADAPTER_SIZE_TWO="ADAPTER_SIZE_TWO",t.ADAPTER_SIZE_FOUR="ADAPTER_SIZE_FOUR",t.ADAPTER_SIZE_EIGHT="ADAPTER_SIZE_EIGHT",t.ADAPTER_SIZE_SIXTEEN="ADAPTER_SIZE_SIXTEEN",t.ADAPTER_SIZE_THIRTY_TWO="ADAPTER_SIZE_THIRTY_TWO"})(zf||(zf={}));var Xf;(function(t){t.JOB_STATE_UNSPECIFIED="JOB_STATE_UNSPECIFIED",t.JOB_STATE_QUEUED="JOB_STATE_QUEUED",t.JOB_STATE_PENDING="JOB_STATE_PENDING",t.JOB_STATE_RUNNING="JOB_STATE_RUNNING",t.JOB_STATE_SUCCEEDED="JOB_STATE_SUCCEEDED",t.JOB_STATE_FAILED="JOB_STATE_FAILED",t.JOB_STATE_CANCELLING="JOB_STATE_CANCELLING",t.JOB_STATE_CANCELLED="JOB_STATE_CANCELLED",t.JOB_STATE_PAUSED="JOB_STATE_PAUSED",t.JOB_STATE_EXPIRED="JOB_STATE_EXPIRED",t.JOB_STATE_UPDATING="JOB_STATE_UPDATING",t.JOB_STATE_PARTIALLY_SUCCEEDED="JOB_STATE_PARTIALLY_SUCCEEDED"})(Xf||(Xf={}));var Qf;(function(t){t.TUNING_JOB_STATE_UNSPECIFIED="TUNING_JOB_STATE_UNSPECIFIED",t.TUNING_JOB_STATE_WAITING_FOR_QUOTA="TUNING_JOB_STATE_WAITING_FOR_QUOTA",t.TUNING_JOB_STATE_PROCESSING_DATASET="TUNING_JOB_STATE_PROCESSING_DATASET",t.TUNING_JOB_STATE_WAITING_FOR_CAPACITY="TUNING_JOB_STATE_WAITING_FOR_CAPACITY",t.TUNING_JOB_STATE_TUNING="TUNING_JOB_STATE_TUNING",t.TUNING_JOB_STATE_POST_PROCESSING="TUNING_JOB_STATE_POST_PROCESSING"})(Qf||(Qf={}));var Zf;(function(t){t.AGGREGATION_METRIC_UNSPECIFIED="AGGREGATION_METRIC_UNSPECIFIED",t.AVERAGE="AVERAGE",t.MODE="MODE",t.STANDARD_DEVIATION="STANDARD_DEVIATION",t.VARIANCE="VARIANCE",t.MINIMUM="MINIMUM",t.MAXIMUM="MAXIMUM",t.MEDIAN="MEDIAN",t.PERCENTILE_P90="PERCENTILE_P90",t.PERCENTILE_P95="PERCENTILE_P95",t.PERCENTILE_P99="PERCENTILE_P99"})(Zf||(Zf={}));var jf;(function(t){t.PAIRWISE_CHOICE_UNSPECIFIED="PAIRWISE_CHOICE_UNSPECIFIED",t.BASELINE="BASELINE",t.CANDIDATE="CANDIDATE",t.TIE="TIE"})(jf||(jf={}));var ep;(function(t){t.TUNING_SPEED_UNSPECIFIED="TUNING_SPEED_UNSPECIFIED",t.REGULAR="REGULAR",t.FAST="FAST"})(ep||(ep={}));var tp;(function(t){t.TUNING_TASK_UNSPECIFIED="TUNING_TASK_UNSPECIFIED",t.TUNING_TASK_I2V="TUNING_TASK_I2V",t.TUNING_TASK_T2V="TUNING_TASK_T2V",t.TUNING_TASK_R2V="TUNING_TASK_R2V"})(tp||(tp={}));var np;(function(t){t.VIDEO_ORIENTATION_UNSPECIFIED="VIDEO_ORIENTATION_UNSPECIFIED",t.LANDSCAPE="LANDSCAPE",t.PORTRAIT="PORTRAIT"})(np||(np={}));var op;(function(t){t.STATE_UNSPECIFIED="STATE_UNSPECIFIED",t.STATE_PENDING="STATE_PENDING",t.STATE_ACTIVE="STATE_ACTIVE",t.STATE_FAILED="STATE_FAILED"})(op||(op={}));var rp;(function(t){t.MEDIA_RESOLUTION_UNSPECIFIED="MEDIA_RESOLUTION_UNSPECIFIED",t.MEDIA_RESOLUTION_LOW="MEDIA_RESOLUTION_LOW",t.MEDIA_RESOLUTION_MEDIUM="MEDIA_RESOLUTION_MEDIUM",t.MEDIA_RESOLUTION_HIGH="MEDIA_RESOLUTION_HIGH",t.MEDIA_RESOLUTION_ULTRA_HIGH="MEDIA_RESOLUTION_ULTRA_HIGH"})(rp||(rp={}));var ip;(function(t){t.TOOL_TYPE_UNSPECIFIED="TOOL_TYPE_UNSPECIFIED",t.GOOGLE_SEARCH_WEB="GOOGLE_SEARCH_WEB",t.GOOGLE_SEARCH_IMAGE="GOOGLE_SEARCH_IMAGE",t.URL_CONTEXT="URL_CONTEXT",t.GOOGLE_MAPS="GOOGLE_MAPS",t.FILE_SEARCH="FILE_SEARCH"})(ip||(ip={}));var sp;(function(t){t.COLLECTION="COLLECTION"})(sp||(sp={}));var ap;(function(t){t.UNSPECIFIED="unspecified",t.FLEX="flex",t.STANDARD="standard",t.PRIORITY="priority"})(ap||(ap={}));var lp;(function(t){t.FEATURE_SELECTION_PREFERENCE_UNSPECIFIED="FEATURE_SELECTION_PREFERENCE_UNSPECIFIED",t.PRIORITIZE_QUALITY="PRIORITIZE_QUALITY",t.BALANCED="BALANCED",t.PRIORITIZE_COST="PRIORITIZE_COST"})(lp||(lp={}));var up;(function(t){t.PREDICT="PREDICT",t.EMBED_CONTENT="EMBED_CONTENT"})(up||(up={}));var cp;(function(t){t.BLOCK_LOW_AND_ABOVE="BLOCK_LOW_AND_ABOVE",t.BLOCK_MEDIUM_AND_ABOVE="BLOCK_MEDIUM_AND_ABOVE",t.BLOCK_ONLY_HIGH="BLOCK_ONLY_HIGH",t.BLOCK_NONE="BLOCK_NONE"})(cp||(cp={}));var dp;(function(t){t.auto="auto",t.en="en",t.ja="ja",t.ko="ko",t.hi="hi",t.zh="zh",t.pt="pt",t.es="es"})(dp||(dp={}));var fp;(function(t){t.MASK_MODE_DEFAULT="MASK_MODE_DEFAULT",t.MASK_MODE_USER_PROVIDED="MASK_MODE_USER_PROVIDED",t.MASK_MODE_BACKGROUND="MASK_MODE_BACKGROUND",t.MASK_MODE_FOREGROUND="MASK_MODE_FOREGROUND",t.MASK_MODE_SEMANTIC="MASK_MODE_SEMANTIC"})(fp||(fp={}));var pp;(function(t){t.CONTROL_TYPE_DEFAULT="CONTROL_TYPE_DEFAULT",t.CONTROL_TYPE_CANNY="CONTROL_TYPE_CANNY",t.CONTROL_TYPE_SCRIBBLE="CONTROL_TYPE_SCRIBBLE",t.CONTROL_TYPE_FACE_MESH="CONTROL_TYPE_FACE_MESH"})(pp||(pp={}));var hp;(function(t){t.SUBJECT_TYPE_DEFAULT="SUBJECT_TYPE_DEFAULT",t.SUBJECT_TYPE_PERSON="SUBJECT_TYPE_PERSON",t.SUBJECT_TYPE_ANIMAL="SUBJECT_TYPE_ANIMAL",t.SUBJECT_TYPE_PRODUCT="SUBJECT_TYPE_PRODUCT"})(hp||(hp={}));var mp;(function(t){t.EDIT_MODE_DEFAULT="EDIT_MODE_DEFAULT",t.EDIT_MODE_INPAINT_REMOVAL="EDIT_MODE_INPAINT_REMOVAL",t.EDIT_MODE_INPAINT_INSERTION="EDIT_MODE_INPAINT_INSERTION",t.EDIT_MODE_OUTPAINT="EDIT_MODE_OUTPAINT",t.EDIT_MODE_CONTROLLED_EDITING="EDIT_MODE_CONTROLLED_EDITING",t.EDIT_MODE_STYLE="EDIT_MODE_STYLE",t.EDIT_MODE_BGSWAP="EDIT_MODE_BGSWAP",t.EDIT_MODE_PRODUCT_IMAGE="EDIT_MODE_PRODUCT_IMAGE"})(mp||(mp={}));var gp;(function(t){t.FOREGROUND="FOREGROUND",t.BACKGROUND="BACKGROUND",t.PROMPT="PROMPT",t.SEMANTIC="SEMANTIC",t.INTERACTIVE="INTERACTIVE"})(gp||(gp={}));var yp;(function(t){t.ASSET="ASSET",t.STYLE="STYLE"})(yp||(yp={}));var Ep;(function(t){t.INSERT="INSERT",t.REMOVE="REMOVE",t.REMOVE_STATIC="REMOVE_STATIC",t.OUTPAINT="OUTPAINT"})(Ep||(Ep={}));var Tp;(function(t){t.OPTIMIZED="OPTIMIZED",t.LOSSLESS="LOSSLESS"})(Tp||(Tp={}));var _p;(function(t){t.CROP="CROP",t.PAD="PAD"})(_p||(_p={}));var Cp;(function(t){t.SUPERVISED_FINE_TUNING="SUPERVISED_FINE_TUNING",t.PREFERENCE_TUNING="PREFERENCE_TUNING",t.DISTILLATION="DISTILLATION"})(Cp||(Cp={}));var Ap;(function(t){t.STATE_UNSPECIFIED="STATE_UNSPECIFIED",t.PROCESSING="PROCESSING",t.ACTIVE="ACTIVE",t.FAILED="FAILED"})(Ap||(Ap={}));var vp;(function(t){t.SOURCE_UNSPECIFIED="SOURCE_UNSPECIFIED",t.UPLOADED="UPLOADED",t.GENERATED="GENERATED",t.REGISTERED="REGISTERED"})(vp||(vp={}));var Sp;(function(t){t.TURN_COMPLETE_REASON_UNSPECIFIED="TURN_COMPLETE_REASON_UNSPECIFIED",t.MALFORMED_FUNCTION_CALL="MALFORMED_FUNCTION_CALL",t.RESPONSE_REJECTED="RESPONSE_REJECTED",t.NEED_MORE_INPUT="NEED_MORE_INPUT",t.PROHIBITED_INPUT_CONTENT="PROHIBITED_INPUT_CONTENT",t.IMAGE_PROHIBITED_INPUT_CONTENT="IMAGE_PROHIBITED_INPUT_CONTENT",t.INPUT_TEXT_CONTAIN_PROMINENT_PERSON_PROHIBITED="INPUT_TEXT_CONTAIN_PROMINENT_PERSON_PROHIBITED",t.INPUT_IMAGE_CELEBRITY="INPUT_IMAGE_CELEBRITY",t.INPUT_IMAGE_PHOTO_REALISTIC_CHILD_PROHIBITED="INPUT_IMAGE_PHOTO_REALISTIC_CHILD_PROHIBITED",t.INPUT_TEXT_NCII_PROHIBITED="INPUT_TEXT_NCII_PROHIBITED",t.INPUT_OTHER="INPUT_OTHER",t.INPUT_IP_PROHIBITED="INPUT_IP_PROHIBITED",t.BLOCKLIST="BLOCKLIST",t.UNSAFE_PROMPT_FOR_IMAGE_GENERATION="UNSAFE_PROMPT_FOR_IMAGE_GENERATION",t.GENERATED_IMAGE_SAFETY="GENERATED_IMAGE_SAFETY",t.GENERATED_CONTENT_SAFETY="GENERATED_CONTENT_SAFETY",t.GENERATED_AUDIO_SAFETY="GENERATED_AUDIO_SAFETY",t.GENERATED_VIDEO_SAFETY="GENERATED_VIDEO_SAFETY",t.GENERATED_CONTENT_PROHIBITED="GENERATED_CONTENT_PROHIBITED",t.GENERATED_CONTENT_BLOCKLIST="GENERATED_CONTENT_BLOCKLIST",t.GENERATED_IMAGE_PROHIBITED="GENERATED_IMAGE_PROHIBITED",t.GENERATED_IMAGE_CELEBRITY="GENERATED_IMAGE_CELEBRITY",t.GENERATED_IMAGE_PROMINENT_PEOPLE_DETECTED_BY_REWRITER="GENERATED_IMAGE_PROMINENT_PEOPLE_DETECTED_BY_REWRITER",t.GENERATED_IMAGE_IDENTIFIABLE_PEOPLE="GENERATED_IMAGE_IDENTIFIABLE_PEOPLE",t.GENERATED_IMAGE_MINORS="GENERATED_IMAGE_MINORS",t.OUTPUT_IMAGE_IP_PROHIBITED="OUTPUT_IMAGE_IP_PROHIBITED",t.GENERATED_OTHER="GENERATED_OTHER",t.MAX_REGENERATION_REACHED="MAX_REGENERATION_REACHED"})(Sp||(Sp={}));var wp;(function(t){t.MODALITY_UNSPECIFIED="MODALITY_UNSPECIFIED",t.TEXT="TEXT",t.IMAGE="IMAGE",t.VIDEO="VIDEO",t.AUDIO="AUDIO",t.DOCUMENT="DOCUMENT"})(wp||(wp={}));var Ip;(function(t){t.VAD_SIGNAL_TYPE_UNSPECIFIED="VAD_SIGNAL_TYPE_UNSPECIFIED",t.VAD_SIGNAL_TYPE_SOS="VAD_SIGNAL_TYPE_SOS",t.VAD_SIGNAL_TYPE_EOS="VAD_SIGNAL_TYPE_EOS"})(Ip||(Ip={}));var Rp;(function(t){t.TYPE_UNSPECIFIED="TYPE_UNSPECIFIED",t.ACTIVITY_START="ACTIVITY_START",t.ACTIVITY_END="ACTIVITY_END"})(Rp||(Rp={}));var Pp;(function(t){t.START_SENSITIVITY_UNSPECIFIED="START_SENSITIVITY_UNSPECIFIED",t.START_SENSITIVITY_HIGH="START_SENSITIVITY_HIGH",t.START_SENSITIVITY_LOW="START_SENSITIVITY_LOW"})(Pp||(Pp={}));var Mp;(function(t){t.END_SENSITIVITY_UNSPECIFIED="END_SENSITIVITY_UNSPECIFIED",t.END_SENSITIVITY_HIGH="END_SENSITIVITY_HIGH",t.END_SENSITIVITY_LOW="END_SENSITIVITY_LOW"})(Mp||(Mp={}));var kp;(function(t){t.ACTIVITY_HANDLING_UNSPECIFIED="ACTIVITY_HANDLING_UNSPECIFIED",t.START_OF_ACTIVITY_INTERRUPTS="START_OF_ACTIVITY_INTERRUPTS",t.NO_INTERRUPTION="NO_INTERRUPTION"})(kp||(kp={}));var xp;(function(t){t.TURN_COVERAGE_UNSPECIFIED="TURN_COVERAGE_UNSPECIFIED",t.TURN_INCLUDES_ONLY_ACTIVITY="TURN_INCLUDES_ONLY_ACTIVITY",t.TURN_INCLUDES_ALL_INPUT="TURN_INCLUDES_ALL_INPUT",t.TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO="TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO"})(xp||(xp={}));var Np;(function(t){t.SCALE_UNSPECIFIED="SCALE_UNSPECIFIED",t.C_MAJOR_A_MINOR="C_MAJOR_A_MINOR",t.D_FLAT_MAJOR_B_FLAT_MINOR="D_FLAT_MAJOR_B_FLAT_MINOR",t.D_MAJOR_B_MINOR="D_MAJOR_B_MINOR",t.E_FLAT_MAJOR_C_MINOR="E_FLAT_MAJOR_C_MINOR",t.E_MAJOR_D_FLAT_MINOR="E_MAJOR_D_FLAT_MINOR",t.F_MAJOR_D_MINOR="F_MAJOR_D_MINOR",t.G_FLAT_MAJOR_E_FLAT_MINOR="G_FLAT_MAJOR_E_FLAT_MINOR",t.G_MAJOR_E_MINOR="G_MAJOR_E_MINOR",t.A_FLAT_MAJOR_F_MINOR="A_FLAT_MAJOR_F_MINOR",t.A_MAJOR_G_FLAT_MINOR="A_MAJOR_G_FLAT_MINOR",t.B_FLAT_MAJOR_G_MINOR="B_FLAT_MAJOR_G_MINOR",t.B_MAJOR_A_FLAT_MINOR="B_MAJOR_A_FLAT_MINOR"})(Np||(Np={}));var Dp;(function(t){t.MUSIC_GENERATION_MODE_UNSPECIFIED="MUSIC_GENERATION_MODE_UNSPECIFIED",t.QUALITY="QUALITY",t.DIVERSITY="DIVERSITY",t.VOCALIZATION="VOCALIZATION"})(Dp||(Dp={}));var bp;(function(t){t.PLAYBACK_CONTROL_UNSPECIFIED="PLAYBACK_CONTROL_UNSPECIFIED",t.PLAY="PLAY",t.PAUSE="PAUSE",t.STOP="STOP",t.RESET_CONTEXT="RESET_CONTEXT"})(bp||(bp={}));function Op(t){return{text:t}}function Up(t){return typeof t=="object"&&t!==null?"fileData"in t||"text"in t||"functionCall"in t||"functionResponse"in t||"inlineData"in t||"videoMetadata"in t||"codeExecutionResult"in t||"executableCode"in t:!1}function Wp(t){let e=[];if(typeof t=="string")e.push(Op(t));else if(Up(t))e.push(t);else if(Array.isArray(t)){if(t.length===0)throw new Error("partOrString cannot be an empty array");for(let n of t)if(typeof n=="string")e.push(Op(n));else if(Up(n))e.push(n);else throw new Error("element in PartUnion must be a Part object or string")}else throw new Error("partOrString must be a Part object, string, or array");return e}function vR(t){return{role:"user",parts:Wp(t)}}function SR(t){return{role:"model",parts:Wp(t)}}var Et=class{get text(){var e,n,o,r,i,s,a,l;if(((r=(o=(n=(e=this.candidates)===null||e===void 0?void 0:e[0])===null||n===void 0?void 0:n.content)===null||o===void 0?void 0:o.parts)===null||r===void 0?void 0:r.length)===0)return;this.candidates&&this.candidates.length>1&&console.warn("there are multiple candidates in the response, returning text from the first one.");let u="",c=!1,f=[];for(let h of(l=(a=(s=(i=this.candidates)===null||i===void 0?void 0:i[0])===null||s===void 0?void 0:s.content)===null||a===void 0?void 0:a.parts)!==null&&l!==void 0?l:[]){for(let[y,S]of Object.entries(h))y!=="text"&&y!=="thought"&&y!=="thoughtSignature"&&(S!==null||S!==void 0)&&f.push(y);if(typeof h.text=="string"){if(typeof h.thought=="boolean"&&h.thought)continue;c=!0,u+=h.text}}return 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.`),c?u:void 0}get data(){var e,n,o,r,i,s,a,l;if(((r=(o=(n=(e=this.candidates)===null||e===void 0?void 0:e[0])===null||n===void 0?void 0:n.content)===null||o===void 0?void 0:o.parts)===null||r===void 0?void 0:r.length)===0)return;this.candidates&&this.candidates.length>1&&console.warn("there are multiple candidates in the response, returning data from the first one.");let u="",c=[];for(let f of(l=(a=(s=(i=this.candidates)===null||i===void 0?void 0:i[0])===null||s===void 0?void 0:s.content)===null||a===void 0?void 0:a.parts)!==null&&l!==void 0?l:[]){for(let[h,y]of Object.entries(f))h!=="inlineData"&&(y!==null||y!==void 0)&&c.push(h);f.inlineData&&typeof f.inlineData.data=="string"&&(u+=atob(f.inlineData.data))}return c.length>0&&console.warn(`there are non-data parts ${c} in the response, returning concatenation of all data parts. Please refer to the non data parts for a full response from model.`),u.length>0?btoa(u):void 0}get functionCalls(){var e,n,o,r,i,s,a,l;if(((r=(o=(n=(e=this.candidates)===null||e===void 0?void 0:e[0])===null||n===void 0?void 0:n.content)===null||o===void 0?void 0:o.parts)===null||r===void 0?void 0:r.length)===0)return;this.candidates&&this.candidates.length>1&&console.warn("there are multiple candidates in the response, returning function calls from the first one.");let u=(l=(a=(s=(i=this.candidates)===null||i===void 0?void 0:i[0])===null||s===void 0?void 0:s.content)===null||a===void 0?void 0:a.parts)===null||l===void 0?void 0:l.filter(c=>c.functionCall).map(c=>c.functionCall).filter(c=>c!==void 0);if(u?.length!==0)return u}get executableCode(){var e,n,o,r,i,s,a,l,u;if(((r=(o=(n=(e=this.candidates)===null||e===void 0?void 0:e[0])===null||n===void 0?void 0:n.content)===null||o===void 0?void 0:o.parts)===null||r===void 0?void 0:r.length)===0)return;this.candidates&&this.candidates.length>1&&console.warn("there are multiple candidates in the response, returning executable code from the first one.");let c=(l=(a=(s=(i=this.candidates)===null||i===void 0?void 0:i[0])===null||s===void 0?void 0:s.content)===null||a===void 0?void 0:a.parts)===null||l===void 0?void 0:l.filter(f=>f.executableCode).map(f=>f.executableCode).filter(f=>f!==void 0);if(c?.length!==0)return(u=c?.[0])===null||u===void 0?void 0:u.code}get codeExecutionResult(){var e,n,o,r,i,s,a,l,u;if(((r=(o=(n=(e=this.candidates)===null||e===void 0?void 0:e[0])===null||n===void 0?void 0:n.content)===null||o===void 0?void 0:o.parts)===null||r===void 0?void 0:r.length)===0)return;this.candidates&&this.candidates.length>1&&console.warn("there are multiple candidates in the response, returning code execution result from the first one.");let c=(l=(a=(s=(i=this.candidates)===null||i===void 0?void 0:i[0])===null||s===void 0?void 0:s.content)===null||a===void 0?void 0:a.parts)===null||l===void 0?void 0:l.filter(f=>f.codeExecutionResult).map(f=>f.codeExecutionResult).filter(f=>f!==void 0);if(c?.length!==0)return(u=c?.[0])===null||u===void 0?void 0:u.output}};var Lp;(function(t){t.PAGED_ITEM_BATCH_JOBS="batchJobs",t.PAGED_ITEM_MODELS="models",t.PAGED_ITEM_TUNING_JOBS="tuningJobs",t.PAGED_ITEM_FILES="files",t.PAGED_ITEM_CACHED_CONTENTS="cachedContents",t.PAGED_ITEM_FILE_SEARCH_STORES="fileSearchStores",t.PAGED_ITEM_DOCUMENTS="documents"})(Lp||(Lp={}));function Ke(t,e){var n={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0&&(n[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(t);r<o.length;r++)e.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(t,o[r])&&(n[o[r]]=t[o[r]]);return n}function Gp(t){var e=typeof Symbol=="function"&&Symbol.iterator,n=e&&t[e],o=0;if(n)return n.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&o>=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function re(t){return this instanceof re?(this.v=t,this):new re(t)}function yn(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n.apply(t,e||[]),r,i=[];return r=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),a("next"),a("throw"),a("return",s),r[Symbol.asyncIterator]=function(){return this},r;function s(y){return function(S){return Promise.resolve(S).then(y,f)}}function a(y,S){o[y]&&(r[y]=function(A){return new Promise(function(T,R){i.push([y,A,T,R])>1||l(y,A)})},S&&(r[y]=S(r[y])))}function l(y,S){try{u(o[y](S))}catch(A){h(i[0][3],A)}}function u(y){y.value instanceof re?Promise.resolve(y.value.v).then(c,f):h(i[0][2],y)}function c(y){l("next",y)}function f(y){l("throw",y)}function h(y,S){y(S),i.shift(),i.length&&l(i[0][0],i[0][1])}}function $t(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof Gp=="function"?Gp(t):t[Symbol.iterator](),n={},o("next"),o("throw"),o("return"),n[Symbol.asyncIterator]=function(){return this},n);function o(i){n[i]=t[i]&&function(s){return new Promise(function(a,l){s=t[i](s),r(a,l,s.done,s.value)})}}function r(i,s,a,l){Promise.resolve(l).then(function(u){i({value:u,done:a})},s)}}var I_="2.6.0",wR=`google-genai-sdk/${I_}`;var Yp=function(){let{crypto:t}=globalThis;if(t?.randomUUID)return Yp=t.randomUUID.bind(t),t.randomUUID();let e=new Uint8Array(1),n=t?()=>t.getRandomValues(e)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,o=>(+o^n()&15>>+o/4).toString(16))},R_=()=>Yp();function hl(t){return typeof t=="object"&&t!==null&&("name"in t&&t.name==="AbortError"||"message"in t&&String(t.message).includes("FetchRequestCanceledException"))}var ml=t=>{if(t instanceof Error)return t;if(typeof t=="object"&&t!==null){try{if(Object.prototype.toString.call(t)==="[object Error]"){let e=new Error(t.message,t.cause?{cause:t.cause}:{});return t.stack&&(e.stack=t.stack),t.cause&&!e.cause&&(e.cause=t.cause),t.name&&(e.name=t.name),e}}catch{}try{return new Error(JSON.stringify(t))}catch{}}return new Error(t)};var we=class extends Error{},Ie=class t extends we{constructor(e,n,o,r){super(`${t.makeMessage(e,n,o)}`),this.status=e,this.headers=r,this.error=n}static makeMessage(e,n,o){let r=n?.message?typeof n.message=="string"?n.message:JSON.stringify(n.message):n?JSON.stringify(n):o;return e&&r?`${e} ${r}`:e?`${e} status code (no body)`:r||"(no status code or body)"}static generate(e,n,o,r){if(!e||!r)return new En({message:o,cause:ml(n)});let i=n;return e===400?new Wr(e,i,o,r):e===401?new Yr(e,i,o,r):e===403?new zr(e,i,o,r):e===404?new Xr(e,i,o,r):e===409?new Qr(e,i,o,r):e===422?new Zr(e,i,o,r):e===429?new jr(e,i,o,r):e>=500?new ei(e,i,o,r):new t(e,i,o,r)}},lo=class extends Ie{constructor({message:e}={}){super(void 0,void 0,e||"Request was aborted.",void 0)}},En=class extends Ie{constructor({message:e,cause:n}){super(void 0,void 0,e||"Connection error.",void 0),n&&(this.cause=n)}},Jr=class extends En{constructor({message:e}={}){super({message:e??"Request timed out. This is a client-side timeout. You can increase the timeout by setting the `timeout` argument in your request or client http options."})}},Wr=class extends Ie{},Yr=class extends Ie{},zr=class extends Ie{},Xr=class extends Ie{},Qr=class extends Ie{},Zr=class extends Ie{},jr=class extends Ie{},ei=class extends Ie{};var P_=/^[a-z][a-z0-9+.-]*:/i,M_=t=>P_.test(t),gl=t=>(gl=Array.isArray,gl(t)),k_=gl,x_=k_,Fp=x_;function qp(t){if(!t)return!0;for(let e in t)return!1;return!0}function N_(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var D_=(t,e)=>{if(typeof e!="number"||!Number.isInteger(e))throw new we(`${t} must be an integer`);if(e<0)throw new we(`${t} must be a positive integer`);return e},b_=t=>{try{return JSON.parse(t)}catch{return}};var O_=t=>new Promise(e=>setTimeout(e,t));function U_(){if(typeof fetch<"u")return fetch;throw new 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 zp(...t){let e=globalThis.ReadableStream;if(typeof e>"u")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new e(...t)}function L_(t){let e=Symbol.asyncIterator in t?t[Symbol.asyncIterator]():t[Symbol.iterator]();return zp({start(){},async pull(n){let{done:o,value:r}=await e.next();o?n.close():n.enqueue(r)},async cancel(){var n;await((n=e.return)===null||n===void 0?void 0:n.call(e))}})}function Xp(t){if(t[Symbol.asyncIterator])return t;let e=t.getReader();return{async next(){try{let n=await e.read();return n?.done&&e.releaseLock(),n}catch(n){throw e.releaseLock(),n}},async return(){let n=e.cancel();return e.releaseLock(),await n,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function G_(t){var e,n;if(t===null||typeof t!="object")return;if(t[Symbol.asyncIterator]){await((n=(e=t[Symbol.asyncIterator]()).return)===null||n===void 0?void 0:n.call(e));return}let o=t.getReader(),r=o.cancel();o.releaseLock(),await r}var F_=({headers:t,body:e})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(e)});function q_(t){return Object.entries(t).filter(([e,n])=>typeof n<"u").map(([e,n])=>{if(typeof n=="string"||typeof n=="number"||typeof n=="boolean")return`${encodeURIComponent(e)}=${encodeURIComponent(n)}`;if(n===null)return`${encodeURIComponent(e)}=`;throw new we(`Cannot stringify type ${typeof n}; 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 B_="0.0.1";var Qp=()=>{var t;if(typeof File>"u"){let{process:e}=globalThis,n=typeof((t=e?.versions)===null||t===void 0?void 0:t.node)=="string"&&parseInt(e.versions.node.split("."))<20;throw new Error("`File` is not defined as a global, which is required for file uploads."+(n?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function dl(t,e,n){return Qp(),new File(t,e??"unknown_file",n)}function H_(t){return(typeof t=="object"&&t!==null&&("name"in t&&t.name&&String(t.name)||"url"in t&&t.url&&String(t.url)||"filename"in t&&t.filename&&String(t.filename)||"path"in t&&t.path&&String(t.path))||"").split(/[\\/]/).pop()||void 0}var V_=t=>t!=null&&typeof t=="object"&&typeof t[Symbol.asyncIterator]=="function";var Zp=t=>t!=null&&typeof t=="object"&&typeof t.size=="number"&&typeof t.type=="string"&&typeof t.text=="function"&&typeof t.slice=="function"&&typeof t.arrayBuffer=="function",$_=t=>t!=null&&typeof t=="object"&&typeof t.name=="string"&&typeof t.lastModified=="number"&&Zp(t),K_=t=>t!=null&&typeof t=="object"&&typeof t.url=="string"&&typeof t.blob=="function";async function J_(t,e,n){if(Qp(),t=await t,$_(t))return t instanceof File?t:dl([await t.arrayBuffer()],t.name);if(K_(t)){let r=await t.blob();return e||(e=new URL(t.url).pathname.split(/[\\/]/).pop()),dl(await yl(r),e,n)}let o=await yl(t);if(e||(e=H_(t)),!n?.type){let r=o.find(i=>typeof i=="object"&&"type"in i&&i.type);typeof r=="string"&&(n=Object.assign(Object.assign({},n),{type:r}))}return dl(o,e,n)}async function yl(t){var e,n,o,r,i;let s=[];if(typeof t=="string"||ArrayBuffer.isView(t)||t instanceof ArrayBuffer)s.push(t);else if(Zp(t))s.push(t instanceof Blob?t:await t.arrayBuffer());else if(V_(t))try{for(var a=!0,l=$t(t),u;u=await l.next(),e=u.done,!e;a=!0){r=u.value,a=!1;let c=r;s.push(...await yl(c))}}catch(c){n={error:c}}finally{try{!a&&!e&&(o=l.return)&&await o.call(l)}finally{if(n)throw n.error}}else{let c=(i=t?.constructor)===null||i===void 0?void 0:i.name;throw new Error(`Unexpected data type: ${typeof t}${c?`; constructor: ${c}`:""}${W_(t)}`)}return s}function W_(t){return typeof t!="object"||t===null?"":`; props: [${Object.getOwnPropertyNames(t).map(n=>`"${n}"`).join(", ")}]`}var Tn=class{constructor(e){this._client=e}};Tn._key=[];function jp(t){return t.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var Bp=Object.freeze(Object.create(null)),Y_=(t=jp)=>function(n,...o){if(n.length===1)return n[0];let r=!1,i=[],s=n.reduce((c,f,h)=>{var y,S,A;/[?#]/.test(f)&&(r=!0);let T=o[h],R=(r?encodeURIComponent:t)(""+T);return h!==o.length&&(T==null||typeof T=="object"&&T.toString===((A=Object.getPrototypeOf((S=Object.getPrototypeOf((y=T.hasOwnProperty)!==null&&y!==void 0?y:Bp))!==null&&S!==void 0?S:Bp))===null||A===void 0?void 0:A.toString))&&(R=T+"",i.push({start:c.length+f.length,length:R.length,error:`Value of type ${Object.prototype.toString.call(T).slice(8,-1)} is not a valid path parameter`})),c+f+(h===o.length?"":R)},""),a=s.split(/[?#]/,1)[0],l=/(^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,u;for(;(u=l.exec(a))!==null;){let c=u[0].startsWith("/"),f=c?1:0,h=c?u[0].slice(1):u[0];i.push({start:u.index+f,length:h.length,error:`Value "${h}" can't be safely passed as a path parameter`})}if(i.sort((c,f)=>c.start-f.start),i.length>0){let c=0,f=i.reduce((h,y)=>{let S=" ".repeat(y.start-c),A="^".repeat(y.length);return c=y.start+y.length,h+S+A},"");throw new we(`Path parameters result in path with invalid segments:
|
|
33
|
+
${i.map(h=>h.error).join(`
|
|
34
|
+
`)}
|
|
35
|
+
${s}
|
|
36
|
+
${f}`)}return s},Se=Y_(jp);var ti=class extends Tn{create(e={},n){let o=e??{},{api_version:r=this._client.apiVersion}=o,i=Ke(o,["api_version"]);return this._client.post(Se`/${r}/agents`,Object.assign({body:i},n))}list(e={},n){let o=e??{},{api_version:r=this._client.apiVersion}=o,i=Ke(o,["api_version"]);return this._client.get(Se`/${r}/agents`,Object.assign({query:i},n))}delete(e,n={},o){let{api_version:r=this._client.apiVersion}=n??{};return this._client.delete(Se`/${r}/agents/${e}`,o)}get(e,n={},o){let{api_version:r=this._client.apiVersion}=n??{};return this._client.get(Se`/${r}/agents/${e}`,o)}};ti._key=Object.freeze(["agents"]);var ni=class extends ti{};function z_(t){let e=0;for(let r of t)e+=r.length;let n=new Uint8Array(e),o=0;for(let r of t)n.set(r,o),o+=r.length;return n}var Vr;function Al(t){let e;return(Vr??(e=new globalThis.TextEncoder,Vr=e.encode.bind(e)))(t)}var $r;function Hp(t){let e;return($r??(e=new globalThis.TextDecoder,$r=e.decode.bind(e)))(t)}var _n=class{constructor(){this.buffer=new Uint8Array,this.carriageReturnIndex=null,this.searchIndex=0}decode(e){var n;if(e==null)return[];let o=e instanceof ArrayBuffer?new Uint8Array(e):typeof e=="string"?Al(e):e;this.buffer=z_([this.buffer,o]);let r=[],i;for(;(i=X_(this.buffer,(n=this.carriageReturnIndex)!==null&&n!==void 0?n:this.searchIndex))!=null;){if(i.carriage&&this.carriageReturnIndex==null){this.carriageReturnIndex=i.index;continue}if(this.carriageReturnIndex!=null&&(i.index!==this.carriageReturnIndex+1||i.carriage)){r.push(Hp(this.buffer.subarray(0,this.carriageReturnIndex-1))),this.buffer=this.buffer.subarray(this.carriageReturnIndex),this.carriageReturnIndex=null,this.searchIndex=0;continue}let s=this.carriageReturnIndex!==null?i.preceding-1:i.preceding,a=Hp(this.buffer.subarray(0,s));r.push(a),this.buffer=this.buffer.subarray(i.index),this.carriageReturnIndex=null,this.searchIndex=0}return this.searchIndex=Math.max(0,this.buffer.length-1),r}flush(){return this.buffer.length?this.decode(`
|
|
37
|
+
`):[]}};_n.NEWLINE_CHARS=new Set([`
|
|
38
|
+
`,"\r"]);_n.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function X_(t,e){let r=e??0,i=t.indexOf(10,r),s=t.indexOf(13,r);if(i===-1&&s===-1)return null;let a;return i!==-1&&s!==-1?a=Math.min(i,s):a=i!==-1?i:s,t[a]===10?{preceding:a,index:a+1,carriage:!1}:{preceding:a,index:a+1,carriage:!0}}var oi={off:0,error:200,warn:300,info:400,debug:500},Vp=(t,e,n)=>{if(t){if(N_(oi,t))return t;ve(n).warn(`${e} was set to ${JSON.stringify(t)}, expected one of ${JSON.stringify(Object.keys(oi))}`)}};function ao(){}function Kr(t,e,n){return!e||oi[t]>oi[n]?ao:e[t].bind(e)}var Q_={error:ao,warn:ao,info:ao,debug:ao},$p=new WeakMap;function ve(t){var e;let n=t.logger,o=(e=t.logLevel)!==null&&e!==void 0?e:"off";if(!n)return Q_;let r=$p.get(n);if(r&&r[0]===o)return r[1];let i={error:Kr("error",n,o),warn:Kr("warn",n,o),info:Kr("info",n,o),debug:Kr("debug",n,o)};return $p.set(n,[o,i]),i}var Vt=t=>(t.options&&(t.options=Object.assign({},t.options),delete t.options.headers),t.headers&&(t.headers=Object.fromEntries((t.headers instanceof Headers?[...t.headers]:Object.entries(t.headers)).map(([e,n])=>[e,e.toLowerCase()==="x-goog-api-key"||e.toLowerCase()==="authorization"||e.toLowerCase()==="cookie"||e.toLowerCase()==="set-cookie"?"***":n]))),"retryOfRequestLogID"in t&&(t.retryOfRequestLogID&&(t.retryOf=t.retryOfRequestLogID),delete t.retryOfRequestLogID),t);var uo=class t{constructor(e,n,o){this.iterator=e,this.controller=n,this.client=o}static fromSSEResponse(e,n,o){let r=!1,i=o?ve(o):console;function s(){return yn(this,arguments,function*(){var l,u,c,f;if(r)throw new we("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");r=!0;let h=!1;try{try{for(var y=!0,S=$t(Z_(e,n)),A;A=yield re(S.next()),l=A.done,!l;y=!0){f=A.value,y=!1;let T=f;if(!h)if(T.data.startsWith("[DONE]")){h=!0;continue}else try{yield yield re(JSON.parse(T.data))}catch(R){throw i.error("Could not parse message into JSON:",T.data),i.error("From chunk:",T.raw),R}}}catch(T){u={error:T}}finally{try{!y&&!l&&(c=S.return)&&(yield re(c.call(S)))}finally{if(u)throw u.error}}h=!0}catch(T){if(hl(T))return yield re(void 0);throw T}finally{h||n.abort()}})}return new t(s,n,o)}static fromReadableStream(e,n,o){let r=!1;function i(){return yn(this,arguments,function*(){var l,u,c,f;let h=new _n,y=Xp(e);try{for(var S=!0,A=$t(y),T;T=yield re(A.next()),l=T.done,!l;S=!0){f=T.value,S=!1;let R=f;for(let O of h.decode(R))yield yield re(O)}}catch(R){u={error:R}}finally{try{!S&&!l&&(c=A.return)&&(yield re(c.call(A)))}finally{if(u)throw u.error}}for(let R of h.flush())yield yield re(R)})}function s(){return yn(this,arguments,function*(){var l,u,c,f;if(r)throw new we("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");r=!0;let h=!1;try{try{for(var y=!0,S=$t(i()),A;A=yield re(S.next()),l=A.done,!l;y=!0){f=A.value,y=!1;let T=f;h||T&&(yield yield re(JSON.parse(T)))}}catch(T){u={error:T}}finally{try{!y&&!l&&(c=S.return)&&(yield re(c.call(S)))}finally{if(u)throw u.error}}h=!0}catch(T){if(hl(T))return yield re(void 0);throw T}finally{h||n.abort()}})}return new t(s,n,o)}[Symbol.asyncIterator](){return this.iterator()}tee(){let e=[],n=[],o=this.iterator(),r=i=>({next:()=>{if(i.length===0){let s=o.next();e.push(s),n.push(s)}return i.shift()}});return[new t(()=>r(e),this.controller,this.client),new t(()=>r(n),this.controller,this.client)]}toReadableStream(){let e=this,n;return zp({async start(){n=e[Symbol.asyncIterator]()},async pull(o){try{let{value:r,done:i}=await n.next();if(i)return o.close();let s=Al(JSON.stringify(r)+`
|
|
39
|
+
`);o.enqueue(s)}catch(r){o.error(r)}},async cancel(){var o;await((o=n.return)===null||o===void 0?void 0:o.call(n))}})}};function Z_(t,e){return yn(this,arguments,function*(){var o,r,i,s;if(!t.body)throw e.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative"?new we("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api"):new we("Attempted to iterate over a response with no body");let a=new El,l=new _n,u=Xp(t.body);try{for(var c=!0,f=$t(j_(u)),h;h=yield re(f.next()),o=h.done,!o;c=!0){s=h.value,c=!1;let y=s;for(let S of l.decode(y)){let A=a.decode(S);A&&(yield yield re(A))}}}catch(y){r={error:y}}finally{try{!c&&!o&&(i=f.return)&&(yield re(i.call(f)))}finally{if(r)throw r.error}}for(let y of l.flush()){let S=a.decode(y);S&&(yield yield re(S))}})}function j_(t){return yn(this,arguments,function*(){var n,o,r,i;try{for(var s=!0,a=$t(t),l;l=yield re(a.next()),n=l.done,!n;s=!0){i=l.value,s=!1;let u=i;if(u==null)continue;let c=u instanceof ArrayBuffer?new Uint8Array(u):typeof u=="string"?Al(u):u;yield yield re(c)}}catch(u){o={error:u}}finally{try{!s&&!n&&(r=a.return)&&(yield re(r.call(a)))}finally{if(o)throw o.error}}})}var El=class{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(e){if(e.endsWith("\r")&&(e=e.substring(0,e.length-1)),!e){if(!this.event&&!this.data.length)return null;let i={event:this.event,data:this.data.join(`
|
|
40
|
+
`),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],i}if(this.chunks.push(e),e.startsWith(":"))return null;let[n,o,r]=eC(e,":");return r.startsWith(" ")&&(r=r.substring(1)),n==="event"?this.event=r:n==="data"&&this.data.push(r),null}};function eC(t,e){let n=t.indexOf(e);return n!==-1?[t.substring(0,n),e,t.substring(n+e.length)]:[t,"",""]}var tC=new Set(["lyria-3-pro-preview","lyria-3-clip-preview"]),Kp={"interaction.start":"interaction.created","content.start":"step.start","content.delta":"step.delta","content.stop":"step.stop","interaction.complete":"interaction.completed"};function nC({isVertex:t,model:e}){return!!t&&typeof e=="string"&&tC.has(e)}function oC(t){let e=t.clientAdapter;return!!(e&&e.isVertexAI())}function Tl(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function eh(t){if(!("outputs"in t)||"steps"in t)return t;let{outputs:e}=t,n=Ke(t,["outputs"]);return Object.assign(Object.assign({},n),{steps:[{type:"model_output",content:e}]})}function rC(t){return Tl(t)?eh(t):t}function iC(t){if(!Tl(t))return t;let e=t.event_type;if(typeof e!="string"||!(e in Kp))return t;let n=Object.assign(Object.assign({},t),{event_type:Kp[e]});if(e==="content.start"){let{content:o}=n,r=Ke(n,["content"]),i;return o==null?i=[]:Array.isArray(o)?i=o:i=[o],Object.assign(Object.assign({},r),{step:{type:"model_output",content:i}})}if(e==="interaction.start"||e==="interaction.complete"){let o=n.interaction;Tl(o)&&(n.interaction=eh(o))}return n}var _l=class t extends uo{static fromSSEResponse(e,n,o){let r=uo.fromSSEResponse(e,n,o);function i(){return yn(this,arguments,function*(){var a,l,u,c;try{for(var f=!0,h=$t(r),y;y=yield re(h.next()),a=y.done,!a;f=!0)c=y.value,f=!1,yield yield re(iC(c))}catch(S){l={error:S}}finally{try{!f&&!a&&(u=h.return)&&(yield re(u.call(h)))}finally{if(l)throw l.error}}})}return new t(i,n,o)}};var ri=class extends Tn{create(e,n){var o;let{api_version:r=this._client.apiVersion}=e,i=Ke(e,["api_version"]);if("model"in i&&"agent_config"in i)throw new we("Invalid request: specified `model` and `agent_config`. If specifying `model`, use `generation_config`.");if("agent"in i&&"generation_config"in i)throw new we("Invalid request: specified `agent` and `generation_config`. If specifying `agent`, use `agent_config`.");let s=nC({isVertex:oC(this._client),model:"model"in i?i.model:void 0}),a=(o=e.stream)!==null&&o!==void 0?o:!1,l=this._client.post(Se`/${r}/interactions`,Object.assign(Object.assign(Object.assign({body:i},n),{stream:a}),s&&a?{__streamClass:_l}:{}));if(a)return l;let u=l;return s&&(u=u._thenUnwrap(c=>rC(c))),u._thenUnwrap(fl)}delete(e,n={},o){let{api_version:r=this._client.apiVersion}=n??{};return this._client.delete(Se`/${r}/interactions/${e}`,o)}cancel(e,n={},o){let{api_version:r=this._client.apiVersion}=n??{};return this._client.post(Se`/${r}/interactions/${e}/cancel`,o)._thenUnwrap(fl)}get(e,n={},o){var r;let i=n??{},{api_version:s=this._client.apiVersion}=i,a=Ke(i,["api_version"]),l=this._client.get(Se`/${s}/interactions/${e}`,Object.assign(Object.assign({query:a},o),{stream:(r=n?.stream)!==null&&r!==void 0?r:!1}));return n?.stream?l:l._thenUnwrap(fl)}};ri._key=Object.freeze(["interactions"]);var ii=class extends ri{};function fl(t){var e,n;let o=(e=t.steps)!==null&&e!==void 0?e:[],r=[],i=!1;e:for(let c=o.length-1;c>=0;c--){let f=o[c];if(f.type==="user_input")break;if(f.type!=="model_output"||!f.content){if(i)break e;continue}let h=f.content;for(let y=h.length-1;y>=0;y--){let S=h[y];if(S.type==="text")i=!0,r.push((n=S.text)!==null&&n!==void 0?n:"");else if(i)break e}}let s=r.reverse().join(""),a,l,u;for(let c=o.length-1;c>=0;c--){let h=o[c];if(h.type==="user_input")break;if(h.type==="model_output"&&h.content)for(let y=h.content.length-1;y>=0;y--){let S=h.content[y];S.type==="image"&&!a&&(a=S),S.type==="audio"&&!l&&(l=S),S.type==="video"&&!u&&(u=S)}}return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},t),s&&{output_text:s}),a&&{output_image:a}),l&&{output_audio:l}),u&&{output_video:u})}var si=class extends Tn{create(e,n){let{api_version:o=this._client.apiVersion}=e,r=Ke(e,["api_version"]);return this._client.post(Se`/${o}/webhooks`,Object.assign({body:r},n))}update(e,n={},o){let r=n??{},{api_version:i=this._client.apiVersion,update_mask:s}=r,a=Ke(r,["api_version","update_mask"]);return this._client.patch(Se`/${i}/webhooks/${e}`,Object.assign({query:{update_mask:s},body:a},o))}list(e={},n){let o=e??{},{api_version:r=this._client.apiVersion}=o,i=Ke(o,["api_version"]);return this._client.get(Se`/${r}/webhooks`,Object.assign({query:i},n))}delete(e,n={},o){let{api_version:r=this._client.apiVersion}=n??{};return this._client.delete(Se`/${r}/webhooks/${e}`,o)}get(e,n={},o){let{api_version:r=this._client.apiVersion}=n??{};return this._client.get(Se`/${r}/webhooks/${e}`,o)}ping(e,n=void 0,o){let{api_version:r=this._client.apiVersion,body:i}=n??{};return this._client.post(Se`/${r}/webhooks/${e}:ping`,Object.assign({body:i},o))}rotateSigningSecret(e,n={},o){let r=n??{},{api_version:i=this._client.apiVersion}=r,s=Ke(r,["api_version"]);return this._client.post(Se`/${i}/webhooks/${e}:rotateSigningSecret`,Object.assign({body:s},o))}};si._key=Object.freeze(["webhooks"]);var ai=class extends si{};async function sC(t,e){let{response:n,requestLogID:o,retryOfRequestLogID:r,startTime:i}=e,s=await(async()=>{var a;if(e.options.stream)return ve(t).debug("response",n.status,n.url,n.headers,n.body),e.options.__streamClass?e.options.__streamClass.fromSSEResponse(n,e.controller,t):uo.fromSSEResponse(n,e.controller,t);if(n.status===204)return null;if(e.options.__binaryResponse)return n;let l=n.headers.get("content-type"),u=(a=l?.split(";")[0])===null||a===void 0?void 0:a.trim();return u?.includes("application/json")||u?.endsWith("+json")?n.headers.get("content-length")==="0"?void 0:await n.json():await n.text()})();return ve(t).debug(`[${o}] response parsed`,Vt({retryOfRequestLogID:r,url:n.url,status:n.status,body:s,durationMs:Date.now()-i})),s}var Cl=class t extends Promise{constructor(e,n,o=sC){super(r=>{r(null)}),this.responsePromise=n,this.parseResponse=o,this.client=e}_thenUnwrap(e){return new t(this.client,this.responsePromise,async(n,o)=>e(await this.parseResponse(n,o),o))}asResponse(){return this.responsePromise.then(e=>e.response)}async withResponse(){let[e,n]=await Promise.all([this.parse(),this.asResponse()]);return{data:e,response:n}}parse(){return this.parsedPromise||(this.parsedPromise=this.responsePromise.then(e=>this.parseResponse(this.client,e))),this.parsedPromise}then(e,n){return this.parse().then(e,n)}catch(e){return this.parse().catch(e)}finally(e){return this.parse().finally(e)}};var th=Symbol("brand.privateNullableHeaders");function*aC(t){if(!t)return;if(th in t){let{values:o,nulls:r}=t;yield*o.entries();for(let i of r)yield[i,null];return}let e=!1,n;t instanceof Headers?n=t.entries():Fp(t)?n=t:(e=!0,n=Object.entries(t??{}));for(let o of n){let r=o[0];if(typeof r!="string")throw new TypeError("expected header name to be a string");let i=Fp(o[1])?o[1]:[o[1]],s=!1;for(let a of i)a!==void 0&&(e&&!s&&(s=!0,yield[r,null]),yield[r,a])}}var so=t=>{let e=new Headers,n=new Set;for(let o of t){let r=new Set;for(let[i,s]of aC(o)){let a=i.toLowerCase();r.has(a)||(e.delete(i),r.add(a)),s===null?(e.delete(i),n.add(a)):(e.append(i,s),n.delete(a))}}return{[th]:!0,values:e,nulls:n}};var pl=t=>{var e,n,o,r,i;if(typeof globalThis.process<"u")return((n=(e=globalThis.process.env)===null||e===void 0?void 0:e[t])===null||n===void 0?void 0:n.trim())||void 0;if(typeof globalThis.Deno<"u")return((i=(r=(o=globalThis.Deno.env)===null||o===void 0?void 0:o.get)===null||r===void 0?void 0:r.call(o,t))===null||i===void 0?void 0:i.trim())||void 0};var nh,li=class t{constructor(e){var n,o,r,i,s,a,l,{baseURL:u=pl("GEMINI_NEXT_GEN_API_BASE_URL"),apiKey:c=(n=pl("GEMINI_API_KEY"))!==null&&n!==void 0?n:null,apiVersion:f="v1beta"}=e,h=Ke(e,["baseURL","apiKey","apiVersion"]);let y=Object.assign(Object.assign({apiKey:c,apiVersion:f},h),{baseURL:u||"https://generativelanguage.googleapis.com"});this.baseURL=y.baseURL,this.timeout=(o=y.timeout)!==null&&o!==void 0?o:t.DEFAULT_TIMEOUT,this.logger=(r=y.logger)!==null&&r!==void 0?r:console;let S="warn";this.logLevel=S,this.logLevel=(s=(i=Vp(y.logLevel,"ClientOptions.logLevel",this))!==null&&i!==void 0?i:Vp(pl("GEMINI_NEXT_GEN_API_LOG"),"process.env['GEMINI_NEXT_GEN_API_LOG']",this))!==null&&s!==void 0?s:S,this.fetchOptions=y.fetchOptions,this.maxRetries=(a=y.maxRetries)!==null&&a!==void 0?a:2,this.fetch=(l=y.fetch)!==null&&l!==void 0?l:U_(),this.encoder=F_,this._options=y,this.apiKey=c,this.apiVersion=f,this.clientAdapter=y.clientAdapter}withOptions(e){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}),e))}baseURLOverridden(){return this.baseURL!=="https://generativelanguage.googleapis.com"}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:e,nulls:n}){if(!(e.has("authorization")||e.has("x-goog-api-key"))&&!(this.apiKey&&e.get("x-goog-api-key"))&&!n.has("x-goog-api-key"))throw new 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(e){let n=so([e.headers]);if(!(n.values.has("authorization")||n.values.has("x-goog-api-key"))){if(this.apiKey)return so([{"x-goog-api-key":this.apiKey}]);if(this.clientAdapter&&this.clientAdapter.isVertexAI())return so([await this.clientAdapter.getAuthHeaders()])}}stringifyQuery(e){return q_(e)}getUserAgent(){return`${this.constructor.name}/JS ${B_}`}defaultIdempotencyKey(){return`stainless-node-retry-${R_()}`}makeStatusError(e,n,o,r){return Ie.generate(e,n,o,r)}buildURL(e,n,o){let r=!this.baseURLOverridden()&&o||this.baseURL,i=M_(e)?new URL(e):new URL(r+(r.endsWith("/")&&e.startsWith("/")?e.slice(1):e)),s=this.defaultQuery(),a=Object.fromEntries(i.searchParams);return(!qp(s)||!qp(a))&&(n=Object.assign(Object.assign(Object.assign({},a),s),n)),typeof n=="object"&&n&&!Array.isArray(n)&&(i.search=this.stringifyQuery(n)),i.toString()}async prepareOptions(e){if(this.clientAdapter&&this.clientAdapter.isVertexAI()&&!e.path.startsWith(`/${this.apiVersion}/projects/`)){let n=e.path.slice(this.apiVersion.length+1);e.path=`/${this.apiVersion}/projects/${this.clientAdapter.getProject()}/locations/${this.clientAdapter.getLocation()}${n}`}}async prepareRequest(e,{url:n,options:o}){}get(e,n){return this.methodRequest("get",e,n)}post(e,n){return this.methodRequest("post",e,n)}patch(e,n){return this.methodRequest("patch",e,n)}put(e,n){return this.methodRequest("put",e,n)}delete(e,n){return this.methodRequest("delete",e,n)}methodRequest(e,n,o){return this.request(Promise.resolve(o).then(r=>Object.assign({method:e,path:n},r)))}request(e,n=null){return new Cl(this,this.makeRequest(e,n,void 0))}async makeRequest(e,n,o){var r,i,s;let a=await e,l=(r=a.maxRetries)!==null&&r!==void 0?r:this.maxRetries;n==null&&(n=l),await this.prepareOptions(a);let{req:u,url:c,timeout:f}=await this.buildRequest(a,{retryCount:l-n});await this.prepareRequest(u,{url:c,options:a});let h="log_"+(Math.random()*(1<<24)|0).toString(16).padStart(6,"0"),y=o===void 0?"":`, retryOf: ${o}`,S=Date.now();if(ve(this).debug(`[${h}] sending request`,Vt({retryOfRequestLogID:o,method:a.method,url:c,options:a,headers:u.headers})),!((i=a.signal)===null||i===void 0)&&i.aborted)throw new lo;let A=new AbortController,T=await this.fetchWithTimeout(c,u,f,A).catch(ml),R=Date.now();if(T instanceof globalThis.Error){let D=`retrying, ${n} attempts remaining`;if(!((s=a.signal)===null||s===void 0)&&s.aborted)throw new lo;let q=hl(T)||/timed? ?out/i.test(String(T)+("cause"in T?String(T.cause):""));if(n)return ve(this).info(`[${h}] connection ${q?"timed out":"failed"} - ${D}`),ve(this).debug(`[${h}] connection ${q?"timed out":"failed"} (${D})`,Vt({retryOfRequestLogID:o,url:c,durationMs:R-S,message:T.message})),this.retryRequest(a,n,o??h);throw ve(this).info(`[${h}] connection ${q?"timed out":"failed"} - error; no more retries left`),ve(this).debug(`[${h}] connection ${q?"timed out":"failed"} (error; no more retries left)`,Vt({retryOfRequestLogID:o,url:c,durationMs:R-S,message:T.message})),q?new Jr:new En({cause:T})}let O=`[${h}${y}] ${u.method} ${c} ${T.ok?"succeeded":"failed"} with status ${T.status} in ${R-S}ms`;if(!T.ok){let D=await this.shouldRetry(T);if(n&&D){let x=`retrying, ${n} attempts remaining`;return await G_(T.body),ve(this).info(`${O} - ${x}`),ve(this).debug(`[${h}] response error (${x})`,Vt({retryOfRequestLogID:o,url:T.url,status:T.status,headers:T.headers,durationMs:R-S})),this.retryRequest(a,n,o??h,T.headers)}let q=D?"error; no more retries left":"error; not retryable";ve(this).info(`${O} - ${q}`);let U=await T.text().catch(x=>ml(x).message),L=b_(U),$=L?void 0:U;throw ve(this).debug(`[${h}] response error (${q})`,Vt({retryOfRequestLogID:o,url:T.url,status:T.status,headers:T.headers,message:$,durationMs:Date.now()-S})),this.makeStatusError(T.status,L,$,T.headers)}return ve(this).info(O),ve(this).debug(`[${h}] response start`,Vt({retryOfRequestLogID:o,url:T.url,status:T.status,headers:T.headers,durationMs:R-S})),{response:T,options:a,controller:A,requestLogID:h,retryOfRequestLogID:o,startTime:S}}async fetchWithTimeout(e,n,o,r){let i=n||{},{signal:s,method:a}=i,l=Ke(i,["signal","method"]),u=this._makeAbort(r);s&&s.addEventListener("abort",u,{once:!0});let c=setTimeout(u,o),f=globalThis.ReadableStream&&l.body instanceof globalThis.ReadableStream||typeof l.body=="object"&&l.body!==null&&Symbol.asyncIterator in l.body,h=Object.assign(Object.assign(Object.assign({signal:r.signal},f?{duplex:"half"}:{}),{method:"GET"}),l);a&&(h.method=a.toUpperCase());try{return await this.fetch.call(void 0,e,h)}finally{clearTimeout(c)}}async shouldRetry(e){let n=e.headers.get("x-should-retry");return n==="true"?!0:n==="false"?!1:e.status===408||e.status===409||e.status===429||e.status>=500}async retryRequest(e,n,o,r){var i;let s,a=r?.get("retry-after-ms");if(a){let u=parseFloat(a);Number.isNaN(u)||(s=u)}let l=r?.get("retry-after");if(l&&!s){let u=parseFloat(l);Number.isNaN(u)?s=Date.parse(l)-Date.now():s=u*1e3}if(s===void 0){let u=(i=e.maxRetries)!==null&&i!==void 0?i:this.maxRetries;s=this.calculateDefaultRetryTimeoutMillis(n,u)}return await O_(s),this.makeRequest(e,n-1,o)}calculateDefaultRetryTimeoutMillis(e,n){let i=n-e,s=Math.min(.5*Math.pow(2,i),8),a=1-Math.random()*.25;return s*a*1e3}async buildRequest(e,{retryCount:n=0}={}){var o,r,i;let s=Object.assign({},e),{method:a,path:l,query:u,defaultBaseURL:c}=s,f=this.buildURL(l,u,c);"timeout"in s&&D_("timeout",s.timeout),s.timeout=(o=s.timeout)!==null&&o!==void 0?o:this.timeout;let{bodyHeaders:h,body:y}=this.buildBody({options:s}),S=await this.buildHeaders({options:e,method:a,bodyHeaders:h,retryCount:n});return{req:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({method:a,headers:S},s.signal&&{signal:s.signal}),globalThis.ReadableStream&&y instanceof globalThis.ReadableStream&&{duplex:"half"}),y&&{body:y}),(r=this.fetchOptions)!==null&&r!==void 0?r:{}),(i=s.fetchOptions)!==null&&i!==void 0?i:{}),url:f,timeout:s.timeout}}async buildHeaders({options:e,method:n,bodyHeaders:o,retryCount:r}){let i={};this.idempotencyHeader&&n!=="get"&&(e.idempotencyKey||(e.idempotencyKey=this.defaultIdempotencyKey()),i[this.idempotencyHeader]=e.idempotencyKey);let s=await this.authHeaders(e),a=so([i,{Accept:"application/json","User-Agent":this.getUserAgent(),"Api-Revision":"2026-05-20"},this._options.defaultHeaders,o,e.headers,s]);return this.validateHeaders(a),a.values}_makeAbort(e){return()=>e.abort()}buildBody({options:{body:e,headers:n}}){if(!e)return{bodyHeaders:void 0,body:void 0};let o=so([n]);return ArrayBuffer.isView(e)||e instanceof ArrayBuffer||e instanceof DataView||typeof e=="string"&&o.values.has("content-type")||globalThis.Blob&&e instanceof globalThis.Blob||e instanceof FormData||e instanceof URLSearchParams||globalThis.ReadableStream&&e instanceof globalThis.ReadableStream?{bodyHeaders:void 0,body:e}:typeof e=="object"&&(Symbol.asyncIterator in e||Symbol.iterator in e&&"next"in e&&typeof e.next=="function")?{bodyHeaders:void 0,body:L_(e)}:typeof e=="object"&&o.values.get("content-type")==="application/x-www-form-urlencoded"?{bodyHeaders:{"content-type":"application/x-www-form-urlencoded"},body:this.stringifyQuery(e)}:this.encoder({body:e,headers:o})}};li.DEFAULT_TIMEOUT=6e4;var de=class extends li{constructor(){super(...arguments),this.interactions=new ii(this),this.webhooks=new ai(this),this.agents=new ni(this)}};nh=de;de.GeminiNextGenAPIClient=nh;de.GeminiNextGenAPIClientError=we;de.APIError=Ie;de.APIConnectionError=En;de.APIConnectionTimeoutError=Jr;de.APIUserAbortError=lo;de.NotFoundError=Xr;de.ConflictError=Qr;de.RateLimitError=jr;de.BadRequestError=Wr;de.AuthenticationError=Yr;de.InternalServerError=ei;de.PermissionDeniedError=zr;de.UnprocessableEntityError=Zr;de.toFile=J_;de.Interactions=ii;de.Webhooks=ai;de.Agents=ni;var IR=1024*1024*8;p();p();p();p();var Tt=class extends Error{constructor(e,n){super(`${e} at position ${n}`),this.position=n}};p();function oh(t){return/^[0-9A-Fa-f]$/.test(t)}function kt(t){return t>="0"&&t<="9"}function rh(t){return t>=" "}function co(t){return`,:[]/{}()
|
|
41
|
+
+`.includes(t)}function vl(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"||t==="_"||t==="$"}function Sl(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"||t==="_"||t==="$"||t>="0"&&t<="9"}var wl=/^(http|https|ftp|mailto|file|data|irc):\/\/$/,Il=/^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;function Rl(t){return`,[]/{}
|
|
42
|
+
+`.includes(t)}function Pl(t){return fo(t)||lC.test(t)}var lC=/^[[{\w-]$/;function ih(t){return t===`
|
|
43
|
+
`||t==="\r"||t===" "||t==="\b"||t==="\f"}function Mt(t,e){let n=t.charCodeAt(e);return n===32||n===10||n===9||n===13}function sh(t,e){let n=t.charCodeAt(e);return n===32||n===9||n===13}function ah(t,e){let n=t.charCodeAt(e);return n===160||n>=8192&&n<=8202||n===8239||n===8287||n===12288}function fo(t){return Ml(t)||ui(t)}function Ml(t){return t==='"'||t==="\u201C"||t==="\u201D"}function kl(t){return t==='"'}function ui(t){return t==="'"||t==="\u2018"||t==="\u2019"||t==="`"||t==="\xB4"}function xl(t){return t==="'"}function Cn(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,o=t.lastIndexOf(e);return o!==-1?t.substring(0,o)+(n?"":t.substring(o+1)):t}function Je(t,e){let n=t.length;if(!Mt(t,n-1))return t+e;for(;Mt(t,n-1);)n--;return t.substring(0,n)+e+t.substring(n)}function lh(t,e,n){return t.substring(0,e)+t.substring(e+n)}function uh(t){return/[,\n][ \t\r]*$/.test(t)}var uC={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"},cC={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
|
|
44
|
+
`,r:"\r",t:" "};function ci(t){let e=0,n="";u(["```","[```","{```"]),i()||le(),u(["```","```]","```}"]);let r=f(",");for(r&&s(),Pl(t[e])&&uh(n)?(r||(n=Je(n,",")),R()):r&&(n=Cn(n,","));t[e]==="}"||t[e]==="]";)e++,s();if(e>=t.length)return n;pe();function i(){s();let F=A()||T()||O()||q()||U()||$(!1)||Y();return s(),F}function s(){let F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,K=e,z=a(F);do z=l(),z&&(z=a(F));while(z);return e>K}function a(F){let K=F?Mt:sh,z="";for(;;)if(K(t,e))z+=t[e],e++;else if(ah(t,e))z+=" ",e++;else break;return z.length>0?(n+=z,!0):!1}function l(){if(t[e]==="/"&&t[e+1]==="*"){for(;e<t.length&&!dC(t,e);)e++;return e+=2,!0}if(t[e]==="/"&&t[e+1]==="/"){for(;e<t.length&&t[e]!==`
|
|
45
|
+
`;)e++;return!0}return!1}function u(F){if(c(F)){if(vl(t[e]))for(;e<t.length&&Sl(t[e]);)e++;return s(),!0}return!1}function c(F){a(!0);for(let K of F){let z=e+K.length;if(t.slice(e,z)===K)return e=z,!0}return!1}function f(F){return t[e]===F?(n+=t[e],e++,!0):!1}function h(F){return t[e]===F?(e++,!0):!1}function y(){return h("\\")}function S(){return s(),t[e]==="."&&t[e+1]==="."&&t[e+2]==="."?(e+=3,s(),h(","),!0):!1}function A(){if(t[e]==="{"){n+="{",e++,s(),h(",")&&s();let F=!0;for(;e<t.length&&t[e]!=="}";){let K;if(F?(K=!0,F=!1):(K=f(","),K||(n=Je(n,",")),s()),S(),!(O()||$(!0))){t[e]==="}"||t[e]==="{"||t[e]==="]"||t[e]==="["||t[e]===void 0?n=Cn(n,","):ue();break}s();let be=f(":"),Ye=e>=t.length;be||(Pl(t[e])||Ye?n=Je(n,":"):ge()),i()||(be||Ye?n+="null":ge())}return t[e]==="}"?(n+="}",e++):n=Je(n,"}"),!0}return!1}function T(){if(t[e]==="["){n+="[",e++,s(),h(",")&&s();let F=!0;for(;e<t.length&&t[e]!=="]";)if(F?F=!1:f(",")||(n=Je(n,",")),S(),!i()){n=Cn(n,",");break}return t[e]==="]"?(n+="]",e++):n=Je(n,"]"),!0}return!1}function R(){let F=!0,K=!0;for(;K;)F?F=!1:f(",")||(n=Je(n,",")),K=i();K||(n=Cn(n,",")),n=`[
|
|
46
|
+
${n}
|
|
47
|
+
]`}function O(){let F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,K=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,z=t[e]==="\\";if(z&&(e++,z=!0),fo(t[e])){let be=kl(t[e])?kl:xl(t[e])?xl:ui(t[e])?ui:Ml,Ye=e,N=n.length,oe='"';for(e++;;){if(e>=t.length){let he=x(e-1);return!F&&co(t.charAt(he))?(e=Ye,n=n.substring(0,N),O(!0)):(oe=Je(oe,'"'),n+=oe,!0)}if(e===K)return oe=Je(oe,'"'),n+=oe,!0;if(be(t[e])){let he=e,bt=oe.length;if(oe+='"',e++,n+=oe,s(!1),F||e>=t.length||co(t[e])||fo(t[e])||kt(t[e]))return D(),!0;let ce=x(he-1),Oe=t.charAt(ce);if(Oe===",")return e=Ye,n=n.substring(0,N),O(!1,ce);if(co(Oe))return e=Ye,n=n.substring(0,N),O(!0);n=n.substring(0,N),e=he+1,oe=`${oe.substring(0,bt)}\\${oe.substring(bt)}`}else if(F&&Rl(t[e])){if(t[e-1]===":"&&wl.test(t.substring(Ye+1,e+2)))for(;e<t.length&&Il.test(t[e]);)oe+=t[e],e++;return oe=Je(oe,'"'),n+=oe,D(),!0}else if(t[e]==="\\"){let he=t.charAt(e+1);if(cC[he]!==void 0)oe+=t.slice(e,e+2),e+=2;else if(he==="u"){let ce=2;for(;ce<6&&oh(t[e+ce]);)ce++;ce===6?(oe+=t.slice(e,e+6),e+=6):e+ce>=t.length?e=t.length:pt()}else oe+=he,e+=2}else{let he=t.charAt(e);he==='"'&&t[e-1]!=="\\"?(oe+=`\\${he}`,e++):ih(he)?(oe+=uC[he],e++):(rh(he)||Z(he),oe+=he,e++)}z&&y()}}return!1}function D(){let F=!1;for(s();t[e]==="+";){F=!0,e++,s(),n=Cn(n,'"',!0);let K=n.length;O()?n=lh(n,K,1):n=Je(n,'"')}return F}function q(){let F=e;if(t[e]==="-"){if(e++,ne())return W(F),!0;if(!kt(t[e]))return e=F,!1}for(;kt(t[e]);)e++;if(t[e]==="."){if(e++,ne())return W(F),!0;if(!kt(t[e]))return e=F,!1;for(;kt(t[e]);)e++}if(t[e]==="e"||t[e]==="E"){if(e++,(t[e]==="-"||t[e]==="+")&&e++,ne())return W(F),!0;if(!kt(t[e]))return e=F,!1;for(;kt(t[e]);)e++}if(!ne())return e=F,!1;if(e>F){let K=t.slice(F,e),z=/^0\d/.test(K);return n+=z?`"${K}"`:K,!0}return!1}function U(){return L("true","true")||L("false","false")||L("null","null")||L("True","true")||L("False","false")||L("None","null")}function L(F,K){return t.slice(e,e+F.length)===F?(n+=K,e+=F.length,!0):!1}function $(F){let K=e;if(vl(t[e])){for(;e<t.length&&Sl(t[e]);)e++;let z=e;for(;Mt(t,z);)z++;if(t[z]==="(")return e=z+1,i(),t[e]===")"&&(e++,t[e]===";"&&e++),!0}for(;e<t.length&&!Rl(t[e])&&!fo(t[e])&&(!F||t[e]!==":");)e++;if(t[e-1]===":"&&wl.test(t.substring(K,e+2)))for(;e<t.length&&Il.test(t[e]);)e++;if(e>K){for(;Mt(t,e-1)&&e>0;)e--;let z=t.slice(K,e);return n+=z==="undefined"?"null":JSON.stringify(z),t[e]==='"'&&e++,!0}}function Y(){if(t[e]==="/"){let F=e;for(e++;e<t.length&&(t[e]!=="/"||t[e-1]==="\\");)e++;return e++,n+=`"${t.substring(F,e)}"`,!0}}function x(F){let K=F;for(;K>0&&Mt(t,K);)K--;return K}function ne(){return e>=t.length||co(t[e])||Mt(t,e)}function W(F){n+=`${t.slice(F,e)}0`}function Z(F){throw new Tt(`Invalid character ${JSON.stringify(F)}`,e)}function pe(){throw new Tt(`Unexpected character ${JSON.stringify(t[e])}`,e)}function le(){throw new Tt("Unexpected end of json string",t.length)}function ue(){throw new Tt("Object key expected",e)}function ge(){throw new Tt("Colon expected",e)}function pt(){let F=t.slice(e,e+6);throw new Tt(`Invalid unicode character "${F}"`,e)}}function dC(t,e){return t[e]==="*"&&t[e+1]==="/"}var fC=Ge("JSON_PARSE");function pC(t,e={}){if(!t||typeof t!="string")return e;try{return JSON.parse(t)}catch(n){let o=hC(t);if(o!==void 0)return o;try{let r=ci(t);return JSON.parse(r)}catch(r){let i=fh(t);if(i&&i!==t)try{return JSON.parse(ci(i))}catch{}return fC.error("Failed to parse JSON even with jsonrepair:",{originalError:n,repairError:r,jsonString:t}),e}}}var ch=Symbol("tool-args-parse-failed");function dh(t){if(t==null)return{};let e=typeof t=="string"?t.trim():"";if(!e)return{};let n=pC(e,ch);return n===ch?null:n&&typeof n=="object"&&!Array.isArray(n)?n:null}function hC(t){let e=fh(t);if(e&&e!==t.trim())try{return JSON.parse(e)}catch{return}}function fh(t){let e=t.trimStart();if(!e)return null;let n=e[0];if(n!=="{"&&n!=="[")return null;let o=0,r=!1,i=!1;for(let s=0;s<e.length;s++){let a=e[s];if(r){i?i=!1:a==="\\"?i=!0:a==='"'&&(r=!1);continue}if(a==='"'){r=!0;continue}if(a==="{"||a==="[")o++;else if(a==="}"||a==="]"){if(o--,o===0)return e.slice(0,s+1);if(o<0)return null}}return null}p();var mC=/[A-Za-z\u00C0-\u024F]/g;function gC(t){return t>=1024&&t<=1279||t>=1280&&t<=1327||t>=11744&&t<=11775||t>=42560&&t<=42655||t>=12352&&t<=12543||t>=13312&&t<=19903||t>=19968&&t<=40959||t>=63744&&t<=64255||t>=44032&&t<=55215}function Nl(t){let e=t.codePointAt(0);return e!==void 0&&gC(e)}function yC(t){let e=t.match(mC)?.length??0;if(e<24)return!1;let n=0;for(let o of t)Nl(o)&&n++;return n===0||e>=n*8}function di(t){if(!t||!yC(t))return t;let e="",n=0,o=[...t];for(;n<o.length;){if(!Nl(o[n])){e+=o[n],n++;continue}let r=n;for(;r>0&&o[r-1]===" ";)r--;let i=n+1;for(;i<o.length&&Nl(o[i]);)i++;for(;i<o.length&&o[i]===" ";)i++;let s=r>0?o[r-1]:"",a=i<o.length?o[i]:"";(/[A-Za-z0-9]/.test(s)&&/[A-Za-z0-9]/.test(a)||o[r]===" "||o[i-1]===" ")&&(e+=" "),n=i,r<n&&o[r]===" "&&e.endsWith(" ")&&(e=e.slice(0,-1))}return e.replace(/ {2,}/g," ")}p();var An=Ge("TAGGED_THINKING_PARSER"),ho=["<think>","<thinking>"],mo=["</think>","</thinking>"],EC=Math.max(...ho.map(t=>t.length),...mo.map(t=>t.length));function po(t,e,n){e&&t.push(n==="thought"?{text:e,thought:!0}:{text:e})}function fi(t,e,n){let o=t.length-e;return o<=0||o>EC?!1:n.some(r=>r.startsWith(t.slice(e,e+o)))}function pi(t,e,n){return n.find(o=>t.startsWith(o,e))}function bl(t){if(!t)return t;let e=t;return e=e.replace(/<\/?think(?:ing)?>/gi,""),e=e.replace(/[A-Za-z]*long[_-]?message[_-]?THINKING/gi,""),e=e.replace(/\bM?long[_-]?message\b/gi,""),e=e.replace(/(^|[\s>])THINKING(?=[\sA-Z<]|$)/g,"$1"),e!==t&&(e=e.replace(/[ \t]{2,}/g," ")),e}function ph(t){let e=[];for(let n of t){if(n.thought===!0||typeof n.text!="string"){e.push(n);continue}let o=di(bl(n.text));(o.length>0||/^\s+$/.test(n.text))&&e.push({text:o.length>0?o:n.text})}return e}var Dl=class{mode="text";buffer="";parse(e,n=!1){this.buffer+=e;let o=this.buffer.toLowerCase(),r=[],i="",s=0;for(;s<this.buffer.length;){if(this.mode==="text"){let a=pi(o,s,ho);if(a){An.debug(`taggedThinking: detected open tag "${a}" at offset ${s}`),po(r,i,this.mode),i="",this.mode="thought",s+=a.length;continue}let l=pi(o,s,mo);if(l){An.debug(`taggedThinking: dropping orphan close tag "${l}" at offset ${s}`),po(r,i,this.mode),i="",s+=l.length;continue}if(!n&&(fi(o,s,ho)||fi(o,s,mo)))break}else{let a=pi(o,s,mo);if(a){An.debug(`taggedThinking: detected close tag "${a}" at offset ${s}`),po(r,i,this.mode),i="",this.mode="text",s+=a.length;continue}let l=pi(o,s,ho);if(l){s+=l.length;continue}if(!n&&(fi(o,s,mo)||fi(o,s,ho)))break}i+=this.buffer[s],s+=1}return s<this.buffer.length?(po(r,i,this.mode),this.buffer=this.buffer.slice(s),An.debug(`taggedThinking: emitted ${r.length} part(s), buffered ${this.buffer.length} char(s)`),ph(r)):(this.buffer="",this.mode==="thought"&&i&&An.warn(`taggedThinking: flushing ${i.length} chars of unclosed thought on stream end`),po(r,i,this.mode),An.debug(`taggedThinking: emitted ${r.length} part(s), flush complete`),ph(r))}};function hh(t){return new Dl().parse(t,!0)}p();function mh(t,e="auto"){return e==="openapi_30"?TC(t):t}function TC(t){let e=n=>{if(typeof n!="object"||n===null)return n;if(Array.isArray(n))return n.map(e);let o=n,r={};if(Array.isArray(o.type)){let i=o.type;i.length===2&&i.includes("null")?(r.type=i.find(s=>s!=="null"),r.nullable=!0):r.type=i[0]}else o.type!==void 0&&(r.type=o.type);o.const!==void 0&&(r.enum=[o.const],delete r.const),typeof o.exclusiveMinimum=="number"&&(r.minimum=o.exclusiveMinimum,r.exclusiveMinimum=!0),typeof o.exclusiveMaximum=="number"&&(r.maximum=o.exclusiveMaximum,r.exclusiveMaximum=!0),Array.isArray(o.items)?delete r.items:typeof o.items=="object"&&o.items!==null&&(r.items=e(o.items)),Array.isArray(o.enum)&&(r.enum=o.enum.map(String));for(let[i,s]of Object.entries(o))i==="type"||i==="const"||i==="exclusiveMinimum"||i==="exclusiveMaximum"||i==="items"||i==="enum"||i==="$schema"||i==="$id"||i==="default"||i==="dependencies"||i==="patternProperties"||(r[i]=e(s));return r};return e(t)}p();function vn(t){return!Number.isFinite(t)||t<=0?0:Math.ceil(t/4)}function hi(t){let e=t.candidates||0,n=t.thoughts||0;return n>e?e+n:Math.max(e,n)}function _C(t){return t.total&&t.total>0?Math.max(t.total,(t.prompt||0)+hi(t)):(t.prompt||0)+hi(t)}function CC(t){let e=Math.max(0,t.thoughtsTokens||0),n=hi({candidates:t.outputTokens||0,thoughts:e}),o=Math.max(t.totalTokens||0,(t.inputTokens||0)+n);return{...t,outputTokens:n,thoughtsTokens:e,totalTokens:o}}var _t=Ge("CONVERTER"),Ah="(attached media from previous tool call)";function vh(t,e={}){let n=t.prompt_tokens||0,o=t.completion_tokens||0,r=t.total_tokens||0,i=t.prompt_tokens_details,s=i?.cached_tokens??i?.cachedTokens??t.cached_tokens??t.prompt_cache_hit_tokens??t.cache_read_input_tokens??0,a=t.completion_tokens_details,l=a?.reasoning_tokens??a?.reasoningTokens??t.reasoning_tokens??0,u=Math.max(0,e.estimatedReasoningTokens??0),c=Math.max(0,e.estimatedContentTokens??0),f=l>0?l:u,h=o;f>0&&(o>=f?h=o:h=o+f),(c>0||u>0)&&(h=Math.max(h,c+(l>0?0:u),c+f)),r>n&&(n>0||o>0||f>0)&&(h=Math.max(h,r-n)),f===0&&u>0&&(f=u),f>h&&(f=h);let y=t.usage_is_incomplete===!0||o>0&&n===0||r>0&&n===0&&o===0,S=n,A=r;return(A===0&&(S>0||h>0)||A>0&&S>0&&A<S+h)&&(A=S+h),{promptTokenCount:S,candidatesTokenCount:h,totalTokenCount:A,cachedContentTokenCount:s,thoughtsTokenCount:f,...y?{usageIsIncomplete:!0}:{}}}var AC=64,gh=1024;function yh(t,e){if(t.length===0)return"";if(e.emittedText.length===0)return e.emittedText=t,e.emittedLength=t.length,t;if(e.cumulativeMode){if(t.startsWith(e.emittedText)){let n=t.slice(e.emittedText.length);return e.emittedText=t,e.emittedLength=t.length,n}return e.emittedText.startsWith(t)?(_t.debug(`normalizeStreamingTextDelta: cumulative rewind suppression (emitted=${e.emittedText.length}b, chunk=${t.length}b)`),""):(_t.debug("normalizeStreamingTextDelta: exiting cumulative mode (chunk does not match prior accumulated text)"),e.cumulativeMode=!1,e.emittedText=t,e.emittedLength+=t.length,t)}if(t.length>e.emittedText.length&&t.startsWith(e.emittedText)){let n=e.emittedText.length,r=n>=gh&&e.emittedLength>n?e.emittedLength:n;if(t.length>r){let i=t.slice(r);return e.emittedText=t,e.emittedLength=t.length,e.cumulativeMode=!0,_t.debug(`normalizeStreamingTextDelta: entered cumulative mode (prefix overlap, baseline=${n}b sliceFrom=${r}b -> curr=${t.length}b)`),i}}return t===e.emittedText?t.length>=AC?(e.cumulativeMode=!0,_t.debug(`normalizeStreamingTextDelta: entered cumulative mode (exact repeat, ${t.length}b)`),""):(e.emittedLength+=t.length,t):(e.emittedText.length<gh&&(e.emittedText+=t),e.emittedLength+=t.length,t)}function Sh(t){if(!t||typeof t!="object")return t;let e=JSON.parse(JSON.stringify(t)),n=o=>{if(typeof o!="object"||o===null)return o;if(Array.isArray(o))return o.map(n);let r={};for(let[i,s]of Object.entries(o))if(i==="type"&&typeof s=="string"){let a=s.toLowerCase();a==="integer"?r[i]="integer":a==="number"?r[i]="number":r[i]=a}else i==="minimum"||i==="maximum"||i==="multipleOf"?typeof s=="string"&&!isNaN(Number(s))?r[i]=Number(s):r[i]=s:i==="minLength"||i==="maxLength"||i==="minItems"||i==="maxItems"?typeof s=="string"&&!isNaN(Number(s))?r[i]=parseInt(s,10):r[i]=s:typeof s=="object"?r[i]=n(s):r[i]=s;return r};return n(e)}async function vC(t,e="auto"){let n=[];for(let o of t){let r;if("tool"in o?r=await o.tool():r=o,r.functionDeclarations){for(let i of r.functionDeclarations)if(i.name&&i.description){let s;i.parametersJsonSchema?s={...i.parametersJsonSchema}:i.parameters&&(s=Sh(i.parameters)),s&&(s=mh(s,e)),n.push({type:"function",function:{name:i.name,description:i.description,parameters:s}})}}}return n}function SC(t,e,n={cleanOrphanToolCalls:!0}){let o=[];return IC(t,o),RC(t.contents,o,e),o=Ch(o),n.cleanOrphanToolCalls&&(o=LC(o),o=Ch(o)),o}function wC(t,e){let n=t.candidates?.[0],o=n?.content?.parts||[],r=[],i=[],s=[],a=0;for(let A of o)typeof A=="string"?i.push(A):"text"in A&&A.text?"thought"in A&&A.thought?r.push(A.text):i.push(A.text):"functionCall"in A&&A.functionCall&&(s.push({id:A.functionCall.id||`call_${a}`,type:"function",function:{name:A.functionCall.name||"",arguments:JSON.stringify(A.functionCall.args||{})}}),a+=1);let l={role:"assistant",content:i.join("")||null,refusal:null},u=r.join("");u&&(l.reasoning_content=u),s.length>0&&(l.tool_calls=s);let c=UC(n?.finishReason),f=t.usageMetadata,h={prompt_tokens:f?.promptTokenCount||0,completion_tokens:f?.candidatesTokenCount||0,total_tokens:f?.totalTokenCount||0};f?.cachedContentTokenCount!==void 0&&(h.prompt_tokens_details={cached_tokens:f.cachedContentTokenCount});let y=t.createTime?Number(t.createTime):Date.now(),S=Number.isFinite(y)?Math.floor(y/1e3):Math.floor(Date.now()/1e3);return{id:t.responseId||`gemini-${Date.now()}`,object:"chat.completion",created:S,model:t.modelVersion||e.model,choices:[{index:0,message:l,finish_reason:c,logprobs:null}],usage:h}}function IC(t,e){if(!t.config?.systemInstruction)return;let n=Ih(t.config.systemInstruction);n&&e.push({role:"system",content:n})}function RC(t,e,n){if(Array.isArray(t))for(let o of t)Eh(o,e,n);else t&&Eh(t,e,n)}function Eh(t,e,n){if(typeof t=="string"){e.push({role:"user",content:t});return}if(!xC(t))return;let o=t.parts||[],r=t.role==="model"?"assistant":"user",i=[],s=[],a=[],l=0,u=new Set,c=new Set,f=[];for(let h of o){if(typeof h=="string"){i.push({type:"text",text:h});continue}"text"in h&&"thought"in h&&h.thought&&r==="assistant"&&h.text&&s.push(h.text),"text"in h&&h.text&&!("thought"in h&&h.thought)&&i.push({type:"text",text:h.text});let y=wh(h,n);if(y&&r==="user"&&i.push(y),"functionCall"in h&&h.functionCall&&r==="assistant"){let S=h.functionCall.id;if(S){if(u.has(S)){_t.debug(`Dropping duplicate functionCall id=${S} while converting content`);continue}u.add(S)}a.push({id:S||`call_${l}`,type:"function",function:{name:h.functionCall.name||"",arguments:JSON.stringify(h.functionCall.args||{})}}),l+=1}if(h.functionResponse&&r==="user"){let S=h.functionResponse.id;if(S){if(c.has(S))continue;c.add(S)}let A=MC(h.functionResponse,n);if(A){if(n.splitToolMedia&&Array.isArray(A.content)){let T=[],R=[];for(let O of A.content)O&&(O.type==="image_url"||O.type==="input_audio"||O.type==="video_url"||O.type==="file")?T.push(O):O&&O.type==="text"&&R.push(O);if(T.length>0){let O=R.map(D=>D.text).join(`
|
|
48
|
+
`);A.content=O||"[media attached in following user message]",f.push(...T)}}e.push(A)}}}if(f.length>0&&e.push({role:"user",content:[{type:"text",text:Ah},...f]}),r==="assistant"){if(i.length===0&&a.length===0&&s.length===0)return;let y={role:"assistant",content:i.filter(A=>A.type==="text").map(A=>A.text).join("")||(s.length>0?"":null)};a.length>0&&(y.tool_calls=a);let S=s.join("");S&&(y.reasoning_content=S),e.push(y);return}i.length>0&&e.push({role:"user",content:i})}function PC(t){if(t==null)return"";if(typeof t=="string")return t;if(typeof t=="object"){let e=t,n=e.output;if(typeof n=="string")return n;let o=e.error;if(typeof o=="string")return o}try{return JSON.stringify(t)??String(t)}catch{return String(t)}}function MC(t,e){let n=PC(t.response),o=[];n&&o.push({type:"text",text:n});for(let r of t.parts||[]){if("text"in r&&typeof r.text=="string"){r.text.length>0&&o.push({type:"text",text:r.text});continue}let i=wh(r,e);i&&o.push(i)}return o.length===0?{role:"tool",tool_call_id:t.id||"",content:""}:{role:"tool",tool_call_id:t.id||"",content:o}}function wh(t,e){let{modalities:n}=e;if(t.inlineData?.mimeType&&t.inlineData?.data){let o=t.inlineData.mimeType,r=Th(o),i=t.inlineData.displayName||o;if(r==="image")return n.image?{type:"image_url",image_url:{url:`data:${o};base64,${t.inlineData.data}`}}:Kt("image",i,e);if(o==="application/pdf")return n.pdf?{type:"file",file:{filename:t.inlineData.displayName||"document.pdf",file_data:`data:${o};base64,${t.inlineData.data}`}}:Kt("pdf",i,e);if(r==="audio"){if(!n.audio)return Kt("audio",i,e);let s=kC(o);if(s)return{type:"input_audio",input_audio:{data:`data:${o};base64,${t.inlineData.data}`,format:s}}}return r==="video"?n.video?{type:"video_url",video_url:{url:`data:${o};base64,${t.inlineData.data}`}}:Kt("video",i,e):{type:"text",text:`Unsupported inline media type: ${o} (${i}).`}}if(t.fileData?.mimeType&&t.fileData?.fileUri){let o=t.fileData.displayName||"file",r=t.fileData.fileUri,i=t.fileData.mimeType,s=Th(i);if(s==="image")return n.image?{type:"image_url",image_url:{url:r}}:Kt("image",o,e);if(i==="application/pdf")return n.pdf?{type:"file",file:{filename:o,file_data:r}}:Kt("pdf",o,e);if(s==="video")return n.video?{type:"video_url",video_url:{url:r}}:Kt("video",o,e);let a=t.fileData.displayName?` (${t.fileData.displayName})`:"";return{type:"text",text:`Unsupported file media type: ${i}${a}.`}}return null}function Kt(t,e,n){_t.warn(`Model '${n.model}' does not support ${t} input. Replacing with text placeholder: ${e}`);let o;return t==="pdf"?o=`This model does not support PDF input directly. The read_file tool cannot extract PDF content either. To extract text from the PDF file, try using skills if applicable, or guide user to install pdf skill by running this slash command:
|
|
49
|
+
/extensions install https://github.com/anthropics/skills:document-skills`:o=`This model does not support ${t} input. The read_file tool cannot process this type of file either. To handle this file, try using skills if applicable, or any tools installed at system wide, or let the user know you cannot process this type of file.`,{type:"text",text:`[Unsupported ${t} file: "${e}". ${o}]`}}function Th(t){return t.startsWith("image/")?"image":t.startsWith("audio/")?"audio":t.startsWith("video/")?"video":"file"}function kC(t){return t.includes("wav")?"wav":t.includes("mp3")||t.includes("mpeg")?"mp3":null}function xC(t){return typeof t=="object"&&t!==null&&"role"in t&&"parts"in t&&Array.isArray(t.parts)}function Ih(t){return typeof t=="string"?t:Array.isArray(t)?t.map(e=>Ih(e)).filter(Boolean).join(`
|
|
50
|
+
`):typeof t=="object"&&t!==null&&"parts"in t&&t.parts?.map(n=>typeof n=="string"?n:"text"in n&&n.text||"").filter(Boolean).join(`
|
|
51
|
+
`)||""}function mi(t,e,n=!0){if(e.taggedThinkingParser)return e.taggedThinkingParser.parse(t,n);if(e.responseParsingOptions?.taggedThinkingTags)return hh(t);if(!t)return[];let o=di(bl(t));return o?[{text:o}]:[]}function NC(t,e){let n=t.choices?.[0],o=new Et;if(n){let r=[];if(!e.responseParsingOptions?.taggedThinkingTags){let i=n.message.reasoning_content??n.message.reasoning;i&&r.push({text:i,thought:!0})}if(n.message.content&&r.push(...mi(n.message.content,e)),n.message.tool_calls){for(let i of n.message.tool_calls)if(i.function){let s=dh(i.function.arguments);if(s===null)continue;r.push({functionCall:{id:i.id,name:i.function.name,args:s}})}}o.candidates=[{content:{parts:r,role:"model"},finishReason:Rh(n.finish_reason),index:0,safetyRatings:[]}]}else o.candidates=[];if(o.responseId=t.id,o.createTime=t.created?t.created.toString():new Date().getTime().toString(),o.modelVersion=e.model,o.promptFeedback={safetyRatings:[]},t.usage){let r=t.choices?.[0]?.message,i=r?.reasoning_content??r?.reasoning??"",s=typeof r?.content=="string"?r.content:"";o.usageMetadata=vh(t.usage,{estimatedReasoningTokens:vn(i.length),estimatedContentTokens:vn(s.length)})}return o}function DC(t,e){let n=t.choices?.[0],o=new Et,r=e.toolCallParser;if(!r)throw new Error("convertOpenAIChunkToGemini requires requestContext.toolCallParser \u2014 attach a fresh StreamingToolCallParser at stream start.");if(n){let i=[];if(!e.responseParsingOptions?.taggedThinkingTags){let u=n.delta?.reasoning_content??n.delta?.reasoning;if(u){let c=yh(u,e.reasoningDeltaState??={emittedText:"",emittedLength:0,cumulativeMode:!1});c&&i.push({text:c,thought:!0})}}if(typeof n.delta?.content=="string"){let u=yh(n.delta.content,e.textDeltaState??={emittedText:"",emittedLength:0,cumulativeMode:!1});(u||n.finish_reason)&&i.push(...mi(u,e,!!n.finish_reason))}else n.finish_reason&&i.push(...mi("",e,!0));if(n.delta?.tool_calls)for(let u of n.delta.tool_calls){let c=u.index??0;u.function?.arguments?r.addChunk(c,u.function.arguments,u.id,u.function.name):r.addChunk(c,"",u.id,u.function?.name)}let s=!1;if(n.finish_reason){s=r.hasIncompleteToolCalls();let u=r.getCompletedToolCalls();for(let c of u)c.name&&i.push({functionCall:{id:c.id||`call_${Date.now()}_${Math.random().toString(36).substring(2,9)}`,name:c.name,args:c.args}})}let a=s&&n.finish_reason!=="length"?"length":n.finish_reason,l={content:{parts:i,role:"model"},index:0,safetyRatings:[]};a&&(l.finishReason=Rh(a)),o.candidates=[l]}else o.candidates=[];return o.responseId=t.id,o.createTime=t.created?t.created.toString():new Date().getTime().toString(),o.modelVersion=e.model,o.promptFeedback={safetyRatings:[]},t.usage&&(o.usageMetadata=vh(t.usage,OC(e))),o}function bC(t){let e=t.toolCallParser;if(!e)return null;let n=[],o=e.getStrictCompletedToolCalls(),r=e.hasIncompleteToolCalls();for(let s of o)s.name&&n.push({functionCall:{id:s.id||`call_${Date.now()}_${Math.random().toString(36).substring(2,9)}`,name:s.name,args:s.args}});if(n.push(...mi("",t,!0)),n.length===0&&!r)return null;let i=new Et;return i.candidates=[{content:{parts:n,role:"model"},index:0,safetyRatings:[],finishReason:r?ie.MAX_TOKENS:ie.STOP}],i.responseId=`stream-flush-${Date.now()}`,i.createTime=new Date().getTime().toString(),i.modelVersion=t.model,i.promptFeedback={safetyRatings:[]},i}function OC(t){return{estimatedReasoningTokens:vn(t.reasoningDeltaState?.emittedLength??0),estimatedContentTokens:vn(t.textDeltaState?.emittedLength??0)}}function Rh(t){return t?{stop:ie.STOP,length:ie.MAX_TOKENS,content_filter:ie.SAFETY,function_call:ie.STOP,tool_calls:ie.STOP}[t]||ie.FINISH_REASON_UNSPECIFIED:ie.FINISH_REASON_UNSPECIFIED}function UC(t){if(!t)return"stop";switch(t){case ie.STOP:return"stop";case ie.MAX_TOKENS:return"length";case ie.SAFETY:case ie.RECITATION:case ie.BLOCKLIST:case ie.PROHIBITED_CONTENT:case ie.SPII:case ie.IMAGE_SAFETY:case ie.IMAGE_RECITATION:case ie.IMAGE_PROHIBITED_CONTENT:case ie.IMAGE_OTHER:return"content_filter";case ie.NO_IMAGE:return"stop";default:return"stop"}}function Ol(t){return t.role==="assistant"&&"tool_calls"in t&&Array.isArray(t.tool_calls)&&t.tool_calls.length>0}function _h(t){if(t.role!=="user"||!("content"in t)||!Array.isArray(t.content))return!1;let e=t.content[0];return e?.type==="text"&&e.text===Ah}function LC(t){let e=[],n=new Map,o=new Map,r=new Map,i=new Set,s=new Set;for(let a=0;a<t.length;a+=1){let l=t[a];if(Ol(l)){let u=[],c=new Set;for(let T of l.tool_calls){let R=T.id;!R||s.has(R)||c.has(R)||(c.add(R),u.push(T))}let f=new Set,h=[],y=[],S=!1;for(let T=a+1;T<t.length;T+=1){let R=t[T];if(R.role==="tool"&&"tool_call_id"in R){if(!R.tool_call_id){S=!1;continue}c.has(R.tool_call_id)&&!f.has(R.tool_call_id)?(f.add(R.tool_call_id),h.push(T),S=!0):S=!1;continue}if(_h(R)){S&&y.push(T);continue}if(!(R.role==="assistant"&&!Ol(R)))break}let A=u.filter(T=>f.has(T.id));for(let T of A)s.add(T.id);n.set(a,A),o.set(a,h),r.set(a,y)}}for(let a=0;a<t.length;a+=1){if(i.has(a))continue;let l=t[a];if(Ol(l)){let u=l.reasoning_content,c=n.get(a)??[];if(c.length>0){let f={...l};f.tool_calls=c,e.push(f);for(let h of o.get(a)??[]){let y=t[h];y&&(e.push(y),i.add(h))}for(let h of r.get(a)??[]){let y=t[h];y&&(e.push(y),i.add(h))}}else if(typeof l.content=="string"&&l.content.trim()||u){let f={...l};delete f.tool_calls,e.push(f)}else _t.debug(`cleanOrphanedToolCalls: dropping assistant with ${l.tool_calls.length} orphaned tool call(s) and no text/reasoning content`)}else l.role==="tool"&&"tool_call_id"in l?_t.debug(`cleanOrphanedToolCalls: dropping orphaned tool response ${l.tool_call_id||"<empty>"}`):_h(l)?_t.debug("cleanOrphanedToolCalls: dropping orphaned split tool media message"):e.push(l)}return e}function Ch(t){let e=[];for(let n of t){if(n.role==="assistant"&&e.length>0){let o=e[e.length-1];if(o.role==="assistant"){let r="tool_calls"in o?o.tool_calls||[]:[],i="tool_calls"in n?n.tool_calls||[]:[],s=o.content,a=n.content,l=Array.isArray(s)||Array.isArray(a),u;if(l){let f=Array.isArray(s)?s:typeof s=="string"&&s?[{type:"text",text:s}]:[],h=Array.isArray(a)?a:typeof a=="string"&&a?[{type:"text",text:a}]:[];u=[...f,...h]}else u=[typeof s=="string"?s:"",typeof a=="string"?a:""].filter(Boolean).join("")||null;let c=[...r,...i];o.content=u||null,c.length>0&&(o.tool_calls=c);continue}}e.push(n)}return e}var gi={convertGeminiToolParametersToOpenAI:Sh,convertGeminiToolsToOpenAI:vC,convertGeminiRequestToOpenAI:SC,convertGeminiResponseToOpenAI:wC,convertOpenAIResponseToGemini:NC,convertOpenAIChunkToGemini:DC,flushOpenAIStreamToGemini:bC};p();p();p();var yo="MATILDA_API_KEY";var Sn="matilda-code-1.0",Ul="Matilda",xt="https://matilda.com",wn=`${xt}/api/v1/code`,go="https://matilda.maincode.com",Ph=[xt,go].map(t=>new URL(t).hostname);function uP(t){return Ph.includes(t.toLowerCase())}function In(t){let e=t.toLowerCase();return Ph.some(n=>e===n||e.endsWith(`.${n}`))}function Ll(t,e,n){let o;try{o=new URL(t)}catch{return t}if(o.origin!==e||o.username||o.password)return t;let r=`${o.pathname}${o.search}${o.hash}`;return`${n}${r==="/"?"":r}`}function Re(t){return Ll(t,go,xt)}function GC(t){return Ll(Re(t),xt,go)}function cP(t){let e=GC(t),n=Ll(e,go,`${go}:443`);return n===e?[e]:[e,n]}var dP={id:"matilda",label:"Matilda",description:"Connect to the Matilda Core code API endpoint",protocol:"openai",baseUrl:wn,envKey:yo,models:[{id:Sn,displayName:Ul,contextWindowSize:1048576,description:"Matilda Code model",generationConfig:{openAIRequestProfile:"matilda-code",timeout:6e5,samplingParams:{max_tokens:65536,chat_template_kwargs:{enable_thinking:!0}},schemaCompliance:"openapi_30",splitToolMedia:!0,customHeaders:{"User-Agent":"MatildaCode/0.1"}}}],documentationUrl:"https://help.maincode.com/products/matilda/v1/en/authentication/manage-api-keys"};var Eo=xt,FC="https://matilda.maincode.com",dt="Matilda has moved to https://matilda.com. Update your server address and sign in again.";function yi(t){try{return new URL(t).hostname==="matilda.maincode.com"}catch{return!1}}function Ct(t){if(yi(t))throw new Error(dt);if(Jt(t)){let e=new URL(t);if(e.origin!==Eo||e.username||e.password)throw new Error("Use https://matilda.com for Matilda sign-in and API requests.")}}function Jt(t){try{return new URL(t).hostname==="matilda.com"}catch{return!1}}function ft(t){if(t.baseUrl&&yi(t.baseUrl))return!0;try{return t.baseUrl&&new URL(t.baseUrl).origin!==Eo?!1:JSON.parse(Buffer.from(t.accessToken.split(".")[1]??"","base64url").toString()).iss===FC}catch{return!1}}p();var yP=new Set(["ECONNRESET","ETIMEDOUT","UND_ERR_BODY_TIMEOUT","UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT","UND_ERR_SOCKET","ConnectionClosed","ConnectionReset","ConnectionTimedOut"]),Mh=new Set(["EAI_AGAIN","ECONNREFUSED","EHOSTUNREACH","ENETDOWN","ENETUNREACH","ENOTFOUND","UND_ERR_CONNECT_TIMEOUT","ConnectionRefused","FailedToOpenSocket","HostUnreachable","NetworkUnreachable"]);p();var Ti="NOT_A_PROXY",qC=/^(?:UND_ERR_SOCKET|HPE_.*|ERR_SSL_(?:WRONG_VERSION_NUMBER|PACKET_LENGTH_TOO_LONG|HTTP_REQUEST|UNKNOWN_PROTOCOL))$/,BC={"http:":80,"https:":443},HC=/^(?:(?:.+\.)?localhost|127\.\d{1,3}\.\d{1,3}\.\d{1,3}|::1)$/;function VC(t){let e=t.toLowerCase().replace(/^\*?\./,"");if(e==="*")return{host:"*",wildcard:!0};let n=e.match(/^\[(.+)\](?::(\d+))?$/)??e.match(/^([^:]+):(\d+)$/),o=n?.[1]??e;return n?.[2]?{host:o,port:Number(n[2]),wildcard:!1}:{host:o,wildcard:!1}}function $C(t){return(t??"").split(/[,\s]+/).filter(Boolean)}function _P(t){return $C(t).map(VC)}function KC(t,e){let n=typeof t=="string"?new URL(t):t,o=n.hostname.toLowerCase().replace(/^\[|\]$/g,"");if(HC.test(o))return!0;let r=n.port?Number(n.port):BC[n.protocol];return e.some(i=>i.wildcard||(i.port===void 0||i.port===r)&&(o===i.host||o.endsWith(`.${i.host}`)))}function CP(t){let e=t.connect.bind(t);return t.connect=async n=>{try{return await e(n)}catch(o){let{code:r}=o;throw typeof r=="string"&&qC.test(r)?Object.assign(new Error("The address did not answer as a proxy."),{code:Ti}):o}},t}var Ei;function AP(t,e=[]){Ei=t?{host:new URL(t).host,noProxy:e}:void 0}function Gl(t){return Ei&&URL.canParse(t)&&!KC(t,Ei.noProxy)?Ei.host:void 0}var To="MATILDA_BASE_URL",JC=new Set(["localhost","127.0.0.1","[::1]"]);function At(t){return Re(t.trim()).replace(/\/+$/,"").replace(/\/api\/v1(?:\/code)?$/i,"")}var Nh=new Set;function Dh(t){let e=At(t||We());try{let{origin:n,pathname:o}=new URL(e);return`${n}${o.replace(/\/+$/,"")}`}catch{return e}}function WC(t){Nh.add(Dh(t))}function kP(t,e=(n,o)=>globalThis.fetch(n,o)){return async(n,o)=>{let r=await e(n,o);return WC(t),r}}function xP(t){return Nh.has(Dh(t))}function NP(t){try{let{host:e}=new URL(At(t));return e===new URL(wn).host?"Matilda":e}catch{return t}}function bh(t){let e;try{e=new URL(At(t))}catch{return}if(!(!(e.protocol==="https:"||e.protocol==="http:"&&JC.has(e.hostname))||e.username||e.password||e.search||e.hash))return`${e.origin}${e.pathname.replace(/\/+$/,"")}/api/v1/code`}function Oh(t=process.env){let e=t[To]?.trim();return e?bh(e):void 0}function _o(t,e=process.env){let n=Oh(e);if(!n||!t)return!1;try{return new URL(t).origin===new URL(n).origin}catch{return!1}}function Fl(t){return t.apiKeyEnvKey===yo||YC(t.baseUrl)}function YC(t){if(!t)return!0;let e=t.endsWith("/")?t.slice(0,-1):t,n=null;try{n=new URL(e).hostname.toLowerCase()}catch{n=null}return n!==null&&(In(n)||n==="localhost"||n==="127.0.0.1"||n.endsWith(".matilda")||n==="core-api.matilda")||_o(e)}var _i="its certificate is not from an authority this computer trusts. If it uses a private certificate authority, or your network inspects secure connections, set NODE_EXTRA_CA_CERTS to that authority's certificate file.",zC=new Map([["UNABLE_TO_GET_ISSUER_CERT_LOCALLY",_i],["UNABLE_TO_VERIFY_LEAF_SIGNATURE",_i],["SELF_SIGNED_CERT_IN_CHAIN",_i],["DEPTH_ZERO_SELF_SIGNED_CERT",_i],["CERT_HAS_EXPIRED","its certificate has expired."],["ERR_TLS_CERT_ALTNAME_INVALID","its certificate is for another name. Check the address."]]),kh="its name does not resolve. Check the address and your network.",xh="it refused the connection. Check the address, and that it is running.",XC=new Map([["ENOTFOUND",kh],["EAI_AGAIN",kh],["ECONNREFUSED",xh],["ConnectionRefused",xh],["UND_ERR_CONNECT_TIMEOUT","it did not answer. Check your network, VPN and proxy."]]),Uh=5,QC=/^Proxy response \((\d+)\)/,Lh=t=>t?`the proxy at ${t}`:"your proxy";function ZC(t,e){let n=Lh(e);if(t===407)return`${n} did not accept a user name and password (407). Set them in its address, as http://user:password@host:port.`;let o="add it to NO_PROXY if it is on your own network";return t===403?`${n} blocks it (403). Ask your network team to allow it, or ${o}.`:`${n} could not connect to it (${t}). Check the address, or ${o}.`}function Co(t,e){if(ot(t)!==void 0)return;let n=Gl(e),o=t;for(let r=0;r<=Uh;r++){if(typeof o!="object"||o===null)return;let i=o,s=i.transportCode??i.code,{cause:a,message:l}=i,u=typeof l=="string"?QC.exec(l):null;if(u)return new vt(`Could not reach ${At(e)}: ${ZC(Number(u[1]),n)}`,"UND_ERR_ABORTED");if(s===Ti)return new vt(`Could not reach ${At(e)}: ${Lh(n)} did not answer as a proxy. Check its address, and whether it starts with http:// or https://.`,Ti);if(typeof s=="string"){let c=At(e),f=zC.get(s);if(f)return new vt(`Could not connect securely to ${c}: ${f}`,s);if(Mh.has(s))return new vt(`Could not reach ${n?`the proxy at ${n}, for ${c}`:c}: ${XC.get(s)??"the network cannot reach it. Check your network, VPN and proxy."}`,s)}o=a}}function jC(t){let e=Gl(t);return`${At(t)} did not answer in time${e?` through the proxy at ${e}`:""}. Check your network, VPN and proxy.`}function ql(t,e){let n=t;for(let o=0;o<=Uh;o++){if(typeof n!="object"||n===null)return;let{name:r,code:i,cause:s}=n;if(r==="TimeoutError"||r==="AuthError"&&i==="timeout")return new vt(jC(e),"ETIMEDOUT");n=s}}function eA(t=process.env){let e=t[To]?.trim();if(e&&Ct(e),e&&!bh(e))throw new No(`${To} must be the HTTPS address of your Matilda deployment, such as https://matilda.example.com. HTTP is accepted only for localhost.`)}function We(t=process.env){return eA(t),Oh(t)??wn}p();p();p();es();var tA=new Set(["service.version","service.instance.id","session.id"]);function Wt(t,e){bo.warn(t),e?.push(t)}function Gh(t,e){if(!t)return{};let n={};for(let o of t.split(",")){let r=o.trim();if(!r)continue;let i=r.indexOf("=");if(i<0){Wt(`Skipping malformed OTEL_RESOURCE_ATTRIBUTES entry: "${r}" (hint: percent-encode literal commas as %2C)`,e);continue}let s=r.slice(0,i).trim();if(!s)continue;let a=r.slice(i+1).trim(),l;try{l=decodeURIComponent(s)}catch{Wt(`Invalid percent-encoding in OTEL_RESOURCE_ATTRIBUTES key "${s}", using raw key`,e),l=s}let u;try{u=decodeURIComponent(a)}catch{Wt(`Invalid percent-encoding in OTEL_RESOURCE_ATTRIBUTES for key "${l}", using raw value`,e),u=a}n[l]=u}return n}function Bl(t,e,n){for(let o of tA)o in t&&(Wt(`${e} cannot override reserved key "${o}"; ignoring`,n),delete t[o]);return t}function Fh(t,e){if(t==null)return{};if(typeof t!="object"||Array.isArray(t))return Wt("settings.telemetry.resourceAttributes must be an object; ignoring",e),{};let n={};for(let[o,r]of Object.entries(t)){let i=o.trim();if(!i){Wt("settings.telemetry.resourceAttributes has an empty or whitespace-only key; ignoring",e);continue}typeof r=="string"?n[i]=r:Wt(`settings.telemetry.resourceAttributes value for "${i}" must be a string (got ${typeof r}); ignoring`,e)}return n}function Ao(t){if(t!==void 0)return t==="true"||t==="1"}async function nA(t){let e=t.argv??{},n=t.env??{},o=t.settings??{},r=e.telemetry??Ao(n.MATILDA_TELEMETRY_ENABLED)??o.enabled,i=e.telemetryOtlpEndpoint??n.MATILDA_TELEMETRY_OTLP_ENDPOINT??n.OTEL_EXPORTER_OTLP_ENDPOINT??o.otlpEndpoint,s=e.telemetryOtlpProtocol??n.MATILDA_TELEMETRY_OTLP_PROTOCOL??o.otlpProtocol,a=["grpc","http"].find(U=>U===s);if(s!==void 0&&a===void 0)throw new No(`Invalid telemetry OTLP protocol: ${String(s)}. Valid values are: grpc, http`);let l=e.telemetryLogPrompts??Ao(n.MATILDA_TELEMETRY_LOG_PROMPTS)??o.logPrompts,u=Ao(n.MATILDA_TELEMETRY_INCLUDE_SENSITIVE_SPAN_ATTRIBUTES)??o.includeSensitiveSpanAttributes??!1,c=e.telemetryOutfile??n.MATILDA_TELEMETRY_OUTFILE??o.outfile,f=n.MATILDA_TELEMETRY_OTLP_TRACES_ENDPOINT??n.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT??o.otlpTracesEndpoint,h=n.MATILDA_TELEMETRY_OTLP_LOGS_ENDPOINT??n.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT??o.otlpLogsEndpoint,y=n.MATILDA_TELEMETRY_OTLP_METRICS_ENDPOINT??n.OTEL_EXPORTER_OTLP_METRICS_ENDPOINT??o.otlpMetricsEndpoint,S=[],A=Bl(Gh(n.OTEL_RESOURCE_ATTRIBUTES,S),"OTEL_RESOURCE_ATTRIBUTES",S),T=Bl(Fh(o.resourceAttributes,S),"settings.telemetry.resourceAttributes",S),R={...A,...T},O=n.OTEL_SERVICE_NAME?.trim();O&&(R["service.name"]=O);let D=Object.keys(R).length?R:void 0,q=Ao(n.MATILDA_TELEMETRY_METRICS_INCLUDE_SESSION_ID)??o.metrics?.includeSessionId??!1;return{enabled:r,otlpEndpoint:i,otlpProtocol:a,otlpTracesEndpoint:f,otlpLogsEndpoint:h,otlpMetricsEndpoint:y,logPrompts:l,includeSensitiveSpanAttributes:u,outfile:c,resourceAttributes:D,metrics:{includeSessionId:q},resourceAttributeWarnings:S.length?S:void 0}}p();es();import*as Dt from"node:fs";import*as Xi from"node:path";p();p();p();p();es();p();import{AsyncLocalStorage as oA}from"node:async_hooks";var qh=new oA;p();import*as tt from"node:path";import{promises as vi}from"node:fs";p();p();import rA from"crypto";var Ai=new Uint8Array(256),Ci=Ai.length;function Hl(){return Ci>Ai.length-16&&(rA.randomFillSync(Ai),Ci=0),Ai.slice(Ci,Ci+=16)}p();var Ee=[];for(let t=0;t<256;++t)Ee.push((t+256).toString(16).slice(1));function Bh(t,e=0){return Ee[t[e+0]]+Ee[t[e+1]]+Ee[t[e+2]]+Ee[t[e+3]]+"-"+Ee[t[e+4]]+Ee[t[e+5]]+"-"+Ee[t[e+6]]+Ee[t[e+7]]+"-"+Ee[t[e+8]]+Ee[t[e+9]]+"-"+Ee[t[e+10]]+Ee[t[e+11]]+Ee[t[e+12]]+Ee[t[e+13]]+Ee[t[e+14]]+Ee[t[e+15]]}p();p();import iA from"crypto";var Vl={randomUUID:iA.randomUUID};function sA(t,e,n){if(Vl.randomUUID&&!e&&!t)return Vl.randomUUID();t=t||{};let o=t.random||(t.rng||Hl)();if(o[6]=o[6]&15|64,o[8]=o[8]&63|128,e){n=n||0;for(let r=0;r<16;++r)e[n+r]=o[r];return e}return Bh(o)}var $l=sA;import*as Nt from"os";var Si=Ge("OPENAI_LOGGER"),aA="########",lA=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function uA(t,e){let n=e||process.cwd();if(!t)return tt.join(n,"logs","openai");let o=t;return t==="~"||t.startsWith("~/")?o=tt.join(Nt.homedir(),t.slice(1)):tt.isAbsolute(t)||(o=tt.resolve(n,t)),tt.normalize(o)}function Hh(t){return t&&t.replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||void 0}function cA(t){let e=t.split("#");if(e.length!==3)return;let[,n,o]=e;if(!(!n||!o||!/^\d+$/.test(o)))return`subagent-${n}`}function dA(t){if(t)return Xt(t)?Hh(t):Hh(cA(t))}function fA(t){if(!t)return;let e=t.indexOf(aA);if(e>0)return t.slice(0,e);if(lA.test(t))return t;let n=t.split("#");if(n.length>=3&&n[0])return n[0]}function pA(t){let e=t?.trim(),n=fA(e);return!e&&!n?null:{...e?{promptId:e}:{},...n?{sessionId:n}:{}}}var vo=class{logDir;initialized=!1;constructor(e,n){this.logDir=uA(e,n)}async initialize(){if(!this.initialized)try{await vi.mkdir(this.logDir,{recursive:!0}),this.initialized=!0}catch(e){throw Si.error("Failed to initialize OpenAI logger:",e),new Error(`Failed to initialize OpenAI logger: ${e}`)}}async logInteraction(e,n,o,r){this.initialized||await this.initialize();let i=new Date().toISOString().replace(/:/g,"-"),s=$l().slice(0,8),a=dA(r),l=a?`openai-${i}-${s}-${a}.json`:`openai-${i}-${s}.json`,u=tt.join(this.logDir,l),c={timestamp:new Date().toISOString(),request:e,response:n||null,error:o?{message:o.message,stack:o.stack}:null,context:pA(r),system:{hostname:Nt.hostname(),platform:Nt.platform(),release:Nt.release(),nodeVersion:process.version}};try{return await vi.writeFile(u,JSON.stringify(c,(f,h)=>typeof h=="string"?Nu(h):h,2),"utf-8"),u}catch(f){throw Si.error("Failed to write OpenAI log file:",f),new Error(`Failed to write OpenAI log file: ${f}`)}}async getLogFiles(e){this.initialized||await this.initialize();try{let o=(await vi.readdir(this.logDir)).filter(r=>r.startsWith("openai-")&&r.endsWith(".json")).map(r=>tt.join(this.logDir,r)).sort().reverse();return e?o.slice(0,e):o}catch(n){return n.code==="ENOENT"?[]:(Si.error("Failed to read OpenAI log directory:",n),[])}}async readLogFile(e){try{let n=await vi.readFile(e,"utf-8");return JSON.parse(n)}catch(n){throw Si.error(`Failed to read log file ${e}:`,n),new Error(`Failed to read log file: ${n}`)}}},f0=new vo;p();var hA="MATILDA_CODE_PROFILE_RUNTIME";function Vh(t=process.env){return t[hA]==="1"}var Jl=class{enabled;now;startedAt;requestIndex=0;openAIWireRequestIndex=0;requests=[];openaiWireRequests=[];tools=$h();constructor(e={}){this.enabled=e.enabled??Vh(),this.now=e.now??(()=>new Date().toISOString()),this.startedAt=this.now()}reset(e={}){this.enabled=e.enabled??Vh(),this.startedAt=this.now(),this.requestIndex=0,this.openAIWireRequestIndex=0,this.requests=[],this.openaiWireRequests=[],this.tools=$h()}isEnabled(){return this.enabled}recordGenerateContentRequest(e,n){this.enabled&&(this.requestIndex+=1,this.requests.push({index:this.requestIndex,timestamp:this.now(),source:n.source,model:e.model,stream:n.stream,serializedBytes:Pe(_A(e)),contents:Kh(e.contents),systemInstructionBytes:yA(e.config?.systemInstruction),generationConfigBytes:Pe(Jh(e.config)),tools:TA(e.config?.tools)}))}recordOpenAIWireRequest(e){this.enabled&&(this.openAIWireRequestIndex+=1,this.openaiWireRequests.push({index:this.openAIWireRequestIndex,timestamp:this.now(),...mA(e)}))}recordToolUse(e,n){if(!this.enabled)return;let o=Pe(n),r=this.getToolNameDiagnostics(e);r.uses+=1,r.argBytes+=o,r.maxArgBytes=Math.max(r.maxArgBytes,o),this.tools.toolUseCount+=1,this.tools.totalToolUseArgBytes+=o,this.tools.maxToolUseArgBytes=Math.max(this.tools.maxToolUseArgBytes,o)}recordToolResult(e){if(!this.enabled)return;let n=this.getToolNameDiagnostics(e.name);n.results+=1,n.resultBytes+=e.resultBytes,n.maxResultBytes=Math.max(n.maxResultBytes,e.resultBytes),e.isError&&(n.errors+=1,this.tools.toolResultErrorCount+=1),this.tools.toolResultCount+=1,this.tools.totalToolResultBytes+=e.resultBytes,this.tools.maxToolResultBytes=Math.max(this.tools.maxToolResultBytes,e.resultBytes)}snapshot(){return{enabled:this.enabled,startedAt:this.startedAt,requests:this.requests.map(e=>({...e,contents:{...e.contents,roleCounts:{...e.contents.roleCounts}},tools:{...e.tools}})),openaiWireRequests:this.openaiWireRequests.map(e=>({...e,messageBytesByRole:{...e.messageBytesByRole},topLevelKeys:[...e.topLevelKeys]})),tools:{...this.tools,byName:Object.fromEntries(Object.entries(this.tools.byName).map(([e,n])=>[e,{...n}]))}}}getToolNameDiagnostics(e){let n=this.tools.byName[e];if(n)return n;let o=gA();return this.tools.byName[e]=o,o}},Wl=new Jl;function mA(t){let e=Rn(t),n=Array.isArray(e.messages)?e.messages:[],o=Array.isArray(e.tools)?e.tools:[],r={};for(let i of n){let s=Rn(i),a=typeof s.role=="string"?s.role:"unknown";r[a]=(r[a]??0)+Pe(s.content)}return{model:typeof e.model=="string"?e.model:"unknown",stream:e.stream===!0,bodyBytes:Pe(t),messageCount:n.length,messageBytesByRole:r,toolsCount:o.length,toolSchemaBytes:Pe(o),topLevelKeys:Object.keys(e).sort()}}function $h(){return{toolUseCount:0,toolResultCount:0,toolResultErrorCount:0,totalToolUseArgBytes:0,maxToolUseArgBytes:0,totalToolResultBytes:0,maxToolResultBytes:0,byName:Object.create(null)}}function gA(){return{uses:0,argBytes:0,maxArgBytes:0,results:0,errors:0,resultBytes:0,maxResultBytes:0}}function Kh(t){let e={count:0,roleCounts:{},partCount:0,textBytes:0,functionCallCount:0,functionCallArgBytes:0,functionResponseCount:0,functionResponseBytes:0,inlineDataCount:0,inlineDataBytes:0,fileDataCount:0},n=Array.isArray(t)?t:t==null?[]:[t];for(let o of n){if(e.count+=1,typeof o=="string"){e.roleCounts.user=(e.roleCounts.user??0)+1,e.partCount+=1,e.textBytes+=Pe(o);continue}let r=Rn(o),i=typeof r.role=="string"?r.role:"unknown";e.roleCounts[i]=(e.roleCounts[i]??0)+1;let s=Array.isArray(r.parts)?r.parts:[];EA(s,e)}return e}function yA(t){return Kh(t).textBytes}function EA(t,e){for(let n of t){if(e.partCount+=1,typeof n=="string"){e.textBytes+=Pe(n);continue}let o=Rn(n);typeof o.text=="string"&&(e.textBytes+=Pe(o.text));let r=Kl(o.functionCall);r&&(e.functionCallCount+=1,e.functionCallArgBytes+=Pe(r.args));let i=Kl(o.functionResponse);i&&(e.functionResponseCount+=1,e.functionResponseBytes+=Pe(i.response)+Pe(i.parts));let s=Kl(o.inlineData);s&&(e.inlineDataCount+=1,e.inlineDataBytes+=Pe(s.data)),o.fileData&&(e.fileDataCount+=1)}}function TA(t){let e=Array.isArray(t)?t:[],n=0;for(let o of e){let r=Rn(o),i=Array.isArray(r.functionDeclarations)?r.functionDeclarations:[];n+=i.length}return{count:e.length,functionDeclarationCount:n,schemaBytes:Pe(e)}}function _A(t){return{model:t.model,contents:t.contents,config:Jh(t.config)}}function Jh(t){if(!t)return;let e=Rn(t),n={};for(let[o,r]of Object.entries(e))o!=="abortSignal"&&(n[o]=r);return n}function Pe(t){return t==null?0:typeof t=="string"?Buffer.byteLength(t,"utf8"):Buffer.byteLength(CA(t),"utf8")}function CA(t){try{return JSON.stringify(t)??""}catch{return"[unserializable]"}}function Rn(t){return typeof t=="object"&&t!==null?t:{}}function Kl(t){return typeof t=="object"&&t!==null?t:null}p();function Wh(t){let e=t.candidates?.[0]?.content?.parts;return!e||e.length===0?!1:e.some(AA)}function AA(t){if(t===null||typeof t!="object")return!1;let e=t;return typeof e.text=="string"&&e.text.length>0||e.functionCall!==void 0||e.inlineData!==void 0||e.executableCode!==void 0||e.thought===!0}p();import{AsyncLocalStorage as vA}from"node:async_hooks";var wi=new vA;function Yh(){let t=wi.getStore();return{attempt:t?.attempt??1,requestSetupMs:t?.requestSetupMs,retryTotalDelayMs:t?.retryTotalDelayMs}}var Yt=Ge("LOGGING_CONTENT_GENERATOR"),SA=4096,zh="...[truncated]",wA=SA-zh.length,So=class{constructor(e,n,o){this.wrapped=e;this.config=n;this.modalities=o.modalities,this.splitToolMedia=o.splitToolMedia,this.generatorAuthType=o.authType,o.enableOpenAILogging&&(this.openaiLogger=new vo(o.openAILoggingDir,n.getWorkingDir()),this.schemaCompliance=o.schemaCompliance)}openaiLogger;schemaCompliance;modalities;splitToolMedia;generatorAuthType;getWrapped(){return this.wrapped}logApiRequest(e,n,o){let r=JSON.stringify(e);ts(this.config,new rs(n,o,r,St.getStore()))}_logApiResponse(e,n,o,r,i,s){os(this.config,new ss(e,o,n,r,this.generatorAuthType,i,s,St.getStore()))}_logApiError(e,n,o,r,i){let s=ku(o),a=Vn(o),l=o?.requestID||o?.request_id||e,u=ot(o);ns(this.config,new is({responseId:l,model:r,durationMs:n,promptId:i,authType:this.generatorAuthType,errorMessage:s,errorType:a,statusCode:u,subagentName:St.getStore()}))}safelyLogApiError(e,n,o,r,i){try{this._logApiError(e,n,o,r,i)}catch(s){Yt.warn("Failed to log API error:",s)}}safelyLogApiResponse(e,n,o,r,i,s){try{this._logApiResponse(e,n,o,r,i,s)}catch(a){Yt.warn("Failed to log API response:",a)}}getClientVisibleModelId(e,n){return("isManagedMatildaModel"in this.config&&typeof this.config.isManagedMatildaModel=="function"?this.config.isManagedMatildaModel(e):!1)&&"getPublicModelId"in this.config&&typeof this.config.getPublicModelId=="function"?this.config.getPublicModelId(e):n||e}async generateContent(e,n){let o=Yh(),r=Go(e.model,n);try{r.setAttribute("llm_request.stream",!1)}catch{}let i=ji.setSpan(ht.active(),r),s=Date.now(),a=Xt(n),l=this.startCaptureSession();try{Wl.recordGenerateContentRequest(e,{stream:!1,source:"generateContent"}),a||(Oo(this.config,r,e.config?.systemInstruction),Uo(this.config,r,e.config?.tools));let u=await ht.with(i,async()=>{a||this.logApiRequest(this.toContents(e.contents),e.model,n);let c=await l.wrap(()=>this.wrapped.generateContent(e,n)),f=Date.now()-s,h=a?void 0:this.extractResponseText(c);a||Lo(this.config,r,h),this.safelyLogApiResponse(c.responseId??"",f,this.getClientVisibleModelId(e.model,c.modelVersion),n,c.usageMetadata,h);try{await this.safelyLogOpenAIInteraction(await l.resolve(e),c,void 0,n)}catch(y){Yt.warn("Failed to log OpenAI interaction:",y)}return c});return Ot(r,{success:!0,inputTokens:u.usageMetadata?.promptTokenCount,outputTokens:u.usageMetadata?.candidatesTokenCount,cachedInputTokens:u.usageMetadata?.cachedContentTokenCount,durationMs:Date.now()-s,responseId:u.responseId||void 0,finishReason:u.candidates?.[0]?.finishReason||void 0,thoughtsTokenCount:u.usageMetadata?.thoughtsTokenCount,subagentName:St.getStore()||void 0,...o}),u}catch(u){let c=Date.now()-s,f=e.config?.abortSignal?.aborted??!1;throw Ot(r,{success:!1,durationMs:c,error:f?qo:Fo,errorType:Vn(u),errorStatusCode:ot(u),subagentName:St.getStore()||void 0,...o}),await ht.with(i,async()=>{this.safelyLogApiError("",c,u,this.getClientVisibleModelId(e.model),n);try{await this.safelyLogOpenAIInteraction(await l.resolve(e),void 0,u,n)}catch(h){Yt.warn("Failed to log OpenAI interaction:",h)}}),u}}async generateContentStream(e,n){let o=Yh(),r=Go(e.model,n);try{r.setAttribute("llm_request.stream",!0)}catch{}let i=ji.setSpan(ht.active(),r),s=Date.now(),a=Xt(n),l=this.startCaptureSession(),u;try{Wl.recordGenerateContentRequest(e,{stream:!0,source:"generateContentStream"}),a||(Oo(this.config,r,e.config?.systemInstruction),Uo(this.config,r,e.config?.tools)),u=await ht.with(i,async()=>(a||this.logApiRequest(this.toContents(e.contents),e.model,n),l.wrap(()=>this.wrapped.generateContentStream(e,n))))}catch(f){let h=Date.now()-s;ht.with(i,()=>this.safelyLogApiError("",h,f,e.model,n));let y=e.config?.abortSignal?.aborted??!1;Ot(r,{success:!1,durationMs:h,error:y?qo:Fo,errorType:Vn(f),errorStatusCode:ot(f),subagentName:St.getStore()||void 0,...o});try{await this.safelyLogOpenAIInteraction(await l.resolve(e),void 0,f,n)}catch(S){Yt.warn("Failed to log OpenAI interaction:",S)}throw f}let c;if(this.openaiLogger)try{c=await l.resolve(e)}catch(f){Yt.warn("Failed to resolve OpenAI request:",f)}return ht.with(i,()=>this.loggingStreamWrapper(u,s,n,e.model,c,r,i,e.config?.abortSignal,o))}startCaptureSession(){let e,n=!this.openaiLogger;return{wrap:o=>n?o():qh.run(r=>{e=r},o),resolve:async o=>this.openaiLogger?e??await this.buildOpenAIRequestForLogging(o):void 0}}async*loggingStreamWrapper(e,n,o,r,i,s,a,l,u){let c=Xt(o),f=!c||!!this.openaiLogger,h=[],y="",S="",A,T=!1,R,O=!1,D,q=St.getStore(),U,L=!1,$=W=>a?ht.with(a,W):W(),Y=5*6e4,x,ne=s?()=>{L||(x!==void 0&&clearTimeout(x),x=setTimeout(()=>{try{s.setAttribute("stream.timed_out",!0)}catch{}Ot(s,{success:!1,durationMs:Date.now()-n,error:"Stream span timed out (idle)",responseId:y||void 0,subagentName:q||void 0,...u}),L=!0},Y),x.unref())}:void 0;try{for await(let ue of e){!y&&ue.responseId&&(y=ue.responseId),!S&&ue.modelVersion&&(S=ue.modelVersion),f&&h.push(ue),ue.usageMetadata&&(A=ue.usageMetadata);let ge=ue.candidates?.[0];ge?.finishReason&&(R=ge.finishReason),ue.functionCalls?.length&&(O=!0),U===void 0&&Wh(ue)&&(U=Date.now()-n),ne?.(),yield ue,x!==void 0&&(clearTimeout(x),x=void 0)}x!==void 0&&(clearTimeout(x),x=void 0);let W=Date.now()-n,Z=f?this.consolidateGeminiResponsesForLogging(h):void 0,pe=c?void 0:this.extractResponseText(Z),le=!R&&!O?new Error("Model stream ended without a finish reason"):void 0;le&&(T=!0,D=le),L||(le?($(()=>this.safelyLogApiError(y,W,le,this.getClientVisibleModelId(r,S),o)),await $(()=>this.safelyLogOpenAIInteraction(i,Z,le,o))):($(()=>this.safelyLogApiResponse(y,W,this.getClientVisibleModelId(r,S),o,A,pe)),!c&&s&&Lo(this.config,s,pe),await $(()=>this.safelyLogOpenAIInteraction(i,Z,void 0,o))))}catch(W){if(T=!0,D=W,!L){let Z=Date.now()-n;$(()=>this.safelyLogApiError(y,Z,W,this.getClientVisibleModelId(r,S),o)),await $(()=>this.safelyLogOpenAIInteraction(i,void 0,W,o))}throw W}finally{if(x!==void 0&&clearTimeout(x),s&&!L){let W=l?.aborted??!1;Ot(s,{success:!T,inputTokens:A?.promptTokenCount,outputTokens:A?.candidatesTokenCount,cachedInputTokens:A?.cachedContentTokenCount,ttftMs:U,durationMs:Date.now()-n,error:T?W?qo:Fo:void 0,responseId:y||void 0,finishReason:R,thoughtsTokenCount:A?.thoughtsTokenCount,subagentName:q||void 0,errorType:D?Vn(D):void 0,errorStatusCode:D?ot(D):void 0,...u})}}}async buildOpenAIRequestForLogging(e){if(!this.openaiLogger)return;let n=this.createLoggingRequestContext(e.model),o=gi.convertGeminiRequestToOpenAI(e,n,{cleanOrphanToolCalls:!1}),r={model:e.model,messages:o};return e.config?.tools&&(r.tools=await gi.convertGeminiToolsToOpenAI(e.config.tools,this.schemaCompliance??"auto")),e.config?.temperature!==void 0&&(r.temperature=e.config.temperature),e.config?.topP!==void 0&&(r.top_p=e.config.topP),e.config?.maxOutputTokens!==void 0&&(r.max_tokens=e.config.maxOutputTokens),e.config?.presencePenalty!==void 0&&(r.presence_penalty=e.config.presencePenalty),e.config?.frequencyPenalty!==void 0&&(r.frequency_penalty=e.config.frequencyPenalty),r}createLoggingRequestContext(e){return{model:e,modalities:this.modalities??{},splitToolMedia:this.splitToolMedia??!0,startTime:0}}async logOpenAIInteraction(e,n,o,r){if(!this.openaiLogger||!e)return;let i=n?this.convertGeminiResponseToOpenAIForLogging(n,e):void 0;await this.openaiLogger.logInteraction(e,i,o instanceof Error?o:o?new Error(String(o)):void 0,r)}async safelyLogOpenAIInteraction(e,n,o,r){try{await this.logOpenAIInteraction(e,n,o,r)}catch(i){Yt.warn("Failed to log OpenAI interaction:",i)}}convertGeminiResponseToOpenAIForLogging(e,n){let o=new Et;return Object.assign(o,e),o.modelVersion=this.getClientVisibleModelId(n.model,e.modelVersion),gi.convertGeminiResponseToOpenAI(o,this.createLoggingRequestContext(n.model))}consolidateGeminiResponsesForLogging(e){if(e.length===0)return;let n=new Et,o=[],r=new Map,i,s;for(let u of e){u.usageMetadata&&(s=u.usageMetadata);let c=u.candidates?.[0];c?.finishReason&&(i=c.finishReason);let f=c?.content?.parts??[];for(let h of f){if(typeof h=="string"){o.push({text:h});continue}if("text"in h){h.text&&o.push({text:h.text,...h.thought?{thought:!0}:{},...h.thoughtSignature?{thoughtSignature:h.thoughtSignature}:{}});continue}if("functionCall"in h&&h.functionCall){let y=h.functionCall.id||h.functionCall.name||"tool_call",S=r.get(y),A={functionCall:h.functionCall};S!==void 0?o[S]=A:(r.set(y,o.length),o.push(A));continue}if("functionResponse"in h&&h.functionResponse){o.push({functionResponse:h.functionResponse});continue}o.push(h)}}let a=e[e.length-1],l=a.candidates?.[0];return n.responseId=a.responseId,n.createTime=a.createTime,n.modelVersion=a.modelVersion,n.promptFeedback=a.promptFeedback,n.usageMetadata=s,n.candidates=[{content:{role:l?.content?.role||"model",parts:o},...i?{finishReason:i}:{},index:0,safetyRatings:l?.safetyRatings||[]}],n}extractResponseText(e){let n=e?.candidates?.[0]?.content?.parts;if(!n?.length)return;let o="",r=!1,i=!1,s=a=>{if(r=!0,i)return;let l=wA-o.length;if(a.length<=l){o+=a;return}o+=a.slice(0,Math.max(0,l)),i=!0};for(let a of n){if(typeof a=="string"){s(a);continue}"text"in a&&typeof a.text=="string"&&!("thought"in a&&a.thought)&&s(a.text)}if(r)return i?`${o}${zh}`:o}async countTokens(e){return this.wrapped.countTokens(e)}async embedContent(e){return this.wrapped.embedContent(e)}useSummarizedThinking(){return this.wrapped.useSummarizedThinking()}toContents(e){return Array.isArray(e)?e.map(n=>this.toContent(n)):[this.toContent(e)]}toContent(e){return Array.isArray(e)?{role:"user",parts:this.toParts(e)}:typeof e=="string"?{role:"user",parts:[{text:e}]}:"parts"in e?{...e,parts:e.parts?this.toParts(e.parts.filter(n=>n!=null)):[]}:{role:"user",parts:[this.toPart(e)]}}toParts(e){return e.map(n=>this.toPart(n))}toPart(e){if(typeof e=="string")return{text:e};if("thought"in e&&e.thought){let n=`[Thought: ${e.thought}]`,o={...e};if(delete o.thought,"functionCall"in o||"functionResponse"in o||"inlineData"in o||"fileData"in o)return o;let i=o.text,s=i?String(i):"",a=s?`${s}
|
|
52
|
+
${n}`:n;return{...o,text:a}}return e}};p();import{AsyncLocalStorage as IA}from"node:async_hooks";var Yl="x-matilda-organization-id",RA=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function J0(t){if(t!==void 0){if(typeof t!="string"||t.length!==36||!RA.test(t))throw new Error("--organization-id must be a single UUID.");return t.toLowerCase()}}var Xh=new IA;function Xl(t){let e=Xh.getStore();return e?e.organizationId:t?.getOrganizationId?.()}function PA(t,e){return Xh.run({organizationId:t},e)}function W0(t,e){return PA(Xl(t),e)}function zl(t){if(t)try{let e=new URL(t);if((e.origin===xt&&e.protocol==="https:"&&!e.port||e.hostname==="core-api.matilda"&&(e.protocol==="http:"||e.protocol==="https:"))&&!e.username&&!e.password&&!e.search&&!e.hash)return e}catch{}}function MA(t){let e=zl(t.baseUrl);return!!e&&e.pathname.replace(/\/$/,"")==="/api/v1/code"&&t.authType==="openai"}function Ql(t,e,n){if(!(e===void 0&&n===void 0)&&!MA(t))throw new Error("Organization selection and credit spending require the first-party Matilda Core Code endpoint.")}function Qh(t){for(let e of Object.keys(t??{})){let n=e.toLowerCase();if(n===Yl)throw new Error("Select the organization with --organization-id, not customHeaders.");if(n.startsWith("x-matilda-usage-credit-"))throw new Error("Code credit spending through customHeaders is not supported.")}}function Y0(t,e,n,o,r){Ql(n,o,r);let i=zl(n.baseUrl),s=zl(t instanceof Request?t.url:String(t));if(!s||s.origin!==i.origin||s.pathname!=="/api/v1/code/chat/completions")throw new Error("The selected organization cannot be sent to this endpoint.");let a=e.get(Yl);if(a!==null&&a!==o)throw new Error("The request organization conflicts with --organization-id.");o!==void 0&&e.set(Yl,o)}p();function Zh(t){switch(t){case"openai":return"OPENAI_API_KEY";default:return"API_KEY"}}function jh(t){switch(t){case"openai":return"OPENAI_MODEL";default:return"MODEL"}}var Mn=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,new.target.prototype)}},Ii=class extends Mn{name="StrictMissingCredentialsError";code="STRICT_MISSING_CREDENTIALS";constructor(e,n,o){let r=e||"(unknown)",i=n||"(unknown)";super(`Missing credentials for modelProviders model '${i}'. `+(o?`Current configured envKey: '${o}'. Set that environment variable, or update modelProviders.${r}[].envKey.`:`Configure modelProviders.${r}[].envKey and set that environment variable.`))}},Ri=class extends Mn{name="StrictMissingModelIdError";code="STRICT_MISSING_MODEL_ID";constructor(e){super(`Missing model id for strict modelProviders resolution (authType: ${e}).`)}},Pi=class extends Mn{name="MissingApiKeyError";code="MISSING_API_KEY";constructor(e){super(`Missing API key for ${e.authType} auth. Current model: '${e.model||"(unknown)"}', baseUrl: '${e.baseUrl||"(default)"}'. Provide an API key via settings (security.auth.apiKey), or set the environment variable '${e.envKey}'.`)}},Mi=class extends Mn{name="MissingModelError";code="MISSING_MODEL";constructor(e){super(`Missing model for ${e.authType} auth. Set the environment variable '${e.envKey}'.`)}};p();import nu from"node:process";p();var ki=Sn,eM="text-embedding-v4";p();function oM(t,e,n,o=2048){let r=e-n-o;return!Number.isFinite(r)||r<=0?0:Math.min(t,r)}var te={"32k":32768,"64k":65536,"128k":131072,"200k":2e5,"256k":262144,"272k":272e3,"400k":4e5,"512k":524288,"1m":1e6,"4k":4096,"8k":8192,"16k":16384};function xi(t){let e=(t??"").toLowerCase().trim();return e=e.replace(/^.*\//,""),e=e.split("|").pop()??e,e=e.split(":").pop()??e,e=e.replace(/\s+/g,"-"),e=e.replace(/-preview/g,""),e.match(/^kimi-k2-\d{4}$/)||(e=e.replace(/-(?:\d{4,}|\d+x\d+b|v\d+(?:\.\d+)*|(?<=-[^-]+-)\d+(?:\.\d+)+|latest|exp)$/g,"")),e=e.replace(/-(?:\d?bit|int[48]|bf16|fp16|q[45]|quantized)$/g,""),e}var kA=[[/^gemini-3/,te["1m"]],[/^gemini-/,te["1m"]],[/^gpt-5/,te["272k"]],[/^gpt-/,te["128k"]],[/^o\d/,te["200k"]],[/^claude-/,te["200k"]],[/^glm-5(\.[01])?(-|$)/,202752],[/^glm-(?:[5-9]|\d{2,})/,te["1m"]],[/^glm-/,202752],[/^matilda-code$/,te["1m"]],[/^matilda/,te["256k"]],[/^ornith/,te["64k"]],[/^kimi-/,te["256k"]],[/^seed-oss/,te["512k"]]],em=[[/^gemini-3/,te["64k"]],[/^gemini-/,te["8k"]],[/^gpt-5/,te["128k"]],[/^gpt-/,te["16k"]],[/^o\d/,te["128k"]],[/^claude-opus-4-6/,te["128k"]],[/^claude-sonnet-4-6/,te["64k"]],[/^claude-/,te["64k"]],[/^glm-5\.2/,te["64k"]],[/^glm-5/,te["64k"]],[/^glm-4\.7/,te["16k"]],[/^matilda-code$/,te["64k"]],[/^matilda$/,te["64k"]],[/^matilda-core$/,te["64k"]],[/^ornith/,te["32k"]],[/^kimi-k2\.5/,te["32k"]]];function xA(t,e="input"){let n=xi(t),o=e==="output"?em:kA;for(let[r,i]of o)if(r.test(n))return i}function rM(t){let e=xi(t);return em.some(([n])=>n.test(e))}function NA(t,e="input"){return xA(t,e)}function Ni(t,e="input"){return NA(t,e)??(e==="output"?32e3:131072)}p();p();var tm={image:!0,pdf:!0,audio:!0,video:!0},DA=[[/^gemini-3/,tm],[/^gemini-/,tm],[/^gpt-5/,{image:!0}],[/^gpt-/,{image:!0}],[/^o\d/,{image:!0}],[/^claude-/,{image:!0,pdf:!0}],[/^glm-4\.5v/,{image:!0}],[/^glm-5(?:-|$)/,{}],[/^glm-/,{}],[/^kimi-k2\.5/,{image:!0,video:!0}],[/^kimi-/,{}],[/^doubao-seed(ance|ream)/,{}],[/^doubao-seed/,{image:!0}],[/^doubao-.*(vision|vl)/,{image:!0}],[/^doubao/,{}]];function Di(t){let e=xi(t);for(let[n,o]of DA)if(n.test(e))return{...o};return{}}p();function nm(t,e,n={kind:"default"}){for(let o of t)if(om(o.value))return{value:o.value,source:o.source};return{value:e,source:n}}function Zl(t){for(let e of t)if(om(e.value))return{value:e.value,source:e.source}}function om(t){return!(t==null||typeof t=="string"&&t.trim()==="")}function bi(t){return{kind:"cli",detail:t}}function bA(t){return{kind:"env",envKey:t}}function wo(t){return{kind:"settings",settingsPath:t}}function kn(t,e,n){return{kind:"modelProviders",authType:t,modelId:e,detail:n}}function jl(t){return{kind:"default",detail:t}}function Oi(t){return{kind:"computed",detail:t}}function Ui(t,e,n){let o=t[e];return{value:o!==void 0?n?n(o):o:void 0,source:bA(e)}}function De(t,e){return{value:t,source:e}}p();var Io=["samplingParams","timeout","maxRetries","retryErrorCodes","enableCacheControl","schemaCompliance","reasoning","contextWindowSize","customHeaders","extra_body","modalities","splitToolMedia","openAIRequestProfile"],rm=["model","apiKey","apiKeyEnvKey","baseUrl"],eu=[...rm,...Io],im={openai:{apiKey:["OPENAI_API_KEY"],baseUrl:["OPENAI_BASE_URL"],model:["OPENAI_MODEL","MATILDA_MODEL"]}},sm={openai:ki};var xn="MATILDA_API_KEY",OA="matilda-code-1.0";function UA(t,e){if(!t)return!0;try{let{hostname:n}=new URL(t);return In(n)||_o(t,e)}catch{return!1}}function LA(t,e,n,o){if(o?.timeout!==void 0)return;let r=t.MATILDA_CODE_API_TIMEOUT_MS;if(r===void 0)return;let i=Number(r);Number.isFinite(i)&&i>0&&(e.timeout=Math.floor(i),n.timeout={kind:"env",envKey:"MATILDA_CODE_API_TIMEOUT_MS"})}function AM(t){let{authType:e,cli:n,settings:o,env:r,modelProvider:i,proxy:s}=t,a=[],l={},u=e?im[e]:{model:[],apiKey:[],baseUrl:[]},c=[];e&&i&&c.push(De(i.id,kn(e,i.id,"model.id"))),n?.model&&c.push(De(n.model,bi("--model"))),e==="openai"&&r[xn]&&!r.OPENAI_MODEL&&!r.MATILDA_MODEL&&c.push(De(OA,{kind:"env",envKey:xn}));for(let U of u.model)c.push(Ui(r,U));o?.model&&c.push(De(o.model,wo("model.name")));let f=e?sm[e]:"",h=nm(c,f,jl(f));l.model=h.source;let y=[];e&&i?.baseUrl&&y.push(De(i.baseUrl,kn(e,i.id,"baseUrl"))),n?.baseUrl&&y.push(De(n.baseUrl,bi("--openaiBaseUrl"))),e==="openai"&&r[xn]&&!r.OPENAI_BASE_URL&&(r[To]?.trim()||!o?.baseUrl)&&y.push(De(We(r),{kind:"env",envKey:xn}));for(let U of u.baseUrl)y.push(Ui(r,U));o?.baseUrl&&y.push(De(o.baseUrl,wo("security.auth.baseUrl")));let S=Zl(y)??(e==="openai"?{value:We(r),source:jl("the configured Matilda endpoint")}:void 0);S&&(Ct(Re(S.value)),l.baseUrl=S.source);let A=[];if(e&&i?.envKey){let U=r[i.envKey];U&&A.push(De(U,{kind:"env",envKey:i.envKey,via:kn(e,i.id,"envKey")}))}if(n?.apiKey&&A.push(De(n.apiKey,bi("--openaiApiKey"))),!i?.envKey){let U=r[xn];if(e==="openai"&&U&&UA(S?.value,r)&&A.push(De(U,{kind:"env",envKey:xn})),S?.source.kind!=="default")for(let L of u.apiKey)A.push(Ui(r,L))}o?.apiKey&&A.push(De(o.apiKey,wo("security.auth.apiKey")));let T=Zl(A);T&&(l.apiKey=T.source);let R;e&&i?.envKey&&(R=i.envKey,l.apiKeyEnvKey={...kn(e,i.id,"envKey"),envKey:i.envKey});let O=Li(o?.generationConfig,i?.generationConfig,e,i?.id??h.value,r),D=O.config;Object.assign(l,O.sources);let q={authType:e,model:h.value||"",apiKey:T?.value,apiKeyEnvKey:R,baseUrl:S&&Re(S.value),proxy:s,...D};return s&&(l.proxy=Oi("Config.getProxy()")),l.authType=Oi("provided by caller"),{config:q,sources:l,warnings:a}}function Li(t,e,n,o,r){let i={},s=GA(t,e,n,o,i);return LA(r,s,i,e),{config:s,sources:i}}function GA(t,e,n,o,r){let i={};for(let s of Io)n&&e&&s in e?(i[s]=e[s],r[s]=kn(n,o||"",`generationConfig.${s}`)):t&&s in t&&(i[s]=t[s],r[s]=wo(`model.generationConfig.${s}`));return i.modalities===void 0&&o&&(i.modalities=Di(o),r.modalities=Oi("auto-detected from model")),i}p();var Gi="$runtime|";function IM(t){let e=t;for(;e.startsWith(Gi);){let n=e.split("|").slice(2).join("|");if(!n)break;e=n}return e}p();p();var am=Ge("MODEL_REGISTRY");function lm(t,e){return e?`${t}\0${Re(e)}`:t}var Fi=class{constructor(e,n=!1){this.noFallbackServer=n;this.reloadModels(e)}models=new Map;registerModels(e){let n=new Map;for(let o of e){if(this.noFallbackServer&&!o.baseUrl)continue;let r=lm(o.id,o.baseUrl);if(n.has(r)){am.warn(`Duplicate model id "${o.id}"${o.baseUrl?` with baseUrl "${o.baseUrl}"`:""} for authType "openai". Using the first registered config.`);continue}n.set(r,this.resolveModelConfig(o))}return n}getModels(){return Array.from(this.models.values()).map(e=>({id:e.id,label:e.name,description:e.description,capabilities:e.capabilities,authType:e.authType,isVision:e.capabilities?.vision??!1,contextWindowSize:e.generationConfig.contextWindowSize??Ni(e.id),modalities:e.generationConfig.modalities??Di(e.id),baseUrl:e.baseUrl,envKey:e.envKey}))}findModel(e,n){if(n)return this.models.get(lm(e,n));let o=this.models.get(e);if(o)return o;for(let r of this.models.values())if(r.id===e)return r}containsModel(e,n){return this.findModel(e,n)!==void 0}getDefaultModel(){return this.models.values().next().value}resolveModelConfig(e){return this.validateModelConfig(e),{...e,authType:"openai",name:e.name||e.id,baseUrl:Re(e.baseUrl||We()),generationConfig:{...e.generationConfig??{}},capabilities:e.capabilities||{}}}validateModelConfig(e){if(!e.id)throw new Error("Model config in authType 'openai' missing required field: id")}reloadModels(e){this.models=new Map;for(let[n,o]of Object.entries(e??{})){if(n!=="openai"){am.warn(`Invalid authType key "${n}" in modelProviders config. Expected one of: ${Object.values(Pn).join(", ")}. Skipping.`);continue}this.models=this.registerModels(o)}}};var um=class t{modelRegistry;currentAuthType;_generationConfig;generationConfigSources;strictModelProviderSelection=!1;onModelChange;authTypeWasExplicitlyProvided;settingsGenerationConfig;runtimeModelSnapshots=new Map;activeRuntimeModelSnapshotId;static deepClone(e){if(e===null||typeof e!="object")return e;if(Array.isArray(e))return e.map(o=>t.deepClone(o));let n={};for(let o of Object.keys(e))n[o]=t.deepClone(e[o]);return n}constructor(e={}){this.modelRegistry=new Fi(e.modelProvidersConfig,e.noFallbackServer),this.onModelChange=e.onModelChange,this._generationConfig={...e.generationConfig||{}},this.generationConfigSources=e.generationConfigSources||{},this.settingsGenerationConfig=t.deepClone(e.settingsGenerationConfig),this.authTypeWasExplicitlyProvided=e.initialAuthType!==void 0,this.currentAuthType=e.initialAuthType}createStateSnapshotForRollback(){return{currentAuthType:this.currentAuthType,generationConfig:t.deepClone(this._generationConfig),generationConfigSources:t.deepClone(this.generationConfigSources),strictModelProviderSelection:this.strictModelProviderSelection,activeRuntimeModelSnapshotId:this.activeRuntimeModelSnapshotId}}rollbackToStateSnapshot(e){this.currentAuthType=e.currentAuthType,this._generationConfig=e.generationConfig,this.generationConfigSources=e.generationConfigSources,this.strictModelProviderSelection=e.strictModelProviderSelection,this.activeRuntimeModelSnapshotId=e.activeRuntimeModelSnapshotId}getModel(){return this._generationConfig.model||ki}getCurrentAuthType(){return this.currentAuthType}wasAuthTypeExplicitlyProvided(){return this.authTypeWasExplicitlyProvided}getAvailableModels(){return this.currentAuthType?this.modelRegistry.getModels():[]}getAllConfiguredModels(){let e=this.getRuntimeModelOption();return[...e?[e]:[],...this.modelRegistry.getModels()]}getResolvedModel(e){let n=this.modelRegistry.findModel(e);if(n)return{...n,generationConfig:{...this.resolveEntryGenerationConfig(n).config,customHeaders:n.generationConfig.customHeaders}}}resolveEntryGenerationConfig(e){return Li(this.settingsGenerationConfig,e.generationConfig,e.authType,e.id,nu.env)}isManagedMatildaResolvedModel(e){return e?.id===Sn&&e?.envKey===yo&&e?.baseUrl===wn&&e?.generationConfig?.openAIRequestProfile==="matilda-code"}isManagedMatildaModel(e){let n=e.trim();return!n||!this.currentAuthType?!1:this.isManagedMatildaResolvedModel(this.modelRegistry.findModel(n))}getPublicModelId(e){return this.isManagedMatildaModel(e)?Sn:e}getModelDisplayName(e){return this.isManagedMatildaModel(e)?Ul:this.currentAuthType?this.modelRegistry.findModel(e)?.name??e:e}async setModel(e,n){if(this.currentAuthType&&this.modelRegistry.containsModel(e)){await this.switchModel(this.currentAuthType,e);return}let o=this.createStateSnapshotForRollback();try{this.strictModelProviderSelection=!1,this._generationConfig.model=e,this.generationConfigSources.model={kind:"programmatic",detail:n?.reason||"setModel"},this.applyRawModelDerivedDefaults(e),this.onModelChange&&this.currentAuthType&&await this.onModelChange(this.currentAuthType)}catch(r){throw this.rollbackToStateSnapshot(o),r}}applyRawModelDerivedDefaults(e){let n=Li(this.settingsGenerationConfig,void 0,this.currentAuthType,e,nu.env);this.shouldUpdateModelDerivedDefault("modalities")&&this.applyResolvedField("modalities",n),this.shouldUpdateModelDerivedDefault("contextWindowSize")&&(this.applyResolvedField("contextWindowSize",n),this.fillContextWindowSize(e))}applyResolvedField(e,n){this._generationConfig[e]=t.deepClone(n.config[e]);let o=n.sources[e];o?this.generationConfigSources[e]=o:delete this.generationConfigSources[e]}fillContextWindowSize(e){this._generationConfig.contextWindowSize===void 0&&(this._generationConfig.contextWindowSize=Ni(e,"input"),this.generationConfigSources.contextWindowSize={kind:"computed",detail:"auto-detected from model"})}shouldUpdateModelDerivedDefault(e){let n=this.generationConfigSources[e];return n===void 0||n.kind==="computed"||n.kind==="default"||n.kind==="modelProviders"||n.kind==="programmatic"||n.kind==="unknown"}async switchModel(e,n,o){let r=this.extractRuntimeModelSnapshotId(n);if(r){await this.switchToRuntimeModel(r);return}let i=this.createStateSnapshotForRollback();try{let s=e!==this.currentAuthType;this.currentAuthType=e;let a=this.modelRegistry.findModel(n,o?.baseUrl);if(!a)throw new Error(`Model '${n}' not found for authType '${e}'`);let l=i.generationConfig.model||"",u=!s&&l?this.modelRegistry.findModel(l,i.generationConfig.baseUrl)??this.modelRegistry.findModel(l):void 0,c=!s&&!!i.generationConfig.apiKey&&!!a.envKey&&u?.envKey===a.envKey&&u.baseUrl===a.baseUrl,f=c?i.generationConfig.apiKey:void 0,h=c?i.generationConfigSources.apiKey:void 0;this.applyResolvedModelDefaults(a),!this._generationConfig.apiKey&&f&&(this._generationConfig.apiKey=f,h&&(this.generationConfigSources.apiKey=t.deepClone(h))),this.activeRuntimeModelSnapshotId=void 0,this.onModelChange&&await this.onModelChange(e)}catch(s){throw this.rollbackToStateSnapshot(i),s}}buildRuntimeModelSnapshotId(e,n){return`${Gi}${e}|${n}`}extractRuntimeModelSnapshotId(e){if(e.startsWith(Gi))return this.runtimeModelSnapshots.has(e)?e:void 0;if(this.runtimeModelSnapshots.has(e))return e}getGenerationConfig(){return this._generationConfig}getGenerationConfigSources(){return this.generationConfigSources}isStrictModelProviderSelection(){return this.strictModelProviderSelection}applyResolvedModelDefaults(e){if(this.strictModelProviderSelection=!0,this._generationConfig.model=e.id,this.generationConfigSources.model={kind:"modelProviders",authType:e.authType,modelId:e.id,detail:"model.id"},this._generationConfig.apiKey=void 0,this._generationConfig.apiKeyEnvKey=void 0,e.envKey!==void 0){let o=nu.env[e.envKey];o&&(this._generationConfig.apiKey=o,this.generationConfigSources.apiKey={kind:"env",envKey:e.envKey,via:{kind:"modelProviders",authType:e.authType,modelId:e.id,detail:"envKey"}}),this._generationConfig.apiKeyEnvKey=e.envKey,this.generationConfigSources.apiKeyEnvKey={kind:"modelProviders",authType:e.authType,modelId:e.id,detail:"envKey"}}this._generationConfig.baseUrl=e.baseUrl,this.generationConfigSources.baseUrl={kind:"modelProviders",authType:e.authType,modelId:e.id,detail:"baseUrl"};let n=this.resolveEntryGenerationConfig(e);for(let o of Io)this.applyResolvedField(o,n);this.fillContextWindowSize(e.id)}syncAfterAuthRefresh(e,n,{replacesApiKey:o=!1}={}){this.strictModelProviderSelection=!1;let r=this.currentAuthType;this.currentAuthType=e;let i=this.generationConfigSources.baseUrl?.kind==="modelProviders"?this._generationConfig.baseUrl:void 0,s=n?this.modelRegistry.findModel(n,i)??this.modelRegistry.findModel(n):void 0;if(s){let S=this.generationConfigSources.baseUrl?.kind==="modelProviders"&&(this._generationConfig.apiKeyEnvKey!==s.envKey||this._generationConfig.baseUrl!==s.baseUrl),A=r===e&&this._generationConfig.model===n&&!S,T=A&&!o,R=T?this._generationConfig.apiKey:void 0,O=T&&this.generationConfigSources.apiKey?{...this.generationConfigSources.apiKey}:void 0,D=this.generationConfigSources.baseUrl,q=A&&!!this._generationConfig.baseUrl&&(D?.kind==="cli"||D?.kind==="env"||D?.kind==="settings"),U=q?this._generationConfig.baseUrl:void 0,L=q&&D?{...D}:void 0;this.applyResolvedModelDefaults(s),!this._generationConfig.apiKey&&R&&(this._generationConfig.apiKey=R,O&&(this.generationConfigSources.apiKey=O)),U&&(this._generationConfig.baseUrl=U,L&&(this.generationConfigSources.baseUrl=L)),this.strictModelProviderSelection=!0,this.activeRuntimeModelSnapshotId=void 0;return}let a=this.generationConfigSources.apiKey,l=this.generationConfigSources.baseUrl,u=this._generationConfig.apiKey&&a?.kind!=="modelProviders"||this._generationConfig.baseUrl&&l?.kind!=="modelProviders";if(!(r!==e)&&(n===void 0||!this.modelRegistry.containsModel(n))&&u){n&&(this._generationConfig.model=n,this.generationConfigSources.model||(this.generationConfigSources.model={kind:"programmatic",detail:"auth refresh (preserved credentials)"}));return}let h=this.modelRegistry.getDefaultModel();if(h){this.applyResolvedModelDefaults(h),this.activeRuntimeModelSnapshotId=void 0;return}n&&(this._generationConfig.model=n,this.generationConfigSources.model||(this.generationConfigSources.model={kind:"programmatic",detail:"auth refresh (no default model)"}))}setOnModelChange(e){this.onModelChange=e}detectAndCaptureRuntimeModel(){let{model:e,apiKey:n,baseUrl:o,apiKeyEnvKey:r,...i}=this._generationConfig,s=this.currentAuthType;if(!e||!s)return;if(this.modelRegistry.containsModel(e,o)){this.clearRuntimeModelSnapshotForAuthType(s);return}if(!(this._generationConfig.apiKey&&this._generationConfig.baseUrl))return;let l=this.buildRuntimeModelSnapshotId(s,e),u={id:l,authType:s,modelId:e,apiKey:n,baseUrl:o,apiKeyEnvKey:r,generationConfig:i,sources:{...this.generationConfigSources},createdAt:Date.now()};return this.runtimeModelSnapshots.set(l,u),this.activeRuntimeModelSnapshotId=l,this.cleanupOldRuntimeModelSnapshots(),l}getActiveRuntimeModelSnapshot(){if(this.activeRuntimeModelSnapshotId)return this.runtimeModelSnapshots.get(this.activeRuntimeModelSnapshotId)}getActiveRuntimeModelSnapshotId(){return this.activeRuntimeModelSnapshotId}async switchToRuntimeModel(e){let n=this.runtimeModelSnapshots.get(e);if(!n)throw new Error(`Runtime model snapshot '${e}' not found`);let o=this.createStateSnapshotForRollback();try{this.currentAuthType=n.authType,this.activeRuntimeModelSnapshotId=e,this.strictModelProviderSelection=!1,this._generationConfig.model=n.modelId,this.generationConfigSources.model={kind:"programmatic",detail:"runtimeModelSwitch"},n.apiKey&&(this._generationConfig.apiKey=n.apiKey,this.generationConfigSources.apiKey=n.sources.apiKey||{kind:"programmatic",detail:"runtimeModelSwitch"}),n.baseUrl&&(this._generationConfig.baseUrl=n.baseUrl,this.generationConfigSources.baseUrl=n.sources.baseUrl||{kind:"programmatic",detail:"runtimeModelSwitch"}),n.apiKeyEnvKey&&(this._generationConfig.apiKeyEnvKey=n.apiKeyEnvKey),n.generationConfig&&Object.assign(this._generationConfig,n.generationConfig),this.onModelChange&&await this.onModelChange(n.authType)}catch(r){throw this.rollbackToStateSnapshot(o),r}}getRuntimeModelOption(){let e=this.getActiveRuntimeModelSnapshot();if(e)return{id:e.modelId,label:e.modelId,authType:e.authType,isVision:!1,contextWindowSize:e.generationConfig?.contextWindowSize,isRuntimeModel:!0,runtimeSnapshotId:e.id}}clearRuntimeModelSnapshotForAuthType(e){for(let[n,o]of this.runtimeModelSnapshots.entries())o.authType===e&&(this.runtimeModelSnapshots.delete(n),this.activeRuntimeModelSnapshotId===n&&(this.activeRuntimeModelSnapshotId=void 0))}cleanupOldRuntimeModelSnapshots(){let e=new Map;for(let n of this.runtimeModelSnapshots.values()){let o=e.get(n.authType);(!o||n.createdAt>o.createdAt)&&e.set(n.authType,n)}this.runtimeModelSnapshots.clear();for(let n of e.values())this.runtimeModelSnapshots.set(n.id,n);this.activeRuntimeModelSnapshotId&&!this.runtimeModelSnapshots.has(this.activeRuntimeModelSnapshotId)&&(this.activeRuntimeModelSnapshotId=void 0)}reloadModelProvidersConfig(e){this.modelRegistry.reloadModels(e)}};p();import{randomUUID as hv}from"node:crypto";import{accessSync as Am,constants as du,mkdirSync as mv,readFileSync as gv}from"node:fs";import{dirname as Vi,join as yv}from"node:path";p();p();import{randomBytes as FA,createHash as qA}from"node:crypto";import{setTimeout as BA}from"node:timers/promises";var HA="urn:ietf:params:oauth:grant-type:device_code";function cm(t){return t==="localhost"||t==="127.0.0.1"||t==="::1"||t==="[::1]"}function ru(){let t=FA(32).toString("base64url"),e=qA("sha256").update(t).digest("base64url");return{codeVerifier:t,codeChallenge:e}}function Nn(t,e){let n=typeof t=="object"&&t!==null?t:{};if(typeof n.access_token!="string"||n.access_token==="")throw new Error("The token response has no access token");return{accessToken:n.access_token,refreshToken:n.refresh_token??e?.refreshToken,expiresAt:Date.now()+(n.expires_in??3600)*1e3,idToken:n.id_token??e?.idToken}}var VA=15e3;async function iu(t){let e=t.replace(/\/+$/,""),n=new URL("/.well-known/oauth-authorization-server",e);if(n.protocol!=="https:"&&!cm(n.hostname))throw new Error(`Refusing OAuth discovery over insecure transport: ${n.origin}`);let o=await fetch(n,{headers:{accept:"application/json"},signal:AbortSignal.timeout(VA)});if(!o.ok)throw new Error(`OAuth discovery failed (${o.status}) for ${n.origin}`);let r=await o.json();if(!r.issuer||!r.authorization_endpoint||!r.token_endpoint)throw new Error(`OAuth discovery document missing required fields for ${n.origin}`);return{issuer:r.issuer,authorization_endpoint:r.authorization_endpoint,token_endpoint:r.token_endpoint,device_authorization_endpoint:r.device_authorization_endpoint}}var $A=15e3,ou="Device code expired: restart the sign-in";async function su(t,e,n={}){let o=new URLSearchParams({client_id:e.clientId});e.scope!==null&&o.set("scope",e.scope??"openid offline_access"),e.resource&&o.set("resource",e.resource);let r;try{r=await fetch(t,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:o,signal:fm(AbortSignal.timeout($A),n.signal)})}catch(s){throw pm(s,n.signal)?new Error("The device code request timed out"):s}if(!r.ok)throw new Error(`Device code request failed (${r.status})`);let i=await r.json();return{deviceCode:i.device_code,userCode:i.user_code,verificationUri:i.verification_uri,verificationUriComplete:i.verification_uri_complete,expiresAt:Date.now()+i.expires_in*1e3,interval:i.interval??5}}async function dm(t,e,n={}){let o=new URLSearchParams({grant_type:HA,client_id:e.clientId,device_code:e.deviceCode});e.resource&&o.set("resource",e.resource);let r=await fetch(t,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:o,signal:n.signal});if(r.ok)return{kind:"authorized",tokens:Nn(await r.json())};let i=await r.json().catch(()=>({})),s=typeof i.error=="string"?i.error:"unknown";switch(s){case"authorization_pending":return{kind:"pending"};case"slow_down":return{kind:"slow_down"};default:return{kind:"error",error:s}}}async function au(t,e,n={}){let o=e.interval*1e3;try{for(;Date.now()<e.expiresAt;){await BA(Math.min(o,e.expiresAt-Date.now()),void 0,{signal:n.signal});let r=e.expiresAt-Date.now();if(r<=0)break;let i=await dm(t,e,{signal:fm(AbortSignal.timeout(r),n.signal)});if(i.kind==="authorized")return i.tokens;if(i.kind!=="pending"){if(i.kind==="slow_down"){o+=5e3;continue}switch(i.error){case"expired_token":throw new Error(ou);case"access_denied":throw new Error("User denied the authorization request");default:throw new Error(`Device flow error: ${i.error}`)}}}}catch(r){throw pm(r,n.signal)?new Error(ou):r}throw new Error(ou)}function fm(t,e){return e?AbortSignal.any([t,e]):t}function pm(t,e){return!e?.aborted&&t instanceof Error&&t.name==="TimeoutError"}p();import{randomBytes as KA}from"node:crypto";import{promises as Dn,openSync as JA,closeSync as WA,unlinkSync as mm,statSync as YA}from"node:fs";import{dirname as zA}from"node:path";var hm=new Map,XA=2e4,QA=3e4,ZA=50;function lu(t,e={}){let n=async()=>{try{let s=await Dn.readFile(t,"utf8"),a=JSON.parse(s);return a&&typeof a=="object"?a:{}}catch(s){if(s.code==="ENOENT")return{};throw s}},o=async(s,a)=>{await Dn.mkdir(zA(t),{recursive:!0});let l=`${t}.${process.pid}.${KA(4).toString("hex")}.tmp`;try{await Dn.writeFile(l,JSON.stringify(s,null,2),{mode:384}),a?.throwIfAborted(),await Dn.rename(l,t)}catch(u){throw await Dn.rm(l,{force:!0}).catch(()=>{}),u}await Dn.chmod(t,384).catch(()=>{})},r=(s,a={})=>{let u=(hm.get(t)??Promise.resolve()).then(async()=>{a.signal?.throwIfAborted();let c=await n(),f=!1;for(let[h,y]of Object.entries(s)){if(y===null){if(!(h in c))continue;delete c[h]}else{if(c[h]===y)continue;c[h]=y}f=!0}f&&await o(c,a.signal),a.onCommit?.()});return hm.set(t,u.catch(()=>{})),u};return{store:{async get(s){return(await n())[s]??null},set:(s,a,l)=>r({[s]:a},l),remove:(s,a)=>r({[s]:null},a)},lock:jA(`${t}.lock`,e.lockTimeoutMs??XA),update:r}}function jA(t,e){let n=Promise.resolve();return o=>{let r=n.then(async()=>{await ev(t,e);try{return await o()}finally{tv(t)}});return n=r.then(()=>{},()=>{}),r}}async function ev(t,e){let n=Date.now()+e;for(;;)try{WA(JA(t,"wx"));return}catch(o){if(o.code!=="EEXIST")throw o;try{if(Date.now()-YA(t).mtimeMs>QA){mm(t);continue}}catch{continue}if(Date.now()>n)throw Object.assign(new Error(`Timed out acquiring credential lock at ${t}`),{code:"ETIMEDOUT"});await nv(ZA)}}function tv(t){try{mm(t)}catch{}}function nv(t){return new Promise(e=>setTimeout(e,t))}p();var bn=class extends Error{code="invalid_grant";constructor(e="Refresh token is no longer valid \u2014 sign in again."){super(e),this.name="InvalidGrantError"}};function uu(t){let e=t.storageKey??"default",n=t.fetchImpl??fetch,o=t.expirySkewMs??6e4,r=t.refreshTimeoutMs??15e3,i=null,s=async()=>{let u=await t.store.get(e);if(!u)return null;try{let c=JSON.parse(u);return c.accessToken?c:null}catch{return null}},a=u=>u.expiresAt-Date.now()>o,l=u=>t.lock(async()=>{let c=await s()??u;if(c.accessToken!==u.accessToken&&a(c))return c.accessToken;if(!c.refreshToken)throw new bn("No refresh token available \u2014 sign in again.");let f;try{let y=await n(t.tokenEndpoint,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"refresh_token",client_id:t.clientId,refresh_token:c.refreshToken}),signal:AbortSignal.timeout(r)});if(!y.ok){let S=await y.text().catch(()=>"");throw y.status>=400&&y.status<500&&ov(S)==="invalid_grant"?(await t.store.remove(e),new bn):Object.assign(new Error(`Token refresh failed (${y.status})`),{status:y.status})}f=await y.json()}catch(y){throw y?.name==="TimeoutError"?Object.assign(new Error(`Token refresh timed out after ${r} ms`),{code:"ETIMEDOUT",cause:y}):y}let h=Nn(f,c);return await t.store.set(e,JSON.stringify(h)),h.accessToken});return{async getAccessToken(u){let c=await s();if(!c)throw new bn("Not signed in.");return!u?.forceRefresh&&a(c)?c.accessToken:(i||(i=l(c).finally(()=>{i=null})),i)}}}function ov(t){try{return JSON.parse(t).error}catch{return}}p();import{createServer as rv}from"node:http";import{randomBytes as iv}from"node:crypto";async function qi(t){if(t.transport.kind==="device")return sv(t);if(t.transport.kind!=="loopback")throw new Error(`Unsupported login transport: ${t.transport.kind}`);if(t.signal?.aborted)throw new Error("Login aborted");let e=A=>t.onEvent?.(A),{codeVerifier:n,codeChallenge:o}=ru(),r=iv(16).toString("hex"),i=t.timeoutMs??5*60*1e3,s=t.transport.successRedirect,a=t.transport.port;e({type:"state",status:"idle"});let l,u,c=new Promise((A,T)=>{l=A,u=T});c.catch(()=>{});let f=rv((A,T)=>{let R=new URL(A.url??"/","http://127.0.0.1");if(R.pathname!=="/callback"){T.writeHead(404).end();return}let O=R.searchParams.get("error"),D=R.searchParams.get("state"),q=R.searchParams.get("code");if(O){let U=R.searchParams.get("error_description"),L=U?`OAuth error: ${O} (${U})`:`OAuth error: ${O}`;T.writeHead(400,{"content-type":"text/plain; charset=utf-8"}).end(`Sign-in failed: ${O}
|
|
53
|
+
`,()=>u(new Error(L)));return}if(D!==r){T.writeHead(400).end("State mismatch"),u(new Error("OAuth state mismatch"));return}if(!q){T.writeHead(400).end("Missing authorization code");return}av(T,s,()=>l(q))}),h=await new Promise((A,T)=>{f.once("error",T),f.listen(a??0,"127.0.0.1",()=>{A(f.address().port)})}),y=setTimeout(()=>u(new Error("Login timed out \u2014 the browser never reached the local callback. The hosted success page is not a completed sign-in.")),i),S=()=>u(new Error("Login aborted"));t.signal?.addEventListener("abort",S,{once:!0}),t.signal?.aborted&&S();try{t.signal?.throwIfAborted();let A=`http://127.0.0.1:${h}/callback`,T=new URL(t.metadata.authorization_endpoint);T.searchParams.set("client_id",t.clientId),T.searchParams.set("response_type","code"),T.searchParams.set("redirect_uri",A),T.searchParams.set("code_challenge",o),T.searchParams.set("code_challenge_method","S256"),T.searchParams.set("state",r),T.searchParams.set("prompt","select_account"),T.searchParams.set("scope",t.scope??"openid offline_access");let R=T.toString();e({type:"authorize_url",url:R}),e({type:"state",status:"awaiting_user"}),t.openBrowser&&await t.openBrowser(R);let O=await c;await gm(f),e({type:"state",status:"exchanging"});let D=await fetch(t.metadata.token_endpoint,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"authorization_code",client_id:t.clientId,code:O,code_verifier:n,redirect_uri:A}),signal:t.signal});if(!D.ok){let U=await D.text().catch(()=>"");throw new Error(`Token exchange failed (${D.status}): ${U}`)}let q=Nn(await D.json());return e({type:"state",status:"authenticated"}),q}catch(A){throw e({type:"state",status:"error"}),t.signal?.aborted?new Error("Login aborted"):A}finally{clearTimeout(y),t.signal?.removeEventListener("abort",S),await gm(f)}}async function sv(t){let e=t.metadata.device_authorization_endpoint;if(!e)throw new Error("The authorization server does not offer device sign-in");if(t.signal?.aborted)throw new Error("Login aborted");let n=o=>t.onEvent?.(o);n({type:"state",status:"idle"});try{let o=await su(e,{clientId:t.clientId,scope:t.scope},{signal:t.signal});n({type:"user_code",userCode:o.userCode,verificationUri:o.verificationUri,verificationUriComplete:o.verificationUriComplete}),n({type:"state",status:"awaiting_user"});let r=await au(t.metadata.token_endpoint,{clientId:t.clientId,deviceCode:o.deviceCode,interval:o.interval,expiresAt:o.expiresAt},{signal:t.signal});return n({type:"state",status:"authenticated"}),r}catch(o){throw n({type:"state",status:"error"}),t.signal?.aborted?new Error("Login aborted"):o}}function gm(t){return t.listening?new Promise(e=>{t.close(()=>e()),t.closeAllConnections()}):Promise.resolve()}function av(t,e,n){t.writeHead(302,{location:e}).end(n)}p();var lv=["www-browser"];function uv(t){let e=t.replace(/\\/g,"/").split("/").pop();return!!e&&lv.includes(e)}function ym(t={}){let n=process.env.BROWSER?.trim()?.match(/^\S+/)?.[0];if(!t.ignoreBrowserBlocklist&&process.platform!=="win32"&&n&&uv(n)||process.env.CI||process.env.DEBIAN_FRONTEND==="noninteractive")return!1;let o=!!process.env.SSH_CONNECTION;return!(process.platform==="linux"&&!["DISPLAY","WAYLAND_DISPLAY","MIR_SOCKET"].some(s=>!!process.env[s])||o&&process.platform!=="linux")}p();p();import{setMaxListeners as cv}from"node:events";var dv=50;function Bi(t=dv){let e=new AbortController;return cv(t,e.signal),e}function fv(t){if(t)return t instanceof AbortController?t.signal:t}function wk(t,e){let n=Bi(e),o=fv(t);if(!o)return n;if(o.aborted)return n.abort(o.reason),n;let r=new WeakRef(o),i=()=>{n.abort(r.deref()?.reason)};return o.addEventListener("abort",i,{once:!0}),n.signal.addEventListener("abort",()=>{r.deref()?.removeEventListener("abort",i)},{once:!0}),n}function Em(t,e){let n=Bi(e?.maxListeners),o=t.find(l=>l?.aborted);if(o)return n.abort(o.reason),{signal:n.signal,cleanup:()=>{}};let r=[];for(let l of t){if(!l)continue;if(l.aborted){n.abort(l.reason);break}let u=()=>n.abort(l.reason);l.addEventListener("abort",u,{once:!0}),r.push(()=>l.removeEventListener("abort",u))}let i=e?.timeoutMs;if(i!==void 0&&i>0&&!n.signal.aborted){let l=setTimeout(()=>{n.abort(new DOMException("Operation timed out","TimeoutError"))},i);r.push(()=>clearTimeout(l))}let s=!1,a=()=>{if(!s){s=!0;for(let l of r)l()}};return n.signal.aborted?a():n.signal.addEventListener("abort",a,{once:!0}),{signal:n.signal,cleanup:a}}async function Tm(t,e){if(e?.throwIfAborted(),!e)return t();let n=()=>{},o=new Promise((i,s)=>{n=()=>s(e.reason),e.addEventListener("abort",n,{once:!0})});o.catch(()=>{});let r;try{r=await Promise.race([t(),o])}finally{e.removeEventListener("abort",n)}return e.throwIfAborted(),r}var _m=5*6e4;async function cu(t,e){let n=performance.now()+_m,o=Bi(),r=()=>o.abort(new DOMException("Sign-in timed out","TimeoutError")),i=setTimeout(r,_m),{signal:s,cleanup:a}=Em([t,o.signal]),l=()=>{t?.throwIfAborted(),performance.now()>=n&&r(),o.signal.throwIfAborted(),s.throwIfAborted()},u;try{l(),u=await e({signal:s,check:l})}finally{clearTimeout(i),a()}return l(),u}var pv=iu;async function Cm(t,e){Ct(t);let n=await Tm(()=>pv(t,void 0,{signal:e}),e);if(Jt(t)){if(n.issuer!==Eo)throw new Error("Matilda sign-in is not ready at https://matilda.com. The server returned an unexpected issuer. Try again after the service migration completes.");for(let o of[n.authorization_endpoint,n.token_endpoint,n.device_authorization_endpoint]){if(o===void 0)continue;let r=new URL(o);if(r.origin!==Eo||r.username||r.password||r.hash)throw new Error("Matilda returned an unsafe sign-in endpoint. No credentials were sent. Contact support.")}}return n}var Un="matilda-code",vm="matilda-desktop",Sm="openid profile email offline_access",$i="MATILDA_API_KEY",Ev="matilda",fu=3e5;function Ln(t){return At(t)}function mu(){return yv(Do.getGlobalMatildaDir(),"matilda-auth.json")}function Fn(){let t=mu();return mv(Vi(t),{recursive:!0}),lu(t,{lockTimeoutMs:2e4})}function Tv(t){return t==="desktop"}function qn(t){return t?.clientId?t.clientId:Tv(t?.channel)?vm:Un}function Po(t){return`matilda:${t}`}function Ki(t){return`${Po(t)}:refresh-rejected`}function zt(t){return t===Un?[Po(t),Ev]:[Po(t)]}function gu(){try{let t=gv(mu(),"utf8"),e=JSON.parse(t);return typeof e=="object"&&e!==null?e:{}}catch{return{}}}function Gn(t){if(!t)return null;try{let e=JSON.parse(t);return typeof e?.accessToken=="string"&&typeof e?.baseUrl=="string"?e:null}catch{return null}}function yu(t,e){return Ln(t)===Ln(e)}function wm(t){if(!t)return{};try{let e=t.split(".")[1],n=Buffer.from(e.replace(/-/g,"+").replace(/_/g,"/"),"base64").toString("utf8"),o=JSON.parse(n);return{sub:o.sub,email:o.email,name:o.name}}catch{return{}}}function Im(t,e){if(ft({baseUrl:e,accessToken:t.accessToken}))throw new Le({reason:dt});let n=wm(t.idToken);return{accessToken:t.accessToken,accessTokenExpiresAt:t.expiresAt,refreshToken:t.refreshToken??"",userId:n.sub,email:n.email,displayName:n.name,baseUrl:e}}var pu=new Map;async function Eu(t,e={}){let n=()=>{e.signal?.throwIfAborted(),e.check?.()};n(),Ct(t);let o=!e.signingIn&&pu.get(t);if(o)return o;try{let r=await Cm(t,e.signal);return n(),pu.set(t,r),r}catch(r){n();let i=Co(r,t)??ql(r,t);if(i&&(e.signingIn||Jt(t)))throw i;if(Jt(t))throw r;return{issuer:t,authorization_endpoint:`${t}/api/auth/oauth/authorize`,token_endpoint:`${t}/api/auth/oauth/token`,device_authorization_endpoint:`${t}/api/auth/oauth/device/code`}}}function Tu(t){let e=Rm(t);return e&&!ft(e)?e:null}function Rm(t){try{let e=gu(),n=qn(t);for(let o of zt(n)){let r=Gn(e[o]);if(r)return r}return null}catch{return null}}async function Hi(t,e){let n=qn(t),o=gu();if(!zt(n).some(a=>{let l=Gn(o[a]);return l&&ft(l)}))return!1;let{store:r,lock:i,update:s}=Fn();return i(async()=>{let a={};for(let l of zt(n)){let u=Gn(await r.get(l));u&&ft(u)&&(a[l]=null)}return await s(a,{signal:e}),Object.keys(a).length>0})}function _u(t){let e=Tu(t);return!e||t?.baseUrl&&!yu(e.baseUrl,t.baseUrl)?null:e}function _v(t){let{sub:e}=wm(t);return typeof e=="string"&&e?e:void 0}function Kk(t){return _v(_u(t)?.accessToken)}function Cu(t){return _u(t)!==null}async function Pm(t,e){for(let n of e){let o=await t.get(n);if(Gn(o))return o}return null}async function Cv(t,e){let n=qn(t),o=zt(n),{store:r,lock:i,update:s}=Fn();await i(async()=>{let a=await Pm(r,o);a!==null&&a!==e||await s({...Object.fromEntries(o.map(l=>[l,null])),[Ki(n)]:"1"})})}function Av(t){return t instanceof Error?t.code==="invalid_grant"||t.name==="InvalidGrantError"?!0:t.message==="Token refresh failed (401)":!1}function On(t){hu({authStage:t.authStage,authOutcome:t.authOutcome,occurrenceCount:t.occurrenceCount},{baseUrl:t.baseUrl,token:t.token}).catch(()=>{})}async function Mm(t,e,n={}){let o=qn(e),r=Po(o),i={[r]:JSON.stringify(t),[Ki(o)]:null};for(let l of zt(o))l!==r&&(i[l]=null);let{lock:s,update:a}=Fn();await s(()=>(n.check?.(),a(i,{signal:n.signal})))}async function vv(t,e){for(let n of zt(e))await t.remove(n);await t.remove(Ki(e))}var Ro="matilda:api-key";function km(){let t=gu()[Ro];if(!t)return null;try{let{apiKey:e,baseUrl:n}=JSON.parse(t);return typeof e=="string"&&e.length>0&&typeof n=="string"?{apiKey:e,baseUrl:n}:null}catch{return null}}function Ji(t){let e=km();return e&&yu(e.baseUrl,t)?e.apiKey:void 0}async function Sv(t){let e=hv(),n=JSON.stringify(t?{...t,saveId:e}:{saveId:e}),{store:o,lock:r,update:i}=Fn(),s=await r(async()=>{let a=await o.get(Ro);return(t||a!==null)&&await i({[Ro]:n}),a});return()=>r(async()=>{await o.get(Ro)===n&&await i({[Ro]:s})})}function wv(t){let e=Tu(t);return e?{authenticated:!0,userId:e.userId,email:e.email,displayName:e.displayName,baseUrl:e.baseUrl,accessTokenExpiresAt:e.accessTokenExpiresAt}:{authenticated:!1}}async function Jk(t){let e={channel:t?.channel,clientId:t?.clientId},{store:n,lock:o}=Fn(),r=await o(async()=>{let s=Tu(e);return await vv(n,qn(e)),s}),i=km()!==null;if(await Sv(null),r?.accessToken){let s=Ln(r.baseUrl);await fetch(`${s}/api/auth/logout`,{method:"POST",headers:{authorization:`Bearer ${r.accessToken}`,"content-type":"application/json"},body:JSON.stringify(r.refreshToken?{refreshToken:r.refreshToken}:{}),signal:t?.signal??AbortSignal.timeout(5e3)}).catch(()=>{})}return!!r||i}function xm(t){return!t||t===$i}function Nm(t){let{baseUrl:e,channel:n,apiKey:o,apiKeyEnvKey:r}=t;if(Cu({baseUrl:e,channel:n})){let i=wv({channel:n});return{kind:"sign-in",account:i.authenticated?i.email??i.displayName??i.userId:void 0}}return o?.value?{kind:"api-key",from:o.from}:xm(r)&&process.env[$i]?{kind:"api-key",from:$i}:Ji(e)!==void 0?{kind:"api-key",from:"saved"}:{kind:"none"}}async function Dm(t){t?.signal?.throwIfAborted();let e=qn(t),n=Rm(t);if(n&&ft(n)&&(await Hi(t,t?.signal),!t?.baseUrl||yi(t.baseUrl)||Jt(t.baseUrl)))throw new Le({channel:t?.channel,reason:dt});t?.baseUrl&&Ct(t.baseUrl);let o=Po(e),r=_u({baseUrl:t?.baseUrl,channel:t?.channel,clientId:e});if(!r){let f=t?.fallbackAccessToken||(xm(t?.apiKeyEnvKey)?process.env[$i]:void 0)||t?.baseUrl&&Ji(t.baseUrl)||"";if(t?.baseUrl&&ft({baseUrl:t.baseUrl,accessToken:f}))throw new Le({channel:t?.channel,reason:dt});return f}let i=Ln(r.baseUrl),s=await Eu(i,{signal:t?.signal}),{manager:a,startedFrom:l}=Iv(Fn(),s.token_endpoint,r.baseUrl,e,o,t?.signal),u=e===Un&&(!!t?.forceRefresh||r.accessTokenExpiresAt-Date.now()<=fu),c;try{c=await a.getAccessToken({forceRefresh:t?.forceRefresh})}catch(f){t?.signal?.throwIfAborted(),u&&On({baseUrl:r.baseUrl,token:r.accessToken,authStage:"refresh",authOutcome:"failed"});let h=f instanceof Error?f.code:void 0;if(h==="session_changed"||h==="no_session"){let y=await Hi(t,t?.signal);throw new Le({cause:f,channel:t?.channel,...y?{reason:dt}:{}})}if(!Av(f)&&h!=="no_refresh_token")throw pu.delete(i),Co(f,i)??ql(f,i)??f;if(f instanceof Le){let y=await Hi(t,t?.signal);throw new Le({cause:f,channel:t?.channel,...y?{reason:dt}:{}})}throw e===vm&&await Cv({channel:t?.channel,clientId:e},l()),new Le({cause:f,channel:t?.channel})}if(t?.signal?.throwIfAborted(),ft({baseUrl:r.baseUrl,accessToken:c}))throw await Hi(t,t?.signal),new Le({channel:t?.channel,reason:dt});return u&&On({baseUrl:r.baseUrl,token:c,authStage:"refresh",authOutcome:"succeeded"}),c}function Iv({store:t,lock:e,update:n},o,r,i,s,a){let l=zt(i),u=(R,O)=>{h=f;let D=[O?.signal,a].filter(q=>q instanceof AbortSignal);return fetch(R,{...O,signal:D.length>1?AbortSignal.any(D):D[0]})},c=R=>Pm(t,R===s?l:[R]),f=null,h,y=()=>h===void 0?f:h;return{manager:uu({tokenEndpoint:o,clientId:i,store:{get:async R=>{let O=await c(R),D=Gn(O);if(D&&ft(D))throw new Le({reason:dt});if(f=D&&yu(D.baseUrl,r)?O:null,!f||!D?.accessToken)return null;let q={accessToken:D.accessToken,refreshToken:D.refreshToken,expiresAt:D.accessTokenExpiresAt};return JSON.stringify(q)},set:async(R,O,D={})=>{let q=await c(R);if(q===null||q!==y())throw new Le;let U=JSON.parse(O),L=Gn(q)??{},$={...L,accessToken:U.accessToken,accessTokenExpiresAt:U.expiresAt,refreshToken:U.refreshToken??L.refreshToken??"",baseUrl:L.baseUrl??r};if(ft($))throw new Le({reason:dt});await n({...Object.fromEntries(l.filter(Y=>Y!==s).map(Y=>[Y,null])),[s]:JSON.stringify($),[Ki(i)]:null},D)},remove:async(R,O={})=>{if(await c(R)!==y())return;await n(Object.fromEntries((R===s?l:[R]).map(q=>[q,null])),O)}},storageKey:s,lock:e,fetchImpl:u,expirySkewMs:fu,skewMs:fu}),startedFrom:y}}function Rv(){return process.env.MATILDA_AUTH_SKIP_BROWSER!=="1"&&ym()}function bm(){let t=mu(),e=n=>n.code??"unknown error";try{Am(t,du.R_OK)}catch(n){if(e(n)!=="ENOENT")throw new Error(`Cannot sign in: Matilda cannot read the saved sign-in at ${t} (${e(n)}). Fix the permissions on that file, or delete it, and try again.`)}for(let n=Vi(t);;n=Vi(n))try{Am(n,du.W_OK|du.X_OK);return}catch(o){if(e(o)!=="ENOENT"||Vi(n)===n)throw new Error(`Cannot sign in: Matilda cannot save your sign-in in ${n} (${e(o)}). Fix the permissions on that folder and try again.`)}}async function Wk(t){let{openBrowser:e,onAuthorizeUrl:n,signal:o}=t,r=Re(t.baseUrl);return bm(),cu(o,async i=>{let s=Ln(r),a=await Eu(s,{signingIn:!0,...i}),l="",u=0,c=0,f={},h=T=>{f[T]=(f[T]??0)+1},S=await(T=>(u+=1,qi({metadata:a,clientId:Un,scope:T,transport:{kind:"loopback",successRedirect:`${s}/api/auth/oauth/success?client_id=${encodeURIComponent(Un)}`},signal:i.signal,onEvent:R=>{i.check(),R.type==="authorize_url"&&(l=R.url,n?.(R.url)),R.type==="state"&&R.status==="exchanging"&&(c+=1),i.check()},openBrowser:async R=>{if(i.check(),e===!1||!Rv()){h("skipped");return}try{let{default:O}=await import("./open-QQ7FWG4A.js");i.check(),(await O(R)).once("error",()=>{}),h("succeeded")}catch{i.check(),h("failed")}i.check()}})))(Sm).catch(T=>{throw i.check(),Co(T,s)??T});i.check();let A=Im(S,r);await Mm(A,void 0,i),i.check(),On({baseUrl:r,token:A.accessToken,authStage:"auth_started",authOutcome:"started",occurrenceCount:u});for(let[T,R]of Object.entries(f))On({baseUrl:r,token:A.accessToken,authStage:"browser_opened",authOutcome:T,occurrenceCount:R});return c>0&&On({baseUrl:r,token:A.accessToken,authStage:"callback_received",authOutcome:"succeeded",occurrenceCount:c}),On({baseUrl:r,token:A.accessToken,authStage:"token_persisted",authOutcome:"succeeded"}),{...A,authorizeUrl:l}})}async function Yk(t){let{onDeviceCode:e,signal:n}=t,o=Re(t.baseUrl);return bm(),cu(n,async r=>{let i=Ln(o),s=await Eu(i,{signingIn:!0,...r}),a=await qi({metadata:s,clientId:Un,scope:Sm,transport:{kind:"device"},signal:r.signal,onEvent:u=>{r.check(),u.type==="user_code"&&e({userCode:u.userCode,verificationUri:u.verificationUri,verificationUriComplete:u.verificationUriComplete}),r.check()}}).catch(u=>{throw r.check(),Co(u,i)??u});r.check();let l=Im(a,o);return await Mm(l,void 0,r),l})}p();p();p();function Wi(t){return typeof t=="object"&&t!==null&&"error"in t&&typeof t.error=="object"&&"message"in t.error}function Om(t){return typeof t=="object"&&t!==null&&"message"in t&&typeof t.message=="string"}p();function Um(t){let e=Math.max(1,t.attempt),n=Math.min(t.maxDelayMs,2147483647),o=Math.min(e-1,31),r=Math.min(t.initialDelayMs*Math.pow(2,o),n),s=(t.retryAfterMode??"ignore")==="ignore"?null:Pv(t.error);if(s!==null&&s>0){let c=Math.min(t.retryAfterMaxDelayMs??t.maxDelayMs,2147483647),f=Math.min(s,c);return Math.max(r,f)}let a=t.jitterRatio??0;if(a<=0)return r;let l=t.random??Math.random,u=r*a*(l()*2-1);return Math.min(Math.max(0,r+u),n)}function Pv(t){let e=Mv(t,"retry-after");if(e===null)return null;let n=e.trim();if(/^\d+(\.\d+)?$/.test(n)){let i=Number(n);if(Number.isFinite(i)&&i>=0)return Math.min(i*1e3,2147483647)}let o=Date.parse(n);if(!Number.isFinite(o))return null;let r=o-Date.now();return r>0?Math.min(r,2147483647):0}function Mv(t,e){return Lm(t,e)??kv(t,e)}function Lm(t,e){if(!xv(t))return null;let{headers:n}=t;if(typeof n.get=="function"){let r=n.get(e);return typeof r=="string"?r:null}if(typeof n!="object"||n===null)return null;let o=e.toLowerCase();for(let[r,i]of Object.entries(n))if(r.toLowerCase()===o)return typeof i=="string"?i:null;return null}function kv(t,e){return Nv(t)?Lm(t.response,e):null}function xv(t){return typeof t=="object"&&t!==null&&"headers"in t&&t.headers!=null}function Nv(t){return typeof t=="object"&&t!==null&&"response"in t&&typeof t.response=="object"&&t.response!==null&&"headers"in t.response&&t.response.headers!=null}var Dv=new Set([429,503,1302,1305]);function Au(t,e){if(vu(t))return!1;let n=Ov(t);return n===null?!1:!!(Dv.has(n)||e&&e.includes(n))}function vu(t){return bv(t)==="insufficient_quota"}function bv(t){let e=Fm(t)?.code;if(e!==void 0)return e;let n=typeof t=="object"&&t!==null&&"code"in t?t.code:void 0;return typeof n=="string"||typeof n=="number"?n:void 0}function Gm(t){let e=ot(t),n=Fm(t),o=qm(t),r=o?.includes("event:error")||o?.includes("HTTP_STATUS/")?"sse":e!==void 0?"http":"unknown";return{...e!==void 0?{statusCode:e}:{},...n?.code!==void 0?{providerCode:String(n.code)}:{},...n?.message!==void 0?{providerMessage:n.message}:{},...n?.requestId!==void 0?{requestId:n.requestId}:{},transport:r}}function rx(t,e){return Um({attempt:t,initialDelayMs:e.initialDelayMs,maxDelayMs:e.maxDelayMs,retryAfterMode:"minimum",retryAfterMaxDelayMs:e.maxDelayMs,error:e.error})}function Ov(t){if(Wi(t)){let n=Number(t.error.code);if(Number.isFinite(n)&&n>0)return n}let e=t instanceof Error?t.message:typeof t=="string"?t:null;if(e){let n=e.indexOf("{");if(n!==-1)try{let o=JSON.parse(e.substring(n));if(Wi(o)){let r=Number(o.error.code);if(Number.isFinite(r)&&r>0)return r}}catch{}}if(Om(t)&&typeof t.status=="number")return t.status;if(t instanceof Error&&"status"in t){let n=t.status;if(typeof n=="number")return n}return ot(t)??null}function Fm(t){for(let e of Uv(t)){if(typeof e!="object"||e===null)continue;let n=e,o=e.error,i=(typeof o=="object"&&o!==null?o:void 0)??n,s=typeof i.code=="string"||typeof i.code=="number"?i.code:void 0,a=typeof i.message=="string"?i.message:void 0,l=typeof i.request_id=="string"?i.request_id:typeof i.requestId=="string"?i.requestId:typeof n.request_id=="string"?n.request_id:typeof n.requestId=="string"?n.requestId:void 0;if(s!==void 0||a!==void 0||l!==void 0)return{code:s,message:a,requestId:l}}return Wi(t)?{code:t.error.code,message:t.error.message}:null}function Uv(t){let e=qm(t);if(!e)return[];let n=[];for(let i of e.split(/\r?\n/)){if(!i.startsWith("data:"))continue;let s=i.slice(5).trim();if(!(!s||s==="[DONE]"))try{n.push(JSON.parse(s))}catch{}}if(n.length>0)return n;let o=e.indexOf("{"),r=e.lastIndexOf("}");if(o!==-1&&r>o)try{n.push(JSON.parse(e.slice(o,r+1)))}catch{}return n}function qm(t){return t instanceof Error?t.message:typeof t=="string"?t:null}function Lv(t,e={}){if(Gv(t))return{kind:"abort",diagnosis:"fail-fast",reason:"aborted"};let n=Gm(t),o=n.statusCode,r=$v(t),i=n.providerCode??r.providerCode,s=n.providerMessage??r.providerMessage,a=n.requestId??r.requestId,l={...o!==void 0?{statusCode:o}:{},...i!==void 0?{providerCode:i}:{},...s!==void 0?{providerMessage:s}:{},...a!==void 0?{requestId:a}:{}};if(Vv(i))return{kind:"provider-business",diagnosis:"fail-fast",reason:"allocated-quota-exceeded",...l};if(vu(t))return{kind:"provider-business",diagnosis:"fail-fast",reason:"insufficient-quota",...l};if(Au(t,e.extraRetryErrorCodes))return{kind:n.transport==="sse"?"sse-provider":o!==void 0?"http":"provider",diagnosis:"retryable",reason:"rate-limit",...l};let u=qv(t);if(u!==void 0&&(o===void 0||o>=500))return{kind:"transport",diagnosis:"retryable",reason:"transport-error",transportCode:u,...o!==void 0?{statusCode:o}:{}};if(o!==void 0){let c=n.transport==="sse"?"sse-provider":"http";return o===529?{kind:c,diagnosis:"retryable",reason:"capacity-overload",...l}:o===401||o===403?{kind:c,diagnosis:"fail-fast",reason:"auth-error",...l}:o>=400&&o<500?{kind:c,diagnosis:"fail-fast",reason:"client-error",...l}:o>=500&&o<600?{kind:c,diagnosis:"retryable",reason:"server-error",...l}:{kind:c,diagnosis:"unknown",reason:"http-status",...l}}return i==="upstream_unavailable"||i==="upstream_timeout"||i==="incomplete_stream"?{kind:"sse-provider",diagnosis:"retryable",reason:"server-error",...l}:{kind:"unknown",diagnosis:"unknown",reason:"unclassified",...l}}function ux(t){let e=t.statusCode??Number(t.providerCode);return t.kind!=="transport"&&t.diagnosis!=="fail-fast"&&(e>=500&&e<600||t.kind==="sse-provider"&&t.reason==="server-error"&&t.diagnosis==="retryable")}function Bm(t,e){return Au(t,e)||Lv(t,{extraRetryErrorCodes:e}).diagnosis==="retryable"}function Gv(t){return Mu(t)?!0:t instanceof Error&&t.name==="CanceledError"}var Fv=5;function qv(t){let e=t;for(let n=0;n<=Fv;n++){if(typeof e!="object"||e===null)return;let o=e.code;if(typeof o=="string"&&Bv(o))return o;e=e instanceof Error?e.cause:void 0}}function Bv(t){return Hv.has(t)}var Hv=new Set(["EAI_AGAIN","ECONNABORTED","ECONNREFUSED","ECONNRESET","EHOSTUNREACH","ENETDOWN","ENETUNREACH","ENOTFOUND","EPIPE","ETIMEDOUT","UND_ERR_BODY_TIMEOUT","UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT","UND_ERR_SOCKET","ConnectionClosed","ConnectionRefused","ConnectionReset","ConnectionTimedOut","FailedToOpenSocket","HostUnreachable","NetworkUnreachable"]);function Vv(t){return t==="Throttling.AllocationQuota"}function $v(t){if(typeof t!="object"||t===null)return{};let e=t,n=typeof e.code=="string"||typeof e.code=="number"?String(e.code):void 0,o=typeof e.code=="number"&&e.code>=100&&e.code<600,r=t instanceof Error&&n?.startsWith("ERR_")||o?void 0:n,i=typeof e.request_id=="string"?e.request_id:typeof e.requestId=="string"?e.requestId:void 0,s=typeof e.message=="string"&&(!(t instanceof Error)||r!==void 0||i!==void 0)?e.message:void 0;return{...r!==void 0?{providerCode:r}:{},...s!==void 0?{providerMessage:s}:{},...i!==void 0?{requestId:i}:{}}}var Pn=(e=>(e.USE_OPENAI="openai",e))(Pn||{});function Hm(t,e){if(delete t.usesMatildaSignIn,delete t.usesMatildaSavedApiKey,!Fl(t))return;let n=t.baseUrl||We();Cu({baseUrl:n,channel:e})&&(t.usesMatildaSignIn=!0),!t.apiKey&&Ji(n)!==void 0&&(t.usesMatildaSavedApiKey=!0)}function Cx(t,e={}){let n=t.apiKey?{value:t.apiKey,from:e.apiKeyFrom??"config"}:void 0;return Fl(t)?Nm({baseUrl:t.baseUrl||We(),channel:e.channel,apiKey:n,apiKeyEnvKey:t.apiKeyEnvKey}):n&&{kind:"api-key",from:n.from}}async function Kv(t,e,n){try{await Dm({baseUrl:t.baseUrl||We(),channel:e}),n.setSignInNetworkProblem?.(void 0)}catch(o){if(o instanceof vt){n.setSignInNetworkProblem?.(o.message);return}if(!Bm(o))throw o}}function Su(t,e,n){t[e]=n}function Jv(t,e){return t?.[e]}function Ax(t,e,n,o,r){let i={...o||{}},s=r?.strictModelProvider===!0,a={...n||{},authType:e,proxy:t?.getProxy()};Su(i,"authType",{kind:"computed",detail:"provided by caller"}),t?.getProxy()&&Su(i,"proxy",{kind:"computed",detail:"Config.getProxy()"});let l=c=>Jv(o,c)??{kind:"unknown"};for(let c of eu)n&&c in n&&!i[c]&&Su(i,c,l(c));Hm(a,t.getChannel());let u=tu(a,s);if(!u.valid)throw new Error(u.errors.map(c=>c.message).join(`
|
|
54
|
+
`));return{config:a,sources:i}}function tu(t,e=!1){let n=[];if(!t.apiKey&&!t.usesMatildaSignIn&&!t.usesMatildaSavedApiKey)if(e)n.push(new Ii(t.authType,t.model,t.apiKeyEnvKey));else{let o=t.apiKeyEnvKey||Zh(t.authType);n.push(new Pi({authType:t.authType,model:t.model,baseUrl:t.baseUrl,envKey:o}))}if(!t.model)if(e)n.push(new Ri(t.authType));else{let o=jh(t.authType);n.push(new Mi({authType:t.authType,envKey:o}))}return{valid:n.length===0,errors:n}}function Wv(t){let e=t;for(;e instanceof Error;){if("code"in e&&e.code==="ERR_MODULE_NOT_FOUND")return e;e=e.cause}}async function vx(t,e,n){e.assertServer?.(t.baseUrl,n,e.getContentGeneratorConfig?.()?.baseUrl),Ql(t,Xl(e),e.getCodeCreditLimitMinor?.()),Qh(t.customHeaders),Hm(t,e.getChannel()),t.usesMatildaSignIn&&await Kv(t,e.getChannel(),e);let o=tu(t,!1);if(!o.valid)throw new Error(o.errors.map(s=>s.message).join(`
|
|
55
|
+
`));xu(t.apiKey);let r=t.authType;if(!r)throw new Error("ContentGeneratorConfig must have an authType");let i;try{if(r==="openai"){let{applyDeclaredInputModalities:s,createOpenAIContentGenerator:a}=await import("./openaiContentGenerator-QLDLWN4P.js");await s(t,e,n),i=a(t,e)}else throw new Error(`Error creating contentGenerator: Unsupported authType: ${r}`)}catch(s){let a=Wv(s);throw a?new Error(`Matilda was updated in the background and needs to be restarted.
|
|
56
|
+
Please exit and restart Matilda to use the '${r}' provider.`,{cause:a}):s}return new So(i,e,t)}p();import{AsyncLocalStorage as Yv}from"node:async_hooks";import{randomUUID as zv}from"node:crypto";var Km="x-matilda-reported-operation-id",Jm="x-matilda-reported-attempt-purpose",wu=[Km,Jm],Xv=new Set(wu),Qv=["answer","tool_followup","continuation","retry","compaction","unknown"],Zv=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/,jv=new Set(Qv),Iu=new Yv,Wm=new WeakSet;function Vm(){return zv()}function Yi(t,e){let n=Object.freeze({operationId:t,attemptPurpose:e});return Wm.add(n),n}function Mx(t){return Xv.has(t.toLowerCase())}function zi(){let t=Iu.getStore();return t&&Wm.has(t)?t:void 0}var $m=class{activeOperationId;begin(e){return this.activeOperationId=Vm(),Yi(this.activeOperationId,e)}continue(e){let n=zi()?.operationId??this.activeOperationId??Vm();return this.activeOperationId=n,Yi(n,e)}};function Mo(t,e){return Iu.run(t,e)}function kx(t){Iu.enterWith(t)}function xx(t,e){let n=zi();return n?Mo(Yi(n.operationId,t),e):e()}function eS(t,e){let n={next:(...i)=>Mo(t,()=>e.next(...i)),return:i=>Mo(t,()=>e.return(i)),throw:i=>Mo(t,()=>e.throw(i)),[Symbol.asyncIterator]:()=>n},o=Symbol.asyncDispose,r=o&&e[o];return o&&typeof r=="function"&&(n[o]=()=>Mo(t,()=>r.call(e))),n}function Nx(t,e){let n=zi();return n?eS(Yi(n.operationId,t),e):e}function Dx(){let t=zi();if(!t||!Zv.test(t.operationId))return{};let e=wi.getStore()?.attempt,n=e!==void 0&&e>1?"retry":t.attemptPurpose;return jv.has(n)?{[Km]:t.operationId,[Jm]:n}:{}}var tS=["x-matilda-client-name","x-matilda-client-version","x-matilda-client-operating-system","x-matilda-client-architecture","x-matilda-client-distribution-channel","x-matilda-client-release-channel"],nS=new Set([...tS,...wu]),oS=new Set(["VSCode","ACP","SDK","CI"]),Bn="(?:0|[1-9]\\d{0,4})\\.(?:0|[1-9]\\d{0,4})\\.(?:0|[1-9]\\d{0,4})",rS="[A-Za-z][0-9A-Za-z-]{0,23}",Ym="(?:0|[1-9]\\d{0,11}|[0-9A-Fa-f]{7,12})",iS=new RegExp(`^${Bn}(?:-${rS}(?:\\.${Ym})+)?$`),sS=63,aS=new RegExp(`^${Bn}$`),lS=new RegExp(`^${Bn}-preview\\.(?:0|[1-9]\\d{0,11})$`),uS=new RegExp(`^${Bn}-canary\\.(?:0|[1-9]\\d{0,11})$`),cS=new RegExp(`^${Bn}-nightly\\.(?:0|[1-9]\\d{0,11})\\.[0-9A-Fa-f]{7,12}$`),dS=new RegExp(`^${Bn}-(preview|canary|nightly|development|internal)(?:\\.${Ym})+$`);function fS(t){return t==="desktop"?"desktop":t===void 0||oS.has(t)?"code_cli":"unknown"}function pS(t){if(t==="android")return"android";if(t==="darwin")return"macos";if(t==="win32")return"windows";if(t==="linux")return"linux"}function hS(t){if(t==="x64")return"x64";if(t==="arm64")return"arm64"}function mS(t){if(t===void 0)return"npm";if(t==="desktop")return"direct-download";if(t==="VSCode")return"vscode-marketplace"}function gS(t,e){if(e==="desktop")return"matilda-desktop";if(t==="VSCode")return"matilda-vscode";if(e==="code_cli")return"matilda-code"}function yS(t){if(typeof t=="string"&&!(t.length>sS||!iS.test(t)))return t}function ES(t){if(t!==void 0)return aS.test(t)?"stable":lS.test(t)?"preview":uS.test(t)?"canary":cS.test(t)?"nightly":dS.exec(t)?.[1]}function zm(t,e=process.platform,n=process.arch){let o=t.getChannel?.(),r=fS(o),i=yS(o==="desktop"&&process.env.CRAFT_AGENT_VERSION!==void 0?process.env.CRAFT_AGENT_VERSION:t.getCliVersion?.()),s=ES(i),a=pS(e),l=hS(n),u=mS(o),c=gS(o,r);return{...c?{"x-matilda-client-name":c}:{},...i?{"x-matilda-client-version":i}:{},...a?{"x-matilda-client-operating-system":a}:{},...l?{"x-matilda-client-architecture":l}:{},...u?{"x-matilda-client-distribution-channel":u}:{},...s?{"x-matilda-client-release-channel":s}:{}}}function qx(t){let e=t.toLowerCase();return nS.has(e)||e.startsWith("x-matilda-reported-")}function TS(t){let e=t??We();try{let n=new URL(e);if(n.protocol!=="https:"&&n.protocol!=="http:")return!1;let o=n.hostname.toLowerCase();return In(o)||o==="core-api.matilda"||_o(e)}catch{return!1}}function Bx(t,e=t.apiKey){return t.authType==="openai"&&(!!e||t.usesMatildaSignIn===!0||t.usesMatildaSavedApiKey===!0)&&TS(t.baseUrl)}var _S=3e3,ko=1,CS=24*60*60*1e3,Xm=20,Qm=999,AS=new Set(["UNABLE_TO_GET_ISSUER_CERT_LOCALLY","UNABLE_TO_VERIFY_LEAF_SIGNATURE","SELF_SIGNED_CERT_IN_CHAIN","DEPTH_ZERO_SELF_SIGNED_CERT","CERT_HAS_EXPIRED","ERR_TLS_CERT_ALTNAME_INVALID"]),vS=new Set(["ENOTFOUND","EAI_AGAIN"]),SS=new Set(["ECONNREFUSED","EHOSTUNREACH","ENETUNREACH"]),wS=new Set(["ABORT_ERR","ETIMEDOUT","UND_ERR_BODY_TIMEOUT","UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT"]),IS=new Set(["ECONNRESET","EPIPE","UND_ERR_SOCKET"]);function RS(t){return`${new URL(Re(t)).origin}/api/client-events`}function PS(t){let e={eventType:t.eventType,platform:"cli"};return t.eventType==="network_error"&&(e.transportReason=t.transportReason,e.transportStage=t.transportStage,e.responseReceived=t.responseReceived,e.occurrenceCount=t.occurrenceCount),t.eventType==="auth_funnel"&&(e.authStage=t.authStage,e.authOutcome=t.authOutcome,e.occurrenceCount=t.occurrenceCount),t.eventType==="network_error"&&(e.reportedSurface=t.reportedSurface,e.reportedOs=t.reportedOs,e.reportedArchitecture=t.reportedArchitecture,e.reportedProcess=t.reportedProcess,e.reportedReleaseChannel=t.reportedReleaseChannel,t.reportedVersion&&(e.reportedVersion=t.reportedVersion)),e}async function Ru(t,e){let{baseUrl:n,token:o}=e;if(!n||!o)return!1;let r=e.fetchImpl??fetch,i=new AbortController,s=setTimeout(()=>i.abort(),e.timeoutMs??_S);try{let a=await r(RS(n),{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${o}`},body:JSON.stringify(PS(t)),signal:i.signal});return a.ok?!0:(bo.warn(`client-events beacon: server rejected payload (HTTP ${a.status})`),!1)}catch{return!1}finally{clearTimeout(s)}}async function hu(t,e){let n=typeof t.occurrenceCount=="number"&&Number.isFinite(t.occurrenceCount)?Math.max(1,Math.min(Math.floor(t.occurrenceCount),Qm)):1;return Ru({eventType:"auth_funnel",authStage:t.authStage,authOutcome:t.authOutcome,occurrenceCount:n},e)}function Zm(){try{let t=Dt.readFileSync(tg(),"utf8"),e=JSON.parse(t);return e.schemaVersion!==ko||!Array.isArray(e.failures)?void 0:{schemaVersion:ko,failures:e.failures.filter(MS)}}catch{return}}function MS(t){if(!t||typeof t!="object")return!1;let e=t;return e.eventType==="network_error"&&typeof e.transportReason=="string"&&typeof e.transportStage=="string"&&typeof e.responseReceived=="boolean"&&typeof e.occurrenceCount=="number"&&typeof e.reportedSurface=="string"&&typeof e.reportedOs=="string"&&typeof e.reportedArchitecture=="string"&&typeof e.reportedProcess=="string"&&typeof e.reportedReleaseChannel=="string"&&typeof e.firstObservedAtMs=="number"&&typeof e.lastObservedAtMs=="number"}function jm(t){let e=tg();if(t.failures.length===0){try{Dt.rmSync(e,{force:!0})}catch{}return}try{Dt.mkdirSync(Xi.dirname(e),{recursive:!0}),Dt.writeFileSync(e,`${JSON.stringify(t)}
|
|
57
|
+
`,"utf8")}catch{}}function eg(t,e){return t.filter(n=>e-n.lastObservedAtMs<=CS).sort((n,o)=>n.firstObservedAtMs-o.firstObservedAtMs).slice(-Xm)}function kS(t){let e=zm(t);return{reportedSurface:e["x-matilda-client-name"]==="matilda-desktop"?"desktop":e["x-matilda-client-name"]==="matilda-code"||e["x-matilda-client-name"]==="matilda-vscode"?"code_cli":"unknown",reportedOs:e["x-matilda-client-operating-system"]??"unknown",reportedArchitecture:e["x-matilda-client-architecture"]??"unknown",reportedProcess:e["x-matilda-client-name"]??"unknown",reportedVersion:e["x-matilda-client-version"],reportedReleaseChannel:e["x-matilda-client-release-channel"]??"unknown"}}function xS(t){if(!t||typeof t!="object")return;let e=t.code;if(typeof e=="string")return e;if(!(t instanceof Error)||!t.cause||typeof t.cause!="object")return;let n=t.cause.code;return typeof n=="string"?n:void 0}function NS(t){if(!(!t||typeof t!="object"))for(let e of["status","statusCode"]){let n=t[e];if(typeof n=="number")return n}}function DS(t,e){let n=xS(t);if(n&&AS.has(n))return{reason:"tls",stage:"tls",responseReceived:!1};if(n&&vS.has(n))return{reason:"dns",stage:"resolve",responseReceived:!1};if(n&&SS.has(n))return{reason:"connect",stage:"connect",responseReceived:!1};if(n&&wS.has(n))return{reason:"timeout",stage:n==="UND_ERR_BODY_TIMEOUT"?"response":"request",responseReceived:n==="UND_ERR_BODY_TIMEOUT"};if(n&&IS.has(n))return{reason:"reset",stage:n==="UND_ERR_SOCKET"?"response":"request",responseReceived:n==="UND_ERR_SOCKET"};let o=NS(t),r=t instanceof Error?t.message.toLowerCase():String(t).toLowerCase();if(r.includes("self signed")||r.includes("certificate")||r.includes("tls"))return{reason:"tls",stage:"tls",responseReceived:!1};if(o===407||n==="proxy_auth_required")return{reason:"proxy",stage:"connect",responseReceived:!0};if(e&&r.includes("proxy")&&(r.includes("407")||r.includes("connect")||r.includes("fetch failed")))return{reason:"proxy",stage:"connect",responseReceived:!1};if(r.includes("timed out")||r.includes("timeout")||r.includes("deadline exceeded"))return{reason:"timeout",stage:"request",responseReceived:!1};if(r.includes("fetch failed"))return{reason:"unknown",stage:"unknown",responseReceived:!1}}function bS(t,e){return t.findIndex(n=>n.transportReason===e.transportReason&&n.transportStage===e.transportStage&&n.responseReceived===e.responseReceived&&n.reportedSurface===e.reportedSurface&&n.reportedOs===e.reportedOs&&n.reportedArchitecture===e.reportedArchitecture&&n.reportedProcess===e.reportedProcess&&n.reportedVersion===e.reportedVersion&&n.reportedReleaseChannel===e.reportedReleaseChannel)}function Yx(t,e){let n=kS(e.cliConfig);if(n.reportedSurface!=="code_cli"&&n.reportedSurface!=="desktop")return!1;let o=DS(t,e.proxyConfigured);if(!o)return!1;let r=Date.now(),i={eventType:"network_error",transportReason:o.reason,transportStage:o.stage,responseReceived:o.responseReceived,occurrenceCount:1,...n,firstObservedAtMs:r,lastObservedAtMs:r},s=Zm()??{schemaVersion:ko,failures:[]},a=eg(s.failures,r),l=bS(a,i);if(l>=0){let u=a[l];a[l]={...u,occurrenceCount:Math.min(u.occurrenceCount+1,Qm),lastObservedAtMs:r}}else a.push(i);return jm({schemaVersion:ko,failures:a.slice(-Xm)}),!0}async function zx(t){let e=Zm();if(!e)return;let n=eg(e.failures,Date.now()),o=[];for(let r=0;r<n.length;r+=1){let i=n[r];if(!await Ru({eventType:i.eventType,transportReason:i.transportReason,transportStage:i.transportStage,responseReceived:i.responseReceived,occurrenceCount:i.occurrenceCount,reportedSurface:i.reportedSurface,reportedOs:i.reportedOs,reportedArchitecture:i.reportedArchitecture,reportedProcess:i.reportedProcess,reportedVersion:i.reportedVersion,reportedReleaseChannel:i.reportedReleaseChannel},t)){o.push(...n.slice(r));break}}jm({schemaVersion:ko,failures:o})}function tg(){return Xi.join(Do.getGlobalMatildaDir(),"telemetry","cli-transport-failures.json")}var WD="http://localhost:4317";export{wi as a,Km as b,Jm as c,Mx as d,zi as e,$m as f,Mo as g,kx as h,xx as i,eS as j,Nx as k,Dx as l,yo as m,xt as n,wn as o,uP as p,In as q,Re as r,cP as s,dP as t,Ct as u,ft as v,ie as w,vR as x,SR as y,Et as z,pC as A,Dl as B,hi as C,_C as D,CC as E,gi as F,qh as G,uA as H,Wl as I,nA as J,yP as K,Mh as L,_P as M,KC as N,CP as O,AP as P,To as Q,At as R,kP as S,xP as T,NP as U,bh as V,Oh as W,_o as X,Fl as Y,Co as Z,jC as _,eA as $,We as aa,zm as ba,qx as ca,Bx as da,hu as ea,Yx as fa,zx as ga,WD as ha,J0 as ia,Xl as ja,PA as ka,W0 as la,zl as ma,MA as na,Ql as oa,Qh as pa,Y0 as qa,ki as ra,eM as sa,oM as ta,rM as ua,Ni as va,Io as wa,im as xa,AM as ya,IM as za,um as Aa,cm as Ba,su as Ca,au as Da,uv as Ea,ym as Fa,Bi as Ga,wk as Ha,Em as Ia,Tm as Ja,Ln as Ka,Tu as La,_v as Ma,Kk as Na,Cu as Oa,km as Pa,Ji as Qa,Sv as Ra,wv as Sa,Jk as Ta,Dm as Ua,Rv as Va,Wk as Wa,Yk as Xa,Wi as Ya,Om as Za,Um as _a,Pv as $a,Mv as ab,Au as bb,vu as cb,bv as db,Gm as eb,rx as fb,Lv as gb,ux as hb,Bm as ib,Pn as jb,Cx as kb,Ax as lb,vx as mb};
|
|
58
|
+
/**
|
|
59
|
+
* @license
|
|
60
|
+
* Copyright 2025 Matilda
|
|
61
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
62
|
+
*/
|
|
63
|
+
/**
|
|
64
|
+
* @license
|
|
65
|
+
* Copyright 2025 Google LLC
|
|
66
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
67
|
+
*/
|
|
68
|
+
/**
|
|
69
|
+
* @license
|
|
70
|
+
* Copyright 2026 Matilda Team
|
|
71
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
72
|
+
*/
|
|
73
|
+
/** @license Copyright 2026 Maincode SPDX-License-Identifier: Apache-2.0 */
|
|
74
|
+
/**
|
|
75
|
+
* @license
|
|
76
|
+
* Copyright 2026 Google LLC
|
|
77
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
78
|
+
*/
|
|
79
|
+
/**
|
|
80
|
+
* @license
|
|
81
|
+
* Copyright 2026 Matilda
|
|
82
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
83
|
+
*/
|
|
84
|
+
/**
|
|
85
|
+
* @license
|
|
86
|
+
* Copyright 2025 Matilda Team
|
|
87
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
88
|
+
*/
|
|
89
|
+
/**
|
|
90
|
+
* @license
|
|
91
|
+
* Copyright 2026 Maincode
|
|
92
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
93
|
+
*
|
|
94
|
+
* Low-level OAuth primitives for core-auth's unified `/api/auth/oauth/*` flow
|
|
95
|
+
* (ADR-029): PKCE pair generation, RFC 8414 discovery, the RFC 8628 device
|
|
96
|
+
* grant, and refresh. Vendored (as source) from matilda-core's
|
|
97
|
+
* `packages/client-sdk/src/auth.ts` and extended to carry the `id_token`
|
|
98
|
+
* (display identity) that the higher-level flows need. Node built-ins only —
|
|
99
|
+
* no third-party runtime dependencies.
|
|
100
|
+
*/
|
|
101
|
+
/**
|
|
102
|
+
* @license
|
|
103
|
+
* Copyright 2026 Maincode
|
|
104
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
105
|
+
*
|
|
106
|
+
* File-backed token store + cross-process lock. The store persists a JSON map
|
|
107
|
+
* (`{ [key]: value }`) at 0600 so callers can key several credentials in one
|
|
108
|
+
* file; the lock is an O_EXCL lockfile that serialises refreshes across
|
|
109
|
+
* processes (the guarantee a plaintext read/modify/write can't give).
|
|
110
|
+
*/
|
|
111
|
+
/**
|
|
112
|
+
* @license
|
|
113
|
+
* Copyright 2026 Maincode
|
|
114
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
115
|
+
*
|
|
116
|
+
* Hardened access-token manager: returns a valid access token, refreshing via
|
|
117
|
+
* core-auth's token endpoint when expired or forced. Single-flight within the
|
|
118
|
+
* process, serialised across processes by the store's lock, carries a prior
|
|
119
|
+
* refresh token forward when the response omits one, and evicts on a terminal
|
|
120
|
+
* `invalid_grant` so a dead session doesn't wedge the caller in a refresh loop.
|
|
121
|
+
*/
|
|
122
|
+
/**
|
|
123
|
+
* @license
|
|
124
|
+
* Copyright 2026 Maincode
|
|
125
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
126
|
+
*
|
|
127
|
+
* Browser login orchestration: PKCE + a loopback capture server, driven off
|
|
128
|
+
* discovery metadata. Unlike a bare loopback helper, this emits lifecycle
|
|
129
|
+
* events for a UI, honours an AbortSignal, and — instead of serving its own
|
|
130
|
+
* HTML — 302-redirects the browser to an app-owned branded landing
|
|
131
|
+
* (`successRedirect`). Returns a TokenSet including the `id_token`.
|
|
132
|
+
*/
|
|
133
|
+
/**
|
|
134
|
+
* @license
|
|
135
|
+
* Copyright 2026 Maincode
|
|
136
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
137
|
+
*
|
|
138
|
+
* Node auth surface for `@maincode-ai/matilda-client-sdk/auth/node`.
|
|
139
|
+
* Re-exports the OAuth primitives plus the higher-level login flow, file token
|
|
140
|
+
* store, and hardened token manager that the CLI (`packages/core`) and the
|
|
141
|
+
* Electron desktop app consume.
|
|
142
|
+
*/
|
|
143
|
+
/**
|
|
144
|
+
* @license
|
|
145
|
+
* Copyright 2026 Maincode
|
|
146
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
147
|
+
*
|
|
148
|
+
* Matilda account auth for the CLI, backed by the shared client SDK.
|
|
149
|
+
*
|
|
150
|
+
* The OAuth dance (PKCE, loopback capture, code exchange, refresh, cross-process
|
|
151
|
+
* token locking) is owned by `@maincode-ai/matilda-client-sdk/auth/node` — the
|
|
152
|
+
* auth team's tested implementation of ADR-029's unified `/api/auth/oauth/*`
|
|
153
|
+
* flow. This module keeps ONLY the CLI-specific concerns: which endpoint, the
|
|
154
|
+
* on-disk credential shape the rest of the CLI already reads, and surfacing the
|
|
155
|
+
* authorize URL to the Ink UI. No PKCE crypto, no loopback server, no token
|
|
156
|
+
* exchange lives here anymore (replaced the 391-line hand-rolled beta that hit
|
|
157
|
+
* the divergent `/api/auth/cli/*` endpoints and stored tokens in plaintext).
|
|
158
|
+
*/
|
|
159
|
+
/*! Bundled license information:
|
|
160
|
+
|
|
161
|
+
safe-buffer/index.js:
|
|
162
|
+
(*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)
|
|
163
|
+
|
|
164
|
+
@google/genai/dist/node/index.mjs:
|
|
165
|
+
@google/genai/dist/node/index.mjs:
|
|
166
|
+
@google/genai/dist/node/index.mjs:
|
|
167
|
+
@google/genai/dist/node/index.mjs:
|
|
168
|
+
@google/genai/dist/node/index.mjs:
|
|
169
|
+
@google/genai/dist/node/index.mjs:
|
|
170
|
+
@google/genai/dist/node/index.mjs:
|
|
171
|
+
@google/genai/dist/node/index.mjs:
|
|
172
|
+
@google/genai/dist/node/index.mjs:
|
|
173
|
+
@google/genai/dist/node/index.mjs:
|
|
174
|
+
@google/genai/dist/node/index.mjs:
|
|
175
|
+
@google/genai/dist/node/index.mjs:
|
|
176
|
+
@google/genai/dist/node/index.mjs:
|
|
177
|
+
@google/genai/dist/node/index.mjs:
|
|
178
|
+
@google/genai/dist/node/index.mjs:
|
|
179
|
+
@google/genai/dist/node/index.mjs:
|
|
180
|
+
@google/genai/dist/node/index.mjs:
|
|
181
|
+
@google/genai/dist/node/index.mjs:
|
|
182
|
+
@google/genai/dist/node/index.mjs:
|
|
183
|
+
@google/genai/dist/node/index.mjs:
|
|
184
|
+
@google/genai/dist/node/index.mjs:
|
|
185
|
+
@google/genai/dist/node/index.mjs:
|
|
186
|
+
@google/genai/dist/node/index.mjs:
|
|
187
|
+
@google/genai/dist/node/index.mjs:
|
|
188
|
+
@google/genai/dist/node/index.mjs:
|
|
189
|
+
@google/genai/dist/node/index.mjs:
|
|
190
|
+
@google/genai/dist/node/index.mjs:
|
|
191
|
+
@google/genai/dist/node/index.mjs:
|
|
192
|
+
@google/genai/dist/node/index.mjs:
|
|
193
|
+
@google/genai/dist/node/index.mjs:
|
|
194
|
+
@google/genai/dist/node/index.mjs:
|
|
195
|
+
@google/genai/dist/node/index.mjs:
|
|
196
|
+
@google/genai/dist/node/index.mjs:
|
|
197
|
+
@google/genai/dist/node/index.mjs:
|
|
198
|
+
@google/genai/dist/node/index.mjs:
|
|
199
|
+
@google/genai/dist/node/index.mjs:
|
|
200
|
+
@google/genai/dist/node/index.mjs:
|
|
201
|
+
@google/genai/dist/node/index.mjs:
|
|
202
|
+
(**
|
|
203
|
+
* @license
|
|
204
|
+
* Copyright 2025 Google LLC
|
|
205
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
206
|
+
*)
|
|
207
|
+
*/
|