@thoughtspot/visual-embed-sdk 1.31.1 → 1.32.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/package.json +2 -2
- package/cjs/src/auth.d.ts +14 -16
- package/cjs/src/auth.d.ts.map +1 -1
- package/cjs/src/auth.js +57 -66
- package/cjs/src/auth.js.map +1 -1
- package/cjs/src/auth.spec.d.ts +12 -0
- package/cjs/src/auth.spec.d.ts.map +1 -1
- package/cjs/src/auth.spec.js +89 -67
- package/cjs/src/auth.spec.js.map +1 -1
- package/cjs/src/authToken.d.ts +1 -1
- package/cjs/src/authToken.d.ts.map +1 -1
- package/cjs/src/authToken.js +10 -4
- package/cjs/src/authToken.js.map +1 -1
- package/cjs/src/embed/app.spec.js +4 -2
- package/cjs/src/embed/app.spec.js.map +1 -1
- package/cjs/src/embed/base.d.ts.map +1 -1
- package/cjs/src/embed/base.js +2 -0
- package/cjs/src/embed/base.js.map +1 -1
- package/cjs/src/embed/base.spec.js +1 -0
- package/cjs/src/embed/base.spec.js.map +1 -1
- package/cjs/src/embed/embed.spec.js +3 -0
- package/cjs/src/embed/embed.spec.js.map +1 -1
- package/cjs/src/embed/events.spec.js +3 -0
- package/cjs/src/embed/events.spec.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +2 -0
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/pinboard.spec.js +3 -0
- package/cjs/src/embed/pinboard.spec.js.map +1 -1
- package/cjs/src/embed/sage.spec.js +3 -0
- package/cjs/src/embed/sage.spec.js.map +1 -1
- package/cjs/src/embed/search.spec.js +1 -0
- package/cjs/src/embed/search.spec.js.map +1 -1
- package/cjs/src/embed/ts-embed-trigger.spec.js +3 -0
- package/cjs/src/embed/ts-embed-trigger.spec.js.map +1 -1
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +1 -0
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +7 -0
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/index.d.ts +2 -1
- package/cjs/src/index.d.ts.map +1 -1
- package/cjs/src/index.js +2 -1
- package/cjs/src/index.js.map +1 -1
- package/cjs/src/mixpanel-service.d.ts +2 -1
- package/cjs/src/mixpanel-service.d.ts.map +1 -1
- package/cjs/src/mixpanel-service.js +1 -0
- package/cjs/src/mixpanel-service.js.map +1 -1
- package/cjs/src/mixpanel-service.spec.js +7 -0
- package/cjs/src/mixpanel-service.spec.js.map +1 -1
- package/cjs/src/react/index.d.ts +1 -1
- package/cjs/src/react/index.d.ts.map +1 -1
- package/cjs/src/react/index.js +2 -1
- package/cjs/src/react/index.js.map +1 -1
- package/cjs/src/react/index.spec.js +6 -0
- package/cjs/src/react/index.spec.js.map +1 -1
- package/cjs/src/tokenizedFetch.d.ts +8 -0
- package/cjs/src/tokenizedFetch.d.ts.map +1 -1
- package/cjs/src/tokenizedFetch.js +8 -0
- package/cjs/src/tokenizedFetch.js.map +1 -1
- package/cjs/src/types.d.ts +12 -12
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +12 -12
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/authService/authService.d.ts +1 -0
- package/cjs/src/utils/authService/authService.d.ts.map +1 -1
- package/cjs/src/utils/authService/authService.js +1 -0
- package/cjs/src/utils/authService/authService.js.map +1 -1
- package/cjs/src/utils/authService/authService.spec.js +18 -5
- package/cjs/src/utils/authService/authService.spec.js.map +1 -1
- package/cjs/src/utils/authService/tokenizedAuthService.d.ts +15 -2
- package/cjs/src/utils/authService/tokenizedAuthService.d.ts.map +1 -1
- package/cjs/src/utils/authService/tokenizedAuthService.js +39 -9
- package/cjs/src/utils/authService/tokenizedAuthService.js.map +1 -1
- package/cjs/src/utils/authService/tokenizedAuthService.spec.d.ts +2 -0
- package/cjs/src/utils/authService/tokenizedAuthService.spec.d.ts.map +1 -0
- package/cjs/src/utils/authService/tokenizedAuthService.spec.js +32 -0
- package/cjs/src/utils/authService/tokenizedAuthService.spec.js.map +1 -0
- package/cjs/src/utils/processData.js +2 -2
- package/cjs/src/utils/processData.js.map +1 -1
- package/cjs/src/utils/processData.spec.js +3 -2
- package/cjs/src/utils/processData.spec.js.map +1 -1
- package/cjs/src/utils/sessionInfoService.d.ts +66 -0
- package/cjs/src/utils/sessionInfoService.d.ts.map +1 -0
- package/cjs/src/utils/sessionInfoService.js +92 -0
- package/cjs/src/utils/sessionInfoService.js.map +1 -0
- package/dist/src/auth.d.ts +14 -16
- package/dist/src/auth.d.ts.map +1 -1
- package/dist/src/auth.spec.d.ts +12 -0
- package/dist/src/auth.spec.d.ts.map +1 -1
- package/dist/src/authToken.d.ts +1 -1
- package/dist/src/authToken.d.ts.map +1 -1
- package/dist/src/embed/base.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/mixpanel-service.d.ts +2 -1
- package/dist/src/mixpanel-service.d.ts.map +1 -1
- package/dist/src/react/index.d.ts +1 -1
- package/dist/src/react/index.d.ts.map +1 -1
- package/dist/src/tokenizedFetch.d.ts +8 -0
- package/dist/src/tokenizedFetch.d.ts.map +1 -1
- package/dist/src/types.d.ts +12 -12
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/authService/authService.d.ts +1 -0
- package/dist/src/utils/authService/authService.d.ts.map +1 -1
- package/dist/src/utils/authService/tokenizedAuthService.d.ts +15 -2
- package/dist/src/utils/authService/tokenizedAuthService.d.ts.map +1 -1
- package/dist/src/utils/authService/tokenizedAuthService.spec.d.ts +2 -0
- package/dist/src/utils/authService/tokenizedAuthService.spec.d.ts.map +1 -0
- package/dist/src/utils/sessionInfoService.d.ts +66 -0
- package/dist/src/utils/sessionInfoService.d.ts.map +1 -0
- package/dist/tsembed-react.es.js +169 -77
- package/dist/tsembed-react.js +169 -76
- package/dist/tsembed.es.js +177 -87
- package/dist/tsembed.js +177 -87
- package/dist/visual-embed-sdk-react-full.d.ts +102 -30
- package/dist/visual-embed-sdk-react.d.ts +102 -30
- package/dist/visual-embed-sdk.d.ts +102 -30
- package/lib/package.json +2 -2
- package/lib/src/auth.d.ts +14 -16
- package/lib/src/auth.d.ts.map +1 -1
- package/lib/src/auth.js +56 -63
- package/lib/src/auth.js.map +1 -1
- package/lib/src/auth.spec.d.ts +12 -0
- package/lib/src/auth.spec.d.ts.map +1 -1
- package/lib/src/auth.spec.js +88 -66
- package/lib/src/auth.spec.js.map +1 -1
- package/lib/src/authToken.d.ts +1 -1
- package/lib/src/authToken.d.ts.map +1 -1
- package/lib/src/authToken.js +10 -4
- package/lib/src/authToken.js.map +1 -1
- package/lib/src/embed/app.spec.js +4 -2
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/base.d.ts.map +1 -1
- package/lib/src/embed/base.js +3 -1
- package/lib/src/embed/base.js.map +1 -1
- package/lib/src/embed/base.spec.js +1 -0
- package/lib/src/embed/base.spec.js.map +1 -1
- package/lib/src/embed/embed.spec.js +2 -0
- package/lib/src/embed/embed.spec.js.map +1 -1
- package/lib/src/embed/events.spec.js +2 -0
- package/lib/src/embed/events.spec.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +2 -0
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/pinboard.spec.js +2 -0
- package/lib/src/embed/pinboard.spec.js.map +1 -1
- package/lib/src/embed/sage.spec.js +2 -0
- package/lib/src/embed/sage.spec.js.map +1 -1
- package/lib/src/embed/search.spec.js +1 -0
- package/lib/src/embed/search.spec.js.map +1 -1
- package/lib/src/embed/ts-embed-trigger.spec.js +2 -0
- package/lib/src/embed/ts-embed-trigger.spec.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +1 -0
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +7 -0
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/index.d.ts +2 -1
- package/lib/src/index.d.ts.map +1 -1
- package/lib/src/index.js +2 -1
- package/lib/src/index.js.map +1 -1
- package/lib/src/mixpanel-service.d.ts +2 -1
- package/lib/src/mixpanel-service.d.ts.map +1 -1
- package/lib/src/mixpanel-service.js +1 -0
- package/lib/src/mixpanel-service.js.map +1 -1
- package/lib/src/mixpanel-service.spec.js +7 -0
- package/lib/src/mixpanel-service.spec.js.map +1 -1
- package/lib/src/react/index.d.ts +1 -1
- package/lib/src/react/index.d.ts.map +1 -1
- package/lib/src/react/index.js +1 -1
- package/lib/src/react/index.js.map +1 -1
- package/lib/src/react/index.spec.js +6 -0
- package/lib/src/react/index.spec.js.map +1 -1
- package/lib/src/tokenizedFetch.d.ts +8 -0
- package/lib/src/tokenizedFetch.d.ts.map +1 -1
- package/lib/src/tokenizedFetch.js +8 -0
- package/lib/src/tokenizedFetch.js.map +1 -1
- package/lib/src/types.d.ts +12 -12
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +12 -12
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/authService/authService.d.ts +1 -0
- package/lib/src/utils/authService/authService.d.ts.map +1 -1
- package/lib/src/utils/authService/authService.js +1 -0
- package/lib/src/utils/authService/authService.js.map +1 -1
- package/lib/src/utils/authService/authService.spec.js +18 -5
- package/lib/src/utils/authService/authService.spec.js.map +1 -1
- package/lib/src/utils/authService/tokenizedAuthService.d.ts +15 -2
- package/lib/src/utils/authService/tokenizedAuthService.d.ts.map +1 -1
- package/lib/src/utils/authService/tokenizedAuthService.js +37 -8
- package/lib/src/utils/authService/tokenizedAuthService.js.map +1 -1
- package/lib/src/utils/authService/tokenizedAuthService.spec.d.ts +2 -0
- package/lib/src/utils/authService/tokenizedAuthService.spec.d.ts.map +1 -0
- package/lib/src/utils/authService/tokenizedAuthService.spec.js +29 -0
- package/lib/src/utils/authService/tokenizedAuthService.spec.js.map +1 -0
- package/lib/src/utils/processData.js +3 -3
- package/lib/src/utils/processData.js.map +1 -1
- package/lib/src/utils/processData.spec.js +3 -2
- package/lib/src/utils/processData.spec.js.map +1 -1
- package/lib/src/utils/sessionInfoService.d.ts +66 -0
- package/lib/src/utils/sessionInfoService.d.ts.map +1 -0
- package/lib/src/utils/sessionInfoService.js +85 -0
- package/lib/src/utils/sessionInfoService.js.map +1 -0
- package/lib/src/visual-embed-sdk.d.ts +107 -31
- package/package.json +2 -2
- package/src/auth.spec.ts +92 -72
- package/src/auth.ts +57 -75
- package/src/authToken.ts +9 -4
- package/src/embed/app.spec.ts +4 -2
- package/src/embed/base.spec.ts +1 -0
- package/src/embed/base.ts +3 -0
- package/src/embed/embed.spec.ts +2 -0
- package/src/embed/events.spec.ts +2 -0
- package/src/embed/liveboard.spec.ts +2 -0
- package/src/embed/pinboard.spec.ts +2 -0
- package/src/embed/sage.spec.ts +3 -0
- package/src/embed/search.spec.ts +1 -0
- package/src/embed/ts-embed-trigger.spec.ts +3 -0
- package/src/embed/ts-embed.spec.ts +8 -0
- package/src/embed/ts-embed.ts +1 -0
- package/src/index.ts +2 -1
- package/src/mixpanel-service.spec.ts +12 -3
- package/src/mixpanel-service.ts +3 -1
- package/src/react/index.spec.tsx +7 -0
- package/src/react/index.tsx +1 -0
- package/src/tokenizedFetch.ts +8 -0
- package/src/types.ts +13 -12
- package/src/utils/authService/authService.spec.ts +18 -5
- package/src/utils/authService/authService.ts +1 -0
- package/src/utils/authService/tokenizedAuthService.spec.ts +36 -0
- package/src/utils/authService/tokenizedAuthService.ts +38 -8
- package/src/utils/processData.spec.ts +3 -2
- package/src/utils/processData.ts +3 -3
- package/src/utils/sessionInfoService.ts +101 -0
package/dist/tsembed.js
CHANGED
|
@@ -1481,13 +1481,12 @@
|
|
|
1481
1481
|
* Emitted when parameter changes in an answer
|
|
1482
1482
|
* or liveboard
|
|
1483
1483
|
*
|
|
1484
|
-
* @version SDK : 1.29.0 | Thoughtspot : 10.2.0.cl
|
|
1485
|
-
* @example
|
|
1486
1484
|
* ```js
|
|
1487
1485
|
* liveboardEmbed.on(EmbedEvent.ParameterChanged, (payload) => {
|
|
1488
1486
|
* console.log('payload', payload);
|
|
1489
1487
|
* })
|
|
1490
1488
|
*```
|
|
1489
|
+
* @version SDK : 1.29.0 | Thoughtspot : 10.2.0.cl
|
|
1491
1490
|
*/
|
|
1492
1491
|
EmbedEvent["ParameterChanged"] = "parameterChanged";
|
|
1493
1492
|
})(exports.EmbedEvent || (exports.EmbedEvent = {}));
|
|
@@ -1686,7 +1685,7 @@
|
|
|
1686
1685
|
* sorting, toggling of legends, and data drill down.
|
|
1687
1686
|
* @example
|
|
1688
1687
|
* ```js
|
|
1689
|
-
* liveboardEmbed.trigger(HostEvent.
|
|
1688
|
+
* liveboardEmbed.trigger(HostEvent.getExportRequestForCurrentPinboard).then(
|
|
1690
1689
|
* data=>console.log(data))
|
|
1691
1690
|
* ```
|
|
1692
1691
|
* @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl, 8.8.1.sw
|
|
@@ -2296,15 +2295,6 @@
|
|
|
2296
2295
|
* @version SDK: 1.29.0 | Thoughtspot: 10.1.0.cl
|
|
2297
2296
|
*/
|
|
2298
2297
|
HostEvent["ResetLiveboardPersonalisedView"] = "ResetLiveboardPersonalisedView";
|
|
2299
|
-
/**
|
|
2300
|
-
* Trigger CreateLiveboard for liveboard list page & Pin Modal
|
|
2301
|
-
* @example
|
|
2302
|
-
* ```js
|
|
2303
|
-
* liveboardEmbed.trigger(HostEvent.CreateLiveboard);
|
|
2304
|
-
*
|
|
2305
|
-
* @version SDK: 1.29.0 | Thoughtspot: 10.1.0.cl
|
|
2306
|
-
*/
|
|
2307
|
-
HostEvent["CreateLiveboard"] = "CreateLiveboard";
|
|
2308
2298
|
/**
|
|
2309
2299
|
* Triggers Update RuntimeParameters for answers and liveboard
|
|
2310
2300
|
* @example
|
|
@@ -3263,6 +3253,16 @@
|
|
|
3263
3253
|
* @version SDK : 1.28.3 | Thoughtspot: 9.12.0.cl
|
|
3264
3254
|
*/
|
|
3265
3255
|
Action["TML"] = "tml";
|
|
3256
|
+
/**
|
|
3257
|
+
* Action Id for CreateLiveboard for liveboard list page & Pin Modal
|
|
3258
|
+
* @example
|
|
3259
|
+
* ```js
|
|
3260
|
+
* hiddenAction: [Action.CreateLiveboard]
|
|
3261
|
+
* disabledActions: [Action.CreateLiveboard]
|
|
3262
|
+
*
|
|
3263
|
+
* @version SDK: 1.31.1 | Thoughtspot: 10.1.0.cl
|
|
3264
|
+
*/
|
|
3265
|
+
Action["CreateLiveboard"] = "CreateLiveboard";
|
|
3266
3266
|
/**
|
|
3267
3267
|
* Action ID for to hide Verified Liveboard Banner
|
|
3268
3268
|
* @example
|
|
@@ -5680,6 +5680,7 @@
|
|
|
5680
5680
|
|
|
5681
5681
|
const EndPoints = {
|
|
5682
5682
|
AUTH_VERIFICATION: '/callosum/v1/session/info',
|
|
5683
|
+
SESSION_INFO: '/callosum/v1/session/info',
|
|
5683
5684
|
SAML_LOGIN_TEMPLATE: (targetUrl) => `/callosum/v1/saml/login?targetURLPath=${targetUrl}`,
|
|
5684
5685
|
OIDC_LOGIN_TEMPLATE: (targetUrl) => `/callosum/v1/oidc/login?targetURLPath=${targetUrl}`,
|
|
5685
5686
|
TOKEN_LOGIN: '/callosum/v1/session/login/token',
|
|
@@ -5795,7 +5796,7 @@
|
|
|
5795
5796
|
const INVALID_TOKEN_ERR = 'Invalid token received form token callback or authToken endpoint.';
|
|
5796
5797
|
let cachedAuthToken = null;
|
|
5797
5798
|
// This method can be used to get the authToken using the embedConfig
|
|
5798
|
-
|
|
5799
|
+
async function getAuthenticationToken(embedConfig) {
|
|
5799
5800
|
// Since we don't have token validation enabled , we cannot tell if the
|
|
5800
5801
|
// cached token is valid or not. So we will always fetch a new token.
|
|
5801
5802
|
if (cachedAuthToken && !embedConfig.disableTokenVerification) {
|
|
@@ -5818,11 +5819,17 @@
|
|
|
5818
5819
|
const response = await fetchAuthTokenService(authEndpoint);
|
|
5819
5820
|
authToken = await response.text();
|
|
5820
5821
|
}
|
|
5821
|
-
|
|
5822
|
-
|
|
5822
|
+
try {
|
|
5823
|
+
// this will throw error if the token is not valid
|
|
5824
|
+
await validateAuthToken(embedConfig, authToken);
|
|
5825
|
+
}
|
|
5826
|
+
catch (e) {
|
|
5827
|
+
logger.error(`Received invalid token from getAuthToken callback or authToken endpoint. Error : ${e.message}`);
|
|
5828
|
+
throw e;
|
|
5829
|
+
}
|
|
5823
5830
|
cachedAuthToken = authToken;
|
|
5824
5831
|
return authToken;
|
|
5825
|
-
}
|
|
5832
|
+
}
|
|
5826
5833
|
const validateAuthToken = async (embedConfig, authToken, suppressAlert) => {
|
|
5827
5834
|
if (embedConfig.disableTokenVerification) {
|
|
5828
5835
|
logger.info('Token verification is disabled. Assuming token is valid.');
|
|
@@ -5883,8 +5890,16 @@
|
|
|
5883
5890
|
/**
|
|
5884
5891
|
* Fetch wrapper that adds the authentication token to the request.
|
|
5885
5892
|
* Use this to call the ThoughtSpot APIs when using the visual embed sdk.
|
|
5893
|
+
* The interface for this method is the same as Web `Fetch`.
|
|
5894
|
+
*
|
|
5886
5895
|
* @param input
|
|
5887
5896
|
* @param init
|
|
5897
|
+
* @example
|
|
5898
|
+
* ```js
|
|
5899
|
+
* tokenizedFetch("<TS_ORIGIN>/api/rest/2.0/auth/session/user", {
|
|
5900
|
+
* // .. fetch options ..
|
|
5901
|
+
* });
|
|
5902
|
+
*```
|
|
5888
5903
|
* @version SDK: 1.28.0
|
|
5889
5904
|
* @group Global methods
|
|
5890
5905
|
*/
|
|
@@ -12552,6 +12567,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
|
|
|
12552
12567
|
function initMixpanel(sessionInfo) {
|
|
12553
12568
|
var _a;
|
|
12554
12569
|
if (!sessionInfo || !sessionInfo.mixpanelToken) {
|
|
12570
|
+
logger.error('Mixpanel token not found in session info');
|
|
12555
12571
|
return;
|
|
12556
12572
|
}
|
|
12557
12573
|
// On a public cluster the user is anonymous, so don't set the identify to
|
|
@@ -12922,49 +12938,124 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
|
|
|
12922
12938
|
* @param url
|
|
12923
12939
|
* @param options
|
|
12924
12940
|
*/
|
|
12925
|
-
function
|
|
12941
|
+
function tokenizedFailureLoggedFetch(url, options = {}) {
|
|
12926
12942
|
return tokenizedFetch(url, options).then(async (r) => {
|
|
12927
12943
|
var _a;
|
|
12928
12944
|
if (!r.ok && r.type !== 'opaqueredirect' && r.type !== 'opaque') {
|
|
12929
|
-
logger.error(
|
|
12945
|
+
logger.error(`Failed to fetch ${url}`, await ((_a = r.text) === null || _a === void 0 ? void 0 : _a.call(r)));
|
|
12930
12946
|
}
|
|
12931
12947
|
return r;
|
|
12932
12948
|
});
|
|
12933
12949
|
}
|
|
12934
12950
|
/**
|
|
12951
|
+
* Fetches the session info from the ThoughtSpot server.
|
|
12935
12952
|
*
|
|
12936
|
-
* @param
|
|
12953
|
+
* @param thoughtspotHost
|
|
12954
|
+
* @returns {Promise<any>}
|
|
12955
|
+
* @example
|
|
12956
|
+
* ```js
|
|
12957
|
+
* const response = await sessionInfoService();
|
|
12958
|
+
* ```
|
|
12937
12959
|
*/
|
|
12938
|
-
function fetchSessionInfoService(
|
|
12939
|
-
|
|
12940
|
-
|
|
12941
|
-
|
|
12960
|
+
async function fetchSessionInfoService(thoughtspotHost) {
|
|
12961
|
+
const sessionInfoPath = `${thoughtspotHost}${EndPoints.SESSION_INFO}`;
|
|
12962
|
+
const response = await tokenizedFailureLoggedFetch(sessionInfoPath);
|
|
12963
|
+
if (!response.ok) {
|
|
12964
|
+
throw new Error(`Failed to fetch session info: ${response.statusText}`);
|
|
12965
|
+
}
|
|
12966
|
+
const data = await response.json();
|
|
12967
|
+
return data;
|
|
12942
12968
|
}
|
|
12943
12969
|
/**
|
|
12944
12970
|
*
|
|
12945
12971
|
* @param thoughtSpotHost
|
|
12946
12972
|
*/
|
|
12947
12973
|
async function fetchLogoutService(thoughtSpotHost) {
|
|
12948
|
-
return
|
|
12974
|
+
return tokenizedFailureLoggedFetch(`${thoughtSpotHost}${EndPoints.LOGOUT}`, {
|
|
12949
12975
|
credentials: 'include',
|
|
12950
12976
|
method: 'POST',
|
|
12951
12977
|
headers: {
|
|
12952
12978
|
'x-requested-by': 'ThoughtSpot',
|
|
12953
12979
|
},
|
|
12954
12980
|
});
|
|
12981
|
+
}
|
|
12982
|
+
/**
|
|
12983
|
+
* Is active service to check if the user is logged in.
|
|
12984
|
+
*
|
|
12985
|
+
* @param thoughtSpotHost
|
|
12986
|
+
* @version SDK: 1.28.4 | ThoughtSpot: *
|
|
12987
|
+
*/
|
|
12988
|
+
async function isActiveService(thoughtSpotHost) {
|
|
12989
|
+
const isActiveUrl = `${thoughtSpotHost}${EndPoints.IS_ACTIVE}`;
|
|
12990
|
+
try {
|
|
12991
|
+
const res = await tokenizedFetch(isActiveUrl, {
|
|
12992
|
+
credentials: 'include',
|
|
12993
|
+
});
|
|
12994
|
+
return res.ok;
|
|
12995
|
+
}
|
|
12996
|
+
catch (e) {
|
|
12997
|
+
logger.warn(`Is Logged In Service failed : ${e.message}`);
|
|
12998
|
+
}
|
|
12999
|
+
return false;
|
|
12955
13000
|
}
|
|
12956
13001
|
|
|
13002
|
+
let sessionInfo = null;
|
|
13003
|
+
/**
|
|
13004
|
+
* Returns the session info object and caches it for future use.
|
|
13005
|
+
* Once fetched the session info object is cached and returned from the cache on
|
|
13006
|
+
* subsequent calls.
|
|
13007
|
+
*
|
|
13008
|
+
* @example ```js
|
|
13009
|
+
* const sessionInfo = await getSessionInfo();
|
|
13010
|
+
* console.log(sessionInfo);
|
|
13011
|
+
* ```
|
|
13012
|
+
* @version SDK: 1.28.3 | ThoughtSpot: *
|
|
13013
|
+
* @returns {Promise<SessionInfo>} The session info object.
|
|
13014
|
+
*/
|
|
13015
|
+
async function getSessionInfo() {
|
|
13016
|
+
if (!sessionInfo) {
|
|
13017
|
+
const host = getEmbedConfig().thoughtSpotHost;
|
|
13018
|
+
const sessionResponse = await fetchSessionInfoService(host);
|
|
13019
|
+
const processedSessionInfo = getSessionDetails(sessionResponse);
|
|
13020
|
+
sessionInfo = processedSessionInfo;
|
|
13021
|
+
}
|
|
13022
|
+
return sessionInfo;
|
|
13023
|
+
}
|
|
13024
|
+
/**
|
|
13025
|
+
* Processes the session info response and returns the session info object.
|
|
13026
|
+
*
|
|
13027
|
+
* @param sessionInfoResp {any} Response from the session info API.
|
|
13028
|
+
* @returns {SessionInfo} The session info object.
|
|
13029
|
+
* @example ```js
|
|
13030
|
+
* const sessionInfoResp = await fetch(sessionInfoPath);
|
|
13031
|
+
* const sessionInfo = getSessionDetails(sessionInfoResp);
|
|
13032
|
+
* console.log(sessionInfo);
|
|
13033
|
+
* ```
|
|
13034
|
+
* @version SDK: 1.28.3 | ThoughtSpot: *
|
|
13035
|
+
*/
|
|
13036
|
+
const getSessionDetails = (sessionInfoResp) => {
|
|
13037
|
+
const devMixpanelToken = sessionInfoResp.configInfo.mixpanelConfig.devSdkKey;
|
|
13038
|
+
const prodMixpanelToken = sessionInfoResp.configInfo.mixpanelConfig.prodSdkKey;
|
|
13039
|
+
const mixpanelToken = sessionInfoResp.configInfo.mixpanelConfig.production
|
|
13040
|
+
? prodMixpanelToken
|
|
13041
|
+
: devMixpanelToken;
|
|
13042
|
+
return {
|
|
13043
|
+
userGUID: sessionInfoResp.userGUID,
|
|
13044
|
+
mixpanelToken,
|
|
13045
|
+
isPublicUser: sessionInfoResp.configInfo.isPublicUser,
|
|
13046
|
+
releaseVersion: sessionInfoResp.releaseVersion,
|
|
13047
|
+
clusterId: sessionInfoResp.configInfo.selfClusterId,
|
|
13048
|
+
clusterName: sessionInfoResp.configInfo.selfClusterName,
|
|
13049
|
+
...sessionInfoResp,
|
|
13050
|
+
};
|
|
13051
|
+
};
|
|
13052
|
+
|
|
12957
13053
|
// eslint-disable-next-line import/no-mutable-exports
|
|
12958
13054
|
let loggedInStatus = false;
|
|
12959
13055
|
// eslint-disable-next-line import/no-mutable-exports
|
|
12960
13056
|
let samlAuthWindow = null;
|
|
12961
13057
|
// eslint-disable-next-line import/no-mutable-exports
|
|
12962
13058
|
let samlCompletionPromise = null;
|
|
12963
|
-
let sessionInfo = null;
|
|
12964
|
-
let sessionInfoResolver = null;
|
|
12965
|
-
const sessionInfoPromise = new Promise((resolve) => {
|
|
12966
|
-
sessionInfoResolver = resolve;
|
|
12967
|
-
});
|
|
12968
13059
|
let releaseVersion = '';
|
|
12969
13060
|
const SSO_REDIRECTION_MARKER_GUID = '5e16222e-ef02-43e9-9fbd-24226bf3ce5b';
|
|
12970
13061
|
(function (AuthFailureType) {
|
|
@@ -13026,12 +13117,18 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
|
|
|
13026
13117
|
/**
|
|
13027
13118
|
*
|
|
13028
13119
|
*/
|
|
13029
|
-
function notifyAuthSuccess() {
|
|
13120
|
+
async function notifyAuthSuccess() {
|
|
13030
13121
|
if (!authEE) {
|
|
13031
13122
|
logger.error('SDK not initialized');
|
|
13032
13123
|
return;
|
|
13033
13124
|
}
|
|
13034
|
-
|
|
13125
|
+
try {
|
|
13126
|
+
const sessionInfo = await getSessionInfo();
|
|
13127
|
+
authEE.emit(exports.AuthStatus.SUCCESS, sessionInfo);
|
|
13128
|
+
}
|
|
13129
|
+
catch (e) {
|
|
13130
|
+
logger.error('Failed to get session info');
|
|
13131
|
+
}
|
|
13035
13132
|
}
|
|
13036
13133
|
/**
|
|
13037
13134
|
*
|
|
@@ -13054,65 +13151,49 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
|
|
|
13054
13151
|
}
|
|
13055
13152
|
authEE.emit(exports.AuthStatus.LOGOUT);
|
|
13056
13153
|
}
|
|
13057
|
-
const initSession = (sessionDetails) => {
|
|
13058
|
-
const embedConfig = getEmbedConfig();
|
|
13059
|
-
if (sessionInfo == null) {
|
|
13060
|
-
sessionInfo = sessionDetails;
|
|
13061
|
-
if (!embedConfig.disableSDKTracking) {
|
|
13062
|
-
initMixpanel(sessionInfo);
|
|
13063
|
-
}
|
|
13064
|
-
sessionInfoResolver(sessionInfo);
|
|
13065
|
-
}
|
|
13066
|
-
};
|
|
13067
|
-
const getSessionDetails = (sessionInfoResp) => {
|
|
13068
|
-
const devMixpanelToken = sessionInfoResp.configInfo.mixpanelConfig.devSdkKey;
|
|
13069
|
-
const prodMixpanelToken = sessionInfoResp.configInfo.mixpanelConfig.prodSdkKey;
|
|
13070
|
-
const mixpanelToken = sessionInfoResp.configInfo.mixpanelConfig.production
|
|
13071
|
-
? prodMixpanelToken
|
|
13072
|
-
: devMixpanelToken;
|
|
13073
|
-
return {
|
|
13074
|
-
userGUID: sessionInfoResp.userGUID,
|
|
13075
|
-
mixpanelToken,
|
|
13076
|
-
isPublicUser: sessionInfoResp.configInfo.isPublicUser,
|
|
13077
|
-
releaseVersion: sessionInfoResp.releaseVersion,
|
|
13078
|
-
clusterId: sessionInfoResp.configInfo.selfClusterId,
|
|
13079
|
-
clusterName: sessionInfoResp.configInfo.selfClusterName,
|
|
13080
|
-
...sessionInfoResp,
|
|
13081
|
-
};
|
|
13082
|
-
};
|
|
13083
13154
|
/**
|
|
13084
13155
|
* Check if we are logged into the ThoughtSpot cluster
|
|
13085
13156
|
* @param thoughtSpotHost The ThoughtSpot cluster hostname or IP
|
|
13086
13157
|
*/
|
|
13087
13158
|
async function isLoggedIn(thoughtSpotHost) {
|
|
13088
|
-
const authVerificationUrl = `${thoughtSpotHost}${EndPoints.AUTH_VERIFICATION}`;
|
|
13089
|
-
let response = null;
|
|
13090
13159
|
try {
|
|
13091
|
-
response = await
|
|
13092
|
-
|
|
13093
|
-
const sessionDetails = getSessionDetails(sessionInfoResp);
|
|
13094
|
-
// Store user session details from session info
|
|
13095
|
-
initSession(sessionDetails);
|
|
13096
|
-
releaseVersion = sessionInfoResp.releaseVersion;
|
|
13160
|
+
const response = await isActiveService(thoughtSpotHost);
|
|
13161
|
+
return response;
|
|
13097
13162
|
}
|
|
13098
13163
|
catch (e) {
|
|
13099
13164
|
return false;
|
|
13100
13165
|
}
|
|
13101
|
-
return response.status === 200;
|
|
13102
13166
|
}
|
|
13103
13167
|
/**
|
|
13104
|
-
*
|
|
13168
|
+
* Services to be called after the login is successful,
|
|
13169
|
+
* This should be called after the cookie is set for cookie auth or
|
|
13170
|
+
* after the token is set for cookieless.
|
|
13171
|
+
*
|
|
13172
|
+
* @return {Promise<void>}
|
|
13173
|
+
* @example
|
|
13174
|
+
* ```js
|
|
13175
|
+
* await postLoginService();
|
|
13176
|
+
* ```
|
|
13177
|
+
* @version SDK: 1.28.3 | ThoughtSpot: *
|
|
13105
13178
|
*/
|
|
13106
|
-
function
|
|
13107
|
-
|
|
13179
|
+
async function postLoginService() {
|
|
13180
|
+
try {
|
|
13181
|
+
const sessionInfo = await getSessionInfo();
|
|
13182
|
+
releaseVersion = sessionInfo.releaseVersion;
|
|
13183
|
+
const embedConfig = getEmbedConfig();
|
|
13184
|
+
if (!embedConfig.disableSDKTracking) {
|
|
13185
|
+
initMixpanel(sessionInfo);
|
|
13186
|
+
}
|
|
13187
|
+
}
|
|
13188
|
+
catch (e) {
|
|
13189
|
+
logger.error('Post login services failed.', e.message);
|
|
13190
|
+
}
|
|
13108
13191
|
}
|
|
13109
13192
|
/**
|
|
13110
|
-
* Return
|
|
13111
|
-
* authentication is successful. And info is available.
|
|
13112
|
-
* @group Global methods
|
|
13193
|
+
* Return releaseVersion if available
|
|
13113
13194
|
*/
|
|
13114
|
-
function
|
|
13115
|
-
return
|
|
13195
|
+
function getReleaseVersion() {
|
|
13196
|
+
return releaseVersion;
|
|
13116
13197
|
}
|
|
13117
13198
|
/**
|
|
13118
13199
|
* Check if we are stuck at the SSO redirect URL
|
|
@@ -13142,7 +13223,14 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
|
|
|
13142
13223
|
}
|
|
13143
13224
|
loggedInStatus = await isLoggedIn(thoughtSpotHost);
|
|
13144
13225
|
if (!loggedInStatus) {
|
|
13145
|
-
|
|
13226
|
+
let authToken;
|
|
13227
|
+
try {
|
|
13228
|
+
authToken = await getAuthenticationToken(embedConfig);
|
|
13229
|
+
}
|
|
13230
|
+
catch (e) {
|
|
13231
|
+
loggedInStatus = false;
|
|
13232
|
+
throw e;
|
|
13233
|
+
}
|
|
13146
13234
|
let resp;
|
|
13147
13235
|
try {
|
|
13148
13236
|
resp = await fetchAuthPostService(thoughtSpotHost, username, authToken);
|
|
@@ -13227,15 +13315,14 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
|
|
|
13227
13315
|
authElem.textContent = triggerText;
|
|
13228
13316
|
authElem.addEventListener('click', openPopup, { once: true });
|
|
13229
13317
|
}
|
|
13230
|
-
samlCompletionPromise = samlCompletionPromise
|
|
13231
|
-
|
|
13232
|
-
|
|
13233
|
-
|
|
13234
|
-
|
|
13235
|
-
|
|
13236
|
-
}
|
|
13237
|
-
});
|
|
13318
|
+
samlCompletionPromise = samlCompletionPromise || new Promise((resolve, reject) => {
|
|
13319
|
+
window.addEventListener('message', (e) => {
|
|
13320
|
+
if (e.data.type === exports.EmbedEvent.SAMLComplete) {
|
|
13321
|
+
e.source.close();
|
|
13322
|
+
resolve();
|
|
13323
|
+
}
|
|
13238
13324
|
});
|
|
13325
|
+
});
|
|
13239
13326
|
authEE === null || authEE === void 0 ? void 0 : authEE.once(exports.AuthEvent.TRIGGER_SSO_POPUP, openPopup);
|
|
13240
13327
|
return samlCompletionPromise;
|
|
13241
13328
|
}
|
|
@@ -13297,7 +13384,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
|
|
|
13297
13384
|
const { thoughtSpotHost } = embedConfig;
|
|
13298
13385
|
await fetchLogoutService(thoughtSpotHost);
|
|
13299
13386
|
resetCachedAuthToken();
|
|
13300
|
-
const thoughtspotIframes = document.querySelectorAll(
|
|
13387
|
+
const thoughtspotIframes = document.querySelectorAll("[data-ts-iframe='true']");
|
|
13301
13388
|
if (thoughtspotIframes === null || thoughtspotIframes === void 0 ? void 0 : thoughtspotIframes.length) {
|
|
13302
13389
|
thoughtspotIframes.forEach((el) => {
|
|
13303
13390
|
el.parentElement.innerHTML = embedConfig.loginFailedMessage;
|
|
@@ -13351,6 +13438,8 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
|
|
|
13351
13438
|
notifyAuthFailure(exports.AuthFailureType.SDK);
|
|
13352
13439
|
}
|
|
13353
13440
|
else {
|
|
13441
|
+
// Post login service is called after successful login.
|
|
13442
|
+
postLoginService();
|
|
13354
13443
|
notifyAuthSDKSuccess();
|
|
13355
13444
|
}
|
|
13356
13445
|
}, () => {
|
|
@@ -13642,13 +13731,13 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
|
|
|
13642
13731
|
};
|
|
13643
13732
|
}
|
|
13644
13733
|
/**
|
|
13734
|
+
* Responds to AuthInit sent from host signifying successful authentication in host.
|
|
13645
13735
|
*
|
|
13646
13736
|
* @param e
|
|
13737
|
+
* @returns {any}
|
|
13647
13738
|
*/
|
|
13648
13739
|
function processAuthInit(e) {
|
|
13649
13740
|
var _a, _b;
|
|
13650
|
-
// Store user session details sent by app.
|
|
13651
|
-
initSession(e.data);
|
|
13652
13741
|
notifyAuthSuccess();
|
|
13653
13742
|
// Expose only allowed details (eg: userGUID) back to SDK users.
|
|
13654
13743
|
return {
|
|
@@ -13784,7 +13873,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
|
|
|
13784
13873
|
});
|
|
13785
13874
|
}
|
|
13786
13875
|
|
|
13787
|
-
var name="@thoughtspot/visual-embed-sdk";var version="1.
|
|
13876
|
+
var name="@thoughtspot/visual-embed-sdk";var version="1.32.0-alpha.1";var description="ThoughtSpot Embed SDK";var module="lib/src/index.js";var main="dist/tsembed.js";var types="lib/src/index.d.ts";var files=["dist/**","lib/**","src/**","cjs/**"];var exports$1={".":{"import":"./lib/src/index.js",require:"./cjs/src/index.js",types:"./lib/src/index.d.ts"},"./react":{"import":"./lib/src/react/all-types-export.js",require:"./cjs/src/react/all-types-export.js",types:"./lib/src/react/all-types-export.d.ts"},"./lib/src/react":{"import":"./lib/src/react/all-types-export.js",require:"./cjs/src/react/all-types-export.js",types:"./lib/src/react/all-types-export.d.ts"}};var typesVersions={"*":{react:["./lib/src/react/all-types-export.d.ts"]}};var scripts={lint:"eslint 'src/**'","lint:fix":"eslint 'src/**/*.*' --fix",tsc:"tsc -p . --incremental false; tsc -p . --incremental false --module commonjs --outDir cjs",start:"gatsby develop","build:gatsby":"npm run clean:gatsby && gatsby build --prefix-paths","build:gatsby:noprefix":"npm run clean:gatsby && gatsby build","serve:gatsby":"gatsby serve","clean:gatsby":"gatsby clean","build-and-publish":"npm run build:gatsby && npm run publish","bundle-dts-file":"dts-bundle --name @thoughtspot/visual-embed-sdk --out visual-embed-sdk.d.ts --main lib/src/index.d.ts","bundle-dts":"dts-bundle --name ../../dist/visual-embed-sdk --main lib/src/index.d.ts --outputAsModuleFolder=true","bundle-dts-react":"dts-bundle --name ../../../dist/visual-embed-sdk-react --main lib/src/react/index.d.ts --outputAsModuleFolder=true","bundle-dts-react-full":"dts-bundle --name ../../../dist/visual-embed-sdk-react-full --main lib/src/react/all-types-export.d.ts --outputAsModuleFolder=true",build:"rollup -c",watch:"rollup -cw","docs-cmd":"node scripts/gatsby-commands.js",docgen:"typedoc --tsconfig tsconfig.json --theme typedoc-theme","test-sdk":"jest -c jest.config.sdk.js --runInBand","test-docs":"jest -c jest.config.docs.js",test:"npm run test-sdk && npm run test-docs",posttest:"cat ./coverage/sdk/lcov.info | coveralls","is-publish-allowed":"node scripts/is-publish-allowed.js",prepublishOnly:"npm run is-publish-allowed && npm run test && npm run tsc && npm run bundle-dts-file && npm run bundle-dts && npm run bundle-dts-react && npm run bundle-dts-react-full && npm run build","check-size":"npm run build && size-limit","publish-dev":"npm publish --tag dev","publish-prod":"npm publish --tag latest"};var peerDependencies={react:"> 16.8.0","react-dom":"> 16.8.0"};var dependencies={algoliasearch:"^4.10.5",classnames:"^2.3.1",dompurify:"^2.3.4","eslint-plugin-comment-length":"^0.9.2","eslint-plugin-jsdoc":"^46.9.0",eventemitter3:"^4.0.7","gatsby-plugin-vercel":"^1.0.3","html-react-parser":"^1.4.12",lodash:"^4.17.21","mixpanel-browser":"^2.45.0","ts-deepmerge":"^6.0.2",tslib:"^2.5.3","use-deep-compare-effect":"^1.8.1"};var devDependencies={"@mdx-js/mdx":"^1.6.22","@mdx-js/react":"^1.6.22","@react-icons/all-files":"^4.1.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^11.2.1","@rollup/plugin-replace":"^5.0.2","@size-limit/preset-big-lib":"^8.2.6","@testing-library/dom":"^7.31.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^11.2.7","@testing-library/user-event":"^13.1.8","@types/jest":"^22.2.3","@types/mixpanel-browser":"^2.35.6","@types/react-test-renderer":"^17.0.1","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0",asciidoctor:"^2.2.1","babel-jest":"^26.6.3","babel-preset-gatsby":"^1.10.0","command-line-args":"^5.1.1",coveralls:"^3.1.0","current-git-branch":"^1.1.0","dts-bundle":"^0.7.3",eslint:"^7.12.1","eslint-config-airbnb-base":"^14.2.0","eslint-config-prettier":"^6.15.0","eslint-import-resolver-typescript":"^2.3.0","eslint-plugin-import":"^2.22.1","eslint-plugin-prettier":"^3.1.4","eslint-plugin-react-hooks":"^4.2.0","fs-extra":"^10.0.0",gatsby:"3.13.1","gatsby-plugin-algolia":"^0.22.2","gatsby-plugin-catch-links":"^3.1.0","gatsby-plugin-env-variables":"^2.1.0","gatsby-plugin-intl":"^0.3.3","gatsby-plugin-manifest":"^3.2.0","gatsby-plugin-output":"^0.1.3","gatsby-plugin-sass":"6.7.0","gatsby-plugin-sitemap":"^4.10.0","gatsby-source-filesystem":"3.1.0","gatsby-transformer-asciidoc":"2.1.0","gatsby-transformer-rehype":"2.0.0","gh-pages":"^3.1.0","highlight.js":"^10.6.0","html-to-text":"^8.0.0","identity-obj-proxy":"^3.0.0","istanbul-merge":"^1.1.1",jest:"^26.6.3","jest-fetch-mock":"^3.0.3",jsdom:"^17.0.0","node-sass":"^8.0.0",prettier:"2.1.2",react:"^16.14.0","react-dom":"^16.14.0","react-resizable":"^1.11.0","react-resize-detector":"^6.6.0","react-test-renderer":"^17.0.2","react-use-flexsearch":"^0.1.1",rollup:"2.30.0","rollup-plugin-typescript2":"0.27.3","ts-jest":"^26.5.5","ts-loader":"8.0.4",typedoc:"0.21.6","typedoc-plugin-toc-group":"thoughtspot/typedoc-plugin-toc-group",typescript:"^4.9.4","url-search-params-polyfill":"^8.1.0",util:"^0.12.4"};var author="ThoughtSpot";var email="support@thoughtspot.com";var license="ThoughtSpot Development Tools End User License Agreement";var directories={lib:"lib"};var repository={type:"git",url:"git+https://github.com/thoughtspot/visual-embed-sdk.git"};var publishConfig={registry:"https://registry.npmjs.org"};var keywords=["thoughtspot","everywhere","embedded","embed","sdk","analytics"];var bugs={url:"https://github.com/thoughtspot/visual-embed-sdk/issues"};var homepage="https://github.com/thoughtspot/visual-embed-sdk#readme";var globals={window:{}};var pkgInfo = {name:name,version:version,description:description,module:module,main:main,types:types,files:files,exports:exports$1,typesVersions:typesVersions,"size-limit":[{path:"dist/tsembed.js",limit:"46 kB"}],scripts:scripts,peerDependencies:peerDependencies,dependencies:dependencies,devDependencies:devDependencies,author:author,email:email,license:license,directories:directories,repository:repository,publishConfig:publishConfig,keywords:keywords,bugs:bugs,homepage:homepage,globals:globals};
|
|
13788
13877
|
|
|
13789
13878
|
/**
|
|
13790
13879
|
* Copyright (c) 2022
|
|
@@ -13882,6 +13971,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
|
|
|
13882
13971
|
});
|
|
13883
13972
|
}
|
|
13884
13973
|
catch (e) {
|
|
13974
|
+
logger.error(`Received invalid token. Error : ${e === null || e === void 0 ? void 0 : e.message}`);
|
|
13885
13975
|
processAuthFailure(e, this.isPreRendered ? this.preRenderWrapper : this.el);
|
|
13886
13976
|
}
|
|
13887
13977
|
}
|