supertokens-web-js
Version:
SuperTokens SDK for vanilla JS for all recipes
110 lines (109 loc) • 4.91 kB
JavaScript
;
/* Copyright (c) 2024, VRAI Labs and/or its affiliates. All rights reserved.
*
* This software is licensed under the Apache License, Version 2.0 (the
* "License") as published by the Apache Software Foundation.
*
* You may not use this file except in compliance with the License. You may
* obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/
var __assign =
(this && this.__assign) ||
function () {
__assign =
Object.assign ||
function (t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.logOut = exports.getRedirectURLToContinueOAuthFlow = exports.getLoginChallengeInfo = exports.init = void 0;
var utils_1 = require("../../utils");
var recipe_1 = require("./recipe");
var RecipeWrapper = /** @class */ (function () {
function RecipeWrapper() {}
RecipeWrapper.init = function (config) {
return recipe_1.default.init(config);
};
/**
* Returns information about an OAuth login in progress
*
* @param loginChallenge The login challenge from the url
*
* @param userContext (OPTIONAL) Refer to {@link https://supertokens.com/docs/emailpassword/advanced-customizations/user-context the documentation}
*
* @param options (OPTIONAL) Use this to configure additional properties (for example pre api hooks)
*
* @returns `{status: "OK", info: LoginInfo}`
*
* @throws STGeneralError if the API exposed by the backend SDKs returns `status: "GENERAL_ERROR"`
*/
RecipeWrapper.getLoginChallengeInfo = function (input) {
return recipe_1.default
.getInstanceOrThrow()
.recipeImplementation.getLoginChallengeInfo(
__assign(__assign({}, input), { userContext: (0, utils_1.getNormalisedUserContext)(input.userContext) })
);
};
/**
* Accepts the OAuth2 Login request and returns the redirect URL to continue the OAuth flow.
*
* @param loginChallenge The login challenge from the url
*
* @param userContext (OPTIONAL) Refer to {@link https://supertokens.com/docs/emailpassword/advanced-customizations/user-context the documentation}
*
* @param options (OPTIONAL) Use this to configure additional properties (for example pre api hooks)
*
* @returns `{status: "OK", frontendRedirectTo: string}`
*
* @throws STGeneralError if the API exposed by the backend SDKs returns `status: "GENERAL_ERROR"`
*/
RecipeWrapper.getRedirectURLToContinueOAuthFlow = function (input) {
return recipe_1.default
.getInstanceOrThrow()
.recipeImplementation.getRedirectURLToContinueOAuthFlow(
__assign(__assign({}, input), { userContext: (0, utils_1.getNormalisedUserContext)(input.userContext) })
);
};
/**
* Accepts the OAuth2 Logout request, clears the SuperTokens session and returns post logout redirect URL.
*
* @param logoutChallenge The logout challenge from the url
*
* @param userContext (OPTIONAL) Refer to {@link https://supertokens.com/docs/emailpassword/advanced-customizations/user-context the documentation}
*
* @param options (OPTIONAL) Use this to configure additional properties (for example pre api hooks)
*
* @returns `{status: "OK", frontendRedirectTo: string}`
*
* @throws STGeneralError if the API exposed by the backend SDKs returns `status: "GENERAL_ERROR"`
*/
RecipeWrapper.logOut = function (input) {
return recipe_1.default
.getInstanceOrThrow()
.recipeImplementation.logOut(
__assign(__assign({}, input), { userContext: (0, utils_1.getNormalisedUserContext)(input.userContext) })
);
};
return RecipeWrapper;
})();
exports.default = RecipeWrapper;
var init = RecipeWrapper.init;
exports.init = init;
var getLoginChallengeInfo = RecipeWrapper.getLoginChallengeInfo;
exports.getLoginChallengeInfo = getLoginChallengeInfo;
var getRedirectURLToContinueOAuthFlow = RecipeWrapper.getRedirectURLToContinueOAuthFlow;
exports.getRedirectURLToContinueOAuthFlow = getRedirectURLToContinueOAuthFlow;
var logOut = RecipeWrapper.logOut;
exports.logOut = logOut;