@zuplo/core 6.70.37 → 6.70.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -568,7 +568,7 @@ globstar while`,s,de,o,ae,Ye),this.matchOne(s.slice(de),o.slice(ae),f))return th
568
568
  `],[102,"\f"],[114,"\r"],[116," "]]),Poe=new Map([...EV,[118,"\v"],[48,"\0"]]),aXt=new Map([[MPe,MPe],["\\","\\"],["/","/"],["\b","b"],[`
569
569
  `,"n"],["\f","f"],["\r","r"],[" ","t"]]),oCr=new Map([...aXt,["\v","v"],["\0","0"],["\u2028","u2028"],["\u2029","u2029"]]),Doe=new Map([[YKt,"LBracket"],[KKt,"RBracket"],[XKt,"LBrace"],[ZKt,"RBrace"],[QKt,"Colon"],[eXt,"Comma"],[tXt,"Boolean"],[rXt,"Boolean"],[nXt,"Null"]]),woe=new Map([...Doe,[iXt,"Number"],[sXt,"Number"]]),jPe=new Set([10,13,8232,8233]),jP=class extends Error{static{t(this,"ErrorWithLocation")}constructor(o,{line:f,column:d,offset:y}){super(`${o} (${f}:${d})`),this.line=f,this.column=d,this.offset=y}},BPe=class extends jP{static{t(this,"UnexpectedChar")}constructor(o,f){super(`Unexpected character '${String.fromCharCode(o)}' found.`,f)}},UPe=class extends jP{static{t(this,"UnexpectedIdentifier")}constructor(o,f){super(`Unexpected identifier '${o}' found.`,f)}},pO=class extends jP{static{t(this,"UnexpectedToken")}constructor(o){super(`Unexpected token ${o.type} found.`,o.loc.start)}},Aoe=class extends jP{static{t(this,"UnexpectedEOF")}constructor(o){super("Unexpected end of input found.",o)}},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]/,cXt=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/,lXt=13,Mnt=10,zPe=class{static{t(this,"CharCodeReader")}#e="";#n=1;#t=0;#r=-1;#s=!1;#m=-1;#c=!1;constructor(o){this.#e=o}#u(){this.#c||(this.#t++,this.#r++,this.#m=-1,this.#c=!0)}locate(){return{line:this.#n,column:this.#t,offset:this.#r}}next(){if(this.#r>=this.#e.length-1)return this.#u(),-1;this.#r++;let o=this.#e.charCodeAt(this.#r);return this.#s?(this.#n++,this.#t=1,this.#s=!1):this.#t++,o===lXt?(this.#s=!0,this.peek()===Mnt&&this.#r++):o===Mnt&&(this.#s=!0),this.#m=o,o}peek(){return this.#r===this.#e.length-1?-1:this.#e.charCodeAt(this.#r+1)}match(o){return o(this.peek())?(this.next(),!0):!1}current(){return this.#m}},uXt="Infinity",fXt="NaN",_Xt=new Set([116,102,110]),$Pe=new Set([32,9,10,13]),jnt=new Set([...$Pe,11,12,160,8232,8233,65279,160,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288]),pXt={mode:"json",ranges:!1},dXt=new Set(["true","false","null"]),y_={EOF:0,Number:1,String:2,Boolean:3,Null:4,NaN:5,Infinity:6,Identifier:7,Colon:20,LBrace:21,RBrace:22,LBracket:23,RBracket:24,Comma:25,LineComment:40,BlockComment:41};function MP(s){return s>=48&&s<=57}t(MP,"isDigit");function RPe(s){return MP(s)||s>=65&&s<=70||s>=97&&s<=102}t(RPe,"isHexDigit");function mXt(s){return s>=49&&s<=57}t(mXt,"isPositiveDigit");function hXt(s){return _Xt.has(s)}t(hXt,"isKeywordStart");function Unt(s){return MP(s)||s===46||s===45}t(Unt,"isNumberStart");function gXt(s){return Unt(s)||s===43}t(gXt,"isJSON5NumberStart");function Bnt(s,o){return s===34||o&&s===39}t(Bnt,"isStringStart");function znt(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(znt,"isJSON5IdentifierStart");function yXt(s){if(znt(s)||MP(s))return!0;let o=String.fromCharCode(s);return cXt.test(o)}t(yXt,"isJSON5IdentifierPart");var JPe=class{static{t(this,"Tokenizer")}#e;#n;#t;#r;#s;#m;#c;#u;#f;#p;#a;constructor(o,f){this.#n=o,this.#e={...pXt,...f},this.#t=new zPe(o),this.#r=this.#e.mode==="json5",this.#s=this.#e.mode!=="json",this.#m=this.#e.ranges,this.#u=this.#r?Poe.has.bind(Poe):EV.has.bind(EV),this.#f=this.#r?jPe.has.bind(jPe):()=>!1,this.#p=this.#r?d=>d===120:()=>!1,this.#a=this.#r?jnt.has.bind(jnt):$Pe.has.bind($Pe)}#i(o,f=this.#t.locate()){throw new BPe(o,f)}#o(o,f=this.#t.locate()){throw new UPe(o,f)}#h(){throw new Aoe(this.#t.locate())}#d(o,f,d,y){let E=d.offset+f,P=this.#e.ranges?{range:[d.offset,E]}:void 0;return{type:o,loc:{start:d,end:y||{line:d.line,column:d.column+f,offset:E}},...P}}#_(o){let f="",d;for(let y=0;y<o;y++){if(d=this.#t.peek(),RPe(d)){this.#t.next(),f+=String.fromCharCode(d);continue}this.#i(d)}return f}#y(o){let f="";do{if(f+=String.fromCharCode(o),o===92&&(o=this.#t.next(),o!==117&&this.#i(o),f+=String.fromCharCode(o),f+=this.#_(4)),o=this.#t.peek(),!yXt(o))break;this.#t.next()}while(!0);return f}#b(o){let f=o,d=1;for(o=this.#t.peek();o!==-1&&o!==f;){if(this.#t.next(),d++,o===92)if(o=this.#t.peek(),this.#u(o)||this.#f(o))this.#t.next(),d++;else if(o===117){this.#t.next(),d++;let y=this.#_(4);d+=y.length}else if(this.#p(o)){this.#t.next(),d++;let y=this.#_(2);d+=y.length}else this.#r?(this.#t.next(),d++):this.#i(o);o=this.#t.peek()}return o===-1&&(this.#t.next(),this.#h()),this.#t.next(),d++,d}#v(o){let f=1;if(o===45||this.#r&&o===43){if(o=this.#t.peek(),this.#r&&(o===73||o===78)){this.#t.next();let d=this.#y(o);return d!==uXt&&d!==fXt&&this.#i(o),f+d.length}MP(o)||this.#i(o),this.#t.next(),f++}if(o===48)if(o=this.#t.peek(),this.#r&&(o===120||o===88)){this.#t.next(),f++,o=this.#t.peek(),RPe(o)||(this.#t.next(),this.#i(o));do this.#t.next(),f++,o=this.#t.peek();while(RPe(o))}else MP(o)&&this.#i(o);else if(!this.#r||o!==46)for(mXt(o)||this.#i(o),o=this.#t.peek();MP(o);)this.#t.next(),f++,o=this.#t.peek();if(o===46){let d=-1;for(this.#t.next(),f++,d++,o=this.#t.peek();MP(o);)this.#t.next(),f++,d++,o=this.#t.peek();!this.#r&&d===0&&(this.#t.next(),o?this.#i(o):this.#h())}if(o===101||o===69)for(this.#t.next(),f++,o=this.#t.peek(),(o===43||o===45)&&(this.#t.next(),f++,o=this.#t.peek()),o===-1&&(this.#t.next(),this.#h()),MP(o)||(this.#t.next(),this.#i(o));MP(o);)this.#t.next(),f++,o=this.#t.peek();return f}#C(o){let f=1;if(o=this.#t.peek(),o===47){do this.#t.next(),f+=1,o=this.#t.peek();while(o>-1&&o!==13&&o!==10);return{length:f,multiline:!1}}if(o===42){for(this.#t.next(),f+=1;o>-1;)if(o=this.#t.peek(),o===42){if(this.#t.next(),f+=1,o=this.#t.peek(),o===47)return this.#t.next(),f+=1,{length:f,multiline:!0}}else this.#t.next(),f+=1;this.#t.next(),this.#h()}this.#t.next(),this.#i(o)}next(){let o=this.#t.next();for(;this.#a(o);)o=this.#t.next();if(o===-1)return y_.EOF;let f=this.#t.locate(),d=String.fromCharCode(o);if(this.#r)if(woe.has(d))this.#c=this.#d(woe.get(d),1,f);else if(znt(o)){let y=this.#y(o);woe.has(y)?this.#c=this.#d(woe.get(y),y.length,f):this.#c=this.#d("Identifier",y.length,f)}else if(gXt(o)){let y=this.#v(o);this.#c=this.#d("Number",y,f)}else if(Bnt(o,this.#r)){let y=this.#b(o),E=this.#t.locate();this.#c=this.#d("String",y,f,{line:E.line,column:E.column+1,offset:E.offset+1})}else if(o===47&&this.#s){let y=this.#C(o),E=this.#t.locate();this.#c=this.#d(y.multiline?"BlockComment":"LineComment",y.length,f,{line:E.line,column:E.column+1,offset:E.offset+1})}else this.#i(o);else if(Doe.has(d))this.#c=this.#d(Doe.get(d),1,f);else if(hXt(o)){let y=this.#y(o);dXt.has(y)||this.#o(y,f),this.#c=this.#d(Doe.get(y),y.length,f)}else if(Unt(o)){let y=this.#v(o);this.#c=this.#d("Number",y,f)}else if(Bnt(o,this.#r)){let y=this.#b(o);this.#c=this.#d("String",y,f)}else if(o===47&&this.#s){let y=this.#C(o),E=this.#t.locate();this.#c=this.#d(y.multiline?"BlockComment":"LineComment",y.length,f,{line:E.line,column:E.column+1,offset:E.offset+1})}else this.#i(o);return y_[this.#c.type]}get token(){return this.#c}};var oT={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}}},vXt={mode:"json",ranges:!1,tokens:!1,allowTrailingCommas:!1};function bXt(s,o,f=!1){let d="",y=s.indexOf("\\"),E=0;for(;y>=0;){d+=s.slice(E,y);let P=s.charAt(y+1),F=P.charCodeAt(0);if(f&&Poe.has(F))d+=Poe.get(F),E=y+2;else if(EV.has(F))d+=EV.get(F),E=y+2;else if(P==="u"){let J=s.slice(y+2,y+6);if(J.length<4||/[^0-9a-f]/i.test(J))throw new jP(`Invalid unicode escape \\u${J}.`,{line:o.loc.start.line,column:o.loc.start.column+y,offset:o.loc.start.offset+y});d+=String.fromCharCode(parseInt(J,16)),E=y+6}else if(f&&P==="x"){let J=s.slice(y+2,y+4);if(J.length<2||/[^0-9a-f]/i.test(J))throw new jP(`Invalid hex escape \\x${J}.`,{line:o.loc.start.line,column:o.loc.start.column+y,offset:o.loc.start.offset+y});d+=String.fromCharCode(parseInt(J,16)),E=y+4}else if(f&&jPe.has(F))E=y+2,P==="\r"&&s.charAt(E)===`
570
570
  `&&E++;else if(f)d+=P,E=y+2;else throw new jP(`Invalid escape \\${P}.`,{line:o.loc.start.line,column:o.loc.start.column+y,offset:o.loc.start.offset+y});y=s.indexOf("\\",E)}return d+=s.slice(E),d}t(bXt,"getStringValue");function SXt(s,o,f=!1){switch(o.type){case"Boolean":return s==="true";case"Number":return Number(s);case"String":return bXt(s.slice(1,-1),o,f);default:throw new TypeError(`Unknown token type "${o.type}.`)}}t(SXt,"getLiteralValue");function $nt(s,o){o=Object.freeze({...vXt,...o});let f=[],d=new JPe(s,{mode:o.mode,ranges:o.ranges}),y=o.mode==="json5",E=o.allowTrailingCommas||y;function P(){let wr=d.next();return wr&&o.tokens&&f.push(d.token),wr}t(P,"nextNoComments");function F(){let wr=d.next();return wr&&o.tokens&&f.push(d.token),wr>=y_.LineComment?F():wr}t(F,"nextSkipComments");let J=o.mode==="json"?P:F;function G(wr,Sr){if(wr!==Sr)throw new pO(d.token)}t(G,"assertTokenType");function Te(wr,Sr){if(!Sr.includes(wr))throw new pO(d.token)}t(Te,"assertTokenTypes");function de(wr,Sr){return o.ranges?{range:[wr.offset,Sr.offset]}:void 0}t(de,"createRange");function ae(wr){let Sr=d.token,us=de(Sr.loc.start,Sr.loc.end),Fi=SXt(s.slice(Sr.loc.start.offset,Sr.loc.end.offset),Sr,y),bi={loc:{start:{...Sr.loc.start},end:{...Sr.loc.end}},...us};switch(wr){case y_.String:return oT.string(Fi,bi);case y_.Number:return oT.number(Fi,bi);case y_.Boolean:return oT.boolean(Fi,bi);default:throw new TypeError(`Unknown token type ${Sr.type}.`)}}t(ae,"createLiteralNode");function Ye(wr){let Sr=de(wr.loc.start,wr.loc.end),us=s.slice(wr.loc.start.offset,wr.loc.end.offset),cc={loc:{start:{...wr.loc.start},end:{...wr.loc.end}},...Sr};if(wr.type!=="Identifier"){let bi="";return(us[0]==="+"||us[0]==="-")&&(bi=us[0]),oT[us.includes("NaN")?"nan":"infinity"](bi,cc)}return oT.identifier(us,cc)}t(Ye,"createJSON5IdentifierNode");function Ue(wr){let Sr=de(wr.loc.start,wr.loc.end);return oT.null({loc:{start:{...wr.loc.start},end:{...wr.loc.end}},...Sr})}t(Ue,"createNullNode");function je(wr){y?Te(wr,[y_.String,y_.Identifier,y_.Number]):G(wr,y_.String);let Sr=d.token,us=wr===y_.String?ae(wr):Ye(Sr);if(y&&(us.type==="NaN"||us.type==="Infinity")){if(us.sign!=="")throw new pO(d.token);us=oT.identifier(us.type,{loc:us.loc,...de(us.loc.start,us.loc.end)})}wr=J(),G(wr,y_.Colon);let Fi=kr(),cc=de(us.loc.start,Fi.loc.end);return oT.member(us,Fi,{loc:{start:{...us.loc.start},end:{...Fi.loc.end}},...cc})}t(je,"parseProperty");function Kt(wr){G(wr,y_.LBrace);let Sr=d.token,us=[],Fi=J();if(Fi!==y_.RBrace)do{if(us.push(je(Fi)),Fi=J(),!Fi)throw new Aoe(us[us.length-1].loc.end);if(Fi===y_.Comma){if(Fi=J(),E&&Fi===y_.RBrace)break}else break}while(Fi);G(Fi,y_.RBrace);let cc=d.token,bi=de(Sr.loc.start,cc.loc.end);return oT.object(us,{loc:{start:{...Sr.loc.start},end:{...cc.loc.end}},...bi})}t(Kt,"parseObject");function Ut(wr){G(wr,y_.LBracket);let Sr=d.token,us=[],Fi=J();if(Fi!==y_.RBracket)do{let Qf=kr(Fi);if(us.push(oT.element(Qf,{loc:Qf.loc})),Fi=J(),Fi===y_.Comma){if(Fi=J(),E&&Fi===y_.RBracket)break}else break}while(Fi);G(Fi,y_.RBracket);let cc=d.token,bi=de(Sr.loc.start,cc.loc.end);return oT.array(us,{loc:{start:{...Sr.loc.start},end:{...cc.loc.end}},...bi})}t(Ut,"parseArray");function kr(wr){wr=wr??J();let Sr=d.token;switch(wr){case y_.String:case y_.Boolean:return ae(wr);case y_.Number:if(y){let us=s.slice(Sr.loc.start.offset,Sr.loc.end.offset);if((us[0]==="+"||us[0]==="-")&&(us=us.slice(1)),us==="NaN"||us==="Infinity")return Ye(Sr)}return ae(wr);case y_.Null:return Ue(Sr);case y_.LBrace:return Kt(wr);case y_.LBracket:return Ut(wr);default:throw new pO(Sr)}}t(kr,"parseValue");let An=kr();if(J())throw new pO(d.token);let Pn={loc:{start:{line:1,column:1,offset:0},end:{...An.loc.end}}};return o.tokens&&(Pn.tokens=f),o.ranges&&(Pn.range=[Pn.loc.start.offset,Pn.loc.end.offset]),oT.document(An,Pn)}t($nt,"parse");var TXt=new Map([["Document",["body"]],["Object",["members"]],["Member",["name","value"]],["Element",["value"]],["Array",["elements"]],["String",[]],["Number",[]],["Boolean",[]],["Null",[]],["NaN",[]],["Infinity",[]],["Identifier",[]]]);function Jnt(s){return s&&typeof s=="object"}t(Jnt,"isObject");function xXt(s){return Jnt(s)&&typeof s.type=="string"}t(xXt,"isNode");function EXt(s,o){function f(d,y){typeof o.enter=="function"&&o.enter(d,y);for(let E of TXt.get(d.type)){let P=d[E];Jnt(P)&&(Array.isArray(P)?P.forEach(F=>f(F,d)):xXt(P)&&f(P,d))}typeof o.exit=="function"&&o.exit(d,y)}t(f,"visitNode"),f(s)}t(EXt,"traverse");function Wnt(s,o=()=>!0){let f=[];return EXt(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(Wnt,"iterator");import CXt from"node:fs/promises";var CV=t((s,o)=>s.split(/\r?\n/)[o-1],"getFileLineContent"),Noe=t(async s=>{try{return await CXt.readFile(s,"utf-8")}catch{return}},"getSchemaContent"),kV=t(async s=>{try{return $nt(s)}catch(o){if(o.column&&o.line&&o.message){let f=CV(s,o.line);return{column:o.column,line:o.line,length:void 0,lineText:f}}return}},"getSchemaAST");var qnt=t(async(s,o,f)=>{try{if(s.length===0)return;for(let d of s){let y=await Noe(d),E=await kXt(y,d,o,f);if(E)return E}}catch{}},"getRouteLocationByValue"),kXt=t(async(s,o,f,d)=>{try{if(!s)return;let y=null,E=await kV(s);if(E){for(let{node:P}of Wnt(E))if(P.value&&P.value===f){y=P.loc;break}if(y!==null){let P=CV(s,y.start.line);return{file:o,line:y.start.line,column:y.start.column,length:y.end.column-y.start.column,lineText:P,suggestion:d}}}}catch{}},"getRouteLocationByValueFromSchema");import Vnt from"node:fs/promises";import yE from"node:path";var WPe="schemas",qPe=".oas.json";var dO=t(async s=>(await Vnt.readdir(s)).map(f=>yE.join(s,f)).filter(f=>f.endsWith(qPe)).sort(),"getOpenApiFilesByAlphabetical"),W9=t(async s=>{let o=yE.resolve(s,"config");return(await Vnt.readdir(o)).filter(d=>d.endsWith(qPe)).length>=1},"oasFileInProject");function wV(s,o,f,d,y,E,P){if(E.has(f))return;let F;try{F=d.get(f)}catch(Ue){throw new C1({text:`Failed to resolve reference: ${f}`,detail:Ue.message,severity:"error",message:"Failed to resolve reference",location:{file:s,column:0,line:0,length:0,lineText:f,namespace:o,suggestion:"Check the reference and try again."}})}let J=Ooe(f),G=yE.basename(J,yE.extname(J)),Te=f.indexOf("#"),de=Te>=0?f.substring(0,Te):f,ae=Te>=0?f.substring(Te+1):"",Ye=d.get(de);if(ae){let Ue=ae.split("/").filter(Boolean);for(let je of Ue)if(Ye=Ye[je],Ye===void 0)throw new Error(`Cannot resolve JSON pointer: ${ae}`)}if(Ye&&typeof Ye=="object"&&"$ref"in Ye&&typeof Ye.$ref=="string"&&!Ye.$ref.startsWith("#")){let Ue=yE.resolve(yE.dirname(de),Ye.$ref);if(J=Ue,G=yE.basename(J,yE.extname(J)),de=Ue,E.has(de)){let Kt=E.get(de);if(Kt===void 0)throw new Error(`Expected to find ${de} in refsVisited map`);E.set(f,Kt);return}let je=y.length;E.set(f,je),E.set(de,je),y.push(de),Ioe(J,G,F,d,y,E,P)}else E.set(f,y.length),y.push(f),Ioe(Ooe(f),o,F,d,y,E,P)}t(wV,"chaseRefs");function Ioe(s,o,f,d,y,E,P){if(Array.isArray(f))for(let F of f)Ioe(s,o,F,d,y,E,P);else if(typeof f=="object")for(let F in f){if(F==="$ref"){let J=f[F];P&&(f[F]=P(o,J,s)),wV(s,o,HN(s,J),d,y,E,P)}Ioe(s,o,f[F],d,y,E,P)}}t(Ioe,"lookForRefs");function HN(s,o){let f=o.indexOf("#");return f>=0?`${yE.resolve(s,o.substring(0,f))}${o.substring(f)}`:yE.resolve(yE.dirname(s),o)}t(HN,"getFullyQualifiedRefName");function Ooe(s){let o=s.indexOf("#");return o>=0?s.substring(0,o):s}t(Ooe,"getFilePathNameFromRefName");import ole from"node:path";function wXt(s){if(s.length>=255)throw new TypeError("Alphabet too long");let o=new Uint8Array(256);for(let G=0;G<o.length;G++)o[G]=255;for(let G=0;G<s.length;G++){let Te=s.charAt(G),de=Te.charCodeAt(0);if(o[de]!==255)throw new TypeError(Te+" is ambiguous");o[de]=G}let f=s.length,d=s.charAt(0),y=Math.log(f)/Math.log(256),E=Math.log(256)/Math.log(f);function P(G){if(G instanceof Uint8Array||(ArrayBuffer.isView(G)?G=new Uint8Array(G.buffer,G.byteOffset,G.byteLength):Array.isArray(G)&&(G=Uint8Array.from(G))),!(G instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(G.length===0)return"";let Te=0,de=0,ae=0,Ye=G.length;for(;ae!==Ye&&G[ae]===0;)ae++,Te++;let Ue=(Ye-ae)*E+1>>>0,je=new Uint8Array(Ue);for(;ae!==Ye;){let kr=G[ae],An=0;for(let nn=Ue-1;(kr!==0||An<de)&&nn!==-1;nn--,An++)kr+=256*je[nn]>>>0,je[nn]=kr%f>>>0,kr=kr/f>>>0;if(kr!==0)throw new Error("Non-zero carry");de=An,ae++}let Kt=Ue-de;for(;Kt!==Ue&&je[Kt]===0;)Kt++;let Ut=d.repeat(Te);for(;Kt<Ue;++Kt)Ut+=s.charAt(je[Kt]);return Ut}t(P,"encode");function F(G){if(typeof G!="string")throw new TypeError("Expected String");if(G.length===0)return new Uint8Array;let Te=0,de=0,ae=0;for(;G[Te]===d;)de++,Te++;let Ye=(G.length-Te)*y+1>>>0,Ue=new Uint8Array(Ye);for(;G[Te];){let kr=o[G.charCodeAt(Te)];if(kr===255)return;let An=0;for(let nn=Ye-1;(kr!==0||An<ae)&&nn!==-1;nn--,An++)kr+=f*Ue[nn]>>>0,Ue[nn]=kr%256>>>0,kr=kr/256>>>0;if(kr!==0)throw new Error("Non-zero carry");ae=An,Te++}let je=Ye-ae;for(;je!==Ye&&Ue[je]===0;)je++;let Kt=new Uint8Array(de+(Ye-je)),Ut=de;for(;je!==Ye;)Kt[Ut++]=Ue[je++];return Kt}t(F,"decodeUnsafe");function J(G){let Te=F(G);if(Te)return Te;throw new Error("Non-base"+f+" character")}return t(J,"decode"),{encode:P,decodeUnsafe:F,decode:J}}t(wXt,"base");var Hnt=wXt;var DXt="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Foe=Hnt(DXt);var PXt=!1;function q9(s,o){return{open:`\x1B[${s.join(";")}m`,close:`\x1B[${o}m`,regexp:new RegExp(`\\x1b\\[${o}m`,"g")}}t(q9,"code");function V9(s,o){return PXt?`${o.open}${s.replace(o.regexp,o.open)}${o.close}`:s}t(V9,"run");function AXt(s){return V9(s,q9([31],39))}t(AXt,"red");function NXt(s){return V9(s,q9([32],39))}t(NXt,"green");function IXt(s){return V9(s,q9([33],39))}t(IXt,"yellow");function OXt(s){return V9(s,q9([34],39))}t(OXt,"blue");function FXt(s){return V9(s,q9([35],39))}t(FXt,"magenta");function LXt(s){return V9(s,q9([36],39))}t(LXt,"cyan");var PCr=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 Gnt=[AXt,NXt,IXt,OXt,FXt,LXt];function RXt(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(RXt,"hashCode");function Ynt(s){let o=Math.abs(RXt(s));return Gnt[o%Gnt.length]}t(Ynt,"generateColor");import{inspect as MXt}from"node:util";function Knt(s,o,...f){let d=0,y=f.length,E=String(o).replace(/%[sdjoO%]/g,P=>{if(P==="%%")return"%";if(d>=y)return P;switch(P){case"%s":return String(f[d++]);case"%d":return Number(f[d++]).toString();case"%o":return s(f[d++]).split(`
571
- `).map(F=>F.trim()).join(" ");case"%O":return s(f[d++]);case"%j":try{return JSON.stringify(f[d++])}catch{return"[Circular]"}default:return P}});for(let P of f.splice(d))P===null||!(typeof P=="object"&&P!==null)?E+=" "+P:E+=" "+s(P);return E}t(Knt,"format");var Xnt=t((s,...o)=>Knt(MXt,s,o),"format");var VPe=class{static{t(this,"Debugger")}manager;ns;color;last;enabled;constructor(o,f){this.manager=o,this.ns=f,this.color=Ynt(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=Xnt(f,...o);let E=`${this.color(this.ns)} ${f} ${this.color(`+${y}ms`)}`;console.log(E),this.last=Date.now()}},HPe=class{static{t(this,"DebugManager")}debuggers;enabled;constructor(o){this.debuggers=new Map,this.enabled=o??[]}};function jXt(s){return!s||s.length===0?[]:(s=s.replace(/\s/g,"").replace(/\*/g,".+"),s.split(",").map(o=>new RegExp(`^${o}$`)))}t(jXt,"extract");var Loe;function Roe(s){Loe||(Loe=new HPe(jXt(process.env.DEBUG)));let o=new VPe(Loe,s);return Loe.debuggers.set(s,o),Object.assign(o.log.bind(o),{self:o})}t(Roe,"debug");var Znt="zp-local-service";var JCr=Symbol("zuplo_meters"),WCr=Symbol("zuplo_dynamic_meters");var BP=class extends Error{static{t(this,"RuntimeError")}extensionMembers;constructor(o,f){typeof o=="string"?super(o,f):(super(o.message,f),this.extensionMembers=o.extensionMembers),this.name="RuntimeError"}};var GN=Roe("zuplo:runtime:external-service");function BXt(){let s,{__ZUPLO_EXTERNAL_SERVICE_TOKEN:o}=Em.instance.runtime;if(o&&o!=="undefined")try{let f=atob(o);s=JSON.parse(f)}catch{}return s}t(BXt,"getServiceAuth");async function Qnt(s,o){let f=".proxy",d=".tunnel";if(typeof s=="string"){let y=new URL(s),E=y.hostname;if(E.endsWith(f)){let Kt=E.slice(0,-f.length),Ut=new URL(`http://${Kt}${y.pathname}${y.search}`);GN(`Routing to proxy: ${Ut.toString()}`);let kr=o??{};return DV(Ut.toString(),kr)}let P=E.endsWith(d),F=E.indexOf(".")===-1;if(!(P||F))throw new BP(`Invalid service hostname suffix: ${E}. Use .proxy for proxy routing, .tunnel for explicit tunnel routing, or no suffix for default tunnel routing.`);let G=P?E.slice(0,-d.length):E,Te=BXt();if(!Te)throw GN("There is no external service auth configured for this zup."),new BP("There are no external services configured for this zup.");GN(`Using external service auth. ClientId: ${Te.clientId})`);let de=o??{},ae=new Headers(de.headers||{});ae.set("CF-Access-Client-Id",Te.clientId),ae.set("CF-Access-Client-Secret",Te.clientSecret),de.headers=ae;let Ye;if(Te.customServiceMapping?.[G])Ye=`https://${Te.customServiceMapping[G]}`;else if(Em.instance.useLegacyServiceRouting)Ye=`https://${G}.zuptunnel.com`;else{GN("Using sha256 service routing");let Kt=Em.instance.build;if(Kt.ACCOUNT_NAME&&Kt.PROJECT_NAME&&Kt.ENVIRONMENT_TYPE){let Ut=await UXt(G,Kt.ACCOUNT_NAME,Kt.PROJECT_NAME,Kt.ENVIRONMENT_TYPE),kr=tit(Kt.ENVIRONMENT_TYPE),An=await GPe(`${Kt.ACCOUNT_NAME}-${Kt.PROJECT_NAME}-${kr}`);An==="40d7ad502f5d743997999594c177184a00161a77865423511f3a1ea21eb5a5e"||An==="d05bffe8fa91a300187d2cf43e8aa4a56bd809c442ae10d1ee49af7d29a5a11"?Ye=`https://${Ut}.zuptunnel.com`:Ye=`https://${Ut}.t.zuplo.app`}else throw GN("Cannot use sha256 service routing, missing build variables"),new BP("Failed to generate fully qualified tunnel url.")}let Ue=new URL(`${Ye}${y.pathname}${y.search}`);GN(`Calling external service: ${Ue.toString()}`);let je=await DV(Ue.toString(),de);if(je.status===403&&je.headers.get("cf-access-domain")!==null)throw PV.console.error("403 Forbidden when calling external service.",{clientId:Te.clientId,tunnelHost:Ye}),new BP("Could not connect to secure tunnel.");return je}else throw GN("Cannot call external service with Request object"),new BP("Currently, we only support fetch(<some_string>, ...).")}t(Qnt,"externalServiceHandler");async function eit(s,o){if(typeof s=="string"){let f=new URL(s),d=f.hostname,y=o??{},E=`http://${d}.zuplo.svc.cluster.local:9000`,P=new URL(`${E}${f.pathname}${f.search}`),F=new Headers(y.headers||{});return F.set(Znt,d),y.headers=F,await DV(P.toString(),y)}else throw new BP("Currently, we only support fetch(<some_string>, ...).")}t(eit,"clusterServiceHandler");async function UXt(s,o,f,d){let y=s.toLowerCase(),E=o.toLowerCase(),P=f.toLowerCase(),F=tit(d);GN(`Hashing service name: ${E}-${y}.${E}-${P}-${F}`);let J=await GPe(`${E}-${y}`),G=await GPe(`${E}-${P}-${F}`);return`${J}.${G}`}t(UXt,"hashServiceName");async function GPe(s){let o=new TextEncoder().encode(s),f=await crypto.subtle.digest("SHA-256",o);return Array.from(new Uint8Array(f)).map(E=>E.toString(16).padStart(2,"0")).join("").slice(0,-1)}t(GPe,"hashSegment");function tit(s){let o=s.toLowerCase();switch(o){case"production":case"preview":return o;default:return"working-copy"}}t(tit,"sanitizeEnvironmentType");var YPe=new Map;YPe.set("service:",Qnt);YPe.set("local:",eit);var DV=globalThis.fetch;function KPe(s,o){let{transformedInit:f,mtlsCertificate:d}=zXt(o);if(typeof s=="string"){let y=new URL(s),E=YPe.get(y.protocol);return E?E(s,f):rit(s,f,d)}else return rit(s,f,d)}t(KPe,"internalFetch");globalThis.fetch=KPe;function rit(s,o,f){if(!f)return DV(s,o);if(Em.instance.isCloudflare){let y=Em.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(Em.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(rit,"performFetch");var zXt=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 $Xt={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:KPe},PV=$Xt;var XPe="2025-02-06",nit=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 iit(){return new Em({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:XPe,ENVIRONMENT_TYPE:"mock-environment-type",GIT_SHA:void 0,IS_LOCAL_DEVELOPMENT:!1,COMPATIBILITY_FLAGS:nit[XPe]},runtime:{RUNTIME_ENV:"test",RUNTIME_STAGE:"test",__ZUPLO_DEPLOYMENT_NAME:"mock-deployment-name",__ZUPLO_LOG_LEVEL:"debug",__ZUPLO_LOG_FORMAT:"pretty",__ZUPLO_MANAGEMENT_API_URL:"",__ZUPLO_RUNTIME_TYPE:"cloudflare",__ZUPLO_AUTH_API_JWT:"",ZUPLO_SERVICE_BUCKET_ID:"bckt_mock"}})}t(iit,"getMockEnvironment");var Em=class s{static{t(this,"Environment")}config;static#e;static#n=!1;static initialize(o){s.#e||(s.#e=new s(o),s.#n=!0)}static get instance(){return s.#n||(PV.console.debug("Environment has not been initialized. This is okay when running tests, a mock environment will be used."),s.#e=iit()),s.#e}constructor({build:o,runtime:f}){let d;try{if(f.ZUPLO_SYSTEM_CONFIGURATIONS){let y=new TextDecoder().decode(Foe.decode(f.ZUPLO_SYSTEM_CONFIGURATIONS)),E=JSON.parse(y);for(let P of Object.keys(E))f[P]||(f[P]=E[P])}if(f.__ZUPLO_CONFIG){let y=atob(f.__ZUPLO_CONFIG);d=JSON.parse(y)}}catch(y){PV.console.error("Failed to parse runtime configuration",y)}this.config=d??{},this.build=o,this.runtime=f,this.instanceId=crypto.randomUUID()}build;runtime;instanceId;get deploymentName(){return this.runtime.__ZUPLO_DEPLOYMENT_NAME??this.config.deployment_name??void 0}get useLegacyServiceRouting(){return this.config.use_legacy_service_routing??void 0}get useProxyForFetchFromZups(){return this.config.use_proxy_for_fetch_from_zups??void 0}get devPortalBaseUrl(){return this.runtime.__ZUPLO_DEV_PORTAL_URL??this.config.dev_portal_url??"https://dev-portal-v4-1.zuplo.com"}get buildAssetsUrl(){return this.runtime.__ZUPLO_BUILD_ASSETS_URL??this.config.build_assets_url??"https://build-assets.zuplo.com"}get zuploEdgeApiUrl(){return this.config.zuplo_edge_api_url??"https://api.zuploedge.com"}get remoteLogToken(){return this.runtime.__ZUPLO_REMOTE_LOG_TOKEN??this.config.remote_log_token??void 0}get zuploClientAuthBucketId(){return this.config.zuplo_auth_client_bucket_id??"auth_o8PUdhKxSTOiB794GWPwLQCD"}get managementApiURL(){return this.runtime.__ZUPLO_MANAGEMENT_API_URL??this.config.management_api_url??"https://api.zuplo.com"}get developerApiUrl(){return this.config.developer_api_url??"https://dev.zuplo.com"}get cdnURL(){return this.runtime.__ZUPLO_CDN_URL??this.config.cdn_url??"https://cdn.zuplo.com"}get remoteLogURL(){return this.runtime.__ZUPLO_REMOTE_LOG_URL??this.config.log_event_api??"https://ellie.zuploedge.com"}get loggingId(){return this.runtime.__ZUPLO_LOGGING_ID??this.config.logging_id??void 0}get redisURL(){return this.runtime.__ZUPLO_REDIS_URL??this.config.redis_proxy_url??"https://redis-proxy.zuploedge.com"}get apiKeyServiceUrl(){return this.runtime.__ZUPLO_API_KEY_SERVICE_URL??this.config.api_key_service_url??"https://apikey.zuploedge.com"}get meteringServiceUrl(){return this.config.metering_service_url??"https://meters.zuploedge.com"}get authApiJWT(){return this.runtime.__ZUPLO_AUTH_API_JWT??void 0}get authClientId(){return this.config.auth_client_id??this.runtime.__ZUPLO_AUTH_CLIENT_ID}get authClientSecret(){return this.config.auth_client_secret??this.runtime.__ZUPLO_AUTH_CLIENT_SECRET}get authPublicKey(){return this.config.auth_public_key??this.runtime.__ZUPLO_AUTH_PUBLIC_KEY}get authPrivateKey(){return this.config.auth_private_key??this.runtime.__ZUPLO_AUTH_PRIVATE_KEY}get userLogLevel(){return this.runtime.ZUPLO_LOG_LEVEL??this.runtime.__ZUPLO_LOG_LEVEL??this.config.user_log_level??"debug"}get systemLogLevel(){return this.runtime.__ZUPLO_LOG_LEVEL??this.config.system_log_level??"debug"}get logFormat(){return this.runtime.__ZUPLO_LOG_FORMAT??this.config.log_format??"cloudflare"}get isCloudflare(){return this.runtime.__ZUPLO_RUNTIME_TYPE?this.runtime.__ZUPLO_RUNTIME_TYPE==="cloudflare":this.config.runtime_type?this.config.runtime_type==="cloudflare":typeof WebSocketPair=="function"}get isManagedDedicated(){return this.runtime.__ZUPLO_IS_MANAGED_DEDICATED==="true"}get isDeno(){if(this.runtime.__ZUPLO_RUNTIME_TYPE)return this.runtime.__ZUPLO_RUNTIME_TYPE==="deno";if(this.config.runtime_type)return this.config.runtime_type==="deno";{let o=globalThis.Deno?.version?.deno;return typeof WebSocketPair!="function"&&o}}get isLocalDevelopment(){return this.build.IS_LOCAL_DEVELOPMENT}get isTestMode(){return!!this.runtime.__ZUPLO_TEST_MODE}get systemUserAgent(){return`Zuplo/${this.build.ZUPLO_VERSION}`}get loggingEnvironmentType(){return this.isCloudflare?"edge":this.isLocalDevelopment?"local":this.isDeno?"working-copy":"unknown"}get loggingEnvironmentStage(){return this.build.ENVIRONMENT_TYPE==="PRODUCTION"?"production":this.build.ENVIRONMENT_TYPE==="PREVIEW"?"preview":this.isLocalDevelopment?"local":this.isWorkingCopy?"working-copy":"unknown"}get isWorkingCopy(){return this.build.ENVIRONMENT_TYPE==="WORKING_COPY"}get rateLimitServiceTimeoutMs(){let o=this.runtime.__ZUPLO_RATE_LIMIT_TIMEOUT_MS,f=this.config.rate_limit_service_timeout_ms,d=o??f;if(!d)return 500;let y=Number(d);return Number.isFinite(y)&&y>0?y:500}};var JXt=["ZUPLO_USER_LOGGER_DATA_DOG_API_KEY","ZUPLO_USER_LOGGER_DATA_DOG_URL","ZUPLO_LOG_LEVEL","ZUPLO_HANDLER_WRITE_LOG_LEVEL"];function sit(s){return s.startsWith("__ZUPLO")||s.startsWith("ZUPLO_")?!JXt.includes(s)&&!s.startsWith("ZUPLO_PUBLIC_"):s.startsWith("ZUDOKU_")?!s.startsWith("ZUDOKU_PUBLIC_"):!1}t(sit,"isRestrictedEnvVariableName");function ait(s){return!!s.startsWith("ZUPLO_")}t(ait,"isZuploReadableEnvVariableName");var vkr=new Proxy({},{get(s,o){let f=String(o);switch(f){case"ZUPLO_ENVIRONMENT_TYPE":return Em.instance.loggingEnvironmentType;case"ZUPLO_ENVIRONMENT_STAGE":return Em.instance.loggingEnvironmentStage;case"ZUPLO_ENVIRONMENT_NAME":return Em.instance.runtime.__ZUPLO_DEPLOYMENT_NAME;case"ZUPLO_ACCOUNT_NAME":return Em.instance.build.ACCOUNT_NAME;case"ZUPLO_PROJECT_NAME":return Em.instance.build.PROJECT_NAME;case"ZUPLO_BUILD_ID":return Em.instance.build.BUILD_ID;case"ZUPLO_COMPATIBILITY_DATE":return Em.instance.build.COMPATIBILITY_DATE}if(!(sit(f)&&!ait(f)))return Em.instance.runtime[f]}});function AV(s,o,f){return`_${UP(`${s}_${o}_${f}`)}`}t(AV,"getRawOperationDataIdentifierName");function ZPe(s,o,f,d){return`_${UP(s.toLowerCase())}_${o.toLowerCase()}_${f.toLowerCase()}_${d.toLowerCase()}`}t(ZPe,"getIdForParameterSchema");function QPe(s,o,f){return`_${UP(s.toLowerCase())}_${o.toLowerCase()}_rb_${UP(f.toLowerCase())}`}t(QPe,"getIdForRequestBodySchema");function NV(s,o){return`_${UP(s)}_${UP(o)}`}t(NV,"getIdForRefSchema");function UP(s){let o=s.replace(/\[/g,"_LBRACKET_").replace(/\]/g,"_RBRACKET_").replace(/\{/g,"_LCURLY_").replace(/\}/g,"_RCURLY_").replace(/\//g,"_SLASH_").replace(/-/g,"_DASH_").replace(/\./g,"_DOT_").replace(/\+/g,"_PLUS_").replace(/:/g,"_COLON_").replace(/@/g,"_AT_").replace(/\$/g,"_DOLLAR_").replace(/[^a-zA-Z0-9_]/g,"_");return/^[a-zA-Z_]/.test(o)||(o=`_${o}`),o}t(UP,"sanitizedIdentifierName");var tAe={};Mtt(tAe,{UnsafePathError:()=>Moe,deleteFolder:()=>nZt,dirExists:()=>eAe,fileExists:()=>HXt,getParentDirFilename:()=>eZt,isNotFileOrDirectory:()=>YXt,listFolderContents:()=>lit,listFolders:()=>XXt,mkDirTemp:()=>GXt,mkdirForFilePathIfNotExits:()=>ZXt,mkdirIfNotExists:()=>uit,safePath:()=>QXt,tarFolder:()=>tZt,untarFile:()=>rZt});import{spawn as oit}from"node:child_process";import{randomUUID as WXt}from"node:crypto";import YN from"node:fs/promises";import{platform as qXt,tmpdir as VXt}from"node:os";import N1 from"node:path";var cit=[".git","node_modules",".yarn",".DS_Store"];async function HXt(s){try{return(await YN.stat(s)).isFile()}catch{return!1}}t(HXt,"fileExists");async function GXt(){let s=process.env.BUILD_FILE_PATH??VXt(),o=WXt().replaceAll("-",""),f=N1.join(s,o);return await YN.mkdir(f,{recursive:!0}),f}t(GXt,"mkDirTemp");async function eAe(s){try{return(await YN.stat(s)).isDirectory()}catch{return!1}}t(eAe,"dirExists");async function YXt(s){try{return await YN.stat(s),!1}catch{return!0}}t(YXt,"isNotFileOrDirectory");function KXt(s,o){let f=N1.sep==="\\"?"\\\\":N1.sep,d=new RegExp(`(.*)(${f}${o})$|(.*)(${o}${f})`),y=s.match(d);if(!y)return"";let E=s.split(y[0]);return E[1]===""?"":N1.join(N1.sep,E[1])}t(KXt,"getParentDirectory");async function XXt(s){if(!await eAe(s))return[];let o=await YN.readdir(s,{withFileTypes:!0}),f=[];for await(let d of o)cit.includes(d.name)||d.isDirectory()&&f.push(d.name);return f}t(XXt,"listFolders");async function lit(s,o,f=!0){let d=KXt(s,o),y=await YN.readdir(s,{withFileTypes:!0}),E=[];for await(let P of y)if(!cit.includes(P.name)||!f)if(P.isDirectory()){let F=await lit(N1.join(s,P.name),o,f);E.push(...F)}else E.push(N1.join(d,P.name));return E}t(lit,"listFolderContents");var uit=t(async s=>{await YN.mkdir(s,{recursive:!0})},"mkdirIfNotExists"),ZXt=t(async s=>{let o=N1.dirname(s);return uit(o)},"mkdirForFilePathIfNotExits"),Moe=class extends Error{static{t(this,"UnsafePathError")}};function QXt(s){let o=N1.normalize(s),f=t(d=>{let y=N1.normalize(d),E=process.platform==="win32",P=!1;if(E?P=y.toLowerCase().startsWith(o.toLowerCase()):P=y.startsWith(o),!P)throw new Moe("Resolved path is not part of the project.");return y},"ensureSafePath");return{resolve:t((...d)=>f(N1.resolve(...d)),"resolve")}}t(QXt,"safePath");function eZt(s){return N1.join(N1.basename(N1.dirname(s)),N1.basename(s))}t(eZt,"getParentDirFilename");async function tZt({folderPath:s,outputTarPath:o,exclude:f=["node_modules",".git","dist"],logger:d}){let y=[],E=[],P;try{await new Promise((F,J)=>{let G=oit("tar",[...f.flatMap(Te=>["--exclude",Te]),...qXt()!=="darwin"?["--warning=no-file-changed"]:[],"-cvf",o,"-C",s,"."]);G.stdout.on("data",Te=>{let de=Te.toString().trim();de.length>0&&y.push(de.trim())}),G.stderr.on("data",Te=>{let de=Te.toString().trim();de.length>0&&E.push(de.trim())}),G.on("close",Te=>{P=Te,Te===0?F():J(new Error(`tar process exited with code ${Te}`))}),G.on("error",Te=>{J(Te)})})}catch(F){throw new Error("Failed to tar folder",{cause:F})}finally{d.info({stdout:y.join(`
571
+ `).map(F=>F.trim()).join(" ");case"%O":return s(f[d++]);case"%j":try{return JSON.stringify(f[d++])}catch{return"[Circular]"}default:return P}});for(let P of f.splice(d))P===null||!(typeof P=="object"&&P!==null)?E+=" "+P:E+=" "+s(P);return E}t(Knt,"format");var Xnt=t((s,...o)=>Knt(MXt,s,o),"format");var VPe=class{static{t(this,"Debugger")}manager;ns;color;last;enabled;constructor(o,f){this.manager=o,this.ns=f,this.color=Ynt(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=Xnt(f,...o);let E=`${this.color(this.ns)} ${f} ${this.color(`+${y}ms`)}`;console.log(E),this.last=Date.now()}},HPe=class{static{t(this,"DebugManager")}debuggers;enabled;constructor(o){this.debuggers=new Map,this.enabled=o??[]}};function jXt(s){return!s||s.length===0?[]:(s=s.replace(/\s/g,"").replace(/\*/g,".+"),s.split(",").map(o=>new RegExp(`^${o}$`)))}t(jXt,"extract");var Loe;function Roe(s){Loe||(Loe=new HPe(jXt(process.env.DEBUG)));let o=new VPe(Loe,s);return Loe.debuggers.set(s,o),Object.assign(o.log.bind(o),{self:o})}t(Roe,"debug");var Znt="zp-local-service";var JCr=Symbol("zuplo_meters"),WCr=Symbol("zuplo_dynamic_meters");var BP=class extends Error{static{t(this,"RuntimeError")}extensionMembers;constructor(o,f){typeof o=="string"?super(o,f):(super(o.message,f),this.extensionMembers=o.extensionMembers),this.name="RuntimeError"}};var GN=Roe("zuplo:runtime:external-service");function BXt(){let s,{__ZUPLO_EXTERNAL_SERVICE_TOKEN:o}=Em.instance.runtime;if(o&&o!=="undefined")try{let f=atob(o);s=JSON.parse(f)}catch{}return s}t(BXt,"getServiceAuth");async function Qnt(s,o){let f=".proxy",d=".tunnel";if(typeof s=="string"){let y=new URL(s),E=y.hostname;if(E.endsWith(f)){let Kt=E.slice(0,-f.length),Ut=new URL(`http://${Kt}${y.pathname}${y.search}`);GN(`Routing to proxy: ${Ut.toString()}`);let kr=o??{};return DV(Ut.toString(),kr)}let P=E.endsWith(d),F=E.indexOf(".")===-1;if(!(P||F))throw new BP(`Invalid service hostname suffix: ${E}. Use .proxy for proxy routing, .tunnel for explicit tunnel routing, or no suffix for default tunnel routing.`);let G=P?E.slice(0,-d.length):E,Te=BXt();if(!Te)throw GN("There is no external service auth configured for this zup."),new BP("There are no external services configured for this zup.");GN(`Using external service auth. ClientId: ${Te.clientId})`);let de=o??{},ae=new Headers(de.headers||{});ae.set("CF-Access-Client-Id",Te.clientId),ae.set("CF-Access-Client-Secret",Te.clientSecret),de.headers=ae;let Ye;if(Te.customServiceMapping?.[G])Ye=`https://${Te.customServiceMapping[G]}`;else if(Em.instance.useLegacyServiceRouting)Ye=`https://${G}.zuptunnel.com`;else{GN("Using sha256 service routing");let Kt=Em.instance.build;if(Kt.ACCOUNT_NAME&&Kt.PROJECT_NAME&&Kt.ENVIRONMENT_TYPE){let Ut=await UXt(G,Kt.ACCOUNT_NAME,Kt.PROJECT_NAME,Kt.ENVIRONMENT_TYPE),kr=tit(Kt.ENVIRONMENT_TYPE),An=await GPe(`${Kt.ACCOUNT_NAME}-${Kt.PROJECT_NAME}-${kr}`);An==="40d7ad502f5d743997999594c177184a00161a77865423511f3a1ea21eb5a5e"||An==="d05bffe8fa91a300187d2cf43e8aa4a56bd809c442ae10d1ee49af7d29a5a11"?Ye=`https://${Ut}.zuptunnel.com`:Ye=`https://${Ut}.t.zuplo.app`}else throw GN("Cannot use sha256 service routing, missing build variables"),new BP("Failed to generate fully qualified tunnel url.")}let Ue=new URL(`${Ye}${y.pathname}${y.search}`);GN(`Calling external service: ${Ue.toString()}`);let je=await DV(Ue.toString(),de);if(je.status===403&&je.headers.get("cf-access-domain")!==null)throw PV.console.error("403 Forbidden when calling external service.",{clientId:Te.clientId,tunnelHost:Ye}),new BP("Could not connect to secure tunnel.");return je}else throw GN("Cannot call external service with Request object"),new BP("Currently, we only support fetch(<some_string>, ...).")}t(Qnt,"externalServiceHandler");async function eit(s,o){if(typeof s=="string"){let f=new URL(s),d=f.hostname,y=o??{},E=`http://${d}.zuplo.svc.cluster.local:9000`,P=new URL(`${E}${f.pathname}${f.search}`),F=new Headers(y.headers||{});return F.set(Znt,d),y.headers=F,await DV(P.toString(),y)}else throw new BP("Currently, we only support fetch(<some_string>, ...).")}t(eit,"clusterServiceHandler");async function UXt(s,o,f,d){let y=s.toLowerCase(),E=o.toLowerCase(),P=f.toLowerCase(),F=tit(d);GN(`Hashing service name: ${E}-${y}.${E}-${P}-${F}`);let J=await GPe(`${E}-${y}`),G=await GPe(`${E}-${P}-${F}`);return`${J}.${G}`}t(UXt,"hashServiceName");async function GPe(s){let o=new TextEncoder().encode(s),f=await crypto.subtle.digest("SHA-256",o);return Array.from(new Uint8Array(f)).map(E=>E.toString(16).padStart(2,"0")).join("").slice(0,-1)}t(GPe,"hashSegment");function tit(s){let o=s.toLowerCase();switch(o){case"production":case"preview":return o;default:return"working-copy"}}t(tit,"sanitizeEnvironmentType");var YPe=new Map;YPe.set("service:",Qnt);YPe.set("local:",eit);var DV=globalThis.fetch;function KPe(s,o){let{transformedInit:f,mtlsCertificate:d}=zXt(o);if(typeof s=="string"){let y=new URL(s),E=YPe.get(y.protocol);return E?E(s,f):rit(s,f,d)}else return rit(s,f,d)}t(KPe,"internalFetch");globalThis.fetch=KPe;function rit(s,o,f){if(!f)return DV(s,o);if(Em.instance.isCloudflare){let y=Em.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(Em.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(rit,"performFetch");var zXt=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 $Xt={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:KPe},PV=$Xt;var XPe="2025-02-06",nit=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 iit(){return new Em({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:XPe,ENVIRONMENT_TYPE:"mock-environment-type",GIT_SHA:void 0,IS_LOCAL_DEVELOPMENT:!1,COMPATIBILITY_FLAGS:nit[XPe]},runtime:{RUNTIME_ENV:"test",RUNTIME_STAGE:"test",__ZUPLO_DEPLOYMENT_NAME:"mock-deployment-name",__ZUPLO_LOG_LEVEL:"debug",__ZUPLO_LOG_FORMAT:"pretty",__ZUPLO_MANAGEMENT_API_URL:"",__ZUPLO_RUNTIME_TYPE:"cloudflare",__ZUPLO_AUTH_API_JWT:"",ZUPLO_SERVICE_BUCKET_ID:"bckt_mock"}})}t(iit,"getMockEnvironment");var Em=class s{static{t(this,"Environment")}config;static#e;static#n=!1;static initialize(o){s.#e||(s.#e=new s(o),s.#n=!0)}static get instance(){return s.#n||(PV.console.debug("Environment has not been initialized. This is okay when running tests, a mock environment will be used."),s.#e??=iit()),s.#e}constructor({build:o,runtime:f}){let d;try{if(f.ZUPLO_SYSTEM_CONFIGURATIONS){let y=new TextDecoder().decode(Foe.decode(f.ZUPLO_SYSTEM_CONFIGURATIONS)),E=JSON.parse(y);for(let P of Object.keys(E))f[P]||(f[P]=E[P])}if(f.__ZUPLO_CONFIG){let y=atob(f.__ZUPLO_CONFIG);d=JSON.parse(y)}}catch(y){PV.console.error("Failed to parse runtime configuration",y)}this.config=d??{},this.build=o,this.runtime=f,this.instanceId=crypto.randomUUID()}build;runtime;instanceId;get deploymentName(){return this.runtime.__ZUPLO_DEPLOYMENT_NAME??this.config.deployment_name??void 0}get useLegacyServiceRouting(){return this.config.use_legacy_service_routing??void 0}get useProxyForFetchFromZups(){return this.config.use_proxy_for_fetch_from_zups??void 0}get devPortalBaseUrl(){return this.runtime.__ZUPLO_DEV_PORTAL_URL??this.config.dev_portal_url??"https://dev-portal-v4-1.zuplo.com"}get buildAssetsUrl(){return this.runtime.__ZUPLO_BUILD_ASSETS_URL??this.config.build_assets_url??"https://build-assets.zuplo.com"}get zuploEdgeApiUrl(){return this.config.zuplo_edge_api_url??"https://api.zuploedge.com"}get remoteLogToken(){return this.runtime.__ZUPLO_REMOTE_LOG_TOKEN??this.config.remote_log_token??void 0}get zuploClientAuthBucketId(){return this.config.zuplo_auth_client_bucket_id??"auth_o8PUdhKxSTOiB794GWPwLQCD"}get managementApiURL(){return this.runtime.__ZUPLO_MANAGEMENT_API_URL??this.config.management_api_url??"https://api.zuplo.com"}get developerApiUrl(){return this.config.developer_api_url??"https://dev.zuplo.com"}get cdnURL(){return this.runtime.__ZUPLO_CDN_URL??this.config.cdn_url??"https://cdn.zuplo.com"}get remoteLogURL(){return this.runtime.__ZUPLO_REMOTE_LOG_URL??this.config.log_event_api??"https://ellie.zuploedge.com"}get loggingId(){return this.runtime.__ZUPLO_LOGGING_ID??this.config.logging_id??void 0}get redisURL(){return this.runtime.__ZUPLO_REDIS_URL??this.config.redis_proxy_url??"https://redis-proxy.zuploedge.com"}get apiKeyServiceUrl(){return this.runtime.__ZUPLO_API_KEY_SERVICE_URL??this.config.api_key_service_url??"https://apikey.zuploedge.com"}get meteringServiceUrl(){return this.config.metering_service_url??"https://meters.zuploedge.com"}get authApiJWT(){return this.runtime.__ZUPLO_AUTH_API_JWT??void 0}get authClientId(){return this.config.auth_client_id??this.runtime.__ZUPLO_AUTH_CLIENT_ID}get authClientSecret(){return this.config.auth_client_secret??this.runtime.__ZUPLO_AUTH_CLIENT_SECRET}get authPublicKey(){return this.config.auth_public_key??this.runtime.__ZUPLO_AUTH_PUBLIC_KEY}get authPrivateKey(){return this.config.auth_private_key??this.runtime.__ZUPLO_AUTH_PRIVATE_KEY}get userLogLevel(){return this.runtime.ZUPLO_LOG_LEVEL??this.runtime.__ZUPLO_LOG_LEVEL??this.config.user_log_level??"debug"}get systemLogLevel(){return this.runtime.__ZUPLO_LOG_LEVEL??this.config.system_log_level??"debug"}get logFormat(){return this.runtime.__ZUPLO_LOG_FORMAT??this.config.log_format??"cloudflare"}get isCloudflare(){return this.runtime.__ZUPLO_RUNTIME_TYPE?this.runtime.__ZUPLO_RUNTIME_TYPE==="cloudflare":this.config.runtime_type?this.config.runtime_type==="cloudflare":typeof WebSocketPair=="function"}get isManagedDedicated(){return this.runtime.__ZUPLO_IS_MANAGED_DEDICATED==="true"}get isDeno(){if(this.runtime.__ZUPLO_RUNTIME_TYPE)return this.runtime.__ZUPLO_RUNTIME_TYPE==="deno";if(this.config.runtime_type)return this.config.runtime_type==="deno";{let o=globalThis.Deno?.version?.deno;return typeof WebSocketPair!="function"&&o}}get isLocalDevelopment(){return this.build.IS_LOCAL_DEVELOPMENT}get isTestMode(){return!!this.runtime.__ZUPLO_TEST_MODE}get systemUserAgent(){return`Zuplo/${this.build.ZUPLO_VERSION}`}get loggingEnvironmentType(){return this.isCloudflare?"edge":this.isLocalDevelopment?"local":this.isDeno?"working-copy":"unknown"}get loggingEnvironmentStage(){return this.build.ENVIRONMENT_TYPE==="PRODUCTION"?"production":this.build.ENVIRONMENT_TYPE==="PREVIEW"?"preview":this.isLocalDevelopment?"local":this.isWorkingCopy?"working-copy":"unknown"}get isWorkingCopy(){return this.build.ENVIRONMENT_TYPE==="WORKING_COPY"}get rateLimitServiceTimeoutMs(){let o=this.runtime.__ZUPLO_RATE_LIMIT_TIMEOUT_MS,f=this.config.rate_limit_service_timeout_ms,d=o??f;if(!d)return 500;let y=Number(d);return Number.isFinite(y)&&y>0?y:500}};var JXt=["ZUPLO_USER_LOGGER_DATA_DOG_API_KEY","ZUPLO_USER_LOGGER_DATA_DOG_URL","ZUPLO_LOG_LEVEL","ZUPLO_HANDLER_WRITE_LOG_LEVEL"];function sit(s){return s.startsWith("__ZUPLO")||s.startsWith("ZUPLO_")?!JXt.includes(s)&&!s.startsWith("ZUPLO_PUBLIC_"):s.startsWith("ZUDOKU_")?!s.startsWith("ZUDOKU_PUBLIC_"):!1}t(sit,"isRestrictedEnvVariableName");function ait(s){return!!s.startsWith("ZUPLO_")}t(ait,"isZuploReadableEnvVariableName");var vkr=new Proxy({},{get(s,o){let f=String(o);switch(f){case"ZUPLO_ENVIRONMENT_TYPE":return Em.instance.loggingEnvironmentType;case"ZUPLO_ENVIRONMENT_STAGE":return Em.instance.loggingEnvironmentStage;case"ZUPLO_ENVIRONMENT_NAME":return Em.instance.runtime.__ZUPLO_DEPLOYMENT_NAME;case"ZUPLO_ACCOUNT_NAME":return Em.instance.build.ACCOUNT_NAME;case"ZUPLO_PROJECT_NAME":return Em.instance.build.PROJECT_NAME;case"ZUPLO_BUILD_ID":return Em.instance.build.BUILD_ID;case"ZUPLO_COMPATIBILITY_DATE":return Em.instance.build.COMPATIBILITY_DATE}if(!(sit(f)&&!ait(f)))return Em.instance.runtime[f]}});function AV(s,o,f){return`_${UP(`${s}_${o}_${f}`)}`}t(AV,"getRawOperationDataIdentifierName");function ZPe(s,o,f,d){return`_${UP(s.toLowerCase())}_${o.toLowerCase()}_${f.toLowerCase()}_${d.toLowerCase()}`}t(ZPe,"getIdForParameterSchema");function QPe(s,o,f){return`_${UP(s.toLowerCase())}_${o.toLowerCase()}_rb_${UP(f.toLowerCase())}`}t(QPe,"getIdForRequestBodySchema");function NV(s,o){return`_${UP(s)}_${UP(o)}`}t(NV,"getIdForRefSchema");function UP(s){let o=s.replace(/\[/g,"_LBRACKET_").replace(/\]/g,"_RBRACKET_").replace(/\{/g,"_LCURLY_").replace(/\}/g,"_RCURLY_").replace(/\//g,"_SLASH_").replace(/-/g,"_DASH_").replace(/\./g,"_DOT_").replace(/\+/g,"_PLUS_").replace(/:/g,"_COLON_").replace(/@/g,"_AT_").replace(/\$/g,"_DOLLAR_").replace(/[^a-zA-Z0-9_]/g,"_");return/^[a-zA-Z_]/.test(o)||(o=`_${o}`),o}t(UP,"sanitizedIdentifierName");var tAe={};Mtt(tAe,{UnsafePathError:()=>Moe,deleteFolder:()=>nZt,dirExists:()=>eAe,fileExists:()=>HXt,getParentDirFilename:()=>eZt,isNotFileOrDirectory:()=>YXt,listFolderContents:()=>lit,listFolders:()=>XXt,mkDirTemp:()=>GXt,mkdirForFilePathIfNotExits:()=>ZXt,mkdirIfNotExists:()=>uit,safePath:()=>QXt,tarFolder:()=>tZt,untarFile:()=>rZt});import{spawn as oit}from"node:child_process";import{randomUUID as WXt}from"node:crypto";import YN from"node:fs/promises";import{platform as qXt,tmpdir as VXt}from"node:os";import N1 from"node:path";var cit=[".git","node_modules",".yarn",".DS_Store"];async function HXt(s){try{return(await YN.stat(s)).isFile()}catch{return!1}}t(HXt,"fileExists");async function GXt(){let s=process.env.BUILD_FILE_PATH??VXt(),o=WXt().replaceAll("-",""),f=N1.join(s,o);return await YN.mkdir(f,{recursive:!0}),f}t(GXt,"mkDirTemp");async function eAe(s){try{return(await YN.stat(s)).isDirectory()}catch{return!1}}t(eAe,"dirExists");async function YXt(s){try{return await YN.stat(s),!1}catch{return!0}}t(YXt,"isNotFileOrDirectory");function KXt(s,o){let f=N1.sep==="\\"?"\\\\":N1.sep,d=new RegExp(`(.*)(${f}${o})$|(.*)(${o}${f})`),y=s.match(d);if(!y)return"";let E=s.split(y[0]);return E[1]===""?"":N1.join(N1.sep,E[1])}t(KXt,"getParentDirectory");async function XXt(s){if(!await eAe(s))return[];let o=await YN.readdir(s,{withFileTypes:!0}),f=[];for await(let d of o)cit.includes(d.name)||d.isDirectory()&&f.push(d.name);return f}t(XXt,"listFolders");async function lit(s,o,f=!0){let d=KXt(s,o),y=await YN.readdir(s,{withFileTypes:!0}),E=[];for await(let P of y)if(!cit.includes(P.name)||!f)if(P.isDirectory()){let F=await lit(N1.join(s,P.name),o,f);E.push(...F)}else E.push(N1.join(d,P.name));return E}t(lit,"listFolderContents");var uit=t(async s=>{await YN.mkdir(s,{recursive:!0})},"mkdirIfNotExists"),ZXt=t(async s=>{let o=N1.dirname(s);return uit(o)},"mkdirForFilePathIfNotExits"),Moe=class extends Error{static{t(this,"UnsafePathError")}};function QXt(s){let o=N1.normalize(s),f=t(d=>{let y=N1.normalize(d),E=process.platform==="win32",P=!1;if(E?P=y.toLowerCase().startsWith(o.toLowerCase()):P=y.startsWith(o),!P)throw new Moe("Resolved path is not part of the project.");return y},"ensureSafePath");return{resolve:t((...d)=>f(N1.resolve(...d)),"resolve")}}t(QXt,"safePath");function eZt(s){return N1.join(N1.basename(N1.dirname(s)),N1.basename(s))}t(eZt,"getParentDirFilename");async function tZt({folderPath:s,outputTarPath:o,exclude:f=["node_modules",".git","dist"],logger:d}){let y=[],E=[],P;try{await new Promise((F,J)=>{let G=oit("tar",[...f.flatMap(Te=>["--exclude",Te]),...qXt()!=="darwin"?["--warning=no-file-changed"]:[],"-cvf",o,"-C",s,"."]);G.stdout.on("data",Te=>{let de=Te.toString().trim();de.length>0&&y.push(de.trim())}),G.stderr.on("data",Te=>{let de=Te.toString().trim();de.length>0&&E.push(de.trim())}),G.on("close",Te=>{P=Te,Te===0?F():J(new Error(`tar process exited with code ${Te}`))}),G.on("error",Te=>{J(Te)})})}catch(F){throw new Error("Failed to tar folder",{cause:F})}finally{d.info({stdout:y.join(`
572
572
  `),stderr:E.join(`
573
573
  `),exitCode:P},"Tar process logs")}}t(tZt,"tarFolder");async function rZt({tarFilePath:s,outputDir:o,logger:f}){let d=[],y=[],E;try{await new Promise((P,F)=>{let J=oit("sh",["-c",`tar -xvf ${s} -C ${o};`]);J.stdout.on("data",G=>{let Te=G.toString().trim();Te.length>0&&d.push(Te.trim())}),J.stderr.on("data",G=>{let Te=G.toString().trim();Te.length>0&&y.push(Te.trim())}),J.on("close",G=>{E=G,G===0?P():F(new Error(`tar process exited with code ${G}`))}),J.on("error",G=>{F(G)})})}catch(P){throw new Error("Failed to untar file",{cause:P})}finally{f.info({stdout:d.join(`
574
574
  `),stderr:y.join(`
@@ -623,7 +623,7 @@ ${SI}${f.detail.toString().split(`
623
623
  `).join(`
624
624
  ${SI}`)}`:""}`);d.push(P);let F=Jdr(f.location??void 0);if(F&&d.push(`${SI}${E(`The error was found in the file: ${F}`)}`),f.location?.file&&f.location.column!==0&&f.location.line!==0)try{let J=$dr.join(s,f.location.file),G=await zdr(J,"utf-8"),Te=(0,Q_t.codeFrameColumns)(G,{start:{line:f.location.line,column:f.location.column}},{highlightCode:!0,message:f.message,linesAbove:3,linesBelow:3});d.push(SI),d.push(Te)}catch{}else f.location?.file&&d.push($O.red(`${SI}File: ${f.location.file}:${f.location.line}:${f.location.column}`));d.push(""),f.severity==="warning"?o.warn(d.join(`
625
625
  `)):o.error(d.join(`
626
- `))}t(Z_t,"logIssue");function Jdr(s){if(s?.file){let o=s.file;if(s.line)return`${o}:${s.line}`;if(s.column)return`${o}:${s.column}`}}t(Jdr,"getFileLocation");var ST=class{static{t(this,"PluginResult")}errors=[];warnings=[];constructor(o){o&&this.errors.push(o)}};async function ept(s,o,f){let d=[],y=[],E=new Map;for await(let P of s)try{let F=await P(o,{data:E,errors:y,warnings:d});if(y.push(...F.errors.map(J=>(J.pluginName===""&&(J.pluginName=P.name),J))),d.push(...F.warnings),F.errors.length>0)break}catch(F){if(F instanceof C1?y.push({...F.issue,pluginName:F.pluginName??"unknown"}):y.push(F),f?.throwOnException)throw F;break}return{errors:y,warnings:d,data:E}}t(ept,"runPlugins");import{readFile as Wdr}from"node:fs/promises";import tpt from"node:path";import{parse as qdr}from"jsonc-parser";var H4e={version:1,compatibilityDate:void 0,allowDuplicateRoutes:!1,allowHostHeaderOverride:!1,flags:{},experimental:{},projectType:"managed-edge"};async function UM(s){let o=tpt.join(s,nrt),f=tpt.join(s,irt),d=!1,y=o;await tu.fileExists(o)?(d=!0,y=o):await tu.fileExists(f)&&(d=!0,y=f);let E;if(d){let F=await Wdr(y,"utf-8");if(E=qdr(F,[]),typeof E!="object")return{status:L9,errors:[{message:"Invalid zuplo.jsonc file.",detail:"The zuplo.jsonc file is not a valid JSON object",pluginName:"buildData",severity:"error"}]};let G=[];"version"in E&&E.version!==1&&G.push({message:"Invalid version set in zuplo.jsonc file.",detail:"version in zuplo.jsonc must be set to 1",pluginName:"buildData",severity:"error"}),"compatibilityDate"in E&&R9&&typeof E.compatibilityDate=="string"&&(R9.includes(E.compatibilityDate)||G.push({message:"Invalid compatibilityDate set in zuplo.jsonc file.",detail:`compatibilityDate was set to ${E.compatibilityDate}. Valid compatibility dates are ${R9.join(", ")}`,pluginName:"buildData",severity:"error"}));for(let Te of["allowDuplicateRoutes","allowHostHeaderOverride"]){let de=E[Te];de!==void 0&&typeof de!="boolean"&&G.push({message:`Invalid property type for ${Te}`,detail:`The property ${Te} must be a boolean.`,pluginName:"buildData",severity:"error"})}if(E.projectType!==void 0&&!["managed-edge","managed-dedicated","self-managed"].includes(E.projectType)&&G.push({message:"Invalid projectType set in zuplo.jsonc file.",detail:`projectType was set to ${E.projectType}. Valid project types are managed-edge, managed-dedicated, self-managed`,pluginName:"buildData",severity:"error"}),G.length>0)return{status:L9,errors:G};E.flags=Qae(E.compatibilityDate,E.flags)}else E={version:1,flags:Qae(void 0,void 0)};let P={...H4e,...E};return{status:FP,config:P}}t(UM,"getZuploConfig");import Vdr from"node:fs";import{mkdir as rpt,readdir as Hdr,readFile as Gdr,writeFile as Ydr}from"node:fs/promises";import QH from"node:path";import Kdr from"node:readline";var npt=t(async function({sourceDirectory:s,logger:o,outputDirectory:f,deploymentName:d,environmentType:y,urls:E}){return Ou.timeFn("Building OpenAPI files",async()=>{o.debug("Building OpenAPI files");let P=QH.join(s,k1),F=QH.join(P,soe),J=QH.join(f,trt,k1);try{if(await tu.dirExists(f)||await rpt(f),await tu.dirExists(J)||await rpt(J,{recursive:!0}),!await W9(s))return new ST({message:"Failed to build project because no OpenAPI file was found on the 'config' folder",pluginName:"build-open-api-files",severity:"error"});let de=(await Hdr(P)).filter(je=>je.endsWith(".oas.json"));if(!await tu.fileExists(F))return new ST({message:"The project must include a policies file ('/config/policies.json')",pluginName:"build-open-api-files",severity:"error"});let ae=await Gdr(F,"utf-8"),Ye=JSON.parse(ae),Ue=t(async je=>{let Kt=QH.join(P,je);if(!await Xdr(Kt)){o.debug(`Skipping ${je} as it does not use the OpenAPI handler`);return}let Ut;try{Ut=await $ft({sourceDirectory:s,openApiDocPath:Kt,policiesConfig:Ye,logger:o,environmentType:y,deploymentName:d,urls:E})}catch(nn){if(o.error(nn),nn instanceof SyntaxError||nn instanceof vT.ResolverError||nn instanceof vT.JSONParserError||nn instanceof vT.ParserError||nn instanceof vT.MissingPointerError||nn instanceof BO)return new ST({message:nn.message,location:{file:je,column:0,length:0,line:0,lineText:"",namespace:"",suggestion:""},pluginName:"build-open-api-files",severity:"error"});if(nn instanceof C1)return new ST({...nn.issue,pluginName:"build-open-api-files"});throw nn}let kr=JSON.stringify(Ut,null,2),An=QH.join(J,je);await Ydr(An,kr,"utf-8")},"processFile");await Promise.all(de.map(Ue))}catch(G){return o.error(G),new ST({message:"Error building OpenAPI files",pluginName:"build-open-api-files",severity:"error"})}return new ST})},"buildOpenApiFiles");async function Xdr(s){let o=Vdr.createReadStream(s),f=Kdr.createInterface({input:o,crlfDelay:1/0}),d=!1,y=!1;for await(let E of f)if(E.includes('"openApiSpecHandler"')&&(d=!0),E.includes('"openApiFilePath"')&&(y=!0),d&&y)break;return f.close(),o.destroy(),d&&y}t(Xdr,"usesOpenApiHandler");import Zdr from"node:fs/promises";import Qdr from"node:path";var ipt=t(async function({outputDirectory:s,systemDirectory:o,cacheDirectory:f,logger:d}){return Ou.timeFn("Cleaning output",async()=>{d.debug("Cleaning output");let y=Qdr.join(f,"routes");return await Promise.all([s,o,y].map(async E=>{try{await Zdr.rm(E,{recursive:!0,force:!0})}catch(P){d.error(P)}})),{warnings:[],errors:[]}})},"cleanOutput");import spt from"node:fs/promises";var apt=t(async function({systemDirectory:s,cacheDirectory:o,logger:f}){return Ou.timeFn("Creating system directory",async()=>{f.debug("Creating system directory");try{return await Promise.all([spt.mkdir(s,{recursive:!0}),spt.mkdir(o,{recursive:!0})]),{warnings:[],errors:[]}}catch(d){return f.error(d),{warnings:[],errors:[]}}return{warnings:[],errors:[]}})},"createSystemDir");var opt=t(async function({logger:s}){return Ou.timeFn("Checking for breaking changes",async()=>(s.debug("Checking for breaking changes"),{warnings:[],errors:[]}))},"checkForDeprecations");import{readFile as emr,writeFile as tmr}from"node:fs/promises";import rmr from"node:path";var cpt=t(async function({systemDirectory:s,buildId:o,logger:f,config:d,publicZuploEnvironmentVariables:y}){return Ou.timeFn("Generating build data",async()=>{f.debug("Generating build data");let E=await emr(new URL("../../../package.json",import.meta.url),"utf-8"),P=JSON.parse(E),F={BUILD_ID:o??"",GIT_SHA:process.env.GIT_SHA,TIMESTAMP:new Date().toISOString(),BUILD_ENV:Gm.NODE_ENV,ZUPLO_VERSION:P.version,API_VERSION:process.env.API_VERSION,COMPATIBILITY_DATE:d?.compatibilityDate,ACCOUNT_NAME:y?.ZUPLO_ACCOUNT_NAME,PROJECT_NAME:y?.ZUPLO_PROJECT_NAME,ENVIRONMENT_TYPE:y?.ZUPLO_ENVIRONMENT_TYPE,IS_LOCAL_DEVELOPMENT:Gm.isLocalDevelopment(),COMPATIBILITY_FLAGS:uPe[d?.compatibilityDate??"none"]},J=JSON.stringify(F,void 0,2),G=rmr.join(s,aoe);try{await tmr(G,J.trimStart(),"utf-8")}catch(Te){f.error(Te);let de={message:`Error creating file at ${G}`,pluginName:"buildData",severity:"error"};return{warnings:[],errors:[de]}}return{warnings:[],errors:[]}})},"generateBuildData");import nmr from"node:fs/promises";import imr from"node:path";var smr=`import { Handler, ServiceProviderImpl } from "@zuplo/runtime";
626
+ `))}t(Z_t,"logIssue");function Jdr(s){if(s?.file){let o=s.file;if(s.line)return`${o}:${s.line}`;if(s.column)return`${o}:${s.column}`}}t(Jdr,"getFileLocation");var ST=class{static{t(this,"PluginResult")}errors=[];warnings=[];constructor(o){o&&this.errors.push(o)}};async function ept(s,o,f){let d=[],y=[],E=new Map;for await(let P of s)try{let F=await P(o,{data:E,errors:y,warnings:d});if(y.push(...F.errors.map(J=>(J.pluginName===""&&(J.pluginName=P.name),J))),d.push(...F.warnings),F.errors.length>0)break}catch(F){if(F instanceof C1?y.push({...F.issue,pluginName:F.pluginName??"unknown"}):y.push(F),f?.throwOnException)throw F;break}return{errors:y,warnings:d,data:E}}t(ept,"runPlugins");import{readFile as Wdr}from"node:fs/promises";import tpt from"node:path";import{parse as qdr}from"jsonc-parser";var H4e={version:1,compatibilityDate:void 0,allowDuplicateRoutes:!1,allowHostHeaderOverride:!1,flags:{},experimental:{},projectType:"managed-edge",devPortal:{}};async function UM(s){let o=tpt.join(s,nrt),f=tpt.join(s,irt),d=!1,y=o;await tu.fileExists(o)?(d=!0,y=o):await tu.fileExists(f)&&(d=!0,y=f);let E;if(d){let F=await Wdr(y,"utf-8");if(E=qdr(F,[]),typeof E!="object")return{status:L9,errors:[{message:"Invalid zuplo.jsonc file.",detail:"The zuplo.jsonc file is not a valid JSON object",pluginName:"buildData",severity:"error"}]};let G=[];"version"in E&&E.version!==1&&G.push({message:"Invalid version set in zuplo.jsonc file.",detail:"version in zuplo.jsonc must be set to 1",pluginName:"buildData",severity:"error"}),"compatibilityDate"in E&&R9&&typeof E.compatibilityDate=="string"&&(R9.includes(E.compatibilityDate)||G.push({message:"Invalid compatibilityDate set in zuplo.jsonc file.",detail:`compatibilityDate was set to ${E.compatibilityDate}. Valid compatibility dates are ${R9.join(", ")}`,pluginName:"buildData",severity:"error"}));for(let Te of["allowDuplicateRoutes","allowHostHeaderOverride"]){let de=E[Te];de!==void 0&&typeof de!="boolean"&&G.push({message:`Invalid property type for ${Te}`,detail:`The property ${Te} must be a boolean.`,pluginName:"buildData",severity:"error"})}if(E.projectType!==void 0&&!["managed-edge","managed-dedicated","self-managed"].includes(E.projectType)&&G.push({message:"Invalid projectType set in zuplo.jsonc file.",detail:`projectType was set to ${E.projectType}. Valid project types are managed-edge, managed-dedicated, self-managed`,pluginName:"buildData",severity:"error"}),E.devPortal!==void 0&&(typeof E.devPortal!="object"||E.devPortal===null?G.push({message:"Invalid devPortal set in zuplo.jsonc file.",detail:"The property devPortal must be an object.",pluginName:"buildData",severity:"error"}):E.devPortal.serverSideRendering!==void 0&&typeof E.devPortal.serverSideRendering!="boolean"&&G.push({message:"Invalid property type for devPortal.serverSideRendering",detail:"The property devPortal.serverSideRendering must be a boolean.",pluginName:"buildData",severity:"error"})),G.length>0)return{status:L9,errors:G};E.flags=Qae(E.compatibilityDate,E.flags)}else E={version:1,flags:Qae(void 0,void 0)};let P={...H4e,...E};return{status:FP,config:P}}t(UM,"getZuploConfig");import Vdr from"node:fs";import{mkdir as rpt,readdir as Hdr,readFile as Gdr,writeFile as Ydr}from"node:fs/promises";import QH from"node:path";import Kdr from"node:readline";var npt=t(async function({sourceDirectory:s,logger:o,outputDirectory:f,deploymentName:d,environmentType:y,urls:E}){return Ou.timeFn("Building OpenAPI files",async()=>{o.debug("Building OpenAPI files");let P=QH.join(s,k1),F=QH.join(P,soe),J=QH.join(f,trt,k1);try{if(await tu.dirExists(f)||await rpt(f),await tu.dirExists(J)||await rpt(J,{recursive:!0}),!await W9(s))return new ST({message:"Failed to build project because no OpenAPI file was found on the 'config' folder",pluginName:"build-open-api-files",severity:"error"});let de=(await Hdr(P)).filter(je=>je.endsWith(".oas.json"));if(!await tu.fileExists(F))return new ST({message:"The project must include a policies file ('/config/policies.json')",pluginName:"build-open-api-files",severity:"error"});let ae=await Gdr(F,"utf-8"),Ye=JSON.parse(ae),Ue=t(async je=>{let Kt=QH.join(P,je);if(!await Xdr(Kt)){o.debug(`Skipping ${je} as it does not use the OpenAPI handler`);return}let Ut;try{Ut=await $ft({sourceDirectory:s,openApiDocPath:Kt,policiesConfig:Ye,logger:o,environmentType:y,deploymentName:d,urls:E})}catch(nn){if(o.error(nn),nn instanceof SyntaxError||nn instanceof vT.ResolverError||nn instanceof vT.JSONParserError||nn instanceof vT.ParserError||nn instanceof vT.MissingPointerError||nn instanceof BO)return new ST({message:nn.message,location:{file:je,column:0,length:0,line:0,lineText:"",namespace:"",suggestion:""},pluginName:"build-open-api-files",severity:"error"});if(nn instanceof C1)return new ST({...nn.issue,pluginName:"build-open-api-files"});throw nn}let kr=JSON.stringify(Ut,null,2),An=QH.join(J,je);await Ydr(An,kr,"utf-8")},"processFile");await Promise.all(de.map(Ue))}catch(G){return o.error(G),new ST({message:"Error building OpenAPI files",pluginName:"build-open-api-files",severity:"error"})}return new ST})},"buildOpenApiFiles");async function Xdr(s){let o=Vdr.createReadStream(s),f=Kdr.createInterface({input:o,crlfDelay:1/0}),d=!1,y=!1;for await(let E of f)if(E.includes('"openApiSpecHandler"')&&(d=!0),E.includes('"openApiFilePath"')&&(y=!0),d&&y)break;return f.close(),o.destroy(),d&&y}t(Xdr,"usesOpenApiHandler");import Zdr from"node:fs/promises";import Qdr from"node:path";var ipt=t(async function({outputDirectory:s,systemDirectory:o,cacheDirectory:f,logger:d}){return Ou.timeFn("Cleaning output",async()=>{d.debug("Cleaning output");let y=Qdr.join(f,"routes");return await Promise.all([s,o,y].map(async E=>{try{await Zdr.rm(E,{recursive:!0,force:!0})}catch(P){d.error(P)}})),{warnings:[],errors:[]}})},"cleanOutput");import spt from"node:fs/promises";var apt=t(async function({systemDirectory:s,cacheDirectory:o,logger:f}){return Ou.timeFn("Creating system directory",async()=>{f.debug("Creating system directory");try{return await Promise.all([spt.mkdir(s,{recursive:!0}),spt.mkdir(o,{recursive:!0})]),{warnings:[],errors:[]}}catch(d){return f.error(d),{warnings:[],errors:[]}}return{warnings:[],errors:[]}})},"createSystemDir");var opt=t(async function({logger:s}){return Ou.timeFn("Checking for breaking changes",async()=>(s.debug("Checking for breaking changes"),{warnings:[],errors:[]}))},"checkForDeprecations");import{readFile as emr,writeFile as tmr}from"node:fs/promises";import rmr from"node:path";var cpt=t(async function({systemDirectory:s,buildId:o,logger:f,config:d,publicZuploEnvironmentVariables:y}){return Ou.timeFn("Generating build data",async()=>{f.debug("Generating build data");let E=await emr(new URL("../../../package.json",import.meta.url),"utf-8"),P=JSON.parse(E),F={BUILD_ID:o??"",GIT_SHA:process.env.GIT_SHA,TIMESTAMP:new Date().toISOString(),BUILD_ENV:Gm.NODE_ENV,ZUPLO_VERSION:P.version,API_VERSION:process.env.API_VERSION,COMPATIBILITY_DATE:d?.compatibilityDate,ACCOUNT_NAME:y?.ZUPLO_ACCOUNT_NAME,PROJECT_NAME:y?.ZUPLO_PROJECT_NAME,ENVIRONMENT_TYPE:y?.ZUPLO_ENVIRONMENT_TYPE,IS_LOCAL_DEVELOPMENT:Gm.isLocalDevelopment(),COMPATIBILITY_FLAGS:uPe[d?.compatibilityDate??"none"]},J=JSON.stringify(F,void 0,2),G=rmr.join(s,aoe);try{await tmr(G,J.trimStart(),"utf-8")}catch(Te){f.error(Te);let de={message:`Error creating file at ${G}`,pluginName:"buildData",severity:"error"};return{warnings:[],errors:[de]}}return{warnings:[],errors:[]}})},"generateBuildData");import nmr from"node:fs/promises";import imr from"node:path";var smr=`import { Handler, ServiceProviderImpl } from "@zuplo/runtime";
627
627
  import routeLoader from "zuplo:routes";
628
628
  import * as schemaValidations from "zuplo:schema-validations";
629
629
  import { runtimeInit } from "zuplo:runtime-extension";
package/index.minified.js CHANGED
@@ -568,7 +568,7 @@ globstar while`,s,de,o,ae,Ye),this.matchOne(s.slice(de),o.slice(ae),f))return th
568
568
  `],[102,"\f"],[114,"\r"],[116," "]]),Poe=new Map([...CV,[118,"\v"],[48,"\0"]]),AXt=new Map([[$Pe,$Pe],["\\","\\"],["/","/"],["\b","b"],[`
