@zuplo/core 6.70.21 → 6.70.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -568,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," "]]),woe=new Map([...xV,[118,"\v"],[48,"\0"]]),HKt=new Map([[OPe,OPe],["\\","\\"],["/","/"],["\b","b"],[`
569
569
  `,"n"],["\f","f"],["\r","r"],[" ","t"]]),WEr=new Map([...HKt,["\v","v"],["\0","0"],["\u2028","u2028"],["\u2029","u2029"]]),koe=new Map([[RKt,"LBracket"],[MKt,"RBracket"],[jKt,"LBrace"],[BKt,"RBrace"],[UKt,"Colon"],[zKt,"Comma"],[$Kt,"Boolean"],[JKt,"Boolean"],[WKt,"Null"]]),Coe=new Map([...koe,[qKt,"Number"],[VKt,"Number"]]),FPe=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}},LPe=class extends jP{static{t(this,"UnexpectedChar")}constructor(o,f){super(`Unexpected character '${String.fromCharCode(o)}' found.`,f)}},RPe=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)}},Doe=class extends jP{static{t(this,"UnexpectedEOF")}constructor(o){super("Unexpected end of input found.",o)}},GKt=/[\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]/,YKt=/[\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]/,KKt=13,Int=10,MPe=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===KKt?(this.#s=!0,this.peek()===Int&&this.#r++):o===Int&&(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}},XKt="Infinity",ZKt="NaN",QKt=new Set([116,102,110]),jPe=new Set([32,9,10,13]),Ont=new Set([...jPe,11,12,160,8232,8233,65279,160,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288]),eXt={mode:"json",ranges:!1},tXt=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 IPe(s){return MP(s)||s>=65&&s<=70||s>=97&&s<=102}t(IPe,"isHexDigit");function rXt(s){return s>=49&&s<=57}t(rXt,"isPositiveDigit");function nXt(s){return QKt.has(s)}t(nXt,"isKeywordStart");function Lnt(s){return MP(s)||s===46||s===45}t(Lnt,"isNumberStart");function iXt(s){return Lnt(s)||s===43}t(iXt,"isJSON5NumberStart");function Fnt(s,o){return s===34||o&&s===39}t(Fnt,"isStringStart");function Rnt(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 GKt.test(o)}t(Rnt,"isJSON5IdentifierStart");function sXt(s){if(Rnt(s)||MP(s))return!0;let o=String.fromCharCode(s);return YKt.test(o)}t(sXt,"isJSON5IdentifierPart");var BPe=class{static{t(this,"Tokenizer")}#e;#n;#t;#r;#s;#m;#c;#u;#f;#p;#a;constructor(o,f){this.#n=o,this.#e={...eXt,...f},this.#t=new MPe(o),this.#r=this.#e.mode==="json5",this.#s=this.#e.mode!=="json",this.#m=this.#e.ranges,this.#u=this.#r?woe.has.bind(woe):xV.has.bind(xV),this.#f=this.#r?FPe.has.bind(FPe):()=>!1,this.#p=this.#r?d=>d===120:()=>!1,this.#a=this.#r?Ont.has.bind(Ont):jPe.has.bind(jPe)}#i(o,f=this.#t.locate()){throw new LPe(o,f)}#o(o,f=this.#t.locate()){throw new RPe(o,f)}#h(){throw new Doe(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(),IPe(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(),!sXt(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!==XKt&&d!==ZKt&&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(),IPe(o)||(this.#t.next(),this.#i(o));do this.#t.next(),f++,o=this.#t.peek();while(IPe(o))}else MP(o)&&this.#i(o);else if(!this.#r||o!==46)for(rXt(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(Coe.has(d))this.#c=this.#d(Coe.get(d),1,f);else if(Rnt(o)){let y=this.#y(o);Coe.has(y)?this.#c=this.#d(Coe.get(y),y.length,f):this.#c=this.#d("Identifier",y.length,f)}else if(iXt(o)){let y=this.#v(o);this.#c=this.#d("Number",y,f)}else if(Fnt(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(koe.has(d))this.#c=this.#d(koe.get(d),1,f);else if(nXt(o)){let y=this.#y(o);tXt.has(y)||this.#o(y,f),this.#c=this.#d(koe.get(y),y.length,f)}else if(Lnt(o)){let y=this.#v(o);this.#c=this.#d("Number",y,f)}else if(Fnt(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}}},aXt={mode:"json",ranges:!1,tokens:!1,allowTrailingCommas:!1};function oXt(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&&woe.has(F))d+=woe.get(F),E=y+2;else if(xV.has(F))d+=xV.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&&FPe.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(oXt,"getStringValue");function cXt(s,o,f=!1){switch(o.type){case"Boolean":return s==="true";case"Number":return Number(s);case"String":return oXt(s.slice(1,-1),o,f);default:throw new TypeError(`Unknown token type "${o.type}.`)}}t(cXt,"getLiteralValue");function Mnt(s,o){o=Object.freeze({...aXt,...o});let f=[],d=new BPe(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=cXt(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 Doe(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(Mnt,"parse");var lXt=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 uXt(s){return jnt(s)&&typeof s.type=="string"}t(uXt,"isNode");function fXt(s,o){function f(d,y){typeof o.enter=="function"&&o.enter(d,y);for(let E of lXt.get(d.type)){let P=d[E];jnt(P)&&(Array.isArray(P)?P.forEach(F=>f(F,d)):uXt(P)&&f(P,d))}typeof o.exit=="function"&&o.exit(d,y)}t(f,"visitNode"),f(s)}t(fXt,"traverse");function Bnt(s,o=()=>!0){let f=[];return fXt(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(Bnt,"iterator");import _Xt from"node:fs/promises";var EV=t((s,o)=>s.split(/\r?\n/)[o-1],"getFileLineContent"),Poe=t(async s=>{try{return await _Xt.readFile(s,"utf-8")}catch{return}},"getSchemaContent"),CV=t(async s=>{try{return Mnt(s)}catch(o){if(o.column&&o.line&&o.message){let f=EV(s,o.line);return{column:o.column,line:o.line,length:void 0,lineText:f}}return}},"getSchemaAST");var Unt=t(async(s,o,f)=>{try{if(s.length===0)return;for(let d of s){let y=await Poe(d),E=await pXt(y,d,o,f);if(E)return E}}catch{}},"getRouteLocationByValue"),pXt=t(async(s,o,f,d)=>{try{if(!s)return;let y=null,E=await CV(s);if(E){for(let{node:P}of Bnt(E))if(P.value&&P.value===f){y=P.loc;break}if(y!==null){let P=EV(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 znt from"node:fs/promises";import yE from"node:path";var UPe="schemas",zPe=".oas.json";var dO=t(async s=>(await znt.readdir(s)).map(f=>yE.join(s,f)).filter(f=>f.endsWith(zPe)).sort(),"getOpenApiFilesByAlphabetical"),W9=t(async s=>{let o=yE.resolve(s,"config");return(await znt.readdir(o)).filter(d=>d.endsWith(zPe)).length>=1},"oasFileInProject");function kV(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=Noe(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),Aoe(J,G,F,d,y,E,P)}else E.set(f,y.length),y.push(f),Aoe(Noe(f),o,F,d,y,E,P)}t(kV,"chaseRefs");function Aoe(s,o,f,d,y,E,P){if(Array.isArray(f))for(let F of f)Aoe(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)),kV(s,o,HN(s,J),d,y,E,P)}Aoe(s,o,f[F],d,y,E,P)}}t(Aoe,"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 Noe(s){let o=s.indexOf("#");return o>=0?s.substring(0,o):s}t(Noe,"getFilePathNameFromRefName");import sle from"node:path";function dXt(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(dXt,"base");var $nt=dXt;var mXt="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Ioe=$nt(mXt);var hXt=!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 hXt?`${o.open}${s.replace(o.regexp,o.open)}${o.close}`:s}t(V9,"run");function gXt(s){return V9(s,q9([31],39))}t(gXt,"red");function yXt(s){return V9(s,q9([32],39))}t(yXt,"green");function vXt(s){return V9(s,q9([33],39))}t(vXt,"yellow");function bXt(s){return V9(s,q9([34],39))}t(bXt,"blue");function SXt(s){return V9(s,q9([35],39))}t(SXt,"magenta");function TXt(s){return V9(s,q9([36],39))}t(TXt,"cyan");var _Cr=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 Jnt=[gXt,yXt,vXt,bXt,SXt,TXt];function xXt(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(xXt,"hashCode");function Wnt(s){let o=Math.abs(xXt(s));return Jnt[o%Jnt.length]}t(Wnt,"generateColor");import{inspect as EXt}from"node:util";function qnt(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(qnt,"format");var Vnt=t((s,...o)=>qnt(EXt,s,o),"format");var $Pe=class{static{t(this,"Debugger")}manager;ns;color;last;enabled;constructor(o,f){this.manager=o,this.ns=f,this.color=Wnt(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=Vnt(f,...o);let E=`${this.color(this.ns)} ${f} ${this.color(`+${y}ms`)}`;console.log(E),this.last=Date.now()}},JPe=class{static{t(this,"DebugManager")}debuggers;enabled;constructor(o){this.debuggers=new Map,this.enabled=o??[]}};function CXt(s){return!s||s.length===0?[]:(s=s.replace(/\s/g,"").replace(/\*/g,".+"),s.split(",").map(o=>new RegExp(`^${o}$`)))}t(CXt,"extract");var Ooe;function Foe(s){Ooe||(Ooe=new JPe(CXt(process.env.DEBUG)));let o=new $Pe(Ooe,s);return Ooe.debuggers.set(s,o),Object.assign(o.log.bind(o),{self:o})}t(Foe,"debug");var Hnt="zp-local-service";var kCr=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=Foe("zuplo:runtime:external-service");function kXt(){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(kXt,"getServiceAuth");async function Gnt(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 wV(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=kXt();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 wXt(G,Kt.ACCOUNT_NAME,Kt.PROJECT_NAME,Kt.ENVIRONMENT_TYPE),kr=Knt(Kt.ENVIRONMENT_TYPE),An=await WPe(`${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 wV(Ue.toString(),de);if(je.status===403&&je.headers.get("cf-access-domain")!==null)throw DV.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(Gnt,"externalServiceHandler");async function Ynt(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(Hnt,d),y.headers=F,await wV(P.toString(),y)}else throw new BP("Currently, we only support fetch(<some_string>, ...).")}t(Ynt,"clusterServiceHandler");async function wXt(s,o,f,d){let y=s.toLowerCase(),E=o.toLowerCase(),P=f.toLowerCase(),F=Knt(d);GN(`Hashing service name: ${E}-${y}.${E}-${P}-${F}`);let J=await WPe(`${E}-${y}`),G=await WPe(`${E}-${P}-${F}`);return`${J}.${G}`}t(wXt,"hashServiceName");async function WPe(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(WPe,"hashSegment");function Knt(s){let o=s.toLowerCase();switch(o){case"production":case"preview":return o;default:return"working-copy"}}t(Knt,"sanitizeEnvironmentType");var qPe=new Map;qPe.set("service:",Gnt);qPe.set("local:",Ynt);var wV=globalThis.fetch;function VPe(s,o){let{transformedInit:f,mtlsCertificate:d}=DXt(o);if(typeof s=="string"){let y=new URL(s),E=qPe.get(y.protocol);return E?E(s,f):Xnt(s,f,d)}else return Xnt(s,f,d)}t(VPe,"internalFetch");globalThis.fetch=VPe;function Xnt(s,o,f){if(!f)return wV(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(Xnt,"performFetch");var DXt=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 PXt={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:VPe},DV=PXt;var HPe="2025-02-06",Znt=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 Qnt(){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:HPe,ENVIRONMENT_TYPE:"mock-environment-type",GIT_SHA:void 0,IS_LOCAL_DEVELOPMENT:!1,COMPATIBILITY_FLAGS:Znt[HPe]},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:"mock-bucket-id"}})}t(Qnt,"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||(DV.console.debug("Environment has not been initialized. This is okay when running tests, a mock environment will be used."),s.#e=Qnt()),s.#e}constructor({build:o,runtime:f}){let d;try{if(f.ZUPLO_SYSTEM_CONFIGURATIONS){let y=new TextDecoder().decode(Ioe.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){DV.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 AXt=["ZUPLO_USER_LOGGER_DATA_DOG_API_KEY","ZUPLO_USER_LOGGER_DATA_DOG_URL","ZUPLO_LOG_LEVEL","ZUPLO_HANDLER_WRITE_LOG_LEVEL"];function eit(s){return s.startsWith("__ZUPLO")||s.startsWith("ZUPLO_")?!AXt.includes(s)&&!s.startsWith("ZUPLO_PUBLIC_"):s.startsWith("ZUDOKU_")?!s.startsWith("ZUDOKU_PUBLIC_"):!1}t(eit,"isRestrictedEnvVariableName");function tit(s){return!!s.startsWith("ZUPLO_")}t(tit,"isZuploReadableEnvVariableName");var rkr=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(!(eit(f)&&!tit(f)))return Em.instance.runtime[f]}});function PV(s,o,f){return`_${UP(`${s}_${o}_${f}`)}`}t(PV,"getRawOperationDataIdentifierName");function GPe(s,o,f,d){return`_${UP(s.toLowerCase())}_${o.toLowerCase()}_${f.toLowerCase()}_${d.toLowerCase()}`}t(GPe,"getIdForParameterSchema");function YPe(s,o,f){return`_${UP(s.toLowerCase())}_${o.toLowerCase()}_rb_${UP(f.toLowerCase())}`}t(YPe,"getIdForRequestBodySchema");function AV(s,o){return`_${UP(s)}_${UP(o)}`}t(AV,"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 XPe={};Itt(XPe,{UnsafePathError:()=>Loe,deleteFolder:()=>WXt,dirExists:()=>KPe,fileExists:()=>FXt,getParentDirFilename:()=>zXt,isNotFileOrDirectory:()=>RXt,listFolderContents:()=>iit,listFolders:()=>jXt,mkDirTemp:()=>LXt,mkdirForFilePathIfNotExits:()=>BXt,mkdirIfNotExists:()=>sit,safePath:()=>UXt,tarFolder:()=>$Xt,untarFile:()=>JXt});import{spawn as rit}from"node:child_process";import{randomUUID as NXt}from"node:crypto";import YN from"node:fs/promises";import{platform as IXt,tmpdir as OXt}from"node:os";import N1 from"node:path";var nit=[".git","node_modules",".yarn",".DS_Store"];async function FXt(s){try{return(await YN.stat(s)).isFile()}catch{return!1}}t(FXt,"fileExists");async function LXt(){let s=process.env.BUILD_FILE_PATH??OXt(),o=NXt().replaceAll("-",""),f=N1.join(s,o);return await YN.mkdir(f,{recursive:!0}),f}t(LXt,"mkDirTemp");async function KPe(s){try{return(await YN.stat(s)).isDirectory()}catch{return!1}}t(KPe,"dirExists");async function RXt(s){try{return await YN.stat(s),!1}catch{return!0}}t(RXt,"isNotFileOrDirectory");function MXt(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(MXt,"getParentDirectory");async function jXt(s){if(!await KPe(s))return[];let o=await YN.readdir(s,{withFileTypes:!0}),f=[];for await(let d of o)nit.includes(d.name)||d.isDirectory()&&f.push(d.name);return f}t(jXt,"listFolders");async function iit(s,o,f=!0){let d=MXt(s,o),y=await YN.readdir(s,{withFileTypes:!0}),E=[];for await(let P of y)if(!nit.includes(P.name)||!f)if(P.isDirectory()){let F=await iit(N1.join(s,P.name),o,f);E.push(...F)}else E.push(N1.join(d,P.name));return E}t(iit,"listFolderContents");var sit=t(async s=>{await YN.mkdir(s,{recursive:!0})},"mkdirIfNotExists"),BXt=t(async s=>{let o=N1.dirname(s);return sit(o)},"mkdirForFilePathIfNotExits"),Loe=class extends Error{static{t(this,"UnsafePathError")}};function UXt(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 Loe("Resolved path is not part of the project.");return y},"ensureSafePath");return{resolve:t((...d)=>f(N1.resolve(...d)),"resolve")}}t(UXt,"safePath");function zXt(s){return N1.join(N1.basename(N1.dirname(s)),N1.basename(s))}t(zXt,"getParentDirFilename");async function $Xt({folderPath:s,outputTarPath:o,exclude:f=["node_modules",".git","dist"],logger:d}){let y=[],E=[],P;try{await new Promise((F,J)=>{let G=rit("tar",[...f.flatMap(Te=>["--exclude",Te]),...IXt()!=="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(qnt,"format");var Vnt=t((s,...o)=>qnt(EXt,s,o),"format");var $Pe=class{static{t(this,"Debugger")}manager;ns;color;last;enabled;constructor(o,f){this.manager=o,this.ns=f,this.color=Wnt(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=Vnt(f,...o);let E=`${this.color(this.ns)} ${f} ${this.color(`+${y}ms`)}`;console.log(E),this.last=Date.now()}},JPe=class{static{t(this,"DebugManager")}debuggers;enabled;constructor(o){this.debuggers=new Map,this.enabled=o??[]}};function CXt(s){return!s||s.length===0?[]:(s=s.replace(/\s/g,"").replace(/\*/g,".+"),s.split(",").map(o=>new RegExp(`^${o}$`)))}t(CXt,"extract");var Ooe;function Foe(s){Ooe||(Ooe=new JPe(CXt(process.env.DEBUG)));let o=new $Pe(Ooe,s);return Ooe.debuggers.set(s,o),Object.assign(o.log.bind(o),{self:o})}t(Foe,"debug");var Hnt="zp-local-service";var kCr=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=Foe("zuplo:runtime:external-service");function kXt(){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(kXt,"getServiceAuth");async function Gnt(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 wV(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=kXt();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 wXt(G,Kt.ACCOUNT_NAME,Kt.PROJECT_NAME,Kt.ENVIRONMENT_TYPE),kr=Knt(Kt.ENVIRONMENT_TYPE),An=await WPe(`${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 wV(Ue.toString(),de);if(je.status===403&&je.headers.get("cf-access-domain")!==null)throw DV.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(Gnt,"externalServiceHandler");async function Ynt(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(Hnt,d),y.headers=F,await wV(P.toString(),y)}else throw new BP("Currently, we only support fetch(<some_string>, ...).")}t(Ynt,"clusterServiceHandler");async function wXt(s,o,f,d){let y=s.toLowerCase(),E=o.toLowerCase(),P=f.toLowerCase(),F=Knt(d);GN(`Hashing service name: ${E}-${y}.${E}-${P}-${F}`);let J=await WPe(`${E}-${y}`),G=await WPe(`${E}-${P}-${F}`);return`${J}.${G}`}t(wXt,"hashServiceName");async function WPe(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(WPe,"hashSegment");function Knt(s){let o=s.toLowerCase();switch(o){case"production":case"preview":return o;default:return"working-copy"}}t(Knt,"sanitizeEnvironmentType");var qPe=new Map;qPe.set("service:",Gnt);qPe.set("local:",Ynt);var wV=globalThis.fetch;function VPe(s,o){let{transformedInit:f,mtlsCertificate:d}=DXt(o);if(typeof s=="string"){let y=new URL(s),E=qPe.get(y.protocol);return E?E(s,f):Xnt(s,f,d)}else return Xnt(s,f,d)}t(VPe,"internalFetch");globalThis.fetch=VPe;function Xnt(s,o,f){if(!f)return wV(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(Xnt,"performFetch");var DXt=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 PXt={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:VPe},DV=PXt;var HPe="2025-02-06",Znt=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 Qnt(){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:HPe,ENVIRONMENT_TYPE:"mock-environment-type",GIT_SHA:void 0,IS_LOCAL_DEVELOPMENT:!1,COMPATIBILITY_FLAGS:Znt[HPe]},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(Qnt,"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||(DV.console.debug("Environment has not been initialized. This is okay when running tests, a mock environment will be used."),s.#e=Qnt()),s.#e}constructor({build:o,runtime:f}){let d;try{if(f.ZUPLO_SYSTEM_CONFIGURATIONS){let y=new TextDecoder().decode(Ioe.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){DV.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 AXt=["ZUPLO_USER_LOGGER_DATA_DOG_API_KEY","ZUPLO_USER_LOGGER_DATA_DOG_URL","ZUPLO_LOG_LEVEL","ZUPLO_HANDLER_WRITE_LOG_LEVEL"];function eit(s){return s.startsWith("__ZUPLO")||s.startsWith("ZUPLO_")?!AXt.includes(s)&&!s.startsWith("ZUPLO_PUBLIC_"):s.startsWith("ZUDOKU_")?!s.startsWith("ZUDOKU_PUBLIC_"):!1}t(eit,"isRestrictedEnvVariableName");function tit(s){return!!s.startsWith("ZUPLO_")}t(tit,"isZuploReadableEnvVariableName");var rkr=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(!(eit(f)&&!tit(f)))return Em.instance.runtime[f]}});function PV(s,o,f){return`_${UP(`${s}_${o}_${f}`)}`}t(PV,"getRawOperationDataIdentifierName");function GPe(s,o,f,d){return`_${UP(s.toLowerCase())}_${o.toLowerCase()}_${f.toLowerCase()}_${d.toLowerCase()}`}t(GPe,"getIdForParameterSchema");function YPe(s,o,f){return`_${UP(s.toLowerCase())}_${o.toLowerCase()}_rb_${UP(f.toLowerCase())}`}t(YPe,"getIdForRequestBodySchema");function AV(s,o){return`_${UP(s)}_${UP(o)}`}t(AV,"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 XPe={};Itt(XPe,{UnsafePathError:()=>Loe,deleteFolder:()=>WXt,dirExists:()=>KPe,fileExists:()=>FXt,getParentDirFilename:()=>zXt,isNotFileOrDirectory:()=>RXt,listFolderContents:()=>iit,listFolders:()=>jXt,mkDirTemp:()=>LXt,mkdirForFilePathIfNotExits:()=>BXt,mkdirIfNotExists:()=>sit,safePath:()=>UXt,tarFolder:()=>$Xt,untarFile:()=>JXt});import{spawn as rit}from"node:child_process";import{randomUUID as NXt}from"node:crypto";import YN from"node:fs/promises";import{platform as IXt,tmpdir as OXt}from"node:os";import N1 from"node:path";var nit=[".git","node_modules",".yarn",".DS_Store"];async function FXt(s){try{return(await YN.stat(s)).isFile()}catch{return!1}}t(FXt,"fileExists");async function LXt(){let s=process.env.BUILD_FILE_PATH??OXt(),o=NXt().replaceAll("-",""),f=N1.join(s,o);return await YN.mkdir(f,{recursive:!0}),f}t(LXt,"mkDirTemp");async function KPe(s){try{return(await YN.stat(s)).isDirectory()}catch{return!1}}t(KPe,"dirExists");async function RXt(s){try{return await YN.stat(s),!1}catch{return!0}}t(RXt,"isNotFileOrDirectory");function MXt(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(MXt,"getParentDirectory");async function jXt(s){if(!await KPe(s))return[];let o=await YN.readdir(s,{withFileTypes:!0}),f=[];for await(let d of o)nit.includes(d.name)||d.isDirectory()&&f.push(d.name);return f}t(jXt,"listFolders");async function iit(s,o,f=!0){let d=MXt(s,o),y=await YN.readdir(s,{withFileTypes:!0}),E=[];for await(let P of y)if(!nit.includes(P.name)||!f)if(P.isDirectory()){let F=await iit(N1.join(s,P.name),o,f);E.push(...F)}else E.push(N1.join(d,P.name));return E}t(iit,"listFolderContents");var sit=t(async s=>{await YN.mkdir(s,{recursive:!0})},"mkdirIfNotExists"),BXt=t(async s=>{let o=N1.dirname(s);return sit(o)},"mkdirForFilePathIfNotExits"),Loe=class extends Error{static{t(this,"UnsafePathError")}};function UXt(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 Loe("Resolved path is not part of the project.");return y},"ensureSafePath");return{resolve:t((...d)=>f(N1.resolve(...d)),"resolve")}}t(UXt,"safePath");function zXt(s){return N1.join(N1.basename(N1.dirname(s)),N1.basename(s))}t(zXt,"getParentDirFilename");async function $Xt({folderPath:s,outputTarPath:o,exclude:f=["node_modules",".git","dist"],logger:d}){let y=[],E=[],P;try{await new Promise((F,J)=>{let G=rit("tar",[...f.flatMap(Te=>["--exclude",Te]),...IXt()!=="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($Xt,"tarFolder");async function JXt({tarFilePath:s,outputDir:o,logger:f}){let d=[],y=[],E;try{await new Promise((P,F)=>{let J=rit("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(`
@@ -601,7 +601,7 @@ globstar while`,s,de,o,ae,Ye),this.matchOne(s.slice(de),o.slice(ae),f))return th
601
601
  `,P):(s.write("/*"),kpr(s,P.value,f,d),s.write("*/"+d))}}t(R1,"formatComments");function wpr(s){let o=s;for(;o!=null;){let{type:f}=o;if(f[0]==="C"&&f[1]==="a")return!0;if(f[0]==="M"&&f[1]==="e"&&f[2]==="m")o=o.object;else return!1}}t(wpr,"hasCallExpression");function yIe(s,o){let{generator:f}=s,{declarations:d}=o;s.write(o.kind+" ");let{length:y}=d;if(y>0){f.VariableDeclarator(d[0],s);for(let E=1;E<y;E++)s.write(", "),f.VariableDeclarator(d[E],s)}}t(yIe,"formatVariableDeclaration");var Bft,Uft,zft,$ft,Jft,Wft,Dpr={Program(s,o){let f=o.indent.repeat(o.indentLevel),{lineEnd:d,writeComments:y}=o;y&&s.comments!=null&&R1(o,s.comments,f,d);let E=s.body,{length:P}=E;for(let F=0;F<P;F++){let J=E[F];y&&J.comments!=null&&R1(o,J.comments,f,d),o.write(f),this[J.type](J,o),o.write(d)}y&&s.trailingComments!=null&&R1(o,s.trailingComments,f,d)},BlockStatement:Wft=t(function(s,o){let f=o.indent.repeat(o.indentLevel++),{lineEnd:d,writeComments:y}=o,E=f+o.indent;o.write("{");let P=s.body;if(P!=null&&P.length>0){o.write(d),y&&s.comments!=null&&R1(o,s.comments,E,d);let{length:F}=P;for(let J=0;J<F;J++){let G=P[J];y&&G.comments!=null&&R1(o,G.comments,E,d),o.write(E),this[G.type](G,o),o.write(d)}o.write(f)}else y&&s.comments!=null&&(o.write(d),R1(o,s.comments,E,d),o.write(f));y&&s.trailingComments!=null&&R1(o,s.trailingComments,E,d),o.write("}"),o.indentLevel--},"BlockStatement"),ClassBody:Wft,StaticBlock(s,o){o.write("static "),this.BlockStatement(s,o)},EmptyStatement(s,o){o.write(";")},ExpressionStatement(s,o){let f=o.expressionsPrecedence[s.expression.type];f===OE||f===3&&s.expression.left.type[0]==="O"?(o.write("("),this[s.expression.type](s.expression,o),o.write(")")):this[s.expression.type](s.expression,o),o.write(";")},IfStatement(s,o){o.write("if ("),this[s.test.type](s.test,o),o.write(") "),this[s.consequent.type](s.consequent,o),s.alternate!=null&&(o.write(" else "),this[s.alternate.type](s.alternate,o))},LabeledStatement(s,o){this[s.label.type](s.label,o),o.write(": "),this[s.body.type](s.body,o)},BreakStatement(s,o){o.write("break"),s.label!=null&&(o.write(" "),this[s.label.type](s.label,o)),o.write(";")},ContinueStatement(s,o){o.write("continue"),s.label!=null&&(o.write(" "),this[s.label.type](s.label,o)),o.write(";")},WithStatement(s,o){o.write("with ("),this[s.object.type](s.object,o),o.write(") "),this[s.body.type](s.body,o)},SwitchStatement(s,o){let f=o.indent.repeat(o.indentLevel++),{lineEnd:d,writeComments:y}=o;o.indentLevel++;let E=f+o.indent,P=E+o.indent;o.write("switch ("),this[s.discriminant.type](s.discriminant,o),o.write(") {"+d);let{cases:F}=s,{length:J}=F;for(let G=0;G<J;G++){let Te=F[G];y&&Te.comments!=null&&R1(o,Te.comments,E,d),Te.test?(o.write(E+"case "),this[Te.test.type](Te.test,o),o.write(":"+d)):o.write(E+"default:"+d);let{consequent:de}=Te,{length:ae}=de;for(let Ye=0;Ye<ae;Ye++){let Ue=de[Ye];y&&Ue.comments!=null&&R1(o,Ue.comments,P,d),o.write(P),this[Ue.type](Ue,o),o.write(d)}}o.indentLevel-=2,o.write(f+"}")},ReturnStatement(s,o){o.write("return"),s.argument&&(o.write(" "),this[s.argument.type](s.argument,o)),o.write(";")},ThrowStatement(s,o){o.write("throw "),this[s.argument.type](s.argument,o),o.write(";")},TryStatement(s,o){if(o.write("try "),this[s.block.type](s.block,o),s.handler){let{handler:f}=s;f.param==null?o.write(" catch "):(o.write(" catch ("),this[f.param.type](f.param,o),o.write(") ")),this[f.body.type](f.body,o)}s.finalizer&&(o.write(" finally "),this[s.finalizer.type](s.finalizer,o))},WhileStatement(s,o){o.write("while ("),this[s.test.type](s.test,o),o.write(") "),this[s.body.type](s.body,o)},DoWhileStatement(s,o){o.write("do "),this[s.body.type](s.body,o),o.write(" while ("),this[s.test.type](s.test,o),o.write(");")},ForStatement(s,o){if(o.write("for ("),s.init!=null){let{init:f}=s;f.type[0]==="V"?yIe(o,f):this[f.type](f,o)}o.write("; "),s.test&&this[s.test.type](s.test,o),o.write("; "),s.update&&this[s.update.type](s.update,o),o.write(") "),this[s.body.type](s.body,o)},ForInStatement:Bft=t(function(s,o){o.write(`for ${s.await?"await ":""}(`);let{left:f}=s;f.type[0]==="V"?yIe(o,f):this[f.type](f,o),o.write(s.type[3]==="I"?" in ":" of "),this[s.right.type](s.right,o),o.write(") "),this[s.body.type](s.body,o)},"ForInStatement"),ForOfStatement:Bft,DebuggerStatement(s,o){o.write("debugger;",s)},FunctionDeclaration:Uft=t(function(s,o){o.write((s.async?"async ":"")+(s.generator?"function* ":"function ")+(s.id?s.id.name:""),s),LM(o,s.params),o.write(" "),this[s.body.type](s.body,o)},"FunctionDeclaration"),FunctionExpression:Uft,VariableDeclaration(s,o){yIe(o,s),o.write(";")},VariableDeclarator(s,o){this[s.id.type](s.id,o),s.init!=null&&(o.write(" = "),this[s.init.type](s.init,o))},ClassDeclaration(s,o){if(o.write("class "+(s.id?`${s.id.name} `:""),s),s.superClass){o.write("extends ");let{superClass:f}=s,{type:d}=f,y=o.expressionsPrecedence[d];(d[0]!=="C"||d[1]!=="l"||d[5]!=="E")&&(y===OE||y<o.expressionsPrecedence.ClassExpression)?(o.write("("),this[s.superClass.type](f,o),o.write(")")):this[f.type](f,o),o.write(" ")}this.ClassBody(s.body,o)},ImportDeclaration(s,o){o.write("import ");let{specifiers:f,attributes:d}=s,{length:y}=f,E=0;if(y>0){for(;E<y;){E>0&&o.write(", ");let P=f[E],F=P.type[6];if(F==="D")o.write(P.local.name,P),E++;else if(F==="N")o.write("* as "+P.local.name,P),E++;else break}if(E<y){for(o.write("{");;){let P=f[E],{name:F}=P.imported;if(o.write(F,P),F!==P.local.name&&o.write(" as "+P.local.name),++E<y)o.write(", ");else break}o.write("}")}o.write(" from ")}if(this.Literal(s.source,o),d&&d.length>0){o.write(" with { ");for(let P=0;P<d.length;P++)this.ImportAttribute(d[P],o),P<d.length-1&&o.write(", ");o.write(" }")}o.write(";")},ImportAttribute(s,o){this.Identifier(s.key,o),o.write(": "),this.Literal(s.value,o)},ImportExpression(s,o){o.write("import("),this[s.source.type](s.source,o),o.write(")")},ExportDefaultDeclaration(s,o){o.write("export default "),this[s.declaration.type](s.declaration,o),o.expressionsPrecedence[s.declaration.type]!=null&&s.declaration.type[0]!=="F"&&o.write(";")},ExportNamedDeclaration(s,o){if(o.write("export "),s.declaration)this[s.declaration.type](s.declaration,o);else{o.write("{");let{specifiers:f}=s,{length:d}=f;if(d>0)for(let y=0;;){let E=f[y],{name:P}=E.local;if(o.write(P,E),P!==E.exported.name&&o.write(" as "+E.exported.name),++y<d)o.write(", ");else break}if(o.write("}"),s.source&&(o.write(" from "),this.Literal(s.source,o)),s.attributes&&s.attributes.length>0){o.write(" with { ");for(let y=0;y<s.attributes.length;y++)this.ImportAttribute(s.attributes[y],o),y<s.attributes.length-1&&o.write(", ");o.write(" }")}o.write(";")}},ExportAllDeclaration(s,o){if(s.exported!=null?o.write("export * as "+s.exported.name+" from "):o.write("export * from "),this.Literal(s.source,o),s.attributes&&s.attributes.length>0){o.write(" with { ");for(let f=0;f<s.attributes.length;f++)this.ImportAttribute(s.attributes[f],o),f<s.attributes.length-1&&o.write(", ");o.write(" }")}o.write(";")},MethodDefinition(s,o){s.static&&o.write("static ");let f=s.kind[0];(f==="g"||f==="s")&&o.write(s.kind+" "),s.value.async&&o.write("async "),s.value.generator&&o.write("*"),s.computed?(o.write("["),this[s.key.type](s.key,o),o.write("]")):this[s.key.type](s.key,o),LM(o,s.value.params),o.write(" "),this[s.value.body.type](s.value.body,o)},ClassExpression(s,o){this.ClassDeclaration(s,o)},ArrowFunctionExpression(s,o){o.write(s.async?"async ":"",s);let{params:f}=s;f!=null&&(f.length===1&&f[0].type[0]==="I"?o.write(f[0].name,f[0]):LM(o,s.params)),o.write(" => "),s.body.type[0]==="O"?(o.write("("),this.ObjectExpression(s.body,o),o.write(")")):this[s.body.type](s.body,o)},ThisExpression(s,o){o.write("this",s)},Super(s,o){o.write("super",s)},RestElement:zft=t(function(s,o){o.write("..."),this[s.argument.type](s.argument,o)},"RestElement"),SpreadElement:zft,YieldExpression(s,o){o.write(s.delegate?"yield*":"yield"),s.argument&&(o.write(" "),this[s.argument.type](s.argument,o))},AwaitExpression(s,o){o.write("await ",s),Fle(o,s.argument,s)},TemplateLiteral(s,o){let{quasis:f,expressions:d}=s;o.write("`");let{length:y}=d;for(let P=0;P<y;P++){let F=d[P],J=f[P];o.write(J.value.raw,J),o.write("${"),this[F.type](F,o),o.write("}")}let E=f[f.length-1];o.write(E.value.raw,E),o.write("`")},TemplateElement(s,o){o.write(s.value.raw,s)},TaggedTemplateExpression(s,o){Fle(o,s.tag,s),this[s.quasi.type](s.quasi,o)},ArrayExpression:Jft=t(function(s,o){if(o.write("["),s.elements.length>0){let{elements:f}=s,{length:d}=f;for(let y=0;;){let E=f[y];if(E!=null&&this[E.type](E,o),++y<d)o.write(", ");else{E==null&&o.write(", ");break}}}o.write("]")},"ArrayExpression"),ArrayPattern:Jft,ObjectExpression(s,o){let f=o.indent.repeat(o.indentLevel++),{lineEnd:d,writeComments:y}=o,E=f+o.indent;if(o.write("{"),s.properties.length>0){o.write(d),y&&s.comments!=null&&R1(o,s.comments,E,d);let P=","+d,{properties:F}=s,{length:J}=F;for(let G=0;;){let Te=F[G];if(y&&Te.comments!=null&&R1(o,Te.comments,E,d),o.write(E),this[Te.type](Te,o),++G<J)o.write(P);else break}o.write(d),y&&s.trailingComments!=null&&R1(o,s.trailingComments,E,d),o.write(f+"}")}else y?s.comments!=null?(o.write(d),R1(o,s.comments,E,d),s.trailingComments!=null&&R1(o,s.trailingComments,E,d),o.write(f+"}")):s.trailingComments!=null?(o.write(d),R1(o,s.trailingComments,E,d),o.write(f+"}")):o.write("}"):o.write("}");o.indentLevel--},Property(s,o){s.method||s.kind[0]!=="i"?this.MethodDefinition(s,o):(s.shorthand||(s.computed?(o.write("["),this[s.key.type](s.key,o),o.write("]")):this[s.key.type](s.key,o),o.write(": ")),this[s.value.type](s.value,o))},PropertyDefinition(s,o){if(s.static&&o.write("static "),s.computed&&o.write("["),this[s.key.type](s.key,o),s.computed&&o.write("]"),s.value==null){s.key.type[0]!=="F"&&o.write(";");return}o.write(" = "),this[s.value.type](s.value,o),o.write(";")},ObjectPattern(s,o){if(o.write("{"),s.properties.length>0){let{properties:f}=s,{length:d}=f;for(let y=0;this[f[y].type](f[y],o),++y<d;)o.write(", ")}o.write("}")},SequenceExpression(s,o){LM(o,s.expressions)},UnaryExpression(s,o){if(s.prefix){let{operator:f,argument:d,argument:{type:y}}=s;o.write(f);let E=qft(o,d,s);!E&&(f.length>1||y[0]==="U"&&(y[1]==="n"||y[1]==="p")&&d.prefix&&d.operator[0]===f&&(f==="+"||f==="-"))&&o.write(" "),E?(o.write(f.length>1?" (":"("),this[y](d,o),o.write(")")):this[y](d,o)}else this[s.argument.type](s.argument,o),o.write(s.operator)},UpdateExpression(s,o){s.prefix?(o.write(s.operator),this[s.argument.type](s.argument,o)):(this[s.argument.type](s.argument,o),o.write(s.operator))},AssignmentExpression(s,o){this[s.left.type](s.left,o),o.write(" "+s.operator+" "),this[s.right.type](s.right,o)},AssignmentPattern(s,o){this[s.left.type](s.left,o),o.write(" = "),this[s.right.type](s.right,o)},BinaryExpression:$ft=t(function(s,o){let f=s.operator==="in";f&&o.write("("),Fle(o,s.left,s,!1),o.write(" "+s.operator+" "),Fle(o,s.right,s,!0),f&&o.write(")")},"BinaryExpression"),LogicalExpression:$ft,ConditionalExpression(s,o){let{test:f}=s,d=o.expressionsPrecedence[f.type];d===OE||d<=o.expressionsPrecedence.ConditionalExpression?(o.write("("),this[f.type](f,o),o.write(")")):this[f.type](f,o),o.write(" ? "),this[s.consequent.type](s.consequent,o),o.write(" : "),this[s.alternate.type](s.alternate,o)},NewExpression(s,o){o.write("new ");let f=o.expressionsPrecedence[s.callee.type];f===OE||f<o.expressionsPrecedence.CallExpression||wpr(s.callee)?(o.write("("),this[s.callee.type](s.callee,o),o.write(")")):this[s.callee.type](s.callee,o),LM(o,s.arguments)},CallExpression(s,o){let f=o.expressionsPrecedence[s.callee.type];f===OE||f<o.expressionsPrecedence.CallExpression?(o.write("("),this[s.callee.type](s.callee,o),o.write(")")):this[s.callee.type](s.callee,o),s.optional&&o.write("?."),LM(o,s.arguments)},ChainExpression(s,o){this[s.expression.type](s.expression,o)},MemberExpression(s,o){let f=o.expressionsPrecedence[s.object.type];f===OE||f<o.expressionsPrecedence.MemberExpression?(o.write("("),this[s.object.type](s.object,o),o.write(")")):this[s.object.type](s.object,o),s.computed?(s.optional&&o.write("?."),o.write("["),this[s.property.type](s.property,o),o.write("]")):(s.optional?o.write("?."):o.write("."),this[s.property.type](s.property,o))},MetaProperty(s,o){o.write(s.meta.name+"."+s.property.name,s)},Identifier(s,o){o.write(s.name,s)},PrivateIdentifier(s,o){o.write(`#${s.name}`,s)},Literal(s,o){s.raw!=null?o.write(s.raw,s):s.regex!=null?this.RegExpLiteral(s,o):s.bigint!=null?o.write(s.bigint+"n",s):o.write(Epr(s.value),s)},RegExpLiteral(s,o){let{regex:f}=s;o.write(`/${f.pattern}/${f.flags}`,s)}},Ppr={};var vIe=class{static{t(this,"State")}constructor(o){let f=o??Ppr;this.output="",f.output!=null?(this.output=f.output,this.write=this.writeToStream):this.output="",this.generator=f.generator!=null?f.generator:Dpr,this.expressionsPrecedence=f.expressionsPrecedence!=null?f.expressionsPrecedence:Cpr,this.indent=f.indent!=null?f.indent:" ",this.lineEnd=f.lineEnd!=null?f.lineEnd:`
602
602
  `,this.indentLevel=f.startingIndentLevel!=null?f.startingIndentLevel:0,this.writeComments=f.comments?f.comments:!1,f.sourceMap!=null&&(this.write=f.output==null?this.writeAndMap:this.writeToStreamAndMap,this.sourceMap=f.sourceMap,this.line=1,this.column=0,this.lineEndSize=this.lineEnd.split(`
603
603
  `).length-1,this.mapping={original:null,generated:this,name:void 0,source:f.sourceMap.file||f.sourceMap._file})}write(o){this.output+=o}writeToStream(o){this.output.write(o)}writeAndMap(o,f){this.output+=o,this.map(o,f)}writeToStreamAndMap(o,f){this.output.write(o),this.map(o,f)}map(o,f){if(f!=null){let{type:E}=f;if(E[0]==="L"&&E[2]==="n"){this.column=0,this.line++;return}if(f.loc!=null){let{mapping:P}=this;P.original=f.loc.start,P.name=f.name,this.sourceMap.addMapping(P)}if(E[0]==="T"&&E[8]==="E"||E[0]==="L"&&E[1]==="i"&&typeof f.value=="string"){let{length:P}=o,{column:F,line:J}=this;for(let G=0;G<P;G++)o[G]===`
604
- `?(F=0,J++):F++;this.column=F,this.line=J;return}}let{length:d}=o,{lineEnd:y}=this;d>0&&(this.lineEndSize>0&&(y.length===1?o[d-1]===y:o.endsWith(y))?(this.line+=this.lineEndSize,this.column=0):this.column+=d)}toString(){return this.output}};function Vft(s,o){let f=new vIe(o);return f.generator[s.type](s,f),f.output}t(Vft,"generate");async function bIe({oasFiles:s,sourceDirectory:o,logger:f}){let d=await Ipr({oasFiles:s,sourceDirectory:o,logger:f});return Vft(d)}t(bIe,"generateRawRouteSource");async function Ipr({oasFiles:s,sourceDirectory:o,logger:f}){let d=new g4(o,f),y=[];for(let P of s){let F=Npr.basename(P,".oas.json"),J=await d.resolve(P),G=[],Te=new Map,de=await Apr.readFile(P,"utf-8"),ae=JSON.parse(de);for(let Ye in ae.paths){let Ue=ae.paths[Ye],je=Ue.parameters||[],Kt={};Ue.summary&&(Kt.pathSummary=Ue.summary),Ue.description&&(Kt.pathDescription=Ue.description),Ue.servers&&(Kt.pathServers=Ue.servers);for(let Ut in Ue){if(!ile(Ut))continue;let kr=Ue[Ut],An=[...je,...kr.parameters||[]],nn={...kr,...An.length>0&&{parameters:An},...Kt,...kr.description&&{description:kr.description.length>350?`${kr.description.substring(0,350).trim()}...`:kr.description}},Pn=PV(F,Ye,Ut),wr=Lle(P,F,nn,J,G,Te);y.unshift(Gft(Pn,wr))}}y.unshift(...Opr(F,J,G,Te).reverse())}return{type:"Program",body:y,sourceType:"module"}}t(Ipr,"generateAst");function Lle(s,o,f,d,y,E){let P=[];for(let F in f){let J=f[F];if(F==="$ref")return kV(s,o,HN(s,J),d,y,E),{type:"Identifier",name:Yft(o,E.get(HN(s,J)))};let G;switch(typeof J){case"string":case"number":case"boolean":G={type:"Literal",value:J};break;default:Array.isArray(J)?G=Hft(J,s,o,d,y,E):typeof J=="object"&&J!==null&&(G=Lle(s,o,J,d,y,E));break}if(G){let Te=/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(F),de=Te?{type:"Identifier",name:F}:{type:"Literal",value:F};P.push({type:"Property",key:de,value:G,kind:"init",method:!1,shorthand:!1,computed:!Te})}}return{type:"ObjectExpression",properties:P}}t(Lle,"processNode");function Hft(s,o,f,d,y,E){return{type:"ArrayExpression",elements:s.map(P=>{if(Array.isArray(P))return Hft(P,o,f,d,y,E);if(typeof P=="object"&&P!==null){let F=Lle(o,f,P,d,y,E);return F.type==="Identifier"?F:{type:"ObjectExpression",properties:F.properties||[]}}else return{type:"Literal",value:P}})}}t(Hft,"processArray");function Gft(s,o){return{type:"ExportNamedDeclaration",declaration:{type:"VariableDeclaration",declarations:[{type:"VariableDeclarator",id:{type:"Identifier",name:s},init:o}],kind:"var"},specifiers:[],source:null}}t(Gft,"createExportedConstAssignment");function Opr(s,o,f,d){let y=[];for(let E=0;E<f.length;E++){let P=Yft(s,E),F=o.get(f[E]),J=Lle(Noe(f[E]),s,F,o,f,d);y.push(Gft(P,J))}return y}t(Opr,"generateRefs");function Yft(s,o){return`${UP(s)}__ref__${o}`}t(Yft,"getRefIdentifierName");import Kft from"node:path";var Xft=t(s=>{let o=null;if(s.value.type==="Object"&&s.value.members.length>0)for(let f of s.value.members){let d=Xft(f);if(d!==null&&(o=d),f.name.value==="enum"&&f.value.type==="Array"&&f.value.elements.length===0){let y=f.value,E=y.loc.start.line,P=y.loc.start.column,F=y.loc.end.column;o={line:E,column:P,length:F-P,lineText:""}}}return o},"findEmptyEnums"),Fpr=t(s=>{if(s.startsWith("schema with key or id")&&s.endsWith("already exists"))return"Update your schema's '$id' to be unique across your project.";if(s.includes("All JSON schemas must use version 2020-12"))return"All JSON schemas must use version 2020-12. See release notes for changes: https://json-schema.org/draft/2020-12/release-notes.html";if(s==='"nullable" cannot be used without "type"')return'Property "nullable" can only be used when property "type" value is "object".';if(s==='NOT SUPPORTED: keyword "id", use "$id" for schema ID')return'Replace keyword "id" with "$id" when defining a schema Id.';if(s.startsWith("can't resolve reference http"))return"Cannot resolve remote references, try adding them directly to the schema file or as a schema file in the project.";if(s.startsWith("can't resolve reference"))return"Make sure all references are defined in the schema.";if(s.includes("oneOf must NOT have fewer than 1 items"))return'Property "oneOf" must have at least 1 item configured.';if(s.includes("enum must have non-empty array"))return'Property "enum" must be configured with at least one value.';if(s.includes("Unexpected")&&s.includes("in JSON at position"))return"Update your schema to only use valid properties."},"getSuggestions"),SIe=t(async(s,o,f)=>{if(!s)return null;let d={file:Kft.join(UPe,s),suggestion:Fpr(f)},y=Kft.join(o,UPe),E=tu.safePath(o).resolve(y,s),P=await Poe(E);if(f.includes("enum must have non-empty array")){if(P){let F=await CV(P);if(F&&F.body.members!==null)for(let J of F.body.members){let G=Xft(J);G&&G!==null&&(d=Object.assign(d??{},G))}if(d){let J=d.line?d.line:0;d.lineText=EV(P,J)}}}else if(f.includes("Unexpected")&&f.includes("in JSON at position")&&P){let F=await CV(P);F&&"lineText"in F&&(d=Object.assign(d??{},F))}return d},"getLocation");import*as J_t from"esbuild";import BIe,{dirname as U_t}from"node:path";import{fileURLToPath as z_t}from"node:url";var TIe=class{static{t(this,"Environment")}get DEV_SERVER_PORT(){return process.env.DEV_SERVER_PORT?parseInt(process.env.DEV_SERVER_PORT,10):3e3}get DEBUG_BUILD_MODE(){return!!process.env.DEBUG_BUILD_MODE}get USE_MONOREPO_PACKAGES(){return process.env.USE_MONOREPO_PACKAGES==="true"}get EXPERIMENTAL_CODEGEN(){return!!process.env.EXPERIMENTAL_CODEGEN}get NODE_ENV(){return process.env.NODE_ENV}isProduction(){return this.NODE_ENV==="production"}isLocalDevelopment(){return process.env.ZUPLO_IS_LOCAL_DEVELOPMENT==="true"}},Lpr=new TIe,Gm=Lpr;var xIe="no-remote-module";function Zft({logger:s}){return{name:xIe,async setup(o){o.onResolve({filter:/^https?:\/\//},f=>(s.error(f,"User attempted to load a remote module"),{errors:[{text:`Remote modules are not supported. Attempted to load module ${f.path}`,detail:"InvalidRemoteModule",pluginName:xIe,location:{line:0,column:0,file:""}}],pluginName:xIe}))}}}t(Zft,"blockRemoteModulePlugin");import Qft from"node:path";var e_t="legacy-environment",t_t="legacy-environment",Rpr=`import { environment } from "@zuplo/runtime";
604
+ `?(F=0,J++):F++;this.column=F,this.line=J;return}}let{length:d}=o,{lineEnd:y}=this;d>0&&(this.lineEndSize>0&&(y.length===1?o[d-1]===y:o.endsWith(y))?(this.line+=this.lineEndSize,this.column=0):this.column+=d)}toString(){return this.output}};function Vft(s,o){let f=new vIe(o);return f.generator[s.type](s,f),f.output}t(Vft,"generate");async function bIe({oasFiles:s,sourceDirectory:o,logger:f}){let d=await Ipr({oasFiles:s,sourceDirectory:o,logger:f});return Vft(d)}t(bIe,"generateRawRouteSource");async function Ipr({oasFiles:s,sourceDirectory:o,logger:f}){let d=new g4(o,f),y=[];for(let P of s){let F=Npr.basename(P,".oas.json"),J=await d.resolve(P),G=[],Te=new Map,de=await Apr.readFile(P,"utf-8"),ae=JSON.parse(de);for(let Ye in ae.paths){let Ue=ae.paths[Ye],je=Ue.parameters||[],Kt={};Ue.summary&&(Kt.pathSummary=Ue.summary),Ue.description&&(Kt.pathDescription=Ue.description),Ue.servers&&(Kt.pathServers=Ue.servers);for(let Ut in Ue){if(!ile(Ut))continue;let kr=Ue[Ut],An=[...je,...kr.parameters||[]],nn={...kr,...An.length>0&&{parameters:An},...Kt,...kr.description&&{description:kr.description.length>350?`${kr.description.substring(0,350).trim()}...`:kr.description}},Pn=PV(F,Ye,Ut),wr=Lle(P,F,nn,J,G,Te);y.unshift(Gft(Pn,wr))}}y.unshift(...Opr(F,J,G,Te).reverse())}return{type:"Program",body:y,sourceType:"module"}}t(Ipr,"generateAst");function Lle(s,o,f,d,y,E){let P=[];for(let F in f){let J=f[F];if(F==="$ref")return kV(s,o,HN(s,J),d,y,E),{type:"Identifier",name:Yft(o,E.get(HN(s,J)))};let G;switch(typeof J){case"string":case"number":case"boolean":G={type:"Literal",value:J};break;default:Array.isArray(J)?G=Hft(J,s,o,d,y,E):typeof J=="object"&&J!==null&&(G=Lle(s,o,J,d,y,E));break}if(G){let Te=/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(F),de=Te?{type:"Identifier",name:F}:{type:"Literal",value:F};P.push({type:"Property",key:de,value:G,kind:"init",method:!1,shorthand:!1,computed:!Te})}}return{type:"ObjectExpression",properties:P}}t(Lle,"processNode");function Hft(s,o,f,d,y,E){return{type:"ArrayExpression",elements:s.map(P=>{if(Array.isArray(P))return Hft(P,o,f,d,y,E);if(typeof P=="object"&&P!==null){let F=Lle(o,f,P,d,y,E);return F.type==="Identifier"?F:{type:"ObjectExpression",properties:F.properties||[]}}else return{type:"Literal",value:P}})}}t(Hft,"processArray");function Gft(s,o){return{type:"ExportNamedDeclaration",declaration:{type:"VariableDeclaration",declarations:[{type:"VariableDeclarator",id:{type:"Identifier",name:s},init:o}],kind:"var"},specifiers:[],source:null,attributes:[]}}t(Gft,"createExportedConstAssignment");function Opr(s,o,f,d){let y=[];for(let E=0;E<f.length;E++){let P=Yft(s,E),F=o.get(f[E]),J=Lle(Noe(f[E]),s,F,o,f,d);y.push(Gft(P,J))}return y}t(Opr,"generateRefs");function Yft(s,o){return`${UP(s)}__ref__${o}`}t(Yft,"getRefIdentifierName");import Kft from"node:path";var Xft=t(s=>{let o=null;if(s.value.type==="Object"&&s.value.members.length>0)for(let f of s.value.members){let d=Xft(f);if(d!==null&&(o=d),f.name.value==="enum"&&f.value.type==="Array"&&f.value.elements.length===0){let y=f.value,E=y.loc.start.line,P=y.loc.start.column,F=y.loc.end.column;o={line:E,column:P,length:F-P,lineText:""}}}return o},"findEmptyEnums"),Fpr=t(s=>{if(s.startsWith("schema with key or id")&&s.endsWith("already exists"))return"Update your schema's '$id' to be unique across your project.";if(s.includes("All JSON schemas must use version 2020-12"))return"All JSON schemas must use version 2020-12. See release notes for changes: https://json-schema.org/draft/2020-12/release-notes.html";if(s==='"nullable" cannot be used without "type"')return'Property "nullable" can only be used when property "type" value is "object".';if(s==='NOT SUPPORTED: keyword "id", use "$id" for schema ID')return'Replace keyword "id" with "$id" when defining a schema Id.';if(s.startsWith("can't resolve reference http"))return"Cannot resolve remote references, try adding them directly to the schema file or as a schema file in the project.";if(s.startsWith("can't resolve reference"))return"Make sure all references are defined in the schema.";if(s.includes("oneOf must NOT have fewer than 1 items"))return'Property "oneOf" must have at least 1 item configured.';if(s.includes("enum must have non-empty array"))return'Property "enum" must be configured with at least one value.';if(s.includes("Unexpected")&&s.includes("in JSON at position"))return"Update your schema to only use valid properties."},"getSuggestions"),SIe=t(async(s,o,f)=>{if(!s)return null;let d={file:Kft.join(UPe,s),suggestion:Fpr(f)},y=Kft.join(o,UPe),E=tu.safePath(o).resolve(y,s),P=await Poe(E);if(f.includes("enum must have non-empty array")){if(P){let F=await CV(P);if(F&&F.body.members!==null)for(let J of F.body.members){let G=Xft(J);G&&G!==null&&(d=Object.assign(d??{},G))}if(d){let J=d.line?d.line:0;d.lineText=EV(P,J)}}}else if(f.includes("Unexpected")&&f.includes("in JSON at position")&&P){let F=await CV(P);F&&"lineText"in F&&(d=Object.assign(d??{},F))}return d},"getLocation");import*as J_t from"esbuild";import BIe,{dirname as U_t}from"node:path";import{fileURLToPath as z_t}from"node:url";var TIe=class{static{t(this,"Environment")}get DEV_SERVER_PORT(){return process.env.DEV_SERVER_PORT?parseInt(process.env.DEV_SERVER_PORT,10):3e3}get DEBUG_BUILD_MODE(){return!!process.env.DEBUG_BUILD_MODE}get USE_MONOREPO_PACKAGES(){return process.env.USE_MONOREPO_PACKAGES==="true"}get EXPERIMENTAL_CODEGEN(){return!!process.env.EXPERIMENTAL_CODEGEN}get NODE_ENV(){return process.env.NODE_ENV}isProduction(){return this.NODE_ENV==="production"}isLocalDevelopment(){return process.env.ZUPLO_IS_LOCAL_DEVELOPMENT==="true"}},Lpr=new TIe,Gm=Lpr;var xIe="no-remote-module";function Zft({logger:s}){return{name:xIe,async setup(o){o.onResolve({filter:/^https?:\/\//},f=>(s.error(f,"User attempted to load a remote module"),{errors:[{text:`Remote modules are not supported. Attempted to load module ${f.path}`,detail:"InvalidRemoteModule",pluginName:xIe,location:{line:0,column:0,file:""}}],pluginName:xIe}))}}}t(Zft,"blockRemoteModulePlugin");import Qft from"node:path";var e_t="legacy-environment",t_t="legacy-environment",Rpr=`import { environment } from "@zuplo/runtime";
605
605
  export default environment;`;function r_t(s){return{name:"environment",setup(o){o.onResolve({filter:/@app\/environment$/},()=>({namespace:t_t,pluginName:e_t,path:Qft.join(s.sourceDirectory,Ng,"environment.js")})),o.onLoad({filter:/.*/,namespace:t_t},async f=>({contents:Rpr,loader:"ts",resolveDir:Qft.dirname(f.path),pluginName:e_t}))}}}t(r_t,"environmentPlugin");import idr from"node:fs/promises";import bT from"node:path";var g_t=Vp(xH(),1),y_t=Vp(Gce(),1),v_t=Vp(EIe(),1),b_t=Vp(IIe(),1);import{performance as RE}from"node:perf_hooks";var HH=[];async function tdr(s,o){let f=RE.now();try{return await o()}finally{let d=RE.now()-f;HH.push({name:s,duration:d})}}t(tdr,"timeFn");var rdr={mark:t(s=>{RE.mark(s)},"mark"),measure:t((s,o,f)=>{try{RE.measure(s,o,f)}finally{RE.clearMarks(o),RE.clearMarks(f),RE.clearMeasures(s)}},"measure"),timeFn:tdr,report:t(()=>{if(HH.length>0){let s=HH.reduce((o,{name:f,duration:d})=>(o[f]=`${d.toFixed(0)}ms`,o),{});console.table(s),HH.length=0}},"report"),getDuration:t(s=>{let o=RE.getEntriesByName(s);if(o.length===0)return 0;let f=o[0].duration;return RE.clearMeasures(s),f},"getDuration"),clear:t(()=>{HH.length=0,RE.clearMarks(),RE.clearMeasures()},"clear")},Ou=rdr;import{writeFile as ndr}from"node:fs/promises";async function Wk(s,o){await tu.mkdirForFilePathIfNotExits(s);let f=await import("prettier"),d=o;try{d=await f.format(o,{parser:"babel"})}catch{}await ndr(s,d,"utf-8")}t(Wk,"writeDebugSourceFile");var qk="schemas",Mle="json-schema";function S_t(s){return{name:qk,async setup(o){let f=new y_t.Ajv2020({code:{source:!0},allErrors:!0,strict:!1,verbose:!0,meta:!0}),d=bT.join(s.sourceDirectory,oV),y=[],E=[],P;await Ou.timeFn("Initializing schema validation",async()=>{if((0,b_t.default)(f,{mode:"fast"}),f.opts.code.formats=g_t._`require("ajv-formats/dist/formats").fastFormats`,await tu.dirExists(d)&&(f.addKeyword("faker"),P=(await tu.listFolderContents(d,oV)).sort(),await Promise.all(P.map(async F=>{try{let J=tu.safePath(s.sourceDirectory).resolve(d,F);if(!J.startsWith(d))throw new Error("All schemas must be in the schemas directory");let G=await idr.readFile(J,"utf-8");if(G===""||G===void 0)throw new Error(`Schema 'schemas/${F}' is empty and will be ignored.`);let Te=JSON.parse(G);if(Te.$schema&&Te.$schema!=="https://json-schema.org/draft/2020-12/schema")throw new Error(`Error in ${F}: All JSON schemas must use version 2020-12. See release notes for changes: https://json-schema.org/draft/2020-12/release-notes.html`);if(f.addSchema(Te,F),f.errors?.length){let de=f.errors[0];y.push({id:"json-schema-validation-error",pluginName:qk,text:`Error: ${de.message}`,location:{file:bT.join(oV,F)},detail:{params:de.params,propertyName:de.propertyName,schemaPath:de.schemaPath,data:de.data}})}}catch(J){if(J.message.endsWith("is empty and will be ignored.")){E.push({id:"empty-json-schema-file",pluginName:qk,text:`Schema 'schemas/${F}' is empty and will be ignored.`,location:{file:`schemas/${F}`,suggestion:"Add schema details or remove the file from the project."},detail:"EmptyJSONSchemaFile",notes:[{text:`Schema 'schemas/${F}' is empty and will be ignored.`,location:{file:`schemas/${F}`,suggestion:"Add schema details or remove the file from the project."}}]});return}let G=await SIe(F,s.sourceDirectory,J.message);y.push({id:"json-schema-add-error",pluginName:qk,text:`Error: ${J.message}`,location:G,detail:"InvalidAddSchemaError",notes:[{text:J.message}]})}})),await Promise.all(P.map(async F=>{try{let J=f.getSchema(F);J&&f.compile(J.schema).errors?.forEach(Te=>{y.push({text:`Failed to compile ${F}: ${Te.message}`})})}catch(J){let G=await SIe(F,s.sourceDirectory,J.message);y.push({id:"json-schema-compile-error",pluginName:qk,text:`The schema file '${F}' is not valid. Error: ${J.message}`,location:G,detail:"InvalidSchemaError",notes:[{text:J.message}]})}})),Gm.DEBUG_BUILD_MODE)){let F=bT.resolve(s.outputDirectory,oV);await tu.mkdirIfNotExists(F)}}),o.onStart(async()=>{if(P)return{errors:y,warnings:E}}),o.onResolve({filter:/schemas\/.*\.json$/},async F=>Ou.timeFn("Generating JSON schemas...",async()=>{let J=bT.isAbsolute(F.path)?F.path:bT.join(F.resolveDir,F.path);if(F.importer&&F.namespace!=="open-api-routes-json")return{path:J};if(!await tu.fileExists(J)){let G="policies.json";return{errors:[{id:"json-schema-build-error",text:`Unable to resolve reference to '${F.path}' from ${G}`,location:{file:bT.join(F.resolveDir,G),namespace:Mle,line:1,column:0,length:0,lineText:`Invalid JSON schema reference in ${G}`,suggestion:""},detail:"RouteReferenceError",pluginName:qk,notes:[{text:`Unable to resolve reference to '${F.path}' from ${G}`,location:null}]}],namespace:Mle,path:J,pluginName:qk}}return{path:J,namespace:Mle,pluginName:qk}})),o.onLoad({filter:/.*/,namespace:Mle},async F=>Ou.timeFn(`Generating json schema data: ${bT.basename(F.path)}`,async()=>{let J=[],G;try{let Te=bT.relative(d,F.path),de=f.getSchema(Te);if(!de)throw new Error(`Could not load schema at ${F.path}`);G=de.source?.validateCode;let ae=f.compile(de.schema);G=(0,v_t.default)(f,ae)}catch(Te){J.push({pluginName:qk,text:`Cannot parse project's schemas/${bT.basename(F.path)} file. Error: ${Te.message}`,location:null,notes:[{text:Te.message,location:null}],detail:Te})}if(Gm.DEBUG_BUILD_MODE&&G){let Te=bT.relative(d,F.path),de=bT.join(s.sourceDirectory,Ng,`${Te}.js`);await Wk(de,G)}return{contents:G,errors:J,pluginName:qk,resolveDir:bT.dirname(F.path),watchFiles:[F.path]}}))}}}t(S_t,"jsonSchemaPlugin");import{relative as sdr}from"node:path";var T_t=["node:assert","node:async_hooks","node:buffer","node:crypto","node:diagnostics_channel","node:events","node:path","node:process","node:stream","node:string_decoder","node:util"],adr="nodejs-compat-plugin";function x_t({sourceDirectory:s}){return{name:adr,setup(o){let f=new Set;o.onStart(()=>{f.clear()}),o.onResolve({filter:/node:.*/},async({path:d,kind:y,resolveDir:E,...P})=>{let F=`${d}:${y}:${E}:${P.importer}`;if(f.has(F))return;f.add(F);let J=await o.resolve(d,{kind:y,resolveDir:E,importer:P.importer});return J.errors.length>0?T_t.includes(d)||d.includes("/")&&T_t.includes(d.split("/")[0])?{external:!0}:{external:!0,warnings:J.errors.map(Te=>({...Te,location:{file:sdr(s,P.importer),line:0,column:0,namespace:"",length:0,lineText:"",suggestion:"Remove the imported node module"},detail:`The package "${d}" wasn't found on the file system but is built into node. If this code is executed it will fail.`}))}:J})}}}t(x_t,"nodejsCompatPlugin");import E_t from"node:fs/promises";import ME from"node:path";var v4="open-api-routes-plugin",GH="open-api-routes-json";function C_t(s){return{name:"open-api-routes-plugin",setup(o){o.onResolve({filter:/zuplo:routes$/},f=>({watchFiles:[...OIe(ME.join(s.sourceDirectory,k1),[".oas.json"],!0),ME.join(s.sourceDirectory,k1,noe)],namespace:GH,path:ME.isAbsolute(f.path)?f.path:ME.join(f.resolveDir,f.path),pluginName:v4})),o.onResolve({filter:/^\.\.\/modules\/.*/,namespace:GH},async f=>Ou.timeFn("Generating route data...",async()=>{async function d(){let E=ME.resolve(s.sourceDirectory,"config"),P=await dO(E),F=`$import(.${f.path.replace(/^../,"")})`;return{location:await Unt(P,F,"Update your route configuration to use code from the 'modules' folder"),originalImportValue:F}}t(d,"getLocation");let y=ME.join(f.resolveDir,`${f.path}.ts`);if(f.path.endsWith(".ts")){let{location:E,originalImportValue:P}=await d();return{errors:[{id:"route-build-error",text:`Invalid handler reference '${P}' in ${E?.file??"OpenAPI file"}. Imports must NOT include the '.ts' file extension.`,location:E,detail:"RouteReferenceError",pluginName:v4}],namespace:GH,path:f.path,pluginName:v4}}else if(!await tu.fileExists(y)){let{location:E,originalImportValue:P}=await d();return{errors:[{id:"route-build-error",text:`Invalid handler reference in route. Unable to resolve reference to '${P}' in ${E?.file??"OpenAPI file"}`,location:E,detail:"RouteReferenceError",pluginName:v4}],namespace:GH,path:f.path,pluginName:v4}}})),o.onLoad({filter:/.*/,namespace:GH},async f=>Ou.timeFn("Generating route.json data",async()=>{let d=ME.resolve(s.sourceDirectory,"config"),y=await dO(d),E=await Promise.all(y.map(async G=>({content:await E_t.readFile(G,"utf-8"),fileName:G}))),P=ME.resolve(d,"policies.json");if(!await tu.fileExists(P))return{errors:[{text:"The project must include a policies file ('/config/policies.json')",detail:"OASPoliciesFileMissing",pluginName:v4,location:{line:0,column:0,file:"/config/policies.json"}}],pluginName:v4};let F={content:await E_t.readFile(P,"utf-8"),fileName:P},J;try{J=await t4e({sourceDirectory:s.sourceDirectory,oasContent:E,policiesContent:F,compatibilityDate:s.config.compatibilityDate,allowDuplicateRoutes:s.config.allowDuplicateRoutes})}catch(G){throw new Error(`Error compiling routes: ${G.message}`)}if(Gm.DEBUG_BUILD_MODE&&J.content){let G=ME.join(s.sourceDirectory,Ng),Te=ME.resolve(G,"routes.js");await Wk(Te,J.content)}return{contents:J.content,errors:J.errors,pluginName:v4,resolveDir:ME.dirname(f.path),watchFiles:[f.path]}}))}}}t(C_t,"openApiRoutesPlugin");import jle from"node:path";var YH="raw-route-plugin",k_t="raw-route";function w_t(s){return{name:"raw-route-plugin",setup(o){o.onResolve({filter:/zuplo:raw-routes$/},f=>({namespace:k_t,path:f.path,pluginName:YH})),o.onLoad({filter:/.*/,namespace:k_t},async f=>Ou.timeFn("Building route data",async()=>{let d=jle.resolve(s.sourceDirectory,k1);if(!await tu.dirExists(d))return{loader:"js",resolveDir:jle.dirname(f.path),pluginName:YH};let y=await dO(d);try{let E=await bIe({oasFiles:y,sourceDirectory:s.sourceDirectory,logger:s.logger});if(Gm.DEBUG_BUILD_MODE&&E){let P=jle.join(s.sourceDirectory,Ng,"raw-routes.js");await Wk(P,E)}return{contents:E,loader:"js",resolveDir:jle.dirname(f.path),pluginName:YH}}catch(E){if(E instanceof C1)return{contents:"",loader:"ts",errors:[{id:"route-build-error",text:E.issue.text,location:E.issue.location,detail:E.issue.detail,pluginName:YH}],pluginName:YH};throw E}}))}}}t(w_t,"rawRoutePlugin");import odr from"node:fs/promises";import D_t from"node:path";var Ble="runtime-extensions-plugin",P_t="runtime-extensions";function A_t(s){return{name:Ble,setup(o){o.onResolve({filter:/zuplo:runtime-extension$/},f=>({namespace:P_t,path:f.path,pluginName:Ble})),o.onLoad({filter:/.*/,namespace:P_t},async()=>Ou.timeFn("Generating zuplo.runtime.ts data",async()=>{let f="export const runtimeInit = undefined;",d=D_t.resolve(s.sourceDirectory,Ytt,"zuplo.runtime.ts"),y=[];return await tu.fileExists(d)?(f=await odr.readFile(d,"utf-8"),{contents:f,loader:"ts",resolveDir:D_t.dirname(d),errors:y,pluginName:Ble,watchFiles:[d]}):{contents:f,loader:"ts",errors:y,pluginName:Ble}}))}}}t(A_t,"runtimeExtensionsPlugin");import I_t from"node:path";import{readFile as cdr}from"node:fs/promises";import b4 from"node:path";var jM=class extends Error{static{t(this,"DevPortalConfigError")}filename;constructor(o,f){super(o,f),this.name="DevPortalConfigError",this.filename=f?.filename}};async function N_t(s){let o=["zudoku.config.tsx","zudoku.config.ts","zudoku.config.js","zudoku.config.jsx","zudoku.config.mjs"];for(;o.length;){let P=o.pop();if(P){let F=b4.join("docs",P),J=b4.join(s,F);try{if(await tu.fileExists(J))return{enabled:!0,type:"zudoku",basePath:void 0,filepath:F}}catch(G){throw new jM("Failed to read dev portal configuration file.",{cause:G,filename:F})}}}let f=b4.join(k1,Xtt),d=b4.join(s,f),y=!0,E;if(await tu.fileExists(d)){try{let P=await cdr(d,"utf-8"),F=JSON.parse(P);F.enabled===!1&&(y=!1),E=F.sitePathname}catch(P){throw new jM("Failed to parse dev-portal.json file.",{cause:P,filename:f})}return{enabled:y,type:"legacy",basePath:E,filepath:f}}return{enabled:!1,type:void 0,basePath:void 0,filepath:void 0}}t(N_t,"getDevPortalConfig");function BM(s,o){let f=b4.resolve(s,U9);return Object.keys(o?.outputs??{}).map(E=>{let P=b4.normalize(E);return`./${b4.relative(f,P).split(b4.sep).join("/")}`})}t(BM,"getBuildModules");var O_t="/docs",ldr="/__zuplo/dev-portal";function udr(s){let o=s.trim().toLowerCase();return o.endsWith("/")&&(o=o.slice(0,-1)),o}t(udr,"normalizePathname");function fdr(s,o){let d={developerPortal:{basePath:s?.basePath===ldr?O_t:s?.basePath?udr(s.basePath):O_t,enabled:s?s.enabled??!0:!1,type:s?.type??void 0,urls:s?.urls?{defaultUrl:s.urls.defaultUrl,urls:s.urls.urls.map(E=>new URL(E).origin)}:void 0},api:o};return`const runtimeSettings = ${JSON.stringify(d)};
606
606
  export default runtimeSettings;`}t(fdr,"generateSource");var KH="runtime-settings-plugin",Ule="runtime-settings";function F_t(s){return{name:KH,setup(o){o.onResolve({filter:/zuplo:runtime-settings$/},f=>({namespace:Ule,path:f.path,pluginName:KH})),o.onLoad({filter:/.*/,namespace:Ule},async()=>Ou.timeFn("Generating runtime settings",async()=>{let f=[],d,y;try{let F=await N_t(s.sourceDirectory);y=F.filepath,d={...F,urls:s.urls?.devPortal}}catch(F){let J="Failed to load dev portal config",G="config/dev-portal.json";F instanceof jM&&(J=F.message,G=F.filename??G),f.push({id:"dev-portal-build-error",text:J,location:{file:G,namespace:Ule,line:1,column:0,length:0,lineText:"",suggestion:""},detail:"DevPortalValidationError",pluginName:KH,notes:[{text:F.message,location:null}]})}let E={urls:s.urls?.api},P;try{if(P=fdr(d,E),Gm.DEBUG_BUILD_MODE&&P){let F=I_t.join(s.sourceDirectory,Ng,"dev-portal.js");await Wk(F,P)}}catch(F){f.push({id:"dev-portal-build-error",text:F.message,location:{file:"dev-portal.json",namespace:Ule,line:1,column:0,length:0,lineText:"issue",suggestion:""},detail:"DevPortalValidationError",pluginName:KH,notes:[{text:F.message,location:null}]})}return{contents:P,errors:f,pluginName:KH,loader:"js",resolveDir:y?I_t.dirname(y):void 0}}))}}}t(F_t,"runtimeSettingsPlugin");import jIe from"node:fs/promises";import UO from"node:path";var R_t=Vp(xH(),1),LIe=Vp(Gce(),1),RIe=Vp(EIe(),1),M_t=Vp(IIe(),1);var FIe="schema-validation-plugin",L_t="schema-validation",_dr="module.exports = {}";function j_t(s){return{name:"schema-validation-plugin",setup(o){o.onResolve({filter:/zuplo:schema-validations$/},f=>({namespace:L_t,path:f.path,pluginName:FIe})),o.onLoad({filter:/.*/,namespace:L_t},async()=>Ou.timeFn("Validating schemas",async()=>{let f=UO.resolve(s.sourceDirectory,k1,"policies.json");if(!await tu.fileExists(f))return{contents:_dr,loader:"js",resolveDir:UO.dirname(f),pluginName:FIe};let d=await ddr(s.sourceDirectory),y=UO.resolve(s.sourceDirectory,k1),E=await dO(y),P=await ydr(E,d),F=await pdr({oasFiles:E,routesWithSchemaValidation:P,sourceDirectory:s.sourceDirectory,logger:s.logger});if(Gm.DEBUG_BUILD_MODE&&F){let J=UO.join(s.sourceDirectory,Ng,"schema-validation.js");await Wk(J,F)}return{contents:F,loader:"js",resolveDir:UO.dirname(f),pluginName:FIe}}))}}}t(j_t,"schemaValidationPlugin");async function pdr({oasFiles:s,routesWithSchemaValidation:o,sourceDirectory:f,logger:d}){let y="",E=new g4(f,d);if(o.length===0)return y;let P={code:{source:!0},allErrors:!0,strict:!1,verbose:!0,meta:!0},F=new LIe.Ajv2020(P),J=new LIe.Ajv2020({...P,coerceTypes:"array"});(0,M_t.default)(J,{mode:"fast"}),J.opts.code.formats=R_t._`require("ajv-formats/dist/formats").fastFormats`;for(let G of s){let Te=await jIe.readFile(G,"utf-8"),de=UO.basename(G,".oas.json"),ae=o.filter(Ut=>Ut.fileName===de),Ye=await E.resolve(G),Ue=JSON.parse(Te),je=[],Kt=new Map;ae.forEach(Ut=>{let kr=Ue.paths[Ut.path][Ut.method];if(kr.requestBody){let An;if(kr.requestBody.$ref){let nn=kr.requestBody.$ref;An=Ye.get(nn)?.content}else kr.requestBody.content&&(An=kr.requestBody.content);if(An)for(let nn in An){let Pn=An[nn].schema,wr=YPe(Ut.path,Ut.method,nn);Pn.$id=wr,F.addSchema(Pn),MIe(Pn,G,de,F,Ye,je,Kt)}}if(kr.parameters)for(let An of kr.parameters){let nn=An.$ref?Ye.get(An.$ref):An,Pn=nn.schema.$ref?Ye.get(nn.schema.$ref):nn.schema,wr=GPe(Ut.path,Ut.method,nn.in,nn.name);Pn.$id=wr,J.addSchema(Pn),MIe(nn,G,de,J,Ye,je,Kt)}});for(let Ut of je){let kr=Ye.get(Ut),An=AV(de,Ut);F.addSchema(kr,An),J.addSchema(kr,An)}}return y=`"use strict";
607
607
  const __paramExports = (function () {
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," "]]),woe=new Map([...EV,[118,"\v"],[48,"\0"]]),gXt=new Map([[jPe,jPe],["\\","\\"],["/","/"],["\b","b"],[`
569
569
  `,"n"],["\f","f"],["\r","r"],[" ","t"]]),dCr=new Map([...gXt,["\v","v"],["\0","0"],["\u2028","u2028"],["\u2029","u2029"]]),koe=new Map([[aXt,"LBracket"],[oXt,"RBracket"],[cXt,"LBrace"],[lXt,"RBrace"],[uXt,"Colon"],[fXt,"Comma"],[_Xt,"Boolean"],[pXt,"Boolean"],[dXt,"Null"]]),Coe=new Map([...koe,[mXt,"Number"],[hXt,"Number"]]),BPe=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}},UPe=class extends zP{static{t(this,"UnexpectedChar")}constructor(o,f){super(`Unexpected character '${String.fromCharCode(o)}' found.`,f)}},zPe=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)}},Doe=class extends zP{static{t(this,"UnexpectedEOF")}constructor(o){super("Unexpected end of input found.",o)}},yXt=/[\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]/,vXt=/[\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]/,bXt=13,Unt=10,$Pe=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===bXt?(this.#s=!0,this.peek()===Unt&&this.#r++):o===Unt&&(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}},SXt="Infinity",TXt="NaN",xXt=new Set([116,102,110]),JPe=new Set([32,9,10,13]),znt=new Set([...JPe,11,12,160,8232,8233,65279,160,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288]),EXt={mode:"json",ranges:!1},CXt=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 MPe(s){return UP(s)||s>=65&&s<=70||s>=97&&s<=102}t(MPe,"isHexDigit");function kXt(s){return s>=49&&s<=57}t(kXt,"isPositiveDigit");function wXt(s){return xXt.has(s)}t(wXt,"isKeywordStart");function Jnt(s){return UP(s)||s===46||s===45}t(Jnt,"isNumberStart");function DXt(s){return Jnt(s)||s===43}t(DXt,"isJSON5NumberStart");function $nt(s,o){return s===34||o&&s===39}t($nt,"isStringStart");function Wnt(s){if(s===36||s===95||s===92||s>=97&&s<=122||s>=65&&s<=90||s===8204||s===8205)return!0;let o=String.fromCharCode(s);return yXt.test(o)}t(Wnt,"isJSON5IdentifierStart");function PXt(s){if(Wnt(s)||UP(s))return!0;let o=String.fromCharCode(s);return vXt.test(o)}t(PXt,"isJSON5IdentifierPart");var WPe=class{static{t(this,"Tokenizer")}#e;#n;#t;#r;#s;#m;#c;#u;#f;#p;#a;constructor(o,f){this.#n=o,this.#e={...EXt,...f},this.#t=new $Pe(o),this.#r=this.#e.mode==="json5",this.#s=this.#e.mode!=="json",this.#m=this.#e.ranges,this.#u=this.#r?woe.has.bind(woe):EV.has.bind(EV),this.#f=this.#r?BPe.has.bind(BPe):()=>!1,this.#p=this.#r?d=>d===120:()=>!1,this.#a=this.#r?znt.has.bind(znt):JPe.has.bind(JPe)}#i(o,f=this.#t.locate()){throw new UPe(o,f)}#o(o,f=this.#t.locate()){throw new zPe(o,f)}#h(){throw new Doe(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(),MPe(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(),!PXt(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!==SXt&&d!==TXt&&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(),MPe(o)||(this.#t.next(),this.#i(o));do this.#t.next(),f++,o=this.#t.peek();while(MPe(o))}else UP(o)&&this.#i(o);else if(!this.#r||o!==46)for(kXt(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(Coe.has(d))this.#c=this.#d(Coe.get(d),1,f);else if(Wnt(o)){let y=this.#y(o);Coe.has(y)?this.#c=this.#d(Coe.get(y),y.length,f):this.#c=this.#d("Identifier",y.length,f)}else if(DXt(o)){let y=this.#v(o);this.#c=this.#d("Number",y,f)}else if($nt(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(koe.has(d))this.#c=this.#d(koe.get(d),1,f);else if(wXt(o)){let y=this.#y(o);CXt.has(y)||this.#o(y,f),this.#c=this.#d(koe.get(y),y.length,f)}else if(Jnt(o)){let y=this.#v(o);this.#c=this.#d("Number",y,f)}else if($nt(o,this.#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}}},AXt={mode:"json",ranges:!1,tokens:!1,allowTrailingCommas:!1};function NXt(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&&woe.has(F))d+=woe.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 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&&BPe.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(NXt,"getStringValue");function IXt(s,o,f=!1){switch(o.type){case"Boolean":return s==="true";case"Number":return Number(s);case"String":return NXt(s.slice(1,-1),o,f);default:throw new TypeError(`Unknown token type "${o.type}.`)}}t(IXt,"getLiteralValue");function qnt(s,o){o=Object.freeze({...AXt,...o});let f=[],d=new WPe(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=IXt(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 Doe(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(qnt,"parse");var OXt=new Map([["Document",["body"]],["Object",["members"]],["Member",["name","value"]],["Element",["value"]],["Array",["elements"]],["String",[]],["Number",[]],["Boolean",[]],["Null",[]],["NaN",[]],["Infinity",[]],["Identifier",[]]]);function Vnt(s){return s&&typeof s=="object"}t(Vnt,"isObject");function FXt(s){return Vnt(s)&&typeof s.type=="string"}t(FXt,"isNode");function LXt(s,o){function f(d,y){typeof o.enter=="function"&&o.enter(d,y);for(let E of OXt.get(d.type)){let P=d[E];Vnt(P)&&(Array.isArray(P)?P.forEach(F=>f(F,d)):FXt(P)&&f(P,d))}typeof o.exit=="function"&&o.exit(d,y)}t(f,"visitNode"),f(s)}t(LXt,"traverse");function Hnt(s,o=()=>!0){let f=[];return LXt(s,{enter(d,y){f.push({node:d,parent:y,phase:"enter"})},exit(d,y){f.push({node:d,parent:y,phase:"exit"})}}),f.filter(o).values()}t(Hnt,"iterator");import RXt from"node:fs/promises";var CV=t((s,o)=>s.split(/\r?\n/)[o-1],"getFileLineContent"),Poe=t(async s=>{try{return await RXt.readFile(s,"utf-8")}catch{return}},"getSchemaContent"),kV=t(async s=>{try{return qnt(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 Gnt=t(async(s,o,f)=>{try{if(s.length===0)return;for(let d of s){let y=await Poe(d),E=await MXt(y,d,o,f);if(E)return E}}catch{}},"getRouteLocationByValue"),MXt=t(async(s,o,f,d)=>{try{if(!s)return;let y=null,E=await kV(s);if(E){for(let{node:P}of Hnt(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 Ynt from"node:fs/promises";import bE from"node:path";var qPe="schemas",VPe=".oas.json";var hO=t(async s=>(await Ynt.readdir(s)).map(f=>bE.join(s,f)).filter(f=>f.endsWith(VPe)).sort(),"getOpenApiFilesByAlphabetical"),W9=t(async s=>{let o=bE.resolve(s,"config");return(await Ynt.readdir(o)).filter(d=>d.endsWith(VPe)).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 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=Noe(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),Aoe(J,V,F,d,y,E,P)}else E.set(f,y.length),y.push(f),Aoe(Noe(f),o,F,d,y,E,P)}t(wV,"chaseRefs");function Aoe(s,o,f,d,y,E,P){if(Array.isArray(f))for(let F of f)Aoe(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,KN(s,J),d,y,E,P)}Aoe(s,o,f[F],d,y,E,P)}}t(Aoe,"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 Noe(s){let o=s.indexOf("#");return o>=0?s.substring(0,o):s}t(Noe,"getFilePathNameFromRefName");import sle from"node:path";function jXt(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(jXt,"base");var Knt=jXt;var BXt="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Ioe=Knt(BXt);var UXt=!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 UXt?`${o.open}${s.replace(o.regexp,o.open)}${o.close}`:s}t(V9,"run");function zXt(s){return V9(s,q9([31],39))}t(zXt,"red");function $Xt(s){return V9(s,q9([32],39))}t($Xt,"green");function JXt(s){return V9(s,q9([33],39))}t(JXt,"yellow");function WXt(s){return V9(s,q9([34],39))}t(WXt,"blue");function qXt(s){return V9(s,q9([35],39))}t(qXt,"magenta");function VXt(s){return V9(s,q9([36],39))}t(VXt,"cyan");var RCr=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 Xnt=[zXt,$Xt,JXt,WXt,qXt,VXt];function HXt(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(HXt,"hashCode");function Znt(s){let o=Math.abs(HXt(s));return Xnt[o%Xnt.length]}t(Znt,"generateColor");import{inspect as GXt}from"node:util";function Qnt(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(Qnt,"format");var eit=t((s,...o)=>Qnt(GXt,s,o),"format");var HPe=class{static{t(this,"Debugger")}manager;ns;color;last;enabled;constructor(o,f){this.manager=o,this.ns=f,this.color=Znt(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=eit(f,...o);let E=`${this.color(this.ns)} ${f} ${this.color(`+${y}ms`)}`;console.log(E),this.last=Date.now()}},GPe=class{static{t(this,"DebugManager")}debuggers;enabled;constructor(o){this.debuggers=new Map,this.enabled=o??[]}};function YXt(s){return!s||s.length===0?[]:(s=s.replace(/\s/g,"").replace(/\*/g,".+"),s.split(",").map(o=>new RegExp(`^${o}$`)))}t(YXt,"extract");var Ooe;function Foe(s){Ooe||(Ooe=new GPe(YXt(process.env.DEBUG)));let o=new HPe(Ooe,s);return Ooe.debuggers.set(s,o),Object.assign(o.log.bind(o),{self:o})}t(Foe,"debug");var tit="zp-local-service";var KCr=Symbol("zuplo_meters"),XCr=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=Foe("zuplo:runtime:external-service");function KXt(){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(KXt,"getServiceAuth");async function rit(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 DV(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=KXt();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 XXt(V,Kt.ACCOUNT_NAME,Kt.PROJECT_NAME,Kt.ENVIRONMENT_TYPE),kr=iit(Kt.ENVIRONMENT_TYPE),An=await YPe(`${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 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 $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(rit,"externalServiceHandler");async function nit(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(tit,d),y.headers=F,await DV(P.toString(),y)}else throw new $P("Currently, we only support fetch(<some_string>, ...).")}t(nit,"clusterServiceHandler");async function XXt(s,o,f,d){let y=s.toLowerCase(),E=o.toLowerCase(),P=f.toLowerCase(),F=iit(d);XN(`Hashing service name: ${E}-${y}.${E}-${P}-${F}`);let J=await YPe(`${E}-${y}`),V=await YPe(`${E}-${P}-${F}`);return`${J}.${V}`}t(XXt,"hashServiceName");async function YPe(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(YPe,"hashSegment");function iit(s){let o=s.toLowerCase();switch(o){case"production":case"preview":return o;default:return"working-copy"}}t(iit,"sanitizeEnvironmentType");var KPe=new Map;KPe.set("service:",rit);KPe.set("local:",nit);var DV=globalThis.fetch;function XPe(s,o){let{transformedInit:f,mtlsCertificate:d}=ZXt(o);if(typeof s=="string"){let y=new URL(s),E=KPe.get(y.protocol);return E?E(s,f):sit(s,f,d)}else return sit(s,f,d)}t(XPe,"internalFetch");globalThis.fetch=XPe;function sit(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(sit,"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 QXt={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:XPe},PV=QXt;var ZPe="2025-02-06",ait=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 oit(){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:ZPe,ENVIRONMENT_TYPE:"mock-environment-type",GIT_SHA:void 0,IS_LOCAL_DEVELOPMENT:!1,COMPATIBILITY_FLAGS:ait[ZPe]},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:"mock-bucket-id"}})}t(oit,"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=oit()),s.#e}constructor({build:o,runtime:f}){let d;try{if(f.ZUPLO_SYSTEM_CONFIGURATIONS){let y=new TextDecoder().decode(Ioe.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 eZt=["ZUPLO_USER_LOGGER_DATA_DOG_API_KEY","ZUPLO_USER_LOGGER_DATA_DOG_URL","ZUPLO_LOG_LEVEL","ZUPLO_HANDLER_WRITE_LOG_LEVEL"];function cit(s){return s.startsWith("__ZUPLO")||s.startsWith("ZUPLO_")?!eZt.includes(s)&&!s.startsWith("ZUPLO_PUBLIC_"):s.startsWith("ZUDOKU_")?!s.startsWith("ZUDOKU_PUBLIC_"):!1}t(cit,"isRestrictedEnvVariableName");function lit(s){return!!s.startsWith("ZUPLO_")}t(lit,"isZuploReadableEnvVariableName");var kkr=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(!(cit(f)&&!lit(f)))return Em.instance.runtime[f]}});function AV(s,o,f){return`_${JP(`${s}_${o}_${f}`)}`}t(AV,"getRawOperationDataIdentifierName");function QPe(s,o,f,d){return`_${JP(s.toLowerCase())}_${o.toLowerCase()}_${f.toLowerCase()}_${d.toLowerCase()}`}t(QPe,"getIdForParameterSchema");function eAe(s,o,f){return`_${JP(s.toLowerCase())}_${o.toLowerCase()}_rb_${JP(f.toLowerCase())}`}t(eAe,"getIdForRequestBodySchema");function NV(s,o){return`_${JP(s)}_${JP(o)}`}t(NV,"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 rAe={};Mtt(rAe,{UnsafePathError:()=>Loe,deleteFolder:()=>dZt,dirExists:()=>tAe,fileExists:()=>iZt,getParentDirFilename:()=>fZt,isNotFileOrDirectory:()=>aZt,listFolderContents:()=>_it,listFolders:()=>cZt,mkDirTemp:()=>sZt,mkdirForFilePathIfNotExits:()=>lZt,mkdirIfNotExists:()=>pit,safePath:()=>uZt,tarFolder:()=>_Zt,untarFile:()=>pZt});import{spawn as uit}from"node:child_process";import{randomUUID as tZt}from"node:crypto";import ZN from"node:fs/promises";import{platform as rZt,tmpdir as nZt}from"node:os";import N1 from"node:path";var fit=[".git","node_modules",".yarn",".DS_Store"];async function iZt(s){try{return(await ZN.stat(s)).isFile()}catch{return!1}}t(iZt,"fileExists");async function sZt(){let s=process.env.BUILD_FILE_PATH??nZt(),o=tZt().replaceAll("-",""),f=N1.join(s,o);return await ZN.mkdir(f,{recursive:!0}),f}t(sZt,"mkDirTemp");async function tAe(s){try{return(await ZN.stat(s)).isDirectory()}catch{return!1}}t(tAe,"dirExists");async function aZt(s){try{return await ZN.stat(s),!1}catch{return!0}}t(aZt,"isNotFileOrDirectory");function oZt(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(oZt,"getParentDirectory");async function cZt(s){if(!await tAe(s))return[];let o=await ZN.readdir(s,{withFileTypes:!0}),f=[];for await(let d of o)fit.includes(d.name)||d.isDirectory()&&f.push(d.name);return f}t(cZt,"listFolders");async function _it(s,o,f=!0){let d=oZt(s,o),y=await ZN.readdir(s,{withFileTypes:!0}),E=[];for await(let P of y)if(!fit.includes(P.name)||!f)if(P.isDirectory()){let F=await _it(N1.join(s,P.name),o,f);E.push(...F)}else E.push(N1.join(d,P.name));return E}t(_it,"listFolderContents");var pit=t(async s=>{await ZN.mkdir(s,{recursive:!0})},"mkdirIfNotExists"),lZt=t(async s=>{let o=N1.dirname(s);return pit(o)},"mkdirForFilePathIfNotExits"),Loe=class extends Error{static{t(this,"UnsafePathError")}};function uZt(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 Loe("Resolved path is not part of the project.");return y},"ensureSafePath");return{resolve:t((...d)=>f(N1.resolve(...d)),"resolve")}}t(uZt,"safePath");function fZt(s){return N1.join(N1.basename(N1.dirname(s)),N1.basename(s))}t(fZt,"getParentDirFilename");async function _Zt({folderPath:s,outputTarPath:o,exclude:f=["node_modules",".git","dist"],logger:d}){let y=[],E=[],P;try{await new Promise((F,J)=>{let V=uit("tar",[...f.flatMap(Te=>["--exclude",Te]),...rZt()!=="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(Qnt,"format");var eit=t((s,...o)=>Qnt(GXt,s,o),"format");var HPe=class{static{t(this,"Debugger")}manager;ns;color;last;enabled;constructor(o,f){this.manager=o,this.ns=f,this.color=Znt(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=eit(f,...o);let E=`${this.color(this.ns)} ${f} ${this.color(`+${y}ms`)}`;console.log(E),this.last=Date.now()}},GPe=class{static{t(this,"DebugManager")}debuggers;enabled;constructor(o){this.debuggers=new Map,this.enabled=o??[]}};function YXt(s){return!s||s.length===0?[]:(s=s.replace(/\s/g,"").replace(/\*/g,".+"),s.split(",").map(o=>new RegExp(`^${o}$`)))}t(YXt,"extract");var Ooe;function Foe(s){Ooe||(Ooe=new GPe(YXt(process.env.DEBUG)));let o=new HPe(Ooe,s);return Ooe.debuggers.set(s,o),Object.assign(o.log.bind(o),{self:o})}t(Foe,"debug");var tit="zp-local-service";var KCr=Symbol("zuplo_meters"),XCr=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=Foe("zuplo:runtime:external-service");function KXt(){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(KXt,"getServiceAuth");async function rit(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 DV(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=KXt();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 XXt(V,Kt.ACCOUNT_NAME,Kt.PROJECT_NAME,Kt.ENVIRONMENT_TYPE),kr=iit(Kt.ENVIRONMENT_TYPE),An=await YPe(`${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 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 $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(rit,"externalServiceHandler");async function nit(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(tit,d),y.headers=F,await DV(P.toString(),y)}else throw new $P("Currently, we only support fetch(<some_string>, ...).")}t(nit,"clusterServiceHandler");async function XXt(s,o,f,d){let y=s.toLowerCase(),E=o.toLowerCase(),P=f.toLowerCase(),F=iit(d);XN(`Hashing service name: ${E}-${y}.${E}-${P}-${F}`);let J=await YPe(`${E}-${y}`),V=await YPe(`${E}-${P}-${F}`);return`${J}.${V}`}t(XXt,"hashServiceName");async function YPe(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(YPe,"hashSegment");function iit(s){let o=s.toLowerCase();switch(o){case"production":case"preview":return o;default:return"working-copy"}}t(iit,"sanitizeEnvironmentType");var KPe=new Map;KPe.set("service:",rit);KPe.set("local:",nit);var DV=globalThis.fetch;function XPe(s,o){let{transformedInit:f,mtlsCertificate:d}=ZXt(o);if(typeof s=="string"){let y=new URL(s),E=KPe.get(y.protocol);return E?E(s,f):sit(s,f,d)}else return sit(s,f,d)}t(XPe,"internalFetch");globalThis.fetch=XPe;function sit(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(sit,"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 QXt={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:XPe},PV=QXt;var ZPe="2025-02-06",ait=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 oit(){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:ZPe,ENVIRONMENT_TYPE:"mock-environment-type",GIT_SHA:void 0,IS_LOCAL_DEVELOPMENT:!1,COMPATIBILITY_FLAGS:ait[ZPe]},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(oit,"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=oit()),s.#e}constructor({build:o,runtime:f}){let d;try{if(f.ZUPLO_SYSTEM_CONFIGURATIONS){let y=new TextDecoder().decode(Ioe.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 eZt=["ZUPLO_USER_LOGGER_DATA_DOG_API_KEY","ZUPLO_USER_LOGGER_DATA_DOG_URL","ZUPLO_LOG_LEVEL","ZUPLO_HANDLER_WRITE_LOG_LEVEL"];function cit(s){return s.startsWith("__ZUPLO")||s.startsWith("ZUPLO_")?!eZt.includes(s)&&!s.startsWith("ZUPLO_PUBLIC_"):s.startsWith("ZUDOKU_")?!s.startsWith("ZUDOKU_PUBLIC_"):!1}t(cit,"isRestrictedEnvVariableName");function lit(s){return!!s.startsWith("ZUPLO_")}t(lit,"isZuploReadableEnvVariableName");var kkr=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(!(cit(f)&&!lit(f)))return Em.instance.runtime[f]}});function AV(s,o,f){return`_${JP(`${s}_${o}_${f}`)}`}t(AV,"getRawOperationDataIdentifierName");function QPe(s,o,f,d){return`_${JP(s.toLowerCase())}_${o.toLowerCase()}_${f.toLowerCase()}_${d.toLowerCase()}`}t(QPe,"getIdForParameterSchema");function eAe(s,o,f){return`_${JP(s.toLowerCase())}_${o.toLowerCase()}_rb_${JP(f.toLowerCase())}`}t(eAe,"getIdForRequestBodySchema");function NV(s,o){return`_${JP(s)}_${JP(o)}`}t(NV,"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 rAe={};Mtt(rAe,{UnsafePathError:()=>Loe,deleteFolder:()=>dZt,dirExists:()=>tAe,fileExists:()=>iZt,getParentDirFilename:()=>fZt,isNotFileOrDirectory:()=>aZt,listFolderContents:()=>_it,listFolders:()=>cZt,mkDirTemp:()=>sZt,mkdirForFilePathIfNotExits:()=>lZt,mkdirIfNotExists:()=>pit,safePath:()=>uZt,tarFolder:()=>_Zt,untarFile:()=>pZt});import{spawn as uit}from"node:child_process";import{randomUUID as tZt}from"node:crypto";import ZN from"node:fs/promises";import{platform as rZt,tmpdir as nZt}from"node:os";import N1 from"node:path";var fit=[".git","node_modules",".yarn",".DS_Store"];async function iZt(s){try{return(await ZN.stat(s)).isFile()}catch{return!1}}t(iZt,"fileExists");async function sZt(){let s=process.env.BUILD_FILE_PATH??nZt(),o=tZt().replaceAll("-",""),f=N1.join(s,o);return await ZN.mkdir(f,{recursive:!0}),f}t(sZt,"mkDirTemp");async function tAe(s){try{return(await ZN.stat(s)).isDirectory()}catch{return!1}}t(tAe,"dirExists");async function aZt(s){try{return await ZN.stat(s),!1}catch{return!0}}t(aZt,"isNotFileOrDirectory");function oZt(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(oZt,"getParentDirectory");async function cZt(s){if(!await tAe(s))return[];let o=await ZN.readdir(s,{withFileTypes:!0}),f=[];for await(let d of o)fit.includes(d.name)||d.isDirectory()&&f.push(d.name);return f}t(cZt,"listFolders");async function _it(s,o,f=!0){let d=oZt(s,o),y=await ZN.readdir(s,{withFileTypes:!0}),E=[];for await(let P of y)if(!fit.includes(P.name)||!f)if(P.isDirectory()){let F=await _it(N1.join(s,P.name),o,f);E.push(...F)}else E.push(N1.join(d,P.name));return E}t(_it,"listFolderContents");var pit=t(async s=>{await ZN.mkdir(s,{recursive:!0})},"mkdirIfNotExists"),lZt=t(async s=>{let o=N1.dirname(s);return pit(o)},"mkdirForFilePathIfNotExits"),Loe=class extends Error{static{t(this,"UnsafePathError")}};function uZt(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 Loe("Resolved path is not part of the project.");return y},"ensureSafePath");return{resolve:t((...d)=>f(N1.resolve(...d)),"resolve")}}t(uZt,"safePath");function fZt(s){return N1.join(N1.basename(N1.dirname(s)),N1.basename(s))}t(fZt,"getParentDirFilename");async function _Zt({folderPath:s,outputTarPath:o,exclude:f=["node_modules",".git","dist"],logger:d}){let y=[],E=[],P;try{await new Promise((F,J)=>{let V=uit("tar",[...f.flatMap(Te=>["--exclude",Te]),...rZt()!=="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(_Zt,"tarFolder");async function pZt({tarFilePath:s,outputDir:o,logger:f}){let d=[],y=[],E;try{await new Promise((P,F)=>{let J=uit("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(`
@@ -601,7 +601,7 @@ globstar while`,s,de,o,ae,Ye),this.matchOne(s.slice(de),o.slice(ae),f))return th
601
601
  `,P):(s.write("/*"),Kpr(s,P.value,f,d),s.write("*/"+d))}}t(R1,"formatComments");function Xpr(s){let o=s;for(;o!=null;){let{type:f}=o;if(f[0]==="C"&&f[1]==="a")return!0;if(f[0]==="M"&&f[1]==="e"&&f[2]==="m")o=o.object;else return!1}}t(Xpr,"hasCallExpression");function x4e(s,o){let{generator:f}=s,{declarations:d}=o;s.write(o.kind+" ");let{length:y}=d;if(y>0){f.VariableDeclarator(d[0],s);for(let E=1;E<y;E++)s.write(", "),f.VariableDeclarator(d[E],s)}}t(x4e,"formatVariableDeclaration");var Hft,Gft,Yft,Kft,Xft,Zft,Zpr={Program(s,o){let f=o.indent.repeat(o.indentLevel),{lineEnd:d,writeComments:y}=o;y&&s.comments!=null&&R1(o,s.comments,f,d);let E=s.body,{length:P}=E;for(let F=0;F<P;F++){let J=E[F];y&&J.comments!=null&&R1(o,J.comments,f,d),o.write(f),this[J.type](J,o),o.write(d)}y&&s.trailingComments!=null&&R1(o,s.trailingComments,f,d)},BlockStatement:Zft=t(function(s,o){let f=o.indent.repeat(o.indentLevel++),{lineEnd:d,writeComments:y}=o,E=f+o.indent;o.write("{");let P=s.body;if(P!=null&&P.length>0){o.write(d),y&&s.comments!=null&&R1(o,s.comments,E,d);let{length:F}=P;for(let J=0;J<F;J++){let V=P[J];y&&V.comments!=null&&R1(o,V.comments,E,d),o.write(E),this[V.type](V,o),o.write(d)}o.write(f)}else y&&s.comments!=null&&(o.write(d),R1(o,s.comments,E,d),o.write(f));y&&s.trailingComments!=null&&R1(o,s.trailingComments,E,d),o.write("}"),o.indentLevel--},"BlockStatement"),ClassBody:Zft,StaticBlock(s,o){o.write("static "),this.BlockStatement(s,o)},EmptyStatement(s,o){o.write(";")},ExpressionStatement(s,o){let f=o.expressionsPrecedence[s.expression.type];f===LE||f===3&&s.expression.left.type[0]==="O"?(o.write("("),this[s.expression.type](s.expression,o),o.write(")")):this[s.expression.type](s.expression,o),o.write(";")},IfStatement(s,o){o.write("if ("),this[s.test.type](s.test,o),o.write(") "),this[s.consequent.type](s.consequent,o),s.alternate!=null&&(o.write(" else "),this[s.alternate.type](s.alternate,o))},LabeledStatement(s,o){this[s.label.type](s.label,o),o.write(": "),this[s.body.type](s.body,o)},BreakStatement(s,o){o.write("break"),s.label!=null&&(o.write(" "),this[s.label.type](s.label,o)),o.write(";")},ContinueStatement(s,o){o.write("continue"),s.label!=null&&(o.write(" "),this[s.label.type](s.label,o)),o.write(";")},WithStatement(s,o){o.write("with ("),this[s.object.type](s.object,o),o.write(") "),this[s.body.type](s.body,o)},SwitchStatement(s,o){let f=o.indent.repeat(o.indentLevel++),{lineEnd:d,writeComments:y}=o;o.indentLevel++;let E=f+o.indent,P=E+o.indent;o.write("switch ("),this[s.discriminant.type](s.discriminant,o),o.write(") {"+d);let{cases:F}=s,{length:J}=F;for(let V=0;V<J;V++){let Te=F[V];y&&Te.comments!=null&&R1(o,Te.comments,E,d),Te.test?(o.write(E+"case "),this[Te.test.type](Te.test,o),o.write(":"+d)):o.write(E+"default:"+d);let{consequent:de}=Te,{length:ae}=de;for(let Ye=0;Ye<ae;Ye++){let Ue=de[Ye];y&&Ue.comments!=null&&R1(o,Ue.comments,P,d),o.write(P),this[Ue.type](Ue,o),o.write(d)}}o.indentLevel-=2,o.write(f+"}")},ReturnStatement(s,o){o.write("return"),s.argument&&(o.write(" "),this[s.argument.type](s.argument,o)),o.write(";")},ThrowStatement(s,o){o.write("throw "),this[s.argument.type](s.argument,o),o.write(";")},TryStatement(s,o){if(o.write("try "),this[s.block.type](s.block,o),s.handler){let{handler:f}=s;f.param==null?o.write(" catch "):(o.write(" catch ("),this[f.param.type](f.param,o),o.write(") ")),this[f.body.type](f.body,o)}s.finalizer&&(o.write(" finally "),this[s.finalizer.type](s.finalizer,o))},WhileStatement(s,o){o.write("while ("),this[s.test.type](s.test,o),o.write(") "),this[s.body.type](s.body,o)},DoWhileStatement(s,o){o.write("do "),this[s.body.type](s.body,o),o.write(" while ("),this[s.test.type](s.test,o),o.write(");")},ForStatement(s,o){if(o.write("for ("),s.init!=null){let{init:f}=s;f.type[0]==="V"?x4e(o,f):this[f.type](f,o)}o.write("; "),s.test&&this[s.test.type](s.test,o),o.write("; "),s.update&&this[s.update.type](s.update,o),o.write(") "),this[s.body.type](s.body,o)},ForInStatement:Hft=t(function(s,o){o.write(`for ${s.await?"await ":""}(`);let{left:f}=s;f.type[0]==="V"?x4e(o,f):this[f.type](f,o),o.write(s.type[3]==="I"?" in ":" of "),this[s.right.type](s.right,o),o.write(") "),this[s.body.type](s.body,o)},"ForInStatement"),ForOfStatement:Hft,DebuggerStatement(s,o){o.write("debugger;",s)},FunctionDeclaration:Gft=t(function(s,o){o.write((s.async?"async ":"")+(s.generator?"function* ":"function ")+(s.id?s.id.name:""),s),LM(o,s.params),o.write(" "),this[s.body.type](s.body,o)},"FunctionDeclaration"),FunctionExpression:Gft,VariableDeclaration(s,o){x4e(o,s),o.write(";")},VariableDeclarator(s,o){this[s.id.type](s.id,o),s.init!=null&&(o.write(" = "),this[s.init.type](s.init,o))},ClassDeclaration(s,o){if(o.write("class "+(s.id?`${s.id.name} `:""),s),s.superClass){o.write("extends ");let{superClass:f}=s,{type:d}=f,y=o.expressionsPrecedence[d];(d[0]!=="C"||d[1]!=="l"||d[5]!=="E")&&(y===LE||y<o.expressionsPrecedence.ClassExpression)?(o.write("("),this[s.superClass.type](f,o),o.write(")")):this[f.type](f,o),o.write(" ")}this.ClassBody(s.body,o)},ImportDeclaration(s,o){o.write("import ");let{specifiers:f,attributes:d}=s,{length:y}=f,E=0;if(y>0){for(;E<y;){E>0&&o.write(", ");let P=f[E],F=P.type[6];if(F==="D")o.write(P.local.name,P),E++;else if(F==="N")o.write("* as "+P.local.name,P),E++;else break}if(E<y){for(o.write("{");;){let P=f[E],{name:F}=P.imported;if(o.write(F,P),F!==P.local.name&&o.write(" as "+P.local.name),++E<y)o.write(", ");else break}o.write("}")}o.write(" from ")}if(this.Literal(s.source,o),d&&d.length>0){o.write(" with { ");for(let P=0;P<d.length;P++)this.ImportAttribute(d[P],o),P<d.length-1&&o.write(", ");o.write(" }")}o.write(";")},ImportAttribute(s,o){this.Identifier(s.key,o),o.write(": "),this.Literal(s.value,o)},ImportExpression(s,o){o.write("import("),this[s.source.type](s.source,o),o.write(")")},ExportDefaultDeclaration(s,o){o.write("export default "),this[s.declaration.type](s.declaration,o),o.expressionsPrecedence[s.declaration.type]!=null&&s.declaration.type[0]!=="F"&&o.write(";")},ExportNamedDeclaration(s,o){if(o.write("export "),s.declaration)this[s.declaration.type](s.declaration,o);else{o.write("{");let{specifiers:f}=s,{length:d}=f;if(d>0)for(let y=0;;){let E=f[y],{name:P}=E.local;if(o.write(P,E),P!==E.exported.name&&o.write(" as "+E.exported.name),++y<d)o.write(", ");else break}if(o.write("}"),s.source&&(o.write(" from "),this.Literal(s.source,o)),s.attributes&&s.attributes.length>0){o.write(" with { ");for(let y=0;y<s.attributes.length;y++)this.ImportAttribute(s.attributes[y],o),y<s.attributes.length-1&&o.write(", ");o.write(" }")}o.write(";")}},ExportAllDeclaration(s,o){if(s.exported!=null?o.write("export * as "+s.exported.name+" from "):o.write("export * from "),this.Literal(s.source,o),s.attributes&&s.attributes.length>0){o.write(" with { ");for(let f=0;f<s.attributes.length;f++)this.ImportAttribute(s.attributes[f],o),f<s.attributes.length-1&&o.write(", ");o.write(" }")}o.write(";")},MethodDefinition(s,o){s.static&&o.write("static ");let f=s.kind[0];(f==="g"||f==="s")&&o.write(s.kind+" "),s.value.async&&o.write("async "),s.value.generator&&o.write("*"),s.computed?(o.write("["),this[s.key.type](s.key,o),o.write("]")):this[s.key.type](s.key,o),LM(o,s.value.params),o.write(" "),this[s.value.body.type](s.value.body,o)},ClassExpression(s,o){this.ClassDeclaration(s,o)},ArrowFunctionExpression(s,o){o.write(s.async?"async ":"",s);let{params:f}=s;f!=null&&(f.length===1&&f[0].type[0]==="I"?o.write(f[0].name,f[0]):LM(o,s.params)),o.write(" => "),s.body.type[0]==="O"?(o.write("("),this.ObjectExpression(s.body,o),o.write(")")):this[s.body.type](s.body,o)},ThisExpression(s,o){o.write("this",s)},Super(s,o){o.write("super",s)},RestElement:Yft=t(function(s,o){o.write("..."),this[s.argument.type](s.argument,o)},"RestElement"),SpreadElement:Yft,YieldExpression(s,o){o.write(s.delegate?"yield*":"yield"),s.argument&&(o.write(" "),this[s.argument.type](s.argument,o))},AwaitExpression(s,o){o.write("await ",s),Fle(o,s.argument,s)},TemplateLiteral(s,o){let{quasis:f,expressions:d}=s;o.write("`");let{length:y}=d;for(let P=0;P<y;P++){let F=d[P],J=f[P];o.write(J.value.raw,J),o.write("${"),this[F.type](F,o),o.write("}")}let E=f[f.length-1];o.write(E.value.raw,E),o.write("`")},TemplateElement(s,o){o.write(s.value.raw,s)},TaggedTemplateExpression(s,o){Fle(o,s.tag,s),this[s.quasi.type](s.quasi,o)},ArrayExpression:Xft=t(function(s,o){if(o.write("["),s.elements.length>0){let{elements:f}=s,{length:d}=f;for(let y=0;;){let E=f[y];if(E!=null&&this[E.type](E,o),++y<d)o.write(", ");else{E==null&&o.write(", ");break}}}o.write("]")},"ArrayExpression"),ArrayPattern:Xft,ObjectExpression(s,o){let f=o.indent.repeat(o.indentLevel++),{lineEnd:d,writeComments:y}=o,E=f+o.indent;if(o.write("{"),s.properties.length>0){o.write(d),y&&s.comments!=null&&R1(o,s.comments,E,d);let P=","+d,{properties:F}=s,{length:J}=F;for(let V=0;;){let Te=F[V];if(y&&Te.comments!=null&&R1(o,Te.comments,E,d),o.write(E),this[Te.type](Te,o),++V<J)o.write(P);else break}o.write(d),y&&s.trailingComments!=null&&R1(o,s.trailingComments,E,d),o.write(f+"}")}else y?s.comments!=null?(o.write(d),R1(o,s.comments,E,d),s.trailingComments!=null&&R1(o,s.trailingComments,E,d),o.write(f+"}")):s.trailingComments!=null?(o.write(d),R1(o,s.trailingComments,E,d),o.write(f+"}")):o.write("}"):o.write("}");o.indentLevel--},Property(s,o){s.method||s.kind[0]!=="i"?this.MethodDefinition(s,o):(s.shorthand||(s.computed?(o.write("["),this[s.key.type](s.key,o),o.write("]")):this[s.key.type](s.key,o),o.write(": ")),this[s.value.type](s.value,o))},PropertyDefinition(s,o){if(s.static&&o.write("static "),s.computed&&o.write("["),this[s.key.type](s.key,o),s.computed&&o.write("]"),s.value==null){s.key.type[0]!=="F"&&o.write(";");return}o.write(" = "),this[s.value.type](s.value,o),o.write(";")},ObjectPattern(s,o){if(o.write("{"),s.properties.length>0){let{properties:f}=s,{length:d}=f;for(let y=0;this[f[y].type](f[y],o),++y<d;)o.write(", ")}o.write("}")},SequenceExpression(s,o){LM(o,s.expressions)},UnaryExpression(s,o){if(s.prefix){let{operator:f,argument:d,argument:{type:y}}=s;o.write(f);let E=Qft(o,d,s);!E&&(f.length>1||y[0]==="U"&&(y[1]==="n"||y[1]==="p")&&d.prefix&&d.operator[0]===f&&(f==="+"||f==="-"))&&o.write(" "),E?(o.write(f.length>1?" (":"("),this[y](d,o),o.write(")")):this[y](d,o)}else this[s.argument.type](s.argument,o),o.write(s.operator)},UpdateExpression(s,o){s.prefix?(o.write(s.operator),this[s.argument.type](s.argument,o)):(this[s.argument.type](s.argument,o),o.write(s.operator))},AssignmentExpression(s,o){this[s.left.type](s.left,o),o.write(" "+s.operator+" "),this[s.right.type](s.right,o)},AssignmentPattern(s,o){this[s.left.type](s.left,o),o.write(" = "),this[s.right.type](s.right,o)},BinaryExpression:Kft=t(function(s,o){let f=s.operator==="in";f&&o.write("("),Fle(o,s.left,s,!1),o.write(" "+s.operator+" "),Fle(o,s.right,s,!0),f&&o.write(")")},"BinaryExpression"),LogicalExpression:Kft,ConditionalExpression(s,o){let{test:f}=s,d=o.expressionsPrecedence[f.type];d===LE||d<=o.expressionsPrecedence.ConditionalExpression?(o.write("("),this[f.type](f,o),o.write(")")):this[f.type](f,o),o.write(" ? "),this[s.consequent.type](s.consequent,o),o.write(" : "),this[s.alternate.type](s.alternate,o)},NewExpression(s,o){o.write("new ");let f=o.expressionsPrecedence[s.callee.type];f===LE||f<o.expressionsPrecedence.CallExpression||Xpr(s.callee)?(o.write("("),this[s.callee.type](s.callee,o),o.write(")")):this[s.callee.type](s.callee,o),LM(o,s.arguments)},CallExpression(s,o){let f=o.expressionsPrecedence[s.callee.type];f===LE||f<o.expressionsPrecedence.CallExpression?(o.write("("),this[s.callee.type](s.callee,o),o.write(")")):this[s.callee.type](s.callee,o),s.optional&&o.write("?."),LM(o,s.arguments)},ChainExpression(s,o){this[s.expression.type](s.expression,o)},MemberExpression(s,o){let f=o.expressionsPrecedence[s.object.type];f===LE||f<o.expressionsPrecedence.MemberExpression?(o.write("("),this[s.object.type](s.object,o),o.write(")")):this[s.object.type](s.object,o),s.computed?(s.optional&&o.write("?."),o.write("["),this[s.property.type](s.property,o),o.write("]")):(s.optional?o.write("?."):o.write("."),this[s.property.type](s.property,o))},MetaProperty(s,o){o.write(s.meta.name+"."+s.property.name,s)},Identifier(s,o){o.write(s.name,s)},PrivateIdentifier(s,o){o.write(`#${s.name}`,s)},Literal(s,o){s.raw!=null?o.write(s.raw,s):s.regex!=null?this.RegExpLiteral(s,o):s.bigint!=null?o.write(s.bigint+"n",s):o.write(Gpr(s.value),s)},RegExpLiteral(s,o){let{regex:f}=s;o.write(`/${f.pattern}/${f.flags}`,s)}},Qpr={};var E4e=class{static{t(this,"State")}constructor(o){let f=o??Qpr;this.output="",f.output!=null?(this.output=f.output,this.write=this.writeToStream):this.output="",this.generator=f.generator!=null?f.generator:Zpr,this.expressionsPrecedence=f.expressionsPrecedence!=null?f.expressionsPrecedence:Ypr,this.indent=f.indent!=null?f.indent:" ",this.lineEnd=f.lineEnd!=null?f.lineEnd:`
602
602
  `,this.indentLevel=f.startingIndentLevel!=null?f.startingIndentLevel:0,this.writeComments=f.comments?f.comments:!1,f.sourceMap!=null&&(this.write=f.output==null?this.writeAndMap:this.writeToStreamAndMap,this.sourceMap=f.sourceMap,this.line=1,this.column=0,this.lineEndSize=this.lineEnd.split(`
603
603
  `).length-1,this.mapping={original:null,generated:this,name:void 0,source:f.sourceMap.file||f.sourceMap._file})}write(o){this.output+=o}writeToStream(o){this.output.write(o)}writeAndMap(o,f){this.output+=o,this.map(o,f)}writeToStreamAndMap(o,f){this.output.write(o),this.map(o,f)}map(o,f){if(f!=null){let{type:E}=f;if(E[0]==="L"&&E[2]==="n"){this.column=0,this.line++;return}if(f.loc!=null){let{mapping:P}=this;P.original=f.loc.start,P.name=f.name,this.sourceMap.addMapping(P)}if(E[0]==="T"&&E[8]==="E"||E[0]==="L"&&E[1]==="i"&&typeof f.value=="string"){let{length:P}=o,{column:F,line:J}=this;for(let V=0;V<P;V++)o[V]===`
604
- `?(F=0,J++):F++;this.column=F,this.line=J;return}}let{length:d}=o,{lineEnd:y}=this;d>0&&(this.lineEndSize>0&&(y.length===1?o[d-1]===y:o.endsWith(y))?(this.line+=this.lineEndSize,this.column=0):this.column+=d)}toString(){return this.output}};function e_t(s,o){let f=new E4e(o);return f.generator[s.type](s,f),f.output}t(e_t,"generate");async function C4e({oasFiles:s,sourceDirectory:o,logger:f}){let d=await rdr({oasFiles:s,sourceDirectory:o,logger:f});return e_t(d)}t(C4e,"generateRawRouteSource");async function rdr({oasFiles:s,sourceDirectory:o,logger:f}){let d=new bI(o,f),y=[];for(let P of s){let F=tdr.basename(P,".oas.json"),J=await d.resolve(P),V=[],Te=new Map,de=await edr.readFile(P,"utf-8"),ae=JSON.parse(de);for(let Ye in ae.paths){let Ue=ae.paths[Ye],je=Ue.parameters||[],Kt={};Ue.summary&&(Kt.pathSummary=Ue.summary),Ue.description&&(Kt.pathDescription=Ue.description),Ue.servers&&(Kt.pathServers=Ue.servers);for(let Ut in Ue){if(!ile(Ut))continue;let kr=Ue[Ut],An=[...je,...kr.parameters||[]],nn={...kr,...An.length>0&&{parameters:An},...Kt,...kr.description&&{description:kr.description.length>350?`${kr.description.substring(0,350).trim()}...`:kr.description}},Pn=AV(F,Ye,Ut),wr=Lle(P,F,nn,J,V,Te);y.unshift(r_t(Pn,wr))}}y.unshift(...ndr(F,J,V,Te).reverse())}return{type:"Program",body:y,sourceType:"module"}}t(rdr,"generateAst");function Lle(s,o,f,d,y,E){let P=[];for(let F in f){let J=f[F];if(F==="$ref")return wV(s,o,KN(s,J),d,y,E),{type:"Identifier",name:n_t(o,E.get(KN(s,J)))};let V;switch(typeof J){case"string":case"number":case"boolean":V={type:"Literal",value:J};break;default:Array.isArray(J)?V=t_t(J,s,o,d,y,E):typeof J=="object"&&J!==null&&(V=Lle(s,o,J,d,y,E));break}if(V){let Te=/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(F),de=Te?{type:"Identifier",name:F}:{type:"Literal",value:F};P.push({type:"Property",key:de,value:V,kind:"init",method:!1,shorthand:!1,computed:!Te})}}return{type:"ObjectExpression",properties:P}}t(Lle,"processNode");function t_t(s,o,f,d,y,E){return{type:"ArrayExpression",elements:s.map(P=>{if(Array.isArray(P))return t_t(P,o,f,d,y,E);if(typeof P=="object"&&P!==null){let F=Lle(o,f,P,d,y,E);return F.type==="Identifier"?F:{type:"ObjectExpression",properties:F.properties||[]}}else return{type:"Literal",value:P}})}}t(t_t,"processArray");function r_t(s,o){return{type:"ExportNamedDeclaration",declaration:{type:"VariableDeclaration",declarations:[{type:"VariableDeclarator",id:{type:"Identifier",name:s},init:o}],kind:"var"},specifiers:[],source:null}}t(r_t,"createExportedConstAssignment");function ndr(s,o,f,d){let y=[];for(let E=0;E<f.length;E++){let P=n_t(s,E),F=o.get(f[E]),J=Lle(Noe(f[E]),s,F,o,f,d);y.push(r_t(P,J))}return y}t(ndr,"generateRefs");function n_t(s,o){return`${JP(s)}__ref__${o}`}t(n_t,"getRefIdentifierName");import i_t from"node:path";var s_t=t(s=>{let o=null;if(s.value.type==="Object"&&s.value.members.length>0)for(let f of s.value.members){let d=s_t(f);if(d!==null&&(o=d),f.name.value==="enum"&&f.value.type==="Array"&&f.value.elements.length===0){let y=f.value,E=y.loc.start.line,P=y.loc.start.column,F=y.loc.end.column;o={line:E,column:P,length:F-P,lineText:""}}}return o},"findEmptyEnums"),idr=t(s=>{if(s.startsWith("schema with key or id")&&s.endsWith("already exists"))return"Update your schema's '$id' to be unique across your project.";if(s.includes("All JSON schemas must use version 2020-12"))return"All JSON schemas must use version 2020-12. See release notes for changes: https://json-schema.org/draft/2020-12/release-notes.html";if(s==='"nullable" cannot be used without "type"')return'Property "nullable" can only be used when property "type" value is "object".';if(s==='NOT SUPPORTED: keyword "id", use "$id" for schema ID')return'Replace keyword "id" with "$id" when defining a schema Id.';if(s.startsWith("can't resolve reference http"))return"Cannot resolve remote references, try adding them directly to the schema file or as a schema file in the project.";if(s.startsWith("can't resolve reference"))return"Make sure all references are defined in the schema.";if(s.includes("oneOf must NOT have fewer than 1 items"))return'Property "oneOf" must have at least 1 item configured.';if(s.includes("enum must have non-empty array"))return'Property "enum" must be configured with at least one value.';if(s.includes("Unexpected")&&s.includes("in JSON at position"))return"Update your schema to only use valid properties."},"getSuggestions"),k4e=t(async(s,o,f)=>{if(!s)return null;let d={file:i_t.join(qPe,s),suggestion:idr(f)},y=i_t.join(o,qPe),E=tu.safePath(o).resolve(y,s),P=await Poe(E);if(f.includes("enum must have non-empty array")){if(P){let F=await kV(P);if(F&&F.body.members!==null)for(let J of F.body.members){let V=s_t(J);V&&V!==null&&(d=Object.assign(d??{},V))}if(d){let J=d.line?d.line:0;d.lineText=CV(P,J)}}}else if(f.includes("Unexpected")&&f.includes("in JSON at position")&&P){let F=await kV(P);F&&"lineText"in F&&(d=Object.assign(d??{},F))}return d},"getLocation");import*as K_t from"esbuild";import q4e,{dirname as H_t}from"node:path";import{fileURLToPath as G_t}from"node:url";var w4e=class{static{t(this,"Environment")}get DEV_SERVER_PORT(){return process.env.DEV_SERVER_PORT?parseInt(process.env.DEV_SERVER_PORT,10):3e3}get DEBUG_BUILD_MODE(){return!!process.env.DEBUG_BUILD_MODE}get USE_MONOREPO_PACKAGES(){return process.env.USE_MONOREPO_PACKAGES==="true"}get EXPERIMENTAL_CODEGEN(){return!!process.env.EXPERIMENTAL_CODEGEN}get NODE_ENV(){return process.env.NODE_ENV}isProduction(){return this.NODE_ENV==="production"}isLocalDevelopment(){return process.env.ZUPLO_IS_LOCAL_DEVELOPMENT==="true"}},sdr=new w4e,km=sdr;var D4e="no-remote-module";function a_t({logger:s}){return{name:D4e,async setup(o){o.onResolve({filter:/^https?:\/\//},f=>(s.error(f,"User attempted to load a remote module"),{errors:[{text:`Remote modules are not supported. Attempted to load module ${f.path}`,detail:"InvalidRemoteModule",pluginName:D4e,location:{line:0,column:0,file:""}}],pluginName:D4e}))}}}t(a_t,"blockRemoteModulePlugin");import o_t from"node:path";var c_t="legacy-environment",l_t="legacy-environment",adr=`import { environment } from "@zuplo/runtime";
604
+ `?(F=0,J++):F++;this.column=F,this.line=J;return}}let{length:d}=o,{lineEnd:y}=this;d>0&&(this.lineEndSize>0&&(y.length===1?o[d-1]===y:o.endsWith(y))?(this.line+=this.lineEndSize,this.column=0):this.column+=d)}toString(){return this.output}};function e_t(s,o){let f=new E4e(o);return f.generator[s.type](s,f),f.output}t(e_t,"generate");async function C4e({oasFiles:s,sourceDirectory:o,logger:f}){let d=await rdr({oasFiles:s,sourceDirectory:o,logger:f});return e_t(d)}t(C4e,"generateRawRouteSource");async function rdr({oasFiles:s,sourceDirectory:o,logger:f}){let d=new bI(o,f),y=[];for(let P of s){let F=tdr.basename(P,".oas.json"),J=await d.resolve(P),V=[],Te=new Map,de=await edr.readFile(P,"utf-8"),ae=JSON.parse(de);for(let Ye in ae.paths){let Ue=ae.paths[Ye],je=Ue.parameters||[],Kt={};Ue.summary&&(Kt.pathSummary=Ue.summary),Ue.description&&(Kt.pathDescription=Ue.description),Ue.servers&&(Kt.pathServers=Ue.servers);for(let Ut in Ue){if(!ile(Ut))continue;let kr=Ue[Ut],An=[...je,...kr.parameters||[]],nn={...kr,...An.length>0&&{parameters:An},...Kt,...kr.description&&{description:kr.description.length>350?`${kr.description.substring(0,350).trim()}...`:kr.description}},Pn=AV(F,Ye,Ut),wr=Lle(P,F,nn,J,V,Te);y.unshift(r_t(Pn,wr))}}y.unshift(...ndr(F,J,V,Te).reverse())}return{type:"Program",body:y,sourceType:"module"}}t(rdr,"generateAst");function Lle(s,o,f,d,y,E){let P=[];for(let F in f){let J=f[F];if(F==="$ref")return wV(s,o,KN(s,J),d,y,E),{type:"Identifier",name:n_t(o,E.get(KN(s,J)))};let V;switch(typeof J){case"string":case"number":case"boolean":V={type:"Literal",value:J};break;default:Array.isArray(J)?V=t_t(J,s,o,d,y,E):typeof J=="object"&&J!==null&&(V=Lle(s,o,J,d,y,E));break}if(V){let Te=/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(F),de=Te?{type:"Identifier",name:F}:{type:"Literal",value:F};P.push({type:"Property",key:de,value:V,kind:"init",method:!1,shorthand:!1,computed:!Te})}}return{type:"ObjectExpression",properties:P}}t(Lle,"processNode");function t_t(s,o,f,d,y,E){return{type:"ArrayExpression",elements:s.map(P=>{if(Array.isArray(P))return t_t(P,o,f,d,y,E);if(typeof P=="object"&&P!==null){let F=Lle(o,f,P,d,y,E);return F.type==="Identifier"?F:{type:"ObjectExpression",properties:F.properties||[]}}else return{type:"Literal",value:P}})}}t(t_t,"processArray");function r_t(s,o){return{type:"ExportNamedDeclaration",declaration:{type:"VariableDeclaration",declarations:[{type:"VariableDeclarator",id:{type:"Identifier",name:s},init:o}],kind:"var"},specifiers:[],source:null,attributes:[]}}t(r_t,"createExportedConstAssignment");function ndr(s,o,f,d){let y=[];for(let E=0;E<f.length;E++){let P=n_t(s,E),F=o.get(f[E]),J=Lle(Noe(f[E]),s,F,o,f,d);y.push(r_t(P,J))}return y}t(ndr,"generateRefs");function n_t(s,o){return`${JP(s)}__ref__${o}`}t(n_t,"getRefIdentifierName");import i_t from"node:path";var s_t=t(s=>{let o=null;if(s.value.type==="Object"&&s.value.members.length>0)for(let f of s.value.members){let d=s_t(f);if(d!==null&&(o=d),f.name.value==="enum"&&f.value.type==="Array"&&f.value.elements.length===0){let y=f.value,E=y.loc.start.line,P=y.loc.start.column,F=y.loc.end.column;o={line:E,column:P,length:F-P,lineText:""}}}return o},"findEmptyEnums"),idr=t(s=>{if(s.startsWith("schema with key or id")&&s.endsWith("already exists"))return"Update your schema's '$id' to be unique across your project.";if(s.includes("All JSON schemas must use version 2020-12"))return"All JSON schemas must use version 2020-12. See release notes for changes: https://json-schema.org/draft/2020-12/release-notes.html";if(s==='"nullable" cannot be used without "type"')return'Property "nullable" can only be used when property "type" value is "object".';if(s==='NOT SUPPORTED: keyword "id", use "$id" for schema ID')return'Replace keyword "id" with "$id" when defining a schema Id.';if(s.startsWith("can't resolve reference http"))return"Cannot resolve remote references, try adding them directly to the schema file or as a schema file in the project.";if(s.startsWith("can't resolve reference"))return"Make sure all references are defined in the schema.";if(s.includes("oneOf must NOT have fewer than 1 items"))return'Property "oneOf" must have at least 1 item configured.';if(s.includes("enum must have non-empty array"))return'Property "enum" must be configured with at least one value.';if(s.includes("Unexpected")&&s.includes("in JSON at position"))return"Update your schema to only use valid properties."},"getSuggestions"),k4e=t(async(s,o,f)=>{if(!s)return null;let d={file:i_t.join(qPe,s),suggestion:idr(f)},y=i_t.join(o,qPe),E=tu.safePath(o).resolve(y,s),P=await Poe(E);if(f.includes("enum must have non-empty array")){if(P){let F=await kV(P);if(F&&F.body.members!==null)for(let J of F.body.members){let V=s_t(J);V&&V!==null&&(d=Object.assign(d??{},V))}if(d){let J=d.line?d.line:0;d.lineText=CV(P,J)}}}else if(f.includes("Unexpected")&&f.includes("in JSON at position")&&P){let F=await kV(P);F&&"lineText"in F&&(d=Object.assign(d??{},F))}return d},"getLocation");import*as K_t from"esbuild";import q4e,{dirname as H_t}from"node:path";import{fileURLToPath as G_t}from"node:url";var w4e=class{static{t(this,"Environment")}get DEV_SERVER_PORT(){return process.env.DEV_SERVER_PORT?parseInt(process.env.DEV_SERVER_PORT,10):3e3}get DEBUG_BUILD_MODE(){return!!process.env.DEBUG_BUILD_MODE}get USE_MONOREPO_PACKAGES(){return process.env.USE_MONOREPO_PACKAGES==="true"}get EXPERIMENTAL_CODEGEN(){return!!process.env.EXPERIMENTAL_CODEGEN}get NODE_ENV(){return process.env.NODE_ENV}isProduction(){return this.NODE_ENV==="production"}isLocalDevelopment(){return process.env.ZUPLO_IS_LOCAL_DEVELOPMENT==="true"}},sdr=new w4e,km=sdr;var D4e="no-remote-module";function a_t({logger:s}){return{name:D4e,async setup(o){o.onResolve({filter:/^https?:\/\//},f=>(s.error(f,"User attempted to load a remote module"),{errors:[{text:`Remote modules are not supported. Attempted to load module ${f.path}`,detail:"InvalidRemoteModule",pluginName:D4e,location:{line:0,column:0,file:""}}],pluginName:D4e}))}}}t(a_t,"blockRemoteModulePlugin");import o_t from"node:path";var c_t="legacy-environment",l_t="legacy-environment",adr=`import { environment } from "@zuplo/runtime";
605
605
  export default environment;`;function u_t(s){return{name:"environment",setup(o){o.onResolve({filter:/@app\/environment$/},()=>({namespace:l_t,pluginName:c_t,path:o_t.join(s.sourceDirectory,Ng,"environment.js")})),o.onLoad({filter:/.*/,namespace:l_t},async f=>({contents:adr,loader:"ts",resolveDir:o_t.dirname(f.path),pluginName:c_t}))}}}t(u_t,"environmentPlugin");import Ddr from"node:fs/promises";import ST from"node:path";var C_t=ep(EH(),1),k_t=ep(Gce(),1),w_t=ep(P4e(),1),D_t=ep(M4e(),1);import{performance as jE}from"node:perf_hooks";var GH=[];async function Cdr(s,o){let f=jE.now();try{return await o()}finally{let d=jE.now()-f;GH.push({name:s,duration:d})}}t(Cdr,"timeFn");var kdr={mark:t(s=>{jE.mark(s)},"mark"),measure:t((s,o,f)=>{try{jE.measure(s,o,f)}finally{jE.clearMarks(o),jE.clearMarks(f),jE.clearMeasures(s)}},"measure"),timeFn:Cdr,report:t(()=>{if(GH.length>0){let s=GH.reduce((o,{name:f,duration:d})=>(o[f]=`${d.toFixed(0)}ms`,o),{});console.table(s),GH.length=0}},"report"),getDuration:t(s=>{let o=jE.getEntriesByName(s);if(o.length===0)return 0;let f=o[0].duration;return jE.clearMeasures(s),f},"getDuration"),clear:t(()=>{GH.length=0,jE.clearMarks(),jE.clearMeasures()},"clear")},Ou=kdr;import{writeFile as wdr}from"node:fs/promises";async function Vk(s,o){await tu.mkdirForFilePathIfNotExits(s);let f=await import("prettier"),d=o;try{d=await f.format(o,{parser:"babel"})}catch{}await wdr(s,d,"utf-8")}t(Vk,"writeDebugSourceFile");var Hk="schemas",Mle="json-schema";function P_t(s){return{name:Hk,async setup(o){let f=new k_t.Ajv2020({code:{source:!0},allErrors:!0,strict:!1,verbose:!0,meta:!0}),d=ST.join(s.sourceDirectory,cV),y=[],E=[],P;await Ou.timeFn("Initializing schema validation",async()=>{if((0,D_t.default)(f,{mode:"fast"}),f.opts.code.formats=C_t._`require("ajv-formats/dist/formats").fastFormats`,await tu.dirExists(d)&&(f.addKeyword("faker"),P=(await tu.listFolderContents(d,cV)).sort(),await Promise.all(P.map(async F=>{try{let J=tu.safePath(s.sourceDirectory).resolve(d,F);if(!J.startsWith(d))throw new Error("All schemas must be in the schemas directory");let V=await Ddr.readFile(J,"utf-8");if(V===""||V===void 0)throw new Error(`Schema 'schemas/${F}' is empty and will be ignored.`);let Te=JSON.parse(V);if(Te.$schema&&Te.$schema!=="https://json-schema.org/draft/2020-12/schema")throw new Error(`Error in ${F}: All JSON schemas must use version 2020-12. See release notes for changes: https://json-schema.org/draft/2020-12/release-notes.html`);if(f.addSchema(Te,F),f.errors?.length){let de=f.errors[0];y.push({id:"json-schema-validation-error",pluginName:Hk,text:`Error: ${de.message}`,location:{file:ST.join(cV,F)},detail:{params:de.params,propertyName:de.propertyName,schemaPath:de.schemaPath,data:de.data}})}}catch(J){if(J.message.endsWith("is empty and will be ignored.")){E.push({id:"empty-json-schema-file",pluginName:Hk,text:`Schema 'schemas/${F}' is empty and will be ignored.`,location:{file:`schemas/${F}`,suggestion:"Add schema details or remove the file from the project."},detail:"EmptyJSONSchemaFile",notes:[{text:`Schema 'schemas/${F}' is empty and will be ignored.`,location:{file:`schemas/${F}`,suggestion:"Add schema details or remove the file from the project."}}]});return}let V=await k4e(F,s.sourceDirectory,J.message);y.push({id:"json-schema-add-error",pluginName:Hk,text:`Error: ${J.message}`,location:V,detail:"InvalidAddSchemaError",notes:[{text:J.message}]})}})),await Promise.all(P.map(async F=>{try{let J=f.getSchema(F);J&&f.compile(J.schema).errors?.forEach(Te=>{y.push({text:`Failed to compile ${F}: ${Te.message}`})})}catch(J){let V=await k4e(F,s.sourceDirectory,J.message);y.push({id:"json-schema-compile-error",pluginName:Hk,text:`The schema file '${F}' is not valid. Error: ${J.message}`,location:V,detail:"InvalidSchemaError",notes:[{text:J.message}]})}})),km.DEBUG_BUILD_MODE)){let F=ST.resolve(s.outputDirectory,cV);await tu.mkdirIfNotExists(F)}}),o.onStart(async()=>{if(P)return{errors:y,warnings:E}}),o.onResolve({filter:/schemas\/.*\.json$/},async F=>Ou.timeFn("Generating JSON schemas...",async()=>{let J=ST.isAbsolute(F.path)?F.path:ST.join(F.resolveDir,F.path);if(F.importer&&F.namespace!=="open-api-routes-json")return{path:J};if(!await tu.fileExists(J)){let V="policies.json";return{errors:[{id:"json-schema-build-error",text:`Unable to resolve reference to '${F.path}' from ${V}`,location:{file:ST.join(F.resolveDir,V),namespace:Mle,line:1,column:0,length:0,lineText:`Invalid JSON schema reference in ${V}`,suggestion:""},detail:"RouteReferenceError",pluginName:Hk,notes:[{text:`Unable to resolve reference to '${F.path}' from ${V}`,location:null}]}],namespace:Mle,path:J,pluginName:Hk}}return{path:J,namespace:Mle,pluginName:Hk}})),o.onLoad({filter:/.*/,namespace:Mle},async F=>Ou.timeFn(`Generating json schema data: ${ST.basename(F.path)}`,async()=>{let J=[],V;try{let Te=ST.relative(d,F.path),de=f.getSchema(Te);if(!de)throw new Error(`Could not load schema at ${F.path}`);V=de.source?.validateCode;let ae=f.compile(de.schema);V=(0,w_t.default)(f,ae)}catch(Te){J.push({pluginName:Hk,text:`Cannot parse project's schemas/${ST.basename(F.path)} file. Error: ${Te.message}`,location:null,notes:[{text:Te.message,location:null}],detail:Te})}if(km.DEBUG_BUILD_MODE&&V){let Te=ST.relative(d,F.path),de=ST.join(s.sourceDirectory,Ng,`${Te}.js`);await Vk(de,V)}return{contents:V,errors:J,pluginName:Hk,resolveDir:ST.dirname(F.path),watchFiles:[F.path]}}))}}}t(P_t,"jsonSchemaPlugin");import{relative as Pdr}from"node:path";var A_t=["node:assert","node:async_hooks","node:buffer","node:crypto","node:diagnostics_channel","node:events","node:path","node:process","node:stream","node:string_decoder","node:util"],Adr="nodejs-compat-plugin";function N_t({sourceDirectory:s}){return{name:Adr,setup(o){let f=new Set;o.onStart(()=>{f.clear()}),o.onResolve({filter:/node:.*/},async({path:d,kind:y,resolveDir:E,...P})=>{let F=`${d}:${y}:${E}:${P.importer}`;if(f.has(F))return;f.add(F);let J=await o.resolve(d,{kind:y,resolveDir:E,importer:P.importer});return J.errors.length>0?A_t.includes(d)||d.includes("/")&&A_t.includes(d.split("/")[0])?{external:!0}:{external:!0,warnings:J.errors.map(Te=>({...Te,location:{file:Pdr(s,P.importer),line:0,column:0,namespace:"",length:0,lineText:"",suggestion:"Remove the imported node module"},detail:`The package "${d}" wasn't found on the file system but is built into node. If this code is executed it will fail.`}))}:J})}}}t(N_t,"nodejsCompatPlugin");import I_t from"node:fs/promises";import BE from"node:path";var TI="open-api-routes-plugin",YH="open-api-routes-json";function O_t(s){return{name:"open-api-routes-plugin",setup(o){o.onResolve({filter:/zuplo:routes$/},f=>({watchFiles:[...j4e(BE.join(s.sourceDirectory,xy),[".oas.json"],!0),BE.join(s.sourceDirectory,xy,noe)],namespace:YH,path:BE.isAbsolute(f.path)?f.path:BE.join(f.resolveDir,f.path),pluginName:TI})),o.onResolve({filter:/^\.\.\/modules\/.*/,namespace:YH},async f=>Ou.timeFn("Generating route data...",async()=>{async function d(){let E=BE.resolve(s.sourceDirectory,"config"),P=await hO(E),F=`$import(.${f.path.replace(/^../,"")})`;return{location:await Gnt(P,F,"Update your route configuration to use code from the 'modules' folder"),originalImportValue:F}}t(d,"getLocation");let y=BE.join(f.resolveDir,`${f.path}.ts`);if(f.path.endsWith(".ts")){let{location:E,originalImportValue:P}=await d();return{errors:[{id:"route-build-error",text:`Invalid handler reference '${P}' in ${E?.file??"OpenAPI file"}. Imports must NOT include the '.ts' file extension.`,location:E,detail:"RouteReferenceError",pluginName:TI}],namespace:YH,path:f.path,pluginName:TI}}else if(!await tu.fileExists(y)){let{location:E,originalImportValue:P}=await d();return{errors:[{id:"route-build-error",text:`Invalid handler reference in route. Unable to resolve reference to '${P}' in ${E?.file??"OpenAPI file"}`,location:E,detail:"RouteReferenceError",pluginName:TI}],namespace:YH,path:f.path,pluginName:TI}}})),o.onLoad({filter:/.*/,namespace:YH},async f=>Ou.timeFn("Generating route.json data",async()=>{let d=BE.resolve(s.sourceDirectory,"config"),y=await hO(d),E=await Promise.all(y.map(async V=>({content:await I_t.readFile(V,"utf-8"),fileName:V}))),P=BE.resolve(d,"policies.json");if(!await tu.fileExists(P))return{errors:[{text:"The project must include a policies file ('/config/policies.json')",detail:"OASPoliciesFileMissing",pluginName:TI,location:{line:0,column:0,file:"/config/policies.json"}}],pluginName:TI};let F={content:await I_t.readFile(P,"utf-8"),fileName:P},J;try{J=await aIe({sourceDirectory:s.sourceDirectory,oasContent:E,policiesContent:F,compatibilityDate:s.config.compatibilityDate,allowDuplicateRoutes:s.config.allowDuplicateRoutes})}catch(V){throw new Error(`Error compiling routes: ${V.message}`)}if(km.DEBUG_BUILD_MODE&&J.content){let V=BE.join(s.sourceDirectory,Ng),Te=BE.resolve(V,"routes.js");await Vk(Te,J.content)}return{contents:J.content,errors:J.errors,pluginName:TI,resolveDir:BE.dirname(f.path),watchFiles:[f.path]}}))}}}t(O_t,"openApiRoutesPlugin");import jle from"node:path";var KH="raw-route-plugin",F_t="raw-route";function L_t(s){return{name:"raw-route-plugin",setup(o){o.onResolve({filter:/zuplo:raw-routes$/},f=>({namespace:F_t,path:f.path,pluginName:KH})),o.onLoad({filter:/.*/,namespace:F_t},async f=>Ou.timeFn("Building route data",async()=>{let d=jle.resolve(s.sourceDirectory,xy);if(!await tu.dirExists(d))return{loader:"js",resolveDir:jle.dirname(f.path),pluginName:KH};let y=await hO(d);try{let E=await C4e({oasFiles:y,sourceDirectory:s.sourceDirectory,logger:s.logger});if(km.DEBUG_BUILD_MODE&&E){let P=jle.join(s.sourceDirectory,Ng,"raw-routes.js");await Vk(P,E)}return{contents:E,loader:"js",resolveDir:jle.dirname(f.path),pluginName:KH}}catch(E){if(E instanceof k1)return{contents:"",loader:"ts",errors:[{id:"route-build-error",text:E.issue.text,location:E.issue.location,detail:E.issue.detail,pluginName:KH}],pluginName:KH};throw E}}))}}}t(L_t,"rawRoutePlugin");import Ndr from"node:fs/promises";import R_t from"node:path";var Ble="runtime-extensions-plugin",M_t="runtime-extensions";function j_t(s){return{name:Ble,setup(o){o.onResolve({filter:/zuplo:runtime-extension$/},f=>({namespace:M_t,path:f.path,pluginName:Ble})),o.onLoad({filter:/.*/,namespace:M_t},async()=>Ou.timeFn("Generating zuplo.runtime.ts data",async()=>{let f="export const runtimeInit = undefined;",d=R_t.resolve(s.sourceDirectory,srt,"zuplo.runtime.ts"),y=[];return await tu.fileExists(d)?(f=await Ndr.readFile(d,"utf-8"),{contents:f,loader:"ts",resolveDir:R_t.dirname(d),errors:y,pluginName:Ble,watchFiles:[d]}):{contents:f,loader:"ts",errors:y,pluginName:Ble}}))}}}t(j_t,"runtimeExtensionsPlugin");import B_t from"node:path";import{readFile as Idr}from"node:fs/promises";import xI from"node:path";var jM=class extends Error{static{t(this,"DevPortalConfigError")}filename;constructor(o,f){super(o,f),this.name="DevPortalConfigError",this.filename=f?.filename}};async function B4e(s){let o=["zudoku.config.tsx","zudoku.config.ts","zudoku.config.js","zudoku.config.jsx","zudoku.config.mjs"];for(;o.length;){let P=o.pop();if(P){let F=xI.join("docs",P),J=xI.join(s,F);try{if(await tu.fileExists(J))return{enabled:!0,type:"zudoku",basePath:void 0,filepath:F}}catch(V){throw new jM("Failed to read dev portal configuration file.",{cause:V,filename:F})}}}let f=xI.join(xy,ort),d=xI.join(s,f),y=!0,E;if(await tu.fileExists(d)){try{let P=await Idr(d,"utf-8"),F=JSON.parse(P);F.enabled===!1&&(y=!1),E=F.sitePathname}catch(P){throw new jM("Failed to parse dev-portal.json file.",{cause:P,filename:f})}return{enabled:y,type:"legacy",basePath:E,filepath:f}}return{enabled:!1,type:void 0,basePath:void 0,filepath:void 0}}t(B4e,"getDevPortalConfig");function BM(s,o){let f=xI.resolve(s,uO);return Object.keys(o?.outputs??{}).map(E=>{let P=xI.normalize(E);return`./${xI.relative(f,P).split(xI.sep).join("/")}`})}t(BM,"getBuildModules");var U_t="/docs",Odr="/__zuplo/dev-portal";function Fdr(s){let o=s.trim().toLowerCase();return o.endsWith("/")&&(o=o.slice(0,-1)),o}t(Fdr,"normalizePathname");function Ldr(s,o){let d={developerPortal:{basePath:s?.basePath===Odr?U_t:s?.basePath?Fdr(s.basePath):U_t,enabled:s?s.enabled??!0:!1,type:s?.type??void 0,urls:s?.urls?{defaultUrl:s.urls.defaultUrl,urls:s.urls.urls.map(E=>new URL(E).origin)}:void 0},api:o};return`const runtimeSettings = ${JSON.stringify(d)};
606
606
  export default runtimeSettings;`}t(Ldr,"generateSource");var XH="runtime-settings-plugin",Ule="runtime-settings";function z_t(s){return{name:XH,setup(o){o.onResolve({filter:/zuplo:runtime-settings$/},f=>({namespace:Ule,path:f.path,pluginName:XH})),o.onLoad({filter:/.*/,namespace:Ule},async()=>Ou.timeFn("Generating runtime settings",async()=>{let f=[],d,y;try{let F=await B4e(s.sourceDirectory);y=F.filepath,d={...F,urls:s.urls?.devPortal}}catch(F){let J="Failed to load dev portal config",V="config/dev-portal.json";F instanceof jM&&(J=F.message,V=F.filename??V),f.push({id:"dev-portal-build-error",text:J,location:{file:V,namespace:Ule,line:1,column:0,length:0,lineText:"",suggestion:""},detail:"DevPortalValidationError",pluginName:XH,notes:[{text:F.message,location:null}]})}let E={urls:s.urls?.api},P;try{if(P=Ldr(d,E),km.DEBUG_BUILD_MODE&&P){let F=B_t.join(s.sourceDirectory,Ng,"dev-portal.js");await Vk(F,P)}}catch(F){f.push({id:"dev-portal-build-error",text:F.message,location:{file:"dev-portal.json",namespace:Ule,line:1,column:0,length:0,lineText:"issue",suggestion:""},detail:"DevPortalValidationError",pluginName:XH,notes:[{text:F.message,location:null}]})}return{contents:P,errors:f,pluginName:XH,loader:"js",resolveDir:y?B_t.dirname(y):void 0}}))}}}t(z_t,"runtimeSettingsPlugin");import W4e from"node:fs/promises";import $O from"node:path";var J_t=ep(EH(),1),z4e=ep(Gce(),1),$4e=ep(P4e(),1),W_t=ep(M4e(),1);var U4e="schema-validation-plugin",$_t="schema-validation",Rdr="module.exports = {}";function q_t(s){return{name:"schema-validation-plugin",setup(o){o.onResolve({filter:/zuplo:schema-validations$/},f=>({namespace:$_t,path:f.path,pluginName:U4e})),o.onLoad({filter:/.*/,namespace:$_t},async()=>Ou.timeFn("Validating schemas",async()=>{let f=$O.resolve(s.sourceDirectory,xy,"policies.json");if(!await tu.fileExists(f))return{contents:Rdr,loader:"js",resolveDir:$O.dirname(f),pluginName:U4e};let d=await jdr(s.sourceDirectory),y=$O.resolve(s.sourceDirectory,xy),E=await hO(y),P=await $dr(E,d),F=await Mdr({oasFiles:E,routesWithSchemaValidation:P,sourceDirectory:s.sourceDirectory,logger:s.logger});if(km.DEBUG_BUILD_MODE&&F){let J=$O.join(s.sourceDirectory,Ng,"schema-validation.js");await Vk(J,F)}return{contents:F,loader:"js",resolveDir:$O.dirname(f),pluginName:U4e}}))}}}t(q_t,"schemaValidationPlugin");async function Mdr({oasFiles:s,routesWithSchemaValidation:o,sourceDirectory:f,logger:d}){let y="",E=new bI(f,d);if(o.length===0)return y;let P={code:{source:!0},allErrors:!0,strict:!1,verbose:!0,meta:!0},F=new z4e.Ajv2020(P),J=new z4e.Ajv2020({...P,coerceTypes:"array"});(0,W_t.default)(J,{mode:"fast"}),J.opts.code.formats=J_t._`require("ajv-formats/dist/formats").fastFormats`;for(let V of s){let Te=await W4e.readFile(V,"utf-8"),de=$O.basename(V,".oas.json"),ae=o.filter(Ut=>Ut.fileName===de),Ye=await E.resolve(V),Ue=JSON.parse(Te),je=[],Kt=new Map;ae.forEach(Ut=>{let kr=Ue.paths[Ut.path][Ut.method];if(kr.requestBody){let An;if(kr.requestBody.$ref){let nn=kr.requestBody.$ref;An=Ye.get(nn)?.content}else kr.requestBody.content&&(An=kr.requestBody.content);if(An)for(let nn in An){let Pn=An[nn].schema,wr=eAe(Ut.path,Ut.method,nn);Pn.$id=wr,F.addSchema(Pn),J4e(Pn,V,de,F,Ye,je,Kt)}}if(kr.parameters)for(let An of kr.parameters){let nn=An.$ref?Ye.get(An.$ref):An,Pn=nn.schema.$ref?Ye.get(nn.schema.$ref):nn.schema,wr=QPe(Ut.path,Ut.method,nn.in,nn.name);Pn.$id=wr,J.addSchema(Pn),J4e(nn,V,de,J,Ye,je,Kt)}});for(let Ut of je){let kr=Ye.get(Ut),An=NV(de,Ut);F.addSchema(kr,An),J.addSchema(kr,An)}}return y=`"use strict";
607
607
  const __paramExports = (function () {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zuplo/core",
3
- "version": "6.70.21",
3
+ "version": "6.70.23",
4
4
  "repository": "https://github.com/zuplo/zuplo",
5
5
  "author": "Zuplo, Inc.",
6
6
  "type": "module",
@@ -40,9 +40,9 @@
40
40
  "source-map": "^0.7.4"
41
41
  },
42
42
  "peerDependencies": {
43
- "@zuplo/graphql": "6.70.21",
44
- "@zuplo/otel": "6.70.21",
45
- "@zuplo/runtime": "6.70.21",
43
+ "@zuplo/graphql": "6.70.23",
44
+ "@zuplo/otel": "6.70.23",
45
+ "@zuplo/runtime": "6.70.23",
46
46
  "deno": "2.3.1"
47
47
  }
48
48
  }