@thoughtspot/visual-embed-sdk 1.10.0 → 1.10.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/dist/src/auth.d.ts +18 -5
- package/dist/src/embed/base.d.ts +21 -5
- package/dist/src/embed/pinboard.d.ts +91 -0
- package/dist/src/index.d.ts +3 -2
- package/dist/src/types.d.ts +15 -0
- package/dist/src/utils/authService.d.ts +1 -0
- package/dist/src/utils/plugin.d.ts +0 -0
- package/dist/src/utils/processData.d.ts +1 -1
- package/dist/src/v1/api.d.ts +19 -0
- package/dist/tsembed.es.js +521 -32
- package/dist/tsembed.js +519 -31
- package/lib/package.json +2 -1
- package/lib/src/auth.d.ts +18 -5
- package/lib/src/auth.js +48 -9
- package/lib/src/auth.js.map +1 -1
- package/lib/src/auth.spec.js +69 -11
- package/lib/src/auth.spec.js.map +1 -1
- package/lib/src/embed/base.d.ts +21 -5
- package/lib/src/embed/base.js +64 -10
- package/lib/src/embed/base.js.map +1 -1
- package/lib/src/embed/base.spec.js +49 -3
- package/lib/src/embed/base.spec.js.map +1 -1
- package/lib/src/embed/embed.spec.js +1 -1
- package/lib/src/embed/embed.spec.js.map +1 -1
- package/lib/src/embed/pinboard.d.ts +91 -0
- package/lib/src/embed/pinboard.js +110 -0
- package/lib/src/embed/pinboard.js.map +1 -0
- package/lib/src/embed/ts-embed.js +9 -10
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +16 -6
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/index.d.ts +3 -2
- package/lib/src/index.js +3 -2
- package/lib/src/index.js.map +1 -1
- package/lib/src/test/test-utils.js +1 -1
- package/lib/src/test/test-utils.js.map +1 -1
- package/lib/src/types.d.ts +15 -0
- package/lib/src/types.js +10 -0
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/authService.d.ts +1 -0
- package/lib/src/utils/authService.js +21 -3
- package/lib/src/utils/authService.js.map +1 -1
- package/lib/src/utils/authService.spec.js +21 -5
- package/lib/src/utils/authService.spec.js.map +1 -1
- package/lib/src/utils/plugin.d.ts +0 -0
- package/lib/src/utils/plugin.js +1 -0
- package/lib/src/utils/plugin.js.map +1 -0
- package/lib/src/utils/processData.d.ts +1 -1
- package/lib/src/utils/processData.js +37 -3
- package/lib/src/utils/processData.js.map +1 -1
- package/lib/src/utils/processData.spec.js +106 -4
- package/lib/src/utils/processData.spec.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +100 -7
- package/package.json +2 -1
- package/src/auth.spec.ts +90 -11
- package/src/auth.ts +63 -13
- package/src/embed/base.spec.ts +56 -4
- package/src/embed/base.ts +83 -16
- package/src/embed/embed.spec.ts +1 -1
- package/src/embed/ts-embed.spec.ts +19 -9
- package/src/embed/ts-embed.ts +15 -12
- package/src/index.ts +5 -1
- package/src/test/test-utils.ts +1 -1
- package/src/types.ts +16 -0
- package/src/utils/authService.spec.ts +31 -5
- package/src/utils/authService.ts +27 -3
- package/src/utils/processData.spec.ts +139 -4
- package/src/utils/processData.ts +54 -4
package/lib/src/types.d.ts
CHANGED
|
@@ -119,6 +119,11 @@ export interface EmbedConfig {
|
|
|
119
119
|
* @default false
|
|
120
120
|
*/
|
|
121
121
|
disableLoginRedirect?: boolean;
|
|
122
|
+
/**
|
|
123
|
+
* This message is displayed on the embed view when the login fails.
|
|
124
|
+
* @version 1.10.1 | ThoughtSpot: *
|
|
125
|
+
*/
|
|
126
|
+
loginFailedMessage?: string;
|
|
122
127
|
/**
|
|
123
128
|
* Calls the prefetch method internally when set to true
|
|
124
129
|
* @default false
|
|
@@ -332,6 +337,16 @@ export declare enum EmbedEvent {
|
|
|
332
337
|
* The ThoughtSpot auth session has expired.
|
|
333
338
|
*/
|
|
334
339
|
AuthExpire = "ThoughtspotAuthExpired",
|
|
340
|
+
/**
|
|
341
|
+
* ThoughtSpot failed to validate the auth session.
|
|
342
|
+
* @hidden
|
|
343
|
+
*/
|
|
344
|
+
AuthFailure = "ThoughtspotAuthFailure",
|
|
345
|
+
/**
|
|
346
|
+
* ThoughtSpot failed to validate the auth session.
|
|
347
|
+
* @hidden
|
|
348
|
+
*/
|
|
349
|
+
AuthLogout = "ThoughtspotAuthLogout",
|
|
335
350
|
/**
|
|
336
351
|
* The height of the embedded Liveboard or visualization has been computed.
|
|
337
352
|
* @return data - The height of the embedded Liveboard or visualization
|
package/lib/src/types.js
CHANGED
|
@@ -185,6 +185,16 @@ export var EmbedEvent;
|
|
|
185
185
|
* The ThoughtSpot auth session has expired.
|
|
186
186
|
*/
|
|
187
187
|
EmbedEvent["AuthExpire"] = "ThoughtspotAuthExpired";
|
|
188
|
+
/**
|
|
189
|
+
* ThoughtSpot failed to validate the auth session.
|
|
190
|
+
* @hidden
|
|
191
|
+
*/
|
|
192
|
+
EmbedEvent["AuthFailure"] = "ThoughtspotAuthFailure";
|
|
193
|
+
/**
|
|
194
|
+
* ThoughtSpot failed to validate the auth session.
|
|
195
|
+
* @hidden
|
|
196
|
+
*/
|
|
197
|
+
EmbedEvent["AuthLogout"] = "ThoughtspotAuthLogout";
|
|
188
198
|
/**
|
|
189
199
|
* The height of the embedded Liveboard or visualization has been computed.
|
|
190
200
|
* @return data - The height of the embedded Liveboard or visualization
|
package/lib/src/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;GAGG;AACH,qCAAqC;AACrC,MAAM,CAAN,IAAY,QAwBX;AAxBD,WAAY,QAAQ;IAChB;;OAEG;IACH,yBAAa,CAAA;IACb;;OAEG;IACH,4BAAgB,CAAA;IAChB;;OAEG;IACH,6BAAiB,CAAA;IACjB;;OAEG;IACH,qCAAyB,CAAA;IACzB;;;;;OAKG;IACH,2BAAe,CAAA;AACnB,CAAC,EAxBW,QAAQ,KAAR,QAAQ,QAwBnB;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,3 +2,4 @@ export declare function fetchSessionInfoService(authVerificationUrl: string): Pr
|
|
|
2
2
|
export declare function fetchAuthTokenService(authEndpoint: string): Promise<any>;
|
|
3
3
|
export declare function fetchAuthService(thoughtSpotHost: string, username: string, authToken: string): Promise<any>;
|
|
4
4
|
export declare function fetchBasicAuthService(thoughtSpotHost: string, username: string, password: string): Promise<any>;
|
|
5
|
+
export declare function fetchLogoutService(thoughtSpotHost: string): Promise<any>;
|
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
// eslint-disable-next-line import/no-cycle
|
|
2
2
|
import { EndPoints } from '../auth';
|
|
3
|
+
function failureLoggedFetch(url, options = {}) {
|
|
4
|
+
return fetch(url, options).then(async (r) => {
|
|
5
|
+
var _a;
|
|
6
|
+
if (!r.ok && r.type !== 'opaqueredirect' && r.type !== 'opaque') {
|
|
7
|
+
console.error('Failure', await ((_a = r.text) === null || _a === void 0 ? void 0 : _a.call(r)));
|
|
8
|
+
}
|
|
9
|
+
return r;
|
|
10
|
+
});
|
|
11
|
+
}
|
|
3
12
|
export function fetchSessionInfoService(authVerificationUrl) {
|
|
4
|
-
return
|
|
13
|
+
return failureLoggedFetch(authVerificationUrl, {
|
|
5
14
|
credentials: 'include',
|
|
6
15
|
});
|
|
7
16
|
}
|
|
@@ -9,12 +18,14 @@ export async function fetchAuthTokenService(authEndpoint) {
|
|
|
9
18
|
return fetch(authEndpoint);
|
|
10
19
|
}
|
|
11
20
|
export async function fetchAuthService(thoughtSpotHost, username, authToken) {
|
|
12
|
-
return
|
|
21
|
+
return failureLoggedFetch(`${thoughtSpotHost}${EndPoints.TOKEN_LOGIN}?username=${username}&auth_token=${authToken}`, {
|
|
13
22
|
credentials: 'include',
|
|
23
|
+
// We do not want to follow the redirect, as it starts giving a CORS error
|
|
24
|
+
redirect: 'manual',
|
|
14
25
|
});
|
|
15
26
|
}
|
|
16
27
|
export async function fetchBasicAuthService(thoughtSpotHost, username, password) {
|
|
17
|
-
return
|
|
28
|
+
return failureLoggedFetch(`${thoughtSpotHost}${EndPoints.BASIC_LOGIN}`, {
|
|
18
29
|
method: 'POST',
|
|
19
30
|
headers: {
|
|
20
31
|
'content-type': 'application/x-www-form-urlencoded',
|
|
@@ -24,4 +35,11 @@ export async function fetchBasicAuthService(thoughtSpotHost, username, password)
|
|
|
24
35
|
credentials: 'include',
|
|
25
36
|
});
|
|
26
37
|
}
|
|
38
|
+
export async function fetchLogoutService(thoughtSpotHost) {
|
|
39
|
+
return failureLoggedFetch(`${thoughtSpotHost}${EndPoints.LOGOUT}`, {
|
|
40
|
+
credentials: 'include',
|
|
41
|
+
mode: 'no-cors',
|
|
42
|
+
method: 'POST',
|
|
43
|
+
});
|
|
44
|
+
}
|
|
27
45
|
//# sourceMappingURL=authService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authService.js","sourceRoot":"","sources":["../../../src/utils/authService.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,MAAM,UAAU,uBAAuB,CACnC,mBAA2B;IAE3B,OAAO,
|
|
1
|
+
{"version":3,"file":"authService.js","sourceRoot":"","sources":["../../../src/utils/authService.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,SAAS,kBAAkB,CACvB,GAAW,EACX,UAAuB,EAAE;IAEzB,OAAO,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;;QACxC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC7D,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAA,MAAA,CAAC,CAAC,IAAI,+CAAN,CAAC,CAAS,CAAA,CAAC,CAAC;SAC9C;QACD,OAAO,CAAC,CAAC;IACb,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,uBAAuB,CACnC,mBAA2B;IAE3B,OAAO,kBAAkB,CAAC,mBAAmB,EAAE;QAC3C,WAAW,EAAE,SAAS;KACzB,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACvC,YAAoB;IAEpB,OAAO,KAAK,CAAC,YAAY,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,eAAuB,EACvB,QAAgB,EAChB,SAAiB;IAEjB,OAAO,kBAAkB,CACrB,GAAG,eAAe,GAAG,SAAS,CAAC,WAAW,aAAa,QAAQ,eAAe,SAAS,EAAE,EACzF;QACI,WAAW,EAAE,SAAS;QACtB,0EAA0E;QAC1E,QAAQ,EAAE,QAAQ;KACrB,CACJ,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACvC,eAAuB,EACvB,QAAgB,EAChB,QAAgB;IAEhB,OAAO,kBAAkB,CAAC,GAAG,eAAe,GAAG,SAAS,CAAC,WAAW,EAAE,EAAE;QACpE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACL,cAAc,EAAE,mCAAmC;YACnD,gBAAgB,EAAE,aAAa;SAClC;QACD,IAAI,EAAE,YAAY,kBAAkB,CAChC,QAAQ,CACX,aAAa,kBAAkB,CAAC,QAAQ,CAAC,EAAE;QAC5C,WAAW,EAAE,SAAS;KACzB,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACpC,eAAuB;IAEvB,OAAO,kBAAkB,CAAC,GAAG,eAAe,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE;QAC/D,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,MAAM;KACjB,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { fetchSessionInfoService, fetchAuthTokenService, fetchAuthService, fetchBasicAuthService, } from './authService';
|
|
2
|
+
import { EndPoints } from '../auth';
|
|
2
3
|
const thoughtSpotHost = 'http://10.79.135.124:3000';
|
|
3
4
|
const authVerificationUrl = 'http://localhost:3000';
|
|
4
5
|
const authEndpoint = '';
|
|
@@ -13,6 +14,7 @@ describe('Unit test for authService', () => {
|
|
|
13
14
|
global.fetch = jest.fn(() => Promise.resolve({
|
|
14
15
|
json: () => ({ success: true }),
|
|
15
16
|
status: 200,
|
|
17
|
+
ok: true,
|
|
16
18
|
}));
|
|
17
19
|
const response = await fetchSessionInfoService(authVerificationUrl);
|
|
18
20
|
expect(response.status).toBe(200);
|
|
@@ -21,20 +23,34 @@ describe('Unit test for authService', () => {
|
|
|
21
23
|
test('fetchAuthTokenService', async () => {
|
|
22
24
|
global.fetch = jest.fn(() => Promise.resolve({
|
|
23
25
|
text: () => ({ success: true }),
|
|
26
|
+
ok: true,
|
|
24
27
|
}));
|
|
25
28
|
const response = await fetchAuthTokenService(authEndpoint);
|
|
26
29
|
expect(response.text()).toStrictEqual({ success: true });
|
|
27
30
|
expect(fetch).toBeCalled();
|
|
28
31
|
});
|
|
29
32
|
test('fetchAuthService', async () => {
|
|
30
|
-
global.fetch = jest.fn(() => Promise.resolve({ success: true }));
|
|
31
|
-
await fetchAuthService(
|
|
32
|
-
expect(fetch).
|
|
33
|
+
global.fetch = jest.fn(() => Promise.resolve({ success: true, ok: true }));
|
|
34
|
+
await fetchAuthService(thoughtSpotHost, username, authToken);
|
|
35
|
+
expect(fetch).toBeCalledWith(`${thoughtSpotHost}${EndPoints.TOKEN_LOGIN}?username=${username}&auth_token=${authToken}`, {
|
|
36
|
+
credentials: 'include',
|
|
37
|
+
redirect: 'manual',
|
|
38
|
+
});
|
|
33
39
|
});
|
|
34
|
-
test('fetchBasicAuthService', async () => {
|
|
35
|
-
global.fetch = jest.fn(() => Promise.resolve({ success: true }));
|
|
40
|
+
test('fetchBasicAuthService called with manual redirect', async () => {
|
|
41
|
+
global.fetch = jest.fn(() => Promise.resolve({ success: true, ok: true }));
|
|
36
42
|
await fetchBasicAuthService(thoughtSpotHost, username, password);
|
|
37
43
|
expect(fetch).toBeCalled();
|
|
38
44
|
});
|
|
45
|
+
test('log error on API failures', async () => {
|
|
46
|
+
jest.spyOn(global.console, 'error').mockImplementation(() => undefined);
|
|
47
|
+
global.fetch = jest.fn(() => Promise.resolve({
|
|
48
|
+
text: () => Promise.resolve('error'),
|
|
49
|
+
status: 500,
|
|
50
|
+
ok: false,
|
|
51
|
+
}));
|
|
52
|
+
await fetchSessionInfoService(authVerificationUrl);
|
|
53
|
+
expect(global.console.error).toHaveBeenCalledWith('Failure', 'error');
|
|
54
|
+
});
|
|
39
55
|
});
|
|
40
56
|
//# sourceMappingURL=authService.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authService.spec.js","sourceRoot":"","sources":["../../../src/utils/authService.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,GACxB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"authService.spec.js","sourceRoot":"","sources":["../../../src/utils/authService.spec.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/utils/plugin.ts"],"names":[],"mappings":""}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { EmbedEvent } from '../types';
|
|
2
2
|
export declare function processCustomAction(e: any, thoughtSpotHost: string): any;
|
|
3
|
-
export declare function
|
|
3
|
+
export declare function processEventData(type: EmbedEvent, e: any, thoughtSpotHost: string, containerEl: Element): any;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { getEmbedConfig, handleAuth } from '../embed/base';
|
|
2
|
-
import { initSession } from '../auth';
|
|
1
|
+
import { disableAutoLogin, getEmbedConfig, handleAuth, notifyAuthFailure, notifyAuthSuccess, notifyLogout, } from '../embed/base';
|
|
2
|
+
import { AuthFailureType, initSession } from '../auth';
|
|
3
3
|
import { EmbedEvent, OperationType } from '../types';
|
|
4
4
|
import { getAnswerServiceInstance } from './answerService';
|
|
5
5
|
export function processCustomAction(e, thoughtSpotHost) {
|
|
@@ -21,6 +21,7 @@ function processAuthInit(e) {
|
|
|
21
21
|
var _a, _b;
|
|
22
22
|
// Store user session details sent by app.
|
|
23
23
|
initSession(e.data);
|
|
24
|
+
notifyAuthSuccess();
|
|
24
25
|
// Expose only allowed details (eg: userGUID) back to SDK users.
|
|
25
26
|
return {
|
|
26
27
|
...e,
|
|
@@ -34,9 +35,36 @@ function processAuthExpire(e) {
|
|
|
34
35
|
if (autoLogin) {
|
|
35
36
|
handleAuth();
|
|
36
37
|
}
|
|
38
|
+
notifyAuthFailure(AuthFailureType.EXPIRY);
|
|
37
39
|
return e;
|
|
38
40
|
}
|
|
39
|
-
|
|
41
|
+
function processNoCookieAccess(e, containerEl) {
|
|
42
|
+
const { loginFailedMessage, suppressNoCookieAccessAlert, } = getEmbedConfig();
|
|
43
|
+
if (!suppressNoCookieAccessAlert) {
|
|
44
|
+
// eslint-disable-next-line no-alert
|
|
45
|
+
alert('Third party cookie access is blocked on this browser, please allow third party cookies for this to work properly. \nYou can use `suppressNoCookieAccessAlert` to suppress this message.');
|
|
46
|
+
}
|
|
47
|
+
// eslint-disable-next-line no-param-reassign
|
|
48
|
+
containerEl.innerHTML = loginFailedMessage;
|
|
49
|
+
notifyAuthFailure(AuthFailureType.NO_COOKIE_ACCESS);
|
|
50
|
+
return e;
|
|
51
|
+
}
|
|
52
|
+
function processAuthFailure(e, containerEl) {
|
|
53
|
+
const { loginFailedMessage } = getEmbedConfig();
|
|
54
|
+
// eslint-disable-next-line no-param-reassign
|
|
55
|
+
containerEl.innerHTML = loginFailedMessage;
|
|
56
|
+
notifyAuthFailure(AuthFailureType.OTHER);
|
|
57
|
+
return e;
|
|
58
|
+
}
|
|
59
|
+
function processAuthLogout(e, containerEl) {
|
|
60
|
+
const { loginFailedMessage } = getEmbedConfig();
|
|
61
|
+
// eslint-disable-next-line no-param-reassign
|
|
62
|
+
containerEl.innerHTML = loginFailedMessage;
|
|
63
|
+
disableAutoLogin();
|
|
64
|
+
notifyLogout();
|
|
65
|
+
return e;
|
|
66
|
+
}
|
|
67
|
+
export function processEventData(type, e, thoughtSpotHost, containerEl) {
|
|
40
68
|
switch (type) {
|
|
41
69
|
case EmbedEvent.CustomAction:
|
|
42
70
|
return processCustomAction(e, thoughtSpotHost);
|
|
@@ -44,6 +72,12 @@ export function getProcessData(type, e, thoughtSpotHost) {
|
|
|
44
72
|
return processAuthInit(e);
|
|
45
73
|
case EmbedEvent.AuthExpire:
|
|
46
74
|
return processAuthExpire(e);
|
|
75
|
+
case EmbedEvent.NoCookieAccess:
|
|
76
|
+
return processNoCookieAccess(e, containerEl);
|
|
77
|
+
case EmbedEvent.AuthFailure:
|
|
78
|
+
return processAuthFailure(e, containerEl);
|
|
79
|
+
case EmbedEvent.AuthLogout:
|
|
80
|
+
return processAuthLogout(e, containerEl);
|
|
47
81
|
default:
|
|
48
82
|
}
|
|
49
83
|
return e;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processData.js","sourceRoot":"","sources":["../../../src/utils/processData.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"processData.js","sourceRoot":"","sources":["../../../src/utils/processData.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,MAAM,UAAU,mBAAmB,CAAC,CAAM,EAAE,eAAuB;;IAC/D,IACI;QACI,aAAa,CAAC,gBAAgB;QAC9B,aAAa,CAAC,wBAAwB;KACzC,CAAC,QAAQ,CAAC,MAAA,CAAC,CAAC,IAAI,0CAAE,SAAS,CAAC,EAC/B;QACE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;QAC7C,MAAM,aAAa,GAAG,wBAAwB,CAC1C,OAAO,EACP,KAAK,EACL,SAAS,EACT,eAAe,CAClB,CAAC;QACF,OAAO;YACH,GAAG,CAAC;YACJ,aAAa;SAChB,CAAC;KACL;IACD,OAAO,CAAC,CAAC;AACb,CAAC;AAED,SAAS,eAAe,CAAC,CAAM;;IAC3B,0CAA0C;IAC1C,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACpB,iBAAiB,EAAE,CAAC;IAEpB,gEAAgE;IAChE,OAAO;QACH,GAAG,CAAC;QACJ,IAAI,EAAE;YACF,QAAQ,EAAE,CAAA,MAAA,CAAC,CAAC,IAAI,0CAAE,QAAQ,MAAI,MAAA,CAAC,CAAC,OAAO,0CAAE,QAAQ,CAAA;SACpD;KACJ,CAAC;AACN,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAM;IAC7B,MAAM,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC,uBAAuB;IACvE,IAAI,SAAS,EAAE;QACX,UAAU,EAAE,CAAC;KAChB;IACD,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,CAAC,CAAC;AACb,CAAC;AAED,SAAS,qBAAqB,CAAC,CAAM,EAAE,WAAoB;IACvD,MAAM,EACF,kBAAkB,EAClB,2BAA2B,GAC9B,GAAG,cAAc,EAAE,CAAC;IACrB,IAAI,CAAC,2BAA2B,EAAE;QAC9B,oCAAoC;QACpC,KAAK,CACD,yLAAyL,CAC5L,CAAC;KACL;IACD,6CAA6C;IAC7C,WAAW,CAAC,SAAS,GAAG,kBAAkB,CAAC;IAC3C,iBAAiB,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;IACpD,OAAO,CAAC,CAAC;AACb,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAM,EAAE,WAAoB;IACpD,MAAM,EAAE,kBAAkB,EAAE,GAAG,cAAc,EAAE,CAAC;IAChD,6CAA6C;IAC7C,WAAW,CAAC,SAAS,GAAG,kBAAkB,CAAC;IAC3C,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,CAAC,CAAC;AACb,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAM,EAAE,WAAoB;IACnD,MAAM,EAAE,kBAAkB,EAAE,GAAG,cAAc,EAAE,CAAC;IAChD,6CAA6C;IAC7C,WAAW,CAAC,SAAS,GAAG,kBAAkB,CAAC;IAC3C,gBAAgB,EAAE,CAAC;IACnB,YAAY,EAAE,CAAC;IACf,OAAO,CAAC,CAAC;AACb,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC5B,IAAgB,EAChB,CAAM,EACN,eAAuB,EACvB,WAAoB;IAEpB,QAAQ,IAAI,EAAE;QACV,KAAK,UAAU,CAAC,YAAY;YACxB,OAAO,mBAAmB,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;QACnD,KAAK,UAAU,CAAC,QAAQ;YACpB,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC;QAC9B,KAAK,UAAU,CAAC,UAAU;YACtB,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAChC,KAAK,UAAU,CAAC,cAAc;YAC1B,OAAO,qBAAqB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QACjD,KAAK,UAAU,CAAC,WAAW;YACvB,OAAO,kBAAkB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QAC9C,KAAK,UAAU,CAAC,UAAU;YACtB,OAAO,iBAAiB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QAC7C,QAAQ;KACX;IACD,OAAO,CAAC,CAAC;AACb,CAAC"}
|
|
@@ -1,8 +1,18 @@
|
|
|
1
1
|
import * as processDataInstance from './processData';
|
|
2
2
|
import * as answerServiceInstance from './answerService';
|
|
3
3
|
import * as auth from '../auth';
|
|
4
|
-
import
|
|
4
|
+
import * as base from '../embed/base';
|
|
5
|
+
import { EmbedEvent, OperationType, AuthType } from '../types';
|
|
5
6
|
describe('Unit test for process data', () => {
|
|
7
|
+
beforeAll(() => {
|
|
8
|
+
base.init({
|
|
9
|
+
thoughtSpotHost: '',
|
|
10
|
+
authType: AuthType.None,
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
afterEach(() => {
|
|
14
|
+
jest.resetAllMocks();
|
|
15
|
+
});
|
|
6
16
|
const thoughtSpotHost = 'http://localhost';
|
|
7
17
|
test('processDataInstance, when operation is GetChartWithData', () => {
|
|
8
18
|
const answerService = {};
|
|
@@ -20,13 +30,13 @@ describe('Unit test for process data', () => {
|
|
|
20
30
|
test('ProcessData, when Action is CustomAction', async () => {
|
|
21
31
|
const processedData = { type: EmbedEvent.CustomAction };
|
|
22
32
|
jest.spyOn(processDataInstance, 'processCustomAction').mockImplementation(async () => ({}));
|
|
23
|
-
expect(processDataInstance.
|
|
33
|
+
expect(processDataInstance.processEventData(EmbedEvent.CustomAction, processedData, thoughtSpotHost, null)).toStrictEqual(processedData);
|
|
24
34
|
});
|
|
25
35
|
test('ProcessData, when Action is non CustomAction', () => {
|
|
26
36
|
const processedData = { type: EmbedEvent.Data };
|
|
27
37
|
jest.spyOn(processDataInstance, 'processCustomAction').mockImplementation(async () => ({}));
|
|
28
38
|
jest.spyOn(answerServiceInstance, 'getAnswerServiceInstance').mockImplementation(async () => ({}));
|
|
29
|
-
processDataInstance.
|
|
39
|
+
processDataInstance.processEventData(EmbedEvent.Data, processedData, thoughtSpotHost, null);
|
|
30
40
|
expect(processDataInstance.processCustomAction).not.toBeCalled();
|
|
31
41
|
});
|
|
32
42
|
test('AuthInit', () => {
|
|
@@ -37,13 +47,105 @@ describe('Unit test for process data', () => {
|
|
|
37
47
|
};
|
|
38
48
|
const e = { type: EmbedEvent.AuthInit, data: sessionInfo };
|
|
39
49
|
jest.spyOn(auth, 'initSession').mockReturnValue(null);
|
|
40
|
-
|
|
50
|
+
jest.spyOn(base, 'notifyAuthSuccess');
|
|
51
|
+
expect(processDataInstance.processEventData(e.type, e, '', null)).toEqual({
|
|
41
52
|
type: e.type,
|
|
42
53
|
data: {
|
|
43
54
|
userGUID: sessionInfo.userGUID,
|
|
44
55
|
},
|
|
45
56
|
});
|
|
46
57
|
expect(auth.initSession).toBeCalledWith(sessionInfo);
|
|
58
|
+
expect(base.notifyAuthSuccess).toBeCalled();
|
|
59
|
+
});
|
|
60
|
+
test('AuthExpire autoLogin false', () => {
|
|
61
|
+
const e = { type: EmbedEvent.AuthExpire };
|
|
62
|
+
jest.spyOn(base, 'notifyAuthFailure');
|
|
63
|
+
jest.spyOn(base, 'handleAuth');
|
|
64
|
+
jest.spyOn(base, 'getEmbedConfig').mockReturnValue({
|
|
65
|
+
autoLogin: false,
|
|
66
|
+
});
|
|
67
|
+
expect(processDataInstance.processEventData(e.type, e, '', null)).toEqual({
|
|
68
|
+
type: e.type,
|
|
69
|
+
});
|
|
70
|
+
expect(base.notifyAuthFailure).toBeCalledWith(auth.AuthFailureType.EXPIRY);
|
|
71
|
+
expect(base.handleAuth).not.toHaveBeenCalled();
|
|
72
|
+
});
|
|
73
|
+
test('AuthExpire autoLogin true', () => {
|
|
74
|
+
const e = { type: EmbedEvent.AuthExpire };
|
|
75
|
+
jest.spyOn(base, 'notifyAuthFailure');
|
|
76
|
+
jest.spyOn(base, 'handleAuth').mockResolvedValue(true);
|
|
77
|
+
jest.spyOn(base, 'getEmbedConfig').mockReturnValue({
|
|
78
|
+
autoLogin: true,
|
|
79
|
+
});
|
|
80
|
+
expect(processDataInstance.processEventData(e.type, e, '', null)).toEqual({
|
|
81
|
+
type: e.type,
|
|
82
|
+
});
|
|
83
|
+
expect(base.notifyAuthFailure).toBeCalledWith(auth.AuthFailureType.EXPIRY);
|
|
84
|
+
expect(base.handleAuth).toBeCalled();
|
|
85
|
+
});
|
|
86
|
+
test('NoCookieAccess no suppress alert', () => {
|
|
87
|
+
const e = { type: EmbedEvent.NoCookieAccess };
|
|
88
|
+
jest.spyOn(base, 'notifyAuthFailure');
|
|
89
|
+
jest.spyOn(base, 'getEmbedConfig').mockReturnValue({
|
|
90
|
+
loginFailedMessage: 'Hello',
|
|
91
|
+
suppressNoCookieAccessAlert: false,
|
|
92
|
+
});
|
|
93
|
+
jest.spyOn(window, 'alert').mockImplementation(() => undefined);
|
|
94
|
+
const el = {};
|
|
95
|
+
expect(processDataInstance.processEventData(e.type, e, '', el)).toEqual({
|
|
96
|
+
type: e.type,
|
|
97
|
+
});
|
|
98
|
+
expect(base.notifyAuthFailure).toBeCalledWith(auth.AuthFailureType.NO_COOKIE_ACCESS);
|
|
99
|
+
expect(window.alert).toBeCalled();
|
|
100
|
+
expect(el.innerHTML).toBe('Hello');
|
|
101
|
+
});
|
|
102
|
+
test('NoCookieAccess suppressAlert=true', () => {
|
|
103
|
+
const e = { type: EmbedEvent.NoCookieAccess };
|
|
104
|
+
jest.spyOn(base, 'notifyAuthFailure');
|
|
105
|
+
jest.spyOn(base, 'getEmbedConfig').mockReturnValue({
|
|
106
|
+
loginFailedMessage: 'Hello',
|
|
107
|
+
suppressNoCookieAccessAlert: true,
|
|
108
|
+
});
|
|
109
|
+
jest.spyOn(window, 'alert').mockReset();
|
|
110
|
+
jest.spyOn(window, 'alert').mockImplementation(() => undefined);
|
|
111
|
+
const el = {};
|
|
112
|
+
expect(processDataInstance.processEventData(e.type, e, '', el)).toEqual({
|
|
113
|
+
type: e.type,
|
|
114
|
+
});
|
|
115
|
+
expect(base.notifyAuthFailure).toBeCalledWith(auth.AuthFailureType.NO_COOKIE_ACCESS);
|
|
116
|
+
expect(window.alert).not.toBeCalled();
|
|
117
|
+
expect(el.innerHTML).toBe('Hello');
|
|
118
|
+
});
|
|
119
|
+
test('process authFailure', () => {
|
|
120
|
+
const e = { type: EmbedEvent.AuthFailure };
|
|
121
|
+
jest.spyOn(base, 'notifyAuthFailure');
|
|
122
|
+
jest.spyOn(base, 'getEmbedConfig').mockReturnValue({
|
|
123
|
+
loginFailedMessage: 'Hello',
|
|
124
|
+
});
|
|
125
|
+
const el = {};
|
|
126
|
+
expect(processDataInstance.processEventData(e.type, e, '', el)).toEqual({
|
|
127
|
+
type: e.type,
|
|
128
|
+
});
|
|
129
|
+
expect(base.notifyAuthFailure).toBeCalledWith(auth.AuthFailureType.OTHER);
|
|
130
|
+
expect(el.innerHTML).toBe('Hello');
|
|
131
|
+
});
|
|
132
|
+
test('process authLogout', () => {
|
|
133
|
+
base.init({
|
|
134
|
+
loginFailedMessage: 'Hello',
|
|
135
|
+
autoLogin: true,
|
|
136
|
+
thoughtSpotHost: '',
|
|
137
|
+
authType: AuthType.None,
|
|
138
|
+
});
|
|
139
|
+
jest.spyOn(base, 'getEmbedConfig').mockRestore();
|
|
140
|
+
const e = { type: EmbedEvent.AuthLogout };
|
|
141
|
+
jest.spyOn(base, 'notifyLogout');
|
|
142
|
+
const el = {};
|
|
143
|
+
expect(processDataInstance.processEventData(e.type, e, '', el)).toEqual({
|
|
144
|
+
type: e.type,
|
|
145
|
+
});
|
|
146
|
+
expect(base.notifyLogout).toBeCalled();
|
|
147
|
+
expect(el.innerHTML).toBe('Hello');
|
|
148
|
+
expect(base.getEmbedConfig().autoLogin).toBe(false);
|
|
47
149
|
});
|
|
48
150
|
});
|
|
49
151
|
//# sourceMappingURL=processData.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processData.spec.js","sourceRoot":"","sources":["../../../src/utils/processData.spec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,mBAAmB,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,qBAAqB,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"processData.spec.js","sourceRoot":"","sources":["../../../src/utils/processData.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
// Generated by dts-bundle v0.7.3
|
|
2
|
+
// Dependencies for this module:
|
|
3
|
+
// ../../eventemitter3
|
|
2
4
|
|
|
3
5
|
declare module '@thoughtspot/visual-embed-sdk' {
|
|
4
6
|
/**
|
|
@@ -11,11 +13,12 @@ declare module '@thoughtspot/visual-embed-sdk' {
|
|
|
11
13
|
* @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
|
|
12
14
|
*/
|
|
13
15
|
import { AppEmbed, Page, AppViewConfig } from '@thoughtspot/visual-embed-sdk/embed/app';
|
|
14
|
-
import { init, prefetch } from '@thoughtspot/visual-embed-sdk/embed/base';
|
|
16
|
+
import { init, prefetch, logout } from '@thoughtspot/visual-embed-sdk/embed/base';
|
|
15
17
|
import { PinboardEmbed, LiveboardViewConfig, LiveboardEmbed } from '@thoughtspot/visual-embed-sdk/embed/liveboard';
|
|
16
18
|
import { SearchEmbed, SearchViewConfig } from '@thoughtspot/visual-embed-sdk/embed/search';
|
|
19
|
+
import { AuthFailureType, AuthStatus } from '@thoughtspot/visual-embed-sdk/auth';
|
|
17
20
|
import { AuthType, RuntimeFilter, RuntimeFilterOp, EmbedEvent, HostEvent, DataSourceVisualMode, Action, EmbedConfig } from '@thoughtspot/visual-embed-sdk/types';
|
|
18
|
-
export { init, prefetch, SearchEmbed, PinboardEmbed, LiveboardEmbed, AppEmbed, Page, AuthType, RuntimeFilter, RuntimeFilterOp, EmbedEvent, HostEvent, DataSourceVisualMode, Action, EmbedConfig, SearchViewConfig, LiveboardViewConfig, AppViewConfig, };
|
|
21
|
+
export { init, logout, prefetch, SearchEmbed, PinboardEmbed, LiveboardEmbed, AppEmbed, AuthFailureType, AuthStatus, Page, AuthType, RuntimeFilter, RuntimeFilterOp, EmbedEvent, HostEvent, DataSourceVisualMode, Action, EmbedConfig, SearchViewConfig, LiveboardViewConfig, AppViewConfig, };
|
|
19
22
|
}
|
|
20
23
|
|
|
21
24
|
declare module '@thoughtspot/visual-embed-sdk/embed/app' {
|
|
@@ -134,14 +137,27 @@ declare module '@thoughtspot/visual-embed-sdk/embed/app' {
|
|
|
134
137
|
}
|
|
135
138
|
|
|
136
139
|
declare module '@thoughtspot/visual-embed-sdk/embed/base' {
|
|
140
|
+
/**
|
|
141
|
+
* Copyright (c) 2022
|
|
142
|
+
*
|
|
143
|
+
* Base classes
|
|
144
|
+
*
|
|
145
|
+
* @summary Base classes
|
|
146
|
+
* @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
|
|
147
|
+
*/
|
|
148
|
+
import EventEmitter from 'eventemitter3';
|
|
137
149
|
import { EmbedConfig } from '@thoughtspot/visual-embed-sdk/types';
|
|
138
|
-
|
|
150
|
+
import { AuthFailureType } from '@thoughtspot/visual-embed-sdk/auth';
|
|
151
|
+
export let authPromise: Promise<boolean>;
|
|
152
|
+
export const getEmbedConfig: () => EmbedConfig;
|
|
153
|
+
export const getAuthPromise: () => Promise<boolean>;
|
|
154
|
+
export function notifyAuthSuccess(): void;
|
|
155
|
+
export function notifyAuthFailure(failureType: AuthFailureType): void;
|
|
156
|
+
export function notifyLogout(): void;
|
|
139
157
|
/**
|
|
140
158
|
* Perform authentication on the ThoughtSpot app as applicable.
|
|
141
159
|
*/
|
|
142
|
-
export const handleAuth: () => Promise<
|
|
143
|
-
export const getEmbedConfig: () => EmbedConfig;
|
|
144
|
-
export const getAuthPromise: () => Promise<void>;
|
|
160
|
+
export const handleAuth: () => Promise<boolean>;
|
|
145
161
|
/**
|
|
146
162
|
* Prefetches static resources from the specified URL. Web browsers can then cache the prefetched resources and serve them from the user's local disk to provide faster access to your app.
|
|
147
163
|
* @param url The URL provided for prefetch
|
|
@@ -155,12 +171,15 @@ declare module '@thoughtspot/visual-embed-sdk/embed/base' {
|
|
|
155
171
|
*
|
|
156
172
|
* @returns authPromise Promise which resolves when authentication is complete.
|
|
157
173
|
*/
|
|
158
|
-
export const init: (embedConfig: EmbedConfig) =>
|
|
174
|
+
export const init: (embedConfig: EmbedConfig) => EventEmitter;
|
|
175
|
+
export function disableAutoLogin(): void;
|
|
176
|
+
export const logout: (doNotDisableAutoLogin?: boolean) => Promise<boolean>;
|
|
159
177
|
/**
|
|
160
178
|
* Renders functions in a queue, resolves to next function only after the callback next is called
|
|
161
179
|
* @param fn The function being registered
|
|
162
180
|
*/
|
|
163
181
|
export const renderInQueue: (fn: (next?: (val?: any) => void) => void) => void;
|
|
182
|
+
export function reset(): void;
|
|
164
183
|
}
|
|
165
184
|
|
|
166
185
|
declare module '@thoughtspot/visual-embed-sdk/embed/liveboard' {
|
|
@@ -357,6 +376,65 @@ declare module '@thoughtspot/visual-embed-sdk/embed/search' {
|
|
|
357
376
|
export {};
|
|
358
377
|
}
|
|
359
378
|
|
|
379
|
+
declare module '@thoughtspot/visual-embed-sdk/auth' {
|
|
380
|
+
import { EmbedConfig } from '@thoughtspot/visual-embed-sdk/types';
|
|
381
|
+
export let loggedInStatus: boolean;
|
|
382
|
+
export let samlAuthWindow: Window;
|
|
383
|
+
export let samlCompletionPromise: Promise<void>;
|
|
384
|
+
export let sessionInfo: any;
|
|
385
|
+
export const SSO_REDIRECTION_MARKER_GUID = "5e16222e-ef02-43e9-9fbd-24226bf3ce5b";
|
|
386
|
+
export const EndPoints: {
|
|
387
|
+
AUTH_VERIFICATION: string;
|
|
388
|
+
SAML_LOGIN_TEMPLATE: (targetUrl: string) => string;
|
|
389
|
+
OIDC_LOGIN_TEMPLATE: (targetUrl: string) => string;
|
|
390
|
+
TOKEN_LOGIN: string;
|
|
391
|
+
BASIC_LOGIN: string;
|
|
392
|
+
LOGOUT: string;
|
|
393
|
+
};
|
|
394
|
+
export enum AuthFailureType {
|
|
395
|
+
SDK = "SDK",
|
|
396
|
+
NO_COOKIE_ACCESS = "NO_COOKIE_ACCESS",
|
|
397
|
+
EXPIRY = "EXPIRY",
|
|
398
|
+
OTHER = "OTHER"
|
|
399
|
+
}
|
|
400
|
+
export enum AuthStatus {
|
|
401
|
+
FAILURE = "FAILURE",
|
|
402
|
+
SUCCESS = "SUCCESS",
|
|
403
|
+
LOGOUT = "LOGOUT"
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* Return sessionInfo if available else make a loggedIn check to fetch the sessionInfo
|
|
407
|
+
*/
|
|
408
|
+
export function getSessionInfo(): any;
|
|
409
|
+
export function initSession(sessionDetails: any): void;
|
|
410
|
+
/**
|
|
411
|
+
* Perform token based authentication
|
|
412
|
+
* @param embedConfig The embed configuration
|
|
413
|
+
*/
|
|
414
|
+
export const doTokenAuth: (embedConfig: EmbedConfig) => Promise<boolean>;
|
|
415
|
+
/**
|
|
416
|
+
* Perform basic authentication to the ThoughtSpot cluster using the cluster
|
|
417
|
+
* credentials.
|
|
418
|
+
*
|
|
419
|
+
* Warning: This feature is primarily intended for developer testing. It is
|
|
420
|
+
* strongly advised not to use this authentication method in production.
|
|
421
|
+
* @param embedConfig The embed configuration
|
|
422
|
+
*/
|
|
423
|
+
export const doBasicAuth: (embedConfig: EmbedConfig) => Promise<boolean>;
|
|
424
|
+
export const doSamlAuth: (embedConfig: EmbedConfig) => Promise<boolean>;
|
|
425
|
+
export const doOIDCAuth: (embedConfig: EmbedConfig) => Promise<boolean>;
|
|
426
|
+
export const logout: (embedConfig: EmbedConfig) => Promise<boolean>;
|
|
427
|
+
/**
|
|
428
|
+
* Perform authentication on the ThoughtSpot cluster
|
|
429
|
+
* @param embedConfig The embed configuration
|
|
430
|
+
*/
|
|
431
|
+
export const authenticate: (embedConfig: EmbedConfig) => Promise<boolean>;
|
|
432
|
+
/**
|
|
433
|
+
* Check if we are authenticated to the ThoughtSpot cluster
|
|
434
|
+
*/
|
|
435
|
+
export const isAuthenticated: () => boolean;
|
|
436
|
+
}
|
|
437
|
+
|
|
360
438
|
declare module '@thoughtspot/visual-embed-sdk/types' {
|
|
361
439
|
/**
|
|
362
440
|
* The authentication mechanism for allowing access to the
|
|
@@ -471,6 +549,11 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
|
|
|
471
549
|
* @default false
|
|
472
550
|
*/
|
|
473
551
|
disableLoginRedirect?: boolean;
|
|
552
|
+
/**
|
|
553
|
+
* This message is displayed on the embed view when the login fails.
|
|
554
|
+
* @version 1.10.1 | ThoughtSpot: *
|
|
555
|
+
*/
|
|
556
|
+
loginFailedMessage?: string;
|
|
474
557
|
/**
|
|
475
558
|
* Calls the prefetch method internally when set to true
|
|
476
559
|
* @default false
|
|
@@ -684,6 +767,16 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
|
|
|
684
767
|
* The ThoughtSpot auth session has expired.
|
|
685
768
|
*/
|
|
686
769
|
AuthExpire = "ThoughtspotAuthExpired",
|
|
770
|
+
/**
|
|
771
|
+
* ThoughtSpot failed to validate the auth session.
|
|
772
|
+
* @hidden
|
|
773
|
+
*/
|
|
774
|
+
AuthFailure = "ThoughtspotAuthFailure",
|
|
775
|
+
/**
|
|
776
|
+
* ThoughtSpot failed to validate the auth session.
|
|
777
|
+
* @hidden
|
|
778
|
+
*/
|
|
779
|
+
AuthLogout = "ThoughtspotAuthLogout",
|
|
687
780
|
/**
|
|
688
781
|
* The height of the embedded Liveboard or visualization has been computed.
|
|
689
782
|
* @return data - The height of the embedded Liveboard or visualization
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thoughtspot/visual-embed-sdk",
|
|
3
|
-
"version": "1.10.
|
|
3
|
+
"version": "1.10.1",
|
|
4
4
|
"description": "ThoughtSpot Embed SDK",
|
|
5
5
|
"module": "lib/src/index.js",
|
|
6
6
|
"main": "dist/tsembed.js",
|
|
@@ -44,6 +44,7 @@
|
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"algoliasearch": "^4.10.5",
|
|
46
46
|
"classnames": "^2.3.1",
|
|
47
|
+
"eventemitter3": "^4.0.7",
|
|
47
48
|
"mixpanel-browser": "^2.41.0"
|
|
48
49
|
},
|
|
49
50
|
"devDependencies": {
|