@zuplo/core 7.4.4 → 7.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/customer.cli.minified.js +1 -1
- package/index.minified.js +1 -1
- package/package.json +4 -4
package/customer.cli.minified.js
CHANGED
|
@@ -568,7 +568,7 @@ globstar while`,s,ue,o,ae,tt),this.matchOne(s.slice(ue),o.slice(ae),f))return th
|
|
|
568
568
|
`],[102,"\f"],[114,"\r"],[116," "]]),Noe=new Map([...kV,[118,"\v"],[48,"\0"]]),cXt=new Map([['"','"'],["\\","\\"],["/","/"],["\b","b"],[`
|
|
569
569
|
`,"n"],["\f","f"],["\r","r"],[" ","t"]]),RCr=new Map([...cXt,["\v","v"],["\0","0"],["\u2028","u2028"],["\u2029","u2029"]]),Aoe=new Map([["[","LBracket"],["]","RBracket"],["{","LBrace"],["}","RBrace"],[":","Colon"],[",","Comma"],[iXt,"Boolean"],[sXt,"Boolean"],[aXt,"Null"]]),Poe=new Map([...Aoe,["NaN","Number"],[oXt,"Number"]]),$Pe=new Set([10,13,8232,8233]),RP=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 RP{static{t(this,"UnexpectedChar")}constructor(o,f){super(`Unexpected character '${String.fromCharCode(o)}' found.`,f)}},WPe=class extends RP{static{t(this,"UnexpectedIdentifier")}constructor(o,f){super(`Unexpected identifier '${o}' found.`,f)}},lO=class extends RP{static{t(this,"UnexpectedToken")}constructor(o){super(`Unexpected token ${o.type} found.`,o.loc.start)}},Ioe=class extends RP{static{t(this,"UnexpectedEOF")}constructor(o){super("Unexpected end of input found.",o)}},lXt=/[\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]/,uXt=/[\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]/,fXt=13,Unt=10,qPe=class{static{t(this,"CharCodeReader")}#e="";#r=1;#t=0;#n=-1;#s=!1;#m=-1;#c=!1;constructor(o){this.#e=o}#u(){this.#c||(this.#t++,this.#n++,this.#m=-1,this.#c=!0)}locate(){return{line:this.#r,column:this.#t,offset:this.#n}}next(){if(this.#n>=this.#e.length-1)return this.#u(),-1;this.#n++;let o=this.#e.charCodeAt(this.#n);return this.#s?(this.#r++,this.#t=1,this.#s=!1):this.#t++,o===fXt?(this.#s=!0,this.peek()===Unt&&this.#n++):o===Unt&&(this.#s=!0),this.#m=o,o}peek(){return this.#n===this.#e.length-1?-1:this.#e.charCodeAt(this.#n+1)}match(o){return o(this.peek())?(this.next(),!0):!1}current(){return this.#m}},_Xt="Infinity",pXt="NaN",dXt=new Set([116,102,110]),VPe=new Set([32,9,10,13]),znt=new Set([...VPe,11,12,160,8232,8233,65279,160,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288]),mXt={mode:"json",ranges:!1},hXt=new Set(["true","false","null"]),g_={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 LP(s){return s>=48&&s<=57}t(LP,"isDigit");function zPe(s){return LP(s)||s>=65&&s<=70||s>=97&&s<=102}t(zPe,"isHexDigit");function gXt(s){return s>=49&&s<=57}t(gXt,"isPositiveDigit");function yXt(s){return dXt.has(s)}t(yXt,"isKeywordStart");function Jnt(s){return LP(s)||s===46||s===45}t(Jnt,"isNumberStart");function vXt(s){return Jnt(s)||s===43}t(vXt,"isJSON5NumberStart");function $nt(s,o){return s===34||o&&s===39}t($nt,"isStringStart");function Wnt(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 lXt.test(o)}t(Wnt,"isJSON5IdentifierStart");function bXt(s){if(Wnt(s)||LP(s))return!0;let o=String.fromCharCode(s);return uXt.test(o)}t(bXt,"isJSON5IdentifierPart");var HPe=class{static{t(this,"Tokenizer")}#e;#r;#t;#n;#s;#m;#c;#u;#f;#p;#a;constructor(o,f){this.#r=o,this.#e={...mXt,...f},this.#t=new qPe(o),this.#n=this.#e.mode==="json5",this.#s=this.#e.mode!=="json",this.#m=this.#e.ranges,this.#u=this.#n?Noe.has.bind(Noe):kV.has.bind(kV),this.#f=this.#n?$Pe.has.bind($Pe):()=>!1,this.#p=this.#n?d=>d===120:()=>!1,this.#a=this.#n?znt.has.bind(znt):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 Ioe(this.#t.locate())}#d(o,f,d,y){let x=d.offset+f,P=this.#e.ranges?{range:[d.offset,x]}:void 0;return{type:o,loc:{start:d,end:y||{line:d.line,column:d.column+f,offset:x}},...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(),!bXt(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.#n?(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.#n&&o===43){if(o=this.#t.peek(),this.#n&&(o===73||o===78)){this.#t.next();let d=this.#y(o);return d!==_Xt&&d!==pXt&&this.#i(o),f+d.length}LP(o)||this.#i(o),this.#t.next(),f++}if(o===48)if(o=this.#t.peek(),this.#n&&(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 LP(o)&&this.#i(o);else if(!this.#n||o!==46)for(gXt(o)||this.#i(o),o=this.#t.peek();LP(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();LP(o);)this.#t.next(),f++,d++,o=this.#t.peek();!this.#n&&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()),LP(o)||(this.#t.next(),this.#i(o));LP(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 g_.EOF;let f=this.#t.locate(),d=String.fromCharCode(o);if(this.#n)if(Poe.has(d))this.#c=this.#d(Poe.get(d),1,f);else if(Wnt(o)){let y=this.#y(o);Poe.has(y)?this.#c=this.#d(Poe.get(y),y.length,f):this.#c=this.#d("Identifier",y.length,f)}else if(vXt(o)){let y=this.#v(o);this.#c=this.#d("Number",y,f)}else if($nt(o,this.#n)){let y=this.#b(o),x=this.#t.locate();this.#c=this.#d("String",y,f,{line:x.line,column:x.column+1,offset:x.offset+1})}else if(o===47&&this.#s){let y=this.#C(o),x=this.#t.locate();this.#c=this.#d(y.multiline?"BlockComment":"LineComment",y.length,f,{line:x.line,column:x.column+1,offset:x.offset+1})}else this.#i(o);else if(Aoe.has(d))this.#c=this.#d(Aoe.get(d),1,f);else if(yXt(o)){let y=this.#y(o);hXt.has(y)||this.#o(y,f),this.#c=this.#d(Aoe.get(y),y.length,f)}else if(Jnt(o)){let y=this.#v(o);this.#c=this.#d("Number",y,f)}else if($nt(o,this.#n)){let y=this.#b(o);this.#c=this.#d("String",y,f)}else if(o===47&&this.#s){let y=this.#C(o),x=this.#t.locate();this.#c=this.#d(y.multiline?"BlockComment":"LineComment",y.length,f,{line:x.line,column:x.column+1,offset:x.offset+1})}else this.#i(o);return g_[this.#c.type]}get token(){return this.#c}};var fT={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}}},SXt={mode:"json",ranges:!1,tokens:!1,allowTrailingCommas:!1};function TXt(s,o,f=!1){let d="",y=s.indexOf("\\"),x=0;for(;y>=0;){d+=s.slice(x,y);let P=s.charAt(y+1),F=P.charCodeAt(0);if(f&&Noe.has(F))d+=Noe.get(F),x=y+2;else if(kV.has(F))d+=kV.get(F),x=y+2;else if(P==="u"){let W=s.slice(y+2,y+6);if(W.length<4||/[^0-9a-f]/i.test(W))throw new RP(`Invalid unicode escape \\u${W}.`,{line:o.loc.start.line,column:o.loc.start.column+y,offset:o.loc.start.offset+y});d+=String.fromCharCode(parseInt(W,16)),x=y+6}else if(f&&P==="x"){let W=s.slice(y+2,y+4);if(W.length<2||/[^0-9a-f]/i.test(W))throw new RP(`Invalid hex escape \\x${W}.`,{line:o.loc.start.line,column:o.loc.start.column+y,offset:o.loc.start.offset+y});d+=String.fromCharCode(parseInt(W,16)),x=y+4}else if(f&&$Pe.has(F))x=y+2,P==="\r"&&s.charAt(x)===`
|
|
570
570
|
`&&x++;else if(f)d+=P,x=y+2;else throw new RP(`Invalid escape \\${P}.`,{line:o.loc.start.line,column:o.loc.start.column+y,offset:o.loc.start.offset+y});y=s.indexOf("\\",x)}return d+=s.slice(x),d}t(TXt,"getStringValue");function xXt(s,o,f=!1){switch(o.type){case"Boolean":return s==="true";case"Number":return Number(s);case"String":return TXt(s.slice(1,-1),o,f);default:throw new TypeError(`Unknown token type "${o.type}.`)}}t(xXt,"getLiteralValue");function qnt(s,o){o=Object.freeze({...SXt,...o});let f=[],d=new HPe(s,{mode:o.mode,ranges:o.ranges}),y=o.mode==="json5",x=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>=g_.LineComment?F():wr}t(F,"nextSkipComments");let W=o.mode==="json"?P:F;function G(wr,gr){if(wr!==gr)throw new lO(d.token)}t(G,"assertTokenType");function ge(wr,gr){if(!gr.includes(wr))throw new lO(d.token)}t(ge,"assertTokenTypes");function ue(wr,gr){return o.ranges?{range:[wr.offset,gr.offset]}:void 0}t(ue,"createRange");function ae(wr){let gr=d.token,fs=ue(gr.loc.start,gr.loc.end),bi=xXt(s.slice(gr.loc.start.offset,gr.loc.end.offset),gr,y),Ci={loc:{start:{...gr.loc.start},end:{...gr.loc.end}},...fs};switch(wr){case g_.String:return fT.string(bi,Ci);case g_.Number:return fT.number(bi,Ci);case g_.Boolean:return fT.boolean(bi,Ci);default:throw new TypeError(`Unknown token type ${gr.type}.`)}}t(ae,"createLiteralNode");function tt(wr){let gr=ue(wr.loc.start,wr.loc.end),fs=s.slice(wr.loc.start.offset,wr.loc.end.offset),go={loc:{start:{...wr.loc.start},end:{...wr.loc.end}},...gr};if(wr.type!=="Identifier"){let Ci="";return(fs[0]==="+"||fs[0]==="-")&&(Ci=fs[0]),fT[fs.includes("NaN")?"nan":"infinity"](Ci,go)}return fT.identifier(fs,go)}t(tt,"createJSON5IdentifierNode");function Ue(wr){let gr=ue(wr.loc.start,wr.loc.end);return fT.null({loc:{start:{...wr.loc.start},end:{...wr.loc.end}},...gr})}t(Ue,"createNullNode");function je(wr){y?ge(wr,[g_.String,g_.Identifier,g_.Number]):G(wr,g_.String);let gr=d.token,fs=wr===g_.String?ae(wr):tt(gr);if(y&&(fs.type==="NaN"||fs.type==="Infinity")){if(fs.sign!=="")throw new lO(d.token);fs=fT.identifier(fs.type,{loc:fs.loc,...ue(fs.loc.start,fs.loc.end)})}wr=W(),G(wr,g_.Colon);let bi=Ir(),go=ue(fs.loc.start,bi.loc.end);return fT.member(fs,bi,{loc:{start:{...fs.loc.start},end:{...bi.loc.end}},...go})}t(je,"parseProperty");function jt(wr){G(wr,g_.LBrace);let gr=d.token,fs=[],bi=W();if(bi!==g_.RBrace)do{if(fs.push(je(bi)),bi=W(),!bi)throw new Ioe(fs[fs.length-1].loc.end);if(bi===g_.Comma){if(bi=W(),x&&bi===g_.RBrace)break}else break}while(bi);G(bi,g_.RBrace);let go=d.token,Ci=ue(gr.loc.start,go.loc.end);return fT.object(fs,{loc:{start:{...gr.loc.start},end:{...go.loc.end}},...Ci})}t(jt,"parseObject");function Bt(wr){G(wr,g_.LBracket);let gr=d.token,fs=[],bi=W();if(bi!==g_.RBracket)do{let Op=Ir(bi);if(fs.push(fT.element(Op,{loc:Op.loc})),bi=W(),bi===g_.Comma){if(bi=W(),x&&bi===g_.RBracket)break}else break}while(bi);G(bi,g_.RBracket);let go=d.token,Ci=ue(gr.loc.start,go.loc.end);return fT.array(fs,{loc:{start:{...gr.loc.start},end:{...go.loc.end}},...Ci})}t(Bt,"parseArray");function Ir(wr){wr=wr??W();let gr=d.token;switch(wr){case g_.String:case g_.Boolean:return ae(wr);case g_.Number:if(y){let fs=s.slice(gr.loc.start.offset,gr.loc.end.offset);if((fs[0]==="+"||fs[0]==="-")&&(fs=fs.slice(1)),fs==="NaN"||fs==="Infinity")return tt(gr)}return ae(wr);case g_.Null:return Ue(gr);case g_.LBrace:return jt(wr);case g_.LBracket:return Bt(wr);default:throw new lO(gr)}}t(Ir,"parseValue");let Sn=Ir();if(W())throw new lO(d.token);let Nn={loc:{start:{line:1,column:1,offset:0},end:{...Sn.loc.end}}};return o.tokens&&(Nn.tokens=f),o.ranges&&(Nn.range=[Nn.loc.start.offset,Nn.loc.end.offset]),fT.document(Sn,Nn)}t(qnt,"parse");var EXt=new Map([["Document",["body"]],["Object",["members"]],["Member",["name","value"]],["Element",["value"]],["Array",["elements"]],["String",[]],["Number",[]],["Boolean",[]],["Null",[]],["NaN",[]],["Infinity",[]],["Identifier",[]]]);function Vnt(s){return s&&typeof s=="object"}t(Vnt,"isObject");function CXt(s){return Vnt(s)&&typeof s.type=="string"}t(CXt,"isNode");function kXt(s,o){function f(d,y){typeof o.enter=="function"&&o.enter(d,y);for(let x of EXt.get(d.type)){let P=d[x];Vnt(P)&&(Array.isArray(P)?P.forEach(F=>f(F,d)):CXt(P)&&f(P,d))}typeof o.exit=="function"&&o.exit(d,y)}t(f,"visitNode"),f(s)}t(kXt,"traverse");function Hnt(s,o=()=>!0){let f=[];return kXt(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(Hnt,"iterator");import wXt from"node:fs/promises";var wV=t((s,o)=>s.split(/\r?\n/)[o-1],"getFileLineContent"),Ooe=t(async s=>{try{return await wXt.readFile(s,"utf-8")}catch{return}},"getSchemaContent"),DV=t(async s=>{try{return qnt(s)}catch(o){if(o.column&&o.line&&o.message){let f=wV(s,o.line);return{column:o.column,line:o.line,length:void 0,lineText:f}}return}},"getSchemaAST");var Gnt=t(async(s,o,f)=>{try{if(s.length===0)return;for(let d of s){let y=await Ooe(d),x=await DXt(y,d,o,f);if(x)return x}}catch{}},"getRouteLocationByValue"),DXt=t(async(s,o,f,d)=>{try{if(!s)return;let y=null,x=await DV(s);if(x){for(let{node:P}of Hnt(x))if(P.value&&P.value===f){y=P.loc;break}if(y!==null){let P=wV(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 Ynt from"node:fs/promises";import bE from"node:path";var GPe="schemas",YPe=".oas.json";var uO=t(async s=>(await Ynt.readdir(s)).map(f=>bE.join(s,f)).filter(f=>f.endsWith(YPe)).sort(),"getOpenApiFilesByAlphabetical"),J9=t(async s=>{let o=bE.resolve(s,"config");return(await Ynt.readdir(o)).filter(d=>d.endsWith(YPe)).length>=1},"oasFileInProject");function PV(s,o,f,d,y,x,P){if(x.has(f))return;let F;try{F=d.get(f)}catch(Ue){throw new w1({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 W=Loe(f),G=bE.basename(W,bE.extname(W)),ge=f.indexOf("#"),ue=ge>=0?f.substring(0,ge):f,ae=ge>=0?f.substring(ge+1):"",tt=d.get(ue);if(ae){let Ue=ae.split("/").filter(Boolean);for(let je of Ue)if(tt=tt[je],tt===void 0)throw new Error(`Cannot resolve JSON pointer: ${ae}`)}if(tt&&typeof tt=="object"&&"$ref"in tt&&typeof tt.$ref=="string"&&!tt.$ref.startsWith("#")){let Ue=bE.resolve(bE.dirname(ue),tt.$ref);if(W=Ue,G=bE.basename(W,bE.extname(W)),ue=Ue,x.has(ue)){let jt=x.get(ue);if(jt===void 0)throw new Error(`Expected to find ${ue} in refsVisited map`);x.set(f,jt);return}let je=y.length;x.set(f,je),x.set(ue,je),y.push(ue),Foe(W,G,F,d,y,x,P)}else x.set(f,y.length),y.push(f),Foe(Loe(f),o,F,d,y,x,P)}t(PV,"chaseRefs");function Foe(s,o,f,d,y,x,P){if(Array.isArray(f))for(let F of f)Foe(s,o,F,d,y,x,P);else if(typeof f=="object")for(let F in f){if(F==="$ref"){let W=f[F];P&&(f[F]=P(o,W,s)),PV(s,o,qN(s,W),d,y,x,P)}Foe(s,o,f[F],d,y,x,P)}}t(Foe,"lookForRefs");function qN(s,o){let f=o.indexOf("#");return f>=0?`${bE.resolve(s,o.substring(0,f))}${o.substring(f)}`:bE.resolve(bE.dirname(s),o)}t(qN,"getFullyQualifiedRefName");function Loe(s){let o=s.indexOf("#");return o>=0?s.substring(0,o):s}t(Loe,"getFilePathNameFromRefName");import ple from"node:path";var Roe=class s{static{t(this,"ContextData")}static#e;#r;constructor(o){this.#r=o}get(o){return s.get(o,this.#r)}static get(o,f){return s.#e||(s.#e=new WeakMap),s.#e.get(o)?.get(f)}set(o,f){s.set(o,this.#r,f)}static set(o,f,d){s.#e||(s.#e=new WeakMap);let y=s.#e.get(o);y||(y=new Map),y.set(f,d),s.#e.set(o,y)}};var okr=new Roe(Symbol("ai-gateway-app-configuration"));function PXt(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 ge=s.charAt(G),ue=ge.charCodeAt(0);if(o[ue]!==255)throw new TypeError(ge+" is ambiguous");o[ue]=G}let f=s.length,d=s.charAt(0),y=Math.log(f)/Math.log(256),x=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 ge=0,ue=0,ae=0,tt=G.length;for(;ae!==tt&&G[ae]===0;)ae++,ge++;let Ue=(tt-ae)*x+1>>>0,je=new Uint8Array(Ue);for(;ae!==tt;){let Ir=G[ae],Sn=0;for(let rn=Ue-1;(Ir!==0||Sn<ue)&&rn!==-1;rn--,Sn++)Ir+=256*je[rn]>>>0,je[rn]=Ir%f>>>0,Ir=Ir/f>>>0;if(Ir!==0)throw new Error("Non-zero carry");ue=Sn,ae++}let jt=Ue-ue;for(;jt!==Ue&&je[jt]===0;)jt++;let Bt=d.repeat(ge);for(;jt<Ue;++jt)Bt+=s.charAt(je[jt]);return Bt}t(P,"encode");function F(G){if(typeof G!="string")throw new TypeError("Expected String");if(G.length===0)return new Uint8Array;let ge=0,ue=0,ae=0;for(;G[ge]===d;)ue++,ge++;let tt=(G.length-ge)*y+1>>>0,Ue=new Uint8Array(tt);for(;ge<G.length;){let Ir=G.charCodeAt(ge);if(Ir>255)return;let Sn=o[Ir];if(Sn===255)return;let rn=0;for(let Nn=tt-1;(Sn!==0||rn<ae)&&Nn!==-1;Nn--,rn++)Sn+=f*Ue[Nn]>>>0,Ue[Nn]=Sn%256>>>0,Sn=Sn/256>>>0;if(Sn!==0)throw new Error("Non-zero carry");ae=rn,ge++}let je=tt-ae;for(;je!==tt&&Ue[je]===0;)je++;let jt=new Uint8Array(ue+(tt-je)),Bt=ue;for(;je!==tt;)jt[Bt++]=Ue[je++];return jt}t(F,"decodeUnsafe");function W(G){let ge=F(G);if(ge)return ge;throw new Error("Non-base"+f+" character")}return t(W,"decode"),{encode:P,decodeUnsafe:F,decode:W}}t(PXt,"base");var Knt=PXt;var AXt="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Moe=Knt(AXt);var Xnt="x-real-ip",KPe="true-client-ip";var Znt="zp-local-service";var joe=class extends Error{static{t(this,"SystemError")}constructor(o,f){super(o,f),this.name="InternalError"}},MP=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 NXt=!1;function W9(s,o){return{open:`\x1B[${s.join(";")}m`,close:`\x1B[${o}m`,regexp:new RegExp(`\\x1b\\[${o}m`,"g")}}t(W9,"code");function q9(s,o){return NXt?`${o.open}${s.replace(o.regexp,o.open)}${o.close}`:s}t(q9,"run");function IXt(s){return q9(s,W9([31],39))}t(IXt,"red");function OXt(s){return q9(s,W9([32],39))}t(OXt,"green");function FXt(s){return q9(s,W9([33],39))}t(FXt,"yellow");function LXt(s){return q9(s,W9([34],39))}t(LXt,"blue");function RXt(s){return q9(s,W9([35],39))}t(RXt,"magenta");function MXt(s){return q9(s,W9([36],39))}t(MXt,"cyan");var hkr=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 Qnt=[IXt,OXt,FXt,LXt,RXt,MXt];function jXt(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(jXt,"hashCode");function eit(s){let o=Math.abs(jXt(s));return Qnt[o%Qnt.length]}t(eit,"generateColor");import{inspect as BXt}from"node:util";function tit(s,o,...f){let d=0,y=f.length,x=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)?x+=" "+P:x+=" "+s(P);return x}t(tit,"format");var rit=t((s,...o)=>tit(BXt,s,o),"format");var XPe=class{static{t(this,"Debugger")}manager;ns;color;last;enabled;constructor(o,f){this.manager=o,this.ns=f,this.color=eit(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=rit(f,...o);let x=`${this.color(this.ns)} ${f} ${this.color(`+${y}ms`)}`;console.log(x),this.last=Date.now()}},ZPe=class{static{t(this,"DebugManager")}debuggers;enabled;constructor(o){this.debuggers=new Map,this.enabled=o??[]}};function UXt(s){return!s||s.length===0?[]:(s=s.replace(/\s/g,"").replace(/\*/g,".+"),s.split(",").map(o=>new RegExp(`^${o}$`)))}t(UXt,"extract");var Boe;function Uoe(s){Boe||(Boe=new ZPe(UXt(process.env.DEBUG)));let o=new XPe(Boe,s);return Boe.debuggers.set(s,o),Object.assign(o.log.bind(o),{self:o})}t(Uoe,"debug");var VN=Uoe("zuplo:runtime:external-service");function zXt(){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(zXt,"getServiceAuth");async function nit(s,o){let f=".proxy",d=".tunnel";if(typeof s=="string"){let y=new URL(s),x=y.hostname;if(x.endsWith(f)){let jt=x.slice(0,-f.length),Bt=new URL(`http://${jt}${y.pathname}${y.search}`);VN(`Routing to proxy: ${Bt.toString()}`);let Ir=o??{};return AV(Bt.toString(),Ir)}let P=x.endsWith(d),F=x.indexOf(".")===-1;if(!(P||F))throw new MP(`Invalid service hostname suffix: ${x}. Use .proxy for proxy routing, .tunnel for explicit tunnel routing, or no suffix for default tunnel routing.`);let G=P?x.slice(0,-d.length):x,ge=zXt();if(!ge)throw VN("There is no external service auth configured for this zup."),new MP("There are no external services configured for this zup.");VN(`Using external service auth. ClientId: ${ge.clientId})`);let ue=o??{},ae=new Headers(ue.headers||{});ae.set("CF-Access-Client-Id",ge.clientId),ae.set("CF-Access-Client-Secret",ge.clientSecret),ue.headers=ae;let tt;if(ge.customServiceMapping?.[G])tt=`https://${ge.customServiceMapping[G]}`;else if(Cm.instance.useLegacyServiceRouting)tt=`https://${G}.zuptunnel.com`;else{VN("Using sha256 service routing");let jt=Cm.instance.build;if(jt.ACCOUNT_NAME&&jt.PROJECT_NAME&&jt.ENVIRONMENT_TYPE){let Bt=await $Xt(G,jt.ACCOUNT_NAME,jt.PROJECT_NAME,jt.ENVIRONMENT_TYPE),Ir=sit(jt.ENVIRONMENT_TYPE),Sn=await QPe(`${jt.ACCOUNT_NAME}-${jt.PROJECT_NAME}-${Ir}`);Sn==="40d7ad502f5d743997999594c177184a00161a77865423511f3a1ea21eb5a5e"||Sn==="d05bffe8fa91a300187d2cf43e8aa4a56bd809c442ae10d1ee49af7d29a5a11"?tt=`https://${Bt}.zuptunnel.com`:tt=`https://${Bt}.t.zuplo.app`}else throw VN("Cannot use sha256 service routing, missing build variables"),new MP("Failed to generate fully qualified tunnel url.")}let Ue=new URL(`${tt}${y.pathname}${y.search}`);VN(`Calling external service: ${Ue.toString()}`);let je=await AV(Ue.toString(),ue);if(je.status===403&&je.headers.get("cf-access-domain")!==null)throw NV.console.error("403 Forbidden when calling external service.",{clientId:ge.clientId,tunnelHost:tt}),new MP("Could not connect to secure tunnel.");return je}else throw VN("Cannot call external service with Request object"),new MP("Currently, we only support fetch(<some_string>, ...).")}t(nit,"externalServiceHandler");async function iit(s,o){if(typeof s=="string"){let f=new URL(s),d=f.hostname,y=o??{},x=`http://${d}.zuplo.svc.cluster.local:9000`,P=new URL(`${x}${f.pathname}${f.search}`),F=new Headers(y.headers||{});return F.set(Znt,d),y.headers=F,await AV(P.toString(),y)}else throw new MP("Currently, we only support fetch(<some_string>, ...).")}t(iit,"clusterServiceHandler");async function $Xt(s,o,f,d){let y=s.toLowerCase(),x=o.toLowerCase(),P=f.toLowerCase(),F=sit(d);VN(`Hashing service name: ${x}-${y}.${x}-${P}-${F}`);let W=await QPe(`${x}-${y}`),G=await QPe(`${x}-${P}-${F}`);return`${W}.${G}`}t($Xt,"hashServiceName");async function QPe(s){let o=new TextEncoder().encode(s),f=await crypto.subtle.digest("SHA-256",o);return Array.from(new Uint8Array(f)).map(x=>x.toString(16).padStart(2,"0")).join("").slice(0,-1)}t(QPe,"hashSegment");function sit(s){let o=s.toLowerCase();switch(o){case"production":case"preview":return o;default:return"working-copy"}}t(sit,"sanitizeEnvironmentType");var eAe=new Map;eAe.set("service:",nit);eAe.set("local:",iit);var AV=globalThis.fetch;function tAe(s,o){let{transformedInit:f,mtlsCertificate:d}=JXt(o);if(typeof s=="string"){let y=new URL(s),x=eAe.get(y.protocol);return x?x(s,f):ait(s,f,d)}else return ait(s,f,d)}t(tAe,"internalFetch");globalThis.fetch=tAe;function ait(s,o,f){if(!f)return AV(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(ait,"performFetch");var JXt=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 WXt={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:tAe},NV=WXt;var rAe="2025-02-06",oit=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 cit(s={}){let{runtime:o="cloudflare"}=s;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:rAe,ENVIRONMENT_TYPE:"mock-environment-type",GIT_SHA:void 0,IS_LOCAL_DEVELOPMENT:!1,COMPATIBILITY_FLAGS:oit[rAe]},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:o,__ZUPLO_AUTH_API_JWT:"",ZUPLO_SERVICE_BUCKET_ID:"bckt_mock"}})}t(cit,"getMockEnvironment");var qXt=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function VXt(s,o){let f=s.__ZUPLO_TRUSTED_IP_HEADER?.trim();if(!f)return o?KPe:Xnt;if(!qXt.test(f))throw new joe(`__ZUPLO_TRUSTED_IP_HEADER is set to '${f}', which is not a valid HTTP header name. Header names may only contain the RFC 9110 token characters (letters, digits, and !#$%&'*+-.^_\`|~) - spaces, colons and tabs are not allowed. Set it to a valid header name such as '${KPe}' or 'cf-connecting-ip'.`);return f.toLowerCase()}t(VXt,"resolveTrustedIpHeader");var Cm=class s{static{t(this,"Environment")}config;#e;static#r;static#t=!1;static initialize(o){s.#r||(s.#r=new s(o),s.#t=!0)}static get instance(){return s.#t||(NV.console.debug("Environment has not been initialized. This is okay when running tests, a mock environment will be used."),s.#r??=cit()),s.#r}constructor({build:o,runtime:f}){let d;try{if(f.ZUPLO_SYSTEM_CONFIGURATIONS){let y=new TextDecoder().decode(Moe.decode(f.ZUPLO_SYSTEM_CONFIGURATIONS)),x=JSON.parse(y);for(let P of Object.keys(x))f[P]||(f[P]=x[P])}if(f.__ZUPLO_CONFIG){let y=atob(f.__ZUPLO_CONFIG);d=JSON.parse(y)}}catch(y){NV.console.error("Failed to parse runtime configuration",y)}this.config=d??{},this.build=o,this.runtime=f,this.instanceId=crypto.randomUUID(),this.#e=VXt(f,this.isCloudflare)}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.runtime.__ZUPLO_EDGE_API_URL??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 trustedIpHeader(){return this.#e}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 HXt=["ZUPLO_USER_LOGGER_DATA_DOG_API_KEY","ZUPLO_USER_LOGGER_DATA_DOG_URL","ZUPLO_LOG_LEVEL","ZUPLO_HANDLER_WRITE_LOG_LEVEL"];function lit(s){return s.startsWith("__ZUPLO")||s.startsWith("ZUPLO_")?!HXt.includes(s)&&!s.startsWith("ZUPLO_PUBLIC_"):s.startsWith("ZUDOKU_")?!s.startsWith("ZUDOKU_PUBLIC_"):!1}t(lit,"isRestrictedEnvVariableName");function uit(s){return!!s.startsWith("ZUPLO_")}t(uit,"isZuploReadableEnvVariableName");var nwr=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(!(lit(f)&&!uit(f)))return Cm.instance.runtime[f]}});function IV(s,o,f){return`_${jP(`${s}_${o}_${f}`)}`}t(IV,"getRawOperationDataIdentifierName");function nAe(s,o,f,d){return`_${jP(s.toLowerCase())}_${o.toLowerCase()}_${f.toLowerCase()}_${d.toLowerCase()}`}t(nAe,"getIdForParameterSchema");function iAe(s,o,f){return`_${jP(s.toLowerCase())}_${o.toLowerCase()}_rb_${jP(f.toLowerCase())}`}t(iAe,"getIdForRequestBodySchema");function OV(s,o){return`_${jP(s)}_${jP(o)}`}t(OV,"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 aAe={};Utt(aAe,{UnsafePathError:()=>zoe,deleteFolder:()=>oZt,dirExists:()=>sAe,fileExists:()=>XXt,getParentDirFilename:()=>iZt,isNotFileOrDirectory:()=>QXt,listFolderContents:()=>pit,listFolders:()=>tZt,mkDirTemp:()=>ZXt,mkdirForFilePathIfNotExits:()=>rZt,mkdirIfNotExists:()=>dit,safePath:()=>nZt,tarFolder:()=>sZt,untarFile:()=>aZt});import{spawn as fit}from"node:child_process";import{randomUUID as GXt}from"node:crypto";import HN from"node:fs/promises";import{platform as YXt,tmpdir as KXt}from"node:os";import I1 from"node:path";var _it=[".git","node_modules",".yarn",".DS_Store"];async function XXt(s){try{return(await HN.stat(s)).isFile()}catch{return!1}}t(XXt,"fileExists");async function ZXt(){let s=process.env.BUILD_FILE_PATH??KXt(),o=GXt().replaceAll("-",""),f=I1.join(s,o);return await HN.mkdir(f,{recursive:!0}),f}t(ZXt,"mkDirTemp");async function sAe(s){try{return(await HN.stat(s)).isDirectory()}catch{return!1}}t(sAe,"dirExists");async function QXt(s){try{return await HN.stat(s),!1}catch{return!0}}t(QXt,"isNotFileOrDirectory");function eZt(s,o){let f=I1.sep==="\\"?"\\\\":I1.sep,d=new RegExp(`(.*)(${f}${o})$|(.*)(${o}${f})`),y=s.match(d);if(!y)return"";let x=s.split(y[0]);return x[1]===""?"":I1.join(I1.sep,x[1])}t(eZt,"getParentDirectory");async function tZt(s){if(!await sAe(s))return[];let o=await HN.readdir(s,{withFileTypes:!0}),f=[];for await(let d of o)_it.includes(d.name)||d.isDirectory()&&f.push(d.name);return f}t(tZt,"listFolders");async function pit(s,o,f=!0){let d=eZt(s,o),y=await HN.readdir(s,{withFileTypes:!0}),x=[];for await(let P of y)if(!_it.includes(P.name)||!f)if(P.isDirectory()){let F=await pit(I1.join(s,P.name),o,f);x.push(...F)}else x.push(I1.join(d,P.name));return x}t(pit,"listFolderContents");var dit=t(async s=>{await HN.mkdir(s,{recursive:!0})},"mkdirIfNotExists"),rZt=t(async s=>{let o=I1.dirname(s);return dit(o)},"mkdirForFilePathIfNotExits"),zoe=class extends Error{static{t(this,"UnsafePathError")}};function nZt(s){let o=I1.normalize(s),f=t(d=>{let y=I1.normalize(d),x=process.platform==="win32",P=!1;if(x?P=y.toLowerCase().startsWith(o.toLowerCase()):P=y.startsWith(o),!P)throw new zoe("Resolved path is not part of the project.");return y},"ensureSafePath");return{resolve:t((...d)=>f(I1.resolve(...d)),"resolve")}}t(nZt,"safePath");function iZt(s){return I1.join(I1.basename(I1.dirname(s)),I1.basename(s))}t(iZt,"getParentDirFilename");async function sZt({folderPath:s,outputTarPath:o,exclude:f=["node_modules",".git","dist"],logger:d}){let y=[],x=[],P;try{await new Promise((F,W)=>{let G=fit("tar",[...f.flatMap(ge=>["--exclude",ge]),...YXt()!=="darwin"?["--warning=no-file-changed"]:[],"-cvf",o,"-C",s,"."]);G.stdout.on("data",ge=>{let ue=ge.toString().trim();ue.length>0&&y.push(ue.trim())}),G.stderr.on("data",ge=>{let ue=ge.toString().trim();ue.length>0&&x.push(ue.trim())}),G.on("close",ge=>{P=ge,ge===0?F():W(new Error(`tar process exited with code ${ge}`))}),G.on("error",ge=>{W(ge)})})}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)?x+=" "+P:x+=" "+s(P);return x}t(tit,"format");var rit=t((s,...o)=>tit(BXt,s,o),"format");var XPe=class{static{t(this,"Debugger")}manager;ns;color;last;enabled;constructor(o,f){this.manager=o,this.ns=f,this.color=eit(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=rit(f,...o);let x=`${this.color(this.ns)} ${f} ${this.color(`+${y}ms`)}`;console.log(x),this.last=Date.now()}},ZPe=class{static{t(this,"DebugManager")}debuggers;enabled;constructor(o){this.debuggers=new Map,this.enabled=o??[]}};function UXt(s){return!s||s.length===0?[]:(s=s.replace(/\s/g,"").replace(/\*/g,".+"),s.split(",").map(o=>new RegExp(`^${o}$`)))}t(UXt,"extract");var Boe;function Uoe(s){Boe||(Boe=new ZPe(UXt(process.env.DEBUG)));let o=new XPe(Boe,s);return Boe.debuggers.set(s,o),Object.assign(o.log.bind(o),{self:o})}t(Uoe,"debug");var VN=Uoe("zuplo:runtime:external-service");function zXt(){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(zXt,"getServiceAuth");async function nit(s,o){let f=".proxy",d=".tunnel";if(typeof s=="string"){let y=new URL(s),x=y.hostname;if(x.endsWith(f)){let jt=x.slice(0,-f.length),Bt=new URL(`http://${jt}${y.pathname}${y.search}`);VN(`Routing to proxy: ${Bt.toString()}`);let Ir=o??{};return AV(Bt.toString(),Ir)}let P=x.endsWith(d),F=x.indexOf(".")===-1;if(!(P||F))throw new MP(`Invalid service hostname suffix: ${x}. Use .proxy for proxy routing, .tunnel for explicit tunnel routing, or no suffix for default tunnel routing.`);let G=P?x.slice(0,-d.length):x,ge=zXt();if(!ge)throw VN("There is no external service auth configured for this zup."),new MP("There are no external services configured for this zup.");VN(`Using external service auth. ClientId: ${ge.clientId})`);let ue=o??{},ae=new Headers(ue.headers||{});ae.set("CF-Access-Client-Id",ge.clientId),ae.set("CF-Access-Client-Secret",ge.clientSecret),ue.headers=ae;let tt;if(ge.customServiceMapping?.[G])tt=`https://${ge.customServiceMapping[G]}`;else if(Cm.instance.useLegacyServiceRouting)tt=`https://${G}.zuptunnel.com`;else{VN("Using sha256 service routing");let jt=Cm.instance.build;if(jt.ACCOUNT_NAME&&jt.PROJECT_NAME&&jt.ENVIRONMENT_TYPE){let Bt=await $Xt(G,jt.ACCOUNT_NAME,jt.PROJECT_NAME,jt.ENVIRONMENT_TYPE),Ir=sit(jt.ENVIRONMENT_TYPE),Sn=await QPe(`${jt.ACCOUNT_NAME}-${jt.PROJECT_NAME}-${Ir}`);Sn==="40d7ad502f5d743997999594c177184a00161a77865423511f3a1ea21eb5a5e"||Sn==="d05bffe8fa91a300187d2cf43e8aa4a56bd809c442ae10d1ee49af7d29a5a11"?tt=`https://${Bt}.zuptunnel.com`:tt=`https://${Bt}.t.zuplo.app`}else throw VN("Cannot use sha256 service routing, missing build variables"),new MP("Failed to generate fully qualified tunnel url.")}let Ue=new URL(`${tt}${y.pathname}${y.search}`);VN(`Calling external service: ${Ue.toString()}`);let je=await AV(Ue.toString(),ue);if(je.status===403&&je.headers.get("cf-access-domain")!==null)throw NV.console.error("403 Forbidden when calling external service.",{clientId:ge.clientId,tunnelHost:tt}),new MP("Could not connect to secure tunnel.");return je}else throw VN("Cannot call external service with Request object"),new MP("Currently, we only support fetch(<some_string>, ...).")}t(nit,"externalServiceHandler");async function iit(s,o){if(typeof s=="string"){let f=new URL(s),d=f.hostname,y=o??{},x=`http://${d}.zuplo.svc.cluster.local:9000`,P=new URL(`${x}${f.pathname}${f.search}`),F=new Headers(y.headers||{});return F.set(Znt,d),y.headers=F,await AV(P.toString(),y)}else throw new MP("Currently, we only support fetch(<some_string>, ...).")}t(iit,"clusterServiceHandler");async function $Xt(s,o,f,d){let y=s.toLowerCase(),x=o.toLowerCase(),P=f.toLowerCase(),F=sit(d);VN(`Hashing service name: ${x}-${y}.${x}-${P}-${F}`);let W=await QPe(`${x}-${y}`),G=await QPe(`${x}-${P}-${F}`);return`${W}.${G}`}t($Xt,"hashServiceName");async function QPe(s){let o=new TextEncoder().encode(s),f=await crypto.subtle.digest("SHA-256",o);return Array.from(new Uint8Array(f)).map(x=>x.toString(16).padStart(2,"0")).join("").slice(0,-1)}t(QPe,"hashSegment");function sit(s){let o=s.toLowerCase();switch(o){case"production":case"preview":return o;default:return"working-copy"}}t(sit,"sanitizeEnvironmentType");var eAe=new Map;eAe.set("service:",nit);eAe.set("local:",iit);var AV=globalThis.fetch;function tAe(s,o){let{transformedInit:f,mtlsCertificate:d}=JXt(o);if(typeof s=="string"){let y=new URL(s),x=eAe.get(y.protocol);return x?x(s,f):ait(s,f,d)}else return ait(s,f,d)}t(tAe,"internalFetch");globalThis.fetch=tAe;function ait(s,o,f){if(!f)return AV(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(ait,"performFetch");var JXt=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 WXt={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:tAe},NV=WXt;var rAe="2025-02-06",oit=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 cit(s={}){let{runtime:o="cloudflare"}=s;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:rAe,ENVIRONMENT_TYPE:"mock-environment-type",GIT_SHA:void 0,IS_LOCAL_DEVELOPMENT:!1,COMPATIBILITY_FLAGS:oit[rAe]},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:o,__ZUPLO_AUTH_API_JWT:"",ZUPLO_SERVICE_BUCKET_ID:"bckt_mock"}})}t(cit,"getMockEnvironment");var qXt=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function VXt(s,o){let f=s.__ZUPLO_TRUSTED_IP_HEADER?.trim();if(!f)return o?KPe:Xnt;if(!qXt.test(f))throw new joe(`__ZUPLO_TRUSTED_IP_HEADER is set to '${f}', which is not a valid HTTP header name. Header names may only contain the RFC 9110 token characters (letters, digits, and !#$%&'*+-.^_\`|~) - spaces, colons and tabs are not allowed. Set it to a valid header name such as '${KPe}' or 'cf-connecting-ip'.`);return f.toLowerCase()}t(VXt,"resolveTrustedIpHeader");var Cm=class s{static{t(this,"Environment")}config;#e;static#r;static#t=!1;static initialize(o){s.#r||(s.#r=new s(o),s.#t=!0)}static get instance(){return s.#t||(NV.console.debug("Environment has not been initialized. This is okay when running tests, a mock environment will be used."),s.#r??=cit()),s.#r}constructor({build:o,runtime:f}){let d;try{if(f.ZUPLO_SYSTEM_CONFIGURATIONS){let y=new TextDecoder().decode(Moe.decode(f.ZUPLO_SYSTEM_CONFIGURATIONS)),x=JSON.parse(y);for(let P of Object.keys(x))f[P]||(f[P]=x[P])}if(f.__ZUPLO_CONFIG){let y=atob(f.__ZUPLO_CONFIG);d=JSON.parse(y)}}catch(y){NV.console.error("Failed to parse runtime configuration",y)}this.config=d??{},this.build=o,this.runtime=f,this.instanceId=crypto.randomUUID(),this.#e=VXt(f,this.isCloudflare)}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.runtime.__ZUPLO_EDGE_API_URL??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 trustedIpHeader(){return this.#e}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 budgetRulesCaptureDisabled(){return this.runtime.__ZUPLO_BUDGET_RULES_CAPTURE==="off"}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 HXt=["ZUPLO_USER_LOGGER_DATA_DOG_API_KEY","ZUPLO_USER_LOGGER_DATA_DOG_URL","ZUPLO_LOG_LEVEL","ZUPLO_HANDLER_WRITE_LOG_LEVEL"];function lit(s){return s.startsWith("__ZUPLO")||s.startsWith("ZUPLO_")?!HXt.includes(s)&&!s.startsWith("ZUPLO_PUBLIC_"):s.startsWith("ZUDOKU_")?!s.startsWith("ZUDOKU_PUBLIC_"):!1}t(lit,"isRestrictedEnvVariableName");function uit(s){return!!s.startsWith("ZUPLO_")}t(uit,"isZuploReadableEnvVariableName");var nwr=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(!(lit(f)&&!uit(f)))return Cm.instance.runtime[f]}});function IV(s,o,f){return`_${jP(`${s}_${o}_${f}`)}`}t(IV,"getRawOperationDataIdentifierName");function nAe(s,o,f,d){return`_${jP(s.toLowerCase())}_${o.toLowerCase()}_${f.toLowerCase()}_${d.toLowerCase()}`}t(nAe,"getIdForParameterSchema");function iAe(s,o,f){return`_${jP(s.toLowerCase())}_${o.toLowerCase()}_rb_${jP(f.toLowerCase())}`}t(iAe,"getIdForRequestBodySchema");function OV(s,o){return`_${jP(s)}_${jP(o)}`}t(OV,"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 aAe={};Utt(aAe,{UnsafePathError:()=>zoe,deleteFolder:()=>oZt,dirExists:()=>sAe,fileExists:()=>XXt,getParentDirFilename:()=>iZt,isNotFileOrDirectory:()=>QXt,listFolderContents:()=>pit,listFolders:()=>tZt,mkDirTemp:()=>ZXt,mkdirForFilePathIfNotExits:()=>rZt,mkdirIfNotExists:()=>dit,safePath:()=>nZt,tarFolder:()=>sZt,untarFile:()=>aZt});import{spawn as fit}from"node:child_process";import{randomUUID as GXt}from"node:crypto";import HN from"node:fs/promises";import{platform as YXt,tmpdir as KXt}from"node:os";import I1 from"node:path";var _it=[".git","node_modules",".yarn",".DS_Store"];async function XXt(s){try{return(await HN.stat(s)).isFile()}catch{return!1}}t(XXt,"fileExists");async function ZXt(){let s=process.env.BUILD_FILE_PATH??KXt(),o=GXt().replaceAll("-",""),f=I1.join(s,o);return await HN.mkdir(f,{recursive:!0}),f}t(ZXt,"mkDirTemp");async function sAe(s){try{return(await HN.stat(s)).isDirectory()}catch{return!1}}t(sAe,"dirExists");async function QXt(s){try{return await HN.stat(s),!1}catch{return!0}}t(QXt,"isNotFileOrDirectory");function eZt(s,o){let f=I1.sep==="\\"?"\\\\":I1.sep,d=new RegExp(`(.*)(${f}${o})$|(.*)(${o}${f})`),y=s.match(d);if(!y)return"";let x=s.split(y[0]);return x[1]===""?"":I1.join(I1.sep,x[1])}t(eZt,"getParentDirectory");async function tZt(s){if(!await sAe(s))return[];let o=await HN.readdir(s,{withFileTypes:!0}),f=[];for await(let d of o)_it.includes(d.name)||d.isDirectory()&&f.push(d.name);return f}t(tZt,"listFolders");async function pit(s,o,f=!0){let d=eZt(s,o),y=await HN.readdir(s,{withFileTypes:!0}),x=[];for await(let P of y)if(!_it.includes(P.name)||!f)if(P.isDirectory()){let F=await pit(I1.join(s,P.name),o,f);x.push(...F)}else x.push(I1.join(d,P.name));return x}t(pit,"listFolderContents");var dit=t(async s=>{await HN.mkdir(s,{recursive:!0})},"mkdirIfNotExists"),rZt=t(async s=>{let o=I1.dirname(s);return dit(o)},"mkdirForFilePathIfNotExits"),zoe=class extends Error{static{t(this,"UnsafePathError")}};function nZt(s){let o=I1.normalize(s),f=t(d=>{let y=I1.normalize(d),x=process.platform==="win32",P=!1;if(x?P=y.toLowerCase().startsWith(o.toLowerCase()):P=y.startsWith(o),!P)throw new zoe("Resolved path is not part of the project.");return y},"ensureSafePath");return{resolve:t((...d)=>f(I1.resolve(...d)),"resolve")}}t(nZt,"safePath");function iZt(s){return I1.join(I1.basename(I1.dirname(s)),I1.basename(s))}t(iZt,"getParentDirFilename");async function sZt({folderPath:s,outputTarPath:o,exclude:f=["node_modules",".git","dist"],logger:d}){let y=[],x=[],P;try{await new Promise((F,W)=>{let G=fit("tar",[...f.flatMap(ge=>["--exclude",ge]),...YXt()!=="darwin"?["--warning=no-file-changed"]:[],"-cvf",o,"-C",s,"."]);G.stdout.on("data",ge=>{let ue=ge.toString().trim();ue.length>0&&y.push(ue.trim())}),G.stderr.on("data",ge=>{let ue=ge.toString().trim();ue.length>0&&x.push(ue.trim())}),G.on("close",ge=>{P=ge,ge===0?F():W(new Error(`tar process exited with code ${ge}`))}),G.on("error",ge=>{W(ge)})})}catch(F){throw new Error("Failed to tar folder",{cause:F})}finally{d.info({stdout:y.join(`
|
|
572
572
|
`),stderr:x.join(`
|
|
573
573
|
`),exitCode:P},"Tar process logs")}}t(sZt,"tarFolder");async function aZt({tarFilePath:s,outputDir:o,logger:f}){let d=[],y=[],x;try{await new Promise((P,F)=>{let W=fit("sh",["-c",`tar -xvf ${s} -C ${o};`]);W.stdout.on("data",G=>{let ge=G.toString().trim();ge.length>0&&d.push(ge.trim())}),W.stderr.on("data",G=>{let ge=G.toString().trim();ge.length>0&&y.push(ge.trim())}),W.on("close",G=>{x=G,G===0?P():F(new Error(`tar process exited with code ${G}`))}),W.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(`
|
package/index.minified.js
CHANGED
|
@@ -568,7 +568,7 @@ globstar while`,s,ue,o,ae,tt),this.matchOne(s.slice(ue),o.slice(ae),f))return th
|
|
|
568
568
|
`],[102,"\f"],[114,"\r"],[116," "]]),Ioe=new Map([...wV,[118,"\v"],[48,"\0"]]),IXt=new Map([['"','"'],["\\","\\"],["/","/"],["\b","b"],[`
|
|
569
569
|
`,"n"],["\f","f"],["\r","r"],[" ","t"]]),okr=new Map([...IXt,["\v","v"],["\0","0"],["\u2028","u2028"],["\u2029","u2029"]]),Noe=new Map([["[","LBracket"],["]","RBracket"],["{","LBrace"],["}","RBrace"],[":","Colon"],[",","Comma"],[DXt,"Boolean"],[PXt,"Boolean"],[AXt,"Null"]]),Aoe=new Map([...Noe,["NaN","Number"],[NXt,"Number"]]),GPe=new Set([10,13,8232,8233]),BP=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}},YPe=class extends BP{static{t(this,"UnexpectedChar")}constructor(o,f){super(`Unexpected character '${String.fromCharCode(o)}' found.`,f)}},KPe=class extends BP{static{t(this,"UnexpectedIdentifier")}constructor(o,f){super(`Unexpected identifier '${o}' found.`,f)}},fO=class extends BP{static{t(this,"UnexpectedToken")}constructor(o){super(`Unexpected token ${o.type} found.`,o.loc.start)}},Ooe=class extends BP{static{t(this,"UnexpectedEOF")}constructor(o){super("Unexpected end of input found.",o)}},OXt=/[\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]/,FXt=/[\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]/,LXt=13,Hnt=10,XPe=class{static{t(this,"CharCodeReader")}#e="";#r=1;#t=0;#n=-1;#s=!1;#m=-1;#c=!1;constructor(o){this.#e=o}#u(){this.#c||(this.#t++,this.#n++,this.#m=-1,this.#c=!0)}locate(){return{line:this.#r,column:this.#t,offset:this.#n}}next(){if(this.#n>=this.#e.length-1)return this.#u(),-1;this.#n++;let o=this.#e.charCodeAt(this.#n);return this.#s?(this.#r++,this.#t=1,this.#s=!1):this.#t++,o===LXt?(this.#s=!0,this.peek()===Hnt&&this.#n++):o===Hnt&&(this.#s=!0),this.#m=o,o}peek(){return this.#n===this.#e.length-1?-1:this.#e.charCodeAt(this.#n+1)}match(o){return o(this.peek())?(this.next(),!0):!1}current(){return this.#m}},RXt="Infinity",MXt="NaN",jXt=new Set([116,102,110]),ZPe=new Set([32,9,10,13]),Gnt=new Set([...ZPe,11,12,160,8232,8233,65279,160,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288]),BXt={mode:"json",ranges:!1},UXt=new Set(["true","false","null"]),g_={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 jP(s){return s>=48&&s<=57}t(jP,"isDigit");function HPe(s){return jP(s)||s>=65&&s<=70||s>=97&&s<=102}t(HPe,"isHexDigit");function zXt(s){return s>=49&&s<=57}t(zXt,"isPositiveDigit");function $Xt(s){return jXt.has(s)}t($Xt,"isKeywordStart");function Knt(s){return jP(s)||s===46||s===45}t(Knt,"isNumberStart");function JXt(s){return Knt(s)||s===43}t(JXt,"isJSON5NumberStart");function Ynt(s,o){return s===34||o&&s===39}t(Ynt,"isStringStart");function Xnt(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 OXt.test(o)}t(Xnt,"isJSON5IdentifierStart");function WXt(s){if(Xnt(s)||jP(s))return!0;let o=String.fromCharCode(s);return FXt.test(o)}t(WXt,"isJSON5IdentifierPart");var QPe=class{static{t(this,"Tokenizer")}#e;#r;#t;#n;#s;#m;#c;#u;#f;#p;#a;constructor(o,f){this.#r=o,this.#e={...BXt,...f},this.#t=new XPe(o),this.#n=this.#e.mode==="json5",this.#s=this.#e.mode!=="json",this.#m=this.#e.ranges,this.#u=this.#n?Ioe.has.bind(Ioe):wV.has.bind(wV),this.#f=this.#n?GPe.has.bind(GPe):()=>!1,this.#p=this.#n?d=>d===120:()=>!1,this.#a=this.#n?Gnt.has.bind(Gnt):ZPe.has.bind(ZPe)}#i(o,f=this.#t.locate()){throw new YPe(o,f)}#o(o,f=this.#t.locate()){throw new KPe(o,f)}#h(){throw new Ooe(this.#t.locate())}#d(o,f,d,y){let x=d.offset+f,P=this.#e.ranges?{range:[d.offset,x]}:void 0;return{type:o,loc:{start:d,end:y||{line:d.line,column:d.column+f,offset:x}},...P}}#_(o){let f="",d;for(let y=0;y<o;y++){if(d=this.#t.peek(),HPe(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(),!WXt(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.#n?(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.#n&&o===43){if(o=this.#t.peek(),this.#n&&(o===73||o===78)){this.#t.next();let d=this.#y(o);return d!==RXt&&d!==MXt&&this.#i(o),f+d.length}jP(o)||this.#i(o),this.#t.next(),f++}if(o===48)if(o=this.#t.peek(),this.#n&&(o===120||o===88)){this.#t.next(),f++,o=this.#t.peek(),HPe(o)||(this.#t.next(),this.#i(o));do this.#t.next(),f++,o=this.#t.peek();while(HPe(o))}else jP(o)&&this.#i(o);else if(!this.#n||o!==46)for(zXt(o)||this.#i(o),o=this.#t.peek();jP(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();jP(o);)this.#t.next(),f++,d++,o=this.#t.peek();!this.#n&&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()),jP(o)||(this.#t.next(),this.#i(o));jP(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 g_.EOF;let f=this.#t.locate(),d=String.fromCharCode(o);if(this.#n)if(Aoe.has(d))this.#c=this.#d(Aoe.get(d),1,f);else if(Xnt(o)){let y=this.#y(o);Aoe.has(y)?this.#c=this.#d(Aoe.get(y),y.length,f):this.#c=this.#d("Identifier",y.length,f)}else if(JXt(o)){let y=this.#v(o);this.#c=this.#d("Number",y,f)}else if(Ynt(o,this.#n)){let y=this.#b(o),x=this.#t.locate();this.#c=this.#d("String",y,f,{line:x.line,column:x.column+1,offset:x.offset+1})}else if(o===47&&this.#s){let y=this.#C(o),x=this.#t.locate();this.#c=this.#d(y.multiline?"BlockComment":"LineComment",y.length,f,{line:x.line,column:x.column+1,offset:x.offset+1})}else this.#i(o);else if(Noe.has(d))this.#c=this.#d(Noe.get(d),1,f);else if($Xt(o)){let y=this.#y(o);UXt.has(y)||this.#o(y,f),this.#c=this.#d(Noe.get(y),y.length,f)}else if(Knt(o)){let y=this.#v(o);this.#c=this.#d("Number",y,f)}else if(Ynt(o,this.#n)){let y=this.#b(o);this.#c=this.#d("String",y,f)}else if(o===47&&this.#s){let y=this.#C(o),x=this.#t.locate();this.#c=this.#d(y.multiline?"BlockComment":"LineComment",y.length,f,{line:x.line,column:x.column+1,offset:x.offset+1})}else this.#i(o);return g_[this.#c.type]}get token(){return this.#c}};var _T={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}}},qXt={mode:"json",ranges:!1,tokens:!1,allowTrailingCommas:!1};function VXt(s,o,f=!1){let d="",y=s.indexOf("\\"),x=0;for(;y>=0;){d+=s.slice(x,y);let P=s.charAt(y+1),F=P.charCodeAt(0);if(f&&Ioe.has(F))d+=Ioe.get(F),x=y+2;else if(wV.has(F))d+=wV.get(F),x=y+2;else if(P==="u"){let W=s.slice(y+2,y+6);if(W.length<4||/[^0-9a-f]/i.test(W))throw new BP(`Invalid unicode escape \\u${W}.`,{line:o.loc.start.line,column:o.loc.start.column+y,offset:o.loc.start.offset+y});d+=String.fromCharCode(parseInt(W,16)),x=y+6}else if(f&&P==="x"){let W=s.slice(y+2,y+4);if(W.length<2||/[^0-9a-f]/i.test(W))throw new BP(`Invalid hex escape \\x${W}.`,{line:o.loc.start.line,column:o.loc.start.column+y,offset:o.loc.start.offset+y});d+=String.fromCharCode(parseInt(W,16)),x=y+4}else if(f&&GPe.has(F))x=y+2,P==="\r"&&s.charAt(x)===`
|
|
570
570
|
`&&x++;else if(f)d+=P,x=y+2;else throw new BP(`Invalid escape \\${P}.`,{line:o.loc.start.line,column:o.loc.start.column+y,offset:o.loc.start.offset+y});y=s.indexOf("\\",x)}return d+=s.slice(x),d}t(VXt,"getStringValue");function HXt(s,o,f=!1){switch(o.type){case"Boolean":return s==="true";case"Number":return Number(s);case"String":return VXt(s.slice(1,-1),o,f);default:throw new TypeError(`Unknown token type "${o.type}.`)}}t(HXt,"getLiteralValue");function Znt(s,o){o=Object.freeze({...qXt,...o});let f=[],d=new QPe(s,{mode:o.mode,ranges:o.ranges}),y=o.mode==="json5",x=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>=g_.LineComment?F():wr}t(F,"nextSkipComments");let W=o.mode==="json"?P:F;function H(wr,gr){if(wr!==gr)throw new fO(d.token)}t(H,"assertTokenType");function ge(wr,gr){if(!gr.includes(wr))throw new fO(d.token)}t(ge,"assertTokenTypes");function ue(wr,gr){return o.ranges?{range:[wr.offset,gr.offset]}:void 0}t(ue,"createRange");function ae(wr){let gr=d.token,fs=ue(gr.loc.start,gr.loc.end),bi=HXt(s.slice(gr.loc.start.offset,gr.loc.end.offset),gr,y),Ci={loc:{start:{...gr.loc.start},end:{...gr.loc.end}},...fs};switch(wr){case g_.String:return _T.string(bi,Ci);case g_.Number:return _T.number(bi,Ci);case g_.Boolean:return _T.boolean(bi,Ci);default:throw new TypeError(`Unknown token type ${gr.type}.`)}}t(ae,"createLiteralNode");function tt(wr){let gr=ue(wr.loc.start,wr.loc.end),fs=s.slice(wr.loc.start.offset,wr.loc.end.offset),go={loc:{start:{...wr.loc.start},end:{...wr.loc.end}},...gr};if(wr.type!=="Identifier"){let Ci="";return(fs[0]==="+"||fs[0]==="-")&&(Ci=fs[0]),_T[fs.includes("NaN")?"nan":"infinity"](Ci,go)}return _T.identifier(fs,go)}t(tt,"createJSON5IdentifierNode");function Ue(wr){let gr=ue(wr.loc.start,wr.loc.end);return _T.null({loc:{start:{...wr.loc.start},end:{...wr.loc.end}},...gr})}t(Ue,"createNullNode");function je(wr){y?ge(wr,[g_.String,g_.Identifier,g_.Number]):H(wr,g_.String);let gr=d.token,fs=wr===g_.String?ae(wr):tt(gr);if(y&&(fs.type==="NaN"||fs.type==="Infinity")){if(fs.sign!=="")throw new fO(d.token);fs=_T.identifier(fs.type,{loc:fs.loc,...ue(fs.loc.start,fs.loc.end)})}wr=W(),H(wr,g_.Colon);let bi=Ir(),go=ue(fs.loc.start,bi.loc.end);return _T.member(fs,bi,{loc:{start:{...fs.loc.start},end:{...bi.loc.end}},...go})}t(je,"parseProperty");function jt(wr){H(wr,g_.LBrace);let gr=d.token,fs=[],bi=W();if(bi!==g_.RBrace)do{if(fs.push(je(bi)),bi=W(),!bi)throw new Ooe(fs[fs.length-1].loc.end);if(bi===g_.Comma){if(bi=W(),x&&bi===g_.RBrace)break}else break}while(bi);H(bi,g_.RBrace);let go=d.token,Ci=ue(gr.loc.start,go.loc.end);return _T.object(fs,{loc:{start:{...gr.loc.start},end:{...go.loc.end}},...Ci})}t(jt,"parseObject");function Bt(wr){H(wr,g_.LBracket);let gr=d.token,fs=[],bi=W();if(bi!==g_.RBracket)do{let Op=Ir(bi);if(fs.push(_T.element(Op,{loc:Op.loc})),bi=W(),bi===g_.Comma){if(bi=W(),x&&bi===g_.RBracket)break}else break}while(bi);H(bi,g_.RBracket);let go=d.token,Ci=ue(gr.loc.start,go.loc.end);return _T.array(fs,{loc:{start:{...gr.loc.start},end:{...go.loc.end}},...Ci})}t(Bt,"parseArray");function Ir(wr){wr=wr??W();let gr=d.token;switch(wr){case g_.String:case g_.Boolean:return ae(wr);case g_.Number:if(y){let fs=s.slice(gr.loc.start.offset,gr.loc.end.offset);if((fs[0]==="+"||fs[0]==="-")&&(fs=fs.slice(1)),fs==="NaN"||fs==="Infinity")return tt(gr)}return ae(wr);case g_.Null:return Ue(gr);case g_.LBrace:return jt(wr);case g_.LBracket:return Bt(wr);default:throw new fO(gr)}}t(Ir,"parseValue");let Sn=Ir();if(W())throw new fO(d.token);let Nn={loc:{start:{line:1,column:1,offset:0},end:{...Sn.loc.end}}};return o.tokens&&(Nn.tokens=f),o.ranges&&(Nn.range=[Nn.loc.start.offset,Nn.loc.end.offset]),_T.document(Sn,Nn)}t(Znt,"parse");var GXt=new Map([["Document",["body"]],["Object",["members"]],["Member",["name","value"]],["Element",["value"]],["Array",["elements"]],["String",[]],["Number",[]],["Boolean",[]],["Null",[]],["NaN",[]],["Infinity",[]],["Identifier",[]]]);function Qnt(s){return s&&typeof s=="object"}t(Qnt,"isObject");function YXt(s){return Qnt(s)&&typeof s.type=="string"}t(YXt,"isNode");function KXt(s,o){function f(d,y){typeof o.enter=="function"&&o.enter(d,y);for(let x of GXt.get(d.type)){let P=d[x];Qnt(P)&&(Array.isArray(P)?P.forEach(F=>f(F,d)):YXt(P)&&f(P,d))}typeof o.exit=="function"&&o.exit(d,y)}t(f,"visitNode"),f(s)}t(KXt,"traverse");function eit(s,o=()=>!0){let f=[];return KXt(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(eit,"iterator");import XXt from"node:fs/promises";var DV=t((s,o)=>s.split(/\r?\n/)[o-1],"getFileLineContent"),Foe=t(async s=>{try{return await XXt.readFile(s,"utf-8")}catch{return}},"getSchemaContent"),PV=t(async s=>{try{return Znt(s)}catch(o){if(o.column&&o.line&&o.message){let f=DV(s,o.line);return{column:o.column,line:o.line,length:void 0,lineText:f}}return}},"getSchemaAST");var tit=t(async(s,o,f)=>{try{if(s.length===0)return;for(let d of s){let y=await Foe(d),x=await ZXt(y,d,o,f);if(x)return x}}catch{}},"getRouteLocationByValue"),ZXt=t(async(s,o,f,d)=>{try{if(!s)return;let y=null,x=await PV(s);if(x){for(let{node:P}of eit(x))if(P.value&&P.value===f){y=P.loc;break}if(y!==null){let P=DV(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 rit from"node:fs/promises";import TE from"node:path";var eAe="schemas",tAe=".oas.json";var _O=t(async s=>(await rit.readdir(s)).map(f=>TE.join(s,f)).filter(f=>f.endsWith(tAe)).sort(),"getOpenApiFilesByAlphabetical"),J9=t(async s=>{let o=TE.resolve(s,"config");return(await rit.readdir(o)).filter(d=>d.endsWith(tAe)).length>=1},"oasFileInProject");function AV(s,o,f,d,y,x,P){if(x.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 W=Roe(f),H=TE.basename(W,TE.extname(W)),ge=f.indexOf("#"),ue=ge>=0?f.substring(0,ge):f,ae=ge>=0?f.substring(ge+1):"",tt=d.get(ue);if(ae){let Ue=ae.split("/").filter(Boolean);for(let je of Ue)if(tt=tt[je],tt===void 0)throw new Error(`Cannot resolve JSON pointer: ${ae}`)}if(tt&&typeof tt=="object"&&"$ref"in tt&&typeof tt.$ref=="string"&&!tt.$ref.startsWith("#")){let Ue=TE.resolve(TE.dirname(ue),tt.$ref);if(W=Ue,H=TE.basename(W,TE.extname(W)),ue=Ue,x.has(ue)){let jt=x.get(ue);if(jt===void 0)throw new Error(`Expected to find ${ue} in refsVisited map`);x.set(f,jt);return}let je=y.length;x.set(f,je),x.set(ue,je),y.push(ue),Loe(W,H,F,d,y,x,P)}else x.set(f,y.length),y.push(f),Loe(Roe(f),o,F,d,y,x,P)}t(AV,"chaseRefs");function Loe(s,o,f,d,y,x,P){if(Array.isArray(f))for(let F of f)Loe(s,o,F,d,y,x,P);else if(typeof f=="object")for(let F in f){if(F==="$ref"){let W=f[F];P&&(f[F]=P(o,W,s)),AV(s,o,GN(s,W),d,y,x,P)}Loe(s,o,f[F],d,y,x,P)}}t(Loe,"lookForRefs");function GN(s,o){let f=o.indexOf("#");return f>=0?`${TE.resolve(s,o.substring(0,f))}${o.substring(f)}`:TE.resolve(TE.dirname(s),o)}t(GN,"getFullyQualifiedRefName");function Roe(s){let o=s.indexOf("#");return o>=0?s.substring(0,o):s}t(Roe,"getFilePathNameFromRefName");import dle from"node:path";var Moe=class s{static{t(this,"ContextData")}static#e;#r;constructor(o){this.#r=o}get(o){return s.get(o,this.#r)}static get(o,f){return s.#e||(s.#e=new WeakMap),s.#e.get(o)?.get(f)}set(o,f){s.set(o,this.#r,f)}static set(o,f,d){s.#e||(s.#e=new WeakMap);let y=s.#e.get(o);y||(y=new Map),y.set(f,d),s.#e.set(o,y)}};var Ikr=new Moe(Symbol("ai-gateway-app-configuration"));function QXt(s){if(s.length>=255)throw new TypeError("Alphabet too long");let o=new Uint8Array(256);for(let H=0;H<o.length;H++)o[H]=255;for(let H=0;H<s.length;H++){let ge=s.charAt(H),ue=ge.charCodeAt(0);if(o[ue]!==255)throw new TypeError(ge+" is ambiguous");o[ue]=H}let f=s.length,d=s.charAt(0),y=Math.log(f)/Math.log(256),x=Math.log(256)/Math.log(f);function P(H){if(H instanceof Uint8Array||(ArrayBuffer.isView(H)?H=new Uint8Array(H.buffer,H.byteOffset,H.byteLength):Array.isArray(H)&&(H=Uint8Array.from(H))),!(H instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(H.length===0)return"";let ge=0,ue=0,ae=0,tt=H.length;for(;ae!==tt&&H[ae]===0;)ae++,ge++;let Ue=(tt-ae)*x+1>>>0,je=new Uint8Array(Ue);for(;ae!==tt;){let Ir=H[ae],Sn=0;for(let rn=Ue-1;(Ir!==0||Sn<ue)&&rn!==-1;rn--,Sn++)Ir+=256*je[rn]>>>0,je[rn]=Ir%f>>>0,Ir=Ir/f>>>0;if(Ir!==0)throw new Error("Non-zero carry");ue=Sn,ae++}let jt=Ue-ue;for(;jt!==Ue&&je[jt]===0;)jt++;let Bt=d.repeat(ge);for(;jt<Ue;++jt)Bt+=s.charAt(je[jt]);return Bt}t(P,"encode");function F(H){if(typeof H!="string")throw new TypeError("Expected String");if(H.length===0)return new Uint8Array;let ge=0,ue=0,ae=0;for(;H[ge]===d;)ue++,ge++;let tt=(H.length-ge)*y+1>>>0,Ue=new Uint8Array(tt);for(;ge<H.length;){let Ir=H.charCodeAt(ge);if(Ir>255)return;let Sn=o[Ir];if(Sn===255)return;let rn=0;for(let Nn=tt-1;(Sn!==0||rn<ae)&&Nn!==-1;Nn--,rn++)Sn+=f*Ue[Nn]>>>0,Ue[Nn]=Sn%256>>>0,Sn=Sn/256>>>0;if(Sn!==0)throw new Error("Non-zero carry");ae=rn,ge++}let je=tt-ae;for(;je!==tt&&Ue[je]===0;)je++;let jt=new Uint8Array(ue+(tt-je)),Bt=ue;for(;je!==tt;)jt[Bt++]=Ue[je++];return jt}t(F,"decodeUnsafe");function W(H){let ge=F(H);if(ge)return ge;throw new Error("Non-base"+f+" character")}return t(W,"decode"),{encode:P,decodeUnsafe:F,decode:W}}t(QXt,"base");var nit=QXt;var eZt="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",joe=nit(eZt);var iit="x-real-ip",rAe="true-client-ip";var sit="zp-local-service";var Boe=class extends Error{static{t(this,"SystemError")}constructor(o,f){super(o,f),this.name="InternalError"}},UP=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 tZt=!1;function W9(s,o){return{open:`\x1B[${s.join(";")}m`,close:`\x1B[${o}m`,regexp:new RegExp(`\\x1b\\[${o}m`,"g")}}t(W9,"code");function q9(s,o){return tZt?`${o.open}${s.replace(o.regexp,o.open)}${o.close}`:s}t(q9,"run");function rZt(s){return q9(s,W9([31],39))}t(rZt,"red");function nZt(s){return q9(s,W9([32],39))}t(nZt,"green");function iZt(s){return q9(s,W9([33],39))}t(iZt,"yellow");function sZt(s){return q9(s,W9([34],39))}t(sZt,"blue");function aZt(s){return q9(s,W9([35],39))}t(aZt,"magenta");function oZt(s){return q9(s,W9([36],39))}t(oZt,"cyan");var zkr=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 ait=[rZt,nZt,iZt,sZt,aZt,oZt];function cZt(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(cZt,"hashCode");function oit(s){let o=Math.abs(cZt(s));return ait[o%ait.length]}t(oit,"generateColor");import{inspect as lZt}from"node:util";function cit(s,o,...f){let d=0,y=f.length,x=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)?x+=" "+P:x+=" "+s(P);return x}t(cit,"format");var lit=t((s,...o)=>cit(lZt,s,o),"format");var nAe=class{static{t(this,"Debugger")}manager;ns;color;last;enabled;constructor(o,f){this.manager=o,this.ns=f,this.color=oit(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=lit(f,...o);let x=`${this.color(this.ns)} ${f} ${this.color(`+${y}ms`)}`;console.log(x),this.last=Date.now()}},iAe=class{static{t(this,"DebugManager")}debuggers;enabled;constructor(o){this.debuggers=new Map,this.enabled=o??[]}};function uZt(s){return!s||s.length===0?[]:(s=s.replace(/\s/g,"").replace(/\*/g,".+"),s.split(",").map(o=>new RegExp(`^${o}$`)))}t(uZt,"extract");var Uoe;function zoe(s){Uoe||(Uoe=new iAe(uZt(process.env.DEBUG)));let o=new nAe(Uoe,s);return Uoe.debuggers.set(s,o),Object.assign(o.log.bind(o),{self:o})}t(zoe,"debug");var YN=zoe("zuplo:runtime:external-service");function fZt(){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(fZt,"getServiceAuth");async function uit(s,o){let f=".proxy",d=".tunnel";if(typeof s=="string"){let y=new URL(s),x=y.hostname;if(x.endsWith(f)){let jt=x.slice(0,-f.length),Bt=new URL(`http://${jt}${y.pathname}${y.search}`);YN(`Routing to proxy: ${Bt.toString()}`);let Ir=o??{};return NV(Bt.toString(),Ir)}let P=x.endsWith(d),F=x.indexOf(".")===-1;if(!(P||F))throw new UP(`Invalid service hostname suffix: ${x}. Use .proxy for proxy routing, .tunnel for explicit tunnel routing, or no suffix for default tunnel routing.`);let H=P?x.slice(0,-d.length):x,ge=fZt();if(!ge)throw YN("There is no external service auth configured for this zup."),new UP("There are no external services configured for this zup.");YN(`Using external service auth. ClientId: ${ge.clientId})`);let ue=o??{},ae=new Headers(ue.headers||{});ae.set("CF-Access-Client-Id",ge.clientId),ae.set("CF-Access-Client-Secret",ge.clientSecret),ue.headers=ae;let tt;if(ge.customServiceMapping?.[H])tt=`https://${ge.customServiceMapping[H]}`;else if(Cm.instance.useLegacyServiceRouting)tt=`https://${H}.zuptunnel.com`;else{YN("Using sha256 service routing");let jt=Cm.instance.build;if(jt.ACCOUNT_NAME&&jt.PROJECT_NAME&&jt.ENVIRONMENT_TYPE){let Bt=await _Zt(H,jt.ACCOUNT_NAME,jt.PROJECT_NAME,jt.ENVIRONMENT_TYPE),Ir=_it(jt.ENVIRONMENT_TYPE),Sn=await sAe(`${jt.ACCOUNT_NAME}-${jt.PROJECT_NAME}-${Ir}`);Sn==="40d7ad502f5d743997999594c177184a00161a77865423511f3a1ea21eb5a5e"||Sn==="d05bffe8fa91a300187d2cf43e8aa4a56bd809c442ae10d1ee49af7d29a5a11"?tt=`https://${Bt}.zuptunnel.com`:tt=`https://${Bt}.t.zuplo.app`}else throw YN("Cannot use sha256 service routing, missing build variables"),new UP("Failed to generate fully qualified tunnel url.")}let Ue=new URL(`${tt}${y.pathname}${y.search}`);YN(`Calling external service: ${Ue.toString()}`);let je=await NV(Ue.toString(),ue);if(je.status===403&&je.headers.get("cf-access-domain")!==null)throw IV.console.error("403 Forbidden when calling external service.",{clientId:ge.clientId,tunnelHost:tt}),new UP("Could not connect to secure tunnel.");return je}else throw YN("Cannot call external service with Request object"),new UP("Currently, we only support fetch(<some_string>, ...).")}t(uit,"externalServiceHandler");async function fit(s,o){if(typeof s=="string"){let f=new URL(s),d=f.hostname,y=o??{},x=`http://${d}.zuplo.svc.cluster.local:9000`,P=new URL(`${x}${f.pathname}${f.search}`),F=new Headers(y.headers||{});return F.set(sit,d),y.headers=F,await NV(P.toString(),y)}else throw new UP("Currently, we only support fetch(<some_string>, ...).")}t(fit,"clusterServiceHandler");async function _Zt(s,o,f,d){let y=s.toLowerCase(),x=o.toLowerCase(),P=f.toLowerCase(),F=_it(d);YN(`Hashing service name: ${x}-${y}.${x}-${P}-${F}`);let W=await sAe(`${x}-${y}`),H=await sAe(`${x}-${P}-${F}`);return`${W}.${H}`}t(_Zt,"hashServiceName");async function sAe(s){let o=new TextEncoder().encode(s),f=await crypto.subtle.digest("SHA-256",o);return Array.from(new Uint8Array(f)).map(x=>x.toString(16).padStart(2,"0")).join("").slice(0,-1)}t(sAe,"hashSegment");function _it(s){let o=s.toLowerCase();switch(o){case"production":case"preview":return o;default:return"working-copy"}}t(_it,"sanitizeEnvironmentType");var aAe=new Map;aAe.set("service:",uit);aAe.set("local:",fit);var NV=globalThis.fetch;function oAe(s,o){let{transformedInit:f,mtlsCertificate:d}=pZt(o);if(typeof s=="string"){let y=new URL(s),x=aAe.get(y.protocol);return x?x(s,f):pit(s,f,d)}else return pit(s,f,d)}t(oAe,"internalFetch");globalThis.fetch=oAe;function pit(s,o,f){if(!f)return NV(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(pit,"performFetch");var pZt=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 dZt={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:oAe},IV=dZt;var cAe="2025-02-06",dit=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 mit(s={}){let{runtime:o="cloudflare"}=s;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:cAe,ENVIRONMENT_TYPE:"mock-environment-type",GIT_SHA:void 0,IS_LOCAL_DEVELOPMENT:!1,COMPATIBILITY_FLAGS:dit[cAe]},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:o,__ZUPLO_AUTH_API_JWT:"",ZUPLO_SERVICE_BUCKET_ID:"bckt_mock"}})}t(mit,"getMockEnvironment");var mZt=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function hZt(s,o){let f=s.__ZUPLO_TRUSTED_IP_HEADER?.trim();if(!f)return o?rAe:iit;if(!mZt.test(f))throw new Boe(`__ZUPLO_TRUSTED_IP_HEADER is set to '${f}', which is not a valid HTTP header name. Header names may only contain the RFC 9110 token characters (letters, digits, and !#$%&'*+-.^_\`|~) - spaces, colons and tabs are not allowed. Set it to a valid header name such as '${rAe}' or 'cf-connecting-ip'.`);return f.toLowerCase()}t(hZt,"resolveTrustedIpHeader");var Cm=class s{static{t(this,"Environment")}config;#e;static#r;static#t=!1;static initialize(o){s.#r||(s.#r=new s(o),s.#t=!0)}static get instance(){return s.#t||(IV.console.debug("Environment has not been initialized. This is okay when running tests, a mock environment will be used."),s.#r??=mit()),s.#r}constructor({build:o,runtime:f}){let d;try{if(f.ZUPLO_SYSTEM_CONFIGURATIONS){let y=new TextDecoder().decode(joe.decode(f.ZUPLO_SYSTEM_CONFIGURATIONS)),x=JSON.parse(y);for(let P of Object.keys(x))f[P]||(f[P]=x[P])}if(f.__ZUPLO_CONFIG){let y=atob(f.__ZUPLO_CONFIG);d=JSON.parse(y)}}catch(y){IV.console.error("Failed to parse runtime configuration",y)}this.config=d??{},this.build=o,this.runtime=f,this.instanceId=crypto.randomUUID(),this.#e=hZt(f,this.isCloudflare)}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.runtime.__ZUPLO_EDGE_API_URL??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 trustedIpHeader(){return this.#e}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 gZt=["ZUPLO_USER_LOGGER_DATA_DOG_API_KEY","ZUPLO_USER_LOGGER_DATA_DOG_URL","ZUPLO_LOG_LEVEL","ZUPLO_HANDLER_WRITE_LOG_LEVEL"];function hit(s){return s.startsWith("__ZUPLO")||s.startsWith("ZUPLO_")?!gZt.includes(s)&&!s.startsWith("ZUPLO_PUBLIC_"):s.startsWith("ZUDOKU_")?!s.startsWith("ZUDOKU_PUBLIC_"):!1}t(hit,"isRestrictedEnvVariableName");function git(s){return!!s.startsWith("ZUPLO_")}t(git,"isZuploReadableEnvVariableName");var Dwr=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(!(hit(f)&&!git(f)))return Cm.instance.runtime[f]}});function OV(s,o,f){return`_${zP(`${s}_${o}_${f}`)}`}t(OV,"getRawOperationDataIdentifierName");function lAe(s,o,f,d){return`_${zP(s.toLowerCase())}_${o.toLowerCase()}_${f.toLowerCase()}_${d.toLowerCase()}`}t(lAe,"getIdForParameterSchema");function uAe(s,o,f){return`_${zP(s.toLowerCase())}_${o.toLowerCase()}_rb_${zP(f.toLowerCase())}`}t(uAe,"getIdForRequestBodySchema");function FV(s,o){return`_${zP(s)}_${zP(o)}`}t(FV,"getIdForRefSchema");function zP(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(zP,"sanitizedIdentifierName");var _Ae={};Wtt(_Ae,{UnsafePathError:()=>$oe,deleteFolder:()=>NZt,dirExists:()=>fAe,fileExists:()=>SZt,getParentDirFilename:()=>DZt,isNotFileOrDirectory:()=>xZt,listFolderContents:()=>bit,listFolders:()=>CZt,mkDirTemp:()=>TZt,mkdirForFilePathIfNotExits:()=>kZt,mkdirIfNotExists:()=>Sit,safePath:()=>wZt,tarFolder:()=>PZt,untarFile:()=>AZt});import{spawn as yit}from"node:child_process";import{randomUUID as yZt}from"node:crypto";import KN from"node:fs/promises";import{platform as vZt,tmpdir as bZt}from"node:os";import I1 from"node:path";var vit=[".git","node_modules",".yarn",".DS_Store"];async function SZt(s){try{return(await KN.stat(s)).isFile()}catch{return!1}}t(SZt,"fileExists");async function TZt(){let s=process.env.BUILD_FILE_PATH??bZt(),o=yZt().replaceAll("-",""),f=I1.join(s,o);return await KN.mkdir(f,{recursive:!0}),f}t(TZt,"mkDirTemp");async function fAe(s){try{return(await KN.stat(s)).isDirectory()}catch{return!1}}t(fAe,"dirExists");async function xZt(s){try{return await KN.stat(s),!1}catch{return!0}}t(xZt,"isNotFileOrDirectory");function EZt(s,o){let f=I1.sep==="\\"?"\\\\":I1.sep,d=new RegExp(`(.*)(${f}${o})$|(.*)(${o}${f})`),y=s.match(d);if(!y)return"";let x=s.split(y[0]);return x[1]===""?"":I1.join(I1.sep,x[1])}t(EZt,"getParentDirectory");async function CZt(s){if(!await fAe(s))return[];let o=await KN.readdir(s,{withFileTypes:!0}),f=[];for await(let d of o)vit.includes(d.name)||d.isDirectory()&&f.push(d.name);return f}t(CZt,"listFolders");async function bit(s,o,f=!0){let d=EZt(s,o),y=await KN.readdir(s,{withFileTypes:!0}),x=[];for await(let P of y)if(!vit.includes(P.name)||!f)if(P.isDirectory()){let F=await bit(I1.join(s,P.name),o,f);x.push(...F)}else x.push(I1.join(d,P.name));return x}t(bit,"listFolderContents");var Sit=t(async s=>{await KN.mkdir(s,{recursive:!0})},"mkdirIfNotExists"),kZt=t(async s=>{let o=I1.dirname(s);return Sit(o)},"mkdirForFilePathIfNotExits"),$oe=class extends Error{static{t(this,"UnsafePathError")}};function wZt(s){let o=I1.normalize(s),f=t(d=>{let y=I1.normalize(d),x=process.platform==="win32",P=!1;if(x?P=y.toLowerCase().startsWith(o.toLowerCase()):P=y.startsWith(o),!P)throw new $oe("Resolved path is not part of the project.");return y},"ensureSafePath");return{resolve:t((...d)=>f(I1.resolve(...d)),"resolve")}}t(wZt,"safePath");function DZt(s){return I1.join(I1.basename(I1.dirname(s)),I1.basename(s))}t(DZt,"getParentDirFilename");async function PZt({folderPath:s,outputTarPath:o,exclude:f=["node_modules",".git","dist"],logger:d}){let y=[],x=[],P;try{await new Promise((F,W)=>{let H=yit("tar",[...f.flatMap(ge=>["--exclude",ge]),...vZt()!=="darwin"?["--warning=no-file-changed"]:[],"-cvf",o,"-C",s,"."]);H.stdout.on("data",ge=>{let ue=ge.toString().trim();ue.length>0&&y.push(ue.trim())}),H.stderr.on("data",ge=>{let ue=ge.toString().trim();ue.length>0&&x.push(ue.trim())}),H.on("close",ge=>{P=ge,ge===0?F():W(new Error(`tar process exited with code ${ge}`))}),H.on("error",ge=>{W(ge)})})}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)?x+=" "+P:x+=" "+s(P);return x}t(cit,"format");var lit=t((s,...o)=>cit(lZt,s,o),"format");var nAe=class{static{t(this,"Debugger")}manager;ns;color;last;enabled;constructor(o,f){this.manager=o,this.ns=f,this.color=oit(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=lit(f,...o);let x=`${this.color(this.ns)} ${f} ${this.color(`+${y}ms`)}`;console.log(x),this.last=Date.now()}},iAe=class{static{t(this,"DebugManager")}debuggers;enabled;constructor(o){this.debuggers=new Map,this.enabled=o??[]}};function uZt(s){return!s||s.length===0?[]:(s=s.replace(/\s/g,"").replace(/\*/g,".+"),s.split(",").map(o=>new RegExp(`^${o}$`)))}t(uZt,"extract");var Uoe;function zoe(s){Uoe||(Uoe=new iAe(uZt(process.env.DEBUG)));let o=new nAe(Uoe,s);return Uoe.debuggers.set(s,o),Object.assign(o.log.bind(o),{self:o})}t(zoe,"debug");var YN=zoe("zuplo:runtime:external-service");function fZt(){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(fZt,"getServiceAuth");async function uit(s,o){let f=".proxy",d=".tunnel";if(typeof s=="string"){let y=new URL(s),x=y.hostname;if(x.endsWith(f)){let jt=x.slice(0,-f.length),Bt=new URL(`http://${jt}${y.pathname}${y.search}`);YN(`Routing to proxy: ${Bt.toString()}`);let Ir=o??{};return NV(Bt.toString(),Ir)}let P=x.endsWith(d),F=x.indexOf(".")===-1;if(!(P||F))throw new UP(`Invalid service hostname suffix: ${x}. Use .proxy for proxy routing, .tunnel for explicit tunnel routing, or no suffix for default tunnel routing.`);let H=P?x.slice(0,-d.length):x,ge=fZt();if(!ge)throw YN("There is no external service auth configured for this zup."),new UP("There are no external services configured for this zup.");YN(`Using external service auth. ClientId: ${ge.clientId})`);let ue=o??{},ae=new Headers(ue.headers||{});ae.set("CF-Access-Client-Id",ge.clientId),ae.set("CF-Access-Client-Secret",ge.clientSecret),ue.headers=ae;let tt;if(ge.customServiceMapping?.[H])tt=`https://${ge.customServiceMapping[H]}`;else if(Cm.instance.useLegacyServiceRouting)tt=`https://${H}.zuptunnel.com`;else{YN("Using sha256 service routing");let jt=Cm.instance.build;if(jt.ACCOUNT_NAME&&jt.PROJECT_NAME&&jt.ENVIRONMENT_TYPE){let Bt=await _Zt(H,jt.ACCOUNT_NAME,jt.PROJECT_NAME,jt.ENVIRONMENT_TYPE),Ir=_it(jt.ENVIRONMENT_TYPE),Sn=await sAe(`${jt.ACCOUNT_NAME}-${jt.PROJECT_NAME}-${Ir}`);Sn==="40d7ad502f5d743997999594c177184a00161a77865423511f3a1ea21eb5a5e"||Sn==="d05bffe8fa91a300187d2cf43e8aa4a56bd809c442ae10d1ee49af7d29a5a11"?tt=`https://${Bt}.zuptunnel.com`:tt=`https://${Bt}.t.zuplo.app`}else throw YN("Cannot use sha256 service routing, missing build variables"),new UP("Failed to generate fully qualified tunnel url.")}let Ue=new URL(`${tt}${y.pathname}${y.search}`);YN(`Calling external service: ${Ue.toString()}`);let je=await NV(Ue.toString(),ue);if(je.status===403&&je.headers.get("cf-access-domain")!==null)throw IV.console.error("403 Forbidden when calling external service.",{clientId:ge.clientId,tunnelHost:tt}),new UP("Could not connect to secure tunnel.");return je}else throw YN("Cannot call external service with Request object"),new UP("Currently, we only support fetch(<some_string>, ...).")}t(uit,"externalServiceHandler");async function fit(s,o){if(typeof s=="string"){let f=new URL(s),d=f.hostname,y=o??{},x=`http://${d}.zuplo.svc.cluster.local:9000`,P=new URL(`${x}${f.pathname}${f.search}`),F=new Headers(y.headers||{});return F.set(sit,d),y.headers=F,await NV(P.toString(),y)}else throw new UP("Currently, we only support fetch(<some_string>, ...).")}t(fit,"clusterServiceHandler");async function _Zt(s,o,f,d){let y=s.toLowerCase(),x=o.toLowerCase(),P=f.toLowerCase(),F=_it(d);YN(`Hashing service name: ${x}-${y}.${x}-${P}-${F}`);let W=await sAe(`${x}-${y}`),H=await sAe(`${x}-${P}-${F}`);return`${W}.${H}`}t(_Zt,"hashServiceName");async function sAe(s){let o=new TextEncoder().encode(s),f=await crypto.subtle.digest("SHA-256",o);return Array.from(new Uint8Array(f)).map(x=>x.toString(16).padStart(2,"0")).join("").slice(0,-1)}t(sAe,"hashSegment");function _it(s){let o=s.toLowerCase();switch(o){case"production":case"preview":return o;default:return"working-copy"}}t(_it,"sanitizeEnvironmentType");var aAe=new Map;aAe.set("service:",uit);aAe.set("local:",fit);var NV=globalThis.fetch;function oAe(s,o){let{transformedInit:f,mtlsCertificate:d}=pZt(o);if(typeof s=="string"){let y=new URL(s),x=aAe.get(y.protocol);return x?x(s,f):pit(s,f,d)}else return pit(s,f,d)}t(oAe,"internalFetch");globalThis.fetch=oAe;function pit(s,o,f){if(!f)return NV(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(pit,"performFetch");var pZt=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 dZt={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:oAe},IV=dZt;var cAe="2025-02-06",dit=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 mit(s={}){let{runtime:o="cloudflare"}=s;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:cAe,ENVIRONMENT_TYPE:"mock-environment-type",GIT_SHA:void 0,IS_LOCAL_DEVELOPMENT:!1,COMPATIBILITY_FLAGS:dit[cAe]},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:o,__ZUPLO_AUTH_API_JWT:"",ZUPLO_SERVICE_BUCKET_ID:"bckt_mock"}})}t(mit,"getMockEnvironment");var mZt=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function hZt(s,o){let f=s.__ZUPLO_TRUSTED_IP_HEADER?.trim();if(!f)return o?rAe:iit;if(!mZt.test(f))throw new Boe(`__ZUPLO_TRUSTED_IP_HEADER is set to '${f}', which is not a valid HTTP header name. Header names may only contain the RFC 9110 token characters (letters, digits, and !#$%&'*+-.^_\`|~) - spaces, colons and tabs are not allowed. Set it to a valid header name such as '${rAe}' or 'cf-connecting-ip'.`);return f.toLowerCase()}t(hZt,"resolveTrustedIpHeader");var Cm=class s{static{t(this,"Environment")}config;#e;static#r;static#t=!1;static initialize(o){s.#r||(s.#r=new s(o),s.#t=!0)}static get instance(){return s.#t||(IV.console.debug("Environment has not been initialized. This is okay when running tests, a mock environment will be used."),s.#r??=mit()),s.#r}constructor({build:o,runtime:f}){let d;try{if(f.ZUPLO_SYSTEM_CONFIGURATIONS){let y=new TextDecoder().decode(joe.decode(f.ZUPLO_SYSTEM_CONFIGURATIONS)),x=JSON.parse(y);for(let P of Object.keys(x))f[P]||(f[P]=x[P])}if(f.__ZUPLO_CONFIG){let y=atob(f.__ZUPLO_CONFIG);d=JSON.parse(y)}}catch(y){IV.console.error("Failed to parse runtime configuration",y)}this.config=d??{},this.build=o,this.runtime=f,this.instanceId=crypto.randomUUID(),this.#e=hZt(f,this.isCloudflare)}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.runtime.__ZUPLO_EDGE_API_URL??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 trustedIpHeader(){return this.#e}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 budgetRulesCaptureDisabled(){return this.runtime.__ZUPLO_BUDGET_RULES_CAPTURE==="off"}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 gZt=["ZUPLO_USER_LOGGER_DATA_DOG_API_KEY","ZUPLO_USER_LOGGER_DATA_DOG_URL","ZUPLO_LOG_LEVEL","ZUPLO_HANDLER_WRITE_LOG_LEVEL"];function hit(s){return s.startsWith("__ZUPLO")||s.startsWith("ZUPLO_")?!gZt.includes(s)&&!s.startsWith("ZUPLO_PUBLIC_"):s.startsWith("ZUDOKU_")?!s.startsWith("ZUDOKU_PUBLIC_"):!1}t(hit,"isRestrictedEnvVariableName");function git(s){return!!s.startsWith("ZUPLO_")}t(git,"isZuploReadableEnvVariableName");var Dwr=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(!(hit(f)&&!git(f)))return Cm.instance.runtime[f]}});function OV(s,o,f){return`_${zP(`${s}_${o}_${f}`)}`}t(OV,"getRawOperationDataIdentifierName");function lAe(s,o,f,d){return`_${zP(s.toLowerCase())}_${o.toLowerCase()}_${f.toLowerCase()}_${d.toLowerCase()}`}t(lAe,"getIdForParameterSchema");function uAe(s,o,f){return`_${zP(s.toLowerCase())}_${o.toLowerCase()}_rb_${zP(f.toLowerCase())}`}t(uAe,"getIdForRequestBodySchema");function FV(s,o){return`_${zP(s)}_${zP(o)}`}t(FV,"getIdForRefSchema");function zP(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(zP,"sanitizedIdentifierName");var _Ae={};Wtt(_Ae,{UnsafePathError:()=>$oe,deleteFolder:()=>NZt,dirExists:()=>fAe,fileExists:()=>SZt,getParentDirFilename:()=>DZt,isNotFileOrDirectory:()=>xZt,listFolderContents:()=>bit,listFolders:()=>CZt,mkDirTemp:()=>TZt,mkdirForFilePathIfNotExits:()=>kZt,mkdirIfNotExists:()=>Sit,safePath:()=>wZt,tarFolder:()=>PZt,untarFile:()=>AZt});import{spawn as yit}from"node:child_process";import{randomUUID as yZt}from"node:crypto";import KN from"node:fs/promises";import{platform as vZt,tmpdir as bZt}from"node:os";import I1 from"node:path";var vit=[".git","node_modules",".yarn",".DS_Store"];async function SZt(s){try{return(await KN.stat(s)).isFile()}catch{return!1}}t(SZt,"fileExists");async function TZt(){let s=process.env.BUILD_FILE_PATH??bZt(),o=yZt().replaceAll("-",""),f=I1.join(s,o);return await KN.mkdir(f,{recursive:!0}),f}t(TZt,"mkDirTemp");async function fAe(s){try{return(await KN.stat(s)).isDirectory()}catch{return!1}}t(fAe,"dirExists");async function xZt(s){try{return await KN.stat(s),!1}catch{return!0}}t(xZt,"isNotFileOrDirectory");function EZt(s,o){let f=I1.sep==="\\"?"\\\\":I1.sep,d=new RegExp(`(.*)(${f}${o})$|(.*)(${o}${f})`),y=s.match(d);if(!y)return"";let x=s.split(y[0]);return x[1]===""?"":I1.join(I1.sep,x[1])}t(EZt,"getParentDirectory");async function CZt(s){if(!await fAe(s))return[];let o=await KN.readdir(s,{withFileTypes:!0}),f=[];for await(let d of o)vit.includes(d.name)||d.isDirectory()&&f.push(d.name);return f}t(CZt,"listFolders");async function bit(s,o,f=!0){let d=EZt(s,o),y=await KN.readdir(s,{withFileTypes:!0}),x=[];for await(let P of y)if(!vit.includes(P.name)||!f)if(P.isDirectory()){let F=await bit(I1.join(s,P.name),o,f);x.push(...F)}else x.push(I1.join(d,P.name));return x}t(bit,"listFolderContents");var Sit=t(async s=>{await KN.mkdir(s,{recursive:!0})},"mkdirIfNotExists"),kZt=t(async s=>{let o=I1.dirname(s);return Sit(o)},"mkdirForFilePathIfNotExits"),$oe=class extends Error{static{t(this,"UnsafePathError")}};function wZt(s){let o=I1.normalize(s),f=t(d=>{let y=I1.normalize(d),x=process.platform==="win32",P=!1;if(x?P=y.toLowerCase().startsWith(o.toLowerCase()):P=y.startsWith(o),!P)throw new $oe("Resolved path is not part of the project.");return y},"ensureSafePath");return{resolve:t((...d)=>f(I1.resolve(...d)),"resolve")}}t(wZt,"safePath");function DZt(s){return I1.join(I1.basename(I1.dirname(s)),I1.basename(s))}t(DZt,"getParentDirFilename");async function PZt({folderPath:s,outputTarPath:o,exclude:f=["node_modules",".git","dist"],logger:d}){let y=[],x=[],P;try{await new Promise((F,W)=>{let H=yit("tar",[...f.flatMap(ge=>["--exclude",ge]),...vZt()!=="darwin"?["--warning=no-file-changed"]:[],"-cvf",o,"-C",s,"."]);H.stdout.on("data",ge=>{let ue=ge.toString().trim();ue.length>0&&y.push(ue.trim())}),H.stderr.on("data",ge=>{let ue=ge.toString().trim();ue.length>0&&x.push(ue.trim())}),H.on("close",ge=>{P=ge,ge===0?F():W(new Error(`tar process exited with code ${ge}`))}),H.on("error",ge=>{W(ge)})})}catch(F){throw new Error("Failed to tar folder",{cause:F})}finally{d.info({stdout:y.join(`
|
|
572
572
|
`),stderr:x.join(`
|
|
573
573
|
`),exitCode:P},"Tar process logs")}}t(PZt,"tarFolder");async function AZt({tarFilePath:s,outputDir:o,logger:f}){let d=[],y=[],x;try{await new Promise((P,F)=>{let W=yit("sh",["-c",`tar -xvf ${s} -C ${o};`]);W.stdout.on("data",H=>{let ge=H.toString().trim();ge.length>0&&d.push(ge.trim())}),W.stderr.on("data",H=>{let ge=H.toString().trim();ge.length>0&&y.push(ge.trim())}),W.on("close",H=>{x=H,H===0?P():F(new Error(`tar process exited with code ${H}`))}),W.on("error",H=>{F(H)})})}catch(P){throw new Error("Failed to untar file",{cause:P})}finally{f.info({stdout:d.join(`
|
|
574
574
|
`),stderr:y.join(`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zuplo/core",
|
|
3
|
-
"version": "7.4.
|
|
3
|
+
"version": "7.4.6",
|
|
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": "7.4.
|
|
44
|
-
"@zuplo/otel": "7.4.
|
|
45
|
-
"@zuplo/runtime": "7.4.
|
|
43
|
+
"@zuplo/graphql": "7.4.6",
|
|
44
|
+
"@zuplo/otel": "7.4.6",
|
|
45
|
+
"@zuplo/runtime": "7.4.6",
|
|
46
46
|
"deno": "2.3.1"
|
|
47
47
|
}
|
|
48
48
|
}
|