UNPKG

@zeushq/nextjs-zidentity

Version:

Next.js SDK for signin in with Zeus Identity

82 lines 5.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getConfig = exports.getLoginUrl = void 0; var tslib_1 = require("tslib"); var zsession_1 = require("./zsession"); /** * @ignore */ var FALSEY = ['n', 'no', 'false', '0', 'off']; /** * @ignore */ var bool = function (param, defaultValue) { if (param === undefined || param === '') return defaultValue; if (param && typeof param === 'string') return !FALSEY.includes(param.toLowerCase().trim()); return !!param; }; /** * @ignore */ var num = function (param) { return (param === undefined || param === '' ? undefined : +param); }; /** * @ignore */ var getLoginUrl = function () { return process.env.NEXT_PUBLIC_ZIDENTITY_LOGIN || '/api/auth/login'; }; exports.getLoginUrl = getLoginUrl; /** * @ignore */ var getConfig = function (params) { var _a, _b, _c, _d; if (params === void 0) { params = {}; } // Don't use destructuring here so that the `DefinePlugin` can replace any env vars specified in `next.config.js` var ZIDENTITY_SECRET = process.env.ZIDENTITY_SECRET; var ZIDENTITY_ISSUER_BASE_URL = process.env.ZIDENTITY_ISSUER_BASE_URL; var ZIDENTITY_BASE_URL = process.env.ZIDENTITY_BASE_URL; var ZIDENTITY_CLIENT_ID = process.env.ZIDENTITY_CLIENT_ID; var ZIDENTITY_CLIENT_SECRET = process.env.ZIDENTITY_CLIENT_SECRET; var ZIDENTITY_CLOCK_TOLERANCE = process.env.ZIDENTITY_CLOCK_TOLERANCE; var ZIDENTITY_HTTP_TIMEOUT = process.env.ZIDENTITY_HTTP_TIMEOUT; var ZIDENTITY_ENABLE_TELEMETRY = process.env.ZIDENTITY_ENABLE_TELEMETRY; var ZIDENTITY_IDP_LOGOUT = process.env.ZIDENTITY_IDP_LOGOUT; var ZIDENTITY_ID_TOKEN_SIGNING_ALG = process.env.ZIDENTITY_ID_TOKEN_SIGNING_ALG; var ZIDENTITY_LEGACY_SAME_SITE_COOKIE = process.env.ZIDENTITY_LEGACY_SAME_SITE_COOKIE; var ZIDENTITY_CALLBACK = process.env.ZIDENTITY_CALLBACK; var ZIDENTITY_POST_LOGOUT_REDIRECT = process.env.ZIDENTITY_POST_LOGOUT_REDIRECT; var ZIDENTITY_AUDIENCE = process.env.ZIDENTITY_AUDIENCE; var ZIDENTITY_SCOPE = process.env.ZIDENTITY_SCOPE; var ZIDENTITY_ORGANIZATION = process.env.ZIDENTITY_ORGANIZATION; var ZIDENTITY_SESSION_NAME = process.env.ZIDENTITY_SESSION_NAME; var ZIDENTITY_SESSION_ROLLING = process.env.ZIDENTITY_SESSION_ROLLING; var ZIDENTITY_SESSION_ROLLING_DURATION = process.env.ZIDENTITY_SESSION_ROLLING_DURATION; var ZIDENTITY_SESSION_ABSOLUTE_DURATION = process.env.ZIDENTITY_SESSION_ABSOLUTE_DURATION; var ZIDENTITY_COOKIE_DOMAIN = process.env.ZIDENTITY_COOKIE_DOMAIN; var ZIDENTITY_COOKIE_PATH = process.env.ZIDENTITY_COOKIE_PATH; var ZIDENTITY_COOKIE_TRANSIENT = process.env.ZIDENTITY_COOKIE_TRANSIENT; var ZIDENTITY_COOKIE_HTTP_ONLY = process.env.ZIDENTITY_COOKIE_HTTP_ONLY; var ZIDENTITY_COOKIE_SECURE = process.env.ZIDENTITY_COOKIE_SECURE; var ZIDENTITY_COOKIE_SAME_SITE = process.env.ZIDENTITY_COOKIE_SAME_SITE; var baseURL = ZIDENTITY_BASE_URL && !/^https?:\/\//.test(ZIDENTITY_BASE_URL) ? "https://" + ZIDENTITY_BASE_URL : ZIDENTITY_BASE_URL; var organization = params.organization, baseParams = (0, tslib_1.__rest)(params, ["organization"]); var baseConfig = (0, zsession_1.getConfig)((0, tslib_1.__assign)((0, tslib_1.__assign)({ secret: ZIDENTITY_SECRET, issuerBaseURL: ZIDENTITY_ISSUER_BASE_URL, baseURL: baseURL, clientID: ZIDENTITY_CLIENT_ID, clientSecret: ZIDENTITY_CLIENT_SECRET, clockTolerance: num(ZIDENTITY_CLOCK_TOLERANCE), httpTimeout: num(ZIDENTITY_HTTP_TIMEOUT), enableTelemetry: bool(ZIDENTITY_ENABLE_TELEMETRY), idpLogout: bool(ZIDENTITY_IDP_LOGOUT, true), zIdentityLogout: bool(ZIDENTITY_IDP_LOGOUT, true), idTokenSigningAlg: ZIDENTITY_ID_TOKEN_SIGNING_ALG, legacySameSiteCookie: bool(ZIDENTITY_LEGACY_SAME_SITE_COOKIE) }, baseParams), { authorizationParams: (0, tslib_1.__assign)({ response_type: 'code', audience: ZIDENTITY_AUDIENCE, scope: ZIDENTITY_SCOPE }, baseParams.authorizationParams), session: (0, tslib_1.__assign)((0, tslib_1.__assign)({ name: ZIDENTITY_SESSION_NAME, rolling: bool(ZIDENTITY_SESSION_ROLLING), rollingDuration: num(ZIDENTITY_SESSION_ROLLING_DURATION), absoluteDuration: ZIDENTITY_SESSION_ABSOLUTE_DURATION && isNaN(Number(ZIDENTITY_SESSION_ABSOLUTE_DURATION)) ? bool(ZIDENTITY_SESSION_ABSOLUTE_DURATION) : num(ZIDENTITY_SESSION_ABSOLUTE_DURATION) }, baseParams.session), { cookie: (0, tslib_1.__assign)({ domain: ZIDENTITY_COOKIE_DOMAIN, path: ZIDENTITY_COOKIE_PATH || '/', transient: bool(ZIDENTITY_COOKIE_TRANSIENT), httpOnly: bool(ZIDENTITY_COOKIE_HTTP_ONLY), secure: bool(ZIDENTITY_COOKIE_SECURE), sameSite: ZIDENTITY_COOKIE_SAME_SITE }, (_a = baseParams.session) === null || _a === void 0 ? void 0 : _a.cookie) }), routes: { callback: ((_b = baseParams.routes) === null || _b === void 0 ? void 0 : _b.callback) || ZIDENTITY_CALLBACK || '/api/auth/callback', postLogoutRedirect: ((_c = baseParams.routes) === null || _c === void 0 ? void 0 : _c.postLogoutRedirect) || ZIDENTITY_POST_LOGOUT_REDIRECT } })); var nextConfig = { routes: (0, tslib_1.__assign)((0, tslib_1.__assign)({}, baseConfig.routes), { login: ((_d = baseParams.routes) === null || _d === void 0 ? void 0 : _d.login) || (0, exports.getLoginUrl)() }), identityClaimFilter: baseConfig.identityClaimFilter, organization: organization || ZIDENTITY_ORGANIZATION }; return { baseConfig: baseConfig, nextConfig: nextConfig }; }; exports.getConfig = getConfig; //# sourceMappingURL=config.js.map