You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							107 lines
						
					
					
						
							3.0 KiB
						
					
					
				
			
		
		
	
	
							107 lines
						
					
					
						
							3.0 KiB
						
					
					
				| /**
 | |
|  * Copyright 2018 Google LLC
 | |
|  *
 | |
|  * Distributed under MIT license.
 | |
|  * See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
 | |
|  */
 | |
| import { GaxiosOptions, GaxiosPromise } from 'gaxios';
 | |
| export interface Transporter {
 | |
|     request<T>(opts: GaxiosOptions): GaxiosPromise<T>;
 | |
| }
 | |
| export declare type GetTokenCallback = (err: Error | null, token?: TokenData) => void;
 | |
| export interface Credentials {
 | |
|     privateKey: string;
 | |
|     clientEmail?: string;
 | |
| }
 | |
| export interface TokenData {
 | |
|     refresh_token?: string;
 | |
|     expires_in?: number;
 | |
|     access_token?: string;
 | |
|     token_type?: string;
 | |
|     id_token?: string;
 | |
| }
 | |
| export interface TokenOptions {
 | |
|     keyFile?: string;
 | |
|     key?: string;
 | |
|     email?: string;
 | |
|     iss?: string;
 | |
|     sub?: string;
 | |
|     scope?: string | string[];
 | |
|     additionalClaims?: {};
 | |
|     eagerRefreshThresholdMillis?: number;
 | |
|     transporter?: Transporter;
 | |
| }
 | |
| export interface GetTokenOptions {
 | |
|     forceRefresh?: boolean;
 | |
| }
 | |
| export declare class GoogleToken {
 | |
|     get accessToken(): string | undefined;
 | |
|     get idToken(): string | undefined;
 | |
|     get tokenType(): string | undefined;
 | |
|     get refreshToken(): string | undefined;
 | |
|     expiresAt?: number;
 | |
|     key?: string;
 | |
|     keyFile?: string;
 | |
|     iss?: string;
 | |
|     sub?: string;
 | |
|     scope?: string;
 | |
|     rawToken?: TokenData;
 | |
|     tokenExpires?: number;
 | |
|     email?: string;
 | |
|     additionalClaims?: {};
 | |
|     eagerRefreshThresholdMillis?: number;
 | |
|     transporter: Transporter;
 | |
|     private inFlightRequest?;
 | |
|     /**
 | |
|      * Create a GoogleToken.
 | |
|      *
 | |
|      * @param options  Configuration object.
 | |
|      */
 | |
|     constructor(options?: TokenOptions);
 | |
|     /**
 | |
|      * Returns whether the token has expired.
 | |
|      *
 | |
|      * @return true if the token has expired, false otherwise.
 | |
|      */
 | |
|     hasExpired(): boolean;
 | |
|     /**
 | |
|      * Returns whether the token will expire within eagerRefreshThresholdMillis
 | |
|      *
 | |
|      * @return true if the token will be expired within eagerRefreshThresholdMillis, false otherwise.
 | |
|      */
 | |
|     isTokenExpiring(): boolean;
 | |
|     /**
 | |
|      * Returns a cached token or retrieves a new one from Google.
 | |
|      *
 | |
|      * @param callback The callback function.
 | |
|      */
 | |
|     getToken(opts?: GetTokenOptions): Promise<TokenData>;
 | |
|     getToken(callback: GetTokenCallback, opts?: GetTokenOptions): void;
 | |
|     /**
 | |
|      * Given a keyFile, extract the key and client email if available
 | |
|      * @param keyFile Path to a json, pem, or p12 file that contains the key.
 | |
|      * @returns an object with privateKey and clientEmail properties
 | |
|      */
 | |
|     getCredentials(keyFile: string): Promise<Credentials>;
 | |
|     private getTokenAsync;
 | |
|     private getTokenAsyncInner;
 | |
|     private ensureEmail;
 | |
|     /**
 | |
|      * Revoke the token if one is set.
 | |
|      *
 | |
|      * @param callback The callback function.
 | |
|      */
 | |
|     revokeToken(): Promise<void>;
 | |
|     revokeToken(callback: (err?: Error) => void): void;
 | |
|     private revokeTokenAsync;
 | |
|     /**
 | |
|      * Configure the GoogleToken for re-use.
 | |
|      * @param  {object} options Configuration object.
 | |
|      */
 | |
|     private configure;
 | |
|     /**
 | |
|      * Request the token from Google.
 | |
|      */
 | |
|     private requestToken;
 | |
| }
 |