@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
|
@@ -1976,6 +1976,44 @@ export interface BaseViewConfig extends ApiInterceptFlags {
|
|
|
1976
1976
|
* ```
|
|
1977
1977
|
*/
|
|
1978
1978
|
customActions?: CustomAction[];
|
|
1979
|
+
/**
|
|
1980
|
+
* Refresh the auth token when the token is near expiry.
|
|
1981
|
+
* @version SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl
|
|
1982
|
+
* @example
|
|
1983
|
+
* ```js
|
|
1984
|
+
* const embed = new AppEmbed('#tsEmbed', {
|
|
1985
|
+
* ... // other embed view config
|
|
1986
|
+
* refreshAuthTokenOnNearExpiry: true,
|
|
1987
|
+
* })
|
|
1988
|
+
* ```
|
|
1989
|
+
*/
|
|
1990
|
+
refreshAuthTokenOnNearExpiry?: boolean;
|
|
1991
|
+
/**
|
|
1992
|
+
* This flag skips payload validation so events can be processed even if the payload is old, incomplete, or from a trusted system.
|
|
1993
|
+
* @default false
|
|
1994
|
+
* @version SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl
|
|
1995
|
+
* @example
|
|
1996
|
+
* ```js
|
|
1997
|
+
* const embed = new AppEmbed('#tsEmbed', {
|
|
1998
|
+
* ... // other embed view config
|
|
1999
|
+
* shouldBypassPayloadValidation:true,
|
|
2000
|
+
* })
|
|
2001
|
+
* ```
|
|
2002
|
+
*/
|
|
2003
|
+
shouldBypassPayloadValidation?: boolean;
|
|
2004
|
+
/**
|
|
2005
|
+
* Flag to use host events v2. This is used to enable the new host events v2 API.
|
|
2006
|
+
* @default false
|
|
2007
|
+
* @version SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl
|
|
2008
|
+
* @example
|
|
2009
|
+
* ```js
|
|
2010
|
+
* const embed = new AppEmbed('#tsEmbed', {
|
|
2011
|
+
* ... // other embed view config
|
|
2012
|
+
* useHostEventsV2:true,
|
|
2013
|
+
* })
|
|
2014
|
+
* ```
|
|
2015
|
+
*/
|
|
2016
|
+
useHostEventsV2?: boolean;
|
|
1979
2017
|
}
|
|
1980
2018
|
/**
|
|
1981
2019
|
* The configuration object for Home page embeds configs.
|
|
@@ -3973,7 +4011,19 @@ export declare enum EmbedEvent {
|
|
|
3973
4011
|
* ```
|
|
3974
4012
|
* @version SDK: 1.43.0 | ThoughtSpot: 10.15.0.cl
|
|
3975
4013
|
*/
|
|
3976
|
-
ApiIntercept = "ApiIntercept"
|
|
4014
|
+
ApiIntercept = "ApiIntercept",
|
|
4015
|
+
/**
|
|
4016
|
+
* @hidden
|
|
4017
|
+
* Emitted when the auth token is about to get expired and needs to be refreshed.
|
|
4018
|
+
* @example
|
|
4019
|
+
* ```js
|
|
4020
|
+
* embed.on(EmbedEvent.RefreshAuthToken, (payload) => {
|
|
4021
|
+
* console.log('payload', payload);
|
|
4022
|
+
* })
|
|
4023
|
+
* ```
|
|
4024
|
+
* @version SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl
|
|
4025
|
+
*/
|
|
4026
|
+
RefreshAuthToken = "RefreshAuthToken"
|
|
3977
4027
|
}
|
|
3978
4028
|
/**
|
|
3979
4029
|
* Event types that can be triggered by the host application
|
|
@@ -5355,7 +5405,18 @@ export declare enum HostEvent {
|
|
|
5355
5405
|
* ```
|
|
5356
5406
|
* @version SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl
|
|
5357
5407
|
*/
|
|
5358
|
-
StartNewSpotterConversation = "StartNewSpotterConversation"
|
|
5408
|
+
StartNewSpotterConversation = "StartNewSpotterConversation",
|
|
5409
|
+
/**
|
|
5410
|
+
* @hidden
|
|
5411
|
+
* Get the current context of the embedded page.
|
|
5412
|
+
*
|
|
5413
|
+
* @example
|
|
5414
|
+
* ```js
|
|
5415
|
+
* const context = await liveboardEmbed.trigger(HostEvent.GetPageContext);
|
|
5416
|
+
* ```
|
|
5417
|
+
* @version SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl
|
|
5418
|
+
*/
|
|
5419
|
+
GetPageContext = "GetPageContext"
|
|
5359
5420
|
}
|
|
5360
5421
|
/**
|
|
5361
5422
|
* The different visual modes that the data sources panel within
|
|
@@ -7123,6 +7184,24 @@ export interface EmbedErrorDetailsEvent {
|
|
|
7123
7184
|
/** Additional context-specific for backward compatibility */
|
|
7124
7185
|
[key: string]: any;
|
|
7125
7186
|
}
|
|
7187
|
+
export declare enum ContextType {
|
|
7188
|
+
/**
|
|
7189
|
+
* Search answer context for search page or edit viz dialog on liveboard page.
|
|
7190
|
+
*/
|
|
7191
|
+
Search = "search-answer",
|
|
7192
|
+
/**
|
|
7193
|
+
* Liveboard context for liveboard page.
|
|
7194
|
+
*/
|
|
7195
|
+
Liveboard = "liveboard",
|
|
7196
|
+
/**
|
|
7197
|
+
* Answer context for explore modal/page on liveboard page.
|
|
7198
|
+
*/
|
|
7199
|
+
Answer = "answer",
|
|
7200
|
+
/**
|
|
7201
|
+
* Spotter context for spotter modal/page.
|
|
7202
|
+
*/
|
|
7203
|
+
Spotter = "spotter"
|
|
7204
|
+
}
|
|
7126
7205
|
export interface DefaultAppInitData {
|
|
7127
7206
|
customisations: CustomisationsInterface;
|
|
7128
7207
|
authToken: string;
|
|
@@ -7198,6 +7277,89 @@ export type ApiInterceptFlags = {
|
|
|
7198
7277
|
*/
|
|
7199
7278
|
interceptTimeout?: number;
|
|
7200
7279
|
};
|
|
7280
|
+
/**
|
|
7281
|
+
* Object IDs for the embedded component.
|
|
7282
|
+
* @version SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl
|
|
7283
|
+
*/
|
|
7284
|
+
export interface ObjectIds {
|
|
7285
|
+
/**
|
|
7286
|
+
* Liveboard ID.
|
|
7287
|
+
*/
|
|
7288
|
+
liveboardId?: string;
|
|
7289
|
+
/**
|
|
7290
|
+
* Answer ID.
|
|
7291
|
+
*/
|
|
7292
|
+
answerId?: string;
|
|
7293
|
+
/**
|
|
7294
|
+
* Viz IDs.
|
|
7295
|
+
*/
|
|
7296
|
+
vizIds?: string[];
|
|
7297
|
+
/**
|
|
7298
|
+
* Data model IDs.
|
|
7299
|
+
*/
|
|
7300
|
+
dataModelIds?: string[];
|
|
7301
|
+
/**
|
|
7302
|
+
* Modal title.
|
|
7303
|
+
*/
|
|
7304
|
+
modalTitle?: string;
|
|
7305
|
+
}
|
|
7306
|
+
/**
|
|
7307
|
+
* Context object for the embedded component.
|
|
7308
|
+
* @example
|
|
7309
|
+
* ```js
|
|
7310
|
+
* const context = await embed.getCurrentContext();
|
|
7311
|
+
* console.log(context);
|
|
7312
|
+
* {
|
|
7313
|
+
* stack: [
|
|
7314
|
+
* {
|
|
7315
|
+
* name: 'Liveboard',
|
|
7316
|
+
* type: ContextType.Liveboard,
|
|
7317
|
+
* objectIds: {
|
|
7318
|
+
* liveboardId: '123',
|
|
7319
|
+
* },
|
|
7320
|
+
* },
|
|
7321
|
+
* ],
|
|
7322
|
+
* currentContext: {
|
|
7323
|
+
* name: 'Liveboard',
|
|
7324
|
+
* type: ContextType.Liveboard,
|
|
7325
|
+
* objectIds: {
|
|
7326
|
+
* liveboardId: '123',
|
|
7327
|
+
* },
|
|
7328
|
+
* },
|
|
7329
|
+
* }
|
|
7330
|
+
* ```
|
|
7331
|
+
* @version SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl
|
|
7332
|
+
*/
|
|
7333
|
+
export interface ContextObject {
|
|
7334
|
+
/**
|
|
7335
|
+
* Stack of context objects.
|
|
7336
|
+
*/
|
|
7337
|
+
stack: Array<{
|
|
7338
|
+
/**
|
|
7339
|
+
* Name of the context object.
|
|
7340
|
+
*/
|
|
7341
|
+
name: string;
|
|
7342
|
+
/**
|
|
7343
|
+
* Type of the context object.
|
|
7344
|
+
*/
|
|
7345
|
+
type: ContextType;
|
|
7346
|
+
/**
|
|
7347
|
+
* Object IDs of the context object.
|
|
7348
|
+
*/
|
|
7349
|
+
objectIds: ObjectIds;
|
|
7350
|
+
}>;
|
|
7351
|
+
/**
|
|
7352
|
+
* Current context object.
|
|
7353
|
+
*/
|
|
7354
|
+
currentContext: {
|
|
7355
|
+
/**
|
|
7356
|
+
* Name of the current context object.
|
|
7357
|
+
*/
|
|
7358
|
+
name: string;
|
|
7359
|
+
type: ContextType;
|
|
7360
|
+
objectIds: ObjectIds;
|
|
7361
|
+
};
|
|
7362
|
+
}
|
|
7201
7363
|
export declare enum UIPassthroughEvent {
|
|
7202
7364
|
PinAnswerToLiveboard = "addVizToPinboard",
|
|
7203
7365
|
SaveAnswer = "saveAnswer",
|
|
@@ -7282,9 +7444,9 @@ export type EmbedApiHostEventMapping = {
|
|
|
7282
7444
|
[HostEvent.SaveAnswer]: UIPassthroughEvent.SaveAnswer;
|
|
7283
7445
|
};
|
|
7284
7446
|
export type HostEventRequest<HostEventT extends HostEvent> = HostEventT extends keyof EmbedApiHostEventMapping ? UIPassthroughRequest<EmbedApiHostEventMapping[HostEventT]> : any;
|
|
7285
|
-
export type HostEventResponse<HostEventT extends HostEvent> = HostEventT extends keyof EmbedApiHostEventMapping ? UIPassthroughResponse<EmbedApiHostEventMapping[HostEventT]> : any;
|
|
7447
|
+
export type HostEventResponse<HostEventT extends HostEvent, ContextT extends ContextType> = HostEventT extends keyof EmbedApiHostEventMapping ? UIPassthroughResponse<EmbedApiHostEventMapping[HostEventT]> : any;
|
|
7286
7448
|
export type TriggerPayload<PayloadT, HostEventT extends HostEvent> = PayloadT | HostEventRequest<HostEventT>;
|
|
7287
|
-
export type TriggerResponse<PayloadT, HostEventT extends HostEvent> = PayloadT extends HostEventRequest<HostEventT> ? HostEventResponse<HostEventT> : any;
|
|
7449
|
+
export type TriggerResponse<PayloadT, HostEventT extends HostEvent, ContextT extends ContextType> = PayloadT extends HostEventRequest<HostEventT> ? HostEventResponse<HostEventT, ContextT> : any;
|
|
7288
7450
|
declare class HostEventClient {
|
|
7289
7451
|
iFrame: HTMLIFrameElement;
|
|
7290
7452
|
constructor(iFrame?: HTMLIFrameElement);
|
|
@@ -7294,18 +7456,18 @@ declare class HostEventClient {
|
|
|
7294
7456
|
* @param {any} data Data to send with the host event
|
|
7295
7457
|
* @returns {Promise<any>} - the response from the process trigger
|
|
7296
7458
|
*/
|
|
7297
|
-
protected processTrigger(message: HostEvent, data: any): Promise<any>;
|
|
7298
|
-
handleHostEventWithParam<UIPassthroughEventT extends UIPassthroughEvent>(apiName: UIPassthroughEventT, parameters: UIPassthroughRequest<UIPassthroughEventT
|
|
7299
|
-
hostEventFallback(hostEvent: HostEvent, data: any): Promise<any>;
|
|
7459
|
+
protected processTrigger(message: HostEvent, data: any, context?: ContextType): Promise<any>;
|
|
7460
|
+
handleHostEventWithParam<UIPassthroughEventT extends UIPassthroughEvent>(apiName: UIPassthroughEventT, parameters: UIPassthroughRequest<UIPassthroughEventT>, context?: ContextType): Promise<UIPassthroughResponse<UIPassthroughEventT>>;
|
|
7461
|
+
hostEventFallback(hostEvent: HostEvent, data: any, context?: ContextType): Promise<any>;
|
|
7300
7462
|
/**
|
|
7301
7463
|
* Setter for the iframe element used for host events
|
|
7302
7464
|
* @param {HTMLIFrameElement} iFrame - the iframe element to set
|
|
7303
7465
|
*/
|
|
7304
7466
|
setIframeElement(iFrame: HTMLIFrameElement): void;
|
|
7305
|
-
triggerUIPassthroughApi<UIPassthroughEventT extends UIPassthroughEvent>(apiName: UIPassthroughEventT, parameters: UIPassthroughRequest<UIPassthroughEventT
|
|
7306
|
-
protected handlePinEvent(payload: HostEventRequest<HostEvent.Pin
|
|
7307
|
-
protected handleSaveAnswerEvent(payload: HostEventRequest<HostEvent.SaveAnswer
|
|
7308
|
-
triggerHostEvent<HostEventT extends HostEvent, PayloadT>(hostEvent: HostEventT, payload?: TriggerPayload<PayloadT, HostEventT
|
|
7467
|
+
triggerUIPassthroughApi<UIPassthroughEventT extends UIPassthroughEvent>(apiName: UIPassthroughEventT, parameters: UIPassthroughRequest<UIPassthroughEventT>, context?: ContextType): Promise<UIPassthroughArrayResponse<UIPassthroughEventT>>;
|
|
7468
|
+
protected handlePinEvent(payload: HostEventRequest<HostEvent.Pin>, context?: ContextType): Promise<HostEventResponse<HostEvent.Pin, ContextType>>;
|
|
7469
|
+
protected handleSaveAnswerEvent(payload: HostEventRequest<HostEvent.SaveAnswer>, context?: ContextType): Promise<any>;
|
|
7470
|
+
triggerHostEvent<HostEventT extends HostEvent, PayloadT, ContextT extends ContextType>(hostEvent: HostEventT, payload?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextType>>;
|
|
7309
7471
|
}
|
|
7310
7472
|
declare class TsEmbed {
|
|
7311
7473
|
/**
|
|
@@ -7452,6 +7614,21 @@ declare class TsEmbed {
|
|
|
7452
7614
|
* @param responder
|
|
7453
7615
|
*/
|
|
7454
7616
|
private appInitCb;
|
|
7617
|
+
/**
|
|
7618
|
+
* Helper method to refresh/update auth token for TrustedAuthTokenCookieless auth type
|
|
7619
|
+
* @param responder - Function to send response back
|
|
7620
|
+
* @param eventType - The embed event type to send
|
|
7621
|
+
* @param forceRefresh - Whether to force refresh the token
|
|
7622
|
+
* @returns Promise that resolves if token was refreshed, rejects otherwise
|
|
7623
|
+
*/
|
|
7624
|
+
private refreshAuthTokenForCookieless;
|
|
7625
|
+
private handleAuthFailure;
|
|
7626
|
+
/**
|
|
7627
|
+
* Refresh the auth token if the autoLogin is true and the authType is TrustedAuthTokenCookieless
|
|
7628
|
+
* @param _
|
|
7629
|
+
* @param responder
|
|
7630
|
+
*/
|
|
7631
|
+
private tokenRefresh;
|
|
7455
7632
|
/**
|
|
7456
7633
|
* Sends updated auth token to the iFrame to avoid user logout
|
|
7457
7634
|
* @param _
|
|
@@ -7627,7 +7804,7 @@ declare class TsEmbed {
|
|
|
7627
7804
|
* @param {any} data The payload to send with the message
|
|
7628
7805
|
* @returns A promise that resolves with the response from the embedded app
|
|
7629
7806
|
*/
|
|
7630
|
-
trigger<HostEventT extends HostEvent, PayloadT>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT
|
|
7807
|
+
trigger<HostEventT extends HostEvent, PayloadT, ContextT extends ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
|
|
7631
7808
|
/**
|
|
7632
7809
|
* Triggers an event to the embedded app, skipping the UI flow.
|
|
7633
7810
|
* @param {UIPassthroughEvent} apiName - The name of the API to be triggered.
|
|
@@ -7645,6 +7822,12 @@ declare class TsEmbed {
|
|
|
7645
7822
|
render(): Promise<TsEmbed>;
|
|
7646
7823
|
getIframeSrc(): string;
|
|
7647
7824
|
protected handleRenderForPrerender(): Promise<TsEmbed>;
|
|
7825
|
+
/**
|
|
7826
|
+
* Get the current context of the embedded TS component.
|
|
7827
|
+
* @returns The current context object containing the page type and object ids.
|
|
7828
|
+
* @version SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl
|
|
7829
|
+
*/
|
|
7830
|
+
getCurrentContext(): Promise<ContextObject>;
|
|
7648
7831
|
/**
|
|
7649
7832
|
* Creates the preRender shell
|
|
7650
7833
|
* @param showPreRenderByDefault - Show the preRender after render, hidden by default
|
|
@@ -9207,7 +9390,7 @@ export declare class LiveboardEmbed extends V1Embed {
|
|
|
9207
9390
|
* @param {any} data The payload to send with the message
|
|
9208
9391
|
* @returns A promise that resolves with the response from the embedded app
|
|
9209
9392
|
*/
|
|
9210
|
-
trigger<HostEventT extends HostEvent, PayloadT>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT
|
|
9393
|
+
trigger<HostEventT extends HostEvent, PayloadT, ContextT extends ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
|
|
9211
9394
|
/**
|
|
9212
9395
|
* Destroys the ThoughtSpot embed, and remove any nodes from the DOM.
|
|
9213
9396
|
* @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
|
package/lib/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thoughtspot/visual-embed-sdk",
|
|
3
|
-
"version": "1.45.
|
|
3
|
+
"version": "1.45.2",
|
|
4
4
|
"description": "ThoughtSpot Embed SDK",
|
|
5
5
|
"module": "lib/src/index.js",
|
|
6
6
|
"main": "dist/tsembed.js",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"dependencies": {
|
|
71
71
|
"classnames": "^2.3.1",
|
|
72
72
|
"eventemitter3": "^4.0.7",
|
|
73
|
-
"lodash": "^4.17.
|
|
73
|
+
"lodash": "^4.17.23",
|
|
74
74
|
"mixpanel-browser": "2.47.0",
|
|
75
75
|
"ts-deepmerge": "^6.0.2",
|
|
76
76
|
"tslib": "^2.5.3",
|
package/lib/src/authToken.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { EmbedConfig } from './types';
|
|
|
3
3
|
*
|
|
4
4
|
* @param embedConfig
|
|
5
5
|
*/
|
|
6
|
-
export declare function getAuthenticationToken(embedConfig: EmbedConfig): Promise<string>;
|
|
6
|
+
export declare function getAuthenticationToken(embedConfig: EmbedConfig, skipvalidation?: boolean): Promise<string>;
|
|
7
7
|
export declare const validateAuthToken: (embedConfig: EmbedConfig, authToken: string, suppressAlert?: boolean) => Promise<boolean>;
|
|
8
8
|
/**
|
|
9
9
|
* Resets the auth token and a new token will be fetched on the next request.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authToken.d.ts","sourceRoot":"","sources":["../../src/authToken.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAatC;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"authToken.d.ts","sourceRoot":"","sources":["../../src/authToken.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAatC;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,WAAW,EAAE,WAAW,EAAE,cAAc,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAmCvH;AAED,eAAO,MAAM,iBAAiB,gBACb,WAAW,aACb,MAAM,kBACD,OAAO,KACxB,QAAQ,OAAO,CAiCjB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,QAAO,IAEvC,CAAC"}
|
package/lib/src/authToken.js
CHANGED
|
@@ -12,11 +12,11 @@ const storeAuthTokenInCache = (token) => {
|
|
|
12
12
|
*
|
|
13
13
|
* @param embedConfig
|
|
14
14
|
*/
|
|
15
|
-
export async function getAuthenticationToken(embedConfig) {
|
|
15
|
+
export async function getAuthenticationToken(embedConfig, skipvalidation = false) {
|
|
16
16
|
const cachedAuthToken = getCacheAuthToken();
|
|
17
17
|
// Since we don't have token validation enabled , we cannot tell if the
|
|
18
18
|
// cached token is valid or not. So we will always fetch a new token.
|
|
19
|
-
if (cachedAuthToken && !embedConfig.disableTokenVerification) {
|
|
19
|
+
if (cachedAuthToken && !embedConfig.disableTokenVerification && !skipvalidation) {
|
|
20
20
|
let isCachedTokenStillValid;
|
|
21
21
|
try {
|
|
22
22
|
isCachedTokenStillValid = await validateAuthToken(embedConfig, cachedAuthToken, true);
|
package/lib/src/authToken.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authToken.js","sourceRoot":"","sources":["../../src/authToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC5F,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAE5C,MAAM,iBAAiB,GAAG,GAAkB,EAAE,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;AACrF,MAAM,qBAAqB,GAAG,CAAC,KAAa,EAAQ,EAAE;IAClD,kBAAkB,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF,qEAAqE;AACrE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,WAAwB;
|
|
1
|
+
{"version":3,"file":"authToken.js","sourceRoot":"","sources":["../../src/authToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC5F,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAE5C,MAAM,iBAAiB,GAAG,GAAkB,EAAE,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;AACrF,MAAM,qBAAqB,GAAG,CAAC,KAAa,EAAQ,EAAE;IAClD,kBAAkB,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF,qEAAqE;AACrE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,WAAwB,EAAE,iBAA0B,KAAK;IAClG,MAAM,eAAe,GAAG,iBAAiB,EAAE,CAAC;IAC5C,uEAAuE;IACvE,qEAAqE;IACrE,IAAI,eAAe,IAAI,CAAC,WAAW,CAAC,wBAAwB,IAAI,CAAC,cAAc,EAAE;QAC7E,IAAI,uBAAuB,CAAC;QAC5B,IAAI;YACA,uBAAuB,GAAG,MAAM,iBAAiB,CAAC,WAAW,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;SACzF;QAAC,MAAM;YACJ,uBAAuB,GAAG,KAAK,CAAC;SACnC;QAED,IAAI,uBAAuB;YAAE,OAAO,eAAe,CAAC;KACvD;IAED,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC;IAEnD,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,IAAI,YAAY,EAAE;QACd,SAAS,GAAG,MAAM,YAAY,EAAE,CAAC;KACpC;SAAM;QACH,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,YAAY,CAAC,CAAC;QAC3D,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;KACrC;IAED,IAAI;QACA,kDAAkD;QAClD,MAAM,iBAAiB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;KACnD;IAAC,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,mBAAmB,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1E,MAAM,CAAC,CAAC;KACX;IAED,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACjC,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAClC,WAAwB,EACxB,SAAiB,EACjB,aAAuB,EACP,EAAE;IAClB,iEAAiE;IACjE,gDAAgD;IAChD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;QAC/B,MAAM,YAAY,GAAG,cAAc,CAAC,aAAa,CAAC,wBAAwB,EAAE;YACxE,WAAW,EAAE,OAAO,SAAS;SAChC,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;KACjC;IAED,MAAM,eAAe,GAAG,iBAAiB,EAAE,CAAC;IAE5C,IAAI,WAAW,CAAC,wBAAwB,EAAE;QACtC,MAAM,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC;KACf;IACD,IAAI;QACA,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,WAAW,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;QACtF,IAAI,YAAY;YAAE,OAAO,IAAI,CAAC;KACjC;IAAC,MAAM;QACJ,OAAO,KAAK,CAAC;KAChB;IAED,IAAI,eAAe,IAAI,eAAe,KAAK,SAAS,EAAE;QAClD,IAAI,CAAC,WAAW,CAAC,mBAAmB,IAAI,CAAC,aAAa,EAAE;YACpD,oCAAoC;YACpC,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;SAC5C;QACD,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;KACtD;SAAM;QACH,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;KACtD;AACL,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAS,EAAE;IAC3C,qBAAqB,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { getAuthenticationToken, resetCachedAuthToken, validateAuthToken } from './authToken';
|
|
2
|
+
import * as authTokenModule from './authToken';
|
|
2
3
|
import * as authServiceInstance from './utils/authService/authService';
|
|
3
|
-
import {
|
|
4
|
+
import { AuthType } from './types';
|
|
5
|
+
import { formatTemplate, storeValueInWindow } from './utils';
|
|
4
6
|
import { logger } from './utils/logger';
|
|
5
7
|
import { ERROR_MESSAGE } from './errors';
|
|
6
8
|
describe('AuthToken Unit tests', () => {
|
|
@@ -51,5 +53,74 @@ describe('AuthToken Unit tests', () => {
|
|
|
51
53
|
expect(loggerSpy).toHaveBeenCalledWith(errorMessage);
|
|
52
54
|
loggerSpy.mockRestore();
|
|
53
55
|
});
|
|
56
|
+
describe('getAuthenticationToken: cached token skip validation condition', () => {
|
|
57
|
+
beforeEach(() => {
|
|
58
|
+
resetCachedAuthToken();
|
|
59
|
+
jest.clearAllMocks();
|
|
60
|
+
});
|
|
61
|
+
test('should validate cached token when validation is not skipped', async () => {
|
|
62
|
+
const cachedToken = 'cached-token-123';
|
|
63
|
+
storeValueInWindow('cachedAuthToken', cachedToken);
|
|
64
|
+
const validateAuthTokenSpy = jest.spyOn(authTokenModule, 'validateAuthToken')
|
|
65
|
+
.mockImplementation(() => Promise.resolve(true));
|
|
66
|
+
const getAuthTokenMock = jest.fn().mockResolvedValue('new-token-456');
|
|
67
|
+
const config = {
|
|
68
|
+
thoughtSpotHost: 'test',
|
|
69
|
+
authType: AuthType.TrustedAuthToken,
|
|
70
|
+
getAuthToken: getAuthTokenMock,
|
|
71
|
+
disableTokenVerification: false,
|
|
72
|
+
};
|
|
73
|
+
const token = await getAuthenticationToken(config, false);
|
|
74
|
+
expect(token).toBe(cachedToken);
|
|
75
|
+
// Should validate cached token (condition at line 23 is true)
|
|
76
|
+
expect(validateAuthTokenSpy).toHaveBeenCalledWith(config, cachedToken, true);
|
|
77
|
+
expect(getAuthTokenMock).not.toHaveBeenCalled();
|
|
78
|
+
validateAuthTokenSpy.mockReset();
|
|
79
|
+
});
|
|
80
|
+
test('should skip cached token validation when disableTokenVerification is true', async () => {
|
|
81
|
+
const cachedToken = 'cached-token-123';
|
|
82
|
+
storeValueInWindow('cachedAuthToken', cachedToken);
|
|
83
|
+
const validateAuthTokenSpy = jest.spyOn(authTokenModule, 'validateAuthToken')
|
|
84
|
+
.mockImplementation(() => Promise.resolve(true));
|
|
85
|
+
const newToken = 'new-token-456';
|
|
86
|
+
const getAuthTokenMock = jest.fn().mockResolvedValue(newToken);
|
|
87
|
+
const config = {
|
|
88
|
+
thoughtSpotHost: 'test',
|
|
89
|
+
authType: AuthType.TrustedAuthToken,
|
|
90
|
+
getAuthToken: getAuthTokenMock,
|
|
91
|
+
disableTokenVerification: true,
|
|
92
|
+
};
|
|
93
|
+
const token = await getAuthenticationToken(config, false);
|
|
94
|
+
expect(token).toBe(newToken);
|
|
95
|
+
// Should not validate cached token (condition at line 23 is false)
|
|
96
|
+
expect(validateAuthTokenSpy).not.toHaveBeenCalledWith(config, cachedToken, true);
|
|
97
|
+
// But should validate new token (though it returns early when disableTokenVerification is true)
|
|
98
|
+
expect(validateAuthTokenSpy).toHaveBeenCalledWith(config, newToken);
|
|
99
|
+
expect(getAuthTokenMock).toHaveBeenCalled();
|
|
100
|
+
validateAuthTokenSpy.mockReset();
|
|
101
|
+
});
|
|
102
|
+
test('should skip cached token validation when skipvalidation is true', async () => {
|
|
103
|
+
const cachedToken = 'cached-token-123';
|
|
104
|
+
storeValueInWindow('cachedAuthToken', cachedToken);
|
|
105
|
+
const validateAuthTokenSpy = jest.spyOn(authTokenModule, 'validateAuthToken')
|
|
106
|
+
.mockImplementation(() => Promise.resolve(true));
|
|
107
|
+
const newToken = 'new-token-456';
|
|
108
|
+
const getAuthTokenMock = jest.fn().mockResolvedValue(newToken);
|
|
109
|
+
const config = {
|
|
110
|
+
thoughtSpotHost: 'test',
|
|
111
|
+
authType: AuthType.TrustedAuthToken,
|
|
112
|
+
getAuthToken: getAuthTokenMock,
|
|
113
|
+
disableTokenVerification: false,
|
|
114
|
+
};
|
|
115
|
+
const token = await getAuthenticationToken(config, true);
|
|
116
|
+
expect(token).toBe(newToken);
|
|
117
|
+
// Should not validate cached token (condition at line 23 is false)
|
|
118
|
+
expect(validateAuthTokenSpy).not.toHaveBeenCalledWith(config, cachedToken, true);
|
|
119
|
+
// But should validate new token
|
|
120
|
+
expect(validateAuthTokenSpy).toHaveBeenCalledWith(config, newToken);
|
|
121
|
+
expect(getAuthTokenMock).toHaveBeenCalled();
|
|
122
|
+
validateAuthTokenSpy.mockReset();
|
|
123
|
+
});
|
|
124
|
+
});
|
|
54
125
|
});
|
|
55
126
|
//# sourceMappingURL=authToken.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authToken.spec.js","sourceRoot":"","sources":["../../src/authToken.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC9F,OAAO,KAAK,mBAAmB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"authToken.spec.js","sourceRoot":"","sources":["../../src/authToken.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HostEvent } from '../../types';
|
|
1
|
+
import { ContextType, HostEvent } from '../../types';
|
|
2
2
|
export declare enum UIPassthroughEvent {
|
|
3
3
|
PinAnswerToLiveboard = "addVizToPinboard",
|
|
4
4
|
SaveAnswer = "saveAnswer",
|
|
@@ -83,7 +83,7 @@ export type EmbedApiHostEventMapping = {
|
|
|
83
83
|
[HostEvent.SaveAnswer]: UIPassthroughEvent.SaveAnswer;
|
|
84
84
|
};
|
|
85
85
|
export type HostEventRequest<HostEventT extends HostEvent> = HostEventT extends keyof EmbedApiHostEventMapping ? UIPassthroughRequest<EmbedApiHostEventMapping[HostEventT]> : any;
|
|
86
|
-
export type HostEventResponse<HostEventT extends HostEvent> = HostEventT extends keyof EmbedApiHostEventMapping ? UIPassthroughResponse<EmbedApiHostEventMapping[HostEventT]> : any;
|
|
86
|
+
export type HostEventResponse<HostEventT extends HostEvent, ContextT extends ContextType> = HostEventT extends keyof EmbedApiHostEventMapping ? UIPassthroughResponse<EmbedApiHostEventMapping[HostEventT]> : any;
|
|
87
87
|
export type TriggerPayload<PayloadT, HostEventT extends HostEvent> = PayloadT | HostEventRequest<HostEventT>;
|
|
88
|
-
export type TriggerResponse<PayloadT, HostEventT extends HostEvent> = PayloadT extends HostEventRequest<HostEventT> ? HostEventResponse<HostEventT> : any;
|
|
88
|
+
export type TriggerResponse<PayloadT, HostEventT extends HostEvent, ContextT extends ContextType> = PayloadT extends HostEventRequest<HostEventT> ? HostEventResponse<HostEventT, ContextT> : any;
|
|
89
89
|
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../../src/embed/hostEventClient/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../../src/embed/hostEventClient/contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../../src/embed/hostEventClient/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../../src/embed/hostEventClient/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,SAAS,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,CAAN,IAAY,kBAQX;AARD,WAAY,kBAAkB;IAC5B,+DAAyC,CAAA;IACzC,+CAAyB,CAAA;IACzB,2EAAqD,CAAA;IACrD,+EAAyD,CAAA;IACzD,6DAAuC,CAAA;IACvC,kEAA4C,CAAA;IAC5C,iEAA2C,CAAA;AAC7C,CAAC,EARW,kBAAkB,KAAlB,kBAAkB,QAQ7B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HostEvent } from '../../types';
|
|
1
|
+
import { ContextType, HostEvent } from '../../types';
|
|
2
2
|
import { UIPassthroughArrayResponse, UIPassthroughEvent, HostEventRequest, HostEventResponse, UIPassthroughRequest, UIPassthroughResponse, TriggerPayload, TriggerResponse } from './contracts';
|
|
3
3
|
export declare class HostEventClient {
|
|
4
4
|
iFrame: HTMLIFrameElement;
|
|
@@ -9,17 +9,17 @@ export declare class HostEventClient {
|
|
|
9
9
|
* @param {any} data Data to send with the host event
|
|
10
10
|
* @returns {Promise<any>} - the response from the process trigger
|
|
11
11
|
*/
|
|
12
|
-
protected processTrigger(message: HostEvent, data: any): Promise<any>;
|
|
13
|
-
handleHostEventWithParam<UIPassthroughEventT extends UIPassthroughEvent>(apiName: UIPassthroughEventT, parameters: UIPassthroughRequest<UIPassthroughEventT
|
|
14
|
-
hostEventFallback(hostEvent: HostEvent, data: any): Promise<any>;
|
|
12
|
+
protected processTrigger(message: HostEvent, data: any, context?: ContextType): Promise<any>;
|
|
13
|
+
handleHostEventWithParam<UIPassthroughEventT extends UIPassthroughEvent>(apiName: UIPassthroughEventT, parameters: UIPassthroughRequest<UIPassthroughEventT>, context?: ContextType): Promise<UIPassthroughResponse<UIPassthroughEventT>>;
|
|
14
|
+
hostEventFallback(hostEvent: HostEvent, data: any, context?: ContextType): Promise<any>;
|
|
15
15
|
/**
|
|
16
16
|
* Setter for the iframe element used for host events
|
|
17
17
|
* @param {HTMLIFrameElement} iFrame - the iframe element to set
|
|
18
18
|
*/
|
|
19
19
|
setIframeElement(iFrame: HTMLIFrameElement): void;
|
|
20
|
-
triggerUIPassthroughApi<UIPassthroughEventT extends UIPassthroughEvent>(apiName: UIPassthroughEventT, parameters: UIPassthroughRequest<UIPassthroughEventT
|
|
21
|
-
protected handlePinEvent(payload: HostEventRequest<HostEvent.Pin
|
|
22
|
-
protected handleSaveAnswerEvent(payload: HostEventRequest<HostEvent.SaveAnswer
|
|
23
|
-
triggerHostEvent<HostEventT extends HostEvent, PayloadT>(hostEvent: HostEventT, payload?: TriggerPayload<PayloadT, HostEventT
|
|
20
|
+
triggerUIPassthroughApi<UIPassthroughEventT extends UIPassthroughEvent>(apiName: UIPassthroughEventT, parameters: UIPassthroughRequest<UIPassthroughEventT>, context?: ContextType): Promise<UIPassthroughArrayResponse<UIPassthroughEventT>>;
|
|
21
|
+
protected handlePinEvent(payload: HostEventRequest<HostEvent.Pin>, context?: ContextType): Promise<HostEventResponse<HostEvent.Pin, ContextType>>;
|
|
22
|
+
protected handleSaveAnswerEvent(payload: HostEventRequest<HostEvent.SaveAnswer>, context?: ContextType): Promise<any>;
|
|
23
|
+
triggerHostEvent<HostEventT extends HostEvent, PayloadT, ContextT extends ContextType>(hostEvent: HostEventT, payload?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextType>>;
|
|
24
24
|
}
|
|
25
25
|
//# sourceMappingURL=host-event-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-event-client.d.ts","sourceRoot":"","sources":["../../../../src/embed/hostEventClient/host-event-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"host-event-client.d.ts","sourceRoot":"","sources":["../../../../src/embed/hostEventClient/host-event-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGrD,OAAO,EACH,0BAA0B,EAC1B,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB,EACvD,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,eAAe,EAClB,MAAM,aAAa,CAAC;AAErB,qBAAa,eAAe;IAC1B,MAAM,EAAE,iBAAiB,CAAC;gBAEd,MAAM,CAAC,EAAE,iBAAiB;IAItC;;;;;OAKG;cACa,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;IAerF,wBAAwB,CAAC,mBAAmB,SAAS,kBAAkB,EAChF,OAAO,EAAE,mBAAmB,EAC5B,UAAU,EAAE,oBAAoB,CAAC,mBAAmB,CAAC,EACrD,OAAO,CAAC,EAAE,WAAW,GACtB,OAAO,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,CAAC;IAsBzC,iBAAiB,CAC1B,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,GAAG,EACT,OAAO,CAAC,EAAE,WAAW,GACtB,OAAO,CAAC,GAAG,CAAC;IAIf;;;OAGG;IACI,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAI3C,uBAAuB,CAAC,mBAAmB,SAAS,kBAAkB,EAC/E,OAAO,EAAE,mBAAmB,EAC5B,UAAU,EAAE,oBAAoB,CAAC,mBAAmB,CAAC,EACrD,OAAO,CAAC,EAAE,WAAW,GACtB,OAAO,CAAC,0BAA0B,CAAC,mBAAmB,CAAC,CAAC;cAS3C,cAAc,CAC1B,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,EACxC,OAAO,CAAC,EAAE,WAAW,GACtB,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;cAsBzC,qBAAqB,CACjC,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC,EAC/C,OAAO,CAAC,EAAE,WAAW,GACtB,OAAO,CAAC,GAAG,CAAC;IAgBF,gBAAgB,CAC3B,UAAU,SAAS,SAAS,EAC5B,QAAQ,EACR,QAAQ,SAAS,WAAW,EAE1B,SAAS,EAAE,UAAU,EACrB,OAAO,CAAC,EAAE,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,EAC9C,OAAO,CAAC,EAAE,QAAQ,GACnB,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;CAa/D"}
|
|
@@ -12,16 +12,16 @@ export class HostEventClient {
|
|
|
12
12
|
* @param {any} data Data to send with the host event
|
|
13
13
|
* @returns {Promise<any>} - the response from the process trigger
|
|
14
14
|
*/
|
|
15
|
-
async processTrigger(message, data) {
|
|
15
|
+
async processTrigger(message, data, context) {
|
|
16
16
|
if (!this.iFrame) {
|
|
17
17
|
throw new Error('Iframe element is not set');
|
|
18
18
|
}
|
|
19
19
|
const thoughtspotHost = getEmbedConfig().thoughtSpotHost;
|
|
20
|
-
return processTriggerService(this.iFrame, message, thoughtspotHost, data);
|
|
20
|
+
return processTriggerService(this.iFrame, message, thoughtspotHost, data, context);
|
|
21
21
|
}
|
|
22
|
-
async handleHostEventWithParam(apiName, parameters) {
|
|
22
|
+
async handleHostEventWithParam(apiName, parameters, context) {
|
|
23
23
|
var _a, _b, _c, _d;
|
|
24
|
-
const response = (_b = (_a = (await this.triggerUIPassthroughApi(apiName, parameters))) === null || _a === void 0 ? void 0 : _a.filter) === null || _b === void 0 ? void 0 : _b.call(_a, (r) => r.error || r.value)[0];
|
|
24
|
+
const response = (_b = (_a = (await this.triggerUIPassthroughApi(apiName, parameters, context))) === null || _a === void 0 ? void 0 : _a.filter) === null || _b === void 0 ? void 0 : _b.call(_a, (r) => r.error || r.value)[0];
|
|
25
25
|
if (!response) {
|
|
26
26
|
const error = `No answer found${parameters.vizId ? ` for vizId: ${parameters.vizId}` : ''}.`;
|
|
27
27
|
// eslint-disable-next-line no-throw-literal
|
|
@@ -36,8 +36,8 @@ export class HostEventClient {
|
|
|
36
36
|
}
|
|
37
37
|
return { ...response.value };
|
|
38
38
|
}
|
|
39
|
-
async hostEventFallback(hostEvent, data) {
|
|
40
|
-
return this.processTrigger(hostEvent, data);
|
|
39
|
+
async hostEventFallback(hostEvent, data, context) {
|
|
40
|
+
return this.processTrigger(hostEvent, data, context);
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
43
|
* Setter for the iframe element used for host events
|
|
@@ -46,49 +46,49 @@ export class HostEventClient {
|
|
|
46
46
|
setIframeElement(iFrame) {
|
|
47
47
|
this.iFrame = iFrame;
|
|
48
48
|
}
|
|
49
|
-
async triggerUIPassthroughApi(apiName, parameters) {
|
|
49
|
+
async triggerUIPassthroughApi(apiName, parameters, context) {
|
|
50
50
|
const res = await this.processTrigger(HostEvent.UIPassthrough, {
|
|
51
51
|
type: apiName,
|
|
52
52
|
parameters,
|
|
53
|
-
});
|
|
53
|
+
}, context);
|
|
54
54
|
return res;
|
|
55
55
|
}
|
|
56
|
-
async handlePinEvent(payload) {
|
|
56
|
+
async handlePinEvent(payload, context) {
|
|
57
57
|
var _a, _b;
|
|
58
58
|
if (!payload || !('newVizName' in payload)) {
|
|
59
|
-
return this.hostEventFallback(HostEvent.Pin, payload);
|
|
59
|
+
return this.hostEventFallback(HostEvent.Pin, payload, context);
|
|
60
60
|
}
|
|
61
61
|
const formattedPayload = {
|
|
62
62
|
...payload,
|
|
63
63
|
pinboardId: (_a = payload.liveboardId) !== null && _a !== void 0 ? _a : payload.pinboardId,
|
|
64
64
|
newPinboardName: (_b = payload.newLiveboardName) !== null && _b !== void 0 ? _b : payload.newPinboardName,
|
|
65
65
|
};
|
|
66
|
-
const data = await this.handleHostEventWithParam(UIPassthroughEvent.PinAnswerToLiveboard, formattedPayload);
|
|
66
|
+
const data = await this.handleHostEventWithParam(UIPassthroughEvent.PinAnswerToLiveboard, formattedPayload, context);
|
|
67
67
|
return {
|
|
68
68
|
...data,
|
|
69
69
|
liveboardId: data.pinboardId,
|
|
70
70
|
};
|
|
71
71
|
}
|
|
72
|
-
async handleSaveAnswerEvent(payload) {
|
|
72
|
+
async handleSaveAnswerEvent(payload, context) {
|
|
73
73
|
var _a, _b, _c, _d;
|
|
74
74
|
if (!payload || !('name' in payload) || !('description' in payload)) {
|
|
75
75
|
// Save is the fallback for SaveAnswer
|
|
76
|
-
return this.hostEventFallback(HostEvent.Save, payload);
|
|
76
|
+
return this.hostEventFallback(HostEvent.Save, payload, context);
|
|
77
77
|
}
|
|
78
|
-
const data = await this.handleHostEventWithParam(UIPassthroughEvent.SaveAnswer, payload);
|
|
78
|
+
const data = await this.handleHostEventWithParam(UIPassthroughEvent.SaveAnswer, payload, context);
|
|
79
79
|
return {
|
|
80
80
|
...data,
|
|
81
81
|
answerId: (_d = (_c = (_b = (_a = data === null || data === void 0 ? void 0 : data.saveResponse) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.Answer__save) === null || _c === void 0 ? void 0 : _c.answer) === null || _d === void 0 ? void 0 : _d.id,
|
|
82
82
|
};
|
|
83
83
|
}
|
|
84
|
-
async triggerHostEvent(hostEvent, payload) {
|
|
84
|
+
async triggerHostEvent(hostEvent, payload, context) {
|
|
85
85
|
switch (hostEvent) {
|
|
86
86
|
case HostEvent.Pin:
|
|
87
|
-
return this.handlePinEvent(payload);
|
|
87
|
+
return this.handlePinEvent(payload, context);
|
|
88
88
|
case HostEvent.SaveAnswer:
|
|
89
|
-
return this.handleSaveAnswerEvent(payload);
|
|
89
|
+
return this.handleSaveAnswerEvent(payload, context);
|
|
90
90
|
default:
|
|
91
|
-
return this.hostEventFallback(hostEvent, payload);
|
|
91
|
+
return this.hostEventFallback(hostEvent, payload, context);
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
94
|
}
|