UNPKG

vtex

Version:

The platform for e-commerce apps

54 lines (53 loc) 2.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const api_1 = require("@vtex/api"); const opn_1 = tslib_1.__importDefault(require("opn")); const querystring_1 = tslib_1.__importDefault(require("querystring")); const storeUrl_1 = require("../../../storeUrl"); const IOClientFactory_1 = require("../IOClientFactory"); class VTEXID extends api_1.IOClient { constructor(ioContext, opts) { super(ioContext, { timeout: VTEXID.DEFAULT_TIMEOUT, retries: VTEXID.DEFAULT_RETRIES, ...opts, baseURL: VTEXID.BASE_URL, }); } static createClient(customContext = {}, customOptions = {}) { return IOClientFactory_1.IOClientFactory.createClient(VTEXID, customContext, customOptions, { requireAuth: false }); } static invalidateBrowserAuthCookie(account) { return opn_1.default(storeUrl_1.storeUrl({ account, addWorkspace: false, path: `${VTEXID.API_PATH_PREFIX}/pub/single-sign-out?scope=` }), { wait: false }); } startToolbeltLogin({ account, secretHash, loopbackUrl }) { const body = querystring_1.default.stringify({ secretHash, loopbackUrl, }); return this.http.post(`${VTEXID.TOOLBELT_API_PATH_PREFIX}/start?an=${account}`, body); } validateToolbeltLogin({ account, state, secret, ott }) { const body = querystring_1.default.stringify({ state, secret, ott, }); return this.http.post(`${VTEXID.TOOLBELT_API_PATH_PREFIX}/validate?an=${account}`, 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.BASE_URL = 'https://vtexid.vtex.com.br'; VTEXID.API_PATH_PREFIX = '/api/vtexid'; VTEXID.TOOLBELT_API_PATH_PREFIX = `${VTEXID.API_PATH_PREFIX}/toolbelt`; VTEXID.VTEX_ID_AUTH_COOKIE = 'VtexIdClientAutCookie';