@zuplo/core 6.71.21 → 6.71.23

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.
@@ -568,11 +568,11 @@ globstar while`,s,de,o,ae,He),this.matchOne(s.slice(de),o.slice(ae),f))return th
568
568
  `],[102,"\f"],[114,"\r"],[116," "]]),Poe=new Map([...EV,[118,"\v"],[48,"\0"]]),QKt=new Map([['"','"'],["\\","\\"],["/","/"],["\b","b"],[`
569
569
  `,"n"],["\f","f"],["\r","r"],[" ","t"]]),tCr=new Map([...QKt,["\v","v"],["\0","0"],["\u2028","u2028"],["\u2029","u2029"]]),Doe=new Map([["[","LBracket"],["]","RBracket"],["{","LBrace"],["}","RBrace"],[":","Colon"],[",","Comma"],[YKt,"Boolean"],[KKt,"Boolean"],[XKt,"Null"]]),woe=new Map([...Doe,["NaN","Number"],[ZKt,"Number"]]),MPe=new Set([10,13,8232,8233]),jP=class extends Error{static{t(this,"ErrorWithLocation")}constructor(o,{line:f,column:d,offset:y}){super(`${o} (${f}:${d})`),this.line=f,this.column=d,this.offset=y}},jPe=class extends jP{static{t(this,"UnexpectedChar")}constructor(o,f){super(`Unexpected character '${String.fromCharCode(o)}' found.`,f)}},BPe=class extends jP{static{t(this,"UnexpectedIdentifier")}constructor(o,f){super(`Unexpected identifier '${o}' found.`,f)}},dO=class extends jP{static{t(this,"UnexpectedToken")}constructor(o){super(`Unexpected token ${o.type} found.`,o.loc.start)}},Aoe=class extends jP{static{t(this,"UnexpectedEOF")}constructor(o){super("Unexpected end of input found.",o)}},eXt=/[\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]/,tXt=/[\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]/,rXt=13,Rnt=10,UPe=class{static{t(this,"CharCodeReader")}#e="";#n=1;#t=0;#r=-1;#s=!1;#m=-1;#c=!1;constructor(o){this.#e=o}#u(){this.#c||(this.#t++,this.#r++,this.#m=-1,this.#c=!0)}locate(){return{line:this.#n,column:this.#t,offset:this.#r}}next(){if(this.#r>=this.#e.length-1)return this.#u(),-1;this.#r++;let o=this.#e.charCodeAt(this.#r);return this.#s?(this.#n++,this.#t=1,this.#s=!1):this.#t++,o===rXt?(this.#s=!0,this.peek()===Rnt&&this.#r++):o===Rnt&&(this.#s=!0),this.#m=o,o}peek(){return this.#r===this.#e.length-1?-1:this.#e.charCodeAt(this.#r+1)}match(o){return o(this.peek())?(this.next(),!0):!1}current(){return this.#m}},nXt="Infinity",iXt="NaN",sXt=new Set([116,102,110]),zPe=new Set([32,9,10,13]),Mnt=new Set([...zPe,11,12,160,8232,8233,65279,160,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288]),aXt={mode:"json",ranges:!1},oXt=new Set(["true","false","null"]),b_={EOF:0,Number:1,String:2,Boolean:3,Null:4,NaN:5,Infinity:6,Identifier:7,Colon:20,LBrace:21,RBrace:22,LBracket:23,RBracket:24,Comma:25,LineComment:40,BlockComment:41};function MP(s){return s>=48&&s<=57}t(MP,"isDigit");function RPe(s){return MP(s)||s>=65&&s<=70||s>=97&&s<=102}t(RPe,"isHexDigit");function cXt(s){return s>=49&&s<=57}t(cXt,"isPositiveDigit");function lXt(s){return sXt.has(s)}t(lXt,"isKeywordStart");function Bnt(s){return MP(s)||s===46||s===45}t(Bnt,"isNumberStart");function uXt(s){return Bnt(s)||s===43}t(uXt,"isJSON5NumberStart");function jnt(s,o){return s===34||o&&s===39}t(jnt,"isStringStart");function Unt(s){if(s===36||s===95||s===92||s>=97&&s<=122||s>=65&&s<=90||s===8204||s===8205)return!0;let o=String.fromCharCode(s);return eXt.test(o)}t(Unt,"isJSON5IdentifierStart");function fXt(s){if(Unt(s)||MP(s))return!0;let o=String.fromCharCode(s);return tXt.test(o)}t(fXt,"isJSON5IdentifierPart");var $Pe=class{static{t(this,"Tokenizer")}#e;#n;#t;#r;#s;#m;#c;#u;#f;#p;#a;constructor(o,f){this.#n=o,this.#e={...aXt,...f},this.#t=new UPe(o),this.#r=this.#e.mode==="json5",this.#s=this.#e.mode!=="json",this.#m=this.#e.ranges,this.#u=this.#r?Poe.has.bind(Poe):EV.has.bind(EV),this.#f=this.#r?MPe.has.bind(MPe):()=>!1,this.#p=this.#r?d=>d===120:()=>!1,this.#a=this.#r?Mnt.has.bind(Mnt):zPe.has.bind(zPe)}#i(o,f=this.#t.locate()){throw new jPe(o,f)}#o(o,f=this.#t.locate()){throw new BPe(o,f)}#h(){throw new Aoe(this.#t.locate())}#d(o,f,d,y){let E=d.offset+f,P=this.#e.ranges?{range:[d.offset,E]}:void 0;return{type:o,loc:{start:d,end:y||{line:d.line,column:d.column+f,offset:E}},...P}}#_(o){let f="",d;for(let y=0;y<o;y++){if(d=this.#t.peek(),RPe(d)){this.#t.next(),f+=String.fromCharCode(d);continue}this.#i(d)}return f}#y(o){let f="";do{if(f+=String.fromCharCode(o),o===92&&(o=this.#t.next(),o!==117&&this.#i(o),f+=String.fromCharCode(o),f+=this.#_(4)),o=this.#t.peek(),!fXt(o))break;this.#t.next()}while(!0);return f}#b(o){let f=o,d=1;for(o=this.#t.peek();o!==-1&&o!==f;){if(this.#t.next(),d++,o===92)if(o=this.#t.peek(),this.#u(o)||this.#f(o))this.#t.next(),d++;else if(o===117){this.#t.next(),d++;let y=this.#_(4);d+=y.length}else if(this.#p(o)){this.#t.next(),d++;let y=this.#_(2);d+=y.length}else this.#r?(this.#t.next(),d++):this.#i(o);o=this.#t.peek()}return o===-1&&(this.#t.next(),this.#h()),this.#t.next(),d++,d}#v(o){let f=1;if(o===45||this.#r&&o===43){if(o=this.#t.peek(),this.#r&&(o===73||o===78)){this.#t.next();let d=this.#y(o);return d!==nXt&&d!==iXt&&this.#i(o),f+d.length}MP(o)||this.#i(o),this.#t.next(),f++}if(o===48)if(o=this.#t.peek(),this.#r&&(o===120||o===88)){this.#t.next(),f++,o=this.#t.peek(),RPe(o)||(this.#t.next(),this.#i(o));do this.#t.next(),f++,o=this.#t.peek();while(RPe(o))}else MP(o)&&this.#i(o);else if(!this.#r||o!==46)for(cXt(o)||this.#i(o),o=this.#t.peek();MP(o);)this.#t.next(),f++,o=this.#t.peek();if(o===46){let d=-1;for(this.#t.next(),f++,d++,o=this.#t.peek();MP(o);)this.#t.next(),f++,d++,o=this.#t.peek();!this.#r&&d===0&&(this.#t.next(),o?this.#i(o):this.#h())}if(o===101||o===69)for(this.#t.next(),f++,o=this.#t.peek(),(o===43||o===45)&&(this.#t.next(),f++,o=this.#t.peek()),o===-1&&(this.#t.next(),this.#h()),MP(o)||(this.#t.next(),this.#i(o));MP(o);)this.#t.next(),f++,o=this.#t.peek();return f}#C(o){let f=1;if(o=this.#t.peek(),o===47){do this.#t.next(),f+=1,o=this.#t.peek();while(o>-1&&o!==13&&o!==10);return{length:f,multiline:!1}}if(o===42){for(this.#t.next(),f+=1;o>-1;)if(o=this.#t.peek(),o===42){if(this.#t.next(),f+=1,o=this.#t.peek(),o===47)return this.#t.next(),f+=1,{length:f,multiline:!0}}else this.#t.next(),f+=1;this.#t.next(),this.#h()}this.#t.next(),this.#i(o)}next(){let o=this.#t.next();for(;this.#a(o);)o=this.#t.next();if(o===-1)return b_.EOF;let f=this.#t.locate(),d=String.fromCharCode(o);if(this.#r)if(woe.has(d))this.#c=this.#d(woe.get(d),1,f);else if(Unt(o)){let y=this.#y(o);woe.has(y)?this.#c=this.#d(woe.get(y),y.length,f):this.#c=this.#d("Identifier",y.length,f)}else if(uXt(o)){let y=this.#v(o);this.#c=this.#d("Number",y,f)}else if(jnt(o,this.#r)){let y=this.#b(o),E=this.#t.locate();this.#c=this.#d("String",y,f,{line:E.line,column:E.column+1,offset:E.offset+1})}else if(o===47&&this.#s){let y=this.#C(o),E=this.#t.locate();this.#c=this.#d(y.multiline?"BlockComment":"LineComment",y.length,f,{line:E.line,column:E.column+1,offset:E.offset+1})}else this.#i(o);else if(Doe.has(d))this.#c=this.#d(Doe.get(d),1,f);else if(lXt(o)){let y=this.#y(o);oXt.has(y)||this.#o(y,f),this.#c=this.#d(Doe.get(y),y.length,f)}else if(Bnt(o)){let y=this.#v(o);this.#c=this.#d("Number",y,f)}else if(jnt(o,this.#r)){let y=this.#b(o);this.#c=this.#d("String",y,f)}else if(o===47&&this.#s){let y=this.#C(o),E=this.#t.locate();this.#c=this.#d(y.multiline?"BlockComment":"LineComment",y.length,f,{line:E.line,column:E.column+1,offset:E.offset+1})}else this.#i(o);return b_[this.#c.type]}get token(){return this.#c}};var cT={document(s,o={}){return{type:"Document",body:s,loc:o.loc,...o}},string(s,o={}){return{type:"String",value:s,loc:o.loc,...o}},number(s,o={}){return{type:"Number",value:s,loc:o.loc,...o}},boolean(s,o={}){return{type:"Boolean",value:s,loc:o.loc,...o}},null(s={}){return{type:"Null",loc:s.loc,...s}},array(s,o={}){return{type:"Array",elements:s,loc:o.loc,...o}},element(s,o={}){return{type:"Element",value:s,loc:o.loc,...o}},object(s,o={}){return{type:"Object",members:s,loc:o.loc,...o}},member(s,o,f={}){return{type:"Member",name:s,value:o,loc:f.loc,...f}},identifier(s,o={}){return{type:"Identifier",name:s,loc:o.loc,...o}},nan(s="",o={}){return{type:"NaN",sign:s,loc:o.loc,...o}},infinity(s="",o={}){return{type:"Infinity",sign:s,loc:o.loc,...o}}},_Xt={mode:"json",ranges:!1,tokens:!1,allowTrailingCommas:!1};function pXt(s,o,f=!1){let d="",y=s.indexOf("\\"),E=0;for(;y>=0;){d+=s.slice(E,y);let P=s.charAt(y+1),F=P.charCodeAt(0);if(f&&Poe.has(F))d+=Poe.get(F),E=y+2;else if(EV.has(F))d+=EV.get(F),E=y+2;else if(P==="u"){let J=s.slice(y+2,y+6);if(J.length<4||/[^0-9a-f]/i.test(J))throw new jP(`Invalid unicode escape \\u${J}.`,{line:o.loc.start.line,column:o.loc.start.column+y,offset:o.loc.start.offset+y});d+=String.fromCharCode(parseInt(J,16)),E=y+6}else if(f&&P==="x"){let J=s.slice(y+2,y+4);if(J.length<2||/[^0-9a-f]/i.test(J))throw new jP(`Invalid hex escape \\x${J}.`,{line:o.loc.start.line,column:o.loc.start.column+y,offset:o.loc.start.offset+y});d+=String.fromCharCode(parseInt(J,16)),E=y+4}else if(f&&MPe.has(F))E=y+2,P==="\r"&&s.charAt(E)===`
570
570
  `&&E++;else if(f)d+=P,E=y+2;else throw new jP(`Invalid escape \\${P}.`,{line:o.loc.start.line,column:o.loc.start.column+y,offset:o.loc.start.offset+y});y=s.indexOf("\\",E)}return d+=s.slice(E),d}t(pXt,"getStringValue");function dXt(s,o,f=!1){switch(o.type){case"Boolean":return s==="true";case"Number":return Number(s);case"String":return pXt(s.slice(1,-1),o,f);default:throw new TypeError(`Unknown token type "${o.type}.`)}}t(dXt,"getLiteralValue");function znt(s,o){o=Object.freeze({..._Xt,...o});let f=[],d=new $Pe(s,{mode:o.mode,ranges:o.ranges}),y=o.mode==="json5",E=o.allowTrailingCommas||y;function P(){let wr=d.next();return wr&&o.tokens&&f.push(d.token),wr}t(P,"nextNoComments");function F(){let wr=d.next();return wr&&o.tokens&&f.push(d.token),wr>=b_.LineComment?F():wr}t(F,"nextSkipComments");let J=o.mode==="json"?P:F;function G(wr,yr){if(wr!==yr)throw new dO(d.token)}t(G,"assertTokenType");function Te(wr,yr){if(!yr.includes(wr))throw new dO(d.token)}t(Te,"assertTokenTypes");function de(wr,yr){return o.ranges?{range:[wr.offset,yr.offset]}:void 0}t(de,"createRange");function ae(wr){let yr=d.token,xs=de(yr.loc.start,yr.loc.end),bi=dXt(s.slice(yr.loc.start.offset,yr.loc.end.offset),yr,y),Ci={loc:{start:{...yr.loc.start},end:{...yr.loc.end}},...xs};switch(wr){case b_.String:return cT.string(bi,Ci);case b_.Number:return cT.number(bi,Ci);case b_.Boolean:return cT.boolean(bi,Ci);default:throw new TypeError(`Unknown token type ${yr.type}.`)}}t(ae,"createLiteralNode");function He(wr){let yr=de(wr.loc.start,wr.loc.end),xs=s.slice(wr.loc.start.offset,wr.loc.end.offset),fc={loc:{start:{...wr.loc.start},end:{...wr.loc.end}},...yr};if(wr.type!=="Identifier"){let Ci="";return(xs[0]==="+"||xs[0]==="-")&&(Ci=xs[0]),cT[xs.includes("NaN")?"nan":"infinity"](Ci,fc)}return cT.identifier(xs,fc)}t(He,"createJSON5IdentifierNode");function Ue(wr){let yr=de(wr.loc.start,wr.loc.end);return cT.null({loc:{start:{...wr.loc.start},end:{...wr.loc.end}},...yr})}t(Ue,"createNullNode");function je(wr){y?Te(wr,[b_.String,b_.Identifier,b_.Number]):G(wr,b_.String);let yr=d.token,xs=wr===b_.String?ae(wr):He(yr);if(y&&(xs.type==="NaN"||xs.type==="Infinity")){if(xs.sign!=="")throw new dO(d.token);xs=cT.identifier(xs.type,{loc:xs.loc,...de(xs.loc.start,xs.loc.end)})}wr=J(),G(wr,b_.Colon);let bi=Sr(),fc=de(xs.loc.start,bi.loc.end);return cT.member(xs,bi,{loc:{start:{...xs.loc.start},end:{...bi.loc.end}},...fc})}t(je,"parseProperty");function Yt(wr){G(wr,b_.LBrace);let yr=d.token,xs=[],bi=J();if(bi!==b_.RBrace)do{if(xs.push(je(bi)),bi=J(),!bi)throw new Aoe(xs[xs.length-1].loc.end);if(bi===b_.Comma){if(bi=J(),E&&bi===b_.RBrace)break}else break}while(bi);G(bi,b_.RBrace);let fc=d.token,Ci=de(yr.loc.start,fc.loc.end);return cT.object(xs,{loc:{start:{...yr.loc.start},end:{...fc.loc.end}},...Ci})}t(Yt,"parseObject");function zt(wr){G(wr,b_.LBracket);let yr=d.token,xs=[],bi=J();if(bi!==b_.RBracket)do{let bf=Sr(bi);if(xs.push(cT.element(bf,{loc:bf.loc})),bi=J(),bi===b_.Comma){if(bi=J(),E&&bi===b_.RBracket)break}else break}while(bi);G(bi,b_.RBracket);let fc=d.token,Ci=de(yr.loc.start,fc.loc.end);return cT.array(xs,{loc:{start:{...yr.loc.start},end:{...fc.loc.end}},...Ci})}t(zt,"parseArray");function Sr(wr){wr=wr??J();let yr=d.token;switch(wr){case b_.String:case b_.Boolean:return ae(wr);case b_.Number:if(y){let xs=s.slice(yr.loc.start.offset,yr.loc.end.offset);if((xs[0]==="+"||xs[0]==="-")&&(xs=xs.slice(1)),xs==="NaN"||xs==="Infinity")return He(yr)}return ae(wr);case b_.Null:return Ue(yr);case b_.LBrace:return Yt(wr);case b_.LBracket:return zt(wr);default:throw new dO(yr)}}t(Sr,"parseValue");let wn=Sr();if(J())throw new dO(d.token);let Jn={loc:{start:{line:1,column:1,offset:0},end:{...wn.loc.end}}};return o.tokens&&(Jn.tokens=f),o.ranges&&(Jn.range=[Jn.loc.start.offset,Jn.loc.end.offset]),cT.document(wn,Jn)}t(znt,"parse");var mXt=new Map([["Document",["body"]],["Object",["members"]],["Member",["name","value"]],["Element",["value"]],["Array",["elements"]],["String",[]],["Number",[]],["Boolean",[]],["Null",[]],["NaN",[]],["Infinity",[]],["Identifier",[]]]);function $nt(s){return s&&typeof s=="object"}t($nt,"isObject");function hXt(s){return $nt(s)&&typeof s.type=="string"}t(hXt,"isNode");function gXt(s,o){function f(d,y){typeof o.enter=="function"&&o.enter(d,y);for(let E of mXt.get(d.type)){let P=d[E];$nt(P)&&(Array.isArray(P)?P.forEach(F=>f(F,d)):hXt(P)&&f(P,d))}typeof o.exit=="function"&&o.exit(d,y)}t(f,"visitNode"),f(s)}t(gXt,"traverse");function Jnt(s,o=()=>!0){let f=[];return gXt(s,{enter(d,y){f.push({node:d,parent:y,phase:"enter"})},exit(d,y){f.push({node:d,parent:y,phase:"exit"})}}),f.filter(o).values()}t(Jnt,"iterator");import yXt from"node:fs/promises";var CV=t((s,o)=>s.split(/\r?\n/)[o-1],"getFileLineContent"),Noe=t(async s=>{try{return await yXt.readFile(s,"utf-8")}catch{return}},"getSchemaContent"),kV=t(async s=>{try{return znt(s)}catch(o){if(o.column&&o.line&&o.message){let f=CV(s,o.line);return{column:o.column,line:o.line,length:void 0,lineText:f}}return}},"getSchemaAST");var Wnt=t(async(s,o,f)=>{try{if(s.length===0)return;for(let d of s){let y=await Noe(d),E=await vXt(y,d,o,f);if(E)return E}}catch{}},"getRouteLocationByValue"),vXt=t(async(s,o,f,d)=>{try{if(!s)return;let y=null,E=await kV(s);if(E){for(let{node:P}of Jnt(E))if(P.value&&P.value===f){y=P.loc;break}if(y!==null){let P=CV(s,y.start.line);return{file:o,line:y.start.line,column:y.start.column,length:y.end.column-y.start.column,lineText:P,suggestion:d}}}}catch{}},"getRouteLocationByValueFromSchema");import qnt from"node:fs/promises";import vE from"node:path";var JPe="schemas",WPe=".oas.json";var mO=t(async s=>(await qnt.readdir(s)).map(f=>vE.join(s,f)).filter(f=>f.endsWith(WPe)).sort(),"getOpenApiFilesByAlphabetical"),W9=t(async s=>{let o=vE.resolve(s,"config");return(await qnt.readdir(o)).filter(d=>d.endsWith(WPe)).length>=1},"oasFileInProject");function wV(s,o,f,d,y,E,P){if(E.has(f))return;let F;try{F=d.get(f)}catch(Ue){throw new D1({text:`Failed to resolve reference: ${f}`,detail:Ue.message,severity:"error",message:"Failed to resolve reference",location:{file:s,column:0,line:0,length:0,lineText:f,namespace:o,suggestion:"Check the reference and try again."}})}let J=Ooe(f),G=vE.basename(J,vE.extname(J)),Te=f.indexOf("#"),de=Te>=0?f.substring(0,Te):f,ae=Te>=0?f.substring(Te+1):"",He=d.get(de);if(ae){let Ue=ae.split("/").filter(Boolean);for(let je of Ue)if(He=He[je],He===void 0)throw new Error(`Cannot resolve JSON pointer: ${ae}`)}if(He&&typeof He=="object"&&"$ref"in He&&typeof He.$ref=="string"&&!He.$ref.startsWith("#")){let Ue=vE.resolve(vE.dirname(de),He.$ref);if(J=Ue,G=vE.basename(J,vE.extname(J)),de=Ue,E.has(de)){let Yt=E.get(de);if(Yt===void 0)throw new Error(`Expected to find ${de} in refsVisited map`);E.set(f,Yt);return}let je=y.length;E.set(f,je),E.set(de,je),y.push(de),Ioe(J,G,F,d,y,E,P)}else E.set(f,y.length),y.push(f),Ioe(Ooe(f),o,F,d,y,E,P)}t(wV,"chaseRefs");function Ioe(s,o,f,d,y,E,P){if(Array.isArray(f))for(let F of f)Ioe(s,o,F,d,y,E,P);else if(typeof f=="object")for(let F in f){if(F==="$ref"){let J=f[F];P&&(f[F]=P(o,J,s)),wV(s,o,HN(s,J),d,y,E,P)}Ioe(s,o,f[F],d,y,E,P)}}t(Ioe,"lookForRefs");function HN(s,o){let f=o.indexOf("#");return f>=0?`${vE.resolve(s,o.substring(0,f))}${o.substring(f)}`:vE.resolve(vE.dirname(s),o)}t(HN,"getFullyQualifiedRefName");function Ooe(s){let o=s.indexOf("#");return o>=0?s.substring(0,o):s}t(Ooe,"getFilePathNameFromRefName");import ole from"node:path";function bXt(s){if(s.length>=255)throw new TypeError("Alphabet too long");let o=new Uint8Array(256);for(let G=0;G<o.length;G++)o[G]=255;for(let G=0;G<s.length;G++){let Te=s.charAt(G),de=Te.charCodeAt(0);if(o[de]!==255)throw new TypeError(Te+" is ambiguous");o[de]=G}let f=s.length,d=s.charAt(0),y=Math.log(f)/Math.log(256),E=Math.log(256)/Math.log(f);function P(G){if(G instanceof Uint8Array||(ArrayBuffer.isView(G)?G=new Uint8Array(G.buffer,G.byteOffset,G.byteLength):Array.isArray(G)&&(G=Uint8Array.from(G))),!(G instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(G.length===0)return"";let Te=0,de=0,ae=0,He=G.length;for(;ae!==He&&G[ae]===0;)ae++,Te++;let Ue=(He-ae)*E+1>>>0,je=new Uint8Array(Ue);for(;ae!==He;){let Sr=G[ae],wn=0;for(let sn=Ue-1;(Sr!==0||wn<de)&&sn!==-1;sn--,wn++)Sr+=256*je[sn]>>>0,je[sn]=Sr%f>>>0,Sr=Sr/f>>>0;if(Sr!==0)throw new Error("Non-zero carry");de=wn,ae++}let Yt=Ue-de;for(;Yt!==Ue&&je[Yt]===0;)Yt++;let zt=d.repeat(Te);for(;Yt<Ue;++Yt)zt+=s.charAt(je[Yt]);return zt}t(P,"encode");function F(G){if(typeof G!="string")throw new TypeError("Expected String");if(G.length===0)return new Uint8Array;let Te=0,de=0,ae=0;for(;G[Te]===d;)de++,Te++;let He=(G.length-Te)*y+1>>>0,Ue=new Uint8Array(He);for(;G[Te];){let Sr=o[G.charCodeAt(Te)];if(Sr===255)return;let wn=0;for(let sn=He-1;(Sr!==0||wn<ae)&&sn!==-1;sn--,wn++)Sr+=f*Ue[sn]>>>0,Ue[sn]=Sr%256>>>0,Sr=Sr/256>>>0;if(Sr!==0)throw new Error("Non-zero carry");ae=wn,Te++}let je=He-ae;for(;je!==He&&Ue[je]===0;)je++;let Yt=new Uint8Array(de+(He-je)),zt=de;for(;je!==He;)Yt[zt++]=Ue[je++];return Yt}t(F,"decodeUnsafe");function J(G){let Te=F(G);if(Te)return Te;throw new Error("Non-base"+f+" character")}return t(J,"decode"),{encode:P,decodeUnsafe:F,decode:J}}t(bXt,"base");var Vnt=bXt;var SXt="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Foe=Vnt(SXt);var TXt=!1;function q9(s,o){return{open:`\x1B[${s.join(";")}m`,close:`\x1B[${o}m`,regexp:new RegExp(`\\x1b\\[${o}m`,"g")}}t(q9,"code");function V9(s,o){return TXt?`${o.open}${s.replace(o.regexp,o.open)}${o.close}`:s}t(V9,"run");function xXt(s){return V9(s,q9([31],39))}t(xXt,"red");function EXt(s){return V9(s,q9([32],39))}t(EXt,"green");function CXt(s){return V9(s,q9([33],39))}t(CXt,"yellow");function kXt(s){return V9(s,q9([34],39))}t(kXt,"blue");function wXt(s){return V9(s,q9([35],39))}t(wXt,"magenta");function DXt(s){return V9(s,q9([36],39))}t(DXt,"cyan");var xCr=new RegExp(["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|"),"g");var Hnt=[xXt,EXt,CXt,kXt,wXt,DXt];function PXt(s){let o=0,f=s.length,d=0;if(f>0)for(;d<f;)o=(o<<5)-o+s.charCodeAt(d++)|0;return o}t(PXt,"hashCode");function Gnt(s){let o=Math.abs(PXt(s));return Hnt[o%Hnt.length]}t(Gnt,"generateColor");import{inspect as AXt}from"node:util";function Ynt(s,o,...f){let d=0,y=f.length,E=String(o).replace(/%[sdjoO%]/g,P=>{if(P==="%%")return"%";if(d>=y)return P;switch(P){case"%s":return String(f[d++]);case"%d":return Number(f[d++]).toString();case"%o":return s(f[d++]).split(`
571
- `).map(F=>F.trim()).join(" ");case"%O":return s(f[d++]);case"%j":try{return JSON.stringify(f[d++])}catch{return"[Circular]"}default:return P}});for(let P of f.splice(d))P===null||!(typeof P=="object"&&P!==null)?E+=" "+P:E+=" "+s(P);return E}t(Ynt,"format");var Knt=t((s,...o)=>Ynt(AXt,s,o),"format");var qPe=class{static{t(this,"Debugger")}manager;ns;color;last;enabled;constructor(o,f){this.manager=o,this.ns=f,this.color=Gnt(f),this.last=0,this.enabled=o.enabled.some(d=>d.test(f))}log(...o){if(!this.enabled)return;let f,d=o[0];typeof d=="function"?f=d():f=String(d);let y=Date.now()-(this.last||Date.now());f=Knt(f,...o);let E=`${this.color(this.ns)} ${f} ${this.color(`+${y}ms`)}`;console.log(E),this.last=Date.now()}},VPe=class{static{t(this,"DebugManager")}debuggers;enabled;constructor(o){this.debuggers=new Map,this.enabled=o??[]}};function NXt(s){return!s||s.length===0?[]:(s=s.replace(/\s/g,"").replace(/\*/g,".+"),s.split(",").map(o=>new RegExp(`^${o}$`)))}t(NXt,"extract");var Loe;function Roe(s){Loe||(Loe=new VPe(NXt(process.env.DEBUG)));let o=new qPe(Loe,s);return Loe.debuggers.set(s,o),Object.assign(o.log.bind(o),{self:o})}t(Roe,"debug");var Xnt="zp-local-service";var BP=class extends Error{static{t(this,"RuntimeError")}extensionMembers;constructor(o,f){typeof o=="string"?super(o,f):(super(o.message,f),this.extensionMembers=o.extensionMembers),this.name="RuntimeError"}};var GN=Roe("zuplo:runtime:external-service");function IXt(){let s,{__ZUPLO_EXTERNAL_SERVICE_TOKEN:o}=Cm.instance.runtime;if(o&&o!=="undefined")try{let f=atob(o);s=JSON.parse(f)}catch{}return s}t(IXt,"getServiceAuth");async function Znt(s,o){let f=".proxy",d=".tunnel";if(typeof s=="string"){let y=new URL(s),E=y.hostname;if(E.endsWith(f)){let Yt=E.slice(0,-f.length),zt=new URL(`http://${Yt}${y.pathname}${y.search}`);GN(`Routing to proxy: ${zt.toString()}`);let Sr=o??{};return DV(zt.toString(),Sr)}let P=E.endsWith(d),F=E.indexOf(".")===-1;if(!(P||F))throw new BP(`Invalid service hostname suffix: ${E}. Use .proxy for proxy routing, .tunnel for explicit tunnel routing, or no suffix for default tunnel routing.`);let G=P?E.slice(0,-d.length):E,Te=IXt();if(!Te)throw GN("There is no external service auth configured for this zup."),new BP("There are no external services configured for this zup.");GN(`Using external service auth. ClientId: ${Te.clientId})`);let de=o??{},ae=new Headers(de.headers||{});ae.set("CF-Access-Client-Id",Te.clientId),ae.set("CF-Access-Client-Secret",Te.clientSecret),de.headers=ae;let He;if(Te.customServiceMapping?.[G])He=`https://${Te.customServiceMapping[G]}`;else if(Cm.instance.useLegacyServiceRouting)He=`https://${G}.zuptunnel.com`;else{GN("Using sha256 service routing");let Yt=Cm.instance.build;if(Yt.ACCOUNT_NAME&&Yt.PROJECT_NAME&&Yt.ENVIRONMENT_TYPE){let zt=await OXt(G,Yt.ACCOUNT_NAME,Yt.PROJECT_NAME,Yt.ENVIRONMENT_TYPE),Sr=eit(Yt.ENVIRONMENT_TYPE),wn=await HPe(`${Yt.ACCOUNT_NAME}-${Yt.PROJECT_NAME}-${Sr}`);wn==="40d7ad502f5d743997999594c177184a00161a77865423511f3a1ea21eb5a5e"||wn==="d05bffe8fa91a300187d2cf43e8aa4a56bd809c442ae10d1ee49af7d29a5a11"?He=`https://${zt}.zuptunnel.com`:He=`https://${zt}.t.zuplo.app`}else throw GN("Cannot use sha256 service routing, missing build variables"),new BP("Failed to generate fully qualified tunnel url.")}let Ue=new URL(`${He}${y.pathname}${y.search}`);GN(`Calling external service: ${Ue.toString()}`);let je=await DV(Ue.toString(),de);if(je.status===403&&je.headers.get("cf-access-domain")!==null)throw PV.console.error("403 Forbidden when calling external service.",{clientId:Te.clientId,tunnelHost:He}),new BP("Could not connect to secure tunnel.");return je}else throw GN("Cannot call external service with Request object"),new BP("Currently, we only support fetch(<some_string>, ...).")}t(Znt,"externalServiceHandler");async function Qnt(s,o){if(typeof s=="string"){let f=new URL(s),d=f.hostname,y=o??{},E=`http://${d}.zuplo.svc.cluster.local:9000`,P=new URL(`${E}${f.pathname}${f.search}`),F=new Headers(y.headers||{});return F.set(Xnt,d),y.headers=F,await DV(P.toString(),y)}else throw new BP("Currently, we only support fetch(<some_string>, ...).")}t(Qnt,"clusterServiceHandler");async function OXt(s,o,f,d){let y=s.toLowerCase(),E=o.toLowerCase(),P=f.toLowerCase(),F=eit(d);GN(`Hashing service name: ${E}-${y}.${E}-${P}-${F}`);let J=await HPe(`${E}-${y}`),G=await HPe(`${E}-${P}-${F}`);return`${J}.${G}`}t(OXt,"hashServiceName");async function HPe(s){let o=new TextEncoder().encode(s),f=await crypto.subtle.digest("SHA-256",o);return Array.from(new Uint8Array(f)).map(E=>E.toString(16).padStart(2,"0")).join("").slice(0,-1)}t(HPe,"hashSegment");function eit(s){let o=s.toLowerCase();switch(o){case"production":case"preview":return o;default:return"working-copy"}}t(eit,"sanitizeEnvironmentType");var GPe=new Map;GPe.set("service:",Znt);GPe.set("local:",Qnt);var DV=globalThis.fetch;function YPe(s,o){let{transformedInit:f,mtlsCertificate:d}=FXt(o);if(typeof s=="string"){let y=new URL(s),E=GPe.get(y.protocol);return E?E(s,f):tit(s,f,d)}else return tit(s,f,d)}t(YPe,"internalFetch");globalThis.fetch=YPe;function tit(s,o,f){if(!f)return DV(s,o);if(Cm.instance.isCloudflare){let y=Cm.instance.runtime[f];if(!y)throw new Error(`mTLS certificate binding '${f}' not found. Ensure the certificate is uploaded and properly configured.`);if(typeof y!="object"||typeof y.fetch!="function")throw new Error(`mTLS certificate binding '${f}' is not a valid mTLS certificate binding. Make sure it's configured as an mTLS certificate, not an environment variable.`);return y.fetch(s,o)}else if(Cm.instance.isDeno){let d=globalThis.managedDedicatedMtlsBindings?.[f];if(!d)throw new Error(`mTLS certificate binding '${f}' not found. Ensure the certificate is uploaded and properly configured.`);if(typeof d.fetch!="function")throw new Error(`mTLS certificate binding '${f}' is not a valid mTLS certificate binding.`);return d.fetch(s,o)}else throw new Error("mTLS client certificates are not supported in this runtime environment")}t(tit,"performFetch");var FXt=t(s=>{if(!s||s instanceof Request)return{transformedInit:s,mtlsCertificate:void 0};let o=s;if(!o.zuplo)return{transformedInit:s,mtlsCertificate:void 0};let f=o.zuplo.mtlsCertificate,d=s;return d.cf={cacheEverything:o.zuplo?.cacheEverything,cacheTtl:o.zuplo?.cacheTtlSeconds},delete s.zuplo,{transformedInit:s,mtlsCertificate:f}},"transformInit");var LXt={console:{log:console.log.bind(console),info:console.info.bind(console),warn:console.warn.bind(console),error:console.error.bind(console),debug:console.debug.bind(console),assert:console.assert.bind(console),clear:console.clear.bind(console),count:console.count.bind(console),countReset:console.countReset.bind(console),dir:console.dir.bind(console),dirxml:console.dirxml.bind(console),group:console.group.bind(console),groupCollapsed:console.groupCollapsed.bind(console),groupEnd:console.groupEnd.bind(console),table:console.table.bind(console),time:console.time.bind(console),timeEnd:console.timeEnd.bind(console),timeLog:console.timeLog.bind(console),timeStamp:console.timeStamp.bind(console),trace:console.trace.bind(console),profile:console.profile.bind(console),profileEnd:console.profileEnd.bind(console)},fetch:YPe},PV=LXt;var KPe="2025-02-06",rit=Object.freeze({none:{runOutboundPoliciesOnHandlerOnAllStatuses:!1,doNotRunHooksOnSystemRoutes:!1,removeAllVendorHeadersExceptListed:!1,allowCustomPorts:!1,removeLegacyLogInitialization:!1,useForwardRedirectsPropOnUrlForwardHandler:!1,chainResponseSendingHooks:!1,return501ForUnsupportedHttpMethods:!1},"2023-03-14":{runOutboundPoliciesOnHandlerOnAllStatuses:!1,doNotRunHooksOnSystemRoutes:!1,removeAllVendorHeadersExceptListed:!1,allowCustomPorts:!1,removeLegacyLogInitialization:!1,useForwardRedirectsPropOnUrlForwardHandler:!1,chainResponseSendingHooks:!1,return501ForUnsupportedHttpMethods:!1},"2024-01-15":{runOutboundPoliciesOnHandlerOnAllStatuses:!0,doNotRunHooksOnSystemRoutes:!0,removeAllVendorHeadersExceptListed:!0,allowCustomPorts:!1,removeLegacyLogInitialization:!1,useForwardRedirectsPropOnUrlForwardHandler:!1,chainResponseSendingHooks:!1,return501ForUnsupportedHttpMethods:!1},"2024-03-14":{runOutboundPoliciesOnHandlerOnAllStatuses:!0,doNotRunHooksOnSystemRoutes:!0,removeAllVendorHeadersExceptListed:!0,allowCustomPorts:!1,removeLegacyLogInitialization:!1,useForwardRedirectsPropOnUrlForwardHandler:!1,chainResponseSendingHooks:!1,return501ForUnsupportedHttpMethods:!1},"2024-09-02":{runOutboundPoliciesOnHandlerOnAllStatuses:!0,doNotRunHooksOnSystemRoutes:!0,removeAllVendorHeadersExceptListed:!0,allowCustomPorts:!0,removeLegacyLogInitialization:!1,useForwardRedirectsPropOnUrlForwardHandler:!1,chainResponseSendingHooks:!1,return501ForUnsupportedHttpMethods:!1},"2025-02-06":{runOutboundPoliciesOnHandlerOnAllStatuses:!0,doNotRunHooksOnSystemRoutes:!0,removeAllVendorHeadersExceptListed:!0,allowCustomPorts:!0,removeLegacyLogInitialization:!0,useForwardRedirectsPropOnUrlForwardHandler:!0,chainResponseSendingHooks:!1,return501ForUnsupportedHttpMethods:!1},"2026-03-01":{runOutboundPoliciesOnHandlerOnAllStatuses:!0,doNotRunHooksOnSystemRoutes:!0,removeAllVendorHeadersExceptListed:!0,allowCustomPorts:!0,removeLegacyLogInitialization:!0,useForwardRedirectsPropOnUrlForwardHandler:!0,chainResponseSendingHooks:!0,return501ForUnsupportedHttpMethods:!0}});function nit(){return new Cm({build:{ACCOUNT_NAME:"mock-account-name",PROJECT_NAME:"mock-project-name",API_VERSION:"0.0.0",BUILD_ID:crypto.randomUUID(),TIMESTAMP:new Date().toISOString(),BUILD_ENV:"test",ZUPLO_VERSION:"0.0.0",COMPATIBILITY_DATE:KPe,ENVIRONMENT_TYPE:"mock-environment-type",GIT_SHA:void 0,IS_LOCAL_DEVELOPMENT:!1,COMPATIBILITY_FLAGS:rit[KPe]},runtime:{RUNTIME_ENV:"test",RUNTIME_STAGE:"test",__ZUPLO_DEPLOYMENT_NAME:"mock-deployment-name",__ZUPLO_LOG_LEVEL:"debug",__ZUPLO_LOG_FORMAT:"pretty",__ZUPLO_MANAGEMENT_API_URL:"",__ZUPLO_RUNTIME_TYPE:"cloudflare",__ZUPLO_AUTH_API_JWT:"",ZUPLO_SERVICE_BUCKET_ID:"bckt_mock"}})}t(nit,"getMockEnvironment");var Cm=class s{static{t(this,"Environment")}config;static#e;static#n=!1;static initialize(o){s.#e||(s.#e=new s(o),s.#n=!0)}static get instance(){return s.#n||(PV.console.debug("Environment has not been initialized. This is okay when running tests, a mock environment will be used."),s.#e??=nit()),s.#e}constructor({build:o,runtime:f}){let d;try{if(f.ZUPLO_SYSTEM_CONFIGURATIONS){let y=new TextDecoder().decode(Foe.decode(f.ZUPLO_SYSTEM_CONFIGURATIONS)),E=JSON.parse(y);for(let P of Object.keys(E))f[P]||(f[P]=E[P])}if(f.__ZUPLO_CONFIG){let y=atob(f.__ZUPLO_CONFIG);d=JSON.parse(y)}}catch(y){PV.console.error("Failed to parse runtime configuration",y)}this.config=d??{},this.build=o,this.runtime=f,this.instanceId=crypto.randomUUID()}build;runtime;instanceId;get deploymentName(){return this.runtime.__ZUPLO_DEPLOYMENT_NAME??this.config.deployment_name??void 0}get useLegacyServiceRouting(){return this.config.use_legacy_service_routing??void 0}get useProxyForFetchFromZups(){return this.config.use_proxy_for_fetch_from_zups??void 0}get devPortalBaseUrl(){return this.runtime.__ZUPLO_DEV_PORTAL_URL??this.config.dev_portal_url??"https://dev-portal-v4-1.zuplo.com"}get buildAssetsUrl(){return this.runtime.__ZUPLO_BUILD_ASSETS_URL??this.config.build_assets_url??"https://build-assets.zuplo.com"}get zuploEdgeApiUrl(){return this.config.zuplo_edge_api_url??"https://api.zuploedge.com"}get remoteLogToken(){return this.runtime.__ZUPLO_REMOTE_LOG_TOKEN??this.config.remote_log_token??void 0}get zuploClientAuthBucketId(){return this.config.zuplo_auth_client_bucket_id??"auth_o8PUdhKxSTOiB794GWPwLQCD"}get managementApiURL(){return this.runtime.__ZUPLO_MANAGEMENT_API_URL??this.config.management_api_url??"https://api.zuplo.com"}get developerApiUrl(){return this.config.developer_api_url??"https://dev.zuplo.com"}get cdnURL(){return this.runtime.__ZUPLO_CDN_URL??this.config.cdn_url??"https://cdn.zuplo.com"}get remoteLogURL(){return this.runtime.__ZUPLO_REMOTE_LOG_URL??this.config.log_event_api??"https://ellie.zuploedge.com"}get loggingId(){return this.runtime.__ZUPLO_LOGGING_ID??this.config.logging_id??void 0}get redisURL(){return this.runtime.__ZUPLO_REDIS_URL??this.config.redis_proxy_url??"https://redis-proxy.zuploedge.com"}get apiKeyServiceUrl(){return this.runtime.__ZUPLO_API_KEY_SERVICE_URL??this.config.api_key_service_url??"https://apikey.zuploedge.com"}get meteringServiceUrl(){return this.config.metering_service_url??"https://meters.zuploedge.com"}get authApiJWT(){return this.runtime.__ZUPLO_AUTH_API_JWT??void 0}get authClientId(){return this.config.auth_client_id??this.runtime.__ZUPLO_AUTH_CLIENT_ID}get authClientSecret(){return this.config.auth_client_secret??this.runtime.__ZUPLO_AUTH_CLIENT_SECRET}get authPublicKey(){return this.config.auth_public_key??this.runtime.__ZUPLO_AUTH_PUBLIC_KEY}get authPrivateKey(){return this.config.auth_private_key??this.runtime.__ZUPLO_AUTH_PRIVATE_KEY}get userLogLevel(){return this.runtime.ZUPLO_LOG_LEVEL??this.runtime.__ZUPLO_LOG_LEVEL??this.config.user_log_level??"debug"}get systemLogLevel(){return this.runtime.__ZUPLO_LOG_LEVEL??this.config.system_log_level??"debug"}get logFormat(){return this.runtime.__ZUPLO_LOG_FORMAT??this.config.log_format??"cloudflare"}get isCloudflare(){return this.runtime.__ZUPLO_RUNTIME_TYPE?this.runtime.__ZUPLO_RUNTIME_TYPE==="cloudflare":this.config.runtime_type?this.config.runtime_type==="cloudflare":typeof WebSocketPair=="function"}get isManagedDedicated(){return this.runtime.__ZUPLO_IS_MANAGED_DEDICATED==="true"}get isDeno(){if(this.runtime.__ZUPLO_RUNTIME_TYPE)return this.runtime.__ZUPLO_RUNTIME_TYPE==="deno";if(this.config.runtime_type)return this.config.runtime_type==="deno";{let o=globalThis.Deno?.version?.deno;return typeof WebSocketPair!="function"&&o}}get isLocalDevelopment(){return this.build.IS_LOCAL_DEVELOPMENT}get isTestMode(){return!!this.runtime.__ZUPLO_TEST_MODE}get systemUserAgent(){return`Zuplo/${this.build.ZUPLO_VERSION}`}get loggingEnvironmentType(){return this.isCloudflare?"edge":this.isLocalDevelopment?"local":this.isDeno?"working-copy":"unknown"}get loggingEnvironmentStage(){return this.build.ENVIRONMENT_TYPE==="PRODUCTION"?"production":this.build.ENVIRONMENT_TYPE==="PREVIEW"?"preview":this.isLocalDevelopment?"local":this.isWorkingCopy?"working-copy":"unknown"}get isWorkingCopy(){return this.build.ENVIRONMENT_TYPE==="WORKING_COPY"}get rateLimitServiceTimeoutMs(){let o=this.runtime.__ZUPLO_RATE_LIMIT_TIMEOUT_MS,f=this.config.rate_limit_service_timeout_ms,d=o??f;if(!d)return 500;let y=Number(d);return Number.isFinite(y)&&y>0?y:500}};var RXt=["ZUPLO_USER_LOGGER_DATA_DOG_API_KEY","ZUPLO_USER_LOGGER_DATA_DOG_URL","ZUPLO_LOG_LEVEL","ZUPLO_HANDLER_WRITE_LOG_LEVEL"];function iit(s){return s.startsWith("__ZUPLO")||s.startsWith("ZUPLO_")?!RXt.includes(s)&&!s.startsWith("ZUPLO_PUBLIC_"):s.startsWith("ZUDOKU_")?!s.startsWith("ZUDOKU_PUBLIC_"):!1}t(iit,"isRestrictedEnvVariableName");function sit(s){return!!s.startsWith("ZUPLO_")}t(sit,"isZuploReadableEnvVariableName");var fkr=new Proxy({},{get(s,o){let f=String(o);switch(f){case"ZUPLO_ENVIRONMENT_TYPE":return Cm.instance.loggingEnvironmentType;case"ZUPLO_ENVIRONMENT_STAGE":return Cm.instance.loggingEnvironmentStage;case"ZUPLO_ENVIRONMENT_NAME":return Cm.instance.runtime.__ZUPLO_DEPLOYMENT_NAME;case"ZUPLO_ACCOUNT_NAME":return Cm.instance.build.ACCOUNT_NAME;case"ZUPLO_PROJECT_NAME":return Cm.instance.build.PROJECT_NAME;case"ZUPLO_BUILD_ID":return Cm.instance.build.BUILD_ID;case"ZUPLO_COMPATIBILITY_DATE":return Cm.instance.build.COMPATIBILITY_DATE}if(!(iit(f)&&!sit(f)))return Cm.instance.runtime[f]}});function AV(s,o,f){return`_${UP(`${s}_${o}_${f}`)}`}t(AV,"getRawOperationDataIdentifierName");function XPe(s,o,f,d){return`_${UP(s.toLowerCase())}_${o.toLowerCase()}_${f.toLowerCase()}_${d.toLowerCase()}`}t(XPe,"getIdForParameterSchema");function ZPe(s,o,f){return`_${UP(s.toLowerCase())}_${o.toLowerCase()}_rb_${UP(f.toLowerCase())}`}t(ZPe,"getIdForRequestBodySchema");function NV(s,o){return`_${UP(s)}_${UP(o)}`}t(NV,"getIdForRefSchema");function UP(s){let o=s.replace(/\[/g,"_LBRACKET_").replace(/\]/g,"_RBRACKET_").replace(/\{/g,"_LCURLY_").replace(/\}/g,"_RCURLY_").replace(/\//g,"_SLASH_").replace(/-/g,"_DASH_").replace(/\./g,"_DOT_").replace(/\+/g,"_PLUS_").replace(/:/g,"_COLON_").replace(/@/g,"_AT_").replace(/\$/g,"_DOLLAR_").replace(/[^a-zA-Z0-9_]/g,"_");return/^[a-zA-Z_]/.test(o)||(o=`_${o}`),o}t(UP,"sanitizedIdentifierName");var eAe={};Rtt(eAe,{UnsafePathError:()=>Moe,deleteFolder:()=>KXt,dirExists:()=>QPe,fileExists:()=>UXt,getParentDirFilename:()=>HXt,isNotFileOrDirectory:()=>$Xt,listFolderContents:()=>cit,listFolders:()=>WXt,mkDirTemp:()=>zXt,mkdirForFilePathIfNotExits:()=>qXt,mkdirIfNotExists:()=>lit,safePath:()=>VXt,tarFolder:()=>GXt,untarFile:()=>YXt});import{spawn as ait}from"node:child_process";import{randomUUID as MXt}from"node:crypto";import YN from"node:fs/promises";import{platform as jXt,tmpdir as BXt}from"node:os";import O1 from"node:path";var oit=[".git","node_modules",".yarn",".DS_Store"];async function UXt(s){try{return(await YN.stat(s)).isFile()}catch{return!1}}t(UXt,"fileExists");async function zXt(){let s=process.env.BUILD_FILE_PATH??BXt(),o=MXt().replaceAll("-",""),f=O1.join(s,o);return await YN.mkdir(f,{recursive:!0}),f}t(zXt,"mkDirTemp");async function QPe(s){try{return(await YN.stat(s)).isDirectory()}catch{return!1}}t(QPe,"dirExists");async function $Xt(s){try{return await YN.stat(s),!1}catch{return!0}}t($Xt,"isNotFileOrDirectory");function JXt(s,o){let f=O1.sep==="\\"?"\\\\":O1.sep,d=new RegExp(`(.*)(${f}${o})$|(.*)(${o}${f})`),y=s.match(d);if(!y)return"";let E=s.split(y[0]);return E[1]===""?"":O1.join(O1.sep,E[1])}t(JXt,"getParentDirectory");async function WXt(s){if(!await QPe(s))return[];let o=await YN.readdir(s,{withFileTypes:!0}),f=[];for await(let d of o)oit.includes(d.name)||d.isDirectory()&&f.push(d.name);return f}t(WXt,"listFolders");async function cit(s,o,f=!0){let d=JXt(s,o),y=await YN.readdir(s,{withFileTypes:!0}),E=[];for await(let P of y)if(!oit.includes(P.name)||!f)if(P.isDirectory()){let F=await cit(O1.join(s,P.name),o,f);E.push(...F)}else E.push(O1.join(d,P.name));return E}t(cit,"listFolderContents");var lit=t(async s=>{await YN.mkdir(s,{recursive:!0})},"mkdirIfNotExists"),qXt=t(async s=>{let o=O1.dirname(s);return lit(o)},"mkdirForFilePathIfNotExits"),Moe=class extends Error{static{t(this,"UnsafePathError")}};function VXt(s){let o=O1.normalize(s),f=t(d=>{let y=O1.normalize(d),E=process.platform==="win32",P=!1;if(E?P=y.toLowerCase().startsWith(o.toLowerCase()):P=y.startsWith(o),!P)throw new Moe("Resolved path is not part of the project.");return y},"ensureSafePath");return{resolve:t((...d)=>f(O1.resolve(...d)),"resolve")}}t(VXt,"safePath");function HXt(s){return O1.join(O1.basename(O1.dirname(s)),O1.basename(s))}t(HXt,"getParentDirFilename");async function GXt({folderPath:s,outputTarPath:o,exclude:f=["node_modules",".git","dist"],logger:d}){let y=[],E=[],P;try{await new Promise((F,J)=>{let G=ait("tar",[...f.flatMap(Te=>["--exclude",Te]),...jXt()!=="darwin"?["--warning=no-file-changed"]:[],"-cvf",o,"-C",s,"."]);G.stdout.on("data",Te=>{let de=Te.toString().trim();de.length>0&&y.push(de.trim())}),G.stderr.on("data",Te=>{let de=Te.toString().trim();de.length>0&&E.push(de.trim())}),G.on("close",Te=>{P=Te,Te===0?F():J(new Error(`tar process exited with code ${Te}`))}),G.on("error",Te=>{J(Te)})})}catch(F){throw new Error("Failed to tar folder",{cause:F})}finally{d.info({stdout:y.join(`
571
+ `).map(F=>F.trim()).join(" ");case"%O":return s(f[d++]);case"%j":try{return JSON.stringify(f[d++])}catch{return"[Circular]"}default:return P}});for(let P of f.splice(d))P===null||!(typeof P=="object"&&P!==null)?E+=" "+P:E+=" "+s(P);return E}t(Ynt,"format");var Knt=t((s,...o)=>Ynt(AXt,s,o),"format");var qPe=class{static{t(this,"Debugger")}manager;ns;color;last;enabled;constructor(o,f){this.manager=o,this.ns=f,this.color=Gnt(f),this.last=0,this.enabled=o.enabled.some(d=>d.test(f))}log(...o){if(!this.enabled)return;let f,d=o[0];typeof d=="function"?f=d():f=String(d);let y=Date.now()-(this.last||Date.now());f=Knt(f,...o);let E=`${this.color(this.ns)} ${f} ${this.color(`+${y}ms`)}`;console.log(E),this.last=Date.now()}},VPe=class{static{t(this,"DebugManager")}debuggers;enabled;constructor(o){this.debuggers=new Map,this.enabled=o??[]}};function NXt(s){return!s||s.length===0?[]:(s=s.replace(/\s/g,"").replace(/\*/g,".+"),s.split(",").map(o=>new RegExp(`^${o}$`)))}t(NXt,"extract");var Loe;function Roe(s){Loe||(Loe=new VPe(NXt(process.env.DEBUG)));let o=new qPe(Loe,s);return Loe.debuggers.set(s,o),Object.assign(o.log.bind(o),{self:o})}t(Roe,"debug");var Xnt="zp-local-service";var BP=class extends Error{static{t(this,"RuntimeError")}extensionMembers;constructor(o,f){typeof o=="string"?super(o,f):(super(o.message,f),this.extensionMembers=o.extensionMembers),this.name="RuntimeError"}};var GN=Roe("zuplo:runtime:external-service");function IXt(){let s,{__ZUPLO_EXTERNAL_SERVICE_TOKEN:o}=Cm.instance.runtime;if(o&&o!=="undefined")try{let f=atob(o);s=JSON.parse(f)}catch{}return s}t(IXt,"getServiceAuth");async function Znt(s,o){let f=".proxy",d=".tunnel";if(typeof s=="string"){let y=new URL(s),E=y.hostname;if(E.endsWith(f)){let Yt=E.slice(0,-f.length),zt=new URL(`http://${Yt}${y.pathname}${y.search}`);GN(`Routing to proxy: ${zt.toString()}`);let Sr=o??{};return DV(zt.toString(),Sr)}let P=E.endsWith(d),F=E.indexOf(".")===-1;if(!(P||F))throw new BP(`Invalid service hostname suffix: ${E}. Use .proxy for proxy routing, .tunnel for explicit tunnel routing, or no suffix for default tunnel routing.`);let G=P?E.slice(0,-d.length):E,Te=IXt();if(!Te)throw GN("There is no external service auth configured for this zup."),new BP("There are no external services configured for this zup.");GN(`Using external service auth. ClientId: ${Te.clientId})`);let de=o??{},ae=new Headers(de.headers||{});ae.set("CF-Access-Client-Id",Te.clientId),ae.set("CF-Access-Client-Secret",Te.clientSecret),de.headers=ae;let He;if(Te.customServiceMapping?.[G])He=`https://${Te.customServiceMapping[G]}`;else if(Cm.instance.useLegacyServiceRouting)He=`https://${G}.zuptunnel.com`;else{GN("Using sha256 service routing");let Yt=Cm.instance.build;if(Yt.ACCOUNT_NAME&&Yt.PROJECT_NAME&&Yt.ENVIRONMENT_TYPE){let zt=await OXt(G,Yt.ACCOUNT_NAME,Yt.PROJECT_NAME,Yt.ENVIRONMENT_TYPE),Sr=eit(Yt.ENVIRONMENT_TYPE),wn=await HPe(`${Yt.ACCOUNT_NAME}-${Yt.PROJECT_NAME}-${Sr}`);wn==="40d7ad502f5d743997999594c177184a00161a77865423511f3a1ea21eb5a5e"||wn==="d05bffe8fa91a300187d2cf43e8aa4a56bd809c442ae10d1ee49af7d29a5a11"?He=`https://${zt}.zuptunnel.com`:He=`https://${zt}.t.zuplo.app`}else throw GN("Cannot use sha256 service routing, missing build variables"),new BP("Failed to generate fully qualified tunnel url.")}let Ue=new URL(`${He}${y.pathname}${y.search}`);GN(`Calling external service: ${Ue.toString()}`);let je=await DV(Ue.toString(),de);if(je.status===403&&je.headers.get("cf-access-domain")!==null)throw PV.console.error("403 Forbidden when calling external service.",{clientId:Te.clientId,tunnelHost:He}),new BP("Could not connect to secure tunnel.");return je}else throw GN("Cannot call external service with Request object"),new BP("Currently, we only support fetch(<some_string>, ...).")}t(Znt,"externalServiceHandler");async function Qnt(s,o){if(typeof s=="string"){let f=new URL(s),d=f.hostname,y=o??{},E=`http://${d}.zuplo.svc.cluster.local:9000`,P=new URL(`${E}${f.pathname}${f.search}`),F=new Headers(y.headers||{});return F.set(Xnt,d),y.headers=F,await DV(P.toString(),y)}else throw new BP("Currently, we only support fetch(<some_string>, ...).")}t(Qnt,"clusterServiceHandler");async function OXt(s,o,f,d){let y=s.toLowerCase(),E=o.toLowerCase(),P=f.toLowerCase(),F=eit(d);GN(`Hashing service name: ${E}-${y}.${E}-${P}-${F}`);let J=await HPe(`${E}-${y}`),G=await HPe(`${E}-${P}-${F}`);return`${J}.${G}`}t(OXt,"hashServiceName");async function HPe(s){let o=new TextEncoder().encode(s),f=await crypto.subtle.digest("SHA-256",o);return Array.from(new Uint8Array(f)).map(E=>E.toString(16).padStart(2,"0")).join("").slice(0,-1)}t(HPe,"hashSegment");function eit(s){let o=s.toLowerCase();switch(o){case"production":case"preview":return o;default:return"working-copy"}}t(eit,"sanitizeEnvironmentType");var GPe=new Map;GPe.set("service:",Znt);GPe.set("local:",Qnt);var DV=globalThis.fetch;function YPe(s,o){let{transformedInit:f,mtlsCertificate:d}=FXt(o);if(typeof s=="string"){let y=new URL(s),E=GPe.get(y.protocol);return E?E(s,f):tit(s,f,d)}else return tit(s,f,d)}t(YPe,"internalFetch");globalThis.fetch=YPe;function tit(s,o,f){if(!f)return DV(s,o);if(Cm.instance.isCloudflare){let y=Cm.instance.runtime[f];if(!y)throw new Error(`mTLS certificate binding '${f}' not found. Ensure the certificate is uploaded and properly configured.`);if(typeof y!="object"||typeof y.fetch!="function")throw new Error(`mTLS certificate binding '${f}' is not a valid mTLS certificate binding. Make sure it's configured as an mTLS certificate, not an environment variable.`);return y.fetch(s,o)}else if(Cm.instance.isDeno){let d=globalThis.managedDedicatedMtlsBindings?.[f];if(!d)throw new Error(`mTLS certificate binding '${f}' not found. Ensure the certificate is uploaded and properly configured.`);if(typeof d.fetch!="function")throw new Error(`mTLS certificate binding '${f}' is not a valid mTLS certificate binding.`);return d.fetch(s,o)}else throw new Error("mTLS client certificates are not supported in this runtime environment")}t(tit,"performFetch");var FXt=t(s=>{if(!s||s instanceof Request)return{transformedInit:s,mtlsCertificate:void 0};let o=s;if(!o.zuplo)return{transformedInit:s,mtlsCertificate:void 0};let f=o.zuplo.mtlsCertificate,d=s;return d.cf={cacheEverything:o.zuplo?.cacheEverything,cacheTtl:o.zuplo?.cacheTtlSeconds},delete s.zuplo,{transformedInit:s,mtlsCertificate:f}},"transformInit");var LXt={console:{log:console.log.bind(console),info:console.info.bind(console),warn:console.warn.bind(console),error:console.error.bind(console),debug:console.debug.bind(console),assert:console.assert.bind(console),clear:console.clear.bind(console),count:console.count.bind(console),countReset:console.countReset.bind(console),dir:console.dir.bind(console),dirxml:console.dirxml.bind(console),group:console.group.bind(console),groupCollapsed:console.groupCollapsed.bind(console),groupEnd:console.groupEnd.bind(console),table:console.table.bind(console),time:console.time.bind(console),timeEnd:console.timeEnd.bind(console),timeLog:console.timeLog.bind(console),timeStamp:console.timeStamp.bind(console),trace:console.trace.bind(console),profile:console.profile.bind(console),profileEnd:console.profileEnd.bind(console)},fetch:YPe},PV=LXt;var KPe="2025-02-06",rit=Object.freeze({none:{runOutboundPoliciesOnHandlerOnAllStatuses:!1,doNotRunHooksOnSystemRoutes:!1,removeAllVendorHeadersExceptListed:!1,allowCustomPorts:!1,removeLegacyLogInitialization:!1,useForwardRedirectsPropOnUrlForwardHandler:!1,chainResponseSendingHooks:!1,return501ForUnsupportedHttpMethods:!1},"2023-03-14":{runOutboundPoliciesOnHandlerOnAllStatuses:!1,doNotRunHooksOnSystemRoutes:!1,removeAllVendorHeadersExceptListed:!1,allowCustomPorts:!1,removeLegacyLogInitialization:!1,useForwardRedirectsPropOnUrlForwardHandler:!1,chainResponseSendingHooks:!1,return501ForUnsupportedHttpMethods:!1},"2024-01-15":{runOutboundPoliciesOnHandlerOnAllStatuses:!0,doNotRunHooksOnSystemRoutes:!0,removeAllVendorHeadersExceptListed:!0,allowCustomPorts:!1,removeLegacyLogInitialization:!1,useForwardRedirectsPropOnUrlForwardHandler:!1,chainResponseSendingHooks:!1,return501ForUnsupportedHttpMethods:!1},"2024-03-14":{runOutboundPoliciesOnHandlerOnAllStatuses:!0,doNotRunHooksOnSystemRoutes:!0,removeAllVendorHeadersExceptListed:!0,allowCustomPorts:!1,removeLegacyLogInitialization:!1,useForwardRedirectsPropOnUrlForwardHandler:!1,chainResponseSendingHooks:!1,return501ForUnsupportedHttpMethods:!1},"2024-09-02":{runOutboundPoliciesOnHandlerOnAllStatuses:!0,doNotRunHooksOnSystemRoutes:!0,removeAllVendorHeadersExceptListed:!0,allowCustomPorts:!0,removeLegacyLogInitialization:!1,useForwardRedirectsPropOnUrlForwardHandler:!1,chainResponseSendingHooks:!1,return501ForUnsupportedHttpMethods:!1},"2025-02-06":{runOutboundPoliciesOnHandlerOnAllStatuses:!0,doNotRunHooksOnSystemRoutes:!0,removeAllVendorHeadersExceptListed:!0,allowCustomPorts:!0,removeLegacyLogInitialization:!0,useForwardRedirectsPropOnUrlForwardHandler:!0,chainResponseSendingHooks:!1,return501ForUnsupportedHttpMethods:!1},"2026-03-01":{runOutboundPoliciesOnHandlerOnAllStatuses:!0,doNotRunHooksOnSystemRoutes:!0,removeAllVendorHeadersExceptListed:!0,allowCustomPorts:!0,removeLegacyLogInitialization:!0,useForwardRedirectsPropOnUrlForwardHandler:!0,chainResponseSendingHooks:!0,return501ForUnsupportedHttpMethods:!0}});function nit(){return new Cm({build:{ACCOUNT_NAME:"mock-account-name",PROJECT_NAME:"mock-project-name",API_VERSION:"0.0.0",BUILD_ID:crypto.randomUUID(),TIMESTAMP:new Date().toISOString(),BUILD_ENV:"test",ZUPLO_VERSION:"0.0.0",COMPATIBILITY_DATE:KPe,ENVIRONMENT_TYPE:"mock-environment-type",GIT_SHA:void 0,IS_LOCAL_DEVELOPMENT:!1,COMPATIBILITY_FLAGS:rit[KPe]},runtime:{RUNTIME_ENV:"test",RUNTIME_STAGE:"test",__ZUPLO_DEPLOYMENT_NAME:"mock-deployment-name",__ZUPLO_LOG_LEVEL:"debug",__ZUPLO_LOG_FORMAT:"pretty",__ZUPLO_MANAGEMENT_API_URL:"",__ZUPLO_RUNTIME_TYPE:"cloudflare",__ZUPLO_AUTH_API_JWT:"",ZUPLO_SERVICE_BUCKET_ID:"bckt_mock"}})}t(nit,"getMockEnvironment");var Cm=class s{static{t(this,"Environment")}config;static#e;static#n=!1;static initialize(o){s.#e||(s.#e=new s(o),s.#n=!0)}static get instance(){return s.#n||(PV.console.debug("Environment has not been initialized. This is okay when running tests, a mock environment will be used."),s.#e??=nit()),s.#e}constructor({build:o,runtime:f}){let d;try{if(f.ZUPLO_SYSTEM_CONFIGURATIONS){let y=new TextDecoder().decode(Foe.decode(f.ZUPLO_SYSTEM_CONFIGURATIONS)),E=JSON.parse(y);for(let P of Object.keys(E))f[P]||(f[P]=E[P])}if(f.__ZUPLO_CONFIG){let y=atob(f.__ZUPLO_CONFIG);d=JSON.parse(y)}}catch(y){PV.console.error("Failed to parse runtime configuration",y)}this.config=d??{},this.build=o,this.runtime=f,this.instanceId=crypto.randomUUID()}build;runtime;instanceId;get deploymentName(){return this.runtime.__ZUPLO_DEPLOYMENT_NAME??this.config.deployment_name??void 0}get accountName(){return this.build.ACCOUNT_NAME??this.runtime.ZUPLO_ACCOUNT_NAME??void 0}get projectName(){return this.build.PROJECT_NAME??this.runtime.ZUPLO_PROJECT_NAME??void 0}get useLegacyServiceRouting(){return this.config.use_legacy_service_routing??void 0}get useProxyForFetchFromZups(){return this.config.use_proxy_for_fetch_from_zups??void 0}get devPortalBaseUrl(){return this.runtime.__ZUPLO_DEV_PORTAL_URL??this.config.dev_portal_url??"https://dev-portal-v4-1.zuplo.com"}get buildAssetsUrl(){return this.runtime.__ZUPLO_BUILD_ASSETS_URL??this.config.build_assets_url??"https://build-assets.zuplo.com"}get zuploEdgeApiUrl(){return this.config.zuplo_edge_api_url??"https://api.zuploedge.com"}get remoteLogToken(){return this.runtime.__ZUPLO_REMOTE_LOG_TOKEN??this.config.remote_log_token??void 0}get zuploClientAuthBucketId(){return this.config.zuplo_auth_client_bucket_id??"auth_o8PUdhKxSTOiB794GWPwLQCD"}get managementApiURL(){return this.runtime.__ZUPLO_MANAGEMENT_API_URL??this.config.management_api_url??"https://api.zuplo.com"}get developerApiUrl(){return this.config.developer_api_url??"https://dev.zuplo.com"}get cdnURL(){return this.runtime.__ZUPLO_CDN_URL??this.config.cdn_url??"https://cdn.zuplo.com"}get remoteLogURL(){return this.runtime.__ZUPLO_REMOTE_LOG_URL??this.config.log_event_api??"https://ellie.zuploedge.com"}get loggingId(){return this.runtime.__ZUPLO_LOGGING_ID??this.config.logging_id??void 0}get redisURL(){return this.runtime.__ZUPLO_REDIS_URL??this.config.redis_proxy_url??"https://redis-proxy.zuploedge.com"}get apiKeyServiceUrl(){return this.runtime.__ZUPLO_API_KEY_SERVICE_URL??this.config.api_key_service_url??"https://apikey.zuploedge.com"}get meteringServiceUrl(){return this.config.metering_service_url??"https://meters.zuploedge.com"}get authApiJWT(){return this.runtime.__ZUPLO_AUTH_API_JWT??void 0}get authClientId(){return this.config.auth_client_id??this.runtime.__ZUPLO_AUTH_CLIENT_ID}get authClientSecret(){return this.config.auth_client_secret??this.runtime.__ZUPLO_AUTH_CLIENT_SECRET}get authPublicKey(){return this.config.auth_public_key??this.runtime.__ZUPLO_AUTH_PUBLIC_KEY}get authPrivateKey(){return this.config.auth_private_key??this.runtime.__ZUPLO_AUTH_PRIVATE_KEY}get userLogLevel(){return this.runtime.ZUPLO_LOG_LEVEL??this.runtime.__ZUPLO_LOG_LEVEL??this.config.user_log_level??"debug"}get systemLogLevel(){return this.runtime.__ZUPLO_LOG_LEVEL??this.config.system_log_level??"debug"}get logFormat(){return this.runtime.__ZUPLO_LOG_FORMAT??this.config.log_format??"cloudflare"}get isCloudflare(){return this.runtime.__ZUPLO_RUNTIME_TYPE?this.runtime.__ZUPLO_RUNTIME_TYPE==="cloudflare":this.config.runtime_type?this.config.runtime_type==="cloudflare":typeof WebSocketPair=="function"}get isManagedDedicated(){return this.runtime.__ZUPLO_IS_MANAGED_DEDICATED==="true"}get isDeno(){if(this.runtime.__ZUPLO_RUNTIME_TYPE)return this.runtime.__ZUPLO_RUNTIME_TYPE==="deno";if(this.config.runtime_type)return this.config.runtime_type==="deno";{let o=globalThis.Deno?.version?.deno;return typeof WebSocketPair!="function"&&o}}get isLocalDevelopment(){return this.build.IS_LOCAL_DEVELOPMENT}get isTestMode(){return!!this.runtime.__ZUPLO_TEST_MODE}get systemUserAgent(){return`Zuplo/${this.build.ZUPLO_VERSION}`}get loggingEnvironmentType(){return this.isCloudflare?"edge":this.isLocalDevelopment?"local":this.isDeno?"working-copy":"unknown"}get loggingEnvironmentStage(){return this.build.ENVIRONMENT_TYPE==="PRODUCTION"?"production":this.build.ENVIRONMENT_TYPE==="PREVIEW"?"preview":this.isLocalDevelopment?"local":this.isWorkingCopy?"working-copy":"unknown"}get isWorkingCopy(){return this.build.ENVIRONMENT_TYPE==="WORKING_COPY"}get rateLimitServiceTimeoutMs(){let o=this.runtime.__ZUPLO_RATE_LIMIT_TIMEOUT_MS,f=this.config.rate_limit_service_timeout_ms,d=o??f;if(!d)return 500;let y=Number(d);return Number.isFinite(y)&&y>0?y:500}};var RXt=["ZUPLO_USER_LOGGER_DATA_DOG_API_KEY","ZUPLO_USER_LOGGER_DATA_DOG_URL","ZUPLO_LOG_LEVEL","ZUPLO_HANDLER_WRITE_LOG_LEVEL"];function iit(s){return s.startsWith("__ZUPLO")||s.startsWith("ZUPLO_")?!RXt.includes(s)&&!s.startsWith("ZUPLO_PUBLIC_"):s.startsWith("ZUDOKU_")?!s.startsWith("ZUDOKU_PUBLIC_"):!1}t(iit,"isRestrictedEnvVariableName");function sit(s){return!!s.startsWith("ZUPLO_")}t(sit,"isZuploReadableEnvVariableName");var fkr=new Proxy({},{get(s,o){let f=String(o);switch(f){case"ZUPLO_ENVIRONMENT_TYPE":return Cm.instance.loggingEnvironmentType;case"ZUPLO_ENVIRONMENT_STAGE":return Cm.instance.loggingEnvironmentStage;case"ZUPLO_ENVIRONMENT_NAME":return Cm.instance.runtime.__ZUPLO_DEPLOYMENT_NAME;case"ZUPLO_ACCOUNT_NAME":return Cm.instance.accountName;case"ZUPLO_PROJECT_NAME":return Cm.instance.projectName;case"ZUPLO_BUILD_ID":return Cm.instance.build.BUILD_ID;case"ZUPLO_COMPATIBILITY_DATE":return Cm.instance.build.COMPATIBILITY_DATE}if(!(iit(f)&&!sit(f)))return Cm.instance.runtime[f]}});function AV(s,o,f){return`_${UP(`${s}_${o}_${f}`)}`}t(AV,"getRawOperationDataIdentifierName");function XPe(s,o,f,d){return`_${UP(s.toLowerCase())}_${o.toLowerCase()}_${f.toLowerCase()}_${d.toLowerCase()}`}t(XPe,"getIdForParameterSchema");function ZPe(s,o,f){return`_${UP(s.toLowerCase())}_${o.toLowerCase()}_rb_${UP(f.toLowerCase())}`}t(ZPe,"getIdForRequestBodySchema");function NV(s,o){return`_${UP(s)}_${UP(o)}`}t(NV,"getIdForRefSchema");function UP(s){let o=s.replace(/\[/g,"_LBRACKET_").replace(/\]/g,"_RBRACKET_").replace(/\{/g,"_LCURLY_").replace(/\}/g,"_RCURLY_").replace(/\//g,"_SLASH_").replace(/-/g,"_DASH_").replace(/\./g,"_DOT_").replace(/\+/g,"_PLUS_").replace(/:/g,"_COLON_").replace(/@/g,"_AT_").replace(/\$/g,"_DOLLAR_").replace(/[^a-zA-Z0-9_]/g,"_");return/^[a-zA-Z_]/.test(o)||(o=`_${o}`),o}t(UP,"sanitizedIdentifierName");var eAe={};Rtt(eAe,{UnsafePathError:()=>Moe,deleteFolder:()=>KXt,dirExists:()=>QPe,fileExists:()=>UXt,getParentDirFilename:()=>HXt,isNotFileOrDirectory:()=>$Xt,listFolderContents:()=>cit,listFolders:()=>WXt,mkDirTemp:()=>zXt,mkdirForFilePathIfNotExits:()=>qXt,mkdirIfNotExists:()=>lit,safePath:()=>VXt,tarFolder:()=>GXt,untarFile:()=>YXt});import{spawn as ait}from"node:child_process";import{randomUUID as MXt}from"node:crypto";import YN from"node:fs/promises";import{platform as jXt,tmpdir as BXt}from"node:os";import O1 from"node:path";var oit=[".git","node_modules",".yarn",".DS_Store"];async function UXt(s){try{return(await YN.stat(s)).isFile()}catch{return!1}}t(UXt,"fileExists");async function zXt(){let s=process.env.BUILD_FILE_PATH??BXt(),o=MXt().replaceAll("-",""),f=O1.join(s,o);return await YN.mkdir(f,{recursive:!0}),f}t(zXt,"mkDirTemp");async function QPe(s){try{return(await YN.stat(s)).isDirectory()}catch{return!1}}t(QPe,"dirExists");async function $Xt(s){try{return await YN.stat(s),!1}catch{return!0}}t($Xt,"isNotFileOrDirectory");function JXt(s,o){let f=O1.sep==="\\"?"\\\\":O1.sep,d=new RegExp(`(.*)(${f}${o})$|(.*)(${o}${f})`),y=s.match(d);if(!y)return"";let E=s.split(y[0]);return E[1]===""?"":O1.join(O1.sep,E[1])}t(JXt,"getParentDirectory");async function WXt(s){if(!await QPe(s))return[];let o=await YN.readdir(s,{withFileTypes:!0}),f=[];for await(let d of o)oit.includes(d.name)||d.isDirectory()&&f.push(d.name);return f}t(WXt,"listFolders");async function cit(s,o,f=!0){let d=JXt(s,o),y=await YN.readdir(s,{withFileTypes:!0}),E=[];for await(let P of y)if(!oit.includes(P.name)||!f)if(P.isDirectory()){let F=await cit(O1.join(s,P.name),o,f);E.push(...F)}else E.push(O1.join(d,P.name));return E}t(cit,"listFolderContents");var lit=t(async s=>{await YN.mkdir(s,{recursive:!0})},"mkdirIfNotExists"),qXt=t(async s=>{let o=O1.dirname(s);return lit(o)},"mkdirForFilePathIfNotExits"),Moe=class extends Error{static{t(this,"UnsafePathError")}};function VXt(s){let o=O1.normalize(s),f=t(d=>{let y=O1.normalize(d),E=process.platform==="win32",P=!1;if(E?P=y.toLowerCase().startsWith(o.toLowerCase()):P=y.startsWith(o),!P)throw new Moe("Resolved path is not part of the project.");return y},"ensureSafePath");return{resolve:t((...d)=>f(O1.resolve(...d)),"resolve")}}t(VXt,"safePath");function HXt(s){return O1.join(O1.basename(O1.dirname(s)),O1.basename(s))}t(HXt,"getParentDirFilename");async function GXt({folderPath:s,outputTarPath:o,exclude:f=["node_modules",".git","dist"],logger:d}){let y=[],E=[],P;try{await new Promise((F,J)=>{let G=ait("tar",[...f.flatMap(Te=>["--exclude",Te]),...jXt()!=="darwin"?["--warning=no-file-changed"]:[],"-cvf",o,"-C",s,"."]);G.stdout.on("data",Te=>{let de=Te.toString().trim();de.length>0&&y.push(de.trim())}),G.stderr.on("data",Te=>{let de=Te.toString().trim();de.length>0&&E.push(de.trim())}),G.on("close",Te=>{P=Te,Te===0?F():J(new Error(`tar process exited with code ${Te}`))}),G.on("error",Te=>{J(Te)})})}catch(F){throw new Error("Failed to tar folder",{cause:F})}finally{d.info({stdout:y.join(`
572
572
  `),stderr:E.join(`
573
573
  `),exitCode:P},"Tar process logs")}}t(GXt,"tarFolder");async function YXt({tarFilePath:s,outputDir:o,logger:f}){let d=[],y=[],E;try{await new Promise((P,F)=>{let J=ait("sh",["-c",`tar -xvf ${s} -C ${o};`]);J.stdout.on("data",G=>{let Te=G.toString().trim();Te.length>0&&d.push(Te.trim())}),J.stderr.on("data",G=>{let Te=G.toString().trim();Te.length>0&&y.push(Te.trim())}),J.on("close",G=>{E=G,G===0?P():F(new Error(`tar process exited with code ${G}`))}),J.on("error",G=>{F(G)})})}catch(P){throw new Error("Failed to untar file",{cause:P})}finally{f.info({stdout:d.join(`
574
574
  `),stderr:y.join(`
575
- `),exitCode:E},"Untar process logs")}}t(YXt,"untarFile");async function KXt(s){if(await QPe(s))return await YN.rm(s,{recursive:!0})}t(KXt,"deleteFolder");var eu=eAe;var _lt=Hp(Ast(),1);var Nst=["ai-gateway-semantic-cache-inbound","ai-gateway-semantic-cache-outbound","akamai-ai-firewall","akamai-firewall-for-ai-inbound","akamai-firewall-for-ai-outbound","prompt-injection-outbound","semantic-cache-inbound"];var WV=class{static{t(this,"R")}type=3;name="";prefix="";value="";suffix="";modifier=3;constructor(s,o,f,d,y,E){this.type=s,this.name=o,this.prefix=f,this.value=d,this.suffix=y,this.modifier=E}hasCustomName(){return this.name!==""&&typeof this.name!="number"}},xer=/[$_\p{ID_Start}]/u,Eer=/[$_\u200C\u200D\p{ID_Continue}]/u,FAe=".*";function Cer(s,o){return(o?/^[\x00-\xFF]*$/:/^[\x00-\x7F]*$/).test(s)}t(Cer,"Re");function Fst(s,o=!1){let f=[],d=0;for(;d<s.length;){let y=s[d],E=t(function(P){if(!o)throw new TypeError(P);f.push({type:"INVALID_CHAR",index:d,value:s[d++]})},"c");if(y==="*"){f.push({type:"ASTERISK",index:d,value:s[d++]});continue}if(y==="+"||y==="?"){f.push({type:"OTHER_MODIFIER",index:d,value:s[d++]});continue}if(y==="\\"){f.push({type:"ESCAPED_CHAR",index:d++,value:s[d++]});continue}if(y==="{"){f.push({type:"OPEN",index:d,value:s[d++]});continue}if(y==="}"){f.push({type:"CLOSE",index:d,value:s[d++]});continue}if(y===":"){let P="",F=d+1;for(;F<s.length;){let J=s.substr(F,1);if(F===d+1&&xer.test(J)||F!==d+1&&Eer.test(J)){P+=s[F++];continue}break}if(!P){E(`Missing parameter name at ${d}`);continue}f.push({type:"NAME",index:d,value:P}),d=F;continue}if(y==="("){let P=1,F="",J=d+1,G=!1;if(s[J]==="?"){E(`Pattern cannot start with "?" at ${J}`);continue}for(;J<s.length;){if(!Cer(s[J],!1)){E(`Invalid character '${s[J]}' at ${J}.`),G=!0;break}if(s[J]==="\\"){F+=s[J++]+s[J++];continue}if(s[J]===")"){if(P--,P===0){J++;break}}else if(s[J]==="("&&(P++,s[J+1]!=="?")){E(`Capturing groups are not allowed at ${J}`),G=!0;break}F+=s[J++]}if(G)continue;if(P){E(`Unbalanced pattern at ${d}`);continue}if(!F){E(`Missing pattern at ${d}`);continue}f.push({type:"REGEX",index:d,value:F}),d=J;continue}f.push({type:"CHAR",index:d,value:s[d++]})}return f.push({type:"END",index:d,value:""}),f}t(Fst,"v");function Lst(s,o={}){let f=Fst(s);o.delimiter??="/#?",o.prefixes??="./";let d=`[^${fT(o.delimiter)}]+?`,y=[],E=0,P=0,F="",J=new Set,G=t(wn=>{if(P<f.length&&f[P].type===wn)return f[P++].value},"a"),Te=t(()=>G("OTHER_MODIFIER")??G("ASTERISK"),"f"),de=t(wn=>{let sn=G(wn);if(sn!==void 0)return sn;let{type:Jn,index:wr}=f[P];throw new TypeError(`Unexpected ${Jn} at ${wr}, expected ${wn}`)},"d"),ae=t(()=>{let wn="",sn;for(;sn=G("CHAR")??G("ESCAPED_CHAR");)wn+=sn;return wn},"T"),He=t(wn=>wn,"Se"),Ue=o.encodePart||He,je="",Yt=t(wn=>{je+=wn},"U"),zt=t(()=>{je.length&&(y.push(new WV(3,"","",Ue(je),"",3)),je="")},"$"),Sr=t((wn,sn,Jn,wr,yr)=>{let xs=3;switch(yr){case"?":xs=1;break;case"*":xs=0;break;case"+":xs=2;break}if(!sn&&!Jn&&xs===3){Yt(wn);return}if(zt(),!sn&&!Jn){if(!wn)return;y.push(new WV(3,"","",Ue(wn),"",xs));return}let bi;Jn?Jn==="*"?bi=FAe:bi=Jn:bi=d;let fc=2;bi===d?(fc=1,bi=""):bi===FAe&&(fc=0,bi="");let Ci;if(sn?Ci=sn:Jn&&(Ci=E++),J.has(Ci))throw new TypeError(`Duplicate name '${Ci}'.`);J.add(Ci),y.push(new WV(fc,Ci,Ue(wn),bi,Ue(wr),xs))},"V");for(;P<f.length;){let wn=G("CHAR"),sn=G("NAME"),Jn=G("REGEX");if(!sn&&!Jn&&(Jn=G("ASTERISK")),sn||Jn){let yr=wn??"";o.prefixes.indexOf(yr)===-1&&(Yt(yr),yr=""),zt();let xs=Te();Sr(yr,sn,Jn,"",xs);continue}let wr=wn??G("ESCAPED_CHAR");if(wr){Yt(wr);continue}if(G("OPEN")){let yr=ae(),xs=G("NAME"),bi=G("REGEX");!xs&&!bi&&(bi=G("ASTERISK"));let fc=ae();de("CLOSE");let Ci=Te();Sr(yr,xs,bi,fc,Ci);continue}zt(),de("END")}return y}t(Lst,"D");function fT(s){return s.replace(/([.+*?^${}()[\]|/\\])/g,"\\$1")}t(fT,"S");function Ist(s){return s&&s.ignoreCase?"ui":"u"}t(Ist,"X");function ker(s,o,f){return Rst(Lst(s,f),o,f)}t(ker,"Z");function X9(s){switch(s){case 0:return"*";case 1:return"?";case 2:return"+";case 3:return""}}t(X9,"k");function Rst(s,o,f={}){f.delimiter??="/#?",f.prefixes??="./",f.sensitive??=!1,f.strict??=!1,f.end??=!0,f.start??=!0,f.endsWith="";let d=f.start?"^":"";for(let F of s){if(F.type===3){F.modifier===3?d+=fT(F.value):d+=`(?:${fT(F.value)})${X9(F.modifier)}`;continue}o&&o.push(F.name);let J=`[^${fT(f.delimiter)}]+?`,G=F.value;if(F.type===1?G=J:F.type===0&&(G=FAe),!F.prefix.length&&!F.suffix.length){F.modifier===3||F.modifier===1?d+=`(${G})${X9(F.modifier)}`:d+=`((?:${G})${X9(F.modifier)})`;continue}if(F.modifier===3||F.modifier===1){d+=`(?:${fT(F.prefix)}(${G})${fT(F.suffix)})`,d+=X9(F.modifier);continue}d+=`(?:${fT(F.prefix)}`,d+=`((?:${G})(?:`,d+=fT(F.suffix),d+=fT(F.prefix),d+=`(?:${G}))*)${fT(F.suffix)})`,F.modifier===0&&(d+="?")}let y=`[${fT(f.endsWith)}]|$`,E=`[${fT(f.delimiter)}]`;if(f.end)return f.strict||(d+=`${E}?`),f.endsWith.length?d+=`(?=${y})`:d+="$",new RegExp(d,Ist(f));f.strict||(d+=`(?:${E}(?=${y}))?`);let P=!1;if(s.length){let F=s[s.length-1];F.type===3&&F.modifier===3&&(P=f.delimiter.indexOf(F)>-1)}return P||(d+=`(?=${E}|${y})`),new RegExp(d,Ist(f))}t(Rst,"F");var QN={delimiter:"",prefixes:"",sensitive:!0,strict:!0},wer={delimiter:".",prefixes:"",sensitive:!0,strict:!0},Der={delimiter:"/",prefixes:"/",sensitive:!0,strict:!0};function Per(s,o){return s.length?s[0]==="/"?!0:!o||s.length<2?!1:(s[0]=="\\"||s[0]=="{")&&s[1]=="/":!1}t(Per,"J");function Mst(s,o){return s.startsWith(o)?s.substring(o.length,s.length):s}t(Mst,"Q");function Aer(s,o){return s.endsWith(o)?s.substr(0,s.length-o.length):s}t(Aer,"Ee");function jst(s){return!s||s.length<2?!1:s[0]==="["||(s[0]==="\\"||s[0]==="{")&&s[1]==="["}t(jst,"W");var Bst=["ftp","file","http","https","ws","wss"];function Ust(s){if(!s)return!0;for(let o of Bst)if(s.test(o))return!0;return!1}t(Ust,"N");function Ner(s,o){if(s=Mst(s,"#"),o||s==="")return s;let f=new URL("https://example.com");return f.hash=s,f.hash?f.hash.substring(1,f.hash.length):""}t(Ner,"te");function Ier(s,o){if(s=Mst(s,"?"),o||s==="")return s;let f=new URL("https://example.com");return f.search=s,f.search?f.search.substring(1,f.search.length):""}t(Ier,"re");function Oer(s,o){return o||s===""?s:jst(s)?Jst(s):$st(s)}t(Oer,"ne");function Fer(s,o){if(o||s==="")return s;let f=new URL("https://example.com");return f.password=s,f.password}t(Fer,"se");function Ler(s,o){if(o||s==="")return s;let f=new URL("https://example.com");return f.username=s,f.username}t(Ler,"ie");function Rer(s,o,f){if(f||s==="")return s;if(o&&!Bst.includes(o))return new URL(`${o}:${s}`).pathname;let d=s[0]=="/";return s=new URL(d?s:"/-"+s,"https://example.com").pathname,d||(s=s.substring(2,s.length)),s}t(Rer,"ae");function Mer(s,o,f){return zst(o)===s&&(s=""),f||s===""?s:Wst(s)}t(Mer,"oe");function jer(s,o){return s=Aer(s,":"),o||s===""?s:LAe(s)}t(jer,"ce");function zst(s){switch(s){case"ws":case"http":return"80";case"wws":case"https":return"443";case"ftp":return"21";default:return""}}t(zst,"_");function LAe(s){if(s==="")return s;if(/^[-+.A-Za-z0-9]*$/.test(s))return s.toLowerCase();throw new TypeError(`Invalid protocol '${s}'.`)}t(LAe,"y");function Ber(s){if(s==="")return s;let o=new URL("https://example.com");return o.username=s,o.username}t(Ber,"le");function Uer(s){if(s==="")return s;let o=new URL("https://example.com");return o.password=s,o.password}t(Uer,"fe");function $st(s){if(s==="")return s;if(/[\t\n\r #%/:<>?@[\]^\\|]/g.test(s))throw new TypeError(`Invalid hostname '${s}'`);let o=new URL("https://example.com");return o.hostname=s,o.hostname}t($st,"z");function Jst(s){if(s==="")return s;if(/[^0-9a-fA-F[\]:]/g.test(s))throw new TypeError(`Invalid IPv6 hostname '${s}'`);return s.toLowerCase()}t(Jst,"j");function Wst(s){if(s===""||/^[0-9]*$/.test(s)&&parseInt(s)<=65535)return s;throw new TypeError(`Invalid port '${s}'.`)}t(Wst,"K");function zer(s){if(s==="")return s;let o=new URL("https://example.com");return o.pathname=s[0]!=="/"?"/-"+s:s,s[0]!=="/"?o.pathname.substring(2,o.pathname.length):o.pathname}t(zer,"he");function $er(s){return s===""?s:new URL(`data:${s}`).pathname}t($er,"ue");function Jer(s){if(s==="")return s;let o=new URL("https://example.com");return o.search=s,o.search.substring(1,o.search.length)}t(Jer,"de");function Wer(s){if(s==="")return s;let o=new URL("https://example.com");return o.hash=s,o.hash.substring(1,o.hash.length)}t(Wer,"pe");var qer=class{static{t(this,"H")}#e;#n=[];#t={};#r=0;#s=1;#m=0;#c=0;#u=0;#f=0;#p=!1;constructor(s){this.#e=s}get result(){return this.#t}parse(){for(this.#n=Fst(this.#e,!0);this.#r<this.#n.length;this.#r+=this.#s){if(this.#s=1,this.#n[this.#r].type==="END"){if(this.#c===0){this.#o(),this.#g()?this.#a(9,1):this.#E()?this.#a(8,1):this.#a(7,0);continue}else if(this.#c===2){this.#h(5);continue}this.#a(10,0);break}if(this.#u>0)if(this.#l())this.#u-=1;else continue;if(this.#A()){this.#u+=1;continue}switch(this.#c){case 0:this.#y()&&this.#h(1);break;case 1:if(this.#y()){this.#D();let s=7,o=1;this.#b()?(s=2,o=3):this.#p&&(s=2),this.#a(s,o)}break;case 2:this.#v()?this.#h(3):(this.#S()||this.#E()||this.#g())&&this.#h(5);break;case 3:this.#C()?this.#a(4,1):this.#v()&&this.#a(5,1);break;case 4:this.#v()&&this.#a(5,1);break;case 5:this.#O()?this.#f+=1:this.#N()&&(this.#f-=1),this.#k()&&!this.#f?this.#a(6,1):this.#S()?this.#a(7,0):this.#E()?this.#a(8,1):this.#g()&&this.#a(9,1);break;case 6:this.#S()?this.#a(7,0):this.#E()?this.#a(8,1):this.#g()&&this.#a(9,1);break;case 7:this.#E()?this.#a(8,1):this.#g()&&this.#a(9,1);break;case 8:this.#g()&&this.#a(9,1);break;case 9:break;case 10:break}}this.#t.hostname!==void 0&&this.#t.port===void 0&&(this.#t.port="")}#a(s,o){switch(this.#c){case 0:break;case 1:this.#t.protocol=this.#w();break;case 2:break;case 3:this.#t.username=this.#w();break;case 4:this.#t.password=this.#w();break;case 5:this.#t.hostname=this.#w();break;case 6:this.#t.port=this.#w();break;case 7:this.#t.pathname=this.#w();break;case 8:this.#t.search=this.#w();break;case 9:this.#t.hash=this.#w();break;case 10:break}this.#c!==0&&s!==10&&([1,2,3,4].includes(this.#c)&&[6,7,8,9].includes(s)&&(this.#t.hostname??=""),[1,2,3,4,5,6].includes(this.#c)&&[8,9].includes(s)&&(this.#t.pathname??=this.#p?"/":""),[1,2,3,4,5,6,7].includes(this.#c)&&s===9&&(this.#t.search??="")),this.#i(s,o)}#i(s,o){this.#c=s,this.#m=this.#r+o,this.#r+=o,this.#s=0}#o(){this.#r=this.#m,this.#s=0}#h(s){this.#o(),this.#c=s}#d(s){return s<0&&(s=this.#n.length-s),s<this.#n.length?this.#n[s]:this.#n[this.#n.length-1]}#_(s,o){let f=this.#d(s);return f.value===o&&(f.type==="CHAR"||f.type==="ESCAPED_CHAR"||f.type==="INVALID_CHAR")}#y(){return this.#_(this.#r,":")}#b(){return this.#_(this.#r+1,"/")&&this.#_(this.#r+2,"/")}#v(){return this.#_(this.#r,"@")}#C(){return this.#_(this.#r,":")}#k(){return this.#_(this.#r,":")}#S(){return this.#_(this.#r,"/")}#E(){if(this.#_(this.#r,"?"))return!0;if(this.#n[this.#r].value!=="?")return!1;let s=this.#d(this.#r-1);return s.type!=="NAME"&&s.type!=="REGEX"&&s.type!=="CLOSE"&&s.type!=="ASTERISK"}#g(){return this.#_(this.#r,"#")}#A(){return this.#n[this.#r].type=="OPEN"}#l(){return this.#n[this.#r].type=="CLOSE"}#O(){return this.#_(this.#r,"[")}#N(){return this.#_(this.#r,"]")}#w(){let s=this.#n[this.#r],o=this.#d(this.#m).index;return this.#e.substring(o,s.index)}#D(){let s={};Object.assign(s,QN),s.encodePart=LAe;let o=ker(this.#w(),void 0,s);this.#p=Ust(o)}},OAe=["protocol","username","password","hostname","port","pathname","search","hash"],ZN="*";function Ost(s,o){if(typeof s!="string")throw new TypeError("parameter 1 is not of type 'string'.");let f=new URL(s,o);return{protocol:f.protocol.substring(0,f.protocol.length-1),username:f.username,password:f.password,hostname:f.hostname,port:f.port,pathname:f.pathname,search:f.search!==""?f.search.substring(1,f.search.length):void 0,hash:f.hash!==""?f.hash.substring(1,f.hash.length):void 0}}t(Ost,"ge");function WP(s,o){return o?JV(s):s}t(WP,"b");function $V(s,o,f){let d;if(typeof o.baseURL=="string")try{d=new URL(o.baseURL),o.protocol===void 0&&(s.protocol=WP(d.protocol.substring(0,d.protocol.length-1),f)),!f&&o.protocol===void 0&&o.hostname===void 0&&o.port===void 0&&o.username===void 0&&(s.username=WP(d.username,f)),!f&&o.protocol===void 0&&o.hostname===void 0&&o.port===void 0&&o.username===void 0&&o.password===void 0&&(s.password=WP(d.password,f)),o.protocol===void 0&&o.hostname===void 0&&(s.hostname=WP(d.hostname,f)),o.protocol===void 0&&o.hostname===void 0&&o.port===void 0&&(s.port=WP(d.port,f)),o.protocol===void 0&&o.hostname===void 0&&o.port===void 0&&o.pathname===void 0&&(s.pathname=WP(d.pathname,f)),o.protocol===void 0&&o.hostname===void 0&&o.port===void 0&&o.pathname===void 0&&o.search===void 0&&(s.search=WP(d.search.substring(1,d.search.length),f)),o.protocol===void 0&&o.hostname===void 0&&o.port===void 0&&o.pathname===void 0&&o.search===void 0&&o.hash===void 0&&(s.hash=WP(d.hash.substring(1,d.hash.length),f))}catch{throw new TypeError(`invalid baseURL '${o.baseURL}'.`)}if(typeof o.protocol=="string"&&(s.protocol=jer(o.protocol,f)),typeof o.username=="string"&&(s.username=Ler(o.username,f)),typeof o.password=="string"&&(s.password=Fer(o.password,f)),typeof o.hostname=="string"&&(s.hostname=Oer(o.hostname,f)),typeof o.port=="string"&&(s.port=Mer(o.port,s.protocol,f)),typeof o.pathname=="string"){if(s.pathname=o.pathname,d&&!Per(s.pathname,f)){let y=d.pathname.lastIndexOf("/");y>=0&&(s.pathname=WP(d.pathname.substring(0,y+1),f)+s.pathname)}s.pathname=Rer(s.pathname,s.protocol,f)}return typeof o.search=="string"&&(s.search=Ier(o.search,f)),typeof o.hash=="string"&&(s.hash=Ner(o.hash,f)),s}t($V,"w");function JV(s){return s.replace(/([+*?:{}()\\])/g,"\\$1")}t(JV,"C");function Ver(s){return s.replace(/([.+*?^${}()[\]|/\\])/g,"\\$1")}t(Ver,"Oe");function Her(s,o){o.delimiter??="/#?",o.prefixes??="./",o.sensitive??=!1,o.strict??=!1,o.end??=!0,o.start??=!0,o.endsWith="";let f=".*",d=`[^${Ver(o.delimiter)}]+?`,y=/[$_\u200C\u200D\p{ID_Continue}]/u,E="";for(let P=0;P<s.length;++P){let F=s[P];if(F.type===3){if(F.modifier===3){E+=JV(F.value);continue}E+=`{${JV(F.value)}}${X9(F.modifier)}`;continue}let J=F.hasCustomName(),G=!!F.suffix.length||!!F.prefix.length&&(F.prefix.length!==1||!o.prefixes.includes(F.prefix)),Te=P>0?s[P-1]:null,de=P<s.length-1?s[P+1]:null;if(!G&&J&&F.type===1&&F.modifier===3&&de&&!de.prefix.length&&!de.suffix.length)if(de.type===3){let ae=de.value.length>0?de.value[0]:"";G=y.test(ae)}else G=!de.hasCustomName();if(!G&&!F.prefix.length&&Te&&Te.type===3){let ae=Te.value[Te.value.length-1];G=o.prefixes.includes(ae)}G&&(E+="{"),E+=JV(F.prefix),J&&(E+=`:${F.name}`),F.type===2?E+=`(${F.value})`:F.type===1?J||(E+=`(${d})`):F.type===0&&(!J&&(!Te||Te.type===3||Te.modifier!==3||G||F.prefix!=="")?E+="*":E+=`(${f})`),F.type===1&&J&&F.suffix.length&&y.test(F.suffix[0])&&(E+="\\"),E+=JV(F.suffix),G&&(E+="}"),F.modifier!==3&&(E+=X9(F.modifier))}return E}t(Her,"ke");var qst=class{static{t(this,"me")}#e;#n={};#t={};#r={};#s={};#m=!1;constructor(s={},o,f){try{let d;if(typeof o=="string"?d=o:f=o,typeof s=="string"){let F=new qer(s);if(F.parse(),s=F.result,d===void 0&&typeof s.protocol!="string")throw new TypeError("A base URL must be provided for a relative constructor string.");s.baseURL=d}else{if(!s||typeof s!="object")throw new TypeError("parameter 1 is not of type 'string' and cannot convert to dictionary.");if(d)throw new TypeError("parameter 1 is not of type 'string'.")}typeof f>"u"&&(f={ignoreCase:!1});let y={ignoreCase:f.ignoreCase===!0},E={pathname:ZN,protocol:ZN,username:ZN,password:ZN,hostname:ZN,port:ZN,search:ZN,hash:ZN};this.#e=$V(E,s,!0),zst(this.#e.protocol)===this.#e.port&&(this.#e.port="");let P;for(P of OAe){if(!(P in this.#e))continue;let F={},J=this.#e[P];switch(this.#t[P]=[],P){case"protocol":Object.assign(F,QN),F.encodePart=LAe;break;case"username":Object.assign(F,QN),F.encodePart=Ber;break;case"password":Object.assign(F,QN),F.encodePart=Uer;break;case"hostname":Object.assign(F,wer),jst(J)?F.encodePart=Jst:F.encodePart=$st;break;case"port":Object.assign(F,QN),F.encodePart=Wst;break;case"pathname":Ust(this.#n.protocol)?(Object.assign(F,Der,y),F.encodePart=zer):(Object.assign(F,QN,y),F.encodePart=$er);break;case"search":Object.assign(F,QN,y),F.encodePart=Jer;break;case"hash":Object.assign(F,QN,y),F.encodePart=Wer;break}try{this.#s[P]=Lst(J,F),this.#n[P]=Rst(this.#s[P],this.#t[P],F),this.#r[P]=Her(this.#s[P],F),this.#m=this.#m||this.#s[P].some(G=>G.type===2)}catch{throw new TypeError(`invalid ${P} pattern '${this.#e[P]}'.`)}}}catch(d){throw new TypeError(`Failed to construct 'URLPattern': ${d.message}`)}}test(s={},o){let f={pathname:"",protocol:"",username:"",password:"",hostname:"",port:"",search:"",hash:""};if(typeof s!="string"&&o)throw new TypeError("parameter 1 is not of type 'string'.");if(typeof s>"u")return!1;try{typeof s=="object"?f=$V(f,s,!1):f=$V(f,Ost(s,o),!1)}catch{return!1}let d;for(d of OAe)if(!this.#n[d].exec(f[d]))return!1;return!0}exec(s={},o){let f={pathname:"",protocol:"",username:"",password:"",hostname:"",port:"",search:"",hash:""};if(typeof s!="string"&&o)throw new TypeError("parameter 1 is not of type 'string'.");if(typeof s>"u")return;try{typeof s=="object"?f=$V(f,s,!1):f=$V(f,Ost(s,o),!1)}catch{return null}let d={};o?d.inputs=[s,o]:d.inputs=[s];let y;for(y of OAe){let E=this.#n[y].exec(f[y]);if(!E)return null;let P={};for(let[F,J]of this.#t[y].entries())if(typeof J=="string"||typeof J=="number"){let G=E[F+1];P[J]=G}d[y]={input:f[y]??"",groups:P}}return d}static compareComponent(s,o,f){let d=t((F,J)=>{for(let G of["type","modifier","prefix","value","suffix"]){if(F[G]<J[G])return-1;if(F[G]!==J[G])return 1}return 0},"o"),y=new WV(3,"","","","",3),E=new WV(0,"","","","",3),P=t((F,J)=>{let G=0;for(;G<Math.min(F.length,J.length);++G){let Te=d(F[G],J[G]);if(Te)return Te}return F.length===J.length?0:d(F[G]??y,J[G]??y)},"s");return!o.#r[s]&&!f.#r[s]?0:o.#r[s]&&!f.#r[s]?P(o.#s[s],[E]):!o.#r[s]&&f.#r[s]?P([E],f.#s[s]):P(o.#s[s],f.#s[s])}get protocol(){return this.#r.protocol}get username(){return this.#r.username}get password(){return this.#r.password}get hostname(){return this.#r.hostname}get port(){return this.#r.port}get pathname(){return this.#r.pathname}get search(){return this.#r.search}get hash(){return this.#r.hash}get hasRegExpGroups(){return this.#m}};globalThis.URLPattern||(globalThis.URLPattern=qst);import{AssertionError as Ger}from"node:assert";function qP(s,o){if(s===!1)throw new Ger({message:o})}t(qP,"assert");var Wo;(function(s){s.Object="Object",s.Property="Property",s.Array="Array",s.Literal="Literal",s.TemplateString="TemplateString",s.Identifier="Identifier",s.FunctionCall="FunctionCall",s.Raw="Raw"})(Wo||(Wo={}));function Z9(s){return s.type===Wo.Object}t(Z9,"isAstObject");function VP(s){return s.type===Wo.Property}t(VP,"isAstProperty");function RAe(s){return s.type===Wo.Array}t(RAe,"isAstArray");function bO(s){return s.type===Wo.Literal}t(bO,"isAstLiteral");function eI(s){if(s===void 0)throw new Error("Node is undefined");if(!Z9(s))throw new Error("Node is not object")}t(eI,"assertAstObject");import{findNodeAtLocation as Yer,getNodeValue as Ker,printParseErrorCode as Xer,visit as Zer}from"jsonc-parser";var Qer={DEFAULT:{allowTrailingComma:!1}};function qV(s,o=[],f=Qer.DEFAULT){let d={type:"array",offset:-1,length:-1,line:-1,column:-1,children:[],parent:void 0};function y(J){d.type==="property"&&(d.length=J-d.offset,d=d.parent)}t(y,"ensurePropertyComplete");function E(J){return d.children?.push(J),J}t(E,"onValue"),Zer(s,{onObjectBegin:t((J,G,Te)=>{d=E({type:"object",offset:J,length:-1,line:G+1,column:Te+1,parent:d,children:[]})},"onObjectBegin"),onObjectProperty:t((J,G,Te,de,ae)=>{d=E({type:"property",offset:G,length:-1,line:de+1,column:ae+1,parent:d,children:[]}),d.children?.push({type:"string",value:J,offset:G,length:Te,line:de,column:ae,parent:d})},"onObjectProperty"),onObjectEnd:t((J,G)=>{y(J+G),d.length=J+G-d.offset,d=d.parent,y(J+G)},"onObjectEnd"),onArrayBegin:t((J,G,Te,de)=>{d=E({type:"array",offset:J,length:-1,line:Te+1,column:de+1,parent:d,children:[]})},"onArrayBegin"),onArrayEnd:t((J,G)=>{d.length=J+G-d.offset,d=d.parent,y(J+G)},"onArrayEnd"),onLiteralValue:t((J,G,Te,de,ae)=>{E({type:etr(J),offset:G,length:Te,line:de+1,column:ae+1,parent:d,value:J}),y(G+Te)},"onLiteralValue"),onSeparator:t((J,G)=>{d.type==="property"&&(J===":"?d.colonOffset=G:J===","&&y(G))},"onSeparator"),onError:t((J,G,Te,de,ae)=>{o.push({error:J,offset:G,length:Te,line:de+1,column:ae+1})},"onError")},f);let F=d.children?.[0];return F&&delete F.parent,F}t(qV,"parse");function etr(s){switch(typeof s){case"boolean":return"boolean";case"number":return"number";case"string":return"string";case"object":{if(s){if(Array.isArray(s))return"array"}else return"null";return"object"}default:return"null"}}t(etr,"getNodeType");function MAe(s,o){return Yer(s,o)}t(MAe,"findNodeAtLocation");function VV(s){return Ker(s)}t(VV,"getNodeValue");function Vst(s){return Xer(s)}t(Vst,"printParseErrorCode");var HV=class{static{t(this,"AstAdapter")}parse(o){let d=qV(o,[]);if(d)return this.parseNode(d,void 0);throw new Error("Failed to parse JSON")}convert(o){return this.parseNode(o,void 0)}parseNode(o,f){switch(o.type){case"object":return this.createObject(o,f);case"array":return this.createArray(o,f);case"property":return this.createProperty(o,f);case"string":return this.createLiteral(o,f);case"number":return this.createLiteral(o,f);case"boolean":return this.createLiteral(o,f);case"null":return this.createLiteral(o,f)}}createLiteral(o,f){return{type:Wo.Literal,location:{line:o.line,column:o.column},parent:f,value:o.type==="null"?null:o.value}}createObject(o,f){let d={type:Wo.Object,children:[],parent:f,location:{line:o.line,column:o.column}};return o.children?.forEach(y=>{d.children.push(this.parseNode(y,d))}),d}createProperty(o,f){qP(o.children?.length===2,"Invalid property node");let d={type:Wo.Property,location:{line:o.line,column:o.column},parent:f,name:null,value:null};return d.name={value:o.children[0].value,location:{line:o.line,column:o.column},type:Wo.Identifier,parent:d},d.value=this.parseNode(o.children[1],d),d}createArray(o,f){let d={type:Wo.Array,location:{line:o.line,column:o.column},parent:f,children:[]};return o.children?.forEach(y=>d.children.push(this.parseNode(y,d))),d}};var DS={createLiteral:t((s,o)=>({type:Wo.Literal,parent:o,value:s}),"createLiteral"),createTemplateString:t((s,o)=>({type:Wo.TemplateString,parent:o,value:s}),"createTemplateString"),createIdentifier:t((s,o)=>({type:Wo.Identifier,value:s,parent:o}),"createIdentifier"),createProperty:t((s,o,f)=>{let d={type:Wo.Property,parent:f,name:null,value:o};return d.name={value:s,type:Wo.Identifier,parent:d},d.value.parent=d,d},"createProperty"),createArrayOfLiterals:t((s,o)=>{let f={type:Wo.Array,parent:o,children:[]};for(let d of s)f.children.push(DS.createLiteral(d,f));return f},"createArrayOfLiterals")};var ttr=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/,GV=class{static{t(this,"SourceGenerator")}generate(o){let f=[];return this.generateSource(f,o),f.join("")}generateSource(o,f){switch(f.type){case Wo.Array:return this.generateArray(o,f);case Wo.Object:return this.generateObject(o,f);case Wo.Property:return this.generateProperty(o,f);case Wo.Literal:return this.generateLiteral(o,f);case Wo.FunctionCall:return this.generateFunctionCall(o,f);case Wo.Identifier:return this.generateIdentifier(o,f);case Wo.Raw:return this.generateRaw(o,f);case Wo.TemplateString:return this.generateTemplateString(o,f)}}generateArray(o,f){o.push("["),f.children.map(d=>{this.generateSource(o,d),o.push(",")}),o.push("]")}generateObject(o,f){o.push("{"),f.children.forEach(d=>{this.generateSource(o,d),o.push(",")}),o.push("}")}generateProperty(o,f){this.generateIdentifier(o,f.name),o.push(":"),this.generateSource(o,f.value)}generateFunctionCall(o,f){o.push(f.name.value),o.push("("),f.children.forEach((d,y,E)=>{this.generateSource(o,d),y<E.length&&o.push(",")}),o.push(")")}generateRaw(o,f){o.push(f.value)}generateTemplateString(o,f){o.push("`"),o.push(f.value.replaceAll("`","\\`")),o.push("`")}generateLiteral(o,f){if(f.value===null)return o.push("null");switch(typeof f.value){case"number":case"boolean":return o.push(`${f.value}`);case"string":{let d=f.value,y=JSON.stringify(d);return o.push(`${y}`)}}}generateIdentifier(o,f){let d=ttr.test(f.value)?f.value:`'${f.value}'`;o.push(d)}};import rtr from"node:fs/promises";import{parse as ntr}from"@swc/core";var Hst=t(async s=>{let o=new Set;try{let f=await rtr.readFile(s,"utf-8");(await ntr(f,{syntax:"typescript"})).body.forEach(y=>{y.type==="ExportDefaultDeclaration"||y.type==="ExportDefaultExpression"?o.add("default"):y.type==="ExportDeclaration"&&y.declaration.type==="FunctionDeclaration"?o.add(y.declaration.identifier.value):y.type==="ExportDeclaration"&&y.declaration.type==="VariableDeclaration"&&y.declaration.declarations[0].id.type==="Identifier"&&o.add(y.declaration.declarations[0].id.value)})}catch{return null}return o},"getJSFileExports");var Gst={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"http://schemas.zuplo.com/fragments.schema.json",$defs:{corsPolicyConfiguration:{type:"object",required:["name","allowedOrigins"],additionalProperties:!1,properties:{name:{type:"string",pattern:"^[0-9a-z-]+$"},allowCredentials:{type:"boolean"},maxAge:{type:"number"},allowedOrigins:{oneOf:[{type:"array",items:{type:"string"}},{type:"string"}]},allowedMethods:{oneOf:[{type:"array",items:{$ref:"fragments.schema.json#/$defs/httpMethod"}},{type:"string"}]},allowedHeaders:{oneOf:[{type:"array",items:{type:"string"}},{type:"string"}]},exposeHeaders:{oneOf:[{type:"array",items:{type:"string"}},{type:"string"}]}}},handlerDefinition:{type:"object",properties:{module:{type:"string",pattern:"^\\$import\\([^ )]*?\\)$"},export:{type:"string"},options:{type:"object",additionalProperties:!0}},additionalProperties:!1,required:["module","export"]},httpMethod:{type:"string",enum:["GET","HEAD","POST","PUT","DELETE","CONNECT","OPTIONS","TRACE","PATCH"]}}};var jAe={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"http://schemas.zuplo.com/policies.schema.json",title:"Policies Config File",type:"object",additionalProperties:!1,properties:{policies:{type:"array",items:{$ref:"policy-configuration.schema.json"}},corsPolicies:{type:"array",items:{$ref:"fragments.schema.json#/$defs/corsPolicyConfiguration"}}}};var Yst={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"http://schemas.zuplo.com/policy-configuration.schema.json",title:"Policy Configuration Fragment",type:"object",required:["name","policyType","handler"],additionalProperties:!1,properties:{name:{type:"string",pattern:"^[0-9a-z-]+$"},policyType:{type:"string"},handler:{$ref:"fragments.schema.json#/$defs/handlerDefinition"},options:{type:"object",additionalProperties:!0}}};var BAe={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"http://schemas.zuplo.com/route-configuration.schema.json",title:"Route Configuration Fragment",description:"",type:"object",required:["path","methods","handler"],additionalProperties:!1,$defs:{corsPolicy:{type:"string",pattern:"^[0-9a-z-]+$"}},properties:{operationId:{type:"string"},path:{type:"string",pattern:"^/[^\\s]*$"},methods:{type:"array",items:{$ref:"fragments.schema.json#/$defs/httpMethod"}},label:{type:"string",description:"An internal user-friendly identifier of the route."},enforceOpenApi:{type:"boolean",description:"If true, schema validation found in the OpenAPI spec will be enforced on requests/responses."},key:{type:"string",deprecated:!0},handler:{$ref:"fragments.schema.json#/$defs/handlerDefinition"},corsPolicy:{$ref:"#/$defs/corsPolicy"},custom:{},mcp:{type:"object",additionalProperties:!1,properties:{enabled:{type:"boolean"}}},policies:{type:"object",additionalProperties:!1,properties:{inbound:{type:"array",items:{type:"string",pattern:"^[0-9a-z-]+$"}},outbound:{type:"array",items:{type:"string",pattern:"^[0-9a-z-]+$"}}}},summary:{type:"string"},description:{type:"string"},excludeFromOpenApi:{type:"boolean"},tags:{type:"array",items:{type:"string"}}}};var UAe={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"http://schemas.zuplo.com/route-configuration-open-api.schema.json",title:"Open API Route Configuration Fragment",description:"These are the properties that can appear under the x-zuplo-route extension in a PathObject in Open API. It's a subset of what can appear in Zuplo's routes.json.",type:"object",required:["handler"],additionalProperties:!1,properties:{label:{type:"string",description:"An internal user-friendly identifier of the route."},key:{type:"string",deprecated:!0},handler:{$ref:"fragments.schema.json#/$defs/handlerDefinition"},corsPolicy:{type:"string",pattern:"^[0-9a-z-]+$"},custom:{},mcp:{oneOf:[{type:"object",additionalProperties:!1,properties:{type:{const:"tool"},name:{type:"string"},description:{type:"string"},enabled:{type:"boolean"},includeOutputSchema:{type:"boolean"},includeStructuredContent:{type:"boolean"},annotations:{type:"object",additionalProperties:!1,properties:{title:{type:"string"},readOnlyHint:{type:"boolean"},destructiveHint:{type:"boolean"},idempotentHint:{type:"boolean"},openWorldHint:{type:"boolean"}}},_meta:{type:"object",additionalProperties:!0}},required:["type"]},{type:"object",additionalProperties:!1,properties:{type:{const:"prompt"},name:{type:"string"},description:{type:"string"},enabled:{type:"boolean"}},required:["type"]},{type:"object",additionalProperties:!1,properties:{type:{const:"resource"},name:{type:"string"},description:{type:"string"},uri:{type:"string"},mimeType:{type:"string"},enabled:{type:"boolean"},_meta:{type:"object",additionalProperties:!0}},required:["type"]},{type:"object",additionalProperties:!1,properties:{type:{const:"graphql"},enabled:{type:"boolean"},introspectionTool:{type:"object",additionalProperties:!1,properties:{name:{type:"string"},description:{type:"string"}}},executeTool:{type:"object",additionalProperties:!1,properties:{name:{type:"string"},description:{type:"string"}}}},required:["type"]}]},policies:{type:"object",additionalProperties:!1,properties:{inbound:{type:"array",items:{type:"string",pattern:"^[0-9a-z-]+$"}},outbound:{type:"array",items:{type:"string",pattern:"^[0-9a-z-]+$"}}}},tags:{type:"array",items:{type:"string"}}}};var tlt=Hp(Kce(),1),rlt=Hp(elt(),1);var Qce=class s{static{t(this,"JsonValidator")}static#e=new s;static get instance(){return s.#e}ajv;constructor(){this.ajv=new tlt.Ajv2020({allErrors:!0,allowUnionTypes:!0}),this.ajv.addKeyword("faker"),(0,rlt.default)(this.ajv,{mode:"fast"})}addSchema(o,f){this.ajv.addSchema(o,f)}compile(o){let f=this.ajv.compile(o);return t(y=>({isValid:f(y),errors:this.toSimpleErrors(f.errors,y),warnings:[]}),"validator")}toSimpleErrors(o,f){let d=[];return o?.forEach(y=>{y.keyword==="enum"&&y.params.allowedValues&&Array.isArray(y.params.allowedValues)&&(y.message+=`; ${y.params.allowedValues.join(", ")}`),y.instancePath&&(y.instancePath=y.instancePath.replaceAll(/(\/)?(~1)(\/)?/gm,"/"));let E={details:{}},P=y.instancePath.split("/");if(P.length>2){let J=P[1],G=P[2]?parseInt(P[2],10):0,Te=P[3],de=Number.isNaN(G)?void 0:f[J][G][Te];E={details:{property:J,index:G,field:Te,fieldValue:de}}}if(y.keyword==="required"&&y.params.missingProperty&&y.instancePath&&(y.message=`A 'path' is missing required property '${y.params.missingProperty}'`),y.keyword==="additionalProperties"&&y.params.additionalProperty&&y.instancePath&&(y.message=`A 'path' should NOT include property '${y.params.additionalProperty}'`),y.keyword==="type"&&y.params.type&&y.instancePath){let J=y.instancePath.split("/"),G=J[J.length-1];y.message=`Value of property '${G}' must be '${y.params.type}'`}let F=Object.assign(y,E);d.push(F)}),d}};var uI=Qce.instance;uI.addSchema(BAe,"route-configuration.schema.json");uI.addSchema(Yst,"policy-configuration.schema.json");uI.addSchema(jAe,"policies.schema.json");uI.addSchema(UAe,"open-api-route-configuration.schema.json");uI.addSchema(Gst,"fragments.schema.json");var ZAr=uI.compile(BAe),nlt=uI.compile(UAe),tIe=uI.compile(jAe);var ele=class{static{t(this,"PoliciesConfigurationValidator")}results;validate(o){return this.results=tIe(o),this.results}};var tle=class{static{t(this,"OpenAPILocalizedValidator")}results;validate(o){return this.results=nlt(o),this.results}};import pcr from"node:path";var rIe=/\$import\((.*)\)/,kH=/\$env\((.*?)\)/g;var Bk=class extends Error{static{t(this,"CodeGenError")}location;constructor(o,f,d,y){super(o),this.location={file:f,namespace:"",line:d?d.line:0,column:d?d.column:0,length:0,lineText:y??"",suggestion:""}}},_cr=t(s=>{let o=[],f=s;for(;f.parent;)o.push(f),f=f.parent;return o.reverse()},"invertTree"),XP=t((s,o)=>{if(!s)return!1;let f=_cr(s);return o.split("/").every((E,P)=>{let F=f[P];return F?E==="*"||VP(F)&&F.name.value===E?!0:E==="{}"?F.type===Wo.Object:E==="[]"?F.type===Wo.Array:!1:!1})},"testPosition");var rle=class{static{t(this,"AstTransformer")}errors=[];transform(o){return this.visitor(o),o}visitor(o){this.visit(o),Z9(o)?o.children.forEach(f=>{this.visitor(f)}):RAe(o)?o.children.forEach(f=>{this.visitor(f)}):VP(o)&&this.visitor(o.value)}},ilt=t(s=>{let o=new RegExp(kH).exec(s);if(o?.length===2&&o[0]===s)return{type:"raw",value:`environment["${o[1]}"]`};{let f=s.replaceAll(new RegExp(kH),(d,y)=>`\${environment["${y}"] ? environment["${y}"] : ""}`);if(f!==s)return{type:"template",value:f}}return null},"replaceEnvInString"),slt=t((s,o,f)=>d=>{if(bO(d)&&typeof d.value=="string"&&d.parent&&RAe(d.parent)){if(!s.some(P=>XP(d.parent,P))){kH.test(d.value)&&o.push(new Bk("An $env() statement is not expected at this location.",f,d.location,d.value));return}let E=ilt(d.value);if(E){let P=d.parent,F=P.children.indexOf(d);if(F!==-1)if(E.type==="raw"){let J={type:Wo.Raw,parent:P,value:E.value};P.children[F]=J}else P.children[F]=DS.createTemplateString(E.value,d)}return}if(!VP(d)||!bO(d.value)||typeof d.value.value!="string")return;if(!s.some(E=>XP(d,E))){kH.test(d.value.value)&&o.push(new Bk("An $env() statement is not expected at this location.",f,d.location,d.value.value));return}let y=ilt(d.value.value);if(y)if(y.type==="raw"){let E={type:Wo.Raw,parent:null,value:y.value};d.value=E}else d.value=DS.createTemplateString(y.value,d)},"getEnvStatementTransformer");var wH="config/routes.json",dcr=["handler/{}/options/*","handler/{}/options/*/[]","policies/[]/{}/handler/{}/options/*","policies/[]/{}/handler/{}/options/*/[]","corsPolicies/[]/{}/*","corsPolicies/[]/{}/*/[]"],mcr=["handler/{}/module","handler/{}/options/{}/policies/{}/inbound/[]/{}/module","handler/{}/options/{}/policies/{}/outbound/[]/{}/module","policies/[]/{}/handler/{}/module","policies/[]/{}/handler/{}/options/{}/identifier/{}/module","policies/[]/{}/handler/{}/options/{}/validator"],alt=["handler/{}/options/*","policies/[]/{}/handler/{}/options/*"],hcr="handler/{}/options/{}/rewritePattern",gcr="handler/{}/options/{}/baseUrl",nle=class extends rle{static{t(this,"OpenAPIRoutesFragmentAstTransformer")}importCount=0;addedImports=new Map;getImportName(o){this.addedImports.has(o)||this.addedImports.set(o,`__import${this.importCount++}`);let f=this.addedImports.get(o);if(!f)throw new Error("Import name is undefined. This should not happen.");return f}getImports(){let o=[];return this.addedImports.forEach((f,d)=>{o.push({name:f,path:d})}),o}visit(o){this.rewriteHandlerFunction(o),this.rewriteForwardFunction(o),this.replaceImportStatements(o),this.replaceEnvStatements(o)}rewriteHandlerFunction(o){if(!(!VP(o)||!bO(o.value)||typeof o.value.value!="string")&&XP(o,hcr)){if(!o.parent||!Z9(o.parent)){this.errors.push(new Bk("Invalid node, expected object",wH,o.parent?o.parent.location:o.location,void 0));return}let f=o.value.value,d={type:Wo.Raw,parent:null,value:olt(f)},y=DS.createProperty("__rewriteFunction",d,o);o.parent.children.push(y)}}rewriteForwardFunction(o){if(!(!VP(o)||!bO(o.value)||typeof o.value.value!="string")&&XP(o,gcr)){if(!o.parent||!Z9(o.parent)){this.errors.push(new Bk("Invalid node, expected object",wH,o.parent?o.parent.location:o.location,void 0));return}let f=o.value.value,d={type:Wo.Raw,parent:null,value:olt(f)},y=DS.createProperty("__rewriteFunction",d,o);o.parent.children.push(y)}}replaceImportStatements(o){if(!VP(o)||!bO(o.value))return;let f=o.value.value;if(typeof f!="string")return;if(!mcr.some(F=>XP(o,F))&&!alt.some(F=>XP(o,F))){if(rIe.test(f)){if(o.name.value==="$ref")return;this.errors.push(new Bk("An $import() statement is not expected at this location.",wH,o.location,f))}return}let d=rIe.exec(f);if(alt.some(F=>XP(o,F))&&!d)return;if(!d){this.errors.push(new Bk("Invalid $import() statement",wH,o.location,f));return}let y=d[1];y=y.replace(/\\/g,"/"),y.startsWith(".")&&(y=pcr.posix.join("..",y));let E=this.getImportName(y),P={type:Wo.Identifier,parent:o.parent,value:E};o.value=P}replaceEnvStatements=slt(dcr,this.errors,wH)};function olt(s){return`(request, context) => {
575
+ `),exitCode:E},"Untar process logs")}}t(YXt,"untarFile");async function KXt(s){if(await QPe(s))return await YN.rm(s,{recursive:!0})}t(KXt,"deleteFolder");var eu=eAe;var _lt=Hp(Ast(),1);var Nst=["ai-gateway-semantic-cache-inbound","ai-gateway-semantic-cache-inbound-v2","ai-gateway-semantic-cache-outbound","akamai-ai-firewall","akamai-ai-firewall-inbound-v2","akamai-firewall-for-ai-inbound","akamai-firewall-for-ai-outbound","comet-opik-tracing-inbound-v2","galileo-tracing-inbound-v2","prompt-injection-outbound","semantic-cache-inbound"];var WV=class{static{t(this,"R")}type=3;name="";prefix="";value="";suffix="";modifier=3;constructor(s,o,f,d,y,E){this.type=s,this.name=o,this.prefix=f,this.value=d,this.suffix=y,this.modifier=E}hasCustomName(){return this.name!==""&&typeof this.name!="number"}},xer=/[$_\p{ID_Start}]/u,Eer=/[$_\u200C\u200D\p{ID_Continue}]/u,FAe=".*";function Cer(s,o){return(o?/^[\x00-\xFF]*$/:/^[\x00-\x7F]*$/).test(s)}t(Cer,"Re");function Fst(s,o=!1){let f=[],d=0;for(;d<s.length;){let y=s[d],E=t(function(P){if(!o)throw new TypeError(P);f.push({type:"INVALID_CHAR",index:d,value:s[d++]})},"c");if(y==="*"){f.push({type:"ASTERISK",index:d,value:s[d++]});continue}if(y==="+"||y==="?"){f.push({type:"OTHER_MODIFIER",index:d,value:s[d++]});continue}if(y==="\\"){f.push({type:"ESCAPED_CHAR",index:d++,value:s[d++]});continue}if(y==="{"){f.push({type:"OPEN",index:d,value:s[d++]});continue}if(y==="}"){f.push({type:"CLOSE",index:d,value:s[d++]});continue}if(y===":"){let P="",F=d+1;for(;F<s.length;){let J=s.substr(F,1);if(F===d+1&&xer.test(J)||F!==d+1&&Eer.test(J)){P+=s[F++];continue}break}if(!P){E(`Missing parameter name at ${d}`);continue}f.push({type:"NAME",index:d,value:P}),d=F;continue}if(y==="("){let P=1,F="",J=d+1,G=!1;if(s[J]==="?"){E(`Pattern cannot start with "?" at ${J}`);continue}for(;J<s.length;){if(!Cer(s[J],!1)){E(`Invalid character '${s[J]}' at ${J}.`),G=!0;break}if(s[J]==="\\"){F+=s[J++]+s[J++];continue}if(s[J]===")"){if(P--,P===0){J++;break}}else if(s[J]==="("&&(P++,s[J+1]!=="?")){E(`Capturing groups are not allowed at ${J}`),G=!0;break}F+=s[J++]}if(G)continue;if(P){E(`Unbalanced pattern at ${d}`);continue}if(!F){E(`Missing pattern at ${d}`);continue}f.push({type:"REGEX",index:d,value:F}),d=J;continue}f.push({type:"CHAR",index:d,value:s[d++]})}return f.push({type:"END",index:d,value:""}),f}t(Fst,"v");function Lst(s,o={}){let f=Fst(s);o.delimiter??="/#?",o.prefixes??="./";let d=`[^${fT(o.delimiter)}]+?`,y=[],E=0,P=0,F="",J=new Set,G=t(wn=>{if(P<f.length&&f[P].type===wn)return f[P++].value},"a"),Te=t(()=>G("OTHER_MODIFIER")??G("ASTERISK"),"f"),de=t(wn=>{let sn=G(wn);if(sn!==void 0)return sn;let{type:Jn,index:wr}=f[P];throw new TypeError(`Unexpected ${Jn} at ${wr}, expected ${wn}`)},"d"),ae=t(()=>{let wn="",sn;for(;sn=G("CHAR")??G("ESCAPED_CHAR");)wn+=sn;return wn},"T"),He=t(wn=>wn,"Se"),Ue=o.encodePart||He,je="",Yt=t(wn=>{je+=wn},"U"),zt=t(()=>{je.length&&(y.push(new WV(3,"","",Ue(je),"",3)),je="")},"$"),Sr=t((wn,sn,Jn,wr,yr)=>{let xs=3;switch(yr){case"?":xs=1;break;case"*":xs=0;break;case"+":xs=2;break}if(!sn&&!Jn&&xs===3){Yt(wn);return}if(zt(),!sn&&!Jn){if(!wn)return;y.push(new WV(3,"","",Ue(wn),"",xs));return}let bi;Jn?Jn==="*"?bi=FAe:bi=Jn:bi=d;let fc=2;bi===d?(fc=1,bi=""):bi===FAe&&(fc=0,bi="");let Ci;if(sn?Ci=sn:Jn&&(Ci=E++),J.has(Ci))throw new TypeError(`Duplicate name '${Ci}'.`);J.add(Ci),y.push(new WV(fc,Ci,Ue(wn),bi,Ue(wr),xs))},"V");for(;P<f.length;){let wn=G("CHAR"),sn=G("NAME"),Jn=G("REGEX");if(!sn&&!Jn&&(Jn=G("ASTERISK")),sn||Jn){let yr=wn??"";o.prefixes.indexOf(yr)===-1&&(Yt(yr),yr=""),zt();let xs=Te();Sr(yr,sn,Jn,"",xs);continue}let wr=wn??G("ESCAPED_CHAR");if(wr){Yt(wr);continue}if(G("OPEN")){let yr=ae(),xs=G("NAME"),bi=G("REGEX");!xs&&!bi&&(bi=G("ASTERISK"));let fc=ae();de("CLOSE");let Ci=Te();Sr(yr,xs,bi,fc,Ci);continue}zt(),de("END")}return y}t(Lst,"D");function fT(s){return s.replace(/([.+*?^${}()[\]|/\\])/g,"\\$1")}t(fT,"S");function Ist(s){return s&&s.ignoreCase?"ui":"u"}t(Ist,"X");function ker(s,o,f){return Rst(Lst(s,f),o,f)}t(ker,"Z");function X9(s){switch(s){case 0:return"*";case 1:return"?";case 2:return"+";case 3:return""}}t(X9,"k");function Rst(s,o,f={}){f.delimiter??="/#?",f.prefixes??="./",f.sensitive??=!1,f.strict??=!1,f.end??=!0,f.start??=!0,f.endsWith="";let d=f.start?"^":"";for(let F of s){if(F.type===3){F.modifier===3?d+=fT(F.value):d+=`(?:${fT(F.value)})${X9(F.modifier)}`;continue}o&&o.push(F.name);let J=`[^${fT(f.delimiter)}]+?`,G=F.value;if(F.type===1?G=J:F.type===0&&(G=FAe),!F.prefix.length&&!F.suffix.length){F.modifier===3||F.modifier===1?d+=`(${G})${X9(F.modifier)}`:d+=`((?:${G})${X9(F.modifier)})`;continue}if(F.modifier===3||F.modifier===1){d+=`(?:${fT(F.prefix)}(${G})${fT(F.suffix)})`,d+=X9(F.modifier);continue}d+=`(?:${fT(F.prefix)}`,d+=`((?:${G})(?:`,d+=fT(F.suffix),d+=fT(F.prefix),d+=`(?:${G}))*)${fT(F.suffix)})`,F.modifier===0&&(d+="?")}let y=`[${fT(f.endsWith)}]|$`,E=`[${fT(f.delimiter)}]`;if(f.end)return f.strict||(d+=`${E}?`),f.endsWith.length?d+=`(?=${y})`:d+="$",new RegExp(d,Ist(f));f.strict||(d+=`(?:${E}(?=${y}))?`);let P=!1;if(s.length){let F=s[s.length-1];F.type===3&&F.modifier===3&&(P=f.delimiter.indexOf(F)>-1)}return P||(d+=`(?=${E}|${y})`),new RegExp(d,Ist(f))}t(Rst,"F");var QN={delimiter:"",prefixes:"",sensitive:!0,strict:!0},wer={delimiter:".",prefixes:"",sensitive:!0,strict:!0},Der={delimiter:"/",prefixes:"/",sensitive:!0,strict:!0};function Per(s,o){return s.length?s[0]==="/"?!0:!o||s.length<2?!1:(s[0]=="\\"||s[0]=="{")&&s[1]=="/":!1}t(Per,"J");function Mst(s,o){return s.startsWith(o)?s.substring(o.length,s.length):s}t(Mst,"Q");function Aer(s,o){return s.endsWith(o)?s.substr(0,s.length-o.length):s}t(Aer,"Ee");function jst(s){return!s||s.length<2?!1:s[0]==="["||(s[0]==="\\"||s[0]==="{")&&s[1]==="["}t(jst,"W");var Bst=["ftp","file","http","https","ws","wss"];function Ust(s){if(!s)return!0;for(let o of Bst)if(s.test(o))return!0;return!1}t(Ust,"N");function Ner(s,o){if(s=Mst(s,"#"),o||s==="")return s;let f=new URL("https://example.com");return f.hash=s,f.hash?f.hash.substring(1,f.hash.length):""}t(Ner,"te");function Ier(s,o){if(s=Mst(s,"?"),o||s==="")return s;let f=new URL("https://example.com");return f.search=s,f.search?f.search.substring(1,f.search.length):""}t(Ier,"re");function Oer(s,o){return o||s===""?s:jst(s)?Jst(s):$st(s)}t(Oer,"ne");function Fer(s,o){if(o||s==="")return s;let f=new URL("https://example.com");return f.password=s,f.password}t(Fer,"se");function Ler(s,o){if(o||s==="")return s;let f=new URL("https://example.com");return f.username=s,f.username}t(Ler,"ie");function Rer(s,o,f){if(f||s==="")return s;if(o&&!Bst.includes(o))return new URL(`${o}:${s}`).pathname;let d=s[0]=="/";return s=new URL(d?s:"/-"+s,"https://example.com").pathname,d||(s=s.substring(2,s.length)),s}t(Rer,"ae");function Mer(s,o,f){return zst(o)===s&&(s=""),f||s===""?s:Wst(s)}t(Mer,"oe");function jer(s,o){return s=Aer(s,":"),o||s===""?s:LAe(s)}t(jer,"ce");function zst(s){switch(s){case"ws":case"http":return"80";case"wws":case"https":return"443";case"ftp":return"21";default:return""}}t(zst,"_");function LAe(s){if(s==="")return s;if(/^[-+.A-Za-z0-9]*$/.test(s))return s.toLowerCase();throw new TypeError(`Invalid protocol '${s}'.`)}t(LAe,"y");function Ber(s){if(s==="")return s;let o=new URL("https://example.com");return o.username=s,o.username}t(Ber,"le");function Uer(s){if(s==="")return s;let o=new URL("https://example.com");return o.password=s,o.password}t(Uer,"fe");function $st(s){if(s==="")return s;if(/[\t\n\r #%/:<>?@[\]^\\|]/g.test(s))throw new TypeError(`Invalid hostname '${s}'`);let o=new URL("https://example.com");return o.hostname=s,o.hostname}t($st,"z");function Jst(s){if(s==="")return s;if(/[^0-9a-fA-F[\]:]/g.test(s))throw new TypeError(`Invalid IPv6 hostname '${s}'`);return s.toLowerCase()}t(Jst,"j");function Wst(s){if(s===""||/^[0-9]*$/.test(s)&&parseInt(s)<=65535)return s;throw new TypeError(`Invalid port '${s}'.`)}t(Wst,"K");function zer(s){if(s==="")return s;let o=new URL("https://example.com");return o.pathname=s[0]!=="/"?"/-"+s:s,s[0]!=="/"?o.pathname.substring(2,o.pathname.length):o.pathname}t(zer,"he");function $er(s){return s===""?s:new URL(`data:${s}`).pathname}t($er,"ue");function Jer(s){if(s==="")return s;let o=new URL("https://example.com");return o.search=s,o.search.substring(1,o.search.length)}t(Jer,"de");function Wer(s){if(s==="")return s;let o=new URL("https://example.com");return o.hash=s,o.hash.substring(1,o.hash.length)}t(Wer,"pe");var qer=class{static{t(this,"H")}#e;#n=[];#t={};#r=0;#s=1;#m=0;#c=0;#u=0;#f=0;#p=!1;constructor(s){this.#e=s}get result(){return this.#t}parse(){for(this.#n=Fst(this.#e,!0);this.#r<this.#n.length;this.#r+=this.#s){if(this.#s=1,this.#n[this.#r].type==="END"){if(this.#c===0){this.#o(),this.#g()?this.#a(9,1):this.#E()?this.#a(8,1):this.#a(7,0);continue}else if(this.#c===2){this.#h(5);continue}this.#a(10,0);break}if(this.#u>0)if(this.#l())this.#u-=1;else continue;if(this.#A()){this.#u+=1;continue}switch(this.#c){case 0:this.#y()&&this.#h(1);break;case 1:if(this.#y()){this.#D();let s=7,o=1;this.#b()?(s=2,o=3):this.#p&&(s=2),this.#a(s,o)}break;case 2:this.#v()?this.#h(3):(this.#S()||this.#E()||this.#g())&&this.#h(5);break;case 3:this.#C()?this.#a(4,1):this.#v()&&this.#a(5,1);break;case 4:this.#v()&&this.#a(5,1);break;case 5:this.#O()?this.#f+=1:this.#N()&&(this.#f-=1),this.#k()&&!this.#f?this.#a(6,1):this.#S()?this.#a(7,0):this.#E()?this.#a(8,1):this.#g()&&this.#a(9,1);break;case 6:this.#S()?this.#a(7,0):this.#E()?this.#a(8,1):this.#g()&&this.#a(9,1);break;case 7:this.#E()?this.#a(8,1):this.#g()&&this.#a(9,1);break;case 8:this.#g()&&this.#a(9,1);break;case 9:break;case 10:break}}this.#t.hostname!==void 0&&this.#t.port===void 0&&(this.#t.port="")}#a(s,o){switch(this.#c){case 0:break;case 1:this.#t.protocol=this.#w();break;case 2:break;case 3:this.#t.username=this.#w();break;case 4:this.#t.password=this.#w();break;case 5:this.#t.hostname=this.#w();break;case 6:this.#t.port=this.#w();break;case 7:this.#t.pathname=this.#w();break;case 8:this.#t.search=this.#w();break;case 9:this.#t.hash=this.#w();break;case 10:break}this.#c!==0&&s!==10&&([1,2,3,4].includes(this.#c)&&[6,7,8,9].includes(s)&&(this.#t.hostname??=""),[1,2,3,4,5,6].includes(this.#c)&&[8,9].includes(s)&&(this.#t.pathname??=this.#p?"/":""),[1,2,3,4,5,6,7].includes(this.#c)&&s===9&&(this.#t.search??="")),this.#i(s,o)}#i(s,o){this.#c=s,this.#m=this.#r+o,this.#r+=o,this.#s=0}#o(){this.#r=this.#m,this.#s=0}#h(s){this.#o(),this.#c=s}#d(s){return s<0&&(s=this.#n.length-s),s<this.#n.length?this.#n[s]:this.#n[this.#n.length-1]}#_(s,o){let f=this.#d(s);return f.value===o&&(f.type==="CHAR"||f.type==="ESCAPED_CHAR"||f.type==="INVALID_CHAR")}#y(){return this.#_(this.#r,":")}#b(){return this.#_(this.#r+1,"/")&&this.#_(this.#r+2,"/")}#v(){return this.#_(this.#r,"@")}#C(){return this.#_(this.#r,":")}#k(){return this.#_(this.#r,":")}#S(){return this.#_(this.#r,"/")}#E(){if(this.#_(this.#r,"?"))return!0;if(this.#n[this.#r].value!=="?")return!1;let s=this.#d(this.#r-1);return s.type!=="NAME"&&s.type!=="REGEX"&&s.type!=="CLOSE"&&s.type!=="ASTERISK"}#g(){return this.#_(this.#r,"#")}#A(){return this.#n[this.#r].type=="OPEN"}#l(){return this.#n[this.#r].type=="CLOSE"}#O(){return this.#_(this.#r,"[")}#N(){return this.#_(this.#r,"]")}#w(){let s=this.#n[this.#r],o=this.#d(this.#m).index;return this.#e.substring(o,s.index)}#D(){let s={};Object.assign(s,QN),s.encodePart=LAe;let o=ker(this.#w(),void 0,s);this.#p=Ust(o)}},OAe=["protocol","username","password","hostname","port","pathname","search","hash"],ZN="*";function Ost(s,o){if(typeof s!="string")throw new TypeError("parameter 1 is not of type 'string'.");let f=new URL(s,o);return{protocol:f.protocol.substring(0,f.protocol.length-1),username:f.username,password:f.password,hostname:f.hostname,port:f.port,pathname:f.pathname,search:f.search!==""?f.search.substring(1,f.search.length):void 0,hash:f.hash!==""?f.hash.substring(1,f.hash.length):void 0}}t(Ost,"ge");function WP(s,o){return o?JV(s):s}t(WP,"b");function $V(s,o,f){let d;if(typeof o.baseURL=="string")try{d=new URL(o.baseURL),o.protocol===void 0&&(s.protocol=WP(d.protocol.substring(0,d.protocol.length-1),f)),!f&&o.protocol===void 0&&o.hostname===void 0&&o.port===void 0&&o.username===void 0&&(s.username=WP(d.username,f)),!f&&o.protocol===void 0&&o.hostname===void 0&&o.port===void 0&&o.username===void 0&&o.password===void 0&&(s.password=WP(d.password,f)),o.protocol===void 0&&o.hostname===void 0&&(s.hostname=WP(d.hostname,f)),o.protocol===void 0&&o.hostname===void 0&&o.port===void 0&&(s.port=WP(d.port,f)),o.protocol===void 0&&o.hostname===void 0&&o.port===void 0&&o.pathname===void 0&&(s.pathname=WP(d.pathname,f)),o.protocol===void 0&&o.hostname===void 0&&o.port===void 0&&o.pathname===void 0&&o.search===void 0&&(s.search=WP(d.search.substring(1,d.search.length),f)),o.protocol===void 0&&o.hostname===void 0&&o.port===void 0&&o.pathname===void 0&&o.search===void 0&&o.hash===void 0&&(s.hash=WP(d.hash.substring(1,d.hash.length),f))}catch{throw new TypeError(`invalid baseURL '${o.baseURL}'.`)}if(typeof o.protocol=="string"&&(s.protocol=jer(o.protocol,f)),typeof o.username=="string"&&(s.username=Ler(o.username,f)),typeof o.password=="string"&&(s.password=Fer(o.password,f)),typeof o.hostname=="string"&&(s.hostname=Oer(o.hostname,f)),typeof o.port=="string"&&(s.port=Mer(o.port,s.protocol,f)),typeof o.pathname=="string"){if(s.pathname=o.pathname,d&&!Per(s.pathname,f)){let y=d.pathname.lastIndexOf("/");y>=0&&(s.pathname=WP(d.pathname.substring(0,y+1),f)+s.pathname)}s.pathname=Rer(s.pathname,s.protocol,f)}return typeof o.search=="string"&&(s.search=Ier(o.search,f)),typeof o.hash=="string"&&(s.hash=Ner(o.hash,f)),s}t($V,"w");function JV(s){return s.replace(/([+*?:{}()\\])/g,"\\$1")}t(JV,"C");function Ver(s){return s.replace(/([.+*?^${}()[\]|/\\])/g,"\\$1")}t(Ver,"Oe");function Her(s,o){o.delimiter??="/#?",o.prefixes??="./",o.sensitive??=!1,o.strict??=!1,o.end??=!0,o.start??=!0,o.endsWith="";let f=".*",d=`[^${Ver(o.delimiter)}]+?`,y=/[$_\u200C\u200D\p{ID_Continue}]/u,E="";for(let P=0;P<s.length;++P){let F=s[P];if(F.type===3){if(F.modifier===3){E+=JV(F.value);continue}E+=`{${JV(F.value)}}${X9(F.modifier)}`;continue}let J=F.hasCustomName(),G=!!F.suffix.length||!!F.prefix.length&&(F.prefix.length!==1||!o.prefixes.includes(F.prefix)),Te=P>0?s[P-1]:null,de=P<s.length-1?s[P+1]:null;if(!G&&J&&F.type===1&&F.modifier===3&&de&&!de.prefix.length&&!de.suffix.length)if(de.type===3){let ae=de.value.length>0?de.value[0]:"";G=y.test(ae)}else G=!de.hasCustomName();if(!G&&!F.prefix.length&&Te&&Te.type===3){let ae=Te.value[Te.value.length-1];G=o.prefixes.includes(ae)}G&&(E+="{"),E+=JV(F.prefix),J&&(E+=`:${F.name}`),F.type===2?E+=`(${F.value})`:F.type===1?J||(E+=`(${d})`):F.type===0&&(!J&&(!Te||Te.type===3||Te.modifier!==3||G||F.prefix!=="")?E+="*":E+=`(${f})`),F.type===1&&J&&F.suffix.length&&y.test(F.suffix[0])&&(E+="\\"),E+=JV(F.suffix),G&&(E+="}"),F.modifier!==3&&(E+=X9(F.modifier))}return E}t(Her,"ke");var qst=class{static{t(this,"me")}#e;#n={};#t={};#r={};#s={};#m=!1;constructor(s={},o,f){try{let d;if(typeof o=="string"?d=o:f=o,typeof s=="string"){let F=new qer(s);if(F.parse(),s=F.result,d===void 0&&typeof s.protocol!="string")throw new TypeError("A base URL must be provided for a relative constructor string.");s.baseURL=d}else{if(!s||typeof s!="object")throw new TypeError("parameter 1 is not of type 'string' and cannot convert to dictionary.");if(d)throw new TypeError("parameter 1 is not of type 'string'.")}typeof f>"u"&&(f={ignoreCase:!1});let y={ignoreCase:f.ignoreCase===!0},E={pathname:ZN,protocol:ZN,username:ZN,password:ZN,hostname:ZN,port:ZN,search:ZN,hash:ZN};this.#e=$V(E,s,!0),zst(this.#e.protocol)===this.#e.port&&(this.#e.port="");let P;for(P of OAe){if(!(P in this.#e))continue;let F={},J=this.#e[P];switch(this.#t[P]=[],P){case"protocol":Object.assign(F,QN),F.encodePart=LAe;break;case"username":Object.assign(F,QN),F.encodePart=Ber;break;case"password":Object.assign(F,QN),F.encodePart=Uer;break;case"hostname":Object.assign(F,wer),jst(J)?F.encodePart=Jst:F.encodePart=$st;break;case"port":Object.assign(F,QN),F.encodePart=Wst;break;case"pathname":Ust(this.#n.protocol)?(Object.assign(F,Der,y),F.encodePart=zer):(Object.assign(F,QN,y),F.encodePart=$er);break;case"search":Object.assign(F,QN,y),F.encodePart=Jer;break;case"hash":Object.assign(F,QN,y),F.encodePart=Wer;break}try{this.#s[P]=Lst(J,F),this.#n[P]=Rst(this.#s[P],this.#t[P],F),this.#r[P]=Her(this.#s[P],F),this.#m=this.#m||this.#s[P].some(G=>G.type===2)}catch{throw new TypeError(`invalid ${P} pattern '${this.#e[P]}'.`)}}}catch(d){throw new TypeError(`Failed to construct 'URLPattern': ${d.message}`)}}test(s={},o){let f={pathname:"",protocol:"",username:"",password:"",hostname:"",port:"",search:"",hash:""};if(typeof s!="string"&&o)throw new TypeError("parameter 1 is not of type 'string'.");if(typeof s>"u")return!1;try{typeof s=="object"?f=$V(f,s,!1):f=$V(f,Ost(s,o),!1)}catch{return!1}let d;for(d of OAe)if(!this.#n[d].exec(f[d]))return!1;return!0}exec(s={},o){let f={pathname:"",protocol:"",username:"",password:"",hostname:"",port:"",search:"",hash:""};if(typeof s!="string"&&o)throw new TypeError("parameter 1 is not of type 'string'.");if(typeof s>"u")return;try{typeof s=="object"?f=$V(f,s,!1):f=$V(f,Ost(s,o),!1)}catch{return null}let d={};o?d.inputs=[s,o]:d.inputs=[s];let y;for(y of OAe){let E=this.#n[y].exec(f[y]);if(!E)return null;let P={};for(let[F,J]of this.#t[y].entries())if(typeof J=="string"||typeof J=="number"){let G=E[F+1];P[J]=G}d[y]={input:f[y]??"",groups:P}}return d}static compareComponent(s,o,f){let d=t((F,J)=>{for(let G of["type","modifier","prefix","value","suffix"]){if(F[G]<J[G])return-1;if(F[G]!==J[G])return 1}return 0},"o"),y=new WV(3,"","","","",3),E=new WV(0,"","","","",3),P=t((F,J)=>{let G=0;for(;G<Math.min(F.length,J.length);++G){let Te=d(F[G],J[G]);if(Te)return Te}return F.length===J.length?0:d(F[G]??y,J[G]??y)},"s");return!o.#r[s]&&!f.#r[s]?0:o.#r[s]&&!f.#r[s]?P(o.#s[s],[E]):!o.#r[s]&&f.#r[s]?P([E],f.#s[s]):P(o.#s[s],f.#s[s])}get protocol(){return this.#r.protocol}get username(){return this.#r.username}get password(){return this.#r.password}get hostname(){return this.#r.hostname}get port(){return this.#r.port}get pathname(){return this.#r.pathname}get search(){return this.#r.search}get hash(){return this.#r.hash}get hasRegExpGroups(){return this.#m}};globalThis.URLPattern||(globalThis.URLPattern=qst);import{AssertionError as Ger}from"node:assert";function qP(s,o){if(s===!1)throw new Ger({message:o})}t(qP,"assert");var Wo;(function(s){s.Object="Object",s.Property="Property",s.Array="Array",s.Literal="Literal",s.TemplateString="TemplateString",s.Identifier="Identifier",s.FunctionCall="FunctionCall",s.Raw="Raw"})(Wo||(Wo={}));function Z9(s){return s.type===Wo.Object}t(Z9,"isAstObject");function VP(s){return s.type===Wo.Property}t(VP,"isAstProperty");function RAe(s){return s.type===Wo.Array}t(RAe,"isAstArray");function bO(s){return s.type===Wo.Literal}t(bO,"isAstLiteral");function eI(s){if(s===void 0)throw new Error("Node is undefined");if(!Z9(s))throw new Error("Node is not object")}t(eI,"assertAstObject");import{findNodeAtLocation as Yer,getNodeValue as Ker,printParseErrorCode as Xer,visit as Zer}from"jsonc-parser";var Qer={DEFAULT:{allowTrailingComma:!1}};function qV(s,o=[],f=Qer.DEFAULT){let d={type:"array",offset:-1,length:-1,line:-1,column:-1,children:[],parent:void 0};function y(J){d.type==="property"&&(d.length=J-d.offset,d=d.parent)}t(y,"ensurePropertyComplete");function E(J){return d.children?.push(J),J}t(E,"onValue"),Zer(s,{onObjectBegin:t((J,G,Te)=>{d=E({type:"object",offset:J,length:-1,line:G+1,column:Te+1,parent:d,children:[]})},"onObjectBegin"),onObjectProperty:t((J,G,Te,de,ae)=>{d=E({type:"property",offset:G,length:-1,line:de+1,column:ae+1,parent:d,children:[]}),d.children?.push({type:"string",value:J,offset:G,length:Te,line:de,column:ae,parent:d})},"onObjectProperty"),onObjectEnd:t((J,G)=>{y(J+G),d.length=J+G-d.offset,d=d.parent,y(J+G)},"onObjectEnd"),onArrayBegin:t((J,G,Te,de)=>{d=E({type:"array",offset:J,length:-1,line:Te+1,column:de+1,parent:d,children:[]})},"onArrayBegin"),onArrayEnd:t((J,G)=>{d.length=J+G-d.offset,d=d.parent,y(J+G)},"onArrayEnd"),onLiteralValue:t((J,G,Te,de,ae)=>{E({type:etr(J),offset:G,length:Te,line:de+1,column:ae+1,parent:d,value:J}),y(G+Te)},"onLiteralValue"),onSeparator:t((J,G)=>{d.type==="property"&&(J===":"?d.colonOffset=G:J===","&&y(G))},"onSeparator"),onError:t((J,G,Te,de,ae)=>{o.push({error:J,offset:G,length:Te,line:de+1,column:ae+1})},"onError")},f);let F=d.children?.[0];return F&&delete F.parent,F}t(qV,"parse");function etr(s){switch(typeof s){case"boolean":return"boolean";case"number":return"number";case"string":return"string";case"object":{if(s){if(Array.isArray(s))return"array"}else return"null";return"object"}default:return"null"}}t(etr,"getNodeType");function MAe(s,o){return Yer(s,o)}t(MAe,"findNodeAtLocation");function VV(s){return Ker(s)}t(VV,"getNodeValue");function Vst(s){return Xer(s)}t(Vst,"printParseErrorCode");var HV=class{static{t(this,"AstAdapter")}parse(o){let d=qV(o,[]);if(d)return this.parseNode(d,void 0);throw new Error("Failed to parse JSON")}convert(o){return this.parseNode(o,void 0)}parseNode(o,f){switch(o.type){case"object":return this.createObject(o,f);case"array":return this.createArray(o,f);case"property":return this.createProperty(o,f);case"string":return this.createLiteral(o,f);case"number":return this.createLiteral(o,f);case"boolean":return this.createLiteral(o,f);case"null":return this.createLiteral(o,f)}}createLiteral(o,f){return{type:Wo.Literal,location:{line:o.line,column:o.column},parent:f,value:o.type==="null"?null:o.value}}createObject(o,f){let d={type:Wo.Object,children:[],parent:f,location:{line:o.line,column:o.column}};return o.children?.forEach(y=>{d.children.push(this.parseNode(y,d))}),d}createProperty(o,f){qP(o.children?.length===2,"Invalid property node");let d={type:Wo.Property,location:{line:o.line,column:o.column},parent:f,name:null,value:null};return d.name={value:o.children[0].value,location:{line:o.line,column:o.column},type:Wo.Identifier,parent:d},d.value=this.parseNode(o.children[1],d),d}createArray(o,f){let d={type:Wo.Array,location:{line:o.line,column:o.column},parent:f,children:[]};return o.children?.forEach(y=>d.children.push(this.parseNode(y,d))),d}};var DS={createLiteral:t((s,o)=>({type:Wo.Literal,parent:o,value:s}),"createLiteral"),createTemplateString:t((s,o)=>({type:Wo.TemplateString,parent:o,value:s}),"createTemplateString"),createIdentifier:t((s,o)=>({type:Wo.Identifier,value:s,parent:o}),"createIdentifier"),createProperty:t((s,o,f)=>{let d={type:Wo.Property,parent:f,name:null,value:o};return d.name={value:s,type:Wo.Identifier,parent:d},d.value.parent=d,d},"createProperty"),createArrayOfLiterals:t((s,o)=>{let f={type:Wo.Array,parent:o,children:[]};for(let d of s)f.children.push(DS.createLiteral(d,f));return f},"createArrayOfLiterals")};var ttr=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/,GV=class{static{t(this,"SourceGenerator")}generate(o){let f=[];return this.generateSource(f,o),f.join("")}generateSource(o,f){switch(f.type){case Wo.Array:return this.generateArray(o,f);case Wo.Object:return this.generateObject(o,f);case Wo.Property:return this.generateProperty(o,f);case Wo.Literal:return this.generateLiteral(o,f);case Wo.FunctionCall:return this.generateFunctionCall(o,f);case Wo.Identifier:return this.generateIdentifier(o,f);case Wo.Raw:return this.generateRaw(o,f);case Wo.TemplateString:return this.generateTemplateString(o,f)}}generateArray(o,f){o.push("["),f.children.map(d=>{this.generateSource(o,d),o.push(",")}),o.push("]")}generateObject(o,f){o.push("{"),f.children.forEach(d=>{this.generateSource(o,d),o.push(",")}),o.push("}")}generateProperty(o,f){this.generateIdentifier(o,f.name),o.push(":"),this.generateSource(o,f.value)}generateFunctionCall(o,f){o.push(f.name.value),o.push("("),f.children.forEach((d,y,E)=>{this.generateSource(o,d),y<E.length&&o.push(",")}),o.push(")")}generateRaw(o,f){o.push(f.value)}generateTemplateString(o,f){o.push("`"),o.push(f.value.replaceAll("`","\\`")),o.push("`")}generateLiteral(o,f){if(f.value===null)return o.push("null");switch(typeof f.value){case"number":case"boolean":return o.push(`${f.value}`);case"string":{let d=f.value,y=JSON.stringify(d);return o.push(`${y}`)}}}generateIdentifier(o,f){let d=ttr.test(f.value)?f.value:`'${f.value}'`;o.push(d)}};import rtr from"node:fs/promises";import{parse as ntr}from"@swc/core";var Hst=t(async s=>{let o=new Set;try{let f=await rtr.readFile(s,"utf-8");(await ntr(f,{syntax:"typescript"})).body.forEach(y=>{y.type==="ExportDefaultDeclaration"||y.type==="ExportDefaultExpression"?o.add("default"):y.type==="ExportDeclaration"&&y.declaration.type==="FunctionDeclaration"?o.add(y.declaration.identifier.value):y.type==="ExportDeclaration"&&y.declaration.type==="VariableDeclaration"&&y.declaration.declarations[0].id.type==="Identifier"&&o.add(y.declaration.declarations[0].id.value)})}catch{return null}return o},"getJSFileExports");var Gst={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"http://schemas.zuplo.com/fragments.schema.json",$defs:{corsPolicyConfiguration:{type:"object",required:["name","allowedOrigins"],additionalProperties:!1,properties:{name:{type:"string",pattern:"^[0-9a-z-]+$"},allowCredentials:{type:"boolean"},maxAge:{type:"number"},allowedOrigins:{oneOf:[{type:"array",items:{type:"string"}},{type:"string"}]},allowedMethods:{oneOf:[{type:"array",items:{$ref:"fragments.schema.json#/$defs/httpMethod"}},{type:"string"}]},allowedHeaders:{oneOf:[{type:"array",items:{type:"string"}},{type:"string"}]},exposeHeaders:{oneOf:[{type:"array",items:{type:"string"}},{type:"string"}]}}},handlerDefinition:{type:"object",properties:{module:{type:"string",pattern:"^\\$import\\([^ )]*?\\)$"},export:{type:"string"},options:{type:"object",additionalProperties:!0}},additionalProperties:!1,required:["module","export"]},httpMethod:{type:"string",enum:["GET","HEAD","POST","PUT","DELETE","CONNECT","OPTIONS","TRACE","PATCH"]}}};var jAe={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"http://schemas.zuplo.com/policies.schema.json",title:"Policies Config File",type:"object",additionalProperties:!1,properties:{policies:{type:"array",items:{$ref:"policy-configuration.schema.json"}},corsPolicies:{type:"array",items:{$ref:"fragments.schema.json#/$defs/corsPolicyConfiguration"}}}};var Yst={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"http://schemas.zuplo.com/policy-configuration.schema.json",title:"Policy Configuration Fragment",type:"object",required:["name","policyType","handler"],additionalProperties:!1,properties:{name:{type:"string",pattern:"^[0-9a-z-]+$"},policyType:{type:"string"},handler:{$ref:"fragments.schema.json#/$defs/handlerDefinition"},options:{type:"object",additionalProperties:!0}}};var BAe={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"http://schemas.zuplo.com/route-configuration.schema.json",title:"Route Configuration Fragment",description:"",type:"object",required:["path","methods","handler"],additionalProperties:!1,$defs:{corsPolicy:{type:"string",pattern:"^[0-9a-z-]+$"}},properties:{operationId:{type:"string"},path:{type:"string",pattern:"^/[^\\s]*$"},methods:{type:"array",items:{$ref:"fragments.schema.json#/$defs/httpMethod"}},label:{type:"string",description:"An internal user-friendly identifier of the route."},enforceOpenApi:{type:"boolean",description:"If true, schema validation found in the OpenAPI spec will be enforced on requests/responses."},key:{type:"string",deprecated:!0},handler:{$ref:"fragments.schema.json#/$defs/handlerDefinition"},corsPolicy:{$ref:"#/$defs/corsPolicy"},custom:{},mcp:{type:"object",additionalProperties:!1,properties:{enabled:{type:"boolean"}}},policies:{type:"object",additionalProperties:!1,properties:{inbound:{type:"array",items:{type:"string",pattern:"^[0-9a-z-]+$"}},outbound:{type:"array",items:{type:"string",pattern:"^[0-9a-z-]+$"}}}},summary:{type:"string"},description:{type:"string"},excludeFromOpenApi:{type:"boolean"},tags:{type:"array",items:{type:"string"}}}};var UAe={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"http://schemas.zuplo.com/route-configuration-open-api.schema.json",title:"Open API Route Configuration Fragment",description:"These are the properties that can appear under the x-zuplo-route extension in a PathObject in Open API. It's a subset of what can appear in Zuplo's routes.json.",type:"object",required:["handler"],additionalProperties:!1,properties:{label:{type:"string",description:"An internal user-friendly identifier of the route."},key:{type:"string",deprecated:!0},handler:{$ref:"fragments.schema.json#/$defs/handlerDefinition"},corsPolicy:{type:"string",pattern:"^[0-9a-z-]+$"},custom:{},mcp:{oneOf:[{type:"object",additionalProperties:!1,properties:{type:{const:"tool"},name:{type:"string"},description:{type:"string"},enabled:{type:"boolean"},includeOutputSchema:{type:"boolean"},includeStructuredContent:{type:"boolean"},annotations:{type:"object",additionalProperties:!1,properties:{title:{type:"string"},readOnlyHint:{type:"boolean"},destructiveHint:{type:"boolean"},idempotentHint:{type:"boolean"},openWorldHint:{type:"boolean"}}},_meta:{type:"object",additionalProperties:!0}},required:["type"]},{type:"object",additionalProperties:!1,properties:{type:{const:"prompt"},name:{type:"string"},description:{type:"string"},enabled:{type:"boolean"}},required:["type"]},{type:"object",additionalProperties:!1,properties:{type:{const:"resource"},name:{type:"string"},description:{type:"string"},uri:{type:"string"},mimeType:{type:"string"},enabled:{type:"boolean"},_meta:{type:"object",additionalProperties:!0}},required:["type"]},{type:"object",additionalProperties:!1,properties:{type:{const:"graphql"},enabled:{type:"boolean"},introspectionTool:{type:"object",additionalProperties:!1,properties:{name:{type:"string"},description:{type:"string"}}},executeTool:{type:"object",additionalProperties:!1,properties:{name:{type:"string"},description:{type:"string"}}}},required:["type"]}]},policies:{type:"object",additionalProperties:!1,properties:{inbound:{type:"array",items:{type:"string",pattern:"^[0-9a-z-]+$"}},outbound:{type:"array",items:{type:"string",pattern:"^[0-9a-z-]+$"}}}},tags:{type:"array",items:{type:"string"}}}};var tlt=Hp(Kce(),1),rlt=Hp(elt(),1);var Qce=class s{static{t(this,"JsonValidator")}static#e=new s;static get instance(){return s.#e}ajv;constructor(){this.ajv=new tlt.Ajv2020({allErrors:!0,allowUnionTypes:!0}),this.ajv.addKeyword("faker"),(0,rlt.default)(this.ajv,{mode:"fast"})}addSchema(o,f){this.ajv.addSchema(o,f)}compile(o){let f=this.ajv.compile(o);return t(y=>({isValid:f(y),errors:this.toSimpleErrors(f.errors,y),warnings:[]}),"validator")}toSimpleErrors(o,f){let d=[];return o?.forEach(y=>{y.keyword==="enum"&&y.params.allowedValues&&Array.isArray(y.params.allowedValues)&&(y.message+=`; ${y.params.allowedValues.join(", ")}`),y.instancePath&&(y.instancePath=y.instancePath.replaceAll(/(\/)?(~1)(\/)?/gm,"/"));let E={details:{}},P=y.instancePath.split("/");if(P.length>2){let J=P[1],G=P[2]?parseInt(P[2],10):0,Te=P[3],de=Number.isNaN(G)?void 0:f[J][G][Te];E={details:{property:J,index:G,field:Te,fieldValue:de}}}if(y.keyword==="required"&&y.params.missingProperty&&y.instancePath&&(y.message=`A 'path' is missing required property '${y.params.missingProperty}'`),y.keyword==="additionalProperties"&&y.params.additionalProperty&&y.instancePath&&(y.message=`A 'path' should NOT include property '${y.params.additionalProperty}'`),y.keyword==="type"&&y.params.type&&y.instancePath){let J=y.instancePath.split("/"),G=J[J.length-1];y.message=`Value of property '${G}' must be '${y.params.type}'`}let F=Object.assign(y,E);d.push(F)}),d}};var uI=Qce.instance;uI.addSchema(BAe,"route-configuration.schema.json");uI.addSchema(Yst,"policy-configuration.schema.json");uI.addSchema(jAe,"policies.schema.json");uI.addSchema(UAe,"open-api-route-configuration.schema.json");uI.addSchema(Gst,"fragments.schema.json");var ZAr=uI.compile(BAe),nlt=uI.compile(UAe),tIe=uI.compile(jAe);var ele=class{static{t(this,"PoliciesConfigurationValidator")}results;validate(o){return this.results=tIe(o),this.results}};var tle=class{static{t(this,"OpenAPILocalizedValidator")}results;validate(o){return this.results=nlt(o),this.results}};import pcr from"node:path";var rIe=/\$import\((.*)\)/,kH=/\$env\((.*?)\)/g;var Bk=class extends Error{static{t(this,"CodeGenError")}location;constructor(o,f,d,y){super(o),this.location={file:f,namespace:"",line:d?d.line:0,column:d?d.column:0,length:0,lineText:y??"",suggestion:""}}},_cr=t(s=>{let o=[],f=s;for(;f.parent;)o.push(f),f=f.parent;return o.reverse()},"invertTree"),XP=t((s,o)=>{if(!s)return!1;let f=_cr(s);return o.split("/").every((E,P)=>{let F=f[P];return F?E==="*"||VP(F)&&F.name.value===E?!0:E==="{}"?F.type===Wo.Object:E==="[]"?F.type===Wo.Array:!1:!1})},"testPosition");var rle=class{static{t(this,"AstTransformer")}errors=[];transform(o){return this.visitor(o),o}visitor(o){this.visit(o),Z9(o)?o.children.forEach(f=>{this.visitor(f)}):RAe(o)?o.children.forEach(f=>{this.visitor(f)}):VP(o)&&this.visitor(o.value)}},ilt=t(s=>{let o=new RegExp(kH).exec(s);if(o?.length===2&&o[0]===s)return{type:"raw",value:`environment["${o[1]}"]`};{let f=s.replaceAll(new RegExp(kH),(d,y)=>`\${environment["${y}"] ? environment["${y}"] : ""}`);if(f!==s)return{type:"template",value:f}}return null},"replaceEnvInString"),slt=t((s,o,f)=>d=>{if(bO(d)&&typeof d.value=="string"&&d.parent&&RAe(d.parent)){if(!s.some(P=>XP(d.parent,P))){kH.test(d.value)&&o.push(new Bk("An $env() statement is not expected at this location.",f,d.location,d.value));return}let E=ilt(d.value);if(E){let P=d.parent,F=P.children.indexOf(d);if(F!==-1)if(E.type==="raw"){let J={type:Wo.Raw,parent:P,value:E.value};P.children[F]=J}else P.children[F]=DS.createTemplateString(E.value,d)}return}if(!VP(d)||!bO(d.value)||typeof d.value.value!="string")return;if(!s.some(E=>XP(d,E))){kH.test(d.value.value)&&o.push(new Bk("An $env() statement is not expected at this location.",f,d.location,d.value.value));return}let y=ilt(d.value.value);if(y)if(y.type==="raw"){let E={type:Wo.Raw,parent:null,value:y.value};d.value=E}else d.value=DS.createTemplateString(y.value,d)},"getEnvStatementTransformer");var wH="config/routes.json",dcr=["handler/{}/options/*","handler/{}/options/*/[]","policies/[]/{}/handler/{}/options/*","policies/[]/{}/handler/{}/options/*/[]","corsPolicies/[]/{}/*","corsPolicies/[]/{}/*/[]"],mcr=["handler/{}/module","handler/{}/options/{}/policies/{}/inbound/[]/{}/module","handler/{}/options/{}/policies/{}/outbound/[]/{}/module","policies/[]/{}/handler/{}/module","policies/[]/{}/handler/{}/options/{}/identifier/{}/module","policies/[]/{}/handler/{}/options/{}/validator"],alt=["handler/{}/options/*","policies/[]/{}/handler/{}/options/*"],hcr="handler/{}/options/{}/rewritePattern",gcr="handler/{}/options/{}/baseUrl",nle=class extends rle{static{t(this,"OpenAPIRoutesFragmentAstTransformer")}importCount=0;addedImports=new Map;getImportName(o){this.addedImports.has(o)||this.addedImports.set(o,`__import${this.importCount++}`);let f=this.addedImports.get(o);if(!f)throw new Error("Import name is undefined. This should not happen.");return f}getImports(){let o=[];return this.addedImports.forEach((f,d)=>{o.push({name:f,path:d})}),o}visit(o){this.rewriteHandlerFunction(o),this.rewriteForwardFunction(o),this.replaceImportStatements(o),this.replaceEnvStatements(o)}rewriteHandlerFunction(o){if(!(!VP(o)||!bO(o.value)||typeof o.value.value!="string")&&XP(o,hcr)){if(!o.parent||!Z9(o.parent)){this.errors.push(new Bk("Invalid node, expected object",wH,o.parent?o.parent.location:o.location,void 0));return}let f=o.value.value,d={type:Wo.Raw,parent:null,value:olt(f)},y=DS.createProperty("__rewriteFunction",d,o);o.parent.children.push(y)}}rewriteForwardFunction(o){if(!(!VP(o)||!bO(o.value)||typeof o.value.value!="string")&&XP(o,gcr)){if(!o.parent||!Z9(o.parent)){this.errors.push(new Bk("Invalid node, expected object",wH,o.parent?o.parent.location:o.location,void 0));return}let f=o.value.value,d={type:Wo.Raw,parent:null,value:olt(f)},y=DS.createProperty("__rewriteFunction",d,o);o.parent.children.push(y)}}replaceImportStatements(o){if(!VP(o)||!bO(o.value))return;let f=o.value.value;if(typeof f!="string")return;if(!mcr.some(F=>XP(o,F))&&!alt.some(F=>XP(o,F))){if(rIe.test(f)){if(o.name.value==="$ref")return;this.errors.push(new Bk("An $import() statement is not expected at this location.",wH,o.location,f))}return}let d=rIe.exec(f);if(alt.some(F=>XP(o,F))&&!d)return;if(!d){this.errors.push(new Bk("Invalid $import() statement",wH,o.location,f));return}let y=d[1];y=y.replace(/\\/g,"/"),y.startsWith(".")&&(y=pcr.posix.join("..",y));let E=this.getImportName(y),P={type:Wo.Identifier,parent:o.parent,value:E};o.value=P}replaceEnvStatements=slt(dcr,this.errors,wH)};function olt(s){return`(request, context) => {
576
576
  const { params, url, query, method, headers } = request;
577
577
  const { host, hostname, origin, pathname, port, search } = new URL(url);
578
578
  const e = encodeURIComponent;
package/index.minified.js CHANGED
@@ -568,11 +568,11 @@ globstar while`,s,de,o,ae,He),this.matchOne(s.slice(de),o.slice(ae),f))return th
568
568
  `],[102,"\f"],[114,"\r"],[116," "]]),Poe=new Map([...CV,[118,"\v"],[48,"\0"]]),xXt=new Map([['"','"'],["\\","\\"],["/","/"],["\b","b"],[`
569
569
  `,"n"],["\f","f"],["\r","r"],[" ","t"]]),CCr=new Map([...xXt,["\v","v"],["\0","0"],["\u2028","u2028"],["\u2029","u2029"]]),Doe=new Map([["[","LBracket"],["]","RBracket"],["{","LBrace"],["}","RBrace"],[":","Colon"],[",","Comma"],[vXt,"Boolean"],[bXt,"Boolean"],[SXt,"Null"]]),woe=new Map([...Doe,["NaN","Number"],[TXt,"Number"]]),$Pe=new Set([10,13,8232,8233]),zP=class extends Error{static{t(this,"ErrorWithLocation")}constructor(o,{line:f,column:d,offset:y}){super(`${o} (${f}:${d})`),this.line=f,this.column=d,this.offset=y}},JPe=class extends zP{static{t(this,"UnexpectedChar")}constructor(o,f){super(`Unexpected character '${String.fromCharCode(o)}' found.`,f)}},WPe=class extends zP{static{t(this,"UnexpectedIdentifier")}constructor(o,f){super(`Unexpected identifier '${o}' found.`,f)}},hO=class extends zP{static{t(this,"UnexpectedToken")}constructor(o){super(`Unexpected token ${o.type} found.`,o.loc.start)}},Aoe=class extends zP{static{t(this,"UnexpectedEOF")}constructor(o){super("Unexpected end of input found.",o)}},EXt=/[\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]/,CXt=/[\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]/,kXt=13,Wnt=10,qPe=class{static{t(this,"CharCodeReader")}#e="";#n=1;#t=0;#r=-1;#s=!1;#m=-1;#c=!1;constructor(o){this.#e=o}#u(){this.#c||(this.#t++,this.#r++,this.#m=-1,this.#c=!0)}locate(){return{line:this.#n,column:this.#t,offset:this.#r}}next(){if(this.#r>=this.#e.length-1)return this.#u(),-1;this.#r++;let o=this.#e.charCodeAt(this.#r);return this.#s?(this.#n++,this.#t=1,this.#s=!1):this.#t++,o===kXt?(this.#s=!0,this.peek()===Wnt&&this.#r++):o===Wnt&&(this.#s=!0),this.#m=o,o}peek(){return this.#r===this.#e.length-1?-1:this.#e.charCodeAt(this.#r+1)}match(o){return o(this.peek())?(this.next(),!0):!1}current(){return this.#m}},wXt="Infinity",DXt="NaN",PXt=new Set([116,102,110]),VPe=new Set([32,9,10,13]),qnt=new Set([...VPe,11,12,160,8232,8233,65279,160,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288]),AXt={mode:"json",ranges:!1},NXt=new Set(["true","false","null"]),b_={EOF:0,Number:1,String:2,Boolean:3,Null:4,NaN:5,Infinity:6,Identifier:7,Colon:20,LBrace:21,RBrace:22,LBracket:23,RBracket:24,Comma:25,LineComment:40,BlockComment:41};function UP(s){return s>=48&&s<=57}t(UP,"isDigit");function zPe(s){return UP(s)||s>=65&&s<=70||s>=97&&s<=102}t(zPe,"isHexDigit");function IXt(s){return s>=49&&s<=57}t(IXt,"isPositiveDigit");function OXt(s){return PXt.has(s)}t(OXt,"isKeywordStart");function Hnt(s){return UP(s)||s===46||s===45}t(Hnt,"isNumberStart");function FXt(s){return Hnt(s)||s===43}t(FXt,"isJSON5NumberStart");function Vnt(s,o){return s===34||o&&s===39}t(Vnt,"isStringStart");function Gnt(s){if(s===36||s===95||s===92||s>=97&&s<=122||s>=65&&s<=90||s===8204||s===8205)return!0;let o=String.fromCharCode(s);return EXt.test(o)}t(Gnt,"isJSON5IdentifierStart");function LXt(s){if(Gnt(s)||UP(s))return!0;let o=String.fromCharCode(s);return CXt.test(o)}t(LXt,"isJSON5IdentifierPart");var HPe=class{static{t(this,"Tokenizer")}#e;#n;#t;#r;#s;#m;#c;#u;#f;#p;#a;constructor(o,f){this.#n=o,this.#e={...AXt,...f},this.#t=new qPe(o),this.#r=this.#e.mode==="json5",this.#s=this.#e.mode!=="json",this.#m=this.#e.ranges,this.#u=this.#r?Poe.has.bind(Poe):CV.has.bind(CV),this.#f=this.#r?$Pe.has.bind($Pe):()=>!1,this.#p=this.#r?d=>d===120:()=>!1,this.#a=this.#r?qnt.has.bind(qnt):VPe.has.bind(VPe)}#i(o,f=this.#t.locate()){throw new JPe(o,f)}#o(o,f=this.#t.locate()){throw new WPe(o,f)}#h(){throw new Aoe(this.#t.locate())}#d(o,f,d,y){let E=d.offset+f,P=this.#e.ranges?{range:[d.offset,E]}:void 0;return{type:o,loc:{start:d,end:y||{line:d.line,column:d.column+f,offset:E}},...P}}#_(o){let f="",d;for(let y=0;y<o;y++){if(d=this.#t.peek(),zPe(d)){this.#t.next(),f+=String.fromCharCode(d);continue}this.#i(d)}return f}#y(o){let f="";do{if(f+=String.fromCharCode(o),o===92&&(o=this.#t.next(),o!==117&&this.#i(o),f+=String.fromCharCode(o),f+=this.#_(4)),o=this.#t.peek(),!LXt(o))break;this.#t.next()}while(!0);return f}#b(o){let f=o,d=1;for(o=this.#t.peek();o!==-1&&o!==f;){if(this.#t.next(),d++,o===92)if(o=this.#t.peek(),this.#u(o)||this.#f(o))this.#t.next(),d++;else if(o===117){this.#t.next(),d++;let y=this.#_(4);d+=y.length}else if(this.#p(o)){this.#t.next(),d++;let y=this.#_(2);d+=y.length}else this.#r?(this.#t.next(),d++):this.#i(o);o=this.#t.peek()}return o===-1&&(this.#t.next(),this.#h()),this.#t.next(),d++,d}#v(o){let f=1;if(o===45||this.#r&&o===43){if(o=this.#t.peek(),this.#r&&(o===73||o===78)){this.#t.next();let d=this.#y(o);return d!==wXt&&d!==DXt&&this.#i(o),f+d.length}UP(o)||this.#i(o),this.#t.next(),f++}if(o===48)if(o=this.#t.peek(),this.#r&&(o===120||o===88)){this.#t.next(),f++,o=this.#t.peek(),zPe(o)||(this.#t.next(),this.#i(o));do this.#t.next(),f++,o=this.#t.peek();while(zPe(o))}else UP(o)&&this.#i(o);else if(!this.#r||o!==46)for(IXt(o)||this.#i(o),o=this.#t.peek();UP(o);)this.#t.next(),f++,o=this.#t.peek();if(o===46){let d=-1;for(this.#t.next(),f++,d++,o=this.#t.peek();UP(o);)this.#t.next(),f++,d++,o=this.#t.peek();!this.#r&&d===0&&(this.#t.next(),o?this.#i(o):this.#h())}if(o===101||o===69)for(this.#t.next(),f++,o=this.#t.peek(),(o===43||o===45)&&(this.#t.next(),f++,o=this.#t.peek()),o===-1&&(this.#t.next(),this.#h()),UP(o)||(this.#t.next(),this.#i(o));UP(o);)this.#t.next(),f++,o=this.#t.peek();return f}#C(o){let f=1;if(o=this.#t.peek(),o===47){do this.#t.next(),f+=1,o=this.#t.peek();while(o>-1&&o!==13&&o!==10);return{length:f,multiline:!1}}if(o===42){for(this.#t.next(),f+=1;o>-1;)if(o=this.#t.peek(),o===42){if(this.#t.next(),f+=1,o=this.#t.peek(),o===47)return this.#t.next(),f+=1,{length:f,multiline:!0}}else this.#t.next(),f+=1;this.#t.next(),this.#h()}this.#t.next(),this.#i(o)}next(){let o=this.#t.next();for(;this.#a(o);)o=this.#t.next();if(o===-1)return b_.EOF;let f=this.#t.locate(),d=String.fromCharCode(o);if(this.#r)if(woe.has(d))this.#c=this.#d(woe.get(d),1,f);else if(Gnt(o)){let y=this.#y(o);woe.has(y)?this.#c=this.#d(woe.get(y),y.length,f):this.#c=this.#d("Identifier",y.length,f)}else if(FXt(o)){let y=this.#v(o);this.#c=this.#d("Number",y,f)}else if(Vnt(o,this.#r)){let y=this.#b(o),E=this.#t.locate();this.#c=this.#d("String",y,f,{line:E.line,column:E.column+1,offset:E.offset+1})}else if(o===47&&this.#s){let y=this.#C(o),E=this.#t.locate();this.#c=this.#d(y.multiline?"BlockComment":"LineComment",y.length,f,{line:E.line,column:E.column+1,offset:E.offset+1})}else this.#i(o);else if(Doe.has(d))this.#c=this.#d(Doe.get(d),1,f);else if(OXt(o)){let y=this.#y(o);NXt.has(y)||this.#o(y,f),this.#c=this.#d(Doe.get(y),y.length,f)}else if(Hnt(o)){let y=this.#v(o);this.#c=this.#d("Number",y,f)}else if(Vnt(o,this.#r)){let y=this.#b(o);this.#c=this.#d("String",y,f)}else if(o===47&&this.#s){let y=this.#C(o),E=this.#t.locate();this.#c=this.#d(y.multiline?"BlockComment":"LineComment",y.length,f,{line:E.line,column:E.column+1,offset:E.offset+1})}else this.#i(o);return b_[this.#c.type]}get token(){return this.#c}};var lT={document(s,o={}){return{type:"Document",body:s,loc:o.loc,...o}},string(s,o={}){return{type:"String",value:s,loc:o.loc,...o}},number(s,o={}){return{type:"Number",value:s,loc:o.loc,...o}},boolean(s,o={}){return{type:"Boolean",value:s,loc:o.loc,...o}},null(s={}){return{type:"Null",loc:s.loc,...s}},array(s,o={}){return{type:"Array",elements:s,loc:o.loc,...o}},element(s,o={}){return{type:"Element",value:s,loc:o.loc,...o}},object(s,o={}){return{type:"Object",members:s,loc:o.loc,...o}},member(s,o,f={}){return{type:"Member",name:s,value:o,loc:f.loc,...f}},identifier(s,o={}){return{type:"Identifier",name:s,loc:o.loc,...o}},nan(s="",o={}){return{type:"NaN",sign:s,loc:o.loc,...o}},infinity(s="",o={}){return{type:"Infinity",sign:s,loc:o.loc,...o}}},RXt={mode:"json",ranges:!1,tokens:!1,allowTrailingCommas:!1};function MXt(s,o,f=!1){let d="",y=s.indexOf("\\"),E=0;for(;y>=0;){d+=s.slice(E,y);let P=s.charAt(y+1),F=P.charCodeAt(0);if(f&&Poe.has(F))d+=Poe.get(F),E=y+2;else if(CV.has(F))d+=CV.get(F),E=y+2;else if(P==="u"){let J=s.slice(y+2,y+6);if(J.length<4||/[^0-9a-f]/i.test(J))throw new zP(`Invalid unicode escape \\u${J}.`,{line:o.loc.start.line,column:o.loc.start.column+y,offset:o.loc.start.offset+y});d+=String.fromCharCode(parseInt(J,16)),E=y+6}else if(f&&P==="x"){let J=s.slice(y+2,y+4);if(J.length<2||/[^0-9a-f]/i.test(J))throw new zP(`Invalid hex escape \\x${J}.`,{line:o.loc.start.line,column:o.loc.start.column+y,offset:o.loc.start.offset+y});d+=String.fromCharCode(parseInt(J,16)),E=y+4}else if(f&&$Pe.has(F))E=y+2,P==="\r"&&s.charAt(E)===`
570
570
  `&&E++;else if(f)d+=P,E=y+2;else throw new zP(`Invalid escape \\${P}.`,{line:o.loc.start.line,column:o.loc.start.column+y,offset:o.loc.start.offset+y});y=s.indexOf("\\",E)}return d+=s.slice(E),d}t(MXt,"getStringValue");function jXt(s,o,f=!1){switch(o.type){case"Boolean":return s==="true";case"Number":return Number(s);case"String":return MXt(s.slice(1,-1),o,f);default:throw new TypeError(`Unknown token type "${o.type}.`)}}t(jXt,"getLiteralValue");function Ynt(s,o){o=Object.freeze({...RXt,...o});let f=[],d=new HPe(s,{mode:o.mode,ranges:o.ranges}),y=o.mode==="json5",E=o.allowTrailingCommas||y;function P(){let wr=d.next();return wr&&o.tokens&&f.push(d.token),wr}t(P,"nextNoComments");function F(){let wr=d.next();return wr&&o.tokens&&f.push(d.token),wr>=b_.LineComment?F():wr}t(F,"nextSkipComments");let J=o.mode==="json"?P:F;function V(wr,yr){if(wr!==yr)throw new hO(d.token)}t(V,"assertTokenType");function Te(wr,yr){if(!yr.includes(wr))throw new hO(d.token)}t(Te,"assertTokenTypes");function de(wr,yr){return o.ranges?{range:[wr.offset,yr.offset]}:void 0}t(de,"createRange");function ae(wr){let yr=d.token,xs=de(yr.loc.start,yr.loc.end),bi=jXt(s.slice(yr.loc.start.offset,yr.loc.end.offset),yr,y),Ci={loc:{start:{...yr.loc.start},end:{...yr.loc.end}},...xs};switch(wr){case b_.String:return lT.string(bi,Ci);case b_.Number:return lT.number(bi,Ci);case b_.Boolean:return lT.boolean(bi,Ci);default:throw new TypeError(`Unknown token type ${yr.type}.`)}}t(ae,"createLiteralNode");function He(wr){let yr=de(wr.loc.start,wr.loc.end),xs=s.slice(wr.loc.start.offset,wr.loc.end.offset),fc={loc:{start:{...wr.loc.start},end:{...wr.loc.end}},...yr};if(wr.type!=="Identifier"){let Ci="";return(xs[0]==="+"||xs[0]==="-")&&(Ci=xs[0]),lT[xs.includes("NaN")?"nan":"infinity"](Ci,fc)}return lT.identifier(xs,fc)}t(He,"createJSON5IdentifierNode");function Ue(wr){let yr=de(wr.loc.start,wr.loc.end);return lT.null({loc:{start:{...wr.loc.start},end:{...wr.loc.end}},...yr})}t(Ue,"createNullNode");function je(wr){y?Te(wr,[b_.String,b_.Identifier,b_.Number]):V(wr,b_.String);let yr=d.token,xs=wr===b_.String?ae(wr):He(yr);if(y&&(xs.type==="NaN"||xs.type==="Infinity")){if(xs.sign!=="")throw new hO(d.token);xs=lT.identifier(xs.type,{loc:xs.loc,...de(xs.loc.start,xs.loc.end)})}wr=J(),V(wr,b_.Colon);let bi=Sr(),fc=de(xs.loc.start,bi.loc.end);return lT.member(xs,bi,{loc:{start:{...xs.loc.start},end:{...bi.loc.end}},...fc})}t(je,"parseProperty");function Yt(wr){V(wr,b_.LBrace);let yr=d.token,xs=[],bi=J();if(bi!==b_.RBrace)do{if(xs.push(je(bi)),bi=J(),!bi)throw new Aoe(xs[xs.length-1].loc.end);if(bi===b_.Comma){if(bi=J(),E&&bi===b_.RBrace)break}else break}while(bi);V(bi,b_.RBrace);let fc=d.token,Ci=de(yr.loc.start,fc.loc.end);return lT.object(xs,{loc:{start:{...yr.loc.start},end:{...fc.loc.end}},...Ci})}t(Yt,"parseObject");function zt(wr){V(wr,b_.LBracket);let yr=d.token,xs=[],bi=J();if(bi!==b_.RBracket)do{let bf=Sr(bi);if(xs.push(lT.element(bf,{loc:bf.loc})),bi=J(),bi===b_.Comma){if(bi=J(),E&&bi===b_.RBracket)break}else break}while(bi);V(bi,b_.RBracket);let fc=d.token,Ci=de(yr.loc.start,fc.loc.end);return lT.array(xs,{loc:{start:{...yr.loc.start},end:{...fc.loc.end}},...Ci})}t(zt,"parseArray");function Sr(wr){wr=wr??J();let yr=d.token;switch(wr){case b_.String:case b_.Boolean:return ae(wr);case b_.Number:if(y){let xs=s.slice(yr.loc.start.offset,yr.loc.end.offset);if((xs[0]==="+"||xs[0]==="-")&&(xs=xs.slice(1)),xs==="NaN"||xs==="Infinity")return He(yr)}return ae(wr);case b_.Null:return Ue(yr);case b_.LBrace:return Yt(wr);case b_.LBracket:return zt(wr);default:throw new hO(yr)}}t(Sr,"parseValue");let wn=Sr();if(J())throw new hO(d.token);let Jn={loc:{start:{line:1,column:1,offset:0},end:{...wn.loc.end}}};return o.tokens&&(Jn.tokens=f),o.ranges&&(Jn.range=[Jn.loc.start.offset,Jn.loc.end.offset]),lT.document(wn,Jn)}t(Ynt,"parse");var BXt=new Map([["Document",["body"]],["Object",["members"]],["Member",["name","value"]],["Element",["value"]],["Array",["elements"]],["String",[]],["Number",[]],["Boolean",[]],["Null",[]],["NaN",[]],["Infinity",[]],["Identifier",[]]]);function Knt(s){return s&&typeof s=="object"}t(Knt,"isObject");function UXt(s){return Knt(s)&&typeof s.type=="string"}t(UXt,"isNode");function zXt(s,o){function f(d,y){typeof o.enter=="function"&&o.enter(d,y);for(let E of BXt.get(d.type)){let P=d[E];Knt(P)&&(Array.isArray(P)?P.forEach(F=>f(F,d)):UXt(P)&&f(P,d))}typeof o.exit=="function"&&o.exit(d,y)}t(f,"visitNode"),f(s)}t(zXt,"traverse");function Xnt(s,o=()=>!0){let f=[];return zXt(s,{enter(d,y){f.push({node:d,parent:y,phase:"enter"})},exit(d,y){f.push({node:d,parent:y,phase:"exit"})}}),f.filter(o).values()}t(Xnt,"iterator");import $Xt from"node:fs/promises";var kV=t((s,o)=>s.split(/\r?\n/)[o-1],"getFileLineContent"),Noe=t(async s=>{try{return await $Xt.readFile(s,"utf-8")}catch{return}},"getSchemaContent"),wV=t(async s=>{try{return Ynt(s)}catch(o){if(o.column&&o.line&&o.message){let f=kV(s,o.line);return{column:o.column,line:o.line,length:void 0,lineText:f}}return}},"getSchemaAST");var Znt=t(async(s,o,f)=>{try{if(s.length===0)return;for(let d of s){let y=await Noe(d),E=await JXt(y,d,o,f);if(E)return E}}catch{}},"getRouteLocationByValue"),JXt=t(async(s,o,f,d)=>{try{if(!s)return;let y=null,E=await wV(s);if(E){for(let{node:P}of Xnt(E))if(P.value&&P.value===f){y=P.loc;break}if(y!==null){let P=kV(s,y.start.line);return{file:o,line:y.start.line,column:y.start.column,length:y.end.column-y.start.column,lineText:P,suggestion:d}}}}catch{}},"getRouteLocationByValueFromSchema");import Qnt from"node:fs/promises";import SE from"node:path";var GPe="schemas",YPe=".oas.json";var gO=t(async s=>(await Qnt.readdir(s)).map(f=>SE.join(s,f)).filter(f=>f.endsWith(YPe)).sort(),"getOpenApiFilesByAlphabetical"),W9=t(async s=>{let o=SE.resolve(s,"config");return(await Qnt.readdir(o)).filter(d=>d.endsWith(YPe)).length>=1},"oasFileInProject");function DV(s,o,f,d,y,E,P){if(E.has(f))return;let F;try{F=d.get(f)}catch(Ue){throw new P1({text:`Failed to resolve reference: ${f}`,detail:Ue.message,severity:"error",message:"Failed to resolve reference",location:{file:s,column:0,line:0,length:0,lineText:f,namespace:o,suggestion:"Check the reference and try again."}})}let J=Ooe(f),V=SE.basename(J,SE.extname(J)),Te=f.indexOf("#"),de=Te>=0?f.substring(0,Te):f,ae=Te>=0?f.substring(Te+1):"",He=d.get(de);if(ae){let Ue=ae.split("/").filter(Boolean);for(let je of Ue)if(He=He[je],He===void 0)throw new Error(`Cannot resolve JSON pointer: ${ae}`)}if(He&&typeof He=="object"&&"$ref"in He&&typeof He.$ref=="string"&&!He.$ref.startsWith("#")){let Ue=SE.resolve(SE.dirname(de),He.$ref);if(J=Ue,V=SE.basename(J,SE.extname(J)),de=Ue,E.has(de)){let Yt=E.get(de);if(Yt===void 0)throw new Error(`Expected to find ${de} in refsVisited map`);E.set(f,Yt);return}let je=y.length;E.set(f,je),E.set(de,je),y.push(de),Ioe(J,V,F,d,y,E,P)}else E.set(f,y.length),y.push(f),Ioe(Ooe(f),o,F,d,y,E,P)}t(DV,"chaseRefs");function Ioe(s,o,f,d,y,E,P){if(Array.isArray(f))for(let F of f)Ioe(s,o,F,d,y,E,P);else if(typeof f=="object")for(let F in f){if(F==="$ref"){let J=f[F];P&&(f[F]=P(o,J,s)),DV(s,o,KN(s,J),d,y,E,P)}Ioe(s,o,f[F],d,y,E,P)}}t(Ioe,"lookForRefs");function KN(s,o){let f=o.indexOf("#");return f>=0?`${SE.resolve(s,o.substring(0,f))}${o.substring(f)}`:SE.resolve(SE.dirname(s),o)}t(KN,"getFullyQualifiedRefName");function Ooe(s){let o=s.indexOf("#");return o>=0?s.substring(0,o):s}t(Ooe,"getFilePathNameFromRefName");import ole from"node:path";function WXt(s){if(s.length>=255)throw new TypeError("Alphabet too long");let o=new Uint8Array(256);for(let V=0;V<o.length;V++)o[V]=255;for(let V=0;V<s.length;V++){let Te=s.charAt(V),de=Te.charCodeAt(0);if(o[de]!==255)throw new TypeError(Te+" is ambiguous");o[de]=V}let f=s.length,d=s.charAt(0),y=Math.log(f)/Math.log(256),E=Math.log(256)/Math.log(f);function P(V){if(V instanceof Uint8Array||(ArrayBuffer.isView(V)?V=new Uint8Array(V.buffer,V.byteOffset,V.byteLength):Array.isArray(V)&&(V=Uint8Array.from(V))),!(V instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(V.length===0)return"";let Te=0,de=0,ae=0,He=V.length;for(;ae!==He&&V[ae]===0;)ae++,Te++;let Ue=(He-ae)*E+1>>>0,je=new Uint8Array(Ue);for(;ae!==He;){let Sr=V[ae],wn=0;for(let sn=Ue-1;(Sr!==0||wn<de)&&sn!==-1;sn--,wn++)Sr+=256*je[sn]>>>0,je[sn]=Sr%f>>>0,Sr=Sr/f>>>0;if(Sr!==0)throw new Error("Non-zero carry");de=wn,ae++}let Yt=Ue-de;for(;Yt!==Ue&&je[Yt]===0;)Yt++;let zt=d.repeat(Te);for(;Yt<Ue;++Yt)zt+=s.charAt(je[Yt]);return zt}t(P,"encode");function F(V){if(typeof V!="string")throw new TypeError("Expected String");if(V.length===0)return new Uint8Array;let Te=0,de=0,ae=0;for(;V[Te]===d;)de++,Te++;let He=(V.length-Te)*y+1>>>0,Ue=new Uint8Array(He);for(;V[Te];){let Sr=o[V.charCodeAt(Te)];if(Sr===255)return;let wn=0;for(let sn=He-1;(Sr!==0||wn<ae)&&sn!==-1;sn--,wn++)Sr+=f*Ue[sn]>>>0,Ue[sn]=Sr%256>>>0,Sr=Sr/256>>>0;if(Sr!==0)throw new Error("Non-zero carry");ae=wn,Te++}let je=He-ae;for(;je!==He&&Ue[je]===0;)je++;let Yt=new Uint8Array(de+(He-je)),zt=de;for(;je!==He;)Yt[zt++]=Ue[je++];return Yt}t(F,"decodeUnsafe");function J(V){let Te=F(V);if(Te)return Te;throw new Error("Non-base"+f+" character")}return t(J,"decode"),{encode:P,decodeUnsafe:F,decode:J}}t(WXt,"base");var eit=WXt;var qXt="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Foe=eit(qXt);var VXt=!1;function q9(s,o){return{open:`\x1B[${s.join(";")}m`,close:`\x1B[${o}m`,regexp:new RegExp(`\\x1b\\[${o}m`,"g")}}t(q9,"code");function V9(s,o){return VXt?`${o.open}${s.replace(o.regexp,o.open)}${o.close}`:s}t(V9,"run");function HXt(s){return V9(s,q9([31],39))}t(HXt,"red");function GXt(s){return V9(s,q9([32],39))}t(GXt,"green");function YXt(s){return V9(s,q9([33],39))}t(YXt,"yellow");function KXt(s){return V9(s,q9([34],39))}t(KXt,"blue");function XXt(s){return V9(s,q9([35],39))}t(XXt,"magenta");function ZXt(s){return V9(s,q9([36],39))}t(ZXt,"cyan");var HCr=new RegExp(["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|"),"g");var tit=[HXt,GXt,YXt,KXt,XXt,ZXt];function QXt(s){let o=0,f=s.length,d=0;if(f>0)for(;d<f;)o=(o<<5)-o+s.charCodeAt(d++)|0;return o}t(QXt,"hashCode");function rit(s){let o=Math.abs(QXt(s));return tit[o%tit.length]}t(rit,"generateColor");import{inspect as eZt}from"node:util";function nit(s,o,...f){let d=0,y=f.length,E=String(o).replace(/%[sdjoO%]/g,P=>{if(P==="%%")return"%";if(d>=y)return P;switch(P){case"%s":return String(f[d++]);case"%d":return Number(f[d++]).toString();case"%o":return s(f[d++]).split(`
571
- `).map(F=>F.trim()).join(" ");case"%O":return s(f[d++]);case"%j":try{return JSON.stringify(f[d++])}catch{return"[Circular]"}default:return P}});for(let P of f.splice(d))P===null||!(typeof P=="object"&&P!==null)?E+=" "+P:E+=" "+s(P);return E}t(nit,"format");var iit=t((s,...o)=>nit(eZt,s,o),"format");var KPe=class{static{t(this,"Debugger")}manager;ns;color;last;enabled;constructor(o,f){this.manager=o,this.ns=f,this.color=rit(f),this.last=0,this.enabled=o.enabled.some(d=>d.test(f))}log(...o){if(!this.enabled)return;let f,d=o[0];typeof d=="function"?f=d():f=String(d);let y=Date.now()-(this.last||Date.now());f=iit(f,...o);let E=`${this.color(this.ns)} ${f} ${this.color(`+${y}ms`)}`;console.log(E),this.last=Date.now()}},XPe=class{static{t(this,"DebugManager")}debuggers;enabled;constructor(o){this.debuggers=new Map,this.enabled=o??[]}};function tZt(s){return!s||s.length===0?[]:(s=s.replace(/\s/g,"").replace(/\*/g,".+"),s.split(",").map(o=>new RegExp(`^${o}$`)))}t(tZt,"extract");var Loe;function Roe(s){Loe||(Loe=new XPe(tZt(process.env.DEBUG)));let o=new KPe(Loe,s);return Loe.debuggers.set(s,o),Object.assign(o.log.bind(o),{self:o})}t(Roe,"debug");var sit="zp-local-service";var $P=class extends Error{static{t(this,"RuntimeError")}extensionMembers;constructor(o,f){typeof o=="string"?super(o,f):(super(o.message,f),this.extensionMembers=o.extensionMembers),this.name="RuntimeError"}};var XN=Roe("zuplo:runtime:external-service");function rZt(){let s,{__ZUPLO_EXTERNAL_SERVICE_TOKEN:o}=Cm.instance.runtime;if(o&&o!=="undefined")try{let f=atob(o);s=JSON.parse(f)}catch{}return s}t(rZt,"getServiceAuth");async function ait(s,o){let f=".proxy",d=".tunnel";if(typeof s=="string"){let y=new URL(s),E=y.hostname;if(E.endsWith(f)){let Yt=E.slice(0,-f.length),zt=new URL(`http://${Yt}${y.pathname}${y.search}`);XN(`Routing to proxy: ${zt.toString()}`);let Sr=o??{};return PV(zt.toString(),Sr)}let P=E.endsWith(d),F=E.indexOf(".")===-1;if(!(P||F))throw new $P(`Invalid service hostname suffix: ${E}. Use .proxy for proxy routing, .tunnel for explicit tunnel routing, or no suffix for default tunnel routing.`);let V=P?E.slice(0,-d.length):E,Te=rZt();if(!Te)throw XN("There is no external service auth configured for this zup."),new $P("There are no external services configured for this zup.");XN(`Using external service auth. ClientId: ${Te.clientId})`);let de=o??{},ae=new Headers(de.headers||{});ae.set("CF-Access-Client-Id",Te.clientId),ae.set("CF-Access-Client-Secret",Te.clientSecret),de.headers=ae;let He;if(Te.customServiceMapping?.[V])He=`https://${Te.customServiceMapping[V]}`;else if(Cm.instance.useLegacyServiceRouting)He=`https://${V}.zuptunnel.com`;else{XN("Using sha256 service routing");let Yt=Cm.instance.build;if(Yt.ACCOUNT_NAME&&Yt.PROJECT_NAME&&Yt.ENVIRONMENT_TYPE){let zt=await nZt(V,Yt.ACCOUNT_NAME,Yt.PROJECT_NAME,Yt.ENVIRONMENT_TYPE),Sr=cit(Yt.ENVIRONMENT_TYPE),wn=await ZPe(`${Yt.ACCOUNT_NAME}-${Yt.PROJECT_NAME}-${Sr}`);wn==="40d7ad502f5d743997999594c177184a00161a77865423511f3a1ea21eb5a5e"||wn==="d05bffe8fa91a300187d2cf43e8aa4a56bd809c442ae10d1ee49af7d29a5a11"?He=`https://${zt}.zuptunnel.com`:He=`https://${zt}.t.zuplo.app`}else throw XN("Cannot use sha256 service routing, missing build variables"),new $P("Failed to generate fully qualified tunnel url.")}let Ue=new URL(`${He}${y.pathname}${y.search}`);XN(`Calling external service: ${Ue.toString()}`);let je=await PV(Ue.toString(),de);if(je.status===403&&je.headers.get("cf-access-domain")!==null)throw AV.console.error("403 Forbidden when calling external service.",{clientId:Te.clientId,tunnelHost:He}),new $P("Could not connect to secure tunnel.");return je}else throw XN("Cannot call external service with Request object"),new $P("Currently, we only support fetch(<some_string>, ...).")}t(ait,"externalServiceHandler");async function oit(s,o){if(typeof s=="string"){let f=new URL(s),d=f.hostname,y=o??{},E=`http://${d}.zuplo.svc.cluster.local:9000`,P=new URL(`${E}${f.pathname}${f.search}`),F=new Headers(y.headers||{});return F.set(sit,d),y.headers=F,await PV(P.toString(),y)}else throw new $P("Currently, we only support fetch(<some_string>, ...).")}t(oit,"clusterServiceHandler");async function nZt(s,o,f,d){let y=s.toLowerCase(),E=o.toLowerCase(),P=f.toLowerCase(),F=cit(d);XN(`Hashing service name: ${E}-${y}.${E}-${P}-${F}`);let J=await ZPe(`${E}-${y}`),V=await ZPe(`${E}-${P}-${F}`);return`${J}.${V}`}t(nZt,"hashServiceName");async function ZPe(s){let o=new TextEncoder().encode(s),f=await crypto.subtle.digest("SHA-256",o);return Array.from(new Uint8Array(f)).map(E=>E.toString(16).padStart(2,"0")).join("").slice(0,-1)}t(ZPe,"hashSegment");function cit(s){let o=s.toLowerCase();switch(o){case"production":case"preview":return o;default:return"working-copy"}}t(cit,"sanitizeEnvironmentType");var QPe=new Map;QPe.set("service:",ait);QPe.set("local:",oit);var PV=globalThis.fetch;function eAe(s,o){let{transformedInit:f,mtlsCertificate:d}=iZt(o);if(typeof s=="string"){let y=new URL(s),E=QPe.get(y.protocol);return E?E(s,f):lit(s,f,d)}else return lit(s,f,d)}t(eAe,"internalFetch");globalThis.fetch=eAe;function lit(s,o,f){if(!f)return PV(s,o);if(Cm.instance.isCloudflare){let y=Cm.instance.runtime[f];if(!y)throw new Error(`mTLS certificate binding '${f}' not found. Ensure the certificate is uploaded and properly configured.`);if(typeof y!="object"||typeof y.fetch!="function")throw new Error(`mTLS certificate binding '${f}' is not a valid mTLS certificate binding. Make sure it's configured as an mTLS certificate, not an environment variable.`);return y.fetch(s,o)}else if(Cm.instance.isDeno){let d=globalThis.managedDedicatedMtlsBindings?.[f];if(!d)throw new Error(`mTLS certificate binding '${f}' not found. Ensure the certificate is uploaded and properly configured.`);if(typeof d.fetch!="function")throw new Error(`mTLS certificate binding '${f}' is not a valid mTLS certificate binding.`);return d.fetch(s,o)}else throw new Error("mTLS client certificates are not supported in this runtime environment")}t(lit,"performFetch");var iZt=t(s=>{if(!s||s instanceof Request)return{transformedInit:s,mtlsCertificate:void 0};let o=s;if(!o.zuplo)return{transformedInit:s,mtlsCertificate:void 0};let f=o.zuplo.mtlsCertificate,d=s;return d.cf={cacheEverything:o.zuplo?.cacheEverything,cacheTtl:o.zuplo?.cacheTtlSeconds},delete s.zuplo,{transformedInit:s,mtlsCertificate:f}},"transformInit");var sZt={console:{log:console.log.bind(console),info:console.info.bind(console),warn:console.warn.bind(console),error:console.error.bind(console),debug:console.debug.bind(console),assert:console.assert.bind(console),clear:console.clear.bind(console),count:console.count.bind(console),countReset:console.countReset.bind(console),dir:console.dir.bind(console),dirxml:console.dirxml.bind(console),group:console.group.bind(console),groupCollapsed:console.groupCollapsed.bind(console),groupEnd:console.groupEnd.bind(console),table:console.table.bind(console),time:console.time.bind(console),timeEnd:console.timeEnd.bind(console),timeLog:console.timeLog.bind(console),timeStamp:console.timeStamp.bind(console),trace:console.trace.bind(console),profile:console.profile.bind(console),profileEnd:console.profileEnd.bind(console)},fetch:eAe},AV=sZt;var tAe="2025-02-06",uit=Object.freeze({none:{runOutboundPoliciesOnHandlerOnAllStatuses:!1,doNotRunHooksOnSystemRoutes:!1,removeAllVendorHeadersExceptListed:!1,allowCustomPorts:!1,removeLegacyLogInitialization:!1,useForwardRedirectsPropOnUrlForwardHandler:!1,chainResponseSendingHooks:!1,return501ForUnsupportedHttpMethods:!1},"2023-03-14":{runOutboundPoliciesOnHandlerOnAllStatuses:!1,doNotRunHooksOnSystemRoutes:!1,removeAllVendorHeadersExceptListed:!1,allowCustomPorts:!1,removeLegacyLogInitialization:!1,useForwardRedirectsPropOnUrlForwardHandler:!1,chainResponseSendingHooks:!1,return501ForUnsupportedHttpMethods:!1},"2024-01-15":{runOutboundPoliciesOnHandlerOnAllStatuses:!0,doNotRunHooksOnSystemRoutes:!0,removeAllVendorHeadersExceptListed:!0,allowCustomPorts:!1,removeLegacyLogInitialization:!1,useForwardRedirectsPropOnUrlForwardHandler:!1,chainResponseSendingHooks:!1,return501ForUnsupportedHttpMethods:!1},"2024-03-14":{runOutboundPoliciesOnHandlerOnAllStatuses:!0,doNotRunHooksOnSystemRoutes:!0,removeAllVendorHeadersExceptListed:!0,allowCustomPorts:!1,removeLegacyLogInitialization:!1,useForwardRedirectsPropOnUrlForwardHandler:!1,chainResponseSendingHooks:!1,return501ForUnsupportedHttpMethods:!1},"2024-09-02":{runOutboundPoliciesOnHandlerOnAllStatuses:!0,doNotRunHooksOnSystemRoutes:!0,removeAllVendorHeadersExceptListed:!0,allowCustomPorts:!0,removeLegacyLogInitialization:!1,useForwardRedirectsPropOnUrlForwardHandler:!1,chainResponseSendingHooks:!1,return501ForUnsupportedHttpMethods:!1},"2025-02-06":{runOutboundPoliciesOnHandlerOnAllStatuses:!0,doNotRunHooksOnSystemRoutes:!0,removeAllVendorHeadersExceptListed:!0,allowCustomPorts:!0,removeLegacyLogInitialization:!0,useForwardRedirectsPropOnUrlForwardHandler:!0,chainResponseSendingHooks:!1,return501ForUnsupportedHttpMethods:!1},"2026-03-01":{runOutboundPoliciesOnHandlerOnAllStatuses:!0,doNotRunHooksOnSystemRoutes:!0,removeAllVendorHeadersExceptListed:!0,allowCustomPorts:!0,removeLegacyLogInitialization:!0,useForwardRedirectsPropOnUrlForwardHandler:!0,chainResponseSendingHooks:!0,return501ForUnsupportedHttpMethods:!0}});function fit(){return new Cm({build:{ACCOUNT_NAME:"mock-account-name",PROJECT_NAME:"mock-project-name",API_VERSION:"0.0.0",BUILD_ID:crypto.randomUUID(),TIMESTAMP:new Date().toISOString(),BUILD_ENV:"test",ZUPLO_VERSION:"0.0.0",COMPATIBILITY_DATE:tAe,ENVIRONMENT_TYPE:"mock-environment-type",GIT_SHA:void 0,IS_LOCAL_DEVELOPMENT:!1,COMPATIBILITY_FLAGS:uit[tAe]},runtime:{RUNTIME_ENV:"test",RUNTIME_STAGE:"test",__ZUPLO_DEPLOYMENT_NAME:"mock-deployment-name",__ZUPLO_LOG_LEVEL:"debug",__ZUPLO_LOG_FORMAT:"pretty",__ZUPLO_MANAGEMENT_API_URL:"",__ZUPLO_RUNTIME_TYPE:"cloudflare",__ZUPLO_AUTH_API_JWT:"",ZUPLO_SERVICE_BUCKET_ID:"bckt_mock"}})}t(fit,"getMockEnvironment");var Cm=class s{static{t(this,"Environment")}config;static#e;static#n=!1;static initialize(o){s.#e||(s.#e=new s(o),s.#n=!0)}static get instance(){return s.#n||(AV.console.debug("Environment has not been initialized. This is okay when running tests, a mock environment will be used."),s.#e??=fit()),s.#e}constructor({build:o,runtime:f}){let d;try{if(f.ZUPLO_SYSTEM_CONFIGURATIONS){let y=new TextDecoder().decode(Foe.decode(f.ZUPLO_SYSTEM_CONFIGURATIONS)),E=JSON.parse(y);for(let P of Object.keys(E))f[P]||(f[P]=E[P])}if(f.__ZUPLO_CONFIG){let y=atob(f.__ZUPLO_CONFIG);d=JSON.parse(y)}}catch(y){AV.console.error("Failed to parse runtime configuration",y)}this.config=d??{},this.build=o,this.runtime=f,this.instanceId=crypto.randomUUID()}build;runtime;instanceId;get deploymentName(){return this.runtime.__ZUPLO_DEPLOYMENT_NAME??this.config.deployment_name??void 0}get useLegacyServiceRouting(){return this.config.use_legacy_service_routing??void 0}get useProxyForFetchFromZups(){return this.config.use_proxy_for_fetch_from_zups??void 0}get devPortalBaseUrl(){return this.runtime.__ZUPLO_DEV_PORTAL_URL??this.config.dev_portal_url??"https://dev-portal-v4-1.zuplo.com"}get buildAssetsUrl(){return this.runtime.__ZUPLO_BUILD_ASSETS_URL??this.config.build_assets_url??"https://build-assets.zuplo.com"}get zuploEdgeApiUrl(){return this.config.zuplo_edge_api_url??"https://api.zuploedge.com"}get remoteLogToken(){return this.runtime.__ZUPLO_REMOTE_LOG_TOKEN??this.config.remote_log_token??void 0}get zuploClientAuthBucketId(){return this.config.zuplo_auth_client_bucket_id??"auth_o8PUdhKxSTOiB794GWPwLQCD"}get managementApiURL(){return this.runtime.__ZUPLO_MANAGEMENT_API_URL??this.config.management_api_url??"https://api.zuplo.com"}get developerApiUrl(){return this.config.developer_api_url??"https://dev.zuplo.com"}get cdnURL(){return this.runtime.__ZUPLO_CDN_URL??this.config.cdn_url??"https://cdn.zuplo.com"}get remoteLogURL(){return this.runtime.__ZUPLO_REMOTE_LOG_URL??this.config.log_event_api??"https://ellie.zuploedge.com"}get loggingId(){return this.runtime.__ZUPLO_LOGGING_ID??this.config.logging_id??void 0}get redisURL(){return this.runtime.__ZUPLO_REDIS_URL??this.config.redis_proxy_url??"https://redis-proxy.zuploedge.com"}get apiKeyServiceUrl(){return this.runtime.__ZUPLO_API_KEY_SERVICE_URL??this.config.api_key_service_url??"https://apikey.zuploedge.com"}get meteringServiceUrl(){return this.config.metering_service_url??"https://meters.zuploedge.com"}get authApiJWT(){return this.runtime.__ZUPLO_AUTH_API_JWT??void 0}get authClientId(){return this.config.auth_client_id??this.runtime.__ZUPLO_AUTH_CLIENT_ID}get authClientSecret(){return this.config.auth_client_secret??this.runtime.__ZUPLO_AUTH_CLIENT_SECRET}get authPublicKey(){return this.config.auth_public_key??this.runtime.__ZUPLO_AUTH_PUBLIC_KEY}get authPrivateKey(){return this.config.auth_private_key??this.runtime.__ZUPLO_AUTH_PRIVATE_KEY}get userLogLevel(){return this.runtime.ZUPLO_LOG_LEVEL??this.runtime.__ZUPLO_LOG_LEVEL??this.config.user_log_level??"debug"}get systemLogLevel(){return this.runtime.__ZUPLO_LOG_LEVEL??this.config.system_log_level??"debug"}get logFormat(){return this.runtime.__ZUPLO_LOG_FORMAT??this.config.log_format??"cloudflare"}get isCloudflare(){return this.runtime.__ZUPLO_RUNTIME_TYPE?this.runtime.__ZUPLO_RUNTIME_TYPE==="cloudflare":this.config.runtime_type?this.config.runtime_type==="cloudflare":typeof WebSocketPair=="function"}get isManagedDedicated(){return this.runtime.__ZUPLO_IS_MANAGED_DEDICATED==="true"}get isDeno(){if(this.runtime.__ZUPLO_RUNTIME_TYPE)return this.runtime.__ZUPLO_RUNTIME_TYPE==="deno";if(this.config.runtime_type)return this.config.runtime_type==="deno";{let o=globalThis.Deno?.version?.deno;return typeof WebSocketPair!="function"&&o}}get isLocalDevelopment(){return this.build.IS_LOCAL_DEVELOPMENT}get isTestMode(){return!!this.runtime.__ZUPLO_TEST_MODE}get systemUserAgent(){return`Zuplo/${this.build.ZUPLO_VERSION}`}get loggingEnvironmentType(){return this.isCloudflare?"edge":this.isLocalDevelopment?"local":this.isDeno?"working-copy":"unknown"}get loggingEnvironmentStage(){return this.build.ENVIRONMENT_TYPE==="PRODUCTION"?"production":this.build.ENVIRONMENT_TYPE==="PREVIEW"?"preview":this.isLocalDevelopment?"local":this.isWorkingCopy?"working-copy":"unknown"}get isWorkingCopy(){return this.build.ENVIRONMENT_TYPE==="WORKING_COPY"}get rateLimitServiceTimeoutMs(){let o=this.runtime.__ZUPLO_RATE_LIMIT_TIMEOUT_MS,f=this.config.rate_limit_service_timeout_ms,d=o??f;if(!d)return 500;let y=Number(d);return Number.isFinite(y)&&y>0?y:500}};var aZt=["ZUPLO_USER_LOGGER_DATA_DOG_API_KEY","ZUPLO_USER_LOGGER_DATA_DOG_URL","ZUPLO_LOG_LEVEL","ZUPLO_HANDLER_WRITE_LOG_LEVEL"];function _it(s){return s.startsWith("__ZUPLO")||s.startsWith("ZUPLO_")?!aZt.includes(s)&&!s.startsWith("ZUPLO_PUBLIC_"):s.startsWith("ZUDOKU_")?!s.startsWith("ZUDOKU_PUBLIC_"):!1}t(_it,"isRestrictedEnvVariableName");function pit(s){return!!s.startsWith("ZUPLO_")}t(pit,"isZuploReadableEnvVariableName");var Lkr=new Proxy({},{get(s,o){let f=String(o);switch(f){case"ZUPLO_ENVIRONMENT_TYPE":return Cm.instance.loggingEnvironmentType;case"ZUPLO_ENVIRONMENT_STAGE":return Cm.instance.loggingEnvironmentStage;case"ZUPLO_ENVIRONMENT_NAME":return Cm.instance.runtime.__ZUPLO_DEPLOYMENT_NAME;case"ZUPLO_ACCOUNT_NAME":return Cm.instance.build.ACCOUNT_NAME;case"ZUPLO_PROJECT_NAME":return Cm.instance.build.PROJECT_NAME;case"ZUPLO_BUILD_ID":return Cm.instance.build.BUILD_ID;case"ZUPLO_COMPATIBILITY_DATE":return Cm.instance.build.COMPATIBILITY_DATE}if(!(_it(f)&&!pit(f)))return Cm.instance.runtime[f]}});function NV(s,o,f){return`_${JP(`${s}_${o}_${f}`)}`}t(NV,"getRawOperationDataIdentifierName");function rAe(s,o,f,d){return`_${JP(s.toLowerCase())}_${o.toLowerCase()}_${f.toLowerCase()}_${d.toLowerCase()}`}t(rAe,"getIdForParameterSchema");function nAe(s,o,f){return`_${JP(s.toLowerCase())}_${o.toLowerCase()}_rb_${JP(f.toLowerCase())}`}t(nAe,"getIdForRequestBodySchema");function IV(s,o){return`_${JP(s)}_${JP(o)}`}t(IV,"getIdForRefSchema");function JP(s){let o=s.replace(/\[/g,"_LBRACKET_").replace(/\]/g,"_RBRACKET_").replace(/\{/g,"_LCURLY_").replace(/\}/g,"_RCURLY_").replace(/\//g,"_SLASH_").replace(/-/g,"_DASH_").replace(/\./g,"_DOT_").replace(/\+/g,"_PLUS_").replace(/:/g,"_COLON_").replace(/@/g,"_AT_").replace(/\$/g,"_DOLLAR_").replace(/[^a-zA-Z0-9_]/g,"_");return/^[a-zA-Z_]/.test(o)||(o=`_${o}`),o}t(JP,"sanitizedIdentifierName");var sAe={};ztt(sAe,{UnsafePathError:()=>Moe,deleteFolder:()=>bZt,dirExists:()=>iAe,fileExists:()=>uZt,getParentDirFilename:()=>gZt,isNotFileOrDirectory:()=>_Zt,listFolderContents:()=>hit,listFolders:()=>dZt,mkDirTemp:()=>fZt,mkdirForFilePathIfNotExits:()=>mZt,mkdirIfNotExists:()=>git,safePath:()=>hZt,tarFolder:()=>yZt,untarFile:()=>vZt});import{spawn as dit}from"node:child_process";import{randomUUID as oZt}from"node:crypto";import ZN from"node:fs/promises";import{platform as cZt,tmpdir as lZt}from"node:os";import O1 from"node:path";var mit=[".git","node_modules",".yarn",".DS_Store"];async function uZt(s){try{return(await ZN.stat(s)).isFile()}catch{return!1}}t(uZt,"fileExists");async function fZt(){let s=process.env.BUILD_FILE_PATH??lZt(),o=oZt().replaceAll("-",""),f=O1.join(s,o);return await ZN.mkdir(f,{recursive:!0}),f}t(fZt,"mkDirTemp");async function iAe(s){try{return(await ZN.stat(s)).isDirectory()}catch{return!1}}t(iAe,"dirExists");async function _Zt(s){try{return await ZN.stat(s),!1}catch{return!0}}t(_Zt,"isNotFileOrDirectory");function pZt(s,o){let f=O1.sep==="\\"?"\\\\":O1.sep,d=new RegExp(`(.*)(${f}${o})$|(.*)(${o}${f})`),y=s.match(d);if(!y)return"";let E=s.split(y[0]);return E[1]===""?"":O1.join(O1.sep,E[1])}t(pZt,"getParentDirectory");async function dZt(s){if(!await iAe(s))return[];let o=await ZN.readdir(s,{withFileTypes:!0}),f=[];for await(let d of o)mit.includes(d.name)||d.isDirectory()&&f.push(d.name);return f}t(dZt,"listFolders");async function hit(s,o,f=!0){let d=pZt(s,o),y=await ZN.readdir(s,{withFileTypes:!0}),E=[];for await(let P of y)if(!mit.includes(P.name)||!f)if(P.isDirectory()){let F=await hit(O1.join(s,P.name),o,f);E.push(...F)}else E.push(O1.join(d,P.name));return E}t(hit,"listFolderContents");var git=t(async s=>{await ZN.mkdir(s,{recursive:!0})},"mkdirIfNotExists"),mZt=t(async s=>{let o=O1.dirname(s);return git(o)},"mkdirForFilePathIfNotExits"),Moe=class extends Error{static{t(this,"UnsafePathError")}};function hZt(s){let o=O1.normalize(s),f=t(d=>{let y=O1.normalize(d),E=process.platform==="win32",P=!1;if(E?P=y.toLowerCase().startsWith(o.toLowerCase()):P=y.startsWith(o),!P)throw new Moe("Resolved path is not part of the project.");return y},"ensureSafePath");return{resolve:t((...d)=>f(O1.resolve(...d)),"resolve")}}t(hZt,"safePath");function gZt(s){return O1.join(O1.basename(O1.dirname(s)),O1.basename(s))}t(gZt,"getParentDirFilename");async function yZt({folderPath:s,outputTarPath:o,exclude:f=["node_modules",".git","dist"],logger:d}){let y=[],E=[],P;try{await new Promise((F,J)=>{let V=dit("tar",[...f.flatMap(Te=>["--exclude",Te]),...cZt()!=="darwin"?["--warning=no-file-changed"]:[],"-cvf",o,"-C",s,"."]);V.stdout.on("data",Te=>{let de=Te.toString().trim();de.length>0&&y.push(de.trim())}),V.stderr.on("data",Te=>{let de=Te.toString().trim();de.length>0&&E.push(de.trim())}),V.on("close",Te=>{P=Te,Te===0?F():J(new Error(`tar process exited with code ${Te}`))}),V.on("error",Te=>{J(Te)})})}catch(F){throw new Error("Failed to tar folder",{cause:F})}finally{d.info({stdout:y.join(`
571
+ `).map(F=>F.trim()).join(" ");case"%O":return s(f[d++]);case"%j":try{return JSON.stringify(f[d++])}catch{return"[Circular]"}default:return P}});for(let P of f.splice(d))P===null||!(typeof P=="object"&&P!==null)?E+=" "+P:E+=" "+s(P);return E}t(nit,"format");var iit=t((s,...o)=>nit(eZt,s,o),"format");var KPe=class{static{t(this,"Debugger")}manager;ns;color;last;enabled;constructor(o,f){this.manager=o,this.ns=f,this.color=rit(f),this.last=0,this.enabled=o.enabled.some(d=>d.test(f))}log(...o){if(!this.enabled)return;let f,d=o[0];typeof d=="function"?f=d():f=String(d);let y=Date.now()-(this.last||Date.now());f=iit(f,...o);let E=`${this.color(this.ns)} ${f} ${this.color(`+${y}ms`)}`;console.log(E),this.last=Date.now()}},XPe=class{static{t(this,"DebugManager")}debuggers;enabled;constructor(o){this.debuggers=new Map,this.enabled=o??[]}};function tZt(s){return!s||s.length===0?[]:(s=s.replace(/\s/g,"").replace(/\*/g,".+"),s.split(",").map(o=>new RegExp(`^${o}$`)))}t(tZt,"extract");var Loe;function Roe(s){Loe||(Loe=new XPe(tZt(process.env.DEBUG)));let o=new KPe(Loe,s);return Loe.debuggers.set(s,o),Object.assign(o.log.bind(o),{self:o})}t(Roe,"debug");var sit="zp-local-service";var $P=class extends Error{static{t(this,"RuntimeError")}extensionMembers;constructor(o,f){typeof o=="string"?super(o,f):(super(o.message,f),this.extensionMembers=o.extensionMembers),this.name="RuntimeError"}};var XN=Roe("zuplo:runtime:external-service");function rZt(){let s,{__ZUPLO_EXTERNAL_SERVICE_TOKEN:o}=Cm.instance.runtime;if(o&&o!=="undefined")try{let f=atob(o);s=JSON.parse(f)}catch{}return s}t(rZt,"getServiceAuth");async function ait(s,o){let f=".proxy",d=".tunnel";if(typeof s=="string"){let y=new URL(s),E=y.hostname;if(E.endsWith(f)){let Yt=E.slice(0,-f.length),zt=new URL(`http://${Yt}${y.pathname}${y.search}`);XN(`Routing to proxy: ${zt.toString()}`);let Sr=o??{};return PV(zt.toString(),Sr)}let P=E.endsWith(d),F=E.indexOf(".")===-1;if(!(P||F))throw new $P(`Invalid service hostname suffix: ${E}. Use .proxy for proxy routing, .tunnel for explicit tunnel routing, or no suffix for default tunnel routing.`);let V=P?E.slice(0,-d.length):E,Te=rZt();if(!Te)throw XN("There is no external service auth configured for this zup."),new $P("There are no external services configured for this zup.");XN(`Using external service auth. ClientId: ${Te.clientId})`);let de=o??{},ae=new Headers(de.headers||{});ae.set("CF-Access-Client-Id",Te.clientId),ae.set("CF-Access-Client-Secret",Te.clientSecret),de.headers=ae;let He;if(Te.customServiceMapping?.[V])He=`https://${Te.customServiceMapping[V]}`;else if(Cm.instance.useLegacyServiceRouting)He=`https://${V}.zuptunnel.com`;else{XN("Using sha256 service routing");let Yt=Cm.instance.build;if(Yt.ACCOUNT_NAME&&Yt.PROJECT_NAME&&Yt.ENVIRONMENT_TYPE){let zt=await nZt(V,Yt.ACCOUNT_NAME,Yt.PROJECT_NAME,Yt.ENVIRONMENT_TYPE),Sr=cit(Yt.ENVIRONMENT_TYPE),wn=await ZPe(`${Yt.ACCOUNT_NAME}-${Yt.PROJECT_NAME}-${Sr}`);wn==="40d7ad502f5d743997999594c177184a00161a77865423511f3a1ea21eb5a5e"||wn==="d05bffe8fa91a300187d2cf43e8aa4a56bd809c442ae10d1ee49af7d29a5a11"?He=`https://${zt}.zuptunnel.com`:He=`https://${zt}.t.zuplo.app`}else throw XN("Cannot use sha256 service routing, missing build variables"),new $P("Failed to generate fully qualified tunnel url.")}let Ue=new URL(`${He}${y.pathname}${y.search}`);XN(`Calling external service: ${Ue.toString()}`);let je=await PV(Ue.toString(),de);if(je.status===403&&je.headers.get("cf-access-domain")!==null)throw AV.console.error("403 Forbidden when calling external service.",{clientId:Te.clientId,tunnelHost:He}),new $P("Could not connect to secure tunnel.");return je}else throw XN("Cannot call external service with Request object"),new $P("Currently, we only support fetch(<some_string>, ...).")}t(ait,"externalServiceHandler");async function oit(s,o){if(typeof s=="string"){let f=new URL(s),d=f.hostname,y=o??{},E=`http://${d}.zuplo.svc.cluster.local:9000`,P=new URL(`${E}${f.pathname}${f.search}`),F=new Headers(y.headers||{});return F.set(sit,d),y.headers=F,await PV(P.toString(),y)}else throw new $P("Currently, we only support fetch(<some_string>, ...).")}t(oit,"clusterServiceHandler");async function nZt(s,o,f,d){let y=s.toLowerCase(),E=o.toLowerCase(),P=f.toLowerCase(),F=cit(d);XN(`Hashing service name: ${E}-${y}.${E}-${P}-${F}`);let J=await ZPe(`${E}-${y}`),V=await ZPe(`${E}-${P}-${F}`);return`${J}.${V}`}t(nZt,"hashServiceName");async function ZPe(s){let o=new TextEncoder().encode(s),f=await crypto.subtle.digest("SHA-256",o);return Array.from(new Uint8Array(f)).map(E=>E.toString(16).padStart(2,"0")).join("").slice(0,-1)}t(ZPe,"hashSegment");function cit(s){let o=s.toLowerCase();switch(o){case"production":case"preview":return o;default:return"working-copy"}}t(cit,"sanitizeEnvironmentType");var QPe=new Map;QPe.set("service:",ait);QPe.set("local:",oit);var PV=globalThis.fetch;function eAe(s,o){let{transformedInit:f,mtlsCertificate:d}=iZt(o);if(typeof s=="string"){let y=new URL(s),E=QPe.get(y.protocol);return E?E(s,f):lit(s,f,d)}else return lit(s,f,d)}t(eAe,"internalFetch");globalThis.fetch=eAe;function lit(s,o,f){if(!f)return PV(s,o);if(Cm.instance.isCloudflare){let y=Cm.instance.runtime[f];if(!y)throw new Error(`mTLS certificate binding '${f}' not found. Ensure the certificate is uploaded and properly configured.`);if(typeof y!="object"||typeof y.fetch!="function")throw new Error(`mTLS certificate binding '${f}' is not a valid mTLS certificate binding. Make sure it's configured as an mTLS certificate, not an environment variable.`);return y.fetch(s,o)}else if(Cm.instance.isDeno){let d=globalThis.managedDedicatedMtlsBindings?.[f];if(!d)throw new Error(`mTLS certificate binding '${f}' not found. Ensure the certificate is uploaded and properly configured.`);if(typeof d.fetch!="function")throw new Error(`mTLS certificate binding '${f}' is not a valid mTLS certificate binding.`);return d.fetch(s,o)}else throw new Error("mTLS client certificates are not supported in this runtime environment")}t(lit,"performFetch");var iZt=t(s=>{if(!s||s instanceof Request)return{transformedInit:s,mtlsCertificate:void 0};let o=s;if(!o.zuplo)return{transformedInit:s,mtlsCertificate:void 0};let f=o.zuplo.mtlsCertificate,d=s;return d.cf={cacheEverything:o.zuplo?.cacheEverything,cacheTtl:o.zuplo?.cacheTtlSeconds},delete s.zuplo,{transformedInit:s,mtlsCertificate:f}},"transformInit");var sZt={console:{log:console.log.bind(console),info:console.info.bind(console),warn:console.warn.bind(console),error:console.error.bind(console),debug:console.debug.bind(console),assert:console.assert.bind(console),clear:console.clear.bind(console),count:console.count.bind(console),countReset:console.countReset.bind(console),dir:console.dir.bind(console),dirxml:console.dirxml.bind(console),group:console.group.bind(console),groupCollapsed:console.groupCollapsed.bind(console),groupEnd:console.groupEnd.bind(console),table:console.table.bind(console),time:console.time.bind(console),timeEnd:console.timeEnd.bind(console),timeLog:console.timeLog.bind(console),timeStamp:console.timeStamp.bind(console),trace:console.trace.bind(console),profile:console.profile.bind(console),profileEnd:console.profileEnd.bind(console)},fetch:eAe},AV=sZt;var tAe="2025-02-06",uit=Object.freeze({none:{runOutboundPoliciesOnHandlerOnAllStatuses:!1,doNotRunHooksOnSystemRoutes:!1,removeAllVendorHeadersExceptListed:!1,allowCustomPorts:!1,removeLegacyLogInitialization:!1,useForwardRedirectsPropOnUrlForwardHandler:!1,chainResponseSendingHooks:!1,return501ForUnsupportedHttpMethods:!1},"2023-03-14":{runOutboundPoliciesOnHandlerOnAllStatuses:!1,doNotRunHooksOnSystemRoutes:!1,removeAllVendorHeadersExceptListed:!1,allowCustomPorts:!1,removeLegacyLogInitialization:!1,useForwardRedirectsPropOnUrlForwardHandler:!1,chainResponseSendingHooks:!1,return501ForUnsupportedHttpMethods:!1},"2024-01-15":{runOutboundPoliciesOnHandlerOnAllStatuses:!0,doNotRunHooksOnSystemRoutes:!0,removeAllVendorHeadersExceptListed:!0,allowCustomPorts:!1,removeLegacyLogInitialization:!1,useForwardRedirectsPropOnUrlForwardHandler:!1,chainResponseSendingHooks:!1,return501ForUnsupportedHttpMethods:!1},"2024-03-14":{runOutboundPoliciesOnHandlerOnAllStatuses:!0,doNotRunHooksOnSystemRoutes:!0,removeAllVendorHeadersExceptListed:!0,allowCustomPorts:!1,removeLegacyLogInitialization:!1,useForwardRedirectsPropOnUrlForwardHandler:!1,chainResponseSendingHooks:!1,return501ForUnsupportedHttpMethods:!1},"2024-09-02":{runOutboundPoliciesOnHandlerOnAllStatuses:!0,doNotRunHooksOnSystemRoutes:!0,removeAllVendorHeadersExceptListed:!0,allowCustomPorts:!0,removeLegacyLogInitialization:!1,useForwardRedirectsPropOnUrlForwardHandler:!1,chainResponseSendingHooks:!1,return501ForUnsupportedHttpMethods:!1},"2025-02-06":{runOutboundPoliciesOnHandlerOnAllStatuses:!0,doNotRunHooksOnSystemRoutes:!0,removeAllVendorHeadersExceptListed:!0,allowCustomPorts:!0,removeLegacyLogInitialization:!0,useForwardRedirectsPropOnUrlForwardHandler:!0,chainResponseSendingHooks:!1,return501ForUnsupportedHttpMethods:!1},"2026-03-01":{runOutboundPoliciesOnHandlerOnAllStatuses:!0,doNotRunHooksOnSystemRoutes:!0,removeAllVendorHeadersExceptListed:!0,allowCustomPorts:!0,removeLegacyLogInitialization:!0,useForwardRedirectsPropOnUrlForwardHandler:!0,chainResponseSendingHooks:!0,return501ForUnsupportedHttpMethods:!0}});function fit(){return new Cm({build:{ACCOUNT_NAME:"mock-account-name",PROJECT_NAME:"mock-project-name",API_VERSION:"0.0.0",BUILD_ID:crypto.randomUUID(),TIMESTAMP:new Date().toISOString(),BUILD_ENV:"test",ZUPLO_VERSION:"0.0.0",COMPATIBILITY_DATE:tAe,ENVIRONMENT_TYPE:"mock-environment-type",GIT_SHA:void 0,IS_LOCAL_DEVELOPMENT:!1,COMPATIBILITY_FLAGS:uit[tAe]},runtime:{RUNTIME_ENV:"test",RUNTIME_STAGE:"test",__ZUPLO_DEPLOYMENT_NAME:"mock-deployment-name",__ZUPLO_LOG_LEVEL:"debug",__ZUPLO_LOG_FORMAT:"pretty",__ZUPLO_MANAGEMENT_API_URL:"",__ZUPLO_RUNTIME_TYPE:"cloudflare",__ZUPLO_AUTH_API_JWT:"",ZUPLO_SERVICE_BUCKET_ID:"bckt_mock"}})}t(fit,"getMockEnvironment");var Cm=class s{static{t(this,"Environment")}config;static#e;static#n=!1;static initialize(o){s.#e||(s.#e=new s(o),s.#n=!0)}static get instance(){return s.#n||(AV.console.debug("Environment has not been initialized. This is okay when running tests, a mock environment will be used."),s.#e??=fit()),s.#e}constructor({build:o,runtime:f}){let d;try{if(f.ZUPLO_SYSTEM_CONFIGURATIONS){let y=new TextDecoder().decode(Foe.decode(f.ZUPLO_SYSTEM_CONFIGURATIONS)),E=JSON.parse(y);for(let P of Object.keys(E))f[P]||(f[P]=E[P])}if(f.__ZUPLO_CONFIG){let y=atob(f.__ZUPLO_CONFIG);d=JSON.parse(y)}}catch(y){AV.console.error("Failed to parse runtime configuration",y)}this.config=d??{},this.build=o,this.runtime=f,this.instanceId=crypto.randomUUID()}build;runtime;instanceId;get deploymentName(){return this.runtime.__ZUPLO_DEPLOYMENT_NAME??this.config.deployment_name??void 0}get accountName(){return this.build.ACCOUNT_NAME??this.runtime.ZUPLO_ACCOUNT_NAME??void 0}get projectName(){return this.build.PROJECT_NAME??this.runtime.ZUPLO_PROJECT_NAME??void 0}get useLegacyServiceRouting(){return this.config.use_legacy_service_routing??void 0}get useProxyForFetchFromZups(){return this.config.use_proxy_for_fetch_from_zups??void 0}get devPortalBaseUrl(){return this.runtime.__ZUPLO_DEV_PORTAL_URL??this.config.dev_portal_url??"https://dev-portal-v4-1.zuplo.com"}get buildAssetsUrl(){return this.runtime.__ZUPLO_BUILD_ASSETS_URL??this.config.build_assets_url??"https://build-assets.zuplo.com"}get zuploEdgeApiUrl(){return this.config.zuplo_edge_api_url??"https://api.zuploedge.com"}get remoteLogToken(){return this.runtime.__ZUPLO_REMOTE_LOG_TOKEN??this.config.remote_log_token??void 0}get zuploClientAuthBucketId(){return this.config.zuplo_auth_client_bucket_id??"auth_o8PUdhKxSTOiB794GWPwLQCD"}get managementApiURL(){return this.runtime.__ZUPLO_MANAGEMENT_API_URL??this.config.management_api_url??"https://api.zuplo.com"}get developerApiUrl(){return this.config.developer_api_url??"https://dev.zuplo.com"}get cdnURL(){return this.runtime.__ZUPLO_CDN_URL??this.config.cdn_url??"https://cdn.zuplo.com"}get remoteLogURL(){return this.runtime.__ZUPLO_REMOTE_LOG_URL??this.config.log_event_api??"https://ellie.zuploedge.com"}get loggingId(){return this.runtime.__ZUPLO_LOGGING_ID??this.config.logging_id??void 0}get redisURL(){return this.runtime.__ZUPLO_REDIS_URL??this.config.redis_proxy_url??"https://redis-proxy.zuploedge.com"}get apiKeyServiceUrl(){return this.runtime.__ZUPLO_API_KEY_SERVICE_URL??this.config.api_key_service_url??"https://apikey.zuploedge.com"}get meteringServiceUrl(){return this.config.metering_service_url??"https://meters.zuploedge.com"}get authApiJWT(){return this.runtime.__ZUPLO_AUTH_API_JWT??void 0}get authClientId(){return this.config.auth_client_id??this.runtime.__ZUPLO_AUTH_CLIENT_ID}get authClientSecret(){return this.config.auth_client_secret??this.runtime.__ZUPLO_AUTH_CLIENT_SECRET}get authPublicKey(){return this.config.auth_public_key??this.runtime.__ZUPLO_AUTH_PUBLIC_KEY}get authPrivateKey(){return this.config.auth_private_key??this.runtime.__ZUPLO_AUTH_PRIVATE_KEY}get userLogLevel(){return this.runtime.ZUPLO_LOG_LEVEL??this.runtime.__ZUPLO_LOG_LEVEL??this.config.user_log_level??"debug"}get systemLogLevel(){return this.runtime.__ZUPLO_LOG_LEVEL??this.config.system_log_level??"debug"}get logFormat(){return this.runtime.__ZUPLO_LOG_FORMAT??this.config.log_format??"cloudflare"}get isCloudflare(){return this.runtime.__ZUPLO_RUNTIME_TYPE?this.runtime.__ZUPLO_RUNTIME_TYPE==="cloudflare":this.config.runtime_type?this.config.runtime_type==="cloudflare":typeof WebSocketPair=="function"}get isManagedDedicated(){return this.runtime.__ZUPLO_IS_MANAGED_DEDICATED==="true"}get isDeno(){if(this.runtime.__ZUPLO_RUNTIME_TYPE)return this.runtime.__ZUPLO_RUNTIME_TYPE==="deno";if(this.config.runtime_type)return this.config.runtime_type==="deno";{let o=globalThis.Deno?.version?.deno;return typeof WebSocketPair!="function"&&o}}get isLocalDevelopment(){return this.build.IS_LOCAL_DEVELOPMENT}get isTestMode(){return!!this.runtime.__ZUPLO_TEST_MODE}get systemUserAgent(){return`Zuplo/${this.build.ZUPLO_VERSION}`}get loggingEnvironmentType(){return this.isCloudflare?"edge":this.isLocalDevelopment?"local":this.isDeno?"working-copy":"unknown"}get loggingEnvironmentStage(){return this.build.ENVIRONMENT_TYPE==="PRODUCTION"?"production":this.build.ENVIRONMENT_TYPE==="PREVIEW"?"preview":this.isLocalDevelopment?"local":this.isWorkingCopy?"working-copy":"unknown"}get isWorkingCopy(){return this.build.ENVIRONMENT_TYPE==="WORKING_COPY"}get rateLimitServiceTimeoutMs(){let o=this.runtime.__ZUPLO_RATE_LIMIT_TIMEOUT_MS,f=this.config.rate_limit_service_timeout_ms,d=o??f;if(!d)return 500;let y=Number(d);return Number.isFinite(y)&&y>0?y:500}};var aZt=["ZUPLO_USER_LOGGER_DATA_DOG_API_KEY","ZUPLO_USER_LOGGER_DATA_DOG_URL","ZUPLO_LOG_LEVEL","ZUPLO_HANDLER_WRITE_LOG_LEVEL"];function _it(s){return s.startsWith("__ZUPLO")||s.startsWith("ZUPLO_")?!aZt.includes(s)&&!s.startsWith("ZUPLO_PUBLIC_"):s.startsWith("ZUDOKU_")?!s.startsWith("ZUDOKU_PUBLIC_"):!1}t(_it,"isRestrictedEnvVariableName");function pit(s){return!!s.startsWith("ZUPLO_")}t(pit,"isZuploReadableEnvVariableName");var Lkr=new Proxy({},{get(s,o){let f=String(o);switch(f){case"ZUPLO_ENVIRONMENT_TYPE":return Cm.instance.loggingEnvironmentType;case"ZUPLO_ENVIRONMENT_STAGE":return Cm.instance.loggingEnvironmentStage;case"ZUPLO_ENVIRONMENT_NAME":return Cm.instance.runtime.__ZUPLO_DEPLOYMENT_NAME;case"ZUPLO_ACCOUNT_NAME":return Cm.instance.accountName;case"ZUPLO_PROJECT_NAME":return Cm.instance.projectName;case"ZUPLO_BUILD_ID":return Cm.instance.build.BUILD_ID;case"ZUPLO_COMPATIBILITY_DATE":return Cm.instance.build.COMPATIBILITY_DATE}if(!(_it(f)&&!pit(f)))return Cm.instance.runtime[f]}});function NV(s,o,f){return`_${JP(`${s}_${o}_${f}`)}`}t(NV,"getRawOperationDataIdentifierName");function rAe(s,o,f,d){return`_${JP(s.toLowerCase())}_${o.toLowerCase()}_${f.toLowerCase()}_${d.toLowerCase()}`}t(rAe,"getIdForParameterSchema");function nAe(s,o,f){return`_${JP(s.toLowerCase())}_${o.toLowerCase()}_rb_${JP(f.toLowerCase())}`}t(nAe,"getIdForRequestBodySchema");function IV(s,o){return`_${JP(s)}_${JP(o)}`}t(IV,"getIdForRefSchema");function JP(s){let o=s.replace(/\[/g,"_LBRACKET_").replace(/\]/g,"_RBRACKET_").replace(/\{/g,"_LCURLY_").replace(/\}/g,"_RCURLY_").replace(/\//g,"_SLASH_").replace(/-/g,"_DASH_").replace(/\./g,"_DOT_").replace(/\+/g,"_PLUS_").replace(/:/g,"_COLON_").replace(/@/g,"_AT_").replace(/\$/g,"_DOLLAR_").replace(/[^a-zA-Z0-9_]/g,"_");return/^[a-zA-Z_]/.test(o)||(o=`_${o}`),o}t(JP,"sanitizedIdentifierName");var sAe={};ztt(sAe,{UnsafePathError:()=>Moe,deleteFolder:()=>bZt,dirExists:()=>iAe,fileExists:()=>uZt,getParentDirFilename:()=>gZt,isNotFileOrDirectory:()=>_Zt,listFolderContents:()=>hit,listFolders:()=>dZt,mkDirTemp:()=>fZt,mkdirForFilePathIfNotExits:()=>mZt,mkdirIfNotExists:()=>git,safePath:()=>hZt,tarFolder:()=>yZt,untarFile:()=>vZt});import{spawn as dit}from"node:child_process";import{randomUUID as oZt}from"node:crypto";import ZN from"node:fs/promises";import{platform as cZt,tmpdir as lZt}from"node:os";import O1 from"node:path";var mit=[".git","node_modules",".yarn",".DS_Store"];async function uZt(s){try{return(await ZN.stat(s)).isFile()}catch{return!1}}t(uZt,"fileExists");async function fZt(){let s=process.env.BUILD_FILE_PATH??lZt(),o=oZt().replaceAll("-",""),f=O1.join(s,o);return await ZN.mkdir(f,{recursive:!0}),f}t(fZt,"mkDirTemp");async function iAe(s){try{return(await ZN.stat(s)).isDirectory()}catch{return!1}}t(iAe,"dirExists");async function _Zt(s){try{return await ZN.stat(s),!1}catch{return!0}}t(_Zt,"isNotFileOrDirectory");function pZt(s,o){let f=O1.sep==="\\"?"\\\\":O1.sep,d=new RegExp(`(.*)(${f}${o})$|(.*)(${o}${f})`),y=s.match(d);if(!y)return"";let E=s.split(y[0]);return E[1]===""?"":O1.join(O1.sep,E[1])}t(pZt,"getParentDirectory");async function dZt(s){if(!await iAe(s))return[];let o=await ZN.readdir(s,{withFileTypes:!0}),f=[];for await(let d of o)mit.includes(d.name)||d.isDirectory()&&f.push(d.name);return f}t(dZt,"listFolders");async function hit(s,o,f=!0){let d=pZt(s,o),y=await ZN.readdir(s,{withFileTypes:!0}),E=[];for await(let P of y)if(!mit.includes(P.name)||!f)if(P.isDirectory()){let F=await hit(O1.join(s,P.name),o,f);E.push(...F)}else E.push(O1.join(d,P.name));return E}t(hit,"listFolderContents");var git=t(async s=>{await ZN.mkdir(s,{recursive:!0})},"mkdirIfNotExists"),mZt=t(async s=>{let o=O1.dirname(s);return git(o)},"mkdirForFilePathIfNotExits"),Moe=class extends Error{static{t(this,"UnsafePathError")}};function hZt(s){let o=O1.normalize(s),f=t(d=>{let y=O1.normalize(d),E=process.platform==="win32",P=!1;if(E?P=y.toLowerCase().startsWith(o.toLowerCase()):P=y.startsWith(o),!P)throw new Moe("Resolved path is not part of the project.");return y},"ensureSafePath");return{resolve:t((...d)=>f(O1.resolve(...d)),"resolve")}}t(hZt,"safePath");function gZt(s){return O1.join(O1.basename(O1.dirname(s)),O1.basename(s))}t(gZt,"getParentDirFilename");async function yZt({folderPath:s,outputTarPath:o,exclude:f=["node_modules",".git","dist"],logger:d}){let y=[],E=[],P;try{await new Promise((F,J)=>{let V=dit("tar",[...f.flatMap(Te=>["--exclude",Te]),...cZt()!=="darwin"?["--warning=no-file-changed"]:[],"-cvf",o,"-C",s,"."]);V.stdout.on("data",Te=>{let de=Te.toString().trim();de.length>0&&y.push(de.trim())}),V.stderr.on("data",Te=>{let de=Te.toString().trim();de.length>0&&E.push(de.trim())}),V.on("close",Te=>{P=Te,Te===0?F():J(new Error(`tar process exited with code ${Te}`))}),V.on("error",Te=>{J(Te)})})}catch(F){throw new Error("Failed to tar folder",{cause:F})}finally{d.info({stdout:y.join(`
572
572
  `),stderr:E.join(`
573
573
  `),exitCode:P},"Tar process logs")}}t(yZt,"tarFolder");async function vZt({tarFilePath:s,outputDir:o,logger:f}){let d=[],y=[],E;try{await new Promise((P,F)=>{let J=dit("sh",["-c",`tar -xvf ${s} -C ${o};`]);J.stdout.on("data",V=>{let Te=V.toString().trim();Te.length>0&&d.push(Te.trim())}),J.stderr.on("data",V=>{let Te=V.toString().trim();Te.length>0&&y.push(Te.trim())}),J.on("close",V=>{E=V,V===0?P():F(new Error(`tar process exited with code ${V}`))}),J.on("error",V=>{F(V)})})}catch(P){throw new Error("Failed to untar file",{cause:P})}finally{f.info({stdout:d.join(`
574
574
  `),stderr:y.join(`
575
- `),exitCode:E},"Untar process logs")}}t(vZt,"untarFile");async function bZt(s){if(await iAe(s))return await ZN.rm(s,{recursive:!0})}t(bZt,"deleteFolder");var eu=sAe;var blt=tp(jst(),1);var Bst=["ai-gateway-semantic-cache-inbound","ai-gateway-semantic-cache-outbound","akamai-ai-firewall","akamai-firewall-for-ai-inbound","akamai-firewall-for-ai-outbound","prompt-injection-outbound","semantic-cache-inbound"];var qV=class{static{t(this,"R")}type=3;name="";prefix="";value="";suffix="";modifier=3;constructor(s,o,f,d,y,E){this.type=s,this.name=o,this.prefix=f,this.value=d,this.suffix=y,this.modifier=E}hasCustomName(){return this.name!==""&&typeof this.name!="number"}},Her=/[$_\p{ID_Start}]/u,Ger=/[$_\u200C\u200D\p{ID_Continue}]/u,BAe=".*";function Yer(s,o){return(o?/^[\x00-\xFF]*$/:/^[\x00-\x7F]*$/).test(s)}t(Yer,"Re");function $st(s,o=!1){let f=[],d=0;for(;d<s.length;){let y=s[d],E=t(function(P){if(!o)throw new TypeError(P);f.push({type:"INVALID_CHAR",index:d,value:s[d++]})},"c");if(y==="*"){f.push({type:"ASTERISK",index:d,value:s[d++]});continue}if(y==="+"||y==="?"){f.push({type:"OTHER_MODIFIER",index:d,value:s[d++]});continue}if(y==="\\"){f.push({type:"ESCAPED_CHAR",index:d++,value:s[d++]});continue}if(y==="{"){f.push({type:"OPEN",index:d,value:s[d++]});continue}if(y==="}"){f.push({type:"CLOSE",index:d,value:s[d++]});continue}if(y===":"){let P="",F=d+1;for(;F<s.length;){let J=s.substr(F,1);if(F===d+1&&Her.test(J)||F!==d+1&&Ger.test(J)){P+=s[F++];continue}break}if(!P){E(`Missing parameter name at ${d}`);continue}f.push({type:"NAME",index:d,value:P}),d=F;continue}if(y==="("){let P=1,F="",J=d+1,V=!1;if(s[J]==="?"){E(`Pattern cannot start with "?" at ${J}`);continue}for(;J<s.length;){if(!Yer(s[J],!1)){E(`Invalid character '${s[J]}' at ${J}.`),V=!0;break}if(s[J]==="\\"){F+=s[J++]+s[J++];continue}if(s[J]===")"){if(P--,P===0){J++;break}}else if(s[J]==="("&&(P++,s[J+1]!=="?")){E(`Capturing groups are not allowed at ${J}`),V=!0;break}F+=s[J++]}if(V)continue;if(P){E(`Unbalanced pattern at ${d}`);continue}if(!F){E(`Missing pattern at ${d}`);continue}f.push({type:"REGEX",index:d,value:F}),d=J;continue}f.push({type:"CHAR",index:d,value:s[d++]})}return f.push({type:"END",index:d,value:""}),f}t($st,"v");function Jst(s,o={}){let f=$st(s);o.delimiter??="/#?",o.prefixes??="./";let d=`[^${_T(o.delimiter)}]+?`,y=[],E=0,P=0,F="",J=new Set,V=t(wn=>{if(P<f.length&&f[P].type===wn)return f[P++].value},"a"),Te=t(()=>V("OTHER_MODIFIER")??V("ASTERISK"),"f"),de=t(wn=>{let sn=V(wn);if(sn!==void 0)return sn;let{type:Jn,index:wr}=f[P];throw new TypeError(`Unexpected ${Jn} at ${wr}, expected ${wn}`)},"d"),ae=t(()=>{let wn="",sn;for(;sn=V("CHAR")??V("ESCAPED_CHAR");)wn+=sn;return wn},"T"),He=t(wn=>wn,"Se"),Ue=o.encodePart||He,je="",Yt=t(wn=>{je+=wn},"U"),zt=t(()=>{je.length&&(y.push(new qV(3,"","",Ue(je),"",3)),je="")},"$"),Sr=t((wn,sn,Jn,wr,yr)=>{let xs=3;switch(yr){case"?":xs=1;break;case"*":xs=0;break;case"+":xs=2;break}if(!sn&&!Jn&&xs===3){Yt(wn);return}if(zt(),!sn&&!Jn){if(!wn)return;y.push(new qV(3,"","",Ue(wn),"",xs));return}let bi;Jn?Jn==="*"?bi=BAe:bi=Jn:bi=d;let fc=2;bi===d?(fc=1,bi=""):bi===BAe&&(fc=0,bi="");let Ci;if(sn?Ci=sn:Jn&&(Ci=E++),J.has(Ci))throw new TypeError(`Duplicate name '${Ci}'.`);J.add(Ci),y.push(new qV(fc,Ci,Ue(wn),bi,Ue(wr),xs))},"V");for(;P<f.length;){let wn=V("CHAR"),sn=V("NAME"),Jn=V("REGEX");if(!sn&&!Jn&&(Jn=V("ASTERISK")),sn||Jn){let yr=wn??"";o.prefixes.indexOf(yr)===-1&&(Yt(yr),yr=""),zt();let xs=Te();Sr(yr,sn,Jn,"",xs);continue}let wr=wn??V("ESCAPED_CHAR");if(wr){Yt(wr);continue}if(V("OPEN")){let yr=ae(),xs=V("NAME"),bi=V("REGEX");!xs&&!bi&&(bi=V("ASTERISK"));let fc=ae();de("CLOSE");let Ci=Te();Sr(yr,xs,bi,fc,Ci);continue}zt(),de("END")}return y}t(Jst,"D");function _T(s){return s.replace(/([.+*?^${}()[\]|/\\])/g,"\\$1")}t(_T,"S");function Ust(s){return s&&s.ignoreCase?"ui":"u"}t(Ust,"X");function Ker(s,o,f){return Wst(Jst(s,f),o,f)}t(Ker,"Z");function X9(s){switch(s){case 0:return"*";case 1:return"?";case 2:return"+";case 3:return""}}t(X9,"k");function Wst(s,o,f={}){f.delimiter??="/#?",f.prefixes??="./",f.sensitive??=!1,f.strict??=!1,f.end??=!0,f.start??=!0,f.endsWith="";let d=f.start?"^":"";for(let F of s){if(F.type===3){F.modifier===3?d+=_T(F.value):d+=`(?:${_T(F.value)})${X9(F.modifier)}`;continue}o&&o.push(F.name);let J=`[^${_T(f.delimiter)}]+?`,V=F.value;if(F.type===1?V=J:F.type===0&&(V=BAe),!F.prefix.length&&!F.suffix.length){F.modifier===3||F.modifier===1?d+=`(${V})${X9(F.modifier)}`:d+=`((?:${V})${X9(F.modifier)})`;continue}if(F.modifier===3||F.modifier===1){d+=`(?:${_T(F.prefix)}(${V})${_T(F.suffix)})`,d+=X9(F.modifier);continue}d+=`(?:${_T(F.prefix)}`,d+=`((?:${V})(?:`,d+=_T(F.suffix),d+=_T(F.prefix),d+=`(?:${V}))*)${_T(F.suffix)})`,F.modifier===0&&(d+="?")}let y=`[${_T(f.endsWith)}]|$`,E=`[${_T(f.delimiter)}]`;if(f.end)return f.strict||(d+=`${E}?`),f.endsWith.length?d+=`(?=${y})`:d+="$",new RegExp(d,Ust(f));f.strict||(d+=`(?:${E}(?=${y}))?`);let P=!1;if(s.length){let F=s[s.length-1];F.type===3&&F.modifier===3&&(P=f.delimiter.indexOf(F)>-1)}return P||(d+=`(?=${E}|${y})`),new RegExp(d,Ust(f))}t(Wst,"F");var rI={delimiter:"",prefixes:"",sensitive:!0,strict:!0},Xer={delimiter:".",prefixes:"",sensitive:!0,strict:!0},Zer={delimiter:"/",prefixes:"/",sensitive:!0,strict:!0};function Qer(s,o){return s.length?s[0]==="/"?!0:!o||s.length<2?!1:(s[0]=="\\"||s[0]=="{")&&s[1]=="/":!1}t(Qer,"J");function qst(s,o){return s.startsWith(o)?s.substring(o.length,s.length):s}t(qst,"Q");function etr(s,o){return s.endsWith(o)?s.substr(0,s.length-o.length):s}t(etr,"Ee");function Vst(s){return!s||s.length<2?!1:s[0]==="["||(s[0]==="\\"||s[0]==="{")&&s[1]==="["}t(Vst,"W");var Hst=["ftp","file","http","https","ws","wss"];function Gst(s){if(!s)return!0;for(let o of Hst)if(s.test(o))return!0;return!1}t(Gst,"N");function ttr(s,o){if(s=qst(s,"#"),o||s==="")return s;let f=new URL("https://example.com");return f.hash=s,f.hash?f.hash.substring(1,f.hash.length):""}t(ttr,"te");function rtr(s,o){if(s=qst(s,"?"),o||s==="")return s;let f=new URL("https://example.com");return f.search=s,f.search?f.search.substring(1,f.search.length):""}t(rtr,"re");function ntr(s,o){return o||s===""?s:Vst(s)?Xst(s):Kst(s)}t(ntr,"ne");function itr(s,o){if(o||s==="")return s;let f=new URL("https://example.com");return f.password=s,f.password}t(itr,"se");function str(s,o){if(o||s==="")return s;let f=new URL("https://example.com");return f.username=s,f.username}t(str,"ie");function atr(s,o,f){if(f||s==="")return s;if(o&&!Hst.includes(o))return new URL(`${o}:${s}`).pathname;let d=s[0]=="/";return s=new URL(d?s:"/-"+s,"https://example.com").pathname,d||(s=s.substring(2,s.length)),s}t(atr,"ae");function otr(s,o,f){return Yst(o)===s&&(s=""),f||s===""?s:Zst(s)}t(otr,"oe");function ctr(s,o){return s=etr(s,":"),o||s===""?s:UAe(s)}t(ctr,"ce");function Yst(s){switch(s){case"ws":case"http":return"80";case"wws":case"https":return"443";case"ftp":return"21";default:return""}}t(Yst,"_");function UAe(s){if(s==="")return s;if(/^[-+.A-Za-z0-9]*$/.test(s))return s.toLowerCase();throw new TypeError(`Invalid protocol '${s}'.`)}t(UAe,"y");function ltr(s){if(s==="")return s;let o=new URL("https://example.com");return o.username=s,o.username}t(ltr,"le");function utr(s){if(s==="")return s;let o=new URL("https://example.com");return o.password=s,o.password}t(utr,"fe");function Kst(s){if(s==="")return s;if(/[\t\n\r #%/:<>?@[\]^\\|]/g.test(s))throw new TypeError(`Invalid hostname '${s}'`);let o=new URL("https://example.com");return o.hostname=s,o.hostname}t(Kst,"z");function Xst(s){if(s==="")return s;if(/[^0-9a-fA-F[\]:]/g.test(s))throw new TypeError(`Invalid IPv6 hostname '${s}'`);return s.toLowerCase()}t(Xst,"j");function Zst(s){if(s===""||/^[0-9]*$/.test(s)&&parseInt(s)<=65535)return s;throw new TypeError(`Invalid port '${s}'.`)}t(Zst,"K");function ftr(s){if(s==="")return s;let o=new URL("https://example.com");return o.pathname=s[0]!=="/"?"/-"+s:s,s[0]!=="/"?o.pathname.substring(2,o.pathname.length):o.pathname}t(ftr,"he");function _tr(s){return s===""?s:new URL(`data:${s}`).pathname}t(_tr,"ue");function ptr(s){if(s==="")return s;let o=new URL("https://example.com");return o.search=s,o.search.substring(1,o.search.length)}t(ptr,"de");function dtr(s){if(s==="")return s;let o=new URL("https://example.com");return o.hash=s,o.hash.substring(1,o.hash.length)}t(dtr,"pe");var mtr=class{static{t(this,"H")}#e;#n=[];#t={};#r=0;#s=1;#m=0;#c=0;#u=0;#f=0;#p=!1;constructor(s){this.#e=s}get result(){return this.#t}parse(){for(this.#n=$st(this.#e,!0);this.#r<this.#n.length;this.#r+=this.#s){if(this.#s=1,this.#n[this.#r].type==="END"){if(this.#c===0){this.#o(),this.#g()?this.#a(9,1):this.#E()?this.#a(8,1):this.#a(7,0);continue}else if(this.#c===2){this.#h(5);continue}this.#a(10,0);break}if(this.#u>0)if(this.#l())this.#u-=1;else continue;if(this.#A()){this.#u+=1;continue}switch(this.#c){case 0:this.#y()&&this.#h(1);break;case 1:if(this.#y()){this.#D();let s=7,o=1;this.#b()?(s=2,o=3):this.#p&&(s=2),this.#a(s,o)}break;case 2:this.#v()?this.#h(3):(this.#S()||this.#E()||this.#g())&&this.#h(5);break;case 3:this.#C()?this.#a(4,1):this.#v()&&this.#a(5,1);break;case 4:this.#v()&&this.#a(5,1);break;case 5:this.#O()?this.#f+=1:this.#N()&&(this.#f-=1),this.#k()&&!this.#f?this.#a(6,1):this.#S()?this.#a(7,0):this.#E()?this.#a(8,1):this.#g()&&this.#a(9,1);break;case 6:this.#S()?this.#a(7,0):this.#E()?this.#a(8,1):this.#g()&&this.#a(9,1);break;case 7:this.#E()?this.#a(8,1):this.#g()&&this.#a(9,1);break;case 8:this.#g()&&this.#a(9,1);break;case 9:break;case 10:break}}this.#t.hostname!==void 0&&this.#t.port===void 0&&(this.#t.port="")}#a(s,o){switch(this.#c){case 0:break;case 1:this.#t.protocol=this.#w();break;case 2:break;case 3:this.#t.username=this.#w();break;case 4:this.#t.password=this.#w();break;case 5:this.#t.hostname=this.#w();break;case 6:this.#t.port=this.#w();break;case 7:this.#t.pathname=this.#w();break;case 8:this.#t.search=this.#w();break;case 9:this.#t.hash=this.#w();break;case 10:break}this.#c!==0&&s!==10&&([1,2,3,4].includes(this.#c)&&[6,7,8,9].includes(s)&&(this.#t.hostname??=""),[1,2,3,4,5,6].includes(this.#c)&&[8,9].includes(s)&&(this.#t.pathname??=this.#p?"/":""),[1,2,3,4,5,6,7].includes(this.#c)&&s===9&&(this.#t.search??="")),this.#i(s,o)}#i(s,o){this.#c=s,this.#m=this.#r+o,this.#r+=o,this.#s=0}#o(){this.#r=this.#m,this.#s=0}#h(s){this.#o(),this.#c=s}#d(s){return s<0&&(s=this.#n.length-s),s<this.#n.length?this.#n[s]:this.#n[this.#n.length-1]}#_(s,o){let f=this.#d(s);return f.value===o&&(f.type==="CHAR"||f.type==="ESCAPED_CHAR"||f.type==="INVALID_CHAR")}#y(){return this.#_(this.#r,":")}#b(){return this.#_(this.#r+1,"/")&&this.#_(this.#r+2,"/")}#v(){return this.#_(this.#r,"@")}#C(){return this.#_(this.#r,":")}#k(){return this.#_(this.#r,":")}#S(){return this.#_(this.#r,"/")}#E(){if(this.#_(this.#r,"?"))return!0;if(this.#n[this.#r].value!=="?")return!1;let s=this.#d(this.#r-1);return s.type!=="NAME"&&s.type!=="REGEX"&&s.type!=="CLOSE"&&s.type!=="ASTERISK"}#g(){return this.#_(this.#r,"#")}#A(){return this.#n[this.#r].type=="OPEN"}#l(){return this.#n[this.#r].type=="CLOSE"}#O(){return this.#_(this.#r,"[")}#N(){return this.#_(this.#r,"]")}#w(){let s=this.#n[this.#r],o=this.#d(this.#m).index;return this.#e.substring(o,s.index)}#D(){let s={};Object.assign(s,rI),s.encodePart=UAe;let o=Ker(this.#w(),void 0,s);this.#p=Gst(o)}},jAe=["protocol","username","password","hostname","port","pathname","search","hash"],tI="*";function zst(s,o){if(typeof s!="string")throw new TypeError("parameter 1 is not of type 'string'.");let f=new URL(s,o);return{protocol:f.protocol.substring(0,f.protocol.length-1),username:f.username,password:f.password,hostname:f.hostname,port:f.port,pathname:f.pathname,search:f.search!==""?f.search.substring(1,f.search.length):void 0,hash:f.hash!==""?f.hash.substring(1,f.hash.length):void 0}}t(zst,"ge");function HP(s,o){return o?WV(s):s}t(HP,"b");function JV(s,o,f){let d;if(typeof o.baseURL=="string")try{d=new URL(o.baseURL),o.protocol===void 0&&(s.protocol=HP(d.protocol.substring(0,d.protocol.length-1),f)),!f&&o.protocol===void 0&&o.hostname===void 0&&o.port===void 0&&o.username===void 0&&(s.username=HP(d.username,f)),!f&&o.protocol===void 0&&o.hostname===void 0&&o.port===void 0&&o.username===void 0&&o.password===void 0&&(s.password=HP(d.password,f)),o.protocol===void 0&&o.hostname===void 0&&(s.hostname=HP(d.hostname,f)),o.protocol===void 0&&o.hostname===void 0&&o.port===void 0&&(s.port=HP(d.port,f)),o.protocol===void 0&&o.hostname===void 0&&o.port===void 0&&o.pathname===void 0&&(s.pathname=HP(d.pathname,f)),o.protocol===void 0&&o.hostname===void 0&&o.port===void 0&&o.pathname===void 0&&o.search===void 0&&(s.search=HP(d.search.substring(1,d.search.length),f)),o.protocol===void 0&&o.hostname===void 0&&o.port===void 0&&o.pathname===void 0&&o.search===void 0&&o.hash===void 0&&(s.hash=HP(d.hash.substring(1,d.hash.length),f))}catch{throw new TypeError(`invalid baseURL '${o.baseURL}'.`)}if(typeof o.protocol=="string"&&(s.protocol=ctr(o.protocol,f)),typeof o.username=="string"&&(s.username=str(o.username,f)),typeof o.password=="string"&&(s.password=itr(o.password,f)),typeof o.hostname=="string"&&(s.hostname=ntr(o.hostname,f)),typeof o.port=="string"&&(s.port=otr(o.port,s.protocol,f)),typeof o.pathname=="string"){if(s.pathname=o.pathname,d&&!Qer(s.pathname,f)){let y=d.pathname.lastIndexOf("/");y>=0&&(s.pathname=HP(d.pathname.substring(0,y+1),f)+s.pathname)}s.pathname=atr(s.pathname,s.protocol,f)}return typeof o.search=="string"&&(s.search=rtr(o.search,f)),typeof o.hash=="string"&&(s.hash=ttr(o.hash,f)),s}t(JV,"w");function WV(s){return s.replace(/([+*?:{}()\\])/g,"\\$1")}t(WV,"C");function htr(s){return s.replace(/([.+*?^${}()[\]|/\\])/g,"\\$1")}t(htr,"Oe");function gtr(s,o){o.delimiter??="/#?",o.prefixes??="./",o.sensitive??=!1,o.strict??=!1,o.end??=!0,o.start??=!0,o.endsWith="";let f=".*",d=`[^${htr(o.delimiter)}]+?`,y=/[$_\u200C\u200D\p{ID_Continue}]/u,E="";for(let P=0;P<s.length;++P){let F=s[P];if(F.type===3){if(F.modifier===3){E+=WV(F.value);continue}E+=`{${WV(F.value)}}${X9(F.modifier)}`;continue}let J=F.hasCustomName(),V=!!F.suffix.length||!!F.prefix.length&&(F.prefix.length!==1||!o.prefixes.includes(F.prefix)),Te=P>0?s[P-1]:null,de=P<s.length-1?s[P+1]:null;if(!V&&J&&F.type===1&&F.modifier===3&&de&&!de.prefix.length&&!de.suffix.length)if(de.type===3){let ae=de.value.length>0?de.value[0]:"";V=y.test(ae)}else V=!de.hasCustomName();if(!V&&!F.prefix.length&&Te&&Te.type===3){let ae=Te.value[Te.value.length-1];V=o.prefixes.includes(ae)}V&&(E+="{"),E+=WV(F.prefix),J&&(E+=`:${F.name}`),F.type===2?E+=`(${F.value})`:F.type===1?J||(E+=`(${d})`):F.type===0&&(!J&&(!Te||Te.type===3||Te.modifier!==3||V||F.prefix!=="")?E+="*":E+=`(${f})`),F.type===1&&J&&F.suffix.length&&y.test(F.suffix[0])&&(E+="\\"),E+=WV(F.suffix),V&&(E+="}"),F.modifier!==3&&(E+=X9(F.modifier))}return E}t(gtr,"ke");var Qst=class{static{t(this,"me")}#e;#n={};#t={};#r={};#s={};#m=!1;constructor(s={},o,f){try{let d;if(typeof o=="string"?d=o:f=o,typeof s=="string"){let F=new mtr(s);if(F.parse(),s=F.result,d===void 0&&typeof s.protocol!="string")throw new TypeError("A base URL must be provided for a relative constructor string.");s.baseURL=d}else{if(!s||typeof s!="object")throw new TypeError("parameter 1 is not of type 'string' and cannot convert to dictionary.");if(d)throw new TypeError("parameter 1 is not of type 'string'.")}typeof f>"u"&&(f={ignoreCase:!1});let y={ignoreCase:f.ignoreCase===!0},E={pathname:tI,protocol:tI,username:tI,password:tI,hostname:tI,port:tI,search:tI,hash:tI};this.#e=JV(E,s,!0),Yst(this.#e.protocol)===this.#e.port&&(this.#e.port="");let P;for(P of jAe){if(!(P in this.#e))continue;let F={},J=this.#e[P];switch(this.#t[P]=[],P){case"protocol":Object.assign(F,rI),F.encodePart=UAe;break;case"username":Object.assign(F,rI),F.encodePart=ltr;break;case"password":Object.assign(F,rI),F.encodePart=utr;break;case"hostname":Object.assign(F,Xer),Vst(J)?F.encodePart=Xst:F.encodePart=Kst;break;case"port":Object.assign(F,rI),F.encodePart=Zst;break;case"pathname":Gst(this.#n.protocol)?(Object.assign(F,Zer,y),F.encodePart=ftr):(Object.assign(F,rI,y),F.encodePart=_tr);break;case"search":Object.assign(F,rI,y),F.encodePart=ptr;break;case"hash":Object.assign(F,rI,y),F.encodePart=dtr;break}try{this.#s[P]=Jst(J,F),this.#n[P]=Wst(this.#s[P],this.#t[P],F),this.#r[P]=gtr(this.#s[P],F),this.#m=this.#m||this.#s[P].some(V=>V.type===2)}catch{throw new TypeError(`invalid ${P} pattern '${this.#e[P]}'.`)}}}catch(d){throw new TypeError(`Failed to construct 'URLPattern': ${d.message}`)}}test(s={},o){let f={pathname:"",protocol:"",username:"",password:"",hostname:"",port:"",search:"",hash:""};if(typeof s!="string"&&o)throw new TypeError("parameter 1 is not of type 'string'.");if(typeof s>"u")return!1;try{typeof s=="object"?f=JV(f,s,!1):f=JV(f,zst(s,o),!1)}catch{return!1}let d;for(d of jAe)if(!this.#n[d].exec(f[d]))return!1;return!0}exec(s={},o){let f={pathname:"",protocol:"",username:"",password:"",hostname:"",port:"",search:"",hash:""};if(typeof s!="string"&&o)throw new TypeError("parameter 1 is not of type 'string'.");if(typeof s>"u")return;try{typeof s=="object"?f=JV(f,s,!1):f=JV(f,zst(s,o),!1)}catch{return null}let d={};o?d.inputs=[s,o]:d.inputs=[s];let y;for(y of jAe){let E=this.#n[y].exec(f[y]);if(!E)return null;let P={};for(let[F,J]of this.#t[y].entries())if(typeof J=="string"||typeof J=="number"){let V=E[F+1];P[J]=V}d[y]={input:f[y]??"",groups:P}}return d}static compareComponent(s,o,f){let d=t((F,J)=>{for(let V of["type","modifier","prefix","value","suffix"]){if(F[V]<J[V])return-1;if(F[V]!==J[V])return 1}return 0},"o"),y=new qV(3,"","","","",3),E=new qV(0,"","","","",3),P=t((F,J)=>{let V=0;for(;V<Math.min(F.length,J.length);++V){let Te=d(F[V],J[V]);if(Te)return Te}return F.length===J.length?0:d(F[V]??y,J[V]??y)},"s");return!o.#r[s]&&!f.#r[s]?0:o.#r[s]&&!f.#r[s]?P(o.#s[s],[E]):!o.#r[s]&&f.#r[s]?P([E],f.#s[s]):P(o.#s[s],f.#s[s])}get protocol(){return this.#r.protocol}get username(){return this.#r.username}get password(){return this.#r.password}get hostname(){return this.#r.hostname}get port(){return this.#r.port}get pathname(){return this.#r.pathname}get search(){return this.#r.search}get hash(){return this.#r.hash}get hasRegExpGroups(){return this.#m}};globalThis.URLPattern||(globalThis.URLPattern=Qst);import{AssertionError as ytr}from"node:assert";function GP(s,o){if(s===!1)throw new ytr({message:o})}t(GP,"assert");var Wo;(function(s){s.Object="Object",s.Property="Property",s.Array="Array",s.Literal="Literal",s.TemplateString="TemplateString",s.Identifier="Identifier",s.FunctionCall="FunctionCall",s.Raw="Raw"})(Wo||(Wo={}));function Z9(s){return s.type===Wo.Object}t(Z9,"isAstObject");function YP(s){return s.type===Wo.Property}t(YP,"isAstProperty");function zAe(s){return s.type===Wo.Array}t(zAe,"isAstArray");function TO(s){return s.type===Wo.Literal}t(TO,"isAstLiteral");function nI(s){if(s===void 0)throw new Error("Node is undefined");if(!Z9(s))throw new Error("Node is not object")}t(nI,"assertAstObject");import{findNodeAtLocation as vtr,getNodeValue as btr,printParseErrorCode as Str,visit as Ttr}from"jsonc-parser";var xtr={DEFAULT:{allowTrailingComma:!1}};function VV(s,o=[],f=xtr.DEFAULT){let d={type:"array",offset:-1,length:-1,line:-1,column:-1,children:[],parent:void 0};function y(J){d.type==="property"&&(d.length=J-d.offset,d=d.parent)}t(y,"ensurePropertyComplete");function E(J){return d.children?.push(J),J}t(E,"onValue"),Ttr(s,{onObjectBegin:t((J,V,Te)=>{d=E({type:"object",offset:J,length:-1,line:V+1,column:Te+1,parent:d,children:[]})},"onObjectBegin"),onObjectProperty:t((J,V,Te,de,ae)=>{d=E({type:"property",offset:V,length:-1,line:de+1,column:ae+1,parent:d,children:[]}),d.children?.push({type:"string",value:J,offset:V,length:Te,line:de,column:ae,parent:d})},"onObjectProperty"),onObjectEnd:t((J,V)=>{y(J+V),d.length=J+V-d.offset,d=d.parent,y(J+V)},"onObjectEnd"),onArrayBegin:t((J,V,Te,de)=>{d=E({type:"array",offset:J,length:-1,line:Te+1,column:de+1,parent:d,children:[]})},"onArrayBegin"),onArrayEnd:t((J,V)=>{d.length=J+V-d.offset,d=d.parent,y(J+V)},"onArrayEnd"),onLiteralValue:t((J,V,Te,de,ae)=>{E({type:Etr(J),offset:V,length:Te,line:de+1,column:ae+1,parent:d,value:J}),y(V+Te)},"onLiteralValue"),onSeparator:t((J,V)=>{d.type==="property"&&(J===":"?d.colonOffset=V:J===","&&y(V))},"onSeparator"),onError:t((J,V,Te,de,ae)=>{o.push({error:J,offset:V,length:Te,line:de+1,column:ae+1})},"onError")},f);let F=d.children?.[0];return F&&delete F.parent,F}t(VV,"parse");function Etr(s){switch(typeof s){case"boolean":return"boolean";case"number":return"number";case"string":return"string";case"object":{if(s){if(Array.isArray(s))return"array"}else return"null";return"object"}default:return"null"}}t(Etr,"getNodeType");function $Ae(s,o){return vtr(s,o)}t($Ae,"findNodeAtLocation");function HV(s){return btr(s)}t(HV,"getNodeValue");function eat(s){return Str(s)}t(eat,"printParseErrorCode");var GV=class{static{t(this,"AstAdapter")}parse(o){let d=VV(o,[]);if(d)return this.parseNode(d,void 0);throw new Error("Failed to parse JSON")}convert(o){return this.parseNode(o,void 0)}parseNode(o,f){switch(o.type){case"object":return this.createObject(o,f);case"array":return this.createArray(o,f);case"property":return this.createProperty(o,f);case"string":return this.createLiteral(o,f);case"number":return this.createLiteral(o,f);case"boolean":return this.createLiteral(o,f);case"null":return this.createLiteral(o,f)}}createLiteral(o,f){return{type:Wo.Literal,location:{line:o.line,column:o.column},parent:f,value:o.type==="null"?null:o.value}}createObject(o,f){let d={type:Wo.Object,children:[],parent:f,location:{line:o.line,column:o.column}};return o.children?.forEach(y=>{d.children.push(this.parseNode(y,d))}),d}createProperty(o,f){GP(o.children?.length===2,"Invalid property node");let d={type:Wo.Property,location:{line:o.line,column:o.column},parent:f,name:null,value:null};return d.name={value:o.children[0].value,location:{line:o.line,column:o.column},type:Wo.Identifier,parent:d},d.value=this.parseNode(o.children[1],d),d}createArray(o,f){let d={type:Wo.Array,location:{line:o.line,column:o.column},parent:f,children:[]};return o.children?.forEach(y=>d.children.push(this.parseNode(y,d))),d}};var DS={createLiteral:t((s,o)=>({type:Wo.Literal,parent:o,value:s}),"createLiteral"),createTemplateString:t((s,o)=>({type:Wo.TemplateString,parent:o,value:s}),"createTemplateString"),createIdentifier:t((s,o)=>({type:Wo.Identifier,value:s,parent:o}),"createIdentifier"),createProperty:t((s,o,f)=>{let d={type:Wo.Property,parent:f,name:null,value:o};return d.name={value:s,type:Wo.Identifier,parent:d},d.value.parent=d,d},"createProperty"),createArrayOfLiterals:t((s,o)=>{let f={type:Wo.Array,parent:o,children:[]};for(let d of s)f.children.push(DS.createLiteral(d,f));return f},"createArrayOfLiterals")};var Ctr=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/,YV=class{static{t(this,"SourceGenerator")}generate(o){let f=[];return this.generateSource(f,o),f.join("")}generateSource(o,f){switch(f.type){case Wo.Array:return this.generateArray(o,f);case Wo.Object:return this.generateObject(o,f);case Wo.Property:return this.generateProperty(o,f);case Wo.Literal:return this.generateLiteral(o,f);case Wo.FunctionCall:return this.generateFunctionCall(o,f);case Wo.Identifier:return this.generateIdentifier(o,f);case Wo.Raw:return this.generateRaw(o,f);case Wo.TemplateString:return this.generateTemplateString(o,f)}}generateArray(o,f){o.push("["),f.children.map(d=>{this.generateSource(o,d),o.push(",")}),o.push("]")}generateObject(o,f){o.push("{"),f.children.forEach(d=>{this.generateSource(o,d),o.push(",")}),o.push("}")}generateProperty(o,f){this.generateIdentifier(o,f.name),o.push(":"),this.generateSource(o,f.value)}generateFunctionCall(o,f){o.push(f.name.value),o.push("("),f.children.forEach((d,y,E)=>{this.generateSource(o,d),y<E.length&&o.push(",")}),o.push(")")}generateRaw(o,f){o.push(f.value)}generateTemplateString(o,f){o.push("`"),o.push(f.value.replaceAll("`","\\`")),o.push("`")}generateLiteral(o,f){if(f.value===null)return o.push("null");switch(typeof f.value){case"number":case"boolean":return o.push(`${f.value}`);case"string":{let d=f.value,y=JSON.stringify(d);return o.push(`${y}`)}}}generateIdentifier(o,f){let d=Ctr.test(f.value)?f.value:`'${f.value}'`;o.push(d)}};import ktr from"node:fs/promises";import{parse as wtr}from"@swc/core";var tat=t(async s=>{let o=new Set;try{let f=await ktr.readFile(s,"utf-8");(await wtr(f,{syntax:"typescript"})).body.forEach(y=>{y.type==="ExportDefaultDeclaration"||y.type==="ExportDefaultExpression"?o.add("default"):y.type==="ExportDeclaration"&&y.declaration.type==="FunctionDeclaration"?o.add(y.declaration.identifier.value):y.type==="ExportDeclaration"&&y.declaration.type==="VariableDeclaration"&&y.declaration.declarations[0].id.type==="Identifier"&&o.add(y.declaration.declarations[0].id.value)})}catch{return null}return o},"getJSFileExports");var rat={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"http://schemas.zuplo.com/fragments.schema.json",$defs:{corsPolicyConfiguration:{type:"object",required:["name","allowedOrigins"],additionalProperties:!1,properties:{name:{type:"string",pattern:"^[0-9a-z-]+$"},allowCredentials:{type:"boolean"},maxAge:{type:"number"},allowedOrigins:{oneOf:[{type:"array",items:{type:"string"}},{type:"string"}]},allowedMethods:{oneOf:[{type:"array",items:{$ref:"fragments.schema.json#/$defs/httpMethod"}},{type:"string"}]},allowedHeaders:{oneOf:[{type:"array",items:{type:"string"}},{type:"string"}]},exposeHeaders:{oneOf:[{type:"array",items:{type:"string"}},{type:"string"}]}}},handlerDefinition:{type:"object",properties:{module:{type:"string",pattern:"^\\$import\\([^ )]*?\\)$"},export:{type:"string"},options:{type:"object",additionalProperties:!0}},additionalProperties:!1,required:["module","export"]},httpMethod:{type:"string",enum:["GET","HEAD","POST","PUT","DELETE","CONNECT","OPTIONS","TRACE","PATCH"]}}};var JAe={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"http://schemas.zuplo.com/policies.schema.json",title:"Policies Config File",type:"object",additionalProperties:!1,properties:{policies:{type:"array",items:{$ref:"policy-configuration.schema.json"}},corsPolicies:{type:"array",items:{$ref:"fragments.schema.json#/$defs/corsPolicyConfiguration"}}}};var nat={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"http://schemas.zuplo.com/policy-configuration.schema.json",title:"Policy Configuration Fragment",type:"object",required:["name","policyType","handler"],additionalProperties:!1,properties:{name:{type:"string",pattern:"^[0-9a-z-]+$"},policyType:{type:"string"},handler:{$ref:"fragments.schema.json#/$defs/handlerDefinition"},options:{type:"object",additionalProperties:!0}}};var WAe={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"http://schemas.zuplo.com/route-configuration.schema.json",title:"Route Configuration Fragment",description:"",type:"object",required:["path","methods","handler"],additionalProperties:!1,$defs:{corsPolicy:{type:"string",pattern:"^[0-9a-z-]+$"}},properties:{operationId:{type:"string"},path:{type:"string",pattern:"^/[^\\s]*$"},methods:{type:"array",items:{$ref:"fragments.schema.json#/$defs/httpMethod"}},label:{type:"string",description:"An internal user-friendly identifier of the route."},enforceOpenApi:{type:"boolean",description:"If true, schema validation found in the OpenAPI spec will be enforced on requests/responses."},key:{type:"string",deprecated:!0},handler:{$ref:"fragments.schema.json#/$defs/handlerDefinition"},corsPolicy:{$ref:"#/$defs/corsPolicy"},custom:{},mcp:{type:"object",additionalProperties:!1,properties:{enabled:{type:"boolean"}}},policies:{type:"object",additionalProperties:!1,properties:{inbound:{type:"array",items:{type:"string",pattern:"^[0-9a-z-]+$"}},outbound:{type:"array",items:{type:"string",pattern:"^[0-9a-z-]+$"}}}},summary:{type:"string"},description:{type:"string"},excludeFromOpenApi:{type:"boolean"},tags:{type:"array",items:{type:"string"}}}};var qAe={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"http://schemas.zuplo.com/route-configuration-open-api.schema.json",title:"Open API Route Configuration Fragment",description:"These are the properties that can appear under the x-zuplo-route extension in a PathObject in Open API. It's a subset of what can appear in Zuplo's routes.json.",type:"object",required:["handler"],additionalProperties:!1,properties:{label:{type:"string",description:"An internal user-friendly identifier of the route."},key:{type:"string",deprecated:!0},handler:{$ref:"fragments.schema.json#/$defs/handlerDefinition"},corsPolicy:{type:"string",pattern:"^[0-9a-z-]+$"},custom:{},mcp:{oneOf:[{type:"object",additionalProperties:!1,properties:{type:{const:"tool"},name:{type:"string"},description:{type:"string"},enabled:{type:"boolean"},includeOutputSchema:{type:"boolean"},includeStructuredContent:{type:"boolean"},annotations:{type:"object",additionalProperties:!1,properties:{title:{type:"string"},readOnlyHint:{type:"boolean"},destructiveHint:{type:"boolean"},idempotentHint:{type:"boolean"},openWorldHint:{type:"boolean"}}},_meta:{type:"object",additionalProperties:!0}},required:["type"]},{type:"object",additionalProperties:!1,properties:{type:{const:"prompt"},name:{type:"string"},description:{type:"string"},enabled:{type:"boolean"}},required:["type"]},{type:"object",additionalProperties:!1,properties:{type:{const:"resource"},name:{type:"string"},description:{type:"string"},uri:{type:"string"},mimeType:{type:"string"},enabled:{type:"boolean"},_meta:{type:"object",additionalProperties:!0}},required:["type"]},{type:"object",additionalProperties:!1,properties:{type:{const:"graphql"},enabled:{type:"boolean"},introspectionTool:{type:"object",additionalProperties:!1,properties:{name:{type:"string"},description:{type:"string"}}},executeTool:{type:"object",additionalProperties:!1,properties:{name:{type:"string"},description:{type:"string"}}}},required:["type"]}]},policies:{type:"object",additionalProperties:!1,properties:{inbound:{type:"array",items:{type:"string",pattern:"^[0-9a-z-]+$"}},outbound:{type:"array",items:{type:"string",pattern:"^[0-9a-z-]+$"}}}},tags:{type:"array",items:{type:"string"}}}};var llt=tp(Kce(),1),ult=tp(clt(),1);var Qce=class s{static{t(this,"JsonValidator")}static#e=new s;static get instance(){return s.#e}ajv;constructor(){this.ajv=new llt.Ajv2020({allErrors:!0,allowUnionTypes:!0}),this.ajv.addKeyword("faker"),(0,ult.default)(this.ajv,{mode:"fast"})}addSchema(o,f){this.ajv.addSchema(o,f)}compile(o){let f=this.ajv.compile(o);return t(y=>({isValid:f(y),errors:this.toSimpleErrors(f.errors,y),warnings:[]}),"validator")}toSimpleErrors(o,f){let d=[];return o?.forEach(y=>{y.keyword==="enum"&&y.params.allowedValues&&Array.isArray(y.params.allowedValues)&&(y.message+=`; ${y.params.allowedValues.join(", ")}`),y.instancePath&&(y.instancePath=y.instancePath.replaceAll(/(\/)?(~1)(\/)?/gm,"/"));let E={details:{}},P=y.instancePath.split("/");if(P.length>2){let J=P[1],V=P[2]?parseInt(P[2],10):0,Te=P[3],de=Number.isNaN(V)?void 0:f[J][V][Te];E={details:{property:J,index:V,field:Te,fieldValue:de}}}if(y.keyword==="required"&&y.params.missingProperty&&y.instancePath&&(y.message=`A 'path' is missing required property '${y.params.missingProperty}'`),y.keyword==="additionalProperties"&&y.params.additionalProperty&&y.instancePath&&(y.message=`A 'path' should NOT include property '${y.params.additionalProperty}'`),y.keyword==="type"&&y.params.type&&y.instancePath){let J=y.instancePath.split("/"),V=J[J.length-1];y.message=`Value of property '${V}' must be '${y.params.type}'`}let F=Object.assign(y,E);d.push(F)}),d}};var pI=Qce.instance;pI.addSchema(WAe,"route-configuration.schema.json");pI.addSchema(nat,"policy-configuration.schema.json");pI.addSchema(JAe,"policies.schema.json");pI.addSchema(qAe,"open-api-route-configuration.schema.json");pI.addSchema(rat,"fragments.schema.json");var T6r=pI.compile(WAe),flt=pI.compile(qAe),aIe=pI.compile(JAe);var ele=class{static{t(this,"PoliciesConfigurationValidator")}results;validate(o){return this.results=aIe(o),this.results}};var tle=class{static{t(this,"OpenAPILocalizedValidator")}results;validate(o){return this.results=flt(o),this.results}};import Mcr from"node:path";var oIe=/\$import\((.*)\)/,wH=/\$env\((.*?)\)/g;var zk=class extends Error{static{t(this,"CodeGenError")}location;constructor(o,f,d,y){super(o),this.location={file:f,namespace:"",line:d?d.line:0,column:d?d.column:0,length:0,lineText:y??"",suggestion:""}}},Rcr=t(s=>{let o=[],f=s;for(;f.parent;)o.push(f),f=f.parent;return o.reverse()},"invertTree"),eA=t((s,o)=>{if(!s)return!1;let f=Rcr(s);return o.split("/").every((E,P)=>{let F=f[P];return F?E==="*"||YP(F)&&F.name.value===E?!0:E==="{}"?F.type===Wo.Object:E==="[]"?F.type===Wo.Array:!1:!1})},"testPosition");var rle=class{static{t(this,"AstTransformer")}errors=[];transform(o){return this.visitor(o),o}visitor(o){this.visit(o),Z9(o)?o.children.forEach(f=>{this.visitor(f)}):zAe(o)?o.children.forEach(f=>{this.visitor(f)}):YP(o)&&this.visitor(o.value)}},_lt=t(s=>{let o=new RegExp(wH).exec(s);if(o?.length===2&&o[0]===s)return{type:"raw",value:`environment["${o[1]}"]`};{let f=s.replaceAll(new RegExp(wH),(d,y)=>`\${environment["${y}"] ? environment["${y}"] : ""}`);if(f!==s)return{type:"template",value:f}}return null},"replaceEnvInString"),plt=t((s,o,f)=>d=>{if(TO(d)&&typeof d.value=="string"&&d.parent&&zAe(d.parent)){if(!s.some(P=>eA(d.parent,P))){wH.test(d.value)&&o.push(new zk("An $env() statement is not expected at this location.",f,d.location,d.value));return}let E=_lt(d.value);if(E){let P=d.parent,F=P.children.indexOf(d);if(F!==-1)if(E.type==="raw"){let J={type:Wo.Raw,parent:P,value:E.value};P.children[F]=J}else P.children[F]=DS.createTemplateString(E.value,d)}return}if(!YP(d)||!TO(d.value)||typeof d.value.value!="string")return;if(!s.some(E=>eA(d,E))){wH.test(d.value.value)&&o.push(new zk("An $env() statement is not expected at this location.",f,d.location,d.value.value));return}let y=_lt(d.value.value);if(y)if(y.type==="raw"){let E={type:Wo.Raw,parent:null,value:y.value};d.value=E}else d.value=DS.createTemplateString(y.value,d)},"getEnvStatementTransformer");var DH="config/routes.json",jcr=["handler/{}/options/*","handler/{}/options/*/[]","policies/[]/{}/handler/{}/options/*","policies/[]/{}/handler/{}/options/*/[]","corsPolicies/[]/{}/*","corsPolicies/[]/{}/*/[]"],Bcr=["handler/{}/module","handler/{}/options/{}/policies/{}/inbound/[]/{}/module","handler/{}/options/{}/policies/{}/outbound/[]/{}/module","policies/[]/{}/handler/{}/module","policies/[]/{}/handler/{}/options/{}/identifier/{}/module","policies/[]/{}/handler/{}/options/{}/validator"],dlt=["handler/{}/options/*","policies/[]/{}/handler/{}/options/*"],Ucr="handler/{}/options/{}/rewritePattern",zcr="handler/{}/options/{}/baseUrl",nle=class extends rle{static{t(this,"OpenAPIRoutesFragmentAstTransformer")}importCount=0;addedImports=new Map;getImportName(o){this.addedImports.has(o)||this.addedImports.set(o,`__import${this.importCount++}`);let f=this.addedImports.get(o);if(!f)throw new Error("Import name is undefined. This should not happen.");return f}getImports(){let o=[];return this.addedImports.forEach((f,d)=>{o.push({name:f,path:d})}),o}visit(o){this.rewriteHandlerFunction(o),this.rewriteForwardFunction(o),this.replaceImportStatements(o),this.replaceEnvStatements(o)}rewriteHandlerFunction(o){if(!(!YP(o)||!TO(o.value)||typeof o.value.value!="string")&&eA(o,Ucr)){if(!o.parent||!Z9(o.parent)){this.errors.push(new zk("Invalid node, expected object",DH,o.parent?o.parent.location:o.location,void 0));return}let f=o.value.value,d={type:Wo.Raw,parent:null,value:mlt(f)},y=DS.createProperty("__rewriteFunction",d,o);o.parent.children.push(y)}}rewriteForwardFunction(o){if(!(!YP(o)||!TO(o.value)||typeof o.value.value!="string")&&eA(o,zcr)){if(!o.parent||!Z9(o.parent)){this.errors.push(new zk("Invalid node, expected object",DH,o.parent?o.parent.location:o.location,void 0));return}let f=o.value.value,d={type:Wo.Raw,parent:null,value:mlt(f)},y=DS.createProperty("__rewriteFunction",d,o);o.parent.children.push(y)}}replaceImportStatements(o){if(!YP(o)||!TO(o.value))return;let f=o.value.value;if(typeof f!="string")return;if(!Bcr.some(F=>eA(o,F))&&!dlt.some(F=>eA(o,F))){if(oIe.test(f)){if(o.name.value==="$ref")return;this.errors.push(new zk("An $import() statement is not expected at this location.",DH,o.location,f))}return}let d=oIe.exec(f);if(dlt.some(F=>eA(o,F))&&!d)return;if(!d){this.errors.push(new zk("Invalid $import() statement",DH,o.location,f));return}let y=d[1];y=y.replace(/\\/g,"/"),y.startsWith(".")&&(y=Mcr.posix.join("..",y));let E=this.getImportName(y),P={type:Wo.Identifier,parent:o.parent,value:E};o.value=P}replaceEnvStatements=plt(jcr,this.errors,DH)};function mlt(s){return`(request, context) => {
575
+ `),exitCode:E},"Untar process logs")}}t(vZt,"untarFile");async function bZt(s){if(await iAe(s))return await ZN.rm(s,{recursive:!0})}t(bZt,"deleteFolder");var eu=sAe;var blt=tp(jst(),1);var Bst=["ai-gateway-semantic-cache-inbound","ai-gateway-semantic-cache-inbound-v2","ai-gateway-semantic-cache-outbound","akamai-ai-firewall","akamai-ai-firewall-inbound-v2","akamai-firewall-for-ai-inbound","akamai-firewall-for-ai-outbound","comet-opik-tracing-inbound-v2","galileo-tracing-inbound-v2","prompt-injection-outbound","semantic-cache-inbound"];var qV=class{static{t(this,"R")}type=3;name="";prefix="";value="";suffix="";modifier=3;constructor(s,o,f,d,y,E){this.type=s,this.name=o,this.prefix=f,this.value=d,this.suffix=y,this.modifier=E}hasCustomName(){return this.name!==""&&typeof this.name!="number"}},Her=/[$_\p{ID_Start}]/u,Ger=/[$_\u200C\u200D\p{ID_Continue}]/u,BAe=".*";function Yer(s,o){return(o?/^[\x00-\xFF]*$/:/^[\x00-\x7F]*$/).test(s)}t(Yer,"Re");function $st(s,o=!1){let f=[],d=0;for(;d<s.length;){let y=s[d],E=t(function(P){if(!o)throw new TypeError(P);f.push({type:"INVALID_CHAR",index:d,value:s[d++]})},"c");if(y==="*"){f.push({type:"ASTERISK",index:d,value:s[d++]});continue}if(y==="+"||y==="?"){f.push({type:"OTHER_MODIFIER",index:d,value:s[d++]});continue}if(y==="\\"){f.push({type:"ESCAPED_CHAR",index:d++,value:s[d++]});continue}if(y==="{"){f.push({type:"OPEN",index:d,value:s[d++]});continue}if(y==="}"){f.push({type:"CLOSE",index:d,value:s[d++]});continue}if(y===":"){let P="",F=d+1;for(;F<s.length;){let J=s.substr(F,1);if(F===d+1&&Her.test(J)||F!==d+1&&Ger.test(J)){P+=s[F++];continue}break}if(!P){E(`Missing parameter name at ${d}`);continue}f.push({type:"NAME",index:d,value:P}),d=F;continue}if(y==="("){let P=1,F="",J=d+1,V=!1;if(s[J]==="?"){E(`Pattern cannot start with "?" at ${J}`);continue}for(;J<s.length;){if(!Yer(s[J],!1)){E(`Invalid character '${s[J]}' at ${J}.`),V=!0;break}if(s[J]==="\\"){F+=s[J++]+s[J++];continue}if(s[J]===")"){if(P--,P===0){J++;break}}else if(s[J]==="("&&(P++,s[J+1]!=="?")){E(`Capturing groups are not allowed at ${J}`),V=!0;break}F+=s[J++]}if(V)continue;if(P){E(`Unbalanced pattern at ${d}`);continue}if(!F){E(`Missing pattern at ${d}`);continue}f.push({type:"REGEX",index:d,value:F}),d=J;continue}f.push({type:"CHAR",index:d,value:s[d++]})}return f.push({type:"END",index:d,value:""}),f}t($st,"v");function Jst(s,o={}){let f=$st(s);o.delimiter??="/#?",o.prefixes??="./";let d=`[^${_T(o.delimiter)}]+?`,y=[],E=0,P=0,F="",J=new Set,V=t(wn=>{if(P<f.length&&f[P].type===wn)return f[P++].value},"a"),Te=t(()=>V("OTHER_MODIFIER")??V("ASTERISK"),"f"),de=t(wn=>{let sn=V(wn);if(sn!==void 0)return sn;let{type:Jn,index:wr}=f[P];throw new TypeError(`Unexpected ${Jn} at ${wr}, expected ${wn}`)},"d"),ae=t(()=>{let wn="",sn;for(;sn=V("CHAR")??V("ESCAPED_CHAR");)wn+=sn;return wn},"T"),He=t(wn=>wn,"Se"),Ue=o.encodePart||He,je="",Yt=t(wn=>{je+=wn},"U"),zt=t(()=>{je.length&&(y.push(new qV(3,"","",Ue(je),"",3)),je="")},"$"),Sr=t((wn,sn,Jn,wr,yr)=>{let xs=3;switch(yr){case"?":xs=1;break;case"*":xs=0;break;case"+":xs=2;break}if(!sn&&!Jn&&xs===3){Yt(wn);return}if(zt(),!sn&&!Jn){if(!wn)return;y.push(new qV(3,"","",Ue(wn),"",xs));return}let bi;Jn?Jn==="*"?bi=BAe:bi=Jn:bi=d;let fc=2;bi===d?(fc=1,bi=""):bi===BAe&&(fc=0,bi="");let Ci;if(sn?Ci=sn:Jn&&(Ci=E++),J.has(Ci))throw new TypeError(`Duplicate name '${Ci}'.`);J.add(Ci),y.push(new qV(fc,Ci,Ue(wn),bi,Ue(wr),xs))},"V");for(;P<f.length;){let wn=V("CHAR"),sn=V("NAME"),Jn=V("REGEX");if(!sn&&!Jn&&(Jn=V("ASTERISK")),sn||Jn){let yr=wn??"";o.prefixes.indexOf(yr)===-1&&(Yt(yr),yr=""),zt();let xs=Te();Sr(yr,sn,Jn,"",xs);continue}let wr=wn??V("ESCAPED_CHAR");if(wr){Yt(wr);continue}if(V("OPEN")){let yr=ae(),xs=V("NAME"),bi=V("REGEX");!xs&&!bi&&(bi=V("ASTERISK"));let fc=ae();de("CLOSE");let Ci=Te();Sr(yr,xs,bi,fc,Ci);continue}zt(),de("END")}return y}t(Jst,"D");function _T(s){return s.replace(/([.+*?^${}()[\]|/\\])/g,"\\$1")}t(_T,"S");function Ust(s){return s&&s.ignoreCase?"ui":"u"}t(Ust,"X");function Ker(s,o,f){return Wst(Jst(s,f),o,f)}t(Ker,"Z");function X9(s){switch(s){case 0:return"*";case 1:return"?";case 2:return"+";case 3:return""}}t(X9,"k");function Wst(s,o,f={}){f.delimiter??="/#?",f.prefixes??="./",f.sensitive??=!1,f.strict??=!1,f.end??=!0,f.start??=!0,f.endsWith="";let d=f.start?"^":"";for(let F of s){if(F.type===3){F.modifier===3?d+=_T(F.value):d+=`(?:${_T(F.value)})${X9(F.modifier)}`;continue}o&&o.push(F.name);let J=`[^${_T(f.delimiter)}]+?`,V=F.value;if(F.type===1?V=J:F.type===0&&(V=BAe),!F.prefix.length&&!F.suffix.length){F.modifier===3||F.modifier===1?d+=`(${V})${X9(F.modifier)}`:d+=`((?:${V})${X9(F.modifier)})`;continue}if(F.modifier===3||F.modifier===1){d+=`(?:${_T(F.prefix)}(${V})${_T(F.suffix)})`,d+=X9(F.modifier);continue}d+=`(?:${_T(F.prefix)}`,d+=`((?:${V})(?:`,d+=_T(F.suffix),d+=_T(F.prefix),d+=`(?:${V}))*)${_T(F.suffix)})`,F.modifier===0&&(d+="?")}let y=`[${_T(f.endsWith)}]|$`,E=`[${_T(f.delimiter)}]`;if(f.end)return f.strict||(d+=`${E}?`),f.endsWith.length?d+=`(?=${y})`:d+="$",new RegExp(d,Ust(f));f.strict||(d+=`(?:${E}(?=${y}))?`);let P=!1;if(s.length){let F=s[s.length-1];F.type===3&&F.modifier===3&&(P=f.delimiter.indexOf(F)>-1)}return P||(d+=`(?=${E}|${y})`),new RegExp(d,Ust(f))}t(Wst,"F");var rI={delimiter:"",prefixes:"",sensitive:!0,strict:!0},Xer={delimiter:".",prefixes:"",sensitive:!0,strict:!0},Zer={delimiter:"/",prefixes:"/",sensitive:!0,strict:!0};function Qer(s,o){return s.length?s[0]==="/"?!0:!o||s.length<2?!1:(s[0]=="\\"||s[0]=="{")&&s[1]=="/":!1}t(Qer,"J");function qst(s,o){return s.startsWith(o)?s.substring(o.length,s.length):s}t(qst,"Q");function etr(s,o){return s.endsWith(o)?s.substr(0,s.length-o.length):s}t(etr,"Ee");function Vst(s){return!s||s.length<2?!1:s[0]==="["||(s[0]==="\\"||s[0]==="{")&&s[1]==="["}t(Vst,"W");var Hst=["ftp","file","http","https","ws","wss"];function Gst(s){if(!s)return!0;for(let o of Hst)if(s.test(o))return!0;return!1}t(Gst,"N");function ttr(s,o){if(s=qst(s,"#"),o||s==="")return s;let f=new URL("https://example.com");return f.hash=s,f.hash?f.hash.substring(1,f.hash.length):""}t(ttr,"te");function rtr(s,o){if(s=qst(s,"?"),o||s==="")return s;let f=new URL("https://example.com");return f.search=s,f.search?f.search.substring(1,f.search.length):""}t(rtr,"re");function ntr(s,o){return o||s===""?s:Vst(s)?Xst(s):Kst(s)}t(ntr,"ne");function itr(s,o){if(o||s==="")return s;let f=new URL("https://example.com");return f.password=s,f.password}t(itr,"se");function str(s,o){if(o||s==="")return s;let f=new URL("https://example.com");return f.username=s,f.username}t(str,"ie");function atr(s,o,f){if(f||s==="")return s;if(o&&!Hst.includes(o))return new URL(`${o}:${s}`).pathname;let d=s[0]=="/";return s=new URL(d?s:"/-"+s,"https://example.com").pathname,d||(s=s.substring(2,s.length)),s}t(atr,"ae");function otr(s,o,f){return Yst(o)===s&&(s=""),f||s===""?s:Zst(s)}t(otr,"oe");function ctr(s,o){return s=etr(s,":"),o||s===""?s:UAe(s)}t(ctr,"ce");function Yst(s){switch(s){case"ws":case"http":return"80";case"wws":case"https":return"443";case"ftp":return"21";default:return""}}t(Yst,"_");function UAe(s){if(s==="")return s;if(/^[-+.A-Za-z0-9]*$/.test(s))return s.toLowerCase();throw new TypeError(`Invalid protocol '${s}'.`)}t(UAe,"y");function ltr(s){if(s==="")return s;let o=new URL("https://example.com");return o.username=s,o.username}t(ltr,"le");function utr(s){if(s==="")return s;let o=new URL("https://example.com");return o.password=s,o.password}t(utr,"fe");function Kst(s){if(s==="")return s;if(/[\t\n\r #%/:<>?@[\]^\\|]/g.test(s))throw new TypeError(`Invalid hostname '${s}'`);let o=new URL("https://example.com");return o.hostname=s,o.hostname}t(Kst,"z");function Xst(s){if(s==="")return s;if(/[^0-9a-fA-F[\]:]/g.test(s))throw new TypeError(`Invalid IPv6 hostname '${s}'`);return s.toLowerCase()}t(Xst,"j");function Zst(s){if(s===""||/^[0-9]*$/.test(s)&&parseInt(s)<=65535)return s;throw new TypeError(`Invalid port '${s}'.`)}t(Zst,"K");function ftr(s){if(s==="")return s;let o=new URL("https://example.com");return o.pathname=s[0]!=="/"?"/-"+s:s,s[0]!=="/"?o.pathname.substring(2,o.pathname.length):o.pathname}t(ftr,"he");function _tr(s){return s===""?s:new URL(`data:${s}`).pathname}t(_tr,"ue");function ptr(s){if(s==="")return s;let o=new URL("https://example.com");return o.search=s,o.search.substring(1,o.search.length)}t(ptr,"de");function dtr(s){if(s==="")return s;let o=new URL("https://example.com");return o.hash=s,o.hash.substring(1,o.hash.length)}t(dtr,"pe");var mtr=class{static{t(this,"H")}#e;#n=[];#t={};#r=0;#s=1;#m=0;#c=0;#u=0;#f=0;#p=!1;constructor(s){this.#e=s}get result(){return this.#t}parse(){for(this.#n=$st(this.#e,!0);this.#r<this.#n.length;this.#r+=this.#s){if(this.#s=1,this.#n[this.#r].type==="END"){if(this.#c===0){this.#o(),this.#g()?this.#a(9,1):this.#E()?this.#a(8,1):this.#a(7,0);continue}else if(this.#c===2){this.#h(5);continue}this.#a(10,0);break}if(this.#u>0)if(this.#l())this.#u-=1;else continue;if(this.#A()){this.#u+=1;continue}switch(this.#c){case 0:this.#y()&&this.#h(1);break;case 1:if(this.#y()){this.#D();let s=7,o=1;this.#b()?(s=2,o=3):this.#p&&(s=2),this.#a(s,o)}break;case 2:this.#v()?this.#h(3):(this.#S()||this.#E()||this.#g())&&this.#h(5);break;case 3:this.#C()?this.#a(4,1):this.#v()&&this.#a(5,1);break;case 4:this.#v()&&this.#a(5,1);break;case 5:this.#O()?this.#f+=1:this.#N()&&(this.#f-=1),this.#k()&&!this.#f?this.#a(6,1):this.#S()?this.#a(7,0):this.#E()?this.#a(8,1):this.#g()&&this.#a(9,1);break;case 6:this.#S()?this.#a(7,0):this.#E()?this.#a(8,1):this.#g()&&this.#a(9,1);break;case 7:this.#E()?this.#a(8,1):this.#g()&&this.#a(9,1);break;case 8:this.#g()&&this.#a(9,1);break;case 9:break;case 10:break}}this.#t.hostname!==void 0&&this.#t.port===void 0&&(this.#t.port="")}#a(s,o){switch(this.#c){case 0:break;case 1:this.#t.protocol=this.#w();break;case 2:break;case 3:this.#t.username=this.#w();break;case 4:this.#t.password=this.#w();break;case 5:this.#t.hostname=this.#w();break;case 6:this.#t.port=this.#w();break;case 7:this.#t.pathname=this.#w();break;case 8:this.#t.search=this.#w();break;case 9:this.#t.hash=this.#w();break;case 10:break}this.#c!==0&&s!==10&&([1,2,3,4].includes(this.#c)&&[6,7,8,9].includes(s)&&(this.#t.hostname??=""),[1,2,3,4,5,6].includes(this.#c)&&[8,9].includes(s)&&(this.#t.pathname??=this.#p?"/":""),[1,2,3,4,5,6,7].includes(this.#c)&&s===9&&(this.#t.search??="")),this.#i(s,o)}#i(s,o){this.#c=s,this.#m=this.#r+o,this.#r+=o,this.#s=0}#o(){this.#r=this.#m,this.#s=0}#h(s){this.#o(),this.#c=s}#d(s){return s<0&&(s=this.#n.length-s),s<this.#n.length?this.#n[s]:this.#n[this.#n.length-1]}#_(s,o){let f=this.#d(s);return f.value===o&&(f.type==="CHAR"||f.type==="ESCAPED_CHAR"||f.type==="INVALID_CHAR")}#y(){return this.#_(this.#r,":")}#b(){return this.#_(this.#r+1,"/")&&this.#_(this.#r+2,"/")}#v(){return this.#_(this.#r,"@")}#C(){return this.#_(this.#r,":")}#k(){return this.#_(this.#r,":")}#S(){return this.#_(this.#r,"/")}#E(){if(this.#_(this.#r,"?"))return!0;if(this.#n[this.#r].value!=="?")return!1;let s=this.#d(this.#r-1);return s.type!=="NAME"&&s.type!=="REGEX"&&s.type!=="CLOSE"&&s.type!=="ASTERISK"}#g(){return this.#_(this.#r,"#")}#A(){return this.#n[this.#r].type=="OPEN"}#l(){return this.#n[this.#r].type=="CLOSE"}#O(){return this.#_(this.#r,"[")}#N(){return this.#_(this.#r,"]")}#w(){let s=this.#n[this.#r],o=this.#d(this.#m).index;return this.#e.substring(o,s.index)}#D(){let s={};Object.assign(s,rI),s.encodePart=UAe;let o=Ker(this.#w(),void 0,s);this.#p=Gst(o)}},jAe=["protocol","username","password","hostname","port","pathname","search","hash"],tI="*";function zst(s,o){if(typeof s!="string")throw new TypeError("parameter 1 is not of type 'string'.");let f=new URL(s,o);return{protocol:f.protocol.substring(0,f.protocol.length-1),username:f.username,password:f.password,hostname:f.hostname,port:f.port,pathname:f.pathname,search:f.search!==""?f.search.substring(1,f.search.length):void 0,hash:f.hash!==""?f.hash.substring(1,f.hash.length):void 0}}t(zst,"ge");function HP(s,o){return o?WV(s):s}t(HP,"b");function JV(s,o,f){let d;if(typeof o.baseURL=="string")try{d=new URL(o.baseURL),o.protocol===void 0&&(s.protocol=HP(d.protocol.substring(0,d.protocol.length-1),f)),!f&&o.protocol===void 0&&o.hostname===void 0&&o.port===void 0&&o.username===void 0&&(s.username=HP(d.username,f)),!f&&o.protocol===void 0&&o.hostname===void 0&&o.port===void 0&&o.username===void 0&&o.password===void 0&&(s.password=HP(d.password,f)),o.protocol===void 0&&o.hostname===void 0&&(s.hostname=HP(d.hostname,f)),o.protocol===void 0&&o.hostname===void 0&&o.port===void 0&&(s.port=HP(d.port,f)),o.protocol===void 0&&o.hostname===void 0&&o.port===void 0&&o.pathname===void 0&&(s.pathname=HP(d.pathname,f)),o.protocol===void 0&&o.hostname===void 0&&o.port===void 0&&o.pathname===void 0&&o.search===void 0&&(s.search=HP(d.search.substring(1,d.search.length),f)),o.protocol===void 0&&o.hostname===void 0&&o.port===void 0&&o.pathname===void 0&&o.search===void 0&&o.hash===void 0&&(s.hash=HP(d.hash.substring(1,d.hash.length),f))}catch{throw new TypeError(`invalid baseURL '${o.baseURL}'.`)}if(typeof o.protocol=="string"&&(s.protocol=ctr(o.protocol,f)),typeof o.username=="string"&&(s.username=str(o.username,f)),typeof o.password=="string"&&(s.password=itr(o.password,f)),typeof o.hostname=="string"&&(s.hostname=ntr(o.hostname,f)),typeof o.port=="string"&&(s.port=otr(o.port,s.protocol,f)),typeof o.pathname=="string"){if(s.pathname=o.pathname,d&&!Qer(s.pathname,f)){let y=d.pathname.lastIndexOf("/");y>=0&&(s.pathname=HP(d.pathname.substring(0,y+1),f)+s.pathname)}s.pathname=atr(s.pathname,s.protocol,f)}return typeof o.search=="string"&&(s.search=rtr(o.search,f)),typeof o.hash=="string"&&(s.hash=ttr(o.hash,f)),s}t(JV,"w");function WV(s){return s.replace(/([+*?:{}()\\])/g,"\\$1")}t(WV,"C");function htr(s){return s.replace(/([.+*?^${}()[\]|/\\])/g,"\\$1")}t(htr,"Oe");function gtr(s,o){o.delimiter??="/#?",o.prefixes??="./",o.sensitive??=!1,o.strict??=!1,o.end??=!0,o.start??=!0,o.endsWith="";let f=".*",d=`[^${htr(o.delimiter)}]+?`,y=/[$_\u200C\u200D\p{ID_Continue}]/u,E="";for(let P=0;P<s.length;++P){let F=s[P];if(F.type===3){if(F.modifier===3){E+=WV(F.value);continue}E+=`{${WV(F.value)}}${X9(F.modifier)}`;continue}let J=F.hasCustomName(),V=!!F.suffix.length||!!F.prefix.length&&(F.prefix.length!==1||!o.prefixes.includes(F.prefix)),Te=P>0?s[P-1]:null,de=P<s.length-1?s[P+1]:null;if(!V&&J&&F.type===1&&F.modifier===3&&de&&!de.prefix.length&&!de.suffix.length)if(de.type===3){let ae=de.value.length>0?de.value[0]:"";V=y.test(ae)}else V=!de.hasCustomName();if(!V&&!F.prefix.length&&Te&&Te.type===3){let ae=Te.value[Te.value.length-1];V=o.prefixes.includes(ae)}V&&(E+="{"),E+=WV(F.prefix),J&&(E+=`:${F.name}`),F.type===2?E+=`(${F.value})`:F.type===1?J||(E+=`(${d})`):F.type===0&&(!J&&(!Te||Te.type===3||Te.modifier!==3||V||F.prefix!=="")?E+="*":E+=`(${f})`),F.type===1&&J&&F.suffix.length&&y.test(F.suffix[0])&&(E+="\\"),E+=WV(F.suffix),V&&(E+="}"),F.modifier!==3&&(E+=X9(F.modifier))}return E}t(gtr,"ke");var Qst=class{static{t(this,"me")}#e;#n={};#t={};#r={};#s={};#m=!1;constructor(s={},o,f){try{let d;if(typeof o=="string"?d=o:f=o,typeof s=="string"){let F=new mtr(s);if(F.parse(),s=F.result,d===void 0&&typeof s.protocol!="string")throw new TypeError("A base URL must be provided for a relative constructor string.");s.baseURL=d}else{if(!s||typeof s!="object")throw new TypeError("parameter 1 is not of type 'string' and cannot convert to dictionary.");if(d)throw new TypeError("parameter 1 is not of type 'string'.")}typeof f>"u"&&(f={ignoreCase:!1});let y={ignoreCase:f.ignoreCase===!0},E={pathname:tI,protocol:tI,username:tI,password:tI,hostname:tI,port:tI,search:tI,hash:tI};this.#e=JV(E,s,!0),Yst(this.#e.protocol)===this.#e.port&&(this.#e.port="");let P;for(P of jAe){if(!(P in this.#e))continue;let F={},J=this.#e[P];switch(this.#t[P]=[],P){case"protocol":Object.assign(F,rI),F.encodePart=UAe;break;case"username":Object.assign(F,rI),F.encodePart=ltr;break;case"password":Object.assign(F,rI),F.encodePart=utr;break;case"hostname":Object.assign(F,Xer),Vst(J)?F.encodePart=Xst:F.encodePart=Kst;break;case"port":Object.assign(F,rI),F.encodePart=Zst;break;case"pathname":Gst(this.#n.protocol)?(Object.assign(F,Zer,y),F.encodePart=ftr):(Object.assign(F,rI,y),F.encodePart=_tr);break;case"search":Object.assign(F,rI,y),F.encodePart=ptr;break;case"hash":Object.assign(F,rI,y),F.encodePart=dtr;break}try{this.#s[P]=Jst(J,F),this.#n[P]=Wst(this.#s[P],this.#t[P],F),this.#r[P]=gtr(this.#s[P],F),this.#m=this.#m||this.#s[P].some(V=>V.type===2)}catch{throw new TypeError(`invalid ${P} pattern '${this.#e[P]}'.`)}}}catch(d){throw new TypeError(`Failed to construct 'URLPattern': ${d.message}`)}}test(s={},o){let f={pathname:"",protocol:"",username:"",password:"",hostname:"",port:"",search:"",hash:""};if(typeof s!="string"&&o)throw new TypeError("parameter 1 is not of type 'string'.");if(typeof s>"u")return!1;try{typeof s=="object"?f=JV(f,s,!1):f=JV(f,zst(s,o),!1)}catch{return!1}let d;for(d of jAe)if(!this.#n[d].exec(f[d]))return!1;return!0}exec(s={},o){let f={pathname:"",protocol:"",username:"",password:"",hostname:"",port:"",search:"",hash:""};if(typeof s!="string"&&o)throw new TypeError("parameter 1 is not of type 'string'.");if(typeof s>"u")return;try{typeof s=="object"?f=JV(f,s,!1):f=JV(f,zst(s,o),!1)}catch{return null}let d={};o?d.inputs=[s,o]:d.inputs=[s];let y;for(y of jAe){let E=this.#n[y].exec(f[y]);if(!E)return null;let P={};for(let[F,J]of this.#t[y].entries())if(typeof J=="string"||typeof J=="number"){let V=E[F+1];P[J]=V}d[y]={input:f[y]??"",groups:P}}return d}static compareComponent(s,o,f){let d=t((F,J)=>{for(let V of["type","modifier","prefix","value","suffix"]){if(F[V]<J[V])return-1;if(F[V]!==J[V])return 1}return 0},"o"),y=new qV(3,"","","","",3),E=new qV(0,"","","","",3),P=t((F,J)=>{let V=0;for(;V<Math.min(F.length,J.length);++V){let Te=d(F[V],J[V]);if(Te)return Te}return F.length===J.length?0:d(F[V]??y,J[V]??y)},"s");return!o.#r[s]&&!f.#r[s]?0:o.#r[s]&&!f.#r[s]?P(o.#s[s],[E]):!o.#r[s]&&f.#r[s]?P([E],f.#s[s]):P(o.#s[s],f.#s[s])}get protocol(){return this.#r.protocol}get username(){return this.#r.username}get password(){return this.#r.password}get hostname(){return this.#r.hostname}get port(){return this.#r.port}get pathname(){return this.#r.pathname}get search(){return this.#r.search}get hash(){return this.#r.hash}get hasRegExpGroups(){return this.#m}};globalThis.URLPattern||(globalThis.URLPattern=Qst);import{AssertionError as ytr}from"node:assert";function GP(s,o){if(s===!1)throw new ytr({message:o})}t(GP,"assert");var Wo;(function(s){s.Object="Object",s.Property="Property",s.Array="Array",s.Literal="Literal",s.TemplateString="TemplateString",s.Identifier="Identifier",s.FunctionCall="FunctionCall",s.Raw="Raw"})(Wo||(Wo={}));function Z9(s){return s.type===Wo.Object}t(Z9,"isAstObject");function YP(s){return s.type===Wo.Property}t(YP,"isAstProperty");function zAe(s){return s.type===Wo.Array}t(zAe,"isAstArray");function TO(s){return s.type===Wo.Literal}t(TO,"isAstLiteral");function nI(s){if(s===void 0)throw new Error("Node is undefined");if(!Z9(s))throw new Error("Node is not object")}t(nI,"assertAstObject");import{findNodeAtLocation as vtr,getNodeValue as btr,printParseErrorCode as Str,visit as Ttr}from"jsonc-parser";var xtr={DEFAULT:{allowTrailingComma:!1}};function VV(s,o=[],f=xtr.DEFAULT){let d={type:"array",offset:-1,length:-1,line:-1,column:-1,children:[],parent:void 0};function y(J){d.type==="property"&&(d.length=J-d.offset,d=d.parent)}t(y,"ensurePropertyComplete");function E(J){return d.children?.push(J),J}t(E,"onValue"),Ttr(s,{onObjectBegin:t((J,V,Te)=>{d=E({type:"object",offset:J,length:-1,line:V+1,column:Te+1,parent:d,children:[]})},"onObjectBegin"),onObjectProperty:t((J,V,Te,de,ae)=>{d=E({type:"property",offset:V,length:-1,line:de+1,column:ae+1,parent:d,children:[]}),d.children?.push({type:"string",value:J,offset:V,length:Te,line:de,column:ae,parent:d})},"onObjectProperty"),onObjectEnd:t((J,V)=>{y(J+V),d.length=J+V-d.offset,d=d.parent,y(J+V)},"onObjectEnd"),onArrayBegin:t((J,V,Te,de)=>{d=E({type:"array",offset:J,length:-1,line:Te+1,column:de+1,parent:d,children:[]})},"onArrayBegin"),onArrayEnd:t((J,V)=>{d.length=J+V-d.offset,d=d.parent,y(J+V)},"onArrayEnd"),onLiteralValue:t((J,V,Te,de,ae)=>{E({type:Etr(J),offset:V,length:Te,line:de+1,column:ae+1,parent:d,value:J}),y(V+Te)},"onLiteralValue"),onSeparator:t((J,V)=>{d.type==="property"&&(J===":"?d.colonOffset=V:J===","&&y(V))},"onSeparator"),onError:t((J,V,Te,de,ae)=>{o.push({error:J,offset:V,length:Te,line:de+1,column:ae+1})},"onError")},f);let F=d.children?.[0];return F&&delete F.parent,F}t(VV,"parse");function Etr(s){switch(typeof s){case"boolean":return"boolean";case"number":return"number";case"string":return"string";case"object":{if(s){if(Array.isArray(s))return"array"}else return"null";return"object"}default:return"null"}}t(Etr,"getNodeType");function $Ae(s,o){return vtr(s,o)}t($Ae,"findNodeAtLocation");function HV(s){return btr(s)}t(HV,"getNodeValue");function eat(s){return Str(s)}t(eat,"printParseErrorCode");var GV=class{static{t(this,"AstAdapter")}parse(o){let d=VV(o,[]);if(d)return this.parseNode(d,void 0);throw new Error("Failed to parse JSON")}convert(o){return this.parseNode(o,void 0)}parseNode(o,f){switch(o.type){case"object":return this.createObject(o,f);case"array":return this.createArray(o,f);case"property":return this.createProperty(o,f);case"string":return this.createLiteral(o,f);case"number":return this.createLiteral(o,f);case"boolean":return this.createLiteral(o,f);case"null":return this.createLiteral(o,f)}}createLiteral(o,f){return{type:Wo.Literal,location:{line:o.line,column:o.column},parent:f,value:o.type==="null"?null:o.value}}createObject(o,f){let d={type:Wo.Object,children:[],parent:f,location:{line:o.line,column:o.column}};return o.children?.forEach(y=>{d.children.push(this.parseNode(y,d))}),d}createProperty(o,f){GP(o.children?.length===2,"Invalid property node");let d={type:Wo.Property,location:{line:o.line,column:o.column},parent:f,name:null,value:null};return d.name={value:o.children[0].value,location:{line:o.line,column:o.column},type:Wo.Identifier,parent:d},d.value=this.parseNode(o.children[1],d),d}createArray(o,f){let d={type:Wo.Array,location:{line:o.line,column:o.column},parent:f,children:[]};return o.children?.forEach(y=>d.children.push(this.parseNode(y,d))),d}};var DS={createLiteral:t((s,o)=>({type:Wo.Literal,parent:o,value:s}),"createLiteral"),createTemplateString:t((s,o)=>({type:Wo.TemplateString,parent:o,value:s}),"createTemplateString"),createIdentifier:t((s,o)=>({type:Wo.Identifier,value:s,parent:o}),"createIdentifier"),createProperty:t((s,o,f)=>{let d={type:Wo.Property,parent:f,name:null,value:o};return d.name={value:s,type:Wo.Identifier,parent:d},d.value.parent=d,d},"createProperty"),createArrayOfLiterals:t((s,o)=>{let f={type:Wo.Array,parent:o,children:[]};for(let d of s)f.children.push(DS.createLiteral(d,f));return f},"createArrayOfLiterals")};var Ctr=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/,YV=class{static{t(this,"SourceGenerator")}generate(o){let f=[];return this.generateSource(f,o),f.join("")}generateSource(o,f){switch(f.type){case Wo.Array:return this.generateArray(o,f);case Wo.Object:return this.generateObject(o,f);case Wo.Property:return this.generateProperty(o,f);case Wo.Literal:return this.generateLiteral(o,f);case Wo.FunctionCall:return this.generateFunctionCall(o,f);case Wo.Identifier:return this.generateIdentifier(o,f);case Wo.Raw:return this.generateRaw(o,f);case Wo.TemplateString:return this.generateTemplateString(o,f)}}generateArray(o,f){o.push("["),f.children.map(d=>{this.generateSource(o,d),o.push(",")}),o.push("]")}generateObject(o,f){o.push("{"),f.children.forEach(d=>{this.generateSource(o,d),o.push(",")}),o.push("}")}generateProperty(o,f){this.generateIdentifier(o,f.name),o.push(":"),this.generateSource(o,f.value)}generateFunctionCall(o,f){o.push(f.name.value),o.push("("),f.children.forEach((d,y,E)=>{this.generateSource(o,d),y<E.length&&o.push(",")}),o.push(")")}generateRaw(o,f){o.push(f.value)}generateTemplateString(o,f){o.push("`"),o.push(f.value.replaceAll("`","\\`")),o.push("`")}generateLiteral(o,f){if(f.value===null)return o.push("null");switch(typeof f.value){case"number":case"boolean":return o.push(`${f.value}`);case"string":{let d=f.value,y=JSON.stringify(d);return o.push(`${y}`)}}}generateIdentifier(o,f){let d=Ctr.test(f.value)?f.value:`'${f.value}'`;o.push(d)}};import ktr from"node:fs/promises";import{parse as wtr}from"@swc/core";var tat=t(async s=>{let o=new Set;try{let f=await ktr.readFile(s,"utf-8");(await wtr(f,{syntax:"typescript"})).body.forEach(y=>{y.type==="ExportDefaultDeclaration"||y.type==="ExportDefaultExpression"?o.add("default"):y.type==="ExportDeclaration"&&y.declaration.type==="FunctionDeclaration"?o.add(y.declaration.identifier.value):y.type==="ExportDeclaration"&&y.declaration.type==="VariableDeclaration"&&y.declaration.declarations[0].id.type==="Identifier"&&o.add(y.declaration.declarations[0].id.value)})}catch{return null}return o},"getJSFileExports");var rat={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"http://schemas.zuplo.com/fragments.schema.json",$defs:{corsPolicyConfiguration:{type:"object",required:["name","allowedOrigins"],additionalProperties:!1,properties:{name:{type:"string",pattern:"^[0-9a-z-]+$"},allowCredentials:{type:"boolean"},maxAge:{type:"number"},allowedOrigins:{oneOf:[{type:"array",items:{type:"string"}},{type:"string"}]},allowedMethods:{oneOf:[{type:"array",items:{$ref:"fragments.schema.json#/$defs/httpMethod"}},{type:"string"}]},allowedHeaders:{oneOf:[{type:"array",items:{type:"string"}},{type:"string"}]},exposeHeaders:{oneOf:[{type:"array",items:{type:"string"}},{type:"string"}]}}},handlerDefinition:{type:"object",properties:{module:{type:"string",pattern:"^\\$import\\([^ )]*?\\)$"},export:{type:"string"},options:{type:"object",additionalProperties:!0}},additionalProperties:!1,required:["module","export"]},httpMethod:{type:"string",enum:["GET","HEAD","POST","PUT","DELETE","CONNECT","OPTIONS","TRACE","PATCH"]}}};var JAe={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"http://schemas.zuplo.com/policies.schema.json",title:"Policies Config File",type:"object",additionalProperties:!1,properties:{policies:{type:"array",items:{$ref:"policy-configuration.schema.json"}},corsPolicies:{type:"array",items:{$ref:"fragments.schema.json#/$defs/corsPolicyConfiguration"}}}};var nat={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"http://schemas.zuplo.com/policy-configuration.schema.json",title:"Policy Configuration Fragment",type:"object",required:["name","policyType","handler"],additionalProperties:!1,properties:{name:{type:"string",pattern:"^[0-9a-z-]+$"},policyType:{type:"string"},handler:{$ref:"fragments.schema.json#/$defs/handlerDefinition"},options:{type:"object",additionalProperties:!0}}};var WAe={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"http://schemas.zuplo.com/route-configuration.schema.json",title:"Route Configuration Fragment",description:"",type:"object",required:["path","methods","handler"],additionalProperties:!1,$defs:{corsPolicy:{type:"string",pattern:"^[0-9a-z-]+$"}},properties:{operationId:{type:"string"},path:{type:"string",pattern:"^/[^\\s]*$"},methods:{type:"array",items:{$ref:"fragments.schema.json#/$defs/httpMethod"}},label:{type:"string",description:"An internal user-friendly identifier of the route."},enforceOpenApi:{type:"boolean",description:"If true, schema validation found in the OpenAPI spec will be enforced on requests/responses."},key:{type:"string",deprecated:!0},handler:{$ref:"fragments.schema.json#/$defs/handlerDefinition"},corsPolicy:{$ref:"#/$defs/corsPolicy"},custom:{},mcp:{type:"object",additionalProperties:!1,properties:{enabled:{type:"boolean"}}},policies:{type:"object",additionalProperties:!1,properties:{inbound:{type:"array",items:{type:"string",pattern:"^[0-9a-z-]+$"}},outbound:{type:"array",items:{type:"string",pattern:"^[0-9a-z-]+$"}}}},summary:{type:"string"},description:{type:"string"},excludeFromOpenApi:{type:"boolean"},tags:{type:"array",items:{type:"string"}}}};var qAe={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"http://schemas.zuplo.com/route-configuration-open-api.schema.json",title:"Open API Route Configuration Fragment",description:"These are the properties that can appear under the x-zuplo-route extension in a PathObject in Open API. It's a subset of what can appear in Zuplo's routes.json.",type:"object",required:["handler"],additionalProperties:!1,properties:{label:{type:"string",description:"An internal user-friendly identifier of the route."},key:{type:"string",deprecated:!0},handler:{$ref:"fragments.schema.json#/$defs/handlerDefinition"},corsPolicy:{type:"string",pattern:"^[0-9a-z-]+$"},custom:{},mcp:{oneOf:[{type:"object",additionalProperties:!1,properties:{type:{const:"tool"},name:{type:"string"},description:{type:"string"},enabled:{type:"boolean"},includeOutputSchema:{type:"boolean"},includeStructuredContent:{type:"boolean"},annotations:{type:"object",additionalProperties:!1,properties:{title:{type:"string"},readOnlyHint:{type:"boolean"},destructiveHint:{type:"boolean"},idempotentHint:{type:"boolean"},openWorldHint:{type:"boolean"}}},_meta:{type:"object",additionalProperties:!0}},required:["type"]},{type:"object",additionalProperties:!1,properties:{type:{const:"prompt"},name:{type:"string"},description:{type:"string"},enabled:{type:"boolean"}},required:["type"]},{type:"object",additionalProperties:!1,properties:{type:{const:"resource"},name:{type:"string"},description:{type:"string"},uri:{type:"string"},mimeType:{type:"string"},enabled:{type:"boolean"},_meta:{type:"object",additionalProperties:!0}},required:["type"]},{type:"object",additionalProperties:!1,properties:{type:{const:"graphql"},enabled:{type:"boolean"},introspectionTool:{type:"object",additionalProperties:!1,properties:{name:{type:"string"},description:{type:"string"}}},executeTool:{type:"object",additionalProperties:!1,properties:{name:{type:"string"},description:{type:"string"}}}},required:["type"]}]},policies:{type:"object",additionalProperties:!1,properties:{inbound:{type:"array",items:{type:"string",pattern:"^[0-9a-z-]+$"}},outbound:{type:"array",items:{type:"string",pattern:"^[0-9a-z-]+$"}}}},tags:{type:"array",items:{type:"string"}}}};var llt=tp(Kce(),1),ult=tp(clt(),1);var Qce=class s{static{t(this,"JsonValidator")}static#e=new s;static get instance(){return s.#e}ajv;constructor(){this.ajv=new llt.Ajv2020({allErrors:!0,allowUnionTypes:!0}),this.ajv.addKeyword("faker"),(0,ult.default)(this.ajv,{mode:"fast"})}addSchema(o,f){this.ajv.addSchema(o,f)}compile(o){let f=this.ajv.compile(o);return t(y=>({isValid:f(y),errors:this.toSimpleErrors(f.errors,y),warnings:[]}),"validator")}toSimpleErrors(o,f){let d=[];return o?.forEach(y=>{y.keyword==="enum"&&y.params.allowedValues&&Array.isArray(y.params.allowedValues)&&(y.message+=`; ${y.params.allowedValues.join(", ")}`),y.instancePath&&(y.instancePath=y.instancePath.replaceAll(/(\/)?(~1)(\/)?/gm,"/"));let E={details:{}},P=y.instancePath.split("/");if(P.length>2){let J=P[1],V=P[2]?parseInt(P[2],10):0,Te=P[3],de=Number.isNaN(V)?void 0:f[J][V][Te];E={details:{property:J,index:V,field:Te,fieldValue:de}}}if(y.keyword==="required"&&y.params.missingProperty&&y.instancePath&&(y.message=`A 'path' is missing required property '${y.params.missingProperty}'`),y.keyword==="additionalProperties"&&y.params.additionalProperty&&y.instancePath&&(y.message=`A 'path' should NOT include property '${y.params.additionalProperty}'`),y.keyword==="type"&&y.params.type&&y.instancePath){let J=y.instancePath.split("/"),V=J[J.length-1];y.message=`Value of property '${V}' must be '${y.params.type}'`}let F=Object.assign(y,E);d.push(F)}),d}};var pI=Qce.instance;pI.addSchema(WAe,"route-configuration.schema.json");pI.addSchema(nat,"policy-configuration.schema.json");pI.addSchema(JAe,"policies.schema.json");pI.addSchema(qAe,"open-api-route-configuration.schema.json");pI.addSchema(rat,"fragments.schema.json");var T6r=pI.compile(WAe),flt=pI.compile(qAe),aIe=pI.compile(JAe);var ele=class{static{t(this,"PoliciesConfigurationValidator")}results;validate(o){return this.results=aIe(o),this.results}};var tle=class{static{t(this,"OpenAPILocalizedValidator")}results;validate(o){return this.results=flt(o),this.results}};import Mcr from"node:path";var oIe=/\$import\((.*)\)/,wH=/\$env\((.*?)\)/g;var zk=class extends Error{static{t(this,"CodeGenError")}location;constructor(o,f,d,y){super(o),this.location={file:f,namespace:"",line:d?d.line:0,column:d?d.column:0,length:0,lineText:y??"",suggestion:""}}},Rcr=t(s=>{let o=[],f=s;for(;f.parent;)o.push(f),f=f.parent;return o.reverse()},"invertTree"),eA=t((s,o)=>{if(!s)return!1;let f=Rcr(s);return o.split("/").every((E,P)=>{let F=f[P];return F?E==="*"||YP(F)&&F.name.value===E?!0:E==="{}"?F.type===Wo.Object:E==="[]"?F.type===Wo.Array:!1:!1})},"testPosition");var rle=class{static{t(this,"AstTransformer")}errors=[];transform(o){return this.visitor(o),o}visitor(o){this.visit(o),Z9(o)?o.children.forEach(f=>{this.visitor(f)}):zAe(o)?o.children.forEach(f=>{this.visitor(f)}):YP(o)&&this.visitor(o.value)}},_lt=t(s=>{let o=new RegExp(wH).exec(s);if(o?.length===2&&o[0]===s)return{type:"raw",value:`environment["${o[1]}"]`};{let f=s.replaceAll(new RegExp(wH),(d,y)=>`\${environment["${y}"] ? environment["${y}"] : ""}`);if(f!==s)return{type:"template",value:f}}return null},"replaceEnvInString"),plt=t((s,o,f)=>d=>{if(TO(d)&&typeof d.value=="string"&&d.parent&&zAe(d.parent)){if(!s.some(P=>eA(d.parent,P))){wH.test(d.value)&&o.push(new zk("An $env() statement is not expected at this location.",f,d.location,d.value));return}let E=_lt(d.value);if(E){let P=d.parent,F=P.children.indexOf(d);if(F!==-1)if(E.type==="raw"){let J={type:Wo.Raw,parent:P,value:E.value};P.children[F]=J}else P.children[F]=DS.createTemplateString(E.value,d)}return}if(!YP(d)||!TO(d.value)||typeof d.value.value!="string")return;if(!s.some(E=>eA(d,E))){wH.test(d.value.value)&&o.push(new zk("An $env() statement is not expected at this location.",f,d.location,d.value.value));return}let y=_lt(d.value.value);if(y)if(y.type==="raw"){let E={type:Wo.Raw,parent:null,value:y.value};d.value=E}else d.value=DS.createTemplateString(y.value,d)},"getEnvStatementTransformer");var DH="config/routes.json",jcr=["handler/{}/options/*","handler/{}/options/*/[]","policies/[]/{}/handler/{}/options/*","policies/[]/{}/handler/{}/options/*/[]","corsPolicies/[]/{}/*","corsPolicies/[]/{}/*/[]"],Bcr=["handler/{}/module","handler/{}/options/{}/policies/{}/inbound/[]/{}/module","handler/{}/options/{}/policies/{}/outbound/[]/{}/module","policies/[]/{}/handler/{}/module","policies/[]/{}/handler/{}/options/{}/identifier/{}/module","policies/[]/{}/handler/{}/options/{}/validator"],dlt=["handler/{}/options/*","policies/[]/{}/handler/{}/options/*"],Ucr="handler/{}/options/{}/rewritePattern",zcr="handler/{}/options/{}/baseUrl",nle=class extends rle{static{t(this,"OpenAPIRoutesFragmentAstTransformer")}importCount=0;addedImports=new Map;getImportName(o){this.addedImports.has(o)||this.addedImports.set(o,`__import${this.importCount++}`);let f=this.addedImports.get(o);if(!f)throw new Error("Import name is undefined. This should not happen.");return f}getImports(){let o=[];return this.addedImports.forEach((f,d)=>{o.push({name:f,path:d})}),o}visit(o){this.rewriteHandlerFunction(o),this.rewriteForwardFunction(o),this.replaceImportStatements(o),this.replaceEnvStatements(o)}rewriteHandlerFunction(o){if(!(!YP(o)||!TO(o.value)||typeof o.value.value!="string")&&eA(o,Ucr)){if(!o.parent||!Z9(o.parent)){this.errors.push(new zk("Invalid node, expected object",DH,o.parent?o.parent.location:o.location,void 0));return}let f=o.value.value,d={type:Wo.Raw,parent:null,value:mlt(f)},y=DS.createProperty("__rewriteFunction",d,o);o.parent.children.push(y)}}rewriteForwardFunction(o){if(!(!YP(o)||!TO(o.value)||typeof o.value.value!="string")&&eA(o,zcr)){if(!o.parent||!Z9(o.parent)){this.errors.push(new zk("Invalid node, expected object",DH,o.parent?o.parent.location:o.location,void 0));return}let f=o.value.value,d={type:Wo.Raw,parent:null,value:mlt(f)},y=DS.createProperty("__rewriteFunction",d,o);o.parent.children.push(y)}}replaceImportStatements(o){if(!YP(o)||!TO(o.value))return;let f=o.value.value;if(typeof f!="string")return;if(!Bcr.some(F=>eA(o,F))&&!dlt.some(F=>eA(o,F))){if(oIe.test(f)){if(o.name.value==="$ref")return;this.errors.push(new zk("An $import() statement is not expected at this location.",DH,o.location,f))}return}let d=oIe.exec(f);if(dlt.some(F=>eA(o,F))&&!d)return;if(!d){this.errors.push(new zk("Invalid $import() statement",DH,o.location,f));return}let y=d[1];y=y.replace(/\\/g,"/"),y.startsWith(".")&&(y=Mcr.posix.join("..",y));let E=this.getImportName(y),P={type:Wo.Identifier,parent:o.parent,value:E};o.value=P}replaceEnvStatements=plt(jcr,this.errors,DH)};function mlt(s){return`(request, context) => {
576
576
  const { params, url, query, method, headers } = request;
577
577
  const { host, hostname, origin, pathname, port, search } = new URL(url);
578
578
  const e = encodeURIComponent;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zuplo/core",
3
- "version": "6.71.21",
3
+ "version": "6.71.23",
4
4
  "repository": "https://github.com/zuplo/zuplo",
5
5
  "author": "Zuplo, Inc.",
6
6
  "type": "module",
@@ -40,9 +40,9 @@
40
40
  "source-map": "^0.7.4"
41
41
  },
42
42
  "peerDependencies": {
43
- "@zuplo/graphql": "6.71.21",
44
- "@zuplo/otel": "6.71.21",
45
- "@zuplo/runtime": "6.71.21",
43
+ "@zuplo/graphql": "6.71.23",
44
+ "@zuplo/otel": "6.71.23",
45
+ "@zuplo/runtime": "6.71.23",
46
46
  "deno": "2.3.1"
47
47
  }
48
48
  }