@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.
Files changed (131) hide show
  1. package/cjs/package.json +2 -2
  2. package/cjs/src/authToken.d.ts +1 -1
  3. package/cjs/src/authToken.d.ts.map +1 -1
  4. package/cjs/src/authToken.js +2 -2
  5. package/cjs/src/authToken.js.map +1 -1
  6. package/cjs/src/authToken.spec.js +71 -0
  7. package/cjs/src/authToken.spec.js.map +1 -1
  8. package/cjs/src/embed/hostEventClient/contracts.d.ts +3 -3
  9. package/cjs/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  10. package/cjs/src/embed/hostEventClient/contracts.js.map +1 -1
  11. package/cjs/src/embed/hostEventClient/host-event-client.d.ts +8 -8
  12. package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  13. package/cjs/src/embed/hostEventClient/host-event-client.js +18 -18
  14. package/cjs/src/embed/hostEventClient/host-event-client.js.map +1 -1
  15. package/cjs/src/embed/hostEventClient/host-event-client.spec.js +7 -7
  16. package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  17. package/cjs/src/embed/liveboard.d.ts +2 -2
  18. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  19. package/cjs/src/embed/liveboard.js +2 -2
  20. package/cjs/src/embed/liveboard.js.map +1 -1
  21. package/cjs/src/embed/liveboard.spec.js +1 -1
  22. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  23. package/cjs/src/embed/ts-embed.d.ts +23 -2
  24. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  25. package/cjs/src/embed/ts-embed.js +64 -22
  26. package/cjs/src/embed/ts-embed.js.map +1 -1
  27. package/cjs/src/embed/ts-embed.spec.d.ts.map +1 -1
  28. package/cjs/src/embed/ts-embed.spec.js +138 -19
  29. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  30. package/cjs/src/index.d.ts +2 -2
  31. package/cjs/src/index.d.ts.map +1 -1
  32. package/cjs/src/index.js +3 -2
  33. package/cjs/src/index.js.map +1 -1
  34. package/cjs/src/types.d.ts +164 -2
  35. package/cjs/src/types.d.ts.map +1 -1
  36. package/cjs/src/types.js +43 -1
  37. package/cjs/src/types.js.map +1 -1
  38. package/cjs/src/utils/processTrigger.d.ts +3 -2
  39. package/cjs/src/utils/processTrigger.d.ts.map +1 -1
  40. package/cjs/src/utils/processTrigger.js +4 -2
  41. package/cjs/src/utils/processTrigger.js.map +1 -1
  42. package/cjs/src/utils.d.ts +5 -1
  43. package/cjs/src/utils.d.ts.map +1 -1
  44. package/cjs/src/utils.js +8 -1
  45. package/cjs/src/utils.js.map +1 -1
  46. package/dist/{index-Dk-SLdNk.js → index-BdkKLLo1.js} +1 -1
  47. package/dist/src/authToken.d.ts +1 -1
  48. package/dist/src/authToken.d.ts.map +1 -1
  49. package/dist/src/embed/hostEventClient/contracts.d.ts +3 -3
  50. package/dist/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  51. package/dist/src/embed/hostEventClient/host-event-client.d.ts +8 -8
  52. package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  53. package/dist/src/embed/liveboard.d.ts +2 -2
  54. package/dist/src/embed/liveboard.d.ts.map +1 -1
  55. package/dist/src/embed/ts-embed.d.ts +23 -2
  56. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  57. package/dist/src/embed/ts-embed.spec.d.ts.map +1 -1
  58. package/dist/src/index.d.ts +2 -2
  59. package/dist/src/index.d.ts.map +1 -1
  60. package/dist/src/types.d.ts +164 -2
  61. package/dist/src/types.d.ts.map +1 -1
  62. package/dist/src/utils/processTrigger.d.ts +3 -2
  63. package/dist/src/utils/processTrigger.d.ts.map +1 -1
  64. package/dist/src/utils.d.ts +5 -1
  65. package/dist/src/utils.d.ts.map +1 -1
  66. package/dist/tsembed-react.es.js +140 -49
  67. package/dist/tsembed-react.js +139 -48
  68. package/dist/tsembed.es.js +155 -64
  69. package/dist/tsembed.js +29640 -29549
  70. package/dist/visual-embed-sdk-react-full.d.ts +196 -13
  71. package/dist/visual-embed-sdk-react.d.ts +196 -13
  72. package/dist/visual-embed-sdk.d.ts +196 -13
  73. package/lib/package.json +2 -2
  74. package/lib/src/authToken.d.ts +1 -1
  75. package/lib/src/authToken.d.ts.map +1 -1
  76. package/lib/src/authToken.js +2 -2
  77. package/lib/src/authToken.js.map +1 -1
  78. package/lib/src/authToken.spec.js +72 -1
  79. package/lib/src/authToken.spec.js.map +1 -1
  80. package/lib/src/embed/hostEventClient/contracts.d.ts +3 -3
  81. package/lib/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  82. package/lib/src/embed/hostEventClient/contracts.js.map +1 -1
  83. package/lib/src/embed/hostEventClient/host-event-client.d.ts +8 -8
  84. package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  85. package/lib/src/embed/hostEventClient/host-event-client.js +18 -18
  86. package/lib/src/embed/hostEventClient/host-event-client.js.map +1 -1
  87. package/lib/src/embed/hostEventClient/host-event-client.spec.js +7 -7
  88. package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  89. package/lib/src/embed/liveboard.d.ts +2 -2
  90. package/lib/src/embed/liveboard.d.ts.map +1 -1
  91. package/lib/src/embed/liveboard.js +2 -2
  92. package/lib/src/embed/liveboard.js.map +1 -1
  93. package/lib/src/embed/liveboard.spec.js +1 -1
  94. package/lib/src/embed/liveboard.spec.js.map +1 -1
  95. package/lib/src/embed/ts-embed.d.ts +23 -2
  96. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  97. package/lib/src/embed/ts-embed.js +64 -22
  98. package/lib/src/embed/ts-embed.js.map +1 -1
  99. package/lib/src/embed/ts-embed.spec.d.ts.map +1 -1
  100. package/lib/src/embed/ts-embed.spec.js +139 -20
  101. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  102. package/lib/src/index.d.ts +2 -2
  103. package/lib/src/index.d.ts.map +1 -1
  104. package/lib/src/index.js +2 -2
  105. package/lib/src/index.js.map +1 -1
  106. package/lib/src/types.d.ts +164 -2
  107. package/lib/src/types.d.ts.map +1 -1
  108. package/lib/src/types.js +42 -0
  109. package/lib/src/types.js.map +1 -1
  110. package/lib/src/utils/processTrigger.d.ts +3 -2
  111. package/lib/src/utils/processTrigger.d.ts.map +1 -1
  112. package/lib/src/utils/processTrigger.js +4 -2
  113. package/lib/src/utils/processTrigger.js.map +1 -1
  114. package/lib/src/utils.d.ts +5 -1
  115. package/lib/src/utils.d.ts.map +1 -1
  116. package/lib/src/utils.js +6 -0
  117. package/lib/src/utils.js.map +1 -1
  118. package/package.json +2 -2
  119. package/src/authToken.spec.ts +91 -2
  120. package/src/authToken.ts +2 -2
  121. package/src/embed/hostEventClient/contracts.ts +4 -4
  122. package/src/embed/hostEventClient/host-event-client.spec.ts +7 -1
  123. package/src/embed/hostEventClient/host-event-client.ts +22 -11
  124. package/src/embed/liveboard.spec.ts +1 -1
  125. package/src/embed/liveboard.ts +5 -3
  126. package/src/embed/ts-embed.spec.ts +184 -8
  127. package/src/embed/ts-embed.ts +81 -24
  128. package/src/index.ts +2 -0
  129. package/src/types.ts +171 -0
  130. package/src/utils/processTrigger.ts +6 -3
  131. 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>): Promise<UIPassthroughResponse<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>): Promise<UIPassthroughArrayResponse<UIPassthroughEventT>>;
