87 lines
1.7 KiB
TypeScript
87 lines
1.7 KiB
TypeScript
|
|
export type Config = {
|
||
|
|
appName: string;
|
||
|
|
i18n: {
|
||
|
|
enabled: boolean;
|
||
|
|
locales: { [locale: string]: { currency: string; label: string } };
|
||
|
|
defaultLocale: string;
|
||
|
|
defaultCurrency: string;
|
||
|
|
localeCookieName: string;
|
||
|
|
};
|
||
|
|
organizations: {
|
||
|
|
enable: boolean;
|
||
|
|
enableBilling: boolean;
|
||
|
|
enableUsersToCreateOrganizations: boolean;
|
||
|
|
requireOrganization: boolean;
|
||
|
|
hideOrganization: boolean;
|
||
|
|
forbiddenOrganizationSlugs: string[];
|
||
|
|
};
|
||
|
|
users: {
|
||
|
|
enableBilling: boolean;
|
||
|
|
enableOnboarding: boolean;
|
||
|
|
};
|
||
|
|
auth: {
|
||
|
|
enableSignup: boolean;
|
||
|
|
enableMagicLink: boolean;
|
||
|
|
enableSocialLogin: boolean;
|
||
|
|
enablePasskeys: boolean;
|
||
|
|
enablePasswordLogin: boolean;
|
||
|
|
enableTwoFactor: boolean;
|
||
|
|
redirectAfterSignIn: string;
|
||
|
|
redirectAfterLogout: string;
|
||
|
|
sessionCookieMaxAge: number;
|
||
|
|
};
|
||
|
|
mails: {
|
||
|
|
from: string;
|
||
|
|
};
|
||
|
|
storage: {
|
||
|
|
bucketNames: {
|
||
|
|
avatars: string;
|
||
|
|
};
|
||
|
|
};
|
||
|
|
ui: {
|
||
|
|
enabledThemes: Array<"light" | "dark">;
|
||
|
|
defaultTheme: Config["ui"]["enabledThemes"][number];
|
||
|
|
saas: {
|
||
|
|
enabled: boolean;
|
||
|
|
useSidebarLayout: boolean;
|
||
|
|
};
|
||
|
|
marketing: {
|
||
|
|
enabled: boolean;
|
||
|
|
};
|
||
|
|
};
|
||
|
|
contactForm: {
|
||
|
|
enabled: boolean;
|
||
|
|
to: string;
|
||
|
|
subject: string;
|
||
|
|
};
|
||
|
|
payments: {
|
||
|
|
plans: {
|
||
|
|
[id: string]: {
|
||
|
|
hidden?: boolean;
|
||
|
|
isFree?: boolean;
|
||
|
|
isEnterprise?: boolean;
|
||
|
|
recommended?: boolean;
|
||
|
|
prices?: Array<
|
||
|
|
{
|
||
|
|
productId: string;
|
||
|
|
amount: number;
|
||
|
|
currency: string;
|
||
|
|
hidden?: boolean;
|
||
|
|
} & (
|
||
|
|
| {
|
||
|
|
type: "recurring";
|
||
|
|
interval: "month" | "year" | "week";
|
||
|
|
intervalCount?: number;
|
||
|
|
trialPeriodDays?: number;
|
||
|
|
seatBased?: boolean;
|
||
|
|
}
|
||
|
|
| {
|
||
|
|
type: "one-time";
|
||
|
|
}
|
||
|
|
)
|
||
|
|
>;
|
||
|
|
};
|
||
|
|
};
|
||
|
|
};
|
||
|
|
};
|