@zeushq/nextjs-zidentity
Version:
Next.js SDK for signin in with Zeus Identity
82 lines • 5.56 kB
JavaScript
"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