7306
- protected handlePinEvent(payload: HostEventRequest<HostEvent.Pin>): Promise<HostEventResponse<HostEvent.Pin>>;
7307
- protected handleSaveAnswerEvent(payload: HostEventRequest<HostEvent.SaveAnswer>): Promise<any>;
7308
- triggerHostEvent<HostEventT extends HostEvent, PayloadT>(hostEvent: HostEventT, payload?: TriggerPayload<PayloadT, HostEventT>): Promise<TriggerResponse<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>): Promise<TriggerResponse<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>): Promise<TriggerResponse<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.0",
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.21",
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",
@@ -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,CAmCtF;AAED,eAAO,MAAM,iBAAiB,gBACb,WAAW,aACb,MAAM,kBACD,OAAO,KACxB,QAAQ,OAAO,CAiCjB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,QAAO,IAEvC,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"}
@@ -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);
@@ -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;IACjE,MAAM,eAAe,GAAG,iBAAiB,EAAE,CAAC;IAC5C,uEAAuE;IACvE,qEAAqE;IACrE,IAAI,eAAe,IAAI,CAAC,WAAW,CAAC,wBAAwB,EAAE;QAC1D,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
+ {"version":3,"file":"authToken.js","sourceRoot":"","sources":["../../src/authToken.ts"],"names":[],"mappings":"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"}
@@ -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 { formatTemplate } from './utils';
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":"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"}
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":"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"}
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,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,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
+ {"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>): Promise<UIPassthroughResponse<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>): Promise<UIPassthroughArrayResponse<UIPassthroughEventT>>;
21
- protected handlePinEvent(payload: HostEventRequest<HostEvent.Pin>): Promise<HostEventResponse<HostEvent.Pin>>;
22
- protected handleSaveAnswerEvent(payload: HostEventRequest<HostEvent.SaveAnswer>): Promise<any>;
23
- triggerHostEvent<HostEventT extends HostEvent, PayloadT>(hostEvent: HostEventT, payload?: TriggerPayload<PayloadT, HostEventT>): Promise<TriggerResponse<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;AAGxC,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,GAAG,OAAO,CAAC,GAAG,CAAC;IAc9D,wBAAwB,CAAC,mBAAmB,SAAS,kBAAkB,EAChF,OAAO,EAAE,mBAAmB,EAC5B,UAAU,EAAE,oBAAoB,CAAC,mBAAmB,CAAC,GACtD,OAAO,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,CAAC;IAsBzC,iBAAiB,CAC1B,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,GAAG,GACV,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,GACtD,OAAO,CAAC,0BAA0B,CAAC,mBAAmB,CAAC,CAAC;cAS3C,cAAc,CAC1B,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,GACzC,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;cAqB5B,qBAAqB,CACjC,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC,GAChD,OAAO,CAAC,GAAG,CAAC;IAeF,gBAAgB,CAC3B,UAAU,SAAS,SAAS,EAC5B,QAAQ,EAEN,SAAS,EAAE,UAAU,EACrB,OAAO,CAAC,EAAE,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,GAC/C,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;CAYlD"}
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
  }