@thoughtspot/visual-embed-sdk 1.12.1 → 1.13.0-alpha.2
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/CHANGELOG.md +6 -19
- package/README.md +1 -1
- package/dist/src/auth.d.ts +14 -4
- package/dist/src/auth.spec.d.ts +0 -1
- package/dist/src/embed/base.d.ts +1 -0
- package/dist/src/embed/liveboard.d.ts +1 -7
- package/dist/src/embed/search.d.ts +0 -5
- package/dist/src/embed/ts-embed.d.ts +2 -3
- package/dist/src/errors.d.ts +0 -2
- package/dist/src/test/test-utils.d.ts +0 -6
- package/dist/src/types.d.ts +2 -24
- package/dist/src/utils/processTrigger.d.ts +1 -1
- package/dist/src/utils.d.ts +0 -1
- package/dist/tsembed.es.js +40 -91
- package/dist/tsembed.js +40 -91
- package/lib/package.json +2 -4
- package/lib/src/auth.d.ts +14 -4
- package/lib/src/auth.js +15 -10
- package/lib/src/auth.js.map +1 -1
- package/lib/src/auth.spec.d.ts +0 -1
- package/lib/src/auth.spec.js +1 -4
- package/lib/src/auth.spec.js.map +1 -1
- package/lib/src/embed/app.spec.js +6 -8
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/base.d.ts +1 -0
- package/lib/src/embed/base.js +10 -0
- package/lib/src/embed/base.js.map +1 -1
- package/lib/src/embed/base.spec.js +16 -0
- package/lib/src/embed/base.spec.js.map +1 -1
- package/lib/src/embed/embed.spec.js +0 -2
- package/lib/src/embed/embed.spec.js.map +1 -1
- package/lib/src/embed/events.spec.js +1 -3
- package/lib/src/embed/events.spec.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +1 -7
- package/lib/src/embed/liveboard.js +0 -12
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +4 -18
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/pinboard.spec.js +3 -4
- package/lib/src/embed/pinboard.spec.js.map +1 -1
- package/lib/src/embed/search.d.ts +0 -5
- package/lib/src/embed/search.js +2 -10
- package/lib/src/embed/search.js.map +1 -1
- package/lib/src/embed/search.spec.js +1 -9
- package/lib/src/embed/search.spec.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts +2 -3
- package/lib/src/embed/ts-embed.js +7 -8
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +5 -12
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/errors.d.ts +0 -2
- package/lib/src/errors.js +0 -2
- package/lib/src/errors.js.map +1 -1
- package/lib/src/react/index.js +2 -3
- package/lib/src/react/index.js.map +1 -1
- package/lib/src/react/index.spec.js +4 -6
- package/lib/src/react/index.spec.js.map +1 -1
- package/lib/src/test/test-utils.d.ts +0 -6
- package/lib/src/test/test-utils.js +0 -15
- package/lib/src/test/test-utils.js.map +1 -1
- package/lib/src/types.d.ts +2 -24
- package/lib/src/types.js +0 -16
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/processTrigger.d.ts +1 -1
- package/lib/src/utils/processTrigger.js +8 -28
- package/lib/src/utils/processTrigger.js.map +1 -1
- package/lib/src/utils/processTrigger.spec.js +1 -11
- package/lib/src/utils/processTrigger.spec.js.map +1 -1
- package/lib/src/utils.d.ts +0 -1
- package/lib/src/utils.js +0 -11
- package/lib/src/utils.js.map +1 -1
- package/lib/src/utils.spec.js +1 -22
- package/lib/src/utils.spec.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +20 -42
- package/package.json +3 -5
- package/src/auth.spec.ts +1 -10
- package/src/auth.ts +15 -11
- package/src/embed/app.spec.ts +3 -8
- package/src/embed/base.spec.ts +18 -0
- package/src/embed/base.ts +10 -0
- package/src/embed/embed.spec.ts +0 -2
- package/src/embed/events.spec.ts +0 -3
- package/src/embed/liveboard.spec.ts +4 -27
- package/src/embed/liveboard.ts +0 -13
- package/src/embed/pinboard.spec.ts +3 -4
- package/src/embed/search.spec.ts +1 -11
- package/src/embed/search.ts +1 -20
- package/src/embed/ts-embed.spec.ts +5 -19
- package/src/embed/ts-embed.ts +11 -15
- package/src/errors.ts +0 -3
- package/src/react/index.spec.tsx +2 -7
- package/src/react/index.tsx +2 -3
- package/src/test/test-utils.ts +0 -16
- package/src/types.ts +0 -22
- package/src/utils/processTrigger.spec.ts +1 -11
- package/src/utils/processTrigger.ts +12 -36
- package/src/utils.spec.ts +0 -29
- package/src/utils.ts +0 -16
- package/dist/src/embed/searchEmbed-basic-auth.spec.d.ts +0 -1
- package/lib/src/embed/searchEmbed-basic-auth.spec.d.ts +0 -1
- package/lib/src/embed/searchEmbed-basic-auth.spec.js +0 -96
- package/lib/src/embed/searchEmbed-basic-auth.spec.js.map +0 -1
- package/src/embed/searchEmbed-basic-auth.spec.ts +0 -115
package/lib/src/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
package/lib/src/utils.spec.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @jest-environment node
|
|
3
3
|
*/
|
|
4
|
-
import { getQueryParamString, getFilterQuery, getCssDimension, getEncodedQueryParamsString, appendToUrlHash, getRedirectUrl,
|
|
4
|
+
import { getQueryParamString, getFilterQuery, getCssDimension, getEncodedQueryParamsString, appendToUrlHash, getRedirectUrl, } from './utils';
|
|
5
5
|
import { RuntimeFilterOp } from './types';
|
|
6
6
|
describe('unit test for utils', () => {
|
|
7
7
|
test('getQueryParamString', () => {
|
|
@@ -71,26 +71,5 @@ describe('unit test for utils', () => {
|
|
|
71
71
|
expect(getEncodedQueryParamsString('')).toBe('');
|
|
72
72
|
expect(getEncodedQueryParamsString('test')).toBe('dGVzdA');
|
|
73
73
|
});
|
|
74
|
-
test('when ReleaseVersion is empty ', () => {
|
|
75
|
-
expect(checkReleaseVersionInBeta('', false)).toBe(false);
|
|
76
|
-
});
|
|
77
|
-
test('when ReleaseVersion is 7.0.1.cl ', () => {
|
|
78
|
-
expect(checkReleaseVersionInBeta('7.0.1.cl', false)).toBe(false);
|
|
79
|
-
});
|
|
80
|
-
test('when cluster has dev version', () => {
|
|
81
|
-
expect(checkReleaseVersionInBeta('dev', false)).toBe(false);
|
|
82
|
-
});
|
|
83
|
-
test('when cluster is above 8.4.0.cl-11 software version', () => {
|
|
84
|
-
expect(checkReleaseVersionInBeta('8.4.0.cl-117', false)).toBe(false);
|
|
85
|
-
});
|
|
86
|
-
test('when cluster is bellow 8.0.0.sw software version', () => {
|
|
87
|
-
expect(checkReleaseVersionInBeta('7.2.1.sw', false)).toBe(true);
|
|
88
|
-
});
|
|
89
|
-
test('when suppressBetaWarning is true and ReleaseVersion is 7.0.1', () => {
|
|
90
|
-
expect(checkReleaseVersionInBeta('7.0.1', true)).toBe(false);
|
|
91
|
-
});
|
|
92
|
-
test('when suppressBetaWarning is false ReleaseVersion is 7.0.1', () => {
|
|
93
|
-
expect(checkReleaseVersionInBeta('7.0.1', false)).toBe(true);
|
|
94
|
-
});
|
|
95
74
|
});
|
|
96
75
|
//# sourceMappingURL=utils.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.spec.js","sourceRoot":"","sources":["../../src/utils.spec.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACH,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,2BAA2B,EAC3B,eAAe,EACf,cAAc,
|
|
1
|
+
{"version":3,"file":"utils.spec.js","sourceRoot":"","sources":["../../src/utils.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -151,6 +151,7 @@ declare module '@thoughtspot/visual-embed-sdk/embed/base' {
|
|
|
151
151
|
export let authPromise: Promise<boolean>;
|
|
152
152
|
export const getEmbedConfig: () => EmbedConfig;
|
|
153
153
|
export const getAuthPromise: () => Promise<boolean>;
|
|
154
|
+
export function notifyAuthSDKSuccess(): void;
|
|
154
155
|
export function notifyAuthSuccess(): void;
|
|
155
156
|
export function notifyAuthFailure(failureType: AuthFailureType): void;
|
|
156
157
|
export function notifyLogout(): void;
|
|
@@ -207,7 +208,7 @@ declare module '@thoughtspot/visual-embed-sdk/embed/liveboard' {
|
|
|
207
208
|
* @summary Liveboard & visualization embed
|
|
208
209
|
* @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
|
|
209
210
|
*/
|
|
210
|
-
import { DOMSelector
|
|
211
|
+
import { DOMSelector } from '@thoughtspot/visual-embed-sdk/types';
|
|
211
212
|
import { V1Embed, ViewConfig } from '@thoughtspot/visual-embed-sdk/embed/ts-embed';
|
|
212
213
|
/**
|
|
213
214
|
* The configuration for the embedded Liveboard or visualization page view.
|
|
@@ -278,12 +279,6 @@ declare module '@thoughtspot/visual-embed-sdk/embed/liveboard' {
|
|
|
278
279
|
export class LiveboardEmbed extends V1Embed {
|
|
279
280
|
protected viewConfig: LiveboardViewConfig;
|
|
280
281
|
constructor(domSelector: DOMSelector, viewConfig: LiveboardViewConfig);
|
|
281
|
-
/**
|
|
282
|
-
* Triggers an event to the embedded app
|
|
283
|
-
* @param messageType The event type
|
|
284
|
-
* @param data The payload to send with the message
|
|
285
|
-
*/
|
|
286
|
-
trigger(messageType: HostEvent, data?: any): Promise<any>;
|
|
287
282
|
/**
|
|
288
283
|
* Render an embedded ThoughtSpot Liveboard or visualization
|
|
289
284
|
* @param renderOptions An object specifying the Liveboard ID,
|
|
@@ -345,13 +340,8 @@ declare module '@thoughtspot/visual-embed-sdk/embed/search' {
|
|
|
345
340
|
* using raw answer data.
|
|
346
341
|
*/
|
|
347
342
|
hideResults?: boolean;
|
|
348
|
-
/**
|
|
349
|
-
* If set to true, expands all the data sources panel.
|
|
350
|
-
*/
|
|
351
|
-
expandAllDataSource?: boolean;
|
|
352
343
|
/**
|
|
353
344
|
* If set to true, the Search Assist feature is enabled.
|
|
354
|
-
* @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl
|
|
355
345
|
*/
|
|
356
346
|
enableSearchAssist?: boolean;
|
|
357
347
|
/**
|
|
@@ -402,6 +392,7 @@ declare module '@thoughtspot/visual-embed-sdk/auth' {
|
|
|
402
392
|
export let loggedInStatus: boolean;
|
|
403
393
|
export let samlAuthWindow: Window;
|
|
404
394
|
export let samlCompletionPromise: Promise<void>;
|
|
395
|
+
export let sessionInfo: any;
|
|
405
396
|
export const SSO_REDIRECTION_MARKER_GUID = "5e16222e-ef02-43e9-9fbd-24226bf3ce5b";
|
|
406
397
|
export const EndPoints: {
|
|
407
398
|
AUTH_VERIFICATION: string;
|
|
@@ -418,14 +409,23 @@ declare module '@thoughtspot/visual-embed-sdk/auth' {
|
|
|
418
409
|
OTHER = "OTHER"
|
|
419
410
|
}
|
|
420
411
|
export enum AuthStatus {
|
|
412
|
+
/**
|
|
413
|
+
* Emits when the SDK fails to authenticate
|
|
414
|
+
*/
|
|
421
415
|
FAILURE = "FAILURE",
|
|
416
|
+
/**
|
|
417
|
+
* Emits when the SDK succeeds to authenticate
|
|
418
|
+
*/
|
|
419
|
+
SDK_SUCCESS = "SDK_SUCCESS",
|
|
420
|
+
/**
|
|
421
|
+
* Emits when the App sends a auth success
|
|
422
|
+
*/
|
|
422
423
|
SUCCESS = "SUCCESS",
|
|
424
|
+
/**
|
|
425
|
+
* Emits when there is a logout
|
|
426
|
+
*/
|
|
423
427
|
LOGOUT = "LOGOUT"
|
|
424
428
|
}
|
|
425
|
-
/**
|
|
426
|
-
* Return releaseVersion if available
|
|
427
|
-
*/
|
|
428
|
-
export function getReleaseVersion(): string;
|
|
429
429
|
/**
|
|
430
430
|
* Return sessionInfo if available else make a loggedIn check to fetch the sessionInfo
|
|
431
431
|
*/
|
|
@@ -615,12 +615,6 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
|
|
|
615
615
|
* @version SDK: 1.10.4 | ThoughtSpot: *
|
|
616
616
|
*/
|
|
617
617
|
detectCookieAccessSlow?: boolean;
|
|
618
|
-
/**
|
|
619
|
-
* Hide beta alert warning message for SearchEmbed.
|
|
620
|
-
*
|
|
621
|
-
* @version SDK: 1.12.0 | ThoughtSpot: *
|
|
622
|
-
*/
|
|
623
|
-
suppressSearchEmbedBetaWarning?: boolean;
|
|
624
618
|
}
|
|
625
619
|
/**
|
|
626
620
|
* MessagePayload: Embed event payload: message type, data and status (start/end)
|
|
@@ -1030,19 +1024,7 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
|
|
|
1030
1024
|
* @param path - the path to navigate to (can be a number[1/-1] to go forward/back)
|
|
1031
1025
|
* @version SDK: 1.12.0 | ThoughtSpot: 8.4.0.cl
|
|
1032
1026
|
*/
|
|
1033
|
-
Navigate = "Navigate"
|
|
1034
|
-
/**
|
|
1035
|
-
* Gets the current pinboard content.
|
|
1036
|
-
* @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl
|
|
1037
|
-
*/
|
|
1038
|
-
getExportRequestForCurrentPinboard = "getExportRequestForCurrentPinboard",
|
|
1039
|
-
/**
|
|
1040
|
-
* Fires the pin action on an embedded object
|
|
1041
|
-
* @param - incase of liveboard embed, takes in an object with vizId as a key
|
|
1042
|
-
* can be left empty for search and viz embeds
|
|
1043
|
-
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
|
|
1044
|
-
*/
|
|
1045
|
-
Pin = "pin"
|
|
1027
|
+
Navigate = "Navigate"
|
|
1046
1028
|
}
|
|
1047
1029
|
/**
|
|
1048
1030
|
* The different visual modes that the data sources panel within
|
|
@@ -1236,11 +1218,7 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
|
|
|
1236
1218
|
/**
|
|
1237
1219
|
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl
|
|
1238
1220
|
*/
|
|
1239
|
-
CreateMonitor = "createMonitor"
|
|
1240
|
-
/**
|
|
1241
|
-
* @version SDK: 1.11.1 | ThoughtSpot: 8.3.0.cl
|
|
1242
|
-
*/
|
|
1243
|
-
ReportError = "reportError"
|
|
1221
|
+
CreateMonitor = "createMonitor"
|
|
1244
1222
|
}
|
|
1245
1223
|
export interface SessionInterface {
|
|
1246
1224
|
sessionId: string;
|
|
@@ -1291,7 +1269,7 @@ declare module '@thoughtspot/visual-embed-sdk/embed/ts-embed' {
|
|
|
1291
1269
|
* This parameters will be passed on the iframe
|
|
1292
1270
|
* as is.
|
|
1293
1271
|
*/
|
|
1294
|
-
[key: string]: string | number | boolean
|
|
1272
|
+
[key: string]: string | number | boolean;
|
|
1295
1273
|
}
|
|
1296
1274
|
/**
|
|
1297
1275
|
* The configuration object for an embedded view.
|
|
@@ -1461,7 +1439,7 @@ declare module '@thoughtspot/visual-embed-sdk/embed/ts-embed' {
|
|
|
1461
1439
|
* @param messageType The event type
|
|
1462
1440
|
* @param data The payload to send with the message
|
|
1463
1441
|
*/
|
|
1464
|
-
trigger(messageType: HostEvent, data: any):
|
|
1442
|
+
trigger(messageType: HostEvent, data: any): typeof TsEmbed.prototype;
|
|
1465
1443
|
/**
|
|
1466
1444
|
* Marks the ThoughtSpot object to have been rendered
|
|
1467
1445
|
* Needs to be overridden by subclasses to do the actual
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thoughtspot/visual-embed-sdk",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.13.0-alpha.2",
|
|
4
4
|
"description": "ThoughtSpot Embed SDK",
|
|
5
5
|
"module": "lib/src/index.js",
|
|
6
6
|
"main": "dist/tsembed.js",
|
|
@@ -45,9 +45,7 @@
|
|
|
45
45
|
"algoliasearch": "^4.10.5",
|
|
46
46
|
"classnames": "^2.3.1",
|
|
47
47
|
"eventemitter3": "^4.0.7",
|
|
48
|
-
"
|
|
49
|
-
"mixpanel-browser": "^2.45.0",
|
|
50
|
-
"use-deep-compare-effect": "^1.8.1"
|
|
48
|
+
"mixpanel-browser": "^2.45.0"
|
|
51
49
|
},
|
|
52
50
|
"devDependencies": {
|
|
53
51
|
"@mdx-js/mdx": "^1.6.22",
|
|
@@ -146,4 +144,4 @@
|
|
|
146
144
|
"globals": {
|
|
147
145
|
"window": {}
|
|
148
146
|
}
|
|
149
|
-
}
|
|
147
|
+
}
|
package/src/auth.spec.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as authInstance from './auth';
|
|
2
2
|
import * as authService from './utils/authService';
|
|
3
|
-
import * as checkReleaseVersionInBetaInstance from './utils';
|
|
4
3
|
import { AuthType, EmbedConfig } from './types';
|
|
5
4
|
import { executeAfterWait } from './test/test-utils';
|
|
6
5
|
|
|
@@ -9,7 +8,7 @@ const username = 'tsuser';
|
|
|
9
8
|
const password = '12345678';
|
|
10
9
|
const samalLoginUrl = `${thoughtSpotHost}/callosum/v1/saml/login?targetURLPath=%235e16222e-ef02-43e9-9fbd-24226bf3ce5b`;
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
const embedConfig: any = {
|
|
13
12
|
doTokenAuthSuccess: (token: string) => ({
|
|
14
13
|
thoughtSpotHost,
|
|
15
14
|
username,
|
|
@@ -243,10 +242,6 @@ describe('Unit test for auth', () => {
|
|
|
243
242
|
});
|
|
244
243
|
|
|
245
244
|
it('when user is loggedIn', async () => {
|
|
246
|
-
spyOn(
|
|
247
|
-
checkReleaseVersionInBetaInstance,
|
|
248
|
-
'checkReleaseVersionInBeta',
|
|
249
|
-
);
|
|
250
245
|
jest.spyOn(
|
|
251
246
|
authService,
|
|
252
247
|
'fetchSessionInfoService',
|
|
@@ -285,10 +280,6 @@ describe('Unit test for auth', () => {
|
|
|
285
280
|
});
|
|
286
281
|
|
|
287
282
|
it('when user is loggedIn & isAtSSORedirectUrl is true', async () => {
|
|
288
|
-
spyOn(
|
|
289
|
-
checkReleaseVersionInBetaInstance,
|
|
290
|
-
'checkReleaseVersionInBeta',
|
|
291
|
-
);
|
|
292
283
|
Object.defineProperty(window, 'location', {
|
|
293
284
|
value: {
|
|
294
285
|
href: authInstance.SSO_REDIRECTION_MARKER_GUID,
|
package/src/auth.ts
CHANGED
|
@@ -16,8 +16,8 @@ export let loggedInStatus = false;
|
|
|
16
16
|
export let samlAuthWindow: Window = null;
|
|
17
17
|
// eslint-disable-next-line import/no-mutable-exports
|
|
18
18
|
export let samlCompletionPromise: Promise<void> = null;
|
|
19
|
-
|
|
20
|
-
let
|
|
19
|
+
// eslint-disable-next-line import/no-mutable-exports
|
|
20
|
+
export let sessionInfo: any = null;
|
|
21
21
|
|
|
22
22
|
export const SSO_REDIRECTION_MARKER_GUID =
|
|
23
23
|
'5e16222e-ef02-43e9-9fbd-24226bf3ce5b';
|
|
@@ -41,8 +41,21 @@ export enum AuthFailureType {
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
export enum AuthStatus {
|
|
44
|
+
/**
|
|
45
|
+
* Emits when the SDK fails to authenticate
|
|
46
|
+
*/
|
|
44
47
|
FAILURE = 'FAILURE',
|
|
48
|
+
/**
|
|
49
|
+
* Emits when the SDK succeeds to authenticate
|
|
50
|
+
*/
|
|
51
|
+
SDK_SUCCESS = 'SDK_SUCCESS',
|
|
52
|
+
/**
|
|
53
|
+
* Emits when the App sends a auth success
|
|
54
|
+
*/
|
|
45
55
|
SUCCESS = 'SUCCESS',
|
|
56
|
+
/**
|
|
57
|
+
* Emits when there is a logout
|
|
58
|
+
*/
|
|
46
59
|
LOGOUT = 'LOGOUT',
|
|
47
60
|
}
|
|
48
61
|
|
|
@@ -55,21 +68,12 @@ async function isLoggedIn(thoughtSpotHost: string): Promise<boolean> {
|
|
|
55
68
|
let response = null;
|
|
56
69
|
try {
|
|
57
70
|
response = await fetchSessionInfoService(authVerificationUrl);
|
|
58
|
-
const sessionInfoResp = await response.json();
|
|
59
|
-
releaseVersion = sessionInfoResp.releaseVersion;
|
|
60
71
|
} catch (e) {
|
|
61
72
|
return false;
|
|
62
73
|
}
|
|
63
74
|
return response.status === 200;
|
|
64
75
|
}
|
|
65
76
|
|
|
66
|
-
/**
|
|
67
|
-
* Return releaseVersion if available
|
|
68
|
-
*/
|
|
69
|
-
export function getReleaseVersion() {
|
|
70
|
-
return releaseVersion;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
77
|
/**
|
|
74
78
|
* Return sessionInfo if available else make a loggedIn check to fetch the sessionInfo
|
|
75
79
|
*/
|
package/src/embed/app.spec.ts
CHANGED
|
@@ -7,7 +7,6 @@ import {
|
|
|
7
7
|
getIFrameSrc,
|
|
8
8
|
getRootEl,
|
|
9
9
|
getIFrameEl,
|
|
10
|
-
mockMessageChannel,
|
|
11
10
|
} from '../test/test-utils';
|
|
12
11
|
import { version } from '../../package.json';
|
|
13
12
|
import * as config from '../config';
|
|
@@ -19,9 +18,8 @@ const defaultViewConfig = {
|
|
|
19
18
|
},
|
|
20
19
|
};
|
|
21
20
|
const thoughtSpotHost = 'tshost';
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
const defaultParamsForPinboardEmbed = `hostAppUrl=local-host&viewPortHeight=768&viewPortWidth=1024&sdkVersion=${version}&hideAction=[%22${Action.ReportError}%22]`;
|
|
21
|
+
const defaultParams = `&hostAppUrl=local-host&viewPortHeight=768&viewPortWidth=1024&sdkVersion=${version}`;
|
|
22
|
+
const defaultParamsForPinboardEmbed = `hostAppUrl=local-host&viewPortHeight=768&viewPortWidth=1024&sdkVersion=${version}`;
|
|
25
23
|
const defaultParamsPost = '&isPinboardV2Enabled=false';
|
|
26
24
|
|
|
27
25
|
beforeAll(() => {
|
|
@@ -156,7 +154,7 @@ describe('App embed tests', () => {
|
|
|
156
154
|
appEmbed.render();
|
|
157
155
|
await executeAfterWait(() => {
|
|
158
156
|
expect(getIFrameSrc()).toBe(
|
|
159
|
-
`http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=false&profileAndHelpInNavBarHidden=false${
|
|
157
|
+
`http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=false&profileAndHelpInNavBarHidden=false${defaultParams}&disableAction=[%22save%22,%22update%22]&disableHint=Access%20denied&hideAction=[%22download%22]${defaultParamsPost}#/home`,
|
|
160
158
|
);
|
|
161
159
|
});
|
|
162
160
|
});
|
|
@@ -199,7 +197,6 @@ describe('App embed tests', () => {
|
|
|
199
197
|
});
|
|
200
198
|
|
|
201
199
|
test('navigateToPage with noReload should trigger the appropriate event', async () => {
|
|
202
|
-
mockMessageChannel();
|
|
203
200
|
const appEmbed = new AppEmbed(getRootEl(), {
|
|
204
201
|
frameParams: {
|
|
205
202
|
width: '100%',
|
|
@@ -218,7 +215,6 @@ describe('App embed tests', () => {
|
|
|
218
215
|
data: path,
|
|
219
216
|
}),
|
|
220
217
|
`http://${thoughtSpotHost}`,
|
|
221
|
-
expect.anything(),
|
|
222
218
|
);
|
|
223
219
|
|
|
224
220
|
appEmbed.navigateToPage(-1, true);
|
|
@@ -228,7 +224,6 @@ describe('App embed tests', () => {
|
|
|
228
224
|
data: -1,
|
|
229
225
|
}),
|
|
230
226
|
`http://${thoughtSpotHost}`,
|
|
231
|
-
expect.anything(),
|
|
232
227
|
);
|
|
233
228
|
});
|
|
234
229
|
|
package/src/embed/base.spec.ts
CHANGED
|
@@ -113,6 +113,24 @@ describe('Base TS Embed', () => {
|
|
|
113
113
|
});
|
|
114
114
|
});
|
|
115
115
|
|
|
116
|
+
test('handleAuth notifies for SDK auth success', (done) => {
|
|
117
|
+
jest.spyOn(auth, 'authenticate').mockResolvedValue(true);
|
|
118
|
+
const failureCallback = jest.fn();
|
|
119
|
+
const authEmitter = index.init({
|
|
120
|
+
thoughtSpotHost,
|
|
121
|
+
authType: index.AuthType.Basic,
|
|
122
|
+
username: 'test',
|
|
123
|
+
password: 'test',
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
authEmitter.on(auth.AuthStatus.FAILURE, failureCallback);
|
|
127
|
+
authEmitter.on(auth.AuthStatus.SDK_SUCCESS, (reason) => {
|
|
128
|
+
expect(failureCallback).not.toBeCalled();
|
|
129
|
+
expect(reason).toBe(undefined);
|
|
130
|
+
done();
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
|
|
116
134
|
test('Logout method should disable autoLogin', () => {
|
|
117
135
|
jest.spyOn(window, 'fetch').mockResolvedValue({
|
|
118
136
|
type: 'opaque',
|
package/src/embed/base.ts
CHANGED
|
@@ -32,6 +32,14 @@ export const getAuthPromise = (): Promise<boolean> => authPromise;
|
|
|
32
32
|
|
|
33
33
|
let authEE: EventEmitter;
|
|
34
34
|
|
|
35
|
+
export function notifyAuthSDKSuccess(): void {
|
|
36
|
+
if (!authEE) {
|
|
37
|
+
console.error('SDK not initialized');
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
authEE.emit(AuthStatus.SDK_SUCCESS);
|
|
41
|
+
}
|
|
42
|
+
|
|
35
43
|
export function notifyAuthSuccess(): void {
|
|
36
44
|
if (!authEE) {
|
|
37
45
|
console.error('SDK not initialized');
|
|
@@ -64,6 +72,8 @@ export const handleAuth = (): Promise<boolean> => {
|
|
|
64
72
|
(isLoggedIn) => {
|
|
65
73
|
if (!isLoggedIn) {
|
|
66
74
|
notifyAuthFailure(AuthFailureType.SDK);
|
|
75
|
+
} else {
|
|
76
|
+
notifyAuthSDKSuccess();
|
|
67
77
|
}
|
|
68
78
|
},
|
|
69
79
|
() => {
|
package/src/embed/embed.spec.ts
CHANGED
|
@@ -20,7 +20,6 @@ beforeAll(() => {
|
|
|
20
20
|
thoughtSpotHost,
|
|
21
21
|
authType: AuthType.None,
|
|
22
22
|
});
|
|
23
|
-
spyOn(window, 'alert');
|
|
24
23
|
});
|
|
25
24
|
|
|
26
25
|
describe('test view config', () => {
|
|
@@ -49,7 +48,6 @@ describe('test view config', () => {
|
|
|
49
48
|
});
|
|
50
49
|
|
|
51
50
|
test('trying to register event handler after render should throw error', async () => {
|
|
52
|
-
spyOn(console, 'error');
|
|
53
51
|
const onErrorSpy = jest.fn();
|
|
54
52
|
const searchEmbed = new SearchEmbed(getRootEl(), defaultViewConfig);
|
|
55
53
|
searchEmbed
|
package/src/embed/events.spec.ts
CHANGED
|
@@ -15,7 +15,6 @@ import {
|
|
|
15
15
|
getIFrameEl,
|
|
16
16
|
getRootEl,
|
|
17
17
|
getRootEl2,
|
|
18
|
-
mockMessageChannel,
|
|
19
18
|
postMessageToParent,
|
|
20
19
|
} from '../test/test-utils';
|
|
21
20
|
import { LiveboardViewConfig } from './liveboard';
|
|
@@ -34,7 +33,6 @@ beforeAll(() => {
|
|
|
34
33
|
thoughtSpotHost,
|
|
35
34
|
authType: AuthType.None,
|
|
36
35
|
});
|
|
37
|
-
spyOn(window, 'alert');
|
|
38
36
|
});
|
|
39
37
|
|
|
40
38
|
describe('test communication between host app and ThoughtSpot', () => {
|
|
@@ -72,7 +70,6 @@ describe('test communication between host app and ThoughtSpot', () => {
|
|
|
72
70
|
});
|
|
73
71
|
|
|
74
72
|
test('should trigger event to ThoughtSpot app', (done) => {
|
|
75
|
-
mockMessageChannel();
|
|
76
73
|
const searchEmbed = new SearchEmbed(getRootEl(), {});
|
|
77
74
|
searchEmbed.render();
|
|
78
75
|
setTimeout(() => {
|
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
import { LiveboardEmbed, LiveboardViewConfig } from './liveboard';
|
|
2
2
|
import { init } from '../index';
|
|
3
|
-
import {
|
|
4
|
-
Action,
|
|
5
|
-
AuthType,
|
|
6
|
-
EmbedEvent,
|
|
7
|
-
HostEvent,
|
|
8
|
-
RuntimeFilterOp,
|
|
9
|
-
} from '../types';
|
|
3
|
+
import { Action, AuthType, EmbedEvent, RuntimeFilterOp } from '../types';
|
|
10
4
|
import {
|
|
11
5
|
executeAfterWait,
|
|
12
6
|
getDocumentBody,
|
|
@@ -14,7 +8,6 @@ import {
|
|
|
14
8
|
getRootEl,
|
|
15
9
|
} from '../test/test-utils';
|
|
16
10
|
import { version } from '../../package.json';
|
|
17
|
-
import * as processTriggerInstance from '../utils/processTrigger';
|
|
18
11
|
|
|
19
12
|
const defaultViewConfig = {
|
|
20
13
|
frameParams: {
|
|
@@ -25,8 +18,7 @@ const defaultViewConfig = {
|
|
|
25
18
|
const liveboardId = 'eca215d4-0d2c-4a55-90e3-d81ef6848ae0';
|
|
26
19
|
const vizId = '6e73f724-660e-11eb-ae93-0242ac130002';
|
|
27
20
|
const thoughtSpotHost = 'tshost';
|
|
28
|
-
const
|
|
29
|
-
const defaultParams = `${defaultParamsSansHideAction}&hideAction=[%22${Action.ReportError}%22]`;
|
|
21
|
+
const defaultParams = `&hostAppUrl=local-host&viewPortHeight=768&viewPortWidth=1024&sdkVersion=${version}`;
|
|
30
22
|
const prefixParams = '&isLiveboardEmbed=true&isPinboardV2Enabled=false';
|
|
31
23
|
|
|
32
24
|
beforeAll(() => {
|
|
@@ -68,7 +60,7 @@ describe('Liveboard/viz embed tests', () => {
|
|
|
68
60
|
liveboardEmbed.render();
|
|
69
61
|
await executeAfterWait(() => {
|
|
70
62
|
expect(getIFrameSrc()).toBe(
|
|
71
|
-
`http://${thoughtSpotHost}/?embedApp=true${
|
|
63
|
+
`http://${thoughtSpotHost}/?embedApp=true${defaultParams}&disableAction=[%22${Action.DownloadAsCsv}%22,%22${Action.DownloadAsPdf}%22,%22${Action.DownloadAsXlsx}%22]&disableHint=Action%20denied${prefixParams}#/embed/viz/${liveboardId}`,
|
|
72
64
|
);
|
|
73
65
|
});
|
|
74
66
|
});
|
|
@@ -86,7 +78,7 @@ describe('Liveboard/viz embed tests', () => {
|
|
|
86
78
|
liveboardEmbed.render();
|
|
87
79
|
await executeAfterWait(() => {
|
|
88
80
|
expect(getIFrameSrc()).toBe(
|
|
89
|
-
`http://${thoughtSpotHost}/?embedApp=true${
|
|
81
|
+
`http://${thoughtSpotHost}/?embedApp=true${defaultParams}&hideAction=[%22${Action.DownloadAsCsv}%22,%22${Action.DownloadAsPdf}%22,%22${Action.DownloadAsXlsx}%22]${prefixParams}#/embed/viz/${liveboardId}`,
|
|
90
82
|
);
|
|
91
83
|
});
|
|
92
84
|
});
|
|
@@ -217,19 +209,4 @@ describe('Liveboard/viz embed tests', () => {
|
|
|
217
209
|
);
|
|
218
210
|
});
|
|
219
211
|
});
|
|
220
|
-
test('should process the trigger, for vizEmbed', async () => {
|
|
221
|
-
const mockProcessTrigger = spyOn(
|
|
222
|
-
processTriggerInstance,
|
|
223
|
-
'processTrigger',
|
|
224
|
-
);
|
|
225
|
-
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
226
|
-
enableVizTransformations: true,
|
|
227
|
-
...defaultViewConfig,
|
|
228
|
-
vizId: '1234',
|
|
229
|
-
liveboardId,
|
|
230
|
-
} as LiveboardViewConfig);
|
|
231
|
-
liveboardEmbed.render();
|
|
232
|
-
const result = await liveboardEmbed.trigger(HostEvent.Pin);
|
|
233
|
-
expect(mockProcessTrigger).toBeCalled();
|
|
234
|
-
});
|
|
235
212
|
});
|
package/src/embed/liveboard.ts
CHANGED
|
@@ -194,19 +194,6 @@ export class LiveboardEmbed extends V1Embed {
|
|
|
194
194
|
}
|
|
195
195
|
};
|
|
196
196
|
|
|
197
|
-
/**
|
|
198
|
-
* Triggers an event to the embedded app
|
|
199
|
-
* @param messageType The event type
|
|
200
|
-
* @param data The payload to send with the message
|
|
201
|
-
*/
|
|
202
|
-
public trigger(messageType: HostEvent, data: any = {}): Promise<any> {
|
|
203
|
-
const dataWithVizId = data;
|
|
204
|
-
if (this.viewConfig.vizId) {
|
|
205
|
-
dataWithVizId.vizId = this.viewConfig.vizId;
|
|
206
|
-
}
|
|
207
|
-
return super.trigger(messageType, dataWithVizId);
|
|
208
|
-
}
|
|
209
|
-
|
|
210
197
|
/**
|
|
211
198
|
* Render an embedded ThoughtSpot Liveboard or visualization
|
|
212
199
|
* @param renderOptions An object specifying the Liveboard ID,
|
|
@@ -18,8 +18,7 @@ const defaultViewConfig = {
|
|
|
18
18
|
const pinboardId = 'eca215d4-0d2c-4a55-90e3-d81ef6848ae0';
|
|
19
19
|
const vizId = '6e73f724-660e-11eb-ae93-0242ac130002';
|
|
20
20
|
const thoughtSpotHost = 'tshost';
|
|
21
|
-
const
|
|
22
|
-
const defaultParams = `${defaultParamsWithoutHideActions}&hideAction=[%22${Action.ReportError}%22]`;
|
|
21
|
+
const defaultParams = `&hostAppUrl=local-host&viewPortHeight=768&viewPortWidth=1024&sdkVersion=${version}`;
|
|
23
22
|
const prefixParams = '&isLiveboardEmbed=true&isPinboardV2Enabled=false';
|
|
24
23
|
|
|
25
24
|
beforeAll(() => {
|
|
@@ -61,7 +60,7 @@ describe('Pinboard/viz embed tests', () => {
|
|
|
61
60
|
pinboardEmbed.render();
|
|
62
61
|
await executeAfterWait(() => {
|
|
63
62
|
expect(getIFrameSrc()).toBe(
|
|
64
|
-
`http://${thoughtSpotHost}/?embedApp=true${
|
|
63
|
+
`http://${thoughtSpotHost}/?embedApp=true${defaultParams}&disableAction=[%22${Action.DownloadAsCsv}%22,%22${Action.DownloadAsPdf}%22,%22${Action.DownloadAsXlsx}%22]&disableHint=Action%20denied${prefixParams}#/embed/viz/${pinboardId}`,
|
|
65
64
|
);
|
|
66
65
|
});
|
|
67
66
|
});
|
|
@@ -79,7 +78,7 @@ describe('Pinboard/viz embed tests', () => {
|
|
|
79
78
|
pinboardEmbed.render();
|
|
80
79
|
await executeAfterWait(() => {
|
|
81
80
|
expect(getIFrameSrc()).toBe(
|
|
82
|
-
`http://${thoughtSpotHost}/?embedApp=true${
|
|
81
|
+
`http://${thoughtSpotHost}/?embedApp=true${defaultParams}&hideAction=[%22${Action.DownloadAsCsv}%22,%22${Action.DownloadAsPdf}%22,%22${Action.DownloadAsXlsx}%22]${prefixParams}#/embed/viz/${pinboardId}`,
|
|
83
82
|
);
|
|
84
83
|
});
|
|
85
84
|
});
|
package/src/embed/search.spec.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { SearchEmbed, HiddenActionItemByDefaultForSearchEmbed } from './search';
|
|
2
|
-
import * as authInstance from '../auth';
|
|
3
2
|
import { init } from '../index';
|
|
4
3
|
import { Action, AuthType } from '../types';
|
|
5
4
|
import {
|
|
@@ -21,10 +20,7 @@ const answerId = 'eca215d4-0d2c-4a55-90e3-d81ef6848ae0';
|
|
|
21
20
|
const thoughtSpotHost = 'tshost';
|
|
22
21
|
const defaultParams = `hostAppUrl=local-host&viewPortHeight=768&viewPortWidth=1024&sdkVersion=${version}`;
|
|
23
22
|
const hideBydefault = `&hideAction=${fixedEncodeURI(
|
|
24
|
-
JSON.stringify(
|
|
25
|
-
Action.ReportError,
|
|
26
|
-
...HiddenActionItemByDefaultForSearchEmbed,
|
|
27
|
-
]),
|
|
23
|
+
JSON.stringify(HiddenActionItemByDefaultForSearchEmbed),
|
|
28
24
|
)}`;
|
|
29
25
|
const defaultParamsWithHiddenActions = defaultParams + hideBydefault;
|
|
30
26
|
const prefixParams = '&isSearchEmbed=true';
|
|
@@ -34,15 +30,11 @@ beforeAll(() => {
|
|
|
34
30
|
thoughtSpotHost,
|
|
35
31
|
authType: AuthType.None,
|
|
36
32
|
});
|
|
37
|
-
spyOn(window, 'alert');
|
|
38
33
|
});
|
|
39
34
|
|
|
40
35
|
describe('Search embed tests', () => {
|
|
41
36
|
beforeEach(() => {
|
|
42
37
|
document.body.innerHTML = getDocumentBody();
|
|
43
|
-
jest.spyOn(authInstance, 'getReleaseVersion').mockReturnValue(
|
|
44
|
-
'7.4.0.sw',
|
|
45
|
-
);
|
|
46
38
|
});
|
|
47
39
|
|
|
48
40
|
test('should render', async () => {
|
|
@@ -205,7 +197,6 @@ describe('Search embed tests', () => {
|
|
|
205
197
|
searchEmbed.render();
|
|
206
198
|
const hideActionUrl = fixedEncodeURI(
|
|
207
199
|
JSON.stringify([
|
|
208
|
-
Action.ReportError,
|
|
209
200
|
...hiddenActionsForSearch,
|
|
210
201
|
...HiddenActionItemByDefaultForSearchEmbed,
|
|
211
202
|
]),
|
|
@@ -229,7 +220,6 @@ describe('Search embed tests', () => {
|
|
|
229
220
|
searchEmbed.render();
|
|
230
221
|
const hideActionUrl = fixedEncodeURI(
|
|
231
222
|
JSON.stringify([
|
|
232
|
-
Action.ReportError,
|
|
233
223
|
...hiddenActionsForSearch,
|
|
234
224
|
...HiddenActionItemByDefaultForSearchEmbed,
|
|
235
225
|
]),
|