@thoughtspot/visual-embed-sdk 1.26.6 → 1.26.7

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 (263) hide show
  1. package/README.md +2 -2
  2. package/cjs/package.json +1 -1
  3. package/cjs/src/auth.d.ts +4 -4
  4. package/cjs/src/auth.d.ts.map +1 -1
  5. package/cjs/src/auth.js +16 -9
  6. package/cjs/src/auth.js.map +1 -1
  7. package/cjs/src/embed/app.d.ts +15 -15
  8. package/cjs/src/embed/app.d.ts.map +1 -1
  9. package/cjs/src/embed/app.js +4 -3
  10. package/cjs/src/embed/app.js.map +1 -1
  11. package/cjs/src/embed/app.spec.js +5 -4
  12. package/cjs/src/embed/app.spec.js.map +1 -1
  13. package/cjs/src/embed/base.d.ts +1 -1
  14. package/cjs/src/embed/base.d.ts.map +1 -1
  15. package/cjs/src/embed/base.js +9 -6
  16. package/cjs/src/embed/base.js.map +1 -1
  17. package/cjs/src/embed/base.spec.js +4 -3
  18. package/cjs/src/embed/base.spec.js.map +1 -1
  19. package/cjs/src/embed/embed.spec.js +2 -1
  20. package/cjs/src/embed/embed.spec.js.map +1 -1
  21. package/cjs/src/embed/embedConfig.d.ts +2 -1
  22. package/cjs/src/embed/embedConfig.d.ts.map +1 -1
  23. package/cjs/src/embed/embedConfig.js +2 -0
  24. package/cjs/src/embed/embedConfig.js.map +1 -1
  25. package/cjs/src/embed/events.spec.js +3 -2
  26. package/cjs/src/embed/events.spec.js.map +1 -1
  27. package/cjs/src/embed/liveboard.d.ts +35 -23
  28. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  29. package/cjs/src/embed/liveboard.js +8 -4
  30. package/cjs/src/embed/liveboard.js.map +1 -1
  31. package/cjs/src/embed/liveboard.spec.js +2 -1
  32. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  33. package/cjs/src/embed/sage.d.ts +48 -30
  34. package/cjs/src/embed/sage.d.ts.map +1 -1
  35. package/cjs/src/embed/sage.js +7 -6
  36. package/cjs/src/embed/sage.js.map +1 -1
  37. package/cjs/src/embed/sage.spec.js +3 -3
  38. package/cjs/src/embed/sage.spec.js.map +1 -1
  39. package/cjs/src/embed/search-bar.d.ts +22 -6
  40. package/cjs/src/embed/search-bar.d.ts.map +1 -1
  41. package/cjs/src/embed/search-bar.js.map +1 -1
  42. package/cjs/src/embed/search.d.ts +35 -16
  43. package/cjs/src/embed/search.d.ts.map +1 -1
  44. package/cjs/src/embed/search.js +10 -6
  45. package/cjs/src/embed/search.js.map +1 -1
  46. package/cjs/src/embed/search.spec.js +10 -0
  47. package/cjs/src/embed/search.spec.js.map +1 -1
  48. package/cjs/src/embed/ts-embed.d.ts +2 -1
  49. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  50. package/cjs/src/embed/ts-embed.js +45 -22
  51. package/cjs/src/embed/ts-embed.js.map +1 -1
  52. package/cjs/src/embed/ts-embed.spec.js +153 -32
  53. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  54. package/cjs/src/index.d.ts +2 -2
  55. package/cjs/src/index.d.ts.map +1 -1
  56. package/cjs/src/index.js +2 -1
  57. package/cjs/src/index.js.map +1 -1
  58. package/cjs/src/mixpanel-service.d.ts.map +1 -1
  59. package/cjs/src/mixpanel-service.js +2 -1
  60. package/cjs/src/mixpanel-service.js.map +1 -1
  61. package/cjs/src/react/index.d.ts +1 -1
  62. package/cjs/src/react/index.d.ts.map +1 -1
  63. package/cjs/src/react/index.js +2 -1
  64. package/cjs/src/react/index.js.map +1 -1
  65. package/cjs/src/react/index.spec.js +2 -2
  66. package/cjs/src/react/index.spec.js.map +1 -1
  67. package/cjs/src/types.d.ts +742 -237
  68. package/cjs/src/types.d.ts.map +1 -1
  69. package/cjs/src/types.js +653 -169
  70. package/cjs/src/types.js.map +1 -1
  71. package/cjs/src/utils/authService/authService.d.ts.map +1 -1
  72. package/cjs/src/utils/authService/authService.js +3 -2
  73. package/cjs/src/utils/authService/authService.js.map +1 -1
  74. package/cjs/src/utils/authService/authService.spec.js +3 -2
  75. package/cjs/src/utils/authService/authService.spec.js.map +1 -1
  76. package/cjs/src/utils/authService/tokenizedAuthService.d.ts.map +1 -1
  77. package/cjs/src/utils/authService/tokenizedAuthService.js +2 -1
  78. package/cjs/src/utils/authService/tokenizedAuthService.js.map +1 -1
  79. package/cjs/src/utils/graphql/answerService/answerService.d.ts +2 -4
  80. package/cjs/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  81. package/cjs/src/utils/graphql/answerService/answerService.js +2 -4
  82. package/cjs/src/utils/graphql/answerService/answerService.js.map +1 -1
  83. package/cjs/src/utils/logger.d.ts +18 -0
  84. package/cjs/src/utils/logger.d.ts.map +1 -0
  85. package/cjs/src/utils/logger.js +80 -0
  86. package/cjs/src/utils/logger.js.map +1 -0
  87. package/cjs/src/utils/logger.spec.d.ts +25 -0
  88. package/cjs/src/utils/logger.spec.d.ts.map +1 -0
  89. package/cjs/src/utils/logger.spec.js +116 -0
  90. package/cjs/src/utils/logger.spec.js.map +1 -0
  91. package/cjs/src/utils/processData.d.ts +6 -0
  92. package/cjs/src/utils/processData.d.ts.map +1 -1
  93. package/cjs/src/utils/processData.js +5 -1
  94. package/cjs/src/utils/processData.js.map +1 -1
  95. package/cjs/src/utils/processTrigger.js +1 -1
  96. package/dist/src/auth.d.ts +4 -4
  97. package/dist/src/auth.d.ts.map +1 -1
  98. package/dist/src/embed/app.d.ts +15 -15
  99. package/dist/src/embed/app.d.ts.map +1 -1
  100. package/dist/src/embed/base.d.ts +1 -1
  101. package/dist/src/embed/base.d.ts.map +1 -1
  102. package/dist/src/embed/embedConfig.d.ts +2 -1
  103. package/dist/src/embed/embedConfig.d.ts.map +1 -1
  104. package/dist/src/embed/liveboard.d.ts +35 -23
  105. package/dist/src/embed/liveboard.d.ts.map +1 -1
  106. package/dist/src/embed/sage.d.ts +48 -30
  107. package/dist/src/embed/sage.d.ts.map +1 -1
  108. package/dist/src/embed/search-bar.d.ts +22 -6
  109. package/dist/src/embed/search-bar.d.ts.map +1 -1
  110. package/dist/src/embed/search.d.ts +35 -16
  111. package/dist/src/embed/search.d.ts.map +1 -1
  112. package/dist/src/embed/ts-embed.d.ts +2 -1
  113. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  114. package/dist/src/index.d.ts +2 -2
  115. package/dist/src/index.d.ts.map +1 -1
  116. package/dist/src/mixpanel-service.d.ts.map +1 -1
  117. package/dist/src/react/index.d.ts +1 -1
  118. package/dist/src/react/index.d.ts.map +1 -1
  119. package/dist/src/types.d.ts +742 -237
  120. package/dist/src/types.d.ts.map +1 -1
  121. package/dist/src/utils/authService/authService.d.ts.map +1 -1
  122. package/dist/src/utils/authService/tokenizedAuthService.d.ts.map +1 -1
  123. package/dist/src/utils/graphql/answerService/answerService.d.ts +2 -4
  124. package/dist/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  125. package/dist/src/utils/logger.d.ts +18 -0
  126. package/dist/src/utils/logger.d.ts.map +1 -0
  127. package/dist/src/utils/logger.spec.d.ts +25 -0
  128. package/dist/src/utils/logger.spec.d.ts.map +1 -0
  129. package/dist/src/utils/processData.d.ts +6 -0
  130. package/dist/src/utils/processData.d.ts.map +1 -1
  131. package/dist/tsembed-react.es.js +3716 -3107
  132. package/dist/tsembed-react.js +3620 -3012
  133. package/dist/tsembed.es.js +9830 -9212
  134. package/dist/tsembed.js +15079 -14462
  135. package/dist/visual-embed-sdk-react-full.d.ts +923 -332
  136. package/dist/visual-embed-sdk-react.d.ts +923 -332
  137. package/dist/visual-embed-sdk.d.ts +923 -332
  138. package/lib/package.json +1 -1
  139. package/lib/src/auth.d.ts +4 -4
  140. package/lib/src/auth.d.ts.map +1 -1
  141. package/lib/src/auth.js +17 -10
  142. package/lib/src/auth.js.map +1 -1
  143. package/lib/src/embed/app.d.ts +15 -15
  144. package/lib/src/embed/app.d.ts.map +1 -1
  145. package/lib/src/embed/app.js +4 -3
  146. package/lib/src/embed/app.js.map +1 -1
  147. package/lib/src/embed/app.spec.js +5 -4
  148. package/lib/src/embed/app.spec.js.map +1 -1
  149. package/lib/src/embed/base.d.ts +1 -1
  150. package/lib/src/embed/base.d.ts.map +1 -1
  151. package/lib/src/embed/base.js +9 -6
  152. package/lib/src/embed/base.js.map +1 -1
  153. package/lib/src/embed/base.spec.js +5 -4
  154. package/lib/src/embed/base.spec.js.map +1 -1
  155. package/lib/src/embed/embed.spec.js +2 -1
  156. package/lib/src/embed/embed.spec.js.map +1 -1
  157. package/lib/src/embed/embedConfig.d.ts +2 -1
  158. package/lib/src/embed/embedConfig.d.ts.map +1 -1
  159. package/lib/src/embed/embedConfig.js +2 -0
  160. package/lib/src/embed/embedConfig.js.map +1 -1
  161. package/lib/src/embed/events.spec.js +3 -2
  162. package/lib/src/embed/events.spec.js.map +1 -1
  163. package/lib/src/embed/liveboard.d.ts +35 -23
  164. package/lib/src/embed/liveboard.d.ts.map +1 -1
  165. package/lib/src/embed/liveboard.js +8 -4
  166. package/lib/src/embed/liveboard.js.map +1 -1
  167. package/lib/src/embed/liveboard.spec.js +2 -1
  168. package/lib/src/embed/liveboard.spec.js.map +1 -1
  169. package/lib/src/embed/sage.d.ts +48 -30
  170. package/lib/src/embed/sage.d.ts.map +1 -1
  171. package/lib/src/embed/sage.js +7 -6
  172. package/lib/src/embed/sage.js.map +1 -1
  173. package/lib/src/embed/sage.spec.js +3 -3
  174. package/lib/src/embed/sage.spec.js.map +1 -1
  175. package/lib/src/embed/search-bar.d.ts +22 -6
  176. package/lib/src/embed/search-bar.d.ts.map +1 -1
  177. package/lib/src/embed/search-bar.js.map +1 -1
  178. package/lib/src/embed/search.d.ts +35 -16
  179. package/lib/src/embed/search.d.ts.map +1 -1
  180. package/lib/src/embed/search.js +11 -7
  181. package/lib/src/embed/search.js.map +1 -1
  182. package/lib/src/embed/search.spec.js +10 -0
  183. package/lib/src/embed/search.spec.js.map +1 -1
  184. package/lib/src/embed/ts-embed.d.ts +2 -1
  185. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  186. package/lib/src/embed/ts-embed.js +48 -25
  187. package/lib/src/embed/ts-embed.js.map +1 -1
  188. package/lib/src/embed/ts-embed.spec.js +153 -32
  189. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  190. package/lib/src/index.d.ts +2 -2
  191. package/lib/src/index.d.ts.map +1 -1
  192. package/lib/src/index.js +2 -2
  193. package/lib/src/index.js.map +1 -1
  194. package/lib/src/mixpanel-service.d.ts.map +1 -1
  195. package/lib/src/mixpanel-service.js +2 -1
  196. package/lib/src/mixpanel-service.js.map +1 -1
  197. package/lib/src/react/index.d.ts +1 -1
  198. package/lib/src/react/index.d.ts.map +1 -1
  199. package/lib/src/react/index.js +1 -1
  200. package/lib/src/react/index.js.map +1 -1
  201. package/lib/src/react/index.spec.js +2 -2
  202. package/lib/src/react/index.spec.js.map +1 -1
  203. package/lib/src/types.d.ts +742 -237
  204. package/lib/src/types.d.ts.map +1 -1
  205. package/lib/src/types.js +652 -168
  206. package/lib/src/types.js.map +1 -1
  207. package/lib/src/utils/authService/authService.d.ts.map +1 -1
  208. package/lib/src/utils/authService/authService.js +3 -2
  209. package/lib/src/utils/authService/authService.js.map +1 -1
  210. package/lib/src/utils/authService/authService.spec.js +4 -3
  211. package/lib/src/utils/authService/authService.spec.js.map +1 -1
  212. package/lib/src/utils/authService/tokenizedAuthService.d.ts.map +1 -1
  213. package/lib/src/utils/authService/tokenizedAuthService.js +2 -1
  214. package/lib/src/utils/authService/tokenizedAuthService.js.map +1 -1
  215. package/lib/src/utils/graphql/answerService/answerService.d.ts +2 -4
  216. package/lib/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  217. package/lib/src/utils/graphql/answerService/answerService.js +2 -4
  218. package/lib/src/utils/graphql/answerService/answerService.js.map +1 -1
  219. package/lib/src/utils/logger.d.ts +18 -0
  220. package/lib/src/utils/logger.d.ts.map +1 -0
  221. package/lib/src/utils/logger.js +74 -0
  222. package/lib/src/utils/logger.js.map +1 -0
  223. package/lib/src/utils/logger.spec.d.ts +25 -0
  224. package/lib/src/utils/logger.spec.d.ts.map +1 -0
  225. package/lib/src/utils/logger.spec.js +93 -0
  226. package/lib/src/utils/logger.spec.js.map +1 -0
  227. package/lib/src/utils/processData.d.ts +6 -0
  228. package/lib/src/utils/processData.d.ts.map +1 -1
  229. package/lib/src/utils/processData.js +4 -1
  230. package/lib/src/utils/processData.js.map +1 -1
  231. package/lib/src/utils/processTrigger.js +1 -1
  232. package/lib/src/visual-embed-sdk.d.ts +927 -336
  233. package/package.json +1 -1
  234. package/src/auth.ts +20 -13
  235. package/src/embed/app.spec.ts +5 -4
  236. package/src/embed/app.ts +23 -22
  237. package/src/embed/base.spec.ts +6 -5
  238. package/src/embed/base.ts +18 -11
  239. package/src/embed/embed.spec.ts +2 -1
  240. package/src/embed/embedConfig.ts +2 -0
  241. package/src/embed/events.spec.ts +3 -2
  242. package/src/embed/liveboard.spec.ts +2 -1
  243. package/src/embed/liveboard.ts +43 -27
  244. package/src/embed/sage.spec.ts +3 -3
  245. package/src/embed/sage.ts +54 -36
  246. package/src/embed/search-bar.tsx +22 -6
  247. package/src/embed/search.spec.ts +13 -0
  248. package/src/embed/search.ts +46 -21
  249. package/src/embed/ts-embed.spec.ts +182 -43
  250. package/src/embed/ts-embed.ts +78 -59
  251. package/src/index.ts +2 -0
  252. package/src/mixpanel-service.ts +2 -1
  253. package/src/react/index.spec.tsx +2 -2
  254. package/src/react/index.tsx +1 -0
  255. package/src/types.ts +753 -245
  256. package/src/utils/authService/authService.spec.ts +7 -6
  257. package/src/utils/authService/authService.ts +4 -2
  258. package/src/utils/authService/tokenizedAuthService.ts +2 -1
  259. package/src/utils/graphql/answerService/answerService.ts +2 -4
  260. package/src/utils/logger.spec.ts +108 -0
  261. package/src/utils/logger.ts +88 -0
  262. package/src/utils/processData.ts +4 -1
  263. package/src/utils/processTrigger.ts +1 -1
