@thoughtspot/visual-embed-sdk 1.42.1-alpha.7 → 1.42.3

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 (229) hide show
  1. package/cjs/package.json +4 -3
  2. package/cjs/src/css-variables.d.ts +0 -48
  3. package/cjs/src/css-variables.d.ts.map +1 -1
  4. package/cjs/src/embed/app.d.ts +20 -0
  5. package/cjs/src/embed/app.d.ts.map +1 -1
  6. package/cjs/src/embed/app.js +9 -4
  7. package/cjs/src/embed/app.js.map +1 -1
  8. package/cjs/src/embed/app.spec.js +62 -0
  9. package/cjs/src/embed/app.spec.js.map +1 -1
  10. package/cjs/src/embed/base.d.ts.map +1 -1
  11. package/cjs/src/embed/base.js +2 -0
  12. package/cjs/src/embed/base.js.map +1 -1
  13. package/cjs/src/embed/bodyless-conversation.d.ts +1 -1
  14. package/cjs/src/embed/conversation.d.ts +16 -0
  15. package/cjs/src/embed/conversation.d.ts.map +1 -1
  16. package/cjs/src/embed/conversation.js +5 -2
  17. package/cjs/src/embed/conversation.js.map +1 -1
  18. package/cjs/src/embed/conversation.spec.js +25 -1
  19. package/cjs/src/embed/conversation.spec.js.map +1 -1
  20. package/cjs/src/embed/hostEventClient/contracts.d.ts +1 -11
  21. package/cjs/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  22. package/cjs/src/embed/hostEventClient/contracts.js +0 -1
  23. package/cjs/src/embed/hostEventClient/contracts.js.map +1 -1
  24. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  25. package/cjs/src/embed/liveboard.js +5 -1
  26. package/cjs/src/embed/liveboard.js.map +1 -1
  27. package/cjs/src/embed/liveboard.spec.js +46 -0
  28. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  29. package/cjs/src/embed/sage.d.ts +4 -4
  30. package/cjs/src/embed/search.d.ts.map +1 -1
  31. package/cjs/src/embed/search.js +1 -3
  32. package/cjs/src/embed/search.js.map +1 -1
  33. package/cjs/src/embed/ts-embed.d.ts +0 -2
  34. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  35. package/cjs/src/embed/ts-embed.js +31 -44
  36. package/cjs/src/embed/ts-embed.js.map +1 -1
  37. package/cjs/src/embed/ts-embed.spec.js +134 -43
  38. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  39. package/cjs/src/errors.js +1 -1
  40. package/cjs/src/errors.js.map +1 -1
  41. package/cjs/src/index.d.ts +3 -3
  42. package/cjs/src/index.d.ts.map +1 -1
  43. package/cjs/src/index.js +1 -2
  44. package/cjs/src/index.js.map +1 -1
  45. package/cjs/src/react/all-types-export.d.ts +1 -2
  46. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  47. package/cjs/src/react/all-types-export.js +5 -3
  48. package/cjs/src/react/all-types-export.js.map +1 -1
  49. package/cjs/src/react/all-types-export.spec.js +0 -8
  50. package/cjs/src/react/all-types-export.spec.js.map +1 -1
  51. package/cjs/src/react/index.d.ts +1 -2
  52. package/cjs/src/react/index.d.ts.map +1 -1
  53. package/cjs/src/react/index.js +2 -1
  54. package/cjs/src/react/index.js.map +1 -1
  55. package/cjs/src/react/util.d.ts +1 -0
  56. package/cjs/src/react/util.d.ts.map +1 -1
  57. package/cjs/src/types.d.ts +80 -94
  58. package/cjs/src/types.d.ts.map +1 -1
  59. package/cjs/src/types.js +30 -46
  60. package/cjs/src/types.js.map +1 -1
  61. package/cjs/src/utils/custom-actions.d.ts.map +1 -1
  62. package/cjs/src/utils/custom-actions.js +9 -0
  63. package/cjs/src/utils/custom-actions.js.map +1 -1
  64. package/cjs/src/utils/custom-actions.spec.js +20 -0
  65. package/cjs/src/utils/custom-actions.spec.js.map +1 -1
  66. package/cjs/src/utils/processData.d.ts +1 -1
  67. package/cjs/src/utils/processData.d.ts.map +1 -1
  68. package/cjs/src/utils/processData.js +8 -8
  69. package/cjs/src/utils/processData.js.map +1 -1
  70. package/cjs/src/utils/processData.spec.js.map +1 -1
  71. package/dist/{index-DvNA626T.js → index-SVcLgSqi.js} +1 -1
  72. package/dist/src/css-variables.d.ts +0 -48
  73. package/dist/src/css-variables.d.ts.map +1 -1
  74. package/dist/src/embed/app.d.ts +20 -0
  75. package/dist/src/embed/app.d.ts.map +1 -1
  76. package/dist/src/embed/base.d.ts.map +1 -1
  77. package/dist/src/embed/bodyless-conversation.d.ts +1 -1
  78. package/dist/src/embed/conversation.d.ts +16 -0
  79. package/dist/src/embed/conversation.d.ts.map +1 -1
  80. package/dist/src/embed/hostEventClient/contracts.d.ts +1 -11
  81. package/dist/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  82. package/dist/src/embed/liveboard.d.ts.map +1 -1
  83. package/dist/src/embed/sage.d.ts +4 -4
  84. package/dist/src/embed/search.d.ts.map +1 -1
  85. package/dist/src/embed/ts-embed.d.ts +0 -2
  86. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  87. package/dist/src/index.d.ts +3 -3
  88. package/dist/src/index.d.ts.map +1 -1
  89. package/dist/src/react/all-types-export.d.ts +1 -2
  90. package/dist/src/react/all-types-export.d.ts.map +1 -1
  91. package/dist/src/react/index.d.ts +1 -2
  92. package/dist/src/react/index.d.ts.map +1 -1
  93. package/dist/src/react/util.d.ts +1 -0
  94. package/dist/src/react/util.d.ts.map +1 -1
  95. package/dist/src/types.d.ts +80 -94
  96. package/dist/src/types.d.ts.map +1 -1
  97. package/dist/src/utils/custom-actions.d.ts.map +1 -1
  98. package/dist/src/utils/processData.d.ts +1 -1
  99. package/dist/src/utils/processData.d.ts.map +1 -1
  100. package/dist/tsembed-react.es.js +114 -224
  101. package/dist/tsembed-react.js +258 -444
  102. package/dist/tsembed.es.js +113 -224
  103. package/dist/tsembed.js +256 -443
  104. package/dist/visual-embed-sdk-react-full.d.ts +126 -161
  105. package/dist/visual-embed-sdk-react.d.ts +117 -156
  106. package/dist/visual-embed-sdk.d.ts +117 -159
  107. package/lib/package.json +4 -3
  108. package/lib/src/css-variables.d.ts +0 -48
  109. package/lib/src/css-variables.d.ts.map +1 -1
  110. package/lib/src/embed/app.d.ts +20 -0
  111. package/lib/src/embed/app.d.ts.map +1 -1
  112. package/lib/src/embed/app.js +9 -4
  113. package/lib/src/embed/app.js.map +1 -1
  114. package/lib/src/embed/app.spec.js +62 -0
  115. package/lib/src/embed/app.spec.js.map +1 -1
  116. package/lib/src/embed/base.d.ts.map +1 -1
  117. package/lib/src/embed/base.js +2 -0
  118. package/lib/src/embed/base.js.map +1 -1
  119. package/lib/src/embed/bodyless-conversation.d.ts +1 -1
  120. package/lib/src/embed/conversation.d.ts +16 -0
  121. package/lib/src/embed/conversation.d.ts.map +1 -1
  122. package/lib/src/embed/conversation.js +5 -2
  123. package/lib/src/embed/conversation.js.map +1 -1
  124. package/lib/src/embed/conversation.spec.js +25 -1
  125. package/lib/src/embed/conversation.spec.js.map +1 -1
  126. package/lib/src/embed/hostEventClient/contracts.d.ts +1 -11
  127. package/lib/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  128. package/lib/src/embed/hostEventClient/contracts.js +0 -1
  129. package/lib/src/embed/hostEventClient/contracts.js.map +1 -1
  130. package/lib/src/embed/liveboard.d.ts.map +1 -1
  131. package/lib/src/embed/liveboard.js +5 -1
  132. package/lib/src/embed/liveboard.js.map +1 -1
  133. package/lib/src/embed/liveboard.spec.js +47 -1
  134. package/lib/src/embed/liveboard.spec.js.map +1 -1
  135. package/lib/src/embed/sage.d.ts +4 -4
  136. package/lib/src/embed/search.d.ts.map +1 -1
  137. package/lib/src/embed/search.js +1 -3
  138. package/lib/src/embed/search.js.map +1 -1
  139. package/lib/src/embed/ts-embed.d.ts +0 -2
  140. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  141. package/lib/src/embed/ts-embed.js +31 -44
  142. package/lib/src/embed/ts-embed.js.map +1 -1
  143. package/lib/src/embed/ts-embed.spec.js +134 -43
  144. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  145. package/lib/src/errors.js +1 -1
  146. package/lib/src/errors.js.map +1 -1
  147. package/lib/src/index.d.ts +3 -3
  148. package/lib/src/index.d.ts.map +1 -1
  149. package/lib/src/index.js +2 -2
  150. package/lib/src/index.js.map +1 -1
  151. package/lib/src/react/all-types-export.d.ts +1 -2
  152. package/lib/src/react/all-types-export.d.ts.map +1 -1
  153. package/lib/src/react/all-types-export.js +2 -2
  154. package/lib/src/react/all-types-export.js.map +1 -1
  155. package/lib/src/react/all-types-export.spec.js +0 -8
  156. package/lib/src/react/all-types-export.spec.js.map +1 -1
  157. package/lib/src/react/index.d.ts +1 -2
  158. package/lib/src/react/index.d.ts.map +1 -1
  159. package/lib/src/react/index.js +4 -3
  160. package/lib/src/react/index.js.map +1 -1
  161. package/lib/src/react/util.d.ts +1 -0
  162. package/lib/src/react/util.d.ts.map +1 -1
  163. package/lib/src/types.d.ts +80 -94
  164. package/lib/src/types.d.ts.map +1 -1
  165. package/lib/src/types.js +29 -45
  166. package/lib/src/types.js.map +1 -1
  167. package/lib/src/utils/custom-actions.d.ts.map +1 -1
  168. package/lib/src/utils/custom-actions.js +9 -0
  169. package/lib/src/utils/custom-actions.js.map +1 -1
  170. package/lib/src/utils/custom-actions.spec.js +20 -0
  171. package/lib/src/utils/custom-actions.spec.js.map +1 -1
  172. package/lib/src/utils/processData.d.ts +1 -1
  173. package/lib/src/utils/processData.d.ts.map +1 -1
  174. package/lib/src/utils/processData.js +8 -8
  175. package/lib/src/utils/processData.js.map +1 -1
  176. package/lib/src/utils/processData.spec.js.map +1 -1
  177. package/package.json +4 -3
  178. package/src/css-variables.ts +0 -58
  179. package/src/embed/app.spec.ts +87 -0
  180. package/src/embed/app.ts +35 -4
  181. package/src/embed/base.ts +2 -0
  182. package/src/embed/bodyless-conversation.ts +1 -1
  183. package/src/embed/conversation.spec.ts +35 -1
  184. package/src/embed/conversation.ts +22 -0
  185. package/src/embed/hostEventClient/contracts.ts +0 -10
  186. package/src/embed/liveboard.spec.ts +60 -0
  187. package/src/embed/liveboard.ts +9 -0
  188. package/src/embed/sage.ts +4 -4
  189. package/src/embed/search.ts +1 -3
  190. package/src/embed/ts-embed.spec.ts +175 -53
  191. package/src/embed/ts-embed.ts +45 -68
  192. package/src/errors.ts +1 -1
  193. package/src/index.ts +3 -4
  194. package/src/react/all-types-export.spec.ts +1 -9
  195. package/src/react/all-types-export.ts +8 -10
  196. package/src/react/index.tsx +130 -155
  197. package/src/types.ts +78 -94
  198. package/src/utils/custom-actions.spec.ts +22 -0
  199. package/src/utils/custom-actions.ts +11 -0
  200. package/src/utils/processData.spec.ts +1 -0
  201. package/src/utils/processData.ts +11 -11
  202. package/cjs/src/api-intercept.d.ts +0 -31
  203. package/cjs/src/api-intercept.d.ts.map +0 -1
  204. package/cjs/src/api-intercept.js +0 -119
  205. package/cjs/src/api-intercept.js.map +0 -1
  206. package/cjs/src/api-intercept.spec.d.ts +0 -2
  207. package/cjs/src/api-intercept.spec.d.ts.map +0 -1
  208. package/cjs/src/api-intercept.spec.js +0 -122
  209. package/cjs/src/api-intercept.spec.js.map +0 -1
  210. package/dist/index-BCC3Z072.js +0 -7371
  211. package/dist/index-BEzW4MDA.js +0 -7371
  212. package/dist/index-BaESA9rq.js +0 -7371
  213. package/dist/index-CFNZIcKr.js +0 -7447
  214. package/dist/index-CqKTa1Fe.js +0 -7447
  215. package/dist/index-DFnPKcjZ.js +0 -7447
  216. package/dist/index-DhFH7b7U.js +0 -7447
  217. package/dist/src/api-intercept.d.ts +0 -31
  218. package/dist/src/api-intercept.d.ts.map +0 -1
  219. package/dist/src/api-intercept.spec.d.ts +0 -2
  220. package/dist/src/api-intercept.spec.d.ts.map +0 -1
  221. package/lib/src/api-intercept.d.ts +0 -31
  222. package/lib/src/api-intercept.d.ts.map +0 -1
  223. package/lib/src/api-intercept.js +0 -112
  224. package/lib/src/api-intercept.js.map +0 -1
  225. package/lib/src/api-intercept.spec.d.ts +0 -2
  226. package/lib/src/api-intercept.spec.d.ts.map +0 -1
  227. package/lib/src/api-intercept.spec.js +0 -119
  228. package/lib/src/api-intercept.spec.js.map +0 -1
  229. package/src/api-intercept.ts +0 -139
