@thoughtspot/visual-embed-sdk 1.45.3-mcp.2 → 1.46.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 (165) hide show
  1. package/cjs/package.json +2 -2
  2. package/cjs/src/auth.d.ts +35 -2
  3. package/cjs/src/auth.d.ts.map +1 -1
  4. package/cjs/src/auth.js +35 -2
  5. package/cjs/src/auth.js.map +1 -1
  6. package/cjs/src/embed/app.d.ts.map +1 -1
  7. package/cjs/src/embed/app.js +5 -5
  8. package/cjs/src/embed/app.js.map +1 -1
  9. package/cjs/src/embed/app.spec.js +87 -119
  10. package/cjs/src/embed/app.spec.js.map +1 -1
  11. package/cjs/src/embed/base.d.ts.map +1 -1
  12. package/cjs/src/embed/base.js.map +1 -1
  13. package/cjs/src/index.d.ts +2 -3
  14. package/cjs/src/index.d.ts.map +1 -1
  15. package/cjs/src/index.js +1 -3
  16. package/cjs/src/index.js.map +1 -1
  17. package/cjs/src/types.d.ts +55 -54
  18. package/cjs/src/types.d.ts.map +1 -1
  19. package/cjs/src/types.js +55 -52
  20. package/cjs/src/types.js.map +1 -1
  21. package/dist/{index-0serzuii.js → index-BQvLEoxp.js} +1 -1
  22. package/dist/src/auth.d.ts +35 -2
  23. package/dist/src/auth.d.ts.map +1 -1
  24. package/dist/src/embed/app.d.ts.map +1 -1
  25. package/dist/src/embed/base.d.ts.map +1 -1
  26. package/dist/src/index.d.ts +2 -3
  27. package/dist/src/index.d.ts.map +1 -1
  28. package/dist/src/types.d.ts +55 -54
  29. package/dist/src/types.d.ts.map +1 -1
  30. package/dist/tsembed-react.es.js +98 -62
  31. package/dist/tsembed-react.js +97 -61
  32. package/dist/tsembed.es.js +99 -126
  33. package/dist/tsembed.js +97 -125
  34. package/dist/visual-embed-sdk-react-full.d.ts +90 -53
  35. package/dist/visual-embed-sdk-react.d.ts +88 -51
  36. package/dist/visual-embed-sdk.d.ts +90 -56
  37. package/lib/package.json +2 -2
  38. package/lib/src/auth.d.ts +35 -2
  39. package/lib/src/auth.d.ts.map +1 -1
  40. package/lib/src/auth.js +35 -2
  41. package/lib/src/auth.js.map +1 -1
  42. package/lib/src/embed/app.d.ts.map +1 -1
  43. package/lib/src/embed/app.js +5 -5
  44. package/lib/src/embed/app.js.map +1 -1
  45. package/lib/src/embed/app.spec.js +87 -119
  46. package/lib/src/embed/app.spec.js.map +1 -1
  47. package/lib/src/embed/base.d.ts.map +1 -1
  48. package/lib/src/embed/base.js.map +1 -1
  49. package/lib/src/index.d.ts +2 -3
  50. package/lib/src/index.d.ts.map +1 -1
  51. package/lib/src/index.js +0 -1
  52. package/lib/src/index.js.map +1 -1
  53. package/lib/src/types.d.ts +55 -54
  54. package/lib/src/types.d.ts.map +1 -1
  55. package/lib/src/types.js +55 -52
  56. package/lib/src/types.js.map +1 -1
  57. package/package.json +3 -3
  58. package/src/auth.ts +35 -2
  59. package/src/embed/app.spec.ts +171 -211
  60. package/src/embed/app.ts +15 -10
  61. package/src/embed/base.ts +0 -1
  62. package/src/index.ts +0 -3
  63. package/src/types.ts +55 -54
  64. package/cjs/src/embed/auto-frame-renderer.d.ts +0 -3
  65. package/cjs/src/embed/auto-frame-renderer.d.ts.map +0 -1
  66. package/cjs/src/embed/auto-frame-renderer.js +0 -70
  67. package/cjs/src/embed/auto-frame-renderer.js.map +0 -1
  68. package/cjs/src/embed/searchEmbed-basic-auth.spec.d.ts +0 -2
  69. package/cjs/src/embed/searchEmbed-basic-auth.spec.d.ts.map +0 -1
  70. package/cjs/src/embed/searchEmbed-basic-auth.spec.js +0 -104
  71. package/cjs/src/embed/searchEmbed-basic-auth.spec.js.map +0 -1
  72. package/cjs/src/utils/answerService/answerService.d.ts +0 -34
  73. package/cjs/src/utils/answerService/answerService.d.ts.map +0 -1
  74. package/cjs/src/utils/answerService/answerService.js +0 -142
  75. package/cjs/src/utils/answerService/answerService.js.map +0 -1
  76. package/cjs/src/utils/answerService/answerService.spec.d.ts +0 -1
  77. package/cjs/src/utils/answerService/answerService.spec.d.ts.map +0 -1
  78. package/cjs/src/utils/answerService/answerService.spec.js +0 -1
  79. package/cjs/src/utils/answerService/answerService.spec.js.map +0 -1
  80. package/cjs/src/utils/answerService/graphql-queries.d.ts +0 -6
  81. package/cjs/src/utils/answerService/graphql-queries.d.ts.map +0 -1
  82. package/cjs/src/utils/answerService/graphql-queries.js +0 -123
  83. package/cjs/src/utils/answerService/graphql-queries.js.map +0 -1
  84. package/cjs/src/utils/answerService.d.ts +0 -10
  85. package/cjs/src/utils/answerService.d.ts.map +0 -1
  86. package/cjs/src/utils/answerService.js +0 -61
  87. package/cjs/src/utils/answerService.js.map +0 -1
  88. package/cjs/src/utils/answerService.spec.d.ts +0 -2
  89. package/cjs/src/utils/answerService.spec.d.ts.map +0 -1
  90. package/cjs/src/utils/answerService.spec.js +0 -31
  91. package/cjs/src/utils/answerService.spec.js.map +0 -1
  92. package/cjs/src/utils/authService.d.ts +0 -37
  93. package/cjs/src/utils/authService.d.ts.map +0 -1
  94. package/cjs/src/utils/authService.js +0 -106
  95. package/cjs/src/utils/authService.js.map +0 -1
  96. package/cjs/src/utils/authService.spec.d.ts +0 -2
  97. package/cjs/src/utils/authService.spec.d.ts.map +0 -1
  98. package/cjs/src/utils/authService.spec.js +0 -72
  99. package/cjs/src/utils/authService.spec.js.map +0 -1
  100. package/cjs/src/utils/graphql/answerService/graphql-queries.d.ts +0 -5
  101. package/cjs/src/utils/graphql/answerService/graphql-queries.d.ts.map +0 -1
  102. package/cjs/src/utils/graphql/answerService/graphql-queries.js +0 -80
  103. package/cjs/src/utils/graphql/answerService/graphql-queries.js.map +0 -1
  104. package/cjs/src/utils/graphql/conversationService/conversation-queries.d.ts +0 -3
  105. package/cjs/src/utils/graphql/conversationService/conversation-queries.d.ts.map +0 -1
  106. package/cjs/src/utils/graphql/conversationService/conversation-queries.js +0 -318
  107. package/cjs/src/utils/graphql/conversationService/conversation-queries.js.map +0 -1
  108. package/cjs/src/utils/graphql/conversationService/conversation-service.d.ts +0 -12
  109. package/cjs/src/utils/graphql/conversationService/conversation-service.d.ts.map +0 -1
  110. package/cjs/src/utils/graphql/conversationService/conversation-service.js +0 -89
  111. package/cjs/src/utils/graphql/conversationService/conversation-service.js.map +0 -1
  112. package/cjs/src/utils/graphql/spotterService/conversation-queries.d.ts +0 -3
  113. package/cjs/src/utils/graphql/spotterService/conversation-queries.d.ts.map +0 -1
  114. package/cjs/src/utils/graphql/spotterService/conversation-queries.js +0 -318
  115. package/cjs/src/utils/graphql/spotterService/conversation-queries.js.map +0 -1
  116. package/cjs/src/utils/graphql/spotterService/conversation-service.d.ts +0 -12
  117. package/cjs/src/utils/graphql/spotterService/conversation-service.d.ts.map +0 -1
  118. package/cjs/src/utils/graphql/spotterService/conversation-service.js +0 -89
  119. package/cjs/src/utils/graphql/spotterService/conversation-service.js.map +0 -1
  120. package/cjs/src/utils/graphql/spotterService/nls-answer-queries.d.ts +0 -2
  121. package/cjs/src/utils/graphql/spotterService/nls-answer-queries.d.ts.map +0 -1
  122. package/cjs/src/utils/graphql/spotterService/nls-answer-queries.js +0 -403
  123. package/cjs/src/utils/graphql/spotterService/nls-answer-queries.js.map +0 -1
  124. package/cjs/src/utils/graphql/spotterService/nls-answer-service.d.ts +0 -12
  125. package/cjs/src/utils/graphql/spotterService/nls-answer-service.d.ts.map +0 -1
  126. package/cjs/src/utils/graphql/spotterService/nls-answer-service.js +0 -55
  127. package/cjs/src/utils/graphql/spotterService/nls-answer-service.js.map +0 -1
  128. package/dist/index-CqrIh3Vj.js +0 -7370
  129. package/dist/index-aFN9fe8V.js +0 -7371
  130. package/dist/src/embed/auto-frame-renderer.d.ts +0 -3
  131. package/dist/src/embed/auto-frame-renderer.d.ts.map +0 -1
  132. package/lib/src/embed/auto-frame-renderer.d.ts +0 -3
  133. package/lib/src/embed/auto-frame-renderer.d.ts.map +0 -1
  134. package/lib/src/embed/auto-frame-renderer.js +0 -66
  135. package/lib/src/embed/auto-frame-renderer.js.map +0 -1
  136. package/lib/src/embed/searchEmbed-basic-auth.spec.d.ts +0 -2
  137. package/lib/src/embed/searchEmbed-basic-auth.spec.d.ts.map +0 -1
  138. package/lib/src/embed/searchEmbed-basic-auth.spec.js +0 -101
  139. package/lib/src/embed/searchEmbed-basic-auth.spec.js.map +0 -1
  140. package/lib/src/utils/graphql/conversationService/conversation-queries.d.ts +0 -3
  141. package/lib/src/utils/graphql/conversationService/conversation-queries.d.ts.map +0 -1
  142. package/lib/src/utils/graphql/conversationService/conversation-queries.js +0 -315
  143. package/lib/src/utils/graphql/conversationService/conversation-queries.js.map +0 -1
  144. package/lib/src/utils/graphql/conversationService/conversation-service.d.ts +0 -12
  145. package/lib/src/utils/graphql/conversationService/conversation-service.d.ts.map +0 -1
  146. package/lib/src/utils/graphql/conversationService/conversation-service.js +0 -84
  147. package/lib/src/utils/graphql/conversationService/conversation-service.js.map +0 -1
  148. package/lib/src/utils/graphql/spotterService/conversation-queries.d.ts +0 -3
  149. package/lib/src/utils/graphql/spotterService/conversation-queries.d.ts.map +0 -1
  150. package/lib/src/utils/graphql/spotterService/conversation-queries.js +0 -315
  151. package/lib/src/utils/graphql/spotterService/conversation-queries.js.map +0 -1
  152. package/lib/src/utils/graphql/spotterService/conversation-service.d.ts +0 -12
  153. package/lib/src/utils/graphql/spotterService/conversation-service.d.ts.map +0 -1
  154. package/lib/src/utils/graphql/spotterService/conversation-service.js +0 -84
  155. package/lib/src/utils/graphql/spotterService/conversation-service.js.map +0 -1
  156. package/lib/src/utils/graphql/spotterService/nls-answer-queries.d.ts +0 -2
  157. package/lib/src/utils/graphql/spotterService/nls-answer-queries.d.ts.map +0 -1
  158. package/lib/src/utils/graphql/spotterService/nls-answer-queries.js +0 -400
  159. package/lib/src/utils/graphql/spotterService/nls-answer-queries.js.map +0 -1
  160. package/lib/src/utils/graphql/spotterService/nls-answer-service.d.ts +0 -12
  161. package/lib/src/utils/graphql/spotterService/nls-answer-service.d.ts.map +0 -1
  162. package/lib/src/utils/graphql/spotterService/nls-answer-service.js +0 -50
  163. package/lib/src/utils/graphql/spotterService/nls-answer-service.js.map +0 -1
  164. package/lib/src/visual-embed-sdk.d.ts +0 -7186
  165. package/src/embed/auto-frame-renderer.ts +0 -78
