@thoughtspot/visual-embed-sdk 1.47.3 → 1.49.0

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 (244) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/auth.d.ts.map +1 -1
  3. package/cjs/src/auth.js +11 -1
  4. package/cjs/src/auth.js.map +1 -1
  5. package/cjs/src/auth.spec.js +38 -0
  6. package/cjs/src/auth.spec.js.map +1 -1
  7. package/cjs/src/authToken.d.ts +2 -0
  8. package/cjs/src/authToken.d.ts.map +1 -1
  9. package/cjs/src/authToken.js +7 -5
  10. package/cjs/src/authToken.js.map +1 -1
  11. package/cjs/src/css-variables.d.ts +140 -0
  12. package/cjs/src/css-variables.d.ts.map +1 -1
  13. package/cjs/src/embed/app.d.ts +63 -2
  14. package/cjs/src/embed/app.d.ts.map +1 -1
  15. package/cjs/src/embed/app.js +57 -6
  16. package/cjs/src/embed/app.js.map +1 -1
  17. package/cjs/src/embed/app.spec.js +200 -1
  18. package/cjs/src/embed/app.spec.js.map +1 -1
  19. package/cjs/src/embed/auto-frame-renderer.js +7 -2
  20. package/cjs/src/embed/auto-frame-renderer.js.map +1 -1
  21. package/cjs/src/embed/auto-frame-renderer.spec.js +385 -6
  22. package/cjs/src/embed/auto-frame-renderer.spec.js.map +1 -1
  23. package/cjs/src/embed/base.d.ts +1 -0
  24. package/cjs/src/embed/base.d.ts.map +1 -1
  25. package/cjs/src/embed/base.js +13 -1
  26. package/cjs/src/embed/base.js.map +1 -1
  27. package/cjs/src/embed/base.spec.js +21 -0
  28. package/cjs/src/embed/base.spec.js.map +1 -1
  29. package/cjs/src/embed/bodyless-conversation.spec.js +86 -0
  30. package/cjs/src/embed/bodyless-conversation.spec.js.map +1 -1
  31. package/cjs/src/embed/conversation.d.ts +16 -1
  32. package/cjs/src/embed/conversation.d.ts.map +1 -1
  33. package/cjs/src/embed/conversation.js +5 -1
  34. package/cjs/src/embed/conversation.js.map +1 -1
  35. package/cjs/src/embed/conversation.spec.js +26 -0
  36. package/cjs/src/embed/conversation.spec.js.map +1 -1
  37. package/cjs/src/embed/liveboard.d.ts +48 -2
  38. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  39. package/cjs/src/embed/liveboard.js +48 -7
  40. package/cjs/src/embed/liveboard.js.map +1 -1
  41. package/cjs/src/embed/liveboard.spec.js +139 -1
  42. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  43. package/cjs/src/embed/spotter-viz-utils.d.ts +85 -0
  44. package/cjs/src/embed/spotter-viz-utils.d.ts.map +1 -0
  45. package/cjs/src/embed/spotter-viz-utils.js +17 -0
  46. package/cjs/src/embed/spotter-viz-utils.js.map +1 -0
  47. package/cjs/src/embed/spotter-viz-utils.spec.d.ts +2 -0
  48. package/cjs/src/embed/spotter-viz-utils.spec.d.ts.map +1 -0
  49. package/cjs/src/embed/spotter-viz-utils.spec.js +31 -0
  50. package/cjs/src/embed/spotter-viz-utils.spec.js.map +1 -0
  51. package/cjs/src/embed/ts-embed.d.ts +58 -38
  52. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  53. package/cjs/src/embed/ts-embed.js +247 -151
  54. package/cjs/src/embed/ts-embed.js.map +1 -1
  55. package/cjs/src/embed/ts-embed.spec.js +397 -122
  56. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  57. package/cjs/src/index.d.ts +2 -1
  58. package/cjs/src/index.d.ts.map +1 -1
  59. package/cjs/src/index.js.map +1 -1
  60. package/cjs/src/react/index.d.ts.map +1 -1
  61. package/cjs/src/react/index.js +3 -0
  62. package/cjs/src/react/index.js.map +1 -1
  63. package/cjs/src/tokenizedFetch.d.ts.map +1 -1
  64. package/cjs/src/tokenizedFetch.js +12 -9
  65. package/cjs/src/tokenizedFetch.js.map +1 -1
  66. package/cjs/src/tokenizedFetch.spec.d.ts +2 -0
  67. package/cjs/src/tokenizedFetch.spec.d.ts.map +1 -0
  68. package/cjs/src/tokenizedFetch.spec.js +68 -0
  69. package/cjs/src/tokenizedFetch.spec.js.map +1 -0
  70. package/cjs/src/types.d.ts +309 -40
  71. package/cjs/src/types.d.ts.map +1 -1
  72. package/cjs/src/types.js +251 -23
  73. package/cjs/src/types.js.map +1 -1
  74. package/cjs/src/utils/authService/tokenizedAuthService.spec.js +6 -7
  75. package/cjs/src/utils/authService/tokenizedAuthService.spec.js.map +1 -1
  76. package/cjs/src/utils/logger.js +2 -1
  77. package/cjs/src/utils/logger.js.map +1 -1
  78. package/cjs/src/utils/logger.spec.d.ts +1 -0
  79. package/cjs/src/utils/logger.spec.d.ts.map +1 -1
  80. package/cjs/src/utils/logger.spec.js +10 -9
  81. package/cjs/src/utils/logger.spec.js.map +1 -1
  82. package/cjs/src/utils.d.ts +4 -1
  83. package/cjs/src/utils.d.ts.map +1 -1
  84. package/cjs/src/utils.js +107 -10
  85. package/cjs/src/utils.js.map +1 -1
  86. package/cjs/src/utils.spec.js +163 -4
  87. package/cjs/src/utils.spec.js.map +1 -1
  88. package/dist/{index-DZq20cR6.js → index-_UGCSSDR.js} +1 -1
  89. package/dist/src/auth.d.ts.map +1 -1
  90. package/dist/src/authToken.d.ts +2 -0
  91. package/dist/src/authToken.d.ts.map +1 -1
  92. package/dist/src/css-variables.d.ts +140 -0
  93. package/dist/src/css-variables.d.ts.map +1 -1
  94. package/dist/src/embed/app.d.ts +63 -2
  95. package/dist/src/embed/app.d.ts.map +1 -1
  96. package/dist/src/embed/base.d.ts +1 -0
  97. package/dist/src/embed/base.d.ts.map +1 -1
  98. package/dist/src/embed/conversation.d.ts +16 -1
  99. package/dist/src/embed/conversation.d.ts.map +1 -1
  100. package/dist/src/embed/liveboard.d.ts +48 -2
  101. package/dist/src/embed/liveboard.d.ts.map +1 -1
  102. package/dist/src/embed/spotter-viz-utils.d.ts +85 -0
  103. package/dist/src/embed/spotter-viz-utils.d.ts.map +1 -0
  104. package/dist/src/embed/spotter-viz-utils.spec.d.ts +2 -0
  105. package/dist/src/embed/spotter-viz-utils.spec.d.ts.map +1 -0
  106. package/dist/src/embed/ts-embed.d.ts +58 -38
  107. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  108. package/dist/src/index.d.ts +2 -1
  109. package/dist/src/index.d.ts.map +1 -1
  110. package/dist/src/react/index.d.ts.map +1 -1
  111. package/dist/src/tokenizedFetch.d.ts.map +1 -1
  112. package/dist/src/tokenizedFetch.spec.d.ts +2 -0
  113. package/dist/src/tokenizedFetch.spec.d.ts.map +1 -0
  114. package/dist/src/types.d.ts +309 -40
  115. package/dist/src/types.d.ts.map +1 -1
  116. package/dist/src/utils/logger.spec.d.ts +1 -0
  117. package/dist/src/utils/logger.spec.d.ts.map +1 -1
  118. package/dist/src/utils.d.ts +4 -1
  119. package/dist/src/utils.d.ts.map +1 -1
  120. package/dist/tsembed-react.es.js +3418 -2899
  121. package/dist/tsembed-react.js +3420 -2901
  122. package/dist/tsembed.es.js +3426 -2905
  123. package/dist/tsembed.js +3419 -2898
  124. package/dist/visual-embed-sdk-react-full.d.ts +687 -78
  125. package/dist/visual-embed-sdk-react.d.ts +687 -78
  126. package/dist/visual-embed-sdk.d.ts +702 -80
  127. package/lib/package.json +1 -1
  128. package/lib/src/auth.d.ts.map +1 -1
  129. package/lib/src/auth.js +12 -2
  130. package/lib/src/auth.js.map +1 -1
  131. package/lib/src/auth.spec.js +38 -0
  132. package/lib/src/auth.spec.js.map +1 -1
  133. package/lib/src/authToken.d.ts +2 -0
  134. package/lib/src/authToken.d.ts.map +1 -1
  135. package/lib/src/authToken.js +2 -2
  136. package/lib/src/authToken.js.map +1 -1
  137. package/lib/src/css-variables.d.ts +140 -0
  138. package/lib/src/css-variables.d.ts.map +1 -1
  139. package/lib/src/embed/app.d.ts +63 -2
  140. package/lib/src/embed/app.d.ts.map +1 -1
  141. package/lib/src/embed/app.js +58 -7
  142. package/lib/src/embed/app.js.map +1 -1
  143. package/lib/src/embed/app.spec.js +201 -2
  144. package/lib/src/embed/app.spec.js.map +1 -1
  145. package/lib/src/embed/auto-frame-renderer.js +7 -2
  146. package/lib/src/embed/auto-frame-renderer.js.map +1 -1
  147. package/lib/src/embed/auto-frame-renderer.spec.js +387 -8
  148. package/lib/src/embed/auto-frame-renderer.spec.js.map +1 -1
  149. package/lib/src/embed/base.d.ts +1 -0
  150. package/lib/src/embed/base.d.ts.map +1 -1
  151. package/lib/src/embed/base.js +11 -0
  152. package/lib/src/embed/base.js.map +1 -1
  153. package/lib/src/embed/base.spec.js +22 -1
  154. package/lib/src/embed/base.spec.js.map +1 -1
  155. package/lib/src/embed/bodyless-conversation.spec.js +86 -0
  156. package/lib/src/embed/bodyless-conversation.spec.js.map +1 -1
  157. package/lib/src/embed/conversation.d.ts +16 -1
  158. package/lib/src/embed/conversation.d.ts.map +1 -1
  159. package/lib/src/embed/conversation.js +5 -1
  160. package/lib/src/embed/conversation.js.map +1 -1
  161. package/lib/src/embed/conversation.spec.js +27 -1
  162. package/lib/src/embed/conversation.spec.js.map +1 -1
  163. package/lib/src/embed/liveboard.d.ts +48 -2
  164. package/lib/src/embed/liveboard.d.ts.map +1 -1
  165. package/lib/src/embed/liveboard.js +49 -8
  166. package/lib/src/embed/liveboard.js.map +1 -1
  167. package/lib/src/embed/liveboard.spec.js +139 -1
  168. package/lib/src/embed/liveboard.spec.js.map +1 -1
  169. package/lib/src/embed/spotter-viz-utils.d.ts +85 -0
  170. package/lib/src/embed/spotter-viz-utils.d.ts.map +1 -0
  171. package/lib/src/embed/spotter-viz-utils.js +13 -0
  172. package/lib/src/embed/spotter-viz-utils.js.map +1 -0
  173. package/lib/src/embed/spotter-viz-utils.spec.d.ts +2 -0
  174. package/lib/src/embed/spotter-viz-utils.spec.d.ts.map +1 -0
  175. package/lib/src/embed/spotter-viz-utils.spec.js +29 -0
  176. package/lib/src/embed/spotter-viz-utils.spec.js.map +1 -0
  177. package/lib/src/embed/ts-embed.d.ts +58 -38
  178. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  179. package/lib/src/embed/ts-embed.js +250 -154
  180. package/lib/src/embed/ts-embed.js.map +1 -1
  181. package/lib/src/embed/ts-embed.spec.js +397 -122
  182. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  183. package/lib/src/index.d.ts +2 -1
  184. package/lib/src/index.d.ts.map +1 -1
  185. package/lib/src/index.js.map +1 -1
  186. package/lib/src/react/index.d.ts.map +1 -1
  187. package/lib/src/react/index.js +3 -0
  188. package/lib/src/react/index.js.map +1 -1
  189. package/lib/src/tokenizedFetch.d.ts.map +1 -1
  190. package/lib/src/tokenizedFetch.js +13 -10
  191. package/lib/src/tokenizedFetch.js.map +1 -1
  192. package/lib/src/tokenizedFetch.spec.d.ts +2 -0
  193. package/lib/src/tokenizedFetch.spec.d.ts.map +1 -0
  194. package/lib/src/tokenizedFetch.spec.js +65 -0
  195. package/lib/src/tokenizedFetch.spec.js.map +1 -0
  196. package/lib/src/types.d.ts +309 -40
  197. package/lib/src/types.d.ts.map +1 -1
  198. package/lib/src/types.js +251 -23
  199. package/lib/src/types.js.map +1 -1
  200. package/lib/src/utils/authService/tokenizedAuthService.spec.js +6 -7
  201. package/lib/src/utils/authService/tokenizedAuthService.spec.js.map +1 -1
  202. package/lib/src/utils/logger.js +2 -1
  203. package/lib/src/utils/logger.js.map +1 -1
  204. package/lib/src/utils/logger.spec.d.ts +1 -0
  205. package/lib/src/utils/logger.spec.d.ts.map +1 -1
  206. package/lib/src/utils/logger.spec.js +10 -9
  207. package/lib/src/utils/logger.spec.js.map +1 -1
  208. package/lib/src/utils.d.ts +4 -1
  209. package/lib/src/utils.d.ts.map +1 -1
  210. package/lib/src/utils.js +103 -9
  211. package/lib/src/utils.js.map +1 -1
  212. package/lib/src/utils.spec.js +164 -5
  213. package/lib/src/utils.spec.js.map +1 -1
  214. package/lib/src/visual-embed-sdk.d.ts +702 -80
  215. package/package.json +1 -1
  216. package/src/auth.spec.ts +55 -1
  217. package/src/auth.ts +11 -2
  218. package/src/authToken.ts +2 -2
  219. package/src/css-variables.ts +175 -1
  220. package/src/embed/app.spec.ts +260 -3
  221. package/src/embed/app.ts +127 -7
  222. package/src/embed/auto-frame-renderer.spec.ts +457 -58
  223. package/src/embed/auto-frame-renderer.ts +7 -2
  224. package/src/embed/base.spec.ts +25 -1
  225. package/src/embed/base.ts +19 -5
  226. package/src/embed/bodyless-conversation.spec.ts +93 -0
  227. package/src/embed/conversation.spec.ts +34 -0
  228. package/src/embed/conversation.ts +22 -1
  229. package/src/embed/liveboard.spec.ts +163 -1
  230. package/src/embed/liveboard.ts +106 -10
  231. package/src/embed/spotter-viz-utils.spec.ts +30 -0
  232. package/src/embed/spotter-viz-utils.ts +94 -0
  233. package/src/embed/ts-embed.spec.ts +564 -231
  234. package/src/embed/ts-embed.ts +384 -258
  235. package/src/index.ts +3 -0
  236. package/src/react/index.tsx +3 -0
  237. package/src/tokenizedFetch.spec.ts +81 -0
  238. package/src/tokenizedFetch.ts +14 -11
  239. package/src/types.ts +326 -36
  240. package/src/utils/authService/tokenizedAuthService.spec.ts +6 -6
  241. package/src/utils/logger.spec.ts +11 -9
  242. package/src/utils/logger.ts +2 -2
  243. package/src/utils.spec.ts +200 -4
  244. package/src/utils.ts +128 -9
