mirror of https://github.com/aminya/setup-cpp
3 lines
54 KiB
JavaScript
3 lines
54 KiB
JavaScript
"use strict";function _interopNamespaceDefault(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t)for(const r in t)if("default"!==r){const s=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,s.get?s:{enumerable:!0,get:()=>t[r]})}return e.default=t,Object.freeze(e)}function isDigit(t){return t>=CHAR_0&&CHAR_9>=t}function isHexit(t){return t>=CHAR_A&&CHAR_F>=t||t>=CHAR_a&&CHAR_f>=t||t>=CHAR_0&&CHAR_9>=t}function isBit(t){return t===CHAR_1||t===CHAR_0}function isOctit(t){return t>=CHAR_0&&CHAR_7>=t}function isAlphaNumQuoteHyphen(t){return t>=CHAR_A&&CHAR_Z>=t||t>=CHAR_a&&CHAR_z>=t||t>=CHAR_0&&CHAR_9>=t||t===CHAR_APOS||t===CHAR_QUOT||t===CHAR_LOWBAR||t===CHAR_HYPHEN}function isAlphaNumHyphen(t){return t>=CHAR_A&&CHAR_Z>=t||t>=CHAR_a&&CHAR_z>=t||t>=CHAR_0&&CHAR_9>=t||t===CHAR_LOWBAR||t===CHAR_HYPHEN}function hasKey(t,e){return!!hasOwnProperty.call(t,e)||("__proto__"===e&&defineProperty(t,"__proto__",descriptor),!1)}function InlineTable(){return Object.defineProperties({},{[_type]:{value:INLINE_TABLE}})}function isInlineTable(t){return null!==t&&"object"==typeof t&&t[_type]===INLINE_TABLE}function Table(){return Object.defineProperties({},{[_type]:{value:TABLE},[_declared]:{value:!1,writable:!0}})}function isTable(t){return null!==t&&"object"==typeof t&&t[_type]===TABLE}function InlineList(t){return Object.defineProperties([],{[_type]:{value:INLINE_LIST},[_contentType]:{value:t}})}function isInlineList(t){return null!==t&&"object"==typeof t&&t[_type]===INLINE_LIST}function List(){return Object.defineProperties([],{[_type]:{value:LIST}})}function isList(t){return null!==t&&"object"==typeof t&&t[_type]===LIST}function Integer(t){let e=Number(t);return Object.is(e,-0)&&(e=0),setupCpp.commonjsGlobal.BigInt&&!Number.isSafeInteger(e)?new BoxedBigInt(t):Object.defineProperties(new Number(e),{isNaN:{value:function(){return isNaN(this)}},[_type]:{value:INTEGER},[_inspect]:{value:()=>`[Integer: ${t}]`}})}function isInteger(t){return null!==t&&"object"==typeof t&&t[_type]===INTEGER}function Float(t){return Object.defineProperties(new Number(t),{[_type]:{value:FLOAT},[_inspect]:{value:()=>`[Float: ${t}]`}})}function isFloat(t){return null!==t&&"object"==typeof t&&t[_type]===FLOAT}function tomlType$1(t){const e=typeof t;if("object"===e){if(null===t)return"null";if(t instanceof Date)return"datetime";if(_type in t)switch(t[_type]){case INLINE_TABLE:return"inline-table";case INLINE_LIST:return"inline-list";case TABLE:return"table";case LIST:return"list";case FLOAT:return"float";case INTEGER:return"integer"}}return e}function makeParserClass(t){return class extends t{constructor(){super(),this.ctx=this.obj=Table()}atEndOfWord(){return this.char===CHAR_NUM||this.char===CTRL_I||this.char===CHAR_SP||this.atEndOfLine()}atEndOfLine(){return this.char===t.END||this.char===CTRL_J||this.char===CTRL_M}parseStart(){if(this.char===t.END)return null;if(this.char===CHAR_LSQB)return this.call(this.parseTableOrList);if(this.char===CHAR_NUM)return this.call(this.parseComment);if(this.char===CTRL_J||this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M)return null;if(isAlphaNumQuoteHyphen(this.char))return this.callNow(this.parseAssignStatement);throw this.error(new TomlError(`Unknown character "${this.char}"`))}parseWhitespaceToEOL(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M)return null;if(this.char===CHAR_NUM)return this.goto(this.parseComment);if(this.char===t.END||this.char===CTRL_J)return this.return();throw this.error(new TomlError("Unexpected character, expected only whitespace or comments till end of line"))}parseAssignStatement(){return this.callNow(this.parseAssign,this.recordAssignStatement)}recordAssignStatement(t){let e=this.ctx,r=t.key.pop();for(let s of t.key){if(hasKey(e,s)&&!isTable(e[s]))throw this.error(new TomlError("Can't redefine existing key"));e=e[s]=e[s]||Table()}if(hasKey(e,r))throw this.error(new TomlError("Can't redefine existing key"));return e[_declared]=!0,e[r]=isInteger(t.value)||isFloat(t.value)?t.value.valueOf():t.value,this.goto(this.parseWhitespaceToEOL)}parseAssign(){return this.callNow(this.parseKeyword,this.recordAssignKeyword)}recordAssignKeyword(t){return this.state.resultTable?this.state.resultTable.push(t):this.state.resultTable=[t],this.goto(this.parseAssignKeywordPreDot)}parseAssignKeywordPreDot(){return this.char===CHAR_PERIOD?this.next(this.parseAssignKeywordPostDot):this.char!==CHAR_SP&&this.char!==CTRL_I?this.goto(this.parseAssignEqual):void 0}parseAssignKeywordPostDot(){if(this.char!==CHAR_SP&&this.char!==CTRL_I)return this.callNow(this.parseKeyword,this.recordAssignKeyword)}parseAssignEqual(){if(this.char===CHAR_EQUALS)return this.next(this.parseAssignPreValue);throw this.error(new TomlError('Invalid character, expected "="'))}parseAssignPreValue(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseValue,this.recordAssignValue)}recordAssignValue(t){return this.returnNow({key:this.state.resultTable,value:t})}parseComment(){do{if(this.char===t.END||this.char===CTRL_J)return this.return();if(this.char===CHAR_DEL||CTRL_CHAR_BOUNDARY>=this.char&&this.char!==CTRL_I)throw this.errorControlCharIn("comments")}while(this.nextChar())}parseTableOrList(){if(this.char!==CHAR_LSQB)return this.goto(this.parseTable);this.next(this.parseList)}parseTable(){return this.ctx=this.obj,this.goto(this.parseTableNext)}parseTableNext(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseKeyword,this.parseTableMore)}parseTableMore(t){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CHAR_RSQB){if(hasKey(this.ctx,t)&&(!isTable(this.ctx[t])||this.ctx[t][_declared]))throw this.error(new TomlError("Can't redefine existing key"));return this.ctx=this.ctx[t]=this.ctx[t]||Table(),this.ctx[_declared]=!0,this.next(this.parseWhitespaceToEOL)}if(this.char===CHAR_PERIOD){if(hasKey(this.ctx,t))if(isTable(this.ctx[t]))this.ctx=this.ctx[t];else{if(!isList(this.ctx[t]))throw this.error(new TomlError("Can't redefine existing key"));this.ctx=this.ctx[t][this.ctx[t].length-1]}else this.ctx=this.ctx[t]=Table();return this.next(this.parseTableNext)}throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"))}parseList(){return this.ctx=this.obj,this.goto(this.parseListNext)}parseListNext(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseKeyword,this.parseListMore)}parseListMore(t){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CHAR_RSQB){if(hasKey(this.ctx,t)||(this.ctx[t]=List()),isInlineList(this.ctx[t]))throw this.error(new TomlError("Can't extend an inline array"));if(!isList(this.ctx[t]))throw this.error(new TomlError("Can't redefine an existing key"));{const e=Table();this.ctx[t].push(e),this.ctx=e}return this.next(this.parseListEnd)}if(this.char===CHAR_PERIOD){if(hasKey(this.ctx,t)){if(isInlineList(this.ctx[t]))throw this.error(new TomlError("Can't extend an inline array"));if(isInlineTable(this.ctx[t]))throw this.error(new TomlError("Can't extend an inline table"));if(isList(this.ctx[t]))this.ctx=this.ctx[t][this.ctx[t].length-1];else{if(!isTable(this.ctx[t]))throw this.error(new TomlError("Can't redefine an existing key"));this.ctx=this.ctx[t]}}else this.ctx=this.ctx[t]=Table();return this.next(this.parseListNext)}throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"))}parseListEnd(t){if(this.char===CHAR_RSQB)return this.next(this.parseWhitespaceToEOL);throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"))}parseValue(){if(this.char===t.END)throw this.error(new TomlError("Key without value"));if(this.char===CHAR_QUOT)return this.next(this.parseDoubleString);if(this.char===CHAR_APOS)return this.next(this.parseSingleString);if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)return this.goto(this.parseNumberSign);if(this.char===CHAR_i)return this.next(this.parseInf);if(this.char===CHAR_n)return this.next(this.parseNan);if(isDigit(this.char))return this.goto(this.parseNumberOrDateTime);if(this.char===CHAR_t||this.char===CHAR_f)return this.goto(this.parseBoolean);if(this.char===CHAR_LSQB)return this.call(this.parseInlineList,this.recordValue);if(this.char===CHAR_LCUB)return this.call(this.parseInlineTable,this.recordValue);throw this.error(new TomlError("Unexpected character, expecting string, number, datetime, boolean, inline array or inline table"))}recordValue(t){return this.returnNow(t)}parseInf(){if(this.char===CHAR_n)return this.next(this.parseInf2);throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"'))}parseInf2(){if(this.char===CHAR_f)return this.return("-"===this.state.buf?-1/0:1/0);throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"'))}parseNan(){if(this.char===CHAR_a)return this.next(this.parseNan2);throw this.error(new TomlError('Unexpected character, expected "nan"'))}parseNan2(){if(this.char===CHAR_n)return this.return(NaN);throw this.error(new TomlError('Unexpected character, expected "nan"'))}parseKeyword(){return this.char===CHAR_QUOT?this.next(this.parseBasicString):this.char===CHAR_APOS?this.next(this.parseLiteralString):this.goto(this.parseBareKey)}parseBareKey(){do{if(this.char===t.END)throw this.error(new TomlError("Key ended without value"));if(!isAlphaNumHyphen(this.char)){if(0===this.state.buf.length)throw this.error(new TomlError("Empty bare keys are not allowed"));return this.returnNow()}this.consume()}while(this.nextChar())}parseSingleString(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiStringMaybe):this.goto(this.parseLiteralString)}parseLiteralString(){do{if(this.char===CHAR_APOS)return this.return();if(this.atEndOfLine())throw this.error(new TomlError("Unterminated string"));if(this.char===CHAR_DEL||CTRL_CHAR_BOUNDARY>=this.char&&this.char!==CTRL_I)throw this.errorControlCharIn("strings");this.consume()}while(this.nextChar())}parseLiteralMultiStringMaybe(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiString):this.returnNow()}parseLiteralMultiString(){return this.char===CTRL_M?null:this.char===CTRL_J?this.next(this.parseLiteralMultiStringContent):this.goto(this.parseLiteralMultiStringContent)}parseLiteralMultiStringContent(){do{if(this.char===CHAR_APOS)return this.next(this.parseLiteralMultiEnd);if(this.char===t.END)throw this.error(new TomlError("Unterminated multi-line string"));if(this.char===CHAR_DEL||CTRL_CHAR_BOUNDARY>=this.char&&this.char!==CTRL_I&&this.char!==CTRL_J&&this.char!==CTRL_M)throw this.errorControlCharIn("strings");this.consume()}while(this.nextChar())}parseLiteralMultiEnd(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiEnd2):(this.state.buf+="'",this.goto(this.parseLiteralMultiStringContent))}parseLiteralMultiEnd2(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiEnd3):(this.state.buf+="''",this.goto(this.parseLiteralMultiStringContent))}parseLiteralMultiEnd3(){return this.char===CHAR_APOS?(this.state.buf+="'",this.next(this.parseLiteralMultiEnd4)):this.returnNow()}parseLiteralMultiEnd4(){return this.char===CHAR_APOS?(this.state.buf+="'",this.return()):this.returnNow()}parseDoubleString(){return this.char===CHAR_QUOT?this.next(this.parseMultiStringMaybe):this.goto(this.parseBasicString)}parseBasicString(){do{if(this.char===CHAR_BSOL)return this.call(this.parseEscape,this.recordEscapeReplacement);if(this.char===CHAR_QUOT)return this.return();if(this.atEndOfLine())throw this.error(new TomlError("Unterminated string"));if(this.char===CHAR_DEL||CTRL_CHAR_BOUNDARY>=this.char&&this.char!==CTRL_I)throw this.errorControlCharIn("strings");this.consume()}while(this.nextChar())}recordEscapeReplacement(t){return this.state.buf+=t,this.goto(this.parseBasicString)}parseMultiStringMaybe(){return this.char===CHAR_QUOT?this.next(this.parseMultiString):this.returnNow()}parseMultiString(){return this.char===CTRL_M?null:this.char===CTRL_J?this.next(this.parseMultiStringContent):this.goto(this.parseMultiStringContent)}parseMultiStringContent(){do{if(this.char===CHAR_BSOL)return this.call(this.parseMultiEscape,this.recordMultiEscapeReplacement);if(this.char===CHAR_QUOT)return this.next(this.parseMultiEnd);if(this.char===t.END)throw this.error(new TomlError("Unterminated multi-line string"));if(this.char===CHAR_DEL||CTRL_CHAR_BOUNDARY>=this.char&&this.char!==CTRL_I&&this.char!==CTRL_J&&this.char!==CTRL_M)throw this.errorControlCharIn("strings");this.consume()}while(this.nextChar())}errorControlCharIn(t){let e="\\u00";return 16>this.char&&(e+="0"),e+=this.char.toString(16),this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in ${t}, use ${e} instead`))}recordMultiEscapeReplacement(t){return this.state.buf+=t,this.goto(this.parseMultiStringContent)}parseMultiEnd(){return this.char===CHAR_QUOT?this.next(this.parseMultiEnd2):(this.state.buf+='"',this.goto(this.parseMultiStringContent))}parseMultiEnd2(){return this.char===CHAR_QUOT?this.next(this.parseMultiEnd3):(this.state.buf+='""',this.goto(this.parseMultiStringContent))}parseMultiEnd3(){return this.char===CHAR_QUOT?(this.state.buf+='"',this.next(this.parseMultiEnd4)):this.returnNow()}parseMultiEnd4(){return this.char===CHAR_QUOT?(this.state.buf+='"',this.return()):this.returnNow()}parseMultiEscape(){return this.char===CTRL_M||this.char===CTRL_J?this.next(this.parseMultiTrim):this.char===CHAR_SP||this.char===CTRL_I?this.next(this.parsePreMultiTrim):this.goto(this.parseEscape)}parsePreMultiTrim(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CTRL_M||this.char===CTRL_J)return this.next(this.parseMultiTrim);throw this.error(new TomlError("Can't escape whitespace"))}parseMultiTrim(){return this.char===CTRL_J||this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M?null:this.returnNow()}parseEscape(){if(this.char in escapes)return this.return(escapes[this.char]);if(this.char===CHAR_u)return this.call(this.parseSmallUnicode,this.parseUnicodeReturn);if(this.char===CHAR_U)return this.call(this.parseLargeUnicode,this.parseUnicodeReturn);throw this.error(new TomlError("Unknown escape character: "+this.char))}parseUnicodeReturn(t){try{const e=parseInt(t,16);if(e>=SURROGATE_FIRST&&SURROGATE_LAST>=e)throw this.error(new TomlError("Invalid unicode, character in range 0xD800 - 0xDFFF is reserved"));return this.returnNow(String.fromCodePoint(e))}catch(e){throw this.error(TomlError.wrap(e))}}parseSmallUnicode(){if(!isHexit(this.char))throw this.error(new TomlError("Invalid character in unicode sequence, expected hex"));if(this.consume(),this.state.buf.length>=4)return this.return()}parseLargeUnicode(){if(!isHexit(this.char))throw this.error(new TomlError("Invalid character in unicode sequence, expected hex"));if(this.consume(),this.state.buf.length>=8)return this.return()}parseNumberSign(){return this.consume(),this.next(this.parseMaybeSignedInfOrNan)}parseMaybeSignedInfOrNan(){return this.char===CHAR_i?this.next(this.parseInf):this.char===CHAR_n?this.next(this.parseNan):this.callNow(this.parseNoUnder,this.parseNumberIntegerStart)}parseNumberIntegerStart(){return this.char===CHAR_0?(this.consume(),this.next(this.parseNumberIntegerExponentOrDecimal)):this.goto(this.parseNumberInteger)}parseNumberIntegerExponentOrDecimal(){return this.char===CHAR_PERIOD?(this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat)):this.char===CHAR_E||this.char===CHAR_e?(this.consume(),this.next(this.parseNumberExponentSign)):this.returnNow(Integer(this.state.buf))}parseNumberInteger(){if(!isDigit(this.char)){if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder);if(this.char===CHAR_E||this.char===CHAR_e)return this.consume(),this.next(this.parseNumberExponentSign);if(this.char===CHAR_PERIOD)return this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat);{const t=Integer(this.state.buf);if(t.isNaN())throw this.error(new TomlError("Invalid number"));return this.returnNow(t)}}this.consume()}parseNoUnder(){if(this.char===CHAR_LOWBAR||this.char===CHAR_PERIOD||this.char===CHAR_E||this.char===CHAR_e)throw this.error(new TomlError("Unexpected character, expected digit"));if(this.atEndOfWord())throw this.error(new TomlError("Incomplete number"));return this.returnNow()}parseNoUnderHexOctBinLiteral(){if(this.char===CHAR_LOWBAR||this.char===CHAR_PERIOD)throw this.error(new TomlError("Unexpected character, expected digit"));if(this.atEndOfWord())throw this.error(new TomlError("Incomplete number"));return this.returnNow()}parseNumberFloat(){return this.char===CHAR_LOWBAR?this.call(this.parseNoUnder,this.parseNumberFloat):isDigit(this.char)?void this.consume():this.char===CHAR_E||this.char===CHAR_e?(this.consume(),this.next(this.parseNumberExponentSign)):this.returnNow(Float(this.state.buf))}parseNumberExponentSign(){if(isDigit(this.char))return this.goto(this.parseNumberExponent);if(this.char!==CHAR_HYPHEN&&this.char!==CHAR_PLUS)throw this.error(new TomlError("Unexpected character, expected -, + or digit"));this.consume(),this.call(this.parseNoUnder,this.parseNumberExponent)}parseNumberExponent(){if(!isDigit(this.char))return this.char===CHAR_LOWBAR?this.call(this.parseNoUnder):this.returnNow(Float(this.state.buf));this.consume()}parseNumberOrDateTime(){return this.char===CHAR_0?(this.consume(),this.next(this.parseNumberBaseOrDateTime)):this.goto(this.parseNumberOrDateTimeOnly)}parseNumberOrDateTimeOnly(){return this.char===CHAR_LOWBAR?this.call(this.parseNoUnder,this.parseNumberInteger):isDigit(this.char)?(this.consume(),void(this.state.buf.length>4&&this.next(this.parseNumberInteger))):this.char===CHAR_E||this.char===CHAR_e?(this.consume(),this.next(this.parseNumberExponentSign)):this.char===CHAR_PERIOD?(this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat)):this.char===CHAR_HYPHEN?this.goto(this.parseDateTime):this.char===CHAR_COLON?this.goto(this.parseOnlyTimeHour):this.returnNow(Integer(this.state.buf))}parseDateTimeOnly(){if(4>this.state.buf.length){if(isDigit(this.char))return this.consume();if(this.char===CHAR_COLON)return this.goto(this.parseOnlyTimeHour);throw this.error(new TomlError("Expected digit while parsing year part of a date"))}if(this.char===CHAR_HYPHEN)return this.goto(this.parseDateTime);throw this.error(new TomlError("Expected hyphen (-) while parsing year part of date"))}parseNumberBaseOrDateTime(){return this.char===CHAR_b?(this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerBin)):this.char===CHAR_o?(this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerOct)):this.char===CHAR_x?(this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerHex)):this.char===CHAR_PERIOD?this.goto(this.parseNumberInteger):isDigit(this.char)?this.goto(this.parseDateTimeOnly):this.returnNow(Integer(this.state.buf))}parseIntegerHex(){if(!isHexit(this.char)){if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);{const t=Integer(this.state.buf);if(t.isNaN())throw this.error(new TomlError("Invalid number"));return this.returnNow(t)}}this.consume()}parseIntegerOct(){if(!isOctit(this.char)){if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);{const t=Integer(this.state.buf);if(t.isNaN())throw this.error(new TomlError("Invalid number"));return this.returnNow(t)}}this.consume()}parseIntegerBin(){if(!isBit(this.char)){if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);{const t=Integer(this.state.buf);if(t.isNaN())throw this.error(new TomlError("Invalid number"));return this.returnNow(t)}}this.consume()}parseDateTime(){if(4>this.state.buf.length)throw this.error(new TomlError("Years less than 1000 must be zero padded to four characters"));return this.state.result=this.state.buf,this.state.buf="",this.next(this.parseDateMonth)}parseDateMonth(){if(this.char===CHAR_HYPHEN){if(2>this.state.buf.length)throw this.error(new TomlError("Months less than 10 must be zero padded to two characters"));return this.state.result+="-"+this.state.buf,this.state.buf="",this.next(this.parseDateDay)}if(!isDigit(this.char))throw this.error(new TomlError("Incomplete datetime"));this.consume()}parseDateDay(){if(this.char===CHAR_T||this.char===CHAR_SP){if(2>this.state.buf.length)throw this.error(new TomlError("Days less than 10 must be zero padded to two characters"));return this.state.result+="-"+this.state.buf,this.state.buf="",this.next(this.parseStartTimeHour)}if(this.atEndOfWord())return this.returnNow(createDate(this.state.result+"-"+this.state.buf));if(!isDigit(this.char))throw this.error(new TomlError("Incomplete datetime"));this.consume()}parseStartTimeHour(){return this.atEndOfWord()?this.returnNow(createDate(this.state.result)):this.goto(this.parseTimeHour)}parseTimeHour(){if(this.char===CHAR_COLON){if(2>this.state.buf.length)throw this.error(new TomlError("Hours less than 10 must be zero padded to two characters"));return this.state.result+="T"+this.state.buf,this.state.buf="",this.next(this.parseTimeMin)}if(!isDigit(this.char))throw this.error(new TomlError("Incomplete datetime"));this.consume()}parseTimeMin(){if(this.state.buf.length>=2||!isDigit(this.char)){if(2===this.state.buf.length&&this.char===CHAR_COLON)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseTimeSec);throw this.error(new TomlError("Incomplete datetime"))}this.consume()}parseTimeSec(){if(!isDigit(this.char))throw this.error(new TomlError("Incomplete datetime"));if(this.consume(),2===this.state.buf.length)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseTimeZoneOrFraction)}parseOnlyTimeHour(){if(this.char===CHAR_COLON){if(2>this.state.buf.length)throw this.error(new TomlError("Hours less than 10 must be zero padded to two characters"));return this.state.result=this.state.buf,this.state.buf="",this.next(this.parseOnlyTimeMin)}throw this.error(new TomlError("Incomplete time"))}parseOnlyTimeMin(){if(this.state.buf.length>=2||!isDigit(this.char)){if(2===this.state.buf.length&&this.char===CHAR_COLON)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseOnlyTimeSec);throw this.error(new TomlError("Incomplete time"))}this.consume()}parseOnlyTimeSec(){if(!isDigit(this.char))throw this.error(new TomlError("Incomplete time"));if(this.consume(),2===this.state.buf.length)return this.next(this.parseOnlyTimeFractionMaybe)}parseOnlyTimeFractionMaybe(){if(this.state.result+=":"+this.state.buf,this.char!==CHAR_PERIOD)return this.return(createTime(this.state.result));this.state.buf="",this.next(this.parseOnlyTimeFraction)}parseOnlyTimeFraction(){if(!isDigit(this.char)){if(this.atEndOfWord()){if(0===this.state.buf.length)throw this.error(new TomlError("Expected digit in milliseconds"));return this.returnNow(createTime(this.state.result+"."+this.state.buf))}throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"))}this.consume()}parseTimeZoneOrFraction(){if(this.char===CHAR_PERIOD)this.consume(),this.next(this.parseDateTimeFraction);else{if(this.char!==CHAR_HYPHEN&&this.char!==CHAR_PLUS){if(this.char===CHAR_Z)return this.consume(),this.return(createDateTime(this.state.result+this.state.buf));if(this.atEndOfWord())return this.returnNow(createDateTimeFloat(this.state.result+this.state.buf));throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"))}this.consume(),this.next(this.parseTimeZoneHour)}}parseDateTimeFraction(){if(isDigit(this.char))this.consume();else{if(1===this.state.buf.length)throw this.error(new TomlError("Expected digit in milliseconds"));if(this.char!==CHAR_HYPHEN&&this.char!==CHAR_PLUS){if(this.char===CHAR_Z)return this.consume(),this.return(createDateTime(this.state.result+this.state.buf));if(this.atEndOfWord())return this.returnNow(createDateTimeFloat(this.state.result+this.state.buf));throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"))}this.consume(),this.next(this.parseTimeZoneHour)}}parseTimeZoneHour(){if(!isDigit(this.char))throw this.error(new TomlError("Unexpected character in datetime, expected digit"));if(this.consume(),/\d\d$/.test(this.state.buf))return this.next(this.parseTimeZoneSep)}parseTimeZoneSep(){if(this.char!==CHAR_COLON)throw this.error(new TomlError("Unexpected character in datetime, expected colon"));this.consume(),this.next(this.parseTimeZoneMin)}parseTimeZoneMin(){if(!isDigit(this.char))throw this.error(new TomlError("Unexpected character in datetime, expected digit"));if(this.consume(),/\d\d$/.test(this.state.buf))return this.return(createDateTime(this.state.result+this.state.buf))}parseBoolean(){return this.char===CHAR_t?(this.consume(),this.next(this.parseTrue_r)):this.char===CHAR_f?(this.consume(),this.next(this.parseFalse_a)):void 0}parseTrue_r(){if(this.char===CHAR_r)return this.consume(),this.next(this.parseTrue_u);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseTrue_u(){if(this.char===CHAR_u)return this.consume(),this.next(this.parseTrue_e);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseTrue_e(){if(this.char===CHAR_e)return this.return(!0);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_a(){if(this.char===CHAR_a)return this.consume(),this.next(this.parseFalse_l);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_l(){if(this.char===CHAR_l)return this.consume(),this.next(this.parseFalse_s);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_s(){if(this.char===CHAR_s)return this.consume(),this.next(this.parseFalse_e);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_e(){if(this.char===CHAR_e)return this.return(!1);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseInlineList(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M||this.char===CTRL_J)return null;if(this.char===t.END)throw this.error(new TomlError("Unterminated inline array"));return this.char===CHAR_NUM?this.call(this.parseComment):this.char===CHAR_RSQB?this.return(this.state.resultArr||InlineList()):this.callNow(this.parseValue,this.recordInlineListValue)}recordInlineListValue(t){return this.state.resultArr||(this.state.resultArr=InlineList(tomlType$1(t))),isFloat(t)||isInteger(t)?this.state.resultArr.push(t.valueOf()):this.state.resultArr.push(t),this.goto(this.parseInlineListNext)}parseInlineListNext(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M||this.char===CTRL_J)return null;if(this.char===CHAR_NUM)return this.call(this.parseComment);if(this.char===CHAR_COMMA)return this.next(this.parseInlineList);if(this.char===CHAR_RSQB)return this.goto(this.parseInlineList);throw this.error(new TomlError("Invalid character, expected whitespace, comma (,) or close bracket (])"))}parseInlineTable(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===t.END||this.char===CHAR_NUM||this.char===CTRL_J||this.char===CTRL_M)throw this.error(new TomlError("Unterminated inline array"));return this.char===CHAR_RCUB?this.return(this.state.resultTable||InlineTable()):(this.state.resultTable||(this.state.resultTable=InlineTable()),this.callNow(this.parseAssign,this.recordInlineTableValue))}recordInlineTableValue(t){let e=this.state.resultTable,r=t.key.pop();for(let s of t.key){if(hasKey(e,s)&&(!isTable(e[s])||e[s][_declared]))throw this.error(new TomlError("Can't redefine existing key"));e=e[s]=e[s]||Table()}if(hasKey(e,r))throw this.error(new TomlError("Can't redefine existing key"));return e[r]=isInteger(t.value)||isFloat(t.value)?t.value.valueOf():t.value,this.goto(this.parseInlineTableNext)}parseInlineTableNext(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===t.END||this.char===CHAR_NUM||this.char===CTRL_J||this.char===CTRL_M)throw this.error(new TomlError("Unterminated inline array"));if(this.char===CHAR_COMMA)return this.next(this.parseInlineTablePostComma);if(this.char===CHAR_RCUB)return this.goto(this.parseInlineTable);throw this.error(new TomlError("Invalid character, expected whitespace, comma (,) or close bracket (])"))}parseInlineTablePostComma(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===t.END||this.char===CHAR_NUM||this.char===CTRL_J||this.char===CTRL_M)throw this.error(new TomlError("Unterminated inline array"));if(this.char===CHAR_COMMA)throw this.error(new TomlError("Empty elements in inline tables are not permitted"));if(this.char===CHAR_RCUB)throw this.error(new TomlError("Trailing commas in inline tables are not permitted"));return this.goto(this.parseInlineTable)}}}function prettyError$2(t,e){if(null==t.pos||null==t.line)return t;let r=t.message;if(r+=` at row ${t.line+1}, col ${t.col+1}, pos ${t.pos}:\n`,e&&e.split){const s=e.split(/\n/),i=(Math.min(s.length,t.line+3)+"").length;let n=" ";for(;i>n.length;)n+=" ";for(let e=Math.max(0,t.line-1);Math.min(s.length,t.line+2)>e;++e){let a=e+1+"";if(i>a.length&&(a=" "+a),t.line===e){r+=a+"> "+s[e]+"\n",r+=n+" ";for(let e=0;t.col>e;++e)r+=" ";r+="^\n"}else r+=a+": "+s[e]+"\n"}}return t.message=r+"\n",t}function parseString(t){setupCpp.commonjsGlobal.Buffer&&setupCpp.commonjsGlobal.Buffer.isBuffer(t)&&(t=t.toString("utf8"));const e=new TOMLParser$2;try{return e.parse(t),e.finish()}catch(r){throw prettyError$1(r,t)}}function parseAsync(t,e){function r(e,s,n,a){if(e>=t.length)try{return n(i.finish())}catch(o){return a(prettyError(o,t))}try{i.parse(t.slice(e,e+s)),setImmediate(r,e+s,s,n,a)}catch(o){a(prettyError(o,t))}}e||(e={});const s=e.blocksize||40960,i=new TOMLParser$1;return new Promise(((t,e)=>{setImmediate(r,0,s,t,e)}))}function parseStream(t){return t?parseReadable(t):parseTransform()}function parseReadable(t){const e=new TOMLParser;return t.setEncoding("utf8"),new Promise(((r,s)=>{function i(){if(o=!0,!a)try{r(e.finish())}catch(t){s(t)}}function n(t){h=!0,s(t)}let a,o=!1,h=!1;t.once("end",i),t.once("error",n),function r(){let s;for(a=!0;null!==(s=t.read());)try{e.parse(s)}catch(c){return n(c)}if(a=!1,o)return i();h||t.once("readable",r)}()}))}function parseTransform(){const t=new TOMLParser;return new stream.Transform({objectMode:!0,transform(e,r,s){try{t.parse(e.toString(r))}catch(i){this.emit("error",i)}s()},flush(e){try{this.push(t.finish())}catch(r){this.emit("error",r)}e()}})}function stringify(t){if(null===t)throw typeError("null");if(void 0===t)throw typeError("undefined");if("object"!=typeof t)throw typeError(typeof t);if("function"==typeof t.toJSON&&(t=t.toJSON()),null==t)return null;const e=tomlType(t);if("table"!==e)throw typeError(e);return stringifyObject("","",t)}function typeError(t){return Error("Can only stringify objects, not "+t)}function getInlineKeys(t){return Object.keys(t).filter((e=>isInline(t[e])))}function getComplexKeys(t){return Object.keys(t).filter((e=>!isInline(t[e])))}function toJSON(t){let e=Array.isArray(t)?[]:{}.hasOwnProperty.call(t,"__proto__")?{["__proto__"]:void 0}:{};for(let r of Object.keys(t))e[r]=t[r]&&"function"==typeof t[r].toJSON&&!("toISOString"in t[r])?t[r].toJSON():t[r];return e}function stringifyObject(t,e,r){let s,i;s=getInlineKeys(r=toJSON(r)),i=getComplexKeys(r);const n=[],a=e||"";s.forEach((t=>{var e=tomlType(r[t]);"undefined"!==e&&"null"!==e&&n.push(a+stringifyKey(t)+" = "+stringifyAnyInline(r[t],!0))})),n.length>0&&n.push("");const o=t&&s.length>0?e+" ":"";return i.forEach((e=>{n.push(stringifyComplex(t,o,e,r[e]))})),n.join("\n")}function isInline(t){switch(tomlType(t)){case"undefined":case"null":case"integer":case"nan":case"float":case"boolean":case"string":case"datetime":return!0;case"array":return 0===t.length||"table"!==tomlType(t[0]);case"table":return 0===Object.keys(t).length;default:return!1}}function tomlType(t){return void 0===t?"undefined":null===t?"null":"bigint"==typeof t||Number.isInteger(t)&&!Object.is(t,-0)?"integer":"number"==typeof t?"float":"boolean"==typeof t?"boolean":"string"==typeof t?"string":"toISOString"in t?isNaN(t)?"undefined":"datetime":Array.isArray(t)?"array":"table"}function stringifyKey(t){const e=t+"";return/^[-A-Za-z0-9_]+$/.test(e)?e:stringifyBasicString(e)}function stringifyBasicString(t){return'"'+escapeString(t).replace(/"/g,'\\"')+'"'}function stringifyLiteralString(t){return"'"+t+"'"}function numpad(t,e){for(;t>e.length;)e="0"+e;return e}function escapeString(t){return t.replace(/\\/g,"\\\\").replace(/[\b]/g,"\\b").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\f/g,"\\f").replace(/\r/g,"\\r").replace(/([\u0000-\u001f\u007f])/,(t=>"\\u"+numpad(4,t.codePointAt(0).toString(16))))}function stringifyMultilineString(t){let e=t.split(/\n/).map((t=>escapeString(t).replace(/"(?="")/g,'\\"'))).join("\n");return'"'===e.slice(-1)&&(e+="\\\n"),'"""\n'+e+'"""'}function stringifyAnyInline(t,e){let r=tomlType(t);return"string"===r&&(e&&/\n/.test(t)?r="string-multiline":!/[\b\t\n\f\r']/.test(t)&&/"/.test(t)&&(r="string-literal")),stringifyInline(t,r)}function stringifyInline(t,e){switch(e||(e=tomlType(t)),e){case"string-multiline":return stringifyMultilineString(t);case"string":return stringifyBasicString(t);case"string-literal":return stringifyLiteralString(t);case"integer":return stringifyInteger(t);case"float":return stringifyFloat(t);case"boolean":return stringifyBoolean(t);case"datetime":return stringifyDatetime(t);case"array":return stringifyInlineArray(t.filter((t=>"null"!==tomlType(t)&&"undefined"!==tomlType(t)&&"nan"!==tomlType(t))));case"table":return stringifyInlineTable(t);default:throw typeError(e)}}function stringifyInteger(t){return(t+"").replace(/\B(?=(\d{3})+(?!\d))/g,"_")}function stringifyFloat(t){if(t===1/0)return"inf";if(t===-1/0)return"-inf";if(Object.is(t,NaN))return"nan";if(Object.is(t,-0))return"-0.0";const[e,r]=(t+"").split(".");return stringifyInteger(e)+"."+r}function stringifyBoolean(t){return t+""}function stringifyDatetime(t){return t.toISOString()}function stringifyInlineArray(t){let e="[";const r=(t=toJSON(t)).map((t=>stringifyInline(t)));return r.join(", ").length>60||/\n/.test(r)?e+="\n "+r.join(",\n ")+"\n":e+=" "+r.join(", ")+(r.length>0?" ":""),e+"]"}function stringifyInlineTable(t){t=toJSON(t);const e=[];return Object.keys(t).forEach((r=>{e.push(stringifyKey(r)+" = "+stringifyAnyInline(t[r],!1))})),"{ "+e.join(", ")+(e.length>0?" ":"")+"}"}function stringifyComplex(t,e,r,s){const i=tomlType(s);if("array"===i)return stringifyArrayOfTables(t,e,r,s);if("table"===i)return stringifyComplexTable(t,e,r,s);throw typeError(i)}function stringifyArrayOfTables(t,e,r,s){const i=tomlType((s=toJSON(s))[0]);if("table"!==i)throw typeError(i);const n=t+stringifyKey(r);let a="";return s.forEach((t=>{a.length>0&&(a+="\n"),a+=e+"[["+n+"]]\n",a+=stringifyObject(n+".",e,t)})),a}function stringifyComplexTable(t,e,r,s){const i=t+stringifyKey(r);let n="";return getInlineKeys(s).length>0&&(n+=e+"["+i+"]\n"),n+stringifyObject(i+".",e,s)}function createSymlinkInFolder(t,e,r,s=!1){const i=path__namespace.join(t,e),n=path__namespace.join(t,r);fs.existsSync(n)||(fs.symlinkSync(i,n),!IS_WINDOWS&&s&&fs.chmodSync(n,"755"))}function validateVersion(t){return isNightlyKeyword(t)||!!setupCpp.semver.validRange(t)}function isNightlyKeyword(t){return"nightly"===t}function getPyPyVersionFromPath(t){return path__namespace.basename(path__namespace.dirname(t))}function readExactPyPyVersionFile(t){let e="";const r=path__namespace.join(t,PYPY_VERSION_FILE);return fs.existsSync(r)&&(e=(""+fs.readFileSync(r)).trim()),e}function writeExactPyPyVersionFile(t,e){const r=path__namespace.join(t,PYPY_VERSION_FILE);fs.writeFileSync(r,e)}function validatePythonVersionFormatForPyPy(t){return/^\d+\.\d+$/.test(t)}async function getWindowsInfo(){const{stdout:t}=await setupCpp.getExecOutput_1('powershell -command "(Get-CimInstance -ClassName Win32_OperatingSystem).Caption"',void 0,{silent:!0});return{osName:"Windows",osVersion:t.trim().split(" ")[3]}}async function getMacOSInfo(){const{stdout:t}=await setupCpp.getExecOutput_1("sw_vers",["-productVersion"],{silent:!0});return{osName:"macOS",osVersion:t.trim()}}async function getLinuxInfo(){const{stdout:t}=await setupCpp.getExecOutput_1("lsb_release",["-i","-r","-s"],{silent:!0}),[e,r]=t.trim().split("\n");return setupCpp.coreExports.debug(`OS Name: ${e}, Version: ${r}`),{osName:e,osVersion:r}}async function getOSInfo(){let t;try{IS_WINDOWS?t=await getWindowsInfo():IS_LINUX?t=await getLinuxInfo():IS_MAC&&(t=await getMacOSInfo())}catch(e){setupCpp.coreExports.debug(e.message)}finally{return t}}function getBinaryDirectory(t){return IS_WINDOWS?t:path__namespace.join(t,"bin")}function getDownloadFileName(t){const e=process.env.RUNNER_TEMP||".";return IS_WINDOWS?path__namespace.join(e,path__namespace.basename(t)):void 0}async function installPyPy(t,e,r,s,i){let n;if(!(i=null!=i?i:await getAvailablePyPyVersions())||0===i.length)throw Error("No release was found in PyPy version.json");let a=findRelease(i,e,t,r,!1);if(!a||!a.foundAsset)throw Error(`PyPy version ${e} (${t}) with arch ${r} not found`);const{foundAsset:o,resolvedPythonVersion:h,resolvedPyPyVersion:c}=a,p=""+o.download_url;setupCpp.coreExports.info(`Downloading PyPy from "${p}" ...`);try{const t=getDownloadFileName(p),e=await setupCpp.downloadTool_1(p,t);setupCpp.coreExports.info("Extracting downloaded archive..."),n=IS_WINDOWS?await setupCpp.extractZip_1(e):await setupCpp.extractTar_1(e,void 0,"x");const s=fs.readdirSync(n)[0],i=path__namespace.join(n,s);let a=i;isNightlyKeyword(c)||(a=await setupCpp.cacheDir_1(i,"PyPy",h,r)),writeExactPyPyVersionFile(a,c);const o=getBinaryDirectory(a);return await createPyPySymlink(o,h),await installPip(o),{installDir:a,resolvedPythonVersion:h,resolvedPyPyVersion:c}}catch(l){throw l instanceof Error&&(setupCpp.coreExports.info(l instanceof setupCpp.HTTPError_1&&(403===l.httpStatusCode||429===l.httpStatusCode)?`Received HTTP status code ${l.httpStatusCode}. This usually indicates the rate limit has been exceeded`:l.message),void 0!==l.stack&&setupCpp.coreExports.debug(l.stack)),l}}async function getAvailablePyPyVersions(){const t="https://downloads.python.org/pypy/versions.json",e=new setupCpp.HttpClient("tool-cache"),r=await e.getJson(t);if(!r.result)throw Error(`Unable to retrieve the list of available PyPy versions from '${t}'`);return r.result}async function createPyPySymlink(t,e){const r=setupCpp.semver.coerce(e),s=setupCpp.semver.major(r),i=2===s?"":"3",n=`${s}.${setupCpp.semver.minor(r)}`,a=IS_WINDOWS?".exe":"";setupCpp.coreExports.info("Creating symlinks..."),createSymlinkInFolder(t,`pypy${i}${a}`,`python${s}${a}`,!0),createSymlinkInFolder(t,`pypy${i}${a}`,"python"+a,!0),createSymlinkInFolder(t,`pypy${i}${a}`,`pypy${n}${a}`,!0)}async function installPip(t){setupCpp.coreExports.info("Installing and updating pip");const e=path__namespace.join(t,"python");await setupCpp.exec_2(e+" -m ensurepip"),await setupCpp.exec_2(t+"/python -m pip install --ignore-installed pip")}function findRelease(t,e,r,s,i){const n={includePrerelease:i},a=t.filter((t=>{const i=setupCpp.semver.satisfies(setupCpp.semver.coerce(t.python_version),e),a=isNightlyKeyword(r)&&isNightlyKeyword(t.pypy_version)||setupCpp.semver.satisfies(pypyVersionToSemantic(t.pypy_version),r,n),o=t.files&&(IS_WINDOWS?isArchPresentForWindows(t,s):isArchPresentForMacOrLinux(t,s,process.platform));return i&&a&&o}));if(0===a.length)return null;const o=a.sort(((t,e)=>setupCpp.semver.compare(setupCpp.semver.coerce(pypyVersionToSemantic(e.pypy_version)),setupCpp.semver.coerce(pypyVersionToSemantic(t.pypy_version)))||setupCpp.semver.compare(setupCpp.semver.coerce(e.python_version),setupCpp.semver.coerce(t.python_version))))[0];return{foundAsset:IS_WINDOWS?findAssetForWindows(o,s):findAssetForMacOrLinux(o,s,process.platform),resolvedPythonVersion:o.python_version,resolvedPyPyVersion:o.pypy_version.trim()}}function pypyVersionToSemantic(t){return t.replace(/(\d+\.\d+\.\d+)((?:a|b|rc))(\d*)/g,"$1-$2.$3")}function isArchPresentForWindows(t,e){return e=replaceX32toX86(e),t.files.some((t=>WINDOWS_PLATFORMS.includes(t.platform)&&t.arch===e))}function isArchPresentForMacOrLinux(t,e,r){return t.files.some((t=>t.arch===e&&t.platform===r))}function findAssetForWindows(t,e){return e=replaceX32toX86(e),t.files.find((t=>WINDOWS_PLATFORMS.includes(t.platform)&&t.arch===e))}function findAssetForMacOrLinux(t,e,r){return t.files.find((t=>t.arch===e&&t.platform===r))}function replaceX32toX86(t){return"x32"===t&&(t="x86"),t}async function findPyPyVersion(t,e,r,s,i){let n,a="",o="";const h=parsePyPyVersion(t);({installDir:n,resolvedPythonVersion:o,resolvedPyPyVersion:a}=findPyPyToolCache(h.pythonVersion,h.pypyVersion,e)),n||({installDir:n,resolvedPythonVersion:o,resolvedPyPyVersion:a}=await installPyPy(h.pypyVersion,h.pythonVersion,e,i,void 0));const c=path__namespace.join(n,IS_WINDOWS?"Scripts":"bin"),p=path__namespace.join(IS_WINDOWS?n:c,"python"+(IS_WINDOWS?".exe":"")),l=getBinaryDirectory(n);return setupCpp.coreExports.exportVariable("pythonLocation",n),setupCpp.coreExports.exportVariable("Python_ROOT_DIR",n),setupCpp.coreExports.exportVariable("Python2_ROOT_DIR",n),setupCpp.coreExports.exportVariable("Python3_ROOT_DIR",n),setupCpp.coreExports.exportVariable("PKG_CONFIG_PATH",l+"/lib/pkgconfig"),setupCpp.coreExports.addPath(l),setupCpp.coreExports.addPath(c),setupCpp.coreExports.setOutput("python-version","pypy"+a),setupCpp.coreExports.setOutput("python-path",p),{resolvedPyPyVersion:a,resolvedPythonVersion:o}}function findPyPyToolCache(t,e,r){let s="",i="",n=IS_WINDOWS?findPyPyInstallDirForWindows(t):setupCpp.find_1("PyPy",t,r);return n&&(i=getPyPyVersionFromPath(n),s=readExactPyPyVersionFile(n),setupCpp.semver.satisfies(s,e)||(n=null,s="",i="")),n||setupCpp.coreExports.info(`PyPy version ${t} (${e}) was not found in the local cache`),{installDir:n,resolvedPythonVersion:i,resolvedPyPyVersion:s}}function parsePyPyVersion(t){const e=t.split("-").filter((t=>!!t));if(/^(pypy)(.+)/.test(e[0])){const t=e[0].replace("pypy","");e.splice(0,1,"pypy",t)}if(2>e.length||"pypy"!=e[0])throw Error("Invalid 'version' property for PyPy. PyPy version should be specified as 'pypy<python-version>' or 'pypy-<python-version>'. See README for examples and documentation.");const r=e[1];let s;if(s=e.length>2?pypyVersionToSemantic(e[2]):"x",!validateVersion(r)||!validateVersion(s))throw Error("Invalid 'version' property for PyPy. Both Python version and PyPy versions should satisfy SemVer notation. See README for examples and documentation.");if(!validatePythonVersionFormatForPyPy(r))throw Error("Invalid format of Python version for PyPy. Python version should be specified in format 'x.y'. See README for examples and documentation.");return{pypyVersion:s,pythonVersion:r}}function findPyPyInstallDirForWindows(t){let e="";return WINDOWS_ARCHS.forEach((r=>e=e||setupCpp.find_1("PyPy",t,r))),e}async function findReleaseFromManifest(t,e,r){return r||(r=await getManifest()),await setupCpp.findFromManifest_1(t,!1,r,e)}async function getManifest(){try{return await getManifestFromRepo()}catch(t){setupCpp.coreExports.debug("Fetching the manifest via the API failed."),t instanceof Error&&setupCpp.coreExports.debug(t.message)}return await getManifestFromURL()}function getManifestFromRepo(){return setupCpp.coreExports.debug(`Getting manifest from ${MANIFEST_REPO_OWNER}/${MANIFEST_REPO_NAME}@${MANIFEST_REPO_BRANCH}`),setupCpp.getManifestFromRepo_1(MANIFEST_REPO_OWNER,MANIFEST_REPO_NAME,AUTH,MANIFEST_REPO_BRANCH)}async function getManifestFromURL(){setupCpp.coreExports.debug("Falling back to fetching the manifest using raw URL.");const t=new setupCpp.HttpClient("tool-cache"),e=await t.getJson(MANIFEST_URL);if(!e.result)throw Error("Unable to get manifest from "+MANIFEST_URL);return e.result}async function installPython(t){const e={cwd:t,env:{...process.env,...IS_LINUX&&{LD_LIBRARY_PATH:path__namespace.join(t,"lib")}},silent:!0,listeners:{stdout:t=>{setupCpp.coreExports.info((""+t).trim())},stderr:t=>{setupCpp.coreExports.error((""+t).trim())}}};IS_WINDOWS?await setupCpp.exec_2("powershell",["./setup.ps1"],e):await setupCpp.exec_2("bash",["./setup.sh"],e)}async function installCpythonFromRelease(t){const e=t.files[0].download_url;setupCpp.coreExports.info(`Download from "${e}"`);let r="";try{const t=getDownloadFileName(e);let s;r=await setupCpp.downloadTool_1(e,t,AUTH),setupCpp.coreExports.info("Extract downloaded archive"),s=IS_WINDOWS?await setupCpp.extractZip_1(r):await setupCpp.extractTar_1(r),setupCpp.coreExports.info("Execute installation script"),await installPython(s)}catch(s){throw s instanceof setupCpp.HTTPError_1&&(setupCpp.coreExports.info(403===s.httpStatusCode||429===s.httpStatusCode?`Received HTTP status code ${s.httpStatusCode}. This usually indicates the rate limit has been exceeded`:s.message),s.stack&&setupCpp.coreExports.debug(s.stack)),s}}function binDir(t){return path__namespace.join(t,IS_WINDOWS?"Scripts":"bin")}async function useCpythonVersion(t,e,r,s,i){let n=pythonVersionToSemantic(desugarDevVersion(t));setupCpp.coreExports.debug(`Semantic version spec of ${t} is ${n}`);let a=setupCpp.find_1("Python",n,e);if(!a){setupCpp.coreExports.info(`Version ${n} was not found in the local cache`);const t=await findReleaseFromManifest(n,e,null);t&&t.files&&t.files.length>0&&(setupCpp.coreExports.info(`Version ${n} is available for downloading`),await installCpythonFromRelease(t),a=setupCpp.find_1("Python",n,e))}if(!a){const r=await getOSInfo();throw Error([`The version '${t}' with architecture '${e}' was not found for ${r?`${r.osName} ${r.osVersion}`:"this operating system"}.`,"The list of all available versions can be found here: "+MANIFEST_URL].join(os__namespace.EOL))}const o=binDir(a),h=path__namespace.join(IS_WINDOWS?a:o,"python"+(IS_WINDOWS?".exe":""));if(setupCpp.coreExports.exportVariable("pythonLocation",a),setupCpp.coreExports.exportVariable("PKG_CONFIG_PATH",a+"/lib/pkgconfig"),setupCpp.coreExports.exportVariable("pythonLocation",a),setupCpp.coreExports.exportVariable("Python_ROOT_DIR",a),setupCpp.coreExports.exportVariable("Python2_ROOT_DIR",a),setupCpp.coreExports.exportVariable("Python3_ROOT_DIR",a),setupCpp.coreExports.exportVariable("PKG_CONFIG_PATH",a+"/lib/pkgconfig"),IS_LINUX){const t=process.env.LD_LIBRARY_PATH?":"+process.env.LD_LIBRARY_PATH:"",e=path__namespace.join(a,"lib");t.split(":").includes(e)||setupCpp.coreExports.exportVariable("LD_LIBRARY_PATH",e+t)}if(setupCpp.coreExports.addPath(a),setupCpp.coreExports.addPath(o),IS_WINDOWS){const t=path__namespace.basename(path__namespace.dirname(a)),e=setupCpp.semver.major(t),r=setupCpp.semver.minor(t),s=path__namespace.join(process.env.APPDATA||"","Python",`Python${e}${r}`,"Scripts");setupCpp.coreExports.addPath(s)}const c=versionFromPath(a);return setupCpp.coreExports.setOutput("python-version",c),setupCpp.coreExports.setOutput("python-path",h),{impl:"CPython",version:c}}function desugarDevVersion(t){return t.replace(/^(\d+)\.(\d+)-dev$/,"~$1.$2.0-0")}function versionFromPath(t){const e=t.split(path__namespace.sep),r=e.findIndex((t=>"PyPy"===t||"Python"===t));return e[r+1]||""}function pythonVersionToSemantic(t,e){return t.replace(/(\d+\.\d+\.\d+)((?:a|b|rc)\d*)/g,"$1-$2")}function isPyPyVersion(t){return t.startsWith("pypy")}async function setupActionsPython(t,e,r){var s;IS_MAC&&(process.env.AGENT_TOOLSDIRECTORY="/Users/runner/hostedtoolcache");const i=null==(s=process.env.AGENT_TOOLSDIRECTORY)?void 0:s.trim();if("string"==typeof i&&""!==i&&(process.env.RUNNER_TOOL_CACHE=process.env.AGENT_TOOLSDIRECTORY),setupCpp.coreExports.debug("Python is expected to be installed into "+process.env.RUNNER_TOOL_CACHE),t){let e;if(isPyPyVersion(t)){const s=await findPyPyVersion(t,r,!0,checkLatest,!1);e=`${s.resolvedPyPyVersion}-${s.resolvedPythonVersion}`,setupCpp.info(`Successfully set up PyPy ${s.resolvedPyPyVersion} with Python (${s.resolvedPythonVersion})`)}else{const s=await useCpythonVersion(t,r);e=s.version,setupCpp.info(`Successfully set up ${s.impl} (${e})`)}}setupCpp.ciInfo.GITHUB_ACTIONS&&await addPythonLoggingMatcher()}async function addPythonLoggingMatcher(){const t=path.join(dirname,"python_matcher.json");if(!(await setupCpp.pathExists(t)))return setupCpp.warning("the python_matcher.json file does not exist in the same folder as setup-cpp.js");setupCpp.info("::add-matcher::"+t)}Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const path=require("path"),require$$1=require("url"),setupCpp=require("../setup-cpp.js"),fs=require("fs"),require$$0=require("stream"),os=require("os");require("crypto"),require("http"),require("https"),require("net"),require("tls"),require("events"),require("util"),require("buffer"),require("process"),require("child_process"),require("assert"),require("string_decoder"),require("timers"),require("console");var _documentCurrentScript="undefined"!=typeof document?document.currentScript:null;const path__namespace=_interopNamespaceDefault(path),os__namespace=_interopNamespaceDefault(os);var parse={exports:{}},tomlParser={exports:{}};const ParserEND=1114112;class ParserError extends Error{constructor(t,e,r){super("[ParserError] "+t,e,r),this.name="ParserError",this.code="ParserError",Error.captureStackTrace&&Error.captureStackTrace(this,ParserError)}}class State{constructor(t){this.parser=t,this.buf="",this.returned=null,this.result=null,this.resultTable=null,this.resultArr=null}}class Parser{constructor(){this.pos=0,this.col=0,this.line=0,this.obj={},this.ctx=this.obj,this.stack=[],this._buf="",this.char=null,this.ii=0,this.state=new State(this.parseStart)}parse(t){if(0===t.length||null==t.length)return;let e;for(this._buf=t+"",this.ii=-1,this.char=-1;!1===e||this.nextChar();)e=this.runOne();this._buf=null}nextChar(){return 10===this.char&&(++this.line,this.col=-1),++this.ii,this.char=this._buf.codePointAt(this.ii),++this.pos,++this.col,this.haveBuffer()}haveBuffer(){return this._buf.length>this.ii}runOne(){return this.state.parser.call(this,this.state.returned)}finish(){let t;this.char=ParserEND;do{t=this.state.parser,this.runOne()}while(this.state.parser!==t);return this.ctx=null,this.state=null,this._buf=null,this.obj}next(t){if("function"!=typeof t)throw new ParserError("Tried to set state to non-existent state: "+JSON.stringify(t));this.state.parser=t}goto(t){return this.next(t),this.runOne()}call(t,e){e&&this.next(e),this.stack.push(this.state),this.state=new State(t)}callNow(t,e){return this.call(t,e),this.runOne()}return(t){if(0===this.stack.length)throw this.error(new ParserError("Stack underflow"));void 0===t&&(t=this.state.buf),this.state=this.stack.pop(),this.state.returned=t}returnNow(t){return this.return(t),this.runOne()}consume(){if(this.char===ParserEND)throw this.error(new ParserError("Unexpected end-of-buffer"));this.state.buf+=this._buf[this.ii]}error(t){return t.line=this.line,t.col=this.col,t.pos=this.pos,t}parseStart(){throw new ParserError("Must declare a parseStart method")}}Parser.END=ParserEND,Parser.Error=ParserError;var parser=Parser,createDatetime=t=>{const e=new Date(t);if(isNaN(e))throw new TypeError("Invalid Datetime");return e},formatNum=(t,e)=>{for(e+="";t>e.length;)e="0"+e;return e};const f$2=formatNum;class FloatingDateTime extends Date{constructor(t){super(t+"Z"),this.isFloating=!0}toISOString(){return`${this.getUTCFullYear()}-${f$2(2,this.getUTCMonth()+1)}-${f$2(2,this.getUTCDate())}T${f$2(2,this.getUTCHours())}:${f$2(2,this.getUTCMinutes())}:${f$2(2,this.getUTCSeconds())}.${f$2(3,this.getUTCMilliseconds())}`}}var createDatetimeFloat=t=>{const e=new FloatingDateTime(t);if(isNaN(e))throw new TypeError("Invalid Datetime");return e};const f$1=formatNum,DateTime=setupCpp.commonjsGlobal.Date;let Date$1=class extends DateTime{constructor(t){super(t),this.isDate=!0}toISOString(){return`${this.getUTCFullYear()}-${f$1(2,this.getUTCMonth()+1)}-${f$1(2,this.getUTCDate())}`}};var createDate$1=t=>{const e=new Date$1(t);if(isNaN(e))throw new TypeError("Invalid Datetime");return e};const f=formatNum;class Time extends Date{constructor(t){super(`0000-01-01T${t}Z`),this.isTime=!0}toISOString(){return`${f(2,this.getUTCHours())}:${f(2,this.getUTCMinutes())}:${f(2,this.getUTCSeconds())}.${f(3,this.getUTCMilliseconds())}`}}var createTime$1=t=>{const e=new Time(t);if(isNaN(e))throw new TypeError("Invalid Datetime");return e};tomlParser.exports=makeParserClass(parser),tomlParser.exports.makeParserClass=makeParserClass;class TomlError extends Error{constructor(t){super(t),this.name="TomlError",Error.captureStackTrace&&Error.captureStackTrace(this,TomlError),this.fromTOML=!0,this.wrapped=null}}TomlError.wrap=t=>{const e=new TomlError(t.message);return e.code=t.code,e.wrapped=t,e},tomlParser.exports.TomlError=TomlError;const createDateTime=createDatetime,createDateTimeFloat=createDatetimeFloat,createDate=createDate$1,createTime=createTime$1,CTRL_I=9,CTRL_J=10,CTRL_M=13,CTRL_CHAR_BOUNDARY=31,CHAR_SP=32,CHAR_QUOT=34,CHAR_NUM=35,CHAR_APOS=39,CHAR_PLUS=43,CHAR_COMMA=44,CHAR_HYPHEN=45,CHAR_PERIOD=46,CHAR_0=48,CHAR_1=49,CHAR_7=55,CHAR_9=57,CHAR_COLON=58,CHAR_EQUALS=61,CHAR_A=65,CHAR_E=69,CHAR_F=70,CHAR_T=84,CHAR_U=85,CHAR_Z=90,CHAR_LOWBAR=95,CHAR_a=97,CHAR_b=98,CHAR_e=101,CHAR_f=102,CHAR_i=105,CHAR_l=108,CHAR_n=110,CHAR_o=111,CHAR_r=114,CHAR_s=115,CHAR_t=116,CHAR_u=117,CHAR_x=120,CHAR_z=122,CHAR_LCUB=123,CHAR_RCUB=125,CHAR_LSQB=91,CHAR_BSOL=92,CHAR_RSQB=93,CHAR_DEL=127,SURROGATE_FIRST=55296,SURROGATE_LAST=57343,escapes={[CHAR_b]:"\b",[CHAR_t]:"\t",[CHAR_n]:"\n",[CHAR_f]:"\f",[CHAR_r]:"\r",[CHAR_QUOT]:'"',[CHAR_BSOL]:"\\"},_type=Symbol(),_declared=Symbol(),hasOwnProperty={}.hasOwnProperty,defineProperty=Object.defineProperty,descriptor={configurable:!0,enumerable:!0,writable:!0,value:void 0},INLINE_TABLE=Symbol(),TABLE=Symbol(),_contentType=Symbol(),INLINE_LIST=Symbol(),LIST=Symbol();let _custom;try{const utilInspect=eval("require('util').inspect");_custom=utilInspect.custom}catch(_){}const _inspect=_custom||"inspect";class BoxedBigInt{constructor(t){try{this.value=setupCpp.commonjsGlobal.BigInt.asIntN(64,t)}catch(_){this.value=null}Object.defineProperty(this,_type,{value:INTEGER})}isNaN(){return null===this.value}toString(){return this.value+""}[_inspect](){return`[BigInt: ${""+this}]}`}valueOf(){return this.value}}const INTEGER=Symbol(),FLOAT=Symbol();var tomlParserExports=tomlParser.exports,parsePrettyError=prettyError$2,parseString_1=parseString;const TOMLParser$2=tomlParserExports,prettyError$1=parsePrettyError;var parseAsync_1=parseAsync;const TOMLParser$1=tomlParserExports,prettyError=parsePrettyError;var parseStream_1=parseStream;const stream=require$$0,TOMLParser=tomlParserExports;parse.exports=parseString_1,parse.exports.async=parseAsync_1,parse.exports.stream=parseStream_1,parse.exports.prettyError=parsePrettyError;var stringify$1={exports:{}};stringify$1.exports=stringify,stringify$1.exports.value=stringifyInline;const IS_WINDOWS="win32"===process.platform,IS_LINUX="linux"===process.platform,IS_MAC="darwin"===process.platform,WINDOWS_ARCHS=["x86","x64"],WINDOWS_PLATFORMS=["win32","win64"],PYPY_VERSION_FILE="PYPY_VERSION",TOKEN=setupCpp.coreExports.getInput("token"),AUTH=TOKEN?"token "+TOKEN:void 0,MANIFEST_REPO_OWNER="actions",MANIFEST_REPO_NAME="python-versions",MANIFEST_REPO_BRANCH="main",MANIFEST_URL=`https://raw.githubusercontent.com/${MANIFEST_REPO_OWNER}/${MANIFEST_REPO_NAME}/${MANIFEST_REPO_BRANCH}/versions-manifest.json`,dirname="string"==typeof __dirname?__dirname:path.dirname(require$$1.fileURLToPath("undefined"==typeof document?require("url").pathToFileURL(__filename).href:_documentCurrentScript&&_documentCurrentScript.src||new URL("assets/actions_python-B7InDb2U.js",document.baseURI).href)),checkLatest=!1;exports.setupActionsPython=setupActionsPython;
|
|
//# sourceMappingURL=actions_python-B7InDb2U.js.map
|