@thoughtspot/visual-embed-sdk 1.20.2 → 1.20.3

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 (368) hide show
  1. package/README.md +1 -1
  2. package/cjs/package.json +171 -0
  3. package/cjs/src/auth.d.ts +183 -0
  4. package/cjs/src/auth.d.ts.map +1 -0
  5. package/cjs/src/auth.js +457 -0
  6. package/cjs/src/auth.js.map +1 -0
  7. package/cjs/src/auth.spec.d.ts +13 -0
  8. package/cjs/src/auth.spec.d.ts.map +1 -0
  9. package/cjs/src/auth.spec.js +397 -0
  10. package/cjs/src/auth.spec.js.map +1 -0
  11. package/cjs/src/config.d.ts +22 -0
  12. package/cjs/src/config.d.ts.map +1 -0
  13. package/cjs/src/config.js +70 -0
  14. package/cjs/src/config.js.map +1 -0
  15. package/cjs/src/config.spec.d.ts +5 -0
  16. package/cjs/src/config.spec.d.ts.map +1 -0
  17. package/cjs/src/config.spec.js +65 -0
  18. package/cjs/src/config.spec.js.map +1 -0
  19. package/cjs/src/embed/app.d.ts +168 -0
  20. package/cjs/src/embed/app.d.ts.map +1 -0
  21. package/cjs/src/embed/app.js +215 -0
  22. package/cjs/src/embed/app.js.map +1 -0
  23. package/cjs/src/embed/app.spec.d.ts +2 -0
  24. package/cjs/src/embed/app.spec.d.ts.map +1 -0
  25. package/cjs/src/embed/app.spec.js +239 -0
  26. package/cjs/src/embed/app.spec.js.map +1 -0
  27. package/cjs/src/embed/base.d.ts +79 -0
  28. package/cjs/src/embed/base.d.ts.map +1 -0
  29. package/cjs/src/embed/base.js +229 -0
  30. package/cjs/src/embed/base.js.map +1 -0
  31. package/cjs/src/embed/base.spec.d.ts +2 -0
  32. package/cjs/src/embed/base.spec.d.ts.map +1 -0
  33. package/cjs/src/embed/base.spec.js +198 -0
  34. package/cjs/src/embed/base.spec.js.map +1 -0
  35. package/cjs/src/embed/embed.spec.d.ts +2 -0
  36. package/cjs/src/embed/embed.spec.d.ts.map +1 -0
  37. package/cjs/src/embed/embed.spec.js +74 -0
  38. package/cjs/src/embed/embed.spec.js.map +1 -0
  39. package/cjs/src/embed/events.spec.d.ts +2 -0
  40. package/cjs/src/embed/events.spec.d.ts.map +1 -0
  41. package/cjs/src/embed/events.spec.js +238 -0
  42. package/cjs/src/embed/events.spec.js.map +1 -0
  43. package/cjs/src/embed/liveboard.d.ts +150 -0
  44. package/cjs/src/embed/liveboard.d.ts.map +1 -0
  45. package/cjs/src/embed/liveboard.js +168 -0
  46. package/cjs/src/embed/liveboard.js.map +1 -0
  47. package/cjs/src/embed/liveboard.spec.d.ts +2 -0
  48. package/cjs/src/embed/liveboard.spec.d.ts.map +1 -0
  49. package/cjs/src/embed/liveboard.spec.js +229 -0
  50. package/cjs/src/embed/liveboard.spec.js.map +1 -0
  51. package/cjs/src/embed/pinboard.spec.d.ts +2 -0
  52. package/cjs/src/embed/pinboard.spec.d.ts.map +1 -0
  53. package/cjs/src/embed/pinboard.spec.js +148 -0
  54. package/cjs/src/embed/pinboard.spec.js.map +1 -0
  55. package/cjs/src/embed/search-bar.d.ts +50 -0
  56. package/cjs/src/embed/search-bar.d.ts.map +1 -0
  57. package/cjs/src/embed/search-bar.js +63 -0
  58. package/cjs/src/embed/search-bar.js.map +1 -0
  59. package/cjs/src/embed/search.d.ts +129 -0
  60. package/cjs/src/embed/search.d.ts.map +1 -0
  61. package/cjs/src/embed/search.js +121 -0
  62. package/cjs/src/embed/search.js.map +1 -0
  63. package/cjs/src/embed/search.spec.d.ts +2 -0
  64. package/cjs/src/embed/search.spec.d.ts.map +1 -0
  65. package/cjs/src/embed/search.spec.js +238 -0
  66. package/cjs/src/embed/search.spec.js.map +1 -0
  67. package/cjs/src/embed/searchEmbed-basic-auth.spec.d.ts +2 -0
  68. package/cjs/src/embed/searchEmbed-basic-auth.spec.d.ts.map +1 -0
  69. package/cjs/src/embed/searchEmbed-basic-auth.spec.js +103 -0
  70. package/cjs/src/embed/searchEmbed-basic-auth.spec.js.map +1 -0
  71. package/cjs/src/embed/ts-embed.d.ts +323 -0
  72. package/cjs/src/embed/ts-embed.d.ts.map +1 -0
  73. package/cjs/src/embed/ts-embed.js +719 -0
  74. package/cjs/src/embed/ts-embed.js.map +1 -0
  75. package/cjs/src/embed/ts-embed.spec.d.ts +2 -0
  76. package/cjs/src/embed/ts-embed.spec.d.ts.map +1 -0
  77. package/cjs/src/embed/ts-embed.spec.js +771 -0
  78. package/cjs/src/embed/ts-embed.spec.js.map +1 -0
  79. package/cjs/src/errors.d.ts +7 -0
  80. package/cjs/src/errors.d.ts.map +1 -0
  81. package/cjs/src/errors.js +10 -0
  82. package/cjs/src/errors.js.map +1 -0
  83. package/cjs/src/index.d.ts +18 -0
  84. package/cjs/src/index.d.ts.map +1 -0
  85. package/cjs/src/index.js +42 -0
  86. package/cjs/src/index.js.map +1 -0
  87. package/cjs/src/mixpanel-service.d.ts +29 -0
  88. package/cjs/src/mixpanel-service.d.ts.map +1 -0
  89. package/cjs/src/mixpanel-service.js +76 -0
  90. package/cjs/src/mixpanel-service.js.map +1 -0
  91. package/cjs/src/mixpanel-service.spec.d.ts +2 -0
  92. package/cjs/src/mixpanel-service.spec.d.ts.map +1 -0
  93. package/cjs/src/mixpanel-service.spec.js +63 -0
  94. package/cjs/src/mixpanel-service.spec.js.map +1 -0
  95. package/cjs/src/react/all-types-export.d.ts +3 -0
  96. package/cjs/src/react/all-types-export.d.ts.map +1 -0
  97. package/cjs/src/react/all-types-export.js +29 -0
  98. package/cjs/src/react/all-types-export.js.map +1 -0
  99. package/cjs/src/react/all-types-export.spec.d.ts +2 -0
  100. package/cjs/src/react/all-types-export.spec.d.ts.map +1 -0
  101. package/cjs/src/react/all-types-export.spec.js +13 -0
  102. package/cjs/src/react/all-types-export.spec.js.map +1 -0
  103. package/cjs/src/react/index.d.ts +95 -0
  104. package/cjs/src/react/index.d.ts.map +1 -0
  105. package/cjs/src/react/index.js +121 -0
  106. package/cjs/src/react/index.js.map +1 -0
  107. package/cjs/src/react/index.spec.d.ts +3 -0
  108. package/cjs/src/react/index.spec.d.ts.map +1 -0
  109. package/cjs/src/react/index.spec.js +138 -0
  110. package/cjs/src/react/index.spec.js.map +1 -0
  111. package/cjs/src/react/util.d.ts +19 -0
  112. package/cjs/src/react/util.d.ts.map +1 -0
  113. package/cjs/src/react/util.js +25 -0
  114. package/cjs/src/react/util.js.map +1 -0
  115. package/cjs/src/test/test-utils.d.ts +48 -0
  116. package/cjs/src/test/test-utils.d.ts.map +1 -0
  117. package/cjs/src/test/test-utils.js +108 -0
  118. package/cjs/src/test/test-utils.js.map +1 -0
  119. package/cjs/src/types.d.ts +2020 -0
  120. package/cjs/src/types.d.ts.map +1 -0
  121. package/cjs/src/types.js +1543 -0
  122. package/cjs/src/types.js.map +1 -0
  123. package/cjs/src/utils/answerService.d.ts +10 -0
  124. package/cjs/src/utils/answerService.d.ts.map +1 -0
  125. package/cjs/src/utils/answerService.js +61 -0
  126. package/cjs/src/utils/answerService.js.map +1 -0
  127. package/cjs/src/utils/answerService.spec.d.ts +2 -0
  128. package/cjs/src/utils/answerService.spec.d.ts.map +1 -0
  129. package/cjs/src/utils/answerService.spec.js +31 -0
  130. package/cjs/src/utils/answerService.spec.js.map +1 -0
  131. package/cjs/src/utils/authService.d.ts +37 -0
  132. package/cjs/src/utils/authService.d.ts.map +1 -0
  133. package/cjs/src/utils/authService.js +106 -0
  134. package/cjs/src/utils/authService.js.map +1 -0
  135. package/cjs/src/utils/authService.spec.d.ts +2 -0
  136. package/cjs/src/utils/authService.spec.d.ts.map +1 -0
  137. package/cjs/src/utils/authService.spec.js +72 -0
  138. package/cjs/src/utils/authService.spec.js.map +1 -0
  139. package/cjs/src/utils/processData.d.ts +16 -0
  140. package/cjs/src/utils/processData.d.ts.map +1 -0
  141. package/cjs/src/utils/processData.js +110 -0
  142. package/cjs/src/utils/processData.js.map +1 -0
  143. package/cjs/src/utils/processData.spec.d.ts +2 -0
  144. package/cjs/src/utils/processData.spec.d.ts.map +1 -0
  145. package/cjs/src/utils/processData.spec.js +142 -0
  146. package/cjs/src/utils/processData.spec.js.map +1 -0
  147. package/cjs/src/utils/processTrigger.d.ts +10 -0
  148. package/cjs/src/utils/processTrigger.d.ts.map +1 -0
  149. package/cjs/src/utils/processTrigger.js +63 -0
  150. package/cjs/src/utils/processTrigger.js.map +1 -0
  151. package/cjs/src/utils/processTrigger.spec.d.ts +2 -0
  152. package/cjs/src/utils/processTrigger.spec.d.ts.map +1 -0
  153. package/cjs/src/utils/processTrigger.spec.js +58 -0
  154. package/cjs/src/utils/processTrigger.spec.js.map +1 -0
  155. package/cjs/src/utils.d.ts +68 -0
  156. package/cjs/src/utils.d.ts.map +1 -0
  157. package/cjs/src/utils.js +196 -0
  158. package/cjs/src/utils.js.map +1 -0
  159. package/cjs/src/utils.spec.d.ts +5 -0
  160. package/cjs/src/utils.spec.d.ts.map +1 -0
  161. package/cjs/src/utils.spec.js +98 -0
  162. package/cjs/src/utils.spec.js.map +1 -0
  163. package/dist/src/auth.d.ts +54 -5
  164. package/dist/src/auth.d.ts.map +1 -1
  165. package/dist/src/auth.spec.d.ts +3 -0
  166. package/dist/src/auth.spec.d.ts.map +1 -1
  167. package/dist/src/config.d.ts +1 -0
  168. package/dist/src/config.d.ts.map +1 -1
  169. package/dist/src/embed/app.d.ts +35 -6
  170. package/dist/src/embed/app.d.ts.map +1 -1
  171. package/dist/src/embed/base.d.ts +20 -9
  172. package/dist/src/embed/base.d.ts.map +1 -1
  173. package/dist/src/embed/liveboard.d.ts +17 -5
  174. package/dist/src/embed/liveboard.d.ts.map +1 -1
  175. package/dist/src/embed/search-bar.d.ts +3 -0
  176. package/dist/src/embed/search-bar.d.ts.map +1 -1
  177. package/dist/src/embed/search.d.ts +9 -1
  178. package/dist/src/embed/search.d.ts.map +1 -1
  179. package/dist/src/embed/ts-embed.d.ts +65 -7
  180. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  181. package/dist/src/errors.d.ts.map +1 -1
  182. package/dist/src/index.d.ts +2 -2
  183. package/dist/src/index.d.ts.map +1 -1
  184. package/dist/src/mixpanel-service.d.ts +8 -0
  185. package/dist/src/mixpanel-service.d.ts.map +1 -1
  186. package/dist/src/react/all-types-export.d.ts +3 -0
  187. package/dist/src/react/all-types-export.d.ts.map +1 -0
  188. package/dist/src/react/all-types-export.spec.d.ts +2 -0
  189. package/dist/src/react/all-types-export.spec.d.ts.map +1 -0
  190. package/dist/src/react/index.d.ts +72 -0
  191. package/dist/src/react/index.d.ts.map +1 -1
  192. package/dist/src/react/util.d.ts +4 -0
  193. package/dist/src/react/util.d.ts.map +1 -1
  194. package/dist/src/test/test-utils.d.ts +11 -2
  195. package/dist/src/test/test-utils.d.ts.map +1 -1
  196. package/dist/src/types.d.ts +499 -96
  197. package/dist/src/types.d.ts.map +1 -1
  198. package/dist/src/utils/answerService.d.ts +7 -0
  199. package/dist/src/utils/answerService.d.ts.map +1 -1
  200. package/dist/src/utils/authService.d.ts +30 -0
  201. package/dist/src/utils/authService.d.ts.map +1 -1
  202. package/dist/src/utils/processData.d.ts +12 -0
  203. package/dist/src/utils/processData.d.ts.map +1 -1
  204. package/dist/src/utils/processTrigger.d.ts +7 -0
  205. package/dist/src/utils/processTrigger.d.ts.map +1 -1
  206. package/dist/src/utils.d.ts +12 -0
  207. package/dist/src/utils.d.ts.map +1 -1
  208. package/dist/tsembed-react.es.js +28024 -0
  209. package/dist/tsembed-react.js +27966 -0
  210. package/dist/tsembed.es.js +18114 -305
  211. package/dist/tsembed.js +18088 -327
  212. package/dist/visual-embed-sdk-react-full.d.ts +3092 -0
  213. package/dist/visual-embed-sdk-react.d.ts +2781 -0
  214. package/dist/visual-embed-sdk.d.ts +2944 -0
  215. package/lib/package.json +15 -14
  216. package/lib/src/auth.d.ts +54 -5
  217. package/lib/src/auth.d.ts.map +1 -1
  218. package/lib/src/auth.js +91 -31
  219. package/lib/src/auth.js.map +1 -1
  220. package/lib/src/auth.spec.d.ts +3 -0
  221. package/lib/src/auth.spec.d.ts.map +1 -1
  222. package/lib/src/auth.spec.js +37 -6
  223. package/lib/src/auth.spec.js.map +1 -1
  224. package/lib/src/config.d.ts +1 -0
  225. package/lib/src/config.d.ts.map +1 -1
  226. package/lib/src/config.js +5 -3
  227. package/lib/src/config.js.map +1 -1
  228. package/lib/src/config.spec.js.map +1 -1
  229. package/lib/src/embed/app.d.ts +35 -6
  230. package/lib/src/embed/app.d.ts.map +1 -1
  231. package/lib/src/embed/app.js +55 -16
  232. package/lib/src/embed/app.js.map +1 -1
  233. package/lib/src/embed/app.spec.js +41 -12
  234. package/lib/src/embed/app.spec.js.map +1 -1
  235. package/lib/src/embed/base.d.ts +20 -9
  236. package/lib/src/embed/base.d.ts.map +1 -1
  237. package/lib/src/embed/base.js +31 -15
  238. package/lib/src/embed/base.js.map +1 -1
  239. package/lib/src/embed/base.spec.js.map +1 -1
  240. package/lib/src/embed/embed.spec.js +1 -1
  241. package/lib/src/embed/embed.spec.js.map +1 -1
  242. package/lib/src/embed/liveboard.d.ts +17 -5
  243. package/lib/src/embed/liveboard.d.ts.map +1 -1
  244. package/lib/src/embed/liveboard.js +49 -37
  245. package/lib/src/embed/liveboard.js.map +1 -1
  246. package/lib/src/embed/liveboard.spec.js +37 -30
  247. package/lib/src/embed/liveboard.spec.js.map +1 -1
  248. package/lib/src/embed/pinboard.spec.js +14 -26
  249. package/lib/src/embed/pinboard.spec.js.map +1 -1
  250. package/lib/src/embed/search-bar.d.ts +3 -0
  251. package/lib/src/embed/search-bar.d.ts.map +1 -1
  252. package/lib/src/embed/search-bar.js +5 -6
  253. package/lib/src/embed/search-bar.js.map +1 -1
  254. package/lib/src/embed/search.d.ts +9 -1
  255. package/lib/src/embed/search.d.ts.map +1 -1
  256. package/lib/src/embed/search.js +18 -14
  257. package/lib/src/embed/search.js.map +1 -1
  258. package/lib/src/embed/search.spec.js +16 -19
  259. package/lib/src/embed/search.spec.js.map +1 -1
  260. package/lib/src/embed/searchEmbed-basic-auth.spec.js +4 -0
  261. package/lib/src/embed/searchEmbed-basic-auth.spec.js.map +1 -1
  262. package/lib/src/embed/ts-embed.d.ts +65 -7
  263. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  264. package/lib/src/embed/ts-embed.js +154 -77
  265. package/lib/src/embed/ts-embed.js.map +1 -1
  266. package/lib/src/embed/ts-embed.spec.js +46 -24
  267. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  268. package/lib/src/errors.d.ts.map +1 -1
  269. package/lib/src/errors.js.map +1 -1
  270. package/lib/src/index.d.ts +2 -2
  271. package/lib/src/index.d.ts.map +1 -1
  272. package/lib/src/index.js +4 -4
  273. package/lib/src/index.js.map +1 -1
  274. package/lib/src/mixpanel-service.d.ts +8 -0
  275. package/lib/src/mixpanel-service.d.ts.map +1 -1
  276. package/lib/src/mixpanel-service.js +13 -1
  277. package/lib/src/mixpanel-service.js.map +1 -1
  278. package/lib/src/mixpanel-service.spec.js.map +1 -1
  279. package/lib/src/react/all-types-export.d.ts +3 -0
  280. package/lib/src/react/all-types-export.d.ts.map +1 -0
  281. package/lib/src/react/all-types-export.js +5 -0
  282. package/lib/src/react/all-types-export.js.map +1 -0
  283. package/lib/src/react/all-types-export.spec.d.ts +2 -0
  284. package/lib/src/react/all-types-export.spec.d.ts.map +1 -0
  285. package/lib/src/react/all-types-export.spec.js +10 -0
  286. package/lib/src/react/all-types-export.spec.js.map +1 -0
  287. package/lib/src/react/index.d.ts +72 -0
  288. package/lib/src/react/index.d.ts.map +1 -1
  289. package/lib/src/react/index.js +79 -7
  290. package/lib/src/react/index.js.map +1 -1
  291. package/lib/src/react/index.spec.js +27 -6
  292. package/lib/src/react/index.spec.js.map +1 -1
  293. package/lib/src/react/util.d.ts +4 -0
  294. package/lib/src/react/util.d.ts.map +1 -1
  295. package/lib/src/react/util.js +4 -0
  296. package/lib/src/react/util.js.map +1 -1
  297. package/lib/src/test/test-utils.d.ts +11 -2
  298. package/lib/src/test/test-utils.d.ts.map +1 -1
  299. package/lib/src/test/test-utils.js +36 -25
  300. package/lib/src/test/test-utils.js.map +1 -1
  301. package/lib/src/types.d.ts +499 -96
  302. package/lib/src/types.d.ts.map +1 -1
  303. package/lib/src/types.js +374 -68
  304. package/lib/src/types.js.map +1 -1
  305. package/lib/src/utils/answerService.d.ts +7 -0
  306. package/lib/src/utils/answerService.d.ts.map +1 -1
  307. package/lib/src/utils/answerService.js +7 -0
  308. package/lib/src/utils/answerService.js.map +1 -1
  309. package/lib/src/utils/answerService.spec.js.map +1 -1
  310. package/lib/src/utils/authService.d.ts +30 -0
  311. package/lib/src/utils/authService.d.ts.map +1 -1
  312. package/lib/src/utils/authService.js +39 -2
  313. package/lib/src/utils/authService.js.map +1 -1
  314. package/lib/src/utils/authService.spec.js.map +1 -1
  315. package/lib/src/utils/processData.d.ts +12 -0
  316. package/lib/src/utils/processData.d.ts.map +1 -1
  317. package/lib/src/utils/processData.js +33 -5
  318. package/lib/src/utils/processData.js.map +1 -1
  319. package/lib/src/utils/processData.spec.js.map +1 -1
  320. package/lib/src/utils/processTrigger.d.ts +7 -0
  321. package/lib/src/utils/processTrigger.d.ts.map +1 -1
  322. package/lib/src/utils/processTrigger.js +17 -3
  323. package/lib/src/utils/processTrigger.js.map +1 -1
  324. package/lib/src/utils/processTrigger.spec.js.map +1 -1
  325. package/lib/src/utils.d.ts +12 -0
  326. package/lib/src/utils.d.ts.map +1 -1
  327. package/lib/src/utils.js +24 -19
  328. package/lib/src/utils.js.map +1 -1
  329. package/lib/src/utils.spec.js.map +1 -1
  330. package/package.json +15 -14
  331. package/src/auth.spec.ts +83 -133
  332. package/src/auth.ts +148 -115
  333. package/src/config.spec.ts +2 -4
  334. package/src/config.ts +5 -3
  335. package/src/embed/app.spec.ts +57 -14
  336. package/src/embed/app.ts +91 -36
  337. package/src/embed/base.spec.ts +3 -9
  338. package/src/embed/base.ts +51 -53
  339. package/src/embed/embed.spec.ts +5 -6
  340. package/src/embed/liveboard.spec.ts +56 -37
  341. package/src/embed/liveboard.ts +66 -64
  342. package/src/embed/pinboard.spec.ts +26 -29
  343. package/src/embed/search-bar.tsx +10 -8
  344. package/src/embed/search.spec.ts +31 -21
  345. package/src/embed/search.ts +26 -20
  346. package/src/embed/searchEmbed-basic-auth.spec.ts +22 -28
  347. package/src/embed/ts-embed.spec.ts +99 -144
  348. package/src/embed/ts-embed.ts +188 -162
  349. package/src/errors.ts +3 -6
  350. package/src/index.ts +6 -10
  351. package/src/mixpanel-service.spec.ts +1 -3
  352. package/src/mixpanel-service.ts +13 -1
  353. package/src/react/index.spec.tsx +66 -13
  354. package/src/react/index.tsx +111 -62
  355. package/src/react/util.ts +8 -4
  356. package/src/test/test-utils.ts +43 -39
  357. package/src/types.ts +498 -98
  358. package/src/utils/answerService.spec.ts +3 -5
  359. package/src/utils/answerService.ts +21 -17
  360. package/src/utils/authService.spec.ts +26 -41
  361. package/src/utils/authService.ts +47 -21
  362. package/src/utils/processData.spec.ts +26 -59
  363. package/src/utils/processData.ts +36 -14
  364. package/src/utils/processTrigger.spec.ts +1 -6
  365. package/src/utils/processTrigger.ts +18 -9
  366. package/src/utils.spec.ts +8 -12
  367. package/src/utils.ts +25 -26
  368. package/lib/src/visual-embed-sdk.d.ts +0 -2419
