@thoughtspot/visual-embed-sdk 1.11.0-alpha.0 → 1.11.0-auth.2
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.
- package/dist/src/auth.d.ts +5 -5
- package/dist/src/embed/base.d.ts +4 -4
- package/dist/src/embed/pinboard.d.ts +91 -0
- package/dist/src/utils/plugin.d.ts +0 -0
- package/dist/src/v1/api.d.ts +19 -0
- package/dist/tsembed.es.js +32 -10
- package/dist/tsembed.js +32 -10
- package/lib/package.json +1 -1
- package/lib/src/auth.d.ts +5 -5
- package/lib/src/auth.js +13 -5
- package/lib/src/auth.js.map +1 -1
- package/lib/src/auth.spec.js +7 -3
- package/lib/src/auth.spec.js.map +1 -1
- package/lib/src/embed/base.d.ts +4 -4
- package/lib/src/embed/base.js.map +1 -1
- package/lib/src/embed/pinboard.d.ts +91 -0
- package/lib/src/embed/pinboard.js +110 -0
- package/lib/src/embed/pinboard.js.map +1 -0
- package/lib/src/embed/ts-embed.js +5 -1
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/utils/authService.js +13 -3
- package/lib/src/utils/authService.js.map +1 -1
- package/lib/src/utils/authService.spec.js +4 -2
- package/lib/src/utils/authService.spec.js.map +1 -1
- package/lib/src/utils/plugin.d.ts +0 -0
- package/lib/src/utils/plugin.js +1 -0
- package/lib/src/utils/plugin.js.map +1 -0
- package/lib/src/visual-embed-sdk.d.ts +4 -4
- package/package.json +1 -1
- package/src/auth.spec.ts +11 -3
- package/src/auth.ts +24 -10
- package/src/embed/base.ts +4 -4
- package/src/embed/ts-embed.ts +6 -1
- package/src/utils/authService.spec.ts +8 -2
- package/src/utils/authService.ts +18 -4
package/dist/src/auth.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export declare function initSession(sessionDetails: any): void;
|
|
|
20
20
|
* Perform token based authentication
|
|
21
21
|
* @param embedConfig The embed configuration
|
|
22
22
|
*/
|
|
23
|
-
export declare const doTokenAuth: (embedConfig: EmbedConfig) => Promise<
|
|
23
|
+
export declare const doTokenAuth: (embedConfig: EmbedConfig) => Promise<boolean>;
|
|
24
24
|
/**
|
|
25
25
|
* Perform basic authentication to the ThoughtSpot cluster using the cluster
|
|
26
26
|
* credentials.
|
|
@@ -29,14 +29,14 @@ export declare const doTokenAuth: (embedConfig: EmbedConfig) => Promise<void>;
|
|
|
29
29
|
* strongly advised not to use this authentication method in production.
|
|
30
30
|
* @param embedConfig The embed configuration
|
|
31
31
|
*/
|
|
32
|
-
export declare const doBasicAuth: (embedConfig: EmbedConfig) => Promise<
|
|
33
|
-
export declare const doSamlAuth: (embedConfig: EmbedConfig) => Promise<
|
|
34
|
-
export declare const doOIDCAuth: (embedConfig: EmbedConfig) => Promise<
|
|
32
|
+
export declare const doBasicAuth: (embedConfig: EmbedConfig) => Promise<boolean>;
|
|
33
|
+
export declare const doSamlAuth: (embedConfig: EmbedConfig) => Promise<boolean>;
|
|
34
|
+
export declare const doOIDCAuth: (embedConfig: EmbedConfig) => Promise<boolean>;
|
|
35
35
|
/**
|
|
36
36
|
* Perform authentication on the ThoughtSpot cluster
|
|
37
37
|
* @param embedConfig The embed configuration
|
|
38
38
|
*/
|
|
39
|
-
export declare const authenticate: (embedConfig: EmbedConfig) => Promise<
|
|
39
|
+
export declare const authenticate: (embedConfig: EmbedConfig) => Promise<boolean>;
|
|
40
40
|
/**
|
|
41
41
|
* Check if we are authenticated to the ThoughtSpot cluster
|
|
42
42
|
*/
|
package/dist/src/embed/base.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { EmbedConfig } from '../types';
|
|
2
|
-
export declare let authPromise: Promise<
|
|
2
|
+
export declare let authPromise: Promise<boolean>;
|
|
3
3
|
/**
|
|
4
4
|
* Perform authentication on the ThoughtSpot app as applicable.
|
|
5
5
|
*/
|
|
6
|
-
export declare const handleAuth: () => Promise<
|
|
6
|
+
export declare const handleAuth: () => Promise<boolean>;
|
|
7
7
|
export declare const getEmbedConfig: () => EmbedConfig;
|
|
8
|
-
export declare const getAuthPromise: () => Promise<
|
|
8
|
+
export declare const getAuthPromise: () => Promise<boolean>;
|
|
9
9
|
/**
|
|
10
10
|
* 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
11
|
* @param url The URL provided for prefetch
|
|
@@ -19,7 +19,7 @@ export declare const prefetch: (url?: string) => void;
|
|
|
19
19
|
*
|
|
20
20
|
* @returns authPromise Promise which resolves when authentication is complete.
|
|
21
21
|
*/
|
|
22
|
-
export declare const init: (embedConfig: EmbedConfig) => Promise<
|
|
22
|
+
export declare const init: (embedConfig: EmbedConfig) => Promise<boolean>;
|
|
23
23
|
/**
|
|
24
24
|
* Renders functions in a queue, resolves to next function only after the callback next is called
|
|
25
25
|
* @param fn The function being registered
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2021
|
|
3
|
+
*
|
|
4
|
+
* Embed a ThoughtSpot pinboard or visualization
|
|
5
|
+
* https://developers.thoughtspot.com/docs/?pageid=embed-pinboard
|
|
6
|
+
* https://developers.thoughtspot.com/docs/?pageid=embed-a-viz
|
|
7
|
+
*
|
|
8
|
+
* @summary Pinboard & visualization embed
|
|
9
|
+
* @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
|
|
10
|
+
*/
|
|
11
|
+
import { DOMSelector } from '../types';
|
|
12
|
+
import { V1Embed, ViewConfig } from './ts-embed';
|
|
13
|
+
/**
|
|
14
|
+
* The configuration for the embedded pinboard or visualization page view.
|
|
15
|
+
* @Category Pinboards and Charts
|
|
16
|
+
*/
|
|
17
|
+
export interface PinboardViewConfig extends ViewConfig {
|
|
18
|
+
/**
|
|
19
|
+
* If set to true, the embedded object container dynamically resizes
|
|
20
|
+
* according to the height of the pinboard.
|
|
21
|
+
*/
|
|
22
|
+
fullHeight?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* This is the minimum height(in pixels) for a full height pinboard.
|
|
25
|
+
* Setting this height helps resolves issues with empty pinboards and
|
|
26
|
+
* other screens navigable from a pinboard.
|
|
27
|
+
* @default 500
|
|
28
|
+
* * _since 1.5.0_
|
|
29
|
+
*/
|
|
30
|
+
defaultHeight?: number;
|
|
31
|
+
/**
|
|
32
|
+
* If set to true, the context menu in visualizations will be enabled.
|
|
33
|
+
*/
|
|
34
|
+
enableVizTransformations?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* The pinboard to display in the embedded view.
|
|
37
|
+
*/
|
|
38
|
+
pinboardId: string;
|
|
39
|
+
/**
|
|
40
|
+
* The visualization within the pinboard to display.
|
|
41
|
+
*/
|
|
42
|
+
vizId?: string;
|
|
43
|
+
/**
|
|
44
|
+
* If set to true, all filter chips from a
|
|
45
|
+
* pinboard page will be read-only (no X buttons)
|
|
46
|
+
*/
|
|
47
|
+
preventPinboardFilterRemoval?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* An array of vizids which should be visible when this pinboard loads.
|
|
50
|
+
* The ids not in this array are hidden from the pinboard.
|
|
51
|
+
* _since: 1.6.0_
|
|
52
|
+
*/
|
|
53
|
+
pinboardVisibleVizs?: string[];
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Embed a ThoughtSpot pinboard or visualization
|
|
57
|
+
* @Category Pinboards and Charts
|
|
58
|
+
*/
|
|
59
|
+
export declare class PinboardEmbed extends V1Embed {
|
|
60
|
+
protected viewConfig: PinboardViewConfig;
|
|
61
|
+
private defaultHeight;
|
|
62
|
+
constructor(domSelector: DOMSelector, viewConfig: PinboardViewConfig);
|
|
63
|
+
/**
|
|
64
|
+
* Construct a map of params to be passed on to the
|
|
65
|
+
* embedded pinboard or visualization.
|
|
66
|
+
*/
|
|
67
|
+
private getEmbedParams;
|
|
68
|
+
/**
|
|
69
|
+
* Construct the URL of the embedded ThoughtSpot pinboard or visualization
|
|
70
|
+
* to be loaded within the iframe.
|
|
71
|
+
* @param pinboardId The GUID of the pinboard.
|
|
72
|
+
* @param vizId The optional GUID of a visualization within the pinboard.
|
|
73
|
+
* @param runtimeFilters A list of runtime filters to be applied to
|
|
74
|
+
* the pinboard or visualization on load.
|
|
75
|
+
*/
|
|
76
|
+
private getIFrameSrc;
|
|
77
|
+
/**
|
|
78
|
+
* Set the iframe height as per the computed height received
|
|
79
|
+
* from the ThoughtSpot app.
|
|
80
|
+
* @param data The event payload
|
|
81
|
+
*/
|
|
82
|
+
private updateIFrameHeight;
|
|
83
|
+
private embedIframeCenter;
|
|
84
|
+
private handleRouteChangeFullHeightPinboard;
|
|
85
|
+
/**
|
|
86
|
+
* Render an embedded ThoughtSpot pinboard or visualization
|
|
87
|
+
* @param renderOptions An object specifying the pinboard ID,
|
|
88
|
+
* visualization ID and the runtime filters.
|
|
89
|
+
*/
|
|
90
|
+
render(): PinboardEmbed;
|
|
91
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright: ThoughtSpot Inc. 2012-2016
|
|
3
|
+
* Author: Shashank Singh (sunny@thoughtspot.com)
|
|
4
|
+
*
|
|
5
|
+
* @fileoverview ThoughtSpot Javascript API for use of ThoughtSpot in external webpages.
|
|
6
|
+
*/
|
|
7
|
+
import { AuthType } from '../types';
|
|
8
|
+
export declare enum Events {
|
|
9
|
+
THOUGHTSPOT_AUTH_EXPIRED = "ThoughtspotAuthExpired",
|
|
10
|
+
EXPORT_VIZ_DATA_TO_PARENT = "exportVizDataToParent",
|
|
11
|
+
ALERT = "alert",
|
|
12
|
+
EXPORT_VIZ_DATA_TO_CHILD = "exportVizDataToChild",
|
|
13
|
+
GET_DATA = "getData"
|
|
14
|
+
}
|
|
15
|
+
declare type Callback = (...args: any[]) => void;
|
|
16
|
+
declare function checkIfLoggedIn(tsHost: string, callback: Callback): void;
|
|
17
|
+
declare function initialize(onInitialized: Callback, onAuthExpiration: Callback, _thoughtspotHost: string, authType: AuthType): void;
|
|
18
|
+
declare function notifyOnAuthExpiration(): void;
|
|
19
|
+
export { initialize, checkIfLoggedIn, notifyOnAuthExpiration };
|
package/dist/tsembed.es.js
CHANGED
|
@@ -8687,8 +8687,16 @@ function initMixpanel(sessionInfo) {
|
|
|
8687
8687
|
}
|
|
8688
8688
|
|
|
8689
8689
|
// eslint-disable-next-line import/no-cycle
|
|
8690
|
+
function failureLoggedFetch(url, options = {}) {
|
|
8691
|
+
return fetch(url, options).then(async (r) => {
|
|
8692
|
+
if (!r.ok) {
|
|
8693
|
+
console.error('Failure', await r.json());
|
|
8694
|
+
}
|
|
8695
|
+
return r;
|
|
8696
|
+
});
|
|
8697
|
+
}
|
|
8690
8698
|
function fetchSessionInfoService(authVerificationUrl) {
|
|
8691
|
-
return
|
|
8699
|
+
return failureLoggedFetch(authVerificationUrl, {
|
|
8692
8700
|
credentials: 'include',
|
|
8693
8701
|
});
|
|
8694
8702
|
}
|
|
@@ -8696,12 +8704,14 @@ async function fetchAuthTokenService(authEndpoint) {
|
|
|
8696
8704
|
return fetch(authEndpoint);
|
|
8697
8705
|
}
|
|
8698
8706
|
async function fetchAuthService(thoughtSpotHost, username, authToken) {
|
|
8699
|
-
return
|
|
8707
|
+
return failureLoggedFetch(`${thoughtSpotHost}${EndPoints.TOKEN_LOGIN}?username=${username}&auth_token=${authToken}`, {
|
|
8700
8708
|
credentials: 'include',
|
|
8709
|
+
}).catch((e) => {
|
|
8710
|
+
console.error(e);
|
|
8701
8711
|
});
|
|
8702
8712
|
}
|
|
8703
8713
|
async function fetchBasicAuthService(thoughtSpotHost, username, password) {
|
|
8704
|
-
return
|
|
8714
|
+
return failureLoggedFetch(`${thoughtSpotHost}${EndPoints.BASIC_LOGIN}`, {
|
|
8705
8715
|
method: 'POST',
|
|
8706
8716
|
headers: {
|
|
8707
8717
|
'content-type': 'application/x-www-form-urlencoded',
|
|
@@ -8782,10 +8792,13 @@ const doTokenAuth = async (embedConfig) => {
|
|
|
8782
8792
|
const response = await fetchAuthTokenService(authEndpoint);
|
|
8783
8793
|
authToken = await response.text();
|
|
8784
8794
|
}
|
|
8785
|
-
await fetchAuthService(thoughtSpotHost, username, authToken);
|
|
8786
|
-
loggedInStatus =
|
|
8795
|
+
const resp = await fetchAuthService(thoughtSpotHost, username, authToken);
|
|
8796
|
+
loggedInStatus = resp.status === 200;
|
|
8787
8797
|
}
|
|
8788
|
-
|
|
8798
|
+
else {
|
|
8799
|
+
loggedInStatus = true;
|
|
8800
|
+
}
|
|
8801
|
+
return loggedInStatus;
|
|
8789
8802
|
};
|
|
8790
8803
|
/**
|
|
8791
8804
|
* Perform basic authentication to the ThoughtSpot cluster using the cluster
|
|
@@ -8802,7 +8815,10 @@ const doBasicAuth = async (embedConfig) => {
|
|
|
8802
8815
|
const response = await fetchBasicAuthService(thoughtSpotHost, username, password);
|
|
8803
8816
|
loggedInStatus = response.status === 200;
|
|
8804
8817
|
}
|
|
8805
|
-
|
|
8818
|
+
else {
|
|
8819
|
+
loggedInStatus = true;
|
|
8820
|
+
}
|
|
8821
|
+
return loggedInStatus;
|
|
8806
8822
|
};
|
|
8807
8823
|
async function samlPopupFlow(ssoURL) {
|
|
8808
8824
|
document.body.insertAdjacentHTML('beforeend', '<div id="ts-saml-auth"></div>');
|
|
@@ -8866,6 +8882,7 @@ const doSamlAuth = async (embedConfig) => {
|
|
|
8866
8882
|
// bring back the page to the same URL
|
|
8867
8883
|
const ssoEndPoint = `${EndPoints.SAML_LOGIN_TEMPLATE(encodeURIComponent(ssoRedirectUrl))}`;
|
|
8868
8884
|
await doSSOAuth(embedConfig, ssoEndPoint);
|
|
8885
|
+
return loggedInStatus;
|
|
8869
8886
|
};
|
|
8870
8887
|
const doOIDCAuth = async (embedConfig) => {
|
|
8871
8888
|
const { thoughtSpotHost } = embedConfig;
|
|
@@ -8877,6 +8894,7 @@ const doOIDCAuth = async (embedConfig) => {
|
|
|
8877
8894
|
// bring back the page to the same URL
|
|
8878
8895
|
const ssoEndPoint = `${EndPoints.OIDC_LOGIN_TEMPLATE(encodeURIComponent(ssoRedirectUrl))}`;
|
|
8879
8896
|
await doSSOAuth(embedConfig, ssoEndPoint);
|
|
8897
|
+
return loggedInStatus;
|
|
8880
8898
|
};
|
|
8881
8899
|
/**
|
|
8882
8900
|
* Perform authentication on the ThoughtSpot cluster
|
|
@@ -8894,7 +8912,7 @@ const authenticate = async (embedConfig) => {
|
|
|
8894
8912
|
case AuthType.Basic:
|
|
8895
8913
|
return doBasicAuth(embedConfig);
|
|
8896
8914
|
default:
|
|
8897
|
-
return Promise.resolve();
|
|
8915
|
+
return Promise.resolve(true);
|
|
8898
8916
|
}
|
|
8899
8917
|
};
|
|
8900
8918
|
|
|
@@ -9088,7 +9106,7 @@ function processTrigger(iFrame, messageType, thoughtSpotHost, data) {
|
|
|
9088
9106
|
}
|
|
9089
9107
|
}
|
|
9090
9108
|
|
|
9091
|
-
var name="@thoughtspot/visual-embed-sdk";var version="1.11.0-
|
|
9109
|
+
var name="@thoughtspot/visual-embed-sdk";var version="1.11.0-auth.2";var description="ThoughtSpot Embed SDK";var module="lib/src/index.js";var main="dist/tsembed.js";var types="lib/src/index.d.ts";var files=["dist/**","lib/**","src/**"];var exports={".":"./lib/src/index.js","./react":"./lib/src/react/index.js"};var scripts={lint:"eslint 'src/**'","lint:fix":"eslint 'src/**/*.*' --fix",tsc:"tsc -p . --incremental false",start:"gatsby develop","build:gatsby":"npm run clean:gatsby && gatsby build --prefix-paths","build:gatsby:noprefix":"npm run clean:gatsby && gatsby build","serve:gatsby":"gatsby serve","clean:gatsby":"gatsby clean","build-and-publish":"npm run build:gatsby && npm run publish","bundle-dts":"dts-bundle --name @thoughtspot/visual-embed-sdk --out visual-embed-sdk.d.ts --main lib/src/index.d.ts",build:"rollup -c",watch:"rollup -cw","docs-cmd":"node scripts/gatsby-commands.js",docgen:"typedoc --tsconfig tsconfig.json --theme typedoc-theme","test-sdk":"jest -c jest.config.sdk.js","test-docs":"jest -c jest.config.docs.js",test:"npm run test-sdk && npm run test-docs && npx istanbul-merge --out ./coverage/coverage.json ./coverage/docs/coverage-final.json ./coverage/sdk/coverage-final.json && npx istanbul report --include ./coverage/coverage.json --dir ./coverage lcov",posttest:"cat ./coverage/sdk/lcov.info | coveralls",prepublishOnly:"npm run test; npm run tsc; npm run bundle-dts; npm run build","publish-dev":"npm publish --tag dev","publish-prod":"npm publish --tag latest"};var peerDependencies={react:"> 16.8.0","react-dom":"> 16.8.0"};var dependencies={algoliasearch:"^4.10.5",classnames:"^2.3.1","mixpanel-browser":"^2.41.0"};var devDependencies={"@mdx-js/mdx":"^1.6.22","@mdx-js/react":"^1.6.22","@react-icons/all-files":"^4.1.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^11.2.1","@testing-library/dom":"^7.31.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^11.2.7","@testing-library/user-event":"^13.1.8","@types/jest":"^22.2.3","@types/mixpanel-browser":"^2.35.6","@types/react-test-renderer":"^17.0.1","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0",asciidoctor:"^2.2.1","babel-jest":"^26.6.3","babel-preset-gatsby":"^1.10.0","command-line-args":"^5.1.1",coveralls:"^3.1.0","dts-bundle":"0.7.3",eslint:"^7.12.1","eslint-config-airbnb-base":"^14.2.0","eslint-config-prettier":"^6.15.0","eslint-import-resolver-typescript":"^2.3.0","eslint-plugin-import":"^2.22.1","eslint-plugin-prettier":"^3.1.4","eslint-plugin-react-hooks":"^4.2.0","fs-extra":"^10.0.0",gatsby:"3.1.0","gatsby-plugin-algolia":"^0.22.2","gatsby-plugin-catch-links":"^3.1.0","gatsby-plugin-env-variables":"^2.1.0","gatsby-plugin-intl":"^0.3.3","gatsby-plugin-manifest":"^3.2.0","gatsby-plugin-output":"^0.1.3","gatsby-plugin-sass":"4.1.0","gatsby-plugin-sitemap":"^4.10.0","gatsby-source-filesystem":"3.1.0","gatsby-transformer-asciidoc":"2.1.0","gatsby-transformer-rehype":"2.0.0","gh-pages":"^3.1.0","highlight.js":"^10.6.0","html-to-text":"^8.0.0","identity-obj-proxy":"^3.0.0","istanbul-merge":"^1.1.1",jest:"^26.6.3","jest-puppeteer":"^4.4.0",jsdom:"^17.0.0","node-sass":"^4.0.0",prettier:"2.1.2",puppeteer:"^7.0.1",react:"^16.14.0","react-dom":"^16.14.0","react-resizable":"^1.11.0","react-resize-detector":"^6.6.0","react-test-renderer":"^17.0.2","react-use-flexsearch":"^0.1.1",rollup:"2.30.0","rollup-plugin-typescript2":"0.27.3","ts-jest":"^26.5.5","ts-loader":"8.0.4",typedoc:"0.21.6","typedoc-neo-theme":"^1.1.0","typedoc-plugin-toc-group":"0.0.5",typescript:"^4.1.0","url-search-params-polyfill":"^8.1.0",util:"^0.12.4"};var author="ThoughtSpot";var email="support@thoughtspot.com";var license="ThoughtSpot Development Tools End User License Agreement";var directories={lib:"lib"};var repository={type:"git",url:"git+https://github.com/thoughtspot/visual-embed-sdk.git"};var publishConfig={registry:"https://registry.npmjs.org"};var keywords=["thoughtspot","everywhere","embed","sdk","analytics"];var bugs={url:"https://github.com/thoughtspot/visual-embed-sdk/issues"};var homepage="https://github.com/thoughtspot/visual-embed-sdk#readme";var globals={window:{}};var pkgInfo = {name:name,version:version,description:description,module:module,main:main,types:types,files:files,exports:exports,scripts:scripts,peerDependencies:peerDependencies,dependencies:dependencies,devDependencies:devDependencies,author:author,email:email,license:license,directories:directories,repository:repository,publishConfig:publishConfig,keywords:keywords,bugs:bugs,homepage:homepage,globals:globals};
|
|
9092
9110
|
|
|
9093
9111
|
/**
|
|
9094
9112
|
* Copyright (c) 2022
|
|
@@ -9336,7 +9354,11 @@ class TsEmbed {
|
|
|
9336
9354
|
type: EmbedEvent.Init,
|
|
9337
9355
|
});
|
|
9338
9356
|
uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_START);
|
|
9339
|
-
(_a = getAuthPromise()) === null || _a === void 0 ? void 0 : _a.then(() => {
|
|
9357
|
+
(_a = getAuthPromise()) === null || _a === void 0 ? void 0 : _a.then((isLoggedIn) => {
|
|
9358
|
+
if (!isLoggedIn) {
|
|
9359
|
+
this.el.innerHTML = 'Login failed';
|
|
9360
|
+
return;
|
|
9361
|
+
}
|
|
9340
9362
|
uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_COMPLETE);
|
|
9341
9363
|
this.iFrame =
|
|
9342
9364
|
this.iFrame || document.createElement('iframe');
|
package/dist/tsembed.js
CHANGED
|
@@ -8656,8 +8656,16 @@
|
|
|
8656
8656
|
}
|
|
8657
8657
|
|
|
8658
8658
|
// eslint-disable-next-line import/no-cycle
|
|
8659
|
+
function failureLoggedFetch(url, options = {}) {
|
|
8660
|
+
return fetch(url, options).then(async (r) => {
|
|
8661
|
+
if (!r.ok) {
|
|
8662
|
+
console.error('Failure', await r.json());
|
|
8663
|
+
}
|
|
8664
|
+
return r;
|
|
8665
|
+
});
|
|
8666
|
+
}
|
|
8659
8667
|
function fetchSessionInfoService(authVerificationUrl) {
|
|
8660
|
-
return
|
|
8668
|
+
return failureLoggedFetch(authVerificationUrl, {
|
|
8661
8669
|
credentials: 'include',
|
|
8662
8670
|
});
|
|
8663
8671
|
}
|
|
@@ -8665,12 +8673,14 @@
|
|
|
8665
8673
|
return fetch(authEndpoint);
|
|
8666
8674
|
}
|
|
8667
8675
|
async function fetchAuthService(thoughtSpotHost, username, authToken) {
|
|
8668
|
-
return
|
|
8676
|
+
return failureLoggedFetch(`${thoughtSpotHost}${EndPoints.TOKEN_LOGIN}?username=${username}&auth_token=${authToken}`, {
|
|
8669
8677
|
credentials: 'include',
|
|
8678
|
+
}).catch((e) => {
|
|
8679
|
+
console.error(e);
|
|
8670
8680
|
});
|
|
8671
8681
|
}
|
|
8672
8682
|
async function fetchBasicAuthService(thoughtSpotHost, username, password) {
|
|
8673
|
-
return
|
|
8683
|
+
return failureLoggedFetch(`${thoughtSpotHost}${EndPoints.BASIC_LOGIN}`, {
|
|
8674
8684
|
method: 'POST',
|
|
8675
8685
|
headers: {
|
|
8676
8686
|
'content-type': 'application/x-www-form-urlencoded',
|
|
@@ -8751,10 +8761,13 @@
|
|
|
8751
8761
|
const response = await fetchAuthTokenService(authEndpoint);
|
|
8752
8762
|
authToken = await response.text();
|
|
8753
8763
|
}
|
|
8754
|
-
await fetchAuthService(thoughtSpotHost, username, authToken);
|
|
8755
|
-
loggedInStatus =
|
|
8764
|
+
const resp = await fetchAuthService(thoughtSpotHost, username, authToken);
|
|
8765
|
+
loggedInStatus = resp.status === 200;
|
|
8756
8766
|
}
|
|
8757
|
-
|
|
8767
|
+
else {
|
|
8768
|
+
loggedInStatus = true;
|
|
8769
|
+
}
|
|
8770
|
+
return loggedInStatus;
|
|
8758
8771
|
};
|
|
8759
8772
|
/**
|
|
8760
8773
|
* Perform basic authentication to the ThoughtSpot cluster using the cluster
|
|
@@ -8771,7 +8784,10 @@
|
|
|
8771
8784
|
const response = await fetchBasicAuthService(thoughtSpotHost, username, password);
|
|
8772
8785
|
loggedInStatus = response.status === 200;
|
|
8773
8786
|
}
|
|
8774
|
-
|
|
8787
|
+
else {
|
|
8788
|
+
loggedInStatus = true;
|
|
8789
|
+
}
|
|
8790
|
+
return loggedInStatus;
|
|
8775
8791
|
};
|
|
8776
8792
|
async function samlPopupFlow(ssoURL) {
|
|
8777
8793
|
document.body.insertAdjacentHTML('beforeend', '<div id="ts-saml-auth"></div>');
|
|
@@ -8835,6 +8851,7 @@
|
|
|
8835
8851
|
// bring back the page to the same URL
|
|
8836
8852
|
const ssoEndPoint = `${EndPoints.SAML_LOGIN_TEMPLATE(encodeURIComponent(ssoRedirectUrl))}`;
|
|
8837
8853
|
await doSSOAuth(embedConfig, ssoEndPoint);
|
|
8854
|
+
return loggedInStatus;
|
|
8838
8855
|
};
|
|
8839
8856
|
const doOIDCAuth = async (embedConfig) => {
|
|
8840
8857
|
const { thoughtSpotHost } = embedConfig;
|
|
@@ -8846,6 +8863,7 @@
|
|
|
8846
8863
|
// bring back the page to the same URL
|
|
8847
8864
|
const ssoEndPoint = `${EndPoints.OIDC_LOGIN_TEMPLATE(encodeURIComponent(ssoRedirectUrl))}`;
|
|
8848
8865
|
await doSSOAuth(embedConfig, ssoEndPoint);
|
|
8866
|
+
return loggedInStatus;
|
|
8849
8867
|
};
|
|
8850
8868
|
/**
|
|
8851
8869
|
* Perform authentication on the ThoughtSpot cluster
|
|
@@ -8863,7 +8881,7 @@
|
|
|
8863
8881
|
case exports.AuthType.Basic:
|
|
8864
8882
|
return doBasicAuth(embedConfig);
|
|
8865
8883
|
default:
|
|
8866
|
-
return Promise.resolve();
|
|
8884
|
+
return Promise.resolve(true);
|
|
8867
8885
|
}
|
|
8868
8886
|
};
|
|
8869
8887
|
|
|
@@ -9057,7 +9075,7 @@
|
|
|
9057
9075
|
}
|
|
9058
9076
|
}
|
|
9059
9077
|
|
|
9060
|
-
var name="@thoughtspot/visual-embed-sdk";var version="1.11.0-
|
|
9078
|
+
var name="@thoughtspot/visual-embed-sdk";var version="1.11.0-auth.2";var description="ThoughtSpot Embed SDK";var module="lib/src/index.js";var main="dist/tsembed.js";var types="lib/src/index.d.ts";var files=["dist/**","lib/**","src/**"];var exports$1={".":"./lib/src/index.js","./react":"./lib/src/react/index.js"};var scripts={lint:"eslint 'src/**'","lint:fix":"eslint 'src/**/*.*' --fix",tsc:"tsc -p . --incremental false",start:"gatsby develop","build:gatsby":"npm run clean:gatsby && gatsby build --prefix-paths","build:gatsby:noprefix":"npm run clean:gatsby && gatsby build","serve:gatsby":"gatsby serve","clean:gatsby":"gatsby clean","build-and-publish":"npm run build:gatsby && npm run publish","bundle-dts":"dts-bundle --name @thoughtspot/visual-embed-sdk --out visual-embed-sdk.d.ts --main lib/src/index.d.ts",build:"rollup -c",watch:"rollup -cw","docs-cmd":"node scripts/gatsby-commands.js",docgen:"typedoc --tsconfig tsconfig.json --theme typedoc-theme","test-sdk":"jest -c jest.config.sdk.js","test-docs":"jest -c jest.config.docs.js",test:"npm run test-sdk && npm run test-docs && npx istanbul-merge --out ./coverage/coverage.json ./coverage/docs/coverage-final.json ./coverage/sdk/coverage-final.json && npx istanbul report --include ./coverage/coverage.json --dir ./coverage lcov",posttest:"cat ./coverage/sdk/lcov.info | coveralls",prepublishOnly:"npm run test; npm run tsc; npm run bundle-dts; npm run build","publish-dev":"npm publish --tag dev","publish-prod":"npm publish --tag latest"};var peerDependencies={react:"> 16.8.0","react-dom":"> 16.8.0"};var dependencies={algoliasearch:"^4.10.5",classnames:"^2.3.1","mixpanel-browser":"^2.41.0"};var devDependencies={"@mdx-js/mdx":"^1.6.22","@mdx-js/react":"^1.6.22","@react-icons/all-files":"^4.1.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^11.2.1","@testing-library/dom":"^7.31.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^11.2.7","@testing-library/user-event":"^13.1.8","@types/jest":"^22.2.3","@types/mixpanel-browser":"^2.35.6","@types/react-test-renderer":"^17.0.1","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0",asciidoctor:"^2.2.1","babel-jest":"^26.6.3","babel-preset-gatsby":"^1.10.0","command-line-args":"^5.1.1",coveralls:"^3.1.0","dts-bundle":"0.7.3",eslint:"^7.12.1","eslint-config-airbnb-base":"^14.2.0","eslint-config-prettier":"^6.15.0","eslint-import-resolver-typescript":"^2.3.0","eslint-plugin-import":"^2.22.1","eslint-plugin-prettier":"^3.1.4","eslint-plugin-react-hooks":"^4.2.0","fs-extra":"^10.0.0",gatsby:"3.1.0","gatsby-plugin-algolia":"^0.22.2","gatsby-plugin-catch-links":"^3.1.0","gatsby-plugin-env-variables":"^2.1.0","gatsby-plugin-intl":"^0.3.3","gatsby-plugin-manifest":"^3.2.0","gatsby-plugin-output":"^0.1.3","gatsby-plugin-sass":"4.1.0","gatsby-plugin-sitemap":"^4.10.0","gatsby-source-filesystem":"3.1.0","gatsby-transformer-asciidoc":"2.1.0","gatsby-transformer-rehype":"2.0.0","gh-pages":"^3.1.0","highlight.js":"^10.6.0","html-to-text":"^8.0.0","identity-obj-proxy":"^3.0.0","istanbul-merge":"^1.1.1",jest:"^26.6.3","jest-puppeteer":"^4.4.0",jsdom:"^17.0.0","node-sass":"^4.0.0",prettier:"2.1.2",puppeteer:"^7.0.1",react:"^16.14.0","react-dom":"^16.14.0","react-resizable":"^1.11.0","react-resize-detector":"^6.6.0","react-test-renderer":"^17.0.2","react-use-flexsearch":"^0.1.1",rollup:"2.30.0","rollup-plugin-typescript2":"0.27.3","ts-jest":"^26.5.5","ts-loader":"8.0.4",typedoc:"0.21.6","typedoc-neo-theme":"^1.1.0","typedoc-plugin-toc-group":"0.0.5",typescript:"^4.1.0","url-search-params-polyfill":"^8.1.0",util:"^0.12.4"};var author="ThoughtSpot";var email="support@thoughtspot.com";var license="ThoughtSpot Development Tools End User License Agreement";var directories={lib:"lib"};var repository={type:"git",url:"git+https://github.com/thoughtspot/visual-embed-sdk.git"};var publishConfig={registry:"https://registry.npmjs.org"};var keywords=["thoughtspot","everywhere","embed","sdk","analytics"];var bugs={url:"https://github.com/thoughtspot/visual-embed-sdk/issues"};var homepage="https://github.com/thoughtspot/visual-embed-sdk#readme";var globals={window:{}};var pkgInfo = {name:name,version:version,description:description,module:module,main:main,types:types,files:files,exports:exports$1,scripts:scripts,peerDependencies:peerDependencies,dependencies:dependencies,devDependencies:devDependencies,author:author,email:email,license:license,directories:directories,repository:repository,publishConfig:publishConfig,keywords:keywords,bugs:bugs,homepage:homepage,globals:globals};
|
|
9061
9079
|
|
|
9062
9080
|
/**
|
|
9063
9081
|
* Copyright (c) 2022
|
|
@@ -9305,7 +9323,11 @@
|
|
|
9305
9323
|
type: exports.EmbedEvent.Init,
|
|
9306
9324
|
});
|
|
9307
9325
|
uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_START);
|
|
9308
|
-
(_a = getAuthPromise()) === null || _a === void 0 ? void 0 : _a.then(() => {
|
|
9326
|
+
(_a = getAuthPromise()) === null || _a === void 0 ? void 0 : _a.then((isLoggedIn) => {
|
|
9327
|
+
if (!isLoggedIn) {
|
|
9328
|
+
this.el.innerHTML = 'Login failed';
|
|
9329
|
+
return;
|
|
9330
|
+
}
|
|
9309
9331
|
uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_COMPLETE);
|
|
9310
9332
|
this.iFrame =
|
|
9311
9333
|
this.iFrame || document.createElement('iframe');
|
package/lib/package.json
CHANGED
package/lib/src/auth.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export declare function initSession(sessionDetails: any): void;
|
|
|
20
20
|
* Perform token based authentication
|
|
21
21
|
* @param embedConfig The embed configuration
|
|
22
22
|
*/
|
|
23
|
-
export declare const doTokenAuth: (embedConfig: EmbedConfig) => Promise<
|
|
23
|
+
export declare const doTokenAuth: (embedConfig: EmbedConfig) => Promise<boolean>;
|
|
24
24
|
/**
|
|
25
25
|
* Perform basic authentication to the ThoughtSpot cluster using the cluster
|
|
26
26
|
* credentials.
|
|
@@ -29,14 +29,14 @@ export declare const doTokenAuth: (embedConfig: EmbedConfig) => Promise<void>;
|
|
|
29
29
|
* strongly advised not to use this authentication method in production.
|
|
30
30
|
* @param embedConfig The embed configuration
|
|
31
31
|
*/
|
|
32
|
-
export declare const doBasicAuth: (embedConfig: EmbedConfig) => Promise<
|
|
33
|
-
export declare const doSamlAuth: (embedConfig: EmbedConfig) => Promise<
|
|
34
|
-
export declare const doOIDCAuth: (embedConfig: EmbedConfig) => Promise<
|
|
32
|
+
export declare const doBasicAuth: (embedConfig: EmbedConfig) => Promise<boolean>;
|
|
33
|
+
export declare const doSamlAuth: (embedConfig: EmbedConfig) => Promise<boolean>;
|
|
34
|
+
export declare const doOIDCAuth: (embedConfig: EmbedConfig) => Promise<boolean>;
|
|
35
35
|
/**
|
|
36
36
|
* Perform authentication on the ThoughtSpot cluster
|
|
37
37
|
* @param embedConfig The embed configuration
|
|
38
38
|
*/
|
|
39
|
-
export declare const authenticate: (embedConfig: EmbedConfig) => Promise<
|
|
39
|
+
export declare const authenticate: (embedConfig: EmbedConfig) => Promise<boolean>;
|
|
40
40
|
/**
|
|
41
41
|
* Check if we are authenticated to the ThoughtSpot cluster
|
|
42
42
|
*/
|
package/lib/src/auth.js
CHANGED
|
@@ -79,10 +79,13 @@ export const doTokenAuth = async (embedConfig) => {
|
|
|
79
79
|
const response = await fetchAuthTokenService(authEndpoint);
|
|
80
80
|
authToken = await response.text();
|
|
81
81
|
}
|
|
82
|
-
await fetchAuthService(thoughtSpotHost, username, authToken);
|
|
83
|
-
loggedInStatus =
|
|
82
|
+
const resp = await fetchAuthService(thoughtSpotHost, username, authToken);
|
|
83
|
+
loggedInStatus = resp.status === 200;
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
loggedInStatus = true;
|
|
84
87
|
}
|
|
85
|
-
loggedInStatus
|
|
88
|
+
return loggedInStatus;
|
|
86
89
|
};
|
|
87
90
|
/**
|
|
88
91
|
* Perform basic authentication to the ThoughtSpot cluster using the cluster
|
|
@@ -99,7 +102,10 @@ export const doBasicAuth = async (embedConfig) => {
|
|
|
99
102
|
const response = await fetchBasicAuthService(thoughtSpotHost, username, password);
|
|
100
103
|
loggedInStatus = response.status === 200;
|
|
101
104
|
}
|
|
102
|
-
|
|
105
|
+
else {
|
|
106
|
+
loggedInStatus = true;
|
|
107
|
+
}
|
|
108
|
+
return loggedInStatus;
|
|
103
109
|
};
|
|
104
110
|
async function samlPopupFlow(ssoURL) {
|
|
105
111
|
document.body.insertAdjacentHTML('beforeend', '<div id="ts-saml-auth"></div>');
|
|
@@ -163,6 +169,7 @@ export const doSamlAuth = async (embedConfig) => {
|
|
|
163
169
|
// bring back the page to the same URL
|
|
164
170
|
const ssoEndPoint = `${EndPoints.SAML_LOGIN_TEMPLATE(encodeURIComponent(ssoRedirectUrl))}`;
|
|
165
171
|
await doSSOAuth(embedConfig, ssoEndPoint);
|
|
172
|
+
return loggedInStatus;
|
|
166
173
|
};
|
|
167
174
|
export const doOIDCAuth = async (embedConfig) => {
|
|
168
175
|
const { thoughtSpotHost } = embedConfig;
|
|
@@ -174,6 +181,7 @@ export const doOIDCAuth = async (embedConfig) => {
|
|
|
174
181
|
// bring back the page to the same URL
|
|
175
182
|
const ssoEndPoint = `${EndPoints.OIDC_LOGIN_TEMPLATE(encodeURIComponent(ssoRedirectUrl))}`;
|
|
176
183
|
await doSSOAuth(embedConfig, ssoEndPoint);
|
|
184
|
+
return loggedInStatus;
|
|
177
185
|
};
|
|
178
186
|
/**
|
|
179
187
|
* Perform authentication on the ThoughtSpot cluster
|
|
@@ -191,7 +199,7 @@ export const authenticate = async (embedConfig) => {
|
|
|
191
199
|
case AuthType.Basic:
|
|
192
200
|
return doBasicAuth(embedConfig);
|
|
193
201
|
default:
|
|
194
|
-
return Promise.resolve();
|
|
202
|
+
return Promise.resolve(true);
|
|
195
203
|
}
|
|
196
204
|
};
|
|
197
205
|
/**
|
package/lib/src/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAe,UAAU,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,2CAA2C;AAC3C,OAAO,EACH,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,qDAAqD;AACrD,MAAM,CAAC,IAAI,cAAc,GAAG,KAAK,CAAC;AAClC,qDAAqD;AACrD,MAAM,CAAC,IAAI,cAAc,GAAW,IAAI,CAAC;AACzC,qDAAqD;AACrD,MAAM,CAAC,IAAI,qBAAqB,GAAkB,IAAI,CAAC;AACvD,qDAAqD;AACrD,MAAM,CAAC,IAAI,WAAW,GAAQ,IAAI,CAAC;AAEnC,MAAM,CAAC,MAAM,2BAA2B,GACpC,sCAAsC,CAAC;AAE3C,MAAM,CAAC,MAAM,SAAS,GAAG;IACrB,iBAAiB,EAAE,2BAA2B;IAC9C,mBAAmB,EAAE,CAAC,SAAiB,EAAE,EAAE,CACvC,yCAAyC,SAAS,EAAE;IACxD,mBAAmB,EAAE,CAAC,SAAiB,EAAE,EAAE,CACvC,yCAAyC,SAAS,EAAE;IACxD,WAAW,EAAE,kCAAkC;IAC/C,WAAW,EAAE,4BAA4B;CAC5C,CAAC;AAEF;;;GAGG;AACH,KAAK,UAAU,UAAU,CAAC,eAAuB;IAC7C,MAAM,mBAAmB,GAAG,GAAG,eAAe,GAAG,SAAS,CAAC,iBAAiB,EAAE,CAAC;IAC/E,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,IAAI;QACA,QAAQ,GAAG,MAAM,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;KACjE;IAAC,OAAO,CAAC,EAAE;QACR,OAAO,KAAK,CAAC;KAChB;IACD,OAAO,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC1B,OAAO,WAAW,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,cAAmB;IAC3C,WAAW,GAAG,cAAc,CAAC;IAC7B,YAAY,CAAC,WAAW,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB;IACvB,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,SAAS,0BAA0B;IAC/B,yEAAyE;IACzE,mFAAmF;IACnF,kFAAkF;IAClF,0EAA0E;IAC1E,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAC/C,2BAA2B,EAC3B,EAAE,CACL,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"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"}
|
package/lib/src/auth.spec.js
CHANGED
|
@@ -97,7 +97,9 @@ describe('Unit test for auth', () => {
|
|
|
97
97
|
test('doTokenAuth: when user is not loggedIn & getAuthToken have response, isLoggedIn should called', async () => {
|
|
98
98
|
jest.spyOn(authService, 'fetchSessionInfoService').mockImplementation(() => false);
|
|
99
99
|
jest.spyOn(authService, 'fetchAuthTokenService').mockImplementation(() => ({ text: () => Promise.resolve('abc') }));
|
|
100
|
-
jest.spyOn(authService, 'fetchAuthService')
|
|
100
|
+
jest.spyOn(authService, 'fetchAuthService').mockImplementation(() => Promise.resolve({
|
|
101
|
+
status: 200,
|
|
102
|
+
}));
|
|
101
103
|
await authInstance.doTokenAuth(embedConfig.doTokenAuthSuccess);
|
|
102
104
|
expect(authService.fetchSessionInfoService).toBeCalled();
|
|
103
105
|
expect(authService.fetchAuthService).toBeCalledWith(thoughtSpotHost, username, 'authToken');
|
|
@@ -105,7 +107,9 @@ describe('Unit test for auth', () => {
|
|
|
105
107
|
test('doTokenAuth: when user is not loggedIn & getAuthToken not present, isLoggedIn should called', async () => {
|
|
106
108
|
jest.spyOn(authService, 'fetchSessionInfoService').mockImplementation(() => false);
|
|
107
109
|
jest.spyOn(authService, 'fetchAuthTokenService').mockImplementation(() => Promise.resolve({ text: () => Promise.resolve('abc') }));
|
|
108
|
-
jest.spyOn(authService, 'fetchAuthService')
|
|
110
|
+
jest.spyOn(authService, 'fetchAuthService').mockImplementation(() => Promise.resolve({
|
|
111
|
+
status: 200,
|
|
112
|
+
}));
|
|
109
113
|
await authInstance.doTokenAuth(embedConfig.doTokenAuthFailureWithoutGetAuthToken);
|
|
110
114
|
await executeAfterWait(() => {
|
|
111
115
|
expect(authInstance.loggedInStatus).toBe(true);
|
|
@@ -190,7 +194,7 @@ describe('Unit test for auth', () => {
|
|
|
190
194
|
expect(await authInstance.doSamlAuth({
|
|
191
195
|
...embedConfig.doSamlAuth,
|
|
192
196
|
noRedirect: true,
|
|
193
|
-
})).toBe(
|
|
197
|
+
})).toBe(false);
|
|
194
198
|
expect(authService.fetchSessionInfoService).toBeCalled();
|
|
195
199
|
});
|
|
196
200
|
});
|
package/lib/src/auth.spec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.spec.js","sourceRoot":"","sources":["../../src/auth.spec.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"auth.spec.js","sourceRoot":"","sources":["../../src/auth.spec.ts"],"names":[],"mappings":"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"}
|