UNPKG

@segment/analytics-node

Version:

https://www.npmjs.com/package/@segment/analytics-node

55 lines 2.02 kB
import { HTTPClient } from './http-client'; import { TokenManagerSettings } from './token-manager'; export interface OAuthSettings { /** * The OAuth App ID from Access Management under Workspace Settings in the Segment Dashboard. */ clientId: string; /** * The private key that matches the public key set in the OAuth app in the Segment Dashboard. */ clientKey: string; /** * The ID for the matching public key as given in the Segment Dashboard after it is uploaded. */ keyId: string; /** * The Authorization server. Defaults to https://oauth2.segment.io * If your TAPI endpoint is not https://api.segment.io you will need to set this value. * e.g. https://oauth2.eu1.segmentapis.com/ for TAPI endpoint https://events.eu1.segmentapis.com/ */ authServer?: string; /** * The scope of permissions. Defaults to `tracking_api:write`. * Must match a scope from the OAuth app settings in the Segment Dashboard. */ scope?: string; /** * Custom number of retries before a recoverable error is reported. * Defaults to the custom value set in the Analytics settings, or 3 if unset */ maxRetries?: number; /** * Custom HTTP Client implementation. * Defaults to the custom value set in the Analytics settings, or uses the default fetch client. * Note: This would only be need to be set in a complex environment that may have different access * rules for the TAPI and Auth endpoints. */ httpClient?: HTTPClient; } export type AccessToken = { access_token: string; expires_in: number; expires_at?: number; }; export interface TokenManager { pollerLoop(): Promise<void>; stopPoller(): void; getAccessToken(): Promise<AccessToken>; clearToken(): void; isValidToken(token?: AccessToken): token is AccessToken; } export interface TokenManagerConstructor { new (settings: TokenManagerSettings): TokenManager; } //# sourceMappingURL=types.d.ts.map