wcz-layout
Version:
74 lines (73 loc) • 2.75 kB
JavaScript
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