569
569
  `,"n"],["\f","f"],["\r","r"],[" ","t"]]),NCr=new Map([...AXt,["\v","v"],["\0","0"],["\u2028","u2028"],["\u2029","u2029"]]),Doe=new Map([[vXt,"LBracket"],[bXt,"RBracket"],[SXt,"LBrace"],[TXt,"RBrace"],[xXt,"Colon"],[EXt,"Comma"],[CXt,"Boolean"],[kXt,"Boolean"],[wXt,"Null"]]),woe=new Map([...Doe,[DXt,"Number"],[PXt,"Number"]]),JPe=new Set([10,13,8232,8233]),zP=class extends Error{static{t(this,"ErrorWithLocation")}constructor(o,{line:f,column:d,offset:y}){super(`${o} (${f}:${d})`),this.line=f,this.column=d,this.offset=y}},WPe=class extends zP{static{t(this,"UnexpectedChar")}constructor(o,f){super(`Unexpected character '${String.fromCharCode(o)}' found.`,f)}},qPe=class extends zP{static{t(this,"UnexpectedIdentifier")}constructor(o,f){super(`Unexpected identifier '${o}' found.`,f)}},mO=class extends zP{static{t(this,"UnexpectedToken")}constructor(o){super(`Unexpected token ${o.type} found.`,o.loc.start)}},Aoe=class extends zP{static{t(this,"UnexpectedEOF")}constructor(o){super("Unexpected end of input found.",o)}},NXt=/[\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]/,IXt=/[\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]/,OXt=13,qnt=10,VPe=class{static{t(this,"CharCodeReader")}#e="";#n=1;#t=0;#r=-1;#s=!1;#m=-1;#c=!1;constructor(o){this.#e=o}#u(){this.#c||(this.#t++,this.#r++,this.#m=-1,this.#c=!0)}locate(){return{line:this.#n,column:this.#t,offset:this.#r}}next(){if(this.#r>=this.#e.length-1)return this.#u(),-1;this.#r++;let o=this.#e.charCodeAt(this.#r);return this.#s?(this.#n++,this.#t=1,this.#s=!1):this.#t++,o===OXt?(this.#s=!0,this.peek()===qnt&&this.#r++):o===qnt&&(this.#s=!0),this.#m=o,o}peek(){return this.#r===this.#e.length-1?-1:this.#e.charCodeAt(this.#r+1)}match(o){return o(this.peek())?(this.next(),!0):!1}current(){return this.#m}},FXt="Infinity",LXt="NaN",RXt=new Set([116,102,110]),HPe=new Set([32,9,10,13]),Vnt=new Set([...HPe,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},jXt=new Set(["true","false","null"]),y_={EOF:0,Number:1,String:2,Boolean:3,Null:4,NaN:5,Infinity:6,Identifier:7,Colon:20,LBrace:21,RBrace:22,LBracket:23,RBracket:24,Comma:25,LineComment:40,BlockComment:41};function UP(s){return s>=48&&s<=57}t(UP,"isDigit");function zPe(s){return UP(s)||s>=65&&s<=70||s>=97&&s<=102}t(zPe,"isHexDigit");function BXt(s){return s>=49&&s<=57}t(BXt,"isPositiveDigit");function UXt(s){return RXt.has(s)}t(UXt,"isKeywordStart");function Gnt(s){return UP(s)||s===46||s===45}t(Gnt,"isNumberStart");function zXt(s){return Gnt(s)||s===43}t(zXt,"isJSON5NumberStart");function Hnt(s,o){return s===34||o&&s===39}t(Hnt,"isStringStart");function Ynt(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 NXt.test(o)}t(Ynt,"isJSON5IdentifierStart");function $Xt(s){if(Ynt(s)||UP(s))return!0;let o=String.fromCharCode(s);return IXt.test(o)}t($Xt,"isJSON5IdentifierPart");var GPe=class{static{t(this,"Tokenizer")}#e;#n;#t;#r;#s;#m;#c;#u;#f;#p;#a;constructor(o,f){this.#n=o,this.#e={...MXt,...f},this.#t=new VPe(o),this.#r=this.#e.mode==="json5",this.#s=this.#e.mode!=="json",this.#m=this.#e.ranges,this.#u=this.#r?Poe.has.bind(Poe):CV.has.bind(CV),this.#f=this.#r?JPe.has.bind(JPe):()=>!1,this.#p=this.#r?d=>d===120:()=>!1,this.#a=this.#r?Vnt.has.bind(Vnt):HPe.has.bind(HPe)}#i(o,f=this.#t.locate()){throw new WPe(o,f)}#o(o,f=this.#t.locate()){throw new qPe(o,f)}#h(){throw new Aoe(this.#t.locate())}#d(o,f,d,y){let E=d.offset+f,P=this.#e.ranges?{range:[d.offset,E]}:void 0;return{type:o,loc:{start:d,end:y||{line:d.line,column:d.column+f,offset:E}},...P}}#_(o){let f="",d;for(let y=0;y<o;y++){if(d=this.#t.peek(),zPe(d)){this.#t.next(),f+=String.fromCharCode(d);continue}this.#i(d)}return f}#y(o){let f="";do{if(f+=String.fromCharCode(o),o===92&&(o=this.#t.next(),o!==117&&this.#i(o),f+=String.fromCharCode(o),f+=this.#_(4)),o=this.#t.peek(),!$Xt(o))break;this.#t.next()}while(!0);return f}#b(o){let f=o,d=1;for(o=this.#t.peek();o!==-1&&o!==f;){if(this.#t.next(),d++,o===92)if(o=this.#t.peek(),this.#u(o)||this.#f(o))this.#t.next(),d++;else if(o===117){this.#t.next(),d++;let y=this.#_(4);d+=y.length}else if(this.#p(o)){this.#t.next(),d++;let y=this.#_(2);d+=y.length}else this.#r?(this.#t.next(),d++):this.#i(o);o=this.#t.peek()}return o===-1&&(this.#t.next(),this.#h()),this.#t.next(),d++,d}#v(o){let f=1;if(o===45||this.#r&&o===43){if(o=this.#t.peek(),this.#r&&(o===73||o===78)){this.#t.next();let d=this.#y(o);return d!==FXt&&d!==LXt&&this.#i(o),f+d.length}UP(o)||this.#i(o),this.#t.next(),f++}if(o===48)if(o=this.#t.peek(),this.#r&&(o===120||o===88)){this.#t.next(),f++,o=this.#t.peek(),zPe(o)||(this.#t.next(),this.#i(o));do this.#t.next(),f++,o=this.#t.peek();while(zPe(o))}else UP(o)&&this.#i(o);else if(!this.#r||o!==46)for(BXt(o)||this.#i(o),o=this.#t.peek();UP(o);)this.#t.next(),f++,o=this.#t.peek();if(o===46){let d=-1;for(this.#t.next(),f++,d++,o=this.#t.peek();UP(o);)this.#t.next(),f++,d++,o=this.#t.peek();!this.#r&&d===0&&(this.#t.next(),o?this.#i(o):this.#h())}if(o===101||o===69)for(this.#t.next(),f++,o=this.#t.peek(),(o===43||o===45)&&(this.#t.next(),f++,o=this.#t.peek()),o===-1&&(this.#t.next(),this.#h()),UP(o)||(this.#t.next(),this.#i(o));UP(o);)this.#t.next(),f++,o=this.#t.peek();return f}#C(o){let f=1;if(o=this.#t.peek(),o===47){do this.#t.next(),f+=1,o=this.#t.peek();while(o>-1&&o!==13&&o!==10);return{length:f,multiline:!1}}if(o===42){for(this.#t.next(),f+=1;o>-1;)if(o=this.#t.peek(),o===42){if(this.#t.next(),f+=1,o=this.#t.peek(),o===47)return this.#t.next(),f+=1,{length:f,multiline:!0}}else this.#t.next(),f+=1;this.#t.next(),this.#h()}this.#t.next(),this.#i(o)}next(){let o=this.#t.next();for(;this.#a(o);)o=this.#t.next();if(o===-1)return y_.EOF;let f=this.#t.locate(),d=String.fromCharCode(o);if(this.#r)if(woe.has(d))this.#c=this.#d(woe.get(d),1,f);else if(Ynt(o)){let y=this.#y(o);woe.has(y)?this.#c=this.#d(woe.get(y),y.length,f):this.#c=this.#d("Identifier",y.length,f)}else if(zXt(o)){let y=this.#v(o);this.#c=this.#d("Number",y,f)}else if(Hnt(o,this.#r)){let y=this.#b(o),E=this.#t.locate();this.#c=this.#d("String",y,f,{line:E.line,column:E.column+1,offset:E.offset+1})}else if(o===47&&this.#s){let y=this.#C(o),E=this.#t.locate();this.#c=this.#d(y.multiline?"BlockComment":"LineComment",y.length,f,{line:E.line,column:E.column+1,offset:E.offset+1})}else this.#i(o);else if(Doe.has(d))this.#c=this.#d(Doe.get(d),1,f);else if(UXt(o)){let y=this.#y(o);jXt.has(y)||this.#o(y,f),this.#c=this.#d(Doe.get(y),y.length,f)}else if(Gnt(o)){let y=this.#v(o);this.#c=this.#d("Number",y,f)}else if(Hnt(o,this.#r)){let y=this.#b(o);this.#c=this.#d("String",y,f)}else if(o===47&&this.#s){let y=this.#C(o),E=this.#t.locate();this.#c=this.#d(y.multiline?"BlockComment":"LineComment",y.length,f,{line:E.line,column:E.column+1,offset:E.offset+1})}else this.#i(o);return y_[this.#c.type]}get token(){return this.#c}};var cT={document(s,o={}){return{type:"Document",body:s,loc:o.loc,...o}},string(s,o={}){return{type:"String",value:s,loc:o.loc,...o}},number(s,o={}){return{type:"Number",value:s,loc:o.loc,...o}},boolean(s,o={}){return{type:"Boolean",value:s,loc:o.loc,...o}},null(s={}){return{type:"Null",loc:s.loc,...s}},array(s,o={}){return{type:"Array",elements:s,loc:o.loc,...o}},element(s,o={}){return{type:"Element",value:s,loc:o.loc,...o}},object(s,o={}){return{type:"Object",members:s,loc:o.loc,...o}},member(s,o,f={}){return{type:"Member",name:s,value:o,loc:f.loc,...f}},identifier(s,o={}){return{type:"Identifier",name:s,loc:o.loc,...o}},nan(s="",o={}){return{type:"NaN",sign:s,loc:o.loc,...o}},infinity(s="",o={}){return{type:"Infinity",sign:s,loc:o.loc,...o}}},JXt={mode:"json",ranges:!1,tokens:!1,allowTrailingCommas:!1};function WXt(s,o,f=!1){let d="",y=s.indexOf("\\"),E=0;for(;y>=0;){d+=s.slice(E,y);let P=s.charAt(y+1),F=P.charCodeAt(0);if(f&&Poe.has(F))d+=Poe.get(F),E=y+2;else if(CV.has(F))d+=CV.get(F),E=y+2;else if(P==="u"){let J=s.slice(y+2,y+6);if(J.length<4||/[^0-9a-f]/i.test(J))throw new zP(`Invalid unicode escape \\u${J}.`,{line:o.loc.start.line,column:o.loc.start.column+y,offset:o.loc.start.offset+y});d+=String.fromCharCode(parseInt(J,16)),E=y+6}else if(f&&P==="x"){let J=s.slice(y+2,y+4);if(J.length<2||/[^0-9a-f]/i.test(J))throw new zP(`Invalid hex escape \\x${J}.`,{line:o.loc.start.line,column:o.loc.start.column+y,offset:o.loc.start.offset+y});d+=String.fromCharCode(parseInt(J,16)),E=y+4}else if(f&&JPe.has(F))E=y+2,P==="\r"&&s.charAt(E)===`