@@ -1,12 +1,13 @@
1
1
  import {
2
- fetchSessionInfoService,
3
- fetchAuthTokenService,
2
+ EndPoints,
3
+ fetchAuthPostService,
4
4
  fetchAuthService,
5
+ fetchAuthTokenService,
5
6
  fetchBasicAuthService,
6
- fetchAuthPostService,
7
+ fetchSessionInfoService,
7
8
  verifyTokenService,
8
- EndPoints,
9
9
  } from '.';
10
+ import { logger } from '../logger';
10
11
 
11
12
  const thoughtSpotHost = 'http://10.79.135.124:3000';
12
13
 
@@ -74,14 +75,14 @@ describe('Unit test for authService', () => {
74
75
  });
75
76
 
76
77
  test('log error on API failures', async () => {
77
- jest.spyOn(global.console, 'error').mockImplementation(() => undefined);
78
+ jest.spyOn(logger, 'error').mockImplementation(() => undefined);
78
79
  global.fetch = jest.fn(() => Promise.resolve({
79
80
  text: () => Promise.resolve('error'),
80
81
  status: 500,
81
82
  ok: false,
82
83
  }));
83
84
  await fetchSessionInfoService(authVerificationUrl);
84
- expect(global.console.error).toHaveBeenCalledWith('Failure', 'error');
85
+ expect(logger.error).toHaveBeenCalledWith('Failure', 'error');
85
86
  });
