UNPKG

@point-api/js-sdk

Version:

Javascript SDK for Point API

112 lines (111 loc) 3.6 kB
import { AuthManager } from "../authManager"; export declare type ContextType = "text" | "gmail"; /** * Snippet metadata */ export interface Snippet { 'id_': string; 'name': string; 'content': string; 'labels': string[]; } /** * Reply metadata */ export interface ReplyMeta { prompt: string; suggestions: Reply[]; type: string; } interface Reply { text: string; confidence: number; } export interface AutocompleteResponse { snippets: Snippet[]; seedText: string; responseId: string; } export interface ReplyResponse { replies: ReplyMeta[]; responseId: string; } export interface SessionError { status: "failure"; reason: "exceeded_daily_usage_limit" | "expired_membership"; } export interface AutocompleteSession { reconnect: () => Promise<void>; disconnect: () => void; setOnErrorHandler: (callback: (error: SessionError) => void) => void; queryByContent: (seedText: string, currentContext?: string) => Promise<AutocompleteResponse | null>; queryByName: (query: string) => Promise<AutocompleteResponse | null>; feedback: (responseId: string, snippet: Snippet, origin: string) => Promise<void>; } /** * Point Websockets Api Instance */ export default class AutocompleteSessionImpl implements AutocompleteSession { /** Email address of Point user */ private readonly emailAddress; /** AuthManager manages credentials & JWT */ private authManager; /** Search type */ private searchType; /** API URL */ private readonly ApiUrl; /** @private SocketIO instance used to interact with Point API */ private socket; /** @private Reconnect counter */ private reconnectCount; /** @private Max reconnect attempts */ private readonly maxReconnects; /** Error handler */ private onErrorHandler; /** * @param emailAddress Email address of Point user * @param authCode Auth code (JWT) provider */ constructor(emailAddress: string, authManager: AuthManager, searchType?: string, apiUrl?: string); /** * Reconnects to the Point API socket.io */ reconnect(): Promise<void>; /** * Disconnects from the Point API manually */ disconnect(): void; /** * Registers error handler callback that will be invoked * on any socket.io session errors sent from the server. * * @param callback Error callback method */ setOnErrorHandler: (callback: (error: SessionError) => void) => void; /** * Query PointApi with seed text to get predicted suggestions * @param seedText The text to base suggestion predictions off of * @returns A list of the predicted suggestion objects */ queryByContent(seedText: string, currentContext?: string): Promise<AutocompleteResponse | null>; /** * Query PointApi with a hotkey trigger to get a full hotkey suggestion * @param trigger String that is a shortcut for the full hotkey text * @returns A list of the predicted suggestion objects */ queryByName(query: string): Promise<AutocompleteResponse | null>; /** * Give feedback on Point Api's suggestions. * This is like chosenSuggestion/Hotkey interaction. */ feedback(responseId: string, snippet: Snippet, origin: string): Promise<void>; /** * Get reply suggestions given some recieved text */ reply(previousMessage: string, contextType?: ContextType): Promise<ReplyResponse | null>; /** * Callback function that handles JWT changed events. */ private onJwtChange; } export {};