@wengine-ai/llms 2.3.11 → 2.3.13
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 +2 -2
- package/dist/cjs/server.cjs +90 -90
- package/dist/cjs/server.cjs.map +3 -3
- package/dist/esm/server.mjs +91 -91
- package/dist/esm/server.mjs.map +3 -3
- package/package.json +1 -1
package/dist/cjs/server.cjs
CHANGED
|
@@ -1,77 +1,77 @@
|
|
|
1
|
-
"use strict";var CC=Object.create;var di=Object.defineProperty;var wC=Object.getOwnPropertyDescriptor;var EC=Object.getOwnPropertyNames;var kC=Object.getPrototypeOf,AC=Object.prototype.hasOwnProperty;var Le=(t,e)=>()=>(t&&(e=t(t=0)),e);var X=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),fi=(t,e)=>{for(var n in e)di(t,n,{get:e[n],enumerable:!0})},jh=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of EC(e))!AC.call(t,o)&&o!==n&&di(t,o,{get:()=>e[o],enumerable:!(r=wC(e,o))||r.enumerable});return t};var xe=(t,e,n)=>(n=t!=null?CC(kC(t)):{},jh(e||!t||!t.__esModule?di(n,"default",{value:t,enumerable:!0}):n,t)),Uh=t=>jh(di({},"__esModule",{value:!0}),t);var $h=X((RR,hi)=>{hi.exports.Space_Separator=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/;hi.exports.ID_Start=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/;hi.exports.ID_Continue=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/});var rc=X((xR,qh)=>{var nc=$h();qh.exports={isSpaceSeparator(t){return typeof t=="string"&&nc.Space_Separator.test(t)},isIdStartChar(t){return typeof t=="string"&&(t>="a"&&t<="z"||t>="A"&&t<="Z"||t==="$"||t==="_"||nc.ID_Start.test(t))},isIdContinueChar(t){return typeof t=="string"&&(t>="a"&&t<="z"||t>="A"&&t<="Z"||t>="0"&&t<="9"||t==="$"||t==="_"||t==="\u200C"||t==="\u200D"||nc.ID_Continue.test(t))},isDigit(t){return typeof t=="string"&&/[0-9]/.test(t)},isHexDigit(t){return typeof t=="string"&&/[0-9A-Fa-f]/.test(t)}}});var Jh=X((OR,Gh)=>{var We=rc(),sc,ot,En,mi,Hn,Ut,Ge,uc,$o;Gh.exports=function(e,n){sc=String(e),ot="start",En=[],mi=0,Hn=1,Ut=0,Ge=void 0,uc=void 0,$o=void 0;do Ge=SC(),DC[ot]();while(Ge.type!=="eof");return typeof n=="function"?ic({"":$o},"",n):$o};function ic(t,e,n){let r=t[e];if(r!=null&&typeof r=="object")if(Array.isArray(r))for(let o=0;o<r.length;o++){let s=String(o),a=ic(r,s,n);a===void 0?delete r[s]:Object.defineProperty(r,s,{value:a,writable:!0,enumerable:!0,configurable:!0})}else for(let o in r){let s=ic(r,o,n);s===void 0?delete r[o]:Object.defineProperty(r,o,{value:s,writable:!0,enumerable:!0,configurable:!0})}return n.call(t,e,r)}var _e,ge,Uo,wn,we;function SC(){for(_e="default",ge="",Uo=!1,wn=1;;){we=kn();let t=Hh[_e]();if(t)return t}}function kn(){if(sc[mi])return String.fromCodePoint(sc.codePointAt(mi))}function W(){let t=kn();return t===`
|
|
2
|
-
`?(Hn++,Ut=0):t?Ut+=t.length:Ut++,t&&(mi+=t.length),t}var
|
|
3
|
-
`:case"\r":case"\u2028":case"\u2029":W();return;case"/":W(),_e="comment";return;case void 0:return W(),Ne("eof")}if(We.isSpaceSeparator(we)){W();return}return
|
|
4
|
-
`:case"\r":case"\u2028":case"\u2029":W(),_e="default";return;case void 0:return W(),Ne("eof")}W()},value(){switch(we){case"{":case"[":return Ne("punctuator",W());case"n":return W(),dr("ull"),Ne("null",null);case"t":return W(),dr("rue"),Ne("boolean",!0);case"f":return W(),dr("alse"),Ne("boolean",!1);case"-":case"+":W()==="-"&&(wn=-1),_e="sign";return;case".":ge=W(),_e="decimalPointLeading";return;case"0":ge=W(),_e="zero";return;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":ge=W(),_e="decimalInteger";return;case"I":return W(),dr("nfinity"),Ne("numeric",1/0);case"N":return W(),dr("aN"),Ne("numeric",NaN);case'"':case"'":Uo=W()==='"',ge="",_e="string";return}throw Be(W())},identifierNameStartEscape(){if(we!=="u")throw Be(W());W();let t=
|
|
5
|
-
`:case"\r":throw Be(W());case"\u2028":case"\u2029":
|
|
6
|
-
`;case"r":return W(),"\r";case"t":return W()," ";case"v":return W(),"\v";case"0":if(W(),We.isDigit(kn()))throw Be(W());return"\0";case"x":return W(),
|
|
1
|
+
"use strict";var wC=Object.create;var di=Object.defineProperty;var EC=Object.getOwnPropertyDescriptor;var kC=Object.getOwnPropertyNames;var AC=Object.getPrototypeOf,SC=Object.prototype.hasOwnProperty;var Le=(t,e)=>()=>(t&&(e=t(t=0)),e);var X=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),fi=(t,e)=>{for(var n in e)di(t,n,{get:e[n],enumerable:!0})},Uh=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of kC(e))!SC.call(t,o)&&o!==n&&di(t,o,{get:()=>e[o],enumerable:!(r=EC(e,o))||r.enumerable});return t};var xe=(t,e,n)=>(n=t!=null?wC(AC(t)):{},Uh(e||!t||!t.__esModule?di(n,"default",{value:t,enumerable:!0}):n,t)),$h=t=>Uh(di({},"__esModule",{value:!0}),t);var qh=X((PR,hi)=>{hi.exports.Space_Separator=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/;hi.exports.ID_Start=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/;hi.exports.ID_Continue=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/});var oc=X((FR,zh)=>{var rc=qh();zh.exports={isSpaceSeparator(t){return typeof t=="string"&&rc.Space_Separator.test(t)},isIdStartChar(t){return typeof t=="string"&&(t>="a"&&t<="z"||t>="A"&&t<="Z"||t==="$"||t==="_"||rc.ID_Start.test(t))},isIdContinueChar(t){return typeof t=="string"&&(t>="a"&&t<="z"||t>="A"&&t<="Z"||t>="0"&&t<="9"||t==="$"||t==="_"||t==="\u200C"||t==="\u200D"||rc.ID_Continue.test(t))},isDigit(t){return typeof t=="string"&&/[0-9]/.test(t)},isHexDigit(t){return typeof t=="string"&&/[0-9A-Fa-f]/.test(t)}}});var Vh=X((IR,Jh)=>{var We=oc(),ic,ot,En,mi,Hn,Ut,Ge,cc,$o;Jh.exports=function(e,n){ic=String(e),ot="start",En=[],mi=0,Hn=1,Ut=0,Ge=void 0,cc=void 0,$o=void 0;do Ge=vC(),RC[ot]();while(Ge.type!=="eof");return typeof n=="function"?ac({"":$o},"",n):$o};function ac(t,e,n){let r=t[e];if(r!=null&&typeof r=="object")if(Array.isArray(r))for(let o=0;o<r.length;o++){let s=String(o),a=ac(r,s,n);a===void 0?delete r[s]:Object.defineProperty(r,s,{value:a,writable:!0,enumerable:!0,configurable:!0})}else for(let o in r){let s=ac(r,o,n);s===void 0?delete r[o]:Object.defineProperty(r,o,{value:s,writable:!0,enumerable:!0,configurable:!0})}return n.call(t,e,r)}var _e,ge,Uo,wn,we;function vC(){for(_e="default",ge="",Uo=!1,wn=1;;){we=kn();let t=Wh[_e]();if(t)return t}}function kn(){if(ic[mi])return String.fromCodePoint(ic.codePointAt(mi))}function W(){let t=kn();return t===`
|
|
2
|
+
`?(Hn++,Ut=0):t?Ut+=t.length:Ut++,t&&(mi+=t.length),t}var Wh={default(){switch(we){case" ":case"\v":case"\f":case" ":case"\xA0":case"\uFEFF":case`
|
|
3
|
+
`:case"\r":case"\u2028":case"\u2029":W();return;case"/":W(),_e="comment";return;case void 0:return W(),Ne("eof")}if(We.isSpaceSeparator(we)){W();return}return Wh[ot]()},comment(){switch(we){case"*":W(),_e="multiLineComment";return;case"/":W(),_e="singleLineComment";return}throw Be(W())},multiLineComment(){switch(we){case"*":W(),_e="multiLineCommentAsterisk";return;case void 0:throw Be(W())}W()},multiLineCommentAsterisk(){switch(we){case"*":W();return;case"/":W(),_e="default";return;case void 0:throw Be(W())}W(),_e="multiLineComment"},singleLineComment(){switch(we){case`
|
|
4
|
+
`:case"\r":case"\u2028":case"\u2029":W(),_e="default";return;case void 0:return W(),Ne("eof")}W()},value(){switch(we){case"{":case"[":return Ne("punctuator",W());case"n":return W(),dr("ull"),Ne("null",null);case"t":return W(),dr("rue"),Ne("boolean",!0);case"f":return W(),dr("alse"),Ne("boolean",!1);case"-":case"+":W()==="-"&&(wn=-1),_e="sign";return;case".":ge=W(),_e="decimalPointLeading";return;case"0":ge=W(),_e="zero";return;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":ge=W(),_e="decimalInteger";return;case"I":return W(),dr("nfinity"),Ne("numeric",1/0);case"N":return W(),dr("aN"),Ne("numeric",NaN);case'"':case"'":Uo=W()==='"',ge="",_e="string";return}throw Be(W())},identifierNameStartEscape(){if(we!=="u")throw Be(W());W();let t=uc();switch(t){case"$":case"_":break;default:if(!We.isIdStartChar(t))throw Hh();break}ge+=t,_e="identifierName"},identifierName(){switch(we){case"$":case"_":case"\u200C":case"\u200D":ge+=W();return;case"\\":W(),_e="identifierNameEscape";return}if(We.isIdContinueChar(we)){ge+=W();return}return Ne("identifier",ge)},identifierNameEscape(){if(we!=="u")throw Be(W());W();let t=uc();switch(t){case"$":case"_":case"\u200C":case"\u200D":break;default:if(!We.isIdContinueChar(t))throw Hh();break}ge+=t,_e="identifierName"},sign(){switch(we){case".":ge=W(),_e="decimalPointLeading";return;case"0":ge=W(),_e="zero";return;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":ge=W(),_e="decimalInteger";return;case"I":return W(),dr("nfinity"),Ne("numeric",wn*(1/0));case"N":return W(),dr("aN"),Ne("numeric",NaN)}throw Be(W())},zero(){switch(we){case".":ge+=W(),_e="decimalPoint";return;case"e":case"E":ge+=W(),_e="decimalExponent";return;case"x":case"X":ge+=W(),_e="hexadecimal";return}return Ne("numeric",wn*0)},decimalInteger(){switch(we){case".":ge+=W(),_e="decimalPoint";return;case"e":case"E":ge+=W(),_e="decimalExponent";return}if(We.isDigit(we)){ge+=W();return}return Ne("numeric",wn*Number(ge))},decimalPointLeading(){if(We.isDigit(we)){ge+=W(),_e="decimalFraction";return}throw Be(W())},decimalPoint(){switch(we){case"e":case"E":ge+=W(),_e="decimalExponent";return}if(We.isDigit(we)){ge+=W(),_e="decimalFraction";return}return Ne("numeric",wn*Number(ge))},decimalFraction(){switch(we){case"e":case"E":ge+=W(),_e="decimalExponent";return}if(We.isDigit(we)){ge+=W();return}return Ne("numeric",wn*Number(ge))},decimalExponent(){switch(we){case"+":case"-":ge+=W(),_e="decimalExponentSign";return}if(We.isDigit(we)){ge+=W(),_e="decimalExponentInteger";return}throw Be(W())},decimalExponentSign(){if(We.isDigit(we)){ge+=W(),_e="decimalExponentInteger";return}throw Be(W())},decimalExponentInteger(){if(We.isDigit(we)){ge+=W();return}return Ne("numeric",wn*Number(ge))},hexadecimal(){if(We.isHexDigit(we)){ge+=W(),_e="hexadecimalInteger";return}throw Be(W())},hexadecimalInteger(){if(We.isHexDigit(we)){ge+=W();return}return Ne("numeric",wn*Number(ge))},string(){switch(we){case"\\":W(),ge+=TC();return;case'"':if(Uo)return W(),Ne("string",ge);ge+=W();return;case"'":if(!Uo)return W(),Ne("string",ge);ge+=W();return;case`
|
|
5
|
+
`:case"\r":throw Be(W());case"\u2028":case"\u2029":xC(we);break;case void 0:throw Be(W())}ge+=W()},start(){switch(we){case"{":case"[":return Ne("punctuator",W())}_e="value"},beforePropertyName(){switch(we){case"$":case"_":ge=W(),_e="identifierName";return;case"\\":W(),_e="identifierNameStartEscape";return;case"}":return Ne("punctuator",W());case'"':case"'":Uo=W()==='"',_e="string";return}if(We.isIdStartChar(we)){ge+=W(),_e="identifierName";return}throw Be(W())},afterPropertyName(){if(we===":")return Ne("punctuator",W());throw Be(W())},beforePropertyValue(){_e="value"},afterPropertyValue(){switch(we){case",":case"}":return Ne("punctuator",W())}throw Be(W())},beforeArrayValue(){if(we==="]")return Ne("punctuator",W());_e="value"},afterArrayValue(){switch(we){case",":case"]":return Ne("punctuator",W())}throw Be(W())},end(){throw Be(W())}};function Ne(t,e){return{type:t,value:e,line:Hn,column:Ut}}function dr(t){for(let e of t){if(kn()!==e)throw Be(W());W()}}function TC(){switch(kn()){case"b":return W(),"\b";case"f":return W(),"\f";case"n":return W(),`
|
|
6
|
+
`;case"r":return W(),"\r";case"t":return W()," ";case"v":return W(),"\v";case"0":if(W(),We.isDigit(kn()))throw Be(W());return"\0";case"x":return W(),DC();case"u":return W(),uc();case`
|
|
7
7
|
`:case"\u2028":case"\u2029":return W(),"";case"\r":return W(),kn()===`
|
|
8
|
-
`&&W(),"";case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":throw Be(W());case void 0:throw Be(W())}return W()}function
|
|
9
|
-
`+s;S=A.join(
|
|
8
|
+
`&&W(),"";case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":throw Be(W());case void 0:throw Be(W())}return W()}function DC(){let t="",e=kn();if(!We.isHexDigit(e)||(t+=W(),e=kn(),!We.isHexDigit(e)))throw Be(W());return t+=W(),String.fromCodePoint(parseInt(t,16))}function uc(){let t="",e=4;for(;e-- >0;){let n=kn();if(!We.isHexDigit(n))throw Be(W());t+=W()}return String.fromCodePoint(parseInt(t,16))}var RC={start(){if(Ge.type==="eof")throw fr();sc()},beforePropertyName(){switch(Ge.type){case"identifier":case"string":cc=Ge.value,ot="afterPropertyName";return;case"punctuator":pi();return;case"eof":throw fr()}},afterPropertyName(){if(Ge.type==="eof")throw fr();ot="beforePropertyValue"},beforePropertyValue(){if(Ge.type==="eof")throw fr();sc()},beforeArrayValue(){if(Ge.type==="eof")throw fr();if(Ge.type==="punctuator"&&Ge.value==="]"){pi();return}sc()},afterPropertyValue(){if(Ge.type==="eof")throw fr();switch(Ge.value){case",":ot="beforePropertyName";return;case"}":pi()}},afterArrayValue(){if(Ge.type==="eof")throw fr();switch(Ge.value){case",":ot="beforeArrayValue";return;case"]":pi()}},end(){}};function sc(){let t;switch(Ge.type){case"punctuator":switch(Ge.value){case"{":t={};break;case"[":t=[];break}break;case"null":case"boolean":case"numeric":case"string":t=Ge.value;break}if($o===void 0)$o=t;else{let e=En[En.length-1];Array.isArray(e)?e.push(t):Object.defineProperty(e,cc,{value:t,writable:!0,enumerable:!0,configurable:!0})}if(t!==null&&typeof t=="object")En.push(t),Array.isArray(t)?ot="beforeArrayValue":ot="beforePropertyName";else{let e=En[En.length-1];e==null?ot="end":Array.isArray(e)?ot="afterArrayValue":ot="afterPropertyValue"}}function pi(){En.pop();let t=En[En.length-1];t==null?ot="end":Array.isArray(t)?ot="afterArrayValue":ot="afterPropertyValue"}function Be(t){return gi(t===void 0?`JSON5: invalid end of input at ${Hn}:${Ut}`:`JSON5: invalid character '${Gh(t)}' at ${Hn}:${Ut}`)}function fr(){return gi(`JSON5: invalid end of input at ${Hn}:${Ut}`)}function Hh(){return Ut-=5,gi(`JSON5: invalid identifier character at ${Hn}:${Ut}`)}function xC(t){console.warn(`JSON5: '${Gh(t)}' in strings is not valid ECMAScript; consider escaping`)}function Gh(t){let e={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(e[t])return e[t];if(t<" "){let n=t.charCodeAt(0).toString(16);return"\\x"+("00"+n).substring(n.length)}return t}function gi(t){let e=new SyntaxError(t);return e.lineNumber=Hn,e.columnNumber=Ut,e}});var Yh=X((NR,Kh)=>{var lc=oc();Kh.exports=function(e,n,r){let o=[],s="",a,u,l="",d;if(n!=null&&typeof n=="object"&&!Array.isArray(n)&&(r=n.space,d=n.quote,n=n.replacer),typeof n=="function")u=n;else if(Array.isArray(n)){a=[];for(let y of n){let g;typeof y=="string"?g=y:(typeof y=="number"||y instanceof String||y instanceof Number)&&(g=String(y)),g!==void 0&&a.indexOf(g)<0&&a.push(g)}}return r instanceof Number?r=Number(r):r instanceof String&&(r=String(r)),typeof r=="number"?r>0&&(r=Math.min(10,Math.floor(r)),l=" ".substr(0,r)):typeof r=="string"&&(l=r.substr(0,10)),f("",{"":e});function f(y,g){let _=g[y];switch(_!=null&&(typeof _.toJSON5=="function"?_=_.toJSON5(y):typeof _.toJSON=="function"&&(_=_.toJSON(y))),u&&(_=u.call(g,y,_)),_ instanceof Number?_=Number(_):_ instanceof String?_=String(_):_ instanceof Boolean&&(_=_.valueOf()),_){case null:return"null";case!0:return"true";case!1:return"false"}if(typeof _=="string")return p(_,!1);if(typeof _=="number")return String(_);if(typeof _=="object")return Array.isArray(_)?w(_):m(_)}function p(y){let g={"'":.1,'"':.2},_={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"},A="";for(let S=0;S<y.length;S++){let T=y[S];switch(T){case"'":case'"':g[T]++,A+=T;continue;case"\0":if(lc.isDigit(y[S+1])){A+="\\x00";continue}}if(_[T]){A+=_[T];continue}if(T<" "){let R=T.charCodeAt(0).toString(16);A+="\\x"+("00"+R).substring(R.length);continue}A+=T}let C=d||Object.keys(g).reduce((S,T)=>g[S]<g[T]?S:T);return A=A.replace(new RegExp(C,"g"),_[C]),C+A+C}function m(y){if(o.indexOf(y)>=0)throw TypeError("Converting circular structure to JSON5");o.push(y);let g=s;s=s+l;let _=a||Object.keys(y),A=[];for(let S of _){let T=f(S,y);if(T!==void 0){let R=b(S)+":";l!==""&&(R+=" "),R+=T,A.push(R)}}let C;if(A.length===0)C="{}";else{let S;if(l==="")S=A.join(","),C="{"+S+"}";else{let T=`,
|
|
9
|
+
`+s;S=A.join(T),C=`{
|
|
10
10
|
`+s+S+`,
|
|
11
|
-
`+g+"}"}}return o.pop(),s=g,C}function b(y){if(y.length===0)return p(y,!0);let g=String.fromCodePoint(y.codePointAt(0));if(!
|
|
11
|
+
`+g+"}"}}return o.pop(),s=g,C}function b(y){if(y.length===0)return p(y,!0);let g=String.fromCodePoint(y.codePointAt(0));if(!lc.isIdStartChar(g))return p(y,!0);for(let _=g.length;_<y.length;_++)if(!lc.isIdContinueChar(String.fromCodePoint(y.codePointAt(_))))return p(y,!0);return y}function w(y){if(o.indexOf(y)>=0)throw TypeError("Converting circular structure to JSON5");o.push(y);let g=s;s=s+l;let _=[];for(let C=0;C<y.length;C++){let S=f(String(C),y);_.push(S!==void 0?S:"null")}let A;if(_.length===0)A="[]";else if(l==="")A="["+_.join(",")+"]";else{let C=`,
|
|
12
12
|
`+s,S=_.join(C);A=`[
|
|
13
13
|
`+s+S+`,
|
|
14
|
-
`+g+"]"}return o.pop(),s=g,A}}});var lc=X((FR,Yh)=>{var xC=Jh(),OC=Kh(),PC={parse:xC,stringify:OC};Yh.exports=PC});var fp={};fi(fp,{getFallbackPromotionStore:()=>zo,resetFallbackPromotionStore:()=>MC});function zo(t){return pr||(pr=new hc,t&&pr.configure(t)),pr}function MC(){pr&&(pr.clearAll(),pr=null)}var BC,hc,pr,bi=Le(()=>{"use strict";Wn();BC=600*1e3,hc=class{promotions=new Map;enabled=!0;ttlMs=BC;configure(e){e?.enabled!==void 0&&(this.enabled=e.enabled),e?.ttlMinutes!==void 0&&(this.ttlMs=e.ttlMinutes*60*1e3)}getKey(e,n,r){return`${e},${n}:${r}`}promote(e,n,r,o,s,a){if(!this.enabled)return;let u=this.getKey(e,n,r),l=`${o},${s}`;this.promotions.set(u,{promotedModel:l,timestamp:Date.now(),ttlMs:a??this.ttlMs})}getPromotion(e,n,r,o){if(!this.enabled)return null;let s=this.getKey(e,n,r),a=this.promotions.get(s);if(!a)return null;if(Date.now()-a.timestamp>=a.ttlMs)return this.promotions.delete(s),null;let[l,...d]=a.promotedModel.split(","),f=d.join(",");if(!Je().isAvailable(l,f))return this.promotions.delete(s),null;let m=o.find(w=>w.name.toLowerCase()===l.toLowerCase()),b=m?.models?.find(w=>String(w).toLowerCase()===f.toLowerCase());return!m||!b||m.enabled===!1?(this.promotions.delete(s),null):`${m.name},${b}`}clear(e,n,r){let o=this.getKey(e,n,r);this.promotions.delete(o)}clearByPrimary(e,n){let r=`${e},${n}:`,o=0;for(let s of this.promotions.keys())s.startsWith(r)&&(this.promotions.delete(s),o++);return o}clearAll(){this.promotions.clear()}clearExpired(){let e=Date.now();for(let[n,r]of this.promotions)e-r.timestamp>=r.ttlMs&&this.promotions.delete(n)}getAllPromotions(){let e=Date.now(),n=[];for(let[r,o]of this.promotions){let s=o.ttlMs-(e-o.timestamp);s>0&&n.push({key:r,promotedModel:o.promotedModel,remainingMs:s})}return n}},pr=null});function $C(t){try{if(!(0,An.existsSync)(gc))return;let e=JSON.parse((0,An.readFileSync)(gc,"utf-8"));if(!Array.isArray(e))return;let n=Date.now();for(let r of e){if(!r||!r.provider||!r.model)continue;let o=r.updatedAt||r.lastFailureTime||0;o&&n-o>1440*60*1e3||t.restore({provider:r.provider,model:r.model,status:r.status,failureCount:r.failureCount??0,successCount:r.successCount??0,lastFailureTime:r.lastFailureTime??0,lastProbeTime:r.lastProbeTime??0,lastError:r.lastError,rateLimitUntil:r.rateLimitUntil})}}catch{}}function pp(t){try{let e=t.getAllStates();if(e.length===0)return;(0,An.existsSync)(mc)||(0,An.mkdirSync)(mc,{recursive:!0});let n=e.map(r=>({...r,updatedAt:Date.now()}));(0,An.writeFileSync)(gc,JSON.stringify(n,null,2),"utf-8")}catch{}}function Ci(){if(hp)return;hp=!0;let t=Je();$C(t),UC=setInterval(()=>pp(t),6e4),process.on("exit",()=>pp(t))}function Je(t){return pc||(pc=new Ho(t)),pc}var An,yc,mp,LC,jC,Ho,mc,gc,hp,UC,pc,Wn=Le(()=>{"use strict";An=require("fs"),yc=require("path"),mp=require("@wengine-ai/claude-code-router-shared"),LC=120,jC={enabled:!0,failureThreshold:3,probeIntervalMinutes:5,halfOpenSuccessThreshold:2},Ho=class{states=new Map;config;probeTimer;constructor(e){this.config={...jC,...e}}getKey(e,n){return`${e},${n}`}recordSuccess(e,n){if(!this.config.enabled)return;let r=this.getKey(e,n),o=this.states.get(r);o&&(o.successCount++,!o.rateLimitUntil&&(o.status==="half-open"?o.successCount>=this.config.halfOpenSuccessThreshold&&(this.clearPromotionsForPrimary(e,n),this.states.delete(r)):o.status==="open"&&(o.status="half-open",o.successCount=1,o.failureCount=0)))}clearPromotionsForPrimary(e,n){try{let{getFallbackPromotionStore:r}=(bi(),Uh(fp));r().clearByPrimary(e,n)}catch{}}recordFailure(e,n,r){if(!this.config.enabled)return;let o=this.getKey(e,n),s=this.states.get(o);s||(s={provider:e,model:n,status:"closed",failureCount:0,successCount:0,lastFailureTime:0,lastProbeTime:0},this.states.set(o,s)),s.failureCount++,s.lastFailureTime=Date.now(),s.lastError=r,s.status==="half-open"?(s.status="open",s.successCount=0,s.lastProbeTime=0):s.status==="closed"&&s.failureCount>=this.config.failureThreshold&&(s.status="open",s.lastProbeTime=0)}getState(e,n){return this.states.get(this.getKey(e,n))}isAvailable(e,n){if(!this.config.enabled)return!0;let r=this.getState(e,n);return r?r.status==="open"&&r.rateLimitUntil?!(Date.now()<r.rateLimitUntil):r.status!=="open":!0}getPriority(e,n){if(!this.config.enabled)return 0;let r=this.getState(e,n);if(!r)return 0;switch(r.status){case"closed":return 0;case"half-open":return 1;case"open":return 2}}getHealthyModels(){return[]}getFailPoolModels(){let e=[];for(let[n,r]of this.states)r.status==="open"&&e.push(n);return e}getHalfOpenModels(){let e=[];for(let[n,r]of this.states)r.status==="half-open"&&e.push(n);return e}forceOpen(e,n,r){if(!this.config.enabled)return;let o=this.getKey(e,n),s=this.states.get(o);s?(s.status="open",s.failureCount=Math.max(s.failureCount,this.config.failureThreshold),s.lastFailureTime=Date.now(),s.lastError=r,s.lastProbeTime=0):(s={provider:e,model:n,status:"open",failureCount:this.config.failureThreshold,successCount:0,lastFailureTime:Date.now(),lastProbeTime:0,lastError:r},this.states.set(o,s))}markRateLimited(e,n,r,o){if(!this.config.enabled)return;let s=this.getKey(e,n),a=this.states.get(s);a?(a.status="open",a.lastFailureTime=Date.now(),a.lastError=o||"rate-limited",a.lastProbeTime=0):(a={provider:e,model:n,status:"open",failureCount:0,successCount:0,lastFailureTime:Date.now(),lastProbeTime:0,lastError:o||"rate-limited"},this.states.set(s,a));let u=(r??LC)*1e3;a.rateLimitUntil=Date.now()+u}getRateLimitedModels(){let e=[];for(let[n,r]of this.states)r.status==="open"&&r.rateLimitUntil&&e.push(n);return e}needsProbe(e){return Date.now()-e.lastProbeTime>=this.config.probeIntervalMinutes*60*1e3}markProbeAttempt(e,n){let r=this.getKey(e,n),o=this.states.get(r);o&&o.status==="open"&&(o.lastProbeTime=Date.now())}clear(){this.states.clear()}recover(e,n){let r=this.getKey(e,n);this.states.delete(r)}getAllStates(){return Array.from(this.states.values())}restore(e){this.states.set(this.getKey(e.provider,e.model),{...e})}stopProbeTimer(){this.probeTimer&&(clearInterval(this.probeTimer),this.probeTimer=void 0)}},mc=(0,yc.join)(mp.HOME_DIR,"runtime"),gc=(0,yc.join)(mc,"provider-health.json"),hp=!1,UC=null;pc=null});var Oc=X((Ox,Xp)=>{"use strict";var Li=Object.prototype.hasOwnProperty,Qp=Object.prototype.toString,Wp=Object.defineProperty,Gp=Object.getOwnPropertyDescriptor,Jp=function(e){return typeof Array.isArray=="function"?Array.isArray(e):Qp.call(e)==="[object Array]"},Vp=function(e){if(!e||Qp.call(e)!=="[object Object]")return!1;var n=Li.call(e,"constructor"),r=e.constructor&&e.constructor.prototype&&Li.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!n&&!r)return!1;var o;for(o in e);return typeof o>"u"||Li.call(e,o)},Kp=function(e,n){Wp&&n.name==="__proto__"?Wp(e,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):e[n.name]=n.newValue},Yp=function(e,n){if(n==="__proto__")if(Li.call(e,n)){if(Gp)return Gp(e,n).value}else return;return e[n]};Xp.exports=function t(){var e,n,r,o,s,a,u=arguments[0],l=1,d=arguments.length,f=!1;for(typeof u=="boolean"&&(f=u,u=arguments[1]||{},l=2),(u==null||typeof u!="object"&&typeof u!="function")&&(u={});l<d;++l)if(e=arguments[l],e!=null)for(n in e)r=Yp(u,n),o=Yp(e,n),u!==o&&(f&&o&&(Vp(o)||(s=Jp(o)))?(s?(s=!1,a=r&&Jp(r)?r:[]):a=r&&Vp(r)?r:{},Kp(u,{name:n,newValue:t(f,a,o)})):typeof o<"u"&&Kp(u,{name:n,newValue:o}));return u}});var Zp=X((Px,_w)=>{_w.exports={name:"gaxios",version:"7.1.2",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:"googleapis/gaxios",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.1","@types/node":"^22.0.0","@types/sinon":"^17.0.0","@types/tmp":"0.2.6",assert:"^2.0.0",browserify:"^17.0.0",c8:"^10.0.0",cors:"^2.8.5",express:"^5.0.0",gts:"^6.0.0","is-docker":"^3.0.0",jsdoc:"^4.0.0","jsdoc-fresh":"^4.0.0","jsdoc-region-tag":"^3.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.0-beta.13","null-loader":"^4.0.0","pack-n-play":"^3.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.35.0","webpack-cli":"^6.0.1"},dependencies:{extend:"^3.0.2","https-proxy-agent":"^7.0.1","node-fetch":"^3.3.2"}}});var tm=X((Fx,em)=>{"use strict";var bw=Zp();em.exports={pkg:bw}});var Ic=X(vt=>{"use strict";var rm=vt&&vt.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(vt,"__esModule",{value:!0});vt.GaxiosError=vt.GAXIOS_ERROR_SYMBOL=void 0;vt.defaultErrorRedactor=om;var nm=rm(Oc()),Cw=rm(tm()),Pc=Cw.default.pkg;vt.GAXIOS_ERROR_SYMBOL=Symbol.for(`${Pc.name}-gaxios-error`);var Fc=class t extends Error{config;response;code;status;error;[vt.GAXIOS_ERROR_SYMBOL]=Pc.version;static[Symbol.hasInstance](e){return e&&typeof e=="object"&&vt.GAXIOS_ERROR_SYMBOL in e&&e[vt.GAXIOS_ERROR_SYMBOL]===Pc.version?!0:Function.prototype[Symbol.hasInstance].call(t,e)}constructor(e,n,r,o){if(super(e,{cause:o}),this.config=n,this.response=r,this.error=o instanceof Error?o:void 0,this.config=(0,nm.default)(!0,{},n),this.response&&(this.response.config=(0,nm.default)(!0,{},this.response.config)),this.response){try{this.response.data=ww(this.config.responseType,this.response?.bodyUsed?this.response?.data:void 0)}catch{}this.status=this.response.status}o instanceof DOMException?this.code=o.name:o&&typeof o=="object"&&"code"in o&&(typeof o.code=="string"||typeof o.code=="number")&&(this.code=o.code)}static extractAPIErrorFromResponse(e,n="The request failed"){let r=n;if(typeof e.data=="string"&&(r=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"){r="message"in e.data.error&&typeof e.data.error.message=="string"?e.data.error.message:r;let o="status"in e.data.error&&typeof e.data.error.status=="string"?e.data.error.status:e.statusText,s="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 a=[];for(let u of e.data.error.errors)typeof u=="object"&&"message"in u&&typeof u.message=="string"&&a.push(u.message);return Object.assign({message:a.join(`
|
|
15
|
-
`)||r,code:s,status:o},e.data.error)}return Object.assign({message:r,code:s,status:o},e.data.error)}}return{message:r,code:e.status,status:e.statusText}}};vt.GaxiosError=Fc;function ww(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 om(t){let e="<<REDACTED> - See `errorRedactor` option in `gaxios` for configuration>.";function n(s){s&&s.forEach((a,u)=>{(/^authentication$/i.test(u)||/^authorization$/i.test(u)||/secret/i.test(u))&&s.set(u,e)})}function r(s,a){if(typeof s=="object"&&s!==null&&typeof s[a]=="string"){let u=s[a];(/grant_type=/i.test(u)||/assertion=/i.test(u)||/secret/i.test(u))&&(s[a]=e)}}function o(s){!s||typeof s!="object"||(s instanceof FormData||s instanceof URLSearchParams||"forEach"in s&&"set"in s?s.forEach((a,u)=>{(["grant_type","assertion"].includes(u)||/secret/.test(u))&&s.set(u,e)}):("grant_type"in s&&(s.grant_type=e),"assertion"in s&&(s.assertion=e),"client_secret"in s&&(s.client_secret=e)))}return t.config&&(n(t.config.headers),r(t.config,"data"),o(t.config.data),r(t.config,"body"),o(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&&(om({config:t.response.config}),n(t.response.headers),t.response.bodyUsed&&(r(t.response,"data"),o(t.response.data))),t}});var im=X(Nc=>{"use strict";Object.defineProperty(Nc,"__esModule",{value:!0});Nc.getRetryConfig=Ew;async function Ew(t){let e=sm(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||kw)(t))return{shouldRetry:!1,config:t.config};let o=Aw(e);t.config.retryConfig.currentRetryAttempt+=1;let s=e.retryBackoff?e.retryBackoff(t,o):new Promise(a=>{setTimeout(a,o)});return e.onRetryAttempt&&await e.onRetryAttempt(t),await s,{shouldRetry:!0,config:t.config}}function kw(t){let e=sm(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[r,o]of e.statusCodesToRetry){let s=t.response.status;if(s>=r&&s<=o){n=!0;break}}if(!n)return!1}return e.currentRetryAttempt=e.currentRetryAttempt||0,!(e.currentRetryAttempt>=e.retry)}function sm(t){if(t&&t.config&&t.config.retryConfig)return t.config.retryConfig}function Aw(t){let n=(t.currentRetryAttempt?0:t.retryDelay??100)+(Math.pow(t.retryDelayMultiplier,t.currentRetryAttempt)-1)/2*1e3,r=t.totalTimeout-(Date.now()-t.timeOfFirstRequest);return Math.min(n,r,t.maxRetryDelay)}});var Mc=X(ji=>{"use strict";Object.defineProperty(ji,"__esModule",{value:!0});ji.GaxiosInterceptorManager=void 0;var Bc=class extends Set{};ji.GaxiosInterceptorManager=Bc});var um=X((Mx,am)=>{var to=1e3,no=to*60,ro=no*60,_r=ro*24,Sw=_r*7,Tw=_r*365.25;am.exports=function(t,e){e=e||{};var n=typeof t;if(n==="string"&&t.length>0)return vw(t);if(n==="number"&&isFinite(t))return e.long?Rw(t):Dw(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function vw(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var n=parseFloat(e[1]),r=(e[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return n*Tw;case"weeks":case"week":case"w":return n*Sw;case"days":case"day":case"d":return n*_r;case"hours":case"hour":case"hrs":case"hr":case"h":return n*ro;case"minutes":case"minute":case"mins":case"min":case"m":return n*no;case"seconds":case"second":case"secs":case"sec":case"s":return n*to;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function Dw(t){var e=Math.abs(t);return e>=_r?Math.round(t/_r)+"d":e>=ro?Math.round(t/ro)+"h":e>=no?Math.round(t/no)+"m":e>=to?Math.round(t/to)+"s":t+"ms"}function Rw(t){var e=Math.abs(t);return e>=_r?Ui(t,e,_r,"day"):e>=ro?Ui(t,e,ro,"hour"):e>=no?Ui(t,e,no,"minute"):e>=to?Ui(t,e,to,"second"):t+" ms"}function Ui(t,e,n,r){var o=e>=n*1.5;return Math.round(t/n)+" "+r+(o?"s":"")}});var Lc=X((Lx,cm)=>{function xw(t){n.debug=n,n.default=n,n.coerce=l,n.disable=a,n.enable=o,n.enabled=u,n.humanize=um(),n.destroy=d,Object.keys(t).forEach(f=>{n[f]=t[f]}),n.names=[],n.skips=[],n.formatters={};function e(f){let p=0;for(let m=0;m<f.length;m++)p=(p<<5)-p+f.charCodeAt(m),p|=0;return n.colors[Math.abs(p)%n.colors.length]}n.selectColor=e;function n(f){let p,m=null,b,w;function y(...g){if(!y.enabled)return;let _=y,A=Number(new Date),C=A-(p||A);_.diff=C,_.prev=p,_.curr=A,p=A,g[0]=n.coerce(g[0]),typeof g[0]!="string"&&g.unshift("%O");let S=0;g[0]=g[0].replace(/%([a-zA-Z%])/g,(R,$)=>{if(R==="%%")return"%";S++;let V=n.formatters[$];if(typeof V=="function"){let P=g[S];R=V.call(_,P),g.splice(S,1),S--}return R}),n.formatArgs.call(_,g),(_.log||n.log).apply(_,g)}return y.namespace=f,y.useColors=n.useColors(),y.color=n.selectColor(f),y.extend=r,y.destroy=n.destroy,Object.defineProperty(y,"enabled",{enumerable:!0,configurable:!1,get:()=>m!==null?m:(b!==n.namespaces&&(b=n.namespaces,w=n.enabled(f)),w),set:g=>{m=g}}),typeof n.init=="function"&&n.init(y),y}function r(f,p){let m=n(this.namespace+(typeof p>"u"?":":p)+f);return m.log=this.log,m}function o(f){n.save(f),n.namespaces=f,n.names=[],n.skips=[];let p=(typeof f=="string"?f:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let m of p)m[0]==="-"?n.skips.push(m.slice(1)):n.names.push(m)}function s(f,p){let m=0,b=0,w=-1,y=0;for(;m<f.length;)if(b<p.length&&(p[b]===f[m]||p[b]==="*"))p[b]==="*"?(w=b,y=m,b++):(m++,b++);else if(w!==-1)b=w+1,y++,m=y;else return!1;for(;b<p.length&&p[b]==="*";)b++;return b===p.length}function a(){let f=[...n.names,...n.skips.map(p=>"-"+p)].join(",");return n.enable(""),f}function u(f){for(let p of n.skips)if(s(f,p))return!1;for(let p of n.names)if(s(f,p))return!0;return!1}function l(f){return f instanceof Error?f.stack||f.message:f}function d(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return n.enable(n.load()),n}cm.exports=xw});var lm=X((ut,$i)=>{ut.formatArgs=Pw;ut.save=Fw;ut.load=Iw;ut.useColors=Ow;ut.storage=Nw();ut.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();ut.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function Ow(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let t;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(t=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(t[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function Pw(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+$i.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let n=0,r=0;t[0].replace(/%[a-zA-Z%]/g,o=>{o!=="%%"&&(n++,o==="%c"&&(r=n))}),t.splice(r,0,e)}ut.log=console.debug||console.log||(()=>{});function Fw(t){try{t?ut.storage.setItem("debug",t):ut.storage.removeItem("debug")}catch{}}function Iw(){let t;try{t=ut.storage.getItem("debug")||ut.storage.getItem("DEBUG")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}function Nw(){try{return localStorage}catch{}}$i.exports=Lc()(ut);var{formatters:Bw}=$i.exports;Bw.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var fm=X((jx,dm)=>{"use strict";dm.exports=(t,e=process.argv)=>{let n=t.startsWith("-")?"":t.length===1?"-":"--",r=e.indexOf(n+t),o=e.indexOf("--");return r!==-1&&(o===-1||r<o)}});var mm=X((Ux,pm)=>{"use strict";var Mw=require("os"),hm=require("tty"),Dt=fm(),{env:Ve}=process,Gn;Dt("no-color")||Dt("no-colors")||Dt("color=false")||Dt("color=never")?Gn=0:(Dt("color")||Dt("colors")||Dt("color=true")||Dt("color=always"))&&(Gn=1);"FORCE_COLOR"in Ve&&(Ve.FORCE_COLOR==="true"?Gn=1:Ve.FORCE_COLOR==="false"?Gn=0:Gn=Ve.FORCE_COLOR.length===0?1:Math.min(parseInt(Ve.FORCE_COLOR,10),3));function jc(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function Uc(t,e){if(Gn===0)return 0;if(Dt("color=16m")||Dt("color=full")||Dt("color=truecolor"))return 3;if(Dt("color=256"))return 2;if(t&&!e&&Gn===void 0)return 0;let n=Gn||0;if(Ve.TERM==="dumb")return n;if(process.platform==="win32"){let r=Mw.release().split(".");return Number(r[0])>=10&&Number(r[2])>=10586?Number(r[2])>=14931?3:2:1}if("CI"in Ve)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(r=>r in Ve)||Ve.CI_NAME==="codeship"?1:n;if("TEAMCITY_VERSION"in Ve)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Ve.TEAMCITY_VERSION)?1:0;if(Ve.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in Ve){let r=parseInt((Ve.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Ve.TERM_PROGRAM){case"iTerm.app":return r>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Ve.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Ve.TERM)||"COLORTERM"in Ve?1:n}function Lw(t){let e=Uc(t,t&&t.isTTY);return jc(e)}pm.exports={supportsColor:Lw,stdout:jc(Uc(!0,hm.isatty(1))),stderr:jc(Uc(!0,hm.isatty(2)))}});var ym=X((Ke,zi)=>{var jw=require("tty"),qi=require("util");Ke.init=Gw;Ke.log=zw;Ke.formatArgs=$w;Ke.save=Hw;Ke.load=Ww;Ke.useColors=Uw;Ke.destroy=qi.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Ke.colors=[6,2,3,4,5,1];try{let t=mm();t&&(t.stderr||t).level>=2&&(Ke.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}Ke.inspectOpts=Object.keys(process.env).filter(t=>/^debug_/i.test(t)).reduce((t,e)=>{let n=e.substring(6).toLowerCase().replace(/_([a-z])/g,(o,s)=>s.toUpperCase()),r=process.env[e];return/^(yes|on|true|enabled)$/i.test(r)?r=!0:/^(no|off|false|disabled)$/i.test(r)?r=!1:r==="null"?r=null:r=Number(r),t[n]=r,t},{});function Uw(){return"colors"in Ke.inspectOpts?!!Ke.inspectOpts.colors:jw.isatty(process.stderr.fd)}function $w(t){let{namespace:e,useColors:n}=this;if(n){let r=this.color,o="\x1B[3"+(r<8?r:"8;5;"+r),s=` ${o};1m${e} \x1B[0m`;t[0]=s+t[0].split(`
|
|
14
|
+
`+g+"]"}return o.pop(),s=g,A}}});var dc=X((BR,Qh)=>{var OC=Vh(),PC=Yh(),FC={parse:OC,stringify:PC};Qh.exports=FC});var fp={};fi(fp,{getFallbackPromotionStore:()=>zo,resetFallbackPromotionStore:()=>LC});function zo(t){return pr||(pr=new pc,t&&pr.configure(t)),pr}function LC(){pr&&(pr.clearAll(),pr=null)}var MC,pc,pr,Ci=Le(()=>{"use strict";Wn();MC=600*1e3,pc=class{promotions=new Map;enabled=!0;ttlMs=MC;configure(e){e?.enabled!==void 0&&(this.enabled=e.enabled),e?.ttlMinutes!==void 0&&(this.ttlMs=e.ttlMinutes*60*1e3)}getKey(e,n,r){return`${e},${n}:${r}`}promote(e,n,r,o,s,a){if(!this.enabled)return;let u=this.getKey(e,n,r),l=`${o},${s}`;this.promotions.set(u,{promotedModel:l,timestamp:Date.now(),ttlMs:a??this.ttlMs})}getPromotion(e,n,r,o){if(!this.enabled)return null;let s=this.getKey(e,n,r),a=this.promotions.get(s);if(!a)return null;if(Date.now()-a.timestamp>=a.ttlMs)return this.promotions.delete(s),null;let[l,...d]=a.promotedModel.split(","),f=d.join(",");if(!Je().isAvailable(l,f))return this.promotions.delete(s),null;let m=o.find(w=>w.name.toLowerCase()===l.toLowerCase()),b=m?.models?.find(w=>String(w).toLowerCase()===f.toLowerCase());return!m||!b||m.enabled===!1?(this.promotions.delete(s),null):`${m.name},${b}`}clear(e,n,r){let o=this.getKey(e,n,r);this.promotions.delete(o)}clearByPrimary(e,n){let r=`${e},${n}:`,o=0;for(let s of this.promotions.keys())s.startsWith(r)&&(this.promotions.delete(s),o++);return o}clearAll(){this.promotions.clear()}clearExpired(){let e=Date.now();for(let[n,r]of this.promotions)e-r.timestamp>=r.ttlMs&&this.promotions.delete(n)}getAllPromotions(){let e=Date.now(),n=[];for(let[r,o]of this.promotions){let s=o.ttlMs-(e-o.timestamp);s>0&&n.push({key:r,promotedModel:o.promotedModel,remainingMs:s})}return n}},pr=null});function qC(t){try{if(!(0,An.existsSync)(yc))return;let e=JSON.parse((0,An.readFileSync)(yc,"utf-8"));if(!Array.isArray(e))return;let n=Date.now();for(let r of e){if(!r||!r.provider||!r.model)continue;let o=r.updatedAt||r.lastFailureTime||0;o&&n-o>1440*60*1e3||t.restore({provider:r.provider,model:r.model,status:r.status,failureCount:r.failureCount??0,successCount:r.successCount??0,lastFailureTime:r.lastFailureTime??0,lastProbeTime:r.lastProbeTime??0,lastError:r.lastError,rateLimitUntil:r.rateLimitUntil})}}catch{}}function pp(t){try{let e=t.getAllStates();if(e.length===0)return;(0,An.existsSync)(gc)||(0,An.mkdirSync)(gc,{recursive:!0});let n=e.map(r=>({...r,updatedAt:Date.now()}));(0,An.writeFileSync)(yc,JSON.stringify(n,null,2),"utf-8")}catch{}}function wi(){if(hp)return;hp=!0;let t=Je();qC(t),$C=setInterval(()=>pp(t),6e4),process.on("exit",()=>pp(t))}function Je(t){return mc||(mc=new Ho(t)),mc}var An,_c,mp,jC,UC,Ho,gc,yc,hp,$C,mc,Wn=Le(()=>{"use strict";An=require("fs"),_c=require("path"),mp=require("@wengine-ai/claude-code-router-shared"),jC=120,UC={enabled:!0,failureThreshold:3,probeIntervalMinutes:5,halfOpenSuccessThreshold:2},Ho=class{states=new Map;config;probeTimer;constructor(e){this.config={...UC,...e}}getKey(e,n){return`${e},${n}`}recordSuccess(e,n){if(!this.config.enabled)return;let r=this.getKey(e,n),o=this.states.get(r);o&&(o.successCount++,!o.rateLimitUntil&&(o.status==="half-open"?o.successCount>=this.config.halfOpenSuccessThreshold&&(this.clearPromotionsForPrimary(e,n),this.states.delete(r)):o.status==="open"&&(o.status="half-open",o.successCount=1,o.failureCount=0)))}clearPromotionsForPrimary(e,n){try{let{getFallbackPromotionStore:r}=(Ci(),$h(fp));r().clearByPrimary(e,n)}catch{}}recordFailure(e,n,r){if(!this.config.enabled)return;let o=this.getKey(e,n),s=this.states.get(o);s||(s={provider:e,model:n,status:"closed",failureCount:0,successCount:0,lastFailureTime:0,lastProbeTime:0},this.states.set(o,s)),s.failureCount++,s.lastFailureTime=Date.now(),s.lastError=r,s.status==="half-open"?(s.status="open",s.successCount=0,s.lastProbeTime=0):s.status==="closed"&&s.failureCount>=this.config.failureThreshold&&(s.status="open",s.lastProbeTime=0)}getState(e,n){return this.states.get(this.getKey(e,n))}isAvailable(e,n){if(!this.config.enabled)return!0;let r=this.getState(e,n);return r?r.status==="open"&&r.rateLimitUntil?!(Date.now()<r.rateLimitUntil):r.status!=="open":!0}getPriority(e,n){if(!this.config.enabled)return 0;let r=this.getState(e,n);if(!r)return 0;switch(r.status){case"closed":return 0;case"half-open":return 1;case"open":return 2}}getHealthyModels(){return[]}getFailPoolModels(){let e=[];for(let[n,r]of this.states)r.status==="open"&&e.push(n);return e}getHalfOpenModels(){let e=[];for(let[n,r]of this.states)r.status==="half-open"&&e.push(n);return e}forceOpen(e,n,r){if(!this.config.enabled)return;let o=this.getKey(e,n),s=this.states.get(o);s?(s.status="open",s.failureCount=Math.max(s.failureCount,this.config.failureThreshold),s.lastFailureTime=Date.now(),s.lastError=r,s.lastProbeTime=0):(s={provider:e,model:n,status:"open",failureCount:this.config.failureThreshold,successCount:0,lastFailureTime:Date.now(),lastProbeTime:0,lastError:r},this.states.set(o,s))}markRateLimited(e,n,r,o){if(!this.config.enabled)return;let s=this.getKey(e,n),a=this.states.get(s);a?(a.status="open",a.lastFailureTime=Date.now(),a.lastError=o||"rate-limited",a.lastProbeTime=0):(a={provider:e,model:n,status:"open",failureCount:0,successCount:0,lastFailureTime:Date.now(),lastProbeTime:0,lastError:o||"rate-limited"},this.states.set(s,a));let u=(r??jC)*1e3;a.rateLimitUntil=Date.now()+u}getRateLimitedModels(){let e=[];for(let[n,r]of this.states)r.status==="open"&&r.rateLimitUntil&&e.push(n);return e}needsProbe(e){return Date.now()-e.lastProbeTime>=this.config.probeIntervalMinutes*60*1e3}markProbeAttempt(e,n){let r=this.getKey(e,n),o=this.states.get(r);o&&o.status==="open"&&(o.lastProbeTime=Date.now())}clear(){this.states.clear()}recover(e,n){let r=this.getKey(e,n);this.states.delete(r)}getAllStates(){return Array.from(this.states.values())}restore(e){this.states.set(this.getKey(e.provider,e.model),{...e})}stopProbeTimer(){this.probeTimer&&(clearInterval(this.probeTimer),this.probeTimer=void 0)}},gc=(0,_c.join)(mp.HOME_DIR,"runtime"),yc=(0,_c.join)(gc,"provider-health.json"),hp=!1,$C=null;mc=null});var Pc=X((Ix,Xp)=>{"use strict";var ji=Object.prototype.hasOwnProperty,Qp=Object.prototype.toString,Wp=Object.defineProperty,Gp=Object.getOwnPropertyDescriptor,Jp=function(e){return typeof Array.isArray=="function"?Array.isArray(e):Qp.call(e)==="[object Array]"},Vp=function(e){if(!e||Qp.call(e)!=="[object Object]")return!1;var n=ji.call(e,"constructor"),r=e.constructor&&e.constructor.prototype&&ji.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!n&&!r)return!1;var o;for(o in e);return typeof o>"u"||ji.call(e,o)},Kp=function(e,n){Wp&&n.name==="__proto__"?Wp(e,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):e[n.name]=n.newValue},Yp=function(e,n){if(n==="__proto__")if(ji.call(e,n)){if(Gp)return Gp(e,n).value}else return;return e[n]};Xp.exports=function t(){var e,n,r,o,s,a,u=arguments[0],l=1,d=arguments.length,f=!1;for(typeof u=="boolean"&&(f=u,u=arguments[1]||{},l=2),(u==null||typeof u!="object"&&typeof u!="function")&&(u={});l<d;++l)if(e=arguments[l],e!=null)for(n in e)r=Yp(u,n),o=Yp(e,n),u!==o&&(f&&o&&(Vp(o)||(s=Jp(o)))?(s?(s=!1,a=r&&Jp(r)?r:[]):a=r&&Vp(r)?r:{},Kp(u,{name:n,newValue:t(f,a,o)})):typeof o<"u"&&Kp(u,{name:n,newValue:o}));return u}});var Zp=X((Nx,bw)=>{bw.exports={name:"gaxios",version:"7.1.2",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:"googleapis/gaxios",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.1","@types/node":"^22.0.0","@types/sinon":"^17.0.0","@types/tmp":"0.2.6",assert:"^2.0.0",browserify:"^17.0.0",c8:"^10.0.0",cors:"^2.8.5",express:"^5.0.0",gts:"^6.0.0","is-docker":"^3.0.0",jsdoc:"^4.0.0","jsdoc-fresh":"^4.0.0","jsdoc-region-tag":"^3.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.0-beta.13","null-loader":"^4.0.0","pack-n-play":"^3.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.35.0","webpack-cli":"^6.0.1"},dependencies:{extend:"^3.0.2","https-proxy-agent":"^7.0.1","node-fetch":"^3.3.2"}}});var tm=X((Bx,em)=>{"use strict";var Cw=Zp();em.exports={pkg:Cw}});var Nc=X(Tt=>{"use strict";var rm=Tt&&Tt.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Tt,"__esModule",{value:!0});Tt.GaxiosError=Tt.GAXIOS_ERROR_SYMBOL=void 0;Tt.defaultErrorRedactor=om;var nm=rm(Pc()),ww=rm(tm()),Fc=ww.default.pkg;Tt.GAXIOS_ERROR_SYMBOL=Symbol.for(`${Fc.name}-gaxios-error`);var Ic=class t extends Error{config;response;code;status;error;[Tt.GAXIOS_ERROR_SYMBOL]=Fc.version;static[Symbol.hasInstance](e){return e&&typeof e=="object"&&Tt.GAXIOS_ERROR_SYMBOL in e&&e[Tt.GAXIOS_ERROR_SYMBOL]===Fc.version?!0:Function.prototype[Symbol.hasInstance].call(t,e)}constructor(e,n,r,o){if(super(e,{cause:o}),this.config=n,this.response=r,this.error=o instanceof Error?o:void 0,this.config=(0,nm.default)(!0,{},n),this.response&&(this.response.config=(0,nm.default)(!0,{},this.response.config)),this.response){try{this.response.data=Ew(this.config.responseType,this.response?.bodyUsed?this.response?.data:void 0)}catch{}this.status=this.response.status}o instanceof DOMException?this.code=o.name:o&&typeof o=="object"&&"code"in o&&(typeof o.code=="string"||typeof o.code=="number")&&(this.code=o.code)}static extractAPIErrorFromResponse(e,n="The request failed"){let r=n;if(typeof e.data=="string"&&(r=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"){r="message"in e.data.error&&typeof e.data.error.message=="string"?e.data.error.message:r;let o="status"in e.data.error&&typeof e.data.error.status=="string"?e.data.error.status:e.statusText,s="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 a=[];for(let u of e.data.error.errors)typeof u=="object"&&"message"in u&&typeof u.message=="string"&&a.push(u.message);return Object.assign({message:a.join(`
|
|
15
|
+
`)||r,code:s,status:o},e.data.error)}return Object.assign({message:r,code:s,status:o},e.data.error)}}return{message:r,code:e.status,status:e.statusText}}};Tt.GaxiosError=Ic;function Ew(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 om(t){let e="<<REDACTED> - See `errorRedactor` option in `gaxios` for configuration>.";function n(s){s&&s.forEach((a,u)=>{(/^authentication$/i.test(u)||/^authorization$/i.test(u)||/secret/i.test(u))&&s.set(u,e)})}function r(s,a){if(typeof s=="object"&&s!==null&&typeof s[a]=="string"){let u=s[a];(/grant_type=/i.test(u)||/assertion=/i.test(u)||/secret/i.test(u))&&(s[a]=e)}}function o(s){!s||typeof s!="object"||(s instanceof FormData||s instanceof URLSearchParams||"forEach"in s&&"set"in s?s.forEach((a,u)=>{(["grant_type","assertion"].includes(u)||/secret/.test(u))&&s.set(u,e)}):("grant_type"in s&&(s.grant_type=e),"assertion"in s&&(s.assertion=e),"client_secret"in s&&(s.client_secret=e)))}return t.config&&(n(t.config.headers),r(t.config,"data"),o(t.config.data),r(t.config,"body"),o(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&&(om({config:t.response.config}),n(t.response.headers),t.response.bodyUsed&&(r(t.response,"data"),o(t.response.data))),t}});var im=X(Bc=>{"use strict";Object.defineProperty(Bc,"__esModule",{value:!0});Bc.getRetryConfig=kw;async function kw(t){let e=sm(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||Aw)(t))return{shouldRetry:!1,config:t.config};let o=Sw(e);t.config.retryConfig.currentRetryAttempt+=1;let s=e.retryBackoff?e.retryBackoff(t,o):new Promise(a=>{setTimeout(a,o)});return e.onRetryAttempt&&await e.onRetryAttempt(t),await s,{shouldRetry:!0,config:t.config}}function Aw(t){let e=sm(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[r,o]of e.statusCodesToRetry){let s=t.response.status;if(s>=r&&s<=o){n=!0;break}}if(!n)return!1}return e.currentRetryAttempt=e.currentRetryAttempt||0,!(e.currentRetryAttempt>=e.retry)}function sm(t){if(t&&t.config&&t.config.retryConfig)return t.config.retryConfig}function Sw(t){let n=(t.currentRetryAttempt?0:t.retryDelay??100)+(Math.pow(t.retryDelayMultiplier,t.currentRetryAttempt)-1)/2*1e3,r=t.totalTimeout-(Date.now()-t.timeOfFirstRequest);return Math.min(n,r,t.maxRetryDelay)}});var Lc=X(Ui=>{"use strict";Object.defineProperty(Ui,"__esModule",{value:!0});Ui.GaxiosInterceptorManager=void 0;var Mc=class extends Set{};Ui.GaxiosInterceptorManager=Mc});var um=X((Ux,am)=>{var to=1e3,no=to*60,ro=no*60,_r=ro*24,vw=_r*7,Tw=_r*365.25;am.exports=function(t,e){e=e||{};var n=typeof t;if(n==="string"&&t.length>0)return Dw(t);if(n==="number"&&isFinite(t))return e.long?xw(t):Rw(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function Dw(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var n=parseFloat(e[1]),r=(e[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return n*Tw;case"weeks":case"week":case"w":return n*vw;case"days":case"day":case"d":return n*_r;case"hours":case"hour":case"hrs":case"hr":case"h":return n*ro;case"minutes":case"minute":case"mins":case"min":case"m":return n*no;case"seconds":case"second":case"secs":case"sec":case"s":return n*to;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function Rw(t){var e=Math.abs(t);return e>=_r?Math.round(t/_r)+"d":e>=ro?Math.round(t/ro)+"h":e>=no?Math.round(t/no)+"m":e>=to?Math.round(t/to)+"s":t+"ms"}function xw(t){var e=Math.abs(t);return e>=_r?$i(t,e,_r,"day"):e>=ro?$i(t,e,ro,"hour"):e>=no?$i(t,e,no,"minute"):e>=to?$i(t,e,to,"second"):t+" ms"}function $i(t,e,n,r){var o=e>=n*1.5;return Math.round(t/n)+" "+r+(o?"s":"")}});var jc=X(($x,cm)=>{function Ow(t){n.debug=n,n.default=n,n.coerce=l,n.disable=a,n.enable=o,n.enabled=u,n.humanize=um(),n.destroy=d,Object.keys(t).forEach(f=>{n[f]=t[f]}),n.names=[],n.skips=[],n.formatters={};function e(f){let p=0;for(let m=0;m<f.length;m++)p=(p<<5)-p+f.charCodeAt(m),p|=0;return n.colors[Math.abs(p)%n.colors.length]}n.selectColor=e;function n(f){let p,m=null,b,w;function y(...g){if(!y.enabled)return;let _=y,A=Number(new Date),C=A-(p||A);_.diff=C,_.prev=p,_.curr=A,p=A,g[0]=n.coerce(g[0]),typeof g[0]!="string"&&g.unshift("%O");let S=0;g[0]=g[0].replace(/%([a-zA-Z%])/g,(R,$)=>{if(R==="%%")return"%";S++;let V=n.formatters[$];if(typeof V=="function"){let P=g[S];R=V.call(_,P),g.splice(S,1),S--}return R}),n.formatArgs.call(_,g),(_.log||n.log).apply(_,g)}return y.namespace=f,y.useColors=n.useColors(),y.color=n.selectColor(f),y.extend=r,y.destroy=n.destroy,Object.defineProperty(y,"enabled",{enumerable:!0,configurable:!1,get:()=>m!==null?m:(b!==n.namespaces&&(b=n.namespaces,w=n.enabled(f)),w),set:g=>{m=g}}),typeof n.init=="function"&&n.init(y),y}function r(f,p){let m=n(this.namespace+(typeof p>"u"?":":p)+f);return m.log=this.log,m}function o(f){n.save(f),n.namespaces=f,n.names=[],n.skips=[];let p=(typeof f=="string"?f:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let m of p)m[0]==="-"?n.skips.push(m.slice(1)):n.names.push(m)}function s(f,p){let m=0,b=0,w=-1,y=0;for(;m<f.length;)if(b<p.length&&(p[b]===f[m]||p[b]==="*"))p[b]==="*"?(w=b,y=m,b++):(m++,b++);else if(w!==-1)b=w+1,y++,m=y;else return!1;for(;b<p.length&&p[b]==="*";)b++;return b===p.length}function a(){let f=[...n.names,...n.skips.map(p=>"-"+p)].join(",");return n.enable(""),f}function u(f){for(let p of n.skips)if(s(f,p))return!1;for(let p of n.names)if(s(f,p))return!0;return!1}function l(f){return f instanceof Error?f.stack||f.message:f}function d(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return n.enable(n.load()),n}cm.exports=Ow});var lm=X((ut,qi)=>{ut.formatArgs=Fw;ut.save=Iw;ut.load=Nw;ut.useColors=Pw;ut.storage=Bw();ut.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();ut.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function Pw(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let t;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(t=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(t[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function Fw(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+qi.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let n=0,r=0;t[0].replace(/%[a-zA-Z%]/g,o=>{o!=="%%"&&(n++,o==="%c"&&(r=n))}),t.splice(r,0,e)}ut.log=console.debug||console.log||(()=>{});function Iw(t){try{t?ut.storage.setItem("debug",t):ut.storage.removeItem("debug")}catch{}}function Nw(){let t;try{t=ut.storage.getItem("debug")||ut.storage.getItem("DEBUG")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}function Bw(){try{return localStorage}catch{}}qi.exports=jc()(ut);var{formatters:Mw}=qi.exports;Mw.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var fm=X((qx,dm)=>{"use strict";dm.exports=(t,e=process.argv)=>{let n=t.startsWith("-")?"":t.length===1?"-":"--",r=e.indexOf(n+t),o=e.indexOf("--");return r!==-1&&(o===-1||r<o)}});var mm=X((zx,pm)=>{"use strict";var Lw=require("os"),hm=require("tty"),Dt=fm(),{env:Ve}=process,Gn;Dt("no-color")||Dt("no-colors")||Dt("color=false")||Dt("color=never")?Gn=0:(Dt("color")||Dt("colors")||Dt("color=true")||Dt("color=always"))&&(Gn=1);"FORCE_COLOR"in Ve&&(Ve.FORCE_COLOR==="true"?Gn=1:Ve.FORCE_COLOR==="false"?Gn=0:Gn=Ve.FORCE_COLOR.length===0?1:Math.min(parseInt(Ve.FORCE_COLOR,10),3));function Uc(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function $c(t,e){if(Gn===0)return 0;if(Dt("color=16m")||Dt("color=full")||Dt("color=truecolor"))return 3;if(Dt("color=256"))return 2;if(t&&!e&&Gn===void 0)return 0;let n=Gn||0;if(Ve.TERM==="dumb")return n;if(process.platform==="win32"){let r=Lw.release().split(".");return Number(r[0])>=10&&Number(r[2])>=10586?Number(r[2])>=14931?3:2:1}if("CI"in Ve)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(r=>r in Ve)||Ve.CI_NAME==="codeship"?1:n;if("TEAMCITY_VERSION"in Ve)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Ve.TEAMCITY_VERSION)?1:0;if(Ve.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in Ve){let r=parseInt((Ve.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Ve.TERM_PROGRAM){case"iTerm.app":return r>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Ve.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Ve.TERM)||"COLORTERM"in Ve?1:n}function jw(t){let e=$c(t,t&&t.isTTY);return Uc(e)}pm.exports={supportsColor:jw,stdout:Uc($c(!0,hm.isatty(1))),stderr:Uc($c(!0,hm.isatty(2)))}});var ym=X((Ke,Hi)=>{var Uw=require("tty"),zi=require("util");Ke.init=Jw;Ke.log=Hw;Ke.formatArgs=qw;Ke.save=Ww;Ke.load=Gw;Ke.useColors=$w;Ke.destroy=zi.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Ke.colors=[6,2,3,4,5,1];try{let t=mm();t&&(t.stderr||t).level>=2&&(Ke.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}Ke.inspectOpts=Object.keys(process.env).filter(t=>/^debug_/i.test(t)).reduce((t,e)=>{let n=e.substring(6).toLowerCase().replace(/_([a-z])/g,(o,s)=>s.toUpperCase()),r=process.env[e];return/^(yes|on|true|enabled)$/i.test(r)?r=!0:/^(no|off|false|disabled)$/i.test(r)?r=!1:r==="null"?r=null:r=Number(r),t[n]=r,t},{});function $w(){return"colors"in Ke.inspectOpts?!!Ke.inspectOpts.colors:Uw.isatty(process.stderr.fd)}function qw(t){let{namespace:e,useColors:n}=this;if(n){let r=this.color,o="\x1B[3"+(r<8?r:"8;5;"+r),s=` ${o};1m${e} \x1B[0m`;t[0]=s+t[0].split(`
|
|
16
16
|
`).join(`
|
|
17
|
-
`+s),t.push(o+"m+"+
|
|
18
|
-
`)}function
|
|
19
|
-
`).map(e=>e.trim()).join(" ")};gm.O=function(t){return this.inspectOpts.colors=this.useColors,
|
|
20
|
-
`).some(r=>r.indexOf("(https.js:")!==-1||r.indexOf("node:https:")!==-1)}incrementSockets(e){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;this.sockets[e]||(this.sockets[e]=[]);let n=new
|
|
17
|
+
`+s),t.push(o+"m+"+Hi.exports.humanize(this.diff)+"\x1B[0m")}else t[0]=zw()+e+" "+t[0]}function zw(){return Ke.inspectOpts.hideDate?"":new Date().toISOString()+" "}function Hw(...t){return process.stderr.write(zi.formatWithOptions(Ke.inspectOpts,...t)+`
|
|
18
|
+
`)}function Ww(t){t?process.env.DEBUG=t:delete process.env.DEBUG}function Gw(){return process.env.DEBUG}function Jw(t){t.inspectOpts={};let e=Object.keys(Ke.inspectOpts);for(let n=0;n<e.length;n++)t.inspectOpts[e[n]]=Ke.inspectOpts[e[n]]}Hi.exports=jc()(Ke);var{formatters:gm}=Hi.exports;gm.o=function(t){return this.inspectOpts.colors=this.useColors,zi.inspect(t,this.inspectOpts).split(`
|
|
19
|
+
`).map(e=>e.trim()).join(" ")};gm.O=function(t){return this.inspectOpts.colors=this.useColors,zi.inspect(t,this.inspectOpts)}});var zc=X((Hx,qc)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?qc.exports=lm():qc.exports=ym()});var Cm=X(ct=>{"use strict";var Vw=ct&&ct.__createBinding||(Object.create?(function(t,e,n,r){r===void 0&&(r=n);var o=Object.getOwnPropertyDescriptor(e,n);(!o||("get"in o?!e.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,o)}):(function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]})),Kw=ct&&ct.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),_m=ct&&ct.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&Vw(e,t,n);return Kw(e,t),e};Object.defineProperty(ct,"__esModule",{value:!0});ct.req=ct.json=ct.toBuffer=void 0;var Yw=_m(require("http")),Qw=_m(require("https"));async function bm(t){let e=0,n=[];for await(let r of t)e+=r.length,n.push(r);return Buffer.concat(n,e)}ct.toBuffer=bm;async function Xw(t){let n=(await bm(t)).toString("utf8");try{return JSON.parse(n)}catch(r){let o=r;throw o.message+=` (input: ${n})`,o}}ct.json=Xw;function Zw(t,e={}){let r=((typeof t=="string"?t:t.href).startsWith("https:")?Qw:Yw).request(t,e),o=new Promise((s,a)=>{r.once("response",s).once("error",a).end()});return r.then=o.then.bind(o),r}ct.req=Zw});var Am=X(pt=>{"use strict";var Em=pt&&pt.__createBinding||(Object.create?(function(t,e,n,r){r===void 0&&(r=n);var o=Object.getOwnPropertyDescriptor(e,n);(!o||("get"in o?!e.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,o)}):(function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]})),eE=pt&&pt.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),km=pt&&pt.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&Em(e,t,n);return eE(e,t),e},tE=pt&&pt.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&Em(e,t,n)};Object.defineProperty(pt,"__esModule",{value:!0});pt.Agent=void 0;var nE=km(require("net")),wm=km(require("http")),rE=require("https");tE(Cm(),pt);var Zt=Symbol("AgentBaseInternalState"),Hc=class extends wm.Agent{constructor(e){super(e),this[Zt]={}}isSecureEndpoint(e){if(e){if(typeof e.secureEndpoint=="boolean")return e.secureEndpoint;if(typeof e.protocol=="string")return e.protocol==="https:"}let{stack:n}=new Error;return typeof n!="string"?!1:n.split(`
|
|
20
|
+
`).some(r=>r.indexOf("(https.js:")!==-1||r.indexOf("node:https:")!==-1)}incrementSockets(e){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;this.sockets[e]||(this.sockets[e]=[]);let n=new nE.Socket({writable:!1});return this.sockets[e].push(n),this.totalSocketCount++,n}decrementSockets(e,n){if(!this.sockets[e]||n===null)return;let r=this.sockets[e],o=r.indexOf(n);o!==-1&&(r.splice(o,1),this.totalSocketCount--,r.length===0&&delete this.sockets[e])}getName(e){return this.isSecureEndpoint(e)?rE.Agent.prototype.getName.call(this,e):super.getName(e)}createSocket(e,n,r){let o={...n,secureEndpoint:this.isSecureEndpoint(n)},s=this.getName(o),a=this.incrementSockets(s);Promise.resolve().then(()=>this.connect(e,o)).then(u=>{if(this.decrementSockets(s,a),u instanceof wm.Agent)try{return u.addRequest(e,o)}catch(l){return r(l)}this[Zt].currentSocket=u,super.createSocket(e,n,r)},u=>{this.decrementSockets(s,a),r(u)})}createConnection(){let e=this[Zt].currentSocket;if(this[Zt].currentSocket=void 0,!e)throw new Error("No socket was returned in the `connect()` function");return e}get defaultPort(){return this[Zt].defaultPort??(this.protocol==="https:"?443:80)}set defaultPort(e){this[Zt]&&(this[Zt].defaultPort=e)}get protocol(){return this[Zt].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol(e){this[Zt]&&(this[Zt].protocol=e)}};pt.Agent=Hc});var Sm=X(oo=>{"use strict";var oE=oo&&oo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(oo,"__esModule",{value:!0});oo.parseProxyResponse=void 0;var sE=oE(zc()),Wi=(0,sE.default)("https-proxy-agent:parse-proxy-response");function iE(t){return new Promise((e,n)=>{let r=0,o=[];function s(){let f=t.read();f?d(f):t.once("readable",s)}function a(){t.removeListener("end",u),t.removeListener("error",l),t.removeListener("readable",s)}function u(){a(),Wi("onend"),n(new Error("Proxy connection ended before receiving CONNECT response"))}function l(f){a(),Wi("onerror %o",f),n(f)}function d(f){o.push(f),r+=f.length;let p=Buffer.concat(o,r),m=p.indexOf(`\r
|
|
21
21
|
\r
|
|
22
|
-
`);if(m===-1){
|
|
23
|
-
`),w=b.shift();if(!w)return t.destroy(),n(new Error("No header received from proxy CONNECT response"));let y=w.split(" "),g=+y[1],_=y.slice(2).join(" "),A={};for(let C of b){if(!C)continue;let S=C.indexOf(":");if(S===-1)return t.destroy(),n(new Error(`Invalid header from proxy CONNECT response: "${C}"`));let
|
|
22
|
+
`);if(m===-1){Wi("have not received end of HTTP headers yet..."),s();return}let b=p.slice(0,m).toString("ascii").split(`\r
|
|
23
|
+
`),w=b.shift();if(!w)return t.destroy(),n(new Error("No header received from proxy CONNECT response"));let y=w.split(" "),g=+y[1],_=y.slice(2).join(" "),A={};for(let C of b){if(!C)continue;let S=C.indexOf(":");if(S===-1)return t.destroy(),n(new Error(`Invalid header from proxy CONNECT response: "${C}"`));let T=C.slice(0,S).toLowerCase(),R=C.slice(S+1).trimStart(),$=A[T];typeof $=="string"?A[T]=[$,R]:Array.isArray($)?$.push(R):A[T]=R}Wi("got proxy server response: %o %o",w,A),a(),e({connect:{statusCode:g,statusText:_,headers:A},buffered:p})}t.on("error",l),t.on("end",u),s()})}oo.parseProxyResponse=iE});var Om=X(Rt=>{"use strict";var aE=Rt&&Rt.__createBinding||(Object.create?(function(t,e,n,r){r===void 0&&(r=n);var o=Object.getOwnPropertyDescriptor(e,n);(!o||("get"in o?!e.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,o)}):(function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]})),uE=Rt&&Rt.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),Rm=Rt&&Rt.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!=="default"&&Object.prototype.hasOwnProperty.call(t,n)&&aE(e,t,n);return uE(e,t),e},xm=Rt&&Rt.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Rt,"__esModule",{value:!0});Rt.HttpsProxyAgent=void 0;var Gi=Rm(require("net")),vm=Rm(require("tls")),cE=xm(require("assert")),lE=xm(zc()),dE=Am(),fE=require("url"),hE=Sm(),Jo=(0,lE.default)("https-proxy-agent"),Tm=t=>t.servername===void 0&&t.host&&!Gi.isIP(t.host)?{...t,servername:t.host}:t,Ji=class extends dE.Agent{constructor(e,n){super(n),this.options={path:void 0},this.proxy=typeof e=="string"?new fE.URL(e):e,this.proxyHeaders=n?.headers??{},Jo("Creating new HttpsProxyAgent instance: %o",this.proxy.href);let r=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),o=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={ALPNProtocols:["http/1.1"],...n?Dm(n,"headers"):null,host:r,port:o}}async connect(e,n){let{proxy:r}=this;if(!n.host)throw new TypeError('No "host" provided');let o;r.protocol==="https:"?(Jo("Creating `tls.Socket`: %o",this.connectOpts),o=vm.connect(Tm(this.connectOpts))):(Jo("Creating `net.Socket`: %o",this.connectOpts),o=Gi.connect(this.connectOpts));let s=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders},a=Gi.isIPv6(n.host)?`[${n.host}]`:n.host,u=`CONNECT ${a}:${n.port} HTTP/1.1\r
|
|
24
24
|
`;if(r.username||r.password){let m=`${decodeURIComponent(r.username)}:${decodeURIComponent(r.password)}`;s["Proxy-Authorization"]=`Basic ${Buffer.from(m).toString("base64")}`}s.Host=`${a}:${n.port}`,s["Proxy-Connection"]||(s["Proxy-Connection"]=this.keepAlive?"Keep-Alive":"close");for(let m of Object.keys(s))u+=`${m}: ${s[m]}\r
|
|
25
|
-
`;let l=(0,
|
|
26
|
-
`);let{connect:d,buffered:f}=await l;if(e.emit("proxyConnect",d),this.emit("proxyConnect",d,e),d.statusCode===200)return e.once("socket",hE),n.secureEndpoint?(Jo("Upgrading socket connection to TLS"),Tm.connect({...Dm(vm(n),"host","path","port"),socket:o})):o;o.destroy();let p=new Wi.Socket({writable:!1});return p.readable=!0,e.once("socket",m=>{Jo("Replaying proxy buffer for failed request"),(0,uE.default)(m.listenerCount("data")>0),m.push(f),m.push(null)}),p}};Gi.protocols=["http","https"];Rt.HttpsProxyAgent=Gi;function hE(t){t.resume()}function Dm(t,...e){let n={},r;for(r in t)e.includes(r)||(n[r]=t[r]);return n}});function pE(t){if(!/^data:/i.test(t))throw new TypeError('`uri` does not appear to be a Data URI (must begin with "data:")');t=t.replace(/\r?\n/g,"");let e=t.indexOf(",");if(e===-1||e<=4)throw new TypeError("malformed data: URI");let n=t.substring(5,e).split(";"),r="",o=!1,s=n[0]||"text/plain",a=s;for(let f=1;f<n.length;f++)n[f]==="base64"?o=!0:n[f]&&(a+=`;${n[f]}`,n[f].indexOf("charset=")===0&&(r=n[f].substring(8)));!n[0]&&!r.length&&(a+=";charset=US-ASCII",r="US-ASCII");let u=o?"base64":"ascii",l=unescape(t.substring(e+1)),d=Buffer.from(l,u);return d.type=s,d.typeFull=a,d.charset=r,d}var Pm,Fm=Le(()=>{Pm=pE});var Nm=X((Ji,Im)=>{(function(t,e){typeof Ji=="object"&&typeof Im<"u"?e(Ji):typeof define=="function"&&define.amd?define(["exports"],e):(t=typeof globalThis<"u"?globalThis:t||self,e(t.WebStreamsPolyfill={}))})(Ji,(function(t){"use strict";function e(){}function n(i){return typeof i=="object"&&i!==null||typeof i=="function"}let r=e;function o(i,c){try{Object.defineProperty(i,"name",{value:c,configurable:!0})}catch{}}let s=Promise,a=Promise.prototype.then,u=Promise.reject.bind(s);function l(i){return new s(i)}function d(i){return l(c=>c(i))}function f(i){return u(i)}function p(i,c,h){return a.call(i,c,h)}function m(i,c,h){p(p(i,c,h),void 0,r)}function b(i,c){m(i,c)}function w(i,c){m(i,void 0,c)}function y(i,c,h){return p(i,c,h)}function g(i){p(i,void 0,r)}let _=i=>{if(typeof queueMicrotask=="function")_=queueMicrotask;else{let c=d(void 0);_=h=>p(c,h)}return _(i)};function A(i,c,h){if(typeof i!="function")throw new TypeError("Argument is not a function");return Function.prototype.apply.call(i,c,h)}function C(i,c,h){try{return d(A(i,c,h))}catch(k){return f(k)}}let S=16384;class v{constructor(){this._cursor=0,this._size=0,this._front={_elements:[],_next:void 0},this._back=this._front,this._cursor=0,this._size=0}get length(){return this._size}push(c){let h=this._back,k=h;h._elements.length===S-1&&(k={_elements:[],_next:void 0}),h._elements.push(c),k!==h&&(this._back=k,h._next=k),++this._size}shift(){let c=this._front,h=c,k=this._cursor,x=k+1,j=c._elements,q=j[k];return x===S&&(h=c._next,x=0),--this._size,this._cursor=x,c!==h&&(this._front=h),j[k]=void 0,q}forEach(c){let h=this._cursor,k=this._front,x=k._elements;for(;(h!==x.length||k._next!==void 0)&&!(h===x.length&&(k=k._next,x=k._elements,h=0,x.length===0));)c(x[h]),++h}peek(){let c=this._front,h=this._cursor;return c._elements[h]}}let R=Symbol("[[AbortSteps]]"),$=Symbol("[[ErrorSteps]]"),V=Symbol("[[CancelSteps]]"),P=Symbol("[[PullSteps]]"),Y=Symbol("[[ReleaseSteps]]");function z(i,c){i._ownerReadableStream=c,c._reader=i,c._state==="readable"?ie(i):c._state==="closed"?pe(i):oe(i,c._storedError)}function K(i,c){let h=i._ownerReadableStream;return Lt(h,c)}function Q(i){let c=i._ownerReadableStream;c._state==="readable"?G(i,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")):Z(i,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")),c._readableStreamController[Y](),c._reader=void 0,i._ownerReadableStream=void 0}function ee(i){return new TypeError("Cannot "+i+" a stream using a released reader")}function ie(i){i._closedPromise=l((c,h)=>{i._closedPromise_resolve=c,i._closedPromise_reject=h})}function oe(i,c){ie(i),G(i,c)}function pe(i){ie(i),se(i)}function G(i,c){i._closedPromise_reject!==void 0&&(g(i._closedPromise),i._closedPromise_reject(c),i._closedPromise_resolve=void 0,i._closedPromise_reject=void 0)}function Z(i,c){oe(i,c)}function se(i){i._closedPromise_resolve!==void 0&&(i._closedPromise_resolve(void 0),i._closedPromise_resolve=void 0,i._closedPromise_reject=void 0)}let Ue=Number.isFinite||function(i){return typeof i=="number"&&isFinite(i)},ke=Math.trunc||function(i){return i<0?Math.ceil(i):Math.floor(i)};function J(i){return typeof i=="object"||typeof i=="function"}function ue(i,c){if(i!==void 0&&!J(i))throw new TypeError(`${c} is not an object.`)}function te(i,c){if(typeof i!="function")throw new TypeError(`${c} is not a function.`)}function Te(i){return typeof i=="object"&&i!==null||typeof i=="function"}function Oe(i,c){if(!Te(i))throw new TypeError(`${c} is not an object.`)}function je(i,c,h){if(i===void 0)throw new TypeError(`Parameter ${c} is required in '${h}'.`)}function E(i,c,h){if(i===void 0)throw new TypeError(`${c} is required in '${h}'.`)}function T(i){return Number(i)}function D(i){return i===0?0:i}function M(i){return D(ke(i))}function F(i,c){let k=Number.MAX_SAFE_INTEGER,x=Number(i);if(x=D(x),!Ue(x))throw new TypeError(`${c} is not a finite number`);if(x=M(x),x<0||x>k)throw new TypeError(`${c} is outside the accepted range of 0 to ${k}, inclusive`);return!Ue(x)||x===0?0:x}function N(i,c){if(!Un(i))throw new TypeError(`${c} is not a ReadableStream.`)}function U(i){return new H(i)}function O(i,c){i._reader._readRequests.push(c)}function I(i,c,h){let x=i._reader._readRequests.shift();h?x._closeSteps():x._chunkSteps(c)}function L(i){return i._reader._readRequests.length}function B(i){let c=i._reader;return!(c===void 0||!re(c))}class H{constructor(c){if(je(c,1,"ReadableStreamDefaultReader"),N(c,"First parameter"),$n(c))throw new TypeError("This stream has already been locked for exclusive reading by another reader");z(this,c),this._readRequests=new v}get closed(){return re(this)?this._closedPromise:f(Me("closed"))}cancel(c=void 0){return re(this)?this._ownerReadableStream===void 0?f(ee("cancel")):K(this,c):f(Me("cancel"))}read(){if(!re(this))return f(Me("read"));if(this._ownerReadableStream===void 0)return f(ee("read from"));let c,h,k=l((j,q)=>{c=j,h=q});return ae(this,{_chunkSteps:j=>c({value:j,done:!1}),_closeSteps:()=>c({value:void 0,done:!0}),_errorSteps:j=>h(j)}),k}releaseLock(){if(!re(this))throw Me("releaseLock");this._ownerReadableStream!==void 0&&Ae(this)}}Object.defineProperties(H.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),o(H.prototype.cancel,"cancel"),o(H.prototype.read,"read"),o(H.prototype.releaseLock,"releaseLock"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(H.prototype,Symbol.toStringTag,{value:"ReadableStreamDefaultReader",configurable:!0});function re(i){return!n(i)||!Object.prototype.hasOwnProperty.call(i,"_readRequests")?!1:i instanceof H}function ae(i,c){let h=i._ownerReadableStream;h._disturbed=!0,h._state==="closed"?c._closeSteps():h._state==="errored"?c._errorSteps(h._storedError):h._readableStreamController[P](c)}function Ae(i){Q(i);let c=new TypeError("Reader was released");Ie(i,c)}function Ie(i,c){let h=i._readRequests;i._readRequests=new v,h.forEach(k=>{k._errorSteps(c)})}function Me(i){return new TypeError(`ReadableStreamDefaultReader.prototype.${i} can only be used on a ReadableStreamDefaultReader`)}let Ee=Object.getPrototypeOf(Object.getPrototypeOf(async function*(){}).prototype);class Se{constructor(c,h){this._ongoingPromise=void 0,this._isFinished=!1,this._reader=c,this._preventCancel=h}next(){let c=()=>this._nextSteps();return this._ongoingPromise=this._ongoingPromise?y(this._ongoingPromise,c,c):c(),this._ongoingPromise}return(c){let h=()=>this._returnSteps(c);return this._ongoingPromise?y(this._ongoingPromise,h,h):h()}_nextSteps(){if(this._isFinished)return Promise.resolve({value:void 0,done:!0});let c=this._reader,h,k,x=l((q,ne)=>{h=q,k=ne});return ae(c,{_chunkSteps:q=>{this._ongoingPromise=void 0,_(()=>h({value:q,done:!1}))},_closeSteps:()=>{this._ongoingPromise=void 0,this._isFinished=!0,Q(c),h({value:void 0,done:!0})},_errorSteps:q=>{this._ongoingPromise=void 0,this._isFinished=!0,Q(c),k(q)}}),x}_returnSteps(c){if(this._isFinished)return Promise.resolve({value:c,done:!0});this._isFinished=!0;let h=this._reader;if(!this._preventCancel){let k=K(h,c);return Q(h),y(k,()=>({value:c,done:!0}))}return Q(h),d({value:c,done:!0})}}let qe={next(){return Fr(this)?this._asyncIteratorImpl.next():f(Ir("next"))},return(i){return Fr(this)?this._asyncIteratorImpl.return(i):f(Ir("return"))}};Object.setPrototypeOf(qe,Ee);function Pr(i,c){let h=U(i),k=new Se(h,c),x=Object.create(qe);return x._asyncIteratorImpl=k,x}function Fr(i){if(!n(i)||!Object.prototype.hasOwnProperty.call(i,"_asyncIteratorImpl"))return!1;try{return i._asyncIteratorImpl instanceof Se}catch{return!1}}function Ir(i){return new TypeError(`ReadableStreamAsyncIterator.${i} can only be used on a ReadableSteamAsyncIterator`)}let ft=Number.isNaN||function(i){return i!==i};var pn,Ze,ze;function ve(i){return i.slice()}function Mf(i,c,h,k,x){new Uint8Array(i).set(new Uint8Array(h,k,x),c)}let mn=i=>(typeof i.transfer=="function"?mn=c=>c.transfer():typeof structuredClone=="function"?mn=c=>structuredClone(c,{transfer:[c]}):mn=c=>c,mn(i)),Bn=i=>(typeof i.detached=="boolean"?Bn=c=>c.detached:Bn=c=>c.byteLength===0,Bn(i));function Lf(i,c,h){if(i.slice)return i.slice(c,h);let k=h-c,x=new ArrayBuffer(k);return Mf(x,0,i,c,k),x}function Ls(i,c){let h=i[c];if(h!=null){if(typeof h!="function")throw new TypeError(`${String(c)} is not a function`);return h}}function j_(i){let c={[Symbol.iterator]:()=>i.iterator},h=(async function*(){return yield*c})(),k=h.next;return{iterator:h,nextMethod:k,done:!1}}let Ru=(ze=(pn=Symbol.asyncIterator)!==null&&pn!==void 0?pn:(Ze=Symbol.for)===null||Ze===void 0?void 0:Ze.call(Symbol,"Symbol.asyncIterator"))!==null&&ze!==void 0?ze:"@@asyncIterator";function jf(i,c="sync",h){if(h===void 0)if(c==="async"){if(h=Ls(i,Ru),h===void 0){let j=Ls(i,Symbol.iterator),q=jf(i,"sync",j);return j_(q)}}else h=Ls(i,Symbol.iterator);if(h===void 0)throw new TypeError("The object is not iterable");let k=A(h,i,[]);if(!n(k))throw new TypeError("The iterator method must return an object");let x=k.next;return{iterator:k,nextMethod:x,done:!1}}function U_(i){let c=A(i.nextMethod,i.iterator,[]);if(!n(c))throw new TypeError("The iterator.next() method must return an object");return c}function $_(i){return!!i.done}function q_(i){return i.value}function z_(i){return!(typeof i!="number"||ft(i)||i<0)}function Uf(i){let c=Lf(i.buffer,i.byteOffset,i.byteOffset+i.byteLength);return new Uint8Array(c)}function xu(i){let c=i._queue.shift();return i._queueTotalSize-=c.size,i._queueTotalSize<0&&(i._queueTotalSize=0),c.value}function Ou(i,c,h){if(!z_(h)||h===1/0)throw new RangeError("Size must be a finite, non-NaN, non-negative number.");i._queue.push({value:c,size:h}),i._queueTotalSize+=h}function H_(i){return i._queue.peek().value}function Mn(i){i._queue=new v,i._queueTotalSize=0}function $f(i){return i===DataView}function W_(i){return $f(i.constructor)}function G_(i){return $f(i)?1:i.BYTES_PER_ELEMENT}class rr{constructor(){throw new TypeError("Illegal constructor")}get view(){if(!Pu(this))throw Mu("view");return this._view}respond(c){if(!Pu(this))throw Mu("respond");if(je(c,1,"respond"),c=F(c,"First parameter"),this._associatedReadableByteStreamController===void 0)throw new TypeError("This BYOB request has been invalidated");if(Bn(this._view.buffer))throw new TypeError("The BYOB request's buffer has been detached and so cannot be used as a response");qs(this._associatedReadableByteStreamController,c)}respondWithNewView(c){if(!Pu(this))throw Mu("respondWithNewView");if(je(c,1,"respondWithNewView"),!ArrayBuffer.isView(c))throw new TypeError("You can only respond with array buffer views");if(this._associatedReadableByteStreamController===void 0)throw new TypeError("This BYOB request has been invalidated");if(Bn(c.buffer))throw new TypeError("The given view's buffer has been detached and so cannot be used as a response");zs(this._associatedReadableByteStreamController,c)}}Object.defineProperties(rr.prototype,{respond:{enumerable:!0},respondWithNewView:{enumerable:!0},view:{enumerable:!0}}),o(rr.prototype.respond,"respond"),o(rr.prototype.respondWithNewView,"respondWithNewView"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(rr.prototype,Symbol.toStringTag,{value:"ReadableStreamBYOBRequest",configurable:!0});class gn{constructor(){throw new TypeError("Illegal constructor")}get byobRequest(){if(!or(this))throw Fo("byobRequest");return Bu(this)}get desiredSize(){if(!or(this))throw Fo("desiredSize");return Qf(this)}close(){if(!or(this))throw Fo("close");if(this._closeRequested)throw new TypeError("The stream has already been closed; do not close it again!");let c=this._controlledReadableByteStream._state;if(c!=="readable")throw new TypeError(`The stream (in ${c} state) is not in the readable state and cannot be closed`);Po(this)}enqueue(c){if(!or(this))throw Fo("enqueue");if(je(c,1,"enqueue"),!ArrayBuffer.isView(c))throw new TypeError("chunk must be an array buffer view");if(c.byteLength===0)throw new TypeError("chunk must have non-zero byteLength");if(c.buffer.byteLength===0)throw new TypeError("chunk's buffer must have non-zero byteLength");if(this._closeRequested)throw new TypeError("stream is closed or draining");let h=this._controlledReadableByteStream._state;if(h!=="readable")throw new TypeError(`The stream (in ${h} state) is not in the readable state and cannot be enqueued to`);$s(this,c)}error(c=void 0){if(!or(this))throw Fo("error");St(this,c)}[V](c){qf(this),Mn(this);let h=this._cancelAlgorithm(c);return Us(this),h}[P](c){let h=this._controlledReadableByteStream;if(this._queueTotalSize>0){Yf(this,c);return}let k=this._autoAllocateChunkSize;if(k!==void 0){let x;try{x=new ArrayBuffer(k)}catch(q){c._errorSteps(q);return}let j={buffer:x,bufferByteLength:k,byteOffset:0,byteLength:k,bytesFilled:0,minimumFill:1,elementSize:1,viewConstructor:Uint8Array,readerType:"default"};this._pendingPullIntos.push(j)}O(h,c),sr(this)}[Y](){if(this._pendingPullIntos.length>0){let c=this._pendingPullIntos.peek();c.readerType="none",this._pendingPullIntos=new v,this._pendingPullIntos.push(c)}}}Object.defineProperties(gn.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},byobRequest:{enumerable:!0},desiredSize:{enumerable:!0}}),o(gn.prototype.close,"close"),o(gn.prototype.enqueue,"enqueue"),o(gn.prototype.error,"error"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(gn.prototype,Symbol.toStringTag,{value:"ReadableByteStreamController",configurable:!0});function or(i){return!n(i)||!Object.prototype.hasOwnProperty.call(i,"_controlledReadableByteStream")?!1:i instanceof gn}function Pu(i){return!n(i)||!Object.prototype.hasOwnProperty.call(i,"_associatedReadableByteStreamController")?!1:i instanceof rr}function sr(i){if(!Q_(i))return;if(i._pulling){i._pullAgain=!0;return}i._pulling=!0;let h=i._pullAlgorithm();m(h,()=>(i._pulling=!1,i._pullAgain&&(i._pullAgain=!1,sr(i)),null),k=>(St(i,k),null))}function qf(i){Iu(i),i._pendingPullIntos=new v}function Fu(i,c){let h=!1;i._state==="closed"&&(h=!0);let k=zf(c);c.readerType==="default"?I(i,k,h):rb(i,k,h)}function zf(i){let c=i.bytesFilled,h=i.elementSize;return new i.viewConstructor(i.buffer,i.byteOffset,c/h)}function js(i,c,h,k){i._queue.push({buffer:c,byteOffset:h,byteLength:k}),i._queueTotalSize+=k}function Hf(i,c,h,k){let x;try{x=Lf(c,h,h+k)}catch(j){throw St(i,j),j}js(i,x,0,k)}function Wf(i,c){c.bytesFilled>0&&Hf(i,c.buffer,c.byteOffset,c.bytesFilled),Nr(i)}function Gf(i,c){let h=Math.min(i._queueTotalSize,c.byteLength-c.bytesFilled),k=c.bytesFilled+h,x=h,j=!1,q=k%c.elementSize,ne=k-q;ne>=c.minimumFill&&(x=ne-c.bytesFilled,j=!0);let he=i._queue;for(;x>0;){let le=he.peek(),me=Math.min(x,le.byteLength),be=c.byteOffset+c.bytesFilled;Mf(c.buffer,be,le.buffer,le.byteOffset,me),le.byteLength===me?he.shift():(le.byteOffset+=me,le.byteLength-=me),i._queueTotalSize-=me,Jf(i,me,c),x-=me}return j}function Jf(i,c,h){h.bytesFilled+=c}function Vf(i){i._queueTotalSize===0&&i._closeRequested?(Us(i),jo(i._controlledReadableByteStream)):sr(i)}function Iu(i){i._byobRequest!==null&&(i._byobRequest._associatedReadableByteStreamController=void 0,i._byobRequest._view=null,i._byobRequest=null)}function Nu(i){for(;i._pendingPullIntos.length>0;){if(i._queueTotalSize===0)return;let c=i._pendingPullIntos.peek();Gf(i,c)&&(Nr(i),Fu(i._controlledReadableByteStream,c))}}function J_(i){let c=i._controlledReadableByteStream._reader;for(;c._readRequests.length>0;){if(i._queueTotalSize===0)return;let h=c._readRequests.shift();Yf(i,h)}}function V_(i,c,h,k){let x=i._controlledReadableByteStream,j=c.constructor,q=G_(j),{byteOffset:ne,byteLength:he}=c,le=h*q,me;try{me=mn(c.buffer)}catch(Re){k._errorSteps(Re);return}let be={buffer:me,bufferByteLength:me.byteLength,byteOffset:ne,byteLength:he,bytesFilled:0,minimumFill:le,elementSize:q,viewConstructor:j,readerType:"byob"};if(i._pendingPullIntos.length>0){i._pendingPullIntos.push(be),eh(x,k);return}if(x._state==="closed"){let Re=new j(be.buffer,be.byteOffset,0);k._closeSteps(Re);return}if(i._queueTotalSize>0){if(Gf(i,be)){let Re=zf(be);Vf(i),k._chunkSteps(Re);return}if(i._closeRequested){let Re=new TypeError("Insufficient bytes to fill elements in the given buffer");St(i,Re),k._errorSteps(Re);return}}i._pendingPullIntos.push(be),eh(x,k),sr(i)}function K_(i,c){c.readerType==="none"&&Nr(i);let h=i._controlledReadableByteStream;if(Lu(h))for(;th(h)>0;){let k=Nr(i);Fu(h,k)}}function Y_(i,c,h){if(Jf(i,c,h),h.readerType==="none"){Wf(i,h),Nu(i);return}if(h.bytesFilled<h.minimumFill)return;Nr(i);let k=h.bytesFilled%h.elementSize;if(k>0){let x=h.byteOffset+h.bytesFilled;Hf(i,h.buffer,x-k,k)}h.bytesFilled-=k,Fu(i._controlledReadableByteStream,h),Nu(i)}function Kf(i,c){let h=i._pendingPullIntos.peek();Iu(i),i._controlledReadableByteStream._state==="closed"?K_(i,h):Y_(i,c,h),sr(i)}function Nr(i){return i._pendingPullIntos.shift()}function Q_(i){let c=i._controlledReadableByteStream;return c._state!=="readable"||i._closeRequested||!i._started?!1:!!(B(c)&&L(c)>0||Lu(c)&&th(c)>0||Qf(i)>0)}function Us(i){i._pullAlgorithm=void 0,i._cancelAlgorithm=void 0}function Po(i){let c=i._controlledReadableByteStream;if(!(i._closeRequested||c._state!=="readable")){if(i._queueTotalSize>0){i._closeRequested=!0;return}if(i._pendingPullIntos.length>0){let h=i._pendingPullIntos.peek();if(h.bytesFilled%h.elementSize!==0){let k=new TypeError("Insufficient bytes to fill elements in the given buffer");throw St(i,k),k}}Us(i),jo(c)}}function $s(i,c){let h=i._controlledReadableByteStream;if(i._closeRequested||h._state!=="readable")return;let{buffer:k,byteOffset:x,byteLength:j}=c;if(Bn(k))throw new TypeError("chunk's buffer is detached and so cannot be enqueued");let q=mn(k);if(i._pendingPullIntos.length>0){let ne=i._pendingPullIntos.peek();if(Bn(ne.buffer))throw new TypeError("The BYOB request's buffer has been detached and so cannot be filled with an enqueued chunk");Iu(i),ne.buffer=mn(ne.buffer),ne.readerType==="none"&&Wf(i,ne)}if(B(h))if(J_(i),L(h)===0)js(i,q,x,j);else{i._pendingPullIntos.length>0&&Nr(i);let ne=new Uint8Array(q,x,j);I(h,ne,!1)}else Lu(h)?(js(i,q,x,j),Nu(i)):js(i,q,x,j);sr(i)}function St(i,c){let h=i._controlledReadableByteStream;h._state==="readable"&&(qf(i),Mn(i),Us(i),Sh(h,c))}function Yf(i,c){let h=i._queue.shift();i._queueTotalSize-=h.byteLength,Vf(i);let k=new Uint8Array(h.buffer,h.byteOffset,h.byteLength);c._chunkSteps(k)}function Bu(i){if(i._byobRequest===null&&i._pendingPullIntos.length>0){let c=i._pendingPullIntos.peek(),h=new Uint8Array(c.buffer,c.byteOffset+c.bytesFilled,c.byteLength-c.bytesFilled),k=Object.create(rr.prototype);Z_(k,i,h),i._byobRequest=k}return i._byobRequest}function Qf(i){let c=i._controlledReadableByteStream._state;return c==="errored"?null:c==="closed"?0:i._strategyHWM-i._queueTotalSize}function qs(i,c){let h=i._pendingPullIntos.peek();if(i._controlledReadableByteStream._state==="closed"){if(c!==0)throw new TypeError("bytesWritten must be 0 when calling respond() on a closed stream")}else{if(c===0)throw new TypeError("bytesWritten must be greater than 0 when calling respond() on a readable stream");if(h.bytesFilled+c>h.byteLength)throw new RangeError("bytesWritten out of range")}h.buffer=mn(h.buffer),Kf(i,c)}function zs(i,c){let h=i._pendingPullIntos.peek();if(i._controlledReadableByteStream._state==="closed"){if(c.byteLength!==0)throw new TypeError("The view's length must be 0 when calling respondWithNewView() on a closed stream")}else if(c.byteLength===0)throw new TypeError("The view's length must be greater than 0 when calling respondWithNewView() on a readable stream");if(h.byteOffset+h.bytesFilled!==c.byteOffset)throw new RangeError("The region specified by view does not match byobRequest");if(h.bufferByteLength!==c.buffer.byteLength)throw new RangeError("The buffer of view has different capacity than byobRequest");if(h.bytesFilled+c.byteLength>h.byteLength)throw new RangeError("The region specified by view is larger than byobRequest");let x=c.byteLength;h.buffer=mn(c.buffer),Kf(i,x)}function Xf(i,c,h,k,x,j,q){c._controlledReadableByteStream=i,c._pullAgain=!1,c._pulling=!1,c._byobRequest=null,c._queue=c._queueTotalSize=void 0,Mn(c),c._closeRequested=!1,c._started=!1,c._strategyHWM=j,c._pullAlgorithm=k,c._cancelAlgorithm=x,c._autoAllocateChunkSize=q,c._pendingPullIntos=new v,i._readableStreamController=c;let ne=h();m(d(ne),()=>(c._started=!0,sr(c),null),he=>(St(c,he),null))}function X_(i,c,h){let k=Object.create(gn.prototype),x,j,q;c.start!==void 0?x=()=>c.start(k):x=()=>{},c.pull!==void 0?j=()=>c.pull(k):j=()=>d(void 0),c.cancel!==void 0?q=he=>c.cancel(he):q=()=>d(void 0);let ne=c.autoAllocateChunkSize;if(ne===0)throw new TypeError("autoAllocateChunkSize must be greater than 0");Xf(i,k,x,j,q,h,ne)}function Z_(i,c,h){i._associatedReadableByteStreamController=c,i._view=h}function Mu(i){return new TypeError(`ReadableStreamBYOBRequest.prototype.${i} can only be used on a ReadableStreamBYOBRequest`)}function Fo(i){return new TypeError(`ReadableByteStreamController.prototype.${i} can only be used on a ReadableByteStreamController`)}function eb(i,c){ue(i,c);let h=i?.mode;return{mode:h===void 0?void 0:tb(h,`${c} has member 'mode' that`)}}function tb(i,c){if(i=`${i}`,i!=="byob")throw new TypeError(`${c} '${i}' is not a valid enumeration value for ReadableStreamReaderMode`);return i}function nb(i,c){var h;ue(i,c);let k=(h=i?.min)!==null&&h!==void 0?h:1;return{min:F(k,`${c} has member 'min' that`)}}function Zf(i){return new Ln(i)}function eh(i,c){i._reader._readIntoRequests.push(c)}function rb(i,c,h){let x=i._reader._readIntoRequests.shift();h?x._closeSteps(c):x._chunkSteps(c)}function th(i){return i._reader._readIntoRequests.length}function Lu(i){let c=i._reader;return!(c===void 0||!ir(c))}class Ln{constructor(c){if(je(c,1,"ReadableStreamBYOBReader"),N(c,"First parameter"),$n(c))throw new TypeError("This stream has already been locked for exclusive reading by another reader");if(!or(c._readableStreamController))throw new TypeError("Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source");z(this,c),this._readIntoRequests=new v}get closed(){return ir(this)?this._closedPromise:f(Hs("closed"))}cancel(c=void 0){return ir(this)?this._ownerReadableStream===void 0?f(ee("cancel")):K(this,c):f(Hs("cancel"))}read(c,h={}){if(!ir(this))return f(Hs("read"));if(!ArrayBuffer.isView(c))return f(new TypeError("view must be an array buffer view"));if(c.byteLength===0)return f(new TypeError("view must have non-zero byteLength"));if(c.buffer.byteLength===0)return f(new TypeError("view's buffer must have non-zero byteLength"));if(Bn(c.buffer))return f(new TypeError("view's buffer has been detached"));let k;try{k=nb(h,"options")}catch(le){return f(le)}let x=k.min;if(x===0)return f(new TypeError("options.min must be greater than 0"));if(W_(c)){if(x>c.byteLength)return f(new RangeError("options.min must be less than or equal to view's byteLength"))}else if(x>c.length)return f(new RangeError("options.min must be less than or equal to view's length"));if(this._ownerReadableStream===void 0)return f(ee("read from"));let j,q,ne=l((le,me)=>{j=le,q=me});return nh(this,c,x,{_chunkSteps:le=>j({value:le,done:!1}),_closeSteps:le=>j({value:le,done:!0}),_errorSteps:le=>q(le)}),ne}releaseLock(){if(!ir(this))throw Hs("releaseLock");this._ownerReadableStream!==void 0&&ob(this)}}Object.defineProperties(Ln.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),o(Ln.prototype.cancel,"cancel"),o(Ln.prototype.read,"read"),o(Ln.prototype.releaseLock,"releaseLock"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Ln.prototype,Symbol.toStringTag,{value:"ReadableStreamBYOBReader",configurable:!0});function ir(i){return!n(i)||!Object.prototype.hasOwnProperty.call(i,"_readIntoRequests")?!1:i instanceof Ln}function nh(i,c,h,k){let x=i._ownerReadableStream;x._disturbed=!0,x._state==="errored"?k._errorSteps(x._storedError):V_(x._readableStreamController,c,h,k)}function ob(i){Q(i);let c=new TypeError("Reader was released");rh(i,c)}function rh(i,c){let h=i._readIntoRequests;i._readIntoRequests=new v,h.forEach(k=>{k._errorSteps(c)})}function Hs(i){return new TypeError(`ReadableStreamBYOBReader.prototype.${i} can only be used on a ReadableStreamBYOBReader`)}function Io(i,c){let{highWaterMark:h}=i;if(h===void 0)return c;if(ft(h)||h<0)throw new RangeError("Invalid highWaterMark");return h}function Ws(i){let{size:c}=i;return c||(()=>1)}function Gs(i,c){ue(i,c);let h=i?.highWaterMark,k=i?.size;return{highWaterMark:h===void 0?void 0:T(h),size:k===void 0?void 0:sb(k,`${c} has member 'size' that`)}}function sb(i,c){return te(i,c),h=>T(i(h))}function ib(i,c){ue(i,c);let h=i?.abort,k=i?.close,x=i?.start,j=i?.type,q=i?.write;return{abort:h===void 0?void 0:ab(h,i,`${c} has member 'abort' that`),close:k===void 0?void 0:ub(k,i,`${c} has member 'close' that`),start:x===void 0?void 0:cb(x,i,`${c} has member 'start' that`),write:q===void 0?void 0:lb(q,i,`${c} has member 'write' that`),type:j}}function ab(i,c,h){return te(i,h),k=>C(i,c,[k])}function ub(i,c,h){return te(i,h),()=>C(i,c,[])}function cb(i,c,h){return te(i,h),k=>A(i,c,[k])}function lb(i,c,h){return te(i,h),(k,x)=>C(i,c,[k,x])}function oh(i,c){if(!Br(i))throw new TypeError(`${c} is not a WritableStream.`)}function db(i){if(typeof i!="object"||i===null)return!1;try{return typeof i.aborted=="boolean"}catch{return!1}}let fb=typeof AbortController=="function";function hb(){if(fb)return new AbortController}class jn{constructor(c={},h={}){c===void 0?c=null:Oe(c,"First parameter");let k=Gs(h,"Second parameter"),x=ib(c,"First parameter");if(ih(this),x.type!==void 0)throw new RangeError("Invalid type is specified");let q=Ws(k),ne=Io(k,1);vb(this,x,ne,q)}get locked(){if(!Br(this))throw Qs("locked");return Mr(this)}abort(c=void 0){return Br(this)?Mr(this)?f(new TypeError("Cannot abort a stream that already has a writer")):Js(this,c):f(Qs("abort"))}close(){return Br(this)?Mr(this)?f(new TypeError("Cannot close a stream that already has a writer")):Xt(this)?f(new TypeError("Cannot close an already-closing stream")):ah(this):f(Qs("close"))}getWriter(){if(!Br(this))throw Qs("getWriter");return sh(this)}}Object.defineProperties(jn.prototype,{abort:{enumerable:!0},close:{enumerable:!0},getWriter:{enumerable:!0},locked:{enumerable:!0}}),o(jn.prototype.abort,"abort"),o(jn.prototype.close,"close"),o(jn.prototype.getWriter,"getWriter"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(jn.prototype,Symbol.toStringTag,{value:"WritableStream",configurable:!0});function sh(i){return new yn(i)}function pb(i,c,h,k,x=1,j=()=>1){let q=Object.create(jn.prototype);ih(q);let ne=Object.create(Lr.prototype);return hh(q,ne,i,c,h,k,x,j),q}function ih(i){i._state="writable",i._storedError=void 0,i._writer=void 0,i._writableStreamController=void 0,i._writeRequests=new v,i._inFlightWriteRequest=void 0,i._closeRequest=void 0,i._inFlightCloseRequest=void 0,i._pendingAbortRequest=void 0,i._backpressure=!1}function Br(i){return!n(i)||!Object.prototype.hasOwnProperty.call(i,"_writableStreamController")?!1:i instanceof jn}function Mr(i){return i._writer!==void 0}function Js(i,c){var h;if(i._state==="closed"||i._state==="errored")return d(void 0);i._writableStreamController._abortReason=c,(h=i._writableStreamController._abortController)===null||h===void 0||h.abort(c);let k=i._state;if(k==="closed"||k==="errored")return d(void 0);if(i._pendingAbortRequest!==void 0)return i._pendingAbortRequest._promise;let x=!1;k==="erroring"&&(x=!0,c=void 0);let j=l((q,ne)=>{i._pendingAbortRequest={_promise:void 0,_resolve:q,_reject:ne,_reason:c,_wasAlreadyErroring:x}});return i._pendingAbortRequest._promise=j,x||Uu(i,c),j}function ah(i){let c=i._state;if(c==="closed"||c==="errored")return f(new TypeError(`The stream (in ${c} state) is not in the writable state and cannot be closed`));let h=l((x,j)=>{let q={_resolve:x,_reject:j};i._closeRequest=q}),k=i._writer;return k!==void 0&&i._backpressure&&c==="writable"&&Vu(k),Db(i._writableStreamController),h}function mb(i){return l((h,k)=>{let x={_resolve:h,_reject:k};i._writeRequests.push(x)})}function ju(i,c){if(i._state==="writable"){Uu(i,c);return}$u(i)}function Uu(i,c){let h=i._writableStreamController;i._state="erroring",i._storedError=c;let k=i._writer;k!==void 0&&ch(k,c),!Cb(i)&&h._started&&$u(i)}function $u(i){i._state="errored",i._writableStreamController[$]();let c=i._storedError;if(i._writeRequests.forEach(x=>{x._reject(c)}),i._writeRequests=new v,i._pendingAbortRequest===void 0){Vs(i);return}let h=i._pendingAbortRequest;if(i._pendingAbortRequest=void 0,h._wasAlreadyErroring){h._reject(c),Vs(i);return}let k=i._writableStreamController[R](h._reason);m(k,()=>(h._resolve(),Vs(i),null),x=>(h._reject(x),Vs(i),null))}function gb(i){i._inFlightWriteRequest._resolve(void 0),i._inFlightWriteRequest=void 0}function yb(i,c){i._inFlightWriteRequest._reject(c),i._inFlightWriteRequest=void 0,ju(i,c)}function _b(i){i._inFlightCloseRequest._resolve(void 0),i._inFlightCloseRequest=void 0,i._state==="erroring"&&(i._storedError=void 0,i._pendingAbortRequest!==void 0&&(i._pendingAbortRequest._resolve(),i._pendingAbortRequest=void 0)),i._state="closed";let h=i._writer;h!==void 0&&yh(h)}function bb(i,c){i._inFlightCloseRequest._reject(c),i._inFlightCloseRequest=void 0,i._pendingAbortRequest!==void 0&&(i._pendingAbortRequest._reject(c),i._pendingAbortRequest=void 0),ju(i,c)}function Xt(i){return!(i._closeRequest===void 0&&i._inFlightCloseRequest===void 0)}function Cb(i){return!(i._inFlightWriteRequest===void 0&&i._inFlightCloseRequest===void 0)}function wb(i){i._inFlightCloseRequest=i._closeRequest,i._closeRequest=void 0}function Eb(i){i._inFlightWriteRequest=i._writeRequests.shift()}function Vs(i){i._closeRequest!==void 0&&(i._closeRequest._reject(i._storedError),i._closeRequest=void 0);let c=i._writer;c!==void 0&&Gu(c,i._storedError)}function qu(i,c){let h=i._writer;h!==void 0&&c!==i._backpressure&&(c?Nb(h):Vu(h)),i._backpressure=c}class yn{constructor(c){if(je(c,1,"WritableStreamDefaultWriter"),oh(c,"First parameter"),Mr(c))throw new TypeError("This stream has already been locked for exclusive writing by another writer");this._ownerWritableStream=c,c._writer=this;let h=c._state;if(h==="writable")!Xt(c)&&c._backpressure?Zs(this):_h(this),Xs(this);else if(h==="erroring")Ju(this,c._storedError),Xs(this);else if(h==="closed")_h(this),Fb(this);else{let k=c._storedError;Ju(this,k),gh(this,k)}}get closed(){return ar(this)?this._closedPromise:f(ur("closed"))}get desiredSize(){if(!ar(this))throw ur("desiredSize");if(this._ownerWritableStream===void 0)throw Bo("desiredSize");return Tb(this)}get ready(){return ar(this)?this._readyPromise:f(ur("ready"))}abort(c=void 0){return ar(this)?this._ownerWritableStream===void 0?f(Bo("abort")):kb(this,c):f(ur("abort"))}close(){if(!ar(this))return f(ur("close"));let c=this._ownerWritableStream;return c===void 0?f(Bo("close")):Xt(c)?f(new TypeError("Cannot close an already-closing stream")):uh(this)}releaseLock(){if(!ar(this))throw ur("releaseLock");this._ownerWritableStream!==void 0&&lh(this)}write(c=void 0){return ar(this)?this._ownerWritableStream===void 0?f(Bo("write to")):dh(this,c):f(ur("write"))}}Object.defineProperties(yn.prototype,{abort:{enumerable:!0},close:{enumerable:!0},releaseLock:{enumerable:!0},write:{enumerable:!0},closed:{enumerable:!0},desiredSize:{enumerable:!0},ready:{enumerable:!0}}),o(yn.prototype.abort,"abort"),o(yn.prototype.close,"close"),o(yn.prototype.releaseLock,"releaseLock"),o(yn.prototype.write,"write"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(yn.prototype,Symbol.toStringTag,{value:"WritableStreamDefaultWriter",configurable:!0});function ar(i){return!n(i)||!Object.prototype.hasOwnProperty.call(i,"_ownerWritableStream")?!1:i instanceof yn}function kb(i,c){let h=i._ownerWritableStream;return Js(h,c)}function uh(i){let c=i._ownerWritableStream;return ah(c)}function Ab(i){let c=i._ownerWritableStream,h=c._state;return Xt(c)||h==="closed"?d(void 0):h==="errored"?f(c._storedError):uh(i)}function Sb(i,c){i._closedPromiseState==="pending"?Gu(i,c):Ib(i,c)}function ch(i,c){i._readyPromiseState==="pending"?bh(i,c):Bb(i,c)}function Tb(i){let c=i._ownerWritableStream,h=c._state;return h==="errored"||h==="erroring"?null:h==="closed"?0:ph(c._writableStreamController)}function lh(i){let c=i._ownerWritableStream,h=new TypeError("Writer was released and can no longer be used to monitor the stream's closedness");ch(i,h),Sb(i,h),c._writer=void 0,i._ownerWritableStream=void 0}function dh(i,c){let h=i._ownerWritableStream,k=h._writableStreamController,x=Rb(k,c);if(h!==i._ownerWritableStream)return f(Bo("write to"));let j=h._state;if(j==="errored")return f(h._storedError);if(Xt(h)||j==="closed")return f(new TypeError("The stream is closing or closed and cannot be written to"));if(j==="erroring")return f(h._storedError);let q=mb(h);return xb(k,c,x),q}let fh={};class Lr{constructor(){throw new TypeError("Illegal constructor")}get abortReason(){if(!zu(this))throw Wu("abortReason");return this._abortReason}get signal(){if(!zu(this))throw Wu("signal");if(this._abortController===void 0)throw new TypeError("WritableStreamDefaultController.prototype.signal is not supported");return this._abortController.signal}error(c=void 0){if(!zu(this))throw Wu("error");this._controlledWritableStream._state==="writable"&&mh(this,c)}[R](c){let h=this._abortAlgorithm(c);return Ks(this),h}[$](){Mn(this)}}Object.defineProperties(Lr.prototype,{abortReason:{enumerable:!0},signal:{enumerable:!0},error:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Lr.prototype,Symbol.toStringTag,{value:"WritableStreamDefaultController",configurable:!0});function zu(i){return!n(i)||!Object.prototype.hasOwnProperty.call(i,"_controlledWritableStream")?!1:i instanceof Lr}function hh(i,c,h,k,x,j,q,ne){c._controlledWritableStream=i,i._writableStreamController=c,c._queue=void 0,c._queueTotalSize=void 0,Mn(c),c._abortReason=void 0,c._abortController=hb(),c._started=!1,c._strategySizeAlgorithm=ne,c._strategyHWM=q,c._writeAlgorithm=k,c._closeAlgorithm=x,c._abortAlgorithm=j;let he=Hu(c);qu(i,he);let le=h(),me=d(le);m(me,()=>(c._started=!0,Ys(c),null),be=>(c._started=!0,ju(i,be),null))}function vb(i,c,h,k){let x=Object.create(Lr.prototype),j,q,ne,he;c.start!==void 0?j=()=>c.start(x):j=()=>{},c.write!==void 0?q=le=>c.write(le,x):q=()=>d(void 0),c.close!==void 0?ne=()=>c.close():ne=()=>d(void 0),c.abort!==void 0?he=le=>c.abort(le):he=()=>d(void 0),hh(i,x,j,q,ne,he,h,k)}function Ks(i){i._writeAlgorithm=void 0,i._closeAlgorithm=void 0,i._abortAlgorithm=void 0,i._strategySizeAlgorithm=void 0}function Db(i){Ou(i,fh,0),Ys(i)}function Rb(i,c){try{return i._strategySizeAlgorithm(c)}catch(h){return No(i,h),1}}function ph(i){return i._strategyHWM-i._queueTotalSize}function xb(i,c,h){try{Ou(i,c,h)}catch(x){No(i,x);return}let k=i._controlledWritableStream;if(!Xt(k)&&k._state==="writable"){let x=Hu(i);qu(k,x)}Ys(i)}function Ys(i){let c=i._controlledWritableStream;if(!i._started||c._inFlightWriteRequest!==void 0)return;if(c._state==="erroring"){$u(c);return}if(i._queue.length===0)return;let k=H_(i);k===fh?Ob(i):Pb(i,k)}function No(i,c){i._controlledWritableStream._state==="writable"&&mh(i,c)}function Ob(i){let c=i._controlledWritableStream;wb(c),xu(i);let h=i._closeAlgorithm();Ks(i),m(h,()=>(_b(c),null),k=>(bb(c,k),null))}function Pb(i,c){let h=i._controlledWritableStream;Eb(h);let k=i._writeAlgorithm(c);m(k,()=>{gb(h);let x=h._state;if(xu(i),!Xt(h)&&x==="writable"){let j=Hu(i);qu(h,j)}return Ys(i),null},x=>(h._state==="writable"&&Ks(i),yb(h,x),null))}function Hu(i){return ph(i)<=0}function mh(i,c){let h=i._controlledWritableStream;Ks(i),Uu(h,c)}function Qs(i){return new TypeError(`WritableStream.prototype.${i} can only be used on a WritableStream`)}function Wu(i){return new TypeError(`WritableStreamDefaultController.prototype.${i} can only be used on a WritableStreamDefaultController`)}function ur(i){return new TypeError(`WritableStreamDefaultWriter.prototype.${i} can only be used on a WritableStreamDefaultWriter`)}function Bo(i){return new TypeError("Cannot "+i+" a stream using a released writer")}function Xs(i){i._closedPromise=l((c,h)=>{i._closedPromise_resolve=c,i._closedPromise_reject=h,i._closedPromiseState="pending"})}function gh(i,c){Xs(i),Gu(i,c)}function Fb(i){Xs(i),yh(i)}function Gu(i,c){i._closedPromise_reject!==void 0&&(g(i._closedPromise),i._closedPromise_reject(c),i._closedPromise_resolve=void 0,i._closedPromise_reject=void 0,i._closedPromiseState="rejected")}function Ib(i,c){gh(i,c)}function yh(i){i._closedPromise_resolve!==void 0&&(i._closedPromise_resolve(void 0),i._closedPromise_resolve=void 0,i._closedPromise_reject=void 0,i._closedPromiseState="resolved")}function Zs(i){i._readyPromise=l((c,h)=>{i._readyPromise_resolve=c,i._readyPromise_reject=h}),i._readyPromiseState="pending"}function Ju(i,c){Zs(i),bh(i,c)}function _h(i){Zs(i),Vu(i)}function bh(i,c){i._readyPromise_reject!==void 0&&(g(i._readyPromise),i._readyPromise_reject(c),i._readyPromise_resolve=void 0,i._readyPromise_reject=void 0,i._readyPromiseState="rejected")}function Nb(i){Zs(i)}function Bb(i,c){Ju(i,c)}function Vu(i){i._readyPromise_resolve!==void 0&&(i._readyPromise_resolve(void 0),i._readyPromise_resolve=void 0,i._readyPromise_reject=void 0,i._readyPromiseState="fulfilled")}function Mb(){if(typeof globalThis<"u")return globalThis;if(typeof self<"u")return self;if(typeof global<"u")return global}let Ku=Mb();function Lb(i){if(!(typeof i=="function"||typeof i=="object")||i.name!=="DOMException")return!1;try{return new i,!0}catch{return!1}}function jb(){let i=Ku?.DOMException;return Lb(i)?i:void 0}function Ub(){let i=function(h,k){this.message=h||"",this.name=k||"Error",Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)};return o(i,"DOMException"),i.prototype=Object.create(Error.prototype),Object.defineProperty(i.prototype,"constructor",{value:i,writable:!0,configurable:!0}),i}let $b=jb()||Ub();function Ch(i,c,h,k,x,j){let q=U(i),ne=sh(c);i._disturbed=!0;let he=!1,le=d(void 0);return l((me,be)=>{let Re;if(j!==void 0){if(Re=()=>{let de=j.reason!==void 0?j.reason:new $b("Aborted","AbortError"),Ce=[];k||Ce.push(()=>c._state==="writable"?Js(c,de):d(void 0)),x||Ce.push(()=>i._state==="readable"?Lt(i,de):d(void 0)),at(()=>Promise.all(Ce.map(Pe=>Pe())),!0,de)},j.aborted){Re();return}j.addEventListener("abort",Re)}function jt(){return l((de,Ce)=>{function Pe(ht){ht?de():p(qr(),Pe,Ce)}Pe(!1)})}function qr(){return he?d(!0):p(ne._readyPromise,()=>l((de,Ce)=>{ae(q,{_chunkSteps:Pe=>{le=p(dh(ne,Pe),void 0,e),de(!1)},_closeSteps:()=>de(!0),_errorSteps:Ce})}))}if(bn(i,q._closedPromise,de=>(k?Tt(!0,de):at(()=>Js(c,de),!0,de),null)),bn(c,ne._closedPromise,de=>(x?Tt(!0,de):at(()=>Lt(i,de),!0,de),null)),rt(i,q._closedPromise,()=>(h?Tt():at(()=>Ab(ne)),null)),Xt(c)||c._state==="closed"){let de=new TypeError("the destination writable stream closed before all data could be piped to it");x?Tt(!0,de):at(()=>Lt(i,de),!0,de)}g(jt());function zn(){let de=le;return p(le,()=>de!==le?zn():void 0)}function bn(de,Ce,Pe){de._state==="errored"?Pe(de._storedError):w(Ce,Pe)}function rt(de,Ce,Pe){de._state==="closed"?Pe():b(Ce,Pe)}function at(de,Ce,Pe){if(he)return;he=!0,c._state==="writable"&&!Xt(c)?b(zn(),ht):ht();function ht(){return m(de(),()=>Cn(Ce,Pe),zr=>Cn(!0,zr)),null}}function Tt(de,Ce){he||(he=!0,c._state==="writable"&&!Xt(c)?b(zn(),()=>Cn(de,Ce)):Cn(de,Ce))}function Cn(de,Ce){return lh(ne),Q(q),j!==void 0&&j.removeEventListener("abort",Re),de?be(Ce):me(void 0),null}})}class _n{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!ei(this))throw ni("desiredSize");return Yu(this)}close(){if(!ei(this))throw ni("close");if(!Ur(this))throw new TypeError("The stream is not in a state that permits close");cr(this)}enqueue(c=void 0){if(!ei(this))throw ni("enqueue");if(!Ur(this))throw new TypeError("The stream is not in a state that permits enqueue");return jr(this,c)}error(c=void 0){if(!ei(this))throw ni("error");Mt(this,c)}[V](c){Mn(this);let h=this._cancelAlgorithm(c);return ti(this),h}[P](c){let h=this._controlledReadableStream;if(this._queue.length>0){let k=xu(this);this._closeRequested&&this._queue.length===0?(ti(this),jo(h)):Mo(this),c._chunkSteps(k)}else O(h,c),Mo(this)}[Y](){}}Object.defineProperties(_n.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},desiredSize:{enumerable:!0}}),o(_n.prototype.close,"close"),o(_n.prototype.enqueue,"enqueue"),o(_n.prototype.error,"error"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(_n.prototype,Symbol.toStringTag,{value:"ReadableStreamDefaultController",configurable:!0});function ei(i){return!n(i)||!Object.prototype.hasOwnProperty.call(i,"_controlledReadableStream")?!1:i instanceof _n}function Mo(i){if(!wh(i))return;if(i._pulling){i._pullAgain=!0;return}i._pulling=!0;let h=i._pullAlgorithm();m(h,()=>(i._pulling=!1,i._pullAgain&&(i._pullAgain=!1,Mo(i)),null),k=>(Mt(i,k),null))}function wh(i){let c=i._controlledReadableStream;return!Ur(i)||!i._started?!1:!!($n(c)&&L(c)>0||Yu(i)>0)}function ti(i){i._pullAlgorithm=void 0,i._cancelAlgorithm=void 0,i._strategySizeAlgorithm=void 0}function cr(i){if(!Ur(i))return;let c=i._controlledReadableStream;i._closeRequested=!0,i._queue.length===0&&(ti(i),jo(c))}function jr(i,c){if(!Ur(i))return;let h=i._controlledReadableStream;if($n(h)&&L(h)>0)I(h,c,!1);else{let k;try{k=i._strategySizeAlgorithm(c)}catch(x){throw Mt(i,x),x}try{Ou(i,c,k)}catch(x){throw Mt(i,x),x}}Mo(i)}function Mt(i,c){let h=i._controlledReadableStream;h._state==="readable"&&(Mn(i),ti(i),Sh(h,c))}function Yu(i){let c=i._controlledReadableStream._state;return c==="errored"?null:c==="closed"?0:i._strategyHWM-i._queueTotalSize}function qb(i){return!wh(i)}function Ur(i){let c=i._controlledReadableStream._state;return!i._closeRequested&&c==="readable"}function Eh(i,c,h,k,x,j,q){c._controlledReadableStream=i,c._queue=void 0,c._queueTotalSize=void 0,Mn(c),c._started=!1,c._closeRequested=!1,c._pullAgain=!1,c._pulling=!1,c._strategySizeAlgorithm=q,c._strategyHWM=j,c._pullAlgorithm=k,c._cancelAlgorithm=x,i._readableStreamController=c;let ne=h();m(d(ne),()=>(c._started=!0,Mo(c),null),he=>(Mt(c,he),null))}function zb(i,c,h,k){let x=Object.create(_n.prototype),j,q,ne;c.start!==void 0?j=()=>c.start(x):j=()=>{},c.pull!==void 0?q=()=>c.pull(x):q=()=>d(void 0),c.cancel!==void 0?ne=he=>c.cancel(he):ne=()=>d(void 0),Eh(i,x,j,q,ne,h,k)}function ni(i){return new TypeError(`ReadableStreamDefaultController.prototype.${i} can only be used on a ReadableStreamDefaultController`)}function Hb(i,c){return or(i._readableStreamController)?Gb(i):Wb(i)}function Wb(i,c){let h=U(i),k=!1,x=!1,j=!1,q=!1,ne,he,le,me,be,Re=l(rt=>{be=rt});function jt(){return k?(x=!0,d(void 0)):(k=!0,ae(h,{_chunkSteps:at=>{_(()=>{x=!1;let Tt=at,Cn=at;j||jr(le._readableStreamController,Tt),q||jr(me._readableStreamController,Cn),k=!1,x&&jt()})},_closeSteps:()=>{k=!1,j||cr(le._readableStreamController),q||cr(me._readableStreamController),(!j||!q)&&be(void 0)},_errorSteps:()=>{k=!1}}),d(void 0))}function qr(rt){if(j=!0,ne=rt,q){let at=ve([ne,he]),Tt=Lt(i,at);be(Tt)}return Re}function zn(rt){if(q=!0,he=rt,j){let at=ve([ne,he]),Tt=Lt(i,at);be(Tt)}return Re}function bn(){}return le=Lo(bn,jt,qr),me=Lo(bn,jt,zn),w(h._closedPromise,rt=>(Mt(le._readableStreamController,rt),Mt(me._readableStreamController,rt),(!j||!q)&&be(void 0),null)),[le,me]}function Gb(i){let c=U(i),h=!1,k=!1,x=!1,j=!1,q=!1,ne,he,le,me,be,Re=l(de=>{be=de});function jt(de){w(de._closedPromise,Ce=>(de!==c||(St(le._readableStreamController,Ce),St(me._readableStreamController,Ce),(!j||!q)&&be(void 0)),null))}function qr(){ir(c)&&(Q(c),c=U(i),jt(c)),ae(c,{_chunkSteps:Ce=>{_(()=>{k=!1,x=!1;let Pe=Ce,ht=Ce;if(!j&&!q)try{ht=Uf(Ce)}catch(zr){St(le._readableStreamController,zr),St(me._readableStreamController,zr),be(Lt(i,zr));return}j||$s(le._readableStreamController,Pe),q||$s(me._readableStreamController,ht),h=!1,k?bn():x&&rt()})},_closeSteps:()=>{h=!1,j||Po(le._readableStreamController),q||Po(me._readableStreamController),le._readableStreamController._pendingPullIntos.length>0&&qs(le._readableStreamController,0),me._readableStreamController._pendingPullIntos.length>0&&qs(me._readableStreamController,0),(!j||!q)&&be(void 0)},_errorSteps:()=>{h=!1}})}function zn(de,Ce){re(c)&&(Q(c),c=Zf(i),jt(c));let Pe=Ce?me:le,ht=Ce?le:me;nh(c,de,1,{_chunkSteps:Hr=>{_(()=>{k=!1,x=!1;let Wr=Ce?q:j;if(Ce?j:q)Wr||zs(Pe._readableStreamController,Hr);else{let Lh;try{Lh=Uf(Hr)}catch(tc){St(Pe._readableStreamController,tc),St(ht._readableStreamController,tc),be(Lt(i,tc));return}Wr||zs(Pe._readableStreamController,Hr),$s(ht._readableStreamController,Lh)}h=!1,k?bn():x&&rt()})},_closeSteps:Hr=>{h=!1;let Wr=Ce?q:j,li=Ce?j:q;Wr||Po(Pe._readableStreamController),li||Po(ht._readableStreamController),Hr!==void 0&&(Wr||zs(Pe._readableStreamController,Hr),!li&&ht._readableStreamController._pendingPullIntos.length>0&&qs(ht._readableStreamController,0)),(!Wr||!li)&&be(void 0)},_errorSteps:()=>{h=!1}})}function bn(){if(h)return k=!0,d(void 0);h=!0;let de=Bu(le._readableStreamController);return de===null?qr():zn(de._view,!1),d(void 0)}function rt(){if(h)return x=!0,d(void 0);h=!0;let de=Bu(me._readableStreamController);return de===null?qr():zn(de._view,!0),d(void 0)}function at(de){if(j=!0,ne=de,q){let Ce=ve([ne,he]),Pe=Lt(i,Ce);be(Pe)}return Re}function Tt(de){if(q=!0,he=de,j){let Ce=ve([ne,he]),Pe=Lt(i,Ce);be(Pe)}return Re}function Cn(){}return le=Ah(Cn,bn,at),me=Ah(Cn,rt,Tt),jt(c),[le,me]}function Jb(i){return n(i)&&typeof i.getReader<"u"}function Vb(i){return Jb(i)?Yb(i.getReader()):Kb(i)}function Kb(i){let c,h=jf(i,"async"),k=e;function x(){let q;try{q=U_(h)}catch(he){return f(he)}let ne=d(q);return y(ne,he=>{if(!n(he))throw new TypeError("The promise returned by the iterator.next() method must fulfill with an object");if($_(he))cr(c._readableStreamController);else{let me=q_(he);jr(c._readableStreamController,me)}})}function j(q){let ne=h.iterator,he;try{he=Ls(ne,"return")}catch(be){return f(be)}if(he===void 0)return d(void 0);let le;try{le=A(he,ne,[q])}catch(be){return f(be)}let me=d(le);return y(me,be=>{if(!n(be))throw new TypeError("The promise returned by the iterator.return() method must fulfill with an object")})}return c=Lo(k,x,j,0),c}function Yb(i){let c,h=e;function k(){let j;try{j=i.read()}catch(q){return f(q)}return y(j,q=>{if(!n(q))throw new TypeError("The promise returned by the reader.read() method must fulfill with an object");if(q.done)cr(c._readableStreamController);else{let ne=q.value;jr(c._readableStreamController,ne)}})}function x(j){try{return d(i.cancel(j))}catch(q){return f(q)}}return c=Lo(h,k,x,0),c}function Qb(i,c){ue(i,c);let h=i,k=h?.autoAllocateChunkSize,x=h?.cancel,j=h?.pull,q=h?.start,ne=h?.type;return{autoAllocateChunkSize:k===void 0?void 0:F(k,`${c} has member 'autoAllocateChunkSize' that`),cancel:x===void 0?void 0:Xb(x,h,`${c} has member 'cancel' that`),pull:j===void 0?void 0:Zb(j,h,`${c} has member 'pull' that`),start:q===void 0?void 0:eC(q,h,`${c} has member 'start' that`),type:ne===void 0?void 0:tC(ne,`${c} has member 'type' that`)}}function Xb(i,c,h){return te(i,h),k=>C(i,c,[k])}function Zb(i,c,h){return te(i,h),k=>C(i,c,[k])}function eC(i,c,h){return te(i,h),k=>A(i,c,[k])}function tC(i,c){if(i=`${i}`,i!=="bytes")throw new TypeError(`${c} '${i}' is not a valid enumeration value for ReadableStreamType`);return i}function nC(i,c){return ue(i,c),{preventCancel:!!i?.preventCancel}}function kh(i,c){ue(i,c);let h=i?.preventAbort,k=i?.preventCancel,x=i?.preventClose,j=i?.signal;return j!==void 0&&rC(j,`${c} has member 'signal' that`),{preventAbort:!!h,preventCancel:!!k,preventClose:!!x,signal:j}}function rC(i,c){if(!db(i))throw new TypeError(`${c} is not an AbortSignal.`)}function oC(i,c){ue(i,c);let h=i?.readable;E(h,"readable","ReadableWritablePair"),N(h,`${c} has member 'readable' that`);let k=i?.writable;return E(k,"writable","ReadableWritablePair"),oh(k,`${c} has member 'writable' that`),{readable:h,writable:k}}class et{constructor(c={},h={}){c===void 0?c=null:Oe(c,"First parameter");let k=Gs(h,"Second parameter"),x=Qb(c,"First parameter");if(Qu(this),x.type==="bytes"){if(k.size!==void 0)throw new RangeError("The strategy for a byte stream cannot have a size function");let j=Io(k,0);X_(this,x,j)}else{let j=Ws(k),q=Io(k,1);zb(this,x,q,j)}}get locked(){if(!Un(this))throw lr("locked");return $n(this)}cancel(c=void 0){return Un(this)?$n(this)?f(new TypeError("Cannot cancel a stream that already has a reader")):Lt(this,c):f(lr("cancel"))}getReader(c=void 0){if(!Un(this))throw lr("getReader");return eb(c,"First parameter").mode===void 0?U(this):Zf(this)}pipeThrough(c,h={}){if(!Un(this))throw lr("pipeThrough");je(c,1,"pipeThrough");let k=oC(c,"First parameter"),x=kh(h,"Second parameter");if($n(this))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream");if(Mr(k.writable))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream");let j=Ch(this,k.writable,x.preventClose,x.preventAbort,x.preventCancel,x.signal);return g(j),k.readable}pipeTo(c,h={}){if(!Un(this))return f(lr("pipeTo"));if(c===void 0)return f("Parameter 1 is required in 'pipeTo'.");if(!Br(c))return f(new TypeError("ReadableStream.prototype.pipeTo's first argument must be a WritableStream"));let k;try{k=kh(h,"Second parameter")}catch(x){return f(x)}return $n(this)?f(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream")):Mr(c)?f(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream")):Ch(this,c,k.preventClose,k.preventAbort,k.preventCancel,k.signal)}tee(){if(!Un(this))throw lr("tee");let c=Hb(this);return ve(c)}values(c=void 0){if(!Un(this))throw lr("values");let h=nC(c,"First parameter");return Pr(this,h.preventCancel)}[Ru](c){return this.values(c)}static from(c){return Vb(c)}}Object.defineProperties(et,{from:{enumerable:!0}}),Object.defineProperties(et.prototype,{cancel:{enumerable:!0},getReader:{enumerable:!0},pipeThrough:{enumerable:!0},pipeTo:{enumerable:!0},tee:{enumerable:!0},values:{enumerable:!0},locked:{enumerable:!0}}),o(et.from,"from"),o(et.prototype.cancel,"cancel"),o(et.prototype.getReader,"getReader"),o(et.prototype.pipeThrough,"pipeThrough"),o(et.prototype.pipeTo,"pipeTo"),o(et.prototype.tee,"tee"),o(et.prototype.values,"values"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(et.prototype,Symbol.toStringTag,{value:"ReadableStream",configurable:!0}),Object.defineProperty(et.prototype,Ru,{value:et.prototype.values,writable:!0,configurable:!0});function Lo(i,c,h,k=1,x=()=>1){let j=Object.create(et.prototype);Qu(j);let q=Object.create(_n.prototype);return Eh(j,q,i,c,h,k,x),j}function Ah(i,c,h){let k=Object.create(et.prototype);Qu(k);let x=Object.create(gn.prototype);return Xf(k,x,i,c,h,0,void 0),k}function Qu(i){i._state="readable",i._reader=void 0,i._storedError=void 0,i._disturbed=!1}function Un(i){return!n(i)||!Object.prototype.hasOwnProperty.call(i,"_readableStreamController")?!1:i instanceof et}function $n(i){return i._reader!==void 0}function Lt(i,c){if(i._disturbed=!0,i._state==="closed")return d(void 0);if(i._state==="errored")return f(i._storedError);jo(i);let h=i._reader;if(h!==void 0&&ir(h)){let x=h._readIntoRequests;h._readIntoRequests=new v,x.forEach(j=>{j._closeSteps(void 0)})}let k=i._readableStreamController[V](c);return y(k,e)}function jo(i){i._state="closed";let c=i._reader;if(c!==void 0&&(se(c),re(c))){let h=c._readRequests;c._readRequests=new v,h.forEach(k=>{k._closeSteps()})}}function Sh(i,c){i._state="errored",i._storedError=c;let h=i._reader;h!==void 0&&(G(h,c),re(h)?Ie(h,c):rh(h,c))}function lr(i){return new TypeError(`ReadableStream.prototype.${i} can only be used on a ReadableStream`)}function Th(i,c){ue(i,c);let h=i?.highWaterMark;return E(h,"highWaterMark","QueuingStrategyInit"),{highWaterMark:T(h)}}let vh=i=>i.byteLength;o(vh,"size");class ri{constructor(c){je(c,1,"ByteLengthQueuingStrategy"),c=Th(c,"First parameter"),this._byteLengthQueuingStrategyHighWaterMark=c.highWaterMark}get highWaterMark(){if(!Rh(this))throw Dh("highWaterMark");return this._byteLengthQueuingStrategyHighWaterMark}get size(){if(!Rh(this))throw Dh("size");return vh}}Object.defineProperties(ri.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(ri.prototype,Symbol.toStringTag,{value:"ByteLengthQueuingStrategy",configurable:!0});function Dh(i){return new TypeError(`ByteLengthQueuingStrategy.prototype.${i} can only be used on a ByteLengthQueuingStrategy`)}function Rh(i){return!n(i)||!Object.prototype.hasOwnProperty.call(i,"_byteLengthQueuingStrategyHighWaterMark")?!1:i instanceof ri}let xh=()=>1;o(xh,"size");class oi{constructor(c){je(c,1,"CountQueuingStrategy"),c=Th(c,"First parameter"),this._countQueuingStrategyHighWaterMark=c.highWaterMark}get highWaterMark(){if(!Ph(this))throw Oh("highWaterMark");return this._countQueuingStrategyHighWaterMark}get size(){if(!Ph(this))throw Oh("size");return xh}}Object.defineProperties(oi.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(oi.prototype,Symbol.toStringTag,{value:"CountQueuingStrategy",configurable:!0});function Oh(i){return new TypeError(`CountQueuingStrategy.prototype.${i} can only be used on a CountQueuingStrategy`)}function Ph(i){return!n(i)||!Object.prototype.hasOwnProperty.call(i,"_countQueuingStrategyHighWaterMark")?!1:i instanceof oi}function sC(i,c){ue(i,c);let h=i?.cancel,k=i?.flush,x=i?.readableType,j=i?.start,q=i?.transform,ne=i?.writableType;return{cancel:h===void 0?void 0:cC(h,i,`${c} has member 'cancel' that`),flush:k===void 0?void 0:iC(k,i,`${c} has member 'flush' that`),readableType:x,start:j===void 0?void 0:aC(j,i,`${c} has member 'start' that`),transform:q===void 0?void 0:uC(q,i,`${c} has member 'transform' that`),writableType:ne}}function iC(i,c,h){return te(i,h),k=>C(i,c,[k])}function aC(i,c,h){return te(i,h),k=>A(i,c,[k])}function uC(i,c,h){return te(i,h),(k,x)=>C(i,c,[k,x])}function cC(i,c,h){return te(i,h),k=>C(i,c,[k])}class si{constructor(c={},h={},k={}){c===void 0&&(c=null);let x=Gs(h,"Second parameter"),j=Gs(k,"Third parameter"),q=sC(c,"First parameter");if(q.readableType!==void 0)throw new RangeError("Invalid readableType specified");if(q.writableType!==void 0)throw new RangeError("Invalid writableType specified");let ne=Io(j,0),he=Ws(j),le=Io(x,1),me=Ws(x),be,Re=l(jt=>{be=jt});lC(this,Re,le,me,ne,he),fC(this,q),q.start!==void 0?be(q.start(this._transformStreamController)):be(void 0)}get readable(){if(!Fh(this))throw Mh("readable");return this._readable}get writable(){if(!Fh(this))throw Mh("writable");return this._writable}}Object.defineProperties(si.prototype,{readable:{enumerable:!0},writable:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(si.prototype,Symbol.toStringTag,{value:"TransformStream",configurable:!0});function lC(i,c,h,k,x,j){function q(){return c}function ne(Re){return mC(i,Re)}function he(Re){return gC(i,Re)}function le(){return yC(i)}i._writable=pb(q,ne,le,he,h,k);function me(){return _C(i)}function be(Re){return bC(i,Re)}i._readable=Lo(q,me,be,x,j),i._backpressure=void 0,i._backpressureChangePromise=void 0,i._backpressureChangePromise_resolve=void 0,ii(i,!0),i._transformStreamController=void 0}function Fh(i){return!n(i)||!Object.prototype.hasOwnProperty.call(i,"_transformStreamController")?!1:i instanceof si}function Ih(i,c){Mt(i._readable._readableStreamController,c),Xu(i,c)}function Xu(i,c){ui(i._transformStreamController),No(i._writable._writableStreamController,c),Zu(i)}function Zu(i){i._backpressure&&ii(i,!1)}function ii(i,c){i._backpressureChangePromise!==void 0&&i._backpressureChangePromise_resolve(),i._backpressureChangePromise=l(h=>{i._backpressureChangePromise_resolve=h}),i._backpressure=c}class qn{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!ai(this))throw ci("desiredSize");let c=this._controlledTransformStream._readable._readableStreamController;return Yu(c)}enqueue(c=void 0){if(!ai(this))throw ci("enqueue");Nh(this,c)}error(c=void 0){if(!ai(this))throw ci("error");hC(this,c)}terminate(){if(!ai(this))throw ci("terminate");pC(this)}}Object.defineProperties(qn.prototype,{enqueue:{enumerable:!0},error:{enumerable:!0},terminate:{enumerable:!0},desiredSize:{enumerable:!0}}),o(qn.prototype.enqueue,"enqueue"),o(qn.prototype.error,"error"),o(qn.prototype.terminate,"terminate"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(qn.prototype,Symbol.toStringTag,{value:"TransformStreamDefaultController",configurable:!0});function ai(i){return!n(i)||!Object.prototype.hasOwnProperty.call(i,"_controlledTransformStream")?!1:i instanceof qn}function dC(i,c,h,k,x){c._controlledTransformStream=i,i._transformStreamController=c,c._transformAlgorithm=h,c._flushAlgorithm=k,c._cancelAlgorithm=x,c._finishPromise=void 0,c._finishPromise_resolve=void 0,c._finishPromise_reject=void 0}function fC(i,c){let h=Object.create(qn.prototype),k,x,j;c.transform!==void 0?k=q=>c.transform(q,h):k=q=>{try{return Nh(h,q),d(void 0)}catch(ne){return f(ne)}},c.flush!==void 0?x=()=>c.flush(h):x=()=>d(void 0),c.cancel!==void 0?j=q=>c.cancel(q):j=()=>d(void 0),dC(i,h,k,x,j)}function ui(i){i._transformAlgorithm=void 0,i._flushAlgorithm=void 0,i._cancelAlgorithm=void 0}function Nh(i,c){let h=i._controlledTransformStream,k=h._readable._readableStreamController;if(!Ur(k))throw new TypeError("Readable side is not in a state that permits enqueue");try{jr(k,c)}catch(j){throw Xu(h,j),h._readable._storedError}qb(k)!==h._backpressure&&ii(h,!0)}function hC(i,c){Ih(i._controlledTransformStream,c)}function Bh(i,c){let h=i._transformAlgorithm(c);return y(h,void 0,k=>{throw Ih(i._controlledTransformStream,k),k})}function pC(i){let c=i._controlledTransformStream,h=c._readable._readableStreamController;cr(h);let k=new TypeError("TransformStream terminated");Xu(c,k)}function mC(i,c){let h=i._transformStreamController;if(i._backpressure){let k=i._backpressureChangePromise;return y(k,()=>{let x=i._writable;if(x._state==="erroring")throw x._storedError;return Bh(h,c)})}return Bh(h,c)}function gC(i,c){let h=i._transformStreamController;if(h._finishPromise!==void 0)return h._finishPromise;let k=i._readable;h._finishPromise=l((j,q)=>{h._finishPromise_resolve=j,h._finishPromise_reject=q});let x=h._cancelAlgorithm(c);return ui(h),m(x,()=>(k._state==="errored"?$r(h,k._storedError):(Mt(k._readableStreamController,c),ec(h)),null),j=>(Mt(k._readableStreamController,j),$r(h,j),null)),h._finishPromise}function yC(i){let c=i._transformStreamController;if(c._finishPromise!==void 0)return c._finishPromise;let h=i._readable;c._finishPromise=l((x,j)=>{c._finishPromise_resolve=x,c._finishPromise_reject=j});let k=c._flushAlgorithm();return ui(c),m(k,()=>(h._state==="errored"?$r(c,h._storedError):(cr(h._readableStreamController),ec(c)),null),x=>(Mt(h._readableStreamController,x),$r(c,x),null)),c._finishPromise}function _C(i){return ii(i,!1),i._backpressureChangePromise}function bC(i,c){let h=i._transformStreamController;if(h._finishPromise!==void 0)return h._finishPromise;let k=i._writable;h._finishPromise=l((j,q)=>{h._finishPromise_resolve=j,h._finishPromise_reject=q});let x=h._cancelAlgorithm(c);return ui(h),m(x,()=>(k._state==="errored"?$r(h,k._storedError):(No(k._writableStreamController,c),Zu(i),ec(h)),null),j=>(No(k._writableStreamController,j),Zu(i),$r(h,j),null)),h._finishPromise}function ci(i){return new TypeError(`TransformStreamDefaultController.prototype.${i} can only be used on a TransformStreamDefaultController`)}function ec(i){i._finishPromise_resolve!==void 0&&(i._finishPromise_resolve(),i._finishPromise_resolve=void 0,i._finishPromise_reject=void 0)}function $r(i,c){i._finishPromise_reject!==void 0&&(g(i._finishPromise),i._finishPromise_reject(c),i._finishPromise_resolve=void 0,i._finishPromise_reject=void 0)}function Mh(i){return new TypeError(`TransformStream.prototype.${i} can only be used on a TransformStream`)}t.ByteLengthQueuingStrategy=ri,t.CountQueuingStrategy=oi,t.ReadableByteStreamController=gn,t.ReadableStream=et,t.ReadableStreamBYOBReader=Ln,t.ReadableStreamBYOBRequest=rr,t.ReadableStreamDefaultController=_n,t.ReadableStreamDefaultReader=H,t.TransformStream=si,t.TransformStreamDefaultController=qn,t.WritableStream=jn,t.WritableStreamDefaultController=Lr,t.WritableStreamDefaultWriter=yn}))});var Bm=X(()=>{if(!globalThis.ReadableStream)try{let t=require("node:process"),{emitWarning:e}=t;try{t.emitWarning=()=>{},Object.assign(globalThis,require("node:stream/web")),t.emitWarning=e}catch(n){throw t.emitWarning=e,n}}catch{Object.assign(globalThis,Nm())}try{let{Blob:t}=require("buffer");t&&!t.prototype.stream&&(t.prototype.stream=function(n){let r=0,o=this;return new ReadableStream({type:"bytes",async pull(s){let u=await o.slice(r,Math.min(o.size,r+65536)).arrayBuffer();r+=u.byteLength,s.enqueue(new Uint8Array(u)),r===o.size&&s.close()}})})}catch{}});async function*Hc(t,e=!0){for(let n of t)if("stream"in n)yield*n.stream();else if(ArrayBuffer.isView(n))if(e){let r=n.byteOffset,o=n.byteOffset+n.byteLength;for(;r!==o;){let s=Math.min(o-r,Mm),a=n.buffer.slice(r,r+s);r+=a.byteLength,yield new Uint8Array(a)}}else yield n;else{let r=0,o=n;for(;r!==o.size;){let a=await o.slice(r,Math.min(o.size,r+Mm)).arrayBuffer();r+=a.byteLength,yield new Uint8Array(a)}}}var Kx,Mm,Lm,mE,zt,Vo=Le(()=>{Kx=xe(Bm(),1);Mm=65536;Lm=class Wc{#e=[];#t="";#n=0;#r="transparent";constructor(e=[],n={}){if(typeof e!="object"||e===null)throw new TypeError("Failed to construct 'Blob': The provided value cannot be converted to a sequence.");if(typeof e[Symbol.iterator]!="function")throw new TypeError("Failed to construct 'Blob': The object must have a callable @@iterator property.");if(typeof n!="object"&&typeof n!="function")throw new TypeError("Failed to construct 'Blob': parameter 2 cannot convert to dictionary.");n===null&&(n={});let r=new TextEncoder;for(let s of e){let a;ArrayBuffer.isView(s)?a=new Uint8Array(s.buffer.slice(s.byteOffset,s.byteOffset+s.byteLength)):s instanceof ArrayBuffer?a=new Uint8Array(s.slice(0)):s instanceof Wc?a=s:a=r.encode(`${s}`),this.#n+=ArrayBuffer.isView(a)?a.byteLength:a.size,this.#e.push(a)}this.#r=`${n.endings===void 0?"transparent":n.endings}`;let o=n.type===void 0?"":String(n.type);this.#t=/^[\x20-\x7E]*$/.test(o)?o:""}get size(){return this.#n}get type(){return this.#t}async text(){let e=new TextDecoder,n="";for await(let r of Hc(this.#e,!1))n+=e.decode(r,{stream:!0});return n+=e.decode(),n}async arrayBuffer(){let e=new Uint8Array(this.size),n=0;for await(let r of Hc(this.#e,!1))e.set(r,n),n+=r.length;return e.buffer}stream(){let e=Hc(this.#e,!0);return new globalThis.ReadableStream({type:"bytes",async pull(n){let r=await e.next();r.done?n.close():n.enqueue(r.value)},async cancel(){await e.return()}})}slice(e=0,n=this.size,r=""){let{size:o}=this,s=e<0?Math.max(o+e,0):Math.min(e,o),a=n<0?Math.max(o+n,0):Math.min(n,o),u=Math.max(a-s,0),l=this.#e,d=[],f=0;for(let m of l){if(f>=u)break;let b=ArrayBuffer.isView(m)?m.byteLength:m.size;if(s&&b<=s)s-=b,a-=b;else{let w;ArrayBuffer.isView(m)?(w=m.subarray(s,Math.min(b,a)),f+=w.byteLength):(w=m.slice(s,Math.min(b,a)),f+=w.size),a-=b,d.push(w),s=0}}let p=new Wc([],{type:String(r).toLowerCase()});return p.#n=u,p.#e=d,p}get[Symbol.toStringTag](){return"Blob"}static[Symbol.hasInstance](e){return e&&typeof e=="object"&&typeof e.constructor=="function"&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}};Object.defineProperties(Lm.prototype,{size:{enumerable:!0},type:{enumerable:!0},slice:{enumerable:!0}});mE=Lm,zt=mE});var gE,yE,Jn,Gc=Le(()=>{Vo();gE=class extends zt{#e=0;#t="";constructor(e,n,r={}){if(arguments.length<2)throw new TypeError(`Failed to construct 'File': 2 arguments required, but only ${arguments.length} present.`);super(e,r),r===null&&(r={});let o=r.lastModified===void 0?Date.now():Number(r.lastModified);Number.isNaN(o)||(this.#e=o),this.#t=String(n)}get name(){return this.#t}get lastModified(){return this.#e}get[Symbol.toStringTag](){return"File"}static[Symbol.hasInstance](e){return!!e&&e instanceof zt&&/^(File)$/.test(e[Symbol.toStringTag])}},yE=gE,Jn=yE});function $m(t,e=zt){var n=`${jm()}${jm()}`.replace(/\./g,"").slice(-28).padStart(32,"-"),r=[],o=`--${n}\r
|
|
27
|
-
Content-Disposition: form-data; name="`;return t.forEach((s,a)=>typeof s=="string"?r.push(o+
|
|
25
|
+
`;let l=(0,hE.parseProxyResponse)(o);o.write(`${u}\r
|
|
26
|
+
`);let{connect:d,buffered:f}=await l;if(e.emit("proxyConnect",d),this.emit("proxyConnect",d,e),d.statusCode===200)return e.once("socket",pE),n.secureEndpoint?(Jo("Upgrading socket connection to TLS"),vm.connect({...Dm(Tm(n),"host","path","port"),socket:o})):o;o.destroy();let p=new Gi.Socket({writable:!1});return p.readable=!0,e.once("socket",m=>{Jo("Replaying proxy buffer for failed request"),(0,cE.default)(m.listenerCount("data")>0),m.push(f),m.push(null)}),p}};Ji.protocols=["http","https"];Rt.HttpsProxyAgent=Ji;function pE(t){t.resume()}function Dm(t,...e){let n={},r;for(r in t)e.includes(r)||(n[r]=t[r]);return n}});function mE(t){if(!/^data:/i.test(t))throw new TypeError('`uri` does not appear to be a Data URI (must begin with "data:")');t=t.replace(/\r?\n/g,"");let e=t.indexOf(",");if(e===-1||e<=4)throw new TypeError("malformed data: URI");let n=t.substring(5,e).split(";"),r="",o=!1,s=n[0]||"text/plain",a=s;for(let f=1;f<n.length;f++)n[f]==="base64"?o=!0:n[f]&&(a+=`;${n[f]}`,n[f].indexOf("charset=")===0&&(r=n[f].substring(8)));!n[0]&&!r.length&&(a+=";charset=US-ASCII",r="US-ASCII");let u=o?"base64":"ascii",l=unescape(t.substring(e+1)),d=Buffer.from(l,u);return d.type=s,d.typeFull=a,d.charset=r,d}var Pm,Fm=Le(()=>{Pm=mE});var Nm=X((Vi,Im)=>{(function(t,e){typeof Vi=="object"&&typeof Im<"u"?e(Vi):typeof define=="function"&&define.amd?define(["exports"],e):(t=typeof globalThis<"u"?globalThis:t||self,e(t.WebStreamsPolyfill={}))})(Vi,(function(t){"use strict";function e(){}function n(i){return typeof i=="object"&&i!==null||typeof i=="function"}let r=e;function o(i,c){try{Object.defineProperty(i,"name",{value:c,configurable:!0})}catch{}}let s=Promise,a=Promise.prototype.then,u=Promise.reject.bind(s);function l(i){return new s(i)}function d(i){return l(c=>c(i))}function f(i){return u(i)}function p(i,c,h){return a.call(i,c,h)}function m(i,c,h){p(p(i,c,h),void 0,r)}function b(i,c){m(i,c)}function w(i,c){m(i,void 0,c)}function y(i,c,h){return p(i,c,h)}function g(i){p(i,void 0,r)}let _=i=>{if(typeof queueMicrotask=="function")_=queueMicrotask;else{let c=d(void 0);_=h=>p(c,h)}return _(i)};function A(i,c,h){if(typeof i!="function")throw new TypeError("Argument is not a function");return Function.prototype.apply.call(i,c,h)}function C(i,c,h){try{return d(A(i,c,h))}catch(k){return f(k)}}let S=16384;class T{constructor(){this._cursor=0,this._size=0,this._front={_elements:[],_next:void 0},this._back=this._front,this._cursor=0,this._size=0}get length(){return this._size}push(c){let h=this._back,k=h;h._elements.length===S-1&&(k={_elements:[],_next:void 0}),h._elements.push(c),k!==h&&(this._back=k,h._next=k),++this._size}shift(){let c=this._front,h=c,k=this._cursor,x=k+1,j=c._elements,q=j[k];return x===S&&(h=c._next,x=0),--this._size,this._cursor=x,c!==h&&(this._front=h),j[k]=void 0,q}forEach(c){let h=this._cursor,k=this._front,x=k._elements;for(;(h!==x.length||k._next!==void 0)&&!(h===x.length&&(k=k._next,x=k._elements,h=0,x.length===0));)c(x[h]),++h}peek(){let c=this._front,h=this._cursor;return c._elements[h]}}let R=Symbol("[[AbortSteps]]"),$=Symbol("[[ErrorSteps]]"),V=Symbol("[[CancelSteps]]"),P=Symbol("[[PullSteps]]"),Y=Symbol("[[ReleaseSteps]]");function z(i,c){i._ownerReadableStream=c,c._reader=i,c._state==="readable"?ie(i):c._state==="closed"?pe(i):oe(i,c._storedError)}function K(i,c){let h=i._ownerReadableStream;return Lt(h,c)}function Q(i){let c=i._ownerReadableStream;c._state==="readable"?G(i,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")):Z(i,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")),c._readableStreamController[Y](),c._reader=void 0,i._ownerReadableStream=void 0}function ee(i){return new TypeError("Cannot "+i+" a stream using a released reader")}function ie(i){i._closedPromise=l((c,h)=>{i._closedPromise_resolve=c,i._closedPromise_reject=h})}function oe(i,c){ie(i),G(i,c)}function pe(i){ie(i),se(i)}function G(i,c){i._closedPromise_reject!==void 0&&(g(i._closedPromise),i._closedPromise_reject(c),i._closedPromise_resolve=void 0,i._closedPromise_reject=void 0)}function Z(i,c){oe(i,c)}function se(i){i._closedPromise_resolve!==void 0&&(i._closedPromise_resolve(void 0),i._closedPromise_resolve=void 0,i._closedPromise_reject=void 0)}let Ue=Number.isFinite||function(i){return typeof i=="number"&&isFinite(i)},ke=Math.trunc||function(i){return i<0?Math.ceil(i):Math.floor(i)};function J(i){return typeof i=="object"||typeof i=="function"}function ue(i,c){if(i!==void 0&&!J(i))throw new TypeError(`${c} is not an object.`)}function te(i,c){if(typeof i!="function")throw new TypeError(`${c} is not a function.`)}function ve(i){return typeof i=="object"&&i!==null||typeof i=="function"}function Oe(i,c){if(!ve(i))throw new TypeError(`${c} is not an object.`)}function je(i,c,h){if(i===void 0)throw new TypeError(`Parameter ${c} is required in '${h}'.`)}function E(i,c,h){if(i===void 0)throw new TypeError(`${c} is required in '${h}'.`)}function v(i){return Number(i)}function D(i){return i===0?0:i}function M(i){return D(ke(i))}function F(i,c){let k=Number.MAX_SAFE_INTEGER,x=Number(i);if(x=D(x),!Ue(x))throw new TypeError(`${c} is not a finite number`);if(x=M(x),x<0||x>k)throw new TypeError(`${c} is outside the accepted range of 0 to ${k}, inclusive`);return!Ue(x)||x===0?0:x}function N(i,c){if(!Un(i))throw new TypeError(`${c} is not a ReadableStream.`)}function U(i){return new H(i)}function O(i,c){i._reader._readRequests.push(c)}function I(i,c,h){let x=i._reader._readRequests.shift();h?x._closeSteps():x._chunkSteps(c)}function L(i){return i._reader._readRequests.length}function B(i){let c=i._reader;return!(c===void 0||!re(c))}class H{constructor(c){if(je(c,1,"ReadableStreamDefaultReader"),N(c,"First parameter"),$n(c))throw new TypeError("This stream has already been locked for exclusive reading by another reader");z(this,c),this._readRequests=new T}get closed(){return re(this)?this._closedPromise:f(Me("closed"))}cancel(c=void 0){return re(this)?this._ownerReadableStream===void 0?f(ee("cancel")):K(this,c):f(Me("cancel"))}read(){if(!re(this))return f(Me("read"));if(this._ownerReadableStream===void 0)return f(ee("read from"));let c,h,k=l((j,q)=>{c=j,h=q});return ae(this,{_chunkSteps:j=>c({value:j,done:!1}),_closeSteps:()=>c({value:void 0,done:!0}),_errorSteps:j=>h(j)}),k}releaseLock(){if(!re(this))throw Me("releaseLock");this._ownerReadableStream!==void 0&&Ae(this)}}Object.defineProperties(H.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),o(H.prototype.cancel,"cancel"),o(H.prototype.read,"read"),o(H.prototype.releaseLock,"releaseLock"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(H.prototype,Symbol.toStringTag,{value:"ReadableStreamDefaultReader",configurable:!0});function re(i){return!n(i)||!Object.prototype.hasOwnProperty.call(i,"_readRequests")?!1:i instanceof H}function ae(i,c){let h=i._ownerReadableStream;h._disturbed=!0,h._state==="closed"?c._closeSteps():h._state==="errored"?c._errorSteps(h._storedError):h._readableStreamController[P](c)}function Ae(i){Q(i);let c=new TypeError("Reader was released");Ie(i,c)}function Ie(i,c){let h=i._readRequests;i._readRequests=new T,h.forEach(k=>{k._errorSteps(c)})}function Me(i){return new TypeError(`ReadableStreamDefaultReader.prototype.${i} can only be used on a ReadableStreamDefaultReader`)}let Ee=Object.getPrototypeOf(Object.getPrototypeOf(async function*(){}).prototype);class Se{constructor(c,h){this._ongoingPromise=void 0,this._isFinished=!1,this._reader=c,this._preventCancel=h}next(){let c=()=>this._nextSteps();return this._ongoingPromise=this._ongoingPromise?y(this._ongoingPromise,c,c):c(),this._ongoingPromise}return(c){let h=()=>this._returnSteps(c);return this._ongoingPromise?y(this._ongoingPromise,h,h):h()}_nextSteps(){if(this._isFinished)return Promise.resolve({value:void 0,done:!0});let c=this._reader,h,k,x=l((q,ne)=>{h=q,k=ne});return ae(c,{_chunkSteps:q=>{this._ongoingPromise=void 0,_(()=>h({value:q,done:!1}))},_closeSteps:()=>{this._ongoingPromise=void 0,this._isFinished=!0,Q(c),h({value:void 0,done:!0})},_errorSteps:q=>{this._ongoingPromise=void 0,this._isFinished=!0,Q(c),k(q)}}),x}_returnSteps(c){if(this._isFinished)return Promise.resolve({value:c,done:!0});this._isFinished=!0;let h=this._reader;if(!this._preventCancel){let k=K(h,c);return Q(h),y(k,()=>({value:c,done:!0}))}return Q(h),d({value:c,done:!0})}}let qe={next(){return Fr(this)?this._asyncIteratorImpl.next():f(Ir("next"))},return(i){return Fr(this)?this._asyncIteratorImpl.return(i):f(Ir("return"))}};Object.setPrototypeOf(qe,Ee);function Pr(i,c){let h=U(i),k=new Se(h,c),x=Object.create(qe);return x._asyncIteratorImpl=k,x}function Fr(i){if(!n(i)||!Object.prototype.hasOwnProperty.call(i,"_asyncIteratorImpl"))return!1;try{return i._asyncIteratorImpl instanceof Se}catch{return!1}}function Ir(i){return new TypeError(`ReadableStreamAsyncIterator.${i} can only be used on a ReadableSteamAsyncIterator`)}let ft=Number.isNaN||function(i){return i!==i};var pn,Ze,ze;function Te(i){return i.slice()}function Lf(i,c,h,k,x){new Uint8Array(i).set(new Uint8Array(h,k,x),c)}let mn=i=>(typeof i.transfer=="function"?mn=c=>c.transfer():typeof structuredClone=="function"?mn=c=>structuredClone(c,{transfer:[c]}):mn=c=>c,mn(i)),Bn=i=>(typeof i.detached=="boolean"?Bn=c=>c.detached:Bn=c=>c.byteLength===0,Bn(i));function jf(i,c,h){if(i.slice)return i.slice(c,h);let k=h-c,x=new ArrayBuffer(k);return Lf(x,0,i,c,k),x}function Ls(i,c){let h=i[c];if(h!=null){if(typeof h!="function")throw new TypeError(`${String(c)} is not a function`);return h}}function U_(i){let c={[Symbol.iterator]:()=>i.iterator},h=(async function*(){return yield*c})(),k=h.next;return{iterator:h,nextMethod:k,done:!1}}let xu=(ze=(pn=Symbol.asyncIterator)!==null&&pn!==void 0?pn:(Ze=Symbol.for)===null||Ze===void 0?void 0:Ze.call(Symbol,"Symbol.asyncIterator"))!==null&&ze!==void 0?ze:"@@asyncIterator";function Uf(i,c="sync",h){if(h===void 0)if(c==="async"){if(h=Ls(i,xu),h===void 0){let j=Ls(i,Symbol.iterator),q=Uf(i,"sync",j);return U_(q)}}else h=Ls(i,Symbol.iterator);if(h===void 0)throw new TypeError("The object is not iterable");let k=A(h,i,[]);if(!n(k))throw new TypeError("The iterator method must return an object");let x=k.next;return{iterator:k,nextMethod:x,done:!1}}function $_(i){let c=A(i.nextMethod,i.iterator,[]);if(!n(c))throw new TypeError("The iterator.next() method must return an object");return c}function q_(i){return!!i.done}function z_(i){return i.value}function H_(i){return!(typeof i!="number"||ft(i)||i<0)}function $f(i){let c=jf(i.buffer,i.byteOffset,i.byteOffset+i.byteLength);return new Uint8Array(c)}function Ou(i){let c=i._queue.shift();return i._queueTotalSize-=c.size,i._queueTotalSize<0&&(i._queueTotalSize=0),c.value}function Pu(i,c,h){if(!H_(h)||h===1/0)throw new RangeError("Size must be a finite, non-NaN, non-negative number.");i._queue.push({value:c,size:h}),i._queueTotalSize+=h}function W_(i){return i._queue.peek().value}function Mn(i){i._queue=new T,i._queueTotalSize=0}function qf(i){return i===DataView}function G_(i){return qf(i.constructor)}function J_(i){return qf(i)?1:i.BYTES_PER_ELEMENT}class rr{constructor(){throw new TypeError("Illegal constructor")}get view(){if(!Fu(this))throw Lu("view");return this._view}respond(c){if(!Fu(this))throw Lu("respond");if(je(c,1,"respond"),c=F(c,"First parameter"),this._associatedReadableByteStreamController===void 0)throw new TypeError("This BYOB request has been invalidated");if(Bn(this._view.buffer))throw new TypeError("The BYOB request's buffer has been detached and so cannot be used as a response");qs(this._associatedReadableByteStreamController,c)}respondWithNewView(c){if(!Fu(this))throw Lu("respondWithNewView");if(je(c,1,"respondWithNewView"),!ArrayBuffer.isView(c))throw new TypeError("You can only respond with array buffer views");if(this._associatedReadableByteStreamController===void 0)throw new TypeError("This BYOB request has been invalidated");if(Bn(c.buffer))throw new TypeError("The given view's buffer has been detached and so cannot be used as a response");zs(this._associatedReadableByteStreamController,c)}}Object.defineProperties(rr.prototype,{respond:{enumerable:!0},respondWithNewView:{enumerable:!0},view:{enumerable:!0}}),o(rr.prototype.respond,"respond"),o(rr.prototype.respondWithNewView,"respondWithNewView"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(rr.prototype,Symbol.toStringTag,{value:"ReadableStreamBYOBRequest",configurable:!0});class gn{constructor(){throw new TypeError("Illegal constructor")}get byobRequest(){if(!or(this))throw Fo("byobRequest");return Mu(this)}get desiredSize(){if(!or(this))throw Fo("desiredSize");return Xf(this)}close(){if(!or(this))throw Fo("close");if(this._closeRequested)throw new TypeError("The stream has already been closed; do not close it again!");let c=this._controlledReadableByteStream._state;if(c!=="readable")throw new TypeError(`The stream (in ${c} state) is not in the readable state and cannot be closed`);Po(this)}enqueue(c){if(!or(this))throw Fo("enqueue");if(je(c,1,"enqueue"),!ArrayBuffer.isView(c))throw new TypeError("chunk must be an array buffer view");if(c.byteLength===0)throw new TypeError("chunk must have non-zero byteLength");if(c.buffer.byteLength===0)throw new TypeError("chunk's buffer must have non-zero byteLength");if(this._closeRequested)throw new TypeError("stream is closed or draining");let h=this._controlledReadableByteStream._state;if(h!=="readable")throw new TypeError(`The stream (in ${h} state) is not in the readable state and cannot be enqueued to`);$s(this,c)}error(c=void 0){if(!or(this))throw Fo("error");St(this,c)}[V](c){zf(this),Mn(this);let h=this._cancelAlgorithm(c);return Us(this),h}[P](c){let h=this._controlledReadableByteStream;if(this._queueTotalSize>0){Qf(this,c);return}let k=this._autoAllocateChunkSize;if(k!==void 0){let x;try{x=new ArrayBuffer(k)}catch(q){c._errorSteps(q);return}let j={buffer:x,bufferByteLength:k,byteOffset:0,byteLength:k,bytesFilled:0,minimumFill:1,elementSize:1,viewConstructor:Uint8Array,readerType:"default"};this._pendingPullIntos.push(j)}O(h,c),sr(this)}[Y](){if(this._pendingPullIntos.length>0){let c=this._pendingPullIntos.peek();c.readerType="none",this._pendingPullIntos=new T,this._pendingPullIntos.push(c)}}}Object.defineProperties(gn.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},byobRequest:{enumerable:!0},desiredSize:{enumerable:!0}}),o(gn.prototype.close,"close"),o(gn.prototype.enqueue,"enqueue"),o(gn.prototype.error,"error"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(gn.prototype,Symbol.toStringTag,{value:"ReadableByteStreamController",configurable:!0});function or(i){return!n(i)||!Object.prototype.hasOwnProperty.call(i,"_controlledReadableByteStream")?!1:i instanceof gn}function Fu(i){return!n(i)||!Object.prototype.hasOwnProperty.call(i,"_associatedReadableByteStreamController")?!1:i instanceof rr}function sr(i){if(!X_(i))return;if(i._pulling){i._pullAgain=!0;return}i._pulling=!0;let h=i._pullAlgorithm();m(h,()=>(i._pulling=!1,i._pullAgain&&(i._pullAgain=!1,sr(i)),null),k=>(St(i,k),null))}function zf(i){Nu(i),i._pendingPullIntos=new T}function Iu(i,c){let h=!1;i._state==="closed"&&(h=!0);let k=Hf(c);c.readerType==="default"?I(i,k,h):ob(i,k,h)}function Hf(i){let c=i.bytesFilled,h=i.elementSize;return new i.viewConstructor(i.buffer,i.byteOffset,c/h)}function js(i,c,h,k){i._queue.push({buffer:c,byteOffset:h,byteLength:k}),i._queueTotalSize+=k}function Wf(i,c,h,k){let x;try{x=jf(c,h,h+k)}catch(j){throw St(i,j),j}js(i,x,0,k)}function Gf(i,c){c.bytesFilled>0&&Wf(i,c.buffer,c.byteOffset,c.bytesFilled),Nr(i)}function Jf(i,c){let h=Math.min(i._queueTotalSize,c.byteLength-c.bytesFilled),k=c.bytesFilled+h,x=h,j=!1,q=k%c.elementSize,ne=k-q;ne>=c.minimumFill&&(x=ne-c.bytesFilled,j=!0);let he=i._queue;for(;x>0;){let le=he.peek(),me=Math.min(x,le.byteLength),be=c.byteOffset+c.bytesFilled;Lf(c.buffer,be,le.buffer,le.byteOffset,me),le.byteLength===me?he.shift():(le.byteOffset+=me,le.byteLength-=me),i._queueTotalSize-=me,Vf(i,me,c),x-=me}return j}function Vf(i,c,h){h.bytesFilled+=c}function Kf(i){i._queueTotalSize===0&&i._closeRequested?(Us(i),jo(i._controlledReadableByteStream)):sr(i)}function Nu(i){i._byobRequest!==null&&(i._byobRequest._associatedReadableByteStreamController=void 0,i._byobRequest._view=null,i._byobRequest=null)}function Bu(i){for(;i._pendingPullIntos.length>0;){if(i._queueTotalSize===0)return;let c=i._pendingPullIntos.peek();Jf(i,c)&&(Nr(i),Iu(i._controlledReadableByteStream,c))}}function V_(i){let c=i._controlledReadableByteStream._reader;for(;c._readRequests.length>0;){if(i._queueTotalSize===0)return;let h=c._readRequests.shift();Qf(i,h)}}function K_(i,c,h,k){let x=i._controlledReadableByteStream,j=c.constructor,q=J_(j),{byteOffset:ne,byteLength:he}=c,le=h*q,me;try{me=mn(c.buffer)}catch(Re){k._errorSteps(Re);return}let be={buffer:me,bufferByteLength:me.byteLength,byteOffset:ne,byteLength:he,bytesFilled:0,minimumFill:le,elementSize:q,viewConstructor:j,readerType:"byob"};if(i._pendingPullIntos.length>0){i._pendingPullIntos.push(be),th(x,k);return}if(x._state==="closed"){let Re=new j(be.buffer,be.byteOffset,0);k._closeSteps(Re);return}if(i._queueTotalSize>0){if(Jf(i,be)){let Re=Hf(be);Kf(i),k._chunkSteps(Re);return}if(i._closeRequested){let Re=new TypeError("Insufficient bytes to fill elements in the given buffer");St(i,Re),k._errorSteps(Re);return}}i._pendingPullIntos.push(be),th(x,k),sr(i)}function Y_(i,c){c.readerType==="none"&&Nr(i);let h=i._controlledReadableByteStream;if(ju(h))for(;nh(h)>0;){let k=Nr(i);Iu(h,k)}}function Q_(i,c,h){if(Vf(i,c,h),h.readerType==="none"){Gf(i,h),Bu(i);return}if(h.bytesFilled<h.minimumFill)return;Nr(i);let k=h.bytesFilled%h.elementSize;if(k>0){let x=h.byteOffset+h.bytesFilled;Wf(i,h.buffer,x-k,k)}h.bytesFilled-=k,Iu(i._controlledReadableByteStream,h),Bu(i)}function Yf(i,c){let h=i._pendingPullIntos.peek();Nu(i),i._controlledReadableByteStream._state==="closed"?Y_(i,h):Q_(i,c,h),sr(i)}function Nr(i){return i._pendingPullIntos.shift()}function X_(i){let c=i._controlledReadableByteStream;return c._state!=="readable"||i._closeRequested||!i._started?!1:!!(B(c)&&L(c)>0||ju(c)&&nh(c)>0||Xf(i)>0)}function Us(i){i._pullAlgorithm=void 0,i._cancelAlgorithm=void 0}function Po(i){let c=i._controlledReadableByteStream;if(!(i._closeRequested||c._state!=="readable")){if(i._queueTotalSize>0){i._closeRequested=!0;return}if(i._pendingPullIntos.length>0){let h=i._pendingPullIntos.peek();if(h.bytesFilled%h.elementSize!==0){let k=new TypeError("Insufficient bytes to fill elements in the given buffer");throw St(i,k),k}}Us(i),jo(c)}}function $s(i,c){let h=i._controlledReadableByteStream;if(i._closeRequested||h._state!=="readable")return;let{buffer:k,byteOffset:x,byteLength:j}=c;if(Bn(k))throw new TypeError("chunk's buffer is detached and so cannot be enqueued");let q=mn(k);if(i._pendingPullIntos.length>0){let ne=i._pendingPullIntos.peek();if(Bn(ne.buffer))throw new TypeError("The BYOB request's buffer has been detached and so cannot be filled with an enqueued chunk");Nu(i),ne.buffer=mn(ne.buffer),ne.readerType==="none"&&Gf(i,ne)}if(B(h))if(V_(i),L(h)===0)js(i,q,x,j);else{i._pendingPullIntos.length>0&&Nr(i);let ne=new Uint8Array(q,x,j);I(h,ne,!1)}else ju(h)?(js(i,q,x,j),Bu(i)):js(i,q,x,j);sr(i)}function St(i,c){let h=i._controlledReadableByteStream;h._state==="readable"&&(zf(i),Mn(i),Us(i),vh(h,c))}function Qf(i,c){let h=i._queue.shift();i._queueTotalSize-=h.byteLength,Kf(i);let k=new Uint8Array(h.buffer,h.byteOffset,h.byteLength);c._chunkSteps(k)}function Mu(i){if(i._byobRequest===null&&i._pendingPullIntos.length>0){let c=i._pendingPullIntos.peek(),h=new Uint8Array(c.buffer,c.byteOffset+c.bytesFilled,c.byteLength-c.bytesFilled),k=Object.create(rr.prototype);eb(k,i,h),i._byobRequest=k}return i._byobRequest}function Xf(i){let c=i._controlledReadableByteStream._state;return c==="errored"?null:c==="closed"?0:i._strategyHWM-i._queueTotalSize}function qs(i,c){let h=i._pendingPullIntos.peek();if(i._controlledReadableByteStream._state==="closed"){if(c!==0)throw new TypeError("bytesWritten must be 0 when calling respond() on a closed stream")}else{if(c===0)throw new TypeError("bytesWritten must be greater than 0 when calling respond() on a readable stream");if(h.bytesFilled+c>h.byteLength)throw new RangeError("bytesWritten out of range")}h.buffer=mn(h.buffer),Yf(i,c)}function zs(i,c){let h=i._pendingPullIntos.peek();if(i._controlledReadableByteStream._state==="closed"){if(c.byteLength!==0)throw new TypeError("The view's length must be 0 when calling respondWithNewView() on a closed stream")}else if(c.byteLength===0)throw new TypeError("The view's length must be greater than 0 when calling respondWithNewView() on a readable stream");if(h.byteOffset+h.bytesFilled!==c.byteOffset)throw new RangeError("The region specified by view does not match byobRequest");if(h.bufferByteLength!==c.buffer.byteLength)throw new RangeError("The buffer of view has different capacity than byobRequest");if(h.bytesFilled+c.byteLength>h.byteLength)throw new RangeError("The region specified by view is larger than byobRequest");let x=c.byteLength;h.buffer=mn(c.buffer),Yf(i,x)}function Zf(i,c,h,k,x,j,q){c._controlledReadableByteStream=i,c._pullAgain=!1,c._pulling=!1,c._byobRequest=null,c._queue=c._queueTotalSize=void 0,Mn(c),c._closeRequested=!1,c._started=!1,c._strategyHWM=j,c._pullAlgorithm=k,c._cancelAlgorithm=x,c._autoAllocateChunkSize=q,c._pendingPullIntos=new T,i._readableStreamController=c;let ne=h();m(d(ne),()=>(c._started=!0,sr(c),null),he=>(St(c,he),null))}function Z_(i,c,h){let k=Object.create(gn.prototype),x,j,q;c.start!==void 0?x=()=>c.start(k):x=()=>{},c.pull!==void 0?j=()=>c.pull(k):j=()=>d(void 0),c.cancel!==void 0?q=he=>c.cancel(he):q=()=>d(void 0);let ne=c.autoAllocateChunkSize;if(ne===0)throw new TypeError("autoAllocateChunkSize must be greater than 0");Zf(i,k,x,j,q,h,ne)}function eb(i,c,h){i._associatedReadableByteStreamController=c,i._view=h}function Lu(i){return new TypeError(`ReadableStreamBYOBRequest.prototype.${i} can only be used on a ReadableStreamBYOBRequest`)}function Fo(i){return new TypeError(`ReadableByteStreamController.prototype.${i} can only be used on a ReadableByteStreamController`)}function tb(i,c){ue(i,c);let h=i?.mode;return{mode:h===void 0?void 0:nb(h,`${c} has member 'mode' that`)}}function nb(i,c){if(i=`${i}`,i!=="byob")throw new TypeError(`${c} '${i}' is not a valid enumeration value for ReadableStreamReaderMode`);return i}function rb(i,c){var h;ue(i,c);let k=(h=i?.min)!==null&&h!==void 0?h:1;return{min:F(k,`${c} has member 'min' that`)}}function eh(i){return new Ln(i)}function th(i,c){i._reader._readIntoRequests.push(c)}function ob(i,c,h){let x=i._reader._readIntoRequests.shift();h?x._closeSteps(c):x._chunkSteps(c)}function nh(i){return i._reader._readIntoRequests.length}function ju(i){let c=i._reader;return!(c===void 0||!ir(c))}class Ln{constructor(c){if(je(c,1,"ReadableStreamBYOBReader"),N(c,"First parameter"),$n(c))throw new TypeError("This stream has already been locked for exclusive reading by another reader");if(!or(c._readableStreamController))throw new TypeError("Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source");z(this,c),this._readIntoRequests=new T}get closed(){return ir(this)?this._closedPromise:f(Hs("closed"))}cancel(c=void 0){return ir(this)?this._ownerReadableStream===void 0?f(ee("cancel")):K(this,c):f(Hs("cancel"))}read(c,h={}){if(!ir(this))return f(Hs("read"));if(!ArrayBuffer.isView(c))return f(new TypeError("view must be an array buffer view"));if(c.byteLength===0)return f(new TypeError("view must have non-zero byteLength"));if(c.buffer.byteLength===0)return f(new TypeError("view's buffer must have non-zero byteLength"));if(Bn(c.buffer))return f(new TypeError("view's buffer has been detached"));let k;try{k=rb(h,"options")}catch(le){return f(le)}let x=k.min;if(x===0)return f(new TypeError("options.min must be greater than 0"));if(G_(c)){if(x>c.byteLength)return f(new RangeError("options.min must be less than or equal to view's byteLength"))}else if(x>c.length)return f(new RangeError("options.min must be less than or equal to view's length"));if(this._ownerReadableStream===void 0)return f(ee("read from"));let j,q,ne=l((le,me)=>{j=le,q=me});return rh(this,c,x,{_chunkSteps:le=>j({value:le,done:!1}),_closeSteps:le=>j({value:le,done:!0}),_errorSteps:le=>q(le)}),ne}releaseLock(){if(!ir(this))throw Hs("releaseLock");this._ownerReadableStream!==void 0&&sb(this)}}Object.defineProperties(Ln.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),o(Ln.prototype.cancel,"cancel"),o(Ln.prototype.read,"read"),o(Ln.prototype.releaseLock,"releaseLock"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Ln.prototype,Symbol.toStringTag,{value:"ReadableStreamBYOBReader",configurable:!0});function ir(i){return!n(i)||!Object.prototype.hasOwnProperty.call(i,"_readIntoRequests")?!1:i instanceof Ln}function rh(i,c,h,k){let x=i._ownerReadableStream;x._disturbed=!0,x._state==="errored"?k._errorSteps(x._storedError):K_(x._readableStreamController,c,h,k)}function sb(i){Q(i);let c=new TypeError("Reader was released");oh(i,c)}function oh(i,c){let h=i._readIntoRequests;i._readIntoRequests=new T,h.forEach(k=>{k._errorSteps(c)})}function Hs(i){return new TypeError(`ReadableStreamBYOBReader.prototype.${i} can only be used on a ReadableStreamBYOBReader`)}function Io(i,c){let{highWaterMark:h}=i;if(h===void 0)return c;if(ft(h)||h<0)throw new RangeError("Invalid highWaterMark");return h}function Ws(i){let{size:c}=i;return c||(()=>1)}function Gs(i,c){ue(i,c);let h=i?.highWaterMark,k=i?.size;return{highWaterMark:h===void 0?void 0:v(h),size:k===void 0?void 0:ib(k,`${c} has member 'size' that`)}}function ib(i,c){return te(i,c),h=>v(i(h))}function ab(i,c){ue(i,c);let h=i?.abort,k=i?.close,x=i?.start,j=i?.type,q=i?.write;return{abort:h===void 0?void 0:ub(h,i,`${c} has member 'abort' that`),close:k===void 0?void 0:cb(k,i,`${c} has member 'close' that`),start:x===void 0?void 0:lb(x,i,`${c} has member 'start' that`),write:q===void 0?void 0:db(q,i,`${c} has member 'write' that`),type:j}}function ub(i,c,h){return te(i,h),k=>C(i,c,[k])}function cb(i,c,h){return te(i,h),()=>C(i,c,[])}function lb(i,c,h){return te(i,h),k=>A(i,c,[k])}function db(i,c,h){return te(i,h),(k,x)=>C(i,c,[k,x])}function sh(i,c){if(!Br(i))throw new TypeError(`${c} is not a WritableStream.`)}function fb(i){if(typeof i!="object"||i===null)return!1;try{return typeof i.aborted=="boolean"}catch{return!1}}let hb=typeof AbortController=="function";function pb(){if(hb)return new AbortController}class jn{constructor(c={},h={}){c===void 0?c=null:Oe(c,"First parameter");let k=Gs(h,"Second parameter"),x=ab(c,"First parameter");if(ah(this),x.type!==void 0)throw new RangeError("Invalid type is specified");let q=Ws(k),ne=Io(k,1);Db(this,x,ne,q)}get locked(){if(!Br(this))throw Qs("locked");return Mr(this)}abort(c=void 0){return Br(this)?Mr(this)?f(new TypeError("Cannot abort a stream that already has a writer")):Js(this,c):f(Qs("abort"))}close(){return Br(this)?Mr(this)?f(new TypeError("Cannot close a stream that already has a writer")):Xt(this)?f(new TypeError("Cannot close an already-closing stream")):uh(this):f(Qs("close"))}getWriter(){if(!Br(this))throw Qs("getWriter");return ih(this)}}Object.defineProperties(jn.prototype,{abort:{enumerable:!0},close:{enumerable:!0},getWriter:{enumerable:!0},locked:{enumerable:!0}}),o(jn.prototype.abort,"abort"),o(jn.prototype.close,"close"),o(jn.prototype.getWriter,"getWriter"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(jn.prototype,Symbol.toStringTag,{value:"WritableStream",configurable:!0});function ih(i){return new yn(i)}function mb(i,c,h,k,x=1,j=()=>1){let q=Object.create(jn.prototype);ah(q);let ne=Object.create(Lr.prototype);return ph(q,ne,i,c,h,k,x,j),q}function ah(i){i._state="writable",i._storedError=void 0,i._writer=void 0,i._writableStreamController=void 0,i._writeRequests=new T,i._inFlightWriteRequest=void 0,i._closeRequest=void 0,i._inFlightCloseRequest=void 0,i._pendingAbortRequest=void 0,i._backpressure=!1}function Br(i){return!n(i)||!Object.prototype.hasOwnProperty.call(i,"_writableStreamController")?!1:i instanceof jn}function Mr(i){return i._writer!==void 0}function Js(i,c){var h;if(i._state==="closed"||i._state==="errored")return d(void 0);i._writableStreamController._abortReason=c,(h=i._writableStreamController._abortController)===null||h===void 0||h.abort(c);let k=i._state;if(k==="closed"||k==="errored")return d(void 0);if(i._pendingAbortRequest!==void 0)return i._pendingAbortRequest._promise;let x=!1;k==="erroring"&&(x=!0,c=void 0);let j=l((q,ne)=>{i._pendingAbortRequest={_promise:void 0,_resolve:q,_reject:ne,_reason:c,_wasAlreadyErroring:x}});return i._pendingAbortRequest._promise=j,x||$u(i,c),j}function uh(i){let c=i._state;if(c==="closed"||c==="errored")return f(new TypeError(`The stream (in ${c} state) is not in the writable state and cannot be closed`));let h=l((x,j)=>{let q={_resolve:x,_reject:j};i._closeRequest=q}),k=i._writer;return k!==void 0&&i._backpressure&&c==="writable"&&Ku(k),Rb(i._writableStreamController),h}function gb(i){return l((h,k)=>{let x={_resolve:h,_reject:k};i._writeRequests.push(x)})}function Uu(i,c){if(i._state==="writable"){$u(i,c);return}qu(i)}function $u(i,c){let h=i._writableStreamController;i._state="erroring",i._storedError=c;let k=i._writer;k!==void 0&&lh(k,c),!wb(i)&&h._started&&qu(i)}function qu(i){i._state="errored",i._writableStreamController[$]();let c=i._storedError;if(i._writeRequests.forEach(x=>{x._reject(c)}),i._writeRequests=new T,i._pendingAbortRequest===void 0){Vs(i);return}let h=i._pendingAbortRequest;if(i._pendingAbortRequest=void 0,h._wasAlreadyErroring){h._reject(c),Vs(i);return}let k=i._writableStreamController[R](h._reason);m(k,()=>(h._resolve(),Vs(i),null),x=>(h._reject(x),Vs(i),null))}function yb(i){i._inFlightWriteRequest._resolve(void 0),i._inFlightWriteRequest=void 0}function _b(i,c){i._inFlightWriteRequest._reject(c),i._inFlightWriteRequest=void 0,Uu(i,c)}function bb(i){i._inFlightCloseRequest._resolve(void 0),i._inFlightCloseRequest=void 0,i._state==="erroring"&&(i._storedError=void 0,i._pendingAbortRequest!==void 0&&(i._pendingAbortRequest._resolve(),i._pendingAbortRequest=void 0)),i._state="closed";let h=i._writer;h!==void 0&&_h(h)}function Cb(i,c){i._inFlightCloseRequest._reject(c),i._inFlightCloseRequest=void 0,i._pendingAbortRequest!==void 0&&(i._pendingAbortRequest._reject(c),i._pendingAbortRequest=void 0),Uu(i,c)}function Xt(i){return!(i._closeRequest===void 0&&i._inFlightCloseRequest===void 0)}function wb(i){return!(i._inFlightWriteRequest===void 0&&i._inFlightCloseRequest===void 0)}function Eb(i){i._inFlightCloseRequest=i._closeRequest,i._closeRequest=void 0}function kb(i){i._inFlightWriteRequest=i._writeRequests.shift()}function Vs(i){i._closeRequest!==void 0&&(i._closeRequest._reject(i._storedError),i._closeRequest=void 0);let c=i._writer;c!==void 0&&Ju(c,i._storedError)}function zu(i,c){let h=i._writer;h!==void 0&&c!==i._backpressure&&(c?Bb(h):Ku(h)),i._backpressure=c}class yn{constructor(c){if(je(c,1,"WritableStreamDefaultWriter"),sh(c,"First parameter"),Mr(c))throw new TypeError("This stream has already been locked for exclusive writing by another writer");this._ownerWritableStream=c,c._writer=this;let h=c._state;if(h==="writable")!Xt(c)&&c._backpressure?Zs(this):bh(this),Xs(this);else if(h==="erroring")Vu(this,c._storedError),Xs(this);else if(h==="closed")bh(this),Ib(this);else{let k=c._storedError;Vu(this,k),yh(this,k)}}get closed(){return ar(this)?this._closedPromise:f(ur("closed"))}get desiredSize(){if(!ar(this))throw ur("desiredSize");if(this._ownerWritableStream===void 0)throw Bo("desiredSize");return Tb(this)}get ready(){return ar(this)?this._readyPromise:f(ur("ready"))}abort(c=void 0){return ar(this)?this._ownerWritableStream===void 0?f(Bo("abort")):Ab(this,c):f(ur("abort"))}close(){if(!ar(this))return f(ur("close"));let c=this._ownerWritableStream;return c===void 0?f(Bo("close")):Xt(c)?f(new TypeError("Cannot close an already-closing stream")):ch(this)}releaseLock(){if(!ar(this))throw ur("releaseLock");this._ownerWritableStream!==void 0&&dh(this)}write(c=void 0){return ar(this)?this._ownerWritableStream===void 0?f(Bo("write to")):fh(this,c):f(ur("write"))}}Object.defineProperties(yn.prototype,{abort:{enumerable:!0},close:{enumerable:!0},releaseLock:{enumerable:!0},write:{enumerable:!0},closed:{enumerable:!0},desiredSize:{enumerable:!0},ready:{enumerable:!0}}),o(yn.prototype.abort,"abort"),o(yn.prototype.close,"close"),o(yn.prototype.releaseLock,"releaseLock"),o(yn.prototype.write,"write"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(yn.prototype,Symbol.toStringTag,{value:"WritableStreamDefaultWriter",configurable:!0});function ar(i){return!n(i)||!Object.prototype.hasOwnProperty.call(i,"_ownerWritableStream")?!1:i instanceof yn}function Ab(i,c){let h=i._ownerWritableStream;return Js(h,c)}function ch(i){let c=i._ownerWritableStream;return uh(c)}function Sb(i){let c=i._ownerWritableStream,h=c._state;return Xt(c)||h==="closed"?d(void 0):h==="errored"?f(c._storedError):ch(i)}function vb(i,c){i._closedPromiseState==="pending"?Ju(i,c):Nb(i,c)}function lh(i,c){i._readyPromiseState==="pending"?Ch(i,c):Mb(i,c)}function Tb(i){let c=i._ownerWritableStream,h=c._state;return h==="errored"||h==="erroring"?null:h==="closed"?0:mh(c._writableStreamController)}function dh(i){let c=i._ownerWritableStream,h=new TypeError("Writer was released and can no longer be used to monitor the stream's closedness");lh(i,h),vb(i,h),c._writer=void 0,i._ownerWritableStream=void 0}function fh(i,c){let h=i._ownerWritableStream,k=h._writableStreamController,x=xb(k,c);if(h!==i._ownerWritableStream)return f(Bo("write to"));let j=h._state;if(j==="errored")return f(h._storedError);if(Xt(h)||j==="closed")return f(new TypeError("The stream is closing or closed and cannot be written to"));if(j==="erroring")return f(h._storedError);let q=gb(h);return Ob(k,c,x),q}let hh={};class Lr{constructor(){throw new TypeError("Illegal constructor")}get abortReason(){if(!Hu(this))throw Gu("abortReason");return this._abortReason}get signal(){if(!Hu(this))throw Gu("signal");if(this._abortController===void 0)throw new TypeError("WritableStreamDefaultController.prototype.signal is not supported");return this._abortController.signal}error(c=void 0){if(!Hu(this))throw Gu("error");this._controlledWritableStream._state==="writable"&&gh(this,c)}[R](c){let h=this._abortAlgorithm(c);return Ks(this),h}[$](){Mn(this)}}Object.defineProperties(Lr.prototype,{abortReason:{enumerable:!0},signal:{enumerable:!0},error:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(Lr.prototype,Symbol.toStringTag,{value:"WritableStreamDefaultController",configurable:!0});function Hu(i){return!n(i)||!Object.prototype.hasOwnProperty.call(i,"_controlledWritableStream")?!1:i instanceof Lr}function ph(i,c,h,k,x,j,q,ne){c._controlledWritableStream=i,i._writableStreamController=c,c._queue=void 0,c._queueTotalSize=void 0,Mn(c),c._abortReason=void 0,c._abortController=pb(),c._started=!1,c._strategySizeAlgorithm=ne,c._strategyHWM=q,c._writeAlgorithm=k,c._closeAlgorithm=x,c._abortAlgorithm=j;let he=Wu(c);zu(i,he);let le=h(),me=d(le);m(me,()=>(c._started=!0,Ys(c),null),be=>(c._started=!0,Uu(i,be),null))}function Db(i,c,h,k){let x=Object.create(Lr.prototype),j,q,ne,he;c.start!==void 0?j=()=>c.start(x):j=()=>{},c.write!==void 0?q=le=>c.write(le,x):q=()=>d(void 0),c.close!==void 0?ne=()=>c.close():ne=()=>d(void 0),c.abort!==void 0?he=le=>c.abort(le):he=()=>d(void 0),ph(i,x,j,q,ne,he,h,k)}function Ks(i){i._writeAlgorithm=void 0,i._closeAlgorithm=void 0,i._abortAlgorithm=void 0,i._strategySizeAlgorithm=void 0}function Rb(i){Pu(i,hh,0),Ys(i)}function xb(i,c){try{return i._strategySizeAlgorithm(c)}catch(h){return No(i,h),1}}function mh(i){return i._strategyHWM-i._queueTotalSize}function Ob(i,c,h){try{Pu(i,c,h)}catch(x){No(i,x);return}let k=i._controlledWritableStream;if(!Xt(k)&&k._state==="writable"){let x=Wu(i);zu(k,x)}Ys(i)}function Ys(i){let c=i._controlledWritableStream;if(!i._started||c._inFlightWriteRequest!==void 0)return;if(c._state==="erroring"){qu(c);return}if(i._queue.length===0)return;let k=W_(i);k===hh?Pb(i):Fb(i,k)}function No(i,c){i._controlledWritableStream._state==="writable"&&gh(i,c)}function Pb(i){let c=i._controlledWritableStream;Eb(c),Ou(i);let h=i._closeAlgorithm();Ks(i),m(h,()=>(bb(c),null),k=>(Cb(c,k),null))}function Fb(i,c){let h=i._controlledWritableStream;kb(h);let k=i._writeAlgorithm(c);m(k,()=>{yb(h);let x=h._state;if(Ou(i),!Xt(h)&&x==="writable"){let j=Wu(i);zu(h,j)}return Ys(i),null},x=>(h._state==="writable"&&Ks(i),_b(h,x),null))}function Wu(i){return mh(i)<=0}function gh(i,c){let h=i._controlledWritableStream;Ks(i),$u(h,c)}function Qs(i){return new TypeError(`WritableStream.prototype.${i} can only be used on a WritableStream`)}function Gu(i){return new TypeError(`WritableStreamDefaultController.prototype.${i} can only be used on a WritableStreamDefaultController`)}function ur(i){return new TypeError(`WritableStreamDefaultWriter.prototype.${i} can only be used on a WritableStreamDefaultWriter`)}function Bo(i){return new TypeError("Cannot "+i+" a stream using a released writer")}function Xs(i){i._closedPromise=l((c,h)=>{i._closedPromise_resolve=c,i._closedPromise_reject=h,i._closedPromiseState="pending"})}function yh(i,c){Xs(i),Ju(i,c)}function Ib(i){Xs(i),_h(i)}function Ju(i,c){i._closedPromise_reject!==void 0&&(g(i._closedPromise),i._closedPromise_reject(c),i._closedPromise_resolve=void 0,i._closedPromise_reject=void 0,i._closedPromiseState="rejected")}function Nb(i,c){yh(i,c)}function _h(i){i._closedPromise_resolve!==void 0&&(i._closedPromise_resolve(void 0),i._closedPromise_resolve=void 0,i._closedPromise_reject=void 0,i._closedPromiseState="resolved")}function Zs(i){i._readyPromise=l((c,h)=>{i._readyPromise_resolve=c,i._readyPromise_reject=h}),i._readyPromiseState="pending"}function Vu(i,c){Zs(i),Ch(i,c)}function bh(i){Zs(i),Ku(i)}function Ch(i,c){i._readyPromise_reject!==void 0&&(g(i._readyPromise),i._readyPromise_reject(c),i._readyPromise_resolve=void 0,i._readyPromise_reject=void 0,i._readyPromiseState="rejected")}function Bb(i){Zs(i)}function Mb(i,c){Vu(i,c)}function Ku(i){i._readyPromise_resolve!==void 0&&(i._readyPromise_resolve(void 0),i._readyPromise_resolve=void 0,i._readyPromise_reject=void 0,i._readyPromiseState="fulfilled")}function Lb(){if(typeof globalThis<"u")return globalThis;if(typeof self<"u")return self;if(typeof global<"u")return global}let Yu=Lb();function jb(i){if(!(typeof i=="function"||typeof i=="object")||i.name!=="DOMException")return!1;try{return new i,!0}catch{return!1}}function Ub(){let i=Yu?.DOMException;return jb(i)?i:void 0}function $b(){let i=function(h,k){this.message=h||"",this.name=k||"Error",Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)};return o(i,"DOMException"),i.prototype=Object.create(Error.prototype),Object.defineProperty(i.prototype,"constructor",{value:i,writable:!0,configurable:!0}),i}let qb=Ub()||$b();function wh(i,c,h,k,x,j){let q=U(i),ne=ih(c);i._disturbed=!0;let he=!1,le=d(void 0);return l((me,be)=>{let Re;if(j!==void 0){if(Re=()=>{let de=j.reason!==void 0?j.reason:new qb("Aborted","AbortError"),Ce=[];k||Ce.push(()=>c._state==="writable"?Js(c,de):d(void 0)),x||Ce.push(()=>i._state==="readable"?Lt(i,de):d(void 0)),at(()=>Promise.all(Ce.map(Pe=>Pe())),!0,de)},j.aborted){Re();return}j.addEventListener("abort",Re)}function jt(){return l((de,Ce)=>{function Pe(ht){ht?de():p(qr(),Pe,Ce)}Pe(!1)})}function qr(){return he?d(!0):p(ne._readyPromise,()=>l((de,Ce)=>{ae(q,{_chunkSteps:Pe=>{le=p(fh(ne,Pe),void 0,e),de(!1)},_closeSteps:()=>de(!0),_errorSteps:Ce})}))}if(bn(i,q._closedPromise,de=>(k?vt(!0,de):at(()=>Js(c,de),!0,de),null)),bn(c,ne._closedPromise,de=>(x?vt(!0,de):at(()=>Lt(i,de),!0,de),null)),rt(i,q._closedPromise,()=>(h?vt():at(()=>Sb(ne)),null)),Xt(c)||c._state==="closed"){let de=new TypeError("the destination writable stream closed before all data could be piped to it");x?vt(!0,de):at(()=>Lt(i,de),!0,de)}g(jt());function zn(){let de=le;return p(le,()=>de!==le?zn():void 0)}function bn(de,Ce,Pe){de._state==="errored"?Pe(de._storedError):w(Ce,Pe)}function rt(de,Ce,Pe){de._state==="closed"?Pe():b(Ce,Pe)}function at(de,Ce,Pe){if(he)return;he=!0,c._state==="writable"&&!Xt(c)?b(zn(),ht):ht();function ht(){return m(de(),()=>Cn(Ce,Pe),zr=>Cn(!0,zr)),null}}function vt(de,Ce){he||(he=!0,c._state==="writable"&&!Xt(c)?b(zn(),()=>Cn(de,Ce)):Cn(de,Ce))}function Cn(de,Ce){return dh(ne),Q(q),j!==void 0&&j.removeEventListener("abort",Re),de?be(Ce):me(void 0),null}})}class _n{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!ei(this))throw ni("desiredSize");return Qu(this)}close(){if(!ei(this))throw ni("close");if(!Ur(this))throw new TypeError("The stream is not in a state that permits close");cr(this)}enqueue(c=void 0){if(!ei(this))throw ni("enqueue");if(!Ur(this))throw new TypeError("The stream is not in a state that permits enqueue");return jr(this,c)}error(c=void 0){if(!ei(this))throw ni("error");Mt(this,c)}[V](c){Mn(this);let h=this._cancelAlgorithm(c);return ti(this),h}[P](c){let h=this._controlledReadableStream;if(this._queue.length>0){let k=Ou(this);this._closeRequested&&this._queue.length===0?(ti(this),jo(h)):Mo(this),c._chunkSteps(k)}else O(h,c),Mo(this)}[Y](){}}Object.defineProperties(_n.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},desiredSize:{enumerable:!0}}),o(_n.prototype.close,"close"),o(_n.prototype.enqueue,"enqueue"),o(_n.prototype.error,"error"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(_n.prototype,Symbol.toStringTag,{value:"ReadableStreamDefaultController",configurable:!0});function ei(i){return!n(i)||!Object.prototype.hasOwnProperty.call(i,"_controlledReadableStream")?!1:i instanceof _n}function Mo(i){if(!Eh(i))return;if(i._pulling){i._pullAgain=!0;return}i._pulling=!0;let h=i._pullAlgorithm();m(h,()=>(i._pulling=!1,i._pullAgain&&(i._pullAgain=!1,Mo(i)),null),k=>(Mt(i,k),null))}function Eh(i){let c=i._controlledReadableStream;return!Ur(i)||!i._started?!1:!!($n(c)&&L(c)>0||Qu(i)>0)}function ti(i){i._pullAlgorithm=void 0,i._cancelAlgorithm=void 0,i._strategySizeAlgorithm=void 0}function cr(i){if(!Ur(i))return;let c=i._controlledReadableStream;i._closeRequested=!0,i._queue.length===0&&(ti(i),jo(c))}function jr(i,c){if(!Ur(i))return;let h=i._controlledReadableStream;if($n(h)&&L(h)>0)I(h,c,!1);else{let k;try{k=i._strategySizeAlgorithm(c)}catch(x){throw Mt(i,x),x}try{Pu(i,c,k)}catch(x){throw Mt(i,x),x}}Mo(i)}function Mt(i,c){let h=i._controlledReadableStream;h._state==="readable"&&(Mn(i),ti(i),vh(h,c))}function Qu(i){let c=i._controlledReadableStream._state;return c==="errored"?null:c==="closed"?0:i._strategyHWM-i._queueTotalSize}function zb(i){return!Eh(i)}function Ur(i){let c=i._controlledReadableStream._state;return!i._closeRequested&&c==="readable"}function kh(i,c,h,k,x,j,q){c._controlledReadableStream=i,c._queue=void 0,c._queueTotalSize=void 0,Mn(c),c._started=!1,c._closeRequested=!1,c._pullAgain=!1,c._pulling=!1,c._strategySizeAlgorithm=q,c._strategyHWM=j,c._pullAlgorithm=k,c._cancelAlgorithm=x,i._readableStreamController=c;let ne=h();m(d(ne),()=>(c._started=!0,Mo(c),null),he=>(Mt(c,he),null))}function Hb(i,c,h,k){let x=Object.create(_n.prototype),j,q,ne;c.start!==void 0?j=()=>c.start(x):j=()=>{},c.pull!==void 0?q=()=>c.pull(x):q=()=>d(void 0),c.cancel!==void 0?ne=he=>c.cancel(he):ne=()=>d(void 0),kh(i,x,j,q,ne,h,k)}function ni(i){return new TypeError(`ReadableStreamDefaultController.prototype.${i} can only be used on a ReadableStreamDefaultController`)}function Wb(i,c){return or(i._readableStreamController)?Jb(i):Gb(i)}function Gb(i,c){let h=U(i),k=!1,x=!1,j=!1,q=!1,ne,he,le,me,be,Re=l(rt=>{be=rt});function jt(){return k?(x=!0,d(void 0)):(k=!0,ae(h,{_chunkSteps:at=>{_(()=>{x=!1;let vt=at,Cn=at;j||jr(le._readableStreamController,vt),q||jr(me._readableStreamController,Cn),k=!1,x&&jt()})},_closeSteps:()=>{k=!1,j||cr(le._readableStreamController),q||cr(me._readableStreamController),(!j||!q)&&be(void 0)},_errorSteps:()=>{k=!1}}),d(void 0))}function qr(rt){if(j=!0,ne=rt,q){let at=Te([ne,he]),vt=Lt(i,at);be(vt)}return Re}function zn(rt){if(q=!0,he=rt,j){let at=Te([ne,he]),vt=Lt(i,at);be(vt)}return Re}function bn(){}return le=Lo(bn,jt,qr),me=Lo(bn,jt,zn),w(h._closedPromise,rt=>(Mt(le._readableStreamController,rt),Mt(me._readableStreamController,rt),(!j||!q)&&be(void 0),null)),[le,me]}function Jb(i){let c=U(i),h=!1,k=!1,x=!1,j=!1,q=!1,ne,he,le,me,be,Re=l(de=>{be=de});function jt(de){w(de._closedPromise,Ce=>(de!==c||(St(le._readableStreamController,Ce),St(me._readableStreamController,Ce),(!j||!q)&&be(void 0)),null))}function qr(){ir(c)&&(Q(c),c=U(i),jt(c)),ae(c,{_chunkSteps:Ce=>{_(()=>{k=!1,x=!1;let Pe=Ce,ht=Ce;if(!j&&!q)try{ht=$f(Ce)}catch(zr){St(le._readableStreamController,zr),St(me._readableStreamController,zr),be(Lt(i,zr));return}j||$s(le._readableStreamController,Pe),q||$s(me._readableStreamController,ht),h=!1,k?bn():x&&rt()})},_closeSteps:()=>{h=!1,j||Po(le._readableStreamController),q||Po(me._readableStreamController),le._readableStreamController._pendingPullIntos.length>0&&qs(le._readableStreamController,0),me._readableStreamController._pendingPullIntos.length>0&&qs(me._readableStreamController,0),(!j||!q)&&be(void 0)},_errorSteps:()=>{h=!1}})}function zn(de,Ce){re(c)&&(Q(c),c=eh(i),jt(c));let Pe=Ce?me:le,ht=Ce?le:me;rh(c,de,1,{_chunkSteps:Hr=>{_(()=>{k=!1,x=!1;let Wr=Ce?q:j;if(Ce?j:q)Wr||zs(Pe._readableStreamController,Hr);else{let jh;try{jh=$f(Hr)}catch(nc){St(Pe._readableStreamController,nc),St(ht._readableStreamController,nc),be(Lt(i,nc));return}Wr||zs(Pe._readableStreamController,Hr),$s(ht._readableStreamController,jh)}h=!1,k?bn():x&&rt()})},_closeSteps:Hr=>{h=!1;let Wr=Ce?q:j,li=Ce?j:q;Wr||Po(Pe._readableStreamController),li||Po(ht._readableStreamController),Hr!==void 0&&(Wr||zs(Pe._readableStreamController,Hr),!li&&ht._readableStreamController._pendingPullIntos.length>0&&qs(ht._readableStreamController,0)),(!Wr||!li)&&be(void 0)},_errorSteps:()=>{h=!1}})}function bn(){if(h)return k=!0,d(void 0);h=!0;let de=Mu(le._readableStreamController);return de===null?qr():zn(de._view,!1),d(void 0)}function rt(){if(h)return x=!0,d(void 0);h=!0;let de=Mu(me._readableStreamController);return de===null?qr():zn(de._view,!0),d(void 0)}function at(de){if(j=!0,ne=de,q){let Ce=Te([ne,he]),Pe=Lt(i,Ce);be(Pe)}return Re}function vt(de){if(q=!0,he=de,j){let Ce=Te([ne,he]),Pe=Lt(i,Ce);be(Pe)}return Re}function Cn(){}return le=Sh(Cn,bn,at),me=Sh(Cn,rt,vt),jt(c),[le,me]}function Vb(i){return n(i)&&typeof i.getReader<"u"}function Kb(i){return Vb(i)?Qb(i.getReader()):Yb(i)}function Yb(i){let c,h=Uf(i,"async"),k=e;function x(){let q;try{q=$_(h)}catch(he){return f(he)}let ne=d(q);return y(ne,he=>{if(!n(he))throw new TypeError("The promise returned by the iterator.next() method must fulfill with an object");if(q_(he))cr(c._readableStreamController);else{let me=z_(he);jr(c._readableStreamController,me)}})}function j(q){let ne=h.iterator,he;try{he=Ls(ne,"return")}catch(be){return f(be)}if(he===void 0)return d(void 0);let le;try{le=A(he,ne,[q])}catch(be){return f(be)}let me=d(le);return y(me,be=>{if(!n(be))throw new TypeError("The promise returned by the iterator.return() method must fulfill with an object")})}return c=Lo(k,x,j,0),c}function Qb(i){let c,h=e;function k(){let j;try{j=i.read()}catch(q){return f(q)}return y(j,q=>{if(!n(q))throw new TypeError("The promise returned by the reader.read() method must fulfill with an object");if(q.done)cr(c._readableStreamController);else{let ne=q.value;jr(c._readableStreamController,ne)}})}function x(j){try{return d(i.cancel(j))}catch(q){return f(q)}}return c=Lo(h,k,x,0),c}function Xb(i,c){ue(i,c);let h=i,k=h?.autoAllocateChunkSize,x=h?.cancel,j=h?.pull,q=h?.start,ne=h?.type;return{autoAllocateChunkSize:k===void 0?void 0:F(k,`${c} has member 'autoAllocateChunkSize' that`),cancel:x===void 0?void 0:Zb(x,h,`${c} has member 'cancel' that`),pull:j===void 0?void 0:eC(j,h,`${c} has member 'pull' that`),start:q===void 0?void 0:tC(q,h,`${c} has member 'start' that`),type:ne===void 0?void 0:nC(ne,`${c} has member 'type' that`)}}function Zb(i,c,h){return te(i,h),k=>C(i,c,[k])}function eC(i,c,h){return te(i,h),k=>C(i,c,[k])}function tC(i,c,h){return te(i,h),k=>A(i,c,[k])}function nC(i,c){if(i=`${i}`,i!=="bytes")throw new TypeError(`${c} '${i}' is not a valid enumeration value for ReadableStreamType`);return i}function rC(i,c){return ue(i,c),{preventCancel:!!i?.preventCancel}}function Ah(i,c){ue(i,c);let h=i?.preventAbort,k=i?.preventCancel,x=i?.preventClose,j=i?.signal;return j!==void 0&&oC(j,`${c} has member 'signal' that`),{preventAbort:!!h,preventCancel:!!k,preventClose:!!x,signal:j}}function oC(i,c){if(!fb(i))throw new TypeError(`${c} is not an AbortSignal.`)}function sC(i,c){ue(i,c);let h=i?.readable;E(h,"readable","ReadableWritablePair"),N(h,`${c} has member 'readable' that`);let k=i?.writable;return E(k,"writable","ReadableWritablePair"),sh(k,`${c} has member 'writable' that`),{readable:h,writable:k}}class et{constructor(c={},h={}){c===void 0?c=null:Oe(c,"First parameter");let k=Gs(h,"Second parameter"),x=Xb(c,"First parameter");if(Xu(this),x.type==="bytes"){if(k.size!==void 0)throw new RangeError("The strategy for a byte stream cannot have a size function");let j=Io(k,0);Z_(this,x,j)}else{let j=Ws(k),q=Io(k,1);Hb(this,x,q,j)}}get locked(){if(!Un(this))throw lr("locked");return $n(this)}cancel(c=void 0){return Un(this)?$n(this)?f(new TypeError("Cannot cancel a stream that already has a reader")):Lt(this,c):f(lr("cancel"))}getReader(c=void 0){if(!Un(this))throw lr("getReader");return tb(c,"First parameter").mode===void 0?U(this):eh(this)}pipeThrough(c,h={}){if(!Un(this))throw lr("pipeThrough");je(c,1,"pipeThrough");let k=sC(c,"First parameter"),x=Ah(h,"Second parameter");if($n(this))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream");if(Mr(k.writable))throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream");let j=wh(this,k.writable,x.preventClose,x.preventAbort,x.preventCancel,x.signal);return g(j),k.readable}pipeTo(c,h={}){if(!Un(this))return f(lr("pipeTo"));if(c===void 0)return f("Parameter 1 is required in 'pipeTo'.");if(!Br(c))return f(new TypeError("ReadableStream.prototype.pipeTo's first argument must be a WritableStream"));let k;try{k=Ah(h,"Second parameter")}catch(x){return f(x)}return $n(this)?f(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream")):Mr(c)?f(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream")):wh(this,c,k.preventClose,k.preventAbort,k.preventCancel,k.signal)}tee(){if(!Un(this))throw lr("tee");let c=Wb(this);return Te(c)}values(c=void 0){if(!Un(this))throw lr("values");let h=rC(c,"First parameter");return Pr(this,h.preventCancel)}[xu](c){return this.values(c)}static from(c){return Kb(c)}}Object.defineProperties(et,{from:{enumerable:!0}}),Object.defineProperties(et.prototype,{cancel:{enumerable:!0},getReader:{enumerable:!0},pipeThrough:{enumerable:!0},pipeTo:{enumerable:!0},tee:{enumerable:!0},values:{enumerable:!0},locked:{enumerable:!0}}),o(et.from,"from"),o(et.prototype.cancel,"cancel"),o(et.prototype.getReader,"getReader"),o(et.prototype.pipeThrough,"pipeThrough"),o(et.prototype.pipeTo,"pipeTo"),o(et.prototype.tee,"tee"),o(et.prototype.values,"values"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(et.prototype,Symbol.toStringTag,{value:"ReadableStream",configurable:!0}),Object.defineProperty(et.prototype,xu,{value:et.prototype.values,writable:!0,configurable:!0});function Lo(i,c,h,k=1,x=()=>1){let j=Object.create(et.prototype);Xu(j);let q=Object.create(_n.prototype);return kh(j,q,i,c,h,k,x),j}function Sh(i,c,h){let k=Object.create(et.prototype);Xu(k);let x=Object.create(gn.prototype);return Zf(k,x,i,c,h,0,void 0),k}function Xu(i){i._state="readable",i._reader=void 0,i._storedError=void 0,i._disturbed=!1}function Un(i){return!n(i)||!Object.prototype.hasOwnProperty.call(i,"_readableStreamController")?!1:i instanceof et}function $n(i){return i._reader!==void 0}function Lt(i,c){if(i._disturbed=!0,i._state==="closed")return d(void 0);if(i._state==="errored")return f(i._storedError);jo(i);let h=i._reader;if(h!==void 0&&ir(h)){let x=h._readIntoRequests;h._readIntoRequests=new T,x.forEach(j=>{j._closeSteps(void 0)})}let k=i._readableStreamController[V](c);return y(k,e)}function jo(i){i._state="closed";let c=i._reader;if(c!==void 0&&(se(c),re(c))){let h=c._readRequests;c._readRequests=new T,h.forEach(k=>{k._closeSteps()})}}function vh(i,c){i._state="errored",i._storedError=c;let h=i._reader;h!==void 0&&(G(h,c),re(h)?Ie(h,c):oh(h,c))}function lr(i){return new TypeError(`ReadableStream.prototype.${i} can only be used on a ReadableStream`)}function Th(i,c){ue(i,c);let h=i?.highWaterMark;return E(h,"highWaterMark","QueuingStrategyInit"),{highWaterMark:v(h)}}let Dh=i=>i.byteLength;o(Dh,"size");class ri{constructor(c){je(c,1,"ByteLengthQueuingStrategy"),c=Th(c,"First parameter"),this._byteLengthQueuingStrategyHighWaterMark=c.highWaterMark}get highWaterMark(){if(!xh(this))throw Rh("highWaterMark");return this._byteLengthQueuingStrategyHighWaterMark}get size(){if(!xh(this))throw Rh("size");return Dh}}Object.defineProperties(ri.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(ri.prototype,Symbol.toStringTag,{value:"ByteLengthQueuingStrategy",configurable:!0});function Rh(i){return new TypeError(`ByteLengthQueuingStrategy.prototype.${i} can only be used on a ByteLengthQueuingStrategy`)}function xh(i){return!n(i)||!Object.prototype.hasOwnProperty.call(i,"_byteLengthQueuingStrategyHighWaterMark")?!1:i instanceof ri}let Oh=()=>1;o(Oh,"size");class oi{constructor(c){je(c,1,"CountQueuingStrategy"),c=Th(c,"First parameter"),this._countQueuingStrategyHighWaterMark=c.highWaterMark}get highWaterMark(){if(!Fh(this))throw Ph("highWaterMark");return this._countQueuingStrategyHighWaterMark}get size(){if(!Fh(this))throw Ph("size");return Oh}}Object.defineProperties(oi.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(oi.prototype,Symbol.toStringTag,{value:"CountQueuingStrategy",configurable:!0});function Ph(i){return new TypeError(`CountQueuingStrategy.prototype.${i} can only be used on a CountQueuingStrategy`)}function Fh(i){return!n(i)||!Object.prototype.hasOwnProperty.call(i,"_countQueuingStrategyHighWaterMark")?!1:i instanceof oi}function iC(i,c){ue(i,c);let h=i?.cancel,k=i?.flush,x=i?.readableType,j=i?.start,q=i?.transform,ne=i?.writableType;return{cancel:h===void 0?void 0:lC(h,i,`${c} has member 'cancel' that`),flush:k===void 0?void 0:aC(k,i,`${c} has member 'flush' that`),readableType:x,start:j===void 0?void 0:uC(j,i,`${c} has member 'start' that`),transform:q===void 0?void 0:cC(q,i,`${c} has member 'transform' that`),writableType:ne}}function aC(i,c,h){return te(i,h),k=>C(i,c,[k])}function uC(i,c,h){return te(i,h),k=>A(i,c,[k])}function cC(i,c,h){return te(i,h),(k,x)=>C(i,c,[k,x])}function lC(i,c,h){return te(i,h),k=>C(i,c,[k])}class si{constructor(c={},h={},k={}){c===void 0&&(c=null);let x=Gs(h,"Second parameter"),j=Gs(k,"Third parameter"),q=iC(c,"First parameter");if(q.readableType!==void 0)throw new RangeError("Invalid readableType specified");if(q.writableType!==void 0)throw new RangeError("Invalid writableType specified");let ne=Io(j,0),he=Ws(j),le=Io(x,1),me=Ws(x),be,Re=l(jt=>{be=jt});dC(this,Re,le,me,ne,he),hC(this,q),q.start!==void 0?be(q.start(this._transformStreamController)):be(void 0)}get readable(){if(!Ih(this))throw Lh("readable");return this._readable}get writable(){if(!Ih(this))throw Lh("writable");return this._writable}}Object.defineProperties(si.prototype,{readable:{enumerable:!0},writable:{enumerable:!0}}),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(si.prototype,Symbol.toStringTag,{value:"TransformStream",configurable:!0});function dC(i,c,h,k,x,j){function q(){return c}function ne(Re){return gC(i,Re)}function he(Re){return yC(i,Re)}function le(){return _C(i)}i._writable=mb(q,ne,le,he,h,k);function me(){return bC(i)}function be(Re){return CC(i,Re)}i._readable=Lo(q,me,be,x,j),i._backpressure=void 0,i._backpressureChangePromise=void 0,i._backpressureChangePromise_resolve=void 0,ii(i,!0),i._transformStreamController=void 0}function Ih(i){return!n(i)||!Object.prototype.hasOwnProperty.call(i,"_transformStreamController")?!1:i instanceof si}function Nh(i,c){Mt(i._readable._readableStreamController,c),Zu(i,c)}function Zu(i,c){ui(i._transformStreamController),No(i._writable._writableStreamController,c),ec(i)}function ec(i){i._backpressure&&ii(i,!1)}function ii(i,c){i._backpressureChangePromise!==void 0&&i._backpressureChangePromise_resolve(),i._backpressureChangePromise=l(h=>{i._backpressureChangePromise_resolve=h}),i._backpressure=c}class qn{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!ai(this))throw ci("desiredSize");let c=this._controlledTransformStream._readable._readableStreamController;return Qu(c)}enqueue(c=void 0){if(!ai(this))throw ci("enqueue");Bh(this,c)}error(c=void 0){if(!ai(this))throw ci("error");pC(this,c)}terminate(){if(!ai(this))throw ci("terminate");mC(this)}}Object.defineProperties(qn.prototype,{enqueue:{enumerable:!0},error:{enumerable:!0},terminate:{enumerable:!0},desiredSize:{enumerable:!0}}),o(qn.prototype.enqueue,"enqueue"),o(qn.prototype.error,"error"),o(qn.prototype.terminate,"terminate"),typeof Symbol.toStringTag=="symbol"&&Object.defineProperty(qn.prototype,Symbol.toStringTag,{value:"TransformStreamDefaultController",configurable:!0});function ai(i){return!n(i)||!Object.prototype.hasOwnProperty.call(i,"_controlledTransformStream")?!1:i instanceof qn}function fC(i,c,h,k,x){c._controlledTransformStream=i,i._transformStreamController=c,c._transformAlgorithm=h,c._flushAlgorithm=k,c._cancelAlgorithm=x,c._finishPromise=void 0,c._finishPromise_resolve=void 0,c._finishPromise_reject=void 0}function hC(i,c){let h=Object.create(qn.prototype),k,x,j;c.transform!==void 0?k=q=>c.transform(q,h):k=q=>{try{return Bh(h,q),d(void 0)}catch(ne){return f(ne)}},c.flush!==void 0?x=()=>c.flush(h):x=()=>d(void 0),c.cancel!==void 0?j=q=>c.cancel(q):j=()=>d(void 0),fC(i,h,k,x,j)}function ui(i){i._transformAlgorithm=void 0,i._flushAlgorithm=void 0,i._cancelAlgorithm=void 0}function Bh(i,c){let h=i._controlledTransformStream,k=h._readable._readableStreamController;if(!Ur(k))throw new TypeError("Readable side is not in a state that permits enqueue");try{jr(k,c)}catch(j){throw Zu(h,j),h._readable._storedError}zb(k)!==h._backpressure&&ii(h,!0)}function pC(i,c){Nh(i._controlledTransformStream,c)}function Mh(i,c){let h=i._transformAlgorithm(c);return y(h,void 0,k=>{throw Nh(i._controlledTransformStream,k),k})}function mC(i){let c=i._controlledTransformStream,h=c._readable._readableStreamController;cr(h);let k=new TypeError("TransformStream terminated");Zu(c,k)}function gC(i,c){let h=i._transformStreamController;if(i._backpressure){let k=i._backpressureChangePromise;return y(k,()=>{let x=i._writable;if(x._state==="erroring")throw x._storedError;return Mh(h,c)})}return Mh(h,c)}function yC(i,c){let h=i._transformStreamController;if(h._finishPromise!==void 0)return h._finishPromise;let k=i._readable;h._finishPromise=l((j,q)=>{h._finishPromise_resolve=j,h._finishPromise_reject=q});let x=h._cancelAlgorithm(c);return ui(h),m(x,()=>(k._state==="errored"?$r(h,k._storedError):(Mt(k._readableStreamController,c),tc(h)),null),j=>(Mt(k._readableStreamController,j),$r(h,j),null)),h._finishPromise}function _C(i){let c=i._transformStreamController;if(c._finishPromise!==void 0)return c._finishPromise;let h=i._readable;c._finishPromise=l((x,j)=>{c._finishPromise_resolve=x,c._finishPromise_reject=j});let k=c._flushAlgorithm();return ui(c),m(k,()=>(h._state==="errored"?$r(c,h._storedError):(cr(h._readableStreamController),tc(c)),null),x=>(Mt(h._readableStreamController,x),$r(c,x),null)),c._finishPromise}function bC(i){return ii(i,!1),i._backpressureChangePromise}function CC(i,c){let h=i._transformStreamController;if(h._finishPromise!==void 0)return h._finishPromise;let k=i._writable;h._finishPromise=l((j,q)=>{h._finishPromise_resolve=j,h._finishPromise_reject=q});let x=h._cancelAlgorithm(c);return ui(h),m(x,()=>(k._state==="errored"?$r(h,k._storedError):(No(k._writableStreamController,c),ec(i),tc(h)),null),j=>(No(k._writableStreamController,j),ec(i),$r(h,j),null)),h._finishPromise}function ci(i){return new TypeError(`TransformStreamDefaultController.prototype.${i} can only be used on a TransformStreamDefaultController`)}function tc(i){i._finishPromise_resolve!==void 0&&(i._finishPromise_resolve(),i._finishPromise_resolve=void 0,i._finishPromise_reject=void 0)}function $r(i,c){i._finishPromise_reject!==void 0&&(g(i._finishPromise),i._finishPromise_reject(c),i._finishPromise_resolve=void 0,i._finishPromise_reject=void 0)}function Lh(i){return new TypeError(`TransformStream.prototype.${i} can only be used on a TransformStream`)}t.ByteLengthQueuingStrategy=ri,t.CountQueuingStrategy=oi,t.ReadableByteStreamController=gn,t.ReadableStream=et,t.ReadableStreamBYOBReader=Ln,t.ReadableStreamBYOBRequest=rr,t.ReadableStreamDefaultController=_n,t.ReadableStreamDefaultReader=H,t.TransformStream=si,t.TransformStreamDefaultController=qn,t.WritableStream=jn,t.WritableStreamDefaultController=Lr,t.WritableStreamDefaultWriter=yn}))});var Bm=X(()=>{if(!globalThis.ReadableStream)try{let t=require("node:process"),{emitWarning:e}=t;try{t.emitWarning=()=>{},Object.assign(globalThis,require("node:stream/web")),t.emitWarning=e}catch(n){throw t.emitWarning=e,n}}catch{Object.assign(globalThis,Nm())}try{let{Blob:t}=require("buffer");t&&!t.prototype.stream&&(t.prototype.stream=function(n){let r=0,o=this;return new ReadableStream({type:"bytes",async pull(s){let u=await o.slice(r,Math.min(o.size,r+65536)).arrayBuffer();r+=u.byteLength,s.enqueue(new Uint8Array(u)),r===o.size&&s.close()}})})}catch{}});async function*Wc(t,e=!0){for(let n of t)if("stream"in n)yield*n.stream();else if(ArrayBuffer.isView(n))if(e){let r=n.byteOffset,o=n.byteOffset+n.byteLength;for(;r!==o;){let s=Math.min(o-r,Mm),a=n.buffer.slice(r,r+s);r+=a.byteLength,yield new Uint8Array(a)}}else yield n;else{let r=0,o=n;for(;r!==o.size;){let a=await o.slice(r,Math.min(o.size,r+Mm)).arrayBuffer();r+=a.byteLength,yield new Uint8Array(a)}}}var Xx,Mm,Lm,gE,zt,Vo=Le(()=>{Xx=xe(Bm(),1);Mm=65536;Lm=class Gc{#e=[];#t="";#n=0;#r="transparent";constructor(e=[],n={}){if(typeof e!="object"||e===null)throw new TypeError("Failed to construct 'Blob': The provided value cannot be converted to a sequence.");if(typeof e[Symbol.iterator]!="function")throw new TypeError("Failed to construct 'Blob': The object must have a callable @@iterator property.");if(typeof n!="object"&&typeof n!="function")throw new TypeError("Failed to construct 'Blob': parameter 2 cannot convert to dictionary.");n===null&&(n={});let r=new TextEncoder;for(let s of e){let a;ArrayBuffer.isView(s)?a=new Uint8Array(s.buffer.slice(s.byteOffset,s.byteOffset+s.byteLength)):s instanceof ArrayBuffer?a=new Uint8Array(s.slice(0)):s instanceof Gc?a=s:a=r.encode(`${s}`),this.#n+=ArrayBuffer.isView(a)?a.byteLength:a.size,this.#e.push(a)}this.#r=`${n.endings===void 0?"transparent":n.endings}`;let o=n.type===void 0?"":String(n.type);this.#t=/^[\x20-\x7E]*$/.test(o)?o:""}get size(){return this.#n}get type(){return this.#t}async text(){let e=new TextDecoder,n="";for await(let r of Wc(this.#e,!1))n+=e.decode(r,{stream:!0});return n+=e.decode(),n}async arrayBuffer(){let e=new Uint8Array(this.size),n=0;for await(let r of Wc(this.#e,!1))e.set(r,n),n+=r.length;return e.buffer}stream(){let e=Wc(this.#e,!0);return new globalThis.ReadableStream({type:"bytes",async pull(n){let r=await e.next();r.done?n.close():n.enqueue(r.value)},async cancel(){await e.return()}})}slice(e=0,n=this.size,r=""){let{size:o}=this,s=e<0?Math.max(o+e,0):Math.min(e,o),a=n<0?Math.max(o+n,0):Math.min(n,o),u=Math.max(a-s,0),l=this.#e,d=[],f=0;for(let m of l){if(f>=u)break;let b=ArrayBuffer.isView(m)?m.byteLength:m.size;if(s&&b<=s)s-=b,a-=b;else{let w;ArrayBuffer.isView(m)?(w=m.subarray(s,Math.min(b,a)),f+=w.byteLength):(w=m.slice(s,Math.min(b,a)),f+=w.size),a-=b,d.push(w),s=0}}let p=new Gc([],{type:String(r).toLowerCase()});return p.#n=u,p.#e=d,p}get[Symbol.toStringTag](){return"Blob"}static[Symbol.hasInstance](e){return e&&typeof e=="object"&&typeof e.constructor=="function"&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}};Object.defineProperties(Lm.prototype,{size:{enumerable:!0},type:{enumerable:!0},slice:{enumerable:!0}});gE=Lm,zt=gE});var yE,_E,Jn,Jc=Le(()=>{Vo();yE=class extends zt{#e=0;#t="";constructor(e,n,r={}){if(arguments.length<2)throw new TypeError(`Failed to construct 'File': 2 arguments required, but only ${arguments.length} present.`);super(e,r),r===null&&(r={});let o=r.lastModified===void 0?Date.now():Number(r.lastModified);Number.isNaN(o)||(this.#e=o),this.#t=String(n)}get name(){return this.#t}get lastModified(){return this.#e}get[Symbol.toStringTag](){return"File"}static[Symbol.hasInstance](e){return!!e&&e instanceof zt&&/^(File)$/.test(e[Symbol.toStringTag])}},_E=yE,Jn=_E});function $m(t,e=zt){var n=`${jm()}${jm()}`.replace(/\./g,"").slice(-28).padStart(32,"-"),r=[],o=`--${n}\r
|
|
27
|
+
Content-Disposition: form-data; name="`;return t.forEach((s,a)=>typeof s=="string"?r.push(o+Vc(a)+`"\r
|
|
28
28
|
\r
|
|
29
29
|
${s.replace(/\r(?!\n)|(?<!\r)\n/g,`\r
|
|
30
30
|
`)}\r
|
|
31
|
-
`):r.push(o+
|
|
31
|
+
`):r.push(o+Vc(a)+`"; filename="${Vc(s.name,1)}"\r
|
|
32
32
|
Content-Type: ${s.type||"application/octet-stream"}\r
|
|
33
33
|
\r
|
|
34
34
|
`,s,`\r
|
|
35
|
-
`)),r.push(`--${n}--`),new e(r,{type:"multipart/form-data; boundary="+n})}var Ko,
|
|
36
|
-
`)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),br=(t,e,n)=>{if(e.length<n)throw new TypeError(`Failed to execute '${t}' on 'FormData': ${n} arguments required, but only ${e.length} present.`)},Vn=class{#e=[];constructor(...e){if(e.length)throw new TypeError("Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement'.")}get[Ko](){return"FormData"}[
|
|
37
|
-
--`+e;let n=new Uint8Array(e.length);for(let r=0;r<e.length;r++)n[r]=e.charCodeAt(r),this.boundaryChars[n[r]]=!0;this.boundary=n,this.lookbehind=new Uint8Array(this.boundary.length+8),this.state=Fe.START_BOUNDARY}write(e){let n=0,r=e.length,o=this.index,{lookbehind:s,boundary:a,boundaryChars:u,index:l,state:d,flags:f}=this,p=this.boundary.length,m=p-1,b=e.length,w,y,g=S=>{this[S+"Mark"]=n},_=S=>{delete this[S+"Mark"]},A=(S,v,R,$)=>{(v===void 0||v!==R)&&this[S]($&&$.subarray(v,R))},C=(S,v)=>{let R=S+"Mark";R in this&&(v?(A(S,this[R],n,e),delete this[R]):(A(S,this[R],e.length,e),this[R]=0))};for(n=0;n<r;n++)switch(w=e[n],d){case Fe.START_BOUNDARY:if(l===a.length-2){if(w===Qo)f|=Kn.LAST_BOUNDARY;else if(w!==ea)return;l++;break}else if(l-1===a.length-2){if(f&Kn.LAST_BOUNDARY&&w===Qo)d=Fe.END,f=0;else if(!(f&Kn.LAST_BOUNDARY)&&w===Zi)l=0,A("onPartBegin"),d=Fe.HEADER_FIELD_START;else return;break}w!==a[l+2]&&(l=-2),w===a[l+2]&&l++;break;case Fe.HEADER_FIELD_START:d=Fe.HEADER_FIELD,g("onHeaderField"),l=0;case Fe.HEADER_FIELD:if(w===ea){_("onHeaderField"),d=Fe.HEADERS_ALMOST_DONE;break}if(l++,w===Qo)break;if(w===EE){if(l===1)return;C("onHeaderField",!0),d=Fe.HEADER_VALUE_START;break}if(y=SE(w),y<kE||y>AE)return;break;case Fe.HEADER_VALUE_START:if(w===wE)break;g("onHeaderValue"),d=Fe.HEADER_VALUE;case Fe.HEADER_VALUE:w===ea&&(C("onHeaderValue",!0),A("onHeaderEnd"),d=Fe.HEADER_VALUE_ALMOST_DONE);break;case Fe.HEADER_VALUE_ALMOST_DONE:if(w!==Zi)return;d=Fe.HEADER_FIELD_START;break;case Fe.HEADERS_ALMOST_DONE:if(w!==Zi)return;A("onHeadersEnd"),d=Fe.PART_DATA_START;break;case Fe.PART_DATA_START:d=Fe.PART_DATA,g("onPartData");case Fe.PART_DATA:if(o=l,l===0){for(n+=m;n<b&&!(e[n]in u);)n+=p;n-=m,w=e[n]}if(l<a.length)a[l]===w?(l===0&&C("onPartData",!0),l++):l=0;else if(l===a.length)l++,w===ea?f|=Kn.PART_BOUNDARY:w===Qo?f|=Kn.LAST_BOUNDARY:l=0;else if(l-1===a.length)if(f&Kn.PART_BOUNDARY){if(l=0,w===Zi){f&=~Kn.PART_BOUNDARY,A("onPartEnd"),A("onPartBegin"),d=Fe.HEADER_FIELD_START;break}}else f&Kn.LAST_BOUNDARY&&w===Qo?(A("onPartEnd"),d=Fe.END,f=0):l=0;if(l>0)s[l-1]=w;else if(o>0){let S=new Uint8Array(s.buffer,s.byteOffset,s.byteLength);A("onPartData",0,o,S),o=0,g("onPartData"),n--}break;case Fe.END:break;default:throw new Error(`Unexpected state entered: ${d}`)}C("onHeaderField"),C("onHeaderValue"),C("onPartData"),this.index=l,this.state=d,this.flags=f}end(){if(this.state===Fe.HEADER_FIELD_START&&this.index===0||this.state===Fe.PART_DATA&&this.index===this.boundary.length)this.onPartEnd();else if(this.state!==Fe.END)throw new Error("MultipartParser.end(): stream ended unexpectedly")}}});async function Zc(t){if(t[lt].disturbed)throw new TypeError(`body used already for: ${t.url}`);if(t[lt].disturbed=!0,t[lt].error)throw t[lt].error;let{body:e}=t;if(e===null)return mt.Buffer.alloc(0);if(!(e instanceof xt.default))return mt.Buffer.alloc(0);let n=[],r=0;try{for await(let o of e){if(t.size>0&&r+o.length>t.size){let s=new st(`content size at ${t.url} over limit: ${t.size}`,"max-size");throw e.destroy(s),s}r+=o.length,n.push(o)}}catch(o){throw o instanceof Dn?o:new st(`Invalid response body while trying to fetch ${t.url}: ${o.message}`,"system",o)}if(e.readableEnded===!0||e._readableState.ended===!0)try{return n.every(o=>typeof o=="string")?mt.Buffer.from(n.join("")):mt.Buffer.concat(n,r)}catch(o){throw new st(`Could not create Buffer from response body for ${t.url}: ${o.message}`,"system",o)}else throw new st(`Premature close of server response while trying to fetch ${t.url}`)}var xt,Rn,mt,DE,lt,tn,so,RE,ta,og,sg,na=Le(()=>{xt=xe(require("node:stream"),1),Rn=require("node:util"),mt=require("node:buffer");Vo();Vi();Vc();Ki();Qi();DE=(0,Rn.promisify)(xt.default.pipeline),lt=Symbol("Body internals"),tn=class{constructor(e,{size:n=0}={}){let r=null;e===null?e=null:Kc(e)?e=mt.Buffer.from(e.toString()):Yo(e)||mt.Buffer.isBuffer(e)||(Rn.types.isAnyArrayBuffer(e)?e=mt.Buffer.from(e):ArrayBuffer.isView(e)?e=mt.Buffer.from(e.buffer,e.byteOffset,e.byteLength):e instanceof xt.default||(e instanceof Vn?(e=$m(e),r=e.type.split("=")[1]):e=mt.Buffer.from(String(e))));let o=e;mt.Buffer.isBuffer(e)?o=xt.default.Readable.from(e):Yo(e)&&(o=xt.default.Readable.from(e.stream())),this[lt]={body:e,stream:o,boundary:r,disturbed:!1,error:null},this.size=n,e instanceof xt.default&&e.on("error",s=>{let a=s instanceof Dn?s:new st(`Invalid response body while trying to fetch ${this.url}: ${s.message}`,"system",s);this[lt].error=a})}get body(){return this[lt].stream}get bodyUsed(){return this[lt].disturbed}async arrayBuffer(){let{buffer:e,byteOffset:n,byteLength:r}=await Zc(this);return e.slice(n,n+r)}async formData(){let e=this.headers.get("content-type");if(e.startsWith("application/x-www-form-urlencoded")){let r=new Vn,o=new URLSearchParams(await this.text());for(let[s,a]of o)r.append(s,a);return r}let{toFormData:n}=await Promise.resolve().then(()=>(rg(),ng));return n(this.body,e)}async blob(){let e=this.headers&&this.headers.get("content-type")||this[lt].body&&this[lt].body.type||"",n=await this.arrayBuffer();return new zt([n],{type:e})}async json(){let e=await this.text();return JSON.parse(e)}async text(){let e=await Zc(this);return new TextDecoder().decode(e)}buffer(){return Zc(this)}};tn.prototype.buffer=(0,Rn.deprecate)(tn.prototype.buffer,"Please use 'response.arrayBuffer()' instead of 'response.buffer()'","node-fetch#buffer");Object.defineProperties(tn.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0},data:{get:(0,Rn.deprecate)(()=>{},"data doesn't exist, use json(), text(), arrayBuffer(), or body instead","https://github.com/node-fetch/node-fetch/issues/1000 (response)")}});so=(t,e)=>{let n,r,{body:o}=t[lt];if(t.bodyUsed)throw new Error("cannot clone body after it is used");return o instanceof xt.default&&typeof o.getBoundary!="function"&&(n=new xt.PassThrough({highWaterMark:e}),r=new xt.PassThrough({highWaterMark:e}),o.pipe(n),o.pipe(r),t[lt].stream=n,o=r),o},RE=(0,Rn.deprecate)(t=>t.getBoundary(),"form-data doesn't follow the spec and requires special treatment. Use alternative package","https://github.com/node-fetch/node-fetch/issues/1167"),ta=(t,e)=>t===null?null:typeof t=="string"?"text/plain;charset=UTF-8":Kc(t)?"application/x-www-form-urlencoded;charset=UTF-8":Yo(t)?t.type||null:mt.Buffer.isBuffer(t)||Rn.types.isAnyArrayBuffer(t)||ArrayBuffer.isView(t)?null:t instanceof Vn?`multipart/form-data; boundary=${e[lt].boundary}`:t&&typeof t.getBoundary=="function"?`multipart/form-data;boundary=${RE(t)}`:t instanceof xt.default?null:"text/plain;charset=UTF-8",og=t=>{let{body:e}=t[lt];return e===null?0:Yo(e)?e.size:mt.Buffer.isBuffer(e)?e.length:e&&typeof e.getLengthSync=="function"&&e.hasKnownLength&&e.hasKnownLength()?e.getLengthSync():null},sg=async(t,{body:e})=>{e===null?t.end():await DE(e,t)}});function ig(t=[]){return new dt(t.reduce((e,n,r,o)=>(r%2===0&&e.push(o.slice(r,r+2)),e),[]).filter(([e,n])=>{try{return ra(e),tl(e,String(n)),!0}catch{return!1}}))}var el,Xo,ra,tl,dt,oa=Le(()=>{el=require("node:util"),Xo=xe(require("node:http"),1),ra=typeof Xo.default.validateHeaderName=="function"?Xo.default.validateHeaderName:t=>{if(!/^[\^`\-\w!#$%&'*+.|~]+$/.test(t)){let e=new TypeError(`Header name must be a valid HTTP token [${t}]`);throw Object.defineProperty(e,"code",{value:"ERR_INVALID_HTTP_TOKEN"}),e}},tl=typeof Xo.default.validateHeaderValue=="function"?Xo.default.validateHeaderValue:(t,e)=>{if(/[^\t\u0020-\u007E\u0080-\u00FF]/.test(e)){let n=new TypeError(`Invalid character in header content ["${t}"]`);throw Object.defineProperty(n,"code",{value:"ERR_INVALID_CHAR"}),n}},dt=class t extends URLSearchParams{constructor(e){let n=[];if(e instanceof t){let r=e.raw();for(let[o,s]of Object.entries(r))n.push(...s.map(a=>[o,a]))}else if(e!=null)if(typeof e=="object"&&!el.types.isBoxedPrimitive(e)){let r=e[Symbol.iterator];if(r==null)n.push(...Object.entries(e));else{if(typeof r!="function")throw new TypeError("Header pairs must be iterable");n=[...e].map(o=>{if(typeof o!="object"||el.types.isBoxedPrimitive(o))throw new TypeError("Each header pair must be an iterable object");return[...o]}).map(o=>{if(o.length!==2)throw new TypeError("Each header pair must be a name/value tuple");return[...o]})}}else throw new TypeError("Failed to construct 'Headers': The provided value is not of type '(sequence<sequence<ByteString>> or record<ByteString, ByteString>)");return n=n.length>0?n.map(([r,o])=>(ra(r),tl(r,String(o)),[String(r).toLowerCase(),String(o)])):void 0,super(n),new Proxy(this,{get(r,o,s){switch(o){case"append":case"set":return(a,u)=>(ra(a),tl(a,String(u)),URLSearchParams.prototype[o].call(r,String(a).toLowerCase(),String(u)));case"delete":case"has":case"getAll":return a=>(ra(a),URLSearchParams.prototype[o].call(r,String(a).toLowerCase()));case"keys":return()=>(r.sort(),new Set(URLSearchParams.prototype.keys.call(r)).keys());default:return Reflect.get(r,o,s)}}})}get[Symbol.toStringTag](){return this.constructor.name}toString(){return Object.prototype.toString.call(this)}get(e){let n=this.getAll(e);if(n.length===0)return null;let r=n.join(", ");return/^content-encoding$/i.test(e)&&(r=r.toLowerCase()),r}forEach(e,n=void 0){for(let r of this.keys())Reflect.apply(e,n,[this.get(r),r,this])}*values(){for(let e of this.keys())yield this.get(e)}*entries(){for(let e of this.keys())yield[e,this.get(e)]}[Symbol.iterator](){return this.entries()}raw(){return[...this.keys()].reduce((e,n)=>(e[n]=this.getAll(n),e),{})}[Symbol.for("nodejs.util.inspect.custom")](){return[...this.keys()].reduce((e,n)=>{let r=this.getAll(n);return n==="host"?e[n]=r[0]:e[n]=r.length>1?r:r[0],e},{})}};Object.defineProperties(dt.prototype,["get","entries","forEach","values"].reduce((t,e)=>(t[e]={enumerable:!0},t),{}))});var xE,Zo,nl=Le(()=>{xE=new Set([301,302,303,307,308]),Zo=t=>xE.has(t)});var Ht,gt,ag=Le(()=>{oa();na();nl();Ht=Symbol("Response internals"),gt=class t extends tn{constructor(e=null,n={}){super(e,n);let r=n.status!=null?n.status:200,o=new dt(n.headers);if(e!==null&&!o.has("Content-Type")){let s=ta(e,this);s&&o.append("Content-Type",s)}this[Ht]={type:"default",url:n.url,status:r,statusText:n.statusText||"",headers:o,counter:n.counter,highWaterMark:n.highWaterMark}}get type(){return this[Ht].type}get url(){return this[Ht].url||""}get status(){return this[Ht].status}get ok(){return this[Ht].status>=200&&this[Ht].status<300}get redirected(){return this[Ht].counter>0}get statusText(){return this[Ht].statusText}get headers(){return this[Ht].headers}get highWaterMark(){return this[Ht].highWaterMark}clone(){return new t(so(this,this.highWaterMark),{type:this.type,url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected,size:this.size,highWaterMark:this.highWaterMark})}static redirect(e,n=302){if(!Zo(n))throw new RangeError('Failed to execute "redirect" on "response": Invalid status code');return new t(null,{headers:{location:new URL(e).toString()},status:n})}static error(){let e=new t(null,{status:0,statusText:""});return e[Ht].type="error",e}static json(e=void 0,n={}){let r=JSON.stringify(e);if(r===void 0)throw new TypeError("data is not JSON serializable");let o=new dt(n&&n.headers);return o.has("content-type")||o.set("content-type","application/json"),new t(r,{...n,headers:o})}get[Symbol.toStringTag](){return"Response"}};Object.defineProperties(gt.prototype,{type:{enumerable:!0},url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}})});var ug,cg=Le(()=>{ug=t=>{if(t.search)return t.search;let e=t.href.length-1,n=t.hash||(t.href[e]==="#"?"#":"");return t.href[e-n.length]==="?"?"?":""}});function lg(t,e=!1){return t==null||(t=new URL(t),/^(about|blob|data):$/.test(t.protocol))?"no-referrer":(t.username="",t.password="",t.hash="",e&&(t.pathname="",t.search=""),t)}function pg(t){if(!fg.has(t))throw new TypeError(`Invalid referrerPolicy: ${t}`);return t}function OE(t){if(/^(http|ws)s:$/.test(t.protocol))return!0;let e=t.host.replace(/(^\[)|(]$)/g,""),n=(0,dg.isIP)(e);return n===4&&/^127\./.test(e)||n===6&&/^(((0+:){7})|(::(0+:){0,6}))0*1$/.test(e)?!0:t.host==="localhost"||t.host.endsWith(".localhost")?!1:t.protocol==="file:"}function io(t){return/^about:(blank|srcdoc)$/.test(t)||t.protocol==="data:"||/^(blob|filesystem):$/.test(t.protocol)?!0:OE(t)}function mg(t,{referrerURLCallback:e,referrerOriginCallback:n}={}){if(t.referrer==="no-referrer"||t.referrerPolicy==="")return null;let r=t.referrerPolicy;if(t.referrer==="about:client")return"no-referrer";let o=t.referrer,s=lg(o),a=lg(o,!0);s.toString().length>4096&&(s=a),e&&(s=e(s)),n&&(a=n(a));let u=new URL(t.url);switch(r){case"no-referrer":return"no-referrer";case"origin":return a;case"unsafe-url":return s;case"strict-origin":return io(s)&&!io(u)?"no-referrer":a.toString();case"strict-origin-when-cross-origin":return s.origin===u.origin?s:io(s)&&!io(u)?"no-referrer":a;case"same-origin":return s.origin===u.origin?s:"no-referrer";case"origin-when-cross-origin":return s.origin===u.origin?s:a;case"no-referrer-when-downgrade":return io(s)&&!io(u)?"no-referrer":s;default:throw new TypeError(`Invalid referrerPolicy: ${r}`)}}function gg(t){let e=(t.get("referrer-policy")||"").split(/[,\s]+/),n="";for(let r of e)r&&fg.has(r)&&(n=r);return n}var dg,fg,hg,rl=Le(()=>{dg=require("node:net");fg=new Set(["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"]),hg="strict-origin-when-cross-origin"});var yg,_g,Ye,es,PE,Yn,bg,Cg=Le(()=>{yg=require("node:url"),_g=require("node:util");oa();na();Qi();cg();rl();Ye=Symbol("Request internals"),es=t=>typeof t=="object"&&typeof t[Ye]=="object",PE=(0,_g.deprecate)(()=>{},".data is not a valid RequestInit property, use .body instead","https://github.com/node-fetch/node-fetch/issues/1000 (request)"),Yn=class t extends tn{constructor(e,n={}){let r;if(es(e)?r=new URL(e.url):(r=new URL(e),e={}),r.username!==""||r.password!=="")throw new TypeError(`${r} is an url with embedded credentials.`);let o=n.method||e.method||"GET";if(/^(delete|get|head|options|post|put)$/i.test(o)&&(o=o.toUpperCase()),!es(n)&&"data"in n&&PE(),(n.body!=null||es(e)&&e.body!==null)&&(o==="GET"||o==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body");let s=n.body?n.body:es(e)&&e.body!==null?so(e):null;super(s,{size:n.size||e.size||0});let a=new dt(n.headers||e.headers||{});if(s!==null&&!a.has("Content-Type")){let d=ta(s,this);d&&a.set("Content-Type",d)}let u=es(e)?e.signal:null;if("signal"in n&&(u=n.signal),u!=null&&!qm(u))throw new TypeError("Expected signal to be an instanceof AbortSignal or EventTarget");let l=n.referrer==null?e.referrer:n.referrer;if(l==="")l="no-referrer";else if(l){let d=new URL(l);l=/^about:(\/\/)?client$/.test(d)?"client":d}else l=void 0;this[Ye]={method:o,redirect:n.redirect||e.redirect||"follow",headers:a,parsedURL:r,signal:u,referrer:l},this.follow=n.follow===void 0?e.follow===void 0?20:e.follow:n.follow,this.compress=n.compress===void 0?e.compress===void 0?!0:e.compress:n.compress,this.counter=n.counter||e.counter||0,this.agent=n.agent||e.agent,this.highWaterMark=n.highWaterMark||e.highWaterMark||16384,this.insecureHTTPParser=n.insecureHTTPParser||e.insecureHTTPParser||!1,this.referrerPolicy=n.referrerPolicy||e.referrerPolicy||""}get method(){return this[Ye].method}get url(){return(0,yg.format)(this[Ye].parsedURL)}get headers(){return this[Ye].headers}get redirect(){return this[Ye].redirect}get signal(){return this[Ye].signal}get referrer(){if(this[Ye].referrer==="no-referrer")return"";if(this[Ye].referrer==="client")return"about:client";if(this[Ye].referrer)return this[Ye].referrer.toString()}get referrerPolicy(){return this[Ye].referrerPolicy}set referrerPolicy(e){this[Ye].referrerPolicy=pg(e)}clone(){return new t(this)}get[Symbol.toStringTag](){return"Request"}};Object.defineProperties(Yn.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0},referrer:{enumerable:!0},referrerPolicy:{enumerable:!0}});bg=t=>{let{parsedURL:e}=t[Ye],n=new dt(t[Ye].headers);n.has("Accept")||n.set("Accept","*/*");let r=null;if(t.body===null&&/^(post|put)$/i.test(t.method)&&(r="0"),t.body!==null){let u=og(t);typeof u=="number"&&!Number.isNaN(u)&&(r=String(u))}r&&n.set("Content-Length",r),t.referrerPolicy===""&&(t.referrerPolicy=hg),t.referrer&&t.referrer!=="no-referrer"?t[Ye].referrer=mg(t):t[Ye].referrer="no-referrer",t[Ye].referrer instanceof URL&&n.set("Referer",t.referrer),n.has("User-Agent")||n.set("User-Agent","node-fetch"),t.compress&&!n.has("Accept-Encoding")&&n.set("Accept-Encoding","gzip, deflate, br");let{agent:o}=t;typeof o=="function"&&(o=o(e));let s=ug(e),a={path:e.pathname+s,method:t.method,headers:n[Symbol.for("nodejs.util.inspect.custom")](),insecureHTTPParser:t.insecureHTTPParser,agent:o};return{parsedURL:e,options:a}}});var ts,wg=Le(()=>{Ki();ts=class extends Dn{constructor(e,n="aborted"){super(e,n)}}});var Ag={};fi(Ag,{AbortError:()=>ts,Blob:()=>zt,FetchError:()=>st,File:()=>Jn,FormData:()=>Vn,Headers:()=>dt,Request:()=>Yn,Response:()=>gt,blobFrom:()=>Ym,blobFromSync:()=>Km,default:()=>ol,fileFrom:()=>Qm,fileFromSync:()=>Xm,isRedirect:()=>Zo});async function ol(t,e){return new Promise((n,r)=>{let o=new Yn(t,e),{parsedURL:s,options:a}=bg(o);if(!FE.has(s.protocol))throw new TypeError(`node-fetch cannot load ${t}. URL scheme "${s.protocol.replace(/:$/,"")}" is not supported.`);if(s.protocol==="data:"){let w=Pm(o.url),y=new gt(w,{headers:{"Content-Type":w.typeFull}});n(y);return}let u=(s.protocol==="https:"?kg.default:Eg.default).request,{signal:l}=o,d=null,f=()=>{let w=new ts("The operation was aborted.");r(w),o.body&&o.body instanceof yt.default.Readable&&o.body.destroy(w),!(!d||!d.body)&&d.body.emit("error",w)};if(l&&l.aborted){f();return}let p=()=>{f(),b()},m=u(s.toString(),a);l&&l.addEventListener("abort",p);let b=()=>{m.abort(),l&&l.removeEventListener("abort",p)};m.on("error",w=>{r(new st(`request to ${o.url} failed, reason: ${w.message}`,"system",w)),b()}),IE(m,w=>{d&&d.body&&d.body.destroy(w)}),process.version<"v14"&&m.on("socket",w=>{let y;w.prependListener("end",()=>{y=w._eventsCount}),w.prependListener("close",g=>{if(d&&y<w._eventsCount&&!g){let _=new Error("Premature close");_.code="ERR_STREAM_PREMATURE_CLOSE",d.body.emit("error",_)}})}),m.on("response",w=>{m.setTimeout(0);let y=ig(w.rawHeaders);if(Zo(w.statusCode)){let S=y.get("Location"),v=null;try{v=S===null?null:new URL(S,o.url)}catch{if(o.redirect!=="manual"){r(new st(`uri requested responds with an invalid redirect URL: ${S}`,"invalid-redirect")),b();return}}switch(o.redirect){case"error":r(new st(`uri requested responds with a redirect, redirect mode is set to error: ${o.url}`,"no-redirect")),b();return;case"manual":break;case"follow":{if(v===null)break;if(o.counter>=o.follow){r(new st(`maximum redirect reached at: ${o.url}`,"max-redirect")),b();return}let R={headers:new dt(o.headers),follow:o.follow,counter:o.counter+1,agent:o.agent,compress:o.compress,method:o.method,body:so(o),signal:o.signal,size:o.size,referrer:o.referrer,referrerPolicy:o.referrerPolicy};if(!zm(o.url,v)||!Hm(o.url,v))for(let V of["authorization","www-authenticate","cookie","cookie2"])R.headers.delete(V);if(w.statusCode!==303&&o.body&&e.body instanceof yt.default.Readable){r(new st("Cannot follow redirect with body being a readable stream","unsupported-redirect")),b();return}(w.statusCode===303||(w.statusCode===301||w.statusCode===302)&&o.method==="POST")&&(R.method="GET",R.body=void 0,R.headers.delete("content-length"));let $=gg(y);$&&(R.referrerPolicy=$),n(ol(new Yn(v,R))),b();return}default:return r(new TypeError(`Redirect option '${o.redirect}' is not a valid value of RequestRedirect`))}}l&&w.once("end",()=>{l.removeEventListener("abort",p)});let g=(0,yt.pipeline)(w,new yt.PassThrough,S=>{S&&r(S)});process.version<"v12.10"&&w.on("aborted",p);let _={url:o.url,status:w.statusCode,statusText:w.statusMessage,headers:y,size:o.size,counter:o.counter,highWaterMark:o.highWaterMark},A=y.get("Content-Encoding");if(!o.compress||o.method==="HEAD"||A===null||w.statusCode===204||w.statusCode===304){d=new gt(g,_),n(d);return}let C={flush:Er.default.Z_SYNC_FLUSH,finishFlush:Er.default.Z_SYNC_FLUSH};if(A==="gzip"||A==="x-gzip"){g=(0,yt.pipeline)(g,Er.default.createGunzip(C),S=>{S&&r(S)}),d=new gt(g,_),n(d);return}if(A==="deflate"||A==="x-deflate"){let S=(0,yt.pipeline)(w,new yt.PassThrough,v=>{v&&r(v)});S.once("data",v=>{(v[0]&15)===8?g=(0,yt.pipeline)(g,Er.default.createInflate(),R=>{R&&r(R)}):g=(0,yt.pipeline)(g,Er.default.createInflateRaw(),R=>{R&&r(R)}),d=new gt(g,_),n(d)}),S.once("end",()=>{d||(d=new gt(g,_),n(d))});return}if(A==="br"){g=(0,yt.pipeline)(g,Er.default.createBrotliDecompress(),S=>{S&&r(S)}),d=new gt(g,_),n(d);return}d=new gt(g,_),n(d)}),sg(m,o).catch(r)})}function IE(t,e){let n=ns.Buffer.from(`0\r
|
|
35
|
+
`)),r.push(`--${n}--`),new e(r,{type:"multipart/form-data; boundary="+n})}var Ko,bE,CE,jm,wE,Um,Vc,br,Vn,Ki=Le(()=>{Vo();Jc();({toStringTag:Ko,iterator:bE,hasInstance:CE}=Symbol),jm=Math.random,wE="append,set,get,getAll,delete,keys,values,entries,forEach,constructor".split(","),Um=(t,e,n)=>(t+="",/^(Blob|File)$/.test(e&&e[Ko])?[(n=n!==void 0?n+"":e[Ko]=="File"?e.name:"blob",t),e.name!==n||e[Ko]=="blob"?new Jn([e],n,e):e]:[t,e+""]),Vc=(t,e)=>(e?t:t.replace(/\r?\n|\r/g,`\r
|
|
36
|
+
`)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),br=(t,e,n)=>{if(e.length<n)throw new TypeError(`Failed to execute '${t}' on 'FormData': ${n} arguments required, but only ${e.length} present.`)},Vn=class{#e=[];constructor(...e){if(e.length)throw new TypeError("Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement'.")}get[Ko](){return"FormData"}[bE](){return this.entries()}static[CE](e){return e&&typeof e=="object"&&e[Ko]==="FormData"&&!wE.some(n=>typeof e[n]!="function")}append(...e){br("append",arguments,2),this.#e.push(Um(...e))}delete(e){br("delete",arguments,1),e+="",this.#e=this.#e.filter(([n])=>n!==e)}get(e){br("get",arguments,1),e+="";for(var n=this.#e,r=n.length,o=0;o<r;o++)if(n[o][0]===e)return n[o][1];return null}getAll(e,n){return br("getAll",arguments,1),n=[],e+="",this.#e.forEach(r=>r[0]===e&&n.push(r[1])),n}has(e){return br("has",arguments,1),e+="",this.#e.some(n=>n[0]===e)}forEach(e,n){br("forEach",arguments,1);for(var[r,o]of this)e.call(n,o,r,this)}set(...e){br("set",arguments,2);var n=[],r=!0;e=Um(...e),this.#e.forEach(o=>{o[0]===e[0]?r&&(r=!n.push(e)):n.push(o)}),r&&n.push(e),this.#e=n}*entries(){yield*this.#e}*keys(){for(var[e]of this)yield e}*values(){for(var[,e]of this)yield e}}});var Dn,Yi=Le(()=>{Dn=class extends Error{constructor(e,n){super(e),Error.captureStackTrace(this,this.constructor),this.type=n}get name(){return this.constructor.name}get[Symbol.toStringTag](){return this.constructor.name}}});var st,Kc=Le(()=>{Yi();st=class extends Dn{constructor(e,n,r){super(e,n),r&&(this.code=this.errno=r.code,this.erroredSysCall=r.syscall)}}});var Qi,Yc,Yo,qm,zm,Hm,Xi=Le(()=>{Qi=Symbol.toStringTag,Yc=t=>typeof t=="object"&&typeof t.append=="function"&&typeof t.delete=="function"&&typeof t.get=="function"&&typeof t.getAll=="function"&&typeof t.has=="function"&&typeof t.set=="function"&&typeof t.sort=="function"&&t[Qi]==="URLSearchParams",Yo=t=>t&&typeof t=="object"&&typeof t.arrayBuffer=="function"&&typeof t.type=="string"&&typeof t.stream=="function"&&typeof t.constructor=="function"&&/^(Blob|File)$/.test(t[Qi]),qm=t=>typeof t=="object"&&(t[Qi]==="AbortSignal"||t[Qi]==="EventTarget"),zm=(t,e)=>{let n=new URL(e).hostname,r=new URL(t).hostname;return n===r||n.endsWith(`.${r}`)},Hm=(t,e)=>{let n=new URL(e).protocol,r=new URL(t).protocol;return n===r}});var Gm=X((d1,Wm)=>{if(!globalThis.DOMException)try{let{MessageChannel:t}=require("worker_threads"),e=new t().port1,n=new ArrayBuffer;e.postMessage(n,[n,n])}catch(t){t.constructor.name==="DOMException"&&(globalThis.DOMException=t.constructor)}Wm.exports=globalThis.DOMException});var Cr,Jm,Vm,Qc,Km,Ym,Qm,Xm,Zm,eg,Zi,Xc=Le(()=>{Cr=require("node:fs"),Jm=require("node:path"),Vm=xe(Gm(),1);Jc();Vo();({stat:Qc}=Cr.promises),Km=(t,e)=>Zm((0,Cr.statSync)(t),t,e),Ym=(t,e)=>Qc(t).then(n=>Zm(n,t,e)),Qm=(t,e)=>Qc(t).then(n=>eg(n,t,e)),Xm=(t,e)=>eg((0,Cr.statSync)(t),t,e),Zm=(t,e,n="")=>new zt([new Zi({path:e,size:t.size,lastModified:t.mtimeMs,start:0})],{type:n}),eg=(t,e,n="")=>new Jn([new Zi({path:e,size:t.size,lastModified:t.mtimeMs,start:0})],(0,Jm.basename)(e),{type:n,lastModified:t.mtimeMs}),Zi=class t{#e;#t;constructor(e){this.#e=e.path,this.#t=e.start,this.size=e.size,this.lastModified=e.lastModified}slice(e,n){return new t({path:this.#e,lastModified:this.lastModified,size:n-e,start:this.#t+e})}async*stream(){let{mtimeMs:e}=await Qc(this.#e);if(e>this.lastModified)throw new Vm.default("The requested file could not be read, typically due to permission problems that have occurred after a reference to a file was acquired.","NotReadableError");yield*(0,Cr.createReadStream)(this.#e,{start:this.#t,end:this.#t+this.size-1})}get[Symbol.toStringTag](){return"Blob"}}});var ng={};fi(ng,{toFormData:()=>DE});function TE(t){let e=t.match(/\bfilename=("(.*?)"|([^()<>@,;:\\"/[\]?={}\s\t]+))($|;\s)/i);if(!e)return;let n=e[2]||e[3]||"",r=n.slice(n.lastIndexOf("\\")+1);return r=r.replace(/%22/g,'"'),r=r.replace(/&#(\d{4});/g,(o,s)=>String.fromCharCode(s)),r}async function DE(t,e){if(!/multipart/i.test(e))throw new TypeError("Failed to fetch");let n=e.match(/boundary=(?:"([^"]+)"|([^;]+))/i);if(!n)throw new TypeError("no or bad content-type header, no multipart boundary");let r=new Zc(n[1]||n[2]),o,s,a,u,l,d,f=[],p=new Vn,m=_=>{a+=g.decode(_,{stream:!0})},b=_=>{f.push(_)},w=()=>{let _=new Jn(f,d,{type:l});p.append(u,_)},y=()=>{p.append(u,a)},g=new TextDecoder("utf-8");g.decode(),r.onPartBegin=function(){r.onPartData=m,r.onPartEnd=y,o="",s="",a="",u="",l="",d=null,f.length=0},r.onHeaderField=function(_){o+=g.decode(_,{stream:!0})},r.onHeaderValue=function(_){s+=g.decode(_,{stream:!0})},r.onHeaderEnd=function(){if(s+=g.decode(),o=o.toLowerCase(),o==="content-disposition"){let _=s.match(/\bname=("([^"]*)"|([^()<>@,;:\\"/[\]?={}\s\t]+))/i);_&&(u=_[2]||_[3]||""),d=TE(s),d&&(r.onPartData=b,r.onPartEnd=w)}else o==="content-type"&&(l=s);s="",o=""};for await(let _ of t)r.write(_);return r.end(),p}var en,Fe,tg,Kn,ea,ta,EE,Qo,kE,AE,SE,vE,wr,Zc,rg=Le(()=>{Xc();Ki();en=0,Fe={START_BOUNDARY:en++,HEADER_FIELD_START:en++,HEADER_FIELD:en++,HEADER_VALUE_START:en++,HEADER_VALUE:en++,HEADER_VALUE_ALMOST_DONE:en++,HEADERS_ALMOST_DONE:en++,PART_DATA_START:en++,PART_DATA:en++,END:en++},tg=1,Kn={PART_BOUNDARY:tg,LAST_BOUNDARY:tg*=2},ea=10,ta=13,EE=32,Qo=45,kE=58,AE=97,SE=122,vE=t=>t|32,wr=()=>{},Zc=class{constructor(e){this.index=0,this.flags=0,this.onHeaderEnd=wr,this.onHeaderField=wr,this.onHeadersEnd=wr,this.onHeaderValue=wr,this.onPartBegin=wr,this.onPartData=wr,this.onPartEnd=wr,this.boundaryChars={},e=`\r
|
|
37
|
+
--`+e;let n=new Uint8Array(e.length);for(let r=0;r<e.length;r++)n[r]=e.charCodeAt(r),this.boundaryChars[n[r]]=!0;this.boundary=n,this.lookbehind=new Uint8Array(this.boundary.length+8),this.state=Fe.START_BOUNDARY}write(e){let n=0,r=e.length,o=this.index,{lookbehind:s,boundary:a,boundaryChars:u,index:l,state:d,flags:f}=this,p=this.boundary.length,m=p-1,b=e.length,w,y,g=S=>{this[S+"Mark"]=n},_=S=>{delete this[S+"Mark"]},A=(S,T,R,$)=>{(T===void 0||T!==R)&&this[S]($&&$.subarray(T,R))},C=(S,T)=>{let R=S+"Mark";R in this&&(T?(A(S,this[R],n,e),delete this[R]):(A(S,this[R],e.length,e),this[R]=0))};for(n=0;n<r;n++)switch(w=e[n],d){case Fe.START_BOUNDARY:if(l===a.length-2){if(w===Qo)f|=Kn.LAST_BOUNDARY;else if(w!==ta)return;l++;break}else if(l-1===a.length-2){if(f&Kn.LAST_BOUNDARY&&w===Qo)d=Fe.END,f=0;else if(!(f&Kn.LAST_BOUNDARY)&&w===ea)l=0,A("onPartBegin"),d=Fe.HEADER_FIELD_START;else return;break}w!==a[l+2]&&(l=-2),w===a[l+2]&&l++;break;case Fe.HEADER_FIELD_START:d=Fe.HEADER_FIELD,g("onHeaderField"),l=0;case Fe.HEADER_FIELD:if(w===ta){_("onHeaderField"),d=Fe.HEADERS_ALMOST_DONE;break}if(l++,w===Qo)break;if(w===kE){if(l===1)return;C("onHeaderField",!0),d=Fe.HEADER_VALUE_START;break}if(y=vE(w),y<AE||y>SE)return;break;case Fe.HEADER_VALUE_START:if(w===EE)break;g("onHeaderValue"),d=Fe.HEADER_VALUE;case Fe.HEADER_VALUE:w===ta&&(C("onHeaderValue",!0),A("onHeaderEnd"),d=Fe.HEADER_VALUE_ALMOST_DONE);break;case Fe.HEADER_VALUE_ALMOST_DONE:if(w!==ea)return;d=Fe.HEADER_FIELD_START;break;case Fe.HEADERS_ALMOST_DONE:if(w!==ea)return;A("onHeadersEnd"),d=Fe.PART_DATA_START;break;case Fe.PART_DATA_START:d=Fe.PART_DATA,g("onPartData");case Fe.PART_DATA:if(o=l,l===0){for(n+=m;n<b&&!(e[n]in u);)n+=p;n-=m,w=e[n]}if(l<a.length)a[l]===w?(l===0&&C("onPartData",!0),l++):l=0;else if(l===a.length)l++,w===ta?f|=Kn.PART_BOUNDARY:w===Qo?f|=Kn.LAST_BOUNDARY:l=0;else if(l-1===a.length)if(f&Kn.PART_BOUNDARY){if(l=0,w===ea){f&=~Kn.PART_BOUNDARY,A("onPartEnd"),A("onPartBegin"),d=Fe.HEADER_FIELD_START;break}}else f&Kn.LAST_BOUNDARY&&w===Qo?(A("onPartEnd"),d=Fe.END,f=0):l=0;if(l>0)s[l-1]=w;else if(o>0){let S=new Uint8Array(s.buffer,s.byteOffset,s.byteLength);A("onPartData",0,o,S),o=0,g("onPartData"),n--}break;case Fe.END:break;default:throw new Error(`Unexpected state entered: ${d}`)}C("onHeaderField"),C("onHeaderValue"),C("onPartData"),this.index=l,this.state=d,this.flags=f}end(){if(this.state===Fe.HEADER_FIELD_START&&this.index===0||this.state===Fe.PART_DATA&&this.index===this.boundary.length)this.onPartEnd();else if(this.state!==Fe.END)throw new Error("MultipartParser.end(): stream ended unexpectedly")}}});async function el(t){if(t[lt].disturbed)throw new TypeError(`body used already for: ${t.url}`);if(t[lt].disturbed=!0,t[lt].error)throw t[lt].error;let{body:e}=t;if(e===null)return mt.Buffer.alloc(0);if(!(e instanceof xt.default))return mt.Buffer.alloc(0);let n=[],r=0;try{for await(let o of e){if(t.size>0&&r+o.length>t.size){let s=new st(`content size at ${t.url} over limit: ${t.size}`,"max-size");throw e.destroy(s),s}r+=o.length,n.push(o)}}catch(o){throw o instanceof Dn?o:new st(`Invalid response body while trying to fetch ${t.url}: ${o.message}`,"system",o)}if(e.readableEnded===!0||e._readableState.ended===!0)try{return n.every(o=>typeof o=="string")?mt.Buffer.from(n.join("")):mt.Buffer.concat(n,r)}catch(o){throw new st(`Could not create Buffer from response body for ${t.url}: ${o.message}`,"system",o)}else throw new st(`Premature close of server response while trying to fetch ${t.url}`)}var xt,Rn,mt,RE,lt,tn,so,xE,na,og,sg,ra=Le(()=>{xt=xe(require("node:stream"),1),Rn=require("node:util"),mt=require("node:buffer");Vo();Ki();Kc();Yi();Xi();RE=(0,Rn.promisify)(xt.default.pipeline),lt=Symbol("Body internals"),tn=class{constructor(e,{size:n=0}={}){let r=null;e===null?e=null:Yc(e)?e=mt.Buffer.from(e.toString()):Yo(e)||mt.Buffer.isBuffer(e)||(Rn.types.isAnyArrayBuffer(e)?e=mt.Buffer.from(e):ArrayBuffer.isView(e)?e=mt.Buffer.from(e.buffer,e.byteOffset,e.byteLength):e instanceof xt.default||(e instanceof Vn?(e=$m(e),r=e.type.split("=")[1]):e=mt.Buffer.from(String(e))));let o=e;mt.Buffer.isBuffer(e)?o=xt.default.Readable.from(e):Yo(e)&&(o=xt.default.Readable.from(e.stream())),this[lt]={body:e,stream:o,boundary:r,disturbed:!1,error:null},this.size=n,e instanceof xt.default&&e.on("error",s=>{let a=s instanceof Dn?s:new st(`Invalid response body while trying to fetch ${this.url}: ${s.message}`,"system",s);this[lt].error=a})}get body(){return this[lt].stream}get bodyUsed(){return this[lt].disturbed}async arrayBuffer(){let{buffer:e,byteOffset:n,byteLength:r}=await el(this);return e.slice(n,n+r)}async formData(){let e=this.headers.get("content-type");if(e.startsWith("application/x-www-form-urlencoded")){let r=new Vn,o=new URLSearchParams(await this.text());for(let[s,a]of o)r.append(s,a);return r}let{toFormData:n}=await Promise.resolve().then(()=>(rg(),ng));return n(this.body,e)}async blob(){let e=this.headers&&this.headers.get("content-type")||this[lt].body&&this[lt].body.type||"",n=await this.arrayBuffer();return new zt([n],{type:e})}async json(){let e=await this.text();return JSON.parse(e)}async text(){let e=await el(this);return new TextDecoder().decode(e)}buffer(){return el(this)}};tn.prototype.buffer=(0,Rn.deprecate)(tn.prototype.buffer,"Please use 'response.arrayBuffer()' instead of 'response.buffer()'","node-fetch#buffer");Object.defineProperties(tn.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0},data:{get:(0,Rn.deprecate)(()=>{},"data doesn't exist, use json(), text(), arrayBuffer(), or body instead","https://github.com/node-fetch/node-fetch/issues/1000 (response)")}});so=(t,e)=>{let n,r,{body:o}=t[lt];if(t.bodyUsed)throw new Error("cannot clone body after it is used");return o instanceof xt.default&&typeof o.getBoundary!="function"&&(n=new xt.PassThrough({highWaterMark:e}),r=new xt.PassThrough({highWaterMark:e}),o.pipe(n),o.pipe(r),t[lt].stream=n,o=r),o},xE=(0,Rn.deprecate)(t=>t.getBoundary(),"form-data doesn't follow the spec and requires special treatment. Use alternative package","https://github.com/node-fetch/node-fetch/issues/1167"),na=(t,e)=>t===null?null:typeof t=="string"?"text/plain;charset=UTF-8":Yc(t)?"application/x-www-form-urlencoded;charset=UTF-8":Yo(t)?t.type||null:mt.Buffer.isBuffer(t)||Rn.types.isAnyArrayBuffer(t)||ArrayBuffer.isView(t)?null:t instanceof Vn?`multipart/form-data; boundary=${e[lt].boundary}`:t&&typeof t.getBoundary=="function"?`multipart/form-data;boundary=${xE(t)}`:t instanceof xt.default?null:"text/plain;charset=UTF-8",og=t=>{let{body:e}=t[lt];return e===null?0:Yo(e)?e.size:mt.Buffer.isBuffer(e)?e.length:e&&typeof e.getLengthSync=="function"&&e.hasKnownLength&&e.hasKnownLength()?e.getLengthSync():null},sg=async(t,{body:e})=>{e===null?t.end():await RE(e,t)}});function ig(t=[]){return new dt(t.reduce((e,n,r,o)=>(r%2===0&&e.push(o.slice(r,r+2)),e),[]).filter(([e,n])=>{try{return oa(e),nl(e,String(n)),!0}catch{return!1}}))}var tl,Xo,oa,nl,dt,sa=Le(()=>{tl=require("node:util"),Xo=xe(require("node:http"),1),oa=typeof Xo.default.validateHeaderName=="function"?Xo.default.validateHeaderName:t=>{if(!/^[\^`\-\w!#$%&'*+.|~]+$/.test(t)){let e=new TypeError(`Header name must be a valid HTTP token [${t}]`);throw Object.defineProperty(e,"code",{value:"ERR_INVALID_HTTP_TOKEN"}),e}},nl=typeof Xo.default.validateHeaderValue=="function"?Xo.default.validateHeaderValue:(t,e)=>{if(/[^\t\u0020-\u007E\u0080-\u00FF]/.test(e)){let n=new TypeError(`Invalid character in header content ["${t}"]`);throw Object.defineProperty(n,"code",{value:"ERR_INVALID_CHAR"}),n}},dt=class t extends URLSearchParams{constructor(e){let n=[];if(e instanceof t){let r=e.raw();for(let[o,s]of Object.entries(r))n.push(...s.map(a=>[o,a]))}else if(e!=null)if(typeof e=="object"&&!tl.types.isBoxedPrimitive(e)){let r=e[Symbol.iterator];if(r==null)n.push(...Object.entries(e));else{if(typeof r!="function")throw new TypeError("Header pairs must be iterable");n=[...e].map(o=>{if(typeof o!="object"||tl.types.isBoxedPrimitive(o))throw new TypeError("Each header pair must be an iterable object");return[...o]}).map(o=>{if(o.length!==2)throw new TypeError("Each header pair must be a name/value tuple");return[...o]})}}else throw new TypeError("Failed to construct 'Headers': The provided value is not of type '(sequence<sequence<ByteString>> or record<ByteString, ByteString>)");return n=n.length>0?n.map(([r,o])=>(oa(r),nl(r,String(o)),[String(r).toLowerCase(),String(o)])):void 0,super(n),new Proxy(this,{get(r,o,s){switch(o){case"append":case"set":return(a,u)=>(oa(a),nl(a,String(u)),URLSearchParams.prototype[o].call(r,String(a).toLowerCase(),String(u)));case"delete":case"has":case"getAll":return a=>(oa(a),URLSearchParams.prototype[o].call(r,String(a).toLowerCase()));case"keys":return()=>(r.sort(),new Set(URLSearchParams.prototype.keys.call(r)).keys());default:return Reflect.get(r,o,s)}}})}get[Symbol.toStringTag](){return this.constructor.name}toString(){return Object.prototype.toString.call(this)}get(e){let n=this.getAll(e);if(n.length===0)return null;let r=n.join(", ");return/^content-encoding$/i.test(e)&&(r=r.toLowerCase()),r}forEach(e,n=void 0){for(let r of this.keys())Reflect.apply(e,n,[this.get(r),r,this])}*values(){for(let e of this.keys())yield this.get(e)}*entries(){for(let e of this.keys())yield[e,this.get(e)]}[Symbol.iterator](){return this.entries()}raw(){return[...this.keys()].reduce((e,n)=>(e[n]=this.getAll(n),e),{})}[Symbol.for("nodejs.util.inspect.custom")](){return[...this.keys()].reduce((e,n)=>{let r=this.getAll(n);return n==="host"?e[n]=r[0]:e[n]=r.length>1?r:r[0],e},{})}};Object.defineProperties(dt.prototype,["get","entries","forEach","values"].reduce((t,e)=>(t[e]={enumerable:!0},t),{}))});var OE,Zo,rl=Le(()=>{OE=new Set([301,302,303,307,308]),Zo=t=>OE.has(t)});var Ht,gt,ag=Le(()=>{sa();ra();rl();Ht=Symbol("Response internals"),gt=class t extends tn{constructor(e=null,n={}){super(e,n);let r=n.status!=null?n.status:200,o=new dt(n.headers);if(e!==null&&!o.has("Content-Type")){let s=na(e,this);s&&o.append("Content-Type",s)}this[Ht]={type:"default",url:n.url,status:r,statusText:n.statusText||"",headers:o,counter:n.counter,highWaterMark:n.highWaterMark}}get type(){return this[Ht].type}get url(){return this[Ht].url||""}get status(){return this[Ht].status}get ok(){return this[Ht].status>=200&&this[Ht].status<300}get redirected(){return this[Ht].counter>0}get statusText(){return this[Ht].statusText}get headers(){return this[Ht].headers}get highWaterMark(){return this[Ht].highWaterMark}clone(){return new t(so(this,this.highWaterMark),{type:this.type,url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected,size:this.size,highWaterMark:this.highWaterMark})}static redirect(e,n=302){if(!Zo(n))throw new RangeError('Failed to execute "redirect" on "response": Invalid status code');return new t(null,{headers:{location:new URL(e).toString()},status:n})}static error(){let e=new t(null,{status:0,statusText:""});return e[Ht].type="error",e}static json(e=void 0,n={}){let r=JSON.stringify(e);if(r===void 0)throw new TypeError("data is not JSON serializable");let o=new dt(n&&n.headers);return o.has("content-type")||o.set("content-type","application/json"),new t(r,{...n,headers:o})}get[Symbol.toStringTag](){return"Response"}};Object.defineProperties(gt.prototype,{type:{enumerable:!0},url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}})});var ug,cg=Le(()=>{ug=t=>{if(t.search)return t.search;let e=t.href.length-1,n=t.hash||(t.href[e]==="#"?"#":"");return t.href[e-n.length]==="?"?"?":""}});function lg(t,e=!1){return t==null||(t=new URL(t),/^(about|blob|data):$/.test(t.protocol))?"no-referrer":(t.username="",t.password="",t.hash="",e&&(t.pathname="",t.search=""),t)}function pg(t){if(!fg.has(t))throw new TypeError(`Invalid referrerPolicy: ${t}`);return t}function PE(t){if(/^(http|ws)s:$/.test(t.protocol))return!0;let e=t.host.replace(/(^\[)|(]$)/g,""),n=(0,dg.isIP)(e);return n===4&&/^127\./.test(e)||n===6&&/^(((0+:){7})|(::(0+:){0,6}))0*1$/.test(e)?!0:t.host==="localhost"||t.host.endsWith(".localhost")?!1:t.protocol==="file:"}function io(t){return/^about:(blank|srcdoc)$/.test(t)||t.protocol==="data:"||/^(blob|filesystem):$/.test(t.protocol)?!0:PE(t)}function mg(t,{referrerURLCallback:e,referrerOriginCallback:n}={}){if(t.referrer==="no-referrer"||t.referrerPolicy==="")return null;let r=t.referrerPolicy;if(t.referrer==="about:client")return"no-referrer";let o=t.referrer,s=lg(o),a=lg(o,!0);s.toString().length>4096&&(s=a),e&&(s=e(s)),n&&(a=n(a));let u=new URL(t.url);switch(r){case"no-referrer":return"no-referrer";case"origin":return a;case"unsafe-url":return s;case"strict-origin":return io(s)&&!io(u)?"no-referrer":a.toString();case"strict-origin-when-cross-origin":return s.origin===u.origin?s:io(s)&&!io(u)?"no-referrer":a;case"same-origin":return s.origin===u.origin?s:"no-referrer";case"origin-when-cross-origin":return s.origin===u.origin?s:a;case"no-referrer-when-downgrade":return io(s)&&!io(u)?"no-referrer":s;default:throw new TypeError(`Invalid referrerPolicy: ${r}`)}}function gg(t){let e=(t.get("referrer-policy")||"").split(/[,\s]+/),n="";for(let r of e)r&&fg.has(r)&&(n=r);return n}var dg,fg,hg,ol=Le(()=>{dg=require("node:net");fg=new Set(["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"]),hg="strict-origin-when-cross-origin"});var yg,_g,Ye,es,FE,Yn,bg,Cg=Le(()=>{yg=require("node:url"),_g=require("node:util");sa();ra();Xi();cg();ol();Ye=Symbol("Request internals"),es=t=>typeof t=="object"&&typeof t[Ye]=="object",FE=(0,_g.deprecate)(()=>{},".data is not a valid RequestInit property, use .body instead","https://github.com/node-fetch/node-fetch/issues/1000 (request)"),Yn=class t extends tn{constructor(e,n={}){let r;if(es(e)?r=new URL(e.url):(r=new URL(e),e={}),r.username!==""||r.password!=="")throw new TypeError(`${r} is an url with embedded credentials.`);let o=n.method||e.method||"GET";if(/^(delete|get|head|options|post|put)$/i.test(o)&&(o=o.toUpperCase()),!es(n)&&"data"in n&&FE(),(n.body!=null||es(e)&&e.body!==null)&&(o==="GET"||o==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body");let s=n.body?n.body:es(e)&&e.body!==null?so(e):null;super(s,{size:n.size||e.size||0});let a=new dt(n.headers||e.headers||{});if(s!==null&&!a.has("Content-Type")){let d=na(s,this);d&&a.set("Content-Type",d)}let u=es(e)?e.signal:null;if("signal"in n&&(u=n.signal),u!=null&&!qm(u))throw new TypeError("Expected signal to be an instanceof AbortSignal or EventTarget");let l=n.referrer==null?e.referrer:n.referrer;if(l==="")l="no-referrer";else if(l){let d=new URL(l);l=/^about:(\/\/)?client$/.test(d)?"client":d}else l=void 0;this[Ye]={method:o,redirect:n.redirect||e.redirect||"follow",headers:a,parsedURL:r,signal:u,referrer:l},this.follow=n.follow===void 0?e.follow===void 0?20:e.follow:n.follow,this.compress=n.compress===void 0?e.compress===void 0?!0:e.compress:n.compress,this.counter=n.counter||e.counter||0,this.agent=n.agent||e.agent,this.highWaterMark=n.highWaterMark||e.highWaterMark||16384,this.insecureHTTPParser=n.insecureHTTPParser||e.insecureHTTPParser||!1,this.referrerPolicy=n.referrerPolicy||e.referrerPolicy||""}get method(){return this[Ye].method}get url(){return(0,yg.format)(this[Ye].parsedURL)}get headers(){return this[Ye].headers}get redirect(){return this[Ye].redirect}get signal(){return this[Ye].signal}get referrer(){if(this[Ye].referrer==="no-referrer")return"";if(this[Ye].referrer==="client")return"about:client";if(this[Ye].referrer)return this[Ye].referrer.toString()}get referrerPolicy(){return this[Ye].referrerPolicy}set referrerPolicy(e){this[Ye].referrerPolicy=pg(e)}clone(){return new t(this)}get[Symbol.toStringTag](){return"Request"}};Object.defineProperties(Yn.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0},referrer:{enumerable:!0},referrerPolicy:{enumerable:!0}});bg=t=>{let{parsedURL:e}=t[Ye],n=new dt(t[Ye].headers);n.has("Accept")||n.set("Accept","*/*");let r=null;if(t.body===null&&/^(post|put)$/i.test(t.method)&&(r="0"),t.body!==null){let u=og(t);typeof u=="number"&&!Number.isNaN(u)&&(r=String(u))}r&&n.set("Content-Length",r),t.referrerPolicy===""&&(t.referrerPolicy=hg),t.referrer&&t.referrer!=="no-referrer"?t[Ye].referrer=mg(t):t[Ye].referrer="no-referrer",t[Ye].referrer instanceof URL&&n.set("Referer",t.referrer),n.has("User-Agent")||n.set("User-Agent","node-fetch"),t.compress&&!n.has("Accept-Encoding")&&n.set("Accept-Encoding","gzip, deflate, br");let{agent:o}=t;typeof o=="function"&&(o=o(e));let s=ug(e),a={path:e.pathname+s,method:t.method,headers:n[Symbol.for("nodejs.util.inspect.custom")](),insecureHTTPParser:t.insecureHTTPParser,agent:o};return{parsedURL:e,options:a}}});var ts,wg=Le(()=>{Yi();ts=class extends Dn{constructor(e,n="aborted"){super(e,n)}}});var Ag={};fi(Ag,{AbortError:()=>ts,Blob:()=>zt,FetchError:()=>st,File:()=>Jn,FormData:()=>Vn,Headers:()=>dt,Request:()=>Yn,Response:()=>gt,blobFrom:()=>Ym,blobFromSync:()=>Km,default:()=>sl,fileFrom:()=>Qm,fileFromSync:()=>Xm,isRedirect:()=>Zo});async function sl(t,e){return new Promise((n,r)=>{let o=new Yn(t,e),{parsedURL:s,options:a}=bg(o);if(!IE.has(s.protocol))throw new TypeError(`node-fetch cannot load ${t}. URL scheme "${s.protocol.replace(/:$/,"")}" is not supported.`);if(s.protocol==="data:"){let w=Pm(o.url),y=new gt(w,{headers:{"Content-Type":w.typeFull}});n(y);return}let u=(s.protocol==="https:"?kg.default:Eg.default).request,{signal:l}=o,d=null,f=()=>{let w=new ts("The operation was aborted.");r(w),o.body&&o.body instanceof yt.default.Readable&&o.body.destroy(w),!(!d||!d.body)&&d.body.emit("error",w)};if(l&&l.aborted){f();return}let p=()=>{f(),b()},m=u(s.toString(),a);l&&l.addEventListener("abort",p);let b=()=>{m.abort(),l&&l.removeEventListener("abort",p)};m.on("error",w=>{r(new st(`request to ${o.url} failed, reason: ${w.message}`,"system",w)),b()}),NE(m,w=>{d&&d.body&&d.body.destroy(w)}),process.version<"v14"&&m.on("socket",w=>{let y;w.prependListener("end",()=>{y=w._eventsCount}),w.prependListener("close",g=>{if(d&&y<w._eventsCount&&!g){let _=new Error("Premature close");_.code="ERR_STREAM_PREMATURE_CLOSE",d.body.emit("error",_)}})}),m.on("response",w=>{m.setTimeout(0);let y=ig(w.rawHeaders);if(Zo(w.statusCode)){let S=y.get("Location"),T=null;try{T=S===null?null:new URL(S,o.url)}catch{if(o.redirect!=="manual"){r(new st(`uri requested responds with an invalid redirect URL: ${S}`,"invalid-redirect")),b();return}}switch(o.redirect){case"error":r(new st(`uri requested responds with a redirect, redirect mode is set to error: ${o.url}`,"no-redirect")),b();return;case"manual":break;case"follow":{if(T===null)break;if(o.counter>=o.follow){r(new st(`maximum redirect reached at: ${o.url}`,"max-redirect")),b();return}let R={headers:new dt(o.headers),follow:o.follow,counter:o.counter+1,agent:o.agent,compress:o.compress,method:o.method,body:so(o),signal:o.signal,size:o.size,referrer:o.referrer,referrerPolicy:o.referrerPolicy};if(!zm(o.url,T)||!Hm(o.url,T))for(let V of["authorization","www-authenticate","cookie","cookie2"])R.headers.delete(V);if(w.statusCode!==303&&o.body&&e.body instanceof yt.default.Readable){r(new st("Cannot follow redirect with body being a readable stream","unsupported-redirect")),b();return}(w.statusCode===303||(w.statusCode===301||w.statusCode===302)&&o.method==="POST")&&(R.method="GET",R.body=void 0,R.headers.delete("content-length"));let $=gg(y);$&&(R.referrerPolicy=$),n(sl(new Yn(T,R))),b();return}default:return r(new TypeError(`Redirect option '${o.redirect}' is not a valid value of RequestRedirect`))}}l&&w.once("end",()=>{l.removeEventListener("abort",p)});let g=(0,yt.pipeline)(w,new yt.PassThrough,S=>{S&&r(S)});process.version<"v12.10"&&w.on("aborted",p);let _={url:o.url,status:w.statusCode,statusText:w.statusMessage,headers:y,size:o.size,counter:o.counter,highWaterMark:o.highWaterMark},A=y.get("Content-Encoding");if(!o.compress||o.method==="HEAD"||A===null||w.statusCode===204||w.statusCode===304){d=new gt(g,_),n(d);return}let C={flush:Er.default.Z_SYNC_FLUSH,finishFlush:Er.default.Z_SYNC_FLUSH};if(A==="gzip"||A==="x-gzip"){g=(0,yt.pipeline)(g,Er.default.createGunzip(C),S=>{S&&r(S)}),d=new gt(g,_),n(d);return}if(A==="deflate"||A==="x-deflate"){let S=(0,yt.pipeline)(w,new yt.PassThrough,T=>{T&&r(T)});S.once("data",T=>{(T[0]&15)===8?g=(0,yt.pipeline)(g,Er.default.createInflate(),R=>{R&&r(R)}):g=(0,yt.pipeline)(g,Er.default.createInflateRaw(),R=>{R&&r(R)}),d=new gt(g,_),n(d)}),S.once("end",()=>{d||(d=new gt(g,_),n(d))});return}if(A==="br"){g=(0,yt.pipeline)(g,Er.default.createBrotliDecompress(),S=>{S&&r(S)}),d=new gt(g,_),n(d);return}d=new gt(g,_),n(d)}),sg(m,o).catch(r)})}function NE(t,e){let n=ns.Buffer.from(`0\r
|
|
38
38
|
\r
|
|
39
|
-
`),r=!1,o=!1,s;t.on("response",a=>{let{headers:u}=a;r=u["transfer-encoding"]==="chunked"&&!u["content-length"]}),t.on("socket",a=>{let u=()=>{if(r&&!o){let d=new Error("Premature close");d.code="ERR_STREAM_PREMATURE_CLOSE",e(d)}},l=d=>{o=ns.Buffer.compare(d.slice(-5),n)===0,!o&&s&&(o=ns.Buffer.compare(s.slice(-3),n.slice(0,3))===0&&ns.Buffer.compare(d.slice(-2),n.slice(3))===0),s=d};a.prependListener("close",u),a.on("data",l),t.on("close",()=>{a.removeListener("close",u),a.removeListener("data",l)})})}var Eg,kg,Er,yt,ns,
|
|
39
|
+
`),r=!1,o=!1,s;t.on("response",a=>{let{headers:u}=a;r=u["transfer-encoding"]==="chunked"&&!u["content-length"]}),t.on("socket",a=>{let u=()=>{if(r&&!o){let d=new Error("Premature close");d.code="ERR_STREAM_PREMATURE_CLOSE",e(d)}},l=d=>{o=ns.Buffer.compare(d.slice(-5),n)===0,!o&&s&&(o=ns.Buffer.compare(s.slice(-3),n.slice(0,3))===0&&ns.Buffer.compare(d.slice(-2),n.slice(3))===0),s=d};a.prependListener("close",u),a.on("data",l),t.on("close",()=>{a.removeListener("close",u),a.removeListener("data",l)})})}var Eg,kg,Er,yt,ns,IE,Sg=Le(()=>{Eg=xe(require("node:http"),1),kg=xe(require("node:https"),1),Er=xe(require("node:zlib"),1),yt=xe(require("node:stream"),1),ns=require("node:buffer");Fm();ra();ag();sa();Cg();Kc();wg();rl();Ki();Xi();ol();Xc();IE=new Set(["data:","http:","https:"])});var Dg=X(uo=>{"use strict";var BE=uo&&uo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}},ao;Object.defineProperty(uo,"__esModule",{value:!0});uo.Gaxios=void 0;var ME=BE(Pc()),LE=require("https"),kr=Nc(),jE=im(),vg=require("stream"),Tg=Lc(),UE=async()=>globalThis.crypto?.randomUUID()||(await import("crypto")).randomUUID(),ia=class{agentCache=new Map;defaults;interceptors;constructor(e){this.defaults=e||{},this.interceptors={request:new Tg.GaxiosInterceptorManager,response:new Tg.GaxiosInterceptorManager}}fetch(...e){let n=e[0],r=e[1],o,s=new Headers;return typeof n=="string"?o=new URL(n):n instanceof URL?o=n:n&&n.url&&(o=new URL(n.url)),n&&typeof n=="object"&&"headers"in n&&ao.mergeHeaders(s,n.headers),r&&ao.mergeHeaders(s,new Headers(r.headers)),typeof n=="object"&&!(n instanceof URL)?this.request({...r,...n,headers:s,url:o}):this.request({...r,headers:s,url:o})}async request(e={}){let n=await this.#r(e);return n=await this.#t(n),this.#n(this._request(n))}async _defaultAdapter(e){let n=e.fetchImplementation||this.defaults.fetchImplementation||await ao.#u(),r={...e};delete r.data;let o=await n(e.url,r),s=await this.getResponseData(e,o);return Object.getOwnPropertyDescriptor(o,"data")?.configurable||Object.defineProperties(o,{data:{configurable:!0,writable:!0,enumerable:!0,value:s}}),Object.assign(o,{config:e,data:s})}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 o=[];for await(let s of n.data)o.push(s);n.data=o.toString()}let r=kr.GaxiosError.extractAPIErrorFromResponse(n,`Request failed with status code ${n.status}`);throw new kr.GaxiosError(r?.message,e,n,r)}return n}catch(n){let r;n instanceof kr.GaxiosError?r=n:n instanceof Error?r=new kr.GaxiosError(n.message,e,void 0,n):r=new kr.GaxiosError("Unexpected Gaxios Error",e,void 0,n);let{shouldRetry:o,config:s}=await(0,jE.getRetryConfig)(r);if(o&&s)return r.config.retryConfig.currentRetryAttempt=s.retryConfig.currentRetryAttempt,e.retryConfig=r.config?.retryConfig,this.#o(e),this._request(e);throw e.errorRedactor&&e.errorRedactor(r),r}}async getResponseData(e,n){if(e.maxContentLength&&n.headers.has("content-length")&&e.maxContentLength<Number.parseInt(n.headers?.get("content-length")||""))throw new kr.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":return n.json();case"arraybuffer":return n.arrayBuffer();case"blob":return n.blob();case"text":return n.text();default:return this.getResponseDataFromContentType(n)}}#e(e,n=[]){let r=new URL(e),o=[...n],s=(process.env.NO_PROXY??process.env.no_proxy)?.split(",")||[];for(let a of s)o.push(a.trim());for(let a of o)if(a instanceof RegExp){if(a.test(r.toString()))return!1}else if(a instanceof URL){if(a.origin===r.origin)return!1}else if(a.startsWith("*.")||a.startsWith(".")){let u=a.replace(/^\*\./,".");if(r.hostname.endsWith(u))return!1}else if(a===r.origin||a===r.hostname||a===r.href)return!1;return!0}async#t(e){let n=Promise.resolve(e);for(let r of this.interceptors.request.values())r&&(n=n.then(r.resolved,r.rejected));return n}async#n(e){let n=Promise.resolve(e);for(let r of this.interceptors.response.values())r&&(n=n.then(r.resolved,r.rejected));return n}async#r(e){let n=new Headers(this.defaults.headers);ao.mergeHeaders(n,e.headers);let r=(0,ME.default)(!0,{},this.defaults,e);if(!r.url)throw new Error("URL is required.");if(r.baseURL&&(r.url=new URL(r.url,r.baseURL)),r.url=new URL(r.url),r.params)if(r.paramsSerializer){let a=r.paramsSerializer(r.params);a.startsWith("?")&&(a=a.slice(1));let u=r.url.toString().includes("?")?"&":"?";r.url=r.url+u+a}else{let a=r.url instanceof URL?r.url:new URL(r.url);for(let[u,l]of new URLSearchParams(r.params))a.searchParams.append(u,l);r.url=a}typeof e.maxContentLength=="number"&&(r.size=e.maxContentLength),typeof e.maxRedirects=="number"&&(r.follow=e.maxRedirects);let o=typeof r.data=="string"||r.data instanceof ArrayBuffer||r.data instanceof Blob||globalThis.File&&r.data instanceof File||r.data instanceof FormData||r.data instanceof vg.Readable||r.data instanceof ReadableStream||r.data instanceof String||r.data instanceof URLSearchParams||ArrayBuffer.isView(r.data)||["Blob","File","FormData"].includes(r.data?.constructor?.name||"");if(r.multipart?.length){let a=await UE();n.set("content-type",`multipart/related; boundary=${a}`),r.body=vg.Readable.from(this.getMultipartRequest(r.multipart,a))}else o?r.body=r.data:typeof r.data=="object"?n.get("Content-Type")==="application/x-www-form-urlencoded"?r.body=r.paramsSerializer?r.paramsSerializer(r.data):new URLSearchParams(r.data):(n.has("content-type")||n.set("content-type","application/json"),r.body=JSON.stringify(r.data)):r.data&&(r.body=r.data);r.validateStatus=r.validateStatus||this.validateStatus,r.responseType=r.responseType||"unknown",!n.has("accept")&&r.responseType==="json"&&n.set("accept","application/json");let s=r.proxy||process?.env?.HTTPS_PROXY||process?.env?.https_proxy||process?.env?.HTTP_PROXY||process?.env?.http_proxy;if(!r.agent)if(s&&this.#e(r.url,r.noProxy)){let a=await ao.#a();this.agentCache.has(s)?r.agent=this.agentCache.get(s):(r.agent=new a(s,{cert:r.cert,key:r.key}),this.agentCache.set(s,r.agent))}else r.cert&&r.key&&(this.agentCache.has(r.key)?r.agent=this.agentCache.get(r.key):(r.agent=new LE.Agent({cert:r.cert,key:r.key}),this.agentCache.set(r.key,r.agent)));return typeof r.errorRedactor!="function"&&r.errorRedactor!==!1&&(r.errorRedactor=kr.defaultErrorRedactor),r.body&&!("duplex"in r)&&(r.duplex="half"),this.#o(r),Object.assign(r,{headers:n,url:r.url instanceof URL?r.url:new URL(r.url)})}#o(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 r=await e.text();try{r=JSON.parse(r)}catch{}return r}else return n.match(/^text\//)?e.text():e.blob()}async*getMultipartRequest(e,n){let r=`--${n}--`;for(let o of e){let s=o.headers.get("Content-Type")||"application/octet-stream";yield`--${n}\r
|
|
40
40
|
Content-Type: ${s}\r
|
|
41
41
|
\r
|
|
42
42
|
`,typeof o.content=="string"?yield o.content:yield*o.content,yield`\r
|
|
43
|
-
`}yield r}static#s;static#i;static async#a(){return this.#s||=(await Promise.resolve().then(()=>xe(Om()))).HttpsProxyAgent,this.#s}static async#u(){let e=typeof window<"u"&&!!window;return this.#i||=e?window.fetch:(await Promise.resolve().then(()=>(Sg(),Ag))).default,this.#i}static mergeHeaders(e,...n){e=e instanceof Headers?e:new Headers(e);for(let r of n)(r instanceof Headers?r:new Headers(r)).forEach((s,a)=>{a==="set-cookie"?e.append(a,s):e.set(a,s)});return e}};uo.Gaxios=sa;ao=sa});var Xe=X(it=>{"use strict";var UE=it&&it.__createBinding||(Object.create?(function(t,e,n,r){r===void 0&&(r=n);var o=Object.getOwnPropertyDescriptor(e,n);(!o||("get"in o?!e.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,o)}):(function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]})),$E=it&&it.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&UE(e,t,n)};Object.defineProperty(it,"__esModule",{value:!0});it.instance=it.Gaxios=it.GaxiosError=void 0;it.request=zE;var Rg=Dg();Object.defineProperty(it,"Gaxios",{enumerable:!0,get:function(){return Rg.Gaxios}});var qE=Ic();Object.defineProperty(it,"GaxiosError",{enumerable:!0,get:function(){return qE.GaxiosError}});$E(Mc(),it);it.instance=new Rg.Gaxios;async function zE(t){return it.instance.request(t)}});var sl=X((xg,ia)=>{(function(t){"use strict";var e,n=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,r=Math.ceil,o=Math.floor,s="[BigNumber Error] ",a=s+"Number primitive has more than 15 significant digits: ",u=1e14,l=14,d=9007199254740991,f=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],p=1e7,m=1e9;function b(v){var R,$,V,P=J.prototype={constructor:J,toString:null,valueOf:null},Y=new J(1),z=20,K=4,Q=-7,ee=21,ie=-1e7,oe=1e7,pe=!1,G=1,Z=0,se={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:"\xA0",suffix:""},Ue="0123456789abcdefghijklmnopqrstuvwxyz",ke=!0;function J(E,T){var D,M,F,N,U,O,I,L,B=this;if(!(B instanceof J))return new J(E,T);if(T==null){if(E&&E._isBigNumber===!0){B.s=E.s,!E.c||E.e>oe?B.c=B.e=null:E.e<ie?B.c=[B.e=0]:(B.e=E.e,B.c=E.c.slice());return}if((O=typeof E=="number")&&E*0==0){if(B.s=1/E<0?(E=-E,-1):1,E===~~E){for(N=0,U=E;U>=10;U/=10,N++);N>oe?B.c=B.e=null:(B.e=N,B.c=[E]);return}L=String(E)}else{if(!n.test(L=String(E)))return V(B,L,O);B.s=L.charCodeAt(0)==45?(L=L.slice(1),-1):1}(N=L.indexOf("."))>-1&&(L=L.replace(".","")),(U=L.search(/e/i))>0?(N<0&&(N=U),N+=+L.slice(U+1),L=L.substring(0,U)):N<0&&(N=L.length)}else{if(_(T,2,Ue.length,"Base"),T==10&&ke)return B=new J(E),Oe(B,z+B.e+1,K);if(L=String(E),O=typeof E=="number"){if(E*0!=0)return V(B,L,O,T);if(B.s=1/E<0?(L=L.slice(1),-1):1,J.DEBUG&&L.replace(/^0\.0*|\./,"").length>15)throw Error(a+E)}else B.s=L.charCodeAt(0)===45?(L=L.slice(1),-1):1;for(D=Ue.slice(0,T),N=U=0,I=L.length;U<I;U++)if(D.indexOf(M=L.charAt(U))<0){if(M=="."){if(U>N){N=I;continue}}else if(!F&&(L==L.toUpperCase()&&(L=L.toLowerCase())||L==L.toLowerCase()&&(L=L.toUpperCase()))){F=!0,U=-1,N=0;continue}return V(B,String(E),O,T)}O=!1,L=$(L,T,10,B.s),(N=L.indexOf("."))>-1?L=L.replace(".",""):N=L.length}for(U=0;L.charCodeAt(U)===48;U++);for(I=L.length;L.charCodeAt(--I)===48;);if(L=L.slice(U,++I)){if(I-=U,O&&J.DEBUG&&I>15&&(E>d||E!==o(E)))throw Error(a+B.s*E);if((N=N-U-1)>oe)B.c=B.e=null;else if(N<ie)B.c=[B.e=0];else{if(B.e=N,B.c=[],U=(N+1)%l,N<0&&(U+=l),U<I){for(U&&B.c.push(+L.slice(0,U)),I-=l;U<I;)B.c.push(+L.slice(U,U+=l));U=l-(L=L.slice(U)).length}else U-=I;for(;U--;L+="0");B.c.push(+L)}}else B.c=[B.e=0]}J.clone=b,J.ROUND_UP=0,J.ROUND_DOWN=1,J.ROUND_CEIL=2,J.ROUND_FLOOR=3,J.ROUND_HALF_UP=4,J.ROUND_HALF_DOWN=5,J.ROUND_HALF_EVEN=6,J.ROUND_HALF_CEIL=7,J.ROUND_HALF_FLOOR=8,J.EUCLID=9,J.config=J.set=function(E){var T,D;if(E!=null)if(typeof E=="object"){if(E.hasOwnProperty(T="DECIMAL_PLACES")&&(D=E[T],_(D,0,m,T),z=D),E.hasOwnProperty(T="ROUNDING_MODE")&&(D=E[T],_(D,0,8,T),K=D),E.hasOwnProperty(T="EXPONENTIAL_AT")&&(D=E[T],D&&D.pop?(_(D[0],-m,0,T),_(D[1],0,m,T),Q=D[0],ee=D[1]):(_(D,-m,m,T),Q=-(ee=D<0?-D:D))),E.hasOwnProperty(T="RANGE"))if(D=E[T],D&&D.pop)_(D[0],-m,-1,T),_(D[1],1,m,T),ie=D[0],oe=D[1];else if(_(D,-m,m,T),D)ie=-(oe=D<0?-D:D);else throw Error(s+T+" cannot be zero: "+D);if(E.hasOwnProperty(T="CRYPTO"))if(D=E[T],D===!!D)if(D)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))pe=D;else throw pe=!D,Error(s+"crypto unavailable");else pe=D;else throw Error(s+T+" not true or false: "+D);if(E.hasOwnProperty(T="MODULO_MODE")&&(D=E[T],_(D,0,9,T),G=D),E.hasOwnProperty(T="POW_PRECISION")&&(D=E[T],_(D,0,m,T),Z=D),E.hasOwnProperty(T="FORMAT"))if(D=E[T],typeof D=="object")se=D;else throw Error(s+T+" not an object: "+D);if(E.hasOwnProperty(T="ALPHABET"))if(D=E[T],typeof D=="string"&&!/^.?$|[+\-.\s]|(.).*\1/.test(D))ke=D.slice(0,10)=="0123456789",Ue=D;else throw Error(s+T+" invalid: "+D)}else throw Error(s+"Object expected: "+E);return{DECIMAL_PLACES:z,ROUNDING_MODE:K,EXPONENTIAL_AT:[Q,ee],RANGE:[ie,oe],CRYPTO:pe,MODULO_MODE:G,POW_PRECISION:Z,FORMAT:se,ALPHABET:Ue}},J.isBigNumber=function(E){if(!E||E._isBigNumber!==!0)return!1;if(!J.DEBUG)return!0;var T,D,M=E.c,F=E.e,N=E.s;e:if({}.toString.call(M)=="[object Array]"){if((N===1||N===-1)&&F>=-m&&F<=m&&F===o(F)){if(M[0]===0){if(F===0&&M.length===1)return!0;break e}if(T=(F+1)%l,T<1&&(T+=l),String(M[0]).length==T){for(T=0;T<M.length;T++)if(D=M[T],D<0||D>=u||D!==o(D))break e;if(D!==0)return!0}}}else if(M===null&&F===null&&(N===null||N===1||N===-1))return!0;throw Error(s+"Invalid BigNumber: "+E)},J.maximum=J.max=function(){return te(arguments,-1)},J.minimum=J.min=function(){return te(arguments,1)},J.random=(function(){var E=9007199254740992,T=Math.random()*E&2097151?function(){return o(Math.random()*E)}:function(){return(Math.random()*1073741824|0)*8388608+(Math.random()*8388608|0)};return function(D){var M,F,N,U,O,I=0,L=[],B=new J(Y);if(D==null?D=z:_(D,0,m),U=r(D/l),pe)if(crypto.getRandomValues){for(M=crypto.getRandomValues(new Uint32Array(U*=2));I<U;)O=M[I]*131072+(M[I+1]>>>11),O>=9e15?(F=crypto.getRandomValues(new Uint32Array(2)),M[I]=F[0],M[I+1]=F[1]):(L.push(O%1e14),I+=2);I=U/2}else if(crypto.randomBytes){for(M=crypto.randomBytes(U*=7);I<U;)O=(M[I]&31)*281474976710656+M[I+1]*1099511627776+M[I+2]*4294967296+M[I+3]*16777216+(M[I+4]<<16)+(M[I+5]<<8)+M[I+6],O>=9e15?crypto.randomBytes(7).copy(M,I):(L.push(O%1e14),I+=7);I=U/7}else throw pe=!1,Error(s+"crypto unavailable");if(!pe)for(;I<U;)O=T(),O<9e15&&(L[I++]=O%1e14);for(U=L[--I],D%=l,U&&D&&(O=f[l-D],L[I]=o(U/O)*O);L[I]===0;L.pop(),I--);if(I<0)L=[N=0];else{for(N=-1;L[0]===0;L.splice(0,1),N-=l);for(I=1,O=L[0];O>=10;O/=10,I++);I<l&&(N-=l-I)}return B.e=N,B.c=L,B}})(),J.sum=function(){for(var E=1,T=arguments,D=new J(T[0]);E<T.length;)D=D.plus(T[E++]);return D},$=(function(){var E="0123456789";function T(D,M,F,N){for(var U,O=[0],I,L=0,B=D.length;L<B;){for(I=O.length;I--;O[I]*=M);for(O[0]+=N.indexOf(D.charAt(L++)),U=0;U<O.length;U++)O[U]>F-1&&(O[U+1]==null&&(O[U+1]=0),O[U+1]+=O[U]/F|0,O[U]%=F)}return O.reverse()}return function(D,M,F,N,U){var O,I,L,B,H,re,ae,Ae,Ie=D.indexOf("."),Me=z,Ee=K;for(Ie>=0&&(B=Z,Z=0,D=D.replace(".",""),Ae=new J(M),re=Ae.pow(D.length-Ie),Z=B,Ae.c=T(S(y(re.c),re.e,"0"),10,F,E),Ae.e=Ae.c.length),ae=T(D,M,F,U?(O=Ue,E):(O=E,Ue)),L=B=ae.length;ae[--B]==0;ae.pop());if(!ae[0])return O.charAt(0);if(Ie<0?--L:(re.c=ae,re.e=L,re.s=N,re=R(re,Ae,Me,Ee,F),ae=re.c,H=re.r,L=re.e),I=L+Me+1,Ie=ae[I],B=F/2,H=H||I<0||ae[I+1]!=null,H=Ee<4?(Ie!=null||H)&&(Ee==0||Ee==(re.s<0?3:2)):Ie>B||Ie==B&&(Ee==4||H||Ee==6&&ae[I-1]&1||Ee==(re.s<0?8:7)),I<1||!ae[0])D=H?S(O.charAt(1),-Me,O.charAt(0)):O.charAt(0);else{if(ae.length=I,H)for(--F;++ae[--I]>F;)ae[I]=0,I||(++L,ae=[1].concat(ae));for(B=ae.length;!ae[--B];);for(Ie=0,D="";Ie<=B;D+=O.charAt(ae[Ie++]));D=S(D,L,O.charAt(0))}return D}})(),R=(function(){function E(M,F,N){var U,O,I,L,B=0,H=M.length,re=F%p,ae=F/p|0;for(M=M.slice();H--;)I=M[H]%p,L=M[H]/p|0,U=ae*I+L*re,O=re*I+U%p*p+B,B=(O/N|0)+(U/p|0)+ae*L,M[H]=O%N;return B&&(M=[B].concat(M)),M}function T(M,F,N,U){var O,I;if(N!=U)I=N>U?1:-1;else for(O=I=0;O<N;O++)if(M[O]!=F[O]){I=M[O]>F[O]?1:-1;break}return I}function D(M,F,N,U){for(var O=0;N--;)M[N]-=O,O=M[N]<F[N]?1:0,M[N]=O*U+M[N]-F[N];for(;!M[0]&&M.length>1;M.splice(0,1));}return function(M,F,N,U,O){var I,L,B,H,re,ae,Ae,Ie,Me,Ee,Se,qe,Pr,Fr,Ir,ft,pn,Ze=M.s==F.s?1:-1,ze=M.c,ve=F.c;if(!ze||!ze[0]||!ve||!ve[0])return new J(!M.s||!F.s||(ze?ve&&ze[0]==ve[0]:!ve)?NaN:ze&&ze[0]==0||!ve?Ze*0:Ze/0);for(Ie=new J(Ze),Me=Ie.c=[],L=M.e-F.e,Ze=N+L+1,O||(O=u,L=w(M.e/l)-w(F.e/l),Ze=Ze/l|0),B=0;ve[B]==(ze[B]||0);B++);if(ve[B]>(ze[B]||0)&&L--,Ze<0)Me.push(1),H=!0;else{for(Fr=ze.length,ft=ve.length,B=0,Ze+=2,re=o(O/(ve[0]+1)),re>1&&(ve=E(ve,re,O),ze=E(ze,re,O),ft=ve.length,Fr=ze.length),Pr=ft,Ee=ze.slice(0,ft),Se=Ee.length;Se<ft;Ee[Se++]=0);pn=ve.slice(),pn=[0].concat(pn),Ir=ve[0],ve[1]>=O/2&&Ir++;do{if(re=0,I=T(ve,Ee,ft,Se),I<0){if(qe=Ee[0],ft!=Se&&(qe=qe*O+(Ee[1]||0)),re=o(qe/Ir),re>1)for(re>=O&&(re=O-1),ae=E(ve,re,O),Ae=ae.length,Se=Ee.length;T(ae,Ee,Ae,Se)==1;)re--,D(ae,ft<Ae?pn:ve,Ae,O),Ae=ae.length,I=1;else re==0&&(I=re=1),ae=ve.slice(),Ae=ae.length;if(Ae<Se&&(ae=[0].concat(ae)),D(Ee,ae,Se,O),Se=Ee.length,I==-1)for(;T(ve,Ee,ft,Se)<1;)re++,D(Ee,ft<Se?pn:ve,Se,O),Se=Ee.length}else I===0&&(re++,Ee=[0]);Me[B++]=re,Ee[0]?Ee[Se++]=ze[Pr]||0:(Ee=[ze[Pr]],Se=1)}while((Pr++<Fr||Ee[0]!=null)&&Ze--);H=Ee[0]!=null,Me[0]||Me.splice(0,1)}if(O==u){for(B=1,Ze=Me[0];Ze>=10;Ze/=10,B++);Oe(Ie,N+(Ie.e=B+L*l-1)+1,U,H)}else Ie.e=L,Ie.r=+H;return Ie}})();function ue(E,T,D,M){var F,N,U,O,I;if(D==null?D=K:_(D,0,8),!E.c)return E.toString();if(F=E.c[0],U=E.e,T==null)I=y(E.c),I=M==1||M==2&&(U<=Q||U>=ee)?C(I,U):S(I,U,"0");else if(E=Oe(new J(E),T,D),N=E.e,I=y(E.c),O=I.length,M==1||M==2&&(T<=N||N<=Q)){for(;O<T;I+="0",O++);I=C(I,N)}else if(T-=U+(M===2&&N>U),I=S(I,N,"0"),N+1>O){if(--T>0)for(I+=".";T--;I+="0");}else if(T+=N-O,T>0)for(N+1==O&&(I+=".");T--;I+="0");return E.s<0&&F?"-"+I:I}function te(E,T){for(var D,M,F=1,N=new J(E[0]);F<E.length;F++)M=new J(E[F]),(!M.s||(D=g(N,M))===T||D===0&&N.s===T)&&(N=M);return N}function Te(E,T,D){for(var M=1,F=T.length;!T[--F];T.pop());for(F=T[0];F>=10;F/=10,M++);return(D=M+D*l-1)>oe?E.c=E.e=null:D<ie?E.c=[E.e=0]:(E.e=D,E.c=T),E}V=(function(){var E=/^(-?)0([xbo])(?=\w[\w.]*$)/i,T=/^([^.]+)\.$/,D=/^\.([^.]+)$/,M=/^-?(Infinity|NaN)$/,F=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(N,U,O,I){var L,B=O?U:U.replace(F,"");if(M.test(B))N.s=isNaN(B)?null:B<0?-1:1;else{if(!O&&(B=B.replace(E,function(H,re,ae){return L=(ae=ae.toLowerCase())=="x"?16:ae=="b"?2:8,!I||I==L?re:H}),I&&(L=I,B=B.replace(T,"$1").replace(D,"0.$1")),U!=B))return new J(B,L);if(J.DEBUG)throw Error(s+"Not a"+(I?" base "+I:"")+" number: "+U);N.s=null}N.c=N.e=null}})();function Oe(E,T,D,M){var F,N,U,O,I,L,B,H=E.c,re=f;if(H){e:{for(F=1,O=H[0];O>=10;O/=10,F++);if(N=T-F,N<0)N+=l,U=T,I=H[L=0],B=o(I/re[F-U-1]%10);else if(L=r((N+1)/l),L>=H.length)if(M){for(;H.length<=L;H.push(0));I=B=0,F=1,N%=l,U=N-l+1}else break e;else{for(I=O=H[L],F=1;O>=10;O/=10,F++);N%=l,U=N-l+F,B=U<0?0:o(I/re[F-U-1]%10)}if(M=M||T<0||H[L+1]!=null||(U<0?I:I%re[F-U-1]),M=D<4?(B||M)&&(D==0||D==(E.s<0?3:2)):B>5||B==5&&(D==4||M||D==6&&(N>0?U>0?I/re[F-U]:0:H[L-1])%10&1||D==(E.s<0?8:7)),T<1||!H[0])return H.length=0,M?(T-=E.e+1,H[0]=re[(l-T%l)%l],E.e=-T||0):H[0]=E.e=0,E;if(N==0?(H.length=L,O=1,L--):(H.length=L+1,O=re[l-N],H[L]=U>0?o(I/re[F-U]%re[U])*O:0),M)for(;;)if(L==0){for(N=1,U=H[0];U>=10;U/=10,N++);for(U=H[0]+=O,O=1;U>=10;U/=10,O++);N!=O&&(E.e++,H[0]==u&&(H[0]=1));break}else{if(H[L]+=O,H[L]!=u)break;H[L--]=0,O=1}for(N=H.length;H[--N]===0;H.pop());}E.e>oe?E.c=E.e=null:E.e<ie&&(E.c=[E.e=0])}return E}function je(E){var T,D=E.e;return D===null?E.toString():(T=y(E.c),T=D<=Q||D>=ee?C(T,D):S(T,D,"0"),E.s<0?"-"+T:T)}return P.absoluteValue=P.abs=function(){var E=new J(this);return E.s<0&&(E.s=1),E},P.comparedTo=function(E,T){return g(this,new J(E,T))},P.decimalPlaces=P.dp=function(E,T){var D,M,F,N=this;if(E!=null)return _(E,0,m),T==null?T=K:_(T,0,8),Oe(new J(N),E+N.e+1,T);if(!(D=N.c))return null;if(M=((F=D.length-1)-w(this.e/l))*l,F=D[F])for(;F%10==0;F/=10,M--);return M<0&&(M=0),M},P.dividedBy=P.div=function(E,T){return R(this,new J(E,T),z,K)},P.dividedToIntegerBy=P.idiv=function(E,T){return R(this,new J(E,T),0,1)},P.exponentiatedBy=P.pow=function(E,T){var D,M,F,N,U,O,I,L,B,H=this;if(E=new J(E),E.c&&!E.isInteger())throw Error(s+"Exponent not an integer: "+je(E));if(T!=null&&(T=new J(T)),O=E.e>14,!H.c||!H.c[0]||H.c[0]==1&&!H.e&&H.c.length==1||!E.c||!E.c[0])return B=new J(Math.pow(+je(H),O?E.s*(2-A(E)):+je(E))),T?B.mod(T):B;if(I=E.s<0,T){if(T.c?!T.c[0]:!T.s)return new J(NaN);M=!I&&H.isInteger()&&T.isInteger(),M&&(H=H.mod(T))}else{if(E.e>9&&(H.e>0||H.e<-1||(H.e==0?H.c[0]>1||O&&H.c[1]>=24e7:H.c[0]<8e13||O&&H.c[0]<=9999975e7)))return N=H.s<0&&A(E)?-0:0,H.e>-1&&(N=1/N),new J(I?1/N:N);Z&&(N=r(Z/l+2))}for(O?(D=new J(.5),I&&(E.s=1),L=A(E)):(F=Math.abs(+je(E)),L=F%2),B=new J(Y);;){if(L){if(B=B.times(H),!B.c)break;N?B.c.length>N&&(B.c.length=N):M&&(B=B.mod(T))}if(F){if(F=o(F/2),F===0)break;L=F%2}else if(E=E.times(D),Oe(E,E.e+1,1),E.e>14)L=A(E);else{if(F=+je(E),F===0)break;L=F%2}H=H.times(H),N?H.c&&H.c.length>N&&(H.c.length=N):M&&(H=H.mod(T))}return M?B:(I&&(B=Y.div(B)),T?B.mod(T):N?Oe(B,Z,K,U):B)},P.integerValue=function(E){var T=new J(this);return E==null?E=K:_(E,0,8),Oe(T,T.e+1,E)},P.isEqualTo=P.eq=function(E,T){return g(this,new J(E,T))===0},P.isFinite=function(){return!!this.c},P.isGreaterThan=P.gt=function(E,T){return g(this,new J(E,T))>0},P.isGreaterThanOrEqualTo=P.gte=function(E,T){return(T=g(this,new J(E,T)))===1||T===0},P.isInteger=function(){return!!this.c&&w(this.e/l)>this.c.length-2},P.isLessThan=P.lt=function(E,T){return g(this,new J(E,T))<0},P.isLessThanOrEqualTo=P.lte=function(E,T){return(T=g(this,new J(E,T)))===-1||T===0},P.isNaN=function(){return!this.s},P.isNegative=function(){return this.s<0},P.isPositive=function(){return this.s>0},P.isZero=function(){return!!this.c&&this.c[0]==0},P.minus=function(E,T){var D,M,F,N,U=this,O=U.s;if(E=new J(E,T),T=E.s,!O||!T)return new J(NaN);if(O!=T)return E.s=-T,U.plus(E);var I=U.e/l,L=E.e/l,B=U.c,H=E.c;if(!I||!L){if(!B||!H)return B?(E.s=-T,E):new J(H?U:NaN);if(!B[0]||!H[0])return H[0]?(E.s=-T,E):new J(B[0]?U:K==3?-0:0)}if(I=w(I),L=w(L),B=B.slice(),O=I-L){for((N=O<0)?(O=-O,F=B):(L=I,F=H),F.reverse(),T=O;T--;F.push(0));F.reverse()}else for(M=(N=(O=B.length)<(T=H.length))?O:T,O=T=0;T<M;T++)if(B[T]!=H[T]){N=B[T]<H[T];break}if(N&&(F=B,B=H,H=F,E.s=-E.s),T=(M=H.length)-(D=B.length),T>0)for(;T--;B[D++]=0);for(T=u-1;M>O;){if(B[--M]<H[M]){for(D=M;D&&!B[--D];B[D]=T);--B[D],B[M]+=u}B[M]-=H[M]}for(;B[0]==0;B.splice(0,1),--L);return B[0]?Te(E,B,L):(E.s=K==3?-1:1,E.c=[E.e=0],E)},P.modulo=P.mod=function(E,T){var D,M,F=this;return E=new J(E,T),!F.c||!E.s||E.c&&!E.c[0]?new J(NaN):!E.c||F.c&&!F.c[0]?new J(F):(G==9?(M=E.s,E.s=1,D=R(F,E,0,3),E.s=M,D.s*=M):D=R(F,E,0,G),E=F.minus(D.times(E)),!E.c[0]&&G==1&&(E.s=F.s),E)},P.multipliedBy=P.times=function(E,T){var D,M,F,N,U,O,I,L,B,H,re,ae,Ae,Ie,Me,Ee=this,Se=Ee.c,qe=(E=new J(E,T)).c;if(!Se||!qe||!Se[0]||!qe[0])return!Ee.s||!E.s||Se&&!Se[0]&&!qe||qe&&!qe[0]&&!Se?E.c=E.e=E.s=null:(E.s*=Ee.s,!Se||!qe?E.c=E.e=null:(E.c=[0],E.e=0)),E;for(M=w(Ee.e/l)+w(E.e/l),E.s*=Ee.s,I=Se.length,H=qe.length,I<H&&(Ae=Se,Se=qe,qe=Ae,F=I,I=H,H=F),F=I+H,Ae=[];F--;Ae.push(0));for(Ie=u,Me=p,F=H;--F>=0;){for(D=0,re=qe[F]%Me,ae=qe[F]/Me|0,U=I,N=F+U;N>F;)L=Se[--U]%Me,B=Se[U]/Me|0,O=ae*L+B*re,L=re*L+O%Me*Me+Ae[N]+D,D=(L/Ie|0)+(O/Me|0)+ae*B,Ae[N--]=L%Ie;Ae[N]=D}return D?++M:Ae.splice(0,1),Te(E,Ae,M)},P.negated=function(){var E=new J(this);return E.s=-E.s||null,E},P.plus=function(E,T){var D,M=this,F=M.s;if(E=new J(E,T),T=E.s,!F||!T)return new J(NaN);if(F!=T)return E.s=-T,M.minus(E);var N=M.e/l,U=E.e/l,O=M.c,I=E.c;if(!N||!U){if(!O||!I)return new J(F/0);if(!O[0]||!I[0])return I[0]?E:new J(O[0]?M:F*0)}if(N=w(N),U=w(U),O=O.slice(),F=N-U){for(F>0?(U=N,D=I):(F=-F,D=O),D.reverse();F--;D.push(0));D.reverse()}for(F=O.length,T=I.length,F-T<0&&(D=I,I=O,O=D,T=F),F=0;T;)F=(O[--T]=O[T]+I[T]+F)/u|0,O[T]=u===O[T]?0:O[T]%u;return F&&(O=[F].concat(O),++U),Te(E,O,U)},P.precision=P.sd=function(E,T){var D,M,F,N=this;if(E!=null&&E!==!!E)return _(E,1,m),T==null?T=K:_(T,0,8),Oe(new J(N),E,T);if(!(D=N.c))return null;if(F=D.length-1,M=F*l+1,F=D[F]){for(;F%10==0;F/=10,M--);for(F=D[0];F>=10;F/=10,M++);}return E&&N.e+1>M&&(M=N.e+1),M},P.shiftedBy=function(E){return _(E,-d,d),this.times("1e"+E)},P.squareRoot=P.sqrt=function(){var E,T,D,M,F,N=this,U=N.c,O=N.s,I=N.e,L=z+4,B=new J("0.5");if(O!==1||!U||!U[0])return new J(!O||O<0&&(!U||U[0])?NaN:U?N:1/0);if(O=Math.sqrt(+je(N)),O==0||O==1/0?(T=y(U),(T.length+I)%2==0&&(T+="0"),O=Math.sqrt(+T),I=w((I+1)/2)-(I<0||I%2),O==1/0?T="5e"+I:(T=O.toExponential(),T=T.slice(0,T.indexOf("e")+1)+I),D=new J(T)):D=new J(O+""),D.c[0]){for(I=D.e,O=I+L,O<3&&(O=0);;)if(F=D,D=B.times(F.plus(R(N,F,L,1))),y(F.c).slice(0,O)===(T=y(D.c)).slice(0,O))if(D.e<I&&--O,T=T.slice(O-3,O+1),T=="9999"||!M&&T=="4999"){if(!M&&(Oe(F,F.e+z+2,0),F.times(F).eq(N))){D=F;break}L+=4,O+=4,M=1}else{(!+T||!+T.slice(1)&&T.charAt(0)=="5")&&(Oe(D,D.e+z+2,1),E=!D.times(D).eq(N));break}}return Oe(D,D.e+z+1,K,E)},P.toExponential=function(E,T){return E!=null&&(_(E,0,m),E++),ue(this,E,T,1)},P.toFixed=function(E,T){return E!=null&&(_(E,0,m),E=E+this.e+1),ue(this,E,T)},P.toFormat=function(E,T,D){var M,F=this;if(D==null)E!=null&&T&&typeof T=="object"?(D=T,T=null):E&&typeof E=="object"?(D=E,E=T=null):D=se;else if(typeof D!="object")throw Error(s+"Argument not an object: "+D);if(M=F.toFixed(E,T),F.c){var N,U=M.split("."),O=+D.groupSize,I=+D.secondaryGroupSize,L=D.groupSeparator||"",B=U[0],H=U[1],re=F.s<0,ae=re?B.slice(1):B,Ae=ae.length;if(I&&(N=O,O=I,I=N,Ae-=N),O>0&&Ae>0){for(N=Ae%O||O,B=ae.substr(0,N);N<Ae;N+=O)B+=L+ae.substr(N,O);I>0&&(B+=L+ae.slice(N)),re&&(B="-"+B)}M=H?B+(D.decimalSeparator||"")+((I=+D.fractionGroupSize)?H.replace(new RegExp("\\d{"+I+"}\\B","g"),"$&"+(D.fractionGroupSeparator||"")):H):B}return(D.prefix||"")+M+(D.suffix||"")},P.toFraction=function(E){var T,D,M,F,N,U,O,I,L,B,H,re,ae=this,Ae=ae.c;if(E!=null&&(O=new J(E),!O.isInteger()&&(O.c||O.s!==1)||O.lt(Y)))throw Error(s+"Argument "+(O.isInteger()?"out of range: ":"not an integer: ")+je(O));if(!Ae)return new J(ae);for(T=new J(Y),L=D=new J(Y),M=I=new J(Y),re=y(Ae),N=T.e=re.length-ae.e-1,T.c[0]=f[(U=N%l)<0?l+U:U],E=!E||O.comparedTo(T)>0?N>0?T:L:O,U=oe,oe=1/0,O=new J(re),I.c[0]=0;B=R(O,T,0,1),F=D.plus(B.times(M)),F.comparedTo(E)!=1;)D=M,M=F,L=I.plus(B.times(F=L)),I=F,T=O.minus(B.times(F=T)),O=F;return F=R(E.minus(D),M,0,1),I=I.plus(F.times(L)),D=D.plus(F.times(M)),I.s=L.s=ae.s,N=N*2,H=R(L,M,N,K).minus(ae).abs().comparedTo(R(I,D,N,K).minus(ae).abs())<1?[L,M]:[I,D],oe=U,H},P.toNumber=function(){return+je(this)},P.toPrecision=function(E,T){return E!=null&&_(E,1,m),ue(this,E,T,2)},P.toString=function(E){var T,D=this,M=D.s,F=D.e;return F===null?M?(T="Infinity",M<0&&(T="-"+T)):T="NaN":(E==null?T=F<=Q||F>=ee?C(y(D.c),F):S(y(D.c),F,"0"):E===10&&ke?(D=Oe(new J(D),z+F+1,K),T=S(y(D.c),D.e,"0")):(_(E,2,Ue.length,"Base"),T=$(S(y(D.c),F,"0"),10,E,M,!0)),M<0&&D.c[0]&&(T="-"+T)),T},P.valueOf=P.toJSON=function(){return je(this)},P._isBigNumber=!0,v!=null&&J.set(v),J}function w(v){var R=v|0;return v>0||v===R?R:R-1}function y(v){for(var R,$,V=1,P=v.length,Y=v[0]+"";V<P;){for(R=v[V++]+"",$=l-R.length;$--;R="0"+R);Y+=R}for(P=Y.length;Y.charCodeAt(--P)===48;);return Y.slice(0,P+1||1)}function g(v,R){var $,V,P=v.c,Y=R.c,z=v.s,K=R.s,Q=v.e,ee=R.e;if(!z||!K)return null;if($=P&&!P[0],V=Y&&!Y[0],$||V)return $?V?0:-K:z;if(z!=K)return z;if($=z<0,V=Q==ee,!P||!Y)return V?0:!P^$?1:-1;if(!V)return Q>ee^$?1:-1;for(K=(Q=P.length)<(ee=Y.length)?Q:ee,z=0;z<K;z++)if(P[z]!=Y[z])return P[z]>Y[z]^$?1:-1;return Q==ee?0:Q>ee^$?1:-1}function _(v,R,$,V){if(v<R||v>$||v!==o(v))throw Error(s+(V||"Argument")+(typeof v=="number"?v<R||v>$?" out of range: ":" not an integer: ":" not a primitive number: ")+String(v))}function A(v){var R=v.c.length-1;return w(v.e/l)==R&&v.c[R]%2!=0}function C(v,R){return(v.length>1?v.charAt(0)+"."+v.slice(1):v)+(R<0?"e":"e+")+R}function S(v,R,$){var V,P;if(R<0){for(P=$+".";++R;P+=$);v=P+v}else if(V=v.length,++R>V){for(P=$,R-=V;--R;P+=$);v+=P}else R<V&&(v=v.slice(0,R)+"."+v.slice(R));return v}e=b(),e.default=e.BigNumber=e,typeof define=="function"&&define.amd?define(function(){return e}):typeof ia<"u"&&ia.exports?ia.exports=e:(t||(t=typeof self<"u"&&self?self:window),t.BigNumber=e)})(xg)});var Ig=X((Y1,Fg)=>{var Og=sl(),Pg=Fg.exports;(function(){"use strict";function t(d){return d<10?"0"+d:d}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,r,o,s={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},a;function u(d){return n.lastIndex=0,n.test(d)?'"'+d.replace(n,function(f){var p=s[f];return typeof p=="string"?p:"\\u"+("0000"+f.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+d+'"'}function l(d,f){var p,m,b,w,y=r,g,_=f[d],A=_!=null&&(_ instanceof Og||Og.isBigNumber(_));switch(_&&typeof _=="object"&&typeof _.toJSON=="function"&&(_=_.toJSON(d)),typeof a=="function"&&(_=a.call(f,d,_)),typeof _){case"string":return A?_:u(_);case"number":return isFinite(_)?String(_):"null";case"boolean":case"null":case"bigint":return String(_);case"object":if(!_)return"null";if(r+=o,g=[],Object.prototype.toString.apply(_)==="[object Array]"){for(w=_.length,p=0;p<w;p+=1)g[p]=l(p,_)||"null";return b=g.length===0?"[]":r?`[
|
|
43
|
+
`}yield r}static#s;static#i;static async#a(){return this.#s||=(await Promise.resolve().then(()=>xe(Om()))).HttpsProxyAgent,this.#s}static async#u(){let e=typeof window<"u"&&!!window;return this.#i||=e?window.fetch:(await Promise.resolve().then(()=>(Sg(),Ag))).default,this.#i}static mergeHeaders(e,...n){e=e instanceof Headers?e:new Headers(e);for(let r of n)(r instanceof Headers?r:new Headers(r)).forEach((s,a)=>{a==="set-cookie"?e.append(a,s):e.set(a,s)});return e}};uo.Gaxios=ia;ao=ia});var Xe=X(it=>{"use strict";var $E=it&&it.__createBinding||(Object.create?(function(t,e,n,r){r===void 0&&(r=n);var o=Object.getOwnPropertyDescriptor(e,n);(!o||("get"in o?!e.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,o)}):(function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]})),qE=it&&it.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&$E(e,t,n)};Object.defineProperty(it,"__esModule",{value:!0});it.instance=it.Gaxios=it.GaxiosError=void 0;it.request=HE;var Rg=Dg();Object.defineProperty(it,"Gaxios",{enumerable:!0,get:function(){return Rg.Gaxios}});var zE=Nc();Object.defineProperty(it,"GaxiosError",{enumerable:!0,get:function(){return zE.GaxiosError}});qE(Lc(),it);it.instance=new Rg.Gaxios;async function HE(t){return it.instance.request(t)}});var il=X((xg,aa)=>{(function(t){"use strict";var e,n=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,r=Math.ceil,o=Math.floor,s="[BigNumber Error] ",a=s+"Number primitive has more than 15 significant digits: ",u=1e14,l=14,d=9007199254740991,f=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],p=1e7,m=1e9;function b(T){var R,$,V,P=J.prototype={constructor:J,toString:null,valueOf:null},Y=new J(1),z=20,K=4,Q=-7,ee=21,ie=-1e7,oe=1e7,pe=!1,G=1,Z=0,se={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:"\xA0",suffix:""},Ue="0123456789abcdefghijklmnopqrstuvwxyz",ke=!0;function J(E,v){var D,M,F,N,U,O,I,L,B=this;if(!(B instanceof J))return new J(E,v);if(v==null){if(E&&E._isBigNumber===!0){B.s=E.s,!E.c||E.e>oe?B.c=B.e=null:E.e<ie?B.c=[B.e=0]:(B.e=E.e,B.c=E.c.slice());return}if((O=typeof E=="number")&&E*0==0){if(B.s=1/E<0?(E=-E,-1):1,E===~~E){for(N=0,U=E;U>=10;U/=10,N++);N>oe?B.c=B.e=null:(B.e=N,B.c=[E]);return}L=String(E)}else{if(!n.test(L=String(E)))return V(B,L,O);B.s=L.charCodeAt(0)==45?(L=L.slice(1),-1):1}(N=L.indexOf("."))>-1&&(L=L.replace(".","")),(U=L.search(/e/i))>0?(N<0&&(N=U),N+=+L.slice(U+1),L=L.substring(0,U)):N<0&&(N=L.length)}else{if(_(v,2,Ue.length,"Base"),v==10&&ke)return B=new J(E),Oe(B,z+B.e+1,K);if(L=String(E),O=typeof E=="number"){if(E*0!=0)return V(B,L,O,v);if(B.s=1/E<0?(L=L.slice(1),-1):1,J.DEBUG&&L.replace(/^0\.0*|\./,"").length>15)throw Error(a+E)}else B.s=L.charCodeAt(0)===45?(L=L.slice(1),-1):1;for(D=Ue.slice(0,v),N=U=0,I=L.length;U<I;U++)if(D.indexOf(M=L.charAt(U))<0){if(M=="."){if(U>N){N=I;continue}}else if(!F&&(L==L.toUpperCase()&&(L=L.toLowerCase())||L==L.toLowerCase()&&(L=L.toUpperCase()))){F=!0,U=-1,N=0;continue}return V(B,String(E),O,v)}O=!1,L=$(L,v,10,B.s),(N=L.indexOf("."))>-1?L=L.replace(".",""):N=L.length}for(U=0;L.charCodeAt(U)===48;U++);for(I=L.length;L.charCodeAt(--I)===48;);if(L=L.slice(U,++I)){if(I-=U,O&&J.DEBUG&&I>15&&(E>d||E!==o(E)))throw Error(a+B.s*E);if((N=N-U-1)>oe)B.c=B.e=null;else if(N<ie)B.c=[B.e=0];else{if(B.e=N,B.c=[],U=(N+1)%l,N<0&&(U+=l),U<I){for(U&&B.c.push(+L.slice(0,U)),I-=l;U<I;)B.c.push(+L.slice(U,U+=l));U=l-(L=L.slice(U)).length}else U-=I;for(;U--;L+="0");B.c.push(+L)}}else B.c=[B.e=0]}J.clone=b,J.ROUND_UP=0,J.ROUND_DOWN=1,J.ROUND_CEIL=2,J.ROUND_FLOOR=3,J.ROUND_HALF_UP=4,J.ROUND_HALF_DOWN=5,J.ROUND_HALF_EVEN=6,J.ROUND_HALF_CEIL=7,J.ROUND_HALF_FLOOR=8,J.EUCLID=9,J.config=J.set=function(E){var v,D;if(E!=null)if(typeof E=="object"){if(E.hasOwnProperty(v="DECIMAL_PLACES")&&(D=E[v],_(D,0,m,v),z=D),E.hasOwnProperty(v="ROUNDING_MODE")&&(D=E[v],_(D,0,8,v),K=D),E.hasOwnProperty(v="EXPONENTIAL_AT")&&(D=E[v],D&&D.pop?(_(D[0],-m,0,v),_(D[1],0,m,v),Q=D[0],ee=D[1]):(_(D,-m,m,v),Q=-(ee=D<0?-D:D))),E.hasOwnProperty(v="RANGE"))if(D=E[v],D&&D.pop)_(D[0],-m,-1,v),_(D[1],1,m,v),ie=D[0],oe=D[1];else if(_(D,-m,m,v),D)ie=-(oe=D<0?-D:D);else throw Error(s+v+" cannot be zero: "+D);if(E.hasOwnProperty(v="CRYPTO"))if(D=E[v],D===!!D)if(D)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))pe=D;else throw pe=!D,Error(s+"crypto unavailable");else pe=D;else throw Error(s+v+" not true or false: "+D);if(E.hasOwnProperty(v="MODULO_MODE")&&(D=E[v],_(D,0,9,v),G=D),E.hasOwnProperty(v="POW_PRECISION")&&(D=E[v],_(D,0,m,v),Z=D),E.hasOwnProperty(v="FORMAT"))if(D=E[v],typeof D=="object")se=D;else throw Error(s+v+" not an object: "+D);if(E.hasOwnProperty(v="ALPHABET"))if(D=E[v],typeof D=="string"&&!/^.?$|[+\-.\s]|(.).*\1/.test(D))ke=D.slice(0,10)=="0123456789",Ue=D;else throw Error(s+v+" invalid: "+D)}else throw Error(s+"Object expected: "+E);return{DECIMAL_PLACES:z,ROUNDING_MODE:K,EXPONENTIAL_AT:[Q,ee],RANGE:[ie,oe],CRYPTO:pe,MODULO_MODE:G,POW_PRECISION:Z,FORMAT:se,ALPHABET:Ue}},J.isBigNumber=function(E){if(!E||E._isBigNumber!==!0)return!1;if(!J.DEBUG)return!0;var v,D,M=E.c,F=E.e,N=E.s;e:if({}.toString.call(M)=="[object Array]"){if((N===1||N===-1)&&F>=-m&&F<=m&&F===o(F)){if(M[0]===0){if(F===0&&M.length===1)return!0;break e}if(v=(F+1)%l,v<1&&(v+=l),String(M[0]).length==v){for(v=0;v<M.length;v++)if(D=M[v],D<0||D>=u||D!==o(D))break e;if(D!==0)return!0}}}else if(M===null&&F===null&&(N===null||N===1||N===-1))return!0;throw Error(s+"Invalid BigNumber: "+E)},J.maximum=J.max=function(){return te(arguments,-1)},J.minimum=J.min=function(){return te(arguments,1)},J.random=(function(){var E=9007199254740992,v=Math.random()*E&2097151?function(){return o(Math.random()*E)}:function(){return(Math.random()*1073741824|0)*8388608+(Math.random()*8388608|0)};return function(D){var M,F,N,U,O,I=0,L=[],B=new J(Y);if(D==null?D=z:_(D,0,m),U=r(D/l),pe)if(crypto.getRandomValues){for(M=crypto.getRandomValues(new Uint32Array(U*=2));I<U;)O=M[I]*131072+(M[I+1]>>>11),O>=9e15?(F=crypto.getRandomValues(new Uint32Array(2)),M[I]=F[0],M[I+1]=F[1]):(L.push(O%1e14),I+=2);I=U/2}else if(crypto.randomBytes){for(M=crypto.randomBytes(U*=7);I<U;)O=(M[I]&31)*281474976710656+M[I+1]*1099511627776+M[I+2]*4294967296+M[I+3]*16777216+(M[I+4]<<16)+(M[I+5]<<8)+M[I+6],O>=9e15?crypto.randomBytes(7).copy(M,I):(L.push(O%1e14),I+=7);I=U/7}else throw pe=!1,Error(s+"crypto unavailable");if(!pe)for(;I<U;)O=v(),O<9e15&&(L[I++]=O%1e14);for(U=L[--I],D%=l,U&&D&&(O=f[l-D],L[I]=o(U/O)*O);L[I]===0;L.pop(),I--);if(I<0)L=[N=0];else{for(N=-1;L[0]===0;L.splice(0,1),N-=l);for(I=1,O=L[0];O>=10;O/=10,I++);I<l&&(N-=l-I)}return B.e=N,B.c=L,B}})(),J.sum=function(){for(var E=1,v=arguments,D=new J(v[0]);E<v.length;)D=D.plus(v[E++]);return D},$=(function(){var E="0123456789";function v(D,M,F,N){for(var U,O=[0],I,L=0,B=D.length;L<B;){for(I=O.length;I--;O[I]*=M);for(O[0]+=N.indexOf(D.charAt(L++)),U=0;U<O.length;U++)O[U]>F-1&&(O[U+1]==null&&(O[U+1]=0),O[U+1]+=O[U]/F|0,O[U]%=F)}return O.reverse()}return function(D,M,F,N,U){var O,I,L,B,H,re,ae,Ae,Ie=D.indexOf("."),Me=z,Ee=K;for(Ie>=0&&(B=Z,Z=0,D=D.replace(".",""),Ae=new J(M),re=Ae.pow(D.length-Ie),Z=B,Ae.c=v(S(y(re.c),re.e,"0"),10,F,E),Ae.e=Ae.c.length),ae=v(D,M,F,U?(O=Ue,E):(O=E,Ue)),L=B=ae.length;ae[--B]==0;ae.pop());if(!ae[0])return O.charAt(0);if(Ie<0?--L:(re.c=ae,re.e=L,re.s=N,re=R(re,Ae,Me,Ee,F),ae=re.c,H=re.r,L=re.e),I=L+Me+1,Ie=ae[I],B=F/2,H=H||I<0||ae[I+1]!=null,H=Ee<4?(Ie!=null||H)&&(Ee==0||Ee==(re.s<0?3:2)):Ie>B||Ie==B&&(Ee==4||H||Ee==6&&ae[I-1]&1||Ee==(re.s<0?8:7)),I<1||!ae[0])D=H?S(O.charAt(1),-Me,O.charAt(0)):O.charAt(0);else{if(ae.length=I,H)for(--F;++ae[--I]>F;)ae[I]=0,I||(++L,ae=[1].concat(ae));for(B=ae.length;!ae[--B];);for(Ie=0,D="";Ie<=B;D+=O.charAt(ae[Ie++]));D=S(D,L,O.charAt(0))}return D}})(),R=(function(){function E(M,F,N){var U,O,I,L,B=0,H=M.length,re=F%p,ae=F/p|0;for(M=M.slice();H--;)I=M[H]%p,L=M[H]/p|0,U=ae*I+L*re,O=re*I+U%p*p+B,B=(O/N|0)+(U/p|0)+ae*L,M[H]=O%N;return B&&(M=[B].concat(M)),M}function v(M,F,N,U){var O,I;if(N!=U)I=N>U?1:-1;else for(O=I=0;O<N;O++)if(M[O]!=F[O]){I=M[O]>F[O]?1:-1;break}return I}function D(M,F,N,U){for(var O=0;N--;)M[N]-=O,O=M[N]<F[N]?1:0,M[N]=O*U+M[N]-F[N];for(;!M[0]&&M.length>1;M.splice(0,1));}return function(M,F,N,U,O){var I,L,B,H,re,ae,Ae,Ie,Me,Ee,Se,qe,Pr,Fr,Ir,ft,pn,Ze=M.s==F.s?1:-1,ze=M.c,Te=F.c;if(!ze||!ze[0]||!Te||!Te[0])return new J(!M.s||!F.s||(ze?Te&&ze[0]==Te[0]:!Te)?NaN:ze&&ze[0]==0||!Te?Ze*0:Ze/0);for(Ie=new J(Ze),Me=Ie.c=[],L=M.e-F.e,Ze=N+L+1,O||(O=u,L=w(M.e/l)-w(F.e/l),Ze=Ze/l|0),B=0;Te[B]==(ze[B]||0);B++);if(Te[B]>(ze[B]||0)&&L--,Ze<0)Me.push(1),H=!0;else{for(Fr=ze.length,ft=Te.length,B=0,Ze+=2,re=o(O/(Te[0]+1)),re>1&&(Te=E(Te,re,O),ze=E(ze,re,O),ft=Te.length,Fr=ze.length),Pr=ft,Ee=ze.slice(0,ft),Se=Ee.length;Se<ft;Ee[Se++]=0);pn=Te.slice(),pn=[0].concat(pn),Ir=Te[0],Te[1]>=O/2&&Ir++;do{if(re=0,I=v(Te,Ee,ft,Se),I<0){if(qe=Ee[0],ft!=Se&&(qe=qe*O+(Ee[1]||0)),re=o(qe/Ir),re>1)for(re>=O&&(re=O-1),ae=E(Te,re,O),Ae=ae.length,Se=Ee.length;v(ae,Ee,Ae,Se)==1;)re--,D(ae,ft<Ae?pn:Te,Ae,O),Ae=ae.length,I=1;else re==0&&(I=re=1),ae=Te.slice(),Ae=ae.length;if(Ae<Se&&(ae=[0].concat(ae)),D(Ee,ae,Se,O),Se=Ee.length,I==-1)for(;v(Te,Ee,ft,Se)<1;)re++,D(Ee,ft<Se?pn:Te,Se,O),Se=Ee.length}else I===0&&(re++,Ee=[0]);Me[B++]=re,Ee[0]?Ee[Se++]=ze[Pr]||0:(Ee=[ze[Pr]],Se=1)}while((Pr++<Fr||Ee[0]!=null)&&Ze--);H=Ee[0]!=null,Me[0]||Me.splice(0,1)}if(O==u){for(B=1,Ze=Me[0];Ze>=10;Ze/=10,B++);Oe(Ie,N+(Ie.e=B+L*l-1)+1,U,H)}else Ie.e=L,Ie.r=+H;return Ie}})();function ue(E,v,D,M){var F,N,U,O,I;if(D==null?D=K:_(D,0,8),!E.c)return E.toString();if(F=E.c[0],U=E.e,v==null)I=y(E.c),I=M==1||M==2&&(U<=Q||U>=ee)?C(I,U):S(I,U,"0");else if(E=Oe(new J(E),v,D),N=E.e,I=y(E.c),O=I.length,M==1||M==2&&(v<=N||N<=Q)){for(;O<v;I+="0",O++);I=C(I,N)}else if(v-=U+(M===2&&N>U),I=S(I,N,"0"),N+1>O){if(--v>0)for(I+=".";v--;I+="0");}else if(v+=N-O,v>0)for(N+1==O&&(I+=".");v--;I+="0");return E.s<0&&F?"-"+I:I}function te(E,v){for(var D,M,F=1,N=new J(E[0]);F<E.length;F++)M=new J(E[F]),(!M.s||(D=g(N,M))===v||D===0&&N.s===v)&&(N=M);return N}function ve(E,v,D){for(var M=1,F=v.length;!v[--F];v.pop());for(F=v[0];F>=10;F/=10,M++);return(D=M+D*l-1)>oe?E.c=E.e=null:D<ie?E.c=[E.e=0]:(E.e=D,E.c=v),E}V=(function(){var E=/^(-?)0([xbo])(?=\w[\w.]*$)/i,v=/^([^.]+)\.$/,D=/^\.([^.]+)$/,M=/^-?(Infinity|NaN)$/,F=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(N,U,O,I){var L,B=O?U:U.replace(F,"");if(M.test(B))N.s=isNaN(B)?null:B<0?-1:1;else{if(!O&&(B=B.replace(E,function(H,re,ae){return L=(ae=ae.toLowerCase())=="x"?16:ae=="b"?2:8,!I||I==L?re:H}),I&&(L=I,B=B.replace(v,"$1").replace(D,"0.$1")),U!=B))return new J(B,L);if(J.DEBUG)throw Error(s+"Not a"+(I?" base "+I:"")+" number: "+U);N.s=null}N.c=N.e=null}})();function Oe(E,v,D,M){var F,N,U,O,I,L,B,H=E.c,re=f;if(H){e:{for(F=1,O=H[0];O>=10;O/=10,F++);if(N=v-F,N<0)N+=l,U=v,I=H[L=0],B=o(I/re[F-U-1]%10);else if(L=r((N+1)/l),L>=H.length)if(M){for(;H.length<=L;H.push(0));I=B=0,F=1,N%=l,U=N-l+1}else break e;else{for(I=O=H[L],F=1;O>=10;O/=10,F++);N%=l,U=N-l+F,B=U<0?0:o(I/re[F-U-1]%10)}if(M=M||v<0||H[L+1]!=null||(U<0?I:I%re[F-U-1]),M=D<4?(B||M)&&(D==0||D==(E.s<0?3:2)):B>5||B==5&&(D==4||M||D==6&&(N>0?U>0?I/re[F-U]:0:H[L-1])%10&1||D==(E.s<0?8:7)),v<1||!H[0])return H.length=0,M?(v-=E.e+1,H[0]=re[(l-v%l)%l],E.e=-v||0):H[0]=E.e=0,E;if(N==0?(H.length=L,O=1,L--):(H.length=L+1,O=re[l-N],H[L]=U>0?o(I/re[F-U]%re[U])*O:0),M)for(;;)if(L==0){for(N=1,U=H[0];U>=10;U/=10,N++);for(U=H[0]+=O,O=1;U>=10;U/=10,O++);N!=O&&(E.e++,H[0]==u&&(H[0]=1));break}else{if(H[L]+=O,H[L]!=u)break;H[L--]=0,O=1}for(N=H.length;H[--N]===0;H.pop());}E.e>oe?E.c=E.e=null:E.e<ie&&(E.c=[E.e=0])}return E}function je(E){var v,D=E.e;return D===null?E.toString():(v=y(E.c),v=D<=Q||D>=ee?C(v,D):S(v,D,"0"),E.s<0?"-"+v:v)}return P.absoluteValue=P.abs=function(){var E=new J(this);return E.s<0&&(E.s=1),E},P.comparedTo=function(E,v){return g(this,new J(E,v))},P.decimalPlaces=P.dp=function(E,v){var D,M,F,N=this;if(E!=null)return _(E,0,m),v==null?v=K:_(v,0,8),Oe(new J(N),E+N.e+1,v);if(!(D=N.c))return null;if(M=((F=D.length-1)-w(this.e/l))*l,F=D[F])for(;F%10==0;F/=10,M--);return M<0&&(M=0),M},P.dividedBy=P.div=function(E,v){return R(this,new J(E,v),z,K)},P.dividedToIntegerBy=P.idiv=function(E,v){return R(this,new J(E,v),0,1)},P.exponentiatedBy=P.pow=function(E,v){var D,M,F,N,U,O,I,L,B,H=this;if(E=new J(E),E.c&&!E.isInteger())throw Error(s+"Exponent not an integer: "+je(E));if(v!=null&&(v=new J(v)),O=E.e>14,!H.c||!H.c[0]||H.c[0]==1&&!H.e&&H.c.length==1||!E.c||!E.c[0])return B=new J(Math.pow(+je(H),O?E.s*(2-A(E)):+je(E))),v?B.mod(v):B;if(I=E.s<0,v){if(v.c?!v.c[0]:!v.s)return new J(NaN);M=!I&&H.isInteger()&&v.isInteger(),M&&(H=H.mod(v))}else{if(E.e>9&&(H.e>0||H.e<-1||(H.e==0?H.c[0]>1||O&&H.c[1]>=24e7:H.c[0]<8e13||O&&H.c[0]<=9999975e7)))return N=H.s<0&&A(E)?-0:0,H.e>-1&&(N=1/N),new J(I?1/N:N);Z&&(N=r(Z/l+2))}for(O?(D=new J(.5),I&&(E.s=1),L=A(E)):(F=Math.abs(+je(E)),L=F%2),B=new J(Y);;){if(L){if(B=B.times(H),!B.c)break;N?B.c.length>N&&(B.c.length=N):M&&(B=B.mod(v))}if(F){if(F=o(F/2),F===0)break;L=F%2}else if(E=E.times(D),Oe(E,E.e+1,1),E.e>14)L=A(E);else{if(F=+je(E),F===0)break;L=F%2}H=H.times(H),N?H.c&&H.c.length>N&&(H.c.length=N):M&&(H=H.mod(v))}return M?B:(I&&(B=Y.div(B)),v?B.mod(v):N?Oe(B,Z,K,U):B)},P.integerValue=function(E){var v=new J(this);return E==null?E=K:_(E,0,8),Oe(v,v.e+1,E)},P.isEqualTo=P.eq=function(E,v){return g(this,new J(E,v))===0},P.isFinite=function(){return!!this.c},P.isGreaterThan=P.gt=function(E,v){return g(this,new J(E,v))>0},P.isGreaterThanOrEqualTo=P.gte=function(E,v){return(v=g(this,new J(E,v)))===1||v===0},P.isInteger=function(){return!!this.c&&w(this.e/l)>this.c.length-2},P.isLessThan=P.lt=function(E,v){return g(this,new J(E,v))<0},P.isLessThanOrEqualTo=P.lte=function(E,v){return(v=g(this,new J(E,v)))===-1||v===0},P.isNaN=function(){return!this.s},P.isNegative=function(){return this.s<0},P.isPositive=function(){return this.s>0},P.isZero=function(){return!!this.c&&this.c[0]==0},P.minus=function(E,v){var D,M,F,N,U=this,O=U.s;if(E=new J(E,v),v=E.s,!O||!v)return new J(NaN);if(O!=v)return E.s=-v,U.plus(E);var I=U.e/l,L=E.e/l,B=U.c,H=E.c;if(!I||!L){if(!B||!H)return B?(E.s=-v,E):new J(H?U:NaN);if(!B[0]||!H[0])return H[0]?(E.s=-v,E):new J(B[0]?U:K==3?-0:0)}if(I=w(I),L=w(L),B=B.slice(),O=I-L){for((N=O<0)?(O=-O,F=B):(L=I,F=H),F.reverse(),v=O;v--;F.push(0));F.reverse()}else for(M=(N=(O=B.length)<(v=H.length))?O:v,O=v=0;v<M;v++)if(B[v]!=H[v]){N=B[v]<H[v];break}if(N&&(F=B,B=H,H=F,E.s=-E.s),v=(M=H.length)-(D=B.length),v>0)for(;v--;B[D++]=0);for(v=u-1;M>O;){if(B[--M]<H[M]){for(D=M;D&&!B[--D];B[D]=v);--B[D],B[M]+=u}B[M]-=H[M]}for(;B[0]==0;B.splice(0,1),--L);return B[0]?ve(E,B,L):(E.s=K==3?-1:1,E.c=[E.e=0],E)},P.modulo=P.mod=function(E,v){var D,M,F=this;return E=new J(E,v),!F.c||!E.s||E.c&&!E.c[0]?new J(NaN):!E.c||F.c&&!F.c[0]?new J(F):(G==9?(M=E.s,E.s=1,D=R(F,E,0,3),E.s=M,D.s*=M):D=R(F,E,0,G),E=F.minus(D.times(E)),!E.c[0]&&G==1&&(E.s=F.s),E)},P.multipliedBy=P.times=function(E,v){var D,M,F,N,U,O,I,L,B,H,re,ae,Ae,Ie,Me,Ee=this,Se=Ee.c,qe=(E=new J(E,v)).c;if(!Se||!qe||!Se[0]||!qe[0])return!Ee.s||!E.s||Se&&!Se[0]&&!qe||qe&&!qe[0]&&!Se?E.c=E.e=E.s=null:(E.s*=Ee.s,!Se||!qe?E.c=E.e=null:(E.c=[0],E.e=0)),E;for(M=w(Ee.e/l)+w(E.e/l),E.s*=Ee.s,I=Se.length,H=qe.length,I<H&&(Ae=Se,Se=qe,qe=Ae,F=I,I=H,H=F),F=I+H,Ae=[];F--;Ae.push(0));for(Ie=u,Me=p,F=H;--F>=0;){for(D=0,re=qe[F]%Me,ae=qe[F]/Me|0,U=I,N=F+U;N>F;)L=Se[--U]%Me,B=Se[U]/Me|0,O=ae*L+B*re,L=re*L+O%Me*Me+Ae[N]+D,D=(L/Ie|0)+(O/Me|0)+ae*B,Ae[N--]=L%Ie;Ae[N]=D}return D?++M:Ae.splice(0,1),ve(E,Ae,M)},P.negated=function(){var E=new J(this);return E.s=-E.s||null,E},P.plus=function(E,v){var D,M=this,F=M.s;if(E=new J(E,v),v=E.s,!F||!v)return new J(NaN);if(F!=v)return E.s=-v,M.minus(E);var N=M.e/l,U=E.e/l,O=M.c,I=E.c;if(!N||!U){if(!O||!I)return new J(F/0);if(!O[0]||!I[0])return I[0]?E:new J(O[0]?M:F*0)}if(N=w(N),U=w(U),O=O.slice(),F=N-U){for(F>0?(U=N,D=I):(F=-F,D=O),D.reverse();F--;D.push(0));D.reverse()}for(F=O.length,v=I.length,F-v<0&&(D=I,I=O,O=D,v=F),F=0;v;)F=(O[--v]=O[v]+I[v]+F)/u|0,O[v]=u===O[v]?0:O[v]%u;return F&&(O=[F].concat(O),++U),ve(E,O,U)},P.precision=P.sd=function(E,v){var D,M,F,N=this;if(E!=null&&E!==!!E)return _(E,1,m),v==null?v=K:_(v,0,8),Oe(new J(N),E,v);if(!(D=N.c))return null;if(F=D.length-1,M=F*l+1,F=D[F]){for(;F%10==0;F/=10,M--);for(F=D[0];F>=10;F/=10,M++);}return E&&N.e+1>M&&(M=N.e+1),M},P.shiftedBy=function(E){return _(E,-d,d),this.times("1e"+E)},P.squareRoot=P.sqrt=function(){var E,v,D,M,F,N=this,U=N.c,O=N.s,I=N.e,L=z+4,B=new J("0.5");if(O!==1||!U||!U[0])return new J(!O||O<0&&(!U||U[0])?NaN:U?N:1/0);if(O=Math.sqrt(+je(N)),O==0||O==1/0?(v=y(U),(v.length+I)%2==0&&(v+="0"),O=Math.sqrt(+v),I=w((I+1)/2)-(I<0||I%2),O==1/0?v="5e"+I:(v=O.toExponential(),v=v.slice(0,v.indexOf("e")+1)+I),D=new J(v)):D=new J(O+""),D.c[0]){for(I=D.e,O=I+L,O<3&&(O=0);;)if(F=D,D=B.times(F.plus(R(N,F,L,1))),y(F.c).slice(0,O)===(v=y(D.c)).slice(0,O))if(D.e<I&&--O,v=v.slice(O-3,O+1),v=="9999"||!M&&v=="4999"){if(!M&&(Oe(F,F.e+z+2,0),F.times(F).eq(N))){D=F;break}L+=4,O+=4,M=1}else{(!+v||!+v.slice(1)&&v.charAt(0)=="5")&&(Oe(D,D.e+z+2,1),E=!D.times(D).eq(N));break}}return Oe(D,D.e+z+1,K,E)},P.toExponential=function(E,v){return E!=null&&(_(E,0,m),E++),ue(this,E,v,1)},P.toFixed=function(E,v){return E!=null&&(_(E,0,m),E=E+this.e+1),ue(this,E,v)},P.toFormat=function(E,v,D){var M,F=this;if(D==null)E!=null&&v&&typeof v=="object"?(D=v,v=null):E&&typeof E=="object"?(D=E,E=v=null):D=se;else if(typeof D!="object")throw Error(s+"Argument not an object: "+D);if(M=F.toFixed(E,v),F.c){var N,U=M.split("."),O=+D.groupSize,I=+D.secondaryGroupSize,L=D.groupSeparator||"",B=U[0],H=U[1],re=F.s<0,ae=re?B.slice(1):B,Ae=ae.length;if(I&&(N=O,O=I,I=N,Ae-=N),O>0&&Ae>0){for(N=Ae%O||O,B=ae.substr(0,N);N<Ae;N+=O)B+=L+ae.substr(N,O);I>0&&(B+=L+ae.slice(N)),re&&(B="-"+B)}M=H?B+(D.decimalSeparator||"")+((I=+D.fractionGroupSize)?H.replace(new RegExp("\\d{"+I+"}\\B","g"),"$&"+(D.fractionGroupSeparator||"")):H):B}return(D.prefix||"")+M+(D.suffix||"")},P.toFraction=function(E){var v,D,M,F,N,U,O,I,L,B,H,re,ae=this,Ae=ae.c;if(E!=null&&(O=new J(E),!O.isInteger()&&(O.c||O.s!==1)||O.lt(Y)))throw Error(s+"Argument "+(O.isInteger()?"out of range: ":"not an integer: ")+je(O));if(!Ae)return new J(ae);for(v=new J(Y),L=D=new J(Y),M=I=new J(Y),re=y(Ae),N=v.e=re.length-ae.e-1,v.c[0]=f[(U=N%l)<0?l+U:U],E=!E||O.comparedTo(v)>0?N>0?v:L:O,U=oe,oe=1/0,O=new J(re),I.c[0]=0;B=R(O,v,0,1),F=D.plus(B.times(M)),F.comparedTo(E)!=1;)D=M,M=F,L=I.plus(B.times(F=L)),I=F,v=O.minus(B.times(F=v)),O=F;return F=R(E.minus(D),M,0,1),I=I.plus(F.times(L)),D=D.plus(F.times(M)),I.s=L.s=ae.s,N=N*2,H=R(L,M,N,K).minus(ae).abs().comparedTo(R(I,D,N,K).minus(ae).abs())<1?[L,M]:[I,D],oe=U,H},P.toNumber=function(){return+je(this)},P.toPrecision=function(E,v){return E!=null&&_(E,1,m),ue(this,E,v,2)},P.toString=function(E){var v,D=this,M=D.s,F=D.e;return F===null?M?(v="Infinity",M<0&&(v="-"+v)):v="NaN":(E==null?v=F<=Q||F>=ee?C(y(D.c),F):S(y(D.c),F,"0"):E===10&&ke?(D=Oe(new J(D),z+F+1,K),v=S(y(D.c),D.e,"0")):(_(E,2,Ue.length,"Base"),v=$(S(y(D.c),F,"0"),10,E,M,!0)),M<0&&D.c[0]&&(v="-"+v)),v},P.valueOf=P.toJSON=function(){return je(this)},P._isBigNumber=!0,T!=null&&J.set(T),J}function w(T){var R=T|0;return T>0||T===R?R:R-1}function y(T){for(var R,$,V=1,P=T.length,Y=T[0]+"";V<P;){for(R=T[V++]+"",$=l-R.length;$--;R="0"+R);Y+=R}for(P=Y.length;Y.charCodeAt(--P)===48;);return Y.slice(0,P+1||1)}function g(T,R){var $,V,P=T.c,Y=R.c,z=T.s,K=R.s,Q=T.e,ee=R.e;if(!z||!K)return null;if($=P&&!P[0],V=Y&&!Y[0],$||V)return $?V?0:-K:z;if(z!=K)return z;if($=z<0,V=Q==ee,!P||!Y)return V?0:!P^$?1:-1;if(!V)return Q>ee^$?1:-1;for(K=(Q=P.length)<(ee=Y.length)?Q:ee,z=0;z<K;z++)if(P[z]!=Y[z])return P[z]>Y[z]^$?1:-1;return Q==ee?0:Q>ee^$?1:-1}function _(T,R,$,V){if(T<R||T>$||T!==o(T))throw Error(s+(V||"Argument")+(typeof T=="number"?T<R||T>$?" out of range: ":" not an integer: ":" not a primitive number: ")+String(T))}function A(T){var R=T.c.length-1;return w(T.e/l)==R&&T.c[R]%2!=0}function C(T,R){return(T.length>1?T.charAt(0)+"."+T.slice(1):T)+(R<0?"e":"e+")+R}function S(T,R,$){var V,P;if(R<0){for(P=$+".";++R;P+=$);T=P+T}else if(V=T.length,++R>V){for(P=$,R-=V;--R;P+=$);T+=P}else R<V&&(T=T.slice(0,R)+"."+T.slice(R));return T}e=b(),e.default=e.BigNumber=e,typeof define=="function"&&define.amd?define(function(){return e}):typeof aa<"u"&&aa.exports?aa.exports=e:(t||(t=typeof self<"u"&&self?self:window),t.BigNumber=e)})(xg)});var Ig=X((Z1,Fg)=>{var Og=il(),Pg=Fg.exports;(function(){"use strict";function t(d){return d<10?"0"+d:d}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,r,o,s={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},a;function u(d){return n.lastIndex=0,n.test(d)?'"'+d.replace(n,function(f){var p=s[f];return typeof p=="string"?p:"\\u"+("0000"+f.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+d+'"'}function l(d,f){var p,m,b,w,y=r,g,_=f[d],A=_!=null&&(_ instanceof Og||Og.isBigNumber(_));switch(_&&typeof _=="object"&&typeof _.toJSON=="function"&&(_=_.toJSON(d)),typeof a=="function"&&(_=a.call(f,d,_)),typeof _){case"string":return A?_:u(_);case"number":return isFinite(_)?String(_):"null";case"boolean":case"null":case"bigint":return String(_);case"object":if(!_)return"null";if(r+=o,g=[],Object.prototype.toString.apply(_)==="[object Array]"){for(w=_.length,p=0;p<w;p+=1)g[p]=l(p,_)||"null";return b=g.length===0?"[]":r?`[
|
|
44
44
|
`+r+g.join(`,
|
|
45
45
|
`+r)+`
|
|
46
46
|
`+y+"]":"["+g.join(",")+"]",r=y,b}if(a&&typeof a=="object")for(w=a.length,p=0;p<w;p+=1)typeof a[p]=="string"&&(m=a[p],b=l(m,_),b&&g.push(u(m)+(r?": ":":")+b));else Object.keys(_).forEach(function(C){var S=l(C,_);S&&g.push(u(C)+(r?": ":":")+S)});return b=g.length===0?"{}":r?`{
|
|
47
47
|
`+r+g.join(`,
|
|
48
48
|
`+r)+`
|
|
49
|
-
`+y+"}":"{"+g.join(",")+"}",r=y,b}}typeof Pg.stringify!="function"&&(Pg.stringify=function(d,f,p){var m;if(r="",o="",typeof p=="number")for(m=0;m<p;m+=1)o+=" ";else typeof p=="string"&&(o=p);if(a=f,f&&typeof f!="function"&&(typeof f!="object"||typeof f.length!="number"))throw new Error("JSON.stringify");return l("",{"":d})})})()});var Bg=X((
|
|
50
|
-
`,r:"\r",t:" "},s,a=function(y){throw{name:"SyntaxError",message:y,at:n,text:s}},u=function(y){return y&&y!==r&&a("Expected '"+y+"' instead of '"+r+"'"),r=s.charAt(n),n+=1,r},l=function(){var y,g="";for(r==="-"&&(g="-",u("-"));r>="0"&&r<="9";)g+=r,u();if(r===".")for(g+=".";u()&&r>="0"&&r<="9";)g+=r;if(r==="e"||r==="E")for(g+=r,u(),(r==="-"||r==="+")&&(g+=r,u());r>="0"&&r<="9";)g+=r,u();if(y=+g,!isFinite(y))a("Bad number");else return aa==null&&(aa=sl()),g.length>15?e.storeAsString?g:e.useNativeBigInt?BigInt(g):new aa(g):e.alwaysParseAsBig?e.useNativeBigInt?BigInt(y):new aa(y):y},d=function(){var y,g,_="",A;if(r==='"')for(var C=n;u();){if(r==='"')return n-1>C&&(_+=s.substring(C,n-1)),u(),_;if(r==="\\"){if(n-1>C&&(_+=s.substring(C,n-1)),u(),r==="u"){for(A=0,g=0;g<4&&(y=parseInt(u(),16),!!isFinite(y));g+=1)A=A*16+y;_+=String.fromCharCode(A)}else if(typeof o[r]=="string")_+=o[r];else break;C=n}}a("Bad string")},f=function(){for(;r&&r<=" ";)u()},p=function(){switch(r){case"t":return u("t"),u("r"),u("u"),u("e"),!0;case"f":return u("f"),u("a"),u("l"),u("s"),u("e"),!1;case"n":return u("n"),u("u"),u("l"),u("l"),null}a("Unexpected '"+r+"'")},m,b=function(){var y=[];if(r==="["){if(u("["),f(),r==="]")return u("]"),y;for(;r;){if(y.push(m()),f(),r==="]")return u("]"),y;u(","),f()}}a("Bad array")},w=function(){var y,g=Object.create(null);if(r==="{"){if(u("{"),f(),r==="}")return u("}"),g;for(;r;){if(y=d(),f(),u(":"),e.strict===!0&&Object.hasOwnProperty.call(g,y)&&a('Duplicate key "'+y+'"'),HE.test(y)===!0?e.protoAction==="error"?a("Object contains forbidden prototype property"):e.protoAction==="ignore"?m():g[y]=m():WE.test(y)===!0?e.constructorAction==="error"?a("Object contains forbidden constructor property"):e.constructorAction==="ignore"?m():g[y]=m():g[y]=m(),f(),r==="}")return u("}"),g;u(","),f()}}a("Bad object")};return m=function(){switch(f(),r){case"{":return w();case"[":return b();case'"':return d();case"-":return l();default:return r>="0"&&r<="9"?l():p()}},function(y,g){var _;return s=y+"",n=0,r=" ",_=m(),f(),r&&a("Syntax error"),typeof g=="function"?(function A(C,S){var v,R,$=C[S];return $&&typeof $=="object"&&Object.keys($).forEach(function(V){R=A($,V),R!==void 0?$[V]=R:delete $[V]}),g.call(C,S,$)})({"":_},""):_}};Ng.exports=GE});var jg=X((X1,ua)=>{var Mg=Ig().stringify,Lg=Bg();ua.exports=function(t){return{parse:Lg(t),stringify:Mg}};ua.exports.parse=Lg();ua.exports.stringify=Mg});var il=X(Wt=>{"use strict";Object.defineProperty(Wt,"__esModule",{value:!0});Wt.GCE_LINUX_BIOS_PATHS=void 0;Wt.isGoogleCloudServerless=qg;Wt.isGoogleComputeEngineLinux=zg;Wt.isGoogleComputeEngineMACAddress=Hg;Wt.isGoogleComputeEngine=Wg;Wt.detectGCPResidency=VE;var Ug=require("fs"),$g=require("os");Wt.GCE_LINUX_BIOS_PATHS={BIOS_DATE:"/sys/class/dmi/id/bios_date",BIOS_VENDOR:"/sys/class/dmi/id/bios_vendor"};var JE=/^42:01/;function qg(){return!!(process.env.CLOUD_RUN_JOB||process.env.FUNCTION_NAME||process.env.K_SERVICE)}function zg(){if((0,$g.platform)()!=="linux")return!1;try{(0,Ug.statSync)(Wt.GCE_LINUX_BIOS_PATHS.BIOS_DATE);let t=(0,Ug.readFileSync)(Wt.GCE_LINUX_BIOS_PATHS.BIOS_VENDOR,"utf8");return/Google/.test(t)}catch{return!1}}function Hg(){let t=(0,$g.networkInterfaces)();for(let e of Object.values(t))if(e){for(let{mac:n}of e)if(JE.test(n))return!0}return!1}function Wg(){return zg()||Hg()}function VE(){return qg()||Wg()}});var Gg=X(ca=>{"use strict";Object.defineProperty(ca,"__esModule",{value:!0});ca.Colours=void 0;var nt=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="")}};ca.Colours=nt;nt.enabled=!1;nt.reset="";nt.bright="";nt.dim="";nt.red="";nt.green="";nt.yellow="";nt.blue="";nt.magenta="";nt.cyan="";nt.white="";nt.grey="";nt.refresh()});var Yg=X(De=>{"use strict";var KE=De&&De.__createBinding||(Object.create?(function(t,e,n,r){r===void 0&&(r=n);var o=Object.getOwnPropertyDescriptor(e,n);(!o||("get"in o?!e.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,o)}):(function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]})),YE=De&&De.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),Jg=De&&De.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(n){var r=[];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(r[r.length]=o);return r},t(e)};return function(e){if(e&&e.__esModule)return e;var n={};if(e!=null)for(var r=t(e),o=0;o<r.length;o++)r[o]!=="default"&&KE(n,e,r[o]);return YE(n,e),n}})();Object.defineProperty(De,"__esModule",{value:!0});De.env=De.DebugLogBackendBase=De.placeholder=De.AdhocDebugLogger=De.LogSeverity=void 0;De.getNodeBackend=ul;De.getDebugBackend=XE;De.getStructuredBackend=ZE;De.setBackend=ek;De.log=Kg;var QE=require("events"),rs=Jg(require("process")),Vg=Jg(require("util")),_t=Gg(),Gt;(function(t){t.DEFAULT="DEFAULT",t.DEBUG="DEBUG",t.INFO="INFO",t.WARNING="WARNING",t.ERROR="ERROR"})(Gt||(De.LogSeverity=Gt={}));var os=class extends QE.EventEmitter{constructor(e,n){super(),this.namespace=e,this.upstream=n,this.func=Object.assign(this.invoke.bind(this),{instance:this,on:(r,o)=>this.on(r,o)}),this.func.debug=(...r)=>this.invokeSeverity(Gt.DEBUG,...r),this.func.info=(...r)=>this.invokeSeverity(Gt.INFO,...r),this.func.warn=(...r)=>this.invokeSeverity(Gt.WARNING,...r),this.func.error=(...r)=>this.invokeSeverity(Gt.ERROR,...r),this.func.sublog=r=>Kg(r,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)}};De.AdhocDebugLogger=os;De.placeholder=new os("",()=>{}).func;var co=class{constructor(){var e;this.cached=new Map,this.filters=[],this.filtersSet=!1;let n=(e=rs.env[De.env.nodeEnables])!==null&&e!==void 0?e:"*";n==="all"&&(n="*"),this.filters=n.split(",")}log(e,n,...r){try{this.filtersSet||(this.setFilters(),this.filtersSet=!0);let o=this.cached.get(e);o||(o=this.makeLogger(e),this.cached.set(e,o)),o(n,...r)}catch(o){console.error(o)}}};De.DebugLogBackendBase=co;var al=class extends co{constructor(){super(...arguments),this.enabledRegexp=/.*/g}isEnabled(e){return this.enabledRegexp.test(e)}makeLogger(e){return this.enabledRegexp.test(e)?(n,...r)=>{var o;let s=`${_t.Colours.green}${e}${_t.Colours.reset}`,a=`${_t.Colours.yellow}${rs.pid}${_t.Colours.reset}`,u;switch(n.severity){case Gt.ERROR:u=`${_t.Colours.red}${n.severity}${_t.Colours.reset}`;break;case Gt.INFO:u=`${_t.Colours.magenta}${n.severity}${_t.Colours.reset}`;break;case Gt.WARNING:u=`${_t.Colours.yellow}${n.severity}${_t.Colours.reset}`;break;default:u=(o=n.severity)!==null&&o!==void 0?o:Gt.DEFAULT;break}let l=Vg.formatWithOptions({colors:_t.Colours.enabled},...r),d=Object.assign({},n);delete d.severity;let f=Object.getOwnPropertyNames(d).length?JSON.stringify(d):"",p=f?`${_t.Colours.grey}${f}${_t.Colours.reset}`:"";console.error("%s [%s|%s] %s%s",a,s,u,l,f?` ${p}`:"")}:()=>{}}setFilters(){let n=this.filters.join(",").replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^");this.enabledRegexp=new RegExp(`^${n}$`,"i")}};function ul(){return new al}var cl=class extends co{constructor(e){super(),this.debugPkg=e}makeLogger(e){let n=this.debugPkg(e);return(r,...o)=>{n(o[0],...o.slice(1))}}setFilters(){var e;let n=(e=rs.env.NODE_DEBUG)!==null&&e!==void 0?e:"";rs.env.NODE_DEBUG=`${n}${n?",":""}${this.filters.join(",")}`}};function XE(t){return new cl(t)}var ll=class extends co{constructor(e){var n;super(),this.upstream=(n=e)!==null&&n!==void 0?n:void 0}makeLogger(e){var n;let r=(n=this.upstream)===null||n===void 0?void 0:n.makeLogger(e);return(o,...s)=>{var a;let u=(a=o.severity)!==null&&a!==void 0?a:Gt.INFO,l=Object.assign({severity:u,message:Vg.format(...s)},o),d=JSON.stringify(l);r?r(o,d):console.log("%s",d)}}setFilters(){var e;(e=this.upstream)===null||e===void 0||e.setFilters()}};function ZE(t){return new ll(t)}De.env={nodeEnables:"GOOGLE_SDK_NODE_LOGGING"};var dl=new Map,bt;function ek(t){bt=t,dl.clear()}function Kg(t,e){if(!bt&&!rs.env[De.env.nodeEnables]||!t)return De.placeholder;e&&(t=`${e.instance.namespace}:${t}`);let n=dl.get(t);if(n)return n.func;if(bt===null)return De.placeholder;bt===void 0&&(bt=ul());let r=(()=>{let o;return new os(t,(a,...u)=>{if(o!==bt){if(bt===null)return;bt===void 0&&(bt=ul()),o=bt}bt?.log(t,a,...u)})})();return dl.set(t,r),r.func}});var fl=X(Ar=>{"use strict";var tk=Ar&&Ar.__createBinding||(Object.create?(function(t,e,n,r){r===void 0&&(r=n);var o=Object.getOwnPropertyDescriptor(e,n);(!o||("get"in o?!e.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,o)}):(function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]})),nk=Ar&&Ar.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&tk(e,t,n)};Object.defineProperty(Ar,"__esModule",{value:!0});nk(Yg(),Ar)});var is=X(fe=>{"use strict";var Xg=fe&&fe.__createBinding||(Object.create?(function(t,e,n,r){r===void 0&&(r=n);var o=Object.getOwnPropertyDescriptor(e,n);(!o||("get"in o?!e.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,o)}):(function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]})),rk=fe&&fe.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),ok=fe&&fe.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(n){var r=[];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(r[r.length]=o);return r},t(e)};return function(e){if(e&&e.__esModule)return e;var n={};if(e!=null)for(var r=t(e),o=0;o<r.length;o++)r[o]!=="default"&&Xg(n,e,r[o]);return rk(n,e),n}})(),sk=fe&&fe.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&Xg(e,t,n)};Object.defineProperty(fe,"__esModule",{value:!0});fe.gcpResidencyCache=fe.METADATA_SERVER_DETECTION=fe.HEADERS=fe.HEADER_VALUE=fe.HEADER_NAME=fe.SECONDARY_HOST_ADDRESS=fe.HOST_ADDRESS=fe.BASE_PATH=void 0;fe.instance=dk;fe.project=fk;fe.universe=hk;fe.bulk=pk;fe.isAvailable=gk;fe.resetIsAvailableCache=yk;fe.getGCPResidency=ml;fe.setGCPResidency=Zg;fe.requestTimeout=ey;var hl=Xe(),ik=jg(),ak=il(),uk=ok(fl());fe.BASE_PATH="/computeMetadata/v1";fe.HOST_ADDRESS="http://169.254.169.254";fe.SECONDARY_HOST_ADDRESS="http://metadata.google.internal.";fe.HEADER_NAME="Metadata-Flavor";fe.HEADER_VALUE="Google";fe.HEADERS=Object.freeze({[fe.HEADER_NAME]:fe.HEADER_VALUE});var Qg=uk.log("gcp-metadata");fe.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 pl(t){return t||(t=process.env.GCE_METADATA_IP||process.env.GCE_METADATA_HOST||fe.HOST_ADDRESS),/^https?:\/\//.test(t)||(t=`http://${t}`),new URL(fe.BASE_PATH,t).href}function ck(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 ss(t,e={},n=3,r=!1){let o=new Headers(fe.HEADERS),s="",a={};if(typeof t=="object"){let p=t;new Headers(p.headers).forEach((m,b)=>o.set(b,m)),s=p.metadataKey,a=p.params||a,n=p.noResponseRetries||n,r=p.fastFail||r}else s=t;typeof e=="string"?s+=`/${e}`:(ck(e),e.property&&(s+=`/${e.property}`),new Headers(e.headers).forEach((p,m)=>o.set(m,p)),a=e.params||a);let u=r?lk:hl.request,l={url:`${pl()}/${s}`,headers:o,retryConfig:{noResponseRetries:n},params:a,responseType:"text",timeout:ey()};Qg.info("instance request %j",l);let d=await u(l);Qg.info("instance metadata is %s",d.data);let f=d.headers.get(fe.HEADER_NAME);if(f!==fe.HEADER_VALUE)throw new RangeError(`Invalid response from metadata service: incorrect ${fe.HEADER_NAME} header. Expected '${fe.HEADER_VALUE}', got ${f?`'${f}'`:"no header"}`);if(typeof d.data=="string")try{return ik.parse(d.data)}catch{}return d.data}async function lk(t){let e={...t,url:t.url?.toString().replace(pl(),pl(fe.SECONDARY_HOST_ADDRESS))},n=(0,hl.request)(t),r=(0,hl.request)(e);return Promise.any([n,r])}function dk(t){return ss("instance",t)}function fk(t){return ss("project",t)}function hk(t){return ss("universe",t)}async function pk(t){let e={};return await Promise.all(t.map(n=>(async()=>{let r=await ss(n),o=n.metadataKey;e[o]=r})())),e}function mk(){return process.env.DETECT_GCP_RETRIES?Number(process.env.DETECT_GCP_RETRIES):0}var la;async function gk(){if(process.env.METADATA_SERVER_DETECTION){let t=process.env.METADATA_SERVER_DETECTION.trim().toLocaleLowerCase();if(!(t in fe.METADATA_SERVER_DETECTION))throw new RangeError(`Unknown \`METADATA_SERVER_DETECTION\` env variable. Got \`${t}\`, but it should be \`${Object.keys(fe.METADATA_SERVER_DETECTION).join("`, `")}\`, or unset`);switch(t){case"assume-present":return!0;case"none":return!1;case"bios-only":return ml();case"ping-only":}}try{return la===void 0&&(la=ss("instance",void 0,mk(),!(process.env.GCE_METADATA_IP||process.env.GCE_METADATA_HOST))),await la,!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 yk(){la=void 0}fe.gcpResidencyCache=null;function ml(){return fe.gcpResidencyCache===null&&Zg(),fe.gcpResidencyCache}function Zg(t=null){fe.gcpResidencyCache=t!==null?t:(0,ak.detectGCPResidency)()}function ey(){return ml()?0:3e3}sk(il(),fe)});var ry=X(da=>{"use strict";da.byteLength=bk;da.toByteArray=wk;da.fromByteArray=Ak;var nn=[],Ot=[],_k=typeof Uint8Array<"u"?Uint8Array:Array,gl="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(Sr=0,ty=gl.length;Sr<ty;++Sr)nn[Sr]=gl[Sr],Ot[gl.charCodeAt(Sr)]=Sr;var Sr,ty;Ot[45]=62;Ot[95]=63;function ny(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 r=n===e?0:4-n%4;return[n,r]}function bk(t){var e=ny(t),n=e[0],r=e[1];return(n+r)*3/4-r}function Ck(t,e,n){return(e+n)*3/4-n}function wk(t){var e,n=ny(t),r=n[0],o=n[1],s=new _k(Ck(t,r,o)),a=0,u=o>0?r-4:r,l;for(l=0;l<u;l+=4)e=Ot[t.charCodeAt(l)]<<18|Ot[t.charCodeAt(l+1)]<<12|Ot[t.charCodeAt(l+2)]<<6|Ot[t.charCodeAt(l+3)],s[a++]=e>>16&255,s[a++]=e>>8&255,s[a++]=e&255;return o===2&&(e=Ot[t.charCodeAt(l)]<<2|Ot[t.charCodeAt(l+1)]>>4,s[a++]=e&255),o===1&&(e=Ot[t.charCodeAt(l)]<<10|Ot[t.charCodeAt(l+1)]<<4|Ot[t.charCodeAt(l+2)]>>2,s[a++]=e>>8&255,s[a++]=e&255),s}function Ek(t){return nn[t>>18&63]+nn[t>>12&63]+nn[t>>6&63]+nn[t&63]}function kk(t,e,n){for(var r,o=[],s=e;s<n;s+=3)r=(t[s]<<16&16711680)+(t[s+1]<<8&65280)+(t[s+2]&255),o.push(Ek(r));return o.join("")}function Ak(t){for(var e,n=t.length,r=n%3,o=[],s=16383,a=0,u=n-r;a<u;a+=s)o.push(kk(t,a,a+s>u?u:a+s));return r===1?(e=t[n-1],o.push(nn[e>>2]+nn[e<<4&63]+"==")):r===2&&(e=(t[n-2]<<8)+t[n-1],o.push(nn[e>>10]+nn[e>>4&63]+nn[e<<2&63]+"=")),o.join("")}});var _l=X(yl=>{"use strict";Object.defineProperty(yl,"__esModule",{value:!0});yl.fromArrayBufferToHex=Sk;function Sk(t){return Array.from(new Uint8Array(t)).map(n=>n.toString(16).padStart(2,"0")).join("")}});var oy=X(fa=>{"use strict";Object.defineProperty(fa,"__esModule",{value:!0});fa.BrowserCrypto=void 0;var lo=ry(),Tk=_l(),bl=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),r=await window.crypto.subtle.digest("SHA-256",n);return lo.fromByteArray(new Uint8Array(r))}randomBytesBase64(e){let n=new Uint8Array(e);return window.crypto.getRandomValues(n),lo.fromByteArray(n)}static padBase64(e){for(;e.length%4!==0;)e+="=";return e}async verify(e,n,r){let o={name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},s=new TextEncoder().encode(n),a=lo.toByteArray(t.padBase64(r)),u=await window.crypto.subtle.importKey("jwk",e,o,!0,["verify"]);return await window.crypto.subtle.verify(o,u,a,s)}async sign(e,n){let r={name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},o=new TextEncoder().encode(n),s=await window.crypto.subtle.importKey("jwk",e,r,!0,["sign"]),a=await window.crypto.subtle.sign(r,s,o);return lo.fromByteArray(new Uint8Array(a))}decodeBase64StringUtf8(e){let n=lo.toByteArray(t.padBase64(e));return new TextDecoder().decode(n)}encodeBase64StringUtf8(e){let n=new TextEncoder().encode(e);return lo.fromByteArray(n)}async sha256DigestHex(e){let n=new TextEncoder().encode(e),r=await window.crypto.subtle.digest("SHA-256",n);return(0,Tk.fromArrayBufferToHex)(r)}async signWithHmacSha256(e,n){let r=typeof e=="string"?e:String.fromCharCode(...new Uint16Array(e)),o=new TextEncoder,s=await window.crypto.subtle.importKey("raw",o.encode(r),{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]);return window.crypto.subtle.sign("HMAC",s,o.encode(n))}};fa.BrowserCrypto=bl});var sy=X(ha=>{"use strict";Object.defineProperty(ha,"__esModule",{value:!0});ha.NodeCrypto=void 0;var fo=require("crypto"),Cl=class{async sha256DigestBase64(e){return fo.createHash("sha256").update(e).digest("base64")}randomBytesBase64(e){return fo.randomBytes(e).toString("base64")}async verify(e,n,r){let o=fo.createVerify("RSA-SHA256");return o.update(n),o.end(),o.verify(e,r,"base64")}async sign(e,n){let r=fo.createSign("RSA-SHA256");return r.update(n),r.end(),r.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 fo.createHash("sha256").update(e).digest("hex")}async signWithHmacSha256(e,n){let r=typeof e=="string"?e:Dk(e);return vk(fo.createHmac("sha256",r).update(n).digest())}};ha.NodeCrypto=Cl;function vk(t){return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}function Dk(t){return Buffer.from(t)}});var as=X(xn=>{"use strict";var Rk=xn&&xn.__createBinding||(Object.create?(function(t,e,n,r){r===void 0&&(r=n);var o=Object.getOwnPropertyDescriptor(e,n);(!o||("get"in o?!e.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,o)}):(function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]})),xk=xn&&xn.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&Rk(e,t,n)};Object.defineProperty(xn,"__esModule",{value:!0});xn.createCrypto=Fk;xn.hasBrowserCrypto=iy;var Ok=oy(),Pk=sy();xk(_l(),xn);function Fk(){return iy()?new Ok.BrowserCrypto:new Pk.NodeCrypto}function iy(){return typeof window<"u"&&typeof window.crypto<"u"&&typeof window.crypto.subtle<"u"}});var ho=X((wl,uy)=>{var pa=require("buffer"),rn=pa.Buffer;function ay(t,e){for(var n in t)e[n]=t[n]}rn.from&&rn.alloc&&rn.allocUnsafe&&rn.allocUnsafeSlow?uy.exports=pa:(ay(pa,wl),wl.Buffer=Tr);function Tr(t,e,n){return rn(t,e,n)}Tr.prototype=Object.create(rn.prototype);ay(rn,Tr);Tr.from=function(t,e,n){if(typeof t=="number")throw new TypeError("Argument must not be a number");return rn(t,e,n)};Tr.alloc=function(t,e,n){if(typeof t!="number")throw new TypeError("Argument must be a number");var r=rn(t);return e!==void 0?typeof n=="string"?r.fill(e,n):r.fill(e):r.fill(0),r};Tr.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return rn(t)};Tr.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return pa.SlowBuffer(t)}});var ly=X((cO,cy)=>{"use strict";function El(t){var e=(t/8|0)+(t%8===0?0:1);return e}var Ik={ES256:El(256),ES384:El(384),ES512:El(521)};function Nk(t){var e=Ik[t];if(e)return e;throw new Error('Unknown algorithm "'+t+'"')}cy.exports=Nk});var kl=X((lO,gy)=>{"use strict";var ma=ho().Buffer,fy=ly(),ga=128,hy=0,Bk=32,Mk=16,Lk=2,py=Mk|Bk|hy<<6,ya=Lk|hy<<6;function jk(t){return t.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function my(t){if(ma.isBuffer(t))return t;if(typeof t=="string")return ma.from(t,"base64");throw new TypeError("ECDSA signature must be a Base64 string or a Buffer")}function Uk(t,e){t=my(t);var n=fy(e),r=n+1,o=t.length,s=0;if(t[s++]!==py)throw new Error('Could not find expected "seq"');var a=t[s++];if(a===(ga|1)&&(a=t[s++]),o-s<a)throw new Error('"seq" specified length of "'+a+'", only "'+(o-s)+'" remaining');if(t[s++]!==ya)throw new Error('Could not find expected "int" for "r"');var u=t[s++];if(o-s-2<u)throw new Error('"r" specified length of "'+u+'", only "'+(o-s-2)+'" available');if(r<u)throw new Error('"r" specified length of "'+u+'", max of "'+r+'" is acceptable');var l=s;if(s+=u,t[s++]!==ya)throw new Error('Could not find expected "int" for "s"');var d=t[s++];if(o-s!==d)throw new Error('"s" specified length of "'+d+'", expected "'+(o-s)+'"');if(r<d)throw new Error('"s" specified length of "'+d+'", max of "'+r+'" is acceptable');var f=s;if(s+=d,s!==o)throw new Error('Expected to consume entire buffer, but "'+(o-s)+'" bytes remain');var p=n-u,m=n-d,b=ma.allocUnsafe(p+u+m+d);for(s=0;s<p;++s)b[s]=0;t.copy(b,s,l+Math.max(-p,0),l+u),s=n;for(var w=s;s<w+m;++s)b[s]=0;return t.copy(b,s,f+Math.max(-m,0),f+d),b=b.toString("base64"),b=jk(b),b}function dy(t,e,n){for(var r=0;e+r<n&&t[e+r]===0;)++r;var o=t[e+r]>=ga;return o&&--r,r}function $k(t,e){t=my(t);var n=fy(e),r=t.length;if(r!==n*2)throw new TypeError('"'+e+'" signatures must be "'+n*2+'" bytes, saw "'+r+'"');var o=dy(t,0,n),s=dy(t,n,t.length),a=n-o,u=n-s,l=2+a+1+1+u,d=l<ga,f=ma.allocUnsafe((d?2:3)+l),p=0;return f[p++]=py,d?f[p++]=l:(f[p++]=ga|1,f[p++]=l&255),f[p++]=ya,f[p++]=a,o<0?(f[p++]=0,p+=t.copy(f,p,0,n)):p+=t.copy(f,p,o,n),f[p++]=ya,f[p++]=u,s<0?(f[p++]=0,t.copy(f,p,n)):t.copy(f,p,n+s),f}gy.exports={derToJose:Uk,joseToDer:$k}});var Jt=X(On=>{"use strict";Object.defineProperty(On,"__esModule",{value:!0});On.LRUCache=void 0;On.snakeToCamel=_y;On.originalOrCamelOptions=Wk;On.removeUndefinedValuesInObject=Gk;On.isValidFile=Jk;On.getWellKnownCertificateConfigFileLocation=Vk;var qk=require("fs"),zk=require("os"),Al=require("path"),Hk="certificate_config.json",yy="gcloud";function _y(t){return t.replace(/([_][^_])/g,e=>e.slice(1).toUpperCase())}function Wk(t){function e(n){let r=t||{};return r[n]??r[_y(n)]}return{get:e}}var Sl=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()}};On.LRUCache=Sl;function Gk(t){return Object.entries(t).forEach(([e,n])=>{(n===void 0||n==="undefined")&&delete t[e]}),t}async function Jk(t){try{return(await qk.promises.lstat(t)).isFile()}catch{return!1}}function Vk(){let t=process.env.CLOUDSDK_CONFIG||(Kk()?Al.join(process.env.APPDATA||"",yy):Al.join(process.env.HOME||"",".config",yy));return Al.join(t,Hk)}function Kk(){return zk.platform().startsWith("win")}});var by=X((fO,Yk)=>{Yk.exports={name:"google-auth-library",version:"10.4.0",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:"googleapis/google-auth-library-nodejs.git",keywords:["google","api","google apis","client","client library"],dependencies:{"base64-js":"^1.3.0","ecdsa-sig-formatter":"^1.0.11",gaxios:"^7.0.0","gcp-metadata":"^7.0.0","google-logging-utils":"^1.0.0",gtoken:"^8.0.0",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.1","@types/node":"^22.0.0","@types/sinon":"^17.0.0","assert-rejects":"^1.0.0",c8:"^10.0.0",codecov:"^3.0.2",gts:"^6.0.0","is-docker":"^3.0.0",jsdoc:"^4.0.0","jsdoc-fresh":"^4.0.0","jsdoc-region-tag":"^3.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",linkinator:"^6.1.2",mocha:"^11.1.0",mv:"^2.1.1",ncp:"^2.0.0",nock:"^14.0.5","null-loader":"^4.0.0",puppeteer:"^24.0.0",sinon:"^21.0.0","ts-loader":"^8.0.0",typescript:"5.8.2",webpack:"^5.21.2","webpack-cli":"^4.0.0"},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":"linkinator docs","predocs-test":"npm run docs",prelint:"cd samples; npm link ../; npm install"},license:"Apache-2.0"}});var Tl=X(Qn=>{"use strict";Object.defineProperty(Qn,"__esModule",{value:!0});Qn.USER_AGENT=Qn.PRODUCT_NAME=Qn.pkg=void 0;var Cy=by();Qn.pkg=Cy;var wy="google-api-nodejs-client";Qn.PRODUCT_NAME=wy;var Qk=`${wy}/${Cy.version}`;Qn.USER_AGENT=Qk});var Ct=X(Vt=>{"use strict";Object.defineProperty(Vt,"__esModule",{value:!0});Vt.AuthClient=Vt.DEFAULT_EAGER_REFRESH_THRESHOLD_MILLIS=Vt.DEFAULT_UNIVERSE=void 0;var Xk=require("events"),vl=Xe(),Zk=Jt(),eA=fl(),Dl=Tl();Vt.DEFAULT_UNIVERSE="googleapis.com";Vt.DEFAULT_EAGER_REFRESH_THRESHOLD_MILLIS=300*1e3;var Rl=class t extends Xk.EventEmitter{apiKey;projectId;quotaProjectId;transporter;credentials={};eagerRefreshThresholdMillis=Vt.DEFAULT_EAGER_REFRESH_THRESHOLD_MILLIS;forceRefreshOnFailure=!1;universeDomain=Vt.DEFAULT_UNIVERSE;static RequestMethodNameSymbol=Symbol("request method name");static RequestLogIdSymbol=Symbol("request log id");constructor(e={}){super();let n=(0,Zk.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")??Vt.DEFAULT_UNIVERSE,this.transporter=e.transporter??new vl.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],r=e[1],o,s=new Headers;return typeof n=="string"?o=new URL(n):n instanceof URL?o=n:n&&n.url&&(o=new URL(n.url)),n&&typeof n=="object"&&"headers"in n&&vl.Gaxios.mergeHeaders(s,n.headers),r&&vl.Gaxios.mergeHeaders(s,new Headers(r.headers)),typeof n=="object"&&!(n instanceof URL)?this.request({...r,...n,headers:s,url:o}):this.request({...r,headers:s,url:o})}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 r=n.get("x-goog-user-project"),o=n.get("authorization");return r&&e.set("x-goog-user-project",r),o&&e.set("authorization",o),e}static log=(0,eA.log)("auth");static DEFAULT_REQUEST_INTERCEPTOR={resolved:async e=>{if(!e.headers.has("x-goog-api-client")){let r=process.version.replace(/^v/,"");e.headers.set("x-goog-api-client",`gl-node/${r}`)}let n=e.headers.get("User-Agent");n?n.includes(`${Dl.PRODUCT_NAME}/`)||e.headers.set("User-Agent",`${n} ${Dl.USER_AGENT}`):e.headers.set("User-Agent",Dl.USER_AGENT);try{let r=e,o=r[t.RequestMethodNameSymbol],s=`${Math.floor(Math.random()*1e3)}`;r[t.RequestLogIdSymbol]=s;let a={url:e.url,headers:e.headers};o?t.log.info("%s [%s] request %j",o,s,a):t.log.info("[%s] request %j",s,a)}catch{}return e}};static DEFAULT_RESPONSE_INTERCEPTOR={resolved:async e=>{try{let n=e.config,r=n[t.RequestMethodNameSymbol],o=n[t.RequestLogIdSymbol];r?t.log.info("%s [%s] response %j",r,o,e.data):t.log.info("[%s] response %j",o,e.data)}catch{}return e},rejected:async e=>{try{let n=e.config,r=n[t.RequestMethodNameSymbol],o=n[t.RequestLogIdSymbol];r?t.log.info("%s [%s] error %j",r,o,e.response?.data):t.log.error("[%s] error %j",o,e.response?.data)}catch{}throw e}};static setMethodName(e,n){try{let r=e;r[t.RequestMethodNameSymbol]=n}catch{}}static get RETRY_CONFIG(){return{retry:!0,retryConfig:{httpMethodsToRetry:["GET","PUT","POST","HEAD","OPTIONS","DELETE"]}}}};Vt.AuthClient=Rl});var Ol=X(_a=>{"use strict";Object.defineProperty(_a,"__esModule",{value:!0});_a.LoginTicket=void 0;var xl=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()}}};_a.LoginTicket=xl});var vr=X(on=>{"use strict";Object.defineProperty(on,"__esModule",{value:!0});on.OAuth2Client=on.ClientAuthentication=on.CertificateFormat=on.CodeChallengeMethod=void 0;var Ey=Xe(),tA=require("querystring"),nA=require("stream"),rA=kl(),ky=Jt(),Pl=as(),po=Ct(),oA=Ol(),Ay;(function(t){t.Plain="plain",t.S256="S256"})(Ay||(on.CodeChallengeMethod=Ay={}));var Pn;(function(t){t.PEM="PEM",t.JWK="JWK"})(Pn||(on.CertificateFormat=Pn={}));var us;(function(t){t.ClientSecretPost="ClientSecretPost",t.ClientSecretBasic="ClientSecretBasic",t.None="None"})(us||(on.ClientAuthentication=us={}));var Fl=class t extends po.AuthClient{redirectUri;certificateCache={};certificateExpiry=null;certificateCacheFormat=Pn.PEM;refreshTokenPromises=new Map;endpoints;issuers;clientAuthentication;_clientId;_clientSecret;refreshHandler;constructor(e={},n,r){super(typeof e=="object"?e:{}),typeof e!="object"&&(e={clientId:e,clientSecret:n,redirectUri:r}),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||us.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()+"?"+tA.stringify(e)}generateCodeVerifier(){throw new Error("generateCodeVerifier is removed, please use generateCodeVerifierAsync instead.")}async generateCodeVerifierAsync(){let e=(0,Pl.createCrypto)(),r=e.randomBytesBase64(96).replace(/\+/g,"~").replace(/=/g,"_").replace(/\//g,"-"),s=(await e.sha256DigestBase64(r)).split("=")[0].replace(/\+/g,"-").replace(/\//g,"_");return{codeVerifier:r,codeChallenge:s}}getToken(e,n){let r=typeof e=="string"?{code:e}:e;if(n)this.getTokenAsync(r).then(o=>n(null,o.tokens,o.res),o=>n(o,null,o.response));else return this.getTokenAsync(r)}async getTokenAsync(e){let n=this.endpoints.oauth2TokenUrl.toString(),r=new Headers,o={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===us.ClientSecretBasic){let l=Buffer.from(`${this._clientId}:${this._clientSecret}`);r.set("authorization",`Basic ${l.toString("base64")}`)}this.clientAuthentication===us.ClientSecretPost&&(o.client_secret=this._clientSecret);let s={...t.RETRY_CONFIG,method:"POST",url:n,data:new URLSearchParams((0,ky.removeUndefinedValuesInObject)(o)),headers:r};po.AuthClient.setMethodName(s,"getTokenAsync");let a=await this.transporter.request(s),u=a.data;return a.data&&a.data.expires_in&&(u.expiry_date=new Date().getTime()+a.data.expires_in*1e3,delete u.expires_in),this.emit("tokens",u),{tokens:u,res:a}}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(r=>(this.refreshTokenPromises.delete(e),r),r=>{throw this.refreshTokenPromises.delete(e),r});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(),r={refresh_token:e,client_id:this._clientId,client_secret:this._clientSecret,grant_type:"refresh_token"},o;try{let a={...t.RETRY_CONFIG,method:"POST",url:n,data:new URLSearchParams((0,ky.removeUndefinedValuesInObject)(r))};po.AuthClient.setMethodName(a,"refreshTokenNoCache"),o=await this.transporter.request(a)}catch(a){throw a instanceof Ey.GaxiosError&&a.message==="invalid_grant"&&a.response?.data&&/ReAuth/i.test(a.response.data.error_description)&&(a.message=JSON.stringify(a.response.data)),a}let s=o.data;return o.data&&o.data.expires_in&&(s.expiry_date=new Date().getTime()+o.data.expires_in*1e3,delete s.expires_in),this.emit("tokens",s),{tokens:s,res:o}}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 r=await this.processAndValidateRefreshHandler();if(r?.access_token)return this.setCredentials(r),{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 u=new Headers({authorization:n.token_type+" "+n.access_token});return{headers:this.addSharedMetadataHeaders(u)}}if(this.refreshHandler){let u=await this.processAndValidateRefreshHandler();if(u?.access_token){this.setCredentials(u);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 r=null,o=null;try{r=await this.refreshToken(n.refresh_token),o=r.tokens}catch(u){let l=u;throw l.response&&(l.response.status===403||l.response.status===404)&&(l.message=`Could not refresh access token: ${l.message}`),l}let s=this.credentials;s.token_type=s.token_type||"Bearer",o.refresh_token=s.refresh_token,this.credentials=o;let a=new Headers({authorization:s.token_type+" "+o.access_token});return{headers:this.addSharedMetadataHeaders(a),res:r.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 r={...t.RETRY_CONFIG,url:this.getRevokeTokenURL(e).toString(),method:"POST"};if(po.AuthClient.setMethodName(r,"revokeToken"),n)this.transporter.request(r).then(o=>n(null,o),n);else return this.transporter.request(r)}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(r=>n(null,r),r=>n(r,r.response));else return this.requestAsync(e)}async requestAsync(e,n=!1){try{let r=await this.getRequestMetadataAsync();return e.headers=Ey.Gaxios.mergeHeaders(e.headers),this.addUserProjectAndAuthHeaders(e.headers,r.headers),this.apiKey&&e.headers.set("X-Goog-Api-Key",this.apiKey),await this.transporter.request(e)}catch(r){let o=r.response;if(o){let s=o.status,a=this.credentials&&this.credentials.access_token&&this.credentials.refresh_token&&(!this.credentials.expiry_date||this.forceRefreshOnFailure),u=this.credentials&&this.credentials.access_token&&!this.credentials.refresh_token&&(!this.credentials.expiry_date||this.forceRefreshOnFailure)&&this.refreshHandler,l=o.config.data instanceof nA.Readable,d=s===401||s===403;if(!n&&d&&!l&&a)return await this.refreshAccessTokenAsync(),this.requestAsync(e,!0);if(!n&&d&&!l&&u){let f=await this.processAndValidateRefreshHandler();return f?.access_token&&this.setCredentials(f),this.requestAsync(e,!0)}}throw r}}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(r=>n(null,r),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()}),r=Object.assign({expiry_date:new Date().getTime()+n.expires_in*1e3,scopes:n.scope.split(" ")},n);return delete r.expires_in,delete r.scope,r}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,Pl.hasBrowserCrypto)()?Pn.JWK:Pn.PEM;if(this.certificateExpiry&&e<this.certificateExpiry.getTime()&&this.certificateCacheFormat===n)return{certs:this.certificateCache,format:n};let r,o;switch(n){case Pn.PEM:o=this.endpoints.oauth2FederatedSignonPemCertsUrl.toString();break;case Pn.JWK:o=this.endpoints.oauth2FederatedSignonJwkCertsUrl.toString();break;default:throw new Error(`Unsupported certificate format ${n}`)}try{let d={...t.RETRY_CONFIG,url:o};po.AuthClient.setMethodName(d,"getFederatedSignonCertsAsync"),r=await this.transporter.request(d)}catch(d){throw d instanceof Error&&(d.message=`Failed to retrieve verification certificates: ${d.message}`),d}let s=r?.headers.get("cache-control"),a=-1;if(s){let d=/max-age=(?<maxAge>[0-9]+)/.exec(s)?.groups?.maxAge;d&&(a=Number(d)*1e3)}let u={};switch(n){case Pn.PEM:u=r.data;break;case Pn.JWK:for(let d of r.data.keys)u[d.kid]=d;break;default:throw new Error(`Unsupported certificate format ${n}`)}let l=new Date;return this.certificateExpiry=a===-1?null:new Date(l.getTime()+a),this.certificateCache=u,this.certificateCacheFormat=n,{certs:u,format:n,res:r}}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 r={...t.RETRY_CONFIG,url:n};po.AuthClient.setMethodName(r,"getIapPublicKeysAsync"),e=await this.transporter.request(r)}catch(r){throw r instanceof Error&&(r.message=`Failed to retrieve verification certificates: ${r.message}`),r}return{pubkeys:e.data,res:e}}verifySignedJwtWithCerts(){throw new Error("verifySignedJwtWithCerts is removed, please use verifySignedJwtWithCertsAsync instead.")}async verifySignedJwtWithCertsAsync(e,n,r,o,s){let a=(0,Pl.createCrypto)();s||(s=t.DEFAULT_MAX_TOKEN_LIFETIME_SECS_);let u=e.split(".");if(u.length!==3)throw new Error("Wrong number of segments in token: "+e);let l=u[0]+"."+u[1],d=u[2],f,p;try{f=JSON.parse(a.decodeBase64StringUtf8(u[0]))}catch(C){throw C instanceof Error&&(C.message=`Can't parse token envelope: ${u[0]}': ${C.message}`),C}if(!f)throw new Error("Can't parse token envelope: "+u[0]);try{p=JSON.parse(a.decodeBase64StringUtf8(u[1]))}catch(C){throw C instanceof Error&&(C.message=`Can't parse token payload '${u[0]}`),C}if(!p)throw new Error("Can't parse token payload: "+u[1]);if(!Object.prototype.hasOwnProperty.call(n,f.kid))throw new Error("No pem found for envelope: "+JSON.stringify(f));let m=n[f.kid];if(f.alg==="ES256"&&(d=rA.joseToDer(d,"ES256").toString("base64")),!await a.verify(m,l,d))throw new Error("Invalid token signature: "+e);if(!p.iat)throw new Error("No issue time in token: "+JSON.stringify(p));if(!p.exp)throw new Error("No expiration time in token: "+JSON.stringify(p));let w=Number(p.iat);if(isNaN(w))throw new Error("iat field using invalid format");let y=Number(p.exp);if(isNaN(y))throw new Error("exp field using invalid format");let g=new Date().getTime()/1e3;if(y>=g+s)throw new Error("Expiration time too far in future: "+JSON.stringify(p));let _=w-t.CLOCK_SKEW_SECS_,A=y+t.CLOCK_SKEW_SECS_;if(g<_)throw new Error("Token used too early, "+g+" < "+_+": "+JSON.stringify(p));if(g>A)throw new Error("Token used too late, "+g+" > "+A+": "+JSON.stringify(p));if(o&&o.indexOf(p.iss)<0)throw new Error("Invalid issuer, expected one of ["+o+"], but got "+p.iss);if(typeof r<"u"&&r!==null){let C=p.aud,S=!1;if(r.constructor===Array?S=r.indexOf(C)>-1:S=C===r,!S)throw new Error("Wrong recipient, payload audience != requiredAudience")}return new oA.LoginTicket(f,p)}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}};on.OAuth2Client=Fl});var Nl=X(ba=>{"use strict";Object.defineProperty(ba,"__esModule",{value:!0});ba.Compute=void 0;var sA=Xe(),Sy=is(),iA=vr(),Il=class extends iA.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 o={property:e};this.scopes.length>0&&(o.params={scopes:this.scopes.join(",")}),n=await Sy.instance(o)}catch(o){throw o instanceof sA.GaxiosError&&(o.message=`Could not refresh access token: ${o.message}`,this.wrapError(o)),o}let r=n;return n&&n.expires_in&&(r.expiry_date=new Date().getTime()+n.expires_in*1e3,delete r.expires_in),this.emit("tokens",r),{tokens:r,res:null}}async fetchIdToken(e){let n=`service-accounts/${this.serviceAccountEmail}/identity?format=full&audience=${e}`,r;try{let o={property:n};r=await Sy.instance(o)}catch(o){throw o instanceof Error&&(o.message=`Could not fetch ID token: ${o.message}`),o}return r}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))}};ba.Compute=Il});var Ml=X(Ca=>{"use strict";Object.defineProperty(Ca,"__esModule",{value:!0});Ca.IdTokenClient=void 0;var aA=vr(),Bl=class extends aA.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}};Ca.IdTokenClient=Bl});var Ll=X(mo=>{"use strict";Object.defineProperty(mo,"__esModule",{value:!0});mo.GCPEnv=void 0;mo.clear=uA;mo.getEnv=cA;var Ty=is(),sn;(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"})(sn||(mo.GCPEnv=sn={}));var cs;function uA(){cs=void 0}async function cA(){return cs||(cs=lA(),cs)}async function lA(){let t=sn.NONE;return dA()?t=sn.APP_ENGINE:fA()?t=sn.CLOUD_FUNCTIONS:await gA()?await mA()?t=sn.KUBERNETES_ENGINE:hA()?t=sn.CLOUD_RUN:pA()?t=sn.CLOUD_RUN_JOBS:t=sn.COMPUTE_ENGINE:t=sn.NONE,t}function dA(){return!!(process.env.GAE_SERVICE||process.env.GAE_MODULE_NAME)}function fA(){return!!(process.env.FUNCTION_NAME||process.env.FUNCTION_TARGET)}function hA(){return!!process.env.K_CONFIGURATION}function pA(){return!!process.env.CLOUD_RUN_JOB}async function mA(){try{return await Ty.instance("attributes/cluster-name"),!0}catch{return!1}}async function gA(){return Ty.isAvailable()}});var jl=X((CO,vy)=>{var wa=ho().Buffer,yA=require("stream"),_A=require("util");function Ea(t){if(this.buffer=null,this.writable=!0,this.readable=!0,!t)return this.buffer=wa.alloc(0),this;if(typeof t.pipe=="function")return this.buffer=wa.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+")")}_A.inherits(Ea,yA);Ea.prototype.write=function(e){this.buffer=wa.concat([this.buffer,wa.from(e)]),this.emit("data",e)};Ea.prototype.end=function(e){e&&this.write(e),this.emit("end",e),this.emit("close"),this.writable=!1,this.readable=!1};vy.exports=Ea});var Ry=X((wO,Dy)=>{"use strict";var ls=require("buffer").Buffer,Ul=require("buffer").SlowBuffer;Dy.exports=ka;function ka(t,e){if(!ls.isBuffer(t)||!ls.isBuffer(e)||t.length!==e.length)return!1;for(var n=0,r=0;r<t.length;r++)n|=t[r]^e[r];return n===0}ka.install=function(){ls.prototype.equal=Ul.prototype.equal=function(e){return ka(this,e)}};var bA=ls.prototype.equal,CA=Ul.prototype.equal;ka.restore=function(){ls.prototype.equal=bA,Ul.prototype.equal=CA}});var Hl=X((EO,Ly)=>{var yo=ho().Buffer,Pt=require("crypto"),Oy=kl(),xy=require("util"),wA=`"%s" is not a valid algorithm.
|
|
49
|
+
`+y+"}":"{"+g.join(",")+"}",r=y,b}}typeof Pg.stringify!="function"&&(Pg.stringify=function(d,f,p){var m;if(r="",o="",typeof p=="number")for(m=0;m<p;m+=1)o+=" ";else typeof p=="string"&&(o=p);if(a=f,f&&typeof f!="function"&&(typeof f!="object"||typeof f.length!="number"))throw new Error("JSON.stringify");return l("",{"":d})})})()});var Bg=X((eO,Ng)=>{var ua=null,WE=/(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])/,GE=/(?: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)/,JE=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,r,o={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
|
|
50
|
+
`,r:"\r",t:" "},s,a=function(y){throw{name:"SyntaxError",message:y,at:n,text:s}},u=function(y){return y&&y!==r&&a("Expected '"+y+"' instead of '"+r+"'"),r=s.charAt(n),n+=1,r},l=function(){var y,g="";for(r==="-"&&(g="-",u("-"));r>="0"&&r<="9";)g+=r,u();if(r===".")for(g+=".";u()&&r>="0"&&r<="9";)g+=r;if(r==="e"||r==="E")for(g+=r,u(),(r==="-"||r==="+")&&(g+=r,u());r>="0"&&r<="9";)g+=r,u();if(y=+g,!isFinite(y))a("Bad number");else return ua==null&&(ua=il()),g.length>15?e.storeAsString?g:e.useNativeBigInt?BigInt(g):new ua(g):e.alwaysParseAsBig?e.useNativeBigInt?BigInt(y):new ua(y):y},d=function(){var y,g,_="",A;if(r==='"')for(var C=n;u();){if(r==='"')return n-1>C&&(_+=s.substring(C,n-1)),u(),_;if(r==="\\"){if(n-1>C&&(_+=s.substring(C,n-1)),u(),r==="u"){for(A=0,g=0;g<4&&(y=parseInt(u(),16),!!isFinite(y));g+=1)A=A*16+y;_+=String.fromCharCode(A)}else if(typeof o[r]=="string")_+=o[r];else break;C=n}}a("Bad string")},f=function(){for(;r&&r<=" ";)u()},p=function(){switch(r){case"t":return u("t"),u("r"),u("u"),u("e"),!0;case"f":return u("f"),u("a"),u("l"),u("s"),u("e"),!1;case"n":return u("n"),u("u"),u("l"),u("l"),null}a("Unexpected '"+r+"'")},m,b=function(){var y=[];if(r==="["){if(u("["),f(),r==="]")return u("]"),y;for(;r;){if(y.push(m()),f(),r==="]")return u("]"),y;u(","),f()}}a("Bad array")},w=function(){var y,g=Object.create(null);if(r==="{"){if(u("{"),f(),r==="}")return u("}"),g;for(;r;){if(y=d(),f(),u(":"),e.strict===!0&&Object.hasOwnProperty.call(g,y)&&a('Duplicate key "'+y+'"'),WE.test(y)===!0?e.protoAction==="error"?a("Object contains forbidden prototype property"):e.protoAction==="ignore"?m():g[y]=m():GE.test(y)===!0?e.constructorAction==="error"?a("Object contains forbidden constructor property"):e.constructorAction==="ignore"?m():g[y]=m():g[y]=m(),f(),r==="}")return u("}"),g;u(","),f()}}a("Bad object")};return m=function(){switch(f(),r){case"{":return w();case"[":return b();case'"':return d();case"-":return l();default:return r>="0"&&r<="9"?l():p()}},function(y,g){var _;return s=y+"",n=0,r=" ",_=m(),f(),r&&a("Syntax error"),typeof g=="function"?(function A(C,S){var T,R,$=C[S];return $&&typeof $=="object"&&Object.keys($).forEach(function(V){R=A($,V),R!==void 0?$[V]=R:delete $[V]}),g.call(C,S,$)})({"":_},""):_}};Ng.exports=JE});var jg=X((tO,ca)=>{var Mg=Ig().stringify,Lg=Bg();ca.exports=function(t){return{parse:Lg(t),stringify:Mg}};ca.exports.parse=Lg();ca.exports.stringify=Mg});var al=X(Wt=>{"use strict";Object.defineProperty(Wt,"__esModule",{value:!0});Wt.GCE_LINUX_BIOS_PATHS=void 0;Wt.isGoogleCloudServerless=qg;Wt.isGoogleComputeEngineLinux=zg;Wt.isGoogleComputeEngineMACAddress=Hg;Wt.isGoogleComputeEngine=Wg;Wt.detectGCPResidency=KE;var Ug=require("fs"),$g=require("os");Wt.GCE_LINUX_BIOS_PATHS={BIOS_DATE:"/sys/class/dmi/id/bios_date",BIOS_VENDOR:"/sys/class/dmi/id/bios_vendor"};var VE=/^42:01/;function qg(){return!!(process.env.CLOUD_RUN_JOB||process.env.FUNCTION_NAME||process.env.K_SERVICE)}function zg(){if((0,$g.platform)()!=="linux")return!1;try{(0,Ug.statSync)(Wt.GCE_LINUX_BIOS_PATHS.BIOS_DATE);let t=(0,Ug.readFileSync)(Wt.GCE_LINUX_BIOS_PATHS.BIOS_VENDOR,"utf8");return/Google/.test(t)}catch{return!1}}function Hg(){let t=(0,$g.networkInterfaces)();for(let e of Object.values(t))if(e){for(let{mac:n}of e)if(VE.test(n))return!0}return!1}function Wg(){return zg()||Hg()}function KE(){return qg()||Wg()}});var Gg=X(la=>{"use strict";Object.defineProperty(la,"__esModule",{value:!0});la.Colours=void 0;var nt=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="")}};la.Colours=nt;nt.enabled=!1;nt.reset="";nt.bright="";nt.dim="";nt.red="";nt.green="";nt.yellow="";nt.blue="";nt.magenta="";nt.cyan="";nt.white="";nt.grey="";nt.refresh()});var Yg=X(De=>{"use strict";var YE=De&&De.__createBinding||(Object.create?(function(t,e,n,r){r===void 0&&(r=n);var o=Object.getOwnPropertyDescriptor(e,n);(!o||("get"in o?!e.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,o)}):(function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]})),QE=De&&De.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),Jg=De&&De.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(n){var r=[];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(r[r.length]=o);return r},t(e)};return function(e){if(e&&e.__esModule)return e;var n={};if(e!=null)for(var r=t(e),o=0;o<r.length;o++)r[o]!=="default"&&YE(n,e,r[o]);return QE(n,e),n}})();Object.defineProperty(De,"__esModule",{value:!0});De.env=De.DebugLogBackendBase=De.placeholder=De.AdhocDebugLogger=De.LogSeverity=void 0;De.getNodeBackend=cl;De.getDebugBackend=ZE;De.getStructuredBackend=ek;De.setBackend=tk;De.log=Kg;var XE=require("events"),rs=Jg(require("process")),Vg=Jg(require("util")),_t=Gg(),Gt;(function(t){t.DEFAULT="DEFAULT",t.DEBUG="DEBUG",t.INFO="INFO",t.WARNING="WARNING",t.ERROR="ERROR"})(Gt||(De.LogSeverity=Gt={}));var os=class extends XE.EventEmitter{constructor(e,n){super(),this.namespace=e,this.upstream=n,this.func=Object.assign(this.invoke.bind(this),{instance:this,on:(r,o)=>this.on(r,o)}),this.func.debug=(...r)=>this.invokeSeverity(Gt.DEBUG,...r),this.func.info=(...r)=>this.invokeSeverity(Gt.INFO,...r),this.func.warn=(...r)=>this.invokeSeverity(Gt.WARNING,...r),this.func.error=(...r)=>this.invokeSeverity(Gt.ERROR,...r),this.func.sublog=r=>Kg(r,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)}};De.AdhocDebugLogger=os;De.placeholder=new os("",()=>{}).func;var co=class{constructor(){var e;this.cached=new Map,this.filters=[],this.filtersSet=!1;let n=(e=rs.env[De.env.nodeEnables])!==null&&e!==void 0?e:"*";n==="all"&&(n="*"),this.filters=n.split(",")}log(e,n,...r){try{this.filtersSet||(this.setFilters(),this.filtersSet=!0);let o=this.cached.get(e);o||(o=this.makeLogger(e),this.cached.set(e,o)),o(n,...r)}catch(o){console.error(o)}}};De.DebugLogBackendBase=co;var ul=class extends co{constructor(){super(...arguments),this.enabledRegexp=/.*/g}isEnabled(e){return this.enabledRegexp.test(e)}makeLogger(e){return this.enabledRegexp.test(e)?(n,...r)=>{var o;let s=`${_t.Colours.green}${e}${_t.Colours.reset}`,a=`${_t.Colours.yellow}${rs.pid}${_t.Colours.reset}`,u;switch(n.severity){case Gt.ERROR:u=`${_t.Colours.red}${n.severity}${_t.Colours.reset}`;break;case Gt.INFO:u=`${_t.Colours.magenta}${n.severity}${_t.Colours.reset}`;break;case Gt.WARNING:u=`${_t.Colours.yellow}${n.severity}${_t.Colours.reset}`;break;default:u=(o=n.severity)!==null&&o!==void 0?o:Gt.DEFAULT;break}let l=Vg.formatWithOptions({colors:_t.Colours.enabled},...r),d=Object.assign({},n);delete d.severity;let f=Object.getOwnPropertyNames(d).length?JSON.stringify(d):"",p=f?`${_t.Colours.grey}${f}${_t.Colours.reset}`:"";console.error("%s [%s|%s] %s%s",a,s,u,l,f?` ${p}`:"")}:()=>{}}setFilters(){let n=this.filters.join(",").replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^");this.enabledRegexp=new RegExp(`^${n}$`,"i")}};function cl(){return new ul}var ll=class extends co{constructor(e){super(),this.debugPkg=e}makeLogger(e){let n=this.debugPkg(e);return(r,...o)=>{n(o[0],...o.slice(1))}}setFilters(){var e;let n=(e=rs.env.NODE_DEBUG)!==null&&e!==void 0?e:"";rs.env.NODE_DEBUG=`${n}${n?",":""}${this.filters.join(",")}`}};function ZE(t){return new ll(t)}var dl=class extends co{constructor(e){var n;super(),this.upstream=(n=e)!==null&&n!==void 0?n:void 0}makeLogger(e){var n;let r=(n=this.upstream)===null||n===void 0?void 0:n.makeLogger(e);return(o,...s)=>{var a;let u=(a=o.severity)!==null&&a!==void 0?a:Gt.INFO,l=Object.assign({severity:u,message:Vg.format(...s)},o),d=JSON.stringify(l);r?r(o,d):console.log("%s",d)}}setFilters(){var e;(e=this.upstream)===null||e===void 0||e.setFilters()}};function ek(t){return new dl(t)}De.env={nodeEnables:"GOOGLE_SDK_NODE_LOGGING"};var fl=new Map,bt;function tk(t){bt=t,fl.clear()}function Kg(t,e){if(!bt&&!rs.env[De.env.nodeEnables]||!t)return De.placeholder;e&&(t=`${e.instance.namespace}:${t}`);let n=fl.get(t);if(n)return n.func;if(bt===null)return De.placeholder;bt===void 0&&(bt=cl());let r=(()=>{let o;return new os(t,(a,...u)=>{if(o!==bt){if(bt===null)return;bt===void 0&&(bt=cl()),o=bt}bt?.log(t,a,...u)})})();return fl.set(t,r),r.func}});var hl=X(Ar=>{"use strict";var nk=Ar&&Ar.__createBinding||(Object.create?(function(t,e,n,r){r===void 0&&(r=n);var o=Object.getOwnPropertyDescriptor(e,n);(!o||("get"in o?!e.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,o)}):(function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]})),rk=Ar&&Ar.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&nk(e,t,n)};Object.defineProperty(Ar,"__esModule",{value:!0});rk(Yg(),Ar)});var is=X(fe=>{"use strict";var Xg=fe&&fe.__createBinding||(Object.create?(function(t,e,n,r){r===void 0&&(r=n);var o=Object.getOwnPropertyDescriptor(e,n);(!o||("get"in o?!e.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,o)}):(function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]})),ok=fe&&fe.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),sk=fe&&fe.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(n){var r=[];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(r[r.length]=o);return r},t(e)};return function(e){if(e&&e.__esModule)return e;var n={};if(e!=null)for(var r=t(e),o=0;o<r.length;o++)r[o]!=="default"&&Xg(n,e,r[o]);return ok(n,e),n}})(),ik=fe&&fe.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&Xg(e,t,n)};Object.defineProperty(fe,"__esModule",{value:!0});fe.gcpResidencyCache=fe.METADATA_SERVER_DETECTION=fe.HEADERS=fe.HEADER_VALUE=fe.HEADER_NAME=fe.SECONDARY_HOST_ADDRESS=fe.HOST_ADDRESS=fe.BASE_PATH=void 0;fe.instance=fk;fe.project=hk;fe.universe=pk;fe.bulk=mk;fe.isAvailable=yk;fe.resetIsAvailableCache=_k;fe.getGCPResidency=gl;fe.setGCPResidency=Zg;fe.requestTimeout=ey;var pl=Xe(),ak=jg(),uk=al(),ck=sk(hl());fe.BASE_PATH="/computeMetadata/v1";fe.HOST_ADDRESS="http://169.254.169.254";fe.SECONDARY_HOST_ADDRESS="http://metadata.google.internal.";fe.HEADER_NAME="Metadata-Flavor";fe.HEADER_VALUE="Google";fe.HEADERS=Object.freeze({[fe.HEADER_NAME]:fe.HEADER_VALUE});var Qg=ck.log("gcp-metadata");fe.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 ml(t){return t||(t=process.env.GCE_METADATA_IP||process.env.GCE_METADATA_HOST||fe.HOST_ADDRESS),/^https?:\/\//.test(t)||(t=`http://${t}`),new URL(fe.BASE_PATH,t).href}function lk(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 ss(t,e={},n=3,r=!1){let o=new Headers(fe.HEADERS),s="",a={};if(typeof t=="object"){let p=t;new Headers(p.headers).forEach((m,b)=>o.set(b,m)),s=p.metadataKey,a=p.params||a,n=p.noResponseRetries||n,r=p.fastFail||r}else s=t;typeof e=="string"?s+=`/${e}`:(lk(e),e.property&&(s+=`/${e.property}`),new Headers(e.headers).forEach((p,m)=>o.set(m,p)),a=e.params||a);let u=r?dk:pl.request,l={url:`${ml()}/${s}`,headers:o,retryConfig:{noResponseRetries:n},params:a,responseType:"text",timeout:ey()};Qg.info("instance request %j",l);let d=await u(l);Qg.info("instance metadata is %s",d.data);let f=d.headers.get(fe.HEADER_NAME);if(f!==fe.HEADER_VALUE)throw new RangeError(`Invalid response from metadata service: incorrect ${fe.HEADER_NAME} header. Expected '${fe.HEADER_VALUE}', got ${f?`'${f}'`:"no header"}`);if(typeof d.data=="string")try{return ak.parse(d.data)}catch{}return d.data}async function dk(t){let e={...t,url:t.url?.toString().replace(ml(),ml(fe.SECONDARY_HOST_ADDRESS))},n=(0,pl.request)(t),r=(0,pl.request)(e);return Promise.any([n,r])}function fk(t){return ss("instance",t)}function hk(t){return ss("project",t)}function pk(t){return ss("universe",t)}async function mk(t){let e={};return await Promise.all(t.map(n=>(async()=>{let r=await ss(n),o=n.metadataKey;e[o]=r})())),e}function gk(){return process.env.DETECT_GCP_RETRIES?Number(process.env.DETECT_GCP_RETRIES):0}var da;async function yk(){if(process.env.METADATA_SERVER_DETECTION){let t=process.env.METADATA_SERVER_DETECTION.trim().toLocaleLowerCase();if(!(t in fe.METADATA_SERVER_DETECTION))throw new RangeError(`Unknown \`METADATA_SERVER_DETECTION\` env variable. Got \`${t}\`, but it should be \`${Object.keys(fe.METADATA_SERVER_DETECTION).join("`, `")}\`, or unset`);switch(t){case"assume-present":return!0;case"none":return!1;case"bios-only":return gl();case"ping-only":}}try{return da===void 0&&(da=ss("instance",void 0,gk(),!(process.env.GCE_METADATA_IP||process.env.GCE_METADATA_HOST))),await da,!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 _k(){da=void 0}fe.gcpResidencyCache=null;function gl(){return fe.gcpResidencyCache===null&&Zg(),fe.gcpResidencyCache}function Zg(t=null){fe.gcpResidencyCache=t!==null?t:(0,uk.detectGCPResidency)()}function ey(){return gl()?0:3e3}ik(al(),fe)});var ry=X(fa=>{"use strict";fa.byteLength=Ck;fa.toByteArray=Ek;fa.fromByteArray=Sk;var nn=[],Ot=[],bk=typeof Uint8Array<"u"?Uint8Array:Array,yl="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(Sr=0,ty=yl.length;Sr<ty;++Sr)nn[Sr]=yl[Sr],Ot[yl.charCodeAt(Sr)]=Sr;var Sr,ty;Ot[45]=62;Ot[95]=63;function ny(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 r=n===e?0:4-n%4;return[n,r]}function Ck(t){var e=ny(t),n=e[0],r=e[1];return(n+r)*3/4-r}function wk(t,e,n){return(e+n)*3/4-n}function Ek(t){var e,n=ny(t),r=n[0],o=n[1],s=new bk(wk(t,r,o)),a=0,u=o>0?r-4:r,l;for(l=0;l<u;l+=4)e=Ot[t.charCodeAt(l)]<<18|Ot[t.charCodeAt(l+1)]<<12|Ot[t.charCodeAt(l+2)]<<6|Ot[t.charCodeAt(l+3)],s[a++]=e>>16&255,s[a++]=e>>8&255,s[a++]=e&255;return o===2&&(e=Ot[t.charCodeAt(l)]<<2|Ot[t.charCodeAt(l+1)]>>4,s[a++]=e&255),o===1&&(e=Ot[t.charCodeAt(l)]<<10|Ot[t.charCodeAt(l+1)]<<4|Ot[t.charCodeAt(l+2)]>>2,s[a++]=e>>8&255,s[a++]=e&255),s}function kk(t){return nn[t>>18&63]+nn[t>>12&63]+nn[t>>6&63]+nn[t&63]}function Ak(t,e,n){for(var r,o=[],s=e;s<n;s+=3)r=(t[s]<<16&16711680)+(t[s+1]<<8&65280)+(t[s+2]&255),o.push(kk(r));return o.join("")}function Sk(t){for(var e,n=t.length,r=n%3,o=[],s=16383,a=0,u=n-r;a<u;a+=s)o.push(Ak(t,a,a+s>u?u:a+s));return r===1?(e=t[n-1],o.push(nn[e>>2]+nn[e<<4&63]+"==")):r===2&&(e=(t[n-2]<<8)+t[n-1],o.push(nn[e>>10]+nn[e>>4&63]+nn[e<<2&63]+"=")),o.join("")}});var bl=X(_l=>{"use strict";Object.defineProperty(_l,"__esModule",{value:!0});_l.fromArrayBufferToHex=vk;function vk(t){return Array.from(new Uint8Array(t)).map(n=>n.toString(16).padStart(2,"0")).join("")}});var oy=X(ha=>{"use strict";Object.defineProperty(ha,"__esModule",{value:!0});ha.BrowserCrypto=void 0;var lo=ry(),Tk=bl(),Cl=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),r=await window.crypto.subtle.digest("SHA-256",n);return lo.fromByteArray(new Uint8Array(r))}randomBytesBase64(e){let n=new Uint8Array(e);return window.crypto.getRandomValues(n),lo.fromByteArray(n)}static padBase64(e){for(;e.length%4!==0;)e+="=";return e}async verify(e,n,r){let o={name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},s=new TextEncoder().encode(n),a=lo.toByteArray(t.padBase64(r)),u=await window.crypto.subtle.importKey("jwk",e,o,!0,["verify"]);return await window.crypto.subtle.verify(o,u,a,s)}async sign(e,n){let r={name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},o=new TextEncoder().encode(n),s=await window.crypto.subtle.importKey("jwk",e,r,!0,["sign"]),a=await window.crypto.subtle.sign(r,s,o);return lo.fromByteArray(new Uint8Array(a))}decodeBase64StringUtf8(e){let n=lo.toByteArray(t.padBase64(e));return new TextDecoder().decode(n)}encodeBase64StringUtf8(e){let n=new TextEncoder().encode(e);return lo.fromByteArray(n)}async sha256DigestHex(e){let n=new TextEncoder().encode(e),r=await window.crypto.subtle.digest("SHA-256",n);return(0,Tk.fromArrayBufferToHex)(r)}async signWithHmacSha256(e,n){let r=typeof e=="string"?e:String.fromCharCode(...new Uint16Array(e)),o=new TextEncoder,s=await window.crypto.subtle.importKey("raw",o.encode(r),{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]);return window.crypto.subtle.sign("HMAC",s,o.encode(n))}};ha.BrowserCrypto=Cl});var sy=X(pa=>{"use strict";Object.defineProperty(pa,"__esModule",{value:!0});pa.NodeCrypto=void 0;var fo=require("crypto"),wl=class{async sha256DigestBase64(e){return fo.createHash("sha256").update(e).digest("base64")}randomBytesBase64(e){return fo.randomBytes(e).toString("base64")}async verify(e,n,r){let o=fo.createVerify("RSA-SHA256");return o.update(n),o.end(),o.verify(e,r,"base64")}async sign(e,n){let r=fo.createSign("RSA-SHA256");return r.update(n),r.end(),r.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 fo.createHash("sha256").update(e).digest("hex")}async signWithHmacSha256(e,n){let r=typeof e=="string"?e:Rk(e);return Dk(fo.createHmac("sha256",r).update(n).digest())}};pa.NodeCrypto=wl;function Dk(t){return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}function Rk(t){return Buffer.from(t)}});var as=X(xn=>{"use strict";var xk=xn&&xn.__createBinding||(Object.create?(function(t,e,n,r){r===void 0&&(r=n);var o=Object.getOwnPropertyDescriptor(e,n);(!o||("get"in o?!e.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,o)}):(function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]})),Ok=xn&&xn.__exportStar||function(t,e){for(var n in t)n!=="default"&&!Object.prototype.hasOwnProperty.call(e,n)&&xk(e,t,n)};Object.defineProperty(xn,"__esModule",{value:!0});xn.createCrypto=Ik;xn.hasBrowserCrypto=iy;var Pk=oy(),Fk=sy();Ok(bl(),xn);function Ik(){return iy()?new Pk.BrowserCrypto:new Fk.NodeCrypto}function iy(){return typeof window<"u"&&typeof window.crypto<"u"&&typeof window.crypto.subtle<"u"}});var ho=X((El,uy)=>{var ma=require("buffer"),rn=ma.Buffer;function ay(t,e){for(var n in t)e[n]=t[n]}rn.from&&rn.alloc&&rn.allocUnsafe&&rn.allocUnsafeSlow?uy.exports=ma:(ay(ma,El),El.Buffer=vr);function vr(t,e,n){return rn(t,e,n)}vr.prototype=Object.create(rn.prototype);ay(rn,vr);vr.from=function(t,e,n){if(typeof t=="number")throw new TypeError("Argument must not be a number");return rn(t,e,n)};vr.alloc=function(t,e,n){if(typeof t!="number")throw new TypeError("Argument must be a number");var r=rn(t);return e!==void 0?typeof n=="string"?r.fill(e,n):r.fill(e):r.fill(0),r};vr.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return rn(t)};vr.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return ma.SlowBuffer(t)}});var ly=X((fO,cy)=>{"use strict";function kl(t){var e=(t/8|0)+(t%8===0?0:1);return e}var Nk={ES256:kl(256),ES384:kl(384),ES512:kl(521)};function Bk(t){var e=Nk[t];if(e)return e;throw new Error('Unknown algorithm "'+t+'"')}cy.exports=Bk});var Al=X((hO,gy)=>{"use strict";var ga=ho().Buffer,fy=ly(),ya=128,hy=0,Mk=32,Lk=16,jk=2,py=Lk|Mk|hy<<6,_a=jk|hy<<6;function Uk(t){return t.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function my(t){if(ga.isBuffer(t))return t;if(typeof t=="string")return ga.from(t,"base64");throw new TypeError("ECDSA signature must be a Base64 string or a Buffer")}function $k(t,e){t=my(t);var n=fy(e),r=n+1,o=t.length,s=0;if(t[s++]!==py)throw new Error('Could not find expected "seq"');var a=t[s++];if(a===(ya|1)&&(a=t[s++]),o-s<a)throw new Error('"seq" specified length of "'+a+'", only "'+(o-s)+'" remaining');if(t[s++]!==_a)throw new Error('Could not find expected "int" for "r"');var u=t[s++];if(o-s-2<u)throw new Error('"r" specified length of "'+u+'", only "'+(o-s-2)+'" available');if(r<u)throw new Error('"r" specified length of "'+u+'", max of "'+r+'" is acceptable');var l=s;if(s+=u,t[s++]!==_a)throw new Error('Could not find expected "int" for "s"');var d=t[s++];if(o-s!==d)throw new Error('"s" specified length of "'+d+'", expected "'+(o-s)+'"');if(r<d)throw new Error('"s" specified length of "'+d+'", max of "'+r+'" is acceptable');var f=s;if(s+=d,s!==o)throw new Error('Expected to consume entire buffer, but "'+(o-s)+'" bytes remain');var p=n-u,m=n-d,b=ga.allocUnsafe(p+u+m+d);for(s=0;s<p;++s)b[s]=0;t.copy(b,s,l+Math.max(-p,0),l+u),s=n;for(var w=s;s<w+m;++s)b[s]=0;return t.copy(b,s,f+Math.max(-m,0),f+d),b=b.toString("base64"),b=Uk(b),b}function dy(t,e,n){for(var r=0;e+r<n&&t[e+r]===0;)++r;var o=t[e+r]>=ya;return o&&--r,r}function qk(t,e){t=my(t);var n=fy(e),r=t.length;if(r!==n*2)throw new TypeError('"'+e+'" signatures must be "'+n*2+'" bytes, saw "'+r+'"');var o=dy(t,0,n),s=dy(t,n,t.length),a=n-o,u=n-s,l=2+a+1+1+u,d=l<ya,f=ga.allocUnsafe((d?2:3)+l),p=0;return f[p++]=py,d?f[p++]=l:(f[p++]=ya|1,f[p++]=l&255),f[p++]=_a,f[p++]=a,o<0?(f[p++]=0,p+=t.copy(f,p,0,n)):p+=t.copy(f,p,o,n),f[p++]=_a,f[p++]=u,s<0?(f[p++]=0,t.copy(f,p,n)):t.copy(f,p,n+s),f}gy.exports={derToJose:$k,joseToDer:qk}});var Jt=X(On=>{"use strict";Object.defineProperty(On,"__esModule",{value:!0});On.LRUCache=void 0;On.snakeToCamel=_y;On.originalOrCamelOptions=Gk;On.removeUndefinedValuesInObject=Jk;On.isValidFile=Vk;On.getWellKnownCertificateConfigFileLocation=Kk;var zk=require("fs"),Hk=require("os"),Sl=require("path"),Wk="certificate_config.json",yy="gcloud";function _y(t){return t.replace(/([_][^_])/g,e=>e.slice(1).toUpperCase())}function Gk(t){function e(n){let r=t||{};return r[n]??r[_y(n)]}return{get:e}}var vl=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()}};On.LRUCache=vl;function Jk(t){return Object.entries(t).forEach(([e,n])=>{(n===void 0||n==="undefined")&&delete t[e]}),t}async function Vk(t){try{return(await zk.promises.lstat(t)).isFile()}catch{return!1}}function Kk(){let t=process.env.CLOUDSDK_CONFIG||(Yk()?Sl.join(process.env.APPDATA||"",yy):Sl.join(process.env.HOME||"",".config",yy));return Sl.join(t,Wk)}function Yk(){return Hk.platform().startsWith("win")}});var by=X((mO,Qk)=>{Qk.exports={name:"google-auth-library",version:"10.4.0",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:"googleapis/google-auth-library-nodejs.git",keywords:["google","api","google apis","client","client library"],dependencies:{"base64-js":"^1.3.0","ecdsa-sig-formatter":"^1.0.11",gaxios:"^7.0.0","gcp-metadata":"^7.0.0","google-logging-utils":"^1.0.0",gtoken:"^8.0.0",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.1","@types/node":"^22.0.0","@types/sinon":"^17.0.0","assert-rejects":"^1.0.0",c8:"^10.0.0",codecov:"^3.0.2",gts:"^6.0.0","is-docker":"^3.0.0",jsdoc:"^4.0.0","jsdoc-fresh":"^4.0.0","jsdoc-region-tag":"^3.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",linkinator:"^6.1.2",mocha:"^11.1.0",mv:"^2.1.1",ncp:"^2.0.0",nock:"^14.0.5","null-loader":"^4.0.0",puppeteer:"^24.0.0",sinon:"^21.0.0","ts-loader":"^8.0.0",typescript:"5.8.2",webpack:"^5.21.2","webpack-cli":"^4.0.0"},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":"linkinator docs","predocs-test":"npm run docs",prelint:"cd samples; npm link ../; npm install"},license:"Apache-2.0"}});var Tl=X(Qn=>{"use strict";Object.defineProperty(Qn,"__esModule",{value:!0});Qn.USER_AGENT=Qn.PRODUCT_NAME=Qn.pkg=void 0;var Cy=by();Qn.pkg=Cy;var wy="google-api-nodejs-client";Qn.PRODUCT_NAME=wy;var Xk=`${wy}/${Cy.version}`;Qn.USER_AGENT=Xk});var Ct=X(Vt=>{"use strict";Object.defineProperty(Vt,"__esModule",{value:!0});Vt.AuthClient=Vt.DEFAULT_EAGER_REFRESH_THRESHOLD_MILLIS=Vt.DEFAULT_UNIVERSE=void 0;var Zk=require("events"),Dl=Xe(),eA=Jt(),tA=hl(),Rl=Tl();Vt.DEFAULT_UNIVERSE="googleapis.com";Vt.DEFAULT_EAGER_REFRESH_THRESHOLD_MILLIS=300*1e3;var xl=class t extends Zk.EventEmitter{apiKey;projectId;quotaProjectId;transporter;credentials={};eagerRefreshThresholdMillis=Vt.DEFAULT_EAGER_REFRESH_THRESHOLD_MILLIS;forceRefreshOnFailure=!1;universeDomain=Vt.DEFAULT_UNIVERSE;static RequestMethodNameSymbol=Symbol("request method name");static RequestLogIdSymbol=Symbol("request log id");constructor(e={}){super();let n=(0,eA.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")??Vt.DEFAULT_UNIVERSE,this.transporter=e.transporter??new Dl.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],r=e[1],o,s=new Headers;return typeof n=="string"?o=new URL(n):n instanceof URL?o=n:n&&n.url&&(o=new URL(n.url)),n&&typeof n=="object"&&"headers"in n&&Dl.Gaxios.mergeHeaders(s,n.headers),r&&Dl.Gaxios.mergeHeaders(s,new Headers(r.headers)),typeof n=="object"&&!(n instanceof URL)?this.request({...r,...n,headers:s,url:o}):this.request({...r,headers:s,url:o})}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 r=n.get("x-goog-user-project"),o=n.get("authorization");return r&&e.set("x-goog-user-project",r),o&&e.set("authorization",o),e}static log=(0,tA.log)("auth");static DEFAULT_REQUEST_INTERCEPTOR={resolved:async e=>{if(!e.headers.has("x-goog-api-client")){let r=process.version.replace(/^v/,"");e.headers.set("x-goog-api-client",`gl-node/${r}`)}let n=e.headers.get("User-Agent");n?n.includes(`${Rl.PRODUCT_NAME}/`)||e.headers.set("User-Agent",`${n} ${Rl.USER_AGENT}`):e.headers.set("User-Agent",Rl.USER_AGENT);try{let r=e,o=r[t.RequestMethodNameSymbol],s=`${Math.floor(Math.random()*1e3)}`;r[t.RequestLogIdSymbol]=s;let a={url:e.url,headers:e.headers};o?t.log.info("%s [%s] request %j",o,s,a):t.log.info("[%s] request %j",s,a)}catch{}return e}};static DEFAULT_RESPONSE_INTERCEPTOR={resolved:async e=>{try{let n=e.config,r=n[t.RequestMethodNameSymbol],o=n[t.RequestLogIdSymbol];r?t.log.info("%s [%s] response %j",r,o,e.data):t.log.info("[%s] response %j",o,e.data)}catch{}return e},rejected:async e=>{try{let n=e.config,r=n[t.RequestMethodNameSymbol],o=n[t.RequestLogIdSymbol];r?t.log.info("%s [%s] error %j",r,o,e.response?.data):t.log.error("[%s] error %j",o,e.response?.data)}catch{}throw e}};static setMethodName(e,n){try{let r=e;r[t.RequestMethodNameSymbol]=n}catch{}}static get RETRY_CONFIG(){return{retry:!0,retryConfig:{httpMethodsToRetry:["GET","PUT","POST","HEAD","OPTIONS","DELETE"]}}}};Vt.AuthClient=xl});var Pl=X(ba=>{"use strict";Object.defineProperty(ba,"__esModule",{value:!0});ba.LoginTicket=void 0;var Ol=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()}}};ba.LoginTicket=Ol});var Tr=X(on=>{"use strict";Object.defineProperty(on,"__esModule",{value:!0});on.OAuth2Client=on.ClientAuthentication=on.CertificateFormat=on.CodeChallengeMethod=void 0;var Ey=Xe(),nA=require("querystring"),rA=require("stream"),oA=Al(),ky=Jt(),Fl=as(),po=Ct(),sA=Pl(),Ay;(function(t){t.Plain="plain",t.S256="S256"})(Ay||(on.CodeChallengeMethod=Ay={}));var Pn;(function(t){t.PEM="PEM",t.JWK="JWK"})(Pn||(on.CertificateFormat=Pn={}));var us;(function(t){t.ClientSecretPost="ClientSecretPost",t.ClientSecretBasic="ClientSecretBasic",t.None="None"})(us||(on.ClientAuthentication=us={}));var Il=class t extends po.AuthClient{redirectUri;certificateCache={};certificateExpiry=null;certificateCacheFormat=Pn.PEM;refreshTokenPromises=new Map;endpoints;issuers;clientAuthentication;_clientId;_clientSecret;refreshHandler;constructor(e={},n,r){super(typeof e=="object"?e:{}),typeof e!="object"&&(e={clientId:e,clientSecret:n,redirectUri:r}),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||us.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()+"?"+nA.stringify(e)}generateCodeVerifier(){throw new Error("generateCodeVerifier is removed, please use generateCodeVerifierAsync instead.")}async generateCodeVerifierAsync(){let e=(0,Fl.createCrypto)(),r=e.randomBytesBase64(96).replace(/\+/g,"~").replace(/=/g,"_").replace(/\//g,"-"),s=(await e.sha256DigestBase64(r)).split("=")[0].replace(/\+/g,"-").replace(/\//g,"_");return{codeVerifier:r,codeChallenge:s}}getToken(e,n){let r=typeof e=="string"?{code:e}:e;if(n)this.getTokenAsync(r).then(o=>n(null,o.tokens,o.res),o=>n(o,null,o.response));else return this.getTokenAsync(r)}async getTokenAsync(e){let n=this.endpoints.oauth2TokenUrl.toString(),r=new Headers,o={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===us.ClientSecretBasic){let l=Buffer.from(`${this._clientId}:${this._clientSecret}`);r.set("authorization",`Basic ${l.toString("base64")}`)}this.clientAuthentication===us.ClientSecretPost&&(o.client_secret=this._clientSecret);let s={...t.RETRY_CONFIG,method:"POST",url:n,data:new URLSearchParams((0,ky.removeUndefinedValuesInObject)(o)),headers:r};po.AuthClient.setMethodName(s,"getTokenAsync");let a=await this.transporter.request(s),u=a.data;return a.data&&a.data.expires_in&&(u.expiry_date=new Date().getTime()+a.data.expires_in*1e3,delete u.expires_in),this.emit("tokens",u),{tokens:u,res:a}}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(r=>(this.refreshTokenPromises.delete(e),r),r=>{throw this.refreshTokenPromises.delete(e),r});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(),r={refresh_token:e,client_id:this._clientId,client_secret:this._clientSecret,grant_type:"refresh_token"},o;try{let a={...t.RETRY_CONFIG,method:"POST",url:n,data:new URLSearchParams((0,ky.removeUndefinedValuesInObject)(r))};po.AuthClient.setMethodName(a,"refreshTokenNoCache"),o=await this.transporter.request(a)}catch(a){throw a instanceof Ey.GaxiosError&&a.message==="invalid_grant"&&a.response?.data&&/ReAuth/i.test(a.response.data.error_description)&&(a.message=JSON.stringify(a.response.data)),a}let s=o.data;return o.data&&o.data.expires_in&&(s.expiry_date=new Date().getTime()+o.data.expires_in*1e3,delete s.expires_in),this.emit("tokens",s),{tokens:s,res:o}}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 r=await this.processAndValidateRefreshHandler();if(r?.access_token)return this.setCredentials(r),{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 u=new Headers({authorization:n.token_type+" "+n.access_token});return{headers:this.addSharedMetadataHeaders(u)}}if(this.refreshHandler){let u=await this.processAndValidateRefreshHandler();if(u?.access_token){this.setCredentials(u);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 r=null,o=null;try{r=await this.refreshToken(n.refresh_token),o=r.tokens}catch(u){let l=u;throw l.response&&(l.response.status===403||l.response.status===404)&&(l.message=`Could not refresh access token: ${l.message}`),l}let s=this.credentials;s.token_type=s.token_type||"Bearer",o.refresh_token=s.refresh_token,this.credentials=o;let a=new Headers({authorization:s.token_type+" "+o.access_token});return{headers:this.addSharedMetadataHeaders(a),res:r.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 r={...t.RETRY_CONFIG,url:this.getRevokeTokenURL(e).toString(),method:"POST"};if(po.AuthClient.setMethodName(r,"revokeToken"),n)this.transporter.request(r).then(o=>n(null,o),n);else return this.transporter.request(r)}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(r=>n(null,r),r=>n(r,r.response));else return this.requestAsync(e)}async requestAsync(e,n=!1){try{let r=await this.getRequestMetadataAsync();return e.headers=Ey.Gaxios.mergeHeaders(e.headers),this.addUserProjectAndAuthHeaders(e.headers,r.headers),this.apiKey&&e.headers.set("X-Goog-Api-Key",this.apiKey),await this.transporter.request(e)}catch(r){let o=r.response;if(o){let s=o.status,a=this.credentials&&this.credentials.access_token&&this.credentials.refresh_token&&(!this.credentials.expiry_date||this.forceRefreshOnFailure),u=this.credentials&&this.credentials.access_token&&!this.credentials.refresh_token&&(!this.credentials.expiry_date||this.forceRefreshOnFailure)&&this.refreshHandler,l=o.config.data instanceof rA.Readable,d=s===401||s===403;if(!n&&d&&!l&&a)return await this.refreshAccessTokenAsync(),this.requestAsync(e,!0);if(!n&&d&&!l&&u){let f=await this.processAndValidateRefreshHandler();return f?.access_token&&this.setCredentials(f),this.requestAsync(e,!0)}}throw r}}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(r=>n(null,r),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()}),r=Object.assign({expiry_date:new Date().getTime()+n.expires_in*1e3,scopes:n.scope.split(" ")},n);return delete r.expires_in,delete r.scope,r}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,Fl.hasBrowserCrypto)()?Pn.JWK:Pn.PEM;if(this.certificateExpiry&&e<this.certificateExpiry.getTime()&&this.certificateCacheFormat===n)return{certs:this.certificateCache,format:n};let r,o;switch(n){case Pn.PEM:o=this.endpoints.oauth2FederatedSignonPemCertsUrl.toString();break;case Pn.JWK:o=this.endpoints.oauth2FederatedSignonJwkCertsUrl.toString();break;default:throw new Error(`Unsupported certificate format ${n}`)}try{let d={...t.RETRY_CONFIG,url:o};po.AuthClient.setMethodName(d,"getFederatedSignonCertsAsync"),r=await this.transporter.request(d)}catch(d){throw d instanceof Error&&(d.message=`Failed to retrieve verification certificates: ${d.message}`),d}let s=r?.headers.get("cache-control"),a=-1;if(s){let d=/max-age=(?<maxAge>[0-9]+)/.exec(s)?.groups?.maxAge;d&&(a=Number(d)*1e3)}let u={};switch(n){case Pn.PEM:u=r.data;break;case Pn.JWK:for(let d of r.data.keys)u[d.kid]=d;break;default:throw new Error(`Unsupported certificate format ${n}`)}let l=new Date;return this.certificateExpiry=a===-1?null:new Date(l.getTime()+a),this.certificateCache=u,this.certificateCacheFormat=n,{certs:u,format:n,res:r}}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 r={...t.RETRY_CONFIG,url:n};po.AuthClient.setMethodName(r,"getIapPublicKeysAsync"),e=await this.transporter.request(r)}catch(r){throw r instanceof Error&&(r.message=`Failed to retrieve verification certificates: ${r.message}`),r}return{pubkeys:e.data,res:e}}verifySignedJwtWithCerts(){throw new Error("verifySignedJwtWithCerts is removed, please use verifySignedJwtWithCertsAsync instead.")}async verifySignedJwtWithCertsAsync(e,n,r,o,s){let a=(0,Fl.createCrypto)();s||(s=t.DEFAULT_MAX_TOKEN_LIFETIME_SECS_);let u=e.split(".");if(u.length!==3)throw new Error("Wrong number of segments in token: "+e);let l=u[0]+"."+u[1],d=u[2],f,p;try{f=JSON.parse(a.decodeBase64StringUtf8(u[0]))}catch(C){throw C instanceof Error&&(C.message=`Can't parse token envelope: ${u[0]}': ${C.message}`),C}if(!f)throw new Error("Can't parse token envelope: "+u[0]);try{p=JSON.parse(a.decodeBase64StringUtf8(u[1]))}catch(C){throw C instanceof Error&&(C.message=`Can't parse token payload '${u[0]}`),C}if(!p)throw new Error("Can't parse token payload: "+u[1]);if(!Object.prototype.hasOwnProperty.call(n,f.kid))throw new Error("No pem found for envelope: "+JSON.stringify(f));let m=n[f.kid];if(f.alg==="ES256"&&(d=oA.joseToDer(d,"ES256").toString("base64")),!await a.verify(m,l,d))throw new Error("Invalid token signature: "+e);if(!p.iat)throw new Error("No issue time in token: "+JSON.stringify(p));if(!p.exp)throw new Error("No expiration time in token: "+JSON.stringify(p));let w=Number(p.iat);if(isNaN(w))throw new Error("iat field using invalid format");let y=Number(p.exp);if(isNaN(y))throw new Error("exp field using invalid format");let g=new Date().getTime()/1e3;if(y>=g+s)throw new Error("Expiration time too far in future: "+JSON.stringify(p));let _=w-t.CLOCK_SKEW_SECS_,A=y+t.CLOCK_SKEW_SECS_;if(g<_)throw new Error("Token used too early, "+g+" < "+_+": "+JSON.stringify(p));if(g>A)throw new Error("Token used too late, "+g+" > "+A+": "+JSON.stringify(p));if(o&&o.indexOf(p.iss)<0)throw new Error("Invalid issuer, expected one of ["+o+"], but got "+p.iss);if(typeof r<"u"&&r!==null){let C=p.aud,S=!1;if(r.constructor===Array?S=r.indexOf(C)>-1:S=C===r,!S)throw new Error("Wrong recipient, payload audience != requiredAudience")}return new sA.LoginTicket(f,p)}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}};on.OAuth2Client=Il});var Bl=X(Ca=>{"use strict";Object.defineProperty(Ca,"__esModule",{value:!0});Ca.Compute=void 0;var iA=Xe(),Sy=is(),aA=Tr(),Nl=class extends aA.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 o={property:e};this.scopes.length>0&&(o.params={scopes:this.scopes.join(",")}),n=await Sy.instance(o)}catch(o){throw o instanceof iA.GaxiosError&&(o.message=`Could not refresh access token: ${o.message}`,this.wrapError(o)),o}let r=n;return n&&n.expires_in&&(r.expiry_date=new Date().getTime()+n.expires_in*1e3,delete r.expires_in),this.emit("tokens",r),{tokens:r,res:null}}async fetchIdToken(e){let n=`service-accounts/${this.serviceAccountEmail}/identity?format=full&audience=${e}`,r;try{let o={property:n};r=await Sy.instance(o)}catch(o){throw o instanceof Error&&(o.message=`Could not fetch ID token: ${o.message}`),o}return r}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))}};Ca.Compute=Nl});var Ll=X(wa=>{"use strict";Object.defineProperty(wa,"__esModule",{value:!0});wa.IdTokenClient=void 0;var uA=Tr(),Ml=class extends uA.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}};wa.IdTokenClient=Ml});var jl=X(mo=>{"use strict";Object.defineProperty(mo,"__esModule",{value:!0});mo.GCPEnv=void 0;mo.clear=cA;mo.getEnv=lA;var vy=is(),sn;(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"})(sn||(mo.GCPEnv=sn={}));var cs;function cA(){cs=void 0}async function lA(){return cs||(cs=dA(),cs)}async function dA(){let t=sn.NONE;return fA()?t=sn.APP_ENGINE:hA()?t=sn.CLOUD_FUNCTIONS:await yA()?await gA()?t=sn.KUBERNETES_ENGINE:pA()?t=sn.CLOUD_RUN:mA()?t=sn.CLOUD_RUN_JOBS:t=sn.COMPUTE_ENGINE:t=sn.NONE,t}function fA(){return!!(process.env.GAE_SERVICE||process.env.GAE_MODULE_NAME)}function hA(){return!!(process.env.FUNCTION_NAME||process.env.FUNCTION_TARGET)}function pA(){return!!process.env.K_CONFIGURATION}function mA(){return!!process.env.CLOUD_RUN_JOB}async function gA(){try{return await vy.instance("attributes/cluster-name"),!0}catch{return!1}}async function yA(){return vy.isAvailable()}});var Ul=X((kO,Ty)=>{var Ea=ho().Buffer,_A=require("stream"),bA=require("util");function ka(t){if(this.buffer=null,this.writable=!0,this.readable=!0,!t)return this.buffer=Ea.alloc(0),this;if(typeof t.pipe=="function")return this.buffer=Ea.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+")")}bA.inherits(ka,_A);ka.prototype.write=function(e){this.buffer=Ea.concat([this.buffer,Ea.from(e)]),this.emit("data",e)};ka.prototype.end=function(e){e&&this.write(e),this.emit("end",e),this.emit("close"),this.writable=!1,this.readable=!1};Ty.exports=ka});var Ry=X((AO,Dy)=>{"use strict";var ls=require("buffer").Buffer,$l=require("buffer").SlowBuffer;Dy.exports=Aa;function Aa(t,e){if(!ls.isBuffer(t)||!ls.isBuffer(e)||t.length!==e.length)return!1;for(var n=0,r=0;r<t.length;r++)n|=t[r]^e[r];return n===0}Aa.install=function(){ls.prototype.equal=$l.prototype.equal=function(e){return Aa(this,e)}};var CA=ls.prototype.equal,wA=$l.prototype.equal;Aa.restore=function(){ls.prototype.equal=CA,$l.prototype.equal=wA}});var Wl=X((SO,Ly)=>{var yo=ho().Buffer,Pt=require("crypto"),Oy=Al(),xy=require("util"),EA=`"%s" is not a valid algorithm.
|
|
51
51
|
Supported algorithms are:
|
|
52
|
-
"HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "PS256", "PS384", "PS512", "ES256", "ES384", "ES512" and "none".`,ds="secret must be a string or buffer",go="key must be a string or a buffer",EA="key must be a string, a buffer or an object",ql=typeof Pt.createPublicKey=="function";ql&&(go+=" or a KeyObject",ds+="or a KeyObject");function Py(t){if(!yo.isBuffer(t)&&typeof t!="string"&&(!ql||typeof t!="object"||typeof t.type!="string"||typeof t.asymmetricKeyType!="string"||typeof t.export!="function"))throw Kt(go)}function Fy(t){if(!yo.isBuffer(t)&&typeof t!="string"&&typeof t!="object")throw Kt(EA)}function kA(t){if(!yo.isBuffer(t)){if(typeof t=="string")return t;if(!ql||typeof t!="object"||t.type!=="secret"||typeof t.export!="function")throw Kt(ds)}}function zl(t){return t.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function Iy(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 Kt(t){var e=[].slice.call(arguments,1),n=xy.format.bind(xy,t).apply(null,e);return new TypeError(n)}function AA(t){return yo.isBuffer(t)||typeof t=="string"}function fs(t){return AA(t)||(t=JSON.stringify(t)),t}function Ny(t){return function(n,r){kA(r),n=fs(n);var o=Pt.createHmac("sha"+t,r),s=(o.update(n),o.digest("base64"));return zl(s)}}var $l,SA="timingSafeEqual"in Pt?function(e,n){return e.byteLength!==n.byteLength?!1:Pt.timingSafeEqual(e,n)}:function(e,n){return $l||($l=Ry()),$l(e,n)};function TA(t){return function(n,r,o){var s=Ny(t)(n,o);return SA(yo.from(r),yo.from(s))}}function By(t){return function(n,r){Fy(r),n=fs(n);var o=Pt.createSign("RSA-SHA"+t),s=(o.update(n),o.sign(r,"base64"));return zl(s)}}function My(t){return function(n,r,o){Py(o),n=fs(n),r=Iy(r);var s=Pt.createVerify("RSA-SHA"+t);return s.update(n),s.verify(o,r,"base64")}}function vA(t){return function(n,r){Fy(r),n=fs(n);var o=Pt.createSign("RSA-SHA"+t),s=(o.update(n),o.sign({key:r,padding:Pt.constants.RSA_PKCS1_PSS_PADDING,saltLength:Pt.constants.RSA_PSS_SALTLEN_DIGEST},"base64"));return zl(s)}}function DA(t){return function(n,r,o){Py(o),n=fs(n),r=Iy(r);var s=Pt.createVerify("RSA-SHA"+t);return s.update(n),s.verify({key:o,padding:Pt.constants.RSA_PKCS1_PSS_PADDING,saltLength:Pt.constants.RSA_PSS_SALTLEN_DIGEST},r,"base64")}}function RA(t){var e=By(t);return function(){var r=e.apply(null,arguments);return r=Oy.derToJose(r,"ES"+t),r}}function xA(t){var e=My(t);return function(r,o,s){o=Oy.joseToDer(o,"ES"+t).toString("base64");var a=e(r,o,s);return a}}function OA(){return function(){return""}}function PA(){return function(e,n){return n===""}}Ly.exports=function(e){var n={hs:Ny,rs:By,ps:vA,es:RA,none:OA},r={hs:TA,rs:My,ps:DA,es:xA,none:PA},o=e.match(/^(RS|PS|ES|HS)(256|384|512)$|^(none)$/);if(!o)throw Kt(wA,e);var s=(o[1]||o[3]).toLowerCase(),a=o[2];return{sign:n[s](a),verify:r[s](a)}}});var Wl=X((kO,jy)=>{var FA=require("buffer").Buffer;jy.exports=function(e){return typeof e=="string"?e:typeof e=="number"||FA.isBuffer(e)?e.toString():JSON.stringify(e)}});var Wy=X((AO,Hy)=>{var IA=ho().Buffer,Uy=jl(),NA=Hl(),BA=require("stream"),$y=Wl(),Gl=require("util");function qy(t,e){return IA.from(t,e).toString("base64").replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function MA(t,e,n){n=n||"utf8";var r=qy($y(t),"binary"),o=qy($y(e),n);return Gl.format("%s.%s",r,o)}function zy(t){var e=t.header,n=t.payload,r=t.secret||t.privateKey,o=t.encoding,s=NA(e.alg),a=MA(e,n,o),u=s.sign(a,r);return Gl.format("%s.%s",a,u)}function Aa(t){var e=t.secret||t.privateKey||t.key,n=new Uy(e);this.readable=!0,this.header=t.header,this.encoding=t.encoding,this.secret=this.privateKey=this.key=n,this.payload=new Uy(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))}Gl.inherits(Aa,BA);Aa.prototype.sign=function(){try{var e=zy({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")}};Aa.sign=zy;Hy.exports=Aa});var t0=X((SO,e0)=>{var Jy=ho().Buffer,Gy=jl(),LA=Hl(),jA=require("stream"),Vy=Wl(),UA=require("util"),$A=/^[a-zA-Z0-9\-_]+?\.[a-zA-Z0-9\-_]+?\.([a-zA-Z0-9\-_]+)?$/;function qA(t){return Object.prototype.toString.call(t)==="[object Object]"}function zA(t){if(qA(t))return t;try{return JSON.parse(t)}catch{return}}function Ky(t){var e=t.split(".",1)[0];return zA(Jy.from(e,"base64").toString("binary"))}function HA(t){return t.split(".",2).join(".")}function Yy(t){return t.split(".")[2]}function WA(t,e){e=e||"utf8";var n=t.split(".")[1];return Jy.from(n,"base64").toString(e)}function Qy(t){return $A.test(t)&&!!Ky(t)}function Xy(t,e,n){if(!e){var r=new Error("Missing algorithm parameter for jws.verify");throw r.code="MISSING_ALGORITHM",r}t=Vy(t);var o=Yy(t),s=HA(t),a=LA(e);return a.verify(s,o,n)}function Zy(t,e){if(e=e||{},t=Vy(t),!Qy(t))return null;var n=Ky(t);if(!n)return null;var r=WA(t);return(n.typ==="JWT"||e.json)&&(r=JSON.parse(r,e.encoding)),{header:n,payload:r,signature:Yy(t)}}function _o(t){t=t||{};var e=t.secret||t.publicKey||t.key,n=new Gy(e);this.readable=!0,this.algorithm=t.algorithm,this.encoding=t.encoding,this.secret=this.publicKey=this.key=n,this.signature=new Gy(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))}UA.inherits(_o,jA);_o.prototype.verify=function(){try{var e=Xy(this.signature.buffer,this.algorithm,this.key.buffer),n=Zy(this.signature.buffer,this.encoding);return this.emit("done",e,n),this.emit("data",e),this.emit("end"),this.readable=!1,e}catch(r){this.readable=!1,this.emit("error",r),this.emit("close")}};_o.decode=Zy;_o.isValid=Qy;_o.verify=Xy;e0.exports=_o});var Jl=X(Xn=>{var n0=Wy(),Sa=t0(),GA=["HS256","HS384","HS512","RS256","RS384","RS512","PS256","PS384","PS512","ES256","ES384","ES512"];Xn.ALGORITHMS=GA;Xn.sign=n0.sign;Xn.verify=Sa.verify;Xn.decode=Sa.decode;Xn.isValid=Sa.isValid;Xn.createSign=function(e){return new n0(e)};Xn.createVerify=function(e){return new Sa(e)}});var y0=X(va=>{"use strict";Object.defineProperty(va,"__esModule",{value:!0});va.GoogleToken=void 0;var r0=Ta(require("fs")),JA=Xe(),VA=Ta(Jl()),KA=Ta(require("path")),YA=require("util");function Ta(t,e){if(typeof WeakMap=="function")var n=new WeakMap,r=new WeakMap;return(Ta=function(s,a){if(!a&&s&&s.__esModule)return s;var u,l,d={__proto__:null,default:s};if(s===null||Fn(s)!="object"&&typeof s!="function")return d;if(u=a?r:n){if(u.has(s))return u.get(s);u.set(s,d)}for(var f in s)f!=="default"&&{}.hasOwnProperty.call(s,f)&&((l=(u=Object.defineProperty)&&Object.getOwnPropertyDescriptor(s,f))&&(l.get||l.set)?u(d,f,l):d[f]=s[f]);return d})(t,e)}function Fn(t){"@babel/helpers - typeof";return Fn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Fn(t)}function QA(t,e){f0(t,e),e.add(t)}function XA(t,e,n){f0(t,e),e.set(t,n)}function f0(t,e){if(e.has(t))throw new TypeError("Cannot initialize the same private elements twice on an object")}function o0(t,e,n){return t.set(Yt(t,e),n),n}function s0(t,e){return t.get(Yt(t,e))}function Yt(t,e,n){if(typeof t=="function"?t===e:t.has(e))return arguments.length<3?e:n;throw new TypeError("Private element is not present on this object")}function i0(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,m0(r.key),r)}}function h0(t,e,n){return e&&i0(t.prototype,e),n&&i0(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function p0(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function ZA(t,e,n){return e=gs(e),eS(t,Zl()?Reflect.construct(e,n||[],gs(t).constructor):e.apply(t,n))}function eS(t,e){if(e&&(Fn(e)=="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return tS(t)}function tS(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function nS(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&ms(t,e)}function Vl(t){var e=typeof Map=="function"?new Map:void 0;return Vl=function(r){if(r===null||!oS(r))return r;if(typeof r!="function")throw new TypeError("Super expression must either be null or a function");if(e!==void 0){if(e.has(r))return e.get(r);e.set(r,o)}function o(){return rS(r,arguments,gs(this).constructor)}return o.prototype=Object.create(r.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),ms(o,r)},Vl(t)}function rS(t,e,n){if(Zl())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,e);var o=new(t.bind.apply(t,r));return n&&ms(o,n.prototype),o}function Zl(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(Zl=function(){return!!t})()}function oS(t){try{return Function.toString.call(t).indexOf("[native code]")!==-1}catch{return typeof t=="function"}}function ms(t,e){return ms=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,r){return n.__proto__=r,n},ms(t,e)}function gs(t){return gs=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},gs(t)}function wt(t,e,n){return(e=m0(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function m0(t){var e=sS(t,"string");return Fn(e)=="symbol"?e:e+""}function sS(t,e){if(Fn(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(Fn(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function kt(){var t,e,n=typeof Symbol=="function"?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function s(b,w,y,g){var _=w&&w.prototype instanceof u?w:u,A=Object.create(_.prototype);return Et(A,"_invoke",(function(C,S,v){var R,$,V,P=0,Y=v||[],z=!1,K={p:0,n:0,v:t,a:Q,f:Q.bind(t,4),d:function(ie,oe){return R=ie,$=0,V=t,K.n=oe,a}};function Q(ee,ie){for($=ee,V=ie,e=0;!z&&P&&!oe&&e<Y.length;e++){var oe,pe=Y[e],G=K.p,Z=pe[2];ee>3?(oe=Z===ie)&&(V=pe[($=pe[4])?5:($=3,3)],pe[4]=pe[5]=t):pe[0]<=G&&((oe=ee<2&&G<pe[1])?($=0,K.v=ie,K.n=pe[1]):G<Z&&(oe=ee<3||pe[0]>ie||ie>Z)&&(pe[4]=ee,pe[5]=ie,K.n=Z,$=0))}if(oe||ee>1)return a;throw z=!0,ie}return function(ee,ie,oe){if(P>1)throw TypeError("Generator is already running");for(z&&ie===1&&Q(ie,oe),$=ie,V=oe;(e=$<2?t:V)||!z;){R||($?$<3?($>1&&(K.n=-1),Q($,V)):K.n=V:K.v=V);try{if(P=2,R){if($||(ee="next"),e=R[ee]){if(!(e=e.call(R,V)))throw TypeError("iterator result is not an object");if(!e.done)return e;V=e.value,$<2&&($=0)}else $===1&&(e=R.return)&&e.call(R),$<2&&(V=TypeError("The iterator does not provide a '"+ee+"' method"),$=1);R=t}else if((e=(z=K.n<0)?V:C.call(S,K))!==a)break}catch(pe){R=t,$=1,V=pe}finally{P=1}}return{value:e,done:z}}})(b,y,g),!0),A}var a={};function u(){}function l(){}function d(){}e=Object.getPrototypeOf;var f=[][r]?e(e([][r]())):(Et(e={},r,function(){return this}),e),p=d.prototype=u.prototype=Object.create(f);function m(b){return Object.setPrototypeOf?Object.setPrototypeOf(b,d):(b.__proto__=d,Et(b,o,"GeneratorFunction")),b.prototype=Object.create(p),b}return l.prototype=d,Et(p,"constructor",d),Et(d,"constructor",l),l.displayName="GeneratorFunction",Et(d,o,"GeneratorFunction"),Et(p),Et(p,o,"Generator"),Et(p,r,function(){return this}),Et(p,"toString",function(){return"[object Generator]"}),(kt=function(){return{w:s,m}})()}function Et(t,e,n,r){var o=Object.defineProperty;try{o({},"",{})}catch{o=0}Et=function(a,u,l,d){if(u)o?o(a,u,{value:l,enumerable:!d,configurable:!d,writable:!d}):a[u]=l;else{var f=function(m,b){Et(a,m,function(w){return this._invoke(m,b,w)})};f("next",0),f("throw",1),f("return",2)}},Et(t,e,n,r)}function a0(t,e,n,r,o,s,a){try{var u=t[s](a),l=u.value}catch(d){return void n(d)}u.done?e(l):Promise.resolve(l).then(r,o)}function bo(t){return function(){var e=this,n=arguments;return new Promise(function(r,o){var s=t.apply(e,n);function a(l){a0(s,r,o,a,u,"next",l)}function u(l){a0(s,r,o,a,u,"throw",l)}a(void 0)})}}var u0=r0.readFile?(0,YA.promisify)(r0.readFile):bo(kt().m(function t(){return kt().w(function(e){for(;;)switch(e.n){case 0:throw new ps("use key rather than keyFile.","MISSING_CREDENTIALS");case 1:return e.a(2)}},t)})),c0="https://oauth2.googleapis.com/token",iS="https://oauth2.googleapis.com/revoke?token=",ps=(function(t){function e(n,r){var o;return p0(this,e),o=ZA(this,e,[n]),wt(o,"code",void 0),o.code=r,o}return nS(e,t),h0(e)})(Vl(Error)),hs=new WeakMap,an=new WeakSet,vO=va.GoogleToken=(function(){function t(e){p0(this,t),QA(this,an),wt(this,"expiresAt",void 0),wt(this,"key",void 0),wt(this,"keyFile",void 0),wt(this,"iss",void 0),wt(this,"sub",void 0),wt(this,"scope",void 0),wt(this,"rawToken",void 0),wt(this,"tokenExpires",void 0),wt(this,"email",void 0),wt(this,"additionalClaims",void 0),wt(this,"eagerRefreshThresholdMillis",void 0),wt(this,"transporter",{request:function(r){return(0,JA.request)(r)}}),XA(this,hs,void 0),Yt(an,this,g0).call(this,e)}return h0(t,[{key:"accessToken",get:function(){return this.rawToken?this.rawToken.access_token:void 0}},{key:"idToken",get:function(){return this.rawToken?this.rawToken.id_token:void 0}},{key:"tokenType",get:function(){return this.rawToken?this.rawToken.token_type:void 0}},{key:"refreshToken",get:function(){return this.rawToken?this.rawToken.refresh_token:void 0}},{key:"hasExpired",value:function(){var n=new Date().getTime();return this.rawToken&&this.expiresAt?n>=this.expiresAt:!0}},{key:"isTokenExpiring",value:function(){var n,r=new Date().getTime(),o=(n=this.eagerRefreshThresholdMillis)!==null&&n!==void 0?n:0;return this.rawToken&&this.expiresAt?this.expiresAt<=r+o:!0}},{key:"getToken",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(Fn(n)==="object"&&(r=n,n=void 0),r=Object.assign({forceRefresh:!1},r),n){var o=n;Yt(an,this,l0).call(this,r).then(function(s){return o(null,s)},n);return}return Yt(an,this,l0).call(this,r)}},{key:"getCredentials",value:(function(){var e=bo(kt().m(function r(o){var s,a,u,l,d,f,p;return kt().w(function(m){for(;;)switch(m.n){case 0:s=KA.extname(o),p=s,m.n=p===".json"?1:p===".der"||p===".crt"||p===".pem"?4:p===".p12"||p===".pfx"?6:7;break;case 1:return m.n=2,u0(o,"utf8");case 2:if(a=m.v,u=JSON.parse(a),l=u.private_key,d=u.client_email,!(!l||!d)){m.n=3;break}throw new ps("private_key and client_email are required.","MISSING_CREDENTIALS");case 3:return m.a(2,{privateKey:l,clientEmail:d});case 4:return m.n=5,u0(o,"utf8");case 5:return f=m.v,m.a(2,{privateKey:f});case 6:throw new ps("*.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");case 7:throw new ps("Unknown certificate type. Type is determined based on file extension. Current supported extensions are *.json, and *.pem.","UNKNOWN_CERTIFICATE_TYPE");case 8:return m.a(2)}},r)}));function n(r){return e.apply(this,arguments)}return n})()},{key:"revokeToken",value:function(n){if(n){Yt(an,this,d0).call(this).then(function(){return n()},n);return}return Yt(an,this,d0).call(this)}}])})();function l0(t){return Kl.apply(this,arguments)}function Kl(){return Kl=bo(kt().m(function t(e){return kt().w(function(n){for(;;)switch(n.n){case 0:if(!(s0(hs,this)&&!e.forceRefresh)){n.n=1;break}return n.a(2,s0(hs,this));case 1:return n.p=1,n.n=2,o0(hs,this,Yt(an,this,aS).call(this,e));case 2:return n.a(2,n.v);case 3:return n.p=3,o0(hs,this,void 0),n.f(3);case 4:return n.a(2)}},t,this,[[1,,3,4]])})),Kl.apply(this,arguments)}function aS(t){return Yl.apply(this,arguments)}function Yl(){return Yl=bo(kt().m(function t(e){var n;return kt().w(function(r){for(;;)switch(r.n){case 0:if(!(this.isTokenExpiring()===!1&&e.forceRefresh===!1)){r.n=1;break}return r.a(2,Promise.resolve(this.rawToken));case 1:if(!(!this.key&&!this.keyFile)){r.n=2;break}throw new Error("No key or keyFile set.");case 2:if(!(!this.key&&this.keyFile)){r.n=4;break}return r.n=3,this.getCredentials(this.keyFile);case 3:n=r.v,this.key=n.privateKey,this.iss=n.clientEmail||this.iss,n.clientEmail||Yt(an,this,uS).call(this);case 4:return r.a(2,Yt(an,this,cS).call(this))}},t,this)})),Yl.apply(this,arguments)}function uS(){if(!this.iss)throw new ps("email is required.","MISSING_CREDENTIALS")}function d0(){return Ql.apply(this,arguments)}function Ql(){return Ql=bo(kt().m(function t(){var e;return kt().w(function(n){for(;;)switch(n.n){case 0:if(this.accessToken){n.n=1;break}throw new Error("No token to revoke.");case 1:return e=iS+this.accessToken,n.n=2,this.transporter.request({url:e,retry:!0});case 2:Yt(an,this,g0).call(this,{email:this.iss,sub:this.sub,key:this.key,keyFile:this.keyFile,scope:this.scope,additionalClaims:this.additionalClaims});case 3:return n.a(2)}},t,this)})),Ql.apply(this,arguments)}function g0(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.keyFile=t.keyFile,this.key=t.key,this.rawToken=void 0,this.iss=t.email||t.iss,this.sub=t.sub,this.additionalClaims=t.additionalClaims,Fn(t.scope)==="object"?this.scope=t.scope.join(" "):this.scope=t.scope,this.eagerRefreshThresholdMillis=t.eagerRefreshThresholdMillis,t.transporter&&(this.transporter=t.transporter)}function cS(){return Xl.apply(this,arguments)}function Xl(){return Xl=bo(kt().m(function t(){var e,n,r,o,s,a,u,l,d,f;return kt().w(function(p){for(;;)switch(p.n){case 0:return e=Math.floor(new Date().getTime()/1e3),n=this.additionalClaims||{},r=Object.assign({iss:this.iss,scope:this.scope,aud:c0,exp:e+3600,iat:e,sub:this.sub},n),o=VA.sign({header:{alg:"RS256"},payload:r,secret:this.key}),p.p=1,p.n=2,this.transporter.request({method:"POST",url:c0,data:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:o}),responseType:"json",retryConfig:{httpMethodsToRetry:["POST"]}});case 2:return s=p.v,this.rawToken=s.data,this.expiresAt=s.data.expires_in===null||s.data.expires_in===void 0?void 0:(e+s.data.expires_in)*1e3,p.a(2,this.rawToken);case 3:throw p.p=3,f=p.v,this.rawToken=void 0,this.tokenExpires=void 0,l=f.response&&(a=f.response)!==null&&a!==void 0&&a.data?(u=f.response)===null||u===void 0?void 0:u.data:{},l.error&&(d=l.error_description?": ".concat(l.error_description):"",f.message="".concat(l.error).concat(d)),f;case 4:return p.a(2)}},t,this,[[1,3]])})),Xl.apply(this,arguments)}});var td=X(Da=>{"use strict";Object.defineProperty(Da,"__esModule",{value:!0});Da.JWTAccess=void 0;var lS=Jl(),dS=Jt(),_0={alg:"RS256",typ:"JWT"},ed=class t{email;key;keyId;projectId;eagerRefreshThresholdMillis;cache=new dS.LRUCache({capacity:500,maxAge:3600*1e3});constructor(e,n,r,o){this.email=e,this.key=n,this.keyId=r,this.eagerRefreshThresholdMillis=o??300*1e3}getCachedKey(e,n){let r=e;if(n&&Array.isArray(n)&&n.length?r=e?`${e}_${n.join("_")}`:`${n.join("_")}`:typeof n=="string"&&(r=e?`${e}_${n}`:n),!r)throw Error("Scopes or url must be provided");return r}getRequestHeaders(e,n,r){let o=this.getCachedKey(e,r),s=this.cache.get(o),a=Date.now();if(s&&s.expiration-a>this.eagerRefreshThresholdMillis)return new Headers(s.headers);let u=Math.floor(Date.now()/1e3),l=t.getExpirationTime(u),d;if(Array.isArray(r)&&(r=r.join(" ")),r?d={iss:this.email,sub:this.email,scope:r,exp:l,iat:u}:d={iss:this.email,sub:this.email,aud:e,exp:l,iat:u},n){for(let w in d)if(n[w])throw new Error(`The '${w}' property is not allowed when passing additionalClaims. This claim is included in the JWT by default.`)}let f=this.keyId?{..._0,kid:this.keyId}:_0,p=Object.assign(d,n),m=lS.sign({header:f,payload:p,secret:this.key}),b=new Headers({authorization:`Bearer ${m}`});return this.cache.set(o,{expiration:l*1e3,headers:b}),b}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,r)=>{e||r(new Error("Must pass in a stream containing the service account auth settings."));let o="";e.setEncoding("utf8").on("data",s=>o+=s).on("error",r).on("end",()=>{try{let s=JSON.parse(o);this.fromJSON(s),n()}catch(s){r(s)}})})}};Da.JWTAccess=ed});var rd=X(xa=>{"use strict";Object.defineProperty(xa,"__esModule",{value:!0});xa.JWT=void 0;var b0=y0(),fS=td(),hS=vr(),Ra=Ct(),nd=class t extends hS.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!==Ra.DEFAULT_UNIVERSE;if(this.subject&&this.universeDomain!==Ra.DEFAULT_UNIVERSE)throw new RangeError(`Service Account user is configured for the credential. Domain-wide delegation is not supported in universes other than ${Ra.DEFAULT_UNIVERSE}`);if(!this.apiKey&&n)if(this.additionalClaims&&this.additionalClaims.target_audience){let{tokens:r}=await this.refreshToken();return{headers:this.addSharedMetadataHeaders(new Headers({authorization:`Bearer ${r.id_token}`}))}}else{this.access||(this.access=new fS.JWTAccess(this.email,this.key,this.keyId,this.eagerRefreshThresholdMillis));let r;this.hasUserScopes()?r=this.scopes:e||(r=this.defaultScopes);let o=this.useJWTAccessWithScope||this.universeDomain!==Ra.DEFAULT_UNIVERSE,s=await this.access.getRequestHeaders(e??void 0,this.additionalClaims,o?r:void 0);return{headers:this.addSharedMetadataHeaders(s)}}else return this.hasAnyScopes()||this.apiKey?super.getRequestMetadataAsync(e):{headers:new Headers}}async fetchIdToken(e){let n=new b0.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.key,this.email=this.gtoken.iss,e.tokens}async refreshTokenNoCache(){let e=this.createGToken(),r={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",r),{res:null,tokens:r}}createGToken(){return this.gtoken||(this.gtoken=new b0.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,r)=>{if(!e)throw new Error("Must pass in a stream containing the service account auth settings.");let o="";e.setEncoding("utf8").on("error",r).on("data",s=>o+=s).on("end",()=>{try{let s=JSON.parse(o);this.fromJSON(s),n()}catch(s){r(s)}})})}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 n=await this.createGToken().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.")}};xa.JWT=nd});var sd=X(Co=>{"use strict";Object.defineProperty(Co,"__esModule",{value:!0});Co.UserRefreshClient=Co.USER_REFRESH_ACCOUNT_TYPE=void 0;var pS=vr(),mS=Ct();Co.USER_REFRESH_ACCOUNT_TYPE="authorized_user";var od=class t extends pS.OAuth2Client{_refreshToken;constructor(e,n,r,o,s){let a=e&&typeof e=="object"?e:{clientId:e,clientSecret:n,refreshToken:r,eagerRefreshThresholdMillis:o,forceRefreshOnFailure:s};super(a),this._refreshToken=a.refreshToken,this.credentials.refresh_token=a.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})};return mS.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,r)=>{if(!e)return r(new Error("Must pass in a stream containing the user refresh token."));let o="";e.setEncoding("utf8").on("error",r).on("data",s=>o+=s).on("end",()=>{try{let s=JSON.parse(o);return this.fromJSON(s),n()}catch(s){return r(s)}})})}static fromJSON(e){let n=new t;return n.fromJSON(e),n}};Co.UserRefreshClient=od});var ad=X(wo=>{"use strict";Object.defineProperty(wo,"__esModule",{value:!0});wo.Impersonated=wo.IMPERSONATED_ACCOUNT_TYPE=void 0;var C0=vr(),gS=Xe(),yS=Jt();wo.IMPERSONATED_ACCOUNT_TYPE="impersonated_service_account";var id=class t extends C0.OAuth2Client{sourceClient;targetPrincipal;targetScopes;delegates;lifetime;endpoint;constructor(e={}){if(super(e),console.warn("The `Impersonated` constructor does not validate the credential configuration. A security risk occurs when a credential configuration configured with malicious URLs is used. When the credential configuration is accepted from an untrusted source, you should validate it before using it with this method. For more details, see https://cloud.google.com/docs/authentication/external/externally-sourced-credentials."),this.credentials={expiry_date:1,refresh_token:"impersonated-placeholder"},this.sourceClient=e.sourceClient??new C0.OAuth2Client,this.targetPrincipal=e.targetPrincipal??"",this.delegates=e.delegates??[],this.targetScopes=e.targetScopes??[],this.lifetime=e.lifetime??3600,!!!(0,yS.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}`,r=`${this.endpoint}/v1/${n}:signBlob`,o={delegates:this.delegates,payload:Buffer.from(e).toString("base64")};return(await this.sourceClient.request({...t.RETRY_CONFIG,url:r,data:o,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`,r={delegates:this.delegates,scope:this.targetScopes,lifetime:this.lifetime+"s"},o=await this.sourceClient.request({...t.RETRY_CONFIG,url:n,data:r,method:"POST"}),s=o.data;return this.credentials.access_token=s.accessToken,this.credentials.expiry_date=Date.parse(s.expireTime),{tokens:this.credentials,res:o}}catch(e){if(!(e instanceof Error))throw e;let n=0,r="";throw e instanceof gS.GaxiosError&&(n=e?.response?.data?.error?.status,r=e?.response?.data?.error?.message),n&&r?(e.message=`${n}: unable to impersonate: ${r}`,e):(e.message=`unable to impersonate: ${e}`,e)}}async fetchIdToken(e,n){await this.sourceClient.getAccessToken();let r=`projects/-/serviceAccounts/${this.targetPrincipal}`,o=`${this.endpoint}/v1/${r}:generateIdToken`,s={delegates:this.delegates,audience:e,includeEmail:n?.includeEmail??!0,useEmailAzp:n?.includeEmail??!0};return(await this.sourceClient.request({...t.RETRY_CONFIG,url:o,data:s,method:"POST"})).data.token}};wo.Impersonated=id});var cd=X(ys=>{"use strict";Object.defineProperty(ys,"__esModule",{value:!0});ys.OAuthClientAuthHandler=void 0;ys.getErrorFromOAuthErrorResponse=CS;var Eo=Xe(),_S=as(),bS=["PUT","POST","PATCH"],ud=class{#e=(0,_S.createCrypto)();#t;transporter;constructor(e){e&&"clientId"in e?(this.#t=e,this.transporter=new Eo.Gaxios):(this.#t=e?.clientAuthentication,this.transporter=e?.transporter||new Eo.Gaxios)}applyClientAuthenticationOptions(e,n){e.headers=Eo.Gaxios.mergeHeaders(e.headers),this.injectAuthenticatedHeaders(e,n),n||this.injectAuthenticatedRequestBody(e)}injectAuthenticatedHeaders(e,n){if(n)e.headers=Eo.Gaxios.mergeHeaders(e.headers,{authorization:`Bearer ${n}`});else if(this.#t?.confidentialClientType==="basic"){e.headers=Eo.Gaxios.mergeHeaders(e.headers);let r=this.#t.clientId,o=this.#t.clientSecret||"",s=this.#e.encodeBase64StringUtf8(`${r}:${o}`);Eo.Gaxios.mergeHeaders(e.headers,{authorization:`Basic ${s}`})}}injectAuthenticatedRequestBody(e){if(this.#t?.confidentialClientType==="request-body"){let n=(e.method||"GET").toUpperCase();if(!bS.includes(n))throw new Error(`${n} HTTP method does not support ${this.#t.confidentialClientType} client authentication`);let o=new Headers(e.headers).get("content-type");if(o?.startsWith("application/x-www-form-urlencoded")||e.data instanceof URLSearchParams){let s=new URLSearchParams(e.data??"");s.append("client_id",this.#t.clientId),s.append("client_secret",this.#t.clientSecret||""),e.data=s}else if(o?.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(`${o} 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"]}}}};ys.OAuthClientAuthHandler=ud;function CS(t,e){let n=t.error,r=t.error_description,o=t.error_uri,s=`Error code ${n}`;typeof r<"u"&&(s+=`: ${r}`),typeof o<"u"&&(s+=` - ${o}`);let a=new Error(s);if(e){let u=Object.keys(e);e.stack&&u.push("stack"),u.forEach(l=>{l!=="message"&&Object.defineProperty(a,l,{value:e[l],writable:!1,enumerable:!0})})}return a}});var Pa=X(Oa=>{"use strict";Object.defineProperty(Oa,"__esModule",{value:!0});Oa.StsCredentials=void 0;var wS=Xe(),ES=Ct(),w0=cd(),kS=Jt(),ld=class t extends w0.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,r){let o={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:r&&JSON.stringify(r)},s={...t.RETRY_CONFIG,url:this.#e.toString(),method:"POST",headers:n,data:new URLSearchParams((0,kS.removeUndefinedValuesInObject)(o))};ES.AuthClient.setMethodName(s,"exchangeToken"),this.applyClientAuthenticationOptions(s);try{let a=await this.transporter.request(s),u=a.data;return u.res=a,u}catch(a){throw a instanceof wS.GaxiosError&&a.response?(0,w0.getErrorFromOAuthErrorResponse)(a.response.data,a):a}}};Oa.StsCredentials=ld});var Zn=X(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});Ft.BaseExternalAccountClient=Ft.CLOUD_RESOURCE_MANAGER=Ft.EXTERNAL_ACCOUNT_TYPE=Ft.EXPIRATION_TIME_OFFSET=void 0;var AS=Xe(),SS=require("stream"),dd=Ct(),TS=Pa(),E0=Jt(),vS=Tl(),DS="urn:ietf:params:oauth:grant-type:token-exchange",RS="urn:ietf:params:oauth:token-type:access_token",fd="https://www.googleapis.com/auth/cloud-platform",xS=3600;Ft.EXPIRATION_TIME_OFFSET=300*1e3;Ft.EXTERNAL_ACCOUNT_TYPE="external_account";Ft.CLOUD_RESOURCE_MANAGER="https://cloudresourcemanager.googleapis.com/v1/projects/";var OS="//iam\\.googleapis\\.com/locations/[^/]+/workforcePools/[^/]+/providers/.+",PS="https://sts.{universeDomain}/v1/token",hd=class t extends dd.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,E0.originalOrCamelOptions)(e),r=n.get("type");if(r&&r!==Ft.EXTERNAL_ACCOUNT_TYPE)throw new Error(`Expected "${Ft.EXTERNAL_ACCOUNT_TYPE}" type but received "${e.type}"`);let o=n.get("client_id"),s=n.get("client_secret");this.tokenUrl=n.get("token_url")??PS.replace("{universeDomain}",this.universeDomain);let a=n.get("subject_token_type"),u=n.get("workforce_pool_user_project"),l=n.get("service_account_impersonation_url"),d=n.get("service_account_impersonation"),f=(0,E0.originalOrCamelOptions)(d).get("token_lifetime_seconds");this.cloudResourceManagerURL=new URL(n.get("cloud_resource_manager_url")||`https://cloudresourcemanager.${this.universeDomain}/v1/projects/`),o&&(this.clientAuth={confidentialClientType:"basic",clientId:o,clientSecret:s}),this.stsCredential=new TS.StsCredentials({tokenExchangeEndpoint:this.tokenUrl,clientAuthentication:this.clientAuth}),this.scopes=n.get("scopes")||[fd],this.cachedAccessToken=null,this.audience=n.get("audience"),this.subjectTokenType=a,this.workforcePoolUserProject=u;let p=new RegExp(OS);if(this.workforcePoolUserProject&&!this.audience.match(p))throw new Error("workforcePoolUserProject should not be set for non-workforce pool credentials.");this.serviceAccountImpersonationUrl=l,this.serviceAccountImpersonationLifetime=f,this.serviceAccountImpersonationLifetime?this.configLifetimeRequested=!0:(this.configLifetimeRequested=!1,this.serviceAccountImpersonationLifetime=xS),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(r=>n(null,r),r=>n(r,r.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(),r={...t.RETRY_CONFIG,headers:n,url:`${this.cloudResourceManagerURL.toString()}${e}`};dd.AuthClient.setMethodName(r,"getProjectId");let o=await this.transporter.request(r);return this.projectId=o.data.projectId,this.projectId}return null}async requestAsync(e,n=!1){let r;try{let o=await this.getRequestHeaders();e.headers=AS.Gaxios.mergeHeaders(e.headers),this.addUserProjectAndAuthHeaders(e.headers,o),r=await this.transporter.request(e)}catch(o){let s=o.response;if(s){let a=s.status,u=s.config.data instanceof SS.Readable;if(!n&&(a===401||a===403)&&!u&&this.forceRefreshOnFailure)return await this.refreshAccessTokenAsync(),await this.requestAsync(e,!0)}throw o}return r}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:DS,audience:this.audience,requestedTokenType:RS,subjectToken:e,subjectTokenType:this.subjectTokenType,scope:this.serviceAccountImpersonationUrl?[fd]:this.getScopesArray()},r=!this.clientAuth&&this.workforcePoolUserProject?{userProject:this.workforcePoolUserProject}:void 0,o=new Headers({"x-goog-api-client":this.getMetricsHeaderValue()}),s=await this.stsCredential.exchangeToken(n,o,r);return this.serviceAccountImpersonationUrl?this.cachedAccessToken=await this.getImpersonatedAccessToken(s.access_token):s.expires_in?this.cachedAccessToken={access_token:s.access_token,expiry_date:new Date().getTime()+s.expires_in*1e3,res:s.res}:this.cachedAccessToken={access_token:s.access_token,res:s.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"}};dd.AuthClient.setMethodName(n,"getImpersonatedAccessToken");let r=await this.transporter.request(n),o=r.data;return{access_token:o.accessToken,expiry_date:new Date(o.expireTime).getTime(),res:r}}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||[fd]}getMetricsHeaderValue(){let e=process.version.replace(/^v/,""),n=this.serviceAccountImpersonationUrl!==void 0,r=this.credentialSourceType?this.credentialSourceType:"unknown";return`gl-node/${e} auth/${vS.pkg.version} google-byoid-sdk source/${r} sa-impersonation/${n} config-lifetime/${this.configLifetimeRequested}`}getTokenUrl(){return this.tokenUrl}};Ft.BaseExternalAccountClient=hd});var k0=X(Fa=>{"use strict";Object.defineProperty(Fa,"__esModule",{value:!0});Fa.FileSubjectTokenSupplier=void 0;var md=require("util"),gd=require("fs"),FS=(0,md.promisify)(gd.readFile??(()=>{})),IS=(0,md.promisify)(gd.realpath??(()=>{})),NS=(0,md.promisify)(gd.lstat??(()=>{})),pd=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 IS(e),!(await NS(e)).isFile())throw new Error}catch(o){throw o instanceof Error&&(o.message=`The file at ${e} does not exist, or it is not a file. ${o.message}`),o}let n,r=await FS(e,{encoding:"utf8"});if(this.formatType==="text"?n=r:this.formatType==="json"&&this.subjectTokenFieldName&&(n=JSON.parse(r)[this.subjectTokenFieldName]),!n)throw new Error("Unable to parse the subject_token from the credential_source file");return n}};Fa.FileSubjectTokenSupplier=pd});var A0=X(Ia=>{"use strict";Object.defineProperty(Ia,"__esModule",{value:!0});Ia.UrlSubjectTokenSupplier=void 0;var BS=Ct(),yd=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};BS.AuthClient.setMethodName(n,"getSubjectToken");let r;if(this.formatType==="text"?r=(await e.transporter.request(n)).data:this.formatType==="json"&&this.subjectTokenFieldName&&(r=(await e.transporter.request(n)).data[this.subjectTokenFieldName]),!r)throw new Error("Unable to parse the subject_token from the credential_source URL");return r}};Ia.UrlSubjectTokenSupplier=yd});var S0=X(At=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});At.CertificateSubjectTokenSupplier=At.InvalidConfigurationError=At.CertificateSourceUnavailableError=At.CERTIFICATE_CONFIGURATION_ENV_VARIABLE=void 0;var Na=Jt(),Ba=require("fs"),Ma=require("crypto"),MS=require("https");At.CERTIFICATE_CONFIGURATION_ENV_VARIABLE="GOOGLE_API_CERTIFICATE_CONFIG";var un=class extends Error{constructor(e){super(e),this.name="CertificateSourceUnavailableError"}};At.CertificateSourceUnavailableError=un;var It=class extends Error{constructor(e){super(e),this.name="InvalidConfigurationError"}};At.InvalidConfigurationError=It;var _d=class{certificateConfigPath;trustChainPath;cert;key;constructor(e){if(!e.useDefaultCertificateConfig&&!e.certificateConfigLocation)throw new It("Either `useDefaultCertificateConfig` must be true or a `certificateConfigLocation` must be provided.");if(e.useDefaultCertificateConfig&&e.certificateConfigLocation)throw new It("Both `useDefaultCertificateConfig` and `certificateConfigLocation` cannot be provided.");this.trustChainPath=e.trustChainPath,this.certificateConfigPath=e.certificateConfigLocation??""}async createMtlsHttpsAgent(){if(!this.key||!this.cert)throw new It("Cannot create mTLS Agent with missing certificate or key");return new MS.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.#r(this.cert)}async#e(){let e=this.certificateConfigPath;if(e){if(await(0,Na.isValidFile)(e))return e;throw new un(`Provided certificate config path is invalid: ${e}`)}let n=process.env[At.CERTIFICATE_CONFIGURATION_ENV_VARIABLE];if(n){if(await(0,Na.isValidFile)(n))return n;throw new un(`Path from environment variable "${At.CERTIFICATE_CONFIGURATION_ENV_VARIABLE}" is invalid: ${n}`)}let r=(0,Na.getWellKnownCertificateConfigFileLocation)();if(await(0,Na.isValidFile)(r))return r;throw new un(`Could not find certificate configuration file. Searched override path, the "${At.CERTIFICATE_CONFIGURATION_ENV_VARIABLE}" env var, and the gcloud path (${r}).`)}async#t(){let e=this.certificateConfigPath,n;try{n=await Ba.promises.readFile(e,"utf8")}catch{throw new un(`Failed to read certificate config file at: ${e}`)}try{let r=JSON.parse(n),o=r?.cert_configs?.workload?.cert_path,s=r?.cert_configs?.workload?.key_path;if(!o||!s)throw new It(`Certificate config file (${e}) is missing required "cert_path" or "key_path" in the workload config.`);return{certPath:o,keyPath:s}}catch(r){throw r instanceof It?r:new It(`Failed to parse certificate config from ${e}: ${r.message}`)}}async#n(e,n){let r,o;try{r=await Ba.promises.readFile(e),new Ma.X509Certificate(r)}catch(s){let a=s instanceof Error?s.message:String(s);throw new un(`Failed to read certificate file at ${e}: ${a}`)}try{o=await Ba.promises.readFile(n),(0,Ma.createPrivateKey)(o)}catch(s){let a=s instanceof Error?s.message:String(s);throw new un(`Failed to read private key file at ${n}: ${a}`)}return{cert:r,key:o}}async#r(e){let n=new Ma.X509Certificate(e);if(!this.trustChainPath)return JSON.stringify([n.raw.toString("base64")]);try{let s=((await Ba.promises.readFile(this.trustChainPath,"utf8")).match(/-----BEGIN CERTIFICATE-----[^-]+-----END CERTIFICATE-----/g)??[]).map((l,d)=>{try{return new Ma.X509Certificate(l)}catch(f){let p=f instanceof Error?f.message:String(f);throw new It(`Failed to parse certificate at index ${d} in trust chain file ${this.trustChainPath}: ${p}`)}}),a=s.findIndex(l=>n.raw.equals(l.raw)),u;if(a===-1)u=[n,...s];else if(a===0)u=s;else throw new It(`Leaf certificate exists in the trust chain but is not the first entry (found at index ${a}).`);return JSON.stringify(u.map(l=>l.raw.toString("base64")))}catch(r){if(r instanceof It)throw r;let o=r instanceof Error?r.message:String(r);throw new un(`Failed to process certificate chain from ${this.trustChainPath}: ${o}`)}}};At.CertificateSubjectTokenSupplier=_d});var wd=X(La=>{"use strict";Object.defineProperty(La,"__esModule",{value:!0});La.IdentityPoolClient=void 0;var LS=Zn(),bd=Jt(),jS=k0(),US=A0(),T0=S0(),$S=Pa(),v0=Xe(),Cd=class t extends LS.BaseExternalAccountClient{subjectTokenSupplier;constructor(e){super(e);let n=(0,bd.originalOrCamelOptions)(e),r=n.get("credential_source"),o=n.get("subject_token_supplier");if(!r&&!o)throw new Error("A credential source or subject token supplier must be specified.");if(r&&o)throw new Error("Only one of credential source or subject token supplier can be specified.");if(o)this.subjectTokenSupplier=o,this.credentialSourceType="programmatic";else{let s=(0,bd.originalOrCamelOptions)(r),a=(0,bd.originalOrCamelOptions)(s.get("format")),u=a.get("type")||"text",l=a.get("subject_token_field_name");if(u!=="json"&&u!=="text")throw new Error(`Invalid credential_source format "${u}"`);if(u==="json"&&!l)throw new Error("Missing subject_token_field_name for JSON credential_source format");let d=s.get("file"),f=s.get("url"),p=s.get("certificate"),m=s.get("headers");if(d&&f||f&&p||d&&p)throw new Error('No valid Identity Pool "credential_source" provided, must be either file, url, or certificate.');if(d)this.credentialSourceType="file",this.subjectTokenSupplier=new jS.FileSubjectTokenSupplier({filePath:d,formatType:u,subjectTokenFieldName:l});else if(f)this.credentialSourceType="url",this.subjectTokenSupplier=new US.UrlSubjectTokenSupplier({url:f,formatType:u,subjectTokenFieldName:l,headers:m,additionalGaxiosOptions:t.RETRY_CONFIG});else if(p){this.credentialSourceType="certificate";let b=new T0.CertificateSubjectTokenSupplier({useDefaultCertificateConfig:p.use_default_certificate_config,certificateConfigLocation:p.certificate_config_location,trustChainPath:p.trust_chain_path});this.subjectTokenSupplier=b}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 T0.CertificateSubjectTokenSupplier){let n=await this.subjectTokenSupplier.createMtlsHttpsAgent();this.stsCredential=new $S.StsCredentials({tokenExchangeEndpoint:this.getTokenUrl(),clientAuthentication:this.clientAuth,transporter:new v0.Gaxios({agent:n})}),this.transporter=new v0.Gaxios({...this.transporter.defaults||{},agent:n})}return e}};La.IdentityPoolClient=Cd});var kd=X(Ua=>{"use strict";Object.defineProperty(Ua,"__esModule",{value:!0});Ua.AwsRequestSigner=void 0;var ja=Xe(),R0=as(),D0="AWS4-HMAC-SHA256",qS="aws4_request",Ed=class{getCredentials;region;crypto;constructor(e,n){this.getCredentials=e,this.region=n,this.crypto=(0,R0.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,r=e.url,o=e.method||"GET",s=e.body||n,a=e.headers,u=await this.getCredentials(),l=new URL(r);if(typeof s!="string"&&s!==void 0)throw new TypeError(`'requestPayload' is expected to be a string if provided. Got: ${s}`);let d=await HS({crypto:this.crypto,host:l.host,canonicalUri:l.pathname,canonicalQuerystring:l.search.slice(1),method:o,region:this.region,securityCredentials:u,requestPayload:s,additionalAmzHeaders:a}),f=ja.Gaxios.mergeHeaders(d.amzDate?{"x-amz-date":d.amzDate}:{},{authorization:d.authorizationHeader,host:l.host},a||{});u.token&&ja.Gaxios.mergeHeaders(f,{"x-amz-security-token":u.token});let p={url:r,method:o,headers:f};return s!==void 0&&(p.body=s),p}};Ua.AwsRequestSigner=Ed;async function _s(t,e,n){return await t.signWithHmacSha256(e,n)}async function zS(t,e,n,r,o){let s=await _s(t,`AWS4${e}`,n),a=await _s(t,s,r),u=await _s(t,a,o);return await _s(t,u,"aws4_request")}async function HS(t){let e=ja.Gaxios.mergeHeaders(t.additionalAmzHeaders),n=t.requestPayload||"",r=t.host.split(".")[0],o=new Date,s=o.toISOString().replace(/[-:]/g,"").replace(/\.[0-9]+/,""),a=o.toISOString().replace(/[-]/g,"").replace(/T.*/,"");t.securityCredentials.token&&e.set("x-amz-security-token",t.securityCredentials.token);let u=ja.Gaxios.mergeHeaders({host:t.host},e.has("date")?{}:{"x-amz-date":s},e),l="",d=[...u.keys()].sort();d.forEach(A=>{l+=`${A}:${u.get(A)}
|
|
52
|
+
"HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "PS256", "PS384", "PS512", "ES256", "ES384", "ES512" and "none".`,ds="secret must be a string or buffer",go="key must be a string or a buffer",kA="key must be a string, a buffer or an object",zl=typeof Pt.createPublicKey=="function";zl&&(go+=" or a KeyObject",ds+="or a KeyObject");function Py(t){if(!yo.isBuffer(t)&&typeof t!="string"&&(!zl||typeof t!="object"||typeof t.type!="string"||typeof t.asymmetricKeyType!="string"||typeof t.export!="function"))throw Kt(go)}function Fy(t){if(!yo.isBuffer(t)&&typeof t!="string"&&typeof t!="object")throw Kt(kA)}function AA(t){if(!yo.isBuffer(t)){if(typeof t=="string")return t;if(!zl||typeof t!="object"||t.type!=="secret"||typeof t.export!="function")throw Kt(ds)}}function Hl(t){return t.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function Iy(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 Kt(t){var e=[].slice.call(arguments,1),n=xy.format.bind(xy,t).apply(null,e);return new TypeError(n)}function SA(t){return yo.isBuffer(t)||typeof t=="string"}function fs(t){return SA(t)||(t=JSON.stringify(t)),t}function Ny(t){return function(n,r){AA(r),n=fs(n);var o=Pt.createHmac("sha"+t,r),s=(o.update(n),o.digest("base64"));return Hl(s)}}var ql,vA="timingSafeEqual"in Pt?function(e,n){return e.byteLength!==n.byteLength?!1:Pt.timingSafeEqual(e,n)}:function(e,n){return ql||(ql=Ry()),ql(e,n)};function TA(t){return function(n,r,o){var s=Ny(t)(n,o);return vA(yo.from(r),yo.from(s))}}function By(t){return function(n,r){Fy(r),n=fs(n);var o=Pt.createSign("RSA-SHA"+t),s=(o.update(n),o.sign(r,"base64"));return Hl(s)}}function My(t){return function(n,r,o){Py(o),n=fs(n),r=Iy(r);var s=Pt.createVerify("RSA-SHA"+t);return s.update(n),s.verify(o,r,"base64")}}function DA(t){return function(n,r){Fy(r),n=fs(n);var o=Pt.createSign("RSA-SHA"+t),s=(o.update(n),o.sign({key:r,padding:Pt.constants.RSA_PKCS1_PSS_PADDING,saltLength:Pt.constants.RSA_PSS_SALTLEN_DIGEST},"base64"));return Hl(s)}}function RA(t){return function(n,r,o){Py(o),n=fs(n),r=Iy(r);var s=Pt.createVerify("RSA-SHA"+t);return s.update(n),s.verify({key:o,padding:Pt.constants.RSA_PKCS1_PSS_PADDING,saltLength:Pt.constants.RSA_PSS_SALTLEN_DIGEST},r,"base64")}}function xA(t){var e=By(t);return function(){var r=e.apply(null,arguments);return r=Oy.derToJose(r,"ES"+t),r}}function OA(t){var e=My(t);return function(r,o,s){o=Oy.joseToDer(o,"ES"+t).toString("base64");var a=e(r,o,s);return a}}function PA(){return function(){return""}}function FA(){return function(e,n){return n===""}}Ly.exports=function(e){var n={hs:Ny,rs:By,ps:DA,es:xA,none:PA},r={hs:TA,rs:My,ps:RA,es:OA,none:FA},o=e.match(/^(RS|PS|ES|HS)(256|384|512)$|^(none)$/);if(!o)throw Kt(EA,e);var s=(o[1]||o[3]).toLowerCase(),a=o[2];return{sign:n[s](a),verify:r[s](a)}}});var Gl=X((vO,jy)=>{var IA=require("buffer").Buffer;jy.exports=function(e){return typeof e=="string"?e:typeof e=="number"||IA.isBuffer(e)?e.toString():JSON.stringify(e)}});var Wy=X((TO,Hy)=>{var NA=ho().Buffer,Uy=Ul(),BA=Wl(),MA=require("stream"),$y=Gl(),Jl=require("util");function qy(t,e){return NA.from(t,e).toString("base64").replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function LA(t,e,n){n=n||"utf8";var r=qy($y(t),"binary"),o=qy($y(e),n);return Jl.format("%s.%s",r,o)}function zy(t){var e=t.header,n=t.payload,r=t.secret||t.privateKey,o=t.encoding,s=BA(e.alg),a=LA(e,n,o),u=s.sign(a,r);return Jl.format("%s.%s",a,u)}function Sa(t){var e=t.secret||t.privateKey||t.key,n=new Uy(e);this.readable=!0,this.header=t.header,this.encoding=t.encoding,this.secret=this.privateKey=this.key=n,this.payload=new Uy(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))}Jl.inherits(Sa,MA);Sa.prototype.sign=function(){try{var e=zy({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")}};Sa.sign=zy;Hy.exports=Sa});var t0=X((DO,e0)=>{var Jy=ho().Buffer,Gy=Ul(),jA=Wl(),UA=require("stream"),Vy=Gl(),$A=require("util"),qA=/^[a-zA-Z0-9\-_]+?\.[a-zA-Z0-9\-_]+?\.([a-zA-Z0-9\-_]+)?$/;function zA(t){return Object.prototype.toString.call(t)==="[object Object]"}function HA(t){if(zA(t))return t;try{return JSON.parse(t)}catch{return}}function Ky(t){var e=t.split(".",1)[0];return HA(Jy.from(e,"base64").toString("binary"))}function WA(t){return t.split(".",2).join(".")}function Yy(t){return t.split(".")[2]}function GA(t,e){e=e||"utf8";var n=t.split(".")[1];return Jy.from(n,"base64").toString(e)}function Qy(t){return qA.test(t)&&!!Ky(t)}function Xy(t,e,n){if(!e){var r=new Error("Missing algorithm parameter for jws.verify");throw r.code="MISSING_ALGORITHM",r}t=Vy(t);var o=Yy(t),s=WA(t),a=jA(e);return a.verify(s,o,n)}function Zy(t,e){if(e=e||{},t=Vy(t),!Qy(t))return null;var n=Ky(t);if(!n)return null;var r=GA(t);return(n.typ==="JWT"||e.json)&&(r=JSON.parse(r,e.encoding)),{header:n,payload:r,signature:Yy(t)}}function _o(t){t=t||{};var e=t.secret||t.publicKey||t.key,n=new Gy(e);this.readable=!0,this.algorithm=t.algorithm,this.encoding=t.encoding,this.secret=this.publicKey=this.key=n,this.signature=new Gy(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))}$A.inherits(_o,UA);_o.prototype.verify=function(){try{var e=Xy(this.signature.buffer,this.algorithm,this.key.buffer),n=Zy(this.signature.buffer,this.encoding);return this.emit("done",e,n),this.emit("data",e),this.emit("end"),this.readable=!1,e}catch(r){this.readable=!1,this.emit("error",r),this.emit("close")}};_o.decode=Zy;_o.isValid=Qy;_o.verify=Xy;e0.exports=_o});var Vl=X(Xn=>{var n0=Wy(),va=t0(),JA=["HS256","HS384","HS512","RS256","RS384","RS512","PS256","PS384","PS512","ES256","ES384","ES512"];Xn.ALGORITHMS=JA;Xn.sign=n0.sign;Xn.verify=va.verify;Xn.decode=va.decode;Xn.isValid=va.isValid;Xn.createSign=function(e){return new n0(e)};Xn.createVerify=function(e){return new va(e)}});var y0=X(Da=>{"use strict";Object.defineProperty(Da,"__esModule",{value:!0});Da.GoogleToken=void 0;var r0=Ta(require("fs")),VA=Xe(),KA=Ta(Vl()),YA=Ta(require("path")),QA=require("util");function Ta(t,e){if(typeof WeakMap=="function")var n=new WeakMap,r=new WeakMap;return(Ta=function(s,a){if(!a&&s&&s.__esModule)return s;var u,l,d={__proto__:null,default:s};if(s===null||Fn(s)!="object"&&typeof s!="function")return d;if(u=a?r:n){if(u.has(s))return u.get(s);u.set(s,d)}for(var f in s)f!=="default"&&{}.hasOwnProperty.call(s,f)&&((l=(u=Object.defineProperty)&&Object.getOwnPropertyDescriptor(s,f))&&(l.get||l.set)?u(d,f,l):d[f]=s[f]);return d})(t,e)}function Fn(t){"@babel/helpers - typeof";return Fn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Fn(t)}function XA(t,e){f0(t,e),e.add(t)}function ZA(t,e,n){f0(t,e),e.set(t,n)}function f0(t,e){if(e.has(t))throw new TypeError("Cannot initialize the same private elements twice on an object")}function o0(t,e,n){return t.set(Yt(t,e),n),n}function s0(t,e){return t.get(Yt(t,e))}function Yt(t,e,n){if(typeof t=="function"?t===e:t.has(e))return arguments.length<3?e:n;throw new TypeError("Private element is not present on this object")}function i0(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,m0(r.key),r)}}function h0(t,e,n){return e&&i0(t.prototype,e),n&&i0(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function p0(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function eS(t,e,n){return e=gs(e),tS(t,ed()?Reflect.construct(e,n||[],gs(t).constructor):e.apply(t,n))}function tS(t,e){if(e&&(Fn(e)=="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return nS(t)}function nS(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function rS(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&ms(t,e)}function Kl(t){var e=typeof Map=="function"?new Map:void 0;return Kl=function(r){if(r===null||!sS(r))return r;if(typeof r!="function")throw new TypeError("Super expression must either be null or a function");if(e!==void 0){if(e.has(r))return e.get(r);e.set(r,o)}function o(){return oS(r,arguments,gs(this).constructor)}return o.prototype=Object.create(r.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),ms(o,r)},Kl(t)}function oS(t,e,n){if(ed())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,e);var o=new(t.bind.apply(t,r));return n&&ms(o,n.prototype),o}function ed(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(ed=function(){return!!t})()}function sS(t){try{return Function.toString.call(t).indexOf("[native code]")!==-1}catch{return typeof t=="function"}}function ms(t,e){return ms=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,r){return n.__proto__=r,n},ms(t,e)}function gs(t){return gs=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},gs(t)}function wt(t,e,n){return(e=m0(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function m0(t){var e=iS(t,"string");return Fn(e)=="symbol"?e:e+""}function iS(t,e){if(Fn(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(Fn(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function kt(){var t,e,n=typeof Symbol=="function"?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function s(b,w,y,g){var _=w&&w.prototype instanceof u?w:u,A=Object.create(_.prototype);return Et(A,"_invoke",(function(C,S,T){var R,$,V,P=0,Y=T||[],z=!1,K={p:0,n:0,v:t,a:Q,f:Q.bind(t,4),d:function(ie,oe){return R=ie,$=0,V=t,K.n=oe,a}};function Q(ee,ie){for($=ee,V=ie,e=0;!z&&P&&!oe&&e<Y.length;e++){var oe,pe=Y[e],G=K.p,Z=pe[2];ee>3?(oe=Z===ie)&&(V=pe[($=pe[4])?5:($=3,3)],pe[4]=pe[5]=t):pe[0]<=G&&((oe=ee<2&&G<pe[1])?($=0,K.v=ie,K.n=pe[1]):G<Z&&(oe=ee<3||pe[0]>ie||ie>Z)&&(pe[4]=ee,pe[5]=ie,K.n=Z,$=0))}if(oe||ee>1)return a;throw z=!0,ie}return function(ee,ie,oe){if(P>1)throw TypeError("Generator is already running");for(z&&ie===1&&Q(ie,oe),$=ie,V=oe;(e=$<2?t:V)||!z;){R||($?$<3?($>1&&(K.n=-1),Q($,V)):K.n=V:K.v=V);try{if(P=2,R){if($||(ee="next"),e=R[ee]){if(!(e=e.call(R,V)))throw TypeError("iterator result is not an object");if(!e.done)return e;V=e.value,$<2&&($=0)}else $===1&&(e=R.return)&&e.call(R),$<2&&(V=TypeError("The iterator does not provide a '"+ee+"' method"),$=1);R=t}else if((e=(z=K.n<0)?V:C.call(S,K))!==a)break}catch(pe){R=t,$=1,V=pe}finally{P=1}}return{value:e,done:z}}})(b,y,g),!0),A}var a={};function u(){}function l(){}function d(){}e=Object.getPrototypeOf;var f=[][r]?e(e([][r]())):(Et(e={},r,function(){return this}),e),p=d.prototype=u.prototype=Object.create(f);function m(b){return Object.setPrototypeOf?Object.setPrototypeOf(b,d):(b.__proto__=d,Et(b,o,"GeneratorFunction")),b.prototype=Object.create(p),b}return l.prototype=d,Et(p,"constructor",d),Et(d,"constructor",l),l.displayName="GeneratorFunction",Et(d,o,"GeneratorFunction"),Et(p),Et(p,o,"Generator"),Et(p,r,function(){return this}),Et(p,"toString",function(){return"[object Generator]"}),(kt=function(){return{w:s,m}})()}function Et(t,e,n,r){var o=Object.defineProperty;try{o({},"",{})}catch{o=0}Et=function(a,u,l,d){if(u)o?o(a,u,{value:l,enumerable:!d,configurable:!d,writable:!d}):a[u]=l;else{var f=function(m,b){Et(a,m,function(w){return this._invoke(m,b,w)})};f("next",0),f("throw",1),f("return",2)}},Et(t,e,n,r)}function a0(t,e,n,r,o,s,a){try{var u=t[s](a),l=u.value}catch(d){return void n(d)}u.done?e(l):Promise.resolve(l).then(r,o)}function bo(t){return function(){var e=this,n=arguments;return new Promise(function(r,o){var s=t.apply(e,n);function a(l){a0(s,r,o,a,u,"next",l)}function u(l){a0(s,r,o,a,u,"throw",l)}a(void 0)})}}var u0=r0.readFile?(0,QA.promisify)(r0.readFile):bo(kt().m(function t(){return kt().w(function(e){for(;;)switch(e.n){case 0:throw new ps("use key rather than keyFile.","MISSING_CREDENTIALS");case 1:return e.a(2)}},t)})),c0="https://oauth2.googleapis.com/token",aS="https://oauth2.googleapis.com/revoke?token=",ps=(function(t){function e(n,r){var o;return p0(this,e),o=eS(this,e,[n]),wt(o,"code",void 0),o.code=r,o}return rS(e,t),h0(e)})(Kl(Error)),hs=new WeakMap,an=new WeakSet,xO=Da.GoogleToken=(function(){function t(e){p0(this,t),XA(this,an),wt(this,"expiresAt",void 0),wt(this,"key",void 0),wt(this,"keyFile",void 0),wt(this,"iss",void 0),wt(this,"sub",void 0),wt(this,"scope",void 0),wt(this,"rawToken",void 0),wt(this,"tokenExpires",void 0),wt(this,"email",void 0),wt(this,"additionalClaims",void 0),wt(this,"eagerRefreshThresholdMillis",void 0),wt(this,"transporter",{request:function(r){return(0,VA.request)(r)}}),ZA(this,hs,void 0),Yt(an,this,g0).call(this,e)}return h0(t,[{key:"accessToken",get:function(){return this.rawToken?this.rawToken.access_token:void 0}},{key:"idToken",get:function(){return this.rawToken?this.rawToken.id_token:void 0}},{key:"tokenType",get:function(){return this.rawToken?this.rawToken.token_type:void 0}},{key:"refreshToken",get:function(){return this.rawToken?this.rawToken.refresh_token:void 0}},{key:"hasExpired",value:function(){var n=new Date().getTime();return this.rawToken&&this.expiresAt?n>=this.expiresAt:!0}},{key:"isTokenExpiring",value:function(){var n,r=new Date().getTime(),o=(n=this.eagerRefreshThresholdMillis)!==null&&n!==void 0?n:0;return this.rawToken&&this.expiresAt?this.expiresAt<=r+o:!0}},{key:"getToken",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(Fn(n)==="object"&&(r=n,n=void 0),r=Object.assign({forceRefresh:!1},r),n){var o=n;Yt(an,this,l0).call(this,r).then(function(s){return o(null,s)},n);return}return Yt(an,this,l0).call(this,r)}},{key:"getCredentials",value:(function(){var e=bo(kt().m(function r(o){var s,a,u,l,d,f,p;return kt().w(function(m){for(;;)switch(m.n){case 0:s=YA.extname(o),p=s,m.n=p===".json"?1:p===".der"||p===".crt"||p===".pem"?4:p===".p12"||p===".pfx"?6:7;break;case 1:return m.n=2,u0(o,"utf8");case 2:if(a=m.v,u=JSON.parse(a),l=u.private_key,d=u.client_email,!(!l||!d)){m.n=3;break}throw new ps("private_key and client_email are required.","MISSING_CREDENTIALS");case 3:return m.a(2,{privateKey:l,clientEmail:d});case 4:return m.n=5,u0(o,"utf8");case 5:return f=m.v,m.a(2,{privateKey:f});case 6:throw new ps("*.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");case 7:throw new ps("Unknown certificate type. Type is determined based on file extension. Current supported extensions are *.json, and *.pem.","UNKNOWN_CERTIFICATE_TYPE");case 8:return m.a(2)}},r)}));function n(r){return e.apply(this,arguments)}return n})()},{key:"revokeToken",value:function(n){if(n){Yt(an,this,d0).call(this).then(function(){return n()},n);return}return Yt(an,this,d0).call(this)}}])})();function l0(t){return Yl.apply(this,arguments)}function Yl(){return Yl=bo(kt().m(function t(e){return kt().w(function(n){for(;;)switch(n.n){case 0:if(!(s0(hs,this)&&!e.forceRefresh)){n.n=1;break}return n.a(2,s0(hs,this));case 1:return n.p=1,n.n=2,o0(hs,this,Yt(an,this,uS).call(this,e));case 2:return n.a(2,n.v);case 3:return n.p=3,o0(hs,this,void 0),n.f(3);case 4:return n.a(2)}},t,this,[[1,,3,4]])})),Yl.apply(this,arguments)}function uS(t){return Ql.apply(this,arguments)}function Ql(){return Ql=bo(kt().m(function t(e){var n;return kt().w(function(r){for(;;)switch(r.n){case 0:if(!(this.isTokenExpiring()===!1&&e.forceRefresh===!1)){r.n=1;break}return r.a(2,Promise.resolve(this.rawToken));case 1:if(!(!this.key&&!this.keyFile)){r.n=2;break}throw new Error("No key or keyFile set.");case 2:if(!(!this.key&&this.keyFile)){r.n=4;break}return r.n=3,this.getCredentials(this.keyFile);case 3:n=r.v,this.key=n.privateKey,this.iss=n.clientEmail||this.iss,n.clientEmail||Yt(an,this,cS).call(this);case 4:return r.a(2,Yt(an,this,lS).call(this))}},t,this)})),Ql.apply(this,arguments)}function cS(){if(!this.iss)throw new ps("email is required.","MISSING_CREDENTIALS")}function d0(){return Xl.apply(this,arguments)}function Xl(){return Xl=bo(kt().m(function t(){var e;return kt().w(function(n){for(;;)switch(n.n){case 0:if(this.accessToken){n.n=1;break}throw new Error("No token to revoke.");case 1:return e=aS+this.accessToken,n.n=2,this.transporter.request({url:e,retry:!0});case 2:Yt(an,this,g0).call(this,{email:this.iss,sub:this.sub,key:this.key,keyFile:this.keyFile,scope:this.scope,additionalClaims:this.additionalClaims});case 3:return n.a(2)}},t,this)})),Xl.apply(this,arguments)}function g0(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.keyFile=t.keyFile,this.key=t.key,this.rawToken=void 0,this.iss=t.email||t.iss,this.sub=t.sub,this.additionalClaims=t.additionalClaims,Fn(t.scope)==="object"?this.scope=t.scope.join(" "):this.scope=t.scope,this.eagerRefreshThresholdMillis=t.eagerRefreshThresholdMillis,t.transporter&&(this.transporter=t.transporter)}function lS(){return Zl.apply(this,arguments)}function Zl(){return Zl=bo(kt().m(function t(){var e,n,r,o,s,a,u,l,d,f;return kt().w(function(p){for(;;)switch(p.n){case 0:return e=Math.floor(new Date().getTime()/1e3),n=this.additionalClaims||{},r=Object.assign({iss:this.iss,scope:this.scope,aud:c0,exp:e+3600,iat:e,sub:this.sub},n),o=KA.sign({header:{alg:"RS256"},payload:r,secret:this.key}),p.p=1,p.n=2,this.transporter.request({method:"POST",url:c0,data:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:o}),responseType:"json",retryConfig:{httpMethodsToRetry:["POST"]}});case 2:return s=p.v,this.rawToken=s.data,this.expiresAt=s.data.expires_in===null||s.data.expires_in===void 0?void 0:(e+s.data.expires_in)*1e3,p.a(2,this.rawToken);case 3:throw p.p=3,f=p.v,this.rawToken=void 0,this.tokenExpires=void 0,l=f.response&&(a=f.response)!==null&&a!==void 0&&a.data?(u=f.response)===null||u===void 0?void 0:u.data:{},l.error&&(d=l.error_description?": ".concat(l.error_description):"",f.message="".concat(l.error).concat(d)),f;case 4:return p.a(2)}},t,this,[[1,3]])})),Zl.apply(this,arguments)}});var nd=X(Ra=>{"use strict";Object.defineProperty(Ra,"__esModule",{value:!0});Ra.JWTAccess=void 0;var dS=Vl(),fS=Jt(),_0={alg:"RS256",typ:"JWT"},td=class t{email;key;keyId;projectId;eagerRefreshThresholdMillis;cache=new fS.LRUCache({capacity:500,maxAge:3600*1e3});constructor(e,n,r,o){this.email=e,this.key=n,this.keyId=r,this.eagerRefreshThresholdMillis=o??300*1e3}getCachedKey(e,n){let r=e;if(n&&Array.isArray(n)&&n.length?r=e?`${e}_${n.join("_")}`:`${n.join("_")}`:typeof n=="string"&&(r=e?`${e}_${n}`:n),!r)throw Error("Scopes or url must be provided");return r}getRequestHeaders(e,n,r){let o=this.getCachedKey(e,r),s=this.cache.get(o),a=Date.now();if(s&&s.expiration-a>this.eagerRefreshThresholdMillis)return new Headers(s.headers);let u=Math.floor(Date.now()/1e3),l=t.getExpirationTime(u),d;if(Array.isArray(r)&&(r=r.join(" ")),r?d={iss:this.email,sub:this.email,scope:r,exp:l,iat:u}:d={iss:this.email,sub:this.email,aud:e,exp:l,iat:u},n){for(let w in d)if(n[w])throw new Error(`The '${w}' property is not allowed when passing additionalClaims. This claim is included in the JWT by default.`)}let f=this.keyId?{..._0,kid:this.keyId}:_0,p=Object.assign(d,n),m=dS.sign({header:f,payload:p,secret:this.key}),b=new Headers({authorization:`Bearer ${m}`});return this.cache.set(o,{expiration:l*1e3,headers:b}),b}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,r)=>{e||r(new Error("Must pass in a stream containing the service account auth settings."));let o="";e.setEncoding("utf8").on("data",s=>o+=s).on("error",r).on("end",()=>{try{let s=JSON.parse(o);this.fromJSON(s),n()}catch(s){r(s)}})})}};Ra.JWTAccess=td});var od=X(Oa=>{"use strict";Object.defineProperty(Oa,"__esModule",{value:!0});Oa.JWT=void 0;var b0=y0(),hS=nd(),pS=Tr(),xa=Ct(),rd=class t extends pS.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!==xa.DEFAULT_UNIVERSE;if(this.subject&&this.universeDomain!==xa.DEFAULT_UNIVERSE)throw new RangeError(`Service Account user is configured for the credential. Domain-wide delegation is not supported in universes other than ${xa.DEFAULT_UNIVERSE}`);if(!this.apiKey&&n)if(this.additionalClaims&&this.additionalClaims.target_audience){let{tokens:r}=await this.refreshToken();return{headers:this.addSharedMetadataHeaders(new Headers({authorization:`Bearer ${r.id_token}`}))}}else{this.access||(this.access=new hS.JWTAccess(this.email,this.key,this.keyId,this.eagerRefreshThresholdMillis));let r;this.hasUserScopes()?r=this.scopes:e||(r=this.defaultScopes);let o=this.useJWTAccessWithScope||this.universeDomain!==xa.DEFAULT_UNIVERSE,s=await this.access.getRequestHeaders(e??void 0,this.additionalClaims,o?r:void 0);return{headers:this.addSharedMetadataHeaders(s)}}else return this.hasAnyScopes()||this.apiKey?super.getRequestMetadataAsync(e):{headers:new Headers}}async fetchIdToken(e){let n=new b0.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.key,this.email=this.gtoken.iss,e.tokens}async refreshTokenNoCache(){let e=this.createGToken(),r={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",r),{res:null,tokens:r}}createGToken(){return this.gtoken||(this.gtoken=new b0.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,r)=>{if(!e)throw new Error("Must pass in a stream containing the service account auth settings.");let o="";e.setEncoding("utf8").on("error",r).on("data",s=>o+=s).on("end",()=>{try{let s=JSON.parse(o);this.fromJSON(s),n()}catch(s){r(s)}})})}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 n=await this.createGToken().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.")}};Oa.JWT=rd});var id=X(Co=>{"use strict";Object.defineProperty(Co,"__esModule",{value:!0});Co.UserRefreshClient=Co.USER_REFRESH_ACCOUNT_TYPE=void 0;var mS=Tr(),gS=Ct();Co.USER_REFRESH_ACCOUNT_TYPE="authorized_user";var sd=class t extends mS.OAuth2Client{_refreshToken;constructor(e,n,r,o,s){let a=e&&typeof e=="object"?e:{clientId:e,clientSecret:n,refreshToken:r,eagerRefreshThresholdMillis:o,forceRefreshOnFailure:s};super(a),this._refreshToken=a.refreshToken,this.credentials.refresh_token=a.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})};return gS.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,r)=>{if(!e)return r(new Error("Must pass in a stream containing the user refresh token."));let o="";e.setEncoding("utf8").on("error",r).on("data",s=>o+=s).on("end",()=>{try{let s=JSON.parse(o);return this.fromJSON(s),n()}catch(s){return r(s)}})})}static fromJSON(e){let n=new t;return n.fromJSON(e),n}};Co.UserRefreshClient=sd});var ud=X(wo=>{"use strict";Object.defineProperty(wo,"__esModule",{value:!0});wo.Impersonated=wo.IMPERSONATED_ACCOUNT_TYPE=void 0;var C0=Tr(),yS=Xe(),_S=Jt();wo.IMPERSONATED_ACCOUNT_TYPE="impersonated_service_account";var ad=class t extends C0.OAuth2Client{sourceClient;targetPrincipal;targetScopes;delegates;lifetime;endpoint;constructor(e={}){if(super(e),console.warn("The `Impersonated` constructor does not validate the credential configuration. A security risk occurs when a credential configuration configured with malicious URLs is used. When the credential configuration is accepted from an untrusted source, you should validate it before using it with this method. For more details, see https://cloud.google.com/docs/authentication/external/externally-sourced-credentials."),this.credentials={expiry_date:1,refresh_token:"impersonated-placeholder"},this.sourceClient=e.sourceClient??new C0.OAuth2Client,this.targetPrincipal=e.targetPrincipal??"",this.delegates=e.delegates??[],this.targetScopes=e.targetScopes??[],this.lifetime=e.lifetime??3600,!!!(0,_S.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}`,r=`${this.endpoint}/v1/${n}:signBlob`,o={delegates:this.delegates,payload:Buffer.from(e).toString("base64")};return(await this.sourceClient.request({...t.RETRY_CONFIG,url:r,data:o,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`,r={delegates:this.delegates,scope:this.targetScopes,lifetime:this.lifetime+"s"},o=await this.sourceClient.request({...t.RETRY_CONFIG,url:n,data:r,method:"POST"}),s=o.data;return this.credentials.access_token=s.accessToken,this.credentials.expiry_date=Date.parse(s.expireTime),{tokens:this.credentials,res:o}}catch(e){if(!(e instanceof Error))throw e;let n=0,r="";throw e instanceof yS.GaxiosError&&(n=e?.response?.data?.error?.status,r=e?.response?.data?.error?.message),n&&r?(e.message=`${n}: unable to impersonate: ${r}`,e):(e.message=`unable to impersonate: ${e}`,e)}}async fetchIdToken(e,n){await this.sourceClient.getAccessToken();let r=`projects/-/serviceAccounts/${this.targetPrincipal}`,o=`${this.endpoint}/v1/${r}:generateIdToken`,s={delegates:this.delegates,audience:e,includeEmail:n?.includeEmail??!0,useEmailAzp:n?.includeEmail??!0};return(await this.sourceClient.request({...t.RETRY_CONFIG,url:o,data:s,method:"POST"})).data.token}};wo.Impersonated=ad});var ld=X(ys=>{"use strict";Object.defineProperty(ys,"__esModule",{value:!0});ys.OAuthClientAuthHandler=void 0;ys.getErrorFromOAuthErrorResponse=wS;var Eo=Xe(),bS=as(),CS=["PUT","POST","PATCH"],cd=class{#e=(0,bS.createCrypto)();#t;transporter;constructor(e){e&&"clientId"in e?(this.#t=e,this.transporter=new Eo.Gaxios):(this.#t=e?.clientAuthentication,this.transporter=e?.transporter||new Eo.Gaxios)}applyClientAuthenticationOptions(e,n){e.headers=Eo.Gaxios.mergeHeaders(e.headers),this.injectAuthenticatedHeaders(e,n),n||this.injectAuthenticatedRequestBody(e)}injectAuthenticatedHeaders(e,n){if(n)e.headers=Eo.Gaxios.mergeHeaders(e.headers,{authorization:`Bearer ${n}`});else if(this.#t?.confidentialClientType==="basic"){e.headers=Eo.Gaxios.mergeHeaders(e.headers);let r=this.#t.clientId,o=this.#t.clientSecret||"",s=this.#e.encodeBase64StringUtf8(`${r}:${o}`);Eo.Gaxios.mergeHeaders(e.headers,{authorization:`Basic ${s}`})}}injectAuthenticatedRequestBody(e){if(this.#t?.confidentialClientType==="request-body"){let n=(e.method||"GET").toUpperCase();if(!CS.includes(n))throw new Error(`${n} HTTP method does not support ${this.#t.confidentialClientType} client authentication`);let o=new Headers(e.headers).get("content-type");if(o?.startsWith("application/x-www-form-urlencoded")||e.data instanceof URLSearchParams){let s=new URLSearchParams(e.data??"");s.append("client_id",this.#t.clientId),s.append("client_secret",this.#t.clientSecret||""),e.data=s}else if(o?.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(`${o} 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"]}}}};ys.OAuthClientAuthHandler=cd;function wS(t,e){let n=t.error,r=t.error_description,o=t.error_uri,s=`Error code ${n}`;typeof r<"u"&&(s+=`: ${r}`),typeof o<"u"&&(s+=` - ${o}`);let a=new Error(s);if(e){let u=Object.keys(e);e.stack&&u.push("stack"),u.forEach(l=>{l!=="message"&&Object.defineProperty(a,l,{value:e[l],writable:!1,enumerable:!0})})}return a}});var Fa=X(Pa=>{"use strict";Object.defineProperty(Pa,"__esModule",{value:!0});Pa.StsCredentials=void 0;var ES=Xe(),kS=Ct(),w0=ld(),AS=Jt(),dd=class t extends w0.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,r){let o={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:r&&JSON.stringify(r)},s={...t.RETRY_CONFIG,url:this.#e.toString(),method:"POST",headers:n,data:new URLSearchParams((0,AS.removeUndefinedValuesInObject)(o))};kS.AuthClient.setMethodName(s,"exchangeToken"),this.applyClientAuthenticationOptions(s);try{let a=await this.transporter.request(s),u=a.data;return u.res=a,u}catch(a){throw a instanceof ES.GaxiosError&&a.response?(0,w0.getErrorFromOAuthErrorResponse)(a.response.data,a):a}}};Pa.StsCredentials=dd});var Zn=X(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});Ft.BaseExternalAccountClient=Ft.CLOUD_RESOURCE_MANAGER=Ft.EXTERNAL_ACCOUNT_TYPE=Ft.EXPIRATION_TIME_OFFSET=void 0;var SS=Xe(),vS=require("stream"),fd=Ct(),TS=Fa(),E0=Jt(),DS=Tl(),RS="urn:ietf:params:oauth:grant-type:token-exchange",xS="urn:ietf:params:oauth:token-type:access_token",hd="https://www.googleapis.com/auth/cloud-platform",OS=3600;Ft.EXPIRATION_TIME_OFFSET=300*1e3;Ft.EXTERNAL_ACCOUNT_TYPE="external_account";Ft.CLOUD_RESOURCE_MANAGER="https://cloudresourcemanager.googleapis.com/v1/projects/";var PS="//iam\\.googleapis\\.com/locations/[^/]+/workforcePools/[^/]+/providers/.+",FS="https://sts.{universeDomain}/v1/token",pd=class t extends fd.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,E0.originalOrCamelOptions)(e),r=n.get("type");if(r&&r!==Ft.EXTERNAL_ACCOUNT_TYPE)throw new Error(`Expected "${Ft.EXTERNAL_ACCOUNT_TYPE}" type but received "${e.type}"`);let o=n.get("client_id"),s=n.get("client_secret");this.tokenUrl=n.get("token_url")??FS.replace("{universeDomain}",this.universeDomain);let a=n.get("subject_token_type"),u=n.get("workforce_pool_user_project"),l=n.get("service_account_impersonation_url"),d=n.get("service_account_impersonation"),f=(0,E0.originalOrCamelOptions)(d).get("token_lifetime_seconds");this.cloudResourceManagerURL=new URL(n.get("cloud_resource_manager_url")||`https://cloudresourcemanager.${this.universeDomain}/v1/projects/`),o&&(this.clientAuth={confidentialClientType:"basic",clientId:o,clientSecret:s}),this.stsCredential=new TS.StsCredentials({tokenExchangeEndpoint:this.tokenUrl,clientAuthentication:this.clientAuth}),this.scopes=n.get("scopes")||[hd],this.cachedAccessToken=null,this.audience=n.get("audience"),this.subjectTokenType=a,this.workforcePoolUserProject=u;let p=new RegExp(PS);if(this.workforcePoolUserProject&&!this.audience.match(p))throw new Error("workforcePoolUserProject should not be set for non-workforce pool credentials.");this.serviceAccountImpersonationUrl=l,this.serviceAccountImpersonationLifetime=f,this.serviceAccountImpersonationLifetime?this.configLifetimeRequested=!0:(this.configLifetimeRequested=!1,this.serviceAccountImpersonationLifetime=OS),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(r=>n(null,r),r=>n(r,r.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(),r={...t.RETRY_CONFIG,headers:n,url:`${this.cloudResourceManagerURL.toString()}${e}`};fd.AuthClient.setMethodName(r,"getProjectId");let o=await this.transporter.request(r);return this.projectId=o.data.projectId,this.projectId}return null}async requestAsync(e,n=!1){let r;try{let o=await this.getRequestHeaders();e.headers=SS.Gaxios.mergeHeaders(e.headers),this.addUserProjectAndAuthHeaders(e.headers,o),r=await this.transporter.request(e)}catch(o){let s=o.response;if(s){let a=s.status,u=s.config.data instanceof vS.Readable;if(!n&&(a===401||a===403)&&!u&&this.forceRefreshOnFailure)return await this.refreshAccessTokenAsync(),await this.requestAsync(e,!0)}throw o}return r}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:RS,audience:this.audience,requestedTokenType:xS,subjectToken:e,subjectTokenType:this.subjectTokenType,scope:this.serviceAccountImpersonationUrl?[hd]:this.getScopesArray()},r=!this.clientAuth&&this.workforcePoolUserProject?{userProject:this.workforcePoolUserProject}:void 0,o=new Headers({"x-goog-api-client":this.getMetricsHeaderValue()}),s=await this.stsCredential.exchangeToken(n,o,r);return this.serviceAccountImpersonationUrl?this.cachedAccessToken=await this.getImpersonatedAccessToken(s.access_token):s.expires_in?this.cachedAccessToken={access_token:s.access_token,expiry_date:new Date().getTime()+s.expires_in*1e3,res:s.res}:this.cachedAccessToken={access_token:s.access_token,res:s.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"}};fd.AuthClient.setMethodName(n,"getImpersonatedAccessToken");let r=await this.transporter.request(n),o=r.data;return{access_token:o.accessToken,expiry_date:new Date(o.expireTime).getTime(),res:r}}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||[hd]}getMetricsHeaderValue(){let e=process.version.replace(/^v/,""),n=this.serviceAccountImpersonationUrl!==void 0,r=this.credentialSourceType?this.credentialSourceType:"unknown";return`gl-node/${e} auth/${DS.pkg.version} google-byoid-sdk source/${r} sa-impersonation/${n} config-lifetime/${this.configLifetimeRequested}`}getTokenUrl(){return this.tokenUrl}};Ft.BaseExternalAccountClient=pd});var k0=X(Ia=>{"use strict";Object.defineProperty(Ia,"__esModule",{value:!0});Ia.FileSubjectTokenSupplier=void 0;var gd=require("util"),yd=require("fs"),IS=(0,gd.promisify)(yd.readFile??(()=>{})),NS=(0,gd.promisify)(yd.realpath??(()=>{})),BS=(0,gd.promisify)(yd.lstat??(()=>{})),md=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 NS(e),!(await BS(e)).isFile())throw new Error}catch(o){throw o instanceof Error&&(o.message=`The file at ${e} does not exist, or it is not a file. ${o.message}`),o}let n,r=await IS(e,{encoding:"utf8"});if(this.formatType==="text"?n=r:this.formatType==="json"&&this.subjectTokenFieldName&&(n=JSON.parse(r)[this.subjectTokenFieldName]),!n)throw new Error("Unable to parse the subject_token from the credential_source file");return n}};Ia.FileSubjectTokenSupplier=md});var A0=X(Na=>{"use strict";Object.defineProperty(Na,"__esModule",{value:!0});Na.UrlSubjectTokenSupplier=void 0;var MS=Ct(),_d=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};MS.AuthClient.setMethodName(n,"getSubjectToken");let r;if(this.formatType==="text"?r=(await e.transporter.request(n)).data:this.formatType==="json"&&this.subjectTokenFieldName&&(r=(await e.transporter.request(n)).data[this.subjectTokenFieldName]),!r)throw new Error("Unable to parse the subject_token from the credential_source URL");return r}};Na.UrlSubjectTokenSupplier=_d});var S0=X(At=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});At.CertificateSubjectTokenSupplier=At.InvalidConfigurationError=At.CertificateSourceUnavailableError=At.CERTIFICATE_CONFIGURATION_ENV_VARIABLE=void 0;var Ba=Jt(),Ma=require("fs"),La=require("crypto"),LS=require("https");At.CERTIFICATE_CONFIGURATION_ENV_VARIABLE="GOOGLE_API_CERTIFICATE_CONFIG";var un=class extends Error{constructor(e){super(e),this.name="CertificateSourceUnavailableError"}};At.CertificateSourceUnavailableError=un;var It=class extends Error{constructor(e){super(e),this.name="InvalidConfigurationError"}};At.InvalidConfigurationError=It;var bd=class{certificateConfigPath;trustChainPath;cert;key;constructor(e){if(!e.useDefaultCertificateConfig&&!e.certificateConfigLocation)throw new It("Either `useDefaultCertificateConfig` must be true or a `certificateConfigLocation` must be provided.");if(e.useDefaultCertificateConfig&&e.certificateConfigLocation)throw new It("Both `useDefaultCertificateConfig` and `certificateConfigLocation` cannot be provided.");this.trustChainPath=e.trustChainPath,this.certificateConfigPath=e.certificateConfigLocation??""}async createMtlsHttpsAgent(){if(!this.key||!this.cert)throw new It("Cannot create mTLS Agent with missing certificate or key");return new LS.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.#r(this.cert)}async#e(){let e=this.certificateConfigPath;if(e){if(await(0,Ba.isValidFile)(e))return e;throw new un(`Provided certificate config path is invalid: ${e}`)}let n=process.env[At.CERTIFICATE_CONFIGURATION_ENV_VARIABLE];if(n){if(await(0,Ba.isValidFile)(n))return n;throw new un(`Path from environment variable "${At.CERTIFICATE_CONFIGURATION_ENV_VARIABLE}" is invalid: ${n}`)}let r=(0,Ba.getWellKnownCertificateConfigFileLocation)();if(await(0,Ba.isValidFile)(r))return r;throw new un(`Could not find certificate configuration file. Searched override path, the "${At.CERTIFICATE_CONFIGURATION_ENV_VARIABLE}" env var, and the gcloud path (${r}).`)}async#t(){let e=this.certificateConfigPath,n;try{n=await Ma.promises.readFile(e,"utf8")}catch{throw new un(`Failed to read certificate config file at: ${e}`)}try{let r=JSON.parse(n),o=r?.cert_configs?.workload?.cert_path,s=r?.cert_configs?.workload?.key_path;if(!o||!s)throw new It(`Certificate config file (${e}) is missing required "cert_path" or "key_path" in the workload config.`);return{certPath:o,keyPath:s}}catch(r){throw r instanceof It?r:new It(`Failed to parse certificate config from ${e}: ${r.message}`)}}async#n(e,n){let r,o;try{r=await Ma.promises.readFile(e),new La.X509Certificate(r)}catch(s){let a=s instanceof Error?s.message:String(s);throw new un(`Failed to read certificate file at ${e}: ${a}`)}try{o=await Ma.promises.readFile(n),(0,La.createPrivateKey)(o)}catch(s){let a=s instanceof Error?s.message:String(s);throw new un(`Failed to read private key file at ${n}: ${a}`)}return{cert:r,key:o}}async#r(e){let n=new La.X509Certificate(e);if(!this.trustChainPath)return JSON.stringify([n.raw.toString("base64")]);try{let s=((await Ma.promises.readFile(this.trustChainPath,"utf8")).match(/-----BEGIN CERTIFICATE-----[^-]+-----END CERTIFICATE-----/g)??[]).map((l,d)=>{try{return new La.X509Certificate(l)}catch(f){let p=f instanceof Error?f.message:String(f);throw new It(`Failed to parse certificate at index ${d} in trust chain file ${this.trustChainPath}: ${p}`)}}),a=s.findIndex(l=>n.raw.equals(l.raw)),u;if(a===-1)u=[n,...s];else if(a===0)u=s;else throw new It(`Leaf certificate exists in the trust chain but is not the first entry (found at index ${a}).`);return JSON.stringify(u.map(l=>l.raw.toString("base64")))}catch(r){if(r instanceof It)throw r;let o=r instanceof Error?r.message:String(r);throw new un(`Failed to process certificate chain from ${this.trustChainPath}: ${o}`)}}};At.CertificateSubjectTokenSupplier=bd});var Ed=X(ja=>{"use strict";Object.defineProperty(ja,"__esModule",{value:!0});ja.IdentityPoolClient=void 0;var jS=Zn(),Cd=Jt(),US=k0(),$S=A0(),v0=S0(),qS=Fa(),T0=Xe(),wd=class t extends jS.BaseExternalAccountClient{subjectTokenSupplier;constructor(e){super(e);let n=(0,Cd.originalOrCamelOptions)(e),r=n.get("credential_source"),o=n.get("subject_token_supplier");if(!r&&!o)throw new Error("A credential source or subject token supplier must be specified.");if(r&&o)throw new Error("Only one of credential source or subject token supplier can be specified.");if(o)this.subjectTokenSupplier=o,this.credentialSourceType="programmatic";else{let s=(0,Cd.originalOrCamelOptions)(r),a=(0,Cd.originalOrCamelOptions)(s.get("format")),u=a.get("type")||"text",l=a.get("subject_token_field_name");if(u!=="json"&&u!=="text")throw new Error(`Invalid credential_source format "${u}"`);if(u==="json"&&!l)throw new Error("Missing subject_token_field_name for JSON credential_source format");let d=s.get("file"),f=s.get("url"),p=s.get("certificate"),m=s.get("headers");if(d&&f||f&&p||d&&p)throw new Error('No valid Identity Pool "credential_source" provided, must be either file, url, or certificate.');if(d)this.credentialSourceType="file",this.subjectTokenSupplier=new US.FileSubjectTokenSupplier({filePath:d,formatType:u,subjectTokenFieldName:l});else if(f)this.credentialSourceType="url",this.subjectTokenSupplier=new $S.UrlSubjectTokenSupplier({url:f,formatType:u,subjectTokenFieldName:l,headers:m,additionalGaxiosOptions:t.RETRY_CONFIG});else if(p){this.credentialSourceType="certificate";let b=new v0.CertificateSubjectTokenSupplier({useDefaultCertificateConfig:p.use_default_certificate_config,certificateConfigLocation:p.certificate_config_location,trustChainPath:p.trust_chain_path});this.subjectTokenSupplier=b}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 v0.CertificateSubjectTokenSupplier){let n=await this.subjectTokenSupplier.createMtlsHttpsAgent();this.stsCredential=new qS.StsCredentials({tokenExchangeEndpoint:this.getTokenUrl(),clientAuthentication:this.clientAuth,transporter:new T0.Gaxios({agent:n})}),this.transporter=new T0.Gaxios({...this.transporter.defaults||{},agent:n})}return e}};ja.IdentityPoolClient=wd});var Ad=X($a=>{"use strict";Object.defineProperty($a,"__esModule",{value:!0});$a.AwsRequestSigner=void 0;var Ua=Xe(),R0=as(),D0="AWS4-HMAC-SHA256",zS="aws4_request",kd=class{getCredentials;region;crypto;constructor(e,n){this.getCredentials=e,this.region=n,this.crypto=(0,R0.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,r=e.url,o=e.method||"GET",s=e.body||n,a=e.headers,u=await this.getCredentials(),l=new URL(r);if(typeof s!="string"&&s!==void 0)throw new TypeError(`'requestPayload' is expected to be a string if provided. Got: ${s}`);let d=await WS({crypto:this.crypto,host:l.host,canonicalUri:l.pathname,canonicalQuerystring:l.search.slice(1),method:o,region:this.region,securityCredentials:u,requestPayload:s,additionalAmzHeaders:a}),f=Ua.Gaxios.mergeHeaders(d.amzDate?{"x-amz-date":d.amzDate}:{},{authorization:d.authorizationHeader,host:l.host},a||{});u.token&&Ua.Gaxios.mergeHeaders(f,{"x-amz-security-token":u.token});let p={url:r,method:o,headers:f};return s!==void 0&&(p.body=s),p}};$a.AwsRequestSigner=kd;async function _s(t,e,n){return await t.signWithHmacSha256(e,n)}async function HS(t,e,n,r,o){let s=await _s(t,`AWS4${e}`,n),a=await _s(t,s,r),u=await _s(t,a,o);return await _s(t,u,"aws4_request")}async function WS(t){let e=Ua.Gaxios.mergeHeaders(t.additionalAmzHeaders),n=t.requestPayload||"",r=t.host.split(".")[0],o=new Date,s=o.toISOString().replace(/[-:]/g,"").replace(/\.[0-9]+/,""),a=o.toISOString().replace(/[-]/g,"").replace(/T.*/,"");t.securityCredentials.token&&e.set("x-amz-security-token",t.securityCredentials.token);let u=Ua.Gaxios.mergeHeaders({host:t.host},e.has("date")?{}:{"x-amz-date":s},e),l="",d=[...u.keys()].sort();d.forEach(A=>{l+=`${A}:${u.get(A)}
|
|
53
53
|
`});let f=d.join(";"),p=await t.crypto.sha256DigestHex(n),m=`${t.method.toUpperCase()}
|
|
54
54
|
${t.canonicalUri}
|
|
55
55
|
${t.canonicalQuerystring}
|
|
56
56
|
${l}
|
|
57
57
|
${f}
|
|
58
|
-
${p}`,b=`${a}/${t.region}/${r}/${
|
|
58
|
+
${p}`,b=`${a}/${t.region}/${r}/${zS}`,w=`${D0}
|
|
59
59
|
${s}
|
|
60
60
|
${b}
|
|
61
|
-
`+await t.crypto.sha256DigestHex(m),y=await zS(t.crypto,t.securityCredentials.secretAccessKey,a,t.region,r),g=await _s(t.crypto,y,w),_=`${D0} Credential=${t.securityCredentials.accessKeyId}/${b}, SignedHeaders=${f}, Signature=${(0,R0.fromArrayBufferToHex)(g)}`;return{amzDate:e.has("date")?void 0:s,authorizationHeader:_,canonicalQuerystring:t.canonicalQuerystring}}});var x0=X(qa=>{"use strict";Object.defineProperty(qa,"__esModule",{value:!0});qa.DefaultAwsSecurityCredentialsSupplier=void 0;var $a=Ct(),Ad=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.#r)return this.#r;let n=new Headers;if(!this.#r&&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 r={...this.additionalGaxiosOptions,url:this.regionUrl,method:"GET",headers:n};$a.AuthClient.setMethodName(r,"getAwsRegion");let o=await e.transporter.request(r);return o.data.substr(0,o.data.length-1)}async getAwsSecurityCredentials(e){if(this.#o)return this.#o;let n=new Headers;this.imdsV2SessionTokenUrl&&n.set("x-aws-ec2-metadata-token",await this.#e(e.transporter));let r=await this.#t(n,e.transporter),o=await this.#n(r,n,e.transporter);return{accessKeyId:o.AccessKeyId,secretAccessKey:o.SecretAccessKey,token:o.Token}}async#e(e){let n={...this.additionalGaxiosOptions,url:this.imdsV2SessionTokenUrl,method:"PUT",headers:{"x-aws-ec2-metadata-token-ttl-seconds":"300"}};return $a.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 r={...this.additionalGaxiosOptions,url:this.securityCredentialsUrl,method:"GET",headers:e};return $a.AuthClient.setMethodName(r,"#getAwsRoleName"),(await n.request(r)).data}async#n(e,n,r){let o={...this.additionalGaxiosOptions,url:`${this.securityCredentialsUrl}/${e}`,headers:n};return $a.AuthClient.setMethodName(o,"#retrieveAwsSecurityCredentials"),(await r.request(o)).data}get#r(){return process.env.AWS_REGION||process.env.AWS_DEFAULT_REGION||null}get#o(){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}};qa.DefaultAwsSecurityCredentialsSupplier=Ad});var Td=X(za=>{"use strict";Object.defineProperty(za,"__esModule",{value:!0});za.AwsClient=void 0;var WS=kd(),GS=Zn(),JS=x0(),O0=Jt(),VS=Xe(),Sd=class t extends GS.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,O0.originalOrCamelOptions)(e),r=n.get("credential_source"),o=n.get("aws_security_credentials_supplier");if(!r&&!o)throw new Error("A credential source or AWS security credentials supplier must be specified.");if(r&&o)throw new Error("Only one of credential source or AWS security credentials supplier can be specified.");if(o)this.awsSecurityCredentialsSupplier=o,this.regionalCredVerificationUrl=t.#e,this.credentialSourceType="programmatic";else{let s=(0,O0.originalOrCamelOptions)(r);this.environmentId=s.get("environment_id");let a=s.get("region_url"),u=s.get("url"),l=s.get("imdsv2_session_token_url");this.awsSecurityCredentialsSupplier=new JS.DefaultAwsSecurityCredentialsSupplier({regionUrl:a,securityCredentialsUrl:u,imdsV2SessionTokenUrl:l}),this.regionalCredVerificationUrl=s.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 WS.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 VS.Gaxios.mergeHeaders({"x-goog-cloud-target-resource":this.audience},e.headers).forEach((o,s)=>n.push({key:s,value:o})),encodeURIComponent(JSON.stringify({url:e.url,method:e.method,headers:n}))}};za.AwsClient=Sd});var Od=X($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.InvalidSubjectTokenError=$e.InvalidMessageFieldError=$e.InvalidCodeFieldError=$e.InvalidTokenTypeFieldError=$e.InvalidExpirationTimeFieldError=$e.InvalidSuccessFieldError=$e.InvalidVersionFieldError=$e.ExecutableResponseError=$e.ExecutableResponse=void 0;var Ha="urn:ietf:params:oauth:token-type:saml2",vd="urn:ietf:params:oauth:token-type:id_token",Dd="urn:ietf:params:oauth:token-type:jwt",Rd=class{version;success;expirationTime;tokenType;errorCode;errorMessage;subjectToken;constructor(e){if(!e.version)throw new Wa("Executable response must contain a 'version' field.");if(e.success===void 0)throw new Ga("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!==Ha&&this.tokenType!==vd&&this.tokenType!==Dd)throw new Ja(`Executable response must contain a 'token_type' field when successful and it must be one of ${vd}, ${Dd}, or ${Ha}.`);if(this.tokenType===Ha){if(!e.saml_response)throw new bs(`Executable response must contain a 'saml_response' field when token_type=${Ha}.`);this.subjectToken=e.saml_response}else{if(!e.id_token)throw new bs(`Executable response must contain a 'id_token' field when token_type=${vd} or ${Dd}.`);this.subjectToken=e.id_token}}else{if(!e.code)throw new Va("Executable response must contain a 'code' field when unsuccessful.");if(!e.message)throw new Ka("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)}};$e.ExecutableResponse=Rd;var cn=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,new.target.prototype)}};$e.ExecutableResponseError=cn;var Wa=class extends cn{};$e.InvalidVersionFieldError=Wa;var Ga=class extends cn{};$e.InvalidSuccessFieldError=Ga;var xd=class extends cn{};$e.InvalidExpirationTimeFieldError=xd;var Ja=class extends cn{};$e.InvalidTokenTypeFieldError=Ja;var Va=class extends cn{};$e.InvalidCodeFieldError=Va;var Ka=class extends cn{};$e.InvalidMessageFieldError=Ka;var bs=class extends cn{};$e.InvalidSubjectTokenError=bs});var Id=X(ko=>{"use strict";Object.defineProperty(ko,"__esModule",{value:!0});ko.PluggableAuthHandler=ko.ExecutableError=void 0;var Dr=Od(),KS=require("child_process"),Pd=require("fs"),Ya=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)}};ko.ExecutableError=Ya;var Fd=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,r)=>{let o=KS.spawn(this.commandComponents[0],this.commandComponents.slice(1),{env:{...process.env,...Object.fromEntries(e)}}),s="";o.stdout.on("data",u=>{s+=u}),o.stderr.on("data",u=>{s+=u});let a=setTimeout(()=>(o.removeAllListeners(),o.kill(),r(new Error("The executable failed to finish within the timeout specified."))),this.timeoutMillis);o.on("close",u=>{if(clearTimeout(a),u===0)try{let l=JSON.parse(s),d=new Dr.ExecutableResponse(l);return n(d)}catch(l){return l instanceof Dr.ExecutableResponseError?r(l):r(new Dr.ExecutableResponseError(`The executable returned an invalid response: ${s}`))}else return r(new Ya(s,u.toString()))})})}async retrieveCachedResponse(){if(!this.outputFile||this.outputFile.length===0)return;let e;try{e=await Pd.promises.realpath(this.outputFile)}catch{return}if(!(await Pd.promises.lstat(e)).isFile())return;let n=await Pd.promises.readFile(e,{encoding:"utf8"});if(n!=="")try{let r=JSON.parse(n);return new Dr.ExecutableResponse(r).isValid()?new Dr.ExecutableResponse(r):void 0}catch(r){throw r instanceof Dr.ExecutableResponseError?r:new Dr.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 r=0;r<n.length;r++)n[r][0]==='"'&&n[r].slice(-1)==='"'&&(n[r]=n[r].slice(1,-1));return n}};ko.PluggableAuthHandler=Fd});var Bd=X(Ao=>{"use strict";Object.defineProperty(Ao,"__esModule",{value:!0});Ao.PluggableAuthClient=Ao.ExecutableError=void 0;var YS=Zn(),QS=Od(),P0=Id(),XS=Id();Object.defineProperty(Ao,"ExecutableError",{enumerable:!0,get:function(){return XS.ExecutableError}});var ZS=30*1e3,F0=5*1e3,I0=120*1e3,eT="GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES",N0=1,Nd=class extends YS.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=ZS;else if(this.timeoutMillis=e.credential_source.executable.timeout_millis,this.timeoutMillis<F0||this.timeoutMillis>I0)throw new Error(`Timeout must be between ${F0} and ${I0} milliseconds.`);this.outputFile=e.credential_source.executable.output_file,this.handler=new P0.PluggableAuthHandler({command:this.command,timeoutMillis:this.timeoutMillis,outputFile:this.outputFile}),this.credentialSourceType="executable"}async retrieveSubjectToken(){if(process.env[eT]!=="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 r=this.getServiceAccountEmail();r&&n.set("GOOGLE_EXTERNAL_ACCOUNT_IMPERSONATED_EMAIL",r),e=await this.handler.retrieveResponseFromExecutable(n)}if(e.version>N0)throw new Error(`Version of executable is not currently supported, maximum supported version is ${N0}.`);if(!e.success)throw new P0.ExecutableError(e.errorMessage,e.errorCode);if(this.outputFile&&!e.expirationTime)throw new QS.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}};Ao.PluggableAuthClient=Nd});var Ld=X(Qa=>{"use strict";Object.defineProperty(Qa,"__esModule",{value:!0});Qa.ExternalAccountClient=void 0;var tT=Zn(),nT=wd(),rT=Td(),oT=Bd(),Md=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 console.warn("The `fromJSON` method does not validate the credential configuration. A security risk occurs when a credential configuration configured with malicious URLs is used. When the credential configuration is accepted from an untrusted source, you should validate it before using it with this method. For more details, see https://cloud.google.com/docs/authentication/external/externally-sourced-credentials."),e&&e.type===tT.EXTERNAL_ACCOUNT_TYPE?e.credential_source?.environment_id?new rT.AwsClient(e):e.credential_source?.executable?new oT.PluggableAuthClient(e):new nT.IdentityPoolClient(e):null}};Qa.ExternalAccountClient=Md});var j0=X(So=>{"use strict";Object.defineProperty(So,"__esModule",{value:!0});So.ExternalAccountAuthorizedUserClient=So.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE=void 0;var M0=Ct(),B0=cd(),L0=Xe(),sT=require("stream"),iT=Zn();So.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE="external_account_authorized_user";var aT="https://sts.{universeDomain}/v1/oauthtoken",jd=class t extends B0.OAuthClientAuthHandler{#e;constructor(e){super(e),this.#e=e.tokenRefreshEndpoint}async refreshToken(e,n){let r={...t.RETRY_CONFIG,url:this.#e,method:"POST",headers:n,data:new URLSearchParams({grant_type:"refresh_token",refresh_token:e})};M0.AuthClient.setMethodName(r,"refreshToken"),this.applyClientAuthenticationOptions(r);try{let o=await this.transporter.request(r),s=o.data;return s.res=o,s}catch(o){throw o instanceof L0.GaxiosError&&o.response?(0,B0.getErrorFromOAuthErrorResponse)(o.response.data,o):o}}},Ud=class extends M0.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 jd({tokenRefreshEndpoint:e.token_url??aT.replace("{universeDomain}",this.universeDomain),transporter:this.transporter,clientAuthentication:n}),this.cachedAccessToken=null,this.quotaProjectId=e.quota_project_id,typeof e?.eagerRefreshThresholdMillis!="number"?this.eagerRefreshThresholdMillis=iT.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(r=>n(null,r),r=>n(r,r.response));else return this.requestAsync(e)}async requestAsync(e,n=!1){let r;try{let o=await this.getRequestHeaders();e.headers=L0.Gaxios.mergeHeaders(e.headers),this.addUserProjectAndAuthHeaders(e.headers,o),r=await this.transporter.request(e)}catch(o){let s=o.response;if(s){let a=s.status,u=s.config.data instanceof sT.Readable;if(!n&&(a===401||a===403)&&!u&&this.forceRefreshOnFailure)return await this.refreshAccessTokenAsync(),await this.requestAsync(e,!0)}throw o}return r}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}};So.ExternalAccountAuthorizedUserClient=Ud});var z0=X(Qt=>{"use strict";Object.defineProperty(Qt,"__esModule",{value:!0});Qt.GoogleAuth=Qt.GoogleAuthExceptionMessages=void 0;var uT=require("child_process"),Cs=require("fs"),cT=Xe(),ws=is(),lT=require("os"),$d=require("path"),dT=as(),fT=Nl(),hT=Ml(),pT=Ll(),To=rd(),U0=sd(),vo=ad(),mT=Ld(),Es=Zn(),qd=Ct(),$0=j0(),q0=Jt();Qt.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.
|
|
61
|
+
`+await t.crypto.sha256DigestHex(m),y=await HS(t.crypto,t.securityCredentials.secretAccessKey,a,t.region,r),g=await _s(t.crypto,y,w),_=`${D0} Credential=${t.securityCredentials.accessKeyId}/${b}, SignedHeaders=${f}, Signature=${(0,R0.fromArrayBufferToHex)(g)}`;return{amzDate:e.has("date")?void 0:s,authorizationHeader:_,canonicalQuerystring:t.canonicalQuerystring}}});var x0=X(za=>{"use strict";Object.defineProperty(za,"__esModule",{value:!0});za.DefaultAwsSecurityCredentialsSupplier=void 0;var qa=Ct(),Sd=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.#r)return this.#r;let n=new Headers;if(!this.#r&&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 r={...this.additionalGaxiosOptions,url:this.regionUrl,method:"GET",headers:n};qa.AuthClient.setMethodName(r,"getAwsRegion");let o=await e.transporter.request(r);return o.data.substr(0,o.data.length-1)}async getAwsSecurityCredentials(e){if(this.#o)return this.#o;let n=new Headers;this.imdsV2SessionTokenUrl&&n.set("x-aws-ec2-metadata-token",await this.#e(e.transporter));let r=await this.#t(n,e.transporter),o=await this.#n(r,n,e.transporter);return{accessKeyId:o.AccessKeyId,secretAccessKey:o.SecretAccessKey,token:o.Token}}async#e(e){let n={...this.additionalGaxiosOptions,url:this.imdsV2SessionTokenUrl,method:"PUT",headers:{"x-aws-ec2-metadata-token-ttl-seconds":"300"}};return qa.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 r={...this.additionalGaxiosOptions,url:this.securityCredentialsUrl,method:"GET",headers:e};return qa.AuthClient.setMethodName(r,"#getAwsRoleName"),(await n.request(r)).data}async#n(e,n,r){let o={...this.additionalGaxiosOptions,url:`${this.securityCredentialsUrl}/${e}`,headers:n};return qa.AuthClient.setMethodName(o,"#retrieveAwsSecurityCredentials"),(await r.request(o)).data}get#r(){return process.env.AWS_REGION||process.env.AWS_DEFAULT_REGION||null}get#o(){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}};za.DefaultAwsSecurityCredentialsSupplier=Sd});var Td=X(Ha=>{"use strict";Object.defineProperty(Ha,"__esModule",{value:!0});Ha.AwsClient=void 0;var GS=Ad(),JS=Zn(),VS=x0(),O0=Jt(),KS=Xe(),vd=class t extends JS.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,O0.originalOrCamelOptions)(e),r=n.get("credential_source"),o=n.get("aws_security_credentials_supplier");if(!r&&!o)throw new Error("A credential source or AWS security credentials supplier must be specified.");if(r&&o)throw new Error("Only one of credential source or AWS security credentials supplier can be specified.");if(o)this.awsSecurityCredentialsSupplier=o,this.regionalCredVerificationUrl=t.#e,this.credentialSourceType="programmatic";else{let s=(0,O0.originalOrCamelOptions)(r);this.environmentId=s.get("environment_id");let a=s.get("region_url"),u=s.get("url"),l=s.get("imdsv2_session_token_url");this.awsSecurityCredentialsSupplier=new VS.DefaultAwsSecurityCredentialsSupplier({regionUrl:a,securityCredentialsUrl:u,imdsV2SessionTokenUrl:l}),this.regionalCredVerificationUrl=s.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 GS.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 KS.Gaxios.mergeHeaders({"x-goog-cloud-target-resource":this.audience},e.headers).forEach((o,s)=>n.push({key:s,value:o})),encodeURIComponent(JSON.stringify({url:e.url,method:e.method,headers:n}))}};Ha.AwsClient=vd});var Pd=X($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.InvalidSubjectTokenError=$e.InvalidMessageFieldError=$e.InvalidCodeFieldError=$e.InvalidTokenTypeFieldError=$e.InvalidExpirationTimeFieldError=$e.InvalidSuccessFieldError=$e.InvalidVersionFieldError=$e.ExecutableResponseError=$e.ExecutableResponse=void 0;var Wa="urn:ietf:params:oauth:token-type:saml2",Dd="urn:ietf:params:oauth:token-type:id_token",Rd="urn:ietf:params:oauth:token-type:jwt",xd=class{version;success;expirationTime;tokenType;errorCode;errorMessage;subjectToken;constructor(e){if(!e.version)throw new Ga("Executable response must contain a 'version' field.");if(e.success===void 0)throw new Ja("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!==Wa&&this.tokenType!==Dd&&this.tokenType!==Rd)throw new Va(`Executable response must contain a 'token_type' field when successful and it must be one of ${Dd}, ${Rd}, or ${Wa}.`);if(this.tokenType===Wa){if(!e.saml_response)throw new bs(`Executable response must contain a 'saml_response' field when token_type=${Wa}.`);this.subjectToken=e.saml_response}else{if(!e.id_token)throw new bs(`Executable response must contain a 'id_token' field when token_type=${Dd} or ${Rd}.`);this.subjectToken=e.id_token}}else{if(!e.code)throw new Ka("Executable response must contain a 'code' field when unsuccessful.");if(!e.message)throw new Ya("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)}};$e.ExecutableResponse=xd;var cn=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,new.target.prototype)}};$e.ExecutableResponseError=cn;var Ga=class extends cn{};$e.InvalidVersionFieldError=Ga;var Ja=class extends cn{};$e.InvalidSuccessFieldError=Ja;var Od=class extends cn{};$e.InvalidExpirationTimeFieldError=Od;var Va=class extends cn{};$e.InvalidTokenTypeFieldError=Va;var Ka=class extends cn{};$e.InvalidCodeFieldError=Ka;var Ya=class extends cn{};$e.InvalidMessageFieldError=Ya;var bs=class extends cn{};$e.InvalidSubjectTokenError=bs});var Nd=X(ko=>{"use strict";Object.defineProperty(ko,"__esModule",{value:!0});ko.PluggableAuthHandler=ko.ExecutableError=void 0;var Dr=Pd(),YS=require("child_process"),Fd=require("fs"),Qa=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)}};ko.ExecutableError=Qa;var Id=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,r)=>{let o=YS.spawn(this.commandComponents[0],this.commandComponents.slice(1),{env:{...process.env,...Object.fromEntries(e)}}),s="";o.stdout.on("data",u=>{s+=u}),o.stderr.on("data",u=>{s+=u});let a=setTimeout(()=>(o.removeAllListeners(),o.kill(),r(new Error("The executable failed to finish within the timeout specified."))),this.timeoutMillis);o.on("close",u=>{if(clearTimeout(a),u===0)try{let l=JSON.parse(s),d=new Dr.ExecutableResponse(l);return n(d)}catch(l){return l instanceof Dr.ExecutableResponseError?r(l):r(new Dr.ExecutableResponseError(`The executable returned an invalid response: ${s}`))}else return r(new Qa(s,u.toString()))})})}async retrieveCachedResponse(){if(!this.outputFile||this.outputFile.length===0)return;let e;try{e=await Fd.promises.realpath(this.outputFile)}catch{return}if(!(await Fd.promises.lstat(e)).isFile())return;let n=await Fd.promises.readFile(e,{encoding:"utf8"});if(n!=="")try{let r=JSON.parse(n);return new Dr.ExecutableResponse(r).isValid()?new Dr.ExecutableResponse(r):void 0}catch(r){throw r instanceof Dr.ExecutableResponseError?r:new Dr.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 r=0;r<n.length;r++)n[r][0]==='"'&&n[r].slice(-1)==='"'&&(n[r]=n[r].slice(1,-1));return n}};ko.PluggableAuthHandler=Id});var Md=X(Ao=>{"use strict";Object.defineProperty(Ao,"__esModule",{value:!0});Ao.PluggableAuthClient=Ao.ExecutableError=void 0;var QS=Zn(),XS=Pd(),P0=Nd(),ZS=Nd();Object.defineProperty(Ao,"ExecutableError",{enumerable:!0,get:function(){return ZS.ExecutableError}});var ev=30*1e3,F0=5*1e3,I0=120*1e3,tv="GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES",N0=1,Bd=class extends QS.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=ev;else if(this.timeoutMillis=e.credential_source.executable.timeout_millis,this.timeoutMillis<F0||this.timeoutMillis>I0)throw new Error(`Timeout must be between ${F0} and ${I0} milliseconds.`);this.outputFile=e.credential_source.executable.output_file,this.handler=new P0.PluggableAuthHandler({command:this.command,timeoutMillis:this.timeoutMillis,outputFile:this.outputFile}),this.credentialSourceType="executable"}async retrieveSubjectToken(){if(process.env[tv]!=="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 r=this.getServiceAccountEmail();r&&n.set("GOOGLE_EXTERNAL_ACCOUNT_IMPERSONATED_EMAIL",r),e=await this.handler.retrieveResponseFromExecutable(n)}if(e.version>N0)throw new Error(`Version of executable is not currently supported, maximum supported version is ${N0}.`);if(!e.success)throw new P0.ExecutableError(e.errorMessage,e.errorCode);if(this.outputFile&&!e.expirationTime)throw new XS.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}};Ao.PluggableAuthClient=Bd});var jd=X(Xa=>{"use strict";Object.defineProperty(Xa,"__esModule",{value:!0});Xa.ExternalAccountClient=void 0;var nv=Zn(),rv=Ed(),ov=Td(),sv=Md(),Ld=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 console.warn("The `fromJSON` method does not validate the credential configuration. A security risk occurs when a credential configuration configured with malicious URLs is used. When the credential configuration is accepted from an untrusted source, you should validate it before using it with this method. For more details, see https://cloud.google.com/docs/authentication/external/externally-sourced-credentials."),e&&e.type===nv.EXTERNAL_ACCOUNT_TYPE?e.credential_source?.environment_id?new ov.AwsClient(e):e.credential_source?.executable?new sv.PluggableAuthClient(e):new rv.IdentityPoolClient(e):null}};Xa.ExternalAccountClient=Ld});var j0=X(So=>{"use strict";Object.defineProperty(So,"__esModule",{value:!0});So.ExternalAccountAuthorizedUserClient=So.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE=void 0;var M0=Ct(),B0=ld(),L0=Xe(),iv=require("stream"),av=Zn();So.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE="external_account_authorized_user";var uv="https://sts.{universeDomain}/v1/oauthtoken",Ud=class t extends B0.OAuthClientAuthHandler{#e;constructor(e){super(e),this.#e=e.tokenRefreshEndpoint}async refreshToken(e,n){let r={...t.RETRY_CONFIG,url:this.#e,method:"POST",headers:n,data:new URLSearchParams({grant_type:"refresh_token",refresh_token:e})};M0.AuthClient.setMethodName(r,"refreshToken"),this.applyClientAuthenticationOptions(r);try{let o=await this.transporter.request(r),s=o.data;return s.res=o,s}catch(o){throw o instanceof L0.GaxiosError&&o.response?(0,B0.getErrorFromOAuthErrorResponse)(o.response.data,o):o}}},$d=class extends M0.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 Ud({tokenRefreshEndpoint:e.token_url??uv.replace("{universeDomain}",this.universeDomain),transporter:this.transporter,clientAuthentication:n}),this.cachedAccessToken=null,this.quotaProjectId=e.quota_project_id,typeof e?.eagerRefreshThresholdMillis!="number"?this.eagerRefreshThresholdMillis=av.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(r=>n(null,r),r=>n(r,r.response));else return this.requestAsync(e)}async requestAsync(e,n=!1){let r;try{let o=await this.getRequestHeaders();e.headers=L0.Gaxios.mergeHeaders(e.headers),this.addUserProjectAndAuthHeaders(e.headers,o),r=await this.transporter.request(e)}catch(o){let s=o.response;if(s){let a=s.status,u=s.config.data instanceof iv.Readable;if(!n&&(a===401||a===403)&&!u&&this.forceRefreshOnFailure)return await this.refreshAccessTokenAsync(),await this.requestAsync(e,!0)}throw o}return r}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}};So.ExternalAccountAuthorizedUserClient=$d});var z0=X(Qt=>{"use strict";Object.defineProperty(Qt,"__esModule",{value:!0});Qt.GoogleAuth=Qt.GoogleAuthExceptionMessages=void 0;var cv=require("child_process"),Cs=require("fs"),lv=Xe(),ws=is(),dv=require("os"),qd=require("path"),fv=as(),hv=Bl(),pv=Ll(),mv=jl(),vo=od(),U0=id(),To=ud(),gv=jd(),Es=Zn(),zd=Ct(),$0=j0(),q0=Jt();Qt.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.
|
|
62
62
|
To learn more about authentication and Google APIs, visit:
|
|
63
63
|
https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment.
|
|
64
64
|
To learn more about authentication and Google APIs, visit:
|
|
65
65
|
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.
|
|
66
66
|
To learn more about Universe Domain retrieval, visit:
|
|
67
|
-
https://cloud.google.com/compute/docs/metadata/predefined-metadata-keys`};var zd=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.keyFilename&&console.warn("The `keyFilename` option is deprecated. Please use the `credentials` option instead. For more details, see https://cloud.google.com/docs/authentication/external/externally-sourced-credentials."),this.scopes=e.scopes,this.clientOptions=e.clientOptions||{},this.jsonContent=e.credentials||null,this.jsonContent&&console.warn("The `credentials` option is deprecated. Please use the `auth` object constructor instead. For more details, see https://cloud.google.com/docs/authentication/external/externally-sourced-credentials."),this.apiKey=e.apiKey||this.clientOptions.apiKey||null,this.apiKey&&(this.jsonContent||this.clientOptions.credentials))throw new RangeError(Qt.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===Qt.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(Qt.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 ws.universe("universe-domain"),e||=qd.DEFAULT_UNIVERSE}catch(n){if(n&&n?.response?.status===404)e=qd.DEFAULT_UNIVERSE;else throw n}return e}async getUniverseDomain(){let e=(0,q0.originalOrCamelOptions)(this.clientOptions).get("universe_domain");try{e??=(await this.getClient()).universeDomain}catch{e??=qd.DEFAULT_UNIVERSE}return e}getAnyScopes(){return this.scopes||this.defaultScopes}getApplicationDefault(e={},n){let r;if(typeof e=="function"?n=e:r=e,n)this.getApplicationDefaultAsync(r).then(o=>n(null,o.credential,o.projectId),n);else return this.getApplicationDefaultAsync(r)}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 To.JWT?n.scopes=this.scopes:n instanceof Es.BaseExternalAccountClient&&(n.scopes=this.getAnyScopes()),await this.#t(n);if(n=await this._tryGetApplicationCredentialsFromWellKnownFile(e),n)return n instanceof To.JWT?n.scopes=this.scopes:n instanceof Es.BaseExternalAccountClient&&(n.scopes=this.getAnyScopes()),await this.#t(n);if(await this._checkIsGCE())return e.scopes=this.getAnyScopes(),await this.#t(new fT.Compute(e));throw new Error(Qt.GoogleAuthExceptionMessages.NO_ADC_FOUND)}async#t(e,n=process.env.GOOGLE_CLOUD_QUOTA_PROJECT||null){let r=await this.getProjectIdOptional();return n&&(e.quotaProjectId=n),this.cachedCredential=e,{credential:e,projectId:r}}async _checkIsGCE(){return this.checkIsGCE===void 0&&(this.checkIsGCE=ws.getGCPResidency()||await ws.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(r){throw r instanceof Error&&(r.message=`Unable to read the credential file specified by the GOOGLE_APPLICATION_CREDENTIALS environment variable: ${r.message}`),r}}async _tryGetApplicationCredentialsFromWellKnownFile(e){let n=null;if(this._isWindows())n=process.env.APPDATA;else{let o=process.env.HOME;o&&(n=$d.join(o,".config"))}return n&&(n=$d.join(n,"gcloud","application_default_credentials.json"),Cs.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=Cs.realpathSync(e),!Cs.lstatSync(e).isFile())throw new Error}catch(o){throw o instanceof Error&&(o.message=`The file at ${e} does not exist, or it is not a file. ${o.message}`),o}let r=Cs.createReadStream(e);return this.fromStream(r,n)}fromImpersonatedJSON(e){if(!e)throw new Error("Must pass in a JSON object containing an impersonated refresh token");if(e.type!==vo.IMPERSONATED_ACCOUNT_TYPE)throw new Error(`The incoming JSON object does not have the "${vo.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 r=/(?<target>[^/]+):(generateAccessToken|generateIdToken)$/.exec(e.service_account_impersonation_url)?.groups?.target;if(!r)throw new RangeError(`Cannot extract target principal from ${e.service_account_impersonation_url}`);let o=this.getAnyScopes()??[];return new vo.Impersonated({...e,sourceClient:n,targetPrincipal:r,targetScopes:Array.isArray(o)?o:[o]})}fromJSON(e,n={}){console.warn("The `fromJSON` method is deprecated. Please use the `JWT` constructor instead. For more details, see https://cloud.google.com/docs/authentication/external/externally-sourced-credentials.");let r,o=(0,q0.originalOrCamelOptions)(n).get("universe_domain");return e.type===U0.USER_REFRESH_ACCOUNT_TYPE?(r=new U0.UserRefreshClient(n),r.fromJSON(e)):e.type===vo.IMPERSONATED_ACCOUNT_TYPE?r=this.fromImpersonatedJSON(e):e.type===Es.EXTERNAL_ACCOUNT_TYPE?(r=mT.ExternalAccountClient.fromJSON({...e,...n}),r.scopes=this.getAnyScopes()):e.type===$0.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE?r=new $0.ExternalAccountAuthorizedUserClient({...e,...n}):(n.scopes=this.scopes,r=new To.JWT(n),this.setGapicJWTValues(r),r.fromJSON(e)),o&&(r.universeDomain=o),r}_cacheClientFromJSON(e,n){let r=this.fromJSON(e,n);return this.jsonContent=e,this.cachedCredential=r,r}fromStream(e,n={},r){console.warn("The `fromStream` method is deprecated. Please use the `JWT` constructor with a parsed stream instead. For more details, see https://cloud.google.com/docs/authentication/external/externally-sourced-credentials.");let o={};if(typeof n=="function"?r=n:o=n,r)this.fromStreamAsync(e,o).then(s=>r(null,s),r);else return this.fromStreamAsync(e,o)}fromStreamAsync(e,n){return new Promise((r,o)=>{if(!e)throw new Error("Must pass in a stream containing the Google auth settings.");let s=[];e.setEncoding("utf8").on("error",o).on("data",a=>s.push(a)).on("end",()=>{try{try{let a=JSON.parse(s.join("")),u=this._cacheClientFromJSON(a,n);return r(u)}catch(a){if(!this.keyFilename)throw a;let u=new To.JWT({...this.clientOptions,keyFile:this.keyFilename});return this.cachedCredential=u,this.setGapicJWTValues(u),r(u)}}catch(a){return o(a)}})})}fromAPIKey(e,n={}){return new To.JWT({...n,apiKey:e})}_isWindows(){let e=lT.platform();return!!(e&&e.length>=3&&e.substring(0,3).toLowerCase()==="win")}async getDefaultServiceProjectId(){return new Promise(e=>{(0,uT.exec)("gcloud config config-helper --format json",(n,r)=>{if(!n&&r)try{let o=JSON.parse(r).configuration.properties.core.project;e(o);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!==Es.EXTERNAL_ACCOUNT_TYPE?null:await(await this.getClient()).getProjectId()}async getGCEProjectId(){try{return await ws.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 vo.Impersonated)return{client_email:e.getTargetPrincipal()};if(e instanceof Es.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,r]=await Promise.all([ws.instance("service-accounts/default/email"),this.getUniverseDomain()]);return{client_email:n,universe_domain:r}}throw new Error(Qt.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=$d.resolve(this.keyFilename),n=Cs.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 hT.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,o=await(await this.getClient()).getRequestHeaders(n);return e.headers=cT.Gaxios.mergeHeaders(e.headers,o),e}async fetch(...e){return(await this.getClient()).fetch(...e)}async request(e){return(await this.getClient()).request(e)}getEnv(){return(0,pT.getEnv)()}async sign(e,n){let r=await this.getClient(),o=await this.getUniverseDomain();if(n=n||`https://iamcredentials.${o}/v1/projects/-/serviceAccounts/`,r instanceof vo.Impersonated)return(await r.sign(e)).signedBlob;let s=(0,dT.createCrypto)();if(r instanceof To.JWT&&r.key)return await s.sign(r.key,e);let a=await this.getCredentials();if(!a.client_email)throw new Error("Cannot sign data without `client_email`.");return this.signBlob(s,a.client_email,e,n)}async signBlob(e,n,r,o){let s=new URL(o+`${n}:signBlob`);return(await this.request({method:"POST",url:s.href,data:{payload:e.encodeBase64StringUtf8(r)},retry:!0,retryConfig:{httpMethodsToRetry:["POST"]}})).data.signedBlob}};Qt.GoogleAuth=zd});var H0=X(Xa=>{"use strict";Object.defineProperty(Xa,"__esModule",{value:!0});Xa.IAMAuth=void 0;var Hd=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}}};Xa.IAMAuth=Hd});var W0=X(ln=>{"use strict";Object.defineProperty(ln,"__esModule",{value:!0});ln.DownscopedClient=ln.EXPIRATION_TIME_OFFSET=ln.MAX_ACCESS_BOUNDARY_RULES_COUNT=void 0;var gT=Xe(),yT=require("stream"),Wd=Ct(),_T=Pa(),bT="urn:ietf:params:oauth:grant-type:token-exchange",CT="urn:ietf:params:oauth:token-type:access_token",wT="urn:ietf:params:oauth:token-type:access_token";ln.MAX_ACCESS_BOUNDARY_RULES_COUNT=10;ln.EXPIRATION_TIME_OFFSET=300*1e3;var Gd=class extends Wd.AuthClient{authClient;credentialAccessBoundary;cachedDownscopedAccessToken;stsCredential;constructor(e,n={accessBoundary:{accessBoundaryRules:[]}}){if(super(e instanceof Wd.AuthClient?{}:e),e instanceof Wd.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>ln.MAX_ACCESS_BOUNDARY_RULES_COUNT)throw new Error(`The provided access boundary has more than ${ln.MAX_ACCESS_BOUNDARY_RULES_COUNT} access boundary rules.`);for(let r of this.credentialAccessBoundary.accessBoundary.accessBoundaryRules)if(r.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(r=>n(null,r),r=>n(r,r.response));else return this.requestAsync(e)}async requestAsync(e,n=!1){let r;try{let o=await this.getRequestHeaders();e.headers=gT.Gaxios.mergeHeaders(e.headers),this.addUserProjectAndAuthHeaders(e.headers,o),r=await this.transporter.request(e)}catch(o){let s=o.response;if(s){let a=s.status,u=s.config.data instanceof yT.Readable;if(!n&&(a===401||a===403)&&!u&&this.forceRefreshOnFailure)return await this.refreshAccessTokenAsync(),await this.requestAsync(e,!0)}throw o}return r}async refreshAccessTokenAsync(){let e=(await this.authClient.getAccessToken()).token,n={grantType:bT,requestedTokenType:CT,subjectToken:e,subjectTokenType:wT},r=await this.stsCredential.exchangeToken(n,void 0,this.credentialAccessBoundary),o=this.authClient.credentials?.expiry_date||null,s=r.expires_in?new Date().getTime()+r.expires_in*1e3:o;return this.cachedDownscopedAccessToken={access_token:r.access_token,expiry_date:s,res:r.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}};ln.DownscopedClient=Gd});var G0=X(Za=>{"use strict";Object.defineProperty(Za,"__esModule",{value:!0});Za.PassThroughClient=void 0;var ET=Ct(),Jd=class extends ET.AuthClient{async request(e){return this.transporter.request(e)}async getAccessToken(){return{}}async getRequestHeaders(){return new Headers}};Za.PassThroughClient=Jd});var Kd=X(ce=>{"use strict";Object.defineProperty(ce,"__esModule",{value:!0});ce.GoogleAuth=ce.auth=ce.PassThroughClient=ce.ExecutableError=ce.PluggableAuthClient=ce.DownscopedClient=ce.BaseExternalAccountClient=ce.ExternalAccountClient=ce.IdentityPoolClient=ce.AwsRequestSigner=ce.AwsClient=ce.UserRefreshClient=ce.LoginTicket=ce.ClientAuthentication=ce.OAuth2Client=ce.CodeChallengeMethod=ce.Impersonated=ce.JWT=ce.JWTAccess=ce.IdTokenClient=ce.IAMAuth=ce.GCPEnv=ce.Compute=ce.DEFAULT_UNIVERSE=ce.AuthClient=ce.gaxios=ce.gcpMetadata=void 0;var J0=z0();Object.defineProperty(ce,"GoogleAuth",{enumerable:!0,get:function(){return J0.GoogleAuth}});ce.gcpMetadata=is();ce.gaxios=Xe();var V0=Ct();Object.defineProperty(ce,"AuthClient",{enumerable:!0,get:function(){return V0.AuthClient}});Object.defineProperty(ce,"DEFAULT_UNIVERSE",{enumerable:!0,get:function(){return V0.DEFAULT_UNIVERSE}});var kT=Nl();Object.defineProperty(ce,"Compute",{enumerable:!0,get:function(){return kT.Compute}});var AT=Ll();Object.defineProperty(ce,"GCPEnv",{enumerable:!0,get:function(){return AT.GCPEnv}});var ST=H0();Object.defineProperty(ce,"IAMAuth",{enumerable:!0,get:function(){return ST.IAMAuth}});var TT=Ml();Object.defineProperty(ce,"IdTokenClient",{enumerable:!0,get:function(){return TT.IdTokenClient}});var vT=td();Object.defineProperty(ce,"JWTAccess",{enumerable:!0,get:function(){return vT.JWTAccess}});var DT=rd();Object.defineProperty(ce,"JWT",{enumerable:!0,get:function(){return DT.JWT}});var RT=ad();Object.defineProperty(ce,"Impersonated",{enumerable:!0,get:function(){return RT.Impersonated}});var Vd=vr();Object.defineProperty(ce,"CodeChallengeMethod",{enumerable:!0,get:function(){return Vd.CodeChallengeMethod}});Object.defineProperty(ce,"OAuth2Client",{enumerable:!0,get:function(){return Vd.OAuth2Client}});Object.defineProperty(ce,"ClientAuthentication",{enumerable:!0,get:function(){return Vd.ClientAuthentication}});var xT=Ol();Object.defineProperty(ce,"LoginTicket",{enumerable:!0,get:function(){return xT.LoginTicket}});var OT=sd();Object.defineProperty(ce,"UserRefreshClient",{enumerable:!0,get:function(){return OT.UserRefreshClient}});var PT=Td();Object.defineProperty(ce,"AwsClient",{enumerable:!0,get:function(){return PT.AwsClient}});var FT=kd();Object.defineProperty(ce,"AwsRequestSigner",{enumerable:!0,get:function(){return FT.AwsRequestSigner}});var IT=wd();Object.defineProperty(ce,"IdentityPoolClient",{enumerable:!0,get:function(){return IT.IdentityPoolClient}});var NT=Ld();Object.defineProperty(ce,"ExternalAccountClient",{enumerable:!0,get:function(){return NT.ExternalAccountClient}});var BT=Zn();Object.defineProperty(ce,"BaseExternalAccountClient",{enumerable:!0,get:function(){return BT.BaseExternalAccountClient}});var MT=W0();Object.defineProperty(ce,"DownscopedClient",{enumerable:!0,get:function(){return MT.DownscopedClient}});var K0=Bd();Object.defineProperty(ce,"PluggableAuthClient",{enumerable:!0,get:function(){return K0.PluggableAuthClient}});Object.defineProperty(ce,"ExecutableError",{enumerable:!0,get:function(){return K0.ExecutableError}});var LT=G0();Object.defineProperty(ce,"PassThroughClient",{enumerable:!0,get:function(){return LT.PassThroughClient}});var jT=new J0.GoogleAuth;ce.auth=jT});var D_=X((TI,Tf)=>{"use strict";var bR=/at\s(?:.*\.)?plugin\s.*\n\s*(.*)/,CR=/(\w*(\.\w*)*)\..*/;Tf.exports=function(e){if(e.name.length>0)return e.name;let n=Error.stackTraceLimit;Error.stackTraceLimit=10;try{throw new Error("anonymous function")}catch(r){return Error.stackTraceLimit=n,v_(r.stack)}};function v_(t){let e=t.match(bR);return e?e[1].split(/[/\\]/).slice(-1)[0].match(CR)[1]:"anonymous"}Tf.exports.extractPluginName=v_});var x_=X((vI,R_)=>{"use strict";R_.exports=function(e){return e[0]==="@"&&(e=e.slice(1).replace("/","-")),e.replace(/-(.)/g,function(n,r){return r.toUpperCase()})}});var O_=X((DI,Du)=>{"use strict";var wR=D_(),ER=x_(),kR=0;function vf(t,e={}){let n=!1;if(t.default!==void 0&&(t=t.default),typeof t!="function")throw new TypeError(`fastify-plugin expects a function, instead got a '${typeof t}'`);if(typeof e=="string"&&(e={fastify:e}),typeof e!="object"||Array.isArray(e)||e===null)throw new TypeError("The options object should be an object");if(e.fastify!==void 0&&typeof e.fastify!="string")throw new TypeError(`fastify-plugin expects a version string, instead got '${typeof e.fastify}'`);e.name||(n=!0,e.name=wR(t)+"-auto-"+kR++),t[Symbol.for("skip-override")]=e.encapsulate!==!0,t[Symbol.for("fastify.display-name")]=e.name,t[Symbol.for("plugin-meta")]=e,t.default||(t.default=t);let r=ER(e.name);return!n&&!t[r]&&(t[r]=t),t}Du.exports=vf;Du.exports.default=vf;Du.exports.fastifyPlugin=vf});var Fs,Rf=Le(()=>{"use strict";Fs=class{type="console";config;colors={reset:"\x1B[0m",bright:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m"};constructor(e={}){this.config={colors:!0,level:"log",...e}}formatData(e,n){let{format:r="text",timestamp:o=!0,prefix:s,metadata:a}=n||{},u="";if(o){let l=new Date().toISOString();u+=this.config.colors?`${this.colors.cyan}[${l}]${this.colors.reset} `:`[${l}] `}switch(s&&(u+=this.config.colors?`${this.colors.bright}${s}${this.colors.reset} `:`${s} `),r){case"json":u+=JSON.stringify(e,null,2);break;case"markdown":typeof e=="object"?u+=this.toMarkdown(e):u+=String(e);break;case"text":default:typeof e=="object"?u+=JSON.stringify(e,null,2):u+=String(e);break}return a&&Object.keys(a).length>0&&(u+=`
|
|
67
|
+
https://cloud.google.com/compute/docs/metadata/predefined-metadata-keys`};var Hd=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.keyFilename&&console.warn("The `keyFilename` option is deprecated. Please use the `credentials` option instead. For more details, see https://cloud.google.com/docs/authentication/external/externally-sourced-credentials."),this.scopes=e.scopes,this.clientOptions=e.clientOptions||{},this.jsonContent=e.credentials||null,this.jsonContent&&console.warn("The `credentials` option is deprecated. Please use the `auth` object constructor instead. For more details, see https://cloud.google.com/docs/authentication/external/externally-sourced-credentials."),this.apiKey=e.apiKey||this.clientOptions.apiKey||null,this.apiKey&&(this.jsonContent||this.clientOptions.credentials))throw new RangeError(Qt.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===Qt.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(Qt.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 ws.universe("universe-domain"),e||=zd.DEFAULT_UNIVERSE}catch(n){if(n&&n?.response?.status===404)e=zd.DEFAULT_UNIVERSE;else throw n}return e}async getUniverseDomain(){let e=(0,q0.originalOrCamelOptions)(this.clientOptions).get("universe_domain");try{e??=(await this.getClient()).universeDomain}catch{e??=zd.DEFAULT_UNIVERSE}return e}getAnyScopes(){return this.scopes||this.defaultScopes}getApplicationDefault(e={},n){let r;if(typeof e=="function"?n=e:r=e,n)this.getApplicationDefaultAsync(r).then(o=>n(null,o.credential,o.projectId),n);else return this.getApplicationDefaultAsync(r)}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 vo.JWT?n.scopes=this.scopes:n instanceof Es.BaseExternalAccountClient&&(n.scopes=this.getAnyScopes()),await this.#t(n);if(n=await this._tryGetApplicationCredentialsFromWellKnownFile(e),n)return n instanceof vo.JWT?n.scopes=this.scopes:n instanceof Es.BaseExternalAccountClient&&(n.scopes=this.getAnyScopes()),await this.#t(n);if(await this._checkIsGCE())return e.scopes=this.getAnyScopes(),await this.#t(new hv.Compute(e));throw new Error(Qt.GoogleAuthExceptionMessages.NO_ADC_FOUND)}async#t(e,n=process.env.GOOGLE_CLOUD_QUOTA_PROJECT||null){let r=await this.getProjectIdOptional();return n&&(e.quotaProjectId=n),this.cachedCredential=e,{credential:e,projectId:r}}async _checkIsGCE(){return this.checkIsGCE===void 0&&(this.checkIsGCE=ws.getGCPResidency()||await ws.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(r){throw r instanceof Error&&(r.message=`Unable to read the credential file specified by the GOOGLE_APPLICATION_CREDENTIALS environment variable: ${r.message}`),r}}async _tryGetApplicationCredentialsFromWellKnownFile(e){let n=null;if(this._isWindows())n=process.env.APPDATA;else{let o=process.env.HOME;o&&(n=qd.join(o,".config"))}return n&&(n=qd.join(n,"gcloud","application_default_credentials.json"),Cs.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=Cs.realpathSync(e),!Cs.lstatSync(e).isFile())throw new Error}catch(o){throw o instanceof Error&&(o.message=`The file at ${e} does not exist, or it is not a file. ${o.message}`),o}let r=Cs.createReadStream(e);return this.fromStream(r,n)}fromImpersonatedJSON(e){if(!e)throw new Error("Must pass in a JSON object containing an impersonated refresh token");if(e.type!==To.IMPERSONATED_ACCOUNT_TYPE)throw new Error(`The incoming JSON object does not have the "${To.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 r=/(?<target>[^/]+):(generateAccessToken|generateIdToken)$/.exec(e.service_account_impersonation_url)?.groups?.target;if(!r)throw new RangeError(`Cannot extract target principal from ${e.service_account_impersonation_url}`);let o=this.getAnyScopes()??[];return new To.Impersonated({...e,sourceClient:n,targetPrincipal:r,targetScopes:Array.isArray(o)?o:[o]})}fromJSON(e,n={}){console.warn("The `fromJSON` method is deprecated. Please use the `JWT` constructor instead. For more details, see https://cloud.google.com/docs/authentication/external/externally-sourced-credentials.");let r,o=(0,q0.originalOrCamelOptions)(n).get("universe_domain");return e.type===U0.USER_REFRESH_ACCOUNT_TYPE?(r=new U0.UserRefreshClient(n),r.fromJSON(e)):e.type===To.IMPERSONATED_ACCOUNT_TYPE?r=this.fromImpersonatedJSON(e):e.type===Es.EXTERNAL_ACCOUNT_TYPE?(r=gv.ExternalAccountClient.fromJSON({...e,...n}),r.scopes=this.getAnyScopes()):e.type===$0.EXTERNAL_ACCOUNT_AUTHORIZED_USER_TYPE?r=new $0.ExternalAccountAuthorizedUserClient({...e,...n}):(n.scopes=this.scopes,r=new vo.JWT(n),this.setGapicJWTValues(r),r.fromJSON(e)),o&&(r.universeDomain=o),r}_cacheClientFromJSON(e,n){let r=this.fromJSON(e,n);return this.jsonContent=e,this.cachedCredential=r,r}fromStream(e,n={},r){console.warn("The `fromStream` method is deprecated. Please use the `JWT` constructor with a parsed stream instead. For more details, see https://cloud.google.com/docs/authentication/external/externally-sourced-credentials.");let o={};if(typeof n=="function"?r=n:o=n,r)this.fromStreamAsync(e,o).then(s=>r(null,s),r);else return this.fromStreamAsync(e,o)}fromStreamAsync(e,n){return new Promise((r,o)=>{if(!e)throw new Error("Must pass in a stream containing the Google auth settings.");let s=[];e.setEncoding("utf8").on("error",o).on("data",a=>s.push(a)).on("end",()=>{try{try{let a=JSON.parse(s.join("")),u=this._cacheClientFromJSON(a,n);return r(u)}catch(a){if(!this.keyFilename)throw a;let u=new vo.JWT({...this.clientOptions,keyFile:this.keyFilename});return this.cachedCredential=u,this.setGapicJWTValues(u),r(u)}}catch(a){return o(a)}})})}fromAPIKey(e,n={}){return new vo.JWT({...n,apiKey:e})}_isWindows(){let e=dv.platform();return!!(e&&e.length>=3&&e.substring(0,3).toLowerCase()==="win")}async getDefaultServiceProjectId(){return new Promise(e=>{(0,cv.exec)("gcloud config config-helper --format json",(n,r)=>{if(!n&&r)try{let o=JSON.parse(r).configuration.properties.core.project;e(o);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!==Es.EXTERNAL_ACCOUNT_TYPE?null:await(await this.getClient()).getProjectId()}async getGCEProjectId(){try{return await ws.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 To.Impersonated)return{client_email:e.getTargetPrincipal()};if(e instanceof Es.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,r]=await Promise.all([ws.instance("service-accounts/default/email"),this.getUniverseDomain()]);return{client_email:n,universe_domain:r}}throw new Error(Qt.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=qd.resolve(this.keyFilename),n=Cs.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 pv.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,o=await(await this.getClient()).getRequestHeaders(n);return e.headers=lv.Gaxios.mergeHeaders(e.headers,o),e}async fetch(...e){return(await this.getClient()).fetch(...e)}async request(e){return(await this.getClient()).request(e)}getEnv(){return(0,mv.getEnv)()}async sign(e,n){let r=await this.getClient(),o=await this.getUniverseDomain();if(n=n||`https://iamcredentials.${o}/v1/projects/-/serviceAccounts/`,r instanceof To.Impersonated)return(await r.sign(e)).signedBlob;let s=(0,fv.createCrypto)();if(r instanceof vo.JWT&&r.key)return await s.sign(r.key,e);let a=await this.getCredentials();if(!a.client_email)throw new Error("Cannot sign data without `client_email`.");return this.signBlob(s,a.client_email,e,n)}async signBlob(e,n,r,o){let s=new URL(o+`${n}:signBlob`);return(await this.request({method:"POST",url:s.href,data:{payload:e.encodeBase64StringUtf8(r)},retry:!0,retryConfig:{httpMethodsToRetry:["POST"]}})).data.signedBlob}};Qt.GoogleAuth=Hd});var H0=X(Za=>{"use strict";Object.defineProperty(Za,"__esModule",{value:!0});Za.IAMAuth=void 0;var Wd=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}}};Za.IAMAuth=Wd});var W0=X(ln=>{"use strict";Object.defineProperty(ln,"__esModule",{value:!0});ln.DownscopedClient=ln.EXPIRATION_TIME_OFFSET=ln.MAX_ACCESS_BOUNDARY_RULES_COUNT=void 0;var yv=Xe(),_v=require("stream"),Gd=Ct(),bv=Fa(),Cv="urn:ietf:params:oauth:grant-type:token-exchange",wv="urn:ietf:params:oauth:token-type:access_token",Ev="urn:ietf:params:oauth:token-type:access_token";ln.MAX_ACCESS_BOUNDARY_RULES_COUNT=10;ln.EXPIRATION_TIME_OFFSET=300*1e3;var Jd=class extends Gd.AuthClient{authClient;credentialAccessBoundary;cachedDownscopedAccessToken;stsCredential;constructor(e,n={accessBoundary:{accessBoundaryRules:[]}}){if(super(e instanceof Gd.AuthClient?{}:e),e instanceof Gd.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>ln.MAX_ACCESS_BOUNDARY_RULES_COUNT)throw new Error(`The provided access boundary has more than ${ln.MAX_ACCESS_BOUNDARY_RULES_COUNT} access boundary rules.`);for(let r of this.credentialAccessBoundary.accessBoundary.accessBoundaryRules)if(r.availablePermissions.length===0)throw new Error("At least one permission should be defined in access boundary rules.");this.stsCredential=new bv.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(r=>n(null,r),r=>n(r,r.response));else return this.requestAsync(e)}async requestAsync(e,n=!1){let r;try{let o=await this.getRequestHeaders();e.headers=yv.Gaxios.mergeHeaders(e.headers),this.addUserProjectAndAuthHeaders(e.headers,o),r=await this.transporter.request(e)}catch(o){let s=o.response;if(s){let a=s.status,u=s.config.data instanceof _v.Readable;if(!n&&(a===401||a===403)&&!u&&this.forceRefreshOnFailure)return await this.refreshAccessTokenAsync(),await this.requestAsync(e,!0)}throw o}return r}async refreshAccessTokenAsync(){let e=(await this.authClient.getAccessToken()).token,n={grantType:Cv,requestedTokenType:wv,subjectToken:e,subjectTokenType:Ev},r=await this.stsCredential.exchangeToken(n,void 0,this.credentialAccessBoundary),o=this.authClient.credentials?.expiry_date||null,s=r.expires_in?new Date().getTime()+r.expires_in*1e3:o;return this.cachedDownscopedAccessToken={access_token:r.access_token,expiry_date:s,res:r.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}};ln.DownscopedClient=Jd});var G0=X(eu=>{"use strict";Object.defineProperty(eu,"__esModule",{value:!0});eu.PassThroughClient=void 0;var kv=Ct(),Vd=class extends kv.AuthClient{async request(e){return this.transporter.request(e)}async getAccessToken(){return{}}async getRequestHeaders(){return new Headers}};eu.PassThroughClient=Vd});var Yd=X(ce=>{"use strict";Object.defineProperty(ce,"__esModule",{value:!0});ce.GoogleAuth=ce.auth=ce.PassThroughClient=ce.ExecutableError=ce.PluggableAuthClient=ce.DownscopedClient=ce.BaseExternalAccountClient=ce.ExternalAccountClient=ce.IdentityPoolClient=ce.AwsRequestSigner=ce.AwsClient=ce.UserRefreshClient=ce.LoginTicket=ce.ClientAuthentication=ce.OAuth2Client=ce.CodeChallengeMethod=ce.Impersonated=ce.JWT=ce.JWTAccess=ce.IdTokenClient=ce.IAMAuth=ce.GCPEnv=ce.Compute=ce.DEFAULT_UNIVERSE=ce.AuthClient=ce.gaxios=ce.gcpMetadata=void 0;var J0=z0();Object.defineProperty(ce,"GoogleAuth",{enumerable:!0,get:function(){return J0.GoogleAuth}});ce.gcpMetadata=is();ce.gaxios=Xe();var V0=Ct();Object.defineProperty(ce,"AuthClient",{enumerable:!0,get:function(){return V0.AuthClient}});Object.defineProperty(ce,"DEFAULT_UNIVERSE",{enumerable:!0,get:function(){return V0.DEFAULT_UNIVERSE}});var Av=Bl();Object.defineProperty(ce,"Compute",{enumerable:!0,get:function(){return Av.Compute}});var Sv=jl();Object.defineProperty(ce,"GCPEnv",{enumerable:!0,get:function(){return Sv.GCPEnv}});var vv=H0();Object.defineProperty(ce,"IAMAuth",{enumerable:!0,get:function(){return vv.IAMAuth}});var Tv=Ll();Object.defineProperty(ce,"IdTokenClient",{enumerable:!0,get:function(){return Tv.IdTokenClient}});var Dv=nd();Object.defineProperty(ce,"JWTAccess",{enumerable:!0,get:function(){return Dv.JWTAccess}});var Rv=od();Object.defineProperty(ce,"JWT",{enumerable:!0,get:function(){return Rv.JWT}});var xv=ud();Object.defineProperty(ce,"Impersonated",{enumerable:!0,get:function(){return xv.Impersonated}});var Kd=Tr();Object.defineProperty(ce,"CodeChallengeMethod",{enumerable:!0,get:function(){return Kd.CodeChallengeMethod}});Object.defineProperty(ce,"OAuth2Client",{enumerable:!0,get:function(){return Kd.OAuth2Client}});Object.defineProperty(ce,"ClientAuthentication",{enumerable:!0,get:function(){return Kd.ClientAuthentication}});var Ov=Pl();Object.defineProperty(ce,"LoginTicket",{enumerable:!0,get:function(){return Ov.LoginTicket}});var Pv=id();Object.defineProperty(ce,"UserRefreshClient",{enumerable:!0,get:function(){return Pv.UserRefreshClient}});var Fv=Td();Object.defineProperty(ce,"AwsClient",{enumerable:!0,get:function(){return Fv.AwsClient}});var Iv=Ad();Object.defineProperty(ce,"AwsRequestSigner",{enumerable:!0,get:function(){return Iv.AwsRequestSigner}});var Nv=Ed();Object.defineProperty(ce,"IdentityPoolClient",{enumerable:!0,get:function(){return Nv.IdentityPoolClient}});var Bv=jd();Object.defineProperty(ce,"ExternalAccountClient",{enumerable:!0,get:function(){return Bv.ExternalAccountClient}});var Mv=Zn();Object.defineProperty(ce,"BaseExternalAccountClient",{enumerable:!0,get:function(){return Mv.BaseExternalAccountClient}});var Lv=W0();Object.defineProperty(ce,"DownscopedClient",{enumerable:!0,get:function(){return Lv.DownscopedClient}});var K0=Md();Object.defineProperty(ce,"PluggableAuthClient",{enumerable:!0,get:function(){return K0.PluggableAuthClient}});Object.defineProperty(ce,"ExecutableError",{enumerable:!0,get:function(){return K0.ExecutableError}});var jv=G0();Object.defineProperty(ce,"PassThroughClient",{enumerable:!0,get:function(){return jv.PassThroughClient}});var Uv=new J0.GoogleAuth;ce.auth=Uv});var R_=X((xI,Tf)=>{"use strict";var ER=/at\s(?:.*\.)?plugin\s.*\n\s*(.*)/,kR=/(\w*(\.\w*)*)\..*/;Tf.exports=function(e){if(e.name.length>0)return e.name;let n=Error.stackTraceLimit;Error.stackTraceLimit=10;try{throw new Error("anonymous function")}catch(r){return Error.stackTraceLimit=n,D_(r.stack)}};function D_(t){let e=t.match(ER);return e?e[1].split(/[/\\]/).slice(-1)[0].match(kR)[1]:"anonymous"}Tf.exports.extractPluginName=D_});var O_=X((OI,x_)=>{"use strict";x_.exports=function(e){return e[0]==="@"&&(e=e.slice(1).replace("/","-")),e.replace(/-(.)/g,function(n,r){return r.toUpperCase()})}});var P_=X((PI,Ru)=>{"use strict";var AR=R_(),SR=O_(),vR=0;function Df(t,e={}){let n=!1;if(t.default!==void 0&&(t=t.default),typeof t!="function")throw new TypeError(`fastify-plugin expects a function, instead got a '${typeof t}'`);if(typeof e=="string"&&(e={fastify:e}),typeof e!="object"||Array.isArray(e)||e===null)throw new TypeError("The options object should be an object");if(e.fastify!==void 0&&typeof e.fastify!="string")throw new TypeError(`fastify-plugin expects a version string, instead got '${typeof e.fastify}'`);e.name||(n=!0,e.name=AR(t)+"-auto-"+vR++),t[Symbol.for("skip-override")]=e.encapsulate!==!0,t[Symbol.for("fastify.display-name")]=e.name,t[Symbol.for("plugin-meta")]=e,t.default||(t.default=t);let r=SR(e.name);return!n&&!t[r]&&(t[r]=t),t}Ru.exports=Df;Ru.exports.default=Df;Ru.exports.fastifyPlugin=Df});var Fs,xf=Le(()=>{"use strict";Fs=class{type="console";config;colors={reset:"\x1B[0m",bright:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m"};constructor(e={}){this.config={colors:!0,level:"log",...e}}formatData(e,n){let{format:r="text",timestamp:o=!0,prefix:s,metadata:a}=n||{},u="";if(o){let l=new Date().toISOString();u+=this.config.colors?`${this.colors.cyan}[${l}]${this.colors.reset} `:`[${l}] `}switch(s&&(u+=this.config.colors?`${this.colors.bright}${s}${this.colors.reset} `:`${s} `),r){case"json":u+=JSON.stringify(e,null,2);break;case"markdown":typeof e=="object"?u+=this.toMarkdown(e):u+=String(e);break;case"text":default:typeof e=="object"?u+=JSON.stringify(e,null,2):u+=String(e);break}return a&&Object.keys(a).length>0&&(u+=`
|
|
68
68
|
`+(this.config.colors?`${this.colors.dim}`:""),u+="Metadata: "+JSON.stringify(a,null,2),this.config.colors&&(u+=this.colors.reset)),u}toMarkdown(e,n=0){let r=" ".repeat(n);return Array.isArray(e)?e.map(o=>typeof o=="object"?`${r}-
|
|
69
69
|
${this.toMarkdown(o,n+1)}`:`${r}- ${o}`).join(`
|
|
70
70
|
`):typeof e=="object"&&e!==null?Object.entries(e).map(([o,s])=>typeof s=="object"&&s!==null?`${r}${o}:
|
|
71
71
|
${this.toMarkdown(s,n+1)}`:`${r}${o}: ${s}`).join(`
|
|
72
|
-
`):`${r}${e}`}async output(e,n={}){try{let r=this.formatData(e,n);switch(this.config.level||"log"){case"info":console.info(r);break;case"warn":console.warn(r);break;case"error":console.error(r);break;case"debug":console.debug(r);break;case"log":default:console.log(r);break}return!0}catch(r){return console.error("[ConsoleOutputHandler] Output failed:",r),!1}}}});var Is,xf=Le(()=>{"use strict";Is=class{type="webhook";config;defaultTimeout=3e4;constructor(e){if(!e.url)throw new Error("Webhook URL is required");this.config={method:"POST",retry:{maxAttempts:3,backoffMs:1e3},silent:!1,...e}}buildHeaders(){let e={"Content-Type":"application/json",...this.config.headers||{}};if(this.config.auth)switch(this.config.auth.type){case"bearer":this.config.auth.token&&(e.Authorization=`Bearer ${this.config.auth.token}`);break;case"basic":if(this.config.auth.username&&this.config.auth.password){let n=Buffer.from(`${this.config.auth.username}:${this.config.auth.password}`).toString("base64");e.Authorization=`Basic ${n}`}break;case"custom":this.config.auth.custom&&(e[this.config.auth.custom.header]=this.config.auth.custom.value);break}return e}buildBody(e,n){let{format:r="json",timestamp:o=!0,prefix:s,metadata:a}=n||{},u={data:e};return o&&(u.timestamp=new Date().toISOString()),s&&(u.prefix=s),a&&Object.keys(a).length>0&&(u.metadata=a),u}async sendRequest(e,n,r,o,s){let a=new AbortController,u=setTimeout(()=>a.abort(),s);try{let l=await fetch(e,{method:n,headers:r,body:JSON.stringify(o),signal:a.signal});if(clearTimeout(u),!l.ok)throw new Error(`HTTP ${l.status}: ${l.statusText}`);return l}catch(l){throw clearTimeout(u),l}}delay(e){return new Promise(n=>setTimeout(n,e))}async sendWithRetry(e,n,r,o,s,a){let u=null;for(let l=1;l<=a.maxAttempts;l++)try{return await this.sendRequest(e,n,r,o,s)}catch(d){if(u=d,l===a.maxAttempts)break;let f=a.backoffMs*Math.pow(2,l-1);console.warn(`[WebhookOutputHandler] Request failed (attempt ${l}/${a.maxAttempts}), retrying in ${f}ms...`,d.message),await this.delay(f)}throw u}async output(e,n={}){let r=n.timeout||this.defaultTimeout;try{let o=this.buildHeaders(),s=this.buildBody(e,n),a=await this.sendWithRetry(this.config.url,this.config.method,o,s,r,this.config.retry);return!0}catch(o){let s=o instanceof Error?o.message:String(o);if(this.config.silent)return console.error(`[WebhookOutputHandler] Failed to send data: ${s}`),!1;throw new Error(`Webhook output failed: ${s}`)}}}});var xo,Of,P_,Ns,Pf=Le(()=>{"use strict";xo=require("fs"),Of=require("path"),P_=require("os"),Ns=class{type="temp-file";config;baseDir;constructor(e={}){this.config={subdirectory:"claude-code-router",extension:"json",includeTimestamp:!1,prefix:"session",...e};let n=(0,P_.tmpdir)();this.baseDir=(0,Of.join)(n,this.config.subdirectory),this.ensureDir()}ensureDir(){try{(0,xo.existsSync)(this.baseDir)||(0,xo.mkdirSync)(this.baseDir,{recursive:!0})}catch{}}getFilePath(e){let n=this.config.prefix||"session",r=this.config.extension?`.${this.config.extension}`:"",o;if(this.config.includeTimestamp){let s=Date.now();o=`${n}-${e}-${s}${r}`}else o=`${n}-${e}${r}`;return(0,Of.join)(this.baseDir,o)}async output(e,n={}){try{let r=n.metadata?.sessionId;if(!r)return!1;let o={...e,timestamp:Date.now(),sessionId:r},s=this.getFilePath(r);return(0,xo.writeFileSync)(s,JSON.stringify(o,null,2),"utf-8"),!0}catch{return!1}}getBaseDir(){return this.baseDir}}});var Ff,Oo,F_=Le(()=>{"use strict";Rf();xf();Pf();Ff=class{handlers=new Map;defaultOptions={};registerHandler(e,n){this.handlers.set(e,n)}registerHandlers(e){for(let n of e)if(n.enabled!==!1)try{let r=this.createHandler(n),o=n.type+"_"+Date.now();this.registerHandler(o,r)}catch(r){console.error(`[OutputManager] Failed to register ${n.type} handler:`,r)}}createHandler(e){switch(e.type){case"console":return new Fs(e.config);case"webhook":return new Is(e.config);case"temp-file":return new Ns(e.config);default:throw new Error(`Unknown output handler type: ${e.type}`)}}unregisterHandler(e){return this.handlers.delete(e)}getHandler(e){return this.handlers.get(e)}getAllHandlers(){return new Map(this.handlers)}clearHandlers(){this.handlers.clear()}setDefaultOptions(e){this.defaultOptions={...this.defaultOptions,...e}}getDefaultOptions(){return{...this.defaultOptions}}async output(e,n){let r={...this.defaultOptions,...n},o={success:[],failed:[]},s=Array.from(this.handlers.entries()).map(async([a,u])=>{try{await u.output(e,r)?o.success.push(a):o.failed.push(a)}catch(l){console.error(`[OutputManager] Handler ${a} failed:`,l),o.failed.push(a)}});return await Promise.all(s),o}async outputTo(e,n,r){let o={...this.defaultOptions,...r},s={success:[],failed:[]},a=e.map(async u=>{let l=this.handlers.get(u);if(!l){console.warn(`[OutputManager] Handler ${u} not found`),s.failed.push(u);return}try{await l.output(n,o)?s.success.push(u):s.failed.push(u)}catch(d){console.error(`[OutputManager] Handler ${u} failed:`,d),s.failed.push(u)}});return await Promise.all(a),s}async outputToType(e,n,r){let o=Array.from(this.handlers.entries()).filter(([s,a])=>a.type===e).map(([s])=>s);return this.outputTo(o,n,r)}},Oo=new Ff});var vR={};fi(vR,{ActiveProbeService:()=>Os,ConfigService:()=>hr,ProviderHealthStore:()=>Ho,ProviderService:()=>yr,SSEParserTransform:()=>Or,SSESerializerTransform:()=>Ps,TokenizerService:()=>xr,TransformerService:()=>Rr,calculateTokenCount:()=>Tc,default:()=>TR,extractSessionIdFromUserId:()=>Yr,getActiveProbeService:()=>kf,getAllQuotaResults:()=>Sp,getAllRateLimitInfo:()=>wp,getHealthStore:()=>Je,getQuotaAdapter:()=>Su,getQuotaResult:()=>Ai,getRateLimitInfo:()=>Cp,getRuntimeDebugLog:()=>sp,initProviderHealthPersistence:()=>Ci,initQuotaStorePersistence:()=>Si,initRateLimitPersistence:()=>wi,normalizeSessionId:()=>mr,pluginManager:()=>Sf,resetActiveProbeService:()=>T_,rewriteStream:()=>Df,router:()=>Zr,searchProjectBySession:()=>vc,sessionUsageCache:()=>Ei,setRuntimeDebugLog:()=>op,startActiveProbe:()=>Tu,stopActiveProbe:()=>vu,storeQuotaResult:()=>ki,tokenSpeedPlugin:()=>Nf});module.exports=Uh(vR);var M_=xe(require("fastify"),1),L_=xe(require("@fastify/cors"),1);var qo=require("fs"),dc=require("path"),Qh=require("dotenv"),Xh=xe(lc(),1),hr=class{config={};options;constructor(e={jsonPath:"./config.json"}){this.options={envPath:e.envPath||".env",jsonPath:e.jsonPath,useEnvFile:!1,useJsonFile:e.useJsonFile!==!1,useEnvironmentVariables:e.useEnvironmentVariables!==!1,...e},this.loadConfig()}loadConfig(){this.options.useJsonFile&&this.options.jsonPath&&this.loadJsonConfig(),this.options.initialConfig&&(this.config={...this.config,...this.options.initialConfig}),this.options.useEnvFile&&this.loadEnvConfig(),this.config.LOG_FILE&&(process.env.LOG_FILE=this.config.LOG_FILE),this.config.LOG&&(process.env.LOG=this.config.LOG)}loadJsonConfig(){if(!this.options.jsonPath)return;let e=this.isAbsolutePath(this.options.jsonPath)?this.options.jsonPath:(0,dc.join)(process.cwd(),this.options.jsonPath);if((0,qo.existsSync)(e))try{let n=(0,qo.readFileSync)(e,"utf-8"),r=Xh.default.parse(n);this.config={...this.config,...r},console.log(`Loaded JSON config from: ${e}`)}catch(n){console.warn(`Failed to load JSON config from ${e}:`,n)}else console.warn(`JSON config file not found: ${e}`)}loadEnvConfig(){let e=this.isAbsolutePath(this.options.envPath)?this.options.envPath:(0,dc.join)(process.cwd(),this.options.envPath);if((0,qo.existsSync)(e))try{let n=(0,Qh.config)({path:e});n.parsed&&(this.config={...this.config,...this.parseEnvConfig(n.parsed)})}catch(n){console.warn(`Failed to load .env config from ${e}:`,n)}}loadEnvironmentVariables(){let e=this.parseEnvConfig(process.env);this.config={...this.config,...e}}parseEnvConfig(e){let n={};return Object.assign(n,e),n}isAbsolutePath(e){return e.startsWith("/")||e.includes(":")}get(e,n){let r=this.config[e];return r!==void 0?r:n}getAll(){return{...this.config}}getHttpsProxy(){return this.get("HTTPS_PROXY")||this.get("https_proxy")||this.get("httpsProxy")||this.get("PROXY_URL")}has(e){return this.config[e]!==void 0}set(e,n){this.config[e]=n}reload(){this.config={},this.loadConfig()}getConfigSummary(){let e=[];return this.options.initialConfig&&e.push("Initial Config"),this.options.useJsonFile&&this.options.jsonPath&&e.push(`JSON: ${this.options.jsonPath}`),this.options.useEnvFile&&e.push(`ENV: ${this.options.envPath}`),this.options.useEnvironmentVariables&&e.push("Environment Variables"),`Config sources: ${e.join(", ")}`}};function He(t,e=500,n="internal_error",r="api_error"){let o=new Error(t);return o.statusCode=e,o.code=n,o.type=r,o}async function Zh(t,e,n){e.log.error(t);let r=t.statusCode||500;if(t.rawBody)try{let s=JSON.parse(t.rawBody);return n.code(r).send(s)}catch{return n.code(r).send(t.rawBody)}let o={error:{message:t.message+(t.stack||"Internal Server Error"),type:t.type||"api_error",code:t.code||"internal_error"}};return n.code(r).send(o)}var ep=require("undici");function tp(t,e,n,r,o){let s=new Headers({"Content-Type":"application/json"});n.headers&&Object.entries(n.headers).forEach(([d,f])=>{f&&s.set(d,f)});let a,u=AbortSignal.timeout(n.TIMEOUT??60*1e3*60);if(n.signal){let d=new AbortController,f=()=>d.abort();n.signal.addEventListener("abort",f),u.addEventListener("abort",f),a=d.signal}else a=u;let l={method:"POST",headers:s,body:JSON.stringify(e),signal:a};return n.httpsProxy&&(l.dispatcher=new ep.ProxyAgent(new URL(n.httpsProxy).toString())),o?.debug({reqId:r.req.id,request:l,headers:Object.fromEntries(s.entries()),requestUrl:typeof t=="string"?t:t.toString(),useProxy:n.httpsProxy},"final request"),fetch(typeof t=="string"?t:t.toString(),l)}var FC=new Set(["authorization","x-api-key","x-goog-api-key","cookie","set-cookie"]),Gr={maxBodyLength:4096,maxStreamChunks:100},fc=!1;function op(t){fc=t}function sp(){return fc}function yi(t){return fc||t.get("DEBUG_LOG")===!0}function ip(t){let e=t.get("DEBUG_LOG_OPTIONS");return!e||typeof e!="object"?Gr:{maxBodyLength:e.maxBodyLength??Gr.maxBodyLength,maxStreamChunks:e.maxStreamChunks??Gr.maxStreamChunks}}function ap(t){let e={};for(let[n,r]of Object.entries(t))FC.has(n.toLowerCase())?e[n]="***MASKED***":e[n]=r;return e}function _i(t,e){return t.length<=e?t:t.slice(0,e)+`...[truncated, total ${t.length} bytes]`}function up(t,e,n){let r=typeof n.body=="string"?n.body:JSON.stringify(n.body);t.info({debug_log:!0,reqId:e,phase:"provider_request",url:n.url,headers:ap(n.headers),body:_i(r,Gr.maxBodyLength)})}function cp(t,e,n){t.info({debug_log:!0,reqId:e,phase:"provider_response",status:n.status,headers:ap(n.headers),...n.body!==void 0?{body:_i(n.body,Gr.maxBodyLength)}:{}})}function np(t,e,n,r){let o=IC(r);t.info({debug_log:!0,reqId:e,phase:"provider_stream_chunk",chunkIndex:n,...o?{usage_monitor:o}:{},data:_i(r,Gr.maxBodyLength)})}function IC(t){let e=[];for(let n of t.split(/\r?\n/)){if(!n.startsWith("data:"))continue;let r=n.slice(5).trim();if(!(!r||r==="[DONE]"))try{let o=JSON.parse(r),s=o?.usage||o?.response?.usage;s&&e.push({path:o?.usage?"usage":"response.usage",usage:s,choicesLength:Array.isArray(o?.choices)?o.choices.length:void 0,finishReason:o?.choices?.[0]?.finish_reason})}catch{e.push({parseError:!0,data:_i(r,512)})}}if(e.length)return e.length===1?e[0]:e}function rp(t,e,n){t.info({debug_log:!0,reqId:e,phase:"provider_stream_end",totalChunks:n})}function lp(t,e,n,r){(async()=>{let o=t.pipeThrough(new TextDecoderStream).getReader(),s=0;try{let a="";for(;;){let{done:u,value:l}=await o.read();if(u)break;a+=l;let d=a.split(`
|
|
72
|
+
`):`${r}${e}`}async output(e,n={}){try{let r=this.formatData(e,n);switch(this.config.level||"log"){case"info":console.info(r);break;case"warn":console.warn(r);break;case"error":console.error(r);break;case"debug":console.debug(r);break;case"log":default:console.log(r);break}return!0}catch(r){return console.error("[ConsoleOutputHandler] Output failed:",r),!1}}}});var Is,Of=Le(()=>{"use strict";Is=class{type="webhook";config;defaultTimeout=3e4;constructor(e){if(!e.url)throw new Error("Webhook URL is required");this.config={method:"POST",retry:{maxAttempts:3,backoffMs:1e3},silent:!1,...e}}buildHeaders(){let e={"Content-Type":"application/json",...this.config.headers||{}};if(this.config.auth)switch(this.config.auth.type){case"bearer":this.config.auth.token&&(e.Authorization=`Bearer ${this.config.auth.token}`);break;case"basic":if(this.config.auth.username&&this.config.auth.password){let n=Buffer.from(`${this.config.auth.username}:${this.config.auth.password}`).toString("base64");e.Authorization=`Basic ${n}`}break;case"custom":this.config.auth.custom&&(e[this.config.auth.custom.header]=this.config.auth.custom.value);break}return e}buildBody(e,n){let{format:r="json",timestamp:o=!0,prefix:s,metadata:a}=n||{},u={data:e};return o&&(u.timestamp=new Date().toISOString()),s&&(u.prefix=s),a&&Object.keys(a).length>0&&(u.metadata=a),u}async sendRequest(e,n,r,o,s){let a=new AbortController,u=setTimeout(()=>a.abort(),s);try{let l=await fetch(e,{method:n,headers:r,body:JSON.stringify(o),signal:a.signal});if(clearTimeout(u),!l.ok)throw new Error(`HTTP ${l.status}: ${l.statusText}`);return l}catch(l){throw clearTimeout(u),l}}delay(e){return new Promise(n=>setTimeout(n,e))}async sendWithRetry(e,n,r,o,s,a){let u=null;for(let l=1;l<=a.maxAttempts;l++)try{return await this.sendRequest(e,n,r,o,s)}catch(d){if(u=d,l===a.maxAttempts)break;let f=a.backoffMs*Math.pow(2,l-1);console.warn(`[WebhookOutputHandler] Request failed (attempt ${l}/${a.maxAttempts}), retrying in ${f}ms...`,d.message),await this.delay(f)}throw u}async output(e,n={}){let r=n.timeout||this.defaultTimeout;try{let o=this.buildHeaders(),s=this.buildBody(e,n),a=await this.sendWithRetry(this.config.url,this.config.method,o,s,r,this.config.retry);return!0}catch(o){let s=o instanceof Error?o.message:String(o);if(this.config.silent)return console.error(`[WebhookOutputHandler] Failed to send data: ${s}`),!1;throw new Error(`Webhook output failed: ${s}`)}}}});var xo,Pf,F_,Ns,Ff=Le(()=>{"use strict";xo=require("fs"),Pf=require("path"),F_=require("os"),Ns=class{type="temp-file";config;baseDir;constructor(e={}){this.config={subdirectory:"claude-code-router",extension:"json",includeTimestamp:!1,prefix:"session",...e};let n=(0,F_.tmpdir)();this.baseDir=(0,Pf.join)(n,this.config.subdirectory),this.ensureDir()}ensureDir(){try{(0,xo.existsSync)(this.baseDir)||(0,xo.mkdirSync)(this.baseDir,{recursive:!0})}catch{}}getFilePath(e){let n=this.config.prefix||"session",r=this.config.extension?`.${this.config.extension}`:"",o;if(this.config.includeTimestamp){let s=Date.now();o=`${n}-${e}-${s}${r}`}else o=`${n}-${e}${r}`;return(0,Pf.join)(this.baseDir,o)}async output(e,n={}){try{let r=n.metadata?.sessionId;if(!r)return!1;let o={...e,timestamp:Date.now(),sessionId:r},s=this.getFilePath(r);return(0,xo.writeFileSync)(s,JSON.stringify(o,null,2),"utf-8"),!0}catch{return!1}}getBaseDir(){return this.baseDir}}});var If,Oo,I_=Le(()=>{"use strict";xf();Of();Ff();If=class{handlers=new Map;defaultOptions={};registerHandler(e,n){this.handlers.set(e,n)}registerHandlers(e){for(let n of e)if(n.enabled!==!1)try{let r=this.createHandler(n),o=n.type+"_"+Date.now();this.registerHandler(o,r)}catch(r){console.error(`[OutputManager] Failed to register ${n.type} handler:`,r)}}createHandler(e){switch(e.type){case"console":return new Fs(e.config);case"webhook":return new Is(e.config);case"temp-file":return new Ns(e.config);default:throw new Error(`Unknown output handler type: ${e.type}`)}}unregisterHandler(e){return this.handlers.delete(e)}getHandler(e){return this.handlers.get(e)}getAllHandlers(){return new Map(this.handlers)}clearHandlers(){this.handlers.clear()}setDefaultOptions(e){this.defaultOptions={...this.defaultOptions,...e}}getDefaultOptions(){return{...this.defaultOptions}}async output(e,n){let r={...this.defaultOptions,...n},o={success:[],failed:[]},s=Array.from(this.handlers.entries()).map(async([a,u])=>{try{await u.output(e,r)?o.success.push(a):o.failed.push(a)}catch(l){console.error(`[OutputManager] Handler ${a} failed:`,l),o.failed.push(a)}});return await Promise.all(s),o}async outputTo(e,n,r){let o={...this.defaultOptions,...r},s={success:[],failed:[]},a=e.map(async u=>{let l=this.handlers.get(u);if(!l){console.warn(`[OutputManager] Handler ${u} not found`),s.failed.push(u);return}try{await l.output(n,o)?s.success.push(u):s.failed.push(u)}catch(d){console.error(`[OutputManager] Handler ${u} failed:`,d),s.failed.push(u)}});return await Promise.all(a),s}async outputToType(e,n,r){let o=Array.from(this.handlers.entries()).filter(([s,a])=>a.type===e).map(([s])=>s);return this.outputTo(o,n,r)}},Oo=new If});var xR={};fi(xR,{ActiveProbeService:()=>Os,ConfigService:()=>hr,ProviderHealthStore:()=>Ho,ProviderService:()=>yr,SSEParserTransform:()=>Or,SSESerializerTransform:()=>Ps,TokenizerService:()=>xr,TransformerService:()=>Rr,calculateTokenCount:()=>Tc,default:()=>RR,extractSessionIdFromUserId:()=>Yr,getActiveProbeService:()=>Af,getAllQuotaResults:()=>Sp,getAllRateLimitInfo:()=>wp,getHealthStore:()=>Je,getQuotaAdapter:()=>vu,getQuotaResult:()=>Si,getRateLimitInfo:()=>Cp,getRuntimeDebugLog:()=>ip,initProviderHealthPersistence:()=>wi,initQuotaStorePersistence:()=>vi,initRateLimitPersistence:()=>Ei,normalizeSessionId:()=>mr,pluginManager:()=>vf,resetActiveProbeService:()=>T_,rewriteStream:()=>Rf,router:()=>Zr,searchProjectBySession:()=>Dc,sessionUsageCache:()=>ki,setRuntimeDebugLog:()=>sp,startActiveProbe:()=>Tu,stopActiveProbe:()=>Du,storeQuotaResult:()=>Ai,tokenSpeedPlugin:()=>Bf});module.exports=$h(xR);var L_=xe(require("fastify"),1),j_=xe(require("@fastify/cors"),1);var qo=require("fs"),fc=require("path"),Xh=require("dotenv"),Zh=xe(dc(),1),hr=class{config={};options;constructor(e={jsonPath:"./config.json"}){this.options={envPath:e.envPath||".env",jsonPath:e.jsonPath,useEnvFile:!1,useJsonFile:e.useJsonFile!==!1,useEnvironmentVariables:e.useEnvironmentVariables!==!1,...e},this.loadConfig()}loadConfig(){this.options.useJsonFile&&this.options.jsonPath&&this.loadJsonConfig(),this.options.initialConfig&&(this.config={...this.config,...this.options.initialConfig}),this.options.useEnvFile&&this.loadEnvConfig(),this.config.LOG_FILE&&(process.env.LOG_FILE=this.config.LOG_FILE),this.config.LOG&&(process.env.LOG=this.config.LOG)}loadJsonConfig(){if(!this.options.jsonPath)return;let e=this.isAbsolutePath(this.options.jsonPath)?this.options.jsonPath:(0,fc.join)(process.cwd(),this.options.jsonPath);if((0,qo.existsSync)(e))try{let n=(0,qo.readFileSync)(e,"utf-8"),r=Zh.default.parse(n);this.config={...this.config,...r},console.log(`Loaded JSON config from: ${e}`)}catch(n){console.warn(`Failed to load JSON config from ${e}:`,n)}else console.warn(`JSON config file not found: ${e}`)}loadEnvConfig(){let e=this.isAbsolutePath(this.options.envPath)?this.options.envPath:(0,fc.join)(process.cwd(),this.options.envPath);if((0,qo.existsSync)(e))try{let n=(0,Xh.config)({path:e});n.parsed&&(this.config={...this.config,...this.parseEnvConfig(n.parsed)})}catch(n){console.warn(`Failed to load .env config from ${e}:`,n)}}loadEnvironmentVariables(){let e=this.parseEnvConfig(process.env);this.config={...this.config,...e}}parseEnvConfig(e){let n={};return Object.assign(n,e),n}isAbsolutePath(e){return e.startsWith("/")||e.includes(":")}get(e,n){let r=this.config[e];return r!==void 0?r:n}getAll(){return{...this.config}}getHttpsProxy(){return this.get("HTTPS_PROXY")||this.get("https_proxy")||this.get("httpsProxy")||this.get("PROXY_URL")}has(e){return this.config[e]!==void 0}set(e,n){this.config[e]=n}reload(){this.config={},this.loadConfig()}getConfigSummary(){let e=[];return this.options.initialConfig&&e.push("Initial Config"),this.options.useJsonFile&&this.options.jsonPath&&e.push(`JSON: ${this.options.jsonPath}`),this.options.useEnvFile&&e.push(`ENV: ${this.options.envPath}`),this.options.useEnvironmentVariables&&e.push("Environment Variables"),`Config sources: ${e.join(", ")}`}};function He(t,e=500,n="internal_error",r="api_error"){let o=new Error(t);return o.statusCode=e,o.code=n,o.type=r,o}async function ep(t,e,n){e.log.error(t);let r=t.statusCode||500;if(t.rawBody)try{let s=JSON.parse(t.rawBody);return n.code(r).send(s)}catch{return n.code(r).send(t.rawBody)}let o={error:{message:t.message+(t.stack||"Internal Server Error"),type:t.type||"api_error",code:t.code||"internal_error"}};return n.code(r).send(o)}var tp=require("undici");function np(t,e,n,r,o){let s=new Headers({"Content-Type":"application/json"});n.headers&&Object.entries(n.headers).forEach(([d,f])=>{f&&s.set(d,f)});let a,u=AbortSignal.timeout(n.TIMEOUT??60*1e3*60);if(n.signal){let d=new AbortController,f=()=>d.abort();n.signal.addEventListener("abort",f),u.addEventListener("abort",f),a=d.signal}else a=u;let l={method:"POST",headers:s,body:JSON.stringify(e),signal:a};return n.httpsProxy&&(l.dispatcher=new tp.ProxyAgent(new URL(n.httpsProxy).toString())),o?.debug({reqId:r.req.id,request:l,headers:Object.fromEntries(s.entries()),requestUrl:typeof t=="string"?t:t.toString(),useProxy:n.httpsProxy},"final request"),fetch(typeof t=="string"?t:t.toString(),l)}var IC=new Set(["authorization","x-api-key","x-goog-api-key","cookie","set-cookie"]),Gr={maxBodyLength:4096,maxStreamChunks:100},hc=!1;function sp(t){hc=t}function ip(){return hc}function yi(t){return hc||t.get("DEBUG_LOG")===!0}function ap(t){let e=t.get("DEBUG_LOG_OPTIONS");return!e||typeof e!="object"?Gr:{maxBodyLength:e.maxBodyLength??Gr.maxBodyLength,maxStreamChunks:e.maxStreamChunks??Gr.maxStreamChunks}}function up(t){let e={};for(let[n,r]of Object.entries(t))IC.has(n.toLowerCase())?e[n]="***MASKED***":e[n]=r;return e}function _i(t,e){return t.length<=e?t:t.slice(0,e)+`...[truncated, total ${t.length} bytes]`}function cp(t,e,n){let r=typeof n.body=="string"?n.body:JSON.stringify(n.body);t.info({debug_log:!0,reqId:e,phase:"provider_request",url:n.url,headers:up(n.headers),body:_i(r,Gr.maxBodyLength)})}function lp(t,e,n){t.info({debug_log:!0,reqId:e,phase:"provider_response",status:n.status,headers:up(n.headers),...n.body!==void 0?{body:_i(n.body,Gr.maxBodyLength)}:{}})}function rp(t,e,n,r){let o=NC(r);t.info({debug_log:!0,reqId:e,phase:"provider_stream_chunk",chunkIndex:n,...o?{usage_monitor:o}:{},data:_i(r,Gr.maxBodyLength)})}function NC(t){let e=[];for(let n of t.split(/\r?\n/)){if(!n.startsWith("data:"))continue;let r=n.slice(5).trim();if(!(!r||r==="[DONE]"))try{let o=JSON.parse(r),s=o?.usage||o?.response?.usage;s&&e.push({path:o?.usage?"usage":"response.usage",usage:s,choicesLength:Array.isArray(o?.choices)?o.choices.length:void 0,finishReason:o?.choices?.[0]?.finish_reason})}catch{e.push({parseError:!0,data:_i(r,512)})}}if(e.length)return e.length===1?e[0]:e}function op(t,e,n){t.info({debug_log:!0,reqId:e,phase:"provider_stream_end",totalChunks:n})}function dp(t,e,n,r){(async()=>{let o=t.pipeThrough(new TextDecoderStream).getReader(),s=0;try{let a="";for(;;){let{done:u,value:l}=await o.read();if(u)break;a+=l;let d=a.split(`
|
|
73
73
|
|
|
74
|
-
`);a=d.pop()||"";for(let f of d)f.trim()&&(s<r.maxStreamChunks?
|
|
74
|
+
`);a=d.pop()||"";for(let f of d)f.trim()&&(s<r.maxStreamChunks?rp(e,n,s,f):s===r.maxStreamChunks&&e.info({debug_log:!0,reqId:n,phase:"provider_stream_chunk_omitted",message:`[chunks after #${s} omitted, maxStreamChunks=${r.maxStreamChunks}]`}),s++)}a.trim()&&(s<r.maxStreamChunks&&rp(e,n,s,a.trim()),s++),op(e,n,s)}catch(a){console.error(`[debug_log] Error reading debug stream for reqId=${n}:`,a),op(e,n,s)}finally{o.releaseLock()}})()}var bi="2.3.13";Wn();var Sn=require("fs"),Ec=require("path"),bp=require("@wengine-ai/claude-code-router-shared"),Cc=(0,Ec.join)(bp.HOME_DIR,"runtime"),wc=(0,Ec.join)(Cc,"rate-limit.json"),Jr=new Map,gp=!1,zC=null,HC=["x-ratelimit-remaining-tokens","x-ratelimit-remaining-requests","x-ratelimit-remaining"],WC=["x-ratelimit-limit-tokens","x-ratelimit-limit-requests","x-ratelimit-limit"],GC=["x-ratelimit-reset-tokens","x-ratelimit-reset-requests","x-ratelimit-reset"];function Wo(t,e,n){let r=u=>{if(n instanceof Headers)return n.get(u);let l=Object.keys(n).find(d=>d.toLowerCase()===u);return l?n[l]:null},o=bc(r,HC),s=bc(r,WC),a=bc(r,GC);(o||s||a)&&Jr.set(t,{provider:t,remaining:yp(o),limit:yp(s),reset:JC(a),capturedAt:Date.now()})}function Cp(t){return Jr.get(t)}function wp(){return Array.from(Jr.values())}function bc(t,e){for(let n of e){let r=t(n);if(r)return r}return null}function yp(t){if(!t)return null;let e=Number(t.trim().replace(/,/g,""));return Number.isFinite(e)?e:null}function JC(t){if(!t)return null;let e=t.trim();if(!e)return null;let n=Number(e);if(Number.isFinite(n))return n>1e12?Math.floor(n/1e3):n>1e9?Math.floor(n):Math.floor(Date.now()/1e3+n);let r=Date.parse(e);if(Number.isFinite(r))return Math.floor(r/1e3);let o=VC(e);return o===null?null:Math.floor((Date.now()+o)/1e3)}function VC(t){let e=/(\d+(?:\.\d+)?)(ms|s|m|h|d)/gi,n=0,r=!1;for(let o of t.matchAll(e)){r=!0;let s=Number(o[1]),a=o[2].toLowerCase();if(Number.isFinite(s))switch(a){case"ms":n+=s;break;case"s":n+=s*1e3;break;case"m":n+=s*60*1e3;break;case"h":n+=s*60*60*1e3;break;case"d":n+=s*24*60*60*1e3;break}}return r?n:null}function KC(){try{if(!(0,Sn.existsSync)(wc))return;let t=JSON.parse((0,Sn.readFileSync)(wc,"utf-8"));if(!Array.isArray(t))return;let e=Date.now();for(let n of t)if(n&&n.provider){if(n.capturedAt&&e-n.capturedAt>3600*1e3)continue;Jr.set(n.provider,n)}}catch{}}function _p(){try{if(Jr.size===0)return;(0,Sn.existsSync)(Cc)||(0,Sn.mkdirSync)(Cc,{recursive:!0}),(0,Sn.writeFileSync)(wc,JSON.stringify(Array.from(Jr.values()),null,2),"utf-8")}catch{}}function Ei(){gp||(gp=!0,KC(),zC=setInterval(_p,6e4),process.on("exit",_p))}Ci();var Vr=class{name="openai-responses";endPoint="/v1/responses";getCacheReadInputTokens(e){return e?.cache_read_input_tokens??e?.input_tokens_details?.cached_tokens??e?.prompt_tokens_details?.cached_tokens??0}getCacheCreationInputTokens(e){return e?.cache_creation_input_tokens??e?.input_tokens_details?.cache_creation_tokens??e?.input_tokens_details?.cache_write_tokens??e?.prompt_tokens_details?.cache_creation_tokens??e?.prompt_tokens_details?.cache_write_tokens??0}buildResponsesUsage(e){let n=e?.input_tokens??e?.prompt_tokens??0,r=e?.output_tokens??e?.completion_tokens??0,o=this.getCacheReadInputTokens(e),s=this.getCacheCreationInputTokens(e);return{input_tokens:n,output_tokens:r,total_tokens:e?.total_tokens??n+r,input_tokens_details:{cached_tokens:o,cache_creation_tokens:s},output_tokens_details:{reasoning_tokens:e?.output_tokens_details?.reasoning_tokens??0},cache_read_input_tokens:o,cache_creation_input_tokens:s}}async transformRequestIn(e){delete e.temperature,delete e.max_tokens,e.reasoning&&(e.reasoning={effort:e.reasoning.effort,summary:e.reasoning.summary||"auto"});let n=[],r=e.messages.filter(o=>o.role==="system");if(r.length>0){let o=r[0];Array.isArray(o.content)?o.content.forEach(s=>{let a="";typeof s=="string"?a=s:s&&typeof s=="object"&&"text"in s&&(a=s.text),n.push({role:"system",content:a})}):e.instructions=o.content}if(e.messages.forEach(o=>{if(o.role!=="system"){if(Array.isArray(o.content)){let s=o.content.map(a=>this.normalizeRequestContent(a,o.role)).filter(a=>a!==null);s.length>0?o.content=s:delete o.content}if(o.role==="tool"){let s={...o};s.type="function_call_output",s.call_id=o.tool_call_id,s.output=o.content,delete s.cache_control,delete s.role,delete s.tool_call_id,delete s.content,n.push(s);return}if(o.role==="assistant"&&Array.isArray(o.tool_calls)){o.tool_calls.forEach(s=>{n.push({type:"function_call",arguments:s.function.arguments,name:s.function.name,call_id:s.id})});return}n.push(o)}}),e.input=n,delete e.messages,Array.isArray(e.tools)){let o=e.tools.find(s=>s.function.name==="web_search");e.tools=e.tools.filter(s=>s.function.name!=="web_search").map(s=>(s.function.name==="WebSearch"&&delete s.function.parameters.properties.allowed_domains,s.function.name==="Edit"?{type:s.type,name:s.function.name,description:s.function.description,parameters:{...s.function.parameters,required:["file_path","old_string","new_string","replace_all"]},strict:!0}:{type:s.type,name:s.function.name,description:s.function.description,parameters:s.function.parameters})),o&&e.tools.push({type:"web_search"})}return e.parallel_tool_calls=!1,e}async transformResponseOut(e){let n=e.headers.get("Content-Type")||"";if(n.includes("application/json")){let r=await e.json();if(r.object==="response"&&r.output){let o=this.convertResponseToChat(r);return new Response(JSON.stringify(o),{status:e.status,statusText:e.statusText,headers:e.headers})}return r.type==="message"&&Array.isArray(r.content)?new Response(JSON.stringify(r),{status:e.status,statusText:e.statusText,headers:e.headers}):new Response(JSON.stringify(r),{status:e.status,statusText:e.statusText,headers:e.headers})}else if(n.includes("text/event-stream")){if(!e.body)return e;let[r,o]=e.body.tee(),s=r.getReader(),a="";try{let{value:g,done:_}=await s.read();!_&&g&&(a=new TextDecoder().decode(g))}finally{s.releaseLock()}if(r.cancel().catch(()=>{}),a.includes("message_start")||a.includes("content_block_start")){let g=this.prependToStream(a,o);return new Response(g,{status:e.status,statusText:e.statusText,headers:e.headers})}if(a.includes("response.created")||a.includes("response.output_text.delta")||a.includes("response.in_progress")||a.includes("response.output_item.added")){let g=this.prependToStream(a,o);return new Response(g,{status:e.status,statusText:e.statusText,headers:e.headers})}let d=this.prependToStream(a,o),f=new TextDecoder,p=new TextEncoder,m="",b=!1,w=this,y=new ReadableStream({async start(g){let _=d.getReader(),A=-1,C="",S=T=>(T!==C&&(A++,C=T),A);try{for(;;){let{done:T,value:R}=await _.read();if(T){b||g.enqueue(p.encode(`data: [DONE]
|
|
75
75
|
|
|
76
76
|
`));break}let $=f.decode(R,{stream:!0});m+=$;let V=m.split(/\r?\n/);m=V.pop()||"";for(let P of V)if(P.trim())try{if(P.startsWith("event: "))continue;if(P.startsWith("data: ")){let Y=P.slice(5).trim();if(Y==="[DONE]"){b=!0,g.enqueue(p.encode(`data: [DONE]
|
|
77
77
|
|
|
@@ -97,25 +97,25 @@ ${this.toMarkdown(s,n+1)}`:`${r}${o}: ${s}`).join(`
|
|
|
97
97
|
`))}}m.trim()&&g.enqueue(p.encode(m+`
|
|
98
98
|
`)),b||g.enqueue(p.encode(`data: [DONE]
|
|
99
99
|
|
|
100
|
-
`))}catch(
|
|
100
|
+
`))}catch(T){console.error("Stream error:",T),g.error(T)}finally{try{_.releaseLock()}catch(T){console.error("Error releasing reader lock:",T)}g.close()}}});return new Response(y,{status:e.status,statusText:e.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":"*"}})}return e}normalizeRequestContent(e,n){let r={...e};if(delete r.cache_control,e.type==="text")return{type:n==="assistant"?"output_text":"input_text",text:e.text};if(e.type==="image_url"){console.log(e);let o={type:n==="assistant"?"output_image":"input_image"};return typeof e.image_url?.url=="string"&&(o.image_url=e.image_url.url),o}return null}async transformResponseIn(e,n){if(e.headers.get("Content-Type")?.includes("text/event-stream")&&e.body){let[o,s]=e.body.tee(),a=o.getReader(),u="";try{let{value:m,done:b}=await a.read();!b&&m&&(u=new TextDecoder().decode(m))}finally{a.releaseLock()}o.cancel().catch(()=>{});let l=u.includes("message_start")||u.includes("content_block_start"),d=u.includes("chat.completion.chunk");if(u.includes("response.created")||u.includes("response.output_text.delta")||u.includes("response.in_progress")||u.includes("response.output_item.added"))return new Response(s,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}});if(d&&!l){let m=this.convertOpenAIChatStreamToResponsesAPI(s,n);return new Response(m,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}let p=this.convertAnthropicStreamToResponsesAPI(s,n);return new Response(p,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}try{let o=await e.json();return new Response(JSON.stringify(this.wrapChatInResponses(o)),{headers:{"Content-Type":"application/json"}})}catch{return e}}prependToStream(e,n){let o=new TextEncoder().encode(e),s=n.getReader(),a=!1;return new ReadableStream({async pull(u){a||(a=!0,u.enqueue(o));try{let{done:l,value:d}=await s.read();l?u.close():u.enqueue(d)}catch(l){u.error(l)}},cancel(){s.cancel().catch(()=>{})}})}convertOpenAIChatStreamToResponsesAPI(e,n){let r=new TextDecoder,o=new TextEncoder,s=n?.provider?.models?.[0]||"gpt-5.4",a=`resp_${Date.now()}`,u=0,l=!1,d=!1,f="",p=-1,m=[],b=(y,g)=>o.encode(`event: ${y}
|
|
101
101
|
data: ${JSON.stringify(g)}
|
|
102
102
|
|
|
103
|
-
`),w=(y,g=[])=>({id:a,object:"response",created_at:Math.floor(Date.now()/1e3),status:y,model:s,output:g,usage:this.buildResponsesUsage()});return new ReadableStream({async start(y){try{let g=e.getReader(),_="",A=!1,C=S=>{if(!A){A=!0;for(let
|
|
103
|
+
`),w=(y,g=[])=>({id:a,object:"response",created_at:Math.floor(Date.now()/1e3),status:y,model:s,output:g,usage:this.buildResponsesUsage()});return new ReadableStream({async start(y){try{let g=e.getReader(),_="",A=!1,C=S=>{if(!A){A=!0;for(let T of m)if(T.type==="function_call"){let R=m.indexOf(T);y.enqueue(b("response.function_call_arguments.done",{type:"response.function_call_arguments.done",item_id:T.call_id||T.id,output_index:R,arguments:T.arguments||""})),T.status="completed",y.enqueue(b("response.output_item.done",{type:"response.output_item.done",output_index:R,item:T}))}for(let T of m)if(T.type==="message"){let R=m.indexOf(T);T.status="completed",y.enqueue(b("response.output_item.done",{type:"response.output_item.done",output_index:R,item:T}))}y.enqueue(b("response.completed",{type:"response.completed",response:{id:a,object:"response",created_at:Math.floor(Date.now()/1e3),status:"completed",model:S?.model||s,output:m.slice(),usage:S?.usage?{...this.buildResponsesUsage(S.usage)}:this.buildResponsesUsage()}}))}};for(;;){let{done:S,value:T}=await g.read();if(S)break;_+=r.decode(T,{stream:!0});let R=_.split(`
|
|
104
104
|
`);_=R.pop()||"";for(let $ of R){let V=$.trim();if(!V||V.startsWith("event:")||!V.startsWith("data:"))continue;let P=V.slice(5).trim();if(P==="[DONE]"){C({}),y.enqueue(o.encode(`data: [DONE]
|
|
105
105
|
|
|
106
|
-
`));continue}let Y;try{Y=JSON.parse(P)}catch{continue}l||(l=!0,y.enqueue(b("response.created",{type:"response.created",response:w("in_progress")})),y.enqueue(b("response.in_progress",{type:"response.in_progress",response:w("in_progress")})));let z=Y.choices?.[0];if(!z)continue;let K=z.delta;if(K?.content){if(!d){d=!0;let Q=u++,ee={id:`${a}_msg`,type:"message",status:"in_progress",role:"assistant",content:[]};m.push(ee),y.enqueue(b("response.output_item.added",{type:"response.output_item.added",output_index:Q,item:ee}))}y.enqueue(b("response.output_text.delta",{type:"response.output_text.delta",item_id:`${a}_msg`,output_index:u-1,content_index:0,delta:K.content}))}if(Array.isArray(K?.tool_calls))for(let Q of K.tool_calls){if(Q.id){f=Q.id,p=u++;let ee={id:Q.id,type:"function_call",status:"in_progress",call_id:Q.id,name:Q.function?.name||"",arguments:""};m.push(ee),y.enqueue(b("response.output_item.added",{type:"response.output_item.added",output_index:p,item:ee}))}if(Q.function?.arguments){y.enqueue(b("response.function_call_arguments.delta",{type:"response.function_call_arguments.delta",item_id:f,output_index:p,delta:Q.function.arguments}));let ee=m.find(ie=>ie.call_id===f);ee&&(ee.arguments+=Q.function.arguments)}}z.finish_reason&&C(Y)}}A||C({}),y.close()}catch(g){y.error(g)}}})}convertAnthropicStreamToResponsesAPI(e,n){let r=new TextDecoder,o=new TextEncoder,s=n?.provider?.models?.[0]||"gpt-5.4",a=`resp_${Date.now()}`,u="",l="",d=-1,f="",p="",m="",b=-1,w="",y="",g=-1,_=0,A=!1,C=!1,S=!1,
|
|
106
|
+
`));continue}let Y;try{Y=JSON.parse(P)}catch{continue}l||(l=!0,y.enqueue(b("response.created",{type:"response.created",response:w("in_progress")})),y.enqueue(b("response.in_progress",{type:"response.in_progress",response:w("in_progress")})));let z=Y.choices?.[0];if(!z)continue;let K=z.delta;if(K?.content){if(!d){d=!0;let Q=u++,ee={id:`${a}_msg`,type:"message",status:"in_progress",role:"assistant",content:[]};m.push(ee),y.enqueue(b("response.output_item.added",{type:"response.output_item.added",output_index:Q,item:ee}))}y.enqueue(b("response.output_text.delta",{type:"response.output_text.delta",item_id:`${a}_msg`,output_index:u-1,content_index:0,delta:K.content}))}if(Array.isArray(K?.tool_calls))for(let Q of K.tool_calls){if(Q.id){f=Q.id,p=u++;let ee={id:Q.id,type:"function_call",status:"in_progress",call_id:Q.id,name:Q.function?.name||"",arguments:""};m.push(ee),y.enqueue(b("response.output_item.added",{type:"response.output_item.added",output_index:p,item:ee}))}if(Q.function?.arguments){y.enqueue(b("response.function_call_arguments.delta",{type:"response.function_call_arguments.delta",item_id:f,output_index:p,delta:Q.function.arguments}));let ee=m.find(ie=>ie.call_id===f);ee&&(ee.arguments+=Q.function.arguments)}}z.finish_reason&&C(Y)}}A||C({}),y.close()}catch(g){y.error(g)}}})}convertAnthropicStreamToResponsesAPI(e,n){let r=new TextDecoder,o=new TextEncoder,s=n?.provider?.models?.[0]||"gpt-5.4",a=`resp_${Date.now()}`,u="",l="",d=-1,f="",p="",m="",b=-1,w="",y="",g=-1,_=0,A=!1,C=!1,S=!1,T=!1,R=null,$=[],V=(ee,ie)=>o.encode(`event: ${ee}
|
|
107
107
|
data: ${JSON.stringify(ie)}
|
|
108
108
|
|
|
109
|
-
`),P=(ee,ie=[])=>({id:a,object:"response",created_at:Math.floor(Date.now()/1e3),status:ee,model:s,output:ie,usage:this.buildResponsesUsage()}),Y=()=>{A||(A=!0,Q.enqueue(V("response.created",{type:"response.created",response:P("in_progress")})),Q.enqueue(V("response.in_progress",{type:"response.in_progress",response:P("in_progress")})))},z=(ee,ie)=>{Q.enqueue(V("response.output_item.done",{type:"response.output_item.done",output_index:ee,item:{...ie,status:"completed"}}))},K=ee=>{if(!
|
|
110
|
-
`);oe=se.pop()||"";for(let Ue of se){let ke=Ue.trim();if(!ke||ke.startsWith("event:")||!ke.startsWith("data:"))continue;let J=ke.slice(5).trim();if(J==="[DONE]")continue;let ue;try{ue=JSON.parse(J)}catch{continue}if(ue.type==="message_start"&&(a=ue.message?.id||a,Y()),ue.type==="content_block_start"){let te=ue.content_block;if(R=te?.type||null,te?.type==="tool_use"){f=te.id||"",p=te.name||"",m="",b=_++;let
|
|
109
|
+
`),P=(ee,ie=[])=>({id:a,object:"response",created_at:Math.floor(Date.now()/1e3),status:ee,model:s,output:ie,usage:this.buildResponsesUsage()}),Y=()=>{A||(A=!0,Q.enqueue(V("response.created",{type:"response.created",response:P("in_progress")})),Q.enqueue(V("response.in_progress",{type:"response.in_progress",response:P("in_progress")})))},z=(ee,ie)=>{Q.enqueue(V("response.output_item.done",{type:"response.output_item.done",output_index:ee,item:{...ie,status:"completed"}}))},K=ee=>{if(!T){if(T=!0,C){let ie=$.find(oe=>oe.type==="message");ie&&(ie.content=[{type:"output_text",text:u}],ie.status="completed")}for(let ie of $)ie.type==="function_call"&&(ie.status="completed");return V("response.completed",{type:"response.completed",response:{id:a,object:"response",created_at:Math.floor(Date.now()/1e3),status:"completed",model:s,output:$,usage:ee?{...this.buildResponsesUsage(ee)}:this.buildResponsesUsage()}})}},Q;return new ReadableStream({async start(ee){Q=ee;try{let ie=e.getReader(),oe="";for(;;){let{done:G,value:Z}=await ie.read();if(G)break;oe+=r.decode(Z,{stream:!0});let se=oe.split(`
|
|
110
|
+
`);oe=se.pop()||"";for(let Ue of se){let ke=Ue.trim();if(!ke||ke.startsWith("event:")||!ke.startsWith("data:"))continue;let J=ke.slice(5).trim();if(J==="[DONE]")continue;let ue;try{ue=JSON.parse(J)}catch{continue}if(ue.type==="message_start"&&(a=ue.message?.id||a,Y()),ue.type==="content_block_start"){let te=ue.content_block;if(R=te?.type||null,te?.type==="tool_use"){f=te.id||"",p=te.name||"",m="",b=_++;let ve={id:f,type:"function_call",status:"in_progress",call_id:f,name:p,arguments:""};$.push(ve),Q.enqueue(V("response.output_item.added",{type:"response.output_item.added",output_index:b,item:ve}))}if(te?.type==="thinking"&&(w=te.thinking||"",!S)){S=!0,g=_++,y=`rs_${a}`;let ve={id:y,type:"reasoning",status:"in_progress",summary:[]};$.push(ve),Q.enqueue(V("response.output_item.added",{type:"response.output_item.added",output_index:g,item:ve}))}if(te?.type==="text"&&(u=te?.text||"",!C)){C=!0,d=_++,l=`${a}_msg`;let ve={id:l,type:"message",status:"in_progress",role:"assistant",content:[]};$.push(ve),Q.enqueue(V("response.output_item.added",{type:"response.output_item.added",output_index:d,item:ve}))}}if(ue.type==="content_block_delta"){let te=ue.delta;if(te?.type==="text_delta"){if(!C){C=!0,d=_++,l=`${a}_msg`;let ve={id:l,type:"message",status:"in_progress",role:"assistant",content:[]};$.push(ve),Q.enqueue(V("response.output_item.added",{type:"response.output_item.added",output_index:d,item:ve}))}u+=te.text||"",Q.enqueue(V("response.output_text.delta",{type:"response.output_text.delta",item_id:l,output_index:d,content_index:0,delta:te.text||""}))}te?.type==="thinking_delta"&&(w+=te.thinking||"",Q.enqueue(V("response.reasoning_summary_text.delta",{type:"response.reasoning_summary_text.delta",item_id:y||`rs_${a}`,output_index:g>=0?g:0,summary_index:0,delta:te.thinking||""}))),te?.type==="input_json_delta"&&(m+=te.partial_json||"",Q.enqueue(V("response.function_call_arguments.delta",{type:"response.function_call_arguments.delta",item_id:f||"call_0",output_index:b>=0?b:0,delta:te.partial_json||""})))}if(ue.type==="content_block_stop"){if(R==="tool_use"&&f){Q.enqueue(V("response.function_call_arguments.done",{type:"response.function_call_arguments.done",item_id:f,output_index:b,arguments:m}));let te=$.find(ve=>ve.call_id===f);te&&(te.arguments=m,te.status="completed"),te&&z(b,te)}if(R==="text"&&C){Q.enqueue(V("response.output_text.done",{type:"response.output_text.done",item_id:l,output_index:d,content_index:0,text:u}));let te=$.find(ve=>ve.type==="message");te&&(te.content=[{type:"output_text",text:u}],z(d,te))}if(R==="thinking"&&S){let te=$.find(ve=>ve.type==="reasoning");te&&(te.summary=[{type:"summary_text",text:w}],z(g,te))}R=null}if(ue.type==="message_delta"){let te=K(ue.usage);te&&Q.enqueue(te)}if(ue.type==="message_stop"){let te=K();te&&Q.enqueue(te),Q.enqueue(o.encode(`data: [DONE]
|
|
111
111
|
|
|
112
|
-
`))}}}Y();let pe=K();pe&&Q.enqueue(pe),oe="",Q.close()}catch(ie){Q.error(ie)}}})}wrapChatInResponses(e){let n=e?.choices?.[0],r=[],o=[];if(n?.message?.content&&o.push({type:"output_text",text:n.message.content}),r.push({type:"message",role:"assistant",content:o}),Array.isArray(n?.message?.tool_calls))for(let s of n.message.tool_calls)r.push({type:"function_call",id:s.id,call_id:s.id,name:s.function?.name||"",arguments:s.function?.arguments||"{}"});return{id:e.id||`resp_${Date.now()}`,object:"response",model:e.model,output:r,usage:e.usage?{...this.buildResponsesUsage(e.usage)}:void 0}}convertResponseToChat(e){let n=e.output?.find(d=>d.type==="message"),r=e.output?.find(d=>d.type==="function_call"),o;n?.content?.length&&n?.content[0].annotations&&(o=n.content[0].annotations.map(d=>({type:"url_citation",url_citation:{url:d.url||"",title:d.title||"",content:"",start_index:d.start_index||0,end_index:d.end_index||0}}))),this.logger.debug({data:o,type:"url_citation"});let s=null,a=null,u=null;if(n&&n.reasoning&&(u={content:n.reasoning}),n&&n.content){let d=[],f=[];if(n.content.forEach(p=>{if(p.type==="output_text")d.push(p.text||"");else if(p.type==="output_image"){let m=this.buildImageContent({url:p.image_url,mime_type:p.mime_type});m&&f.push(m)}else if(p.type==="output_image_base64"){let m=this.buildImageContent({b64_json:p.image_base64,mime_type:p.mime_type});m&&f.push(m)}}),f.length>0){let p=[];d.length>0&&p.push({type:"text",text:d.join("")}),p.push(...f),s=p}else s=d.join("")}return r&&(a=[{id:r.call_id||r.id,function:{name:r.name,arguments:r.arguments},type:"function"}]),{id:e.id||"chatcmpl-"+Date.now(),object:"chat.completion",created:e.created_at,model:e.model,choices:[{index:0,message:{role:"assistant",content:s||null,tool_calls:a,thinking:u,annotations:o},logprobs:null,finish_reason:a?"tool_calls":"stop"}],usage:e.usage?{prompt_tokens:e.usage.input_tokens||0,completion_tokens:e.usage.output_tokens||0,total_tokens:e.usage.total_tokens||0,prompt_tokens_details:{cached_tokens:this.getCacheReadInputTokens(e.usage),cache_creation_tokens:this.getCacheCreationInputTokens(e.usage)},cache_read_input_tokens:this.getCacheReadInputTokens(e.usage),cache_creation_input_tokens:this.getCacheCreationInputTokens(e.usage)}:null}}buildImageContent(e){return e&&(e.url||e.b64_json)?{type:"image_url",image_url:{url:e.url||"",b64_json:e.b64_json},media_type:e.mime_type}:null}};var xp=require("tiktoken");var Ec=class{capacity;cache;constructor(e){this.capacity=e,this.cache=new Map}get(e){if(!this.cache.has(e))return;let n=this.cache.get(e);return this.cache.delete(e),this.cache.set(e,n),n}put(e,n){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.capacity){let r=this.cache.keys().next().value;r!==void 0&&this.cache.delete(r)}this.cache.set(e,n)}values(){return Array.from(this.cache.values())}},Ei=new Ec(100);var Ti=require("fs/promises"),Ri=require("fs/promises"),vi=require("path"),Xr=require("@wengine-ai/claude-code-router-shared");Wn();var Tn=require("fs"),Sc=require("path"),Ap=require("@wengine-ai/claude-code-router-shared"),kc=(0,Sc.join)(Ap.HOME_DIR,"runtime"),Ac=(0,Sc.join)(kc,"quota-store.json"),Kr=new Map,Ep=!1,KC=null;function ki(t,e){t&&Kr.set(t,{...e,provider:t,capturedAt:Date.now()})}function Ai(t){let e=Kr.get(t);return e?{...e}:void 0}function Sp(){return Array.from(Kr.values()).map(t=>({...t}))}function YC(){try{if(!(0,Tn.existsSync)(Ac))return;let t=JSON.parse((0,Tn.readFileSync)(Ac,"utf-8"));if(!Array.isArray(t))return;let e=Date.now();for(let n of t)if(n&&n.provider){if(n.capturedAt&&e-n.capturedAt>1440*60*1e3)continue;Kr.set(n.provider,n)}}catch{}}function kp(){try{if(Kr.size===0)return;(0,Tn.existsSync)(kc)||(0,Tn.mkdirSync)(kc,{recursive:!0}),(0,Tn.writeFileSync)(Ac,JSON.stringify(Array.from(Kr.values()),null,2),"utf-8")}catch{}}function Si(){Ep||(Ep=!0,YC(),KC=setInterval(kp,6e4),process.on("exit",kp))}bi();var QC=/^[A-Za-z0-9_-]+$/;function mr(t){if(typeof t!="string")return;let e=t.trim();if(!(!e||!QC.test(e)))return e}function Yr(t){if(!t)return;if(typeof t=="object")return mr(t.session_id??t.sessionId);if(typeof t!="string")return;let e=t.trim();if(!e)return;try{let o=JSON.parse(e),s=mr(o?.session_id??o?.sessionId);if(s)return s}catch{}let n="_session_",r=e.lastIndexOf(n);if(r!==-1)return mr(e.slice(r+n.length))}var vn=(0,xp.get_encoding)("cl100k_base"),Tc=(t,e,n)=>{let r=0;return Array.isArray(t)&&t.forEach(o=>{typeof o.content=="string"?r+=vn.encode(o.content).length:Array.isArray(o.content)&&o.content.forEach(s=>{s.type==="text"?r+=vn.encode(s.text).length:s.type==="tool_use"?r+=vn.encode(JSON.stringify(s.input)).length:s.type==="tool_result"&&(r+=vn.encode(typeof s.content=="string"?s.content:JSON.stringify(s.content)).length)})}),typeof e=="string"?r+=vn.encode(e).length:Array.isArray(e)&&e.forEach(o=>{o.type==="text"&&(typeof o.text=="string"?r+=vn.encode(o.text).length:Array.isArray(o.text)&&o.text.forEach(s=>{r+=vn.encode(s||"").length}))}),n&&n.forEach(o=>{o.description&&(r+=vn.encode(o.name+o.description).length),o.input_schema&&(r+=vn.encode(JSON.stringify(o.input_schema)).length)}),r},Op=async(t,e)=>{if(t.sessionId){let n=await vc(t.sessionId);if(n){let r=(0,vi.join)(Xr.HOME_DIR,n,"config.json"),o=(0,vi.join)(Xr.HOME_DIR,n,`${t.sessionId}.json`);try{let s=JSON.parse(await(0,Ti.readFile)(o,"utf8"));if(s&&s.Router&&Object.keys(s.Router).length>0)return s.Router}catch{}try{let s=JSON.parse(await(0,Ti.readFile)(r,"utf8"));if(s&&s.Router&&Object.keys(s.Router).length>0)return s.Router}catch{}}}};function Di(t){let e=t||"";return e.includes(",")&&(e=e.split(",").pop()||e),e.includes("/")&&(e=e.split("/").pop()||e),e.includes(":")&&(e=e.split(":")[0]),e.trim().toLowerCase()}function Pp(t){let e=Di(t),n=e.includes("[1m]")||e.endsWith("[1m"),r=e.replace(/\[1m\]|\[1m$/g,""),o=r.match(/^ccr-(opus|sonnet|haiku)$/i);if(o)return{family:o[1].toLowerCase(),extended:n,isCcrAlias:!0};let s=r.match(/claude-(?:\d+-\d+-|\d+-)?(sonnet|opus|haiku)(?:-|$)/i)||r.match(/claude-(sonnet|opus|haiku)(?:-|$)/i);return s?{family:s[1].toLowerCase(),extended:n,isCcrAlias:!1}:{family:null,extended:n,isCcrAlias:!1}}function XC(t,e){if(!e||!t)return null;let n=Di(t);if(e[t])return e[t];if(e[n])return e[n];let{family:r}=Pp(t);if(r&&e[r])return e[r];for(let[o,s]of Object.entries(e)){let a=Di(o);if(a&&n.includes(a))return s}return null}function Fp(t){return t?(t.input_tokens||0)+(t.cache_read_input_tokens||0)+(t.cache_creation_input_tokens||0):0}function Tp(t){if(!t?.includes(","))return null;let[e,...n]=t.split(","),r=e.trim(),o=n.join(",").trim();return!r||!o?null:{providerName:r,routeModel:o}}function tt(t,e,n,r,o){let s=Tp(t);if(!s)return t;let{providerName:a,routeModel:u}=s,l=e.find(p=>p.name.toLowerCase()===a.toLowerCase());if(l&&l.enabled===!1)return null;if(o===!0&&r&&!n){let p=zo(),m=p.getPromotion(a,u,r,e);if(m){let b=Tp(m);if(b){let w=e.find(g=>g.name.toLowerCase()===b.providerName.toLowerCase()),y=w?.models?.find(g=>String(g).toLowerCase()===b.routeModel.toLowerCase());if(w&&y)return`${w.name},${y}`}p.clear(a,u,r)}}if(!n&&!Je().isAvailable(a,u))return null;let d=Ai(a);if(d){let p=d.limitDaily!==void 0&&d.usedDailyBalance!==void 0&&d.usedDailyBalance>=d.limitDaily,m=d.totalBalance!==void 0&&d.usedBalance!==void 0&&d.usedBalance>=d.totalBalance;if(p||m)return null}let f=l?.models?.find(p=>String(p).toLowerCase()===u.toLowerCase());return l&&f?`${l.name},${f}`:t}function $t(t,e,n,r,o){let s=Je(),a=[n?.[t],r?.[t]];for(let u of a)if(!(!Array.isArray(u)||u.length===0))for(let l of u){let d=tt(l,e);if(d)return d}return null}function ZC(t){return t.body.messages?.some(e=>e.role==="user"&&Array.isArray(e.content)&&e.content.some(n=>n.type==="image"||n.type==="image_url"||Array.isArray(n?.content)&&n.content.some(r=>r.type==="image"||r.type==="image_url")))}function ew(t){let e=Di(t);return[/claude/i,/gemini/i,/gpt-4o/i,/gpt-4\.1/i,/gpt-4-vision/i,/qwen.*vl/i,/glm-4v/i,/grok.*vision/i,/pixtral/i,/llava/i].some(r=>r.test(e))}function tw(t,e,n,r,o,s,a,u){let l=n.longContextThreshold||6e4,d=Math.max(e,Fp(o)),f=t.modelFamily;if((s||d>2e5)&&n.extendedContext){let w=tt(n.extendedContext,r,!1,"extendedContext",u);if(w)return t.log.info(`Family: using extended context model (1M+), tokens: ${d}, estimated: ${e}, explicit: ${s}`),{model:w,scenarioType:"extendedContext",isFallback:!1};let y=u?$t("extendedContext",r,n.fallback,a,f):null;if(y)return t.log.info(`Family: using extended context fallback model (1M+), tokens: ${d}, estimated: ${e}, explicit: ${s}`),{model:y,scenarioType:"extendedContext",isFallback:!0};t.log.warn("Family: extendedContext model unavailable (fail pool), skipping")}if(d>l&&(n.longContext||n.fallback?.longContext?.length||a?.longContext?.length)){let w=n.longContext?tt(n.longContext,r,!1,"longContext",u):null;if(w)return t.log.info(`Family: using long context model, tokens: ${d}, estimated: ${e}`),{model:w,scenarioType:"longContext",isFallback:!1};let y=u?$t("longContext",r,n.fallback,a,f):null;if(y)return t.log.info(`Family: using long context fallback model, tokens: ${d}, estimated: ${e}`),{model:y,scenarioType:"longContext",isFallback:!0};t.log.warn("Family: no healthy longContext model available, falling through to other scenarios")}if(Array.isArray(t.body.tools)&&t.body.tools.some(w=>w.type?.startsWith("web_search"))&&n.webSearch){let w=tt(n.webSearch,r,!1,"webSearch",u);if(w)return{model:w,scenarioType:"webSearch",isFallback:!1};let y=u?$t("webSearch",r,n.fallback,a,f):null;if(y)return t.log.info("Family: using webSearch fallback model"),{model:y,scenarioType:"webSearch",isFallback:!0};t.log.warn("Family: webSearch model unavailable (fail pool), skipping")}if(t.body.thinking?.type==="enabled"&&n.think){let w=tt(n.think,r,!1,"think",u);if(w)return{model:w,scenarioType:"think",isFallback:!1};let y=u?$t("think",r,n.fallback,a,f):null;if(y)return t.log.info("Family: using think fallback model"),{model:y,scenarioType:"think",isFallback:!0};t.log.warn("Family: think model unavailable (fail pool), skipping")}if(n.default){let w=tt(n.default,r,!1,"default",u);if(w)return{model:w,scenarioType:"default",isFallback:!1};let y=u?$t("default",r,n.fallback,a,f):null;if(y)return t.log.info("Family: using default fallback model"),{model:y,scenarioType:"default",isFallback:!0};t.log.warn("Family: default model unavailable (fail pool), skipping")}return null}var nw=async(t,e,n,r)=>{let o=await Op(t,n),s=n.get("providers")||[],a=o||n.get("Router"),u=a?.enableFallback===!0,l=u?a?.fallback||n.get("fallback"):void 0;if(t.body.model.includes(",")){let A=tt(t.body.model,s,!1,"default",u);if(A)return{model:A,scenarioType:"default"};t.log.warn(`Explicit model ${t.body.model} unavailable (fail pool), trying fallback`);let C=u?$t("default",s,void 0,l):null;if(C)return t.log.info(`Using fallback for explicit model: ${C}`),{model:C,scenarioType:"default"};t.log.warn(`No fallback available for explicit model ${t.body.model}, continuing through routing logic`)}let{family:d,extended:f,isCcrAlias:p}=Pp(t.body.model),m=a?.families?.[d||""];if(m&&a?.enableFamilyRouting){t.log.info(`Using model family routing for: ${d}${f?" (1M)":""}`),t.modelFamily=d,t.familyFallback=m.fallback;let A=tw(t,e,m,s,r,f,l,u);if(A)return{model:A.model,scenarioType:A.scenarioType}}let b=p&&!a?.enableFamilyRouting?null:XC(t.body.model,a?.models);if(b){let A=tt(b,s,!1,"modelMapping",u);if(A)return t.log.info(`Using mapped model for ${t.body.model}: ${b}`),{model:A,scenarioType:"modelMapping"};t.log.warn(`Mapped model ${b} unavailable (fail pool), skipping`)}let w=Math.max(e,Fp(r)),y=a?.extendedContextThreshold||2e5;if(w>y&&a?.extendedContext){t.log.info(`Using extended context (1M) model due to token count: ${w}, estimated: ${e}, threshold: ${y}`);let A=tt(a.extendedContext,s,!1,"extendedContext",u);if(A)return{model:A,scenarioType:"extendedContext"};t.log.warn(`Extended context model ${a.extendedContext} unavailable (fail pool), trying fallback`);let C=u?$t("extendedContext",s,void 0,l):null;if(C)return{model:C,scenarioType:"extendedContext"}}let g=a?.longContextThreshold||6e4;if(w>g&&a?.longContext){t.log.info(`Using long context model due to token count: ${w}, estimated: ${e}, threshold: ${g}`);let A=tt(a.longContext,s,!1,"longContext",u);if(A)return{model:A,scenarioType:"longContext"};t.log.warn(`Long context model ${a.longContext} unavailable (fail pool), trying fallback`);let C=u?$t("longContext",s,void 0,l):null;if(C)return{model:C,scenarioType:"longContext"}}if(t.body?.system?.length>1&&t.body?.system[1]?.text?.startsWith("<CCR-SUBAGENT-MODEL>")){let A=t.body?.system[1].text.match(/<CCR-SUBAGENT-MODEL>(.*?)<\/CCR-SUBAGENT-MODEL>/s);if(A)return t.body.system[1].text=t.body.system[1].text.replace(`<CCR-SUBAGENT-MODEL>${A[1]}</CCR-SUBAGENT-MODEL>`,""),{model:A[1],scenarioType:"default"}}if(t.body.model?.includes("claude")&&t.body.model?.includes("haiku")&&a?.background){t.log.info(`Using background model for ${t.body.model}`);let A=tt(a.background,s,!1,"background",u);if(A)return{model:A,scenarioType:"background"};t.log.warn(`Background model ${a.background} unavailable (fail pool), falling through`)}if(Array.isArray(t.body.tools)&&t.body.tools.some(A=>A.type?.startsWith("web_search"))&&a?.webSearch){let A=tt(a.webSearch,s,!1,"webSearch",u);if(A)return{model:A,scenarioType:"webSearch"};t.log.warn(`WebSearch model ${a.webSearch} unavailable (fail pool), trying fallback`);let C=u?$t("webSearch",s,void 0,l):null;if(C)return{model:C,scenarioType:"webSearch"}}if(t.body.thinking?.type==="enabled"&&a?.think){t.log.info(`Using think model for ${t.body.thinking}`);let A=tt(a.think,s,!1,"think",u);if(A)return{model:A,scenarioType:"think"};t.log.warn(`Think model ${a.think} unavailable (fail pool), trying fallback`);let C=u?$t("think",s,void 0,l):null;if(C)return{model:C,scenarioType:"think"}}if(a?.default){let A=tt(a.default,s,!1,"default",u);if(A)return{model:A,scenarioType:"default"};t.log.warn(`Default model ${a.default} unavailable (fail pool), trying fallback`);let C=u?$t("default",s,void 0,l):null;if(C)return{model:C,scenarioType:"default"};let S=tt(a.default,s,!0,"default",u);if(S)return t.log.warn(`No fallback available; retrying default model ${a.default} despite fail-pool state`),{model:S,scenarioType:"default"}}return{model:void 0,scenarioType:"default"}},Zr=async(t,e,n)=>{let{configService:r,event:o}=n;t.originalModel=t.body.model;let s=Yr(t.body.metadata?.user_id);s&&(t.sessionId=s);let u=await Op(t,r)||r.get("Router"),l=u?.enableFallback===!0,d=r.get("providers")||[];t.enableFallback=l,t.fallbackConfig=u?.fallback||r.get("fallback");let f=Ei.get(t.sessionId),{messages:p,system:m=[],tools:b}=t.body,w=r.get("REWRITE_SYSTEM_PROMPT");if(w&&m.length>1&&m[1]?.text?.includes("<env>")){let y=await(0,Ti.readFile)(w,"utf-8");m[1].text=`${y}<env>${m[1].text.split("<env>").pop()}`}try{let[y,g]=t.body.model.split(","),_=n.tokenizerService?.getTokenizerConfigForModel(y,g),A;n.tokenizerService?A=(await n.tokenizerService.countTokens({messages:p,system:m,tools:b},_)).tokenCount:A=Tc(p,m,b),t.tokenCount=A;let C,S=r.get("CUSTOM_ROUTER_PATH");if(S)try{C=await require(S)(t,r.getAll(),{event:o})}catch(v){t.log.error(`failed to load custom router: ${v.message}`)}if(C)t.scenarioType="default";else{let v=await nw(t,A,r,f);C=v.model,t.scenarioType=v.scenarioType}if(u?.image&&C!==u.image&&ZC(t)&&!ew(C)){let v=tt(u.image,d,!1,"image",l);v?(t.log.info(`Using image model fallback for ${C}`),C=v,t.scenarioType="image"):(t.log.warn(`Image model ${u.image} unavailable (fail pool), keeping ${C}`),t.scenarioType="image")}t.body.model=C}catch(y){t.log.error(`Error in router middleware: ${y.message}`),t.body.model=u?.default,t.scenarioType="default"}},gr=new Map,vp=1e3,Qr=new Set,Dp=1e3,rw=3,ow=50,sw=t=>new Promise(e=>setTimeout(e,t));function iw(){if(gr.size<=vp)return;let t=[...gr.keys()].slice(0,gr.size-vp);for(let e of t)gr.delete(e)}function aw(){if(Qr.size<=Dp)return;let t=[...Qr].slice(0,Qr.size-Dp);for(let e of t)Qr.delete(e)}var Rp=async t=>{let e=await(0,Ri.opendir)(Xr.CLAUDE_PROJECTS_DIR),n=[];for await(let s of e)s.isDirectory()&&n.push(s.name);let r=n.map(async s=>{let a=(0,vi.join)(Xr.CLAUDE_PROJECTS_DIR,s,`${t}.jsonl`);try{return(await(0,Ri.stat)(a)).isFile()?s:null}catch{return null}}),o=await Promise.all(r);for(let s of o)if(s)return s;return null},vc=async t=>{let e=mr(t);if(!e)return null;if(gr.has(e))return gr.get(e)||null;try{let n=await Rp(e);if(!n&&!Qr.has(e)){Qr.add(e),aw();for(let r=0;r<rw&&!n;r++)await sw(ow),n=await Rp(e)}return n?(gr.set(e,n),iw(),n):null}catch(n){return console.error("Error searching for project by session:",n),null}};var uw=/^ccr-(opus|sonnet|haiku)(\[1m\])?$/i;function Ip(t){let e=[],n=Array.isArray(t.input)?t.input:[t.input];for(let r of n)if(r.type==="function_call")e.push({role:"assistant",tool_calls:[{id:r.call_id,type:"function",function:{name:r.name,arguments:r.arguments||"{}"}}]});else if(r.type==="function_call_output")e.push({role:"tool",tool_call_id:r.call_id,content:typeof r.output=="string"?r.output:JSON.stringify(r.output)});else if(r.type==="reasoning"){let o=Array.isArray(r.summary)?r.summary.filter(s=>s.type==="summary_text"&&s.text).map(s=>s.text).join(`
|
|
112
|
+
`))}}}Y();let pe=K();pe&&Q.enqueue(pe),oe="",Q.close()}catch(ie){Q.error(ie)}}})}wrapChatInResponses(e){let n=e?.choices?.[0],r=[],o=[];if(n?.message?.content&&o.push({type:"output_text",text:n.message.content}),r.push({type:"message",role:"assistant",content:o}),Array.isArray(n?.message?.tool_calls))for(let s of n.message.tool_calls)r.push({type:"function_call",id:s.id,call_id:s.id,name:s.function?.name||"",arguments:s.function?.arguments||"{}"});return{id:e.id||`resp_${Date.now()}`,object:"response",model:e.model,output:r,usage:e.usage?{...this.buildResponsesUsage(e.usage)}:void 0}}convertResponseToChat(e){let n=e.output?.find(d=>d.type==="message"),r=e.output?.find(d=>d.type==="function_call"),o;n?.content?.length&&n?.content[0].annotations&&(o=n.content[0].annotations.map(d=>({type:"url_citation",url_citation:{url:d.url||"",title:d.title||"",content:"",start_index:d.start_index||0,end_index:d.end_index||0}}))),this.logger.debug({data:o,type:"url_citation"});let s=null,a=null,u=null;if(n&&n.reasoning&&(u={content:n.reasoning}),n&&n.content){let d=[],f=[];if(n.content.forEach(p=>{if(p.type==="output_text")d.push(p.text||"");else if(p.type==="output_image"){let m=this.buildImageContent({url:p.image_url,mime_type:p.mime_type});m&&f.push(m)}else if(p.type==="output_image_base64"){let m=this.buildImageContent({b64_json:p.image_base64,mime_type:p.mime_type});m&&f.push(m)}}),f.length>0){let p=[];d.length>0&&p.push({type:"text",text:d.join("")}),p.push(...f),s=p}else s=d.join("")}return r&&(a=[{id:r.call_id||r.id,function:{name:r.name,arguments:r.arguments},type:"function"}]),{id:e.id||"chatcmpl-"+Date.now(),object:"chat.completion",created:e.created_at,model:e.model,choices:[{index:0,message:{role:"assistant",content:s||null,tool_calls:a,thinking:u,annotations:o},logprobs:null,finish_reason:a?"tool_calls":"stop"}],usage:e.usage?{prompt_tokens:e.usage.input_tokens||0,completion_tokens:e.usage.output_tokens||0,total_tokens:e.usage.total_tokens||0,prompt_tokens_details:{cached_tokens:this.getCacheReadInputTokens(e.usage),cache_creation_tokens:this.getCacheCreationInputTokens(e.usage)},cache_read_input_tokens:this.getCacheReadInputTokens(e.usage),cache_creation_input_tokens:this.getCacheCreationInputTokens(e.usage)}:null}}buildImageContent(e){return e&&(e.url||e.b64_json)?{type:"image_url",image_url:{url:e.url||"",b64_json:e.b64_json},media_type:e.mime_type}:null}};var xp=require("tiktoken");var kc=class{capacity;cache;constructor(e){this.capacity=e,this.cache=new Map}get(e){if(!this.cache.has(e))return;let n=this.cache.get(e);return this.cache.delete(e),this.cache.set(e,n),n}put(e,n){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.capacity){let r=this.cache.keys().next().value;r!==void 0&&this.cache.delete(r)}this.cache.set(e,n)}values(){return Array.from(this.cache.values())}},ki=new kc(100);var Ti=require("fs/promises"),xi=require("fs/promises"),Di=require("path"),Xr=require("@wengine-ai/claude-code-router-shared");Wn();var vn=require("fs"),vc=require("path"),Ap=require("@wengine-ai/claude-code-router-shared"),Ac=(0,vc.join)(Ap.HOME_DIR,"runtime"),Sc=(0,vc.join)(Ac,"quota-store.json"),Kr=new Map,Ep=!1,YC=null;function Ai(t,e){t&&Kr.set(t,{...e,provider:t,capturedAt:Date.now()})}function Si(t){let e=Kr.get(t);return e?{...e}:void 0}function Sp(){return Array.from(Kr.values()).map(t=>({...t}))}function QC(){try{if(!(0,vn.existsSync)(Sc))return;let t=JSON.parse((0,vn.readFileSync)(Sc,"utf-8"));if(!Array.isArray(t))return;let e=Date.now();for(let n of t)if(n&&n.provider){if(n.capturedAt&&e-n.capturedAt>1440*60*1e3)continue;Kr.set(n.provider,n)}}catch{}}function kp(){try{if(Kr.size===0)return;(0,vn.existsSync)(Ac)||(0,vn.mkdirSync)(Ac,{recursive:!0}),(0,vn.writeFileSync)(Sc,JSON.stringify(Array.from(Kr.values()),null,2),"utf-8")}catch{}}function vi(){Ep||(Ep=!0,QC(),YC=setInterval(kp,6e4),process.on("exit",kp))}Ci();var XC=/^[A-Za-z0-9_-]+$/;function mr(t){if(typeof t!="string")return;let e=t.trim();if(!(!e||!XC.test(e)))return e}function Yr(t){if(!t)return;if(typeof t=="object")return mr(t.session_id??t.sessionId);if(typeof t!="string")return;let e=t.trim();if(!e)return;try{let o=JSON.parse(e),s=mr(o?.session_id??o?.sessionId);if(s)return s}catch{}let n="_session_",r=e.lastIndexOf(n);if(r!==-1)return mr(e.slice(r+n.length))}var Tn=(0,xp.get_encoding)("cl100k_base"),Tc=(t,e,n)=>{let r=0;return Array.isArray(t)&&t.forEach(o=>{typeof o.content=="string"?r+=Tn.encode(o.content).length:Array.isArray(o.content)&&o.content.forEach(s=>{s.type==="text"?r+=Tn.encode(s.text).length:s.type==="tool_use"?r+=Tn.encode(JSON.stringify(s.input)).length:s.type==="tool_result"&&(r+=Tn.encode(typeof s.content=="string"?s.content:JSON.stringify(s.content)).length)})}),typeof e=="string"?r+=Tn.encode(e).length:Array.isArray(e)&&e.forEach(o=>{o.type==="text"&&(typeof o.text=="string"?r+=Tn.encode(o.text).length:Array.isArray(o.text)&&o.text.forEach(s=>{r+=Tn.encode(s||"").length}))}),n&&n.forEach(o=>{o.description&&(r+=Tn.encode(o.name+o.description).length),o.input_schema&&(r+=Tn.encode(JSON.stringify(o.input_schema)).length)}),r},Op=async(t,e)=>{if(t.sessionId){let n=await Dc(t.sessionId);if(n){let r=(0,Di.join)(Xr.HOME_DIR,n,"config.json"),o=(0,Di.join)(Xr.HOME_DIR,n,`${t.sessionId}.json`);try{let s=JSON.parse(await(0,Ti.readFile)(o,"utf8"));if(s&&s.Router&&Object.keys(s.Router).length>0)return s.Router}catch{}try{let s=JSON.parse(await(0,Ti.readFile)(r,"utf8"));if(s&&s.Router&&Object.keys(s.Router).length>0)return s.Router}catch{}}}};function Ri(t){let e=t||"";return e.includes(",")&&(e=e.split(",").pop()||e),e.includes("/")&&(e=e.split("/").pop()||e),e.includes(":")&&(e=e.split(":")[0]),e.trim().toLowerCase()}function Pp(t){let e=Ri(t),n=e.includes("[1m]")||e.endsWith("[1m"),r=e.replace(/\[1m\]|\[1m$/g,""),o=r.match(/^ccr-(opus|sonnet|haiku)$/i);if(o)return{family:o[1].toLowerCase(),extended:n,isCcrAlias:!0};let s=r.match(/claude-(?:\d+-\d+-|\d+-)?(sonnet|opus|haiku)(?:-|$)/i)||r.match(/claude-(sonnet|opus|haiku)(?:-|$)/i);return s?{family:s[1].toLowerCase(),extended:n,isCcrAlias:!1}:{family:null,extended:n,isCcrAlias:!1}}function ZC(t,e){if(!e||!t)return null;let n=Ri(t);if(e[t])return e[t];if(e[n])return e[n];let{family:r}=Pp(t);if(r&&e[r])return e[r];for(let[o,s]of Object.entries(e)){let a=Ri(o);if(a&&n.includes(a))return s}return null}function Fp(t){return t?(t.input_tokens||0)+(t.cache_read_input_tokens||0)+(t.cache_creation_input_tokens||0):0}function vp(t){if(!t?.includes(","))return null;let[e,...n]=t.split(","),r=e.trim(),o=n.join(",").trim();return!r||!o?null:{providerName:r,routeModel:o}}function tt(t,e,n,r,o){let s=vp(t);if(!s)return t;let{providerName:a,routeModel:u}=s,l=e.find(p=>p.name.toLowerCase()===a.toLowerCase());if(l&&l.enabled===!1)return null;if(o===!0&&r&&!n){let p=zo(),m=p.getPromotion(a,u,r,e);if(m){let b=vp(m);if(b){let w=e.find(g=>g.name.toLowerCase()===b.providerName.toLowerCase()),y=w?.models?.find(g=>String(g).toLowerCase()===b.routeModel.toLowerCase());if(w&&y)return`${w.name},${y}`}p.clear(a,u,r)}}if(!n&&!Je().isAvailable(a,u))return null;let d=Si(a);if(d){let p=d.limitDaily!==void 0&&d.usedDailyBalance!==void 0&&d.usedDailyBalance>=d.limitDaily,m=d.totalBalance!==void 0&&d.usedBalance!==void 0&&d.usedBalance>=d.totalBalance;if(p||m)return null}let f=l?.models?.find(p=>String(p).toLowerCase()===u.toLowerCase());return l&&f?`${l.name},${f}`:t}function $t(t,e,n,r,o){let s=Je(),a=[n?.[t],r?.[t]];for(let u of a)if(!(!Array.isArray(u)||u.length===0))for(let l of u){let d=tt(l,e);if(d)return d}return null}function ew(t){return t.body.messages?.some(e=>e.role==="user"&&Array.isArray(e.content)&&e.content.some(n=>n.type==="image"||n.type==="image_url"||Array.isArray(n?.content)&&n.content.some(r=>r.type==="image"||r.type==="image_url")))}function tw(t){let e=Ri(t);return[/claude/i,/gemini/i,/gpt-4o/i,/gpt-4\.1/i,/gpt-4-vision/i,/qwen.*vl/i,/glm-4v/i,/grok.*vision/i,/pixtral/i,/llava/i].some(r=>r.test(e))}function nw(t,e,n,r,o,s,a,u){let l=n.longContextThreshold||6e4,d=Math.max(e,Fp(o)),f=t.modelFamily;if((s||d>2e5)&&n.extendedContext){let w=tt(n.extendedContext,r,!1,"extendedContext",u);if(w)return t.log.info(`Family: using extended context model (1M+), tokens: ${d}, estimated: ${e}, explicit: ${s}`),{model:w,scenarioType:"extendedContext",isFallback:!1};let y=u?$t("extendedContext",r,n.fallback,a,f):null;if(y)return t.log.info(`Family: using extended context fallback model (1M+), tokens: ${d}, estimated: ${e}, explicit: ${s}`),{model:y,scenarioType:"extendedContext",isFallback:!0};t.log.warn("Family: extendedContext model unavailable (fail pool), skipping")}if(d>l&&(n.longContext||n.fallback?.longContext?.length||a?.longContext?.length)){let w=n.longContext?tt(n.longContext,r,!1,"longContext",u):null;if(w)return t.log.info(`Family: using long context model, tokens: ${d}, estimated: ${e}`),{model:w,scenarioType:"longContext",isFallback:!1};let y=u?$t("longContext",r,n.fallback,a,f):null;if(y)return t.log.info(`Family: using long context fallback model, tokens: ${d}, estimated: ${e}`),{model:y,scenarioType:"longContext",isFallback:!0};t.log.warn("Family: no healthy longContext model available, falling through to other scenarios")}if(Array.isArray(t.body.tools)&&t.body.tools.some(w=>w.type?.startsWith("web_search"))&&n.webSearch){let w=tt(n.webSearch,r,!1,"webSearch",u);if(w)return{model:w,scenarioType:"webSearch",isFallback:!1};let y=u?$t("webSearch",r,n.fallback,a,f):null;if(y)return t.log.info("Family: using webSearch fallback model"),{model:y,scenarioType:"webSearch",isFallback:!0};t.log.warn("Family: webSearch model unavailable (fail pool), skipping")}if(t.body.thinking?.type==="enabled"&&n.think){let w=tt(n.think,r,!1,"think",u);if(w)return{model:w,scenarioType:"think",isFallback:!1};let y=u?$t("think",r,n.fallback,a,f):null;if(y)return t.log.info("Family: using think fallback model"),{model:y,scenarioType:"think",isFallback:!0};t.log.warn("Family: think model unavailable (fail pool), skipping")}if(n.default){let w=tt(n.default,r,!1,"default",u);if(w)return{model:w,scenarioType:"default",isFallback:!1};let y=u?$t("default",r,n.fallback,a,f):null;if(y)return t.log.info("Family: using default fallback model"),{model:y,scenarioType:"default",isFallback:!0};t.log.warn("Family: default model unavailable (fail pool), skipping")}return null}var rw=async(t,e,n,r)=>{let o=await Op(t,n),s=n.get("providers")||[],a=o||n.get("Router"),u=a?.enableFallback===!0,l=u?a?.fallback||n.get("fallback"):void 0;if(t.body.model.includes(",")){let A=tt(t.body.model,s,!1,"default",u);if(A)return{model:A,scenarioType:"default"};t.log.warn(`Explicit model ${t.body.model} unavailable (fail pool), trying fallback`);let C=u?$t("default",s,void 0,l):null;if(C)return t.log.info(`Using fallback for explicit model: ${C}`),{model:C,scenarioType:"default"};t.log.warn(`No fallback available for explicit model ${t.body.model}, continuing through routing logic`)}let{family:d,extended:f,isCcrAlias:p}=Pp(t.body.model),m=a?.families?.[d||""];if(m&&a?.enableFamilyRouting){t.log.info(`Using model family routing for: ${d}${f?" (1M)":""}`),t.modelFamily=d,t.familyFallback=m.fallback;let A=nw(t,e,m,s,r,f,l,u);if(A)return{model:A.model,scenarioType:A.scenarioType}}let b=p&&!a?.enableFamilyRouting?null:ZC(t.body.model,a?.models);if(b){let A=tt(b,s,!1,"modelMapping",u);if(A)return t.log.info(`Using mapped model for ${t.body.model}: ${b}`),{model:A,scenarioType:"modelMapping"};t.log.warn(`Mapped model ${b} unavailable (fail pool), skipping`)}let w=Math.max(e,Fp(r)),y=a?.extendedContextThreshold||2e5;if(w>y&&a?.extendedContext){t.log.info(`Using extended context (1M) model due to token count: ${w}, estimated: ${e}, threshold: ${y}`);let A=tt(a.extendedContext,s,!1,"extendedContext",u);if(A)return{model:A,scenarioType:"extendedContext"};t.log.warn(`Extended context model ${a.extendedContext} unavailable (fail pool), trying fallback`);let C=u?$t("extendedContext",s,void 0,l):null;if(C)return{model:C,scenarioType:"extendedContext"}}let g=a?.longContextThreshold||6e4;if(w>g&&a?.longContext){t.log.info(`Using long context model due to token count: ${w}, estimated: ${e}, threshold: ${g}`);let A=tt(a.longContext,s,!1,"longContext",u);if(A)return{model:A,scenarioType:"longContext"};t.log.warn(`Long context model ${a.longContext} unavailable (fail pool), trying fallback`);let C=u?$t("longContext",s,void 0,l):null;if(C)return{model:C,scenarioType:"longContext"}}if(t.body?.system?.length>1&&t.body?.system[1]?.text?.startsWith("<CCR-SUBAGENT-MODEL>")){let A=t.body?.system[1].text.match(/<CCR-SUBAGENT-MODEL>(.*?)<\/CCR-SUBAGENT-MODEL>/s);if(A)return t.body.system[1].text=t.body.system[1].text.replace(`<CCR-SUBAGENT-MODEL>${A[1]}</CCR-SUBAGENT-MODEL>`,""),{model:A[1],scenarioType:"default"}}if(t.body.model?.includes("claude")&&t.body.model?.includes("haiku")&&a?.background){t.log.info(`Using background model for ${t.body.model}`);let A=tt(a.background,s,!1,"background",u);if(A)return{model:A,scenarioType:"background"};t.log.warn(`Background model ${a.background} unavailable (fail pool), falling through`)}if(Array.isArray(t.body.tools)&&t.body.tools.some(A=>A.type?.startsWith("web_search"))&&a?.webSearch){let A=tt(a.webSearch,s,!1,"webSearch",u);if(A)return{model:A,scenarioType:"webSearch"};t.log.warn(`WebSearch model ${a.webSearch} unavailable (fail pool), trying fallback`);let C=u?$t("webSearch",s,void 0,l):null;if(C)return{model:C,scenarioType:"webSearch"}}if(t.body.thinking?.type==="enabled"&&a?.think){t.log.info(`Using think model for ${t.body.thinking}`);let A=tt(a.think,s,!1,"think",u);if(A)return{model:A,scenarioType:"think"};t.log.warn(`Think model ${a.think} unavailable (fail pool), trying fallback`);let C=u?$t("think",s,void 0,l):null;if(C)return{model:C,scenarioType:"think"}}if(a?.default){let A=tt(a.default,s,!1,"default",u);if(A)return{model:A,scenarioType:"default"};t.log.warn(`Default model ${a.default} unavailable (fail pool), trying fallback`);let C=u?$t("default",s,void 0,l):null;if(C)return{model:C,scenarioType:"default"};let S=tt(a.default,s,!0,"default",u);if(S)return t.log.warn(`No fallback available; retrying default model ${a.default} despite fail-pool state`),{model:S,scenarioType:"default"}}return{model:void 0,scenarioType:"default"}},Zr=async(t,e,n)=>{let{configService:r,event:o}=n;t.originalModel=t.body.model;let s=Yr(t.body.metadata?.user_id);s&&(t.sessionId=s);let u=await Op(t,r)||r.get("Router"),l=u?.enableFallback===!0,d=r.get("providers")||[];t.enableFallback=l,t.fallbackConfig=u?.fallback||r.get("fallback");let f=ki.get(t.sessionId),{messages:p,system:m=[],tools:b}=t.body,w=r.get("REWRITE_SYSTEM_PROMPT");if(w&&m.length>1&&m[1]?.text?.includes("<env>")){let y=await(0,Ti.readFile)(w,"utf-8");m[1].text=`${y}<env>${m[1].text.split("<env>").pop()}`}try{let[y,g]=t.body.model.split(","),_=n.tokenizerService?.getTokenizerConfigForModel(y,g),A;n.tokenizerService?A=(await n.tokenizerService.countTokens({messages:p,system:m,tools:b},_)).tokenCount:A=Tc(p,m,b),t.tokenCount=A;let C,S=r.get("CUSTOM_ROUTER_PATH");if(S)try{C=await require(S)(t,r.getAll(),{event:o})}catch(T){t.log.error(`failed to load custom router: ${T.message}`)}if(C)t.scenarioType="default";else{let T=await rw(t,A,r,f);C=T.model,t.scenarioType=T.scenarioType}if(u?.image&&C!==u.image&&ew(t)&&!tw(C)){let T=tt(u.image,d,!1,"image",l);T?(t.log.info(`Using image model fallback for ${C}`),C=T,t.scenarioType="image"):(t.log.warn(`Image model ${u.image} unavailable (fail pool), keeping ${C}`),t.scenarioType="image")}t.body.model=C}catch(y){t.log.error(`Error in router middleware: ${y.message}`),t.body.model=u?.default,t.scenarioType="default"}},gr=new Map,Tp=1e3,Qr=new Set,Dp=1e3,ow=3,sw=50,iw=t=>new Promise(e=>setTimeout(e,t));function aw(){if(gr.size<=Tp)return;let t=[...gr.keys()].slice(0,gr.size-Tp);for(let e of t)gr.delete(e)}function uw(){if(Qr.size<=Dp)return;let t=[...Qr].slice(0,Qr.size-Dp);for(let e of t)Qr.delete(e)}var Rp=async t=>{let e=await(0,xi.opendir)(Xr.CLAUDE_PROJECTS_DIR),n=[];for await(let s of e)s.isDirectory()&&n.push(s.name);let r=n.map(async s=>{let a=(0,Di.join)(Xr.CLAUDE_PROJECTS_DIR,s,`${t}.jsonl`);try{return(await(0,xi.stat)(a)).isFile()?s:null}catch{return null}}),o=await Promise.all(r);for(let s of o)if(s)return s;return null},Dc=async t=>{let e=mr(t);if(!e)return null;if(gr.has(e))return gr.get(e)||null;try{let n=await Rp(e);if(!n&&!Qr.has(e)){Qr.add(e),uw();for(let r=0;r<ow&&!n;r++)await iw(sw),n=await Rp(e)}return n?(gr.set(e,n),aw(),n):null}catch(n){return console.error("Error searching for project by session:",n),null}};var cw=/^ccr-(opus|sonnet|haiku)(\[1m\])?$/i;function Ip(t){let e=[],n=Array.isArray(t.input)?t.input:[t.input];for(let r of n)if(r.type==="function_call")e.push({role:"assistant",tool_calls:[{id:r.call_id,type:"function",function:{name:r.name,arguments:r.arguments||"{}"}}]});else if(r.type==="function_call_output")e.push({role:"tool",tool_call_id:r.call_id,content:typeof r.output=="string"?r.output:JSON.stringify(r.output)});else if(r.type==="reasoning"){let o=Array.isArray(r.summary)?r.summary.filter(s=>s.type==="summary_text"&&s.text).map(s=>s.text).join(`
|
|
113
113
|
`):"";o&&e.push({role:"assistant",content:[{type:"text",text:`[reasoning]
|
|
114
|
-
${o}`}],_reasoningItem:!0})}else if(r.role){let o=r.content;Array.isArray(o)&&(o=o.map(s=>s.type==="input_text"?{type:"text",text:s.text}:s.type==="output_text"?{type:"text",text:s.text}:s.type==="input_image"?{type:"image_url",image_url:{url:s.image_url},media_type:s.mime_type}:s)),e.push({role:r.role,content:o})}t.messages=e,delete t.input,t.instructions&&typeof t.instructions=="string"&&(t.system=t.instructions,delete t.instructions),Array.isArray(t.tools)&&(t.tools=t.tools.filter(r=>r&&typeof r=="object").map(r=>r.type==="function"&&r.name&&!r.function?{type:"function",function:{name:r.name,description:r.description||"",parameters:r.parameters||{type:"object",properties:{}}}}:r.function?.name?r:r.type==="web_search"?{type:"function",function:{name:"web_search",description:"Search the web",parameters:{type:"object",properties:{query:{type:"string"}}}}}:null).filter(Boolean)),t.reasoning&&typeof t.reasoning=="object"&&(t.reasoning={enabled:!0,effort:t.reasoning.effort}),delete t.store,delete t.previous_response_id,delete t.include}async function
|
|
115
|
-
`).filter(S=>S.startsWith("data:")&&S.trim().length>5).length===0){y.releaseLock();let S=_.length<500?_:_.slice(0,500);throw He(`Provider ${s} returned streaming response with no SSE data lines: ${S}`,400,"provider_response_error")}let C=new ReadableStream({start:S=>{S.enqueue(g.value);let v=()=>{y.read().then(({done:R,value:$})=>{R?S.close():(S.enqueue($),v())}).catch(R=>S.error(R))};v()},cancel:()=>{y.cancel()}});b=new Response(C,{headers:b.headers,status:b.status,statusText:b.statusText})}let w=Lp(b,e,o,n);try{let y=o.model||t.originalModel;s&&y&&Je().recordSuccess(s,y)}catch{}return w}catch(d){let f=await lw(t,e,n,r,d);if(f)return f;throw d}}async function lw(t,e,n,r,o){let s=t.scenarioType||"default",a=t.familyFallback,u=t.modelFamily,l=t.fallbackConfig??n.configService.get("fallback"),d=Je(),f=t.provider||"",p=t.body.model||"",m=new Set,b=o?.statusCode===429||o?.isRateLimit===!0||o?.rawBody&&xi(o.rawBody)||o?.message&&xi(o.message);if(f&&p&&(b?(d.markRateLimited(f,p,120,o?.message),t.log.warn(`Primary model ${f},${p} rate-limited, will try fallbacks`)):d.recordFailure(f,p,o?.message),m.add(`${f},${p}`),n.recordUsage?.({provider:f,model:p,originalModel:t.originalModel||p,scenarioType:s,modelFamily:t.modelFamily,errorMessage:o?.message||String(o),sessionId:t.usageSessionId||t.id,stream:t.body.stream,inputTokens:t.tokenCount||0,req:t})),!(t.enableFallback??n.configService.get("Router")?.enableFallback===!0))return t.log.info("Fallback disabled by configuration, skipping fallback attempts"),null;let y=A=>{let[C,...S]=A.split(","),v=C?.trim(),R=S.join(",").trim();return!v||!R?null:{provider:v,model:R,key:`${v},${R}`}},g=[];if(u){let A=a?.[s];Array.isArray(A)&&A.length>0?g.push({name:`${u}/${s}`,models:A}):t.log.warn(`No ${u} fallback configured for ${s}; will try global ${s} fallback`)}if(Array.isArray(l?.[s])&&l[s].length>0&&g.push({name:`global/${s}`,models:l[s]}),g.length===0&&s!=="image"&&t.body?.messages?.some(S=>S.role==="user"&&Array.isArray(S.content)&&S.content.some(v=>v.type==="image"||v.type==="image_url"||Array.isArray(v?.content)&&v.content.some(R=>R.type==="image"||R.type==="image_url")))&&Array.isArray(l?.image)&&l.image.length>0&&(t.log.info(`No fallback for scenario '${s}', but request has images \u2014 trying fallback.image`),g.push({name:"global/image (auto-detected)",models:l.image})),g.length===0)return null;let _=g.reduce((A,C)=>A+C.models.length,0);t.log.warn(`Request failed for ${s}, trying ${_} fallback models across ${g.length} fallback stage(s)`);for(let A of g){t.log.info(`Trying ${A.name} fallback stage with ${A.models.length} models`);for(let C of A.models){let S=y(C);if(!S){t.log.warn(`Fallback model '${C}' is invalid, skipping`);continue}if(m.has(S.key))continue;m.add(S.key);let v=S.provider,R=S.model;try{if(!d.isAvailable(v,R)){t.log.warn(`Fallback model ${C} unavailable (fail pool), skipping`);continue}t.log.info(`Trying fallback model: ${C}`);let $={...t.body};$.model=R;let V={...t,provider:v,body:$},P=n.providerService.getProvider(v);if(!P){t.log.warn(`Fallback provider '${v}' not found, skipping`);continue}if(P.enabled===!1){t.log.warn(`Fallback provider '${v}' is disabled, skipping`);continue}let{requestBody:Y,config:z,bypass:K}=await Np($,P,r,t.headers,{req:V}),Q=await Bp(Y,z,P,n,K,r,{req:V});try{P?.baseUrl&&Q?.headers&&Wo(v,P.baseUrl,Q.headers)}catch{}let ee=await Mp(Y,Q,P,r,K,{req:V,isCodexOnMessagesEndpoint:t.isCodexOnMessagesEndpoint||!1});return t.log.info(`Fallback model ${C} succeeded`),d.recordSuccess(v,R),f&&p&&(zo().promote(f,p,s,v,R),t.log.info(`Promoted fallback model ${v},${R} for ${f},${p}:${s}`),b?t.log.info(`Rate-limited original model ${f},${p} already marked unavailable with cooldown`):(d.forceOpen(f,p,o?.message),t.log.info(`Marked original model ${f},${p} as unavailable`))),t.provider=v,t.body=$,Lp(ee,e,$,n)}catch($){d.recordFailure(v,R,$.message),t.log.warn(`Fallback model ${S.key} failed: ${$.message}`),n.recordUsage?.({provider:v,model:R,originalModel:t.body.model,scenarioType:s,modelFamily:t.modelFamily,errorMessage:$.message,sessionId:t.usageSessionId||t.id,stream:t.body.stream,req:t});continue}}}return t.log.error(`All fallback models failed for ${s}`),null}async function Np(t,e,n,r,o){let s=JSON.parse(JSON.stringify(t)),a=s?.system;if(typeof a=="string"&&a.includes("cch="))s.system=a.replace(/cch=[^;]+;?/g,"cch=ccr-stable;");else if(Array.isArray(a))for(let d=0;d<a.length;d++){let f=a[d],p=typeof f=="string"?f:f?.text??"";if(p.includes("cch=")){let m=p.replace(/cch=[^;]+;?/g,"cch=ccr-stable;");typeof f=="string"?a[d]=m:typeof f?.text=="string"&&(f.text=m)}}let u={},l=!1;if(l=dw(e,n,t),l&&(r instanceof Headers?r.delete("content-length"):delete r["content-length"],u.headers=r),!l&&typeof n.transformRequestOut=="function"){let d=await n.transformRequestOut(s);d.body?(s=d.body,u=d.config||{}):s=d}if(!l&&e.transformer?.use?.length)for(let d of e.transformer.use){if(!d||typeof d.transformRequestIn!="function")continue;let f=await d.transformRequestIn(s,e,o);f.body?(s=f.body,u={...u,...f.config}):s=f}if(!l&&e.transformer?.[t.model]?.use?.length)for(let d of e.transformer[t.model].use)!d||typeof d.transformRequestIn!="function"||(s=await d.transformRequestIn(s,e,o));return{requestBody:s,config:u,bypass:l}}function dw(t,e,n){return e.endPoint==="/v1/chat/completions"&&Array.isArray(n?.system)?!1:t.transformer?.use?.length===1&&t.transformer.use[0].name===e.name&&(!t.transformer?.[n.model]?.use.length||t.transformer?.[n.model]?.use.length===1&&t.transformer?.[n.model]?.use[0].name===e.name)}function fw(t){let e=t.headers||{},n=e["x-anthropic-billing-header"]||"";if(typeof n=="string"&&n.includes("cc_version="))return!1;let r=e["user-agent"]||"";if(typeof r=="string"&&/codex/i.test(r))return!0;let o=t.pathname||t.url||"";if(typeof o=="string"&&o.split("?",1)[0].endsWith("/v1/responses"))return!0;let s=t.originalModel||t.body?.model||"";return typeof s=="string"&&s.toLowerCase()==="ccr-codex"}async function Bp(t,e,n,r,o,s,a){let u=e.url||new URL(n.baseUrl);if(!e.TIMEOUT){let f=r.configService.get("API_TIMEOUT_MS");f&&(e.TIMEOUT=typeof f=="string"?parseInt(f,10):f)}if(o&&typeof s.auth=="function"){let f=await s.auth(t,n);if(f.body){t=f.body;let p=e.headers||{};f.config?.headers&&(p={...p,...f.config.headers},delete p.host,delete f.config.headers),e={...e,...f.config,headers:p}}else t=f}let l={Authorization:`Bearer ${n.apiKey}`,...e?.headers||{}};for(let f in l)(l[f]==="undefined"||["authorization","Authorization"].includes(f)&&l[f]?.includes("undefined"))&&delete l[f];yi(r.configService)&&up(r.log,a.req.id,{url:String(u),headers:l,body:t});let d=await tp(u,t,{httpsProxy:r.configService.getHttpsProxy(),...e,headers:JSON.parse(JSON.stringify(l))},a,r.log);if(!d.ok){let f=await d.text();r.log.error(`[provider_response_error] Error from provider(${n.name},${t.model}: ${d.status}): ${f}`);let p=He(`Error from provider(${n.name},${t.model}: ${d.status}): ${f}`,d.status,"provider_response_error");throw p.isRateLimit=d.status===429||xi(f),p.rawBody=f,p}if(d.ok){let f=d.headers.get("content-type")||"",p=t.stream===!0;if(r.log.info(`[hidden-error-check] provider=${n.name} model=${t.model} stream=${t.stream} isStreamRequest=${p} contentType=${f} ok=${d.ok} status=${d.status} hasBody=${!!d.body}`),!p||f.includes("application/json")){let m=d.clone(),b="";try{if(b=await m.text(),!b||b.trim()==="")throw new SyntaxError("Empty JSON body");let w=JSON.parse(b);if(w&&typeof w=="object"&&w.error&&(typeof w.error=="string"||typeof w.error=="object"&&Object.keys(w.error).length>0)){r.log.error(`[provider_response_error] Hidden error from provider(${n.name},${t.model}: ${d.status}): ${b}`);let g=xi(b),_=He(`Error from provider(${n.name},${t.model}: ${d.status}): ${b}`,400,"provider_response_error");throw _.isRateLimit=g,_.rawBody=b,_}}catch(w){if(w instanceof SyntaxError){r.log.warn(`[provider_response_error] Empty or malformed JSON response from provider(${n.name},${t.model}: 200): "${b}"`);let y=He(`API returned an empty or malformed response (HTTP 200) from ${n.name} \u2014 check for a proxy or gateway intercepting the request`,400,"provider_response_error");throw y.rawBody=b,y}throw w}}}if(!t.stream&&yi(r.configService)){let p=await d.clone().text();cp(r.log,a.req.id,{status:d.status,headers:Object.fromEntries(d.headers.entries()),body:p})}return d}async function Mp(t,e,n,r,o,s){let a=e;if(!o&&n.transformer?.use?.length)for(let u of Array.from(n.transformer.use).reverse())!u||typeof u.transformResponseOut!="function"||(a=await u.transformResponseOut(a,s));if(!o&&n.transformer?.[t.model]?.use?.length)for(let u of Array.from(n.transformer[t.model].use).reverse())!u||typeof u.transformResponseOut!="function"||(a=await u.transformResponseOut(a,s));if(!o&&r.transformResponseIn&&(s.provider||(s.provider=n),a=await r.transformResponseIn(a,s)),s?.isCodexOnMessagesEndpoint)try{a=await new Vr().transformResponseIn(a,{...s,provider:n})}catch(u){console.error("Failed to apply Responses API conversion for codex client:",u)}return a}function Lp(t,e,n,r){if(t.ok||e.code(t.status),n.stream===!0){if(e.header("Content-Type","text/event-stream"),e.header("Cache-Control","no-cache"),e.header("Connection","keep-alive"),r&&yi(r.configService)){let[s,a]=t.body.tee(),u=ip(r.configService);return lp(s,r.log,e.request.id,u),e.send(a)}return e.send(t.body)}else return t.json()}var Dc=async t=>{t.get("/",async()=>({message:"LLMs API",version:dp})),t.get("/health",async()=>({status:"ok",timestamp:new Date().toISOString()})),t.get("/providers/health",async()=>({states:Je().getAllStates().map(o=>({provider:o.provider,model:o.model,status:o.status,failureCount:o.failureCount,successCount:o.successCount,lastFailureTime:o.lastFailureTime,lastError:o.lastError,rateLimitUntil:o.rateLimitUntil??null})),timestamp:new Date().toISOString()}));let e=t.transformerService.getTransformersWithEndpoint();for(let{transformer:n}of e)n.endPoint&&t.post(n.endPoint,async(r,o)=>cw(r,o,t,n));t.post("/providers",{schema:{body:{type:"object",properties:{id:{type:"string"},name:{type:"string"},type:{type:"string",enum:["openai","anthropic"]},baseUrl:{type:"string"},apiKey:{type:"string"},models:{type:"array",items:{type:"string"}}},required:["id","name","type","baseUrl","apiKey","models"]}}},async(n,r)=>{let{name:o,baseUrl:s,apiKey:a,models:u}=n.body;if(!o?.trim())throw He("Provider name is required",400,"invalid_request");if(!s||!hw(s))throw He("Valid base URL is required",400,"invalid_request");if(!a?.trim())throw He("API key is required",400,"invalid_request");if(!u||!Array.isArray(u)||u.length===0)throw He("At least one model is required",400,"invalid_request");if(t.providerService.getProvider(n.body.name))throw He(`Provider with name '${n.body.name}' already exists`,400,"provider_exists");return t.providerService.registerProvider(n.body)}),t.get("/providers",async()=>t.providerService.getProviders()),t.get("/providers/:id",{schema:{params:{type:"object",properties:{id:{type:"string"}},required:["id"]}}},async n=>{let r=t.providerService.getProvider(n.params.id);if(!r)throw He("Provider not found",404,"provider_not_found");return r}),t.put("/providers/:id",{schema:{params:{type:"object",properties:{id:{type:"string"}},required:["id"]},body:{type:"object",properties:{name:{type:"string"},type:{type:"string",enum:["openai","anthropic"]},baseUrl:{type:"string"},apiKey:{type:"string"},models:{type:"array",items:{type:"string"}},enabled:{type:"boolean"}}}}},async(n,r)=>{let o=t.providerService.updateProvider(n.params.id,n.body);if(!o)throw He("Provider not found",404,"provider_not_found");return o}),t.delete("/providers/:id",{schema:{params:{type:"object",properties:{id:{type:"string"}},required:["id"]}}},async n=>{if(!t.providerService.deleteProvider(n.params.id))throw He("Provider not found",404,"provider_not_found");return{message:"Provider deleted successfully"}}),t.patch("/providers/:id/toggle",{schema:{params:{type:"object",properties:{id:{type:"string"}},required:["id"]},body:{type:"object",properties:{enabled:{type:"boolean"}},required:["enabled"]}}},async(n,r)=>{if(!t.providerService.toggleProvider(n.params.id,n.body.enabled))throw He("Provider not found",404,"provider_not_found");return{message:`Provider ${n.body.enabled?"enabled":"disabled"} successfully`}})};function xi(t){let e=t.toLowerCase();return e.includes("rate limit")||e.includes("rate_limit")||e.includes("rate_limit_error")||e.includes("too many requests")||e.includes("too many")||e.includes("quota exhausted")||e.includes("qps_limit")||e.includes("token_limit")||e.includes("\u9650\u6D41")||e.includes("\u9891\u7387\u9650\u5236")}function hw(t){try{return new URL(t),!0}catch{return!1}}var yr=class{constructor(e,n,r){this.configService=e;this.transformerService=n;this.logger=r;this.initializeCustomProviders()}providers=new Map;modelRoutes=new Map;initializeCustomProviders(){let e=this.configService.get("providers");if(e&&Array.isArray(e)){this.initializeFromProvidersArray(e);return}}initializeFromProvidersArray(e){e.forEach(n=>{try{if(!n.name||!n.api_base_url||!n.api_key)return;let r={};n.transformer&&Object.keys(n.transformer).forEach(o=>{o==="use"?Array.isArray(n.transformer.use)&&(r.use=n.transformer.use.map(s=>{if(Array.isArray(s)&&typeof s[0]=="string"){let a=this.transformerService.getTransformer(s[0]);if(a)return new a(s[1])}if(typeof s=="string"){let a=this.transformerService.getTransformer(s);return typeof a=="function"?new a:a}}).filter(s=>typeof s<"u")):Array.isArray(n.transformer[o]?.use)&&(r[o]={use:n.transformer[o].use.map(s=>{if(Array.isArray(s)&&typeof s[0]=="string"){let a=this.transformerService.getTransformer(s[0]);if(a)return new a(s[1])}if(typeof s=="string"){let a=this.transformerService.getTransformer(s);return typeof a=="function"?new a:a}}).filter(s=>typeof s<"u")})}),this.registerProvider({name:n.name,baseUrl:n.api_base_url,apiKey:n.api_key,models:n.models||[],quotaToken:n.quota_token,transformer:n.transformer?r:void 0,cacheMode:n.cache_mode||"exclusive",enabled:n.enabled!==!1,wakeupEnabled:n.wakeup_enabled===!0,wakeupTime:n.wakeup_time||"06:00",wakeupModel:n.wakeup_model||""}),this.logger.info(`${n.name} provider registered`)}catch(r){this.logger.error(`${n.name} provider registered error: ${r}`)}})}registerProvider(e){let n={...e,enabled:e.enabled!==!1,wakeupEnabled:e.wakeupEnabled===!0,wakeupTime:e.wakeupTime||"06:00",wakeupModel:e.wakeupModel||""};return this.providers.set(n.name,n),e.models.forEach(r=>{let o=`${n.name},${r}`,s={provider:n.name,model:r,fullModel:o};this.modelRoutes.set(o,s),this.modelRoutes.has(r)||this.modelRoutes.set(r,s)}),n}getProviders(){return Array.from(this.providers.values())}getProvider(e){return this.providers.get(e)}updateProvider(e,n){let r=this.providers.get(e);if(!r)return null;let o={...r,...n,updatedAt:new Date};return this.providers.set(e,o),n.models&&(r.models.forEach(s=>{let a=`${r.name},${s}`;this.modelRoutes.delete(a),this.modelRoutes.delete(s)}),n.models.forEach(s=>{let a=`${r.name},${s}`,u={provider:r.name,model:s,fullModel:a};this.modelRoutes.set(a,u),this.modelRoutes.has(s)||this.modelRoutes.set(s,u)})),o}deleteProvider(e){let n=this.providers.get(e);return n?(n.models.forEach(r=>{let o=`${n.name},${r}`;this.modelRoutes.delete(o),this.modelRoutes.delete(r)}),this.providers.delete(e),!0):!1}toggleProvider(e,n){let r=this.providers.get(e);if(!r)return!1;r.enabled=n;let o=this.configService.get("providers");if(o&&Array.isArray(o)){let s=o.find(a=>a.name===e);s&&(s.enabled=n)}return!0}resolveModelRoute(e){let n=this.modelRoutes.get(e);if(!n)return null;let r=this.providers.get(n.provider);return r?{provider:r,originalModel:e,targetModel:n.model}:null}getAvailableModelNames(){let e=[];return this.providers.forEach(n=>{n.enabled!==!1&&n.models.forEach(r=>{e.push(r),e.push(`${n.name},${r}`)})}),e}getModelRoutes(){return Array.from(this.modelRoutes.values())}parseTransformerConfig(e){return e?Array.isArray(e)?e.reduce((n,r)=>{if(Array.isArray(r)){let[o,s={}]=r;n[o]=s}else n[r]={};return n},{}):e:{}}async getAvailableModels(){let e=[];return this.providers.forEach(n=>{n.enabled!==!1&&n.models.forEach(r=>{e.push({id:r,object:"model",owned_by:n.name,provider:n.name}),e.push({id:`${n.name},${r}`,object:"model",owned_by:n.name,provider:n.name})})}),{object:"list",data:e}}};var Qe=[];for(let t=0;t<256;++t)Qe.push((t+256).toString(16).slice(1));function jp(t,e=0){return(Qe[t[e+0]]+Qe[t[e+1]]+Qe[t[e+2]]+Qe[t[e+3]]+"-"+Qe[t[e+4]]+Qe[t[e+5]]+"-"+Qe[t[e+6]]+Qe[t[e+7]]+"-"+Qe[t[e+8]]+Qe[t[e+9]]+"-"+Qe[t[e+10]]+Qe[t[e+11]]+Qe[t[e+12]]+Qe[t[e+13]]+Qe[t[e+14]]+Qe[t[e+15]]).toLowerCase()}var Up=require("crypto"),Pi=new Uint8Array(256),Oi=Pi.length;function Rc(){return Oi>Pi.length-16&&((0,Up.randomFillSync)(Pi),Oi=0),Pi.slice(Oi,Oi+=16)}var $p=require("crypto"),xc={randomUUID:$p.randomUUID};function pw(t,e,n){if(xc.randomUUID&&!e&&!t)return xc.randomUUID();t=t||{};let r=t.random??t.rng?.()??Rc();if(r.length<16)throw new Error("Random bytes length must be >= 16");if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,e){if(n=n||0,n<0||n+16>e.length)throw new RangeError(`UUID byte range ${n}:${n+15} is out of buffer bounds`);for(let o=0;o<16;++o)e[n+o]=r[o];return e}return jp(r)}var qt=pw;var qp=t=>t<=0?"none":t<=1024?"low":t<=8192?"medium":"high";var zp=(t,e)=>(t.includes("base64")&&(t=t.split("base64").pop(),t.startsWith(",")&&(t=t.slice(1))),`data:${e};base64,${t}`);function mw(t){return t.filter(e=>!!e?.function?.name).map(e=>({name:e.function.name,description:e.function.description,input_schema:e.function.parameters}))}function Hp(t){let e=[],n=[],r=m=>{if(typeof m=="string"){n.push({type:"text",text:m});return}Array.isArray(m)&&m.forEach(b=>{if(typeof b=="string"){n.push({type:"text",text:b});return}b&&typeof b=="object"&&b.type==="text"&&b.text&&n.push({...b})})},o=()=>{let m=new Map;for(let b=0;b<n.length;b++){let w=n[b],y=w?.text??JSON.stringify(w),g=m.get(y);if(g===void 0){m.set(y,b);continue}!n[g]?.cache_control&&w?.cache_control&&(n[g]=w),n.splice(b,1),b--}};t.messages.forEach(m=>{m.role==="system"?r(m.content):e.push(m)}),o();let s=[];for(let m=0;m<e.length;m++){let b=e[m];if(b.role==="tool"){let w=b.content;try{typeof b.content=="string"&&(w=JSON.parse(b.content))}catch{}w!=null&&typeof w!="object"&&typeof w!="string"&&(w=String(w));let y={type:"tool_result",tool_use_id:b.tool_call_id,content:w};b.cache_control&&(y.cache_control=b.cache_control);let g=s[s.length-1];g&&g.role==="user"&&Array.isArray(g.content)?g.content.push(y):s.push({role:"user",content:[y]})}else if(b.role==="user"){let w=[];typeof b.content=="string"?w.push({type:"text",text:b.content}):Array.isArray(b.content)&&b.content.forEach(g=>{g&&typeof g=="object"&&g.type==="image_url"&&g.image_url?.url?w.push({type:"image",source:{type:"base64",media_type:g.media_type||"image/jpeg",data:g.image_url.url.split(",")[1]||g.image_url.url}}):w.push(g)});let y=s[s.length-1];y&&y.role==="user"&&Array.isArray(y.content)?y.content.push(...w):s.push({role:"user",content:w.length>0?w:[{type:"text",text:" "}]})}else if(b.role==="assistant"){let w=[];b.content&&(typeof b.content=="string"?w.push({type:"text",text:b.content}):Array.isArray(b.content)&&w.push(...b.content)),b.tool_calls&&b.tool_calls.length>0&&b.tool_calls.forEach(g=>{let _={};try{_=JSON.parse(g.function.arguments)}catch{_=g.function.arguments}w.push({type:"tool_use",id:g.id,name:g.function.name,input:_})}),b.thinking&&w.unshift({type:"thinking",thinking:b.thinking.content,signature:b.thinking.signature});let y=s[s.length-1];y&&y.role==="assistant"&&Array.isArray(y.content)?y.content.push(...w):s.push({role:"assistant",content:w.length>0?w:[{type:"text",text:" "}]})}}let a=()=>{let m=n.filter(b=>b?.cache_control).length;for(let b of s)Array.isArray(b.content)&&(m+=b.content.filter(w=>w?.cache_control).length);return m},u=m=>m&&typeof m=="object"?{...m}:{type:"ephemeral"},l=()=>{for(let m=s.length-1;m>=0;m--){let b=s[m]?.content;if(!Array.isArray(b))continue;let w=b.find(y=>y?.cache_control);if(w?.cache_control)return w.cache_control}for(let m=n.length-1;m>=0;m--)if(n[m]?.cache_control)return n[m].cache_control;return{type:"ephemeral"}},d=(m,b)=>{if(!Array.isArray(m?.content)||m.content.some(y=>y?.cache_control))return!1;let w=m.content.find(y=>y&&typeof y=="object"&&!y.cache_control);return w?(w.cache_control=u(b),!0):!1};(()=>{let m=4-a();if(m<=0||s.length===0)return;let b=s,w=l(),y=[];for(let g=b.length-1;g>=0;g--)b[g]?.role!=="user"||!Array.isArray(b[g].content)||y.push(g);for(let g of y){if(m<=0)break;d(b[g],w)&&m--}})();let p={messages:s,model:t.model,max_tokens:t.max_tokens||4096,temperature:t.temperature,stream:t.stream};if(n.length>0){let m=n.some(b=>b?.cache_control);p.system=m?n:n.map(b=>b.text||"").join(`
|
|
114
|
+
${o}`}],_reasoningItem:!0})}else if(r.role){let o=r.content;Array.isArray(o)&&(o=o.map(s=>s.type==="input_text"?{type:"text",text:s.text}:s.type==="output_text"?{type:"text",text:s.text}:s.type==="input_image"?{type:"image_url",image_url:{url:s.image_url},media_type:s.mime_type}:s)),e.push({role:r.role,content:o})}t.messages=e,delete t.input,t.instructions&&typeof t.instructions=="string"&&(t.system=t.instructions,delete t.instructions),Array.isArray(t.tools)&&(t.tools=t.tools.filter(r=>r&&typeof r=="object").map(r=>r.type==="function"&&r.name&&!r.function?{type:"function",function:{name:r.name,description:r.description||"",parameters:r.parameters||{type:"object",properties:{}}}}:r.function?.name?r:r.type==="web_search"?{type:"function",function:{name:"web_search",description:"Search the web",parameters:{type:"object",properties:{query:{type:"string"}}}}}:null).filter(Boolean)),t.reasoning&&typeof t.reasoning=="object"&&(t.reasoning={enabled:!0,effort:t.reasoning.effort}),delete t.store,delete t.previous_response_id,delete t.include}async function lw(t,e,n,r){let o=t.body;r.endPoint==="/v1/responses"&&o?.input&&!o?.messages&&Ip(o),r.endPoint==="/v1/responses"&&!t.provider&&typeof o?.model=="string"&&cw.test(o.model)&&await Zr(t,e,{configService:n.configService,tokenizerService:n.tokenizerService});let s=t.provider;if(!s&&o?.model){let d=o.model.split(",");d.length>1&&(s=d[0],o.model=d.slice(1).join(","))}let a=s?n.providerService.getProvider(s):void 0;if(!a&&o?.model){let d=n.providerService.resolveModelRoute(o.model);d&&(a=d.provider,o.model=d.targetModel)}if(!a&&o?.model){let f=n.configService.get("Router")?.default;if(f&&f.includes(",")){let[p,...m]=f.split(","),b=n.providerService.getProvider(p);b&&(a=b,o.model=m.join(","))}}if(t.originalModel||(t.originalModel=o?.model),!a)throw He(`Provider '${s}' not found`,404,"provider_not_found");t.provider=a.name||s;let u=hw(t),l=r.endPoint==="/v1/messages"&&u;u&&e.header("X-Codex-Detected","true"),l&&e.header("X-Codex-On-Messages","true"),t.isCodexOnMessagesEndpoint=l,t.codexDetected=u;try{r.endPoint==="/v1/responses"&&o.input&&!o.messages&&Ip(o);let{requestBody:d,config:f,bypass:p}=await Np(o,a,r,t.headers,{req:t});if(d?.messages&&!p&&!t.isTargetAnthropic){let y=d.messages,g=new Set,_=[],A=[];for(let C of y){if(C?.role!=="system"){A.push(C);continue}let S=JSON.stringify(C.content??"");g.has(S)||(g.add(S),_.push(C))}_.length>0&&A.length>0&&(d.messages=[...A,..._])}let m=await Bp(d,f,a,n,p,r,{req:t});try{a?.baseUrl&&m?.headers&&Wo(s,a.baseUrl,m.headers)}catch{}let b=await Mp(d,m,a,r,p,{req:t,isCodexOnMessagesEndpoint:l});if(o.stream&&b?.body){let y=b.body.getReader(),g=await y.read();if(g.done)throw y.releaseLock(),He(`Provider returned empty streaming response from ${s}`,400,"provider_response_error");let _=new TextDecoder().decode(g.value);if(_.includes("event: error")){y.releaseLock();let S=_.length<500?_:_.slice(0,500);throw He(`Provider ${s} returned error in SSE stream: ${S}`,400,"provider_response_error")}if(_.split(`
|
|
115
|
+
`).filter(S=>S.startsWith("data:")&&S.trim().length>5).length===0){y.releaseLock();let S=_.length<500?_:_.slice(0,500);throw He(`Provider ${s} returned streaming response with no SSE data lines: ${S}`,400,"provider_response_error")}let C=new ReadableStream({start:S=>{S.enqueue(g.value);let T=()=>{y.read().then(({done:R,value:$})=>{R?S.close():(S.enqueue($),T())}).catch(R=>S.error(R))};T()},cancel:()=>{y.cancel()}});b=new Response(C,{headers:b.headers,status:b.status,statusText:b.statusText})}let w=Lp(b,e,o,n);try{let y=o.model||t.originalModel;s&&y&&Je().recordSuccess(s,y)}catch{}return w}catch(d){let f=await dw(t,e,n,r,d);if(f)return f;throw d}}async function dw(t,e,n,r,o){let s=t.scenarioType||"default",a=t.familyFallback,u=t.modelFamily,l=t.fallbackConfig??n.configService.get("fallback"),d=Je(),f=t.provider||"",p=t.body.model||"",m=new Set,b=o?.statusCode===429||o?.isRateLimit===!0||o?.rawBody&&Oi(o.rawBody)||o?.message&&Oi(o.message);if(f&&p&&(b?(d.markRateLimited(f,p,120,o?.message),t.log.warn(`Primary model ${f},${p} rate-limited, will try fallbacks`)):d.recordFailure(f,p,o?.message),m.add(`${f},${p}`),n.recordUsage?.({provider:f,model:p,originalModel:t.originalModel||p,scenarioType:s,modelFamily:t.modelFamily,errorMessage:o?.message||String(o),sessionId:t.usageSessionId||t.id,stream:t.body.stream,inputTokens:t.tokenCount||0,req:t})),!(t.enableFallback??n.configService.get("Router")?.enableFallback===!0))return t.log.info("Fallback disabled by configuration, skipping fallback attempts"),null;let y=A=>{let[C,...S]=A.split(","),T=C?.trim(),R=S.join(",").trim();return!T||!R?null:{provider:T,model:R,key:`${T},${R}`}},g=[];if(u){let A=a?.[s];Array.isArray(A)&&A.length>0?g.push({name:`${u}/${s}`,models:A}):t.log.warn(`No ${u} fallback configured for ${s}; will try global ${s} fallback`)}if(Array.isArray(l?.[s])&&l[s].length>0&&g.push({name:`global/${s}`,models:l[s]}),g.length===0&&s!=="image"&&t.body?.messages?.some(S=>S.role==="user"&&Array.isArray(S.content)&&S.content.some(T=>T.type==="image"||T.type==="image_url"||Array.isArray(T?.content)&&T.content.some(R=>R.type==="image"||R.type==="image_url")))&&Array.isArray(l?.image)&&l.image.length>0&&(t.log.info(`No fallback for scenario '${s}', but request has images \u2014 trying fallback.image`),g.push({name:"global/image (auto-detected)",models:l.image})),g.length===0)return null;let _=g.reduce((A,C)=>A+C.models.length,0);t.log.warn(`Request failed for ${s}, trying ${_} fallback models across ${g.length} fallback stage(s)`);for(let A of g){t.log.info(`Trying ${A.name} fallback stage with ${A.models.length} models`);for(let C of A.models){let S=y(C);if(!S){t.log.warn(`Fallback model '${C}' is invalid, skipping`);continue}if(m.has(S.key))continue;m.add(S.key);let T=S.provider,R=S.model;try{if(!d.isAvailable(T,R)){t.log.warn(`Fallback model ${C} unavailable (fail pool), skipping`);continue}t.log.info(`Trying fallback model: ${C}`);let $={...t.body};$.model=R;let V={...t,provider:T,body:$},P=n.providerService.getProvider(T);if(!P){t.log.warn(`Fallback provider '${T}' not found, skipping`);continue}if(P.enabled===!1){t.log.warn(`Fallback provider '${T}' is disabled, skipping`);continue}let{requestBody:Y,config:z,bypass:K}=await Np($,P,r,t.headers,{req:V}),Q=await Bp(Y,z,P,n,K,r,{req:V});try{P?.baseUrl&&Q?.headers&&Wo(T,P.baseUrl,Q.headers)}catch{}let ee=await Mp(Y,Q,P,r,K,{req:V,isCodexOnMessagesEndpoint:t.isCodexOnMessagesEndpoint||!1});return t.log.info(`Fallback model ${C} succeeded`),d.recordSuccess(T,R),f&&p&&(zo().promote(f,p,s,T,R),t.log.info(`Promoted fallback model ${T},${R} for ${f},${p}:${s}`),b?t.log.info(`Rate-limited original model ${f},${p} already marked unavailable with cooldown`):(d.forceOpen(f,p,o?.message),t.log.info(`Marked original model ${f},${p} as unavailable`))),t.provider=T,t.body=$,Lp(ee,e,$,n)}catch($){d.recordFailure(T,R,$.message),t.log.warn(`Fallback model ${S.key} failed: ${$.message}`),n.recordUsage?.({provider:T,model:R,originalModel:t.body.model,scenarioType:s,modelFamily:t.modelFamily,errorMessage:$.message,sessionId:t.usageSessionId||t.id,stream:t.body.stream,req:t});continue}}}return t.log.error(`All fallback models failed for ${s}`),null}async function Np(t,e,n,r,o){let s=JSON.parse(JSON.stringify(t)),a=s?.system;if(typeof a=="string"&&a.includes("cch="))s.system=a.replace(/cch=[^;]+;?/g,"cch=ccr-stable;");else if(Array.isArray(a))for(let d=0;d<a.length;d++){let f=a[d],p=typeof f=="string"?f:f?.text??"";if(p.includes("cch=")){let m=p.replace(/cch=[^;]+;?/g,"cch=ccr-stable;");typeof f=="string"?a[d]=m:typeof f?.text=="string"&&(f.text=m)}}let u={},l=!1;if(l=fw(e,n,t),l&&(r instanceof Headers?r.delete("content-length"):delete r["content-length"],u.headers=r),!l&&typeof n.transformRequestOut=="function"){let d=await n.transformRequestOut(s);d.body?(s=d.body,u=d.config||{}):s=d}if(!l&&e.transformer?.use?.length)for(let d of e.transformer.use){if(!d||typeof d.transformRequestIn!="function")continue;let f=await d.transformRequestIn(s,e,o);f.body?(s=f.body,u={...u,...f.config}):s=f}if(!l&&e.transformer?.[t.model]?.use?.length)for(let d of e.transformer[t.model].use)!d||typeof d.transformRequestIn!="function"||(s=await d.transformRequestIn(s,e,o));return{requestBody:s,config:u,bypass:l}}function fw(t,e,n){return e.endPoint==="/v1/chat/completions"&&Array.isArray(n?.system)?!1:t.transformer?.use?.length===1&&t.transformer.use[0].name===e.name&&(!t.transformer?.[n.model]?.use.length||t.transformer?.[n.model]?.use.length===1&&t.transformer?.[n.model]?.use[0].name===e.name)}function hw(t){let e=t.headers||{},n=e["x-anthropic-billing-header"]||"";if(typeof n=="string"&&n.includes("cc_version="))return!1;let r=e["user-agent"]||"";if(typeof r=="string"&&/codex/i.test(r))return!0;let o=t.pathname||t.url||"";if(typeof o=="string"&&o.split("?",1)[0].endsWith("/v1/responses"))return!0;let s=t.originalModel||t.body?.model||"";return typeof s=="string"&&s.toLowerCase()==="ccr-codex"}async function Bp(t,e,n,r,o,s,a){let u=e.url||new URL(n.baseUrl);if(!e.TIMEOUT){let f=r.configService.get("API_TIMEOUT_MS");f&&(e.TIMEOUT=typeof f=="string"?parseInt(f,10):f)}if(o&&typeof s.auth=="function"){let f=await s.auth(t,n);if(f.body){t=f.body;let p=e.headers||{};f.config?.headers&&(p={...p,...f.config.headers},delete p.host,delete f.config.headers),e={...e,...f.config,headers:p}}else t=f}let l={Authorization:`Bearer ${n.apiKey}`,...e?.headers||{}};for(let f in l)(l[f]==="undefined"||["authorization","Authorization"].includes(f)&&l[f]?.includes("undefined"))&&delete l[f];yi(r.configService)&&cp(r.log,a.req.id,{url:String(u),headers:l,body:t});let d=await np(u,t,{httpsProxy:r.configService.getHttpsProxy(),...e,headers:JSON.parse(JSON.stringify(l))},a,r.log);if(!d.ok){let f=await d.text();r.log.error(`[provider_response_error] Error from provider(${n.name},${t.model}: ${d.status}): ${f}`);let p=He(`Error from provider(${n.name},${t.model}: ${d.status}): ${f}`,d.status,"provider_response_error");throw p.isRateLimit=d.status===429||Oi(f),p.rawBody=f,p}if(d.ok){let f=d.headers.get("content-type")||"",p=t.stream===!0;if(r.log.info(`[hidden-error-check] provider=${n.name} model=${t.model} stream=${t.stream} isStreamRequest=${p} contentType=${f} ok=${d.ok} status=${d.status} hasBody=${!!d.body}`),!p||f.includes("application/json")){let m=d.clone(),b="";try{if(b=await m.text(),!b||b.trim()==="")throw new SyntaxError("Empty JSON body");let w=JSON.parse(b);if(w&&typeof w=="object"&&w.error&&(typeof w.error=="string"||typeof w.error=="object"&&Object.keys(w.error).length>0)){r.log.error(`[provider_response_error] Hidden error from provider(${n.name},${t.model}: ${d.status}): ${b}`);let g=Oi(b),_=He(`Error from provider(${n.name},${t.model}: ${d.status}): ${b}`,400,"provider_response_error");throw _.isRateLimit=g,_.rawBody=b,_}}catch(w){if(w instanceof SyntaxError){r.log.warn(`[provider_response_error] Empty or malformed JSON response from provider(${n.name},${t.model}: 200): "${b}"`);let y=He(`API returned an empty or malformed response (HTTP 200) from ${n.name} \u2014 check for a proxy or gateway intercepting the request`,400,"provider_response_error");throw y.rawBody=b,y}throw w}}}if(!t.stream&&yi(r.configService)){let p=await d.clone().text();lp(r.log,a.req.id,{status:d.status,headers:Object.fromEntries(d.headers.entries()),body:p})}return d}async function Mp(t,e,n,r,o,s){let a=e;if(!o&&n.transformer?.use?.length)for(let u of Array.from(n.transformer.use).reverse())!u||typeof u.transformResponseOut!="function"||(a=await u.transformResponseOut(a,s));if(!o&&n.transformer?.[t.model]?.use?.length)for(let u of Array.from(n.transformer[t.model].use).reverse())!u||typeof u.transformResponseOut!="function"||(a=await u.transformResponseOut(a,s));if(!o&&r.transformResponseIn&&(s.provider||(s.provider=n),a=await r.transformResponseIn(a,s)),s?.isCodexOnMessagesEndpoint)try{a=await new Vr().transformResponseIn(a,{...s,provider:n})}catch(u){console.error("Failed to apply Responses API conversion for codex client:",u)}return a}function Lp(t,e,n,r){if(t.ok||e.code(t.status),n.stream===!0){if(e.header("Content-Type","text/event-stream"),e.header("Cache-Control","no-cache"),e.header("Connection","keep-alive"),r&&yi(r.configService)){let[s,a]=t.body.tee(),u=ap(r.configService);return dp(s,r.log,e.request.id,u),e.send(a)}return e.send(t.body)}else return t.json()}var Rc=async t=>{t.get("/",async()=>({message:"LLMs API",version:bi})),t.get("/health",async()=>({status:"ok",timestamp:new Date().toISOString()})),t.get("/providers/health",async()=>({states:Je().getAllStates().map(o=>({provider:o.provider,model:o.model,status:o.status,failureCount:o.failureCount,successCount:o.successCount,lastFailureTime:o.lastFailureTime,lastError:o.lastError,rateLimitUntil:o.rateLimitUntil??null})),timestamp:new Date().toISOString()}));let e=t.transformerService.getTransformersWithEndpoint();for(let{transformer:n}of e)n.endPoint&&t.post(n.endPoint,async(r,o)=>lw(r,o,t,n));t.post("/providers",{schema:{body:{type:"object",properties:{id:{type:"string"},name:{type:"string"},type:{type:"string",enum:["openai","anthropic"]},baseUrl:{type:"string"},apiKey:{type:"string"},models:{type:"array",items:{type:"string"}}},required:["id","name","type","baseUrl","apiKey","models"]}}},async(n,r)=>{let{name:o,baseUrl:s,apiKey:a,models:u}=n.body;if(!o?.trim())throw He("Provider name is required",400,"invalid_request");if(!s||!pw(s))throw He("Valid base URL is required",400,"invalid_request");if(!a?.trim())throw He("API key is required",400,"invalid_request");if(!u||!Array.isArray(u)||u.length===0)throw He("At least one model is required",400,"invalid_request");if(t.providerService.getProvider(n.body.name))throw He(`Provider with name '${n.body.name}' already exists`,400,"provider_exists");return t.providerService.registerProvider(n.body)}),t.get("/providers",async()=>t.providerService.getProviders()),t.get("/providers/:id",{schema:{params:{type:"object",properties:{id:{type:"string"}},required:["id"]}}},async n=>{let r=t.providerService.getProvider(n.params.id);if(!r)throw He("Provider not found",404,"provider_not_found");return r}),t.put("/providers/:id",{schema:{params:{type:"object",properties:{id:{type:"string"}},required:["id"]},body:{type:"object",properties:{name:{type:"string"},type:{type:"string",enum:["openai","anthropic"]},baseUrl:{type:"string"},apiKey:{type:"string"},models:{type:"array",items:{type:"string"}},enabled:{type:"boolean"}}}}},async(n,r)=>{let o=t.providerService.updateProvider(n.params.id,n.body);if(!o)throw He("Provider not found",404,"provider_not_found");return o}),t.delete("/providers/:id",{schema:{params:{type:"object",properties:{id:{type:"string"}},required:["id"]}}},async n=>{if(!t.providerService.deleteProvider(n.params.id))throw He("Provider not found",404,"provider_not_found");return{message:"Provider deleted successfully"}}),t.patch("/providers/:id/toggle",{schema:{params:{type:"object",properties:{id:{type:"string"}},required:["id"]},body:{type:"object",properties:{enabled:{type:"boolean"}},required:["enabled"]}}},async(n,r)=>{if(!t.providerService.toggleProvider(n.params.id,n.body.enabled))throw He("Provider not found",404,"provider_not_found");return{message:`Provider ${n.body.enabled?"enabled":"disabled"} successfully`}})};function Oi(t){let e=t.toLowerCase();return e.includes("rate limit")||e.includes("rate_limit")||e.includes("rate_limit_error")||e.includes("too many requests")||e.includes("too many")||e.includes("quota exhausted")||e.includes("qps_limit")||e.includes("token_limit")||e.includes("\u9650\u6D41")||e.includes("\u9891\u7387\u9650\u5236")}function pw(t){try{return new URL(t),!0}catch{return!1}}var yr=class{constructor(e,n,r){this.configService=e;this.transformerService=n;this.logger=r;this.initializeCustomProviders()}providers=new Map;modelRoutes=new Map;initializeCustomProviders(){let e=this.configService.get("providers");if(e&&Array.isArray(e)){this.initializeFromProvidersArray(e);return}}initializeFromProvidersArray(e){e.forEach(n=>{try{if(!n.name||!n.api_base_url||!n.api_key)return;let r={};n.transformer&&Object.keys(n.transformer).forEach(o=>{o==="use"?Array.isArray(n.transformer.use)&&(r.use=n.transformer.use.map(s=>{if(Array.isArray(s)&&typeof s[0]=="string"){let a=this.transformerService.getTransformer(s[0]);if(a)return new a(s[1])}if(typeof s=="string"){let a=this.transformerService.getTransformer(s);return typeof a=="function"?new a:a}}).filter(s=>typeof s<"u")):Array.isArray(n.transformer[o]?.use)&&(r[o]={use:n.transformer[o].use.map(s=>{if(Array.isArray(s)&&typeof s[0]=="string"){let a=this.transformerService.getTransformer(s[0]);if(a)return new a(s[1])}if(typeof s=="string"){let a=this.transformerService.getTransformer(s);return typeof a=="function"?new a:a}}).filter(s=>typeof s<"u")})}),this.registerProvider({name:n.name,baseUrl:n.api_base_url,apiKey:n.api_key,models:n.models||[],quotaToken:n.quota_token,transformer:n.transformer?r:void 0,cacheMode:n.cache_mode||"exclusive",enabled:n.enabled!==!1,wakeupEnabled:n.wakeup_enabled===!0,wakeupTime:n.wakeup_time||"06:00",wakeupModel:n.wakeup_model||""}),this.logger.info(`${n.name} provider registered`)}catch(r){this.logger.error(`${n.name} provider registered error: ${r}`)}})}registerProvider(e){let n={...e,enabled:e.enabled!==!1,wakeupEnabled:e.wakeupEnabled===!0,wakeupTime:e.wakeupTime||"06:00",wakeupModel:e.wakeupModel||""};return this.providers.set(n.name,n),e.models.forEach(r=>{let o=`${n.name},${r}`,s={provider:n.name,model:r,fullModel:o};this.modelRoutes.set(o,s),this.modelRoutes.has(r)||this.modelRoutes.set(r,s)}),n}getProviders(){return Array.from(this.providers.values())}getProvider(e){return this.providers.get(e)}updateProvider(e,n){let r=this.providers.get(e);if(!r)return null;let o={...r,...n,updatedAt:new Date};return this.providers.set(e,o),n.models&&(r.models.forEach(s=>{let a=`${r.name},${s}`;this.modelRoutes.delete(a),this.modelRoutes.delete(s)}),n.models.forEach(s=>{let a=`${r.name},${s}`,u={provider:r.name,model:s,fullModel:a};this.modelRoutes.set(a,u),this.modelRoutes.has(s)||this.modelRoutes.set(s,u)})),o}deleteProvider(e){let n=this.providers.get(e);return n?(n.models.forEach(r=>{let o=`${n.name},${r}`;this.modelRoutes.delete(o),this.modelRoutes.delete(r)}),this.providers.delete(e),!0):!1}toggleProvider(e,n){let r=this.providers.get(e);if(!r)return!1;r.enabled=n;let o=this.configService.get("providers");if(o&&Array.isArray(o)){let s=o.find(a=>a.name===e);s&&(s.enabled=n)}return!0}resolveModelRoute(e){let n=this.modelRoutes.get(e);if(!n)return null;let r=this.providers.get(n.provider);return r?{provider:r,originalModel:e,targetModel:n.model}:null}getAvailableModelNames(){let e=[];return this.providers.forEach(n=>{n.enabled!==!1&&n.models.forEach(r=>{e.push(r),e.push(`${n.name},${r}`)})}),e}getModelRoutes(){return Array.from(this.modelRoutes.values())}parseTransformerConfig(e){return e?Array.isArray(e)?e.reduce((n,r)=>{if(Array.isArray(r)){let[o,s={}]=r;n[o]=s}else n[r]={};return n},{}):e:{}}async getAvailableModels(){let e=[];return this.providers.forEach(n=>{n.enabled!==!1&&n.models.forEach(r=>{e.push({id:r,object:"model",owned_by:n.name,provider:n.name}),e.push({id:`${n.name},${r}`,object:"model",owned_by:n.name,provider:n.name})})}),{object:"list",data:e}}};var Qe=[];for(let t=0;t<256;++t)Qe.push((t+256).toString(16).slice(1));function jp(t,e=0){return(Qe[t[e+0]]+Qe[t[e+1]]+Qe[t[e+2]]+Qe[t[e+3]]+"-"+Qe[t[e+4]]+Qe[t[e+5]]+"-"+Qe[t[e+6]]+Qe[t[e+7]]+"-"+Qe[t[e+8]]+Qe[t[e+9]]+"-"+Qe[t[e+10]]+Qe[t[e+11]]+Qe[t[e+12]]+Qe[t[e+13]]+Qe[t[e+14]]+Qe[t[e+15]]).toLowerCase()}var Up=require("crypto"),Fi=new Uint8Array(256),Pi=Fi.length;function xc(){return Pi>Fi.length-16&&((0,Up.randomFillSync)(Fi),Pi=0),Fi.slice(Pi,Pi+=16)}var $p=require("crypto"),Oc={randomUUID:$p.randomUUID};function mw(t,e,n){if(Oc.randomUUID&&!e&&!t)return Oc.randomUUID();t=t||{};let r=t.random??t.rng?.()??xc();if(r.length<16)throw new Error("Random bytes length must be >= 16");if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,e){if(n=n||0,n<0||n+16>e.length)throw new RangeError(`UUID byte range ${n}:${n+15} is out of buffer bounds`);for(let o=0;o<16;++o)e[n+o]=r[o];return e}return jp(r)}var qt=mw;var qp=t=>t<=0?"none":t<=1024?"low":t<=8192?"medium":"high";var zp=(t,e)=>(t.includes("base64")&&(t=t.split("base64").pop(),t.startsWith(",")&&(t=t.slice(1))),`data:${e};base64,${t}`);function gw(t){return t.filter(e=>!!e?.function?.name).map(e=>({name:e.function.name,description:e.function.description,input_schema:e.function.parameters}))}function Hp(t){let e=[],n=[],r=m=>{if(typeof m=="string"){n.push({type:"text",text:m});return}Array.isArray(m)&&m.forEach(b=>{if(typeof b=="string"){n.push({type:"text",text:b});return}b&&typeof b=="object"&&b.type==="text"&&b.text&&n.push({...b})})},o=()=>{let m=new Map;for(let b=0;b<n.length;b++){let w=n[b],y=w?.text??JSON.stringify(w),g=m.get(y);if(g===void 0){m.set(y,b);continue}!n[g]?.cache_control&&w?.cache_control&&(n[g]=w),n.splice(b,1),b--}};t.messages.forEach(m=>{m.role==="system"?r(m.content):e.push(m)}),o();let s=[];for(let m=0;m<e.length;m++){let b=e[m];if(b.role==="tool"){let w=b.content;try{typeof b.content=="string"&&(w=JSON.parse(b.content))}catch{}w!=null&&typeof w!="object"&&typeof w!="string"&&(w=String(w));let y={type:"tool_result",tool_use_id:b.tool_call_id,content:w};b.cache_control&&(y.cache_control=b.cache_control);let g=s[s.length-1];g&&g.role==="user"&&Array.isArray(g.content)?g.content.push(y):s.push({role:"user",content:[y]})}else if(b.role==="user"){let w=[];typeof b.content=="string"?w.push({type:"text",text:b.content}):Array.isArray(b.content)&&b.content.forEach(g=>{g&&typeof g=="object"&&g.type==="image_url"&&g.image_url?.url?w.push({type:"image",source:{type:"base64",media_type:g.media_type||"image/jpeg",data:g.image_url.url.split(",")[1]||g.image_url.url}}):w.push(g)});let y=s[s.length-1];y&&y.role==="user"&&Array.isArray(y.content)?y.content.push(...w):s.push({role:"user",content:w.length>0?w:[{type:"text",text:" "}]})}else if(b.role==="assistant"){let w=[];b.content&&(typeof b.content=="string"?w.push({type:"text",text:b.content}):Array.isArray(b.content)&&w.push(...b.content)),b.tool_calls&&b.tool_calls.length>0&&b.tool_calls.forEach(g=>{let _={};try{_=JSON.parse(g.function.arguments)}catch{_=g.function.arguments}w.push({type:"tool_use",id:g.id,name:g.function.name,input:_})}),b.thinking&&w.unshift({type:"thinking",thinking:b.thinking.content,signature:b.thinking.signature});let y=s[s.length-1];y&&y.role==="assistant"&&Array.isArray(y.content)?y.content.push(...w):s.push({role:"assistant",content:w.length>0?w:[{type:"text",text:" "}]})}}let a=()=>{let m=n.filter(b=>b?.cache_control).length;for(let b of s)Array.isArray(b.content)&&(m+=b.content.filter(w=>w?.cache_control).length);return m},u=m=>m&&typeof m=="object"?{...m}:{type:"ephemeral"},l=()=>{for(let m=s.length-1;m>=0;m--){let b=s[m]?.content;if(!Array.isArray(b))continue;let w=b.find(y=>y?.cache_control);if(w?.cache_control)return w.cache_control}for(let m=n.length-1;m>=0;m--)if(n[m]?.cache_control)return n[m].cache_control;return{type:"ephemeral"}},d=(m,b)=>{if(!Array.isArray(m?.content)||m.content.some(y=>y?.cache_control))return!1;let w=m.content.find(y=>y&&typeof y=="object"&&!y.cache_control);return w?(w.cache_control=u(b),!0):!1};(()=>{let m=4-a();if(m<=0||s.length===0)return;let b=s,w=l(),y=[];for(let g=b.length-1;g>=0;g--)b[g]?.role!=="user"||!Array.isArray(b[g].content)||y.push(g);for(let g of y){if(m<=0)break;d(b[g],w)&&m--}})();let p={messages:s,model:t.model,max_tokens:t.max_tokens||4096,temperature:t.temperature,stream:t.stream};if(n.length>0){let m=n.some(b=>b?.cache_control);p.system=m?n:n.map(b=>b.text||"").join(`
|
|
116
116
|
|
|
117
|
-
`)}return t.tools&&t.tools.length>0&&(p.tools=
|
|
118
|
-
`));let l=s.content.filter(f=>f.type==="tool_use"&&f.id);l.length&&(a.tool_calls=l.map(f=>({id:f.id,type:"function",function:{name:f.name,arguments:JSON.stringify(f.input||{})}})));let d=s.content.find(f=>f.type==="thinking");d&&(a.thinking={content:d.thinking,signature:d.signature}),n.push(a)}return}}});let o={messages:n,model:e.model,max_tokens:e.max_tokens,temperature:e.temperature,stream:e.stream,tools:e.tools?.length?this.convertAnthropicToolsToUnified(e.tools):void 0,tool_choice:e.tool_choice};return e.thinking&&(o.reasoning={effort:qp(e.thinking.budget_tokens),enabled:e.thinking.type==="enabled"}),e.tool_choice&&(e.tool_choice.type==="tool"?o.tool_choice={type:"function",function:{name:e.tool_choice.name}}:o.tool_choice=e.tool_choice.type),o}async transformRequestIn(e,n,r){if(!this.isAnthropicMessagesEndpoint(n.baseUrl))return e;r&&r.req&&(r.req.isTargetAnthropic=!0);let o=Hp(e),s={};return this.useBearer?(s.authorization=`Bearer ${n.apiKey}`,s["x-api-key"]=void 0):(s["x-api-key"]=n.apiKey,s.authorization=void 0),s["anthropic-version"]="2023-06-01",s["content-type"]="application/json",{body:o,config:{headers:s}}}isAnthropicMessagesEndpoint(e){try{return new URL(e.trim()).pathname.replace(/\/+$/,"").endsWith("/messages")}catch{return!1}}async transformResponseIn(e,n){if(n?.req?.isTargetAnthropic)return e;if(e.headers.get("Content-Type")?.includes("text/event-stream")){if(!e.body)throw new Error("Stream response body is null");let o=await this.convertOpenAIStreamToAnthropic(e.body,n);return new Response(o,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}else{let o=await e.json(),s=this.convertOpenAIResponseToAnthropic(o,n);return new Response(JSON.stringify(s),{headers:{"Content-Type":"application/json"}})}}convertAnthropicToolsToUnified(e){return e.map(n=>({type:"function",function:{name:n.name,description:n.description||"",parameters:n.input_schema}}))}async convertOpenAIStreamToAnthropic(e,n){return new ReadableStream({start:async o=>{let s=new TextEncoder,a=`msg_${Date.now()}`,u=null,l="unknown",d=!1,f=!1,p=!1,m=new Map,b=new Map,w=0,y=0,g=0,_=!1,A=!1,C=0,S=-1,
|
|
117
|
+
`)}return t.tools&&t.tools.length>0&&(p.tools=gw(t.tools),t.tool_choice&&(t.tool_choice==="auto"?p.tool_choice={type:"auto"}:t.tool_choice==="any"||t.tool_choice==="required"?p.tool_choice={type:"any"}:typeof t.tool_choice=="string"?p.tool_choice={type:"tool",name:t.tool_choice}:typeof t.tool_choice=="object"&&t.tool_choice.type==="function"&&(p.tool_choice={type:"tool",name:t.tool_choice.function.name}))),p}var Ii=class{constructor(e){this.options=e;this.useBearer=this.options?.UseBearer??!1}name="Anthropic";endPoint="/v1/messages";useBearer;logger;async auth(e,n){let r={};return this.useBearer?(r.authorization=`Bearer ${n.apiKey}`,r["x-api-key"]=void 0):(r["x-api-key"]=n.apiKey,r.authorization=void 0),{body:e,config:{headers:r}}}async transformRequestOut(e){let n=[];if(e.system){if(typeof e.system=="string")n.push({role:"system",content:e.system});else if(Array.isArray(e.system)&&e.system.length){let s=e.system.filter(a=>a.type==="text"&&a.text).map(a=>({type:"text",text:a.text,cache_control:a.cache_control}));n.push({role:"system",content:s})}}JSON.parse(JSON.stringify(e.messages||[]))?.forEach(s=>{if(s.role==="system"){n.push({role:"system",content:s.content});return}if(s.role==="user"||s.role==="assistant"){if(typeof s.content=="string"){n.push({role:s.role,content:s.content});return}if(Array.isArray(s.content)){if(s.role==="user"){let a=s.content.filter(l=>l.type==="tool_result"&&l.tool_use_id);a.length&&a.forEach(l=>{let d={role:"tool",content:typeof l.content=="string"?l.content:JSON.stringify(l.content),tool_call_id:l.tool_use_id,cache_control:l.cache_control};n.push(d)});let u=s.content.filter(l=>l.type==="text"&&l.text||l.type==="image"&&l.source);u.length&&n.push({role:"user",content:u.map(l=>l?.type==="image"?{type:"image_url",image_url:{url:l.source?.type==="base64"?zp(l.source.data,l.source.media_type):l.source.url},media_type:l.source.media_type}:l)})}else if(s.role==="assistant"){let a={role:"assistant",content:""},u=s.content.filter(f=>f.type==="text"&&f.text);u.length&&(a.content=u.map(f=>f.text).join(`
|
|
118
|
+
`));let l=s.content.filter(f=>f.type==="tool_use"&&f.id);l.length&&(a.tool_calls=l.map(f=>({id:f.id,type:"function",function:{name:f.name,arguments:JSON.stringify(f.input||{})}})));let d=s.content.find(f=>f.type==="thinking");d&&(a.thinking={content:d.thinking,signature:d.signature}),n.push(a)}return}}});let o={messages:n,model:e.model,max_tokens:e.max_tokens,temperature:e.temperature,stream:e.stream,tools:e.tools?.length?this.convertAnthropicToolsToUnified(e.tools):void 0,tool_choice:e.tool_choice};return e.thinking&&(o.reasoning={effort:qp(e.thinking.budget_tokens),enabled:e.thinking.type==="enabled"}),e.tool_choice&&(e.tool_choice.type==="tool"?o.tool_choice={type:"function",function:{name:e.tool_choice.name}}:o.tool_choice=e.tool_choice.type),o}async transformRequestIn(e,n,r){if(!this.isAnthropicMessagesEndpoint(n.baseUrl))return e;r&&r.req&&(r.req.isTargetAnthropic=!0);let o=Hp(e),s={};return this.useBearer?(s.authorization=`Bearer ${n.apiKey}`,s["x-api-key"]=void 0):(s["x-api-key"]=n.apiKey,s.authorization=void 0),s["anthropic-version"]="2023-06-01",s["content-type"]="application/json",{body:o,config:{headers:s}}}isAnthropicMessagesEndpoint(e){try{return new URL(e.trim()).pathname.replace(/\/+$/,"").endsWith("/messages")}catch{return!1}}async transformResponseIn(e,n){if(n?.req?.isTargetAnthropic)return e;if(e.headers.get("Content-Type")?.includes("text/event-stream")){if(!e.body)throw new Error("Stream response body is null");let o=await this.convertOpenAIStreamToAnthropic(e.body,n);return new Response(o,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}else{let o=await e.json(),s=this.convertOpenAIResponseToAnthropic(o,n);return new Response(JSON.stringify(s),{headers:{"Content-Type":"application/json"}})}}convertAnthropicToolsToUnified(e){return e.map(n=>({type:"function",function:{name:n.name,description:n.description||"",parameters:n.input_schema}}))}async convertOpenAIStreamToAnthropic(e,n){return new ReadableStream({start:async o=>{let s=new TextEncoder,a=`msg_${Date.now()}`,u=null,l="unknown",d=!1,f=!1,p=!1,m=new Map,b=new Map,w=0,y=0,g=0,_=!1,A=!1,C=0,S=-1,T=()=>{let P=C;return C++,P},R=P=>{if(!_)try{o.enqueue(P);let Y=new TextDecoder().decode(P);this.logger.debug({reqId:n.req.id,data:Y,type:"send data"})}catch(Y){if(Y instanceof TypeError&&Y.message.includes("Controller is already closed"))_=!0;else throw this.logger.debug({reqId:n.req.id,error:Y instanceof Error?Y.message:String(Y),type:"send data error"}),Y}},$=()=>{if(!_)try{if(!d){this.logger?.warn("[empty_stream] Upstream produced no data, closing silently"),o.close(),_=!0;return}if(S>=0){let Y={type:"content_block_stop",index:S};R(s.encode(`event: content_block_stop
|
|
119
119
|
data: ${JSON.stringify(Y)}
|
|
120
120
|
|
|
121
121
|
`)),S=-1}if(u)R(s.encode(`event: message_delta
|
|
@@ -134,7 +134,7 @@ data: ${JSON.stringify(G)}
|
|
|
134
134
|
`));continue}if(l=oe.model||l,!d&&!_&&!p){d=!0;let G=n?.req?.tokenCount||0,Z={type:"message_start",message:{id:a,type:"message",role:"assistant",content:[],model:l,stop_reason:null,stop_sequence:null,usage:{input_tokens:G,output_tokens:0}}};R(s.encode(`event: message_start
|
|
135
135
|
data: ${JSON.stringify(Z)}
|
|
136
136
|
|
|
137
|
-
`))}let pe=oe.choices?.[0];if(oe.usage){let G=oe.usage?.prompt_tokens_details?.cached_tokens||0,se=(oe.usage?.prompt_tokens||0)-G;this.logger?.info({debug_log:!0,reqId:n.req.id,phase:"anthropic_transformer_usage",providerUsage:oe.usage,mappedUsage:{input_tokens:se,output_tokens:oe.usage?.completion_tokens||0,cache_read_input_tokens:G},choicesLength:Array.isArray(oe.choices)?oe.choices.length:void 0,finishReason:pe?.finish_reason}),u?u.usage={input_tokens:se,output_tokens:oe.usage?.completion_tokens||0,cache_read_input_tokens:G}:u={type:"message_delta",delta:{stop_reason:"end_turn",stop_sequence:null},usage:{input_tokens:se,output_tokens:oe.usage?.completion_tokens||0,cache_read_input_tokens:G}}}if(!pe)continue;if(pe?.delta?.thinking&&!_&&!p&&!f){if(!A){let G=
|
|
137
|
+
`))}let pe=oe.choices?.[0];if(oe.usage){let G=oe.usage?.prompt_tokens_details?.cached_tokens||0,se=(oe.usage?.prompt_tokens||0)-G;this.logger?.info({debug_log:!0,reqId:n.req.id,phase:"anthropic_transformer_usage",providerUsage:oe.usage,mappedUsage:{input_tokens:se,output_tokens:oe.usage?.completion_tokens||0,cache_read_input_tokens:G},choicesLength:Array.isArray(oe.choices)?oe.choices.length:void 0,finishReason:pe?.finish_reason}),u?u.usage={input_tokens:se,output_tokens:oe.usage?.completion_tokens||0,cache_read_input_tokens:G}:u={type:"message_delta",delta:{stop_reason:"end_turn",stop_sequence:null},usage:{input_tokens:se,output_tokens:oe.usage?.completion_tokens||0,cache_read_input_tokens:G}}}if(!pe)continue;if(pe?.delta?.thinking&&!_&&!p&&!f){if(!A){let G=T(),Z={type:"content_block_start",index:G,content_block:{type:"thinking",thinking:""}};R(s.encode(`event: content_block_start
|
|
138
138
|
data: ${JSON.stringify(Z)}
|
|
139
139
|
|
|
140
140
|
`)),S=G,A=!0}if(pe.delta.thinking.signature){let G={type:"content_block_delta",index:S,delta:{type:"signature_delta",signature:pe.delta.thinking.signature}};R(s.encode(`event: content_block_delta
|
|
@@ -149,7 +149,7 @@ data: ${JSON.stringify(G)}
|
|
|
149
149
|
`))}}if(pe?.delta?.content&&!_&&!p){if(y++,S>=0&&!f){let Z={type:"content_block_stop",index:S};R(s.encode(`event: content_block_stop
|
|
150
150
|
data: ${JSON.stringify(Z)}
|
|
151
151
|
|
|
152
|
-
`)),S=-1}if(!f&&!p){f=!0;let G=
|
|
152
|
+
`)),S=-1}if(!f&&!p){f=!0;let G=T(),Z={type:"content_block_start",index:G,content_block:{type:"text",text:""}};R(s.encode(`event: content_block_start
|
|
153
153
|
data: ${JSON.stringify(Z)}
|
|
154
154
|
|
|
155
155
|
`)),S=G}if(!_&&!p){let G={type:"content_block_delta",index:S,delta:{type:"text_delta",text:pe.delta.content}};R(s.encode(`event: content_block_delta
|
|
@@ -158,7 +158,7 @@ data: ${JSON.stringify(G)}
|
|
|
158
158
|
`))}}if(pe?.delta?.annotations?.length&&!_&&!p){if(S>=0&&f){let G={type:"content_block_stop",index:S};R(s.encode(`event: content_block_stop
|
|
159
159
|
data: ${JSON.stringify(G)}
|
|
160
160
|
|
|
161
|
-
`)),S=-1,f=!1}pe?.delta?.annotations.forEach(G=>{let Z=
|
|
161
|
+
`)),S=-1,f=!1}pe?.delta?.annotations.forEach(G=>{let Z=T(),se={type:"content_block_start",index:Z,content_block:{type:"web_search_tool_result",tool_use_id:`srvtoolu_${qt()}`,content:[{type:"web_search_result",title:G.url_citation.title,url:G.url_citation.url}]}};R(s.encode(`event: content_block_start
|
|
162
162
|
data: ${JSON.stringify(se)}
|
|
163
163
|
|
|
164
164
|
`));let Ue={type:"content_block_stop",index:Z};R(s.encode(`event: content_block_stop
|
|
@@ -167,10 +167,10 @@ data: ${JSON.stringify(Ue)}
|
|
|
167
167
|
`)),S=-1})}if(pe?.delta?.tool_calls&&!_&&!p){g++;let G=new Set;for(let Z of pe.delta.tool_calls){if(_)break;let se=Z.index??0;if(G.has(se))continue;if(G.add(se),!b.has(se)){if(S>=0){let Oe={type:"content_block_stop",index:S};R(s.encode(`event: content_block_stop
|
|
168
168
|
data: ${JSON.stringify(Oe)}
|
|
169
169
|
|
|
170
|
-
`)),S=-1}let ke=
|
|
170
|
+
`)),S=-1}let ke=T();b.set(se,ke);let J=Z.id||`call_ccr_${se}`,ue=Z.function?.name||`tool_${se}`,te={type:"content_block_start",index:ke,content_block:{type:"tool_use",id:J,name:ue,input:{}}};R(s.encode(`event: content_block_start
|
|
171
171
|
data: ${JSON.stringify(te)}
|
|
172
172
|
|
|
173
|
-
`)),S=ke;let
|
|
173
|
+
`)),S=ke;let ve={id:J,name:ue,arguments:"",contentBlockIndex:ke};m.set(se,ve)}else if(Z.id&&Z.function?.name){let ke=m.get(se);ke.id.startsWith("call_")&&ke.name.startsWith("tool_")&&(ke.id=Z.id,ke.name=Z.function.name)}if(Z.function?.arguments&&!_&&!p){let ke=b.get(se);if(ke===void 0)continue;let J=m.get(se);J&&(J.arguments+=Z.function.arguments);try{let ue={type:"content_block_delta",index:ke,delta:{type:"input_json_delta",partial_json:Z.function.arguments}};R(s.encode(`event: content_block_delta
|
|
174
174
|
data: ${JSON.stringify(ue)}
|
|
175
175
|
|
|
176
176
|
`))}catch{try{let ue=Z.function.arguments.replace(/[\x00-\x1F\x7F-\x9F]/g,"").replace(/\\/g,"\\\\").replace(/"/g,'\\"'),te={type:"content_block_delta",index:ke,delta:{type:"input_json_delta",partial_json:ue}};R(s.encode(`event: content_block_delta
|
|
@@ -179,16 +179,16 @@ data: ${JSON.stringify(te)}
|
|
|
179
179
|
`))}catch(ue){console.error(ue)}}}}}if(pe?.finish_reason&&!_&&!p){if(y===0&&g===0&&console.error("Warning: No content in the stream response!"),S>=0){let G={type:"content_block_stop",index:S};R(s.encode(`event: content_block_stop
|
|
180
180
|
data: ${JSON.stringify(G)}
|
|
181
181
|
|
|
182
|
-
`)),S=-1}if(!_){let Z={stop:"end_turn",length:"max_tokens",tool_calls:"tool_use",content_filter:"stop_sequence"}[pe.finish_reason]||"end_turn",se=oe.usage?.prompt_tokens_details?.cached_tokens||0,ke=(oe.usage?.prompt_tokens||0)-se;u={type:"message_delta",delta:{stop_reason:Z,stop_sequence:null},usage:{input_tokens:ke,output_tokens:oe.usage?.completion_tokens||0,cache_read_input_tokens:se}}}break}}catch(oe){this.logger?.error(`parseError: ${oe.name} message: ${oe.message} stack: ${oe.stack} data: ${ie}`)}}}$()}catch(P){if(!_)try{o.error(P)}catch(Y){console.error(Y)}}finally{if(V)try{V.releaseLock()}catch(P){console.error(P)}}},cancel:o=>{this.logger.debug({reqId:n.req.id},`cancle stream: ${o}`)}})}convertOpenAIResponseToAnthropic(e,n){this.logger.debug({reqId:n.req.id,response:e},"Original OpenAI response");try{let r=e.choices[0];if(!r)throw new Error("No choices found in OpenAI response");let o=[];if(r.message.annotations){let l=`srvtoolu_${qt()}`;o.push({type:"server_tool_use",id:l,name:"web_search",input:{query:""}}),o.push({type:"web_search_tool_result",tool_use_id:l,content:r.message.annotations.map(d=>({type:"web_search_result",url:d.url_citation.url,title:d.url_citation.title}))})}r.message.content&&o.push({type:"text",text:r.message.content}),r.message.tool_calls&&r.message.tool_calls.length>0&&r.message.tool_calls.forEach(l=>{let d={};try{let f=l.function.arguments||"{}";typeof f=="object"?d=f:typeof f=="string"&&(d=JSON.parse(f))}catch{d={text:l.function.arguments||""}}o.push({type:"tool_use",id:l.id,name:l.function.name,input:d})}),r.message?.thinking?.content&&o.push({type:"thinking",thinking:r.message.thinking.content,signature:r.message.thinking.signature});let s=e.usage?.prompt_tokens_details?.cached_tokens||0,a=(e.usage?.prompt_tokens||0)-s,u={id:e.id?.startsWith("msg_")?e.id:`msg_${qt().replace(/-/g,"")}`,type:"message",role:"assistant",model:e.model,content:o,stop_reason:r.finish_reason==="stop"?"end_turn":r.finish_reason==="length"?"max_tokens":r.finish_reason==="tool_calls"?"tool_use":r.finish_reason==="content_filter"?"stop_sequence":"end_turn",stop_sequence:null,usage:{input_tokens:a,cache_creation_input_tokens:0,cache_read_input_tokens:s,output_tokens:e.usage?.completion_tokens||0,server_tool_use:{web_search_requests:0,web_fetch_requests:0},service_tier:"standard",cache_creation:{ephemeral_1h_input_tokens:0,ephemeral_5m_input_tokens:0},inference_geo:"",iterations:[],speed:"standard"},stop_details:null,context_management:null};return this.logger.debug({reqId:n.req.id,result:u},"Conversion complete, final Anthropic response"),u}catch{throw He(`Provider error: ${JSON.stringify(e)}`,500,"provider_error")}}};var eo={TYPE_UNSPECIFIED:"TYPE_UNSPECIFIED",STRING:"STRING",NUMBER:"NUMBER",INTEGER:"INTEGER",BOOLEAN:"BOOLEAN",ARRAY:"ARRAY",OBJECT:"OBJECT",NULL:"NULL"};function
|
|
183
|
-
`)||"",f={id:r.responseId,choices:[{finish_reason:r.candidates[0].finishReason?.toLowerCase()||null,index:0,message:{content:d,role:"assistant",tool_calls:l.length>0?l:void 0,...s&&{thinking:{content:o||"(no content)",signature:s}}}}],created:parseInt(new Date().getTime()/1e3+"",10),model:r.modelVersion,object:"chat.completion",usage:{completion_tokens:r.usageMetadata?.candidatesTokenCount||0,prompt_tokens:r.usageMetadata?.promptTokenCount||0,prompt_tokens_details:{cached_tokens:r.usageMetadata?.cachedContentTokenCount||0},total_tokens:r.usageMetadata?.totalTokenCount||0,output_tokens_details:{reasoning_tokens:r.usageMetadata?.thoughtsTokenCount||0}}};return new Response(JSON.stringify(f),{status:t.status,statusText:t.statusText,headers:t.headers})}else if(t.headers.get("Content-Type")?.includes("stream")){if(!t.body)return t;let r=new TextDecoder,o=new TextEncoder,s=!1,a=!1,u=!1,l="",d=0,f=-1,p=new ReadableStream({async start(m){let b=async(g,_)=>{if(g.startsWith("data: ")){let A=g.slice(6).trim();if(A){n?.debug({chunkStr:A},`${e} chunk:`);try{let C=JSON.parse(A);if(!C.candidates||!C.candidates[0]){n?.debug({chunkStr:A},"Invalid chunk structure");return}let S=C.candidates[0],
|
|
182
|
+
`)),S=-1}if(!_){let Z={stop:"end_turn",length:"max_tokens",tool_calls:"tool_use",content_filter:"stop_sequence"}[pe.finish_reason]||"end_turn",se=oe.usage?.prompt_tokens_details?.cached_tokens||0,ke=(oe.usage?.prompt_tokens||0)-se;u={type:"message_delta",delta:{stop_reason:Z,stop_sequence:null},usage:{input_tokens:ke,output_tokens:oe.usage?.completion_tokens||0,cache_read_input_tokens:se}}}break}}catch(oe){this.logger?.error(`parseError: ${oe.name} message: ${oe.message} stack: ${oe.stack} data: ${ie}`)}}}$()}catch(P){if(!_)try{o.error(P)}catch(Y){console.error(Y)}}finally{if(V)try{V.releaseLock()}catch(P){console.error(P)}}},cancel:o=>{this.logger.debug({reqId:n.req.id},`cancle stream: ${o}`)}})}convertOpenAIResponseToAnthropic(e,n){this.logger.debug({reqId:n.req.id,response:e},"Original OpenAI response");try{let r=e.choices[0];if(!r)throw new Error("No choices found in OpenAI response");let o=[];if(r.message.annotations){let l=`srvtoolu_${qt()}`;o.push({type:"server_tool_use",id:l,name:"web_search",input:{query:""}}),o.push({type:"web_search_tool_result",tool_use_id:l,content:r.message.annotations.map(d=>({type:"web_search_result",url:d.url_citation.url,title:d.url_citation.title}))})}r.message.content&&o.push({type:"text",text:r.message.content}),r.message.tool_calls&&r.message.tool_calls.length>0&&r.message.tool_calls.forEach(l=>{let d={};try{let f=l.function.arguments||"{}";typeof f=="object"?d=f:typeof f=="string"&&(d=JSON.parse(f))}catch{d={text:l.function.arguments||""}}o.push({type:"tool_use",id:l.id,name:l.function.name,input:d})}),r.message?.thinking?.content&&o.push({type:"thinking",thinking:r.message.thinking.content,signature:r.message.thinking.signature});let s=e.usage?.prompt_tokens_details?.cached_tokens||0,a=(e.usage?.prompt_tokens||0)-s,u={id:e.id?.startsWith("msg_")?e.id:`msg_${qt().replace(/-/g,"")}`,type:"message",role:"assistant",model:e.model,content:o,stop_reason:r.finish_reason==="stop"?"end_turn":r.finish_reason==="length"?"max_tokens":r.finish_reason==="tool_calls"?"tool_use":r.finish_reason==="content_filter"?"stop_sequence":"end_turn",stop_sequence:null,usage:{input_tokens:a,cache_creation_input_tokens:0,cache_read_input_tokens:s,output_tokens:e.usage?.completion_tokens||0,server_tool_use:{web_search_requests:0,web_fetch_requests:0},service_tier:"standard",cache_creation:{ephemeral_1h_input_tokens:0,ephemeral_5m_input_tokens:0},inference_geo:"",iterations:[],speed:"standard"},stop_details:null,context_management:null};return this.logger.debug({reqId:n.req.id,result:u},"Conversion complete, final Anthropic response"),u}catch{throw He(`Provider error: ${JSON.stringify(e)}`,500,"provider_error")}}};var eo={TYPE_UNSPECIFIED:"TYPE_UNSPECIFIED",STRING:"STRING",NUMBER:"NUMBER",INTEGER:"INTEGER",BOOLEAN:"BOOLEAN",ARRAY:"ARRAY",OBJECT:"OBJECT",NULL:"NULL"};function yw(t,e){t.includes("null")&&(e.nullable=!0);let n=t.filter(r=>r!=="null");if(n.length===1){let r=n[0].toUpperCase();e.type=Object.values(eo).includes(r)?r:eo.TYPE_UNSPECIFIED}else{e.anyOf=[];for(let r of n){let o=r.toUpperCase();e.anyOf.push({type:Object.values(eo).includes(o)?o:eo.TYPE_UNSPECIFIED})}}}function Go(t){let e={},n=["items"],r=["anyOf"],o=["properties"];if(t.type&&t.anyOf)throw new Error("type and anyOf cannot be both populated.");let s=t.anyOf;s!=null&&Array.isArray(s)&&s.length==2&&(s[0]&&s[0].type==="null"?(e.nullable=!0,t=s[1]):s[1]&&s[1].type==="null"&&(e.nullable=!0,t=s[0])),t.type&&Array.isArray(t.type)&&yw(t.type,e);for(let[a,u]of Object.entries(t))if(u!=null)if(a=="type"){if(u==="null")throw new Error("type: null can not be the only possible type for the field.");if(Array.isArray(u))continue;let l=u.toUpperCase();e.type=Object.values(eo).includes(l)?l:eo.TYPE_UNSPECIFIED}else if(n.includes(a))e[a]=Go(u);else if(r.includes(a)){let l=[];for(let d of u){if(d.type=="null"){e.nullable=!0;continue}l.push(Go(d))}e[a]=l}else if(o.includes(a)){let l={};for(let[d,f]of Object.entries(u))l[d]=Go(f);e[a]=l}else{if(a==="additionalProperties")continue;e[a]=u}return e}function _w(t){if(t.functionDeclarations)for(let e of t.functionDeclarations)e.parameters&&(Object.keys(e.parameters).includes("$schema")?e.parametersJsonSchema||(e.parametersJsonSchema=e.parameters,delete e.parameters):e.parameters=Go(e.parameters)),e.response&&(Object.keys(e.response).includes("$schema")?e.responseJsonSchema||(e.responseJsonSchema=e.response,delete e.response):e.response=Go(e.response));return t}function Ni(t){let e=[],n=t.tools?.filter(l=>l.function.name!=="web_search")?.map(l=>({name:l.function.name,description:l.function.description,parametersJsonSchema:l.function.parameters}));n?.length&&e.push(_w({functionDeclarations:n})),t.tools?.find(l=>l.function.name==="web_search")&&e.push({googleSearch:{}});let o=[],s=t.messages.filter(l=>l.role==="tool");t.messages.filter(l=>l.role!=="tool").forEach(l=>{let d;l.role==="assistant"?d="model":(["user","system"].includes(l.role),d="user");let f=[];if(typeof l.content=="string"){let p={text:l.content};l.thinking?.signature&&(p.thoughtSignature=l.thinking.signature),f.push(p)}else Array.isArray(l.content)?f.push(...l.content.map(p=>{if(p.type==="text")return{text:p.text||""};if(p.type==="image_url")return p.image_url.url.startsWith("http")?{file_data:{mime_type:p.media_type,file_uri:p.image_url.url}}:{inlineData:{mime_type:p.media_type,data:p.image_url.url?.split(",")?.pop()||p.image_url.url}}})):l.content&&typeof l.content=="object"&&(l.content.text?f.push({text:l.content.text}):f.push({text:JSON.stringify(l.content)}));if(Array.isArray(l.tool_calls)&&f.push(...l.tool_calls.map(p=>{let m={functionCall:{id:p.id||`tool_${Math.random().toString(36).substring(2,15)}`,name:p.function.name,args:JSON.parse(p.function.arguments||"{}")}};return l.thinking?.signature&&(m.thoughtSignature=l.thinking.signature),m})),f.length===0&&f.push({text:""}),o.push({role:d,parts:f}),d==="model"&&l.tool_calls){let p=l.tool_calls.map(m=>{let b=s.find(w=>w.tool_call_id===m.id);return{functionResponse:{name:m?.function?.name,response:{result:b?.content}}}});o.push({role:"user",parts:p})}});let a={};if(t.reasoning&&t.reasoning.effort&&t.reasoning.effort!=="none")if(a.thinkingConfig={includeThoughts:!0},t.model.includes("gemini-3"))a.thinkingConfig.thinkingLevel=t.reasoning.effort;else{let l=t.model.includes("pro")?[128,32768]:[0,24576],d,f=t.reasoning.max_tokens;typeof f<"u"&&(f>=l[0]&&f<=l[1]?d=f:f<l[0]?d=l[0]:f>l[1]&&(d=l[1]),a.thinkingConfig.thinkingBudget=d)}let u={contents:o,tools:e.length?e:void 0,generationConfig:a};if(t.tool_choice){let l={functionCallingConfig:{}};t.tool_choice==="auto"?l.functionCallingConfig.mode="auto":t.tool_choice==="none"?l.functionCallingConfig.mode="none":t.tool_choice==="required"?l.functionCallingConfig.mode="any":t.tool_choice?.function?.name&&(l.functionCallingConfig.mode="any",l.functionCallingConfig.allowedFunctionNames=[t.tool_choice?.function?.name]),u.toolConfig=l}return u}function Bi(t){let e=t.contents,n=t.tools,r=t.model,o=t.max_tokens,s=t.temperature,a=t.stream,u=t.tool_choice,l={messages:[],model:r,max_tokens:o,temperature:s,stream:a,tool_choice:u};return Array.isArray(e)&&e.forEach(d=>{typeof d=="string"?l.messages.push({role:"user",content:d}):typeof d.text=="string"?l.messages.push({role:"user",content:d.text||null}):d.role==="user"?l.messages.push({role:"user",content:d?.parts?.map(f=>({type:"text",text:f.text||""}))||[]}):d.role==="model"&&l.messages.push({role:"assistant",content:d?.parts?.map(f=>({type:"text",text:f.text||""}))||[]})}),Array.isArray(n)&&(l.tools=[],n.forEach(d=>{Array.isArray(d.functionDeclarations)&&d.functionDeclarations.forEach(f=>{l.tools.push({type:"function",function:{name:f.name,description:f.description,parameters:f.parameters}})})})),l}async function Mi(t,e,n){if(t.headers.get("Content-Type")?.includes("application/json")){let r=await t.json();n?.debug({response:r},`${e} response:`);let o="",s="",a=r.candidates[0]?.content?.parts||[],u=[];for(let p of a)p.text&&p.thought===!0?o+=p.text:u.push(p);s=a.find(p=>p.thoughtSignature)?.thoughtSignature;let l=u?.filter(p=>p.functionCall)?.map(p=>({id:p.functionCall?.id||`tool_${Math.random().toString(36).substring(2,15)}`,type:"function",function:{name:p.functionCall?.name,arguments:JSON.stringify(p.functionCall?.args||{})}}))||[],d=u?.filter(p=>p.text)?.map(p=>p.text)?.join(`
|
|
183
|
+
`)||"",f={id:r.responseId,choices:[{finish_reason:r.candidates[0].finishReason?.toLowerCase()||null,index:0,message:{content:d,role:"assistant",tool_calls:l.length>0?l:void 0,...s&&{thinking:{content:o||"(no content)",signature:s}}}}],created:parseInt(new Date().getTime()/1e3+"",10),model:r.modelVersion,object:"chat.completion",usage:{completion_tokens:r.usageMetadata?.candidatesTokenCount||0,prompt_tokens:r.usageMetadata?.promptTokenCount||0,prompt_tokens_details:{cached_tokens:r.usageMetadata?.cachedContentTokenCount||0},total_tokens:r.usageMetadata?.totalTokenCount||0,output_tokens_details:{reasoning_tokens:r.usageMetadata?.thoughtsTokenCount||0}}};return new Response(JSON.stringify(f),{status:t.status,statusText:t.statusText,headers:t.headers})}else if(t.headers.get("Content-Type")?.includes("stream")){if(!t.body)return t;let r=new TextDecoder,o=new TextEncoder,s=!1,a=!1,u=!1,l="",d=0,f=-1,p=new ReadableStream({async start(m){let b=async(g,_)=>{if(g.startsWith("data: ")){let A=g.slice(6).trim();if(A){n?.debug({chunkStr:A},`${e} chunk:`);try{let C=JSON.parse(A);if(!C.candidates||!C.candidates[0]){n?.debug({chunkStr:A},"Invalid chunk structure");return}let S=C.candidates[0],T=S.content?.parts||[];T.filter(P=>P.text&&P.thought===!0).forEach(P=>{u||(u=!0);let Y={choices:[{delta:{role:"assistant",content:null,thinking:{content:P.text}},finish_reason:null,index:d,logprobs:null}],created:parseInt(new Date().getTime()/1e3+"",10),id:C.responseId||"",model:C.modelVersion||"",object:"chat.completion.chunk",system_fingerprint:"fp_a49d71b8a1"};_.enqueue(o.encode(`data: ${JSON.stringify(Y)}
|
|
184
184
|
|
|
185
|
-
`))});let R=
|
|
185
|
+
`))});let R=T.find(P=>P.thoughtSignature)?.thoughtSignature;if(R&&!s){if(!u){let Y={choices:[{delta:{role:"assistant",content:null,thinking:{content:"(no content)"}},finish_reason:null,index:d,logprobs:null}],created:parseInt(new Date().getTime()/1e3+"",10),id:C.responseId||"",model:C.modelVersion||"",object:"chat.completion.chunk",system_fingerprint:"fp_a49d71b8a1"};_.enqueue(o.encode(`data: ${JSON.stringify(Y)}
|
|
186
186
|
|
|
187
187
|
`))}let P={choices:[{delta:{role:"assistant",content:null,thinking:{signature:R}},finish_reason:null,index:d,logprobs:null}],created:parseInt(new Date().getTime()/1e3+"",10),id:C.responseId||"",model:C.modelVersion||"",object:"chat.completion.chunk",system_fingerprint:"fp_a49d71b8a1"};if(_.enqueue(o.encode(`data: ${JSON.stringify(P)}
|
|
188
188
|
|
|
189
189
|
`)),s=!0,d++,l){let Y={choices:[{delta:{role:"assistant",content:l},finish_reason:null,index:d,logprobs:null}],created:parseInt(new Date().getTime()/1e3+"",10),id:C.responseId||"",model:C.modelVersion||"",object:"chat.completion.chunk",system_fingerprint:"fp_a49d71b8a1"};_.enqueue(o.encode(`data: ${JSON.stringify(Y)}
|
|
190
190
|
|
|
191
|
-
`)),l="",a||(a=!0)}}let $=
|
|
191
|
+
`)),l="",a||(a=!0)}}let $=T.filter(P=>P.functionCall).map(P=>({id:P.functionCall?.id||`ccr_tool_${Math.random().toString(36).substring(2,15)}`,type:"function",function:{name:P.functionCall?.name,arguments:JSON.stringify(P.functionCall?.args||{})}})),V=T.filter(P=>P.text&&P.thought!==!0).map(P=>P.text).join(`
|
|
192
192
|
`);if(!V&&s&&!a){let P={choices:[{delta:{role:"assistant",content:"(no content)"},index:d,finish_reason:null,logprobs:null}],created:parseInt(new Date().getTime()/1e3+"",10),id:C.responseId||"",model:C.modelVersion||"",object:"chat.completion.chunk",system_fingerprint:"fp_a49d71b8a1"};_.enqueue(o.encode(`data: ${JSON.stringify(P)}
|
|
193
193
|
|
|
194
194
|
`)),a||(a=!0)}if(u&&V&&!s)if(C.modelVersion.includes("3")){l+=V;return}else{let P={choices:[{delta:{role:"assistant",content:null,thinking:{signature:`ccr_${+new Date}`}},finish_reason:null,index:d,logprobs:null}],created:parseInt(new Date().getTime()/1e3+"",10),id:C.responseId||"",model:C.modelVersion||"",object:"chat.completion.chunk",system_fingerprint:"fp_a49d71b8a1"};_.enqueue(o.encode(`data: ${JSON.stringify(P)}
|
|
@@ -198,16 +198,16 @@ data: ${JSON.stringify(G)}
|
|
|
198
198
|
`)),!a&&V&&(a=!0)}$.length>0&&($.forEach(P=>{d++,f++;let Y={choices:[{delta:{role:"assistant",tool_calls:[{...P,index:f}]},finish_reason:S.finishReason?.toLowerCase()||null,index:d,logprobs:null}],created:parseInt(new Date().getTime()/1e3+"",10),id:C.responseId||"",model:C.modelVersion||"",object:"chat.completion.chunk",system_fingerprint:"fp_a49d71b8a1",usage:{completion_tokens:C.usageMetadata?.candidatesTokenCount||0,prompt_tokens:C.usageMetadata?.promptTokenCount||0,prompt_tokens_details:{cached_tokens:C.usageMetadata?.cachedContentTokenCount||0},total_tokens:C.usageMetadata?.totalTokenCount||0,output_tokens_details:{reasoning_tokens:C.usageMetadata?.thoughtsTokenCount||0}}};S?.groundingMetadata?.groundingChunks?.length&&(Y.choices[0].delta.annotations=S.groundingMetadata.groundingChunks.map((z,K)=>{let Q=S?.groundingMetadata?.groundingSupports?.filter(ee=>ee.groundingChunkIndices?.includes(K));return{type:"url_citation",url_citation:{url:z?.web?.uri||"",title:z?.web?.title||"",content:Q?.[0]?.segment?.text||"",start_index:Q?.[0]?.segment?.startIndex||0,end_index:Q?.[0]?.segment?.endIndex||0}}})),_.enqueue(o.encode(`data: ${JSON.stringify(Y)}
|
|
199
199
|
|
|
200
200
|
`))}),!a&&V&&(a=!0))}catch(C){n?.error(`Error parsing ${e} stream chunk`,A,C.message)}}}},w=t.body.getReader(),y="";try{for(;;){let{done:g,value:_}=await w.read();if(g){y&&await b(y,m);break}y+=r.decode(_,{stream:!0});let A=y.split(`
|
|
201
|
-
`);y=A.pop()||"";for(let C of A)await b(C,m)}}catch(g){m.error(g)}finally{m.close()}}});return new Response(p,{status:t.status,statusText:t.statusText,headers:t.headers})}}var
|
|
201
|
+
`);y=A.pop()||"";for(let C of A)await b(C,m)}}catch(g){m.error(g)}finally{m.close()}}});return new Response(p,{status:t.status,statusText:t.statusText,headers:t.headers})}}var Li=class{name="gemini";endPoint="/v1beta/models/:modelAndAction";async transformRequestIn(e,n){return{body:Ni(e),config:{url:new URL(`./${e.model}:${e.stream?"streamGenerateContent?alt=sse":"generateContent"}`,n.baseUrl),headers:{"x-goog-api-key":n.apiKey,Authorization:void 0}}}}transformRequestOut=Bi;async transformResponseOut(e){return Mi(e,this.name,this.logger)}};async function $v(){try{let{GoogleAuth:t}=await Promise.resolve().then(()=>xe(Yd(),1));return(await(await new t({scopes:["https://www.googleapis.com/auth/cloud-platform"]}).getClient()).getAccessToken()).token||""}catch(t){throw console.error("Error getting access token:",t),new Error(`Failed to get access token for Vertex AI. Please ensure you have set up authentication using one of these methods:
|
|
202
202
|
1. Set GOOGLE_APPLICATION_CREDENTIALS to point to service account key file
|
|
203
203
|
2. Run "gcloud auth application-default login"
|
|
204
|
-
3. Use Google Cloud environment with default service account`)}}var
|
|
204
|
+
3. Use Google Cloud environment with default service account`)}}var tu=class{name="vertex-gemini";async transformRequestIn(e,n){let r=process.env.GOOGLE_CLOUD_PROJECT,o=process.env.GOOGLE_CLOUD_LOCATION||"us-central1";if(!r&&process.env.GOOGLE_APPLICATION_CREDENTIALS)try{let u=(await import("fs")).readFileSync(process.env.GOOGLE_APPLICATION_CREDENTIALS,"utf8"),l=JSON.parse(u);l&&l.project_id&&(r=l.project_id)}catch(a){console.error("Error extracting project_id from GOOGLE_APPLICATION_CREDENTIALS:",a)}if(!r)throw new Error("Project ID is required for Vertex AI. Set GOOGLE_CLOUD_PROJECT environment variable or ensure project_id is in GOOGLE_APPLICATION_CREDENTIALS file.");let s=await $v();return{body:Ni(e),config:{url:new URL(`./v1beta1/projects/${r}/locations/${o}/publishers/google/models/${e.model}:${e.stream?"streamGenerateContent":"generateContent"}`,n.baseUrl.endsWith("/")?n.baseUrl:n.baseUrl+"/"||`https://${o}-aiplatform.googleapis.com`),headers:{Authorization:`Bearer ${s}`,"x-goog-api-key":void 0}}}}async transformRequestOut(e){return Bi(e)}async transformResponseOut(e){return Mi(e,this.name)}};var nu=class{name="deepseek";async transformRequestIn(e){e.max_tokens&&e.max_tokens>8192&&(e.max_tokens=8192);let n=e.model?.includes("reasoner")||e.model?.includes("v4")||e.model?.includes("pro")||e.model?.includes("think"),r=e.thinking||e.reasoning?.enabled||e.messages.some(o=>o.thinking?.content)||n;return r&&e.tool_choice&&delete e.tool_choice,e.messages.forEach(o=>{if(o.role==="assistant"){let s=o.thinking?.content,a=o.thinking?.signature,u="";if(typeof o.content=="string"){let d=/<thinking>([\s\S]*?)<\/thinking>/g.exec(o.content);d&&(u=d[1].trim(),o.content=o.content.replace(d[0],"").trim())}s&&typeof s=="string"&&s.trim()?(o.reasoning_content=s,a&&(o.reasoning_content_signature=a)):u&&(o.reasoning_content=u),r&&!o.reasoning_content&&(o.reasoning_content=" "),o.thinking&&delete o.thinking}}),e}async transformResponseOut(e){if(e.headers.get("Content-Type")?.includes("application/json")){let n=await e.json();return new Response(JSON.stringify(n),{status:e.status,statusText:e.statusText,headers:e.headers})}else if(e.headers.get("Content-Type")?.includes("stream")){if(!e.body)return e;let n=new TextDecoder,r=new TextEncoder,o="",s=!1,a="",u=new ReadableStream({async start(l){let d=e.body.getReader(),f=(m,b,w)=>{let y=m.split(`
|
|
205
205
|
`);for(let g of y)g.trim()&&b.enqueue(w.encode(g+`
|
|
206
206
|
`))},p=(m,b)=>{let{controller:w,encoder:y}=b;if(m.startsWith("data: ")&&m.trim()!=="data: [DONE]")try{let g=JSON.parse(m.slice(6));if(g.choices?.[0]?.delta?.reasoning_content){b.appendReasoningContent(g.choices[0].delta.reasoning_content);let _={...g,choices:[{...g.choices[0],delta:{...g.choices[0].delta,thinking:{content:g.choices[0].delta.reasoning_content}}}]};delete _.choices[0].delta.reasoning_content;let A=`data: ${JSON.stringify(_)}
|
|
207
207
|
|
|
208
208
|
`;w.enqueue(y.encode(A));return}if(g.choices?.[0]?.delta?.content&&b.reasoningContent()&&!b.isReasoningComplete()){b.setReasoningComplete(!0);let _="ccr_think_signature",A=g.choices[0].delta.content,C={...g,choices:[{...g.choices[0],delta:{...g.choices[0].delta,content:null,thinking:{content:b.reasoningContent(),signature:_}}}]};delete C.choices[0].delta.reasoning_content;let S=`data: ${JSON.stringify(C)}
|
|
209
209
|
|
|
210
|
-
`;w.enqueue(y.encode(S));let
|
|
210
|
+
`;w.enqueue(y.encode(S));let T={...g,choices:[{...g.choices[0],delta:{...g.choices[0].delta,content:A}}]};delete T.choices[0].delta.reasoning_content;let R=`data: ${JSON.stringify(T)}
|
|
211
211
|
|
|
212
212
|
`;w.enqueue(y.encode(R));return}if(g.choices[0]?.delta?.reasoning_content&&delete g.choices[0].delta.reasoning_content,g.choices?.[0]?.delta&&Object.keys(g.choices[0].delta).length>0){let _=`data: ${JSON.stringify(g)}
|
|
213
213
|
|
|
@@ -215,13 +215,13 @@ data: ${JSON.stringify(G)}
|
|
|
215
215
|
`))}else w.enqueue(y.encode(m+`
|
|
216
216
|
`))};try{for(;;){let{done:m,value:b}=await d.read();if(m){a.trim()&&f(a,l,r);break}let w=n.decode(b,{stream:!0});a+=w;let y=a.split(`
|
|
217
217
|
`);a=y.pop()||"";for(let g of y)if(g.trim())try{p(g,{controller:l,encoder:r,reasoningContent:()=>o,appendReasoningContent:_=>o+=_,isReasoningComplete:()=>s,setReasoningComplete:_=>s=_})}catch(_){console.error("Error processing line:",g,_),l.enqueue(r.encode(g+`
|
|
218
|
-
`))}}}catch(m){console.error("Stream error:",m),l.error(m)}finally{try{d.releaseLock()}catch(m){console.error("Error releasing reader lock:",m)}l.close()}}});return new Response(u,{status:e.status,statusText:e.statusText,headers:{"Content-Type":e.headers.get("Content-Type")||"text/plain","Cache-Control":"no-cache",Connection:"keep-alive"}})}return e}};var
|
|
218
|
+
`))}}}catch(m){console.error("Stream error:",m),l.error(m)}finally{try{d.releaseLock()}catch(m){console.error("Error releasing reader lock:",m)}l.close()}}});return new Response(u,{status:e.status,statusText:e.statusText,headers:{"Content-Type":e.headers.get("Content-Type")||"text/plain","Cache-Control":"no-cache",Connection:"keep-alive"}})}return e}};var ru=class{name="tooluse";transformRequestIn(e){return e.messages.push({role:"system",content:"<system-reminder>Tool mode is active. The user expects you to proactively execute the most suitable tool to help complete the task. \nBefore invoking a tool, you must carefully evaluate whether it matches the current task. If no available tool is appropriate for the task, you MUST call the `ExitTool` to exit tool mode \u2014 this is the only valid way to terminate tool mode.\nAlways prioritize completing the user's task effectively and efficiently by using tools whenever appropriate.</system-reminder>"}),e.tools?.length&&(e.tool_choice="required",e.tools.push({type:"function",function:{name:"ExitTool",description:`Use this tool when you are in tool mode and have completed the task. This is the only valid way to exit tool mode.
|
|
219
219
|
IMPORTANT: Before using this tool, ensure that none of the available tools are applicable to the current task. You must evaluate all available options \u2014 only if no suitable tool can help you complete the task should you use ExitTool to terminate tool mode.
|
|
220
220
|
Examples:
|
|
221
221
|
1. Task: "Use a tool to summarize this document" \u2014 Do not use ExitTool if a summarization tool is available.
|
|
222
222
|
2. Task: "What\u2019s the weather today?" \u2014 If no tool is available to answer, use ExitTool after reasoning that none can fulfill the task.`,parameters:{type:"object",properties:{response:{type:"string",description:"Your response will be forwarded to the user exactly as returned \u2014 the tool will not modify or post-process it in any way."}},required:["response"]}}})),e}async transformResponseOut(e){if(e.headers.get("Content-Type")?.includes("application/json")){let n=await e.json();if(n?.choices?.[0]?.message.tool_calls?.length&&n?.choices?.[0]?.message.tool_calls[0]?.function?.name==="ExitTool"){let r=n?.choices[0]?.message.tool_calls[0],o=JSON.parse(r.function.arguments||"{}");n.choices[0].message.content=o.response||"",delete n.choices[0].message.tool_calls}return new Response(JSON.stringify(n),{status:e.status,statusText:e.statusText,headers:e.headers})}else if(e.headers.get("Content-Type")?.includes("stream")){if(!e.body)return e;let n=new TextDecoder,r=new TextEncoder,o=-1,s="",a="",u=new ReadableStream({async start(l){let d=e.body.getReader(),f=(m,b,w)=>{let y=m.split(`
|
|
223
223
|
`);for(let g of y)g.trim()&&b.enqueue(w.encode(g+`
|
|
224
|
-
`))},p=(m,b)=>{let{controller:w,encoder:y,exitToolIndex:g,setExitToolIndex:_,appendExitToolResponse:A}=b;if(m.startsWith("data: ")&&m.trim()!=="data: [DONE]")try{let C=JSON.parse(m.slice(6));if(C.choices[0]?.delta?.tool_calls?.length){let S=C.choices[0].delta.tool_calls[0];if(S.function?.name==="ExitTool"){_(S.index);return}else if(g()>-1&&S.index===g()&&S.function.arguments){A(S.function.arguments);try{let
|
|
224
|
+
`))},p=(m,b)=>{let{controller:w,encoder:y,exitToolIndex:g,setExitToolIndex:_,appendExitToolResponse:A}=b;if(m.startsWith("data: ")&&m.trim()!=="data: [DONE]")try{let C=JSON.parse(m.slice(6));if(C.choices[0]?.delta?.tool_calls?.length){let S=C.choices[0].delta.tool_calls[0];if(S.function?.name==="ExitTool"){_(S.index);return}else if(g()>-1&&S.index===g()&&S.function.arguments){A(S.function.arguments);try{let T=JSON.parse(b.exitToolResponse());C.choices=[{delta:{role:"assistant",content:T.response||""}}];let R=`data: ${JSON.stringify(C)}
|
|
225
225
|
|
|
226
226
|
`;w.enqueue(y.encode(R))}catch{}return}}if(C.choices?.[0]?.delta&&Object.keys(C.choices[0].delta).length>0){let S=`data: ${JSON.stringify(C)}
|
|
227
227
|
|
|
@@ -229,7 +229,7 @@ Examples:
|
|
|
229
229
|
`))}else w.enqueue(y.encode(m+`
|
|
230
230
|
`))};try{for(;;){let{done:m,value:b}=await d.read();if(m){a.trim()&&f(a,l,r);break}let w=n.decode(b,{stream:!0});a+=w;let y=a.split(`
|
|
231
231
|
`);a=y.pop()||"";for(let g of y)if(g.trim())try{p(g,{controller:l,encoder:r,exitToolIndex:()=>o,setExitToolIndex:_=>o=_,exitToolResponse:()=>s,appendExitToolResponse:_=>s+=_})}catch(_){console.error("Error processing line:",g,_),l.enqueue(r.encode(g+`
|
|
232
|
-
`))}}}catch(m){console.error("Stream error:",m),l.error(m)}finally{try{d.releaseLock()}catch(m){console.error("Error releasing reader lock:",m)}l.close()}}});return new Response(u,{status:e.status,statusText:e.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}return e}};var
|
|
232
|
+
`))}}}catch(m){console.error("Stream error:",m),l.error(m)}finally{try{d.releaseLock()}catch(m){console.error("Error releasing reader lock:",m)}l.close()}}});return new Response(u,{status:e.status,statusText:e.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}return e}};var ou=class{constructor(e){this.options=e}static TransformerName="openrouter";async transformRequestIn(e){return e.model.includes("claude")?e.messages.forEach(n=>{Array.isArray(n.content)&&n.content.forEach(r=>{r.type==="image_url"&&(r.image_url.url.startsWith("http")||(r.image_url.url=`data:${r.media_type};base64,${r.image_url.url}`),delete r.media_type)})}):e.messages.forEach(n=>{Array.isArray(n.content)?n.content.forEach(r=>{r.cache_control&&delete r.cache_control,r.type==="image_url"&&(r.image_url.url.startsWith("http")||(r.image_url.url=`${r.image_url.url}`),delete r.media_type)}):n.cache_control&&delete n.cache_control}),Object.assign(e,this.options||{}),e}async transformResponseOut(e){if(e.headers.get("Content-Type")?.includes("application/json")){let n=await e.json();return new Response(JSON.stringify(n),{status:e.status,statusText:e.statusText,headers:e.headers})}else if(e.headers.get("Content-Type")?.includes("stream")){if(!e.body)return e;let n=new TextDecoder,r=new TextEncoder,o=!1,s="",a=!1,u=!1,l="",d=new ReadableStream({async start(f){let p=e.body.getReader(),m=(w,y,g)=>{let _=w.split(`
|
|
233
233
|
`);for(let A of _)A.trim()&&y.enqueue(g.encode(A+`
|
|
234
234
|
`))},b=(w,y)=>{let{controller:g,encoder:_}=y;if(w.startsWith("data: ")&&w.trim()!=="data: [DONE]"){let A=w.slice(6);try{let C=JSON.parse(A);if(C.usage&&(this.logger?.debug({usage:C.usage,hasToolCall:u},"usage"),C.choices[0].finish_reason=u?"tool_calls":"stop"),C.choices?.[0]?.finish_reason==="error"){g.enqueue(_.encode(`data: ${JSON.stringify({error:C.choices?.[0].error})}
|
|
235
235
|
|
|
@@ -239,7 +239,7 @@ Examples:
|
|
|
239
239
|
|
|
240
240
|
`;g.enqueue(_.encode(K));let Q={...C,choices:[{...C.choices?.[0],delta:{...C.choices[0].delta,content:Y}}]};Q.choices?.[0]?.delta&&(delete Q.choices[0].delta.reasoning,delete Q.choices[0].delta.reasoning_content);let ee=`data: ${JSON.stringify(Q)}
|
|
241
241
|
|
|
242
|
-
`;g.enqueue(_.encode(ee));return}C.choices?.[0]?.delta?.reasoning&&delete C.choices[0].delta.reasoning,C.choices?.[0]?.delta?.reasoning_content&&delete C.choices[0].delta.reasoning_content,C.choices?.[0]?.delta?.tool_calls?.length&&!Number.isNaN(parseInt(C.choices?.[0]?.delta?.tool_calls[0].id,10))&&C.choices?.[0]?.delta?.tool_calls.forEach(P=>{P.id=`call_${qt()}`}),C.choices?.[0]?.delta?.tool_calls?.length&&!u&&(u=!0);let
|
|
242
|
+
`;g.enqueue(_.encode(ee));return}C.choices?.[0]?.delta?.reasoning&&delete C.choices[0].delta.reasoning,C.choices?.[0]?.delta?.reasoning_content&&delete C.choices[0].delta.reasoning_content,C.choices?.[0]?.delta?.tool_calls?.length&&!Number.isNaN(parseInt(C.choices?.[0]?.delta?.tool_calls[0].id,10))&&C.choices?.[0]?.delta?.tool_calls.forEach(P=>{P.id=`call_${qt()}`}),C.choices?.[0]?.delta?.tool_calls?.length&&!u&&(u=!0);let T=C.choices?.[0]?.delta,R=T&&Object.keys(T).length>0,$=C.choices?.[0]?.finish_reason,V=C.usage;if(R||$||V){let P=`data: ${JSON.stringify(C)}
|
|
243
243
|
|
|
244
244
|
`;g.enqueue(_.encode(P))}}catch{g.enqueue(_.encode(w+`
|
|
245
245
|
`))}}else g.enqueue(_.encode(w+`
|
|
@@ -247,7 +247,7 @@ Examples:
|
|
|
247
247
|
`);l=A.pop()||"";for(let C of A)if(C.trim())try{b(C,{controller:f,encoder:r,hasTextContent:()=>o,setHasTextContent:S=>o=S,reasoningContent:()=>s,appendReasoningContent:S=>s+=S,isReasoningComplete:()=>a,setReasoningComplete:S=>a=S})}catch(S){console.error("Error processing line:",C,S),f.enqueue(r.encode(C+`
|
|
248
248
|
`))}continue}let _=l.split(`
|
|
249
249
|
`);l=_.pop()||"";for(let A of _)if(A.trim())try{b(A,{controller:f,encoder:r,hasTextContent:()=>o,setHasTextContent:C=>o=C,reasoningContent:()=>s,appendReasoningContent:C=>s+=C,isReasoningComplete:()=>a,setReasoningComplete:C=>a=C})}catch(C){console.error("Error processing line:",A,C),f.enqueue(r.encode(A+`
|
|
250
|
-
`))}}}catch(w){console.error("Stream error:",w),f.error(w)}finally{try{p.releaseLock()}catch(w){console.error("Error releasing reader lock:",w)}f.close()}}});return new Response(d,{status:e.status,statusText:e.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}return e}};var
|
|
250
|
+
`))}}}catch(w){console.error("Stream error:",w),f.error(w)}finally{try{p.releaseLock()}catch(w){console.error("Error releasing reader lock:",w)}f.close()}}});return new Response(d,{status:e.status,statusText:e.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}return e}};var su=class{constructor(e){this.options=e;this.max_tokens=this.options?.max_tokens}static TransformerName="maxtoken";max_tokens;async transformRequestIn(e){return e.max_tokens&&e.max_tokens>this.max_tokens&&(e.max_tokens=this.max_tokens),e}};var iu=class{name="groq";async transformRequestIn(e){return e.messages.forEach(n=>{Array.isArray(n.content)?n.content.forEach(r=>{r.cache_control&&delete r.cache_control}):n.cache_control&&delete n.cache_control}),Array.isArray(e.tools)&&e.tools.forEach(n=>{delete n.function.parameters.$schema}),e}async transformResponseOut(e){if(e.headers.get("Content-Type")?.includes("application/json")){let n=await e.json();return new Response(JSON.stringify(n),{status:e.status,statusText:e.statusText,headers:e.headers})}else if(e.headers.get("Content-Type")?.includes("stream")){if(!e.body)return e;let n=new TextDecoder,r=new TextEncoder,o=!1,s="",a=!1,u="",l=new ReadableStream({async start(d){let f=e.body.getReader(),p=(b,w,y)=>{let g=b.split(`
|
|
251
251
|
`);for(let _ of g)_.trim()&&w.enqueue(y.encode(_+`
|
|
252
252
|
`))},m=(b,w)=>{let{controller:y,encoder:g}=w;if(b.startsWith("data: ")&&b.trim()!=="data: [DONE]"){let _=b.slice(6);try{let A=JSON.parse(_);if(A.error)throw new Error(JSON.stringify(A));A.choices?.[0]?.delta?.content&&!w.hasTextContent()&&w.setHasTextContent(!0),A.choices?.[0]?.delta?.tool_calls?.length&&A.choices?.[0]?.delta?.tool_calls.forEach(S=>{S.id=`call_${qt()}`}),A.choices?.[0]?.delta?.tool_calls?.length&&w.hasTextContent()&&(typeof A.choices[0].index=="number"?A.choices[0].index+=1:A.choices[0].index=1);let C=`data: ${JSON.stringify(A)}
|
|
253
253
|
|
|
@@ -257,28 +257,28 @@ Examples:
|
|
|
257
257
|
`);u=_.pop()||"";for(let A of _)if(A.trim())try{m(A,{controller:d,encoder:r,hasTextContent:()=>o,setHasTextContent:C=>o=C,reasoningContent:()=>s,appendReasoningContent:C=>s+=C,isReasoningComplete:()=>a,setReasoningComplete:C=>a=C})}catch(C){console.error("Error processing line:",A,C),d.enqueue(r.encode(A+`
|
|
258
258
|
`))}continue}let g=u.split(`
|
|
259
259
|
`);u=g.pop()||"";for(let _ of g)if(_.trim())try{m(_,{controller:d,encoder:r,hasTextContent:()=>o,setHasTextContent:A=>o=A,reasoningContent:()=>s,appendReasoningContent:A=>s+=A,isReasoningComplete:()=>a,setReasoningComplete:A=>a=A})}catch(A){console.error("Error processing line:",_,A),d.enqueue(r.encode(_+`
|
|
260
|
-
`))}}}catch(b){console.error("Stream error:",b),d.error(b)}finally{try{f.releaseLock()}catch(b){console.error("Error releasing reader lock:",b)}d.close()}}});return new Response(l,{status:e.status,statusText:e.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}return e}};var
|
|
261
|
-
+`.includes(t)}function
|
|
262
|
-
+`.includes(t)}function
|
|
263
|
-
`||t==="\r"||t===" "||t==="\b"||t==="\f"}function er(t,e){let n=t.charCodeAt(e);return n===32||n===10||n===9||n===13}function Z0(t,e){let n=t.charCodeAt(e);return n===32||n===9||n===13}function e_(t,e){let n=t.charCodeAt(e);return n===160||n>=8192&&n<=8202||n===8239||n===8287||n===12288}function As(t){return
|
|
264
|
-
`,r:"\r",t:" "};function
|
|
265
|
-
`;)e++;return!0}return!1}function d(G){if(f(G)){if(
|
|
260
|
+
`))}}}catch(b){console.error("Stream error:",b),d.error(b)}finally{try{f.releaseLock()}catch(b){console.error("Error releasing reader lock:",b)}d.close()}}});return new Response(l,{status:e.status,statusText:e.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}return e}};var au=class{name="cleancache";async transformRequestIn(e){return Array.isArray(e.messages)&&e.messages.forEach(n=>{Array.isArray(n.content)?n.content.forEach(r=>{r.cache_control&&delete r.cache_control}):n.cache_control&&delete n.cache_control}),e}};var r_=xe(dc());var In=class extends Error{constructor(e,n){super(`${e} at position ${n}`),this.position=n}};function Y0(t){return/^[0-9A-Fa-f]$/.test(t)}function tr(t){return t>="0"&&t<="9"}function Q0(t){return t>=" "}function ks(t){return`,:[]/{}()
|
|
261
|
+
+`.includes(t)}function Qd(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"||t==="_"||t==="$"}function Xd(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"||t==="_"||t==="$"||t>="0"&&t<="9"}var Zd=/^(http|https|ftp|mailto|file|data|irc):\/\/$/,ef=/^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;function tf(t){return`,[]/{}
|
|
262
|
+
+`.includes(t)}function nf(t){return As(t)||qv.test(t)}var qv=/^[[{\w-]$/;function X0(t){return t===`
|
|
263
|
+
`||t==="\r"||t===" "||t==="\b"||t==="\f"}function er(t,e){let n=t.charCodeAt(e);return n===32||n===10||n===9||n===13}function Z0(t,e){let n=t.charCodeAt(e);return n===32||n===9||n===13}function e_(t,e){let n=t.charCodeAt(e);return n===160||n>=8192&&n<=8202||n===8239||n===8287||n===12288}function As(t){return rf(t)||uu(t)}function rf(t){return t==='"'||t==="\u201C"||t==="\u201D"}function of(t){return t==='"'}function uu(t){return t==="'"||t==="\u2018"||t==="\u2019"||t==="`"||t==="\xB4"}function sf(t){return t==="'"}function Do(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=t.lastIndexOf(e);return r!==-1?t.substring(0,r)+(n?"":t.substring(r+1)):t}function Nt(t,e){let n=t.length;if(!er(t,n-1))return t+e;for(;er(t,n-1);)n--;return t.substring(0,n)+e+t.substring(n)}function t_(t,e,n){return t.substring(0,e)+t.substring(e+n)}function n_(t){return/[,\n][ \t\r]*$/.test(t)}var zv={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"},Hv={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
|
|
264
|
+
`,r:"\r",t:" "};function af(t){let e=0,n="";d(["```","[```","{```"]),s()||ee(),d(["```","```]","```}"]);let o=p(",");for(o&&a(),nf(t[e])&&n_(n)?(o||(n=Nt(n,",")),_()):o&&(n=Do(n,","));t[e]==="}"||t[e]==="]";)e++,a();if(e>=t.length)return n;Q();function s(){a();let G=y()||g()||A()||S()||T()||$(!1)||V();return a(),G}function a(){let G=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,Z=e,se=u(G);do se=l(),se&&(se=u(G));while(se);return e>Z}function u(G){let Z=G?er:Z0,se="";for(;;)if(Z(t,e))se+=t[e],e++;else if(e_(t,e))se+=" ",e++;else break;return se.length>0?(n+=se,!0):!1}function l(){if(t[e]==="/"&&t[e+1]==="*"){for(;e<t.length&&!Wv(t,e);)e++;return e+=2,!0}if(t[e]==="/"&&t[e+1]==="/"){for(;e<t.length&&t[e]!==`
|
|
265
|
+
`;)e++;return!0}return!1}function d(G){if(f(G)){if(Qd(t[e]))for(;e<t.length&&Xd(t[e]);)e++;return a(),!0}return!1}function f(G){u(!0);for(let Z of G){let se=e+Z.length;if(t.slice(e,se)===Z)return e=se,!0}return!1}function p(G){return t[e]===G?(n+=t[e],e++,!0):!1}function m(G){return t[e]===G?(e++,!0):!1}function b(){return m("\\")}function w(){return a(),t[e]==="."&&t[e+1]==="."&&t[e+2]==="."?(e+=3,a(),m(","),!0):!1}function y(){if(t[e]==="{"){n+="{",e++,a(),m(",")&&a();let G=!0;for(;e<t.length&&t[e]!=="}";){let Z;if(G?(Z=!0,G=!1):(Z=p(","),Z||(n=Nt(n,",")),a()),w(),!(A()||$(!0))){t[e]==="}"||t[e]==="{"||t[e]==="]"||t[e]==="["||t[e]===void 0?n=Do(n,","):ie();break}a();let Ue=p(":"),ke=e>=t.length;Ue||(nf(t[e])||ke?n=Nt(n,":"):oe()),s()||(Ue||ke?n+="null":oe())}return t[e]==="}"?(n+="}",e++):n=Nt(n,"}"),!0}return!1}function g(){if(t[e]==="["){n+="[",e++,a(),m(",")&&a();let G=!0;for(;e<t.length&&t[e]!=="]";)if(G?G=!1:p(",")||(n=Nt(n,",")),w(),!s()){n=Do(n,",");break}return t[e]==="]"?(n+="]",e++):n=Nt(n,"]"),!0}return!1}function _(){let G=!0,Z=!0;for(;Z;)G?G=!1:p(",")||(n=Nt(n,",")),Z=s();Z||(n=Do(n,",")),n=`[
|
|
266
266
|
${n}
|
|
267
|
-
]`}function A(){let G=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,Z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,se=t[e]==="\\";if(se&&(e++,se=!0),As(t[e])){let Ue=
|
|
267
|
+
]`}function A(){let G=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,Z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,se=t[e]==="\\";if(se&&(e++,se=!0),As(t[e])){let Ue=of(t[e])?of:sf(t[e])?sf:uu(t[e])?uu:rf,ke=e,J=n.length,ue='"';for(e++;;){if(e>=t.length){let te=P(e-1);return!G&&ks(t.charAt(te))?(e=ke,n=n.substring(0,J),A(!0)):(ue=Nt(ue,'"'),n+=ue,!0)}if(e===Z)return ue=Nt(ue,'"'),n+=ue,!0;if(Ue(t[e])){let te=e,ve=ue.length;if(ue+='"',e++,n+=ue,a(!1),G||e>=t.length||ks(t[e])||As(t[e])||tr(t[e]))return C(),!0;let Oe=P(te-1),je=t.charAt(Oe);if(je===",")return e=ke,n=n.substring(0,J),A(!1,Oe);if(ks(je))return e=ke,n=n.substring(0,J),A(!0);n=n.substring(0,J),e=te+1,ue=`${ue.substring(0,ve)}\\${ue.substring(ve)}`}else if(G&&tf(t[e])){if(t[e-1]===":"&&Zd.test(t.substring(ke+1,e+2)))for(;e<t.length&&ef.test(t[e]);)ue+=t[e],e++;return ue=Nt(ue,'"'),n+=ue,C(),!0}else if(t[e]==="\\"){let te=t.charAt(e+1);if(Hv[te]!==void 0)ue+=t.slice(e,e+2),e+=2;else if(te==="u"){let Oe=2;for(;Oe<6&&Y0(t[e+Oe]);)Oe++;Oe===6?(ue+=t.slice(e,e+6),e+=6):e+Oe>=t.length?e=t.length:pe()}else ue+=te,e+=2}else{let te=t.charAt(e);te==='"'&&t[e-1]!=="\\"?(ue+=`\\${te}`,e++):X0(te)?(ue+=zv[te],e++):(Q0(te)||K(te),ue+=te,e++)}se&&b()}}return!1}function C(){let G=!1;for(a();t[e]==="+";){G=!0,e++,a(),n=Do(n,'"',!0);let Z=n.length;A()?n=t_(n,Z,1):n=Nt(n,'"')}return G}function S(){let G=e;if(t[e]==="-"){if(e++,Y())return z(G),!0;if(!tr(t[e]))return e=G,!1}for(;tr(t[e]);)e++;if(t[e]==="."){if(e++,Y())return z(G),!0;if(!tr(t[e]))return e=G,!1;for(;tr(t[e]);)e++}if(t[e]==="e"||t[e]==="E"){if(e++,(t[e]==="-"||t[e]==="+")&&e++,Y())return z(G),!0;if(!tr(t[e]))return e=G,!1;for(;tr(t[e]);)e++}if(!Y())return e=G,!1;if(e>G){let Z=t.slice(G,e),se=/^0\d/.test(Z);return n+=se?`"${Z}"`:Z,!0}return!1}function T(){return R("true","true")||R("false","false")||R("null","null")||R("True","true")||R("False","false")||R("None","null")}function R(G,Z){return t.slice(e,e+G.length)===G?(n+=Z,e+=G.length,!0):!1}function $(G){let Z=e;if(Qd(t[e])){for(;e<t.length&&Xd(t[e]);)e++;let se=e;for(;er(t,se);)se++;if(t[se]==="(")return e=se+1,s(),t[e]===")"&&(e++,t[e]===";"&&e++),!0}for(;e<t.length&&!tf(t[e])&&!As(t[e])&&(!G||t[e]!==":");)e++;if(t[e-1]===":"&&Zd.test(t.substring(Z,e+2)))for(;e<t.length&&ef.test(t[e]);)e++;if(e>Z){for(;er(t,e-1)&&e>0;)e--;let se=t.slice(Z,e);return n+=se==="undefined"?"null":JSON.stringify(se),t[e]==='"'&&e++,!0}}function V(){if(t[e]==="/"){let G=e;for(e++;e<t.length&&(t[e]!=="/"||t[e-1]==="\\");)e++;return e++,n+=`"${t.substring(G,e)}"`,!0}}function P(G){let Z=G;for(;Z>0&&er(t,Z);)Z--;return Z}function Y(){return e>=t.length||ks(t[e])||er(t,e)}function z(G){n+=`${t.slice(G,e)}0`}function K(G){throw new In(`Invalid character ${JSON.stringify(G)}`,e)}function Q(){throw new In(`Unexpected character ${JSON.stringify(t[e])}`,e)}function ee(){throw new In("Unexpected end of json string",t.length)}function ie(){throw new In("Object key expected",e)}function oe(){throw new In("Colon expected",e)}function pe(){let G=t.slice(e,e+6);throw new In(`Invalid unicode character "${G}"`,e)}}function Wv(t,e){return t[e]==="*"&&t[e+1]==="/"}function uf(t,e){if(!t||t.trim()===""||t==="{}")return"{}";try{return JSON.parse(t),e?.debug("\u5DE5\u5177\u8C03\u7528\u53C2\u6570\u6807\u51C6JSON\u89E3\u6790\u6210\u529F / Tool arguments standard JSON parsing successful"),t}catch(n){try{let r=r_.default.parse(t);return e?.debug("Tool arguments JSON5 parsing successful"),JSON.stringify(r)}catch(r){try{let o=af(t);return e?.debug("Tool arguments safely repaired"),o}catch(o){return e?.error(`JSON parsing failed: ${n.message}. JSON5 parsing failed: ${r.message}. JSON repair failed: ${o.message}. Input data: ${JSON.stringify(t)}`),e?.debug("Returning safe empty object as fallback"),"{}"}}}}var cu=class{name="enhancetool";async transformResponseOut(e){if(e.headers.get("Content-Type")?.includes("application/json")){let n=await e.json();if(n?.choices?.[0]?.message?.tool_calls?.length)for(let r of n.choices[0].message.tool_calls)r.function?.arguments&&(r.function.arguments=uf(r.function.arguments,this.logger));return new Response(JSON.stringify(n),{status:e.status,statusText:e.statusText,headers:e.headers})}else if(e.headers.get("Content-Type")?.includes("stream")){if(!e.body)return e;let n=new TextDecoder,r=new TextEncoder,o={},s=!1,a="",u=!1,l=!1,d="",f=new ReadableStream({async start(p){let m=e.body.getReader(),b=(g,_,A)=>{let C=g.split(`
|
|
268
268
|
`);for(let S of C)S.trim()&&_.enqueue(A.encode(S+`
|
|
269
|
-
`))},w=(g,_,A)=>{let C="";try{C=
|
|
269
|
+
`))},w=(g,_,A)=>{let C="";try{C=uf(o.arguments||"",this.logger)}catch($){console.error(`${$.message} ${$.stack} \u5DE5\u5177\u8C03\u7528\u53C2\u6570\u89E3\u6790\u5931\u8D25: ${JSON.stringify(o)}`),C=o.arguments||""}let S={role:"assistant",tool_calls:[{function:{name:o.name,arguments:C},id:o.id,index:o.index,type:"function"}]},T={...g,choices:[{...g.choices[0],delta:S}]};T.choices[0].delta.content!==void 0&&delete T.choices[0].delta.content;let R=`data: ${JSON.stringify(T)}
|
|
270
270
|
|
|
271
|
-
`;_.enqueue(A.encode(R))},y=(g,_)=>{let{controller:A,encoder:C}=_;if(g.startsWith("data: ")&&g.trim()!=="data: [DONE]"){let S=g.slice(6);try{let
|
|
271
|
+
`;_.enqueue(A.encode(R))},y=(g,_)=>{let{controller:A,encoder:C}=_;if(g.startsWith("data: ")&&g.trim()!=="data: [DONE]"){let S=g.slice(6);try{let T=JSON.parse(S);if(T.choices?.[0]?.delta?.tool_calls?.length){let $=T.choices[0].delta.tool_calls[0];if(typeof o.index>"u"){o={index:$.index,name:$.function?.name||"",id:$.id||"",arguments:$.function?.arguments||""},$.function?.arguments&&($.function.arguments="");let V=`data: ${JSON.stringify(T)}
|
|
272
272
|
|
|
273
|
-
`;A.enqueue(C.encode(V));return}else if(o.index===$.index){$.function?.arguments&&(o.arguments+=$.function.arguments);return}else{w(
|
|
273
|
+
`;A.enqueue(C.encode(V));return}else if(o.index===$.index){$.function?.arguments&&(o.arguments+=$.function.arguments);return}else{w(T,A,C),o={index:$.index,name:$.function?.name||"",id:$.id||"",arguments:$.function?.arguments||""};return}}if(T.choices?.[0]?.finish_reason==="tool_calls"&&o.index!==void 0){w(T,A,C),o={};return}T.choices?.[0]?.delta?.tool_calls?.length&&_.hasTextContent()&&(typeof T.choices[0].index=="number"?T.choices[0].index+=1:T.choices[0].index=1);let R=`data: ${JSON.stringify(T)}
|
|
274
274
|
|
|
275
275
|
`;A.enqueue(C.encode(R))}catch{A.enqueue(C.encode(g+`
|
|
276
276
|
`))}}else A.enqueue(C.encode(g+`
|
|
277
277
|
`))};try{for(;;){let{done:g,value:_}=await m.read();if(g){d.trim()&&b(d,p,r);break}if(!_||_.length===0)continue;let A;try{A=n.decode(_,{stream:!0})}catch(S){console.warn("Failed to decode chunk",S);continue}if(A.length===0)continue;if(d+=A,d.length>1e6){console.warn("Buffer size exceeds limit, processing partial data");let S=d.split(`
|
|
278
|
-
`);d=S.pop()||"";for(let
|
|
278
|
+
`);d=S.pop()||"";for(let T of S)if(T.trim())try{y(T,{controller:p,encoder:r,hasTextContent:()=>s,setHasTextContent:R=>s=R,reasoningContent:()=>a,appendReasoningContent:R=>a+=R,isReasoningComplete:()=>u,setReasoningComplete:R=>u=R})}catch(R){console.error("Error processing line:",T,R),p.enqueue(r.encode(T+`
|
|
279
279
|
`))}continue}let C=d.split(`
|
|
280
|
-
`);d=C.pop()||"";for(let S of C)if(S.trim())try{y(S,{controller:p,encoder:r,hasTextContent:()=>s,setHasTextContent:
|
|
281
|
-
`))}}}catch(g){console.error("Stream error:",g),p.error(g)}finally{try{m.releaseLock()}catch(g){console.error("Error releasing reader lock:",g)}p.close()}}});return new Response(f,{status:e.status,statusText:e.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}return e}};var
|
|
280
|
+
`);d=C.pop()||"";for(let S of C)if(S.trim())try{y(S,{controller:p,encoder:r,hasTextContent:()=>s,setHasTextContent:T=>s=T,reasoningContent:()=>a,appendReasoningContent:T=>a+=T,isReasoningComplete:()=>u,setReasoningComplete:T=>u=T})}catch(T){console.error("Error processing line:",S,T),p.enqueue(r.encode(S+`
|
|
281
|
+
`))}}}catch(g){console.error("Stream error:",g),p.error(g)}finally{try{m.releaseLock()}catch(g){console.error("Error releasing reader lock:",g)}p.close()}}});return new Response(f,{status:e.status,statusText:e.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}return e}};var lu=class{constructor(e){this.options=e;this.enable=this.options?.enable??!0}static TransformerName="reasoning";enable;async transformRequestIn(e){return this.enable?(e.reasoning&&(e.thinking={type:"enabled",budget_tokens:e.reasoning.max_tokens},e.enable_thinking=!0),e):(e.thinking={type:"disabled",budget_tokens:-1},e.enable_thinking=!1,e)}async transformResponseOut(e){if(!this.enable)return e;if(e.headers.get("Content-Type")?.includes("application/json")){let n=await e.json();return n.choices[0]?.message.reasoning_content&&(n.thinking={content:n.choices[0]?.message.reasoning_content}),new Response(JSON.stringify(n),{status:e.status,statusText:e.statusText,headers:e.headers})}else if(e.headers.get("Content-Type")?.includes("stream")){if(!e.body)return e;let n=new TextDecoder,r=new TextEncoder,o="",s=!1,a="",u=new ReadableStream({async start(l){let d=e.body.getReader(),f=(m,b,w)=>{let y=m.split(`
|
|
282
282
|
`);for(let g of y)g.trim()&&b.enqueue(w.encode(g+`
|
|
283
283
|
`))},p=(m,b)=>{let{controller:w,encoder:y}=b;if(this.logger?.debug({line:m},"Processing reason line"),m.startsWith("data: ")&&m.trim()!=="data: [DONE]")try{let g=JSON.parse(m.slice(6));if(console.log(JSON.stringify(g)),g.choices?.[0]?.delta?.reasoning_content){b.appendReasoningContent(g.choices[0].delta.reasoning_content);let _={...g,choices:[{...g.choices[0],delta:{...g.choices[0].delta,thinking:{content:g.choices[0].delta.reasoning_content}}}]};delete _.choices[0].delta.reasoning_content;let A=`data: ${JSON.stringify(_)}
|
|
284
284
|
|
|
@@ -290,7 +290,7 @@ ${n}
|
|
|
290
290
|
`))}else w.enqueue(y.encode(m+`
|
|
291
291
|
`))};try{for(;;){let{done:m,value:b}=await d.read();if(m){a.trim()&&f(a,l,r);break}let w=n.decode(b,{stream:!0});a+=w;let y=a.split(`
|
|
292
292
|
`);a=y.pop()||"";for(let g of y)if(g.trim())try{p(g,{controller:l,encoder:r,reasoningContent:()=>o,appendReasoningContent:_=>o+=_,isReasoningComplete:()=>s,setReasoningComplete:_=>s=_})}catch(_){console.error("Error processing line:",g,_),l.enqueue(r.encode(g+`
|
|
293
|
-
`))}}}catch(m){console.error("Stream error:",m),l.error(m)}finally{try{d.releaseLock()}catch(m){console.error("Error releasing reader lock:",m)}l.close()}}});return new Response(u,{status:e.status,statusText:e.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}return e}};var
|
|
293
|
+
`))}}}catch(m){console.error("Stream error:",m),l.error(m)}finally{try{d.releaseLock()}catch(m){console.error("Error releasing reader lock:",m)}l.close()}}});return new Response(u,{status:e.status,statusText:e.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}return e}};var du=class{constructor(e){this.options=e;this.max_tokens=this.options?.max_tokens,this.temperature=this.options?.temperature,this.top_p=this.options?.top_p,this.top_k=this.options?.top_k,this.repetition_penalty=this.options?.repetition_penalty}static TransformerName="sampling";max_tokens;temperature;top_p;top_k;repetition_penalty;async transformRequestIn(e){return e.max_tokens&&e.max_tokens>this.max_tokens&&(e.max_tokens=this.max_tokens),typeof this.temperature<"u"&&(e.temperature=this.temperature),typeof this.top_p<"u"&&(e.top_p=this.top_p),typeof this.top_k<"u"&&(e.top_k=this.top_k),typeof this.repetition_penalty<"u"&&(e.repetition_penalty=this.repetition_penalty),e}};var fu=class{static TransformerName="maxcompletiontokens";async transformRequestIn(e){return e.max_tokens&&(e.max_completion_tokens=e.max_tokens,delete e.max_tokens),e}};function o_(t){let e=[];for(let r=0;r<t.messages.length;r++){let o=t.messages[r],s=r===t.messages.length-1,a=o.role==="assistant",u=[];typeof o.content=="string"?u.push({type:"text",text:o.content}):Array.isArray(o.content)&&o.content.forEach(l=>{l.type==="text"?u.push({type:"text",text:l.text||""}):l.type==="image_url"&&u.push({type:"image",source:{type:"base64",media_type:l.media_type||"image/jpeg",data:l.image_url.url}})}),!(!s&&u.length===0&&!o.tool_calls&&!o.content)&&(s&&a&&u.length===0&&o.tool_calls&&u.push({type:"text",text:""}),e.push({role:o.role==="assistant"?"assistant":"user",content:u}))}let n={anthropic_version:"vertex-2023-10-16",messages:e,max_tokens:t.max_tokens||1e3,stream:t.stream||!1,...t.temperature&&{temperature:t.temperature}};return t.tools&&t.tools.length>0&&(n.tools=t.tools.map(r=>({name:r.function.name,description:r.function.description,input_schema:r.function.parameters}))),t.tool_choice&&(t.tool_choice==="auto"||t.tool_choice==="none"?n.tool_choice=t.tool_choice:typeof t.tool_choice=="string"&&(n.tool_choice={type:"tool",name:t.tool_choice})),n}function s_(t){let e=t,r={messages:e.messages.map(o=>{let s=o.content.map(a=>a.type==="text"?{type:"text",text:a.text||""}:a.type==="image"&&a.source?{type:"image_url",image_url:{url:a.source.data},media_type:a.source.media_type}:{type:"text",text:""});return{role:o.role,content:s}}),model:t.model||"claude-sonnet-4@20250514",max_tokens:e.max_tokens,temperature:e.temperature,stream:e.stream};return e.tools&&e.tools.length>0&&(r.tools=e.tools.map(o=>({type:"function",function:{name:o.name,description:o.description,parameters:{type:"object",properties:o.input_schema.properties,required:o.input_schema.required,additionalProperties:o.input_schema.additionalProperties,$schema:o.input_schema.$schema}}}))),e.tool_choice&&(typeof e.tool_choice=="string"?r.tool_choice=e.tool_choice:e.tool_choice.type==="tool"&&(r.tool_choice=e.tool_choice.name)),r}async function i_(t,e,n){if(t.headers.get("Content-Type")?.includes("application/json")){let r=await t.json(),o;r.tool_use&&r.tool_use.length>0&&(o=r.tool_use.map(a=>({id:a.id,type:"function",function:{name:a.name,arguments:JSON.stringify(a.input)}})));let s={id:r.id,choices:[{finish_reason:r.stop_reason||null,index:0,message:{content:r.content[0]?.text||"",role:"assistant",...o&&{tool_calls:o}}}],created:parseInt(new Date().getTime()/1e3+"",10),model:r.model,object:"chat.completion",usage:{completion_tokens:r.usage.output_tokens,prompt_tokens:r.usage.input_tokens,total_tokens:r.usage.input_tokens+r.usage.output_tokens}};return new Response(JSON.stringify(s),{status:t.status,statusText:t.statusText,headers:t.headers})}else if(t.headers.get("Content-Type")?.includes("stream")){if(!t.body)return t;let r=new TextDecoder,o=new TextEncoder,s=(u,l)=>{if(u.startsWith("data: ")){let d=u.slice(6).trim();if(d){n?.debug({chunkStr:d},`${e} chunk:`);try{let f=JSON.parse(d);if(f.type==="content_block_delta"&&f.delta?.type==="text_delta"){let p={choices:[{delta:{role:"assistant",content:f.delta.text||""},finish_reason:null,index:0,logprobs:null}],created:parseInt(new Date().getTime()/1e3+"",10),id:f.id||"",model:f.model||"",object:"chat.completion.chunk",system_fingerprint:"fp_a49d71b8a1",usage:{completion_tokens:f.usage?.output_tokens||0,prompt_tokens:f.usage?.input_tokens||0,total_tokens:(f.usage?.input_tokens||0)+(f.usage?.output_tokens||0)}};l.enqueue(o.encode(`data: ${JSON.stringify(p)}
|
|
294
294
|
|
|
295
295
|
`))}else if(f.type==="content_block_delta"&&f.delta?.type==="input_json_delta"){let p={choices:[{delta:{tool_calls:[{index:f.index||0,function:{arguments:f.delta.partial_json||""}}]},finish_reason:null,index:0,logprobs:null}],created:parseInt(new Date().getTime()/1e3+"",10),id:f.id||"",model:f.model||"",object:"chat.completion.chunk",system_fingerprint:"fp_a49d71b8a1",usage:{completion_tokens:f.usage?.output_tokens||0,prompt_tokens:f.usage?.input_tokens||0,total_tokens:(f.usage?.input_tokens||0)+(f.usage?.output_tokens||0)}};l.enqueue(o.encode(`data: ${JSON.stringify(p)}
|
|
296
296
|
|
|
@@ -303,18 +303,18 @@ ${n}
|
|
|
303
303
|
`));else{let p={choices:[{delta:{role:"assistant",content:f.content?.[0]?.text||""},finish_reason:f.stop_reason?.toLowerCase()||null,index:0,logprobs:null}],created:parseInt(new Date().getTime()/1e3+"",10),id:f.id||"",model:f.model||"",object:"chat.completion.chunk",system_fingerprint:"fp_a49d71b8a1",usage:{completion_tokens:f.usage?.output_tokens||0,prompt_tokens:f.usage?.input_tokens||0,total_tokens:(f.usage?.input_tokens||0)+(f.usage?.output_tokens||0)}};l.enqueue(o.encode(`data: ${JSON.stringify(p)}
|
|
304
304
|
|
|
305
305
|
`))}}catch(f){n?.error(`Error parsing ${e} stream chunk`,d,f.message)}}}},a=new ReadableStream({async start(u){let l=t.body.getReader(),d="";try{for(;;){let{done:f,value:p}=await l.read();if(f){d&&s(d,u);break}d+=r.decode(p,{stream:!0});let m=d.split(`
|
|
306
|
-
`);d=m.pop()||"";for(let b of m)s(b,u)}}catch(f){u.error(f)}finally{u.close()}}});return new Response(a,{status:t.status,statusText:t.statusText,headers:t.headers})}return t}async function
|
|
306
|
+
`);d=m.pop()||"";for(let b of m)s(b,u)}}catch(f){u.error(f)}finally{u.close()}}});return new Response(a,{status:t.status,statusText:t.statusText,headers:t.headers})}return t}async function Gv(){try{let{GoogleAuth:t}=await Promise.resolve().then(()=>xe(Yd(),1));return(await(await new t({scopes:["https://www.googleapis.com/auth/cloud-platform"]}).getClient()).getAccessToken()).token||""}catch(t){throw console.error("Error getting access token:",t),new Error(`Failed to get access token for Vertex AI. Please ensure you have set up authentication using one of these methods:
|
|
307
307
|
1. Set GOOGLE_APPLICATION_CREDENTIALS to point to service account key file
|
|
308
308
|
2. Run "gcloud auth application-default login"
|
|
309
|
-
3. Use Google Cloud environment with default service account`)}}var
|
|
309
|
+
3. Use Google Cloud environment with default service account`)}}var hu=class{name="vertex-claude";async transformRequestIn(e,n){let r=process.env.GOOGLE_CLOUD_PROJECT,o=process.env.GOOGLE_CLOUD_LOCATION||"us-east5";if(!r&&process.env.GOOGLE_APPLICATION_CREDENTIALS)try{let u=(await import("fs")).readFileSync(process.env.GOOGLE_APPLICATION_CREDENTIALS,"utf8"),l=JSON.parse(u);l&&l.project_id&&(r=l.project_id)}catch(a){console.error("Error extracting project_id from GOOGLE_APPLICATION_CREDENTIALS:",a)}if(!r)throw new Error("Project ID is required for Vertex AI. Set GOOGLE_CLOUD_PROJECT environment variable or ensure project_id is in GOOGLE_APPLICATION_CREDENTIALS file.");let s=await Gv();return{body:o_(e),config:{url:new URL(`/v1/projects/${r}/locations/${o}/publishers/anthropic/models/${e.model}:${e.stream?"streamRawPredict":"rawPredict"}`,`https://${o}-aiplatform.googleapis.com`).toString(),headers:{Authorization:`Bearer ${s}`,"Content-Type":"application/json"}}}}async transformRequestOut(e){return s_(e)}async transformResponseOut(e){return i_(e,this.name,this.logger)}};var pu=class{name="cerebras";async transformRequestIn(e,n){let r=JSON.parse(JSON.stringify(e));return r.reasoning?delete r.reasoning:r.disable_reasoning=!1,{body:r,config:{headers:{Authorization:`Bearer ${n.apiKey}`,"Content-Type":"application/json"}}}}async transformResponseOut(e){return e}};var mu=class{name="streamoptions";async transformRequestIn(e){return e.stream&&(e.stream_options={include_usage:!0}),e}};var gu=class{name="OpenAI";endPoint="/v1/chat/completions"};var yu=class{static TransformerName="customparams";options;constructor(e={}){this.options=e}async transformRequestIn(e){let n={...e},r=Object.entries(this.options);for(let[o,s]of r)if(o in n)if(typeof n[o]=="object"&&typeof s=="object"&&!Array.isArray(n[o])&&!Array.isArray(s)&&n[o]!==null&&s!==null)n[o]=this.deepMergeObjects(n[o],s);else continue;else n[o]=this.cloneValue(s);return n}async transformResponseOut(e){return e}deepMergeObjects(e,n){let r={...e};for(let[o,s]of Object.entries(n))o in r&&typeof r[o]=="object"&&typeof s=="object"&&!Array.isArray(r[o])&&!Array.isArray(s)&&r[o]!==null&&s!==null?r[o]=this.deepMergeObjects(r[o],s):r[o]=this.cloneValue(s);return r}cloneValue(e){if(e===null||typeof e!="object")return e;if(Array.isArray(e))return e.map(r=>this.cloneValue(r));let n={};for(let[r,o]of Object.entries(e))n[r]=this.cloneValue(o);return n}};var _u=class{constructor(e){this.options=e}static TransformerName="vercel";endPoint="/v1/chat/completions";async transformRequestIn(e){return e.model.includes("claude")?e.messages.forEach(n=>{Array.isArray(n.content)&&n.content.forEach(r=>{r.type==="image_url"&&(r.image_url.url.startsWith("http")||(r.image_url.url=`data:${r.media_type};base64,${r.image_url.url}`),delete r.media_type)})}):e.messages.forEach(n=>{Array.isArray(n.content)?n.content.forEach(r=>{r.cache_control&&delete r.cache_control,r.type==="image_url"&&(r.image_url.url.startsWith("http")||(r.image_url.url=`data:${r.media_type};base64,${r.image_url.url}`),delete r.media_type)}):n.cache_control&&delete n.cache_control}),Object.assign(e,this.options||{}),e}async transformResponseOut(e){if(e.headers.get("Content-Type")?.includes("application/json")){let n=await e.json();return new Response(JSON.stringify(n),{status:e.status,statusText:e.statusText,headers:e.headers})}else if(e.headers.get("Content-Type")?.includes("stream")){if(!e.body)return e;let n=new TextDecoder,r=new TextEncoder,o=!1,s="",a=!1,u=!1,l="",d=new ReadableStream({async start(f){let p=e.body.getReader(),m=(w,y,g)=>{let _=w.split(`
|
|
310
310
|
`);for(let A of _)A.trim()&&y.enqueue(g.encode(A+`
|
|
311
311
|
`))},b=(w,y)=>{let{controller:g,encoder:_}=y;if(w.startsWith("data: ")&&w.trim()!=="data: [DONE]"){let A=w.slice(6);try{let C=JSON.parse(A);if(C.usage&&(this.logger?.debug({usage:C.usage,hasToolCall:u},"usage"),C.choices[0].finish_reason=u?"tool_calls":"stop"),C.choices?.[0]?.finish_reason==="error"&&g.enqueue(_.encode(`data: ${JSON.stringify({error:C.choices?.[0].error})}
|
|
312
312
|
|
|
313
|
-
`)),C.choices?.[0]?.delta?.content&&!y.hasTextContent()&&y.setHasTextContent(!0),C.choices?.[0]?.delta?.reasoning){y.appendReasoningContent(C.choices[0].delta.reasoning);let
|
|
313
|
+
`)),C.choices?.[0]?.delta?.content&&!y.hasTextContent()&&y.setHasTextContent(!0),C.choices?.[0]?.delta?.reasoning){y.appendReasoningContent(C.choices[0].delta.reasoning);let T={...C,choices:[{...C.choices?.[0],delta:{...C.choices[0].delta,thinking:{content:C.choices[0].delta.reasoning}}}]};T.choices?.[0]?.delta&&delete T.choices[0].delta.reasoning;let R=`data: ${JSON.stringify(T)}
|
|
314
314
|
|
|
315
315
|
`;g.enqueue(_.encode(R));return}if(C.choices?.[0]?.delta?.content&&y.reasoningContent()&&!y.isReasoningComplete()){y.setReasoningComplete(!0);let R={...C,choices:[{...C.choices?.[0],delta:{...C.choices[0].delta,content:null,thinking:{content:y.reasoningContent(),signature:"ccr_think_signature"}}}]};R.choices?.[0]?.delta&&delete R.choices[0].delta.reasoning;let $=`data: ${JSON.stringify(R)}
|
|
316
316
|
|
|
317
|
-
`;g.enqueue(_.encode($))}C.choices?.[0]?.delta?.reasoning&&delete C.choices[0].delta.reasoning,C.choices?.[0]?.delta?.tool_calls?.length&&!Number.isNaN(parseInt(C.choices?.[0]?.delta?.tool_calls[0].id,10))&&C.choices?.[0]?.delta?.tool_calls.forEach(
|
|
317
|
+
`;g.enqueue(_.encode($))}C.choices?.[0]?.delta?.reasoning&&delete C.choices[0].delta.reasoning,C.choices?.[0]?.delta?.tool_calls?.length&&!Number.isNaN(parseInt(C.choices?.[0]?.delta?.tool_calls[0].id,10))&&C.choices?.[0]?.delta?.tool_calls.forEach(T=>{T.id=`call_${qt()}`}),C.choices?.[0]?.delta?.tool_calls?.length&&!u&&(u=!0),C.choices?.[0]?.delta?.tool_calls?.length&&y.hasTextContent()&&(typeof C.choices[0].index=="number"?C.choices[0].index+=1:C.choices[0].index=1);let S=`data: ${JSON.stringify(C)}
|
|
318
318
|
|
|
319
319
|
`;g.enqueue(_.encode(S))}catch{g.enqueue(_.encode(w+`
|
|
320
320
|
`))}}else g.enqueue(_.encode(w+`
|
|
@@ -322,22 +322,22 @@ ${n}
|
|
|
322
322
|
`);l=A.pop()||"";for(let C of A)if(C.trim())try{b(C,{controller:f,encoder:r,hasTextContent:()=>o,setHasTextContent:S=>o=S,reasoningContent:()=>s,appendReasoningContent:S=>s+=S,isReasoningComplete:()=>a,setReasoningComplete:S=>a=S})}catch(S){console.error("Error processing line:",C,S),f.enqueue(r.encode(C+`
|
|
323
323
|
`))}continue}let _=l.split(`
|
|
324
324
|
`);l=_.pop()||"";for(let A of _)if(A.trim())try{b(A,{controller:f,encoder:r,hasTextContent:()=>o,setHasTextContent:C=>o=C,reasoningContent:()=>s,appendReasoningContent:C=>s+=C,isReasoningComplete:()=>a,setReasoningComplete:C=>a=C})}catch(C){console.error("Error processing line:",A,C),f.enqueue(r.encode(A+`
|
|
325
|
-
`))}}}catch(w){console.error("Stream error:",w),f.error(w)}finally{try{p.releaseLock()}catch(w){console.error("Error releasing reader lock:",w)}f.close()}}});return new Response(d,{status:e.status,statusText:e.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}return e}};var
|
|
325
|
+
`))}}}catch(w){console.error("Stream error:",w),f.error(w)}finally{try{p.releaseLock()}catch(w){console.error("Error releasing reader lock:",w)}f.close()}}});return new Response(d,{status:e.status,statusText:e.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}return e}};var cf=`Always think before answering. Even if the problem seems simple, always write down your reasoning process explicitly.
|
|
326
326
|
|
|
327
327
|
Output format:
|
|
328
328
|
<reasoning_content>
|
|
329
329
|
Your detailed thinking process goes here
|
|
330
330
|
</reasoning_content>
|
|
331
|
-
Your final answer must follow after the closing tag above.`,
|
|
332
|
-
${o.content}`),delete o.thinking)});let r=e.messages[e.messages.length-1];return r.role==="user"&&(Array.isArray(r.content)?r.content.push({type:"text",text:
|
|
331
|
+
Your final answer must follow after the closing tag above.`,Jv=10,bu=class{name="forcereasoning";async transformRequestIn(e){let n=0;e.messages.filter(o=>o.role==="assistant").reverse().forEach(o=>{o.thinking&&(o.thinking.content&&(!o.content||n<Jv)&&(n++,o.content=`<reasoning_content>${o.thinking.content}</reasoning_content>
|
|
332
|
+
${o.content}`),delete o.thinking)});let r=e.messages[e.messages.length-1];return r.role==="user"&&(Array.isArray(r.content)?r.content.push({type:"text",text:cf}):r.content=[{type:"text",text:cf},{type:"text",text:r.content||""}]),r.role==="tool"&&e.messages.push({role:"user",content:[{type:"text",text:cf}]}),e}async transformResponseOut(e){let n="<reasoning_content>",r="</reasoning_content>";if(e.headers.get("Content-Type")?.includes("application/json")){let o=await e.json();if(o.choices[0]?.message.content){let s=/<reasoning_content>(.*?)<\/reasoning_content>/s,a=o.choices[0]?.message.content.match(s);a&&a[1]&&(o.thinking={content:a[1]})}return new Response(JSON.stringify(o),{status:e.status,statusText:e.statusText,headers:e.headers})}else if(e.headers.get("Content-Type")?.includes("stream")){if(!e.body)return e;let o=0,s=new TextDecoder,a=new TextEncoder,u=new ReadableStream({async start(l){let d=e.body.getReader(),f="",p="SEARCHING",m="",b="",w=(y,g)=>{if(typeof g!="string"){y.choices?.[0]?.delta&&Object.keys(y.choices[0].delta).length>0&&!y.choices[0].delta.content&&(y.choices[0].index=o,l.enqueue(a.encode(`data: ${JSON.stringify(y)}
|
|
333
333
|
|
|
334
334
|
`)));return}let _=m+g;for(m="";_.length>0;)if(p==="SEARCHING"){let A=_.indexOf(n);if(A!==-1)_=_.substring(A+n.length),p="REASONING";else{for(let C=n.length-1;C>0;C--)if(_.endsWith(n.substring(0,C))){m=_.substring(_.length-C);break}_=""}}else if(p==="REASONING"){let A=_.indexOf(r);if(A!==-1){let C=_.substring(0,A);if(C.length>0){let R={...y.choices[0].delta,thinking:{content:C}};delete R.content;let $={...y,choices:[{...y.choices[0],delta:R,index:o}]};l.enqueue(a.encode(`data: ${JSON.stringify($)}
|
|
335
335
|
|
|
336
|
-
`))}let S={...y.choices[0].delta,thinking:{signature:"ccr_think_signature"}};delete S.content;let
|
|
336
|
+
`))}let S={...y.choices[0].delta,thinking:{signature:"ccr_think_signature"}};delete S.content;let T={...y,choices:[{...y.choices[0],delta:S,index:o}]};l.enqueue(a.encode(`data: ${JSON.stringify(T)}
|
|
337
337
|
|
|
338
|
-
`)),o++,_=_.substring(A+r.length),p="FINAL"}else{let C=_;for(let S=r.length-1;S>0;S--)if(_.endsWith(r.substring(0,S))){m=_.substring(_.length-S),C=_.substring(0,_.length-S);break}if(C.length>0){let S={...y.choices[0].delta,thinking:{content:C}};delete S.content;let
|
|
338
|
+
`)),o++,_=_.substring(A+r.length),p="FINAL"}else{let C=_;for(let S=r.length-1;S>0;S--)if(_.endsWith(r.substring(0,S))){m=_.substring(_.length-S),C=_.substring(0,_.length-S);break}if(C.length>0){let S={...y.choices[0].delta,thinking:{content:C}};delete S.content;let T={...y,choices:[{...y.choices[0],delta:S,index:o}]};l.enqueue(a.encode(`data: ${JSON.stringify(T)}
|
|
339
339
|
|
|
340
|
-
`))}_=""}}else if(p==="FINAL"){if(_.length>0)if(/^\s*$/.test(_))b+=_;else{let C=b+_,S={...y.choices[0].delta,content:C};S.thinking&&delete S.thinking;let
|
|
340
|
+
`))}_=""}}else if(p==="FINAL"){if(_.length>0)if(/^\s*$/.test(_))b+=_;else{let C=b+_,S={...y.choices[0].delta,content:C};S.thinking&&delete S.thinking;let T={...y,choices:[{...y.choices[0],delta:S}]};l.enqueue(a.encode(`data: ${JSON.stringify(T)}
|
|
341
341
|
|
|
342
342
|
`)),b=""}o++,_=""}};try{for(;;){let{done:y,value:g}=await d.read();if(y)break;let _=s.decode(g,{stream:!0});f+=_;let A=f.split(`
|
|
343
343
|
`);f=A.pop()||"";for(let C of A)if(C.trim()){if(C.trim()==="data: [DONE]"){l.enqueue(a.encode(C+`
|
|
@@ -346,7 +346,7 @@ ${o.content}`),delete o.thinking)});let r=e.messages[e.messages.length-1];return
|
|
|
346
346
|
`))}else l.enqueue(a.encode(C+`
|
|
347
347
|
`))}}}catch(y){console.error("Stream error:",y),l.error(y)}finally{try{d.releaseLock()}catch(y){console.error("Error releasing reader lock:",y)}if(p==="REASONING"){let g={choices:[{delta:{thinking:{signature:"ccr_think_signature"}}}]};l.enqueue(a.encode(`data: ${JSON.stringify(g)}
|
|
348
348
|
|
|
349
|
-
`))}l.close()}}});return new Response(u,{status:e.status,statusText:e.statusText,headers:{"Content-Type":e.headers.get("Content-Type")||"text/plain","Cache-Control":"no-cache",Connection:"keep-alive"}})}return e}};var
|
|
349
|
+
`))}l.close()}}});return new Response(u,{status:e.status,statusText:e.statusText,headers:{"Content-Type":e.headers.get("Content-Type")||"text/plain","Cache-Control":"no-cache",Connection:"keep-alive"}})}return e}};var Cu=class{name="kimi";async transformRequestIn(e){return(e.thinking||e.reasoning?.enabled||e.messages.some(r=>r.thinking?.content))&&e.messages.forEach(r=>{if(r.role==="assistant"){let o=r.thinking?.content,s=r.thinking?.signature;o&&typeof o=="string"&&o.trim()&&(r.reasoning_content=o,s&&(r.reasoning_content_signature=s)),r.tool_calls&&r.tool_calls.length>0&&(r.reasoning_content||(r.reasoning_content="")),r.thinking&&delete r.thinking}}),e}async transformResponseOut(e){let n=e.headers.get("Content-Type");if(n?.includes("stream")){if(!e.body)return e;let r=new TextDecoder,o=new TextEncoder,s="",a="",u=new ReadableStream({async start(l){let d=e.body.getReader();try{for(;;){let{done:f,value:p}=await d.read();if(f){a.trim()&&l.enqueue(o.encode(a+`
|
|
350
350
|
`));break}let m=r.decode(p,{stream:!0});a+=m;let b=a.split(`
|
|
351
351
|
`);a=b.pop()||"";for(let w of b)if(w.trim())if(w.startsWith("data: ")&&w.trim()!=="data: [DONE]")try{let y=JSON.parse(w.slice(6));if(y.choices?.[0]?.delta?.reasoning_content){s+=y.choices[0].delta.reasoning_content;let g={...y,choices:[{...y.choices[0],delta:{thinking:{content:y.choices[0].delta.reasoning_content}}}]};delete g.choices[0].delta.reasoning_content,l.enqueue(o.encode(`data: ${JSON.stringify(g)}
|
|
352
352
|
|
|
@@ -356,18 +356,18 @@ ${o.content}`),delete o.thinking)});let r=e.messages[e.messages.length-1];return
|
|
|
356
356
|
|
|
357
357
|
`))}catch{l.enqueue(o.encode(w+`
|
|
358
358
|
`))}else l.enqueue(o.encode(w+`
|
|
359
|
-
`))}}catch(f){l.error(f)}finally{try{d.releaseLock()}catch{}l.close()}}});return new Response(u,{status:e.status,statusText:e.statusText,headers:{"Content-Type":n||"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}if(n?.includes("application/json")){let r=await e.json();return r.choices?.[0]?.message?.reasoning_content&&(r.choices[0].message.thinking={content:r.choices[0].message.reasoning_content},delete r.choices[0].message.reasoning_content),new Response(JSON.stringify(r),{status:e.status,statusText:e.statusText,headers:e.headers})}return e}};var a_={AnthropicTransformer:
|
|
359
|
+
`))}}catch(f){l.error(f)}finally{try{d.releaseLock()}catch{}l.close()}}});return new Response(u,{status:e.status,statusText:e.statusText,headers:{"Content-Type":n||"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}if(n?.includes("application/json")){let r=await e.json();return r.choices?.[0]?.message?.reasoning_content&&(r.choices[0].message.thinking={content:r.choices[0].message.reasoning_content},delete r.choices[0].message.reasoning_content),new Response(JSON.stringify(r),{status:e.status,statusText:e.statusText,headers:e.headers})}return e}};var a_={AnthropicTransformer:Ii,GeminiTransformer:Li,VertexGeminiTransformer:tu,VertexClaudeTransformer:hu,DeepseekTransformer:nu,TooluseTransformer:ru,OpenrouterTransformer:ou,OpenAITransformer:gu,MaxTokenTransformer:su,GroqTransformer:iu,CleancacheTransformer:au,EnhanceToolTransformer:cu,ReasoningTransformer:lu,SamplingTransformer:du,MaxCompletionTokens:fu,CerebrasTransformer:pu,StreamOptionsTransformer:mu,CustomParamsTransformer:yu,VercelTransformer:_u,OpenAIResponsesTransformer:Vr,ForceReasoningTransformer:bu,KimiTransformer:Cu};var Rr=class{constructor(e,n){this.configService=e;this.logger=n}transformers=new Map;registerTransformer(e,n){this.transformers.set(e,n),this.logger.info(`register transformer: ${e}${n.endPoint?` (endpoint: ${n.endPoint})`:" (no endpoint)"}`)}getTransformer(e){return this.transformers.get(e)}getAllTransformers(){return new Map(this.transformers)}getTransformersWithEndpoint(){let e=[];return this.transformers.forEach((n,r)=>{typeof n=="object"&&n.endPoint&&e.push({name:r,transformer:n})}),e}getTransformersWithoutEndpoint(){let e=[];return this.transformers.forEach((n,r)=>{typeof n=="object"&&!n.endPoint&&e.push({name:r,transformer:n})}),e}removeTransformer(e){return this.transformers.delete(e)}hasTransformer(e){return this.transformers.has(e)}async registerTransformerFromConfig(e){try{if(e.path){let n=require(require.resolve(e.path));if(n){let r=new n(e.options);if(r&&typeof r=="object"&&(r.logger=this.logger),!r.name)throw new Error(`Transformer instance from ${e.path} does not have a name property.`);return this.registerTransformer(r.name,r),!0}}return!1}catch(n){return this.logger.error(`load transformer (${e.path})
|
|
360
360
|
error: ${n.message}
|
|
361
361
|
stack: ${n.stack}`),!1}}async initialize(){try{await this.registerDefaultTransformersInternal(),await this.loadFromConfig()}catch(e){this.logger.error(`TransformerService init error: ${e.message}
|
|
362
|
-
Stack: ${e.stack}`)}}async registerDefaultTransformersInternal(){try{Object.values(a_).forEach(e=>{if("TransformerName"in e&&typeof e.TransformerName=="string")this.registerTransformer(e.TransformerName,e);else{let n=new e;n&&typeof n=="object"&&(n.logger=this.logger),this.registerTransformer(n.name,n)}})}catch(e){this.logger.error({error:e},"transformer regist error:")}}async loadFromConfig(){let e=this.configService.get("transformers",[]);for(let n of e)await this.registerTransformerFromConfig(n)}};var u_=require("tiktoken"),Ss=class{type="tiktoken";name;encoding;constructor(e="cl100k_base"){this.name=`tiktoken-${e}`;try{this.encoding=(0,u_.get_encoding)(e)}catch{throw new Error(`Failed to initialize tiktoken encoding: ${e}`)}}async initialize(){if(!this.encoding)throw new Error("Tiktoken encoding not initialized")}async countTokens(e){let n=this.encoding;if(!n)throw new Error("Encoding not initialized");let r=0,{messages:o,system:s,tools:a}=e;return Array.isArray(o)&&o.forEach(u=>{typeof u.content=="string"?r+=n.encode(u.content).length:Array.isArray(u.content)&&u.content.forEach(l=>{if(l.type==="text")r+=n.encode(l.text).length;else if(l.type==="tool_use")r+=n.encode(JSON.stringify(l.input)).length;else if(l.type==="tool_result"){let d=typeof l.content=="string"?l.content:JSON.stringify(l.content);r+=n.encode(d).length}})}),typeof s=="string"?r+=n.encode(s).length:Array.isArray(s)&&s.forEach(u=>{u.type==="text"&&(typeof u.text=="string"?r+=n.encode(u.text).length:Array.isArray(u.text)&&u.text.forEach(l=>{r+=n.encode(l||"").length}))}),a&&a.forEach(u=>{u.description&&(r+=n.encode(u.name+u.description).length),u.input_schema&&(r+=n.encode(JSON.stringify(u.input_schema)).length)}),r}isInitialized(){return this.encoding!==void 0}encodeText(e){let n=this.encoding;if(!n)throw new Error("Encoding not initialized");return Array.from(n.encode(e))}dispose(){this.encoding&&(this.encoding.free(),this.encoding=void 0)}};var Rs=require("path"),A_=require("os"),Ro=require("fs"),xs=require("fs");var
|
|
363
|
-
`:case"\r":return!1;default:return new RegExp("^\\p{Cc}|\\p{Cf}|\\p{Co}|\\p{Cs}$","u").test(t)}}clean_text(t){let e=[];for(let n of t){let r=n.charCodeAt(0);r===0||r===65533||this.is_control(n)||(/^\s$/.test(n)?e.push(" "):e.push(n))}return e.join("")}normalize(t){return this.config.clean_text&&(t=this.clean_text(t)),this.config.handle_chinese_chars&&(t=this.tokenize_chinese_chars(t)),this.config.lowercase?(t=t.toLowerCase(),this.config.strip_accents!==!1&&(t=this.strip_accents(t))):this.config.strip_accents&&(t=this.strip_accents(t)),t}},dv=lv,fv=class extends Nn{constructor(t){super(t),this.charsmap=t.precompiled_charsmap??null}normalize(t){return t=t.replace(/[\u0001-\u0008\u000B\u000E-\u001F\u007F\u008F\u009F]/gm,""),t=t.replace(/[\u0009\u000A\u000C\u000D\u00A0\u1680\u2000-\u200F\u2028\u2029\u202F\u205F\u2581\u3000\uFEFF\uFFFD]/gm," "),t.includes("\uFF5E")?t=t.split("\uFF5E").map(e=>e.normalize("NFKC")).join("\uFF5E"):t=t.normalize("NFKC"),t}},hv=fv,pv=class extends Nn{constructor(t){super(t),this.normalizers=(t.normalizers??[]).map(e=>y_(e))}normalize(t){return this.normalizers.reduce((e,n)=>n?n.normalize(e):e,t)}},mv=pv,gv=class extends Nn{normalize(t){let e=Cu(this.config.pattern??{});return e===null?t:t.replaceAll(e,this.config.content??"")}},yv=gv,_v=class extends Nn{constructor(){super(...arguments),this.form="NFC"}normalize(t){return t=t.normalize(this.form),t}},wu=_v,bv=class extends wu{constructor(){super(...arguments),this.form="NFC"}},Cv=bv,wv=class extends wu{constructor(){super(...arguments),this.form="NFD"}},Ev=wv,kv=class extends wu{constructor(){super(...arguments),this.form="NFKC"}},Av=kv,Sv=class extends wu{constructor(){super(...arguments),this.form="NFKD"}},Tv=Sv,vv=class extends Nn{normalize(t){return this.config.strip_left&&this.config.strip_right?t=t.trim():(this.config.strip_left&&(t=t.trimStart()),this.config.strip_right&&(t=t.trimEnd())),t}},Dv=vv,Rv=class extends Nn{normalize(t){return g_(t)}},xv=Rv,Ov=class extends Nn{normalize(t){return t.toLowerCase()}},Pv=Ov,Fv=class extends Nn{normalize(t){return t=this.config.prepend+t,t}},Iv=Fv;function Nv(t){if(t===null)return null;switch(t.type){case"BertNormalizer":return new dv(t);case"Precompiled":return new hv(t);case"Sequence":return new mv(t);case"Replace":return new yv(t);case"NFC":return new Cv(t);case"NFD":return new Ev(t);case"NFKC":return new Av(t);case"NFKD":return new Tv(t);case"Strip":return new Dv(t);case"StripAccents":return new xv(t);case"Lowercase":return new Pv(t);case"Prepend":return new Iv(t);default:throw new Error(`Unknown Normalizer type: ${t.type}`)}}var y_=Nv,Bv=class extends vs{pre_tokenize(t,e){return(Array.isArray(t)?t.map(n=>this.pre_tokenize_text(n,e)):this.pre_tokenize_text(t,e)).flat()}_call(t,e){return this.pre_tokenize(t,e)}},dn=Bv,Mv=class extends dn{constructor(t){super(),this.config=t,this.add_prefix_space=this.config.add_prefix_space??!1,this.trim_offsets=this.config.trim_offsets??!1,this.use_regex=this.config.use_regex??!0,this.pattern=new RegExp("'s|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S)|\\s+","gu"),this.byte_encoder=m_,this.text_encoder=new TextEncoder}pre_tokenize_text(t,e){return this.add_prefix_space&&!t.startsWith(" ")&&(t=" "+t),(this.use_regex?t.match(this.pattern)||[]:[t]).map(n=>Array.from(this.text_encoder.encode(n),r=>this.byte_encoder[r]).join(""))}},Lv=Mv,jv=class extends dn{pre_tokenize_text(t,e){return t.match(/\w+|[^\w\s]+/g)||[]}},Uv=jv,$v=class extends dn{constructor(t){super(),this.replacement=t.replacement??"\u2581",this.str_rep=t.str_rep||this.replacement,this.prepend_scheme=t.prepend_scheme??"always"}pre_tokenize_text(t,e){let{section_index:n=void 0}=e??{},r=t.replaceAll(" ",this.str_rep);return!r.startsWith(this.replacement)&&(this.prepend_scheme==="always"||this.prepend_scheme==="first"&&n===0)&&(r=this.str_rep+r),[r]}},qv=$v,zv=class extends dn{constructor(t){super(),this.config=t,this.pattern=Cu(this.config.pattern??{},this.config.invert??!0)}pre_tokenize_text(t){return this.pattern===null?[]:this.config.invert?t.match(this.pattern)||[]:this.config.behavior?.toLowerCase()==="removed"?t.split(this.pattern).filter(e=>e):iv(t,this.pattern)}},Hv=zv,Wv=class extends dn{constructor(t){super(),this.config=t,this.pattern=new RegExp(`[^${Ts}]+|[${Ts}]+`,"gu")}pre_tokenize_text(t){return t.match(this.pattern)||[]}},Gv=Wv,Jv=class extends dn{constructor(t){super(),this.config=t;let e=`[^\\d]+|\\d${this.config.individual_digits?"":"+"}`;this.pattern=new RegExp(e,"gu")}pre_tokenize_text(t){return t.match(this.pattern)||[]}},Vv=Jv,Kv=class extends dn{constructor(){super(),this.pattern=new RegExp(`[^\\s${Ts}]+|[${Ts}]`,"gu")}pre_tokenize_text(t,e){return t.trim().match(this.pattern)||[]}},Yv=Kv,Qv=class extends dn{constructor(t){super(),this.config=t,this.pattern=Cu(this.config.pattern??{}),this.content=this.config.content??""}pre_tokenize_text(t){return this.pattern===null?[t]:[t.replaceAll(this.pattern,this.config.content??"")]}},Xv=Qv,Zv=class extends dn{constructor(t){super(),this.tokenizers=(t.pretokenizers??[]).map(e=>__(e))}pre_tokenize_text(t,e){return this.tokenizers.reduce((n,r)=>r?r.pre_tokenize(n,e):n,[t])}},eD=Zv,tD=class extends dn{pre_tokenize_text(t){return av(t)}},nD=tD;function rD(t){if(t===null)return null;switch(t.type){case"BertPreTokenizer":return new Yv;case"Sequence":return new eD(t);case"Whitespace":return new Uv;case"WhitespaceSplit":return new nD;case"Metaspace":return new qv(t);case"ByteLevel":return new Lv(t);case"Split":return new Hv(t);case"Punctuation":return new Gv(t);case"Digits":return new Vv(t);case"Replace":return new Xv(t);default:throw new Error(`Unknown PreTokenizer type: ${t.type}`)}}var __=rD,oD=class extends vs{constructor(t){super(),this.config=t,this.vocab=[],this.tokens_to_ids=new Map,this.unk_token_id=void 0,this.unk_token=void 0,this.end_of_word_suffix=void 0,this.fuse_unk=this.config.fuse_unk??!1}_call(t){let e=this.encode(t);return this.fuse_unk&&(e=tv(e,this.tokens_to_ids,this.unk_token_id)),e}convert_tokens_to_ids(t){return t.map(e=>this.tokens_to_ids.get(e)??this.unk_token_id)}convert_ids_to_tokens(t){return t.map(e=>this.vocab[Number(e)]??this.unk_token)}},Eu=oD,sD=class extends Eu{constructor(t){super(t),this.max_input_chars_per_word=100,this.tokens_to_ids=df(t.vocab),this.unk_token_id=this.tokens_to_ids.get(t.unk_token),this.unk_token=t.unk_token,this.max_input_chars_per_word=t.max_input_chars_per_word??100,this.vocab=new Array(this.tokens_to_ids.size);for(let[e,n]of this.tokens_to_ids)this.vocab[n]=e}encode(t){let e=[];for(let n of t){let r=[...n];if(r.length>this.max_input_chars_per_word){e.push(this.unk_token);continue}let o=!1,s=0,a=[];for(;s<r.length;){let u=r.length,l=null;for(;s<u;){let d=r.slice(s,u).join("");if(s>0&&(d=this.config.continuing_subword_prefix+d),this.tokens_to_ids.has(d)){l=d;break}--u}if(l===null){o=!0;break}a.push(l),s=u}o?e.push(this.unk_token):e.push(...a)}return e}},d_=sD,f_=class b_{constructor(e,n){this.is_leaf=e,this.children=n}static default(){return new b_(!1,new Map)}},iD=class{constructor(){this.root=f_.default()}extend(t){for(let e of t)this.push(e)}push(t){let e=this.root;for(let n of t){let r=e.children.get(n);r===void 0&&(r=f_.default(),e.children.set(n,r)),e=r}e.is_leaf=!0}*common_prefix_search(t){let e=this.root;if(e===void 0)return;let n="";for(let r of t){if(n+=r,e=e.children.get(r),e===void 0)return;e.is_leaf&&(yield n)}}},aD=iD,cf=class C_{constructor(e,n,r,o,s){this.token_id=e,this.node_id=n,this.pos=r,this.length=o,this.score=s,this.prev=null,this.backtrace_score=0}clone(){let e=new C_(this.token_id,this.node_id,this.pos,this.length,this.score);return e.prev=this.prev,e.backtrace_score=this.backtrace_score,e}},uD=class{constructor(t,e,n){this.chars=Array.from(t),this.len=this.chars.length,this.bos_token_id=e,this.eos_token_id=n,this.nodes=[],this.begin_nodes=Array.from({length:this.len+1},()=>[]),this.end_nodes=Array.from({length:this.len+1},()=>[]);let r=new cf(this.bos_token_id??0,0,0,0,0),o=new cf(this.eos_token_id??0,1,this.len,0,0);this.nodes.push(r.clone()),this.nodes.push(o.clone()),this.begin_nodes[this.len].push(o),this.end_nodes[0].push(r)}insert(t,e,n,r){let o=this.nodes.length,s=new cf(r,o,t,e,n);this.begin_nodes[t].push(s),this.end_nodes[t+e].push(s),this.nodes.push(s)}viterbi(){let t=this.len,e=0;for(;e<=t;){if(this.begin_nodes[e].length==0)return[];for(let s of this.begin_nodes[e]){s.prev=null;let a=0,u=null;for(let l of this.end_nodes[e]){let d=l.backtrace_score+s.score;(u===null||d>a)&&(u=l.clone(),a=d)}if(u!==null)s.prev=u,s.backtrace_score=a;else return[]}++e}let n=[],r=this.begin_nodes[t][0].prev;if(r===null)return[];let o=r.clone();for(;o.prev!==null;)n.push(o.clone()),o=o.clone().prev.clone();return n.reverse(),n}piece(t){return this.chars.slice(t.pos,t.pos+t.length).join("")}tokens(){return this.viterbi().map(t=>this.piece(t))}token_ids(){return this.viterbi().map(t=>t.token_id)}},cD=uD;function lD(t){if(t.length===0)throw new Error("Array must not be empty");let e=t[0],n=0;for(let r=1;r<t.length;++r)t[r]<e&&(e=t[r],n=r);return[e,n]}var dD=class extends Eu{constructor(t,e){super(t);let n=t.vocab.length;this.vocab=new Array(n),this.scores=new Array(n);for(let r=0;r<n;++r)[this.vocab[r],this.scores[r]]=t.vocab[r];this.unk_token_id=t.unk_id,this.unk_token=this.vocab[t.unk_id],this.tokens_to_ids=new Map(this.vocab.map((r,o)=>[r,o])),this.bos_token=" ",this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=e,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.unk_token=this.vocab[this.unk_token_id],this.min_score=lD(this.scores)[0],this.unk_score=this.min_score-10,this.scores[this.unk_token_id]=this.unk_score,this.trie=new aD,this.trie.extend(this.vocab),this.fuse_unk=!0}populate_nodes(t){let e=t.chars,n=1,r=0;for(;r<e.length;){let o=!1,s=[],a=e.slice(r).join(""),u=this.trie.common_prefix_search(a);for(let l of u){s.push(l);let d=this.tokens_to_ids.get(l),f=this.scores[d],p=ov(l);t.insert(r,p,f,d),!o&&p===n&&(o=!0)}o||t.insert(r,n,this.unk_score,this.unk_token_id),r+=n}}tokenize(t){let e=new cD(t,this.bos_token_id,this.eos_token_id);return this.populate_nodes(e),e.tokens()}encode(t){let e=[];for(let n of t){let r=this.tokenize(n);e.push(...r)}return e}},h_=dD,fD=class{constructor(t=(n,r)=>n>r,e=1/0){this._heap=[],this._comparator=t,this._max_size=e}get size(){return this._heap.length}is_empty(){return this.size===0}peek(){return this._heap[0]}push(...t){return this.extend(t)}extend(t){for(let e of t)if(this.size<this._max_size)this._heap.push(e),this._sift_up();else{let n=this._smallest();this._comparator(e,this._heap[n])&&(this._heap[n]=e,this._sift_up_from(n))}return this.size}pop(){let t=this.peek(),e=this.size-1;return e>0&&this._swap(0,e),this._heap.pop(),this._sift_down(),t}replace(t){let e=this.peek();return this._heap[0]=t,this._sift_down(),e}_parent(t){return(t+1>>>1)-1}_left(t){return(t<<1)+1}_right(t){return t+1<<1}_greater(t,e){return this._comparator(this._heap[t],this._heap[e])}_swap(t,e){let n=this._heap[t];this._heap[t]=this._heap[e],this._heap[e]=n}_sift_up(){this._sift_up_from(this.size-1)}_sift_up_from(t){for(;t>0&&this._greater(t,this._parent(t));)this._swap(t,this._parent(t)),t=this._parent(t)}_sift_down(){let t=0;for(;this._left(t)<this.size&&this._greater(this._left(t),t)||this._right(t)<this.size&&this._greater(this._right(t),t);){let e=this._right(t)<this.size&&this._greater(this._right(t),this._left(t))?this._right(t):this._left(t);this._swap(t,e),t=e}}_smallest(){return 2**Math.floor(Math.log2(this.size))-1}},hD=fD,pD=class{constructor(t){this.capacity=t,this.cache=new Map}get(t){if(!this.cache.has(t))return;let e=this.cache.get(t);return this.cache.delete(t),this.cache.set(t,e),e}put(t,e){this.cache.has(t)&&this.cache.delete(t),this.cache.set(t,e),this.cache.size>this.capacity&&this.cache.delete(this.cache.keys().next().value)}clear(){this.cache.clear()}},mD=pD,gD=class extends Eu{constructor(t){super(t),this.tokens_to_ids=df(t.vocab),this.unk_token_id=this.tokens_to_ids.get(t.unk_token),this.unk_token=t.unk_token,this.vocab=new Array(this.tokens_to_ids.size);for(let[n,r]of this.tokens_to_ids)this.vocab[r]=n;let e=Array.isArray(t.merges[0]);this.merges=e?t.merges:t.merges.map(n=>n.split(" ",2)),this.bpe_ranks=new Map(this.merges.map((n,r)=>[JSON.stringify(n),r])),this.end_of_word_suffix=t.end_of_word_suffix,this.continuing_subword_suffix=t.continuing_subword_suffix??null,this.byte_fallback=this.config.byte_fallback??!1,this.byte_fallback&&(this.text_encoder=new TextEncoder),this.ignore_merges=this.config.ignore_merges??!1,this.max_length_to_cache=256,this.cache_capacity=1e4,this.cache=new mD(this.cache_capacity)}clear_cache(){this.cache.clear()}bpe(t){if(t.length===0)return[];let e=this.cache.get(t);if(e!==void 0)return e;let n=Array.from(t);this.end_of_word_suffix&&(n[n.length-1]+=this.end_of_word_suffix);let r=[];if(n.length>1){let o=new hD((u,l)=>u.score<l.score),s={token:n[0],bias:0,prev:null,next:null},a=s;for(let u=1;u<n.length;++u){let l={bias:u/n.length,token:n[u],prev:a,next:null};a.next=l,this.add_node(o,a),a=l}for(;!o.is_empty();){let u=o.pop();if(u.deleted||!u.next||u.next.deleted)continue;if(u.deleted=!0,u.next.deleted=!0,u.prev){let d={...u.prev};u.prev.deleted=!0,u.prev=d,d.prev?d.prev.next=d:s=d}let l={token:u.token+u.next.token,bias:u.bias,prev:u.prev,next:u.next.next};l.prev?(l.prev.next=l,this.add_node(o,l.prev)):s=l,l.next&&(l.next.prev=l,this.add_node(o,l))}for(let u=s;u!==null;u=u.next)r.push(u.token)}else r=n;if(this.continuing_subword_suffix)for(let o=0;o<r.length-1;++o)r[o]+=this.continuing_subword_suffix;return t.length<this.max_length_to_cache&&this.cache.put(t,r),r}add_node(t,e){let n=this.bpe_ranks.get(JSON.stringify([e.token,e.next.token]));n!==void 0&&(e.score=n+e.bias,t.push(e))}encode(t){let e=[];for(let n of t){if(this.ignore_merges&&this.tokens_to_ids.has(n)){e.push(n);continue}let r=this.bpe(n);for(let o of r)if(this.tokens_to_ids.has(o))e.push(o);else if(this.byte_fallback){let s=Array.from(this.text_encoder.encode(o)).map(a=>`<0x${a.toString(16).toUpperCase().padStart(2,"0")}>`);s.every(a=>this.tokens_to_ids.has(a))?e.push(...s):e.push(this.unk_token)}else e.push(this.unk_token)}return e}},p_=gD,yD=class extends Eu{constructor(t,e){super(t);let n=t.vocab;this.tokens_to_ids=df(e.target_lang?n[e.target_lang]:n),this.bos_token=e.bos_token,this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=e.eos_token,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.pad_token=e.pad_token,this.pad_token_id=this.tokens_to_ids.get(this.pad_token),this.unk_token=e.unk_token,this.unk_token_id=this.tokens_to_ids.get(this.unk_token),this.vocab=new Array(this.tokens_to_ids.size);for(let[r,o]of this.tokens_to_ids)this.vocab[o]=r}encode(t){return t}},_D=yD;function bD(t,e){switch(t.type){case"WordPiece":return new d_(t);case"Unigram":return new h_(t,e.eos_token);case"BPE":return new p_(t);default:if(t.vocab)return Array.isArray(t.vocab)?new h_(t,e.eos_token):Object.hasOwn(t,"continuing_subword_prefix")&&Object.hasOwn(t,"unk_token")?Object.hasOwn(t,"merges")?new p_(t):new d_(t):new _D(t,{target_lang:e.target_lang,bos_token:e.bos_token,eos_token:e.eos_token,pad_token:e.pad_token,unk_token:e.unk_token});throw new Error(`Unknown TokenizerModel type: ${t?.type}`)}}var CD=bD,wD=class extends vs{constructor(t){super(),this.config=t}_call(t,...e){return this.post_process(t,...e)}},Ds=wD,ED=class extends Ds{post_process(t,e=null,n=!0){let r=e===null?this.config.single:this.config.pair,o=[],s=[];for(let a of r)"SpecialToken"in a?n&&(o.push(a.SpecialToken.id),s.push(a.SpecialToken.type_id)):"Sequence"in a&&(a.Sequence.id==="A"?(o=Bt(o,t),s=Bt(s,new Array(t.length).fill(a.Sequence.type_id))):a.Sequence.id==="B"&&(o=Bt(o,e),s=Bt(s,new Array(e.length).fill(a.Sequence.type_id))));return{tokens:o,token_type_ids:s}}},kD=ED,AD=class extends Ds{post_process(t,e=null){return{tokens:e?Bt(t,e):t}}},SD=AD,TD=class extends Ds{constructor(t){super(t),this.sep=t.sep,this.cls=t.cls}post_process(t,e=null,n=!0){n&&(t=Bt([this.cls[0]],t,[this.sep[0]]));let r=new Array(t.length).fill(0);if(e){let o=[],s=n?[this.sep[0]]:[];t=Bt(t,o,e,s),r=Bt(r,new Array(e.length+o.length+s.length).fill(1))}return{tokens:t,token_type_ids:r}}},vD=TD,DD=class extends Ds{constructor(t){super(t),this.sep=t.sep,this.cls=t.cls}post_process(t,e,n=!0){n&&(t=Bt([this.cls[0]],t,[this.sep[0]]));let r=new Array(t.length).fill(0);if(e){let o=n?[this.sep[0]]:[],s=n?[this.sep[0]]:[];t=Bt(t,o,e,s),r=Bt(r,new Array(e.length+o.length+s.length).fill(1))}return{tokens:t,token_type_ids:r}}},RD=DD,xD=class extends Ds{constructor(t){super(t),this.processors=(t.processors??[]).map(e=>w_(e))}post_process(t,e=null,n=!0){let r={tokens:t};for(let o of this.processors)r=o.post_process(r.tokens,e,n);return r}},OD=xD;function PD(t){if(t===null)return null;switch(t.type){case"TemplateProcessing":return new kD(t);case"ByteLevel":return new SD(t);case"BertProcessing":return new vD(t);case"RobertaProcessing":return new RD(t);case"Sequence":return new OD(t);default:throw new Error(`Unknown PostProcessor type: ${t.type}`)}}var w_=PD,FD=class extends vs{constructor(t){super(),this.config=t,this.added_tokens=[],this.end_of_word_suffix=null,this.trim_offsets="trim_offsets"in t?t.trim_offsets:!1}_call(t){return this.decode(t)}decode(t){return this.decode_chain(t).join("")}},fn=FD,ID=class extends fn{constructor(t){super(t),this.byte_decoder=XT,this.text_decoder=new TextDecoder("utf-8",{fatal:!1,ignoreBOM:!0}),this.end_of_word_suffix=null}convert_tokens_to_string(t){let e=t.join(""),n=new Uint8Array([...e].map(r=>this.byte_decoder[r]));return this.text_decoder.decode(n)}decode_chain(t){let e=[],n=[];for(let r of t)this.added_tokens.find(o=>o.content===r)!==void 0?(n.length>0&&(e.push(this.convert_tokens_to_string(n)),n=[]),e.push(r)):n.push(r);return n.length>0&&e.push(this.convert_tokens_to_string(n)),e}},ND=ID,BD=class extends fn{constructor(t){super(t),this.cleanup=t.cleanup}decode_chain(t){return t.map((e,n)=>{if(n!==0){let r=this.config.prefix;r&&e.startsWith(r)?e=e.replace(r,""):e=" "+e}return this.cleanup&&(e=lf(e)),e})}},MD=BD,LD=class extends fn{constructor(t){super(t),this.replacement=t.replacement??"\u2581"}decode_chain(t){let e=[];for(let n=0;n<t.length;++n){let r=t[n].replaceAll(this.replacement," ");n==0&&r.startsWith(" ")&&(r=r.substring(1)),e.push(r)}return e}},jD=LD,UD=class extends fn{constructor(t){super(t),this.suffix=t.suffix??""}decode_chain(t){return t.map((e,n)=>e.replaceAll(this.suffix,n===t.length-1?"":" "))}},$D=UD,qD=class extends fn{constructor(t){super(t),this.pad_token=t.pad_token??"",this.word_delimiter_token=t.word_delimiter_token??"",this.cleanup=t.cleanup}convert_tokens_to_string(t){if(t.length===0)return"";let e=[t[0]];for(let r=1;r<t.length;++r)t[r]!==e.at(-1)&&e.push(t[r]);let n=e.filter(r=>r!==this.pad_token).join("");return this.cleanup&&(n=lf(n).replaceAll(this.word_delimiter_token," ").trim()),n}decode_chain(t){return[this.convert_tokens_to_string(t)]}},zD=qD,HD=class extends fn{constructor(t){super(t),this.decoders=(t.decoders??[]).map(e=>E_(e))}decode_chain(t){return this.decoders.reduce((e,n)=>n.decode_chain(e),t)}},WD=HD,GD=class extends fn{decode_chain(t){let e=Cu(this.config.pattern),n=this.config.content??"";return e===null?t:t.map(r=>r.replaceAll(e,n))}},JD=GD,VD=class extends fn{decode_chain(t){return[t.join("")]}},KD=VD,YD=class extends fn{constructor(t){super(t),this.content=t.content??"",this.start=t.start??0,this.stop=t.stop??0}decode_chain(t){return t.map(e=>{let n=0;for(let o=0;o<this.start&&e[o]===this.content;++o)n=o+1;let r=e.length;for(let o=0;o<this.stop;++o){let s=e.length-o-1;if(e[s]===this.content){r=s;continue}else break}return e.slice(n,r)})}},QD=YD,XD=class extends fn{constructor(t){super(t),this.text_decoder=new TextDecoder}decode_chain(t){let e=[],n=[];for(let r of t){let o=null;if(r.length===6&&r.startsWith("<0x")&&r.endsWith(">")){let s=parseInt(r.slice(3,5),16);isNaN(s)||(o=s)}if(o!==null)n.push(o);else{if(n.length>0){let s=this.text_decoder.decode(Uint8Array.from(n));e.push(s),n=[]}e.push(r)}}if(n.length>0){let r=this.text_decoder.decode(Uint8Array.from(n));e.push(r),n=[]}return e}},ZD=XD;function eR(t){if(t===null)return null;switch(t.type){case"ByteLevel":return new ND(t);case"WordPiece":return new MD(t);case"Metaspace":return new jD(t);case"BPEDecoder":return new $D(t);case"CTC":return new zD(t);case"Sequence":return new WD(t);case"Replace":return new JD(t);case"Fuse":return new KD(t);case"Strip":return new QD(t);case"ByteFallback":return new ZD(t);default:throw new Error(`Unknown Decoder type: ${t.type}`)}}var E_=eR,tR=class{constructor(t,e){let n=l_(t,"Tokenizer",["model","decoder","post_processor","pre_tokenizer","normalizer"]);if(n)throw new Error(n);let r=l_(e,"Config");if(r)throw new Error(r);this.tokenizer=t,this.config=e,this.normalizer=y_(this.tokenizer.normalizer),this.pre_tokenizer=__(this.tokenizer.pre_tokenizer),this.model=CD(this.tokenizer.model,this.config),this.post_processor=w_(this.tokenizer.post_processor),this.decoder=E_(this.tokenizer.decoder),this.special_tokens=[],this.all_special_ids=[],this.added_tokens=[],this.tokenizer.added_tokens.forEach(o=>{let s=new YT(o);this.added_tokens.push(s),this.model.tokens_to_ids.set(s.content,s.id),this.model.vocab[s.id]=s.content,s.special&&(this.special_tokens.push(s.content),this.all_special_ids.push(s.id))}),(this.config.additional_special_tokens??[]).forEach(o=>{this.special_tokens.includes(o)||this.special_tokens.push(o)}),this.decoder&&(this.decoder.added_tokens=this.added_tokens,this.decoder.end_of_word_suffix=this.model.end_of_word_suffix),this.added_tokens_splitter=new VT(this.added_tokens.map(o=>o.content)),this.added_tokens_map=new Map(this.added_tokens.map(o=>[o.content,o])),this.remove_space=this.config.remove_space,this.clean_up_tokenization_spaces=this.config.clean_up_tokenization_spaces??!0,this.do_lowercase_and_remove_accent=this.config.do_lowercase_and_remove_accent??!1}encode(t,{text_pair:e=null,add_special_tokens:n=!0,return_token_type_ids:r=null}={}){let{tokens:o,token_type_ids:s}=this.tokenize_helper(t,{text_pair:e,add_special_tokens:n}),a=this.model.convert_tokens_to_ids(o),u={ids:a,tokens:o,attention_mask:new Array(a.length).fill(1)};return r&&s&&(u.token_type_ids=s),u}decode(t,e={}){if(!Array.isArray(t)||t.length===0||!rv(t[0]))throw Error("token_ids must be a non-empty array of integers.");let n=this.model.convert_ids_to_tokens(t);e.skip_special_tokens&&(n=n.filter(o=>!this.special_tokens.includes(o)));let r=this.decoder?this.decoder(n):n.join(" ");return this.decoder&&this.decoder.end_of_word_suffix&&(r=r.replaceAll(this.decoder.end_of_word_suffix," "),e.skip_special_tokens&&(r=r.trim())),(e.clean_up_tokenization_spaces??this.clean_up_tokenization_spaces)&&(r=lf(r)),r}tokenize(t,{text_pair:e=null,add_special_tokens:n=!1}={}){return this.tokenize_helper(t,{text_pair:e,add_special_tokens:n}).tokens}encode_text(t){if(t===null)return null;let e=this.added_tokens_splitter.split(t);return e.forEach((n,r)=>{let o=this.added_tokens_map.get(n);o&&(o.lstrip&&r>0&&(e[r-1]=e[r-1].trimEnd()),o.rstrip&&r<e.length-1&&(e[r+1]=e[r+1].trimStart()))}),e.flatMap((n,r)=>{if(n.length===0)return[];if(this.added_tokens_map.has(n))return[n];if(this.remove_space===!0&&(n=n.trim().split(/\s+/).join(" ")),this.do_lowercase_and_remove_accent&&(n=sv(n)),this.normalizer!==null&&(n=this.normalizer(n)),n.length===0)return[];let o=this.pre_tokenizer!==null?this.pre_tokenizer(n,{section_index:r}):[n];return this.model(o)})}tokenize_helper(t,{text_pair:e=null,add_special_tokens:n=!0}){let r=this.encode_text(t),o=this.encode_text(e||null);return this.post_processor?this.post_processor(r,o,n):{tokens:Bt(r??[],o??[])}}token_to_id(t){return this.model.tokens_to_ids.get(t)}id_to_token(t){return this.model.vocab[t]}get_added_tokens_decoder(){let t=new Map;for(let e of this.added_tokens)t.set(e.id,e);return t}},k_=tR;var ku=class{type="huggingface";name;modelId;logger;options;tokenizer=null;cacheDir;safeModelName;constructor(e,n,r={}){this.modelId=e,this.logger=n,this.options=r,this.cacheDir=r.cacheDir||(0,Rs.join)((0,A_.homedir)(),".claude-code-router",".huggingface"),this.safeModelName=e.replace(/\//g,"_").replace(/[^a-zA-Z0-9_-]/g,"_"),this.name=`huggingface-${e.split("/").pop()}`}getCachePaths(){let e=(0,Rs.join)(this.cacheDir,this.safeModelName);return{modelDir:e,tokenizerJson:(0,Rs.join)(e,"tokenizer.json"),tokenizerConfig:(0,Rs.join)(e,"tokenizer_config.json")}}ensureDir(e){(0,Ro.existsSync)(e)||(0,Ro.mkdirSync)(e,{recursive:!0})}async loadFromCache(){try{let e=this.getCachePaths();if(!(0,Ro.existsSync)(e.tokenizerJson)||!(0,Ro.existsSync)(e.tokenizerConfig))return null;let[n,r]=await Promise.all([xs.promises.readFile(e.tokenizerJson,"utf-8"),xs.promises.readFile(e.tokenizerConfig,"utf-8")]);return{tokenizerJson:JSON.parse(n),tokenizerConfig:JSON.parse(r)}}catch(e){return this.logger?.warn(`Failed to load from cache: ${e.message}`),null}}async downloadAndCache(){let e=this.getCachePaths(),n={json:`https://huggingface.co/${this.modelId}/resolve/main/tokenizer.json`,config:`https://huggingface.co/${this.modelId}/resolve/main/tokenizer_config.json`};this.logger?.info(`Downloading tokenizer files for ${this.modelId}`);let r=new AbortController,o=setTimeout(()=>r.abort(),this.options.timeout||3e4);try{let[s,a]=await Promise.all([fetch(n.json,{signal:r.signal}),fetch(n.config,{signal:r.signal})]);if(!s.ok)throw new Error(`Failed to fetch tokenizer.json: ${s.statusText}`);let[u,l]=await Promise.all([s.json(),a.ok?a.json():Promise.resolve({})]);return this.ensureDir(e.modelDir),await Promise.all([xs.promises.writeFile(e.tokenizerJson,JSON.stringify(u,null,2)),xs.promises.writeFile(e.tokenizerConfig,JSON.stringify(l,null,2))]),{tokenizerJson:u,tokenizerConfig:l}}finally{clearTimeout(o)}}async initialize(){try{this.logger?.info(`Initializing HuggingFace tokenizer: ${this.modelId}`);let e=this.getCachePaths();this.ensureDir(this.cacheDir);let n=await this.loadFromCache()||await this.downloadAndCache();this.tokenizer=new k_(n.tokenizerJson,n.tokenizerConfig),this.logger?.info(`Tokenizer initialized: ${this.name}`)}catch(e){throw this.logger?.error(`Failed to initialize tokenizer: ${e.message}`),new Error(`Failed to initialize HuggingFace tokenizer for ${this.modelId}: ${e.message}`)}}async countTokens(e){if(!this.tokenizer)throw new Error("Tokenizer not initialized");try{let n=this.extractTextFromRequest(e);return this.tokenizer.encode(n).ids.length}catch(n){throw this.logger?.error(`Error counting tokens: ${n.message}`),n}}isInitialized(){return this.tokenizer!==null}encodeText(e){if(!this.tokenizer)throw new Error("Tokenizer not initialized");return this.tokenizer.encode(e).ids}dispose(){this.tokenizer=null}extractTextFromRequest(e){let n=[],{messages:r,system:o,tools:s}=e;if(Array.isArray(r)){for(let a of r)if(typeof a.content=="string")n.push(a.content);else if(Array.isArray(a.content))for(let u of a.content)u.type==="text"&&u.text?n.push(u.text):u.type==="tool_use"&&u.input?n.push(JSON.stringify(u.input)):u.type==="tool_result"&&n.push(typeof u.content=="string"?u.content:JSON.stringify(u.content))}if(typeof o=="string")n.push(o);else if(Array.isArray(o)){for(let a of o)if(a.type==="text"){if(typeof a.text=="string")n.push(a.text);else if(Array.isArray(a.text))for(let u of a.text)u&&n.push(u)}}if(s)for(let a of s)a.name&&n.push(a.name),a.description&&n.push(a.description),a.input_schema&&n.push(JSON.stringify(a.input_schema));return n.join(" ")}};var Au=class{type="api";name;config;logger;options;constructor(e,n,r={}){if(!e.url||!e.apiKey)throw new Error("API tokenizer requires url and apiKey");this.config={url:e.url,apiKey:e.apiKey,requestFormat:e.requestFormat||"standard",responseField:e.responseField||"token_count",headers:e.headers||{}},this.logger=n,this.options=r;try{let o=new URL(e.url);this.name=`api-${o.hostname}`}catch{this.name=`api-${e.url}`}}async initialize(){try{new URL(this.config.url)}catch{throw new Error(`Invalid API URL: ${this.config.url}`)}}async countTokens(e){try{let n=this.formatRequestBody(e),r={"Content-Type":"application/json",Authorization:`Bearer ${this.config.apiKey}`,...this.config.headers},o=new AbortController,s=setTimeout(()=>o.abort(),this.options.timeout||3e4),a=await fetch(this.config.url,{method:"POST",headers:r,body:JSON.stringify(n),signal:o.signal});if(clearTimeout(s),!a.ok)throw new Error(`API tokenizer request failed: ${a.status} ${a.statusText}`);let u=await a.json();return this.extractTokenCount(u)}catch(n){throw n.name==="AbortError"?new Error("API tokenizer request timed out"):n}}isInitialized(){return!0}dispose(){}formatRequestBody(e){switch(this.config.requestFormat){case"standard":return e;case"openai":return{model:"gpt-3.5-turbo",messages:this.extractMessagesAsOpenAIFormat(e)};case"anthropic":return{messages:e.messages||[],system:e.system,tools:e.tools};case"custom":return{text:this.extractConcatenatedText(e)};default:return e}}extractMessagesAsOpenAIFormat(e){return e.messages?e.messages.map(n=>({role:n.role,content:this.extractTextFromMessage(n)})):[]}extractTextFromMessage(e){return typeof e.content=="string"?e.content:Array.isArray(e.content)?e.content.map(n=>n.type==="text"&&n.text?n.text:n.type==="tool_use"&&n.input?JSON.stringify(n.input):n.type==="tool_result"?typeof n.content=="string"?n.content:JSON.stringify(n.content):"").join(" "):""}extractConcatenatedText(e){let n=[];return e.messages&&e.messages.forEach(r=>{n.push(this.extractTextFromMessage(r))}),typeof e.system=="string"?n.push(e.system):Array.isArray(e.system)&&e.system.forEach(r=>{r.type==="text"&&(typeof r.text=="string"?n.push(r.text):Array.isArray(r.text)&&r.text.forEach(o=>{o&&n.push(o)}))}),e.tools&&e.tools.forEach(r=>{r.name&&n.push(r.name),r.description&&n.push(r.description),r.input_schema&&n.push(JSON.stringify(r.input_schema))}),n.join(" ")}extractTokenCount(e){try{let n=this.config.responseField,r=n.split("."),o=e;for(let s of r){if(o==null)throw new Error(`Field path '${n}' not found in response`);o=o[s]}if(typeof o!="number")throw new Error(`Expected number at field path '${n}', got ${typeof o}`);return o}catch(n){throw this.logger?.error(`Failed to extract token count from API response: ${n.message}. Response: ${JSON.stringify(e)}`),new Error(`Invalid response from API tokenizer: ${n.message}`)}}};var xr=class{tokenizers=new Map;configService;logger;options;fallbackTokenizer;constructor(e,n,r={}){this.configService=e,this.logger=n,this.options={timeout:r.timeout??3e4,...r}}async initialize(){try{this.fallbackTokenizer=new Ss("cl100k_base"),await this.fallbackTokenizer.initialize(),this.tokenizers.set("fallback",this.fallbackTokenizer),this.logger?.info("TokenizerService initialized successfully")}catch(e){throw this.logger?.error(`TokenizerService initialization error: ${e.message}`),e}}async getTokenizer(e){let n=this.getCacheKey(e);if(this.tokenizers.has(n))return this.tokenizers.get(n);let r;try{switch(e.type){case"tiktoken":r=new Ss(e.encoding||"cl100k_base");break;case"huggingface":this.logger?.info(`Initializing HuggingFace tokenizer for model: ${e.model}`),r=new ku(e.model,this.logger,{timeout:this.options.timeout});break;case"api":r=new Au(e,this.logger,{timeout:this.options.timeout});break;default:throw new Error(`Unknown tokenizer type: ${e.type}`)}return this.logger?.info(`Calling initialize() on ${e.type} tokenizer...`),await r.initialize(),this.tokenizers.set(n,r),this.logger?.info(`Tokenizer initialized successfully: ${e.type} (${n})`),r}catch(o){return this.logger?.error(`Failed to initialize ${e.type} tokenizer: ${o.message}`),this.logger?.error(`Error stack: ${o.stack}`),this.fallbackTokenizer||await this.initialize(),this.fallbackTokenizer}}async countTokens(e,n){let r=n?await this.getTokenizer(n):this.fallbackTokenizer;return{tokenCount:await r.countTokens(e),tokenizerUsed:r.name,cached:!1}}getTokenizerConfigForModel(e,n){let o=(this.configService.get("providers")||[]).find(s=>s.name===e);if(o?.tokenizer)return o.tokenizer.models?.[n]?o.tokenizer.models[n]:o.tokenizer.default}dispose(){this.tokenizers.forEach(e=>{try{e.dispose()}catch(n){this.logger?.error(`Error disposing tokenizer: ${n}`)}}),this.tokenizers.clear()}getCacheKey(e){switch(e.type){case"tiktoken":return`tiktoken:${e.encoding||"cl100k_base"}`;case"huggingface":return`hf:${e.model}`;case"api":return`api:${e.url}`;default:return`unknown:${JSON.stringify(e)}`}}};Wn();var hn=class{async fetchJson(e,n,r,o,s){let a=s||n.apiKey;if(!a)return null;let u={method:"GET",headers:{Accept:"application/json",Authorization:`Bearer ${a}`},signal:AbortSignal.timeout(r)};if(o)try{let{ProxyAgent:l}=await import("undici");u.dispatcher=new l(new URL(o).toString())}catch{}try{let l=await fetch(e,u);return l.ok?await l.json():null}catch{return null}}hasQuotaData(e){return e.totalBalance!==void 0||e.usedBalance!==void 0||e.remainingBalance!==void 0||e.usedDailyBalance!==void 0||e.limitDaily!==void 0||e.resetTime!==void 0}},ff=class extends hn{async queryQuota(e,n,r){let o=await this.fetchJson("https://api.deepseek.com/user/balance",e,n,r),a=(Array.isArray(o?.balance_infos)?o.balance_infos:[]).find(l=>ye(l?.total_balance)!==void 0);if(!a)return null;let u=ye(a.total_balance);return u===void 0?null:{totalBalance:u,currency:typeof a.currency=="string"?a.currency:void 0}}},hf=class extends hn{async queryQuota(e,n,r){let s=(await this.fetchJson("https://openrouter.ai/api/v1/key",e,n,r))?.data;if(!s||typeof s!="object")return null;let a={},u=ye(s.limit),l=ye(s.limit_remaining),d=ye(s.usage),f=ye(s.usage_daily);return u!==void 0&&(a.totalBalance=u),l!==void 0&&(a.remainingBalance=l),d!==void 0&&(a.usedBalance=d),f!==void 0&&(a.usedDailyBalance=f),this.hasQuotaData(a)?a:null}},pf=class extends hn{async queryQuota(e,n,r){let o=lR(e.baseUrl),a=(await this.fetchJson(o,e,n,r))?.data;if(!a||typeof a!="object")return null;let u={},l=ye(a.totalBalance),d=ye(a.balance);return l!==void 0&&(u.totalBalance=l),d!==void 0&&(u.remainingBalance=d),l!==void 0&&d!==void 0&&(u.usedBalance=Math.max(0,l-d)),this.hasQuotaData(u)?u:null}},mf=class extends hn{async queryQuota(e,n,r){if(!e.apiKey)return null;let s={method:"GET",headers:{Accept:"application/json",Authorization:e.apiKey.trim()},signal:AbortSignal.timeout(n)};if(r)try{let{ProxyAgent:a}=await import("undici");s.dispatcher=new a(new URL(r).toString())}catch{}try{let a=await fetch("https://api.z.ai/api/monitor/usage/quota/limit",s);if(!a.ok)return null;let u=await a.json(),l=Array.isArray(u?.data?.limits)?u.data.limits:[],d=null,f=null,p=null;for(let b of l)b.type==="TOKENS_LIMIT"?b.unit===3?d=b:b.unit===6?f=b:d||(d=b):b.type==="TIME_LIMIT"&&(p=b);let m={};if(d){let b=ye(d.currentValue),w=ye(d.usage),y=ye(d.remaining),g=ye(d.percentage);b!==void 0?m.usedDailyBalance=b:g!==void 0&&(m.usedDailyBalance=g,m.limitDaily=100),w!==void 0?m.limitDaily=w:b!==void 0&&y!==void 0&&(m.limitDaily=b+y),d.nextResetTime&&(m.resetTime=new Date(d.nextResetTime).toISOString())}if(f){let b=ye(f.currentValue),w=ye(f.usage),y=ye(f.remaining),g=ye(f.percentage);b!==void 0?m.usedBalance=b:g!==void 0&&(m.usedBalance=g,m.totalBalance=100),w!==void 0?m.totalBalance=w:b!==void 0&&y!==void 0&&(m.totalBalance=b+y),f.nextResetTime&&!m.resetTime&&(m.resetTime=new Date(f.nextResetTime).toISOString())}if(p){if(m.usedDailyBalance===void 0){let b=ye(p.currentValue);b!==void 0&&(m.usedDailyBalance=b)}if(m.limitDaily===void 0){let b=ye(p.usage),w=ye(p.currentValue),y=ye(p.remaining);b!==void 0?m.limitDaily=b:w!==void 0&&y!==void 0&&(m.limitDaily=w+y)}p.nextResetTime&&!m.resetTime&&(m.resetTime=new Date(p.nextResetTime).toISOString())}return this.hasQuotaData(m)?m:null}catch{return null}}},gf=class extends hn{async queryQuota(e,n,r){if(!e.quotaToken)return null;let o={method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)",Origin:"https://bailian.console.aliyun.com",Referer:"https://bailian.console.aliyun.com/cn-beijing",Cookie:e.quotaToken},signal:AbortSignal.timeout(n)};if(r)try{let{ProxyAgent:u}=await import("undici");o.dispatcher=new u(new URL(r).toString())}catch{}let s=JSON.stringify({Api:"zeldaEasy.broadscope-bailian.codingPlan.queryCodingPlanInstanceInfoV2",V:"1.0",Data:{queryCodingPlanInstanceInfoRequest:{commodityCode:"sfm_codingplan_public_cn",onlyLatestOne:!0},cornerstoneParam:{feTraceId:`ccr-${Date.now()}`,feURL:"https://bailian.console.aliyun.com/cn-beijing",protocol:"V2",console:"ONE_CONSOLE",productCode:"p_efm",switchAgent:10736808,switchUserType:3,domain:"bailian.console.aliyun.com",consoleSite:"BAILIAN_ALIYUN",userNickName:"",userPrincipalName:"",xsp_lang:"zh-CN"}}}),a=new URLSearchParams({params:s,region:"cn-beijing"}).toString();try{let u=await fetch("https://bailian-cs.console.aliyun.com/data/api.json?action=BroadScopeAspnGateway&product=sfm_bailian&api=zeldaEasy.broadscope-bailian.codingPlan.queryCodingPlanInstanceInfoV2",{...o,body:a});if(!u.ok)return null;let d=(await u.json())?.data?.DataV2?.data?.data?.codingPlanInstanceInfos;if(!Array.isArray(d)||d.length===0)return null;let f=d[0]?.codingPlanQuotaInfo;if(!f)return null;let p={},m=ye(f.per5HourUsedQuota),b=ye(f.per5HourTotalQuota);m!==void 0&&(p.usedDailyBalance=m),b!==void 0&&(p.limitDaily=b);let w=ye(f.perWeekUsedQuota),y=ye(f.perWeekTotalQuota);return w!==void 0&&(p.usedBalance=w),y!==void 0&&(p.totalBalance=y),this.hasQuotaData(p)?p:null}catch{return null}}},yf=class extends hn{async queryQuota(e,n,r){if(!e.quotaToken)return null;let s={method:"GET",headers:{Accept:"application/json","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)",Origin:"https://maas.xfyun.cn",Referer:"https://maas.xfyun.cn/packageSubscription",Authorization:(S_(e.quotaToken,"atp-auth-token")||S_(e.quotaToken,"tenantToken")||e.quotaToken).trim(),Cookie:e.quotaToken},signal:AbortSignal.timeout(n)};if(r)try{let{ProxyAgent:a}=await import("undici");s.dispatcher=new a(new URL(r).toString())}catch{}try{let a=await fetch("https://maas.xfyun.cn/api/v1/gpt-finetune/coding-plan/list?page=1&size=10",s);if(!a.ok)return null;let u=await a.json();if(u?.succeed===!1||u?.failed===!0)return null;let l=dR(u,e.apiKey),d=l?.codingPlanUsageDTO||l?.usage||l;if(!d||typeof d!="object")return null;let f={},p=ye(d.rp5hUsage),m=ye(d.rp5hLimit);p!==void 0&&(f.usedDailyBalance=p),m!==void 0&&(f.limitDaily=m);let b=ye(d.rpwUsage),w=ye(d.rpwLimit);return b!==void 0&&(f.usedBalance=b),w!==void 0&&(f.totalBalance=w),f.remainingBalance===void 0&&w!==void 0&&b!==void 0&&(f.remainingBalance=Math.max(0,w-b)),this.hasQuotaData(f)?f:null}catch{return null}}},_f=class extends hn{async queryQuota(e,n,r){let o=e.quotaToken||e.apiKey;if(!o)return null;let s={method:"GET",headers:{Accept:"application/json",Authorization:`Bearer ${o.trim()}`},signal:AbortSignal.timeout(n)};if(r)try{let{ProxyAgent:a}=await import("undici");s.dispatcher=new a(new URL(r).toString())}catch{}try{let a=await fetch("https://api.kimi.com/coding/v1/usages",s);if(!a.ok)return null;let u=await a.json(),l={},d=Array.isArray(u?.limits)?u.limits:[];if(d.length>0&&d[0]?.detail){let p=d[0].detail,m=ye(p.limit),b=ye(p.remaining),w=p.resetTime;m!==void 0&&b!==void 0&&(l.usedDailyBalance=Math.max(0,m-b),l.limitDaily=m),w&&(l.resetTime=new Date(w).toISOString())}let f=u?.usage;if(f){let p=ye(f.limit),m=ye(f.remaining),b=ye(f.used),w=f.resetTime;p!==void 0&&(l.totalBalance=p,b!==void 0?l.usedBalance=b:m!==void 0&&(l.usedBalance=Math.max(0,p-m),l.remainingBalance=m)),w&&(l.resetTime7d=new Date(w).toISOString(),l.resetTime||(l.resetTime=l.resetTime7d))}return this.hasQuotaData(l)?l:null}catch{return null}}},bf=class extends hn{async queryQuota(e,n,r){let o=e.quotaToken||e.apiKey;if(!o)return null;let s=wf(e.baseUrl)||"api.minimaxi.com",a=s.endsWith(".minimax.io")||s==="minimax.io"?"api.minimax.io":"api.minimaxi.com";try{let u=[`https://${a}/v1/token_plan/remains`,`https://${a}/v1/api/openplatform/coding_plan/remains`],l=null;for(let S of u)if(l=await this.fetchJson(S,e,n,r,o.trim()),l)break;if(!l)return null;if(l?.base_resp){let S=l.base_resp.status_code;if(S!==void 0&&S!==0)return null}let d=Array.isArray(l?.model_remains)?l.model_remains:[];if(d.length===0)return null;let f=d[0],p={},m=ye(f.current_interval_total_count),b=ye(f.current_interval_usage_count),w=ye(f.current_interval_remaining_percent),y=ye(f.end_time);m!==void 0&&b!==void 0&&m>0?(p.usedDailyBalance=Math.max(0,m-b),p.limitDaily=m):w!==void 0&&(p.limitDaily=100,p.usedDailyBalance=Math.max(0,100-w)),y&&(p.resetTime=new Date(y).toISOString());let g=ye(f.current_weekly_total_count),_=ye(f.current_weekly_usage_count),A=ye(f.current_weekly_remaining_percent),C=ye(f.weekly_end_time);return g!==void 0&&_!==void 0&&g>0?(p.usedBalance=Math.max(0,g-_),p.remainingBalance=_,p.totalBalance=g):A!==void 0&&(p.totalBalance=100,p.usedBalance=Math.max(0,100-A),p.remainingBalance=A),C&&!p.resetTime&&(p.resetTime=new Date(C).toISOString()),this.hasQuotaData(p)?p:null}catch{return null}}},nR=new ff,rR=new hf,oR=new pf,sR=new mf,iR=new gf,aR=new yf,uR=new _f,cR=new bf;function Su(t){let e=wf(t);return e?e==="kimi.com"||e.endsWith(".kimi.com")||e==="moonshot.cn"||e.endsWith(".moonshot.cn")?uR:e==="minimaxi.com"||e.endsWith(".minimaxi.com")||e==="minimax.io"||e.endsWith(".minimax.io")?cR:e==="deepseek.com"||e.endsWith(".deepseek.com")?nR:e==="openrouter.ai"||e.endsWith(".openrouter.ai")?rR:e==="siliconflow.com"||e.endsWith(".siliconflow.com")||e==="siliconflow.cn"||e.endsWith(".siliconflow.cn")?oR:e==="bigmodel.cn"||e.endsWith(".bigmodel.cn")?sR:e==="dashscope.aliyuncs.com"||e.endsWith(".dashscope.aliyuncs.com")?iR:e==="xf-yun.com"||e.endsWith(".xf-yun.com")||e==="xfyun.cn"||e.endsWith(".xfyun.cn")||e==="xfyun.com"||e.endsWith(".xfyun.com")?aR:null:null}function lR(t){let e=wf(t);return e?.endsWith(".siliconflow.cn")||e==="siliconflow.cn"?"https://api.siliconflow.cn/v1/user/info":"https://api.siliconflow.com/v1/user/info"}function dR(t,e){let n=Cf(t);if(n.length===0)return null;let r=String(e||"").split(":").map(s=>s.trim()).filter(Boolean);return n.find(s=>{let a=s?.codingPlanAppCredentialDTO||s?.appCredential||s,u=String(a?.apiKey||a?.api_key||"").trim();return u&&r.some(l=>l.includes(u)||u.includes(l))})||n[0]}function Cf(t){return!t||typeof t!="object"?[]:!Array.isArray(t)&&t.codingPlanUsageDTO?[t]:Array.isArray(t)?t.flatMap(e=>Cf(e)):Object.values(t).flatMap(e=>Cf(e))}function S_(t,e){let n=t.match(new RegExp(`(?:^|;\\s*)${e}=([^;]+)`));return n?decodeURIComponent(n[1]):void 0}function wf(t){try{return new URL(t).hostname.toLowerCase()}catch{return null}}function ye(t){if(typeof t=="number")return Number.isFinite(t)?t:void 0;if(typeof t!="string")return;let e=t.trim().replace(/,/g,"");if(!e)return;let n=Number(e);return Number.isFinite(n)?n:void 0}var fR={enabled:!0,quotaProbeIntervalMinutes:10,probeTimeoutMs:15e3,initialDelayMs:5e3,excludeProviders:[]};function hR(t){return t===!0||t==="true"||t===1||t==="1"}function pR(t){let e=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),r=String(t.getDate()).padStart(2,"0");return`${e}-${n}-${r}`}function mR(t){try{let e=new URL(t),n=e.pathname;return n.endsWith("/v1/messages")?n=n.slice(0,-12):n.endsWith("/messages")?n=n.slice(0,-9):n.endsWith("/v1/chat/completions")?n=n.slice(0,-20):n.endsWith("/chat/completions")&&(n=n.slice(0,-17)),n.endsWith("/v1")||(n=n.endsWith("/")?`${n}v1`:`${n}/v1`),e.pathname=`${n}/models`,e.toString()}catch{return null}}function gR(t){try{let e=new URL(t).hostname.toLowerCase();return e.includes("moonshot")||e.includes("kimi")}catch{return!1}}async function Ef(t,e,n){let r=mR(t.baseUrl);if(!r)return{success:!1,error:"Cannot derive models endpoint from baseUrl"};try{let o={method:"GET",headers:{Authorization:`Bearer ${t.apiKey}`},signal:AbortSignal.timeout(e)};if(n)try{let{ProxyAgent:u}=await import("undici");o.dispatcher=new u(new URL(n).toString())}catch{}let s=await fetch(r,o);if(s.headers&&Wo(t.name,t.baseUrl,s.headers),s.ok)return{success:!0,headers:s.headers};if(s.status===429)return{success:!1,error:`HTTP 429: ${(await s.text().catch(()=>"")).slice(0,100)||"Rate limited"}`,headers:s.headers};if(s.status>=400&&s.status<500)return{success:!0,headers:s.headers};let a=await s.text().catch(()=>"");return{success:!1,error:`HTTP ${s.status}: ${a.slice(0,100)}`,headers:s.headers}}catch(o){return{success:!1,error:o?.message||o?.toString()||"Unknown probe error"}}}async function yR(t,e,n,r){let o=t.wakeupModel||(Array.isArray(t.models)?t.models[0]:void 0);if(!o)return{success:!1,error:"No models configured for provider"};let s=t.baseUrl.includes("anthropic")||o.includes("claude"),a=s?t.baseUrl.includes("/messages")?t.baseUrl:`${t.baseUrl.replace(/\/$/,"")}/v1/messages`:t.baseUrl.includes("/chat/completions")?t.baseUrl:`${t.baseUrl.replace(/\/$/,"")}/chat/completions`;try{let u={"Content-Type":"application/json"};s?(u["x-api-key"]=t.apiKey,u["anthropic-version"]="2023-06-01"):u.Authorization=`Bearer ${t.apiKey}`;let l={method:"POST",headers:u,body:JSON.stringify({model:o,messages:[{role:"user",content:"ping"}],max_tokens:1}),signal:AbortSignal.timeout(e)};if(n)try{let{ProxyAgent:p}=await import("undici");l.dispatcher=new p(new URL(n).toString())}catch{}r?.info(`Sending scheduled wake-up call to provider ${t.name} using model ${o}...`);let d=await fetch(a,l);if(d.ok)return{success:!0};let f=await d.text().catch(()=>"");return{success:!1,error:`HTTP ${d.status}: ${f.slice(0,200)||"Unknown error"}`}}catch(u){return{success:!1,error:u?.message||u?.toString()||"Unknown wake-up error"}}}async function _R(t,e,n,r,o){let s=t.baseUrl.includes("anthropic")||e.includes("claude"),a=s?t.baseUrl.includes("/messages")?t.baseUrl:`${t.baseUrl.replace(/\/$/,"")}/v1/messages`:t.baseUrl.includes("/chat/completions")?t.baseUrl:`${t.baseUrl.replace(/\/$/,"")}/chat/completions`;try{let u={"Content-Type":"application/json"};s?(u["x-api-key"]=t.apiKey,u["anthropic-version"]="2023-06-01"):u.Authorization=`Bearer ${t.apiKey}`;let l={method:"POST",headers:u,body:JSON.stringify({model:e,messages:[{role:"user",content:"ping"}],max_tokens:1}),signal:AbortSignal.timeout(n)};if(r)try{let{ProxyAgent:p}=await import("undici");l.dispatcher=new p(new URL(r).toString())}catch{}o?.debug?.(`Sending independent ping to rate-limited model ${t.name} (${e})...`);let d=await fetch(a,l);if(d.ok)return{success:!0};let f=await d.text().catch(()=>"");return{success:!1,error:`HTTP ${d.status}: ${f.slice(0,200)||"Unknown error"}`}}catch(u){return{success:!1,error:u?.message||u?.toString()||"Unknown ping error"}}}var Os=class{config;quotaProbeTimer;healthProbeTimer;wakeupTimer;rateLimitProbeTimer;lastWakeupDate=new Map;getProviders;getHttpsProxy;logger;getConfig;running=!1;constructor(e,n,r,o,s){this.config={...fR,...n},this.getProviders=e,this.getHttpsProxy=r,this.logger=o,this.getConfig=s}start(){if(this.running)return;let e=this.isWakeupGloballyEnabled();!this.config.enabled&&!e||(this.running=!0,setTimeout(()=>{this.running&&(this.config.enabled&&(this.runQuotaProbe(),this.runHealthProbe(),this.runRateLimitProbe()),this.runScheduledWakeup())},this.config.initialDelayMs),this.config.enabled&&(this.quotaProbeTimer=setInterval(()=>this.runQuotaProbe(),this.config.quotaProbeIntervalMinutes*60*1e3),this.healthProbeTimer=setInterval(()=>this.runHealthProbe(),300*1e3),this.rateLimitProbeTimer=setInterval(()=>this.runRateLimitProbe(),120*1e3)),this.wakeupTimer=setInterval(()=>this.runScheduledWakeup(),60*1e3),this.logger?.info("Active probe service started"))}stop(){this.running=!1,this.quotaProbeTimer&&(clearInterval(this.quotaProbeTimer),this.quotaProbeTimer=void 0),this.healthProbeTimer&&(clearInterval(this.healthProbeTimer),this.healthProbeTimer=void 0),this.rateLimitProbeTimer&&(clearInterval(this.rateLimitProbeTimer),this.rateLimitProbeTimer=void 0),this.wakeupTimer&&(clearInterval(this.wakeupTimer),this.wakeupTimer=void 0),this.logger?.info("Active probe service stopped")}async runQuotaProbe(){let e=this.getProviders().filter(a=>a?.name&&a.enabled!==!1&&!this.config.excludeProviders.includes(a.name)),n=this.getHttpsProxy?.(),r=Je();if(e.length===0)return;let o=[];for(let a of e){let u=Su(a.baseUrl),l=Array.isArray(a.models)?a.models:[];u&&o.push({provider:a.name,models:l,type:"quota-adapter",promise:u.queryQuota(a,this.config.probeTimeoutMs,n).then(d=>{if(d){ki(a.name,d),this.logger?.debug?.(`Stored quota probe result for ${a.name}`);let f=d.limitDaily!==void 0&&d.usedDailyBalance!==void 0&&d.usedDailyBalance>=d.limitDaily,p=d.totalBalance!==void 0&&d.usedBalance!==void 0&&d.usedBalance>=d.totalBalance;if(f||p){let m=f?`Quota exhausted: 5h limit reached (${d.usedDailyBalance}/${d.limitDaily})`:`Quota exhausted: 7d balance depleted (${d.usedBalance}/${d.totalBalance})`;for(let b of l){if(r.getState(a.name,b)?.rateLimitUntil){this.logger?.debug?.(`Skip forceOpen for ${a.name} (${b}): already rate-limited with active cooldown`);continue}r.forceOpen(a.name,b,m)}this.logger?.warn?.(`${m} for ${a.name}, marked as unhealthy`)}else for(let m of l){let b=r.getState(a.name,m);b&&b.status==="open"&&b.lastError?.includes("Quota exhausted")&&(r.recover(a.name,m),this.logger?.info?.(`Quota recovered for ${a.name} (${m}), marked as healthy`))}}})}),gR(a.baseUrl)&&o.push({provider:a.name,models:l,type:"rate-limit-headers",promise:Ef(a,this.config.probeTimeoutMs,n).then(()=>{})})}if(o.length===0)return;this.logger?.debug?.(`Running quota probe with ${o.length} tasks for ${e.length} providers`);let s=await Promise.allSettled(o.map(a=>a.promise));for(let a=0;a<o.length;a++){let u=s[a];if(u.status==="rejected"){let l=o[a];this.logger?.warn?.(`Quota probe failed for ${l.provider} (${l.type}): ${u.reason}`)}}}async runHealthProbe(){let e=Je(),n=this.getProviders().filter(s=>s?.name&&s.enabled!==!1&&!this.config.excludeProviders.includes(s.name)),r=this.getHttpsProxy?.();if(n.length===0)return;this.logger?.debug?.(`Running health probe for ${n.length} providers`);let o=await Promise.allSettled(n.map(s=>Ef(s,this.config.probeTimeoutMs,r)));for(let s=0;s<n.length;s++){let a=n[s],u=o[s],l=Array.isArray(a.models)?a.models:[];if(u.status==="fulfilled"){let d=u.value;if(d.success){let f=0;for(let p of l){let m=e.getState(a.name,p);if(m&&m.status==="open"){let b=m.lastError?.includes("Quota exhausted"),w=m.rateLimitUntil||m.lastError&&(m.lastError.includes("429")||m.lastError.toLowerCase().includes("rate limit")||m.lastError.toLowerCase().includes("rate_limit")||m.lastError.toLowerCase().includes("too many requests")||m.lastError.toLowerCase().includes("\u9650\u6D41"));if(b){this.logger?.debug?.(`Skipping health probe recovery for ${a.name} (${p}) because quota is exhausted`);continue}if(w||m.rateLimitUntil){this.logger?.debug?.(`Skipping health probe recovery for rate-limited ${a.name} (${p})`);continue}}e.recordSuccess(a.name,p),f++}f>0&&this.logger?.info?.(`Health probe succeeded for ${a.name}`)}else{for(let f of l)e.recordFailure(a.name,f,d.error);this.logger?.warn?.(`Health probe failed for ${a.name}: ${d.error}`)}}else{for(let d of l)e.recordFailure(a.name,d,u.reason?.message||"Probe error");this.logger?.warn?.(`Health probe error for ${a.name}: ${u.reason}`)}}}async runRateLimitProbe(){let e=Je(),n=e.getRateLimitedModels();if(n.length===0)return;let r=this.getProviders(),o=this.getHttpsProxy?.(),s=this.config.probeTimeoutMs;this.logger?.debug?.(`Running rate-limit recovery probe for ${n.length} model(s)`);for(let a of n){let[u,...l]=a.split(","),d=l.join(",");if(!u||!d)continue;let f=e.getState(u,d);if(!f||!f.rateLimitUntil)continue;if(Date.now()>=f.rateLimitUntil){e.recover(u,d),this.logger?.info?.(`Rate-limit cooldown expired, auto-recovered ${a}`);continue}let p=r.find(m=>m?.name===u&&m.enabled!==!1);if(!p){this.logger?.warn?.(`Provider ${u} not found or disabled for rate-limit probe`);continue}try{let m=await _R(p,d,s,o,this.logger);if(m.success)this.logger?.info?.(`Rate-limit probe succeeded for ${a}, recovering model`),e.recover(u,d);else if(m.error&&(m.error.includes("429")||m.error.toLowerCase().includes("rate limit")||m.error.toLowerCase().includes("rate_limit")||m.error.toLowerCase().includes("too many requests")||m.error.toLowerCase().includes("\u9650\u6D41"))){let b=Date.now();f.rateLimitUntil&&f.rateLimitUntil>b?f.rateLimitUntil+=120*1e3:f.rateLimitUntil=b+120*1e3,this.logger?.debug?.(`Rate-limit probe for ${a} confirmed still limited, extending cooldown`)}else this.logger?.debug?.(`Rate-limit probe for ${a} returned non-rate-limit error: ${m.error?.slice(0,100)}`)}catch(m){this.logger?.warn?.(`Rate-limit probe exception for ${a}: ${m?.message||m}`)}}}async runScheduledWakeup(){if(!this.isWakeupGloballyEnabled())return;let e=this.getProviders().filter(l=>l?.name&&l.enabled!==!1&&l.wakeupEnabled===!0);if(e.length===0)return;let n=new Date,r=n.getHours(),o=n.getMinutes(),s=pR(n),a=this.getHttpsProxy?.(),u=this.getConfig&&this.getConfig("WAKEUP_TIME")||"06:00";for(let l of e){let d=l.wakeupTime||u,[f,p]=d.split(":"),m=parseInt(f,10),b=parseInt(p,10);if(isNaN(m)||isNaN(b))continue;let w=r>m||r===m&&o>=b,y=(m*60+b)*6e4-(r*60+o)*6e4,g=y>0&&y<=300*1e3;(w||g)&&!this.hasWakeupFiredToday(l.name,s)&&(this.logger?.info?.(`Scheduled wake-up triggered for provider ${l.name} at ${d}`),yR(l,3e4,a,this.logger).then(_=>{_.success?this.logger?.info?.(`Successfully woke up provider ${l.name}`):this.logger?.error?.(`Failed to wake up provider ${l.name}: ${_.error}`)}).catch(_=>{this.logger?.error?.(`Error in wake-up task for ${l.name}: ${_}`)}))}}isWakeupGloballyEnabled(){return this.getConfig?hR(this.getConfig("WAKEUP_ENABLED")):!1}hasWakeupFiredToday(e,n){return this.lastWakeupDate.get(e)===n?!0:(this.lastWakeupDate.set(e,n),!1)}async probeProviderManually(e){let r=this.getProviders().find(u=>u.name===e);if(!r)return this.logger?.warn?.(`Provider ${e} not found for manual probe`),!1;if(r.enabled===!1)return this.logger?.warn?.(`Provider ${e} is disabled, skipping manual probe`),!1;let o=this.getHttpsProxy?.(),s=await Ef(r,this.config.probeTimeoutMs,o),a=Array.isArray(r.models)?r.models:[];if(s.success)for(let u of a)Je().recordSuccess(r.name,u);else for(let u of a)Je().recordFailure(r.name,u,s.error);return s.success}},nr=null;function kf(t,e,n,r,o){return nr||(nr=new Os(t,e,n,r,o)),nr}function Tu(t,e,n,r,o){let s=kf(t,e,n,r,o);return s.start(),s}function vu(){nr&&nr.stop()}function T_(){nr&&(nr.stop(),nr=null)}Wn();var Af=class{plugins=new Map;pluginInstances=new Map;registerPlugin(e,n={}){this.pluginInstances.set(e.name,e),this.plugins.set(e.name,{name:e.name,enabled:n.enabled!==!1,options:n})}async enablePlugin(e,n){let r=this.plugins.get(e),o=this.pluginInstances.get(e);if(!r||!o)throw new Error(`Plugin ${e} not found`);r.enabled&&await n.register(o.register,r.options)}async enablePlugins(e){for(let[n,r]of this.plugins)if(r.enabled)try{await this.enablePlugin(n,e)}catch(o){let s=o instanceof Error?o.message:String(o);e.log?.error(`Failed to enable plugin ${n}: ${s}`)}}getPlugins(){return Array.from(this.plugins.values())}getPlugin(e){return this.pluginInstances.get(e)}hasPlugin(e){return this.pluginInstances.has(e)}isPluginEnabled(e){return this.plugins.get(e)?.enabled||!1}setPluginEnabled(e,n){let r=this.plugins.get(e);r&&(r.enabled=n)}removePlugin(e){this.plugins.delete(e),this.pluginInstances.delete(e)}clear(){this.plugins.clear(),this.pluginInstances.clear()}},Sf=new Af;var B_=xe(O_(),1);var Or=class extends TransformStream{buffer="";currentEvent={};constructor(){super({transform:(e,n)=>{this.buffer+=e;let r=this.buffer.split(`
|
|
362
|
+
Stack: ${e.stack}`)}}async registerDefaultTransformersInternal(){try{Object.values(a_).forEach(e=>{if("TransformerName"in e&&typeof e.TransformerName=="string")this.registerTransformer(e.TransformerName,e);else{let n=new e;n&&typeof n=="object"&&(n.logger=this.logger),this.registerTransformer(n.name,n)}})}catch(e){this.logger.error({error:e},"transformer regist error:")}}async loadFromConfig(){let e=this.configService.get("transformers",[]);for(let n of e)await this.registerTransformerFromConfig(n)}};var u_=require("tiktoken"),Ss=class{type="tiktoken";name;encoding;constructor(e="cl100k_base"){this.name=`tiktoken-${e}`;try{this.encoding=(0,u_.get_encoding)(e)}catch{throw new Error(`Failed to initialize tiktoken encoding: ${e}`)}}async initialize(){if(!this.encoding)throw new Error("Tiktoken encoding not initialized")}async countTokens(e){let n=this.encoding;if(!n)throw new Error("Encoding not initialized");let r=0,{messages:o,system:s,tools:a}=e;return Array.isArray(o)&&o.forEach(u=>{typeof u.content=="string"?r+=n.encode(u.content).length:Array.isArray(u.content)&&u.content.forEach(l=>{if(l.type==="text")r+=n.encode(l.text).length;else if(l.type==="tool_use")r+=n.encode(JSON.stringify(l.input)).length;else if(l.type==="tool_result"){let d=typeof l.content=="string"?l.content:JSON.stringify(l.content);r+=n.encode(d).length}})}),typeof s=="string"?r+=n.encode(s).length:Array.isArray(s)&&s.forEach(u=>{u.type==="text"&&(typeof u.text=="string"?r+=n.encode(u.text).length:Array.isArray(u.text)&&u.text.forEach(l=>{r+=n.encode(l||"").length}))}),a&&a.forEach(u=>{u.description&&(r+=n.encode(u.name+u.description).length),u.input_schema&&(r+=n.encode(JSON.stringify(u.input_schema)).length)}),r}isInitialized(){return this.encoding!==void 0}encodeText(e){let n=this.encoding;if(!n)throw new Error("Encoding not initialized");return Array.from(n.encode(e))}dispose(){this.encoding&&(this.encoding.free(),this.encoding=void 0)}};var Rs=require("path"),A_=require("os"),Ro=require("fs"),xs=require("fs");var Vv=class{constructor(t){this.trie=this._build_trie(t)}_build_trie(t){let e=Object.create(null);for(let n of t){let r=e;for(let o=0;o<n.length;++o){let s=n[o];r=r[s]??=Object.create(null)}r.end=n}return e}split(t){let e=[],n=t.length,r=0,o=0;for(;o<n;){let s=this.trie,a=null,u=o;for(;u<n&&(s=s[t[u]]);)s.end&&(a=s.end),++u;a?(o>r&&e.push(t.slice(r,o)),e.push(a),o+=a.length,r=o):++o}return r<n&&e.push(t.slice(r)),e}},Kv=Vv,Yv=class{constructor(t){this.content=t.content,this.id=t.id,this.single_word=t.single_word??!1,this.lstrip=t.lstrip??!1,this.rstrip=t.rstrip??!1,this.special=t.special??!1,this.normalized=t.normalized??null}},Qv=Yv,m_=(()=>{let t=[...Array.from({length:94},(o,s)=>s+33),...Array.from({length:12},(o,s)=>s+161),...Array.from({length:82},(o,s)=>s+174)],e=t.slice(),n=0;for(let o=0;o<256;++o)t.includes(o)||(t.push(o),e.push(256+n),n+=1);let r=e.map(o=>String.fromCharCode(o));return Object.fromEntries(t.map((o,s)=>[o,r[s]]))})(),Xv=t=>Object.fromEntries(Object.entries(t).map(([e,n])=>[n,e])),Zv=Xv(m_),c_=".,!?\u2026\u3002\uFF0C\u3001\u0964\u06D4\u060C",eT=new Map([["(?i:'s|'t|'re|'ve|'m|'ll|'d)","(?:'([sS]|[tT]|[rR][eE]|[vV][eE]|[mM]|[lL][lL]|[dD]))"],["(?i:[sdmt]|ll|ve|re)","(?:[sS]|[dD]|[mM]|[tT]|[lL][lL]|[vV][eE]|[rR][eE])"],["[^\\r\\n\\p{L}\\p{N}]?+","[^\\r\\n\\p{L}\\p{N}]?"],["[^\\s\\p{L}\\p{N}]++","[^\\s\\p{L}\\p{N}]+"],[` ?[^(\\s|[${c_}])]+`,` ?[^\\s${c_}]+`]]),vs="\\p{P}\\u0021-\\u002F\\u003A-\\u0040\\u005B-\\u0060\\u007B-\\u007E",dF=new RegExp(`^[${vs}]+$`,"gu"),df=t=>t.replace(/ \./g,".").replace(/ \?/g,"?").replace(/ \!/g,"!").replace(/ ,/g,",").replace(/ \' /g,"'").replace(/ n't/g,"n't").replace(/ 'm/g,"'m").replace(/ 's/g,"'s").replace(/ 've/g,"'ve").replace(/ 're/g,"'re"),wu=(t,e=!0)=>{if(t.Regex!==void 0){let n=t.Regex.replace(/\\([#&~])/g,"$1");for(let[r,o]of eT)n=n.replaceAll(r,o);return new RegExp(n,"gu")}else if(t.String!==void 0){let n=tT(t.String);return new RegExp(e?n:`(${n})`,"gu")}else return console.warn("Unknown pattern type:",t),null},tT=t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),nT=(t,e,n)=>{let r=[],o=0;for(;o<t.length;){if(r.push(t[o]),(e.get(t[o])??n)!==n){++o;continue}for(;++o<t.length&&(e.get(t[o])??n)===n;)e.get(r.at(-1))!==n&&(r[r.length-1]+=t[o])}return r},rT=t=>t>=19968&&t<=40959||t>=13312&&t<=19903||t>=131072&&t<=173791||t>=173824&&t<=177983||t>=177984&&t<=178207||t>=178208&&t<=183983||t>=63744&&t<=64255||t>=194560&&t<=195103,oT=t=>Number.isInteger(t)||typeof t=="bigint",sT=t=>{let e=0;for(let n of t)++e;return e},iT=t=>g_(t.toLowerCase()),Bt=(...t)=>Array.prototype.concat.apply([],t),ff=t=>new Map(Object.entries(t)),aT=(t,e)=>{let n=[],r=0;for(let o of t.matchAll(e)){let s=o[0];r<o.index&&n.push(t.slice(r,o.index)),s.length>0&&n.push(s),r=o.index+s.length}return r<t.length&&n.push(t.slice(r)),n},g_=t=>t.replace(new RegExp("\\p{M}","gu"),""),l_=(t,e,n=[])=>{if(!t||Array.isArray(t)||typeof t!="object")return`${e} must be a valid object`;for(let r of n)if(!(r in t))return`${e} must contain a "${r}" property`;return null},uT=t=>t.match(/\S+/g)||[],cT=class{constructor(){let t=function(...e){return t._call(...e)};return Object.setPrototypeOf(t,new.target.prototype)}},Ts=cT,lT=class extends Ts{constructor(t){super(),this.config=t}_call(t){return this.normalize(t)}},Nn=lT,dT=class extends Nn{tokenize_chinese_chars(t){let e=[];for(let n=0;n<t.length;++n){let r=t[n],o=r.charCodeAt(0);rT(o)?(e.push(" "),e.push(r),e.push(" ")):e.push(r)}return e.join("")}strip_accents(t){return t.normalize("NFD").replace(new RegExp("\\p{Mn}","gu"),"")}is_control(t){switch(t){case" ":case`
|
|
363
|
+
`:case"\r":return!1;default:return new RegExp("^\\p{Cc}|\\p{Cf}|\\p{Co}|\\p{Cs}$","u").test(t)}}clean_text(t){let e=[];for(let n of t){let r=n.charCodeAt(0);r===0||r===65533||this.is_control(n)||(/^\s$/.test(n)?e.push(" "):e.push(n))}return e.join("")}normalize(t){return this.config.clean_text&&(t=this.clean_text(t)),this.config.handle_chinese_chars&&(t=this.tokenize_chinese_chars(t)),this.config.lowercase?(t=t.toLowerCase(),this.config.strip_accents!==!1&&(t=this.strip_accents(t))):this.config.strip_accents&&(t=this.strip_accents(t)),t}},fT=dT,hT=class extends Nn{constructor(t){super(t),this.charsmap=t.precompiled_charsmap??null}normalize(t){return t=t.replace(/[\u0001-\u0008\u000B\u000E-\u001F\u007F\u008F\u009F]/gm,""),t=t.replace(/[\u0009\u000A\u000C\u000D\u00A0\u1680\u2000-\u200F\u2028\u2029\u202F\u205F\u2581\u3000\uFEFF\uFFFD]/gm," "),t.includes("\uFF5E")?t=t.split("\uFF5E").map(e=>e.normalize("NFKC")).join("\uFF5E"):t=t.normalize("NFKC"),t}},pT=hT,mT=class extends Nn{constructor(t){super(t),this.normalizers=(t.normalizers??[]).map(e=>y_(e))}normalize(t){return this.normalizers.reduce((e,n)=>n?n.normalize(e):e,t)}},gT=mT,yT=class extends Nn{normalize(t){let e=wu(this.config.pattern??{});return e===null?t:t.replaceAll(e,this.config.content??"")}},_T=yT,bT=class extends Nn{constructor(){super(...arguments),this.form="NFC"}normalize(t){return t=t.normalize(this.form),t}},Eu=bT,CT=class extends Eu{constructor(){super(...arguments),this.form="NFC"}},wT=CT,ET=class extends Eu{constructor(){super(...arguments),this.form="NFD"}},kT=ET,AT=class extends Eu{constructor(){super(...arguments),this.form="NFKC"}},ST=AT,vT=class extends Eu{constructor(){super(...arguments),this.form="NFKD"}},TT=vT,DT=class extends Nn{normalize(t){return this.config.strip_left&&this.config.strip_right?t=t.trim():(this.config.strip_left&&(t=t.trimStart()),this.config.strip_right&&(t=t.trimEnd())),t}},RT=DT,xT=class extends Nn{normalize(t){return g_(t)}},OT=xT,PT=class extends Nn{normalize(t){return t.toLowerCase()}},FT=PT,IT=class extends Nn{normalize(t){return t=this.config.prepend+t,t}},NT=IT;function BT(t){if(t===null)return null;switch(t.type){case"BertNormalizer":return new fT(t);case"Precompiled":return new pT(t);case"Sequence":return new gT(t);case"Replace":return new _T(t);case"NFC":return new wT(t);case"NFD":return new kT(t);case"NFKC":return new ST(t);case"NFKD":return new TT(t);case"Strip":return new RT(t);case"StripAccents":return new OT(t);case"Lowercase":return new FT(t);case"Prepend":return new NT(t);default:throw new Error(`Unknown Normalizer type: ${t.type}`)}}var y_=BT,MT=class extends Ts{pre_tokenize(t,e){return(Array.isArray(t)?t.map(n=>this.pre_tokenize_text(n,e)):this.pre_tokenize_text(t,e)).flat()}_call(t,e){return this.pre_tokenize(t,e)}},dn=MT,LT=class extends dn{constructor(t){super(),this.config=t,this.add_prefix_space=this.config.add_prefix_space??!1,this.trim_offsets=this.config.trim_offsets??!1,this.use_regex=this.config.use_regex??!0,this.pattern=new RegExp("'s|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S)|\\s+","gu"),this.byte_encoder=m_,this.text_encoder=new TextEncoder}pre_tokenize_text(t,e){return this.add_prefix_space&&!t.startsWith(" ")&&(t=" "+t),(this.use_regex?t.match(this.pattern)||[]:[t]).map(n=>Array.from(this.text_encoder.encode(n),r=>this.byte_encoder[r]).join(""))}},jT=LT,UT=class extends dn{pre_tokenize_text(t,e){return t.match(/\w+|[^\w\s]+/g)||[]}},$T=UT,qT=class extends dn{constructor(t){super(),this.replacement=t.replacement??"\u2581",this.str_rep=t.str_rep||this.replacement,this.prepend_scheme=t.prepend_scheme??"always"}pre_tokenize_text(t,e){let{section_index:n=void 0}=e??{},r=t.replaceAll(" ",this.str_rep);return!r.startsWith(this.replacement)&&(this.prepend_scheme==="always"||this.prepend_scheme==="first"&&n===0)&&(r=this.str_rep+r),[r]}},zT=qT,HT=class extends dn{constructor(t){super(),this.config=t,this.pattern=wu(this.config.pattern??{},this.config.invert??!0)}pre_tokenize_text(t){return this.pattern===null?[]:this.config.invert?t.match(this.pattern)||[]:this.config.behavior?.toLowerCase()==="removed"?t.split(this.pattern).filter(e=>e):aT(t,this.pattern)}},WT=HT,GT=class extends dn{constructor(t){super(),this.config=t,this.pattern=new RegExp(`[^${vs}]+|[${vs}]+`,"gu")}pre_tokenize_text(t){return t.match(this.pattern)||[]}},JT=GT,VT=class extends dn{constructor(t){super(),this.config=t;let e=`[^\\d]+|\\d${this.config.individual_digits?"":"+"}`;this.pattern=new RegExp(e,"gu")}pre_tokenize_text(t){return t.match(this.pattern)||[]}},KT=VT,YT=class extends dn{constructor(){super(),this.pattern=new RegExp(`[^\\s${vs}]+|[${vs}]`,"gu")}pre_tokenize_text(t,e){return t.trim().match(this.pattern)||[]}},QT=YT,XT=class extends dn{constructor(t){super(),this.config=t,this.pattern=wu(this.config.pattern??{}),this.content=this.config.content??""}pre_tokenize_text(t){return this.pattern===null?[t]:[t.replaceAll(this.pattern,this.config.content??"")]}},ZT=XT,eD=class extends dn{constructor(t){super(),this.tokenizers=(t.pretokenizers??[]).map(e=>__(e))}pre_tokenize_text(t,e){return this.tokenizers.reduce((n,r)=>r?r.pre_tokenize(n,e):n,[t])}},tD=eD,nD=class extends dn{pre_tokenize_text(t){return uT(t)}},rD=nD;function oD(t){if(t===null)return null;switch(t.type){case"BertPreTokenizer":return new QT;case"Sequence":return new tD(t);case"Whitespace":return new $T;case"WhitespaceSplit":return new rD;case"Metaspace":return new zT(t);case"ByteLevel":return new jT(t);case"Split":return new WT(t);case"Punctuation":return new JT(t);case"Digits":return new KT(t);case"Replace":return new ZT(t);default:throw new Error(`Unknown PreTokenizer type: ${t.type}`)}}var __=oD,sD=class extends Ts{constructor(t){super(),this.config=t,this.vocab=[],this.tokens_to_ids=new Map,this.unk_token_id=void 0,this.unk_token=void 0,this.end_of_word_suffix=void 0,this.fuse_unk=this.config.fuse_unk??!1}_call(t){let e=this.encode(t);return this.fuse_unk&&(e=nT(e,this.tokens_to_ids,this.unk_token_id)),e}convert_tokens_to_ids(t){return t.map(e=>this.tokens_to_ids.get(e)??this.unk_token_id)}convert_ids_to_tokens(t){return t.map(e=>this.vocab[Number(e)]??this.unk_token)}},ku=sD,iD=class extends ku{constructor(t){super(t),this.max_input_chars_per_word=100,this.tokens_to_ids=ff(t.vocab),this.unk_token_id=this.tokens_to_ids.get(t.unk_token),this.unk_token=t.unk_token,this.max_input_chars_per_word=t.max_input_chars_per_word??100,this.vocab=new Array(this.tokens_to_ids.size);for(let[e,n]of this.tokens_to_ids)this.vocab[n]=e}encode(t){let e=[];for(let n of t){let r=[...n];if(r.length>this.max_input_chars_per_word){e.push(this.unk_token);continue}let o=!1,s=0,a=[];for(;s<r.length;){let u=r.length,l=null;for(;s<u;){let d=r.slice(s,u).join("");if(s>0&&(d=this.config.continuing_subword_prefix+d),this.tokens_to_ids.has(d)){l=d;break}--u}if(l===null){o=!0;break}a.push(l),s=u}o?e.push(this.unk_token):e.push(...a)}return e}},d_=iD,f_=class b_{constructor(e,n){this.is_leaf=e,this.children=n}static default(){return new b_(!1,new Map)}},aD=class{constructor(){this.root=f_.default()}extend(t){for(let e of t)this.push(e)}push(t){let e=this.root;for(let n of t){let r=e.children.get(n);r===void 0&&(r=f_.default(),e.children.set(n,r)),e=r}e.is_leaf=!0}*common_prefix_search(t){let e=this.root;if(e===void 0)return;let n="";for(let r of t){if(n+=r,e=e.children.get(r),e===void 0)return;e.is_leaf&&(yield n)}}},uD=aD,lf=class C_{constructor(e,n,r,o,s){this.token_id=e,this.node_id=n,this.pos=r,this.length=o,this.score=s,this.prev=null,this.backtrace_score=0}clone(){let e=new C_(this.token_id,this.node_id,this.pos,this.length,this.score);return e.prev=this.prev,e.backtrace_score=this.backtrace_score,e}},cD=class{constructor(t,e,n){this.chars=Array.from(t),this.len=this.chars.length,this.bos_token_id=e,this.eos_token_id=n,this.nodes=[],this.begin_nodes=Array.from({length:this.len+1},()=>[]),this.end_nodes=Array.from({length:this.len+1},()=>[]);let r=new lf(this.bos_token_id??0,0,0,0,0),o=new lf(this.eos_token_id??0,1,this.len,0,0);this.nodes.push(r.clone()),this.nodes.push(o.clone()),this.begin_nodes[this.len].push(o),this.end_nodes[0].push(r)}insert(t,e,n,r){let o=this.nodes.length,s=new lf(r,o,t,e,n);this.begin_nodes[t].push(s),this.end_nodes[t+e].push(s),this.nodes.push(s)}viterbi(){let t=this.len,e=0;for(;e<=t;){if(this.begin_nodes[e].length==0)return[];for(let s of this.begin_nodes[e]){s.prev=null;let a=0,u=null;for(let l of this.end_nodes[e]){let d=l.backtrace_score+s.score;(u===null||d>a)&&(u=l.clone(),a=d)}if(u!==null)s.prev=u,s.backtrace_score=a;else return[]}++e}let n=[],r=this.begin_nodes[t][0].prev;if(r===null)return[];let o=r.clone();for(;o.prev!==null;)n.push(o.clone()),o=o.clone().prev.clone();return n.reverse(),n}piece(t){return this.chars.slice(t.pos,t.pos+t.length).join("")}tokens(){return this.viterbi().map(t=>this.piece(t))}token_ids(){return this.viterbi().map(t=>t.token_id)}},lD=cD;function dD(t){if(t.length===0)throw new Error("Array must not be empty");let e=t[0],n=0;for(let r=1;r<t.length;++r)t[r]<e&&(e=t[r],n=r);return[e,n]}var fD=class extends ku{constructor(t,e){super(t);let n=t.vocab.length;this.vocab=new Array(n),this.scores=new Array(n);for(let r=0;r<n;++r)[this.vocab[r],this.scores[r]]=t.vocab[r];this.unk_token_id=t.unk_id,this.unk_token=this.vocab[t.unk_id],this.tokens_to_ids=new Map(this.vocab.map((r,o)=>[r,o])),this.bos_token=" ",this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=e,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.unk_token=this.vocab[this.unk_token_id],this.min_score=dD(this.scores)[0],this.unk_score=this.min_score-10,this.scores[this.unk_token_id]=this.unk_score,this.trie=new uD,this.trie.extend(this.vocab),this.fuse_unk=!0}populate_nodes(t){let e=t.chars,n=1,r=0;for(;r<e.length;){let o=!1,s=[],a=e.slice(r).join(""),u=this.trie.common_prefix_search(a);for(let l of u){s.push(l);let d=this.tokens_to_ids.get(l),f=this.scores[d],p=sT(l);t.insert(r,p,f,d),!o&&p===n&&(o=!0)}o||t.insert(r,n,this.unk_score,this.unk_token_id),r+=n}}tokenize(t){let e=new lD(t,this.bos_token_id,this.eos_token_id);return this.populate_nodes(e),e.tokens()}encode(t){let e=[];for(let n of t){let r=this.tokenize(n);e.push(...r)}return e}},h_=fD,hD=class{constructor(t=(n,r)=>n>r,e=1/0){this._heap=[],this._comparator=t,this._max_size=e}get size(){return this._heap.length}is_empty(){return this.size===0}peek(){return this._heap[0]}push(...t){return this.extend(t)}extend(t){for(let e of t)if(this.size<this._max_size)this._heap.push(e),this._sift_up();else{let n=this._smallest();this._comparator(e,this._heap[n])&&(this._heap[n]=e,this._sift_up_from(n))}return this.size}pop(){let t=this.peek(),e=this.size-1;return e>0&&this._swap(0,e),this._heap.pop(),this._sift_down(),t}replace(t){let e=this.peek();return this._heap[0]=t,this._sift_down(),e}_parent(t){return(t+1>>>1)-1}_left(t){return(t<<1)+1}_right(t){return t+1<<1}_greater(t,e){return this._comparator(this._heap[t],this._heap[e])}_swap(t,e){let n=this._heap[t];this._heap[t]=this._heap[e],this._heap[e]=n}_sift_up(){this._sift_up_from(this.size-1)}_sift_up_from(t){for(;t>0&&this._greater(t,this._parent(t));)this._swap(t,this._parent(t)),t=this._parent(t)}_sift_down(){let t=0;for(;this._left(t)<this.size&&this._greater(this._left(t),t)||this._right(t)<this.size&&this._greater(this._right(t),t);){let e=this._right(t)<this.size&&this._greater(this._right(t),this._left(t))?this._right(t):this._left(t);this._swap(t,e),t=e}}_smallest(){return 2**Math.floor(Math.log2(this.size))-1}},pD=hD,mD=class{constructor(t){this.capacity=t,this.cache=new Map}get(t){if(!this.cache.has(t))return;let e=this.cache.get(t);return this.cache.delete(t),this.cache.set(t,e),e}put(t,e){this.cache.has(t)&&this.cache.delete(t),this.cache.set(t,e),this.cache.size>this.capacity&&this.cache.delete(this.cache.keys().next().value)}clear(){this.cache.clear()}},gD=mD,yD=class extends ku{constructor(t){super(t),this.tokens_to_ids=ff(t.vocab),this.unk_token_id=this.tokens_to_ids.get(t.unk_token),this.unk_token=t.unk_token,this.vocab=new Array(this.tokens_to_ids.size);for(let[n,r]of this.tokens_to_ids)this.vocab[r]=n;let e=Array.isArray(t.merges[0]);this.merges=e?t.merges:t.merges.map(n=>n.split(" ",2)),this.bpe_ranks=new Map(this.merges.map((n,r)=>[JSON.stringify(n),r])),this.end_of_word_suffix=t.end_of_word_suffix,this.continuing_subword_suffix=t.continuing_subword_suffix??null,this.byte_fallback=this.config.byte_fallback??!1,this.byte_fallback&&(this.text_encoder=new TextEncoder),this.ignore_merges=this.config.ignore_merges??!1,this.max_length_to_cache=256,this.cache_capacity=1e4,this.cache=new gD(this.cache_capacity)}clear_cache(){this.cache.clear()}bpe(t){if(t.length===0)return[];let e=this.cache.get(t);if(e!==void 0)return e;let n=Array.from(t);this.end_of_word_suffix&&(n[n.length-1]+=this.end_of_word_suffix);let r=[];if(n.length>1){let o=new pD((u,l)=>u.score<l.score),s={token:n[0],bias:0,prev:null,next:null},a=s;for(let u=1;u<n.length;++u){let l={bias:u/n.length,token:n[u],prev:a,next:null};a.next=l,this.add_node(o,a),a=l}for(;!o.is_empty();){let u=o.pop();if(u.deleted||!u.next||u.next.deleted)continue;if(u.deleted=!0,u.next.deleted=!0,u.prev){let d={...u.prev};u.prev.deleted=!0,u.prev=d,d.prev?d.prev.next=d:s=d}let l={token:u.token+u.next.token,bias:u.bias,prev:u.prev,next:u.next.next};l.prev?(l.prev.next=l,this.add_node(o,l.prev)):s=l,l.next&&(l.next.prev=l,this.add_node(o,l))}for(let u=s;u!==null;u=u.next)r.push(u.token)}else r=n;if(this.continuing_subword_suffix)for(let o=0;o<r.length-1;++o)r[o]+=this.continuing_subword_suffix;return t.length<this.max_length_to_cache&&this.cache.put(t,r),r}add_node(t,e){let n=this.bpe_ranks.get(JSON.stringify([e.token,e.next.token]));n!==void 0&&(e.score=n+e.bias,t.push(e))}encode(t){let e=[];for(let n of t){if(this.ignore_merges&&this.tokens_to_ids.has(n)){e.push(n);continue}let r=this.bpe(n);for(let o of r)if(this.tokens_to_ids.has(o))e.push(o);else if(this.byte_fallback){let s=Array.from(this.text_encoder.encode(o)).map(a=>`<0x${a.toString(16).toUpperCase().padStart(2,"0")}>`);s.every(a=>this.tokens_to_ids.has(a))?e.push(...s):e.push(this.unk_token)}else e.push(this.unk_token)}return e}},p_=yD,_D=class extends ku{constructor(t,e){super(t);let n=t.vocab;this.tokens_to_ids=ff(e.target_lang?n[e.target_lang]:n),this.bos_token=e.bos_token,this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=e.eos_token,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.pad_token=e.pad_token,this.pad_token_id=this.tokens_to_ids.get(this.pad_token),this.unk_token=e.unk_token,this.unk_token_id=this.tokens_to_ids.get(this.unk_token),this.vocab=new Array(this.tokens_to_ids.size);for(let[r,o]of this.tokens_to_ids)this.vocab[o]=r}encode(t){return t}},bD=_D;function CD(t,e){switch(t.type){case"WordPiece":return new d_(t);case"Unigram":return new h_(t,e.eos_token);case"BPE":return new p_(t);default:if(t.vocab)return Array.isArray(t.vocab)?new h_(t,e.eos_token):Object.hasOwn(t,"continuing_subword_prefix")&&Object.hasOwn(t,"unk_token")?Object.hasOwn(t,"merges")?new p_(t):new d_(t):new bD(t,{target_lang:e.target_lang,bos_token:e.bos_token,eos_token:e.eos_token,pad_token:e.pad_token,unk_token:e.unk_token});throw new Error(`Unknown TokenizerModel type: ${t?.type}`)}}var wD=CD,ED=class extends Ts{constructor(t){super(),this.config=t}_call(t,...e){return this.post_process(t,...e)}},Ds=ED,kD=class extends Ds{post_process(t,e=null,n=!0){let r=e===null?this.config.single:this.config.pair,o=[],s=[];for(let a of r)"SpecialToken"in a?n&&(o.push(a.SpecialToken.id),s.push(a.SpecialToken.type_id)):"Sequence"in a&&(a.Sequence.id==="A"?(o=Bt(o,t),s=Bt(s,new Array(t.length).fill(a.Sequence.type_id))):a.Sequence.id==="B"&&(o=Bt(o,e),s=Bt(s,new Array(e.length).fill(a.Sequence.type_id))));return{tokens:o,token_type_ids:s}}},AD=kD,SD=class extends Ds{post_process(t,e=null){return{tokens:e?Bt(t,e):t}}},vD=SD,TD=class extends Ds{constructor(t){super(t),this.sep=t.sep,this.cls=t.cls}post_process(t,e=null,n=!0){n&&(t=Bt([this.cls[0]],t,[this.sep[0]]));let r=new Array(t.length).fill(0);if(e){let o=[],s=n?[this.sep[0]]:[];t=Bt(t,o,e,s),r=Bt(r,new Array(e.length+o.length+s.length).fill(1))}return{tokens:t,token_type_ids:r}}},DD=TD,RD=class extends Ds{constructor(t){super(t),this.sep=t.sep,this.cls=t.cls}post_process(t,e,n=!0){n&&(t=Bt([this.cls[0]],t,[this.sep[0]]));let r=new Array(t.length).fill(0);if(e){let o=n?[this.sep[0]]:[],s=n?[this.sep[0]]:[];t=Bt(t,o,e,s),r=Bt(r,new Array(e.length+o.length+s.length).fill(1))}return{tokens:t,token_type_ids:r}}},xD=RD,OD=class extends Ds{constructor(t){super(t),this.processors=(t.processors??[]).map(e=>w_(e))}post_process(t,e=null,n=!0){let r={tokens:t};for(let o of this.processors)r=o.post_process(r.tokens,e,n);return r}},PD=OD;function FD(t){if(t===null)return null;switch(t.type){case"TemplateProcessing":return new AD(t);case"ByteLevel":return new vD(t);case"BertProcessing":return new DD(t);case"RobertaProcessing":return new xD(t);case"Sequence":return new PD(t);default:throw new Error(`Unknown PostProcessor type: ${t.type}`)}}var w_=FD,ID=class extends Ts{constructor(t){super(),this.config=t,this.added_tokens=[],this.end_of_word_suffix=null,this.trim_offsets="trim_offsets"in t?t.trim_offsets:!1}_call(t){return this.decode(t)}decode(t){return this.decode_chain(t).join("")}},fn=ID,ND=class extends fn{constructor(t){super(t),this.byte_decoder=Zv,this.text_decoder=new TextDecoder("utf-8",{fatal:!1,ignoreBOM:!0}),this.end_of_word_suffix=null}convert_tokens_to_string(t){let e=t.join(""),n=new Uint8Array([...e].map(r=>this.byte_decoder[r]));return this.text_decoder.decode(n)}decode_chain(t){let e=[],n=[];for(let r of t)this.added_tokens.find(o=>o.content===r)!==void 0?(n.length>0&&(e.push(this.convert_tokens_to_string(n)),n=[]),e.push(r)):n.push(r);return n.length>0&&e.push(this.convert_tokens_to_string(n)),e}},BD=ND,MD=class extends fn{constructor(t){super(t),this.cleanup=t.cleanup}decode_chain(t){return t.map((e,n)=>{if(n!==0){let r=this.config.prefix;r&&e.startsWith(r)?e=e.replace(r,""):e=" "+e}return this.cleanup&&(e=df(e)),e})}},LD=MD,jD=class extends fn{constructor(t){super(t),this.replacement=t.replacement??"\u2581"}decode_chain(t){let e=[];for(let n=0;n<t.length;++n){let r=t[n].replaceAll(this.replacement," ");n==0&&r.startsWith(" ")&&(r=r.substring(1)),e.push(r)}return e}},UD=jD,$D=class extends fn{constructor(t){super(t),this.suffix=t.suffix??""}decode_chain(t){return t.map((e,n)=>e.replaceAll(this.suffix,n===t.length-1?"":" "))}},qD=$D,zD=class extends fn{constructor(t){super(t),this.pad_token=t.pad_token??"",this.word_delimiter_token=t.word_delimiter_token??"",this.cleanup=t.cleanup}convert_tokens_to_string(t){if(t.length===0)return"";let e=[t[0]];for(let r=1;r<t.length;++r)t[r]!==e.at(-1)&&e.push(t[r]);let n=e.filter(r=>r!==this.pad_token).join("");return this.cleanup&&(n=df(n).replaceAll(this.word_delimiter_token," ").trim()),n}decode_chain(t){return[this.convert_tokens_to_string(t)]}},HD=zD,WD=class extends fn{constructor(t){super(t),this.decoders=(t.decoders??[]).map(e=>E_(e))}decode_chain(t){return this.decoders.reduce((e,n)=>n.decode_chain(e),t)}},GD=WD,JD=class extends fn{decode_chain(t){let e=wu(this.config.pattern),n=this.config.content??"";return e===null?t:t.map(r=>r.replaceAll(e,n))}},VD=JD,KD=class extends fn{decode_chain(t){return[t.join("")]}},YD=KD,QD=class extends fn{constructor(t){super(t),this.content=t.content??"",this.start=t.start??0,this.stop=t.stop??0}decode_chain(t){return t.map(e=>{let n=0;for(let o=0;o<this.start&&e[o]===this.content;++o)n=o+1;let r=e.length;for(let o=0;o<this.stop;++o){let s=e.length-o-1;if(e[s]===this.content){r=s;continue}else break}return e.slice(n,r)})}},XD=QD,ZD=class extends fn{constructor(t){super(t),this.text_decoder=new TextDecoder}decode_chain(t){let e=[],n=[];for(let r of t){let o=null;if(r.length===6&&r.startsWith("<0x")&&r.endsWith(">")){let s=parseInt(r.slice(3,5),16);isNaN(s)||(o=s)}if(o!==null)n.push(o);else{if(n.length>0){let s=this.text_decoder.decode(Uint8Array.from(n));e.push(s),n=[]}e.push(r)}}if(n.length>0){let r=this.text_decoder.decode(Uint8Array.from(n));e.push(r),n=[]}return e}},eR=ZD;function tR(t){if(t===null)return null;switch(t.type){case"ByteLevel":return new BD(t);case"WordPiece":return new LD(t);case"Metaspace":return new UD(t);case"BPEDecoder":return new qD(t);case"CTC":return new HD(t);case"Sequence":return new GD(t);case"Replace":return new VD(t);case"Fuse":return new YD(t);case"Strip":return new XD(t);case"ByteFallback":return new eR(t);default:throw new Error(`Unknown Decoder type: ${t.type}`)}}var E_=tR,nR=class{constructor(t,e){let n=l_(t,"Tokenizer",["model","decoder","post_processor","pre_tokenizer","normalizer"]);if(n)throw new Error(n);let r=l_(e,"Config");if(r)throw new Error(r);this.tokenizer=t,this.config=e,this.normalizer=y_(this.tokenizer.normalizer),this.pre_tokenizer=__(this.tokenizer.pre_tokenizer),this.model=wD(this.tokenizer.model,this.config),this.post_processor=w_(this.tokenizer.post_processor),this.decoder=E_(this.tokenizer.decoder),this.special_tokens=[],this.all_special_ids=[],this.added_tokens=[],this.tokenizer.added_tokens.forEach(o=>{let s=new Qv(o);this.added_tokens.push(s),this.model.tokens_to_ids.set(s.content,s.id),this.model.vocab[s.id]=s.content,s.special&&(this.special_tokens.push(s.content),this.all_special_ids.push(s.id))}),(this.config.additional_special_tokens??[]).forEach(o=>{this.special_tokens.includes(o)||this.special_tokens.push(o)}),this.decoder&&(this.decoder.added_tokens=this.added_tokens,this.decoder.end_of_word_suffix=this.model.end_of_word_suffix),this.added_tokens_splitter=new Kv(this.added_tokens.map(o=>o.content)),this.added_tokens_map=new Map(this.added_tokens.map(o=>[o.content,o])),this.remove_space=this.config.remove_space,this.clean_up_tokenization_spaces=this.config.clean_up_tokenization_spaces??!0,this.do_lowercase_and_remove_accent=this.config.do_lowercase_and_remove_accent??!1}encode(t,{text_pair:e=null,add_special_tokens:n=!0,return_token_type_ids:r=null}={}){let{tokens:o,token_type_ids:s}=this.tokenize_helper(t,{text_pair:e,add_special_tokens:n}),a=this.model.convert_tokens_to_ids(o),u={ids:a,tokens:o,attention_mask:new Array(a.length).fill(1)};return r&&s&&(u.token_type_ids=s),u}decode(t,e={}){if(!Array.isArray(t)||t.length===0||!oT(t[0]))throw Error("token_ids must be a non-empty array of integers.");let n=this.model.convert_ids_to_tokens(t);e.skip_special_tokens&&(n=n.filter(o=>!this.special_tokens.includes(o)));let r=this.decoder?this.decoder(n):n.join(" ");return this.decoder&&this.decoder.end_of_word_suffix&&(r=r.replaceAll(this.decoder.end_of_word_suffix," "),e.skip_special_tokens&&(r=r.trim())),(e.clean_up_tokenization_spaces??this.clean_up_tokenization_spaces)&&(r=df(r)),r}tokenize(t,{text_pair:e=null,add_special_tokens:n=!1}={}){return this.tokenize_helper(t,{text_pair:e,add_special_tokens:n}).tokens}encode_text(t){if(t===null)return null;let e=this.added_tokens_splitter.split(t);return e.forEach((n,r)=>{let o=this.added_tokens_map.get(n);o&&(o.lstrip&&r>0&&(e[r-1]=e[r-1].trimEnd()),o.rstrip&&r<e.length-1&&(e[r+1]=e[r+1].trimStart()))}),e.flatMap((n,r)=>{if(n.length===0)return[];if(this.added_tokens_map.has(n))return[n];if(this.remove_space===!0&&(n=n.trim().split(/\s+/).join(" ")),this.do_lowercase_and_remove_accent&&(n=iT(n)),this.normalizer!==null&&(n=this.normalizer(n)),n.length===0)return[];let o=this.pre_tokenizer!==null?this.pre_tokenizer(n,{section_index:r}):[n];return this.model(o)})}tokenize_helper(t,{text_pair:e=null,add_special_tokens:n=!0}){let r=this.encode_text(t),o=this.encode_text(e||null);return this.post_processor?this.post_processor(r,o,n):{tokens:Bt(r??[],o??[])}}token_to_id(t){return this.model.tokens_to_ids.get(t)}id_to_token(t){return this.model.vocab[t]}get_added_tokens_decoder(){let t=new Map;for(let e of this.added_tokens)t.set(e.id,e);return t}},k_=nR;var Au=class{type="huggingface";name;modelId;logger;options;tokenizer=null;cacheDir;safeModelName;constructor(e,n,r={}){this.modelId=e,this.logger=n,this.options=r,this.cacheDir=r.cacheDir||(0,Rs.join)((0,A_.homedir)(),".claude-code-router",".huggingface"),this.safeModelName=e.replace(/\//g,"_").replace(/[^a-zA-Z0-9_-]/g,"_"),this.name=`huggingface-${e.split("/").pop()}`}getCachePaths(){let e=(0,Rs.join)(this.cacheDir,this.safeModelName);return{modelDir:e,tokenizerJson:(0,Rs.join)(e,"tokenizer.json"),tokenizerConfig:(0,Rs.join)(e,"tokenizer_config.json")}}ensureDir(e){(0,Ro.existsSync)(e)||(0,Ro.mkdirSync)(e,{recursive:!0})}async loadFromCache(){try{let e=this.getCachePaths();if(!(0,Ro.existsSync)(e.tokenizerJson)||!(0,Ro.existsSync)(e.tokenizerConfig))return null;let[n,r]=await Promise.all([xs.promises.readFile(e.tokenizerJson,"utf-8"),xs.promises.readFile(e.tokenizerConfig,"utf-8")]);return{tokenizerJson:JSON.parse(n),tokenizerConfig:JSON.parse(r)}}catch(e){return this.logger?.warn(`Failed to load from cache: ${e.message}`),null}}async downloadAndCache(){let e=this.getCachePaths(),n={json:`https://huggingface.co/${this.modelId}/resolve/main/tokenizer.json`,config:`https://huggingface.co/${this.modelId}/resolve/main/tokenizer_config.json`};this.logger?.info(`Downloading tokenizer files for ${this.modelId}`);let r=new AbortController,o=setTimeout(()=>r.abort(),this.options.timeout||3e4);try{let[s,a]=await Promise.all([fetch(n.json,{signal:r.signal}),fetch(n.config,{signal:r.signal})]);if(!s.ok)throw new Error(`Failed to fetch tokenizer.json: ${s.statusText}`);let[u,l]=await Promise.all([s.json(),a.ok?a.json():Promise.resolve({})]);return this.ensureDir(e.modelDir),await Promise.all([xs.promises.writeFile(e.tokenizerJson,JSON.stringify(u,null,2)),xs.promises.writeFile(e.tokenizerConfig,JSON.stringify(l,null,2))]),{tokenizerJson:u,tokenizerConfig:l}}finally{clearTimeout(o)}}async initialize(){try{this.logger?.info(`Initializing HuggingFace tokenizer: ${this.modelId}`);let e=this.getCachePaths();this.ensureDir(this.cacheDir);let n=await this.loadFromCache()||await this.downloadAndCache();this.tokenizer=new k_(n.tokenizerJson,n.tokenizerConfig),this.logger?.info(`Tokenizer initialized: ${this.name}`)}catch(e){throw this.logger?.error(`Failed to initialize tokenizer: ${e.message}`),new Error(`Failed to initialize HuggingFace tokenizer for ${this.modelId}: ${e.message}`)}}async countTokens(e){if(!this.tokenizer)throw new Error("Tokenizer not initialized");try{let n=this.extractTextFromRequest(e);return this.tokenizer.encode(n).ids.length}catch(n){throw this.logger?.error(`Error counting tokens: ${n.message}`),n}}isInitialized(){return this.tokenizer!==null}encodeText(e){if(!this.tokenizer)throw new Error("Tokenizer not initialized");return this.tokenizer.encode(e).ids}dispose(){this.tokenizer=null}extractTextFromRequest(e){let n=[],{messages:r,system:o,tools:s}=e;if(Array.isArray(r)){for(let a of r)if(typeof a.content=="string")n.push(a.content);else if(Array.isArray(a.content))for(let u of a.content)u.type==="text"&&u.text?n.push(u.text):u.type==="tool_use"&&u.input?n.push(JSON.stringify(u.input)):u.type==="tool_result"&&n.push(typeof u.content=="string"?u.content:JSON.stringify(u.content))}if(typeof o=="string")n.push(o);else if(Array.isArray(o)){for(let a of o)if(a.type==="text"){if(typeof a.text=="string")n.push(a.text);else if(Array.isArray(a.text))for(let u of a.text)u&&n.push(u)}}if(s)for(let a of s)a.name&&n.push(a.name),a.description&&n.push(a.description),a.input_schema&&n.push(JSON.stringify(a.input_schema));return n.join(" ")}};var Su=class{type="api";name;config;logger;options;constructor(e,n,r={}){if(!e.url||!e.apiKey)throw new Error("API tokenizer requires url and apiKey");this.config={url:e.url,apiKey:e.apiKey,requestFormat:e.requestFormat||"standard",responseField:e.responseField||"token_count",headers:e.headers||{}},this.logger=n,this.options=r;try{let o=new URL(e.url);this.name=`api-${o.hostname}`}catch{this.name=`api-${e.url}`}}async initialize(){try{new URL(this.config.url)}catch{throw new Error(`Invalid API URL: ${this.config.url}`)}}async countTokens(e){try{let n=this.formatRequestBody(e),r={"Content-Type":"application/json",Authorization:`Bearer ${this.config.apiKey}`,...this.config.headers},o=new AbortController,s=setTimeout(()=>o.abort(),this.options.timeout||3e4),a=await fetch(this.config.url,{method:"POST",headers:r,body:JSON.stringify(n),signal:o.signal});if(clearTimeout(s),!a.ok)throw new Error(`API tokenizer request failed: ${a.status} ${a.statusText}`);let u=await a.json();return this.extractTokenCount(u)}catch(n){throw n.name==="AbortError"?new Error("API tokenizer request timed out"):n}}isInitialized(){return!0}dispose(){}formatRequestBody(e){switch(this.config.requestFormat){case"standard":return e;case"openai":return{model:"gpt-3.5-turbo",messages:this.extractMessagesAsOpenAIFormat(e)};case"anthropic":return{messages:e.messages||[],system:e.system,tools:e.tools};case"custom":return{text:this.extractConcatenatedText(e)};default:return e}}extractMessagesAsOpenAIFormat(e){return e.messages?e.messages.map(n=>({role:n.role,content:this.extractTextFromMessage(n)})):[]}extractTextFromMessage(e){return typeof e.content=="string"?e.content:Array.isArray(e.content)?e.content.map(n=>n.type==="text"&&n.text?n.text:n.type==="tool_use"&&n.input?JSON.stringify(n.input):n.type==="tool_result"?typeof n.content=="string"?n.content:JSON.stringify(n.content):"").join(" "):""}extractConcatenatedText(e){let n=[];return e.messages&&e.messages.forEach(r=>{n.push(this.extractTextFromMessage(r))}),typeof e.system=="string"?n.push(e.system):Array.isArray(e.system)&&e.system.forEach(r=>{r.type==="text"&&(typeof r.text=="string"?n.push(r.text):Array.isArray(r.text)&&r.text.forEach(o=>{o&&n.push(o)}))}),e.tools&&e.tools.forEach(r=>{r.name&&n.push(r.name),r.description&&n.push(r.description),r.input_schema&&n.push(JSON.stringify(r.input_schema))}),n.join(" ")}extractTokenCount(e){try{let n=this.config.responseField,r=n.split("."),o=e;for(let s of r){if(o==null)throw new Error(`Field path '${n}' not found in response`);o=o[s]}if(typeof o!="number")throw new Error(`Expected number at field path '${n}', got ${typeof o}`);return o}catch(n){throw this.logger?.error(`Failed to extract token count from API response: ${n.message}. Response: ${JSON.stringify(e)}`),new Error(`Invalid response from API tokenizer: ${n.message}`)}}};var xr=class{tokenizers=new Map;configService;logger;options;fallbackTokenizer;constructor(e,n,r={}){this.configService=e,this.logger=n,this.options={timeout:r.timeout??3e4,...r}}async initialize(){try{this.fallbackTokenizer=new Ss("cl100k_base"),await this.fallbackTokenizer.initialize(),this.tokenizers.set("fallback",this.fallbackTokenizer),this.logger?.info("TokenizerService initialized successfully")}catch(e){throw this.logger?.error(`TokenizerService initialization error: ${e.message}`),e}}async getTokenizer(e){let n=this.getCacheKey(e);if(this.tokenizers.has(n))return this.tokenizers.get(n);let r;try{switch(e.type){case"tiktoken":r=new Ss(e.encoding||"cl100k_base");break;case"huggingface":this.logger?.info(`Initializing HuggingFace tokenizer for model: ${e.model}`),r=new Au(e.model,this.logger,{timeout:this.options.timeout});break;case"api":r=new Su(e,this.logger,{timeout:this.options.timeout});break;default:throw new Error(`Unknown tokenizer type: ${e.type}`)}return this.logger?.info(`Calling initialize() on ${e.type} tokenizer...`),await r.initialize(),this.tokenizers.set(n,r),this.logger?.info(`Tokenizer initialized successfully: ${e.type} (${n})`),r}catch(o){return this.logger?.error(`Failed to initialize ${e.type} tokenizer: ${o.message}`),this.logger?.error(`Error stack: ${o.stack}`),this.fallbackTokenizer||await this.initialize(),this.fallbackTokenizer}}async countTokens(e,n){let r=n?await this.getTokenizer(n):this.fallbackTokenizer;return{tokenCount:await r.countTokens(e),tokenizerUsed:r.name,cached:!1}}getTokenizerConfigForModel(e,n){let o=(this.configService.get("providers")||[]).find(s=>s.name===e);if(o?.tokenizer)return o.tokenizer.models?.[n]?o.tokenizer.models[n]:o.tokenizer.default}dispose(){this.tokenizers.forEach(e=>{try{e.dispose()}catch(n){this.logger?.error(`Error disposing tokenizer: ${n}`)}}),this.tokenizers.clear()}getCacheKey(e){switch(e.type){case"tiktoken":return`tiktoken:${e.encoding||"cl100k_base"}`;case"huggingface":return`hf:${e.model}`;case"api":return`api:${e.url}`;default:return`unknown:${JSON.stringify(e)}`}}};Wn();var hn=class{async fetchJson(e,n,r,o,s){let a=s||n.apiKey;if(!a)return null;let u={method:"GET",headers:{Accept:"application/json",Authorization:`Bearer ${a}`},signal:AbortSignal.timeout(r)};if(o)try{let{ProxyAgent:l}=await import("undici");u.dispatcher=new l(new URL(o).toString())}catch{}try{let l=await fetch(e,u);return l.ok?await l.json():null}catch{return null}}hasQuotaData(e){return e.totalBalance!==void 0||e.usedBalance!==void 0||e.remainingBalance!==void 0||e.usedDailyBalance!==void 0||e.limitDaily!==void 0||e.resetTime!==void 0}},hf=class extends hn{async queryQuota(e,n,r){let o=await this.fetchJson("https://api.deepseek.com/user/balance",e,n,r),a=(Array.isArray(o?.balance_infos)?o.balance_infos:[]).find(l=>ye(l?.total_balance)!==void 0);if(!a)return null;let u=ye(a.total_balance);return u===void 0?null:{totalBalance:u,currency:typeof a.currency=="string"?a.currency:void 0}}},pf=class extends hn{async queryQuota(e,n,r){let s=(await this.fetchJson("https://openrouter.ai/api/v1/key",e,n,r))?.data;if(!s||typeof s!="object")return null;let a={},u=ye(s.limit),l=ye(s.limit_remaining),d=ye(s.usage),f=ye(s.usage_daily);return u!==void 0&&(a.totalBalance=u),l!==void 0&&(a.remainingBalance=l),d!==void 0&&(a.usedBalance=d),f!==void 0&&(a.usedDailyBalance=f),this.hasQuotaData(a)?a:null}},mf=class extends hn{async queryQuota(e,n,r){let o=dR(e.baseUrl),a=(await this.fetchJson(o,e,n,r))?.data;if(!a||typeof a!="object")return null;let u={},l=ye(a.totalBalance),d=ye(a.balance);return l!==void 0&&(u.totalBalance=l),d!==void 0&&(u.remainingBalance=d),l!==void 0&&d!==void 0&&(u.usedBalance=Math.max(0,l-d)),this.hasQuotaData(u)?u:null}},gf=class extends hn{async queryQuota(e,n,r){if(!e.apiKey)return null;let s={method:"GET",headers:{Accept:"application/json",Authorization:e.apiKey.trim()},signal:AbortSignal.timeout(n)};if(r)try{let{ProxyAgent:a}=await import("undici");s.dispatcher=new a(new URL(r).toString())}catch{}try{let a=await fetch("https://api.z.ai/api/monitor/usage/quota/limit",s);if(!a.ok)return null;let u=await a.json(),l=Array.isArray(u?.data?.limits)?u.data.limits:[],d=null,f=null,p=null;for(let b of l)b.type==="TOKENS_LIMIT"?b.unit===3?d=b:b.unit===6?f=b:d||(d=b):b.type==="TIME_LIMIT"&&(p=b);let m={};if(d){let b=ye(d.currentValue),w=ye(d.usage),y=ye(d.remaining),g=ye(d.percentage);b!==void 0?m.usedDailyBalance=b:g!==void 0&&(m.usedDailyBalance=g,m.limitDaily=100),w!==void 0?m.limitDaily=w:b!==void 0&&y!==void 0&&(m.limitDaily=b+y),d.nextResetTime&&(m.resetTime=new Date(d.nextResetTime).toISOString())}if(f){let b=ye(f.currentValue),w=ye(f.usage),y=ye(f.remaining),g=ye(f.percentage);b!==void 0?m.usedBalance=b:g!==void 0&&(m.usedBalance=g,m.totalBalance=100),w!==void 0?m.totalBalance=w:b!==void 0&&y!==void 0&&(m.totalBalance=b+y),f.nextResetTime&&!m.resetTime&&(m.resetTime=new Date(f.nextResetTime).toISOString())}if(p){if(m.usedDailyBalance===void 0){let b=ye(p.currentValue);b!==void 0&&(m.usedDailyBalance=b)}if(m.limitDaily===void 0){let b=ye(p.usage),w=ye(p.currentValue),y=ye(p.remaining);b!==void 0?m.limitDaily=b:w!==void 0&&y!==void 0&&(m.limitDaily=w+y)}p.nextResetTime&&!m.resetTime&&(m.resetTime=new Date(p.nextResetTime).toISOString())}return this.hasQuotaData(m)?m:null}catch{return null}}},yf=class extends hn{async queryQuota(e,n,r){if(!e.quotaToken)return null;let o={method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)",Origin:"https://bailian.console.aliyun.com",Referer:"https://bailian.console.aliyun.com/cn-beijing",Cookie:e.quotaToken},signal:AbortSignal.timeout(n)};if(r)try{let{ProxyAgent:u}=await import("undici");o.dispatcher=new u(new URL(r).toString())}catch{}let s=JSON.stringify({Api:"zeldaEasy.broadscope-bailian.codingPlan.queryCodingPlanInstanceInfoV2",V:"1.0",Data:{queryCodingPlanInstanceInfoRequest:{commodityCode:"sfm_codingplan_public_cn",onlyLatestOne:!0},cornerstoneParam:{feTraceId:`ccr-${Date.now()}`,feURL:"https://bailian.console.aliyun.com/cn-beijing",protocol:"V2",console:"ONE_CONSOLE",productCode:"p_efm",switchAgent:10736808,switchUserType:3,domain:"bailian.console.aliyun.com",consoleSite:"BAILIAN_ALIYUN",userNickName:"",userPrincipalName:"",xsp_lang:"zh-CN"}}}),a=new URLSearchParams({params:s,region:"cn-beijing"}).toString();try{let u=await fetch("https://bailian-cs.console.aliyun.com/data/api.json?action=BroadScopeAspnGateway&product=sfm_bailian&api=zeldaEasy.broadscope-bailian.codingPlan.queryCodingPlanInstanceInfoV2",{...o,body:a});if(!u.ok)return null;let d=(await u.json())?.data?.DataV2?.data?.data?.codingPlanInstanceInfos;if(!Array.isArray(d)||d.length===0)return null;let f=d[0]?.codingPlanQuotaInfo;if(!f)return null;let p={},m=ye(f.per5HourUsedQuota),b=ye(f.per5HourTotalQuota);m!==void 0&&(p.usedDailyBalance=m),b!==void 0&&(p.limitDaily=b);let w=ye(f.perWeekUsedQuota),y=ye(f.perWeekTotalQuota);return w!==void 0&&(p.usedBalance=w),y!==void 0&&(p.totalBalance=y),this.hasQuotaData(p)?p:null}catch{return null}}},_f=class extends hn{async queryQuota(e,n,r){if(!e.quotaToken)return null;let s={method:"GET",headers:{Accept:"application/json","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)",Origin:"https://maas.xfyun.cn",Referer:"https://maas.xfyun.cn/packageSubscription",Authorization:(S_(e.quotaToken,"atp-auth-token")||S_(e.quotaToken,"tenantToken")||e.quotaToken).trim(),Cookie:e.quotaToken},signal:AbortSignal.timeout(n)};if(r)try{let{ProxyAgent:a}=await import("undici");s.dispatcher=new a(new URL(r).toString())}catch{}try{let a=await fetch("https://maas.xfyun.cn/api/v1/gpt-finetune/coding-plan/list?page=1&size=10",s);if(!a.ok)return null;let u=await a.json();if(u?.succeed===!1||u?.failed===!0)return null;let l=fR(u,e.apiKey),d=l?.codingPlanUsageDTO||l?.usage||l;if(!d||typeof d!="object")return null;let f={},p=ye(d.rp5hUsage),m=ye(d.rp5hLimit);p!==void 0&&(f.usedDailyBalance=p),m!==void 0&&(f.limitDaily=m);let b=ye(d.rpwUsage),w=ye(d.rpwLimit);return b!==void 0&&(f.usedBalance=b),w!==void 0&&(f.totalBalance=w),f.remainingBalance===void 0&&w!==void 0&&b!==void 0&&(f.remainingBalance=Math.max(0,w-b)),this.hasQuotaData(f)?f:null}catch{return null}}},bf=class extends hn{async queryQuota(e,n,r){let o=e.quotaToken||e.apiKey;if(!o)return null;let s={method:"GET",headers:{Accept:"application/json",Authorization:`Bearer ${o.trim()}`},signal:AbortSignal.timeout(n)};if(r)try{let{ProxyAgent:a}=await import("undici");s.dispatcher=new a(new URL(r).toString())}catch{}try{let a=await fetch("https://api.kimi.com/coding/v1/usages",s);if(!a.ok)return null;let u=await a.json(),l={},d=Array.isArray(u?.limits)?u.limits:[];if(d.length>0&&d[0]?.detail){let p=d[0].detail,m=ye(p.limit),b=ye(p.remaining),w=p.resetTime;m!==void 0&&b!==void 0&&(l.usedDailyBalance=Math.max(0,m-b),l.limitDaily=m),w&&(l.resetTime=new Date(w).toISOString())}let f=u?.usage;if(f){let p=ye(f.limit),m=ye(f.remaining),b=ye(f.used),w=f.resetTime;p!==void 0&&(l.totalBalance=p,b!==void 0?l.usedBalance=b:m!==void 0&&(l.usedBalance=Math.max(0,p-m),l.remainingBalance=m)),w&&(l.resetTime7d=new Date(w).toISOString(),l.resetTime||(l.resetTime=l.resetTime7d))}return this.hasQuotaData(l)?l:null}catch{return null}}},Cf=class extends hn{async queryQuota(e,n,r){let o=e.quotaToken||e.apiKey;if(!o)return null;let s=Ef(e.baseUrl)||"api.minimaxi.com",a=s.endsWith(".minimax.io")||s==="minimax.io"?"api.minimax.io":"api.minimaxi.com";try{let u=[`https://${a}/v1/token_plan/remains`,`https://${a}/v1/api/openplatform/coding_plan/remains`],l=null;for(let S of u)if(l=await this.fetchJson(S,e,n,r,o.trim()),l)break;if(!l)return null;if(l?.base_resp){let S=l.base_resp.status_code;if(S!==void 0&&S!==0)return null}let d=Array.isArray(l?.model_remains)?l.model_remains:[];if(d.length===0)return null;let f=d[0],p={},m=ye(f.current_interval_total_count),b=ye(f.current_interval_usage_count),w=ye(f.current_interval_remaining_percent),y=ye(f.end_time);m!==void 0&&b!==void 0&&m>0?(p.usedDailyBalance=Math.max(0,m-b),p.limitDaily=m):w!==void 0&&(p.limitDaily=100,p.usedDailyBalance=Math.max(0,100-w)),y&&(p.resetTime=new Date(y).toISOString());let g=ye(f.current_weekly_total_count),_=ye(f.current_weekly_usage_count),A=ye(f.current_weekly_remaining_percent),C=ye(f.weekly_end_time);return g!==void 0&&_!==void 0&&g>0?(p.usedBalance=Math.max(0,g-_),p.remainingBalance=_,p.totalBalance=g):A!==void 0&&(p.totalBalance=100,p.usedBalance=Math.max(0,100-A),p.remainingBalance=A),C&&!p.resetTime&&(p.resetTime=new Date(C).toISOString()),this.hasQuotaData(p)?p:null}catch{return null}}},rR=new hf,oR=new pf,sR=new mf,iR=new gf,aR=new yf,uR=new _f,cR=new bf,lR=new Cf;function vu(t){let e=Ef(t);return e?e==="kimi.com"||e.endsWith(".kimi.com")||e==="moonshot.cn"||e.endsWith(".moonshot.cn")?cR:e==="minimaxi.com"||e.endsWith(".minimaxi.com")||e==="minimax.io"||e.endsWith(".minimax.io")?lR:e==="deepseek.com"||e.endsWith(".deepseek.com")?rR:e==="openrouter.ai"||e.endsWith(".openrouter.ai")?oR:e==="siliconflow.com"||e.endsWith(".siliconflow.com")||e==="siliconflow.cn"||e.endsWith(".siliconflow.cn")?sR:e==="bigmodel.cn"||e.endsWith(".bigmodel.cn")?iR:e==="dashscope.aliyuncs.com"||e.endsWith(".dashscope.aliyuncs.com")?aR:e==="xf-yun.com"||e.endsWith(".xf-yun.com")||e==="xfyun.cn"||e.endsWith(".xfyun.cn")||e==="xfyun.com"||e.endsWith(".xfyun.com")?uR:null:null}function dR(t){let e=Ef(t);return e?.endsWith(".siliconflow.cn")||e==="siliconflow.cn"?"https://api.siliconflow.cn/v1/user/info":"https://api.siliconflow.com/v1/user/info"}function fR(t,e){let n=wf(t);if(n.length===0)return null;let r=String(e||"").split(":").map(s=>s.trim()).filter(Boolean);return n.find(s=>{let a=s?.codingPlanAppCredentialDTO||s?.appCredential||s,u=String(a?.apiKey||a?.api_key||"").trim();return u&&r.some(l=>l.includes(u)||u.includes(l))})||n[0]}function wf(t){return!t||typeof t!="object"?[]:!Array.isArray(t)&&t.codingPlanUsageDTO?[t]:Array.isArray(t)?t.flatMap(e=>wf(e)):Object.values(t).flatMap(e=>wf(e))}function S_(t,e){let n=t.match(new RegExp(`(?:^|;\\s*)${e}=([^;]+)`));return n?decodeURIComponent(n[1]):void 0}function Ef(t){try{return new URL(t).hostname.toLowerCase()}catch{return null}}function ye(t){if(typeof t=="number")return Number.isFinite(t)?t:void 0;if(typeof t!="string")return;let e=t.trim().replace(/,/g,"");if(!e)return;let n=Number(e);return Number.isFinite(n)?n:void 0}var hR="x-claude-code-router-source",pR="x-claude-code-router-version";function v_(t){return{[hR]:t,[pR]:bi}}var mR={enabled:!0,quotaProbeIntervalMinutes:10,probeTimeoutMs:15e3,initialDelayMs:5e3,excludeProviders:[]};function gR(t){return t===!0||t==="true"||t===1||t==="1"}function yR(t){let e=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),r=String(t.getDate()).padStart(2,"0");return`${e}-${n}-${r}`}function _R(t){try{let e=new URL(t),n=e.pathname;return n.endsWith("/v1/messages")?n=n.slice(0,-12):n.endsWith("/messages")?n=n.slice(0,-9):n.endsWith("/v1/chat/completions")?n=n.slice(0,-20):n.endsWith("/chat/completions")&&(n=n.slice(0,-17)),n.endsWith("/v1")||(n=n.endsWith("/")?`${n}v1`:`${n}/v1`),e.pathname=`${n}/models`,e.toString()}catch{return null}}function bR(t){try{let e=new URL(t).hostname.toLowerCase();return e.includes("moonshot")||e.includes("kimi")}catch{return!1}}async function kf(t,e,n){let r=_R(t.baseUrl);if(!r)return{success:!1,error:"Cannot derive models endpoint from baseUrl"};try{let o={method:"GET",headers:{Authorization:`Bearer ${t.apiKey}`},signal:AbortSignal.timeout(e)};if(n)try{let{ProxyAgent:u}=await import("undici");o.dispatcher=new u(new URL(n).toString())}catch{}let s=await fetch(r,o);if(s.headers&&Wo(t.name,t.baseUrl,s.headers),s.ok)return{success:!0,headers:s.headers};if(s.status===429)return{success:!1,error:`HTTP 429: ${(await s.text().catch(()=>"")).slice(0,100)||"Rate limited"}`,headers:s.headers};if(s.status>=400&&s.status<500)return{success:!0,headers:s.headers};let a=await s.text().catch(()=>"");return{success:!1,error:`HTTP ${s.status}: ${a.slice(0,100)}`,headers:s.headers}}catch(o){return{success:!1,error:o?.message||o?.toString()||"Unknown probe error"}}}async function CR(t,e,n,r){let o=t.wakeupModel||(Array.isArray(t.models)?t.models[0]:void 0);if(!o)return{success:!1,error:"No models configured for provider"};let s=t.baseUrl,a=t.baseUrl.includes("/messages")||o.includes("claude");try{let u={"Content-Type":"application/json",...v_("scheduled-wakeup")};a?(u["x-api-key"]=t.apiKey,u["anthropic-version"]="2023-06-01"):u.Authorization=`Bearer ${t.apiKey}`;let l={method:"POST",headers:u,body:JSON.stringify({model:o,messages:[{role:"user",content:"Wake up and acknowledge with a short greeting."}],max_tokens:10}),signal:AbortSignal.timeout(e)};if(n)try{let{ProxyAgent:p}=await import("undici");l.dispatcher=new p(new URL(n).toString())}catch{}r?.info(`Sending scheduled wake-up call to provider ${t.name} using model ${o}...`);let d=await fetch(s,l);if(d.ok)return{success:!0};let f=await d.text().catch(()=>"");return{success:!1,error:`HTTP ${d.status}: ${f.slice(0,200)||"Unknown error"}`}}catch(u){return{success:!1,error:u?.message||u?.toString()||"Unknown wake-up error"}}}async function wR(t,e,n,r,o){let s=t.baseUrl,a=t.baseUrl.includes("/messages")||e.includes("claude");try{let u={"Content-Type":"application/json",...v_("rate-limit-probe")};a?(u["x-api-key"]=t.apiKey,u["anthropic-version"]="2023-06-01"):u.Authorization=`Bearer ${t.apiKey}`;let l={method:"POST",headers:u,body:JSON.stringify({model:e,messages:[{role:"user",content:"Hello, please reply briefly."}],max_tokens:10}),signal:AbortSignal.timeout(n)};if(r)try{let{ProxyAgent:p}=await import("undici");l.dispatcher=new p(new URL(r).toString())}catch{}o?.debug?.(`Sending independent ping to rate-limited model ${t.name} (${e})...`);let d=await fetch(s,l);if(d.ok)return{success:!0};let f=await d.text().catch(()=>"");return{success:!1,error:`HTTP ${d.status}: ${f.slice(0,200)||"Unknown error"}`}}catch(u){return{success:!1,error:u?.message||u?.toString()||"Unknown ping error"}}}var Os=class{config;quotaProbeTimer;healthProbeTimer;wakeupTimer;rateLimitProbeTimer;lastWakeupDate=new Map;getProviders;getHttpsProxy;logger;getConfig;running=!1;constructor(e,n,r,o,s){this.config={...mR,...n},this.getProviders=e,this.getHttpsProxy=r,this.logger=o,this.getConfig=s}start(){if(this.running)return;let e=this.isWakeupGloballyEnabled();!this.config.enabled&&!e||(this.running=!0,setTimeout(()=>{this.running&&(this.config.enabled&&(this.runQuotaProbe(),this.runHealthProbe(),this.runRateLimitProbe()),this.runScheduledWakeup())},this.config.initialDelayMs),this.config.enabled&&(this.quotaProbeTimer=setInterval(()=>this.runQuotaProbe(),this.config.quotaProbeIntervalMinutes*60*1e3),this.healthProbeTimer=setInterval(()=>this.runHealthProbe(),300*1e3),this.rateLimitProbeTimer=setInterval(()=>this.runRateLimitProbe(),120*1e3)),this.wakeupTimer=setInterval(()=>this.runScheduledWakeup(),60*1e3),this.logger?.info("Active probe service started"))}stop(){this.running=!1,this.quotaProbeTimer&&(clearInterval(this.quotaProbeTimer),this.quotaProbeTimer=void 0),this.healthProbeTimer&&(clearInterval(this.healthProbeTimer),this.healthProbeTimer=void 0),this.rateLimitProbeTimer&&(clearInterval(this.rateLimitProbeTimer),this.rateLimitProbeTimer=void 0),this.wakeupTimer&&(clearInterval(this.wakeupTimer),this.wakeupTimer=void 0),this.logger?.info("Active probe service stopped")}async runQuotaProbe(){let e=this.getProviders().filter(a=>a?.name&&a.enabled!==!1&&!this.config.excludeProviders.includes(a.name)),n=this.getHttpsProxy?.(),r=Je();if(e.length===0)return;let o=[];for(let a of e){let u=vu(a.baseUrl),l=Array.isArray(a.models)?a.models:[];u&&o.push({provider:a.name,models:l,type:"quota-adapter",promise:u.queryQuota(a,this.config.probeTimeoutMs,n).then(d=>{if(d){Ai(a.name,d),this.logger?.debug?.(`Stored quota probe result for ${a.name}`);let f=d.limitDaily!==void 0&&d.usedDailyBalance!==void 0&&d.usedDailyBalance>=d.limitDaily,p=d.totalBalance!==void 0&&d.usedBalance!==void 0&&d.usedBalance>=d.totalBalance;if(f||p){let m=f?`Quota exhausted: 5h limit reached (${d.usedDailyBalance}/${d.limitDaily})`:`Quota exhausted: 7d balance depleted (${d.usedBalance}/${d.totalBalance})`;for(let b of l){if(r.getState(a.name,b)?.rateLimitUntil){this.logger?.debug?.(`Skip forceOpen for ${a.name} (${b}): already rate-limited with active cooldown`);continue}r.forceOpen(a.name,b,m)}this.logger?.warn?.(`${m} for ${a.name}, marked as unhealthy`)}else for(let m of l){let b=r.getState(a.name,m);b&&b.status==="open"&&b.lastError?.includes("Quota exhausted")&&(r.recover(a.name,m),this.logger?.info?.(`Quota recovered for ${a.name} (${m}), marked as healthy`))}}})}),bR(a.baseUrl)&&o.push({provider:a.name,models:l,type:"rate-limit-headers",promise:kf(a,this.config.probeTimeoutMs,n).then(()=>{})})}if(o.length===0)return;this.logger?.debug?.(`Running quota probe with ${o.length} tasks for ${e.length} providers`);let s=await Promise.allSettled(o.map(a=>a.promise));for(let a=0;a<o.length;a++){let u=s[a];if(u.status==="rejected"){let l=o[a];this.logger?.warn?.(`Quota probe failed for ${l.provider} (${l.type}): ${u.reason}`)}}}async runHealthProbe(){let e=Je(),n=this.getProviders().filter(s=>s?.name&&s.enabled!==!1&&!this.config.excludeProviders.includes(s.name)),r=this.getHttpsProxy?.();if(n.length===0)return;this.logger?.debug?.(`Running health probe for ${n.length} providers`);let o=await Promise.allSettled(n.map(s=>kf(s,this.config.probeTimeoutMs,r)));for(let s=0;s<n.length;s++){let a=n[s],u=o[s],l=Array.isArray(a.models)?a.models:[];if(u.status==="fulfilled"){let d=u.value;if(d.success){let f=0;for(let p of l){let m=e.getState(a.name,p);if(m&&m.status==="open"){let b=m.lastError?.includes("Quota exhausted"),w=m.rateLimitUntil||m.lastError&&(m.lastError.includes("429")||m.lastError.toLowerCase().includes("rate limit")||m.lastError.toLowerCase().includes("rate_limit")||m.lastError.toLowerCase().includes("too many requests")||m.lastError.toLowerCase().includes("\u9650\u6D41"));if(b){this.logger?.debug?.(`Skipping health probe recovery for ${a.name} (${p}) because quota is exhausted`);continue}if(w||m.rateLimitUntil){this.logger?.debug?.(`Skipping health probe recovery for rate-limited ${a.name} (${p})`);continue}}e.recordSuccess(a.name,p),f++}f>0&&this.logger?.info?.(`Health probe succeeded for ${a.name}`)}else{for(let f of l)e.recordFailure(a.name,f,d.error);this.logger?.warn?.(`Health probe failed for ${a.name}: ${d.error}`)}}else{for(let d of l)e.recordFailure(a.name,d,u.reason?.message||"Probe error");this.logger?.warn?.(`Health probe error for ${a.name}: ${u.reason}`)}}}async runRateLimitProbe(){let e=Je(),n=e.getRateLimitedModels();if(n.length===0)return;let r=this.getProviders(),o=this.getHttpsProxy?.(),s=this.config.probeTimeoutMs;this.logger?.debug?.(`Running rate-limit recovery probe for ${n.length} model(s)`);for(let a of n){let[u,...l]=a.split(","),d=l.join(",");if(!u||!d)continue;let f=e.getState(u,d);if(!f||!f.rateLimitUntil)continue;if(Date.now()>=f.rateLimitUntil){e.recover(u,d),this.logger?.info?.(`Rate-limit cooldown expired, auto-recovered ${a}`);continue}let p=r.find(m=>m?.name===u&&m.enabled!==!1);if(!p){this.logger?.warn?.(`Provider ${u} not found or disabled for rate-limit probe`);continue}try{let m=await wR(p,d,s,o,this.logger);if(m.success)this.logger?.info?.(`Rate-limit probe succeeded for ${a}, recovering model`),e.recover(u,d);else if(m.error&&(m.error.includes("429")||m.error.toLowerCase().includes("rate limit")||m.error.toLowerCase().includes("rate_limit")||m.error.toLowerCase().includes("too many requests")||m.error.toLowerCase().includes("\u9650\u6D41"))){let b=Date.now();f.rateLimitUntil&&f.rateLimitUntil>b?f.rateLimitUntil+=120*1e3:f.rateLimitUntil=b+120*1e3,this.logger?.debug?.(`Rate-limit probe for ${a} confirmed still limited, extending cooldown`)}else this.logger?.debug?.(`Rate-limit probe for ${a} returned non-rate-limit error: ${m.error?.slice(0,100)}`)}catch(m){this.logger?.warn?.(`Rate-limit probe exception for ${a}: ${m?.message||m}`)}}}async runScheduledWakeup(){if(!this.isWakeupGloballyEnabled())return;let e=this.getProviders().filter(l=>l?.name&&l.enabled!==!1&&l.wakeupEnabled===!0);if(e.length===0)return;let n=new Date,r=n.getHours(),o=n.getMinutes(),s=yR(n),a=this.getHttpsProxy?.(),u=this.getConfig&&this.getConfig("WAKEUP_TIME")||"06:00";for(let l of e){let d=l.wakeupTime||u,[f,p]=d.split(":"),m=parseInt(f,10),b=parseInt(p,10);if(isNaN(m)||isNaN(b))continue;let w=r>m||r===m&&o>=b,y=(m*60+b)*6e4-(r*60+o)*6e4,g=y>0&&y<=300*1e3;(w||g)&&!this.hasWakeupFiredToday(l.name,s)&&(this.logger?.info?.(`Scheduled wake-up triggered for provider ${l.name} at ${d}`),CR(l,3e4,a,this.logger).then(_=>{_.success?this.logger?.info?.(`Successfully woke up provider ${l.name}`):this.logger?.error?.(`Failed to wake up provider ${l.name}: ${_.error}`)}).catch(_=>{this.logger?.error?.(`Error in wake-up task for ${l.name}: ${_}`)}))}}isWakeupGloballyEnabled(){return this.getConfig?gR(this.getConfig("WAKEUP_ENABLED")):!1}hasWakeupFiredToday(e,n){return this.lastWakeupDate.get(e)===n?!0:(this.lastWakeupDate.set(e,n),!1)}async probeProviderManually(e){let r=this.getProviders().find(u=>u.name===e);if(!r)return this.logger?.warn?.(`Provider ${e} not found for manual probe`),!1;if(r.enabled===!1)return this.logger?.warn?.(`Provider ${e} is disabled, skipping manual probe`),!1;let o=this.getHttpsProxy?.(),s=await kf(r,this.config.probeTimeoutMs,o),a=Array.isArray(r.models)?r.models:[];if(s.success)for(let u of a)Je().recordSuccess(r.name,u);else for(let u of a)Je().recordFailure(r.name,u,s.error);return s.success}},nr=null;function Af(t,e,n,r,o){return nr||(nr=new Os(t,e,n,r,o)),nr}function Tu(t,e,n,r,o){let s=Af(t,e,n,r,o);return s.start(),s}function Du(){nr&&nr.stop()}function T_(){nr&&(nr.stop(),nr=null)}Wn();var Sf=class{plugins=new Map;pluginInstances=new Map;registerPlugin(e,n={}){this.pluginInstances.set(e.name,e),this.plugins.set(e.name,{name:e.name,enabled:n.enabled!==!1,options:n})}async enablePlugin(e,n){let r=this.plugins.get(e),o=this.pluginInstances.get(e);if(!r||!o)throw new Error(`Plugin ${e} not found`);r.enabled&&await n.register(o.register,r.options)}async enablePlugins(e){for(let[n,r]of this.plugins)if(r.enabled)try{await this.enablePlugin(n,e)}catch(o){let s=o instanceof Error?o.message:String(o);e.log?.error(`Failed to enable plugin ${n}: ${s}`)}}getPlugins(){return Array.from(this.plugins.values())}getPlugin(e){return this.pluginInstances.get(e)}hasPlugin(e){return this.pluginInstances.has(e)}isPluginEnabled(e){return this.plugins.get(e)?.enabled||!1}setPluginEnabled(e,n){let r=this.plugins.get(e);r&&(r.enabled=n)}removePlugin(e){this.plugins.delete(e),this.pluginInstances.delete(e)}clear(){this.plugins.clear(),this.pluginInstances.clear()}},vf=new Sf;var M_=xe(P_(),1);var Or=class extends TransformStream{buffer="";currentEvent={};constructor(){super({transform:(e,n)=>{this.buffer+=e;let r=this.buffer.split(`
|
|
364
364
|
`);this.buffer=r.pop()||"";for(let o of r){let s=this.processLine(o);s&&n.enqueue(s)}},flush:e=>{if(this.buffer.trim()){let n=[];this.processLine(this.buffer.trim(),n),n.forEach(r=>e.enqueue(r))}Object.keys(this.currentEvent).length>0&&e.enqueue(this.currentEvent)}})}processLine(e,n){if(!e.trim()){if(Object.keys(this.currentEvent).length>0){let r={...this.currentEvent};return this.currentEvent={},n?(n.push(r),null):r}return null}if(e.startsWith("event:"))this.currentEvent.event=e.slice(6).trim();else if(e.startsWith("data:")){let r=e.slice(5).trim();if(r==="[DONE]")this.currentEvent.data={type:"done"};else try{this.currentEvent.data=JSON.parse(r)}catch{this.currentEvent.data={raw:r,error:"JSON parse failed"}}}else e.startsWith("id:")?this.currentEvent.id=e.slice(3).trim():e.startsWith("retry:")&&(this.currentEvent.retry=parseInt(e.slice(6).trim()));return null}};var Ps=class extends TransformStream{constructor(){super({transform:(e,n)=>{let r="";e.event&&(r+=`event: ${e.event}
|
|
365
365
|
`),e.id&&(r+=`id: ${e.id}
|
|
366
366
|
`),e.retry&&(r+=`retry: ${e.retry}
|
|
367
367
|
`),e.data&&(e.data.type==="done"?r+=`data: [DONE]
|
|
368
368
|
`:r+=`data: ${JSON.stringify(e.data)}
|
|
369
369
|
`),r+=`
|
|
370
|
-
`,n.enqueue(r)}})}};var Df=(t,e)=>{let n=t.getReader();return new ReadableStream({async start(r){try{for(;;){let{done:o,value:s}=await n.read();if(o){r.close();break}let a=await e(s,r);a!==void 0&&r.enqueue(a)}}catch(o){r.error(o)}finally{n.releaseLock()}}})};Rf();xf();Pf();F_();var Bs=new Map,If=new Map,AR=1,Nf={name:"token-speed",version:"1.0.0",description:"Statistics for streaming response token generation speed",register:(0,B_.default)(async(t,e)=>{let n={reporter:["console","temp-file"],...e},r=Array.isArray(n.reporter)?n.reporter:[n.reporter];if(n.outputHandlers&&n.outputHandlers.length>0)Oo.registerHandlers(n.outputHandlers);else{let a=[];for(let u of r)u==="console"?a.push({type:"console",enabled:!0,config:{colors:!0,level:"log"}}):u==="temp-file"?a.push({type:"temp-file",enabled:!0,config:{subdirectory:"claude-code-router",extension:"json",includeTimestamp:!0,prefix:"session"}}):u==="webhook"&&console.warn("[TokenSpeedPlugin] Webhook reporter requires explicit configuration in outputHandlers");a.length>0&&Oo.registerHandlers(a)}n.outputOptions&&Oo.setDefaultOptions(n.outputOptions);let o=async a=>{let u=t.tokenizerService;if(!u)return t.log?.warn("TokenizerService not available"),null;if(!a.provider||!a.model)return null;let l=a.provider,d=a.model,f=`${l}:${d}`;if(If.has(f))return If.get(f);let p=u.getTokenizerConfigForModel(l,d);if(!p)return t.log?.debug(`No tokenizer config for ${l}:${d}, using fallback`),null;try{let m=await u.getTokenizer(p);return If.set(f,m),t.log?.info(`Created tokenizer for ${l}:${d} - ${m.name}`),m}catch(m){return t.log?.warn(`Failed to create tokenizer for ${l}:${d}: ${m.message}`),null}},s=a=>{let u=new URL(`http://127.0.0.1${a}`).pathname;return u.endsWith("/v1/messages")||u.endsWith("/v1/responses")};t.addHook("onRequest",async a=>{s(a.url)&&(a.requestStartTime=performance.now())}),t.addHook("onSend",async(a,u,l)=>{let d=a.requestStartTime;if(!d)return;let f=a.id||Date.now().toString(),p;try{p=Yr(a.body?.metadata?.user_id)}catch{}if(!p){let g=a.headers?.["x-request-id"],_=Array.isArray(g)?g[0]:g;p=a.sessionId||(typeof _=="string"?_:void 0)||f}let m=await o(a);if(l instanceof ReadableStream){Bs.set(f,{requestId:f,sessionId:p,startTime:d,lastTokenTime:d,tokenCount:0,tokensPerSecond:0,tokenTimestamps:[],stream:!0});let[g,_]=l.tee();return(async()=>{let C=null,S=async v=>{let R=Bs.get(f);if(!R)return;let $=performance.now();if(v){let V=R.firstTokenTime?R.firstTokenTime-R.startTime:0,P=R.lastTokenTime-R.startTime;R.tokensPerSecond=I_(R.tokenCount,P,V)}else{let V=$-1e3;R.tokenTimestamps=R.tokenTimestamps.filter(P=>P>V),R.tokensPerSecond=R.tokenTimestamps.length}await N_(R,r,n.outputOptions,v).catch(V=>{t.log?.warn(`Failed to output streaming stats: ${V.message}`)})};try{let R=_.pipeThrough(new TextDecoderStream).pipeThrough(new Or).getReader();for(C=setInterval(async()=>{Bs.get(f)&&await S(!1)},1e3);;){let{done:$,value:V}=await R.read();if($)break;let P=V,Y=Bs.get(f);if(!Y)continue;let z=performance.now(),K=P.event||P.data?.type,Q=P.event==="content_block_start"||P.event==="content_block_delta"||P.event==="text_block"||P.event==="content_block"||K==="response.output_text.delta"||K==="response.function_call_arguments.delta"||K==="response.reasoning_summary_text.delta";!Y.firstTokenTime&&Q&&(Y.firstTokenTime=z,Y.timeToFirstToken=Math.round(z-Y.startTime));let ee="";if(P.event==="content_block_delta"&&P.data?.delta){let ie=P.data.delta.type;ie==="text_delta"?ee=P.data.delta.text||"":ie==="input_json_delta"?ee=P.data.delta.partial_json||"":ie==="thinking_delta"&&(ee=P.data.delta.thinking||"")}if((K==="response.output_text.delta"||K==="response.function_call_arguments.delta"||K==="response.reasoning_summary_text.delta")&&(ee=typeof P.data?.delta=="string"?P.data.delta:""),ee){let ie=m&&m.encodeText?m.encodeText(ee).length:Ms(ee);Y.tokenCount+=ie,Y.lastTokenTime=z;for(let oe=0;oe<ie;oe++)Y.tokenTimestamps.push(z)}(P.event==="message_stop"||K==="response.completed"||K==="response.failed")&&(C&&(clearInterval(C),C=null),await S(!0),Bs.delete(f))}}catch(v){C&&clearInterval(C),v.name!=="AbortError"&&v.code!=="ERR_STREAM_PREMATURE_CLOSE"&&t.log?.warn(`Error processing token stats: ${v.message}`)}})().catch(C=>{console.log(C),t.log?.warn(`Background stats processing failed: ${C.message}`)}),g}let b=performance.now(),w=0,y=!1;if(l&&typeof l=="string")try{let g=JSON.parse(l);if(typeof g.usage?.output_tokens=="number")w=g.usage.output_tokens,y=!0;else{let _=g.content??g.message?.content;if(_!==void 0)if(y=!0,m)Array.isArray(_)?w=_.reduce((A,C)=>{if(C.type==="text"){let S=C.text||"";return A+(m.encodeText?m.encodeText(S).length:Ms(S))}return A},0):typeof _=="string"&&(w=m.encodeText?m.encodeText(_).length:Ms(_));else{let A=Array.isArray(_)?_.map(C=>C.text).join(""):typeof _=="string"?_:"";w=Ms(A)}}}catch{}if(y){let g=Math.round(b-d),_=b-d,A={requestId:f,sessionId:p,startTime:d,lastTokenTime:b,tokenCount:w,tokensPerSecond:I_(w,_),timeToFirstToken:g,stream:!1,tokenTimestamps:[]};await N_(A,r,n.outputOptions,!0)}return l})})};function I_(t,e,n=0){if(t<=0)return 0;let r=Math.max((e-n)/1e3,AR);return Math.round(t/r)}function Ms(t){let e=(t.match(/[\u4e00-\u9fa5]/g)||[]).length,n=t.length-e;return Math.ceil(e/1.5+n/4)}async function N_(t,e,n,r=!1){let o=r?"[Token Speed Final]":"[Token Speed]",s={requestId:t.requestId.substring(0,8),sessionId:t.sessionId,stream:t.stream,tokenCount:t.tokenCount,tokensPerSecond:t.tokensPerSecond,timeToFirstToken:t.timeToFirstToken?`${t.timeToFirstToken}ms`:"N/A",duration:`${((t.lastTokenTime-t.startTime)/1e3).toFixed(2)}s`,timestamp:Date.now()},a={prefix:o,metadata:{sessionId:t.sessionId},...n};for(let u of e)try{await Oo.outputToType(u,s,a)}catch(l){console.error(`[TokenSpeedPlugin] Failed to output to ${u}:`,l)}}Wn();Wn();function SR(t={}){let e=(0,M_.default)({bodyLimit:52428800,...t});return e.setErrorHandler(Zh),e.register(L_.default),e}var Bf=class{app;configService;providerService;transformerService;tokenizerService;activeProbeService;recordUsage;constructor(e={}){let{initialConfig:n,...r}=e;this.app=SR({...r,logger:r.logger??!0}),this.configService=new hr(e),this.transformerService=new Rr(this.configService,this.app.log),this.tokenizerService=new xr(this.configService,this.app.log),this.transformerService.initialize().finally(()=>{this.providerService=new yr(this.configService,this.transformerService,this.app.log)}),this.tokenizerService.initialize().catch(o=>{this.app.log.error(`Failed to initialize TokenizerService: ${o}`)})}async register(e,n){await this.app.register(e,n)}addHook(e,n){this.app.addHook(e,n)}async registerNamespace(e,n){if(!e)throw new Error("name is required");if(e==="/"){await this.app.register(async u=>{u.decorate("configService",this.configService),u.decorate("transformerService",this.transformerService),u.decorate("providerService",this.providerService),u.decorate("tokenizerService",this.tokenizerService),u.decorate("recordUsage",this.recordUsage||(()=>{})),u.addHook("preHandler",async(l,d)=>{new URL(`http://127.0.0.1${l.url}`).pathname.endsWith("/v1/messages")&&await Zr(l,d,{configService:this.configService,tokenizerService:this.tokenizerService})}),await Dc(u)});return}if(!n)throw new Error("options is required");let r=new hr({initialConfig:{providers:n.Providers,Router:n.Router}}),o=new Rr(r,this.app.log);await o.initialize();let s=new yr(r,o,this.app.log),a=new xr(r,this.app.log);await a.initialize(),await this.app.register(async u=>{u.decorate("configService",r),u.decorate("transformerService",o),u.decorate("providerService",s),u.decorate("tokenizerService",a),u.decorate("recordUsage",this.recordUsage||(()=>{})),u.addHook("preHandler",async(l,d)=>{new URL(`http://127.0.0.1${l.url}`).pathname.endsWith("/v1/messages")&&await Zr(l,d,{configService:r,tokenizerService:a})}),await Dc(u)},{prefix:e})}async start(){try{this.app._server=this,this.app.addHook("preHandler",(r,o,s)=>{if(new URL(`http://127.0.0.1${r.url}`).pathname.endsWith("/v1/messages")&&r.body){let u=r.body;r.log.info({data:u,type:"request body"}),u.stream||(u.stream=!1)}s()}),await this.registerNamespace("/"),this.app.addHook("preHandler",async(r,o)=>{if(new URL(`http://127.0.0.1${r.url}`).pathname.endsWith("/v1/messages")&&r.body)try{let a=r.body;if(!a||!a.model)return o.code(400).send({error:"Missing model in request body"});let u=a.model.split(","),l=a.model;if(u.length>1){let[d,...f]=u;l=f.join(","),a.model=l,r.provider=d}r.model=l;return}catch(a){return r.log.error({error:a},"Error in modelProviderMiddleware:"),o.code(500).send({error:"Internal server error"})}});let e=await this.app.listen({port:parseInt(this.configService.get("PORT")||"3000",10),host:this.configService.get("HOST")||"127.0.0.1"});this.app.log.info(`\u{1F680} LLMs API server listening on ${e}`);try{wi()}catch{}try{Si()}catch{}try{Ci()}catch{}try{let r={enabled:this.configService.get("ACTIVE_PROBE_ENABLED")??!0,quotaProbeIntervalMinutes:this.configService.get("QUOTA_PROBE_INTERVAL_MINUTES")??10,probeTimeoutMs:this.configService.get("PROBE_TIMEOUT_MS")??15e3,initialDelayMs:this.configService.get("PROBE_INITIAL_DELAY_MS")??5e3,excludeProviders:this.configService.get("EXCLUDE_PROBE_PROVIDERS")??[]};this.activeProbeService=Tu(()=>this.providerService.getProviders(),r,()=>this.configService.getHttpsProxy(),this.app.log,o=>this.configService.get(o))}catch(r){this.app.log.warn?.(`Failed to start active probe service: ${r.message}`)}let n=async r=>{this.app.log.info(`Received ${r}, shutting down gracefully...`);try{vu()}catch{}await this.app.close(),process.exit(0)};process.on("SIGINT",()=>n("SIGINT")),process.on("SIGTERM",()=>n("SIGTERM"))}catch(e){this.app.log.error(`Error starting server: ${e}`),process.exit(1)}}},TR=Bf;0&&(module.exports={ActiveProbeService,ConfigService,ProviderHealthStore,ProviderService,SSEParserTransform,SSESerializerTransform,TokenizerService,TransformerService,calculateTokenCount,extractSessionIdFromUserId,getActiveProbeService,getAllQuotaResults,getAllRateLimitInfo,getHealthStore,getQuotaAdapter,getQuotaResult,getRateLimitInfo,getRuntimeDebugLog,initProviderHealthPersistence,initQuotaStorePersistence,initRateLimitPersistence,normalizeSessionId,pluginManager,resetActiveProbeService,rewriteStream,router,searchProjectBySession,sessionUsageCache,setRuntimeDebugLog,startActiveProbe,stopActiveProbe,storeQuotaResult,tokenSpeedPlugin});
|
|
370
|
+
`,n.enqueue(r)}})}};var Rf=(t,e)=>{let n=t.getReader();return new ReadableStream({async start(r){try{for(;;){let{done:o,value:s}=await n.read();if(o){r.close();break}let a=await e(s,r);a!==void 0&&r.enqueue(a)}}catch(o){r.error(o)}finally{n.releaseLock()}}})};xf();Of();Ff();I_();var Bs=new Map,Nf=new Map,TR=1,Bf={name:"token-speed",version:"1.0.0",description:"Statistics for streaming response token generation speed",register:(0,M_.default)(async(t,e)=>{let n={reporter:["console","temp-file"],...e},r=Array.isArray(n.reporter)?n.reporter:[n.reporter];if(n.outputHandlers&&n.outputHandlers.length>0)Oo.registerHandlers(n.outputHandlers);else{let a=[];for(let u of r)u==="console"?a.push({type:"console",enabled:!0,config:{colors:!0,level:"log"}}):u==="temp-file"?a.push({type:"temp-file",enabled:!0,config:{subdirectory:"claude-code-router",extension:"json",includeTimestamp:!0,prefix:"session"}}):u==="webhook"&&console.warn("[TokenSpeedPlugin] Webhook reporter requires explicit configuration in outputHandlers");a.length>0&&Oo.registerHandlers(a)}n.outputOptions&&Oo.setDefaultOptions(n.outputOptions);let o=async a=>{let u=t.tokenizerService;if(!u)return t.log?.warn("TokenizerService not available"),null;if(!a.provider||!a.model)return null;let l=a.provider,d=a.model,f=`${l}:${d}`;if(Nf.has(f))return Nf.get(f);let p=u.getTokenizerConfigForModel(l,d);if(!p)return t.log?.debug(`No tokenizer config for ${l}:${d}, using fallback`),null;try{let m=await u.getTokenizer(p);return Nf.set(f,m),t.log?.info(`Created tokenizer for ${l}:${d} - ${m.name}`),m}catch(m){return t.log?.warn(`Failed to create tokenizer for ${l}:${d}: ${m.message}`),null}},s=a=>{let u=new URL(`http://127.0.0.1${a}`).pathname;return u.endsWith("/v1/messages")||u.endsWith("/v1/responses")};t.addHook("onRequest",async a=>{s(a.url)&&(a.requestStartTime=performance.now())}),t.addHook("onSend",async(a,u,l)=>{let d=a.requestStartTime;if(!d)return;let f=a.id||Date.now().toString(),p;try{p=Yr(a.body?.metadata?.user_id)}catch{}if(!p){let g=a.headers?.["x-request-id"],_=Array.isArray(g)?g[0]:g;p=a.sessionId||(typeof _=="string"?_:void 0)||f}let m=await o(a);if(l instanceof ReadableStream){Bs.set(f,{requestId:f,sessionId:p,startTime:d,lastTokenTime:d,tokenCount:0,tokensPerSecond:0,tokenTimestamps:[],stream:!0});let[g,_]=l.tee();return(async()=>{let C=null,S=async T=>{let R=Bs.get(f);if(!R)return;let $=performance.now();if(T){let V=R.firstTokenTime?R.firstTokenTime-R.startTime:0,P=R.lastTokenTime-R.startTime;R.tokensPerSecond=N_(R.tokenCount,P,V)}else{let V=$-1e3;R.tokenTimestamps=R.tokenTimestamps.filter(P=>P>V),R.tokensPerSecond=R.tokenTimestamps.length}await B_(R,r,n.outputOptions,T).catch(V=>{t.log?.warn(`Failed to output streaming stats: ${V.message}`)})};try{let R=_.pipeThrough(new TextDecoderStream).pipeThrough(new Or).getReader();for(C=setInterval(async()=>{Bs.get(f)&&await S(!1)},1e3);;){let{done:$,value:V}=await R.read();if($)break;let P=V,Y=Bs.get(f);if(!Y)continue;let z=performance.now(),K=P.event||P.data?.type,Q=P.event==="content_block_start"||P.event==="content_block_delta"||P.event==="text_block"||P.event==="content_block"||K==="response.output_text.delta"||K==="response.function_call_arguments.delta"||K==="response.reasoning_summary_text.delta";!Y.firstTokenTime&&Q&&(Y.firstTokenTime=z,Y.timeToFirstToken=Math.round(z-Y.startTime));let ee="";if(P.event==="content_block_delta"&&P.data?.delta){let ie=P.data.delta.type;ie==="text_delta"?ee=P.data.delta.text||"":ie==="input_json_delta"?ee=P.data.delta.partial_json||"":ie==="thinking_delta"&&(ee=P.data.delta.thinking||"")}if((K==="response.output_text.delta"||K==="response.function_call_arguments.delta"||K==="response.reasoning_summary_text.delta")&&(ee=typeof P.data?.delta=="string"?P.data.delta:""),ee){let ie=m&&m.encodeText?m.encodeText(ee).length:Ms(ee);Y.tokenCount+=ie,Y.lastTokenTime=z;for(let oe=0;oe<ie;oe++)Y.tokenTimestamps.push(z)}(P.event==="message_stop"||K==="response.completed"||K==="response.failed")&&(C&&(clearInterval(C),C=null),await S(!0),Bs.delete(f))}}catch(T){C&&clearInterval(C),T.name!=="AbortError"&&T.code!=="ERR_STREAM_PREMATURE_CLOSE"&&t.log?.warn(`Error processing token stats: ${T.message}`)}})().catch(C=>{console.log(C),t.log?.warn(`Background stats processing failed: ${C.message}`)}),g}let b=performance.now(),w=0,y=!1;if(l&&typeof l=="string")try{let g=JSON.parse(l);if(typeof g.usage?.output_tokens=="number")w=g.usage.output_tokens,y=!0;else{let _=g.content??g.message?.content;if(_!==void 0)if(y=!0,m)Array.isArray(_)?w=_.reduce((A,C)=>{if(C.type==="text"){let S=C.text||"";return A+(m.encodeText?m.encodeText(S).length:Ms(S))}return A},0):typeof _=="string"&&(w=m.encodeText?m.encodeText(_).length:Ms(_));else{let A=Array.isArray(_)?_.map(C=>C.text).join(""):typeof _=="string"?_:"";w=Ms(A)}}}catch{}if(y){let g=Math.round(b-d),_=b-d,A={requestId:f,sessionId:p,startTime:d,lastTokenTime:b,tokenCount:w,tokensPerSecond:N_(w,_),timeToFirstToken:g,stream:!1,tokenTimestamps:[]};await B_(A,r,n.outputOptions,!0)}return l})})};function N_(t,e,n=0){if(t<=0)return 0;let r=Math.max((e-n)/1e3,TR);return Math.round(t/r)}function Ms(t){let e=(t.match(/[\u4e00-\u9fa5]/g)||[]).length,n=t.length-e;return Math.ceil(e/1.5+n/4)}async function B_(t,e,n,r=!1){let o=r?"[Token Speed Final]":"[Token Speed]",s={requestId:t.requestId.substring(0,8),sessionId:t.sessionId,stream:t.stream,tokenCount:t.tokenCount,tokensPerSecond:t.tokensPerSecond,timeToFirstToken:t.timeToFirstToken?`${t.timeToFirstToken}ms`:"N/A",duration:`${((t.lastTokenTime-t.startTime)/1e3).toFixed(2)}s`,timestamp:Date.now()},a={prefix:o,metadata:{sessionId:t.sessionId},...n};for(let u of e)try{await Oo.outputToType(u,s,a)}catch(l){console.error(`[TokenSpeedPlugin] Failed to output to ${u}:`,l)}}Wn();Wn();function DR(t={}){let e=(0,L_.default)({bodyLimit:52428800,...t});return e.setErrorHandler(ep),e.register(j_.default),e}var Mf=class{app;configService;providerService;transformerService;tokenizerService;activeProbeService;recordUsage;constructor(e={}){let{initialConfig:n,...r}=e;this.app=DR({...r,logger:r.logger??!0}),this.configService=new hr(e),this.transformerService=new Rr(this.configService,this.app.log),this.tokenizerService=new xr(this.configService,this.app.log),this.transformerService.initialize().finally(()=>{this.providerService=new yr(this.configService,this.transformerService,this.app.log)}),this.tokenizerService.initialize().catch(o=>{this.app.log.error(`Failed to initialize TokenizerService: ${o}`)})}async register(e,n){await this.app.register(e,n)}addHook(e,n){this.app.addHook(e,n)}async registerNamespace(e,n){if(!e)throw new Error("name is required");if(e==="/"){await this.app.register(async u=>{u.decorate("configService",this.configService),u.decorate("transformerService",this.transformerService),u.decorate("providerService",this.providerService),u.decorate("tokenizerService",this.tokenizerService),u.decorate("recordUsage",this.recordUsage||(()=>{})),u.addHook("preHandler",async(l,d)=>{new URL(`http://127.0.0.1${l.url}`).pathname.endsWith("/v1/messages")&&await Zr(l,d,{configService:this.configService,tokenizerService:this.tokenizerService})}),await Rc(u)});return}if(!n)throw new Error("options is required");let r=new hr({initialConfig:{providers:n.Providers,Router:n.Router}}),o=new Rr(r,this.app.log);await o.initialize();let s=new yr(r,o,this.app.log),a=new xr(r,this.app.log);await a.initialize(),await this.app.register(async u=>{u.decorate("configService",r),u.decorate("transformerService",o),u.decorate("providerService",s),u.decorate("tokenizerService",a),u.decorate("recordUsage",this.recordUsage||(()=>{})),u.addHook("preHandler",async(l,d)=>{new URL(`http://127.0.0.1${l.url}`).pathname.endsWith("/v1/messages")&&await Zr(l,d,{configService:r,tokenizerService:a})}),await Rc(u)},{prefix:e})}async start(){try{this.app._server=this,this.app.addHook("preHandler",(r,o,s)=>{if(new URL(`http://127.0.0.1${r.url}`).pathname.endsWith("/v1/messages")&&r.body){let u=r.body;r.log.info({data:u,type:"request body"}),u.stream||(u.stream=!1)}s()}),await this.registerNamespace("/"),this.app.addHook("preHandler",async(r,o)=>{if(new URL(`http://127.0.0.1${r.url}`).pathname.endsWith("/v1/messages")&&r.body)try{let a=r.body;if(!a||!a.model)return o.code(400).send({error:"Missing model in request body"});let u=a.model.split(","),l=a.model;if(u.length>1){let[d,...f]=u;l=f.join(","),a.model=l,r.provider=d}r.model=l;return}catch(a){return r.log.error({error:a},"Error in modelProviderMiddleware:"),o.code(500).send({error:"Internal server error"})}});let e=await this.app.listen({port:parseInt(this.configService.get("PORT")||"3000",10),host:this.configService.get("HOST")||"127.0.0.1"});this.app.log.info(`\u{1F680} LLMs API server listening on ${e}`);try{Ei()}catch{}try{vi()}catch{}try{wi()}catch{}try{let r={enabled:this.configService.get("ACTIVE_PROBE_ENABLED")??!0,quotaProbeIntervalMinutes:this.configService.get("QUOTA_PROBE_INTERVAL_MINUTES")??10,probeTimeoutMs:this.configService.get("PROBE_TIMEOUT_MS")??15e3,initialDelayMs:this.configService.get("PROBE_INITIAL_DELAY_MS")??5e3,excludeProviders:this.configService.get("EXCLUDE_PROBE_PROVIDERS")??[]};this.activeProbeService=Tu(()=>this.providerService.getProviders(),r,()=>this.configService.getHttpsProxy(),this.app.log,o=>this.configService.get(o))}catch(r){this.app.log.warn?.(`Failed to start active probe service: ${r.message}`)}let n=async r=>{this.app.log.info(`Received ${r}, shutting down gracefully...`);try{Du()}catch{}await this.app.close(),process.exit(0)};process.on("SIGINT",()=>n("SIGINT")),process.on("SIGTERM",()=>n("SIGTERM"))}catch(e){this.app.log.error(`Error starting server: ${e}`),process.exit(1)}}},RR=Mf;0&&(module.exports={ActiveProbeService,ConfigService,ProviderHealthStore,ProviderService,SSEParserTransform,SSESerializerTransform,TokenizerService,TransformerService,calculateTokenCount,extractSessionIdFromUserId,getActiveProbeService,getAllQuotaResults,getAllRateLimitInfo,getHealthStore,getQuotaAdapter,getQuotaResult,getRateLimitInfo,getRuntimeDebugLog,initProviderHealthPersistence,initQuotaStorePersistence,initRateLimitPersistence,normalizeSessionId,pluginManager,resetActiveProbeService,rewriteStream,router,searchProjectBySession,sessionUsageCache,setRuntimeDebugLog,startActiveProbe,stopActiveProbe,storeQuotaResult,tokenSpeedPlugin});
|
|
371
371
|
/*! Bundled license information:
|
|
372
372
|
|
|
373
373
|
web-streams-polyfill/dist/ponyfill.es2018.js:
|