@@ -1,122 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const api_intercept_1 = require("./api-intercept");
5
- const types_1 = require("./types");
6
- const embedCfg = tslib_1.__importStar(require("./embed/embedConfig"));
7
- const cfg = tslib_1.__importStar(require("./config"));
8
- const logger_1 = require("./utils/logger");
9
- describe('api-intercept', () => {
10
- beforeEach(() => {
11
- jest.restoreAllMocks();
12
- jest.clearAllMocks();
13
- });
14
- describe('getInterceptInitData', () => {
15
- test('returns disabled when not enabled in either config', () => {
16
- const init = (0, api_intercept_1.getInterceptInitData)({}, {});
17
- expect(init).toEqual({ enableApiIntercept: false });
18
- });
19
- test('merges urls and expands api types, formats with host', () => {
20
- jest.spyOn(embedCfg, 'getEmbedConfig').mockReturnValue({ thoughtSpotHost: 'http://tshost' });
21
- jest.spyOn(cfg, 'getThoughtSpotHost').mockReturnValue('http://tshost');
22
- const embedConfig = { enableApiIntercept: true };
23
- const viewConfig = { interceptUrls: [types_1.InterceptedApiType.METADATA, '/custom/path'] };
24
- const init = (0, api_intercept_1.getInterceptInitData)(embedConfig, viewConfig);
25
- expect(init.enableApiIntercept).toBe(true);
26
- expect(init.interceptUrls).toEqual(expect.arrayContaining([
27
- 'http://tshost/prism/?op=CreateAnswerSession',
28
- 'http://tshost/prism/?op=GetV2SourceDetail',
29
- 'http://tshost/custom/path',
30
- ]));
31
- });
32
- test('honors InterceptedApiType.ALL and interceptTimeout', () => {
33
- const embedConfig = { enableApiIntercept: true, interceptTimeout: 2500 };
34
- const viewConfig = { interceptUrls: [types_1.InterceptedApiType.ALL] };
35
- const init = (0, api_intercept_1.getInterceptInitData)(embedConfig, viewConfig);
36
- expect(init).toEqual({
37
- enableApiIntercept: true,
38
- interceptUrls: [types_1.InterceptedApiType.ALL],
39
- interceptTimeout: 2500,
40
- });
41
- });
42
- test('legacy flag isOnBeforeGetVizDataInterceptEnabled adds ANSWER_DATA', () => {
43
- jest.spyOn(embedCfg, 'getEmbedConfig').mockReturnValue({ thoughtSpotHost: 'http://tshost' });
44
- jest.spyOn(cfg, 'getThoughtSpotHost').mockReturnValue('http://tshost');
45
- const embedConfig = { enableApiIntercept: true };
46
- const viewConfig = { isOnBeforeGetVizDataInterceptEnabled: true, interceptUrls: [] };
47
- const init = (0, api_intercept_1.getInterceptInitData)(embedConfig, viewConfig);
48
- // Should expand to concrete ANSWER_DATA URLs
49
- expect(init.interceptUrls).toEqual(expect.arrayContaining([
50
- 'http://tshost/prism/?op=GetChartWithData',
51
- 'http://tshost/prism/?op=GetTableWithHeadlineData',
52
- ]));
53
- });
54
- test('viewConfig enableApiIntercept=false overrides embed config', () => {
55
- const embedConfig = { enableApiIntercept: true };
56
- const viewConfig = { enableApiIntercept: false };
57
- const init = (0, api_intercept_1.getInterceptInitData)(embedConfig, viewConfig);
58
- expect(init).toEqual({ enableApiIntercept: false });
59
- });
60
- });
61
- describe('processApiIntercept', () => {
62
- test('parses data JSON string', async () => {
63
- const result = await (0, api_intercept_1.processApiIntercept)({ data: JSON.stringify({ foo: 'bar' }) });
64
- expect(result).toEqual({ foo: 'bar' });
65
- });
66
- });
67
- describe('handleInterceptEvent', () => {
68
- test('emits error on body parse failure', async () => {
69
- const executeEvent = jest.fn();
70
- const loggerErrSpy = jest.spyOn(logger_1.logger, 'error').mockImplementation(() => undefined);
71
- await (0, api_intercept_1.handleInterceptEvent)({
72
- eventData: { data: 'not-a-json' },
73
- executeEvent,
74
- embedConfig: {},
75
- viewConfig: {},
76
- getUnsavedAnswerTml: jest.fn(),
77
- });
78
- expect(executeEvent).toHaveBeenCalledWith(types_1.EmbedEvent.Error, { error: 'Error parsing api intercept body' });
79
- loggerErrSpy.mockReset();
80
- });
81
- test('calls getUnsavedAnswerTml and emits legacy + ApiIntercept events when applicable', async () => {
82
- const executeEvent = jest.fn();
83
- const getUnsavedAnswerTml = jest.fn().mockResolvedValue({ tml: 'TML_STRING' });
84
- const eventPayload = {
85
- input: '/prism/?op=GetChartWithData',
86
- init: {
87
- body: JSON.stringify({
88
- variables: {
89
- session: { sessionId: 'S1' },
90
- contextBookId: 'V1',
91
- },
92
- }),
93
- },
94
- };
95
- await (0, api_intercept_1.handleInterceptEvent)({
96
- eventData: { data: JSON.stringify(eventPayload) },
97
- executeEvent,
98
- embedConfig: {},
99
- viewConfig: { isOnBeforeGetVizDataInterceptEnabled: true },
100
- getUnsavedAnswerTml,
101
- });
102
- expect(getUnsavedAnswerTml).toHaveBeenCalledWith({ sessionId: 'S1', vizId: 'V1' });
103
- expect(executeEvent).toHaveBeenCalledWith(types_1.EmbedEvent.OnBeforeGetVizDataIntercept, { data: { data: { tml: 'TML_STRING' } } });
104
- expect(executeEvent).toHaveBeenCalledWith(types_1.EmbedEvent.ApiIntercept, expect.objectContaining({ input: '/prism/?op=GetChartWithData' }));
105
- });
106
- });
107
- describe('processLegacyInterceptResponse', () => {
108
- test('wraps legacy error payload as expected', () => {
109
- const payload = { data: { errorText: 'Title', errorDescription: 'Desc' } };
110
- const res = (0, api_intercept_1.processLegacyInterceptResponse)(payload);
111
- expect(Array.isArray(res)).toBe(true);
112
- expect(res[0]).toEqual(expect.objectContaining({
113
- errors: [
114
- expect.objectContaining({
115
- errorObj: expect.objectContaining({ title: 'Title', desc: 'Desc' }),
116
- }),
117
- ],
118
- }));
119
- });
120
- });
121
- });
122
- //# sourceMappingURL=api-intercept.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-intercept.spec.js","sourceRoot":"","sources":["../../src/api-intercept.spec.ts"],"names":[],"mappings":"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"}