@@ -888,9 +888,10 @@ export interface BaseViewConfig extends ApiInterceptFlags {
888
888
  styleSheet__unstable?: string;
889
889
  /**
890
890
  * The list of actions to disable from the primary menu, more menu
891
- * (...), and the contextual menu. These actions will be disabled
892
- * for the user.
893
- * Use this to disable actions.
891
+ * (...), and the contextual menu. Disabled actions are grayed out
892
+ * and still visible to the user, but cannot be clicked.
893
+ * Use this when you want to disable an action (keep it visible but non-interactive).
894
+ * To completely remove an action from the UI, use {@link hiddenActions} instead.
894
895
  *
895
896
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`, `SearchEmbed`, `SpotterAgentEmbed`, `SpotterEmbed`, `SearchBarEmbed`
896
897
  * @version SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw
@@ -921,9 +922,10 @@ export interface BaseViewConfig extends ApiInterceptFlags {
921
922
  */
922
923
  disabledActionReason?: string;
923
924
  /**
924
- * The list of actions to hide from the embedded view.
925
- * These actions will be hidden from the user.
926
- * Use this to hide an action.
925
+ * The list of actions to completely remove from the embedded view.
926
+ * Hidden actions are not visible to the user at all (fully removed from the UI).
927
+ * Use this when you want to remove an action entirely.
928
+ * To keep an action visible but non-interactive (grayed out), use {@link disabledActions} instead.
927
929
  *
928
930
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`, `SearchEmbed`, `SpotterAgentEmbed`, `SpotterEmbed`, `SearchBarEmbed`
929
931
  * @version SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw
@@ -942,9 +944,8 @@ export interface BaseViewConfig extends ApiInterceptFlags {
942
944
  * The list of actions to display from the primary menu, more menu
943
945
  * (...), and the contextual menu. These will be only actions that
944
946
  * are visible to the user.
945
- * Use this to hide all actions except the ones you want to show.
946
- *
947
- * Use either this or hiddenActions.
947
+ * Use this as an allowlist only the actions listed here will be shown.
948
+ * All other actions will be hidden. Use either this or {@link hiddenActions}, not both.
948
949
  *
949
950
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`, `SearchEmbed`, `SpotterAgentEmbed`, `SpotterEmbed`, `SearchBarEmbed`
950
951
  * @version SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw
@@ -1101,6 +1102,14 @@ export interface BaseViewConfig extends ApiInterceptFlags {
1101
1102
  * This flag can be used to disable links inside the embedded app,
1102
1103
  * and disable redirection of links in a new tab.
1103
1104
  *
1105
+ * Note: When set to `true`, this flag automatically disables
1106
+ * {@link enableLinkOverridesV2} for the
1107
+ * embed session. The two features are mutually exclusive — link
1108
+ * overrides mutate anchors (delete `href`, attach a JS click handler),
1109
+ * which breaks native browser behavior (Cmd/Ctrl+Click, middle-click,
1110
+ * right-click "Open in new tab") when combined with the disable flag.
1111
+ * The disable flag preserves native anchor semantics instead.
1112
+ *
1104
1113
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`, `SearchEmbed`, `SpotterAgentEmbed`, `SpotterEmbed`, `SearchBarEmbed`
1105
1114
  * @version SDK: 1.32.1 | ThoughtSpot: 10.3.0.cl
1106
1115
  * @example
@@ -1136,8 +1145,13 @@ export interface BaseViewConfig extends ApiInterceptFlags {
1136
1145
  * Flag to override the *Open Link in New Tab* context
1137
1146
  * menu option.
1138
1147
  *
1139
- * For improved link override handling, use
1140
- * {@link enableLinkOverridesV2} instead.
1148
+ * Note: Setting this flag implicitly enables
1149
+ * {@link enableLinkOverridesV2}. V1 is auto-upgraded to
1150
+ * V2 to ensure consistent link-override behavior; the
1151
+ * legacy V1-only path is no longer used in isolation.
1152
+ *
1153
+ * Note: This flag is ignored when
1154
+ * {@link disableRedirectionLinksInNewTab} is `true`.
1141
1155
  *
1142
1156
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`,
1143
1157
  * `SearchEmbed`, `SpotterAgentEmbed`,
@@ -1163,6 +1177,9 @@ export interface BaseViewConfig extends ApiInterceptFlags {
1163
1177
  * alongside this flag for backward compatibility with
1164
1178
  * older ThoughtSpot versions.
1165
1179
  *
1180
+ * Note: This flag is ignored when
1181
+ * {@link disableRedirectionLinksInNewTab} is `true`.
1182
+ *
1166
1183
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`,
1167
1184
  * `SearchEmbed`, `SpotterAgentEmbed`,
1168
1185
  * `SpotterEmbed`, `SearchBarEmbed`
@@ -1398,6 +1415,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
1398
1415
  /**
1399
1416
  * Refresh the auth token when the token is near expiry.
1400
1417
  * @version SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl
1418
+ * @default true
1401
1419
  * @example
1402
1420
  * ```js
1403
1421
  * const embed = new AppEmbed('#tsEmbed', {
@@ -1434,8 +1452,21 @@ export interface BaseViewConfig extends ApiInterceptFlags {
1434
1452
  */
1435
1453
  useHostEventsV2?: boolean;
1436
1454
  }