@@ -0,0 +1,79 @@
1
+ import { EmbedConfig, PrefetchFeatures } from '../types';
2
+ import { notifyAuthFailure, notifyAuthSDKSuccess, notifyAuthSuccess, notifyLogout, AuthEventEmitter } from '../auth';
3
+ export declare let authPromise: Promise<boolean>;
4
+ /**
5
+ * Gets the configuration embed was initialized with.
6
+ *
7
+ * @returns {@link EmbedConfig} The configuration embed was initialized with.
8
+ * @version SDK: 1.19.0 | ThoughtSpot: *
9
+ * @group Global methods
10
+ */
11
+ export declare const getEmbedConfig: () => EmbedConfig;
12
+ export declare const getAuthPromise: () => Promise<boolean>;
13
+ export { notifyAuthFailure, notifyAuthSDKSuccess, notifyAuthSuccess, notifyLogout, };
14
+ /**
15
+ * Perform authentication on the ThoughtSpot app as applicable.
16
+ */
17
+ export declare const handleAuth: () => Promise<boolean>;
18
+ /**
19
+ * Prefetches static resources from the specified URL. Web browsers can then cache the
20
+ * prefetched resources and serve them from the user's local disk to provide faster access
21
+ * to your app.
22
+ *
23
+ * @param url The URL provided for prefetch
24
+ * @param prefetchFeatures Specify features which needs to be prefetched.
25
+ * @version SDK: 1.4.0 | ThoughtSpot: ts7.sep.cl, 7.2.1
26
+ * @group Global methods
27
+ */
28
+ export declare const prefetch: (url?: string, prefetchFeatures?: PrefetchFeatures[]) => void;
29
+ /**
30
+ * Initializes the Visual Embed SDK globally and perform
31
+ * authentication if applicable. This function needs to be called before any ThoughtSpot
32
+ * component like liveboard etc can be embedded. But need not wait for AuthEvent.SUCCESS
33
+ * to actually embed. That is handled internally.
34
+ *
35
+ * @param embedConfig The configuration object containing ThoughtSpot host,
36
+ * authentication mechanism and so on.
37
+ * @example
38
+ * ```js
39
+ * const authStatus = init({
40
+ * thoughtSpotHost: 'https://my.thoughtspot.cloud',
41
+ * authType: AuthType.None,
42
+ * });
43
+ * authStatus.on(AuthStatus.FAILURE, (reason) => { // do something here });
44
+ * ```
45
+ * @returns {@link AuthEventEmitter} event emitter which emits events on authentication success,
46
+ * failure and logout. See {@link AuthStatus}
47
+ * @version SDK: 1.0.0 | ThoughtSpot ts7.april.cl, 7.2.1
48
+ * @group Authentication / Init
49
+ */
50
+ export declare const init: (embedConfig: EmbedConfig) => AuthEventEmitter;
51
+ /**
52
+ *
53
+ */
54
+ export declare function disableAutoLogin(): void;
55
+ /**
56
+ * Logs out from ThoughtSpot. This also sets the autoLogin flag to false, to
57
+ * prevent the SDK from automatically logging in again.
58
+ *
59
+ * You can call the `init` method again to re login, if autoLogin is set to
60
+ * true in this second call it will be honored.
61
+ *
62
+ * @param doNotDisableAutoLogin This flag when passed will not disable autoLogin
63
+ * @returns Promise which resolves when logout completes.
64
+ * @version SDK: 1.10.1 | ThoughtSpot: 8.2.0.cl, 8.4.1-sw
65
+ * @group Global methods
66
+ */
67
+ export declare const logout: (doNotDisableAutoLogin?: boolean) => Promise<boolean>;
68
+ /**
69
+ * Renders functions in a queue, resolves to next function only after the callback next
70
+ * is called
71
+ *
72
+ * @param fn The function being registered
73
+ */
74
+ export declare const renderInQueue: (fn: (next?: (val?: any) => void) => Promise<any>) => Promise<any>;
75
+ /**
76
+ *
77
+ */
78
+ export declare function reset(): void;
79
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/embed/base.ts"],"names":[],"mappings":"AAYA,OAAO,EAAY,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,EAMH,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EAEZ,gBAAgB,EACnB,MAAM,SAAS,CAAC;AAUjB,eAAO,IAAI,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AACzC;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,QAAO,WAAqB,CAAC;AAExD,eAAO,MAAM,cAAc,QAAO,QAAQ,OAAO,CAAgB,CAAC;AAElE,OAAO,EACH,iBAAiB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,YAAY,GAC3E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,QAAO,QAAQ,OAAO,CAe5C,CAAC;AASF;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ,SAAU,MAAM,qBAAqB,gBAAgB,EAAE,KAAG,IAqB9E,CAAC;AAiCF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,IAAI,gBAAiB,WAAW,KAAG,gBA2B/C,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,MAAM,uCAAoC,QAAQ,OAAO,CAQrE,CAAC;AAIF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,sBAAuB,GAAG,KAAK,IAAI,KAAK,QAAQ,GAAG,CAAC,KAAG,QAAQ,GAAG,CAQ3F,CAAC;AAGF;;GAEG;AACH,wBAAgB,KAAK,IAAI,IAAI,CAI5B"}
@@ -0,0 +1,229 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.reset = exports.renderInQueue = exports.logout = exports.disableAutoLogin = exports.init = exports.prefetch = exports.handleAuth = exports.notifyLogout = exports.notifyAuthSuccess = exports.notifyAuthSDKSuccess = exports.notifyAuthFailure = exports.getAuthPromise = exports.getEmbedConfig = exports.authPromise = void 0;
4
+ const tslib_1 = require("tslib");
5
+ /* eslint-disable import/no-mutable-exports */
6
+ /**
7
+ * Copyright (c) 2022
8
+ *
9
+ * Base classes
10
+ *
11
+ * @summary Base classes
12
+ * @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
13
+ */
14
+ const eventemitter3_1 = tslib_1.__importDefault(require("eventemitter3"));
15
+ const uniq_1 = tslib_1.__importDefault(require("lodash/uniq"));
16
+ const config_1 = require("../config");
17
+ const types_1 = require("../types");
18
+ const auth_1 = require("../auth");
19
+ Object.defineProperty(exports, "notifyAuthFailure", { enumerable: true, get: function () { return auth_1.notifyAuthFailure; } });
20
+ Object.defineProperty(exports, "notifyAuthSDKSuccess", { enumerable: true, get: function () { return auth_1.notifyAuthSDKSuccess; } });
21
+ Object.defineProperty(exports, "notifyAuthSuccess", { enumerable: true, get: function () { return auth_1.notifyAuthSuccess; } });
22
+ Object.defineProperty(exports, "notifyLogout", { enumerable: true, get: function () { return auth_1.notifyLogout; } });
23
+ const mixpanel_service_1 = require("../mixpanel-service");
24
+ let config = {};
25
+ const CONFIG_DEFAULTS = {
26
+ loginFailedMessage: 'Not logged in',
27
+ authTriggerText: 'Authorize',
28
+ authType: types_1.AuthType.None,
29
+ };
30
+ /**
31
+ * Gets the configuration embed was initialized with.
32
+ *
33
+ * @returns {@link EmbedConfig} The configuration embed was initialized with.
34
+ * @version SDK: 1.19.0 | ThoughtSpot: *
35
+ * @group Global methods
36
+ */
37
+ const getEmbedConfig = () => config;
38
+ exports.getEmbedConfig = getEmbedConfig;
39
+ const getAuthPromise = () => exports.authPromise;
40
+ exports.getAuthPromise = getAuthPromise;
41
+ /**
42
+ * Perform authentication on the ThoughtSpot app as applicable.
43
+ */
44
+ const handleAuth = () => {
45
+ exports.authPromise = (0, auth_1.authenticate)(config);
46
+ exports.authPromise.then((isLoggedIn) => {
47
+ if (!isLoggedIn) {
48
+ (0, auth_1.notifyAuthFailure)(auth_1.AuthFailureType.SDK);
49
+ }
50
+ else {
51
+ (0, auth_1.notifyAuthSDKSuccess)();
52
+ }
53
+ }, () => {
54
+ (0, auth_1.notifyAuthFailure)(auth_1.AuthFailureType.SDK);
55
+ });
56
+ return exports.authPromise;
57
+ };
58
+ exports.handleAuth = handleAuth;
59
+ const hostUrlToFeatureUrl = {
60
+ [types_1.PrefetchFeatures.SearchEmbed]: (url) => `${url}v2/#/embed/answer`,
61
+ [types_1.PrefetchFeatures.LiveboardEmbed]: (url) => url,
62
+ [types_1.PrefetchFeatures.FullApp]: (url) => url,
63
+ [types_1.PrefetchFeatures.VizEmbed]: (url) => url,
64
+ };
65
+ /**
66
+ * Prefetches static resources from the specified URL. Web browsers can then cache the
67
+ * prefetched resources and serve them from the user's local disk to provide faster access
68
+ * to your app.
69
+ *
70
+ * @param url The URL provided for prefetch
71
+ * @param prefetchFeatures Specify features which needs to be prefetched.
72
+ * @version SDK: 1.4.0 | ThoughtSpot: ts7.sep.cl, 7.2.1
73
+ * @group Global methods
74
+ */
75
+ const prefetch = (url, prefetchFeatures) => {
76
+ if (url === '') {
77
+ // eslint-disable-next-line no-console
78
+ console.warn('The prefetch method does not have a valid URL');
79
+ }
80
+ else {
81
+ const features = prefetchFeatures || [types_1.PrefetchFeatures.FullApp];
82
+ let hostUrl = url || config.thoughtSpotHost;
83
+ hostUrl = hostUrl[hostUrl.length - 1] === '/' ? hostUrl : `${hostUrl}/`;
84
+ (0, uniq_1.default)(features.map((feature) => hostUrlToFeatureUrl[feature](hostUrl))).forEach((prefetchUrl, index) => {
85
+ const iFrame = document.createElement('iframe');
86
+ iFrame.src = prefetchUrl;
87
+ iFrame.style.width = '0';
88
+ iFrame.style.height = '0';
89
+ iFrame.style.border = '0';
90
+ iFrame.classList.add('prefetchIframe');
91
+ iFrame.classList.add(`prefetchIframeNum-${index}`);
92
+ document.body.appendChild(iFrame);
93
+ });
94
+ }
95
+ };
96
+ exports.prefetch = prefetch;
97
+ /**
98
+ *
99
+ * @param embedConfig
100
+ */
101
+ function sanity(embedConfig) {
102
+ if (embedConfig.thoughtSpotHost === undefined) {
103
+ throw new Error('ThoughtSpot host not provided');
104
+ }
105
+ if (embedConfig.authType === types_1.AuthType.TrustedAuthToken) {
106
+ if (!embedConfig.username) {
107
+ throw new Error('Username not provided with Trusted auth');
108
+ }
109
+ if (!embedConfig.authEndpoint && typeof embedConfig.getAuthToken !== 'function') {
110
+ throw new Error('Trusted auth should provide either authEndpoint or getAuthToken');
111
+ }
112
+ }
113
+ }
114
+ /**
115
+ *
116
+ * @param embedConfig
117
+ */
118
+ function backwardCompat(embedConfig) {
119
+ const newConfig = { ...embedConfig };
120
+ if (embedConfig.noRedirect !== undefined && embedConfig.inPopup === undefined) {
121
+ newConfig.inPopup = embedConfig.noRedirect;
122
+ }
123
+ return newConfig;
124
+ }
125
+ /**
126
+ * Initializes the Visual Embed SDK globally and perform
127
+ * authentication if applicable. This function needs to be called before any ThoughtSpot
128
+ * component like liveboard etc can be embedded. But need not wait for AuthEvent.SUCCESS
129
+ * to actually embed. That is handled internally.
130
+ *
131
+ * @param embedConfig The configuration object containing ThoughtSpot host,
132
+ * authentication mechanism and so on.
133
+ * @example
134
+ * ```js
135
+ * const authStatus = init({
136
+ * thoughtSpotHost: 'https://my.thoughtspot.cloud',
137
+ * authType: AuthType.None,
138
+ * });
139
+ * authStatus.on(AuthStatus.FAILURE, (reason) => { // do something here });
140
+ * ```
141
+ * @returns {@link AuthEventEmitter} event emitter which emits events on authentication success,
142
+ * failure and logout. See {@link AuthStatus}
143
+ * @version SDK: 1.0.0 | ThoughtSpot ts7.april.cl, 7.2.1
144
+ * @group Authentication / Init
145
+ */
146
+ const init = (embedConfig) => {
147
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
148
+ sanity(embedConfig);
149
+ config = {
150
+ ...CONFIG_DEFAULTS,
151
+ ...embedConfig,
152
+ thoughtSpotHost: (0, config_1.getThoughtSpotHost)(embedConfig),
153
+ };
154
+ config = backwardCompat(config);
155
+ const authEE = new eventemitter3_1.default();
156
+ (0, auth_1.setAuthEE)(authEE);
157
+ (0, exports.handleAuth)();
158
+ (0, mixpanel_service_1.uploadMixpanelEvent)(mixpanel_service_1.MIXPANEL_EVENT.VISUAL_SDK_CALLED_INIT, {
159
+ authType: config.authType,
160
+ host: config.thoughtSpotHost,
161
+ usedCustomizationSheet: ((_b = (_a = embedConfig.customizations) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.customCSSUrl) != null,
162
+ usedCustomizationVariables: ((_e = (_d = (_c = embedConfig.customizations) === null || _c === void 0 ? void 0 : _c.style) === null || _d === void 0 ? void 0 : _d.customCSS) === null || _e === void 0 ? void 0 : _e.variables) != null,
163
+ usedCustomizationRules: ((_h = (_g = (_f = embedConfig.customizations) === null || _f === void 0 ? void 0 : _f.style) === null || _g === void 0 ? void 0 : _g.customCSS) === null || _h === void 0 ? void 0 : _h.rules_UNSTABLE) != null,
164
+ usedCustomizationStrings: !!((_k = (_j = embedConfig.customizations) === null || _j === void 0 ? void 0 : _j.content) === null || _k === void 0 ? void 0 : _k.strings),
165
+ usedCustomizationIconSprite: !!((_l = embedConfig.customizations) === null || _l === void 0 ? void 0 : _l.iconSpriteUrl),
166
+ });
167
+ if (config.callPrefetch) {
168
+ (0, exports.prefetch)(config.thoughtSpotHost);
169
+ }
170
+ return authEE;
171
+ };
172
+ exports.init = init;
173
+ /**
174
+ *
175
+ */
176
+ function disableAutoLogin() {
177
+ config.autoLogin = false;
178
+ }
179
+ exports.disableAutoLogin = disableAutoLogin;
180
+ /**
181
+ * Logs out from ThoughtSpot. This also sets the autoLogin flag to false, to
182
+ * prevent the SDK from automatically logging in again.
183
+ *
184
+ * You can call the `init` method again to re login, if autoLogin is set to
185
+ * true in this second call it will be honored.
186
+ *
187
+ * @param doNotDisableAutoLogin This flag when passed will not disable autoLogin
188
+ * @returns Promise which resolves when logout completes.
189
+ * @version SDK: 1.10.1 | ThoughtSpot: 8.2.0.cl, 8.4.1-sw
190
+ * @group Global methods
191
+ */
192
+ const logout = (doNotDisableAutoLogin = false) => {
193
+ if (!doNotDisableAutoLogin) {
194
+ disableAutoLogin();
195
+ }
196
+ return (0, auth_1.logout)(config).then((isLoggedIn) => {
197
+ (0, auth_1.notifyLogout)();
198
+ return isLoggedIn;
199
+ });
200
+ };
201
+ exports.logout = logout;
202
+ let renderQueue = Promise.resolve();
203
+ /**
204
+ * Renders functions in a queue, resolves to next function only after the callback next
205
+ * is called
206
+ *
207
+ * @param fn The function being registered
208
+ */
209
+ const renderInQueue = (fn) => {
210
+ const { queueMultiRenders = false } = config;
211
+ if (queueMultiRenders) {
212
+ renderQueue = renderQueue.then(() => new Promise((res) => fn(res)));
213
+ return renderQueue;
214
+ }
215
+ // Sending an empty function to keep it consistent with the above usage.
216
+ return fn(() => { }); // eslint-disable-line @typescript-eslint/no-empty-function
217
+ };
218
+ exports.renderInQueue = renderInQueue;
219
+ // For testing purposes only
220
+ /**
221
+ *
222
+ */
223
+ function reset() {
224
+ config = {};
225
+ (0, auth_1.setAuthEE)(null);
226
+ exports.authPromise = null;
227
+ }
228
+ exports.reset = reset;
229
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/embed/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=base.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.spec.d.ts","sourceRoot":"","sources":["../../../src/embed/base.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,198 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const auth = tslib_1.__importStar(require("../auth"));
5
+ const index = tslib_1.__importStar(require("../index"));
6
+ const base = tslib_1.__importStar(require("./base"));
7
+ const test_utils_1 = require("../test/test-utils");
8
+ const thoughtSpotHost = 'tshost';
9
+ let authEE;
10
+ describe('Base TS Embed', () => {
11
+ beforeAll(() => {
12
+ authEE = index.init({
13
+ thoughtSpotHost,
14
+ authType: index.AuthType.None,
15
+ });
16
+ });
17
+ beforeEach(() => {
18
+ document.body.innerHTML = (0, test_utils_1.getDocumentBody)();
19
+ });
20
+ test('Should show an alert when third party cookie access is blocked', (done) => {
21
+ const tsEmbed = new index.SearchEmbed((0, test_utils_1.getRootEl)(), {});
22
+ const iFrame = document.createElement('div');
23
+ iFrame.contentWindow = null;
24
+ /* This will return a div instead of HTMLIframeElement in ts-embed.ts
25
+ * so that the promise doesn't fail on url assigment
26
+ */
27
+ jest.spyOn(document, 'createElement').mockReturnValueOnce(iFrame);
28
+ tsEmbed.render();
29
+ window.postMessage({
30
+ __type: index.EmbedEvent.NoCookieAccess,
31
+ }, '*');
32
+ jest.spyOn(window, 'alert').mockReset();
33
+ jest.spyOn(window, 'alert').mockImplementation(() => undefined);
34
+ authEE.on(auth.AuthStatus.FAILURE, (reason) => {
35
+ expect(reason).toEqual(auth.AuthFailureType.NO_COOKIE_ACCESS);
36
+ expect(window.alert).toBeCalledWith('Third party cookie access is blocked on this browser, please allow third party cookies for this to work properly. \nYou can use `suppressNoCookieAccessAlert` to suppress this message.');
37
+ done();
38
+ });
39
+ });
40
+ test('Should add the prefetch iframe when prefetch is called. Should remove it once init is called.', async () => {
41
+ const url = 'https://10.87.90.95/';
42
+ index.init({
43
+ thoughtSpotHost: url,
44
+ authType: index.AuthType.None,
45
+ callPrefetch: true,
46
+ });
47
+ expect((0, test_utils_1.getAllIframeEl)().length).toBe(1);
48
+ const prefetchIframe = document.querySelectorAll('.prefetchIframe');
49
+ expect(prefetchIframe.length).toBe(1);
50
+ const firstIframe = prefetchIframe[0];
51
+ expect(firstIframe.src).toBe(url);
52
+ });
53
+ test('Should add the prefetch iframe when prefetch is called with multiple options', async () => {
54
+ const url = 'https://10.87.90.95/';
55
+ const searchUrl = `${url}v2/#/embed/answer`;
56
+ const liveboardUrl = url;
57
+ index.prefetch(url, [
58
+ index.PrefetchFeatures.SearchEmbed,
59
+ index.PrefetchFeatures.LiveboardEmbed,
60
+ ]);
61
+ expect((0, test_utils_1.getAllIframeEl)().length).toBe(2);
62
+ const prefetchIframe = document.querySelectorAll('.prefetchIframe');
63
+ expect(prefetchIframe.length).toBe(2);
64
+ const firstIframe = prefetchIframe[0];
65
+ expect(firstIframe.src).toBe(searchUrl);
66
+ const secondIframe = prefetchIframe[1];
67
+ expect(secondIframe.src).toBe(liveboardUrl);
68
+ });
69
+ test('Should not generate a prefetch iframe when url is empty string', async () => {
70
+ const url = '';
71
+ index.prefetch(url);
72
+ expect((0, test_utils_1.getAllIframeEl)().length).toBe(0);
73
+ const prefetchIframe = document.querySelectorAll('.prefetchIframe');
74
+ expect(prefetchIframe.length).toBe(0);
75
+ });
76
+ test('Should not call prefetch inside init when callPrefetch is set to false', async () => {
77
+ const prefetch = jest.spyOn(index, 'prefetch');
78
+ index.init({
79
+ thoughtSpotHost,
80
+ authType: index.AuthType.None,
81
+ callPrefetch: false,
82
+ });
83
+ expect(prefetch).toHaveBeenCalledTimes(0);
84
+ });
85
+ test('Sets the disableLoginRedirect param when autoLogin is true', async () => {
86
+ index.init({
87
+ thoughtSpotHost,
88
+ authType: index.AuthType.None,
89
+ autoLogin: true,
90
+ });
91
+ const tsEmbed = new index.AppEmbed((0, test_utils_1.getRootEl)(), {});
92
+ await tsEmbed.render();
93
+ await (0, test_utils_1.executeAfterWait)(() => {
94
+ expect((0, test_utils_1.getIFrameSrc)()).toContain('disableLoginRedirect=true');
95
+ });
96
+ });
97
+ test('handleAuth notifies for SDK auth failure', (done) => {
98
+ jest.spyOn(auth, 'authenticate').mockResolvedValue(false);
99
+ const authEmitter = index.init({
100
+ thoughtSpotHost,
101
+ authType: index.AuthType.Basic,
102
+ username: 'test',
103
+ password: 'test',
104
+ });
105
+ authEmitter.on(auth.AuthStatus.FAILURE, (reason) => {
106
+ expect(reason).toBe(auth.AuthFailureType.SDK);
107
+ done();
108
+ });
109
+ });
110
+ test('handleAuth notifies for SDK auth success', (done) => {
111
+ jest.spyOn(auth, 'authenticate').mockResolvedValue(true);
112
+ const failureCallback = jest.fn();
113
+ const authEmitter = index.init({
114
+ thoughtSpotHost,
115
+ authType: index.AuthType.Basic,
116
+ username: 'test',
117
+ password: 'test',
118
+ });
119
+ authEmitter.on(auth.AuthStatus.FAILURE, failureCallback);
120
+ authEmitter.on(auth.AuthStatus.SDK_SUCCESS, (...args) => {
121
+ expect(failureCallback).not.toBeCalled();
122
+ expect(args.length).toBe(0);
123
+ done();
124
+ });
125
+ });
126
+ test('Logout method should disable autoLogin', () => {
127
+ jest.spyOn(window, 'fetch').mockResolvedValue({
128
+ type: 'opaque',
129
+ });
130
+ index.init({
131
+ thoughtSpotHost,
132
+ authType: index.AuthType.None,
133
+ autoLogin: true,
134
+ });
135
+ index.logout();
136
+ expect(window.fetch).toHaveBeenCalledWith(`http://${thoughtSpotHost}${auth.EndPoints.LOGOUT}`, {
137
+ credentials: 'include',
138
+ headers: {
139
+ 'x-requested-by': 'ThoughtSpot',
140
+ },
141
+ method: 'POST',
142
+ });
143
+ expect(base.getEmbedConfig().autoLogin).toBe(false);
144
+ });
145
+ test('config sanity, no ts host', () => {
146
+ expect(() => {
147
+ index.init({
148
+ authType: index.AuthType.None,
149
+ });
150
+ }).toThrowError();
151
+ });
152
+ test('config sanity, no username in trusted auth', () => {
153
+ expect(() => {
154
+ index.init({
155
+ authType: index.AuthType.TrustedAuthToken,
156
+ thoughtSpotHost,
157
+ });
158
+ }).toThrowError();
159
+ });
160
+ test('config sanity, no authEndpoint and getAuthToken', () => {
161
+ expect(() => {
162
+ index.init({
163
+ authType: index.AuthType.TrustedAuthToken,
164
+ thoughtSpotHost,
165
+ username: 'test',
166
+ });
167
+ }).toThrowError();
168
+ });
169
+ test('config backward compat, should assign inPopup when noRedirect is set', () => {
170
+ index.init({
171
+ authType: index.AuthType.None,
172
+ thoughtSpotHost,
173
+ noRedirect: true,
174
+ });
175
+ expect(base.getEmbedConfig().inPopup).toBe(true);
176
+ });
177
+ test('config backward compat, should not override inPopup with noRedirect', () => {
178
+ index.init({
179
+ authType: index.AuthType.None,
180
+ thoughtSpotHost,
181
+ noRedirect: true,
182
+ inPopup: false,
183
+ });
184
+ expect(base.getEmbedConfig().inPopup).toBe(false);
185
+ });
186
+ });
187
+ describe('Base without init', () => {
188
+ test('notify should error when called without init', () => {
189
+ base.reset();
190
+ jest.spyOn(global.console, 'error').mockImplementation(() => undefined);
191
+ base.notifyAuthSuccess();
192
+ base.notifyAuthFailure(auth.AuthFailureType.SDK);
193
+ base.notifyLogout();
194
+ base.notifyAuthSDKSuccess();
195
+ expect(global.console.error).toHaveBeenCalledTimes(4);
196
+ });
197
+ });
198
+ //# sourceMappingURL=base.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.spec.js","sourceRoot":"","sources":["../../../src/embed/base.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=embed.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embed.spec.d.ts","sourceRoot":"","sources":["../../../src/embed/embed.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const index_1 = require("../index");
4
+ const test_utils_1 = require("../test/test-utils");
5
+ const thoughtSpotHost = 'tshost';
6
+ const defaultViewConfig = {
7
+ frameParams: {
8
+ width: 1280,
9
+ height: 720,
10
+ },
11
+ };
12
+ beforeAll(() => {
13
+ (0, index_1.init)({
14
+ thoughtSpotHost,
15
+ authType: index_1.AuthType.None,
16
+ });
17
+ spyOn(window, 'alert');
18
+ });
19
+ describe('test view config', () => {
20
+ beforeEach(() => {
21
+ document.body.innerHTML = (0, test_utils_1.getDocumentBody)();
22
+ });
23
+ test('should apply width and height to the iframe', async () => {
24
+ const width = 800;
25
+ const height = 600;
26
+ const searchEmbed = new index_1.SearchEmbed((0, test_utils_1.getRootEl)(), {
27
+ ...defaultViewConfig,
28
+ frameParams: {
29
+ width,
30
+ height,
31
+ },
32
+ });
33
+ searchEmbed.render();
34
+ await (0, test_utils_1.executeAfterWait)(() => {
35
+ const iframe = (0, test_utils_1.getIFrameEl)();
36
+ expect(iframe.style.width).toBe(`${width}px`);
37
+ expect(iframe.style.height).toBe(`${height}px`);
38
+ });
39
+ });
40
+ test('trying to register event handler after render should throw error', async () => {
41
+ spyOn(console, 'error');
42
+ const onErrorSpy = jest.fn();
43
+ const searchEmbed = new index_1.SearchEmbed((0, test_utils_1.getRootEl)(), defaultViewConfig);
44
+ searchEmbed
45
+ .on(index_1.EmbedEvent.Error, onErrorSpy)
46
+ .render()
47
+ .on(index_1.EmbedEvent.Load, () => null);
48
+ await (0, test_utils_1.executeAfterWait)(() => {
49
+ expect(onErrorSpy).toHaveBeenCalledWith({
50
+ error: 'Please register event handlers before calling render',
51
+ }, expect.any(Function));
52
+ }, test_utils_1.EVENT_WAIT_TIME);
53
+ });
54
+ });
55
+ describe('Custom CSS Url', () => {
56
+ beforeEach(() => {
57
+ document.body.innerHTML = (0, test_utils_1.getDocumentBody)();
58
+ });
59
+ test('passing customCssUrl should set the correct query params on the iframe', async (done) => {
60
+ (0, index_1.init)({
61
+ thoughtSpotHost,
62
+ authType: index_1.AuthType.None,
63
+ customCssUrl: 'bla.com/foo.css',
64
+ });
65
+ const embed = new index_1.SearchEmbed((0, test_utils_1.getRootEl)(), defaultViewConfig);
66
+ embed.render();
67
+ (0, test_utils_1.executeAfterWait)(() => {
68
+ const iframe = (0, test_utils_1.getIFrameEl)();
69
+ expect(iframe.src.includes('customCssUrl=bla.com/foo.css')).toBe(true);
70
+ done();
71
+ });
72
+ });
73
+ });
74
+ //# sourceMappingURL=embed.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embed.spec.js","sourceRoot":"","sources":["../../../src/embed/embed.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=events.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.spec.d.ts","sourceRoot":"","sources":["../../../src/embed/events.spec.ts"],"names":[],"mappings":""}