import SuperTokens from "supertokens-web-js"; import Session from "supertokens-web-js/recipe/session"; import Passwordless from "supertokens-web-js/recipe/passwordless"; import { appInfo } from "./config"; import { logger } from "./"; export const resetRefreshFlag = () => { logger.warn("resetRefreshFlag is deprecated. Use refreshManager.reset() instead."); }; export const getOrCreateRefreshPromise = (refreshFn: () => Promise): Promise => { logger.warn("getOrCreateRefreshPromise is deprecated. Use refreshManager.refresh() instead."); return refreshFn(); }; export const frontendConfig = () => { return { appInfo, recipeList: [ Passwordless.init(), Session.init({ tokenTransferMethod: "cookie", sessionTokenBackendDomain: undefined, preAPIHook: async (context) => { context.requestInit.credentials = "include"; return context; }, }), ], }; }; let initialized = false; export function ensureSuperTokensFrontend() { if (typeof window === "undefined") return; if (!initialized) { SuperTokens.init(frontendConfig()); initialized = true; logger.info("SuperTokens initialized"); } }