1437
- export interface AutoMCPFrameRendererViewConfig extends BaseViewConfig {
1438
- }
1455
+ /**
1456
+ * Configuration for {@link startAutoMCPFrameRenderer}.
1457
+ *
1458
+ * Extends {@link BaseViewConfig} but omits params that are not applicable
1459
+ * to the auto-frame renderer:
1460
+ * - `preRenderId` / `usePrerenderedIfAvailable` / `doNotTrackPreRenderSize` —
1461
+ * the renderer always replaces a live iframe in-place; prerender pools are not used.
1462
+ * - `insertAsSibling` — insertion is always a same-position `replaceWith`; the
1463
+ * container-append path is never taken.
1464
+ * - `primaryAction` — a Liveboard/AppEmbed-specific feature; the renderer renders
1465
+ * whatever route the MCP server specifies.
1466
+ * - `enableV2Shell_experimental` — the renderer always uses the v2 URL format;
1467
+ * this flag has no effect.
1468
+ */
1469
+ export type AutoMCPFrameRendererViewConfig = Omit<BaseViewConfig, 'preRenderId' | 'usePrerenderedIfAvailable' | 'doNotTrackPreRenderSize' | 'insertAsSibling' | 'primaryAction' | 'enableV2Shell_experimental'>;
1439
1470
  /**
1440
1471
  * The configuration object for Home page embeds configs.
1441
1472
  */
