@thoughtspot/visual-embed-sdk 1.33.12 → 1.35.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 (190) hide show
  1. package/cjs/package.json +15 -3
  2. package/cjs/src/embed/app.d.ts +1 -1
  3. package/cjs/src/embed/base.native.d.ts +1 -0
  4. package/cjs/src/embed/base.native.d.ts.map +1 -0
  5. package/cjs/src/embed/base.native.js +1 -0
  6. package/cjs/src/embed/base.native.js.map +1 -0
  7. package/cjs/src/embed/hello.d.ts +2 -0
  8. package/cjs/src/embed/hello.d.ts.map +1 -0
  9. package/cjs/src/embed/hello.js +6 -0
  10. package/cjs/src/embed/hello.js.map +1 -0
  11. package/cjs/src/embed/liveboard.d.ts +1 -1
  12. package/cjs/src/embed/searchEmbed-basic-auth.spec.d.ts +2 -0
  13. package/cjs/src/embed/searchEmbed-basic-auth.spec.d.ts.map +1 -0
  14. package/cjs/src/embed/searchEmbed-basic-auth.spec.js +104 -0
  15. package/cjs/src/embed/searchEmbed-basic-auth.spec.js.map +1 -0
  16. package/cjs/src/native/LiveboardEmbed.d.ts +13 -0
  17. package/cjs/src/native/LiveboardEmbed.d.ts.map +1 -0
  18. package/cjs/src/native/LiveboardEmbed.js +146 -0
  19. package/cjs/src/native/LiveboardEmbed.js.map +1 -0
  20. package/cjs/src/native/commonUtils.d.ts +20 -0
  21. package/cjs/src/native/commonUtils.d.ts.map +1 -0
  22. package/cjs/src/native/commonUtils.js +175 -0
  23. package/cjs/src/native/commonUtils.js.map +1 -0
  24. package/cjs/src/native/commonUtils.spec.d.ts +2 -0
  25. package/cjs/src/native/commonUtils.spec.d.ts.map +1 -0
  26. package/cjs/src/native/commonUtils.spec.js +127 -0
  27. package/cjs/src/native/commonUtils.spec.js.map +1 -0
  28. package/cjs/src/native/embedConfig.d.ts +10 -0
  29. package/cjs/src/native/embedConfig.d.ts.map +1 -0
  30. package/cjs/src/native/embedConfig.js +12 -0
  31. package/cjs/src/native/embedConfig.js.map +1 -0
  32. package/cjs/src/native/index.d.ts +2 -0
  33. package/cjs/src/native/index.d.ts.map +1 -0
  34. package/cjs/src/native/index.js +7 -0
  35. package/cjs/src/native/index.js.map +1 -0
  36. package/cjs/src/native/types.d.ts +10 -0
  37. package/cjs/src/native/types.d.ts.map +1 -0
  38. package/cjs/src/native/types.js +3 -0
  39. package/cjs/src/native/types.js.map +1 -0
  40. package/cjs/src/parsers/filtersToRuntimeFilters.d.ts +6 -0
  41. package/cjs/src/parsers/filtersToRuntimeFilters.d.ts.map +1 -0
  42. package/cjs/src/parsers/filtersToRuntimeFilters.js +60 -0
  43. package/cjs/src/parsers/filtersToRuntimeFilters.js.map +1 -0
  44. package/cjs/src/parsers/filtersToRuntimeFilters.spec.d.ts +2 -0
  45. package/cjs/src/parsers/filtersToRuntimeFilters.spec.d.ts.map +1 -0
  46. package/cjs/src/parsers/filtersToRuntimeFilters.spec.js +205 -0
  47. package/cjs/src/parsers/filtersToRuntimeFilters.spec.js.map +1 -0
  48. package/cjs/src/parsers/index.d.ts +2 -0
  49. package/cjs/src/parsers/index.d.ts.map +1 -0
  50. package/cjs/src/parsers/index.js +6 -0
  51. package/cjs/src/parsers/index.js.map +1 -0
  52. package/cjs/src/parsers/index.spec.d.ts +2 -0
  53. package/cjs/src/parsers/index.spec.d.ts.map +1 -0
  54. package/cjs/src/parsers/index.spec.js +9 -0
  55. package/cjs/src/parsers/index.spec.js.map +1 -0
  56. package/cjs/src/react-native/Liveboard.d.ts +1 -0
  57. package/cjs/src/react-native/Liveboard.d.ts.map +1 -0
  58. package/cjs/src/react-native/Liveboard.js +1 -0
  59. package/cjs/src/react-native/Liveboard.js.map +1 -0
  60. package/cjs/src/types.d.ts +4 -4
  61. package/cjs/src/types.js +4 -4
  62. package/cjs/src/utils/processData.spec.js +33 -0
  63. package/cjs/src/utils/processData.spec.js.map +1 -1
  64. package/cjs/src/utils.d.ts +15 -0
  65. package/cjs/src/utils.d.ts.map +1 -1
  66. package/cjs/src/utils.js +24 -3
  67. package/cjs/src/utils.js.map +1 -1
  68. package/cjs/src/utils.spec.js +132 -0
  69. package/cjs/src/utils.spec.js.map +1 -1
  70. package/dist/{index-DgCGXqKb.js → index-BXczdQc7.js} +1 -1
  71. package/dist/index-Bh8kjZh8.js +7370 -0
  72. package/dist/src/embed/app.d.ts +1 -1
  73. package/dist/src/embed/hello.d.ts +2 -0
  74. package/dist/src/embed/hello.d.ts.map +1 -0
  75. package/dist/src/embed/liveboard.d.ts +1 -1
  76. package/dist/src/embed/searchEmbed-basic-auth.spec.d.ts +2 -0
  77. package/dist/src/embed/searchEmbed-basic-auth.spec.d.ts.map +1 -0
  78. package/dist/src/native/LiveboardEmbed.d.ts +13 -0
  79. package/dist/src/native/LiveboardEmbed.d.ts.map +1 -0
  80. package/dist/src/native/commonUtils.d.ts +20 -0
  81. package/dist/src/native/commonUtils.d.ts.map +1 -0
  82. package/dist/src/native/commonUtils.spec.d.ts +2 -0
  83. package/dist/src/native/commonUtils.spec.d.ts.map +1 -0
  84. package/dist/src/native/embedConfig.d.ts +10 -0
  85. package/dist/src/native/embedConfig.d.ts.map +1 -0
  86. package/dist/src/native/index.d.ts +2 -0
  87. package/dist/src/native/index.d.ts.map +1 -0
  88. package/dist/src/native/types.d.ts +10 -0
  89. package/dist/src/native/types.d.ts.map +1 -0
  90. package/dist/src/parsers/filtersToRuntimeFilters.d.ts +6 -0
  91. package/dist/src/parsers/filtersToRuntimeFilters.d.ts.map +1 -0
  92. package/dist/src/parsers/filtersToRuntimeFilters.spec.d.ts +2 -0
  93. package/dist/src/parsers/filtersToRuntimeFilters.spec.d.ts.map +1 -0
  94. package/dist/src/parsers/index.d.ts +2 -0
  95. package/dist/src/parsers/index.d.ts.map +1 -0
  96. package/dist/src/parsers/index.spec.d.ts +2 -0
  97. package/dist/src/parsers/index.spec.d.ts.map +1 -0
  98. package/dist/src/types.d.ts +4 -4
  99. package/dist/src/utils.d.ts +15 -0
  100. package/dist/src/utils.d.ts.map +1 -1
  101. package/dist/tsembed-parsers.es.js +3831 -0
  102. package/dist/tsembed-parsers.js +3840 -0
  103. package/dist/tsembed-react.es.js +7 -7
  104. package/dist/tsembed-react.js +6 -6
  105. package/dist/tsembed.es.js +7 -7
  106. package/dist/tsembed.js +6 -6
  107. package/dist/visual-embed-sdk-react-full.d.ts +6 -6
  108. package/dist/visual-embed-sdk-react.d.ts +6 -6
  109. package/dist/visual-embed-sdk.d.ts +6 -6
  110. package/lib/package.json +15 -3
  111. package/lib/src/embed/app.d.ts +1 -1
  112. package/lib/src/embed/base.native.d.ts +1 -0
  113. package/lib/src/embed/base.native.d.ts.map +1 -0
  114. package/lib/src/embed/base.native.js +1 -0
  115. package/lib/src/embed/base.native.js.map +1 -0
  116. package/lib/src/embed/hello.d.ts +2 -0
  117. package/lib/src/embed/hello.d.ts.map +1 -0
  118. package/lib/src/embed/hello.js +2 -0
  119. package/lib/src/embed/hello.js.map +1 -0
  120. package/lib/src/embed/liveboard.d.ts +1 -1
  121. package/lib/src/embed/searchEmbed-basic-auth.spec.d.ts +2 -0
  122. package/lib/src/embed/searchEmbed-basic-auth.spec.d.ts.map +1 -0
  123. package/lib/src/embed/searchEmbed-basic-auth.spec.js +101 -0
  124. package/lib/src/embed/searchEmbed-basic-auth.spec.js.map +1 -0
  125. package/lib/src/native/LiveboardEmbed.d.ts +13 -0
  126. package/lib/src/native/LiveboardEmbed.d.ts.map +1 -0
  127. package/lib/src/native/LiveboardEmbed.js +141 -0
  128. package/lib/src/native/LiveboardEmbed.js.map +1 -0
  129. package/lib/src/native/commonUtils.d.ts +20 -0
  130. package/lib/src/native/commonUtils.d.ts.map +1 -0
  131. package/lib/src/native/commonUtils.js +169 -0
  132. package/lib/src/native/commonUtils.js.map +1 -0
  133. package/lib/src/native/commonUtils.spec.d.ts +2 -0
  134. package/lib/src/native/commonUtils.spec.d.ts.map +1 -0
  135. package/lib/src/native/commonUtils.spec.js +124 -0
  136. package/lib/src/native/commonUtils.spec.js.map +1 -0
  137. package/lib/src/native/embedConfig.d.ts +10 -0
  138. package/lib/src/native/embedConfig.d.ts.map +1 -0
  139. package/lib/src/native/embedConfig.js +7 -0
  140. package/lib/src/native/embedConfig.js.map +1 -0
  141. package/lib/src/native/index.d.ts +2 -0
  142. package/lib/src/native/index.d.ts.map +1 -0
  143. package/lib/src/native/index.js +2 -0
  144. package/lib/src/native/index.js.map +1 -0
  145. package/lib/src/native/types.d.ts +10 -0
  146. package/lib/src/native/types.d.ts.map +1 -0
  147. package/lib/src/native/types.js +2 -0
  148. package/lib/src/native/types.js.map +1 -0
  149. package/lib/src/parsers/filtersToRuntimeFilters.d.ts +6 -0
  150. package/lib/src/parsers/filtersToRuntimeFilters.d.ts.map +1 -0
  151. package/lib/src/parsers/filtersToRuntimeFilters.js +55 -0
  152. package/lib/src/parsers/filtersToRuntimeFilters.js.map +1 -0
  153. package/lib/src/parsers/filtersToRuntimeFilters.spec.d.ts +2 -0
  154. package/lib/src/parsers/filtersToRuntimeFilters.spec.d.ts.map +1 -0
  155. package/lib/src/parsers/filtersToRuntimeFilters.spec.js +203 -0
  156. package/lib/src/parsers/filtersToRuntimeFilters.spec.js.map +1 -0
  157. package/lib/src/parsers/index.d.ts +2 -0
  158. package/lib/src/parsers/index.d.ts.map +1 -0
  159. package/lib/src/parsers/index.js +2 -0
  160. package/lib/src/parsers/index.js.map +1 -0
  161. package/lib/src/parsers/index.spec.d.ts +2 -0
  162. package/lib/src/parsers/index.spec.d.ts.map +1 -0
  163. package/lib/src/parsers/index.spec.js +7 -0
  164. package/lib/src/parsers/index.spec.js.map +1 -0
  165. package/lib/src/react-native/Liveboard.d.ts +1 -0
  166. package/lib/src/react-native/Liveboard.d.ts.map +1 -0
  167. package/lib/src/react-native/Liveboard.js +1 -0
  168. package/lib/src/react-native/Liveboard.js.map +1 -0
  169. package/lib/src/types.d.ts +4 -4
  170. package/lib/src/types.js +4 -4
  171. package/lib/src/utils/processData.spec.js +33 -0
  172. package/lib/src/utils/processData.spec.js.map +1 -1
  173. package/lib/src/utils.d.ts +15 -0
  174. package/lib/src/utils.d.ts.map +1 -1
  175. package/lib/src/utils.js +20 -2
  176. package/lib/src/utils.js.map +1 -1
  177. package/lib/src/utils.spec.js +133 -1
  178. package/lib/src/utils.spec.js.map +1 -1
  179. package/lib/src/visual-embed-sdk.d.ts +6 -6
  180. package/package.json +15 -3
  181. package/src/embed/app.ts +1 -1
  182. package/src/embed/liveboard.ts +1 -1
  183. package/src/native/commonUtils.spec.tsx +161 -0
  184. package/src/native/commonUtils.ts +183 -0
  185. package/src/native/index.ts +1 -0
  186. package/src/native/types.ts +10 -0
  187. package/src/types.ts +4 -4
  188. package/src/utils/processData.spec.ts +42 -0
  189. package/src/utils.spec.ts +147 -1
  190. package/src/utils.ts +25 -2
