UNPKG

mongodb-stitch

Version:

[![Join the chat at https://gitter.im/mongodb/stitch](https://badges.gitter.im/mongodb/stitch.svg)](https://gitter.im/mongodb/stitch?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

134 lines (133 loc) 6.24 kB
import { Codec, Encoder, Response } from "mongodb-stitch-core-sdk"; import { AppResponse, AppResponseCodec } from "./apps/AppsResources"; import { AuthProviderResponse, AuthProviderResponseCodec } from "./authProviders/AuthProvidersResources"; import { ProviderConfig, ProviderConfigCodec } from "./authProviders/ProviderConfigs"; import { FunctionCreator, FunctionCreatorCodec, FunctionResponse, FunctionResponseCodec } from "./functions/FunctionsResources"; import { RuleCreator, RuleCreatorCodec, RuleResponse, RuleResponseCodec } from "./services/rules/RulesResources"; import { ServiceConfig, ServiceConfigCodec } from "./services/ServiceConfigs"; import { ServiceResponse, ServiceResponseCodec } from "./services/ServicesResources"; import StitchAdminAuth from "./StitchAdminAuth"; import { ConfirmationEmail } from "./userRegistrations/UserRegistrationsResources"; import { UserCreator, UserCreatorCodec, UserResponse, UserResponseCodec } from "./users/UsersResources"; interface Resource { url: string; adminAuth: StitchAdminAuth; } declare class BasicResource implements Resource { url: string; adminAuth: StitchAdminAuth; constructor(adminAuth: StitchAdminAuth, url: string); } declare function checkEmpty(response: Response): void; declare class Listable<T> extends BasicResource { readonly codec: Codec<T>; list(): Promise<T[]>; } declare class Gettable<T> extends BasicResource { readonly codec: Codec<T>; get(): Promise<T>; } declare class Removable extends BasicResource { remove(): Promise<void>; } declare class Creatable<Creator, T> extends BasicResource { readonly codec: Codec<T>; readonly creatorCodec: Encoder<Creator>; create(data: Creator): Promise<T>; } declare class Updatable<T> extends BasicResource { readonly updatableCodec: Codec<T>; update(data: T): Promise<T>; } declare class Enablable extends BasicResource { enable(): Promise<void>; } declare class Disablable extends BasicResource { disable(): Promise<void>; } declare class AuthProvider extends BasicResource implements Gettable<AuthProviderResponse>, Updatable<AuthProviderResponse>, Removable, Enablable, Disablable { readonly codec: AuthProviderResponseCodec; readonly updatableCodec: AuthProviderResponseCodec; get: () => Promise<AuthProviderResponse>; update: (data: AuthProviderResponse) => Promise<AuthProviderResponse>; remove: () => Promise<void>; enable: () => Promise<void>; disable: () => Promise<void>; } declare class AuthProviders extends BasicResource implements Listable<AuthProviderResponse>, Creatable<ProviderConfig, AuthProviderResponse> { readonly codec: AuthProviderResponseCodec; readonly creatorCodec: ProviderConfigCodec; create: (data: ProviderConfig) => Promise<AuthProviderResponse>; list: () => Promise<AuthProviderResponse[]>; authProvider(providerId: string): AuthProvider; } declare class UserRegistrations extends BasicResource { sendConfirmation(email: string): Promise<ConfirmationEmail>; } declare class User extends BasicResource implements Gettable<UserResponse>, Removable { readonly codec: UserResponseCodec; get: () => Promise<AuthProviderResponse>; remove: () => Promise<void>; } declare class Users extends BasicResource implements Listable<UserResponse>, Creatable<UserCreator, UserResponse> { readonly codec: UserResponseCodec; readonly creatorCodec: UserCreatorCodec; create: (data: UserCreator) => Promise<UserResponse>; list: () => Promise<UserResponse[]>; user(uid: string): User; } declare class Function extends BasicResource implements Gettable<FunctionResponse>, Updatable<FunctionCreator>, Removable { readonly codec: FunctionResponseCodec; readonly updatableCodec: FunctionCreatorCodec; get: () => Promise<FunctionResponse>; update: (data: FunctionCreator) => Promise<FunctionCreator>; remove: () => Promise<void>; } declare class Functions extends BasicResource implements Listable<FunctionResponse>, Creatable<FunctionCreator, FunctionResponse> { readonly codec: FunctionResponseCodec; readonly creatorCodec: FunctionCreatorCodec; create: (data: FunctionCreator) => Promise<FunctionResponse>; list: () => Promise<FunctionResponse[]>; function(fid: string): Function; } declare class Rule extends BasicResource implements Gettable<RuleResponse>, Removable { codec: RuleResponseCodec; get: () => Promise<RuleResponse>; remove: () => Promise<void>; } declare class Rules extends BasicResource implements Listable<RuleResponse>, Creatable<RuleCreator, RuleResponse> { creatorCodec: RuleCreatorCodec; codec: RuleResponseCodec; create: (data: RuleCreator) => Promise<RuleResponse>; list: () => Promise<RuleResponse[]>; } declare class Service extends BasicResource implements Gettable<ServiceResponse>, Removable { codec: ServiceResponseCodec; get: () => Promise<ServiceResponse>; remove: () => Promise<void>; readonly rules: Rules; } declare class Services extends BasicResource implements Listable<ServiceResponse>, Creatable<ServiceConfig, ServiceResponse> { creatorCodec: ServiceConfigCodec; codec: ServiceResponseCodec; list: () => Promise<ServiceResponse[]>; create: (data: ServiceConfig) => Promise<ServiceResponse>; service(id: string): Service; } declare class App extends BasicResource implements Gettable<AppResponse>, Removable { readonly codec: AppResponseCodec; readonly authProviders: AuthProviders; readonly functions: Functions; readonly services: Services; readonly users: Users; readonly userRegistrations: UserRegistrations; get: () => Promise<AppResponse>; remove: () => Promise<void>; } declare class Apps extends BasicResource implements Listable<AppResponse> { readonly codec: AppResponseCodec; list: () => Promise<AppResponse[]>; create(name: string, defaults?: boolean): Promise<AppResponse>; app(appId: string): App; } export { Apps, App, BasicResource, Gettable, Updatable, Listable, Creatable, Enablable, Disablable, Resource, Removable, Services, Service, Rules, Rule, Functions, Function, Users, User, UserRegistrations, AuthProvider, AuthProviders, checkEmpty };