@thoughtspot/visual-embed-sdk 1.45.0 → 1.45.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/cjs/package.json +2 -2
- package/cjs/src/authToken.d.ts +1 -1
- package/cjs/src/authToken.d.ts.map +1 -1
- package/cjs/src/authToken.js +2 -2
- package/cjs/src/authToken.js.map +1 -1
- package/cjs/src/authToken.spec.js +71 -0
- package/cjs/src/authToken.spec.js.map +1 -1
- package/cjs/src/embed/hostEventClient/contracts.d.ts +3 -3
- package/cjs/src/embed/hostEventClient/contracts.d.ts.map +1 -1
- package/cjs/src/embed/hostEventClient/contracts.js.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.d.ts +8 -8
- package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.js +18 -18
- package/cjs/src/embed/hostEventClient/host-event-client.js.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.spec.js +7 -7
- package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts +2 -2
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +2 -2
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +1 -1
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/ts-embed.d.ts +23 -2
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +64 -22
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +138 -19
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/index.d.ts +2 -2
- package/cjs/src/index.d.ts.map +1 -1
- package/cjs/src/index.js +3 -2
- package/cjs/src/index.js.map +1 -1
- package/cjs/src/types.d.ts +164 -2
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +43 -1
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/processTrigger.d.ts +3 -2
- package/cjs/src/utils/processTrigger.d.ts.map +1 -1
- package/cjs/src/utils/processTrigger.js +4 -2
- package/cjs/src/utils/processTrigger.js.map +1 -1
- package/cjs/src/utils.d.ts +5 -1
- package/cjs/src/utils.d.ts.map +1 -1
- package/cjs/src/utils.js +8 -1
- package/cjs/src/utils.js.map +1 -1
- package/dist/{index-Dk-SLdNk.js → index-BdkKLLo1.js} +1 -1
- package/dist/src/authToken.d.ts +1 -1
- package/dist/src/authToken.d.ts.map +1 -1
- package/dist/src/embed/hostEventClient/contracts.d.ts +3 -3
- package/dist/src/embed/hostEventClient/contracts.d.ts.map +1 -1
- package/dist/src/embed/hostEventClient/host-event-client.d.ts +8 -8
- package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +2 -2
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts +23 -2
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.spec.d.ts.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/types.d.ts +164 -2
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/processTrigger.d.ts +3 -2
- package/dist/src/utils/processTrigger.d.ts.map +1 -1
- package/dist/src/utils.d.ts +5 -1
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +140 -49
- package/dist/tsembed-react.js +139 -48
- package/dist/tsembed.es.js +155 -64
- package/dist/tsembed.js +29640 -29549
- package/dist/visual-embed-sdk-react-full.d.ts +196 -13
- package/dist/visual-embed-sdk-react.d.ts +196 -13
- package/dist/visual-embed-sdk.d.ts +196 -13
- package/lib/package.json +2 -2
- package/lib/src/authToken.d.ts +1 -1
- package/lib/src/authToken.d.ts.map +1 -1
- package/lib/src/authToken.js +2 -2
- package/lib/src/authToken.js.map +1 -1
- package/lib/src/authToken.spec.js +72 -1
- package/lib/src/authToken.spec.js.map +1 -1
- package/lib/src/embed/hostEventClient/contracts.d.ts +3 -3
- package/lib/src/embed/hostEventClient/contracts.d.ts.map +1 -1
- package/lib/src/embed/hostEventClient/contracts.js.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.d.ts +8 -8
- package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.js +18 -18
- package/lib/src/embed/hostEventClient/host-event-client.js.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.spec.js +7 -7
- package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +2 -2
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +2 -2
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +1 -1
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts +23 -2
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +64 -22
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +139 -20
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/index.d.ts +2 -2
- package/lib/src/index.d.ts.map +1 -1
- package/lib/src/index.js +2 -2
- package/lib/src/index.js.map +1 -1
- package/lib/src/types.d.ts +164 -2
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +42 -0
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/processTrigger.d.ts +3 -2
- package/lib/src/utils/processTrigger.d.ts.map +1 -1
- package/lib/src/utils/processTrigger.js +4 -2
- package/lib/src/utils/processTrigger.js.map +1 -1
- package/lib/src/utils.d.ts +5 -1
- package/lib/src/utils.d.ts.map +1 -1
- package/lib/src/utils.js +6 -0
- package/lib/src/utils.js.map +1 -1
- package/package.json +2 -2
- package/src/authToken.spec.ts +91 -2
- package/src/authToken.ts +2 -2
- package/src/embed/hostEventClient/contracts.ts +4 -4
- package/src/embed/hostEventClient/host-event-client.spec.ts +7 -1
- package/src/embed/hostEventClient/host-event-client.ts +22 -11
- package/src/embed/liveboard.spec.ts +1 -1
- package/src/embed/liveboard.ts +5 -3
- package/src/embed/ts-embed.spec.ts +184 -8
- package/src/embed/ts-embed.ts +81 -24
- package/src/index.ts +2 -0
- package/src/types.ts +171 -0
- package/src/utils/processTrigger.ts +6 -3
- package/src/utils.ts +8 -0
package/src/types.ts
CHANGED
|
@@ -1120,6 +1120,47 @@ export interface BaseViewConfig extends ApiInterceptFlags {
|
|
|
1120
1120
|
* ```
|
|
1121
1121
|
*/
|
|
1122
1122
|
customActions?: CustomAction[];
|
|
1123
|
+
|
|
1124
|
+
|
|
1125
|
+
/**
|
|
1126
|
+
* Refresh the auth token when the token is near expiry.
|
|
1127
|
+
* @version SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl
|
|
1128
|
+
* @example
|
|
1129
|
+
* ```js
|
|
1130
|
+
* const embed = new AppEmbed('#tsEmbed', {
|
|
1131
|
+
* ... // other embed view config
|
|
1132
|
+
* refreshAuthTokenOnNearExpiry: true,
|
|
1133
|
+
* })
|
|
1134
|
+
* ```
|
|
1135
|
+
*/
|
|
1136
|
+
refreshAuthTokenOnNearExpiry?: boolean;
|
|
1137
|
+
/**
|
|
1138
|
+
* This flag skips payload validation so events can be processed even if the payload is old, incomplete, or from a trusted system.
|
|
1139
|
+
* @default false
|
|
1140
|
+
* @version SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl
|
|
1141
|
+
* @example
|
|
1142
|
+
* ```js
|
|
1143
|
+
* const embed = new AppEmbed('#tsEmbed', {
|
|
1144
|
+
* ... // other embed view config
|
|
1145
|
+
* shouldBypassPayloadValidation:true,
|
|
1146
|
+
* })
|
|
1147
|
+
* ```
|
|
1148
|
+
*/
|
|
1149
|
+
shouldBypassPayloadValidation?: boolean;
|
|
1150
|
+
|
|
1151
|
+
/**
|
|
1152
|
+
* Flag to use host events v2. This is used to enable the new host events v2 API.
|
|
1153
|
+
* @default false
|
|
1154
|
+
* @version SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl
|
|
1155
|
+
* @example
|
|
1156
|
+
* ```js
|
|
1157
|
+
* const embed = new AppEmbed('#tsEmbed', {
|
|
1158
|
+
* ... // other embed view config
|
|
1159
|
+
* useHostEventsV2:true,
|
|
1160
|
+
* })
|
|
1161
|
+
* ```
|
|
1162
|
+
*/
|
|
1163
|
+
useHostEventsV2?: boolean;
|
|
1123
1164
|
}
|
|
1124
1165
|
|
|
1125
1166
|
/**
|
|
@@ -3162,6 +3203,19 @@ export enum EmbedEvent {
|
|
|
3162
3203
|
* @version SDK: 1.43.0 | ThoughtSpot: 10.15.0.cl
|
|
3163
3204
|
*/
|
|
3164
3205
|
ApiIntercept = 'ApiIntercept',
|
|
3206
|
+
|
|
3207
|
+
/**
|
|
3208
|
+
* @hidden
|
|
3209
|
+
* Emitted when the auth token is about to get expired and needs to be refreshed.
|
|
3210
|
+
* @example
|
|
3211
|
+
* ```js
|
|
3212
|
+
* embed.on(EmbedEvent.RefreshAuthToken, (payload) => {
|
|
3213
|
+
* console.log('payload', payload);
|
|
3214
|
+
* })
|
|
3215
|
+
* ```
|
|
3216
|
+
* @version SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl
|
|
3217
|
+
*/
|
|
3218
|
+
RefreshAuthToken = 'RefreshAuthToken',
|
|
3165
3219
|
}
|
|
3166
3220
|
|
|
3167
3221
|
/**
|
|
@@ -4547,6 +4601,18 @@ export enum HostEvent {
|
|
|
4547
4601
|
* @version SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl
|
|
4548
4602
|
*/
|
|
4549
4603
|
StartNewSpotterConversation = 'StartNewSpotterConversation',
|
|
4604
|
+
|
|
4605
|
+
/**
|
|
4606
|
+
* @hidden
|
|
4607
|
+
* Get the current context of the embedded page.
|
|
4608
|
+
*
|
|
4609
|
+
* @example
|
|
4610
|
+
* ```js
|
|
4611
|
+
* const context = await liveboardEmbed.trigger(HostEvent.GetPageContext);
|
|
4612
|
+
* ```
|
|
4613
|
+
* @version SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl
|
|
4614
|
+
*/
|
|
4615
|
+
GetPageContext = 'GetPageContext',
|
|
4550
4616
|
}
|
|
4551
4617
|
|
|
4552
4618
|
/**
|
|
@@ -6507,6 +6573,26 @@ export interface EmbedErrorDetailsEvent {
|
|
|
6507
6573
|
/** Additional context-specific for backward compatibility */
|
|
6508
6574
|
[key: string]: any;
|
|
6509
6575
|
}
|
|
6576
|
+
|
|
6577
|
+
export enum ContextType {
|
|
6578
|
+
/**
|
|
6579
|
+
* Search answer context for search page or edit viz dialog on liveboard page.
|
|
6580
|
+
*/
|
|
6581
|
+
Search = 'search-answer',
|
|
6582
|
+
/**
|
|
6583
|
+
* Liveboard context for liveboard page.
|
|
6584
|
+
*/
|
|
6585
|
+
Liveboard = 'liveboard',
|
|
6586
|
+
/**
|
|
6587
|
+
* Answer context for explore modal/page on liveboard page.
|
|
6588
|
+
*/
|
|
6589
|
+
Answer = 'answer',
|
|
6590
|
+
/**
|
|
6591
|
+
* Spotter context for spotter modal/page.
|
|
6592
|
+
*/
|
|
6593
|
+
Spotter = 'spotter',
|
|
6594
|
+
}
|
|
6595
|
+
|
|
6510
6596
|
export interface DefaultAppInitData {
|
|
6511
6597
|
customisations: CustomisationsInterface;
|
|
6512
6598
|
authToken: string;
|
|
@@ -6584,3 +6670,88 @@ export type ApiInterceptFlags = {
|
|
|
6584
6670
|
*/
|
|
6585
6671
|
interceptTimeout?: number;
|
|
6586
6672
|
};
|
|
6673
|
+
|
|
6674
|
+
/**
|
|
6675
|
+
* Object IDs for the embedded component.
|
|
6676
|
+
* @version SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl
|
|
6677
|
+
*/
|
|
6678
|
+
export interface ObjectIds {
|
|
6679
|
+
/**
|
|
6680
|
+
* Liveboard ID.
|
|
6681
|
+
*/
|
|
6682
|
+
liveboardId?: string;
|
|
6683
|
+
/**
|
|
6684
|
+
* Answer ID.
|
|
6685
|
+
*/
|
|
6686
|
+
answerId?: string;
|
|
6687
|
+
/**
|
|
6688
|
+
* Viz IDs.
|
|
6689
|
+
*/
|
|
6690
|
+
vizIds?: string[];
|
|
6691
|
+
/**
|
|
6692
|
+
* Data model IDs.
|
|
6693
|
+
*/
|
|
6694
|
+
dataModelIds?: string[];
|
|
6695
|
+
/**
|
|
6696
|
+
* Modal title.
|
|
6697
|
+
*/
|
|
6698
|
+
modalTitle?: string;
|
|
6699
|
+
}
|
|
6700
|
+
|
|
6701
|
+
/**
|
|
6702
|
+
* Context object for the embedded component.
|
|
6703
|
+
* @example
|
|
6704
|
+
* ```js
|
|
6705
|
+
* const context = await embed.getCurrentContext();
|
|
6706
|
+
* console.log(context);
|
|
6707
|
+
* {
|
|
6708
|
+
* stack: [
|
|
6709
|
+
* {
|
|
6710
|
+
* name: 'Liveboard',
|
|
6711
|
+
* type: ContextType.Liveboard,
|
|
6712
|
+
* objectIds: {
|
|
6713
|
+
* liveboardId: '123',
|
|
6714
|
+
* },
|
|
6715
|
+
* },
|
|
6716
|
+
* ],
|
|
6717
|
+
* currentContext: {
|
|
6718
|
+
* name: 'Liveboard',
|
|
6719
|
+
* type: ContextType.Liveboard,
|
|
6720
|
+
* objectIds: {
|
|
6721
|
+
* liveboardId: '123',
|
|
6722
|
+
* },
|
|
6723
|
+
* },
|
|
6724
|
+
* }
|
|
6725
|
+
* ```
|
|
6726
|
+
* @version SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl
|
|
6727
|
+
*/
|
|
6728
|
+
export interface ContextObject {
|
|
6729
|
+
/**
|
|
6730
|
+
* Stack of context objects.
|
|
6731
|
+
*/
|
|
6732
|
+
stack: Array<{
|
|
6733
|
+
/**
|
|
6734
|
+
* Name of the context object.
|
|
6735
|
+
*/
|
|
6736
|
+
name: string;
|
|
6737
|
+
/**
|
|
6738
|
+
* Type of the context object.
|
|
6739
|
+
*/
|
|
6740
|
+
type: ContextType;
|
|
6741
|
+
/**
|
|
6742
|
+
* Object IDs of the context object.
|
|
6743
|
+
*/
|
|
6744
|
+
objectIds: ObjectIds;
|
|
6745
|
+
}>
|
|
6746
|
+
/**
|
|
6747
|
+
* Current context object.
|
|
6748
|
+
*/
|
|
6749
|
+
currentContext: {
|
|
6750
|
+
/**
|
|
6751
|
+
* Name of the current context object.
|
|
6752
|
+
*/
|
|
6753
|
+
name: string;
|
|
6754
|
+
type: ContextType;
|
|
6755
|
+
objectIds: ObjectIds;
|
|
6756
|
+
}
|
|
6757
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ERROR_MESSAGE } from '../errors';
|
|
2
|
-
import { HostEvent, MessagePayload } from '../types';
|
|
2
|
+
import { ContextType, HostEvent, MessagePayload } from '../types';
|
|
3
3
|
import { logger } from '../utils/logger';
|
|
4
4
|
import { handlePresentEvent } from '../utils';
|
|
5
5
|
import { getEmbedConfig } from '../embed/embedConfig';
|
|
@@ -22,12 +22,13 @@ export const reload = (iFrame: HTMLIFrameElement) => {
|
|
|
22
22
|
* @param message
|
|
23
23
|
* @param message.type
|
|
24
24
|
* @param message.data
|
|
25
|
+
* @param message.context
|
|
25
26
|
* @param thoughtSpotHost
|
|
26
27
|
* @param channel
|
|
27
28
|
*/
|
|
28
29
|
function postIframeMessage(
|
|
29
30
|
iFrame: HTMLIFrameElement,
|
|
30
|
-
message: { type: HostEvent; data: any },
|
|
31
|
+
message: { type: HostEvent; data: any, context?: any },
|
|
31
32
|
thoughtSpotHost: string,
|
|
32
33
|
channel?: MessageChannel,
|
|
33
34
|
) {
|
|
@@ -42,12 +43,14 @@ export const TRIGGER_TIMEOUT = 30000;
|
|
|
42
43
|
* @param messageType
|
|
43
44
|
* @param thoughtSpotHost
|
|
44
45
|
* @param data
|
|
46
|
+
* @param context
|
|
45
47
|
*/
|
|
46
48
|
export function processTrigger(
|
|
47
49
|
iFrame: HTMLIFrameElement,
|
|
48
50
|
messageType: HostEvent,
|
|
49
51
|
thoughtSpotHost: string,
|
|
50
52
|
data: any,
|
|
53
|
+
context?: ContextType,
|
|
51
54
|
): Promise<any> {
|
|
52
55
|
return new Promise<any>((res, rej) => {
|
|
53
56
|
if (messageType === HostEvent.Reload) {
|
|
@@ -83,6 +86,6 @@ export function processTrigger(
|
|
|
83
86
|
res(new Error(ERROR_MESSAGE.TRIGGER_TIMED_OUT));
|
|
84
87
|
}, TRIGGER_TIMEOUT);
|
|
85
88
|
|
|
86
|
-
return postIframeMessage(iFrame, { type: messageType, data }, thoughtSpotHost, channel);
|
|
89
|
+
return postIframeMessage(iFrame, { type: messageType, data, context }, thoughtSpotHost, channel);
|
|
87
90
|
});
|
|
88
91
|
}
|
package/src/utils.ts
CHANGED
|
@@ -15,6 +15,7 @@ import {
|
|
|
15
15
|
DOMSelector,
|
|
16
16
|
RuntimeParameter,
|
|
17
17
|
AllEmbedViewConfig,
|
|
18
|
+
BaseViewConfig,
|
|
18
19
|
} from './types';
|
|
19
20
|
import { logger } from './utils/logger';
|
|
20
21
|
import { ERROR_MESSAGE } from './errors';
|
|
@@ -560,6 +561,13 @@ export const formatTemplate = (template: string, values: Record<string, any>): s
|
|
|
560
561
|
});
|
|
561
562
|
};
|
|
562
563
|
|
|
564
|
+
export const getHostEventsConfig = (viewConfig: BaseViewConfig) => {
|
|
565
|
+
return {
|
|
566
|
+
shouldBypassPayloadValidation: viewConfig.shouldBypassPayloadValidation,
|
|
567
|
+
useHostEventsV2: viewConfig.useHostEventsV2,
|
|
568
|
+
};
|
|
569
|
+
}
|
|
570
|
+
|
|
563
571
|
/**
|
|
564
572
|
* Check if the window is undefined
|
|
565
573
|
* If the window is undefined, it means the code is running in a SSR environment.
|