UNPKG

vtex

Version:

The platform for e-commerce apps

54 lines (53 loc) 2.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.VTEXID = void 0; const tslib_1 = require("tslib"); const api_1 = require("@vtex/api"); const querystring_1 = tslib_1.__importDefault(require("querystring")); const storeUrl_1 = require("../../../storeUrl"); const IOClientFactory_1 = require("../IOClientFactory"); const featureFlagDecider_1 = require("../../../../modules/featureFlag/featureFlagDecider"); class VTEXID extends api_1.IOClient { constructor(ioContext, opts) { super(ioContext, { timeout: VTEXID.DEFAULT_TIMEOUT, retries: VTEXID.DEFAULT_RETRIES, ...opts, baseURL: `https://${ioContext.account}.myvtex.com`, }); } static createClient(customContext = {}, customOptions = {}) { return IOClientFactory_1.IOClientFactory.createClient(VTEXID, customContext, customOptions, { requireAuth: false }); } static async invalidateBrowserAuthCookie(account) { return featureFlagDecider_1.switchOpen(storeUrl_1.storeUrl({ account, addWorkspace: false, path: `${VTEXID.API_PATH_PREFIX}/pub/single-sign-out?scope=` }), { wait: false }); } startToolbeltLogin({ secretHash, loopbackUrl }) { const body = querystring_1.default.stringify({ secretHash, loopbackUrl, }); return this.http.post(`${VTEXID.TOOLBELT_API_PATH_PREFIX}/start`, body); } validateToolbeltLogin({ state, secret, ott }) { const body = querystring_1.default.stringify({ state, secret, ott, }); return this.http.post(`${VTEXID.TOOLBELT_API_PATH_PREFIX}/validate`, body); } invalidateToolbeltToken(token) { return this.http.get(`/api/vtexid/pub/logout?scope=`, { headers: { Cookie: `${VTEXID.VTEX_ID_AUTH_COOKIE}=${token}`, }, }); } } exports.VTEXID = VTEXID; VTEXID.DEFAULT_TIMEOUT = 10000; VTEXID.DEFAULT_RETRIES = 2; VTEXID.API_PATH_PREFIX = '/api/vtexid'; VTEXID.TOOLBELT_API_PATH_PREFIX = `${VTEXID.API_PATH_PREFIX}/toolbelt`; VTEXID.VTEX_ID_AUTH_COOKIE = 'VtexIdClientAutCookie';