570
570
  `&&E++;else if(f)d+=P,E=y+2;else throw new zP(`Invalid escape \\${P}.`,{line:o.loc.start.line,column:o.loc.start.column+y,offset:o.loc.start.offset+y});y=s.indexOf("\\",E)}return d+=s.slice(E),d}t(WXt,"getStringValue");function qXt(s,o,f=!1){switch(o.type){case"Boolean":return s==="true";case"Number":return Number(s);case"String":return WXt(s.slice(1,-1),o,f);default:throw new TypeError(`Unknown token type "${o.type}.`)}}t(qXt,"getLiteralValue");function Knt(s,o){o=Object.freeze({...JXt,...o});let f=[],d=new GPe(s,{mode:o.mode,ranges:o.ranges}),y=o.mode==="json5",E=o.allowTrailingCommas||y;function P(){let wr=d.next();return wr&&o.tokens&&f.push(d.token),wr}t(P,"nextNoComments");function F(){let wr=d.next();return wr&&o.tokens&&f.push(d.token),wr>=y_.LineComment?F():wr}t(F,"nextSkipComments");let J=o.mode==="json"?P:F;function V(wr,Sr){if(wr!==Sr)throw new mO(d.token)}t(V,"assertTokenType");function Te(wr,Sr){if(!Sr.includes(wr))throw new mO(d.token)}t(Te,"assertTokenTypes");function de(wr,Sr){return o.ranges?{range:[wr.offset,Sr.offset]}:void 0}t(de,"createRange");function ae(wr){let Sr=d.token,us=de(Sr.loc.start,Sr.loc.end),Fi=qXt(s.slice(Sr.loc.start.offset,Sr.loc.end.offset),Sr,y),bi={loc:{start:{...Sr.loc.start},end:{...Sr.loc.end}},...us};switch(wr){case y_.String:return cT.string(Fi,bi);case y_.Number:return cT.number(Fi,bi);case y_.Boolean:return cT.boolean(Fi,bi);default:throw new TypeError(`Unknown token type ${Sr.type}.`)}}t(ae,"createLiteralNode");function Ye(wr){let Sr=de(wr.loc.start,wr.loc.end),us=s.slice(wr.loc.start.offset,wr.loc.end.offset),cc={loc:{start:{...wr.loc.start},end:{...wr.loc.end}},...Sr};if(wr.type!=="Identifier"){let bi="";return(us[0]==="+"||us[0]==="-")&&(bi=us[0]),cT[us.includes("NaN")?"nan":"infinity"](bi,cc)}return cT.identifier(us,cc)}t(Ye,"createJSON5IdentifierNode");function Ue(wr){let Sr=de(wr.loc.start,wr.loc.end);return cT.null({loc:{start:{...wr.loc.start},end:{...wr.loc.end}},...Sr})}t(Ue,"createNullNode");function je(wr){y?Te(wr,[y_.String,y_.Identifier,y_.Number]):V(wr,y_.String);let Sr=d.token,us=wr===y_.String?ae(wr):Ye(Sr);if(y&&(us.type==="NaN"||us.type==="Infinity")){if(us.sign!=="")throw new mO(d.token);us=cT.identifier(us.type,{loc:us.loc,...de(us.loc.start,us.loc.end)})}wr=J(),V(wr,y_.Colon);let Fi=kr(),cc=de(us.loc.start,Fi.loc.end);return cT.member(us,Fi,{loc:{start:{...us.loc.start},end:{...Fi.loc.end}},...cc})}t(je,"parseProperty");function Kt(wr){V(wr,y_.LBrace);let Sr=d.token,us=[],Fi=J();if(Fi!==y_.RBrace)do{if(us.push(je(Fi)),Fi=J(),!Fi)throw new Aoe(us[us.length-1].loc.end);if(Fi===y_.Comma){if(Fi=J(),E&&Fi===y_.RBrace)break}else break}while(Fi);V(Fi,y_.RBrace);let cc=d.token,bi=de(Sr.loc.start,cc.loc.end);return cT.object(us,{loc:{start:{...Sr.loc.start},end:{...cc.loc.end}},...bi})}t(Kt,"parseObject");function Ut(wr){V(wr,y_.LBracket);let Sr=d.token,us=[],Fi=J();if(Fi!==y_.RBracket)do{let Qf=kr(Fi);if(us.push(cT.element(Qf,{loc:Qf.loc})),Fi=J(),Fi===y_.Comma){if(Fi=J(),E&&Fi===y_.RBracket)break}else break}while(Fi);V(Fi,y_.RBracket);let cc=d.token,bi=de(Sr.loc.start,cc.loc.end);return cT.array(us,{loc:{start:{...Sr.loc.start},end:{...cc.loc.end}},...bi})}t(Ut,"parseArray");function kr(wr){wr=wr??J();let Sr=d.token;switch(wr){case y_.String:case y_.Boolean:return ae(wr);case y_.Number:if(y){let us=s.slice(Sr.loc.start.offset,Sr.loc.end.offset);if((us[0]==="+"||us[0]==="-")&&(us=us.slice(1)),us==="NaN"||us==="Infinity")return Ye(Sr)}return ae(wr);case y_.Null:return Ue(Sr);case y_.LBrace:return Kt(wr);case y_.LBracket:return Ut(wr);default:throw new mO(Sr)}}t(kr,"parseValue");let An=kr();if(J())throw new mO(d.token);let Pn={loc:{start:{line:1,column:1,offset:0},end:{...An.loc.end}}};return o.tokens&&(Pn.tokens=f),o.ranges&&(Pn.range=[Pn.loc.start.offset,Pn.loc.end.offset]),cT.document(An,Pn)}t(Knt,"parse");var VXt=new Map([["Document",["body"]],["Object",["members"]],["Member",["name","value"]],["Element",["value"]],["Array",["elements"]],["String",[]],["Number",[]],["Boolean",[]],["Null",[]],["NaN",[]],["Infinity",[]],["Identifier",[]]]);function Xnt(s){return s&&typeof s=="object"}t(Xnt,"isObject");function HXt(s){return Xnt(s)&&typeof s.type=="string"}t(HXt,"isNode");function GXt(s,o){function f(d,y){typeof o.enter=="function"&&o.enter(d,y);for(let E of VXt.get(d.type)){let P=d[E];Xnt(P)&&(Array.isArray(P)?P.forEach(F=>f(F,d)):HXt(P)&&f(P,d))}typeof o.exit=="function"&&o.exit(d,y)}t(f,"visitNode"),f(s)}t(GXt,"traverse");function Znt(s,o=()=>!0){let f=[];return GXt(s,{enter(d,y){f.push({node:d,parent:y,phase:"enter"})},exit(d,y){f.push({node:d,parent:y,phase:"exit"})}}),f.filter(o).values()}t(Znt,"iterator");import YXt from"node:fs/promises";var kV=t((s,o)=>s.split(/\r?\n/)[o-1],"getFileLineContent"),Noe=t(async s=>{try{return await YXt.readFile(s,"utf-8")}catch{return}},"getSchemaContent"),wV=t(async s=>{try{return Knt(s)}catch(o){if(o.column&&o.line&&o.message){let f=kV(s,o.line);return{column:o.column,line:o.line,length:void 0,lineText:f}}return}},"getSchemaAST");var Qnt=t(async(s,o,f)=>{try{if(s.length===0)return;for(let d of s){let y=await Noe(d),E=await KXt(y,d,o,f);if(E)return E}}catch{}},"getRouteLocationByValue"),KXt=t(async(s,o,f,d)=>{try{if(!s)return;let y=null,E=await wV(s);if(E){for(let{node:P}of Znt(E))if(P.value&&P.value===f){y=P.loc;break}if(y!==null){let P=kV(s,y.start.line);return{file:o,line:y.start.line,column:y.start.column,length:y.end.column-y.start.column,lineText:P,suggestion:d}}}}catch{}},"getRouteLocationByValueFromSchema");import eit from"node:fs/promises";import bE from"node:path";var YPe="schemas",KPe=".oas.json";var hO=t(async s=>(await eit.readdir(s)).map(f=>bE.join(s,f)).filter(f=>f.endsWith(KPe)).sort(),"getOpenApiFilesByAlphabetical"),W9=t(async s=>{let o=bE.resolve(s,"config");return(await eit.readdir(o)).filter(d=>d.endsWith(KPe)).length>=1},"oasFileInProject");function DV(s,o,f,d,y,E,P){if(E.has(f))return;let F;try{F=d.get(f)}catch(Ue){throw new k1({text:`Failed to resolve reference: ${f}`,detail:Ue.message,severity:"error",message:"Failed to resolve reference",location:{file:s,column:0,line:0,length:0,lineText:f,namespace:o,suggestion:"Check the reference and try again."}})}let J=Ooe(f),V=bE.basename(J,bE.extname(J)),Te=f.indexOf("#"),de=Te>=0?f.substring(0,Te):f,ae=Te>=0?f.substring(Te+1):"",Ye=d.get(de);if(ae){let Ue=ae.split("/").filter(Boolean);for(let je of Ue)if(Ye=Ye[je],Ye===void 0)throw new Error(`Cannot resolve JSON pointer: ${ae}`)}if(Ye&&typeof Ye=="object"&&"$ref"in Ye&&typeof Ye.$ref=="string"&&!Ye.$ref.startsWith("#")){let Ue=bE.resolve(bE.dirname(de),Ye.$ref);if(J=Ue,V=bE.basename(J,bE.extname(J)),de=Ue,E.has(de)){let Kt=E.get(de);if(Kt===void 0)throw new Error(`Expected to find ${de} in refsVisited map`);E.set(f,Kt);return}let je=y.length;E.set(f,je),E.set(de,je),y.push(de),Ioe(J,V,F,d,y,E,P)}else E.set(f,y.length),y.push(f),Ioe(Ooe(f),o,F,d,y,E,P)}t(DV,"chaseRefs");function Ioe(s,o,f,d,y,E,P){if(Array.isArray(f))for(let F of f)Ioe(s,o,F,d,y,E,P);else if(typeof f=="object")for(let F in f){if(F==="$ref"){let J=f[F];P&&(f[F]=P(o,J,s)),DV(s,o,KN(s,J),d,y,E,P)}Ioe(s,o,f[F],d,y,E,P)}}t(Ioe,"lookForRefs");function KN(s,o){let f=o.indexOf("#");return f>=0?`${bE.resolve(s,o.substring(0,f))}${o.substring(f)}`:bE.resolve(bE.dirname(s),o)}t(KN,"getFullyQualifiedRefName");function Ooe(s){let o=s.indexOf("#");return o>=0?s.substring(0,o):s}t(Ooe,"getFilePathNameFromRefName");import ole from"node:path";function XXt(s){if(s.length>=255)throw new TypeError("Alphabet too long");let o=new Uint8Array(256);for(let V=0;V<o.length;V++)o[V]=255;for(let V=0;V<s.length;V++){let Te=s.charAt(V),de=Te.charCodeAt(0);if(o[de]!==255)throw new TypeError(Te+" is ambiguous");o[de]=V}let f=s.length,d=s.charAt(0),y=Math.log(f)/Math.log(256),E=Math.log(256)/Math.log(f);function P(V){if(V instanceof Uint8Array||(ArrayBuffer.isView(V)?V=new Uint8Array(V.buffer,V.byteOffset,V.byteLength):Array.isArray(V)&&(V=Uint8Array.from(V))),!(V instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(V.length===0)return"";let Te=0,de=0,ae=0,Ye=V.length;for(;ae!==Ye&&V[ae]===0;)ae++,Te++;let Ue=(Ye-ae)*E+1>>>0,je=new Uint8Array(Ue);for(;ae!==Ye;){let kr=V[ae],An=0;for(let nn=Ue-1;(kr!==0||An<de)&&nn!==-1;nn--,An++)kr+=256*je[nn]>>>0,je[nn]=kr%f>>>0,kr=kr/f>>>0;if(kr!==0)throw new Error("Non-zero carry");de=An,ae++}let Kt=Ue-de;for(;Kt!==Ue&&je[Kt]===0;)Kt++;let Ut=d.repeat(Te);for(;Kt<Ue;++Kt)Ut+=s.charAt(je[Kt]);return Ut}t(P,"encode");function F(V){if(typeof V!="string")throw new TypeError("Expected String");if(V.length===0)return new Uint8Array;let Te=0,de=0,ae=0;for(;V[Te]===d;)de++,Te++;let Ye=(V.length-Te)*y+1>>>0,Ue=new Uint8Array(Ye);for(;V[Te];){let kr=o[V.charCodeAt(Te)];if(kr===255)return;let An=0;for(let nn=Ye-1;(kr!==0||An<ae)&&nn!==-1;nn--,An++)kr+=f*Ue[nn]>>>0,Ue[nn]=kr%256>>>0,kr=kr/256>>>0;if(kr!==0)throw new Error("Non-zero carry");ae=An,Te++}let je=Ye-ae;for(;je!==Ye&&Ue[je]===0;)je++;let Kt=new Uint8Array(de+(Ye-je)),Ut=de;for(;je!==Ye;)Kt[Ut++]=Ue[je++];return Kt}t(F,"decodeUnsafe");function J(V){let Te=F(V);if(Te)return Te;throw new Error("Non-base"+f+" character")}return t(J,"decode"),{encode:P,decodeUnsafe:F,decode:J}}t(XXt,"base");var tit=XXt;var ZXt="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Foe=tit(ZXt);var QXt=!1;function q9(s,o){return{open:`\x1B[${s.join(";")}m`,close:`\x1B[${o}m`,regexp:new RegExp(`\\x1b\\[${o}m`,"g")}}t(q9,"code");function V9(s,o){return QXt?`${o.open}${s.replace(o.regexp,o.open)}${o.close}`:s}t(V9,"run");function eZt(s){return V9(s,q9([31],39))}t(eZt,"red");function tZt(s){return V9(s,q9([32],39))}t(tZt,"green");function rZt(s){return V9(s,q9([33],39))}t(rZt,"yellow");function nZt(s){return V9(s,q9([34],39))}t(nZt,"blue");function iZt(s){return V9(s,q9([35],39))}t(iZt,"magenta");function sZt(s){return V9(s,q9([36],39))}t(sZt,"cyan");var QCr=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 rit=[eZt,tZt,rZt,nZt,iZt,sZt];function aZt(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(aZt,"hashCode");function nit(s){let o=Math.abs(aZt(s));return rit[o%rit.length]}t(nit,"generateColor");import{inspect as oZt}from"node:util";function iit(s,o,...f){let d=0,y=f.length,E=String(o).replace(/%[sdjoO%]/g,P=>{if(P==="%%")return"%";if(d>=y)return P;switch(P){case"%s":return String(f[d++]);case"%d":return Number(f[d++]).toString();case"%o":return s(f[d++]).split(`
