69 lines
2.5 KiB
TypeScript
69 lines
2.5 KiB
TypeScript
import { AuthStrategy } from '@/lib/auth/strategy';
|
|
import { getSiteURL } from '@/lib/get-site-url';
|
|
import { LogLevel } from '@/lib/logger';
|
|
import type { ColorScheme, PrimaryColor } from '@/styles/theme/types';
|
|
|
|
export interface Config {
|
|
site: {
|
|
name: string;
|
|
description: string;
|
|
colorScheme: ColorScheme;
|
|
primaryColor: PrimaryColor;
|
|
themeColor: string;
|
|
url: string;
|
|
version: string;
|
|
};
|
|
logLevel: keyof typeof LogLevel;
|
|
auth: { strategy: keyof typeof AuthStrategy };
|
|
auth0: { secret?: string; baseUrl?: string; issuerBaseUrl?: string; clientId?: string; clientSecret?: string };
|
|
cognito: { identityPoolId?: string; userPoolClientId?: string; userPoolId?: string };
|
|
firebase: {
|
|
apiKey?: string;
|
|
appId?: string;
|
|
authDomain?: string;
|
|
messagingSenderId?: string;
|
|
projectId?: string;
|
|
storageBucket?: string;
|
|
};
|
|
supabase: { url?: string; anonKey?: string };
|
|
mapbox: { apiKey?: string };
|
|
gtm?: { id?: string };
|
|
}
|
|
|
|
export const config = {
|
|
site: {
|
|
name: 'Devias Kit Pro',
|
|
description: '',
|
|
colorScheme: 'light',
|
|
themeColor: '#090a0b',
|
|
primaryColor: 'neonBlue',
|
|
url: getSiteURL(),
|
|
version: process.env.NEXT_PUBLIC_SITE_VERSION || '0.0.0',
|
|
},
|
|
logLevel: (process.env.NEXT_PUBLIC_LOG_LEVEL as keyof typeof LogLevel) || LogLevel.ALL,
|
|
auth: { strategy: (process.env.NEXT_PUBLIC_AUTH_STRATEGY as keyof typeof AuthStrategy) || AuthStrategy.CUSTOM },
|
|
auth0: {
|
|
secret: process.env.AUTH0_SECRET,
|
|
baseUrl: process.env.AUTH0_BASE_URL,
|
|
issuerBaseUrl: process.env.AUTH0_ISSUER_BASE_URL,
|
|
clientId: process.env.AUTH0_CLIENT_ID,
|
|
clientSecret: process.env.AUTH0_CLIENT_SECRET,
|
|
},
|
|
cognito: {
|
|
identityPoolId: process.env.NEXT_PUBLIC_COGNITO_IDENTITY_POOL_ID,
|
|
userPoolClientId: process.env.NEXT_PUBLIC_COGNITO_USER_POOL_CLIENT_ID,
|
|
userPoolId: process.env.NEXT_PUBLIC_COGNITO_USER_POOL_ID,
|
|
},
|
|
firebase: {
|
|
apiKey: process.env.NEXT_PUBLIC_FIREBASE_API_KEY,
|
|
appId: process.env.NEXT_PUBLIC_FIREBASE_APP_ID,
|
|
authDomain: process.env.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN,
|
|
messagingSenderId: process.env.NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID,
|
|
projectId: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID,
|
|
storageBucket: process.env.NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET,
|
|
},
|
|
supabase: { url: process.env.NEXT_PUBLIC_SUPABASE_URL, anonKey: process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY },
|
|
mapbox: { apiKey: process.env.NEXT_PUBLIC_MAPBOX_API_KEY },
|
|
gtm: { id: process.env.NEXT_PUBLIC_GOOGLE_TAG_MANAGER_ID },
|
|
} satisfies Config;
|