diff --git a/action.yml b/action.yml index e420bc7..8972aec 100644 --- a/action.yml +++ b/action.yml @@ -37,4 +37,4 @@ outputs: runs: using: "node20" - main: "dist/index.js" + main: "dist/main.js" diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 471c9c4..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"mappings":"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CAAC,EAAE,IAAI,EAAE,sBAAe,EAAE,KAAK,CAAC;IAEzE,IAAI,QAAQ,KAAK;QACf,sBAAoB,MAAM,iBAAU,QAAQ,WAAW,OAAO;QAC9D,sBAAoB,OAAO,iBAAU,QAAQ,WAAW,OAAO;IACjE;AACF;AAEA,eAAe;IACb,IAAI;QACF,MAAM,IAAI;IACZ,EAAE,OAAO,OAAY;QACnB,QAAQ,MAAM,MAAM;QACpB,iBAAe,MAAM;IACvB;AACF;AAEA,IAAI,cAAiB,QACnB;;;;A;A,I,wC,A,kB,e,mB,C,O,S,S,C,E,C,E,C,E,E;I,I,O,W,K;I,O,e,G,I;Q,Y;Q,K;Y,O,C,C,E;Q;I;A,I,S,C,E,C,E,C,E,E;I,I,O,W,K;I,C,C,G,G,C,C,E;A,C;A,I,2C,A,kB,e,sB,C,O,S,S,C,E,C;I,O,e,G,W;Q,Y;Q,O;I;A,I,S,C,E,C;I,C,C,U,G;A,C;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,I,kC,A,kB,e,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,O,e,gB,c;I,O;A;A,e,a,e,W,e,Y,e,Q,e,W,e,a,e,O,e,S,e,U,e,Q,e,Q,e,U,e,Y,e,iB,e,Y,e,kB,e,oB,e,W,e,U,e,Y,e,iB,e,W,K;;;;;;;;AE/JF,MAAA,2BAAA,mCAAA;;AACA,MAAA,6BAAA,mCAAA;;;AAeA;;CAEG,GACH,IAAY;AAAZ,CAAA,SAAY,QAAQ;IAClB;;KAEG,GACH,QAAA,CAAA,QAAA,CAAA,UAAA,GAAA,EAAA,GAAA;IAEA;;KAEG,GACH,QAAA,CAAA,QAAA,CAAA,UAAA,GAAA,EAAA,GAAA;AACF,CAAA,EAVY,iCAAA,eAAA,YAAA,CAAA,eAAA,WAAQ,CAAA,CAAA;A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IAAA,YAAA;IAAA,KAAA;QAAA,OAAA;IAAc;AAAA;;;;A;A,I,wC,A,kB,e,mB,C,O,S,S,C,E,C,E,C,E,E;I,I,O,W,K;I,O,e,G,I;Q,Y;Q,K;Y,O,C,C,E;Q;I;A,I,S,C,E,C,E,C,E,E;I,I,O,W,K;I,C,C,G,G,C,C,E;A,C;A,I,2C,A,kB,e,sB,C,O,S,S,C,E,C;I,O,e,G,W;Q,Y;Q,O;I;A,I,S,C,E,C;I,C,C,U,G;A,C;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,O,e,gB,c;I,O;A;A,e,Q,e,e,K;;AEnYhD,MAAA,2BAAA,mCAAA;;;AAYA;;;;;;;;;CASG,GACH,SAAgB,mCACd,OAAe,EACf,UAA6B,EAC7B,OAAY;IAEZ,MAAM,MAAM,IAAI,8BAAQ,SAAS,YAAY;IAC7C,QAAQ,OAAO,MAAM,IAAI,aAAa,yBAAG;AAC3C;AAPA,eAAA,eAAA;AASA,SAAgB,4BAAM,IAAY,EAAE,UAAU,EAAE;IAC9C,mCAAa,MAAM,CAAA,GAAI;AACzB;AAFA,eAAA,QAAA;AAIA,MAAM,mCAAa;AAEnB,MAAM;IAKJ,YAAY,OAAe,EAAE,UAA6B,EAAE,OAAe,CAA3E;QACE,IAAI,CAAC,SACH,UAAU;QAGZ,IAAI,CAAC,UAAU;QACf,IAAI,CAAC,aAAa;QAClB,IAAI,CAAC,UAAU;IACjB;IAEA,WAAA;QACE,IAAI,SAAS,mCAAa,IAAI,CAAC;QAE/B,IAAI,IAAI,CAAC,cAAc,OAAO,KAAK,IAAI,CAAC,YAAY,SAAS,GAAG;YAC9D,UAAU;YACV,IAAI,QAAQ;YACZ,IAAK,MAAM,OAAO,IAAI,CAAC,WACrB,IAAI,IAAI,CAAC,WAAW,eAAe,MAAM;gBACvC,MAAM,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI;gBAChC,IAAI,KAAK;oBACP,IAAI,OACF,QAAQ;yBAER,UAAU;oBAGZ,UAAU,CAAA,EAAG,IAAG,CAAA,EAAI,qCAAe,KAAI,CAAE;gBAC1C;YACF;QAEJ;QAED,UAAU,CAAA,EAAG,iCAAU,EAAG,iCAAW,IAAI,CAAC,SAAQ,CAAE;QACpD,OAAO;IACT;AACD;AAED,SAAS,iCAAW,CAAM;IACxB,OAAO,sBAAe,GACnB,QAAQ,MAAM,OACd,QAAQ,OAAO,OACf,QAAQ,OAAO;AACpB;AAEA,SAAS,qCAAe,CAAM;IAC5B,OAAO,sBAAe,GACnB,QAAQ,MAAM,OACd,QAAQ,OAAO,OACf,QAAQ,OAAO,OACf,QAAQ,MAAM,OACd,QAAQ,MAAM;AACnB;;;;A;AE7FA,mCAAmC;AACnC,qDAAA,G,O,e,gB,c;I,O;A;A,e,sB,e,iB,K;AAKA;;;CAGG,GACH,SAAgB,qCAAe,KAAU;IACvC,IAAI,UAAU,QAAQ,UAAU,WAC9B,OAAO;SACF,IAAI,OAAO,UAAU,YAAY,iBAAiB,QACvD,OAAO;IAET,OAAO,KAAK,UAAU;AACxB;AAPA,eAAA,iBAAA;AASA;;;;;CAKG,GACH,SAAgB,0CACd,oBAA0C;IAE1C,IAAI,CAAC,OAAO,KAAK,sBAAsB,QACrC,OAAO,CAAA;IAGT,OAAO;QACL,OAAO,qBAAqB;QAC5B,MAAM,qBAAqB;QAC3B,MAAM,qBAAqB;QAC3B,SAAS,qBAAqB;QAC9B,KAAK,qBAAqB;QAC1B,WAAW,qBAAqB;IACjC;AACH;AAfA,eAAA,sBAAA;;;;;;A;AEzBA,uCAAuC;A,I,wC,A,kB,e,mB,C,O,S,S,C,E,C,E,C,E,E;I,I,O,W,K;I,O,e,G,I;Q,Y;Q,K;Y,O,C,C,E;Q;I;A,I,S,C,E,C,E,C,E,E;I,I,O,W,K;I,C,C,G,G,C,C,E;A,C;A,I,2C,A,kB,e,sB,C,O,S,S,C,E,C;I,O,e,G,W;Q,Y;Q,O;I;A,I,S,C,E,C;I,C,C,U,G;A,C;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,O,e,gB,c;I,O;A;A,e,yB,e,mB,K;;AAEvC,mCAAmC;AACnC,qDAAA,GAEA,MAAA,2BAAA,mCAAA;;AACA,MAAA,2BAAA,mCAAA;;;;;AAIA,SAAgB,uCAAiB,OAAe,EAAE,OAAY;IAC5D,MAAM,WAAW,QAAQ,GAAG,CAAC,CAAA,OA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B;oBAC3C,eAAe,CAAA,EAAG,aAAY,UAAA,EAAa,gBAAe,CAAE;gBAC7D;gBAED,aAAM,CAAA,gBAAA,EAAmB,aAAY,CAAE;gBAEvC,MAAM,WAAW,MAAM,iCAAW,QAAQ;gBAC1C,iBAAU;gBACV,OAAO;YACR,EAAC,OAAO,OAAO;gBACd,MAAM,IAAI,MAAM,CAAA,eAAA,EAAkB,MAAM,QAAO,CAAE;YAClD;QACH;IAAC;AACF;AAzED,eAAA,aAAA;;;;A;AEVA,qDAAA,G,I,wC,A,kB,e,mB,C,O,S,S,C,E,C,E,C,E,E;I,I,O,W,K;I,O,e,G,I;Q,Y;Q,K;Y,O,C,C,E;Q;I;A,I,S,C,E,C,E,C,E,E;I,I,O,W,K;I,C,C,G,G,C,C,E;A,C;A,I,2C,A,kB,e,sB,C,O,S,S,C,E,C;I,O,e,G,W;Q,Y;Q,O;I;A,I,S,C,E,C;I,C,C,U,G;A,C;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,I,kC,A,kB,e,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,O,e,gB,c;I,O;A;A,e,a,e,U,e,qB,e,kB,e,c,e,a,e,U,e,Y,K;;AAEA,MAAA,6BAAA,mCAAA;;AACA,MAAA,8BAAA,mCAAA;;AAGA,MAAA,2BAAA,mCAAA;;AACA,MAAA,+BAAA,mCAAA;AAEA,IAAY;AAAZ,CAAA,SAAY,SAAS;IACnB,SAAA,CAAA,SAAA,CAAA,KAAA,GAAA,IAAA,GAAA;IACA,SAAA,CAAA,SAAA,CAAA,kBAAA,GAAA,IAAA,GAAA;IACA,SAAA,CAAA,SAAA,CAAA,mBAAA,GAAA,IAAA,GAAA;IACA,SAAA,CAAA,SAAA,CAAA,gBAAA,GAAA,IAAA,GAAA;IACA,SAAA,CAAA,SAAA,CA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IG,GACH,WAAA;QACE,MAAM,UAAU,IAAI,CAAC,KAAK,MAAM;QAChC,OAAO,IAAI,CAAC,OAAO,SAAS;IAC9B;IAEA;;;;;;;KAOG,GACH,SAAS,IAAY,EAAE,IAAa,EAApC;QACE,MAAM,QAAK,OAAA,OAAA,CAAA,GACL,QAAQ;kBAAC;QAAI;QAEnB,MAAM,UAAU,IAAI,CAAC,KAAK,cAAc,MAAM;QAC9C,OAAO,IAAI,CAAC,OAAO,SAAS;IAC9B;IAEA;;;;;;;KAOG,GACH,QAAQ,IAAY,EAAE,IAAY,EAAlC;QACE,MAAM,UAAU,IAAI,CAAC,KAAK,KAAK,MAAM;kBAAC;QAAI;QAC1C,OAAO,IAAI,CAAC,OAAO,SAAS;IAC9B;AACD;AAED,MAAM,iCAAW,IAAI;AAErB;;CAEG,GACU,eAAA,kBAAkB;AAClB,eAAA,UAAU;;;;;A;A,I,wC,A,kB,e,mB,C,O,S,S,C,E,C,E,C,E,E;I,I,O,W,K;I,O,e,G,I;Q,Y;Q,K;Y,O,C,C,E;Q;I;A,I,S,C,E,C,E,C,E,E;I,I,O,W,K;I,C,C,G,G,C,C,E;A,C;A,I,2C,A,kB,e,sB,C,O,S,S,C,E,C;I,O,e,G,W;Q,Y;Q,O;I;A,I,S,C,E,C;I,C,C,U,G;A,C;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,O,e,gB,c;I,O;A;A,e,iB,e,c,e,c,K;;AE1WvB,MAAA,6BAAA,mCAAA;AAEA;;;;;;CAMG,GACH,SAAgB,kCAAY,GAAW;IACrC,OAAO,IAAI,QAAQ,SAAS;AAC9B;AAFA,eAAA,cAAA;AAIA;;;;;;CAMG,GACH,SAAgB,kCAAY,GAAW;IACrC,OAAO,IAAI,QAAQ,QAAQ;AAC7B;AAFA,eAAA,cAAA;AAIA;;;;;;;CAOG,GACH,SAAgB,qCAAe,GAAW;IACxC,OAAO,IAAI,QAAQ,UAAU,2BAAK;AACpC;AAFA,eAAA,iBAAA;;;;;;A;A,I,wC,A,kB,e,mB,C,O,S,S,C,E,C,E,C,E,E;I,I,O,W,K;I,O,e,G,I;Q,Y;Q,K;Y,O,C,C,E;Q;I;A,I,S,C,E,C,E,C,E,E;I,I,O,W,K;I,C,C,G,G,C,C,E;A,C;A,I,2C,A,kB,e,sB,C,O,S,S,C,E,C;I,O,e,G,W;Q,Y;Q,O;I;A,I,S,C,E,C;I,C,C,U,G;A,C;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,I,kC,A,kB,e,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,O,e,gB,c;I,O;A;A,e,gB,e,O,K;;;AE9BA,MAAA,2BAAA,mCAAA;AAIA;;;;;;;;;CASG,GACH,SAAsB,2BACpB,WAAmB,EACnB,IAAe,EACf,OAAqB;I,O,gC,I,E,K,G,K,G;QAErB,MAAM,cAAc,yBAAG,iBAAiB;QACxC,IAAI,YAAY,WAAW,GACzB,MAAM,IAAI,MAAM,CAAA,gDAAA,CAAkD;QAEpE,8CAA8C;QAC9C,MAAM,WAAW,WAAW,CAAC,EAAE;QAC/B,OAAO,YAAY,MAAM,GAAG,OAAO,QAAQ,EAAE;QAC7C,MAAM,SAAwB,IAAI,yBAAG,WAAW,UAAU,MAAM;QAChE,OAAO,OAAO;IAChB;AAAC;AAdD,eAAA,OAAA;AAgBA;;;;;;;;;CASG,GAEH,SAAsB,oCACpB,WAAmB,EACnB,IAAe,EACf,OAAqB;I,I,I;I,O,gC,I,E,K,G,K,G;QAErB,IAAI,SAAS;QACb,IAAI,SAAS;QAEb,2EAA2E;QAC3E,MAAM,gBAAgB,IAAI,oCAAc;QACxC,MAAM,gBAAgB,IAAI,oCAAc;QAExC,MAAM,yBAAsB,AAAA,CAAA,KAAG,YAAO,QAAP,YAAO,KAAA,IAAA,KAAA,IAAP,QAAS,SAAA,MAAS,QAAA,OAAA,KAAA,IAAA,KAAA,IAAA,GAAE;QACnD,MAAM,yBAAsB,AAAA,CAAA,KAAG,YAAO,QAAP,YAAO,KAAA,IAAA,KAAA,IAAP,QAAS,SAAA,MAAS,QAAA,OAAA,KAAA,IAAA,KAAA,IAAA,GAAE;QAEnD,MAAM,iBAAiB,CAAC;YACtB,UAAU,cAAc,MAAM;YAC9B,IAAI,wBACF,uBAAuB;QAE3B;QAEA,MAAM,iBAAiB,CAAC;YACtB,UAAU,cAAc,MAAM;YAC9B,IAAI,wBACF,uBAAuB;QAE3B;QAEA,MAAM,YAAS,OAAA,OAAA,OAAA,OAAA,CAAA,GACV,YAAO,QAAP,YAAO,KAAA,IAAA,KAAA,IAAP,QAAS,YAAS;YACrB,QAAQ;YACR,QAAQ;QAAc;QAGxB,MAAM,WAAW,MAAM,2BAAK,aAAa,MAAI,OAAA,OAAA,OAAA,OAAA,CAAA,GAAM,UAAO;uBAAE;QAAS;QAErE,gCAAgC;QAChC,UAAU,cAAc;QACxB,UAAU,cAAc;QAExB,OAAO;sBACL;oBACA;oBACA;QACD;I;AACF;AA9CD,eAAA,gBAAA;;;;A;A,I,wC,A,kB,e,mB,C,O,S,S,C,E,C,E,C,E,E;I,I,O,W,K;I,O,e,G,I;Q,Y;Q,K;Y,O,C,C,E;Q;I;A,I,S,C,E,C,E,C,E,E;I,I,O,W,K;I,C,C,G,G,C,C,E;A,C;A,I,2C,A,kB,e,sB,C,O,S,S,C,E,C;I,O,e,G,W;Q,Y;Q,O;I;A,I,S,C,E,C;I,C,C,U,G;A,C;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,I,kC,A,kB,e,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,O,e,gB,c;I,O;A;A,e,mB,e,a,K;;AE3CA,MAAA,2BAAA,mCAAA;;AACA,MAAA,+BAAA,mCAAA;;AACA,MAAA,8BAAA,mCAAA;;AACA,MAAA,6BAAA,mCAAA;;AAGA,MAAA,2BAAA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AM;IACR;AACD;;;;A;A,I,kC,A,kB,e,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,O,e,K,K,I,M,C,E,G,G,C,E;I;I,M,C,U,G;I,O;A;A,O,e,gB,c;I,O;A;;AE9rBD,MAAA,qCAAA,mCAAA;;AACA,MAAA,6BAAA,mCAAA;;;AAEA,MAAA,+BAAA,mCAAA;AAEA,MAAM,6BAAO,sBAAU,mCAAa;AAoBpC;;;;;;;CAOG,GACH,SAAsB,yBACpB,MAAc,EACd,IAAY,EACZ,UAAuB,CAAA,CAAE;I,O,gC,I,E,K,G,K,G;QAEzB,MAAM,SAAC,KAAK,aAAE,SAAS,EAAC,GAAG,sCAAgB;QAE3C,MAAM,WAAW,AAAC,CAAA,MAAM,6BAAO,OAAO,KAAI,IAAK,MAAM,6BAAO,KAAK,QAAQ;QACzE,4CAA4C;QAC5C,IAAI,YAAY,SAAS,YAAY,CAAC,OACpC;QAGF,wDAAwD;QACxD,MAAM,UACJ,YAAY,SAAS,gBACjB,2BAAK,KAAK,MAAM,2BAAK,SAAS,WAC9B;QAEN,IAAI,CAAE,CAAA,MAAM,6BAAO,OAAO,OAAM,GAC9B,MAAM,IAAI,MAAM,CAAA,2BAAA,EAA8B,OAAM,CAAE;QAExD,MAAM,aAAa,MAAM,6BAAO,KAAK;QAErC,IAAI,WAAW,eAAe;YAC5B,IAAI,CAAC,WACH,MAAM,IAAI,MACR,CAAA,gBAAA,EAAmB,OAAM,0DAAA,CAA4D;iBAGvF,MAAM,qCAAe,QAAQ,SAAS,GAAG;QAE5C,OAAM;YACL,IAAI,2BAAK,SAAS,QAAQ,aAAa,IACrC,oCAAoC;YACpC,MAAM,IAAI,MAAM,CAAA,CAAA,EAAI,QAAO,OAAA,EAAU,OAAM,mBAAA,CAAqB;YAGlE,MAAM,+BAAS,QA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AO,QACX,aACA,UACA,6BAAO,aAAa,aAAa;QAEpC,OAAM,IAAI,CAAE,CAAA,MAAM,6BAAO,OAAO,SAAQ,KAAM,OAC7C,MAAM,6BAAO,SAAS,SAAS;IAEnC;AAAC;;;;A;A,I,kC,A,kB,e,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,O,e,K,K,I,M,C,E,G,G,C,E;I;I,M,C,U,G;I,O;A;A,I;A,O,e,gB,c;I,O;A;;;AErVD,MAAA,2BAAA,mCAAA;;AACA,MAAA,6BAAA,mCAAA;AAEa,2BAAA,yBAAA,UAYE,eAAA,QAAA,yBAAA,OAAA,eAAA,WAAA,yBAAA,UAAA,eAAA,QAAA,yBAAA,OAAA,eAAA,QAAA,yBAAA,OAAA,eAAA,UAAA,yBAAA,SAAA,eAAA,WAAA,yBAAA,UAAA,eAAA,SAAA,yBAAA,QAAA,eAAA,QAAA,yBAAA,OAAA,eAAA,OAAA,yBAAA,MAAA,eAAA,UAAA,yBAAA,SAAA,eAAA,SAAA,yBAAA;AAEF,eAAA,aAAa,QAAQ,aAAa;AAE/C,SAAsB,6BAAO,MAAc;I,O,gC,I,E,K,G,K,G;QACzC,IAAI;YACF,MAAM,eAAA,KAAK;QACZ,EAAC,OAAO,KAAK;YACZ,IAAI,IAAI,SAAS,UACf,OAAO;YAGT,MAAM;QACP;QAED,OAAO;IACT;AAAC;AAZD,eAAA,SAAA;AAcA,SAAsB,kCACpB,MAAc,EACd,UAAmB,KAAK;I,O,gC,I,E,K,G,K,G;QAExB,MAAM,QAAQ,UAAU,MAAM,eAAA,KAAK,UAAU,MAAM,eAAA,MAAM;QACzD,OAAO,MAAM;IACf;AAAC;AAND,eAAA,cAAA;AAQA;;;CAGG,GACH,SAAgB,+BAAS,CAAS;IAChC,IAAI,0CAAoB;IACxB,IAAI,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,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,I,kC,A,kB,e,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,O,e,gB,c;I,O;A;A,e,a,e,Q,e,S,e,O,e,K,e,K,K;;;AErNA,MAAA,6BAAA,mCAAA;;AACA,MAAA,+BAAA,mCAAA;AAsBA;;;;;;;CAOG,GACH,SAAsB,yBACpB,MAAc,EACd,IAAY,EACZ,UAAuB,CAAA,CAAE;I,O,gC,I,E,K,G,K,G;QAEzB,MAAM,SAAC,KAAK,aAAE,SAAS,uBAAE,mBAAmB,EAAC,GAAG,sCAAgB;QAEhE,MAAM,WAAW,AAAC,CAAA,MAAM,6BAAO,OAAO,KAAI,IAAK,MAAM,6BAAO,KAAK,QAAQ;QACzE,4CAA4C;QAC5C,IAAI,YAAY,SAAS,YAAY,CAAC,OACpC;QAGF,wDAAwD;QACxD,MAAM,UACJ,YAAY,SAAS,iBAAiB,sBAClC,2BAAK,KAAK,MAAM,2BAAK,SAAS,WAC9B;QAEN,IAAI,CAAE,CAAA,MAAM,6BAAO,OAAO,OAAM,GAC9B,MAAM,IAAI,MAAM,CAAA,2BAAA,EAA8B,OAAM,CAAE;QAExD,MAAM,aAAa,MAAM,6BAAO,KAAK;QAErC,IAAI,WAAW,eAAe;YAC5B,IAAI,CAAC,WACH,MAAM,IAAI,MACR,CAAA,gBAAA,EAAmB,OAAM,0DAAA,CAA4D;iBAGvF,MAAM,qCAAe,QAAQ,SAAS,GAAG;QAE5C,OAAM;YACL,IAAI,2BAAK,SAAS,QAAQ,aAAa,IACrC,oCAAoC;YACpC,MAAM,IAAI,MAAM,CAAA,CAAA,EAAI,QAAO,OAAA,EAAU,OAAM,mBAAA,CAAqB;YAGlE,MAAM,+BAAS,QAAQ,SAAS;QACjC;IACH;AAAC;AAxCD,eAAA,KAAA;AA0CA;;;;;;CAMG,GAC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qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,I,kC,A,kB,e,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,I;A,O,e,gB,c;I,O;A;A,e,a,e,uB,e,W,e,c,e,S,e,W,e,iB,e,a,e,S,e,U,e,O,e,Q,e,K,e,S,e,W,e,U,e,O,e,Q,e,Q,e,W,e,Q,K;;AEtUD,MAAA,2BAAA,mCAAA;;AACA,MAAA,6BAAA,mCAAA;AAEa,2BAcT,yBAAG,UAbL,eAAA,QAAK,yBAAA,OACL,eAAA,WAAQ,yBAAA,UACR,eAAA,QAAK,yBAAA,OACL,eAAA,QAAK,yBAAA,OACL,eAAA,OAAI,yBAAA,MACJ,eAAA,UAAO,yBAAA,SACP,eAAA,WAAQ,yBAAA,UACR,eAAA,SAAM,yBAAA,QACN,eAAA,KAAE,yBAAA,IACF,eAAA,QAAK,yBAAA,OACL,eAAA,OAAI,yBAAA,MACJ,eAAA,UAAO,yBAAA,SACP,eAAA,SAAM,yBAAA;AAER,6BAA6B;AAChB,eAAA,aAAa,QAAQ,aAAa;AAC/C,iHAAiH;AACpG,eAAA,iBAAiB;AACjB,eAAA,WAAW,yBAAG,UAAU;AAErC,SAAsB,6BAAO,MAAc;I,O,gC,I,E,K,G,K,G;QACzC,IAAI;YACF,MAAM,eAAA,KAAK;QACZ,EAAC,OAAO,KAAK;YACZ,IAAI,IAAI,SAAS,UACf,OAAO;YAGT,MAAM;QACP;QAED,OAAO;IACT;AAAC;AAZD,eAAA,SAAA;AAcA,SAAsB,kCACpB,MAAc,EACd,UAAU,KAAK;I,O,gC,I,E,K,G,K,G;QAEf,MAAM,QAAQ,UAAU,MAAM,eAAA,KAAK,UAAU,MAAM,eAAA,MAAM;QACzD,OAAO,MAAM;IACf;AAAC;AAND,eAAA,cAAA;AAQA;;;CAGG,GACH,SAAgB,+BAAS,CAAS;IAChC,IAAI,0CAAoB;IACxB,IAAI,CAAC,GACH,MAAM,IAAI,MAAM;IAGlB,IAAI,eAAA,YACF,OACE,EAAE,WAAW,SAAS,WAAW,KAAK,GAAG,8BAA8B;MACvE,sBAAsB;IAG1B,OAAO,EAAE,WAAW;AACtB;AAbA,eAAA,WAAA;AAeA;;;;;CAKG,GACH,SAAsB,2CACpB,QAAgB,EAChB,UAAoB;I,O,gC,I,E,K,G,K,G;QAEpB,IAAI,QAA8B;QAClC,IAAI;YACF,mBAAmB;YACnB,QAAQ,MAAM,eAAA,KAAK;QACpB,EAAC,OAAO,KAAK;YACZ,IAAI,IAAI,SAAS,UACf,sCAAsC;YACtC,QAAQ,IACN,CAAA,oEAAA,EAAuE,SAAQ,GAAA,EAAM,IAAG,CAAE;QAG/F;QACD,IAAI,SAAS,MAAM;YACjB,IAAI,eAAA,YAAY;gBACd,uCAAuC;gBACvC,MAAM,WAAW,2BAAK,QAAQ,UAAU;gBACxC,IAAI,WAAW,KAAK,CAAA,WAAY,SAAS,kBAAkB,WACzD,OAAO;YAEV,OAAM;gBACL,IAAI,uCAAiB,QACnB,OAAO;YAEV;;QAGH,qBAAqB;QACrB,MAAM,mBAAmB;QACzB,KAAK,MAAM,aAAa,WAAY;YAClC,WAAW,mBAAmB;YAE9B,QAAQ;YACR,IAAI;gBACF,QAAQ,MAAM,eAAA,KAAK;YACpB,EAAC,OAAO,KAAK;gBACZ,IAAI,IAAI,SAAS,UACf,sCAAsC;gBACtC,QAAQ,IACN,CAAA,oEAAA,EAAuE,SAAQ,GAAA,EAAM,IAAG,CAAE;YAG/F;YAED,IAAI,SAAS,MAAM;gBACjB,IAAI,eAAA,YAAY;oBACd,yEAAyE;oBACzE,IAAI;wBACF,MAAM,YAAY,2BAAK,QAAQ;wBAC/B,MAAM,YAAY,2BAAK,SAAS,UAAU;wBAC1C,KAAK,MAAM,cAAc,MAAM,eAAA,QAAQ,WACrC,IAAI,cAAc,WAAW,eAAe;4BAC1C,WAAW,2BAAK,KAAK,WAAW;4BAChC;wBACD;oBAEJ,EAAC,OAAO,KAAK;wBACZ,sCAAsC;wBACtC,QAAQ,IACN,CAAA,sEAAA,EAAyE,SAAQ,GAAA,EAAM,IAAG,CAAE;oBAE/F;oBAED,OAAO;gBACR,OAAM;oBACL,IAAI,uCAAiB,QACnB,OAAO;gBAEV;;QAEJ;QAED,OAAO;IACT;AAAC;AA5ED,eAAA,uBAAA;AA8EA,SAAS,0CAAoB,CAAS;IACpC,IAAI,KAAK;IACT,IAAI,eAAA,YAAY;QACd,6BAA6B;QAC7B,IAAI,EAAE,QAAQ,OAAO;QAErB,2BAA2B;QAC3B,OAAO,EAAE,QAAQ,UAAU;IAC5B;IAED,2BAA2B;IAC3B,OAAO,EAAE,QAAQ,UAAU;AAC7B;AAEA,qCAAqC;AACrC,6BAA6B;AAC7B,6BAA6B;AAC7B,SAAS,uCAAiB,KAAe;IACvC,OACE,AAAC,CAAA,MAAM,OAAO,CAAA,IAAK,KAClB,AAAC,CAAA,MAAM,OAAO,CAAA,IAAK,KAAK,MAAM,QAAQ,QAAQ,YAC9C,AAAC,CAAA,MAAM,OAAO,EAAA,IAAM,KAAK,MAAM,QAAQ,QAAQ;AAEpD;AAEA,qCAAqC;AACrC,SAAgB;I,I;IACd,OAAA,AAAA,CAAA,KAAO,QAAQ,GAAG,CAAC,UAAU,AAAD,MAAC,QAAA,OAAA,KAAA,IAAA,KAAI,CAAA,OAAA,CAAS;AAC5C;AAFA,eAAA,aAAA;;;;;;;;A;A,I,wC,A,kB,e,mB,C,O,S,S,C,E,C,E,C,E,E;I,I,O,W,K;I,O,e,G,I;Q,Y;Q,K;Y,O,C,C,E;Q;I;A,I,S,C,E,C,E,C,E,E;I,I,O,W,K;I,C,C,G,G,C,C,E;A,C;A,I,2C,A,kB,e,sB,C,O,S,S,C,E,C;I,O,e,G,W;Q,Y;Q,O;I;A,I,S,C,E,C;I,C,C,U,G;A,C;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,I,kC,A,kB,e,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S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jE,UAAU;IACX;AACH;AAdA,eAAA,eAAA;;;;;;A;A,I,wC,A,kB,e,mB,C,O,S,S,C,E,C,E,C,E,E;I,I,O,W,K;I,O,e,G,I;Q,Y;Q,K;Y,O,C,C,E;Q;I;A,I,S,C,E,C,E,C,E,E;I,I,O,W,K;I,C,C,G,G,C,C,E;A,C;A,I,2C,A,kB,e,sB,C,O,S,S,C,E,C;I,O,e,G,W;Q,Y;Q,O;I;A,I,S,C,E,C;I,C,C,U,G;A,C;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,I,kC,A,kB,e,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,O,e,gB,c;I,O;A;A,e,a,e,Q,e,S,e,O,e,K,e,K,K;;;AERA,MAAA,qCAAA,mCAAA;;AACA,MAAA,6BAAA,mCAAA;;;AAEA,MAAA,+BAAA,mCAAA;AAEA,MAAM,6BAAO,sBAAU,mCAAa;AACpC,MAAM,iCAAW,sBAAU,mCAAa;AAsBxC;;;;;;;CAOG,GACH,SAAsB,yBACpB,MAAc,EACd,IAAY,EACZ,UAAuB,CAAA,CAAE;I,O,gC,I,E,K,G,K,G;QAEzB,MAAM,SAAC,KAAK,aAAE,SAAS,uBAAE,mBAAmB,EAAC,GAAG,sCAAgB;QAEhE,MAAM,WAAW,AAAC,CAAA,MAAM,6BAAO,OAAO,KAAI,IAAK,MAAM,6BAAO,KAAK,QAAQ;QACzE,4CAA4C;QAC5C,IAAI,YAAY,SAAS,YAAY,CAAC,OACpC;QAGF,wDAAwD;QACxD,MAAM,UACJ,YAAY,SAAS,iBAAiB,sBAClC,2BAAK,KAAK,MAAM,2BAAK,SAAS,WAC9B;QAEN,IAAI,CAAE,CAAA,MAAM,6BAAO,OAAO,OAAM,GAC9B,MAAM,IAAI,MAAM,CAAA,2BAAA,EAA8B,OAAM,CAA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Ac,MAAM,6BAAO,MAAM;YAEvC,IAAI,YAAY,eACd,UAAU;YACV,MAAM,qCAAe,SAAS,UAAU,cAAc;iBAEtD,MAAM,+BAAS,SAAS,UAAU;QAErC;QAED,kDAAkD;QAClD,MAAM,6BAAO,MAAM,SAAS,AAAC,CAAA,MAAM,6BAAO,KAAK,UAAS,EAAG;IAC7D;AAAC;AAED,qBAAqB;AACrB,SAAe,+BACb,OAAe,EACf,QAAgB,EAChB,KAAc;I,O,gC,I,E,K,G,K,G;QAEd,IAAI,AAAC,CAAA,MAAM,6BAAO,MAAM,QAAO,EAAG,kBAAkB;YAClD,oBAAoB;YACpB,IAAI;gBACF,MAAM,6BAAO,MAAM;gBACnB,MAAM,6BAAO,OAAO;YACrB,EAAC,OAAO,GAAG;gBACV,kCAAkC;gBAClC,IAAI,EAAE,SAAS,SAAS;oBACtB,MAAM,6BAAO,MAAM,UAAU;oBAC7B,MAAM,6BAAO,OAAO;gBACrB;YACD,iDAAiD;YAClD;YAED,oBAAoB;YACpB,MAAM,cAAsB,MAAM,6BAAO,SAAS;YAClD,MAAM,6BAAO,QACX,aACA,UACA,6BAAO,aAAa,aAAa;QAEpC,OAAM,IAAI,CAAE,CAAA,MAAM,6BAAO,OAAO,SAAQ,KAAM,OAC7C,MAAM,6BAAO,SAAS,SAAS;IAEnC;AAAC;;;;A;A,I,wC,A,kB,e,mB,C,O,S,S,C,E,C,E,C,E,E;I,I,O,W,K;I,O,e,G,I;Q,Y;Q,K;Y,O,C,C,E;Q;I;A,I,S,C,E,C,E,C,E,E;I,I,O,W,K;I,C,C,G,G,C,C,E;A,C;A,I,2C,A,kB,e,sB,C,O,S,S,C,E,C;I,O,e,G,W;Q,Y;Q,O;I;A,I,S,C,E,C;I,C,C,U,G;A,C;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,I,kC,A,kB,e,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,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K,KAClB,AAAC,CAAA,MAAM,OAAO,CAAA,IAAK,KAAK,MAAM,QAAQ,QAAQ,YAC9C,AAAC,CAAA,MAAM,OAAO,EAAA,IAAM,KAAK,MAAM,QAAQ,QAAQ;AAEpD;AAEA,qCAAqC;AACrC,SAAgB;I,I;IACd,OAAA,AAAA,CAAA,KAAO,QAAQ,GAAG,CAAC,UAAU,AAAD,MAAC,QAAA,OAAA,KAAA,IAAA,KAAI,CAAA,OAAA,CAAS;AAC5C;AAFA,eAAA,aAAA;;;;;;A;A,I,wC,A,kB,e,mB,C,O,S,S,C,E,C,E,C,E,E;I,I,O,W,K;I,O,e,G,I;Q,Y;Q,K;Y,O,C,C,E;Q;I;A,I,S,C,E,C,E,C,E,E;I,I,O,W,K;I,C,C,G,G,C,C,E;A,C;A,I,2C,A,kB,e,sB,C,O,S,S,C,E,C;I,O,e,G,W;Q,Y;Q,O;I;A,I,S,C,E,C;I,C,C,U,G;A,C;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,I,kC,A,kB,e,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,O,e,gB,c;I,O;A;A,e,wB,e,gB,e,a,K;;AE1KA,MAAA,+BAAA,mCAAA;;;;;;AA6DA,SAAsB,iCACpB,WAAmB,EACnB,MAAe,EACf,UAA0B,EAC1B,UAAkB;I,O,gC,I,E,K,G,K,G;QAElB,MAAM,aAAa;QAEnB,IAAI;QACJ,IAAI;QAEJ,IAAI;QACJ,KAAK,MAAM,aAAa,WAAY;YAClC,MAAM,UAAU,UAAU;YAE1B,aAAM,CAAA,MAAA,EAAS,QAAO,WAAA,EAAc,YAAW,CAAE;YACjD,IACE,6BAAO,UAAU,SAAS,gBACzB,CAAA,CAAC,UAAU,UAAU,WAAW,MAAA,GACjC;gBACA,OAAO,UAAU,MAAM,KAAK,CAAA;oB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CjH,OAAO,AAAC;QACN,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAC5B,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE;QAC9B,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE;QAC9B,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE;QAC9B,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE;QAC9B,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAC5B,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAC5B,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;KAC7B,CAAE,KAAK;AACV;AAEA,iBAAiB;;;;;;A;A,I,kC,A,kB,e,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,O,e,K,K,I,M,C,E,G,G,C,E;I;I,M,C,U,G;I,O;A;A,O,e,gB,c;I,O;A;;AExBjB,MAAA,2BAAA,mCAAA;AAIA;;;;;;;;;CASG,GACH,SAAsB,2BACpB,WAAmB,EACnB,IAAe,EACf,OAAqB;I,O,gC,I,E,K,G,K,G;QAErB,MAAM,cAAc,yBAAG,iBAAiB;QACxC,IAAI,YAAY,WAAW,GACzB,MAAM,IAAI,MAAM,CAAA,gDAAA,CAAkD;QAEpE,8CAA8C;QAC9C,MAAM,WAAW,WAAW,CAAC,EAAE;QAC/B,OAAO,YAAY,MAAM,GAAG,OAAO,QAAQ,EAAE;QAC7C,MAAM,SAAwB,IAAI,yBAAG,WAAW,UAAU,MAAM;QAChE,OAAO,OAAO;IAChB;AAAC;AAdD,eAAA,OAAA;;;;A;A,I,kC,A,kB,e,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,O,e,K,K,I,M,C,E,G,G,C,E;I;I,M,C,U,G;I,O;A;A,O,e,gB,c;I,O;A;;AEfA,MAAA,2BAAA,mCAAA;;AACA,MAAA,+BAAA,mCAAA;;AACA,MAAA,8BAAA,mCAAA;;AACA,MAAA,6BAAA,mCAAA;;AAGA,MAAA,2BAAA,mCAAA;;AACA,MAAA,+BAAA,mCAAA;AAEA,oDAAA,GAEA,MAAM,mCAAa,QAAQ,aAAa;AAExC;;CAEG,GACH,MAAa,yCAAmB,6BAAO;IACrC,YAAY,QAAgB,EAAE,IAAe,EAAE,OAAwB,CAAvE;QACE,KAAK;QAEL,IAAI,CAAC,UACH,MAAM,IAAI,MAAM;QAGlB,IAAI,CAAC,WAAW;QAChB,IAAI,CAAC,OAAO,QAAQ,EAAE;QACtB,IAAI,CAAC,UAAU,WAAW,CAAA;IAC5B;IAMQ,OAAO,OAAe,EAAtB;QACN,IAAI,IAAI,CAAC,QAAQ,aAAa,IAAI,CAAC,QAAQ,UAAU,OACnD,IAAI,CAAC,QAAQ,UAAU,MAAM;IAEjC;IAEQ,kBACN,OAAuB,EACvB,QAAkB,EAFZ;QAIN,MAAM,WAAW,IAAI,CAAC;QACtB,MAAM,OAAO,IAAI,CAAC,cAAc;QAChC,IAAI,MAAM,WAAW,KAAK,aAAY,0CAA0C;QAChF,IAAI,kCAAY;YACd,qBAAqB;YACrB,IAAI,IAAI,CAAC,cAAc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C,QAAQ,cAC5C,QAAQ,IAAI,MACV,CAAA,aAAA,EAAgB,IAAI,CAAC,SAAQ,oEAAA,CAAsE;QAGxG;QAED,oBAAoB;QACpB,IAAI,IAAI,CAAC,SAAS;YAChB,aAAa,IAAI,CAAC;YAClB,IAAI,CAAC,UAAU;QAChB;QAED,IAAI,CAAC,OAAO;QACZ,IAAI,CAAC,KAAK,QAAQ,OAAO,IAAI,CAAC;IAChC;IAEQ,OAAO,cAAc,KAAgB,EAArC;QACN,IAAI,MAAM,MACR;QAGF,IAAI,CAAC,MAAM,iBAAiB,MAAM,eAAe;YAC/C,MAAM,UAAU,CAAA,uCAAA,EAA0C,MAAM,QAC9D,KAAI,yCAAA,EACJ,MAAM,SACR,wFAAA,CAA0F;YAC1F,MAAM,OAAO;QACd;QAED,MAAM;IACR;AACD;;;;A;A,I,kC,A,kB,e,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,O,e,K,K,I,M,C,E,G,G,C,E;I;I,M,C,U,G;I,O;A;A,O,e,gB,c;I,O;A;;AE/qBD,MAAA,qCAAA,mCAAA;;AACA,MAAA,6BAAA,mCAAA;;;AAEA,MAAA,+BAAA,mCAAA;AAEA,MAAM,6BAAO,sBAAU,mCAAa;AAoBpC;;;;;;;CAOG,GACH,SAAsB,yBACpB,MAAc,EACd,IAAY,EACZ,UAAuB,CAAA,CAAE;I,O,gC,I,E,K,G,K,G;QAEzB,MAAM,SAAC,KAAK,aAAE,SAAS,EAAC,GAAG,sCAAgB;QAE3C,MAAM,WAAW,AAAC,CAAA,MAAM,6BAAO,OAAO,KAAI,IAAK,MAAM,6BAAO,KAAK,QAAQ;QACzE,4CAA4C;QAC5C,IAAI,YAAY,SAAS,YAAY,CAAC,OACpC;QAGF,wDAAwD;QACxD,MAAM,UACJ,YAAY,SAAS,gBAC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AAO,KAAK,UAAS,EAAG;IAC7D;AAAC;AAED,qBAAqB;AACrB,SAAe,+BACb,OAAe,EACf,QAAgB,EAChB,KAAc;I,O,gC,I,E,K,G,K,G;QAEd,IAAI,AAAC,CAAA,MAAM,6BAAO,MAAM,QAAO,EAAG,kBAAkB;YAClD,oBAAoB;YACpB,IAAI;gBACF,MAAM,6BAAO,MAAM;gBACnB,MAAM,6BAAO,OAAO;YACrB,EAAC,OAAO,GAAG;gBACV,kCAAkC;gBAClC,IAAI,EAAE,SAAS,SAAS;oBACtB,MAAM,6BAAO,MAAM,UAAU;oBAC7B,MAAM,6BAAO,OAAO;gBACrB;YACD,iDAAiD;YAClD;YAED,oBAAoB;YACpB,MAAM,cAAsB,MAAM,6BAAO,SAAS;YAClD,MAAM,6BAAO,QACX,aACA,UACA,6BAAO,aAAa,aAAa;QAEpC,OAAM,IAAI,CAAE,CAAA,MAAM,6BAAO,OAAO,SAAQ,KAAM,OAC7C,MAAM,6BAAO,SAAS,SAAS;IAEnC;AAAC;;;;A;A,I,kC,A,kB,e,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,O,e,K,K,I,M,C,E,G,G,C,E;I;I,M,C,U,G;I,O;A;A,I;A,O,e,gB,c;I,O;A;;;AErVD,MAAA,2BAAA,mCAAA;;AACA,MAAA,6BAAA,mCAAA;AAEa,2BAAA,yBAAA,UAYE,eAAA,QAAA,yBAAA,OAAA,eAAA,WAAA,yBAAA,UAAA,eAAA,QAAA,yBAAA,OAAA,eAAA,QAAA,yBAAA,OAAA,eAAA,UAAA,yBAAA,SAAA,eAAA,WAAA,yBAAA,UAAA,eAAA,SAAA,yBAAA,QAAA,eAAA,QAAA,yBAAA,OAAA,eAAA,OAAA,yBAAA,MAAA,eAAA,UAAA,yBAAA,SAAA,eAAA,SAAA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SAAS,uCAAiB,KAAe;IACvC,OACE,AAAC,CAAA,MAAM,OAAO,CAAA,IAAK,KAClB,AAAC,CAAA,MAAM,OAAO,CAAA,IAAK,KAAK,MAAM,QAAQ,QAAQ,YAC9C,AAAC,CAAA,MAAM,OAAO,EAAA,IAAM,KAAK,MAAM,QAAQ,QAAQ;AAEpD;;;;;;;;A;A,I,wC,A,kB,e,mB,C,O,S,S,C,E,C,E,C,E,E;I,I,O,W,K;I,O,e,G,I;Q,Y;Q,K;Y,O,C,C,E;Q;I;A,I,S,C,E,C,E,C,E,E;I,I,O,W,K;I,C,C,G,G,C,C,E;A,C;A,I,2C,A,kB,e,sB,C,O,S,S,C,E,C;I,O,e,G,W;Q,Y;Q,O;I;A,I,S,C,E,C;I,C,C,U,G;A,C;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,I,kC,A,kB,e,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,O,e,gB,c;I,O;A;A,e,c,K;;AEtNA,MAAA,6BAAA,mCAAA;AAEA;;CAEG,GACH,MAAa;IAKX,YAAY,WAAmB,EAAE,UAAkB,EAAE,UAAkB,CAAvE;QACE,IAAI,cAAc,GAChB,MAAM,IAAI,MAAM;QAGlB,IAAI,CAAC,cAAc;QACnB,IAAI,CAAC,aAAa,KAAK,MAAM;QAC7B,IAAI,CAAC,aAAa,KAAK,MAAM;QAC7B,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,YACzB,MAAM,IAAI,MAAM;IAEpB;IAEM,QACJ,MAAwB,EACxB,WAAmC,EAF/B;Q,O,gC,I,E,K,G,K,G;YAIJ,IAAI,UAAU;YACd,MAAO,UAAU,IAAI,CAAC,YAAa;gBACjC,MAAM;gBACN,IAAI;oBACF,OAAO,MAAM;gBACd,EAAC,OAAO,KAAK;oBACZ,IAAI,eAAe,CAAC,YAAY,MAC9B,MAAM;oBAGR,2BAAK,KAAK,IAAI;gBACf;gBAED,QAAQ;gBACR,MAAM,UAAU,IAAI,CAAC;gBACrB,2BAAK,KAAK,CAAA,QAAA,EAAW,QAAO,4BAAA,CAA8B;gBAC1D,MAAM,IAAI,CAAC,MAAM;gBACjB;YACD;YAED,eAAe;YACf,OAAO,MAAM;QACf;IAAC;IAEO,iBAAA;QACN,OACE,KAAK,MAAM,KAAK,WAAY,CAAA,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,CAAA,KAChE,IAAI,CAAC;IAET;IAEc,MAAM,OAAe,EAArB;Q,O,gC,I,E,K,G,K,G;YACZ,OAAO,IAAI,QAAQ,CAAA,UAAW,WAAW,SAAS,UAAU;QAC9D;IAAC;AACF;AAxDD,eAAA,cAAA;;;;;;ACLA,iBAAiB,KAAK,MAAM","sources":["index.ts","node_modules/@actions/core/lib/core.js","node_modules/@actions/core/src/core.ts","node_modules/@actions/core/lib/command.js","node_modules/@actions/core/src/command.ts","node_modules/@actions/core/lib/utils.js","node_modules/@actions/core/src/utils.ts","node_modules/@actions/core/lib/file-command.js","node_modules/@actions/core/src/file-command.ts","node_modules/@actions/core/node_modules/uuid/dist/esm-node/v4.js","node_modules/@actions/core/node_modules/uuid/dist/esm-node/rng.js","node_modules/@actions/core/node_modules/uuid/dist/esm-node/stringify.js","node_modules/@actions/core/node_modules/uuid/dist/esm-node/validate.js","node_modules/@actions/core/node_modules/uuid/dist/esm-node/regex.js","node_modules/@actions/core/lib/oidc-utils.js","node_modules/@actions/core/src/oidc-utils.ts","node_modules/@actions/http-client/lib/index.js","node_modules/@actions/http-client/src/index.ts","node_modules/@actions/http-client/lib/proxy.js","node_modules/@actions/http-client/src/proxy.ts","node_modules/tunnel/index.js","node_modules/tunnel/lib/tunnel.js","node_modules/@actions/http-client/lib/auth.js","node_modules/@actions/http-client/src/auth.ts","node_modules/@actions/core/lib/summary.js","node_modules/@actions/core/src/summary.ts","node_modules/@actions/core/lib/path-utils.js","node_modules/@actions/core/src/path-utils.ts","node_modules/@actions/exec/lib/exec.js","node_modules/@actions/exec/src/exec.ts","node_modules/@actions/exec/lib/toolrunner.js","node_modules/@actions/exec/src/toolrunner.ts","node_modules/@actions/exec/node_modules/@actions/io/lib/io.js","node_modules/@actions/exec/node_modules/@actions/io/src/io.ts","node_modules/@actions/exec/node_modules/@actions/io/lib/io-util.js","node_modules/@actions/exec/node_modules/@actions/io/src/io-util.ts","node_modules/@actions/io/lib/io.js","node_modules/@actions/io/src/io.ts","node_modules/@actions/io/lib/io-util.js","node_modules/@actions/io/src/io-util.ts","node_modules/@actions/tool-cache/lib/tool-cache.js","node_modules/@actions/tool-cache/src/tool-cache.ts","node_modules/@actions/tool-cache/node_modules/@actions/core/lib/core.js","node_modules/@actions/tool-cache/node_modules/@actions/core/src/core.ts","node_modules/@actions/tool-cache/node_modules/@actions/core/lib/command.js","node_modules/@actions/tool-cache/node_modules/@actions/core/src/command.ts","node_modules/@actions/tool-cache/node_modules/@actions/core/lib/utils.js","node_modules/@actions/tool-cache/node_modules/@actions/core/src/utils.ts","node_modules/@actions/tool-cache/node_modules/@actions/core/lib/file-command.js","node_modules/@actions/tool-cache/node_modules/@actions/core/src/file-command.ts","node_modules/@actions/tool-cache/node_modules/@actions/io/lib/io.js","node_modules/@actions/tool-cache/node_modules/@actions/io/src/io.ts","node_modules/@actions/tool-cache/node_modules/@actions/io/lib/io-util.js","node_modules/@actions/tool-cache/node_modules/@actions/io/src/io-util.ts","node_modules/@actions/tool-cache/lib/manifest.js","node_modules/@actions/tool-cache/src/manifest.ts","node_modules/@actions/tool-cache/node_modules/semver/semver.js","node_modules/uuid/v4.js","node_modules/uuid/lib/rng.js","node_modules/uuid/lib/bytesToUuid.js","node_modules/@actions/tool-cache/node_modules/@actions/exec/lib/exec.js","node_modules/@actions/tool-cache/node_modules/@actions/exec/src/exec.ts","node_modules/@actions/tool-cache/node_modules/@actions/exec/lib/toolrunner.js","node_modules/@actions/tool-cache/node_modules/@actions/exec/src/toolrunner.ts","node_modules/@actions/tool-cache/node_modules/@actions/exec/node_modules/@actions/io/lib/io.js","node_modules/@actions/tool-cache/node_modules/@actions/exec/node_modules/@actions/io/src/io.ts","node_modules/@actions/tool-cache/node_modules/@actions/exec/node_modules/@actions/io/lib/io-util.js","node_modules/@actions/tool-cache/node_modules/@actions/exec/node_modules/@actions/io/src/io-util.ts","node_modules/@actions/tool-cache/lib/retry-helper.js","node_modules/@actions/tool-cache/src/retry-helper.ts","assets.json"],"sourcesContent":["import * as core from \"@actions/core\";\nimport * as exec from \"@actions/exec\";\nimport * as io from \"@actions/io\";\nimport * as tc from \"@actions/tool-cache\";\nimport * as path from \"path\";\n\nimport * as ASSETS_JSON from \"./assets.json\";\nconst ASSETS = ASSETS_JSON as Record>>;\n\nexport interface Options {\n version: string;\n arch?: string;\n forceUrl?: string;\n directory: string;\n cached: boolean;\n mirrorUrl?: string;\n auth?: string;\n env: boolean;\n}\n\nfunction getOptions(): Options {\n return {\n version: core.getInput(\"version\"),\n arch: core.getInput(\"arch\"),\n forceUrl: core.getInput(\"force-url\"),\n directory: core.getInput(\"directory\"),\n cached: (core.getInput(\"cached\") ?? \"\").toLowerCase() === \"true\",\n mirrorUrl: core.getInput(\"mirror-url\"),\n auth: core.getInput(\"auth\"),\n env: (core.getInput(\"env\") ?? \"\").toLowerCase() === \"true\",\n };\n}\n\n//================================================\n// Version\n//================================================\n\n/**\n * Gets the specific LLVM versions supported by this action compatible with the\n * supplied (specific or minimum) LLVM version in descending order of release\n * (e.g., `5.0.2`, `5.0.1`, and `5.0.0` for `5`).\n */\nfunction getSpecificVersions(specificVersions: string[], version: string): string[] {\n return Array.from(specificVersions)\n .filter(v => /^\\d+\\.\\d+\\.\\d+$/.test(v) && v.startsWith(`${version}.`))\n .sort()\n .reverse();\n}\n\n//================================================\n// Asset\n//================================================\n\nexport interface Asset {\n readonly specificVersion: string;\n readonly url: string;\n}\n\nexport function getAsset(os: string, options: Options): Asset {\n if (options.forceUrl) {\n console.log(\"Using asset specified by `force-url` option.\");\n return { specificVersion: options.version, url: options.forceUrl };\n }\n\n const arch = options.arch ?? process.arch;\n console.log(`Checking known assets (os=${os}, arch=${arch}, version=${options.version})...`);\n\n const assets = ASSETS[os]?.[arch];\n if (!assets) {\n throw new Error(`Unsupported platform (os=${os}, arch=${arch})!`);\n }\n\n const specificVersions = getSpecificVersions(Object.keys(assets), options.version);\n if (!specificVersions.length) {\n throw new Error(`Unsupported version for platform (os=${os}, arch=${arch}, version=${options.version})!`);\n }\n\n const specificVersion = specificVersions[0];\n const path = ASSETS[os][arch][specificVersion];\n\n let url: string;\n if (options.mirrorUrl) {\n url = `${options.mirrorUrl}${path}`;\n } else {\n url = `https://github.com/llvm/llvm-project/releases/download/llvmorg-${specificVersion}${path}`;\n }\n\n return { specificVersion, url };\n}\n\n//================================================\n// Action\n//================================================\n\nconst DEFAULT_NIX_DIRECTORY = \"./llvm\";\nconst DEFAULT_WIN32_DIRECTORY = \"C:/Program Files/LLVM\";\n\nasync function install(options: Options): Promise {\n const os = process.platform;\n const { specificVersion, url } = getAsset(os, options);\n core.setOutput(\"version\", specificVersion);\n\n console.log(`Installing LLVM and Clang ${options.version} (${specificVersion})...`);\n console.log(`Downloading and extracting '${url}'...`);\n const archive = await tc.downloadTool(url, \"\", options.auth);\n\n let exit;\n if (os === \"win32\") {\n exit = await exec.exec(\"7z\", [\"x\", archive, `-o${options.directory}`, \"-y\"]);\n } else {\n await io.mkdirP(options.directory);\n exit = await exec.exec(\"tar\", [\"xf\", archive, \"-C\", options.directory, \"--strip-components=1\"]);\n }\n\n if (exit !== 0) {\n throw new Error(\"Could not extract LLVM and Clang binaries.\");\n }\n\n core.info(`Installed LLVM and Clang ${options.version} (${specificVersion})!`);\n core.info(`Install location: ${options.directory}`);\n}\n\nasync function run(options: Options): Promise {\n if (!options.directory) {\n options.directory = process.platform === \"win32\" ? DEFAULT_WIN32_DIRECTORY : DEFAULT_NIX_DIRECTORY;\n }\n\n options.directory = path.resolve(options.directory);\n\n if (options.cached) {\n console.log(`Using cached LLVM and Clang ${options.version}...`);\n } else {\n await install(options);\n }\n\n const bin = path.join(options.directory, \"bin\");\n const lib = path.join(options.directory, \"lib\");\n\n core.addPath(bin);\n\n const ld = process.env.LD_LIBRARY_PATH ?? \"\";\n const dyld = process.env.DYLD_LIBRARY_PATH ?? \"\";\n\n core.exportVariable(\"LLVM_PATH\", options.directory);\n core.exportVariable(\"LD_LIBRARY_PATH\", `${lib}${path.delimiter}${ld}`);\n core.exportVariable(\"DYLD_LIBRARY_PATH\", `${lib}${path.delimiter}${dyld}`);\n\n if (options.env) {\n core.exportVariable(\"CC\", path.join(options.directory, \"bin\", \"clang\"));\n core.exportVariable(\"CXX\", path.join(options.directory, \"bin\", \"clang++\"));\n }\n}\n\nasync function main() {\n try {\n await run(getOptions());\n } catch (error: any) {\n console.error(error.stack);\n core.setFailed(error.message);\n }\n}\n\nif (require.main === module) {\n main();\n}\n",null,null,null,null,null,null,null,null,"import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","import crypto from 'crypto';\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\nexport default function rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n crypto.randomFillSync(rnds8Pool);\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;",null,null,null,null,null,null,"module.exports = require('./lib/tunnel');\n","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n debug = function () {\n var args = Array.prototype.slice.call(arguments, 0)\n args.unshift('SEMVER')\n console.log.apply(console, args)\n }\n} else {\n debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar src = exports.src = []\nvar t = exports.tokens = {}\nvar R = 0\n\nfunction tok (n) {\n t[n] = R++\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ntok('NUMERICIDENTIFIER')\nsrc[t.NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\ntok('NUMERICIDENTIFIERLOOSE')\nsrc[t.NUMERICIDENTIFIERLOOSE] = '[0-9]+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ntok('NONNUMERICIDENTIFIER')\nsrc[t.NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ntok('MAINVERSION')\nsrc[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')'\n\ntok('MAINVERSIONLOOSE')\nsrc[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ntok('PRERELEASEIDENTIFIER')\nsrc[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\ntok('PRERELEASEIDENTIFIERLOOSE')\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ntok('PRERELEASE')\nsrc[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'\n\ntok('PRERELEASELOOSE')\nsrc[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ntok('BUILDIDENTIFIER')\nsrc[t.BUILDIDENTIFIER] = '[0-9A-Za-z-]+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ntok('BUILD')\nsrc[t.BUILD] = '(?:\\\\+(' + src[t.BUILDIDENTIFIER] +\n '(?:\\\\.' + src[t.BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ntok('FULL')\ntok('FULLPLAIN')\nsrc[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +\n src[t.PRERELEASE] + '?' +\n src[t.BUILD] + '?'\n\nsrc[t.FULL] = '^' + src[t.FULLPLAIN] + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok('LOOSEPLAIN')\nsrc[t.LOOSEPLAIN] = '[v=\\\\s]*' + src[t.MAINVERSIONLOOSE] +\n src[t.PRERELEASELOOSE] + '?' +\n src[t.BUILD] + '?'\n\ntok('LOOSE')\nsrc[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'\n\ntok('GTLT')\nsrc[t.GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok('XRANGEIDENTIFIERLOOSE')\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\ntok('XRANGEIDENTIFIER')\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\ntok('XRANGEPLAIN')\nsrc[t.XRANGEPLAIN] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:' + src[t.PRERELEASE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGEPLAINLOOSE')\nsrc[t.XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:' + src[t.PRERELEASELOOSE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGE')\nsrc[t.XRANGE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAIN] + '$'\ntok('XRANGELOOSE')\nsrc[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok('COERCE')\nsrc[t.COERCE] = '(^|[^\\\\d])' +\n '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:$|[^\\\\d])'\ntok('COERCERTL')\nre[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok('LONETILDE')\nsrc[t.LONETILDE] = '(?:~>?)'\n\ntok('TILDETRIM')\nsrc[t.TILDETRIM] = '(\\\\s*)' + src[t.LONETILDE] + '\\\\s+'\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')\nvar tildeTrimReplace = '$1~'\n\ntok('TILDE')\nsrc[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'\ntok('TILDELOOSE')\nsrc[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok('LONECARET')\nsrc[t.LONECARET] = '(?:\\\\^)'\n\ntok('CARETTRIM')\nsrc[t.CARETTRIM] = '(\\\\s*)' + src[t.LONECARET] + '\\\\s+'\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')\nvar caretTrimReplace = '$1^'\n\ntok('CARET')\nsrc[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'\ntok('CARETLOOSE')\nsrc[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok('COMPARATORLOOSE')\nsrc[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'\ntok('COMPARATOR')\nsrc[t.COMPARATOR] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.FULLPLAIN] + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok('COMPARATORTRIM')\nsrc[t.COMPARATORTRIM] = '(\\\\s*)' + src[t.GTLT] +\n '\\\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok('HYPHENRANGE')\nsrc[t.HYPHENRANGE] = '^\\\\s*(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s*$'\n\ntok('HYPHENRANGELOOSE')\nsrc[t.HYPHENRANGELOOSE] = '^\\\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\ntok('STAR')\nsrc[t.STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n debug(i, src[i])\n if (!re[i]) {\n re[i] = new RegExp(src[i])\n }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n var r = options.loose ? re[t.LOOSE] : re[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n var v = parse(version, options)\n return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === options.loose) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n }\n\n if (!(this instanceof SemVer)) {\n return new SemVer(version, options)\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n\n var m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map(function (id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n}\n\nSemVer.prototype.format = function () {\n this.version = this.major + '.' + this.minor + '.' + this.patch\n if (this.prerelease.length) {\n this.version += '-' + this.prerelease.join('.')\n }\n return this.version\n}\n\nSemVer.prototype.toString = function () {\n return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n var i = 0\n do {\n var a = this.prerelease[i]\n var b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\nSemVer.prototype.compareBuild = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n var i = 0\n do {\n var a = this.build[i]\n var b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n var i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error('invalid increment argument: ' + release)\n }\n this.format()\n this.raw = this.version\n return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n if (typeof (loose) === 'string') {\n identifier = loose\n loose = undefined\n }\n\n try {\n return new SemVer(version, loose).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n if (eq(version1, version2)) {\n return null\n } else {\n var v1 = parse(version1)\n var v2 = parse(version2)\n var prefix = ''\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = 'pre'\n var defaultResult = 'prerelease'\n }\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n var anum = numeric.test(a)\n var bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n return compare(a, b, true)\n}\n\nexports.compareBuild = compareBuild\nfunction compareBuild (a, b, loose) {\n var versionA = new SemVer(a, loose)\n var versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(a, b, loose)\n })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(b, a, loose)\n })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError('Invalid operator: ' + op)\n }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n if (!(this instanceof Comparator)) {\n return new Comparator(comp, options)\n }\n\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n var r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n var m = comp.match(r)\n\n if (!m) {\n throw new TypeError('Invalid comparator: ' + comp)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n}\n\nComparator.prototype.toString = function () {\n return this.value\n}\n\nComparator.prototype.test = function (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n var rangeTmp\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n rangeTmp = new Range(comp.value, options)\n return satisfies(this.value, rangeTmp, options)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n rangeTmp = new Range(this.value, options)\n return satisfies(comp.semver, rangeTmp, options)\n }\n\n var sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n var sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n var sameSemVer = this.semver.version === comp.semver.version\n var differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n var oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n ((this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<'))\n var oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n ((this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>'))\n\n return sameDirectionIncreasing || sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n return new Range(range.value, options)\n }\n\n if (!(this instanceof Range)) {\n return new Range(range, options)\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First, split based on boolean or ||\n this.raw = range\n this.set = range.split(/\\s*\\|\\|\\s*/).map(function (range) {\n return this.parseRange(range.trim())\n }, this).filter(function (c) {\n // throw out any that are not relevant for whatever reason\n return c.length\n })\n\n if (!this.set.length) {\n throw new TypeError('Invalid SemVer Range: ' + range)\n }\n\n this.format()\n}\n\nRange.prototype.format = function () {\n this.range = this.set.map(function (comps) {\n return comps.join(' ').trim()\n }).join('||').trim()\n return this.range\n}\n\nRange.prototype.toString = function () {\n return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n var loose = this.options.loose\n range = range.trim()\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace)\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, re[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n var compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n var set = range.split(' ').map(function (comp) {\n return parseComparator(comp, this.options)\n }, this).join(' ').split(/\\s+/)\n if (this.options.loose) {\n // in loose mode, throw out any that are not valid comparators\n set = set.filter(function (comp) {\n return !!comp.match(compRe)\n })\n }\n set = set.map(function (comp) {\n return new Comparator(comp, this.options)\n }, this)\n\n return set\n}\n\nRange.prototype.intersects = function (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some(function (thisComparators) {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some(function (rangeComparators) {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every(function (thisComparator) {\n return rangeComparators.every(function (rangeComparator) {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n}\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable (comparators, options) {\n var result = true\n var remainingComparators = comparators.slice()\n var testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every(function (otherComparator) {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n return new Range(range, options).set.map(function (comp) {\n return comp.map(function (c) {\n return c.value\n }).join(' ').trim().split(' ')\n })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nfunction isX (id) {\n return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceTilde(comp, options)\n }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n var r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('tilde', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceCaret(comp, options)\n }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n debug('caret', comp, options)\n var r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('caret', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n if (M === '0') {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else {\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + (+M + 1) + '.0.0'\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0'\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nfunction replaceXRanges (comp, options) {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map(function (comp) {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n comp = comp.trim()\n var r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n var xM = isX(M)\n var xm = xM || isX(m)\n var xp = xm || isX(p)\n var anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n ret = gtlt + M + '.' + m + '.' + p + pr\n } else if (xm) {\n ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0' + pr +\n ' <' + M + '.' + (+m + 1) + '.0' + pr\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[t.STAR], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = '>=' + fM + '.0.0'\n } else if (isX(fp)) {\n from = '>=' + fM + '.' + fm + '.0'\n } else {\n from = '>=' + from\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = '<' + (+tM + 1) + '.0.0'\n } else if (isX(tp)) {\n to = '<' + tM + '.' + (+tm + 1) + '.0'\n } else if (tpr) {\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n } else {\n to = '<=' + to\n }\n\n return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n}\n\nfunction testSet (set, version, options) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n var max = null\n var maxSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n var min = null\n var minSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n range = new Range(range, loose)\n\n var minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n comparators.forEach(function (comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error('Unexpected operation: ' + comparator.operator)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n var gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n var high = null\n var low = null\n\n comparators.forEach(function (comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n var parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version, options) {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n var match = null\n if (!options.rtl) {\n match = version.match(re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next\n while ((next = re[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n re[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(match[2] +\n '.' + (match[3] || '0') +\n '.' + (match[4] || '0'), options)\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nvar crypto = require('crypto');\n\nmodule.exports = function nodeRNG() {\n return crypto.randomBytes(16);\n};\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n",null,null,null,null,null,null,null,null,null,null,"{\n \"linux\": {\n \"arm64\": {\n \"18.1.2\": \"/clang%2Bllvm-18.1.2-aarch64-linux-gnu.tar.xz\",\n \"18.1.1\": \"/clang%2Bllvm-18.1.1-aarch64-linux-gnu.tar.xz\",\n \"18.1.0\": \"/clang%2Bllvm-18.1.0-aarch64-linux-gnu.tar.xz\",\n \"17.0.6\": \"/clang%2Bllvm-17.0.6-aarch64-linux-gnu.tar.xz\",\n \"17.0.5\": \"/clang%2Bllvm-17.0.5-aarch64-linux-gnu.tar.xz\",\n \"17.0.4\": \"/clang%2Bllvm-17.0.4-aarch64-linux-gnu.tar.xz\",\n \"17.0.3\": \"/clang%2Bllvm-17.0.3-aarch64-linux-gnu.tar.xz\",\n \"17.0.2\": \"/clang%2Bllvm-17.0.2-aarch64-linux-gnu.tar.xz\",\n \"17.0.1\": \"/clang%2Bllvm-17.0.1-aarch64-linux-gnu.tar.xz\",\n \"16.0.6\": \"/clang%2Bllvm-16.0.6-aarch64-linux-gnu.tar.xz\",\n \"16.0.5\": \"/clang%2Bllvm-16.0.5-aarch64-linux-gnu.tar.xz\",\n \"16.0.4\": \"/clang%2Bllvm-16.0.4-aarch64-linux-gnu.tar.xz\",\n \"16.0.3\": \"/clang%2Bllvm-16.0.3-aarch64-linux-gnu.tar.xz\",\n \"16.0.2\": \"/clang%2Bllvm-16.0.2-aarch64-linux-gnu.tar.xz\",\n \"16.0.1\": \"/clang%2Bllvm-16.0.1-aarch64-linux-gnu.tar.xz\",\n \"16.0.0\": \"/clang%2Bllvm-16.0.0-aarch64-linux-gnu.tar.xz\",\n \"15.0.6\": \"/clang%2Bllvm-15.0.6-aarch64-linux-gnu.tar.xz\",\n \"15.0.3\": \"/clang%2Bllvm-15.0.3-aarch64-linux-gnu.tar.xz\",\n \"15.0.2\": \"/clang%2Bllvm-15.0.2-aarch64-linux-gnu.tar.xz\",\n \"15.0.1\": \"/clang%2Bllvm-15.0.1-aarch64-linux-gnu.tar.xz\",\n \"15.0.0\": \"/clang%2Bllvm-15.0.0-aarch64-linux-gnu.tar.xz\",\n \"14.0.6\": \"/clang%2Bllvm-14.0.6-aarch64-linux-gnu.tar.xz\",\n \"14.0.5\": \"/clang%2Bllvm-14.0.5-aarch64-linux-gnu.tar.xz\",\n \"14.0.4\": \"/clang%2Bllvm-14.0.4-aarch64-linux-gnu.tar.xz\",\n \"14.0.3\": \"/clang%2Bllvm-14.0.3-aarch64-linux-gnu.tar.xz\",\n \"14.0.2\": \"/clang%2Bllvm-14.0.2-aarch64-linux-gnu.tar.xz\",\n \"14.0.1\": \"/clang%2Bllvm-14.0.1-aarch64-linux-gnu.tar.xz\",\n \"14.0.0\": \"/clang%2Bllvm-14.0.0-aarch64-linux-gnu.tar.xz\",\n \"13.0.1\": \"/clang%2Bllvm-13.0.1-aarch64-linux-gnu.tar.xz\",\n \"13.0.0\": \"/clang%2Bllvm-13.0.0-aarch64-linux-gnu.tar.xz\",\n \"12.0.1\": \"/clang%2Bllvm-12.0.1-aarch64-linux-gnu.tar.xz\",\n \"12.0.0\": \"/clang%2Bllvm-12.0.0-aarch64-linux-gnu.tar.xz\",\n \"11.1.0\": \"/clang%2Bllvm-11.1.0-aarch64-linux-gnu.tar.xz\",\n \"11.0.1\": \"/clang%2Bllvm-11.0.1-aarch64-linux-gnu.tar.xz\",\n \"11.0.0\": \"/clang%2Bllvm-11.0.0-aarch64-linux-gnu.tar.xz\",\n \"10.0.1\": \"/clang%2Bllvm-10.0.1-aarch64-linux-gnu.tar.xz\",\n \"10.0.0\": \"/clang%2Bllvm-10.0.0-aarch64-linux-gnu.tar.xz\",\n \"9.0.1\": \"/clang%2Bllvm-9.0.1-aarch64-linux-gnu.tar.xz\",\n \"8.0.1\": \"/clang%2Bllvm-8.0.1-aarch64-linux-gnu.tar.xz\",\n \"7.1.0\": \"/clang%2Bllvm-7.1.0-aarch64-linux-gnu.tar.xz\"\n },\n \"x64\": {\n \"17.0.6\": \"/clang%2Bllvm-17.0.6-x86_64-linux-gnu-ubuntu-22.04.tar.xz\",\n \"17.0.5\": \"/clang%2Bllvm-17.0.5-x86_64-linux-gnu-ubuntu-22.04.tar.xz\",\n \"17.0.4\": \"/clang%2Bllvm-17.0.4-x86_64-linux-gnu-ubuntu-22.04.tar.xz\",\n \"17.0.2\": \"/clang%2Bllvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xz\",\n \"16.0.4\": \"/clang%2Bllvm-16.0.4-x86_64-linux-gnu-ubuntu-22.04.tar.xz\",\n \"16.0.3\": \"/clang%2Bllvm-16.0.3-x86_64-linux-gnu-ubuntu-22.04.tar.xz\",\n \"16.0.2\": \"/clang%2Bllvm-16.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xz\",\n \"16.0.0\": \"/clang%2Bllvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz\",\n \"15.0.6\": \"/clang%2Bllvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04.tar.xz\",\n \"15.0.5\": \"/clang%2Bllvm-15.0.5-x86_64-linux-gnu-ubuntu-18.04.tar.xz\",\n \"14.0.0\": \"/clang%2Bllvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz\",\n \"13.0.1\": \"/clang%2Bllvm-13.0.1-x86_64-linux-gnu-ubuntu-18.04.tar.xz\",\n \"13.0.0\": \"/clang%2Bllvm-13.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz\",\n \"12.0.1\": \"/clang%2Bllvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz\",\n \"12.0.0\": \"/clang%2Bllvm-12.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz\",\n \"11.1.0\": \"/clang%2Bllvm-11.1.0-x86_64-linux-gnu-ubuntu-20.10.tar.xz\",\n \"11.0.1\": \"/clang%2Bllvm-11.0.1-x86_64-linux-gnu-ubuntu-20.10.tar.xz\",\n \"11.0.0\": \"/clang%2Bllvm-11.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz\",\n \"10.0.1\": \"/clang%2Bllvm-10.0.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz\",\n \"10.0.0\": \"/clang%2Bllvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz\",\n \"9.0.1\": \"/clang%2Bllvm-9.0.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz\",\n \"8.0.1\": \"/clang%2Bllvm-8.0.1-x86_64-linux-gnu-ubuntu-14.04.tar.xz\",\n \"7.1.0\": \"/clang%2Bllvm-7.1.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz\"\n }\n },\n \"win32\": {\n \"x64\": {\n \"18.1.2\": \"/LLVM-18.1.2-win64.exe\",\n \"18.1.1\": \"/LLVM-18.1.1-win64.exe\",\n \"18.1.0\": \"/LLVM-18.1.0-win64.exe\",\n \"17.0.6\": \"/LLVM-17.0.6-win64.exe\",\n \"17.0.5\": \"/LLVM-17.0.5-win64.exe\",\n \"17.0.4\": \"/LLVM-17.0.4-win64.exe\",\n \"17.0.3\": \"/LLVM-17.0.3-win64.exe\",\n \"17.0.2\": \"/LLVM-17.0.2-win64.exe\",\n \"17.0.1\": \"/LLVM-17.0.1-win64.exe\",\n \"16.0.6\": \"/LLVM-16.0.6-win64.exe\",\n \"16.0.5\": \"/LLVM-16.0.5-win64.exe\",\n \"16.0.4\": \"/LLVM-16.0.4-win64.exe\",\n \"16.0.3\": \"/LLVM-16.0.3-win64.exe\",\n \"16.0.2\": \"/LLVM-16.0.2-win64.exe\",\n \"16.0.1\": \"/LLVM-16.0.1-win64.exe\",\n \"16.0.0\": \"/LLVM-16.0.0-win64.exe\",\n \"15.0.7\": \"/LLVM-15.0.7-win64.exe\",\n \"15.0.6\": \"/LLVM-15.0.6-win64.exe\",\n \"15.0.5\": \"/LLVM-15.0.5-win64.exe\",\n \"15.0.4\": \"/LLVM-15.0.4-win64.exe\",\n \"15.0.3\": \"/LLVM-15.0.3-win64.exe\",\n \"15.0.2\": \"/LLVM-15.0.2-win64.exe\",\n \"15.0.1\": \"/LLVM-15.0.1-win64.exe\",\n \"15.0.0\": \"/LLVM-15.0.0-win64.exe\",\n \"14.0.6\": \"/LLVM-14.0.6-win64.exe\",\n \"14.0.5\": \"/LLVM-14.0.5-win64.exe\",\n \"14.0.4\": \"/LLVM-14.0.4-win64.exe\",\n \"14.0.3\": \"/LLVM-14.0.3-win64.exe\",\n \"14.0.2\": \"/LLVM-14.0.2-win64.exe\",\n \"14.0.1\": \"/LLVM-14.0.1-win64.exe\",\n \"14.0.0\": \"/LLVM-14.0.0-win64.exe\",\n \"13.0.1\": \"/LLVM-13.0.1-win64.exe\",\n \"13.0.0\": \"/LLVM-13.0.0-win64.exe\",\n \"12.0.1\": \"/LLVM-12.0.1-win64.exe\",\n \"12.0.0\": \"/LLVM-12.0.0-win64.exe\",\n \"11.1.0\": \"/LLVM-11.1.0-win64.exe\",\n \"11.0.1\": \"/LLVM-11.0.1-win64.exe\",\n \"11.0.0\": \"/LLVM-11.0.0-win64.exe\",\n \"10.0.0\": \"/LLVM-10.0.0-win64.exe\",\n \"9.0.1\": \"/LLVM-9.0.1-win64.exe\",\n \"8.0.1\": \"/LLVM-8.0.1-win64.exe\",\n \"7.1.0\": \"/LLVM-7.1.0-win64.exe\"\n },\n \"arm64\": {\n \"18.1.2\": \"/LLVM-18.1.2-woa64.exe\",\n \"18.1.1\": \"/LLVM-18.1.1-woa64.exe\",\n \"18.1.0\": \"/LLVM-18.1.0-woa64.exe\",\n \"17.0.6\": \"/LLVM-17.0.6-woa64.exe\",\n \"17.0.5\": \"/LLVM-17.0.5-woa64.exe\",\n \"17.0.4\": \"/LLVM-17.0.4-woa64.exe\",\n \"17.0.3\": \"/LLVM-17.0.3-woa64.exe\",\n \"17.0.2\": \"/LLVM-17.0.2-woa64.exe\",\n \"17.0.1\": \"/LLVM-17.0.1-woa64.exe\",\n \"16.0.6\": \"/LLVM-16.0.6-woa64.exe\",\n \"16.0.5\": \"/LLVM-16.0.5-woa64.exe\",\n \"16.0.4\": \"/LLVM-16.0.4-woa64.exe\",\n \"16.0.3\": \"/LLVM-16.0.3-woa64.exe\",\n \"16.0.2\": \"/LLVM-16.0.2-woa64.exe\",\n \"16.0.1\": \"/LLVM-16.0.1-woa64.exe\",\n \"16.0.0\": \"/LLVM-16.0.0-woa64.exe\",\n \"15.0.6\": \"/LLVM-15.0.6-woa64.exe\",\n \"15.0.3\": \"/LLVM-15.0.3-woa64.exe\",\n \"15.0.2\": \"/LLVM-15.0.2-woa64.exe\",\n \"15.0.1\": \"/LLVM-15.0.1-woa64.exe\",\n \"15.0.0\": \"/LLVM-15.0.0-woa64.exe\",\n \"12.0.0\": \"/LLVM-12.0.0-woa64.exe\"\n }\n },\n \"darwin\": {\n \"arm64\": {\n \"17.0.6\": \"/clang%2Bllvm-17.0.6-arm64-apple-darwin22.0.tar.xz\",\n \"17.0.5\": \"/clang%2Bllvm-17.0.5-arm64-apple-darwin22.0.tar.xz\",\n \"17.0.4\": \"/clang%2Bllvm-17.0.4-arm64-apple-darwin22.0.tar.xz\",\n \"17.0.3\": \"/clang%2Bllvm-17.0.3-arm64-apple-darwin22.0.tar.xz\",\n \"17.0.2\": \"/clang%2Bllvm-17.0.2-arm64-apple-darwin22.0.tar.xz\",\n \"17.0.1\": \"/clang%2Bllvm-17.0.1-arm64-apple-darwin22.0.tar.xz\",\n \"16.0.5\": \"/clang%2Bllvm-16.0.5-arm64-apple-darwin22.0.tar.xz\",\n \"16.0.4\": \"/clang%2Bllvm-16.0.4-arm64-apple-darwin22.0.tar.xz\",\n \"16.0.3\": \"/clang%2Bllvm-16.0.3-arm64-apple-darwin22.0.tar.xz\",\n \"16.0.2\": \"/clang%2Bllvm-16.0.2-arm64-apple-darwin22.0.tar.xz\",\n \"16.0.1\": \"/clang%2Bllvm-16.0.1-arm64-apple-darwin22.0.tar.xz\",\n \"16.0.0\": \"/clang%2Bllvm-16.0.0-arm64-apple-darwin22.0.tar.xz\",\n \"15.0.7\": \"/clang%2Bllvm-15.0.7-arm64-apple-darwin22.0.tar.xz\",\n \"15.0.6\": \"/clang%2Bllvm-15.0.6-arm64-apple-darwin21.0.tar.xz\",\n \"15.0.5\": \"/clang%2Bllvm-15.0.5-arm64-apple-darwin21.0.tar.xz\",\n \"15.0.4\": \"/clang%2Bllvm-15.0.4-arm64-apple-darwin21.0.tar.xz\",\n \"15.0.3\": \"/clang%2Bllvm-15.0.3-arm64-apple-darwin21.0.tar.xz\",\n \"15.0.2\": \"/clang%2Bllvm-15.0.2-arm64-apple-darwin21.0.tar.xz\",\n \"15.0.1\": \"/clang%2Bllvm-15.0.1-arm64-apple-darwin21.0.tar.xz\",\n \"15.0.0\": \"/clang%2Bllvm-15.0.0-arm64-apple-darwin21.0.tar.xz\",\n \"14.0.6\": \"/clang%2Bllvm-14.0.6-arm64-apple-darwin22.3.0.tar.xz\"\n },\n \"x64\": {\n \"15.0.7\": \"/clang%2Bllvm-15.0.7-x86_64-apple-darwin21.0.tar.xz\",\n \"15.0.4\": \"/clang%2Bllvm-15.0.4-x86_64-apple-darwin.tar.xz\",\n \"15.0.3\": \"/clang%2Bllvm-15.0.3-x86_64-apple-darwin.tar.xz\",\n \"15.0.2\": \"/clang%2Bllvm-15.0.2-x86_64-apple-darwin.tar.xz\",\n \"15.0.1\": \"/clang%2Bllvm-15.0.1-x86_64-apple-darwin.tar.xz\",\n \"15.0.0\": \"/clang%2Bllvm-15.0.0-x86_64-apple-darwin.tar.xz\",\n \"14.0.6\": \"/clang%2Bllvm-14.0.6-x86_64-apple-darwin.tar.xz\",\n \"14.0.5\": \"/clang%2Bllvm-14.0.5-x86_64-apple-darwin.tar.xz\",\n \"14.0.4\": \"/clang%2Bllvm-14.0.4-x86_64-apple-darwin.tar.xz\",\n \"14.0.3\": \"/clang%2Bllvm-14.0.3-x86_64-apple-darwin.tar.xz\",\n \"14.0.2\": \"/clang%2Bllvm-14.0.2-x86_64-apple-darwin.tar.xz\",\n \"14.0.1\": \"/clang%2Bllvm-14.0.1-x86_64-apple-darwin.tar.xz\",\n \"14.0.0\": \"/clang%2Bllvm-14.0.0-x86_64-apple-darwin.tar.xz\",\n \"13.0.1\": \"/clang%2Bllvm-13.0.1-x86_64-apple-darwin.tar.xz\",\n \"13.0.0\": \"/clang%2Bllvm-13.0.0-x86_64-apple-darwin.tar.xz\",\n \"12.0.0\": \"/clang%2Bllvm-12.0.0-x86_64-apple-darwin.tar.xz\",\n \"11.0.0\": \"/clang%2Bllvm-11.0.0-x86_64-apple-darwin.tar.xz\",\n \"10.0.1\": \"/clang%2Bllvm-10.0.1-x86_64-apple-darwin.tar.xz\",\n \"10.0.0\": \"/clang%2Bllvm-10.0.0-x86_64-apple-darwin.tar.xz\",\n \"9.0.1\": \"/clang%2Bllvm-9.0.1-x86_64-apple-darwin.tar.xz\"\n }\n }\n}"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../"} \ No newline at end of file diff --git a/dist/index.js b/dist/main.js similarity index 90% rename from dist/index.js rename to dist/main.js index 800abc1..6a8dc9d 100644 --- a/dist/index.js +++ b/dist/main.js @@ -1,18 +1,18 @@ -var $kzVu7$path = require("path"); -var $kzVu7$os = require("os"); -var $kzVu7$fs = require("fs"); -var $kzVu7$crypto = require("crypto"); -var $kzVu7$http = require("http"); -var $kzVu7$https = require("https"); +var $bknAJ$http = require("http"); +var $bknAJ$https = require("https"); require("net"); -var $kzVu7$tls = require("tls"); -var $kzVu7$events = require("events"); -var $kzVu7$assert = require("assert"); -var $kzVu7$util = require("util"); -var $kzVu7$string_decoder = require("string_decoder"); -var $kzVu7$child_process = require("child_process"); -var $kzVu7$timers = require("timers"); -var $kzVu7$stream = require("stream"); +var $bknAJ$tls = require("tls"); +var $bknAJ$events = require("events"); +var $bknAJ$assert = require("assert"); +var $bknAJ$util = require("util"); +var $bknAJ$os = require("os"); +var $bknAJ$child_process = require("child_process"); +var $bknAJ$path = require("path"); +var $bknAJ$timers = require("timers"); +var $bknAJ$fs = require("fs"); +var $bknAJ$crypto = require("crypto"); +var $bknAJ$string_decoder = require("string_decoder"); +var $bknAJ$stream = require("stream"); function $parcel$export(e, n, v, s) { Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true}); @@ -58,132 +58,9 @@ if (parcelRequire == null) { $parcel$global["parcelRequirea88d"] = parcelRequire; } -parcelRequire.register("5QGG7", function(module, exports) { - -$parcel$export(module.exports, "getAsset", () => getAsset, (v) => getAsset = v); - -var $iL6dd = parcelRequire("iL6dd"); - -var $kRojK = parcelRequire("kRojK"); - -var $7C30t = parcelRequire("7C30t"); - -var $jttxK = parcelRequire("jttxK"); - - -var $ldDhk = parcelRequire("ldDhk"); -const ASSETS = $ldDhk; -function getOptions() { - return { - version: $iL6dd.getInput("version"), - arch: $iL6dd.getInput("arch"), - forceUrl: $iL6dd.getInput("force-url"), - directory: $iL6dd.getInput("directory"), - cached: ($iL6dd.getInput("cached") ?? "").toLowerCase() === "true", - mirrorUrl: $iL6dd.getInput("mirror-url"), - auth: $iL6dd.getInput("auth"), - env: ($iL6dd.getInput("env") ?? "").toLowerCase() === "true" - }; -} -//================================================ -// Version -//================================================ -/** - * Gets the specific LLVM versions supported by this action compatible with the - * supplied (specific or minimum) LLVM version in descending order of release - * (e.g., `5.0.2`, `5.0.1`, and `5.0.0` for `5`). - */ function getSpecificVersions(specificVersions, version) { - return Array.from(specificVersions).filter((v)=>/^\d+\.\d+\.\d+$/.test(v) && v.startsWith(`${version}.`)).sort().reverse(); -} -function getAsset(os, options) { - if (options.forceUrl) { - console.log("Using asset specified by `force-url` option."); - return { - specificVersion: options.version, - url: options.forceUrl - }; - } - const arch = options.arch ?? process.arch; - console.log(`Checking known assets (os=${os}, arch=${arch}, version=${options.version})...`); - const assets = ASSETS[os]?.[arch]; - if (!assets) throw new Error(`Unsupported platform (os=${os}, arch=${arch})!`); - const specificVersions = getSpecificVersions(Object.keys(assets), options.version); - if (!specificVersions.length) throw new Error(`Unsupported version for platform (os=${os}, arch=${arch}, version=${options.version})!`); - const specificVersion = specificVersions[0]; - const path = ASSETS[os][arch][specificVersion]; - let url; - if (options.mirrorUrl) url = `${options.mirrorUrl}${path}`; - else url = `https://github.com/llvm/llvm-project/releases/download/llvmorg-${specificVersion}${path}`; - return { - specificVersion: specificVersion, - url: url - }; -} -//================================================ -// Action -//================================================ -const DEFAULT_NIX_DIRECTORY = "./llvm"; -const DEFAULT_WIN32_DIRECTORY = "C:/Program Files/LLVM"; -async function install(options) { - const os = process.platform; - const { specificVersion, url } = getAsset(os, options); - $iL6dd.setOutput("version", specificVersion); - console.log(`Installing LLVM and Clang ${options.version} (${specificVersion})...`); - console.log(`Downloading and extracting '${url}'...`); - const archive = await $jttxK.downloadTool(url, "", options.auth); - let exit; - if (os === "win32") exit = await $kRojK.exec("7z", [ - "x", - archive, - `-o${options.directory}`, - "-y" - ]); - else { - await $7C30t.mkdirP(options.directory); - exit = await $kRojK.exec("tar", [ - "xf", - archive, - "-C", - options.directory, - "--strip-components=1" - ]); - } - if (exit !== 0) throw new Error("Could not extract LLVM and Clang binaries."); - $iL6dd.info(`Installed LLVM and Clang ${options.version} (${specificVersion})!`); - $iL6dd.info(`Install location: ${options.directory}`); -} -async function run(options) { - if (!options.directory) options.directory = process.platform === "win32" ? DEFAULT_WIN32_DIRECTORY : DEFAULT_NIX_DIRECTORY; - options.directory = $kzVu7$path.resolve(options.directory); - if (options.cached) console.log(`Using cached LLVM and Clang ${options.version}...`); - else await install(options); - const bin = $kzVu7$path.join(options.directory, "bin"); - const lib = $kzVu7$path.join(options.directory, "lib"); - $iL6dd.addPath(bin); - const ld = process.env.LD_LIBRARY_PATH ?? ""; - const dyld = process.env.DYLD_LIBRARY_PATH ?? ""; - $iL6dd.exportVariable("LLVM_PATH", options.directory); - $iL6dd.exportVariable("LD_LIBRARY_PATH", `${lib}${$kzVu7$path.delimiter}${ld}`); - $iL6dd.exportVariable("DYLD_LIBRARY_PATH", `${lib}${$kzVu7$path.delimiter}${dyld}`); - if (options.env) { - $iL6dd.exportVariable("CC", $kzVu7$path.join(options.directory, "bin", "clang")); - $iL6dd.exportVariable("CXX", $kzVu7$path.join(options.directory, "bin", "clang++")); - } -} -async function main() { - try { - await run(getOptions()); - } catch (error) { - console.error(error.stack); - $iL6dd.setFailed(error.message); - } -} -if (undefined === module) main(); - -}); -parcelRequire.register("iL6dd", function(module, exports) { +parcelRequire.register("8tmdd", function(module, exports) { "use strict"; -var $da816f606135dc7c$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) { +/* eslint-disable @typescript-eslint/no-explicit-any */ var $62b24303e3aed667$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, @@ -195,7 +72,7 @@ var $da816f606135dc7c$var$__createBinding = module.exports && module.exports.__c if (k2 === undefined) k2 = k; o[k2] = m[k]; }); -var $da816f606135dc7c$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) { +var $62b24303e3aed667$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v @@ -203,16 +80,16 @@ var $da816f606135dc7c$var$__setModuleDefault = module.exports && module.exports. } : function(o, v) { o["default"] = v; }); -var $da816f606135dc7c$var$__importStar = module.exports && module.exports.__importStar || function(mod) { +var $62b24303e3aed667$var$__importStar = module.exports && module.exports.__importStar || function(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) { - for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $da816f606135dc7c$var$__createBinding(result, mod, k); + for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $62b24303e3aed667$var$__createBinding(result, mod, k); } - $da816f606135dc7c$var$__setModuleDefault(result, mod); + $62b24303e3aed667$var$__setModuleDefault(result, mod); return result; }; -var $da816f606135dc7c$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { +var $62b24303e3aed667$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve) { resolve(value); @@ -242,1498 +119,1295 @@ var $da816f606135dc7c$var$__awaiter = module.exports && module.exports.__awaiter Object.defineProperty(module.exports, "__esModule", { value: true }); -module.exports.getIDToken = module.exports.getState = module.exports.saveState = module.exports.group = module.exports.endGroup = module.exports.startGroup = module.exports.info = module.exports.notice = module.exports.warning = module.exports.error = module.exports.debug = module.exports.isDebug = module.exports.setFailed = module.exports.setCommandEcho = module.exports.setOutput = module.exports.getBooleanInput = module.exports.getMultilineInput = module.exports.getInput = module.exports.addPath = module.exports.setSecret = module.exports.exportVariable = module.exports.ExitCode = void 0; - -var $eAP0b = parcelRequire("eAP0b"); - -var $3MHwQ = parcelRequire("3MHwQ"); +module.exports.HttpClient = module.exports.isHttps = module.exports.HttpClientResponse = module.exports.HttpClientError = module.exports.getProxyUrl = module.exports.MediaTypes = module.exports.Headers = module.exports.HttpCodes = void 0; -var $gJyrQ = parcelRequire("gJyrQ"); +const $62b24303e3aed667$var$http = $62b24303e3aed667$var$__importStar($bknAJ$http); -const $da816f606135dc7c$var$os = $da816f606135dc7c$var$__importStar($kzVu7$os); +const $62b24303e3aed667$var$https = $62b24303e3aed667$var$__importStar($bknAJ$https); -const $da816f606135dc7c$var$path = $da816f606135dc7c$var$__importStar($kzVu7$path); +const $62b24303e3aed667$var$pm = $62b24303e3aed667$var$__importStar((parcelRequire("3bDYl"))); -var $ilunl = parcelRequire("ilunl"); -/** - * The code to exit an action - */ var $da816f606135dc7c$var$ExitCode; -(function(ExitCode) { - /** - * A code indicating that the action was successful - */ ExitCode[ExitCode["Success"] = 0] = "Success"; - /** - * A code indicating that the action was a failure - */ ExitCode[ExitCode["Failure"] = 1] = "Failure"; -})($da816f606135dc7c$var$ExitCode = module.exports.ExitCode || (module.exports.ExitCode = {})); -//----------------------------------------------------------------------- -// Variables -//----------------------------------------------------------------------- -/** - * Sets env variable for this action and future actions in the job - * @param name the name of the variable to set - * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify - */ // eslint-disable-next-line @typescript-eslint/no-explicit-any -function $da816f606135dc7c$var$exportVariable(name, val) { - const convertedVal = $gJyrQ.toCommandValue(val); - process.env[name] = convertedVal; - const filePath = process.env["GITHUB_ENV"] || ""; - if (filePath) return $3MHwQ.issueFileCommand("ENV", $3MHwQ.prepareKeyValueMessage(name, val)); - $eAP0b.issueCommand("set-env", { - name: name - }, convertedVal); -} -module.exports.exportVariable = $da816f606135dc7c$var$exportVariable; +const $62b24303e3aed667$var$tunnel = $62b24303e3aed667$var$__importStar((parcelRequire("3kNsr"))); +var $62b24303e3aed667$var$HttpCodes; +(function(HttpCodes) { + HttpCodes[HttpCodes["OK"] = 200] = "OK"; + HttpCodes[HttpCodes["MultipleChoices"] = 300] = "MultipleChoices"; + HttpCodes[HttpCodes["MovedPermanently"] = 301] = "MovedPermanently"; + HttpCodes[HttpCodes["ResourceMoved"] = 302] = "ResourceMoved"; + HttpCodes[HttpCodes["SeeOther"] = 303] = "SeeOther"; + HttpCodes[HttpCodes["NotModified"] = 304] = "NotModified"; + HttpCodes[HttpCodes["UseProxy"] = 305] = "UseProxy"; + HttpCodes[HttpCodes["SwitchProxy"] = 306] = "SwitchProxy"; + HttpCodes[HttpCodes["TemporaryRedirect"] = 307] = "TemporaryRedirect"; + HttpCodes[HttpCodes["PermanentRedirect"] = 308] = "PermanentRedirect"; + HttpCodes[HttpCodes["BadRequest"] = 400] = "BadRequest"; + HttpCodes[HttpCodes["Unauthorized"] = 401] = "Unauthorized"; + HttpCodes[HttpCodes["PaymentRequired"] = 402] = "PaymentRequired"; + HttpCodes[HttpCodes["Forbidden"] = 403] = "Forbidden"; + HttpCodes[HttpCodes["NotFound"] = 404] = "NotFound"; + HttpCodes[HttpCodes["MethodNotAllowed"] = 405] = "MethodNotAllowed"; + HttpCodes[HttpCodes["NotAcceptable"] = 406] = "NotAcceptable"; + HttpCodes[HttpCodes["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired"; + HttpCodes[HttpCodes["RequestTimeout"] = 408] = "RequestTimeout"; + HttpCodes[HttpCodes["Conflict"] = 409] = "Conflict"; + HttpCodes[HttpCodes["Gone"] = 410] = "Gone"; + HttpCodes[HttpCodes["TooManyRequests"] = 429] = "TooManyRequests"; + HttpCodes[HttpCodes["InternalServerError"] = 500] = "InternalServerError"; + HttpCodes[HttpCodes["NotImplemented"] = 501] = "NotImplemented"; + HttpCodes[HttpCodes["BadGateway"] = 502] = "BadGateway"; + HttpCodes[HttpCodes["ServiceUnavailable"] = 503] = "ServiceUnavailable"; + HttpCodes[HttpCodes["GatewayTimeout"] = 504] = "GatewayTimeout"; +})($62b24303e3aed667$var$HttpCodes = module.exports.HttpCodes || (module.exports.HttpCodes = {})); +var $62b24303e3aed667$var$Headers; +(function(Headers) { + Headers["Accept"] = "accept"; + Headers["ContentType"] = "content-type"; +})($62b24303e3aed667$var$Headers = module.exports.Headers || (module.exports.Headers = {})); +var $62b24303e3aed667$var$MediaTypes; +(function(MediaTypes) { + MediaTypes["ApplicationJson"] = "application/json"; +})($62b24303e3aed667$var$MediaTypes = module.exports.MediaTypes || (module.exports.MediaTypes = {})); /** - * Registers a secret which will get masked from logs - * @param secret value of the secret - */ function $da816f606135dc7c$var$setSecret(secret) { - $eAP0b.issueCommand("add-mask", {}, secret); + * Returns the proxy URL, depending upon the supplied url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ function $62b24303e3aed667$var$getProxyUrl(serverUrl) { + const proxyUrl = $62b24303e3aed667$var$pm.getProxyUrl(new URL(serverUrl)); + return proxyUrl ? proxyUrl.href : ""; } -module.exports.setSecret = $da816f606135dc7c$var$setSecret; -/** - * Prepends inputPath to the PATH (for this action and future actions) - * @param inputPath - */ function $da816f606135dc7c$var$addPath(inputPath) { - const filePath = process.env["GITHUB_PATH"] || ""; - if (filePath) $3MHwQ.issueFileCommand("PATH", inputPath); - else $eAP0b.issueCommand("add-path", {}, inputPath); - process.env["PATH"] = `${inputPath}${$da816f606135dc7c$var$path.delimiter}${process.env["PATH"]}`; +module.exports.getProxyUrl = $62b24303e3aed667$var$getProxyUrl; +const $62b24303e3aed667$var$HttpRedirectCodes = [ + $62b24303e3aed667$var$HttpCodes.MovedPermanently, + $62b24303e3aed667$var$HttpCodes.ResourceMoved, + $62b24303e3aed667$var$HttpCodes.SeeOther, + $62b24303e3aed667$var$HttpCodes.TemporaryRedirect, + $62b24303e3aed667$var$HttpCodes.PermanentRedirect +]; +const $62b24303e3aed667$var$HttpResponseRetryCodes = [ + $62b24303e3aed667$var$HttpCodes.BadGateway, + $62b24303e3aed667$var$HttpCodes.ServiceUnavailable, + $62b24303e3aed667$var$HttpCodes.GatewayTimeout +]; +const $62b24303e3aed667$var$RetryableHttpVerbs = [ + "OPTIONS", + "GET", + "DELETE", + "HEAD" +]; +const $62b24303e3aed667$var$ExponentialBackoffCeiling = 10; +const $62b24303e3aed667$var$ExponentialBackoffTimeSlice = 5; +class $62b24303e3aed667$var$HttpClientError extends Error { + constructor(message, statusCode){ + super(message); + this.name = "HttpClientError"; + this.statusCode = statusCode; + Object.setPrototypeOf(this, $62b24303e3aed667$var$HttpClientError.prototype); + } } -module.exports.addPath = $da816f606135dc7c$var$addPath; -/** - * Gets the value of an input. - * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed. - * Returns an empty string if the value is not defined. - * - * @param name name of the input to get - * @param options optional. See InputOptions. - * @returns string - */ function $da816f606135dc7c$var$getInput(name, options) { - const val = process.env[`INPUT_${name.replace(/ /g, "_").toUpperCase()}`] || ""; - if (options && options.required && !val) throw new Error(`Input required and not supplied: ${name}`); - if (options && options.trimWhitespace === false) return val; - return val.trim(); +module.exports.HttpClientError = $62b24303e3aed667$var$HttpClientError; +class $62b24303e3aed667$var$HttpClientResponse { + constructor(message){ + this.message = message; + } + readBody() { + return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { + return new Promise((resolve)=>$62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { + let output = Buffer.alloc(0); + this.message.on("data", (chunk)=>{ + output = Buffer.concat([ + output, + chunk + ]); + }); + this.message.on("end", ()=>{ + resolve(output.toString()); + }); + })); + }); + } } -module.exports.getInput = $da816f606135dc7c$var$getInput; -/** - * Gets the values of an multiline input. Each value is also trimmed. - * - * @param name name of the input to get - * @param options optional. See InputOptions. - * @returns string[] - * - */ function $da816f606135dc7c$var$getMultilineInput(name, options) { - const inputs = $da816f606135dc7c$var$getInput(name, options).split("\n").filter((x)=>x !== ""); - if (options && options.trimWhitespace === false) return inputs; - return inputs.map((input)=>input.trim()); +module.exports.HttpClientResponse = $62b24303e3aed667$var$HttpClientResponse; +function $62b24303e3aed667$var$isHttps(requestUrl) { + const parsedUrl = new URL(requestUrl); + return parsedUrl.protocol === "https:"; } -module.exports.getMultilineInput = $da816f606135dc7c$var$getMultilineInput; -/** - * Gets the input value of the boolean type in the YAML 1.2 "core schema" specification. - * Support boolean input list: `true | True | TRUE | false | False | FALSE` . - * The return value is also in boolean type. - * ref: https://yaml.org/spec/1.2/spec.html#id2804923 - * - * @param name name of the input to get - * @param options optional. See InputOptions. - * @returns boolean - */ function $da816f606135dc7c$var$getBooleanInput(name, options) { - const trueValue = [ - "true", - "True", - "TRUE" - ]; - const falseValue = [ - "false", - "False", - "FALSE" - ]; - const val = $da816f606135dc7c$var$getInput(name, options); - if (trueValue.includes(val)) return true; - if (falseValue.includes(val)) return false; - throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${name}\n` + `Support boolean input list: \`true | True | TRUE | false | False | FALSE\``); -} -module.exports.getBooleanInput = $da816f606135dc7c$var$getBooleanInput; -/** - * Sets the value of an output. - * - * @param name name of the output to set - * @param value value to store. Non-string values will be converted to a string via JSON.stringify - */ // eslint-disable-next-line @typescript-eslint/no-explicit-any -function $da816f606135dc7c$var$setOutput(name, value) { - const filePath = process.env["GITHUB_OUTPUT"] || ""; - if (filePath) return $3MHwQ.issueFileCommand("OUTPUT", $3MHwQ.prepareKeyValueMessage(name, value)); - process.stdout.write($da816f606135dc7c$var$os.EOL); - $eAP0b.issueCommand("set-output", { - name: name - }, $gJyrQ.toCommandValue(value)); -} -module.exports.setOutput = $da816f606135dc7c$var$setOutput; -/** - * Enables or disables the echoing of commands into stdout for the rest of the step. - * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set. - * - */ function $da816f606135dc7c$var$setCommandEcho(enabled) { - $eAP0b.issue("echo", enabled ? "on" : "off"); -} -module.exports.setCommandEcho = $da816f606135dc7c$var$setCommandEcho; -//----------------------------------------------------------------------- -// Results -//----------------------------------------------------------------------- -/** - * Sets the action status to failed. - * When the action exits it will be with an exit code of 1 - * @param message add error issue message - */ function $da816f606135dc7c$var$setFailed(message) { - process.exitCode = $da816f606135dc7c$var$ExitCode.Failure; - $da816f606135dc7c$var$error(message); -} -module.exports.setFailed = $da816f606135dc7c$var$setFailed; -//----------------------------------------------------------------------- -// Logging Commands -//----------------------------------------------------------------------- -/** - * Gets whether Actions Step Debug is on or not - */ function $da816f606135dc7c$var$isDebug() { - return process.env["RUNNER_DEBUG"] === "1"; -} -module.exports.isDebug = $da816f606135dc7c$var$isDebug; -/** - * Writes debug message to user log - * @param message debug message - */ function $da816f606135dc7c$var$debug(message) { - $eAP0b.issueCommand("debug", {}, message); -} -module.exports.debug = $da816f606135dc7c$var$debug; -/** - * Adds an error issue - * @param message error issue message. Errors will be converted to string via toString() - * @param properties optional properties to add to the annotation. - */ function $da816f606135dc7c$var$error(message, properties = {}) { - $eAP0b.issueCommand("error", $gJyrQ.toCommandProperties(properties), message instanceof Error ? message.toString() : message); -} -module.exports.error = $da816f606135dc7c$var$error; -/** - * Adds a warning issue - * @param message warning issue message. Errors will be converted to string via toString() - * @param properties optional properties to add to the annotation. - */ function $da816f606135dc7c$var$warning(message, properties = {}) { - $eAP0b.issueCommand("warning", $gJyrQ.toCommandProperties(properties), message instanceof Error ? message.toString() : message); -} -module.exports.warning = $da816f606135dc7c$var$warning; -/** - * Adds a notice issue - * @param message notice issue message. Errors will be converted to string via toString() - * @param properties optional properties to add to the annotation. - */ function $da816f606135dc7c$var$notice(message, properties = {}) { - $eAP0b.issueCommand("notice", $gJyrQ.toCommandProperties(properties), message instanceof Error ? message.toString() : message); -} -module.exports.notice = $da816f606135dc7c$var$notice; -/** - * Writes info to log with console.log. - * @param message info message - */ function $da816f606135dc7c$var$info(message) { - process.stdout.write(message + $da816f606135dc7c$var$os.EOL); -} -module.exports.info = $da816f606135dc7c$var$info; -/** - * Begin an output group. - * - * Output until the next `groupEnd` will be foldable in this group - * - * @param name The name of the output group - */ function $da816f606135dc7c$var$startGroup(name) { - $eAP0b.issue("group", name); -} -module.exports.startGroup = $da816f606135dc7c$var$startGroup; -/** - * End an output group. - */ function $da816f606135dc7c$var$endGroup() { - $eAP0b.issue("endgroup"); -} -module.exports.endGroup = $da816f606135dc7c$var$endGroup; -/** - * Wrap an asynchronous function call in a group. - * - * Returns the same type as the function itself. - * - * @param name The name of the group - * @param fn The function to wrap in the group - */ function $da816f606135dc7c$var$group(name, fn) { - return $da816f606135dc7c$var$__awaiter(this, void 0, void 0, function*() { - $da816f606135dc7c$var$startGroup(name); - let result; - try { - result = yield fn(); - } finally{ - $da816f606135dc7c$var$endGroup(); +module.exports.isHttps = $62b24303e3aed667$var$isHttps; +class $62b24303e3aed667$var$HttpClient { + constructor(userAgent, handlers, requestOptions){ + this._ignoreSslError = false; + this._allowRedirects = true; + this._allowRedirectDowngrade = false; + this._maxRedirects = 50; + this._allowRetries = false; + this._maxRetries = 1; + this._keepAlive = false; + this._disposed = false; + this.userAgent = userAgent; + this.handlers = handlers || []; + this.requestOptions = requestOptions; + if (requestOptions) { + if (requestOptions.ignoreSslError != null) this._ignoreSslError = requestOptions.ignoreSslError; + this._socketTimeout = requestOptions.socketTimeout; + if (requestOptions.allowRedirects != null) this._allowRedirects = requestOptions.allowRedirects; + if (requestOptions.allowRedirectDowngrade != null) this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade; + if (requestOptions.maxRedirects != null) this._maxRedirects = Math.max(requestOptions.maxRedirects, 0); + if (requestOptions.keepAlive != null) this._keepAlive = requestOptions.keepAlive; + if (requestOptions.allowRetries != null) this._allowRetries = requestOptions.allowRetries; + if (requestOptions.maxRetries != null) this._maxRetries = requestOptions.maxRetries; } - return result; - }); -} -module.exports.group = $da816f606135dc7c$var$group; -//----------------------------------------------------------------------- -// Wrapper action state -//----------------------------------------------------------------------- -/** - * Saves state for current action, the state can only be retrieved by this action's post job execution. - * - * @param name name of the state to store - * @param value value to store. Non-string values will be converted to a string via JSON.stringify - */ // eslint-disable-next-line @typescript-eslint/no-explicit-any -function $da816f606135dc7c$var$saveState(name, value) { - const filePath = process.env["GITHUB_STATE"] || ""; - if (filePath) return $3MHwQ.issueFileCommand("STATE", $3MHwQ.prepareKeyValueMessage(name, value)); - $eAP0b.issueCommand("save-state", { - name: name - }, $gJyrQ.toCommandValue(value)); -} -module.exports.saveState = $da816f606135dc7c$var$saveState; -/** - * Gets the value of an state set by this action's main execution. - * - * @param name name of the state to get - * @returns string - */ function $da816f606135dc7c$var$getState(name) { - return process.env[`STATE_${name}`] || ""; -} -module.exports.getState = $da816f606135dc7c$var$getState; -function $da816f606135dc7c$var$getIDToken(aud) { - return $da816f606135dc7c$var$__awaiter(this, void 0, void 0, function*() { - return yield $ilunl.OidcClient.getIDToken(aud); - }); -} -module.exports.getIDToken = $da816f606135dc7c$var$getIDToken; - -var $b9rkq = parcelRequire("b9rkq"); -Object.defineProperty(module.exports, "summary", { - enumerable: true, - get: function() { - return $b9rkq.summary; } -}); - -var $b9rkq = parcelRequire("b9rkq"); -Object.defineProperty(module.exports, "markdownSummary", { - enumerable: true, - get: function() { - return $b9rkq.markdownSummary; + options(requestUrl, additionalHeaders) { + return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { + return this.request("OPTIONS", requestUrl, null, additionalHeaders || {}); + }); } -}); - -var $a9QTv = parcelRequire("a9QTv"); -Object.defineProperty(module.exports, "toPosixPath", { - enumerable: true, - get: function() { - return $a9QTv.toPosixPath; + get(requestUrl, additionalHeaders) { + return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { + return this.request("GET", requestUrl, null, additionalHeaders || {}); + }); } -}); -Object.defineProperty(module.exports, "toWin32Path", { - enumerable: true, - get: function() { - return $a9QTv.toWin32Path; + del(requestUrl, additionalHeaders) { + return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { + return this.request("DELETE", requestUrl, null, additionalHeaders || {}); + }); } -}); -Object.defineProperty(module.exports, "toPlatformPath", { - enumerable: true, - get: function() { - return $a9QTv.toPlatformPath; + post(requestUrl, data, additionalHeaders) { + return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { + return this.request("POST", requestUrl, data, additionalHeaders || {}); + }); } -}); - -}); -parcelRequire.register("eAP0b", function(module, exports) { -"use strict"; -var $a9fbfd6af7c376e3$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { - enumerable: true, - get: function() { - return m[k]; - } - }); -} : function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -}); -var $a9fbfd6af7c376e3$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { - enumerable: true, - value: v - }); -} : function(o, v) { - o["default"] = v; -}); -var $a9fbfd6af7c376e3$var$__importStar = module.exports && module.exports.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) { - for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $a9fbfd6af7c376e3$var$__createBinding(result, mod, k); + patch(requestUrl, data, additionalHeaders) { + return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { + return this.request("PATCH", requestUrl, data, additionalHeaders || {}); + }); } - $a9fbfd6af7c376e3$var$__setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(module.exports, "__esModule", { - value: true -}); -module.exports.issue = module.exports.issueCommand = void 0; - -const $a9fbfd6af7c376e3$var$os = $a9fbfd6af7c376e3$var$__importStar($kzVu7$os); - -var $gJyrQ = parcelRequire("gJyrQ"); -/** - * Commands - * - * Command Format: - * ::name key=value,key=value::message - * - * Examples: - * ::warning::This is the message - * ::set-env name=MY_VAR::some value - */ function $a9fbfd6af7c376e3$var$issueCommand(command, properties, message) { - const cmd = new $a9fbfd6af7c376e3$var$Command(command, properties, message); - process.stdout.write(cmd.toString() + $a9fbfd6af7c376e3$var$os.EOL); -} -module.exports.issueCommand = $a9fbfd6af7c376e3$var$issueCommand; -function $a9fbfd6af7c376e3$var$issue(name, message = "") { - $a9fbfd6af7c376e3$var$issueCommand(name, {}, message); -} -module.exports.issue = $a9fbfd6af7c376e3$var$issue; -const $a9fbfd6af7c376e3$var$CMD_STRING = "::"; -class $a9fbfd6af7c376e3$var$Command { - constructor(command, properties, message){ - if (!command) command = "missing.command"; - this.command = command; - this.properties = properties; - this.message = message; + put(requestUrl, data, additionalHeaders) { + return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { + return this.request("PUT", requestUrl, data, additionalHeaders || {}); + }); } - toString() { - let cmdStr = $a9fbfd6af7c376e3$var$CMD_STRING + this.command; - if (this.properties && Object.keys(this.properties).length > 0) { - cmdStr += " "; - let first = true; - for(const key in this.properties)if (this.properties.hasOwnProperty(key)) { - const val = this.properties[key]; - if (val) { - if (first) first = false; - else cmdStr += ","; - cmdStr += `${key}=${$a9fbfd6af7c376e3$var$escapeProperty(val)}`; - } - } - } - cmdStr += `${$a9fbfd6af7c376e3$var$CMD_STRING}${$a9fbfd6af7c376e3$var$escapeData(this.message)}`; - return cmdStr; - } -} -function $a9fbfd6af7c376e3$var$escapeData(s) { - return $gJyrQ.toCommandValue(s).replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A"); -} -function $a9fbfd6af7c376e3$var$escapeProperty(s) { - return $gJyrQ.toCommandValue(s).replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A").replace(/:/g, "%3A").replace(/,/g, "%2C"); -} - -}); -parcelRequire.register("gJyrQ", function(module, exports) { -"use strict"; -// We use any as a valid input type -/* eslint-disable @typescript-eslint/no-explicit-any */ Object.defineProperty(module.exports, "__esModule", { - value: true -}); -module.exports.toCommandProperties = module.exports.toCommandValue = void 0; -/** - * Sanitizes an input into a string so it can be passed into issueCommand safely - * @param input input to sanitize into a string - */ function $c2eb91fd03840ff7$var$toCommandValue(input) { - if (input === null || input === undefined) return ""; - else if (typeof input === "string" || input instanceof String) return input; - return JSON.stringify(input); -} -module.exports.toCommandValue = $c2eb91fd03840ff7$var$toCommandValue; -/** - * - * @param annotationProperties - * @returns The command properties to send with the actual annotation command - * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646 - */ function $c2eb91fd03840ff7$var$toCommandProperties(annotationProperties) { - if (!Object.keys(annotationProperties).length) return {}; - return { - title: annotationProperties.title, - file: annotationProperties.file, - line: annotationProperties.startLine, - endLine: annotationProperties.endLine, - col: annotationProperties.startColumn, - endColumn: annotationProperties.endColumn - }; -} -module.exports.toCommandProperties = $c2eb91fd03840ff7$var$toCommandProperties; - -}); - - -parcelRequire.register("3MHwQ", function(module, exports) { -"use strict"; -// For internal use, subject to change. -var $2c179eb4735c01c1$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { - enumerable: true, - get: function() { - return m[k]; - } - }); -} : function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -}); -var $2c179eb4735c01c1$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { - enumerable: true, - value: v - }); -} : function(o, v) { - o["default"] = v; -}); -var $2c179eb4735c01c1$var$__importStar = module.exports && module.exports.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) { - for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $2c179eb4735c01c1$var$__createBinding(result, mod, k); - } - $2c179eb4735c01c1$var$__setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(module.exports, "__esModule", { - value: true -}); -module.exports.prepareKeyValueMessage = module.exports.issueFileCommand = void 0; - -// We use any as a valid input type -/* eslint-disable @typescript-eslint/no-explicit-any */ const $2c179eb4735c01c1$var$fs = $2c179eb4735c01c1$var$__importStar($kzVu7$fs); - -const $2c179eb4735c01c1$var$os = $2c179eb4735c01c1$var$__importStar($kzVu7$os); - -var $hAZwu = parcelRequire("hAZwu"); - -var $gJyrQ = parcelRequire("gJyrQ"); -function $2c179eb4735c01c1$var$issueFileCommand(command, message) { - const filePath = process.env[`GITHUB_${command}`]; - if (!filePath) throw new Error(`Unable to find environment variable for file command ${command}`); - if (!$2c179eb4735c01c1$var$fs.existsSync(filePath)) throw new Error(`Missing file at path: ${filePath}`); - $2c179eb4735c01c1$var$fs.appendFileSync(filePath, `${$gJyrQ.toCommandValue(message)}${$2c179eb4735c01c1$var$os.EOL}`, { - encoding: "utf8" - }); -} -module.exports.issueFileCommand = $2c179eb4735c01c1$var$issueFileCommand; -function $2c179eb4735c01c1$var$prepareKeyValueMessage(key, value) { - const delimiter = `ghadelimiter_${$hAZwu.default()}`; - const convertedValue = $gJyrQ.toCommandValue(value); - // These should realistically never happen, but just in case someone finds a - // way to exploit uuid generation let's not allow keys or values that contain - // the delimiter. - if (key.includes(delimiter)) throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter}"`); - if (convertedValue.includes(delimiter)) throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter}"`); - return `${key}<<${delimiter}${$2c179eb4735c01c1$var$os.EOL}${convertedValue}${$2c179eb4735c01c1$var$os.EOL}${delimiter}`; -} -module.exports.prepareKeyValueMessage = $2c179eb4735c01c1$var$prepareKeyValueMessage; - -}); -parcelRequire.register("hAZwu", function(module, exports) { - -$parcel$export(module.exports, "default", () => $ccf585a66b281eee$export$2e2bcd8739ae039); - -var $g7Jnf = parcelRequire("g7Jnf"); - -var $etVZv = parcelRequire("etVZv"); -function $ccf585a66b281eee$var$v4(options, buf, offset) { - options = options || {}; - const rnds = options.random || (options.rng || (0, $g7Jnf.default))(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` - rnds[6] = rnds[6] & 0x0f | 0x40; - rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided - if (buf) { - offset = offset || 0; - for(let i = 0; i < 16; ++i)buf[offset + i] = rnds[i]; - return buf; + head(requestUrl, additionalHeaders) { + return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { + return this.request("HEAD", requestUrl, null, additionalHeaders || {}); + }); } - return (0, $etVZv.default)(rnds); -} -var $ccf585a66b281eee$export$2e2bcd8739ae039 = $ccf585a66b281eee$var$v4; - -}); -parcelRequire.register("g7Jnf", function(module, exports) { - -$parcel$export(module.exports, "default", () => $bbd07f1d85073d64$export$2e2bcd8739ae039); - -const $bbd07f1d85073d64$var$rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate -let $bbd07f1d85073d64$var$poolPtr = $bbd07f1d85073d64$var$rnds8Pool.length; -function $bbd07f1d85073d64$export$2e2bcd8739ae039() { - if ($bbd07f1d85073d64$var$poolPtr > $bbd07f1d85073d64$var$rnds8Pool.length - 16) { - (0, ($parcel$interopDefault($kzVu7$crypto))).randomFillSync($bbd07f1d85073d64$var$rnds8Pool); - $bbd07f1d85073d64$var$poolPtr = 0; + sendStream(verb, requestUrl, stream, additionalHeaders) { + return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { + return this.request(verb, requestUrl, stream, additionalHeaders); + }); } - return $bbd07f1d85073d64$var$rnds8Pool.slice($bbd07f1d85073d64$var$poolPtr, $bbd07f1d85073d64$var$poolPtr += 16); -} - -}); - -parcelRequire.register("etVZv", function(module, exports) { - -$parcel$export(module.exports, "default", () => $a8b0c1f55d179ea2$export$2e2bcd8739ae039); - -var $g7qLM = parcelRequire("g7qLM"); -/** - * Convert array of 16 byte values to UUID string format of the form: - * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - */ const $a8b0c1f55d179ea2$var$byteToHex = []; -for(let i = 0; i < 256; ++i)$a8b0c1f55d179ea2$var$byteToHex.push((i + 0x100).toString(16).substr(1)); -function $a8b0c1f55d179ea2$var$stringify(arr, offset = 0) { - // Note: Be careful editing this code! It's been tuned for performance - // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 - const uuid = ($a8b0c1f55d179ea2$var$byteToHex[arr[offset + 0]] + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 1]] + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 2]] + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 3]] + "-" + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 4]] + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 5]] + "-" + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 6]] + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 7]] + "-" + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 8]] + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 9]] + "-" + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 10]] + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 11]] + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 12]] + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 13]] + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 14]] + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one - // of the following: - // - One or more input array values don't map to a hex octet (leading to - // "undefined" in the uuid) - // - Invalid input values for the RFC `version` or `variant` fields - if (!(0, $g7qLM.default)(uuid)) throw TypeError("Stringified UUID is invalid"); - return uuid; -} -var $a8b0c1f55d179ea2$export$2e2bcd8739ae039 = $a8b0c1f55d179ea2$var$stringify; - -}); -parcelRequire.register("g7qLM", function(module, exports) { - -$parcel$export(module.exports, "default", () => $bbc210aec3a3cf1e$export$2e2bcd8739ae039); - -var $Zhlj5 = parcelRequire("Zhlj5"); -function $bbc210aec3a3cf1e$var$validate(uuid) { - return typeof uuid === "string" && (0, $Zhlj5.default).test(uuid); -} -var $bbc210aec3a3cf1e$export$2e2bcd8739ae039 = $bbc210aec3a3cf1e$var$validate; - -}); -parcelRequire.register("Zhlj5", function(module, exports) { - -$parcel$export(module.exports, "default", () => $0b832682bf3fc1e7$export$2e2bcd8739ae039); -var $0b832682bf3fc1e7$export$2e2bcd8739ae039 = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; - -}); - - - - - -parcelRequire.register("ilunl", function(module, exports) { -"use strict"; -var $d5b1c01683378567$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); + /** + * Gets a typed object from an endpoint + * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise + */ getJson(requestUrl, additionalHeaders = {}) { + return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { + additionalHeaders[$62b24303e3aed667$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $62b24303e3aed667$var$Headers.Accept, $62b24303e3aed667$var$MediaTypes.ApplicationJson); + const res = yield this.get(requestUrl, additionalHeaders); + return this._processResponse(res, this.requestOptions); }); } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(module.exports, "__esModule", { - value: true -}); -module.exports.OidcClient = void 0; - -var $8tmdd = parcelRequire("8tmdd"); - -var $cAajE = parcelRequire("cAajE"); - -var $iL6dd = parcelRequire("iL6dd"); -class $d5b1c01683378567$var$OidcClient { - static createHttpClient(allowRetry = true, maxRetry = 10) { - const requestOptions = { - allowRetries: allowRetry, - maxRetries: maxRetry - }; - return new $8tmdd.HttpClient("actions/oidc-client", [ - new $cAajE.BearerCredentialHandler($d5b1c01683378567$var$OidcClient.getRequestToken()) - ], requestOptions); + postJson(requestUrl, obj, additionalHeaders = {}) { + return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { + const data = JSON.stringify(obj, null, 2); + additionalHeaders[$62b24303e3aed667$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $62b24303e3aed667$var$Headers.Accept, $62b24303e3aed667$var$MediaTypes.ApplicationJson); + additionalHeaders[$62b24303e3aed667$var$Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, $62b24303e3aed667$var$Headers.ContentType, $62b24303e3aed667$var$MediaTypes.ApplicationJson); + const res = yield this.post(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); } - static getRequestToken() { - const token = process.env["ACTIONS_ID_TOKEN_REQUEST_TOKEN"]; - if (!token) throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable"); - return token; + putJson(requestUrl, obj, additionalHeaders = {}) { + return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { + const data = JSON.stringify(obj, null, 2); + additionalHeaders[$62b24303e3aed667$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $62b24303e3aed667$var$Headers.Accept, $62b24303e3aed667$var$MediaTypes.ApplicationJson); + additionalHeaders[$62b24303e3aed667$var$Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, $62b24303e3aed667$var$Headers.ContentType, $62b24303e3aed667$var$MediaTypes.ApplicationJson); + const res = yield this.put(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); } - static getIDTokenUrl() { - const runtimeUrl = process.env["ACTIONS_ID_TOKEN_REQUEST_URL"]; - if (!runtimeUrl) throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable"); - return runtimeUrl; + patchJson(requestUrl, obj, additionalHeaders = {}) { + return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { + const data = JSON.stringify(obj, null, 2); + additionalHeaders[$62b24303e3aed667$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $62b24303e3aed667$var$Headers.Accept, $62b24303e3aed667$var$MediaTypes.ApplicationJson); + additionalHeaders[$62b24303e3aed667$var$Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, $62b24303e3aed667$var$Headers.ContentType, $62b24303e3aed667$var$MediaTypes.ApplicationJson); + const res = yield this.patch(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); } - static getCall(id_token_url) { - var _a; - return $d5b1c01683378567$var$__awaiter(this, void 0, void 0, function*() { - const httpclient = $d5b1c01683378567$var$OidcClient.createHttpClient(); - const res = yield httpclient.getJson(id_token_url).catch((error)=>{ - throw new Error(`Failed to get ID Token. \n - Error Code : ${error.statusCode}\n - Error Message: ${error.result.message}`); - }); - const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value; - if (!id_token) throw new Error("Response json body do not have ID Token field"); - return id_token; - }); - } - static getIDToken(audience) { - return $d5b1c01683378567$var$__awaiter(this, void 0, void 0, function*() { - try { - // New ID Token is requested from action service - let id_token_url = $d5b1c01683378567$var$OidcClient.getIDTokenUrl(); - if (audience) { - const encodedAudience = encodeURIComponent(audience); - id_token_url = `${id_token_url}&audience=${encodedAudience}`; + /** + * Makes a raw http request. + * All other methods such as get, post, patch, and request ultimately call this. + * Prefer get, del, post and patch + */ request(verb, requestUrl, data, headers) { + return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { + if (this._disposed) throw new Error("Client has already been disposed."); + const parsedUrl = new URL(requestUrl); + let info = this._prepareRequest(verb, parsedUrl, headers); + // Only perform retries on reads since writes may not be idempotent. + const maxTries = this._allowRetries && $62b24303e3aed667$var$RetryableHttpVerbs.includes(verb) ? this._maxRetries + 1 : 1; + let numTries = 0; + let response; + do { + response = yield this.requestRaw(info, data); + // Check if it's an authentication challenge + if (response && response.message && response.message.statusCode === $62b24303e3aed667$var$HttpCodes.Unauthorized) { + let authenticationHandler; + for (const handler of this.handlers)if (handler.canHandleAuthentication(response)) { + authenticationHandler = handler; + break; + } + if (authenticationHandler) return authenticationHandler.handleAuthentication(this, info, data); + else // We have received an unauthorized response but have no handlers to handle it. + // Let the response return to the caller. + return response; } - $iL6dd.debug(`ID token url is ${id_token_url}`); - const id_token = yield $d5b1c01683378567$var$OidcClient.getCall(id_token_url); - $iL6dd.setSecret(id_token); - return id_token; - } catch (error) { - throw new Error(`Error message: ${error.message}`); - } + let redirectsRemaining = this._maxRedirects; + while(response.message.statusCode && $62b24303e3aed667$var$HttpRedirectCodes.includes(response.message.statusCode) && this._allowRedirects && redirectsRemaining > 0){ + const redirectUrl = response.message.headers["location"]; + if (!redirectUrl) break; + const parsedRedirectUrl = new URL(redirectUrl); + if (parsedUrl.protocol === "https:" && parsedUrl.protocol !== parsedRedirectUrl.protocol && !this._allowRedirectDowngrade) throw new Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true."); + // we need to finish reading the response before reassigning response + // which will leak the open socket. + yield response.readBody(); + // strip authorization header if redirected to a different hostname + if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { + for(const header in headers)// header names are case insensitive + if (header.toLowerCase() === "authorization") delete headers[header]; + } + // let's make the request with the new redirectUrl + info = this._prepareRequest(verb, parsedRedirectUrl, headers); + response = yield this.requestRaw(info, data); + redirectsRemaining--; + } + if (!response.message.statusCode || !$62b24303e3aed667$var$HttpResponseRetryCodes.includes(response.message.statusCode)) // If not a retry code, return immediately instead of retrying + return response; + numTries += 1; + if (numTries < maxTries) { + yield response.readBody(); + yield this._performExponentialBackoff(numTries); + } + }while (numTries < maxTries); + return response; }); } -} -module.exports.OidcClient = $d5b1c01683378567$var$OidcClient; - -}); -parcelRequire.register("8tmdd", function(module, exports) { -"use strict"; -/* eslint-disable @typescript-eslint/no-explicit-any */ var $62b24303e3aed667$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { - enumerable: true, - get: function() { - return m[k]; - } - }); -} : function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -}); -var $62b24303e3aed667$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { - enumerable: true, - value: v - }); -} : function(o, v) { - o["default"] = v; -}); -var $62b24303e3aed667$var$__importStar = module.exports && module.exports.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) { - for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $62b24303e3aed667$var$__createBinding(result, mod, k); + /** + * Needs to be called if keepAlive is set to true in request options. + */ dispose() { + if (this._agent) this._agent.destroy(); + this._disposed = true; } - $62b24303e3aed667$var$__setModuleDefault(result, mod); - return result; -}; -var $62b24303e3aed667$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); + /** + * Raw request. + * @param info + * @param data + */ requestRaw(info, data) { + return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { + return new Promise((resolve, reject)=>{ + function callbackForResult(err, res) { + if (err) reject(err); + else if (!res) // If `err` is not passed, then `res` must be passed. + reject(new Error("Unknown error")); + else resolve(res); + } + this.requestRawWithCallback(info, data, callbackForResult); + }); }); } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } + /** + * Raw request with callback. + * @param info + * @param data + * @param onResult + */ requestRawWithCallback(info, data, onResult) { + if (typeof data === "string") { + if (!info.options.headers) info.options.headers = {}; + info.options.headers["Content-Length"] = Buffer.byteLength(data, "utf8"); } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); + let callbackCalled = false; + function handleResult(err, res) { + if (!callbackCalled) { + callbackCalled = true; + onResult(err, res); } } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + const req = info.httpModule.request(info.options, (msg)=>{ + const res = new $62b24303e3aed667$var$HttpClientResponse(msg); + handleResult(undefined, res); + }); + let socket; + req.on("socket", (sock)=>{ + socket = sock; + }); + // If we ever get disconnected, we want the socket to timeout eventually + req.setTimeout(this._socketTimeout || 180000, ()=>{ + if (socket) socket.end(); + handleResult(new Error(`Request timeout: ${info.options.path}`)); + }); + req.on("error", function(err) { + // err has statusCode property + // res should have headers + handleResult(err); + }); + if (data && typeof data === "string") req.write(data, "utf8"); + if (data && typeof data !== "string") { + data.on("close", function() { + req.end(); + }); + data.pipe(req); + } else req.end(); + } + /** + * Gets an http agent. This function is useful when you need an http agent that handles + * routing through a proxy server - depending upon the url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ getAgent(serverUrl) { + const parsedUrl = new URL(serverUrl); + return this._getAgent(parsedUrl); + } + _prepareRequest(method, requestUrl, headers) { + const info = {}; + info.parsedUrl = requestUrl; + const usingSsl = info.parsedUrl.protocol === "https:"; + info.httpModule = usingSsl ? $62b24303e3aed667$var$https : $62b24303e3aed667$var$http; + const defaultPort = usingSsl ? 443 : 80; + info.options = {}; + info.options.host = info.parsedUrl.hostname; + info.options.port = info.parsedUrl.port ? parseInt(info.parsedUrl.port) : defaultPort; + info.options.path = (info.parsedUrl.pathname || "") + (info.parsedUrl.search || ""); + info.options.method = method; + info.options.headers = this._mergeHeaders(headers); + if (this.userAgent != null) info.options.headers["user-agent"] = this.userAgent; + info.options.agent = this._getAgent(info.parsedUrl); + // gives handlers an opportunity to participate + if (this.handlers) for (const handler of this.handlers)handler.prepareRequest(info.options); + return info; + } + _mergeHeaders(headers) { + if (this.requestOptions && this.requestOptions.headers) return Object.assign({}, $62b24303e3aed667$var$lowercaseKeys(this.requestOptions.headers), $62b24303e3aed667$var$lowercaseKeys(headers || {})); + return $62b24303e3aed667$var$lowercaseKeys(headers || {}); + } + _getExistingOrDefaultHeader(additionalHeaders, header, _default) { + let clientHeader; + if (this.requestOptions && this.requestOptions.headers) clientHeader = $62b24303e3aed667$var$lowercaseKeys(this.requestOptions.headers)[header]; + return additionalHeaders[header] || clientHeader || _default; + } + _getAgent(parsedUrl) { + let agent; + const proxyUrl = $62b24303e3aed667$var$pm.getProxyUrl(parsedUrl); + const useProxy = proxyUrl && proxyUrl.hostname; + if (this._keepAlive && useProxy) agent = this._proxyAgent; + if (this._keepAlive && !useProxy) agent = this._agent; + // if agent is already assigned use that agent. + if (agent) return agent; + const usingSsl = parsedUrl.protocol === "https:"; + let maxSockets = 100; + if (this.requestOptions) maxSockets = this.requestOptions.maxSockets || $62b24303e3aed667$var$http.globalAgent.maxSockets; + // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis. + if (proxyUrl && proxyUrl.hostname) { + const agentOptions = { + maxSockets: maxSockets, + keepAlive: this._keepAlive, + proxy: Object.assign(Object.assign({}, (proxyUrl.username || proxyUrl.password) && { + proxyAuth: `${proxyUrl.username}:${proxyUrl.password}` + }), { + host: proxyUrl.hostname, + port: proxyUrl.port + }) + }; + let tunnelAgent; + const overHttps = proxyUrl.protocol === "https:"; + if (usingSsl) tunnelAgent = overHttps ? $62b24303e3aed667$var$tunnel.httpsOverHttps : $62b24303e3aed667$var$tunnel.httpsOverHttp; + else tunnelAgent = overHttps ? $62b24303e3aed667$var$tunnel.httpOverHttps : $62b24303e3aed667$var$tunnel.httpOverHttp; + agent = tunnelAgent(agentOptions); + this._proxyAgent = agent; } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(module.exports, "__esModule", { - value: true -}); -module.exports.HttpClient = module.exports.isHttps = module.exports.HttpClientResponse = module.exports.HttpClientError = module.exports.getProxyUrl = module.exports.MediaTypes = module.exports.Headers = module.exports.HttpCodes = void 0; - -const $62b24303e3aed667$var$http = $62b24303e3aed667$var$__importStar($kzVu7$http); - -const $62b24303e3aed667$var$https = $62b24303e3aed667$var$__importStar($kzVu7$https); - -const $62b24303e3aed667$var$pm = $62b24303e3aed667$var$__importStar((parcelRequire("3bDYl"))); - -const $62b24303e3aed667$var$tunnel = $62b24303e3aed667$var$__importStar((parcelRequire("3kNsr"))); -var $62b24303e3aed667$var$HttpCodes; -(function(HttpCodes) { - HttpCodes[HttpCodes["OK"] = 200] = "OK"; - HttpCodes[HttpCodes["MultipleChoices"] = 300] = "MultipleChoices"; - HttpCodes[HttpCodes["MovedPermanently"] = 301] = "MovedPermanently"; - HttpCodes[HttpCodes["ResourceMoved"] = 302] = "ResourceMoved"; - HttpCodes[HttpCodes["SeeOther"] = 303] = "SeeOther"; - HttpCodes[HttpCodes["NotModified"] = 304] = "NotModified"; - HttpCodes[HttpCodes["UseProxy"] = 305] = "UseProxy"; - HttpCodes[HttpCodes["SwitchProxy"] = 306] = "SwitchProxy"; - HttpCodes[HttpCodes["TemporaryRedirect"] = 307] = "TemporaryRedirect"; - HttpCodes[HttpCodes["PermanentRedirect"] = 308] = "PermanentRedirect"; - HttpCodes[HttpCodes["BadRequest"] = 400] = "BadRequest"; - HttpCodes[HttpCodes["Unauthorized"] = 401] = "Unauthorized"; - HttpCodes[HttpCodes["PaymentRequired"] = 402] = "PaymentRequired"; - HttpCodes[HttpCodes["Forbidden"] = 403] = "Forbidden"; - HttpCodes[HttpCodes["NotFound"] = 404] = "NotFound"; - HttpCodes[HttpCodes["MethodNotAllowed"] = 405] = "MethodNotAllowed"; - HttpCodes[HttpCodes["NotAcceptable"] = 406] = "NotAcceptable"; - HttpCodes[HttpCodes["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired"; - HttpCodes[HttpCodes["RequestTimeout"] = 408] = "RequestTimeout"; - HttpCodes[HttpCodes["Conflict"] = 409] = "Conflict"; - HttpCodes[HttpCodes["Gone"] = 410] = "Gone"; - HttpCodes[HttpCodes["TooManyRequests"] = 429] = "TooManyRequests"; - HttpCodes[HttpCodes["InternalServerError"] = 500] = "InternalServerError"; - HttpCodes[HttpCodes["NotImplemented"] = 501] = "NotImplemented"; - HttpCodes[HttpCodes["BadGateway"] = 502] = "BadGateway"; - HttpCodes[HttpCodes["ServiceUnavailable"] = 503] = "ServiceUnavailable"; - HttpCodes[HttpCodes["GatewayTimeout"] = 504] = "GatewayTimeout"; -})($62b24303e3aed667$var$HttpCodes = module.exports.HttpCodes || (module.exports.HttpCodes = {})); -var $62b24303e3aed667$var$Headers; -(function(Headers) { - Headers["Accept"] = "accept"; - Headers["ContentType"] = "content-type"; -})($62b24303e3aed667$var$Headers = module.exports.Headers || (module.exports.Headers = {})); -var $62b24303e3aed667$var$MediaTypes; -(function(MediaTypes) { - MediaTypes["ApplicationJson"] = "application/json"; -})($62b24303e3aed667$var$MediaTypes = module.exports.MediaTypes || (module.exports.MediaTypes = {})); -/** - * Returns the proxy URL, depending upon the supplied url and proxy environment variables. - * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com - */ function $62b24303e3aed667$var$getProxyUrl(serverUrl) { - const proxyUrl = $62b24303e3aed667$var$pm.getProxyUrl(new URL(serverUrl)); - return proxyUrl ? proxyUrl.href : ""; -} -module.exports.getProxyUrl = $62b24303e3aed667$var$getProxyUrl; -const $62b24303e3aed667$var$HttpRedirectCodes = [ - $62b24303e3aed667$var$HttpCodes.MovedPermanently, - $62b24303e3aed667$var$HttpCodes.ResourceMoved, - $62b24303e3aed667$var$HttpCodes.SeeOther, - $62b24303e3aed667$var$HttpCodes.TemporaryRedirect, - $62b24303e3aed667$var$HttpCodes.PermanentRedirect -]; -const $62b24303e3aed667$var$HttpResponseRetryCodes = [ - $62b24303e3aed667$var$HttpCodes.BadGateway, - $62b24303e3aed667$var$HttpCodes.ServiceUnavailable, - $62b24303e3aed667$var$HttpCodes.GatewayTimeout -]; -const $62b24303e3aed667$var$RetryableHttpVerbs = [ - "OPTIONS", - "GET", - "DELETE", - "HEAD" -]; -const $62b24303e3aed667$var$ExponentialBackoffCeiling = 10; -const $62b24303e3aed667$var$ExponentialBackoffTimeSlice = 5; -class $62b24303e3aed667$var$HttpClientError extends Error { - constructor(message, statusCode){ - super(message); - this.name = "HttpClientError"; - this.statusCode = statusCode; - Object.setPrototypeOf(this, $62b24303e3aed667$var$HttpClientError.prototype); - } -} -module.exports.HttpClientError = $62b24303e3aed667$var$HttpClientError; -class $62b24303e3aed667$var$HttpClientResponse { - constructor(message){ - this.message = message; - } - readBody() { - return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { - return new Promise((resolve)=>$62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { - let output = Buffer.alloc(0); - this.message.on("data", (chunk)=>{ - output = Buffer.concat([ - output, - chunk - ]); - }); - this.message.on("end", ()=>{ - resolve(output.toString()); - }); - })); - }); - } -} -module.exports.HttpClientResponse = $62b24303e3aed667$var$HttpClientResponse; -function $62b24303e3aed667$var$isHttps(requestUrl) { - const parsedUrl = new URL(requestUrl); - return parsedUrl.protocol === "https:"; -} -module.exports.isHttps = $62b24303e3aed667$var$isHttps; -class $62b24303e3aed667$var$HttpClient { - constructor(userAgent, handlers, requestOptions){ - this._ignoreSslError = false; - this._allowRedirects = true; - this._allowRedirectDowngrade = false; - this._maxRedirects = 50; - this._allowRetries = false; - this._maxRetries = 1; - this._keepAlive = false; - this._disposed = false; - this.userAgent = userAgent; - this.handlers = handlers || []; - this.requestOptions = requestOptions; - if (requestOptions) { - if (requestOptions.ignoreSslError != null) this._ignoreSslError = requestOptions.ignoreSslError; - this._socketTimeout = requestOptions.socketTimeout; - if (requestOptions.allowRedirects != null) this._allowRedirects = requestOptions.allowRedirects; - if (requestOptions.allowRedirectDowngrade != null) this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade; - if (requestOptions.maxRedirects != null) this._maxRedirects = Math.max(requestOptions.maxRedirects, 0); - if (requestOptions.keepAlive != null) this._keepAlive = requestOptions.keepAlive; - if (requestOptions.allowRetries != null) this._allowRetries = requestOptions.allowRetries; - if (requestOptions.maxRetries != null) this._maxRetries = requestOptions.maxRetries; + // if reusing agent across request and tunneling agent isn't assigned create a new agent + if (this._keepAlive && !agent) { + const options = { + keepAlive: this._keepAlive, + maxSockets: maxSockets + }; + agent = usingSsl ? new $62b24303e3aed667$var$https.Agent(options) : new $62b24303e3aed667$var$http.Agent(options); + this._agent = agent; } - } - options(requestUrl, additionalHeaders) { - return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { - return this.request("OPTIONS", requestUrl, null, additionalHeaders || {}); + // if not using private agent and tunnel agent isn't setup then use global agent + if (!agent) agent = usingSsl ? $62b24303e3aed667$var$https.globalAgent : $62b24303e3aed667$var$http.globalAgent; + if (usingSsl && this._ignoreSslError) // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process + // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options + // we have to cast it to any and change it directly + agent.options = Object.assign(agent.options || {}, { + rejectUnauthorized: false }); + return agent; } - get(requestUrl, additionalHeaders) { + _performExponentialBackoff(retryNumber) { return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { - return this.request("GET", requestUrl, null, additionalHeaders || {}); + retryNumber = Math.min($62b24303e3aed667$var$ExponentialBackoffCeiling, retryNumber); + const ms = $62b24303e3aed667$var$ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); + return new Promise((resolve)=>setTimeout(()=>resolve(), ms)); }); } - del(requestUrl, additionalHeaders) { + _processResponse(res, options) { return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { - return this.request("DELETE", requestUrl, null, additionalHeaders || {}); + return new Promise((resolve, reject)=>$62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { + const statusCode = res.message.statusCode || 0; + const response = { + statusCode: statusCode, + result: null, + headers: {} + }; + // not found leads to null obj returned + if (statusCode === $62b24303e3aed667$var$HttpCodes.NotFound) resolve(response); + // get the result from the body + function dateTimeDeserializer(key, value) { + if (typeof value === "string") { + const a = new Date(value); + if (!isNaN(a.valueOf())) return a; + } + return value; + } + let obj; + let contents; + try { + contents = yield res.readBody(); + if (contents && contents.length > 0) { + if (options && options.deserializeDates) obj = JSON.parse(contents, dateTimeDeserializer); + else obj = JSON.parse(contents); + response.result = obj; + } + response.headers = res.message.headers; + } catch (err) { + // Invalid resource (contents not json); leaving result obj null + } + // note that 3xx redirects are handled by the http layer. + if (statusCode > 299) { + let msg; + // if exception/error in body, attempt to get better error + if (obj && obj.message) msg = obj.message; + else if (contents && contents.length > 0) // it may be the case that the exception is in the body message as string + msg = contents; + else msg = `Failed request: (${statusCode})`; + const err = new $62b24303e3aed667$var$HttpClientError(msg, statusCode); + err.result = response.result; + reject(err); + } else resolve(response); + })); }); } - post(requestUrl, data, additionalHeaders) { - return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { - return this.request("POST", requestUrl, data, additionalHeaders || {}); - }); +} +module.exports.HttpClient = $62b24303e3aed667$var$HttpClient; +const $62b24303e3aed667$var$lowercaseKeys = (obj)=>Object.keys(obj).reduce((c, k)=>(c[k.toLowerCase()] = obj[k], c), {}); + +}); +parcelRequire.register("3bDYl", function(module, exports) { +"use strict"; +Object.defineProperty(module.exports, "__esModule", { + value: true +}); +module.exports.checkBypass = module.exports.getProxyUrl = void 0; +function $252167d65bf4b0b8$var$getProxyUrl(reqUrl) { + const usingSsl = reqUrl.protocol === "https:"; + if ($252167d65bf4b0b8$var$checkBypass(reqUrl)) return undefined; + const proxyVar = (()=>{ + if (usingSsl) return process.env["https_proxy"] || process.env["HTTPS_PROXY"]; + else return process.env["http_proxy"] || process.env["HTTP_PROXY"]; + })(); + if (proxyVar) return new URL(proxyVar); + else return undefined; +} +module.exports.getProxyUrl = $252167d65bf4b0b8$var$getProxyUrl; +function $252167d65bf4b0b8$var$checkBypass(reqUrl) { + if (!reqUrl.hostname) return false; + const noProxy = process.env["no_proxy"] || process.env["NO_PROXY"] || ""; + if (!noProxy) return false; + // Determine the request port + let reqPort; + if (reqUrl.port) reqPort = Number(reqUrl.port); + else if (reqUrl.protocol === "http:") reqPort = 80; + else if (reqUrl.protocol === "https:") reqPort = 443; + // Format the request hostname and hostname with port + const upperReqHosts = [ + reqUrl.hostname.toUpperCase() + ]; + if (typeof reqPort === "number") upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); + // Compare request host against noproxy + for (const upperNoProxyItem of noProxy.split(",").map((x)=>x.trim().toUpperCase()).filter((x)=>x)){ + if (upperReqHosts.some((x)=>x === upperNoProxyItem)) return true; } - patch(requestUrl, data, additionalHeaders) { - return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { - return this.request("PATCH", requestUrl, data, additionalHeaders || {}); - }); - } - put(requestUrl, data, additionalHeaders) { - return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { - return this.request("PUT", requestUrl, data, additionalHeaders || {}); - }); + return false; +} +module.exports.checkBypass = $252167d65bf4b0b8$var$checkBypass; + +}); + +parcelRequire.register("3kNsr", function(module, exports) { + +module.exports = (parcelRequire("50iDP")); + +}); +parcelRequire.register("50iDP", function(module, exports) { + +$parcel$export(module.exports, "httpOverHttp", () => $3a4b69a525277b24$export$25cbd437c61a3835, (v) => $3a4b69a525277b24$export$25cbd437c61a3835 = v); +$parcel$export(module.exports, "httpsOverHttp", () => $3a4b69a525277b24$export$c06e3df7111bae43, (v) => $3a4b69a525277b24$export$c06e3df7111bae43 = v); +$parcel$export(module.exports, "httpOverHttps", () => $3a4b69a525277b24$export$5d50e36ef656139f, (v) => $3a4b69a525277b24$export$5d50e36ef656139f = v); +$parcel$export(module.exports, "httpsOverHttps", () => $3a4b69a525277b24$export$212d6605025321cc, (v) => $3a4b69a525277b24$export$212d6605025321cc = v); +$parcel$export(module.exports, "debug", () => $3a4b69a525277b24$export$1c9f709888824e05, (v) => $3a4b69a525277b24$export$1c9f709888824e05 = v); +var $3a4b69a525277b24$export$25cbd437c61a3835; +var $3a4b69a525277b24$export$c06e3df7111bae43; +var $3a4b69a525277b24$export$5d50e36ef656139f; +var $3a4b69a525277b24$export$212d6605025321cc; +var $3a4b69a525277b24$export$1c9f709888824e05; +"use strict"; + + + + + + + +$3a4b69a525277b24$export$25cbd437c61a3835 = $3a4b69a525277b24$var$httpOverHttp; +$3a4b69a525277b24$export$c06e3df7111bae43 = $3a4b69a525277b24$var$httpsOverHttp; +$3a4b69a525277b24$export$5d50e36ef656139f = $3a4b69a525277b24$var$httpOverHttps; +$3a4b69a525277b24$export$212d6605025321cc = $3a4b69a525277b24$var$httpsOverHttps; +function $3a4b69a525277b24$var$httpOverHttp(options) { + var agent = new $3a4b69a525277b24$var$TunnelingAgent(options); + agent.request = $bknAJ$http.request; + return agent; +} +function $3a4b69a525277b24$var$httpsOverHttp(options) { + var agent = new $3a4b69a525277b24$var$TunnelingAgent(options); + agent.request = $bknAJ$http.request; + agent.createSocket = $3a4b69a525277b24$var$createSecureSocket; + agent.defaultPort = 443; + return agent; +} +function $3a4b69a525277b24$var$httpOverHttps(options) { + var agent = new $3a4b69a525277b24$var$TunnelingAgent(options); + agent.request = $bknAJ$https.request; + return agent; +} +function $3a4b69a525277b24$var$httpsOverHttps(options) { + var agent = new $3a4b69a525277b24$var$TunnelingAgent(options); + agent.request = $bknAJ$https.request; + agent.createSocket = $3a4b69a525277b24$var$createSecureSocket; + agent.defaultPort = 443; + return agent; +} +function $3a4b69a525277b24$var$TunnelingAgent(options) { + var self = this; + self.options = options || {}; + self.proxyOptions = self.options.proxy || {}; + self.maxSockets = self.options.maxSockets || $bknAJ$http.Agent.defaultMaxSockets; + self.requests = []; + self.sockets = []; + self.on("free", function onFree(socket, host, port, localAddress) { + var options = $3a4b69a525277b24$var$toOptions(host, port, localAddress); + for(var i = 0, len = self.requests.length; i < len; ++i){ + var pending = self.requests[i]; + if (pending.host === options.host && pending.port === options.port) { + // Detect the request to connect same origin server, + // reuse the connection. + self.requests.splice(i, 1); + pending.request.onSocket(socket); + return; + } + } + socket.destroy(); + self.removeSocket(socket); + }); +} +$bknAJ$util.inherits($3a4b69a525277b24$var$TunnelingAgent, $bknAJ$events.EventEmitter); +$3a4b69a525277b24$var$TunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) { + var self = this; + var options = $3a4b69a525277b24$var$mergeOptions({ + request: req + }, self.options, $3a4b69a525277b24$var$toOptions(host, port, localAddress)); + if (self.sockets.length >= this.maxSockets) { + // We are over limit so we'll add it to the queue. + self.requests.push(options); + return; } - head(requestUrl, additionalHeaders) { - return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { - return this.request("HEAD", requestUrl, null, additionalHeaders || {}); - }); + // If we are under maxSockets create a new one. + self.createSocket(options, function(socket) { + socket.on("free", onFree); + socket.on("close", onCloseOrRemove); + socket.on("agentRemove", onCloseOrRemove); + req.onSocket(socket); + function onFree() { + self.emit("free", socket, options); + } + function onCloseOrRemove(err) { + self.removeSocket(socket); + socket.removeListener("free", onFree); + socket.removeListener("close", onCloseOrRemove); + socket.removeListener("agentRemove", onCloseOrRemove); + } + }); +}; +$3a4b69a525277b24$var$TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { + var self = this; + var placeholder = {}; + self.sockets.push(placeholder); + var connectOptions = $3a4b69a525277b24$var$mergeOptions({}, self.proxyOptions, { + method: "CONNECT", + path: options.host + ":" + options.port, + agent: false, + headers: { + host: options.host + ":" + options.port + } + }); + if (options.localAddress) connectOptions.localAddress = options.localAddress; + if (connectOptions.proxyAuth) { + connectOptions.headers = connectOptions.headers || {}; + connectOptions.headers["Proxy-Authorization"] = "Basic " + new Buffer(connectOptions.proxyAuth).toString("base64"); } - sendStream(verb, requestUrl, stream, additionalHeaders) { - return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { - return this.request(verb, requestUrl, stream, additionalHeaders); - }); + $3a4b69a525277b24$var$debug("making CONNECT request"); + var connectReq = self.request(connectOptions); + connectReq.useChunkedEncodingByDefault = false; // for v0.6 + connectReq.once("response", onResponse); // for v0.6 + connectReq.once("upgrade", onUpgrade); // for v0.6 + connectReq.once("connect", onConnect); // for v0.7 or later + connectReq.once("error", onError); + connectReq.end(); + function onResponse(res) { + // Very hacky. This is necessary to avoid http-parser leaks. + res.upgrade = true; } - /** - * Gets a typed object from an endpoint - * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise - */ getJson(requestUrl, additionalHeaders = {}) { - return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { - additionalHeaders[$62b24303e3aed667$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $62b24303e3aed667$var$Headers.Accept, $62b24303e3aed667$var$MediaTypes.ApplicationJson); - const res = yield this.get(requestUrl, additionalHeaders); - return this._processResponse(res, this.requestOptions); + function onUpgrade(res, socket, head) { + // Hacky. + process.nextTick(function() { + onConnect(res, socket, head); }); } - postJson(requestUrl, obj, additionalHeaders = {}) { - return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { - const data = JSON.stringify(obj, null, 2); - additionalHeaders[$62b24303e3aed667$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $62b24303e3aed667$var$Headers.Accept, $62b24303e3aed667$var$MediaTypes.ApplicationJson); - additionalHeaders[$62b24303e3aed667$var$Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, $62b24303e3aed667$var$Headers.ContentType, $62b24303e3aed667$var$MediaTypes.ApplicationJson); - const res = yield this.post(requestUrl, data, additionalHeaders); - return this._processResponse(res, this.requestOptions); - }); + function onConnect(res, socket, head) { + connectReq.removeAllListeners(); + socket.removeAllListeners(); + if (res.statusCode !== 200) { + $3a4b69a525277b24$var$debug("tunneling socket could not be established, statusCode=%d", res.statusCode); + socket.destroy(); + var error = new Error("tunneling socket could not be established, statusCode=" + res.statusCode); + error.code = "ECONNRESET"; + options.request.emit("error", error); + self.removeSocket(placeholder); + return; + } + if (head.length > 0) { + $3a4b69a525277b24$var$debug("got illegal response body from proxy"); + socket.destroy(); + var error = new Error("got illegal response body from proxy"); + error.code = "ECONNRESET"; + options.request.emit("error", error); + self.removeSocket(placeholder); + return; + } + $3a4b69a525277b24$var$debug("tunneling connection has established"); + self.sockets[self.sockets.indexOf(placeholder)] = socket; + return cb(socket); } - putJson(requestUrl, obj, additionalHeaders = {}) { - return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { - const data = JSON.stringify(obj, null, 2); - additionalHeaders[$62b24303e3aed667$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $62b24303e3aed667$var$Headers.Accept, $62b24303e3aed667$var$MediaTypes.ApplicationJson); - additionalHeaders[$62b24303e3aed667$var$Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, $62b24303e3aed667$var$Headers.ContentType, $62b24303e3aed667$var$MediaTypes.ApplicationJson); - const res = yield this.put(requestUrl, data, additionalHeaders); - return this._processResponse(res, this.requestOptions); - }); + function onError(cause) { + connectReq.removeAllListeners(); + $3a4b69a525277b24$var$debug("tunneling socket could not be established, cause=%s\n", cause.message, cause.stack); + var error = new Error("tunneling socket could not be established, cause=" + cause.message); + error.code = "ECONNRESET"; + options.request.emit("error", error); + self.removeSocket(placeholder); } - patchJson(requestUrl, obj, additionalHeaders = {}) { - return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { - const data = JSON.stringify(obj, null, 2); - additionalHeaders[$62b24303e3aed667$var$Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, $62b24303e3aed667$var$Headers.Accept, $62b24303e3aed667$var$MediaTypes.ApplicationJson); - additionalHeaders[$62b24303e3aed667$var$Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, $62b24303e3aed667$var$Headers.ContentType, $62b24303e3aed667$var$MediaTypes.ApplicationJson); - const res = yield this.patch(requestUrl, data, additionalHeaders); - return this._processResponse(res, this.requestOptions); +}; +$3a4b69a525277b24$var$TunnelingAgent.prototype.removeSocket = function removeSocket(socket) { + var pos = this.sockets.indexOf(socket); + if (pos === -1) return; + this.sockets.splice(pos, 1); + var pending = this.requests.shift(); + if (pending) // If we have pending requests and a socket gets closed a new one + // needs to be created to take over in the pool for the one that closed. + this.createSocket(pending, function(socket) { + pending.request.onSocket(socket); + }); +}; +function $3a4b69a525277b24$var$createSecureSocket(options, cb) { + var self = this; + $3a4b69a525277b24$var$TunnelingAgent.prototype.createSocket.call(self, options, function(socket) { + var hostHeader = options.request.getHeader("host"); + var tlsOptions = $3a4b69a525277b24$var$mergeOptions({}, self.options, { + socket: socket, + servername: hostHeader ? hostHeader.replace(/:.*$/, "") : options.host }); + // 0 is dummy port for v0.6 + var secureSocket = $bknAJ$tls.connect(0, tlsOptions); + self.sockets[self.sockets.indexOf(socket)] = secureSocket; + cb(secureSocket); + }); +} +function $3a4b69a525277b24$var$toOptions(host, port, localAddress) { + if (typeof host === "string") return { + host: host, + port: port, + localAddress: localAddress + }; + return host; // for v0.11 or later +} +function $3a4b69a525277b24$var$mergeOptions(target) { + for(var i = 1, len = arguments.length; i < len; ++i){ + var overrides = arguments[i]; + if (typeof overrides === "object") { + var keys = Object.keys(overrides); + for(var j = 0, keyLen = keys.length; j < keyLen; ++j){ + var k = keys[j]; + if (overrides[k] !== undefined) target[k] = overrides[k]; + } + } } - /** - * Makes a raw http request. - * All other methods such as get, post, patch, and request ultimately call this. - * Prefer get, del, post and patch - */ request(verb, requestUrl, data, headers) { - return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { - if (this._disposed) throw new Error("Client has already been disposed."); - const parsedUrl = new URL(requestUrl); - let info = this._prepareRequest(verb, parsedUrl, headers); - // Only perform retries on reads since writes may not be idempotent. - const maxTries = this._allowRetries && $62b24303e3aed667$var$RetryableHttpVerbs.includes(verb) ? this._maxRetries + 1 : 1; - let numTries = 0; - let response; - do { - response = yield this.requestRaw(info, data); - // Check if it's an authentication challenge - if (response && response.message && response.message.statusCode === $62b24303e3aed667$var$HttpCodes.Unauthorized) { - let authenticationHandler; - for (const handler of this.handlers)if (handler.canHandleAuthentication(response)) { - authenticationHandler = handler; - break; - } - if (authenticationHandler) return authenticationHandler.handleAuthentication(this, info, data); - else // We have received an unauthorized response but have no handlers to handle it. - // Let the response return to the caller. - return response; - } - let redirectsRemaining = this._maxRedirects; - while(response.message.statusCode && $62b24303e3aed667$var$HttpRedirectCodes.includes(response.message.statusCode) && this._allowRedirects && redirectsRemaining > 0){ - const redirectUrl = response.message.headers["location"]; - if (!redirectUrl) break; - const parsedRedirectUrl = new URL(redirectUrl); - if (parsedUrl.protocol === "https:" && parsedUrl.protocol !== parsedRedirectUrl.protocol && !this._allowRedirectDowngrade) throw new Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true."); - // we need to finish reading the response before reassigning response - // which will leak the open socket. - yield response.readBody(); - // strip authorization header if redirected to a different hostname - if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { - for(const header in headers)// header names are case insensitive - if (header.toLowerCase() === "authorization") delete headers[header]; - } - // let's make the request with the new redirectUrl - info = this._prepareRequest(verb, parsedRedirectUrl, headers); - response = yield this.requestRaw(info, data); - redirectsRemaining--; - } - if (!response.message.statusCode || !$62b24303e3aed667$var$HttpResponseRetryCodes.includes(response.message.statusCode)) // If not a retry code, return immediately instead of retrying - return response; - numTries += 1; - if (numTries < maxTries) { - yield response.readBody(); - yield this._performExponentialBackoff(numTries); - } - }while (numTries < maxTries); - return response; - }); - } - /** - * Needs to be called if keepAlive is set to true in request options. - */ dispose() { - if (this._agent) this._agent.destroy(); - this._disposed = true; + return target; +} +var $3a4b69a525277b24$var$debug; +if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) $3a4b69a525277b24$var$debug = function() { + var args = Array.prototype.slice.call(arguments); + if (typeof args[0] === "string") args[0] = "TUNNEL: " + args[0]; + else args.unshift("TUNNEL:"); + console.error.apply(console, args); +}; +else $3a4b69a525277b24$var$debug = function() {}; +$3a4b69a525277b24$export$1c9f709888824e05 = $3a4b69a525277b24$var$debug; // for test + +}); + + + +parcelRequire.register("2sRbM", function(module, exports) { +"use strict"; +var $1cb7748a0c6124b0$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { + enumerable: true, + get: function() { + return m[k]; + } + }); +} : function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +}); +var $1cb7748a0c6124b0$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { + enumerable: true, + value: v + }); +} : function(o, v) { + o["default"] = v; +}); +var $1cb7748a0c6124b0$var$__importStar = module.exports && module.exports.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $1cb7748a0c6124b0$var$__createBinding(result, mod, k); } - /** - * Raw request. - * @param info - * @param data - */ requestRaw(info, data) { - return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { - return new Promise((resolve, reject)=>{ - function callbackForResult(err, res) { - if (err) reject(err); - else if (!res) // If `err` is not passed, then `res` must be passed. - reject(new Error("Unknown error")); - else resolve(res); - } - this.requestRawWithCallback(info, data, callbackForResult); - }); + $1cb7748a0c6124b0$var$__setModuleDefault(result, mod); + return result; +}; +var $1cb7748a0c6124b0$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); }); } - /** - * Raw request with callback. - * @param info - * @param data - * @param onResult - */ requestRawWithCallback(info, data, onResult) { - if (typeof data === "string") { - if (!info.options.headers) info.options.headers = {}; - info.options.headers["Content-Length"] = Buffer.byteLength(data, "utf8"); + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } } - let callbackCalled = false; - function handleResult(err, res) { - if (!callbackCalled) { - callbackCalled = true; - onResult(err, res); + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); } } - const req = info.httpModule.request(info.options, (msg)=>{ - const res = new $62b24303e3aed667$var$HttpClientResponse(msg); - handleResult(undefined, res); - }); - let socket; - req.on("socket", (sock)=>{ - socket = sock; - }); - // If we ever get disconnected, we want the socket to timeout eventually - req.setTimeout(this._socketTimeout || 180000, ()=>{ - if (socket) socket.end(); - handleResult(new Error(`Request timeout: ${info.options.path}`)); - }); - req.on("error", function(err) { - // err has statusCode property - // res should have headers - handleResult(err); - }); - if (data && typeof data === "string") req.write(data, "utf8"); - if (data && typeof data !== "string") { - data.on("close", function() { - req.end(); - }); - data.pipe(req); - } else req.end(); + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(module.exports, "__esModule", { + value: true +}); +module.exports.argStringToArray = module.exports.ToolRunner = void 0; + +const $1cb7748a0c6124b0$var$os = $1cb7748a0c6124b0$var$__importStar($bknAJ$os); + +const $1cb7748a0c6124b0$var$events = $1cb7748a0c6124b0$var$__importStar($bknAJ$events); + +const $1cb7748a0c6124b0$var$child = $1cb7748a0c6124b0$var$__importStar($bknAJ$child_process); + +const $1cb7748a0c6124b0$var$path = $1cb7748a0c6124b0$var$__importStar($bknAJ$path); + +const $1cb7748a0c6124b0$var$io = $1cb7748a0c6124b0$var$__importStar((parcelRequire("aKDK7"))); + +const $1cb7748a0c6124b0$var$ioUtil = $1cb7748a0c6124b0$var$__importStar((parcelRequire("gFnb3"))); + +/* eslint-disable @typescript-eslint/unbound-method */ const $1cb7748a0c6124b0$var$IS_WINDOWS = process.platform === "win32"; +/* + * Class for running command line tools. Handles quoting and arg parsing in a platform agnostic way. + */ class $1cb7748a0c6124b0$var$ToolRunner extends $1cb7748a0c6124b0$var$events.EventEmitter { + constructor(toolPath, args, options){ + super(); + if (!toolPath) throw new Error("Parameter 'toolPath' cannot be null or empty."); + this.toolPath = toolPath; + this.args = args || []; + this.options = options || {}; } - /** - * Gets an http agent. This function is useful when you need an http agent that handles - * routing through a proxy server - depending upon the url and proxy environment variables. - * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com - */ getAgent(serverUrl) { - const parsedUrl = new URL(serverUrl); - return this._getAgent(parsedUrl); + _debug(message) { + if (this.options.listeners && this.options.listeners.debug) this.options.listeners.debug(message); } - _prepareRequest(method, requestUrl, headers) { - const info = {}; - info.parsedUrl = requestUrl; - const usingSsl = info.parsedUrl.protocol === "https:"; - info.httpModule = usingSsl ? $62b24303e3aed667$var$https : $62b24303e3aed667$var$http; - const defaultPort = usingSsl ? 443 : 80; - info.options = {}; - info.options.host = info.parsedUrl.hostname; - info.options.port = info.parsedUrl.port ? parseInt(info.parsedUrl.port) : defaultPort; - info.options.path = (info.parsedUrl.pathname || "") + (info.parsedUrl.search || ""); - info.options.method = method; - info.options.headers = this._mergeHeaders(headers); - if (this.userAgent != null) info.options.headers["user-agent"] = this.userAgent; - info.options.agent = this._getAgent(info.parsedUrl); - // gives handlers an opportunity to participate - if (this.handlers) for (const handler of this.handlers)handler.prepareRequest(info.options); - return info; + _getCommandString(options, noPrefix) { + const toolPath = this._getSpawnFileName(); + const args = this._getSpawnArgs(options); + let cmd = noPrefix ? "" : "[command]"; // omit prefix when piped to a second tool + if ($1cb7748a0c6124b0$var$IS_WINDOWS) { + // Windows + cmd file + if (this._isCmdFile()) { + cmd += toolPath; + for (const a of args)cmd += ` ${a}`; + } else if (options.windowsVerbatimArguments) { + cmd += `"${toolPath}"`; + for (const a of args)cmd += ` ${a}`; + } else { + cmd += this._windowsQuoteCmdArg(toolPath); + for (const a of args)cmd += ` ${this._windowsQuoteCmdArg(a)}`; + } + } else { + // OSX/Linux - this can likely be improved with some form of quoting. + // creating processes on Unix is fundamentally different than Windows. + // on Unix, execvp() takes an arg array. + cmd += toolPath; + for (const a of args)cmd += ` ${a}`; + } + return cmd; } - _mergeHeaders(headers) { - if (this.requestOptions && this.requestOptions.headers) return Object.assign({}, $62b24303e3aed667$var$lowercaseKeys(this.requestOptions.headers), $62b24303e3aed667$var$lowercaseKeys(headers || {})); - return $62b24303e3aed667$var$lowercaseKeys(headers || {}); - } - _getExistingOrDefaultHeader(additionalHeaders, header, _default) { - let clientHeader; - if (this.requestOptions && this.requestOptions.headers) clientHeader = $62b24303e3aed667$var$lowercaseKeys(this.requestOptions.headers)[header]; - return additionalHeaders[header] || clientHeader || _default; - } - _getAgent(parsedUrl) { - let agent; - const proxyUrl = $62b24303e3aed667$var$pm.getProxyUrl(parsedUrl); - const useProxy = proxyUrl && proxyUrl.hostname; - if (this._keepAlive && useProxy) agent = this._proxyAgent; - if (this._keepAlive && !useProxy) agent = this._agent; - // if agent is already assigned use that agent. - if (agent) return agent; - const usingSsl = parsedUrl.protocol === "https:"; - let maxSockets = 100; - if (this.requestOptions) maxSockets = this.requestOptions.maxSockets || $62b24303e3aed667$var$http.globalAgent.maxSockets; - // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis. - if (proxyUrl && proxyUrl.hostname) { - const agentOptions = { - maxSockets: maxSockets, - keepAlive: this._keepAlive, - proxy: Object.assign(Object.assign({}, (proxyUrl.username || proxyUrl.password) && { - proxyAuth: `${proxyUrl.username}:${proxyUrl.password}` - }), { - host: proxyUrl.hostname, - port: proxyUrl.port - }) - }; - let tunnelAgent; - const overHttps = proxyUrl.protocol === "https:"; - if (usingSsl) tunnelAgent = overHttps ? $62b24303e3aed667$var$tunnel.httpsOverHttps : $62b24303e3aed667$var$tunnel.httpsOverHttp; - else tunnelAgent = overHttps ? $62b24303e3aed667$var$tunnel.httpOverHttps : $62b24303e3aed667$var$tunnel.httpOverHttp; - agent = tunnelAgent(agentOptions); - this._proxyAgent = agent; + _processLineBuffer(data, strBuffer, onLine) { + try { + let s = strBuffer + data.toString(); + let n = s.indexOf($1cb7748a0c6124b0$var$os.EOL); + while(n > -1){ + const line = s.substring(0, n); + onLine(line); + // the rest of the string ... + s = s.substring(n + $1cb7748a0c6124b0$var$os.EOL.length); + n = s.indexOf($1cb7748a0c6124b0$var$os.EOL); + } + return s; + } catch (err) { + // streaming lines to console is best effort. Don't fail a build. + this._debug(`error processing line. Failed with error ${err}`); + return ""; } - // if reusing agent across request and tunneling agent isn't assigned create a new agent - if (this._keepAlive && !agent) { - const options = { - keepAlive: this._keepAlive, - maxSockets: maxSockets - }; - agent = usingSsl ? new $62b24303e3aed667$var$https.Agent(options) : new $62b24303e3aed667$var$http.Agent(options); - this._agent = agent; + } + _getSpawnFileName() { + if ($1cb7748a0c6124b0$var$IS_WINDOWS) { + if (this._isCmdFile()) return process.env["COMSPEC"] || "cmd.exe"; } - // if not using private agent and tunnel agent isn't setup then use global agent - if (!agent) agent = usingSsl ? $62b24303e3aed667$var$https.globalAgent : $62b24303e3aed667$var$http.globalAgent; - if (usingSsl && this._ignoreSslError) // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process - // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options - // we have to cast it to any and change it directly - agent.options = Object.assign(agent.options || {}, { - rejectUnauthorized: false - }); - return agent; + return this.toolPath; } - _performExponentialBackoff(retryNumber) { - return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { - retryNumber = Math.min($62b24303e3aed667$var$ExponentialBackoffCeiling, retryNumber); - const ms = $62b24303e3aed667$var$ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); - return new Promise((resolve)=>setTimeout(()=>resolve(), ms)); - }); + _getSpawnArgs(options) { + if ($1cb7748a0c6124b0$var$IS_WINDOWS) { + if (this._isCmdFile()) { + let argline = `/D /S /C "${this._windowsQuoteCmdArg(this.toolPath)}`; + for (const a of this.args){ + argline += " "; + argline += options.windowsVerbatimArguments ? a : this._windowsQuoteCmdArg(a); + } + argline += '"'; + return [ + argline + ]; + } + } + return this.args; } - _processResponse(res, options) { - return $62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { - return new Promise((resolve, reject)=>$62b24303e3aed667$var$__awaiter(this, void 0, void 0, function*() { - const statusCode = res.message.statusCode || 0; - const response = { - statusCode: statusCode, - result: null, - headers: {} - }; - // not found leads to null obj returned - if (statusCode === $62b24303e3aed667$var$HttpCodes.NotFound) resolve(response); - // get the result from the body - function dateTimeDeserializer(key, value) { - if (typeof value === "string") { - const a = new Date(value); - if (!isNaN(a.valueOf())) return a; - } - return value; - } - let obj; - let contents; - try { - contents = yield res.readBody(); - if (contents && contents.length > 0) { - if (options && options.deserializeDates) obj = JSON.parse(contents, dateTimeDeserializer); - else obj = JSON.parse(contents); - response.result = obj; - } - response.headers = res.message.headers; - } catch (err) { - // Invalid resource (contents not json); leaving result obj null - } - // note that 3xx redirects are handled by the http layer. - if (statusCode > 299) { - let msg; - // if exception/error in body, attempt to get better error - if (obj && obj.message) msg = obj.message; - else if (contents && contents.length > 0) // it may be the case that the exception is in the body message as string - msg = contents; - else msg = `Failed request: (${statusCode})`; - const err = new $62b24303e3aed667$var$HttpClientError(msg, statusCode); - err.result = response.result; - reject(err); - } else resolve(response); - })); - }); + _endsWith(str, end) { + return str.endsWith(end); } -} -module.exports.HttpClient = $62b24303e3aed667$var$HttpClient; -const $62b24303e3aed667$var$lowercaseKeys = (obj)=>Object.keys(obj).reduce((c, k)=>(c[k.toLowerCase()] = obj[k], c), {}); - -}); -parcelRequire.register("3bDYl", function(module, exports) { -"use strict"; -Object.defineProperty(module.exports, "__esModule", { - value: true -}); -module.exports.checkBypass = module.exports.getProxyUrl = void 0; -function $252167d65bf4b0b8$var$getProxyUrl(reqUrl) { - const usingSsl = reqUrl.protocol === "https:"; - if ($252167d65bf4b0b8$var$checkBypass(reqUrl)) return undefined; - const proxyVar = (()=>{ - if (usingSsl) return process.env["https_proxy"] || process.env["HTTPS_PROXY"]; - else return process.env["http_proxy"] || process.env["HTTP_PROXY"]; - })(); - if (proxyVar) return new URL(proxyVar); - else return undefined; -} -module.exports.getProxyUrl = $252167d65bf4b0b8$var$getProxyUrl; -function $252167d65bf4b0b8$var$checkBypass(reqUrl) { - if (!reqUrl.hostname) return false; - const noProxy = process.env["no_proxy"] || process.env["NO_PROXY"] || ""; - if (!noProxy) return false; - // Determine the request port - let reqPort; - if (reqUrl.port) reqPort = Number(reqUrl.port); - else if (reqUrl.protocol === "http:") reqPort = 80; - else if (reqUrl.protocol === "https:") reqPort = 443; - // Format the request hostname and hostname with port - const upperReqHosts = [ - reqUrl.hostname.toUpperCase() - ]; - if (typeof reqPort === "number") upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); - // Compare request host against noproxy - for (const upperNoProxyItem of noProxy.split(",").map((x)=>x.trim().toUpperCase()).filter((x)=>x)){ - if (upperReqHosts.some((x)=>x === upperNoProxyItem)) return true; + _isCmdFile() { + const upperToolPath = this.toolPath.toUpperCase(); + return this._endsWith(upperToolPath, ".CMD") || this._endsWith(upperToolPath, ".BAT"); } - return false; -} -module.exports.checkBypass = $252167d65bf4b0b8$var$checkBypass; - -}); - -parcelRequire.register("3kNsr", function(module, exports) { - -module.exports = (parcelRequire("50iDP")); - -}); -parcelRequire.register("50iDP", function(module, exports) { - -$parcel$export(module.exports, "httpOverHttp", () => $3a4b69a525277b24$export$25cbd437c61a3835, (v) => $3a4b69a525277b24$export$25cbd437c61a3835 = v); -$parcel$export(module.exports, "httpsOverHttp", () => $3a4b69a525277b24$export$c06e3df7111bae43, (v) => $3a4b69a525277b24$export$c06e3df7111bae43 = v); -$parcel$export(module.exports, "httpOverHttps", () => $3a4b69a525277b24$export$5d50e36ef656139f, (v) => $3a4b69a525277b24$export$5d50e36ef656139f = v); -$parcel$export(module.exports, "httpsOverHttps", () => $3a4b69a525277b24$export$212d6605025321cc, (v) => $3a4b69a525277b24$export$212d6605025321cc = v); -$parcel$export(module.exports, "debug", () => $3a4b69a525277b24$export$1c9f709888824e05, (v) => $3a4b69a525277b24$export$1c9f709888824e05 = v); -var $3a4b69a525277b24$export$25cbd437c61a3835; -var $3a4b69a525277b24$export$c06e3df7111bae43; -var $3a4b69a525277b24$export$5d50e36ef656139f; -var $3a4b69a525277b24$export$212d6605025321cc; -var $3a4b69a525277b24$export$1c9f709888824e05; -"use strict"; - - - - - - - -$3a4b69a525277b24$export$25cbd437c61a3835 = $3a4b69a525277b24$var$httpOverHttp; -$3a4b69a525277b24$export$c06e3df7111bae43 = $3a4b69a525277b24$var$httpsOverHttp; -$3a4b69a525277b24$export$5d50e36ef656139f = $3a4b69a525277b24$var$httpOverHttps; -$3a4b69a525277b24$export$212d6605025321cc = $3a4b69a525277b24$var$httpsOverHttps; -function $3a4b69a525277b24$var$httpOverHttp(options) { - var agent = new $3a4b69a525277b24$var$TunnelingAgent(options); - agent.request = $kzVu7$http.request; - return agent; -} -function $3a4b69a525277b24$var$httpsOverHttp(options) { - var agent = new $3a4b69a525277b24$var$TunnelingAgent(options); - agent.request = $kzVu7$http.request; - agent.createSocket = $3a4b69a525277b24$var$createSecureSocket; - agent.defaultPort = 443; - return agent; -} -function $3a4b69a525277b24$var$httpOverHttps(options) { - var agent = new $3a4b69a525277b24$var$TunnelingAgent(options); - agent.request = $kzVu7$https.request; - return agent; -} -function $3a4b69a525277b24$var$httpsOverHttps(options) { - var agent = new $3a4b69a525277b24$var$TunnelingAgent(options); - agent.request = $kzVu7$https.request; - agent.createSocket = $3a4b69a525277b24$var$createSecureSocket; - agent.defaultPort = 443; - return agent; -} -function $3a4b69a525277b24$var$TunnelingAgent(options) { - var self = this; - self.options = options || {}; - self.proxyOptions = self.options.proxy || {}; - self.maxSockets = self.options.maxSockets || $kzVu7$http.Agent.defaultMaxSockets; - self.requests = []; - self.sockets = []; - self.on("free", function onFree(socket, host, port, localAddress) { - var options = $3a4b69a525277b24$var$toOptions(host, port, localAddress); - for(var i = 0, len = self.requests.length; i < len; ++i){ - var pending = self.requests[i]; - if (pending.host === options.host && pending.port === options.port) { - // Detect the request to connect same origin server, - // reuse the connection. - self.requests.splice(i, 1); - pending.request.onSocket(socket); - return; - } - } - socket.destroy(); - self.removeSocket(socket); - }); -} -$kzVu7$util.inherits($3a4b69a525277b24$var$TunnelingAgent, $kzVu7$events.EventEmitter); -$3a4b69a525277b24$var$TunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) { - var self = this; - var options = $3a4b69a525277b24$var$mergeOptions({ - request: req - }, self.options, $3a4b69a525277b24$var$toOptions(host, port, localAddress)); - if (self.sockets.length >= this.maxSockets) { - // We are over limit so we'll add it to the queue. - self.requests.push(options); - return; - } - // If we are under maxSockets create a new one. - self.createSocket(options, function(socket) { - socket.on("free", onFree); - socket.on("close", onCloseOrRemove); - socket.on("agentRemove", onCloseOrRemove); - req.onSocket(socket); - function onFree() { - self.emit("free", socket, options); + _windowsQuoteCmdArg(arg) { + // for .exe, apply the normal quoting rules that libuv applies + if (!this._isCmdFile()) return this._uvQuoteCmdArg(arg); + // otherwise apply quoting rules specific to the cmd.exe command line parser. + // the libuv rules are generic and are not designed specifically for cmd.exe + // command line parser. + // + // for a detailed description of the cmd.exe command line parser, refer to + // http://stackoverflow.com/questions/4094699/how-does-the-windows-command-interpreter-cmd-exe-parse-scripts/7970912#7970912 + // need quotes for empty arg + if (!arg) return '""'; + // determine whether the arg needs to be quoted + const cmdSpecialChars = [ + " ", + " ", + "&", + "(", + ")", + "[", + "]", + "{", + "}", + "^", + "=", + ";", + "!", + "'", + "+", + ",", + "`", + "~", + "|", + "<", + ">", + '"' + ]; + let needsQuotes = false; + for (const char of arg)if (cmdSpecialChars.some((x)=>x === char)) { + needsQuotes = true; + break; } - function onCloseOrRemove(err) { - self.removeSocket(socket); - socket.removeListener("free", onFree); - socket.removeListener("close", onCloseOrRemove); - socket.removeListener("agentRemove", onCloseOrRemove); + // short-circuit if quotes not needed + if (!needsQuotes) return arg; + // the following quoting rules are very similar to the rules that by libuv applies. + // + // 1) wrap the string in quotes + // + // 2) double-up quotes - i.e. " => "" + // + // this is different from the libuv quoting rules. libuv replaces " with \", which unfortunately + // doesn't work well with a cmd.exe command line. + // + // note, replacing " with "" also works well if the arg is passed to a downstream .NET console app. + // for example, the command line: + // foo.exe "myarg:""my val""" + // is parsed by a .NET console app into an arg array: + // [ "myarg:\"my val\"" ] + // which is the same end result when applying libuv quoting rules. although the actual + // command line from libuv quoting rules would look like: + // foo.exe "myarg:\"my val\"" + // + // 3) double-up slashes that precede a quote, + // e.g. hello \world => "hello \world" + // hello\"world => "hello\\""world" + // hello\\"world => "hello\\\\""world" + // hello world\ => "hello world\\" + // + // technically this is not required for a cmd.exe command line, or the batch argument parser. + // the reasons for including this as a .cmd quoting rule are: + // + // a) this is optimized for the scenario where the argument is passed from the .cmd file to an + // external program. many programs (e.g. .NET console apps) rely on the slash-doubling rule. + // + // b) it's what we've been doing previously (by deferring to node default behavior) and we + // haven't heard any complaints about that aspect. + // + // note, a weakness of the quoting rules chosen here, is that % is not escaped. in fact, % cannot be + // escaped when used on the command line directly - even though within a .cmd file % can be escaped + // by using %%. + // + // the saving grace is, on the command line, %var% is left as-is if var is not defined. this contrasts + // the line parsing rules within a .cmd file, where if var is not defined it is replaced with nothing. + // + // one option that was explored was replacing % with ^% - i.e. %var% => ^%var^%. this hack would + // often work, since it is unlikely that var^ would exist, and the ^ character is removed when the + // variable is used. the problem, however, is that ^ is not removed when %* is used to pass the args + // to an external program. + // + // an unexplored potential solution for the % escaping problem, is to create a wrapper .cmd file. + // % can be escaped within a .cmd file. + let reverse = '"'; + let quoteHit = true; + for(let i = arg.length; i > 0; i--){ + // walk the string in reverse + reverse += arg[i - 1]; + if (quoteHit && arg[i - 1] === "\\") reverse += "\\"; // double the slash + else if (arg[i - 1] === '"') { + quoteHit = true; + reverse += '"'; // double the quote + } else quoteHit = false; } - }); -}; -$3a4b69a525277b24$var$TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { - var self = this; - var placeholder = {}; - self.sockets.push(placeholder); - var connectOptions = $3a4b69a525277b24$var$mergeOptions({}, self.proxyOptions, { - method: "CONNECT", - path: options.host + ":" + options.port, - agent: false, - headers: { - host: options.host + ":" + options.port + reverse += '"'; + return reverse.split("").reverse().join(""); + } + _uvQuoteCmdArg(arg) { + // Tool runner wraps child_process.spawn() and needs to apply the same quoting as + // Node in certain cases where the undocumented spawn option windowsVerbatimArguments + // is used. + // + // Since this function is a port of quote_cmd_arg from Node 4.x (technically, lib UV, + // see https://github.com/nodejs/node/blob/v4.x/deps/uv/src/win/process.c for details), + // pasting copyright notice from Node within this function: + // + // Copyright Joyent, Inc. and other Node contributors. All rights reserved. + // + // Permission is hereby granted, free of charge, to any person obtaining a copy + // of this software and associated documentation files (the "Software"), to + // deal in the Software without restriction, including without limitation the + // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + // sell copies of the Software, and to permit persons to whom the Software is + // furnished to do so, subject to the following conditions: + // + // The above copyright notice and this permission notice shall be included in + // all copies or substantial portions of the Software. + // + // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + // IN THE SOFTWARE. + if (!arg) // Need double quotation for empty argument + return '""'; + if (!arg.includes(" ") && !arg.includes(" ") && !arg.includes('"')) // No quotation needed + return arg; + if (!arg.includes('"') && !arg.includes("\\")) // No embedded double quotes or backslashes, so I can just wrap + // quote marks around the whole thing. + return `"${arg}"`; + // Expected input/output: + // input : hello"world + // output: "hello\"world" + // input : hello""world + // output: "hello\"\"world" + // input : hello\world + // output: hello\world + // input : hello\\world + // output: hello\\world + // input : hello\"world + // output: "hello\\\"world" + // input : hello\\"world + // output: "hello\\\\\"world" + // input : hello world\ + // output: "hello world\\" - note the comment in libuv actually reads "hello world\" + // but it appears the comment is wrong, it should be "hello world\\" + let reverse = '"'; + let quoteHit = true; + for(let i = arg.length; i > 0; i--){ + // walk the string in reverse + reverse += arg[i - 1]; + if (quoteHit && arg[i - 1] === "\\") reverse += "\\"; + else if (arg[i - 1] === '"') { + quoteHit = true; + reverse += "\\"; + } else quoteHit = false; } - }); - if (options.localAddress) connectOptions.localAddress = options.localAddress; - if (connectOptions.proxyAuth) { - connectOptions.headers = connectOptions.headers || {}; - connectOptions.headers["Proxy-Authorization"] = "Basic " + new Buffer(connectOptions.proxyAuth).toString("base64"); + reverse += '"'; + return reverse.split("").reverse().join(""); } - $3a4b69a525277b24$var$debug("making CONNECT request"); - var connectReq = self.request(connectOptions); - connectReq.useChunkedEncodingByDefault = false; // for v0.6 - connectReq.once("response", onResponse); // for v0.6 - connectReq.once("upgrade", onUpgrade); // for v0.6 - connectReq.once("connect", onConnect); // for v0.7 or later - connectReq.once("error", onError); - connectReq.end(); - function onResponse(res) { - // Very hacky. This is necessary to avoid http-parser leaks. - res.upgrade = true; + _cloneExecOptions(options) { + options = options || {}; + const result = { + cwd: options.cwd || process.cwd(), + env: options.env || process.env, + silent: options.silent || false, + windowsVerbatimArguments: options.windowsVerbatimArguments || false, + failOnStdErr: options.failOnStdErr || false, + ignoreReturnCode: options.ignoreReturnCode || false, + delay: options.delay || 10000 + }; + result.outStream = options.outStream || process.stdout; + result.errStream = options.errStream || process.stderr; + return result; } - function onUpgrade(res, socket, head) { - // Hacky. - process.nextTick(function() { - onConnect(res, socket, head); - }); + _getSpawnOptions(options, toolPath) { + options = options || {}; + const result = {}; + result.cwd = options.cwd; + result.env = options.env; + result["windowsVerbatimArguments"] = options.windowsVerbatimArguments || this._isCmdFile(); + if (options.windowsVerbatimArguments) result.argv0 = `"${toolPath}"`; + return result; } - function onConnect(res, socket, head) { - connectReq.removeAllListeners(); - socket.removeAllListeners(); - if (res.statusCode !== 200) { - $3a4b69a525277b24$var$debug("tunneling socket could not be established, statusCode=%d", res.statusCode); - socket.destroy(); - var error = new Error("tunneling socket could not be established, statusCode=" + res.statusCode); - error.code = "ECONNRESET"; - options.request.emit("error", error); - self.removeSocket(placeholder); - return; + /** + * Exec a tool. + * Output will be streamed to the live console. + * Returns promise with return code + * + * @param tool path to tool to exec + * @param options optional exec options. See ExecOptions + * @returns number + */ exec() { + return $1cb7748a0c6124b0$var$__awaiter(this, void 0, void 0, function*() { + // root the tool path if it is unrooted and contains relative pathing + if (!$1cb7748a0c6124b0$var$ioUtil.isRooted(this.toolPath) && (this.toolPath.includes("/") || $1cb7748a0c6124b0$var$IS_WINDOWS && this.toolPath.includes("\\"))) // prefer options.cwd if it is specified, however options.cwd may also need to be rooted + this.toolPath = $1cb7748a0c6124b0$var$path.resolve(process.cwd(), this.options.cwd || process.cwd(), this.toolPath); + // if the tool is only a file name, then resolve it from the PATH + // otherwise verify it exists (add extension on Windows if necessary) + this.toolPath = yield $1cb7748a0c6124b0$var$io.which(this.toolPath, true); + return new Promise((resolve, reject)=>$1cb7748a0c6124b0$var$__awaiter(this, void 0, void 0, function*() { + this._debug(`exec tool: ${this.toolPath}`); + this._debug("arguments:"); + for (const arg of this.args)this._debug(` ${arg}`); + const optionsNonNull = this._cloneExecOptions(this.options); + if (!optionsNonNull.silent && optionsNonNull.outStream) optionsNonNull.outStream.write(this._getCommandString(optionsNonNull) + $1cb7748a0c6124b0$var$os.EOL); + const state = new $1cb7748a0c6124b0$var$ExecState(optionsNonNull, this.toolPath); + state.on("debug", (message)=>{ + this._debug(message); + }); + if (this.options.cwd && !(yield $1cb7748a0c6124b0$var$ioUtil.exists(this.options.cwd))) return reject(new Error(`The cwd: ${this.options.cwd} does not exist!`)); + const fileName = this._getSpawnFileName(); + const cp = $1cb7748a0c6124b0$var$child.spawn(fileName, this._getSpawnArgs(optionsNonNull), this._getSpawnOptions(this.options, fileName)); + let stdbuffer = ""; + if (cp.stdout) cp.stdout.on("data", (data)=>{ + if (this.options.listeners && this.options.listeners.stdout) this.options.listeners.stdout(data); + if (!optionsNonNull.silent && optionsNonNull.outStream) optionsNonNull.outStream.write(data); + stdbuffer = this._processLineBuffer(data, stdbuffer, (line)=>{ + if (this.options.listeners && this.options.listeners.stdline) this.options.listeners.stdline(line); + }); + }); + let errbuffer = ""; + if (cp.stderr) cp.stderr.on("data", (data)=>{ + state.processStderr = true; + if (this.options.listeners && this.options.listeners.stderr) this.options.listeners.stderr(data); + if (!optionsNonNull.silent && optionsNonNull.errStream && optionsNonNull.outStream) { + const s = optionsNonNull.failOnStdErr ? optionsNonNull.errStream : optionsNonNull.outStream; + s.write(data); + } + errbuffer = this._processLineBuffer(data, errbuffer, (line)=>{ + if (this.options.listeners && this.options.listeners.errline) this.options.listeners.errline(line); + }); + }); + cp.on("error", (err)=>{ + state.processError = err.message; + state.processExited = true; + state.processClosed = true; + state.CheckComplete(); + }); + cp.on("exit", (code)=>{ + state.processExitCode = code; + state.processExited = true; + this._debug(`Exit code ${code} received from tool '${this.toolPath}'`); + state.CheckComplete(); + }); + cp.on("close", (code)=>{ + state.processExitCode = code; + state.processExited = true; + state.processClosed = true; + this._debug(`STDIO streams have closed for tool '${this.toolPath}'`); + state.CheckComplete(); + }); + state.on("done", (error, exitCode)=>{ + if (stdbuffer.length > 0) this.emit("stdline", stdbuffer); + if (errbuffer.length > 0) this.emit("errline", errbuffer); + cp.removeAllListeners(); + if (error) reject(error); + else resolve(exitCode); + }); + if (this.options.input) { + if (!cp.stdin) throw new Error("child process missing stdin"); + cp.stdin.end(this.options.input); + } + })); + }); + } +} +module.exports.ToolRunner = $1cb7748a0c6124b0$var$ToolRunner; +/** + * Convert an arg string to an array of args. Handles escaping + * + * @param argString string of arguments + * @returns string[] array of arguments + */ function $1cb7748a0c6124b0$var$argStringToArray(argString) { + const args = []; + let inQuotes = false; + let escaped = false; + let arg = ""; + function append(c) { + // we only escape double quotes. + if (escaped && c !== '"') arg += "\\"; + arg += c; + escaped = false; + } + for(let i = 0; i < argString.length; i++){ + const c = argString.charAt(i); + if (c === '"') { + if (!escaped) inQuotes = !inQuotes; + else append(c); + continue; } - if (head.length > 0) { - $3a4b69a525277b24$var$debug("got illegal response body from proxy"); - socket.destroy(); - var error = new Error("got illegal response body from proxy"); - error.code = "ECONNRESET"; - options.request.emit("error", error); - self.removeSocket(placeholder); - return; + if (c === "\\" && escaped) { + append(c); + continue; } - $3a4b69a525277b24$var$debug("tunneling connection has established"); - self.sockets[self.sockets.indexOf(placeholder)] = socket; - return cb(socket); - } - function onError(cause) { - connectReq.removeAllListeners(); - $3a4b69a525277b24$var$debug("tunneling socket could not be established, cause=%s\n", cause.message, cause.stack); - var error = new Error("tunneling socket could not be established, cause=" + cause.message); - error.code = "ECONNRESET"; - options.request.emit("error", error); - self.removeSocket(placeholder); + if (c === "\\" && inQuotes) { + escaped = true; + continue; + } + if (c === " " && !inQuotes) { + if (arg.length > 0) { + args.push(arg); + arg = ""; + } + continue; + } + append(c); } -}; -$3a4b69a525277b24$var$TunnelingAgent.prototype.removeSocket = function removeSocket(socket) { - var pos = this.sockets.indexOf(socket); - if (pos === -1) return; - this.sockets.splice(pos, 1); - var pending = this.requests.shift(); - if (pending) // If we have pending requests and a socket gets closed a new one - // needs to be created to take over in the pool for the one that closed. - this.createSocket(pending, function(socket) { - pending.request.onSocket(socket); - }); -}; -function $3a4b69a525277b24$var$createSecureSocket(options, cb) { - var self = this; - $3a4b69a525277b24$var$TunnelingAgent.prototype.createSocket.call(self, options, function(socket) { - var hostHeader = options.request.getHeader("host"); - var tlsOptions = $3a4b69a525277b24$var$mergeOptions({}, self.options, { - socket: socket, - servername: hostHeader ? hostHeader.replace(/:.*$/, "") : options.host - }); - // 0 is dummy port for v0.6 - var secureSocket = $kzVu7$tls.connect(0, tlsOptions); - self.sockets[self.sockets.indexOf(socket)] = secureSocket; - cb(secureSocket); - }); -} -function $3a4b69a525277b24$var$toOptions(host, port, localAddress) { - if (typeof host === "string") return { - host: host, - port: port, - localAddress: localAddress - }; - return host; // for v0.11 or later + if (arg.length > 0) args.push(arg.trim()); + return args; } -function $3a4b69a525277b24$var$mergeOptions(target) { - for(var i = 1, len = arguments.length; i < len; ++i){ - var overrides = arguments[i]; - if (typeof overrides === "object") { - var keys = Object.keys(overrides); - for(var j = 0, keyLen = keys.length; j < keyLen; ++j){ - var k = keys[j]; - if (overrides[k] !== undefined) target[k] = overrides[k]; - } +module.exports.argStringToArray = $1cb7748a0c6124b0$var$argStringToArray; +class $1cb7748a0c6124b0$var$ExecState extends $1cb7748a0c6124b0$var$events.EventEmitter { + constructor(options, toolPath){ + super(); + this.processClosed = false; // tracks whether the process has exited and stdio is closed + this.processError = ""; + this.processExitCode = 0; + this.processExited = false; // tracks whether the process has exited + this.processStderr = false; // tracks whether stderr was written to + this.delay = 10000; // 10 seconds + this.done = false; + this.timeout = null; + if (!toolPath) throw new Error("toolPath must not be empty"); + this.options = options; + this.toolPath = toolPath; + if (options.delay) this.delay = options.delay; + } + CheckComplete() { + if (this.done) return; + if (this.processClosed) this._setResult(); + else if (this.processExited) this.timeout = $bknAJ$timers.setTimeout($1cb7748a0c6124b0$var$ExecState.HandleTimeout, this.delay, this); + } + _debug(message) { + this.emit("debug", message); + } + _setResult() { + // determine whether there is an error + let error; + if (this.processExited) { + if (this.processError) error = new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`); + else if (this.processExitCode !== 0 && !this.options.ignoreReturnCode) error = new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`); + else if (this.processStderr && this.options.failOnStdErr) error = new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`); + } + // clear the timeout + if (this.timeout) { + clearTimeout(this.timeout); + this.timeout = null; + } + this.done = true; + this.emit("done", error, this.processExitCode); + } + static HandleTimeout(state) { + if (state.done) return; + if (!state.processClosed && state.processExited) { + const message = `The STDIO streams did not close within ${state.delay / 1000} seconds of the exit event from process '${state.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`; + state._debug(message); } + state._setResult(); } - return target; } -var $3a4b69a525277b24$var$debug; -if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) $3a4b69a525277b24$var$debug = function() { - var args = Array.prototype.slice.call(arguments); - if (typeof args[0] === "string") args[0] = "TUNNEL: " + args[0]; - else args.unshift("TUNNEL:"); - console.error.apply(console, args); -}; -else $3a4b69a525277b24$var$debug = function() {}; -$3a4b69a525277b24$export$1c9f709888824e05 = $3a4b69a525277b24$var$debug; // for test }); - - - -parcelRequire.register("cAajE", function(module, exports) { +parcelRequire.register("aKDK7", function(module, exports) { "use strict"; -var $9290d95b3b0ba4b7$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { +var $7d3d0757594417fa$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve) { resolve(value); @@ -1760,610 +1434,253 @@ var $9290d95b3b0ba4b7$var$__awaiter = module.exports && module.exports.__awaiter step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; +var $7d3d0757594417fa$var$__importStar = module.exports && module.exports.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for(var k in mod)if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; + } + result["default"] = mod; + return result; +}; Object.defineProperty(module.exports, "__esModule", { value: true }); -module.exports.PersonalAccessTokenCredentialHandler = module.exports.BearerCredentialHandler = module.exports.BasicCredentialHandler = void 0; -class $9290d95b3b0ba4b7$var$BasicCredentialHandler { - constructor(username, password){ - this.username = username; - this.password = password; - } - prepareRequest(options) { - if (!options.headers) throw Error("The request has no headers"); - options.headers["Authorization"] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString("base64")}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return $9290d95b3b0ba4b7$var$__awaiter(this, void 0, void 0, function*() { - throw new Error("not implemented"); - }); - } -} -module.exports.BasicCredentialHandler = $9290d95b3b0ba4b7$var$BasicCredentialHandler; -class $9290d95b3b0ba4b7$var$BearerCredentialHandler { - constructor(token){ - this.token = token; - } - // currently implements pre-authorization - // TODO: support preAuth = false where it hooks on 401 - prepareRequest(options) { - if (!options.headers) throw Error("The request has no headers"); - options.headers["Authorization"] = `Bearer ${this.token}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return $9290d95b3b0ba4b7$var$__awaiter(this, void 0, void 0, function*() { - throw new Error("not implemented"); - }); - } -} -module.exports.BearerCredentialHandler = $9290d95b3b0ba4b7$var$BearerCredentialHandler; -class $9290d95b3b0ba4b7$var$PersonalAccessTokenCredentialHandler { - constructor(token){ - this.token = token; - } - // currently implements pre-authorization - // TODO: support preAuth = false where it hooks on 401 - prepareRequest(options) { - if (!options.headers) throw Error("The request has no headers"); - options.headers["Authorization"] = `Basic ${Buffer.from(`PAT:${this.token}`).toString("base64")}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return $9290d95b3b0ba4b7$var$__awaiter(this, void 0, void 0, function*() { - throw new Error("not implemented"); - }); - } -} -module.exports.PersonalAccessTokenCredentialHandler = $9290d95b3b0ba4b7$var$PersonalAccessTokenCredentialHandler; -}); +const $7d3d0757594417fa$var$childProcess = $7d3d0757594417fa$var$__importStar($bknAJ$child_process); +const $7d3d0757594417fa$var$path = $7d3d0757594417fa$var$__importStar($bknAJ$path); -parcelRequire.register("b9rkq", function(module, exports) { -"use strict"; -var $81e5bbd73b3acf84$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); + +const $7d3d0757594417fa$var$ioUtil = $7d3d0757594417fa$var$__importStar((parcelRequire("gFnb3"))); +const $7d3d0757594417fa$var$exec = $bknAJ$util.promisify($7d3d0757594417fa$var$childProcess.exec); +/** + * Copies a file or folder. + * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js + * + * @param source source path + * @param dest destination path + * @param options optional. See CopyOptions. + */ function $7d3d0757594417fa$var$cp(source, dest, options = {}) { + return $7d3d0757594417fa$var$__awaiter(this, void 0, void 0, function*() { + const { force: force, recursive: recursive } = $7d3d0757594417fa$var$readCopyOptions(options); + const destStat = (yield $7d3d0757594417fa$var$ioUtil.exists(dest)) ? yield $7d3d0757594417fa$var$ioUtil.stat(dest) : null; + // Dest is an existing file, but not forcing + if (destStat && destStat.isFile() && !force) return; + // If dest is an existing directory, should copy inside. + const newDest = destStat && destStat.isDirectory() ? $7d3d0757594417fa$var$path.join(dest, $7d3d0757594417fa$var$path.basename(source)) : dest; + if (!(yield $7d3d0757594417fa$var$ioUtil.exists(source))) throw new Error(`no such file or directory: ${source}`); + const sourceStat = yield $7d3d0757594417fa$var$ioUtil.stat(source); + if (sourceStat.isDirectory()) { + if (!recursive) throw new Error(`Failed to copy. ${source} is a directory, but tried to copy without recursive flag.`); + else yield $7d3d0757594417fa$var$cpDirRecursive(source, newDest, 0, force); + } else { + if ($7d3d0757594417fa$var$path.relative(source, newDest) === "") // a file cannot be copied to itself + throw new Error(`'${newDest}' and '${source}' are the same file`); + yield $7d3d0757594417fa$var$copyFile(source, newDest, force); + } + }); +} +module.exports.cp = $7d3d0757594417fa$var$cp; +/** + * Moves a path. + * + * @param source source path + * @param dest destination path + * @param options optional. See MoveOptions. + */ function $7d3d0757594417fa$var$mv(source, dest, options = {}) { + return $7d3d0757594417fa$var$__awaiter(this, void 0, void 0, function*() { + if (yield $7d3d0757594417fa$var$ioUtil.exists(dest)) { + let destExists = true; + if (yield $7d3d0757594417fa$var$ioUtil.isDirectory(dest)) { + // If dest is directory copy src into dest + dest = $7d3d0757594417fa$var$path.join(dest, $7d3d0757594417fa$var$path.basename(source)); + destExists = yield $7d3d0757594417fa$var$ioUtil.exists(dest); + } + if (destExists) { + if (options.force == null || options.force) yield $7d3d0757594417fa$var$rmRF(dest); + else throw new Error("Destination already exists"); } } - function rejected(value) { + yield $7d3d0757594417fa$var$mkdirP($7d3d0757594417fa$var$path.dirname(dest)); + yield $7d3d0757594417fa$var$ioUtil.rename(source, dest); + }); +} +module.exports.mv = $7d3d0757594417fa$var$mv; +/** + * Remove a path recursively with force + * + * @param inputPath path to remove + */ function $7d3d0757594417fa$var$rmRF(inputPath) { + return $7d3d0757594417fa$var$__awaiter(this, void 0, void 0, function*() { + if ($7d3d0757594417fa$var$ioUtil.IS_WINDOWS) { + // Node doesn't provide a delete operation, only an unlink function. This means that if the file is being used by another + // program (e.g. antivirus), it won't be deleted. To address this, we shell out the work to rd/del. try { - step(generator["throw"](value)); - } catch (e) { - reject(e); + if (yield $7d3d0757594417fa$var$ioUtil.isDirectory(inputPath, true)) yield $7d3d0757594417fa$var$exec(`rd /s /q "${inputPath}"`); + else yield $7d3d0757594417fa$var$exec(`del /f /a "${inputPath}"`); + } catch (err) { + // if you try to delete a file that doesn't exist, desired result is achieved + // other errors are valid + if (err.code !== "ENOENT") throw err; } + // Shelling out fails to remove a symlink folder with missing source, this unlink catches that + try { + yield $7d3d0757594417fa$var$ioUtil.unlink(inputPath); + } catch (err) { + // if you try to delete a file that doesn't exist, desired result is achieved + // other errors are valid + if (err.code !== "ENOENT") throw err; + } + } else { + let isDir = false; + try { + isDir = yield $7d3d0757594417fa$var$ioUtil.isDirectory(inputPath); + } catch (err) { + // if you try to delete a file that doesn't exist, desired result is achieved + // other errors are valid + if (err.code !== "ENOENT") throw err; + return; + } + if (isDir) yield $7d3d0757594417fa$var$exec(`rm -rf "${inputPath}"`); + else yield $7d3d0757594417fa$var$ioUtil.unlink(inputPath); } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); }); -}; -Object.defineProperty(module.exports, "__esModule", { - value: true -}); -module.exports.summary = module.exports.markdownSummary = module.exports.SUMMARY_DOCS_URL = module.exports.SUMMARY_ENV_VAR = void 0; - - -const { access: $81e5bbd73b3acf84$var$access, appendFile: $81e5bbd73b3acf84$var$appendFile, writeFile: $81e5bbd73b3acf84$var$writeFile } = $kzVu7$fs.promises; -module.exports.SUMMARY_ENV_VAR = "GITHUB_STEP_SUMMARY"; -module.exports.SUMMARY_DOCS_URL = "https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary"; -class $81e5bbd73b3acf84$var$Summary { - constructor(){ - this._buffer = ""; - } - /** - * Finds the summary file path from the environment, rejects if env var is not found or file does not exist - * Also checks r/w permissions. - * - * @returns step summary file path - */ filePath() { - return $81e5bbd73b3acf84$var$__awaiter(this, void 0, void 0, function*() { - if (this._filePath) return this._filePath; - const pathFromEnv = process.env[module.exports.SUMMARY_ENV_VAR]; - if (!pathFromEnv) throw new Error(`Unable to find environment variable for $${module.exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`); - try { - yield $81e5bbd73b3acf84$var$access(pathFromEnv, $kzVu7$fs.constants.R_OK | $kzVu7$fs.constants.W_OK); - } catch (_a) { - throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`); +} +module.exports.rmRF = $7d3d0757594417fa$var$rmRF; +/** + * Make a directory. Creates the full path with folders in between + * Will throw if it fails + * + * @param fsPath path to create + * @returns Promise + */ function $7d3d0757594417fa$var$mkdirP(fsPath) { + return $7d3d0757594417fa$var$__awaiter(this, void 0, void 0, function*() { + yield $7d3d0757594417fa$var$ioUtil.mkdirP(fsPath); + }); +} +module.exports.mkdirP = $7d3d0757594417fa$var$mkdirP; +/** + * Returns path of a tool had the tool actually been invoked. Resolves via paths. + * If you check and the tool does not exist, it will throw. + * + * @param tool name of the tool + * @param check whether to check if tool exists + * @returns Promise path to tool + */ function $7d3d0757594417fa$var$which(tool, check) { + return $7d3d0757594417fa$var$__awaiter(this, void 0, void 0, function*() { + if (!tool) throw new Error("parameter 'tool' is required"); + // recursive when check=true + if (check) { + const result = yield $7d3d0757594417fa$var$which(tool, false); + if (!result) { + if ($7d3d0757594417fa$var$ioUtil.IS_WINDOWS) throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`); + else throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`); } - this._filePath = pathFromEnv; - return this._filePath; - }); - } - /** - * Wraps content in an HTML tag, adding any HTML attributes - * - * @param {string} tag HTML tag to wrap - * @param {string | null} content content within the tag - * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add - * - * @returns {string} content wrapped in HTML element - */ wrap(tag, content, attrs = {}) { - const htmlAttrs = Object.entries(attrs).map(([key, value])=>` ${key}="${value}"`).join(""); - if (!content) return `<${tag}${htmlAttrs}>`; - return `<${tag}${htmlAttrs}>${content}`; - } - /** - * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default. - * - * @param {SummaryWriteOptions} [options] (optional) options for write operation - * - * @returns {Promise} summary instance - */ write(options) { - return $81e5bbd73b3acf84$var$__awaiter(this, void 0, void 0, function*() { - const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite); - const filePath = yield this.filePath(); - const writeFunc = overwrite ? $81e5bbd73b3acf84$var$writeFile : $81e5bbd73b3acf84$var$appendFile; - yield writeFunc(filePath, this._buffer, { - encoding: "utf8" - }); - return this.emptyBuffer(); - }); - } - /** - * Clears the summary buffer and wipes the summary file - * - * @returns {Summary} summary instance - */ clear() { - return $81e5bbd73b3acf84$var$__awaiter(this, void 0, void 0, function*() { - return this.emptyBuffer().write({ - overwrite: true - }); - }); - } - /** - * Returns the current summary buffer as a string - * - * @returns {string} string of summary buffer - */ stringify() { - return this._buffer; - } - /** - * If the summary buffer is empty - * - * @returns {boolen} true if the buffer is empty - */ isEmptyBuffer() { - return this._buffer.length === 0; - } - /** - * Resets the summary buffer without writing to summary file - * - * @returns {Summary} summary instance - */ emptyBuffer() { - this._buffer = ""; - return this; - } - /** - * Adds raw text to the summary buffer - * - * @param {string} text content to add - * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false) - * - * @returns {Summary} summary instance - */ addRaw(text, addEOL = false) { - this._buffer += text; - return addEOL ? this.addEOL() : this; - } - /** - * Adds the operating system-specific end-of-line marker to the buffer - * - * @returns {Summary} summary instance - */ addEOL() { - return this.addRaw($kzVu7$os.EOL); - } - /** - * Adds an HTML codeblock to the summary buffer - * - * @param {string} code content to render within fenced code block - * @param {string} lang (optional) language to syntax highlight code - * - * @returns {Summary} summary instance - */ addCodeBlock(code, lang) { - const attrs = Object.assign({}, lang && { - lang: lang - }); - const element = this.wrap("pre", this.wrap("code", code), attrs); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML list to the summary buffer - * - * @param {string[]} items list of items to render - * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false) - * - * @returns {Summary} summary instance - */ addList(items, ordered = false) { - const tag = ordered ? "ol" : "ul"; - const listItems = items.map((item)=>this.wrap("li", item)).join(""); - const element = this.wrap(tag, listItems); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML table to the summary buffer - * - * @param {SummaryTableCell[]} rows table rows - * - * @returns {Summary} summary instance - */ addTable(rows) { - const tableBody = rows.map((row)=>{ - const cells = row.map((cell)=>{ - if (typeof cell === "string") return this.wrap("td", cell); - const { header: header, data: data, colspan: colspan, rowspan: rowspan } = cell; - const tag = header ? "th" : "td"; - const attrs = Object.assign(Object.assign({}, colspan && { - colspan: colspan - }), rowspan && { - rowspan: rowspan - }); - return this.wrap(tag, data, attrs); - }).join(""); - return this.wrap("tr", cells); - }).join(""); - const element = this.wrap("table", tableBody); - return this.addRaw(element).addEOL(); - } - /** - * Adds a collapsable HTML details element to the summary buffer - * - * @param {string} label text for the closed state - * @param {string} content collapsable content - * - * @returns {Summary} summary instance - */ addDetails(label, content) { - const element = this.wrap("details", this.wrap("summary", label) + content); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML image tag to the summary buffer - * - * @param {string} src path to the image you to embed - * @param {string} alt text description of the image - * @param {SummaryImageOptions} options (optional) addition image attributes - * - * @returns {Summary} summary instance - */ addImage(src, alt, options) { - const { width: width, height: height } = options || {}; - const attrs = Object.assign(Object.assign({}, width && { - width: width - }), height && { - height: height - }); - const element = this.wrap("img", null, Object.assign({ - src: src, - alt: alt - }, attrs)); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML section heading element - * - * @param {string} text heading text - * @param {number | string} [level=1] (optional) the heading level, default: 1 - * - * @returns {Summary} summary instance - */ addHeading(text, level) { - const tag = `h${level}`; - const allowedTag = [ - "h1", - "h2", - "h3", - "h4", - "h5", - "h6" - ].includes(tag) ? tag : "h1"; - const element = this.wrap(allowedTag, text); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML thematic break (
) to the summary buffer - * - * @returns {Summary} summary instance - */ addSeparator() { - const element = this.wrap("hr", null); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML line break (
) to the summary buffer - * - * @returns {Summary} summary instance - */ addBreak() { - const element = this.wrap("br", null); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML blockquote to the summary buffer - * - * @param {string} text quote text - * @param {string} cite (optional) citation url - * - * @returns {Summary} summary instance - */ addQuote(text, cite) { - const attrs = Object.assign({}, cite && { - cite: cite - }); - const element = this.wrap("blockquote", text, attrs); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML anchor tag to the summary buffer - * - * @param {string} text link text/content - * @param {string} href hyperlink - * - * @returns {Summary} summary instance - */ addLink(text, href) { - const element = this.wrap("a", text, { - href: href - }); - return this.addRaw(element).addEOL(); - } -} -const $81e5bbd73b3acf84$var$_summary = new $81e5bbd73b3acf84$var$Summary(); -/** - * @deprecated use `core.summary` - */ module.exports.markdownSummary = $81e5bbd73b3acf84$var$_summary; -module.exports.summary = $81e5bbd73b3acf84$var$_summary; - -}); - -parcelRequire.register("a9QTv", function(module, exports) { -"use strict"; -var $7653c651a9afc0a7$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { - enumerable: true, - get: function() { - return m[k]; + return result; } + const matches = yield $7d3d0757594417fa$var$findInPath(tool); + if (matches && matches.length > 0) return matches[0]; + return ""; }); -} : function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -}); -var $7653c651a9afc0a7$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { - enumerable: true, - value: v - }); -} : function(o, v) { - o["default"] = v; -}); -var $7653c651a9afc0a7$var$__importStar = module.exports && module.exports.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) { - for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $7653c651a9afc0a7$var$__createBinding(result, mod, k); - } - $7653c651a9afc0a7$var$__setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(module.exports, "__esModule", { - value: true -}); -module.exports.toPlatformPath = module.exports.toWin32Path = module.exports.toPosixPath = void 0; - -const $7653c651a9afc0a7$var$path = $7653c651a9afc0a7$var$__importStar($kzVu7$path); -/** - * toPosixPath converts the given path to the posix form. On Windows, \\ will be - * replaced with /. - * - * @param pth. Path to transform. - * @return string Posix path. - */ function $7653c651a9afc0a7$var$toPosixPath(pth) { - return pth.replace(/[\\]/g, "/"); -} -module.exports.toPosixPath = $7653c651a9afc0a7$var$toPosixPath; -/** - * toWin32Path converts the given path to the win32 form. On Linux, / will be - * replaced with \\. - * - * @param pth. Path to transform. - * @return string Win32 path. - */ function $7653c651a9afc0a7$var$toWin32Path(pth) { - return pth.replace(/[/]/g, "\\"); } -module.exports.toWin32Path = $7653c651a9afc0a7$var$toWin32Path; +module.exports.which = $7d3d0757594417fa$var$which; /** - * toPlatformPath converts the given path to a platform-specific path. It does - * this by replacing instances of / and \ with the platform-specific path - * separator. + * Returns a list of all occurrences of the given tool on the system path. * - * @param pth The path to platformize. - * @return string The platform-specific path. - */ function $7653c651a9afc0a7$var$toPlatformPath(pth) { - return pth.replace(/[/\\]/g, $7653c651a9afc0a7$var$path.sep); -} -module.exports.toPlatformPath = $7653c651a9afc0a7$var$toPlatformPath; - -}); - - -parcelRequire.register("kRojK", function(module, exports) { -"use strict"; -var $f2fb9ed99c4d106b$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { - enumerable: true, - get: function() { - return m[k]; + * @returns Promise the paths of the tool + */ function $7d3d0757594417fa$var$findInPath(tool) { + return $7d3d0757594417fa$var$__awaiter(this, void 0, void 0, function*() { + if (!tool) throw new Error("parameter 'tool' is required"); + // build the list of extensions to try + const extensions = []; + if ($7d3d0757594417fa$var$ioUtil.IS_WINDOWS && process.env["PATHEXT"]) { + for (const extension of process.env["PATHEXT"].split($7d3d0757594417fa$var$path.delimiter))if (extension) extensions.push(extension); } - }); -} : function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -}); -var $f2fb9ed99c4d106b$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { - enumerable: true, - value: v - }); -} : function(o, v) { - o["default"] = v; -}); -var $f2fb9ed99c4d106b$var$__importStar = module.exports && module.exports.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) { - for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $f2fb9ed99c4d106b$var$__createBinding(result, mod, k); - } - $f2fb9ed99c4d106b$var$__setModuleDefault(result, mod); - return result; -}; -var $f2fb9ed99c4d106b$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } + // if it's rooted, return it if exists. otherwise return empty. + if ($7d3d0757594417fa$var$ioUtil.isRooted(tool)) { + const filePath = yield $7d3d0757594417fa$var$ioUtil.tryGetExecutablePath(tool, extensions); + if (filePath) return [ + filePath + ]; + return []; } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } + // if any path separators, return empty + if (tool.includes($7d3d0757594417fa$var$path.sep)) return []; + // build the list of directories + // + // Note, technically "where" checks the current directory on Windows. From a toolkit perspective, + // it feels like we should not do this. Checking the current directory seems like more of a use + // case of a shell, and the which() function exposed by the toolkit should strive for consistency + // across platforms. + const directories = []; + if (process.env.PATH) { + for (const p of process.env.PATH.split($7d3d0757594417fa$var$path.delimiter))if (p) directories.push(p); } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + // find all matches + const matches = []; + for (const directory of directories){ + const filePath = yield $7d3d0757594417fa$var$ioUtil.tryGetExecutablePath($7d3d0757594417fa$var$path.join(directory, tool), extensions); + if (filePath) matches.push(filePath); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); + return matches; }); -}; -Object.defineProperty(module.exports, "__esModule", { - value: true -}); -module.exports.getExecOutput = module.exports.exec = void 0; - - -const $f2fb9ed99c4d106b$var$tr = $f2fb9ed99c4d106b$var$__importStar((parcelRequire("2sRbM"))); -/** - * Exec a command. - * Output will be streamed to the live console. - * Returns promise with return code - * - * @param commandLine command to execute (can include additional args). Must be correctly escaped. - * @param args optional arguments for tool. Escaping is handled by the lib. - * @param options optional exec options. See ExecOptions - * @returns Promise exit code - */ function $f2fb9ed99c4d106b$var$exec(commandLine, args, options) { - return $f2fb9ed99c4d106b$var$__awaiter(this, void 0, void 0, function*() { - const commandArgs = $f2fb9ed99c4d106b$var$tr.argStringToArray(commandLine); - if (commandArgs.length === 0) throw new Error(`Parameter 'commandLine' cannot be null or empty.`); - // Path to tool to execute should be first arg - const toolPath = commandArgs[0]; - args = commandArgs.slice(1).concat(args || []); - const runner = new $f2fb9ed99c4d106b$var$tr.ToolRunner(toolPath, args, options); - return runner.exec(); +} +module.exports.findInPath = $7d3d0757594417fa$var$findInPath; +function $7d3d0757594417fa$var$readCopyOptions(options) { + const force = options.force == null ? true : options.force; + const recursive = Boolean(options.recursive); + return { + force: force, + recursive: recursive + }; +} +function $7d3d0757594417fa$var$cpDirRecursive(sourceDir, destDir, currentDepth, force) { + return $7d3d0757594417fa$var$__awaiter(this, void 0, void 0, function*() { + // Ensure there is not a run away recursive copy + if (currentDepth >= 255) return; + currentDepth++; + yield $7d3d0757594417fa$var$mkdirP(destDir); + const files = yield $7d3d0757594417fa$var$ioUtil.readdir(sourceDir); + for (const fileName of files){ + const srcFile = `${sourceDir}/${fileName}`; + const destFile = `${destDir}/${fileName}`; + const srcFileStat = yield $7d3d0757594417fa$var$ioUtil.lstat(srcFile); + if (srcFileStat.isDirectory()) // Recurse + yield $7d3d0757594417fa$var$cpDirRecursive(srcFile, destFile, currentDepth, force); + else yield $7d3d0757594417fa$var$copyFile(srcFile, destFile, force); + } + // Change the mode for the newly created directory + yield $7d3d0757594417fa$var$ioUtil.chmod(destDir, (yield $7d3d0757594417fa$var$ioUtil.stat(sourceDir)).mode); }); } -module.exports.exec = $f2fb9ed99c4d106b$var$exec; -/** - * Exec a command and get the output. - * Output will be streamed to the live console. - * Returns promise with the exit code and collected stdout and stderr - * - * @param commandLine command to execute (can include additional args). Must be correctly escaped. - * @param args optional arguments for tool. Escaping is handled by the lib. - * @param options optional exec options. See ExecOptions - * @returns Promise exit code, stdout, and stderr - */ function $f2fb9ed99c4d106b$var$getExecOutput(commandLine, args, options) { - var _a, _b; - return $f2fb9ed99c4d106b$var$__awaiter(this, void 0, void 0, function*() { - let stdout = ""; - let stderr = ""; - //Using string decoder covers the case where a mult-byte character is split - const stdoutDecoder = new $kzVu7$string_decoder.StringDecoder("utf8"); - const stderrDecoder = new $kzVu7$string_decoder.StringDecoder("utf8"); - const originalStdoutListener = (_a = options === null || options === void 0 ? void 0 : options.listeners) === null || _a === void 0 ? void 0 : _a.stdout; - const originalStdErrListener = (_b = options === null || options === void 0 ? void 0 : options.listeners) === null || _b === void 0 ? void 0 : _b.stderr; - const stdErrListener = (data)=>{ - stderr += stderrDecoder.write(data); - if (originalStdErrListener) originalStdErrListener(data); - }; - const stdOutListener = (data)=>{ - stdout += stdoutDecoder.write(data); - if (originalStdoutListener) originalStdoutListener(data); - }; - const listeners = Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.listeners), { - stdout: stdOutListener, - stderr: stdErrListener - }); - const exitCode = yield $f2fb9ed99c4d106b$var$exec(commandLine, args, Object.assign(Object.assign({}, options), { - listeners: listeners - })); - //flush any remaining characters - stdout += stdoutDecoder.end(); - stderr += stderrDecoder.end(); - return { - exitCode: exitCode, - stdout: stdout, - stderr: stderr - }; +// Buffered file copy +function $7d3d0757594417fa$var$copyFile(srcFile, destFile, force) { + return $7d3d0757594417fa$var$__awaiter(this, void 0, void 0, function*() { + if ((yield $7d3d0757594417fa$var$ioUtil.lstat(srcFile)).isSymbolicLink()) { + // unlink/re-link it + try { + yield $7d3d0757594417fa$var$ioUtil.lstat(destFile); + yield $7d3d0757594417fa$var$ioUtil.unlink(destFile); + } catch (e) { + // Try to override file permission + if (e.code === "EPERM") { + yield $7d3d0757594417fa$var$ioUtil.chmod(destFile, "0666"); + yield $7d3d0757594417fa$var$ioUtil.unlink(destFile); + } + // other errors = it doesn't exist, no work to do + } + // Copy over symlink + const symlinkFull = yield $7d3d0757594417fa$var$ioUtil.readlink(srcFile); + yield $7d3d0757594417fa$var$ioUtil.symlink(symlinkFull, destFile, $7d3d0757594417fa$var$ioUtil.IS_WINDOWS ? "junction" : null); + } else if (!(yield $7d3d0757594417fa$var$ioUtil.exists(destFile)) || force) yield $7d3d0757594417fa$var$ioUtil.copyFile(srcFile, destFile); }); } -module.exports.getExecOutput = $f2fb9ed99c4d106b$var$getExecOutput; }); -parcelRequire.register("2sRbM", function(module, exports) { +parcelRequire.register("gFnb3", function(module, exports) { "use strict"; -var $1cb7748a0c6124b0$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { - enumerable: true, - get: function() { - return m[k]; - } - }); -} : function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -}); -var $1cb7748a0c6124b0$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { - enumerable: true, - value: v - }); -} : function(o, v) { - o["default"] = v; -}); -var $1cb7748a0c6124b0$var$__importStar = module.exports && module.exports.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) { - for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $1cb7748a0c6124b0$var$__createBinding(result, mod, k); - } - $1cb7748a0c6124b0$var$__setModuleDefault(result, mod); - return result; -}; -var $1cb7748a0c6124b0$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { +var $c2227437177516e9$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve) { resolve(value); @@ -2390,484 +1707,366 @@ var $1cb7748a0c6124b0$var$__awaiter = module.exports && module.exports.__awaiter step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; +var $c2227437177516e9$var$__importStar = module.exports && module.exports.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for(var k in mod)if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; + } + result["default"] = mod; + return result; +}; +var $c2227437177516e9$var$_a; Object.defineProperty(module.exports, "__esModule", { value: true }); -module.exports.argStringToArray = module.exports.ToolRunner = void 0; - -const $1cb7748a0c6124b0$var$os = $1cb7748a0c6124b0$var$__importStar($kzVu7$os); -const $1cb7748a0c6124b0$var$events = $1cb7748a0c6124b0$var$__importStar($kzVu7$events); - -const $1cb7748a0c6124b0$var$child = $1cb7748a0c6124b0$var$__importStar($kzVu7$child_process); - -const $1cb7748a0c6124b0$var$path = $1cb7748a0c6124b0$var$__importStar($kzVu7$path); - -const $1cb7748a0c6124b0$var$io = $1cb7748a0c6124b0$var$__importStar((parcelRequire("aKDK7"))); -const $1cb7748a0c6124b0$var$ioUtil = $1cb7748a0c6124b0$var$__importStar((parcelRequire("gFnb3"))); +const $c2227437177516e9$var$fs = $c2227437177516e9$var$__importStar($bknAJ$fs); -/* eslint-disable @typescript-eslint/unbound-method */ const $1cb7748a0c6124b0$var$IS_WINDOWS = process.platform === "win32"; -/* - * Class for running command line tools. Handles quoting and arg parsing in a platform agnostic way. - */ class $1cb7748a0c6124b0$var$ToolRunner extends $1cb7748a0c6124b0$var$events.EventEmitter { - constructor(toolPath, args, options){ - super(); - if (!toolPath) throw new Error("Parameter 'toolPath' cannot be null or empty."); - this.toolPath = toolPath; - this.args = args || []; - this.options = options || {}; - } - _debug(message) { - if (this.options.listeners && this.options.listeners.debug) this.options.listeners.debug(message); - } - _getCommandString(options, noPrefix) { - const toolPath = this._getSpawnFileName(); - const args = this._getSpawnArgs(options); - let cmd = noPrefix ? "" : "[command]"; // omit prefix when piped to a second tool - if ($1cb7748a0c6124b0$var$IS_WINDOWS) { - // Windows + cmd file - if (this._isCmdFile()) { - cmd += toolPath; - for (const a of args)cmd += ` ${a}`; - } else if (options.windowsVerbatimArguments) { - cmd += `"${toolPath}"`; - for (const a of args)cmd += ` ${a}`; - } else { - cmd += this._windowsQuoteCmdArg(toolPath); - for (const a of args)cmd += ` ${this._windowsQuoteCmdArg(a)}`; - } - } else { - // OSX/Linux - this can likely be improved with some form of quoting. - // creating processes on Unix is fundamentally different than Windows. - // on Unix, execvp() takes an arg array. - cmd += toolPath; - for (const a of args)cmd += ` ${a}`; +const $c2227437177516e9$var$path = $c2227437177516e9$var$__importStar($bknAJ$path); +$c2227437177516e9$var$_a = $c2227437177516e9$var$fs.promises, module.exports.chmod = $c2227437177516e9$var$_a.chmod, module.exports.copyFile = $c2227437177516e9$var$_a.copyFile, module.exports.lstat = $c2227437177516e9$var$_a.lstat, module.exports.mkdir = $c2227437177516e9$var$_a.mkdir, module.exports.readdir = $c2227437177516e9$var$_a.readdir, module.exports.readlink = $c2227437177516e9$var$_a.readlink, module.exports.rename = $c2227437177516e9$var$_a.rename, module.exports.rmdir = $c2227437177516e9$var$_a.rmdir, module.exports.stat = $c2227437177516e9$var$_a.stat, module.exports.symlink = $c2227437177516e9$var$_a.symlink, module.exports.unlink = $c2227437177516e9$var$_a.unlink; +module.exports.IS_WINDOWS = process.platform === "win32"; +function $c2227437177516e9$var$exists(fsPath) { + return $c2227437177516e9$var$__awaiter(this, void 0, void 0, function*() { + try { + yield module.exports.stat(fsPath); + } catch (err) { + if (err.code === "ENOENT") return false; + throw err; } - return cmd; - } - _processLineBuffer(data, strBuffer, onLine) { + return true; + }); +} +module.exports.exists = $c2227437177516e9$var$exists; +function $c2227437177516e9$var$isDirectory(fsPath, useStat = false) { + return $c2227437177516e9$var$__awaiter(this, void 0, void 0, function*() { + const stats = useStat ? yield module.exports.stat(fsPath) : yield module.exports.lstat(fsPath); + return stats.isDirectory(); + }); +} +module.exports.isDirectory = $c2227437177516e9$var$isDirectory; +/** + * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like: + * \, \hello, \\hello\share, C:, and C:\hello (and corresponding alternate separator cases). + */ function $c2227437177516e9$var$isRooted(p) { + p = $c2227437177516e9$var$normalizeSeparators(p); + if (!p) throw new Error('isRooted() parameter "p" cannot be empty'); + if (module.exports.IS_WINDOWS) return p.startsWith("\\") || /^[A-Z]:/i.test(p) // e.g. \ or \hello or \\hello + ; // e.g. C: or C:\hello + return p.startsWith("/"); +} +module.exports.isRooted = $c2227437177516e9$var$isRooted; +/** + * Recursively create a directory at `fsPath`. + * + * This implementation is optimistic, meaning it attempts to create the full + * path first, and backs up the path stack from there. + * + * @param fsPath The path to create + * @param maxDepth The maximum recursion depth + * @param depth The current recursion depth + */ function $c2227437177516e9$var$mkdirP(fsPath, maxDepth = 1000, depth = 1) { + return $c2227437177516e9$var$__awaiter(this, void 0, void 0, function*() { + $bknAJ$assert.ok(fsPath, "a path argument must be provided"); + fsPath = $c2227437177516e9$var$path.resolve(fsPath); + if (depth >= maxDepth) return module.exports.mkdir(fsPath); try { - let s = strBuffer + data.toString(); - let n = s.indexOf($1cb7748a0c6124b0$var$os.EOL); - while(n > -1){ - const line = s.substring(0, n); - onLine(line); - // the rest of the string ... - s = s.substring(n + $1cb7748a0c6124b0$var$os.EOL.length); - n = s.indexOf($1cb7748a0c6124b0$var$os.EOL); + yield module.exports.mkdir(fsPath); + return; + } catch (err) { + switch(err.code){ + case "ENOENT": + yield $c2227437177516e9$var$mkdirP($c2227437177516e9$var$path.dirname(fsPath), maxDepth, depth + 1); + yield module.exports.mkdir(fsPath); + return; + default: + { + let stats; + try { + stats = yield module.exports.stat(fsPath); + } catch (err2) { + throw err; + } + if (!stats.isDirectory()) throw err; + } } - return s; + } + }); +} +module.exports.mkdirP = $c2227437177516e9$var$mkdirP; +/** + * Best effort attempt to determine whether a file exists and is executable. + * @param filePath file path to check + * @param extensions additional file extensions to try + * @return if file exists and is executable, returns the file path. otherwise empty string. + */ function $c2227437177516e9$var$tryGetExecutablePath(filePath, extensions) { + return $c2227437177516e9$var$__awaiter(this, void 0, void 0, function*() { + let stats = undefined; + try { + // test file exists + stats = yield module.exports.stat(filePath); } catch (err) { - // streaming lines to console is best effort. Don't fail a build. - this._debug(`error processing line. Failed with error ${err}`); - return ""; + if (err.code !== "ENOENT") // eslint-disable-next-line no-console + console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); } - } - _getSpawnFileName() { - if ($1cb7748a0c6124b0$var$IS_WINDOWS) { - if (this._isCmdFile()) return process.env["COMSPEC"] || "cmd.exe"; + if (stats && stats.isFile()) { + if (module.exports.IS_WINDOWS) { + // on Windows, test for valid extension + const upperExt = $c2227437177516e9$var$path.extname(filePath).toUpperCase(); + if (extensions.some((validExt)=>validExt.toUpperCase() === upperExt)) return filePath; + } else { + if ($c2227437177516e9$var$isUnixExecutable(stats)) return filePath; + } } - return this.toolPath; - } - _getSpawnArgs(options) { - if ($1cb7748a0c6124b0$var$IS_WINDOWS) { - if (this._isCmdFile()) { - let argline = `/D /S /C "${this._windowsQuoteCmdArg(this.toolPath)}`; - for (const a of this.args){ - argline += " "; - argline += options.windowsVerbatimArguments ? a : this._windowsQuoteCmdArg(a); + // try each extension + const originalFilePath = filePath; + for (const extension of extensions){ + filePath = originalFilePath + extension; + stats = undefined; + try { + stats = yield module.exports.stat(filePath); + } catch (err) { + if (err.code !== "ENOENT") // eslint-disable-next-line no-console + console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); + } + if (stats && stats.isFile()) { + if (module.exports.IS_WINDOWS) { + // preserve the case of the actual file (since an extension was appended) + try { + const directory = $c2227437177516e9$var$path.dirname(filePath); + const upperName = $c2227437177516e9$var$path.basename(filePath).toUpperCase(); + for (const actualName of yield module.exports.readdir(directory))if (upperName === actualName.toUpperCase()) { + filePath = $c2227437177516e9$var$path.join(directory, actualName); + break; + } + } catch (err) { + // eslint-disable-next-line no-console + console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`); + } + return filePath; + } else { + if ($c2227437177516e9$var$isUnixExecutable(stats)) return filePath; } - argline += '"'; - return [ - argline - ]; } } - return this.args; + return ""; + }); +} +module.exports.tryGetExecutablePath = $c2227437177516e9$var$tryGetExecutablePath; +function $c2227437177516e9$var$normalizeSeparators(p) { + p = p || ""; + if (module.exports.IS_WINDOWS) { + // convert slashes on Windows + p = p.replace(/\//g, "\\"); + // remove redundant slashes + return p.replace(/\\\\+/g, "\\"); } - _endsWith(str, end) { - return str.endsWith(end); + // remove redundant slashes + return p.replace(/\/\/+/g, "/"); +} +// on Mac/Linux, test the execute bit +// R W X R W X R W X +// 256 128 64 32 16 8 4 2 1 +function $c2227437177516e9$var$isUnixExecutable(stats) { + return (stats.mode & 1) > 0 || (stats.mode & 8) > 0 && stats.gid === process.getgid() || (stats.mode & 64) > 0 && stats.uid === process.getuid(); +} + +}); + + + +parcelRequire.register("iRnUA", function(module, exports) { +"use strict"; +var $dbafb99e53cb7a2f$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { + enumerable: true, + get: function() { + return m[k]; + } + }); +} : function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +}); +var $dbafb99e53cb7a2f$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { + enumerable: true, + value: v + }); +} : function(o, v) { + o["default"] = v; +}); +var $dbafb99e53cb7a2f$var$__importStar = module.exports && module.exports.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $dbafb99e53cb7a2f$var$__createBinding(result, mod, k); } - _isCmdFile() { - const upperToolPath = this.toolPath.toUpperCase(); - return this._endsWith(upperToolPath, ".CMD") || this._endsWith(upperToolPath, ".BAT"); + $dbafb99e53cb7a2f$var$__setModuleDefault(result, mod); + return result; +}; +var $dbafb99e53cb7a2f$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); } - _windowsQuoteCmdArg(arg) { - // for .exe, apply the normal quoting rules that libuv applies - if (!this._isCmdFile()) return this._uvQuoteCmdArg(arg); - // otherwise apply quoting rules specific to the cmd.exe command line parser. - // the libuv rules are generic and are not designed specifically for cmd.exe - // command line parser. - // - // for a detailed description of the cmd.exe command line parser, refer to - // http://stackoverflow.com/questions/4094699/how-does-the-windows-command-interpreter-cmd-exe-parse-scripts/7970912#7970912 - // need quotes for empty arg - if (!arg) return '""'; - // determine whether the arg needs to be quoted - const cmdSpecialChars = [ - " ", - " ", - "&", - "(", - ")", - "[", - "]", - "{", - "}", - "^", - "=", - ";", - "!", - "'", - "+", - ",", - "`", - "~", - "|", - "<", - ">", - '"' - ]; - let needsQuotes = false; - for (const char of arg)if (cmdSpecialChars.some((x)=>x === char)) { - needsQuotes = true; - break; - } - // short-circuit if quotes not needed - if (!needsQuotes) return arg; - // the following quoting rules are very similar to the rules that by libuv applies. - // - // 1) wrap the string in quotes - // - // 2) double-up quotes - i.e. " => "" - // - // this is different from the libuv quoting rules. libuv replaces " with \", which unfortunately - // doesn't work well with a cmd.exe command line. - // - // note, replacing " with "" also works well if the arg is passed to a downstream .NET console app. - // for example, the command line: - // foo.exe "myarg:""my val""" - // is parsed by a .NET console app into an arg array: - // [ "myarg:\"my val\"" ] - // which is the same end result when applying libuv quoting rules. although the actual - // command line from libuv quoting rules would look like: - // foo.exe "myarg:\"my val\"" - // - // 3) double-up slashes that precede a quote, - // e.g. hello \world => "hello \world" - // hello\"world => "hello\\""world" - // hello\\"world => "hello\\\\""world" - // hello world\ => "hello world\\" - // - // technically this is not required for a cmd.exe command line, or the batch argument parser. - // the reasons for including this as a .cmd quoting rule are: - // - // a) this is optimized for the scenario where the argument is passed from the .cmd file to an - // external program. many programs (e.g. .NET console apps) rely on the slash-doubling rule. - // - // b) it's what we've been doing previously (by deferring to node default behavior) and we - // haven't heard any complaints about that aspect. - // - // note, a weakness of the quoting rules chosen here, is that % is not escaped. in fact, % cannot be - // escaped when used on the command line directly - even though within a .cmd file % can be escaped - // by using %%. - // - // the saving grace is, on the command line, %var% is left as-is if var is not defined. this contrasts - // the line parsing rules within a .cmd file, where if var is not defined it is replaced with nothing. - // - // one option that was explored was replacing % with ^% - i.e. %var% => ^%var^%. this hack would - // often work, since it is unlikely that var^ would exist, and the ^ character is removed when the - // variable is used. the problem, however, is that ^ is not removed when %* is used to pass the args - // to an external program. - // - // an unexplored potential solution for the % escaping problem, is to create a wrapper .cmd file. - // % can be escaped within a .cmd file. - let reverse = '"'; - let quoteHit = true; - for(let i = arg.length; i > 0; i--){ - // walk the string in reverse - reverse += arg[i - 1]; - if (quoteHit && arg[i - 1] === "\\") reverse += "\\"; // double the slash - else if (arg[i - 1] === '"') { - quoteHit = true; - reverse += '"'; // double the quote - } else quoteHit = false; - } - reverse += '"'; - return reverse.split("").reverse().join(""); - } - _uvQuoteCmdArg(arg) { - // Tool runner wraps child_process.spawn() and needs to apply the same quoting as - // Node in certain cases where the undocumented spawn option windowsVerbatimArguments - // is used. - // - // Since this function is a port of quote_cmd_arg from Node 4.x (technically, lib UV, - // see https://github.com/nodejs/node/blob/v4.x/deps/uv/src/win/process.c for details), - // pasting copyright notice from Node within this function: - // - // Copyright Joyent, Inc. and other Node contributors. All rights reserved. - // - // Permission is hereby granted, free of charge, to any person obtaining a copy - // of this software and associated documentation files (the "Software"), to - // deal in the Software without restriction, including without limitation the - // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - // sell copies of the Software, and to permit persons to whom the Software is - // furnished to do so, subject to the following conditions: - // - // The above copyright notice and this permission notice shall be included in - // all copies or substantial portions of the Software. - // - // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - // IN THE SOFTWARE. - if (!arg) // Need double quotation for empty argument - return '""'; - if (!arg.includes(" ") && !arg.includes(" ") && !arg.includes('"')) // No quotation needed - return arg; - if (!arg.includes('"') && !arg.includes("\\")) // No embedded double quotes or backslashes, so I can just wrap - // quote marks around the whole thing. - return `"${arg}"`; - // Expected input/output: - // input : hello"world - // output: "hello\"world" - // input : hello""world - // output: "hello\"\"world" - // input : hello\world - // output: hello\world - // input : hello\\world - // output: hello\\world - // input : hello\"world - // output: "hello\\\"world" - // input : hello\\"world - // output: "hello\\\\\"world" - // input : hello world\ - // output: "hello world\\" - note the comment in libuv actually reads "hello world\" - // but it appears the comment is wrong, it should be "hello world\\" - let reverse = '"'; - let quoteHit = true; - for(let i = arg.length; i > 0; i--){ - // walk the string in reverse - reverse += arg[i - 1]; - if (quoteHit && arg[i - 1] === "\\") reverse += "\\"; - else if (arg[i - 1] === '"') { - quoteHit = true; - reverse += "\\"; - } else quoteHit = false; - } - reverse += '"'; - return reverse.split("").reverse().join(""); - } - _cloneExecOptions(options) { - options = options || {}; - const result = { - cwd: options.cwd || process.cwd(), - env: options.env || process.env, - silent: options.silent || false, - windowsVerbatimArguments: options.windowsVerbatimArguments || false, - failOnStdErr: options.failOnStdErr || false, - ignoreReturnCode: options.ignoreReturnCode || false, - delay: options.delay || 10000 - }; - result.outStream = options.outStream || process.stdout; - result.errStream = options.errStream || process.stderr; - return result; - } - _getSpawnOptions(options, toolPath) { - options = options || {}; - const result = {}; - result.cwd = options.cwd; - result.env = options.env; - result["windowsVerbatimArguments"] = options.windowsVerbatimArguments || this._isCmdFile(); - if (options.windowsVerbatimArguments) result.argv0 = `"${toolPath}"`; - return result; - } - /** - * Exec a tool. - * Output will be streamed to the live console. - * Returns promise with return code - * - * @param tool path to tool to exec - * @param options optional exec options. See ExecOptions - * @returns number - */ exec() { - return $1cb7748a0c6124b0$var$__awaiter(this, void 0, void 0, function*() { - // root the tool path if it is unrooted and contains relative pathing - if (!$1cb7748a0c6124b0$var$ioUtil.isRooted(this.toolPath) && (this.toolPath.includes("/") || $1cb7748a0c6124b0$var$IS_WINDOWS && this.toolPath.includes("\\"))) // prefer options.cwd if it is specified, however options.cwd may also need to be rooted - this.toolPath = $1cb7748a0c6124b0$var$path.resolve(process.cwd(), this.options.cwd || process.cwd(), this.toolPath); - // if the tool is only a file name, then resolve it from the PATH - // otherwise verify it exists (add extension on Windows if necessary) - this.toolPath = yield $1cb7748a0c6124b0$var$io.which(this.toolPath, true); - return new Promise((resolve, reject)=>$1cb7748a0c6124b0$var$__awaiter(this, void 0, void 0, function*() { - this._debug(`exec tool: ${this.toolPath}`); - this._debug("arguments:"); - for (const arg of this.args)this._debug(` ${arg}`); - const optionsNonNull = this._cloneExecOptions(this.options); - if (!optionsNonNull.silent && optionsNonNull.outStream) optionsNonNull.outStream.write(this._getCommandString(optionsNonNull) + $1cb7748a0c6124b0$var$os.EOL); - const state = new $1cb7748a0c6124b0$var$ExecState(optionsNonNull, this.toolPath); - state.on("debug", (message)=>{ - this._debug(message); - }); - if (this.options.cwd && !(yield $1cb7748a0c6124b0$var$ioUtil.exists(this.options.cwd))) return reject(new Error(`The cwd: ${this.options.cwd} does not exist!`)); - const fileName = this._getSpawnFileName(); - const cp = $1cb7748a0c6124b0$var$child.spawn(fileName, this._getSpawnArgs(optionsNonNull), this._getSpawnOptions(this.options, fileName)); - let stdbuffer = ""; - if (cp.stdout) cp.stdout.on("data", (data)=>{ - if (this.options.listeners && this.options.listeners.stdout) this.options.listeners.stdout(data); - if (!optionsNonNull.silent && optionsNonNull.outStream) optionsNonNull.outStream.write(data); - stdbuffer = this._processLineBuffer(data, stdbuffer, (line)=>{ - if (this.options.listeners && this.options.listeners.stdline) this.options.listeners.stdline(line); - }); - }); - let errbuffer = ""; - if (cp.stderr) cp.stderr.on("data", (data)=>{ - state.processStderr = true; - if (this.options.listeners && this.options.listeners.stderr) this.options.listeners.stderr(data); - if (!optionsNonNull.silent && optionsNonNull.errStream && optionsNonNull.outStream) { - const s = optionsNonNull.failOnStdErr ? optionsNonNull.errStream : optionsNonNull.outStream; - s.write(data); - } - errbuffer = this._processLineBuffer(data, errbuffer, (line)=>{ - if (this.options.listeners && this.options.listeners.errline) this.options.listeners.errline(line); - }); - }); - cp.on("error", (err)=>{ - state.processError = err.message; - state.processExited = true; - state.processClosed = true; - state.CheckComplete(); - }); - cp.on("exit", (code)=>{ - state.processExitCode = code; - state.processExited = true; - this._debug(`Exit code ${code} received from tool '${this.toolPath}'`); - state.CheckComplete(); - }); - cp.on("close", (code)=>{ - state.processExitCode = code; - state.processExited = true; - state.processClosed = true; - this._debug(`STDIO streams have closed for tool '${this.toolPath}'`); - state.CheckComplete(); - }); - state.on("done", (error, exitCode)=>{ - if (stdbuffer.length > 0) this.emit("stdline", stdbuffer); - if (errbuffer.length > 0) this.emit("errline", errbuffer); - cp.removeAllListeners(); - if (error) reject(error); - else resolve(exitCode); - }); - if (this.options.input) { - if (!cp.stdin) throw new Error("child process missing stdin"); - cp.stdin.end(this.options.input); - } - })); - }); - } -} -module.exports.ToolRunner = $1cb7748a0c6124b0$var$ToolRunner; -/** - * Convert an arg string to an array of args. Handles escaping - * - * @param argString string of arguments - * @returns string[] array of arguments - */ function $1cb7748a0c6124b0$var$argStringToArray(argString) { - const args = []; - let inQuotes = false; - let escaped = false; - let arg = ""; - function append(c) { - // we only escape double quotes. - if (escaped && c !== '"') arg += "\\"; - arg += c; - escaped = false; - } - for(let i = 0; i < argString.length; i++){ - const c = argString.charAt(i); - if (c === '"') { - if (!escaped) inQuotes = !inQuotes; - else append(c); - continue; + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } } - if (c === "\\" && escaped) { - append(c); - continue; + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } } - if (c === "\\" && inQuotes) { - escaped = true; - continue; + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - if (c === " " && !inQuotes) { - if (arg.length > 0) { - args.push(arg); - arg = ""; - } - continue; + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var $dbafb99e53cb7a2f$var$_a; +Object.defineProperty(module.exports, "__esModule", { + value: true +}); +module.exports.getCmdPath = module.exports.tryGetExecutablePath = module.exports.isRooted = module.exports.isDirectory = module.exports.exists = module.exports.READONLY = module.exports.UV_FS_O_EXLOCK = module.exports.IS_WINDOWS = module.exports.unlink = module.exports.symlink = module.exports.stat = module.exports.rmdir = module.exports.rm = module.exports.rename = module.exports.readlink = module.exports.readdir = module.exports.open = module.exports.mkdir = module.exports.lstat = module.exports.copyFile = module.exports.chmod = void 0; + +const $dbafb99e53cb7a2f$var$fs = $dbafb99e53cb7a2f$var$__importStar($bknAJ$fs); + +const $dbafb99e53cb7a2f$var$path = $dbafb99e53cb7a2f$var$__importStar($bknAJ$path); +$dbafb99e53cb7a2f$var$_a = $dbafb99e53cb7a2f$var$fs.promises, module.exports.chmod = $dbafb99e53cb7a2f$var$_a.chmod, module.exports.copyFile = $dbafb99e53cb7a2f$var$_a.copyFile, module.exports.lstat = $dbafb99e53cb7a2f$var$_a.lstat, module.exports.mkdir = $dbafb99e53cb7a2f$var$_a.mkdir, module.exports.open = $dbafb99e53cb7a2f$var$_a.open, module.exports.readdir = $dbafb99e53cb7a2f$var$_a.readdir, module.exports.readlink = $dbafb99e53cb7a2f$var$_a.readlink, module.exports.rename = $dbafb99e53cb7a2f$var$_a.rename, module.exports.rm = $dbafb99e53cb7a2f$var$_a.rm, module.exports.rmdir = $dbafb99e53cb7a2f$var$_a.rmdir, module.exports.stat = $dbafb99e53cb7a2f$var$_a.stat, module.exports.symlink = $dbafb99e53cb7a2f$var$_a.symlink, module.exports.unlink = $dbafb99e53cb7a2f$var$_a.unlink; +// export const {open} = 'fs' +module.exports.IS_WINDOWS = process.platform === "win32"; +// See https://github.com/nodejs/node/blob/d0153aee367422d0858105abec186da4dff0a0c5/deps/uv/include/uv/win.h#L691 +module.exports.UV_FS_O_EXLOCK = 0x10000000; +module.exports.READONLY = $dbafb99e53cb7a2f$var$fs.constants.O_RDONLY; +function $dbafb99e53cb7a2f$var$exists(fsPath) { + return $dbafb99e53cb7a2f$var$__awaiter(this, void 0, void 0, function*() { + try { + yield module.exports.stat(fsPath); + } catch (err) { + if (err.code === "ENOENT") return false; + throw err; } - append(c); - } - if (arg.length > 0) args.push(arg.trim()); - return args; + return true; + }); } -module.exports.argStringToArray = $1cb7748a0c6124b0$var$argStringToArray; -class $1cb7748a0c6124b0$var$ExecState extends $1cb7748a0c6124b0$var$events.EventEmitter { - constructor(options, toolPath){ - super(); - this.processClosed = false; // tracks whether the process has exited and stdio is closed - this.processError = ""; - this.processExitCode = 0; - this.processExited = false; // tracks whether the process has exited - this.processStderr = false; // tracks whether stderr was written to - this.delay = 10000; // 10 seconds - this.done = false; - this.timeout = null; - if (!toolPath) throw new Error("toolPath must not be empty"); - this.options = options; - this.toolPath = toolPath; - if (options.delay) this.delay = options.delay; - } - CheckComplete() { - if (this.done) return; - if (this.processClosed) this._setResult(); - else if (this.processExited) this.timeout = $kzVu7$timers.setTimeout($1cb7748a0c6124b0$var$ExecState.HandleTimeout, this.delay, this); - } - _debug(message) { - this.emit("debug", message); - } - _setResult() { - // determine whether there is an error - let error; - if (this.processExited) { - if (this.processError) error = new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`); - else if (this.processExitCode !== 0 && !this.options.ignoreReturnCode) error = new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`); - else if (this.processStderr && this.options.failOnStdErr) error = new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`); +module.exports.exists = $dbafb99e53cb7a2f$var$exists; +function $dbafb99e53cb7a2f$var$isDirectory(fsPath, useStat = false) { + return $dbafb99e53cb7a2f$var$__awaiter(this, void 0, void 0, function*() { + const stats = useStat ? yield module.exports.stat(fsPath) : yield module.exports.lstat(fsPath); + return stats.isDirectory(); + }); +} +module.exports.isDirectory = $dbafb99e53cb7a2f$var$isDirectory; +/** + * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like: + * \, \hello, \\hello\share, C:, and C:\hello (and corresponding alternate separator cases). + */ function $dbafb99e53cb7a2f$var$isRooted(p) { + p = $dbafb99e53cb7a2f$var$normalizeSeparators(p); + if (!p) throw new Error('isRooted() parameter "p" cannot be empty'); + if (module.exports.IS_WINDOWS) return p.startsWith("\\") || /^[A-Z]:/i.test(p) // e.g. \ or \hello or \\hello + ; // e.g. C: or C:\hello + return p.startsWith("/"); +} +module.exports.isRooted = $dbafb99e53cb7a2f$var$isRooted; +/** + * Best effort attempt to determine whether a file exists and is executable. + * @param filePath file path to check + * @param extensions additional file extensions to try + * @return if file exists and is executable, returns the file path. otherwise empty string. + */ function $dbafb99e53cb7a2f$var$tryGetExecutablePath(filePath, extensions) { + return $dbafb99e53cb7a2f$var$__awaiter(this, void 0, void 0, function*() { + let stats = undefined; + try { + // test file exists + stats = yield module.exports.stat(filePath); + } catch (err) { + if (err.code !== "ENOENT") // eslint-disable-next-line no-console + console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); } - // clear the timeout - if (this.timeout) { - clearTimeout(this.timeout); - this.timeout = null; + if (stats && stats.isFile()) { + if (module.exports.IS_WINDOWS) { + // on Windows, test for valid extension + const upperExt = $dbafb99e53cb7a2f$var$path.extname(filePath).toUpperCase(); + if (extensions.some((validExt)=>validExt.toUpperCase() === upperExt)) return filePath; + } else { + if ($dbafb99e53cb7a2f$var$isUnixExecutable(stats)) return filePath; + } } - this.done = true; - this.emit("done", error, this.processExitCode); - } - static HandleTimeout(state) { - if (state.done) return; - if (!state.processClosed && state.processExited) { - const message = `The STDIO streams did not close within ${state.delay / 1000} seconds of the exit event from process '${state.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`; - state._debug(message); + // try each extension + const originalFilePath = filePath; + for (const extension of extensions){ + filePath = originalFilePath + extension; + stats = undefined; + try { + stats = yield module.exports.stat(filePath); + } catch (err) { + if (err.code !== "ENOENT") // eslint-disable-next-line no-console + console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); + } + if (stats && stats.isFile()) { + if (module.exports.IS_WINDOWS) { + // preserve the case of the actual file (since an extension was appended) + try { + const directory = $dbafb99e53cb7a2f$var$path.dirname(filePath); + const upperName = $dbafb99e53cb7a2f$var$path.basename(filePath).toUpperCase(); + for (const actualName of yield module.exports.readdir(directory))if (upperName === actualName.toUpperCase()) { + filePath = $dbafb99e53cb7a2f$var$path.join(directory, actualName); + break; + } + } catch (err) { + // eslint-disable-next-line no-console + console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`); + } + return filePath; + } else { + if ($dbafb99e53cb7a2f$var$isUnixExecutable(stats)) return filePath; + } + } } - state._setResult(); + return ""; + }); +} +module.exports.tryGetExecutablePath = $dbafb99e53cb7a2f$var$tryGetExecutablePath; +function $dbafb99e53cb7a2f$var$normalizeSeparators(p) { + p = p || ""; + if (module.exports.IS_WINDOWS) { + // convert slashes on Windows + p = p.replace(/\//g, "\\"); + // remove redundant slashes + return p.replace(/\\\\+/g, "\\"); } + // remove redundant slashes + return p.replace(/\/\/+/g, "/"); +} +// on Mac/Linux, test the execute bit +// R W X R W X R W X +// 256 128 64 32 16 8 4 2 1 +function $dbafb99e53cb7a2f$var$isUnixExecutable(stats) { + return (stats.mode & 1) > 0 || (stats.mode & 8) > 0 && stats.gid === process.getgid() || (stats.mode & 64) > 0 && stats.uid === process.getuid(); +} +// Get the path of cmd.exe in windows +function $dbafb99e53cb7a2f$var$getCmdPath() { + var _a; + return (_a = process.env["COMSPEC"]) !== null && _a !== void 0 ? _a : `cmd.exe`; } +module.exports.getCmdPath = $dbafb99e53cb7a2f$var$getCmdPath; }); -parcelRequire.register("aKDK7", function(module, exports) { + +parcelRequire.register("9Gi2U", function(module, exports) { "use strict"; -var $7d3d0757594417fa$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { +var $70c608dba765868c$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve) { resolve(value); @@ -2894,7 +2093,7 @@ var $7d3d0757594417fa$var$__awaiter = module.exports && module.exports.__awaiter step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -var $7d3d0757594417fa$var$__importStar = module.exports && module.exports.__importStar || function(mod) { +var $70c608dba765868c$var$__importStar = module.exports && module.exports.__importStar || function(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) { @@ -2907,267 +2106,211 @@ Object.defineProperty(module.exports, "__esModule", { value: true }); -const $7d3d0757594417fa$var$childProcess = $7d3d0757594417fa$var$__importStar($kzVu7$child_process); +var $7Zp2G = parcelRequire("7Zp2G"); -const $7d3d0757594417fa$var$path = $7d3d0757594417fa$var$__importStar($kzVu7$path); +var $d0w1v = parcelRequire("d0w1v"); +var $eI33N = parcelRequire("eI33N"); -const $7d3d0757594417fa$var$ioUtil = $7d3d0757594417fa$var$__importStar((parcelRequire("gFnb3"))); -const $7d3d0757594417fa$var$exec = $kzVu7$util.promisify($7d3d0757594417fa$var$childProcess.exec); +const $70c608dba765868c$var$os = $70c608dba765868c$var$__importStar($bknAJ$os); + +const $70c608dba765868c$var$path = $70c608dba765868c$var$__importStar($bknAJ$path); /** - * Copies a file or folder. - * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js - * - * @param source source path - * @param dest destination path - * @param options optional. See CopyOptions. - */ function $7d3d0757594417fa$var$cp(source, dest, options = {}) { - return $7d3d0757594417fa$var$__awaiter(this, void 0, void 0, function*() { - const { force: force, recursive: recursive } = $7d3d0757594417fa$var$readCopyOptions(options); - const destStat = (yield $7d3d0757594417fa$var$ioUtil.exists(dest)) ? yield $7d3d0757594417fa$var$ioUtil.stat(dest) : null; - // Dest is an existing file, but not forcing - if (destStat && destStat.isFile() && !force) return; - // If dest is an existing directory, should copy inside. - const newDest = destStat && destStat.isDirectory() ? $7d3d0757594417fa$var$path.join(dest, $7d3d0757594417fa$var$path.basename(source)) : dest; - if (!(yield $7d3d0757594417fa$var$ioUtil.exists(source))) throw new Error(`no such file or directory: ${source}`); - const sourceStat = yield $7d3d0757594417fa$var$ioUtil.stat(source); - if (sourceStat.isDirectory()) { - if (!recursive) throw new Error(`Failed to copy. ${source} is a directory, but tried to copy without recursive flag.`); - else yield $7d3d0757594417fa$var$cpDirRecursive(source, newDest, 0, force); - } else { - if ($7d3d0757594417fa$var$path.relative(source, newDest) === "") // a file cannot be copied to itself - throw new Error(`'${newDest}' and '${source}' are the same file`); - yield $7d3d0757594417fa$var$copyFile(source, newDest, force); - } - }); + * The code to exit an action + */ var $70c608dba765868c$var$ExitCode; +(function(ExitCode) { + /** + * A code indicating that the action was successful + */ ExitCode[ExitCode["Success"] = 0] = "Success"; + /** + * A code indicating that the action was a failure + */ ExitCode[ExitCode["Failure"] = 1] = "Failure"; +})($70c608dba765868c$var$ExitCode = module.exports.ExitCode || (module.exports.ExitCode = {})); +//----------------------------------------------------------------------- +// Variables +//----------------------------------------------------------------------- +/** + * Sets env variable for this action and future actions in the job + * @param name the name of the variable to set + * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify + */ // eslint-disable-next-line @typescript-eslint/no-explicit-any +function $70c608dba765868c$var$exportVariable(name, val) { + const convertedVal = $eI33N.toCommandValue(val); + process.env[name] = convertedVal; + const filePath = process.env["GITHUB_ENV"] || ""; + if (filePath) { + const delimiter = "_GitHubActionsFileCommandDelimeter_"; + const commandValue = `${name}<<${delimiter}${$70c608dba765868c$var$os.EOL}${convertedVal}${$70c608dba765868c$var$os.EOL}${delimiter}`; + $d0w1v.issueCommand("ENV", commandValue); + } else $7Zp2G.issueCommand("set-env", { + name: name + }, convertedVal); } -module.exports.cp = $7d3d0757594417fa$var$cp; +module.exports.exportVariable = $70c608dba765868c$var$exportVariable; /** - * Moves a path. - * - * @param source source path - * @param dest destination path - * @param options optional. See MoveOptions. - */ function $7d3d0757594417fa$var$mv(source, dest, options = {}) { - return $7d3d0757594417fa$var$__awaiter(this, void 0, void 0, function*() { - if (yield $7d3d0757594417fa$var$ioUtil.exists(dest)) { - let destExists = true; - if (yield $7d3d0757594417fa$var$ioUtil.isDirectory(dest)) { - // If dest is directory copy src into dest - dest = $7d3d0757594417fa$var$path.join(dest, $7d3d0757594417fa$var$path.basename(source)); - destExists = yield $7d3d0757594417fa$var$ioUtil.exists(dest); - } - if (destExists) { - if (options.force == null || options.force) yield $7d3d0757594417fa$var$rmRF(dest); - else throw new Error("Destination already exists"); - } - } - yield $7d3d0757594417fa$var$mkdirP($7d3d0757594417fa$var$path.dirname(dest)); - yield $7d3d0757594417fa$var$ioUtil.rename(source, dest); - }); + * Registers a secret which will get masked from logs + * @param secret value of the secret + */ function $70c608dba765868c$var$setSecret(secret) { + $7Zp2G.issueCommand("add-mask", {}, secret); } -module.exports.mv = $7d3d0757594417fa$var$mv; +module.exports.setSecret = $70c608dba765868c$var$setSecret; /** - * Remove a path recursively with force + * Prepends inputPath to the PATH (for this action and future actions) + * @param inputPath + */ function $70c608dba765868c$var$addPath(inputPath) { + const filePath = process.env["GITHUB_PATH"] || ""; + if (filePath) $d0w1v.issueCommand("PATH", inputPath); + else $7Zp2G.issueCommand("add-path", {}, inputPath); + process.env["PATH"] = `${inputPath}${$70c608dba765868c$var$path.delimiter}${process.env["PATH"]}`; +} +module.exports.addPath = $70c608dba765868c$var$addPath; +/** + * Gets the value of an input. The value is also trimmed. * - * @param inputPath path to remove - */ function $7d3d0757594417fa$var$rmRF(inputPath) { - return $7d3d0757594417fa$var$__awaiter(this, void 0, void 0, function*() { - if ($7d3d0757594417fa$var$ioUtil.IS_WINDOWS) { - // Node doesn't provide a delete operation, only an unlink function. This means that if the file is being used by another - // program (e.g. antivirus), it won't be deleted. To address this, we shell out the work to rd/del. - try { - if (yield $7d3d0757594417fa$var$ioUtil.isDirectory(inputPath, true)) yield $7d3d0757594417fa$var$exec(`rd /s /q "${inputPath}"`); - else yield $7d3d0757594417fa$var$exec(`del /f /a "${inputPath}"`); - } catch (err) { - // if you try to delete a file that doesn't exist, desired result is achieved - // other errors are valid - if (err.code !== "ENOENT") throw err; - } - // Shelling out fails to remove a symlink folder with missing source, this unlink catches that - try { - yield $7d3d0757594417fa$var$ioUtil.unlink(inputPath); - } catch (err) { - // if you try to delete a file that doesn't exist, desired result is achieved - // other errors are valid - if (err.code !== "ENOENT") throw err; - } - } else { - let isDir = false; - try { - isDir = yield $7d3d0757594417fa$var$ioUtil.isDirectory(inputPath); - } catch (err) { - // if you try to delete a file that doesn't exist, desired result is achieved - // other errors are valid - if (err.code !== "ENOENT") throw err; - return; - } - if (isDir) yield $7d3d0757594417fa$var$exec(`rm -rf "${inputPath}"`); - else yield $7d3d0757594417fa$var$ioUtil.unlink(inputPath); - } - }); + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns string + */ function $70c608dba765868c$var$getInput(name, options) { + const val = process.env[`INPUT_${name.replace(/ /g, "_").toUpperCase()}`] || ""; + if (options && options.required && !val) throw new Error(`Input required and not supplied: ${name}`); + return val.trim(); } -module.exports.rmRF = $7d3d0757594417fa$var$rmRF; +module.exports.getInput = $70c608dba765868c$var$getInput; /** - * Make a directory. Creates the full path with folders in between - * Will throw if it fails + * Sets the value of an output. * - * @param fsPath path to create - * @returns Promise - */ function $7d3d0757594417fa$var$mkdirP(fsPath) { - return $7d3d0757594417fa$var$__awaiter(this, void 0, void 0, function*() { - yield $7d3d0757594417fa$var$ioUtil.mkdirP(fsPath); - }); + * @param name name of the output to set + * @param value value to store. Non-string values will be converted to a string via JSON.stringify + */ // eslint-disable-next-line @typescript-eslint/no-explicit-any +function $70c608dba765868c$var$setOutput(name, value) { + process.stdout.write($70c608dba765868c$var$os.EOL); + $7Zp2G.issueCommand("set-output", { + name: name + }, value); } -module.exports.mkdirP = $7d3d0757594417fa$var$mkdirP; +module.exports.setOutput = $70c608dba765868c$var$setOutput; /** - * Returns path of a tool had the tool actually been invoked. Resolves via paths. - * If you check and the tool does not exist, it will throw. + * Enables or disables the echoing of commands into stdout for the rest of the step. + * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set. * - * @param tool name of the tool - * @param check whether to check if tool exists - * @returns Promise path to tool - */ function $7d3d0757594417fa$var$which(tool, check) { - return $7d3d0757594417fa$var$__awaiter(this, void 0, void 0, function*() { - if (!tool) throw new Error("parameter 'tool' is required"); - // recursive when check=true - if (check) { - const result = yield $7d3d0757594417fa$var$which(tool, false); - if (!result) { - if ($7d3d0757594417fa$var$ioUtil.IS_WINDOWS) throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`); - else throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`); - } - return result; - } - const matches = yield $7d3d0757594417fa$var$findInPath(tool); - if (matches && matches.length > 0) return matches[0]; - return ""; - }); + */ function $70c608dba765868c$var$setCommandEcho(enabled) { + $7Zp2G.issue("echo", enabled ? "on" : "off"); } -module.exports.which = $7d3d0757594417fa$var$which; +module.exports.setCommandEcho = $70c608dba765868c$var$setCommandEcho; +//----------------------------------------------------------------------- +// Results +//----------------------------------------------------------------------- /** - * Returns a list of all occurrences of the given tool on the system path. + * Sets the action status to failed. + * When the action exits it will be with an exit code of 1 + * @param message add error issue message + */ function $70c608dba765868c$var$setFailed(message) { + process.exitCode = $70c608dba765868c$var$ExitCode.Failure; + $70c608dba765868c$var$error(message); +} +module.exports.setFailed = $70c608dba765868c$var$setFailed; +//----------------------------------------------------------------------- +// Logging Commands +//----------------------------------------------------------------------- +/** + * Gets whether Actions Step Debug is on or not + */ function $70c608dba765868c$var$isDebug() { + return process.env["RUNNER_DEBUG"] === "1"; +} +module.exports.isDebug = $70c608dba765868c$var$isDebug; +/** + * Writes debug message to user log + * @param message debug message + */ function $70c608dba765868c$var$debug(message) { + $7Zp2G.issueCommand("debug", {}, message); +} +module.exports.debug = $70c608dba765868c$var$debug; +/** + * Adds an error issue + * @param message error issue message. Errors will be converted to string via toString() + */ function $70c608dba765868c$var$error(message) { + $7Zp2G.issue("error", message instanceof Error ? message.toString() : message); +} +module.exports.error = $70c608dba765868c$var$error; +/** + * Adds an warning issue + * @param message warning issue message. Errors will be converted to string via toString() + */ function $70c608dba765868c$var$warning(message) { + $7Zp2G.issue("warning", message instanceof Error ? message.toString() : message); +} +module.exports.warning = $70c608dba765868c$var$warning; +/** + * Writes info to log with console.log. + * @param message info message + */ function $70c608dba765868c$var$info(message) { + process.stdout.write(message + $70c608dba765868c$var$os.EOL); +} +module.exports.info = $70c608dba765868c$var$info; +/** + * Begin an output group. * - * @returns Promise the paths of the tool - */ function $7d3d0757594417fa$var$findInPath(tool) { - return $7d3d0757594417fa$var$__awaiter(this, void 0, void 0, function*() { - if (!tool) throw new Error("parameter 'tool' is required"); - // build the list of extensions to try - const extensions = []; - if ($7d3d0757594417fa$var$ioUtil.IS_WINDOWS && process.env["PATHEXT"]) { - for (const extension of process.env["PATHEXT"].split($7d3d0757594417fa$var$path.delimiter))if (extension) extensions.push(extension); - } - // if it's rooted, return it if exists. otherwise return empty. - if ($7d3d0757594417fa$var$ioUtil.isRooted(tool)) { - const filePath = yield $7d3d0757594417fa$var$ioUtil.tryGetExecutablePath(tool, extensions); - if (filePath) return [ - filePath - ]; - return []; - } - // if any path separators, return empty - if (tool.includes($7d3d0757594417fa$var$path.sep)) return []; - // build the list of directories - // - // Note, technically "where" checks the current directory on Windows. From a toolkit perspective, - // it feels like we should not do this. Checking the current directory seems like more of a use - // case of a shell, and the which() function exposed by the toolkit should strive for consistency - // across platforms. - const directories = []; - if (process.env.PATH) { - for (const p of process.env.PATH.split($7d3d0757594417fa$var$path.delimiter))if (p) directories.push(p); - } - // find all matches - const matches = []; - for (const directory of directories){ - const filePath = yield $7d3d0757594417fa$var$ioUtil.tryGetExecutablePath($7d3d0757594417fa$var$path.join(directory, tool), extensions); - if (filePath) matches.push(filePath); - } - return matches; - }); + * Output until the next `groupEnd` will be foldable in this group + * + * @param name The name of the output group + */ function $70c608dba765868c$var$startGroup(name) { + $7Zp2G.issue("group", name); } -module.exports.findInPath = $7d3d0757594417fa$var$findInPath; -function $7d3d0757594417fa$var$readCopyOptions(options) { - const force = options.force == null ? true : options.force; - const recursive = Boolean(options.recursive); - return { - force: force, - recursive: recursive - }; +module.exports.startGroup = $70c608dba765868c$var$startGroup; +/** + * End an output group. + */ function $70c608dba765868c$var$endGroup() { + $7Zp2G.issue("endgroup"); } -function $7d3d0757594417fa$var$cpDirRecursive(sourceDir, destDir, currentDepth, force) { - return $7d3d0757594417fa$var$__awaiter(this, void 0, void 0, function*() { - // Ensure there is not a run away recursive copy - if (currentDepth >= 255) return; - currentDepth++; - yield $7d3d0757594417fa$var$mkdirP(destDir); - const files = yield $7d3d0757594417fa$var$ioUtil.readdir(sourceDir); - for (const fileName of files){ - const srcFile = `${sourceDir}/${fileName}`; - const destFile = `${destDir}/${fileName}`; - const srcFileStat = yield $7d3d0757594417fa$var$ioUtil.lstat(srcFile); - if (srcFileStat.isDirectory()) // Recurse - yield $7d3d0757594417fa$var$cpDirRecursive(srcFile, destFile, currentDepth, force); - else yield $7d3d0757594417fa$var$copyFile(srcFile, destFile, force); +module.exports.endGroup = $70c608dba765868c$var$endGroup; +/** + * Wrap an asynchronous function call in a group. + * + * Returns the same type as the function itself. + * + * @param name The name of the group + * @param fn The function to wrap in the group + */ function $70c608dba765868c$var$group(name, fn) { + return $70c608dba765868c$var$__awaiter(this, void 0, void 0, function*() { + $70c608dba765868c$var$startGroup(name); + let result; + try { + result = yield fn(); + } finally{ + $70c608dba765868c$var$endGroup(); } - // Change the mode for the newly created directory - yield $7d3d0757594417fa$var$ioUtil.chmod(destDir, (yield $7d3d0757594417fa$var$ioUtil.stat(sourceDir)).mode); + return result; }); } -// Buffered file copy -function $7d3d0757594417fa$var$copyFile(srcFile, destFile, force) { - return $7d3d0757594417fa$var$__awaiter(this, void 0, void 0, function*() { - if ((yield $7d3d0757594417fa$var$ioUtil.lstat(srcFile)).isSymbolicLink()) { - // unlink/re-link it - try { - yield $7d3d0757594417fa$var$ioUtil.lstat(destFile); - yield $7d3d0757594417fa$var$ioUtil.unlink(destFile); - } catch (e) { - // Try to override file permission - if (e.code === "EPERM") { - yield $7d3d0757594417fa$var$ioUtil.chmod(destFile, "0666"); - yield $7d3d0757594417fa$var$ioUtil.unlink(destFile); - } - // other errors = it doesn't exist, no work to do - } - // Copy over symlink - const symlinkFull = yield $7d3d0757594417fa$var$ioUtil.readlink(srcFile); - yield $7d3d0757594417fa$var$ioUtil.symlink(symlinkFull, destFile, $7d3d0757594417fa$var$ioUtil.IS_WINDOWS ? "junction" : null); - } else if (!(yield $7d3d0757594417fa$var$ioUtil.exists(destFile)) || force) yield $7d3d0757594417fa$var$ioUtil.copyFile(srcFile, destFile); - }); +module.exports.group = $70c608dba765868c$var$group; +//----------------------------------------------------------------------- +// Wrapper action state +//----------------------------------------------------------------------- +/** + * Saves state for current action, the state can only be retrieved by this action's post job execution. + * + * @param name name of the state to store + * @param value value to store. Non-string values will be converted to a string via JSON.stringify + */ // eslint-disable-next-line @typescript-eslint/no-explicit-any +function $70c608dba765868c$var$saveState(name, value) { + $7Zp2G.issueCommand("save-state", { + name: name + }, value); +} +module.exports.saveState = $70c608dba765868c$var$saveState; +/** + * Gets the value of an state set by this action's main execution. + * + * @param name name of the state to get + * @returns string + */ function $70c608dba765868c$var$getState(name) { + return process.env[`STATE_${name}`] || ""; } +module.exports.getState = $70c608dba765868c$var$getState; }); -parcelRequire.register("gFnb3", function(module, exports) { +parcelRequire.register("7Zp2G", function(module, exports) { "use strict"; -var $c2227437177516e9$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var $c2227437177516e9$var$__importStar = module.exports && module.exports.__importStar || function(mod) { +var $5d11a7cb0e353079$var$__importStar = module.exports && module.exports.__importStar || function(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) { @@ -3176,170 +2319,122 @@ var $c2227437177516e9$var$__importStar = module.exports && module.exports.__impo result["default"] = mod; return result; }; -var $c2227437177516e9$var$_a; Object.defineProperty(module.exports, "__esModule", { value: true }); +const $5d11a7cb0e353079$var$os = $5d11a7cb0e353079$var$__importStar($bknAJ$os); -const $c2227437177516e9$var$fs = $c2227437177516e9$var$__importStar($kzVu7$fs); - -const $c2227437177516e9$var$path = $c2227437177516e9$var$__importStar($kzVu7$path); -$c2227437177516e9$var$_a = $c2227437177516e9$var$fs.promises, module.exports.chmod = $c2227437177516e9$var$_a.chmod, module.exports.copyFile = $c2227437177516e9$var$_a.copyFile, module.exports.lstat = $c2227437177516e9$var$_a.lstat, module.exports.mkdir = $c2227437177516e9$var$_a.mkdir, module.exports.readdir = $c2227437177516e9$var$_a.readdir, module.exports.readlink = $c2227437177516e9$var$_a.readlink, module.exports.rename = $c2227437177516e9$var$_a.rename, module.exports.rmdir = $c2227437177516e9$var$_a.rmdir, module.exports.stat = $c2227437177516e9$var$_a.stat, module.exports.symlink = $c2227437177516e9$var$_a.symlink, module.exports.unlink = $c2227437177516e9$var$_a.unlink; -module.exports.IS_WINDOWS = process.platform === "win32"; -function $c2227437177516e9$var$exists(fsPath) { - return $c2227437177516e9$var$__awaiter(this, void 0, void 0, function*() { - try { - yield module.exports.stat(fsPath); - } catch (err) { - if (err.code === "ENOENT") return false; - throw err; - } - return true; - }); -} -module.exports.exists = $c2227437177516e9$var$exists; -function $c2227437177516e9$var$isDirectory(fsPath, useStat = false) { - return $c2227437177516e9$var$__awaiter(this, void 0, void 0, function*() { - const stats = useStat ? yield module.exports.stat(fsPath) : yield module.exports.lstat(fsPath); - return stats.isDirectory(); - }); -} -module.exports.isDirectory = $c2227437177516e9$var$isDirectory; -/** - * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like: - * \, \hello, \\hello\share, C:, and C:\hello (and corresponding alternate separator cases). - */ function $c2227437177516e9$var$isRooted(p) { - p = $c2227437177516e9$var$normalizeSeparators(p); - if (!p) throw new Error('isRooted() parameter "p" cannot be empty'); - if (module.exports.IS_WINDOWS) return p.startsWith("\\") || /^[A-Z]:/i.test(p) // e.g. \ or \hello or \\hello - ; // e.g. C: or C:\hello - return p.startsWith("/"); -} -module.exports.isRooted = $c2227437177516e9$var$isRooted; +var $eI33N = parcelRequire("eI33N"); /** - * Recursively create a directory at `fsPath`. + * Commands * - * This implementation is optimistic, meaning it attempts to create the full - * path first, and backs up the path stack from there. + * Command Format: + * ::name key=value,key=value::message * - * @param fsPath The path to create - * @param maxDepth The maximum recursion depth - * @param depth The current recursion depth - */ function $c2227437177516e9$var$mkdirP(fsPath, maxDepth = 1000, depth = 1) { - return $c2227437177516e9$var$__awaiter(this, void 0, void 0, function*() { - $kzVu7$assert.ok(fsPath, "a path argument must be provided"); - fsPath = $c2227437177516e9$var$path.resolve(fsPath); - if (depth >= maxDepth) return module.exports.mkdir(fsPath); - try { - yield module.exports.mkdir(fsPath); - return; - } catch (err) { - switch(err.code){ - case "ENOENT": - yield $c2227437177516e9$var$mkdirP($c2227437177516e9$var$path.dirname(fsPath), maxDepth, depth + 1); - yield module.exports.mkdir(fsPath); - return; - default: - { - let stats; - try { - stats = yield module.exports.stat(fsPath); - } catch (err2) { - throw err; - } - if (!stats.isDirectory()) throw err; - } - } - } - }); + * Examples: + * ::warning::This is the message + * ::set-env name=MY_VAR::some value + */ function $5d11a7cb0e353079$var$issueCommand(command, properties, message) { + const cmd = new $5d11a7cb0e353079$var$Command(command, properties, message); + process.stdout.write(cmd.toString() + $5d11a7cb0e353079$var$os.EOL); } -module.exports.mkdirP = $c2227437177516e9$var$mkdirP; -/** - * Best effort attempt to determine whether a file exists and is executable. - * @param filePath file path to check - * @param extensions additional file extensions to try - * @return if file exists and is executable, returns the file path. otherwise empty string. - */ function $c2227437177516e9$var$tryGetExecutablePath(filePath, extensions) { - return $c2227437177516e9$var$__awaiter(this, void 0, void 0, function*() { - let stats = undefined; - try { - // test file exists - stats = yield module.exports.stat(filePath); - } catch (err) { - if (err.code !== "ENOENT") // eslint-disable-next-line no-console - console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); - } - if (stats && stats.isFile()) { - if (module.exports.IS_WINDOWS) { - // on Windows, test for valid extension - const upperExt = $c2227437177516e9$var$path.extname(filePath).toUpperCase(); - if (extensions.some((validExt)=>validExt.toUpperCase() === upperExt)) return filePath; - } else { - if ($c2227437177516e9$var$isUnixExecutable(stats)) return filePath; - } - } - // try each extension - const originalFilePath = filePath; - for (const extension of extensions){ - filePath = originalFilePath + extension; - stats = undefined; - try { - stats = yield module.exports.stat(filePath); - } catch (err) { - if (err.code !== "ENOENT") // eslint-disable-next-line no-console - console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); - } - if (stats && stats.isFile()) { - if (module.exports.IS_WINDOWS) { - // preserve the case of the actual file (since an extension was appended) - try { - const directory = $c2227437177516e9$var$path.dirname(filePath); - const upperName = $c2227437177516e9$var$path.basename(filePath).toUpperCase(); - for (const actualName of yield module.exports.readdir(directory))if (upperName === actualName.toUpperCase()) { - filePath = $c2227437177516e9$var$path.join(directory, actualName); - break; - } - } catch (err) { - // eslint-disable-next-line no-console - console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`); - } - return filePath; - } else { - if ($c2227437177516e9$var$isUnixExecutable(stats)) return filePath; - } - } - } - return ""; - }); +module.exports.issueCommand = $5d11a7cb0e353079$var$issueCommand; +function $5d11a7cb0e353079$var$issue(name, message = "") { + $5d11a7cb0e353079$var$issueCommand(name, {}, message); } -module.exports.tryGetExecutablePath = $c2227437177516e9$var$tryGetExecutablePath; -function $c2227437177516e9$var$normalizeSeparators(p) { - p = p || ""; - if (module.exports.IS_WINDOWS) { - // convert slashes on Windows - p = p.replace(/\//g, "\\"); - // remove redundant slashes - return p.replace(/\\\\+/g, "\\"); +module.exports.issue = $5d11a7cb0e353079$var$issue; +const $5d11a7cb0e353079$var$CMD_STRING = "::"; +class $5d11a7cb0e353079$var$Command { + constructor(command, properties, message){ + if (!command) command = "missing.command"; + this.command = command; + this.properties = properties; + this.message = message; + } + toString() { + let cmdStr = $5d11a7cb0e353079$var$CMD_STRING + this.command; + if (this.properties && Object.keys(this.properties).length > 0) { + cmdStr += " "; + let first = true; + for(const key in this.properties)if (this.properties.hasOwnProperty(key)) { + const val = this.properties[key]; + if (val) { + if (first) first = false; + else cmdStr += ","; + cmdStr += `${key}=${$5d11a7cb0e353079$var$escapeProperty(val)}`; + } + } + } + cmdStr += `${$5d11a7cb0e353079$var$CMD_STRING}${$5d11a7cb0e353079$var$escapeData(this.message)}`; + return cmdStr; } - // remove redundant slashes - return p.replace(/\/\/+/g, "/"); } -// on Mac/Linux, test the execute bit -// R W X R W X R W X -// 256 128 64 32 16 8 4 2 1 -function $c2227437177516e9$var$isUnixExecutable(stats) { - return (stats.mode & 1) > 0 || (stats.mode & 8) > 0 && stats.gid === process.getgid() || (stats.mode & 64) > 0 && stats.uid === process.getuid(); +function $5d11a7cb0e353079$var$escapeData(s) { + return $eI33N.toCommandValue(s).replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A"); +} +function $5d11a7cb0e353079$var$escapeProperty(s) { + return $eI33N.toCommandValue(s).replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A").replace(/:/g, "%3A").replace(/,/g, "%2C"); +} + +}); +parcelRequire.register("eI33N", function(module, exports) { +"use strict"; +// We use any as a valid input type +/* eslint-disable @typescript-eslint/no-explicit-any */ Object.defineProperty(module.exports, "__esModule", { + value: true +}); +/** + * Sanitizes an input into a string so it can be passed into issueCommand safely + * @param input input to sanitize into a string + */ function $ab578c775b629fc6$var$toCommandValue(input) { + if (input === null || input === undefined) return ""; + else if (typeof input === "string" || input instanceof String) return input; + return JSON.stringify(input); } +module.exports.toCommandValue = $ab578c775b629fc6$var$toCommandValue; + +}); + +parcelRequire.register("d0w1v", function(module, exports) { +"use strict"; +// For internal use, subject to change. +var $97841d952ff89e29$var$__importStar = module.exports && module.exports.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for(var k in mod)if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; + } + result["default"] = mod; + return result; +}; +Object.defineProperty(module.exports, "__esModule", { + value: true }); +// We use any as a valid input type +/* eslint-disable @typescript-eslint/no-explicit-any */ const $97841d952ff89e29$var$fs = $97841d952ff89e29$var$__importStar($bknAJ$fs); + +const $97841d952ff89e29$var$os = $97841d952ff89e29$var$__importStar($bknAJ$os); + +var $eI33N = parcelRequire("eI33N"); +function $97841d952ff89e29$var$issueCommand(command, message) { + const filePath = process.env[`GITHUB_${command}`]; + if (!filePath) throw new Error(`Unable to find environment variable for file command ${command}`); + if (!$97841d952ff89e29$var$fs.existsSync(filePath)) throw new Error(`Missing file at path: ${filePath}`); + $97841d952ff89e29$var$fs.appendFileSync(filePath, `${$eI33N.toCommandValue(message)}${$97841d952ff89e29$var$os.EOL}`, { + encoding: "utf8" + }); +} +module.exports.issueCommand = $97841d952ff89e29$var$issueCommand; +}); -parcelRequire.register("7C30t", function(module, exports) { +parcelRequire.register("f2hs4", function(module, exports) { "use strict"; -var $58ae6a13f2ee10a4$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) { +var $af24947b224a744f$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, @@ -3351,7 +2446,7 @@ var $58ae6a13f2ee10a4$var$__createBinding = module.exports && module.exports.__c if (k2 === undefined) k2 = k; o[k2] = m[k]; }); -var $58ae6a13f2ee10a4$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) { +var $af24947b224a744f$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v @@ -3359,16 +2454,16 @@ var $58ae6a13f2ee10a4$var$__setModuleDefault = module.exports && module.exports. } : function(o, v) { o["default"] = v; }); -var $58ae6a13f2ee10a4$var$__importStar = module.exports && module.exports.__importStar || function(mod) { +var $af24947b224a744f$var$__importStar = module.exports && module.exports.__importStar || function(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) { - for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $58ae6a13f2ee10a4$var$__createBinding(result, mod, k); + for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $af24947b224a744f$var$__createBinding(result, mod, k); } - $58ae6a13f2ee10a4$var$__setModuleDefault(result, mod); + $af24947b224a744f$var$__setModuleDefault(result, mod); return result; }; -var $58ae6a13f2ee10a4$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { +var $af24947b224a744f$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve) { resolve(value); @@ -3401,9 +2496,14 @@ Object.defineProperty(module.exports, "__esModule", { module.exports.findInPath = module.exports.which = module.exports.mkdirP = module.exports.rmRF = module.exports.mv = module.exports.cp = void 0; -const $58ae6a13f2ee10a4$var$path = $58ae6a13f2ee10a4$var$__importStar($kzVu7$path); +const $af24947b224a744f$var$childProcess = $af24947b224a744f$var$__importStar($bknAJ$child_process); -const $58ae6a13f2ee10a4$var$ioUtil = $58ae6a13f2ee10a4$var$__importStar((parcelRequire("iRnUA"))); +const $af24947b224a744f$var$path = $af24947b224a744f$var$__importStar($bknAJ$path); + + +const $af24947b224a744f$var$ioUtil = $af24947b224a744f$var$__importStar((parcelRequire("7O5s8"))); +const $af24947b224a744f$var$exec = $bknAJ$util.promisify($af24947b224a744f$var$childProcess.exec); +const $af24947b224a744f$var$execFile = $bknAJ$util.promisify($af24947b224a744f$var$childProcess.execFile); /** * Copies a file or folder. * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js @@ -3411,92 +2511,123 @@ const $58ae6a13f2ee10a4$var$ioUtil = $58ae6a13f2ee10a4$var$__importStar((parcelR * @param source source path * @param dest destination path * @param options optional. See CopyOptions. - */ function $58ae6a13f2ee10a4$var$cp(source, dest, options = {}) { - return $58ae6a13f2ee10a4$var$__awaiter(this, void 0, void 0, function*() { - const { force: force, recursive: recursive, copySourceDirectory: copySourceDirectory } = $58ae6a13f2ee10a4$var$readCopyOptions(options); - const destStat = (yield $58ae6a13f2ee10a4$var$ioUtil.exists(dest)) ? yield $58ae6a13f2ee10a4$var$ioUtil.stat(dest) : null; + */ function $af24947b224a744f$var$cp(source, dest, options = {}) { + return $af24947b224a744f$var$__awaiter(this, void 0, void 0, function*() { + const { force: force, recursive: recursive, copySourceDirectory: copySourceDirectory } = $af24947b224a744f$var$readCopyOptions(options); + const destStat = (yield $af24947b224a744f$var$ioUtil.exists(dest)) ? yield $af24947b224a744f$var$ioUtil.stat(dest) : null; // Dest is an existing file, but not forcing if (destStat && destStat.isFile() && !force) return; // If dest is an existing directory, should copy inside. - const newDest = destStat && destStat.isDirectory() && copySourceDirectory ? $58ae6a13f2ee10a4$var$path.join(dest, $58ae6a13f2ee10a4$var$path.basename(source)) : dest; - if (!(yield $58ae6a13f2ee10a4$var$ioUtil.exists(source))) throw new Error(`no such file or directory: ${source}`); - const sourceStat = yield $58ae6a13f2ee10a4$var$ioUtil.stat(source); + const newDest = destStat && destStat.isDirectory() && copySourceDirectory ? $af24947b224a744f$var$path.join(dest, $af24947b224a744f$var$path.basename(source)) : dest; + if (!(yield $af24947b224a744f$var$ioUtil.exists(source))) throw new Error(`no such file or directory: ${source}`); + const sourceStat = yield $af24947b224a744f$var$ioUtil.stat(source); if (sourceStat.isDirectory()) { if (!recursive) throw new Error(`Failed to copy. ${source} is a directory, but tried to copy without recursive flag.`); - else yield $58ae6a13f2ee10a4$var$cpDirRecursive(source, newDest, 0, force); + else yield $af24947b224a744f$var$cpDirRecursive(source, newDest, 0, force); } else { - if ($58ae6a13f2ee10a4$var$path.relative(source, newDest) === "") // a file cannot be copied to itself + if ($af24947b224a744f$var$path.relative(source, newDest) === "") // a file cannot be copied to itself throw new Error(`'${newDest}' and '${source}' are the same file`); - yield $58ae6a13f2ee10a4$var$copyFile(source, newDest, force); + yield $af24947b224a744f$var$copyFile(source, newDest, force); } }); } -module.exports.cp = $58ae6a13f2ee10a4$var$cp; +module.exports.cp = $af24947b224a744f$var$cp; /** * Moves a path. * * @param source source path * @param dest destination path * @param options optional. See MoveOptions. - */ function $58ae6a13f2ee10a4$var$mv(source, dest, options = {}) { - return $58ae6a13f2ee10a4$var$__awaiter(this, void 0, void 0, function*() { - if (yield $58ae6a13f2ee10a4$var$ioUtil.exists(dest)) { + */ function $af24947b224a744f$var$mv(source, dest, options = {}) { + return $af24947b224a744f$var$__awaiter(this, void 0, void 0, function*() { + if (yield $af24947b224a744f$var$ioUtil.exists(dest)) { let destExists = true; - if (yield $58ae6a13f2ee10a4$var$ioUtil.isDirectory(dest)) { + if (yield $af24947b224a744f$var$ioUtil.isDirectory(dest)) { // If dest is directory copy src into dest - dest = $58ae6a13f2ee10a4$var$path.join(dest, $58ae6a13f2ee10a4$var$path.basename(source)); - destExists = yield $58ae6a13f2ee10a4$var$ioUtil.exists(dest); + dest = $af24947b224a744f$var$path.join(dest, $af24947b224a744f$var$path.basename(source)); + destExists = yield $af24947b224a744f$var$ioUtil.exists(dest); } if (destExists) { - if (options.force == null || options.force) yield $58ae6a13f2ee10a4$var$rmRF(dest); + if (options.force == null || options.force) yield $af24947b224a744f$var$rmRF(dest); else throw new Error("Destination already exists"); } } - yield $58ae6a13f2ee10a4$var$mkdirP($58ae6a13f2ee10a4$var$path.dirname(dest)); - yield $58ae6a13f2ee10a4$var$ioUtil.rename(source, dest); + yield $af24947b224a744f$var$mkdirP($af24947b224a744f$var$path.dirname(dest)); + yield $af24947b224a744f$var$ioUtil.rename(source, dest); }); } -module.exports.mv = $58ae6a13f2ee10a4$var$mv; +module.exports.mv = $af24947b224a744f$var$mv; /** * Remove a path recursively with force * * @param inputPath path to remove - */ function $58ae6a13f2ee10a4$var$rmRF(inputPath) { - return $58ae6a13f2ee10a4$var$__awaiter(this, void 0, void 0, function*() { - if ($58ae6a13f2ee10a4$var$ioUtil.IS_WINDOWS) { + */ function $af24947b224a744f$var$rmRF(inputPath) { + return $af24947b224a744f$var$__awaiter(this, void 0, void 0, function*() { + if ($af24947b224a744f$var$ioUtil.IS_WINDOWS) { + // Node doesn't provide a delete operation, only an unlink function. This means that if the file is being used by another + // program (e.g. antivirus), it won't be deleted. To address this, we shell out the work to rd/del. // Check for invalid characters // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file if (/[*"<>|]/.test(inputPath)) throw new Error('File path must not contain `*`, `"`, `<`, `>` or `|` on Windows'); - } - try { - // note if path does not exist, error is silent - yield $58ae6a13f2ee10a4$var$ioUtil.rm(inputPath, { - force: true, - maxRetries: 3, - recursive: true, - retryDelay: 300 - }); - } catch (err) { - throw new Error(`File was unable to be removed ${err}`); + try { + const cmdPath = $af24947b224a744f$var$ioUtil.getCmdPath(); + if (yield $af24947b224a744f$var$ioUtil.isDirectory(inputPath, true)) yield $af24947b224a744f$var$exec(`${cmdPath} /s /c "rd /s /q "%inputPath%""`, { + env: { + inputPath: inputPath + } + }); + else yield $af24947b224a744f$var$exec(`${cmdPath} /s /c "del /f /a "%inputPath%""`, { + env: { + inputPath: inputPath + } + }); + } catch (err) { + // if you try to delete a file that doesn't exist, desired result is achieved + // other errors are valid + if (err.code !== "ENOENT") throw err; + } + // Shelling out fails to remove a symlink folder with missing source, this unlink catches that + try { + yield $af24947b224a744f$var$ioUtil.unlink(inputPath); + } catch (err) { + // if you try to delete a file that doesn't exist, desired result is achieved + // other errors are valid + if (err.code !== "ENOENT") throw err; + } + } else { + let isDir = false; + try { + isDir = yield $af24947b224a744f$var$ioUtil.isDirectory(inputPath); + } catch (err) { + // if you try to delete a file that doesn't exist, desired result is achieved + // other errors are valid + if (err.code !== "ENOENT") throw err; + return; + } + if (isDir) yield $af24947b224a744f$var$execFile(`rm`, [ + `-rf`, + `${inputPath}` + ]); + else yield $af24947b224a744f$var$ioUtil.unlink(inputPath); } }); } -module.exports.rmRF = $58ae6a13f2ee10a4$var$rmRF; +module.exports.rmRF = $af24947b224a744f$var$rmRF; /** * Make a directory. Creates the full path with folders in between * Will throw if it fails * * @param fsPath path to create * @returns Promise - */ function $58ae6a13f2ee10a4$var$mkdirP(fsPath) { - return $58ae6a13f2ee10a4$var$__awaiter(this, void 0, void 0, function*() { - $kzVu7$assert.ok(fsPath, "a path argument must be provided"); - yield $58ae6a13f2ee10a4$var$ioUtil.mkdir(fsPath, { + */ function $af24947b224a744f$var$mkdirP(fsPath) { + return $af24947b224a744f$var$__awaiter(this, void 0, void 0, function*() { + $bknAJ$assert.ok(fsPath, "a path argument must be provided"); + yield $af24947b224a744f$var$ioUtil.mkdir(fsPath, { recursive: true }); }); } -module.exports.mkdirP = $58ae6a13f2ee10a4$var$mkdirP; +module.exports.mkdirP = $af24947b224a744f$var$mkdirP; /** * Returns path of a tool had the tool actually been invoked. Resolves via paths. * If you check and the tool does not exist, it will throw. @@ -3504,46 +2635,46 @@ module.exports.mkdirP = $58ae6a13f2ee10a4$var$mkdirP; * @param tool name of the tool * @param check whether to check if tool exists * @returns Promise path to tool - */ function $58ae6a13f2ee10a4$var$which(tool, check) { - return $58ae6a13f2ee10a4$var$__awaiter(this, void 0, void 0, function*() { + */ function $af24947b224a744f$var$which(tool, check) { + return $af24947b224a744f$var$__awaiter(this, void 0, void 0, function*() { if (!tool) throw new Error("parameter 'tool' is required"); // recursive when check=true if (check) { - const result = yield $58ae6a13f2ee10a4$var$which(tool, false); + const result = yield $af24947b224a744f$var$which(tool, false); if (!result) { - if ($58ae6a13f2ee10a4$var$ioUtil.IS_WINDOWS) throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`); + if ($af24947b224a744f$var$ioUtil.IS_WINDOWS) throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`); else throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`); } return result; } - const matches = yield $58ae6a13f2ee10a4$var$findInPath(tool); + const matches = yield $af24947b224a744f$var$findInPath(tool); if (matches && matches.length > 0) return matches[0]; return ""; }); } -module.exports.which = $58ae6a13f2ee10a4$var$which; +module.exports.which = $af24947b224a744f$var$which; /** * Returns a list of all occurrences of the given tool on the system path. * * @returns Promise the paths of the tool - */ function $58ae6a13f2ee10a4$var$findInPath(tool) { - return $58ae6a13f2ee10a4$var$__awaiter(this, void 0, void 0, function*() { + */ function $af24947b224a744f$var$findInPath(tool) { + return $af24947b224a744f$var$__awaiter(this, void 0, void 0, function*() { if (!tool) throw new Error("parameter 'tool' is required"); // build the list of extensions to try const extensions = []; - if ($58ae6a13f2ee10a4$var$ioUtil.IS_WINDOWS && process.env["PATHEXT"]) { - for (const extension of process.env["PATHEXT"].split($58ae6a13f2ee10a4$var$path.delimiter))if (extension) extensions.push(extension); + if ($af24947b224a744f$var$ioUtil.IS_WINDOWS && process.env["PATHEXT"]) { + for (const extension of process.env["PATHEXT"].split($af24947b224a744f$var$path.delimiter))if (extension) extensions.push(extension); } // if it's rooted, return it if exists. otherwise return empty. - if ($58ae6a13f2ee10a4$var$ioUtil.isRooted(tool)) { - const filePath = yield $58ae6a13f2ee10a4$var$ioUtil.tryGetExecutablePath(tool, extensions); + if ($af24947b224a744f$var$ioUtil.isRooted(tool)) { + const filePath = yield $af24947b224a744f$var$ioUtil.tryGetExecutablePath(tool, extensions); if (filePath) return [ filePath ]; return []; } // if any path separators, return empty - if (tool.includes($58ae6a13f2ee10a4$var$path.sep)) return []; + if (tool.includes($af24947b224a744f$var$path.sep)) return []; // build the list of directories // // Note, technically "where" checks the current directory on Windows. From a toolkit perspective, @@ -3552,19 +2683,19 @@ module.exports.which = $58ae6a13f2ee10a4$var$which; // across platforms. const directories = []; if (process.env.PATH) { - for (const p of process.env.PATH.split($58ae6a13f2ee10a4$var$path.delimiter))if (p) directories.push(p); + for (const p of process.env.PATH.split($af24947b224a744f$var$path.delimiter))if (p) directories.push(p); } // find all matches const matches = []; for (const directory of directories){ - const filePath = yield $58ae6a13f2ee10a4$var$ioUtil.tryGetExecutablePath($58ae6a13f2ee10a4$var$path.join(directory, tool), extensions); + const filePath = yield $af24947b224a744f$var$ioUtil.tryGetExecutablePath($af24947b224a744f$var$path.join(directory, tool), extensions); if (filePath) matches.push(filePath); } return matches; }); } -module.exports.findInPath = $58ae6a13f2ee10a4$var$findInPath; -function $58ae6a13f2ee10a4$var$readCopyOptions(options) { +module.exports.findInPath = $af24947b224a744f$var$findInPath; +function $af24947b224a744f$var$readCopyOptions(options) { const force = options.force == null ? true : options.force; const recursive = Boolean(options.recursive); const copySourceDirectory = options.copySourceDirectory == null ? true : Boolean(options.copySourceDirectory); @@ -3574,52 +2705,52 @@ function $58ae6a13f2ee10a4$var$readCopyOptions(options) { copySourceDirectory: copySourceDirectory }; } -function $58ae6a13f2ee10a4$var$cpDirRecursive(sourceDir, destDir, currentDepth, force) { - return $58ae6a13f2ee10a4$var$__awaiter(this, void 0, void 0, function*() { +function $af24947b224a744f$var$cpDirRecursive(sourceDir, destDir, currentDepth, force) { + return $af24947b224a744f$var$__awaiter(this, void 0, void 0, function*() { // Ensure there is not a run away recursive copy if (currentDepth >= 255) return; currentDepth++; - yield $58ae6a13f2ee10a4$var$mkdirP(destDir); - const files = yield $58ae6a13f2ee10a4$var$ioUtil.readdir(sourceDir); + yield $af24947b224a744f$var$mkdirP(destDir); + const files = yield $af24947b224a744f$var$ioUtil.readdir(sourceDir); for (const fileName of files){ const srcFile = `${sourceDir}/${fileName}`; const destFile = `${destDir}/${fileName}`; - const srcFileStat = yield $58ae6a13f2ee10a4$var$ioUtil.lstat(srcFile); + const srcFileStat = yield $af24947b224a744f$var$ioUtil.lstat(srcFile); if (srcFileStat.isDirectory()) // Recurse - yield $58ae6a13f2ee10a4$var$cpDirRecursive(srcFile, destFile, currentDepth, force); - else yield $58ae6a13f2ee10a4$var$copyFile(srcFile, destFile, force); + yield $af24947b224a744f$var$cpDirRecursive(srcFile, destFile, currentDepth, force); + else yield $af24947b224a744f$var$copyFile(srcFile, destFile, force); } // Change the mode for the newly created directory - yield $58ae6a13f2ee10a4$var$ioUtil.chmod(destDir, (yield $58ae6a13f2ee10a4$var$ioUtil.stat(sourceDir)).mode); + yield $af24947b224a744f$var$ioUtil.chmod(destDir, (yield $af24947b224a744f$var$ioUtil.stat(sourceDir)).mode); }); } // Buffered file copy -function $58ae6a13f2ee10a4$var$copyFile(srcFile, destFile, force) { - return $58ae6a13f2ee10a4$var$__awaiter(this, void 0, void 0, function*() { - if ((yield $58ae6a13f2ee10a4$var$ioUtil.lstat(srcFile)).isSymbolicLink()) { +function $af24947b224a744f$var$copyFile(srcFile, destFile, force) { + return $af24947b224a744f$var$__awaiter(this, void 0, void 0, function*() { + if ((yield $af24947b224a744f$var$ioUtil.lstat(srcFile)).isSymbolicLink()) { // unlink/re-link it try { - yield $58ae6a13f2ee10a4$var$ioUtil.lstat(destFile); - yield $58ae6a13f2ee10a4$var$ioUtil.unlink(destFile); + yield $af24947b224a744f$var$ioUtil.lstat(destFile); + yield $af24947b224a744f$var$ioUtil.unlink(destFile); } catch (e) { // Try to override file permission if (e.code === "EPERM") { - yield $58ae6a13f2ee10a4$var$ioUtil.chmod(destFile, "0666"); - yield $58ae6a13f2ee10a4$var$ioUtil.unlink(destFile); + yield $af24947b224a744f$var$ioUtil.chmod(destFile, "0666"); + yield $af24947b224a744f$var$ioUtil.unlink(destFile); } // other errors = it doesn't exist, no work to do - } - // Copy over symlink - const symlinkFull = yield $58ae6a13f2ee10a4$var$ioUtil.readlink(srcFile); - yield $58ae6a13f2ee10a4$var$ioUtil.symlink(symlinkFull, destFile, $58ae6a13f2ee10a4$var$ioUtil.IS_WINDOWS ? "junction" : null); - } else if (!(yield $58ae6a13f2ee10a4$var$ioUtil.exists(destFile)) || force) yield $58ae6a13f2ee10a4$var$ioUtil.copyFile(srcFile, destFile); + } + // Copy over symlink + const symlinkFull = yield $af24947b224a744f$var$ioUtil.readlink(srcFile); + yield $af24947b224a744f$var$ioUtil.symlink(symlinkFull, destFile, $af24947b224a744f$var$ioUtil.IS_WINDOWS ? "junction" : null); + } else if (!(yield $af24947b224a744f$var$ioUtil.exists(destFile)) || force) yield $af24947b224a744f$var$ioUtil.copyFile(srcFile, destFile); }); } }); -parcelRequire.register("iRnUA", function(module, exports) { +parcelRequire.register("7O5s8", function(module, exports) { "use strict"; -var $dbafb99e53cb7a2f$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) { +var $5af16eb844f2c2d1$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, @@ -3631,7 +2762,7 @@ var $dbafb99e53cb7a2f$var$__createBinding = module.exports && module.exports.__c if (k2 === undefined) k2 = k; o[k2] = m[k]; }); -var $dbafb99e53cb7a2f$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) { +var $5af16eb844f2c2d1$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v @@ -3639,16 +2770,16 @@ var $dbafb99e53cb7a2f$var$__setModuleDefault = module.exports && module.exports. } : function(o, v) { o["default"] = v; }); -var $dbafb99e53cb7a2f$var$__importStar = module.exports && module.exports.__importStar || function(mod) { +var $5af16eb844f2c2d1$var$__importStar = module.exports && module.exports.__importStar || function(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) { - for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $dbafb99e53cb7a2f$var$__createBinding(result, mod, k); + for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $5af16eb844f2c2d1$var$__createBinding(result, mod, k); } - $dbafb99e53cb7a2f$var$__setModuleDefault(result, mod); + $5af16eb844f2c2d1$var$__setModuleDefault(result, mod); return result; }; -var $dbafb99e53cb7a2f$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { +var $5af16eb844f2c2d1$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve) { resolve(value); @@ -3675,23 +2806,19 @@ var $dbafb99e53cb7a2f$var$__awaiter = module.exports && module.exports.__awaiter step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -var $dbafb99e53cb7a2f$var$_a; +var $5af16eb844f2c2d1$var$_a; Object.defineProperty(module.exports, "__esModule", { value: true }); -module.exports.getCmdPath = module.exports.tryGetExecutablePath = module.exports.isRooted = module.exports.isDirectory = module.exports.exists = module.exports.READONLY = module.exports.UV_FS_O_EXLOCK = module.exports.IS_WINDOWS = module.exports.unlink = module.exports.symlink = module.exports.stat = module.exports.rmdir = module.exports.rm = module.exports.rename = module.exports.readlink = module.exports.readdir = module.exports.open = module.exports.mkdir = module.exports.lstat = module.exports.copyFile = module.exports.chmod = void 0; +module.exports.getCmdPath = module.exports.tryGetExecutablePath = module.exports.isRooted = module.exports.isDirectory = module.exports.exists = module.exports.IS_WINDOWS = module.exports.unlink = module.exports.symlink = module.exports.stat = module.exports.rmdir = module.exports.rename = module.exports.readlink = module.exports.readdir = module.exports.mkdir = module.exports.lstat = module.exports.copyFile = module.exports.chmod = void 0; -const $dbafb99e53cb7a2f$var$fs = $dbafb99e53cb7a2f$var$__importStar($kzVu7$fs); +const $5af16eb844f2c2d1$var$fs = $5af16eb844f2c2d1$var$__importStar($bknAJ$fs); -const $dbafb99e53cb7a2f$var$path = $dbafb99e53cb7a2f$var$__importStar($kzVu7$path); -$dbafb99e53cb7a2f$var$_a = $dbafb99e53cb7a2f$var$fs.promises, module.exports.chmod = $dbafb99e53cb7a2f$var$_a.chmod, module.exports.copyFile = $dbafb99e53cb7a2f$var$_a.copyFile, module.exports.lstat = $dbafb99e53cb7a2f$var$_a.lstat, module.exports.mkdir = $dbafb99e53cb7a2f$var$_a.mkdir, module.exports.open = $dbafb99e53cb7a2f$var$_a.open, module.exports.readdir = $dbafb99e53cb7a2f$var$_a.readdir, module.exports.readlink = $dbafb99e53cb7a2f$var$_a.readlink, module.exports.rename = $dbafb99e53cb7a2f$var$_a.rename, module.exports.rm = $dbafb99e53cb7a2f$var$_a.rm, module.exports.rmdir = $dbafb99e53cb7a2f$var$_a.rmdir, module.exports.stat = $dbafb99e53cb7a2f$var$_a.stat, module.exports.symlink = $dbafb99e53cb7a2f$var$_a.symlink, module.exports.unlink = $dbafb99e53cb7a2f$var$_a.unlink; -// export const {open} = 'fs' +const $5af16eb844f2c2d1$var$path = $5af16eb844f2c2d1$var$__importStar($bknAJ$path); +$5af16eb844f2c2d1$var$_a = $5af16eb844f2c2d1$var$fs.promises, module.exports.chmod = $5af16eb844f2c2d1$var$_a.chmod, module.exports.copyFile = $5af16eb844f2c2d1$var$_a.copyFile, module.exports.lstat = $5af16eb844f2c2d1$var$_a.lstat, module.exports.mkdir = $5af16eb844f2c2d1$var$_a.mkdir, module.exports.readdir = $5af16eb844f2c2d1$var$_a.readdir, module.exports.readlink = $5af16eb844f2c2d1$var$_a.readlink, module.exports.rename = $5af16eb844f2c2d1$var$_a.rename, module.exports.rmdir = $5af16eb844f2c2d1$var$_a.rmdir, module.exports.stat = $5af16eb844f2c2d1$var$_a.stat, module.exports.symlink = $5af16eb844f2c2d1$var$_a.symlink, module.exports.unlink = $5af16eb844f2c2d1$var$_a.unlink; module.exports.IS_WINDOWS = process.platform === "win32"; -// See https://github.com/nodejs/node/blob/d0153aee367422d0858105abec186da4dff0a0c5/deps/uv/include/uv/win.h#L691 -module.exports.UV_FS_O_EXLOCK = 0x10000000; -module.exports.READONLY = $dbafb99e53cb7a2f$var$fs.constants.O_RDONLY; -function $dbafb99e53cb7a2f$var$exists(fsPath) { - return $dbafb99e53cb7a2f$var$__awaiter(this, void 0, void 0, function*() { +function $5af16eb844f2c2d1$var$exists(fsPath) { + return $5af16eb844f2c2d1$var$__awaiter(this, void 0, void 0, function*() { try { yield module.exports.stat(fsPath); } catch (err) { @@ -3701,32 +2828,32 @@ function $dbafb99e53cb7a2f$var$exists(fsPath) { return true; }); } -module.exports.exists = $dbafb99e53cb7a2f$var$exists; -function $dbafb99e53cb7a2f$var$isDirectory(fsPath, useStat = false) { - return $dbafb99e53cb7a2f$var$__awaiter(this, void 0, void 0, function*() { +module.exports.exists = $5af16eb844f2c2d1$var$exists; +function $5af16eb844f2c2d1$var$isDirectory(fsPath, useStat = false) { + return $5af16eb844f2c2d1$var$__awaiter(this, void 0, void 0, function*() { const stats = useStat ? yield module.exports.stat(fsPath) : yield module.exports.lstat(fsPath); return stats.isDirectory(); }); } -module.exports.isDirectory = $dbafb99e53cb7a2f$var$isDirectory; +module.exports.isDirectory = $5af16eb844f2c2d1$var$isDirectory; /** * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like: * \, \hello, \\hello\share, C:, and C:\hello (and corresponding alternate separator cases). - */ function $dbafb99e53cb7a2f$var$isRooted(p) { - p = $dbafb99e53cb7a2f$var$normalizeSeparators(p); + */ function $5af16eb844f2c2d1$var$isRooted(p) { + p = $5af16eb844f2c2d1$var$normalizeSeparators(p); if (!p) throw new Error('isRooted() parameter "p" cannot be empty'); if (module.exports.IS_WINDOWS) return p.startsWith("\\") || /^[A-Z]:/i.test(p) // e.g. \ or \hello or \\hello ; // e.g. C: or C:\hello return p.startsWith("/"); } -module.exports.isRooted = $dbafb99e53cb7a2f$var$isRooted; +module.exports.isRooted = $5af16eb844f2c2d1$var$isRooted; /** * Best effort attempt to determine whether a file exists and is executable. * @param filePath file path to check * @param extensions additional file extensions to try * @return if file exists and is executable, returns the file path. otherwise empty string. - */ function $dbafb99e53cb7a2f$var$tryGetExecutablePath(filePath, extensions) { - return $dbafb99e53cb7a2f$var$__awaiter(this, void 0, void 0, function*() { + */ function $5af16eb844f2c2d1$var$tryGetExecutablePath(filePath, extensions) { + return $5af16eb844f2c2d1$var$__awaiter(this, void 0, void 0, function*() { let stats = undefined; try { // test file exists @@ -3738,10 +2865,10 @@ module.exports.isRooted = $dbafb99e53cb7a2f$var$isRooted; if (stats && stats.isFile()) { if (module.exports.IS_WINDOWS) { // on Windows, test for valid extension - const upperExt = $dbafb99e53cb7a2f$var$path.extname(filePath).toUpperCase(); + const upperExt = $5af16eb844f2c2d1$var$path.extname(filePath).toUpperCase(); if (extensions.some((validExt)=>validExt.toUpperCase() === upperExt)) return filePath; } else { - if ($dbafb99e53cb7a2f$var$isUnixExecutable(stats)) return filePath; + if ($5af16eb844f2c2d1$var$isUnixExecutable(stats)) return filePath; } } // try each extension @@ -3759,10 +2886,10 @@ module.exports.isRooted = $dbafb99e53cb7a2f$var$isRooted; if (module.exports.IS_WINDOWS) { // preserve the case of the actual file (since an extension was appended) try { - const directory = $dbafb99e53cb7a2f$var$path.dirname(filePath); - const upperName = $dbafb99e53cb7a2f$var$path.basename(filePath).toUpperCase(); + const directory = $5af16eb844f2c2d1$var$path.dirname(filePath); + const upperName = $5af16eb844f2c2d1$var$path.basename(filePath).toUpperCase(); for (const actualName of yield module.exports.readdir(directory))if (upperName === actualName.toUpperCase()) { - filePath = $dbafb99e53cb7a2f$var$path.join(directory, actualName); + filePath = $5af16eb844f2c2d1$var$path.join(directory, actualName); break; } } catch (err) { @@ -3771,15 +2898,15 @@ module.exports.isRooted = $dbafb99e53cb7a2f$var$isRooted; } return filePath; } else { - if ($dbafb99e53cb7a2f$var$isUnixExecutable(stats)) return filePath; + if ($5af16eb844f2c2d1$var$isUnixExecutable(stats)) return filePath; } } } return ""; }); } -module.exports.tryGetExecutablePath = $dbafb99e53cb7a2f$var$tryGetExecutablePath; -function $dbafb99e53cb7a2f$var$normalizeSeparators(p) { +module.exports.tryGetExecutablePath = $5af16eb844f2c2d1$var$tryGetExecutablePath; +function $5af16eb844f2c2d1$var$normalizeSeparators(p) { p = p || ""; if (module.exports.IS_WINDOWS) { // convert slashes on Windows @@ -3793,24 +2920,22 @@ function $dbafb99e53cb7a2f$var$normalizeSeparators(p) { // on Mac/Linux, test the execute bit // R W X R W X R W X // 256 128 64 32 16 8 4 2 1 -function $dbafb99e53cb7a2f$var$isUnixExecutable(stats) { +function $5af16eb844f2c2d1$var$isUnixExecutable(stats) { return (stats.mode & 1) > 0 || (stats.mode & 8) > 0 && stats.gid === process.getgid() || (stats.mode & 64) > 0 && stats.uid === process.getuid(); } // Get the path of cmd.exe in windows -function $dbafb99e53cb7a2f$var$getCmdPath() { +function $5af16eb844f2c2d1$var$getCmdPath() { var _a; return (_a = process.env["COMSPEC"]) !== null && _a !== void 0 ? _a : `cmd.exe`; } -module.exports.getCmdPath = $dbafb99e53cb7a2f$var$getCmdPath; +module.exports.getCmdPath = $5af16eb844f2c2d1$var$getCmdPath; }); -parcelRequire.register("jttxK", function(module, exports) { - -var $e2d7a47000ccff78$var$$parcel$__dirname = $kzVu7$path.resolve(__dirname, "../node_modules/@actions/tool-cache/lib"); +parcelRequire.register("2RdqV", function(module, exports) { "use strict"; -var $e2d7a47000ccff78$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) { +var $214af3997ccafa11$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, @@ -3822,7 +2947,7 @@ var $e2d7a47000ccff78$var$__createBinding = module.exports && module.exports.__c if (k2 === undefined) k2 = k; o[k2] = m[k]; }); -var $e2d7a47000ccff78$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) { +var $214af3997ccafa11$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v @@ -3830,16 +2955,16 @@ var $e2d7a47000ccff78$var$__setModuleDefault = module.exports && module.exports. } : function(o, v) { o["default"] = v; }); -var $e2d7a47000ccff78$var$__importStar = module.exports && module.exports.__importStar || function(mod) { +var $214af3997ccafa11$var$__importStar = module.exports && module.exports.__importStar || function(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) { - for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $e2d7a47000ccff78$var$__createBinding(result, mod, k); + for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $214af3997ccafa11$var$__createBinding(result, mod, k); } - $e2d7a47000ccff78$var$__setModuleDefault(result, mod); + $214af3997ccafa11$var$__setModuleDefault(result, mod); return result; }; -var $e2d7a47000ccff78$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { +var $214af3997ccafa11$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve) { resolve(value); @@ -3866,985 +2991,1239 @@ var $e2d7a47000ccff78$var$__awaiter = module.exports && module.exports.__awaiter step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -var $e2d7a47000ccff78$var$__importDefault = module.exports && module.exports.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { - "default": mod - }; -}; Object.defineProperty(module.exports, "__esModule", { value: true }); -module.exports.evaluateVersions = module.exports.isExplicitVersion = module.exports.findFromManifest = module.exports.getManifestFromRepo = module.exports.findAllVersions = module.exports.find = module.exports.cacheFile = module.exports.cacheDir = module.exports.extractZip = module.exports.extractXar = module.exports.extractTar = module.exports.extract7z = module.exports.downloadTool = module.exports.HTTPError = void 0; - -const $e2d7a47000ccff78$var$core = $e2d7a47000ccff78$var$__importStar((parcelRequire("9Gi2U"))); - -const $e2d7a47000ccff78$var$io = $e2d7a47000ccff78$var$__importStar((parcelRequire("f2hs4"))); - -const $e2d7a47000ccff78$var$fs = $e2d7a47000ccff78$var$__importStar($kzVu7$fs); - -const $e2d7a47000ccff78$var$mm = $e2d7a47000ccff78$var$__importStar((parcelRequire("2RdqV"))); - -const $e2d7a47000ccff78$var$os = $e2d7a47000ccff78$var$__importStar($kzVu7$os); - -const $e2d7a47000ccff78$var$path = $e2d7a47000ccff78$var$__importStar($kzVu7$path); - -const $e2d7a47000ccff78$var$httpm = $e2d7a47000ccff78$var$__importStar((parcelRequire("8tmdd"))); - -const $e2d7a47000ccff78$var$semver = $e2d7a47000ccff78$var$__importStar((parcelRequire("8RVvw"))); - -const $e2d7a47000ccff78$var$stream = $e2d7a47000ccff78$var$__importStar($kzVu7$stream); +module.exports._readLinuxVersionFile = module.exports._getOsVersion = module.exports._findMatch = void 0; -const $e2d7a47000ccff78$var$util = $e2d7a47000ccff78$var$__importStar($kzVu7$util); +const $214af3997ccafa11$var$semver = $214af3997ccafa11$var$__importStar((parcelRequire("8RVvw"))); +var $9Gi2U = parcelRequire("9Gi2U"); -const $e2d7a47000ccff78$var$v4_1 = $e2d7a47000ccff78$var$__importDefault((parcelRequire("g6B2s"))); -var $cIFTL = parcelRequire("cIFTL"); -var $bCHEZ = parcelRequire("bCHEZ"); -class $e2d7a47000ccff78$var$HTTPError extends Error { - constructor(httpStatusCode){ - super(`Unexpected HTTP response: ${httpStatusCode}`); - this.httpStatusCode = httpStatusCode; - Object.setPrototypeOf(this, new.target.prototype); - } -} -module.exports.HTTPError = $e2d7a47000ccff78$var$HTTPError; -const $e2d7a47000ccff78$var$IS_WINDOWS = process.platform === "win32"; -const $e2d7a47000ccff78$var$IS_MAC = process.platform === "darwin"; -const $e2d7a47000ccff78$var$userAgent = "actions/tool-cache"; -/** - * Download a tool from an url and stream it into a file - * - * @param url url of tool to download - * @param dest path to download tool - * @param auth authorization header - * @param headers other headers - * @returns path to downloaded tool - */ function $e2d7a47000ccff78$var$downloadTool(url, dest, auth, headers) { - return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { - dest = dest || $e2d7a47000ccff78$var$path.join($e2d7a47000ccff78$var$_getTempDirectory(), $e2d7a47000ccff78$var$v4_1.default()); - yield $e2d7a47000ccff78$var$io.mkdirP($e2d7a47000ccff78$var$path.dirname(dest)); - $e2d7a47000ccff78$var$core.debug(`Downloading ${url}`); - $e2d7a47000ccff78$var$core.debug(`Destination ${dest}`); - const maxAttempts = 3; - const minSeconds = $e2d7a47000ccff78$var$_getGlobal("TEST_DOWNLOAD_TOOL_RETRY_MIN_SECONDS", 10); - const maxSeconds = $e2d7a47000ccff78$var$_getGlobal("TEST_DOWNLOAD_TOOL_RETRY_MAX_SECONDS", 20); - const retryHelper = new $bCHEZ.RetryHelper(maxAttempts, minSeconds, maxSeconds); - return yield retryHelper.execute(()=>$e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { - return yield $e2d7a47000ccff78$var$downloadToolAttempt(url, dest || "", auth, headers); - }), (err)=>{ - if (err instanceof $e2d7a47000ccff78$var$HTTPError && err.httpStatusCode) { - // Don't retry anything less than 500, except 408 Request Timeout and 429 Too Many Requests - if (err.httpStatusCode < 500 && err.httpStatusCode !== 408 && err.httpStatusCode !== 429) return false; - } - // Otherwise retry - return true; - }); - }); -} -module.exports.downloadTool = $e2d7a47000ccff78$var$downloadTool; -function $e2d7a47000ccff78$var$downloadToolAttempt(url, dest, auth, headers) { - return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { - if ($e2d7a47000ccff78$var$fs.existsSync(dest)) throw new Error(`Destination file path ${dest} already exists`); - // Get the response headers - const http = new $e2d7a47000ccff78$var$httpm.HttpClient($e2d7a47000ccff78$var$userAgent, [], { - allowRetries: false - }); - if (auth) { - $e2d7a47000ccff78$var$core.debug("set auth"); - if (headers === undefined) headers = {}; - headers.authorization = auth; - } - const response = yield http.get(url, headers); - if (response.message.statusCode !== 200) { - const err = new $e2d7a47000ccff78$var$HTTPError(response.message.statusCode); - $e2d7a47000ccff78$var$core.debug(`Failed to download from "${url}". Code(${response.message.statusCode}) Message(${response.message.statusMessage})`); - throw err; - } - // Download the response body - const pipeline = $e2d7a47000ccff78$var$util.promisify($e2d7a47000ccff78$var$stream.pipeline); - const responseMessageFactory = $e2d7a47000ccff78$var$_getGlobal("TEST_DOWNLOAD_TOOL_RESPONSE_MESSAGE_FACTORY", ()=>response.message); - const readStream = responseMessageFactory(); - let succeeded = false; - try { - yield pipeline(readStream, $e2d7a47000ccff78$var$fs.createWriteStream(dest)); - $e2d7a47000ccff78$var$core.debug("download complete"); - succeeded = true; - return dest; - } finally{ - // Error, delete dest before retry - if (!succeeded) { - $e2d7a47000ccff78$var$core.debug("download failed"); - try { - yield $e2d7a47000ccff78$var$io.rmRF(dest); - } catch (err) { - $e2d7a47000ccff78$var$core.debug(`Failed to delete '${dest}'. ${err.message}`); - } - } - } - }); -} -/** - * Extract a .7z file - * - * @param file path to the .7z file - * @param dest destination directory. Optional. - * @param _7zPath path to 7zr.exe. Optional, for long path support. Most .7z archives do not have this - * problem. If your .7z archive contains very long paths, you can pass the path to 7zr.exe which will - * gracefully handle long paths. By default 7zdec.exe is used because it is a very small program and is - * bundled with the tool lib. However it does not support long paths. 7zr.exe is the reduced command line - * interface, it is smaller than the full command line interface, and it does support long paths. At the - * time of this writing, it is freely available from the LZMA SDK that is available on the 7zip website. - * Be sure to check the current license agreement. If 7zr.exe is bundled with your action, then the path - * to 7zr.exe can be pass to this function. - * @returns path to the destination directory - */ function $e2d7a47000ccff78$var$extract7z(file, dest, _7zPath) { - return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { - $kzVu7$assert.ok($e2d7a47000ccff78$var$IS_WINDOWS, "extract7z() not supported on current OS"); - $kzVu7$assert.ok(file, 'parameter "file" is required'); - dest = yield $e2d7a47000ccff78$var$_createExtractFolder(dest); - const originalCwd = process.cwd(); - process.chdir(dest); - if (_7zPath) try { - const logLevel = $e2d7a47000ccff78$var$core.isDebug() ? "-bb1" : "-bb0"; - const args = [ - "x", - logLevel, - "-bd", - "-sccUTF-8", - file - ]; - const options = { - silent: true - }; - yield $cIFTL.exec(`"${_7zPath}"`, args, options); - } finally{ - process.chdir(originalCwd); - } - else { - const escapedScript = $e2d7a47000ccff78$var$path.join($e2d7a47000ccff78$var$$parcel$__dirname, "..", "scripts", "Invoke-7zdec.ps1").replace(/'/g, "''").replace(/"|\n|\r/g, ""); // double-up single quotes, remove double quotes and newlines - const escapedFile = file.replace(/'/g, "''").replace(/"|\n|\r/g, ""); - const escapedTarget = dest.replace(/'/g, "''").replace(/"|\n|\r/g, ""); - const command = `& '${escapedScript}' -Source '${escapedFile}' -Target '${escapedTarget}'`; - const args = [ - "-NoLogo", - "-Sta", - "-NoProfile", - "-NonInteractive", - "-ExecutionPolicy", - "Unrestricted", - "-Command", - command - ]; - const options = { - silent: true - }; - try { - const powershellPath = yield $e2d7a47000ccff78$var$io.which("powershell", true); - yield $cIFTL.exec(`"${powershellPath}"`, args, options); - } finally{ - process.chdir(originalCwd); +function $214af3997ccafa11$var$_findMatch(versionSpec, stable, candidates, archFilter) { + return $214af3997ccafa11$var$__awaiter(this, void 0, void 0, function*() { + const platFilter = $bknAJ$os.platform(); + let result; + let match; + let file; + for (const candidate of candidates){ + const version = candidate.version; + $9Gi2U.debug(`check ${version} satisfies ${versionSpec}`); + if ($214af3997ccafa11$var$semver.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) { + file = candidate.files.find((item)=>{ + $9Gi2U.debug(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`); + let chk = item.arch === archFilter && item.platform === platFilter; + if (chk && item.platform_version) { + const osVersion = module.exports._getOsVersion(); + if (osVersion === item.platform_version) chk = true; + else chk = $214af3997ccafa11$var$semver.satisfies(osVersion, item.platform_version); + } + return chk; + }); + if (file) { + $9Gi2U.debug(`matched ${candidate.version}`); + match = candidate; + break; + } } } - return dest; + if (match && file) { + // clone since we're mutating the file list to be only the file that matches + result = Object.assign({}, match); + result.files = [ + file + ]; + } + return result; }); } -module.exports.extract7z = $e2d7a47000ccff78$var$extract7z; -/** - * Extract a compressed tar archive - * - * @param file path to the tar - * @param dest destination directory. Optional. - * @param flags flags for the tar command to use for extraction. Defaults to 'xz' (extracting gzipped tars). Optional. - * @returns path to the destination directory - */ function $e2d7a47000ccff78$var$extractTar(file, dest, flags = "xz") { - return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { - if (!file) throw new Error("parameter 'file' is required"); - // Create dest - dest = yield $e2d7a47000ccff78$var$_createExtractFolder(dest); - // Determine whether GNU tar - $e2d7a47000ccff78$var$core.debug("Checking tar --version"); - let versionOutput = ""; - yield $cIFTL.exec("tar --version", [], { - ignoreReturnCode: true, - silent: true, - listeners: { - stdout: (data)=>versionOutput += data.toString(), - stderr: (data)=>versionOutput += data.toString() +module.exports._findMatch = $214af3997ccafa11$var$_findMatch; +function $214af3997ccafa11$var$_getOsVersion() { + // TODO: add windows and other linux, arm variants + // right now filtering on version is only an ubuntu and macos scenario for tools we build for hosted (python) + const plat = $bknAJ$os.platform(); + let version = ""; + if (plat === "darwin") version = $bknAJ$child_process.execSync("sw_vers -productVersion").toString(); + else if (plat === "linux") { + // lsb_release process not in some containers, readfile + // Run cat /etc/lsb-release + // DISTRIB_ID=Ubuntu + // DISTRIB_RELEASE=18.04 + // DISTRIB_CODENAME=bionic + // DISTRIB_DESCRIPTION="Ubuntu 18.04.4 LTS" + const lsbContents = module.exports._readLinuxVersionFile(); + if (lsbContents) { + const lines = lsbContents.split("\n"); + for (const line of lines){ + const parts = line.split("="); + if (parts.length === 2 && (parts[0].trim() === "VERSION_ID" || parts[0].trim() === "DISTRIB_RELEASE")) { + version = parts[1].trim().replace(/^"/, "").replace(/"$/, ""); + break; + } } - }); - $e2d7a47000ccff78$var$core.debug(versionOutput.trim()); - const isGnuTar = versionOutput.toUpperCase().includes("GNU TAR"); - // Initialize args - let args; - if (flags instanceof Array) args = flags; - else args = [ - flags - ]; - if ($e2d7a47000ccff78$var$core.isDebug() && !flags.includes("v")) args.push("-v"); - let destArg = dest; - let fileArg = file; - if ($e2d7a47000ccff78$var$IS_WINDOWS && isGnuTar) { - args.push("--force-local"); - destArg = dest.replace(/\\/g, "/"); - // Technically only the dest needs to have `/` but for aesthetic consistency - // convert slashes in the file arg too. - fileArg = file.replace(/\\/g, "/"); - } - if (isGnuTar) { - // Suppress warnings when using GNU tar to extract archives created by BSD tar - args.push("--warning=no-unknown-keyword"); - args.push("--overwrite"); } - args.push("-C", destArg, "-f", fileArg); - yield $cIFTL.exec(`tar`, args); - return dest; - }); + } + return version; +} +module.exports._getOsVersion = $214af3997ccafa11$var$_getOsVersion; +function $214af3997ccafa11$var$_readLinuxVersionFile() { + const lsbReleaseFile = "/etc/lsb-release"; + const osReleaseFile = "/etc/os-release"; + let contents = ""; + if ($bknAJ$fs.existsSync(lsbReleaseFile)) contents = $bknAJ$fs.readFileSync(lsbReleaseFile).toString(); + else if ($bknAJ$fs.existsSync(osReleaseFile)) contents = $bknAJ$fs.readFileSync(osReleaseFile).toString(); + return contents; +} +module.exports._readLinuxVersionFile = $214af3997ccafa11$var$_readLinuxVersionFile; + +}); +parcelRequire.register("8RVvw", function(module, exports) { +exports = module.exports = SemVer; +var debug; +/* istanbul ignore next */ if (typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG)) debug = function() { + var args = Array.prototype.slice.call(arguments, 0); + args.unshift("SEMVER"); + console.log.apply(console, args); +}; +else debug = function() {}; +// Note: this is the semver.org version of the spec that it implements +// Not necessarily the package version of this code. +exports.SEMVER_SPEC_VERSION = "2.0.0"; +var MAX_LENGTH = 256; +var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ 9007199254740991; +// Max safe segment length for coercion. +var MAX_SAFE_COMPONENT_LENGTH = 16; +// The actual regexps go on exports.re +var re = exports.re = []; +var src = exports.src = []; +var t = exports.tokens = {}; +var R = 0; +function tok(n) { + t[n] = R++; +} +// The following Regular Expressions can be used for tokenizing, +// validating, and parsing SemVer version strings. +// ## Numeric Identifier +// A single `0`, or a non-zero digit followed by zero or more digits. +tok("NUMERICIDENTIFIER"); +src[t.NUMERICIDENTIFIER] = "0|[1-9]\\d*"; +tok("NUMERICIDENTIFIERLOOSE"); +src[t.NUMERICIDENTIFIERLOOSE] = "[0-9]+"; +// ## Non-numeric Identifier +// Zero or more digits, followed by a letter or hyphen, and then zero or +// more letters, digits, or hyphens. +tok("NONNUMERICIDENTIFIER"); +src[t.NONNUMERICIDENTIFIER] = "\\d*[a-zA-Z-][a-zA-Z0-9-]*"; +// ## Main Version +// Three dot-separated numeric identifiers. +tok("MAINVERSION"); +src[t.MAINVERSION] = "(" + src[t.NUMERICIDENTIFIER] + ")\\." + "(" + src[t.NUMERICIDENTIFIER] + ")\\." + "(" + src[t.NUMERICIDENTIFIER] + ")"; +tok("MAINVERSIONLOOSE"); +src[t.MAINVERSIONLOOSE] = "(" + src[t.NUMERICIDENTIFIERLOOSE] + ")\\." + "(" + src[t.NUMERICIDENTIFIERLOOSE] + ")\\." + "(" + src[t.NUMERICIDENTIFIERLOOSE] + ")"; +// ## Pre-release Version Identifier +// A numeric identifier, or a non-numeric identifier. +tok("PRERELEASEIDENTIFIER"); +src[t.PRERELEASEIDENTIFIER] = "(?:" + src[t.NUMERICIDENTIFIER] + "|" + src[t.NONNUMERICIDENTIFIER] + ")"; +tok("PRERELEASEIDENTIFIERLOOSE"); +src[t.PRERELEASEIDENTIFIERLOOSE] = "(?:" + src[t.NUMERICIDENTIFIERLOOSE] + "|" + src[t.NONNUMERICIDENTIFIER] + ")"; +// ## Pre-release Version +// Hyphen, followed by one or more dot-separated pre-release version +// identifiers. +tok("PRERELEASE"); +src[t.PRERELEASE] = "(?:-(" + src[t.PRERELEASEIDENTIFIER] + "(?:\\." + src[t.PRERELEASEIDENTIFIER] + ")*))"; +tok("PRERELEASELOOSE"); +src[t.PRERELEASELOOSE] = "(?:-?(" + src[t.PRERELEASEIDENTIFIERLOOSE] + "(?:\\." + src[t.PRERELEASEIDENTIFIERLOOSE] + ")*))"; +// ## Build Metadata Identifier +// Any combination of digits, letters, or hyphens. +tok("BUILDIDENTIFIER"); +src[t.BUILDIDENTIFIER] = "[0-9A-Za-z-]+"; +// ## Build Metadata +// Plus sign, followed by one or more period-separated build metadata +// identifiers. +tok("BUILD"); +src[t.BUILD] = "(?:\\+(" + src[t.BUILDIDENTIFIER] + "(?:\\." + src[t.BUILDIDENTIFIER] + ")*))"; +// ## Full Version String +// A main version, followed optionally by a pre-release version and +// build metadata. +// Note that the only major, minor, patch, and pre-release sections of +// the version string are capturing groups. The build metadata is not a +// capturing group, because it should not ever be used in version +// comparison. +tok("FULL"); +tok("FULLPLAIN"); +src[t.FULLPLAIN] = "v?" + src[t.MAINVERSION] + src[t.PRERELEASE] + "?" + src[t.BUILD] + "?"; +src[t.FULL] = "^" + src[t.FULLPLAIN] + "$"; +// like full, but allows v1.2.3 and =1.2.3, which people do sometimes. +// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty +// common in the npm registry. +tok("LOOSEPLAIN"); +src[t.LOOSEPLAIN] = "[v=\\s]*" + src[t.MAINVERSIONLOOSE] + src[t.PRERELEASELOOSE] + "?" + src[t.BUILD] + "?"; +tok("LOOSE"); +src[t.LOOSE] = "^" + src[t.LOOSEPLAIN] + "$"; +tok("GTLT"); +src[t.GTLT] = "((?:<|>)?=?)"; +// Something like "2.*" or "1.2.x". +// Note that "x.x" is a valid xRange identifer, meaning "any version" +// Only the first item is strictly required. +tok("XRANGEIDENTIFIERLOOSE"); +src[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + "|x|X|\\*"; +tok("XRANGEIDENTIFIER"); +src[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + "|x|X|\\*"; +tok("XRANGEPLAIN"); +src[t.XRANGEPLAIN] = "[v=\\s]*(" + src[t.XRANGEIDENTIFIER] + ")" + "(?:\\.(" + src[t.XRANGEIDENTIFIER] + ")" + "(?:\\.(" + src[t.XRANGEIDENTIFIER] + ")" + "(?:" + src[t.PRERELEASE] + ")?" + src[t.BUILD] + "?" + ")?)?"; +tok("XRANGEPLAINLOOSE"); +src[t.XRANGEPLAINLOOSE] = "[v=\\s]*(" + src[t.XRANGEIDENTIFIERLOOSE] + ")" + "(?:\\.(" + src[t.XRANGEIDENTIFIERLOOSE] + ")" + "(?:\\.(" + src[t.XRANGEIDENTIFIERLOOSE] + ")" + "(?:" + src[t.PRERELEASELOOSE] + ")?" + src[t.BUILD] + "?" + ")?)?"; +tok("XRANGE"); +src[t.XRANGE] = "^" + src[t.GTLT] + "\\s*" + src[t.XRANGEPLAIN] + "$"; +tok("XRANGELOOSE"); +src[t.XRANGELOOSE] = "^" + src[t.GTLT] + "\\s*" + src[t.XRANGEPLAINLOOSE] + "$"; +// Coercion. +// Extract anything that could conceivably be a part of a valid semver +tok("COERCE"); +src[t.COERCE] = "(^|[^\\d])(\\d{1," + MAX_SAFE_COMPONENT_LENGTH + "})" + "(?:\\.(\\d{1," + MAX_SAFE_COMPONENT_LENGTH + "}))?" + "(?:\\.(\\d{1," + MAX_SAFE_COMPONENT_LENGTH + "}))?" + "(?:$|[^\\d])"; +tok("COERCERTL"); +re[t.COERCERTL] = new RegExp(src[t.COERCE], "g"); +// Tilde ranges. +// Meaning is "reasonably at or greater than" +tok("LONETILDE"); +src[t.LONETILDE] = "(?:~>?)"; +tok("TILDETRIM"); +src[t.TILDETRIM] = "(\\s*)" + src[t.LONETILDE] + "\\s+"; +re[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], "g"); +var tildeTrimReplace = "$1~"; +tok("TILDE"); +src[t.TILDE] = "^" + src[t.LONETILDE] + src[t.XRANGEPLAIN] + "$"; +tok("TILDELOOSE"); +src[t.TILDELOOSE] = "^" + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + "$"; +// Caret ranges. +// Meaning is "at least and backwards compatible with" +tok("LONECARET"); +src[t.LONECARET] = "(?:\\^)"; +tok("CARETTRIM"); +src[t.CARETTRIM] = "(\\s*)" + src[t.LONECARET] + "\\s+"; +re[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], "g"); +var caretTrimReplace = "$1^"; +tok("CARET"); +src[t.CARET] = "^" + src[t.LONECARET] + src[t.XRANGEPLAIN] + "$"; +tok("CARETLOOSE"); +src[t.CARETLOOSE] = "^" + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + "$"; +// A simple gt/lt/eq thing, or just "" to indicate "any version" +tok("COMPARATORLOOSE"); +src[t.COMPARATORLOOSE] = "^" + src[t.GTLT] + "\\s*(" + src[t.LOOSEPLAIN] + ")$|^$"; +tok("COMPARATOR"); +src[t.COMPARATOR] = "^" + src[t.GTLT] + "\\s*(" + src[t.FULLPLAIN] + ")$|^$"; +// An expression to strip any whitespace between the gtlt and the thing +// it modifies, so that `> 1.2.3` ==> `>1.2.3` +tok("COMPARATORTRIM"); +src[t.COMPARATORTRIM] = "(\\s*)" + src[t.GTLT] + "\\s*(" + src[t.LOOSEPLAIN] + "|" + src[t.XRANGEPLAIN] + ")"; +// this one has to use the /g flag +re[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], "g"); +var comparatorTrimReplace = "$1$2$3"; +// Something like `1.2.3 - 1.2.4` +// Note that these all use the loose form, because they'll be +// checked against either the strict or loose comparator form +// later. +tok("HYPHENRANGE"); +src[t.HYPHENRANGE] = "^\\s*(" + src[t.XRANGEPLAIN] + ")" + "\\s+-\\s+" + "(" + src[t.XRANGEPLAIN] + ")" + "\\s*$"; +tok("HYPHENRANGELOOSE"); +src[t.HYPHENRANGELOOSE] = "^\\s*(" + src[t.XRANGEPLAINLOOSE] + ")" + "\\s+-\\s+" + "(" + src[t.XRANGEPLAINLOOSE] + ")" + "\\s*$"; +// Star ranges basically just allow anything at all. +tok("STAR"); +src[t.STAR] = "(<|>)?=?\\s*\\*"; +// Compile to actual regexp objects. +// All are flag-free, unless they were created above with a flag. +for(var i = 0; i < R; i++){ + debug(i, src[i]); + if (!re[i]) re[i] = new RegExp(src[i]); } -module.exports.extractTar = $e2d7a47000ccff78$var$extractTar; -/** - * Extract a xar compatible archive - * - * @param file path to the archive - * @param dest destination directory. Optional. - * @param flags flags for the xar. Optional. - * @returns path to the destination directory - */ function $e2d7a47000ccff78$var$extractXar(file, dest, flags = []) { - return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { - $kzVu7$assert.ok($e2d7a47000ccff78$var$IS_MAC, "extractXar() not supported on current OS"); - $kzVu7$assert.ok(file, 'parameter "file" is required'); - dest = yield $e2d7a47000ccff78$var$_createExtractFolder(dest); - let args; - if (flags instanceof Array) args = flags; - else args = [ - flags - ]; - args.push("-x", "-C", dest, "-f", file); - if ($e2d7a47000ccff78$var$core.isDebug()) args.push("-v"); - const xarPath = yield $e2d7a47000ccff78$var$io.which("xar", true); - yield $cIFTL.exec(`"${xarPath}"`, $e2d7a47000ccff78$var$_unique(args)); - return dest; - }); +exports.parse = parse; +function parse(version, options) { + if (!options || typeof options !== "object") options = { + loose: !!options, + includePrerelease: false + }; + if (version instanceof SemVer) return version; + if (typeof version !== "string") return null; + if (version.length > MAX_LENGTH) return null; + var r = options.loose ? re[t.LOOSE] : re[t.FULL]; + if (!r.test(version)) return null; + try { + return new SemVer(version, options); + } catch (er) { + return null; + } } -module.exports.extractXar = $e2d7a47000ccff78$var$extractXar; -/** - * Extract a zip - * - * @param file path to the zip - * @param dest destination directory. Optional. - * @returns path to the destination directory - */ function $e2d7a47000ccff78$var$extractZip(file, dest) { - return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { - if (!file) throw new Error("parameter 'file' is required"); - dest = yield $e2d7a47000ccff78$var$_createExtractFolder(dest); - if ($e2d7a47000ccff78$var$IS_WINDOWS) yield $e2d7a47000ccff78$var$extractZipWin(file, dest); - else yield $e2d7a47000ccff78$var$extractZipNix(file, dest); - return dest; +exports.valid = valid; +function valid(version, options) { + var v = parse(version, options); + return v ? v.version : null; +} +exports.clean = clean; +function clean(version, options) { + var s = parse(version.trim().replace(/^[=v]+/, ""), options); + return s ? s.version : null; +} +exports.SemVer = SemVer; +function SemVer(version, options) { + if (!options || typeof options !== "object") options = { + loose: !!options, + includePrerelease: false + }; + if (version instanceof SemVer) { + if (version.loose === options.loose) return version; + else version = version.version; + } else if (typeof version !== "string") throw new TypeError("Invalid Version: " + version); + if (version.length > MAX_LENGTH) throw new TypeError("version is longer than " + MAX_LENGTH + " characters"); + if (!(this instanceof SemVer)) return new SemVer(version, options); + debug("SemVer", version, options); + this.options = options; + this.loose = !!options.loose; + var m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]); + if (!m) throw new TypeError("Invalid Version: " + version); + this.raw = version; + // these are actually numbers + this.major = +m[1]; + this.minor = +m[2]; + this.patch = +m[3]; + if (this.major > MAX_SAFE_INTEGER || this.major < 0) throw new TypeError("Invalid major version"); + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) throw new TypeError("Invalid minor version"); + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) throw new TypeError("Invalid patch version"); + // numberify any prerelease numeric ids + if (!m[4]) this.prerelease = []; + else this.prerelease = m[4].split(".").map(function(id) { + if (/^[0-9]+$/.test(id)) { + var num = +id; + if (num >= 0 && num < MAX_SAFE_INTEGER) return num; + } + return id; }); + this.build = m[5] ? m[5].split(".") : []; + this.format(); } -module.exports.extractZip = $e2d7a47000ccff78$var$extractZip; -function $e2d7a47000ccff78$var$extractZipWin(file, dest) { - return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { - // build the powershell command - const escapedFile = file.replace(/'/g, "''").replace(/"|\n|\r/g, ""); // double-up single quotes, remove double quotes and newlines - const escapedDest = dest.replace(/'/g, "''").replace(/"|\n|\r/g, ""); - const pwshPath = yield $e2d7a47000ccff78$var$io.which("pwsh", false); - //To match the file overwrite behavior on nix systems, we use the overwrite = true flag for ExtractToDirectory - //and the -Force flag for Expand-Archive as a fallback - if (pwshPath) { - //attempt to use pwsh with ExtractToDirectory, if this fails attempt Expand-Archive - const pwshCommand = [ - `$ErrorActionPreference = 'Stop' ;`, - `try { Add-Type -AssemblyName System.IO.Compression.ZipFile } catch { } ;`, - `try { [System.IO.Compression.ZipFile]::ExtractToDirectory('${escapedFile}', '${escapedDest}', $true) }`, - `catch { if (($_.Exception.GetType().FullName -eq 'System.Management.Automation.MethodException') -or ($_.Exception.GetType().FullName -eq 'System.Management.Automation.RuntimeException') ){ Expand-Archive -LiteralPath '${escapedFile}' -DestinationPath '${escapedDest}' -Force } else { throw $_ } } ;` - ].join(" "); - const args = [ - "-NoLogo", - "-NoProfile", - "-NonInteractive", - "-ExecutionPolicy", - "Unrestricted", - "-Command", - pwshCommand - ]; - $e2d7a47000ccff78$var$core.debug(`Using pwsh at path: ${pwshPath}`); - yield $cIFTL.exec(`"${pwshPath}"`, args); - } else { - const powershellCommand = [ - `$ErrorActionPreference = 'Stop' ;`, - `try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ;`, - `if ((Get-Command -Name Expand-Archive -Module Microsoft.PowerShell.Archive -ErrorAction Ignore)) { Expand-Archive -LiteralPath '${escapedFile}' -DestinationPath '${escapedDest}' -Force }`, - `else {[System.IO.Compression.ZipFile]::ExtractToDirectory('${escapedFile}', '${escapedDest}', $true) }` - ].join(" "); - const args = [ - "-NoLogo", - "-Sta", - "-NoProfile", - "-NonInteractive", - "-ExecutionPolicy", - "Unrestricted", - "-Command", - powershellCommand +SemVer.prototype.format = function() { + this.version = this.major + "." + this.minor + "." + this.patch; + if (this.prerelease.length) this.version += "-" + this.prerelease.join("."); + return this.version; +}; +SemVer.prototype.toString = function() { + return this.version; +}; +SemVer.prototype.compare = function(other) { + debug("SemVer.compare", this.version, this.options, other); + if (!(other instanceof SemVer)) other = new SemVer(other, this.options); + return this.compareMain(other) || this.comparePre(other); +}; +SemVer.prototype.compareMain = function(other) { + if (!(other instanceof SemVer)) other = new SemVer(other, this.options); + return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch); +}; +SemVer.prototype.comparePre = function(other) { + if (!(other instanceof SemVer)) other = new SemVer(other, this.options); + // NOT having a prerelease is > having one + if (this.prerelease.length && !other.prerelease.length) return -1; + else if (!this.prerelease.length && other.prerelease.length) return 1; + else if (!this.prerelease.length && !other.prerelease.length) return 0; + var i = 0; + do { + var a = this.prerelease[i]; + var b = other.prerelease[i]; + debug("prerelease compare", i, a, b); + if (a === undefined && b === undefined) return 0; + else if (b === undefined) return 1; + else if (a === undefined) return -1; + else if (a === b) continue; + else return compareIdentifiers(a, b); + }while (++i); +}; +SemVer.prototype.compareBuild = function(other) { + if (!(other instanceof SemVer)) other = new SemVer(other, this.options); + var i = 0; + do { + var a = this.build[i]; + var b = other.build[i]; + debug("prerelease compare", i, a, b); + if (a === undefined && b === undefined) return 0; + else if (b === undefined) return 1; + else if (a === undefined) return -1; + else if (a === b) continue; + else return compareIdentifiers(a, b); + }while (++i); +}; +// preminor will bump the version up to the next minor release, and immediately +// down to pre-release. premajor and prepatch work the same way. +SemVer.prototype.inc = function(release, identifier) { + switch(release){ + case "premajor": + this.prerelease.length = 0; + this.patch = 0; + this.minor = 0; + this.major++; + this.inc("pre", identifier); + break; + case "preminor": + this.prerelease.length = 0; + this.patch = 0; + this.minor++; + this.inc("pre", identifier); + break; + case "prepatch": + // If this is already a prerelease, it will bump to the next version + // drop any prereleases that might already exist, since they are not + // relevant at this point. + this.prerelease.length = 0; + this.inc("patch", identifier); + this.inc("pre", identifier); + break; + // If the input is a non-prerelease version, this acts the same as + // prepatch. + case "prerelease": + if (this.prerelease.length === 0) this.inc("patch", identifier); + this.inc("pre", identifier); + break; + case "major": + // If this is a pre-major version, bump up to the same major version. + // Otherwise increment major. + // 1.0.0-5 bumps to 1.0.0 + // 1.1.0 bumps to 2.0.0 + if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) this.major++; + this.minor = 0; + this.patch = 0; + this.prerelease = []; + break; + case "minor": + // If this is a pre-minor version, bump up to the same minor version. + // Otherwise increment minor. + // 1.2.0-5 bumps to 1.2.0 + // 1.2.1 bumps to 1.3.0 + if (this.patch !== 0 || this.prerelease.length === 0) this.minor++; + this.patch = 0; + this.prerelease = []; + break; + case "patch": + // If this is not a pre-release version, it will increment the patch. + // If it is a pre-release it will bump up to the same patch version. + // 1.2.0-5 patches to 1.2.0 + // 1.2.0 patches to 1.2.1 + if (this.prerelease.length === 0) this.patch++; + this.prerelease = []; + break; + // This probably shouldn't be used publicly. + // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction. + case "pre": + if (this.prerelease.length === 0) this.prerelease = [ + 0 ]; - const powershellPath = yield $e2d7a47000ccff78$var$io.which("powershell", true); - $e2d7a47000ccff78$var$core.debug(`Using powershell at path: ${powershellPath}`); - yield $cIFTL.exec(`"${powershellPath}"`, args); + else { + var i = this.prerelease.length; + while(--i >= 0)if (typeof this.prerelease[i] === "number") { + this.prerelease[i]++; + i = -2; + } + if (i === -1) // didn't increment anything + this.prerelease.push(0); + } + if (identifier) { + // 1.2.0-beta.1 bumps to 1.2.0-beta.2, + // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 + if (this.prerelease[0] === identifier) { + if (isNaN(this.prerelease[1])) this.prerelease = [ + identifier, + 0 + ]; + } else this.prerelease = [ + identifier, + 0 + ]; + } + break; + default: + throw new Error("invalid increment argument: " + release); + } + this.format(); + this.raw = this.version; + return this; +}; +exports.inc = inc; +function inc(version, release, loose, identifier) { + if (typeof loose === "string") { + identifier = loose; + loose = undefined; + } + try { + return new SemVer(version, loose).inc(release, identifier).version; + } catch (er) { + return null; + } +} +exports.diff = diff; +function diff(version1, version2) { + if (eq(version1, version2)) return null; + else { + var v1 = parse(version1); + var v2 = parse(version2); + var prefix = ""; + if (v1.prerelease.length || v2.prerelease.length) { + prefix = "pre"; + var defaultResult = "prerelease"; } - }); + for(var key in v1)if (key === "major" || key === "minor" || key === "patch") { + if (v1[key] !== v2[key]) return prefix + key; + } + return defaultResult // may be undefined + ; + } } -function $e2d7a47000ccff78$var$extractZipNix(file, dest) { - return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { - const unzipPath = yield $e2d7a47000ccff78$var$io.which("unzip", true); - const args = [ - file - ]; - if (!$e2d7a47000ccff78$var$core.isDebug()) args.unshift("-q"); - args.unshift("-o"); //overwrite with -o, otherwise a prompt is shown which freezes the run - yield $cIFTL.exec(`"${unzipPath}"`, args, { - cwd: dest - }); - }); +exports.compareIdentifiers = compareIdentifiers; +var numeric = /^[0-9]+$/; +function compareIdentifiers(a, b) { + var anum = numeric.test(a); + var bnum = numeric.test(b); + if (anum && bnum) { + a = +a; + b = +b; + } + return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1; } -/** - * Caches a directory and installs it into the tool cacheDir - * - * @param sourceDir the directory to cache into tools - * @param tool tool name - * @param version version of the tool. semver format - * @param arch architecture of the tool. Optional. Defaults to machine architecture - */ function $e2d7a47000ccff78$var$cacheDir(sourceDir, tool, version, arch) { - return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { - version = $e2d7a47000ccff78$var$semver.clean(version) || version; - arch = arch || $e2d7a47000ccff78$var$os.arch(); - $e2d7a47000ccff78$var$core.debug(`Caching tool ${tool} ${version} ${arch}`); - $e2d7a47000ccff78$var$core.debug(`source dir: ${sourceDir}`); - if (!$e2d7a47000ccff78$var$fs.statSync(sourceDir).isDirectory()) throw new Error("sourceDir is not a directory"); - // Create the tool dir - const destPath = yield $e2d7a47000ccff78$var$_createToolPath(tool, version, arch); - // copy each child item. do not move. move can fail on Windows - // due to anti-virus software having an open handle on a file. - for (const itemName of $e2d7a47000ccff78$var$fs.readdirSync(sourceDir)){ - const s = $e2d7a47000ccff78$var$path.join(sourceDir, itemName); - yield $e2d7a47000ccff78$var$io.cp(s, destPath, { - recursive: true - }); - } - // write .complete - $e2d7a47000ccff78$var$_completeToolPath(tool, version, arch); - return destPath; - }); +exports.rcompareIdentifiers = rcompareIdentifiers; +function rcompareIdentifiers(a, b) { + return compareIdentifiers(b, a); } -module.exports.cacheDir = $e2d7a47000ccff78$var$cacheDir; -/** - * Caches a downloaded file (GUID) and installs it - * into the tool cache with a given targetName - * - * @param sourceFile the file to cache into tools. Typically a result of downloadTool which is a guid. - * @param targetFile the name of the file name in the tools directory - * @param tool tool name - * @param version version of the tool. semver format - * @param arch architecture of the tool. Optional. Defaults to machine architecture - */ function $e2d7a47000ccff78$var$cacheFile(sourceFile, targetFile, tool, version, arch) { - return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { - version = $e2d7a47000ccff78$var$semver.clean(version) || version; - arch = arch || $e2d7a47000ccff78$var$os.arch(); - $e2d7a47000ccff78$var$core.debug(`Caching tool ${tool} ${version} ${arch}`); - $e2d7a47000ccff78$var$core.debug(`source file: ${sourceFile}`); - if (!$e2d7a47000ccff78$var$fs.statSync(sourceFile).isFile()) throw new Error("sourceFile is not a file"); - // create the tool dir - const destFolder = yield $e2d7a47000ccff78$var$_createToolPath(tool, version, arch); - // copy instead of move. move can fail on Windows due to - // anti-virus software having an open handle on a file. - const destPath = $e2d7a47000ccff78$var$path.join(destFolder, targetFile); - $e2d7a47000ccff78$var$core.debug(`destination file ${destPath}`); - yield $e2d7a47000ccff78$var$io.cp(sourceFile, destPath); - // write .complete - $e2d7a47000ccff78$var$_completeToolPath(tool, version, arch); - return destFolder; - }); +exports.major = major; +function major(a, loose) { + return new SemVer(a, loose).major; } -module.exports.cacheFile = $e2d7a47000ccff78$var$cacheFile; -/** - * Finds the path to a tool version in the local installed tool cache - * - * @param toolName name of the tool - * @param versionSpec version of the tool - * @param arch optional arch. defaults to arch of computer - */ function $e2d7a47000ccff78$var$find(toolName, versionSpec, arch) { - if (!toolName) throw new Error("toolName parameter is required"); - if (!versionSpec) throw new Error("versionSpec parameter is required"); - arch = arch || $e2d7a47000ccff78$var$os.arch(); - // attempt to resolve an explicit version - if (!$e2d7a47000ccff78$var$isExplicitVersion(versionSpec)) { - const localVersions = $e2d7a47000ccff78$var$findAllVersions(toolName, arch); - const match = $e2d7a47000ccff78$var$evaluateVersions(localVersions, versionSpec); - versionSpec = match; - } - // check for the explicit version in the cache - let toolPath = ""; - if (versionSpec) { - versionSpec = $e2d7a47000ccff78$var$semver.clean(versionSpec) || ""; - const cachePath = $e2d7a47000ccff78$var$path.join($e2d7a47000ccff78$var$_getCacheDirectory(), toolName, versionSpec, arch); - $e2d7a47000ccff78$var$core.debug(`checking cache: ${cachePath}`); - if ($e2d7a47000ccff78$var$fs.existsSync(cachePath) && $e2d7a47000ccff78$var$fs.existsSync(`${cachePath}.complete`)) { - $e2d7a47000ccff78$var$core.debug(`Found tool in cache ${toolName} ${versionSpec} ${arch}`); - toolPath = cachePath; - } else $e2d7a47000ccff78$var$core.debug("not found"); - } - return toolPath; +exports.minor = minor; +function minor(a, loose) { + return new SemVer(a, loose).minor; } -module.exports.find = $e2d7a47000ccff78$var$find; -/** - * Finds the paths to all versions of a tool that are installed in the local tool cache - * - * @param toolName name of the tool - * @param arch optional arch. defaults to arch of computer - */ function $e2d7a47000ccff78$var$findAllVersions(toolName, arch) { - const versions = []; - arch = arch || $e2d7a47000ccff78$var$os.arch(); - const toolPath = $e2d7a47000ccff78$var$path.join($e2d7a47000ccff78$var$_getCacheDirectory(), toolName); - if ($e2d7a47000ccff78$var$fs.existsSync(toolPath)) { - const children = $e2d7a47000ccff78$var$fs.readdirSync(toolPath); - for (const child of children)if ($e2d7a47000ccff78$var$isExplicitVersion(child)) { - const fullPath = $e2d7a47000ccff78$var$path.join(toolPath, child, arch || ""); - if ($e2d7a47000ccff78$var$fs.existsSync(fullPath) && $e2d7a47000ccff78$var$fs.existsSync(`${fullPath}.complete`)) versions.push(child); - } - } - return versions; +exports.patch = patch; +function patch(a, loose) { + return new SemVer(a, loose).patch; } -module.exports.findAllVersions = $e2d7a47000ccff78$var$findAllVersions; -function $e2d7a47000ccff78$var$getManifestFromRepo(owner, repo, auth, branch = "master") { - return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { - let releases = []; - const treeUrl = `https://api.github.com/repos/${owner}/${repo}/git/trees/${branch}`; - const http = new $e2d7a47000ccff78$var$httpm.HttpClient("tool-cache"); - const headers = {}; - if (auth) { - $e2d7a47000ccff78$var$core.debug("set auth"); - headers.authorization = auth; - } - const response = yield http.getJson(treeUrl, headers); - if (!response.result) return releases; - let manifestUrl = ""; - for (const item of response.result.tree)if (item.path === "versions-manifest.json") { - manifestUrl = item.url; - break; - } - headers["accept"] = "application/vnd.github.VERSION.raw"; - let versionsRaw = yield (yield http.get(manifestUrl, headers)).readBody(); - if (versionsRaw) { - // shouldn't be needed but protects against invalid json saved with BOM - versionsRaw = versionsRaw.replace(/^\uFEFF/, ""); - try { - releases = JSON.parse(versionsRaw); - } catch (_a) { - $e2d7a47000ccff78$var$core.debug("Invalid json"); - } - } - return releases; - }); +exports.compare = compare; +function compare(a, b, loose) { + return new SemVer(a, loose).compare(new SemVer(b, loose)); } -module.exports.getManifestFromRepo = $e2d7a47000ccff78$var$getManifestFromRepo; -function $e2d7a47000ccff78$var$findFromManifest(versionSpec, stable, manifest, archFilter = $e2d7a47000ccff78$var$os.arch()) { - return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { - // wrap the internal impl - const match = yield $e2d7a47000ccff78$var$mm._findMatch(versionSpec, stable, manifest, archFilter); - return match; - }); +exports.compareLoose = compareLoose; +function compareLoose(a, b) { + return compare(a, b, true); } -module.exports.findFromManifest = $e2d7a47000ccff78$var$findFromManifest; -function $e2d7a47000ccff78$var$_createExtractFolder(dest) { - return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { - if (!dest) // create a temp dir - dest = $e2d7a47000ccff78$var$path.join($e2d7a47000ccff78$var$_getTempDirectory(), $e2d7a47000ccff78$var$v4_1.default()); - yield $e2d7a47000ccff78$var$io.mkdirP(dest); - return dest; - }); +exports.compareBuild = compareBuild; +function compareBuild(a, b, loose) { + var versionA = new SemVer(a, loose); + var versionB = new SemVer(b, loose); + return versionA.compare(versionB) || versionA.compareBuild(versionB); } -function $e2d7a47000ccff78$var$_createToolPath(tool, version, arch) { - return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { - const folderPath = $e2d7a47000ccff78$var$path.join($e2d7a47000ccff78$var$_getCacheDirectory(), tool, $e2d7a47000ccff78$var$semver.clean(version) || version, arch || ""); - $e2d7a47000ccff78$var$core.debug(`destination ${folderPath}`); - const markerPath = `${folderPath}.complete`; - yield $e2d7a47000ccff78$var$io.rmRF(folderPath); - yield $e2d7a47000ccff78$var$io.rmRF(markerPath); - yield $e2d7a47000ccff78$var$io.mkdirP(folderPath); - return folderPath; +exports.rcompare = rcompare; +function rcompare(a, b, loose) { + return compare(b, a, loose); +} +exports.sort = sort; +function sort(list, loose) { + return list.sort(function(a, b) { + return exports.compareBuild(a, b, loose); }); } -function $e2d7a47000ccff78$var$_completeToolPath(tool, version, arch) { - const folderPath = $e2d7a47000ccff78$var$path.join($e2d7a47000ccff78$var$_getCacheDirectory(), tool, $e2d7a47000ccff78$var$semver.clean(version) || version, arch || ""); - const markerPath = `${folderPath}.complete`; - $e2d7a47000ccff78$var$fs.writeFileSync(markerPath, ""); - $e2d7a47000ccff78$var$core.debug("finished caching tool"); +exports.rsort = rsort; +function rsort(list, loose) { + return list.sort(function(a, b) { + return exports.compareBuild(b, a, loose); + }); } -/** - * Check if version string is explicit - * - * @param versionSpec version string to check - */ function $e2d7a47000ccff78$var$isExplicitVersion(versionSpec) { - const c = $e2d7a47000ccff78$var$semver.clean(versionSpec) || ""; - $e2d7a47000ccff78$var$core.debug(`isExplicit: ${c}`); - const valid = $e2d7a47000ccff78$var$semver.valid(c) != null; - $e2d7a47000ccff78$var$core.debug(`explicit? ${valid}`); - return valid; +exports.gt = gt; +function gt(a, b, loose) { + return compare(a, b, loose) > 0; } -module.exports.isExplicitVersion = $e2d7a47000ccff78$var$isExplicitVersion; -/** - * Get the highest satisfiying semantic version in `versions` which satisfies `versionSpec` - * - * @param versions array of versions to evaluate - * @param versionSpec semantic version spec to satisfy - */ function $e2d7a47000ccff78$var$evaluateVersions(versions, versionSpec) { - let version = ""; - $e2d7a47000ccff78$var$core.debug(`evaluating ${versions.length} versions`); - versions = versions.sort((a, b)=>{ - if ($e2d7a47000ccff78$var$semver.gt(a, b)) return 1; - return -1; - }); - for(let i = versions.length - 1; i >= 0; i--){ - const potential = versions[i]; - const satisfied = $e2d7a47000ccff78$var$semver.satisfies(potential, versionSpec); - if (satisfied) { - version = potential; - break; - } - } - if (version) $e2d7a47000ccff78$var$core.debug(`matched: ${version}`); - else $e2d7a47000ccff78$var$core.debug("match not found"); - return version; +exports.lt = lt; +function lt(a, b, loose) { + return compare(a, b, loose) < 0; } -module.exports.evaluateVersions = $e2d7a47000ccff78$var$evaluateVersions; -/** - * Gets RUNNER_TOOL_CACHE - */ function $e2d7a47000ccff78$var$_getCacheDirectory() { - const cacheDirectory = process.env["RUNNER_TOOL_CACHE"] || ""; - $kzVu7$assert.ok(cacheDirectory, "Expected RUNNER_TOOL_CACHE to be defined"); - return cacheDirectory; +exports.eq = eq; +function eq(a, b, loose) { + return compare(a, b, loose) === 0; } -/** - * Gets RUNNER_TEMP - */ function $e2d7a47000ccff78$var$_getTempDirectory() { - const tempDirectory = process.env["RUNNER_TEMP"] || ""; - $kzVu7$assert.ok(tempDirectory, "Expected RUNNER_TEMP to be defined"); - return tempDirectory; +exports.neq = neq; +function neq(a, b, loose) { + return compare(a, b, loose) !== 0; } -/** - * Gets a global variable - */ function $e2d7a47000ccff78$var$_getGlobal(key, defaultValue) { - /* eslint-disable @typescript-eslint/no-explicit-any */ const value = $parcel$global[key]; - /* eslint-enable @typescript-eslint/no-explicit-any */ return value !== undefined ? value : defaultValue; +exports.gte = gte; +function gte(a, b, loose) { + return compare(a, b, loose) >= 0; } -/** - * Returns an array of unique values. - * @param values Values to make unique. - */ function $e2d7a47000ccff78$var$_unique(values) { - return Array.from(new Set(values)); +exports.lte = lte; +function lte(a, b, loose) { + return compare(a, b, loose) <= 0; } - -}); -parcelRequire.register("9Gi2U", function(module, exports) { -"use strict"; -var $70c608dba765868c$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); +exports.cmp = cmp; +function cmp(a, op, b, loose) { + switch(op){ + case "===": + if (typeof a === "object") a = a.version; + if (typeof b === "object") b = b.version; + return a === b; + case "!==": + if (typeof a === "object") a = a.version; + if (typeof b === "object") b = b.version; + return a !== b; + case "": + case "=": + case "==": + return eq(a, b, loose); + case "!=": + return neq(a, b, loose); + case ">": + return gt(a, b, loose); + case ">=": + return gte(a, b, loose); + case "<": + return lt(a, b, loose); + case "<=": + return lte(a, b, loose); + default: + throw new TypeError("Invalid operator: " + op); + } +} +exports.Comparator = Comparator; +function Comparator(comp, options) { + if (!options || typeof options !== "object") options = { + loose: !!options, + includePrerelease: false + }; + if (comp instanceof Comparator) { + if (comp.loose === !!options.loose) return comp; + else comp = comp.value; + } + if (!(this instanceof Comparator)) return new Comparator(comp, options); + debug("comparator", comp, options); + this.options = options; + this.loose = !!options.loose; + this.parse(comp); + if (this.semver === ANY) this.value = ""; + else this.value = this.operator + this.semver.version; + debug("comp", this); +} +var ANY = {}; +Comparator.prototype.parse = function(comp) { + var r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]; + var m = comp.match(r); + if (!m) throw new TypeError("Invalid comparator: " + comp); + this.operator = m[1] !== undefined ? m[1] : ""; + if (this.operator === "=") this.operator = ""; + // if it literally is just '>' or '' then allow anything. + if (!m[2]) this.semver = ANY; + else this.semver = new SemVer(m[2], this.options.loose); +}; +Comparator.prototype.toString = function() { + return this.value; +}; +Comparator.prototype.test = function(version) { + debug("Comparator.test", version, this.options.loose); + if (this.semver === ANY || version === ANY) return true; + if (typeof version === "string") try { + version = new SemVer(version, this.options); + } catch (er) { + return false; + } + return cmp(version, this.operator, this.semver, this.options); +}; +Comparator.prototype.intersects = function(comp, options) { + if (!(comp instanceof Comparator)) throw new TypeError("a Comparator is required"); + if (!options || typeof options !== "object") options = { + loose: !!options, + includePrerelease: false + }; + var rangeTmp; + if (this.operator === "") { + if (this.value === "") return true; + rangeTmp = new Range(comp.value, options); + return satisfies(this.value, rangeTmp, options); + } else if (comp.operator === "") { + if (comp.value === "") return true; + rangeTmp = new Range(this.value, options); + return satisfies(comp.semver, rangeTmp, options); + } + var sameDirectionIncreasing = (this.operator === ">=" || this.operator === ">") && (comp.operator === ">=" || comp.operator === ">"); + var sameDirectionDecreasing = (this.operator === "<=" || this.operator === "<") && (comp.operator === "<=" || comp.operator === "<"); + var sameSemVer = this.semver.version === comp.semver.version; + var differentDirectionsInclusive = (this.operator === ">=" || this.operator === "<=") && (comp.operator === ">=" || comp.operator === "<="); + var oppositeDirectionsLessThan = cmp(this.semver, "<", comp.semver, options) && (this.operator === ">=" || this.operator === ">") && (comp.operator === "<=" || comp.operator === "<"); + var oppositeDirectionsGreaterThan = cmp(this.semver, ">", comp.semver, options) && (this.operator === "<=" || this.operator === "<") && (comp.operator === ">=" || comp.operator === ">"); + return sameDirectionIncreasing || sameDirectionDecreasing || sameSemVer && differentDirectionsInclusive || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan; +}; +exports.Range = Range; +function Range(range, options) { + if (!options || typeof options !== "object") options = { + loose: !!options, + includePrerelease: false + }; + if (range instanceof Range) { + if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) return range; + else return new Range(range.raw, options); + } + if (range instanceof Comparator) return new Range(range.value, options); + if (!(this instanceof Range)) return new Range(range, options); + this.options = options; + this.loose = !!options.loose; + this.includePrerelease = !!options.includePrerelease; + // First, split based on boolean or || + this.raw = range; + this.set = range.split(/\s*\|\|\s*/).map(function(range) { + return this.parseRange(range.trim()); + }, this).filter(function(c) { + // throw out any that are not relevant for whatever reason + return c.length; + }); + if (!this.set.length) throw new TypeError("Invalid SemVer Range: " + range); + this.format(); +} +Range.prototype.format = function() { + this.range = this.set.map(function(comps) { + return comps.join(" ").trim(); + }).join("||").trim(); + return this.range; +}; +Range.prototype.toString = function() { + return this.range; +}; +Range.prototype.parseRange = function(range) { + var loose = this.options.loose; + range = range.trim(); + // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` + var hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]; + range = range.replace(hr, hyphenReplace); + debug("hyphen replace", range); + // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` + range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace); + debug("comparator trim", range, re[t.COMPARATORTRIM]); + // `~ 1.2.3` => `~1.2.3` + range = range.replace(re[t.TILDETRIM], tildeTrimReplace); + // `^ 1.2.3` => `^1.2.3` + range = range.replace(re[t.CARETTRIM], caretTrimReplace); + // normalize spaces + range = range.split(/\s+/).join(" "); + // At this point, the range is completely trimmed and + // ready to be split into comparators. + var compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]; + var set = range.split(" ").map(function(comp) { + return parseComparator(comp, this.options); + }, this).join(" ").split(/\s+/); + if (this.options.loose) // in loose mode, throw out any that are not valid comparators + set = set.filter(function(comp) { + return !!comp.match(compRe); + }); + set = set.map(function(comp) { + return new Comparator(comp, this.options); + }, this); + return set; +}; +Range.prototype.intersects = function(range, options) { + if (!(range instanceof Range)) throw new TypeError("a Range is required"); + return this.set.some(function(thisComparators) { + return isSatisfiable(thisComparators, options) && range.set.some(function(rangeComparators) { + return isSatisfiable(rangeComparators, options) && thisComparators.every(function(thisComparator) { + return rangeComparators.every(function(rangeComparator) { + return thisComparator.intersects(rangeComparator, options); + }); + }); }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -var $70c608dba765868c$var$__importStar = module.exports && module.exports.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) { - for(var k in mod)if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; +// take a set of comparators and determine whether there +// exists a version which can satisfy it +function isSatisfiable(comparators, options) { + var result = true; + var remainingComparators = comparators.slice(); + var testComparator = remainingComparators.pop(); + while(result && remainingComparators.length){ + result = remainingComparators.every(function(otherComparator) { + return testComparator.intersects(otherComparator, options); + }); + testComparator = remainingComparators.pop(); } - result["default"] = mod; return result; -}; -Object.defineProperty(module.exports, "__esModule", { - value: true -}); - -var $7Zp2G = parcelRequire("7Zp2G"); - -var $d0w1v = parcelRequire("d0w1v"); - -var $eI33N = parcelRequire("eI33N"); - -const $70c608dba765868c$var$os = $70c608dba765868c$var$__importStar($kzVu7$os); - -const $70c608dba765868c$var$path = $70c608dba765868c$var$__importStar($kzVu7$path); -/** - * The code to exit an action - */ var $70c608dba765868c$var$ExitCode; -(function(ExitCode) { - /** - * A code indicating that the action was successful - */ ExitCode[ExitCode["Success"] = 0] = "Success"; - /** - * A code indicating that the action was a failure - */ ExitCode[ExitCode["Failure"] = 1] = "Failure"; -})($70c608dba765868c$var$ExitCode = module.exports.ExitCode || (module.exports.ExitCode = {})); -//----------------------------------------------------------------------- -// Variables -//----------------------------------------------------------------------- -/** - * Sets env variable for this action and future actions in the job - * @param name the name of the variable to set - * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify - */ // eslint-disable-next-line @typescript-eslint/no-explicit-any -function $70c608dba765868c$var$exportVariable(name, val) { - const convertedVal = $eI33N.toCommandValue(val); - process.env[name] = convertedVal; - const filePath = process.env["GITHUB_ENV"] || ""; - if (filePath) { - const delimiter = "_GitHubActionsFileCommandDelimeter_"; - const commandValue = `${name}<<${delimiter}${$70c608dba765868c$var$os.EOL}${convertedVal}${$70c608dba765868c$var$os.EOL}${delimiter}`; - $d0w1v.issueCommand("ENV", commandValue); - } else $7Zp2G.issueCommand("set-env", { - name: name - }, convertedVal); } -module.exports.exportVariable = $70c608dba765868c$var$exportVariable; -/** - * Registers a secret which will get masked from logs - * @param secret value of the secret - */ function $70c608dba765868c$var$setSecret(secret) { - $7Zp2G.issueCommand("add-mask", {}, secret); +// Mostly just for testing and legacy API reasons +exports.toComparators = toComparators; +function toComparators(range, options) { + return new Range(range, options).set.map(function(comp) { + return comp.map(function(c) { + return c.value; + }).join(" ").trim().split(" "); + }); } -module.exports.setSecret = $70c608dba765868c$var$setSecret; -/** - * Prepends inputPath to the PATH (for this action and future actions) - * @param inputPath - */ function $70c608dba765868c$var$addPath(inputPath) { - const filePath = process.env["GITHUB_PATH"] || ""; - if (filePath) $d0w1v.issueCommand("PATH", inputPath); - else $7Zp2G.issueCommand("add-path", {}, inputPath); - process.env["PATH"] = `${inputPath}${$70c608dba765868c$var$path.delimiter}${process.env["PATH"]}`; +// comprised of xranges, tildes, stars, and gtlt's at this point. +// already replaced the hyphen ranges +// turn into a set of JUST comparators. +function parseComparator(comp, options) { + debug("comp", comp, options); + comp = replaceCarets(comp, options); + debug("caret", comp); + comp = replaceTildes(comp, options); + debug("tildes", comp); + comp = replaceXRanges(comp, options); + debug("xrange", comp); + comp = replaceStars(comp, options); + debug("stars", comp); + return comp; } -module.exports.addPath = $70c608dba765868c$var$addPath; -/** - * Gets the value of an input. The value is also trimmed. - * - * @param name name of the input to get - * @param options optional. See InputOptions. - * @returns string - */ function $70c608dba765868c$var$getInput(name, options) { - const val = process.env[`INPUT_${name.replace(/ /g, "_").toUpperCase()}`] || ""; - if (options && options.required && !val) throw new Error(`Input required and not supplied: ${name}`); - return val.trim(); +function isX(id) { + return !id || id.toLowerCase() === "x" || id === "*"; } -module.exports.getInput = $70c608dba765868c$var$getInput; -/** - * Sets the value of an output. - * - * @param name name of the output to set - * @param value value to store. Non-string values will be converted to a string via JSON.stringify - */ // eslint-disable-next-line @typescript-eslint/no-explicit-any -function $70c608dba765868c$var$setOutput(name, value) { - process.stdout.write($70c608dba765868c$var$os.EOL); - $7Zp2G.issueCommand("set-output", { - name: name - }, value); +// ~, ~> --> * (any, kinda silly) +// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0 +// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0 +// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0 +// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0 +// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0 +function replaceTildes(comp, options) { + return comp.trim().split(/\s+/).map(function(comp) { + return replaceTilde(comp, options); + }).join(" "); } -module.exports.setOutput = $70c608dba765868c$var$setOutput; -/** - * Enables or disables the echoing of commands into stdout for the rest of the step. - * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set. - * - */ function $70c608dba765868c$var$setCommandEcho(enabled) { - $7Zp2G.issue("echo", enabled ? "on" : "off"); +function replaceTilde(comp, options) { + var r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]; + return comp.replace(r, function(_, M, m, p, pr) { + debug("tilde", comp, _, M, m, p, pr); + var ret; + if (isX(M)) ret = ""; + else if (isX(m)) ret = ">=" + M + ".0.0 <" + (+M + 1) + ".0.0"; + else if (isX(p)) // ~1.2 == >=1.2.0 <1.3.0 + ret = ">=" + M + "." + m + ".0 <" + M + "." + (+m + 1) + ".0"; + else if (pr) { + debug("replaceTilde pr", pr); + ret = ">=" + M + "." + m + "." + p + "-" + pr + " <" + M + "." + (+m + 1) + ".0"; + } else // ~1.2.3 == >=1.2.3 <1.3.0 + ret = ">=" + M + "." + m + "." + p + " <" + M + "." + (+m + 1) + ".0"; + debug("tilde return", ret); + return ret; + }); } -module.exports.setCommandEcho = $70c608dba765868c$var$setCommandEcho; -//----------------------------------------------------------------------- -// Results -//----------------------------------------------------------------------- -/** - * Sets the action status to failed. - * When the action exits it will be with an exit code of 1 - * @param message add error issue message - */ function $70c608dba765868c$var$setFailed(message) { - process.exitCode = $70c608dba765868c$var$ExitCode.Failure; - $70c608dba765868c$var$error(message); +// ^ --> * (any, kinda silly) +// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0 +// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0 +// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0 +// ^1.2.3 --> >=1.2.3 <2.0.0 +// ^1.2.0 --> >=1.2.0 <2.0.0 +function replaceCarets(comp, options) { + return comp.trim().split(/\s+/).map(function(comp) { + return replaceCaret(comp, options); + }).join(" "); } -module.exports.setFailed = $70c608dba765868c$var$setFailed; -//----------------------------------------------------------------------- -// Logging Commands -//----------------------------------------------------------------------- -/** - * Gets whether Actions Step Debug is on or not - */ function $70c608dba765868c$var$isDebug() { - return process.env["RUNNER_DEBUG"] === "1"; +function replaceCaret(comp, options) { + debug("caret", comp, options); + var r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]; + return comp.replace(r, function(_, M, m, p, pr) { + debug("caret", comp, _, M, m, p, pr); + var ret; + if (isX(M)) ret = ""; + else if (isX(m)) ret = ">=" + M + ".0.0 <" + (+M + 1) + ".0.0"; + else if (isX(p)) { + if (M === "0") ret = ">=" + M + "." + m + ".0 <" + M + "." + (+m + 1) + ".0"; + else ret = ">=" + M + "." + m + ".0 <" + (+M + 1) + ".0.0"; + } else if (pr) { + debug("replaceCaret pr", pr); + if (M === "0") { + if (m === "0") ret = ">=" + M + "." + m + "." + p + "-" + pr + " <" + M + "." + m + "." + (+p + 1); + else ret = ">=" + M + "." + m + "." + p + "-" + pr + " <" + M + "." + (+m + 1) + ".0"; + } else ret = ">=" + M + "." + m + "." + p + "-" + pr + " <" + (+M + 1) + ".0.0"; + } else { + debug("no pr"); + if (M === "0") { + if (m === "0") ret = ">=" + M + "." + m + "." + p + " <" + M + "." + m + "." + (+p + 1); + else ret = ">=" + M + "." + m + "." + p + " <" + M + "." + (+m + 1) + ".0"; + } else ret = ">=" + M + "." + m + "." + p + " <" + (+M + 1) + ".0.0"; + } + debug("caret return", ret); + return ret; + }); } -module.exports.isDebug = $70c608dba765868c$var$isDebug; -/** - * Writes debug message to user log - * @param message debug message - */ function $70c608dba765868c$var$debug(message) { - $7Zp2G.issueCommand("debug", {}, message); +function replaceXRanges(comp, options) { + debug("replaceXRanges", comp, options); + return comp.split(/\s+/).map(function(comp) { + return replaceXRange(comp, options); + }).join(" "); } -module.exports.debug = $70c608dba765868c$var$debug; -/** - * Adds an error issue - * @param message error issue message. Errors will be converted to string via toString() - */ function $70c608dba765868c$var$error(message) { - $7Zp2G.issue("error", message instanceof Error ? message.toString() : message); +function replaceXRange(comp, options) { + comp = comp.trim(); + var r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]; + return comp.replace(r, function(ret, gtlt, M, m, p, pr) { + debug("xRange", comp, ret, gtlt, M, m, p, pr); + var xM = isX(M); + var xm = xM || isX(m); + var xp = xm || isX(p); + var anyX = xp; + if (gtlt === "=" && anyX) gtlt = ""; + // if we're including prereleases in the match, then we need + // to fix this to -0, the lowest possible prerelease value + pr = options.includePrerelease ? "-0" : ""; + if (xM) { + if (gtlt === ">" || gtlt === "<") // nothing is allowed + ret = "<0.0.0-0"; + else // nothing is forbidden + ret = "*"; + } else if (gtlt && anyX) { + // we know patch is an x, because we have any x at all. + // replace X with 0 + if (xm) m = 0; + p = 0; + if (gtlt === ">") { + // >1 => >=2.0.0 + // >1.2 => >=1.3.0 + // >1.2.3 => >= 1.2.4 + gtlt = ">="; + if (xm) { + M = +M + 1; + m = 0; + p = 0; + } else { + m = +m + 1; + p = 0; + } + } else if (gtlt === "<=") { + // <=0.7.x is actually <0.8.0, since any 0.7.x should + // pass. Similarly, <=7.x is actually <8.0.0, etc. + gtlt = "<"; + if (xm) M = +M + 1; + else m = +m + 1; + } + ret = gtlt + M + "." + m + "." + p + pr; + } else if (xm) ret = ">=" + M + ".0.0" + pr + " <" + (+M + 1) + ".0.0" + pr; + else if (xp) ret = ">=" + M + "." + m + ".0" + pr + " <" + M + "." + (+m + 1) + ".0" + pr; + debug("xRange return", ret); + return ret; + }); } -module.exports.error = $70c608dba765868c$var$error; -/** - * Adds an warning issue - * @param message warning issue message. Errors will be converted to string via toString() - */ function $70c608dba765868c$var$warning(message) { - $7Zp2G.issue("warning", message instanceof Error ? message.toString() : message); +// Because * is AND-ed with everything else in the comparator, +// and '' means "any version", just remove the *s entirely. +function replaceStars(comp, options) { + debug("replaceStars", comp, options); + // Looseness is ignored here. star is always as loose as it gets! + return comp.trim().replace(re[t.STAR], ""); } -module.exports.warning = $70c608dba765868c$var$warning; -/** - * Writes info to log with console.log. - * @param message info message - */ function $70c608dba765868c$var$info(message) { - process.stdout.write(message + $70c608dba765868c$var$os.EOL); +// This function is passed to string.replace(re[t.HYPHENRANGE]) +// M, m, patch, prerelease, build +// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 +// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do +// 1.2 - 3.4 => >=1.2.0 <3.5.0 +function hyphenReplace($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) { + if (isX(fM)) from = ""; + else if (isX(fm)) from = ">=" + fM + ".0.0"; + else if (isX(fp)) from = ">=" + fM + "." + fm + ".0"; + else from = ">=" + from; + if (isX(tM)) to = ""; + else if (isX(tm)) to = "<" + (+tM + 1) + ".0.0"; + else if (isX(tp)) to = "<" + tM + "." + (+tm + 1) + ".0"; + else if (tpr) to = "<=" + tM + "." + tm + "." + tp + "-" + tpr; + else to = "<=" + to; + return (from + " " + to).trim(); } -module.exports.info = $70c608dba765868c$var$info; -/** - * Begin an output group. - * - * Output until the next `groupEnd` will be foldable in this group - * - * @param name The name of the output group - */ function $70c608dba765868c$var$startGroup(name) { - $7Zp2G.issue("group", name); +// if ANY of the sets match ALL of its comparators, then pass +Range.prototype.test = function(version) { + if (!version) return false; + if (typeof version === "string") try { + version = new SemVer(version, this.options); + } catch (er) { + return false; + } + for(var i = 0; i < this.set.length; i++){ + if (testSet(this.set[i], version, this.options)) return true; + } + return false; +}; +function testSet(set, version, options) { + for(var i = 0; i < set.length; i++){ + if (!set[i].test(version)) return false; + } + if (version.prerelease.length && !options.includePrerelease) { + // Find the set of versions that are allowed to have prereleases + // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 + // That should allow `1.2.3-pr.2` to pass. + // However, `1.2.4-alpha.notready` should NOT be allowed, + // even though it's within the range set by the comparators. + for(i = 0; i < set.length; i++){ + debug(set[i].semver); + if (set[i].semver === ANY) continue; + if (set[i].semver.prerelease.length > 0) { + var allowed = set[i].semver; + if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) return true; + } + } + // Version has a -pre, but it's not one of the ones we like. + return false; + } + return true; } -module.exports.startGroup = $70c608dba765868c$var$startGroup; -/** - * End an output group. - */ function $70c608dba765868c$var$endGroup() { - $7Zp2G.issue("endgroup"); +exports.satisfies = satisfies; +function satisfies(version, range, options) { + try { + range = new Range(range, options); + } catch (er) { + return false; + } + return range.test(version); } -module.exports.endGroup = $70c608dba765868c$var$endGroup; -/** - * Wrap an asynchronous function call in a group. - * - * Returns the same type as the function itself. - * - * @param name The name of the group - * @param fn The function to wrap in the group - */ function $70c608dba765868c$var$group(name, fn) { - return $70c608dba765868c$var$__awaiter(this, void 0, void 0, function*() { - $70c608dba765868c$var$startGroup(name); - let result; - try { - result = yield fn(); - } finally{ - $70c608dba765868c$var$endGroup(); +exports.maxSatisfying = maxSatisfying; +function maxSatisfying(versions, range, options) { + var max = null; + var maxSV = null; + try { + var rangeObj = new Range(range, options); + } catch (er) { + return null; + } + versions.forEach(function(v) { + if (rangeObj.test(v)) // satisfies(v, range, options) + { + if (!max || maxSV.compare(v) === -1) { + // compare(max, v, true) + max = v; + maxSV = new SemVer(max, options); + } } - return result; }); + return max; } -module.exports.group = $70c608dba765868c$var$group; -//----------------------------------------------------------------------- -// Wrapper action state -//----------------------------------------------------------------------- -/** - * Saves state for current action, the state can only be retrieved by this action's post job execution. - * - * @param name name of the state to store - * @param value value to store. Non-string values will be converted to a string via JSON.stringify - */ // eslint-disable-next-line @typescript-eslint/no-explicit-any -function $70c608dba765868c$var$saveState(name, value) { - $7Zp2G.issueCommand("save-state", { - name: name - }, value); -} -module.exports.saveState = $70c608dba765868c$var$saveState; -/** - * Gets the value of an state set by this action's main execution. - * - * @param name name of the state to get - * @returns string - */ function $70c608dba765868c$var$getState(name) { - return process.env[`STATE_${name}`] || ""; +exports.minSatisfying = minSatisfying; +function minSatisfying(versions, range, options) { + var min = null; + var minSV = null; + try { + var rangeObj = new Range(range, options); + } catch (er) { + return null; + } + versions.forEach(function(v) { + if (rangeObj.test(v)) // satisfies(v, range, options) + { + if (!min || minSV.compare(v) === 1) { + // compare(min, v, true) + min = v; + minSV = new SemVer(min, options); + } + } + }); + return min; } -module.exports.getState = $70c608dba765868c$var$getState; - -}); -parcelRequire.register("7Zp2G", function(module, exports) { -"use strict"; -var $5d11a7cb0e353079$var$__importStar = module.exports && module.exports.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) { - for(var k in mod)if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; +exports.minVersion = minVersion; +function minVersion(range, loose) { + range = new Range(range, loose); + var minver = new SemVer("0.0.0"); + if (range.test(minver)) return minver; + minver = new SemVer("0.0.0-0"); + if (range.test(minver)) return minver; + minver = null; + for(var i = 0; i < range.set.length; ++i){ + var comparators = range.set[i]; + comparators.forEach(function(comparator) { + // Clone to avoid manipulating the comparator's semver object. + var compver = new SemVer(comparator.semver.version); + switch(comparator.operator){ + case ">": + if (compver.prerelease.length === 0) compver.patch++; + else compver.prerelease.push(0); + compver.raw = compver.format(); + /* fallthrough */ case "": + case ">=": + if (!minver || gt(minver, compver)) minver = compver; + break; + case "<": + case "<=": + break; + /* istanbul ignore next */ default: + throw new Error("Unexpected operation: " + comparator.operator); + } + }); + } + if (minver && range.test(minver)) return minver; + return null; +} +exports.validRange = validRange; +function validRange(range, options) { + try { + // Return '*' instead of '' so that truthiness works. + // This will throw if it's invalid anyway + return new Range(range, options).range || "*"; + } catch (er) { + return null; } - result["default"] = mod; - return result; -}; -Object.defineProperty(module.exports, "__esModule", { - value: true -}); - -const $5d11a7cb0e353079$var$os = $5d11a7cb0e353079$var$__importStar($kzVu7$os); - -var $eI33N = parcelRequire("eI33N"); -/** - * Commands - * - * Command Format: - * ::name key=value,key=value::message - * - * Examples: - * ::warning::This is the message - * ::set-env name=MY_VAR::some value - */ function $5d11a7cb0e353079$var$issueCommand(command, properties, message) { - const cmd = new $5d11a7cb0e353079$var$Command(command, properties, message); - process.stdout.write(cmd.toString() + $5d11a7cb0e353079$var$os.EOL); } -module.exports.issueCommand = $5d11a7cb0e353079$var$issueCommand; -function $5d11a7cb0e353079$var$issue(name, message = "") { - $5d11a7cb0e353079$var$issueCommand(name, {}, message); +// Determine if version is less than all the versions possible in the range +exports.ltr = ltr; +function ltr(version, range, options) { + return outside(version, range, "<", options); } -module.exports.issue = $5d11a7cb0e353079$var$issue; -const $5d11a7cb0e353079$var$CMD_STRING = "::"; -class $5d11a7cb0e353079$var$Command { - constructor(command, properties, message){ - if (!command) command = "missing.command"; - this.command = command; - this.properties = properties; - this.message = message; +// Determine if version is greater than all the versions possible in the range. +exports.gtr = gtr; +function gtr(version, range, options) { + return outside(version, range, ">", options); +} +exports.outside = outside; +function outside(version, range, hilo, options) { + version = new SemVer(version, options); + range = new Range(range, options); + var gtfn, ltefn, ltfn, comp, ecomp; + switch(hilo){ + case ">": + gtfn = gt; + ltefn = lte; + ltfn = lt; + comp = ">"; + ecomp = ">="; + break; + case "<": + gtfn = lt; + ltefn = gte; + ltfn = gt; + comp = "<"; + ecomp = "<="; + break; + default: + throw new TypeError('Must provide a hilo val of "<" or ">"'); } - toString() { - let cmdStr = $5d11a7cb0e353079$var$CMD_STRING + this.command; - if (this.properties && Object.keys(this.properties).length > 0) { - cmdStr += " "; - let first = true; - for(const key in this.properties)if (this.properties.hasOwnProperty(key)) { - const val = this.properties[key]; - if (val) { - if (first) first = false; - else cmdStr += ","; - cmdStr += `${key}=${$5d11a7cb0e353079$var$escapeProperty(val)}`; - } - } - } - cmdStr += `${$5d11a7cb0e353079$var$CMD_STRING}${$5d11a7cb0e353079$var$escapeData(this.message)}`; - return cmdStr; + // If it satisifes the range it is not outside + if (satisfies(version, range, options)) return false; + // From now on, variable terms are as if we're in "gtr" mode. + // but note that everything is flipped for the "ltr" function. + for(var i = 0; i < range.set.length; ++i){ + var comparators = range.set[i]; + var high = null; + var low = null; + comparators.forEach(function(comparator) { + if (comparator.semver === ANY) comparator = new Comparator(">=0.0.0"); + high = high || comparator; + low = low || comparator; + if (gtfn(comparator.semver, high.semver, options)) high = comparator; + else if (ltfn(comparator.semver, low.semver, options)) low = comparator; + }); + // If the edge version comparator has a operator then our version + // isn't outside it + if (high.operator === comp || high.operator === ecomp) return false; + // If the lowest version comparator has an operator and our version + // is less than it then it isn't higher than the range + if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) return false; + else if (low.operator === ecomp && ltfn(version, low.semver)) return false; } + return true; } -function $5d11a7cb0e353079$var$escapeData(s) { - return $eI33N.toCommandValue(s).replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A"); +exports.prerelease = prerelease; +function prerelease(version, options) { + var parsed = parse(version, options); + return parsed && parsed.prerelease.length ? parsed.prerelease : null; } -function $5d11a7cb0e353079$var$escapeProperty(s) { - return $eI33N.toCommandValue(s).replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A").replace(/:/g, "%3A").replace(/,/g, "%2C"); +exports.intersects = intersects; +function intersects(r1, r2, options) { + r1 = new Range(r1, options); + r2 = new Range(r2, options); + return r1.intersects(r2); } - -}); -parcelRequire.register("eI33N", function(module, exports) { -"use strict"; -// We use any as a valid input type -/* eslint-disable @typescript-eslint/no-explicit-any */ Object.defineProperty(module.exports, "__esModule", { - value: true -}); -/** - * Sanitizes an input into a string so it can be passed into issueCommand safely - * @param input input to sanitize into a string - */ function $ab578c775b629fc6$var$toCommandValue(input) { - if (input === null || input === undefined) return ""; - else if (typeof input === "string" || input instanceof String) return input; - return JSON.stringify(input); +exports.coerce = coerce; +function coerce(version, options) { + if (version instanceof SemVer) return version; + if (typeof version === "number") version = String(version); + if (typeof version !== "string") return null; + options = options || {}; + var match = null; + if (!options.rtl) match = version.match(re[t.COERCE]); + else { + // Find the right-most coercible string that does not share + // a terminus with a more left-ward coercible string. + // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4' + // + // Walk through the string checking with a /g regexp + // Manually set the index so as to pick up overlapping matches. + // Stop when we get a match that ends at the string end, since no + // coercible string can be more right-ward without the same terminus. + var next; + while((next = re[t.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length)){ + if (!match || next.index + next[0].length !== match.index + match[0].length) match = next; + re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length; + } + // leave it in a clean state + re[t.COERCERTL].lastIndex = -1; + } + if (match === null) return null; + return parse(match[2] + "." + (match[3] || "0") + "." + (match[4] || "0"), options); } -module.exports.toCommandValue = $ab578c775b629fc6$var$toCommandValue; }); -parcelRequire.register("d0w1v", function(module, exports) { -"use strict"; -// For internal use, subject to change. -var $97841d952ff89e29$var$__importStar = module.exports && module.exports.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) { - for(var k in mod)if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - } - result["default"] = mod; - return result; -}; -Object.defineProperty(module.exports, "__esModule", { - value: true -}); - -// We use any as a valid input type -/* eslint-disable @typescript-eslint/no-explicit-any */ const $97841d952ff89e29$var$fs = $97841d952ff89e29$var$__importStar($kzVu7$fs); +parcelRequire.register("g6B2s", function(module, exports) { -const $97841d952ff89e29$var$os = $97841d952ff89e29$var$__importStar($kzVu7$os); +var $kfhgL = parcelRequire("kfhgL"); -var $eI33N = parcelRequire("eI33N"); -function $97841d952ff89e29$var$issueCommand(command, message) { - const filePath = process.env[`GITHUB_${command}`]; - if (!filePath) throw new Error(`Unable to find environment variable for file command ${command}`); - if (!$97841d952ff89e29$var$fs.existsSync(filePath)) throw new Error(`Missing file at path: ${filePath}`); - $97841d952ff89e29$var$fs.appendFileSync(filePath, `${$eI33N.toCommandValue(message)}${$97841d952ff89e29$var$os.EOL}`, { - encoding: "utf8" - }); +var $kSKLw = parcelRequire("kSKLw"); +function $bb99eff98e35887e$var$v4(options, buf, offset) { + var i = buf && offset || 0; + if (typeof options == "string") { + buf = options === "binary" ? new Array(16) : null; + options = null; + } + options = options || {}; + var rnds = options.random || (options.rng || $kfhgL)(); + // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + rnds[6] = rnds[6] & 0x0f | 0x40; + rnds[8] = rnds[8] & 0x3f | 0x80; + // Copy bytes to buffer, if provided + if (buf) for(var ii = 0; ii < 16; ++ii)buf[i + ii] = rnds[ii]; + return buf || $kSKLw(rnds); } -module.exports.issueCommand = $97841d952ff89e29$var$issueCommand; +module.exports = $bb99eff98e35887e$var$v4; }); +parcelRequire.register("kfhgL", function(module, exports) { +// Unique ID creation requires a high quality random # generator. In node.js +// this is pretty straight-forward - we use the crypto API. +module.exports = function nodeRNG() { + return $bknAJ$crypto.randomBytes(16); +}; -parcelRequire.register("f2hs4", function(module, exports) { -"use strict"; -var $af24947b224a744f$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { - enumerable: true, - get: function() { - return m[k]; - } - }); -} : function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; }); -var $af24947b224a744f$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { - enumerable: true, - value: v - }); -} : function(o, v) { - o["default"] = v; + +parcelRequire.register("kSKLw", function(module, exports) { +/** + * Convert array of 16 byte values to UUID string format of the form: + * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX + */ var $f33d207452689805$var$byteToHex = []; +for(var $f33d207452689805$var$i = 0; $f33d207452689805$var$i < 256; ++$f33d207452689805$var$i)$f33d207452689805$var$byteToHex[$f33d207452689805$var$i] = ($f33d207452689805$var$i + 0x100).toString(16).substr(1); +function $f33d207452689805$var$bytesToUuid(buf, offset) { + var i = offset || 0; + var bth = $f33d207452689805$var$byteToHex; + // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4 + return [ + bth[buf[i++]], + bth[buf[i++]], + bth[buf[i++]], + bth[buf[i++]], + "-", + bth[buf[i++]], + bth[buf[i++]], + "-", + bth[buf[i++]], + bth[buf[i++]], + "-", + bth[buf[i++]], + bth[buf[i++]], + "-", + bth[buf[i++]], + bth[buf[i++]], + bth[buf[i++]], + bth[buf[i++]], + bth[buf[i++]], + bth[buf[i++]] + ].join(""); +} +module.exports = $f33d207452689805$var$bytesToUuid; + }); -var $af24947b224a744f$var$__importStar = module.exports && module.exports.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) { - for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $af24947b224a744f$var$__createBinding(result, mod, k); - } - $af24947b224a744f$var$__setModuleDefault(result, mod); - return result; -}; -var $af24947b224a744f$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { + + +parcelRequire.register("1CL8c", function(module, exports) { +"use strict"; +var $12ede656a89c462d$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve) { resolve(value); @@ -4871,481 +4250,489 @@ var $af24947b224a744f$var$__awaiter = module.exports && module.exports.__awaiter step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; +var $12ede656a89c462d$var$__importStar = module.exports && module.exports.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for(var k in mod)if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; + } + result["default"] = mod; + return result; +}; Object.defineProperty(module.exports, "__esModule", { value: true }); -module.exports.findInPath = module.exports.which = module.exports.mkdirP = module.exports.rmRF = module.exports.mv = module.exports.cp = void 0; +const $12ede656a89c462d$var$os = $12ede656a89c462d$var$__importStar($bknAJ$os); -const $af24947b224a744f$var$childProcess = $af24947b224a744f$var$__importStar($kzVu7$child_process); +const $12ede656a89c462d$var$events = $12ede656a89c462d$var$__importStar($bknAJ$events); -const $af24947b224a744f$var$path = $af24947b224a744f$var$__importStar($kzVu7$path); +const $12ede656a89c462d$var$child = $12ede656a89c462d$var$__importStar($bknAJ$child_process); +const $12ede656a89c462d$var$path = $12ede656a89c462d$var$__importStar($bknAJ$path); -const $af24947b224a744f$var$ioUtil = $af24947b224a744f$var$__importStar((parcelRequire("7O5s8"))); -const $af24947b224a744f$var$exec = $kzVu7$util.promisify($af24947b224a744f$var$childProcess.exec); -const $af24947b224a744f$var$execFile = $kzVu7$util.promisify($af24947b224a744f$var$childProcess.execFile); -/** - * Copies a file or folder. - * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js - * - * @param source source path - * @param dest destination path - * @param options optional. See CopyOptions. - */ function $af24947b224a744f$var$cp(source, dest, options = {}) { - return $af24947b224a744f$var$__awaiter(this, void 0, void 0, function*() { - const { force: force, recursive: recursive, copySourceDirectory: copySourceDirectory } = $af24947b224a744f$var$readCopyOptions(options); - const destStat = (yield $af24947b224a744f$var$ioUtil.exists(dest)) ? yield $af24947b224a744f$var$ioUtil.stat(dest) : null; - // Dest is an existing file, but not forcing - if (destStat && destStat.isFile() && !force) return; - // If dest is an existing directory, should copy inside. - const newDest = destStat && destStat.isDirectory() && copySourceDirectory ? $af24947b224a744f$var$path.join(dest, $af24947b224a744f$var$path.basename(source)) : dest; - if (!(yield $af24947b224a744f$var$ioUtil.exists(source))) throw new Error(`no such file or directory: ${source}`); - const sourceStat = yield $af24947b224a744f$var$ioUtil.stat(source); - if (sourceStat.isDirectory()) { - if (!recursive) throw new Error(`Failed to copy. ${source} is a directory, but tried to copy without recursive flag.`); - else yield $af24947b224a744f$var$cpDirRecursive(source, newDest, 0, force); - } else { - if ($af24947b224a744f$var$path.relative(source, newDest) === "") // a file cannot be copied to itself - throw new Error(`'${newDest}' and '${source}' are the same file`); - yield $af24947b224a744f$var$copyFile(source, newDest, force); - } - }); -} -module.exports.cp = $af24947b224a744f$var$cp; -/** - * Moves a path. - * - * @param source source path - * @param dest destination path - * @param options optional. See MoveOptions. - */ function $af24947b224a744f$var$mv(source, dest, options = {}) { - return $af24947b224a744f$var$__awaiter(this, void 0, void 0, function*() { - if (yield $af24947b224a744f$var$ioUtil.exists(dest)) { - let destExists = true; - if (yield $af24947b224a744f$var$ioUtil.isDirectory(dest)) { - // If dest is directory copy src into dest - dest = $af24947b224a744f$var$path.join(dest, $af24947b224a744f$var$path.basename(source)); - destExists = yield $af24947b224a744f$var$ioUtil.exists(dest); - } - if (destExists) { - if (options.force == null || options.force) yield $af24947b224a744f$var$rmRF(dest); - else throw new Error("Destination already exists"); - } - } - yield $af24947b224a744f$var$mkdirP($af24947b224a744f$var$path.dirname(dest)); - yield $af24947b224a744f$var$ioUtil.rename(source, dest); - }); -} -module.exports.mv = $af24947b224a744f$var$mv; -/** - * Remove a path recursively with force - * - * @param inputPath path to remove - */ function $af24947b224a744f$var$rmRF(inputPath) { - return $af24947b224a744f$var$__awaiter(this, void 0, void 0, function*() { - if ($af24947b224a744f$var$ioUtil.IS_WINDOWS) { - // Node doesn't provide a delete operation, only an unlink function. This means that if the file is being used by another - // program (e.g. antivirus), it won't be deleted. To address this, we shell out the work to rd/del. - // Check for invalid characters - // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file - if (/[*"<>|]/.test(inputPath)) throw new Error('File path must not contain `*`, `"`, `<`, `>` or `|` on Windows'); - try { - const cmdPath = $af24947b224a744f$var$ioUtil.getCmdPath(); - if (yield $af24947b224a744f$var$ioUtil.isDirectory(inputPath, true)) yield $af24947b224a744f$var$exec(`${cmdPath} /s /c "rd /s /q "%inputPath%""`, { - env: { - inputPath: inputPath - } - }); - else yield $af24947b224a744f$var$exec(`${cmdPath} /s /c "del /f /a "%inputPath%""`, { - env: { - inputPath: inputPath - } - }); - } catch (err) { - // if you try to delete a file that doesn't exist, desired result is achieved - // other errors are valid - if (err.code !== "ENOENT") throw err; - } - // Shelling out fails to remove a symlink folder with missing source, this unlink catches that - try { - yield $af24947b224a744f$var$ioUtil.unlink(inputPath); - } catch (err) { - // if you try to delete a file that doesn't exist, desired result is achieved - // other errors are valid - if (err.code !== "ENOENT") throw err; +const $12ede656a89c462d$var$io = $12ede656a89c462d$var$__importStar((parcelRequire("43Rhh"))); + +const $12ede656a89c462d$var$ioUtil = $12ede656a89c462d$var$__importStar((parcelRequire("b4kaZ"))); +/* eslint-disable @typescript-eslint/unbound-method */ const $12ede656a89c462d$var$IS_WINDOWS = process.platform === "win32"; +/* + * Class for running command line tools. Handles quoting and arg parsing in a platform agnostic way. + */ class $12ede656a89c462d$var$ToolRunner extends $12ede656a89c462d$var$events.EventEmitter { + constructor(toolPath, args, options){ + super(); + if (!toolPath) throw new Error("Parameter 'toolPath' cannot be null or empty."); + this.toolPath = toolPath; + this.args = args || []; + this.options = options || {}; + } + _debug(message) { + if (this.options.listeners && this.options.listeners.debug) this.options.listeners.debug(message); + } + _getCommandString(options, noPrefix) { + const toolPath = this._getSpawnFileName(); + const args = this._getSpawnArgs(options); + let cmd = noPrefix ? "" : "[command]"; // omit prefix when piped to a second tool + if ($12ede656a89c462d$var$IS_WINDOWS) { + // Windows + cmd file + if (this._isCmdFile()) { + cmd += toolPath; + for (const a of args)cmd += ` ${a}`; + } else if (options.windowsVerbatimArguments) { + cmd += `"${toolPath}"`; + for (const a of args)cmd += ` ${a}`; + } else { + cmd += this._windowsQuoteCmdArg(toolPath); + for (const a of args)cmd += ` ${this._windowsQuoteCmdArg(a)}`; } } else { - let isDir = false; - try { - isDir = yield $af24947b224a744f$var$ioUtil.isDirectory(inputPath); - } catch (err) { - // if you try to delete a file that doesn't exist, desired result is achieved - // other errors are valid - if (err.code !== "ENOENT") throw err; - return; - } - if (isDir) yield $af24947b224a744f$var$execFile(`rm`, [ - `-rf`, - `${inputPath}` - ]); - else yield $af24947b224a744f$var$ioUtil.unlink(inputPath); - } - }); -} -module.exports.rmRF = $af24947b224a744f$var$rmRF; -/** - * Make a directory. Creates the full path with folders in between - * Will throw if it fails - * - * @param fsPath path to create - * @returns Promise - */ function $af24947b224a744f$var$mkdirP(fsPath) { - return $af24947b224a744f$var$__awaiter(this, void 0, void 0, function*() { - $kzVu7$assert.ok(fsPath, "a path argument must be provided"); - yield $af24947b224a744f$var$ioUtil.mkdir(fsPath, { - recursive: true - }); - }); -} -module.exports.mkdirP = $af24947b224a744f$var$mkdirP; -/** - * Returns path of a tool had the tool actually been invoked. Resolves via paths. - * If you check and the tool does not exist, it will throw. - * - * @param tool name of the tool - * @param check whether to check if tool exists - * @returns Promise path to tool - */ function $af24947b224a744f$var$which(tool, check) { - return $af24947b224a744f$var$__awaiter(this, void 0, void 0, function*() { - if (!tool) throw new Error("parameter 'tool' is required"); - // recursive when check=true - if (check) { - const result = yield $af24947b224a744f$var$which(tool, false); - if (!result) { - if ($af24947b224a744f$var$ioUtil.IS_WINDOWS) throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`); - else throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`); - } - return result; - } - const matches = yield $af24947b224a744f$var$findInPath(tool); - if (matches && matches.length > 0) return matches[0]; - return ""; - }); -} -module.exports.which = $af24947b224a744f$var$which; -/** - * Returns a list of all occurrences of the given tool on the system path. - * - * @returns Promise the paths of the tool - */ function $af24947b224a744f$var$findInPath(tool) { - return $af24947b224a744f$var$__awaiter(this, void 0, void 0, function*() { - if (!tool) throw new Error("parameter 'tool' is required"); - // build the list of extensions to try - const extensions = []; - if ($af24947b224a744f$var$ioUtil.IS_WINDOWS && process.env["PATHEXT"]) { - for (const extension of process.env["PATHEXT"].split($af24947b224a744f$var$path.delimiter))if (extension) extensions.push(extension); - } - // if it's rooted, return it if exists. otherwise return empty. - if ($af24947b224a744f$var$ioUtil.isRooted(tool)) { - const filePath = yield $af24947b224a744f$var$ioUtil.tryGetExecutablePath(tool, extensions); - if (filePath) return [ - filePath - ]; - return []; - } - // if any path separators, return empty - if (tool.includes($af24947b224a744f$var$path.sep)) return []; - // build the list of directories - // - // Note, technically "where" checks the current directory on Windows. From a toolkit perspective, - // it feels like we should not do this. Checking the current directory seems like more of a use - // case of a shell, and the which() function exposed by the toolkit should strive for consistency - // across platforms. - const directories = []; - if (process.env.PATH) { - for (const p of process.env.PATH.split($af24947b224a744f$var$path.delimiter))if (p) directories.push(p); + // OSX/Linux - this can likely be improved with some form of quoting. + // creating processes on Unix is fundamentally different than Windows. + // on Unix, execvp() takes an arg array. + cmd += toolPath; + for (const a of args)cmd += ` ${a}`; } - // find all matches - const matches = []; - for (const directory of directories){ - const filePath = yield $af24947b224a744f$var$ioUtil.tryGetExecutablePath($af24947b224a744f$var$path.join(directory, tool), extensions); - if (filePath) matches.push(filePath); + return cmd; + } + _processLineBuffer(data, strBuffer, onLine) { + try { + let s = strBuffer + data.toString(); + let n = s.indexOf($12ede656a89c462d$var$os.EOL); + while(n > -1){ + const line = s.substring(0, n); + onLine(line); + // the rest of the string ... + s = s.substring(n + $12ede656a89c462d$var$os.EOL.length); + n = s.indexOf($12ede656a89c462d$var$os.EOL); + } + strBuffer = s; + } catch (err) { + // streaming lines to console is best effort. Don't fail a build. + this._debug(`error processing line. Failed with error ${err}`); } - return matches; - }); -} -module.exports.findInPath = $af24947b224a744f$var$findInPath; -function $af24947b224a744f$var$readCopyOptions(options) { - const force = options.force == null ? true : options.force; - const recursive = Boolean(options.recursive); - const copySourceDirectory = options.copySourceDirectory == null ? true : Boolean(options.copySourceDirectory); - return { - force: force, - recursive: recursive, - copySourceDirectory: copySourceDirectory - }; -} -function $af24947b224a744f$var$cpDirRecursive(sourceDir, destDir, currentDepth, force) { - return $af24947b224a744f$var$__awaiter(this, void 0, void 0, function*() { - // Ensure there is not a run away recursive copy - if (currentDepth >= 255) return; - currentDepth++; - yield $af24947b224a744f$var$mkdirP(destDir); - const files = yield $af24947b224a744f$var$ioUtil.readdir(sourceDir); - for (const fileName of files){ - const srcFile = `${sourceDir}/${fileName}`; - const destFile = `${destDir}/${fileName}`; - const srcFileStat = yield $af24947b224a744f$var$ioUtil.lstat(srcFile); - if (srcFileStat.isDirectory()) // Recurse - yield $af24947b224a744f$var$cpDirRecursive(srcFile, destFile, currentDepth, force); - else yield $af24947b224a744f$var$copyFile(srcFile, destFile, force); + } + _getSpawnFileName() { + if ($12ede656a89c462d$var$IS_WINDOWS) { + if (this._isCmdFile()) return process.env["COMSPEC"] || "cmd.exe"; } - // Change the mode for the newly created directory - yield $af24947b224a744f$var$ioUtil.chmod(destDir, (yield $af24947b224a744f$var$ioUtil.stat(sourceDir)).mode); - }); -} -// Buffered file copy -function $af24947b224a744f$var$copyFile(srcFile, destFile, force) { - return $af24947b224a744f$var$__awaiter(this, void 0, void 0, function*() { - if ((yield $af24947b224a744f$var$ioUtil.lstat(srcFile)).isSymbolicLink()) { - // unlink/re-link it - try { - yield $af24947b224a744f$var$ioUtil.lstat(destFile); - yield $af24947b224a744f$var$ioUtil.unlink(destFile); - } catch (e) { - // Try to override file permission - if (e.code === "EPERM") { - yield $af24947b224a744f$var$ioUtil.chmod(destFile, "0666"); - yield $af24947b224a744f$var$ioUtil.unlink(destFile); + return this.toolPath; + } + _getSpawnArgs(options) { + if ($12ede656a89c462d$var$IS_WINDOWS) { + if (this._isCmdFile()) { + let argline = `/D /S /C "${this._windowsQuoteCmdArg(this.toolPath)}`; + for (const a of this.args){ + argline += " "; + argline += options.windowsVerbatimArguments ? a : this._windowsQuoteCmdArg(a); } - // other errors = it doesn't exist, no work to do + argline += '"'; + return [ + argline + ]; } - // Copy over symlink - const symlinkFull = yield $af24947b224a744f$var$ioUtil.readlink(srcFile); - yield $af24947b224a744f$var$ioUtil.symlink(symlinkFull, destFile, $af24947b224a744f$var$ioUtil.IS_WINDOWS ? "junction" : null); - } else if (!(yield $af24947b224a744f$var$ioUtil.exists(destFile)) || force) yield $af24947b224a744f$var$ioUtil.copyFile(srcFile, destFile); - }); -} - -}); -parcelRequire.register("7O5s8", function(module, exports) { -"use strict"; -var $5af16eb844f2c2d1$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { - enumerable: true, - get: function() { - return m[k]; } - }); -} : function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -}); -var $5af16eb844f2c2d1$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { - enumerable: true, - value: v - }); -} : function(o, v) { - o["default"] = v; -}); -var $5af16eb844f2c2d1$var$__importStar = module.exports && module.exports.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) { - for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $5af16eb844f2c2d1$var$__createBinding(result, mod, k); + return this.args; + } + _endsWith(str, end) { + return str.endsWith(end); + } + _isCmdFile() { + const upperToolPath = this.toolPath.toUpperCase(); + return this._endsWith(upperToolPath, ".CMD") || this._endsWith(upperToolPath, ".BAT"); + } + _windowsQuoteCmdArg(arg) { + // for .exe, apply the normal quoting rules that libuv applies + if (!this._isCmdFile()) return this._uvQuoteCmdArg(arg); + // otherwise apply quoting rules specific to the cmd.exe command line parser. + // the libuv rules are generic and are not designed specifically for cmd.exe + // command line parser. + // + // for a detailed description of the cmd.exe command line parser, refer to + // http://stackoverflow.com/questions/4094699/how-does-the-windows-command-interpreter-cmd-exe-parse-scripts/7970912#7970912 + // need quotes for empty arg + if (!arg) return '""'; + // determine whether the arg needs to be quoted + const cmdSpecialChars = [ + " ", + " ", + "&", + "(", + ")", + "[", + "]", + "{", + "}", + "^", + "=", + ";", + "!", + "'", + "+", + ",", + "`", + "~", + "|", + "<", + ">", + '"' + ]; + let needsQuotes = false; + for (const char of arg)if (cmdSpecialChars.some((x)=>x === char)) { + needsQuotes = true; + break; + } + // short-circuit if quotes not needed + if (!needsQuotes) return arg; + // the following quoting rules are very similar to the rules that by libuv applies. + // + // 1) wrap the string in quotes + // + // 2) double-up quotes - i.e. " => "" + // + // this is different from the libuv quoting rules. libuv replaces " with \", which unfortunately + // doesn't work well with a cmd.exe command line. + // + // note, replacing " with "" also works well if the arg is passed to a downstream .NET console app. + // for example, the command line: + // foo.exe "myarg:""my val""" + // is parsed by a .NET console app into an arg array: + // [ "myarg:\"my val\"" ] + // which is the same end result when applying libuv quoting rules. although the actual + // command line from libuv quoting rules would look like: + // foo.exe "myarg:\"my val\"" + // + // 3) double-up slashes that precede a quote, + // e.g. hello \world => "hello \world" + // hello\"world => "hello\\""world" + // hello\\"world => "hello\\\\""world" + // hello world\ => "hello world\\" + // + // technically this is not required for a cmd.exe command line, or the batch argument parser. + // the reasons for including this as a .cmd quoting rule are: + // + // a) this is optimized for the scenario where the argument is passed from the .cmd file to an + // external program. many programs (e.g. .NET console apps) rely on the slash-doubling rule. + // + // b) it's what we've been doing previously (by deferring to node default behavior) and we + // haven't heard any complaints about that aspect. + // + // note, a weakness of the quoting rules chosen here, is that % is not escaped. in fact, % cannot be + // escaped when used on the command line directly - even though within a .cmd file % can be escaped + // by using %%. + // + // the saving grace is, on the command line, %var% is left as-is if var is not defined. this contrasts + // the line parsing rules within a .cmd file, where if var is not defined it is replaced with nothing. + // + // one option that was explored was replacing % with ^% - i.e. %var% => ^%var^%. this hack would + // often work, since it is unlikely that var^ would exist, and the ^ character is removed when the + // variable is used. the problem, however, is that ^ is not removed when %* is used to pass the args + // to an external program. + // + // an unexplored potential solution for the % escaping problem, is to create a wrapper .cmd file. + // % can be escaped within a .cmd file. + let reverse = '"'; + let quoteHit = true; + for(let i = arg.length; i > 0; i--){ + // walk the string in reverse + reverse += arg[i - 1]; + if (quoteHit && arg[i - 1] === "\\") reverse += "\\"; // double the slash + else if (arg[i - 1] === '"') { + quoteHit = true; + reverse += '"'; // double the quote + } else quoteHit = false; + } + reverse += '"'; + return reverse.split("").reverse().join(""); + } + _uvQuoteCmdArg(arg) { + // Tool runner wraps child_process.spawn() and needs to apply the same quoting as + // Node in certain cases where the undocumented spawn option windowsVerbatimArguments + // is used. + // + // Since this function is a port of quote_cmd_arg from Node 4.x (technically, lib UV, + // see https://github.com/nodejs/node/blob/v4.x/deps/uv/src/win/process.c for details), + // pasting copyright notice from Node within this function: + // + // Copyright Joyent, Inc. and other Node contributors. All rights reserved. + // + // Permission is hereby granted, free of charge, to any person obtaining a copy + // of this software and associated documentation files (the "Software"), to + // deal in the Software without restriction, including without limitation the + // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + // sell copies of the Software, and to permit persons to whom the Software is + // furnished to do so, subject to the following conditions: + // + // The above copyright notice and this permission notice shall be included in + // all copies or substantial portions of the Software. + // + // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + // IN THE SOFTWARE. + if (!arg) // Need double quotation for empty argument + return '""'; + if (!arg.includes(" ") && !arg.includes(" ") && !arg.includes('"')) // No quotation needed + return arg; + if (!arg.includes('"') && !arg.includes("\\")) // No embedded double quotes or backslashes, so I can just wrap + // quote marks around the whole thing. + return `"${arg}"`; + // Expected input/output: + // input : hello"world + // output: "hello\"world" + // input : hello""world + // output: "hello\"\"world" + // input : hello\world + // output: hello\world + // input : hello\\world + // output: hello\\world + // input : hello\"world + // output: "hello\\\"world" + // input : hello\\"world + // output: "hello\\\\\"world" + // input : hello world\ + // output: "hello world\\" - note the comment in libuv actually reads "hello world\" + // but it appears the comment is wrong, it should be "hello world\\" + let reverse = '"'; + let quoteHit = true; + for(let i = arg.length; i > 0; i--){ + // walk the string in reverse + reverse += arg[i - 1]; + if (quoteHit && arg[i - 1] === "\\") reverse += "\\"; + else if (arg[i - 1] === '"') { + quoteHit = true; + reverse += "\\"; + } else quoteHit = false; + } + reverse += '"'; + return reverse.split("").reverse().join(""); } - $5af16eb844f2c2d1$var$__setModuleDefault(result, mod); - return result; -}; -var $5af16eb844f2c2d1$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); + _cloneExecOptions(options) { + options = options || {}; + const result = { + cwd: options.cwd || process.cwd(), + env: options.env || process.env, + silent: options.silent || false, + windowsVerbatimArguments: options.windowsVerbatimArguments || false, + failOnStdErr: options.failOnStdErr || false, + ignoreReturnCode: options.ignoreReturnCode || false, + delay: options.delay || 10000 + }; + result.outStream = options.outStream || process.stdout; + result.errStream = options.errStream || process.stderr; + return result; + } + _getSpawnOptions(options, toolPath) { + options = options || {}; + const result = {}; + result.cwd = options.cwd; + result.env = options.env; + result["windowsVerbatimArguments"] = options.windowsVerbatimArguments || this._isCmdFile(); + if (options.windowsVerbatimArguments) result.argv0 = `"${toolPath}"`; + return result; + } + /** + * Exec a tool. + * Output will be streamed to the live console. + * Returns promise with return code + * + * @param tool path to tool to exec + * @param options optional exec options. See ExecOptions + * @returns number + */ exec() { + return $12ede656a89c462d$var$__awaiter(this, void 0, void 0, function*() { + // root the tool path if it is unrooted and contains relative pathing + if (!$12ede656a89c462d$var$ioUtil.isRooted(this.toolPath) && (this.toolPath.includes("/") || $12ede656a89c462d$var$IS_WINDOWS && this.toolPath.includes("\\"))) // prefer options.cwd if it is specified, however options.cwd may also need to be rooted + this.toolPath = $12ede656a89c462d$var$path.resolve(process.cwd(), this.options.cwd || process.cwd(), this.toolPath); + // if the tool is only a file name, then resolve it from the PATH + // otherwise verify it exists (add extension on Windows if necessary) + this.toolPath = yield $12ede656a89c462d$var$io.which(this.toolPath, true); + return new Promise((resolve, reject)=>{ + this._debug(`exec tool: ${this.toolPath}`); + this._debug("arguments:"); + for (const arg of this.args)this._debug(` ${arg}`); + const optionsNonNull = this._cloneExecOptions(this.options); + if (!optionsNonNull.silent && optionsNonNull.outStream) optionsNonNull.outStream.write(this._getCommandString(optionsNonNull) + $12ede656a89c462d$var$os.EOL); + const state = new $12ede656a89c462d$var$ExecState(optionsNonNull, this.toolPath); + state.on("debug", (message)=>{ + this._debug(message); + }); + const fileName = this._getSpawnFileName(); + const cp = $12ede656a89c462d$var$child.spawn(fileName, this._getSpawnArgs(optionsNonNull), this._getSpawnOptions(this.options, fileName)); + const stdbuffer = ""; + if (cp.stdout) cp.stdout.on("data", (data)=>{ + if (this.options.listeners && this.options.listeners.stdout) this.options.listeners.stdout(data); + if (!optionsNonNull.silent && optionsNonNull.outStream) optionsNonNull.outStream.write(data); + this._processLineBuffer(data, stdbuffer, (line)=>{ + if (this.options.listeners && this.options.listeners.stdline) this.options.listeners.stdline(line); + }); + }); + const errbuffer = ""; + if (cp.stderr) cp.stderr.on("data", (data)=>{ + state.processStderr = true; + if (this.options.listeners && this.options.listeners.stderr) this.options.listeners.stderr(data); + if (!optionsNonNull.silent && optionsNonNull.errStream && optionsNonNull.outStream) { + const s = optionsNonNull.failOnStdErr ? optionsNonNull.errStream : optionsNonNull.outStream; + s.write(data); + } + this._processLineBuffer(data, errbuffer, (line)=>{ + if (this.options.listeners && this.options.listeners.errline) this.options.listeners.errline(line); + }); + }); + cp.on("error", (err)=>{ + state.processError = err.message; + state.processExited = true; + state.processClosed = true; + state.CheckComplete(); + }); + cp.on("exit", (code)=>{ + state.processExitCode = code; + state.processExited = true; + this._debug(`Exit code ${code} received from tool '${this.toolPath}'`); + state.CheckComplete(); + }); + cp.on("close", (code)=>{ + state.processExitCode = code; + state.processExited = true; + state.processClosed = true; + this._debug(`STDIO streams have closed for tool '${this.toolPath}'`); + state.CheckComplete(); + }); + state.on("done", (error, exitCode)=>{ + if (stdbuffer.length > 0) this.emit("stdline", stdbuffer); + if (errbuffer.length > 0) this.emit("errline", errbuffer); + cp.removeAllListeners(); + if (error) reject(error); + else resolve(exitCode); + }); + if (this.options.input) { + if (!cp.stdin) throw new Error("child process missing stdin"); + cp.stdin.end(this.options.input); + } + }); }); } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var $5af16eb844f2c2d1$var$_a; -Object.defineProperty(module.exports, "__esModule", { - value: true -}); -module.exports.getCmdPath = module.exports.tryGetExecutablePath = module.exports.isRooted = module.exports.isDirectory = module.exports.exists = module.exports.IS_WINDOWS = module.exports.unlink = module.exports.symlink = module.exports.stat = module.exports.rmdir = module.exports.rename = module.exports.readlink = module.exports.readdir = module.exports.mkdir = module.exports.lstat = module.exports.copyFile = module.exports.chmod = void 0; - -const $5af16eb844f2c2d1$var$fs = $5af16eb844f2c2d1$var$__importStar($kzVu7$fs); - -const $5af16eb844f2c2d1$var$path = $5af16eb844f2c2d1$var$__importStar($kzVu7$path); -$5af16eb844f2c2d1$var$_a = $5af16eb844f2c2d1$var$fs.promises, module.exports.chmod = $5af16eb844f2c2d1$var$_a.chmod, module.exports.copyFile = $5af16eb844f2c2d1$var$_a.copyFile, module.exports.lstat = $5af16eb844f2c2d1$var$_a.lstat, module.exports.mkdir = $5af16eb844f2c2d1$var$_a.mkdir, module.exports.readdir = $5af16eb844f2c2d1$var$_a.readdir, module.exports.readlink = $5af16eb844f2c2d1$var$_a.readlink, module.exports.rename = $5af16eb844f2c2d1$var$_a.rename, module.exports.rmdir = $5af16eb844f2c2d1$var$_a.rmdir, module.exports.stat = $5af16eb844f2c2d1$var$_a.stat, module.exports.symlink = $5af16eb844f2c2d1$var$_a.symlink, module.exports.unlink = $5af16eb844f2c2d1$var$_a.unlink; -module.exports.IS_WINDOWS = process.platform === "win32"; -function $5af16eb844f2c2d1$var$exists(fsPath) { - return $5af16eb844f2c2d1$var$__awaiter(this, void 0, void 0, function*() { - try { - yield module.exports.stat(fsPath); - } catch (err) { - if (err.code === "ENOENT") return false; - throw err; - } - return true; - }); -} -module.exports.exists = $5af16eb844f2c2d1$var$exists; -function $5af16eb844f2c2d1$var$isDirectory(fsPath, useStat = false) { - return $5af16eb844f2c2d1$var$__awaiter(this, void 0, void 0, function*() { - const stats = useStat ? yield module.exports.stat(fsPath) : yield module.exports.lstat(fsPath); - return stats.isDirectory(); - }); -} -module.exports.isDirectory = $5af16eb844f2c2d1$var$isDirectory; -/** - * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like: - * \, \hello, \\hello\share, C:, and C:\hello (and corresponding alternate separator cases). - */ function $5af16eb844f2c2d1$var$isRooted(p) { - p = $5af16eb844f2c2d1$var$normalizeSeparators(p); - if (!p) throw new Error('isRooted() parameter "p" cannot be empty'); - if (module.exports.IS_WINDOWS) return p.startsWith("\\") || /^[A-Z]:/i.test(p) // e.g. \ or \hello or \\hello - ; // e.g. C: or C:\hello - return p.startsWith("/"); } -module.exports.isRooted = $5af16eb844f2c2d1$var$isRooted; +module.exports.ToolRunner = $12ede656a89c462d$var$ToolRunner; /** - * Best effort attempt to determine whether a file exists and is executable. - * @param filePath file path to check - * @param extensions additional file extensions to try - * @return if file exists and is executable, returns the file path. otherwise empty string. - */ function $5af16eb844f2c2d1$var$tryGetExecutablePath(filePath, extensions) { - return $5af16eb844f2c2d1$var$__awaiter(this, void 0, void 0, function*() { - let stats = undefined; - try { - // test file exists - stats = yield module.exports.stat(filePath); - } catch (err) { - if (err.code !== "ENOENT") // eslint-disable-next-line no-console - console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); + * Convert an arg string to an array of args. Handles escaping + * + * @param argString string of arguments + * @returns string[] array of arguments + */ function $12ede656a89c462d$var$argStringToArray(argString) { + const args = []; + let inQuotes = false; + let escaped = false; + let arg = ""; + function append(c) { + // we only escape double quotes. + if (escaped && c !== '"') arg += "\\"; + arg += c; + escaped = false; + } + for(let i = 0; i < argString.length; i++){ + const c = argString.charAt(i); + if (c === '"') { + if (!escaped) inQuotes = !inQuotes; + else append(c); + continue; } - if (stats && stats.isFile()) { - if (module.exports.IS_WINDOWS) { - // on Windows, test for valid extension - const upperExt = $5af16eb844f2c2d1$var$path.extname(filePath).toUpperCase(); - if (extensions.some((validExt)=>validExt.toUpperCase() === upperExt)) return filePath; - } else { - if ($5af16eb844f2c2d1$var$isUnixExecutable(stats)) return filePath; - } + if (c === "\\" && escaped) { + append(c); + continue; } - // try each extension - const originalFilePath = filePath; - for (const extension of extensions){ - filePath = originalFilePath + extension; - stats = undefined; - try { - stats = yield module.exports.stat(filePath); - } catch (err) { - if (err.code !== "ENOENT") // eslint-disable-next-line no-console - console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); - } - if (stats && stats.isFile()) { - if (module.exports.IS_WINDOWS) { - // preserve the case of the actual file (since an extension was appended) - try { - const directory = $5af16eb844f2c2d1$var$path.dirname(filePath); - const upperName = $5af16eb844f2c2d1$var$path.basename(filePath).toUpperCase(); - for (const actualName of yield module.exports.readdir(directory))if (upperName === actualName.toUpperCase()) { - filePath = $5af16eb844f2c2d1$var$path.join(directory, actualName); - break; - } - } catch (err) { - // eslint-disable-next-line no-console - console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`); - } - return filePath; - } else { - if ($5af16eb844f2c2d1$var$isUnixExecutable(stats)) return filePath; - } + if (c === "\\" && inQuotes) { + escaped = true; + continue; + } + if (c === " " && !inQuotes) { + if (arg.length > 0) { + args.push(arg); + arg = ""; } + continue; } - return ""; - }); -} -module.exports.tryGetExecutablePath = $5af16eb844f2c2d1$var$tryGetExecutablePath; -function $5af16eb844f2c2d1$var$normalizeSeparators(p) { - p = p || ""; - if (module.exports.IS_WINDOWS) { - // convert slashes on Windows - p = p.replace(/\//g, "\\"); - // remove redundant slashes - return p.replace(/\\\\+/g, "\\"); + append(c); } - // remove redundant slashes - return p.replace(/\/\/+/g, "/"); -} -// on Mac/Linux, test the execute bit -// R W X R W X R W X -// 256 128 64 32 16 8 4 2 1 -function $5af16eb844f2c2d1$var$isUnixExecutable(stats) { - return (stats.mode & 1) > 0 || (stats.mode & 8) > 0 && stats.gid === process.getgid() || (stats.mode & 64) > 0 && stats.uid === process.getuid(); + if (arg.length > 0) args.push(arg.trim()); + return args; } -// Get the path of cmd.exe in windows -function $5af16eb844f2c2d1$var$getCmdPath() { - var _a; - return (_a = process.env["COMSPEC"]) !== null && _a !== void 0 ? _a : `cmd.exe`; +module.exports.argStringToArray = $12ede656a89c462d$var$argStringToArray; +class $12ede656a89c462d$var$ExecState extends $12ede656a89c462d$var$events.EventEmitter { + constructor(options, toolPath){ + super(); + this.processClosed = false; // tracks whether the process has exited and stdio is closed + this.processError = ""; + this.processExitCode = 0; + this.processExited = false; // tracks whether the process has exited + this.processStderr = false; // tracks whether stderr was written to + this.delay = 10000; // 10 seconds + this.done = false; + this.timeout = null; + if (!toolPath) throw new Error("toolPath must not be empty"); + this.options = options; + this.toolPath = toolPath; + if (options.delay) this.delay = options.delay; + } + CheckComplete() { + if (this.done) return; + if (this.processClosed) this._setResult(); + else if (this.processExited) this.timeout = setTimeout($12ede656a89c462d$var$ExecState.HandleTimeout, this.delay, this); + } + _debug(message) { + this.emit("debug", message); + } + _setResult() { + // determine whether there is an error + let error; + if (this.processExited) { + if (this.processError) error = new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`); + else if (this.processExitCode !== 0 && !this.options.ignoreReturnCode) error = new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`); + else if (this.processStderr && this.options.failOnStdErr) error = new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`); + } + // clear the timeout + if (this.timeout) { + clearTimeout(this.timeout); + this.timeout = null; + } + this.done = true; + this.emit("done", error, this.processExitCode); + } + static HandleTimeout(state) { + if (state.done) return; + if (!state.processClosed && state.processExited) { + const message = `The STDIO streams did not close within ${state.delay / 1000} seconds of the exit event from process '${state.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`; + state._debug(message); + } + state._setResult(); + } } -module.exports.getCmdPath = $5af16eb844f2c2d1$var$getCmdPath; }); - - -parcelRequire.register("2RdqV", function(module, exports) { +parcelRequire.register("43Rhh", function(module, exports) { "use strict"; -var $214af3997ccafa11$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { - enumerable: true, - get: function() { - return m[k]; - } - }); -} : function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -}); -var $214af3997ccafa11$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { - enumerable: true, - value: v - }); -} : function(o, v) { - o["default"] = v; -}); -var $214af3997ccafa11$var$__importStar = module.exports && module.exports.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) { - for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $214af3997ccafa11$var$__createBinding(result, mod, k); - } - $214af3997ccafa11$var$__setModuleDefault(result, mod); - return result; -}; -var $214af3997ccafa11$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { +var $2f50c51a8ab24bc8$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve) { resolve(value); @@ -5372,1239 +4759,1629 @@ var $214af3997ccafa11$var$__awaiter = module.exports && module.exports.__awaiter step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; +var $2f50c51a8ab24bc8$var$__importStar = module.exports && module.exports.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for(var k in mod)if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; + } + result["default"] = mod; + return result; +}; Object.defineProperty(module.exports, "__esModule", { value: true }); -module.exports._readLinuxVersionFile = module.exports._getOsVersion = module.exports._findMatch = void 0; - -const $214af3997ccafa11$var$semver = $214af3997ccafa11$var$__importStar((parcelRequire("8RVvw"))); -var $9Gi2U = parcelRequire("9Gi2U"); +const $2f50c51a8ab24bc8$var$childProcess = $2f50c51a8ab24bc8$var$__importStar($bknAJ$child_process); +const $2f50c51a8ab24bc8$var$path = $2f50c51a8ab24bc8$var$__importStar($bknAJ$path); -function $214af3997ccafa11$var$_findMatch(versionSpec, stable, candidates, archFilter) { - return $214af3997ccafa11$var$__awaiter(this, void 0, void 0, function*() { - const platFilter = $kzVu7$os.platform(); - let result; - let match; - let file; - for (const candidate of candidates){ - const version = candidate.version; - $9Gi2U.debug(`check ${version} satisfies ${versionSpec}`); - if ($214af3997ccafa11$var$semver.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) { - file = candidate.files.find((item)=>{ - $9Gi2U.debug(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`); - let chk = item.arch === archFilter && item.platform === platFilter; - if (chk && item.platform_version) { - const osVersion = module.exports._getOsVersion(); - if (osVersion === item.platform_version) chk = true; - else chk = $214af3997ccafa11$var$semver.satisfies(osVersion, item.platform_version); - } - return chk; - }); - if (file) { - $9Gi2U.debug(`matched ${candidate.version}`); - match = candidate; - break; - } - } - } - if (match && file) { - // clone since we're mutating the file list to be only the file that matches - result = Object.assign({}, match); - result.files = [ - file - ]; +const $2f50c51a8ab24bc8$var$ioUtil = $2f50c51a8ab24bc8$var$__importStar((parcelRequire("b4kaZ"))); +const $2f50c51a8ab24bc8$var$exec = $bknAJ$util.promisify($2f50c51a8ab24bc8$var$childProcess.exec); +/** + * Copies a file or folder. + * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js + * + * @param source source path + * @param dest destination path + * @param options optional. See CopyOptions. + */ function $2f50c51a8ab24bc8$var$cp(source, dest, options = {}) { + return $2f50c51a8ab24bc8$var$__awaiter(this, void 0, void 0, function*() { + const { force: force, recursive: recursive } = $2f50c51a8ab24bc8$var$readCopyOptions(options); + const destStat = (yield $2f50c51a8ab24bc8$var$ioUtil.exists(dest)) ? yield $2f50c51a8ab24bc8$var$ioUtil.stat(dest) : null; + // Dest is an existing file, but not forcing + if (destStat && destStat.isFile() && !force) return; + // If dest is an existing directory, should copy inside. + const newDest = destStat && destStat.isDirectory() ? $2f50c51a8ab24bc8$var$path.join(dest, $2f50c51a8ab24bc8$var$path.basename(source)) : dest; + if (!(yield $2f50c51a8ab24bc8$var$ioUtil.exists(source))) throw new Error(`no such file or directory: ${source}`); + const sourceStat = yield $2f50c51a8ab24bc8$var$ioUtil.stat(source); + if (sourceStat.isDirectory()) { + if (!recursive) throw new Error(`Failed to copy. ${source} is a directory, but tried to copy without recursive flag.`); + else yield $2f50c51a8ab24bc8$var$cpDirRecursive(source, newDest, 0, force); + } else { + if ($2f50c51a8ab24bc8$var$path.relative(source, newDest) === "") // a file cannot be copied to itself + throw new Error(`'${newDest}' and '${source}' are the same file`); + yield $2f50c51a8ab24bc8$var$copyFile(source, newDest, force); } - return result; }); } -module.exports._findMatch = $214af3997ccafa11$var$_findMatch; -function $214af3997ccafa11$var$_getOsVersion() { - // TODO: add windows and other linux, arm variants - // right now filtering on version is only an ubuntu and macos scenario for tools we build for hosted (python) - const plat = $kzVu7$os.platform(); - let version = ""; - if (plat === "darwin") version = $kzVu7$child_process.execSync("sw_vers -productVersion").toString(); - else if (plat === "linux") { - // lsb_release process not in some containers, readfile - // Run cat /etc/lsb-release - // DISTRIB_ID=Ubuntu - // DISTRIB_RELEASE=18.04 - // DISTRIB_CODENAME=bionic - // DISTRIB_DESCRIPTION="Ubuntu 18.04.4 LTS" - const lsbContents = module.exports._readLinuxVersionFile(); - if (lsbContents) { - const lines = lsbContents.split("\n"); - for (const line of lines){ - const parts = line.split("="); - if (parts.length === 2 && (parts[0].trim() === "VERSION_ID" || parts[0].trim() === "DISTRIB_RELEASE")) { - version = parts[1].trim().replace(/^"/, "").replace(/"$/, ""); - break; - } +module.exports.cp = $2f50c51a8ab24bc8$var$cp; +/** + * Moves a path. + * + * @param source source path + * @param dest destination path + * @param options optional. See MoveOptions. + */ function $2f50c51a8ab24bc8$var$mv(source, dest, options = {}) { + return $2f50c51a8ab24bc8$var$__awaiter(this, void 0, void 0, function*() { + if (yield $2f50c51a8ab24bc8$var$ioUtil.exists(dest)) { + let destExists = true; + if (yield $2f50c51a8ab24bc8$var$ioUtil.isDirectory(dest)) { + // If dest is directory copy src into dest + dest = $2f50c51a8ab24bc8$var$path.join(dest, $2f50c51a8ab24bc8$var$path.basename(source)); + destExists = yield $2f50c51a8ab24bc8$var$ioUtil.exists(dest); + } + if (destExists) { + if (options.force == null || options.force) yield $2f50c51a8ab24bc8$var$rmRF(dest); + else throw new Error("Destination already exists"); } } - } - return version; -} -module.exports._getOsVersion = $214af3997ccafa11$var$_getOsVersion; -function $214af3997ccafa11$var$_readLinuxVersionFile() { - const lsbReleaseFile = "/etc/lsb-release"; - const osReleaseFile = "/etc/os-release"; - let contents = ""; - if ($kzVu7$fs.existsSync(lsbReleaseFile)) contents = $kzVu7$fs.readFileSync(lsbReleaseFile).toString(); - else if ($kzVu7$fs.existsSync(osReleaseFile)) contents = $kzVu7$fs.readFileSync(osReleaseFile).toString(); - return contents; -} -module.exports._readLinuxVersionFile = $214af3997ccafa11$var$_readLinuxVersionFile; - -}); -parcelRequire.register("8RVvw", function(module, exports) { -exports = module.exports = SemVer; -var debug; -/* istanbul ignore next */ if (typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG)) debug = function() { - var args = Array.prototype.slice.call(arguments, 0); - args.unshift("SEMVER"); - console.log.apply(console, args); -}; -else debug = function() {}; -// Note: this is the semver.org version of the spec that it implements -// Not necessarily the package version of this code. -exports.SEMVER_SPEC_VERSION = "2.0.0"; -var MAX_LENGTH = 256; -var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ 9007199254740991; -// Max safe segment length for coercion. -var MAX_SAFE_COMPONENT_LENGTH = 16; -// The actual regexps go on exports.re -var re = exports.re = []; -var src = exports.src = []; -var t = exports.tokens = {}; -var R = 0; -function tok(n) { - t[n] = R++; + yield $2f50c51a8ab24bc8$var$mkdirP($2f50c51a8ab24bc8$var$path.dirname(dest)); + yield $2f50c51a8ab24bc8$var$ioUtil.rename(source, dest); + }); } -// The following Regular Expressions can be used for tokenizing, -// validating, and parsing SemVer version strings. -// ## Numeric Identifier -// A single `0`, or a non-zero digit followed by zero or more digits. -tok("NUMERICIDENTIFIER"); -src[t.NUMERICIDENTIFIER] = "0|[1-9]\\d*"; -tok("NUMERICIDENTIFIERLOOSE"); -src[t.NUMERICIDENTIFIERLOOSE] = "[0-9]+"; -// ## Non-numeric Identifier -// Zero or more digits, followed by a letter or hyphen, and then zero or -// more letters, digits, or hyphens. -tok("NONNUMERICIDENTIFIER"); -src[t.NONNUMERICIDENTIFIER] = "\\d*[a-zA-Z-][a-zA-Z0-9-]*"; -// ## Main Version -// Three dot-separated numeric identifiers. -tok("MAINVERSION"); -src[t.MAINVERSION] = "(" + src[t.NUMERICIDENTIFIER] + ")\\." + "(" + src[t.NUMERICIDENTIFIER] + ")\\." + "(" + src[t.NUMERICIDENTIFIER] + ")"; -tok("MAINVERSIONLOOSE"); -src[t.MAINVERSIONLOOSE] = "(" + src[t.NUMERICIDENTIFIERLOOSE] + ")\\." + "(" + src[t.NUMERICIDENTIFIERLOOSE] + ")\\." + "(" + src[t.NUMERICIDENTIFIERLOOSE] + ")"; -// ## Pre-release Version Identifier -// A numeric identifier, or a non-numeric identifier. -tok("PRERELEASEIDENTIFIER"); -src[t.PRERELEASEIDENTIFIER] = "(?:" + src[t.NUMERICIDENTIFIER] + "|" + src[t.NONNUMERICIDENTIFIER] + ")"; -tok("PRERELEASEIDENTIFIERLOOSE"); -src[t.PRERELEASEIDENTIFIERLOOSE] = "(?:" + src[t.NUMERICIDENTIFIERLOOSE] + "|" + src[t.NONNUMERICIDENTIFIER] + ")"; -// ## Pre-release Version -// Hyphen, followed by one or more dot-separated pre-release version -// identifiers. -tok("PRERELEASE"); -src[t.PRERELEASE] = "(?:-(" + src[t.PRERELEASEIDENTIFIER] + "(?:\\." + src[t.PRERELEASEIDENTIFIER] + ")*))"; -tok("PRERELEASELOOSE"); -src[t.PRERELEASELOOSE] = "(?:-?(" + src[t.PRERELEASEIDENTIFIERLOOSE] + "(?:\\." + src[t.PRERELEASEIDENTIFIERLOOSE] + ")*))"; -// ## Build Metadata Identifier -// Any combination of digits, letters, or hyphens. -tok("BUILDIDENTIFIER"); -src[t.BUILDIDENTIFIER] = "[0-9A-Za-z-]+"; -// ## Build Metadata -// Plus sign, followed by one or more period-separated build metadata -// identifiers. -tok("BUILD"); -src[t.BUILD] = "(?:\\+(" + src[t.BUILDIDENTIFIER] + "(?:\\." + src[t.BUILDIDENTIFIER] + ")*))"; -// ## Full Version String -// A main version, followed optionally by a pre-release version and -// build metadata. -// Note that the only major, minor, patch, and pre-release sections of -// the version string are capturing groups. The build metadata is not a -// capturing group, because it should not ever be used in version -// comparison. -tok("FULL"); -tok("FULLPLAIN"); -src[t.FULLPLAIN] = "v?" + src[t.MAINVERSION] + src[t.PRERELEASE] + "?" + src[t.BUILD] + "?"; -src[t.FULL] = "^" + src[t.FULLPLAIN] + "$"; -// like full, but allows v1.2.3 and =1.2.3, which people do sometimes. -// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty -// common in the npm registry. -tok("LOOSEPLAIN"); -src[t.LOOSEPLAIN] = "[v=\\s]*" + src[t.MAINVERSIONLOOSE] + src[t.PRERELEASELOOSE] + "?" + src[t.BUILD] + "?"; -tok("LOOSE"); -src[t.LOOSE] = "^" + src[t.LOOSEPLAIN] + "$"; -tok("GTLT"); -src[t.GTLT] = "((?:<|>)?=?)"; -// Something like "2.*" or "1.2.x". -// Note that "x.x" is a valid xRange identifer, meaning "any version" -// Only the first item is strictly required. -tok("XRANGEIDENTIFIERLOOSE"); -src[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + "|x|X|\\*"; -tok("XRANGEIDENTIFIER"); -src[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + "|x|X|\\*"; -tok("XRANGEPLAIN"); -src[t.XRANGEPLAIN] = "[v=\\s]*(" + src[t.XRANGEIDENTIFIER] + ")" + "(?:\\.(" + src[t.XRANGEIDENTIFIER] + ")" + "(?:\\.(" + src[t.XRANGEIDENTIFIER] + ")" + "(?:" + src[t.PRERELEASE] + ")?" + src[t.BUILD] + "?" + ")?)?"; -tok("XRANGEPLAINLOOSE"); -src[t.XRANGEPLAINLOOSE] = "[v=\\s]*(" + src[t.XRANGEIDENTIFIERLOOSE] + ")" + "(?:\\.(" + src[t.XRANGEIDENTIFIERLOOSE] + ")" + "(?:\\.(" + src[t.XRANGEIDENTIFIERLOOSE] + ")" + "(?:" + src[t.PRERELEASELOOSE] + ")?" + src[t.BUILD] + "?" + ")?)?"; -tok("XRANGE"); -src[t.XRANGE] = "^" + src[t.GTLT] + "\\s*" + src[t.XRANGEPLAIN] + "$"; -tok("XRANGELOOSE"); -src[t.XRANGELOOSE] = "^" + src[t.GTLT] + "\\s*" + src[t.XRANGEPLAINLOOSE] + "$"; -// Coercion. -// Extract anything that could conceivably be a part of a valid semver -tok("COERCE"); -src[t.COERCE] = "(^|[^\\d])(\\d{1," + MAX_SAFE_COMPONENT_LENGTH + "})" + "(?:\\.(\\d{1," + MAX_SAFE_COMPONENT_LENGTH + "}))?" + "(?:\\.(\\d{1," + MAX_SAFE_COMPONENT_LENGTH + "}))?" + "(?:$|[^\\d])"; -tok("COERCERTL"); -re[t.COERCERTL] = new RegExp(src[t.COERCE], "g"); -// Tilde ranges. -// Meaning is "reasonably at or greater than" -tok("LONETILDE"); -src[t.LONETILDE] = "(?:~>?)"; -tok("TILDETRIM"); -src[t.TILDETRIM] = "(\\s*)" + src[t.LONETILDE] + "\\s+"; -re[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], "g"); -var tildeTrimReplace = "$1~"; -tok("TILDE"); -src[t.TILDE] = "^" + src[t.LONETILDE] + src[t.XRANGEPLAIN] + "$"; -tok("TILDELOOSE"); -src[t.TILDELOOSE] = "^" + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + "$"; -// Caret ranges. -// Meaning is "at least and backwards compatible with" -tok("LONECARET"); -src[t.LONECARET] = "(?:\\^)"; -tok("CARETTRIM"); -src[t.CARETTRIM] = "(\\s*)" + src[t.LONECARET] + "\\s+"; -re[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], "g"); -var caretTrimReplace = "$1^"; -tok("CARET"); -src[t.CARET] = "^" + src[t.LONECARET] + src[t.XRANGEPLAIN] + "$"; -tok("CARETLOOSE"); -src[t.CARETLOOSE] = "^" + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + "$"; -// A simple gt/lt/eq thing, or just "" to indicate "any version" -tok("COMPARATORLOOSE"); -src[t.COMPARATORLOOSE] = "^" + src[t.GTLT] + "\\s*(" + src[t.LOOSEPLAIN] + ")$|^$"; -tok("COMPARATOR"); -src[t.COMPARATOR] = "^" + src[t.GTLT] + "\\s*(" + src[t.FULLPLAIN] + ")$|^$"; -// An expression to strip any whitespace between the gtlt and the thing -// it modifies, so that `> 1.2.3` ==> `>1.2.3` -tok("COMPARATORTRIM"); -src[t.COMPARATORTRIM] = "(\\s*)" + src[t.GTLT] + "\\s*(" + src[t.LOOSEPLAIN] + "|" + src[t.XRANGEPLAIN] + ")"; -// this one has to use the /g flag -re[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], "g"); -var comparatorTrimReplace = "$1$2$3"; -// Something like `1.2.3 - 1.2.4` -// Note that these all use the loose form, because they'll be -// checked against either the strict or loose comparator form -// later. -tok("HYPHENRANGE"); -src[t.HYPHENRANGE] = "^\\s*(" + src[t.XRANGEPLAIN] + ")" + "\\s+-\\s+" + "(" + src[t.XRANGEPLAIN] + ")" + "\\s*$"; -tok("HYPHENRANGELOOSE"); -src[t.HYPHENRANGELOOSE] = "^\\s*(" + src[t.XRANGEPLAINLOOSE] + ")" + "\\s+-\\s+" + "(" + src[t.XRANGEPLAINLOOSE] + ")" + "\\s*$"; -// Star ranges basically just allow anything at all. -tok("STAR"); -src[t.STAR] = "(<|>)?=?\\s*\\*"; -// Compile to actual regexp objects. -// All are flag-free, unless they were created above with a flag. -for(var i = 0; i < R; i++){ - debug(i, src[i]); - if (!re[i]) re[i] = new RegExp(src[i]); +module.exports.mv = $2f50c51a8ab24bc8$var$mv; +/** + * Remove a path recursively with force + * + * @param inputPath path to remove + */ function $2f50c51a8ab24bc8$var$rmRF(inputPath) { + return $2f50c51a8ab24bc8$var$__awaiter(this, void 0, void 0, function*() { + if ($2f50c51a8ab24bc8$var$ioUtil.IS_WINDOWS) { + // Node doesn't provide a delete operation, only an unlink function. This means that if the file is being used by another + // program (e.g. antivirus), it won't be deleted. To address this, we shell out the work to rd/del. + try { + if (yield $2f50c51a8ab24bc8$var$ioUtil.isDirectory(inputPath, true)) yield $2f50c51a8ab24bc8$var$exec(`rd /s /q "${inputPath}"`); + else yield $2f50c51a8ab24bc8$var$exec(`del /f /a "${inputPath}"`); + } catch (err) { + // if you try to delete a file that doesn't exist, desired result is achieved + // other errors are valid + if (err.code !== "ENOENT") throw err; + } + // Shelling out fails to remove a symlink folder with missing source, this unlink catches that + try { + yield $2f50c51a8ab24bc8$var$ioUtil.unlink(inputPath); + } catch (err) { + // if you try to delete a file that doesn't exist, desired result is achieved + // other errors are valid + if (err.code !== "ENOENT") throw err; + } + } else { + let isDir = false; + try { + isDir = yield $2f50c51a8ab24bc8$var$ioUtil.isDirectory(inputPath); + } catch (err) { + // if you try to delete a file that doesn't exist, desired result is achieved + // other errors are valid + if (err.code !== "ENOENT") throw err; + return; + } + if (isDir) yield $2f50c51a8ab24bc8$var$exec(`rm -rf "${inputPath}"`); + else yield $2f50c51a8ab24bc8$var$ioUtil.unlink(inputPath); + } + }); } -exports.parse = parse; -function parse(version, options) { - if (!options || typeof options !== "object") options = { - loose: !!options, - includePrerelease: false - }; - if (version instanceof SemVer) return version; - if (typeof version !== "string") return null; - if (version.length > MAX_LENGTH) return null; - var r = options.loose ? re[t.LOOSE] : re[t.FULL]; - if (!r.test(version)) return null; - try { - return new SemVer(version, options); - } catch (er) { - return null; - } +module.exports.rmRF = $2f50c51a8ab24bc8$var$rmRF; +/** + * Make a directory. Creates the full path with folders in between + * Will throw if it fails + * + * @param fsPath path to create + * @returns Promise + */ function $2f50c51a8ab24bc8$var$mkdirP(fsPath) { + return $2f50c51a8ab24bc8$var$__awaiter(this, void 0, void 0, function*() { + yield $2f50c51a8ab24bc8$var$ioUtil.mkdirP(fsPath); + }); } -exports.valid = valid; -function valid(version, options) { - var v = parse(version, options); - return v ? v.version : null; +module.exports.mkdirP = $2f50c51a8ab24bc8$var$mkdirP; +/** + * Returns path of a tool had the tool actually been invoked. Resolves via paths. + * If you check and the tool does not exist, it will throw. + * + * @param tool name of the tool + * @param check whether to check if tool exists + * @returns Promise path to tool + */ function $2f50c51a8ab24bc8$var$which(tool, check) { + return $2f50c51a8ab24bc8$var$__awaiter(this, void 0, void 0, function*() { + if (!tool) throw new Error("parameter 'tool' is required"); + // recursive when check=true + if (check) { + const result = yield $2f50c51a8ab24bc8$var$which(tool, false); + if (!result) { + if ($2f50c51a8ab24bc8$var$ioUtil.IS_WINDOWS) throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`); + else throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`); + } + return result; + } + const matches = yield $2f50c51a8ab24bc8$var$findInPath(tool); + if (matches && matches.length > 0) return matches[0]; + return ""; + }); } -exports.clean = clean; -function clean(version, options) { - var s = parse(version.trim().replace(/^[=v]+/, ""), options); - return s ? s.version : null; +module.exports.which = $2f50c51a8ab24bc8$var$which; +/** + * Returns a list of all occurrences of the given tool on the system path. + * + * @returns Promise the paths of the tool + */ function $2f50c51a8ab24bc8$var$findInPath(tool) { + return $2f50c51a8ab24bc8$var$__awaiter(this, void 0, void 0, function*() { + if (!tool) throw new Error("parameter 'tool' is required"); + // build the list of extensions to try + const extensions = []; + if ($2f50c51a8ab24bc8$var$ioUtil.IS_WINDOWS && process.env["PATHEXT"]) { + for (const extension of process.env["PATHEXT"].split($2f50c51a8ab24bc8$var$path.delimiter))if (extension) extensions.push(extension); + } + // if it's rooted, return it if exists. otherwise return empty. + if ($2f50c51a8ab24bc8$var$ioUtil.isRooted(tool)) { + const filePath = yield $2f50c51a8ab24bc8$var$ioUtil.tryGetExecutablePath(tool, extensions); + if (filePath) return [ + filePath + ]; + return []; + } + // if any path separators, return empty + if (tool.includes($2f50c51a8ab24bc8$var$path.sep)) return []; + // build the list of directories + // + // Note, technically "where" checks the current directory on Windows. From a toolkit perspective, + // it feels like we should not do this. Checking the current directory seems like more of a use + // case of a shell, and the which() function exposed by the toolkit should strive for consistency + // across platforms. + const directories = []; + if (process.env.PATH) { + for (const p of process.env.PATH.split($2f50c51a8ab24bc8$var$path.delimiter))if (p) directories.push(p); + } + // find all matches + const matches = []; + for (const directory of directories){ + const filePath = yield $2f50c51a8ab24bc8$var$ioUtil.tryGetExecutablePath($2f50c51a8ab24bc8$var$path.join(directory, tool), extensions); + if (filePath) matches.push(filePath); + } + return matches; + }); } -exports.SemVer = SemVer; -function SemVer(version, options) { - if (!options || typeof options !== "object") options = { - loose: !!options, - includePrerelease: false +module.exports.findInPath = $2f50c51a8ab24bc8$var$findInPath; +function $2f50c51a8ab24bc8$var$readCopyOptions(options) { + const force = options.force == null ? true : options.force; + const recursive = Boolean(options.recursive); + return { + force: force, + recursive: recursive }; - if (version instanceof SemVer) { - if (version.loose === options.loose) return version; - else version = version.version; - } else if (typeof version !== "string") throw new TypeError("Invalid Version: " + version); - if (version.length > MAX_LENGTH) throw new TypeError("version is longer than " + MAX_LENGTH + " characters"); - if (!(this instanceof SemVer)) return new SemVer(version, options); - debug("SemVer", version, options); - this.options = options; - this.loose = !!options.loose; - var m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]); - if (!m) throw new TypeError("Invalid Version: " + version); - this.raw = version; - // these are actually numbers - this.major = +m[1]; - this.minor = +m[2]; - this.patch = +m[3]; - if (this.major > MAX_SAFE_INTEGER || this.major < 0) throw new TypeError("Invalid major version"); - if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) throw new TypeError("Invalid minor version"); - if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) throw new TypeError("Invalid patch version"); - // numberify any prerelease numeric ids - if (!m[4]) this.prerelease = []; - else this.prerelease = m[4].split(".").map(function(id) { - if (/^[0-9]+$/.test(id)) { - var num = +id; - if (num >= 0 && num < MAX_SAFE_INTEGER) return num; +} +function $2f50c51a8ab24bc8$var$cpDirRecursive(sourceDir, destDir, currentDepth, force) { + return $2f50c51a8ab24bc8$var$__awaiter(this, void 0, void 0, function*() { + // Ensure there is not a run away recursive copy + if (currentDepth >= 255) return; + currentDepth++; + yield $2f50c51a8ab24bc8$var$mkdirP(destDir); + const files = yield $2f50c51a8ab24bc8$var$ioUtil.readdir(sourceDir); + for (const fileName of files){ + const srcFile = `${sourceDir}/${fileName}`; + const destFile = `${destDir}/${fileName}`; + const srcFileStat = yield $2f50c51a8ab24bc8$var$ioUtil.lstat(srcFile); + if (srcFileStat.isDirectory()) // Recurse + yield $2f50c51a8ab24bc8$var$cpDirRecursive(srcFile, destFile, currentDepth, force); + else yield $2f50c51a8ab24bc8$var$copyFile(srcFile, destFile, force); } - return id; + // Change the mode for the newly created directory + yield $2f50c51a8ab24bc8$var$ioUtil.chmod(destDir, (yield $2f50c51a8ab24bc8$var$ioUtil.stat(sourceDir)).mode); }); - this.build = m[5] ? m[5].split(".") : []; - this.format(); } -SemVer.prototype.format = function() { - this.version = this.major + "." + this.minor + "." + this.patch; - if (this.prerelease.length) this.version += "-" + this.prerelease.join("."); - return this.version; -}; -SemVer.prototype.toString = function() { - return this.version; -}; -SemVer.prototype.compare = function(other) { - debug("SemVer.compare", this.version, this.options, other); - if (!(other instanceof SemVer)) other = new SemVer(other, this.options); - return this.compareMain(other) || this.comparePre(other); -}; -SemVer.prototype.compareMain = function(other) { - if (!(other instanceof SemVer)) other = new SemVer(other, this.options); - return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch); -}; -SemVer.prototype.comparePre = function(other) { - if (!(other instanceof SemVer)) other = new SemVer(other, this.options); - // NOT having a prerelease is > having one - if (this.prerelease.length && !other.prerelease.length) return -1; - else if (!this.prerelease.length && other.prerelease.length) return 1; - else if (!this.prerelease.length && !other.prerelease.length) return 0; - var i = 0; - do { - var a = this.prerelease[i]; - var b = other.prerelease[i]; - debug("prerelease compare", i, a, b); - if (a === undefined && b === undefined) return 0; - else if (b === undefined) return 1; - else if (a === undefined) return -1; - else if (a === b) continue; - else return compareIdentifiers(a, b); - }while (++i); -}; -SemVer.prototype.compareBuild = function(other) { - if (!(other instanceof SemVer)) other = new SemVer(other, this.options); - var i = 0; - do { - var a = this.build[i]; - var b = other.build[i]; - debug("prerelease compare", i, a, b); - if (a === undefined && b === undefined) return 0; - else if (b === undefined) return 1; - else if (a === undefined) return -1; - else if (a === b) continue; - else return compareIdentifiers(a, b); - }while (++i); -}; -// preminor will bump the version up to the next minor release, and immediately -// down to pre-release. premajor and prepatch work the same way. -SemVer.prototype.inc = function(release, identifier) { - switch(release){ - case "premajor": - this.prerelease.length = 0; - this.patch = 0; - this.minor = 0; - this.major++; - this.inc("pre", identifier); - break; - case "preminor": - this.prerelease.length = 0; - this.patch = 0; - this.minor++; - this.inc("pre", identifier); - break; - case "prepatch": - // If this is already a prerelease, it will bump to the next version - // drop any prereleases that might already exist, since they are not - // relevant at this point. - this.prerelease.length = 0; - this.inc("patch", identifier); - this.inc("pre", identifier); - break; - // If the input is a non-prerelease version, this acts the same as - // prepatch. - case "prerelease": - if (this.prerelease.length === 0) this.inc("patch", identifier); - this.inc("pre", identifier); - break; - case "major": - // If this is a pre-major version, bump up to the same major version. - // Otherwise increment major. - // 1.0.0-5 bumps to 1.0.0 - // 1.1.0 bumps to 2.0.0 - if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) this.major++; - this.minor = 0; - this.patch = 0; - this.prerelease = []; - break; - case "minor": - // If this is a pre-minor version, bump up to the same minor version. - // Otherwise increment minor. - // 1.2.0-5 bumps to 1.2.0 - // 1.2.1 bumps to 1.3.0 - if (this.patch !== 0 || this.prerelease.length === 0) this.minor++; - this.patch = 0; - this.prerelease = []; - break; - case "patch": - // If this is not a pre-release version, it will increment the patch. - // If it is a pre-release it will bump up to the same patch version. - // 1.2.0-5 patches to 1.2.0 - // 1.2.0 patches to 1.2.1 - if (this.prerelease.length === 0) this.patch++; - this.prerelease = []; - break; - // This probably shouldn't be used publicly. - // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction. - case "pre": - if (this.prerelease.length === 0) this.prerelease = [ - 0 - ]; - else { - var i = this.prerelease.length; - while(--i >= 0)if (typeof this.prerelease[i] === "number") { - this.prerelease[i]++; - i = -2; - } - if (i === -1) // didn't increment anything - this.prerelease.push(0); - } - if (identifier) { - // 1.2.0-beta.1 bumps to 1.2.0-beta.2, - // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 - if (this.prerelease[0] === identifier) { - if (isNaN(this.prerelease[1])) this.prerelease = [ - identifier, - 0 - ]; - } else this.prerelease = [ - identifier, - 0 - ]; +// Buffered file copy +function $2f50c51a8ab24bc8$var$copyFile(srcFile, destFile, force) { + return $2f50c51a8ab24bc8$var$__awaiter(this, void 0, void 0, function*() { + if ((yield $2f50c51a8ab24bc8$var$ioUtil.lstat(srcFile)).isSymbolicLink()) { + // unlink/re-link it + try { + yield $2f50c51a8ab24bc8$var$ioUtil.lstat(destFile); + yield $2f50c51a8ab24bc8$var$ioUtil.unlink(destFile); + } catch (e) { + // Try to override file permission + if (e.code === "EPERM") { + yield $2f50c51a8ab24bc8$var$ioUtil.chmod(destFile, "0666"); + yield $2f50c51a8ab24bc8$var$ioUtil.unlink(destFile); + } + // other errors = it doesn't exist, no work to do } - break; - default: - throw new Error("invalid increment argument: " + release); + // Copy over symlink + const symlinkFull = yield $2f50c51a8ab24bc8$var$ioUtil.readlink(srcFile); + yield $2f50c51a8ab24bc8$var$ioUtil.symlink(symlinkFull, destFile, $2f50c51a8ab24bc8$var$ioUtil.IS_WINDOWS ? "junction" : null); + } else if (!(yield $2f50c51a8ab24bc8$var$ioUtil.exists(destFile)) || force) yield $2f50c51a8ab24bc8$var$ioUtil.copyFile(srcFile, destFile); + }); +} + +}); +parcelRequire.register("b4kaZ", function(module, exports) { +"use strict"; +var $80efb8079b0b4017$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); } - this.format(); - this.raw = this.version; - return this; + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); }; -exports.inc = inc; -function inc(version, release, loose, identifier) { - if (typeof loose === "string") { - identifier = loose; - loose = undefined; +var $80efb8079b0b4017$var$__importStar = module.exports && module.exports.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for(var k in mod)if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; } - try { - return new SemVer(version, loose).inc(release, identifier).version; - } catch (er) { - return null; + result["default"] = mod; + return result; +}; +var $80efb8079b0b4017$var$_a; +Object.defineProperty(module.exports, "__esModule", { + value: true +}); + + +const $80efb8079b0b4017$var$fs = $80efb8079b0b4017$var$__importStar($bknAJ$fs); + +const $80efb8079b0b4017$var$path = $80efb8079b0b4017$var$__importStar($bknAJ$path); +$80efb8079b0b4017$var$_a = $80efb8079b0b4017$var$fs.promises, module.exports.chmod = $80efb8079b0b4017$var$_a.chmod, module.exports.copyFile = $80efb8079b0b4017$var$_a.copyFile, module.exports.lstat = $80efb8079b0b4017$var$_a.lstat, module.exports.mkdir = $80efb8079b0b4017$var$_a.mkdir, module.exports.readdir = $80efb8079b0b4017$var$_a.readdir, module.exports.readlink = $80efb8079b0b4017$var$_a.readlink, module.exports.rename = $80efb8079b0b4017$var$_a.rename, module.exports.rmdir = $80efb8079b0b4017$var$_a.rmdir, module.exports.stat = $80efb8079b0b4017$var$_a.stat, module.exports.symlink = $80efb8079b0b4017$var$_a.symlink, module.exports.unlink = $80efb8079b0b4017$var$_a.unlink; +module.exports.IS_WINDOWS = process.platform === "win32"; +function $80efb8079b0b4017$var$exists(fsPath) { + return $80efb8079b0b4017$var$__awaiter(this, void 0, void 0, function*() { + try { + yield module.exports.stat(fsPath); + } catch (err) { + if (err.code === "ENOENT") return false; + throw err; + } + return true; + }); +} +module.exports.exists = $80efb8079b0b4017$var$exists; +function $80efb8079b0b4017$var$isDirectory(fsPath, useStat = false) { + return $80efb8079b0b4017$var$__awaiter(this, void 0, void 0, function*() { + const stats = useStat ? yield module.exports.stat(fsPath) : yield module.exports.lstat(fsPath); + return stats.isDirectory(); + }); +} +module.exports.isDirectory = $80efb8079b0b4017$var$isDirectory; +/** + * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like: + * \, \hello, \\hello\share, C:, and C:\hello (and corresponding alternate separator cases). + */ function $80efb8079b0b4017$var$isRooted(p) { + p = $80efb8079b0b4017$var$normalizeSeparators(p); + if (!p) throw new Error('isRooted() parameter "p" cannot be empty'); + if (module.exports.IS_WINDOWS) return p.startsWith("\\") || /^[A-Z]:/i.test(p) // e.g. \ or \hello or \\hello + ; // e.g. C: or C:\hello + return p.startsWith("/"); +} +module.exports.isRooted = $80efb8079b0b4017$var$isRooted; +/** + * Recursively create a directory at `fsPath`. + * + * This implementation is optimistic, meaning it attempts to create the full + * path first, and backs up the path stack from there. + * + * @param fsPath The path to create + * @param maxDepth The maximum recursion depth + * @param depth The current recursion depth + */ function $80efb8079b0b4017$var$mkdirP(fsPath, maxDepth = 1000, depth = 1) { + return $80efb8079b0b4017$var$__awaiter(this, void 0, void 0, function*() { + $bknAJ$assert.ok(fsPath, "a path argument must be provided"); + fsPath = $80efb8079b0b4017$var$path.resolve(fsPath); + if (depth >= maxDepth) return module.exports.mkdir(fsPath); + try { + yield module.exports.mkdir(fsPath); + return; + } catch (err) { + switch(err.code){ + case "ENOENT": + yield $80efb8079b0b4017$var$mkdirP($80efb8079b0b4017$var$path.dirname(fsPath), maxDepth, depth + 1); + yield module.exports.mkdir(fsPath); + return; + default: + { + let stats; + try { + stats = yield module.exports.stat(fsPath); + } catch (err2) { + throw err; + } + if (!stats.isDirectory()) throw err; + } + } + } + }); +} +module.exports.mkdirP = $80efb8079b0b4017$var$mkdirP; +/** + * Best effort attempt to determine whether a file exists and is executable. + * @param filePath file path to check + * @param extensions additional file extensions to try + * @return if file exists and is executable, returns the file path. otherwise empty string. + */ function $80efb8079b0b4017$var$tryGetExecutablePath(filePath, extensions) { + return $80efb8079b0b4017$var$__awaiter(this, void 0, void 0, function*() { + let stats = undefined; + try { + // test file exists + stats = yield module.exports.stat(filePath); + } catch (err) { + if (err.code !== "ENOENT") // eslint-disable-next-line no-console + console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); + } + if (stats && stats.isFile()) { + if (module.exports.IS_WINDOWS) { + // on Windows, test for valid extension + const upperExt = $80efb8079b0b4017$var$path.extname(filePath).toUpperCase(); + if (extensions.some((validExt)=>validExt.toUpperCase() === upperExt)) return filePath; + } else { + if ($80efb8079b0b4017$var$isUnixExecutable(stats)) return filePath; + } + } + // try each extension + const originalFilePath = filePath; + for (const extension of extensions){ + filePath = originalFilePath + extension; + stats = undefined; + try { + stats = yield module.exports.stat(filePath); + } catch (err) { + if (err.code !== "ENOENT") // eslint-disable-next-line no-console + console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); + } + if (stats && stats.isFile()) { + if (module.exports.IS_WINDOWS) { + // preserve the case of the actual file (since an extension was appended) + try { + const directory = $80efb8079b0b4017$var$path.dirname(filePath); + const upperName = $80efb8079b0b4017$var$path.basename(filePath).toUpperCase(); + for (const actualName of yield module.exports.readdir(directory))if (upperName === actualName.toUpperCase()) { + filePath = $80efb8079b0b4017$var$path.join(directory, actualName); + break; + } + } catch (err) { + // eslint-disable-next-line no-console + console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`); + } + return filePath; + } else { + if ($80efb8079b0b4017$var$isUnixExecutable(stats)) return filePath; + } + } + } + return ""; + }); +} +module.exports.tryGetExecutablePath = $80efb8079b0b4017$var$tryGetExecutablePath; +function $80efb8079b0b4017$var$normalizeSeparators(p) { + p = p || ""; + if (module.exports.IS_WINDOWS) { + // convert slashes on Windows + p = p.replace(/\//g, "\\"); + // remove redundant slashes + return p.replace(/\\\\+/g, "\\"); } + // remove redundant slashes + return p.replace(/\/\/+/g, "/"); } -exports.diff = diff; -function diff(version1, version2) { - if (eq(version1, version2)) return null; - else { - var v1 = parse(version1); - var v2 = parse(version2); - var prefix = ""; - if (v1.prerelease.length || v2.prerelease.length) { - prefix = "pre"; - var defaultResult = "prerelease"; +// on Mac/Linux, test the execute bit +// R W X R W X R W X +// 256 128 64 32 16 8 4 2 1 +function $80efb8079b0b4017$var$isUnixExecutable(stats) { + return (stats.mode & 1) > 0 || (stats.mode & 8) > 0 && stats.gid === process.getgid() || (stats.mode & 64) > 0 && stats.uid === process.getuid(); +} + +}); + + + +var $da816f606135dc7c$exports = {}; +"use strict"; +var $da816f606135dc7c$var$__createBinding = $da816f606135dc7c$exports && $da816f606135dc7c$exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { + enumerable: true, + get: function() { + return m[k]; + } + }); +} : function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +}); +var $da816f606135dc7c$var$__setModuleDefault = $da816f606135dc7c$exports && $da816f606135dc7c$exports.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { + enumerable: true, + value: v + }); +} : function(o, v) { + o["default"] = v; +}); +var $da816f606135dc7c$var$__importStar = $da816f606135dc7c$exports && $da816f606135dc7c$exports.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $da816f606135dc7c$var$__createBinding(result, mod, k); + } + $da816f606135dc7c$var$__setModuleDefault(result, mod); + return result; +}; +var $da816f606135dc7c$var$__awaiter = $da816f606135dc7c$exports && $da816f606135dc7c$exports.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } } - for(var key in v1)if (key === "major" || key === "minor" || key === "patch") { - if (v1[key] !== v2[key]) return prefix + key; + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } } - return defaultResult // may be undefined - ; - } -} -exports.compareIdentifiers = compareIdentifiers; -var numeric = /^[0-9]+$/; -function compareIdentifiers(a, b) { - var anum = numeric.test(a); - var bnum = numeric.test(b); - if (anum && bnum) { - a = +a; - b = +b; + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty($da816f606135dc7c$exports, "__esModule", { + value: true +}); +$da816f606135dc7c$exports.getIDToken = $da816f606135dc7c$exports.getState = $da816f606135dc7c$exports.saveState = $da816f606135dc7c$exports.group = $da816f606135dc7c$exports.endGroup = $da816f606135dc7c$exports.startGroup = $da816f606135dc7c$exports.info = $da816f606135dc7c$exports.notice = $da816f606135dc7c$exports.warning = $da816f606135dc7c$exports.error = $da816f606135dc7c$exports.debug = $da816f606135dc7c$exports.isDebug = $da816f606135dc7c$exports.setFailed = $da816f606135dc7c$exports.setCommandEcho = $da816f606135dc7c$exports.setOutput = $da816f606135dc7c$exports.getBooleanInput = $da816f606135dc7c$exports.getMultilineInput = $da816f606135dc7c$exports.getInput = $da816f606135dc7c$exports.addPath = $da816f606135dc7c$exports.setSecret = $da816f606135dc7c$exports.exportVariable = $da816f606135dc7c$exports.ExitCode = void 0; +var $a9fbfd6af7c376e3$exports = {}; +"use strict"; +var $a9fbfd6af7c376e3$var$__createBinding = $a9fbfd6af7c376e3$exports && $a9fbfd6af7c376e3$exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { + enumerable: true, + get: function() { + return m[k]; + } + }); +} : function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +}); +var $a9fbfd6af7c376e3$var$__setModuleDefault = $a9fbfd6af7c376e3$exports && $a9fbfd6af7c376e3$exports.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { + enumerable: true, + value: v + }); +} : function(o, v) { + o["default"] = v; +}); +var $a9fbfd6af7c376e3$var$__importStar = $a9fbfd6af7c376e3$exports && $a9fbfd6af7c376e3$exports.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $a9fbfd6af7c376e3$var$__createBinding(result, mod, k); } - return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1; -} -exports.rcompareIdentifiers = rcompareIdentifiers; -function rcompareIdentifiers(a, b) { - return compareIdentifiers(b, a); -} -exports.major = major; -function major(a, loose) { - return new SemVer(a, loose).major; + $a9fbfd6af7c376e3$var$__setModuleDefault(result, mod); + return result; +}; +Object.defineProperty($a9fbfd6af7c376e3$exports, "__esModule", { + value: true +}); +$a9fbfd6af7c376e3$exports.issue = $a9fbfd6af7c376e3$exports.issueCommand = void 0; + +const $a9fbfd6af7c376e3$var$os = $a9fbfd6af7c376e3$var$__importStar($bknAJ$os); +var $c2eb91fd03840ff7$exports = {}; +"use strict"; +// We use any as a valid input type +/* eslint-disable @typescript-eslint/no-explicit-any */ Object.defineProperty($c2eb91fd03840ff7$exports, "__esModule", { + value: true +}); +$c2eb91fd03840ff7$exports.toCommandProperties = $c2eb91fd03840ff7$exports.toCommandValue = void 0; +/** + * Sanitizes an input into a string so it can be passed into issueCommand safely + * @param input input to sanitize into a string + */ function $c2eb91fd03840ff7$var$toCommandValue(input) { + if (input === null || input === undefined) return ""; + else if (typeof input === "string" || input instanceof String) return input; + return JSON.stringify(input); } -exports.minor = minor; -function minor(a, loose) { - return new SemVer(a, loose).minor; +$c2eb91fd03840ff7$exports.toCommandValue = $c2eb91fd03840ff7$var$toCommandValue; +/** + * + * @param annotationProperties + * @returns The command properties to send with the actual annotation command + * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646 + */ function $c2eb91fd03840ff7$var$toCommandProperties(annotationProperties) { + if (!Object.keys(annotationProperties).length) return {}; + return { + title: annotationProperties.title, + file: annotationProperties.file, + line: annotationProperties.startLine, + endLine: annotationProperties.endLine, + col: annotationProperties.startColumn, + endColumn: annotationProperties.endColumn + }; } -exports.patch = patch; -function patch(a, loose) { - return new SemVer(a, loose).patch; +$c2eb91fd03840ff7$exports.toCommandProperties = $c2eb91fd03840ff7$var$toCommandProperties; + + +/** + * Commands + * + * Command Format: + * ::name key=value,key=value::message + * + * Examples: + * ::warning::This is the message + * ::set-env name=MY_VAR::some value + */ function $a9fbfd6af7c376e3$var$issueCommand(command, properties, message) { + const cmd = new $a9fbfd6af7c376e3$var$Command(command, properties, message); + process.stdout.write(cmd.toString() + $a9fbfd6af7c376e3$var$os.EOL); } -exports.compare = compare; -function compare(a, b, loose) { - return new SemVer(a, loose).compare(new SemVer(b, loose)); +$a9fbfd6af7c376e3$exports.issueCommand = $a9fbfd6af7c376e3$var$issueCommand; +function $a9fbfd6af7c376e3$var$issue(name, message = "") { + $a9fbfd6af7c376e3$var$issueCommand(name, {}, message); } -exports.compareLoose = compareLoose; -function compareLoose(a, b) { - return compare(a, b, true); +$a9fbfd6af7c376e3$exports.issue = $a9fbfd6af7c376e3$var$issue; +const $a9fbfd6af7c376e3$var$CMD_STRING = "::"; +class $a9fbfd6af7c376e3$var$Command { + constructor(command, properties, message){ + if (!command) command = "missing.command"; + this.command = command; + this.properties = properties; + this.message = message; + } + toString() { + let cmdStr = $a9fbfd6af7c376e3$var$CMD_STRING + this.command; + if (this.properties && Object.keys(this.properties).length > 0) { + cmdStr += " "; + let first = true; + for(const key in this.properties)if (this.properties.hasOwnProperty(key)) { + const val = this.properties[key]; + if (val) { + if (first) first = false; + else cmdStr += ","; + cmdStr += `${key}=${$a9fbfd6af7c376e3$var$escapeProperty(val)}`; + } + } + } + cmdStr += `${$a9fbfd6af7c376e3$var$CMD_STRING}${$a9fbfd6af7c376e3$var$escapeData(this.message)}`; + return cmdStr; + } } -exports.compareBuild = compareBuild; -function compareBuild(a, b, loose) { - var versionA = new SemVer(a, loose); - var versionB = new SemVer(b, loose); - return versionA.compare(versionB) || versionA.compareBuild(versionB); +function $a9fbfd6af7c376e3$var$escapeData(s) { + return $c2eb91fd03840ff7$exports.toCommandValue(s).replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A"); } -exports.rcompare = rcompare; -function rcompare(a, b, loose) { - return compare(b, a, loose); +function $a9fbfd6af7c376e3$var$escapeProperty(s) { + return $c2eb91fd03840ff7$exports.toCommandValue(s).replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A").replace(/:/g, "%3A").replace(/,/g, "%2C"); } -exports.sort = sort; -function sort(list, loose) { - return list.sort(function(a, b) { - return exports.compareBuild(a, b, loose); + + +var $2c179eb4735c01c1$exports = {}; +"use strict"; +// For internal use, subject to change. +var $2c179eb4735c01c1$var$__createBinding = $2c179eb4735c01c1$exports && $2c179eb4735c01c1$exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { + enumerable: true, + get: function() { + return m[k]; + } }); -} -exports.rsort = rsort; -function rsort(list, loose) { - return list.sort(function(a, b) { - return exports.compareBuild(b, a, loose); +} : function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +}); +var $2c179eb4735c01c1$var$__setModuleDefault = $2c179eb4735c01c1$exports && $2c179eb4735c01c1$exports.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { + enumerable: true, + value: v }); +} : function(o, v) { + o["default"] = v; +}); +var $2c179eb4735c01c1$var$__importStar = $2c179eb4735c01c1$exports && $2c179eb4735c01c1$exports.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $2c179eb4735c01c1$var$__createBinding(result, mod, k); + } + $2c179eb4735c01c1$var$__setModuleDefault(result, mod); + return result; +}; +Object.defineProperty($2c179eb4735c01c1$exports, "__esModule", { + value: true +}); +$2c179eb4735c01c1$exports.prepareKeyValueMessage = $2c179eb4735c01c1$exports.issueFileCommand = void 0; + +// We use any as a valid input type +/* eslint-disable @typescript-eslint/no-explicit-any */ const $2c179eb4735c01c1$var$fs = $2c179eb4735c01c1$var$__importStar($bknAJ$fs); + +const $2c179eb4735c01c1$var$os = $2c179eb4735c01c1$var$__importStar($bknAJ$os); + +const $bbd07f1d85073d64$var$rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate +let $bbd07f1d85073d64$var$poolPtr = $bbd07f1d85073d64$var$rnds8Pool.length; +function $bbd07f1d85073d64$export$2e2bcd8739ae039() { + if ($bbd07f1d85073d64$var$poolPtr > $bbd07f1d85073d64$var$rnds8Pool.length - 16) { + (0, ($parcel$interopDefault($bknAJ$crypto))).randomFillSync($bbd07f1d85073d64$var$rnds8Pool); + $bbd07f1d85073d64$var$poolPtr = 0; + } + return $bbd07f1d85073d64$var$rnds8Pool.slice($bbd07f1d85073d64$var$poolPtr, $bbd07f1d85073d64$var$poolPtr += 16); } -exports.gt = gt; -function gt(a, b, loose) { - return compare(a, b, loose) > 0; -} -exports.lt = lt; -function lt(a, b, loose) { - return compare(a, b, loose) < 0; -} -exports.eq = eq; -function eq(a, b, loose) { - return compare(a, b, loose) === 0; + + +var $0b832682bf3fc1e7$export$2e2bcd8739ae039 = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; + + +function $bbc210aec3a3cf1e$var$validate(uuid) { + return typeof uuid === "string" && (0, $0b832682bf3fc1e7$export$2e2bcd8739ae039).test(uuid); } -exports.neq = neq; -function neq(a, b, loose) { - return compare(a, b, loose) !== 0; +var $bbc210aec3a3cf1e$export$2e2bcd8739ae039 = $bbc210aec3a3cf1e$var$validate; + + +/** + * Convert array of 16 byte values to UUID string format of the form: + * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX + */ const $a8b0c1f55d179ea2$var$byteToHex = []; +for(let i = 0; i < 256; ++i)$a8b0c1f55d179ea2$var$byteToHex.push((i + 0x100).toString(16).substr(1)); +function $a8b0c1f55d179ea2$var$stringify(arr, offset = 0) { + // Note: Be careful editing this code! It's been tuned for performance + // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 + const uuid = ($a8b0c1f55d179ea2$var$byteToHex[arr[offset + 0]] + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 1]] + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 2]] + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 3]] + "-" + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 4]] + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 5]] + "-" + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 6]] + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 7]] + "-" + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 8]] + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 9]] + "-" + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 10]] + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 11]] + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 12]] + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 13]] + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 14]] + $a8b0c1f55d179ea2$var$byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one + // of the following: + // - One or more input array values don't map to a hex octet (leading to + // "undefined" in the uuid) + // - Invalid input values for the RFC `version` or `variant` fields + if (!(0, $bbc210aec3a3cf1e$export$2e2bcd8739ae039)(uuid)) throw TypeError("Stringified UUID is invalid"); + return uuid; } -exports.gte = gte; -function gte(a, b, loose) { - return compare(a, b, loose) >= 0; +var $a8b0c1f55d179ea2$export$2e2bcd8739ae039 = $a8b0c1f55d179ea2$var$stringify; + + +function $ccf585a66b281eee$var$v4(options, buf, offset) { + options = options || {}; + const rnds = options.random || (options.rng || (0, $bbd07f1d85073d64$export$2e2bcd8739ae039))(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + rnds[6] = rnds[6] & 0x0f | 0x40; + rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided + if (buf) { + offset = offset || 0; + for(let i = 0; i < 16; ++i)buf[offset + i] = rnds[i]; + return buf; + } + return (0, $a8b0c1f55d179ea2$export$2e2bcd8739ae039)(rnds); } -exports.lte = lte; -function lte(a, b, loose) { - return compare(a, b, loose) <= 0; +var $ccf585a66b281eee$export$2e2bcd8739ae039 = $ccf585a66b281eee$var$v4; + + + +function $2c179eb4735c01c1$var$issueFileCommand(command, message) { + const filePath = process.env[`GITHUB_${command}`]; + if (!filePath) throw new Error(`Unable to find environment variable for file command ${command}`); + if (!$2c179eb4735c01c1$var$fs.existsSync(filePath)) throw new Error(`Missing file at path: ${filePath}`); + $2c179eb4735c01c1$var$fs.appendFileSync(filePath, `${$c2eb91fd03840ff7$exports.toCommandValue(message)}${$2c179eb4735c01c1$var$os.EOL}`, { + encoding: "utf8" + }); } -exports.cmp = cmp; -function cmp(a, op, b, loose) { - switch(op){ - case "===": - if (typeof a === "object") a = a.version; - if (typeof b === "object") b = b.version; - return a === b; - case "!==": - if (typeof a === "object") a = a.version; - if (typeof b === "object") b = b.version; - return a !== b; - case "": - case "=": - case "==": - return eq(a, b, loose); - case "!=": - return neq(a, b, loose); - case ">": - return gt(a, b, loose); - case ">=": - return gte(a, b, loose); - case "<": - return lt(a, b, loose); - case "<=": - return lte(a, b, loose); - default: - throw new TypeError("Invalid operator: " + op); - } +$2c179eb4735c01c1$exports.issueFileCommand = $2c179eb4735c01c1$var$issueFileCommand; +function $2c179eb4735c01c1$var$prepareKeyValueMessage(key, value) { + const delimiter = `ghadelimiter_${$ccf585a66b281eee$export$2e2bcd8739ae039()}`; + const convertedValue = $c2eb91fd03840ff7$exports.toCommandValue(value); + // These should realistically never happen, but just in case someone finds a + // way to exploit uuid generation let's not allow keys or values that contain + // the delimiter. + if (key.includes(delimiter)) throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter}"`); + if (convertedValue.includes(delimiter)) throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter}"`); + return `${key}<<${delimiter}${$2c179eb4735c01c1$var$os.EOL}${convertedValue}${$2c179eb4735c01c1$var$os.EOL}${delimiter}`; } -exports.Comparator = Comparator; -function Comparator(comp, options) { - if (!options || typeof options !== "object") options = { - loose: !!options, - includePrerelease: false - }; - if (comp instanceof Comparator) { - if (comp.loose === !!options.loose) return comp; - else comp = comp.value; +$2c179eb4735c01c1$exports.prepareKeyValueMessage = $2c179eb4735c01c1$var$prepareKeyValueMessage; + + + + +const $da816f606135dc7c$var$os = $da816f606135dc7c$var$__importStar($bknAJ$os); + +const $da816f606135dc7c$var$path = $da816f606135dc7c$var$__importStar($bknAJ$path); +var $d5b1c01683378567$exports = {}; +"use strict"; +var $d5b1c01683378567$var$__awaiter = $d5b1c01683378567$exports && $d5b1c01683378567$exports.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); } - if (!(this instanceof Comparator)) return new Comparator(comp, options); - debug("comparator", comp, options); - this.options = options; - this.loose = !!options.loose; - this.parse(comp); - if (this.semver === ANY) this.value = ""; - else this.value = this.operator + this.semver.version; - debug("comp", this); -} -var ANY = {}; -Comparator.prototype.parse = function(comp) { - var r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]; - var m = comp.match(r); - if (!m) throw new TypeError("Invalid comparator: " + comp); - this.operator = m[1] !== undefined ? m[1] : ""; - if (this.operator === "=") this.operator = ""; - // if it literally is just '>' or '' then allow anything. - if (!m[2]) this.semver = ANY; - else this.semver = new SemVer(m[2], this.options.loose); + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); }; -Comparator.prototype.toString = function() { - return this.value; +Object.defineProperty($d5b1c01683378567$exports, "__esModule", { + value: true +}); +$d5b1c01683378567$exports.OidcClient = void 0; + +var $8tmdd = parcelRequire("8tmdd"); +var $9290d95b3b0ba4b7$exports = {}; +"use strict"; +var $9290d95b3b0ba4b7$var$__awaiter = $9290d95b3b0ba4b7$exports && $9290d95b3b0ba4b7$exports.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); + } + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); }; -Comparator.prototype.test = function(version) { - debug("Comparator.test", version, this.options.loose); - if (this.semver === ANY || version === ANY) return true; - if (typeof version === "string") try { - version = new SemVer(version, this.options); - } catch (er) { +Object.defineProperty($9290d95b3b0ba4b7$exports, "__esModule", { + value: true +}); +$9290d95b3b0ba4b7$exports.PersonalAccessTokenCredentialHandler = $9290d95b3b0ba4b7$exports.BearerCredentialHandler = $9290d95b3b0ba4b7$exports.BasicCredentialHandler = void 0; +class $9290d95b3b0ba4b7$var$BasicCredentialHandler { + constructor(username, password){ + this.username = username; + this.password = password; + } + prepareRequest(options) { + if (!options.headers) throw Error("The request has no headers"); + options.headers["Authorization"] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString("base64")}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { return false; } - return cmp(version, this.operator, this.semver, this.options); -}; -Comparator.prototype.intersects = function(comp, options) { - if (!(comp instanceof Comparator)) throw new TypeError("a Comparator is required"); - if (!options || typeof options !== "object") options = { - loose: !!options, - includePrerelease: false - }; - var rangeTmp; - if (this.operator === "") { - if (this.value === "") return true; - rangeTmp = new Range(comp.value, options); - return satisfies(this.value, rangeTmp, options); - } else if (comp.operator === "") { - if (comp.value === "") return true; - rangeTmp = new Range(this.value, options); - return satisfies(comp.semver, rangeTmp, options); + handleAuthentication() { + return $9290d95b3b0ba4b7$var$__awaiter(this, void 0, void 0, function*() { + throw new Error("not implemented"); + }); } - var sameDirectionIncreasing = (this.operator === ">=" || this.operator === ">") && (comp.operator === ">=" || comp.operator === ">"); - var sameDirectionDecreasing = (this.operator === "<=" || this.operator === "<") && (comp.operator === "<=" || comp.operator === "<"); - var sameSemVer = this.semver.version === comp.semver.version; - var differentDirectionsInclusive = (this.operator === ">=" || this.operator === "<=") && (comp.operator === ">=" || comp.operator === "<="); - var oppositeDirectionsLessThan = cmp(this.semver, "<", comp.semver, options) && (this.operator === ">=" || this.operator === ">") && (comp.operator === "<=" || comp.operator === "<"); - var oppositeDirectionsGreaterThan = cmp(this.semver, ">", comp.semver, options) && (this.operator === "<=" || this.operator === "<") && (comp.operator === ">=" || comp.operator === ">"); - return sameDirectionIncreasing || sameDirectionDecreasing || sameSemVer && differentDirectionsInclusive || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan; -}; -exports.Range = Range; -function Range(range, options) { - if (!options || typeof options !== "object") options = { - loose: !!options, - includePrerelease: false - }; - if (range instanceof Range) { - if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) return range; - else return new Range(range.raw, options); +} +$9290d95b3b0ba4b7$exports.BasicCredentialHandler = $9290d95b3b0ba4b7$var$BasicCredentialHandler; +class $9290d95b3b0ba4b7$var$BearerCredentialHandler { + constructor(token){ + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + if (!options.headers) throw Error("The request has no headers"); + options.headers["Authorization"] = `Bearer ${this.token}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return $9290d95b3b0ba4b7$var$__awaiter(this, void 0, void 0, function*() { + throw new Error("not implemented"); + }); + } +} +$9290d95b3b0ba4b7$exports.BearerCredentialHandler = $9290d95b3b0ba4b7$var$BearerCredentialHandler; +class $9290d95b3b0ba4b7$var$PersonalAccessTokenCredentialHandler { + constructor(token){ + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + if (!options.headers) throw Error("The request has no headers"); + options.headers["Authorization"] = `Basic ${Buffer.from(`PAT:${this.token}`).toString("base64")}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return $9290d95b3b0ba4b7$var$__awaiter(this, void 0, void 0, function*() { + throw new Error("not implemented"); + }); } - if (range instanceof Comparator) return new Range(range.value, options); - if (!(this instanceof Range)) return new Range(range, options); - this.options = options; - this.loose = !!options.loose; - this.includePrerelease = !!options.includePrerelease; - // First, split based on boolean or || - this.raw = range; - this.set = range.split(/\s*\|\|\s*/).map(function(range) { - return this.parseRange(range.trim()); - }, this).filter(function(c) { - // throw out any that are not relevant for whatever reason - return c.length; - }); - if (!this.set.length) throw new TypeError("Invalid SemVer Range: " + range); - this.format(); } -Range.prototype.format = function() { - this.range = this.set.map(function(comps) { - return comps.join(" ").trim(); - }).join("||").trim(); - return this.range; -}; -Range.prototype.toString = function() { - return this.range; -}; -Range.prototype.parseRange = function(range) { - var loose = this.options.loose; - range = range.trim(); - // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` - var hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]; - range = range.replace(hr, hyphenReplace); - debug("hyphen replace", range); - // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` - range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace); - debug("comparator trim", range, re[t.COMPARATORTRIM]); - // `~ 1.2.3` => `~1.2.3` - range = range.replace(re[t.TILDETRIM], tildeTrimReplace); - // `^ 1.2.3` => `^1.2.3` - range = range.replace(re[t.CARETTRIM], caretTrimReplace); - // normalize spaces - range = range.split(/\s+/).join(" "); - // At this point, the range is completely trimmed and - // ready to be split into comparators. - var compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]; - var set = range.split(" ").map(function(comp) { - return parseComparator(comp, this.options); - }, this).join(" ").split(/\s+/); - if (this.options.loose) // in loose mode, throw out any that are not valid comparators - set = set.filter(function(comp) { - return !!comp.match(compRe); - }); - set = set.map(function(comp) { - return new Comparator(comp, this.options); - }, this); - return set; -}; -Range.prototype.intersects = function(range, options) { - if (!(range instanceof Range)) throw new TypeError("a Range is required"); - return this.set.some(function(thisComparators) { - return isSatisfiable(thisComparators, options) && range.set.some(function(rangeComparators) { - return isSatisfiable(rangeComparators, options) && thisComparators.every(function(thisComparator) { - return rangeComparators.every(function(rangeComparator) { - return thisComparator.intersects(rangeComparator, options); - }); +$9290d95b3b0ba4b7$exports.PersonalAccessTokenCredentialHandler = $9290d95b3b0ba4b7$var$PersonalAccessTokenCredentialHandler; + + + +class $d5b1c01683378567$var$OidcClient { + static createHttpClient(allowRetry = true, maxRetry = 10) { + const requestOptions = { + allowRetries: allowRetry, + maxRetries: maxRetry + }; + return new $8tmdd.HttpClient("actions/oidc-client", [ + new $9290d95b3b0ba4b7$exports.BearerCredentialHandler($d5b1c01683378567$var$OidcClient.getRequestToken()) + ], requestOptions); + } + static getRequestToken() { + const token = process.env["ACTIONS_ID_TOKEN_REQUEST_TOKEN"]; + if (!token) throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable"); + return token; + } + static getIDTokenUrl() { + const runtimeUrl = process.env["ACTIONS_ID_TOKEN_REQUEST_URL"]; + if (!runtimeUrl) throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable"); + return runtimeUrl; + } + static getCall(id_token_url) { + var _a; + return $d5b1c01683378567$var$__awaiter(this, void 0, void 0, function*() { + const httpclient = $d5b1c01683378567$var$OidcClient.createHttpClient(); + const res = yield httpclient.getJson(id_token_url).catch((error)=>{ + throw new Error(`Failed to get ID Token. \n + Error Code : ${error.statusCode}\n + Error Message: ${error.result.message}`); }); + const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value; + if (!id_token) throw new Error("Response json body do not have ID Token field"); + return id_token; }); - }); -}; -// take a set of comparators and determine whether there -// exists a version which can satisfy it -function isSatisfiable(comparators, options) { - var result = true; - var remainingComparators = comparators.slice(); - var testComparator = remainingComparators.pop(); - while(result && remainingComparators.length){ - result = remainingComparators.every(function(otherComparator) { - return testComparator.intersects(otherComparator, options); + } + static getIDToken(audience) { + return $d5b1c01683378567$var$__awaiter(this, void 0, void 0, function*() { + try { + // New ID Token is requested from action service + let id_token_url = $d5b1c01683378567$var$OidcClient.getIDTokenUrl(); + if (audience) { + const encodedAudience = encodeURIComponent(audience); + id_token_url = `${id_token_url}&audience=${encodedAudience}`; + } + $da816f606135dc7c$exports.debug(`ID token url is ${id_token_url}`); + const id_token = yield $d5b1c01683378567$var$OidcClient.getCall(id_token_url); + $da816f606135dc7c$exports.setSecret(id_token); + return id_token; + } catch (error) { + throw new Error(`Error message: ${error.message}`); + } }); - testComparator = remainingComparators.pop(); } - return result; } -// Mostly just for testing and legacy API reasons -exports.toComparators = toComparators; -function toComparators(range, options) { - return new Range(range, options).set.map(function(comp) { - return comp.map(function(c) { - return c.value; - }).join(" ").trim().split(" "); - }); +$d5b1c01683378567$exports.OidcClient = $d5b1c01683378567$var$OidcClient; + + +/** + * The code to exit an action + */ var $da816f606135dc7c$var$ExitCode; +(function(ExitCode) { + /** + * A code indicating that the action was successful + */ ExitCode[ExitCode["Success"] = 0] = "Success"; + /** + * A code indicating that the action was a failure + */ ExitCode[ExitCode["Failure"] = 1] = "Failure"; +})($da816f606135dc7c$var$ExitCode = $da816f606135dc7c$exports.ExitCode || ($da816f606135dc7c$exports.ExitCode = {})); +//----------------------------------------------------------------------- +// Variables +//----------------------------------------------------------------------- +/** + * Sets env variable for this action and future actions in the job + * @param name the name of the variable to set + * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify + */ // eslint-disable-next-line @typescript-eslint/no-explicit-any +function $da816f606135dc7c$var$exportVariable(name, val) { + const convertedVal = $c2eb91fd03840ff7$exports.toCommandValue(val); + process.env[name] = convertedVal; + const filePath = process.env["GITHUB_ENV"] || ""; + if (filePath) return $2c179eb4735c01c1$exports.issueFileCommand("ENV", $2c179eb4735c01c1$exports.prepareKeyValueMessage(name, val)); + $a9fbfd6af7c376e3$exports.issueCommand("set-env", { + name: name + }, convertedVal); } -// comprised of xranges, tildes, stars, and gtlt's at this point. -// already replaced the hyphen ranges -// turn into a set of JUST comparators. -function parseComparator(comp, options) { - debug("comp", comp, options); - comp = replaceCarets(comp, options); - debug("caret", comp); - comp = replaceTildes(comp, options); - debug("tildes", comp); - comp = replaceXRanges(comp, options); - debug("xrange", comp); - comp = replaceStars(comp, options); - debug("stars", comp); - return comp; +$da816f606135dc7c$exports.exportVariable = $da816f606135dc7c$var$exportVariable; +/** + * Registers a secret which will get masked from logs + * @param secret value of the secret + */ function $da816f606135dc7c$var$setSecret(secret) { + $a9fbfd6af7c376e3$exports.issueCommand("add-mask", {}, secret); } -function isX(id) { - return !id || id.toLowerCase() === "x" || id === "*"; +$da816f606135dc7c$exports.setSecret = $da816f606135dc7c$var$setSecret; +/** + * Prepends inputPath to the PATH (for this action and future actions) + * @param inputPath + */ function $da816f606135dc7c$var$addPath(inputPath) { + const filePath = process.env["GITHUB_PATH"] || ""; + if (filePath) $2c179eb4735c01c1$exports.issueFileCommand("PATH", inputPath); + else $a9fbfd6af7c376e3$exports.issueCommand("add-path", {}, inputPath); + process.env["PATH"] = `${inputPath}${$da816f606135dc7c$var$path.delimiter}${process.env["PATH"]}`; } -// ~, ~> --> * (any, kinda silly) -// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0 -// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0 -// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0 -// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0 -// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0 -function replaceTildes(comp, options) { - return comp.trim().split(/\s+/).map(function(comp) { - return replaceTilde(comp, options); - }).join(" "); +$da816f606135dc7c$exports.addPath = $da816f606135dc7c$var$addPath; +/** + * Gets the value of an input. + * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed. + * Returns an empty string if the value is not defined. + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns string + */ function $da816f606135dc7c$var$getInput(name, options) { + const val = process.env[`INPUT_${name.replace(/ /g, "_").toUpperCase()}`] || ""; + if (options && options.required && !val) throw new Error(`Input required and not supplied: ${name}`); + if (options && options.trimWhitespace === false) return val; + return val.trim(); +} +$da816f606135dc7c$exports.getInput = $da816f606135dc7c$var$getInput; +/** + * Gets the values of an multiline input. Each value is also trimmed. + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns string[] + * + */ function $da816f606135dc7c$var$getMultilineInput(name, options) { + const inputs = $da816f606135dc7c$var$getInput(name, options).split("\n").filter((x)=>x !== ""); + if (options && options.trimWhitespace === false) return inputs; + return inputs.map((input)=>input.trim()); +} +$da816f606135dc7c$exports.getMultilineInput = $da816f606135dc7c$var$getMultilineInput; +/** + * Gets the input value of the boolean type in the YAML 1.2 "core schema" specification. + * Support boolean input list: `true | True | TRUE | false | False | FALSE` . + * The return value is also in boolean type. + * ref: https://yaml.org/spec/1.2/spec.html#id2804923 + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns boolean + */ function $da816f606135dc7c$var$getBooleanInput(name, options) { + const trueValue = [ + "true", + "True", + "TRUE" + ]; + const falseValue = [ + "false", + "False", + "FALSE" + ]; + const val = $da816f606135dc7c$var$getInput(name, options); + if (trueValue.includes(val)) return true; + if (falseValue.includes(val)) return false; + throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${name}\n` + `Support boolean input list: \`true | True | TRUE | false | False | FALSE\``); +} +$da816f606135dc7c$exports.getBooleanInput = $da816f606135dc7c$var$getBooleanInput; +/** + * Sets the value of an output. + * + * @param name name of the output to set + * @param value value to store. Non-string values will be converted to a string via JSON.stringify + */ // eslint-disable-next-line @typescript-eslint/no-explicit-any +function $da816f606135dc7c$var$setOutput(name, value) { + const filePath = process.env["GITHUB_OUTPUT"] || ""; + if (filePath) return $2c179eb4735c01c1$exports.issueFileCommand("OUTPUT", $2c179eb4735c01c1$exports.prepareKeyValueMessage(name, value)); + process.stdout.write($da816f606135dc7c$var$os.EOL); + $a9fbfd6af7c376e3$exports.issueCommand("set-output", { + name: name + }, $c2eb91fd03840ff7$exports.toCommandValue(value)); +} +$da816f606135dc7c$exports.setOutput = $da816f606135dc7c$var$setOutput; +/** + * Enables or disables the echoing of commands into stdout for the rest of the step. + * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set. + * + */ function $da816f606135dc7c$var$setCommandEcho(enabled) { + $a9fbfd6af7c376e3$exports.issue("echo", enabled ? "on" : "off"); } -function replaceTilde(comp, options) { - var r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]; - return comp.replace(r, function(_, M, m, p, pr) { - debug("tilde", comp, _, M, m, p, pr); - var ret; - if (isX(M)) ret = ""; - else if (isX(m)) ret = ">=" + M + ".0.0 <" + (+M + 1) + ".0.0"; - else if (isX(p)) // ~1.2 == >=1.2.0 <1.3.0 - ret = ">=" + M + "." + m + ".0 <" + M + "." + (+m + 1) + ".0"; - else if (pr) { - debug("replaceTilde pr", pr); - ret = ">=" + M + "." + m + "." + p + "-" + pr + " <" + M + "." + (+m + 1) + ".0"; - } else // ~1.2.3 == >=1.2.3 <1.3.0 - ret = ">=" + M + "." + m + "." + p + " <" + M + "." + (+m + 1) + ".0"; - debug("tilde return", ret); - return ret; - }); +$da816f606135dc7c$exports.setCommandEcho = $da816f606135dc7c$var$setCommandEcho; +//----------------------------------------------------------------------- +// Results +//----------------------------------------------------------------------- +/** + * Sets the action status to failed. + * When the action exits it will be with an exit code of 1 + * @param message add error issue message + */ function $da816f606135dc7c$var$setFailed(message) { + process.exitCode = $da816f606135dc7c$var$ExitCode.Failure; + $da816f606135dc7c$var$error(message); } -// ^ --> * (any, kinda silly) -// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0 -// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0 -// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0 -// ^1.2.3 --> >=1.2.3 <2.0.0 -// ^1.2.0 --> >=1.2.0 <2.0.0 -function replaceCarets(comp, options) { - return comp.trim().split(/\s+/).map(function(comp) { - return replaceCaret(comp, options); - }).join(" "); +$da816f606135dc7c$exports.setFailed = $da816f606135dc7c$var$setFailed; +//----------------------------------------------------------------------- +// Logging Commands +//----------------------------------------------------------------------- +/** + * Gets whether Actions Step Debug is on or not + */ function $da816f606135dc7c$var$isDebug() { + return process.env["RUNNER_DEBUG"] === "1"; } -function replaceCaret(comp, options) { - debug("caret", comp, options); - var r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]; - return comp.replace(r, function(_, M, m, p, pr) { - debug("caret", comp, _, M, m, p, pr); - var ret; - if (isX(M)) ret = ""; - else if (isX(m)) ret = ">=" + M + ".0.0 <" + (+M + 1) + ".0.0"; - else if (isX(p)) { - if (M === "0") ret = ">=" + M + "." + m + ".0 <" + M + "." + (+m + 1) + ".0"; - else ret = ">=" + M + "." + m + ".0 <" + (+M + 1) + ".0.0"; - } else if (pr) { - debug("replaceCaret pr", pr); - if (M === "0") { - if (m === "0") ret = ">=" + M + "." + m + "." + p + "-" + pr + " <" + M + "." + m + "." + (+p + 1); - else ret = ">=" + M + "." + m + "." + p + "-" + pr + " <" + M + "." + (+m + 1) + ".0"; - } else ret = ">=" + M + "." + m + "." + p + "-" + pr + " <" + (+M + 1) + ".0.0"; - } else { - debug("no pr"); - if (M === "0") { - if (m === "0") ret = ">=" + M + "." + m + "." + p + " <" + M + "." + m + "." + (+p + 1); - else ret = ">=" + M + "." + m + "." + p + " <" + M + "." + (+m + 1) + ".0"; - } else ret = ">=" + M + "." + m + "." + p + " <" + (+M + 1) + ".0.0"; - } - debug("caret return", ret); - return ret; - }); +$da816f606135dc7c$exports.isDebug = $da816f606135dc7c$var$isDebug; +/** + * Writes debug message to user log + * @param message debug message + */ function $da816f606135dc7c$var$debug(message) { + $a9fbfd6af7c376e3$exports.issueCommand("debug", {}, message); } -function replaceXRanges(comp, options) { - debug("replaceXRanges", comp, options); - return comp.split(/\s+/).map(function(comp) { - return replaceXRange(comp, options); - }).join(" "); +$da816f606135dc7c$exports.debug = $da816f606135dc7c$var$debug; +/** + * Adds an error issue + * @param message error issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. + */ function $da816f606135dc7c$var$error(message, properties = {}) { + $a9fbfd6af7c376e3$exports.issueCommand("error", $c2eb91fd03840ff7$exports.toCommandProperties(properties), message instanceof Error ? message.toString() : message); } -function replaceXRange(comp, options) { - comp = comp.trim(); - var r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]; - return comp.replace(r, function(ret, gtlt, M, m, p, pr) { - debug("xRange", comp, ret, gtlt, M, m, p, pr); - var xM = isX(M); - var xm = xM || isX(m); - var xp = xm || isX(p); - var anyX = xp; - if (gtlt === "=" && anyX) gtlt = ""; - // if we're including prereleases in the match, then we need - // to fix this to -0, the lowest possible prerelease value - pr = options.includePrerelease ? "-0" : ""; - if (xM) { - if (gtlt === ">" || gtlt === "<") // nothing is allowed - ret = "<0.0.0-0"; - else // nothing is forbidden - ret = "*"; - } else if (gtlt && anyX) { - // we know patch is an x, because we have any x at all. - // replace X with 0 - if (xm) m = 0; - p = 0; - if (gtlt === ">") { - // >1 => >=2.0.0 - // >1.2 => >=1.3.0 - // >1.2.3 => >= 1.2.4 - gtlt = ">="; - if (xm) { - M = +M + 1; - m = 0; - p = 0; - } else { - m = +m + 1; - p = 0; - } - } else if (gtlt === "<=") { - // <=0.7.x is actually <0.8.0, since any 0.7.x should - // pass. Similarly, <=7.x is actually <8.0.0, etc. - gtlt = "<"; - if (xm) M = +M + 1; - else m = +m + 1; - } - ret = gtlt + M + "." + m + "." + p + pr; - } else if (xm) ret = ">=" + M + ".0.0" + pr + " <" + (+M + 1) + ".0.0" + pr; - else if (xp) ret = ">=" + M + "." + m + ".0" + pr + " <" + M + "." + (+m + 1) + ".0" + pr; - debug("xRange return", ret); - return ret; - }); +$da816f606135dc7c$exports.error = $da816f606135dc7c$var$error; +/** + * Adds a warning issue + * @param message warning issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. + */ function $da816f606135dc7c$var$warning(message, properties = {}) { + $a9fbfd6af7c376e3$exports.issueCommand("warning", $c2eb91fd03840ff7$exports.toCommandProperties(properties), message instanceof Error ? message.toString() : message); } -// Because * is AND-ed with everything else in the comparator, -// and '' means "any version", just remove the *s entirely. -function replaceStars(comp, options) { - debug("replaceStars", comp, options); - // Looseness is ignored here. star is always as loose as it gets! - return comp.trim().replace(re[t.STAR], ""); +$da816f606135dc7c$exports.warning = $da816f606135dc7c$var$warning; +/** + * Adds a notice issue + * @param message notice issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. + */ function $da816f606135dc7c$var$notice(message, properties = {}) { + $a9fbfd6af7c376e3$exports.issueCommand("notice", $c2eb91fd03840ff7$exports.toCommandProperties(properties), message instanceof Error ? message.toString() : message); } -// This function is passed to string.replace(re[t.HYPHENRANGE]) -// M, m, patch, prerelease, build -// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 -// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do -// 1.2 - 3.4 => >=1.2.0 <3.5.0 -function hyphenReplace($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) { - if (isX(fM)) from = ""; - else if (isX(fm)) from = ">=" + fM + ".0.0"; - else if (isX(fp)) from = ">=" + fM + "." + fm + ".0"; - else from = ">=" + from; - if (isX(tM)) to = ""; - else if (isX(tm)) to = "<" + (+tM + 1) + ".0.0"; - else if (isX(tp)) to = "<" + tM + "." + (+tm + 1) + ".0"; - else if (tpr) to = "<=" + tM + "." + tm + "." + tp + "-" + tpr; - else to = "<=" + to; - return (from + " " + to).trim(); +$da816f606135dc7c$exports.notice = $da816f606135dc7c$var$notice; +/** + * Writes info to log with console.log. + * @param message info message + */ function $da816f606135dc7c$var$info(message) { + process.stdout.write(message + $da816f606135dc7c$var$os.EOL); } -// if ANY of the sets match ALL of its comparators, then pass -Range.prototype.test = function(version) { - if (!version) return false; - if (typeof version === "string") try { - version = new SemVer(version, this.options); - } catch (er) { - return false; - } - for(var i = 0; i < this.set.length; i++){ - if (testSet(this.set[i], version, this.options)) return true; - } - return false; -}; -function testSet(set, version, options) { - for(var i = 0; i < set.length; i++){ - if (!set[i].test(version)) return false; - } - if (version.prerelease.length && !options.includePrerelease) { - // Find the set of versions that are allowed to have prereleases - // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 - // That should allow `1.2.3-pr.2` to pass. - // However, `1.2.4-alpha.notready` should NOT be allowed, - // even though it's within the range set by the comparators. - for(i = 0; i < set.length; i++){ - debug(set[i].semver); - if (set[i].semver === ANY) continue; - if (set[i].semver.prerelease.length > 0) { - var allowed = set[i].semver; - if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) return true; - } - } - // Version has a -pre, but it's not one of the ones we like. - return false; - } - return true; +$da816f606135dc7c$exports.info = $da816f606135dc7c$var$info; +/** + * Begin an output group. + * + * Output until the next `groupEnd` will be foldable in this group + * + * @param name The name of the output group + */ function $da816f606135dc7c$var$startGroup(name) { + $a9fbfd6af7c376e3$exports.issue("group", name); } -exports.satisfies = satisfies; -function satisfies(version, range, options) { - try { - range = new Range(range, options); - } catch (er) { - return false; - } - return range.test(version); +$da816f606135dc7c$exports.startGroup = $da816f606135dc7c$var$startGroup; +/** + * End an output group. + */ function $da816f606135dc7c$var$endGroup() { + $a9fbfd6af7c376e3$exports.issue("endgroup"); } -exports.maxSatisfying = maxSatisfying; -function maxSatisfying(versions, range, options) { - var max = null; - var maxSV = null; - try { - var rangeObj = new Range(range, options); - } catch (er) { - return null; - } - versions.forEach(function(v) { - if (rangeObj.test(v)) // satisfies(v, range, options) - { - if (!max || maxSV.compare(v) === -1) { - // compare(max, v, true) - max = v; - maxSV = new SemVer(max, options); - } +$da816f606135dc7c$exports.endGroup = $da816f606135dc7c$var$endGroup; +/** + * Wrap an asynchronous function call in a group. + * + * Returns the same type as the function itself. + * + * @param name The name of the group + * @param fn The function to wrap in the group + */ function $da816f606135dc7c$var$group(name, fn) { + return $da816f606135dc7c$var$__awaiter(this, void 0, void 0, function*() { + $da816f606135dc7c$var$startGroup(name); + let result; + try { + result = yield fn(); + } finally{ + $da816f606135dc7c$var$endGroup(); } + return result; }); - return max; } -exports.minSatisfying = minSatisfying; -function minSatisfying(versions, range, options) { - var min = null; - var minSV = null; - try { - var rangeObj = new Range(range, options); - } catch (er) { - return null; +$da816f606135dc7c$exports.group = $da816f606135dc7c$var$group; +//----------------------------------------------------------------------- +// Wrapper action state +//----------------------------------------------------------------------- +/** + * Saves state for current action, the state can only be retrieved by this action's post job execution. + * + * @param name name of the state to store + * @param value value to store. Non-string values will be converted to a string via JSON.stringify + */ // eslint-disable-next-line @typescript-eslint/no-explicit-any +function $da816f606135dc7c$var$saveState(name, value) { + const filePath = process.env["GITHUB_STATE"] || ""; + if (filePath) return $2c179eb4735c01c1$exports.issueFileCommand("STATE", $2c179eb4735c01c1$exports.prepareKeyValueMessage(name, value)); + $a9fbfd6af7c376e3$exports.issueCommand("save-state", { + name: name + }, $c2eb91fd03840ff7$exports.toCommandValue(value)); +} +$da816f606135dc7c$exports.saveState = $da816f606135dc7c$var$saveState; +/** + * Gets the value of an state set by this action's main execution. + * + * @param name name of the state to get + * @returns string + */ function $da816f606135dc7c$var$getState(name) { + return process.env[`STATE_${name}`] || ""; +} +$da816f606135dc7c$exports.getState = $da816f606135dc7c$var$getState; +function $da816f606135dc7c$var$getIDToken(aud) { + return $da816f606135dc7c$var$__awaiter(this, void 0, void 0, function*() { + return yield $d5b1c01683378567$exports.OidcClient.getIDToken(aud); + }); +} +$da816f606135dc7c$exports.getIDToken = $da816f606135dc7c$var$getIDToken; +var $81e5bbd73b3acf84$exports = {}; +"use strict"; +var $81e5bbd73b3acf84$var$__awaiter = $81e5bbd73b3acf84$exports && $81e5bbd73b3acf84$exports.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); } - versions.forEach(function(v) { - if (rangeObj.test(v)) // satisfies(v, range, options) - { - if (!min || minSV.compare(v) === 1) { - // compare(min, v, true) - min = v; - minSV = new SemVer(min, options); + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); } } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); }); - return min; -} -exports.minVersion = minVersion; -function minVersion(range, loose) { - range = new Range(range, loose); - var minver = new SemVer("0.0.0"); - if (range.test(minver)) return minver; - minver = new SemVer("0.0.0-0"); - if (range.test(minver)) return minver; - minver = null; - for(var i = 0; i < range.set.length; ++i){ - var comparators = range.set[i]; - comparators.forEach(function(comparator) { - // Clone to avoid manipulating the comparator's semver object. - var compver = new SemVer(comparator.semver.version); - switch(comparator.operator){ - case ">": - if (compver.prerelease.length === 0) compver.patch++; - else compver.prerelease.push(0); - compver.raw = compver.format(); - /* fallthrough */ case "": - case ">=": - if (!minver || gt(minver, compver)) minver = compver; - break; - case "<": - case "<=": - break; - /* istanbul ignore next */ default: - throw new Error("Unexpected operation: " + comparator.operator); +}; +Object.defineProperty($81e5bbd73b3acf84$exports, "__esModule", { + value: true +}); +$81e5bbd73b3acf84$exports.summary = $81e5bbd73b3acf84$exports.markdownSummary = $81e5bbd73b3acf84$exports.SUMMARY_DOCS_URL = $81e5bbd73b3acf84$exports.SUMMARY_ENV_VAR = void 0; + + +const { access: $81e5bbd73b3acf84$var$access, appendFile: $81e5bbd73b3acf84$var$appendFile, writeFile: $81e5bbd73b3acf84$var$writeFile } = $bknAJ$fs.promises; +$81e5bbd73b3acf84$exports.SUMMARY_ENV_VAR = "GITHUB_STEP_SUMMARY"; +$81e5bbd73b3acf84$exports.SUMMARY_DOCS_URL = "https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary"; +class $81e5bbd73b3acf84$var$Summary { + constructor(){ + this._buffer = ""; + } + /** + * Finds the summary file path from the environment, rejects if env var is not found or file does not exist + * Also checks r/w permissions. + * + * @returns step summary file path + */ filePath() { + return $81e5bbd73b3acf84$var$__awaiter(this, void 0, void 0, function*() { + if (this._filePath) return this._filePath; + const pathFromEnv = process.env[$81e5bbd73b3acf84$exports.SUMMARY_ENV_VAR]; + if (!pathFromEnv) throw new Error(`Unable to find environment variable for $${$81e5bbd73b3acf84$exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`); + try { + yield $81e5bbd73b3acf84$var$access(pathFromEnv, $bknAJ$fs.constants.R_OK | $bknAJ$fs.constants.W_OK); + } catch (_a) { + throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`); } + this._filePath = pathFromEnv; + return this._filePath; + }); + } + /** + * Wraps content in an HTML tag, adding any HTML attributes + * + * @param {string} tag HTML tag to wrap + * @param {string | null} content content within the tag + * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add + * + * @returns {string} content wrapped in HTML element + */ wrap(tag, content, attrs = {}) { + const htmlAttrs = Object.entries(attrs).map(([key, value])=>` ${key}="${value}"`).join(""); + if (!content) return `<${tag}${htmlAttrs}>`; + return `<${tag}${htmlAttrs}>${content}`; + } + /** + * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default. + * + * @param {SummaryWriteOptions} [options] (optional) options for write operation + * + * @returns {Promise} summary instance + */ write(options) { + return $81e5bbd73b3acf84$var$__awaiter(this, void 0, void 0, function*() { + const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite); + const filePath = yield this.filePath(); + const writeFunc = overwrite ? $81e5bbd73b3acf84$var$writeFile : $81e5bbd73b3acf84$var$appendFile; + yield writeFunc(filePath, this._buffer, { + encoding: "utf8" + }); + return this.emptyBuffer(); + }); + } + /** + * Clears the summary buffer and wipes the summary file + * + * @returns {Summary} summary instance + */ clear() { + return $81e5bbd73b3acf84$var$__awaiter(this, void 0, void 0, function*() { + return this.emptyBuffer().write({ + overwrite: true + }); + }); + } + /** + * Returns the current summary buffer as a string + * + * @returns {string} string of summary buffer + */ stringify() { + return this._buffer; + } + /** + * If the summary buffer is empty + * + * @returns {boolen} true if the buffer is empty + */ isEmptyBuffer() { + return this._buffer.length === 0; + } + /** + * Resets the summary buffer without writing to summary file + * + * @returns {Summary} summary instance + */ emptyBuffer() { + this._buffer = ""; + return this; + } + /** + * Adds raw text to the summary buffer + * + * @param {string} text content to add + * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false) + * + * @returns {Summary} summary instance + */ addRaw(text, addEOL = false) { + this._buffer += text; + return addEOL ? this.addEOL() : this; + } + /** + * Adds the operating system-specific end-of-line marker to the buffer + * + * @returns {Summary} summary instance + */ addEOL() { + return this.addRaw($bknAJ$os.EOL); + } + /** + * Adds an HTML codeblock to the summary buffer + * + * @param {string} code content to render within fenced code block + * @param {string} lang (optional) language to syntax highlight code + * + * @returns {Summary} summary instance + */ addCodeBlock(code, lang) { + const attrs = Object.assign({}, lang && { + lang: lang + }); + const element = this.wrap("pre", this.wrap("code", code), attrs); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML list to the summary buffer + * + * @param {string[]} items list of items to render + * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false) + * + * @returns {Summary} summary instance + */ addList(items, ordered = false) { + const tag = ordered ? "ol" : "ul"; + const listItems = items.map((item)=>this.wrap("li", item)).join(""); + const element = this.wrap(tag, listItems); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML table to the summary buffer + * + * @param {SummaryTableCell[]} rows table rows + * + * @returns {Summary} summary instance + */ addTable(rows) { + const tableBody = rows.map((row)=>{ + const cells = row.map((cell)=>{ + if (typeof cell === "string") return this.wrap("td", cell); + const { header: header, data: data, colspan: colspan, rowspan: rowspan } = cell; + const tag = header ? "th" : "td"; + const attrs = Object.assign(Object.assign({}, colspan && { + colspan: colspan + }), rowspan && { + rowspan: rowspan + }); + return this.wrap(tag, data, attrs); + }).join(""); + return this.wrap("tr", cells); + }).join(""); + const element = this.wrap("table", tableBody); + return this.addRaw(element).addEOL(); + } + /** + * Adds a collapsable HTML details element to the summary buffer + * + * @param {string} label text for the closed state + * @param {string} content collapsable content + * + * @returns {Summary} summary instance + */ addDetails(label, content) { + const element = this.wrap("details", this.wrap("summary", label) + content); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML image tag to the summary buffer + * + * @param {string} src path to the image you to embed + * @param {string} alt text description of the image + * @param {SummaryImageOptions} options (optional) addition image attributes + * + * @returns {Summary} summary instance + */ addImage(src, alt, options) { + const { width: width, height: height } = options || {}; + const attrs = Object.assign(Object.assign({}, width && { + width: width + }), height && { + height: height }); + const element = this.wrap("img", null, Object.assign({ + src: src, + alt: alt + }, attrs)); + return this.addRaw(element).addEOL(); } - if (minver && range.test(minver)) return minver; - return null; -} -exports.validRange = validRange; -function validRange(range, options) { - try { - // Return '*' instead of '' so that truthiness works. - // This will throw if it's invalid anyway - return new Range(range, options).range || "*"; - } catch (er) { - return null; + /** + * Adds an HTML section heading element + * + * @param {string} text heading text + * @param {number | string} [level=1] (optional) the heading level, default: 1 + * + * @returns {Summary} summary instance + */ addHeading(text, level) { + const tag = `h${level}`; + const allowedTag = [ + "h1", + "h2", + "h3", + "h4", + "h5", + "h6" + ].includes(tag) ? tag : "h1"; + const element = this.wrap(allowedTag, text); + return this.addRaw(element).addEOL(); } -} -// Determine if version is less than all the versions possible in the range -exports.ltr = ltr; -function ltr(version, range, options) { - return outside(version, range, "<", options); -} -// Determine if version is greater than all the versions possible in the range. -exports.gtr = gtr; -function gtr(version, range, options) { - return outside(version, range, ">", options); -} -exports.outside = outside; -function outside(version, range, hilo, options) { - version = new SemVer(version, options); - range = new Range(range, options); - var gtfn, ltefn, ltfn, comp, ecomp; - switch(hilo){ - case ">": - gtfn = gt; - ltefn = lte; - ltfn = lt; - comp = ">"; - ecomp = ">="; - break; - case "<": - gtfn = lt; - ltefn = gte; - ltfn = gt; - comp = "<"; - ecomp = "<="; - break; - default: - throw new TypeError('Must provide a hilo val of "<" or ">"'); + /** + * Adds an HTML thematic break (
) to the summary buffer + * + * @returns {Summary} summary instance + */ addSeparator() { + const element = this.wrap("hr", null); + return this.addRaw(element).addEOL(); } - // If it satisifes the range it is not outside - if (satisfies(version, range, options)) return false; - // From now on, variable terms are as if we're in "gtr" mode. - // but note that everything is flipped for the "ltr" function. - for(var i = 0; i < range.set.length; ++i){ - var comparators = range.set[i]; - var high = null; - var low = null; - comparators.forEach(function(comparator) { - if (comparator.semver === ANY) comparator = new Comparator(">=0.0.0"); - high = high || comparator; - low = low || comparator; - if (gtfn(comparator.semver, high.semver, options)) high = comparator; - else if (ltfn(comparator.semver, low.semver, options)) low = comparator; + /** + * Adds an HTML line break (
) to the summary buffer + * + * @returns {Summary} summary instance + */ addBreak() { + const element = this.wrap("br", null); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML blockquote to the summary buffer + * + * @param {string} text quote text + * @param {string} cite (optional) citation url + * + * @returns {Summary} summary instance + */ addQuote(text, cite) { + const attrs = Object.assign({}, cite && { + cite: cite }); - // If the edge version comparator has a operator then our version - // isn't outside it - if (high.operator === comp || high.operator === ecomp) return false; - // If the lowest version comparator has an operator and our version - // is less than it then it isn't higher than the range - if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) return false; - else if (low.operator === ecomp && ltfn(version, low.semver)) return false; + const element = this.wrap("blockquote", text, attrs); + return this.addRaw(element).addEOL(); } - return true; -} -exports.prerelease = prerelease; -function prerelease(version, options) { - var parsed = parse(version, options); - return parsed && parsed.prerelease.length ? parsed.prerelease : null; -} -exports.intersects = intersects; -function intersects(r1, r2, options) { - r1 = new Range(r1, options); - r2 = new Range(r2, options); - return r1.intersects(r2); -} -exports.coerce = coerce; -function coerce(version, options) { - if (version instanceof SemVer) return version; - if (typeof version === "number") version = String(version); - if (typeof version !== "string") return null; - options = options || {}; - var match = null; - if (!options.rtl) match = version.match(re[t.COERCE]); - else { - // Find the right-most coercible string that does not share - // a terminus with a more left-ward coercible string. - // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4' - // - // Walk through the string checking with a /g regexp - // Manually set the index so as to pick up overlapping matches. - // Stop when we get a match that ends at the string end, since no - // coercible string can be more right-ward without the same terminus. - var next; - while((next = re[t.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length)){ - if (!match || next.index + next[0].length !== match.index + match[0].length) match = next; - re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length; - } - // leave it in a clean state - re[t.COERCERTL].lastIndex = -1; + /** + * Adds an HTML anchor tag to the summary buffer + * + * @param {string} text link text/content + * @param {string} href hyperlink + * + * @returns {Summary} summary instance + */ addLink(text, href) { + const element = this.wrap("a", text, { + href: href + }); + return this.addRaw(element).addEOL(); } - if (match === null) return null; - return parse(match[2] + "." + (match[3] || "0") + "." + (match[4] || "0"), options); } +const $81e5bbd73b3acf84$var$_summary = new $81e5bbd73b3acf84$var$Summary(); +/** + * @deprecated use `core.summary` + */ $81e5bbd73b3acf84$exports.markdownSummary = $81e5bbd73b3acf84$var$_summary; +$81e5bbd73b3acf84$exports.summary = $81e5bbd73b3acf84$var$_summary; -}); - - -parcelRequire.register("g6B2s", function(module, exports) { -var $kfhgL = parcelRequire("kfhgL"); +Object.defineProperty($da816f606135dc7c$exports, "summary", { + enumerable: true, + get: function() { + return $81e5bbd73b3acf84$exports.summary; + } +}); -var $kSKLw = parcelRequire("kSKLw"); -function $bb99eff98e35887e$var$v4(options, buf, offset) { - var i = buf && offset || 0; - if (typeof options == "string") { - buf = options === "binary" ? new Array(16) : null; - options = null; +Object.defineProperty($da816f606135dc7c$exports, "markdownSummary", { + enumerable: true, + get: function() { + return $81e5bbd73b3acf84$exports.markdownSummary; } - options = options || {}; - var rnds = options.random || (options.rng || $kfhgL)(); - // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` - rnds[6] = rnds[6] & 0x0f | 0x40; - rnds[8] = rnds[8] & 0x3f | 0x80; - // Copy bytes to buffer, if provided - if (buf) for(var ii = 0; ii < 16; ++ii)buf[i + ii] = rnds[ii]; - return buf || $kSKLw(rnds); +}); +var $7653c651a9afc0a7$exports = {}; +"use strict"; +var $7653c651a9afc0a7$var$__createBinding = $7653c651a9afc0a7$exports && $7653c651a9afc0a7$exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { + enumerable: true, + get: function() { + return m[k]; + } + }); +} : function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +}); +var $7653c651a9afc0a7$var$__setModuleDefault = $7653c651a9afc0a7$exports && $7653c651a9afc0a7$exports.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { + enumerable: true, + value: v + }); +} : function(o, v) { + o["default"] = v; +}); +var $7653c651a9afc0a7$var$__importStar = $7653c651a9afc0a7$exports && $7653c651a9afc0a7$exports.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $7653c651a9afc0a7$var$__createBinding(result, mod, k); + } + $7653c651a9afc0a7$var$__setModuleDefault(result, mod); + return result; +}; +Object.defineProperty($7653c651a9afc0a7$exports, "__esModule", { + value: true +}); +$7653c651a9afc0a7$exports.toPlatformPath = $7653c651a9afc0a7$exports.toWin32Path = $7653c651a9afc0a7$exports.toPosixPath = void 0; + +const $7653c651a9afc0a7$var$path = $7653c651a9afc0a7$var$__importStar($bknAJ$path); +/** + * toPosixPath converts the given path to the posix form. On Windows, \\ will be + * replaced with /. + * + * @param pth. Path to transform. + * @return string Posix path. + */ function $7653c651a9afc0a7$var$toPosixPath(pth) { + return pth.replace(/[\\]/g, "/"); +} +$7653c651a9afc0a7$exports.toPosixPath = $7653c651a9afc0a7$var$toPosixPath; +/** + * toWin32Path converts the given path to the win32 form. On Linux, / will be + * replaced with \\. + * + * @param pth. Path to transform. + * @return string Win32 path. + */ function $7653c651a9afc0a7$var$toWin32Path(pth) { + return pth.replace(/[/]/g, "\\"); } -module.exports = $bb99eff98e35887e$var$v4; - -}); -parcelRequire.register("kfhgL", function(module, exports) { -// Unique ID creation requires a high quality random # generator. In node.js -// this is pretty straight-forward - we use the crypto API. - -module.exports = function nodeRNG() { - return $kzVu7$crypto.randomBytes(16); -}; - -}); - -parcelRequire.register("kSKLw", function(module, exports) { +$7653c651a9afc0a7$exports.toWin32Path = $7653c651a9afc0a7$var$toWin32Path; /** - * Convert array of 16 byte values to UUID string format of the form: - * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - */ var $f33d207452689805$var$byteToHex = []; -for(var $f33d207452689805$var$i = 0; $f33d207452689805$var$i < 256; ++$f33d207452689805$var$i)$f33d207452689805$var$byteToHex[$f33d207452689805$var$i] = ($f33d207452689805$var$i + 0x100).toString(16).substr(1); -function $f33d207452689805$var$bytesToUuid(buf, offset) { - var i = offset || 0; - var bth = $f33d207452689805$var$byteToHex; - // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4 - return [ - bth[buf[i++]], - bth[buf[i++]], - bth[buf[i++]], - bth[buf[i++]], - "-", - bth[buf[i++]], - bth[buf[i++]], - "-", - bth[buf[i++]], - bth[buf[i++]], - "-", - bth[buf[i++]], - bth[buf[i++]], - "-", - bth[buf[i++]], - bth[buf[i++]], - bth[buf[i++]], - bth[buf[i++]], - bth[buf[i++]], - bth[buf[i++]] - ].join(""); + * toPlatformPath converts the given path to a platform-specific path. It does + * this by replacing instances of / and \ with the platform-specific path + * separator. + * + * @param pth The path to platformize. + * @return string The platform-specific path. + */ function $7653c651a9afc0a7$var$toPlatformPath(pth) { + return pth.replace(/[/\\]/g, $7653c651a9afc0a7$var$path.sep); } -module.exports = $f33d207452689805$var$bytesToUuid; +$7653c651a9afc0a7$exports.toPlatformPath = $7653c651a9afc0a7$var$toPlatformPath; + +Object.defineProperty($da816f606135dc7c$exports, "toPosixPath", { + enumerable: true, + get: function() { + return $7653c651a9afc0a7$exports.toPosixPath; + } +}); +Object.defineProperty($da816f606135dc7c$exports, "toWin32Path", { + enumerable: true, + get: function() { + return $7653c651a9afc0a7$exports.toWin32Path; + } +}); +Object.defineProperty($da816f606135dc7c$exports, "toPlatformPath", { + enumerable: true, + get: function() { + return $7653c651a9afc0a7$exports.toPlatformPath; + } }); -parcelRequire.register("cIFTL", function(module, exports) { + +var $f2fb9ed99c4d106b$exports = {}; "use strict"; -var $942a183ae3ab4423$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { +var $f2fb9ed99c4d106b$var$__createBinding = $f2fb9ed99c4d106b$exports && $f2fb9ed99c4d106b$exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { + enumerable: true, + get: function() { + return m[k]; + } + }); +} : function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +}); +var $f2fb9ed99c4d106b$var$__setModuleDefault = $f2fb9ed99c4d106b$exports && $f2fb9ed99c4d106b$exports.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { + enumerable: true, + value: v + }); +} : function(o, v) { + o["default"] = v; +}); +var $f2fb9ed99c4d106b$var$__importStar = $f2fb9ed99c4d106b$exports && $f2fb9ed99c4d106b$exports.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $f2fb9ed99c4d106b$var$__createBinding(result, mod, k); + } + $f2fb9ed99c4d106b$var$__setModuleDefault(result, mod); + return result; +}; +var $f2fb9ed99c4d106b$var$__awaiter = $f2fb9ed99c4d106b$exports && $f2fb9ed99c4d106b$exports.__awaiter || function(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve) { resolve(value); @@ -6631,20 +6408,13 @@ var $942a183ae3ab4423$var$__awaiter = module.exports && module.exports.__awaiter step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -var $942a183ae3ab4423$var$__importStar = module.exports && module.exports.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) { - for(var k in mod)if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - } - result["default"] = mod; - return result; -}; -Object.defineProperty(module.exports, "__esModule", { +Object.defineProperty($f2fb9ed99c4d106b$exports, "__esModule", { value: true }); +$f2fb9ed99c4d106b$exports.getExecOutput = $f2fb9ed99c4d106b$exports.exec = void 0; -const $942a183ae3ab4423$var$tr = $942a183ae3ab4423$var$__importStar((parcelRequire("1CL8c"))); + +const $f2fb9ed99c4d106b$var$tr = $f2fb9ed99c4d106b$var$__importStar((parcelRequire("2sRbM"))); /** * Exec a command. * Output will be streamed to the live console. @@ -6654,23 +6424,97 @@ const $942a183ae3ab4423$var$tr = $942a183ae3ab4423$var$__importStar((parcelRequi * @param args optional arguments for tool. Escaping is handled by the lib. * @param options optional exec options. See ExecOptions * @returns Promise exit code - */ function $942a183ae3ab4423$var$exec(commandLine, args, options) { - return $942a183ae3ab4423$var$__awaiter(this, void 0, void 0, function*() { - const commandArgs = $942a183ae3ab4423$var$tr.argStringToArray(commandLine); + */ function $f2fb9ed99c4d106b$var$exec(commandLine, args, options) { + return $f2fb9ed99c4d106b$var$__awaiter(this, void 0, void 0, function*() { + const commandArgs = $f2fb9ed99c4d106b$var$tr.argStringToArray(commandLine); if (commandArgs.length === 0) throw new Error(`Parameter 'commandLine' cannot be null or empty.`); // Path to tool to execute should be first arg const toolPath = commandArgs[0]; args = commandArgs.slice(1).concat(args || []); - const runner = new $942a183ae3ab4423$var$tr.ToolRunner(toolPath, args, options); + const runner = new $f2fb9ed99c4d106b$var$tr.ToolRunner(toolPath, args, options); return runner.exec(); }); } -module.exports.exec = $942a183ae3ab4423$var$exec; +$f2fb9ed99c4d106b$exports.exec = $f2fb9ed99c4d106b$var$exec; +/** + * Exec a command and get the output. + * Output will be streamed to the live console. + * Returns promise with the exit code and collected stdout and stderr + * + * @param commandLine command to execute (can include additional args). Must be correctly escaped. + * @param args optional arguments for tool. Escaping is handled by the lib. + * @param options optional exec options. See ExecOptions + * @returns Promise exit code, stdout, and stderr + */ function $f2fb9ed99c4d106b$var$getExecOutput(commandLine, args, options) { + var _a, _b; + return $f2fb9ed99c4d106b$var$__awaiter(this, void 0, void 0, function*() { + let stdout = ""; + let stderr = ""; + //Using string decoder covers the case where a mult-byte character is split + const stdoutDecoder = new $bknAJ$string_decoder.StringDecoder("utf8"); + const stderrDecoder = new $bknAJ$string_decoder.StringDecoder("utf8"); + const originalStdoutListener = (_a = options === null || options === void 0 ? void 0 : options.listeners) === null || _a === void 0 ? void 0 : _a.stdout; + const originalStdErrListener = (_b = options === null || options === void 0 ? void 0 : options.listeners) === null || _b === void 0 ? void 0 : _b.stderr; + const stdErrListener = (data)=>{ + stderr += stderrDecoder.write(data); + if (originalStdErrListener) originalStdErrListener(data); + }; + const stdOutListener = (data)=>{ + stdout += stdoutDecoder.write(data); + if (originalStdoutListener) originalStdoutListener(data); + }; + const listeners = Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.listeners), { + stdout: stdOutListener, + stderr: stdErrListener + }); + const exitCode = yield $f2fb9ed99c4d106b$var$exec(commandLine, args, Object.assign(Object.assign({}, options), { + listeners: listeners + })); + //flush any remaining characters + stdout += stdoutDecoder.end(); + stderr += stderrDecoder.end(); + return { + exitCode: exitCode, + stdout: stdout, + stderr: stderr + }; + }); +} +$f2fb9ed99c4d106b$exports.getExecOutput = $f2fb9ed99c4d106b$var$getExecOutput; -}); -parcelRequire.register("1CL8c", function(module, exports) { + +var $58ae6a13f2ee10a4$exports = {}; "use strict"; -var $12ede656a89c462d$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { +var $58ae6a13f2ee10a4$var$__createBinding = $58ae6a13f2ee10a4$exports && $58ae6a13f2ee10a4$exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { + enumerable: true, + get: function() { + return m[k]; + } + }); +} : function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +}); +var $58ae6a13f2ee10a4$var$__setModuleDefault = $58ae6a13f2ee10a4$exports && $58ae6a13f2ee10a4$exports.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { + enumerable: true, + value: v + }); +} : function(o, v) { + o["default"] = v; +}); +var $58ae6a13f2ee10a4$var$__importStar = $58ae6a13f2ee10a4$exports && $58ae6a13f2ee10a4$exports.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $58ae6a13f2ee10a4$var$__createBinding(result, mod, k); + } + $58ae6a13f2ee10a4$var$__setModuleDefault(result, mod); + return result; +}; +var $58ae6a13f2ee10a4$var$__awaiter = $58ae6a13f2ee10a4$exports && $58ae6a13f2ee10a4$exports.__awaiter || function(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve) { resolve(value); @@ -6697,489 +6541,418 @@ var $12ede656a89c462d$var$__awaiter = module.exports && module.exports.__awaiter step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -var $12ede656a89c462d$var$__importStar = module.exports && module.exports.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) { - for(var k in mod)if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - } - result["default"] = mod; - return result; -}; -Object.defineProperty(module.exports, "__esModule", { +Object.defineProperty($58ae6a13f2ee10a4$exports, "__esModule", { value: true }); +$58ae6a13f2ee10a4$exports.findInPath = $58ae6a13f2ee10a4$exports.which = $58ae6a13f2ee10a4$exports.mkdirP = $58ae6a13f2ee10a4$exports.rmRF = $58ae6a13f2ee10a4$exports.mv = $58ae6a13f2ee10a4$exports.cp = void 0; -const $12ede656a89c462d$var$os = $12ede656a89c462d$var$__importStar($kzVu7$os); - -const $12ede656a89c462d$var$events = $12ede656a89c462d$var$__importStar($kzVu7$events); - -const $12ede656a89c462d$var$child = $12ede656a89c462d$var$__importStar($kzVu7$child_process); - -const $12ede656a89c462d$var$path = $12ede656a89c462d$var$__importStar($kzVu7$path); -const $12ede656a89c462d$var$io = $12ede656a89c462d$var$__importStar((parcelRequire("43Rhh"))); +const $58ae6a13f2ee10a4$var$path = $58ae6a13f2ee10a4$var$__importStar($bknAJ$path); -const $12ede656a89c462d$var$ioUtil = $12ede656a89c462d$var$__importStar((parcelRequire("b4kaZ"))); -/* eslint-disable @typescript-eslint/unbound-method */ const $12ede656a89c462d$var$IS_WINDOWS = process.platform === "win32"; -/* - * Class for running command line tools. Handles quoting and arg parsing in a platform agnostic way. - */ class $12ede656a89c462d$var$ToolRunner extends $12ede656a89c462d$var$events.EventEmitter { - constructor(toolPath, args, options){ - super(); - if (!toolPath) throw new Error("Parameter 'toolPath' cannot be null or empty."); - this.toolPath = toolPath; - this.args = args || []; - this.options = options || {}; - } - _debug(message) { - if (this.options.listeners && this.options.listeners.debug) this.options.listeners.debug(message); - } - _getCommandString(options, noPrefix) { - const toolPath = this._getSpawnFileName(); - const args = this._getSpawnArgs(options); - let cmd = noPrefix ? "" : "[command]"; // omit prefix when piped to a second tool - if ($12ede656a89c462d$var$IS_WINDOWS) { - // Windows + cmd file - if (this._isCmdFile()) { - cmd += toolPath; - for (const a of args)cmd += ` ${a}`; - } else if (options.windowsVerbatimArguments) { - cmd += `"${toolPath}"`; - for (const a of args)cmd += ` ${a}`; - } else { - cmd += this._windowsQuoteCmdArg(toolPath); - for (const a of args)cmd += ` ${this._windowsQuoteCmdArg(a)}`; +const $58ae6a13f2ee10a4$var$ioUtil = $58ae6a13f2ee10a4$var$__importStar((parcelRequire("iRnUA"))); +/** + * Copies a file or folder. + * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js + * + * @param source source path + * @param dest destination path + * @param options optional. See CopyOptions. + */ function $58ae6a13f2ee10a4$var$cp(source, dest, options = {}) { + return $58ae6a13f2ee10a4$var$__awaiter(this, void 0, void 0, function*() { + const { force: force, recursive: recursive, copySourceDirectory: copySourceDirectory } = $58ae6a13f2ee10a4$var$readCopyOptions(options); + const destStat = (yield $58ae6a13f2ee10a4$var$ioUtil.exists(dest)) ? yield $58ae6a13f2ee10a4$var$ioUtil.stat(dest) : null; + // Dest is an existing file, but not forcing + if (destStat && destStat.isFile() && !force) return; + // If dest is an existing directory, should copy inside. + const newDest = destStat && destStat.isDirectory() && copySourceDirectory ? $58ae6a13f2ee10a4$var$path.join(dest, $58ae6a13f2ee10a4$var$path.basename(source)) : dest; + if (!(yield $58ae6a13f2ee10a4$var$ioUtil.exists(source))) throw new Error(`no such file or directory: ${source}`); + const sourceStat = yield $58ae6a13f2ee10a4$var$ioUtil.stat(source); + if (sourceStat.isDirectory()) { + if (!recursive) throw new Error(`Failed to copy. ${source} is a directory, but tried to copy without recursive flag.`); + else yield $58ae6a13f2ee10a4$var$cpDirRecursive(source, newDest, 0, force); + } else { + if ($58ae6a13f2ee10a4$var$path.relative(source, newDest) === "") // a file cannot be copied to itself + throw new Error(`'${newDest}' and '${source}' are the same file`); + yield $58ae6a13f2ee10a4$var$copyFile(source, newDest, force); + } + }); +} +$58ae6a13f2ee10a4$exports.cp = $58ae6a13f2ee10a4$var$cp; +/** + * Moves a path. + * + * @param source source path + * @param dest destination path + * @param options optional. See MoveOptions. + */ function $58ae6a13f2ee10a4$var$mv(source, dest, options = {}) { + return $58ae6a13f2ee10a4$var$__awaiter(this, void 0, void 0, function*() { + if (yield $58ae6a13f2ee10a4$var$ioUtil.exists(dest)) { + let destExists = true; + if (yield $58ae6a13f2ee10a4$var$ioUtil.isDirectory(dest)) { + // If dest is directory copy src into dest + dest = $58ae6a13f2ee10a4$var$path.join(dest, $58ae6a13f2ee10a4$var$path.basename(source)); + destExists = yield $58ae6a13f2ee10a4$var$ioUtil.exists(dest); + } + if (destExists) { + if (options.force == null || options.force) yield $58ae6a13f2ee10a4$var$rmRF(dest); + else throw new Error("Destination already exists"); } - } else { - // OSX/Linux - this can likely be improved with some form of quoting. - // creating processes on Unix is fundamentally different than Windows. - // on Unix, execvp() takes an arg array. - cmd += toolPath; - for (const a of args)cmd += ` ${a}`; } - return cmd; - } - _processLineBuffer(data, strBuffer, onLine) { + yield $58ae6a13f2ee10a4$var$mkdirP($58ae6a13f2ee10a4$var$path.dirname(dest)); + yield $58ae6a13f2ee10a4$var$ioUtil.rename(source, dest); + }); +} +$58ae6a13f2ee10a4$exports.mv = $58ae6a13f2ee10a4$var$mv; +/** + * Remove a path recursively with force + * + * @param inputPath path to remove + */ function $58ae6a13f2ee10a4$var$rmRF(inputPath) { + return $58ae6a13f2ee10a4$var$__awaiter(this, void 0, void 0, function*() { + if ($58ae6a13f2ee10a4$var$ioUtil.IS_WINDOWS) { + // Check for invalid characters + // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file + if (/[*"<>|]/.test(inputPath)) throw new Error('File path must not contain `*`, `"`, `<`, `>` or `|` on Windows'); + } try { - let s = strBuffer + data.toString(); - let n = s.indexOf($12ede656a89c462d$var$os.EOL); - while(n > -1){ - const line = s.substring(0, n); - onLine(line); - // the rest of the string ... - s = s.substring(n + $12ede656a89c462d$var$os.EOL.length); - n = s.indexOf($12ede656a89c462d$var$os.EOL); - } - strBuffer = s; + // note if path does not exist, error is silent + yield $58ae6a13f2ee10a4$var$ioUtil.rm(inputPath, { + force: true, + maxRetries: 3, + recursive: true, + retryDelay: 300 + }); } catch (err) { - // streaming lines to console is best effort. Don't fail a build. - this._debug(`error processing line. Failed with error ${err}`); - } - } - _getSpawnFileName() { - if ($12ede656a89c462d$var$IS_WINDOWS) { - if (this._isCmdFile()) return process.env["COMSPEC"] || "cmd.exe"; + throw new Error(`File was unable to be removed ${err}`); } - return this.toolPath; - } - _getSpawnArgs(options) { - if ($12ede656a89c462d$var$IS_WINDOWS) { - if (this._isCmdFile()) { - let argline = `/D /S /C "${this._windowsQuoteCmdArg(this.toolPath)}`; - for (const a of this.args){ - argline += " "; - argline += options.windowsVerbatimArguments ? a : this._windowsQuoteCmdArg(a); - } - argline += '"'; - return [ - argline - ]; + }); +} +$58ae6a13f2ee10a4$exports.rmRF = $58ae6a13f2ee10a4$var$rmRF; +/** + * Make a directory. Creates the full path with folders in between + * Will throw if it fails + * + * @param fsPath path to create + * @returns Promise + */ function $58ae6a13f2ee10a4$var$mkdirP(fsPath) { + return $58ae6a13f2ee10a4$var$__awaiter(this, void 0, void 0, function*() { + $bknAJ$assert.ok(fsPath, "a path argument must be provided"); + yield $58ae6a13f2ee10a4$var$ioUtil.mkdir(fsPath, { + recursive: true + }); + }); +} +$58ae6a13f2ee10a4$exports.mkdirP = $58ae6a13f2ee10a4$var$mkdirP; +/** + * Returns path of a tool had the tool actually been invoked. Resolves via paths. + * If you check and the tool does not exist, it will throw. + * + * @param tool name of the tool + * @param check whether to check if tool exists + * @returns Promise path to tool + */ function $58ae6a13f2ee10a4$var$which(tool, check) { + return $58ae6a13f2ee10a4$var$__awaiter(this, void 0, void 0, function*() { + if (!tool) throw new Error("parameter 'tool' is required"); + // recursive when check=true + if (check) { + const result = yield $58ae6a13f2ee10a4$var$which(tool, false); + if (!result) { + if ($58ae6a13f2ee10a4$var$ioUtil.IS_WINDOWS) throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`); + else throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`); } + return result; } - return this.args; - } - _endsWith(str, end) { - return str.endsWith(end); - } - _isCmdFile() { - const upperToolPath = this.toolPath.toUpperCase(); - return this._endsWith(upperToolPath, ".CMD") || this._endsWith(upperToolPath, ".BAT"); - } - _windowsQuoteCmdArg(arg) { - // for .exe, apply the normal quoting rules that libuv applies - if (!this._isCmdFile()) return this._uvQuoteCmdArg(arg); - // otherwise apply quoting rules specific to the cmd.exe command line parser. - // the libuv rules are generic and are not designed specifically for cmd.exe - // command line parser. - // - // for a detailed description of the cmd.exe command line parser, refer to - // http://stackoverflow.com/questions/4094699/how-does-the-windows-command-interpreter-cmd-exe-parse-scripts/7970912#7970912 - // need quotes for empty arg - if (!arg) return '""'; - // determine whether the arg needs to be quoted - const cmdSpecialChars = [ - " ", - " ", - "&", - "(", - ")", - "[", - "]", - "{", - "}", - "^", - "=", - ";", - "!", - "'", - "+", - ",", - "`", - "~", - "|", - "<", - ">", - '"' - ]; - let needsQuotes = false; - for (const char of arg)if (cmdSpecialChars.some((x)=>x === char)) { - needsQuotes = true; - break; - } - // short-circuit if quotes not needed - if (!needsQuotes) return arg; - // the following quoting rules are very similar to the rules that by libuv applies. - // - // 1) wrap the string in quotes - // - // 2) double-up quotes - i.e. " => "" - // - // this is different from the libuv quoting rules. libuv replaces " with \", which unfortunately - // doesn't work well with a cmd.exe command line. - // - // note, replacing " with "" also works well if the arg is passed to a downstream .NET console app. - // for example, the command line: - // foo.exe "myarg:""my val""" - // is parsed by a .NET console app into an arg array: - // [ "myarg:\"my val\"" ] - // which is the same end result when applying libuv quoting rules. although the actual - // command line from libuv quoting rules would look like: - // foo.exe "myarg:\"my val\"" - // - // 3) double-up slashes that precede a quote, - // e.g. hello \world => "hello \world" - // hello\"world => "hello\\""world" - // hello\\"world => "hello\\\\""world" - // hello world\ => "hello world\\" - // - // technically this is not required for a cmd.exe command line, or the batch argument parser. - // the reasons for including this as a .cmd quoting rule are: - // - // a) this is optimized for the scenario where the argument is passed from the .cmd file to an - // external program. many programs (e.g. .NET console apps) rely on the slash-doubling rule. - // - // b) it's what we've been doing previously (by deferring to node default behavior) and we - // haven't heard any complaints about that aspect. - // - // note, a weakness of the quoting rules chosen here, is that % is not escaped. in fact, % cannot be - // escaped when used on the command line directly - even though within a .cmd file % can be escaped - // by using %%. - // - // the saving grace is, on the command line, %var% is left as-is if var is not defined. this contrasts - // the line parsing rules within a .cmd file, where if var is not defined it is replaced with nothing. - // - // one option that was explored was replacing % with ^% - i.e. %var% => ^%var^%. this hack would - // often work, since it is unlikely that var^ would exist, and the ^ character is removed when the - // variable is used. the problem, however, is that ^ is not removed when %* is used to pass the args - // to an external program. - // - // an unexplored potential solution for the % escaping problem, is to create a wrapper .cmd file. - // % can be escaped within a .cmd file. - let reverse = '"'; - let quoteHit = true; - for(let i = arg.length; i > 0; i--){ - // walk the string in reverse - reverse += arg[i - 1]; - if (quoteHit && arg[i - 1] === "\\") reverse += "\\"; // double the slash - else if (arg[i - 1] === '"') { - quoteHit = true; - reverse += '"'; // double the quote - } else quoteHit = false; - } - reverse += '"'; - return reverse.split("").reverse().join(""); - } - _uvQuoteCmdArg(arg) { - // Tool runner wraps child_process.spawn() and needs to apply the same quoting as - // Node in certain cases where the undocumented spawn option windowsVerbatimArguments - // is used. - // - // Since this function is a port of quote_cmd_arg from Node 4.x (technically, lib UV, - // see https://github.com/nodejs/node/blob/v4.x/deps/uv/src/win/process.c for details), - // pasting copyright notice from Node within this function: - // - // Copyright Joyent, Inc. and other Node contributors. All rights reserved. - // - // Permission is hereby granted, free of charge, to any person obtaining a copy - // of this software and associated documentation files (the "Software"), to - // deal in the Software without restriction, including without limitation the - // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - // sell copies of the Software, and to permit persons to whom the Software is - // furnished to do so, subject to the following conditions: - // - // The above copyright notice and this permission notice shall be included in - // all copies or substantial portions of the Software. + const matches = yield $58ae6a13f2ee10a4$var$findInPath(tool); + if (matches && matches.length > 0) return matches[0]; + return ""; + }); +} +$58ae6a13f2ee10a4$exports.which = $58ae6a13f2ee10a4$var$which; +/** + * Returns a list of all occurrences of the given tool on the system path. + * + * @returns Promise the paths of the tool + */ function $58ae6a13f2ee10a4$var$findInPath(tool) { + return $58ae6a13f2ee10a4$var$__awaiter(this, void 0, void 0, function*() { + if (!tool) throw new Error("parameter 'tool' is required"); + // build the list of extensions to try + const extensions = []; + if ($58ae6a13f2ee10a4$var$ioUtil.IS_WINDOWS && process.env["PATHEXT"]) { + for (const extension of process.env["PATHEXT"].split($58ae6a13f2ee10a4$var$path.delimiter))if (extension) extensions.push(extension); + } + // if it's rooted, return it if exists. otherwise return empty. + if ($58ae6a13f2ee10a4$var$ioUtil.isRooted(tool)) { + const filePath = yield $58ae6a13f2ee10a4$var$ioUtil.tryGetExecutablePath(tool, extensions); + if (filePath) return [ + filePath + ]; + return []; + } + // if any path separators, return empty + if (tool.includes($58ae6a13f2ee10a4$var$path.sep)) return []; + // build the list of directories // - // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - // IN THE SOFTWARE. - if (!arg) // Need double quotation for empty argument - return '""'; - if (!arg.includes(" ") && !arg.includes(" ") && !arg.includes('"')) // No quotation needed - return arg; - if (!arg.includes('"') && !arg.includes("\\")) // No embedded double quotes or backslashes, so I can just wrap - // quote marks around the whole thing. - return `"${arg}"`; - // Expected input/output: - // input : hello"world - // output: "hello\"world" - // input : hello""world - // output: "hello\"\"world" - // input : hello\world - // output: hello\world - // input : hello\\world - // output: hello\\world - // input : hello\"world - // output: "hello\\\"world" - // input : hello\\"world - // output: "hello\\\\\"world" - // input : hello world\ - // output: "hello world\\" - note the comment in libuv actually reads "hello world\" - // but it appears the comment is wrong, it should be "hello world\\" - let reverse = '"'; - let quoteHit = true; - for(let i = arg.length; i > 0; i--){ - // walk the string in reverse - reverse += arg[i - 1]; - if (quoteHit && arg[i - 1] === "\\") reverse += "\\"; - else if (arg[i - 1] === '"') { - quoteHit = true; - reverse += "\\"; - } else quoteHit = false; + // Note, technically "where" checks the current directory on Windows. From a toolkit perspective, + // it feels like we should not do this. Checking the current directory seems like more of a use + // case of a shell, and the which() function exposed by the toolkit should strive for consistency + // across platforms. + const directories = []; + if (process.env.PATH) { + for (const p of process.env.PATH.split($58ae6a13f2ee10a4$var$path.delimiter))if (p) directories.push(p); } - reverse += '"'; - return reverse.split("").reverse().join(""); - } - _cloneExecOptions(options) { - options = options || {}; - const result = { - cwd: options.cwd || process.cwd(), - env: options.env || process.env, - silent: options.silent || false, - windowsVerbatimArguments: options.windowsVerbatimArguments || false, - failOnStdErr: options.failOnStdErr || false, - ignoreReturnCode: options.ignoreReturnCode || false, - delay: options.delay || 10000 - }; - result.outStream = options.outStream || process.stdout; - result.errStream = options.errStream || process.stderr; - return result; - } - _getSpawnOptions(options, toolPath) { - options = options || {}; - const result = {}; - result.cwd = options.cwd; - result.env = options.env; - result["windowsVerbatimArguments"] = options.windowsVerbatimArguments || this._isCmdFile(); - if (options.windowsVerbatimArguments) result.argv0 = `"${toolPath}"`; - return result; - } - /** - * Exec a tool. - * Output will be streamed to the live console. - * Returns promise with return code - * - * @param tool path to tool to exec - * @param options optional exec options. See ExecOptions - * @returns number - */ exec() { - return $12ede656a89c462d$var$__awaiter(this, void 0, void 0, function*() { - // root the tool path if it is unrooted and contains relative pathing - if (!$12ede656a89c462d$var$ioUtil.isRooted(this.toolPath) && (this.toolPath.includes("/") || $12ede656a89c462d$var$IS_WINDOWS && this.toolPath.includes("\\"))) // prefer options.cwd if it is specified, however options.cwd may also need to be rooted - this.toolPath = $12ede656a89c462d$var$path.resolve(process.cwd(), this.options.cwd || process.cwd(), this.toolPath); - // if the tool is only a file name, then resolve it from the PATH - // otherwise verify it exists (add extension on Windows if necessary) - this.toolPath = yield $12ede656a89c462d$var$io.which(this.toolPath, true); - return new Promise((resolve, reject)=>{ - this._debug(`exec tool: ${this.toolPath}`); - this._debug("arguments:"); - for (const arg of this.args)this._debug(` ${arg}`); - const optionsNonNull = this._cloneExecOptions(this.options); - if (!optionsNonNull.silent && optionsNonNull.outStream) optionsNonNull.outStream.write(this._getCommandString(optionsNonNull) + $12ede656a89c462d$var$os.EOL); - const state = new $12ede656a89c462d$var$ExecState(optionsNonNull, this.toolPath); - state.on("debug", (message)=>{ - this._debug(message); - }); - const fileName = this._getSpawnFileName(); - const cp = $12ede656a89c462d$var$child.spawn(fileName, this._getSpawnArgs(optionsNonNull), this._getSpawnOptions(this.options, fileName)); - const stdbuffer = ""; - if (cp.stdout) cp.stdout.on("data", (data)=>{ - if (this.options.listeners && this.options.listeners.stdout) this.options.listeners.stdout(data); - if (!optionsNonNull.silent && optionsNonNull.outStream) optionsNonNull.outStream.write(data); - this._processLineBuffer(data, stdbuffer, (line)=>{ - if (this.options.listeners && this.options.listeners.stdline) this.options.listeners.stdline(line); - }); - }); - const errbuffer = ""; - if (cp.stderr) cp.stderr.on("data", (data)=>{ - state.processStderr = true; - if (this.options.listeners && this.options.listeners.stderr) this.options.listeners.stderr(data); - if (!optionsNonNull.silent && optionsNonNull.errStream && optionsNonNull.outStream) { - const s = optionsNonNull.failOnStdErr ? optionsNonNull.errStream : optionsNonNull.outStream; - s.write(data); - } - this._processLineBuffer(data, errbuffer, (line)=>{ - if (this.options.listeners && this.options.listeners.errline) this.options.listeners.errline(line); - }); - }); - cp.on("error", (err)=>{ - state.processError = err.message; - state.processExited = true; - state.processClosed = true; - state.CheckComplete(); - }); - cp.on("exit", (code)=>{ - state.processExitCode = code; - state.processExited = true; - this._debug(`Exit code ${code} received from tool '${this.toolPath}'`); - state.CheckComplete(); - }); - cp.on("close", (code)=>{ - state.processExitCode = code; - state.processExited = true; - state.processClosed = true; - this._debug(`STDIO streams have closed for tool '${this.toolPath}'`); - state.CheckComplete(); - }); - state.on("done", (error, exitCode)=>{ - if (stdbuffer.length > 0) this.emit("stdline", stdbuffer); - if (errbuffer.length > 0) this.emit("errline", errbuffer); - cp.removeAllListeners(); - if (error) reject(error); - else resolve(exitCode); - }); - if (this.options.input) { - if (!cp.stdin) throw new Error("child process missing stdin"); - cp.stdin.end(this.options.input); + // find all matches + const matches = []; + for (const directory of directories){ + const filePath = yield $58ae6a13f2ee10a4$var$ioUtil.tryGetExecutablePath($58ae6a13f2ee10a4$var$path.join(directory, tool), extensions); + if (filePath) matches.push(filePath); + } + return matches; + }); +} +$58ae6a13f2ee10a4$exports.findInPath = $58ae6a13f2ee10a4$var$findInPath; +function $58ae6a13f2ee10a4$var$readCopyOptions(options) { + const force = options.force == null ? true : options.force; + const recursive = Boolean(options.recursive); + const copySourceDirectory = options.copySourceDirectory == null ? true : Boolean(options.copySourceDirectory); + return { + force: force, + recursive: recursive, + copySourceDirectory: copySourceDirectory + }; +} +function $58ae6a13f2ee10a4$var$cpDirRecursive(sourceDir, destDir, currentDepth, force) { + return $58ae6a13f2ee10a4$var$__awaiter(this, void 0, void 0, function*() { + // Ensure there is not a run away recursive copy + if (currentDepth >= 255) return; + currentDepth++; + yield $58ae6a13f2ee10a4$var$mkdirP(destDir); + const files = yield $58ae6a13f2ee10a4$var$ioUtil.readdir(sourceDir); + for (const fileName of files){ + const srcFile = `${sourceDir}/${fileName}`; + const destFile = `${destDir}/${fileName}`; + const srcFileStat = yield $58ae6a13f2ee10a4$var$ioUtil.lstat(srcFile); + if (srcFileStat.isDirectory()) // Recurse + yield $58ae6a13f2ee10a4$var$cpDirRecursive(srcFile, destFile, currentDepth, force); + else yield $58ae6a13f2ee10a4$var$copyFile(srcFile, destFile, force); + } + // Change the mode for the newly created directory + yield $58ae6a13f2ee10a4$var$ioUtil.chmod(destDir, (yield $58ae6a13f2ee10a4$var$ioUtil.stat(sourceDir)).mode); + }); +} +// Buffered file copy +function $58ae6a13f2ee10a4$var$copyFile(srcFile, destFile, force) { + return $58ae6a13f2ee10a4$var$__awaiter(this, void 0, void 0, function*() { + if ((yield $58ae6a13f2ee10a4$var$ioUtil.lstat(srcFile)).isSymbolicLink()) { + // unlink/re-link it + try { + yield $58ae6a13f2ee10a4$var$ioUtil.lstat(destFile); + yield $58ae6a13f2ee10a4$var$ioUtil.unlink(destFile); + } catch (e) { + // Try to override file permission + if (e.code === "EPERM") { + yield $58ae6a13f2ee10a4$var$ioUtil.chmod(destFile, "0666"); + yield $58ae6a13f2ee10a4$var$ioUtil.unlink(destFile); } - }); - }); + // other errors = it doesn't exist, no work to do + } + // Copy over symlink + const symlinkFull = yield $58ae6a13f2ee10a4$var$ioUtil.readlink(srcFile); + yield $58ae6a13f2ee10a4$var$ioUtil.symlink(symlinkFull, destFile, $58ae6a13f2ee10a4$var$ioUtil.IS_WINDOWS ? "junction" : null); + } else if (!(yield $58ae6a13f2ee10a4$var$ioUtil.exists(destFile)) || force) yield $58ae6a13f2ee10a4$var$ioUtil.copyFile(srcFile, destFile); + }); +} + + +var $e2d7a47000ccff78$exports = {}; + +var $e2d7a47000ccff78$var$$parcel$__dirname = $bknAJ$path.resolve(__dirname, "../node_modules/@actions/tool-cache/lib"); +"use strict"; +var $e2d7a47000ccff78$var$__createBinding = $e2d7a47000ccff78$exports && $e2d7a47000ccff78$exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { + enumerable: true, + get: function() { + return m[k]; + } + }); +} : function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +}); +var $e2d7a47000ccff78$var$__setModuleDefault = $e2d7a47000ccff78$exports && $e2d7a47000ccff78$exports.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { + enumerable: true, + value: v + }); +} : function(o, v) { + o["default"] = v; +}); +var $e2d7a47000ccff78$var$__importStar = $e2d7a47000ccff78$exports && $e2d7a47000ccff78$exports.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $e2d7a47000ccff78$var$__createBinding(result, mod, k); } -} -module.exports.ToolRunner = $12ede656a89c462d$var$ToolRunner; -/** - * Convert an arg string to an array of args. Handles escaping - * - * @param argString string of arguments - * @returns string[] array of arguments - */ function $12ede656a89c462d$var$argStringToArray(argString) { - const args = []; - let inQuotes = false; - let escaped = false; - let arg = ""; - function append(c) { - // we only escape double quotes. - if (escaped && c !== '"') arg += "\\"; - arg += c; - escaped = false; + $e2d7a47000ccff78$var$__setModuleDefault(result, mod); + return result; +}; +var $e2d7a47000ccff78$var$__awaiter = $e2d7a47000ccff78$exports && $e2d7a47000ccff78$exports.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); } - for(let i = 0; i < argString.length; i++){ - const c = argString.charAt(i); - if (c === '"') { - if (!escaped) inQuotes = !inQuotes; - else append(c); - continue; - } - if (c === "\\" && escaped) { - append(c); - continue; - } - if (c === "\\" && inQuotes) { - escaped = true; - continue; + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } } - if (c === " " && !inQuotes) { - if (arg.length > 0) { - args.push(arg); - arg = ""; + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); } - continue; } - append(c); - } - if (arg.length > 0) args.push(arg.trim()); - return args; -} -module.exports.argStringToArray = $12ede656a89c462d$var$argStringToArray; -class $12ede656a89c462d$var$ExecState extends $12ede656a89c462d$var$events.EventEmitter { - constructor(options, toolPath){ - super(); - this.processClosed = false; // tracks whether the process has exited and stdio is closed - this.processError = ""; - this.processExitCode = 0; - this.processExited = false; // tracks whether the process has exited - this.processStderr = false; // tracks whether stderr was written to - this.delay = 10000; // 10 seconds - this.done = false; - this.timeout = null; - if (!toolPath) throw new Error("toolPath must not be empty"); - this.options = options; - this.toolPath = toolPath; - if (options.delay) this.delay = options.delay; - } - CheckComplete() { - if (this.done) return; - if (this.processClosed) this._setResult(); - else if (this.processExited) this.timeout = setTimeout($12ede656a89c462d$var$ExecState.HandleTimeout, this.delay, this); - } - _debug(message) { - this.emit("debug", message); + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var $e2d7a47000ccff78$var$__importDefault = $e2d7a47000ccff78$exports && $e2d7a47000ccff78$exports.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; +}; +Object.defineProperty($e2d7a47000ccff78$exports, "__esModule", { + value: true +}); +$e2d7a47000ccff78$exports.evaluateVersions = $e2d7a47000ccff78$exports.isExplicitVersion = $e2d7a47000ccff78$exports.findFromManifest = $e2d7a47000ccff78$exports.getManifestFromRepo = $e2d7a47000ccff78$exports.findAllVersions = $e2d7a47000ccff78$exports.find = $e2d7a47000ccff78$exports.cacheFile = $e2d7a47000ccff78$exports.cacheDir = $e2d7a47000ccff78$exports.extractZip = $e2d7a47000ccff78$exports.extractXar = $e2d7a47000ccff78$exports.extractTar = $e2d7a47000ccff78$exports.extract7z = $e2d7a47000ccff78$exports.downloadTool = $e2d7a47000ccff78$exports.HTTPError = void 0; + +const $e2d7a47000ccff78$var$core = $e2d7a47000ccff78$var$__importStar((parcelRequire("9Gi2U"))); + +const $e2d7a47000ccff78$var$io = $e2d7a47000ccff78$var$__importStar((parcelRequire("f2hs4"))); + +const $e2d7a47000ccff78$var$fs = $e2d7a47000ccff78$var$__importStar($bknAJ$fs); + +const $e2d7a47000ccff78$var$mm = $e2d7a47000ccff78$var$__importStar((parcelRequire("2RdqV"))); + +const $e2d7a47000ccff78$var$os = $e2d7a47000ccff78$var$__importStar($bknAJ$os); + +const $e2d7a47000ccff78$var$path = $e2d7a47000ccff78$var$__importStar($bknAJ$path); + +const $e2d7a47000ccff78$var$httpm = $e2d7a47000ccff78$var$__importStar((parcelRequire("8tmdd"))); + +const $e2d7a47000ccff78$var$semver = $e2d7a47000ccff78$var$__importStar((parcelRequire("8RVvw"))); + +const $e2d7a47000ccff78$var$stream = $e2d7a47000ccff78$var$__importStar($bknAJ$stream); + +const $e2d7a47000ccff78$var$util = $e2d7a47000ccff78$var$__importStar($bknAJ$util); + + +const $e2d7a47000ccff78$var$v4_1 = $e2d7a47000ccff78$var$__importDefault((parcelRequire("g6B2s"))); +var $942a183ae3ab4423$exports = {}; +"use strict"; +var $942a183ae3ab4423$var$__awaiter = $942a183ae3ab4423$exports && $942a183ae3ab4423$exports.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve) { + resolve(value); + }); } - _setResult() { - // determine whether there is an error - let error; - if (this.processExited) { - if (this.processError) error = new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`); - else if (this.processExitCode !== 0 && !this.options.ignoreReturnCode) error = new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`); - else if (this.processStderr && this.options.failOnStdErr) error = new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`); + return new (P || (P = Promise))(function(resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } } - // clear the timeout - if (this.timeout) { - clearTimeout(this.timeout); - this.timeout = null; + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } } - this.done = true; - this.emit("done", error, this.processExitCode); - } - static HandleTimeout(state) { - if (state.done) return; - if (!state.processClosed && state.processExited) { - const message = `The STDIO streams did not close within ${state.delay / 1000} seconds of the exit event from process '${state.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`; - state._debug(message); + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - state._setResult(); + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var $942a183ae3ab4423$var$__importStar = $942a183ae3ab4423$exports && $942a183ae3ab4423$exports.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for(var k in mod)if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; } + result["default"] = mod; + return result; +}; +Object.defineProperty($942a183ae3ab4423$exports, "__esModule", { + value: true +}); + +const $942a183ae3ab4423$var$tr = $942a183ae3ab4423$var$__importStar((parcelRequire("1CL8c"))); +/** + * Exec a command. + * Output will be streamed to the live console. + * Returns promise with return code + * + * @param commandLine command to execute (can include additional args). Must be correctly escaped. + * @param args optional arguments for tool. Escaping is handled by the lib. + * @param options optional exec options. See ExecOptions + * @returns Promise exit code + */ function $942a183ae3ab4423$var$exec(commandLine, args, options) { + return $942a183ae3ab4423$var$__awaiter(this, void 0, void 0, function*() { + const commandArgs = $942a183ae3ab4423$var$tr.argStringToArray(commandLine); + if (commandArgs.length === 0) throw new Error(`Parameter 'commandLine' cannot be null or empty.`); + // Path to tool to execute should be first arg + const toolPath = commandArgs[0]; + args = commandArgs.slice(1).concat(args || []); + const runner = new $942a183ae3ab4423$var$tr.ToolRunner(toolPath, args, options); + return runner.exec(); + }); } +$942a183ae3ab4423$exports.exec = $942a183ae3ab4423$var$exec; -}); -parcelRequire.register("43Rhh", function(module, exports) { + +var $87651c4e72658245$exports = {}; "use strict"; -var $2f50c51a8ab24bc8$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { +var $87651c4e72658245$var$__createBinding = $87651c4e72658245$exports && $87651c4e72658245$exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { + enumerable: true, + get: function() { + return m[k]; + } + }); +} : function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +}); +var $87651c4e72658245$var$__setModuleDefault = $87651c4e72658245$exports && $87651c4e72658245$exports.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { + enumerable: true, + value: v + }); +} : function(o, v) { + o["default"] = v; +}); +var $87651c4e72658245$var$__importStar = $87651c4e72658245$exports && $87651c4e72658245$exports.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $87651c4e72658245$var$__createBinding(result, mod, k); + } + $87651c4e72658245$var$__setModuleDefault(result, mod); + return result; +}; +var $87651c4e72658245$var$__awaiter = $87651c4e72658245$exports && $87651c4e72658245$exports.__awaiter || function(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve) { resolve(value); @@ -7199,572 +6972,720 @@ var $2f50c51a8ab24bc8$var$__awaiter = module.exports && module.exports.__awaiter } catch (e) { reject(e); } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var $2f50c51a8ab24bc8$var$__importStar = module.exports && module.exports.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) { - for(var k in mod)if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty($87651c4e72658245$exports, "__esModule", { + value: true +}); +$87651c4e72658245$exports.RetryHelper = void 0; + +const $87651c4e72658245$var$core = $87651c4e72658245$var$__importStar((parcelRequire("9Gi2U"))); +/** + * Internal class for retries + */ class $87651c4e72658245$var$RetryHelper { + constructor(maxAttempts, minSeconds, maxSeconds){ + if (maxAttempts < 1) throw new Error("max attempts should be greater than or equal to 1"); + this.maxAttempts = maxAttempts; + this.minSeconds = Math.floor(minSeconds); + this.maxSeconds = Math.floor(maxSeconds); + if (this.minSeconds > this.maxSeconds) throw new Error("min seconds should be less than or equal to max seconds"); + } + execute(action, isRetryable) { + return $87651c4e72658245$var$__awaiter(this, void 0, void 0, function*() { + let attempt = 1; + while(attempt < this.maxAttempts){ + // Try + try { + return yield action(); + } catch (err) { + if (isRetryable && !isRetryable(err)) throw err; + $87651c4e72658245$var$core.info(err.message); + } + // Sleep + const seconds = this.getSleepAmount(); + $87651c4e72658245$var$core.info(`Waiting ${seconds} seconds before trying again`); + yield this.sleep(seconds); + attempt++; + } + // Last attempt + return yield action(); + }); } - result["default"] = mod; - return result; -}; -Object.defineProperty(module.exports, "__esModule", { - value: true -}); - -const $2f50c51a8ab24bc8$var$childProcess = $2f50c51a8ab24bc8$var$__importStar($kzVu7$child_process); - -const $2f50c51a8ab24bc8$var$path = $2f50c51a8ab24bc8$var$__importStar($kzVu7$path); + getSleepAmount() { + return Math.floor(Math.random() * (this.maxSeconds - this.minSeconds + 1)) + this.minSeconds; + } + sleep(seconds) { + return $87651c4e72658245$var$__awaiter(this, void 0, void 0, function*() { + return new Promise((resolve)=>setTimeout(resolve, seconds * 1000)); + }); + } +} +$87651c4e72658245$exports.RetryHelper = $87651c4e72658245$var$RetryHelper; -const $2f50c51a8ab24bc8$var$ioUtil = $2f50c51a8ab24bc8$var$__importStar((parcelRequire("b4kaZ"))); -const $2f50c51a8ab24bc8$var$exec = $kzVu7$util.promisify($2f50c51a8ab24bc8$var$childProcess.exec); -/** - * Copies a file or folder. - * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js - * - * @param source source path - * @param dest destination path - * @param options optional. See CopyOptions. - */ function $2f50c51a8ab24bc8$var$cp(source, dest, options = {}) { - return $2f50c51a8ab24bc8$var$__awaiter(this, void 0, void 0, function*() { - const { force: force, recursive: recursive } = $2f50c51a8ab24bc8$var$readCopyOptions(options); - const destStat = (yield $2f50c51a8ab24bc8$var$ioUtil.exists(dest)) ? yield $2f50c51a8ab24bc8$var$ioUtil.stat(dest) : null; - // Dest is an existing file, but not forcing - if (destStat && destStat.isFile() && !force) return; - // If dest is an existing directory, should copy inside. - const newDest = destStat && destStat.isDirectory() ? $2f50c51a8ab24bc8$var$path.join(dest, $2f50c51a8ab24bc8$var$path.basename(source)) : dest; - if (!(yield $2f50c51a8ab24bc8$var$ioUtil.exists(source))) throw new Error(`no such file or directory: ${source}`); - const sourceStat = yield $2f50c51a8ab24bc8$var$ioUtil.stat(source); - if (sourceStat.isDirectory()) { - if (!recursive) throw new Error(`Failed to copy. ${source} is a directory, but tried to copy without recursive flag.`); - else yield $2f50c51a8ab24bc8$var$cpDirRecursive(source, newDest, 0, force); - } else { - if ($2f50c51a8ab24bc8$var$path.relative(source, newDest) === "") // a file cannot be copied to itself - throw new Error(`'${newDest}' and '${source}' are the same file`); - yield $2f50c51a8ab24bc8$var$copyFile(source, newDest, force); - } - }); +class $e2d7a47000ccff78$var$HTTPError extends Error { + constructor(httpStatusCode){ + super(`Unexpected HTTP response: ${httpStatusCode}`); + this.httpStatusCode = httpStatusCode; + Object.setPrototypeOf(this, new.target.prototype); + } } -module.exports.cp = $2f50c51a8ab24bc8$var$cp; +$e2d7a47000ccff78$exports.HTTPError = $e2d7a47000ccff78$var$HTTPError; +const $e2d7a47000ccff78$var$IS_WINDOWS = process.platform === "win32"; +const $e2d7a47000ccff78$var$IS_MAC = process.platform === "darwin"; +const $e2d7a47000ccff78$var$userAgent = "actions/tool-cache"; /** - * Moves a path. + * Download a tool from an url and stream it into a file * - * @param source source path - * @param dest destination path - * @param options optional. See MoveOptions. - */ function $2f50c51a8ab24bc8$var$mv(source, dest, options = {}) { - return $2f50c51a8ab24bc8$var$__awaiter(this, void 0, void 0, function*() { - if (yield $2f50c51a8ab24bc8$var$ioUtil.exists(dest)) { - let destExists = true; - if (yield $2f50c51a8ab24bc8$var$ioUtil.isDirectory(dest)) { - // If dest is directory copy src into dest - dest = $2f50c51a8ab24bc8$var$path.join(dest, $2f50c51a8ab24bc8$var$path.basename(source)); - destExists = yield $2f50c51a8ab24bc8$var$ioUtil.exists(dest); - } - if (destExists) { - if (options.force == null || options.force) yield $2f50c51a8ab24bc8$var$rmRF(dest); - else throw new Error("Destination already exists"); + * @param url url of tool to download + * @param dest path to download tool + * @param auth authorization header + * @param headers other headers + * @returns path to downloaded tool + */ function $e2d7a47000ccff78$var$downloadTool(url, dest, auth, headers) { + return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { + dest = dest || $e2d7a47000ccff78$var$path.join($e2d7a47000ccff78$var$_getTempDirectory(), $e2d7a47000ccff78$var$v4_1.default()); + yield $e2d7a47000ccff78$var$io.mkdirP($e2d7a47000ccff78$var$path.dirname(dest)); + $e2d7a47000ccff78$var$core.debug(`Downloading ${url}`); + $e2d7a47000ccff78$var$core.debug(`Destination ${dest}`); + const maxAttempts = 3; + const minSeconds = $e2d7a47000ccff78$var$_getGlobal("TEST_DOWNLOAD_TOOL_RETRY_MIN_SECONDS", 10); + const maxSeconds = $e2d7a47000ccff78$var$_getGlobal("TEST_DOWNLOAD_TOOL_RETRY_MAX_SECONDS", 20); + const retryHelper = new $87651c4e72658245$exports.RetryHelper(maxAttempts, minSeconds, maxSeconds); + return yield retryHelper.execute(()=>$e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { + return yield $e2d7a47000ccff78$var$downloadToolAttempt(url, dest || "", auth, headers); + }), (err)=>{ + if (err instanceof $e2d7a47000ccff78$var$HTTPError && err.httpStatusCode) { + // Don't retry anything less than 500, except 408 Request Timeout and 429 Too Many Requests + if (err.httpStatusCode < 500 && err.httpStatusCode !== 408 && err.httpStatusCode !== 429) return false; } - } - yield $2f50c51a8ab24bc8$var$mkdirP($2f50c51a8ab24bc8$var$path.dirname(dest)); - yield $2f50c51a8ab24bc8$var$ioUtil.rename(source, dest); + // Otherwise retry + return true; + }); }); } -module.exports.mv = $2f50c51a8ab24bc8$var$mv; -/** - * Remove a path recursively with force - * - * @param inputPath path to remove - */ function $2f50c51a8ab24bc8$var$rmRF(inputPath) { - return $2f50c51a8ab24bc8$var$__awaiter(this, void 0, void 0, function*() { - if ($2f50c51a8ab24bc8$var$ioUtil.IS_WINDOWS) { - // Node doesn't provide a delete operation, only an unlink function. This means that if the file is being used by another - // program (e.g. antivirus), it won't be deleted. To address this, we shell out the work to rd/del. - try { - if (yield $2f50c51a8ab24bc8$var$ioUtil.isDirectory(inputPath, true)) yield $2f50c51a8ab24bc8$var$exec(`rd /s /q "${inputPath}"`); - else yield $2f50c51a8ab24bc8$var$exec(`del /f /a "${inputPath}"`); - } catch (err) { - // if you try to delete a file that doesn't exist, desired result is achieved - // other errors are valid - if (err.code !== "ENOENT") throw err; - } - // Shelling out fails to remove a symlink folder with missing source, this unlink catches that - try { - yield $2f50c51a8ab24bc8$var$ioUtil.unlink(inputPath); - } catch (err) { - // if you try to delete a file that doesn't exist, desired result is achieved - // other errors are valid - if (err.code !== "ENOENT") throw err; - } - } else { - let isDir = false; - try { - isDir = yield $2f50c51a8ab24bc8$var$ioUtil.isDirectory(inputPath); - } catch (err) { - // if you try to delete a file that doesn't exist, desired result is achieved - // other errors are valid - if (err.code !== "ENOENT") throw err; - return; +$e2d7a47000ccff78$exports.downloadTool = $e2d7a47000ccff78$var$downloadTool; +function $e2d7a47000ccff78$var$downloadToolAttempt(url, dest, auth, headers) { + return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { + if ($e2d7a47000ccff78$var$fs.existsSync(dest)) throw new Error(`Destination file path ${dest} already exists`); + // Get the response headers + const http = new $e2d7a47000ccff78$var$httpm.HttpClient($e2d7a47000ccff78$var$userAgent, [], { + allowRetries: false + }); + if (auth) { + $e2d7a47000ccff78$var$core.debug("set auth"); + if (headers === undefined) headers = {}; + headers.authorization = auth; + } + const response = yield http.get(url, headers); + if (response.message.statusCode !== 200) { + const err = new $e2d7a47000ccff78$var$HTTPError(response.message.statusCode); + $e2d7a47000ccff78$var$core.debug(`Failed to download from "${url}". Code(${response.message.statusCode}) Message(${response.message.statusMessage})`); + throw err; + } + // Download the response body + const pipeline = $e2d7a47000ccff78$var$util.promisify($e2d7a47000ccff78$var$stream.pipeline); + const responseMessageFactory = $e2d7a47000ccff78$var$_getGlobal("TEST_DOWNLOAD_TOOL_RESPONSE_MESSAGE_FACTORY", ()=>response.message); + const readStream = responseMessageFactory(); + let succeeded = false; + try { + yield pipeline(readStream, $e2d7a47000ccff78$var$fs.createWriteStream(dest)); + $e2d7a47000ccff78$var$core.debug("download complete"); + succeeded = true; + return dest; + } finally{ + // Error, delete dest before retry + if (!succeeded) { + $e2d7a47000ccff78$var$core.debug("download failed"); + try { + yield $e2d7a47000ccff78$var$io.rmRF(dest); + } catch (err) { + $e2d7a47000ccff78$var$core.debug(`Failed to delete '${dest}'. ${err.message}`); + } } - if (isDir) yield $2f50c51a8ab24bc8$var$exec(`rm -rf "${inputPath}"`); - else yield $2f50c51a8ab24bc8$var$ioUtil.unlink(inputPath); } }); } -module.exports.rmRF = $2f50c51a8ab24bc8$var$rmRF; -/** - * Make a directory. Creates the full path with folders in between - * Will throw if it fails - * - * @param fsPath path to create - * @returns Promise - */ function $2f50c51a8ab24bc8$var$mkdirP(fsPath) { - return $2f50c51a8ab24bc8$var$__awaiter(this, void 0, void 0, function*() { - yield $2f50c51a8ab24bc8$var$ioUtil.mkdirP(fsPath); - }); -} -module.exports.mkdirP = $2f50c51a8ab24bc8$var$mkdirP; /** - * Returns path of a tool had the tool actually been invoked. Resolves via paths. - * If you check and the tool does not exist, it will throw. + * Extract a .7z file * - * @param tool name of the tool - * @param check whether to check if tool exists - * @returns Promise path to tool - */ function $2f50c51a8ab24bc8$var$which(tool, check) { - return $2f50c51a8ab24bc8$var$__awaiter(this, void 0, void 0, function*() { - if (!tool) throw new Error("parameter 'tool' is required"); - // recursive when check=true - if (check) { - const result = yield $2f50c51a8ab24bc8$var$which(tool, false); - if (!result) { - if ($2f50c51a8ab24bc8$var$ioUtil.IS_WINDOWS) throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`); - else throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`); + * @param file path to the .7z file + * @param dest destination directory. Optional. + * @param _7zPath path to 7zr.exe. Optional, for long path support. Most .7z archives do not have this + * problem. If your .7z archive contains very long paths, you can pass the path to 7zr.exe which will + * gracefully handle long paths. By default 7zdec.exe is used because it is a very small program and is + * bundled with the tool lib. However it does not support long paths. 7zr.exe is the reduced command line + * interface, it is smaller than the full command line interface, and it does support long paths. At the + * time of this writing, it is freely available from the LZMA SDK that is available on the 7zip website. + * Be sure to check the current license agreement. If 7zr.exe is bundled with your action, then the path + * to 7zr.exe can be pass to this function. + * @returns path to the destination directory + */ function $e2d7a47000ccff78$var$extract7z(file, dest, _7zPath) { + return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { + $bknAJ$assert.ok($e2d7a47000ccff78$var$IS_WINDOWS, "extract7z() not supported on current OS"); + $bknAJ$assert.ok(file, 'parameter "file" is required'); + dest = yield $e2d7a47000ccff78$var$_createExtractFolder(dest); + const originalCwd = process.cwd(); + process.chdir(dest); + if (_7zPath) try { + const logLevel = $e2d7a47000ccff78$var$core.isDebug() ? "-bb1" : "-bb0"; + const args = [ + "x", + logLevel, + "-bd", + "-sccUTF-8", + file + ]; + const options = { + silent: true + }; + yield $942a183ae3ab4423$exports.exec(`"${_7zPath}"`, args, options); + } finally{ + process.chdir(originalCwd); + } + else { + const escapedScript = $e2d7a47000ccff78$var$path.join($e2d7a47000ccff78$var$$parcel$__dirname, "..", "scripts", "Invoke-7zdec.ps1").replace(/'/g, "''").replace(/"|\n|\r/g, ""); // double-up single quotes, remove double quotes and newlines + const escapedFile = file.replace(/'/g, "''").replace(/"|\n|\r/g, ""); + const escapedTarget = dest.replace(/'/g, "''").replace(/"|\n|\r/g, ""); + const command = `& '${escapedScript}' -Source '${escapedFile}' -Target '${escapedTarget}'`; + const args = [ + "-NoLogo", + "-Sta", + "-NoProfile", + "-NonInteractive", + "-ExecutionPolicy", + "Unrestricted", + "-Command", + command + ]; + const options = { + silent: true + }; + try { + const powershellPath = yield $e2d7a47000ccff78$var$io.which("powershell", true); + yield $942a183ae3ab4423$exports.exec(`"${powershellPath}"`, args, options); + } finally{ + process.chdir(originalCwd); } - return result; } - const matches = yield $2f50c51a8ab24bc8$var$findInPath(tool); - if (matches && matches.length > 0) return matches[0]; - return ""; + return dest; }); } -module.exports.which = $2f50c51a8ab24bc8$var$which; +$e2d7a47000ccff78$exports.extract7z = $e2d7a47000ccff78$var$extract7z; /** - * Returns a list of all occurrences of the given tool on the system path. + * Extract a compressed tar archive * - * @returns Promise the paths of the tool - */ function $2f50c51a8ab24bc8$var$findInPath(tool) { - return $2f50c51a8ab24bc8$var$__awaiter(this, void 0, void 0, function*() { - if (!tool) throw new Error("parameter 'tool' is required"); - // build the list of extensions to try - const extensions = []; - if ($2f50c51a8ab24bc8$var$ioUtil.IS_WINDOWS && process.env["PATHEXT"]) { - for (const extension of process.env["PATHEXT"].split($2f50c51a8ab24bc8$var$path.delimiter))if (extension) extensions.push(extension); - } - // if it's rooted, return it if exists. otherwise return empty. - if ($2f50c51a8ab24bc8$var$ioUtil.isRooted(tool)) { - const filePath = yield $2f50c51a8ab24bc8$var$ioUtil.tryGetExecutablePath(tool, extensions); - if (filePath) return [ - filePath - ]; - return []; - } - // if any path separators, return empty - if (tool.includes($2f50c51a8ab24bc8$var$path.sep)) return []; - // build the list of directories - // - // Note, technically "where" checks the current directory on Windows. From a toolkit perspective, - // it feels like we should not do this. Checking the current directory seems like more of a use - // case of a shell, and the which() function exposed by the toolkit should strive for consistency - // across platforms. - const directories = []; - if (process.env.PATH) { - for (const p of process.env.PATH.split($2f50c51a8ab24bc8$var$path.delimiter))if (p) directories.push(p); + * @param file path to the tar + * @param dest destination directory. Optional. + * @param flags flags for the tar command to use for extraction. Defaults to 'xz' (extracting gzipped tars). Optional. + * @returns path to the destination directory + */ function $e2d7a47000ccff78$var$extractTar(file, dest, flags = "xz") { + return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { + if (!file) throw new Error("parameter 'file' is required"); + // Create dest + dest = yield $e2d7a47000ccff78$var$_createExtractFolder(dest); + // Determine whether GNU tar + $e2d7a47000ccff78$var$core.debug("Checking tar --version"); + let versionOutput = ""; + yield $942a183ae3ab4423$exports.exec("tar --version", [], { + ignoreReturnCode: true, + silent: true, + listeners: { + stdout: (data)=>versionOutput += data.toString(), + stderr: (data)=>versionOutput += data.toString() + } + }); + $e2d7a47000ccff78$var$core.debug(versionOutput.trim()); + const isGnuTar = versionOutput.toUpperCase().includes("GNU TAR"); + // Initialize args + let args; + if (flags instanceof Array) args = flags; + else args = [ + flags + ]; + if ($e2d7a47000ccff78$var$core.isDebug() && !flags.includes("v")) args.push("-v"); + let destArg = dest; + let fileArg = file; + if ($e2d7a47000ccff78$var$IS_WINDOWS && isGnuTar) { + args.push("--force-local"); + destArg = dest.replace(/\\/g, "/"); + // Technically only the dest needs to have `/` but for aesthetic consistency + // convert slashes in the file arg too. + fileArg = file.replace(/\\/g, "/"); } - // find all matches - const matches = []; - for (const directory of directories){ - const filePath = yield $2f50c51a8ab24bc8$var$ioUtil.tryGetExecutablePath($2f50c51a8ab24bc8$var$path.join(directory, tool), extensions); - if (filePath) matches.push(filePath); + if (isGnuTar) { + // Suppress warnings when using GNU tar to extract archives created by BSD tar + args.push("--warning=no-unknown-keyword"); + args.push("--overwrite"); } - return matches; + args.push("-C", destArg, "-f", fileArg); + yield $942a183ae3ab4423$exports.exec(`tar`, args); + return dest; }); } -module.exports.findInPath = $2f50c51a8ab24bc8$var$findInPath; -function $2f50c51a8ab24bc8$var$readCopyOptions(options) { - const force = options.force == null ? true : options.force; - const recursive = Boolean(options.recursive); - return { - force: force, - recursive: recursive - }; -} -function $2f50c51a8ab24bc8$var$cpDirRecursive(sourceDir, destDir, currentDepth, force) { - return $2f50c51a8ab24bc8$var$__awaiter(this, void 0, void 0, function*() { - // Ensure there is not a run away recursive copy - if (currentDepth >= 255) return; - currentDepth++; - yield $2f50c51a8ab24bc8$var$mkdirP(destDir); - const files = yield $2f50c51a8ab24bc8$var$ioUtil.readdir(sourceDir); - for (const fileName of files){ - const srcFile = `${sourceDir}/${fileName}`; - const destFile = `${destDir}/${fileName}`; - const srcFileStat = yield $2f50c51a8ab24bc8$var$ioUtil.lstat(srcFile); - if (srcFileStat.isDirectory()) // Recurse - yield $2f50c51a8ab24bc8$var$cpDirRecursive(srcFile, destFile, currentDepth, force); - else yield $2f50c51a8ab24bc8$var$copyFile(srcFile, destFile, force); - } - // Change the mode for the newly created directory - yield $2f50c51a8ab24bc8$var$ioUtil.chmod(destDir, (yield $2f50c51a8ab24bc8$var$ioUtil.stat(sourceDir)).mode); +$e2d7a47000ccff78$exports.extractTar = $e2d7a47000ccff78$var$extractTar; +/** + * Extract a xar compatible archive + * + * @param file path to the archive + * @param dest destination directory. Optional. + * @param flags flags for the xar. Optional. + * @returns path to the destination directory + */ function $e2d7a47000ccff78$var$extractXar(file, dest, flags = []) { + return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { + $bknAJ$assert.ok($e2d7a47000ccff78$var$IS_MAC, "extractXar() not supported on current OS"); + $bknAJ$assert.ok(file, 'parameter "file" is required'); + dest = yield $e2d7a47000ccff78$var$_createExtractFolder(dest); + let args; + if (flags instanceof Array) args = flags; + else args = [ + flags + ]; + args.push("-x", "-C", dest, "-f", file); + if ($e2d7a47000ccff78$var$core.isDebug()) args.push("-v"); + const xarPath = yield $e2d7a47000ccff78$var$io.which("xar", true); + yield $942a183ae3ab4423$exports.exec(`"${xarPath}"`, $e2d7a47000ccff78$var$_unique(args)); + return dest; }); } -// Buffered file copy -function $2f50c51a8ab24bc8$var$copyFile(srcFile, destFile, force) { - return $2f50c51a8ab24bc8$var$__awaiter(this, void 0, void 0, function*() { - if ((yield $2f50c51a8ab24bc8$var$ioUtil.lstat(srcFile)).isSymbolicLink()) { - // unlink/re-link it - try { - yield $2f50c51a8ab24bc8$var$ioUtil.lstat(destFile); - yield $2f50c51a8ab24bc8$var$ioUtil.unlink(destFile); - } catch (e) { - // Try to override file permission - if (e.code === "EPERM") { - yield $2f50c51a8ab24bc8$var$ioUtil.chmod(destFile, "0666"); - yield $2f50c51a8ab24bc8$var$ioUtil.unlink(destFile); - } - // other errors = it doesn't exist, no work to do - } - // Copy over symlink - const symlinkFull = yield $2f50c51a8ab24bc8$var$ioUtil.readlink(srcFile); - yield $2f50c51a8ab24bc8$var$ioUtil.symlink(symlinkFull, destFile, $2f50c51a8ab24bc8$var$ioUtil.IS_WINDOWS ? "junction" : null); - } else if (!(yield $2f50c51a8ab24bc8$var$ioUtil.exists(destFile)) || force) yield $2f50c51a8ab24bc8$var$ioUtil.copyFile(srcFile, destFile); +$e2d7a47000ccff78$exports.extractXar = $e2d7a47000ccff78$var$extractXar; +/** + * Extract a zip + * + * @param file path to the zip + * @param dest destination directory. Optional. + * @returns path to the destination directory + */ function $e2d7a47000ccff78$var$extractZip(file, dest) { + return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { + if (!file) throw new Error("parameter 'file' is required"); + dest = yield $e2d7a47000ccff78$var$_createExtractFolder(dest); + if ($e2d7a47000ccff78$var$IS_WINDOWS) yield $e2d7a47000ccff78$var$extractZipWin(file, dest); + else yield $e2d7a47000ccff78$var$extractZipNix(file, dest); + return dest; }); } - -}); -parcelRequire.register("b4kaZ", function(module, exports) { -"use strict"; -var $80efb8079b0b4017$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var $80efb8079b0b4017$var$__importStar = module.exports && module.exports.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) { - for(var k in mod)if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - } - result["default"] = mod; - return result; -}; -var $80efb8079b0b4017$var$_a; -Object.defineProperty(module.exports, "__esModule", { - value: true -}); - - -const $80efb8079b0b4017$var$fs = $80efb8079b0b4017$var$__importStar($kzVu7$fs); - -const $80efb8079b0b4017$var$path = $80efb8079b0b4017$var$__importStar($kzVu7$path); -$80efb8079b0b4017$var$_a = $80efb8079b0b4017$var$fs.promises, module.exports.chmod = $80efb8079b0b4017$var$_a.chmod, module.exports.copyFile = $80efb8079b0b4017$var$_a.copyFile, module.exports.lstat = $80efb8079b0b4017$var$_a.lstat, module.exports.mkdir = $80efb8079b0b4017$var$_a.mkdir, module.exports.readdir = $80efb8079b0b4017$var$_a.readdir, module.exports.readlink = $80efb8079b0b4017$var$_a.readlink, module.exports.rename = $80efb8079b0b4017$var$_a.rename, module.exports.rmdir = $80efb8079b0b4017$var$_a.rmdir, module.exports.stat = $80efb8079b0b4017$var$_a.stat, module.exports.symlink = $80efb8079b0b4017$var$_a.symlink, module.exports.unlink = $80efb8079b0b4017$var$_a.unlink; -module.exports.IS_WINDOWS = process.platform === "win32"; -function $80efb8079b0b4017$var$exists(fsPath) { - return $80efb8079b0b4017$var$__awaiter(this, void 0, void 0, function*() { - try { - yield module.exports.stat(fsPath); - } catch (err) { - if (err.code === "ENOENT") return false; - throw err; +$e2d7a47000ccff78$exports.extractZip = $e2d7a47000ccff78$var$extractZip; +function $e2d7a47000ccff78$var$extractZipWin(file, dest) { + return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { + // build the powershell command + const escapedFile = file.replace(/'/g, "''").replace(/"|\n|\r/g, ""); // double-up single quotes, remove double quotes and newlines + const escapedDest = dest.replace(/'/g, "''").replace(/"|\n|\r/g, ""); + const pwshPath = yield $e2d7a47000ccff78$var$io.which("pwsh", false); + //To match the file overwrite behavior on nix systems, we use the overwrite = true flag for ExtractToDirectory + //and the -Force flag for Expand-Archive as a fallback + if (pwshPath) { + //attempt to use pwsh with ExtractToDirectory, if this fails attempt Expand-Archive + const pwshCommand = [ + `$ErrorActionPreference = 'Stop' ;`, + `try { Add-Type -AssemblyName System.IO.Compression.ZipFile } catch { } ;`, + `try { [System.IO.Compression.ZipFile]::ExtractToDirectory('${escapedFile}', '${escapedDest}', $true) }`, + `catch { if (($_.Exception.GetType().FullName -eq 'System.Management.Automation.MethodException') -or ($_.Exception.GetType().FullName -eq 'System.Management.Automation.RuntimeException') ){ Expand-Archive -LiteralPath '${escapedFile}' -DestinationPath '${escapedDest}' -Force } else { throw $_ } } ;` + ].join(" "); + const args = [ + "-NoLogo", + "-NoProfile", + "-NonInteractive", + "-ExecutionPolicy", + "Unrestricted", + "-Command", + pwshCommand + ]; + $e2d7a47000ccff78$var$core.debug(`Using pwsh at path: ${pwshPath}`); + yield $942a183ae3ab4423$exports.exec(`"${pwshPath}"`, args); + } else { + const powershellCommand = [ + `$ErrorActionPreference = 'Stop' ;`, + `try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ;`, + `if ((Get-Command -Name Expand-Archive -Module Microsoft.PowerShell.Archive -ErrorAction Ignore)) { Expand-Archive -LiteralPath '${escapedFile}' -DestinationPath '${escapedDest}' -Force }`, + `else {[System.IO.Compression.ZipFile]::ExtractToDirectory('${escapedFile}', '${escapedDest}', $true) }` + ].join(" "); + const args = [ + "-NoLogo", + "-Sta", + "-NoProfile", + "-NonInteractive", + "-ExecutionPolicy", + "Unrestricted", + "-Command", + powershellCommand + ]; + const powershellPath = yield $e2d7a47000ccff78$var$io.which("powershell", true); + $e2d7a47000ccff78$var$core.debug(`Using powershell at path: ${powershellPath}`); + yield $942a183ae3ab4423$exports.exec(`"${powershellPath}"`, args); } - return true; }); } -module.exports.exists = $80efb8079b0b4017$var$exists; -function $80efb8079b0b4017$var$isDirectory(fsPath, useStat = false) { - return $80efb8079b0b4017$var$__awaiter(this, void 0, void 0, function*() { - const stats = useStat ? yield module.exports.stat(fsPath) : yield module.exports.lstat(fsPath); - return stats.isDirectory(); +function $e2d7a47000ccff78$var$extractZipNix(file, dest) { + return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { + const unzipPath = yield $e2d7a47000ccff78$var$io.which("unzip", true); + const args = [ + file + ]; + if (!$e2d7a47000ccff78$var$core.isDebug()) args.unshift("-q"); + args.unshift("-o"); //overwrite with -o, otherwise a prompt is shown which freezes the run + yield $942a183ae3ab4423$exports.exec(`"${unzipPath}"`, args, { + cwd: dest + }); }); } -module.exports.isDirectory = $80efb8079b0b4017$var$isDirectory; /** - * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like: - * \, \hello, \\hello\share, C:, and C:\hello (and corresponding alternate separator cases). - */ function $80efb8079b0b4017$var$isRooted(p) { - p = $80efb8079b0b4017$var$normalizeSeparators(p); - if (!p) throw new Error('isRooted() parameter "p" cannot be empty'); - if (module.exports.IS_WINDOWS) return p.startsWith("\\") || /^[A-Z]:/i.test(p) // e.g. \ or \hello or \\hello - ; // e.g. C: or C:\hello - return p.startsWith("/"); + * Caches a directory and installs it into the tool cacheDir + * + * @param sourceDir the directory to cache into tools + * @param tool tool name + * @param version version of the tool. semver format + * @param arch architecture of the tool. Optional. Defaults to machine architecture + */ function $e2d7a47000ccff78$var$cacheDir(sourceDir, tool, version, arch) { + return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { + version = $e2d7a47000ccff78$var$semver.clean(version) || version; + arch = arch || $e2d7a47000ccff78$var$os.arch(); + $e2d7a47000ccff78$var$core.debug(`Caching tool ${tool} ${version} ${arch}`); + $e2d7a47000ccff78$var$core.debug(`source dir: ${sourceDir}`); + if (!$e2d7a47000ccff78$var$fs.statSync(sourceDir).isDirectory()) throw new Error("sourceDir is not a directory"); + // Create the tool dir + const destPath = yield $e2d7a47000ccff78$var$_createToolPath(tool, version, arch); + // copy each child item. do not move. move can fail on Windows + // due to anti-virus software having an open handle on a file. + for (const itemName of $e2d7a47000ccff78$var$fs.readdirSync(sourceDir)){ + const s = $e2d7a47000ccff78$var$path.join(sourceDir, itemName); + yield $e2d7a47000ccff78$var$io.cp(s, destPath, { + recursive: true + }); + } + // write .complete + $e2d7a47000ccff78$var$_completeToolPath(tool, version, arch); + return destPath; + }); } -module.exports.isRooted = $80efb8079b0b4017$var$isRooted; +$e2d7a47000ccff78$exports.cacheDir = $e2d7a47000ccff78$var$cacheDir; /** - * Recursively create a directory at `fsPath`. - * - * This implementation is optimistic, meaning it attempts to create the full - * path first, and backs up the path stack from there. + * Caches a downloaded file (GUID) and installs it + * into the tool cache with a given targetName * - * @param fsPath The path to create - * @param maxDepth The maximum recursion depth - * @param depth The current recursion depth - */ function $80efb8079b0b4017$var$mkdirP(fsPath, maxDepth = 1000, depth = 1) { - return $80efb8079b0b4017$var$__awaiter(this, void 0, void 0, function*() { - $kzVu7$assert.ok(fsPath, "a path argument must be provided"); - fsPath = $80efb8079b0b4017$var$path.resolve(fsPath); - if (depth >= maxDepth) return module.exports.mkdir(fsPath); - try { - yield module.exports.mkdir(fsPath); - return; - } catch (err) { - switch(err.code){ - case "ENOENT": - yield $80efb8079b0b4017$var$mkdirP($80efb8079b0b4017$var$path.dirname(fsPath), maxDepth, depth + 1); - yield module.exports.mkdir(fsPath); - return; - default: - { - let stats; - try { - stats = yield module.exports.stat(fsPath); - } catch (err2) { - throw err; - } - if (!stats.isDirectory()) throw err; - } - } - } + * @param sourceFile the file to cache into tools. Typically a result of downloadTool which is a guid. + * @param targetFile the name of the file name in the tools directory + * @param tool tool name + * @param version version of the tool. semver format + * @param arch architecture of the tool. Optional. Defaults to machine architecture + */ function $e2d7a47000ccff78$var$cacheFile(sourceFile, targetFile, tool, version, arch) { + return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { + version = $e2d7a47000ccff78$var$semver.clean(version) || version; + arch = arch || $e2d7a47000ccff78$var$os.arch(); + $e2d7a47000ccff78$var$core.debug(`Caching tool ${tool} ${version} ${arch}`); + $e2d7a47000ccff78$var$core.debug(`source file: ${sourceFile}`); + if (!$e2d7a47000ccff78$var$fs.statSync(sourceFile).isFile()) throw new Error("sourceFile is not a file"); + // create the tool dir + const destFolder = yield $e2d7a47000ccff78$var$_createToolPath(tool, version, arch); + // copy instead of move. move can fail on Windows due to + // anti-virus software having an open handle on a file. + const destPath = $e2d7a47000ccff78$var$path.join(destFolder, targetFile); + $e2d7a47000ccff78$var$core.debug(`destination file ${destPath}`); + yield $e2d7a47000ccff78$var$io.cp(sourceFile, destPath); + // write .complete + $e2d7a47000ccff78$var$_completeToolPath(tool, version, arch); + return destFolder; }); } -module.exports.mkdirP = $80efb8079b0b4017$var$mkdirP; +$e2d7a47000ccff78$exports.cacheFile = $e2d7a47000ccff78$var$cacheFile; /** - * Best effort attempt to determine whether a file exists and is executable. - * @param filePath file path to check - * @param extensions additional file extensions to try - * @return if file exists and is executable, returns the file path. otherwise empty string. - */ function $80efb8079b0b4017$var$tryGetExecutablePath(filePath, extensions) { - return $80efb8079b0b4017$var$__awaiter(this, void 0, void 0, function*() { - let stats = undefined; - try { - // test file exists - stats = yield module.exports.stat(filePath); - } catch (err) { - if (err.code !== "ENOENT") // eslint-disable-next-line no-console - console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); + * Finds the path to a tool version in the local installed tool cache + * + * @param toolName name of the tool + * @param versionSpec version of the tool + * @param arch optional arch. defaults to arch of computer + */ function $e2d7a47000ccff78$var$find(toolName, versionSpec, arch) { + if (!toolName) throw new Error("toolName parameter is required"); + if (!versionSpec) throw new Error("versionSpec parameter is required"); + arch = arch || $e2d7a47000ccff78$var$os.arch(); + // attempt to resolve an explicit version + if (!$e2d7a47000ccff78$var$isExplicitVersion(versionSpec)) { + const localVersions = $e2d7a47000ccff78$var$findAllVersions(toolName, arch); + const match = $e2d7a47000ccff78$var$evaluateVersions(localVersions, versionSpec); + versionSpec = match; + } + // check for the explicit version in the cache + let toolPath = ""; + if (versionSpec) { + versionSpec = $e2d7a47000ccff78$var$semver.clean(versionSpec) || ""; + const cachePath = $e2d7a47000ccff78$var$path.join($e2d7a47000ccff78$var$_getCacheDirectory(), toolName, versionSpec, arch); + $e2d7a47000ccff78$var$core.debug(`checking cache: ${cachePath}`); + if ($e2d7a47000ccff78$var$fs.existsSync(cachePath) && $e2d7a47000ccff78$var$fs.existsSync(`${cachePath}.complete`)) { + $e2d7a47000ccff78$var$core.debug(`Found tool in cache ${toolName} ${versionSpec} ${arch}`); + toolPath = cachePath; + } else $e2d7a47000ccff78$var$core.debug("not found"); + } + return toolPath; +} +$e2d7a47000ccff78$exports.find = $e2d7a47000ccff78$var$find; +/** + * Finds the paths to all versions of a tool that are installed in the local tool cache + * + * @param toolName name of the tool + * @param arch optional arch. defaults to arch of computer + */ function $e2d7a47000ccff78$var$findAllVersions(toolName, arch) { + const versions = []; + arch = arch || $e2d7a47000ccff78$var$os.arch(); + const toolPath = $e2d7a47000ccff78$var$path.join($e2d7a47000ccff78$var$_getCacheDirectory(), toolName); + if ($e2d7a47000ccff78$var$fs.existsSync(toolPath)) { + const children = $e2d7a47000ccff78$var$fs.readdirSync(toolPath); + for (const child of children)if ($e2d7a47000ccff78$var$isExplicitVersion(child)) { + const fullPath = $e2d7a47000ccff78$var$path.join(toolPath, child, arch || ""); + if ($e2d7a47000ccff78$var$fs.existsSync(fullPath) && $e2d7a47000ccff78$var$fs.existsSync(`${fullPath}.complete`)) versions.push(child); } - if (stats && stats.isFile()) { - if (module.exports.IS_WINDOWS) { - // on Windows, test for valid extension - const upperExt = $80efb8079b0b4017$var$path.extname(filePath).toUpperCase(); - if (extensions.some((validExt)=>validExt.toUpperCase() === upperExt)) return filePath; - } else { - if ($80efb8079b0b4017$var$isUnixExecutable(stats)) return filePath; - } + } + return versions; +} +$e2d7a47000ccff78$exports.findAllVersions = $e2d7a47000ccff78$var$findAllVersions; +function $e2d7a47000ccff78$var$getManifestFromRepo(owner, repo, auth, branch = "master") { + return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { + let releases = []; + const treeUrl = `https://api.github.com/repos/${owner}/${repo}/git/trees/${branch}`; + const http = new $e2d7a47000ccff78$var$httpm.HttpClient("tool-cache"); + const headers = {}; + if (auth) { + $e2d7a47000ccff78$var$core.debug("set auth"); + headers.authorization = auth; } - // try each extension - const originalFilePath = filePath; - for (const extension of extensions){ - filePath = originalFilePath + extension; - stats = undefined; + const response = yield http.getJson(treeUrl, headers); + if (!response.result) return releases; + let manifestUrl = ""; + for (const item of response.result.tree)if (item.path === "versions-manifest.json") { + manifestUrl = item.url; + break; + } + headers["accept"] = "application/vnd.github.VERSION.raw"; + let versionsRaw = yield (yield http.get(manifestUrl, headers)).readBody(); + if (versionsRaw) { + // shouldn't be needed but protects against invalid json saved with BOM + versionsRaw = versionsRaw.replace(/^\uFEFF/, ""); try { - stats = yield module.exports.stat(filePath); - } catch (err) { - if (err.code !== "ENOENT") // eslint-disable-next-line no-console - console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); - } - if (stats && stats.isFile()) { - if (module.exports.IS_WINDOWS) { - // preserve the case of the actual file (since an extension was appended) - try { - const directory = $80efb8079b0b4017$var$path.dirname(filePath); - const upperName = $80efb8079b0b4017$var$path.basename(filePath).toUpperCase(); - for (const actualName of yield module.exports.readdir(directory))if (upperName === actualName.toUpperCase()) { - filePath = $80efb8079b0b4017$var$path.join(directory, actualName); - break; - } - } catch (err) { - // eslint-disable-next-line no-console - console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`); - } - return filePath; - } else { - if ($80efb8079b0b4017$var$isUnixExecutable(stats)) return filePath; - } + releases = JSON.parse(versionsRaw); + } catch (_a) { + $e2d7a47000ccff78$var$core.debug("Invalid json"); } } - return ""; + return releases; + }); +} +$e2d7a47000ccff78$exports.getManifestFromRepo = $e2d7a47000ccff78$var$getManifestFromRepo; +function $e2d7a47000ccff78$var$findFromManifest(versionSpec, stable, manifest, archFilter = $e2d7a47000ccff78$var$os.arch()) { + return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { + // wrap the internal impl + const match = yield $e2d7a47000ccff78$var$mm._findMatch(versionSpec, stable, manifest, archFilter); + return match; }); } -module.exports.tryGetExecutablePath = $80efb8079b0b4017$var$tryGetExecutablePath; -function $80efb8079b0b4017$var$normalizeSeparators(p) { - p = p || ""; - if (module.exports.IS_WINDOWS) { - // convert slashes on Windows - p = p.replace(/\//g, "\\"); - // remove redundant slashes - return p.replace(/\\\\+/g, "\\"); +$e2d7a47000ccff78$exports.findFromManifest = $e2d7a47000ccff78$var$findFromManifest; +function $e2d7a47000ccff78$var$_createExtractFolder(dest) { + return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { + if (!dest) // create a temp dir + dest = $e2d7a47000ccff78$var$path.join($e2d7a47000ccff78$var$_getTempDirectory(), $e2d7a47000ccff78$var$v4_1.default()); + yield $e2d7a47000ccff78$var$io.mkdirP(dest); + return dest; + }); +} +function $e2d7a47000ccff78$var$_createToolPath(tool, version, arch) { + return $e2d7a47000ccff78$var$__awaiter(this, void 0, void 0, function*() { + const folderPath = $e2d7a47000ccff78$var$path.join($e2d7a47000ccff78$var$_getCacheDirectory(), tool, $e2d7a47000ccff78$var$semver.clean(version) || version, arch || ""); + $e2d7a47000ccff78$var$core.debug(`destination ${folderPath}`); + const markerPath = `${folderPath}.complete`; + yield $e2d7a47000ccff78$var$io.rmRF(folderPath); + yield $e2d7a47000ccff78$var$io.rmRF(markerPath); + yield $e2d7a47000ccff78$var$io.mkdirP(folderPath); + return folderPath; + }); +} +function $e2d7a47000ccff78$var$_completeToolPath(tool, version, arch) { + const folderPath = $e2d7a47000ccff78$var$path.join($e2d7a47000ccff78$var$_getCacheDirectory(), tool, $e2d7a47000ccff78$var$semver.clean(version) || version, arch || ""); + const markerPath = `${folderPath}.complete`; + $e2d7a47000ccff78$var$fs.writeFileSync(markerPath, ""); + $e2d7a47000ccff78$var$core.debug("finished caching tool"); +} +/** + * Check if version string is explicit + * + * @param versionSpec version string to check + */ function $e2d7a47000ccff78$var$isExplicitVersion(versionSpec) { + const c = $e2d7a47000ccff78$var$semver.clean(versionSpec) || ""; + $e2d7a47000ccff78$var$core.debug(`isExplicit: ${c}`); + const valid = $e2d7a47000ccff78$var$semver.valid(c) != null; + $e2d7a47000ccff78$var$core.debug(`explicit? ${valid}`); + return valid; +} +$e2d7a47000ccff78$exports.isExplicitVersion = $e2d7a47000ccff78$var$isExplicitVersion; +/** + * Get the highest satisfiying semantic version in `versions` which satisfies `versionSpec` + * + * @param versions array of versions to evaluate + * @param versionSpec semantic version spec to satisfy + */ function $e2d7a47000ccff78$var$evaluateVersions(versions, versionSpec) { + let version = ""; + $e2d7a47000ccff78$var$core.debug(`evaluating ${versions.length} versions`); + versions = versions.sort((a, b)=>{ + if ($e2d7a47000ccff78$var$semver.gt(a, b)) return 1; + return -1; + }); + for(let i = versions.length - 1; i >= 0; i--){ + const potential = versions[i]; + const satisfied = $e2d7a47000ccff78$var$semver.satisfies(potential, versionSpec); + if (satisfied) { + version = potential; + break; + } } - // remove redundant slashes - return p.replace(/\/\/+/g, "/"); + if (version) $e2d7a47000ccff78$var$core.debug(`matched: ${version}`); + else $e2d7a47000ccff78$var$core.debug("match not found"); + return version; } -// on Mac/Linux, test the execute bit -// R W X R W X R W X -// 256 128 64 32 16 8 4 2 1 -function $80efb8079b0b4017$var$isUnixExecutable(stats) { - return (stats.mode & 1) > 0 || (stats.mode & 8) > 0 && stats.gid === process.getgid() || (stats.mode & 64) > 0 && stats.uid === process.getuid(); +$e2d7a47000ccff78$exports.evaluateVersions = $e2d7a47000ccff78$var$evaluateVersions; +/** + * Gets RUNNER_TOOL_CACHE + */ function $e2d7a47000ccff78$var$_getCacheDirectory() { + const cacheDirectory = process.env["RUNNER_TOOL_CACHE"] || ""; + $bknAJ$assert.ok(cacheDirectory, "Expected RUNNER_TOOL_CACHE to be defined"); + return cacheDirectory; +} +/** + * Gets RUNNER_TEMP + */ function $e2d7a47000ccff78$var$_getTempDirectory() { + const tempDirectory = process.env["RUNNER_TEMP"] || ""; + $bknAJ$assert.ok(tempDirectory, "Expected RUNNER_TEMP to be defined"); + return tempDirectory; +} +/** + * Gets a global variable + */ function $e2d7a47000ccff78$var$_getGlobal(key, defaultValue) { + /* eslint-disable @typescript-eslint/no-explicit-any */ const value = $parcel$global[key]; + /* eslint-enable @typescript-eslint/no-explicit-any */ return value !== undefined ? value : defaultValue; +} +/** + * Returns an array of unique values. + * @param values Values to make unique. + */ function $e2d7a47000ccff78$var$_unique(values) { + return Array.from(new Set(values)); } - -}); +var $f72947bf3462b3a0$exports = {}; +$f72947bf3462b3a0$exports = JSON.parse('{"linux":{"arm64":{"18.1.2":"/clang%2Bllvm-18.1.2-aarch64-linux-gnu.tar.xz","18.1.1":"/clang%2Bllvm-18.1.1-aarch64-linux-gnu.tar.xz","18.1.0":"/clang%2Bllvm-18.1.0-aarch64-linux-gnu.tar.xz","17.0.6":"/clang%2Bllvm-17.0.6-aarch64-linux-gnu.tar.xz","17.0.5":"/clang%2Bllvm-17.0.5-aarch64-linux-gnu.tar.xz","17.0.4":"/clang%2Bllvm-17.0.4-aarch64-linux-gnu.tar.xz","17.0.3":"/clang%2Bllvm-17.0.3-aarch64-linux-gnu.tar.xz","17.0.2":"/clang%2Bllvm-17.0.2-aarch64-linux-gnu.tar.xz","17.0.1":"/clang%2Bllvm-17.0.1-aarch64-linux-gnu.tar.xz","16.0.6":"/clang%2Bllvm-16.0.6-aarch64-linux-gnu.tar.xz","16.0.5":"/clang%2Bllvm-16.0.5-aarch64-linux-gnu.tar.xz","16.0.4":"/clang%2Bllvm-16.0.4-aarch64-linux-gnu.tar.xz","16.0.3":"/clang%2Bllvm-16.0.3-aarch64-linux-gnu.tar.xz","16.0.2":"/clang%2Bllvm-16.0.2-aarch64-linux-gnu.tar.xz","16.0.1":"/clang%2Bllvm-16.0.1-aarch64-linux-gnu.tar.xz","16.0.0":"/clang%2Bllvm-16.0.0-aarch64-linux-gnu.tar.xz","15.0.6":"/clang%2Bllvm-15.0.6-aarch64-linux-gnu.tar.xz","15.0.3":"/clang%2Bllvm-15.0.3-aarch64-linux-gnu.tar.xz","15.0.2":"/clang%2Bllvm-15.0.2-aarch64-linux-gnu.tar.xz","15.0.1":"/clang%2Bllvm-15.0.1-aarch64-linux-gnu.tar.xz","15.0.0":"/clang%2Bllvm-15.0.0-aarch64-linux-gnu.tar.xz","14.0.6":"/clang%2Bllvm-14.0.6-aarch64-linux-gnu.tar.xz","14.0.5":"/clang%2Bllvm-14.0.5-aarch64-linux-gnu.tar.xz","14.0.4":"/clang%2Bllvm-14.0.4-aarch64-linux-gnu.tar.xz","14.0.3":"/clang%2Bllvm-14.0.3-aarch64-linux-gnu.tar.xz","14.0.2":"/clang%2Bllvm-14.0.2-aarch64-linux-gnu.tar.xz","14.0.1":"/clang%2Bllvm-14.0.1-aarch64-linux-gnu.tar.xz","14.0.0":"/clang%2Bllvm-14.0.0-aarch64-linux-gnu.tar.xz","13.0.1":"/clang%2Bllvm-13.0.1-aarch64-linux-gnu.tar.xz","13.0.0":"/clang%2Bllvm-13.0.0-aarch64-linux-gnu.tar.xz","12.0.1":"/clang%2Bllvm-12.0.1-aarch64-linux-gnu.tar.xz","12.0.0":"/clang%2Bllvm-12.0.0-aarch64-linux-gnu.tar.xz","11.1.0":"/clang%2Bllvm-11.1.0-aarch64-linux-gnu.tar.xz","11.0.1":"/clang%2Bllvm-11.0.1-aarch64-linux-gnu.tar.xz","11.0.0":"/clang%2Bllvm-11.0.0-aarch64-linux-gnu.tar.xz","10.0.1":"/clang%2Bllvm-10.0.1-aarch64-linux-gnu.tar.xz","10.0.0":"/clang%2Bllvm-10.0.0-aarch64-linux-gnu.tar.xz","9.0.1":"/clang%2Bllvm-9.0.1-aarch64-linux-gnu.tar.xz","8.0.1":"/clang%2Bllvm-8.0.1-aarch64-linux-gnu.tar.xz","7.1.0":"/clang%2Bllvm-7.1.0-aarch64-linux-gnu.tar.xz"},"x64":{"17.0.6":"/clang%2Bllvm-17.0.6-x86_64-linux-gnu-ubuntu-22.04.tar.xz","17.0.5":"/clang%2Bllvm-17.0.5-x86_64-linux-gnu-ubuntu-22.04.tar.xz","17.0.4":"/clang%2Bllvm-17.0.4-x86_64-linux-gnu-ubuntu-22.04.tar.xz","17.0.2":"/clang%2Bllvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xz","16.0.4":"/clang%2Bllvm-16.0.4-x86_64-linux-gnu-ubuntu-22.04.tar.xz","16.0.3":"/clang%2Bllvm-16.0.3-x86_64-linux-gnu-ubuntu-22.04.tar.xz","16.0.2":"/clang%2Bllvm-16.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xz","16.0.0":"/clang%2Bllvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz","15.0.6":"/clang%2Bllvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04.tar.xz","15.0.5":"/clang%2Bllvm-15.0.5-x86_64-linux-gnu-ubuntu-18.04.tar.xz","14.0.0":"/clang%2Bllvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz","13.0.1":"/clang%2Bllvm-13.0.1-x86_64-linux-gnu-ubuntu-18.04.tar.xz","13.0.0":"/clang%2Bllvm-13.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz","12.0.1":"/clang%2Bllvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz","12.0.0":"/clang%2Bllvm-12.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz","11.1.0":"/clang%2Bllvm-11.1.0-x86_64-linux-gnu-ubuntu-20.10.tar.xz","11.0.1":"/clang%2Bllvm-11.0.1-x86_64-linux-gnu-ubuntu-20.10.tar.xz","11.0.0":"/clang%2Bllvm-11.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz","10.0.1":"/clang%2Bllvm-10.0.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz","10.0.0":"/clang%2Bllvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz","9.0.1":"/clang%2Bllvm-9.0.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz","8.0.1":"/clang%2Bllvm-8.0.1-x86_64-linux-gnu-ubuntu-14.04.tar.xz","7.1.0":"/clang%2Bllvm-7.1.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz"}},"win32":{"x64":{"18.1.2":"/LLVM-18.1.2-win64.exe","18.1.1":"/LLVM-18.1.1-win64.exe","18.1.0":"/LLVM-18.1.0-win64.exe","17.0.6":"/LLVM-17.0.6-win64.exe","17.0.5":"/LLVM-17.0.5-win64.exe","17.0.4":"/LLVM-17.0.4-win64.exe","17.0.3":"/LLVM-17.0.3-win64.exe","17.0.2":"/LLVM-17.0.2-win64.exe","17.0.1":"/LLVM-17.0.1-win64.exe","16.0.6":"/LLVM-16.0.6-win64.exe","16.0.5":"/LLVM-16.0.5-win64.exe","16.0.4":"/LLVM-16.0.4-win64.exe","16.0.3":"/LLVM-16.0.3-win64.exe","16.0.2":"/LLVM-16.0.2-win64.exe","16.0.1":"/LLVM-16.0.1-win64.exe","16.0.0":"/LLVM-16.0.0-win64.exe","15.0.7":"/LLVM-15.0.7-win64.exe","15.0.6":"/LLVM-15.0.6-win64.exe","15.0.5":"/LLVM-15.0.5-win64.exe","15.0.4":"/LLVM-15.0.4-win64.exe","15.0.3":"/LLVM-15.0.3-win64.exe","15.0.2":"/LLVM-15.0.2-win64.exe","15.0.1":"/LLVM-15.0.1-win64.exe","15.0.0":"/LLVM-15.0.0-win64.exe","14.0.6":"/LLVM-14.0.6-win64.exe","14.0.5":"/LLVM-14.0.5-win64.exe","14.0.4":"/LLVM-14.0.4-win64.exe","14.0.3":"/LLVM-14.0.3-win64.exe","14.0.2":"/LLVM-14.0.2-win64.exe","14.0.1":"/LLVM-14.0.1-win64.exe","14.0.0":"/LLVM-14.0.0-win64.exe","13.0.1":"/LLVM-13.0.1-win64.exe","13.0.0":"/LLVM-13.0.0-win64.exe","12.0.1":"/LLVM-12.0.1-win64.exe","12.0.0":"/LLVM-12.0.0-win64.exe","11.1.0":"/LLVM-11.1.0-win64.exe","11.0.1":"/LLVM-11.0.1-win64.exe","11.0.0":"/LLVM-11.0.0-win64.exe","10.0.0":"/LLVM-10.0.0-win64.exe","9.0.1":"/LLVM-9.0.1-win64.exe","8.0.1":"/LLVM-8.0.1-win64.exe","7.1.0":"/LLVM-7.1.0-win64.exe"},"arm64":{"18.1.2":"/LLVM-18.1.2-woa64.exe","18.1.1":"/LLVM-18.1.1-woa64.exe","18.1.0":"/LLVM-18.1.0-woa64.exe","17.0.6":"/LLVM-17.0.6-woa64.exe","17.0.5":"/LLVM-17.0.5-woa64.exe","17.0.4":"/LLVM-17.0.4-woa64.exe","17.0.3":"/LLVM-17.0.3-woa64.exe","17.0.2":"/LLVM-17.0.2-woa64.exe","17.0.1":"/LLVM-17.0.1-woa64.exe","16.0.6":"/LLVM-16.0.6-woa64.exe","16.0.5":"/LLVM-16.0.5-woa64.exe","16.0.4":"/LLVM-16.0.4-woa64.exe","16.0.3":"/LLVM-16.0.3-woa64.exe","16.0.2":"/LLVM-16.0.2-woa64.exe","16.0.1":"/LLVM-16.0.1-woa64.exe","16.0.0":"/LLVM-16.0.0-woa64.exe","15.0.6":"/LLVM-15.0.6-woa64.exe","15.0.3":"/LLVM-15.0.3-woa64.exe","15.0.2":"/LLVM-15.0.2-woa64.exe","15.0.1":"/LLVM-15.0.1-woa64.exe","15.0.0":"/LLVM-15.0.0-woa64.exe","12.0.0":"/LLVM-12.0.0-woa64.exe"}},"darwin":{"arm64":{"17.0.6":"/clang%2Bllvm-17.0.6-arm64-apple-darwin22.0.tar.xz","17.0.5":"/clang%2Bllvm-17.0.5-arm64-apple-darwin22.0.tar.xz","17.0.4":"/clang%2Bllvm-17.0.4-arm64-apple-darwin22.0.tar.xz","17.0.3":"/clang%2Bllvm-17.0.3-arm64-apple-darwin22.0.tar.xz","17.0.2":"/clang%2Bllvm-17.0.2-arm64-apple-darwin22.0.tar.xz","17.0.1":"/clang%2Bllvm-17.0.1-arm64-apple-darwin22.0.tar.xz","16.0.5":"/clang%2Bllvm-16.0.5-arm64-apple-darwin22.0.tar.xz","16.0.4":"/clang%2Bllvm-16.0.4-arm64-apple-darwin22.0.tar.xz","16.0.3":"/clang%2Bllvm-16.0.3-arm64-apple-darwin22.0.tar.xz","16.0.2":"/clang%2Bllvm-16.0.2-arm64-apple-darwin22.0.tar.xz","16.0.1":"/clang%2Bllvm-16.0.1-arm64-apple-darwin22.0.tar.xz","16.0.0":"/clang%2Bllvm-16.0.0-arm64-apple-darwin22.0.tar.xz","15.0.7":"/clang%2Bllvm-15.0.7-arm64-apple-darwin22.0.tar.xz","15.0.6":"/clang%2Bllvm-15.0.6-arm64-apple-darwin21.0.tar.xz","15.0.5":"/clang%2Bllvm-15.0.5-arm64-apple-darwin21.0.tar.xz","15.0.4":"/clang%2Bllvm-15.0.4-arm64-apple-darwin21.0.tar.xz","15.0.3":"/clang%2Bllvm-15.0.3-arm64-apple-darwin21.0.tar.xz","15.0.2":"/clang%2Bllvm-15.0.2-arm64-apple-darwin21.0.tar.xz","15.0.1":"/clang%2Bllvm-15.0.1-arm64-apple-darwin21.0.tar.xz","15.0.0":"/clang%2Bllvm-15.0.0-arm64-apple-darwin21.0.tar.xz","14.0.6":"/clang%2Bllvm-14.0.6-arm64-apple-darwin22.3.0.tar.xz"},"x64":{"15.0.7":"/clang%2Bllvm-15.0.7-x86_64-apple-darwin21.0.tar.xz","15.0.4":"/clang%2Bllvm-15.0.4-x86_64-apple-darwin.tar.xz","15.0.3":"/clang%2Bllvm-15.0.3-x86_64-apple-darwin.tar.xz","15.0.2":"/clang%2Bllvm-15.0.2-x86_64-apple-darwin.tar.xz","15.0.1":"/clang%2Bllvm-15.0.1-x86_64-apple-darwin.tar.xz","15.0.0":"/clang%2Bllvm-15.0.0-x86_64-apple-darwin.tar.xz","14.0.6":"/clang%2Bllvm-14.0.6-x86_64-apple-darwin.tar.xz","14.0.5":"/clang%2Bllvm-14.0.5-x86_64-apple-darwin.tar.xz","14.0.4":"/clang%2Bllvm-14.0.4-x86_64-apple-darwin.tar.xz","14.0.3":"/clang%2Bllvm-14.0.3-x86_64-apple-darwin.tar.xz","14.0.2":"/clang%2Bllvm-14.0.2-x86_64-apple-darwin.tar.xz","14.0.1":"/clang%2Bllvm-14.0.1-x86_64-apple-darwin.tar.xz","14.0.0":"/clang%2Bllvm-14.0.0-x86_64-apple-darwin.tar.xz","13.0.1":"/clang%2Bllvm-13.0.1-x86_64-apple-darwin.tar.xz","13.0.0":"/clang%2Bllvm-13.0.0-x86_64-apple-darwin.tar.xz","12.0.0":"/clang%2Bllvm-12.0.0-x86_64-apple-darwin.tar.xz","11.0.0":"/clang%2Bllvm-11.0.0-x86_64-apple-darwin.tar.xz","10.0.1":"/clang%2Bllvm-10.0.1-x86_64-apple-darwin.tar.xz","10.0.0":"/clang%2Bllvm-10.0.0-x86_64-apple-darwin.tar.xz","9.0.1":"/clang%2Bllvm-9.0.1-x86_64-apple-darwin.tar.xz"}}}'); -parcelRequire.register("bCHEZ", function(module, exports) { -"use strict"; -var $87651c4e72658245$var$__createBinding = module.exports && module.exports.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { - enumerable: true, - get: function() { - return m[k]; - } - }); -} : function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -}); -var $87651c4e72658245$var$__setModuleDefault = module.exports && module.exports.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { - enumerable: true, - value: v - }); -} : function(o, v) { - o["default"] = v; -}); -var $87651c4e72658245$var$__importStar = module.exports && module.exports.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) { - for(var k in mod)if (k !== "default" && Object.hasOwnProperty.call(mod, k)) $87651c4e72658245$var$__createBinding(result, mod, k); - } - $87651c4e72658245$var$__setModuleDefault(result, mod); - return result; -}; -var $87651c4e72658245$var$__awaiter = module.exports && module.exports.__awaiter || function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(module.exports, "__esModule", { - value: true -}); -module.exports.RetryHelper = void 0; -const $87651c4e72658245$var$core = $87651c4e72658245$var$__importStar((parcelRequire("9Gi2U"))); +const $73b874f14e970995$var$ASSETS = $f72947bf3462b3a0$exports; +function $73b874f14e970995$export$d2312e68e1f5ad00() { + return { + version: $da816f606135dc7c$exports.getInput("version"), + arch: $da816f606135dc7c$exports.getInput("arch"), + forceUrl: $da816f606135dc7c$exports.getInput("force-url"), + directory: $da816f606135dc7c$exports.getInput("directory"), + cached: ($da816f606135dc7c$exports.getInput("cached") ?? "").toLowerCase() === "true", + mirrorUrl: $da816f606135dc7c$exports.getInput("mirror-url"), + auth: $da816f606135dc7c$exports.getInput("auth"), + env: ($da816f606135dc7c$exports.getInput("env") ?? "").toLowerCase() === "true" + }; +} +//================================================ +// Version +//================================================ /** - * Internal class for retries - */ class $87651c4e72658245$var$RetryHelper { - constructor(maxAttempts, minSeconds, maxSeconds){ - if (maxAttempts < 1) throw new Error("max attempts should be greater than or equal to 1"); - this.maxAttempts = maxAttempts; - this.minSeconds = Math.floor(minSeconds); - this.maxSeconds = Math.floor(maxSeconds); - if (this.minSeconds > this.maxSeconds) throw new Error("min seconds should be less than or equal to max seconds"); - } - execute(action, isRetryable) { - return $87651c4e72658245$var$__awaiter(this, void 0, void 0, function*() { - let attempt = 1; - while(attempt < this.maxAttempts){ - // Try - try { - return yield action(); - } catch (err) { - if (isRetryable && !isRetryable(err)) throw err; - $87651c4e72658245$var$core.info(err.message); - } - // Sleep - const seconds = this.getSleepAmount(); - $87651c4e72658245$var$core.info(`Waiting ${seconds} seconds before trying again`); - yield this.sleep(seconds); - attempt++; - } - // Last attempt - return yield action(); - }); + * Gets the specific LLVM versions supported by this action compatible with the + * supplied (specific or minimum) LLVM version in descending order of release + * (e.g., `5.0.2`, `5.0.1`, and `5.0.0` for `5`). + */ function $73b874f14e970995$var$getSpecificVersions(specificVersions, version) { + return Array.from(specificVersions).filter((v)=>/^\d+\.\d+\.\d+$/.test(v) && v.startsWith(`${version}.`)).sort().reverse(); +} +function $73b874f14e970995$export$da446a5ee2572b7(os, options) { + if (options.forceUrl) { + console.log("Using asset specified by `force-url` option."); + return { + specificVersion: options.version, + url: options.forceUrl + }; } - getSleepAmount() { - return Math.floor(Math.random() * (this.maxSeconds - this.minSeconds + 1)) + this.minSeconds; + const arch = (options.arch ?? process.arch) || "x64"; + console.log(`Checking known assets (os=${os}, arch=${arch}, version=${options.version})...`); + const assets = $73b874f14e970995$var$ASSETS[os]?.[arch]; + if (!assets) throw new Error(`Unsupported platform (os=${os}, arch=${arch})!`); + const specificVersions = $73b874f14e970995$var$getSpecificVersions(Object.keys(assets), options.version); + if (!specificVersions.length) throw new Error(`Unsupported version for platform (os=${os}, arch=${arch}, version=${options.version})!`); + const specificVersion = specificVersions[0]; + const path = $73b874f14e970995$var$ASSETS[os][arch][specificVersion]; + let url; + if (options.mirrorUrl) url = `${options.mirrorUrl}${path}`; + else url = `https://github.com/llvm/llvm-project/releases/download/llvmorg-${specificVersion}${path}`; + return { + specificVersion: specificVersion, + url: url + }; +} +//================================================ +// Action +//================================================ +const $73b874f14e970995$var$DEFAULT_NIX_DIRECTORY = "./llvm"; +const $73b874f14e970995$var$DEFAULT_WIN32_DIRECTORY = "C:/Program Files/LLVM"; +async function $73b874f14e970995$var$install(options) { + const os = process.platform; + const { specificVersion: specificVersion, url: url } = $73b874f14e970995$export$da446a5ee2572b7(os, options); + $da816f606135dc7c$exports.setOutput("version", specificVersion); + console.log(`Installing LLVM and Clang ${options.version} (${specificVersion})...`); + console.log(`Downloading and extracting '${url}'...`); + const archive = await $e2d7a47000ccff78$exports.downloadTool(url, "", options.auth); + let exit; + if (os === "win32") exit = await $f2fb9ed99c4d106b$exports.exec("7z", [ + "x", + archive, + `-o${options.directory}`, + "-y" + ]); + else { + await $58ae6a13f2ee10a4$exports.mkdirP(options.directory); + exit = await $f2fb9ed99c4d106b$exports.exec("tar", [ + "xf", + archive, + "-C", + options.directory, + "--strip-components=1" + ]); } - sleep(seconds) { - return $87651c4e72658245$var$__awaiter(this, void 0, void 0, function*() { - return new Promise((resolve)=>setTimeout(resolve, seconds * 1000)); - }); + if (exit !== 0) throw new Error("Could not extract LLVM and Clang binaries."); + $da816f606135dc7c$exports.info(`Installed LLVM and Clang ${options.version} (${specificVersion})!`); + $da816f606135dc7c$exports.info(`Install location: ${options.directory}`); +} +async function $73b874f14e970995$export$889ea624f2cb2c57(options) { + if (!options.directory) options.directory = process.platform === "win32" ? $73b874f14e970995$var$DEFAULT_WIN32_DIRECTORY : $73b874f14e970995$var$DEFAULT_NIX_DIRECTORY; + options.directory = $bknAJ$path.resolve(options.directory); + if (options.cached) console.log(`Using cached LLVM and Clang ${options.version}...`); + else await $73b874f14e970995$var$install(options); + const bin = $bknAJ$path.join(options.directory, "bin"); + const lib = $bknAJ$path.join(options.directory, "lib"); + $da816f606135dc7c$exports.addPath(bin); + const ld = process.env.LD_LIBRARY_PATH ?? ""; + const dyld = process.env.DYLD_LIBRARY_PATH ?? ""; + $da816f606135dc7c$exports.exportVariable("LLVM_PATH", options.directory); + $da816f606135dc7c$exports.exportVariable("LD_LIBRARY_PATH", `${lib}${$bknAJ$path.delimiter}${ld}`); + $da816f606135dc7c$exports.exportVariable("DYLD_LIBRARY_PATH", `${lib}${$bknAJ$path.delimiter}${dyld}`); + if (options.env) { + $da816f606135dc7c$exports.exportVariable("CC", $bknAJ$path.join(options.directory, "bin", "clang")); + $da816f606135dc7c$exports.exportVariable("CXX", $bknAJ$path.join(options.directory, "bin", "clang++")); } } -module.exports.RetryHelper = $87651c4e72658245$var$RetryHelper; - -}); - - -parcelRequire.register("ldDhk", function(module, exports) { -module.exports = JSON.parse('{"linux":{"arm64":{"18.1.2":"/clang%2Bllvm-18.1.2-aarch64-linux-gnu.tar.xz","18.1.1":"/clang%2Bllvm-18.1.1-aarch64-linux-gnu.tar.xz","18.1.0":"/clang%2Bllvm-18.1.0-aarch64-linux-gnu.tar.xz","17.0.6":"/clang%2Bllvm-17.0.6-aarch64-linux-gnu.tar.xz","17.0.5":"/clang%2Bllvm-17.0.5-aarch64-linux-gnu.tar.xz","17.0.4":"/clang%2Bllvm-17.0.4-aarch64-linux-gnu.tar.xz","17.0.3":"/clang%2Bllvm-17.0.3-aarch64-linux-gnu.tar.xz","17.0.2":"/clang%2Bllvm-17.0.2-aarch64-linux-gnu.tar.xz","17.0.1":"/clang%2Bllvm-17.0.1-aarch64-linux-gnu.tar.xz","16.0.6":"/clang%2Bllvm-16.0.6-aarch64-linux-gnu.tar.xz","16.0.5":"/clang%2Bllvm-16.0.5-aarch64-linux-gnu.tar.xz","16.0.4":"/clang%2Bllvm-16.0.4-aarch64-linux-gnu.tar.xz","16.0.3":"/clang%2Bllvm-16.0.3-aarch64-linux-gnu.tar.xz","16.0.2":"/clang%2Bllvm-16.0.2-aarch64-linux-gnu.tar.xz","16.0.1":"/clang%2Bllvm-16.0.1-aarch64-linux-gnu.tar.xz","16.0.0":"/clang%2Bllvm-16.0.0-aarch64-linux-gnu.tar.xz","15.0.6":"/clang%2Bllvm-15.0.6-aarch64-linux-gnu.tar.xz","15.0.3":"/clang%2Bllvm-15.0.3-aarch64-linux-gnu.tar.xz","15.0.2":"/clang%2Bllvm-15.0.2-aarch64-linux-gnu.tar.xz","15.0.1":"/clang%2Bllvm-15.0.1-aarch64-linux-gnu.tar.xz","15.0.0":"/clang%2Bllvm-15.0.0-aarch64-linux-gnu.tar.xz","14.0.6":"/clang%2Bllvm-14.0.6-aarch64-linux-gnu.tar.xz","14.0.5":"/clang%2Bllvm-14.0.5-aarch64-linux-gnu.tar.xz","14.0.4":"/clang%2Bllvm-14.0.4-aarch64-linux-gnu.tar.xz","14.0.3":"/clang%2Bllvm-14.0.3-aarch64-linux-gnu.tar.xz","14.0.2":"/clang%2Bllvm-14.0.2-aarch64-linux-gnu.tar.xz","14.0.1":"/clang%2Bllvm-14.0.1-aarch64-linux-gnu.tar.xz","14.0.0":"/clang%2Bllvm-14.0.0-aarch64-linux-gnu.tar.xz","13.0.1":"/clang%2Bllvm-13.0.1-aarch64-linux-gnu.tar.xz","13.0.0":"/clang%2Bllvm-13.0.0-aarch64-linux-gnu.tar.xz","12.0.1":"/clang%2Bllvm-12.0.1-aarch64-linux-gnu.tar.xz","12.0.0":"/clang%2Bllvm-12.0.0-aarch64-linux-gnu.tar.xz","11.1.0":"/clang%2Bllvm-11.1.0-aarch64-linux-gnu.tar.xz","11.0.1":"/clang%2Bllvm-11.0.1-aarch64-linux-gnu.tar.xz","11.0.0":"/clang%2Bllvm-11.0.0-aarch64-linux-gnu.tar.xz","10.0.1":"/clang%2Bllvm-10.0.1-aarch64-linux-gnu.tar.xz","10.0.0":"/clang%2Bllvm-10.0.0-aarch64-linux-gnu.tar.xz","9.0.1":"/clang%2Bllvm-9.0.1-aarch64-linux-gnu.tar.xz","8.0.1":"/clang%2Bllvm-8.0.1-aarch64-linux-gnu.tar.xz","7.1.0":"/clang%2Bllvm-7.1.0-aarch64-linux-gnu.tar.xz"},"x64":{"17.0.6":"/clang%2Bllvm-17.0.6-x86_64-linux-gnu-ubuntu-22.04.tar.xz","17.0.5":"/clang%2Bllvm-17.0.5-x86_64-linux-gnu-ubuntu-22.04.tar.xz","17.0.4":"/clang%2Bllvm-17.0.4-x86_64-linux-gnu-ubuntu-22.04.tar.xz","17.0.2":"/clang%2Bllvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xz","16.0.4":"/clang%2Bllvm-16.0.4-x86_64-linux-gnu-ubuntu-22.04.tar.xz","16.0.3":"/clang%2Bllvm-16.0.3-x86_64-linux-gnu-ubuntu-22.04.tar.xz","16.0.2":"/clang%2Bllvm-16.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xz","16.0.0":"/clang%2Bllvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz","15.0.6":"/clang%2Bllvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04.tar.xz","15.0.5":"/clang%2Bllvm-15.0.5-x86_64-linux-gnu-ubuntu-18.04.tar.xz","14.0.0":"/clang%2Bllvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz","13.0.1":"/clang%2Bllvm-13.0.1-x86_64-linux-gnu-ubuntu-18.04.tar.xz","13.0.0":"/clang%2Bllvm-13.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz","12.0.1":"/clang%2Bllvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz","12.0.0":"/clang%2Bllvm-12.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz","11.1.0":"/clang%2Bllvm-11.1.0-x86_64-linux-gnu-ubuntu-20.10.tar.xz","11.0.1":"/clang%2Bllvm-11.0.1-x86_64-linux-gnu-ubuntu-20.10.tar.xz","11.0.0":"/clang%2Bllvm-11.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz","10.0.1":"/clang%2Bllvm-10.0.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz","10.0.0":"/clang%2Bllvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz","9.0.1":"/clang%2Bllvm-9.0.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz","8.0.1":"/clang%2Bllvm-8.0.1-x86_64-linux-gnu-ubuntu-14.04.tar.xz","7.1.0":"/clang%2Bllvm-7.1.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz"}},"win32":{"x64":{"18.1.2":"/LLVM-18.1.2-win64.exe","18.1.1":"/LLVM-18.1.1-win64.exe","18.1.0":"/LLVM-18.1.0-win64.exe","17.0.6":"/LLVM-17.0.6-win64.exe","17.0.5":"/LLVM-17.0.5-win64.exe","17.0.4":"/LLVM-17.0.4-win64.exe","17.0.3":"/LLVM-17.0.3-win64.exe","17.0.2":"/LLVM-17.0.2-win64.exe","17.0.1":"/LLVM-17.0.1-win64.exe","16.0.6":"/LLVM-16.0.6-win64.exe","16.0.5":"/LLVM-16.0.5-win64.exe","16.0.4":"/LLVM-16.0.4-win64.exe","16.0.3":"/LLVM-16.0.3-win64.exe","16.0.2":"/LLVM-16.0.2-win64.exe","16.0.1":"/LLVM-16.0.1-win64.exe","16.0.0":"/LLVM-16.0.0-win64.exe","15.0.7":"/LLVM-15.0.7-win64.exe","15.0.6":"/LLVM-15.0.6-win64.exe","15.0.5":"/LLVM-15.0.5-win64.exe","15.0.4":"/LLVM-15.0.4-win64.exe","15.0.3":"/LLVM-15.0.3-win64.exe","15.0.2":"/LLVM-15.0.2-win64.exe","15.0.1":"/LLVM-15.0.1-win64.exe","15.0.0":"/LLVM-15.0.0-win64.exe","14.0.6":"/LLVM-14.0.6-win64.exe","14.0.5":"/LLVM-14.0.5-win64.exe","14.0.4":"/LLVM-14.0.4-win64.exe","14.0.3":"/LLVM-14.0.3-win64.exe","14.0.2":"/LLVM-14.0.2-win64.exe","14.0.1":"/LLVM-14.0.1-win64.exe","14.0.0":"/LLVM-14.0.0-win64.exe","13.0.1":"/LLVM-13.0.1-win64.exe","13.0.0":"/LLVM-13.0.0-win64.exe","12.0.1":"/LLVM-12.0.1-win64.exe","12.0.0":"/LLVM-12.0.0-win64.exe","11.1.0":"/LLVM-11.1.0-win64.exe","11.0.1":"/LLVM-11.0.1-win64.exe","11.0.0":"/LLVM-11.0.0-win64.exe","10.0.0":"/LLVM-10.0.0-win64.exe","9.0.1":"/LLVM-9.0.1-win64.exe","8.0.1":"/LLVM-8.0.1-win64.exe","7.1.0":"/LLVM-7.1.0-win64.exe"},"arm64":{"18.1.2":"/LLVM-18.1.2-woa64.exe","18.1.1":"/LLVM-18.1.1-woa64.exe","18.1.0":"/LLVM-18.1.0-woa64.exe","17.0.6":"/LLVM-17.0.6-woa64.exe","17.0.5":"/LLVM-17.0.5-woa64.exe","17.0.4":"/LLVM-17.0.4-woa64.exe","17.0.3":"/LLVM-17.0.3-woa64.exe","17.0.2":"/LLVM-17.0.2-woa64.exe","17.0.1":"/LLVM-17.0.1-woa64.exe","16.0.6":"/LLVM-16.0.6-woa64.exe","16.0.5":"/LLVM-16.0.5-woa64.exe","16.0.4":"/LLVM-16.0.4-woa64.exe","16.0.3":"/LLVM-16.0.3-woa64.exe","16.0.2":"/LLVM-16.0.2-woa64.exe","16.0.1":"/LLVM-16.0.1-woa64.exe","16.0.0":"/LLVM-16.0.0-woa64.exe","15.0.6":"/LLVM-15.0.6-woa64.exe","15.0.3":"/LLVM-15.0.3-woa64.exe","15.0.2":"/LLVM-15.0.2-woa64.exe","15.0.1":"/LLVM-15.0.1-woa64.exe","15.0.0":"/LLVM-15.0.0-woa64.exe","12.0.0":"/LLVM-12.0.0-woa64.exe"}},"darwin":{"arm64":{"17.0.6":"/clang%2Bllvm-17.0.6-arm64-apple-darwin22.0.tar.xz","17.0.5":"/clang%2Bllvm-17.0.5-arm64-apple-darwin22.0.tar.xz","17.0.4":"/clang%2Bllvm-17.0.4-arm64-apple-darwin22.0.tar.xz","17.0.3":"/clang%2Bllvm-17.0.3-arm64-apple-darwin22.0.tar.xz","17.0.2":"/clang%2Bllvm-17.0.2-arm64-apple-darwin22.0.tar.xz","17.0.1":"/clang%2Bllvm-17.0.1-arm64-apple-darwin22.0.tar.xz","16.0.5":"/clang%2Bllvm-16.0.5-arm64-apple-darwin22.0.tar.xz","16.0.4":"/clang%2Bllvm-16.0.4-arm64-apple-darwin22.0.tar.xz","16.0.3":"/clang%2Bllvm-16.0.3-arm64-apple-darwin22.0.tar.xz","16.0.2":"/clang%2Bllvm-16.0.2-arm64-apple-darwin22.0.tar.xz","16.0.1":"/clang%2Bllvm-16.0.1-arm64-apple-darwin22.0.tar.xz","16.0.0":"/clang%2Bllvm-16.0.0-arm64-apple-darwin22.0.tar.xz","15.0.7":"/clang%2Bllvm-15.0.7-arm64-apple-darwin22.0.tar.xz","15.0.6":"/clang%2Bllvm-15.0.6-arm64-apple-darwin21.0.tar.xz","15.0.5":"/clang%2Bllvm-15.0.5-arm64-apple-darwin21.0.tar.xz","15.0.4":"/clang%2Bllvm-15.0.4-arm64-apple-darwin21.0.tar.xz","15.0.3":"/clang%2Bllvm-15.0.3-arm64-apple-darwin21.0.tar.xz","15.0.2":"/clang%2Bllvm-15.0.2-arm64-apple-darwin21.0.tar.xz","15.0.1":"/clang%2Bllvm-15.0.1-arm64-apple-darwin21.0.tar.xz","15.0.0":"/clang%2Bllvm-15.0.0-arm64-apple-darwin21.0.tar.xz","14.0.6":"/clang%2Bllvm-14.0.6-arm64-apple-darwin22.3.0.tar.xz"},"x64":{"15.0.7":"/clang%2Bllvm-15.0.7-x86_64-apple-darwin21.0.tar.xz","15.0.4":"/clang%2Bllvm-15.0.4-x86_64-apple-darwin.tar.xz","15.0.3":"/clang%2Bllvm-15.0.3-x86_64-apple-darwin.tar.xz","15.0.2":"/clang%2Bllvm-15.0.2-x86_64-apple-darwin.tar.xz","15.0.1":"/clang%2Bllvm-15.0.1-x86_64-apple-darwin.tar.xz","15.0.0":"/clang%2Bllvm-15.0.0-x86_64-apple-darwin.tar.xz","14.0.6":"/clang%2Bllvm-14.0.6-x86_64-apple-darwin.tar.xz","14.0.5":"/clang%2Bllvm-14.0.5-x86_64-apple-darwin.tar.xz","14.0.4":"/clang%2Bllvm-14.0.4-x86_64-apple-darwin.tar.xz","14.0.3":"/clang%2Bllvm-14.0.3-x86_64-apple-darwin.tar.xz","14.0.2":"/clang%2Bllvm-14.0.2-x86_64-apple-darwin.tar.xz","14.0.1":"/clang%2Bllvm-14.0.1-x86_64-apple-darwin.tar.xz","14.0.0":"/clang%2Bllvm-14.0.0-x86_64-apple-darwin.tar.xz","13.0.1":"/clang%2Bllvm-13.0.1-x86_64-apple-darwin.tar.xz","13.0.0":"/clang%2Bllvm-13.0.0-x86_64-apple-darwin.tar.xz","12.0.0":"/clang%2Bllvm-12.0.0-x86_64-apple-darwin.tar.xz","11.0.0":"/clang%2Bllvm-11.0.0-x86_64-apple-darwin.tar.xz","10.0.1":"/clang%2Bllvm-10.0.1-x86_64-apple-darwin.tar.xz","10.0.0":"/clang%2Bllvm-10.0.0-x86_64-apple-darwin.tar.xz","9.0.1":"/clang%2Bllvm-9.0.1-x86_64-apple-darwin.tar.xz"}}}'); - -}); +async function $933db609b41224a7$var$main() { + try { + await (0, $73b874f14e970995$export$889ea624f2cb2c57)((0, $73b874f14e970995$export$d2312e68e1f5ad00)()); + } catch (error) { + console.error(error.stack); + $da816f606135dc7c$exports.setFailed(error.message); + } +} +console.log("hello"); +$933db609b41224a7$var$main(); -parcelRequire("5QGG7"); -//# sourceMappingURL=index.js.map +//# sourceMappingURL=main.js.map diff --git a/dist/main.js.map b/dist/main.js.map new file mode 100644 index 0000000..c14619e --- /dev/null +++ b/dist/main.js.map @@ -0,0 +1 @@ +{"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;ACAA,qDAAA,G,I,wC,A,kB,e,mB,C,O,S,S,C,E,C,E,C,E,E;I,I,O,W,K;I,O,e,G,I;Q,Y;Q,K;Y,O,C,C,E;Q;I;A,I,S,C,E,C,E,C,E,E;I,I,O,W,K;I,C,C,G,G,C,C,E;A,C;A,I,2C,A,kB,e,sB,C,O,S,S,C,E,C;I,O,e,G,W;Q,Y;Q,O;I;A,I,S,C,E,C;I,C,C,U,G;A,C;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,I,kC,A,kB,e,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,O,e,gB,c;I,O;A;A,e,a,e,U,e,qB,e,kB,e,c,e,a,e,U,e,Y,K;;AAEA,MAAA,6BAAA,mCAAA;;AACA,MAAA,8BAAA,mCAAA;;AAGA,MAAA,2BAAA,mCAAA;;AACA,MAAA,+BAAA,mCAAA;AAEA,IAAY;AAAZ,CAAA,SAAY,SAAS;IACnB,SAAA,CAAA,SAAA,CAAA,KAAA,GAAA,IAAA,GAAA;IACA,SAAA,CAAA,SAAA,CAAA,kBAAA,GAAA,IAAA,GAAA;IACA,SAAA,CAAA,SAAA,CAAA,mBAAA,GAAA,IAAA,GAAA;IACA,SAAA,CAAA,SAAA,CAAA,gBAAA,GAAA,IAAA,GAAA;IACA,SAAA,CAAA,SAAA,CAAA,WAAA,GAAA,IAAA,GAAA;IACA,SAAA,CAAA,SAAA,CAAA,cAAA,GAAA,IAAA,GAAA;IACA,SAAA,CAAA,SAAA,CAAA,WAAA,GAAA,IAAA,GAAA;IACA,SAAA,CAAA,SAAA,CAAA,cAAA,GAAA,IAAA,GAAA;IACA,SAAA,CAAA,SAAA,CAAA,oBAAA,GAAA,IAAA,GAAA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AAY,GAAG;QAClC,KAAK,OAAO,CAAC,KAAK,QAAQ,QAAQ,QAAQ,GAAG;QAC7C,GAAG;IACL;AACF;AAGA,SAAS,gCAAU,IAAI,EAAE,IAAI,EAAE,YAAY;IACzC,IAAI,OAAO,SAAS,UAClB,OAAO;QACL,MAAM;QACN,MAAM;QACN,cAAc;IAChB;IAEF,OAAO,MAAM,qBAAqB;AACpC;AAEA,SAAS,mCAAa,MAAM;IAC1B,IAAK,IAAI,IAAI,GAAG,MAAM,UAAU,QAAQ,IAAI,KAAK,EAAE,EAAG;QACpD,IAAI,YAAY,SAAS,CAAC,EAAE;QAC5B,IAAI,OAAO,cAAc,UAAU;YACjC,IAAI,OAAO,OAAO,KAAK;YACvB,IAAK,IAAI,IAAI,GAAG,SAAS,KAAK,QAAQ,IAAI,QAAQ,EAAE,EAAG;gBACrD,IAAI,IAAI,IAAI,CAAC,EAAE;gBACf,IAAI,SAAS,CAAC,EAAE,KAAK,WACnB,MAAM,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE;YAE5B;QACF;IACF;IACA,OAAO;AACT;AAGA,IAAI;AACJ,IAAI,QAAQ,IAAI,cAAc,aAAa,KAAK,QAAQ,IAAI,aAC1D,8BAAQ;IACN,IAAI,OAAO,MAAM,UAAU,MAAM,KAAK;IACtC,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,UACrB,IAAI,CAAC,EAAE,GAAG,aAAa,IAAI,CAAC,EAAE;SAE9B,KAAK,QAAQ;IAEf,QAAQ,MAAM,MAAM,SAAS;AAC/B;KAEA,8BAAQ,YAAY;AAEtB,4CAAgB,6BAAO,WAAW;;;;;;;A;A,I,wC,A,kB,e,mB,C,O,S,S,C,E,C,E,C,E,E;I,I,O,W,K;I,O,e,G,I;Q,Y;Q,K;Y,O,C,C,E;Q;I;A,I,S,C,E,C,E,C,E,E;I,I,O,W,K;I,C,C,G,G,C,C,E;A,C;A,I,2C,A,kB,e,sB,C,O,S,S,C,E,C;I,O,e,G,W;Q,Y;Q,O;I;A,I,S,C,E,C;I,C,C,U,G;A,C;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,I,kC,A,kB,e,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,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ACpB,IAAI,IAAI,CAAC,SAAS;YAChB,aAAa,IAAI,CAAC;YAClB,IAAI,CAAC,UAAU;QAChB;QAED,IAAI,CAAC,OAAO;QACZ,IAAI,CAAC,KAAK,QAAQ,OAAO,IAAI,CAAC;IAChC;IAEQ,OAAO,cAAc,KAAgB,EAArC;QACN,IAAI,MAAM,MACR;QAGF,IAAI,CAAC,MAAM,iBAAiB,MAAM,eAAe;YAC/C,MAAM,UAAU,CAAA,uCAAA,EAA0C,MAAM,QAC9D,KAAI,yCAAA,EACJ,MAAM,SACR,wFAAA,CAA0F;YAC1F,MAAM,OAAO;QACd;QAED,MAAM;IACR;AACD;;;;A;A,I,kC,A,kB,e,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,O,e,K,K,I,M,C,E,G,G,C,E;I;I,M,C,U,G;I,O;A;A,O,e,gB,c;I,O;A;;AE9rBD,MAAA,qCAAA,mCAAA;;AACA,MAAA,6BAAA,mCAAA;;;AAEA,MAAA,+BAAA,mCAAA;AAEA,MAAM,6BAAO,sBAAU,mCAAa;AAoBpC;;;;;;;CAOG,GACH,SAAsB,yBACpB,MAAc,EACd,IAAY,EACZ,UAAuB,CAAA,CAAE;I,O,gC,I,E,K,G,K,G;QAEzB,MAAM,SAAC,KAAK,aAAE,SAAS,EAAC,GAAG,sCAAgB;QAE3C,MAAM,WAAW,AAAC,CAAA,MAAM,6BAAO,OAAO,KAAI,IAAK,MAAM,6BAAO,KAAK,QAAQ;QACzE,4CAA4C;QAC5C,IAAI,YAAY,SAAS,YAAY,CAAC,OACpC;QAGF,wDAAwD;QACxD,MAAM,UACJ,YAAY,SAAS,gBACjB,2BAAK,KAAK,MAAM,2BAAK,SAAS,WAC9B;QAEN,IAAI,CAAE,CAAA,MAAM,6BAAO,OAAO,OAAM,GAC9B,MAAM,IA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gC,I,E,K,G,K,G;QAEd,IAAI,AAAC,CAAA,MAAM,6BAAO,MAAM,QAAO,EAAG,kBAAkB;YAClD,oBAAoB;YACpB,IAAI;gBACF,MAAM,6BAAO,MAAM;gBACnB,MAAM,6BAAO,OAAO;YACrB,EAAC,OAAO,GAAG;gBACV,kCAAkC;gBAClC,IAAI,EAAE,SAAS,SAAS;oBACtB,MAAM,6BAAO,MAAM,UAAU;oBAC7B,MAAM,6BAAO,OAAO;gBACrB;YACD,iDAAiD;YAClD;YAED,oBAAoB;YACpB,MAAM,cAAsB,MAAM,6BAAO,SAAS;YAClD,MAAM,6BAAO,QACX,aACA,UACA,6BAAO,aAAa,aAAa;QAEpC,OAAM,IAAI,CAAE,CAAA,MAAM,6BAAO,OAAO,SAAQ,KAAM,OAC7C,MAAM,6BAAO,SAAS,SAAS;IAEnC;AAAC;;;;A;A,I,kC,A,kB,e,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,O,e,K,K,I,M,C,E,G,G,C,E;I;I,M,C,U,G;I,O;A;A,I;A,O,e,gB,c;I,O;A;;;AErVD,MAAA,2BAAA,mCAAA;;AACA,MAAA,6BAAA,mCAAA;AAEa,2BAAA,yBAAA,UAYE,eAAA,QAAA,yBAAA,OAAA,eAAA,WAAA,yBAAA,UAAA,eAAA,QAAA,yBAAA,OAAA,eAAA,QAAA,yBAAA,OAAA,eAAA,UAAA,yBAAA,SAAA,eAAA,WAAA,yBAAA,UAAA,eAAA,SAAA,yBAAA,QAAA,eAAA,QAAA,yBAAA,OAAA,eAAA,OAAA,yBAAA,MAAA,eAAA,UAAA,yBAAA,SAAA,eAAA,SAAA,yBAAA;AAEF,eAAA,aAAa,QAAQ,aAAa;AAE/C,SAAsB,6BAAO,MAAc;I,O,gC,I,E,K,G,K,G;QACzC,IAAI;YACF,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AAK,KAAK,MAAM,QAAQ,QAAQ,YAC9C,AAAC,CAAA,MAAM,OAAO,EAAA,IAAM,KAAK,MAAM,QAAQ,QAAQ;AAEpD;;;;;;;A;A,I,wC,A,kB,e,mB,C,O,S,S,C,E,C,E,C,E,E;I,I,O,W,K;I,O,e,G,I;Q,Y;Q,K;Y,O,C,C,E;Q;I;A,I,S,C,E,C,E,C,E,E;I,I,O,W,K;I,C,C,G,G,C,C,E;A,C;A,I,2C,A,kB,e,sB,C,O,S,S,C,E,C;I,O,e,G,W;Q,Y;Q,O;I;A,I,S,C,E,C;I,C,C,U,G;A,C;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,I,kC,A,kB,e,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,I;A,O,e,gB,c;I,O;A;A,e,a,e,uB,e,W,e,c,e,S,e,W,e,iB,e,a,e,S,e,U,e,O,e,Q,e,K,e,S,e,W,e,U,e,O,e,Q,e,Q,e,W,e,Q,K;;AEtNA,MAAA,2BAAA,mCAAA;;AACA,MAAA,6BAAA,mCAAA;AAEa,2BAcT,yBAAG,UAbL,eAAA,QAAK,yBAAA,OACL,eAAA,WAAQ,yBAAA,UACR,eAAA,QAAK,yBAAA,OACL,eAAA,QAAK,yBAAA,OACL,eAAA,OAAI,yBAAA,MACJ,eAAA,UAAO,yBAAA,SACP,eAAA,WAAQ,yBAAA,UACR,eAAA,SAAM,yBAAA,QACN,eAAA,KAAE,yBAAA,IACF,eAAA,QAAK,yBAAA,OACL,eAAA,OAAI,yBAAA,MACJ,eAAA,UAAO,yBAAA,SACP,eAAA,SAAM,yBAAA;AAER,6BAA6B;AAChB,eAAA,aAAa,QAAQ,aAAa;AAC/C,iHAAiH;AACpG,eAAA,iBAAiB;AACjB,eAAA,WAAW,yBAAG,UAAU;AAErC,SAAsB,6BAAO,MAAc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I,S,C,E,C,E,C,E,E;I,I,O,W,K;I,C,C,G,G,C,C,E;A,C;A,I,2C,A,kB,e,sB,C,O,S,S,C,E,C;I,O,e,G,W;Q,Y;Q,O;I;A,I,S,C,E,C;I,C,C,U,G;A,C;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,I,kC,A,kB,e,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,O,e,gB,c;I,O;A;A,e,a,e,Q,e,S,e,O,e,K,e,K,K;;;AERA,MAAA,qCAAA,mCAAA;;AACA,MAAA,6BAAA,mCAAA;;;AAEA,MAAA,+BAAA,mCAAA;AAEA,MAAM,6BAAO,sBAAU,mCAAa;AACpC,MAAM,iCAAW,sBAAU,mCAAa;AAsBxC;;;;;;;CAOG,GACH,SAAsB,yBACpB,MAAc,EACd,IAAY,EACZ,UAAuB,CAAA,CAAE;I,O,gC,I,E,K,G,K,G;QAEzB,MAAM,SAAC,KAAK,aAAE,SAAS,uBAAE,mBAAmB,EAAC,GAAG,sCAAgB;QAEhE,MAAM,WAAW,AAAC,CAAA,MAAM,6BAAO,OAAO,KAAI,IAAK,MAAM,6BAAO,KAAK,QAAQ;QACzE,4CAA4C;QAC5C,IAAI,YAAY,SAAS,YAAY,CAAC,OACpC;QAGF,wDAAwD;QACxD,MAAM,UACJ,YAAY,SAAS,iBAAiB,sBAClC,2BAAK,KAAK,MAAM,2BAAK,SAAS,WAC9B;QAEN,IAAI,CAAE,CAAA,MAAM,6BAAO,OAAO,OAAM,GAC9B,MAAM,IAAI,MAAM,CAAA,2BAAA,EAA8B,OAAM,CAAE;QAExD,MAAM,aAAa,MAAM,6BAAO,KAAK;QAErC,IAAI,WAAW,eAAe;YAC5B,IAAI,CAAC,WACH,MAAM,IAAI,MACR,CAAA,gBAAA,EAAmB,OAAM,0DAAA,CAA4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AClD,MAAM,6BAAO,MAAM,SAAS,AAAC,CAAA,MAAM,6BAAO,KAAK,UAAS,EAAG;IAC7D;AAAC;AAED,qBAAqB;AACrB,SAAe,+BACb,OAAe,EACf,QAAgB,EAChB,KAAc;I,O,gC,I,E,K,G,K,G;QAEd,IAAI,AAAC,CAAA,MAAM,6BAAO,MAAM,QAAO,EAAG,kBAAkB;YAClD,oBAAoB;YACpB,IAAI;gBACF,MAAM,6BAAO,MAAM;gBACnB,MAAM,6BAAO,OAAO;YACrB,EAAC,OAAO,GAAG;gBACV,kCAAkC;gBAClC,IAAI,EAAE,SAAS,SAAS;oBACtB,MAAM,6BAAO,MAAM,UAAU;oBAC7B,MAAM,6BAAO,OAAO;gBACrB;YACD,iDAAiD;YAClD;YAED,oBAAoB;YACpB,MAAM,cAAsB,MAAM,6BAAO,SAAS;YAClD,MAAM,6BAAO,QACX,aACA,UACA,6BAAO,aAAa,aAAa;QAEpC,OAAM,IAAI,CAAE,CAAA,MAAM,6BAAO,OAAO,SAAQ,KAAM,OAC7C,MAAM,6BAAO,SAAS,SAAS;IAEnC;AAAC;;;;A;A,I,wC,A,kB,e,mB,C,O,S,S,C,E,C,E,C,E,E;I,I,O,W,K;I,O,e,G,I;Q,Y;Q,K;Y,O,C,C,E;Q;I;A,I,S,C,E,C,E,C,E,E;I,I,O,W,K;I,C,C,G,G,C,C,E;A,C;A,I,2C,A,kB,e,sB,C,O,S,S,C,E,C;I,O,e,G,W;Q,Y;Q,O;I;A,I,S,C,E,C;I,C,C,U,G;A,C;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,I,kC,A,kB,e,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,I;A,O,e,gB,c;I,O;A;A,e,a,e,uB,e,W,e,c,e,S,e,a,e,S,e,U,e,O,e,Q,e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A,qCAAqC;AACrC,SAAgB;I,I;IACd,OAAA,AAAA,CAAA,KAAO,QAAQ,GAAG,CAAC,UAAU,AAAD,MAAC,QAAA,OAAA,KAAA,IAAA,KAAI,CAAA,OAAA,CAAS;AAC5C;AAFA,eAAA,aAAA;;;;;;A;A,I,wC,A,kB,e,mB,C,O,S,S,C,E,C,E,C,E,E;I,I,O,W,K;I,O,e,G,I;Q,Y;Q,K;Y,O,C,C,E;Q;I;A,I,S,C,E,C,E,C,E,E;I,I,O,W,K;I,C,C,G,G,C,C,E;A,C;A,I,2C,A,kB,e,sB,C,O,S,S,C,E,C;I,O,e,G,W;Q,Y;Q,O;I;A,I,S,C,E,C;I,C,C,U,G;A,C;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,I,kC,A,kB,e,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,O,e,gB,c;I,O;A;A,e,wB,e,gB,e,a,K;;AE1KA,MAAA,+BAAA,mCAAA;;;;;;AA6DA,SAAsB,iCACpB,WAAmB,EACnB,MAAe,EACf,UAA0B,EAC1B,UAAkB;I,O,gC,I,E,K,G,K,G;QAElB,MAAM,aAAa;QAEnB,IAAI;QACJ,IAAI;QAEJ,IAAI;QACJ,KAAK,MAAM,aAAa,WAAY;YAClC,MAAM,UAAU,UAAU;YAE1B,aAAM,CAAA,MAAA,EAAS,QAAO,WAAA,EAAc,YAAW,CAAE;YACjD,IACE,6BAAO,UAAU,SAAS,gBACzB,CAAA,CAAC,UAAU,UAAU,WAAW,MAAA,GACjC;gBACA,OAAO,UAAU,MAAM,KAAK,CAAA;oBAC1B,aACE,CAAA,EAAG,KAAK,KAAI,GAAA,EAAM,WAAU,IAAA,EAAO,KAAK,SAAQ,GAAA,EAAM,WAAU,CAAE;oBAGpE,IAAI,MAAM,KAAK,SAAS,cAAc,KAAK,a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E,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE;QAC9B,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE;QAC9B,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE;QAC9B,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE;QAC9B,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAC5B,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAC5B,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;KAC7B,CAAE,KAAK;AACV;AAEA,iBAAiB;;;;;;A;A,I,kC,A,kB,e,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,O,e,K,K,I,M,C,E,G,G,C,E;I;I,M,C,U,G;I,O;A;A,O,e,gB,c;I,O;A;;AEzBjB,MAAA,2BAAA,mCAAA;;AACA,MAAA,+BAAA,mCAAA;;AACA,MAAA,8BAAA,mCAAA;;AACA,MAAA,6BAAA,mCAAA;;AAGA,MAAA,2BAAA,mCAAA;;AACA,MAAA,+BAAA,mCAAA;AAEA,oDAAA,GAEA,MAAM,mCAAa,QAAQ,aAAa;AAExC;;CAEG,GACH,MAAa,yCAAmB,6BAAO;IACrC,YAAY,QAAgB,EAAE,IAAe,EAAE,OAAwB,CAAvE;QACE,KAAK;QAEL,IAAI,CAAC,UACH,MAAM,IAAI,MAAM;QAGlB,IAAI,CAAC,WAAW;QAChB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K,SAAS;IACrB;IAEQ,aAAA;QACN,sCAAsC;QACtC,IAAI;QACJ,IAAI,IAAI,CAAC,eAAe;YACtB,IAAI,IAAI,CAAC,cACP,QAAQ,IAAI,MACV,CAAA,2DAAA,EAA8D,IAAI,CAAC,SAAQ,yDAAA,EAA4D,IAAI,CAAC,aAAY,CAAE;iBAEvJ,IAAI,IAAI,CAAC,oBAAoB,KAAK,CAAC,IAAI,CAAC,QAAQ,kBACrD,QAAQ,IAAI,MACV,CAAA,aAAA,EAAgB,IAAI,CAAC,SAAQ,wBAAA,EAA2B,IAAI,CAAC,gBAAe,CAAE;iBAE3E,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,QAAQ,cAC5C,QAAQ,IAAI,MACV,CAAA,aAAA,EAAgB,IAAI,CAAC,SAAQ,oEAAA,CAAsE;QAGxG;QAED,oBAAoB;QACpB,IAAI,IAAI,CAAC,SAAS;YAChB,aAAa,IAAI,CAAC;YAClB,IAAI,CAAC,UAAU;QAChB;QAED,IAAI,CAAC,OAAO;QACZ,IAAI,CAAC,KAAK,QAAQ,OAAO,IAAI,CAAC;IAChC;IAEQ,OAAO,cAAc,KAAgB,EAArC;QACN,IAAI,MAAM,MACR;QAGF,IAAI,CAAC,MAAM,iBAAiB,MAAM,eAAe;YAC/C,MAAM,UAAU,CAAA,uCAAA,EAA0C,MAAM,QAC9D,KAAI,yCAAA,EACJ,MAAM,SACR,wFAAA,CAA0F;YAC1F,MAAM,OAAO;QACd;QAED,MAAM;IACR;AACD;;;;A;A,I,kC,A,kB,e,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,I,qC,A,kB,e,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,O,e,K,K,I,M,C,E,G,G,C,E;I;I,M,C,U,G;I,O;A;A,O,e,gB,c;I,O;A;;AE/qBD,MAAA,qCAAA,mCAAA;;AACA,MAAA,6BAAA,mCAAA;;;A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,EAAM,IAAG,CAAE;oBAE/F;oBAED,OAAO;gBACR,OAAM;oBACL,IAAI,uCAAiB,QACnB,OAAO;gBAEV;;QAEJ;QAED,OAAO;IACT;AAAC;AA5ED,eAAA,uBAAA;AA8EA,SAAS,0CAAoB,CAAS;IACpC,IAAI,KAAK;IACT,IAAI,eAAA,YAAY;QACd,6BAA6B;QAC7B,IAAI,EAAE,QAAQ,OAAO;QAErB,2BAA2B;QAC3B,OAAO,EAAE,QAAQ,UAAU;IAC5B;IAED,2BAA2B;IAC3B,OAAO,EAAE,QAAQ,UAAU;AAC7B;AAEA,qCAAqC;AACrC,6BAA6B;AAC7B,6BAA6B;AAC7B,SAAS,uCAAiB,KAAe;IACvC,OACE,AAAC,CAAA,MAAM,OAAO,CAAA,IAAK,KAClB,AAAC,CAAA,MAAM,OAAO,CAAA,IAAK,KAAK,MAAM,QAAQ,QAAQ,YAC9C,AAAC,CAAA,MAAM,OAAO,EAAA,IAAM,KAAK,MAAM,QAAQ,QAAQ;AAEpD;;;;;;;A;A,I,wC,A,6B,0B,mB,C,O,S,S,C,E,C,E,C,E,E;I,I,O,W,K;I,O,e,G,I;Q,Y;Q,K;Y,O,C,C,E;Q;I;A,I,S,C,E,C,E,C,E,E;I,I,O,W,K;I,C,C,G,G,C,C,E;A,C;A,I,2C,A,6B,0B,sB,C,O,S,S,C,E,C;I,O,e,G,W;Q,Y;Q,O;I;A,I,S,C,E,C;I,C,C,U,G;A,C;A,I,qC,A,6B,0B,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,I,kC,A,6B,0B,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,O,e,2B,c;I,O;A;A,0B,a,0B,W,0B,Y,0B,Q,0B,W,0B,a,0B,O,0B,S,0B,U,0B,Q,0B,Q,0B,U,0B,Y,0B,iB,0B,Y,0B,kB,0B,oB,0B,W,0B,U,0B,Y,0B,iB,0B,W,K;;A;A,I,wC,A,6B,0B,mB,C,O,S,S,C,E,C,E,C,E,E;I,I,O,W,K;I,O,e,G,I;Q,Y;Q,K;Y,O,C,C,E;Q;I;A,I,S,C,E,C,E,C,E,E;I,I,O,W,K;I,C,C,G,G,C,C,E;A,C;A,I,2C,A,6B,0B,sB,C,O,S,S,C,E,C;I,O,e,G,W;Q,Y;Q,O;I;A,I,S,C,E,C;I,C,C,U,G;A,C;A,I,qC,A,6B,0B,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,O,e,2B,c;I,O;A;A,0B,Q,0B,e,K;;AKtNA,MAAA,2BAAA,mCAAA;;A;AEAA,mCAAmC;AACnC,qDAAA,G,O,e,2B,c;I,O;A;A,0B,sB,0B,iB,K;AAKA;;;CAGG,GACH,SAAgB,qCAAe,KAAU;IACvC,IAAI,UAAU,QAAQ,UAAU,WAC9B,OAAO;SACF,IAAI,OAAO,UAAU,YAAY,iBAAiB,QACvD,OAAO;IAET,OAAO,KAAK,UAAU;AACxB;AAPA,0BAAA,iBAAA;AASA;;;;;CAKG,GACH,SAAgB,0CACd,oBAA0C;IAE1C,IAAI,CAAC,OAAO,KAAK,sBAAsB,QACrC,OAAO,CAAA;IAGT,OAAO;QACL,OAAO,qBAAqB;QAC5B,MAAM,qBAAqB;QAC3B,MAAM,qBAAqB;QAC3B,SAAS,qBAAqB;QAC9B,KAAK,qBAAqB;QAC1B,WAAW,qBAAqB;IACjC;AACH;AAfA,0BAAA,sBAAA;;;AFbA;;;;;;;;;CASG,GACH,SAAgB,mCACd,OAAe,EACf,UAA6B,EAC7B,OAAY;IAEZ,MAAM,MAAM,IAAI,8BAAQ,SAAS,YAAY;IAC7C,QAAQ,OAAO,MAAM,IAAI,aAAa,yBAAG;AAC3C;AAPA,0BAAA,eAAA;AASA,SAAgB,4BAAM,IAAY,EAAE,UAAU,EAAE;IAC9C,mCAAa,MAAM,CAAA,GAAI;AACzB;AAFA,0BAAA,QAAA;AAIA,MAAM,mCAAa;AAEnB,MAAM;IAKJ,YAAY,OAAe,EAAE,UAA6B,EAAE,OAAe,CAA3E;QACE,IAAI,CAAC,SACH,UAAU;QAGZ,IAAI,CAAC,UAAU;QACf,IAAI,CAAC,aAAa;QAClB,IAAI,CAAC,UAAU;IACjB;IAEA,WAAA;QACE,IAAI,SAAS,mCAAa,IAAI,CAAC;QAE/B,IAAI,IAAI,CAAC,cAAc,OAAO,KAAK,IAAI,CAAC,YAAY,SAAS,GAAG;YAC9D,UAAU;YACV,IAAI,QAAQ;YACZ,IAAK,MAAM,OAAO,IAAI,CAAC,WACrB,IAAI,IAAI,CAAC,WAAW,eAAe,MAAM;gBACvC,MAAM,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI;gBAChC,IAAI,KAAK;oBACP,IAAI,OACF,QAAQ;yBAER,UAAU;oBAGZ,UAAU,CAAA,EAAG,IAAG,CAAA,EAAI,qCAAe,KAAI,CAAE;gBAC1C;YACF;QAEJ;QAED,UAAU,CAAA,EAAG,iCAAU,EAAG,iCAAW,IAAI,CAAC,SAAQ,CAAE;QACpD,OAAO;IACT;AACD;AAED,SAAS,iCAAW,CAAM;IACxB,OAAO,yCAAe,GACnB,QAAQ,MAAM,OACd,QAAQ,OAAO,OACf,QAAQ,OAAO;AACpB;AAEA,SAAS,qCAAe,CAAM;IAC5B,OAAO,yCAAe,GACnB,QAAQ,MAAM,OACd,QAAQ,OAAO,OACf,QAAQ,OAAO,OACf,QAAQ,MAAM,OACd,QAAQ,MAAM;AACnB;;;;A;AI7FA,uCAAuC;A,I,wC,A,6B,0B,mB,C,O,S,S,C,E,C,E,C,E,E;I,I,O,W,K;I,O,e,G,I;Q,Y;Q,K;Y,O,C,C,E;Q;I;A,I,S,C,E,C,E,C,E,E;I,I,O,W,K;I,C,C,G,G,C,C,E;A,C;A,I,2C,A,6B,0B,sB,C,O,S,S,C,E,C;I,O,e,G,W;Q,Y;Q,O;I;A,I,S,C,E,C;I,C,C,U,G;A,C;A,I,qC,A,6B,0B,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,O,e,2B,c;I,O;A;A,0B,yB,0B,mB,K;;AAEvC,mCAAmC;AACnC,qDAAA,GAEA,MAAA,2BAAA,mCAAA;;AACA,MAAA,2BAAA,mCAAA;;AELA,MAAM,kCAAY,IAAI,WAAW,MAAM,qCAAqC;AAE5E,IAAI,gCAAU,gCAAU;AACT;IACb,IAAI,gCAAU,gCAAU,SAAS,IAAI;QACnC,CAAA,GAAA,uCAAK,EAAE,eAAe;QACtB,gCAAU;IACZ;IAEA,OAAO,gCAAU,MAAM,+BAAS,iCAAW;AAC7C;;;IGXA,2CAAe;;;ADEf,SAAS,+BAAS,IAAI;IACpB,OAAO,OAAO,SAAS,YAAY,CAAA,GAAA,wCAAI,EAAE,KAAK;AAChD;IAEA,2CAAe;;;ADLf;;;CAGC,GAED,MAAM,kCAAY,EAAE;AAEpB,IAAK,IAAI,IAAI,GAAG,IAAI,KAAK,EAAE,EACzB,gCAAU,KAAK,AAAC,CAAA,IAAI,KAAI,EAAG,SAAS,IAAI,OAAO;AAGjD,SAAS,gCAAU,GAAG,EAAE,SAAS,CAAC;IAChC,uEAAuE;IACvE,oFAAoF;IACpF,MAAM,OAAO,AAAC,CAAA,+BAAS,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,+BAAS,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,+BAAS,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,+BAAS,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,MAAM,+BAAS,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,+BAAS,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,MAAM,+BAAS,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,+BAAS,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,MAAM,+BAAS,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,+BAAS,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,MAAM,+BAAS,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,GAAG,+BAAS,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,GAAG,+BAAS,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,GAAG,+BAAS,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,GAAG,+BAAS,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,GAAG,+BAAS,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,AAAD,EAAG,eAAe,4EAA4E;IACtlB,oBAAoB;IACpB,wEAAwE;IACxE,2BAA2B;IAC3B,mEAAmE;IAEnE,IAAI,CAAC,CAAA,GAAA,wCAAO,EAAE,OACZ,MAAM,UAAU;IAGlB,OAAO;AACT;IAEA,2CAAe;;;AFzBf,SAAS,yBAAG,OAAO,EAAE,GAAG,EAAE,MAAM;IAC9B,UAAU,WAAW,CAAC;IACtB,MAAM,OAAO,QAAQ,UAAU,AAAC,CAAA,QAAQ,OAAO,CAAA,GAAA,wCAAE,CAAA,KAAM,gEAAgE;IAEvH,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,OAAO;IAC3B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,OAAO,MAAM,oCAAoC;IAErE,IAAI,KAAK;QACP,SAAS,UAAU;QAEnB,IAAK,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EACxB,GAAG,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,EAAE;QAG3B,OAAO;IACT;IAEA,OAAO,CAAA,GAAA,wCAAQ,EAAE;AACnB;IAEA,2CAAe;;;;ADbf,SAAgB,uCAAiB,OAAe,EAAE,OAAY;IAC5D,MAAM,WAAW,QAAQ,GAAG,CAAC,CAAA,OAAA,EAAU,QAAO,CAAE,CAAC;IACjD,IAAI,CAAC,UACH,MAAM,IAAI,MACR,CAAA,qDAAA,EAAwD,QAAO,CAAE;IAGrE,IAAI,CAAC,yBAAG,WAAW,WACjB,MAAM,IAAI,MAAM,CAAA,sBAAA,EAAyB,SAAQ,CAAE;IAGrD,yBAAG,eAAe,UAAU,CAAA,EAAG,yCAAe,SAAQ,EAAG,yBAAG,IAAG,CAAE,EAAE;QACjE,UAAU;IACX;AACH;AAdA,0BAAA,mBAAA;AAgBA,SAAgB,6CAAuB,GAAW,EAAE,KAAU;IAC5D,MAAM,YAAY,CAAA,aAAA,EAAgB,2CAAQ,CAAE;IAC5C,MAAM,iBAAiB,yCAAe;IAEtC,4EAA4E;IAC5E,6EAA6E;IAC7E,iBAAiB;IACjB,IAAI,IAAI,SAAS,YACf,MAAM,IAAI,MACR,CAAA,yDAAA,EAA4D,UAAS,CAAA,CAAG;IAI5E,IAAI,eAAe,SAAS,YAC1B,MAAM,IAAI,MACR,CAAA,0DAAA,EAA6D,UAAS,CAAA,CAAG;IAI7E,OAAO,CAAA,EAAG,IAAG,EAAA,EAAK,UAAS,EAAG,yBAAG,IAAG,EAAG,eAAc,EAAG,yBAAG,IAAG,EAAG,UAAS,CAAE;AAC9E;AApBA,0BAAA,yBAAA;;;;;ANtBA,MAAA,2BAAA,mCAAA;;AACA,MAAA,6BAAA,mCAAA;;A;A,I,kC,A,6B,0B,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,O,e,2B,c;I,O;A;A,0B,a,K;;;;A;A,I,kC,A,6B,0B,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,O,e,2B,c;I,O;A;A,0B,uC,0B,0B,0B,yB,K;AeDA,MAAa;IAIX,YAAY,QAAgB,EAAE,QAAgB,CAA9C;QACE,IAAI,CAAC,WAAW;QAChB,IAAI,CAAC,WAAW;IAClB;IAEA,eAAe,OAA4B,EAA3C;QACE,IAAI,CAAC,QAAQ,SACX,MAAM,MAAM;QAEd,QAAQ,OAAO,CAAC,gBAAgB,GAAG,CAAA,MAAA,EAAS,OAAO,KACjD,CAAA,EAAG,IAAI,CAAC,SAAQ,CAAA,EAAI,IAAI,CAAC,SAAQ,CAAE,EACnC,SAAS,UAAS,CAAE;IACxB;IAEA,iCAAiC;IACjC,0BAAA;QACE,OAAO;IACT;IAEM,uBAAA;Q,O,gC,I,E,K,G,K,G;YACJ,MAAM,IAAI,MAAM;QAClB;IAAC;AACF;AA1BD,0BAAA,yBAAA;AA4BA,MAAa;IAGX,YAAY,KAAa,CAAzB;QACE,IAAI,CAAC,QAAQ;IACf;IAEA,yCAAyC;IACzC,sDAAsD;IACtD,eAAe,OAA4B,EAA3C;QACE,IAAI,CAAC,QAAQ,SACX,MAAM,MAAM;QAEd,QAAQ,OAAO,C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B,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,O,e,2B,c;I,O;A;A,0B,iB,0B,c,0B,c,K;;AmB9XvB,MAAA,6BAAA,mCAAA;AAEA;;;;;;CAMG,GACH,SAAgB,kCAAY,GAAW;IACrC,OAAO,IAAI,QAAQ,SAAS;AAC9B;AAFA,0BAAA,cAAA;AAIA;;;;;;CAMG,GACH,SAAgB,kCAAY,GAAW;IACrC,OAAO,IAAI,QAAQ,QAAQ;AAC7B;AAFA,0BAAA,cAAA;AAIA;;;;;;;CAOG,GACH,SAAgB,qCAAe,GAAW;IACxC,OAAO,IAAI,QAAQ,UAAU,2BAAK;AACpC;AAFA,0BAAA,iBAAA;;;AnBmWQ,OAAA,eAAA,2BAAA,eAAA;IAAA,YAAA;IAAA,KAAA;QAAA,OAAA;IAAW;AAAA;AAAE,OAAA,eAAA,2BAAA,eAAA;IAAA,YAAA;IAAA,KAAA;QAAA,OAAA;IAAW;AAAA;AAAE,OAAA,eAAA,2BAAA,kBAAA;IAAA,YAAA;IAAA,KAAA;QAAA,OAAA;IAAc;AAAA;;;;;A;A,I,wC,A,6B,0B,mB,C,O,S,S,C,E,C,E,C,E,E;I,I,O,W,K;I,O,e,G,I;Q,Y;Q,K;Y,O,C,C,E;Q;I;A,I,S,C,E,C,E,C,E,E;I,I,O,W,K;I,C,C,G,G,C,C,E;A,C;A,I,2C,A,6B,0B,sB,C,O,S,S,C,E,C;I,O,e,G,W;Q,Y;Q,O;I;A,I,S,C,E,C;I,C,C,U,G;A,C;A,I,qC,A,6B,0B,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,I,kC,A,6B,0B,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,O,e,2B,c;I,O;A;A,0B,gB,0B,O,K;;;AsBjYhD,MAAA,2BAAA,mCAAA;AAIA;;;;;;;;;CASG,GACH,SAAsB,2BACpB,WAAmB,EACnB,IAAe,EACf,OAAqB;I,O,gC,I,E,K,G,K,G;QAErB,MAAM,cAAc,yBAAG,iBAAiB;QACxC,IAAI,YAAY,WAAW,GACzB,MAAM,IAAI,MAAM,CAAA,gDAAA,CAAkD;QAEpE,8CAA8C;QAC9C,MAAM,WAAW,WAAW,CAAC,EAAE;QAC/B,OAAO,YAAY,MAAM,GAAG,OAAO,QAAQ,EAAE;QAC7C,MAAM,SAAwB,IAAI,yBAAG,WAAW,UAAU,MAAM;QAChE,OAAO,OAAO;IAChB;AAAC;AAdD,0BAAA,OAAA;AAgBA;;;;;;;;;CASG,GAEH,SAAsB,oCACpB,WAAmB,EACnB,IAAe,EACf,OAAqB;I,I,I;I,O,gC,I,E,K,G,K,G;QAErB,IAAI,SAAS;QACb,IAAI,SAAS;QAEb,2EAA2E;QAC3E,MAAM,gBAAgB,IAAI,oCAAc;QACxC,MAAM,gBAAgB,IAAI,oCAAc;QAExC,MAAM,yBAAsB,AAAA,CAAA,KAAG,YAAO,QAAP,YAAO,KAAA,IAAA,KAAA,IAAP,QAAS,SAAA,MAAS,QAAA,OAAA,KAAA,IAAA,KAAA,IAAA,GAAE;QACnD,MAAM,yBAAsB,AAAA,CAAA,KAAG,YAAO,QAAP,YAAO,KAAA,IAAA,KAAA,IAAP,QAAS,SAAA,MAAS,QAAA,OAAA,KAAA,IAAA,KAAA,IAAA,GAAE;QAEnD,MAAM,iBAAiB,CAAC;YACtB,UAAU,cAAc,MAAM;YAC9B,IAAI,wBACF,uBAAuB;QAE3B;QAEA,MAAM,iBAAiB,CAAC;YACtB,UAAU,cAAc,MAAM;YAC9B,IAAI,wBACF,uBAAuB;QAE3B;QAEA,MAAM,YAAS,OAAA,OAAA,OAAA,OAAA,CAAA,GACV,YAAO,QAAP,YAAO,KAAA,IAAA,KAAA,IAAP,QAAS,YAAS;YACrB,QAAQ;YACR,QAAQ;QAAc;QAGxB,MAAM,WAAW,MAAM,2BAAK,aAAa,MAAI,OAAA,OAAA,OAAA,OAAA,CAAA,GAAM,UAAO;uBAAE;QAAS;QAErE,gCAAgC;QAChC,UAAU,cAAc;QACxB,UAAU,cAAc;QAExB,OAAO;sBACL;oBACA;oBACA;QACD;I;AACF;AA9CD,0BAAA,gBAAA;;;;A;A,I,wC,A,6B,0B,mB,C,O,S,S,C,E,C,E,C,E,E;I,I,O,W,K;I,O,e,G,I;Q,Y;Q,K;Y,O,C,C,E;Q;I;A,I,S,C,E,C,E,C,E,E;I,I,O,W,K;I,C,C,G,G,C,C,E;A,C;A,I,2C,A,6B,0B,sB,C,O,S,S,C,E,C;I,O,e,G,W;Q,Y;Q,O;I;A,I,S,C,E,C;I,C,C,U,G;A,C;A,I,qC,A,6B,0B,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,I,kC,A,6B,0B,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,O,e,2B,c;I,O;A;A,0B,a,0B,Q,0B,S,0B,O,0B,K,0B,K,K;;;AE1CA,MAAA,6BAAA,mCAAA;;AACA,MAAA,+BAAA,mCAAA;AAsBA;;;;;;;CAOG,GACH,SAAsB,yBACpB,MAAc,EACd,IAAY,EACZ,UAAuB,CAAA,CAAE;I,O,gC,I,E,K,G,K,G;QAEzB,MAAM,SAAC,KAAK,aAAE,SAAS,uBAAE,mBAAmB,EAAC,GAAG,sCAAgB;QAEhE,MAAM,WAAW,AAAC,CAAA,MAAM,6BAAO,OAAO,KAAI,IAAK,MAAM,6BAAO,KAAK,QAAQ;QACzE,4CAA4C;QAC5C,IAAI,YAAY,SAAS,YAAY,CAAC,OACpC;QAGF,wDAAwD;QACxD,MAAM,UACJ,YAAY,SAAS,iBAAiB,sBAClC,2BAAK,KAAK,MAAM,2BAAK,SAAS,WAC9B;QAEN,IAAI,CAAE,CAAA,MAAM,6BAAO,OAAO,OAAM,GAC9B,MAAM,IAAI,MAAM,CAAA,2BAAA,EAA8B,OAAM,CAAE;QAExD,MAAM,aAAa,MAAM,6BAAO,KAAK;QAErC,IAAI,WAAW,eAAe;YAC5B,IAAI,CAAC,WACH,MAAM,IAAI,MACR,CAAA,gBAAA,EAAmB,OAAM,0DAAA,CAA4D;iBAGvF,MAAM,qCAAe,QAAQ,SAAS,GAAG;QAE5C,OAAM;YACL,IAAI,2BAAK,SAAS,QAAQ,aAAa,IACrC,oCAAoC;YACpC,MAAM,IAAI,MAAM,CAAA,CAAA,EAAI,QAAO,OAAA,EAAU,OAAM,mBAAA,CAAqB;YAGlE,MAAM,+BAAS,QAAQ,SAAS;QACjC;IACH;AAAC;AAxCD,0BAAA,KAAA;AA0CA;;;;;;CAMG,GACH,SAAsB,yBACpB,MAAc,EACd,IAAY,EACZ,UAAuB,CAAA,CAAE;I,O,gC,I,E,K,G,K,G;QAEzB,IAAI,MAAM,6BAAO,OAAO,OAAO;YAC7B,IAAI,aAAa;YACjB,IAAI,MAAM,6BAAO,YAAY,OAAO;gBAClC,0CAA0C;gBAC1C,OAAO,2BAAK,KAAK,MAAM,2BAAK,SAAS;gBACrC,aAAa,MAAM,6BAAO,OAAO;YAClC;YAED,IAAI,YAAY;gBACd,IAAI,QAAQ,SAAS,QAAQ,QAAQ,OACnC,MAAM,2BAAK;qBAEX,MAAM,IAAI,MAAM;YAEnB;QACF;QACD,MAAM,6BAAO,2BAAK,QAAQ;QAC1B,MAAM,6BAAO,OAAO,QAAQ;IAC9B;AAAC;AAvBD,0BAAA,KAAA;AAyBA;;;;CAIG,GACH,SAAsB,2BAAK,SAAiB;I,O,gC,I,E,K,G,K,G;QAC1C,IAAI,6BAAO,YAAY;YACrB,+BAA+B;YAC/B,sEAAsE;YACtE,IAAI,UAAU,KAAK,YACjB,MAAM,IAAI,MACR;QAGL;QACD,IAAI;YACF,+CAA+C;YAC/C,MAAM,6BAAO,GAAG,WAAW;gBACzB,OAAO;gBACP,YAAY;gBACZ,WAAW;gBACX,YAAY;YACb;QACF,EAAC,OAAO,KAAK;YACZ,MAAM,IAAI,MAAM,CAAA,8BAAA,EAAiC,IAAG,CAAE;QACvD;IACH;AAAC;AArBD,0BAAA,OAAA;AAuBA;;;;;;CAMG,GACH,SAAsB,6BAAO,MAAc;I,O,gC,I,E,K,G,K,G;QACzC,iBAAG,QAAQ;QACX,MAAM,6BAAO,MAAM,QAAQ;YAAC,WAAW;QAAI;IAC7C;AAAC;AAHD,0BAAA,SAAA;AAKA;;;;;;;CAOG,GACH,SAAsB,4BAAM,IAAY,EAAE,KAAe;I,O,gC,I,E,K,G,K,G;QACvD,IAAI,CAAC,MACH,MAAM,IAAI,MAAM;QAGlB,4BAA4B;QAC5B,IAAI,OAAO;YACT,MAAM,SAAiB,MAAM,4BAAM,MAAM;YAEzC,IAAI,CAAC,QAAQ;gBACX,IAAI,6BAAO,YACT,MAAM,IAAI,MACR,CAAA,kCAAA,EAAqC,KAAI,sMAAA,CAAwM;qBAGnP,MAAM,IAAI,MACR,CAAA,kCAAA,EAAqC,KAAI,8LAAA,CAAgM;YAG9O;YAED,OAAO;QACR;QAED,MAAM,UAAoB,MAAM,iCAAW;QAE3C,IAAI,WAAW,QAAQ,SAAS,GAC9B,OAAO,OAAO,CAAC,EAAE;QAGnB,OAAO;IACT;AAAC;AA/BD,0BAAA,QAAA;AAiCA;;;;CAIG,GACH,SAAsB,iCAAW,IAAY;I,O,gC,I,E,K,G,K,G;QAC3C,IAAI,CAAC,MACH,MAAM,IAAI,MAAM;QAGlB,sCAAsC;QACtC,MAAM,aAAuB,EAAE;QAC/B,IAAI,6BAAO,cAAc,QAAQ,GAAG,CAAC,UAAU,EAAE;YAC/C,KAAK,MAAM,aAAa,QAAQ,GAAG,CAAC,UAAU,CAAC,MAAM,2BAAK,WACxD,IAAI,WACF,WAAW,KAAK;QAGrB;QAED,+DAA+D;QAC/D,IAAI,6BAAO,SAAS,OAAO;YACzB,MAAM,WAAmB,MAAM,6BAAO,qBAAqB,MAAM;YAEjE,IAAI,UACF,OAAO;gBAAC;aAAS;YAGnB,OAAO,EAAE;QACV;QAED,uCAAuC;QACvC,IAAI,KAAK,SAAS,2BAAK,MACrB,OAAO,EAAE;QAGX,gCAAgC;QAChC,EAAE;QACF,iGAAiG;QACjG,+FAA+F;QAC/F,iGAAiG;QACjG,oBAAoB;QACpB,MAAM,cAAwB,EAAE;QAEhC,IAAI,QAAQ,IAAI,MAAM;YACpB,KAAK,MAAM,KAAK,QAAQ,IAAI,KAAK,MAAM,2BAAK,WAC1C,IAAI,GACF,YAAY,KAAK;QAGtB;QAED,mBAAmB;QACnB,MAAM,UAAoB,EAAE;QAE5B,KAAK,MAAM,aAAa,YAAa;YACnC,MAAM,WAAW,MAAM,6BAAO,qBAC5B,2BAAK,KAAK,WAAW,OACrB;YAEF,IAAI,UACF,QAAQ,KAAK;QAEhB;QAED,OAAO;IACT;AAAC;AA7DD,0BAAA,aAAA;AA+DA,SAAS,sCAAgB,OAAoB;IAC3C,MAAM,QAAQ,QAAQ,SAAS,OAAO,OAAO,QAAQ;IACrD,MAAM,YAAY,QAAQ,QAAQ;IAClC,MAAM,sBACJ,QAAQ,uBAAuB,OAC3B,OACA,QAAQ,QAAQ;IACtB,OAAO;eAAC;mBAAO;6BAAW;IAAmB;AAC/C;AAEA,SAAe,qCACb,SAAiB,EACjB,OAAe,EACf,YAAoB,EACpB,KAAc;I,O,gC,I,E,K,G,K,G;QAEd,gDAAgD;QAChD,IAAI,gBAAgB,KAAK;QACzB;QAEA,MAAM,6BAAO;QAEb,MAAM,QAAkB,MAAM,6BAAO,QAAQ;QAE7C,KAAK,MAAM,YAAY,MAAO;YAC5B,MAAM,UAAU,CAAA,EAAG,UAAS,CAAA,EAAI,SAAQ,CAAE;YAC1C,MAAM,WAAW,CAAA,EAAG,QAAO,CAAA,EAAI,SAAQ,CAAE;YACzC,MAAM,cAAc,MAAM,6BAAO,MAAM;YAEvC,IAAI,YAAY,eACd,UAAU;YACV,MAAM,qCAAe,SAAS,UAAU,cAAc;iBAEtD,MAAM,+BAAS,SAAS,UAAU;QAErC;QAED,kDAAkD;QAClD,MAAM,6BAAO,MAAM,SAAS,AAAC,CAAA,MAAM,6BAAO,KAAK,UAAS,EAAG;IAC7D;AAAC;AAED,qBAAqB;AACrB,SAAe,+BACb,OAAe,EACf,QAAgB,EAChB,KAAc;I,O,gC,I,E,K,G,K,G;QAEd,IAAI,AAAC,CAAA,MAAM,6BAAO,MAAM,QAAO,EAAG,kBAAkB;YAClD,oBAAoB;YACpB,IAAI;gBACF,MAAM,6BAAO,MAAM;gBACnB,MAAM,6BAAO,OAAO;YACrB,EAAC,OAAO,GAAG;gBACV,kCAAkC;gBAClC,IAAI,EAAE,SAAS,SAAS;oBACtB,MAAM,6BAAO,MAAM,UAAU;oBAC7B,MAAM,6BAAO,OAAO;gBACrB;YACD,iDAAiD;YAClD;YAED,oBAAoB;YACpB,MAAM,cAAsB,MAAM,6BAAO,SAAS;YAClD,MAAM,6BAAO,QACX,aACA,UACA,6BAAO,aAAa,aAAa;QAEpC,OAAM,IAAI,CAAE,CAAA,MAAM,6BAAO,OAAO,SAAQ,KAAM,OAC7C,MAAM,6BAAO,SAAS,SAAS;IAEnC;AAAC;;;;;;A;A,I,wC,A,6B,0B,mB,C,O,S,S,C,E,C,E,C,E,E;I,I,O,W,K;I,O,e,G,I;Q,Y;Q,K;Y,O,C,C,E;Q;I;A,I,S,C,E,C,E,C,E,E;I,I,O,W,K;I,C,C,G,G,C,C,E;A,C;A,I,2C,A,6B,0B,sB,C,O,S,S,C,E,C;I,O,e,G,W;Q,Y;Q,O;I;A,I,S,C,E,C;I,C,C,U,G;A,C;A,I,qC,A,6B,0B,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,I,kC,A,6B,0B,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,I,wC,A,6B,0B,mB,S,G;I,O,A,O,I,a,M;Q,W;I;A;A,O,e,2B,c;I,O;A;A,0B,mB,0B,oB,0B,mB,0B,sB,0B,kB,0B,O,0B,Y,0B,W,0B,a,0B,a,0B,a,0B,Y,0B,e,0B,Y,K;;AEtUD,MAAA,6BAAA,mCAAA;;AACA,MAAA,2BAAA,mCAAA;;AACA,MAAA,2BAAA,mCAAA;;AACA,MAAA,2BAAA,mCAAA;;AACA,MAAA,2BAAA,mCAAA;;AACA,MAAA,6BAAA,mCAAA;;AACA,MAAA,8BAAA,mCAAA;;AACA,MAAA,+BAAA,mCAAA;;AACA,MAAA,+BAAA,mCAAA;;AACA,MAAA,6BAAA,mCAAA;;;AAGA,MAAA,6BAAA,sCAAA;;A;A,I,kC,A,6B,0B,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,I,qC,A,6B,0B,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,O,e,K,K,I,M,C,E,G,G,C,E;I;I,M,C,U,G;I,O;A;A,O,e,2B,c;I,O;A;;AEXA,MAAA,2BAAA,mCAAA;AAIA;;;;;;;;;CASG,GACH,SAAsB,2BACpB,WAAmB,EACnB,IAAe,EACf,OAAqB;I,O,gC,I,E,K,G,K,G;QAErB,MAAM,cAAc,yBAAG,iBAAiB;QACxC,IAAI,YAAY,WAAW,GACzB,MAAM,IAAI,MAAM,CAAA,gDAAA,CAAkD;QAEpE,8CAA8C;QAC9C,MAAM,WAAW,WAAW,CAAC,EAAE;QAC/B,OAAO,YAAY,MAAM,GAAG,OAAO,QAAQ,EAAE;QAC7C,MAAM,SAAwB,IAAI,yBAAG,WAAW,UAAU,MAAM;QAChE,OAAO,OAAO;IAChB;AAAC;AAdD,0BAAA,OAAA;;;;A;A,I,wC,A,6B,0B,mB,C,O,S,S,C,E,C,E,C,E,E;I,I,O,W,K;I,O,e,G,I;Q,Y;Q,K;Y,O,C,C,E;Q;I;A,I,S,C,E,C,E,C,E,E;I,I,O,W,K;I,C,C,G,G,C,C,E;A,C;A,I,2C,A,6B,0B,sB,C,O,S,S,C,E,C;I,O,e,G,W;Q,Y;Q,O;I;A,I,S,C,E,C;I,C,C,U,G;A,C;A,I,qC,A,6B,0B,gB,S,G;I,I,O,I,Y,O;I,I,S,C;I,I,O,M;Q,I,I,K,I,I,M,a,O,e,K,K,I,sC,Q,K;I;I,yC,Q;I,O;A;A,I,kC,A,6B,0B,a,S,O,E,U,E,C,E,S;I,S,M,K;Q,O,iB,I,Q,I,E,S,O;Y,Q;Q;I;I,O,I,C,K,C,I,O,C,E,S,O,E,M;Q,S,U,K;Y,I;gB,K,U,K;Y,E,O,G;gB,O;Y;Q;Q,S,S,K;Y,I;gB,K,S,C,Q,C;Y,E,O,G;gB,O;Y;Q;Q,S,K,M;Y,O,O,Q,O,S,M,O,O,K,W;Q;Q,K,A,C,Y,U,M,S,c,E,C,E;I;A;A,O,e,2B,c;I,O;A;A,0B,c,K;;AEfA,MAAA,6BAAA,mCAAA;AAEA;;CAEG,GACH,MAAa;IAKX,YAAY,WAAmB,EAAE,UAAkB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","sources":["node_modules/@actions/http-client/lib/index.js","node_modules/@actions/http-client/src/index.ts","node_modules/@actions/http-client/lib/proxy.js","node_modules/@actions/http-client/src/proxy.ts","node_modules/tunnel/index.js","node_modules/tunnel/lib/tunnel.js","node_modules/@actions/exec/lib/toolrunner.js","node_modules/@actions/exec/src/toolrunner.ts","node_modules/@actions/exec/node_modules/@actions/io/lib/io.js","node_modules/@actions/exec/node_modules/@actions/io/src/io.ts","node_modules/@actions/exec/node_modules/@actions/io/lib/io-util.js","node_modules/@actions/exec/node_modules/@actions/io/src/io-util.ts","node_modules/@actions/io/lib/io-util.js","node_modules/@actions/io/src/io-util.ts","node_modules/@actions/tool-cache/node_modules/@actions/core/lib/core.js","node_modules/@actions/tool-cache/node_modules/@actions/core/src/core.ts","node_modules/@actions/tool-cache/node_modules/@actions/core/lib/command.js","node_modules/@actions/tool-cache/node_modules/@actions/core/src/command.ts","node_modules/@actions/tool-cache/node_modules/@actions/core/lib/utils.js","node_modules/@actions/tool-cache/node_modules/@actions/core/src/utils.ts","node_modules/@actions/tool-cache/node_modules/@actions/core/lib/file-command.js","node_modules/@actions/tool-cache/node_modules/@actions/core/src/file-command.ts","node_modules/@actions/tool-cache/node_modules/@actions/io/lib/io.js","node_modules/@actions/tool-cache/node_modules/@actions/io/src/io.ts","node_modules/@actions/tool-cache/node_modules/@actions/io/lib/io-util.js","node_modules/@actions/tool-cache/node_modules/@actions/io/src/io-util.ts","node_modules/@actions/tool-cache/lib/manifest.js","node_modules/@actions/tool-cache/src/manifest.ts","node_modules/@actions/tool-cache/node_modules/semver/semver.js","node_modules/uuid/v4.js","node_modules/uuid/lib/rng.js","node_modules/uuid/lib/bytesToUuid.js","node_modules/@actions/tool-cache/node_modules/@actions/exec/lib/toolrunner.js","node_modules/@actions/tool-cache/node_modules/@actions/exec/src/toolrunner.ts","node_modules/@actions/tool-cache/node_modules/@actions/exec/node_modules/@actions/io/lib/io.js","node_modules/@actions/tool-cache/node_modules/@actions/exec/node_modules/@actions/io/src/io.ts","node_modules/@actions/tool-cache/node_modules/@actions/exec/node_modules/@actions/io/lib/io-util.js","node_modules/@actions/tool-cache/node_modules/@actions/exec/node_modules/@actions/io/src/io-util.ts","main.ts","node_modules/@actions/core/lib/core.js","node_modules/@actions/core/src/core.ts","node_modules/@actions/core/lib/command.js","node_modules/@actions/core/src/command.ts","node_modules/@actions/core/lib/utils.js","node_modules/@actions/core/src/utils.ts","node_modules/@actions/core/lib/file-command.js","node_modules/@actions/core/src/file-command.ts","node_modules/@actions/core/node_modules/uuid/dist/esm-node/v4.js","node_modules/@actions/core/node_modules/uuid/dist/esm-node/rng.js","node_modules/@actions/core/node_modules/uuid/dist/esm-node/stringify.js","node_modules/@actions/core/node_modules/uuid/dist/esm-node/validate.js","node_modules/@actions/core/node_modules/uuid/dist/esm-node/regex.js","node_modules/@actions/core/lib/oidc-utils.js","node_modules/@actions/core/src/oidc-utils.ts","node_modules/@actions/http-client/lib/auth.js","node_modules/@actions/http-client/src/auth.ts","node_modules/@actions/core/lib/summary.js","node_modules/@actions/core/src/summary.ts","node_modules/@actions/core/lib/path-utils.js","node_modules/@actions/core/src/path-utils.ts","index.ts","node_modules/@actions/exec/lib/exec.js","node_modules/@actions/exec/src/exec.ts","node_modules/@actions/io/lib/io.js","node_modules/@actions/io/src/io.ts","node_modules/@actions/tool-cache/lib/tool-cache.js","node_modules/@actions/tool-cache/src/tool-cache.ts","node_modules/@actions/tool-cache/node_modules/@actions/exec/lib/exec.js","node_modules/@actions/tool-cache/node_modules/@actions/exec/src/exec.ts","node_modules/@actions/tool-cache/lib/retry-helper.js","node_modules/@actions/tool-cache/src/retry-helper.ts","assets.json"],"sourcesContent":[null,null,null,null,"module.exports = require('./lib/tunnel');\n","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n debug = function () {\n var args = Array.prototype.slice.call(arguments, 0)\n args.unshift('SEMVER')\n console.log.apply(console, args)\n }\n} else {\n debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar src = exports.src = []\nvar t = exports.tokens = {}\nvar R = 0\n\nfunction tok (n) {\n t[n] = R++\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ntok('NUMERICIDENTIFIER')\nsrc[t.NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\ntok('NUMERICIDENTIFIERLOOSE')\nsrc[t.NUMERICIDENTIFIERLOOSE] = '[0-9]+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ntok('NONNUMERICIDENTIFIER')\nsrc[t.NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ntok('MAINVERSION')\nsrc[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')'\n\ntok('MAINVERSIONLOOSE')\nsrc[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ntok('PRERELEASEIDENTIFIER')\nsrc[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\ntok('PRERELEASEIDENTIFIERLOOSE')\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ntok('PRERELEASE')\nsrc[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'\n\ntok('PRERELEASELOOSE')\nsrc[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ntok('BUILDIDENTIFIER')\nsrc[t.BUILDIDENTIFIER] = '[0-9A-Za-z-]+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ntok('BUILD')\nsrc[t.BUILD] = '(?:\\\\+(' + src[t.BUILDIDENTIFIER] +\n '(?:\\\\.' + src[t.BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ntok('FULL')\ntok('FULLPLAIN')\nsrc[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +\n src[t.PRERELEASE] + '?' +\n src[t.BUILD] + '?'\n\nsrc[t.FULL] = '^' + src[t.FULLPLAIN] + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok('LOOSEPLAIN')\nsrc[t.LOOSEPLAIN] = '[v=\\\\s]*' + src[t.MAINVERSIONLOOSE] +\n src[t.PRERELEASELOOSE] + '?' +\n src[t.BUILD] + '?'\n\ntok('LOOSE')\nsrc[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'\n\ntok('GTLT')\nsrc[t.GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok('XRANGEIDENTIFIERLOOSE')\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\ntok('XRANGEIDENTIFIER')\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\ntok('XRANGEPLAIN')\nsrc[t.XRANGEPLAIN] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:' + src[t.PRERELEASE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGEPLAINLOOSE')\nsrc[t.XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:' + src[t.PRERELEASELOOSE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGE')\nsrc[t.XRANGE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAIN] + '$'\ntok('XRANGELOOSE')\nsrc[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok('COERCE')\nsrc[t.COERCE] = '(^|[^\\\\d])' +\n '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:$|[^\\\\d])'\ntok('COERCERTL')\nre[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok('LONETILDE')\nsrc[t.LONETILDE] = '(?:~>?)'\n\ntok('TILDETRIM')\nsrc[t.TILDETRIM] = '(\\\\s*)' + src[t.LONETILDE] + '\\\\s+'\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')\nvar tildeTrimReplace = '$1~'\n\ntok('TILDE')\nsrc[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'\ntok('TILDELOOSE')\nsrc[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok('LONECARET')\nsrc[t.LONECARET] = '(?:\\\\^)'\n\ntok('CARETTRIM')\nsrc[t.CARETTRIM] = '(\\\\s*)' + src[t.LONECARET] + '\\\\s+'\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')\nvar caretTrimReplace = '$1^'\n\ntok('CARET')\nsrc[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'\ntok('CARETLOOSE')\nsrc[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok('COMPARATORLOOSE')\nsrc[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'\ntok('COMPARATOR')\nsrc[t.COMPARATOR] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.FULLPLAIN] + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok('COMPARATORTRIM')\nsrc[t.COMPARATORTRIM] = '(\\\\s*)' + src[t.GTLT] +\n '\\\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok('HYPHENRANGE')\nsrc[t.HYPHENRANGE] = '^\\\\s*(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s*$'\n\ntok('HYPHENRANGELOOSE')\nsrc[t.HYPHENRANGELOOSE] = '^\\\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\ntok('STAR')\nsrc[t.STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n debug(i, src[i])\n if (!re[i]) {\n re[i] = new RegExp(src[i])\n }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n var r = options.loose ? re[t.LOOSE] : re[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n var v = parse(version, options)\n return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === options.loose) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n }\n\n if (!(this instanceof SemVer)) {\n return new SemVer(version, options)\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n\n var m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map(function (id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n}\n\nSemVer.prototype.format = function () {\n this.version = this.major + '.' + this.minor + '.' + this.patch\n if (this.prerelease.length) {\n this.version += '-' + this.prerelease.join('.')\n }\n return this.version\n}\n\nSemVer.prototype.toString = function () {\n return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n var i = 0\n do {\n var a = this.prerelease[i]\n var b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\nSemVer.prototype.compareBuild = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n var i = 0\n do {\n var a = this.build[i]\n var b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n var i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error('invalid increment argument: ' + release)\n }\n this.format()\n this.raw = this.version\n return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n if (typeof (loose) === 'string') {\n identifier = loose\n loose = undefined\n }\n\n try {\n return new SemVer(version, loose).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n if (eq(version1, version2)) {\n return null\n } else {\n var v1 = parse(version1)\n var v2 = parse(version2)\n var prefix = ''\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = 'pre'\n var defaultResult = 'prerelease'\n }\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n var anum = numeric.test(a)\n var bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n return compare(a, b, true)\n}\n\nexports.compareBuild = compareBuild\nfunction compareBuild (a, b, loose) {\n var versionA = new SemVer(a, loose)\n var versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(a, b, loose)\n })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(b, a, loose)\n })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError('Invalid operator: ' + op)\n }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n if (!(this instanceof Comparator)) {\n return new Comparator(comp, options)\n }\n\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n var r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n var m = comp.match(r)\n\n if (!m) {\n throw new TypeError('Invalid comparator: ' + comp)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n}\n\nComparator.prototype.toString = function () {\n return this.value\n}\n\nComparator.prototype.test = function (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n var rangeTmp\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n rangeTmp = new Range(comp.value, options)\n return satisfies(this.value, rangeTmp, options)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n rangeTmp = new Range(this.value, options)\n return satisfies(comp.semver, rangeTmp, options)\n }\n\n var sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n var sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n var sameSemVer = this.semver.version === comp.semver.version\n var differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n var oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n ((this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<'))\n var oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n ((this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>'))\n\n return sameDirectionIncreasing || sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n return new Range(range.value, options)\n }\n\n if (!(this instanceof Range)) {\n return new Range(range, options)\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First, split based on boolean or ||\n this.raw = range\n this.set = range.split(/\\s*\\|\\|\\s*/).map(function (range) {\n return this.parseRange(range.trim())\n }, this).filter(function (c) {\n // throw out any that are not relevant for whatever reason\n return c.length\n })\n\n if (!this.set.length) {\n throw new TypeError('Invalid SemVer Range: ' + range)\n }\n\n this.format()\n}\n\nRange.prototype.format = function () {\n this.range = this.set.map(function (comps) {\n return comps.join(' ').trim()\n }).join('||').trim()\n return this.range\n}\n\nRange.prototype.toString = function () {\n return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n var loose = this.options.loose\n range = range.trim()\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace)\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, re[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n var compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n var set = range.split(' ').map(function (comp) {\n return parseComparator(comp, this.options)\n }, this).join(' ').split(/\\s+/)\n if (this.options.loose) {\n // in loose mode, throw out any that are not valid comparators\n set = set.filter(function (comp) {\n return !!comp.match(compRe)\n })\n }\n set = set.map(function (comp) {\n return new Comparator(comp, this.options)\n }, this)\n\n return set\n}\n\nRange.prototype.intersects = function (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some(function (thisComparators) {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some(function (rangeComparators) {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every(function (thisComparator) {\n return rangeComparators.every(function (rangeComparator) {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n}\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable (comparators, options) {\n var result = true\n var remainingComparators = comparators.slice()\n var testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every(function (otherComparator) {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n return new Range(range, options).set.map(function (comp) {\n return comp.map(function (c) {\n return c.value\n }).join(' ').trim().split(' ')\n })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nfunction isX (id) {\n return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceTilde(comp, options)\n }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n var r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('tilde', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceCaret(comp, options)\n }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n debug('caret', comp, options)\n var r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('caret', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n if (M === '0') {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else {\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + (+M + 1) + '.0.0'\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0'\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nfunction replaceXRanges (comp, options) {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map(function (comp) {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n comp = comp.trim()\n var r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n var xM = isX(M)\n var xm = xM || isX(m)\n var xp = xm || isX(p)\n var anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n ret = gtlt + M + '.' + m + '.' + p + pr\n } else if (xm) {\n ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0' + pr +\n ' <' + M + '.' + (+m + 1) + '.0' + pr\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[t.STAR], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = '>=' + fM + '.0.0'\n } else if (isX(fp)) {\n from = '>=' + fM + '.' + fm + '.0'\n } else {\n from = '>=' + from\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = '<' + (+tM + 1) + '.0.0'\n } else if (isX(tp)) {\n to = '<' + tM + '.' + (+tm + 1) + '.0'\n } else if (tpr) {\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n } else {\n to = '<=' + to\n }\n\n return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n}\n\nfunction testSet (set, version, options) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n var max = null\n var maxSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n var min = null\n var minSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n range = new Range(range, loose)\n\n var minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n comparators.forEach(function (comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error('Unexpected operation: ' + comparator.operator)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n var gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n var high = null\n var low = null\n\n comparators.forEach(function (comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n var parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version, options) {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n var match = null\n if (!options.rtl) {\n match = version.match(re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next\n while ((next = re[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n re[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(match[2] +\n '.' + (match[3] || '0') +\n '.' + (match[4] || '0'), options)\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","// Unique ID creation requires a high quality random # generator. In node.js\n// this is pretty straight-forward - we use the crypto API.\n\nvar crypto = require('crypto');\n\nmodule.exports = function nodeRNG() {\n return crypto.randomBytes(16);\n};\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n",null,null,null,null,null,null,"import * as core from \"@actions/core\";\n\nimport { getOptions, run } from \"./index\";\n\nasync function main() {\n try {\n await run(getOptions());\n } catch (error: any) {\n console.error(error.stack);\n core.setFailed(error.message);\n }\n}\n\nconsole.log(\"hello\");\nmain();\n",null,null,null,null,null,null,null,null,"import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","import crypto from 'crypto';\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\nexport default function rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n crypto.randomFillSync(rnds8Pool);\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;",null,null,null,null,null,null,null,null,"import * as core from \"@actions/core\";\nimport * as exec from \"@actions/exec\";\nimport * as io from \"@actions/io\";\nimport * as tc from \"@actions/tool-cache\";\nimport * as path from \"path\";\n\nimport * as ASSETS_JSON from \"./assets.json\";\nconst ASSETS = ASSETS_JSON as Record>>;\n\nexport interface Options {\n version: string;\n arch?: string;\n forceUrl?: string;\n directory: string;\n cached: boolean;\n mirrorUrl?: string;\n auth?: string;\n env: boolean;\n}\n\nexport function getOptions(): Options {\n return {\n version: core.getInput(\"version\"),\n arch: core.getInput(\"arch\"),\n forceUrl: core.getInput(\"force-url\"),\n directory: core.getInput(\"directory\"),\n cached: (core.getInput(\"cached\") ?? \"\").toLowerCase() === \"true\",\n mirrorUrl: core.getInput(\"mirror-url\"),\n auth: core.getInput(\"auth\"),\n env: (core.getInput(\"env\") ?? \"\").toLowerCase() === \"true\",\n };\n}\n\n//================================================\n// Version\n//================================================\n\n/**\n * Gets the specific LLVM versions supported by this action compatible with the\n * supplied (specific or minimum) LLVM version in descending order of release\n * (e.g., `5.0.2`, `5.0.1`, and `5.0.0` for `5`).\n */\nfunction getSpecificVersions(specificVersions: string[], version: string): string[] {\n return Array.from(specificVersions)\n .filter(v => /^\\d+\\.\\d+\\.\\d+$/.test(v) && v.startsWith(`${version}.`))\n .sort()\n .reverse();\n}\n\n//================================================\n// Asset\n//================================================\n\nexport interface Asset {\n readonly specificVersion: string;\n readonly url: string;\n}\n\nexport function getAsset(os: string, options: Options): Asset {\n if (options.forceUrl) {\n console.log(\"Using asset specified by `force-url` option.\");\n return { specificVersion: options.version, url: options.forceUrl };\n }\n\n const arch = (options.arch ?? process.arch) || \"x64\";\n console.log(`Checking known assets (os=${os}, arch=${arch}, version=${options.version})...`);\n\n const assets = ASSETS[os]?.[arch];\n if (!assets) {\n throw new Error(`Unsupported platform (os=${os}, arch=${arch})!`);\n }\n\n const specificVersions = getSpecificVersions(Object.keys(assets), options.version);\n if (!specificVersions.length) {\n throw new Error(`Unsupported version for platform (os=${os}, arch=${arch}, version=${options.version})!`);\n }\n\n const specificVersion = specificVersions[0];\n const path = ASSETS[os][arch][specificVersion];\n\n let url: string;\n if (options.mirrorUrl) {\n url = `${options.mirrorUrl}${path}`;\n } else {\n url = `https://github.com/llvm/llvm-project/releases/download/llvmorg-${specificVersion}${path}`;\n }\n\n return { specificVersion, url };\n}\n\n//================================================\n// Action\n//================================================\n\nconst DEFAULT_NIX_DIRECTORY = \"./llvm\";\nconst DEFAULT_WIN32_DIRECTORY = \"C:/Program Files/LLVM\";\n\nasync function install(options: Options): Promise {\n const os = process.platform;\n const { specificVersion, url } = getAsset(os, options);\n core.setOutput(\"version\", specificVersion);\n\n console.log(`Installing LLVM and Clang ${options.version} (${specificVersion})...`);\n console.log(`Downloading and extracting '${url}'...`);\n const archive = await tc.downloadTool(url, \"\", options.auth);\n\n let exit;\n if (os === \"win32\") {\n exit = await exec.exec(\"7z\", [\"x\", archive, `-o${options.directory}`, \"-y\"]);\n } else {\n await io.mkdirP(options.directory);\n exit = await exec.exec(\"tar\", [\"xf\", archive, \"-C\", options.directory, \"--strip-components=1\"]);\n }\n\n if (exit !== 0) {\n throw new Error(\"Could not extract LLVM and Clang binaries.\");\n }\n\n core.info(`Installed LLVM and Clang ${options.version} (${specificVersion})!`);\n core.info(`Install location: ${options.directory}`);\n}\n\nexport async function run(options: Options): Promise {\n if (!options.directory) {\n options.directory = process.platform === \"win32\" ? DEFAULT_WIN32_DIRECTORY : DEFAULT_NIX_DIRECTORY;\n }\n\n options.directory = path.resolve(options.directory);\n\n if (options.cached) {\n console.log(`Using cached LLVM and Clang ${options.version}...`);\n } else {\n await install(options);\n }\n\n const bin = path.join(options.directory, \"bin\");\n const lib = path.join(options.directory, \"lib\");\n\n core.addPath(bin);\n\n const ld = process.env.LD_LIBRARY_PATH ?? \"\";\n const dyld = process.env.DYLD_LIBRARY_PATH ?? \"\";\n\n core.exportVariable(\"LLVM_PATH\", options.directory);\n core.exportVariable(\"LD_LIBRARY_PATH\", `${lib}${path.delimiter}${ld}`);\n core.exportVariable(\"DYLD_LIBRARY_PATH\", `${lib}${path.delimiter}${dyld}`);\n\n if (options.env) {\n core.exportVariable(\"CC\", path.join(options.directory, \"bin\", \"clang\"));\n core.exportVariable(\"CXX\", path.join(options.directory, \"bin\", \"clang++\"));\n }\n}\n",null,null,null,null,null,null,null,null,null,null,"{\n \"linux\": {\n \"arm64\": {\n \"18.1.2\": \"/clang%2Bllvm-18.1.2-aarch64-linux-gnu.tar.xz\",\n \"18.1.1\": \"/clang%2Bllvm-18.1.1-aarch64-linux-gnu.tar.xz\",\n \"18.1.0\": \"/clang%2Bllvm-18.1.0-aarch64-linux-gnu.tar.xz\",\n \"17.0.6\": \"/clang%2Bllvm-17.0.6-aarch64-linux-gnu.tar.xz\",\n \"17.0.5\": \"/clang%2Bllvm-17.0.5-aarch64-linux-gnu.tar.xz\",\n \"17.0.4\": \"/clang%2Bllvm-17.0.4-aarch64-linux-gnu.tar.xz\",\n \"17.0.3\": \"/clang%2Bllvm-17.0.3-aarch64-linux-gnu.tar.xz\",\n \"17.0.2\": \"/clang%2Bllvm-17.0.2-aarch64-linux-gnu.tar.xz\",\n \"17.0.1\": \"/clang%2Bllvm-17.0.1-aarch64-linux-gnu.tar.xz\",\n \"16.0.6\": \"/clang%2Bllvm-16.0.6-aarch64-linux-gnu.tar.xz\",\n \"16.0.5\": \"/clang%2Bllvm-16.0.5-aarch64-linux-gnu.tar.xz\",\n \"16.0.4\": \"/clang%2Bllvm-16.0.4-aarch64-linux-gnu.tar.xz\",\n \"16.0.3\": \"/clang%2Bllvm-16.0.3-aarch64-linux-gnu.tar.xz\",\n \"16.0.2\": \"/clang%2Bllvm-16.0.2-aarch64-linux-gnu.tar.xz\",\n \"16.0.1\": \"/clang%2Bllvm-16.0.1-aarch64-linux-gnu.tar.xz\",\n \"16.0.0\": \"/clang%2Bllvm-16.0.0-aarch64-linux-gnu.tar.xz\",\n \"15.0.6\": \"/clang%2Bllvm-15.0.6-aarch64-linux-gnu.tar.xz\",\n \"15.0.3\": \"/clang%2Bllvm-15.0.3-aarch64-linux-gnu.tar.xz\",\n \"15.0.2\": \"/clang%2Bllvm-15.0.2-aarch64-linux-gnu.tar.xz\",\n \"15.0.1\": \"/clang%2Bllvm-15.0.1-aarch64-linux-gnu.tar.xz\",\n \"15.0.0\": \"/clang%2Bllvm-15.0.0-aarch64-linux-gnu.tar.xz\",\n \"14.0.6\": \"/clang%2Bllvm-14.0.6-aarch64-linux-gnu.tar.xz\",\n \"14.0.5\": \"/clang%2Bllvm-14.0.5-aarch64-linux-gnu.tar.xz\",\n \"14.0.4\": \"/clang%2Bllvm-14.0.4-aarch64-linux-gnu.tar.xz\",\n \"14.0.3\": \"/clang%2Bllvm-14.0.3-aarch64-linux-gnu.tar.xz\",\n \"14.0.2\": \"/clang%2Bllvm-14.0.2-aarch64-linux-gnu.tar.xz\",\n \"14.0.1\": \"/clang%2Bllvm-14.0.1-aarch64-linux-gnu.tar.xz\",\n \"14.0.0\": \"/clang%2Bllvm-14.0.0-aarch64-linux-gnu.tar.xz\",\n \"13.0.1\": \"/clang%2Bllvm-13.0.1-aarch64-linux-gnu.tar.xz\",\n \"13.0.0\": \"/clang%2Bllvm-13.0.0-aarch64-linux-gnu.tar.xz\",\n \"12.0.1\": \"/clang%2Bllvm-12.0.1-aarch64-linux-gnu.tar.xz\",\n \"12.0.0\": \"/clang%2Bllvm-12.0.0-aarch64-linux-gnu.tar.xz\",\n \"11.1.0\": \"/clang%2Bllvm-11.1.0-aarch64-linux-gnu.tar.xz\",\n \"11.0.1\": \"/clang%2Bllvm-11.0.1-aarch64-linux-gnu.tar.xz\",\n \"11.0.0\": \"/clang%2Bllvm-11.0.0-aarch64-linux-gnu.tar.xz\",\n \"10.0.1\": \"/clang%2Bllvm-10.0.1-aarch64-linux-gnu.tar.xz\",\n \"10.0.0\": \"/clang%2Bllvm-10.0.0-aarch64-linux-gnu.tar.xz\",\n \"9.0.1\": \"/clang%2Bllvm-9.0.1-aarch64-linux-gnu.tar.xz\",\n \"8.0.1\": \"/clang%2Bllvm-8.0.1-aarch64-linux-gnu.tar.xz\",\n \"7.1.0\": \"/clang%2Bllvm-7.1.0-aarch64-linux-gnu.tar.xz\"\n },\n \"x64\": {\n \"17.0.6\": \"/clang%2Bllvm-17.0.6-x86_64-linux-gnu-ubuntu-22.04.tar.xz\",\n \"17.0.5\": \"/clang%2Bllvm-17.0.5-x86_64-linux-gnu-ubuntu-22.04.tar.xz\",\n \"17.0.4\": \"/clang%2Bllvm-17.0.4-x86_64-linux-gnu-ubuntu-22.04.tar.xz\",\n \"17.0.2\": \"/clang%2Bllvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xz\",\n \"16.0.4\": \"/clang%2Bllvm-16.0.4-x86_64-linux-gnu-ubuntu-22.04.tar.xz\",\n \"16.0.3\": \"/clang%2Bllvm-16.0.3-x86_64-linux-gnu-ubuntu-22.04.tar.xz\",\n \"16.0.2\": \"/clang%2Bllvm-16.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xz\",\n \"16.0.0\": \"/clang%2Bllvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz\",\n \"15.0.6\": \"/clang%2Bllvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04.tar.xz\",\n \"15.0.5\": \"/clang%2Bllvm-15.0.5-x86_64-linux-gnu-ubuntu-18.04.tar.xz\",\n \"14.0.0\": \"/clang%2Bllvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz\",\n \"13.0.1\": \"/clang%2Bllvm-13.0.1-x86_64-linux-gnu-ubuntu-18.04.tar.xz\",\n \"13.0.0\": \"/clang%2Bllvm-13.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz\",\n \"12.0.1\": \"/clang%2Bllvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz\",\n \"12.0.0\": \"/clang%2Bllvm-12.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz\",\n \"11.1.0\": \"/clang%2Bllvm-11.1.0-x86_64-linux-gnu-ubuntu-20.10.tar.xz\",\n \"11.0.1\": \"/clang%2Bllvm-11.0.1-x86_64-linux-gnu-ubuntu-20.10.tar.xz\",\n \"11.0.0\": \"/clang%2Bllvm-11.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz\",\n \"10.0.1\": \"/clang%2Bllvm-10.0.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz\",\n \"10.0.0\": \"/clang%2Bllvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz\",\n \"9.0.1\": \"/clang%2Bllvm-9.0.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz\",\n \"8.0.1\": \"/clang%2Bllvm-8.0.1-x86_64-linux-gnu-ubuntu-14.04.tar.xz\",\n \"7.1.0\": \"/clang%2Bllvm-7.1.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz\"\n }\n },\n \"win32\": {\n \"x64\": {\n \"18.1.2\": \"/LLVM-18.1.2-win64.exe\",\n \"18.1.1\": \"/LLVM-18.1.1-win64.exe\",\n \"18.1.0\": \"/LLVM-18.1.0-win64.exe\",\n \"17.0.6\": \"/LLVM-17.0.6-win64.exe\",\n \"17.0.5\": \"/LLVM-17.0.5-win64.exe\",\n \"17.0.4\": \"/LLVM-17.0.4-win64.exe\",\n \"17.0.3\": \"/LLVM-17.0.3-win64.exe\",\n \"17.0.2\": \"/LLVM-17.0.2-win64.exe\",\n \"17.0.1\": \"/LLVM-17.0.1-win64.exe\",\n \"16.0.6\": \"/LLVM-16.0.6-win64.exe\",\n \"16.0.5\": \"/LLVM-16.0.5-win64.exe\",\n \"16.0.4\": \"/LLVM-16.0.4-win64.exe\",\n \"16.0.3\": \"/LLVM-16.0.3-win64.exe\",\n \"16.0.2\": \"/LLVM-16.0.2-win64.exe\",\n \"16.0.1\": \"/LLVM-16.0.1-win64.exe\",\n \"16.0.0\": \"/LLVM-16.0.0-win64.exe\",\n \"15.0.7\": \"/LLVM-15.0.7-win64.exe\",\n \"15.0.6\": \"/LLVM-15.0.6-win64.exe\",\n \"15.0.5\": \"/LLVM-15.0.5-win64.exe\",\n \"15.0.4\": \"/LLVM-15.0.4-win64.exe\",\n \"15.0.3\": \"/LLVM-15.0.3-win64.exe\",\n \"15.0.2\": \"/LLVM-15.0.2-win64.exe\",\n \"15.0.1\": \"/LLVM-15.0.1-win64.exe\",\n \"15.0.0\": \"/LLVM-15.0.0-win64.exe\",\n \"14.0.6\": \"/LLVM-14.0.6-win64.exe\",\n \"14.0.5\": \"/LLVM-14.0.5-win64.exe\",\n \"14.0.4\": \"/LLVM-14.0.4-win64.exe\",\n \"14.0.3\": \"/LLVM-14.0.3-win64.exe\",\n \"14.0.2\": \"/LLVM-14.0.2-win64.exe\",\n \"14.0.1\": \"/LLVM-14.0.1-win64.exe\",\n \"14.0.0\": \"/LLVM-14.0.0-win64.exe\",\n \"13.0.1\": \"/LLVM-13.0.1-win64.exe\",\n \"13.0.0\": \"/LLVM-13.0.0-win64.exe\",\n \"12.0.1\": \"/LLVM-12.0.1-win64.exe\",\n \"12.0.0\": \"/LLVM-12.0.0-win64.exe\",\n \"11.1.0\": \"/LLVM-11.1.0-win64.exe\",\n \"11.0.1\": \"/LLVM-11.0.1-win64.exe\",\n \"11.0.0\": \"/LLVM-11.0.0-win64.exe\",\n \"10.0.0\": \"/LLVM-10.0.0-win64.exe\",\n \"9.0.1\": \"/LLVM-9.0.1-win64.exe\",\n \"8.0.1\": \"/LLVM-8.0.1-win64.exe\",\n \"7.1.0\": \"/LLVM-7.1.0-win64.exe\"\n },\n \"arm64\": {\n \"18.1.2\": \"/LLVM-18.1.2-woa64.exe\",\n \"18.1.1\": \"/LLVM-18.1.1-woa64.exe\",\n \"18.1.0\": \"/LLVM-18.1.0-woa64.exe\",\n \"17.0.6\": \"/LLVM-17.0.6-woa64.exe\",\n \"17.0.5\": \"/LLVM-17.0.5-woa64.exe\",\n \"17.0.4\": \"/LLVM-17.0.4-woa64.exe\",\n \"17.0.3\": \"/LLVM-17.0.3-woa64.exe\",\n \"17.0.2\": \"/LLVM-17.0.2-woa64.exe\",\n \"17.0.1\": \"/LLVM-17.0.1-woa64.exe\",\n \"16.0.6\": \"/LLVM-16.0.6-woa64.exe\",\n \"16.0.5\": \"/LLVM-16.0.5-woa64.exe\",\n \"16.0.4\": \"/LLVM-16.0.4-woa64.exe\",\n \"16.0.3\": \"/LLVM-16.0.3-woa64.exe\",\n \"16.0.2\": \"/LLVM-16.0.2-woa64.exe\",\n \"16.0.1\": \"/LLVM-16.0.1-woa64.exe\",\n \"16.0.0\": \"/LLVM-16.0.0-woa64.exe\",\n \"15.0.6\": \"/LLVM-15.0.6-woa64.exe\",\n \"15.0.3\": \"/LLVM-15.0.3-woa64.exe\",\n \"15.0.2\": \"/LLVM-15.0.2-woa64.exe\",\n \"15.0.1\": \"/LLVM-15.0.1-woa64.exe\",\n \"15.0.0\": \"/LLVM-15.0.0-woa64.exe\",\n \"12.0.0\": \"/LLVM-12.0.0-woa64.exe\"\n }\n },\n \"darwin\": {\n \"arm64\": {\n \"17.0.6\": \"/clang%2Bllvm-17.0.6-arm64-apple-darwin22.0.tar.xz\",\n \"17.0.5\": \"/clang%2Bllvm-17.0.5-arm64-apple-darwin22.0.tar.xz\",\n \"17.0.4\": \"/clang%2Bllvm-17.0.4-arm64-apple-darwin22.0.tar.xz\",\n \"17.0.3\": \"/clang%2Bllvm-17.0.3-arm64-apple-darwin22.0.tar.xz\",\n \"17.0.2\": \"/clang%2Bllvm-17.0.2-arm64-apple-darwin22.0.tar.xz\",\n \"17.0.1\": \"/clang%2Bllvm-17.0.1-arm64-apple-darwin22.0.tar.xz\",\n \"16.0.5\": \"/clang%2Bllvm-16.0.5-arm64-apple-darwin22.0.tar.xz\",\n \"16.0.4\": \"/clang%2Bllvm-16.0.4-arm64-apple-darwin22.0.tar.xz\",\n \"16.0.3\": \"/clang%2Bllvm-16.0.3-arm64-apple-darwin22.0.tar.xz\",\n \"16.0.2\": \"/clang%2Bllvm-16.0.2-arm64-apple-darwin22.0.tar.xz\",\n \"16.0.1\": \"/clang%2Bllvm-16.0.1-arm64-apple-darwin22.0.tar.xz\",\n \"16.0.0\": \"/clang%2Bllvm-16.0.0-arm64-apple-darwin22.0.tar.xz\",\n \"15.0.7\": \"/clang%2Bllvm-15.0.7-arm64-apple-darwin22.0.tar.xz\",\n \"15.0.6\": \"/clang%2Bllvm-15.0.6-arm64-apple-darwin21.0.tar.xz\",\n \"15.0.5\": \"/clang%2Bllvm-15.0.5-arm64-apple-darwin21.0.tar.xz\",\n \"15.0.4\": \"/clang%2Bllvm-15.0.4-arm64-apple-darwin21.0.tar.xz\",\n \"15.0.3\": \"/clang%2Bllvm-15.0.3-arm64-apple-darwin21.0.tar.xz\",\n \"15.0.2\": \"/clang%2Bllvm-15.0.2-arm64-apple-darwin21.0.tar.xz\",\n \"15.0.1\": \"/clang%2Bllvm-15.0.1-arm64-apple-darwin21.0.tar.xz\",\n \"15.0.0\": \"/clang%2Bllvm-15.0.0-arm64-apple-darwin21.0.tar.xz\",\n \"14.0.6\": \"/clang%2Bllvm-14.0.6-arm64-apple-darwin22.3.0.tar.xz\"\n },\n \"x64\": {\n \"15.0.7\": \"/clang%2Bllvm-15.0.7-x86_64-apple-darwin21.0.tar.xz\",\n \"15.0.4\": \"/clang%2Bllvm-15.0.4-x86_64-apple-darwin.tar.xz\",\n \"15.0.3\": \"/clang%2Bllvm-15.0.3-x86_64-apple-darwin.tar.xz\",\n \"15.0.2\": \"/clang%2Bllvm-15.0.2-x86_64-apple-darwin.tar.xz\",\n \"15.0.1\": \"/clang%2Bllvm-15.0.1-x86_64-apple-darwin.tar.xz\",\n \"15.0.0\": \"/clang%2Bllvm-15.0.0-x86_64-apple-darwin.tar.xz\",\n \"14.0.6\": \"/clang%2Bllvm-14.0.6-x86_64-apple-darwin.tar.xz\",\n \"14.0.5\": \"/clang%2Bllvm-14.0.5-x86_64-apple-darwin.tar.xz\",\n \"14.0.4\": \"/clang%2Bllvm-14.0.4-x86_64-apple-darwin.tar.xz\",\n \"14.0.3\": \"/clang%2Bllvm-14.0.3-x86_64-apple-darwin.tar.xz\",\n \"14.0.2\": \"/clang%2Bllvm-14.0.2-x86_64-apple-darwin.tar.xz\",\n \"14.0.1\": \"/clang%2Bllvm-14.0.1-x86_64-apple-darwin.tar.xz\",\n \"14.0.0\": \"/clang%2Bllvm-14.0.0-x86_64-apple-darwin.tar.xz\",\n \"13.0.1\": \"/clang%2Bllvm-13.0.1-x86_64-apple-darwin.tar.xz\",\n \"13.0.0\": \"/clang%2Bllvm-13.0.0-x86_64-apple-darwin.tar.xz\",\n \"12.0.0\": \"/clang%2Bllvm-12.0.0-x86_64-apple-darwin.tar.xz\",\n \"11.0.0\": \"/clang%2Bllvm-11.0.0-x86_64-apple-darwin.tar.xz\",\n \"10.0.1\": \"/clang%2Bllvm-10.0.1-x86_64-apple-darwin.tar.xz\",\n \"10.0.0\": \"/clang%2Bllvm-10.0.0-x86_64-apple-darwin.tar.xz\",\n \"9.0.1\": \"/clang%2Bllvm-9.0.1-x86_64-apple-darwin.tar.xz\"\n }\n }\n}"],"names":[],"version":3,"file":"main.js.map","sourceRoot":"../"} \ No newline at end of file diff --git a/index.ts b/index.ts index 66ecfc6..970dd70 100644 --- a/index.ts +++ b/index.ts @@ -18,7 +18,7 @@ export interface Options { env: boolean; } -function getOptions(): Options { +export function getOptions(): Options { return { version: core.getInput("version"), arch: core.getInput("arch"), @@ -62,7 +62,7 @@ export function getAsset(os: string, options: Options): Asset { return { specificVersion: options.version, url: options.forceUrl }; } - const arch = options.arch ?? process.arch; + const arch = (options.arch ?? process.arch) || "x64"; console.log(`Checking known assets (os=${os}, arch=${arch}, version=${options.version})...`); const assets = ASSETS[os]?.[arch]; @@ -120,7 +120,7 @@ async function install(options: Options): Promise { core.info(`Install location: ${options.directory}`); } -async function run(options: Options): Promise { +export async function run(options: Options): Promise { if (!options.directory) { options.directory = process.platform === "win32" ? DEFAULT_WIN32_DIRECTORY : DEFAULT_NIX_DIRECTORY; } @@ -150,16 +150,3 @@ async function run(options: Options): Promise { core.exportVariable("CXX", path.join(options.directory, "bin", "clang++")); } } - -async function main() { - try { - await run(getOptions()); - } catch (error: any) { - console.error(error.stack); - core.setFailed(error.message); - } -} - -if (require.main === module) { - main(); -} diff --git a/main.ts b/main.ts new file mode 100644 index 0000000..4dc2fb6 --- /dev/null +++ b/main.ts @@ -0,0 +1,15 @@ +import * as core from "@actions/core"; + +import { getOptions, run } from "./index"; + +async function main() { + try { + await run(getOptions()); + } catch (error: any) { + console.error(error.stack); + core.setFailed(error.message); + } +} + +console.log("hello"); +main(); diff --git a/package.json b/package.json index 8ba83e5..818aa0f 100644 --- a/package.json +++ b/package.json @@ -4,11 +4,11 @@ "description": "A GitHub Action for downloading and installing LLVM and Clang binaries.", "author": "Kyle Mayes ", "license": "Apache-2.0", - "main": "dist/index.js", + "main": "dist/main.js", "scripts": { "format": "prettier --write *.ts", "generate": "ts-node generate.ts", - "build": "parcel build index.ts", + "build": "parcel build main.ts", "test": "ts-node test.ts test" }, "dependencies": {