2020-01-05 11:04:24 +00:00
module . exports =
/******/ ( function ( modules , runtime ) { // webpackBootstrap
/******/ "use strict" ;
/******/ // The module cache
/******/ var installedModules = { } ;
/******/
/******/ // The require function
/******/ function _ _webpack _require _ _ ( moduleId ) {
/******/
/******/ // Check if module is in cache
/******/ if ( installedModules [ moduleId ] ) {
/******/ return installedModules [ moduleId ] . exports ;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules [ moduleId ] = {
/******/ i : moduleId ,
/******/ l : false ,
/******/ exports : { }
/******/ } ;
/******/
/******/ // Execute the module function
/******/ modules [ moduleId ] . call ( module . exports , module , module . exports , _ _webpack _require _ _ ) ;
/******/
/******/ // Flag the module as loaded
/******/ module . l = true ;
/******/
/******/ // Return the exports of the module
/******/ return module . exports ;
/******/ }
/******/
/******/
/******/ _ _webpack _require _ _ . ab = _ _dirname + "/" ;
/******/
/******/ // the startup function
/******/ function startup ( ) {
/******/ // Load entry module and return exports
/******/ return _ _webpack _require _ _ ( 198 ) ;
/******/ } ;
/******/
/******/ // run startup
/******/ return startup ( ) ;
/******/ } )
/************************************************************************/
/******/ ( {
2020-01-06 11:03:18 +00:00
/***/ 16 :
/***/ ( function ( module ) {
module . exports = require ( "tls" ) ;
/***/ } ) ,
/***/ 87 :
/***/ ( function ( module ) {
module . exports = require ( "os" ) ;
/***/ } ) ,
/***/ 141 :
/***/ ( function ( _ _unusedmodule , exports , _ _webpack _require _ _ ) {
2020-01-06 10:37:12 +00:00
"use strict" ;
2020-01-06 11:03:18 +00:00
var net = _ _webpack _require _ _ ( 631 ) ;
var tls = _ _webpack _require _ _ ( 16 ) ;
var http = _ _webpack _require _ _ ( 605 ) ;
var https = _ _webpack _require _ _ ( 211 ) ;
var events = _ _webpack _require _ _ ( 614 ) ;
var assert = _ _webpack _require _ _ ( 357 ) ;
var util = _ _webpack _require _ _ ( 669 ) ;
exports . httpOverHttp = httpOverHttp ;
exports . httpsOverHttp = httpsOverHttp ;
exports . httpOverHttps = httpOverHttps ;
exports . httpsOverHttps = httpsOverHttps ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
function httpOverHttp ( options ) {
var agent = new TunnelingAgent ( options ) ;
agent . request = http . request ;
return agent ;
}
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
function httpsOverHttp ( options ) {
var agent = new TunnelingAgent ( options ) ;
agent . request = http . request ;
agent . createSocket = createSecureSocket ;
return agent ;
}
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
function httpOverHttps ( options ) {
var agent = new TunnelingAgent ( options ) ;
agent . request = https . request ;
return agent ;
}
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
function httpsOverHttps ( options ) {
var agent = new TunnelingAgent ( options ) ;
agent . request = https . request ;
agent . createSocket = createSecureSocket ;
return agent ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
function TunnelingAgent ( options ) {
var self = this ;
self . options = options || { } ;
self . proxyOptions = self . options . proxy || { } ;
self . maxSockets = self . options . maxSockets || http . Agent . defaultMaxSockets ;
self . requests = [ ] ;
self . sockets = [ ] ;
self . on ( 'free' , function onFree ( socket , host , port , localAddress ) {
var options = 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 ;
2020-01-06 10:37:12 +00:00
}
}
2020-01-06 11:03:18 +00:00
socket . destroy ( ) ;
self . removeSocket ( socket ) ;
} ) ;
}
util . inherits ( TunnelingAgent , events . EventEmitter ) ;
TunnelingAgent . prototype . addRequest = function addRequest ( req , host , port , localAddress ) {
var self = this ;
var options = mergeOptions ( { request : req } , self . options , 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 ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
// 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 ) ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
function onCloseOrRemove ( err ) {
self . removeSocket ( socket ) ;
socket . removeListener ( 'free' , onFree ) ;
socket . removeListener ( 'close' , onCloseOrRemove ) ;
socket . removeListener ( 'agentRemove' , onCloseOrRemove ) ;
2020-01-06 10:37:12 +00:00
}
} ) ;
} ;
2020-01-06 11:03:18 +00:00
TunnelingAgent . prototype . createSocket = function createSocket ( options , cb ) {
var self = this ;
var placeholder = { } ;
self . sockets . push ( placeholder ) ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var connectOptions = mergeOptions ( { } , self . proxyOptions , {
method : 'CONNECT' ,
path : options . host + ':' + options . port ,
agent : false
2020-01-06 10:37:12 +00:00
} ) ;
2020-01-06 11:03:18 +00:00
if ( connectOptions . proxyAuth ) {
connectOptions . headers = connectOptions . headers || { } ;
connectOptions . headers [ 'Proxy-Authorization' ] = 'Basic ' +
new Buffer ( connectOptions . proxyAuth ) . toString ( 'base64' ) ;
}
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
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 ( ) ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
function onResponse ( res ) {
// Very hacky. This is necessary to avoid http-parser leaks.
res . upgrade = true ;
}
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
function onUpgrade ( res , socket , head ) {
// Hacky.
process . nextTick ( function ( ) {
onConnect ( res , socket , head ) ;
} ) ;
}
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
function onConnect ( res , socket , head ) {
connectReq . removeAllListeners ( ) ;
socket . removeAllListeners ( ) ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
if ( res . statusCode === 200 ) {
assert . equal ( head . length , 0 ) ;
debug ( 'tunneling connection has established' ) ;
self . sockets [ self . sockets . indexOf ( placeholder ) ] = socket ;
cb ( socket ) ;
} else {
debug ( 'tunneling socket could not be established, statusCode=%d' ,
res . statusCode ) ;
var error = new Error ( 'tunneling socket could not be established, ' +
'statusCode=' + res . statusCode ) ;
error . code = 'ECONNRESET' ;
options . request . emit ( 'error' , error ) ;
self . removeSocket ( placeholder ) ;
}
}
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
function onError ( cause ) {
connectReq . removeAllListeners ( ) ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
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 ) ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
} ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
TunnelingAgent . prototype . removeSocket = function removeSocket ( socket ) {
var pos = this . sockets . indexOf ( socket )
if ( pos === - 1 ) {
return ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
this . sockets . splice ( pos , 1 ) ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
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 ) ;
} ) ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
} ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
function createSecureSocket ( options , cb ) {
var self = this ;
TunnelingAgent . prototype . createSocket . call ( self , options , function ( socket ) {
var hostHeader = options . request . getHeader ( 'host' ) ;
var tlsOptions = mergeOptions ( { } , self . options , {
socket : socket ,
servername : hostHeader ? hostHeader . replace ( /:.*$/ , '' ) : options . host
} ) ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
// 0 is dummy port for v0.6
var secureSocket = tls . connect ( 0 , tlsOptions ) ;
self . sockets [ self . sockets . indexOf ( socket ) ] = secureSocket ;
cb ( secureSocket ) ;
} ) ;
}
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
function toOptions ( host , port , localAddress ) {
if ( typeof host === 'string' ) { // since v0.10
return {
host : host ,
port : port ,
localAddress : localAddress
} ;
}
return host ; // for v0.11 or later
}
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
function 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 ] ;
}
}
}
}
return target ;
}
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var debug ;
if ( process . env . NODE _DEBUG && /\btunnel\b/ . test ( process . env . NODE _DEBUG ) ) {
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 {
debug = function ( ) { } ;
}
exports . debug = debug ; // for test
2020-01-05 11:04:24 +00:00
2020-01-06 10:37:12 +00:00
/***/ } ) ,
2020-01-06 11:03:18 +00:00
/***/ 198 :
/***/ ( function ( _ _unusedmodule , exports , _ _webpack _require _ _ ) {
2020-01-05 11:04:24 +00:00
"use strict" ;
var _ _awaiter = ( this && this . _ _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 _ _importStar = ( this && this . _ _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 ( exports , "__esModule" , { value : true } ) ;
2020-01-06 10:37:12 +00:00
const path = _ _importStar ( _ _webpack _require _ _ ( 622 ) ) ;
2020-01-05 11:04:24 +00:00
const core = _ _importStar ( _ _webpack _require _ _ ( 470 ) ) ;
2020-01-06 10:37:12 +00:00
const validate = _ _importStar ( _ _webpack _require _ _ ( 474 ) ) ;
2020-01-05 11:04:24 +00:00
function run ( ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
try {
2020-01-11 14:35:28 +00:00
const result = yield validate . findInvalidWrapperJars ( path . resolve ( '.' ) , + core . getInput ( 'min-wrapper-count' ) , core . getInput ( 'allow-snapshots' ) === 'true' , core . getInput ( 'allow-checksums' ) . split ( ',' ) ) ;
if ( result . isValid ( ) ) {
core . info ( result . toDisplayString ( ) ) ;
}
else {
2020-01-16 09:07:36 +00:00
core . setFailed ( ` Gradle Wrapper Validation Failed! \n See https://github.com/gradle/wrapper-validation-action#reporting-failures \n ${ result . toDisplayString ( ) } ` ) ;
2020-01-06 10:37:12 +00:00
}
2020-01-05 11:04:24 +00:00
}
catch ( error ) {
core . setFailed ( error . message ) ;
}
} ) ;
}
2020-01-06 10:37:12 +00:00
exports . run = run ;
2020-01-05 11:04:24 +00:00
run ( ) ;
/***/ } ) ,
2020-01-06 10:37:12 +00:00
/***/ 211 :
/***/ ( function ( module ) {
module . exports = require ( "https" ) ;
2020-01-15 16:39:59 +00:00
/***/ } ) ,
/***/ 213 :
/***/ ( function ( module , _ _unusedexports , _ _webpack _require _ _ ) {
"use strict" ;
var data = _ _webpack _require _ _ ( 588 ) ;
function escapeRegexp ( str ) {
return str . replace ( /([.?*+^$[\]\\(){}|-])/g , '\\$1' ) ;
}
var REPLACE _RE = RegExp ( Object . keys ( data ) . map ( escapeRegexp ) . join ( '|' ) , 'g' ) ;
function replace _fn ( match ) {
return data [ match ] ;
}
function unhomoglyph ( str ) {
return str . replace ( REPLACE _RE , replace _fn ) ;
}
module . exports = unhomoglyph ;
2020-01-06 10:37:12 +00:00
/***/ } ) ,
/***/ 339 :
/***/ ( function ( module , _ _unusedexports , _ _webpack _require _ _ ) {
2020-01-05 11:04:24 +00:00
2020-01-06 10:37:12 +00:00
"use strict" ;
2020-01-05 11:04:24 +00:00
2020-01-06 10:37:12 +00:00
var utils = _ _webpack _require _ _ ( 640 ) ;
var has = Object . prototype . hasOwnProperty ;
var isArray = Array . isArray ;
var defaults = {
allowDots : false ,
allowPrototypes : false ,
arrayLimit : 20 ,
charset : 'utf-8' ,
charsetSentinel : false ,
comma : false ,
decoder : utils . decode ,
delimiter : '&' ,
depth : 5 ,
ignoreQueryPrefix : false ,
interpretNumericEntities : false ,
parameterLimit : 1000 ,
parseArrays : true ,
plainObjects : false ,
strictNullHandling : false
} ;
var interpretNumericEntities = function ( str ) {
return str . replace ( /&#(\d+);/g , function ( $0 , numberStr ) {
return String . fromCharCode ( parseInt ( numberStr , 10 ) ) ;
} ) ;
} ;
// This is what browsers will submit when the ✓ character occurs in an
// application/x-www-form-urlencoded body and the encoding of the page containing
// the form is iso-8859-1, or when the submitted form has an accept-charset
// attribute of iso-8859-1. Presumably also with other charsets that do not contain
// the ✓ character, such as us-ascii.
var isoSentinel = 'utf8=%26%2310003%3B' ; // encodeURIComponent('✓')
// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.
var charsetSentinel = 'utf8=%E2%9C%93' ; // encodeURIComponent('✓')
var parseValues = function parseQueryStringValues ( str , options ) {
var obj = { } ;
var cleanStr = options . ignoreQueryPrefix ? str . replace ( /^\?/ , '' ) : str ;
var limit = options . parameterLimit === Infinity ? undefined : options . parameterLimit ;
var parts = cleanStr . split ( options . delimiter , limit ) ;
var skipIndex = - 1 ; // Keep track of where the utf8 sentinel was found
var i ;
var charset = options . charset ;
if ( options . charsetSentinel ) {
for ( i = 0 ; i < parts . length ; ++ i ) {
if ( parts [ i ] . indexOf ( 'utf8=' ) === 0 ) {
if ( parts [ i ] === charsetSentinel ) {
charset = 'utf-8' ;
} else if ( parts [ i ] === isoSentinel ) {
charset = 'iso-8859-1' ;
}
skipIndex = i ;
i = parts . length ; // The eslint settings do not allow break;
}
}
}
for ( i = 0 ; i < parts . length ; ++ i ) {
if ( i === skipIndex ) {
continue ;
}
var part = parts [ i ] ;
var bracketEqualsPos = part . indexOf ( ']=' ) ;
var pos = bracketEqualsPos === - 1 ? part . indexOf ( '=' ) : bracketEqualsPos + 1 ;
var key , val ;
if ( pos === - 1 ) {
key = options . decoder ( part , defaults . decoder , charset , 'key' ) ;
val = options . strictNullHandling ? null : '' ;
} else {
key = options . decoder ( part . slice ( 0 , pos ) , defaults . decoder , charset , 'key' ) ;
val = options . decoder ( part . slice ( pos + 1 ) , defaults . decoder , charset , 'value' ) ;
}
if ( val && options . interpretNumericEntities && charset === 'iso-8859-1' ) {
val = interpretNumericEntities ( val ) ;
}
if ( val && typeof val === 'string' && options . comma && val . indexOf ( ',' ) > - 1 ) {
val = val . split ( ',' ) ;
}
if ( part . indexOf ( '[]=' ) > - 1 ) {
val = isArray ( val ) ? [ val ] : val ;
}
if ( has . call ( obj , key ) ) {
obj [ key ] = utils . combine ( obj [ key ] , val ) ;
} else {
obj [ key ] = val ;
}
}
return obj ;
} ;
var parseObject = function ( chain , val , options ) {
var leaf = val ;
for ( var i = chain . length - 1 ; i >= 0 ; -- i ) {
var obj ;
var root = chain [ i ] ;
if ( root === '[]' && options . parseArrays ) {
obj = [ ] . concat ( leaf ) ;
} else {
obj = options . plainObjects ? Object . create ( null ) : { } ;
var cleanRoot = root . charAt ( 0 ) === '[' && root . charAt ( root . length - 1 ) === ']' ? root . slice ( 1 , - 1 ) : root ;
var index = parseInt ( cleanRoot , 10 ) ;
if ( ! options . parseArrays && cleanRoot === '' ) {
obj = { 0 : leaf } ;
} else if (
! isNaN ( index )
&& root !== cleanRoot
&& String ( index ) === cleanRoot
&& index >= 0
&& ( options . parseArrays && index <= options . arrayLimit )
) {
obj = [ ] ;
obj [ index ] = leaf ;
} else {
obj [ cleanRoot ] = leaf ;
}
}
leaf = obj ;
}
return leaf ;
} ;
var parseKeys = function parseQueryStringKeys ( givenKey , val , options ) {
if ( ! givenKey ) {
return ;
}
// Transform dot notation to bracket notation
var key = options . allowDots ? givenKey . replace ( /\.([^.[]+)/g , '[$1]' ) : givenKey ;
// The regex chunks
var brackets = /(\[[^[\]]*])/ ;
var child = /(\[[^[\]]*])/g ;
// Get the parent
var segment = options . depth > 0 && brackets . exec ( key ) ;
var parent = segment ? key . slice ( 0 , segment . index ) : key ;
// Stash the parent if it exists
var keys = [ ] ;
if ( parent ) {
// If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties
if ( ! options . plainObjects && has . call ( Object . prototype , parent ) ) {
if ( ! options . allowPrototypes ) {
return ;
}
}
keys . push ( parent ) ;
}
// Loop through children appending to the array until we hit depth
var i = 0 ;
while ( options . depth > 0 && ( segment = child . exec ( key ) ) !== null && i < options . depth ) {
i += 1 ;
if ( ! options . plainObjects && has . call ( Object . prototype , segment [ 1 ] . slice ( 1 , - 1 ) ) ) {
if ( ! options . allowPrototypes ) {
return ;
}
}
keys . push ( segment [ 1 ] ) ;
}
// If there's a remainder, just add whatever is left
if ( segment ) {
keys . push ( '[' + key . slice ( segment . index ) + ']' ) ;
}
return parseObject ( keys , val , options ) ;
} ;
var normalizeParseOptions = function normalizeParseOptions ( opts ) {
if ( ! opts ) {
return defaults ;
}
if ( opts . decoder !== null && opts . decoder !== undefined && typeof opts . decoder !== 'function' ) {
throw new TypeError ( 'Decoder has to be a function.' ) ;
}
if ( typeof opts . charset !== 'undefined' && opts . charset !== 'utf-8' && opts . charset !== 'iso-8859-1' ) {
throw new Error ( 'The charset option must be either utf-8, iso-8859-1, or undefined' ) ;
}
var charset = typeof opts . charset === 'undefined' ? defaults . charset : opts . charset ;
return {
allowDots : typeof opts . allowDots === 'undefined' ? defaults . allowDots : ! ! opts . allowDots ,
allowPrototypes : typeof opts . allowPrototypes === 'boolean' ? opts . allowPrototypes : defaults . allowPrototypes ,
arrayLimit : typeof opts . arrayLimit === 'number' ? opts . arrayLimit : defaults . arrayLimit ,
charset : charset ,
charsetSentinel : typeof opts . charsetSentinel === 'boolean' ? opts . charsetSentinel : defaults . charsetSentinel ,
comma : typeof opts . comma === 'boolean' ? opts . comma : defaults . comma ,
decoder : typeof opts . decoder === 'function' ? opts . decoder : defaults . decoder ,
delimiter : typeof opts . delimiter === 'string' || utils . isRegExp ( opts . delimiter ) ? opts . delimiter : defaults . delimiter ,
// eslint-disable-next-line no-implicit-coercion, no-extra-parens
depth : ( typeof opts . depth === 'number' || opts . depth === false ) ? + opts . depth : defaults . depth ,
ignoreQueryPrefix : opts . ignoreQueryPrefix === true ,
interpretNumericEntities : typeof opts . interpretNumericEntities === 'boolean' ? opts . interpretNumericEntities : defaults . interpretNumericEntities ,
parameterLimit : typeof opts . parameterLimit === 'number' ? opts . parameterLimit : defaults . parameterLimit ,
parseArrays : opts . parseArrays !== false ,
plainObjects : typeof opts . plainObjects === 'boolean' ? opts . plainObjects : defaults . plainObjects ,
strictNullHandling : typeof opts . strictNullHandling === 'boolean' ? opts . strictNullHandling : defaults . strictNullHandling
} ;
} ;
module . exports = function ( str , opts ) {
var options = normalizeParseOptions ( opts ) ;
if ( str === '' || str === null || typeof str === 'undefined' ) {
return options . plainObjects ? Object . create ( null ) : { } ;
}
var tempObj = typeof str === 'string' ? parseValues ( str , options ) : str ;
var obj = options . plainObjects ? Object . create ( null ) : { } ;
// Iterate over the keys and setup the new object
var keys = Object . keys ( tempObj ) ;
for ( var i = 0 ; i < keys . length ; ++ i ) {
var key = keys [ i ] ;
var newObj = parseKeys ( key , tempObj [ key ] , options ) ;
obj = utils . merge ( obj , newObj , options ) ;
}
return utils . compact ( obj ) ;
} ;
/***/ } ) ,
/***/ 357 :
/***/ ( function ( module ) {
module . exports = require ( "assert" ) ;
/***/ } ) ,
/***/ 413 :
/***/ ( function ( module , _ _unusedexports , _ _webpack _require _ _ ) {
2020-01-06 11:03:18 +00:00
module . exports = _ _webpack _require _ _ ( 141 ) ;
2020-01-06 10:37:12 +00:00
/***/ } ) ,
/***/ 417 :
/***/ ( function ( module ) {
module . exports = require ( "crypto" ) ;
/***/ } ) ,
/***/ 431 :
/***/ ( function ( _ _unusedmodule , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
const os = _ _webpack _require _ _ ( 87 ) ;
/ * *
* Commands
*
* Command Format :
* # # [ name key = value ; key = value ] message
*
* Examples :
* # # [ warning ] This is the user warning message
* # # [ set - secret name = mypassword ] definitelyNotAPassword !
* /
function issueCommand ( command , properties , message ) {
const cmd = new Command ( command , properties , message ) ;
process . stdout . write ( cmd . toString ( ) + os . EOL ) ;
}
exports . issueCommand = issueCommand ;
function issue ( name , message = '' ) {
issueCommand ( name , { } , message ) ;
}
exports . issue = issue ;
const CMD _STRING = '::' ;
class Command {
constructor ( command , properties , message ) {
if ( ! command ) {
command = 'missing.command' ;
}
this . command = command ;
this . properties = properties ;
this . message = message ;
}
toString ( ) {
let cmdStr = CMD _STRING + this . command ;
if ( this . properties && Object . keys ( this . properties ) . length > 0 ) {
cmdStr += ' ' ;
for ( const key in this . properties ) {
if ( this . properties . hasOwnProperty ( key ) ) {
const val = this . properties [ key ] ;
if ( val ) {
// safely append the val - avoid blowing up when attempting to
// call .replace() if message is not a string for some reason
cmdStr += ` ${ key } = ${ escape ( ` ${ val || '' } ` ) } , ` ;
}
}
}
}
cmdStr += CMD _STRING ;
// safely append the message - avoid blowing up when attempting to
// call .replace() if message is not a string for some reason
const message = ` ${ this . message || '' } ` ;
cmdStr += escapeData ( message ) ;
return cmdStr ;
}
}
function escapeData ( s ) {
return s . replace ( /\r/g , '%0D' ) . replace ( /\n/g , '%0A' ) ;
}
function escape ( s ) {
return s
. replace ( /\r/g , '%0D' )
. replace ( /\n/g , '%0A' )
. replace ( /]/g , '%5D' )
. replace ( /;/g , '%3B' ) ;
}
//# sourceMappingURL=command.js.map
/***/ } ) ,
/***/ 470 :
/***/ ( function ( _ _unusedmodule , exports , _ _webpack _require _ _ ) {
"use strict" ;
var _ _awaiter = ( this && this . _ _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 ( exports , "__esModule" , { value : true } ) ;
const command _1 = _ _webpack _require _ _ ( 431 ) ;
const os = _ _webpack _require _ _ ( 87 ) ;
const path = _ _webpack _require _ _ ( 622 ) ;
/ * *
* The code to exit an action
* /
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" ;
} ) ( ExitCode = exports . ExitCode || ( 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
* /
function exportVariable ( name , val ) {
process . env [ name ] = val ;
command _1 . issueCommand ( 'set-env' , { name } , val ) ;
}
exports . exportVariable = exportVariable ;
/ * *
* Registers a secret which will get masked from logs
* @ param secret value of the secret
* /
function setSecret ( secret ) {
command _1 . issueCommand ( 'add-mask' , { } , secret ) ;
}
exports . setSecret = setSecret ;
/ * *
* Prepends inputPath to the PATH ( for this action and future actions )
* @ param inputPath
* /
function addPath ( inputPath ) {
command _1 . issueCommand ( 'add-path' , { } , inputPath ) ;
process . env [ 'PATH' ] = ` ${ inputPath } ${ path . delimiter } ${ process . env [ 'PATH' ] } ` ;
}
exports . addPath = 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 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 ( ) ;
}
exports . getInput = getInput ;
/ * *
* Sets the value of an output .
*
* @ param name name of the output to set
* @ param value value to store
* /
function setOutput ( name , value ) {
command _1 . issueCommand ( 'set-output' , { name } , value ) ;
}
exports . setOutput = setOutput ;
//-----------------------------------------------------------------------
// 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 setFailed ( message ) {
process . exitCode = ExitCode . Failure ;
error ( message ) ;
}
exports . setFailed = setFailed ;
//-----------------------------------------------------------------------
// Logging Commands
//-----------------------------------------------------------------------
/ * *
* Writes debug message to user log
* @ param message debug message
* /
function debug ( message ) {
command _1 . issueCommand ( 'debug' , { } , message ) ;
}
exports . debug = debug ;
/ * *
* Adds an error issue
* @ param message error issue message
* /
function error ( message ) {
command _1 . issue ( 'error' , message ) ;
}
exports . error = error ;
/ * *
* Adds an warning issue
* @ param message warning issue message
* /
function warning ( message ) {
command _1 . issue ( 'warning' , message ) ;
}
exports . warning = warning ;
/ * *
* Writes info to log with console . log .
* @ param message info message
* /
function info ( message ) {
process . stdout . write ( message + os . EOL ) ;
}
exports . info = 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 startGroup ( name ) {
command _1 . issue ( 'group' , name ) ;
}
exports . startGroup = startGroup ;
/ * *
* End an output group .
* /
function endGroup ( ) {
command _1 . issue ( 'endgroup' ) ;
}
exports . endGroup = 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 group ( name , fn ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
startGroup ( name ) ;
let result ;
try {
result = yield fn ( ) ;
}
finally {
endGroup ( ) ;
}
return result ;
} ) ;
}
exports . group = 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
* /
function saveState ( name , value ) {
command _1 . issueCommand ( 'save-state' , { name } , value ) ;
}
exports . saveState = 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 getState ( name ) {
return process . env [ ` STATE_ ${ name } ` ] || '' ;
}
exports . getState = getState ;
//# sourceMappingURL=core.js.map
/***/ } ) ,
/***/ 474 :
/***/ ( function ( _ _unusedmodule , exports , _ _webpack _require _ _ ) {
"use strict" ;
var _ _awaiter = ( this && this . _ _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 _ _importStar = ( this && this . _ _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 ( exports , "__esModule" , { value : true } ) ;
const find = _ _importStar ( _ _webpack _require _ _ ( 625 ) ) ;
const checksums = _ _importStar ( _ _webpack _require _ _ ( 762 ) ) ;
const hash = _ _importStar ( _ _webpack _require _ _ ( 652 ) ) ;
2020-01-10 16:54:22 +00:00
function findInvalidWrapperJars ( gitRepoRoot , minWrapperCount , allowSnapshots , allowChecksums ) {
2020-01-06 10:37:12 +00:00
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
const wrapperJars = yield find . findWrapperJars ( gitRepoRoot ) ;
2020-01-11 14:35:28 +00:00
const result = new ValidationResult ( [ ] , [ ] ) ;
2020-01-10 16:54:22 +00:00
if ( wrapperJars . length < minWrapperCount ) {
2020-01-11 14:35:28 +00:00
result . errors . push ( ` Expected to find at least ${ minWrapperCount } Gradle Wrapper JARs but got only ${ wrapperJars . length } ` ) ;
2020-01-10 16:54:22 +00:00
}
2020-01-06 10:37:12 +00:00
if ( wrapperJars . length > 0 ) {
const validChecksums = yield checksums . fetchValidChecksums ( allowSnapshots ) ;
2020-01-06 12:36:28 +00:00
validChecksums . push ( ... allowChecksums ) ;
2020-01-06 10:37:12 +00:00
for ( const wrapperJar of wrapperJars ) {
const sha = yield hash . sha256File ( wrapperJar ) ;
if ( ! validChecksums . includes ( sha ) ) {
2020-01-11 14:35:28 +00:00
result . invalid . push ( new WrapperJar ( wrapperJar , sha ) ) ;
}
else {
result . valid . push ( new WrapperJar ( wrapperJar , sha ) ) ;
2020-01-06 10:37:12 +00:00
}
}
}
2020-01-11 14:35:28 +00:00
return result ;
2020-01-06 10:37:12 +00:00
} ) ;
}
exports . findInvalidWrapperJars = findInvalidWrapperJars ;
2020-01-11 14:35:28 +00:00
class ValidationResult {
constructor ( valid , invalid ) {
this . errors = [ ] ;
this . valid = valid ;
this . invalid = invalid ;
}
isValid ( ) {
return this . invalid . length === 0 && this . errors . length === 0 ;
}
toDisplayString ( ) {
let displayString = '' ;
if ( this . invalid . length > 0 ) {
2020-01-13 09:29:20 +00:00
displayString += ` ✗ Found unknown Gradle Wrapper JAR files: \n ${ ValidationResult . toDisplayList ( this . invalid ) } ` ;
2020-01-11 14:35:28 +00:00
}
if ( this . errors . length > 0 ) {
if ( displayString . length > 0 )
displayString += '\n' ;
2020-01-13 09:29:20 +00:00
displayString += ` ✗ Other validation errors: \n ${ this . errors . join ( ` \n ` ) } ` ;
2020-01-11 14:35:28 +00:00
}
if ( this . valid . length > 0 ) {
if ( displayString . length > 0 )
displayString += '\n' ;
2020-01-13 09:29:20 +00:00
displayString += ` ✓ Found known Gradle Wrapper JAR files: \n ${ ValidationResult . toDisplayList ( this . valid ) } ` ;
2020-01-11 14:35:28 +00:00
}
return displayString ;
}
static toDisplayList ( wrapperJars ) {
return ` ${ wrapperJars . map ( wj => wj . toDisplayString ( ) ) . join ( ` \n ` ) } ` ;
}
}
exports . ValidationResult = ValidationResult ;
class WrapperJar {
2020-01-06 12:50:19 +00:00
constructor ( path , checksum ) {
this . path = path ;
this . checksum = checksum ;
}
2020-01-11 14:35:28 +00:00
toDisplayString ( ) {
return ` ${ this . checksum } ${ this . path } ` ;
}
2020-01-06 12:50:19 +00:00
}
2020-01-11 14:35:28 +00:00
exports . WrapperJar = WrapperJar ;
2020-01-06 10:37:12 +00:00
2020-01-13 17:39:40 +00:00
/***/ } ) ,
2020-01-15 16:39:59 +00:00
/***/ 588 :
/***/ ( function ( module ) {
2020-01-13 17:39:40 +00:00
2020-01-15 16:39:59 +00:00
module . exports = { "0" : "O" , "1" : "l" , "֭" : "֖" , "֮" : "֘" , "֨" : "֙" , "֤" : "֚" , "᪴" : "ۛ" , "⃛" : "ۛ" , "ؙ" : "̓" , "ࣳ" : "̓" , "̓" : "̓" , "̕" : "̓" , "ُ" : "̓" , "ٝ" : "̔" , "֜" : "́" , "֝" : "́" , "ؘ" : "́" , "݇" : "́" , "́" : "́" , "॔" : "́" , "َ" : "́" , "̀" : "̀" , "॓" : "̀" , "̌" : "̆" , "꙼" : "̆" , "٘" : "̆" , "ٚ" : "̆" , "ͮ" : "̆" , "ۨ" : "̆̇" , "̐" : "̆̇" , "ँ" : "̆̇" , "ঁ" : "̆̇" , "ઁ" : "̆̇" , "ଁ" : "̆̇" , "ఀ" : "̆̇" , "ಁ" : "̆̇" , "ഁ" : "̆̇" , "𑒿" : "̆̇" , "᳐" : "̂" , "̑" : "̂" , "ٛ" : "̂" , "߮" : "̂" , "꛰" : "̂" , "֯" : "̊" , "۟" : "̊" , "៓" : "̊" , "゚" : "̊" , "ْ" : "̊" , "ஂ" : "̊" , "ံ" : "̊" , "ំ" : "̊" , "𑌀" : "̊" , "ํ" : "̊" , "ໍ" : "̊" , "ͦ" : "̊" , "ⷪ" : "̊" , "࣫" : "̈" , "߳" : "̈" , "ً" : "̋" , "ࣰ" : "̋" , "͂" : "̃" , "ٓ" : "̃" , "ׄ" : "̇" , "۬" : "̇" , "݀" : "̇" , "࣪" : "̇" , "݁" : "̇" , "͘" : "̇" , "ֹ" : "̇" , "ֺ" : "̇" , "ׂ" : "̇" , "ׁ" : "̇" , "߭" : "̇" , "ं" : "̇" , "ਂ" : "̇" , "ં" : "̇" , "்" : "̇" , "̷" : "̸" , "᪷" : "̨" , "̢" : "̨" , "ͅ" : "̨" , "᳒" : "̄" , "̅" : "̄" , "ٙ" : "̄" , "߫" : "̄" , "꛱" : "̄" , "᳚" : "̎" , "ٗ" : "̒" , "͗" : "͐" , "ࣿ" : "͐" , "ࣸ" : "͐" , "ऀ" : "͒" , "᳭" : "̖" , "᳜" : "̩" , "ٖ" : "̩" , "᳕" : "̫" , "͇" : "̳" , "ࣹ" : "͔" , "ࣺ" : "͕" , "゛" : "゙" , "゜" : "゚" , "̶" : "̵" , "〬" : "̉" , "ׅ" : "̣" , "࣭" : "̣" , "᳝" : "̣" , "ִ" : "̣" , "ٜ" : "̣" , "़" : "̣" , "়" : "̣" , "਼" : "̣" , "઼" : "̣" , "଼" : "̣" , "𑇊" : "̣" , "𑓃" : "̣" , "𐨺" : "̣" , "࣮" : "̤" , "᳞" : "̤" , "༷" : "̥" , "〭" : "̥" , "̧" : "̦" , "̡" : "̦" , "̹" : "̦" , "᳙" : "̭" , "᳘" : "̮" , "॒" : "̱" , "̠" : "̱" , "ࣱ" : "ٌ" , "ࣨ" : "ٌ" , "ࣥ" : "ٌ" , "ﱞ" : "ﹲّ" , "ࣲ" : "ٍ" , "ﱟ" : "ﹴّ" , "ﳲ" : "ﹷّ" , "ﱠ" : "ﹶّ" , "ﳳ" : "ﹹّ" , "ﱡ" : "ﹸّ" , "ؚ" : "ِ" , "̗" : "ِ" , "ﳴ" : "ﹻّ" , "ﱢ" : "ﹺّ" , "ﱣ" : "ﹼٰ" , "ٟ" : "ٕ" , "̍" : "ٰ" , "݂" : "ܼ" , "ਃ" : "ঃ" , "ః" : "ঃ" , "ಃ" : "ঃ" , "ഃ" : "ঃ" , "ඃ" : "ঃ" , "း" : "ঃ" , "𑓁" : "ঃ" , "់" : "่" , "່" : "่" , "້" : "้" , "໊" : "๊" , "໋" : "๋" , "꙯" : "⃩" , "\u2028" : " " , "\u2029" : " " , " " : " " , " " : " " , " " : " " , " " : " " , " " : " " , " " : " " , " " : " " , " " : " " , " " : " " , " " : " " , " " : " " , " " : " " , " " : " " , " " : " " , " " : " " , "ߺ " : "_" , "﹍ " : "_" , "﹎ " : "_" , "﹏ " : "_" , "‐ " : "-" , "‑ " : "-" , "‒ " : "-" , "– " : "-" , "﹘ " : "-" , "۔ " : "-" , "⁃ " : "-" , "˗ " : "-" , "− " : "-" , "➖ " : "-" , "Ⲻ " : "-" , "⨩" : "-̓" , "⸚" : "-̈" , "﬩" : "-̇" , "∸" : "-̇" , "⨪" : "-̣" , "꓾" : "-." , "~ " : "〜" , "؍ " : "," , "٫ " : "," , "‚ " : "," , "¸ " : "," , "ꓹ " : "," , "⸲" : "،" , "٬" : "،" , "; " : ";" , "⸵" : "؛" , "ः " : ":" , "ઃ " : ":" , ": " : ":" , "։ " : ":" , "܃ " : ":" , "܄ " : ":" , "᛬ " : ":" , "︰ " : ":" , "᠃ " : ":" , "᠉ " : ":" , "⁚ " : ":" , "׃ " : ":" , "˸ " : ":" , "꞉ " : ":" , "∶ " : ":" , "ː " : ":" , "ꓽ " : ":" , "⩴" : "::=" , "⧴" : ":→" , "! " : "!" , "ǃ " : "!" , "ⵑ " : "!" , "‼" : "!!" , "⁉" : "!?" , "ʔ " : "?" , "Ɂ " : "?" , "ॽ " : "?" , "Ꭾ " : "?" , "ꛫ " : "?" , "⁈" : "?!" , "⁇" : "??" , "⸮" : "؟" , "𝅭 " : "." , "․ " : "." , "܁ " : "." , "܂ " : "." , "꘎ " : "." , "𐩐 " : "." , "٠ " : "." , "۰ " : "." , "ꓸ " : "." , "ꓻ" : ".," , "‥" : ".." , "ꓺ" : ".." , "…" : "..." , "꛴" : "꛳꛳" , "・" : "·" , "・" : "·" , "᛫" : "·" , "·" : "·" , "⸱" : "·" , "𐄁" : "·" , "•" : "·" , "‧" : "·" , "∙" : "·" , "⋅" : "·" , "ꞏ" : "·" , "ᐧ" : "·" , "⋯" : "···" , "ⵈ" : "···" , "ᑄ" : "·<" , "⋗" : "·>" , "ᐷ" : "·>" , "ᑀ" : "·>" , "ᔯ" : "·4" , "ᑾ" : "·b" , "ᒀ" : "·ḃ" , "ᑺ" : "·d" , "ᒘ" : "·J" , "ᒶ" : "·L" , "ᑶ" : "·P" , "ᑗ" : "·U" , "ᐺ" : "·V" , "ᐼ" : "·Ʌ" , "ᒮ" : "·Γ" , "ᐎ" : "·Δ" , "ᑙ" : "·Ո" , "ᐌ" : "·ᐁ" , "ᐐ" : "·ᐄ" , "ᐒ" : "·ᐅ" , "ᐔ" : "·ᐆ" , "ᐗ" : "·ᐊ" , "ᐙ" : "·ᐋ" , "ᐾ" : "·ᐲ" , "ᑂ" : "·ᐴ" , "ᑆ" : "·ᐹ" , "ᑛ" : "·ᑏ" , "ᑔ" : "·ᑐ" , "ᑝ" : "·ᑐ" , "ᑟ" : "·ᑑ" , "ᑡ" : "·ᑕ" , "ᑣ" : "·ᑖ" , "ᑴ" : "·ᑫ" , "ᑸ" : "·ᑮ" , "ᑼ" : "·ᑰ" , "ᒒ" : "·ᒉ" , "ᒔ" : "·ᒋ" , "ᒖ" : "·ᒌ" , "ᒚ" : "·ᒎ" , "ᒜ" : "·ᒐ" , "ᒞ" : "·ᒑ" , "ᒬ" : "·ᒣ" , "ᒰ" : "·ᒦ" , "ᒲ" : "·ᒧ" , "ᒴ" : "·ᒨ" , "ᒸ" : "·ᒫ" , "ᓉ" : "·ᓀ" , "ᣆ" : "·ᓂ" , "ᣈ" : "·ᓃ" , "ᣊ" : "·ᓄ" , "ᣌ" : "·ᓅ" , "ᓋ" : "·ᓇ" , "ᓍ" : "·ᓈ" , "ᓜ" : "·ᓓ" , "ᓞ" : "·ᓕ" , "ᓠ" : "·ᓖ" , "ᓢ" : "·ᓗ" , "ᓤ" : "·ᓘ" , "ᓦ" : "·ᓚ" , "ᓨ" : "·ᓛ" , "ᓶ" : "·ᓭ" , "ᓸ" : "·ᓯ" , "ᓺ" : "·ᓰ" , "ᓼ" : "·ᓱ" , "ᓾ" : "·ᓲ" , "ᔀ" : "·ᓴ" , "ᔂ" : "·ᓵ" , "ᔗ" : "·ᔐ" , "ᔙ" : "·ᔑ" , "ᔛ" : "·ᔒ" , "ᔝ" : "·ᔓ" , "ᔟ" : "·ᔔ" , "ᔡ" : "·ᔕ" , "ᔣ" : "·ᔖ" , "ᔱ" : "·ᔨ" , "ᔳ" : "·ᔩ" , "ᔵ" : "·ᔪ" , "ᔷ" : "·ᔫ" , "ᔹ" : "·ᔭ" , "ᔻ" : "·ᔮ" , "ᣎ" : "·ᕃ" , "ᣏ" : "·ᕆ" , "ᣐ" : "·ᕇ" , "ᣑ" : "·ᕈ" , "ᣒ" : "·ᕉ" , "ᣓ" : "·ᕋ" , "ᕎ" : "·ᕌ" , "ᕛ" : "·ᕚ" , "ᕨ" : "·ᕧ" , "
2020-01-13 17:39:40 +00:00
2020-01-06 10:37:12 +00:00
/***/ } ) ,
2020-01-06 11:03:18 +00:00
/***/ 605 :
/***/ ( function ( module ) {
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
module . exports = require ( "http" ) ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
/***/ } ) ,
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
/***/ 614 :
/***/ ( function ( module ) {
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
module . exports = require ( "events" ) ;
2020-01-06 10:37:12 +00:00
/***/ } ) ,
2020-01-06 11:03:18 +00:00
/***/ 622 :
/***/ ( function ( module ) {
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
module . exports = require ( "path" ) ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
/***/ } ) ,
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
/***/ 625 :
/***/ ( function ( _ _unusedmodule , exports , _ _webpack _require _ _ ) {
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
"use strict" ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var _ _awaiter = ( this && this . _ _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 _ _importStar = ( this && this . _ _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 ;
} ;
2020-01-15 16:39:59 +00:00
var _ _importDefault = ( this && this . _ _importDefault ) || function ( mod ) {
return ( mod && mod . _ _esModule ) ? mod : { "default" : mod } ;
} ;
2020-01-06 11:03:18 +00:00
Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
const util = _ _importStar ( _ _webpack _require _ _ ( 669 ) ) ;
const path = _ _importStar ( _ _webpack _require _ _ ( 622 ) ) ;
const fs = _ _importStar ( _ _webpack _require _ _ ( 747 ) ) ;
2020-01-15 16:39:59 +00:00
const unhomoglyph _1 = _ _importDefault ( _ _webpack _require _ _ ( 213 ) ) ;
2020-01-06 11:03:18 +00:00
const readdir = util . promisify ( fs . readdir ) ;
function findWrapperJars ( baseDir ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
const files = yield recursivelyListFiles ( baseDir ) ;
return files
2020-01-15 16:39:59 +00:00
. filter ( file => unhomoglyph _1 . default ( file ) . endsWith ( 'gradle-wrapper.jar' ) )
2020-01-11 14:35:28 +00:00
. map ( wrapperJar => path . relative ( baseDir , wrapperJar ) )
. sort ( ( a , b ) => a . localeCompare ( b ) ) ;
2020-01-06 11:03:18 +00:00
} ) ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
exports . findWrapperJars = findWrapperJars ;
function recursivelyListFiles ( baseDir ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
const childrenNames = yield readdir ( baseDir ) ;
const childrenPaths = yield Promise . all ( childrenNames . map ( ( childName ) => _ _awaiter ( this , void 0 , void 0 , function * ( ) {
const childPath = path . resolve ( baseDir , childName ) ;
return fs . lstatSync ( childPath ) . isDirectory ( )
? recursivelyListFiles ( childPath )
: new Promise ( resolve => resolve ( [ childPath ] ) ) ;
} ) ) ) ;
return Array . prototype . concat ( ... childrenPaths ) ;
} ) ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
/***/ } ) ,
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
/***/ 631 :
/***/ ( function ( module ) {
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
module . exports = require ( "net" ) ;
2020-01-06 10:37:12 +00:00
/***/ } ) ,
2020-01-06 11:03:18 +00:00
/***/ 640 :
/***/ ( function ( module ) {
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
"use strict" ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var has = Object . prototype . hasOwnProperty ;
var isArray = Array . isArray ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var hexTable = ( function ( ) {
var array = [ ] ;
for ( var i = 0 ; i < 256 ; ++ i ) {
array . push ( '%' + ( ( i < 16 ? '0' : '' ) + i . toString ( 16 ) ) . toUpperCase ( ) ) ;
2020-01-06 10:37:12 +00:00
}
return array ;
2020-01-06 11:03:18 +00:00
} ( ) ) ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var compactQueue = function compactQueue ( queue ) {
while ( queue . length > 1 ) {
var item = queue . pop ( ) ;
var obj = item . obj [ item . prop ] ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
if ( isArray ( obj ) ) {
var compacted = [ ] ;
for ( var j = 0 ; j < obj . length ; ++ j ) {
if ( typeof obj [ j ] !== 'undefined' ) {
compacted . push ( obj [ j ] ) ;
}
}
item . obj [ item . prop ] = compacted ;
}
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
} ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var arrayToObject = function arrayToObject ( source , options ) {
var obj = options && options . plainObjects ? Object . create ( null ) : { } ;
for ( var i = 0 ; i < source . length ; ++ i ) {
if ( typeof source [ i ] !== 'undefined' ) {
obj [ i ] = source [ i ] ;
}
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
return obj ;
} ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var merge = function merge ( target , source , options ) {
/* eslint no-param-reassign: 0 */
if ( ! source ) {
return target ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
if ( typeof source !== 'object' ) {
if ( isArray ( target ) ) {
target . push ( source ) ;
} else if ( target && typeof target === 'object' ) {
if ( ( options && ( options . plainObjects || options . allowPrototypes ) ) || ! has . call ( Object . prototype , source ) ) {
target [ source ] = true ;
}
} else {
return [ target , source ] ;
}
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
return target ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
if ( ! target || typeof target !== 'object' ) {
return [ target ] . concat ( source ) ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
var mergeTarget = target ;
if ( isArray ( target ) && ! isArray ( source ) ) {
mergeTarget = arrayToObject ( target , options ) ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
if ( isArray ( target ) && isArray ( source ) ) {
source . forEach ( function ( item , i ) {
if ( has . call ( target , i ) ) {
var targetItem = target [ i ] ;
if ( targetItem && typeof targetItem === 'object' && item && typeof item === 'object' ) {
target [ i ] = merge ( targetItem , item , options ) ;
} else {
target . push ( item ) ;
}
} else {
target [ i ] = item ;
}
} ) ;
return target ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
return Object . keys ( source ) . reduce ( function ( acc , key ) {
var value = source [ key ] ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
if ( has . call ( acc , key ) ) {
acc [ key ] = merge ( acc [ key ] , value , options ) ;
} else {
acc [ key ] = value ;
}
return acc ;
} , mergeTarget ) ;
} ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var assign = function assignSingleSource ( target , source ) {
return Object . keys ( source ) . reduce ( function ( acc , key ) {
acc [ key ] = source [ key ] ;
return acc ;
} , target ) ;
} ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var decode = function ( str , decoder , charset ) {
var strWithoutPlus = str . replace ( /\+/g , ' ' ) ;
if ( charset === 'iso-8859-1' ) {
// unescape never throws, no try...catch needed:
return strWithoutPlus . replace ( /%[0-9a-f]{2}/gi , unescape ) ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
// utf-8
try {
return decodeURIComponent ( strWithoutPlus ) ;
} catch ( e ) {
return strWithoutPlus ;
}
} ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var encode = function encode ( str , defaultEncoder , charset ) {
// This code was originally written by Brian White (mscdex) for the io.js core querystring library.
// It has been adapted here for stricter adherence to RFC 3986
if ( str . length === 0 ) {
return str ;
}
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var string = str ;
if ( typeof str === 'symbol' ) {
string = Symbol . prototype . toString . call ( str ) ;
} else if ( typeof str !== 'string' ) {
string = String ( str ) ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
if ( charset === 'iso-8859-1' ) {
return escape ( string ) . replace ( /%u[0-9a-f]{4}/gi , function ( $0 ) {
return '%26%23' + parseInt ( $0 . slice ( 2 ) , 16 ) + '%3B' ;
} ) ;
}
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var out = '' ;
for ( var i = 0 ; i < string . length ; ++ i ) {
var c = string . charCodeAt ( i ) ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
if (
c === 0x2D // -
|| c === 0x2E // .
|| c === 0x5F // _
|| c === 0x7E // ~
|| ( c >= 0x30 && c <= 0x39 ) // 0-9
|| ( c >= 0x41 && c <= 0x5A ) // a-z
|| ( c >= 0x61 && c <= 0x7A ) // A-Z
) {
out += string . charAt ( i ) ;
continue ;
}
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
if ( c < 0x80 ) {
out = out + hexTable [ c ] ;
continue ;
}
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
if ( c < 0x800 ) {
out = out + ( hexTable [ 0xC0 | ( c >> 6 ) ] + hexTable [ 0x80 | ( c & 0x3F ) ] ) ;
continue ;
}
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
if ( c < 0xD800 || c >= 0xE000 ) {
out = out + ( hexTable [ 0xE0 | ( c >> 12 ) ] + hexTable [ 0x80 | ( ( c >> 6 ) & 0x3F ) ] + hexTable [ 0x80 | ( c & 0x3F ) ] ) ;
continue ;
}
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
i += 1 ;
c = 0x10000 + ( ( ( c & 0x3FF ) << 10 ) | ( string . charCodeAt ( i ) & 0x3FF ) ) ;
out += hexTable [ 0xF0 | ( c >> 18 ) ]
+ hexTable [ 0x80 | ( ( c >> 12 ) & 0x3F ) ]
+ hexTable [ 0x80 | ( ( c >> 6 ) & 0x3F ) ]
+ hexTable [ 0x80 | ( c & 0x3F ) ] ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
return out ;
} ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var compact = function compact ( value ) {
var queue = [ { obj : { o : value } , prop : 'o' } ] ;
var refs = [ ] ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
for ( var i = 0 ; i < queue . length ; ++ i ) {
var item = queue [ i ] ;
var obj = item . obj [ item . prop ] ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var keys = Object . keys ( obj ) ;
for ( var j = 0 ; j < keys . length ; ++ j ) {
var key = keys [ j ] ;
var val = obj [ key ] ;
if ( typeof val === 'object' && val !== null && refs . indexOf ( val ) === - 1 ) {
queue . push ( { obj : obj , prop : key } ) ;
refs . push ( val ) ;
}
2020-01-06 10:37:12 +00:00
}
}
2020-01-06 11:03:18 +00:00
compactQueue ( queue ) ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
return value ;
} ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var isRegExp = function isRegExp ( obj ) {
return Object . prototype . toString . call ( obj ) === '[object RegExp]' ;
} ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var isBuffer = function isBuffer ( obj ) {
if ( ! obj || typeof obj !== 'object' ) {
return false ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
return ! ! ( obj . constructor && obj . constructor . isBuffer && obj . constructor . isBuffer ( obj ) ) ;
} ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var combine = function combine ( a , b ) {
return [ ] . concat ( a , b ) ;
} ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
module . exports = {
arrayToObject : arrayToObject ,
assign : assign ,
combine : combine ,
compact : compact ,
decode : decode ,
encode : encode ,
isBuffer : isBuffer ,
isRegExp : isRegExp ,
merge : merge
} ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
/***/ } ) ,
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
/***/ 643 :
/***/ ( function ( module , _ _unusedexports , _ _webpack _require _ _ ) {
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
"use strict" ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var stringify = _ _webpack _require _ _ ( 819 ) ;
var parse = _ _webpack _require _ _ ( 339 ) ;
var formats = _ _webpack _require _ _ ( 755 ) ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
module . exports = {
formats : formats ,
parse : parse ,
stringify : stringify
} ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
/***/ } ) ,
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
/***/ 652 :
/***/ ( function ( _ _unusedmodule , exports , _ _webpack _require _ _ ) {
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
"use strict" ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var _ _awaiter = ( this && this . _ _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 _ _importStar = ( this && this . _ _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 ( exports , "__esModule" , { value : true } ) ;
const crypto = _ _importStar ( _ _webpack _require _ _ ( 417 ) ) ;
const fs = _ _importStar ( _ _webpack _require _ _ ( 747 ) ) ;
function sha256File ( path ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
return new Promise ( ( resolve , reject ) => {
const hash = crypto . createHash ( 'sha256' ) ;
const stream = fs . createReadStream ( path ) ;
stream . on ( 'data' , data => hash . update ( data ) ) ;
stream . on ( 'end' , ( ) => {
stream . destroy ( ) ;
resolve ( hash . digest ( 'hex' ) ) ;
} ) ;
stream . on ( 'error' , error => {
stream . destroy ( ) ;
reject ( error ) ;
} ) ;
} ) ;
} ) ;
}
exports . sha256File = sha256File ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
/***/ } ) ,
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
/***/ 669 :
/***/ ( function ( module ) {
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
module . exports = require ( "util" ) ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
/***/ } ) ,
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
/***/ 729 :
/***/ ( function ( _ _unusedmodule , exports , _ _webpack _require _ _ ) {
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
"use strict" ;
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
var _ _awaiter = ( this && this . _ _awaiter ) || function ( thisArg , _arguments , P , generator ) {
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 ) : new P ( function ( resolve ) { resolve ( result . value ) ; } ) . then ( fulfilled , rejected ) ; }
step ( ( generator = generator . apply ( thisArg , _arguments || [ ] ) ) . next ( ) ) ;
} ) ;
} ;
Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
const qs = _ _webpack _require _ _ ( 643 ) ;
const url = _ _webpack _require _ _ ( 835 ) ;
const path = _ _webpack _require _ _ ( 622 ) ;
const zlib = _ _webpack _require _ _ ( 761 ) ;
/ * *
* creates an url from a request url and optional base url ( http : //server:8080)
* @ param { string } resource - a fully qualified url or relative path
* @ param { string } baseUrl - an optional baseUrl ( http : //server:8080)
* @ param { IRequestOptions } options - an optional options object , could include QueryParameters e . g .
* @ return { string } - resultant url
* /
function getUrl ( resource , baseUrl , queryParams ) {
const pathApi = path . posix || path ;
let requestUrl = '' ;
if ( ! baseUrl ) {
requestUrl = resource ;
}
else if ( ! resource ) {
requestUrl = baseUrl ;
}
else {
const base = url . parse ( baseUrl ) ;
const resultantUrl = url . parse ( resource ) ;
// resource (specific per request) elements take priority
resultantUrl . protocol = resultantUrl . protocol || base . protocol ;
resultantUrl . auth = resultantUrl . auth || base . auth ;
resultantUrl . host = resultantUrl . host || base . host ;
resultantUrl . pathname = pathApi . resolve ( base . pathname , resultantUrl . pathname ) ;
if ( ! resultantUrl . pathname . endsWith ( '/' ) && resource . endsWith ( '/' ) ) {
resultantUrl . pathname += '/' ;
}
requestUrl = url . format ( resultantUrl ) ;
}
return queryParams ?
getUrlWithParsedQueryParams ( requestUrl , queryParams ) :
requestUrl ;
}
exports . getUrl = getUrl ;
/ * *
*
* @ param { string } requestUrl
* @ param { IRequestQueryParams } queryParams
* @ return { string } - Request ' s URL with Query Parameters appended / parsed .
* /
function getUrlWithParsedQueryParams ( requestUrl , queryParams ) {
const url = requestUrl . replace ( /\?$/g , '' ) ; // Clean any extra end-of-string "?" character
const parsedQueryParams = qs . stringify ( queryParams . params , buildParamsStringifyOptions ( queryParams ) ) ;
return ` ${ url } ${ parsedQueryParams } ` ;
}
/ * *
* Build options for QueryParams Stringifying .
*
* @ param { IRequestQueryParams } queryParams
* @ return { object }
* /
function buildParamsStringifyOptions ( queryParams ) {
let options = {
addQueryPrefix : true ,
delimiter : ( queryParams . options || { } ) . separator || '&' ,
allowDots : ( queryParams . options || { } ) . shouldAllowDots || false ,
arrayFormat : ( queryParams . options || { } ) . arrayFormat || 'repeat' ,
encodeValuesOnly : ( queryParams . options || { } ) . shouldOnlyEncodeValues || true
} ;
return options ;
}
/ * *
* Decompress / Decode gzip encoded JSON
* Using Node . js built - in zlib module
*
* @ param { Buffer } buffer
* @ param { string } charset ? - optional ; defaults to 'utf-8'
* @ return { Promise < string > }
* /
function decompressGzippedContent ( buffer , charset ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
return new Promise ( ( resolve , reject ) => _ _awaiter ( this , void 0 , void 0 , function * ( ) {
zlib . gunzip ( buffer , function ( error , buffer ) {
if ( error ) {
reject ( error ) ;
}
resolve ( buffer . toString ( charset || 'utf-8' ) ) ;
} ) ;
} ) ) ;
} ) ;
}
exports . decompressGzippedContent = decompressGzippedContent ;
/ * *
* Obtain Response ' s Content Charset .
* Through inspecting ` content-type ` response header .
* It Returns 'utf-8' if NO charset specified / matched .
*
* @ param { IHttpClientResponse } response
* @ return { string } - Content Encoding Charset ; Default = utf - 8
* /
function obtainContentCharset ( response ) {
// Find the charset, if specified.
// Search for the `charset=CHARSET` string, not including `;,\r\n`
// Example: content-type: 'application/json;charset=utf-8'
// |__ matches would be ['charset=utf-8', 'utf-8', index: 18, input: 'application/json; charset=utf-8']
// |_____ matches[1] would have the charset :tada: , in our example it's utf-8
// However, if the matches Array was empty or no charset found, 'utf-8' would be returned by default.
const contentType = response . message . headers [ 'content-type' ] || '' ;
const matches = contentType . match ( /charset=([^;,\r\n]+)/i ) ;
return ( matches && matches [ 1 ] ) ? matches [ 1 ] : 'utf-8' ;
}
exports . obtainContentCharset = obtainContentCharset ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
/***/ } ) ,
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
/***/ 747 :
/***/ ( function ( module ) {
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
module . exports = require ( "fs" ) ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
/***/ } ) ,
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
/***/ 755 :
/***/ ( function ( module , _ _unusedexports , _ _webpack _require _ _ ) {
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
"use strict" ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var replace = String . prototype . replace ;
var percentTwenties = /%20/g ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var util = _ _webpack _require _ _ ( 640 ) ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var Format = {
RFC1738 : 'RFC1738' ,
RFC3986 : 'RFC3986'
} ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
module . exports = util . assign (
{
'default' : Format . RFC3986 ,
formatters : {
RFC1738 : function ( value ) {
return replace . call ( value , percentTwenties , '+' ) ;
} ,
RFC3986 : function ( value ) {
return String ( value ) ;
}
}
} ,
Format
) ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
/***/ } ) ,
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
/***/ 761 :
/***/ ( function ( module ) {
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
module . exports = require ( "zlib" ) ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
/***/ } ) ,
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
/***/ 762 :
/***/ ( function ( _ _unusedmodule , exports , _ _webpack _require _ _ ) {
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
"use strict" ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var _ _awaiter = ( this && this . _ _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 _ _importStar = ( this && this . _ _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 ( exports , "__esModule" , { value : true } ) ;
const httpm = _ _importStar ( _ _webpack _require _ _ ( 874 ) ) ;
2020-01-15 17:42:11 +00:00
const httpc = new httpm . HttpClient ( 'gradle/wrapper-validation-action' ) ;
2020-01-06 11:03:18 +00:00
function fetchValidChecksums ( allowSnapshots ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
const all = yield httpGetJsonArray ( 'https://services.gradle.org/versions/all' ) ;
const withChecksum = all . filter ( entry => entry . hasOwnProperty ( 'wrapperChecksumUrl' ) ) ;
const allowed = withChecksum . filter (
// eslint-disable-next-line @typescript-eslint/no-explicit-any
( entry ) => allowSnapshots || ! entry . snapshot ) ;
const checksumUrls = allowed . map (
// eslint-disable-next-line @typescript-eslint/no-explicit-any
( entry ) => entry . wrapperChecksumUrl ) ;
const checksums = yield Promise . all ( checksumUrls . map ( ( url ) => _ _awaiter ( this , void 0 , void 0 , function * ( ) { return httpGetText ( url ) ; } ) ) ) ;
return [ ... new Set ( checksums ) ] ;
} ) ;
}
exports . fetchValidChecksums = fetchValidChecksums ;
function httpGetJsonArray ( url ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
return JSON . parse ( yield httpGetText ( url ) ) ;
} ) ;
}
function httpGetText ( url ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
const response = yield httpc . get ( url ) ;
return yield response . readBody ( ) ;
} ) ;
}
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
/***/ } ) ,
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
/***/ 819 :
/***/ ( function ( module , _ _unusedexports , _ _webpack _require _ _ ) {
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
"use strict" ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var utils = _ _webpack _require _ _ ( 640 ) ;
var formats = _ _webpack _require _ _ ( 755 ) ;
var has = Object . prototype . hasOwnProperty ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var arrayPrefixGenerators = {
brackets : function brackets ( prefix ) {
return prefix + '[]' ;
} ,
comma : 'comma' ,
indices : function indices ( prefix , key ) {
return prefix + '[' + key + ']' ;
} ,
repeat : function repeat ( prefix ) {
return prefix ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
} ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var isArray = Array . isArray ;
var push = Array . prototype . push ;
var pushToArray = function ( arr , valueOrArray ) {
push . apply ( arr , isArray ( valueOrArray ) ? valueOrArray : [ valueOrArray ] ) ;
} ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var toISO = Date . prototype . toISOString ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var defaultFormat = formats [ 'default' ] ;
var defaults = {
addQueryPrefix : false ,
allowDots : false ,
charset : 'utf-8' ,
charsetSentinel : false ,
delimiter : '&' ,
encode : true ,
encoder : utils . encode ,
encodeValuesOnly : false ,
format : defaultFormat ,
formatter : formats . formatters [ defaultFormat ] ,
// deprecated
indices : false ,
serializeDate : function serializeDate ( date ) {
return toISO . call ( date ) ;
} ,
skipNulls : false ,
strictNullHandling : false
} ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var isNonNullishPrimitive = function isNonNullishPrimitive ( v ) {
return typeof v === 'string'
|| typeof v === 'number'
|| typeof v === 'boolean'
|| typeof v === 'symbol'
|| typeof v === 'bigint' ;
} ;
var stringify = function stringify (
object ,
prefix ,
generateArrayPrefix ,
strictNullHandling ,
skipNulls ,
encoder ,
filter ,
sort ,
allowDots ,
serializeDate ,
formatter ,
encodeValuesOnly ,
charset
) {
var obj = object ;
if ( typeof filter === 'function' ) {
obj = filter ( prefix , obj ) ;
} else if ( obj instanceof Date ) {
obj = serializeDate ( obj ) ;
} else if ( generateArrayPrefix === 'comma' && isArray ( obj ) ) {
obj = obj . join ( ',' ) ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
if ( obj === null ) {
if ( strictNullHandling ) {
return encoder && ! encodeValuesOnly ? encoder ( prefix , defaults . encoder , charset , 'key' ) : prefix ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
obj = '' ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
if ( isNonNullishPrimitive ( obj ) || utils . isBuffer ( obj ) ) {
if ( encoder ) {
var keyValue = encodeValuesOnly ? prefix : encoder ( prefix , defaults . encoder , charset , 'key' ) ;
return [ formatter ( keyValue ) + '=' + formatter ( encoder ( obj , defaults . encoder , charset , 'value' ) ) ] ;
}
return [ formatter ( prefix ) + '=' + formatter ( String ( obj ) ) ] ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
var values = [ ] ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
if ( typeof obj === 'undefined' ) {
return values ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
var objKeys ;
if ( isArray ( filter ) ) {
objKeys = filter ;
} else {
var keys = Object . keys ( obj ) ;
objKeys = sort ? keys . sort ( sort ) : keys ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
for ( var i = 0 ; i < objKeys . length ; ++ i ) {
var key = objKeys [ i ] ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
if ( skipNulls && obj [ key ] === null ) {
continue ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
if ( isArray ( obj ) ) {
pushToArray ( values , stringify (
obj [ key ] ,
typeof generateArrayPrefix === 'function' ? generateArrayPrefix ( prefix , key ) : prefix ,
generateArrayPrefix ,
strictNullHandling ,
skipNulls ,
encoder ,
filter ,
sort ,
allowDots ,
serializeDate ,
formatter ,
encodeValuesOnly ,
charset
) ) ;
2020-01-06 10:37:12 +00:00
} else {
2020-01-06 11:03:18 +00:00
pushToArray ( values , stringify (
obj [ key ] ,
prefix + ( allowDots ? '.' + key : '[' + key + ']' ) ,
generateArrayPrefix ,
strictNullHandling ,
skipNulls ,
encoder ,
filter ,
sort ,
allowDots ,
serializeDate ,
formatter ,
encodeValuesOnly ,
charset
) ) ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
}
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
return values ;
} ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var normalizeStringifyOptions = function normalizeStringifyOptions ( opts ) {
if ( ! opts ) {
return defaults ;
}
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
if ( opts . encoder !== null && opts . encoder !== undefined && typeof opts . encoder !== 'function' ) {
throw new TypeError ( 'Encoder has to be a function.' ) ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
var charset = opts . charset || defaults . charset ;
if ( typeof opts . charset !== 'undefined' && opts . charset !== 'utf-8' && opts . charset !== 'iso-8859-1' ) {
throw new TypeError ( 'The charset option must be either utf-8, iso-8859-1, or undefined' ) ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
var format = formats [ 'default' ] ;
if ( typeof opts . format !== 'undefined' ) {
if ( ! has . call ( formats . formatters , opts . format ) ) {
throw new TypeError ( 'Unknown format option provided.' ) ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
format = opts . format ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
var formatter = formats . formatters [ format ] ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var filter = defaults . filter ;
if ( typeof opts . filter === 'function' || isArray ( opts . filter ) ) {
filter = opts . filter ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
return {
addQueryPrefix : typeof opts . addQueryPrefix === 'boolean' ? opts . addQueryPrefix : defaults . addQueryPrefix ,
allowDots : typeof opts . allowDots === 'undefined' ? defaults . allowDots : ! ! opts . allowDots ,
charset : charset ,
charsetSentinel : typeof opts . charsetSentinel === 'boolean' ? opts . charsetSentinel : defaults . charsetSentinel ,
delimiter : typeof opts . delimiter === 'undefined' ? defaults . delimiter : opts . delimiter ,
encode : typeof opts . encode === 'boolean' ? opts . encode : defaults . encode ,
encoder : typeof opts . encoder === 'function' ? opts . encoder : defaults . encoder ,
encodeValuesOnly : typeof opts . encodeValuesOnly === 'boolean' ? opts . encodeValuesOnly : defaults . encodeValuesOnly ,
filter : filter ,
formatter : formatter ,
serializeDate : typeof opts . serializeDate === 'function' ? opts . serializeDate : defaults . serializeDate ,
skipNulls : typeof opts . skipNulls === 'boolean' ? opts . skipNulls : defaults . skipNulls ,
sort : typeof opts . sort === 'function' ? opts . sort : null ,
strictNullHandling : typeof opts . strictNullHandling === 'boolean' ? opts . strictNullHandling : defaults . strictNullHandling
} ;
} ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
module . exports = function ( object , opts ) {
var obj = object ;
var options = normalizeStringifyOptions ( opts ) ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
var objKeys ;
var filter ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
if ( typeof options . filter === 'function' ) {
filter = options . filter ;
obj = filter ( '' , obj ) ;
} else if ( isArray ( options . filter ) ) {
filter = options . filter ;
objKeys = filter ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
var keys = [ ] ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
if ( typeof obj !== 'object' || obj === null ) {
return '' ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
var arrayFormat ;
if ( opts && opts . arrayFormat in arrayPrefixGenerators ) {
arrayFormat = opts . arrayFormat ;
} else if ( opts && 'indices' in opts ) {
arrayFormat = opts . indices ? 'indices' : 'repeat' ;
} else {
arrayFormat = 'indices' ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
var generateArrayPrefix = arrayPrefixGenerators [ arrayFormat ] ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
if ( ! objKeys ) {
objKeys = Object . keys ( obj ) ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
if ( options . sort ) {
objKeys . sort ( options . sort ) ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
for ( var i = 0 ; i < objKeys . length ; ++ i ) {
var key = objKeys [ i ] ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
if ( options . skipNulls && obj [ key ] === null ) {
continue ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
pushToArray ( keys , stringify (
obj [ key ] ,
key ,
generateArrayPrefix ,
options . strictNullHandling ,
options . skipNulls ,
options . encode ? options . encoder : null ,
options . filter ,
options . sort ,
options . allowDots ,
options . serializeDate ,
options . formatter ,
options . encodeValuesOnly ,
options . charset
) ) ;
2020-01-06 10:37:12 +00:00
}
2020-01-06 11:03:18 +00:00
var joined = keys . join ( options . delimiter ) ;
var prefix = options . addQueryPrefix === true ? '?' : '' ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
if ( options . charsetSentinel ) {
if ( options . charset === 'iso-8859-1' ) {
// encodeURIComponent('✓'), the "numeric entity" representation of a checkmark
prefix += 'utf8=%26%2310003%3B&' ;
2020-01-06 10:37:12 +00:00
} else {
2020-01-06 11:03:18 +00:00
// encodeURIComponent('✓')
prefix += 'utf8=%E2%9C%93&' ;
2020-01-06 10:37:12 +00:00
}
}
2020-01-06 11:03:18 +00:00
return joined . length > 0 ? prefix + joined : '' ;
} ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
/***/ } ) ,
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
/***/ 835 :
/***/ ( function ( module ) {
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
module . exports = require ( "url" ) ;
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
/***/ } ) ,
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
/***/ 874 :
/***/ ( function ( _ _unusedmodule , exports , _ _webpack _require _ _ ) {
2020-01-06 10:37:12 +00:00
2020-01-06 11:03:18 +00:00
"use strict" ;
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
var _ _awaiter = ( this && this . _ _awaiter ) || function ( thisArg , _arguments , P , generator ) {
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 ) : new P ( function ( resolve ) { resolve ( result . value ) ; } ) . then ( fulfilled , rejected ) ; }
step ( ( generator = generator . apply ( thisArg , _arguments || [ ] ) ) . next ( ) ) ;
} ) ;
} ;
Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
const url = _ _webpack _require _ _ ( 835 ) ;
const http = _ _webpack _require _ _ ( 605 ) ;
const https = _ _webpack _require _ _ ( 211 ) ;
const util = _ _webpack _require _ _ ( 729 ) ;
let fs ;
let tunnel ;
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" ;
} ) ( HttpCodes = exports . HttpCodes || ( exports . HttpCodes = { } ) ) ;
const HttpRedirectCodes = [ HttpCodes . MovedPermanently , HttpCodes . ResourceMoved , HttpCodes . SeeOther , HttpCodes . TemporaryRedirect , HttpCodes . PermanentRedirect ] ;
const HttpResponseRetryCodes = [ HttpCodes . BadGateway , HttpCodes . ServiceUnavailable , HttpCodes . GatewayTimeout ] ;
const RetryableHttpVerbs = [ 'OPTIONS' , 'GET' , 'DELETE' , 'HEAD' ] ;
const ExponentialBackoffCeiling = 10 ;
const ExponentialBackoffTimeSlice = 5 ;
class HttpClientResponse {
constructor ( message ) {
this . message = message ;
}
readBody ( ) {
return new Promise ( ( resolve , reject ) => _ _awaiter ( this , void 0 , void 0 , function * ( ) {
let buffer = Buffer . alloc ( 0 ) ;
const encodingCharset = util . obtainContentCharset ( this ) ;
// Extract Encoding from header: 'content-encoding'
// Match `gzip`, `gzip, deflate` variations of GZIP encoding
const contentEncoding = this . message . headers [ 'content-encoding' ] || '' ;
const isGzippedEncoded = new RegExp ( '(gzip$)|(gzip, *deflate)' ) . test ( contentEncoding ) ;
this . message . on ( 'data' , function ( data ) {
const chunk = ( typeof data === 'string' ) ? Buffer . from ( data , encodingCharset ) : data ;
buffer = Buffer . concat ( [ buffer , chunk ] ) ;
} ) . on ( 'end' , function ( ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
if ( isGzippedEncoded ) { // Process GZipped Response Body HERE
const gunzippedBody = yield util . decompressGzippedContent ( buffer , encodingCharset ) ;
resolve ( gunzippedBody ) ;
}
resolve ( buffer . toString ( encodingCharset ) ) ;
} ) ;
} ) . on ( 'error' , function ( err ) {
reject ( err ) ;
} ) ;
} ) ) ;
}
}
exports . HttpClientResponse = HttpClientResponse ;
function isHttps ( requestUrl ) {
let parsedUrl = url . parse ( requestUrl ) ;
return parsedUrl . protocol === 'https:' ;
}
exports . isHttps = isHttps ;
var EnvironmentVariables ;
( function ( EnvironmentVariables ) {
EnvironmentVariables [ "HTTP_PROXY" ] = "HTTP_PROXY" ;
EnvironmentVariables [ "HTTPS_PROXY" ] = "HTTPS_PROXY" ;
EnvironmentVariables [ "NO_PROXY" ] = "NO_PROXY" ;
} ) ( EnvironmentVariables || ( EnvironmentVariables = { } ) ) ;
class 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 || [ ] ;
let no _proxy = process . env [ EnvironmentVariables . NO _PROXY ] ;
if ( no _proxy ) {
this . _httpProxyBypassHosts = [ ] ;
no _proxy . split ( ',' ) . forEach ( bypass => {
this . _httpProxyBypassHosts . push ( new RegExp ( bypass , 'i' ) ) ;
} ) ;
}
this . requestOptions = requestOptions ;
if ( requestOptions ) {
if ( requestOptions . ignoreSslError != null ) {
this . _ignoreSslError = requestOptions . ignoreSslError ;
}
this . _socketTimeout = requestOptions . socketTimeout ;
this . _httpProxy = requestOptions . proxy ;
if ( requestOptions . proxy && requestOptions . proxy . proxyBypassHosts ) {
this . _httpProxyBypassHosts = [ ] ;
requestOptions . proxy . proxyBypassHosts . forEach ( bypass => {
this . _httpProxyBypassHosts . push ( new RegExp ( bypass , 'i' ) ) ;
} ) ;
}
this . _certConfig = requestOptions . cert ;
if ( this . _certConfig ) {
// If using cert, need fs
fs = _ _webpack _require _ _ ( 747 ) ;
// cache the cert content into memory, so we don't have to read it from disk every time
if ( this . _certConfig . caFile && fs . existsSync ( this . _certConfig . caFile ) ) {
this . _ca = fs . readFileSync ( this . _certConfig . caFile , 'utf8' ) ;
}
if ( this . _certConfig . certFile && fs . existsSync ( this . _certConfig . certFile ) ) {
this . _cert = fs . readFileSync ( this . _certConfig . certFile , 'utf8' ) ;
}
if ( this . _certConfig . keyFile && fs . existsSync ( this . _certConfig . keyFile ) ) {
this . _key = fs . readFileSync ( this . _certConfig . keyFile , 'utf8' ) ;
}
}
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 ;
}
}
}
options ( requestUrl , additionalHeaders ) {
return this . request ( 'OPTIONS' , requestUrl , null , additionalHeaders || { } ) ;
}
get ( requestUrl , additionalHeaders ) {
return this . request ( 'GET' , requestUrl , null , additionalHeaders || { } ) ;
}
del ( requestUrl , additionalHeaders ) {
return this . request ( 'DELETE' , requestUrl , null , additionalHeaders || { } ) ;
}
post ( requestUrl , data , additionalHeaders ) {
return this . request ( 'POST' , requestUrl , data , additionalHeaders || { } ) ;
}
patch ( requestUrl , data , additionalHeaders ) {
return this . request ( 'PATCH' , requestUrl , data , additionalHeaders || { } ) ;
}
put ( requestUrl , data , additionalHeaders ) {
return this . request ( 'PUT' , requestUrl , data , additionalHeaders || { } ) ;
}
head ( requestUrl , additionalHeaders ) {
return this . request ( 'HEAD' , requestUrl , null , additionalHeaders || { } ) ;
}
sendStream ( verb , requestUrl , stream , additionalHeaders ) {
return this . request ( verb , requestUrl , stream , additionalHeaders ) ;
}
/ * *
* 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 _ _awaiter ( this , void 0 , void 0 , function * ( ) {
if ( this . _disposed ) {
throw new Error ( "Client has already been disposed." ) ;
}
let parsedUrl = url . parse ( requestUrl ) ;
let info = this . _prepareRequest ( verb , parsedUrl , headers ) ;
// Only perform retries on reads since writes may not be idempotent.
let maxTries = ( this . _allowRetries && RetryableHttpVerbs . indexOf ( verb ) != - 1 ) ? this . _maxRetries + 1 : 1 ;
let numTries = 0 ;
let response ;
while ( numTries < maxTries ) {
response = yield this . requestRaw ( info , data ) ;
// Check if it's an authentication challenge
if ( response && response . message && response . message . statusCode === HttpCodes . Unauthorized ) {
let authenticationHandler ;
for ( let i = 0 ; i < this . handlers . length ; i ++ ) {
if ( this . handlers [ i ] . canHandleAuthentication ( response ) ) {
authenticationHandler = this . handlers [ i ] ;
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 ( HttpRedirectCodes . indexOf ( response . message . statusCode ) != - 1
&& this . _allowRedirects
&& redirectsRemaining > 0 ) {
const redirectUrl = response . message . headers [ "location" ] ;
if ( ! redirectUrl ) {
// if there's no location to redirect to, we won't
break ;
}
let parsedRedirectUrl = url . parse ( 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 ( ) ;
// let's make the request with the new redirectUrl
info = this . _prepareRequest ( verb , parsedRedirectUrl , headers ) ;
response = yield this . requestRaw ( info , data ) ;
redirectsRemaining -- ;
}
if ( HttpResponseRetryCodes . indexOf ( response . message . statusCode ) == - 1 ) {
// If not a retry code, return immediately instead of retrying
return response ;
}
numTries += 1 ;
if ( numTries < maxTries ) {
yield response . readBody ( ) ;
yield this . _performExponentialBackoff ( numTries ) ;
}
}
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 ;
}
/ * *
* Raw request .
* @ param info
* @ param data
* /
requestRaw ( info , data ) {
return new Promise ( ( resolve , reject ) => {
let callbackForResult = function ( err , res ) {
if ( err ) {
reject ( err ) ;
}
resolve ( res ) ;
} ;
this . requestRawWithCallback ( info , data , callbackForResult ) ;
} ) ;
}
/ * *
* Raw request with callback .
* @ param info
* @ param data
* @ param onResult
* /
requestRawWithCallback ( info , data , onResult ) {
let socket ;
let isDataString = typeof ( data ) === 'string' ;
if ( typeof ( data ) === 'string' ) {
info . options . headers [ "Content-Length" ] = Buffer . byteLength ( data , 'utf8' ) ;
}
let callbackCalled = false ;
let handleResult = ( err , res ) => {
if ( ! callbackCalled ) {
callbackCalled = true ;
onResult ( err , res ) ;
}
} ;
let req = info . httpModule . request ( info . options , ( msg ) => {
let res = new HttpClientResponse ( msg ) ;
handleResult ( null , res ) ;
} ) ;
req . on ( 'socket' , ( sock ) => {
socket = sock ;
} ) ;
// If we ever get disconnected, we want the socket to timeout eventually
req . setTimeout ( this . _socketTimeout || 3 * 60000 , ( ) => {
if ( socket ) {
socket . end ( ) ;
}
handleResult ( new Error ( 'Request timeout: ' + info . options . path ) , null ) ;
} ) ;
req . on ( 'error' , function ( err ) {
// err has statusCode property
// res should have headers
handleResult ( err , null ) ;
} ) ;
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 ( ) ;
}
}
_prepareRequest ( method , requestUrl , headers ) {
const info = { } ;
info . parsedUrl = requestUrl ;
const usingSsl = info . parsedUrl . protocol === 'https:' ;
info . httpModule = usingSsl ? https : 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 && ! this . _isPresigned ( url . format ( requestUrl ) ) ) {
this . handlers . forEach ( ( handler ) => {
handler . prepareRequest ( info . options ) ;
} ) ;
}
return info ;
}
_isPresigned ( requestUrl ) {
if ( this . requestOptions && this . requestOptions . presignedUrlPatterns ) {
const patterns = this . requestOptions . presignedUrlPatterns ;
for ( let i = 0 ; i < patterns . length ; i ++ ) {
if ( requestUrl . match ( patterns [ i ] ) ) {
return true ;
}
}
}
return false ;
}
_mergeHeaders ( headers ) {
const lowercaseKeys = obj => Object . keys ( obj ) . reduce ( ( c , k ) => ( c [ k . toLowerCase ( ) ] = obj [ k ] , c ) , { } ) ;
if ( this . requestOptions && this . requestOptions . headers ) {
return Object . assign ( { } , lowercaseKeys ( this . requestOptions . headers ) , lowercaseKeys ( headers ) ) ;
}
return lowercaseKeys ( headers || { } ) ;
}
_getAgent ( parsedUrl ) {
let agent ;
let proxy = this . _getProxy ( parsedUrl ) ;
let useProxy = proxy . proxyUrl && proxy . proxyUrl . hostname && ! this . _isMatchInBypassProxyList ( parsedUrl ) ;
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 || http . globalAgent . maxSockets ;
}
if ( useProxy ) {
// If using proxy, need tunnel
if ( ! tunnel ) {
tunnel = _ _webpack _require _ _ ( 413 ) ;
}
const agentOptions = {
maxSockets : maxSockets ,
keepAlive : this . _keepAlive ,
proxy : {
proxyAuth : proxy . proxyAuth ,
host : proxy . proxyUrl . hostname ,
port : proxy . proxyUrl . port
} ,
} ;
let tunnelAgent ;
const overHttps = proxy . proxyUrl . protocol === 'https:' ;
if ( usingSsl ) {
tunnelAgent = overHttps ? tunnel . httpsOverHttps : tunnel . httpsOverHttp ;
}
else {
tunnelAgent = overHttps ? tunnel . httpOverHttps : tunnel . httpOverHttp ;
}
agent = tunnelAgent ( agentOptions ) ;
this . _proxyAgent = agent ;
}
// 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 https . Agent ( options ) : new http . Agent ( options ) ;
this . _agent = agent ;
}
// if not using private agent and tunnel agent isn't setup then use global agent
if ( ! agent ) {
agent = usingSsl ? https . globalAgent : 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 } ) ;
}
if ( usingSsl && this . _certConfig ) {
agent . options = Object . assign ( agent . options || { } , { ca : this . _ca , cert : this . _cert , key : this . _key , passphrase : this . _certConfig . passphrase } ) ;
}
return agent ;
}
_getProxy ( parsedUrl ) {
let usingSsl = parsedUrl . protocol === 'https:' ;
let proxyConfig = this . _httpProxy ;
// fallback to http_proxy and https_proxy env
let https _proxy = process . env [ EnvironmentVariables . HTTPS _PROXY ] ;
let http _proxy = process . env [ EnvironmentVariables . HTTP _PROXY ] ;
if ( ! proxyConfig ) {
if ( https _proxy && usingSsl ) {
proxyConfig = {
proxyUrl : https _proxy
} ;
}
else if ( http _proxy ) {
proxyConfig = {
proxyUrl : http _proxy
} ;
}
}
let proxyUrl ;
let proxyAuth ;
if ( proxyConfig ) {
if ( proxyConfig . proxyUrl . length > 0 ) {
proxyUrl = url . parse ( proxyConfig . proxyUrl ) ;
}
if ( proxyConfig . proxyUsername || proxyConfig . proxyPassword ) {
proxyAuth = proxyConfig . proxyUsername + ":" + proxyConfig . proxyPassword ;
}
}
return { proxyUrl : proxyUrl , proxyAuth : proxyAuth } ;
}
_isMatchInBypassProxyList ( parsedUrl ) {
if ( ! this . _httpProxyBypassHosts ) {
return false ;
}
let bypass = false ;
this . _httpProxyBypassHosts . forEach ( bypassHost => {
if ( bypassHost . test ( parsedUrl . href ) ) {
bypass = true ;
}
} ) ;
return bypass ;
}
_performExponentialBackoff ( retryNumber ) {
retryNumber = Math . min ( ExponentialBackoffCeiling , retryNumber ) ;
const ms = ExponentialBackoffTimeSlice * Math . pow ( 2 , retryNumber ) ;
return new Promise ( resolve => setTimeout ( ( ) => resolve ( ) , ms ) ) ;
}
}
exports . HttpClient = HttpClient ;
2020-01-06 10:37:12 +00:00
/***/ } )
2020-01-06 11:03:18 +00:00
/******/ } ) ;