@ -90,6 +90,8 @@ function restoreCache(paths, primaryKey, restoreKeys, options) {
 
			
		
	
		
		
			
				
					
					            checkKey ( key ) ; 
            checkKey ( key ) ; 
 
			
		
	
		
		
			
				
					
					        } 
        } 
 
			
		
	
		
		
			
				
					
					        const  compressionMethod  =  yield  utils . getCompressionMethod ( ) ; 
        const  compressionMethod  =  yield  utils . getCompressionMethod ( ) ; 
 
			
		
	
		
		
			
				
					
					        let  archivePath  =  '' ; 
 
			
		
	
		
		
			
				
					
					        try  { 
 
			
		
	
		
		
			
				
					
					            // path are needed to compute version
 
            // path are needed to compute version
 
 
			
		
	
		
		
			
				
					
					            const  cacheEntry  =  yield  cacheHttpClient . getCacheEntry ( keys ,  paths ,  { 
            const  cacheEntry  =  yield  cacheHttpClient . getCacheEntry ( keys ,  paths ,  { 
 
			
		
	
		
		
			
				
					
					                compressionMethod 
                compressionMethod 
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -98,9 +100,8 @@ function restoreCache(paths, primaryKey, restoreKeys, options) {
 
			
		
	
		
		
			
				
					
					                // Cache not found
 
                // Cache not found
 
 
			
		
	
		
		
			
				
					
					                return  undefined ; 
                return  undefined ; 
 
			
		
	
		
		
			
				
					
					            } 
            } 
 
			
		
	
		
		
			
				
					
					        const archivePath  =  path . join ( yield  utils . createTempDirectory ( ) ,  utils . getCacheFileName ( compressionMethod ) ) ; 
             archivePath  =  path . join ( yield  utils . createTempDirectory ( ) ,  utils . getCacheFileName ( compressionMethod ) ) ; 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					            core . debug ( ` Archive Path:  ${ archivePath } ` ) ; 
            core . debug ( ` Archive Path:  ${ archivePath } ` ) ; 
 
			
		
	
		
		
			
				
					
					        try  { 
 
			
		
	
		
		
			
				
					
					            // Download the cache from the cache entry
 
            // Download the cache from the cache entry
 
 
			
		
	
		
		
			
				
					
					            yield  cacheHttpClient . downloadCache ( cacheEntry . archiveLocation ,  archivePath ,  options ) ; 
            yield  cacheHttpClient . downloadCache ( cacheEntry . archiveLocation ,  archivePath ,  options ) ; 
 
			
		
	
		
		
			
				
					
					            if  ( core . isDebug ( ) )  { 
            if  ( core . isDebug ( ) )  { 
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -110,6 +111,17 @@ function restoreCache(paths, primaryKey, restoreKeys, options) {
 
			
		
	
		
		
			
				
					
					            core . info ( ` Cache Size: ~ ${ Math . round ( archiveFileSize  /  ( 1024  *  1024 ) ) }  MB ( ${ archiveFileSize }  B) ` ) ; 
            core . info ( ` Cache Size: ~ ${ Math . round ( archiveFileSize  /  ( 1024  *  1024 ) ) }  MB ( ${ archiveFileSize }  B) ` ) ; 
 
			
		
	
		
		
			
				
					
					            yield  tar _1 . extractTar ( archivePath ,  compressionMethod ) ; 
            yield  tar _1 . extractTar ( archivePath ,  compressionMethod ) ; 
 
			
		
	
		
		
			
				
					
					            core . info ( 'Cache restored successfully' ) ; 
            core . info ( 'Cache restored successfully' ) ; 
 
			
		
	
		
		
			
				
					
					            return  cacheEntry . cacheKey ; 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					        catch  ( error )  { 
 
			
		
	
		
		
			
				
					
					            const  typedError  =  error ; 
 
			
		
	
		
		
			
				
					
					            if  ( typedError . name  ===  ValidationError . name )  { 
 
			
		
	
		
		
			
				
					
					                throw  error ; 
 
			
		
	
		
		
			
				
					
					            } 
 
			
		
	
		
		
			
				
					
					            else  { 
 
			
		
	
		
		
			
				
					
					                // Supress all non-validation cache related errors because caching should be optional
 
 
			
		
	
		
		
			
				
					
					                core . warning ( ` Failed to restore:  ${ error . message } ` ) ; 
 
			
		
	
		
		
			
				
					
					            } 
 
			
		
	
		
		
			
				
					
					        } 
        } 
 
			
		
	
		
		
			
				
					
					        finally  { 
        finally  { 
 
			
		
	
		
		
			
				
					
					            // Try to delete the archive to save space
 
            // Try to delete the archive to save space
 
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -120,7 +132,7 @@ function restoreCache(paths, primaryKey, restoreKeys, options) {
 
			
		
	
		
		
			
				
					
					                core . debug ( ` Failed to delete archive:  ${ error } ` ) ; 
                core . debug ( ` Failed to delete archive:  ${ error } ` ) ; 
 
			
		
	
		
		
			
				
					
					            } 
            } 
 
			
		
	
		
		
			
				
					
					        } 
        } 
 
			
		
	
		
		
			
				
					
					        return  cacheEntry . cacheKey ; 
        return  undefined ; 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    } ) ; 
    } ) ; 
 
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					exports . restoreCache  =  restoreCache ; exports . restoreCache  =  restoreCache ;  
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -138,10 +150,13 @@ function saveCache(paths, key, options) {
 
			
		
	
		
		
			
				
					
					        checkPaths ( paths ) ; 
        checkPaths ( paths ) ; 
 
			
		
	
		
		
			
				
					
					        checkKey ( key ) ; 
        checkKey ( key ) ; 
 
			
		
	
		
		
			
				
					
					        const  compressionMethod  =  yield  utils . getCompressionMethod ( ) ; 
        const  compressionMethod  =  yield  utils . getCompressionMethod ( ) ; 
 
			
		
	
		
		
			
				
					
					        let  cacheId  =  null ; 
        let  cacheId  =  - 1 ; 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					        const  cachePaths  =  yield  utils . resolvePaths ( paths ) ; 
        const  cachePaths  =  yield  utils . resolvePaths ( paths ) ; 
 
			
		
	
		
		
			
				
					
					        core . debug ( 'Cache Paths:' ) ; 
        core . debug ( 'Cache Paths:' ) ; 
 
			
		
	
		
		
			
				
					
					        core . debug ( ` ${ JSON . stringify ( cachePaths ) } ` ) ; 
        core . debug ( ` ${ JSON . stringify ( cachePaths ) } ` ) ; 
 
			
		
	
		
		
			
				
					
					        if  ( cachePaths . length  ===  0 )  { 
 
			
		
	
		
		
			
				
					
					            throw  new  Error ( ` Path Validation Error: Path(s) specified in the action for caching do(es) not exist, hence no cache is being saved. ` ) ; 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					        const  archiveFolder  =  yield  utils . createTempDirectory ( ) ; 
        const  archiveFolder  =  yield  utils . createTempDirectory ( ) ; 
 
			
		
	
		
		
			
				
					
					        const  archivePath  =  path . join ( archiveFolder ,  utils . getCacheFileName ( compressionMethod ) ) ; 
        const  archivePath  =  path . join ( archiveFolder ,  utils . getCacheFileName ( compressionMethod ) ) ; 
 
			
		
	
		
		
			
				
					
					        core . debug ( ` Archive Path:  ${ archivePath } ` ) ; 
        core . debug ( ` Archive Path:  ${ archivePath } ` ) ; 
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -174,6 +189,18 @@ function saveCache(paths, key, options) {
 
			
		
	
		
		
			
				
					
					            core . debug ( ` Saving Cache (ID:  ${ cacheId } ) ` ) ; 
            core . debug ( ` Saving Cache (ID:  ${ cacheId } ) ` ) ; 
 
			
		
	
		
		
			
				
					
					            yield  cacheHttpClient . saveCache ( cacheId ,  archivePath ,  options ) ; 
            yield  cacheHttpClient . saveCache ( cacheId ,  archivePath ,  options ) ; 
 
			
		
	
		
		
			
				
					
					        } 
        } 
 
			
		
	
		
		
			
				
					
					        catch  ( error )  { 
 
			
		
	
		
		
			
				
					
					            const  typedError  =  error ; 
 
			
		
	
		
		
			
				
					
					            if  ( typedError . name  ===  ValidationError . name )  { 
 
			
		
	
		
		
			
				
					
					                throw  error ; 
 
			
		
	
		
		
			
				
					
					            } 
 
			
		
	
		
		
			
				
					
					            else  if  ( typedError . name  ===  ReserveCacheError . name )  { 
 
			
		
	
		
		
			
				
					
					                core . info ( ` Failed to save:  ${ typedError . message } ` ) ; 
 
			
		
	
		
		
			
				
					
					            } 
 
			
		
	
		
		
			
				
					
					            else  { 
 
			
		
	
		
		
			
				
					
					                core . warning ( ` Failed to save:  ${ typedError . message } ` ) ; 
 
			
		
	
		
		
			
				
					
					            } 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					        finally  { 
        finally  { 
 
			
		
	
		
		
			
				
					
					            // Try to delete the archive to save space
 
            // Try to delete the archive to save space
 
 
			
		
	
		
		
			
				
					
					            try  { 
            try  { 
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -214,8 +241,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
 
			
		
	
		
		
			
				
					
					} ; } ;  
			
		
	
		
		
			
				
					
					Object . defineProperty ( exports ,  "__esModule" ,  ( {  value :  true  } ) ) ; Object . defineProperty ( exports ,  "__esModule" ,  ( {  value :  true  } ) ) ;  
			
		
	
		
		
			
				
					
					const  core  =  _ _importStar ( _ _nccwpck _require _ _ ( 2186 ) ) ; const  core  =  _ _importStar ( _ _nccwpck _require _ _ ( 2186 ) ) ;  
			
		
	
		
		
			
				
					
					const  http _client _1  =  _ _nccwpck _require _ _ ( 99 25) ; const  http _client _1  =  _ _nccwpck _require _ _ ( 18 25) ;  
			
				
				
			
		
	
		
		
			
				
					
					const  auth _1  =  _ _nccwpck _require _ _ ( 370 2) ; const  auth _1  =  _ _nccwpck _require _ _ ( 001 ) ;  
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					const  crypto  =  _ _importStar ( _ _nccwpck _require _ _ ( 6113 ) ) ; const  crypto  =  _ _importStar ( _ _nccwpck _require _ _ ( 6113 ) ) ;  
			
		
	
		
		
			
				
					
					const  fs  =  _ _importStar ( _ _nccwpck _require _ _ ( 7147 ) ) ; const  fs  =  _ _importStar ( _ _nccwpck _require _ _ ( 7147 ) ) ;  
			
		
	
		
		
			
				
					
					const  url _1  =  _ _nccwpck _require _ _ ( 7310 ) ; const  url _1  =  _ _nccwpck _require _ _ ( 7310 ) ;  
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -647,7 +674,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
 
			
		
	
		
		
			
				
					
					} ; } ;  
			
		
	
		
		
			
				
					
					Object . defineProperty ( exports ,  "__esModule" ,  ( {  value :  true  } ) ) ; Object . defineProperty ( exports ,  "__esModule" ,  ( {  value :  true  } ) ) ;  
			
		
	
		
		
			
				
					
					const  core  =  _ _importStar ( _ _nccwpck _require _ _ ( 2186 ) ) ; const  core  =  _ _importStar ( _ _nccwpck _require _ _ ( 2186 ) ) ;  
			
		
	
		
		
			
				
					
					const  http _client _1  =  _ _nccwpck _require _ _ ( 99 25) ; const  http _client _1  =  _ _nccwpck _require _ _ ( 18 25) ;  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					const  storage _blob _1  =  _ _nccwpck _require _ _ ( 4100 ) ; const  storage _blob _1  =  _ _nccwpck _require _ _ ( 4100 ) ;  
			
		
	
		
		
			
				
					
					const  buffer  =  _ _importStar ( _ _nccwpck _require _ _ ( 4300 ) ) ; const  buffer  =  _ _importStar ( _ _nccwpck _require _ _ ( 4300 ) ) ;  
			
		
	
		
		
			
				
					
					const  fs  =  _ _importStar ( _ _nccwpck _require _ _ ( 7147 ) ) ; const  fs  =  _ _importStar ( _ _nccwpck _require _ _ ( 7147 ) ) ;  
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -885,7 +912,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
 
			
		
	
		
		
			
				
					
					} ; } ;  
			
		
	
		
		
			
				
					
					Object . defineProperty ( exports ,  "__esModule" ,  ( {  value :  true  } ) ) ; Object . defineProperty ( exports ,  "__esModule" ,  ( {  value :  true  } ) ) ;  
			
		
	
		
		
			
				
					
					const  core  =  _ _importStar ( _ _nccwpck _require _ _ ( 2186 ) ) ; const  core  =  _ _importStar ( _ _nccwpck _require _ _ ( 2186 ) ) ;  
			
		
	
		
		
			
				
					
					const  http _client _1  =  _ _nccwpck _require _ _ ( 99 25) ; const  http _client _1  =  _ _nccwpck _require _ _ ( 18 25) ;  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					const  constants _1  =  _ _nccwpck _require _ _ ( 8840 ) ; const  constants _1  =  _ _nccwpck _require _ _ ( 8840 ) ;  
			
		
	
		
		
			
				
					
					function  isSuccessStatusCode ( statusCode )  { function  isSuccessStatusCode ( statusCode )  {  
			
		
	
		
		
			
				
					
					    if  ( ! statusCode )  { 
    if  ( ! statusCode )  { 
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -962,7 +989,7 @@ function retryTypedResponse(name, method, maxAttempts = constants_1.DefaultRetry
 
			
		
	
		
		
			
				
					
					    return  _ _awaiter ( this ,  void  0 ,  void  0 ,  function *  ( )  { 
    return  _ _awaiter ( this ,  void  0 ,  void  0 ,  function *  ( )  { 
 
			
		
	
		
		
			
				
					
					        return  yield  retry ( name ,  method ,  ( response )  =>  response . statusCode ,  maxAttempts ,  delay ,  
        return  yield  retry ( name ,  method ,  ( response )  =>  response . statusCode ,  maxAttempts ,  delay ,  
 
			
		
	
		
		
			
				
					
					        // If the error object contains the statusCode property, extract it and return
 
        // If the error object contains the statusCode property, extract it and return
 
 
			
		
	
		
		
			
				
					
					        // an  I TypedResponse<T> so it can be processed by the retry logic.
        // an  TypedResponse<T> so it can be processed by the retry logic.
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					        ( error )  =>  { 
        ( error )  =>  { 
 
			
		
	
		
		
			
				
					
					            if  ( error  instanceof  http _client _1 . HttpClientError )  { 
            if  ( error  instanceof  http _client _1 . HttpClientError )  { 
 
			
		
	
		
		
			
				
					
					                return  { 
                return  { 
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -1120,6 +1147,8 @@ function createTar(archiveFolder, sourceDirectories, compressionMethod) {
 
			
		
	
		
		
			
				
					
					            ... getCompressionProgram ( ) , 
            ... getCompressionProgram ( ) , 
 
			
		
	
		
		
			
				
					
					            '-cf' , 
            '-cf' , 
 
			
		
	
		
		
			
				
					
					            cacheFileName . replace ( new  RegExp ( ` \\ ${ path . sep } ` ,  'g' ) ,  '/' ) , 
            cacheFileName . replace ( new  RegExp ( ` \\ ${ path . sep } ` ,  'g' ) ,  '/' ) , 
 
			
		
	
		
		
			
				
					
					            '--exclude' , 
 
			
		
	
		
		
			
				
					
					            cacheFileName . replace ( new  RegExp ( ` \\ ${ path . sep } ` ,  'g' ) ,  '/' ) , 
 
			
		
	
		
		
			
				
					
					            '-P' , 
            '-P' , 
 
			
		
	
		
		
			
				
					
					            '-C' , 
            '-C' , 
 
			
		
	
		
		
			
				
					
					            workingDirectory . replace ( new  RegExp ( ` \\ ${ path . sep } ` ,  'g' ) ,  '/' ) , 
            workingDirectory . replace ( new  RegExp ( ` \\ ${ path . sep } ` ,  'g' ) ,  '/' ) , 
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -2292,6 +2321,774 @@ exports.SearchState = SearchState;
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					/***/  } ) , /***/  } ) ,  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					/***/  2001 :  
			
		
	
		
		
			
				
					
					/***/  ( function ( _ _unused _webpack _module ,  exports )  {  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					"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  } ) ) ;  
			
		
	
		
		
			
				
					
					exports . PersonalAccessTokenCredentialHandler  =  exports . BearerCredentialHandler  =  exports . BasicCredentialHandler  =  void  0 ;  
			
		
	
		
		
			
				
					
					class  BasicCredentialHandler  {  
			
		
	
		
		
			
				
					
					    constructor ( username ,  password )  { 
 
			
		
	
		
		
			
				
					
					        this . username  =  username ; 
 
			
		
	
		
		
			
				
					
					        this . password  =  password ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    prepareRequest ( options )  { 
 
			
		
	
		
		
			
				
					
					        if  ( ! options . headers )  { 
 
			
		
	
		
		
			
				
					
					            throw  Error ( 'The request has no headers' ) ; 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					        options . headers [ 'Authorization' ]  =  ` Basic  ${ Buffer . from ( ` ${ this . username } : ${ this . password } ` ) . toString ( 'base64' ) } ` ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    // This handler cannot handle 401
 
 
			
		
	
		
		
			
				
					
					    canHandleAuthentication ( )  { 
 
			
		
	
		
		
			
				
					
					        return  false ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    handleAuthentication ( )  { 
 
			
		
	
		
		
			
				
					
					        return  _ _awaiter ( this ,  void  0 ,  void  0 ,  function *  ( )  { 
 
			
		
	
		
		
			
				
					
					            throw  new  Error ( 'not implemented' ) ; 
 
			
		
	
		
		
			
				
					
					        } ) ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					}  
			
		
	
		
		
			
				
					
					exports . BasicCredentialHandler  =  BasicCredentialHandler ;  
			
		
	
		
		
			
				
					
					class  BearerCredentialHandler  {  
			
		
	
		
		
			
				
					
					    constructor ( token )  { 
 
			
		
	
		
		
			
				
					
					        this . token  =  token ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    // currently implements pre-authorization
 
 
			
		
	
		
		
			
				
					
					    // TODO: support preAuth = false where it hooks on 401
 
 
			
		
	
		
		
			
				
					
					    prepareRequest ( options )  { 
 
			
		
	
		
		
			
				
					
					        if  ( ! options . headers )  { 
 
			
		
	
		
		
			
				
					
					            throw  Error ( 'The request has no headers' ) ; 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					        options . headers [ 'Authorization' ]  =  ` Bearer  ${ this . token } ` ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    // This handler cannot handle 401
 
 
			
		
	
		
		
			
				
					
					    canHandleAuthentication ( )  { 
 
			
		
	
		
		
			
				
					
					        return  false ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    handleAuthentication ( )  { 
 
			
		
	
		
		
			
				
					
					        return  _ _awaiter ( this ,  void  0 ,  void  0 ,  function *  ( )  { 
 
			
		
	
		
		
			
				
					
					            throw  new  Error ( 'not implemented' ) ; 
 
			
		
	
		
		
			
				
					
					        } ) ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					}  
			
		
	
		
		
			
				
					
					exports . BearerCredentialHandler  =  BearerCredentialHandler ;  
			
		
	
		
		
			
				
					
					class  PersonalAccessTokenCredentialHandler  {  
			
		
	
		
		
			
				
					
					    constructor ( token )  { 
 
			
		
	
		
		
			
				
					
					        this . token  =  token ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    // currently implements pre-authorization
 
 
			
		
	
		
		
			
				
					
					    // TODO: support preAuth = false where it hooks on 401
 
 
			
		
	
		
		
			
				
					
					    prepareRequest ( options )  { 
 
			
		
	
		
		
			
				
					
					        if  ( ! options . headers )  { 
 
			
		
	
		
		
			
				
					
					            throw  Error ( 'The request has no headers' ) ; 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					        options . headers [ 'Authorization' ]  =  ` Basic  ${ Buffer . from ( ` PAT: ${ this . token } ` ) . toString ( 'base64' ) } ` ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    // This handler cannot handle 401
 
 
			
		
	
		
		
			
				
					
					    canHandleAuthentication ( )  { 
 
			
		
	
		
		
			
				
					
					        return  false ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    handleAuthentication ( )  { 
 
			
		
	
		
		
			
				
					
					        return  _ _awaiter ( this ,  void  0 ,  void  0 ,  function *  ( )  { 
 
			
		
	
		
		
			
				
					
					            throw  new  Error ( 'not implemented' ) ; 
 
			
		
	
		
		
			
				
					
					        } ) ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					}  
			
		
	
		
		
			
				
					
					exports . PersonalAccessTokenCredentialHandler  =  PersonalAccessTokenCredentialHandler ;  
			
		
	
		
		
			
				
					
					//# sourceMappingURL=auth.js.map
  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					/***/  } ) ,  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					/***/  1825 :  
			
		
	
		
		
			
				
					
					/***/  ( function ( _ _unused _webpack _module ,  exports ,  _ _nccwpck _require _ _ )  {  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					"use strict" ;  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					/* eslint-disable @typescript-eslint/no-explicit-any */  
			
		
	
		
		
			
				
					
					var  _ _createBinding  =  ( this  &&  this . _ _createBinding )  ||  ( Object . create  ?  ( function ( o ,  m ,  k ,  k2 )  {  
			
		
	
		
		
			
				
					
					    if  ( k2  ===  undefined )  k2  =  k ; 
 
			
		
	
		
		
			
				
					
					    Object . defineProperty ( o ,  k2 ,  {  enumerable :  true ,  get :  function ( )  {  return  m [ k ] ;  }  } ) ; 
 
			
		
	
		
		
			
				
					
					} )  :  ( function ( o ,  m ,  k ,  k2 )  {  
			
		
	
		
		
			
				
					
					    if  ( k2  ===  undefined )  k2  =  k ; 
 
			
		
	
		
		
			
				
					
					    o [ k2 ]  =  m [ k ] ; 
 
			
		
	
		
		
			
				
					
					} ) ) ;  
			
		
	
		
		
			
				
					
					var  _ _setModuleDefault  =  ( this  &&  this . _ _setModuleDefault )  ||  ( Object . create  ?  ( function ( o ,  v )  {  
			
		
	
		
		
			
				
					
					    Object . defineProperty ( o ,  "default" ,  {  enumerable :  true ,  value :  v  } ) ; 
 
			
		
	
		
		
			
				
					
					} )  :  function ( o ,  v )  {  
			
		
	
		
		
			
				
					
					    o [ "default" ]  =  v ; 
 
			
		
	
		
		
			
				
					
					} ) ;  
			
		
	
		
		
			
				
					
					var  _ _importStar  =  ( this  &&  this . _ _importStar )  ||  function  ( mod )  {  
			
		
	
		
		
			
				
					
					    if  ( mod  &&  mod . _ _esModule )  return  mod ; 
 
			
		
	
		
		
			
				
					
					    var  result  =  { } ; 
 
			
		
	
		
		
			
				
					
					    if  ( mod  !=  null )  for  ( var  k  in  mod )  if  ( k  !==  "default"  &&  Object . hasOwnProperty . call ( mod ,  k ) )  _ _createBinding ( result ,  mod ,  k ) ; 
 
			
		
	
		
		
			
				
					
					    _ _setModuleDefault ( result ,  mod ) ; 
 
			
		
	
		
		
			
				
					
					    return  result ; 
 
			
		
	
		
		
			
				
					
					} ;  
			
		
	
		
		
			
				
					
					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  } ) ) ;  
			
		
	
		
		
			
				
					
					exports . HttpClient  =  exports . isHttps  =  exports . HttpClientResponse  =  exports . HttpClientError  =  exports . getProxyUrl  =  exports . MediaTypes  =  exports . Headers  =  exports . HttpCodes  =  void  0 ;  
			
		
	
		
		
			
				
					
					const  http  =  _ _importStar ( _ _nccwpck _require _ _ ( 3685 ) ) ;  
			
		
	
		
		
			
				
					
					const  https  =  _ _importStar ( _ _nccwpck _require _ _ ( 5687 ) ) ;  
			
		
	
		
		
			
				
					
					const  pm  =  _ _importStar ( _ _nccwpck _require _ _ ( 4977 ) ) ;  
			
		
	
		
		
			
				
					
					const  tunnel  =  _ _importStar ( _ _nccwpck _require _ _ ( 4294 ) ) ;  
			
		
	
		
		
			
				
					
					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  =  { } ) ) ;  
			
		
	
		
		
			
				
					
					var  Headers ;  
			
		
	
		
		
			
				
					
					( function  ( Headers )  {  
			
		
	
		
		
			
				
					
					    Headers [ "Accept" ]  =  "accept" ; 
 
			
		
	
		
		
			
				
					
					    Headers [ "ContentType" ]  =  "content-type" ; 
 
			
		
	
		
		
			
				
					
					} ) ( Headers  =  exports . Headers  ||  ( exports . Headers  =  { } ) ) ;  
			
		
	
		
		
			
				
					
					var  MediaTypes ;  
			
		
	
		
		
			
				
					
					( function  ( MediaTypes )  {  
			
		
	
		
		
			
				
					
					    MediaTypes [ "ApplicationJson" ]  =  "application/json" ; 
 
			
		
	
		
		
			
				
					
					} ) ( MediaTypes  =  exports . MediaTypes  ||  ( exports . MediaTypes  =  { } ) ) ;  
			
		
	
		
		
			
				
					
					/ * *  
			
		
	
		
		
			
				
					
					 *  Returns  the  proxy  URL ,  depending  upon  the  supplied  url  and  proxy  environment  variables . 
 
			
		
	
		
		
			
				
					
					 *  @ param  serverUrl   The  server  URL  where  the  request  will  be  sent .  For  example ,  https : //api.github.com
 
 
			
		
	
		
		
			
				
					
					 * / 
 
			
		
	
		
		
			
				
					
					function  getProxyUrl ( serverUrl )  {  
			
		
	
		
		
			
				
					
					    const  proxyUrl  =  pm . getProxyUrl ( new  URL ( serverUrl ) ) ; 
 
			
		
	
		
		
			
				
					
					    return  proxyUrl  ?  proxyUrl . href  :  '' ; 
 
			
		
	
		
		
			
				
					
					}  
			
		
	
		
		
			
				
					
					exports . getProxyUrl  =  getProxyUrl ;  
			
		
	
		
		
			
				
					
					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  HttpClientError  extends  Error  {  
			
		
	
		
		
			
				
					
					    constructor ( message ,  statusCode )  { 
 
			
		
	
		
		
			
				
					
					        super ( message ) ; 
 
			
		
	
		
		
			
				
					
					        this . name  =  'HttpClientError' ; 
 
			
		
	
		
		
			
				
					
					        this . statusCode  =  statusCode ; 
 
			
		
	
		
		
			
				
					
					        Object . setPrototypeOf ( this ,  HttpClientError . prototype ) ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					}  
			
		
	
		
		
			
				
					
					exports . HttpClientError  =  HttpClientError ;  
			
		
	
		
		
			
				
					
					class  HttpClientResponse  {  
			
		
	
		
		
			
				
					
					    constructor ( message )  { 
 
			
		
	
		
		
			
				
					
					        this . message  =  message ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    readBody ( )  { 
 
			
		
	
		
		
			
				
					
					        return  _ _awaiter ( this ,  void  0 ,  void  0 ,  function *  ( )  { 
 
			
		
	
		
		
			
				
					
					            return  new  Promise ( ( resolve )  =>  _ _awaiter ( this ,  void  0 ,  void  0 ,  function *  ( )  { 
 
			
		
	
		
		
			
				
					
					                let  output  =  Buffer . alloc ( 0 ) ; 
 
			
		
	
		
		
			
				
					
					                this . message . on ( 'data' ,  ( chunk )  =>  { 
 
			
		
	
		
		
			
				
					
					                    output  =  Buffer . concat ( [ output ,  chunk ] ) ; 
 
			
		
	
		
		
			
				
					
					                } ) ; 
 
			
		
	
		
		
			
				
					
					                this . message . on ( 'end' ,  ( )  =>  { 
 
			
		
	
		
		
			
				
					
					                    resolve ( output . toString ( ) ) ; 
 
			
		
	
		
		
			
				
					
					                } ) ; 
 
			
		
	
		
		
			
				
					
					            } ) ) ; 
 
			
		
	
		
		
			
				
					
					        } ) ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					}  
			
		
	
		
		
			
				
					
					exports . HttpClientResponse  =  HttpClientResponse ;  
			
		
	
		
		
			
				
					
					function  isHttps ( requestUrl )  {  
			
		
	
		
		
			
				
					
					    const  parsedUrl  =  new  URL ( requestUrl ) ; 
 
			
		
	
		
		
			
				
					
					    return  parsedUrl . protocol  ===  'https:' ; 
 
			
		
	
		
		
			
				
					
					}  
			
		
	
		
		
			
				
					
					exports . isHttps  =  isHttps ;  
			
		
	
		
		
			
				
					
					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  ||  [ ] ; 
 
			
		
	
		
		
			
				
					
					        this . requestOptions  =  requestOptions ; 
 
			
		
	
		
		
			
				
					
					        if  ( requestOptions )  { 
 
			
		
	
		
		
			
				
					
					            if  ( requestOptions . ignoreSslError  !=  null )  { 
 
			
		
	
		
		
			
				
					
					                this . _ignoreSslError  =  requestOptions . ignoreSslError ; 
 
			
		
	
		
		
			
				
					
					            } 
 
			
		
	
		
		
			
				
					
					            this . _socketTimeout  =  requestOptions . socketTimeout ; 
 
			
		
	
		
		
			
				
					
					            if  ( requestOptions . allowRedirects  !=  null )  { 
 
			
		
	
		
		
			
				
					
					                this . _allowRedirects  =  requestOptions . allowRedirects ; 
 
			
		
	
		
		
			
				
					
					            } 
 
			
		
	
		
		
			
				
					
					            if  ( requestOptions . allowRedirectDowngrade  !=  null )  { 
 
			
		
	
		
		
			
				
					
					                this . _allowRedirectDowngrade  =  requestOptions . allowRedirectDowngrade ; 
 
			
		
	
		
		
			
				
					
					            } 
 
			
		
	
		
		
			
				
					
					            if  ( requestOptions . maxRedirects  !=  null )  { 
 
			
		
	
		
		
			
				
					
					                this . _maxRedirects  =  Math . max ( requestOptions . maxRedirects ,  0 ) ; 
 
			
		
	
		
		
			
				
					
					            } 
 
			
		
	
		
		
			
				
					
					            if  ( requestOptions . keepAlive  !=  null )  { 
 
			
		
	
		
		
			
				
					
					                this . _keepAlive  =  requestOptions . keepAlive ; 
 
			
		
	
		
		
			
				
					
					            } 
 
			
		
	
		
		
			
				
					
					            if  ( requestOptions . allowRetries  !=  null )  { 
 
			
		
	
		
		
			
				
					
					                this . _allowRetries  =  requestOptions . allowRetries ; 
 
			
		
	
		
		
			
				
					
					            } 
 
			
		
	
		
		
			
				
					
					            if  ( requestOptions . maxRetries  !=  null )  { 
 
			
		
	
		
		
			
				
					
					                this . _maxRetries  =  requestOptions . maxRetries ; 
 
			
		
	
		
		
			
				
					
					            } 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    options ( requestUrl ,  additionalHeaders )  { 
 
			
		
	
		
		
			
				
					
					        return  _ _awaiter ( this ,  void  0 ,  void  0 ,  function *  ( )  { 
 
			
		
	
		
		
			
				
					
					            return  this . request ( 'OPTIONS' ,  requestUrl ,  null ,  additionalHeaders  ||  { } ) ; 
 
			
		
	
		
		
			
				
					
					        } ) ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    get ( requestUrl ,  additionalHeaders )  { 
 
			
		
	
		
		
			
				
					
					        return  _ _awaiter ( this ,  void  0 ,  void  0 ,  function *  ( )  { 
 
			
		
	
		
		
			
				
					
					            return  this . request ( 'GET' ,  requestUrl ,  null ,  additionalHeaders  ||  { } ) ; 
 
			
		
	
		
		
			
				
					
					        } ) ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    del ( requestUrl ,  additionalHeaders )  { 
 
			
		
	
		
		
			
				
					
					        return  _ _awaiter ( this ,  void  0 ,  void  0 ,  function *  ( )  { 
 
			
		
	
		
		
			
				
					
					            return  this . request ( 'DELETE' ,  requestUrl ,  null ,  additionalHeaders  ||  { } ) ; 
 
			
		
	
		
		
			
				
					
					        } ) ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    post ( requestUrl ,  data ,  additionalHeaders )  { 
 
			
		
	
		
		
			
				
					
					        return  _ _awaiter ( this ,  void  0 ,  void  0 ,  function *  ( )  { 
 
			
		
	
		
		
			
				
					
					            return  this . request ( 'POST' ,  requestUrl ,  data ,  additionalHeaders  ||  { } ) ; 
 
			
		
	
		
		
			
				
					
					        } ) ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    patch ( requestUrl ,  data ,  additionalHeaders )  { 
 
			
		
	
		
		
			
				
					
					        return  _ _awaiter ( this ,  void  0 ,  void  0 ,  function *  ( )  { 
 
			
		
	
		
		
			
				
					
					            return  this . request ( 'PATCH' ,  requestUrl ,  data ,  additionalHeaders  ||  { } ) ; 
 
			
		
	
		
		
			
				
					
					        } ) ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    put ( requestUrl ,  data ,  additionalHeaders )  { 
 
			
		
	
		
		
			
				
					
					        return  _ _awaiter ( this ,  void  0 ,  void  0 ,  function *  ( )  { 
 
			
		
	
		
		
			
				
					
					            return  this . request ( 'PUT' ,  requestUrl ,  data ,  additionalHeaders  ||  { } ) ; 
 
			
		
	
		
		
			
				
					
					        } ) ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    head ( requestUrl ,  additionalHeaders )  { 
 
			
		
	
		
		
			
				
					
					        return  _ _awaiter ( this ,  void  0 ,  void  0 ,  function *  ( )  { 
 
			
		
	
		
		
			
				
					
					            return  this . request ( 'HEAD' ,  requestUrl ,  null ,  additionalHeaders  ||  { } ) ; 
 
			
		
	
		
		
			
				
					
					        } ) ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    sendStream ( verb ,  requestUrl ,  stream ,  additionalHeaders )  { 
 
			
		
	
		
		
			
				
					
					        return  _ _awaiter ( this ,  void  0 ,  void  0 ,  function *  ( )  { 
 
			
		
	
		
		
			
				
					
					            return  this . request ( verb ,  requestUrl ,  stream ,  additionalHeaders ) ; 
 
			
		
	
		
		
			
				
					
					        } ) ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    / * * 
 
			
		
	
		
		
			
				
					
					     *  Gets  a  typed  object  from  an  endpoint 
 
			
		
	
		
		
			
				
					
					     *  Be  aware  that  not  found  returns  a  null .   Other  errors  ( 4 xx ,  5 xx )  reject  the  promise 
 
			
		
	
		
		
			
				
					
					     * / 
 
			
		
	
		
		
			
				
					
					    getJson ( requestUrl ,  additionalHeaders  =  { } )  { 
 
			
		
	
		
		
			
				
					
					        return  _ _awaiter ( this ,  void  0 ,  void  0 ,  function *  ( )  { 
 
			
		
	
		
		
			
				
					
					            additionalHeaders [ Headers . Accept ]  =  this . _getExistingOrDefaultHeader ( additionalHeaders ,  Headers . Accept ,  MediaTypes . ApplicationJson ) ; 
 
			
		
	
		
		
			
				
					
					            const  res  =  yield  this . get ( requestUrl ,  additionalHeaders ) ; 
 
			
		
	
		
		
			
				
					
					            return  this . _processResponse ( res ,  this . requestOptions ) ; 
 
			
		
	
		
		
			
				
					
					        } ) ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    postJson ( requestUrl ,  obj ,  additionalHeaders  =  { } )  { 
 
			
		
	
		
		
			
				
					
					        return  _ _awaiter ( this ,  void  0 ,  void  0 ,  function *  ( )  { 
 
			
		
	
		
		
			
				
					
					            const  data  =  JSON . stringify ( obj ,  null ,  2 ) ; 
 
			
		
	
		
		
			
				
					
					            additionalHeaders [ Headers . Accept ]  =  this . _getExistingOrDefaultHeader ( additionalHeaders ,  Headers . Accept ,  MediaTypes . ApplicationJson ) ; 
 
			
		
	
		
		
			
				
					
					            additionalHeaders [ Headers . ContentType ]  =  this . _getExistingOrDefaultHeader ( additionalHeaders ,  Headers . ContentType ,  MediaTypes . ApplicationJson ) ; 
 
			
		
	
		
		
			
				
					
					            const  res  =  yield  this . post ( requestUrl ,  data ,  additionalHeaders ) ; 
 
			
		
	
		
		
			
				
					
					            return  this . _processResponse ( res ,  this . requestOptions ) ; 
 
			
		
	
		
		
			
				
					
					        } ) ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    putJson ( requestUrl ,  obj ,  additionalHeaders  =  { } )  { 
 
			
		
	
		
		
			
				
					
					        return  _ _awaiter ( this ,  void  0 ,  void  0 ,  function *  ( )  { 
 
			
		
	
		
		
			
				
					
					            const  data  =  JSON . stringify ( obj ,  null ,  2 ) ; 
 
			
		
	
		
		
			
				
					
					            additionalHeaders [ Headers . Accept ]  =  this . _getExistingOrDefaultHeader ( additionalHeaders ,  Headers . Accept ,  MediaTypes . ApplicationJson ) ; 
 
			
		
	
		
		
			
				
					
					            additionalHeaders [ Headers . ContentType ]  =  this . _getExistingOrDefaultHeader ( additionalHeaders ,  Headers . ContentType ,  MediaTypes . ApplicationJson ) ; 
 
			
		
	
		
		
			
				
					
					            const  res  =  yield  this . put ( requestUrl ,  data ,  additionalHeaders ) ; 
 
			
		
	
		
		
			
				
					
					            return  this . _processResponse ( res ,  this . requestOptions ) ; 
 
			
		
	
		
		
			
				
					
					        } ) ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    patchJson ( requestUrl ,  obj ,  additionalHeaders  =  { } )  { 
 
			
		
	
		
		
			
				
					
					        return  _ _awaiter ( this ,  void  0 ,  void  0 ,  function *  ( )  { 
 
			
		
	
		
		
			
				
					
					            const  data  =  JSON . stringify ( obj ,  null ,  2 ) ; 
 
			
		
	
		
		
			
				
					
					            additionalHeaders [ Headers . Accept ]  =  this . _getExistingOrDefaultHeader ( additionalHeaders ,  Headers . Accept ,  MediaTypes . ApplicationJson ) ; 
 
			
		
	
		
		
			
				
					
					            additionalHeaders [ Headers . ContentType ]  =  this . _getExistingOrDefaultHeader ( additionalHeaders ,  Headers . ContentType ,  MediaTypes . ApplicationJson ) ; 
 
			
		
	
		
		
			
				
					
					            const  res  =  yield  this . patch ( requestUrl ,  data ,  additionalHeaders ) ; 
 
			
		
	
		
		
			
				
					
					            return  this . _processResponse ( res ,  this . requestOptions ) ; 
 
			
		
	
		
		
			
				
					
					        } ) ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    / * * 
 
			
		
	
		
		
			
				
					
					     *  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.' ) ; 
 
			
		
	
		
		
			
				
					
					            } 
 
			
		
	
		
		
			
				
					
					            const  parsedUrl  =  new  URL ( requestUrl ) ; 
 
			
		
	
		
		
			
				
					
					            let  info  =  this . _prepareRequest ( verb ,  parsedUrl ,  headers ) ; 
 
			
		
	
		
		
			
				
					
					            // Only perform retries on reads since writes may not be idempotent.
 
 
			
		
	
		
		
			
				
					
					            const  maxTries  =  this . _allowRetries  &&  RetryableHttpVerbs . includes ( verb ) 
 
			
		
	
		
		
			
				
					
					                ?  this . _maxRetries  +  1 
 
			
		
	
		
		
			
				
					
					                :  1 ; 
 
			
		
	
		
		
			
				
					
					            let  numTries  =  0 ; 
 
			
		
	
		
		
			
				
					
					            let  response ; 
 
			
		
	
		
		
			
				
					
					            do  { 
 
			
		
	
		
		
			
				
					
					                response  =  yield  this . requestRaw ( info ,  data ) ; 
 
			
		
	
		
		
			
				
					
					                // Check if it's an authentication challenge
 
 
			
		
	
		
		
			
				
					
					                if  ( response  && 
 
			
		
	
		
		
			
				
					
					                    response . message  && 
 
			
		
	
		
		
			
				
					
					                    response . message . statusCode  ===  HttpCodes . Unauthorized )  { 
 
			
		
	
		
		
			
				
					
					                    let  authenticationHandler ; 
 
			
		
	
		
		
			
				
					
					                    for  ( const  handler  of  this . handlers )  { 
 
			
		
	
		
		
			
				
					
					                        if  ( handler . canHandleAuthentication ( response ) )  { 
 
			
		
	
		
		
			
				
					
					                            authenticationHandler  =  handler ; 
 
			
		
	
		
		
			
				
					
					                            break ; 
 
			
		
	
		
		
			
				
					
					                        } 
 
			
		
	
		
		
			
				
					
					                    } 
 
			
		
	
		
		
			
				
					
					                    if  ( authenticationHandler )  { 
 
			
		
	
		
		
			
				
					
					                        return  authenticationHandler . handleAuthentication ( this ,  info ,  data ) ; 
 
			
		
	
		
		
			
				
					
					                    } 
 
			
		
	
		
		
			
				
					
					                    else  { 
 
			
		
	
		
		
			
				
					
					                        // We have received an unauthorized response but have no handlers to handle it.
 
 
			
		
	
		
		
			
				
					
					                        // Let the response return to the caller.
 
 
			
		
	
		
		
			
				
					
					                        return  response ; 
 
			
		
	
		
		
			
				
					
					                    } 
 
			
		
	
		
		
			
				
					
					                } 
 
			
		
	
		
		
			
				
					
					                let  redirectsRemaining  =  this . _maxRedirects ; 
 
			
		
	
		
		
			
				
					
					                while  ( response . message . statusCode  && 
 
			
		
	
		
		
			
				
					
					                    HttpRedirectCodes . includes ( response . message . statusCode )  && 
 
			
		
	
		
		
			
				
					
					                    this . _allowRedirects  && 
 
			
		
	
		
		
			
				
					
					                    redirectsRemaining  >  0 )  { 
 
			
		
	
		
		
			
				
					
					                    const  redirectUrl  =  response . message . headers [ 'location' ] ; 
 
			
		
	
		
		
			
				
					
					                    if  ( ! redirectUrl )  { 
 
			
		
	
		
		
			
				
					
					                        // if there's no location to redirect to, we won't
 
 
			
		
	
		
		
			
				
					
					                        break ; 
 
			
		
	
		
		
			
				
					
					                    } 
 
			
		
	
		
		
			
				
					
					                    const  parsedRedirectUrl  =  new  URL ( redirectUrl ) ; 
 
			
		
	
		
		
			
				
					
					                    if  ( parsedUrl . protocol  ===  'https:'  && 
 
			
		
	
		
		
			
				
					
					                        parsedUrl . protocol  !==  parsedRedirectUrl . protocol  && 
 
			
		
	
		
		
			
				
					
					                        ! this . _allowRedirectDowngrade )  { 
 
			
		
	
		
		
			
				
					
					                        throw  new  Error ( 'Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.' ) ; 
 
			
		
	
		
		
			
				
					
					                    } 
 
			
		
	
		
		
			
				
					
					                    // we need to finish reading the response before reassigning response
 
 
			
		
	
		
		
			
				
					
					                    // which will leak the open socket.
 
 
			
		
	
		
		
			
				
					
					                    yield  response . readBody ( ) ; 
 
			
		
	
		
		
			
				
					
					                    // strip authorization header if redirected to a different hostname
 
 
			
		
	
		
		
			
				
					
					                    if  ( parsedRedirectUrl . hostname  !==  parsedUrl . hostname )  { 
 
			
		
	
		
		
			
				
					
					                        for  ( const  header  in  headers )  { 
 
			
		
	
		
		
			
				
					
					                            // header names are case insensitive
 
 
			
		
	
		
		
			
				
					
					                            if  ( header . toLowerCase ( )  ===  'authorization' )  { 
 
			
		
	
		
		
			
				
					
					                                delete  headers [ header ] ; 
 
			
		
	
		
		
			
				
					
					                            } 
 
			
		
	
		
		
			
				
					
					                        } 
 
			
		
	
		
		
			
				
					
					                    } 
 
			
		
	
		
		
			
				
					
					                    // let's make the request with the new redirectUrl
 
 
			
		
	
		
		
			
				
					
					                    info  =  this . _prepareRequest ( verb ,  parsedRedirectUrl ,  headers ) ; 
 
			
		
	
		
		
			
				
					
					                    response  =  yield  this . requestRaw ( info ,  data ) ; 
 
			
		
	
		
		
			
				
					
					                    redirectsRemaining -- ; 
 
			
		
	
		
		
			
				
					
					                } 
 
			
		
	
		
		
			
				
					
					                if  ( ! response . message . statusCode  || 
 
			
		
	
		
		
			
				
					
					                    ! HttpResponseRetryCodes . includes ( response . message . statusCode ) )  { 
 
			
		
	
		
		
			
				
					
					                    // If not a retry code, return immediately instead of retrying
 
 
			
		
	
		
		
			
				
					
					                    return  response ; 
 
			
		
	
		
		
			
				
					
					                } 
 
			
		
	
		
		
			
				
					
					                numTries  +=  1 ; 
 
			
		
	
		
		
			
				
					
					                if  ( numTries  <  maxTries )  { 
 
			
		
	
		
		
			
				
					
					                    yield  response . readBody ( ) ; 
 
			
		
	
		
		
			
				
					
					                    yield  this . _performExponentialBackoff ( numTries ) ; 
 
			
		
	
		
		
			
				
					
					                } 
 
			
		
	
		
		
			
				
					
					            }  while  ( numTries  <  maxTries ) ; 
 
			
		
	
		
		
			
				
					
					            return  response ; 
 
			
		
	
		
		
			
				
					
					        } ) ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    / * * 
 
			
		
	
		
		
			
				
					
					     *  Needs  to  be  called  if  keepAlive  is  set  to  true  in  request  options . 
 
			
		
	
		
		
			
				
					
					     * / 
 
			
		
	
		
		
			
				
					
					    dispose ( )  { 
 
			
		
	
		
		
			
				
					
					        if  ( this . _agent )  { 
 
			
		
	
		
		
			
				
					
					            this . _agent . destroy ( ) ; 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					        this . _disposed  =  true ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    / * * 
 
			
		
	
		
		
			
				
					
					     *  Raw  request . 
 
			
		
	
		
		
			
				
					
					     *  @ param  info 
 
			
		
	
		
		
			
				
					
					     *  @ param  data 
 
			
		
	
		
		
			
				
					
					     * / 
 
			
		
	
		
		
			
				
					
					    requestRaw ( info ,  data )  { 
 
			
		
	
		
		
			
				
					
					        return  _ _awaiter ( this ,  void  0 ,  void  0 ,  function *  ( )  { 
 
			
		
	
		
		
			
				
					
					            return  new  Promise ( ( resolve ,  reject )  =>  { 
 
			
		
	
		
		
			
				
					
					                function  callbackForResult ( err ,  res )  { 
 
			
		
	
		
		
			
				
					
					                    if  ( err )  { 
 
			
		
	
		
		
			
				
					
					                        reject ( err ) ; 
 
			
		
	
		
		
			
				
					
					                    } 
 
			
		
	
		
		
			
				
					
					                    else  if  ( ! res )  { 
 
			
		
	
		
		
			
				
					
					                        // If `err` is not passed, then `res` must be passed.
 
 
			
		
	
		
		
			
				
					
					                        reject ( new  Error ( 'Unknown error' ) ) ; 
 
			
		
	
		
		
			
				
					
					                    } 
 
			
		
	
		
		
			
				
					
					                    else  { 
 
			
		
	
		
		
			
				
					
					                        resolve ( res ) ; 
 
			
		
	
		
		
			
				
					
					                    } 
 
			
		
	
		
		
			
				
					
					                } 
 
			
		
	
		
		
			
				
					
					                this . requestRawWithCallback ( info ,  data ,  callbackForResult ) ; 
 
			
		
	
		
		
			
				
					
					            } ) ; 
 
			
		
	
		
		
			
				
					
					        } ) ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    / * * 
 
			
		
	
		
		
			
				
					
					     *  Raw  request  with  callback . 
 
			
		
	
		
		
			
				
					
					     *  @ param  info 
 
			
		
	
		
		
			
				
					
					     *  @ param  data 
 
			
		
	
		
		
			
				
					
					     *  @ param  onResult 
 
			
		
	
		
		
			
				
					
					     * / 
 
			
		
	
		
		
			
				
					
					    requestRawWithCallback ( info ,  data ,  onResult )  { 
 
			
		
	
		
		
			
				
					
					        if  ( typeof  data  ===  'string' )  { 
 
			
		
	
		
		
			
				
					
					            if  ( ! info . options . headers )  { 
 
			
		
	
		
		
			
				
					
					                info . options . headers  =  { } ; 
 
			
		
	
		
		
			
				
					
					            } 
 
			
		
	
		
		
			
				
					
					            info . options . headers [ 'Content-Length' ]  =  Buffer . byteLength ( data ,  'utf8' ) ; 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					        let  callbackCalled  =  false ; 
 
			
		
	
		
		
			
				
					
					        function  handleResult ( err ,  res )  { 
 
			
		
	
		
		
			
				
					
					            if  ( ! callbackCalled )  { 
 
			
		
	
		
		
			
				
					
					                callbackCalled  =  true ; 
 
			
		
	
		
		
			
				
					
					                onResult ( err ,  res ) ; 
 
			
		
	
		
		
			
				
					
					            } 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					        const  req  =  info . httpModule . request ( info . options ,  ( msg )  =>  { 
 
			
		
	
		
		
			
				
					
					            const  res  =  new  HttpClientResponse ( msg ) ; 
 
			
		
	
		
		
			
				
					
					            handleResult ( undefined ,  res ) ; 
 
			
		
	
		
		
			
				
					
					        } ) ; 
 
			
		
	
		
		
			
				
					
					        let  socket ; 
 
			
		
	
		
		
			
				
					
					        req . on ( 'socket' ,  sock  =>  { 
 
			
		
	
		
		
			
				
					
					            socket  =  sock ; 
 
			
		
	
		
		
			
				
					
					        } ) ; 
 
			
		
	
		
		
			
				
					
					        // If we ever get disconnected, we want the socket to timeout eventually
 
 
			
		
	
		
		
			
				
					
					        req . setTimeout ( this . _socketTimeout  ||  3  *  60000 ,  ( )  =>  { 
 
			
		
	
		
		
			
				
					
					            if  ( socket )  { 
 
			
		
	
		
		
			
				
					
					                socket . end ( ) ; 
 
			
		
	
		
		
			
				
					
					            } 
 
			
		
	
		
		
			
				
					
					            handleResult ( new  Error ( ` Request timeout:  ${ info . options . path } ` ) ) ; 
 
			
		
	
		
		
			
				
					
					        } ) ; 
 
			
		
	
		
		
			
				
					
					        req . on ( 'error' ,  function  ( err )  { 
 
			
		
	
		
		
			
				
					
					            // err has statusCode property
 
 
			
		
	
		
		
			
				
					
					            // res should have headers
 
 
			
		
	
		
		
			
				
					
					            handleResult ( err ) ; 
 
			
		
	
		
		
			
				
					
					        } ) ; 
 
			
		
	
		
		
			
				
					
					        if  ( data  &&  typeof  data  ===  'string' )  { 
 
			
		
	
		
		
			
				
					
					            req . write ( data ,  'utf8' ) ; 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					        if  ( data  &&  typeof  data  !==  'string' )  { 
 
			
		
	
		
		
			
				
					
					            data . on ( 'close' ,  function  ( )  { 
 
			
		
	
		
		
			
				
					
					                req . end ( ) ; 
 
			
		
	
		
		
			
				
					
					            } ) ; 
 
			
		
	
		
		
			
				
					
					            data . pipe ( req ) ; 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					        else  { 
 
			
		
	
		
		
			
				
					
					            req . end ( ) ; 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    / * * 
 
			
		
	
		
		
			
				
					
					     *  Gets  an  http  agent .  This  function  is  useful  when  you  need  an  http  agent  that  handles 
 
			
		
	
		
		
			
				
					
					     *  routing  through  a  proxy  server  -  depending  upon  the  url  and  proxy  environment  variables . 
 
			
		
	
		
		
			
				
					
					     *  @ param  serverUrl   The  server  URL  where  the  request  will  be  sent .  For  example ,  https : //api.github.com
 
 
			
		
	
		
		
			
				
					
					     * / 
 
			
		
	
		
		
			
				
					
					    getAgent ( serverUrl )  { 
 
			
		
	
		
		
			
				
					
					        const  parsedUrl  =  new  URL ( serverUrl ) ; 
 
			
		
	
		
		
			
				
					
					        return  this . _getAgent ( parsedUrl ) ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    _prepareRequest ( method ,  requestUrl ,  headers )  { 
 
			
		
	
		
		
			
				
					
					        const  info  =  { } ; 
 
			
		
	
		
		
			
				
					
					        info . parsedUrl  =  requestUrl ; 
 
			
		
	
		
		
			
				
					
					        const  usingSsl  =  info . parsedUrl . protocol  ===  'https:' ; 
 
			
		
	
		
		
			
				
					
					        info . httpModule  =  usingSsl  ?  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 )  { 
 
			
		
	
		
		
			
				
					
					            for  ( const  handler  of  this . handlers )  { 
 
			
		
	
		
		
			
				
					
					                handler . prepareRequest ( info . options ) ; 
 
			
		
	
		
		
			
				
					
					            } 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					        return  info ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    _mergeHeaders ( headers )  { 
 
			
		
	
		
		
			
				
					
					        if  ( this . requestOptions  &&  this . requestOptions . headers )  { 
 
			
		
	
		
		
			
				
					
					            return  Object . assign ( { } ,  lowercaseKeys ( this . requestOptions . headers ) ,  lowercaseKeys ( headers  ||  { } ) ) ; 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					        return  lowercaseKeys ( headers  ||  { } ) ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    _getExistingOrDefaultHeader ( additionalHeaders ,  header ,  _default )  { 
 
			
		
	
		
		
			
				
					
					        let  clientHeader ; 
 
			
		
	
		
		
			
				
					
					        if  ( this . requestOptions  &&  this . requestOptions . headers )  { 
 
			
		
	
		
		
			
				
					
					            clientHeader  =  lowercaseKeys ( this . requestOptions . headers ) [ header ] ; 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					        return  additionalHeaders [ header ]  ||  clientHeader  ||  _default ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    _getAgent ( parsedUrl )  { 
 
			
		
	
		
		
			
				
					
					        let  agent ; 
 
			
		
	
		
		
			
				
					
					        const  proxyUrl  =  pm . getProxyUrl ( parsedUrl ) ; 
 
			
		
	
		
		
			
				
					
					        const  useProxy  =  proxyUrl  &&  proxyUrl . hostname ; 
 
			
		
	
		
		
			
				
					
					        if  ( this . _keepAlive  &&  useProxy )  { 
 
			
		
	
		
		
			
				
					
					            agent  =  this . _proxyAgent ; 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					        if  ( this . _keepAlive  &&  ! useProxy )  { 
 
			
		
	
		
		
			
				
					
					            agent  =  this . _agent ; 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					        // if agent is already assigned use that agent.
 
 
			
		
	
		
		
			
				
					
					        if  ( agent )  { 
 
			
		
	
		
		
			
				
					
					            return  agent ; 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					        const  usingSsl  =  parsedUrl . protocol  ===  'https:' ; 
 
			
		
	
		
		
			
				
					
					        let  maxSockets  =  100 ; 
 
			
		
	
		
		
			
				
					
					        if  ( this . requestOptions )  { 
 
			
		
	
		
		
			
				
					
					            maxSockets  =  this . requestOptions . maxSockets  ||  http . globalAgent . maxSockets ; 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					        // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis.
 
 
			
		
	
		
		
			
				
					
					        if  ( proxyUrl  &&  proxyUrl . hostname )  { 
 
			
		
	
		
		
			
				
					
					            const  agentOptions  =  { 
 
			
		
	
		
		
			
				
					
					                maxSockets , 
 
			
		
	
		
		
			
				
					
					                keepAlive :  this . _keepAlive , 
 
			
		
	
		
		
			
				
					
					                proxy :  Object . assign ( Object . assign ( { } ,  ( ( proxyUrl . username  ||  proxyUrl . password )  &&  { 
 
			
		
	
		
		
			
				
					
					                    proxyAuth :  ` ${ proxyUrl . username } : ${ proxyUrl . password } ` 
 
			
		
	
		
		
			
				
					
					                } ) ) ,  {  host :  proxyUrl . hostname ,  port :  proxyUrl . port  } ) 
 
			
		
	
		
		
			
				
					
					            } ; 
 
			
		
	
		
		
			
				
					
					            let  tunnelAgent ; 
 
			
		
	
		
		
			
				
					
					            const  overHttps  =  proxyUrl . protocol  ===  'https:' ; 
 
			
		
	
		
		
			
				
					
					            if  ( usingSsl )  { 
 
			
		
	
		
		
			
				
					
					                tunnelAgent  =  overHttps  ?  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  } ; 
 
			
		
	
		
		
			
				
					
					            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 
 
			
		
	
		
		
			
				
					
					            } ) ; 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					        return  agent ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    _performExponentialBackoff ( retryNumber )  { 
 
			
		
	
		
		
			
				
					
					        return  _ _awaiter ( this ,  void  0 ,  void  0 ,  function *  ( )  { 
 
			
		
	
		
		
			
				
					
					            retryNumber  =  Math . min ( ExponentialBackoffCeiling ,  retryNumber ) ; 
 
			
		
	
		
		
			
				
					
					            const  ms  =  ExponentialBackoffTimeSlice  *  Math . pow ( 2 ,  retryNumber ) ; 
 
			
		
	
		
		
			
				
					
					            return  new  Promise ( resolve  =>  setTimeout ( ( )  =>  resolve ( ) ,  ms ) ) ; 
 
			
		
	
		
		
			
				
					
					        } ) ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    _processResponse ( res ,  options )  { 
 
			
		
	
		
		
			
				
					
					        return  _ _awaiter ( this ,  void  0 ,  void  0 ,  function *  ( )  { 
 
			
		
	
		
		
			
				
					
					            return  new  Promise ( ( resolve ,  reject )  =>  _ _awaiter ( this ,  void  0 ,  void  0 ,  function *  ( )  { 
 
			
		
	
		
		
			
				
					
					                const  statusCode  =  res . message . statusCode  ||  0 ; 
 
			
		
	
		
		
			
				
					
					                const  response  =  { 
 
			
		
	
		
		
			
				
					
					                    statusCode , 
 
			
		
	
		
		
			
				
					
					                    result :  null , 
 
			
		
	
		
		
			
				
					
					                    headers :  { } 
 
			
		
	
		
		
			
				
					
					                } ; 
 
			
		
	
		
		
			
				
					
					                // not found leads to null obj returned
 
 
			
		
	
		
		
			
				
					
					                if  ( statusCode  ===  HttpCodes . NotFound )  { 
 
			
		
	
		
		
			
				
					
					                    resolve ( response ) ; 
 
			
		
	
		
		
			
				
					
					                } 
 
			
		
	
		
		
			
				
					
					                // get the result from the body
 
 
			
		
	
		
		
			
				
					
					                function  dateTimeDeserializer ( key ,  value )  { 
 
			
		
	
		
		
			
				
					
					                    if  ( typeof  value  ===  'string' )  { 
 
			
		
	
		
		
			
				
					
					                        const  a  =  new  Date ( value ) ; 
 
			
		
	
		
		
			
				
					
					                        if  ( ! isNaN ( a . valueOf ( ) ) )  { 
 
			
		
	
		
		
			
				
					
					                            return  a ; 
 
			
		
	
		
		
			
				
					
					                        } 
 
			
		
	
		
		
			
				
					
					                    } 
 
			
		
	
		
		
			
				
					
					                    return  value ; 
 
			
		
	
		
		
			
				
					
					                } 
 
			
		
	
		
		
			
				
					
					                let  obj ; 
 
			
		
	
		
		
			
				
					
					                let  contents ; 
 
			
		
	
		
		
			
				
					
					                try  { 
 
			
		
	
		
		
			
				
					
					                    contents  =  yield  res . readBody ( ) ; 
 
			
		
	
		
		
			
				
					
					                    if  ( contents  &&  contents . length  >  0 )  { 
 
			
		
	
		
		
			
				
					
					                        if  ( options  &&  options . deserializeDates )  { 
 
			
		
	
		
		
			
				
					
					                            obj  =  JSON . parse ( contents ,  dateTimeDeserializer ) ; 
 
			
		
	
		
		
			
				
					
					                        } 
 
			
		
	
		
		
			
				
					
					                        else  { 
 
			
		
	
		
		
			
				
					
					                            obj  =  JSON . parse ( contents ) ; 
 
			
		
	
		
		
			
				
					
					                        } 
 
			
		
	
		
		
			
				
					
					                        response . result  =  obj ; 
 
			
		
	
		
		
			
				
					
					                    } 
 
			
		
	
		
		
			
				
					
					                    response . headers  =  res . message . headers ; 
 
			
		
	
		
		
			
				
					
					                } 
 
			
		
	
		
		
			
				
					
					                catch  ( err )  { 
 
			
		
	
		
		
			
				
					
					                    // Invalid resource (contents not json);  leaving result obj null
 
 
			
		
	
		
		
			
				
					
					                } 
 
			
		
	
		
		
			
				
					
					                // note that 3xx redirects are handled by the http layer.
 
 
			
		
	
		
		
			
				
					
					                if  ( statusCode  >  299 )  { 
 
			
		
	
		
		
			
				
					
					                    let  msg ; 
 
			
		
	
		
		
			
				
					
					                    // if exception/error in body, attempt to get better error
 
 
			
		
	
		
		
			
				
					
					                    if  ( obj  &&  obj . message )  { 
 
			
		
	
		
		
			
				
					
					                        msg  =  obj . message ; 
 
			
		
	
		
		
			
				
					
					                    } 
 
			
		
	
		
		
			
				
					
					                    else  if  ( contents  &&  contents . length  >  0 )  { 
 
			
		
	
		
		
			
				
					
					                        // it may be the case that the exception is in the body message as string
 
 
			
		
	
		
		
			
				
					
					                        msg  =  contents ; 
 
			
		
	
		
		
			
				
					
					                    } 
 
			
		
	
		
		
			
				
					
					                    else  { 
 
			
		
	
		
		
			
				
					
					                        msg  =  ` Failed request: ( ${ statusCode } ) ` ; 
 
			
		
	
		
		
			
				
					
					                    } 
 
			
		
	
		
		
			
				
					
					                    const  err  =  new  HttpClientError ( msg ,  statusCode ) ; 
 
			
		
	
		
		
			
				
					
					                    err . result  =  response . result ; 
 
			
		
	
		
		
			
				
					
					                    reject ( err ) ; 
 
			
		
	
		
		
			
				
					
					                } 
 
			
		
	
		
		
			
				
					
					                else  { 
 
			
		
	
		
		
			
				
					
					                    resolve ( response ) ; 
 
			
		
	
		
		
			
				
					
					                } 
 
			
		
	
		
		
			
				
					
					            } ) ) ; 
 
			
		
	
		
		
			
				
					
					        } ) ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					}  
			
		
	
		
		
			
				
					
					exports . HttpClient  =  HttpClient ;  
			
		
	
		
		
			
				
					
					const  lowercaseKeys  =  ( obj )  =>  Object . keys ( obj ) . reduce ( ( c ,  k )  =>  ( ( c [ k . toLowerCase ( ) ]  =  obj [ k ] ) ,  c ) ,  { } ) ;  
			
		
	
		
		
			
				
					
					//# sourceMappingURL=index.js.map
  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					/***/  } ) ,  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					/***/  4977 :  
			
		
	
		
		
			
				
					
					/***/  ( ( _ _unused _webpack _module ,  exports )  =>  {  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					"use strict" ;  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					Object . defineProperty ( exports ,  "__esModule" ,  ( {  value :  true  } ) ) ;  
			
		
	
		
		
			
				
					
					exports . checkBypass  =  exports . getProxyUrl  =  void  0 ;  
			
		
	
		
		
			
				
					
					function  getProxyUrl ( reqUrl )  {  
			
		
	
		
		
			
				
					
					    const  usingSsl  =  reqUrl . protocol  ===  'https:' ; 
 
			
		
	
		
		
			
				
					
					    if  ( checkBypass ( reqUrl ) )  { 
 
			
		
	
		
		
			
				
					
					        return  undefined ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    const  proxyVar  =  ( ( )  =>  { 
 
			
		
	
		
		
			
				
					
					        if  ( usingSsl )  { 
 
			
		
	
		
		
			
				
					
					            return  process . env [ 'https_proxy' ]  ||  process . env [ 'HTTPS_PROXY' ] ; 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					        else  { 
 
			
		
	
		
		
			
				
					
					            return  process . env [ 'http_proxy' ]  ||  process . env [ 'HTTP_PROXY' ] ; 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					    } ) ( ) ; 
 
			
		
	
		
		
			
				
					
					    if  ( proxyVar )  { 
 
			
		
	
		
		
			
				
					
					        return  new  URL ( proxyVar ) ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    else  { 
 
			
		
	
		
		
			
				
					
					        return  undefined ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					}  
			
		
	
		
		
			
				
					
					exports . getProxyUrl  =  getProxyUrl ;  
			
		
	
		
		
			
				
					
					function  checkBypass ( reqUrl )  {  
			
		
	
		
		
			
				
					
					    if  ( ! reqUrl . hostname )  { 
 
			
		
	
		
		
			
				
					
					        return  false ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    const  noProxy  =  process . env [ 'no_proxy' ]  ||  process . env [ 'NO_PROXY' ]  ||  '' ; 
 
			
		
	
		
		
			
				
					
					    if  ( ! noProxy )  { 
 
			
		
	
		
		
			
				
					
					        return  false ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    // Determine the request port
 
 
			
		
	
		
		
			
				
					
					    let  reqPort ; 
 
			
		
	
		
		
			
				
					
					    if  ( reqUrl . port )  { 
 
			
		
	
		
		
			
				
					
					        reqPort  =  Number ( reqUrl . port ) ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    else  if  ( reqUrl . protocol  ===  'http:' )  { 
 
			
		
	
		
		
			
				
					
					        reqPort  =  80 ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    else  if  ( reqUrl . protocol  ===  'https:' )  { 
 
			
		
	
		
		
			
				
					
					        reqPort  =  443 ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    // Format the request hostname and hostname with port
 
 
			
		
	
		
		
			
				
					
					    const  upperReqHosts  =  [ reqUrl . hostname . toUpperCase ( ) ] ; 
 
			
		
	
		
		
			
				
					
					    if  ( typeof  reqPort  ===  'number' )  { 
 
			
		
	
		
		
			
				
					
					        upperReqHosts . push ( ` ${ upperReqHosts [ 0 ] } : ${ reqPort } ` ) ; 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    // Compare request host against noproxy
 
 
			
		
	
		
		
			
				
					
					    for  ( const  upperNoProxyItem  of  noProxy 
 
			
		
	
		
		
			
				
					
					        . split ( ',' ) 
 
			
		
	
		
		
			
				
					
					        . map ( x  =>  x . trim ( ) . toUpperCase ( ) ) 
 
			
		
	
		
		
			
				
					
					        . filter ( x  =>  x ) )  { 
 
			
		
	
		
		
			
				
					
					        if  ( upperReqHosts . some ( x  =>  x  ===  upperNoProxyItem ) )  { 
 
			
		
	
		
		
			
				
					
					            return  true ; 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    return  false ; 
 
			
		
	
		
		
			
				
					
					}  
			
		
	
		
		
			
				
					
					exports . checkBypass  =  checkBypass ;  
			
		
	
		
		
			
				
					
					//# sourceMappingURL=proxy.js.map
  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					/***/  } ) ,  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					/***/  4138 : /***/  4138 :  
			
		
	
		
		
			
				
					
					/***/  ( ( module ,  _ _unused _webpack _exports ,  _ _nccwpck _require _ _ )  =>  { /***/  ( ( module ,  _ _unused _webpack _exports ,  _ _nccwpck _require _ _ )  =>  {