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
			| 
											2 years ago
										 | /** | ||
|  |  * 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; | ||
|  | } |