@thoughtspot/visual-embed-sdk 1.25.0-alpha.1 → 1.25.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/cjs/package.json +2 -3
  2. package/cjs/src/embed/app.d.ts +1 -0
  3. package/cjs/src/embed/app.d.ts.map +1 -1
  4. package/cjs/src/embed/app.js +1 -0
  5. package/cjs/src/embed/app.js.map +1 -1
  6. package/cjs/src/embed/base.d.ts +2 -0
  7. package/cjs/src/embed/base.d.ts.map +1 -1
  8. package/cjs/src/embed/base.js +2 -0
  9. package/cjs/src/embed/base.js.map +1 -1
  10. package/cjs/src/embed/liveboard.d.ts +1 -0
  11. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  12. package/cjs/src/embed/liveboard.js +1 -0
  13. package/cjs/src/embed/liveboard.js.map +1 -1
  14. package/cjs/src/embed/sage.d.ts +1 -0
  15. package/cjs/src/embed/sage.d.ts.map +1 -1
  16. package/cjs/src/embed/sage.js +1 -0
  17. package/cjs/src/embed/sage.js.map +1 -1
  18. package/cjs/src/embed/search-bar.d.ts +1 -0
  19. package/cjs/src/embed/search-bar.d.ts.map +1 -1
  20. package/cjs/src/embed/search-bar.js +1 -0
  21. package/cjs/src/embed/search-bar.js.map +1 -1
  22. package/cjs/src/embed/search.d.ts +1 -0
  23. package/cjs/src/embed/search.d.ts.map +1 -1
  24. package/cjs/src/embed/search.js +1 -0
  25. package/cjs/src/embed/search.js.map +1 -1
  26. package/cjs/src/embed/ts-embed.d.ts +1 -0
  27. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  28. package/cjs/src/embed/ts-embed.js +3 -0
  29. package/cjs/src/embed/ts-embed.js.map +1 -1
  30. package/cjs/src/embed/ts-embed.spec.js +47 -0
  31. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  32. package/cjs/src/index.d.ts +3 -2
  33. package/cjs/src/index.d.ts.map +1 -1
  34. package/cjs/src/index.js +3 -1
  35. package/cjs/src/index.js.map +1 -1
  36. package/cjs/src/mixpanel-service.d.ts.map +1 -1
  37. package/cjs/src/mixpanel-service.js +2 -0
  38. package/cjs/src/mixpanel-service.js.map +1 -1
  39. package/cjs/src/mixpanel-service.spec.js +1 -0
  40. package/cjs/src/mixpanel-service.spec.js.map +1 -1
  41. package/cjs/src/types.d.ts +46 -18
  42. package/cjs/src/types.d.ts.map +1 -1
  43. package/cjs/src/types.js +7 -13
  44. package/cjs/src/types.js.map +1 -1
  45. package/cjs/src/utils/graphql/answerService/answer-queries.d.ts +5 -0
  46. package/cjs/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -0
  47. package/cjs/src/utils/graphql/answerService/answer-queries.js +80 -0
  48. package/cjs/src/utils/graphql/answerService/answer-queries.js.map +1 -0
  49. package/cjs/src/utils/graphql/answerService/answerService.d.ts +61 -0
  50. package/cjs/src/utils/graphql/answerService/answerService.d.ts.map +1 -0
  51. package/cjs/src/utils/graphql/answerService/answerService.js +182 -0
  52. package/cjs/src/utils/graphql/answerService/answerService.js.map +1 -0
  53. package/cjs/src/utils/graphql/answerService/answerService.spec.d.ts +2 -0
  54. package/cjs/src/utils/graphql/answerService/answerService.spec.d.ts.map +1 -0
  55. package/cjs/src/utils/graphql/answerService/answerService.spec.js +201 -0
  56. package/cjs/src/utils/graphql/answerService/answerService.spec.js.map +1 -0
  57. package/cjs/src/utils/graphql/graphql-request.d.ts +15 -0
  58. package/cjs/src/utils/graphql/graphql-request.d.ts.map +1 -0
  59. package/cjs/src/utils/graphql/graphql-request.js +40 -0
  60. package/cjs/src/utils/graphql/graphql-request.js.map +1 -0
  61. package/cjs/src/utils/graphql/sourceService.d.ts +8 -0
  62. package/cjs/src/utils/graphql/sourceService.d.ts.map +1 -0
  63. package/cjs/src/utils/graphql/sourceService.js +69 -0
  64. package/cjs/src/utils/graphql/sourceService.js.map +1 -0
  65. package/cjs/src/utils/graphql/sourceService.spec.d.ts +2 -0
  66. package/cjs/src/utils/graphql/sourceService.spec.d.ts.map +1 -0
  67. package/cjs/src/utils/graphql/sourceService.spec.js +12 -0
  68. package/cjs/src/utils/graphql/sourceService.spec.js.map +1 -0
  69. package/cjs/src/utils/processData.d.ts.map +1 -1
  70. package/cjs/src/utils/processData.js +7 -11
  71. package/cjs/src/utils/processData.js.map +1 -1
  72. package/cjs/src/utils/processData.spec.js +13 -17
  73. package/cjs/src/utils/processData.spec.js.map +1 -1
  74. package/cjs/src/utils.d.ts +6 -0
  75. package/cjs/src/utils.d.ts.map +1 -1
  76. package/cjs/src/utils.js +26 -1
  77. package/cjs/src/utils.js.map +1 -1
  78. package/dist/src/embed/app.d.ts +1 -0
  79. package/dist/src/embed/app.d.ts.map +1 -1
  80. package/dist/src/embed/base.d.ts +2 -0
  81. package/dist/src/embed/base.d.ts.map +1 -1
  82. package/dist/src/embed/liveboard.d.ts +1 -0
  83. package/dist/src/embed/liveboard.d.ts.map +1 -1
  84. package/dist/src/embed/sage.d.ts +1 -0
  85. package/dist/src/embed/sage.d.ts.map +1 -1
  86. package/dist/src/embed/search-bar.d.ts +1 -0
  87. package/dist/src/embed/search-bar.d.ts.map +1 -1
  88. package/dist/src/embed/search.d.ts +1 -0
  89. package/dist/src/embed/search.d.ts.map +1 -1
  90. package/dist/src/embed/ts-embed.d.ts +1 -0
  91. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  92. package/dist/src/index.d.ts +3 -2
  93. package/dist/src/index.d.ts.map +1 -1
  94. package/dist/src/mixpanel-service.d.ts.map +1 -1
  95. package/dist/src/types.d.ts +46 -18
  96. package/dist/src/types.d.ts.map +1 -1
  97. package/dist/src/utils/graphql/answerService/answer-queries.d.ts +5 -0
  98. package/dist/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -0
  99. package/dist/src/utils/graphql/answerService/answerService.d.ts +61 -0
  100. package/dist/src/utils/graphql/answerService/answerService.d.ts.map +1 -0
  101. package/dist/src/utils/graphql/answerService/answerService.spec.d.ts +2 -0
  102. package/dist/src/utils/graphql/answerService/answerService.spec.d.ts.map +1 -0
  103. package/dist/src/utils/graphql/graphql-request.d.ts +15 -0
  104. package/dist/src/utils/graphql/graphql-request.d.ts.map +1 -0
  105. package/dist/src/utils/graphql/sourceService.d.ts +8 -0
  106. package/dist/src/utils/graphql/sourceService.d.ts.map +1 -0
  107. package/dist/src/utils/graphql/sourceService.spec.d.ts +2 -0
  108. package/dist/src/utils/graphql/sourceService.spec.d.ts.map +1 -0
  109. package/dist/src/utils/processData.d.ts.map +1 -1
  110. package/dist/src/utils.d.ts +6 -0
  111. package/dist/src/utils.d.ts.map +1 -1
  112. package/dist/tsembed-react.es.js +384 -68
  113. package/dist/tsembed-react.js +384 -68
  114. package/dist/tsembed.es.js +435 -72
  115. package/dist/tsembed.js +435 -71
  116. package/dist/visual-embed-sdk-react-full.d.ts +110 -19
  117. package/dist/visual-embed-sdk-react.d.ts +110 -19
  118. package/dist/visual-embed-sdk.d.ts +110 -19
  119. package/lib/package.json +2 -3
  120. package/lib/src/embed/app.d.ts +1 -0
  121. package/lib/src/embed/app.d.ts.map +1 -1
  122. package/lib/src/embed/app.js +1 -0
  123. package/lib/src/embed/app.js.map +1 -1
  124. package/lib/src/embed/base.d.ts +2 -0
  125. package/lib/src/embed/base.d.ts.map +1 -1
  126. package/lib/src/embed/base.js +2 -0
  127. package/lib/src/embed/base.js.map +1 -1
  128. package/lib/src/embed/liveboard.d.ts +1 -0
  129. package/lib/src/embed/liveboard.d.ts.map +1 -1
  130. package/lib/src/embed/liveboard.js +1 -0
  131. package/lib/src/embed/liveboard.js.map +1 -1
  132. package/lib/src/embed/sage.d.ts +1 -0
  133. package/lib/src/embed/sage.d.ts.map +1 -1
  134. package/lib/src/embed/sage.js +1 -0
  135. package/lib/src/embed/sage.js.map +1 -1
  136. package/lib/src/embed/search-bar.d.ts +1 -0
  137. package/lib/src/embed/search-bar.d.ts.map +1 -1
  138. package/lib/src/embed/search-bar.js +1 -0
  139. package/lib/src/embed/search-bar.js.map +1 -1
  140. package/lib/src/embed/search.d.ts +1 -0
  141. package/lib/src/embed/search.d.ts.map +1 -1
  142. package/lib/src/embed/search.js +1 -0
  143. package/lib/src/embed/search.js.map +1 -1
  144. package/lib/src/embed/ts-embed.d.ts +1 -0
  145. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  146. package/lib/src/embed/ts-embed.js +3 -0
  147. package/lib/src/embed/ts-embed.js.map +1 -1
  148. package/lib/src/embed/ts-embed.spec.js +47 -0
  149. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  150. package/lib/src/index.d.ts +3 -2
  151. package/lib/src/index.d.ts.map +1 -1
  152. package/lib/src/index.js +2 -1
  153. package/lib/src/index.js.map +1 -1
  154. package/lib/src/mixpanel-service.d.ts.map +1 -1
  155. package/lib/src/mixpanel-service.js +2 -0
  156. package/lib/src/mixpanel-service.js.map +1 -1
  157. package/lib/src/mixpanel-service.spec.js +1 -0
  158. package/lib/src/mixpanel-service.spec.js.map +1 -1
  159. package/lib/src/types.d.ts +46 -18
  160. package/lib/src/types.d.ts.map +1 -1
  161. package/lib/src/types.js +6 -12
  162. package/lib/src/types.js.map +1 -1
  163. package/lib/src/utils/graphql/answerService/answer-queries.d.ts +5 -0
  164. package/lib/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -0
  165. package/lib/src/utils/graphql/answerService/answer-queries.js +77 -0
  166. package/lib/src/utils/graphql/answerService/answer-queries.js.map +1 -0
  167. package/lib/src/utils/graphql/answerService/answerService.d.ts +61 -0
  168. package/lib/src/utils/graphql/answerService/answerService.d.ts.map +1 -0
  169. package/lib/src/utils/graphql/answerService/answerService.js +177 -0
  170. package/lib/src/utils/graphql/answerService/answerService.js.map +1 -0
  171. package/lib/src/utils/graphql/answerService/answerService.spec.d.ts +2 -0
  172. package/lib/src/utils/graphql/answerService/answerService.spec.d.ts.map +1 -0
  173. package/lib/src/utils/graphql/answerService/answerService.spec.js +199 -0
  174. package/lib/src/utils/graphql/answerService/answerService.spec.js.map +1 -0
  175. package/lib/src/utils/graphql/graphql-request.d.ts +15 -0
  176. package/lib/src/utils/graphql/graphql-request.d.ts.map +1 -0
  177. package/lib/src/utils/graphql/graphql-request.js +36 -0
  178. package/lib/src/utils/graphql/graphql-request.js.map +1 -0
  179. package/lib/src/utils/graphql/sourceService.d.ts +8 -0
  180. package/lib/src/utils/graphql/sourceService.d.ts.map +1 -0
  181. package/lib/src/utils/graphql/sourceService.js +65 -0
  182. package/lib/src/utils/graphql/sourceService.js.map +1 -0
  183. package/lib/src/utils/graphql/sourceService.spec.d.ts +2 -0
  184. package/lib/src/utils/graphql/sourceService.spec.d.ts.map +1 -0
  185. package/lib/src/utils/graphql/sourceService.spec.js +10 -0
  186. package/lib/src/utils/graphql/sourceService.spec.js.map +1 -0
  187. package/lib/src/utils/processData.d.ts.map +1 -1
  188. package/lib/src/utils/processData.js +8 -12
  189. package/lib/src/utils/processData.js.map +1 -1
  190. package/lib/src/utils/processData.spec.js +14 -18
  191. package/lib/src/utils/processData.spec.js.map +1 -1
  192. package/lib/src/utils.d.ts +6 -0
  193. package/lib/src/utils.d.ts.map +1 -1
  194. package/lib/src/utils.js +23 -0
  195. package/lib/src/utils.js.map +1 -1
  196. package/lib/src/visual-embed-sdk.d.ts +116 -20
  197. package/package.json +5 -6
  198. package/src/embed/app.ts +2 -0
  199. package/src/embed/base.ts +2 -0
  200. package/src/embed/liveboard.ts +2 -0
  201. package/src/embed/sage.ts +2 -0
  202. package/src/embed/search-bar.tsx +2 -0
  203. package/src/embed/search.ts +2 -0
  204. package/src/embed/ts-embed.spec.ts +49 -0
  205. package/src/embed/ts-embed.ts +4 -0
  206. package/src/index.ts +5 -0
  207. package/src/mixpanel-service.spec.ts +1 -0
  208. package/src/mixpanel-service.ts +1 -0
  209. package/src/types.ts +50 -19
  210. package/src/utils/graphql/answerService/answer-queries.ts +80 -0
  211. package/src/utils/graphql/answerService/answerService.spec.ts +231 -0
  212. package/src/utils/graphql/answerService/answerService.ts +234 -0
  213. package/src/utils/graphql/graphql-request.ts +45 -0
  214. package/src/utils/graphql/sourceService.spec.ts +10 -0
  215. package/src/utils/graphql/sourceService.ts +71 -0
  216. package/src/utils/processData.spec.ts +15 -25
  217. package/src/utils/processData.ts +13 -15
  218. package/src/utils.ts +24 -0
  219. package/src/utils/answerService.spec.ts +0 -41
  220. package/src/utils/answerService.ts +0 -63