@@ -0,0 +1,101 @@
1
+ import { SearchEmbed } from './search';
2
+ import * as baseInstance from './base';
3
+ import * as authService from '../utils/authService';
4
+ import * as authInstance from '../auth';
5
+ import * as config from '../config';
6
+ import * as embedConfigInstance from './embedConfig';
7
+ import { init } from '../index';
8
+ import { AuthType } from '../types';
9
+ import { getDocumentBody, getRootEl } from '../test/test-utils';
10
+ import { mockSessionInfo } from '../auth.spec';
11
+ const thoughtSpotHost = 'tshost';
12
+ init({
13
+ thoughtSpotHost,
14
+ authType: AuthType.Basic,
15
+ username: 'tsadmin',
16
+ password: 'admin',
17
+ });
18
+ describe('Search embed tests when authType is Basic', () => {
19
+ /**
20
+ *
21
+ * @param version
22
+ */
23
+ function setupVersion(version) {
24
+ jest.spyOn(window, 'addEventListener').mockImplementation((event, handler, options) => {
25
+ handler({
26
+ data: {
27
+ type: 'xyz',
28
+ },
29
+ ports: [3000],
30
+ source: null,
31
+ });
32
+ });
33
+ jest.spyOn(authService, 'fetchSessionInfoService').mockImplementation(async () => ({
34
+ json: () => ({
35
+ ...mockSessionInfo,
36
+ releaseVersion: version,
37
+ }),
38
+ status: 200,
39
+ }));
40
+ jest.spyOn(authInstance, 'getReleaseVersion').mockReturnValue(version);
41
+ }
42
+ beforeEach(() => {
43
+ document.body.innerHTML = getDocumentBody();
44
+ jest.spyOn(baseInstance, 'getAuthPromise').mockResolvedValue(true);
45
+ });
46
+ afterEach(() => {
47
+ jest.clearAllMocks();
48
+ });
49
+ test('when releaseVersion is empty', async () => {
50
+ setupVersion('');
51
+ const mockAlert = spyOn(window, 'alert');
52
+ const searchEmbed = new SearchEmbed(getRootEl(), {});
53
+ await searchEmbed.render();
54
+ expect(mockAlert).not.toBeCalled();
55
+ });
56
+ test("when releaseVersion is '7.0.1.cl' ", async () => {
57
+ setupVersion('7.0.1.cl');
58
+ const mockAlert = jest.spyOn(window, 'alert');
59
+ const searchEmbed = new SearchEmbed(getRootEl(), {});
60
+ await searchEmbed.render();
61
+ expect(mockAlert).not.toBeCalled();
62
+ });
63
+ test('when releaseVersion is above 8.4.0.sw', async () => {
64
+ setupVersion('8.4.0.sw');
65
+ const mockAlert = jest.spyOn(window, 'alert');
66
+ const searchEmbed = new SearchEmbed(getRootEl(), {});
67
+ await searchEmbed.render();
68
+ expect(mockAlert).not.toBeCalled();
69
+ });
70
+ test('releaseVersion is above 8.4.0.sw', async () => {
71
+ setupVersion('8.8.0.sw');
72
+ jest.spyOn(config, 'getThoughtSpotHost').mockImplementation(() => 'http://tshost');
73
+ const mockAlert = jest.spyOn(window, 'alert');
74
+ const searchEmbed = new SearchEmbed(getRootEl(), {});
75
+ await searchEmbed.render();
76
+ expect(mockAlert).not.toBeCalled();
77
+ });
78
+ test('Alert should not appear when suppressSearchEmbedBetaWarning is true and releaseVersion is ts7.dec.cl', async () => {
79
+ setupVersion('ts7.dec.cl');
80
+ jest.spyOn(config, 'getThoughtSpotHost').mockImplementation(() => 'http://tshost');
81
+ jest.spyOn(embedConfigInstance, 'getEmbedConfig').mockReturnValue({
82
+ suppressSearchEmbedBetaWarning: true,
83
+ });
84
+ const mockAlert = jest.spyOn(window, 'alert');
85
+ const searchEmbed = new SearchEmbed(getRootEl(), {});
86
+ await searchEmbed.render();
87
+ expect(mockAlert).not.toBeCalled();
88
+ });
89
+ test('Alert should not appear when suppressSearchEmbedBetaWarning is true and releaseVersion is 8.4.0.sw', async () => {
90
+ setupVersion('8.4.0.sw');
91
+ jest.spyOn(config, 'getThoughtSpotHost').mockImplementation(() => 'http://tshost');
92
+ jest.spyOn(embedConfigInstance, 'getEmbedConfig').mockReturnValue({
93
+ suppressSearchEmbedBetaWarning: true,
94
+ });
95
+ const mockAlert = jest.spyOn(window, 'alert');
96
+ const searchEmbed = new SearchEmbed(getRootEl(), {});
97
+ await searchEmbed.render();
98
+ expect(mockAlert).not.toBeCalled();
99
+ });
100
+ });
101
+ //# sourceMappingURL=searchEmbed-basic-auth.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchEmbed-basic-auth.spec.js","sourceRoot":"","sources":["../../../src/embed/searchEmbed-basic-auth.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ export type LiveboardEmbedProps = {
3
+ liveboardId: string;
4
+ getToken: () => Promise<string>;
5
+ };
6
+ export declare enum Param {
7
+ Version = "sdkVersion"
8
+ }
9
+ export type QueryParams = {
10
+ [key: string]: string | boolean | number;
11
+ };
12
+ export declare const LiveboardEmbed: React.FC<LiveboardEmbedProps>;
13
+ //# sourceMappingURL=LiveboardEmbed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiveboardEmbed.d.ts","sourceRoot":"","sources":["../../../src/native/LiveboardEmbed.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAS3D,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CACjC,CAAC;AAEF,oBAAY,KAAK;IACb,OAAO,eAAe;CACzB;AAED,MAAM,MAAM,WAAW,GAAG;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;CAC5C,CAAC;AAGF,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAkKxD,CAAC"}
@@ -0,0 +1,141 @@
1
+ import React, { useEffect, useRef, useState } from "react";
2
+ import { Text, View, StyleSheet } from "react-native";
3
+ import WebView from "react-native-webview";
4
+ import { getEmbedConfig } from "./embedConfig";
5
+ import { embedConfig } from "src/auth.spec";
6
+ import pkgInfo from '../../package.json';
7
+ import { getEncodedQueryParamsString, serializeParam, paramToString } from "src/utils";
8
+ const { version } = pkgInfo;
9
+ export var Param;
10
+ (function (Param) {
11
+ Param["Version"] = "sdkVersion";
12
+ })(Param || (Param = {}));
13
+ export const LiveboardEmbed = ({ liveboardId, getToken }) => {
14
+ const webViewRef = useRef(null);
15
+ const [embedUrl, setEmbedUrl] = useState("");
16
+ const [webViewLoaded, setWebViewLoaded] = useState(false);
17
+ const getEmbedParamsString = () => {
18
+ const queryparamsH = getBaseQueryParams();
19
+ return getQueryParamString(queryparamsH);
20
+ };
21
+ const getEmbedBasePath = (query) => {
22
+ let queryString = (query.startsWith('?')) ? query : `?${query}`;
23
+ queryString = `?base64UrlEncodedFlags=${getEncodedQueryParamsString(queryString.substr(1))}`;
24
+ const basePath = [embedConfig === null || embedConfig === void 0 ? void 0 : embedConfig.host, queryString]
25
+ .filter((x) => x.length > 0)
26
+ .join('/');
27
+ return `${basePath}#`;
28
+ };
29
+ const getRootWebViewSrc = () => {
30
+ const query = getEmbedParamsString();
31
+ return getEmbedBasePath(query);
32
+ };
33
+ const getQueryParamString = (queryParams, shouldSerializeParamValues = false) => {
34
+ const qp = [];
35
+ const params = Object.keys(queryParams);
36
+ params.forEach((key) => {
37
+ const val = queryParams[key];
38
+ if (val !== undefined) {
39
+ const serializedValue = shouldSerializeParamValues
40
+ ? serializeParam(val)
41
+ : paramToString(val);
42
+ qp.push(`${key}=${serializedValue}`);
43
+ }
44
+ });
45
+ if (qp.length) {
46
+ return qp.join('&');
47
+ }
48
+ return null;
49
+ };
50
+ const getBaseQueryParams = (queryParams = {}) => {
51
+ var _a;
52
+ let hostAppUrl = ((_a = window === null || window === void 0 ? void 0 : window.location) === null || _a === void 0 ? void 0 : _a.host) || '';
53
+ if (hostAppUrl.includes('localhost') || hostAppUrl.includes('127.0.0.1')) {
54
+ hostAppUrl = 'local-host';
55
+ }
56
+ queryParams[Param.Version] = version;
57
+ return queryParams;
58
+ };
59
+ const handleAppInit = async () => {
60
+ const authToken = await getToken();
61
+ const initPayload = {
62
+ type: "appInit",
63
+ data: {
64
+ host: embedConfig === null || embedConfig === void 0 ? void 0 : embedConfig.host,
65
+ authToken,
66
+ },
67
+ };
68
+ const jsCode = `
69
+ window.postMessage(${JSON.stringify(initPayload)});
70
+ `;
71
+ if (webViewRef.current && webViewLoaded) {
72
+ webViewRef.current.injectJavaScript(jsCode);
73
+ }
74
+ };
75
+ // Generate embed URL
76
+ const constructEmbedUrl = async () => {
77
+ const embedConfig = getEmbedConfig();
78
+ const host = (embedConfig === null || embedConfig === void 0 ? void 0 : embedConfig.host) || "";
79
+ const url = `${host}/?authType=AuthServerCookieless#/embed/liveboard/${liveboardId}`;
80
+ setEmbedUrl(url);
81
+ };
82
+ // Handle messages from the WebView
83
+ const handleOnMessage = (event) => {
84
+ try {
85
+ const message = JSON.parse(event.nativeEvent.data);
86
+ switch (message.type) {
87
+ case "AppInit":
88
+ handleAppInit();
89
+ break;
90
+ case "AuthExpiry" || "ThoughtspotAuthExpired":
91
+ handleAuthExpiry();
92
+ break;
93
+ case "CustomEvent":
94
+ console.log("Custom event received:", message.data);
95
+ break;
96
+ default:
97
+ console.warn("Unhandled message type:", message.type);
98
+ }
99
+ }
100
+ catch (error) {
101
+ console.error("Failed to handle message from WebView:", error);
102
+ }
103
+ };
104
+ // Handle auth token expiry
105
+ const handleAuthExpiry = async () => {
106
+ var _a;
107
+ const authToken = await getToken();
108
+ const payload = {
109
+ type: "AuthExpiry",
110
+ data: { authToken },
111
+ };
112
+ (_a = webViewRef.current) === null || _a === void 0 ? void 0 : _a.injectJavaScript(`
113
+ window.postMessage(${JSON.stringify(payload)}, "*");
114
+ `);
115
+ };
116
+ useEffect(() => {
117
+ constructEmbedUrl();
118
+ }, []);
119
+ if (!embedUrl) {
120
+ return (React.createElement(View, { style: styles.loadingContainer },
121
+ React.createElement(Text, null, "Loading Liveboard...")));
122
+ }
123
+ return (React.createElement(WebView, { ref: webViewRef, source: { uri: embedUrl }, style: styles.webview, onMessage: handleOnMessage, onLoadStart: () => console.log('WebView load started'), injectedJavaScriptBeforeContentLoaded: `
124
+ window.ReactNativeWebView = {
125
+ postMessage: function(data) {
126
+ window.postMessage(data, '*');
127
+ }
128
+ };
129
+ `, onLoad: () => setWebViewLoaded(true), javaScriptEnabled: true, domStorageEnabled: true, cacheEnabled: false, originWhitelist: ["*"], onHttpError: (event) => console.log("HTTP Error: ", event.nativeEvent), onError: (event) => console.error("WebView Error: ", event.nativeEvent) }));
130
+ };
131
+ const styles = StyleSheet.create({
132
+ webview: {
133
+ flex: 1,
134
+ },
135
+ loadingContainer: {
136
+ flex: 1,
137
+ justifyContent: "center",
138
+ alignItems: "center",
139
+ },
140
+ });
141
+ //# sourceMappingURL=LiveboardEmbed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiveboardEmbed.js","sourceRoot":"","sources":["../../../src/native/LiveboardEmbed.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { WebViewConfig } from './types';
2
+ /**
3
+ * This method constructs the webview URL with given config.
4
+ * @param config To get the webviewURL pass the necessary config options.
5
+ * host: string;
6
+ * authType: AuthType;
7
+ * liveboardId: string;
8
+ * getAuthToken: () => Promise<string>;
9
+ * These four are necessary arguments.
10
+ * @returns The Promise for WebView URL.
11
+ */
12
+ export declare const getWebViewUrl: (config: WebViewConfig) => Promise<string>;
13
+ /**
14
+ * setting up message handling for the message replies to TS instances.
15
+ * @param config The webview config
16
+ * @param event The message event from the WebView.
17
+ * @param WebViewRef Ref to use and inject javascript
18
+ */
19
+ export declare const setupWebViewMessageHandler: (config: WebViewConfig, event: any, webViewRef: any) => Promise<void>;
20
+ //# sourceMappingURL=commonUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commonUtils.d.ts","sourceRoot":"","sources":["../../../src/native/commonUtils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGxC;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,WAAkB,aAAa,KAAG,QAAQ,MAAM,CA+BzE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,WAC3B,aAAa,SACd,GAAG,cACE,GAAG,kBA2ElB,CAAC"}
@@ -0,0 +1,169 @@
1
+ import { getCustomisationsMobileEmbed, getQueryParamString } from '../utils';
2
+ import { Param } from '../types';
3
+ import pkgInfo from '../../package.json';
4
+ import { logger } from '../utils/logger';
5
+ /**
6
+ * This method constructs the webview URL with given config.
7
+ * @param config To get the webviewURL pass the necessary config options.
8
+ * host: string;
9
+ * authType: AuthType;
10
+ * liveboardId: string;
11
+ * getAuthToken: () => Promise<string>;
12
+ * These four are necessary arguments.
13
+ * @returns The Promise for WebView URL.
14
+ */
15
+ export const getWebViewUrl = async (config) => {
16
+ if (typeof config.getAuthToken !== 'function') {
17
+ throw new Error('`getAuthToken` must be a function that returns a Promise.');
18
+ }
19
+ const authToken = await config.getAuthToken();
20
+ if (!authToken) {
21
+ throw new Error('Failed to fetch initial authentication token.');
22
+ }
23
+ const hostAppUrl = encodeURIComponent(config.host.includes('localhost')
24
+ || config.host.includes('127.0.0.1')
25
+ || config.host.includes('10.0.2.2')
26
+ ? 'local-host'
27
+ : config.host);
28
+ const queryParams = {
29
+ [Param.EmbedApp]: true,
30
+ [Param.HostAppUrl]: hostAppUrl,
31
+ [Param.Version]: pkgInfo.version,
32
+ [Param.AuthType]: config.authType,
33
+ [Param.livedBoardEmbed]: true,
34
+ [Param.EnableFlipTooltipToContextMenu]: true,
35
+ [Param.ContextMenuTrigger]: true,
36
+ };
37
+ const queryString = getQueryParamString(queryParams);
38
+ const webViewUrl = `${config.host}/embed?${queryString}#/embed/viz/${encodeURIComponent(config.liveboardId)}`;
39
+ return webViewUrl;
40
+ };
41
+ /**
42
+ * setting up message handling for the message replies to TS instances.
43
+ * @param config The webview config
44
+ * @param event The message event from the WebView.
45
+ * @param WebViewRef Ref to use and inject javascript
46
+ */
47
+ export const setupWebViewMessageHandler = async (config, event, webViewRef) => {
48
+ const message = JSON.parse(event.nativeEvent.data);
49
+ const injectJavaScript = (codeSnip) => {
50
+ if (webViewRef === null || webViewRef === void 0 ? void 0 : webViewRef.current) {
51
+ webViewRef.current.injectJavaScript(codeSnip);
52
+ }
53
+ else {
54
+ logger.error('Reference for Webview not found!!');
55
+ }
56
+ };
57
+ const defaultHandleMessage = async () => {
58
+ switch (message.type) {
59
+ case 'appInit': {
60
+ try {
61
+ const authToken = await config.getAuthToken();
62
+ const initPayload = {
63
+ type: 'appInit',
64
+ data: {
65
+ host: config.host,
66
+ authToken,
67
+ customisations: getCustomisationsMobileEmbed(config),
68
+ },
69
+ };
70
+ injectJavaScript(jsCodeToHandleInteractionsForContextMenu);
71
+ injectJavaScript(`window.postMessage(${JSON.stringify(initPayload)}, '*');`);
72
+ }
73
+ catch (error) {
74
+ console.error('Error handling appInit:', error);
75
+ }
76
+ break;
77
+ }
78
+ case 'ThoughtspotAuthExpired': {
79
+ try {
80
+ const newAuthToken = await config.getAuthToken();
81
+ if (newAuthToken) {
82
+ const authExpirePayload = {
83
+ type: 'ThoughtspotAuthExpired',
84
+ data: { authToken: newAuthToken },
85
+ };
86
+ injectJavaScript(`window.postMessage(${JSON.stringify(authExpirePayload)}, '*');`);
87
+ }
88
+ }
89
+ catch (error) {
90
+ console.error('Error refreshing token on expiry:', error);
91
+ }
92
+ break;
93
+ }
94
+ case 'ThoughtspotAuthFailure': {
95
+ try {
96
+ const newAuthToken = await config.getAuthToken();
97
+ if (newAuthToken) {
98
+ const authFailurePayload = {
99
+ type: 'ThoughtspotAuthFailure',
100
+ data: { authToken: newAuthToken },
101
+ };
102
+ injectJavaScript(`window.postMessage(${JSON.stringify(authFailurePayload)}, '*');`);
103
+ }
104
+ }
105
+ catch (error) {
106
+ console.error('Error refreshing token on failure:', error);
107
+ }
108
+ break;
109
+ }
110
+ default:
111
+ console.warn('Unhandled message type:', message.type);
112
+ }
113
+ };
114
+ if (config.handleMessage) {
115
+ await config.handleMessage(event);
116
+ }
117
+ else {
118
+ await defaultHandleMessage();
119
+ }
120
+ };
121
+ const jsCodeToHandleInteractionsForContextMenu = `
122
+ // Disabling auofocus
123
+ document.querySelectorAll('input[autofocus], textarea[autofocus]').forEach(el => el.removeAttribute('autofocus'));
124
+
125
+ // adding meta tag to keep fixed viewport scalign
126
+ const meta = document.createElement('meta');
127
+ meta.name = 'viewport';
128
+ meta.content = 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no';
129
+ document.head.appendChild(meta);
130
+
131
+ // input focus problem. -> we can just force it inside our view.
132
+ document.addEventListener('focusin', (event) => {
133
+ const target = event.target;
134
+
135
+ if (
136
+ target.tagName === 'INPUT' ||
137
+ target.tagName === 'TEXTAREA'
138
+ ) {
139
+ const rect = target.getBoundingClientRect();
140
+ if (
141
+ rect.top < 0 ||
142
+ rect.bottom > window.innerHeight ||
143
+ rect.left < 0 ||
144
+ rect.right > window.innerWidth
145
+ ) {
146
+ event.preventDefault();
147
+ // target.scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'end' });
148
+ const horizontalPadding = 10;
149
+
150
+ let scrollX = 0;
151
+
152
+ if (rect.left < horizontalPadding) {
153
+ scrollX = rect.left - horizontalPadding;
154
+ }
155
+ if (rect.right > window.innerWidth - horizontalPadding) {
156
+ scrollX = rect.right - window.innerWidth + horizontalPadding;
157
+ }
158
+ const scrollY = rect.top - (window.innerHeight / 2 - rect.height / 2);
159
+
160
+ window.scrollBy({
161
+ top: scrollY,
162
+ left: scrollX,
163
+ behavior: 'smooth',
164
+ })
165
+ }
166
+ }
167
+ });
168
+ `;
169
+ //# sourceMappingURL=commonUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commonUtils.js","sourceRoot":"","sources":["../../../src/native/commonUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=commonUtils.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commonUtils.spec.d.ts","sourceRoot":"","sources":["../../../src/native/commonUtils.spec.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,124 @@
1
+ import { getWebViewUrl, setupWebViewMessageHandler } from './commonUtils'; // Adjust the import path
2
+ import { AuthType } from '../types';
3
+ import pkgInfo from '../../package.json';
4
+ jest.mock('../utils', () => ({
5
+ getQueryParamString: jest.fn((params) => Object.keys(params).map((key) => `${key}=${params[key]}`).join('&')),
6
+ getCustomisationsMobileEmbed: jest.fn(() => ({ customKey: 'customValue' })),
7
+ }));
8
+ describe('getWebViewUrl', () => {
9
+ const mockGetAuthToken = jest.fn();
10
+ beforeEach(() => {
11
+ jest.clearAllMocks();
12
+ });
13
+ test('should construct the WebView URL correctly', async () => {
14
+ mockGetAuthToken.mockResolvedValue('mock-token');
15
+ const config = {
16
+ host: 'https://lookat-webview.com',
17
+ authType: AuthType.TrustedAuthTokenCookieless,
18
+ liveboardId: 'test-liveboard-id',
19
+ getAuthToken: mockGetAuthToken,
20
+ };
21
+ const url = await getWebViewUrl(config);
22
+ expect(mockGetAuthToken).toHaveBeenCalledTimes(1);
23
+ expect(url).toContain('https://lookat-webview.com/embed');
24
+ expect(url).toContain(`authType=${AuthType.TrustedAuthTokenCookieless}`);
25
+ expect(url).toContain('test-liveboard-id');
26
+ expect(url).toContain(`sdkVersion=${pkgInfo.version}`);
27
+ });
28
+ test('should throw an error if getAuthToken is not a function', async () => {
29
+ const config = {
30
+ host: 'https://lookat-webview.com',
31
+ authType: AuthType.TrustedAuthTokenCookieless,
32
+ liveboardId: 'test-liveboard-id',
33
+ getAuthToken: undefined,
34
+ };
35
+ await expect(getWebViewUrl(config)).rejects.toThrow('`getAuthToken` must be a function that returns a Promise.');
36
+ });
37
+ test('should throw an error if `getAuthToken` resolves to a falsy value', async () => {
38
+ mockGetAuthToken.mockResolvedValue(null);
39
+ const config = {
40
+ host: 'https://lookat-webview.com',
41
+ authType: AuthType.TrustedAuthTokenCookieless,
42
+ liveboardId: 'test-liveboard-id',
43
+ getAuthToken: mockGetAuthToken,
44
+ };
45
+ await expect(getWebViewUrl(config)).rejects.toThrow('Failed to fetch initial authentication token.');
46
+ });
47
+ test('should encode localhost URLs correctly', async () => {
48
+ mockGetAuthToken.mockResolvedValue('mock-token');
49
+ const config = {
50
+ host: 'localhost',
51
+ authType: AuthType.TrustedAuthTokenCookieless,
52
+ liveboardId: 'test-liveboard-id',
53
+ getAuthToken: mockGetAuthToken,
54
+ };
55
+ const url = await getWebViewUrl(config);
56
+ expect(url).toContain('hostAppUrl=local-host');
57
+ });
58
+ });
59
+ describe('WebView Utilities', () => {
60
+ const mockConfig = {
61
+ host: 'https://example.com',
62
+ authType: AuthType.TrustedAuthTokenCookieless,
63
+ liveboardId: '1234',
64
+ getAuthToken: jest.fn(),
65
+ };
66
+ const mockWebViewRef = {
67
+ current: {
68
+ injectJavaScript: jest.fn(),
69
+ },
70
+ };
71
+ let mockEvent;
72
+ beforeEach(() => {
73
+ jest.clearAllMocks();
74
+ mockEvent = {
75
+ nativeEvent: {
76
+ data: JSON.stringify({ type: 'appInit' }),
77
+ },
78
+ };
79
+ });
80
+ describe('setupWebViewMessageHandler', () => {
81
+ test('should reply to and call injectJavaScript with appInit payload', async () => {
82
+ mockConfig.getAuthToken.mockResolvedValue('mockAuthToken');
83
+ await setupWebViewMessageHandler(mockConfig, mockEvent, mockWebViewRef);
84
+ expect(mockConfig.getAuthToken).toHaveBeenCalled();
85
+ expect(mockWebViewRef.current.injectJavaScript).toHaveBeenCalledWith(expect.stringContaining('"type":"appInit"'));
86
+ });
87
+ test('should handle ThoughtspotAuthExpired and refresh the token', async () => {
88
+ mockEvent.nativeEvent.data = JSON.stringify({ type: 'ThoughtspotAuthExpired' });
89
+ mockConfig.getAuthToken.mockResolvedValue('bearer-token');
90
+ await setupWebViewMessageHandler(mockConfig, mockEvent, mockWebViewRef);
91
+ expect(mockConfig.getAuthToken).toHaveBeenCalled();
92
+ expect(mockWebViewRef.current.injectJavaScript).toHaveBeenCalledWith(expect.stringContaining('"type":"ThoughtspotAuthExpired"'));
93
+ });
94
+ test('should handle ThoughtspotAuthFailure and refresh the token', async () => {
95
+ mockEvent.nativeEvent.data = JSON.stringify({ type: 'ThoughtspotAuthFailure' });
96
+ mockConfig.getAuthToken.mockResolvedValue('bearer-token');
97
+ await setupWebViewMessageHandler(mockConfig, mockEvent, mockWebViewRef);
98
+ expect(mockConfig.getAuthToken).toHaveBeenCalled();
99
+ expect(mockWebViewRef.current.injectJavaScript).toHaveBeenCalledWith(expect.stringContaining('"type":"ThoughtspotAuthFailure"'));
100
+ });
101
+ test('should warn for unhandled message types', async () => {
102
+ mockEvent.nativeEvent.data = JSON.stringify({ type: 'unknownType' });
103
+ await setupWebViewMessageHandler(mockConfig, mockEvent, mockWebViewRef);
104
+ expect(mockWebViewRef.current.injectJavaScript).not.toHaveBeenCalled();
105
+ });
106
+ test('should throw if getAuthToken fails during appInit', async () => {
107
+ mockEvent.nativeEvent.data = JSON.stringify({ type: 'appInit' });
108
+ mockConfig.getAuthToken.mockRejectedValue(new Error('Token fetch error'));
109
+ await expect(setupWebViewMessageHandler(mockConfig, mockEvent, mockWebViewRef))
110
+ .rejects
111
+ .toThrow('Error handling appInit:');
112
+ });
113
+ test('should call config.handleMessage instead of default handler', async () => {
114
+ const handleMessageSpy = jest.fn();
115
+ const localConfig = { ...mockConfig, handleMessage: handleMessageSpy };
116
+ mockEvent.nativeEvent.data = JSON.stringify({ type: 'appInit' });
117
+ await setupWebViewMessageHandler(localConfig, mockEvent, mockWebViewRef);
118
+ expect(handleMessageSpy).toHaveBeenCalledWith(mockEvent);
119
+ // default logic never called
120
+ expect(mockWebViewRef.current.injectJavaScript).not.toHaveBeenCalled();
121
+ });
122
+ });
123
+ });
124
+ //# sourceMappingURL=commonUtils.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commonUtils.spec.js","sourceRoot":"","sources":["../../../src/native/commonUtils.spec.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export type EmbedConfig = {
2
+ host: string;
3
+ authType: "TrustedAuthCookieless";
4
+ getAuthToken: () => Promise<string>;
5
+ };
6
+ declare let embedConfig: EmbedConfig | null;
7
+ declare const setEmbedConfig: (newConfig: EmbedConfig) => void;
8
+ declare const getEmbedConfig: () => EmbedConfig;
9
+ export { embedConfig, setEmbedConfig, getEmbedConfig };
10
+ //# sourceMappingURL=embedConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedConfig.d.ts","sourceRoot":"","sources":["../../../src/native/embedConfig.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,uBAAuB,CAAC;IAElC,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CACrC,CAAC;AACF,QAAA,IAAI,WAAW,EAAE,WAAW,GAAG,IAAW,CAAC;AAC3C,QAAA,MAAM,cAAc,cAAe,WAAW,SAE7C,CAAC;AACF,QAAA,MAAM,cAAc,mBAAoB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ let embedConfig = null;
2
+ const setEmbedConfig = (newConfig) => {
3
+ embedConfig = newConfig;
4
+ };
5
+ const getEmbedConfig = () => embedConfig;
6
+ export { embedConfig, setEmbedConfig, getEmbedConfig };
7
+ //# sourceMappingURL=embedConfig.js.map