86
87
 
87
88
  test('verifyTokenService', async () => {
@@ -1,3 +1,5 @@
1
+ import { logger } from '../logger';
2
+
1
3
  export const EndPoints = {
2
4
  AUTH_VERIFICATION: '/callosum/v1/session/info',
3
5
  SAML_LOGIN_TEMPLATE: (targetUrl: string) => `/callosum/v1/saml/login?targetURLPath=${targetUrl}`,
@@ -18,7 +20,7 @@ export const EndPoints = {
18
20
  function failureLoggedFetch(url: string, options: RequestInit = {}): Promise<Response> {
19
21
  return fetch(url, options).then(async (r) => {
20
22
  if (!r.ok && r.type !== 'opaqueredirect' && r.type !== 'opaque') {
21
- console.error('Failure', await r.text?.());
23
+ logger.error('Failure', await r.text?.());
22
24
  }
23
25
  return r;
24
26
  });
@@ -45,7 +47,7 @@ export async function verifyTokenService(
45
47
  });
46
48
  return res.ok;
47
49
  } catch (e) {
48
- console.error(`Token Verification Service failed : ${e.message}`);
50
+ logger.error(`Token Verification Service failed : ${e.message}`);
49
51
  }
50
52
 
51
53
  return false;
@@ -1,4 +1,5 @@
1
1
  import { tokenizedFetch } from '../../tokenizedFetch';
2
+ import { logger } from '../logger';
2
3
  import { EndPoints } from './authService';
3
4
 
4
5
  /**
@@ -9,7 +10,7 @@ import { EndPoints } from './authService';
9
10
  function tokenisedFailureLoggedFetch(url: string, options: RequestInit = {}): Promise<Response> {
10
11
  return tokenizedFetch(url, options).then(async (r) => {
11
12
  if (!r.ok && r.type !== 'opaqueredirect' && r.type !== 'opaque') {
12
- console.error('Failure', await r.text?.());
13
+ logger.error('Failure', await r.text?.());
13
14
  }
14
15
  return r;
15
16
  });
@@ -37,8 +37,7 @@ interface UnderlyingDataPoint {
37
37
  * const data = await underlying.fetchData(0, 100);
38
38
  * })
39
39
  * ```
40
- * @version
41
- * ThoughtSpot: 9.9.0.cl / SDK: 1.25.0
40
+ * @version SDK: 1.25.0| ThoughtSpot: 9.10.0.cl
42
41
  * @group Events
43
42
  */
44
43
  export class AnswerService {
@@ -129,8 +128,7 @@ export class AnswerService {
129
128
  * const data = await underlying.fetchData(0, 100);
130
129
  * })
131
130
  * ```
132
- * @version
133
- * ThoughtSpot: 9.9.0.cl / SDK: 1.25.0
131
+ * @version SDK: 1.25.0| ThoughtSpot: 9.10.0.cl
134
132
  */
135
133
  public async getUnderlyingDataForPoint(
136
134
  outputColumnNames: string[],
@@ -0,0 +1,108 @@
1
+ let logger: any;
2
+ let LogLevel: any;
3
+ let setGlobalLogLevelOverride: any;
4
+
5
+ const consoleErrorSpy = jest.spyOn(console, 'error');
6
+ const consoleWarnSpy = jest.spyOn(console, 'warn');
7
+ const consoleInfoSpy = jest.spyOn(console, 'info');
8
+ const consoleDebugSpy = jest.spyOn(console, 'debug');
9
+ const consoleTraceSpy = jest.spyOn(console, 'trace');
10
+
11
+ describe('Logger', () => {
12
+ beforeAll(async () => {
13
+ const a = await import('./logger');
14
+ logger = a.logger;
15
+ LogLevel = a.LogLevel;
16
+ setGlobalLogLevelOverride = a.setGlobalLogLevelOverride;
17
+ });
18
+
19
+ beforeEach(() => {
20
+ // Reset the logger's log level before each test
21
+ setGlobalLogLevelOverride(LogLevel.TRACE);
22
+ logger.setLogLevel(LogLevel.ERROR);
23
+
24
+ consoleErrorSpy.mockRestore();
25
+ consoleWarnSpy.mockRestore();
26
+ consoleInfoSpy.mockRestore();
27
+ consoleDebugSpy.mockRestore();
28
+ consoleTraceSpy.mockRestore();
29
+ });
30
+
31
+ it('should set the log level correctly', () => {
32
+ logger.setLogLevel(LogLevel.INFO);
33
+ expect(logger.getLogLevel()).toBe(LogLevel.INFO);
34
+
35
+ logger.setLogLevel(LogLevel.DEBUG);
36
+ expect(logger.getLogLevel()).toBe(LogLevel.DEBUG);
37
+ });
38
+
39
+ it('should log messages based on the log level', () => {
40
+ setGlobalLogLevelOverride(undefined);
41
+
42
+ logger.setLogLevel(LogLevel.SILENT);
43
+ logger.logMessages(['log me'], LogLevel.SILENT);
44
+ logger.error('Error message');
45
+ logger.warn('Warning message');
46
+ logger.debug('Debug message');
47
+ expect(consoleErrorSpy).not.toHaveBeenCalled();
48
+ expect(consoleWarnSpy).not.toHaveBeenCalled();
49
+ expect(consoleDebugSpy).not.toHaveBeenCalled();
50
+
51
+ logger.setLogLevel(LogLevel.ERROR);
52
+ logger.error('Error message');
53
+ logger.warn('Warning message');
54
+ logger.debug('Debug message');
55
+ expect(consoleErrorSpy).toHaveBeenCalledWith('Error message');
56
+ expect(consoleWarnSpy).not.toHaveBeenCalled();
57
+ expect(consoleDebugSpy).not.toHaveBeenCalled();
58
+
59
+ logger.error('Warning message');
60
+ logger.warn('Warning message');
61
+ logger.debug('Debug message');
62
+ expect(consoleTraceSpy).not.toHaveBeenCalled();
63
+
64
+ logger.setLogLevel(LogLevel.WARN);
65
+ logger.error('Warning message');
66
+ logger.warn('Warning message');
67
+ logger.debug('Debug message');
68
+ expect(consoleErrorSpy).toHaveBeenCalledWith('Warning message');
69
+ expect(consoleWarnSpy).toHaveBeenCalledWith('Warning message');
70
+ expect(consoleDebugSpy).not.toHaveBeenCalled();
71
+
72
+ logger.setLogLevel(LogLevel.DEBUG);
73
+ logger.error('Warning message');
74
+ logger.warn('Warning message');
75
+ logger.debug('Debug message');
76
+ expect(consoleErrorSpy).toHaveBeenCalledWith('Warning message');
77
+ expect(consoleWarnSpy).toHaveBeenCalledWith('Warning message');
78
+ expect(consoleDebugSpy).toHaveBeenCalledWith('Debug message');
79
+ });
80
+
81
+ it('should log messages with the global log level override', () => {
82
+ setGlobalLogLevelOverride(LogLevel.WARN);
83
+
84
+ logger.error('Error message');
85
+ logger.warn('Warn message');
86
+ logger.info('Info message');
87
+ logger.trace('Trace message');
88
+ expect(consoleErrorSpy).toHaveBeenCalledWith('Error message');
89
+ expect(consoleWarnSpy).toHaveBeenCalledWith('Warn message');
90
+ expect(consoleInfoSpy).not.toHaveBeenCalled();
91
+ expect(consoleDebugSpy).not.toHaveBeenCalled();
92
+ expect(consoleTraceSpy).not.toHaveBeenCalled();
93
+ });
94
+
95
+ it('If global level is not set , default local level (error) should be used', () => {
96
+ setGlobalLogLevelOverride(undefined);
97
+
98
+ logger.error('Error message');
99
+ logger.warn('Warn message');
100
+ logger.info('Info message');
101
+ logger.trace('Trace message');
102
+ expect(consoleErrorSpy).toHaveBeenCalledWith('Error message');
103
+ expect(consoleWarnSpy).not.toHaveBeenCalled();
104
+ expect(consoleInfoSpy).not.toHaveBeenCalled();
105
+ expect(consoleDebugSpy).not.toHaveBeenCalled();
106
+ expect(consoleTraceSpy).not.toHaveBeenCalled();
107
+ });
108
+ });
@@ -0,0 +1,88 @@
1
+ import isUndefined from 'lodash/isUndefined';
2
+ import noop from 'lodash/noop';
3
+ import { LogLevel } from '../types';
4
+
5
+ const logFunctions: {
6
+ [key: string]: (...args: any[]) => void;
7
+ } = {
8
+ [LogLevel.SILENT]: noop,
9
+ [LogLevel.ERROR]: console.error,
10
+ [LogLevel.WARN]: console.warn,
11
+ [LogLevel.INFO]: console.info,
12
+ [LogLevel.DEBUG]: console.debug,
13
+ [LogLevel.TRACE]: console.trace,
14
+ };
15
+
16
+ let globalLogLevelOverride: LogLevel = LogLevel.TRACE;
17
+ const setGlobalLogLevelOverride = (logLevel: LogLevel): void => {
18
+ globalLogLevelOverride = logLevel;
19
+ };
20
+
21
+ const logLevelToNumber: { [key: string]: number } = {
22
+ [LogLevel.SILENT]: 0,
23
+ [LogLevel.ERROR]: 1,
24
+ [LogLevel.WARN]: 2,
25
+ [LogLevel.INFO]: 3,
26
+ [LogLevel.DEBUG]: 4,
27
+ [LogLevel.TRACE]: 5,
28
+ };
29
+ const compareLogLevels = (logLevel1: LogLevel, logLevel2: LogLevel): number => {
30
+ const logLevel1Index = logLevelToNumber[logLevel1];
31
+ const logLevel2Index = logLevelToNumber[logLevel2];
32
+ return logLevel1Index - logLevel2Index;
33
+ };
34
+
35
+ class Logger {
36
+ private logLevel: LogLevel = LogLevel.ERROR;
37
+
38
+ public setLogLevel = (newLogLevel: LogLevel): void => {
39
+ this.logLevel = newLogLevel;
40
+ };
41
+
42
+ public getLogLevel = (): LogLevel => this.logLevel;
43
+
44
+ public canLog(logLevel: LogLevel): boolean {
45
+ if (logLevel === LogLevel.SILENT) return false;
46
+ if (!isUndefined(globalLogLevelOverride)) {
47
+ return compareLogLevels(globalLogLevelOverride, logLevel) >= 0;
48
+ }
49
+ return compareLogLevels(this.logLevel, logLevel) >= 0;
50
+ }
51
+
52
+ public logMessages(args: any[], logLevel: LogLevel): void {
53
+ if (this.canLog(logLevel)) {
54
+ const logFn = logFunctions[logLevel];
55
+ if (logFn) {
56
+ logFn(...args);
57
+ }
58
+ }
59
+ }
60
+
61
+ public log(...args: any[]): void {
62
+ this.info(args);
63
+ }
64
+
65
+ public info(...args: any[]): void {
66
+ this.logMessages(args, LogLevel.INFO);
67
+ }
68
+
69
+ public debug(...args: any[]): void {
70
+ this.logMessages(args, LogLevel.DEBUG);
71
+ }
72
+
73
+ public trace(...args: any[]): void {
74
+ this.logMessages(args, LogLevel.TRACE);
75
+ }
76
+
77
+ public error(...args: any[]): void {
78
+ this.logMessages(args, LogLevel.ERROR);
79
+ }
80
+
81
+ public warn(...args: any[]): void {
82
+ this.logMessages(args, LogLevel.WARN);
83
+ }
84
+ }
85
+
86
+ const logger = new Logger();
87
+
88
+ export { LogLevel, logger, setGlobalLogLevelOverride };
@@ -8,6 +8,7 @@ import {
8
8
  import { AuthFailureType, initSession } from '../auth';
9
9
  import { AuthType, CustomActionPayload, EmbedEvent } from '../types';
10
10
  import { AnswerService } from './graphql/answerService/answerService';
11
+ import { resetCachedAuthToken } from '../authToken';
11
12
 
12
13
  /**
13
14
  *
@@ -77,13 +78,14 @@ function processNoCookieAccess(e: any, containerEl: Element) {
77
78
  * @param e
78
79
  * @param containerEl
79
80
  */
80
- function processAuthFailure(e: any, containerEl: Element) {
81
+ export function processAuthFailure(e: any, containerEl: Element) {
81
82
  const { loginFailedMessage, authType } = getEmbedConfig();
82
83
  if (authType !== AuthType.None) {
83
84
  // eslint-disable-next-line no-param-reassign
84
85
  containerEl.innerHTML = loginFailedMessage;
85
86
  notifyAuthFailure(AuthFailureType.OTHER);
86
87
  }
88
+ resetCachedAuthToken();
87
89
  return e;
88
90
  }
89
91
 
@@ -96,6 +98,7 @@ function processAuthLogout(e: any, containerEl: Element) {
96
98
  const { loginFailedMessage } = getEmbedConfig();
97
99
  // eslint-disable-next-line no-param-reassign
98
100
  containerEl.innerHTML = loginFailedMessage;
101
+ resetCachedAuthToken();
99
102
  disableAutoLogin();
100
103
  notifyLogout();
101
104
  return e;
@@ -15,7 +15,7 @@ export const reload = (iFrame: HTMLIFrameElement) => {
15
15
  };
16
16
 
17
17
  /**
18
- * Post Iframe message.
18
+ * Post iframe message.
19
19
  *
20
20
  * @param iFrame
21
21
  * @param message