@@ -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=answer-queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answer-queries.js","sourceRoot":"","sources":["../../../../../src/utils/graphql/answerService/answer-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,61 @@
1
+ import type { VizPoint } from '../../../types';
2
+ export interface SessionInterface {
3
+ sessionId: string;
4
+ genNo: number;
5
+ acSession: {
6
+ sessionId: string;
7
+ genNo: number;
8
+ };
9
+ }
10
+ export declare enum OperationType {
11
+ GetChartWithData = "GetChartWithData",
12
+ GetTableWithHeadlineData = "GetTableWithHeadlineData"
13
+ }
14
+ interface UnderlyingDataPoint {
15
+ columnId: string;
16
+ dataValue: any;
17
+ }
18
+ /**
19
+ * Class representing the answer service provided with the
20
+ * custom action payload. This service could be used to run
21
+ * graphql queries in the context of the answer on which the
22
+ * custom action was triggered.
23
+ *
24
+ * @example
25
+ * ```js
26
+ * embed.on(EmbedEvent.CustomAction, e => {
27
+ * const underlying = await e.answerService.getUnderlyingDataForPoint([
28
+ * 'col name 1'
29
+ * ]);
30
+ * const data = await underlying.fetchData(0, 100);
31
+ * })
32
+ * ```
33
+ * @version
34
+ * ThoughtSpot: 9.9.0.cl / SDK: 1.25.0
35
+ */
36
+ export declare class AnswerService {
37
+ private session;
38
+ private answer;
39
+ private thoughtSpotHost;
40
+ private selectedPoints?;
41
+ constructor(session: SessionInterface, answer: any, thoughtSpotHost: string, selectedPoints?: VizPoint[]);
42
+ getSourceDetail(): Promise<any>;
43
+ removeColumns(columnIds: string[]): Promise<any>;
44
+ addColumns(columnIds: string[]): Promise<any>;
45
+ fetchData(offset?: number, size?: number): Promise<{
46
+ columns: any;
47
+ data: any;
48
+ }>;
49
+ /**
50
+ *
51
+ * @param userLocale
52
+ * @param omitInfo Omit the download Info on top of the CSV
53
+ * @returns Response
54
+ */
55
+ fetchCSVBlob(userLocale?: string, omitInfo?: boolean): Promise<Response>;
56
+ getUnderlyingDataForPoint(outputColumnNames: string[], selectedPoints?: UnderlyingDataPoint[]): Promise<AnswerService>;
57
+ executeQuery(query: string, variables: any): Promise<any>;
58
+ getSession(): SessionInterface;
59
+ }
60
+ export {};
61
+ //# sourceMappingURL=answerService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answerService.d.ts","sourceRoot":"","sources":["../../../../../src/utils/graphql/answerService/answerService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAM5D,MAAM,WAAW,gBAAgB;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD;AAGD,oBAAY,aAAa;IACrB,gBAAgB,qBAAqB;IACrC,wBAAwB,6BAA6B;CACxD;AAED,UAAU,mBAAmB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,GAAG,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,aAAa;IAElB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,cAAc,CAAC;gBAHf,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,GAAG,EACX,eAAe,EAAE,MAAM,EACvB,cAAc,CAAC,EAAE,QAAQ,EAAE;IAK1B,eAAe;IAQf,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE;IASjC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE;IAS9B,SAAS,CAAC,MAAM,SAAI,EAAE,IAAI,SAAO;;;;IAmB9C;;;;;OAKG;IACU,YAAY,CAAC,UAAU,SAAU,EAAE,QAAQ,UAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAUvE,yBAAyB,CAClC,iBAAiB,EAAE,MAAM,EAAE,EAC3B,cAAc,CAAC,EAAE,mBAAmB,EAAE,GACvC,OAAO,CAAC,aAAa,CAAC;IA8CZ,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAe/D,UAAU;CAGpB"}
@@ -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":";;AAAA,2BAAyB;AAEzB,mDAAgD;AAChD,qDAAgE;AAEhE,MAAM,cAAc,GAAG;IACnB,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,CAAC;IACR,SAAS,EAAE;QACP,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,CAAC;KACX;CACJ,CAAC;AACF;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,MAAM,GAAG,EAAE,EAAE,KAAkB;IACxD,OAAO,IAAI,6BAAa,CACpB,cAAc,EACd,MAAM,EACN,gBAAgB,EAChB,KAAK,CACR,CAAC;AACN,CAAC;AAED,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAClC,UAAU,CAAC,GAAG,EAAE;QACZ,SAAS,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;YACtC,IAAI,EAAE;gBACF,GAAG,EAAE;oBACD,EAAE,EAAE,EAAE;iBACT;aACJ;SACJ,CAAC,CAAC,CAAC;QACJ,MAAM,aAAa,GAAG,mBAAmB,EAAE,CAAC;QAC5C,aAAa,CAAC,YAAY,CACtB,cAAc,EACd,EAAE,CAAC,EAAE,CAAC,EAAE,CACX,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,8BAA8B,EAAE,MAAM,CAAC,gBAAgB,CAAC;YACrF,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACjB,aAAa,EAAE,KAAK;gBACpB,KAAK,EAAE,cAAc;gBACrB,SAAS,EAAE;oBACP,OAAO,EAAE,cAAc;oBACvB,CAAC,EAAE,CAAC;iBACP;aACJ,CAAC;SACL,CAAC,CAAC,CAAC;IACR,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,SAAS,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QACjD,MAAM,aAAa,GAAG,mBAAmB,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,YAAY,CACzC,cAAc,EACd,EAAE,CAAC,EAAE,CAAC,EAAE,CACX,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;YACtC,IAAI,EAAE;gBACF,SAAS,EAAE;oBACP,EAAE,EAAE,EAAE;oBACN,MAAM,EAAE;wBACJ,cAAc,EAAE,CAAC;gCACb,OAAO,EAAE,CAAC;wCACN,MAAM,EAAE;4CACJ,EAAE,EAAE,KAAK;yCACZ;qCACJ,CAAC;gCACF,IAAI,EAAE;oCACF,GAAG,EAAE,CAAC;iCACT;6BACJ,CAAC;qBACL;iBACJ;aACJ;SACJ,CAAC,CAAC,CAAC;QACJ,MAAM,aAAa,GAAG,mBAAmB,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACnD,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAClC,mDAAmD,EACnD,MAAM,CAAC,gBAAgB,CAAC;YACpB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACjB,aAAa,EAAE,0BAA0B;gBACzC,KAAK,EAAE,8BAAa;gBACpB,SAAS,EAAE;oBACP,OAAO,EAAE,cAAc;oBACvB,QAAQ,EAAE,CAAC;oBACX,oBAAoB,EAAE;wBAClB,iBAAiB,EAAE,IAAI;wBACvB,MAAM,EAAE,EAAE;wBACV,IAAI,EAAE,EAAE;qBACX;iBACJ;aACJ,CAAC;SACL,CAAC,CACL,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,MAAM,aAAa,GAAG,mBAAmB,EAAE,CAAC;QAC5C,aAAa,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5C,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAClC,sDAAsD,cAAc,CAAC,SAAS,UAAU,cAAc,CAAC,KAAK,qDAAqD,EACjK,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAC9B,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,SAAS,CAAC,aAAa,CACnB,IAAI,CAAC,SAAS,CAAC;YACX,IAAI,EAAE;gBACF,mBAAmB,EAAE,CAAC;wBAClB,OAAO,EAAE,CAAC;gCACN,EAAE,EAAE,KAAK;gCACT,IAAI,EAAE,MAAM;6BACf,EAAE;gCACC,EAAE,EAAE,KAAK;gCACT,IAAI,EAAE,MAAM;6BACf,EAAE;gCACC,EAAE,EAAE,KAAK;gCACT,IAAI,EAAE,MAAM;6BACf,CAAC;qBACL,CAAC;aACL;SACJ,CAAC,EACF,IAAI,CAAC,SAAS,CAAC;YACX,IAAI,EAAE;gBACF,6BAA6B,EAAE;oBAC3B,EAAE,EAAE;wBACA,GAAG,cAAc;qBACpB;oBACD,MAAM,EAAE;wBACJ,cAAc,EAAE,CAAC;gCACb,OAAO,EAAE,CAAC;wCACN,MAAM,EAAE;4CACJ,EAAE,EAAE,MAAM;4CACV,IAAI,EAAE,MAAM;4CACZ,iBAAiB,EAAE,CAAC;oDAChB,IAAI,EAAE,KAAK;iDACd,CAAC;yCACL;qCACJ,CAAC;6BACL,CAAC;qBACL;iBACJ;aACJ;SACJ,CAAC,EACF,IAAI,CAAC,SAAS,CAAC;YACX,IAAI,EAAE;gBACF,iBAAiB,EAAE;oBACf,EAAE,EAAE;wBACA,KAAK,EAAE,CAAC;qBACX;iBACJ;aACJ;SACJ,CAAC,EACF,IAAI,CAAC,SAAS,CAAC;YACX,IAAI,EAAE;gBACF,qBAAqB,EAAE;oBACnB,EAAE,EAAE;wBACA,KAAK,EAAE,CAAC;qBACX;iBACJ;aACJ;SACJ,CAAC,CACL,CAAC;QACF,MAAM,aAAa,GAAG,mBAAmB,CAAC;YACtC,OAAO,EAAE,CAAC;oBACN,MAAM,EAAE;wBACJ,IAAI,EAAE,SAAS;qBAClB;iBACJ,CAAC;SACL,EAAE,CAAC;gBACA,kBAAkB,EAAE,CAAC;wBACjB,MAAM,EAAE;4BACJ,EAAE,EAAE,MAAM;4BACV,IAAI,EAAE,MAAM;4BACZ,QAAQ,EAAE,MAAM;yBACnB;wBACD,KAAK,EAAE,GAAG;qBACb,EAAE;wBACC,MAAM,EAAE;4BACJ,EAAE,EAAE,MAAM;4BACV,IAAI,EAAE,MAAM;4BACZ,QAAQ,EAAE,MAAM;yBACnB;wBACD,KAAK,EAAE,KAAK;qBACf,CAAC;gBACF,gBAAgB,EAAE,EAAE;aACvB,CAAC,CAAC,CAAC;QACJ,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3E,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAClC,wCAAwC,EACxC,MAAM,CAAC,gBAAgB,CAAC;YACpB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACjB,aAAa,EAAE,eAAe;gBAC9B,KAAK,EAAE,8BAAa;gBACpB,SAAS,EAAE;oBACP,OAAO,EAAE;wBACL,GAAG,cAAc;wBACjB,KAAK,EAAE,CAAC;qBACX;oBACD,gBAAgB,EAAE;wBACd,KAAK;qBACR;iBACJ;aACJ,CAAC;SACL,CAAC,CACL,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,aAAa,GAAG,mBAAmB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACpD,MAAM,MAAM,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACtF,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,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"}