@cocalc/server
Version:
CoCalc server functionality: functions used by either the hub and the next.js server
79 lines • 3.46 kB
JavaScript
;
/*
* This file is part of CoCalc: Copyright © 2022 Sagemath, Inc.
* License: AGPLv3 s.t. "Commons Clause" – see LICENSE.md for details
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getExtraStrategyConstructor = void 0;
const misc_1 = require("@cocalc/util/misc");
const passport_oauth2_1 = require("@passport-next/passport-oauth2");
const passport_activedirectory_1 = require("passport-activedirectory");
const passport_apple_1 = require("passport-apple");
const passport_gitlab2_1 = require("passport-gitlab2");
// this is a wrapper containing version 1 and 2
const passport_azure_ad_1 = require("passport-azure-ad");
const oauth = __importStar(require("passport-oauth"));
const passport_openidconnect_1 = require("passport-openidconnect");
const passport_orcid_1 = require("passport-orcid");
const passport_saml_1 = require("passport-saml");
const types_1 = require("./types");
function getExtraStrategyConstructor(type) {
// LDAP via passport-ldapauth: https://github.com/vesse/passport-ldapauth#readme
// OAuth2 via @passport-next/passport-oauth2: https://github.com/passport-next/passport-oauth2#readme
// ORCID via passport-orcid: https://github.com/hubgit/passport-orcid#readme
if (!types_1.PassportTypesList.includes(type)) {
throw Error(`hub/auth: unknown extra strategy "${type}"`);
}
switch (type) {
case "oauth1":
return oauth.OAuthStrategy;
case "oauth2":
return oauth.OAuth2Strategy;
case "oauth2next":
return passport_oauth2_1.Strategy;
case "orcid":
return passport_orcid_1.Strategy;
case "saml":
return passport_saml_1.Strategy;
case "oidc":
return passport_openidconnect_1.Strategy;
case "azuread":
return passport_azure_ad_1.OIDCStrategy;
case "activedirectory":
return passport_activedirectory_1.Strategy;
case "gitlab2":
return passport_gitlab2_1.Strategy;
case "apple":
return passport_apple_1.Strategy;
case "email":
throw new Error("email is a special case, not a strategy");
default:
(0, misc_1.unreachable)(type);
}
throw new Error(`type ${type} not implemented`);
}
exports.getExtraStrategyConstructor = getExtraStrategyConstructor;
//# sourceMappingURL=extra-strategies.js.map