@thoughtspot/visual-embed-sdk 1.10.0 → 1.10.1

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 (68) hide show
  1. package/dist/src/auth.d.ts +18 -5
  2. package/dist/src/embed/base.d.ts +21 -5
  3. package/dist/src/embed/pinboard.d.ts +91 -0
  4. package/dist/src/index.d.ts +3 -2
  5. package/dist/src/types.d.ts +15 -0
  6. package/dist/src/utils/authService.d.ts +1 -0
  7. package/dist/src/utils/plugin.d.ts +0 -0
  8. package/dist/src/utils/processData.d.ts +1 -1
  9. package/dist/src/v1/api.d.ts +19 -0
  10. package/dist/tsembed.es.js +521 -32
  11. package/dist/tsembed.js +519 -31
  12. package/lib/package.json +2 -1
  13. package/lib/src/auth.d.ts +18 -5
  14. package/lib/src/auth.js +48 -9
  15. package/lib/src/auth.js.map +1 -1
  16. package/lib/src/auth.spec.js +69 -11
  17. package/lib/src/auth.spec.js.map +1 -1
  18. package/lib/src/embed/base.d.ts +21 -5
  19. package/lib/src/embed/base.js +64 -10
  20. package/lib/src/embed/base.js.map +1 -1
  21. package/lib/src/embed/base.spec.js +49 -3
  22. package/lib/src/embed/base.spec.js.map +1 -1
  23. package/lib/src/embed/embed.spec.js +1 -1
  24. package/lib/src/embed/embed.spec.js.map +1 -1
  25. package/lib/src/embed/pinboard.d.ts +91 -0
  26. package/lib/src/embed/pinboard.js +110 -0
  27. package/lib/src/embed/pinboard.js.map +1 -0
  28. package/lib/src/embed/ts-embed.js +9 -10
  29. package/lib/src/embed/ts-embed.js.map +1 -1
  30. package/lib/src/embed/ts-embed.spec.js +16 -6
  31. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  32. package/lib/src/index.d.ts +3 -2
  33. package/lib/src/index.js +3 -2
  34. package/lib/src/index.js.map +1 -1
  35. package/lib/src/test/test-utils.js +1 -1
  36. package/lib/src/test/test-utils.js.map +1 -1
  37. package/lib/src/types.d.ts +15 -0
  38. package/lib/src/types.js +10 -0
  39. package/lib/src/types.js.map +1 -1
  40. package/lib/src/utils/authService.d.ts +1 -0
  41. package/lib/src/utils/authService.js +21 -3
  42. package/lib/src/utils/authService.js.map +1 -1
  43. package/lib/src/utils/authService.spec.js +21 -5
  44. package/lib/src/utils/authService.spec.js.map +1 -1
  45. package/lib/src/utils/plugin.d.ts +0 -0
  46. package/lib/src/utils/plugin.js +1 -0
  47. package/lib/src/utils/plugin.js.map +1 -0
  48. package/lib/src/utils/processData.d.ts +1 -1
  49. package/lib/src/utils/processData.js +37 -3
  50. package/lib/src/utils/processData.js.map +1 -1
  51. package/lib/src/utils/processData.spec.js +106 -4
  52. package/lib/src/utils/processData.spec.js.map +1 -1
  53. package/lib/src/visual-embed-sdk.d.ts +100 -7
  54. package/package.json +2 -1
  55. package/src/auth.spec.ts +90 -11
  56. package/src/auth.ts +63 -13
  57. package/src/embed/base.spec.ts +56 -4
  58. package/src/embed/base.ts +83 -16
  59. package/src/embed/embed.spec.ts +1 -1
  60. package/src/embed/ts-embed.spec.ts +19 -9
  61. package/src/embed/ts-embed.ts +15 -12
  62. package/src/index.ts +5 -1
  63. package/src/test/test-utils.ts +1 -1
  64. package/src/types.ts +16 -0
  65. package/src/utils/authService.spec.ts +31 -5
  66. package/src/utils/authService.ts +27 -3
  67. package/src/utils/processData.spec.ts +139 -4
  68. package/src/utils/processData.ts +54 -4
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thoughtspot/visual-embed-sdk",
3
- "version": "1.10.0",
3
+ "version": "1.10.1",
4
4
  "description": "ThoughtSpot Embed SDK",
5
5
  "module": "lib/src/index.js",
6
6
  "main": "dist/tsembed.js",
@@ -44,6 +44,7 @@
44
44
  "dependencies": {
45
45
  "algoliasearch": "^4.10.5",
46
46
  "classnames": "^2.3.1",
47
+ "eventemitter3": "^4.0.7",
47
48
  "mixpanel-browser": "^2.41.0"
48
49
  },
