@ng-supabase/core
Version:
ng-supabase is a component library and helper utilities for integrating Supabase in your angular application.
120 lines (119 loc) • 3.7 kB
TypeScript
import { UrlTree } from '@angular/router';
import { BehaviorSubject } from 'rxjs';
import { LogConfig } from './logging/log-config';
import { SocialSignIn, SocialSignInItem } from './sign-in/social-sign-in';
export declare const DEFAULT_ROUTES: ComponentRoutes;
interface BaseSupabaseConfigProperties {
apiKey: string;
mainRoute?: string;
signIn?: SignInConfigProperties;
logging?: LogConfig;
register?: RegisterProperties;
setPassword?: SetPasswordProperties;
routes?: Partial<ComponentRoutes>;
profile?: ProfileProperties;
}
interface SupabaseConfigPropertiesByUrl extends BaseSupabaseConfigProperties {
apiUrl: string;
}
interface SupabaseConfigPropertiesByProject extends BaseSupabaseConfigProperties {
project: string;
}
export type SupabaseConfigProperties = SupabaseConfigPropertiesByUrl | SupabaseConfigPropertiesByProject;
interface ComponentRoutes {
main: string;
signIn: string;
register: string;
registerOrSignIn: string;
setPassword: string;
resetPassword: string;
userProfile?: string;
postSignOut?: string;
}
interface UserRegistrationMetadata {
label: string;
field: string;
type?: 'text' | 'number';
required?: boolean;
defaultValue?: string | number;
}
interface RegisterProperties {
title?: string;
metadata?: UserRegistrationMetadata[];
}
interface ProfileProperties {
table?: string;
avatarField?: string;
firstNameField?: string;
lastNameField?: string;
}
type SocialSignInFn = (social: SocialSignIn) => boolean | void;
interface SignInConfigProperties {
title?: string;
magicLinks?: boolean;
rememberMe?: boolean;
socials?: SocialSignIn[];
socialIconsRoot?: string;
rememberMeStorageKey?: string;
otpEnabled?: boolean;
otpLength?: number;
redirectTo?: string | string[] | UrlTree | null | undefined;
onSocialSignIn?: SocialSignInFn;
}
interface SetPasswordProperties {
title?: string;
requireConfirm?: boolean;
showMessageOnSave?: boolean;
redirectTo?: string | string[] | UrlTree | null | undefined;
}
declare class SetPasswordConfig implements SetPasswordProperties {
title: string;
requireConfirm: boolean;
showMessageOnSave: boolean;
constructor(init?: Partial<SetPasswordProperties>);
}
declare class ProfileConfig implements ProfileProperties {
table: string;
userIdField: string;
firstNameField: string;
lastNameField: string;
avatarField: string;
constructor(init?: Partial<ProfileProperties>);
}
declare class RegisterConfig implements RegisterConfig {
title: string;
metadata: UserRegistrationMetadata[];
constructor(init?: Partial<RegisterProperties>);
}
export declare class SignInConfig implements SignInConfigProperties {
title: string;
magicLinks: boolean;
socials: SocialSignIn[];
rememberMe: boolean;
socialIconsRoot: string;
socialSignInItems: SocialSignInItem[];
redirectTo?: string | string[] | UrlTree | null | undefined;
rememberMeStorageKey: string;
otpEnabled: boolean;
otpLength: number;
onSocialSignIn?: SocialSignInFn;
constructor(init?: Partial<SignInConfig>);
private setSocialSignInItems;
}
export declare class SupabaseConfig {
signIn: SignInConfig;
api: BehaviorSubject<{
url: string;
key: string;
}>;
logging?: LogConfig;
mainRoute: string;
setPassword: SetPasswordConfig;
register: RegisterConfig;
routes: ComponentRoutes;
redirectParamName: string | null | undefined;
profile: ProfileConfig;
constructor(init: SupabaseConfigProperties);
static toApiUrl(urlOrProjectId: string): string;
}
export {};