@@ -2395,38 +2426,54 @@ export declare enum EmbedEvent {
2395
2426
  */
2396
2427
  VizPointClick = "vizPointClick",
2397
2428
  /**
2398
- * An error has occurred. This event is fired for the following error types:
2429
+ * Fired when an error occurs in the embedded component.
2399
2430
  *
2431
+ * **Important:** This event fires for many reasons — including internal
2432
+ * validation warnings (e.g. `HOST_EVENT_VALIDATION`), configuration issues,
2433
+ * and transient errors that ThoughtSpot already handles gracefully inside the
2434
+ * iframe. **Do not call `embed.destroy()` or unmount the embed component on
2435
+ * every error.** Doing so will tear down the iframe and abort all in-flight
2436
+ * requests, causing the embed to fail entirely.
2437
+ *
2438
+ * Only treat the following codes as unrecoverable:
2439
+ * - `INIT_ERROR` — SDK was not initialised before render
2440
+ * - `LOGIN_FAILED` — authentication could not be completed
2441
+ *
2442
+ * All other error codes should be logged and inspected, not acted upon
2443
+ * destructively.
2444
+ *
2445
+ * **Note:** There is currently no dedicated event for a true unrecoverable
2446
+ * crash. A future `EmbedEvent.FatalError` event is planned to give customers
2447
+ * a clean signal for when the embed cannot recover and needs to be torn down.
2448
+ *
2449
+ * Error types include:
2400
2450
  * `API` - API call failure.
2401
- * `FULLSCREEN` - Error when presenting a Liveboard or visualization in full screen
2402
- * mode. `SINGLE_VALUE_FILTER` - Error due to multiple values in the single value
2403
- * filter. `NON_EXIST_FILTER` - Error due to a non-existent filter.
2404
- * `INVALID_DATE_VALUE` - Invalid date value error.
2405
- * `INVALID_OPERATOR` - Use of invalid operator during filter application.
2451
+ * `FULLSCREEN` - Error when presenting a Liveboard in full screen mode.
2452
+ * `VALIDATION_ERROR` - Internal host event or configuration validation warning.
2406
2453
  *
2407
2454
  * For more information, see https://developers.thoughtspot.com/docs/events-app-integration#errorType
2408
2455
  * @returns error - An error object or message
2409
2456
  * @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 8.4.1.sw
2410
2457
  * @example
2411
2458
  * ```js
2412
- * // API error
2413
- * SearchEmbed.on(EmbedEvent.Error, (error) => {
2414
- * console.log(error);
2415
- * // { type: "Error", data: { errorType: "API", error: { message: '...', error: '...' } } }
2416
- * // { errorType: "API", message: '...', code: '...' } new format
2459
+ * // Recommended pattern — only destroy on truly fatal errors
2460
+ * embed.on(EmbedEvent.Error, (error) => {
2461
+ * const FATAL_CODES = ['INIT_ERROR', 'LOGIN_FAILED'];
2462
+ * if (FATAL_CODES.includes(error.data?.code)) {
2463
+ * embed.destroy();
2464
+ * return;
2465
+ * }
2466
+ * // Log all other errors — do not destroy
2467
+ * console.warn('Embed error (non-fatal):', error);
2417
2468
  * });
2418
2469
  * ```
2419
2470
  * @example
2420
2471
  * ```js
2421
- * // Fullscreen error (Errors during presenting of a liveboard)
2422
- * LiveboardEmbed.on(EmbedEvent.Error, (error) => {
2472
+ * // API error
2473
+ * SearchEmbed.on(EmbedEvent.Error, (error) => {
2423
2474
  * console.log(error);
2424
- * // { type: "Error", data: { errorType: "FULLSCREEN", error: {
2425
- * // message: "Fullscreen API is not enabled",
2426
- * // stack: "..."
2427
- * // } }}
2428
- * // { errorType: "FULLSCREEN", message: "Fullscreen API is not enabled", code: '...' } new format
2429
- * })
2475
+ * // { errorType: "API", message: '...', code: '...' }
2476
+ * });
2430
2477
  * ```
2431
2478
  */
2432
2479
  Error = "Error",
@@ -3627,7 +3674,103 @@ export declare enum EmbedEvent {
3627
3674
  * ```
3628
3675
  * @version SDK: 1.48.0 | ThoughtSpot Cloud: 26.5.0.cl
3629
3676
  */
3630
- SendTestScheduleEmail = "sendTestScheduleEmail"
3677
+ SendTestScheduleEmail = "sendTestScheduleEmail",
3678
+ /**
3679
+ * Emitted when the SpotterViz panel mounts in embed mode.
3680
+ * @version SDK: 1.50.0 | ThoughtSpot Cloud: 26.7.0.cl
3681
+ * @example
3682
+ * ```js
3683
+ * liveboardEmbed.on(EmbedEvent.SpotterVizInit, (payload) => {
3684
+ * console.log('SpotterViz initialized', payload);
3685
+ * // payload: { liveboardId: string }
3686
+ * })
3687
+ * ```
3688
+ */
3689
+ SpotterVizInit = "SpotterVizInit",
3690
+ /**
3691
+ * Emitted when the user submits a prompt in the SpotterViz panel.
3692
+ * @version SDK: 1.50.0 | ThoughtSpot Cloud: 26.7.0.cl
3693
+ * @example
3694
+ * ```js
3695
+ * liveboardEmbed.on(EmbedEvent.SpotterVizQueryTriggered, (payload) => {
3696
+ * console.log('SpotterViz query triggered', payload);
3697
+ * // payload: { query: string, sessionId: string }
3698
+ * })
3699
+ * ```
3700
+ */
3701
+ SpotterVizQueryTriggered = "SpotterVizQueryTriggered",
3702
+ /**
3703
+ * Emitted when the SpotterViz agent finishes responding.
3704
+ * @version SDK: 1.50.0 | ThoughtSpot Cloud: 26.7.0.cl
3705
+ * @example
3706
+ * ```js
3707
+ * liveboardEmbed.on(EmbedEvent.SpotterVizResponseComplete, (payload) => {
3708
+ * console.log('SpotterViz response complete', payload);
3709
+ * // payload: { sessionId: string, messageId: string }
3710
+ * })
3711
+ * ```
3712
+ */
3713
+ SpotterVizResponseComplete = "SpotterVizResponseComplete",
3714
+ /**
3715
+ * Emitted when a checkpoint is created in the SpotterViz panel.
3716
+ * @version SDK: 1.50.0 | ThoughtSpot Cloud: 26.7.0.cl
3717
+ * @example
3718
+ * ```js
3719
+ * liveboardEmbed.on(EmbedEvent.SpotterVizCheckpointCreated, (payload) => {
3720
+ * console.log('SpotterViz checkpoint created', payload);
3721
+ * // payload: { checkpointId: string, source: string, label: string }
3722
+ * })
3723
+ * ```
3724
+ */
3725
+ SpotterVizCheckpointCreated = "SpotterVizCheckpointCreated",
3726
+ /**
3727
+ * Emitted when a checkpoint is restored in the SpotterViz panel.
3728
+ * @version SDK: 1.50.0 | ThoughtSpot Cloud: 26.7.0.cl
3729
+ * @example
3730
+ * ```js
3731
+ * liveboardEmbed.on(EmbedEvent.SpotterVizCheckpointRestored, (payload) => {
3732
+ * console.log('SpotterViz checkpoint restored', payload);
3733
+ * // payload: { checkpointId: string, newGenNumber: number }
3734
+ * })
3735
+ * ```
3736
+ */
3737
+ SpotterVizCheckpointRestored = "SpotterVizCheckpointRestored",
3738
+ /**
3739
+ * Emitted when an error occurs in the SpotterViz panel.
3740
+ * @version SDK: 1.50.0 | ThoughtSpot Cloud: 26.7.0.cl
3741
+ * @example
3742
+ * ```js
3743
+ * liveboardEmbed.on(EmbedEvent.SpotterVizError, (payload) => {
3744
+ * console.log('SpotterViz error', payload);
3745
+ * })
3746
+ * ```
3747
+ */
3748
+ SpotterVizError = "SpotterVizError",
3749
+ /**
3750
+ * Emitted when the SpotterViz panel is closed.
3751
+ * @version SDK: 1.50.0 | ThoughtSpot Cloud: 26.7.0.cl
3752
+ * @example
3753
+ * ```js
3754
+ * liveboardEmbed.on(EmbedEvent.SpotterVizClosed, (payload) => {
3755
+ * console.log('SpotterViz panel closed', payload);
3756
+ * })
3757
+ * ```
3758
+ */
3759
+ SpotterVizClosed = "SpotterVizClosed",
3760
+ /**
3761
+ * Emitted when a user clicks the **Refresh** button in the
3762
+ * Liveboard header. Requires `enableLiveboardDataCache`
3763
+ * to be enabled.
3764
+ * @example
3765
+ * ```js
3766
+ * liveboardEmbed.on(EmbedEvent.RefreshLiveboardBrowserCache, (payload) => {
3767
+ * console.log('Liveboard browser cache refreshed', payload);
3768
+ * // payload: { liveboardId: string }
3769
+ * })
3770
+ * ```
3771
+ * @version SDK: 1.49.0 | ThoughtSpot Cloud: 26.6.0.cl
3772
+ */
3773
+ RefreshLiveboardBrowserCache = "refreshLiveboardBrowserCache"
3631
3774
  }
3632
3775
  /**
3633
3776
  * Event types that can be triggered by the host application
@@ -5697,7 +5840,38 @@ export declare enum HostEvent {
5697
5840
  * ```
5698
5841
  * @version SDK: 1.48.0 | ThoughtSpot Cloud: 26.5.0.cl
5699
5842
  */
5700
- SendTestScheduleEmail = "sendTestScheduleEmail"
5843
+ SendTestScheduleEmail = "sendTestScheduleEmail",
5844
+ /**
5845
+ * Sends a user message (prompt) to the SpotterViz panel programmatically.
5846
+ * @version SDK: 1.50.0 | ThoughtSpot Cloud: 26.7.0.cl
5847
+ * @param query - the prompt text to send.
5848
+ * @example
5849
+ * ```js
5850
+ * liveboardEmbed.trigger(HostEvent.SpotterVizSendUserMessage, {
5851
+ * query: 'Show me revenue by region',
5852
+ * });
5853
+ * ```
5854
+ */
5855
+ SpotterVizSendUserMessage = "SpotterVizSendUserMessage",
5856
+ /**
5857
+ * Initializes a new SpotterViz conversation.
5858
+ * @version SDK: 1.50.0 | ThoughtSpot Cloud: 26.7.0.cl
5859
+ * @example
5860
+ * ```js
5861
+ * liveboardEmbed.trigger(HostEvent.InitSpotterVizConversation);
5862
+ * ```
5863
+ */
5864
+ InitSpotterVizConversation = "InitSpotterVizConversation",
5865
+ /**
5866
+ * Clears browser cache and fetches new data for liveboard ChartViz Containers.
5867
+ * Requires `enableLiveboardDataCache` to be enabled.
5868
+ * @example
5869
+ * ```js
5870
+ * liveboardEmbed.trigger(HostEvent.RefreshLiveboardBrowserCache);
5871
+ * ```
5872
+ * @version SDK: 1.49.0 | ThoughtSpot Cloud: 26.6.0.cl
5873
+ */
5874
+ RefreshLiveboardBrowserCache = "refreshLiveboardBrowserCache"
5701
5875
  }
5702
5876
  /**
5703
5877
  * The different visual modes that the data sources panel within
@@ -5736,6 +5910,7 @@ export declare enum Param {
5736
5910
  HostAppUrl = "hostAppUrl",
5737
5911
  EnableVizTransformations = "enableVizTransform",
5738
5912
  EnableSearchAssist = "enableSearchAssist",
5913
+ EnableConnectionNewExperience = "newConnectionsExperience",
5739
5914
  EnablePendoHelp = "enablePendoHelp",
5740
5915
  HideResult = "hideResult",
5741
5916
  UseLastSelectedDataSource = "useLastSelectedSources",
@@ -5865,15 +6040,28 @@ export declare enum Param {
5865
6040
  HideToolResponseCardBranding = "hideToolResponseCardBranding",
5866
6041
  ToolResponseCardBrandingLabel = "toolResponseCardBrandingLabel",
5867
6042
  EnableHomepageAnnouncement = "enableHomepageAnnouncement",
5868
- EnableLiveboardDataCache = "enableLiveboardDataCache"
6043
+ EnableLiveboardDataCache = "enableLiveboardDataCache",
6044
+ SpotterFileUploadEnabled = "spotterFileUploadEnabled",
6045
+ SpotterFileUploadFileTypes = "spotterFileUploadFileTypes"
5869
6046
  }
6047
+ /**
6048
+ * Configuration for allowed file types in Spotter file upload.
6049
+ * @group Embed components
6050
+ */
6051
+ export type SpotterFileUploadFileTypes = {
6052
+ types?: string[];
6053
+ };
5870
6054
  /**
5871
6055
  * ThoughtSpot application pages include actions and menu commands
5872
6056
  * for various user-initiated operations. These actions are represented
5873
- * as enumeration members in the SDK. To show, hide, or disable
5874
- * specific actions in the embedded view, define the Action
5875
- * enumeration members in the `disabledActions`, `visibleActions`,
5876
- * or `hiddenActions` array.
6057
+ * as enumeration members in the SDK. To control actions in the embedded view:
6058
+ * - disabledActions the action is grayed out and still visible, but non-interactive (user can see but not click).
6059
+ * - hiddenActions the action is completely removed from the UI (user cannot see it at all).
6060
+ * - visibleActions — allowlist, only these actions are shown; all others are hidden.
6061
+ *
6062
+ * Use disabledActions to disable (gray out) an action.
6063
+ * Use hiddenActions to hide (fully remove) an action.
6064
+ * Use visibleActions to show only specific actions.
5877
6065
  * @example
5878
6066
  * ```js
5879
6067
  * const embed = new LiveboardEmbed('#tsEmbed', {
@@ -6199,6 +6387,20 @@ export declare enum Action {
6199
6387
  * @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
6200
6388
  */
6201
6389
  DownloadLiveboardAsContinuousPDF = "downloadLiveboardAsContinuousPDF",
6390
+ /**
6391
+ * The Download Liveboard as A4 PDF menu action on a Liveboard.
6392
+ * Allows downloading the entire Liveboard as an A4 PDF.
6393
+ * Requires {@link Action.DownloadLiveboard} as a parent action when
6394
+ * {@link LiveboardViewConfig.isLiveboardXLSXCSVDownloadEnabled} or
6395
+ * {@link LiveboardViewConfig.isContinuousLiveboardPDFEnabled} flags are enabled.
6396
+ * Use this instead of {@link Action.DownloadAsPdf} when either flag is on.
6397
+ * @version SDK: 1.50.0 | ThoughtSpot Cloud: 26.7.0.cl
6398
+ * @example
6399
+ * ```js
6400
+ * disabledActions: [Action.DownloadLiveboardAsA4Pdf]
6401
+ * ```
6402
+ */
6403
+ DownloadLiveboardAsA4Pdf = "downloadLiveboardAsA4Pdf",
6202
6404
  /**
6203
6405
  * The **Download Liveboard as XLSX** menu action on a Liveboard.
6204
6406
  * Allows downloading the entire Liveboard as an XLSX file.
@@ -6720,6 +6922,26 @@ export declare enum Action {
6720
6922
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl, 9.5.1.sw
6721
6923
  */
6722
6924
  AxisMenuRemove = "axisMenuRemove",
6925
+ /**
6926
+ * The **Compare with** action in the chart axis customization menu.
6927
+ * Allows comparing data across dimensions or measures.
6928
+ * @example
6929
+ * ```js
6930
+ * disabledActions: [Action.AxisMenuCompare]
6931
+ * ```
6932
+ * @version SDK: 1.50.0 | ThoughtSpot: 26.7.0.cl
6933
+ */
6934
+ AxisMenuCompare = "axisMenuCompare",
6935
+ /**
6936
+ * The **Merge with** action in the chart axis customization menu.
6937
+ * Allows merging data across dimensions or measures.
6938
+ * @example
6939
+ * ```js
6940
+ * disabledActions: [Action.AxisMenuMerge]
6941
+ * ```
6942
+ * @version SDK: 1.50.0 | ThoughtSpot: 26.7.0.cl
6943
+ */
6944
+ AxisMenuMerge = "axisMenuMerge",
6723
6945
  /**
6724
6946
  * @hidden
6725
6947
  */
@@ -7490,7 +7712,51 @@ export declare enum Action {
7490
7712
  * ```
7491
7713
  * @version SDK: 1.48.0 | ThoughtSpot Cloud: 26.5.0.cl
7492
7714
  */
7493
- SendTestScheduleEmail = "sendTestScheduleEmail"
7715
+ SendTestScheduleEmail = "sendTestScheduleEmail",
7716
+ /**
7717
+ * The thumbs up/down feedback buttons in the SpotterViz panel.
7718
+ * Visible by default.
7719
+ * @version SDK: 1.50.0 | ThoughtSpot Cloud: 26.7.0.cl
7720
+ * @example
7721
+ * ```js
7722
+ * hiddenActions: [Action.SpotterVizFeedback]
7723
+ * disabledActions: [Action.SpotterVizFeedback]
7724
+ * ```
7725
+ */
7726
+ SpotterVizFeedback = "spotterVizFeedback",
7727
+ /**
7728
+ * The version restore button on checkpoint cards in the SpotterViz panel.
7729
+ * Visible by default.
7730
+ * @version SDK: 1.50.0 | ThoughtSpot Cloud: 26.7.0.cl
7731
+ * @example
7732
+ * ```js
7733
+ * hiddenActions: [Action.SpotterVizCheckpointRestore]
7734
+ * disabledActions: [Action.SpotterVizCheckpointRestore]
7735
+ * ```
7736
+ */
7737
+ SpotterVizCheckpointRestore = "spotterVizCheckpointRestore",
7738
+ /**
7739
+ * The **SpotterViz** button in the top edit header.
7740
+ * Visible by default.
7741
+ * @version SDK: 1.50.0 | ThoughtSpot Cloud: 26.7.0.cl
7742
+ * @example
7743
+ * ```js
7744
+ * hiddenActions: [Action.SpotterViz]
7745
+ * disabledActions: [Action.SpotterViz]
7746
+ * ```
7747
+ */
7748
+ SpotterViz = "spotterViz",
7749
+ /**
7750
+ * Clears browser cache and fetches new data for liveboard ChartViz Containers.
7751
+ * Requires `enableLiveboardDataCache` to be enabled.
7752
+ * @example
7753
+ * ```js
7754
+ * disabledActions: [Action.RefreshLiveboardBrowserCache]
7755
+ * hiddenActions: [Action.RefreshLiveboardBrowserCache]
7756
+ * ```
7757
+ * @version SDK: 1.49.0 | ThoughtSpot Cloud: 26.6.0.cl
7758
+ */
7759
+ RefreshLiveboardBrowserCache = "refreshLiveboardBrowserCache"
7494
7760
  }
7495
7761
  export interface AnswerServiceType {
7496
7762
  getAnswer?: (offset: number, batchSize: number) => any;
@@ -7945,6 +8211,9 @@ export interface DefaultAppInitData {
7945
8211
  customActions: CustomAction[];
7946
8212
  interceptTimeout: number | undefined;
7947
8213
  interceptUrls: (string | InterceptedApiType)[];
8214
+ embedExpiryInAuthToken: boolean;
8215
+ shouldBypassPayloadValidation?: boolean;
8216
+ useHostEventsV2?: boolean;
7948
8217
  }
7949
8218
  /**
7950
8219
  * Enum for the type of API intercepted