alinea
Version:
[](https://npmjs.org/package/alinea) [](https://packagephobia.com/result?p=alinea)
35 lines (34 loc) • 1.56 kB
TypeScript
import { Response } from '@alinea/iso';
import { Revision } from 'alinea/backend/History';
import { Config, Connection, Draft, ResolveDefaults } from 'alinea/core';
import { SyncResponse } from './Connection.js';
import { EntryRecord } from './EntryRecord.js';
import { Mutation } from './Mutation.js';
type AuthenticateRequest = (request?: RequestInit) => RequestInit | undefined;
export interface ClientOptions {
config: Config;
url: string;
applyAuth?: AuthenticateRequest;
unauthorized?: () => void;
resolveDefaults?: ResolveDefaults;
}
export declare class Client implements Connection {
options: ClientOptions;
constructor(options: ClientOptions);
previewToken(): Promise<string>;
prepareUpload(file: string): Promise<Connection.UploadResponse>;
resolve(params: Connection.ResolveParams): Promise<unknown>;
mutate(mutations: Array<Mutation>): Promise<{
commitHash: string;
}>;
authenticate(applyAuth: AuthenticateRequest, unauthorized: () => void): Client;
revisions(file: string): Promise<Array<Revision>>;
revisionData(file: string, revisionId: string): Promise<EntryRecord>;
syncRequired(contentHash: string): Promise<boolean>;
sync(contentHashes: Array<string>): Promise<SyncResponse>;
getDraft(entryId: string): Promise<Draft | undefined>;
storeDraft(draft: Draft): Promise<void>;
protected request(endpoint: string, init?: RequestInit): Promise<Response>;
protected requestJson(endpoint: string, init?: RequestInit): Promise<globalThis.Response>;
}
export {};