UNPKG

doggo.js

Version:

Typed client for Doggo.Ninja's public API

75 lines (74 loc) 2.95 kB
import 'isomorphic-unfetch'; export interface File { url: string; shortName: string; originalName: string; mimeType: string; uncachedHits: number; updatedAt: number; size: number; parent?: string; private: boolean; ephemeralTimestamp: number | null; hasPassword: boolean; } export interface Folder { id: string; name: string; parent?: string; } export declare type User = { id: string; name: string; email?: string; admin: boolean; usage: number; preferredDomain: string; }; export declare type UsageInfo = { username: string; usage: number; email: string; }; export declare class PatClient { private baseUrl; token?: string; constructor(baseUrl?: string); files(parent: string | undefined): Promise<File[]>; upload(file: globalThis.File, parent: string | undefined, onProgress?: (loaded: number, total: number) => void): Promise<File>; replace(shortName: string, file: globalThis.File, onProgress?: (loaded: number, total: number) => void): Promise<File>; getDownloadToken(shortName: string, password?: string): Promise<string>; updateFileSharing(shortName: string, isPrivate: boolean, details: { ephemeralTimestamp: number | null; password: string | boolean; }): Promise<File>; moveFile(shortName: string, details: { originalName?: string; parent?: string | undefined; }, copy?: boolean): Promise<File>; getFile(shortName: string): Promise<File>; deleteFile(shortName: string): Promise<File>; deleteFolder(id: string): Promise<File>; folders(parent: string | undefined): Promise<Folder[]>; createFolder(name: string, parent: string | undefined): Promise<Folder>; moveFolder(id: string, details: { name?: string; parent?: string | undefined; }): Promise<File>; getFolder(id: string): Promise<Folder[]>; checkAuth(): Promise<boolean>; login(username: string, password: string): Promise<{ sessionToken: string; expiration: Date; }>; resetPassword(nameOrEmail: string): Promise<void>; completeResetPassword(resetToken: string, newPassword: string, regenerateAccessToken: boolean): Promise<void>; invalidateSession(): Promise<void>; regenerateAccessToken(): Promise<string>; me(): Promise<User>; setDomain(domain: 'doggo.ninja' | 'ninja.dog'): Promise<User>; adminUsage(): Promise<UsageInfo[]>; makeUser(username: string, email: string): Promise<void>; makeUploadRequest<Type = {}>(method: 'post' | 'put' | 'delete', url: string, file: globalThis.File, onProgress?: (loaded: number, total: number) => void): Promise<Type>; makeRequest<Type = {}>(method: 'get' | 'post' | 'put' | 'delete', path: string, query?: Record<string, string | undefined>, body?: Record<string, unknown>): Promise<Type>; }