@thoughtspot/visual-embed-sdk 1.36.0 → 1.36.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/cjs/package.json +1 -1
- package/cjs/src/auth.d.ts.map +1 -1
- package/cjs/src/auth.js +2 -1
- package/cjs/src/auth.js.map +1 -1
- package/cjs/src/css-variables.d.ts +8 -0
- package/cjs/src/css-variables.d.ts.map +1 -1
- package/cjs/src/embed/base.d.ts.map +1 -1
- package/cjs/src/embed/base.js +2 -2
- package/cjs/src/embed/base.js.map +1 -1
- package/cjs/src/embed/base.spec.js +24 -0
- package/cjs/src/embed/base.spec.js.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.js +8 -3
- package/cjs/src/embed/hostEventClient/host-event-client.js.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.spec.js +54 -0
- package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
- package/cjs/src/embed/searchEmbed-basic-auth.spec.d.ts +2 -0
- package/cjs/src/embed/searchEmbed-basic-auth.spec.d.ts.map +1 -0
- package/cjs/src/embed/searchEmbed-basic-auth.spec.js +104 -0
- package/cjs/src/embed/searchEmbed-basic-auth.spec.js.map +1 -0
- package/cjs/src/hostEventsTypeMapping.d.ts +2 -0
- package/cjs/src/hostEventsTypeMapping.d.ts.map +1 -0
- package/cjs/src/hostEventsTypeMapping.js +4 -0
- package/cjs/src/hostEventsTypeMapping.js.map +1 -0
- package/cjs/src/types.d.ts +72 -8
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +72 -8
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/embedApi/contracts.d.ts +101 -0
- package/cjs/src/utils/embedApi/contracts.d.ts.map +1 -0
- package/cjs/src/utils/embedApi/contracts.js +17 -0
- package/cjs/src/utils/embedApi/contracts.js.map +1 -0
- package/cjs/src/utils/embedApi/embedApiClient.d.ts +12 -0
- package/cjs/src/utils/embedApi/embedApiClient.d.ts.map +1 -0
- package/cjs/src/utils/embedApi/embedApiClient.js +46 -0
- package/cjs/src/utils/embedApi/embedApiClient.js.map +1 -0
- package/cjs/src/utils/embedApi/processEmbedApi.d.ts +9 -0
- package/cjs/src/utils/embedApi/processEmbedApi.d.ts.map +1 -0
- package/cjs/src/utils/embedApi/processEmbedApi.js +18 -0
- package/cjs/src/utils/embedApi/processEmbedApi.js.map +1 -0
- package/cjs/src/utils/resetServices.d.ts +8 -0
- package/cjs/src/utils/resetServices.d.ts.map +1 -0
- package/cjs/src/utils/resetServices.js +18 -0
- package/cjs/src/utils/resetServices.js.map +1 -0
- package/cjs/src/utils/resetServices.spec.d.ts +2 -0
- package/cjs/src/utils/resetServices.spec.d.ts.map +1 -0
- package/cjs/src/utils/resetServices.spec.js +18 -0
- package/cjs/src/utils/resetServices.spec.js.map +1 -0
- package/cjs/src/utils/sessionInfoService.d.ts +14 -2
- package/cjs/src/utils/sessionInfoService.d.ts.map +1 -1
- package/cjs/src/utils/sessionInfoService.js +18 -3
- package/cjs/src/utils/sessionInfoService.js.map +1 -1
- package/dist/{index-V2oBuwy6.js → index-B3hd6DTM.js} +1 -1
- package/dist/index-BBBimG1x.js +7370 -0
- package/dist/index-BGnxP5NY.js +7370 -0
- package/dist/index-CENLvayL.js +7370 -0
- package/dist/index-CR5u7BMC.js +7370 -0
- package/dist/index-CbltIawo.js +7370 -0
- package/dist/index-CoQfqaHj.js +7370 -0
- package/dist/index-CzwzS0P4.js +7370 -0
- package/dist/index-D-9WUCUl.js +7370 -0
- package/dist/index-DFwi_pV_.js +7370 -0
- package/dist/index-DOIjN0N_.js +7370 -0
- package/dist/index-DYBx8SuE.js +7370 -0
- package/dist/index-DaLHJaLd.js +7370 -0
- package/dist/index-DnJX-gN2.js +7370 -0
- package/dist/index-DpuhnTj2.js +7370 -0
- package/dist/index-IDmSUe93.js +7370 -0
- package/dist/index-nWevLycs.js +7370 -0
- package/dist/index-vxW97_xb.js +7370 -0
- package/dist/src/auth.d.ts.map +1 -1
- package/dist/src/css-variables.d.ts +8 -0
- package/dist/src/css-variables.d.ts.map +1 -1
- package/dist/src/embed/base.d.ts.map +1 -1
- package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/dist/src/embed/searchEmbed-basic-auth.spec.d.ts +2 -0
- package/dist/src/embed/searchEmbed-basic-auth.spec.d.ts.map +1 -0
- package/dist/src/hostEventsTypeMapping.d.ts +2 -0
- package/dist/src/hostEventsTypeMapping.d.ts.map +1 -0
- package/dist/src/types.d.ts +72 -8
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/embedApi/contracts.d.ts +101 -0
- package/dist/src/utils/embedApi/contracts.d.ts.map +1 -0
- package/dist/src/utils/embedApi/embedApiClient.d.ts +12 -0
- package/dist/src/utils/embedApi/embedApiClient.d.ts.map +1 -0
- package/dist/src/utils/embedApi/processEmbedApi.d.ts +9 -0
- package/dist/src/utils/embedApi/processEmbedApi.d.ts.map +1 -0
- package/dist/src/utils/resetServices.d.ts +8 -0
- package/dist/src/utils/resetServices.d.ts.map +1 -0
- package/dist/src/utils/resetServices.spec.d.ts +2 -0
- package/dist/src/utils/resetServices.spec.d.ts.map +1 -0
- package/dist/src/utils/sessionInfoService.d.ts +14 -2
- package/dist/src/utils/sessionInfoService.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +85 -15
- package/dist/tsembed-react.js +84 -14
- package/dist/tsembed.es.js +126 -18
- package/dist/tsembed.js +125 -17
- package/dist/visual-embed-sdk-react-full.d.ts +94 -10
- package/dist/visual-embed-sdk-react.d.ts +94 -10
- package/dist/visual-embed-sdk.d.ts +94 -10
- package/lib/package.json +1 -1
- package/lib/src/auth.d.ts.map +1 -1
- package/lib/src/auth.js +3 -2
- package/lib/src/auth.js.map +1 -1
- package/lib/src/css-variables.d.ts +8 -0
- package/lib/src/css-variables.d.ts.map +1 -1
- package/lib/src/embed/base.d.ts.map +1 -1
- package/lib/src/embed/base.js +2 -2
- package/lib/src/embed/base.js.map +1 -1
- package/lib/src/embed/base.spec.js +24 -0
- package/lib/src/embed/base.spec.js.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.js +8 -3
- package/lib/src/embed/hostEventClient/host-event-client.js.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.spec.js +54 -0
- package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
- package/lib/src/embed/searchEmbed-basic-auth.spec.d.ts +2 -0
- package/lib/src/embed/searchEmbed-basic-auth.spec.d.ts.map +1 -0
- package/lib/src/embed/searchEmbed-basic-auth.spec.js +101 -0
- package/lib/src/embed/searchEmbed-basic-auth.spec.js.map +1 -0
- package/lib/src/hostEventsTypeMapping.d.ts +2 -0
- package/lib/src/hostEventsTypeMapping.d.ts.map +1 -0
- package/lib/src/hostEventsTypeMapping.js +2 -0
- package/lib/src/hostEventsTypeMapping.js.map +1 -0
- package/lib/src/types.d.ts +72 -8
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +72 -8
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/embedApi/contracts.d.ts +101 -0
- package/lib/src/utils/embedApi/contracts.d.ts.map +1 -0
- package/lib/src/utils/embedApi/contracts.js +14 -0
- package/lib/src/utils/embedApi/contracts.js.map +1 -0
- package/lib/src/utils/embedApi/embedApiClient.d.ts +12 -0
- package/lib/src/utils/embedApi/embedApiClient.d.ts.map +1 -0
- package/lib/src/utils/embedApi/embedApiClient.js +42 -0
- package/lib/src/utils/embedApi/embedApiClient.js.map +1 -0
- package/lib/src/utils/embedApi/processEmbedApi.d.ts +9 -0
- package/lib/src/utils/embedApi/processEmbedApi.d.ts.map +1 -0
- package/lib/src/utils/embedApi/processEmbedApi.js +14 -0
- package/lib/src/utils/embedApi/processEmbedApi.js.map +1 -0
- package/lib/src/utils/resetServices.d.ts +8 -0
- package/lib/src/utils/resetServices.d.ts.map +1 -0
- package/lib/src/utils/resetServices.js +14 -0
- package/lib/src/utils/resetServices.js.map +1 -0
- package/lib/src/utils/resetServices.spec.d.ts +2 -0
- package/lib/src/utils/resetServices.spec.d.ts.map +1 -0
- package/lib/src/utils/resetServices.spec.js +15 -0
- package/lib/src/utils/resetServices.spec.js.map +1 -0
- package/lib/src/utils/sessionInfoService.d.ts +14 -2
- package/lib/src/utils/sessionInfoService.d.ts.map +1 -1
- package/lib/src/utils/sessionInfoService.js +16 -2
- package/lib/src/utils/sessionInfoService.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +94 -10
- package/package.json +1 -1
- package/src/auth.ts +3 -2
- package/src/css-variables.ts +10 -0
- package/src/embed/base.spec.ts +26 -0
- package/src/embed/base.ts +2 -2
- package/src/embed/hostEventClient/host-event-client.spec.ts +61 -0
- package/src/embed/hostEventClient/host-event-client.ts +8 -3
- package/src/types.ts +72 -8
- package/src/utils/resetServices.spec.ts +15 -0
- package/src/utils/resetServices.ts +14 -0
- package/src/utils/sessionInfoService.ts +17 -2
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { HostEvent } from '../../types';
|
|
2
|
+
export declare enum EmbedApiEvent {
|
|
3
|
+
addVizToPinboard = "addVizToPinboard",
|
|
4
|
+
saveAnswer = "saveAnswer",
|
|
5
|
+
getA3AnalysisColumns = "getA3AnalysisColumns",
|
|
6
|
+
getPinboardTabInfo = "getPinboardTabInfo",
|
|
7
|
+
getDiscoverabilityStatus = "getDiscoverabilityStatus",
|
|
8
|
+
getAvailableEmbedApis = "getAvailableEmbedApis",
|
|
9
|
+
getAnswerPageConfig = "getAnswerPageConfig",
|
|
10
|
+
getPinboardPageConfig = "getPinboardPageConfig",
|
|
11
|
+
embedApiEventNotFound = "embedApiEventNotFound"
|
|
12
|
+
}
|
|
13
|
+
export type EmbedApiContractBase = {
|
|
14
|
+
[EmbedApiEvent.addVizToPinboard]: {
|
|
15
|
+
request: {
|
|
16
|
+
vizId?: string;
|
|
17
|
+
newVizName: string;
|
|
18
|
+
newVizDescription?: string;
|
|
19
|
+
pinboardId?: string;
|
|
20
|
+
tabId?: string;
|
|
21
|
+
newPinboardName?: string;
|
|
22
|
+
newTabName?: string;
|
|
23
|
+
pinFromStore?: boolean;
|
|
24
|
+
};
|
|
25
|
+
response: {
|
|
26
|
+
pinboardId: string extends string ? null : string;
|
|
27
|
+
tabId: string;
|
|
28
|
+
vizId: string;
|
|
29
|
+
errors?: any;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
[EmbedApiEvent.saveAnswer]: {
|
|
33
|
+
request: {
|
|
34
|
+
name: string;
|
|
35
|
+
description: string;
|
|
36
|
+
vizId: string;
|
|
37
|
+
isDiscoverable?: boolean;
|
|
38
|
+
};
|
|
39
|
+
response: any;
|
|
40
|
+
};
|
|
41
|
+
[EmbedApiEvent.getA3AnalysisColumns]: {
|
|
42
|
+
request: {
|
|
43
|
+
vizId: string;
|
|
44
|
+
};
|
|
45
|
+
response: {
|
|
46
|
+
data?: any;
|
|
47
|
+
errors?: any;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
[EmbedApiEvent.getPinboardTabInfo]: {
|
|
51
|
+
request: any;
|
|
52
|
+
response: any;
|
|
53
|
+
};
|
|
54
|
+
[EmbedApiEvent.getDiscoverabilityStatus]: {
|
|
55
|
+
request: any;
|
|
56
|
+
response: {
|
|
57
|
+
shouldShowDiscoverability: boolean;
|
|
58
|
+
isDiscoverabilityCheckboxUnselectedPerOrg: boolean;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
[EmbedApiEvent.getAvailableEmbedApis]: {
|
|
62
|
+
request: any;
|
|
63
|
+
response: {
|
|
64
|
+
keys: string[];
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
[EmbedApiEvent.getAnswerPageConfig]: {
|
|
68
|
+
request: {
|
|
69
|
+
vizId: string;
|
|
70
|
+
};
|
|
71
|
+
response: any;
|
|
72
|
+
};
|
|
73
|
+
[EmbedApiEvent.getPinboardPageConfig]: {
|
|
74
|
+
request: any;
|
|
75
|
+
response: any;
|
|
76
|
+
};
|
|
77
|
+
[EmbedApiEvent.embedApiEventNotFound]: {
|
|
78
|
+
request: any;
|
|
79
|
+
response: any;
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
export type EmbedApiRequest<T extends keyof EmbedApiContractBase> = EmbedApiContractBase[T]['request'];
|
|
83
|
+
export type EmbedApiResponse<T extends keyof EmbedApiContractBase> = EmbedApiContractBase[T]['response'];
|
|
84
|
+
export type EmbedApiArrayResponse<ApiName extends keyof EmbedApiContractBase> = Promise<Array<{
|
|
85
|
+
redId?: string;
|
|
86
|
+
value?: EmbedApiResponse<ApiName>;
|
|
87
|
+
error?: any;
|
|
88
|
+
}>>;
|
|
89
|
+
export type EmbedApiHostEventMapping = {
|
|
90
|
+
[HostEvent.Pin]: EmbedApiEvent.addVizToPinboard;
|
|
91
|
+
'hostEventNotMapped': EmbedApiEvent.embedApiEventNotFound;
|
|
92
|
+
};
|
|
93
|
+
export type FlattenType<T> = T extends infer R ? {
|
|
94
|
+
[K in keyof R]: R[K];
|
|
95
|
+
} : never;
|
|
96
|
+
export type HostEventRequest<HostEventT extends HostEvent> = HostEventT extends keyof EmbedApiHostEventMapping ? FlattenType<EmbedApiRequest<EmbedApiHostEventMapping[HostEventT]>> : any;
|
|
97
|
+
export type HostEventResponse<HostEventT extends HostEvent> = HostEventT extends keyof EmbedApiHostEventMapping ? {
|
|
98
|
+
value?: EmbedApiResponse<EmbedApiHostEventMapping[HostEventT]>;
|
|
99
|
+
error?: any;
|
|
100
|
+
} : any;
|
|
101
|
+
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../../src/utils/embedApi/contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { HostEvent } from '../../types';
|
|
2
|
+
export var EmbedApiEvent;
|
|
3
|
+
(function (EmbedApiEvent) {
|
|
4
|
+
EmbedApiEvent["addVizToPinboard"] = "addVizToPinboard";
|
|
5
|
+
EmbedApiEvent["saveAnswer"] = "saveAnswer";
|
|
6
|
+
EmbedApiEvent["getA3AnalysisColumns"] = "getA3AnalysisColumns";
|
|
7
|
+
EmbedApiEvent["getPinboardTabInfo"] = "getPinboardTabInfo";
|
|
8
|
+
EmbedApiEvent["getDiscoverabilityStatus"] = "getDiscoverabilityStatus";
|
|
9
|
+
EmbedApiEvent["getAvailableEmbedApis"] = "getAvailableEmbedApis";
|
|
10
|
+
EmbedApiEvent["getAnswerPageConfig"] = "getAnswerPageConfig";
|
|
11
|
+
EmbedApiEvent["getPinboardPageConfig"] = "getPinboardPageConfig";
|
|
12
|
+
EmbedApiEvent["embedApiEventNotFound"] = "embedApiEventNotFound";
|
|
13
|
+
})(EmbedApiEvent || (EmbedApiEvent = {}));
|
|
14
|
+
//# sourceMappingURL=contracts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../../src/utils/embedApi/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,CAAN,IAAY,aAUX;AAVD,WAAY,aAAa;IACvB,sDAAqC,CAAA;IACrC,0CAAyB,CAAA;IACzB,8DAA6C,CAAA;IAC7C,0DAAyC,CAAA;IACzC,sEAAqD,CAAA;IACrD,gEAA+C,CAAA;IAC/C,4DAA2C,CAAA;IAC3C,gEAA+C,CAAA;IAC/C,gEAA+C,CAAA;AACjD,CAAC,EAVW,aAAa,KAAb,aAAa,QAUxB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { HostEvent } from '../../types';
|
|
2
|
+
import { EmbedApiArrayResponse, EmbedApiContractBase, EmbedApiRequest, HostEventRequest, HostEventResponse } from './contracts';
|
|
3
|
+
export declare class HostEventClient {
|
|
4
|
+
iFrame: HTMLIFrameElement;
|
|
5
|
+
thoughtSpotHost: string;
|
|
6
|
+
constructor(iFrame: HTMLIFrameElement, thoughtSpotHost: string);
|
|
7
|
+
executeEmbedApi<ApiName extends keyof EmbedApiContractBase>(apiName: ApiName, parameters: EmbedApiRequest<ApiName>): EmbedApiArrayResponse<ApiName>;
|
|
8
|
+
hostEventFallback(hostEvent: HostEvent, data: any): Promise<any>;
|
|
9
|
+
handlePinEvent(payload: HostEventRequest<HostEvent.Pin>): Promise<HostEventResponse<HostEvent.Pin>>;
|
|
10
|
+
executeHostEvent<T extends HostEvent>(hostEvent: HostEvent, payload: HostEventRequest<T>): Promise<HostEventResponse<HostEvent>>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=embedApiClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedApiClient.d.ts","sourceRoot":"","sources":["../../../../src/utils/embedApi/embedApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EACH,qBAAqB,EACrB,oBAAoB,EACL,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EACtE,MAAM,aAAa,CAAC;AAErB,qBAAa,eAAe;IAC1B,MAAM,EAAE,iBAAiB,CAAC;IAE1B,eAAe,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM;IAKxD,eAAe,CAAC,OAAO,SAAS,MAAM,oBAAoB,EAAE,OAAO,EAAE,OAAO,EAC9E,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,GACtC,qBAAqB,CAAC,OAAO,CAAC;IAS1B,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAIhE,cAAc,CAChB,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,GACzC,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAmBtC,gBAAgB,CAAC,CAAC,SAAS,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC5F,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;CAOxC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { HostEvent } from '../../types';
|
|
2
|
+
import { processTrigger } from '../processTrigger';
|
|
3
|
+
import { EmbedApiEvent, } from './contracts';
|
|
4
|
+
export class HostEventClient {
|
|
5
|
+
constructor(iFrame, thoughtSpotHost) {
|
|
6
|
+
this.iFrame = iFrame;
|
|
7
|
+
this.thoughtSpotHost = thoughtSpotHost;
|
|
8
|
+
}
|
|
9
|
+
async executeEmbedApi(apiName, parameters) {
|
|
10
|
+
const res = await processTrigger(this.iFrame, HostEvent.UiPassthrough, this.thoughtSpotHost, {
|
|
11
|
+
type: apiName,
|
|
12
|
+
parameters,
|
|
13
|
+
});
|
|
14
|
+
return res;
|
|
15
|
+
}
|
|
16
|
+
async hostEventFallback(hostEvent, data) {
|
|
17
|
+
return processTrigger(this.iFrame, hostEvent, this.thoughtSpotHost, data);
|
|
18
|
+
}
|
|
19
|
+
async handlePinEvent(payload) {
|
|
20
|
+
var _a, _b, _c, _d;
|
|
21
|
+
const res = (await this.executeEmbedApi(EmbedApiEvent.addVizToPinboard, payload))
|
|
22
|
+
.filter((r) => r.error || r.value)[0];
|
|
23
|
+
if (!res) {
|
|
24
|
+
const noVizFoundError = `No viz found${payload.vizId ? ` with id ${payload.vizId}` : ''}`;
|
|
25
|
+
return { error: noVizFoundError };
|
|
26
|
+
}
|
|
27
|
+
if (res.error) {
|
|
28
|
+
return { error: (_a = res === null || res === void 0 ? void 0 : res.error) === null || _a === void 0 ? void 0 : _a.message };
|
|
29
|
+
}
|
|
30
|
+
if ((_c = (_b = res.value) === null || _b === void 0 ? void 0 : _b.errors) === null || _c === void 0 ? void 0 : _c.message) {
|
|
31
|
+
return { error: (_d = res === null || res === void 0 ? void 0 : res.value.errors) === null || _d === void 0 ? void 0 : _d.message };
|
|
32
|
+
}
|
|
33
|
+
return { value: res.value };
|
|
34
|
+
}
|
|
35
|
+
async executeHostEvent(hostEvent, payload) {
|
|
36
|
+
if (hostEvent === HostEvent.Pin && typeof payload === 'object') {
|
|
37
|
+
return this.handlePinEvent(payload);
|
|
38
|
+
}
|
|
39
|
+
return this.hostEventFallback(hostEvent, payload);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=embedApiClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedApiClient.js","sourceRoot":"","sources":["../../../../src/utils/embedApi/embedApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAGH,aAAa,GAChB,MAAM,aAAa,CAAC;AAErB,MAAM,OAAO,eAAe;IAK1B,YAAY,MAAyB,EAAE,eAAuB;QAC1D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,eAAe,CAA6C,OAAgB,EAC9E,UAAoC;QAEpC,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,eAAe,EAAE;YACzF,IAAI,EAAE,OAAO;YACb,UAAU;SACb,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACf,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,SAAoB,EAAE,IAAS;QACnD,OAAO,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,cAAc,CAChB,OAAwC;;QAExC,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;aAC5E,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1C,IAAI,CAAC,GAAG,EAAE;YACN,MAAM,eAAe,GAAG,eAAe,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC1F,OAAO,EAAE,KAAK,EAAE,eAAe,EAAsC,CAAC;SACzE;QAED,IAAI,GAAG,CAAC,KAAK,EAAE;YACX,OAAO,EAAE,KAAK,EAAE,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,0CAAE,OAAO,EAAE,CAAC;SACzC;QACD,IAAI,MAAA,MAAA,GAAG,CAAC,KAAK,0CAAE,MAAM,0CAAE,OAAO,EAAE;YAC5B,OAAO,EAAE,KAAK,EAAE,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,CAAC,MAAM,0CAAE,OAAO,EAAE,CAAC;SAChD;QAED,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAsB,SAAoB,EAAE,OAA4B;QAE1F,IAAI,SAAS,KAAK,SAAS,CAAC,GAAG,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC5D,OAAO,IAAI,CAAC,cAAc,CAAC,OAA0C,CAAC,CAAC;SAC1E;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { HostEvent } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Check if the event is an embed API event.
|
|
4
|
+
* @param messageType
|
|
5
|
+
* @param payload
|
|
6
|
+
* @returns boolean
|
|
7
|
+
*/
|
|
8
|
+
export declare function isEmbedApiEvent(messageType: HostEvent, payload: any): boolean;
|
|
9
|
+
//# sourceMappingURL=processEmbedApi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processEmbedApi.d.ts","sourceRoot":"","sources":["../../../../src/utils/embedApi/processEmbedApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,aAAa,CAAC;AAMpD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAK7E"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { HostEvent } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Check if the event is an embed API event.
|
|
4
|
+
* @param messageType
|
|
5
|
+
* @param payload
|
|
6
|
+
* @returns boolean
|
|
7
|
+
*/
|
|
8
|
+
export function isEmbedApiEvent(messageType, payload) {
|
|
9
|
+
if (messageType === HostEvent.Pin && typeof payload === 'object') {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=processEmbedApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processEmbedApi.js","sourceRoot":"","sources":["../../../../src/utils/embedApi/processEmbedApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,aAAa,CAAC;AAMpD;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,WAAsB,EAAE,OAAY;IAChE,IAAI,WAAW,KAAK,SAAS,CAAC,GAAG,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC9D,OAAO,IAAI,CAAC;KACf;IACD,OAAO,KAAK,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This function resets all the services that are cached in the SDK.
|
|
3
|
+
* This is to be called when the user logs out of the application and also
|
|
4
|
+
* when init is called again.
|
|
5
|
+
* @version SDK: 1.30.2 | ThoughtSpot: *
|
|
6
|
+
*/
|
|
7
|
+
export declare function resetAllCachedServices(): void;
|
|
8
|
+
//# sourceMappingURL=resetServices.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resetServices.d.ts","sourceRoot":"","sources":["../../../src/utils/resetServices.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAI7C"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { resetCachedAuthToken } from '../authToken';
|
|
2
|
+
import { resetCachedPreauthInfo, resetCachedSessionInfo } from './sessionInfoService';
|
|
3
|
+
/**
|
|
4
|
+
* This function resets all the services that are cached in the SDK.
|
|
5
|
+
* This is to be called when the user logs out of the application and also
|
|
6
|
+
* when init is called again.
|
|
7
|
+
* @version SDK: 1.30.2 | ThoughtSpot: *
|
|
8
|
+
*/
|
|
9
|
+
export function resetAllCachedServices() {
|
|
10
|
+
resetCachedAuthToken();
|
|
11
|
+
resetCachedSessionInfo();
|
|
12
|
+
resetCachedPreauthInfo();
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=resetServices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resetServices.js","sourceRoot":"","sources":["../../../src/utils/resetServices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEtF;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB;IAClC,oBAAoB,EAAE,CAAC;IACvB,sBAAsB,EAAE,CAAC;IACzB,sBAAsB,EAAE,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resetServices.spec.d.ts","sourceRoot":"","sources":["../../../src/utils/resetServices.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as authToken from '../authToken';
|
|
2
|
+
import { resetAllCachedServices } from './resetServices';
|
|
3
|
+
import * as sessionInfoService from './sessionInfoService';
|
|
4
|
+
describe('resetAllServices', () => {
|
|
5
|
+
it('should reset all services', () => {
|
|
6
|
+
const resetCachedAuthTokenSpy = jest.spyOn(authToken, 'resetCachedAuthToken');
|
|
7
|
+
const resetCachedSessionInfoSpy = jest.spyOn(sessionInfoService, 'resetCachedSessionInfo');
|
|
8
|
+
const resetCachedPreauthInfoSpy = jest.spyOn(sessionInfoService, 'resetCachedPreauthInfo');
|
|
9
|
+
resetAllCachedServices();
|
|
10
|
+
expect(resetCachedAuthTokenSpy).toHaveBeenCalled();
|
|
11
|
+
expect(resetCachedSessionInfoSpy).toHaveBeenCalled();
|
|
12
|
+
expect(resetCachedPreauthInfoSpy).toHaveBeenCalled();
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=resetServices.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resetServices.spec.js","sourceRoot":"","sources":["../../../src/utils/resetServices.spec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,kBAAkB,MAAM,sBAAsB,CAAC;AAE3D,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACjC,MAAM,uBAAuB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;QAC9E,MAAM,yBAAyB,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,wBAAwB,CAAC,CAAC;QAC3F,MAAM,yBAAyB,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,wBAAwB,CAAC,CAAC;QAC3F,sBAAsB,EAAE,CAAC;QACzB,MAAM,CAAC,uBAAuB,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACnD,MAAM,CAAC,yBAAyB,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACrD,MAAM,CAAC,yBAAyB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -40,9 +40,10 @@ export declare const formatPreauthInfo: (preauthInfoResp: any) => Promise<Preaut
|
|
|
40
40
|
*/
|
|
41
41
|
export declare function getPreauthInfo(allowCache?: boolean): Promise<PreauthInfo>;
|
|
42
42
|
/**
|
|
43
|
-
* Returns the session info object and caches it for future use.
|
|
43
|
+
* Returns the cached session info object and caches it for future use.
|
|
44
44
|
* Once fetched the session info object is cached and returned from the cache on
|
|
45
45
|
* subsequent calls.
|
|
46
|
+
* This cache is cleared when inti is called OR resetCachedSessionInfo is called.
|
|
46
47
|
* @example ```js
|
|
47
48
|
* const sessionInfo = await getSessionInfo();
|
|
48
49
|
* console.log(sessionInfo);
|
|
@@ -85,8 +86,19 @@ export declare const getSessionDetails: (sessionInfoResp: any) => SessionInfo;
|
|
|
85
86
|
* const sessionInfo = await getSessionInfo();
|
|
86
87
|
* console.log(sessionInfo);
|
|
87
88
|
* ```
|
|
88
|
-
* @version SDK: 1.28.3 | ThoughtSpot
|
|
89
|
+
* @version SDK: 1.28.3 | ThoughtSpot: *
|
|
89
90
|
* @returns {void}
|
|
90
91
|
*/
|
|
91
92
|
export declare function resetCachedSessionInfo(): void;
|
|
93
|
+
/**
|
|
94
|
+
* Resets the cached preauth info object and forces a new fetch on the next call.
|
|
95
|
+
* @example ```js
|
|
96
|
+
* resetCachedPreauthInfo();
|
|
97
|
+
* const preauthInfo = await getPreauthInfo();
|
|
98
|
+
* console.log(preauthInfo);
|
|
99
|
+
* ```
|
|
100
|
+
* @version SDK: 1.28.3 | ThoughtSpot: *
|
|
101
|
+
* @returns {void}
|
|
102
|
+
*/
|
|
103
|
+
export declare function resetCachedPreauthInfo(): void;
|
|
92
104
|
//# sourceMappingURL=sessionInfoService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionInfoService.d.ts","sourceRoot":"","sources":["../../../src/utils/sessionInfoService.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,WAAW,GAAG;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACtB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB,CAAC;AAKF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,oBAA2B,GAAG,KAAG,QAAQ,WAAW,CAgBjF,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAAC,UAAU,UAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAa5E;AAED
|
|
1
|
+
{"version":3,"file":"sessionInfoService.d.ts","sourceRoot":"","sources":["../../../src/utils/sessionInfoService.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,WAAW,GAAG;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACtB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB,CAAC;AAKF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,oBAA2B,GAAG,KAAG,QAAQ,WAAW,CAgBjF,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAAC,UAAU,UAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAa5E;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAQ3D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,IAAI,WAAW,GAAG,IAAI,CAEzD;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,oBAAqB,GAAG,KAAG,WAexD,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C"}
|
|
@@ -58,9 +58,10 @@ export async function getPreauthInfo(allowCache = true) {
|
|
|
58
58
|
return preauthInfo;
|
|
59
59
|
}
|
|
60
60
|
/**
|
|
61
|
-
* Returns the session info object and caches it for future use.
|
|
61
|
+
* Returns the cached session info object and caches it for future use.
|
|
62
62
|
* Once fetched the session info object is cached and returned from the cache on
|
|
63
63
|
* subsequent calls.
|
|
64
|
+
* This cache is cleared when inti is called OR resetCachedSessionInfo is called.
|
|
64
65
|
* @example ```js
|
|
65
66
|
* const sessionInfo = await getSessionInfo();
|
|
66
67
|
* console.log(sessionInfo);
|
|
@@ -128,10 +129,23 @@ export const getSessionDetails = (sessionInfoResp) => {
|
|
|
128
129
|
* const sessionInfo = await getSessionInfo();
|
|
129
130
|
* console.log(sessionInfo);
|
|
130
131
|
* ```
|
|
131
|
-
* @version SDK: 1.28.3 | ThoughtSpot
|
|
132
|
+
* @version SDK: 1.28.3 | ThoughtSpot: *
|
|
132
133
|
* @returns {void}
|
|
133
134
|
*/
|
|
134
135
|
export function resetCachedSessionInfo() {
|
|
135
136
|
sessionInfo = null;
|
|
136
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Resets the cached preauth info object and forces a new fetch on the next call.
|
|
140
|
+
* @example ```js
|
|
141
|
+
* resetCachedPreauthInfo();
|
|
142
|
+
* const preauthInfo = await getPreauthInfo();
|
|
143
|
+
* console.log(preauthInfo);
|
|
144
|
+
* ```
|
|
145
|
+
* @version SDK: 1.28.3 | ThoughtSpot: *
|
|
146
|
+
* @returns {void}
|
|
147
|
+
*/
|
|
148
|
+
export function resetCachedPreauthInfo() {
|
|
149
|
+
preauthInfo = null;
|
|
150
|
+
}
|
|
137
151
|
//# sourceMappingURL=sessionInfoService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionInfoService.js","sourceRoot":"","sources":["../../../src/utils/sessionInfoService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAqBjF,IAAI,WAAW,GAAuB,IAAI,CAAC;AAC3C,IAAI,WAAW,GAAuB,IAAI,CAAC;AAE3C;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,eAAoB,EAAwB,EAAE;;IAClF,IAAI;QACA,oCAAoC;QACpC,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,0CAAE,OAAO,CAAC,CAAC,KAAa,EAAE,GAAW,EAAE,EAAE;YAC7D,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,CAAC;QAC1C,OAAO;YACH,GAAG,IAAI;YACP,MAAM,EAAE,GAAG;YACX,OAAO;SACV,CAAC;KACL;IAAC,OAAO,KAAK,EAAE;QACZ,OAAO,IAAI,CAAC;KACf;AACL,CAAC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,UAAU,GAAG,IAAI;IAClD,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW,EAAE;QAC7B,IAAI;YACA,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC,eAAe,CAAC;YAC9C,MAAM,eAAe,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,CAAC;YAC5D,MAAM,oBAAoB,GAAG,MAAM,iBAAiB,CAAC,eAAe,CAAC,CAAC;YACtE,WAAW,GAAG,oBAAoB,CAAC;SACtC;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,IAAI,CAAC;SACf;KACJ;IAED,OAAO,WAAW,CAAC;AACvB,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"sessionInfoService.js","sourceRoot":"","sources":["../../../src/utils/sessionInfoService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1888,9 +1888,10 @@ declare module '@thoughtspot/visual-embed-sdk/utils/sessionInfoService' {
|
|
|
1888
1888
|
*/
|
|
1889
1889
|
export function getPreauthInfo(allowCache?: boolean): Promise<PreauthInfo>;
|
|
1890
1890
|
/**
|
|
1891
|
-
* Returns the session info object and caches it for future use.
|
|
1891
|
+
* Returns the cached session info object and caches it for future use.
|
|
1892
1892
|
* Once fetched the session info object is cached and returned from the cache on
|
|
1893
1893
|
* subsequent calls.
|
|
1894
|
+
* This cache is cleared when inti is called OR resetCachedSessionInfo is called.
|
|
1894
1895
|
* @example ```js
|
|
1895
1896
|
* const sessionInfo = await getSessionInfo();
|
|
1896
1897
|
* console.log(sessionInfo);
|
|
@@ -1933,10 +1934,21 @@ declare module '@thoughtspot/visual-embed-sdk/utils/sessionInfoService' {
|
|
|
1933
1934
|
* const sessionInfo = await getSessionInfo();
|
|
1934
1935
|
* console.log(sessionInfo);
|
|
1935
1936
|
* ```
|
|
1936
|
-
* @version SDK: 1.28.3 | ThoughtSpot
|
|
1937
|
+
* @version SDK: 1.28.3 | ThoughtSpot: *
|
|
1937
1938
|
* @returns {void}
|
|
1938
1939
|
*/
|
|
1939
1940
|
export function resetCachedSessionInfo(): void;
|
|
1941
|
+
/**
|
|
1942
|
+
* Resets the cached preauth info object and forces a new fetch on the next call.
|
|
1943
|
+
* @example ```js
|
|
1944
|
+
* resetCachedPreauthInfo();
|
|
1945
|
+
* const preauthInfo = await getPreauthInfo();
|
|
1946
|
+
* console.log(preauthInfo);
|
|
1947
|
+
* ```
|
|
1948
|
+
* @version SDK: 1.28.3 | ThoughtSpot: *
|
|
1949
|
+
* @returns {void}
|
|
1950
|
+
*/
|
|
1951
|
+
export function resetCachedPreauthInfo(): void;
|
|
1940
1952
|
}
|
|
1941
1953
|
|
|
1942
1954
|
declare module '@thoughtspot/visual-embed-sdk/types' {
|
|
@@ -4505,16 +4517,63 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
|
|
|
4505
4517
|
*/
|
|
4506
4518
|
getExportRequestForCurrentPinboard = "getExportRequestForCurrentPinboard",
|
|
4507
4519
|
/**
|
|
4508
|
-
* Trigger
|
|
4509
|
-
*
|
|
4510
|
-
*
|
|
4511
|
-
* a
|
|
4520
|
+
* Trigger **Pin** action on an embedded object.
|
|
4521
|
+
* If no parameters are defined, the pin action is triggered
|
|
4522
|
+
* for the Answer that the user is currently on
|
|
4523
|
+
* and a modal opens for Liveboard selection.
|
|
4524
|
+
* To add an Answer or visualization to a Liveboard programmatically without
|
|
4525
|
+
* showing requiring additional user input via *Pin to Liveboard* modal, define
|
|
4526
|
+
* the following parameters:
|
|
4527
|
+
*
|
|
4528
|
+
* @param
|
|
4529
|
+
* `vizId`- GUID of the saved Answer or visualization to pin to a Liveboard.
|
|
4530
|
+
* Optional when pinning a new chart or table generated from a Search query.
|
|
4531
|
+
* @param
|
|
4532
|
+
* `liveboardID` - GUID of the Liveboard to pin an Answer. If there is no Liveboard,
|
|
4533
|
+
* specify the `newLiveboardName` parameter to create a new Liveboard.
|
|
4534
|
+
* @param
|
|
4535
|
+
* `tabId` - GUID of the Liveboard tab. Adds the Answer to the Liveboard tab
|
|
4536
|
+
* specified in the code.
|
|
4537
|
+
* @param
|
|
4538
|
+
* `newVizName` - Name string for the Answer or visualization. If defined,
|
|
4539
|
+
* this parameter adds a new visualization object or creates a copy of the
|
|
4540
|
+
* Answer or visualization specified in `vizId`.
|
|
4541
|
+
* Required attribute.
|
|
4542
|
+
* @param
|
|
4543
|
+
* `newLiveboardName` - Name string for the Liveboard.
|
|
4544
|
+
* Creates a new Liveboard object with the specified name.
|
|
4545
|
+
* @param
|
|
4546
|
+
* `newTabName` - Name of the tab. Adds a new tab Liveboard specified
|
|
4547
|
+
* in the code.
|
|
4548
|
+
*
|
|
4512
4549
|
* @example
|
|
4513
4550
|
* ```js
|
|
4514
|
-
* appEmbed.trigger(HostEvent.Pin
|
|
4551
|
+
* const pinResponse = await appEmbed.trigger(HostEvent.Pin, {
|
|
4552
|
+
* vizId: "123",
|
|
4553
|
+
* newVizName: "Sales by region",
|
|
4554
|
+
* liveboardId: "123",
|
|
4555
|
+
* tabId: "123"
|
|
4556
|
+
* });
|
|
4515
4557
|
* ```
|
|
4558
|
+
* @example
|
|
4516
4559
|
* ```js
|
|
4517
|
-
*
|
|
4560
|
+
* const pinResponse = await appEmbed.trigger(HostEvent.Pin, {
|
|
4561
|
+
* newVizName: "Total sales of Jackets",
|
|
4562
|
+
* liveboardId: "123"
|
|
4563
|
+
* });
|
|
4564
|
+
* ```
|
|
4565
|
+
*
|
|
4566
|
+
* @example
|
|
4567
|
+
* ```js
|
|
4568
|
+
* const pinResponse = await searchEmbed.trigger(HostEvent.Pin, {
|
|
4569
|
+
* newVizName: "Sales by state",
|
|
4570
|
+
* newLiveboardName: "Sales",
|
|
4571
|
+
* newTabName: "Products"
|
|
4572
|
+
* });
|
|
4573
|
+
* ```
|
|
4574
|
+
* @example
|
|
4575
|
+
* ```js
|
|
4576
|
+
* appEmbed.trigger(HostEvent.Pin)
|
|
4518
4577
|
* ```
|
|
4519
4578
|
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
|
|
4520
4579
|
*/
|
|
@@ -5170,8 +5229,25 @@ declare module '@thoughtspot/visual-embed-sdk/types' {
|
|
|
5170
5229
|
*/
|
|
5171
5230
|
InfoSuccess = "InfoSuccess",
|
|
5172
5231
|
/**
|
|
5173
|
-
*
|
|
5174
|
-
*
|
|
5232
|
+
* Trigger the save action for an Answer.
|
|
5233
|
+
* To programmatically save an answer without opening the
|
|
5234
|
+
* *Describe your Answer* modal, define the `name` and `description`
|
|
5235
|
+
* properties.
|
|
5236
|
+
* If no parameters are specified, the save action is
|
|
5237
|
+
* triggered with a modal to prompt users to
|
|
5238
|
+
* add a name and description for the Answer.
|
|
5239
|
+
* @param - optional attributes to set Answer properties.
|
|
5240
|
+
* `name` - Name string for the Answer.
|
|
5241
|
+
* `description` - Description text for the Answer.
|
|
5242
|
+
*
|
|
5243
|
+
* @example
|
|
5244
|
+
* ```js
|
|
5245
|
+
* const saveAnswerResponse = await searchEmbed.trigger(HostEvent.SaveAnswer, {
|
|
5246
|
+
* name: "Sales by states",
|
|
5247
|
+
* description: "Total sales by states in MidWest"
|
|
5248
|
+
* });
|
|
5249
|
+
* ```
|
|
5250
|
+
* @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
|
|
5175
5251
|
*/
|
|
5176
5252
|
SaveAnswer = "saveAnswer",
|
|
5177
5253
|
/**
|
|
@@ -6756,6 +6832,14 @@ declare module '@thoughtspot/visual-embed-sdk/css-variables' {
|
|
|
6756
6832
|
* panel.
|
|
6757
6833
|
*/
|
|
6758
6834
|
'--ts-var-search-auto-complete-subtext-font-color'?: string;
|
|
6835
|
+
/**
|
|
6836
|
+
* Background color of the input box in the Spotter page.
|
|
6837
|
+
*/
|
|
6838
|
+
'--ts-var-spotter-input-background'?: string;
|
|
6839
|
+
/**
|
|
6840
|
+
* Background color of the previously asked prompt message in the Spotter page.
|
|
6841
|
+
*/
|
|
6842
|
+
'--ts-var-spotter-prompt-background': string;
|
|
6759
6843
|
/**
|
|
6760
6844
|
* Background color of the data panel.
|
|
6761
6845
|
*/
|
package/package.json
CHANGED
package/src/auth.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import EventEmitter from 'eventemitter3';
|
|
2
|
-
import { getAuthenticationToken
|
|
2
|
+
import { getAuthenticationToken } from './authToken';
|
|
3
3
|
import { getEmbedConfig } from './embed/embedConfig';
|
|
4
4
|
import { initMixpanel } from './mixpanel-service';
|
|
5
5
|
import {
|
|
@@ -17,6 +17,7 @@ import { isActiveService } from './utils/authService/tokenizedAuthService';
|
|
|
17
17
|
import { logger } from './utils/logger';
|
|
18
18
|
import { getSessionInfo, getPreauthInfo } from './utils/sessionInfoService';
|
|
19
19
|
import { ERROR_MESSAGE } from './errors';
|
|
20
|
+
import { resetAllCachedServices } from './utils/resetServices';
|
|
20
21
|
|
|
21
22
|
// eslint-disable-next-line import/no-mutable-exports
|
|
22
23
|
export let loggedInStatus = false;
|
|
@@ -470,7 +471,7 @@ export const doOIDCAuth = async (embedConfig: EmbedConfig) => {
|
|
|
470
471
|
export const logout = async (embedConfig: EmbedConfig): Promise<boolean> => {
|
|
471
472
|
const { thoughtSpotHost } = embedConfig;
|
|
472
473
|
await fetchLogoutService(thoughtSpotHost);
|
|
473
|
-
|
|
474
|
+
resetAllCachedServices();
|
|
474
475
|
const thoughtspotIframes = document.querySelectorAll("[data-ts-iframe='true']");
|
|
475
476
|
if (thoughtspotIframes?.length) {
|
|
476
477
|
thoughtspotIframes.forEach((el) => {
|
package/src/css-variables.ts
CHANGED
|
@@ -111,6 +111,16 @@ export interface CustomCssVariables {
|
|
|
111
111
|
*/
|
|
112
112
|
'--ts-var-search-auto-complete-subtext-font-color'?: string;
|
|
113
113
|
|
|
114
|
+
/**
|
|
115
|
+
* Background color of the input box in the Spotter page.
|
|
116
|
+
*/
|
|
117
|
+
'--ts-var-spotter-input-background'?: string;
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Background color of the previously asked prompt message in the Spotter page.
|
|
121
|
+
*/
|
|
122
|
+
'--ts-var-spotter-prompt-background': string;
|
|
123
|
+
|
|
114
124
|
/**
|
|
115
125
|
* Background color of the data panel.
|
|
116
126
|
*/
|
package/src/embed/base.spec.ts
CHANGED
|
@@ -4,10 +4,12 @@ import EventEmitter from 'eventemitter3';
|
|
|
4
4
|
import { EmbedConfig } from '../index';
|
|
5
5
|
import * as auth from '../auth';
|
|
6
6
|
import * as authService from '../utils/authService/authService';
|
|
7
|
+
import * as tokenAuthServices from '../utils/authService/tokenizedAuthService';
|
|
7
8
|
import * as authTokenService from '../authToken';
|
|
8
9
|
import * as index from '../index';
|
|
9
10
|
import * as base from './base';
|
|
10
11
|
import * as embedConfigInstance from './embedConfig';
|
|
12
|
+
import * as resetService from '../utils/resetServices';
|
|
11
13
|
|
|
12
14
|
import {
|
|
13
15
|
executeAfterWait,
|
|
@@ -413,6 +415,19 @@ describe('Base TS Embed', () => {
|
|
|
413
415
|
expect(embedConfigInstance.getEmbedConfig().autoLogin).toBe(false);
|
|
414
416
|
});
|
|
415
417
|
|
|
418
|
+
test('Logout method should reset caches', async () => {
|
|
419
|
+
jest.spyOn(tokenAuthServices, 'fetchLogoutService').mockResolvedValueOnce({});
|
|
420
|
+
jest.spyOn(resetService, 'resetAllCachedServices');
|
|
421
|
+
index.init({
|
|
422
|
+
thoughtSpotHost,
|
|
423
|
+
authType: index.AuthType.None,
|
|
424
|
+
autoLogin: true,
|
|
425
|
+
});
|
|
426
|
+
expect(resetService.resetAllCachedServices).toHaveBeenCalledTimes(1);
|
|
427
|
+
await index.logout();
|
|
428
|
+
expect(resetService.resetAllCachedServices).toHaveBeenCalledTimes(2);
|
|
429
|
+
});
|
|
430
|
+
|
|
416
431
|
test('config sanity, no ts host', () => {
|
|
417
432
|
expect(() => {
|
|
418
433
|
index.init({
|
|
@@ -481,3 +496,14 @@ describe('Base without init', () => {
|
|
|
481
496
|
expect(logger.error).toHaveBeenCalledTimes(4);
|
|
482
497
|
});
|
|
483
498
|
});
|
|
499
|
+
|
|
500
|
+
describe('Init tests', () => {
|
|
501
|
+
test('clear caches on init', () => {
|
|
502
|
+
jest.spyOn(resetService, 'resetAllCachedServices');
|
|
503
|
+
base.init({
|
|
504
|
+
thoughtSpotHost,
|
|
505
|
+
authType: index.AuthType.None,
|
|
506
|
+
});
|
|
507
|
+
expect(resetService.resetAllCachedServices).toBeCalled();
|
|
508
|
+
});
|
|
509
|
+
});
|