UNPKG

wcz-layout

Version:

74 lines (73 loc) 2.75 kB
import { _ as serverEnv } from "./utils-KaM5VMTJ.mjs"; import "node:module"; import { scopes } from "virtual:wcz-layout"; import * as jose from "jose"; //#region \0rolldown/runtime.js var __defProp = Object.defineProperty; var __exportAll = (all, no_symbols) => { let target = {}; for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" }); return target; }; //#endregion //#region src/lib/auth/providers.ts var providers_exports = /* @__PURE__ */ __exportAll({ getProvider: () => getProvider, getProviderByIssuer: () => getProviderByIssuer, providers: () => providers }); const entraAuthority = `https://login.microsoftonline.com/${serverEnv.ENTRA_TENANT_ID}`; const entra = { id: "entra", label: "Microsoft", clientId: serverEnv.ENTRA_CLIENT_ID, clientSecret: serverEnv.ENTRA_CLIENT_SECRET, issuer: `${entraAuthority}/v2.0`, authorizeEndpoint: `${entraAuthority}/oauth2/v2.0/authorize`, tokenEndpoint: `${entraAuthority}/oauth2/v2.0/token`, loginScopes: [ "openid", "profile", "offline_access", "User.Read" ], audience: serverEnv.ENTRA_CLIENT_ID, jwks: jose.createRemoteJWKSet(new URL(`${entraAuthority}/discovery/v2.0/keys`)), logoutUrl: (returnTo) => `${entraAuthority}/oauth2/v2.0/logout?post_logout_redirect_uri=${encodeURIComponent(returnTo)}` }; [...new Set(Object.values(scopes).map((entry) => typeof entry === "string" ? void 0 : entry.aws).filter((scope) => scope !== void 0))]; const buildAws = () => { const { AWS_ISSUER, AWS_DOMAIN, AWS_CLIENT_ID, AWS_CLIENT_SECRET } = serverEnv; if (!AWS_ISSUER || !AWS_DOMAIN || !AWS_CLIENT_ID || !AWS_CLIENT_SECRET) return null; return { id: "aws", label: "AWS", clientId: AWS_CLIENT_ID, clientSecret: AWS_CLIENT_SECRET, issuer: AWS_ISSUER, authorizeEndpoint: `${AWS_DOMAIN}/oauth2/authorize`, tokenEndpoint: `${AWS_DOMAIN}/oauth2/token`, loginScopes: [ "openid", "email", "phone" ], jwks: jose.createRemoteJWKSet(new URL(`${AWS_ISSUER}/.well-known/jwks.json`)), logoutUrl: (returnTo) => `${AWS_DOMAIN}/logout?client_id=${AWS_CLIENT_ID}&logout_uri=${encodeURIComponent(returnTo)}` }; }; const aws = buildAws(); const providers = aws ? [entra, aws] : [entra]; const getProvider = (id) => { const provider = providers.find((candidate) => candidate.id === id); if (!provider) throw new Error(`Identity provider "${id}" is not configured.`); return provider; }; const getProviderByIssuer = (issuer) => providers.find((candidate) => candidate.issuer === issuer); //#endregion export { __exportAll as a, providers_exports as i, getProviderByIssuer as n, providers as r, getProvider as t }; //# sourceMappingURL=providers-Dbl95AxR.mjs.map