@uppy/companion-client
Version:
Client library for communication with Companion. Intended for use in Uppy plugins.
58 lines • 2.34 kB
TypeScript
import type { Uppy, Body, Meta, PluginOpts } from '@uppy/core';
import type { RequestOptions, CompanionClientProvider } from '@uppy/utils/lib/CompanionClientProvider';
import RequestClient from './RequestClient.js';
import type { CompanionPluginOptions } from './index.js';
export interface Opts extends PluginOpts, CompanionPluginOptions {
pluginId: string;
name?: string;
supportsRefreshToken?: boolean;
provider: string;
}
export default class Provider<M extends Meta, B extends Body> extends RequestClient<M, B> implements CompanionClientProvider {
#private;
provider: string;
id: string;
name: string;
pluginId: string;
tokenKey: string;
companionKeysParams?: Record<string, string>;
preAuthToken: string | null;
supportsRefreshToken: boolean;
constructor(uppy: Uppy<M, B>, opts: Opts);
headers(): Promise<Record<string, string>>;
onReceiveResponse(response: Response): Response;
setAuthToken(token: string): Promise<void>;
protected removeAuthToken(): Promise<void>;
/**
* Ensure we have a preauth token if necessary. Attempts to fetch one if we don't,
* or rejects if loading one fails.
*/
ensurePreAuth(): Promise<void>;
authQuery(data: unknown): Record<string, string>;
authUrl({ authFormData, query, }: {
authFormData: unknown;
query: Record<string, string>;
}): string;
protected loginSimpleAuth({ uppyVersions, authFormData, signal, }: {
uppyVersions: string;
authFormData: unknown;
signal: AbortSignal;
}): Promise<void>;
protected loginOAuth({ uppyVersions, authFormData, signal, }: {
uppyVersions: string;
authFormData: unknown;
signal: AbortSignal;
}): Promise<void>;
login({ uppyVersions, authFormData, signal, }: {
uppyVersions: string;
authFormData: unknown;
signal: AbortSignal;
}): Promise<void>;
refreshTokenUrl(): string;
fileUrl(id: string): string;
protected request<ResBody>(...args: Parameters<RequestClient<M, B>['request']>): Promise<ResBody>;
fetchPreAuthToken(): Promise<void>;
list<ResBody>(directory: string | null, options: RequestOptions): Promise<ResBody>;
logout<ResBody>(options?: RequestOptions): Promise<ResBody>;
}
//# sourceMappingURL=Provider.d.ts.map