@thoughtspot/visual-embed-sdk 1.24.0-sage.3 → 1.24.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 (308) hide show
  1. package/README.md +1 -1
  2. package/cjs/package.json +10 -3
  3. package/cjs/src/auth.d.ts.map +1 -1
  4. package/cjs/src/auth.js +3 -0
  5. package/cjs/src/auth.js.map +1 -1
  6. package/cjs/src/css-variables.d.ts +38 -0
  7. package/cjs/src/css-variables.d.ts.map +1 -1
  8. package/cjs/src/embed/app.d.ts +33 -1
  9. package/cjs/src/embed/app.d.ts.map +1 -1
  10. package/cjs/src/embed/app.js +12 -8
  11. package/cjs/src/embed/app.js.map +1 -1
  12. package/cjs/src/embed/app.spec.js +46 -0
  13. package/cjs/src/embed/app.spec.js.map +1 -1
  14. package/cjs/src/embed/base.d.ts +6 -1
  15. package/cjs/src/embed/base.d.ts.map +1 -1
  16. package/cjs/src/embed/base.js +8 -3
  17. package/cjs/src/embed/base.js.map +1 -1
  18. package/cjs/src/embed/liveboard.d.ts +6 -1
  19. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  20. package/cjs/src/embed/liveboard.js +6 -2
  21. package/cjs/src/embed/liveboard.js.map +1 -1
  22. package/cjs/src/embed/liveboard.spec.js +23 -7
  23. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  24. package/cjs/src/embed/sage.d.ts +1 -0
  25. package/cjs/src/embed/sage.d.ts.map +1 -1
  26. package/cjs/src/embed/sage.js +1 -0
  27. package/cjs/src/embed/sage.js.map +1 -1
  28. package/cjs/src/embed/search-bar.d.ts +7 -0
  29. package/cjs/src/embed/search-bar.d.ts.map +1 -1
  30. package/cjs/src/embed/search-bar.js +6 -2
  31. package/cjs/src/embed/search-bar.js.map +1 -1
  32. package/cjs/src/embed/search.d.ts +16 -2
  33. package/cjs/src/embed/search.d.ts.map +1 -1
  34. package/cjs/src/embed/search.js +9 -2
  35. package/cjs/src/embed/search.js.map +1 -1
  36. package/cjs/src/embed/search.spec.js +49 -0
  37. package/cjs/src/embed/search.spec.js.map +1 -1
  38. package/cjs/src/embed/ts-embed.d.ts +4 -1
  39. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  40. package/cjs/src/embed/ts-embed.js +31 -8
  41. package/cjs/src/embed/ts-embed.js.map +1 -1
  42. package/cjs/src/embed/ts-embed.spec.js +186 -3
  43. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  44. package/cjs/src/index.d.ts +4 -3
  45. package/cjs/src/index.d.ts.map +1 -1
  46. package/cjs/src/index.js +5 -1
  47. package/cjs/src/index.js.map +1 -1
  48. package/cjs/src/mixpanel-service.d.ts +1 -0
  49. package/cjs/src/mixpanel-service.d.ts.map +1 -1
  50. package/cjs/src/mixpanel-service.js +12 -3
  51. package/cjs/src/mixpanel-service.js.map +1 -1
  52. package/cjs/src/mixpanel-service.spec.js +13 -3
  53. package/cjs/src/mixpanel-service.spec.js.map +1 -1
  54. package/cjs/src/react/index.d.ts +15 -15
  55. package/cjs/src/react/index.d.ts.map +1 -1
  56. package/cjs/src/react/index.js +7 -3
  57. package/cjs/src/react/index.js.map +1 -1
  58. package/cjs/src/react/index.spec.js +12 -0
  59. package/cjs/src/react/index.spec.js.map +1 -1
  60. package/cjs/src/types.d.ts +216 -21
  61. package/cjs/src/types.d.ts.map +1 -1
  62. package/cjs/src/types.js +133 -13
  63. package/cjs/src/types.js.map +1 -1
  64. package/cjs/src/utils/answerService/answerService.d.ts +34 -0
  65. package/cjs/src/utils/answerService/answerService.d.ts.map +1 -0
  66. package/cjs/src/utils/answerService/answerService.js +142 -0
  67. package/cjs/src/utils/answerService/answerService.js.map +1 -0
  68. package/cjs/src/utils/answerService/answerService.spec.d.ts +1 -0
  69. package/cjs/src/utils/answerService/answerService.spec.d.ts.map +1 -0
  70. package/cjs/src/utils/answerService/answerService.spec.js +1 -0
  71. package/cjs/src/utils/answerService/answerService.spec.js.map +1 -0
  72. package/cjs/src/utils/answerService/graphql-queries.d.ts +6 -0
  73. package/cjs/src/utils/answerService/graphql-queries.d.ts.map +1 -0
  74. package/cjs/src/utils/answerService/graphql-queries.js +123 -0
  75. package/cjs/src/utils/answerService/graphql-queries.js.map +1 -0
  76. package/cjs/src/utils/graphql/answerService/answer-queries.d.ts +5 -0
  77. package/cjs/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -0
  78. package/cjs/src/utils/graphql/answerService/answer-queries.js +80 -0
  79. package/cjs/src/utils/graphql/answerService/answer-queries.js.map +1 -0
  80. package/cjs/src/utils/graphql/answerService/answerService.d.ts +61 -0
  81. package/cjs/src/utils/graphql/answerService/answerService.d.ts.map +1 -0
  82. package/cjs/src/utils/graphql/answerService/answerService.js +182 -0
  83. package/cjs/src/utils/graphql/answerService/answerService.js.map +1 -0
  84. package/cjs/src/utils/graphql/answerService/answerService.spec.d.ts +2 -0
  85. package/cjs/src/utils/graphql/answerService/answerService.spec.d.ts.map +1 -0
  86. package/cjs/src/utils/graphql/answerService/answerService.spec.js +201 -0
  87. package/cjs/src/utils/graphql/answerService/answerService.spec.js.map +1 -0
  88. package/cjs/src/utils/graphql/answerService/graphql-queries.d.ts +5 -0
  89. package/cjs/src/utils/graphql/answerService/graphql-queries.d.ts.map +1 -0
  90. package/cjs/src/utils/graphql/answerService/graphql-queries.js +80 -0
  91. package/cjs/src/utils/graphql/answerService/graphql-queries.js.map +1 -0
  92. package/cjs/src/utils/graphql/graphql-request.d.ts +15 -0
  93. package/cjs/src/utils/graphql/graphql-request.d.ts.map +1 -0
  94. package/cjs/src/utils/graphql/graphql-request.js +40 -0
  95. package/cjs/src/utils/graphql/graphql-request.js.map +1 -0
  96. package/cjs/src/utils/graphql/sourceService.d.ts +8 -0
  97. package/cjs/src/utils/graphql/sourceService.d.ts.map +1 -0
  98. package/cjs/src/utils/graphql/sourceService.js +69 -0
  99. package/cjs/src/utils/graphql/sourceService.js.map +1 -0
  100. package/cjs/src/utils/graphql/sourceService.spec.d.ts +2 -0
  101. package/cjs/src/utils/graphql/sourceService.spec.d.ts.map +1 -0
  102. package/cjs/src/utils/graphql/sourceService.spec.js +12 -0
  103. package/cjs/src/utils/graphql/sourceService.spec.js.map +1 -0
  104. package/cjs/src/utils/processData.d.ts.map +1 -1
  105. package/cjs/src/utils/processData.js +7 -11
  106. package/cjs/src/utils/processData.js.map +1 -1
  107. package/cjs/src/utils/processData.spec.js +13 -17
  108. package/cjs/src/utils/processData.spec.js.map +1 -1
  109. package/cjs/src/utils.d.ts +13 -1
  110. package/cjs/src/utils.d.ts.map +1 -1
  111. package/cjs/src/utils.js +45 -1
  112. package/cjs/src/utils.js.map +1 -1
  113. package/cjs/src/utils.spec.js +24 -0
  114. package/cjs/src/utils.spec.js.map +1 -1
  115. package/dist/src/auth.d.ts.map +1 -1
  116. package/dist/src/css-variables.d.ts +38 -0
  117. package/dist/src/css-variables.d.ts.map +1 -1
  118. package/dist/src/embed/app.d.ts +33 -1
  119. package/dist/src/embed/app.d.ts.map +1 -1
  120. package/dist/src/embed/base.d.ts +6 -1
  121. package/dist/src/embed/base.d.ts.map +1 -1
  122. package/dist/src/embed/liveboard.d.ts +6 -1
  123. package/dist/src/embed/liveboard.d.ts.map +1 -1
  124. package/dist/src/embed/sage.d.ts +1 -0
  125. package/dist/src/embed/sage.d.ts.map +1 -1
  126. package/dist/src/embed/search-bar.d.ts +7 -0
  127. package/dist/src/embed/search-bar.d.ts.map +1 -1
  128. package/dist/src/embed/search.d.ts +16 -2
  129. package/dist/src/embed/search.d.ts.map +1 -1
  130. package/dist/src/embed/ts-embed.d.ts +4 -1
  131. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  132. package/dist/src/index.d.ts +4 -3
  133. package/dist/src/index.d.ts.map +1 -1
  134. package/dist/src/mixpanel-service.d.ts +1 -0
  135. package/dist/src/mixpanel-service.d.ts.map +1 -1
  136. package/dist/src/react/index.d.ts +15 -15
  137. package/dist/src/react/index.d.ts.map +1 -1
  138. package/dist/src/types.d.ts +216 -21
  139. package/dist/src/types.d.ts.map +1 -1
  140. package/dist/src/utils/graphql/answerService/answer-queries.d.ts +5 -0
  141. package/dist/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -0
  142. package/dist/src/utils/graphql/answerService/answerService.d.ts +61 -0
  143. package/dist/src/utils/graphql/answerService/answerService.d.ts.map +1 -0
  144. package/dist/src/utils/graphql/answerService/answerService.spec.d.ts +2 -0
  145. package/dist/src/utils/graphql/answerService/answerService.spec.d.ts.map +1 -0
  146. package/dist/src/utils/graphql/graphql-request.d.ts +15 -0
  147. package/dist/src/utils/graphql/graphql-request.d.ts.map +1 -0
  148. package/dist/src/utils/graphql/sourceService.d.ts +8 -0
  149. package/dist/src/utils/graphql/sourceService.d.ts.map +1 -0
  150. package/dist/src/utils/graphql/sourceService.spec.d.ts +2 -0
  151. package/dist/src/utils/graphql/sourceService.spec.d.ts.map +1 -0
  152. package/dist/src/utils/processData.d.ts.map +1 -1
  153. package/dist/src/utils.d.ts +13 -1
  154. package/dist/src/utils.d.ts.map +1 -1
  155. package/dist/tsembed-react.es.js +603 -96
  156. package/dist/tsembed-react.js +596 -95
  157. package/dist/tsembed.es.js +655 -100
  158. package/dist/tsembed.js +649 -99
  159. package/dist/visual-embed-sdk-react-full.d.ts +615 -260
  160. package/dist/visual-embed-sdk-react.d.ts +617 -262
  161. package/dist/visual-embed-sdk.d.ts +380 -26
  162. package/lib/package.json +10 -3
  163. package/lib/src/.index.d.ts.swp +0 -0
  164. package/lib/src/auth.d.ts.map +1 -1
  165. package/lib/src/auth.js +3 -0
  166. package/lib/src/auth.js.map +1 -1
  167. package/lib/src/css-variables.d.ts +38 -0
  168. package/lib/src/css-variables.d.ts.map +1 -1
  169. package/lib/src/embed/app.d.ts +33 -1
  170. package/lib/src/embed/app.d.ts.map +1 -1
  171. package/lib/src/embed/app.js +12 -8
  172. package/lib/src/embed/app.js.map +1 -1
  173. package/lib/src/embed/app.spec.js +46 -0
  174. package/lib/src/embed/app.spec.js.map +1 -1
  175. package/lib/src/embed/base.d.ts +6 -1
  176. package/lib/src/embed/base.d.ts.map +1 -1
  177. package/lib/src/embed/base.js +8 -3
  178. package/lib/src/embed/base.js.map +1 -1
  179. package/lib/src/embed/liveboard.d.ts +6 -1
  180. package/lib/src/embed/liveboard.d.ts.map +1 -1
  181. package/lib/src/embed/liveboard.js +7 -3
  182. package/lib/src/embed/liveboard.js.map +1 -1
  183. package/lib/src/embed/liveboard.spec.js +23 -7
  184. package/lib/src/embed/liveboard.spec.js.map +1 -1
  185. package/lib/src/embed/sage.d.ts +1 -0
  186. package/lib/src/embed/sage.d.ts.map +1 -1
  187. package/lib/src/embed/sage.js +1 -0
  188. package/lib/src/embed/sage.js.map +1 -1
  189. package/lib/src/embed/search-bar.d.ts +7 -0
  190. package/lib/src/embed/search-bar.d.ts.map +1 -1
  191. package/lib/src/embed/search-bar.js +7 -3
  192. package/lib/src/embed/search-bar.js.map +1 -1
  193. package/lib/src/embed/search.d.ts +16 -2
  194. package/lib/src/embed/search.d.ts.map +1 -1
  195. package/lib/src/embed/search.js +10 -3
  196. package/lib/src/embed/search.js.map +1 -1
  197. package/lib/src/embed/search.spec.js +49 -0
  198. package/lib/src/embed/search.spec.js.map +1 -1
  199. package/lib/src/embed/ts-embed.d.ts +4 -1
  200. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  201. package/lib/src/embed/ts-embed.js +32 -9
  202. package/lib/src/embed/ts-embed.js.map +1 -1
  203. package/lib/src/embed/ts-embed.spec.js +187 -4
  204. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  205. package/lib/src/index.d.ts +4 -3
  206. package/lib/src/index.d.ts.map +1 -1
  207. package/lib/src/index.js +4 -3
  208. package/lib/src/index.js.map +1 -1
  209. package/lib/src/mixpanel-service.d.ts +1 -0
  210. package/lib/src/mixpanel-service.d.ts.map +1 -1
  211. package/lib/src/mixpanel-service.js +12 -3
  212. package/lib/src/mixpanel-service.js.map +1 -1
  213. package/lib/src/mixpanel-service.spec.js +13 -3
  214. package/lib/src/mixpanel-service.spec.js.map +1 -1
  215. package/lib/src/react/index.d.ts +15 -15
  216. package/lib/src/react/index.d.ts.map +1 -1
  217. package/lib/src/react/index.js +5 -3
  218. package/lib/src/react/index.js.map +1 -1
  219. package/lib/src/react/index.spec.js +13 -1
  220. package/lib/src/react/index.spec.js.map +1 -1
  221. package/lib/src/types.d.ts +216 -21
  222. package/lib/src/types.d.ts.map +1 -1
  223. package/lib/src/types.js +132 -12
  224. package/lib/src/types.js.map +1 -1
  225. package/lib/src/utils/answerService/answerService.d.ts +34 -0
  226. package/lib/src/utils/answerService/answerService.d.ts.map +1 -0
  227. package/lib/src/utils/answerService/answerService.js +137 -0
  228. package/lib/src/utils/answerService/answerService.js.map +1 -0
  229. package/lib/src/utils/answerService/answerService.spec.d.ts +1 -0
  230. package/lib/src/utils/answerService/answerService.spec.d.ts.map +1 -0
  231. package/lib/src/utils/answerService/answerService.spec.js +1 -0
  232. package/lib/src/utils/answerService/answerService.spec.js.map +1 -0
  233. package/lib/src/utils/answerService/graphql-queries.d.ts +6 -0
  234. package/lib/src/utils/answerService/graphql-queries.d.ts.map +1 -0
  235. package/lib/src/utils/answerService/graphql-queries.js +120 -0
  236. package/lib/src/utils/answerService/graphql-queries.js.map +1 -0
  237. package/lib/src/utils/graphql/answerService/answer-queries.d.ts +5 -0
  238. package/lib/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -0
  239. package/lib/src/utils/graphql/answerService/answer-queries.js +77 -0
  240. package/lib/src/utils/graphql/answerService/answer-queries.js.map +1 -0
  241. package/lib/src/utils/graphql/answerService/answerService.d.ts +61 -0
  242. package/lib/src/utils/graphql/answerService/answerService.d.ts.map +1 -0
  243. package/lib/src/utils/graphql/answerService/answerService.js +177 -0
  244. package/lib/src/utils/graphql/answerService/answerService.js.map +1 -0
  245. package/lib/src/utils/graphql/answerService/answerService.spec.d.ts +2 -0
  246. package/lib/src/utils/graphql/answerService/answerService.spec.d.ts.map +1 -0
  247. package/lib/src/utils/graphql/answerService/answerService.spec.js +199 -0
  248. package/lib/src/utils/graphql/answerService/answerService.spec.js.map +1 -0
  249. package/lib/src/utils/graphql/answerService/graphql-queries.d.ts +5 -0
  250. package/lib/src/utils/graphql/answerService/graphql-queries.d.ts.map +1 -0
  251. package/lib/src/utils/graphql/answerService/graphql-queries.js +77 -0
  252. package/lib/src/utils/graphql/answerService/graphql-queries.js.map +1 -0
  253. package/lib/src/utils/graphql/graphql-request.d.ts +15 -0
  254. package/lib/src/utils/graphql/graphql-request.d.ts.map +1 -0
  255. package/lib/src/utils/graphql/graphql-request.js +36 -0
  256. package/lib/src/utils/graphql/graphql-request.js.map +1 -0
  257. package/lib/src/utils/graphql/sourceService.d.ts +8 -0
  258. package/lib/src/utils/graphql/sourceService.d.ts.map +1 -0
  259. package/lib/src/utils/graphql/sourceService.js +65 -0
  260. package/lib/src/utils/graphql/sourceService.js.map +1 -0
  261. package/lib/src/utils/graphql/sourceService.spec.d.ts +2 -0
  262. package/lib/src/utils/graphql/sourceService.spec.d.ts.map +1 -0
  263. package/lib/src/utils/graphql/sourceService.spec.js +10 -0
  264. package/lib/src/utils/graphql/sourceService.spec.js.map +1 -0
  265. package/lib/src/utils/processData.d.ts.map +1 -1
  266. package/lib/src/utils/processData.js +8 -12
  267. package/lib/src/utils/processData.js.map +1 -1
  268. package/lib/src/utils/processData.spec.js +14 -18
  269. package/lib/src/utils/processData.spec.js.map +1 -1
  270. package/lib/src/utils.d.ts +13 -1
  271. package/lib/src/utils.d.ts.map +1 -1
  272. package/lib/src/utils.js +41 -0
  273. package/lib/src/utils.js.map +1 -1
  274. package/lib/src/utils.spec.js +25 -1
  275. package/lib/src/utils.spec.js.map +1 -1
  276. package/lib/src/visual-embed-sdk.d.ts +389 -30
  277. package/package.json +10 -3
  278. package/src/auth.ts +6 -3
  279. package/src/css-variables.ts +47 -0
  280. package/src/embed/app.spec.ts +63 -0
  281. package/src/embed/app.ts +52 -15
  282. package/src/embed/base.ts +11 -6
  283. package/src/embed/liveboard.spec.ts +29 -10
  284. package/src/embed/liveboard.ts +13 -2
  285. package/src/embed/sage.ts +2 -0
  286. package/src/embed/search-bar.tsx +21 -6
  287. package/src/embed/search.spec.ts +61 -0
  288. package/src/embed/search.ts +36 -3
  289. package/src/embed/ts-embed.spec.ts +211 -8
  290. package/src/embed/ts-embed.ts +34 -9
  291. package/src/index.ts +9 -0
  292. package/src/mixpanel-service.spec.ts +13 -3
  293. package/src/mixpanel-service.ts +11 -3
  294. package/src/react/index.spec.tsx +33 -2
  295. package/src/react/index.tsx +37 -26
  296. package/src/types.ts +305 -103
  297. package/src/utils/graphql/answerService/answer-queries.ts +80 -0
  298. package/src/utils/graphql/answerService/answerService.spec.ts +231 -0
  299. package/src/utils/graphql/answerService/answerService.ts +234 -0
  300. package/src/utils/graphql/graphql-request.ts +45 -0
  301. package/src/utils/graphql/sourceService.spec.ts +10 -0
  302. package/src/utils/graphql/sourceService.ts +71 -0
  303. package/src/utils/processData.spec.ts +15 -25
  304. package/src/utils/processData.ts +13 -15
  305. package/src/utils.spec.ts +31 -0
  306. package/src/utils.ts +47 -0
  307. package/src/utils/answerService.spec.ts +0 -41
  308. package/src/utils/answerService.ts +0 -63
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AnswerService = exports.OperationType = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const utils_1 = require("../../../utils");
6
+ const graphql_request_1 = require("../graphql-request");
7
+ const sourceService_1 = require("../sourceService");
8
+ const queries = tslib_1.__importStar(require("./answer-queries"));
9
+ // eslint-disable-next-line no-shadow
10
+ var OperationType;
11
+ (function (OperationType) {
12
+ OperationType["GetChartWithData"] = "GetChartWithData";
13
+ OperationType["GetTableWithHeadlineData"] = "GetTableWithHeadlineData";
14
+ })(OperationType = exports.OperationType || (exports.OperationType = {}));
15
+ /**
16
+ * Class representing the answer service provided with the
17
+ * custom action payload. This service could be used to run
18
+ * graphql queries in the context of the answer on which the
19
+ * custom action was triggered.
20
+ *
21
+ * @example
22
+ * ```js
23
+ * embed.on(EmbedEvent.CustomAction, e => {
24
+ * const underlying = await e.answerService.getUnderlyingDataForPoint([
25
+ * 'col name 1'
26
+ * ]);
27
+ * const data = await underlying.fetchData(0, 100);
28
+ * })
29
+ * ```
30
+ * @version
31
+ * ThoughtSpot: 9.9.0.cl / SDK: 1.25.0
32
+ */
33
+ class AnswerService {
34
+ constructor(session, answer, thoughtSpotHost, selectedPoints) {
35
+ this.session = session;
36
+ this.answer = answer;
37
+ this.thoughtSpotHost = thoughtSpotHost;
38
+ this.selectedPoints = selectedPoints;
39
+ this.session = (0, utils_1.removeTypename)(session);
40
+ }
41
+ async getSourceDetail() {
42
+ const sourceId = this.answer.sources[0].header.guid;
43
+ return (0, sourceService_1.getSourceDetail)(this.thoughtSpotHost, sourceId);
44
+ }
45
+ async removeColumns(columnIds) {
46
+ return this.executeQuery(queries.removeColumns, {
47
+ logicalColumnIds: columnIds,
48
+ });
49
+ }
50
+ async addColumns(columnIds) {
51
+ return this.executeQuery(queries.addColumns, {
52
+ columns: columnIds.map((colId) => ({ logicalColumnId: colId })),
53
+ });
54
+ }
55
+ async fetchData(offset = 0, size = 1000) {
56
+ const { answer } = await this.executeQuery(queries.getAnswerData, {
57
+ deadline: 0,
58
+ dataPaginationParams: {
59
+ isClientPaginated: true,
60
+ offset,
61
+ size,
62
+ },
63
+ });
64
+ const { columns, data } = answer.visualizations[0];
65
+ return {
66
+ columns,
67
+ data,
68
+ };
69
+ }
70
+ /**
71
+ *
72
+ * @param userLocale
73
+ * @param omitInfo Omit the download Info on top of the CSV
74
+ * @returns Response
75
+ */
76
+ async fetchCSVBlob(userLocale = 'en-us', omitInfo = false) {
77
+ if (omitInfo) {
78
+ console.warn('omitInfo not supported yet.');
79
+ }
80
+ const fetchUrl = `${this.thoughtSpotHost}/prism/download/answer/csv?sessionId=${this.session.sessionId}&genNo=${this.session.genNo}&userLocale=${userLocale}&exportFileName=data&omitInfo=${omitInfo}`;
81
+ return fetch(fetchUrl, {
82
+ credentials: 'include',
83
+ });
84
+ }
85
+ async getUnderlyingDataForPoint(outputColumnNames, selectedPoints) {
86
+ if (!selectedPoints && !this.selectedPoints) {
87
+ throw new Error('Needs to be triggered in context of a point');
88
+ }
89
+ if (!selectedPoints) {
90
+ selectedPoints = getSelectedPointsForUnderlyingDataQuery(this.selectedPoints);
91
+ }
92
+ const sourceDetail = await this.getSourceDetail();
93
+ const ouputColumnGuids = getGuidsFromColumnNames(sourceDetail, outputColumnNames);
94
+ const unAggAnswer = await (0, graphql_request_1.graphqlQuery)({
95
+ query: queries.getUnaggregatedAnswerSession,
96
+ variables: {
97
+ session: this.session,
98
+ columns: selectedPoints,
99
+ },
100
+ thoughtSpotHost: this.thoughtSpotHost,
101
+ });
102
+ const unaggAnswerSession = new AnswerService(unAggAnswer.id, unAggAnswer.answer, this.thoughtSpotHost);
103
+ const currentColumns = new Set(unAggAnswer.answer.visualizations[0].columns
104
+ .map((c) => c.column.referencedColumns[0].guid));
105
+ const columnsToAdd = [...ouputColumnGuids].filter((col) => !currentColumns.has(col));
106
+ if (columnsToAdd.length) {
107
+ await unaggAnswerSession.addColumns(columnsToAdd);
108
+ }
109
+ const columnsToRemove = [...currentColumns].filter((col) => !ouputColumnGuids.has(col));
110
+ if (columnsToRemove.length) {
111
+ await unaggAnswerSession.removeColumns(columnsToRemove);
112
+ }
113
+ return unaggAnswerSession;
114
+ }
115
+ async executeQuery(query, variables) {
116
+ const data = await (0, graphql_request_1.graphqlQuery)({
117
+ query,
118
+ variables: {
119
+ session: this.session,
120
+ ...variables,
121
+ },
122
+ thoughtSpotHost: this.thoughtSpotHost,
123
+ isCompositeQuery: false,
124
+ });
125
+ this.session = (0, utils_1.deepMerge)(this.session, (data === null || data === void 0 ? void 0 : data.id) || {});
126
+ return data;
127
+ }
128
+ getSession() {
129
+ return this.session;
130
+ }
131
+ }
132
+ exports.AnswerService = AnswerService;
133
+ /**
134
+ *
135
+ * @param sourceDetail
136
+ * @param colNames
137
+ */
138
+ function getGuidsFromColumnNames(sourceDetail, colNames) {
139
+ const cols = sourceDetail.columns.reduce((colSet, col) => {
140
+ colSet[col.name] = col;
141
+ return colSet;
142
+ }, {});
143
+ return new Set(colNames.map((colName) => {
144
+ const col = cols[colName];
145
+ return col.id;
146
+ }));
147
+ }
148
+ /**
149
+ *
150
+ * @param selectedPoints
151
+ */
152
+ function getSelectedPointsForUnderlyingDataQuery(selectedPoints) {
153
+ const underlyingDataPoint = [];
154
+ /**
155
+ *
156
+ * @param colVal
157
+ */
158
+ function addPointFromColVal(colVal) {
159
+ const dataType = colVal.column.dataType;
160
+ const id = colVal.column.id;
161
+ let dataValue;
162
+ if (dataType === 'DATE') {
163
+ dataValue = [{
164
+ epochRange: {
165
+ startEpoch: colVal.value,
166
+ },
167
+ }];
168
+ }
169
+ else {
170
+ dataValue = [{ value: colVal.value }];
171
+ }
172
+ underlyingDataPoint.push({
173
+ columnId: colVal.column.id,
174
+ dataValue,
175
+ });
176
+ }
177
+ selectedPoints.forEach((p) => {
178
+ p.selectedAttributes.forEach(addPointFromColVal);
179
+ });
180
+ return underlyingDataPoint;
181
+ }
182
+ //# sourceMappingURL=answerService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answerService.js","sourceRoot":"","sources":["../../../../../src/utils/graphql/answerService/answerService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import 'jest-fetch-mock';
2
+ //# sourceMappingURL=answerService.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answerService.spec.d.ts","sourceRoot":"","sources":["../../../../../src/utils/graphql/answerService/answerService.spec.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,CAAC"}
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("jest-fetch-mock");
4
+ const answerService_1 = require("./answerService");
5
+ const answer_queries_1 = require("./answer-queries");
6
+ const defaultSession = {
7
+ sessionId: 'id',
8
+ genNo: 1,
9
+ acSession: {
10
+ sessionId: 'ac',
11
+ genNo: 0,
12
+ },
13
+ };
14
+ /**
15
+ *
16
+ * @param answer
17
+ * @param point
18
+ */
19
+ function createAnswerService(answer = {}, point) {
20
+ return new answerService_1.AnswerService(defaultSession, answer, 'https://tshost', point);
21
+ }
22
+ describe('Answer service tests', () => {
23
+ beforeEach(() => {
24
+ fetchMock.resetMocks();
25
+ });
26
+ test('Execute query should execute the supplied graphql on the session', async () => {
27
+ fetchMock.mockResponseOnce(JSON.stringify({
28
+ data: {
29
+ Bla: {
30
+ id: {},
31
+ },
32
+ },
33
+ }));
34
+ const answerService = createAnswerService();
35
+ answerService.executeQuery('query Bla {}', { a: 1 });
36
+ expect(fetchMock).toBeCalledWith('https://tshost/prism/?op=Bla', expect.objectContaining({
37
+ body: JSON.stringify({
38
+ operationName: 'Bla',
39
+ query: 'query Bla {}',
40
+ variables: {
41
+ session: defaultSession,
42
+ a: 1,
43
+ },
44
+ }),
45
+ }));
46
+ });
47
+ test('Should return error when failure', async () => {
48
+ fetchMock.mockRejectOnce(new Error('testError'));
49
+ const answerService = createAnswerService();
50
+ const data = await answerService.executeQuery('query Bla {}', { a: 1 });
51
+ expect(data.message).toBe('testError');
52
+ });
53
+ test('fetchData should call the right graphql, and return data', async () => {
54
+ fetchMock.mockResponseOnce(JSON.stringify({
55
+ data: {
56
+ getAnswer: {
57
+ id: {},
58
+ answer: {
59
+ visualizations: [{
60
+ columns: [{
61
+ column: {
62
+ id: 'id1',
63
+ },
64
+ }],
65
+ data: {
66
+ foo: 1,
67
+ },
68
+ }],
69
+ },
70
+ },
71
+ },
72
+ }));
73
+ const answerService = createAnswerService();
74
+ const data = await answerService.fetchData(20, 10);
75
+ expect(fetchMock).toHaveBeenCalledWith('https://tshost/prism/?op=GetTableWithHeadlineData', expect.objectContaining({
76
+ body: JSON.stringify({
77
+ operationName: 'GetTableWithHeadlineData',
78
+ query: answer_queries_1.getAnswerData,
79
+ variables: {
80
+ session: defaultSession,
81
+ deadline: 0,
82
+ dataPaginationParams: {
83
+ isClientPaginated: true,
84
+ offset: 20,
85
+ size: 10,
86
+ },
87
+ },
88
+ }),
89
+ }));
90
+ expect(data.columns[0].column.id).toBe('id1');
91
+ expect(data.data.foo).toBe(1);
92
+ });
93
+ test('fetchCSVBlob should call the right API', async () => {
94
+ fetchMock.once('Bla');
95
+ const answerService = createAnswerService();
96
+ answerService.fetchCSVBlob(undefined, true);
97
+ expect(fetchMock).toHaveBeenCalledWith(`https://tshost/prism/download/answer/csv?sessionId=${defaultSession.sessionId}&genNo=${defaultSession.genNo}&userLocale=en-us&exportFileName=data&omitInfo=true`, expect.objectContaining({}));
98
+ });
99
+ test('getUnderlyingDataForPoint should call the right APIs', async () => {
100
+ fetchMock.mockResponses(JSON.stringify({
101
+ data: {
102
+ getSourceDetailById: [{
103
+ columns: [{
104
+ id: 'id1',
105
+ name: 'col1',
106
+ }, {
107
+ id: 'id2',
108
+ name: 'col2',
109
+ }, {
110
+ id: 'id3',
111
+ name: 'col3',
112
+ }],
113
+ }],
114
+ },
115
+ }), JSON.stringify({
116
+ data: {
117
+ Answer__getUnaggregatedAnswer: {
118
+ id: {
119
+ ...defaultSession,
120
+ },
121
+ answer: {
122
+ visualizations: [{
123
+ columns: [{
124
+ column: {
125
+ id: 'oid1',
126
+ name: 'col1',
127
+ referencedColumns: [{
128
+ guid: 'id1',
129
+ }],
130
+ },
131
+ }],
132
+ }],
133
+ },
134
+ },
135
+ },
136
+ }), JSON.stringify({
137
+ data: {
138
+ Answer__addColumn: {
139
+ id: {
140
+ genNo: 2,
141
+ },
142
+ },
143
+ },
144
+ }), JSON.stringify({
145
+ data: {
146
+ Answer__removeColumns: {
147
+ id: {
148
+ genNo: 3,
149
+ },
150
+ },
151
+ },
152
+ }));
153
+ const answerService = createAnswerService({
154
+ sources: [{
155
+ header: {
156
+ guid: 'source1',
157
+ },
158
+ }],
159
+ }, [{
160
+ selectedAttributes: [{
161
+ column: {
162
+ id: 'oid1',
163
+ name: 'col1',
164
+ dataType: 'CHAR',
165
+ },
166
+ value: '1',
167
+ }, {
168
+ column: {
169
+ id: 'oid3',
170
+ name: 'col3',
171
+ dataType: 'DATE',
172
+ },
173
+ value: 12345,
174
+ }],
175
+ selectedMeasures: [],
176
+ }]);
177
+ const underlying = await answerService.getUnderlyingDataForPoint(['col2']);
178
+ expect(fetchMock).toHaveBeenCalledTimes(4);
179
+ expect(underlying.getSession().genNo).toBe(3);
180
+ expect(fetchMock).toHaveBeenCalledWith('https://tshost/prism/?op=RemoveColumns', expect.objectContaining({
181
+ body: JSON.stringify({
182
+ operationName: 'RemoveColumns',
183
+ query: answer_queries_1.removeColumns,
184
+ variables: {
185
+ session: {
186
+ ...defaultSession,
187
+ genNo: 2,
188
+ },
189
+ logicalColumnIds: [
190
+ 'id1',
191
+ ],
192
+ },
193
+ }),
194
+ }));
195
+ });
196
+ test('getUnderlyingDataForPoint should throw when no point is selected', async () => {
197
+ const answerService = createAnswerService({}, null);
198
+ await expect(answerService.getUnderlyingDataForPoint(['col2'])).rejects.toThrow();
199
+ });
200
+ });
201
+ //# sourceMappingURL=answerService.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answerService.spec.js","sourceRoot":"","sources":["../../../../../src/utils/graphql/answerService/answerService.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare const getUnaggregatedAnswerSession: string;
2
+ export declare const removeColumns: string;
3
+ export declare const addColumns: string;
4
+ export declare const getAnswerData: string;
5
+ //# sourceMappingURL=graphql-queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-queries.d.ts","sourceRoot":"","sources":["../../../../../src/utils/graphql/answerService/graphql-queries.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,4BAA4B,QAsBxC,CAAC;AAEF,eAAO,MAAM,aAAa,QAUrB,CAAC;AAEN,eAAO,MAAM,UAAU,QAMlB,CAAC;AAEN,eAAO,MAAM,aAAa,QAwBzB,CAAC"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAnswerData = exports.addColumns = exports.removeColumns = exports.getUnaggregatedAnswerSession = void 0;
4
+ const bachSessionId = `
5
+ id {
6
+ sessionId
7
+ genNo
8
+ acSession {
9
+ sessionId
10
+ genNo
11
+ }
12
+ }
13
+ `;
14
+ exports.getUnaggregatedAnswerSession = `
15
+ mutation GetUnAggregatedAnswerSession($session: BachSessionIdInput!, $columns: [UserPointSelectionInput!]!) {
16
+ Answer__getUnaggregatedAnswer(session: $session, columns: $columns) {
17
+ ${bachSessionId}
18
+ answer {
19
+ visualizations {
20
+ ... on TableViz {
21
+ columns {
22
+ column {
23
+ id
24
+ name
25
+ referencedColumns {
26
+ guid
27
+ displayName
28
+ }
29
+ }
30
+ }
31
+ }
32
+ }
33
+ }
34
+ }
35
+ }
36
+ `;
37
+ exports.removeColumns = `
38
+ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!], $columnIds: [GUID!]) {
39
+ Answer__removeColumns(
40
+ session: $session
41
+ logicalColumnIds: $logicalColumnIds
42
+ columnIds: $columnIds
43
+ ) {
44
+ ${bachSessionId}
45
+ }
46
+ }
47
+ `;
48
+ exports.addColumns = `
49
+ mutation AddColumns($session: BachSessionIdInput!, $columns: [AnswerColumnInfo!]!) {
50
+ Answer__addColumn(session: $session, columns: $columns) {
51
+ ${bachSessionId}
52
+ }
53
+ }
54
+ `;
55
+ exports.getAnswerData = `
56
+ query GetTableWithHeadlineData($session: BachSessionIdInput!, $deadline: Int!, $dataPaginationParams: DataPaginationParamsInput!) {
57
+ getAnswer(session: $session) {
58
+ ${bachSessionId}
59
+ answer {
60
+ id
61
+ visualizations {
62
+ id
63
+ ... on TableViz {
64
+ columns {
65
+ column {
66
+ id
67
+ name
68
+ type
69
+ aggregationType
70
+ dataType
71
+ }
72
+ }
73
+ data(deadline: $deadline, pagination: $dataPaginationParams)
74
+ }
75
+ }
76
+ }
77
+ }
78
+ }
79
+ `;
80
+ //# sourceMappingURL=graphql-queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-queries.js","sourceRoot":"","sources":["../../../../../src/utils/graphql/answerService/graphql-queries.ts"],"names":[],"mappings":";;;AAAA,MAAM,aAAa,GAAG;;;;;;;;;CASrB,CAAC;AAEW,QAAA,4BAA4B,GAAG;;;UAGlC,aAAa;;;;;;;;;;;;;;;;;;;CAmBtB,CAAC;AAEW,QAAA,aAAa,GAAG;;;;;;;cAOf,aAAa;;;KAGtB,CAAC;AAEO,QAAA,UAAU,GAAG;;;cAGZ,aAAa;;;KAGtB,CAAC;AAEO,QAAA,aAAa,GAAG;;;cAGf,aAAa;;;;;;;;;;;;;;;;;;;;;CAqB1B,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ *
3
+ * @param root0
4
+ * @param root0.query
5
+ * @param root0.variables
6
+ * @param root0.thoughtSpotHost
7
+ * @param root0.isCompositeQuery
8
+ */
9
+ export declare function graphqlQuery({ query, variables, thoughtSpotHost, isCompositeQuery, }: {
10
+ query: string;
11
+ variables: any;
12
+ thoughtSpotHost: string;
13
+ isCompositeQuery?: boolean;
14
+ }): Promise<any>;
15
+ //# sourceMappingURL=graphql-request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-request.d.ts","sourceRoot":"","sources":["../../../../src/utils/graphql/graphql-request.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,EAC/B,KAAK,EACL,SAAS,EACT,eAAe,EACf,gBAAwB,GAC3B,EAAE;IACC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,GAAG,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC7B,gBAwBA"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.graphqlQuery = void 0;
4
+ const utils_1 = require("../../utils");
5
+ /**
6
+ *
7
+ * @param root0
8
+ * @param root0.query
9
+ * @param root0.variables
10
+ * @param root0.thoughtSpotHost
11
+ * @param root0.isCompositeQuery
12
+ */
13
+ async function graphqlQuery({ query, variables, thoughtSpotHost, isCompositeQuery = false, }) {
14
+ const operationName = (0, utils_1.getOperationNameFromQuery)(query);
15
+ try {
16
+ const response = await fetch(`${thoughtSpotHost}/prism/?op=${operationName}`, {
17
+ method: 'POST',
18
+ headers: {
19
+ 'content-type': 'application/json;charset=UTF-8',
20
+ 'x-requested-by': 'ThoughtSpot',
21
+ accept: '*/*',
22
+ 'accept-language': 'en-us',
23
+ },
24
+ body: JSON.stringify({
25
+ operationName,
26
+ query,
27
+ variables,
28
+ }),
29
+ credentials: 'include',
30
+ });
31
+ const result = await response.json();
32
+ const dataValues = Object.values(result.data);
33
+ return (isCompositeQuery) ? result.data : dataValues[0];
34
+ }
35
+ catch (error) {
36
+ return error;
37
+ }
38
+ }
39
+ exports.graphqlQuery = graphqlQuery;
40
+ //# sourceMappingURL=graphql-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-request.js","sourceRoot":"","sources":["../../../../src/utils/graphql/graphql-request.ts"],"names":[],"mappings":";;;AAAA,uCAAwD;AAExD;;;;;;;GAOG;AACI,KAAK,UAAU,YAAY,CAAC,EAC/B,KAAK,EACL,SAAS,EACT,eAAe,EACf,gBAAgB,GAAG,KAAK,GAM3B;IACG,MAAM,aAAa,GAAG,IAAA,iCAAyB,EAAC,KAAK,CAAC,CAAC;IACvD,IAAI;QACA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,eAAe,cAAc,aAAa,EAAE,EAAE;YAC1E,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACL,cAAc,EAAE,gCAAgC;gBAChD,gBAAgB,EAAE,aAAa;gBAC/B,MAAM,EAAE,KAAK;gBACb,iBAAiB,EAAE,OAAO;aAC7B;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACjB,aAAa;gBACb,KAAK;gBACL,SAAS;aACZ,CAAC;YACF,WAAW,EAAE,SAAS;SACzB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KAC3D;IAAC,OAAO,KAAK,EAAE;QACZ,OAAO,KAAK,CAAC;KAChB;AACL,CAAC;AAlCD,oCAkCC"}
@@ -0,0 +1,8 @@
1
+ export declare const getSourceDetailQuery = "\n query GetSourceDetail($ids: [GUID!]!) {\n getSourceDetailById(ids: $ids, type: LOGICAL_TABLE) {\n id\n name\n description\n authorName\n authorDisplayName\n isExternal\n type\n created\n modified\n columns {\n id\n name\n author\n authorDisplayName\n description\n dataType\n type\n modified\n ownerName\n owner\n dataRecency\n sources {\n tableId\n tableName\n columnId\n columnName\n __typename\n }\n synonyms\n cohortAnswerId\n __typename\n }\n relationships\n destinationRelationships\n dataSourceId\n __typename\n }\n } \n";
2
+ /**
3
+ *
4
+ * @param thoughtSpotHost
5
+ * @param sourceId
6
+ */
7
+ export declare function getSourceDetail(thoughtSpotHost: string, sourceId: string): Promise<any>;
8
+ //# sourceMappingURL=sourceService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sourceService.d.ts","sourceRoot":"","sources":["../../../../src/utils/graphql/sourceService.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB,43BAyChC,CAAC;AAIF;;;;GAIG;AACH,wBAAsB,eAAe,CACjC,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,GAAG,CAAC,CAed"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSourceDetail = exports.getSourceDetailQuery = void 0;
4
+ const graphql_request_1 = require("./graphql-request");
5
+ exports.getSourceDetailQuery = `
6
+ query GetSourceDetail($ids: [GUID!]!) {
7
+ getSourceDetailById(ids: $ids, type: LOGICAL_TABLE) {
8
+ id
9
+ name
10
+ description
11
+ authorName
12
+ authorDisplayName
13
+ isExternal
14
+ type
15
+ created
16
+ modified
17
+ columns {
18
+ id
19
+ name
20
+ author
21
+ authorDisplayName
22
+ description
23
+ dataType
24
+ type
25
+ modified
26
+ ownerName
27
+ owner
28
+ dataRecency
29
+ sources {
30
+ tableId
31
+ tableName
32
+ columnId
33
+ columnName
34
+ __typename
35
+ }
36
+ synonyms
37
+ cohortAnswerId
38
+ __typename
39
+ }
40
+ relationships
41
+ destinationRelationships
42
+ dataSourceId
43
+ __typename
44
+ }
45
+ }
46
+ `;
47
+ const sourceDetailCache = new Map();
48
+ /**
49
+ *
50
+ * @param thoughtSpotHost
51
+ * @param sourceId
52
+ */
53
+ async function getSourceDetail(thoughtSpotHost, sourceId) {
54
+ if (sourceDetailCache.has(sourceId)) {
55
+ return sourceDetailCache.get(sourceId);
56
+ }
57
+ const details = await (0, graphql_request_1.graphqlQuery)({
58
+ query: exports.getSourceDetailQuery,
59
+ variables: {
60
+ ids: [sourceId],
61
+ },
62
+ thoughtSpotHost,
63
+ });
64
+ const souceDetails = details[0];
65
+ sourceDetailCache.set(sourceId, souceDetails);
66
+ return souceDetails;
67
+ }
68
+ exports.getSourceDetail = getSourceDetail;
69
+ //# sourceMappingURL=sourceService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sourceService.js","sourceRoot":"","sources":["../../../../src/utils/graphql/sourceService.ts"],"names":[],"mappings":";;;AAAA,uDAAiD;AAEpC,QAAA,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCnC,CAAC;AAEF,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAe,CAAC;AAEjD;;;;GAIG;AACI,KAAK,UAAU,eAAe,CACjC,eAAuB,EACvB,QAAgB;IAEhB,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;QACjC,OAAO,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;KAC1C;IACD,MAAM,OAAO,GAAG,MAAM,IAAA,8BAAY,EAAC;QAC/B,KAAK,EAAE,4BAAoB;QAC3B,SAAS,EAAE;YACP,GAAG,EAAE,CAAC,QAAQ,CAAC;SAClB;QACD,eAAe;KAClB,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC9C,OAAO,YAAY,CAAC;AACxB,CAAC;AAlBD,0CAkBC"}
@@ -0,0 +1,2 @@
1
+ import 'jest-fetch-mock';
2
+ //# sourceMappingURL=sourceService.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sourceService.spec.d.ts","sourceRoot":"","sources":["../../../../src/utils/graphql/sourceService.spec.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,CAAC"}