571
- `).map(F=>F.trim()).join(" ");case"%O":return s(f[d++]);case"%j":try{return JSON.stringify(f[d++])}catch{return"[Circular]"}default:return P}});for(let P of f.splice(d))P===null||!(typeof P=="object"&&P!==null)?E+=" "+P:E+=" "+s(P);return E}t(iit,"format");var sit=t((s,...o)=>iit(oZt,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=nit(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=sit(f,...o);let E=`${this.color(this.ns)} ${f} ${this.color(`+${y}ms`)}`;console.log(E),this.last=Date.now()}},ZPe=class{static{t(this,"DebugManager")}debuggers;enabled;constructor(o){this.debuggers=new Map,this.enabled=o??[]}};function cZt(s){return!s||s.length===0?[]:(s=s.replace(/\s/g,"").replace(/\*/g,".+"),s.split(",").map(o=>new RegExp(`^${o}$`)))}t(cZt,"extract");var Loe;function Roe(s){Loe||(Loe=new ZPe(cZt(process.env.DEBUG)));let o=new XPe(Loe,s);return Loe.debuggers.set(s,o),Object.assign(o.log.bind(o),{self:o})}t(Roe,"debug");var ait="zp-local-service";var pkr=Symbol("zuplo_meters"),dkr=Symbol("zuplo_dynamic_meters");var $P=class extends Error{static{t(this,"RuntimeError")}extensionMembers;constructor(o,f){typeof o=="string"?super(o,f):(super(o.message,f),this.extensionMembers=o.extensionMembers),this.name="RuntimeError"}};var XN=Roe("zuplo:runtime:external-service");function lZt(){let s,{__ZUPLO_EXTERNAL_SERVICE_TOKEN:o}=Em.instance.runtime;if(o&&o!=="undefined")try{let f=atob(o);s=JSON.parse(f)}catch{}return s}t(lZt,"getServiceAuth");async function oit(s,o){let f=".proxy",d=".tunnel";if(typeof s=="string"){let y=new URL(s),E=y.hostname;if(E.endsWith(f)){let Kt=E.slice(0,-f.length),Ut=new URL(`http://${Kt}${y.pathname}${y.search}`);XN(`Routing to proxy: ${Ut.toString()}`);let kr=o??{};return PV(Ut.toString(),kr)}let P=E.endsWith(d),F=E.indexOf(".")===-1;if(!(P||F))throw new $P(`Invalid service hostname suffix: ${E}. Use .proxy for proxy routing, .tunnel for explicit tunnel routing, or no suffix for default tunnel routing.`);let V=P?E.slice(0,-d.length):E,Te=lZt();if(!Te)throw XN("There is no external service auth configured for this zup."),new $P("There are no external services configured for this zup.");XN(`Using external service auth. ClientId: ${Te.clientId})`);let de=o??{},ae=new Headers(de.headers||{});ae.set("CF-Access-Client-Id",Te.clientId),ae.set("CF-Access-Client-Secret",Te.clientSecret),de.headers=ae;let Ye;if(Te.customServiceMapping?.[V])Ye=`https://${Te.customServiceMapping[V]}`;else if(Em.instance.useLegacyServiceRouting)Ye=`https://${V}.zuptunnel.com`;else{XN("Using sha256 service routing");let Kt=Em.instance.build;if(Kt.ACCOUNT_NAME&&Kt.PROJECT_NAME&&Kt.ENVIRONMENT_TYPE){let Ut=await uZt(V,Kt.ACCOUNT_NAME,Kt.PROJECT_NAME,Kt.ENVIRONMENT_TYPE),kr=lit(Kt.ENVIRONMENT_TYPE),An=await QPe(`${Kt.ACCOUNT_NAME}-${Kt.PROJECT_NAME}-${kr}`);An==="40d7ad502f5d743997999594c177184a00161a77865423511f3a1ea21eb5a5e"||An==="d05bffe8fa91a300187d2cf43e8aa4a56bd809c442ae10d1ee49af7d29a5a11"?Ye=`https://${Ut}.zuptunnel.com`:Ye=`https://${Ut}.t.zuplo.app`}else throw XN("Cannot use sha256 service routing, missing build variables"),new $P("Failed to generate fully qualified tunnel url.")}let Ue=new URL(`${Ye}${y.pathname}${y.search}`);XN(`Calling external service: ${Ue.toString()}`);let je=await PV(Ue.toString(),de);if(je.status===403&&je.headers.get("cf-access-domain")!==null)throw AV.console.error("403 Forbidden when calling external service.",{clientId:Te.clientId,tunnelHost:Ye}),new $P("Could not connect to secure tunnel.");return je}else throw XN("Cannot call external service with Request object"),new $P("Currently, we only support fetch(<some_string>, ...).")}t(oit,"externalServiceHandler");async function cit(s,o){if(typeof s=="string"){let f=new URL(s),d=f.hostname,y=o??{},E=`http://${d}.zuplo.svc.cluster.local:9000`,P=new URL(`${E}${f.pathname}${f.search}`),F=new Headers(y.headers||{});return F.set(ait,d),y.headers=F,await PV(P.toString(),y)}else throw new $P("Currently, we only support fetch(<some_string>, ...).")}t(cit,"clusterServiceHandler");async function uZt(s,o,f,d){let y=s.toLowerCase(),E=o.toLowerCase(),P=f.toLowerCase(),F=lit(d);XN(`Hashing service name: ${E}-${y}.${E}-${P}-${F}`);let J=await QPe(`${E}-${y}`),V=await QPe(`${E}-${P}-${F}`);return`${J}.${V}`}t(uZt,"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(E=>E.toString(16).padStart(2,"0")).join("").slice(0,-1)}t(QPe,"hashSegment");function lit(s){let o=s.toLowerCase();switch(o){case"production":case"preview":return o;default:return"working-copy"}}t(lit,"sanitizeEnvironmentType");var eAe=new Map;eAe.set("service:",oit);eAe.set("local:",cit);var PV=globalThis.fetch;function tAe(s,o){let{transformedInit:f,mtlsCertificate:d}=fZt(o);if(typeof s=="string"){let y=new URL(s),E=eAe.get(y.protocol);return E?E(s,f):uit(s,f,d)}else return uit(s,f,d)}t(tAe,"internalFetch");globalThis.fetch=tAe;function uit(s,o,f){if(!f)return PV(s,o);if(Em.instance.isCloudflare){let y=Em.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(Em.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(uit,"performFetch");var fZt=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 _Zt={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},AV=_Zt;var rAe="2025-02-06",fit=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 _it(){return new Em({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:fit[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:"cloudflare",__ZUPLO_AUTH_API_JWT:"",ZUPLO_SERVICE_BUCKET_ID:"bckt_mock"}})}t(_it,"getMockEnvironment");var Em=class s{static{t(this,"Environment")}config;static#e;static#n=!1;static initialize(o){s.#e||(s.#e=new s(o),s.#n=!0)}static get instance(){return s.#n||(AV.console.debug("Environment has not been initialized. This is okay when running tests, a mock environment will be used."),s.#e=_it()),s.#e}constructor({build:o,runtime:f}){let d;try{if(f.ZUPLO_SYSTEM_CONFIGURATIONS){let y=new TextDecoder().decode(Foe.decode(f.ZUPLO_SYSTEM_CONFIGURATIONS)),E=JSON.parse(y);for(let P of Object.keys(E))f[P]||(f[P]=E[P])}if(f.__ZUPLO_CONFIG){let y=atob(f.__ZUPLO_CONFIG);d=JSON.parse(y)}}catch(y){AV.console.error("Failed to parse runtime configuration",y)}this.config=d??{},this.build=o,this.runtime=f,this.instanceId=crypto.randomUUID()}build;runtime;instanceId;get deploymentName(){return this.runtime.__ZUPLO_DEPLOYMENT_NAME??this.config.deployment_name??void 0}get useLegacyServiceRouting(){return this.config.use_legacy_service_routing??void 0}get useProxyForFetchFromZups(){return this.config.use_proxy_for_fetch_from_zups??void 0}get devPortalBaseUrl(){return this.runtime.__ZUPLO_DEV_PORTAL_URL??this.config.dev_portal_url??"https://dev-portal-v4-1.zuplo.com"}get buildAssetsUrl(){return this.runtime.__ZUPLO_BUILD_ASSETS_URL??this.config.build_assets_url??"https://build-assets.zuplo.com"}get zuploEdgeApiUrl(){return this.config.zuplo_edge_api_url??"https://api.zuploedge.com"}get remoteLogToken(){return this.runtime.__ZUPLO_REMOTE_LOG_TOKEN??this.config.remote_log_token??void 0}get zuploClientAuthBucketId(){return this.config.zuplo_auth_client_bucket_id??"auth_o8PUdhKxSTOiB794GWPwLQCD"}get managementApiURL(){return this.runtime.__ZUPLO_MANAGEMENT_API_URL??this.config.management_api_url??"https://api.zuplo.com"}get developerApiUrl(){return this.config.developer_api_url??"https://dev.zuplo.com"}get cdnURL(){return this.runtime.__ZUPLO_CDN_URL??this.config.cdn_url??"https://cdn.zuplo.com"}get remoteLogURL(){return this.runtime.__ZUPLO_REMOTE_LOG_URL??this.config.log_event_api??"https://ellie.zuploedge.com"}get loggingId(){return this.runtime.__ZUPLO_LOGGING_ID??this.config.logging_id??void 0}get redisURL(){return this.runtime.__ZUPLO_REDIS_URL??this.config.redis_proxy_url??"https://redis-proxy.zuploedge.com"}get apiKeyServiceUrl(){return this.runtime.__ZUPLO_API_KEY_SERVICE_URL??this.config.api_key_service_url??"https://apikey.zuploedge.com"}get meteringServiceUrl(){return this.config.metering_service_url??"https://meters.zuploedge.com"}get authApiJWT(){return this.runtime.__ZUPLO_AUTH_API_JWT??void 0}get authClientId(){return this.config.auth_client_id??this.runtime.__ZUPLO_AUTH_CLIENT_ID}get authClientSecret(){return this.config.auth_client_secret??this.runtime.__ZUPLO_AUTH_CLIENT_SECRET}get authPublicKey(){return this.config.auth_public_key??this.runtime.__ZUPLO_AUTH_PUBLIC_KEY}get authPrivateKey(){return this.config.auth_private_key??this.runtime.__ZUPLO_AUTH_PRIVATE_KEY}get userLogLevel(){return this.runtime.ZUPLO_LOG_LEVEL??this.runtime.__ZUPLO_LOG_LEVEL??this.config.user_log_level??"debug"}get systemLogLevel(){return this.runtime.__ZUPLO_LOG_LEVEL??this.config.system_log_level??"debug"}get logFormat(){return this.runtime.__ZUPLO_LOG_FORMAT??this.config.log_format??"cloudflare"}get isCloudflare(){return this.runtime.__ZUPLO_RUNTIME_TYPE?this.runtime.__ZUPLO_RUNTIME_TYPE==="cloudflare":this.config.runtime_type?this.config.runtime_type==="cloudflare":typeof WebSocketPair=="function"}get isManagedDedicated(){return this.runtime.__ZUPLO_IS_MANAGED_DEDICATED==="true"}get isDeno(){if(this.runtime.__ZUPLO_RUNTIME_TYPE)return this.runtime.__ZUPLO_RUNTIME_TYPE==="deno";if(this.config.runtime_type)return this.config.runtime_type==="deno";{let o=globalThis.Deno?.version?.deno;return typeof WebSocketPair!="function"&&o}}get isLocalDevelopment(){return this.build.IS_LOCAL_DEVELOPMENT}get isTestMode(){return!!this.runtime.__ZUPLO_TEST_MODE}get systemUserAgent(){return`Zuplo/${this.build.ZUPLO_VERSION}`}get loggingEnvironmentType(){return this.isCloudflare?"edge":this.isLocalDevelopment?"local":this.isDeno?"working-copy":"unknown"}get loggingEnvironmentStage(){return this.build.ENVIRONMENT_TYPE==="PRODUCTION"?"production":this.build.ENVIRONMENT_TYPE==="PREVIEW"?"preview":this.isLocalDevelopment?"local":this.isWorkingCopy?"working-copy":"unknown"}get isWorkingCopy(){return this.build.ENVIRONMENT_TYPE==="WORKING_COPY"}get rateLimitServiceTimeoutMs(){let o=this.runtime.__ZUPLO_RATE_LIMIT_TIMEOUT_MS,f=this.config.rate_limit_service_timeout_ms,d=o??f;if(!d)return 500;let y=Number(d);return Number.isFinite(y)&&y>0?y:500}};var pZt=["ZUPLO_USER_LOGGER_DATA_DOG_API_KEY","ZUPLO_USER_LOGGER_DATA_DOG_URL","ZUPLO_LOG_LEVEL","ZUPLO_HANDLER_WRITE_LOG_LEVEL"];function pit(s){return s.startsWith("__ZUPLO")||s.startsWith("ZUPLO_")?!pZt.includes(s)&&!s.startsWith("ZUPLO_PUBLIC_"):s.startsWith("ZUDOKU_")?!s.startsWith("ZUDOKU_PUBLIC_"):!1}t(pit,"isRestrictedEnvVariableName");function dit(s){return!!s.startsWith("ZUPLO_")}t(dit,"isZuploReadableEnvVariableName");var Jkr=new Proxy({},{get(s,o){let f=String(o);switch(f){case"ZUPLO_ENVIRONMENT_TYPE":return Em.instance.loggingEnvironmentType;case"ZUPLO_ENVIRONMENT_STAGE":return Em.instance.loggingEnvironmentStage;case"ZUPLO_ENVIRONMENT_NAME":return Em.instance.runtime.__ZUPLO_DEPLOYMENT_NAME;case"ZUPLO_ACCOUNT_NAME":return Em.instance.build.ACCOUNT_NAME;case"ZUPLO_PROJECT_NAME":return Em.instance.build.PROJECT_NAME;case"ZUPLO_BUILD_ID":return Em.instance.build.BUILD_ID;case"ZUPLO_COMPATIBILITY_DATE":return Em.instance.build.COMPATIBILITY_DATE}if(!(pit(f)&&!dit(f)))return Em.instance.runtime[f]}});function NV(s,o,f){return`_${JP(`${s}_${o}_${f}`)}`}t(NV,"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 IV(s,o){return`_${JP(s)}_${JP(o)}`}t(IV,"getIdForRefSchema");function JP(s){let o=s.replace(/\[/g,"_LBRACKET_").replace(/\]/g,"_RBRACKET_").replace(/\{/g,"_LCURLY_").replace(/\}/g,"_RCURLY_").replace(/\//g,"_SLASH_").replace(/-/g,"_DASH_").replace(/\./g,"_DOT_").replace(/\+/g,"_PLUS_").replace(/:/g,"_COLON_").replace(/@/g,"_AT_").replace(/\$/g,"_DOLLAR_").replace(/[^a-zA-Z0-9_]/g,"_");return/^[a-zA-Z_]/.test(o)||(o=`_${o}`),o}t(JP,"sanitizedIdentifierName");var aAe={};$tt(aAe,{UnsafePathError:()=>Moe,deleteFolder:()=>wZt,dirExists:()=>sAe,fileExists:()=>gZt,getParentDirFilename:()=>EZt,isNotFileOrDirectory:()=>vZt,listFolderContents:()=>git,listFolders:()=>SZt,mkDirTemp:()=>yZt,mkdirForFilePathIfNotExits:()=>TZt,mkdirIfNotExists:()=>yit,safePath:()=>xZt,tarFolder:()=>CZt,untarFile:()=>kZt});import{spawn as mit}from"node:child_process";import{randomUUID as dZt}from"node:crypto";import ZN from"node:fs/promises";import{platform as mZt,tmpdir as hZt}from"node:os";import N1 from"node:path";var hit=[".git","node_modules",".yarn",".DS_Store"];async function gZt(s){try{return(await ZN.stat(s)).isFile()}catch{return!1}}t(gZt,"fileExists");async function yZt(){let s=process.env.BUILD_FILE_PATH??hZt(),o=dZt().replaceAll("-",""),f=N1.join(s,o);return await ZN.mkdir(f,{recursive:!0}),f}t(yZt,"mkDirTemp");async function sAe(s){try{return(await ZN.stat(s)).isDirectory()}catch{return!1}}t(sAe,"dirExists");async function vZt(s){try{return await ZN.stat(s),!1}catch{return!0}}t(vZt,"isNotFileOrDirectory");function bZt(s,o){let f=N1.sep==="\\"?"\\\\":N1.sep,d=new RegExp(`(.*)(${f}${o})$|(.*)(${o}${f})`),y=s.match(d);if(!y)return"";let E=s.split(y[0]);return E[1]===""?"":N1.join(N1.sep,E[1])}t(bZt,"getParentDirectory");async function SZt(s){if(!await sAe(s))return[];let o=await ZN.readdir(s,{withFileTypes:!0}),f=[];for await(let d of o)hit.includes(d.name)||d.isDirectory()&&f.push(d.name);return f}t(SZt,"listFolders");async function git(s,o,f=!0){let d=bZt(s,o),y=await ZN.readdir(s,{withFileTypes:!0}),E=[];for await(let P of y)if(!hit.includes(P.name)||!f)if(P.isDirectory()){let F=await git(N1.join(s,P.name),o,f);E.push(...F)}else E.push(N1.join(d,P.name));return E}t(git,"listFolderContents");var yit=t(async s=>{await ZN.mkdir(s,{recursive:!0})},"mkdirIfNotExists"),TZt=t(async s=>{let o=N1.dirname(s);return yit(o)},"mkdirForFilePathIfNotExits"),Moe=class extends Error{static{t(this,"UnsafePathError")}};function xZt(s){let o=N1.normalize(s),f=t(d=>{let y=N1.normalize(d),E=process.platform==="win32",P=!1;if(E?P=y.toLowerCase().startsWith(o.toLowerCase()):P=y.startsWith(o),!P)throw new Moe("Resolved path is not part of the project.");return y},"ensureSafePath");return{resolve:t((...d)=>f(N1.resolve(...d)),"resolve")}}t(xZt,"safePath");function EZt(s){return N1.join(N1.basename(N1.dirname(s)),N1.basename(s))}t(EZt,"getParentDirFilename");async function CZt({folderPath:s,outputTarPath:o,exclude:f=["node_modules",".git","dist"],logger:d}){let y=[],E=[],P;try{await new Promise((F,J)=>{let V=mit("tar",[...f.flatMap(Te=>["--exclude",Te]),...mZt()!=="darwin"?["--warning=no-file-changed"]:[],"-cvf",o,"-C",s,"."]);V.stdout.on("data",Te=>{let de=Te.toString().trim();de.length>0&&y.push(de.trim())}),V.stderr.on("data",Te=>{let de=Te.toString().trim();de.length>0&&E.push(de.trim())}),V.on("close",Te=>{P=Te,Te===0?F():J(new Error(`tar process exited with code ${Te}`))}),V.on("error",Te=>{J(Te)})})}catch(F){throw new Error("Failed to tar folder",{cause:F})}finally{d.info({stdout:y.join(`
571
+ `).map(F=>F.trim()).join(" ");case"%O":return s(f[d++]);case"%j":try{return JSON.stringify(f[d++])}catch{return"[Circular]"}default:return P}});for(let P of f.splice(d))P===null||!(typeof P=="object"&&P!==null)?E+=" "+P:E+=" "+s(P);return E}t(iit,"format");var sit=t((s,...o)=>iit(oZt,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=nit(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=sit(f,...o);let E=`${this.color(this.ns)} ${f} ${this.color(`+${y}ms`)}`;console.log(E),this.last=Date.now()}},ZPe=class{static{t(this,"DebugManager")}debuggers;enabled;constructor(o){this.debuggers=new Map,this.enabled=o??[]}};function cZt(s){return!s||s.length===0?[]:(s=s.replace(/\s/g,"").replace(/\*/g,".+"),s.split(",").map(o=>new RegExp(`^${o}$`)))}t(cZt,"extract");var Loe;function Roe(s){Loe||(Loe=new ZPe(cZt(process.env.DEBUG)));let o=new XPe(Loe,s);return Loe.debuggers.set(s,o),Object.assign(o.log.bind(o),{self:o})}t(Roe,"debug");var ait="zp-local-service";var pkr=Symbol("zuplo_meters"),dkr=Symbol("zuplo_dynamic_meters");var $P=class extends Error{static{t(this,"RuntimeError")}extensionMembers;constructor(o,f){typeof o=="string"?super(o,f):(super(o.message,f),this.extensionMembers=o.extensionMembers),this.name="RuntimeError"}};var XN=Roe("zuplo:runtime:external-service");function lZt(){let s,{__ZUPLO_EXTERNAL_SERVICE_TOKEN:o}=Em.instance.runtime;if(o&&o!=="undefined")try{let f=atob(o);s=JSON.parse(f)}catch{}return s}t(lZt,"getServiceAuth");async function oit(s,o){let f=".proxy",d=".tunnel";if(typeof s=="string"){let y=new URL(s),E=y.hostname;if(E.endsWith(f)){let Kt=E.slice(0,-f.length),Ut=new URL(`http://${Kt}${y.pathname}${y.search}`);XN(`Routing to proxy: ${Ut.toString()}`);let kr=o??{};return PV(Ut.toString(),kr)}let P=E.endsWith(d),F=E.indexOf(".")===-1;if(!(P||F))throw new $P(`Invalid service hostname suffix: ${E}. Use .proxy for proxy routing, .tunnel for explicit tunnel routing, or no suffix for default tunnel routing.`);let V=P?E.slice(0,-d.length):E,Te=lZt();if(!Te)throw XN("There is no external service auth configured for this zup."),new $P("There are no external services configured for this zup.");XN(`Using external service auth. ClientId: ${Te.clientId})`);let de=o??{},ae=new Headers(de.headers||{});ae.set("CF-Access-Client-Id",Te.clientId),ae.set("CF-Access-Client-Secret",Te.clientSecret),de.headers=ae;let Ye;if(Te.customServiceMapping?.[V])Ye=`https://${Te.customServiceMapping[V]}`;else if(Em.instance.useLegacyServiceRouting)Ye=`https://${V}.zuptunnel.com`;else{XN("Using sha256 service routing");let Kt=Em.instance.build;if(Kt.ACCOUNT_NAME&&Kt.PROJECT_NAME&&Kt.ENVIRONMENT_TYPE){let Ut=await uZt(V,Kt.ACCOUNT_NAME,Kt.PROJECT_NAME,Kt.ENVIRONMENT_TYPE),kr=lit(Kt.ENVIRONMENT_TYPE),An=await QPe(`${Kt.ACCOUNT_NAME}-${Kt.PROJECT_NAME}-${kr}`);An==="40d7ad502f5d743997999594c177184a00161a77865423511f3a1ea21eb5a5e"||An==="d05bffe8fa91a300187d2cf43e8aa4a56bd809c442ae10d1ee49af7d29a5a11"?Ye=`https://${Ut}.zuptunnel.com`:Ye=`https://${Ut}.t.zuplo.app`}else throw XN("Cannot use sha256 service routing, missing build variables"),new $P("Failed to generate fully qualified tunnel url.")}let Ue=new URL(`${Ye}${y.pathname}${y.search}`);XN(`Calling external service: ${Ue.toString()}`);let je=await PV(Ue.toString(),de);if(je.status===403&&je.headers.get("cf-access-domain")!==null)throw AV.console.error("403 Forbidden when calling external service.",{clientId:Te.clientId,tunnelHost:Ye}),new $P("Could not connect to secure tunnel.");return je}else throw XN("Cannot call external service with Request object"),new $P("Currently, we only support fetch(<some_string>, ...).")}t(oit,"externalServiceHandler");async function cit(s,o){if(typeof s=="string"){let f=new URL(s),d=f.hostname,y=o??{},E=`http://${d}.zuplo.svc.cluster.local:9000`,P=new URL(`${E}${f.pathname}${f.search}`),F=new Headers(y.headers||{});return F.set(ait,d),y.headers=F,await PV(P.toString(),y)}else throw new $P("Currently, we only support fetch(<some_string>, ...).")}t(cit,"clusterServiceHandler");async function uZt(s,o,f,d){let y=s.toLowerCase(),E=o.toLowerCase(),P=f.toLowerCase(),F=lit(d);XN(`Hashing service name: ${E}-${y}.${E}-${P}-${F}`);let J=await QPe(`${E}-${y}`),V=await QPe(`${E}-${P}-${F}`);return`${J}.${V}`}t(uZt,"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(E=>E.toString(16).padStart(2,"0")).join("").slice(0,-1)}t(QPe,"hashSegment");function lit(s){let o=s.toLowerCase();switch(o){case"production":case"preview":return o;default:return"working-copy"}}t(lit,"sanitizeEnvironmentType");var eAe=new Map;eAe.set("service:",oit);eAe.set("local:",cit);var PV=globalThis.fetch;function tAe(s,o){let{transformedInit:f,mtlsCertificate:d}=fZt(o);if(typeof s=="string"){let y=new URL(s),E=eAe.get(y.protocol);return E?E(s,f):uit(s,f,d)}else return uit(s,f,d)}t(tAe,"internalFetch");globalThis.fetch=tAe;function uit(s,o,f){if(!f)return PV(s,o);if(Em.instance.isCloudflare){let y=Em.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(Em.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(uit,"performFetch");var fZt=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 _Zt={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},AV=_Zt;var rAe="2025-02-06",fit=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 _it(){return new Em({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:fit[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:"cloudflare",__ZUPLO_AUTH_API_JWT:"",ZUPLO_SERVICE_BUCKET_ID:"bckt_mock"}})}t(_it,"getMockEnvironment");var Em=class s{static{t(this,"Environment")}config;static#e;static#n=!1;static initialize(o){s.#e||(s.#e=new s(o),s.#n=!0)}static get instance(){return s.#n||(AV.console.debug("Environment has not been initialized. This is okay when running tests, a mock environment will be used."),s.#e??=_it()),s.#e}constructor({build:o,runtime:f}){let d;try{if(f.ZUPLO_SYSTEM_CONFIGURATIONS){let y=new TextDecoder().decode(Foe.decode(f.ZUPLO_SYSTEM_CONFIGURATIONS)),E=JSON.parse(y);for(let P of Object.keys(E))f[P]||(f[P]=E[P])}if(f.__ZUPLO_CONFIG){let y=atob(f.__ZUPLO_CONFIG);d=JSON.parse(y)}}catch(y){AV.console.error("Failed to parse runtime configuration",y)}this.config=d??{},this.build=o,this.runtime=f,this.instanceId=crypto.randomUUID()}build;runtime;instanceId;get deploymentName(){return this.runtime.__ZUPLO_DEPLOYMENT_NAME??this.config.deployment_name??void 0}get useLegacyServiceRouting(){return this.config.use_legacy_service_routing??void 0}get useProxyForFetchFromZups(){return this.config.use_proxy_for_fetch_from_zups??void 0}get devPortalBaseUrl(){return this.runtime.__ZUPLO_DEV_PORTAL_URL??this.config.dev_portal_url??"https://dev-portal-v4-1.zuplo.com"}get buildAssetsUrl(){return this.runtime.__ZUPLO_BUILD_ASSETS_URL??this.config.build_assets_url??"https://build-assets.zuplo.com"}get zuploEdgeApiUrl(){return this.config.zuplo_edge_api_url??"https://api.zuploedge.com"}get remoteLogToken(){return this.runtime.__ZUPLO_REMOTE_LOG_TOKEN??this.config.remote_log_token??void 0}get zuploClientAuthBucketId(){return this.config.zuplo_auth_client_bucket_id??"auth_o8PUdhKxSTOiB794GWPwLQCD"}get managementApiURL(){return this.runtime.__ZUPLO_MANAGEMENT_API_URL??this.config.management_api_url??"https://api.zuplo.com"}get developerApiUrl(){return this.config.developer_api_url??"https://dev.zuplo.com"}get cdnURL(){return this.runtime.__ZUPLO_CDN_URL??this.config.cdn_url??"https://cdn.zuplo.com"}get remoteLogURL(){return this.runtime.__ZUPLO_REMOTE_LOG_URL??this.config.log_event_api??"https://ellie.zuploedge.com"}get loggingId(){return this.runtime.__ZUPLO_LOGGING_ID??this.config.logging_id??void 0}get redisURL(){return this.runtime.__ZUPLO_REDIS_URL??this.config.redis_proxy_url??"https://redis-proxy.zuploedge.com"}get apiKeyServiceUrl(){return this.runtime.__ZUPLO_API_KEY_SERVICE_URL??this.config.api_key_service_url??"https://apikey.zuploedge.com"}get meteringServiceUrl(){return this.config.metering_service_url??"https://meters.zuploedge.com"}get authApiJWT(){return this.runtime.__ZUPLO_AUTH_API_JWT??void 0}get authClientId(){return this.config.auth_client_id??this.runtime.__ZUPLO_AUTH_CLIENT_ID}get authClientSecret(){return this.config.auth_client_secret??this.runtime.__ZUPLO_AUTH_CLIENT_SECRET}get authPublicKey(){return this.config.auth_public_key??this.runtime.__ZUPLO_AUTH_PUBLIC_KEY}get authPrivateKey(){return this.config.auth_private_key??this.runtime.__ZUPLO_AUTH_PRIVATE_KEY}get userLogLevel(){return this.runtime.ZUPLO_LOG_LEVEL??this.runtime.__ZUPLO_LOG_LEVEL??this.config.user_log_level??"debug"}get systemLogLevel(){return this.runtime.__ZUPLO_LOG_LEVEL??this.config.system_log_level??"debug"}get logFormat(){return this.runtime.__ZUPLO_LOG_FORMAT??this.config.log_format??"cloudflare"}get isCloudflare(){return this.runtime.__ZUPLO_RUNTIME_TYPE?this.runtime.__ZUPLO_RUNTIME_TYPE==="cloudflare":this.config.runtime_type?this.config.runtime_type==="cloudflare":typeof WebSocketPair=="function"}get isManagedDedicated(){return this.runtime.__ZUPLO_IS_MANAGED_DEDICATED==="true"}get isDeno(){if(this.runtime.__ZUPLO_RUNTIME_TYPE)return this.runtime.__ZUPLO_RUNTIME_TYPE==="deno";if(this.config.runtime_type)return this.config.runtime_type==="deno";{let o=globalThis.Deno?.version?.deno;return typeof WebSocketPair!="function"&&o}}get isLocalDevelopment(){return this.build.IS_LOCAL_DEVELOPMENT}get isTestMode(){return!!this.runtime.__ZUPLO_TEST_MODE}get systemUserAgent(){return`Zuplo/${this.build.ZUPLO_VERSION}`}get loggingEnvironmentType(){return this.isCloudflare?"edge":this.isLocalDevelopment?"local":this.isDeno?"working-copy":"unknown"}get loggingEnvironmentStage(){return this.build.ENVIRONMENT_TYPE==="PRODUCTION"?"production":this.build.ENVIRONMENT_TYPE==="PREVIEW"?"preview":this.isLocalDevelopment?"local":this.isWorkingCopy?"working-copy":"unknown"}get isWorkingCopy(){return this.build.ENVIRONMENT_TYPE==="WORKING_COPY"}get rateLimitServiceTimeoutMs(){let o=this.runtime.__ZUPLO_RATE_LIMIT_TIMEOUT_MS,f=this.config.rate_limit_service_timeout_ms,d=o??f;if(!d)return 500;let y=Number(d);return Number.isFinite(y)&&y>0?y:500}};var pZt=["ZUPLO_USER_LOGGER_DATA_DOG_API_KEY","ZUPLO_USER_LOGGER_DATA_DOG_URL","ZUPLO_LOG_LEVEL","ZUPLO_HANDLER_WRITE_LOG_LEVEL"];function pit(s){return s.startsWith("__ZUPLO")||s.startsWith("ZUPLO_")?!pZt.includes(s)&&!s.startsWith("ZUPLO_PUBLIC_"):s.startsWith("ZUDOKU_")?!s.startsWith("ZUDOKU_PUBLIC_"):!1}t(pit,"isRestrictedEnvVariableName");function dit(s){return!!s.startsWith("ZUPLO_")}t(dit,"isZuploReadableEnvVariableName");var Jkr=new Proxy({},{get(s,o){let f=String(o);switch(f){case"ZUPLO_ENVIRONMENT_TYPE":return Em.instance.loggingEnvironmentType;case"ZUPLO_ENVIRONMENT_STAGE":return Em.instance.loggingEnvironmentStage;case"ZUPLO_ENVIRONMENT_NAME":return Em.instance.runtime.__ZUPLO_DEPLOYMENT_NAME;case"ZUPLO_ACCOUNT_NAME":return Em.instance.build.ACCOUNT_NAME;case"ZUPLO_PROJECT_NAME":return Em.instance.build.PROJECT_NAME;case"ZUPLO_BUILD_ID":return Em.instance.build.BUILD_ID;case"ZUPLO_COMPATIBILITY_DATE":return Em.instance.build.COMPATIBILITY_DATE}if(!(pit(f)&&!dit(f)))return Em.instance.runtime[f]}});function NV(s,o,f){return`_${JP(`${s}_${o}_${f}`)}`}t(NV,"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 IV(s,o){return`_${JP(s)}_${JP(o)}`}t(IV,"getIdForRefSchema");function JP(s){let o=s.replace(/\[/g,"_LBRACKET_").replace(/\]/g,"_RBRACKET_").replace(/\{/g,"_LCURLY_").replace(/\}/g,"_RCURLY_").replace(/\//g,"_SLASH_").replace(/-/g,"_DASH_").replace(/\./g,"_DOT_").replace(/\+/g,"_PLUS_").replace(/:/g,"_COLON_").replace(/@/g,"_AT_").replace(/\$/g,"_DOLLAR_").replace(/[^a-zA-Z0-9_]/g,"_");return/^[a-zA-Z_]/.test(o)||(o=`_${o}`),o}t(JP,"sanitizedIdentifierName");var aAe={};$tt(aAe,{UnsafePathError:()=>Moe,deleteFolder:()=>wZt,dirExists:()=>sAe,fileExists:()=>gZt,getParentDirFilename:()=>EZt,isNotFileOrDirectory:()=>vZt,listFolderContents:()=>git,listFolders:()=>SZt,mkDirTemp:()=>yZt,mkdirForFilePathIfNotExits:()=>TZt,mkdirIfNotExists:()=>yit,safePath:()=>xZt,tarFolder:()=>CZt,untarFile:()=>kZt});import{spawn as mit}from"node:child_process";import{randomUUID as dZt}from"node:crypto";import ZN from"node:fs/promises";import{platform as mZt,tmpdir as hZt}from"node:os";import N1 from"node:path";var hit=[".git","node_modules",".yarn",".DS_Store"];async function gZt(s){try{return(await ZN.stat(s)).isFile()}catch{return!1}}t(gZt,"fileExists");async function yZt(){let s=process.env.BUILD_FILE_PATH??hZt(),o=dZt().replaceAll("-",""),f=N1.join(s,o);return await ZN.mkdir(f,{recursive:!0}),f}t(yZt,"mkDirTemp");async function sAe(s){try{return(await ZN.stat(s)).isDirectory()}catch{return!1}}t(sAe,"dirExists");async function vZt(s){try{return await ZN.stat(s),!1}catch{return!0}}t(vZt,"isNotFileOrDirectory");function bZt(s,o){let f=N1.sep==="\\"?"\\\\":N1.sep,d=new RegExp(`(.*)(${f}${o})$|(.*)(${o}${f})`),y=s.match(d);if(!y)return"";let E=s.split(y[0]);return E[1]===""?"":N1.join(N1.sep,E[1])}t(bZt,"getParentDirectory");async function SZt(s){if(!await sAe(s))return[];let o=await ZN.readdir(s,{withFileTypes:!0}),f=[];for await(let d of o)hit.includes(d.name)||d.isDirectory()&&f.push(d.name);return f}t(SZt,"listFolders");async function git(s,o,f=!0){let d=bZt(s,o),y=await ZN.readdir(s,{withFileTypes:!0}),E=[];for await(let P of y)if(!hit.includes(P.name)||!f)if(P.isDirectory()){let F=await git(N1.join(s,P.name),o,f);E.push(...F)}else E.push(N1.join(d,P.name));return E}t(git,"listFolderContents");var yit=t(async s=>{await ZN.mkdir(s,{recursive:!0})},"mkdirIfNotExists"),TZt=t(async s=>{let o=N1.dirname(s);return yit(o)},"mkdirForFilePathIfNotExits"),Moe=class extends Error{static{t(this,"UnsafePathError")}};function xZt(s){let o=N1.normalize(s),f=t(d=>{let y=N1.normalize(d),E=process.platform==="win32",P=!1;if(E?P=y.toLowerCase().startsWith(o.toLowerCase()):P=y.startsWith(o),!P)throw new Moe("Resolved path is not part of the project.");return y},"ensureSafePath");return{resolve:t((...d)=>f(N1.resolve(...d)),"resolve")}}t(xZt,"safePath");function EZt(s){return N1.join(N1.basename(N1.dirname(s)),N1.basename(s))}t(EZt,"getParentDirFilename");async function CZt({folderPath:s,outputTarPath:o,exclude:f=["node_modules",".git","dist"],logger:d}){let y=[],E=[],P;try{await new Promise((F,J)=>{let V=mit("tar",[...f.flatMap(Te=>["--exclude",Te]),...mZt()!=="darwin"?["--warning=no-file-changed"]:[],"-cvf",o,"-C",s,"."]);V.stdout.on("data",Te=>{let de=Te.toString().trim();de.length>0&&y.push(de.trim())}),V.stderr.on("data",Te=>{let de=Te.toString().trim();de.length>0&&E.push(de.trim())}),V.on("close",Te=>{P=Te,Te===0?F():J(new Error(`tar process exited with code ${Te}`))}),V.on("error",Te=>{J(Te)})})}catch(F){throw new Error("Failed to tar folder",{cause:F})}finally{d.info({stdout:y.join(`
572
572
  `),stderr:E.join(`
