import type { NextApiRequest, NextApiResponse } from 'next'; import * as process from "process"; export type ResponseData = { credentialsEnabled: string|undefined emailEnabled: string|undefined registrationDisabled: string|undefined buttonAuths: { method: string name: string }[] } export default function handler(req: NextApiRequest, res: NextApiResponse) { res.json(getLogins()); } export function getLogins() { const buttonAuths = [] // 42 School if (process.env.NEXT_PUBLIC_FORTYTWO_ENABLED === 'true') { buttonAuths.push({method: '42-school', name: process.env.FORTYTWO_CUSTOM_NAME ?? '42 School'}); } // Apple if (process.env.NEXT_PUBLIC_APPLE_ENABLED === 'true') { buttonAuths.push({method: 'apple', name: process.env.APPLE_CUSTOM_NAME ?? 'Apple'}); } // Atlassian if (process.env.NEXT_PUBLIC_ATLASSIAN_ENABLED === 'true') { buttonAuths.push({method: 'atlassian', name: process.env.ATLASSIAN_CUSTOM_NAME ?? 'Atlassian'}); } // Auth0 if (process.env.NEXT_PUBLIC_AUTH0_ENABLED === 'true') { buttonAuths.push({method: 'auth0', name: process.env.AUTH0_CUSTOM_NAME ?? 'Auth0'}); } // Authentik if (process.env.NEXT_PUBLIC_AUTHENTIK_ENABLED === 'true') { buttonAuths.push({method: 'authentik', name: process.env.AUTHENTIK_CUSTOM_NAME ?? 'Authentik'}); } // Battle.net if (process.env.NEXT_PUBLIC_BATTLENET_ENABLED === 'true') { buttonAuths.push({method: 'battlenet', name: process.env.BATTLENET_CUSTOM_NAME ?? 'Battle.net'}); } // Box if (process.env.NEXT_PUBLIC_BOX_ENABLED === 'true') { buttonAuths.push({method: 'box', name: process.env.BOX_CUSTOM_NAME ?? 'Box'}); } // Cognito if (process.env.NEXT_PUBLIC_COGNITO_ENABLED === 'true') { buttonAuths.push({method: 'cognito', name: process.env.COGNITO_CUSTOM_NAME ?? 'Cognito'}); } // Coinbase if (process.env.NEXT_PUBLIC_COINBASE_ENABLED === 'true') { buttonAuths.push({method: 'coinbase', name: process.env.COINBASE_CUSTOM_NAME ?? 'Coinbase'}); } // Discord if (process.env.NEXT_PUBLIC_DISCORD_ENABLED === 'true') { buttonAuths.push({method: 'discord', name: process.env.DISCORD_CUSTOM_NAME ?? 'Discord'}); } // Dropbox if (process.env.NEXT_PUBLIC_DROPBOX_ENABLED === 'true') { buttonAuths.push({method: 'dropbox', name: process.env.DROPBOX_CUSTOM_NAME ?? 'Dropbox'}); } // Duende IdentityServer6 if (process.env.NEXT_PUBLIC_DUENDE_IDS6_ENABLED === 'true') { buttonAuths.push({method: 'duende-identityserver6', name: process.env.DUENDE_IDS6_CUSTOM_NAME ?? 'DuendeIdentityServer6'}); } // EVE Online if (process.env.NEXT_PUBLIC_EVEONLINE_ENABLED === 'true') { buttonAuths.push({method: 'eveonline', name: process.env.EVEONLINE_CUSTOM_NAME ?? 'EVE Online'}); } // Facebook if (process.env.NEXT_PUBLIC_FACEBOOK_ENABLED === 'true') { buttonAuths.push({method: 'facebook', name: process.env.FACEBOOK_CUSTOM_NAME ?? 'Facebook'}); } // FACEIT if (process.env.NEXT_PUBLIC_FACEIT_ENABLED === 'true') { buttonAuths.push({method: 'faceit', name: process.env.FACEIT_CUSTOM_NAME ?? 'FACEIT'}); } // Foursquare if (process.env.NEXT_PUBLIC_FOURSQUARE_ENABLED === 'true') { buttonAuths.push({method: 'foursquare', name: process.env.FOURSQUARE_CUSTOM_NAME ?? 'Foursquare'}); } // Freshbooks if (process.env.NEXT_PUBLIC_FRESHBOOKS_ENABLED === 'true') { buttonAuths.push({method: 'freshbooks', name: process.env.FRESHBOOKS_CUSTOM_NAME ?? 'Freshbooks'}); } // FusionAuth if (process.env.NEXT_PUBLIC_FUSIONAUTH_ENABLED === 'true') { buttonAuths.push({method: 'fusionauth', name: process.env.FUSIONAUTH_CUSTOM_NAME ?? 'FusionAuth'}); } // GitHub if (process.env.NEXT_PUBLIC_GITHUB_ENABLED === 'true') { buttonAuths.push({method: 'github', name: process.env.GITHUB_CUSTOM_NAME ?? 'GitHub'}); } // GitLab if (process.env.NEXT_PUBLIC_GITLAB_ENABLED === 'true') { buttonAuths.push({method: 'gitlab', name: process.env.GITLAB_CUSTOM_NAME ?? 'GitLab'}); } // Google if (process.env.NEXT_PUBLIC_GOOGLE_ENABLED === 'true') { buttonAuths.push({method: 'google', name: process.env.GOOGLE_CUSTOM_NAME ?? 'Google'}); } // HubSpot if (process.env.NEXT_PUBLIC_HUBSPOT_ENABLED === 'true') { buttonAuths.push({method: 'hubspot', name: process.env.HUBSPOT_CUSTOM_NAME ?? 'HubSpot'}); } // IdentityServer4 if (process.env.NEXT_PUBLIC_IDS4_ENABLED === 'true') { buttonAuths.push({method: 'identity-server4', name: process.env.IDS4_CUSTOM_NAME ?? 'IdentityServer4'}); } // Kakao if (process.env.NEXT_PUBLIC_KAKAO_ENABLED === 'true') { buttonAuths.push({method: 'kakao', name: process.env.KAKAO_CUSTOM_NAME ?? 'Kakao'}); } // Keycloak if (process.env.NEXT_PUBLIC_KEYCLOAK_ENABLED === 'true') { buttonAuths.push({method: 'keycloak', name: process.env.KEYCLOAK_CUSTOM_NAME ?? 'Keycloak'}); } // LINE if (process.env.NEXT_PUBLIC_LINE_ENABLED === 'true') { buttonAuths.push({method: 'line', name: process.env.LINE_CUSTOM_NAME ?? 'LINE'}); } // LinkedIn if (process.env.NEXT_PUBLIC_LINKEDIN_ENABLED === 'true') { buttonAuths.push({method: 'linkedin', name: process.env.LINKEDIN_CUSTOM_NAME ?? 'LinkedIn'}); } // MailChimp if (process.env.NEXT_PUBLIC_MAILCHIMP_ENABLED === 'true') { buttonAuths.push({method: 'mailchimp', name: process.env.MAILCHIMP_CUSTOM_NAME ?? 'Mailchimp'}); } // Mail.ru if (process.env.NEXT_PUBLIC_MAILRU_ENABLED === 'true') { buttonAuths.push({method: 'mailru', name: process.env.MAILRU_CUSTOM_NAME ?? 'Mail.ru'}); } // Naver if (process.env.NEXT_PUBLIC_NAVER_ENABLED === 'true') { buttonAuths.push({method: 'naver', name: process.env.NAVER_CUSTOM_NAME ?? 'Naver'}); } // Netlify if (process.env.NEXT_PUBLIC_NETLIFY_ENABLED === 'true') { buttonAuths.push({method: 'netlify', name: process.env.NETLIFY_CUSTOM_NAME ?? 'Netlify'}); } // Okta if (process.env.NEXT_PUBLIC_OKTA_ENABLED === 'true') { buttonAuths.push({method: 'okta', name: process.env.OKTA_CUSTOM_NAME ?? 'Okta'}); } // OneLogin if (process.env.NEXT_PUBLIC_ONELOGIN_ENABLED === 'true') { buttonAuths.push({method: 'onelogin', name: process.env.ONELOGIN_CUSTOM_NAME ?? 'OneLogin'}); } // Osso if (process.env.NEXT_PUBLIC_OSSO_ENABLED === 'true') { buttonAuths.push({method: 'osso', name: process.env.OSSO_CUSTOM_NAME ?? 'Osso'}); } // osu! if (process.env.NEXT_PUBLIC_OSU_ENABLED === 'true') { buttonAuths.push({method: 'osu', name: process.env.OSU_CUSTOM_NAME ?? 'Osu!'}); } // Patreon if (process.env.NEXT_PUBLIC_PATREON_ENABLED === 'true') { buttonAuths.push({method: 'patreon', name: process.env.PATREON_CUSTOM_NAME ?? 'Patreon'}); } // Pinterest if (process.env.NEXT_PUBLIC_PINTEREST_ENABLED === 'true') { buttonAuths.push({method: 'pinterest', name: process.env.PINTEREST_CUSTOM_NAME ?? 'Pinterest'}); } // Pipedrive if (process.env.NEXT_PUBLIC_PIPEDRIVE_ENABLED === 'true') { buttonAuths.push({method: 'pipedrive', name: process.env.PIPEDRIVE_CUSTOM_NAME ?? 'Pipedrive'}); } // Reddit if (process.env.NEXT_PUBLIC_REDDIT_ENABLED === 'true') { buttonAuths.push({method: 'reddit', name: process.env.REDDIT_CUSTOM_NAME ?? 'Reddit'}); } // Salesforce if (process.env.NEXT_PUBLIC_SALESFORCE_ENABLED === 'true') { buttonAuths.push({method: 'salesforce', name: process.env.SALESFORCE_CUSTOM_NAME ?? 'Salesforce'}); } // Slack if (process.env.NEXT_PUBLIC_SLACK_ENABLED === 'true') { buttonAuths.push({method: 'slack', name: process.env.SLACK_CUSTOM_NAME ?? 'Slack'}); } // Spotify if (process.env.NEXT_PUBLIC_SPOTIFY_ENABLED === 'true') { buttonAuths.push({method: 'spotify', name: process.env.SPOTIFY_CUSTOM_NAME ?? 'Spotify'}); } // Strava if (process.env.NEXT_PUBLIC_STRAVA_ENABLED === 'true') { buttonAuths.push({method: 'strava', name: process.env.STRAVA_CUSTOM_NAME ?? 'Strava'}); } // Todoist if (process.env.NEXT_PUBLIC_TODOIST_ENABLED === 'true') { buttonAuths.push({method: 'todoist', name: process.env.TODOIST_CUSTOM_NAME ?? 'Todoist'}); } // Twitch if (process.env.NEXT_PUBLIC_TWITCH_ENABLED === 'true') { buttonAuths.push({method: 'twitch', name: process.env.TWITCH_CUSTOM_NAME ?? 'Twitch'}); } // United Effects if (process.env.NEXT_PUBLIC_UNITED_EFFECTS_ENABLED === 'true') { buttonAuths.push({method: 'united-effects', name: process.env.UNITED_EFFECTS_CUSTOM_NAME ?? 'United Effects'}); } // VK if (process.env.NEXT_PUBLIC_VK_ENABLED === 'true') { buttonAuths.push({method: 'vk', name: process.env.VK_CUSTOM_NAME ?? 'VK'}); } // Wikimedia if (process.env.NEXT_PUBLIC_WIKIMEDIA_ENABLED === 'true') { buttonAuths.push({method: 'wikimedia', name: process.env.WIKIMEDIA_CUSTOM_NAME ?? 'Wikimedia'}); } // Wordpress.com if (process.env.NEXT_PUBLIC_WORDPRESS_ENABLED === 'true') { buttonAuths.push({method: 'wordpress', name: process.env.WORDPRESS_CUSTOM_NAME ?? 'WordPress.com'}); } // Yandex if (process.env.NEXT_PUBLIC_YANDEX_ENABLED === 'true') { buttonAuths.push({method: 'yandex', name: process.env.YANDEX_CUSTOM_NAME ?? 'Yandex'}); } // Zitadel if (process.env.NEXT_PUBLIC_ZITADEL_ENABLED === 'true') { buttonAuths.push({method: 'zitadel', name: process.env.ZITADEL_CUSTOM_NAME ?? 'ZITADEL'}); } // Zoho if (process.env.NEXT_PUBLIC_ZOHO_ENABLED === 'true') { buttonAuths.push({method: 'zoho', name: process.env.ZOHO_CUSTOM_NAME ?? 'Zoho'}); } // Zoom if (process.env.NEXT_PUBLIC_ZOOM_ENABLED === 'true') { buttonAuths.push({method: 'zoom', name: process.env.ZOOM_CUSTOM_NAME ?? 'Zoom'}); } return { credentialsEnabled: (process.env.NEXT_PUBLIC_CREDENTIALS_ENABLED === 'true' || process.env.NEXT_PUBLIC_CREDENTIALS_ENABLED === undefined) ? "true" : "false", emailEnabled: (process.env.NEXT_PUBLIC_EMAIL_PROVIDER === 'true' ? 'true' : 'false'), registrationDisabled: (process.env.NEXT_PUBLIC_DISABLE_REGISTRATION === 'true' ? 'true' : 'false'), buttonAuths: buttonAuths }; }