49
50
  "devDependencies": {
package/lib/src/auth.d.ts CHANGED
@@ -10,7 +10,19 @@ export declare const EndPoints: {
10
10
  OIDC_LOGIN_TEMPLATE: (targetUrl: string) => string;
11
11
  TOKEN_LOGIN: string;
12
12
  BASIC_LOGIN: string;
13
+ LOGOUT: string;
13
14
  };
15
+ export declare enum AuthFailureType {
16
+ SDK = "SDK",
17
+ NO_COOKIE_ACCESS = "NO_COOKIE_ACCESS",
18
+ EXPIRY = "EXPIRY",
19
+ OTHER = "OTHER"
20
+ }
21
+ export declare enum AuthStatus {
22
+ FAILURE = "FAILURE",
23
+ SUCCESS = "SUCCESS",
24
+ LOGOUT = "LOGOUT"
25
+ }
14
26
  /**
15
27
  * Return sessionInfo if available else make a loggedIn check to fetch the sessionInfo
16
28
  */
@@ -20,7 +32,7 @@ export declare function initSession(sessionDetails: any): void;
20
32
  * Perform token based authentication
21
33
  * @param embedConfig The embed configuration
22
34
  */
23
- export declare const doTokenAuth: (embedConfig: EmbedConfig) => Promise<void>;
35
+ export declare const doTokenAuth: (embedConfig: EmbedConfig) => Promise<boolean>;
24
36
  /**
25
37
  * Perform basic authentication to the ThoughtSpot cluster using the cluster
26
38
  * credentials.
@@ -29,14 +41,15 @@ export declare const doTokenAuth: (embedConfig: EmbedConfig) => Promise<void>;
29
41
  * strongly advised not to use this authentication method in production.
30
42
  * @param embedConfig The embed configuration
31
43
  */
32
- export declare const doBasicAuth: (embedConfig: EmbedConfig) => Promise<void>;
33
- export declare const doSamlAuth: (embedConfig: EmbedConfig) => Promise<void>;
34
- export declare const doOIDCAuth: (embedConfig: EmbedConfig) => Promise<void>;
44
+ export declare const doBasicAuth: (embedConfig: EmbedConfig) => Promise<boolean>;
45
+ export declare const doSamlAuth: (embedConfig: EmbedConfig) => Promise<boolean>;
46
+ export declare const doOIDCAuth: (embedConfig: EmbedConfig) => Promise<boolean>;
47
+ export declare const logout: (embedConfig: EmbedConfig) => Promise<boolean>;
35
48
  /**
36
49
  * Perform authentication on the ThoughtSpot cluster
37
50
  * @param embedConfig The embed configuration
38
51
  */
39
- export declare const authenticate: (embedConfig: EmbedConfig) => Promise<void>;
52
+ export declare const authenticate: (embedConfig: EmbedConfig) => Promise<boolean>;
40
53
  /**
41
54
  * Check if we are authenticated to the ThoughtSpot cluster
42
55
  */
package/lib/src/auth.js CHANGED
@@ -2,7 +2,7 @@ import { initMixpanel } from './mixpanel-service';
2
2
  import { AuthType, EmbedEvent } from './types';
3
3
  import { appendToUrlHash } from './utils';
4
4
  // eslint-disable-next-line import/no-cycle
5
- import { fetchSessionInfoService, fetchAuthTokenService, fetchAuthService, fetchBasicAuthService, } from './utils/authService';
5
+ import { fetchSessionInfoService, fetchAuthTokenService, fetchAuthService, fetchBasicAuthService, fetchLogoutService, } from './utils/authService';
6
6
  // eslint-disable-next-line import/no-mutable-exports
7
7
  export let loggedInStatus = false;
8
8
  // eslint-disable-next-line import/no-mutable-exports
@@ -18,7 +18,21 @@ export const EndPoints = {
18
18
  OIDC_LOGIN_TEMPLATE: (targetUrl) => `/callosum/v1/oidc/login?targetURLPath=${targetUrl}`,
19
19
  TOKEN_LOGIN: '/callosum/v1/session/login/token',
20
20
  BASIC_LOGIN: '/callosum/v1/session/login',
21
+ LOGOUT: '/callosum/v1/session/logout',
21
22
  };
23
+ export var AuthFailureType;
24
+ (function (AuthFailureType) {
25
+ AuthFailureType["SDK"] = "SDK";
26
+ AuthFailureType["NO_COOKIE_ACCESS"] = "NO_COOKIE_ACCESS";
27
+ AuthFailureType["EXPIRY"] = "EXPIRY";
28
+ AuthFailureType["OTHER"] = "OTHER";
29
+ })(AuthFailureType || (AuthFailureType = {}));
30
+ export var AuthStatus;
31
+ (function (AuthStatus) {
32
+ AuthStatus["FAILURE"] = "FAILURE";
33
+ AuthStatus["SUCCESS"] = "SUCCESS";
34
+ AuthStatus["LOGOUT"] = "LOGOUT";
35
+ })(AuthStatus || (AuthStatus = {}));
22
36
  /**
23
37
  * Check if we are logged into the ThoughtSpot cluster
24
38
  * @param thoughtSpotHost The ThoughtSpot cluster hostname or IP
@@ -44,6 +58,17 @@ export function initSession(sessionDetails) {
44
58
  sessionInfo = sessionDetails;
45
59
  initMixpanel(sessionInfo);
46
60
  }
61
+ const DUPLICATE_TOKEN_ERR = 'Duplicate token, please issue a new token every time getAuthToken callback is called.' +
62
+ 'See https://developers.thoughtspot.com/docs/?pageid=embed-auth#trusted-auth-embed for more details.';
63
+ let prevAuthToken = null;
64
+ function alertForDuplicateToken(authtoken) {
65
+ if (prevAuthToken === authtoken) {
66
+ // eslint-disable-next-line no-alert
67
+ alert(DUPLICATE_TOKEN_ERR);
68
+ throw new Error(DUPLICATE_TOKEN_ERR);
69
+ }
70
+ prevAuthToken = authtoken;
71
+ }
47
72
  /**
48
73
  * Check if we are stuck at the SSO redirect URL
49
74
  */
@@ -69,20 +94,22 @@ export const doTokenAuth = async (embedConfig) => {
69
94
  if (!authEndpoint && !getAuthToken) {
70
95
  throw new Error('Either auth endpoint or getAuthToken function must be provided');
71
96
  }
72
- const loggedIn = await isLoggedIn(thoughtSpotHost);
73
- if (!loggedIn) {
97
+ loggedInStatus = await isLoggedIn(thoughtSpotHost);
98
+ if (!loggedInStatus) {
74
99
  let authToken = null;
75
100
  if (getAuthToken) {
76
101
  authToken = await getAuthToken();
102
+ alertForDuplicateToken(authToken);
77
103
  }
78
104
  else {
79
105
  const response = await fetchAuthTokenService(authEndpoint);
80
106
  authToken = await response.text();
81
107
  }
82
- await fetchAuthService(thoughtSpotHost, username, authToken);
83
- loggedInStatus = false;
108
+ const resp = await fetchAuthService(thoughtSpotHost, username, authToken);
109
+ // token login issues a 302 when successful
110
+ loggedInStatus = resp.ok || resp.type === 'opaqueredirect';
84
111
  }
85
- loggedInStatus = true;
112
+ return loggedInStatus;
86
113
  };
87
114
  /**
88
115
  * Perform basic authentication to the ThoughtSpot cluster using the cluster
@@ -97,9 +124,12 @@ export const doBasicAuth = async (embedConfig) => {
97
124
  const loggedIn = await isLoggedIn(thoughtSpotHost);
98
125
  if (!loggedIn) {
99
126
  const response = await fetchBasicAuthService(thoughtSpotHost, username, password);
100
- loggedInStatus = response.status === 200;
127
+ loggedInStatus = response.ok;
101
128
  }
102
- loggedInStatus = true;
129
+ else {
130
+ loggedInStatus = true;
131
+ }
132
+ return loggedInStatus;
103
133
  };
104
134
  async function samlPopupFlow(ssoURL) {
105
135
  document.body.insertAdjacentHTML('beforeend', '<div id="ts-saml-auth"></div>');
@@ -149,6 +179,7 @@ const doSSOAuth = async (embedConfig, ssoEndPoint) => {
149
179
  const ssoURL = `${thoughtSpotHost}${ssoEndPoint}`;
150
180
  if (embedConfig.noRedirect) {
151
181
  await samlPopupFlow(ssoURL);
182
+ loggedInStatus = true;
152
183
  return;
153
184
  }
154
185
  window.location.href = ssoURL;
@@ -163,6 +194,7 @@ export const doSamlAuth = async (embedConfig) => {
163
194
  // bring back the page to the same URL
164
195
  const ssoEndPoint = `${EndPoints.SAML_LOGIN_TEMPLATE(encodeURIComponent(ssoRedirectUrl))}`;
165
196
  await doSSOAuth(embedConfig, ssoEndPoint);
197
+ return loggedInStatus;
166
198
  };
167
199
  export const doOIDCAuth = async (embedConfig) => {
168
200
  const { thoughtSpotHost } = embedConfig;
@@ -174,6 +206,13 @@ export const doOIDCAuth = async (embedConfig) => {
174
206
  // bring back the page to the same URL
175
207
  const ssoEndPoint = `${EndPoints.OIDC_LOGIN_TEMPLATE(encodeURIComponent(ssoRedirectUrl))}`;
176
208
  await doSSOAuth(embedConfig, ssoEndPoint);
209
+ return loggedInStatus;
210
+ };
211
+ export const logout = async (embedConfig) => {
212
+ const { thoughtSpotHost } = embedConfig;
213
+ const response = await fetchLogoutService(thoughtSpotHost);
214
+ loggedInStatus = false;
215
+ return loggedInStatus;
177
216
  };
178
217
  /**
179
218
  * Perform authentication on the ThoughtSpot cluster
@@ -191,7 +230,7 @@ export const authenticate = async (embedConfig) => {
191
230
  case AuthType.Basic:
192
231
  return doBasicAuth(embedConfig);
193
232
  default:
194
- return Promise.resolve();
233
+ return Promise.resolve(true);
195
234
  }
196
235
  };
197
236
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"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"}
@@ -7,12 +7,12 @@ const username = 'tsuser';
7
7
  const password = '12345678';
8
8
  const samalLoginUrl = `${thoughtSpotHost}/callosum/v1/saml/login?targetURLPath=%235e16222e-ef02-43e9-9fbd-24226bf3ce5b`;
9
9
  const embedConfig = {
10
- doTokenAuthSuccess: {
10
+ doTokenAuthSuccess: (token) => ({
11
11
  thoughtSpotHost,
12
12
  username,
13
13
  authEndpoint: 'auth',
14
- getAuthToken: jest.fn(() => Promise.resolve('authToken')),
15
- },
14
+ getAuthToken: jest.fn(() => Promise.resolve(token)),
15
+ }),
16
16
  doTokenAuthFailureWithoutAuthEndPoint: {
17
17
  thoughtSpotHost,
18
18
  username,
@@ -33,9 +33,15 @@ const embedConfig = {
33
33
  doSamlAuth: {
34
34
  thoughtSpotHost,
35
35
  },
36
+ doOidcAuth: {
37
+ thoughtSpotHost,
38
+ },
36
39
  SSOAuth: {
37
40
  authType: AuthType.SSO,
38
41
  },
42
+ OIDCAuth: {
43
+ authType: AuthType.OIDC,
44
+ },
39
45
  authServerFailure: {
40
46
  thoughtSpotHost,
41
47
  username,
@@ -90,22 +96,27 @@ describe('Unit test for auth', () => {
90
96
  json: () => mockSessionInfo,
91
97
  status: 200,
92
98
  }));
93
- await authInstance.doTokenAuth(embedConfig.doTokenAuthSuccess);
99
+ await authInstance.doTokenAuth(embedConfig.doTokenAuthSuccess('authToken'));
94
100
  expect(authService.fetchSessionInfoService).toBeCalled();
95
101
  expect(authInstance.loggedInStatus).toBe(true);
96
102
  });
97
- test('doTokenAuth: when user is not loggedIn & getAuthToken have response, isLoggedIn should called', async () => {
103
+ test('doTokenAuth: when user is not loggedIn & getAuthToken have response', async () => {
98
104
  jest.spyOn(authService, 'fetchSessionInfoService').mockImplementation(() => false);
99
105
  jest.spyOn(authService, 'fetchAuthTokenService').mockImplementation(() => ({ text: () => Promise.resolve('abc') }));
100
- jest.spyOn(authService, 'fetchAuthService');
101
- await authInstance.doTokenAuth(embedConfig.doTokenAuthSuccess);
106
+ jest.spyOn(authService, 'fetchAuthService').mockImplementation(() => Promise.resolve({
107
+ status: 200,
108
+ }));
109
+ await authInstance.doTokenAuth(embedConfig.doTokenAuthSuccess('authToken2'));
102
110
  expect(authService.fetchSessionInfoService).toBeCalled();
103
- expect(authService.fetchAuthService).toBeCalledWith(thoughtSpotHost, username, 'authToken');
111
+ expect(authService.fetchAuthService).toBeCalledWith(thoughtSpotHost, username, 'authToken2');
104
112
  });
105
113
  test('doTokenAuth: when user is not loggedIn & getAuthToken not present, isLoggedIn should called', async () => {
106
114
  jest.spyOn(authService, 'fetchSessionInfoService').mockImplementation(() => false);
107
115
  jest.spyOn(authService, 'fetchAuthTokenService').mockImplementation(() => Promise.resolve({ text: () => Promise.resolve('abc') }));
108
- jest.spyOn(authService, 'fetchAuthService');
116
+ jest.spyOn(authService, 'fetchAuthService').mockImplementation(() => Promise.resolve({
117
+ status: 200,
118
+ ok: true,
119
+ }));
109
120
  await authInstance.doTokenAuth(embedConfig.doTokenAuthFailureWithoutGetAuthToken);
110
121
  await executeAfterWait(() => {
111
122
  expect(authInstance.loggedInStatus).toBe(true);
@@ -113,6 +124,31 @@ describe('Unit test for auth', () => {
113
124
  expect(authService.fetchAuthService).toBeCalledWith(thoughtSpotHost, username, 'abc');
114
125
  });
115
126
  });
127
+ test('doTokenAuth: Should raise error when duplicate token is used', async () => {
128
+ jest.spyOn(authService, 'fetchSessionInfoService').mockResolvedValue({
129
+ status: 401,
130
+ });
131
+ jest.spyOn(window, 'alert').mockClear();
132
+ jest.spyOn(window, 'alert').mockReturnValue(undefined);
133
+ jest.spyOn(authService, 'fetchAuthService').mockReset();
134
+ jest.spyOn(authService, 'fetchAuthService').mockImplementation(() => Promise.resolve({
135
+ status: 200,
136
+ ok: true,
137
+ }));
138
+ await authInstance.doTokenAuth(embedConfig.doTokenAuthSuccess('authToken3'));
139
+ try {
140
+ await authInstance.doTokenAuth(embedConfig.doTokenAuthSuccess('authToken3'));
141
+ expect(false).toBe(true);
142
+ }
143
+ catch (e) {
144
+ expect(e.message).toContain('Duplicate token');
145
+ }
146
+ await executeAfterWait(() => {
147
+ expect(authInstance.loggedInStatus).toBe(false);
148
+ expect(window.alert).toBeCalled();
149
+ expect(authService.fetchAuthService).toHaveBeenCalledTimes(1);
150
+ });
151
+ });
116
152
  describe('doBasicAuth', () => {
117
153
  beforeEach(() => {
118
154
  global.fetch = window.fetch;
@@ -128,7 +164,7 @@ describe('Unit test for auth', () => {
128
164
  });
129
165
  it('when user is not loggedIn', async () => {
130
166
  jest.spyOn(authService, 'fetchSessionInfoService').mockImplementation(() => Promise.reject());
131
- jest.spyOn(authService, 'fetchBasicAuthService').mockImplementation(() => ({ status: 200 }));
167
+ jest.spyOn(authService, 'fetchBasicAuthService').mockImplementation(() => ({ status: 200, ok: true }));
132
168
  await authInstance.doBasicAuth(embedConfig.doBasicAuth);
133
169
  expect(authService.fetchSessionInfoService).toBeCalled();
134
170
  expect(authService.fetchBasicAuthService).toBeCalled();
@@ -185,21 +221,43 @@ describe('Unit test for auth', () => {
185
221
  },
186
222
  });
187
223
  spyOn(authInstance, 'samlCompletionPromise');
224
+ global.window.open = jest.fn();
188
225
  jest.spyOn(authService, 'fetchSessionInfoService').mockImplementation(() => Promise.reject());
189
226
  expect(await authInstance.samlCompletionPromise).not.toBe(null);
190
227
  expect(await authInstance.doSamlAuth({
191
228
  ...embedConfig.doSamlAuth,
192
229
  noRedirect: true,
193
- })).toBe(undefined);
230
+ })).toBe(true);
194
231
  expect(authService.fetchSessionInfoService).toBeCalled();
195
232
  });
196
233
  });
234
+ describe('doOIDCAuth', () => {
235
+ afterEach(() => {
236
+ delete global.window;
237
+ global.window = Object.create(originalWindow);
238
+ global.window.open = jest.fn();
239
+ global.fetch = window.fetch;
240
+ });
241
+ it('when user is not loggedIn & isAtSSORedirectUrl is true', async () => {
242
+ jest.spyOn(authService, 'fetchSessionInfoService').mockImplementation(() => Promise.reject());
243
+ await authInstance.doOIDCAuth(embedConfig.doOidcAuth);
244
+ expect(authService.fetchSessionInfoService).toBeCalled();
245
+ expect(window.location.hash).toBe('');
246
+ expect(authInstance.loggedInStatus).toBe(false);
247
+ });
248
+ });
197
249
  it('authenticate: when authType is SSO', async () => {
198
250
  jest.spyOn(authInstance, 'doSamlAuth');
199
251
  await authInstance.authenticate(embedConfig.SSOAuth);
200
252
  expect(window.location.hash).toBe('');
201
253
  expect(authInstance.doSamlAuth).toBeCalled();
202
254
  });
255
+ it('authenticate: when authType is OIDC', async () => {
256
+ jest.spyOn(authInstance, 'doOIDCAuth');
257
+ await authInstance.authenticate(embedConfig.OIDCAuth);
258
+ expect(window.location.hash).toBe('');
259
+ expect(authInstance.doOIDCAuth).toBeCalled();
260
+ });
203
261
  it('authenticate: when authType is AuthServer', async () => {
204
262
  spyOn(authInstance, 'doTokenAuth');
205
263
  await authInstance.authenticate(embedConfig.authServerFailure);
@@ -1 +1 @@
1
- {"version":3,"file":"auth.spec.js","sourceRoot":"","sources":["../../src/auth.spec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,WAAW,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAChD,MAAM,QAAQ,GAAG,QAAQ,CAAC;AAC1B,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,MAAM,aAAa,GAAG,GAAG,eAAe,+EAA+E,CAAC;AAExH,MAAM,WAAW,GAAQ;IACrB,kBAAkB,EAAE;QAChB,eAAe;QACf,QAAQ;QACR,YAAY,EAAE,MAAM;QACpB,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;KAC5D;IACD,qCAAqC,EAAE;QACnC,eAAe;QACf,QAAQ;QACR,YAAY,EAAE,EAAE;QAChB,YAAY,EAAE,IAAI;KACrB;IACD,qCAAqC,EAAE;QACnC,eAAe;QACf,QAAQ;QACR,YAAY,EAAE,MAAM;QACpB,YAAY,EAAE,IAAI;KACrB;IACD,WAAW,EAAE;QACT,eAAe;QACf,QAAQ;QACR,QAAQ;KACX;IACD,UAAU,EAAE;QACR,eAAe;KAClB;IACD,OAAO,EAAE;QACL,QAAQ,EAAE,QAAQ,CAAC,GAAG;KACzB;IACD,iBAAiB,EAAE;QACf,eAAe;QACf,QAAQ;QACR,YAAY,EAAE,EAAE;QAChB,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,QAAQ,CAAC,UAAU;KAChC;IACD,gBAAgB,EAAE;QACd,eAAe;QACf,QAAQ;QACR,QAAQ;QACR,QAAQ,EAAE,QAAQ,CAAC,KAAK;KAC3B;IACD,aAAa,EAAE;QACX,eAAe;QACf,QAAQ;QACR,QAAQ;QACR,QAAQ,EAAE,QAAQ,CAAC,IAAI;KAC1B;CACJ,CAAC;AAEF,MAAM,cAAc,GAAG,MAAM,CAAC;AAC9B,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,SAAS,EAAE,sCAAsC;IACjD,KAAK,EAAE,CAAC;IACR,SAAS,EAAE;QACP,SAAS,EAAE,sCAAsC;QACjD,KAAK,EAAE,CAAC;KACX;CACJ,CAAC;AAEF,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAChC,UAAU,CAAC,GAAG,EAAE;QACZ,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,cAAc,GAAG,YAAY,CAAC,SAAS,CAAC,mBAAmB,CAC7D,eAAe,CAClB,CAAC;QACF,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CACvB,yCAAyC,eAAe,EAAE,CAC7D,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,YAAY,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAC1C,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC7F,IAAI;YACA,MAAM,YAAY,CAAC,WAAW,CAC1B,WAAW,CAAC,qCAAqC,CACpD,CAAC;SACL;QAAC,OAAO,CAAC,EAAE;YACR,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAClB,gEAAgE,CACnE,CAAC;SACL;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC,kBAAkB,CACjE,KAAK,IAAI,EAAE,CAAC,CAAC;YACT,IAAI,EAAE,GAAG,EAAE,CAAC,eAAe;YAC3B,MAAM,EAAE,GAAG;SACd,CAAC,CACL,CAAC;QACF,MAAM,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;QAC/D,MAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,UAAU,EAAE,CAAC;QACzD,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+FAA+F,EAAE,KAAK,IAAI,EAAE;QAC7G,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC,kBAAkB,CACjE,GAAG,EAAE,CAAC,KAAK,CACd,CAAC;QACF,IAAI,CAAC,KAAK,CACN,WAAW,EACX,uBAAuB,CAC1B,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAC5C,MAAM,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;QAC/D,MAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,UAAU,EAAE,CAAC;QACzD,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,cAAc,CAC/C,eAAe,EACf,QAAQ,EACR,WAAW,CACd,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,6FAA6F,EAAE,KAAK,IAAI,EAAE;QAC3G,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC,kBAAkB,CACjE,GAAG,EAAE,CAAC,KAAK,CACd,CAAC;QACF,IAAI,CAAC,KAAK,CACN,WAAW,EACX,uBAAuB,CAC1B,CAAC,kBAAkB,CAAC,GAAG,EAAE,CACtB,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAC1D,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAC5C,MAAM,YAAY,CAAC,WAAW,CAC1B,WAAW,CAAC,qCAAqC,CACpD,CAAC;QACF,MAAM,gBAAgB,CAAC,GAAG,EAAE;YACxB,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,UAAU,EAAE,CAAC;YACzD,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,cAAc,CAC/C,eAAe,EACf,QAAQ,EACR,KAAK,CACR,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QACzB,UAAU,CAAC,GAAG,EAAE;YACZ,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;YACnC,IAAI,CAAC,KAAK,CACN,WAAW,EACX,yBAAyB,CAC5B,CAAC,kBAAkB,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBAC9B,IAAI,EAAE,GAAG,EAAE,CAAC,eAAe;gBAC3B,MAAM,EAAE,GAAG;aACd,CAAC,CAAC,CAAC;YACJ,MAAM,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YACxD,MAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,UAAU,EAAE,CAAC;YACzD,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;YACvC,IAAI,CAAC,KAAK,CACN,WAAW,EACX,yBAAyB,CAC5B,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7C,IAAI,CAAC,KAAK,CACN,WAAW,EACX,uBAAuB,CAC1B,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YAE9C,MAAM,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YACxD,MAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,UAAU,EAAE,CAAC;YACzD,MAAM,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC,UAAU,EAAE,CAAC;YACvD,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QACxB,SAAS,CAAC,GAAG,EAAE;YACX,OAAO,MAAM,CAAC,MAAM,CAAC;YACrB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE;gBACtC,KAAK,EAAE;oBACH,IAAI,EAAE,YAAY,CAAC,2BAA2B;oBAC9C,IAAI,EAAE,EAAE;iBACX;aACJ,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,CACN,WAAW,EACX,yBAAyB,CAC5B,CAAC,kBAAkB,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBAC9B,IAAI,EAAE,GAAG,EAAE,CAAC,eAAe;gBAC3B,MAAM,EAAE,GAAG;aACd,CAAC,CAAC,CAAC;YACJ,MAAM,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YACtD,MAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,UAAU,EAAE,CAAC;YACzD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACpE,IAAI,CAAC,KAAK,CACN,WAAW,EACX,yBAAyB,CAC5B,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7C,MAAM,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YACtD,MAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,UAAU,EAAE,CAAC;YACzD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0FAA0F,EAAE,KAAK,IAAI,EAAE;YACtG,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE;gBACtC,KAAK,EAAE;oBACH,IAAI,EAAE,EAAE;oBACR,IAAI,EAAE,EAAE;iBACX;aACJ,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,CACN,WAAW,EACX,yBAAyB,CAC5B,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7C,MAAM,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YACtD,MAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,UAAU,EAAE,CAAC;YACzD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yFAAyF,EAAE,KAAK,IAAI,EAAE;YACrG,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE;gBACtC,KAAK,EAAE;oBACH,IAAI,EAAE,EAAE;oBACR,IAAI,EAAE,EAAE;iBACX;aACJ,CAAC,CAAC;YACH,KAAK,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC;YAC7C,IAAI,CAAC,KAAK,CACN,WAAW,EACX,yBAAyB,CAC5B,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,YAAY,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChE,MAAM,CACF,MAAM,YAAY,CAAC,UAAU,CAAC;gBAC1B,GAAG,WAAW,CAAC,UAAU;gBACzB,UAAU,EAAE,IAAI;aACnB,CAAC,CACL,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAClB,MAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,UAAU,EAAE,CAAC;QAC7D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAChD,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QACvC,MAAM,YAAY,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACvD,KAAK,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QACnC,MAAM,YAAY,CAAC,YAAY,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QAClD,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QACxC,MAAM,YAAY,CAAC,YAAY,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;QAC9D,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,CAAC;QAC9C,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,CACF,MAAM,YAAY,CAAC,YAAY,CAAC,WAAW,CAAC,aAAa,CAAC,CAC7D,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CACvC,YAAY,CAAC,cAAc,CAC9B,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"auth.spec.js","sourceRoot":"","sources":["../../src/auth.spec.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,24 @@
1
+ /**
2
+ * Copyright (c) 2022
3
+ *
4
+ * Base classes
5
+ *
6
+ * @summary Base classes
7
+ * @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
8
+ */
9
+ import EventEmitter from 'eventemitter3';
1
10
  import { EmbedConfig } from '../types';
2
- export declare let authPromise: Promise<void>;
11
+ import { AuthFailureType } from '../auth';
12
+ export declare let authPromise: Promise<boolean>;
13
+ export declare const getEmbedConfig: () => EmbedConfig;
14
+ export declare const getAuthPromise: () => Promise<boolean>;
15
+ export declare function notifyAuthSuccess(): void;
16
+ export declare function notifyAuthFailure(failureType: AuthFailureType): void;
17
+ export declare function notifyLogout(): void;
3
18
  /**
4
19
  * Perform authentication on the ThoughtSpot app as applicable.
5
20
  */
6
- export declare const handleAuth: () => Promise<void>;
7
- export declare const getEmbedConfig: () => EmbedConfig;
8
- export declare const getAuthPromise: () => Promise<void>;
21
+ export declare const handleAuth: () => Promise<boolean>;
9
22
  /**
10
23
  * Prefetches static resources from the specified URL. Web browsers can then cache the prefetched resources and serve them from the user's local disk to provide faster access to your app.
11
24
  * @param url The URL provided for prefetch
@@ -19,9 +32,12 @@ export declare const prefetch: (url?: string) => void;
19
32
  *
20
33
  * @returns authPromise Promise which resolves when authentication is complete.
21
34
  */
22
- export declare const init: (embedConfig: EmbedConfig) => Promise<void>;
35
+ export declare const init: (embedConfig: EmbedConfig) => EventEmitter;
36
+ export declare function disableAutoLogin(): void;
37
+ export declare const logout: (doNotDisableAutoLogin?: boolean) => Promise<boolean>;
23
38
  /**
24
39
  * Renders functions in a queue, resolves to next function only after the callback next is called
25
40
  * @param fn The function being registered
26
41
  */
27
42
  export declare const renderInQueue: (fn: (next?: (val?: any) => void) => void) => void;
43
+ export declare function reset(): void;
@@ -7,24 +7,55 @@
7
7
  * @summary Base classes
8
8
  * @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
9
9
  */
10
+ import EventEmitter from 'eventemitter3';
10
11
  import { getThoughtSpotHost } from '../config';
11
- import { authenticate } from '../auth';
12
+ import { AuthType } from '../types';
13
+ import { authenticate, logout as _logout, AuthFailureType, AuthStatus, } from '../auth';
12
14
  import { uploadMixpanelEvent, MIXPANEL_EVENT } from '../mixpanel-service';
13
15
  let config = {};
16
+ const CONFIG_DEFAULTS = {
17
+ loginFailedMessage: 'Not logged in',
18
+ authType: AuthType.None,
19
+ };
14
20
  export let authPromise;
21
+ export const getEmbedConfig = () => config;
22
+ export const getAuthPromise = () => authPromise;
23
+ let authEE;
24
+ export function notifyAuthSuccess() {
25
+ if (!authEE) {
26
+ console.error('SDK not initialized');
27
+ return;
28
+ }
29
+ authEE.emit(AuthStatus.SUCCESS);
30
+ }
31
+ export function notifyAuthFailure(failureType) {
32
+ if (!authEE) {
33
+ console.error('SDK not initialized');
34
+ return;
35
+ }
36
+ authEE.emit(AuthStatus.FAILURE, failureType);
37
+ }
38
+ export function notifyLogout() {
39
+ if (!authEE) {
40
+ console.error('SDK not initialized');
41
+ return;
42
+ }
43
+ authEE.emit(AuthStatus.LOGOUT);
44
+ }
15
45
  /**
16
46
  * Perform authentication on the ThoughtSpot app as applicable.
17
47
  */
18
48
  export const handleAuth = () => {
19
- const authConfig = {
20
- ...config,
21
- thoughtSpotHost: getThoughtSpotHost(config),
22
- };
23
- authPromise = authenticate(authConfig);
49
+ authPromise = authenticate(config);
50
+ authPromise.then((isLoggedIn) => {
51
+ if (!isLoggedIn) {
52
+ notifyAuthFailure(AuthFailureType.SDK);
53
+ }
54
+ }, () => {
55
+ notifyAuthFailure(AuthFailureType.SDK);
56
+ });
24
57
  return authPromise;
25
58
  };
26
- export const getEmbedConfig = () => config;
27
- export const getAuthPromise = () => authPromise;
28
59
  /**
29
60
  * Prefetches static resources from the specified URL. Web browsers can then cache the prefetched resources and serve them from the user's local disk to provide faster access to your app.
30
61
  * @param url The URL provided for prefetch
@@ -53,7 +84,12 @@ export const prefetch = (url) => {
53
84
  * @returns authPromise Promise which resolves when authentication is complete.
54
85
  */
55
86
  export const init = (embedConfig) => {
56
- config = embedConfig;
87
+ config = {
88
+ ...CONFIG_DEFAULTS,
89
+ ...embedConfig,
90
+ thoughtSpotHost: getThoughtSpotHost(embedConfig),
91
+ };
92
+ authEE = new EventEmitter();
57
93
  handleAuth();
58
94
  uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_CALLED_INIT, {
59
95
  authType: config.authType,
@@ -62,7 +98,19 @@ export const init = (embedConfig) => {
62
98
  if (config.callPrefetch) {
63
99
  prefetch(config.thoughtSpotHost);
64
100
  }
65
- return authPromise;
101
+ return authEE;
102
+ };
103
+ export function disableAutoLogin() {
104
+ config.autoLogin = false;
105
+ }
106
+ export const logout = (doNotDisableAutoLogin = false) => {
107
+ if (!doNotDisableAutoLogin) {
108
+ disableAutoLogin();
109
+ }
110
+ return _logout(config).then((isLoggedIn) => {
111
+ notifyLogout();
112
+ return isLoggedIn;
113
+ });
66
114
  };
67
115
  let renderQueue = Promise.resolve();
68
116
  /**
@@ -79,4 +127,10 @@ export const renderInQueue = (fn) => {
79
127
  fn(() => { }); // eslint-disable-line @typescript-eslint/no-empty-function
80
128
  }
81
129
  };
130
+ // For testing purposes only
131
+ export function reset() {
132
+ config = {};
133
+ authEE = null;
134
+ authPromise = null;
135
+ }
82
136
  //# sourceMappingURL=base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/embed/base.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C;;;;;;;GAOG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1E,IAAI,MAAM,GAAG,EAAiB,CAAC;AAE/B,MAAM,CAAC,IAAI,WAA0B,CAAC;AAEtC;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAkB,EAAE;IAC1C,MAAM,UAAU,GAAG;QACf,GAAG,MAAM;QACT,eAAe,EAAE,kBAAkB,CAAC,MAAM,CAAC;KAC9C,CAAC;IACF,WAAW,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IACvC,OAAO,WAAW,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,GAAgB,EAAE,CAAC,MAAM,CAAC;AAExD,MAAM,CAAC,MAAM,cAAc,GAAG,GAAkB,EAAE,CAAC,WAAW,CAAC;AAE/D;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAY,EAAQ,EAAE;IAC3C,IAAI,GAAG,KAAK,EAAE,EAAE;QACZ,sCAAsC;QACtC,OAAO,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;KACjE;SAAM;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC,eAAe,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;QACzB,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;QAC1B,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;KACrC;AACL,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,WAAwB,EAAiB,EAAE;IAC5D,MAAM,GAAG,WAAW,CAAC;IACrB,UAAU,EAAE,CAAC;IAEb,mBAAmB,CAAC,cAAc,CAAC,sBAAsB,EAAE;QACvD,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,IAAI,EAAE,MAAM,CAAC,eAAe;KAC/B,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,YAAY,EAAE;QACrB,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;KACpC;IACD,OAAO,WAAW,CAAC;AACvB,CAAC,CAAC;AAEF,IAAI,WAAW,GAAiB,OAAO,CAAC,OAAO,EAAE,CAAC;AAElD;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAwC,EAAE,EAAE;IACtE,MAAM,EAAE,iBAAiB,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC;IAC7C,IAAI,iBAAiB,EAAE;QACnB,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACvE;SAAM;QACH,wEAAwE;QACxE,EAAE,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,2DAA2D;KAC5E;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/embed/base.ts"],"names":[],"mappings":"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"}