573
573
  `),exitCode:P},"Tar process logs")}}t(CZt,"tarFolder");async function kZt({tarFilePath:s,outputDir:o,logger:f}){let d=[],y=[],E;try{await new Promise((P,F)=>{let J=mit("sh",["-c",`tar -xvf ${s} -C ${o};`]);J.stdout.on("data",V=>{let Te=V.toString().trim();Te.length>0&&d.push(Te.trim())}),J.stderr.on("data",V=>{let Te=V.toString().trim();Te.length>0&&y.push(Te.trim())}),J.on("close",V=>{E=V,V===0?P():F(new Error(`tar process exited with code ${V}`))}),J.on("error",V=>{F(V)})})}catch(P){throw new Error("Failed to untar file",{cause:P})}finally{f.info({stdout:d.join(`
574
574
  `),stderr:y.join(`
@@ -632,7 +632,7 @@ ${TT}${f.detail.toString().split(`
632
632
  `).join(`
633
633
  ${TT}`)}`:""}`);d.push(P);let F=dmr(f.location??void 0);if(F&&d.push(`${TT}${E(`The error was found in the file: ${F}`)}`),f.location?.file&&f.location.column!==0&&f.location.line!==0)try{let J=_mr.join(s,f.location.file),V=await fmr(J,"utf-8"),Te=(0,apt.codeFrameColumns)(V,{start:{line:f.location.line,column:f.location.column}},{highlightCode:!0,message:f.message,linesAbove:3,linesBelow:3});d.push(TT),d.push(Te)}catch{}else f.location?.file&&d.push(DS.red(`${TT}File: ${f.location.file}:${f.location.line}:${f.location.column}`));d.push(""),f.severity==="warning"?o.warn(d.join(`
634
634
  `)):o.error(d.join(`
635
- `))}t(spt,"logIssue");function dmr(s){if(s?.file){let o=s.file;if(s.line)return`${o}:${s.line}`;if(s.column)return`${o}:${s.column}`}}t(dmr,"getFileLocation");var xT=class{static{t(this,"PluginResult")}errors=[];warnings=[];constructor(o){o&&this.errors.push(o)}};async function opt(s,o,f){let d=[],y=[],E=new Map;for await(let P of s)try{let F=await P(o,{data:E,errors:y,warnings:d});if(y.push(...F.errors.map(J=>(J.pluginName===""&&(J.pluginName=P.name),J))),d.push(...F.warnings),F.errors.length>0)break}catch(F){if(F instanceof k1?y.push({...F.issue,pluginName:F.pluginName??"unknown"}):y.push(F),f?.throwOnException)throw F;break}return{errors:y,warnings:d,data:E}}t(opt,"runPlugins");import{readFile as mmr}from"node:fs/promises";import cpt from"node:path";import{parse as hmr}from"jsonc-parser";var Q4e={version:1,compatibilityDate:void 0,allowDuplicateRoutes:!1,allowHostHeaderOverride:!1,flags:{},experimental:{},projectType:"managed-edge"};async function UM(s){let o=cpt.join(s,yPe),f=cpt.join(s,vPe),d=!1,y=o;await tu.fileExists(o)?(d=!0,y=o):await tu.fileExists(f)&&(d=!0,y=f);let E;if(d){let F=await mmr(y,"utf-8");if(E=hmr(F,[]),typeof E!="object")return{status:R9,errors:[{message:"Invalid zuplo.jsonc file.",detail:"The zuplo.jsonc file is not a valid JSON object",pluginName:"buildData",severity:"error"}]};let V=[];"version"in E&&E.version!==1&&V.push({message:"Invalid version set in zuplo.jsonc file.",detail:"version in zuplo.jsonc must be set to 1",pluginName:"buildData",severity:"error"}),"compatibilityDate"in E&&M9&&typeof E.compatibilityDate=="string"&&(M9.includes(E.compatibilityDate)||V.push({message:"Invalid compatibilityDate set in zuplo.jsonc file.",detail:`compatibilityDate was set to ${E.compatibilityDate}. Valid compatibility dates are ${M9.join(", ")}`,pluginName:"buildData",severity:"error"}));for(let Te of["allowDuplicateRoutes","allowHostHeaderOverride"]){let de=E[Te];de!==void 0&&typeof de!="boolean"&&V.push({message:`Invalid property type for ${Te}`,detail:`The property ${Te} must be a boolean.`,pluginName:"buildData",severity:"error"})}if(E.projectType!==void 0&&!["managed-edge","managed-dedicated","self-managed"].includes(E.projectType)&&V.push({message:"Invalid projectType set in zuplo.jsonc file.",detail:`projectType was set to ${E.projectType}. Valid project types are managed-edge, managed-dedicated, self-managed`,pluginName:"buildData",severity:"error"}),V.length>0)return{status:R9,errors:V};E.flags=Qae(E.compatibilityDate,E.flags)}else E={version:1,flags:Qae(void 0,void 0)};let P={...Q4e,...E};return{status:MP,config:P}}t(UM,"getZuploConfig");import gmr from"node:fs";import{mkdir as lpt,readdir as ymr,readFile as vmr,writeFile as bmr}from"node:fs/promises";import eG from"node:path";import Smr from"node:readline";var upt=t(async function({sourceDirectory:s,logger:o,outputDirectory:f,deploymentName:d,environmentType:y,urls:E}){return Ou.timeFn("Building OpenAPI files",async()=>{o.debug("Building OpenAPI files");let P=eG.join(s,xy),F=eG.join(P,soe),J=eG.join(f,frt,xy);try{if(await tu.dirExists(f)||await lpt(f),await tu.dirExists(J)||await lpt(J,{recursive:!0}),!await W9(s))return new xT({message:"Failed to build project because no OpenAPI file was found on the 'config' folder",pluginName:"build-open-api-files",severity:"error"});let de=(await ymr(P)).filter(je=>je.endsWith(".oas.json"));if(!await tu.fileExists(F))return new xT({message:"The project must include a policies file ('/config/policies.json')",pluginName:"build-open-api-files",severity:"error"});let ae=await vmr(F,"utf-8"),Ye=JSON.parse(ae),Ue=t(async je=>{let Kt=eG.join(P,je);if(!await Tmr(Kt)){o.debug(`Skipping ${je} as it does not use the OpenAPI handler`);return}let Ut;try{Ut=await Kft({sourceDirectory:s,openApiDocPath:Kt,policiesConfig:Ye,logger:o,environmentType:y,deploymentName:d,urls:E})}catch(nn){if(o.error(nn),nn instanceof SyntaxError||nn instanceof bT.ResolverError||nn instanceof bT.JSONParserError||nn instanceof bT.ParserError||nn instanceof bT.MissingPointerError||nn instanceof zO)return new xT({message:nn.message,location:{file:je,column:0,length:0,line:0,lineText:"",namespace:"",suggestion:""},pluginName:"build-open-api-files",severity:"error"});if(nn instanceof k1)return new xT({...nn.issue,pluginName:"build-open-api-files"});throw nn}let kr=JSON.stringify(Ut,null,2),An=eG.join(J,je);await bmr(An,kr,"utf-8")},"processFile");await Promise.all(de.map(Ue))}catch(V){return o.error(V),new xT({message:"Error building OpenAPI files",pluginName:"build-open-api-files",severity:"error"})}return new xT})},"buildOpenApiFiles");async function Tmr(s){let o=gmr.createReadStream(s),f=Smr.createInterface({input:o,crlfDelay:1/0}),d=!1,y=!1;for await(let E of f)if(E.includes('"openApiSpecHandler"')&&(d=!0),E.includes('"openApiFilePath"')&&(y=!0),d&&y)break;return f.close(),o.destroy(),d&&y}t(Tmr,"usesOpenApiHandler");import xmr from"node:fs/promises";import Emr from"node:path";var fpt=t(async function({outputDirectory:s,systemDirectory:o,cacheDirectory:f,logger:d}){return Ou.timeFn("Cleaning output",async()=>{d.debug("Cleaning output");let y=Emr.join(f,"routes");return await Promise.all([s,o,y].map(async E=>{try{await xmr.rm(E,{recursive:!0,force:!0})}catch(P){d.error(P)}})),{warnings:[],errors:[]}})},"cleanOutput");import _pt from"node:fs/promises";var ppt=t(async function({systemDirectory:s,cacheDirectory:o,logger:f}){return Ou.timeFn("Creating system directory",async()=>{f.debug("Creating system directory");try{return await Promise.all([_pt.mkdir(s,{recursive:!0}),_pt.mkdir(o,{recursive:!0})]),{warnings:[],errors:[]}}catch(d){return f.error(d),{warnings:[],errors:[]}}return{warnings:[],errors:[]}})},"createSystemDir");var dpt=t(async function({logger:s}){return Ou.timeFn("Checking for breaking changes",async()=>(s.debug("Checking for breaking changes"),{warnings:[],errors:[]}))},"checkForDeprecations");import{readFile as Cmr,writeFile as kmr}from"node:fs/promises";import wmr from"node:path";var mpt=t(async function({systemDirectory:s,buildId:o,logger:f,config:d,publicZuploEnvironmentVariables:y}){return Ou.timeFn("Generating build data",async()=>{f.debug("Generating build data");let E=await Cmr(new URL("../../../package.json",import.meta.url),"utf-8"),P=JSON.parse(E),F={BUILD_ID:o??"",GIT_SHA:process.env.GIT_SHA,TIMESTAMP:new Date().toISOString(),BUILD_ENV:km.NODE_ENV,ZUPLO_VERSION:P.version,API_VERSION:process.env.API_VERSION,COMPATIBILITY_DATE:d?.compatibilityDate,ACCOUNT_NAME:y?.ZUPLO_ACCOUNT_NAME,PROJECT_NAME:y?.ZUPLO_PROJECT_NAME,ENVIRONMENT_TYPE:y?.ZUPLO_ENVIRONMENT_TYPE,IS_LOCAL_DEVELOPMENT:km.isLocalDevelopment(),COMPATIBILITY_FLAGS:pPe[d?.compatibilityDate??"none"]},J=JSON.stringify(F,void 0,2),V=wmr.join(s,aoe);try{await kmr(V,J.trimStart(),"utf-8")}catch(Te){f.error(Te);let de={message:`Error creating file at ${V}`,pluginName:"buildData",severity:"error"};return{warnings:[],errors:[de]}}return{warnings:[],errors:[]}})},"generateBuildData");import Dmr from"node:fs/promises";import Pmr from"node:path";var Amr=`import { Handler, ServiceProviderImpl } from "@zuplo/runtime";
635
+ `))}t(spt,"logIssue");function dmr(s){if(s?.file){let o=s.file;if(s.line)return`${o}:${s.line}`;if(s.column)return`${o}:${s.column}`}}t(dmr,"getFileLocation");var xT=class{static{t(this,"PluginResult")}errors=[];warnings=[];constructor(o){o&&this.errors.push(o)}};async function opt(s,o,f){let d=[],y=[],E=new Map;for await(let P of s)try{let F=await P(o,{data:E,errors:y,warnings:d});if(y.push(...F.errors.map(J=>(J.pluginName===""&&(J.pluginName=P.name),J))),d.push(...F.warnings),F.errors.length>0)break}catch(F){if(F instanceof k1?y.push({...F.issue,pluginName:F.pluginName??"unknown"}):y.push(F),f?.throwOnException)throw F;break}return{errors:y,warnings:d,data:E}}t(opt,"runPlugins");import{readFile as mmr}from"node:fs/promises";import cpt from"node:path";import{parse as hmr}from"jsonc-parser";var Q4e={version:1,compatibilityDate:void 0,allowDuplicateRoutes:!1,allowHostHeaderOverride:!1,flags:{},experimental:{},projectType:"managed-edge",devPortal:{}};async function UM(s){let o=cpt.join(s,yPe),f=cpt.join(s,vPe),d=!1,y=o;await tu.fileExists(o)?(d=!0,y=o):await tu.fileExists(f)&&(d=!0,y=f);let E;if(d){let F=await mmr(y,"utf-8");if(E=hmr(F,[]),typeof E!="object")return{status:R9,errors:[{message:"Invalid zuplo.jsonc file.",detail:"The zuplo.jsonc file is not a valid JSON object",pluginName:"buildData",severity:"error"}]};let V=[];"version"in E&&E.version!==1&&V.push({message:"Invalid version set in zuplo.jsonc file.",detail:"version in zuplo.jsonc must be set to 1",pluginName:"buildData",severity:"error"}),"compatibilityDate"in E&&M9&&typeof E.compatibilityDate=="string"&&(M9.includes(E.compatibilityDate)||V.push({message:"Invalid compatibilityDate set in zuplo.jsonc file.",detail:`compatibilityDate was set to ${E.compatibilityDate}. Valid compatibility dates are ${M9.join(", ")}`,pluginName:"buildData",severity:"error"}));for(let Te of["allowDuplicateRoutes","allowHostHeaderOverride"]){let de=E[Te];de!==void 0&&typeof de!="boolean"&&V.push({message:`Invalid property type for ${Te}`,detail:`The property ${Te} must be a boolean.`,pluginName:"buildData",severity:"error"})}if(E.projectType!==void 0&&!["managed-edge","managed-dedicated","self-managed"].includes(E.projectType)&&V.push({message:"Invalid projectType set in zuplo.jsonc file.",detail:`projectType was set to ${E.projectType}. Valid project types are managed-edge, managed-dedicated, self-managed`,pluginName:"buildData",severity:"error"}),E.devPortal!==void 0&&(typeof E.devPortal!="object"||E.devPortal===null?V.push({message:"Invalid devPortal set in zuplo.jsonc file.",detail:"The property devPortal must be an object.",pluginName:"buildData",severity:"error"}):E.devPortal.serverSideRendering!==void 0&&typeof E.devPortal.serverSideRendering!="boolean"&&V.push({message:"Invalid property type for devPortal.serverSideRendering",detail:"The property devPortal.serverSideRendering must be a boolean.",pluginName:"buildData",severity:"error"})),V.length>0)return{status:R9,errors:V};E.flags=Qae(E.compatibilityDate,E.flags)}else E={version:1,flags:Qae(void 0,void 0)};let P={...Q4e,...E};return{status:MP,config:P}}t(UM,"getZuploConfig");import gmr from"node:fs";import{mkdir as lpt,readdir as ymr,readFile as vmr,writeFile as bmr}from"node:fs/promises";import eG from"node:path";import Smr from"node:readline";var upt=t(async function({sourceDirectory:s,logger:o,outputDirectory:f,deploymentName:d,environmentType:y,urls:E}){return Ou.timeFn("Building OpenAPI files",async()=>{o.debug("Building OpenAPI files");let P=eG.join(s,xy),F=eG.join(P,soe),J=eG.join(f,frt,xy);try{if(await tu.dirExists(f)||await lpt(f),await tu.dirExists(J)||await lpt(J,{recursive:!0}),!await W9(s))return new xT({message:"Failed to build project because no OpenAPI file was found on the 'config' folder",pluginName:"build-open-api-files",severity:"error"});let de=(await ymr(P)).filter(je=>je.endsWith(".oas.json"));if(!await tu.fileExists(F))return new xT({message:"The project must include a policies file ('/config/policies.json')",pluginName:"build-open-api-files",severity:"error"});let ae=await vmr(F,"utf-8"),Ye=JSON.parse(ae),Ue=t(async je=>{let Kt=eG.join(P,je);if(!await Tmr(Kt)){o.debug(`Skipping ${je} as it does not use the OpenAPI handler`);return}let Ut;try{Ut=await Kft({sourceDirectory:s,openApiDocPath:Kt,policiesConfig:Ye,logger:o,environmentType:y,deploymentName:d,urls:E})}catch(nn){if(o.error(nn),nn instanceof SyntaxError||nn instanceof bT.ResolverError||nn instanceof bT.JSONParserError||nn instanceof bT.ParserError||nn instanceof bT.MissingPointerError||nn instanceof zO)return new xT({message:nn.message,location:{file:je,column:0,length:0,line:0,lineText:"",namespace:"",suggestion:""},pluginName:"build-open-api-files",severity:"error"});if(nn instanceof k1)return new xT({...nn.issue,pluginName:"build-open-api-files"});throw nn}let kr=JSON.stringify(Ut,null,2),An=eG.join(J,je);await bmr(An,kr,"utf-8")},"processFile");await Promise.all(de.map(Ue))}catch(V){return o.error(V),new xT({message:"Error building OpenAPI files",pluginName:"build-open-api-files",severity:"error"})}return new xT})},"buildOpenApiFiles");async function Tmr(s){let o=gmr.createReadStream(s),f=Smr.createInterface({input:o,crlfDelay:1/0}),d=!1,y=!1;for await(let E of f)if(E.includes('"openApiSpecHandler"')&&(d=!0),E.includes('"openApiFilePath"')&&(y=!0),d&&y)break;return f.close(),o.destroy(),d&&y}t(Tmr,"usesOpenApiHandler");import xmr from"node:fs/promises";import Emr from"node:path";var fpt=t(async function({outputDirectory:s,systemDirectory:o,cacheDirectory:f,logger:d}){return Ou.timeFn("Cleaning output",async()=>{d.debug("Cleaning output");let y=Emr.join(f,"routes");return await Promise.all([s,o,y].map(async E=>{try{await xmr.rm(E,{recursive:!0,force:!0})}catch(P){d.error(P)}})),{warnings:[],errors:[]}})},"cleanOutput");import _pt from"node:fs/promises";var ppt=t(async function({systemDirectory:s,cacheDirectory:o,logger:f}){return Ou.timeFn("Creating system directory",async()=>{f.debug("Creating system directory");try{return await Promise.all([_pt.mkdir(s,{recursive:!0}),_pt.mkdir(o,{recursive:!0})]),{warnings:[],errors:[]}}catch(d){return f.error(d),{warnings:[],errors:[]}}return{warnings:[],errors:[]}})},"createSystemDir");var dpt=t(async function({logger:s}){return Ou.timeFn("Checking for breaking changes",async()=>(s.debug("Checking for breaking changes"),{warnings:[],errors:[]}))},"checkForDeprecations");import{readFile as Cmr,writeFile as kmr}from"node:fs/promises";import wmr from"node:path";var mpt=t(async function({systemDirectory:s,buildId:o,logger:f,config:d,publicZuploEnvironmentVariables:y}){return Ou.timeFn("Generating build data",async()=>{f.debug("Generating build data");let E=await Cmr(new URL("../../../package.json",import.meta.url),"utf-8"),P=JSON.parse(E),F={BUILD_ID:o??"",GIT_SHA:process.env.GIT_SHA,TIMESTAMP:new Date().toISOString(),BUILD_ENV:km.NODE_ENV,ZUPLO_VERSION:P.version,API_VERSION:process.env.API_VERSION,COMPATIBILITY_DATE:d?.compatibilityDate,ACCOUNT_NAME:y?.ZUPLO_ACCOUNT_NAME,PROJECT_NAME:y?.ZUPLO_PROJECT_NAME,ENVIRONMENT_TYPE:y?.ZUPLO_ENVIRONMENT_TYPE,IS_LOCAL_DEVELOPMENT:km.isLocalDevelopment(),COMPATIBILITY_FLAGS:pPe[d?.compatibilityDate??"none"]},J=JSON.stringify(F,void 0,2),V=wmr.join(s,aoe);try{await kmr(V,J.trimStart(),"utf-8")}catch(Te){f.error(Te);let de={message:`Error creating file at ${V}`,pluginName:"buildData",severity:"error"};return{warnings:[],errors:[de]}}return{warnings:[],errors:[]}})},"generateBuildData");import Dmr from"node:fs/promises";import Pmr from"node:path";var Amr=`import { Handler, ServiceProviderImpl } from "@zuplo/runtime";
636
636
  import routeLoader from "zuplo:routes";
637
637
  import * as schemaValidations from "zuplo:schema-validations";
638
638
  import { runtimeInit } from "zuplo:runtime-extension";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zuplo/core",
3
- "version": "6.70.37",
3
+ "version": "6.70.39",
4
4
  "repository": "https://github.com/zuplo/zuplo",
5
5
  "author": "Zuplo, Inc.",
6
6
  "type": "module",
@@ -40,9 +40,9 @@
40
40
  "source-map": "^0.7.4"
41
41
  },
42
42
  "peerDependencies": {
43
- "@zuplo/graphql": "6.70.37",
44
- "@zuplo/otel": "6.70.37",
45
- "@zuplo/runtime": "6.70.37",
43
+ "@zuplo/graphql": "6.70.39",
44
+ "@zuplo/otel": "6.70.39",
45
+ "@zuplo/runtime": "6.70.39",
46
46
  "deno": "2.3.1"
47
47
  }
48
48
  }