package/src/types.ts CHANGED
@@ -1163,8 +1163,6 @@ export interface BaseViewConfig extends ApiInterceptFlags {
1163
1163
  useHostEventsV2?: boolean;
1164
1164
  }
1165
1165
 
1166
- export interface AutoMCPFrameRendererViewConfig extends BaseViewConfig {}
1167
-
1168
1166
  /**
1169
1167
  * The configuration object for Home page embeds configs.
1170
1168
  */
@@ -2861,65 +2859,69 @@ export enum EmbedEvent {
2861
2859
  Rename = 'rename',
2862
2860
  /**
2863
2861
  *
2864
- * This event can be emitted to intercept search execution initiated by
2865
- * users and implement logic to allow or restrict search execution.
2866
- * You can also show custom error text if the search query must be
2867
- * restricted due to your application or business requirements.
2868
-
2869
- * Prerequisite: Set `isOnBeforeGetVizDataInterceptEnabled` to `true`
2870
- * for this embed event to get emitted.
2871
- * @param - Includes the following event listener parameters:
2862
+ * This event allows developers to intercept search execution
2863
+ * and implement logic that decides whether Search Data should return
2864
+ * data or block the search operation.
2865
+ *
2866
+ * **Prerequisite**: Set`isOnBeforeGetVizDataInterceptEnabled` to `true`
2867
+ * to ensure that `EmbedEvent.OnBeforeGetVizDataIntercept` is emitted
2868
+ * when the embedding application user tries to run a search query.
2869
+ *
2870
+ * This framework applies only to `AppEmbed` and `SearchEmbed`.
2871
+ * @param - Includes the following parameters:
2872
2872
  * - `payload`: The payload received from the embed related to the Data API call.
2873
2873
  * - `responder`: Contains elements that let developers define whether ThoughtSpot
2874
- * should run the search, and if not, what error message
2875
- * should be shown to the user.
2876
- *
2877
- * `execute` - When `execute` returns `true`, the search will be run.
2878
- * When `execute` returns `false`, the search will not be executed.
2874
+ * will run or block the search operation, and if blocked, which error message to provide.
2879
2875
  *
2880
- * `error` - Developers can customize the error message text when `execute`
2881
- * is `false` using the `errorText` and `errorDescription` parameters in responder.
2876
+ * `execute` - When `execute` returns `true`, the search is run.
2877
+ * When `execute` returns `false`, the search is not executed.
2882
2878
  *
2883
- * `errorText` - The error message text to be shown to the user.
2884
- * `errorDescription (ThoughtSpot: 10.15.0.cl and above)` - The error description to be shown to the user.
2879
+ * `error` - Developers can customize the user-facing error message when `execute`
2880
+ * is `false` by using the `error` parameters in `responder`.
2881
+ * `errorText` - The error message text shown to the user.
2885
2882
  * @version SDK : 1.29.0 | ThoughtSpot: 10.3.0.cl
2886
2883
  * @example
2887
- *```js
2888
- * embed.on(EmbedEvent.OnBeforeGetVizDataIntercept,
2889
- * (payload, responder) => {
2890
- * responder({
2891
- * data: {
2892
- * execute:false,
2893
- * error: {
2894
- * //Provide a custom error message to explain to your end user
2895
- * //why their search did not run
2896
- * errorText: "This search query cannot be run.
2897
- * Please contact your administrator for more details."
2898
- * }
2899
- * }})
2900
- * })
2884
+ *
2885
+ * This example blocks search operation and returns a custom error message:
2886
+ * ```js
2887
+ * embed.on(EmbedEvent.OnBeforeGetVizDataIntercept, (payload, responder) => {
2888
+ * responder({
2889
+ * data: {
2890
+ * execute: false,
2891
+ * error: {
2892
+ * // Provide a custom error message to explain why the search did not run.
2893
+ * errorText: 'This search query cannot be run. Please contact your administrator for more details.',
2894
+ * },
2895
+ * },
2896
+ * });
2897
+ * });
2901
2898
  * ```
2899
+ * @example
2902
2900
  *
2903
- *```js
2904
- * embed.on(EmbedEvent.OnBeforeGetVizDataIntercept,
2905
- * (payload, responder) => {
2906
- * const query = payload.data.data.answer.search_query
2907
- * responder({
2908
- * data: {
2909
- * // returns true as long as the query does not include
2910
- * // both the 'sales' AND the 'county' column
2911
- * execute: !(query.includes("sales")&&query.includes("county")),
2912
- * error: {
2913
- * //Provide a custom error message to explain to your end user
2914
- * // why their search did not run, and which searches are accepted by your custom logic.
2915
- * errorText: "Error Occurred",
2916
- * errorDescription: "You can't use this query :" + query + ".
2917
- * The 'sales' measures can never be used at the 'county' level.
2918
- * Please try another measure, or remove 'county' from your search."
2919
- * }
2920
- * }})
2921
- * })
2922
- *```
2901
+ * This example allows the search operation to run
2902
+ * unless the query contains both `sales` and `county`,
2903
+ * and returns a custom error message if the query is rejected:
2904
+ * ```js
2905
+ * embed.on(EmbedEvent.OnBeforeGetVizDataIntercept, (payload, responder) => {
2906
+ * // Record the search query submitted by the end user.
2907
+ * const query = payload.data.data.answer.search_query;
2908
+ *
2909
+ * responder({
2910
+ * data: {
2911
+ * // Returns true as long as the query does not include both `sales` and `county`.
2912
+ * execute: !(query.includes('sales') && query.includes('county')),
2913
+ * error: {
2914
+ * // Provide a custom error message when the query is blocked by your logic.
2915
+ * errorText:
2916
+ * "You can't use this query: "
2917
+ * + query
2918
+ * + ". The 'sales' measure can never be used at the 'county' level. "
2919
+ * + "Please try another measure or remove 'county' from your search.",
2920
+ * },
2921
+ * },
2922
+ * });
2923
+ * });
2924
+ * ```
2923
2925
  */
2924
2926
  OnBeforeGetVizDataIntercept = 'onBeforeGetVizDataIntercept',
2925
2927
  /**
@@ -4679,7 +4681,6 @@ export enum DataSourceVisualMode {
4679
4681
  */
4680
4682
 
4681
4683
  export enum Param {
4682
- Tsmcp = 'tsmcp',
4683
4684
  EmbedApp = 'embedApp',
4684
4685
  DataSources = 'dataSources',
4685
4686
  DataSourceMode = 'dataSourceMode',
@@ -1,3 +0,0 @@
1
- import { AutoMCPFrameRendererViewConfig } from "../types";
2
- export declare function startAutoMCPFrameRenderer(viewConfig?: AutoMCPFrameRendererViewConfig): MutationObserver;
3
- //# sourceMappingURL=auto-frame-renderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auto-frame-renderer.d.ts","sourceRoot":"","sources":["../../../src/embed/auto-frame-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAS,MAAM,UAAU,CAAC;AAKjE,wBAAgB,yBAAyB,CAAC,UAAU,GAAE,8BAAmC,oBA2BxF"}
@@ -1,70 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.startAutoMCPFrameRenderer = void 0;
4
- const types_1 = require("../types");
5
- const ts_embed_1 = require("./ts-embed");
6
- const utils_1 = require("../utils");
7
- function startAutoMCPFrameRenderer(viewConfig = {}) {
8
- const replaceWithMCPIframe = (iframe) => {
9
- const autoMCPFrameRenderer = new AutoFrameRenderer(viewConfig);
10
- autoMCPFrameRenderer.replaceIframe(iframe);
11
- };
12
- const observer = new MutationObserver((mutations) => {
13
- for (const mutation of mutations) {
14
- for (const node of Array.from(mutation.addedNodes)) {
15
- if (node instanceof HTMLIFrameElement && isTSMCPIframe(node)) {
16
- replaceWithMCPIframe(node);
17
- }
18
- if (node instanceof HTMLElement) {
19
- node.querySelectorAll('iframe').forEach((iframe) => {
20
- if (isTSMCPIframe(iframe)) {
21
- replaceWithMCPIframe(iframe);
22
- }
23
- });
24
- }
25
- }
26
- }
27
- });
28
- observer.observe(document.body, { childList: true, subtree: true });
29
- return observer;
30
- }
31
- exports.startAutoMCPFrameRenderer = startAutoMCPFrameRenderer;
32
- function isTSMCPIframe(iframe) {
33
- const src = iframe.src;
34
- return src.includes(`${types_1.Param.Tsmcp}=true`);
35
- }
36
- class AutoFrameRenderer extends ts_embed_1.TsEmbed {
37
- constructor(viewConfig) {
38
- viewConfig.embedComponentType = 'auto-frame-renderer';
39
- const container = document.createElement('div');
40
- super(container, viewConfig);
41
- this.viewConfig = viewConfig;
42
- }
43
- getMCPIframeSrc(sourceSrc) {
44
- const queryParams = this.getEmbedParamsObject();
45
- const sourceURL = new URL(sourceSrc);
46
- const existingQueryParams = sourceURL.searchParams;
47
- // convert existing query params to an object
48
- const existingQueryParamsObject = Object.fromEntries(existingQueryParams);
49
- delete existingQueryParamsObject[types_1.Param.Tsmcp];
50
- // merge the existing query params with the new query params
51
- const mergedQueryParams = { ...queryParams, ...existingQueryParamsObject };
52
- const mergedQueryParamsString = (0, utils_1.getQueryParamString)(mergedQueryParams);
53
- const frameSrc = `${sourceURL.origin}${sourceURL.pathname}?${mergedQueryParamsString}/${sourceURL.hash}`;
54
- return frameSrc;
55
- }
56
- handleInsertionIntoDOM(child) {
57
- if (this.frameToReplace) {
58
- this.frameToReplace.replaceWith(child);
59
- }
60
- else {
61
- super.handleInsertionIntoDOM(child);
62
- }
63
- }
64
- async replaceIframe(iframe) {
65
- this.frameToReplace = iframe;
66
- const src = this.getMCPIframeSrc(iframe.src);
67
- await this.renderIFrame(src);
68
- }
69
- }
70
- //# sourceMappingURL=auto-frame-renderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auto-frame-renderer.js","sourceRoot":"","sources":["../../../src/embed/auto-frame-renderer.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=searchEmbed-basic-auth.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"searchEmbed-basic-auth.spec.d.ts","sourceRoot":"","sources":["../../../src/embed/searchEmbed-basic-auth.spec.ts"],"names":[],"mappings":""}
@@ -1,104 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const search_1 = require("./search");
5
- const baseInstance = tslib_1.__importStar(require("./base"));
6
- const authService = tslib_1.__importStar(require("../utils/authService"));
7
- const authInstance = tslib_1.__importStar(require("../auth"));
8
- const config = tslib_1.__importStar(require("../config"));
9
- const embedConfigInstance = tslib_1.__importStar(require("./embedConfig"));
10
- const index_1 = require("../index");
11
- const types_1 = require("../types");
12
- const test_utils_1 = require("../test/test-utils");
13
- const auth_spec_1 = require("../auth.spec");
14
- const thoughtSpotHost = 'tshost';
15
- (0, index_1.init)({
16
- thoughtSpotHost,
17
- authType: types_1.AuthType.Basic,
18
- username: 'tsadmin',
19
- password: 'admin',
20
- });
21
- describe('Search embed tests when authType is Basic', () => {
22
- /**
23
- *
24
- * @param version
25
- */
26
- function setupVersion(version) {
27
- jest.spyOn(window, 'addEventListener').mockImplementation((event, handler, options) => {
28
- handler({
29
- data: {
30
- type: 'xyz',
31
- },
32
- ports: [3000],
33
- source: null,
34
- });
35
- });
36
- jest.spyOn(authService, 'fetchSessionInfoService').mockImplementation(async () => ({
37
- json: () => ({
38
- ...auth_spec_1.mockSessionInfo,
39
- releaseVersion: version,
40
- }),
41
- status: 200,
42
- }));
43
- jest.spyOn(authInstance, 'getReleaseVersion').mockReturnValue(version);
44
- }
45
- beforeEach(() => {
46
- document.body.innerHTML = (0, test_utils_1.getDocumentBody)();
47
- jest.spyOn(baseInstance, 'getAuthPromise').mockResolvedValue(true);
48
- });
49
- afterEach(() => {
50
- jest.clearAllMocks();
51
- });
52
- test('when releaseVersion is empty', async () => {
53
- setupVersion('');
54
- const mockAlert = spyOn(window, 'alert');
55
- const searchEmbed = new search_1.SearchEmbed((0, test_utils_1.getRootEl)(), {});
56
- await searchEmbed.render();
57
- expect(mockAlert).not.toBeCalled();
58
- });
59
- test("when releaseVersion is '7.0.1.cl' ", async () => {
60
- setupVersion('7.0.1.cl');
61
- const mockAlert = jest.spyOn(window, 'alert');
62
- const searchEmbed = new search_1.SearchEmbed((0, test_utils_1.getRootEl)(), {});
63
- await searchEmbed.render();
64
- expect(mockAlert).not.toBeCalled();
65
- });
66
- test('when releaseVersion is above 8.4.0.sw', async () => {
67
- setupVersion('8.4.0.sw');
68
- const mockAlert = jest.spyOn(window, 'alert');
69
- const searchEmbed = new search_1.SearchEmbed((0, test_utils_1.getRootEl)(), {});
70
- await searchEmbed.render();
71
- expect(mockAlert).not.toBeCalled();
72
- });
73
- test('releaseVersion is above 8.4.0.sw', async () => {
74
- setupVersion('8.8.0.sw');
75
- jest.spyOn(config, 'getThoughtSpotHost').mockImplementation(() => 'http://tshost');
76
- const mockAlert = jest.spyOn(window, 'alert');
77
- const searchEmbed = new search_1.SearchEmbed((0, test_utils_1.getRootEl)(), {});
78
- await searchEmbed.render();
79
- expect(mockAlert).not.toBeCalled();
80
- });
81
- test('Alert should not appear when suppressSearchEmbedBetaWarning is true and releaseVersion is ts7.dec.cl', async () => {
82
- setupVersion('ts7.dec.cl');
83
- jest.spyOn(config, 'getThoughtSpotHost').mockImplementation(() => 'http://tshost');
84
- jest.spyOn(embedConfigInstance, 'getEmbedConfig').mockReturnValue({
85
- suppressSearchEmbedBetaWarning: true,
86
- });
87
- const mockAlert = jest.spyOn(window, 'alert');
88
- const searchEmbed = new search_1.SearchEmbed((0, test_utils_1.getRootEl)(), {});
89
- await searchEmbed.render();
90
- expect(mockAlert).not.toBeCalled();
91
- });
92
- test('Alert should not appear when suppressSearchEmbedBetaWarning is true and releaseVersion is 8.4.0.sw', async () => {
93
- setupVersion('8.4.0.sw');
94
- jest.spyOn(config, 'getThoughtSpotHost').mockImplementation(() => 'http://tshost');
95
- jest.spyOn(embedConfigInstance, 'getEmbedConfig').mockReturnValue({
96
- suppressSearchEmbedBetaWarning: true,
97
- });
98
- const mockAlert = jest.spyOn(window, 'alert');
99
- const searchEmbed = new search_1.SearchEmbed((0, test_utils_1.getRootEl)(), {});
100
- await searchEmbed.render();
101
- expect(mockAlert).not.toBeCalled();
102
- });
103
- });
104
- //# sourceMappingURL=searchEmbed-basic-auth.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"searchEmbed-basic-auth.spec.js","sourceRoot":"","sources":["../../../src/embed/searchEmbed-basic-auth.spec.ts"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- export interface SessionInterface {
2
- sessionId: string;
3
- genNo: number;
4
- acSession: {
5
- sessionId: string;
6
- genNo: number;
7
- };
8
- }
9
- export declare enum OperationType {
10
- GetChartWithData = "GetChartWithData",
11
- GetTableWithHeadlineData = "GetTableWithHeadlineData"
12
- }
13
- export declare class AnswerService {
14
- private session;
15
- private answer;
16
- private thoughtSpotHost;
17
- constructor(session: SessionInterface, answer: any, thoughtSpotHost: string);
18
- getSourceDetail(): Promise<any>;
19
- removeColumns(columnIds: string[]): Promise<any>;
20
- addColumns(columnIds: string[]): Promise<any>;
21
- fetchData(offset?: number, size?: number): Promise<{
22
- columns: any;
23
- data: any;
24
- }>;
25
- getUnderlyingDataForPoint(selectedPoint: {
26
- columnId: string;
27
- dataValue: any;
28
- }[], outputColumnNames: string[], offset: number, size: number): Promise<{
29
- columns: any;
30
- data: any;
31
- }>;
32
- executeQuery(query: string, variables: any): Promise<any>;
33
- }
34
- //# sourceMappingURL=answerService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"answerService.d.ts","sourceRoot":"","sources":["../../../../src/utils/answerService/answerService.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD;AAGD,oBAAY,aAAa;IACrB,gBAAgB,qBAAqB;IACrC,wBAAwB,6BAA6B;CACxD;AAED,qBAAa,aAAa;IAElB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,eAAe;gBAFf,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,GAAG,EACX,eAAe,EAAE,MAAM;IAKtB,eAAe;IAWf,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE;IASjC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE;IAS9B,SAAS,CAAC,MAAM,SAAI,EAAE,IAAI,SAAO;;;;IAmBjC,yBAAyB,CAClC,aAAa,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,GAAG,CAAA;KAAE,EAAE,EACrD,iBAAiB,EAAE,MAAM,EAAE,EAC3B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM;;;;IA4BH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG;CAa1D"}
@@ -1,142 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AnswerService = exports.OperationType = void 0;
4
- const tslib_1 = require("tslib");
5
- const utils_1 = require("../../utils");
6
- const queries = tslib_1.__importStar(require("./graphql-queries"));
7
- // eslint-disable-next-line no-shadow
8
- var OperationType;
9
- (function (OperationType) {
10
- OperationType["GetChartWithData"] = "GetChartWithData";
11
- OperationType["GetTableWithHeadlineData"] = "GetTableWithHeadlineData";
12
- })(OperationType = exports.OperationType || (exports.OperationType = {}));
13
- class AnswerService {
14
- constructor(session, answer, thoughtSpotHost) {
15
- this.session = session;
16
- this.answer = answer;
17
- this.thoughtSpotHost = thoughtSpotHost;
18
- this.session = (0, utils_1.removeTypename)(session);
19
- }
20
- async getSourceDetail() {
21
- const details = await graphqlQuery({
22
- query: queries.getSourceDetail,
23
- variables: {
24
- ids: [this.answer.sources[0].header.guid],
25
- },
26
- thoughtSpotHost: this.thoughtSpotHost,
27
- });
28
- return details[0];
29
- }
30
- async removeColumns(columnIds) {
31
- return this.executeQuery(queries.removeColumns, {
32
- logicalColumnIds: columnIds,
33
- });
34
- }
35
- async addColumns(columnIds) {
36
- return this.executeQuery(queries.addColumns, {
37
- columns: columnIds.map((colId) => ({ logicalColumnId: colId })),
38
- });
39
- }
40
- async fetchData(offset = 0, size = 1000) {
41
- const { answer } = await this.executeQuery(queries.getAnswerData, {
42
- deadline: 0,
43
- dataPaginationParams: {
44
- isClientPaginated: true,
45
- offset,
46
- size,
47
- },
48
- });
49
- const { columns, data } = answer.visualizations[0];
50
- return {
51
- columns,
52
- data,
53
- };
54
- }
55
- async getUnderlyingDataForPoint(selectedPoint, outputColumnNames, offset, size) {
56
- const sourceDetail = await this.getSourceDetail();
57
- const ouputColumnGuids = getGuidsFromColumnNames(sourceDetail, outputColumnNames);
58
- const unAggAnswer = await graphqlQuery({
59
- query: queries.getUnaggregatedAnswerSession,
60
- variables: {
61
- session: this.session,
62
- columns: selectedPoint,
63
- },
64
- thoughtSpotHost: this.thoughtSpotHost,
65
- });
66
- const unaggAnswerSession = new AnswerService(unAggAnswer.id, unAggAnswer.answer, this.thoughtSpotHost);
67
- const currentColumns = new Set(unAggAnswer.answer.visualizations[0].columns.map((c) => c.column.referencedColumns[0].guid));
68
- const columnsToAdd = [...ouputColumnGuids].filter((col) => !currentColumns.has(col));
69
- if (columnsToAdd.length) {
70
- await unaggAnswerSession.addColumns(columnsToAdd);
71
- }
72
- const columnsToRemove = [...currentColumns].filter((col) => !ouputColumnGuids.has(col));
73
- if (columnsToRemove.length) {
74
- await unaggAnswerSession.removeColumns(columnsToRemove);
75
- }
76
- return unaggAnswerSession.fetchData(offset, size);
77
- }
78
- async executeQuery(query, variables) {
79
- const data = await graphqlQuery({
80
- query,
81
- variables: {
82
- session: this.session,
83
- ...variables,
84
- },
85
- thoughtSpotHost: this.thoughtSpotHost,
86
- isCompositeQuery: false,
87
- });
88
- this.session = (0, utils_1.deepMerge)(this.session, data.id);
89
- return data;
90
- }
91
- }
92
- exports.AnswerService = AnswerService;
93
- /**
94
- *
95
- * @param root0
96
- * @param root0.query
97
- * @param root0.variables
98
- * @param root0.thoughtSpotHost
99
- * @param root0.isCompositeQuery
100
- */
101
- async function graphqlQuery({ query, variables, thoughtSpotHost, isCompositeQuery = false, }) {
102
- const operationName = (0, utils_1.getOperationNameFromQuery)(query);
103
- try {
104
- const response = await fetch(`${thoughtSpotHost}/prism/?op=${operationName}`, {
105
- method: 'POST',
106
- headers: {
107
- 'content-type': 'application/json;charset=UTF-8',
108
- 'x-requested-by': 'ThoughtSpot',
109
- accept: '*/*',
110
- 'accept-language': 'en-us',
111
- },
112
- body: JSON.stringify({
113
- operationName,
114
- query,
115
- variables,
116
- }),
117
- credentials: 'include',
118
- });
119
- const result = await response.json();
120
- const dataValues = Object.values(result.data);
121
- return (isCompositeQuery) ? result.data : dataValues[0];
122
- }
123
- catch (error) {
124
- return error;
125
- }
126
- }
127
- /**
128
- *
129
- * @param sourceDetail
130
- * @param colNames
131
- */
132
- function getGuidsFromColumnNames(sourceDetail, colNames) {
133
- const cols = sourceDetail.columns.reduce((colSet, col) => {
134
- colSet[col.name] = col;
135
- return colSet;
136
- }, {});
137
- return new Set(colNames.map((colName) => {
138
- const col = cols[colName];
139
- return col.id;
140
- }));
141
- }
142
- //# sourceMappingURL=answerService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"answerService.js","sourceRoot":"","sources":["../../../../src/utils/answerService/answerService.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=answerService.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"answerService.spec.d.ts","sourceRoot":"","sources":["../../../../src/utils/answerService/answerService.spec.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=answerService.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"answerService.spec.js","sourceRoot":"","sources":["../../../../src/utils/answerService/answerService.spec.ts"],"names":[],"mappings":""}
@@ -1,6 +0,0 @@
1
- export declare const getUnaggregatedAnswerSession: string;
2
- export declare const removeColumns: string;
3
- export declare const addColumns: string;
4
- export declare const getAnswerData: string;
5
- export declare const getSourceDetail = "\n query GetSourceDetail($ids: [GUID!]!) {\n getSourceDetailById(ids: $ids, type: LOGICAL_TABLE) {\n id\n name\n description\n authorName\n authorDisplayName\n isExternal\n type\n created\n modified\n columns {\n id\n name\n author\n authorDisplayName\n description\n dataType\n type\n modified\n ownerName\n owner\n dataRecency\n sources {\n tableId\n tableName\n columnId\n columnName\n __typename\n }\n synonyms\n cohortAnswerId\n __typename\n }\n relationships\n destinationRelationships\n dataSourceId\n __typename\n }\n } \n";
6
- //# sourceMappingURL=graphql-queries.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"graphql-queries.d.ts","sourceRoot":"","sources":["../../../../src/utils/answerService/graphql-queries.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,4BAA4B,QAsBxC,CAAC;AAEF,eAAO,MAAM,aAAa,QAUrB,CAAC;AAEN,eAAO,MAAM,UAAU,QAMlB,CAAC;AAEN,eAAO,MAAM,aAAa,QAwBzB,CAAC;AAEF,eAAO,MAAM,eAAe,43BAyC3B,CAAC"}