@keboola/api-client 1.0.0 → 2.0.0

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 (221) hide show
  1. package/dist/ai/index.cjs +5 -201
  2. package/dist/ai/index.cjs.map +1 -1
  3. package/dist/ai/index.js +2 -201
  4. package/dist/ai/index.js.map +1 -1
  5. package/dist/assets/index.cjs +5 -180
  6. package/dist/assets/index.cjs.map +1 -1
  7. package/dist/assets/index.js +2 -180
  8. package/dist/assets/index.js.map +1 -1
  9. package/dist/chat/index.cjs +6 -422
  10. package/dist/chat/index.cjs.map +1 -1
  11. package/dist/chat/index.d.cts +1 -1
  12. package/dist/chat/index.d.ts +1 -1
  13. package/dist/chat/index.js +3 -422
  14. package/dist/chat/index.js.map +1 -1
  15. package/dist/chat/suggestions.cjs +70 -152
  16. package/dist/chat/suggestions.cjs.map +1 -1
  17. package/dist/chat/suggestions.js +1 -138
  18. package/dist/chat/suggestions.js.map +1 -1
  19. package/dist/chat/types.d.cts +1 -1
  20. package/dist/chat/types.d.ts +1 -1
  21. package/dist/chunk-345V46LR.cjs +934 -0
  22. package/dist/chunk-345V46LR.cjs.map +1 -0
  23. package/dist/chunk-3B7L6MCG.js +189 -0
  24. package/dist/chunk-3B7L6MCG.js.map +1 -0
  25. package/dist/chunk-3T54WH4X.cjs +42 -0
  26. package/dist/chunk-3T54WH4X.cjs.map +1 -0
  27. package/dist/chunk-3Y6NK7TC.js +34 -0
  28. package/dist/chunk-3Y6NK7TC.js.map +1 -0
  29. package/dist/chunk-4N7XBMWP.js +930 -0
  30. package/dist/chunk-4N7XBMWP.js.map +1 -0
  31. package/dist/chunk-4RC5E3SL.js +140 -0
  32. package/dist/chunk-4RC5E3SL.js.map +1 -0
  33. package/dist/chunk-633QJMHH.cjs +73 -0
  34. package/dist/chunk-633QJMHH.cjs.map +1 -0
  35. package/dist/chunk-6RQDX6JY.cjs +132 -0
  36. package/dist/chunk-6RQDX6JY.cjs.map +1 -0
  37. package/dist/chunk-76AHKXLC.cjs +29 -0
  38. package/dist/chunk-76AHKXLC.cjs.map +1 -0
  39. package/dist/chunk-7FY6COWG.js +71 -0
  40. package/dist/chunk-7FY6COWG.js.map +1 -0
  41. package/dist/chunk-7J2R6XHB.js +3 -0
  42. package/dist/chunk-7J2R6XHB.js.map +1 -0
  43. package/dist/chunk-BGLICNTG.cjs +33 -0
  44. package/dist/chunk-BGLICNTG.cjs.map +1 -0
  45. package/dist/chunk-BR3SBEFE.cjs +182 -0
  46. package/dist/chunk-BR3SBEFE.cjs.map +1 -0
  47. package/dist/chunk-CVV4HROS.cjs +37 -0
  48. package/dist/chunk-CVV4HROS.cjs.map +1 -0
  49. package/dist/chunk-DCTDH77P.cjs +277 -0
  50. package/dist/chunk-DCTDH77P.cjs.map +1 -0
  51. package/dist/chunk-EBCZUGUX.js +35 -0
  52. package/dist/chunk-EBCZUGUX.js.map +1 -0
  53. package/dist/chunk-EY5LALX2.cjs +26 -0
  54. package/dist/chunk-EY5LALX2.cjs.map +1 -0
  55. package/dist/chunk-FBQHHAL5.js +40 -0
  56. package/dist/chunk-FBQHHAL5.js.map +1 -0
  57. package/dist/chunk-GF4XZK5N.cjs +43 -0
  58. package/dist/chunk-GF4XZK5N.cjs.map +1 -0
  59. package/dist/chunk-GNPQB3MT.js +27 -0
  60. package/dist/chunk-GNPQB3MT.js.map +1 -0
  61. package/dist/chunk-GO6SOMGL.js +181 -0
  62. package/dist/chunk-GO6SOMGL.js.map +1 -0
  63. package/dist/chunk-HCNNMUTR.cjs +36 -0
  64. package/dist/chunk-HCNNMUTR.cjs.map +1 -0
  65. package/dist/chunk-HPVTVQBJ.cjs +238 -0
  66. package/dist/chunk-HPVTVQBJ.cjs.map +1 -0
  67. package/dist/chunk-HYUGRMCY.cjs +247 -0
  68. package/dist/chunk-HYUGRMCY.cjs.map +1 -0
  69. package/dist/chunk-IJMQCOBC.js +34 -0
  70. package/dist/chunk-IJMQCOBC.js.map +1 -0
  71. package/dist/chunk-IY3VNVXD.cjs +183 -0
  72. package/dist/chunk-IY3VNVXD.cjs.map +1 -0
  73. package/dist/chunk-JKFIB6SQ.cjs +685 -0
  74. package/dist/chunk-JKFIB6SQ.cjs.map +1 -0
  75. package/dist/chunk-JLNOESHX.cjs +47 -0
  76. package/dist/chunk-JLNOESHX.cjs.map +1 -0
  77. package/dist/chunk-JURD5MC3.js +178 -0
  78. package/dist/chunk-JURD5MC3.js.map +1 -0
  79. package/dist/chunk-LV3ZWNDC.js +75 -0
  80. package/dist/chunk-LV3ZWNDC.js.map +1 -0
  81. package/dist/chunk-LZ6A6J2E.cjs +77 -0
  82. package/dist/chunk-LZ6A6J2E.cjs.map +1 -0
  83. package/dist/chunk-OKVYLO6C.js +108 -0
  84. package/dist/chunk-OKVYLO6C.js.map +1 -0
  85. package/dist/chunk-PD3LJYS2.js +218 -0
  86. package/dist/chunk-PD3LJYS2.js.map +1 -0
  87. package/dist/chunk-PV4HIVW2.js +130 -0
  88. package/dist/chunk-PV4HIVW2.js.map +1 -0
  89. package/dist/chunk-R7PD3BRA.js +261 -0
  90. package/dist/chunk-R7PD3BRA.js.map +1 -0
  91. package/dist/chunk-SAEG42HW.js +64 -0
  92. package/dist/chunk-SAEG42HW.js.map +1 -0
  93. package/dist/chunk-TIIRBQUA.cjs +110 -0
  94. package/dist/chunk-TIIRBQUA.cjs.map +1 -0
  95. package/dist/chunk-TXFQ4YIK.js +31 -0
  96. package/dist/chunk-TXFQ4YIK.js.map +1 -0
  97. package/dist/chunk-U5SE6W5M.cjs +158 -0
  98. package/dist/chunk-U5SE6W5M.cjs.map +1 -0
  99. package/dist/chunk-UABYNGBZ.js +39 -0
  100. package/dist/chunk-UABYNGBZ.js.map +1 -0
  101. package/dist/chunk-UXF53ZOV.js +220 -0
  102. package/dist/chunk-UXF53ZOV.js.map +1 -0
  103. package/dist/chunk-VAOCYA6B.js +20 -0
  104. package/dist/chunk-VAOCYA6B.js.map +1 -0
  105. package/dist/chunk-VS5PM7KL.js +45 -0
  106. package/dist/chunk-VS5PM7KL.js.map +1 -0
  107. package/dist/chunk-WQ7EZWBF.js +24 -0
  108. package/dist/chunk-WQ7EZWBF.js.map +1 -0
  109. package/dist/chunk-XPDEQND7.cjs +4 -0
  110. package/dist/chunk-XPDEQND7.cjs.map +1 -0
  111. package/dist/chunk-XUDMML5C.cjs +211 -0
  112. package/dist/chunk-XUDMML5C.cjs.map +1 -0
  113. package/dist/chunk-YPCD7M2N.cjs +22 -0
  114. package/dist/chunk-YPCD7M2N.cjs.map +1 -0
  115. package/dist/chunk-YUEYMIMI.cjs +67 -0
  116. package/dist/chunk-YUEYMIMI.cjs.map +1 -0
  117. package/dist/chunk-YXCVNX2Q.cjs +36 -0
  118. package/dist/chunk-YXCVNX2Q.cjs.map +1 -0
  119. package/dist/chunk-ZEMKE6DI.js +681 -0
  120. package/dist/chunk-ZEMKE6DI.js.map +1 -0
  121. package/dist/dataScience/index.cjs +8 -412
  122. package/dist/dataScience/index.cjs.map +1 -1
  123. package/dist/dataScience/index.js +2 -391
  124. package/dist/dataScience/index.js.map +1 -1
  125. package/dist/domain/permissions/index.cjs +131 -2
  126. package/dist/domain/permissions/index.cjs.map +1 -1
  127. package/dist/domain/permissions/index.d.cts +108 -2
  128. package/dist/domain/permissions/index.d.ts +108 -2
  129. package/dist/domain/permissions/index.js +106 -3
  130. package/dist/domain/permissions/index.js.map +1 -1
  131. package/dist/editor/index.cjs +5 -264
  132. package/dist/editor/index.cjs.map +1 -1
  133. package/dist/editor/index.js +2 -264
  134. package/dist/editor/index.js.map +1 -1
  135. package/dist/encryption/index.cjs +5 -190
  136. package/dist/encryption/index.cjs.map +1 -1
  137. package/dist/encryption/index.js +2 -190
  138. package/dist/encryption/index.js.map +1 -1
  139. package/dist/import/index.cjs +5 -196
  140. package/dist/import/index.cjs.map +1 -1
  141. package/dist/import/index.js +2 -196
  142. package/dist/import/index.js.map +1 -1
  143. package/dist/index.cjs +314 -3569
  144. package/dist/index.cjs.map +1 -1
  145. package/dist/index.d.cts +2004 -105
  146. package/dist/index.d.ts +2004 -105
  147. package/dist/index.js +176 -3464
  148. package/dist/index.js.map +1 -1
  149. package/dist/management/index.cjs +10 -881
  150. package/dist/management/index.cjs.map +1 -1
  151. package/dist/management/index.js +3 -880
  152. package/dist/management/index.js.map +1 -1
  153. package/dist/metastore/index.cjs +5 -337
  154. package/dist/metastore/index.cjs.map +1 -1
  155. package/dist/metastore/index.js +2 -337
  156. package/dist/metastore/index.js.map +1 -1
  157. package/dist/oauth/index.cjs +5 -226
  158. package/dist/oauth/index.cjs.map +1 -1
  159. package/dist/oauth/index.js +2 -226
  160. package/dist/oauth/index.js.map +1 -1
  161. package/dist/project-Bzslbq4u.d.ts +16 -0
  162. package/dist/project-CYhB6rYN.d.cts +16 -0
  163. package/dist/queryService/index.cjs +5 -248
  164. package/dist/queryService/index.cjs.map +1 -1
  165. package/dist/queryService/index.js +2 -248
  166. package/dist/queryService/index.js.map +1 -1
  167. package/dist/queue/index.cjs +5 -190
  168. package/dist/queue/index.cjs.map +1 -1
  169. package/dist/queue/index.js +2 -190
  170. package/dist/queue/index.js.map +1 -1
  171. package/dist/sdk/configurations/index.d.cts +2 -12
  172. package/dist/sdk/configurations/index.d.ts +2 -12
  173. package/dist/sdk/storage/index.cjs +49 -248
  174. package/dist/sdk/storage/index.cjs.map +1 -1
  175. package/dist/sdk/storage/index.d.cts +2 -2
  176. package/dist/sdk/storage/index.d.ts +2 -2
  177. package/dist/sdk/storage/index.js +1 -240
  178. package/dist/sdk/storage/index.js.map +1 -1
  179. package/dist/sdk/tag/index.cjs +6 -203
  180. package/dist/sdk/tag/index.cjs.map +1 -1
  181. package/dist/sdk/tag/index.js +2 -206
  182. package/dist/sdk/tag/index.js.map +1 -1
  183. package/dist/status/index.cjs +6 -176
  184. package/dist/status/index.cjs.map +1 -1
  185. package/dist/status/index.js +3 -176
  186. package/dist/status/index.js.map +1 -1
  187. package/dist/status/types.cjs +2 -0
  188. package/dist/status/types.js +1 -1
  189. package/dist/storage/index.cjs +9 -1023
  190. package/dist/storage/index.cjs.map +1 -1
  191. package/dist/storage/index.d.cts +1 -1
  192. package/dist/storage/index.d.ts +1 -1
  193. package/dist/storage/index.js +3 -1023
  194. package/dist/storage/index.js.map +1 -1
  195. package/dist/storage/types.d.cts +68 -5
  196. package/dist/storage/types.d.ts +68 -5
  197. package/dist/{storageClient-C8LDO4gr.d.ts → storageClient-BicsbzZy.d.ts} +7 -1
  198. package/dist/{storageClient-D05fdGHW.d.cts → storageClient-CmK1LPHr.d.cts} +7 -1
  199. package/dist/storageSdk-BZ7ZW6_h.d.cts +143 -0
  200. package/dist/storageSdk-DCcD68FQ.d.ts +143 -0
  201. package/dist/syncActions/index.cjs +5 -364
  202. package/dist/syncActions/index.cjs.map +1 -1
  203. package/dist/syncActions/index.js +2 -345
  204. package/dist/syncActions/index.js.map +1 -1
  205. package/dist/telemetry/index.cjs +5 -187
  206. package/dist/telemetry/index.cjs.map +1 -1
  207. package/dist/telemetry/index.js +2 -187
  208. package/dist/telemetry/index.js.map +1 -1
  209. package/dist/{types-DJ6nbNq5.d.cts → types-CNkgmuhe.d.cts} +1 -1
  210. package/dist/{types-BjrNNn5I.d.ts → types-DzwzVgyG.d.ts} +1 -1
  211. package/dist/vault/index.cjs +5 -219
  212. package/dist/vault/index.cjs.map +1 -1
  213. package/dist/vault/index.js +2 -219
  214. package/dist/vault/index.js.map +1 -1
  215. package/dist/verify/index.cjs +5 -184
  216. package/dist/verify/index.cjs.map +1 -1
  217. package/dist/verify/index.js +2 -184
  218. package/dist/verify/index.js.map +1 -1
  219. package/package.json +1 -1
  220. package/dist/storageSdk-CX03lGn-.d.ts +0 -18
  221. package/dist/storageSdk-DZV4nB3o.d.cts +0 -18
package/dist/index.cjs CHANGED
@@ -1,65 +1,31 @@
1
1
  'use strict';
2
2
 
3
- var qs = require('qs');
4
- var z5 = require('zod');
5
- var dayjs = require('dayjs');
6
- var utc = require('dayjs/plugin/utc');
7
-
8
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
-
10
- function _interopNamespace(e) {
11
- if (e && e.__esModule) return e;
12
- var n = Object.create(null);
13
- if (e) {
14
- Object.keys(e).forEach(function (k) {
15
- if (k !== 'default') {
16
- var d = Object.getOwnPropertyDescriptor(e, k);
17
- Object.defineProperty(n, k, d.get ? d : {
18
- enumerable: true,
19
- get: function () { return e[k]; }
20
- });
21
- }
22
- });
23
- }
24
- n.default = e;
25
- return Object.freeze(n);
26
- }
27
-
28
- var qs__default = /*#__PURE__*/_interopDefault(qs);
29
- var z5__namespace = /*#__PURE__*/_interopNamespace(z5);
30
- var dayjs__default = /*#__PURE__*/_interopDefault(dayjs);
31
- var utc__default = /*#__PURE__*/_interopDefault(utc);
32
-
33
- // src/errors/UserError.ts
34
- var UserError = class extends Error {
35
- constructor(message2) {
36
- super(message2);
37
- }
38
- };
39
-
40
- // src/errors/ApiError.ts
41
- var ApiError = class extends Error {
42
- response;
43
- request;
44
- data;
45
- constructor({ response, request, data }) {
46
- super(response.statusText);
47
- this.response = response;
48
- this.request = request;
49
- this.data = data;
50
- }
51
- };
52
-
53
- // src/errors/ManagementClientAuthError.ts
54
- var ManagementClientAuthError = class extends ApiError {
55
- title;
56
- message;
57
- constructor(title, message2, res) {
58
- super(res);
59
- this.title = title;
60
- this.message = message2;
61
- }
62
- };
3
+ var chunkGF4XZK5N_cjs = require('./chunk-GF4XZK5N.cjs');
4
+ var chunkBR3SBEFE_cjs = require('./chunk-BR3SBEFE.cjs');
5
+ var chunkDCTDH77P_cjs = require('./chunk-DCTDH77P.cjs');
6
+ var chunkBGLICNTG_cjs = require('./chunk-BGLICNTG.cjs');
7
+ var chunkYUEYMIMI_cjs = require('./chunk-YUEYMIMI.cjs');
8
+ var chunkJKFIB6SQ_cjs = require('./chunk-JKFIB6SQ.cjs');
9
+ var chunk76AHKXLC_cjs = require('./chunk-76AHKXLC.cjs');
10
+ var chunkIY3VNVXD_cjs = require('./chunk-IY3VNVXD.cjs');
11
+ var chunk633QJMHH_cjs = require('./chunk-633QJMHH.cjs');
12
+ var chunkLZ6A6J2E_cjs = require('./chunk-LZ6A6J2E.cjs');
13
+ var chunkYXCVNX2Q_cjs = require('./chunk-YXCVNX2Q.cjs');
14
+ var chunkYPCD7M2N_cjs = require('./chunk-YPCD7M2N.cjs');
15
+ require('./chunk-XPDEQND7.cjs');
16
+ var chunk345V46LR_cjs = require('./chunk-345V46LR.cjs');
17
+ var chunkCVV4HROS_cjs = require('./chunk-CVV4HROS.cjs');
18
+ var chunkXUDMML5C_cjs = require('./chunk-XUDMML5C.cjs');
19
+ var chunkJLNOESHX_cjs = require('./chunk-JLNOESHX.cjs');
20
+ var chunkEY5LALX2_cjs = require('./chunk-EY5LALX2.cjs');
21
+ var chunk6RQDX6JY_cjs = require('./chunk-6RQDX6JY.cjs');
22
+ var chunkU5SE6W5M_cjs = require('./chunk-U5SE6W5M.cjs');
23
+ var chunkHYUGRMCY_cjs = require('./chunk-HYUGRMCY.cjs');
24
+ var chunkTIIRBQUA_cjs = require('./chunk-TIIRBQUA.cjs');
25
+ var chunkHCNNMUTR_cjs = require('./chunk-HCNNMUTR.cjs');
26
+ var chunk3T54WH4X_cjs = require('./chunk-3T54WH4X.cjs');
27
+ var chunkHPVTVQBJ_cjs = require('./chunk-HPVTVQBJ.cjs');
28
+ var zod = require('zod');
63
29
 
64
30
  // src/errors/ServiceUnavailableError.ts
65
31
  var ServiceUnavailableError = class _ServiceUnavailableError extends Error {
@@ -71,3325 +37,223 @@ var ServiceUnavailableError = class _ServiceUnavailableError extends Error {
71
37
  Object.setPrototypeOf(this, _ServiceUnavailableError.prototype);
72
38
  }
73
39
  };
74
-
75
- // src/constants.ts
76
- var KeboolaHttpHeader = {
77
- STORAGE_API_TOKEN: "X-StorageApi-Token",
78
- MANAGEMENT_API_TOKEN: "X-Kbc-Manageapitoken",
79
- STORAGE_API_URL: "x-storageapi-url"
80
- };
81
- var HttpStatus = {
82
- NO_CONTENT: 204,
83
- BAD_REQUEST: 400,
84
- UNPROCESSABLE_ENTITY: 422,
85
- INTERNAL_SERVER_ERROR: 500,
86
- BAD_GATEWAY: 502,
87
- SERVICE_UNAVAILABLE: 503,
88
- GATEWAY_TIMEOUT: 504
89
- };
90
- var ENCRYPTED_VALUE_PREFIX = "KBC::";
91
-
92
- // src/fetchClient/createFetchClient/utils.ts
93
- var HttpHeader = {
94
- CONTENT_TYPE: "content-type",
95
- CONTENT_DISPOSITION: "content-disposition"
96
- };
97
- var HttpContentType = {
98
- JSON: "application/json",
99
- TEXT_PLAIN: "text/plain",
100
- FORM_DATA: "multipart/form-data",
101
- TEXT_HTML: "text/html"
102
- };
103
- var defaultValidateStatus = ({ response }) => response.status >= 200 && response.status <= 299;
104
- function removeUndefined(obj) {
105
- const objCopy = { ...obj };
106
- for (const [key, value] of Object.entries(objCopy)) {
107
- if (value == null) delete objCopy[key];
108
- }
109
- return objCopy;
110
- }
111
- var parseData = async (response) => {
112
- if (response.status === HttpStatus.NO_CONTENT) return null;
113
- const contentType = response.headers.get(HttpHeader.CONTENT_TYPE);
114
- if (contentType && contentType == HttpContentType.JSON) {
115
- return response.json();
116
- }
117
- const text = await response.text();
118
- try {
119
- return JSON.parse(text);
120
- } catch {
121
- return text;
122
- }
123
- };
124
- var cleanHeadersInit = (headersInit) => {
125
- if (Array.isArray(headersInit)) return headersInit;
126
- if (headersInit instanceof Headers) return headersInit;
127
- if (headersInit == null) return headersInit;
128
- return removeUndefined(headersInit);
129
- };
130
- var createHeaders = (headersInitA, headersInitB) => {
131
- const headersA = new Headers(cleanHeadersInit(headersInitA));
132
- const headersB = new Headers(cleanHeadersInit(headersInitB));
133
- headersB.forEach((value, key) => {
134
- headersA.set(key, value);
135
- });
136
- return headersA;
137
- };
138
- var createPath = (path, pathParam = {}) => path.replace(/\{([^}]+)}/g, (_, key) => {
139
- if (!(key in pathParam))
140
- throw new Error(`Path parameter "${key}" is missing in the path "${path}"`);
141
- return encodeURIComponent(pathParam[key]);
142
- });
143
- var createSearch = (query, options = {}) => {
144
- return qs__default.default.stringify(query, {
145
- encodeValuesOnly: true,
146
- skipNulls: true,
147
- ...options
148
- });
149
- };
150
- var createBody = (body, headers) => {
151
- if (body == null) return null;
152
- if (body instanceof FormData) return body;
153
- if (typeof body === "string") return body;
154
- const stringifyBody = JSON.stringify(body);
155
- const stringBody = stringifyBody === "{}" ? null : stringifyBody;
156
- if (stringBody) headers.set(HttpHeader.CONTENT_TYPE, HttpContentType.JSON);
157
- return stringBody;
158
- };
159
- var parseContentDispositionHeader = (contentDisposition) => {
160
- const type = (() => {
161
- const typeMatch = contentDisposition?.match(/^\s*(inline|attachment)\s*;/i);
162
- return typeMatch?.[1]?.toLowerCase() ?? "unknown";
163
- })();
164
- const filename = (() => {
165
- const filenameMatch = contentDisposition?.match(/filename="([^"]+)"/i);
166
- if (filenameMatch) return filenameMatch[1];
167
- const encodedFilenameMatch = contentDisposition?.match(/filename\*=(?:UTF-8'')?([^;]+)/i);
168
- if (encodedFilenameMatch?.[1]) return decodeURIComponent(encodedFilenameMatch[1]);
169
- const unquotedFilenameMatch = contentDisposition?.match(/filename=([^;]+)/i);
170
- return unquotedFilenameMatch?.[1] ?? null;
171
- })();
172
- return { type, filename };
173
- };
174
- var createFetchRequest = ({
175
- url,
176
- method,
177
- params,
178
- options = {},
179
- defaultOptions
180
- }) => {
181
- const {
182
- baseUrl,
183
- validateStatus: defValidateStatus = defaultValidateStatus,
184
- headers: defaultHeaders,
185
- ...restDefaultOptions
186
- } = defaultOptions;
187
- const { validateStatus, queryArrayFormat, headers: endpointHeaders, ...restOptions } = options;
188
- const headers = createHeaders(defaultHeaders, endpointHeaders);
189
- const path = createPath(url, params.path);
190
- const search = createSearch(params.query ?? {}, { arrayFormat: queryArrayFormat });
191
- const body = createBody(params.body, headers);
192
- const urlInstance = new URL(baseUrl + path);
193
- urlInstance.search = search;
194
- const request = new Request(urlInstance, {
195
- ...restDefaultOptions,
196
- ...restOptions,
197
- headers,
198
- method: method.toUpperCase(),
199
- body
200
- });
201
- return { request, validateStatus: validateStatus ?? defValidateStatus };
202
- };
203
-
204
- // src/fetchClient/createFetchClient/createFetchClient.ts
205
- var isApiError = (error) => error instanceof ApiError;
206
- var isAbortError = (error) => error instanceof DOMException && error.name === "AbortError";
207
- var isFetchClientError = (error) => error instanceof TypeError || error instanceof SyntaxError || isApiError(error);
208
- var createCoreFetch = (fetchFn) => async ({ request, validateStatus }) => {
209
- const response = await fetchFn(request);
210
- const data = await parseData(response);
211
- const apiResponse = {
212
- request,
213
- response,
214
- data
215
- };
216
- const boolOrError = validateStatus(apiResponse);
217
- if (isApiError(boolOrError)) throw boolOrError;
218
- if (!boolOrError) throw new ApiError(apiResponse);
219
- return apiResponse;
220
- };
221
- var createFetchClient = ({
222
- middlewares = [],
223
- ...defaultOptions
224
- }) => {
225
- const coreFetch = createCoreFetch(defaultOptions.fetchFn ?? fetch);
226
- const fetchWithMiddlewares = middlewares.reduceRight(
227
- (next, middleware) => middleware(next),
228
- coreFetch
229
- );
230
- const createFetchMethod = (method) => async (url, params, options = {}) => {
231
- const request = createFetchRequest({
232
- url,
233
- method,
234
- params,
235
- defaultOptions,
236
- options
237
- });
238
- const methodMiddlewares = options?.middlewares ?? [];
239
- return methodMiddlewares.reduceRight(
240
- (next, middleware) => middleware(next),
241
- fetchWithMiddlewares
242
- )(request);
243
- };
244
- return {
245
- get: createFetchMethod("get"),
246
- post: createFetchMethod("post"),
247
- put: createFetchMethod("put"),
248
- patch: createFetchMethod("patch"),
249
- delete: createFetchMethod("delete")
250
- };
251
- };
252
-
253
- // src/fetchClient/createFetchClient/middlewares.ts
254
- var createCallbackMiddleware = ({ onError, onSettled, onSuccess } = {}) => (next) => async (request) => {
255
- let response;
256
- try {
257
- response = await next(request);
258
- onSuccess?.();
259
- } catch (error) {
260
- onError?.(error);
261
- throw error;
262
- } finally {
263
- onSettled?.();
264
- }
265
- return response;
266
- };
267
-
268
- // src/fetchClient/createGenericFetchClient.ts
269
- var createGenericFetchClient = (defaultOptions) => createFetchClient(defaultOptions);
270
-
271
- // src/fetchClient/createOpenapiFetchClient.ts
272
- var createOpenapiFetchClient = (defaultOptions) => createFetchClient(defaultOptions);
273
-
274
- // src/clients/ai/aiClient.ts
275
- var createAiClient = ({ baseUrl, middlewares }) => {
276
- const client = createOpenapiFetchClient({
277
- baseUrl,
278
- middlewares
279
- });
280
- const describeConfigurationVersion = async (body) => {
281
- const { data } = await client.post("/describe/configuration-version", { body });
282
- return data;
283
- };
284
- const describeConfigurationMerge = async (body) => {
285
- const { data } = await client.post("/describe/configuration-merge", { body });
286
- return data;
287
- };
288
- const explainError = async (body) => {
289
- const { data } = await client.post("/explain", { body });
290
- return data;
291
- };
292
- const describeConfiguration = async (body) => {
293
- const { data } = await client.post("/describe/configuration", { body });
294
- return data;
295
- };
296
- const suggestComponent = async (body) => {
297
- const { data } = await client.post("/suggest/component", { body });
298
- return data;
299
- };
300
- const feedback = async (body) => {
301
- const { data } = await client.post("/feedback", { body });
302
- return data;
303
- };
304
- return {
305
- describeConfigurationVersion,
306
- describeConfigurationMerge,
307
- explainError,
308
- describeConfiguration,
309
- suggestComponent,
310
- feedback
311
- };
312
- };
313
-
314
- // src/clients/assets/assetsClient.ts
315
- var createAssetsClient = ({ baseUrl, middlewares }) => {
316
- const client = createGenericFetchClient({
317
- baseUrl,
318
- middlewares
319
- });
320
- const getPublishedChangelogPosts = async (signal) => {
321
- const { data } = await client.get(
322
- "/platform-changelog/published-posts.json",
323
- {},
324
- { signal }
325
- );
326
- return data;
327
- };
328
- return {
329
- getPublishedChangelogPosts
330
- };
331
- };
332
- var SUGGESTION_CATEGORIES = ["error", "maintenance", "documentation"];
333
- var suggestionCategorySchema = z5.z.enum(SUGGESTION_CATEGORIES);
334
- var suggestionSchema = z5.z.object({
335
- label: z5.z.preprocess((v) => typeof v === "string" ? v.slice(0, 80) : v, z5.z.string().max(80)),
336
- prompt: z5.z.string(),
337
- priority: z5.z.number().int().min(1).max(3),
338
- category: suggestionCategorySchema,
339
- reasoning: z5.z.string()
340
- });
341
- z5.z.object({
342
- suggestions: z5.z.array(suggestionSchema).max(4)
343
- });
344
- var suggestionWithIdSchema = suggestionSchema.extend({
345
- id: z5.z.string()
346
- });
347
- var suggestionsApiResponseSchema = z5.z.object({
348
- suggestions: z5.z.array(suggestionWithIdSchema).max(4),
349
- suggestionSessionId: z5.z.string()
350
- });
351
- var recentFailedJobSchema = z5.z.object({
352
- id: z5.z.string(),
353
- status: z5.z.enum(["error", "warning"]),
354
- component: z5.z.string(),
355
- configId: z5.z.string(),
356
- configName: z5.z.string().optional(),
357
- createdTime: z5.z.string(),
358
- durationSeconds: z5.z.number().int().nonnegative().optional(),
359
- errorMessage: z5.z.string().max(200).optional()
360
- });
361
- var deprecatedComponentSchema = z5.z.object({
362
- id: z5.z.string(),
363
- name: z5.z.string(),
364
- type: z5.z.string(),
365
- expiredOn: z5.z.string(),
366
- configCount: z5.z.number().int().nonnegative()
367
- });
368
- var userRecentEditSchema = z5.z.object({
369
- component: z5.z.string(),
370
- configId: z5.z.string(),
371
- configName: z5.z.string(),
372
- lastEdited: z5.z.string()
373
- });
374
- var dashboardContextDataSchema = z5.z.object({
375
- recentFailedJobs: z5.z.array(recentFailedJobSchema).max(5),
376
- deprecatedComponents: z5.z.array(deprecatedComponentSchema).max(5),
377
- userRecentEdits: z5.z.array(userRecentEditSchema).max(5),
378
- currentUserEmail: z5.z.string().email()
379
- });
380
- var JOB_STATUSES = [
381
- "created",
382
- "waiting",
383
- "processing",
384
- "success",
385
- "error",
386
- "terminating",
387
- "terminated",
388
- "cancelled",
389
- "warning"
390
- ];
391
- var jobDetailContextDataSchema = z5.z.object({
392
- job: z5.z.object({
393
- id: z5.z.string(),
394
- status: z5.z.enum(JOB_STATUSES),
395
- component: z5.z.string(),
396
- configId: z5.z.string().optional(),
397
- configName: z5.z.string().optional(),
398
- createdTime: z5.z.string(),
399
- startTime: z5.z.string().optional(),
400
- endTime: z5.z.string().optional(),
401
- durationSeconds: z5.z.number().int().nonnegative().optional(),
402
- errorMessage: z5.z.string().max(500).optional(),
403
- errorType: z5.z.enum(["user", "application"]).optional(),
404
- backendSize: z5.z.string().optional()
405
- }),
406
- component: z5.z.object({
407
- id: z5.z.string(),
408
- name: z5.z.string(),
409
- type: z5.z.string()
410
- }).optional(),
411
- runtimeHistory: z5.z.object({
412
- averageDurationSeconds: z5.z.number().nonnegative().optional(),
413
- minDurationSeconds: z5.z.number().nonnegative().optional(),
414
- maxDurationSeconds: z5.z.number().nonnegative().optional(),
415
- recentJobsCount: z5.z.number().int().nonnegative(),
416
- isSlowerThanAverage: z5.z.boolean().optional(),
417
- isFasterThanAverage: z5.z.boolean().optional(),
418
- percentageDifference: z5.z.number().optional()
419
- }).optional(),
420
- currentUserEmail: z5.z.string().email()
421
- });
422
- var configurationDetailContextDataSchema = z5.z.object({
423
- configuration: z5.z.object({
424
- id: z5.z.string(),
425
- name: z5.z.string(),
426
- description: z5.z.string().max(500).optional(),
427
- component: z5.z.string(),
428
- hasRows: z5.z.boolean(),
429
- rowCount: z5.z.number().int().nonnegative().optional(),
430
- lastChangeDescription: z5.z.string().max(200).optional()
431
- }),
432
- component: z5.z.object({
433
- id: z5.z.string(),
434
- name: z5.z.string(),
435
- type: z5.z.string()
436
- }).optional(),
437
- latestJobs: z5.z.array(
438
- z5.z.object({
439
- id: z5.z.string(),
440
- status: z5.z.enum(JOB_STATUSES),
441
- durationSeconds: z5.z.number().int().nonnegative().optional(),
442
- errorMessage: z5.z.string().max(200).optional(),
443
- createdTime: z5.z.string()
444
- })
445
- ).max(5).optional(),
446
- currentUserEmail: z5.z.string().email()
447
- });
448
- var dashboardSuggestionsRequestSchema = z5.z.object({
449
- context: z5.z.literal("dashboard"),
450
- data: dashboardContextDataSchema
451
- });
452
- var jobDetailSuggestionsRequestSchema = z5.z.object({
453
- context: z5.z.literal("job-detail"),
454
- data: jobDetailContextDataSchema
455
- });
456
- var configurationDetailSuggestionsRequestSchema = z5.z.object({
457
- context: z5.z.literal("configuration-detail"),
458
- data: configurationDetailContextDataSchema
40
+ var agentSettingsSchema = zod.z.object({
41
+ projectId: zod.z.string(),
42
+ customInstructions: zod.z.string().nullable(),
43
+ createdAt: zod.z.string(),
44
+ updatedAt: zod.z.string()
45
+ });
46
+ var toolPermissionValueSchema = zod.z.enum(["always_allow", "always_ask", "blocked"]);
47
+ var userAgentSettingsSchema = zod.z.object({
48
+ projectId: zod.z.string(),
49
+ userId: zod.z.string(),
50
+ customInstructions: zod.z.string().nullable(),
51
+ toolPermissions: zod.z.record(zod.z.string(), toolPermissionValueSchema).nullable(),
52
+ createdAt: zod.z.string(),
53
+ updatedAt: zod.z.string()
54
+ });
55
+ var toolInfoSchema = zod.z.object({
56
+ name: zod.z.string(),
57
+ description: zod.z.string(),
58
+ readOnly: zod.z.boolean()
59
+ });
60
+ var toolsListResponseSchema = zod.z.object({
61
+ tools: zod.z.array(toolInfoSchema)
62
+ });
63
+ var sandboxFileEntrySchema = zod.z.object({
64
+ name: zod.z.string(),
65
+ path: zod.z.string(),
66
+ type: zod.z.enum(["file", "dir"]),
67
+ size: zod.z.number().int().nonnegative().optional()
68
+ });
69
+ var sandboxFileListingSchema = zod.z.object({
70
+ entries: zod.z.array(sandboxFileEntrySchema)
71
+ });
72
+ var sandboxFileContentSchema = zod.z.object({
73
+ content: zod.z.string(),
74
+ encoding: zod.z.enum(["utf-8", "binary"]),
75
+ truncated: zod.z.boolean(),
76
+ size: zod.z.number().int().nonnegative()
77
+ });
78
+ var sandboxGitBranchSchema = zod.z.object({
79
+ branch: zod.z.string().nullable()
459
80
  });
460
- z5.z.discriminatedUnion("context", [
461
- dashboardSuggestionsRequestSchema,
462
- jobDetailSuggestionsRequestSchema,
463
- configurationDetailSuggestionsRequestSchema
464
- ]);
465
-
466
- // src/clients/chat/chatClient.ts
467
- var agentSettingsSchema = z5.z.object({
468
- projectId: z5.z.string(),
469
- customInstructions: z5.z.string().nullable(),
470
- createdAt: z5.z.string(),
471
- updatedAt: z5.z.string()
472
- });
473
- var toolPermissionValueSchema = z5.z.enum(["always_allow", "always_ask", "blocked"]);
474
- var userAgentSettingsSchema = z5.z.object({
475
- projectId: z5.z.string(),
476
- userId: z5.z.string(),
477
- customInstructions: z5.z.string().nullable(),
478
- toolPermissions: z5.z.record(z5.z.string(), toolPermissionValueSchema).nullable(),
479
- createdAt: z5.z.string(),
480
- updatedAt: z5.z.string()
481
- });
482
- var toolInfoSchema = z5.z.object({
483
- name: z5.z.string(),
484
- description: z5.z.string(),
485
- readOnly: z5.z.boolean()
486
- });
487
- var toolsListResponseSchema = z5.z.object({
488
- tools: z5.z.array(toolInfoSchema)
489
- });
490
- var createChatClient = ({ baseUrl, middlewares, storageApiUrl }) => {
491
- const client = createOpenapiFetchClient({
492
- baseUrl,
493
- headers: new Headers({
494
- [KeboolaHttpHeader.STORAGE_API_URL]: storageApiUrl
495
- }),
496
- middlewares
497
- });
81
+ var createKaiAgentClient = ({ baseUrl, middlewares }) => {
82
+ const clientOptions = { baseUrl: chunkHPVTVQBJ_cjs.normalizeBaseUrl(baseUrl), middlewares };
83
+ const client = chunkHPVTVQBJ_cjs.createOpenapiFetchClient(clientOptions);
84
+ const genericClient = chunkHPVTVQBJ_cjs.createGenericFetchClient(clientOptions);
498
85
  const getHistory = async (params) => {
499
- const { data } = await client.get("/history", { query: params });
86
+ const { data } = await client.get("/api/history", { query: params });
500
87
  return data;
501
88
  };
502
89
  const getChat = async (chatId, signal) => {
503
- const { data } = await client.get("/chat/{id}", { path: { id: chatId } }, { signal });
90
+ const { data } = await client.get("/api/chat/{id}", { path: { id: chatId } }, { signal });
504
91
  return data;
505
92
  };
506
93
  const deleteChat = async (chatId) => {
507
- const { data } = await client.delete("/chat", { query: { id: chatId } });
508
- return data;
509
- };
510
- const getVotes = async (chatId) => {
511
- const { data } = await client.get("/vote", { query: { chatId } });
512
- return data;
513
- };
514
- const submitVote = async (params) => {
515
- await client.patch("/vote", { body: params });
516
- };
517
- const createChat = async (request) => {
518
- const { response } = await client.post("/chat", { body: request });
519
- return response;
520
- };
521
- const getUsage = async (signal) => {
522
- const { data } = await client.get("/usage", {}, { signal });
523
- return data;
524
- };
525
- const getSuggestions = async (request, signal) => {
526
- const { data } = await client.post("/suggestions", { body: request }, { signal });
527
- const result = suggestionsApiResponseSchema.safeParse(data);
528
- if (!result.success) {
529
- throw new Error("Invalid suggestions response format");
530
- }
531
- return result.data;
532
- };
533
- const getAgentSettings = async (signal) => {
534
- const { data } = await client.get("/settings", {}, { signal });
535
- const result = agentSettingsSchema.safeParse(data);
536
- if (!result.success) {
537
- throw new Error("Invalid agent settings response format");
538
- }
539
- return result.data;
540
- };
541
- const updateAgentSettings = async (request, signal) => {
542
- const { data } = await client.patch("/settings", { body: request }, { signal });
543
- const result = agentSettingsSchema.safeParse(data);
544
- if (!result.success) {
545
- throw new Error("Invalid agent settings response format");
546
- }
547
- return result.data;
548
- };
549
- const getUserAgentSettings = async (signal) => {
550
- const { data } = await client.get("/settings/user", {}, { signal });
551
- const result = userAgentSettingsSchema.safeParse(data);
552
- if (!result.success) {
553
- throw new Error("Invalid user agent settings response format");
554
- }
555
- return result.data;
556
- };
557
- const updateUserAgentSettings = async (request, signal) => {
558
- const { data } = await client.patch("/settings/user", { body: request }, { signal });
559
- const result = userAgentSettingsSchema.safeParse(data);
560
- if (!result.success) {
561
- throw new Error("Invalid user agent settings response format");
562
- }
563
- return result.data;
564
- };
565
- const getToolsList = async (signal) => {
566
- const { data } = await client.get("/settings/tools", {}, { signal });
567
- const result = toolsListResponseSchema.safeParse(data);
568
- if (!result.success) {
569
- throw new Error("Invalid tools list response format");
570
- }
571
- return result.data;
572
- };
573
- return {
574
- getHistory,
575
- getChat,
576
- deleteChat,
577
- createChat,
578
- getVotes,
579
- submitVote,
580
- getUsage,
581
- getSuggestions,
582
- getAgentSettings,
583
- updateAgentSettings,
584
- getUserAgentSettings,
585
- updateUserAgentSettings,
586
- getToolsList
587
- };
588
- };
589
- var TailError = z5__namespace.object({
590
- context: z5__namespace.object({
591
- code: z5__namespace.string()
592
- })
593
- });
594
- dayjs__default.default.extend(utc__default.default);
595
- var ISO_TIMESTAMP_REGEX = /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z/;
596
- var LEADING_ISO_TIMESTAMP_REGEX = /^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z)\s?/;
597
- var tryParseJsonl = (line) => {
598
- if (!line.startsWith("{")) return null;
599
- let parsed;
600
- try {
601
- parsed = JSON.parse(line);
602
- } catch {
603
- return null;
604
- }
605
- if (typeof parsed !== "object" || parsed === null) return null;
606
- const record = parsed;
607
- const { timestamp, message: message2 } = record;
608
- if (typeof timestamp !== "string" || typeof message2 !== "string") return null;
609
- return {
610
- timestamp,
611
- message: message2
612
- };
613
- };
614
- var parsePlainTextLine = (line) => {
615
- const match = line.match(LEADING_ISO_TIMESTAMP_REGEX);
616
- if (match) {
617
- return { timestamp: match[1], message: line.slice(match[0].length) };
618
- }
619
- return { timestamp: null, message: line };
620
- };
621
- var parseLogLine = (line) => tryParseJsonl(line) ?? parsePlainTextLine(line);
622
- var toLogEntryFromObject = (raw) => {
623
- if (typeof raw.message !== "string") return null;
624
- return {
625
- timestamp: typeof raw.timestamp === "string" ? raw.timestamp : null,
626
- message: raw.message
627
- };
628
- };
629
- var isPlainObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
630
- var parseLogLines = (raw) => {
631
- if (raw === null || raw === void 0 || raw === "") return [];
632
- if (Array.isArray(raw)) {
633
- return raw.flatMap((item) => {
634
- if (typeof item === "string") return item === "" ? [] : [parseLogLine(item)];
635
- if (isPlainObject(item)) {
636
- const entry = toLogEntryFromObject(item);
637
- return entry ? [entry] : [];
638
- }
639
- return [];
640
- });
641
- }
642
- if (isPlainObject(raw)) {
643
- const entry = toLogEntryFromObject(raw);
644
- return entry ? [entry] : [];
645
- }
646
- if (typeof raw !== "string") return [];
647
- const lines = raw.split("\n");
648
- const entries = [];
649
- for (const line of lines) {
650
- if (line === "") continue;
651
- entries.push(parseLogLine(line));
652
- }
653
- return entries;
654
- };
655
- var parseLastLogTimestamp = (logs) => {
656
- const entries = parseLogLines(logs);
657
- for (let i = entries.length - 1; i >= 0; i--) {
658
- const entry = entries[i];
659
- if (!entry) continue;
660
- if (entry.timestamp) return entry.timestamp;
661
- const match = entry.message.match(ISO_TIMESTAMP_REGEX);
662
- if (match) return match[0];
663
- }
664
- return null;
665
- };
666
- var calculateNextLogTimestamp = (timestamp) => {
667
- if (timestamp === null) return null;
668
- return dayjs__default.default(timestamp).utc().add(1, "second").utc().format();
669
- };
670
- var prepareAppRun = (appRun) => {
671
- return {
672
- ...appRun,
673
- state: appRun.state ?? (appRun.stoppedAt ? "finished" : "running")
674
- // fallback state for historic non migrated runs
675
- };
676
- };
677
-
678
- // src/clients/dataScience/dataScienceClient.ts
679
- var createDataScienceClient = ({ baseUrl, middlewares }) => {
680
- const client = createOpenapiFetchClient({
681
- baseUrl,
682
- middlewares
683
- });
684
- const getAppRuns = async (appId, query, signal) => {
685
- const { data } = await client.get("/apps/{appId}/runs", { path: { appId }, query }, { signal });
686
- return data.map(prepareAppRun);
687
- };
688
- const getAppRun = async (appId, runId, signal) => {
689
- const { data } = await client.get(
690
- "/apps/{appId}/runs/{runId}",
691
- { path: { appId, runId } },
692
- { signal }
693
- );
694
- return prepareAppRun(data);
695
- };
696
- const getAppLogsDownload = async (id, signal) => {
697
- const { data, response } = await client.get(
698
- "/apps/{appId}/logs/download",
699
- { path: { appId: id } },
700
- { signal }
701
- );
702
- const contentDisposition = parseContentDispositionHeader(
703
- response.headers.get(HttpHeader.CONTENT_DISPOSITION)
704
- );
705
- return {
706
- logs: data,
707
- fileName: contentDisposition?.filename ?? "logs.txt"
708
- };
709
- };
710
- const getAppLogsTail = async (id, { query, signal } = {}) => {
711
- try {
712
- const { data } = await client.get(
713
- "/apps/{appId}/logs/tail",
714
- {
715
- query,
716
- path: {
717
- appId: id
718
- }
719
- },
720
- {
721
- signal
722
- }
723
- );
724
- const logs = data === "" ? null : data;
725
- const lastLogTimestamp = parseLastLogTimestamp(logs);
726
- const nextLogTimestamp = calculateNextLogTimestamp(lastLogTimestamp);
727
- return {
728
- entries: parseLogLines(logs),
729
- nextLogTimestamp
730
- };
731
- } catch (error) {
732
- if (isApiError(error) && error.response.status === HttpStatus.BAD_REQUEST && TailError.safeParse(error.data).data?.context?.code === "apps.appNotRunning") {
733
- return { entries: [], nextLogTimestamp: null };
734
- }
735
- throw error;
736
- }
737
- };
738
- const getApps = async (query, signal) => {
739
- const { data } = await client.get("/apps", { query }, { signal });
740
- return data;
741
- };
742
- const getApp = async (appId, signal) => {
743
- const { data } = await client.get("/apps/{appId}", { path: { appId } }, { signal });
744
- return data;
745
- };
746
- const createApp = async (body, signal) => {
747
- const { data } = await client.post("/apps", { body }, { signal });
748
- return data;
749
- };
750
- const patchApp = async (appId, body, signal) => {
751
- const { data } = await client.patch(
752
- "/apps/{appId}",
753
- {
754
- path: { appId },
755
- body
756
- },
757
- { signal }
758
- );
759
- return data;
760
- };
761
- const deleteApp = async (appId, signal) => {
762
- return client.delete("/apps/{appId}", { path: { appId } }, { signal });
763
- };
764
- const getAppPassword = async (appId, signal) => {
765
- const { data } = await client.get("/apps/{appId}/password", { path: { appId } }, { signal });
766
- return data;
767
- };
768
- const resetAppPassword = async (appId, signal) => {
769
- const { data } = await client.post(
770
- "/apps/{appId}/reset-password",
771
- { path: { appId } },
772
- { signal }
773
- );
774
- return data;
775
- };
776
- const getRuntimes = async (signal) => {
777
- const { data } = await client.get("/runtimes", {}, { signal });
778
- return data;
779
- };
780
- const getSandbox = async (appId, signal) => {
781
- const { data } = await client.get("/sandboxes/{appId}", { path: { appId } }, { signal });
782
- return data;
783
- };
784
- return {
785
- getAppRuns,
786
- getAppRun,
787
- getAppLogsDownload,
788
- getAppLogsTail,
789
- getApps,
790
- getApp,
791
- createApp,
792
- patchApp,
793
- deleteApp,
794
- getAppPassword,
795
- resetAppPassword,
796
- getRuntimes,
797
- getSandbox
798
- };
799
- };
800
-
801
- // src/clients/editor/editorClient.ts
802
- var createEditorClient = ({ baseUrl, middlewares }) => {
803
- const client = createOpenapiFetchClient({
804
- baseUrl,
805
- middlewares
806
- });
807
- const createSession = async (body) => {
808
- const { data } = await client.post("/sql/sessions", {
809
- body
810
- });
811
- return data;
812
- };
813
- const getSession = async ({ id }, signal) => {
814
- const { data } = await client.get(`/sql/sessions/{id}`, { path: { id } }, { signal });
815
- return data;
816
- };
817
- const getSessions = async (query, signal) => {
818
- const { data } = await client.get(`/sql/sessions`, { query }, { signal });
819
- return data;
820
- };
821
- const getSessionSchema = async ({
822
- id,
823
- onlyWorkspaceSchema = "1",
824
- loadTables = "1"
825
- }, signal) => {
826
- const { data } = await client.get(
827
- `/sql/sessions/{id}/schema`,
828
- {
829
- path: { id },
830
- query: { onlyWorkspaceSchema, loadTables }
831
- },
832
- { signal }
833
- );
94
+ const { data } = await client.delete("/api/chat", { query: { id: chatId } });
834
95
  return data;
835
96
  };
836
- const createQueryJob = async ({ id }, body) => {
837
- const { data } = await client.post(`/sql/sessions/{id}/run-query`, {
838
- path: { id },
839
- body
840
- });
841
- return data;
842
- };
843
- const tablePreview = async ({ id }, body) => {
844
- const { data } = await client.post(`/sql/sessions/{id}/table-preview`, {
845
- path: { id },
846
- body
847
- });
848
- return data;
849
- };
850
- const tableDefinition = async ({ id, ...query }, signal) => {
851
- const { data } = await client.get(
852
- `/sql/sessions/{id}/table-ddl`,
853
- { path: { id }, query },
854
- { signal }
855
- );
856
- return data;
857
- };
858
- const load = async ({ id }, body) => {
859
- const { data } = await client.post(`/sql/sessions/{id}/load`, {
860
- path: { id },
861
- body
862
- });
863
- return data;
864
- };
865
- const unload = async ({ id }, body) => {
866
- const { data } = await client.post(`/sql/sessions/{id}/unload`, {
867
- path: { id },
868
- // BE error: The body is optional; however, without it, the request will fail with the message "Request content type must be application/json."
869
- // This is expected, as our client cannot correctly determine the content type without the body.
870
- // This issue should be addressed to indicate that the body is required in their Swagger schema.
871
- body: body ?? { tableId: null }
872
- });
873
- return data;
874
- };
875
- const resetWorkspacePassword = async (id) => {
876
- const { data } = await client.post(`/sql/sessions/{id}/reset-password`, {
877
- path: { id }
878
- });
879
- return data;
880
- };
881
- const getSessionCredentials = async (id, signal) => {
882
- const { data } = await client.get(
883
- `/sql/sessions/{id}/credentials`,
884
- { path: { id } },
885
- { signal }
886
- );
887
- return data;
888
- };
889
- return {
890
- createSession,
891
- getSession,
892
- getSessions,
893
- getSessionSchema,
894
- createQueryJob,
895
- tablePreview,
896
- tableDefinition,
897
- load,
898
- unload,
899
- resetWorkspacePassword,
900
- getSessionCredentials
901
- };
902
- };
903
-
904
- // src/clients/encryption/encryptionClient.ts
905
- var createEncryptionClient = ({ baseUrl, middlewares }) => {
906
- const client = createGenericFetchClient({
907
- baseUrl,
908
- middlewares
909
- });
910
- const _encrypt = async (data, signal) => {
911
- const response = await client.post(
912
- "/encrypt",
913
- {
914
- query: {
915
- projectId: data.projectId,
916
- branchType: data.branchType,
917
- componentId: data.componentId
918
- },
919
- body: data.data
920
- },
921
- { signal }
922
- );
923
- return response.data;
924
- };
925
- const encrypt = (data, signal) => _encrypt(data, signal);
926
- const encryptSecrets = (data, signal) => _encrypt(data, signal);
927
- return {
928
- encryptSecrets,
929
- encrypt
930
- };
931
- };
932
-
933
- // src/clients/import/importClient.ts
934
- var createImportClient = ({ baseUrl, middlewares }) => {
935
- const client = createGenericFetchClient({
936
- baseUrl,
937
- middlewares
938
- });
939
- const uploadFile = async (file, params = {}, signal) => {
940
- const formData = new FormData();
941
- formData.append("data", file);
942
- if (params.isPermanent) {
943
- formData.append("isPermanent", "1");
944
- }
945
- if (params.notify) {
946
- formData.append("notify", "1");
947
- }
948
- if (params.branchId) {
949
- formData.append("branchId", params.branchId);
950
- }
951
- if (params.tags) {
952
- for (const tag of params.tags) {
953
- formData.append("tags[]", tag);
954
- }
955
- }
956
- const { data } = await client.post(
957
- "/upload-file",
958
- { body: formData },
959
- { signal }
960
- );
961
- return data;
962
- };
963
- return {
964
- uploadFile
965
- };
966
- };
967
- var agentSettingsSchema2 = z5.z.object({
968
- projectId: z5.z.string(),
969
- customInstructions: z5.z.string().nullable(),
970
- createdAt: z5.z.string(),
971
- updatedAt: z5.z.string()
972
- });
973
- var toolPermissionValueSchema2 = z5.z.enum(["always_allow", "always_ask", "blocked"]);
974
- var userAgentSettingsSchema2 = z5.z.object({
975
- projectId: z5.z.string(),
976
- userId: z5.z.string(),
977
- customInstructions: z5.z.string().nullable(),
978
- toolPermissions: z5.z.record(z5.z.string(), toolPermissionValueSchema2).nullable(),
979
- createdAt: z5.z.string(),
980
- updatedAt: z5.z.string()
981
- });
982
- var toolInfoSchema2 = z5.z.object({
983
- name: z5.z.string(),
984
- description: z5.z.string(),
985
- readOnly: z5.z.boolean()
986
- });
987
- var toolsListResponseSchema2 = z5.z.object({
988
- tools: z5.z.array(toolInfoSchema2)
989
- });
990
- var createKaiAgentClient = ({ baseUrl, middlewares }) => {
991
- const clientOptions = { baseUrl, middlewares };
992
- const client = createOpenapiFetchClient(clientOptions);
993
- const genericClient = createGenericFetchClient(clientOptions);
994
- const getHistory = async (params) => {
995
- const { data } = await client.get("/api/history", { query: params });
996
- return data;
997
- };
998
- const getChat = async (chatId, signal) => {
999
- const { data } = await client.get("/api/chat/{id}", { path: { id: chatId } }, { signal });
1000
- return data;
1001
- };
1002
- const deleteChat = async (chatId) => {
1003
- const { data } = await client.delete("/api/chat", { query: { id: chatId } });
1004
- return data;
1005
- };
1006
- const createChat = async (request) => {
1007
- const { response } = await client.post("/api/chat", { body: request });
1008
- return response;
1009
- };
1010
- const getVotes = async (chatId) => {
1011
- const { data } = await client.get("/api/vote", { query: { chatId } });
1012
- return data;
1013
- };
1014
- const submitVote = async (params) => {
1015
- await client.patch("/api/vote", { body: params });
1016
- };
1017
- const getUsage = async (signal) => {
1018
- const { data } = await client.get("/api/usage", {}, { signal });
1019
- return data;
1020
- };
1021
- const approveToolCall = async (chatId, body) => {
1022
- await client.post("/api/chat/{id}/approval", { path: { id: chatId }, body });
1023
- };
1024
- const submitToolOutput = async (chatId, body) => {
1025
- await client.post("/api/chat/{id}/ui-tool-result", { path: { id: chatId }, body });
1026
- };
1027
- const stopChat = async (chatId) => {
1028
- const { data } = await client.post("/api/chat/{id}/stop", { path: { id: chatId } });
1029
- return data;
1030
- };
1031
- const getSuggestions = async (request, signal) => {
1032
- const { data } = await genericClient.post(
1033
- "/api/suggestions",
1034
- { body: request },
1035
- { signal }
1036
- );
1037
- const result = suggestionsApiResponseSchema.safeParse(data);
1038
- if (!result.success) {
1039
- throw new Error("Invalid suggestions response format");
1040
- }
1041
- return result.data;
1042
- };
1043
- const getAgentSettings = async (signal) => {
1044
- const { data } = await genericClient.get("/api/settings", {}, { signal });
1045
- const result = agentSettingsSchema2.safeParse(data);
1046
- if (!result.success) {
1047
- throw new Error("Invalid agent settings response format");
1048
- }
1049
- return result.data;
1050
- };
1051
- const updateAgentSettings = async (request, signal) => {
1052
- const { data } = await genericClient.patch(
1053
- "/api/settings",
1054
- { body: request },
1055
- { signal }
1056
- );
1057
- const result = agentSettingsSchema2.safeParse(data);
1058
- if (!result.success) {
1059
- throw new Error("Invalid agent settings response format");
1060
- }
1061
- return result.data;
1062
- };
1063
- const getUserAgentSettings = async (signal) => {
1064
- const { data } = await genericClient.get(
1065
- "/api/settings/user",
1066
- {},
1067
- { signal }
1068
- );
1069
- const result = userAgentSettingsSchema2.safeParse(data);
1070
- if (!result.success) {
1071
- throw new Error("Invalid user agent settings response format");
1072
- }
1073
- return result.data;
1074
- };
1075
- const updateUserAgentSettings = async (request, signal) => {
1076
- const { data } = await genericClient.patch(
1077
- "/api/settings/user",
1078
- { body: request },
1079
- { signal }
1080
- );
1081
- const result = userAgentSettingsSchema2.safeParse(data);
1082
- if (!result.success) {
1083
- throw new Error("Invalid user agent settings response format");
1084
- }
1085
- return result.data;
1086
- };
1087
- const getToolsList = async (signal) => {
1088
- const { data } = await genericClient.get(
1089
- "/api/settings/tools",
1090
- {},
1091
- { signal }
1092
- );
1093
- const result = toolsListResponseSchema2.safeParse(data);
1094
- if (!result.success) {
1095
- throw new Error("Invalid tools list response format");
1096
- }
1097
- return result.data;
1098
- };
1099
- const chatStreamUrl = baseUrl + "/api/chat";
1100
- return {
1101
- getHistory,
1102
- getChat,
1103
- deleteChat,
1104
- createChat,
1105
- getVotes,
1106
- submitVote,
1107
- getUsage,
1108
- approveToolCall,
1109
- submitToolOutput,
1110
- stopChat,
1111
- getSuggestions,
1112
- getAgentSettings,
1113
- updateAgentSettings,
1114
- getUserAgentSettings,
1115
- updateUserAgentSettings,
1116
- getToolsList,
1117
- chatStreamUrl
1118
- };
1119
- };
1120
-
1121
- // src/clients/verify/createVerifyClient.ts
1122
- var createVerifyClient = () => {
1123
- const storageApiToken = async (host, token, signal) => {
1124
- const { data } = await createGenericFetchClient({
1125
- baseUrl: `${host}/v2/storage`,
1126
- headers: new Headers({ [KeboolaHttpHeader.STORAGE_API_TOKEN]: token })
1127
- }).get("/tokens/verify", {}, { signal });
1128
- return data;
1129
- };
1130
- const managementApiToken = async (host, token, signal) => {
1131
- const { data } = await createGenericFetchClient({
1132
- baseUrl: host,
1133
- headers: new Headers({ [KeboolaHttpHeader.MANAGEMENT_API_TOKEN]: token })
1134
- }).get("/manage/tokens/verify", {}, { signal });
1135
- return data;
1136
- };
1137
- return {
1138
- storageApiToken,
1139
- managementApiToken
1140
- };
1141
- };
1142
-
1143
- // src/clients/management/authMiddleware.ts
1144
- var TOKEN_CACHE_TTL_MS = 6e4;
1145
- var isManagementClientAuthError = (error) => error instanceof ManagementClientAuthError;
1146
- var createAuth = (baseUrl) => {
1147
- const fetchClient = createGenericFetchClient({ baseUrl });
1148
- const createCurrentUserSessionToken = async (accessToken) => {
1149
- const headers = new Headers({ [KeboolaHttpHeader.MANAGEMENT_API_TOKEN]: accessToken });
1150
- const { data } = await fetchClient.post(
1151
- "/manage/current-user/session-token",
1152
- {},
1153
- { headers }
1154
- );
1155
- return data.token;
1156
- };
1157
- const createAdminAccountSessionToken = async () => {
1158
- const { data } = await fetchClient.post(
1159
- "/admin/account/session-token",
1160
- {},
1161
- {
1162
- // transform valid response, to invalid and throw custom error
1163
- validateStatus: (apiResponse) => {
1164
- const { response } = apiResponse;
1165
- const isTextContent = response.headers.get(HttpHeader.CONTENT_TYPE)?.includes(HttpContentType.TEXT_HTML);
1166
- if (isTextContent)
1167
- return new ManagementClientAuthError(
1168
- "Your session expired",
1169
- "You will be logged out automatically.",
1170
- apiResponse
1171
- );
1172
- return defaultValidateStatus(apiResponse);
1173
- }
1174
- }
1175
- );
1176
- return data.token;
1177
- };
1178
- return {
1179
- createCurrentUserSessionToken,
1180
- createAdminAccountSessionToken
1181
- };
1182
- };
1183
- var createAuthMiddleware = ({
1184
- accessToken,
1185
- baseUrl
1186
- }) => {
1187
- const auth = createAuth(baseUrl);
1188
- const verify = createVerifyClient();
1189
- let token = accessToken;
1190
- let tokenValidUntil = 0;
1191
- let inflightAuth = null;
1192
- const isDevelopment = process.env.NODE_ENV === "development";
1193
- const ensureValidToken = async () => {
1194
- if (token && Date.now() < tokenValidUntil) return token;
1195
- if (token) {
1196
- const tokenInfo = await verify.managementApiToken(baseUrl, token);
1197
- const isTokenValid = !tokenInfo.isDisabled && !tokenInfo.isExpired;
1198
- if (isTokenValid) {
1199
- tokenValidUntil = Date.now() + TOKEN_CACHE_TTL_MS;
1200
- return token;
1201
- }
1202
- token = isDevelopment ? await auth.createCurrentUserSessionToken(token) : await auth.createAdminAccountSessionToken();
1203
- tokenValidUntil = Date.now() + TOKEN_CACHE_TTL_MS;
1204
- return token;
1205
- }
1206
- token = await auth.createAdminAccountSessionToken();
1207
- tokenValidUntil = Date.now() + TOKEN_CACHE_TTL_MS;
1208
- return token;
1209
- };
1210
- return (next) => async (request) => {
1211
- if (!inflightAuth) {
1212
- inflightAuth = ensureValidToken().finally(() => {
1213
- inflightAuth = null;
1214
- });
1215
- }
1216
- const validToken = await inflightAuth;
1217
- request.request.headers.set(KeboolaHttpHeader.MANAGEMENT_API_TOKEN, validToken);
1218
- return next(request);
1219
- };
1220
- };
1221
-
1222
- // src/clients/management/currentUser/currentUser.ts
1223
- var createCurrentUser = (client) => {
1224
- const getMaintainerInvitations = async (signal) => {
1225
- const { data } = await client.get(
1226
- "/manage/current-user/maintainers-invitations",
1227
- {},
1228
- { signal }
1229
- );
1230
- return data;
1231
- };
1232
- const getMaintainerInvitation = async (id, signal) => {
1233
- const { data } = await client.get(
1234
- "/manage/current-user/maintainers-invitations/{id}",
1235
- { path: { id } },
1236
- { signal }
1237
- );
1238
- return data;
1239
- };
1240
- const acceptMaintainerInvitation = async (id) => {
1241
- await client.put("/manage/current-user/maintainers-invitations/{id}", { path: { id } });
1242
- };
1243
- const rejectMaintainerInvitation = async (id) => {
1244
- await client.delete("/manage/current-user/maintainers-invitations/{id}", { path: { id } });
1245
- };
1246
- const getOrganizationInvitations = async (signal) => {
1247
- const { data } = await client.get(
1248
- "/manage/current-user/organizations-invitations",
1249
- {},
1250
- { signal }
1251
- );
1252
- return data;
1253
- };
1254
- const getOrganizationInvitation = async (id, signal) => {
1255
- const { data } = await client.get(
1256
- "/manage/current-user/organizations-invitations/{id}",
1257
- { path: { id } },
1258
- { signal }
1259
- );
1260
- return data;
1261
- };
1262
- const acceptOrganizationInvitation = async (id) => {
1263
- await client.put("/manage/current-user/organizations-invitations/{id}", { path: { id } });
1264
- };
1265
- const rejectOrganizationInvitation = async (id) => {
1266
- await client.delete("/manage/current-user/organizations-invitations/{id}", { path: { id } });
1267
- };
1268
- const getProjectInvitations = async (signal) => {
1269
- const { data } = await client.get("/manage/current-user/projects-invitations", {}, { signal });
1270
- return data;
1271
- };
1272
- const getProjectInvitation = async (id, signal) => {
1273
- const { data } = await client.get(
1274
- "/manage/current-user/projects-invitations/{id}",
1275
- { path: { id } },
1276
- { signal }
1277
- );
1278
- return data;
1279
- };
1280
- const acceptProjectInvitation = async (id) => {
1281
- await client.put("/manage/current-user/projects-invitations/{id}", { path: { id } });
1282
- };
1283
- const rejectProjectInvitation = async (id) => {
1284
- await client.delete("/manage/current-user/projects-invitations/{id}", { path: { id } });
1285
- };
1286
- const getProjectJoinRequests = async (signal) => {
1287
- const { data } = await client.get(
1288
- "/manage/current-user/projects-join-requests",
1289
- {},
1290
- { signal }
1291
- );
1292
- return data;
1293
- };
1294
- const deleteProjectJoinRequest = async (id) => {
1295
- await client.delete("/manage/current-user/projects-join-requests/{id}", { path: { id } });
1296
- };
1297
- return {
1298
- getMaintainerInvitations,
1299
- getMaintainerInvitation,
1300
- acceptMaintainerInvitation,
1301
- rejectMaintainerInvitation,
1302
- getOrganizationInvitations,
1303
- getOrganizationInvitation,
1304
- acceptOrganizationInvitation,
1305
- rejectOrganizationInvitation,
1306
- getProjectInvitations,
1307
- getProjectInvitation,
1308
- acceptProjectInvitation,
1309
- rejectProjectInvitation,
1310
- getProjectJoinRequests,
1311
- deleteProjectJoinRequest
1312
- };
1313
- };
1314
-
1315
- // src/clients/management/features/features.ts
1316
- var createFeatures = (client) => {
1317
- const getAllFeatures = async (query, signal) => {
1318
- const { data } = await client.get(
1319
- "/features",
1320
- { query },
1321
- { signal }
1322
- );
1323
- return data;
1324
- };
1325
- return {
1326
- getAllFeatures
1327
- };
1328
- };
1329
-
1330
- // src/clients/management/maintainers/maintainers.ts
1331
- var createMaintainers = (client) => {
1332
- const getMaintainers = async (signal) => {
1333
- const { data } = await client.get("/manage/maintainers", {}, { signal });
1334
- return data;
1335
- };
1336
- const getMaintainer = async (maintainerId, signal) => {
1337
- const { data } = await client.get(
1338
- "/manage/maintainers/{id}",
1339
- { path: { id: maintainerId } },
1340
- { signal }
1341
- );
1342
- return data;
1343
- };
1344
- const createMaintainer = async (body) => {
1345
- const { data } = await client.post("/manage/maintainers", { body });
1346
- return data;
1347
- };
1348
- const updateMaintainer = async ({
1349
- maintainerId,
1350
- ...body
1351
- }) => {
1352
- const { data } = await client.patch("/manage/maintainers/{id}", {
1353
- path: { id: maintainerId },
1354
- body
1355
- });
1356
- return data;
1357
- };
1358
- const deleteMaintainer = async (maintainerId) => {
1359
- await client.delete("/manage/maintainers/{id}", { path: { id: maintainerId } });
1360
- };
1361
- const getMaintainerUsers = async (maintainerId, signal) => {
1362
- const { data } = await client.get(
1363
- "/manage/maintainers/{id}/users",
1364
- { path: { id: maintainerId } },
1365
- { signal }
1366
- );
1367
- return data;
1368
- };
1369
- const addMaintainerUser = async ({
1370
- maintainerId,
1371
- ...body
1372
- }) => {
1373
- const { data } = await client.post("/manage/maintainers/{id}/users", {
1374
- path: { id: maintainerId },
1375
- body
1376
- });
1377
- return data;
1378
- };
1379
- const removeMaintainerUser = async ({
1380
- maintainerId,
1381
- adminId
1382
- }) => {
1383
- await client.delete("/manage/maintainers/{id}/users/{adminId}", {
1384
- path: { id: maintainerId, adminId }
1385
- });
1386
- };
1387
- const getMaintainerInvitations = async (maintainerId, signal) => {
1388
- const { data } = await client.get(
1389
- "/manage/maintainers/{id}/invitations",
1390
- { path: { id: maintainerId } },
1391
- { signal }
1392
- );
1393
- return data;
1394
- };
1395
- const getMaintainerInvitation = async ({ maintainerId, invitationId }, signal) => {
1396
- const { data } = await client.get(
1397
- "/manage/maintainers/{id}/invitations/{invitationId}",
1398
- { path: { id: maintainerId, invitationId } },
1399
- { signal }
1400
- );
1401
- return data;
1402
- };
1403
- const createMaintainerInvitation = async ({
1404
- maintainerId,
1405
- ...body
1406
- }) => {
1407
- const { data } = await client.post("/manage/maintainers/{id}/invitations", {
1408
- path: { id: maintainerId },
1409
- body
1410
- });
1411
- return data;
1412
- };
1413
- const deleteMaintainerInvitation = async ({
1414
- maintainerId,
1415
- invitationId
1416
- }) => {
1417
- await client.delete("/manage/maintainers/{id}/invitations/{invitationId}", {
1418
- path: { id: maintainerId, invitationId }
1419
- });
1420
- };
1421
- const createMaintainerOrganization = async ({
1422
- maintainerId,
1423
- ...body
1424
- }) => {
1425
- const { data } = await client.post("/manage/maintainers/{id}/organizations", {
1426
- path: { id: maintainerId },
1427
- body
1428
- });
1429
- return data;
1430
- };
1431
- const getMaintainerMetadata = async (maintainerId, signal) => {
1432
- const { data } = await client.get(
1433
- "/manage/maintainers/{id}/metadata",
1434
- { path: { id: maintainerId } },
1435
- { signal }
1436
- );
1437
- return data;
1438
- };
1439
- const setMaintainerMetadata = async ({
1440
- maintainerId,
1441
- ...body
1442
- }) => {
1443
- const { data } = await client.post("/manage/maintainers/{id}/metadata", {
1444
- path: { id: maintainerId },
1445
- body
1446
- });
1447
- return data;
1448
- };
1449
- const deleteMaintainerMetadata = async ({
1450
- maintainerId,
1451
- metadataId
1452
- }) => {
1453
- await client.delete("/manage/maintainers/{id}/metadata/{metadataId}", {
1454
- path: { id: maintainerId, metadataId }
1455
- });
1456
- };
1457
- return {
1458
- getMaintainers,
1459
- getMaintainer,
1460
- createMaintainer,
1461
- updateMaintainer,
1462
- deleteMaintainer,
1463
- getMaintainerUsers,
1464
- addMaintainerUser,
1465
- removeMaintainerUser,
1466
- getMaintainerInvitations,
1467
- getMaintainerInvitation,
1468
- createMaintainerInvitation,
1469
- deleteMaintainerInvitation,
1470
- createMaintainerOrganization,
1471
- getMaintainerMetadata,
1472
- setMaintainerMetadata,
1473
- deleteMaintainerMetadata
1474
- };
1475
- };
1476
-
1477
- // src/clients/management/organizations/organizations.ts
1478
- var createOrganizations = (client) => {
1479
- const getOrganizations = async (signal) => {
1480
- const { data } = await client.get("/manage/organizations", {}, { signal });
1481
- return data;
1482
- };
1483
- const getOrganization = async (organizationId, signal) => {
1484
- const { data } = await client.get(
1485
- "/manage/organizations/{id}",
1486
- { path: { id: organizationId } },
1487
- { signal }
1488
- );
1489
- return data;
1490
- };
1491
- const updateOrganization = async ({
1492
- organizationId,
1493
- ...body
1494
- }) => {
1495
- const { data } = await client.patch("/manage/organizations/{id}", {
1496
- path: { id: organizationId },
1497
- body
1498
- });
1499
- return data;
1500
- };
1501
- const deleteOrganization = async (organizationId) => {
1502
- await client.delete("/manage/organizations/{id}", { path: { id: organizationId } });
1503
- };
1504
- const forceMfa = async (organizationId) => {
1505
- const { data } = await client.patch("/manage/organizations/{id}/force-mfa", {
1506
- path: { id: organizationId }
1507
- });
1508
- return data;
1509
- };
1510
- const joinOrganization = async (organizationId) => {
1511
- await client.post("/manage/organizations/{id}/join-organization", {
1512
- path: { id: organizationId }
1513
- });
1514
- };
1515
- const getOrganizationUsers = async (organizationId, signal) => {
1516
- const { data } = await client.get(
1517
- "/manage/organizations/{id}/users",
1518
- { path: { id: organizationId } },
1519
- { signal }
1520
- );
1521
- return data;
1522
- };
1523
- const addOrganizationUser = async ({
1524
- organizationId,
1525
- ...body
1526
- }) => {
1527
- const { data } = await client.post("/manage/organizations/{id}/users", {
1528
- path: { id: organizationId },
1529
- body
1530
- });
1531
- return data;
1532
- };
1533
- const removeOrganizationUser = async ({
1534
- organizationId,
1535
- userId
1536
- }) => {
1537
- await client.delete("/manage/organizations/{id}/users/{userId}", {
1538
- path: { id: organizationId, userId }
1539
- });
1540
- };
1541
- const getOrganizationProjectsUsers = async (organizationId, signal) => {
1542
- const { data } = await client.get(
1543
- "/manage/organizations/{id}/projects-users",
1544
- { path: { id: organizationId } },
1545
- { signal }
1546
- );
1547
- return data;
1548
- };
1549
- const getOrganizationInvitations = async (organizationId, signal) => {
1550
- const { data } = await client.get(
1551
- "/manage/organizations/{id}/invitations",
1552
- { path: { id: organizationId } },
1553
- { signal }
1554
- );
1555
- return data;
1556
- };
1557
- const getOrganizationInvitation = async ({ organizationId, invitationId }, signal) => {
1558
- const { data } = await client.get(
1559
- "/manage/organizations/{id}/invitations/{invitationId}",
1560
- { path: { id: organizationId, invitationId } },
1561
- { signal }
1562
- );
1563
- return data;
1564
- };
1565
- const createOrganizationInvitation = async ({
1566
- organizationId,
1567
- ...body
1568
- }) => {
1569
- const { data } = await client.post("/manage/organizations/{id}/invitations", {
1570
- path: { id: organizationId },
1571
- body
1572
- });
1573
- return data;
1574
- };
1575
- const deleteOrganizationInvitation = async ({
1576
- organizationId,
1577
- invitationId
1578
- }) => {
1579
- await client.delete("/manage/organizations/{id}/invitations/{invitationId}", {
1580
- path: { id: organizationId, invitationId }
1581
- });
1582
- };
1583
- const getOrganizationProjects = async (organizationId, signal) => {
1584
- const { data } = await client.get(
1585
- "/manage/organizations/{id}/projects",
1586
- { path: { id: organizationId } },
1587
- { signal }
1588
- );
1589
- return data;
1590
- };
1591
- const createOrganizationProject = async ({
1592
- organizationId,
1593
- ...body
1594
- }) => {
1595
- const { data } = await client.post("/manage/organizations/{id}/projects", {
1596
- path: { id: organizationId },
1597
- body
1598
- });
1599
- return data;
1600
- };
1601
- const getOrganizationMetadata = async (organizationId, signal) => {
1602
- const { data } = await client.get(
1603
- "/manage/organizations/{id}/metadata",
1604
- { path: { id: organizationId } },
1605
- { signal }
1606
- );
1607
- return data;
1608
- };
1609
- const setOrganizationMetadata = async ({
1610
- organizationId,
1611
- ...body
1612
- }) => {
1613
- const { data } = await client.post("/manage/organizations/{id}/metadata", {
1614
- path: { id: organizationId },
1615
- body
1616
- });
1617
- return data;
1618
- };
1619
- const deleteOrganizationMetadata = async ({
1620
- organizationId,
1621
- metadataId
1622
- }) => {
1623
- await client.delete("/manage/organizations/{id}/metadata/{metadataId}", {
1624
- path: { id: organizationId, metadataId }
1625
- });
1626
- };
1627
- return {
1628
- getOrganizations,
1629
- getOrganization,
1630
- updateOrganization,
1631
- deleteOrganization,
1632
- forceMfa,
1633
- joinOrganization,
1634
- getOrganizationUsers,
1635
- addOrganizationUser,
1636
- removeOrganizationUser,
1637
- getOrganizationProjectsUsers,
1638
- getOrganizationInvitations,
1639
- getOrganizationInvitation,
1640
- createOrganizationInvitation,
1641
- deleteOrganizationInvitation,
1642
- getOrganizationProjects,
1643
- createOrganizationProject,
1644
- getOrganizationMetadata,
1645
- setOrganizationMetadata,
1646
- deleteOrganizationMetadata
1647
- };
1648
- };
1649
-
1650
- // src/clients/management/projects/projects.ts
1651
- var createProjects = (client) => {
1652
- const getProject = async (projectId, signal) => {
1653
- const { data } = await client.get(
1654
- "/projects/{projectId}",
1655
- { path: { projectId } },
1656
- { signal }
1657
- );
1658
- return data;
1659
- };
1660
- const addProjectFeature = async ({
1661
- projectId,
1662
- feature
1663
- }) => {
1664
- const { data } = await client.post("/projects/{projectId}/features", { path: { projectId }, body: { feature } });
1665
- return data;
1666
- };
1667
- const removeProjectFeature = async (path) => {
1668
- const { data } = await client.delete(
1669
- "/projects/{projectId}/features/{feature}",
1670
- { path }
1671
- );
1672
- return data;
1673
- };
1674
- const changeProjectUserRole = async ({
1675
- projectId,
1676
- userId,
1677
- role
1678
- }) => {
1679
- const { data } = await client.patch("/projects/{projectId}/users/{userId}", {
1680
- path: { projectId, userId },
1681
- body: { role }
1682
- });
1683
- return data;
1684
- };
1685
- const getProjectUsers = async (projectId, signal) => {
1686
- const { data } = await client.get(
1687
- "/projects/{projectId}/users",
1688
- { path: { projectId } },
1689
- { signal }
1690
- );
1691
- return data;
1692
- };
1693
- const getProjectMetadata = async (projectId, signal) => {
1694
- const { data } = await client.get(
1695
- "/projects/{projectId}/metadata",
1696
- { path: { projectId } },
1697
- { signal }
1698
- );
1699
- return data;
1700
- };
1701
- const setProjectMetadata = async ({
1702
- projectId,
1703
- provider,
1704
- metadata
1705
- }) => {
1706
- const { data } = await client.post("/projects/{projectId}/metadata", {
1707
- path: { projectId },
1708
- body: { provider, metadata }
1709
- });
1710
- return data;
1711
- };
1712
- const getProjectReviewers = async (projectId, signal) => {
1713
- const { data } = await client.get(
1714
- "/projects/{projectId}/reviewers",
1715
- { path: { projectId } },
1716
- { signal }
1717
- );
1718
- return data;
1719
- };
1720
- const setProjectReviewers = async ({
1721
- projectId,
1722
- adminIds
1723
- }) => {
1724
- const { data } = await client.put("/projects/{projectId}/reviewers", {
1725
- path: { projectId },
1726
- body: { adminIds }
1727
- });
1728
- return data;
1729
- };
1730
- return {
1731
- getProject,
1732
- addProjectFeature,
1733
- removeProjectFeature,
1734
- changeProjectUserRole,
1735
- getProjectUsers,
1736
- getProjectMetadata,
1737
- setProjectMetadata,
1738
- getProjectReviewers,
1739
- setProjectReviewers
1740
- };
1741
- };
1742
-
1743
- // src/clients/management/users/users.ts
1744
- var createUsers = (client) => {
1745
- const addUserAdminFeature = async ({ feature, userIdOrMail }, signal) => {
1746
- const { data } = await client.post(
1747
- "/users/{userIdOrMail}/features",
1748
- { path: { userIdOrMail: encodeURIComponent(userIdOrMail) }, body: { feature } },
1749
- { signal }
1750
- );
1751
- return data;
1752
- };
1753
- const removeUserAdminFeature = async ({ userIdOrMail, feature }, signal) => {
1754
- const { data } = await client.delete(
1755
- "/users/{userIdOrMail}/features/{feature}",
1756
- { path: { userIdOrMail: encodeURIComponent(userIdOrMail), feature } },
1757
- { signal }
1758
- );
1759
- return data;
1760
- };
1761
- return {
1762
- addUserAdminFeature,
1763
- removeUserAdminFeature
1764
- };
1765
- };
1766
-
1767
- // src/clients/management/managementClient.ts
1768
- var createManagementClient = ({
1769
- baseUrl,
1770
- callbacks,
1771
- token
1772
- }) => {
1773
- const callbackMiddleware = createCallbackMiddleware(callbacks);
1774
- const authMiddleware = createAuthMiddleware({
1775
- baseUrl,
1776
- accessToken: token
1777
- });
1778
- const middlewares = [
1779
- callbackMiddleware,
1780
- authMiddleware
1781
- // 👈 beware order of middlewares always matter
1782
- ];
1783
- const client = createGenericFetchClient({
1784
- baseUrl: `${baseUrl}/manage`,
1785
- middlewares
1786
- });
1787
- const openApiClient = createOpenapiFetchClient({
1788
- baseUrl,
1789
- middlewares
1790
- });
1791
- const verifyToken = async (signal) => {
1792
- const { data } = await openApiClient.get("/manage/tokens/verify", {}, { signal });
1793
- return data;
1794
- };
1795
- return {
1796
- currentUser: createCurrentUser(openApiClient),
1797
- features: createFeatures(client),
1798
- maintainers: createMaintainers(openApiClient),
1799
- organizations: createOrganizations(openApiClient),
1800
- projects: createProjects(client),
1801
- users: createUsers(client),
1802
- verifyToken
1803
- };
1804
- };
1805
-
1806
- // src/clients/metastore/repository/repository.ts
1807
- var createRepository = (client) => {
1808
- const getMetaObjects = async (input, signal) => {
1809
- const { data } = await client.get(
1810
- "/api/v1/repository/{objectType}",
1811
- {
1812
- path: input
1813
- },
1814
- { signal }
1815
- );
1816
- return data;
1817
- };
1818
- const getMetaObjectRevisions = async (input, signal) => {
1819
- const { data } = await client.get(
1820
- "/api/v1/repository/{objectType}/revisions",
1821
- {
1822
- path: input
1823
- },
1824
- { signal }
1825
- );
1826
- return data;
1827
- };
1828
- const getMetaObject = async (input, signal) => {
1829
- const { data } = await client.get(
1830
- "/api/v1/repository/{objectType}/{UUID}",
1831
- {
1832
- path: input
1833
- },
1834
- {
1835
- signal
1836
- }
1837
- );
1838
- return data;
1839
- };
1840
- const createMetaObject = async ({
1841
- objectType,
1842
- data,
1843
- ...body
1844
- }) => {
1845
- const { data: createdMetaObject } = await client.post("/api/v1/repository/{objectType}", {
1846
- path: { objectType },
1847
- body: {
1848
- data,
1849
- ...body
1850
- }
1851
- });
1852
- return createdMetaObject;
1853
- };
1854
- const deleteMetaObject = async (input) => {
1855
- const { data } = await client.delete("/api/v1/repository/{objectType}/{UUID}", {
1856
- path: input
1857
- });
1858
- return data;
1859
- };
1860
- const updateMetaObject = async ({
1861
- objectType,
1862
- UUID,
1863
- data,
1864
- ...body
1865
- }) => {
1866
- const { data: updatedMetaObject } = await client.patch(
1867
- "/api/v1/repository/{objectType}/{UUID}",
1868
- {
1869
- path: {
1870
- objectType,
1871
- UUID
1872
- },
1873
- body: {
1874
- data,
1875
- ...body
1876
- }
1877
- }
1878
- );
1879
- return updatedMetaObject;
1880
- };
1881
- const replaceMetaObject = async ({
1882
- objectType,
1883
- UUID,
1884
- data,
1885
- ...body
1886
- }) => {
1887
- const { data: replacedMetaObject } = await client.put(
1888
- "/api/v1/repository/{objectType}/{UUID}",
1889
- {
1890
- path: {
1891
- objectType,
1892
- UUID
1893
- },
1894
- body: {
1895
- data,
1896
- ...body
1897
- }
1898
- }
1899
- );
1900
- return replacedMetaObject;
1901
- };
1902
- const getMetaObjectRevision = async (input, signal) => {
1903
- const { data } = await client.get(
1904
- "/api/v1/repository/{objectType}/{UUID}/revisions/{revision}",
1905
- {
1906
- path: input
1907
- },
1908
- { signal }
1909
- );
1910
- return data;
1911
- };
1912
- const deleteMetaObjectRevision = async (input) => {
1913
- const { data } = await client.delete(
1914
- "/api/v1/repository/{objectType}/{UUID}/revisions/{revision}",
1915
- {
1916
- path: input
1917
- }
1918
- );
1919
- return data;
1920
- };
1921
- return {
1922
- // lists
1923
- getMetaObjects,
1924
- getMetaObjectRevisions,
1925
- // objects
1926
- getMetaObject,
1927
- createMetaObject,
1928
- deleteMetaObject,
1929
- updateMetaObject,
1930
- replaceMetaObject,
1931
- // revisons
1932
- getMetaObjectRevision,
1933
- deleteMetaObjectRevision
1934
- };
1935
- };
1936
-
1937
- // src/clients/metastore/schema/schema.ts
1938
- var createSchema = (client) => {
1939
- const getSchema = async (input, signal) => {
1940
- const { data } = await client.get(
1941
- "/api/v1/schema/{objectType}",
1942
- {
1943
- path: input
1944
- },
1945
- { signal }
1946
- );
1947
- return data;
1948
- };
1949
- const getVersionedSchema = async (input, signal) => {
1950
- const { data } = await client.get(
1951
- "/api/v1/schema/{objectType}/{version}",
1952
- {
1953
- path: input
1954
- },
1955
- { signal }
1956
- );
1957
- return data;
1958
- };
1959
- return {
1960
- getSchema,
1961
- getVersionedSchema
1962
- };
1963
- };
1964
-
1965
- // src/clients/metastore/metastoreClient.ts
1966
- var createMetastoreClient = ({ baseUrl, middlewares }) => {
1967
- const client = createOpenapiFetchClient({
1968
- baseUrl,
1969
- middlewares
1970
- });
1971
- const healthCheck = async (signal) => {
1972
- const { data } = await client.get("/health-check", {}, { signal });
1973
- return data;
1974
- };
1975
- return {
1976
- healthCheck,
1977
- repository: createRepository(client),
1978
- schema: createSchema(client)
1979
- };
1980
- };
1981
-
1982
- // src/clients/oauth/oauthClient.ts
1983
- var createOauthClient = ({ baseUrl, middlewares }) => {
1984
- const client = createGenericFetchClient({ baseUrl, middlewares });
1985
- const getCredentials = async (query, signal) => {
1986
- const { data } = await client.get(
1987
- "/credentials",
1988
- { query },
1989
- { signal }
1990
- );
1991
- return data;
1992
- };
1993
- const getCredential = async (componentId, id, signal) => {
1994
- const { data } = await client.get(
1995
- "/credentials/{componentId}/{id}",
1996
- { path: { componentId, id } },
1997
- { signal }
1998
- );
1999
- return data;
2000
- };
2001
- const _createCredentials = async (componentId, body, signal) => {
2002
- const { data } = await client.post(
2003
- "/credentials/{componentId}",
2004
- { path: { componentId }, body },
2005
- { signal }
2006
- );
2007
- return data;
2008
- };
2009
- const _createLegacyCredentials = async (componentId, { data: credentialsData, ...rest }, signal) => {
2010
- const { data } = await client.post(
2011
- "/credentials/{componentId}",
2012
- {
2013
- path: { componentId },
2014
- body: {
2015
- ...rest,
2016
- "#data": JSON.stringify(credentialsData)
2017
- }
2018
- },
2019
- { signal }
2020
- );
2021
- return data;
2022
- };
2023
- const createCredential = async (componentId, body, signal) => {
2024
- try {
2025
- return await _createCredentials(componentId, body, signal);
2026
- } catch (error) {
2027
- if (isApiError(error) && error.response.status === HttpStatus.UNPROCESSABLE_ENTITY) {
2028
- return _createLegacyCredentials(componentId, body, signal);
2029
- }
2030
- throw error;
2031
- }
2032
- };
2033
- const deleteCredential = async (componentId, id, signal) => {
2034
- await client.delete(
2035
- "/credentials/{componentId}/{id}",
2036
- { path: { componentId, id } },
2037
- { signal }
2038
- );
2039
- };
2040
- return {
2041
- getCredentials,
2042
- getCredential,
2043
- createCredential,
2044
- deleteCredential
2045
- };
2046
- };
2047
-
2048
- // src/clients/queryService/queryServiceClient.ts
2049
- var createQueryServiceClient = ({ baseUrl, middlewares }) => {
2050
- const client = createOpenapiFetchClient({
2051
- baseUrl,
2052
- middlewares
2053
- });
2054
- const createQueryJob = async (branchId, workspaceId, body) => {
2055
- const { data } = await client.post(
2056
- "/api/v1/branches/{branchId}/workspaces/{workspaceId}/queries",
2057
- { path: { branchId, workspaceId }, body }
2058
- );
2059
- return data;
2060
- };
2061
- const cancelQueryJob = async (queryJobId) => {
2062
- const { data } = await client.post("/api/v1/queries/{queryJobId}/cancel", {
2063
- path: { queryJobId },
2064
- body: { reason: "Cancelled by user" }
2065
- });
2066
- return data;
2067
- };
2068
- const getQueryJob = async (queryJobId) => {
2069
- const { data } = await client.get("/api/v1/queries/{queryJobId}", { path: { queryJobId } });
2070
- return data;
2071
- };
2072
- const getQueryResults = async (queryJobId, statementId, query) => {
2073
- const { data } = await client.get("/api/v1/queries/{queryJobId}/{statementId}/results", {
2074
- path: { queryJobId, statementId },
2075
- query
2076
- });
2077
- return data;
2078
- };
2079
- const getQueryHistory = async (branchId, workspaceId, query) => {
2080
- const { data } = await client.get(
2081
- "/api/v1/branches/{branchId}/workspaces/{workspaceId}/queries",
2082
- {
2083
- path: { branchId, workspaceId },
2084
- query
2085
- }
2086
- );
2087
- return data;
2088
- };
2089
- const exportResults = async (queryJobId, statementId, query, signal) => {
2090
- const { data, response } = await client.get(
2091
- "/api/v1/queries/{queryJobId}/{statementId}/export",
2092
- {
2093
- path: { queryJobId, statementId },
2094
- query
2095
- },
2096
- { signal }
2097
- );
2098
- const mimeType = response.headers.get(HttpHeader.CONTENT_TYPE) ?? "text/csv";
2099
- const contentDisposition = parseContentDispositionHeader(
2100
- response.headers.get(HttpHeader.CONTENT_DISPOSITION)
2101
- );
2102
- return {
2103
- mimeType,
2104
- content: data,
2105
- fileName: contentDisposition?.filename ?? "export.csv"
2106
- };
2107
- };
2108
- return {
2109
- createQueryJob,
2110
- cancelQueryJob,
2111
- getQueryJob,
2112
- getQueryResults,
2113
- getQueryHistory,
2114
- exportResults
2115
- };
2116
- };
2117
-
2118
- // src/clients/queue/queueClient.ts
2119
- var createQueueClient = ({ baseUrl, middlewares }) => {
2120
- const client = createOpenapiFetchClient({
2121
- baseUrl,
2122
- middlewares
2123
- });
2124
- const getJob = async (jobId, signal) => {
2125
- const { data } = await client.get(
2126
- "/jobs/{jobId}",
2127
- {
2128
- path: { jobId }
2129
- },
2130
- { signal }
2131
- );
2132
- return data;
2133
- };
2134
- const searchJobs = async (query, signal) => {
2135
- const { data } = await client.get(
2136
- "/search/jobs",
2137
- {
2138
- query
2139
- },
2140
- { signal }
2141
- );
2142
- return data;
2143
- };
2144
- return { getJob, searchJobs };
2145
- };
2146
-
2147
- // src/clients/status/statusClient.ts
2148
- var createStatusClient = ({ baseUrl, middlewares }) => {
2149
- const client = createGenericFetchClient({
2150
- baseUrl,
2151
- middlewares
2152
- });
2153
- const getSummary = async (signal) => {
2154
- const { data } = await client.get("/summary.json", {}, { signal });
2155
- return data;
2156
- };
2157
- return {
2158
- getSummary
2159
- };
2160
- };
2161
-
2162
- // src/clients/storage/configurationVersions/configurationVersions.ts
2163
- var createConfigurationVersions = (client) => {
2164
- const listConfigurationVersions = async ({ branchId, componentId, configId }, signal) => {
2165
- const { data } = await client.get(
2166
- "/branch/{branchId}/components/{componentId}/configs/{configId}/versions",
2167
- { path: { branchId, componentId, configId } },
2168
- { signal }
2169
- );
2170
- return data;
2171
- };
2172
- const getConfigurationVersion = async ({ branchId, componentId, configId, versionId }, signal) => {
2173
- const { data } = await client.get(
2174
- "/branch/{branchId}/components/{componentId}/configs/{configId}/versions/{versionId}",
2175
- { path: { branchId, componentId, configId, versionId } },
2176
- { signal }
2177
- );
2178
- return data;
2179
- };
2180
- return {
2181
- listConfigurationVersions,
2182
- getConfigurationVersion
2183
- };
2184
- };
2185
-
2186
- // src/clients/storage/mergeRequests/mergeRequests.ts
2187
- var createMergeRequests = (client) => {
2188
- const getMergeRequests = async (signal) => {
2189
- const { data } = await client.get("/v2/storage/merge-request", {}, { signal });
2190
- return data;
2191
- };
2192
- const getMergeRequest = async (id, signal) => {
2193
- const { data } = await client.get(
2194
- "/v2/storage/merge-request/{id}",
2195
- { path: { id } },
2196
- { signal }
2197
- );
2198
- return data;
2199
- };
2200
- const getMergeRequestWithActivityLog = async (id, signal) => {
2201
- const { data } = await client.get(
2202
- "/v2/storage/merge-request/{id}",
2203
- { path: { id }, query: { include: "activityLog" } },
2204
- { signal }
2205
- );
2206
- return data;
2207
- };
2208
- const createMergeRequest = async (params) => {
2209
- const { data } = await client.post("/v2/storage/merge-request", { body: params });
2210
- return data;
2211
- };
2212
- const updateMergeRequest = async (id, params) => {
2213
- const { data } = await client.put("/v2/storage/merge-request/{id}", {
2214
- path: { id },
2215
- body: params
2216
- });
2217
- return data;
2218
- };
2219
- const requestReview = async (id) => {
2220
- const { data } = await client.put("/v2/storage/merge-request/{id}/request-review", {
2221
- path: { id }
2222
- });
2223
- return data;
2224
- };
2225
- const approveMergeRequest = async (id) => {
2226
- const { data } = await client.put("/v2/storage/merge-request/{id}/approve", {
2227
- path: { id }
2228
- });
2229
- return data;
2230
- };
2231
- const requestChangesMergeRequest = async (id, reason) => {
2232
- const { data } = await client.put("/v2/storage/merge-request/{id}/request-changes", {
2233
- path: { id },
2234
- body: reason ? { reason } : void 0
2235
- });
2236
- return data;
2237
- };
2238
- const getMergeRequestConflicts = async (id, signal) => {
2239
- const { data } = await client.get(
2240
- "/v2/storage/merge-request/{id}/conflicts",
2241
- { path: { id } },
2242
- { signal }
2243
- );
2244
- return data;
2245
- };
2246
- return {
2247
- getMergeRequests,
2248
- getMergeRequest,
2249
- getMergeRequestWithActivityLog,
2250
- createMergeRequest,
2251
- updateMergeRequest,
2252
- requestReview,
2253
- approveMergeRequest,
2254
- requestChangesMergeRequest,
2255
- getMergeRequestConflicts
2256
- };
2257
- };
2258
-
2259
- // src/clients/storage/branches/mappers.ts
2260
- var mapBranchMetadata = (data) => ({
2261
- ...data,
2262
- timestamp: new Date(data.timestamp)
2263
- });
2264
-
2265
- // src/clients/storage/branches/branches.ts
2266
- var createBranches = (client) => {
2267
- const getDevBranches = async (signal) => {
2268
- const { data } = await client.get("/dev-branches", {}, { signal });
2269
- return data;
2270
- };
2271
- const createDevBranchJob = async (body) => {
2272
- const { data } = await client.post(
2273
- "/dev-branches",
2274
- {
2275
- body
2276
- }
2277
- );
2278
- return data;
2279
- };
2280
- const updateDevBranch = async ({
2281
- id,
2282
- name,
2283
- description
2284
- }) => {
2285
- const { data } = await client.put(
2286
- "/dev-branches/{id}",
2287
- {
2288
- path: { id },
2289
- body: {
2290
- name,
2291
- description
2292
- }
2293
- }
2294
- );
2295
- return data;
2296
- };
2297
- const deleteDevBranchJob = async (id) => {
2298
- const { data } = await client.delete(
2299
- "/dev-branches/{id}",
2300
- {
2301
- path: { id }
2302
- }
2303
- );
2304
- return data;
2305
- };
2306
- const getDevBranchMetadata = async (id, signal) => {
2307
- const { data } = await client.get(
2308
- "/branch/{id}/metadata",
2309
- { path: { id } },
2310
- { signal }
2311
- );
2312
- return data.map(mapBranchMetadata);
2313
- };
2314
- const saveDevBranchMetadata = async (id, metadata, signal) => {
2315
- const { data } = await client.post("/branch/{id}/metadata", { path: { id }, body: { metadata } }, { signal });
2316
- return data.map(mapBranchMetadata);
2317
- };
2318
- const deleteDevBranchMetadata = async (id, metadataId, signal) => {
2319
- await client.delete(
2320
- "/branch/{id}/metadata/{metadataId}",
2321
- { path: { id, metadataId } },
2322
- { signal }
2323
- );
2324
- };
2325
- return {
2326
- getDevBranches,
2327
- createDevBranchJob,
2328
- updateDevBranch,
2329
- deleteDevBranchJob,
2330
- getDevBranchMetadata,
2331
- saveDevBranchMetadata,
2332
- deleteDevBranchMetadata
2333
- };
2334
- };
2335
-
2336
- // src/clients/storage/buckets/buckets.ts
2337
- var createBuckets = (client) => {
2338
- const getBuckets = async (query = {}, signal) => {
2339
- const { data } = await client.get(
2340
- `/buckets`,
2341
- { query },
2342
- { signal, queryArrayFormat: "comma" }
2343
- );
2344
- return data;
2345
- };
2346
- const getBucket = async (id, signal) => {
2347
- const { data } = await client.get(
2348
- `/buckets/{id}`,
2349
- { path: { id } },
2350
- { signal }
2351
- );
2352
- return data;
2353
- };
2354
- const createBucket = async (body) => {
2355
- const { data } = await client.post(`/buckets`, {
2356
- body
2357
- });
2358
- return data;
2359
- };
2360
- const updateBucket = async (id, body) => {
2361
- const { data } = await client.patch(
2362
- `/buckets/{id}`,
2363
- { path: { id }, body }
2364
- );
2365
- return data;
2366
- };
2367
- const deleteBucket = async (id) => {
2368
- await client.delete(`/buckets/{id}`, { path: { id } });
2369
- };
2370
- const deleteBucketAsync = async (id, options = {}) => {
2371
- const { data } = await client.delete(`/buckets/{id}`, { path: { id }, query: { async: true, ...options } });
2372
- return data;
2373
- };
2374
- const createScheduledRefresh = async (input) => {
2375
- const { branchId, bucketId, cronExpression } = input;
2376
- const { data } = await client.post(`/branch/{branchId}/buckets/{bucketId}/scheduled-tasks/refresh`, {
2377
- path: { branchId, bucketId },
2378
- body: { cronExpression }
2379
- });
2380
- return data;
2381
- };
2382
- const deleteScheduledTask = async (taskId) => {
2383
- await client.delete(`/scheduled-tasks/{taskId}`, {
2384
- path: { taskId }
2385
- });
2386
- };
2387
- return {
2388
- getBuckets,
2389
- getBucket,
2390
- createBucket,
2391
- updateBucket,
2392
- deleteBucket,
2393
- deleteBucketAsync,
2394
- createScheduledRefresh,
2395
- deleteScheduledTask
2396
- };
2397
- };
2398
-
2399
- // src/utils/assert.ts
2400
- function assert(value, message2) {
2401
- if (value == null) {
2402
- throw new Error(message2);
2403
- }
2404
- }
2405
-
2406
- // src/utils/concurrent.ts
2407
- var concurrent = async ({
2408
- items,
2409
- process: process2,
2410
- concurrency = 2,
2411
- middlewares = []
2412
- }) => {
2413
- if (concurrency < 1) throw new Error("Concurrency must be greater than 0");
2414
- if (items.length === 0) return [];
2415
- if (concurrency === Infinity)
2416
- return Promise.all(items.map((item, index) => process2(item, index, items.length)));
2417
- const n = items.length;
2418
- const results = new Array(n);
2419
- const processWithMiddlewares = middlewares.reduceRight(
2420
- (next, middleware) => middleware(next),
2421
- process2
2422
- );
2423
- const queue = items.map((item, index) => async () => {
2424
- results[index] = await processWithMiddlewares(item, index, items.length);
2425
- });
2426
- const workers = Array.from(
2427
- { length: Math.min(concurrency, items.length) },
2428
- async function processQueue() {
2429
- while (queue.length) {
2430
- await queue.shift()?.();
2431
- }
2432
- }
2433
- );
2434
- await Promise.all(workers);
2435
- return results;
2436
- };
2437
-
2438
- // src/utils/createAbortError.ts
2439
- var createAbortError = (reason) => new DOMException(reason, "AbortError");
2440
-
2441
- // src/utils/delay.ts
2442
- var delay = (timeout, signal) => new Promise((resolve, reject) => {
2443
- if (signal?.aborted) return reject(createAbortError(signal.reason));
2444
- const timeoutId = setTimeout(resolve, timeout);
2445
- signal?.addEventListener(
2446
- "abort",
2447
- () => {
2448
- clearTimeout(timeoutId);
2449
- reject(createAbortError(signal.reason));
2450
- },
2451
- { once: true }
2452
- );
2453
- });
2454
-
2455
- // src/utils/poll.ts
2456
- var message = {
2457
- PollPredicateError: "Poll predicate failed",
2458
- PollTimeoutError: "Poll timeout exceeded",
2459
- PollPollTimeoutError: "Poll data failed condition"
2460
- };
2461
- var PollException = class extends Error {
2462
- result;
2463
- constructor(type, result) {
2464
- super(type, { cause: message[type] });
2465
- this.result = result;
2466
- }
2467
- };
2468
- var poll = async ({
2469
- pollFn,
2470
- interval,
2471
- isDone,
2472
- isFailed,
2473
- abortSignal,
2474
- maxAttempts = Infinity
2475
- }) => {
2476
- if (abortSignal?.aborted) throw createAbortError(abortSignal.reason);
2477
- if (interval < 1) throw new Error("Invalid poll interval");
2478
- if (maxAttempts < 1) throw new Error("Invalid poll maxAttempts");
2479
- let callCount = 0;
2480
- while (true) {
2481
- callCount++;
2482
- const data = await pollFn(abortSignal);
2483
- const result = { data, callCount };
2484
- try {
2485
- if (isDone(data)) return result;
2486
- if (isFailed?.(data) ?? false) throw new PollException("PollPollTimeoutError", result);
2487
- } catch (error) {
2488
- if (error instanceof PollException) throw error;
2489
- throw new PollException("PollPredicateError", result);
2490
- }
2491
- if (callCount >= maxAttempts) throw new PollException("PollTimeoutError", result);
2492
- await delay(interval, abortSignal);
2493
- }
2494
- };
2495
-
2496
- // src/utils/keboolaUID.ts
2497
- var KEBOOLA_OBJECT_ID_DELIMITER = "--";
2498
- var keboolaUID = {
2499
- serialize: (input) => {
2500
- if (input.uid === "")
2501
- throw new Error("Invalid Keboola Object ID: uid of an object cannot be empty");
2502
- return ["KID", input.projectId, input.type, input.uid].join(KEBOOLA_OBJECT_ID_DELIMITER);
2503
- },
2504
- deserialize: (input) => {
2505
- const [identifier, projectId, type, uid] = input.split(KEBOOLA_OBJECT_ID_DELIMITER);
2506
- if (identifier !== "KID" || !projectId || !type || !uid)
2507
- throw new Error("Invalid Keboola Object ID");
2508
- return {
2509
- projectId: Number(projectId),
2510
- type,
2511
- uid
2512
- };
2513
- }
2514
- };
2515
-
2516
- // src/utils/generateUUID.ts
2517
- var generateUUID = () => crypto.randomUUID();
2518
-
2519
- // src/utils/series.ts
2520
- var series = async (options) => concurrent({
2521
- ...options,
2522
- concurrency: 1
2523
- });
2524
-
2525
- // src/clients/storage/componentsAndConfigurations/componentsAndConfigurations.ts
2526
- var createComponentsAndConfigurations = (client) => {
2527
- const getComponent = async ({ componentId, branchId = "default" }, signal) => {
2528
- const { data } = await client.get(
2529
- "/branch/{branchId}/components/{componentId}",
2530
- { path: { componentId, branchId } },
2531
- { signal }
2532
- );
2533
- return data;
2534
- };
2535
- const getComponents = async ({ branchId = "default", ...query } = {}, signal) => {
2536
- const { data } = await client.get(
2537
- "/branch/{branchId}/components",
2538
- { path: { branchId }, query },
2539
- { signal, queryArrayFormat: "comma" }
2540
- );
2541
- return data;
2542
- };
2543
- const getConfiguration = async ({ componentId, configId, branchId = "default" }, signal) => {
2544
- const { data } = await client.get(
2545
- "/branch/{branchId}/components/{componentId}/configs/{configId}",
2546
- { path: { componentId, configId, branchId } },
2547
- { signal }
2548
- );
2549
- return data;
2550
- };
2551
- const createConfiguration = async ({
2552
- branchId = "default",
2553
- componentId,
2554
- ...body
2555
- }) => {
2556
- const { data } = await client.post("/branch/{branchId}/components/{componentId}/configs", {
2557
- path: { branchId, componentId },
2558
- body
2559
- });
2560
- return data;
2561
- };
2562
- const deleteConfiguration = async (path) => {
2563
- await client.delete(
2564
- "/branch/{branchId}/components/{componentId}/configs/{configId}",
2565
- { path }
2566
- );
2567
- };
2568
- const deleteConfigurations = async ({
2569
- configIds,
2570
- ...rest
2571
- }) => {
2572
- await concurrent({
2573
- items: configIds,
2574
- process: async (configId) => deleteConfiguration({ ...rest, configId })
2575
- });
2576
- };
2577
- const getConfigurations = async ({ componentId, branchId = "default" }, signal) => {
2578
- const { data } = await client.get(
2579
- "/branch/{branchId}/components/{componentId}/configs",
2580
- { path: { componentId, branchId } },
2581
- { signal }
2582
- );
2583
- return data;
2584
- };
2585
- const getConfigurationWorkspaces = async ({
2586
- componentId,
2587
- branchId,
2588
- configId
2589
- }) => {
2590
- const { data } = await client.get(
2591
- "/branch/{branchId}/components/{componentId}/configs/{configId}/workspaces",
2592
- {
2593
- path: { componentId, branchId, configId }
2594
- }
2595
- );
2596
- return data;
2597
- };
2598
- const createConfigurationWorkspace = async ({
2599
- componentId,
2600
- branchId,
2601
- configId,
2602
- ...body
2603
- }) => {
2604
- const { data } = await client.post("/branch/{branchId}/components/{componentId}/configs/{configId}/workspaces", {
2605
- path: { componentId, branchId, configId },
2606
- body
2607
- });
2608
- return data;
2609
- };
2610
- const createConfigurationWorkspaceJob = async ({
2611
- componentId,
2612
- branchId,
2613
- configId,
2614
- ...body
2615
- }) => {
2616
- const { data } = await client.post("/branch/{branchId}/components/{componentId}/configs/{configId}/workspaces", {
2617
- path: { componentId, branchId, configId },
2618
- body,
2619
- query: { async: true }
2620
- });
2621
- return data;
2622
- };
2623
- const createConfigurationRow = async ({
2624
- branchId = "default",
2625
- componentId,
2626
- configId,
2627
- ...body
2628
- }) => {
2629
- const { data } = await client.post("/branch/{branchId}/components/{componentId}/configs/{configId}/rows", {
2630
- path: { branchId, componentId, configId },
2631
- body
2632
- });
2633
- return data;
2634
- };
2635
- const createConfigurationRows = async ({
2636
- branchId = "default",
2637
- componentId,
2638
- configId,
2639
- data
2640
- }, options) => {
2641
- return series({
2642
- items: data,
2643
- process: (rowBody) => {
2644
- return createConfigurationRow({
2645
- branchId,
2646
- componentId,
2647
- configId,
2648
- ...rowBody
2649
- });
2650
- },
2651
- middlewares: options?.middlewares
2652
- });
2653
- };
2654
- const deleteConfigurationRow = async ({
2655
- changeDescription,
2656
- ...path
2657
- }) => {
2658
- await client.delete(
2659
- "/branch/{branchId}/components/{componentId}/configs/{configId}/rows/{rowId}",
2660
- {
2661
- path,
2662
- body: { changeDescription }
2663
- }
2664
- );
2665
- };
2666
- const deleteConfigurationRows = async ({ rowIds, changeDescription, ...input }, options) => {
2667
- await concurrent({
2668
- items: rowIds,
2669
- process: (rowId) => {
2670
- const resolvedDescription = typeof changeDescription === "string" ? changeDescription : changeDescription?.(rowId);
2671
- return deleteConfigurationRow({
2672
- rowId,
2673
- changeDescription: resolvedDescription,
2674
- ...input
2675
- });
2676
- },
2677
- concurrency: 5,
2678
- middlewares: options?.middlewares
2679
- });
2680
- };
2681
- const searchComponentConfigurations = async ({ branchId = "default" } = {}, query, signal) => {
2682
- const { data } = await client.get(
2683
- "/branch/{branchId}/search/component-configurations",
2684
- { path: { branchId }, query },
2685
- { signal, queryArrayFormat: "comma" }
2686
- );
2687
- return data;
2688
- };
2689
- return {
2690
- // components
2691
- getComponent,
2692
- getComponents,
2693
- searchComponentConfigurations,
2694
- // configurations
2695
- createConfiguration,
2696
- getConfiguration,
2697
- deleteConfiguration,
2698
- deleteConfigurations,
2699
- getConfigurations,
2700
- // configuration's rows
2701
- createConfigurationRow,
2702
- createConfigurationRows,
2703
- deleteConfigurationRow,
2704
- deleteConfigurationRows,
2705
- // configuration's workspaces
2706
- createConfigurationWorkspace,
2707
- createConfigurationWorkspaceJob,
2708
- getConfigurationWorkspaces
2709
- };
2710
- };
2711
-
2712
- // src/clients/storage/events/events.ts
2713
- var createEvents = (client) => {
2714
- const getEvents = async (query, signal) => {
2715
- const { data } = await client.get(
2716
- "/events",
2717
- { query },
2718
- { signal }
2719
- );
2720
- return data;
2721
- };
2722
- const getEvent = async (eventId, signal) => {
2723
- const { data } = await client.get(
2724
- "/events/{eventId}",
2725
- {
2726
- path: { eventId }
2727
- },
2728
- { signal }
2729
- );
2730
- return data;
2731
- };
2732
- const createEvent = async (body, signal) => {
2733
- const { data } = await client.post(
2734
- "/events",
2735
- {
2736
- body
2737
- },
2738
- { signal }
2739
- );
2740
- return data;
2741
- };
2742
- return {
2743
- getEvents,
2744
- getEvent,
2745
- createEvent
2746
- };
2747
- };
2748
-
2749
- // src/clients/storage/files/files.ts
2750
- var createFiles = (client) => {
2751
- const getFile = async (fileId, signal) => {
2752
- const { data } = await client.get(
2753
- `/files/{fileId}`,
2754
- {
2755
- path: { fileId }
2756
- },
2757
- { signal }
2758
- );
2759
- return data;
2760
- };
2761
- const getFiles = async (query, signal) => {
2762
- const { data } = await client.get(
2763
- "/files",
2764
- { query },
2765
- { signal, queryArrayFormat: "brackets" }
2766
- );
2767
- return data;
2768
- };
2769
- const deleteFile = async (fileId) => {
2770
- const { data } = await client.delete(`/files/{fileId}`, {
2771
- path: { fileId }
2772
- });
2773
- return data;
2774
- };
2775
- const addFileTag = async (fileId, tag) => {
2776
- const { data } = await client.post(
2777
- `/files/{fileId}/tags`,
2778
- {
2779
- path: { fileId },
2780
- body: { tag }
2781
- }
2782
- );
2783
- return data;
2784
- };
2785
- const getFileContent = async (fileId, signal) => {
2786
- const { data } = await client.get(
2787
- `/files/{fileId}/content`,
2788
- {
2789
- path: { fileId }
2790
- },
2791
- { signal }
2792
- );
2793
- return typeof data === "string" ? data : JSON.stringify(data, null, 2);
2794
- };
2795
- const deleteFileTag = async (fileId, tag) => {
2796
- const { data } = await client.delete(
2797
- "/files/{fileId}/tags/{tag}",
2798
- {
2799
- path: { fileId, tag }
2800
- }
2801
- );
2802
- return data;
2803
- };
2804
- const prepareFile = async (body, signal) => {
2805
- const { data } = await client.post(
2806
- "/files/prepare",
2807
- { body },
2808
- { signal }
2809
- );
2810
- return data;
2811
- };
2812
- return {
2813
- getFile,
2814
- getFileContent,
2815
- getFiles,
2816
- deleteFile,
2817
- addFileTag,
2818
- deleteFileTag,
2819
- prepareFile
2820
- };
2821
- };
2822
-
2823
- // src/clients/storage/jobs/jobs.ts
2824
- var createJobs = (client) => {
2825
- const getJob = async (id, signal) => {
2826
- const { data } = await client.get(
2827
- `/jobs/{id}`,
2828
- {
2829
- path: { id }
2830
- },
2831
- { signal }
2832
- );
2833
- return data;
2834
- };
2835
- const getJobs = async (query, signal) => {
2836
- const { data } = await client.get(
2837
- "/jobs",
2838
- { query },
2839
- { signal, queryArrayFormat: "brackets" }
2840
- );
2841
- return data;
2842
- };
2843
- return { getJob, getJobs };
2844
- };
2845
-
2846
- // src/clients/storage/tables/tables.ts
2847
- var createTables = (client) => {
2848
- const getTables = async (query = { include: [] }, signal) => {
2849
- const { data } = await client.get(
2850
- `/tables`,
2851
- { query },
2852
- { signal, queryArrayFormat: "comma" }
2853
- );
2854
- return data;
2855
- };
2856
- const getTable = async (id, signal) => {
2857
- const { data } = await client.get(
2858
- `/tables/{id}`,
2859
- { path: { id } },
2860
- { signal }
2861
- );
2862
- return data;
2863
- };
2864
- const deleteTable = async (id, signal) => {
2865
- await client.delete(`/tables/{id}`, { path: { id } }, { signal });
2866
- };
2867
- const deleteTables = async (ids) => {
2868
- await concurrent({
2869
- items: ids,
2870
- process: (id) => deleteTable(id)
2871
- });
2872
- };
2873
- const deleteTableRows = async (id, query, signal) => {
2874
- const { data } = await client.delete(
2875
- `/tables/{id}/rows`,
2876
- { path: { id }, query },
2877
- { signal }
2878
- );
2879
- return data;
2880
- };
2881
- const getDataPreview = async (id, query, signal) => {
2882
- const { data } = await client.get(
2883
- `/tables/{id}/data-preview`,
2884
- { path: { id }, query: { format: "json", ...query } },
2885
- { signal }
2886
- );
2887
- return data;
2888
- };
2889
- const exportAsync = async (tableId, body, signal) => {
2890
- const { data } = await client.post(
2891
- "/tables/{id}/export-async",
2892
- { path: { id: tableId }, body },
2893
- { signal }
2894
- );
2895
- return data;
2896
- };
2897
- const createTableAsync = async (bucketId, body, signal) => {
2898
- const { data } = await client.post("/buckets/{bucketId}/tables-async", { path: { bucketId }, body }, { signal });
2899
- return data;
2900
- };
2901
- const importAsync = async (tableId, body, signal) => {
2902
- const { data } = await client.post(
2903
- "/tables/{id}/import-async",
2904
- { path: { id: tableId }, body },
2905
- { signal }
2906
- );
2907
- return data;
2908
- };
2909
- return {
2910
- getTables,
2911
- getTable,
2912
- getDataPreview,
2913
- deleteTable,
2914
- deleteTables,
2915
- deleteTableRows,
2916
- exportAsync,
2917
- createTableAsync,
2918
- importAsync
2919
- };
2920
- };
2921
-
2922
- // src/clients/storage/tokens/tokens.ts
2923
- var createTokens = (client) => {
2924
- const verify = async (signal) => {
2925
- const { data } = await client.get(
2926
- "/tokens/verify",
2927
- {},
2928
- { signal }
2929
- );
2930
- return data;
2931
- };
2932
- const refresh = async (id, signal) => {
2933
- const { data } = await client.post(
2934
- `/tokens/${id}/refresh`,
2935
- {},
2936
- { signal }
2937
- );
2938
- return data;
2939
- };
2940
- return {
2941
- verify,
2942
- refresh
2943
- };
2944
- };
2945
-
2946
- // src/clients/storage/workspaces/workspaces.ts
2947
- var createWorkspaces = (client) => {
2948
- const getWorkspaces = async (branchId, signal) => {
2949
- const { data } = await client.get(
2950
- "/branch/{branchId}/workspaces",
2951
- { path: { branchId } },
2952
- { signal }
2953
- );
2954
- return data;
2955
- };
2956
- const getWorkspace = async (path, signal) => {
2957
- const { data } = await client.get(
2958
- "/branch/{branchId}/workspaces/{workspaceId}",
2959
- { path },
2960
- { signal }
2961
- );
2962
- return data;
2963
- };
2964
- const deleteWorkspace = async (path) => {
2965
- await client.delete(
2966
- "/branch/{branchId}/workspaces/{workspaceId}",
2967
- { path }
2968
- );
2969
- };
2970
- const deleteWorkspaces = async ({
2971
- workspaceIds,
2972
- branchId
2973
- }) => {
2974
- await concurrent({
2975
- items: workspaceIds,
2976
- process: async (workspaceId) => deleteWorkspace({ branchId, workspaceId }),
2977
- concurrency: 5
2978
- });
2979
- };
2980
- const deleteWorkspaceJob = async (path) => {
2981
- const { data } = await client.delete(
2982
- "/branch/{branchId}/workspaces/{workspaceId}",
2983
- { path, query: { async: true } },
2984
- {}
2985
- );
2986
- return data;
2987
- };
2988
- const resetWorkspacePassword = async ({ branchId, workspaceId }) => {
2989
- const { data } = await client.post(
2990
- "/branch/{branchId}/workspaces/{workspaceId}/password",
2991
- {
2992
- path: { branchId, workspaceId }
2993
- }
2994
- );
2995
- return data;
2996
- };
2997
- const getWorkspaceSaml2Login = async (path, signal) => {
2998
- const { data } = await client.get(
2999
- "/branch/{branchId}/workspaces/{workspaceId}/saml2-login",
3000
- { path },
3001
- { signal }
3002
- );
3003
- return data;
3004
- };
3005
- const setWorkspacePublicKey = async ({
3006
- branchId,
3007
- workspaceId,
3008
- publicKey
3009
- }) => {
3010
- const { data } = await client.post("/branch/{branchId}/workspaces/{workspaceId}/public-key", {
3011
- path: { branchId, workspaceId },
3012
- body: { publicKey }
3013
- });
3014
- return data;
3015
- };
3016
- const getWorkspaceObjects = async (path, signal) => {
3017
- const { data } = await client.get(
3018
- "/branch/{branchId}/workspaces/{workspaceId}/objects",
3019
- { path },
3020
- { signal }
3021
- );
3022
- return data;
97
+ const createChat = async (request) => {
98
+ const { response } = await client.post("/api/chat", { body: request });
99
+ return response;
3023
100
  };
3024
- const deleteWorkspaceObjectsAsync = async ({
3025
- branchId,
3026
- workspaceId,
3027
- ...body
3028
- }) => {
3029
- const { data } = await client.post("/branch/{branchId}/workspaces/{workspaceId}/objects/batch-delete", {
3030
- path: { branchId, workspaceId },
3031
- body
3032
- });
101
+ const getVotes = async (chatId) => {
102
+ const { data } = await client.get("/api/vote", { query: { chatId } });
3033
103
  return data;
3034
104
  };
3035
- return {
3036
- getWorkspace,
3037
- getWorkspaces,
3038
- deleteWorkspace,
3039
- resetWorkspacePassword,
3040
- deleteWorkspaces,
3041
- deleteWorkspaceJob,
3042
- setWorkspacePublicKey,
3043
- getWorkspaceSaml2Login,
3044
- getWorkspaceObjects,
3045
- deleteWorkspaceObjectsAsync
105
+ const submitVote = async (params) => {
106
+ await client.patch("/api/vote", { body: params });
3046
107
  };
3047
- };
3048
-
3049
- // src/clients/storage/storageClient.ts
3050
- var createStorageClient = ({ baseUrl, middlewares = [] }) => {
3051
- const storageBaseUrl = `${baseUrl}/v2/storage`;
3052
- const client = createGenericFetchClient({
3053
- baseUrl: storageBaseUrl,
3054
- middlewares
3055
- });
3056
- const openApiClient = createOpenapiFetchClient({
3057
- baseUrl,
3058
- middlewares
3059
- });
3060
- const getStackInfo = async (query, signal) => {
3061
- const { data } = await client.get(
3062
- "",
3063
- { query },
3064
- { signal }
3065
- );
108
+ const getUsage = async (signal) => {
109
+ const { data } = await client.get("/api/usage", {}, { signal });
3066
110
  return data;
3067
111
  };
3068
- return {
3069
- buckets: createBuckets(client),
3070
- events: createEvents(client),
3071
- files: createFiles(client),
3072
- tables: createTables(client),
3073
- branches: createBranches(client),
3074
- workspaces: createWorkspaces(client),
3075
- mergeRequests: createMergeRequests(openApiClient),
3076
- jobs: createJobs(client),
3077
- componentsAndConfigurations: createComponentsAndConfigurations(client),
3078
- configurationVersions: createConfigurationVersions(client),
3079
- tokens: createTokens(client),
3080
- getStackInfo
3081
- };
3082
- };
3083
-
3084
- // src/clients/storage/storageTokenMiddleware.ts
3085
- var isTokenRefreshEndpoint = (request) => {
3086
- const url = new URL(request.url);
3087
- return request.method === "POST" && /\/tokens\/[^/]+\/refresh$/.test(url.pathname);
3088
- };
3089
- var tryParseNewToken = (data) => {
3090
- if (data === null || typeof data !== "object") return null;
3091
- const token = data.token;
3092
- return typeof token === "string" ? token : null;
3093
- };
3094
- var createStorageTokenMiddleware = (initialToken) => {
3095
- let current = initialToken;
3096
- return (next) => async (request) => {
3097
- request.request.headers.set(KeboolaHttpHeader.STORAGE_API_TOKEN, current);
3098
- const response = await next(request);
3099
- if (isTokenRefreshEndpoint(request.request)) {
3100
- const newToken = tryParseNewToken(response.data);
3101
- if (newToken !== null) current = newToken;
3102
- }
3103
- return response;
112
+ const approveToolCall = async (chatId, body) => {
113
+ await client.post("/api/chat/{id}/approval", { path: { id: chatId }, body });
3104
114
  };
3105
- };
3106
-
3107
- // src/clients/syncActions/constants.ts
3108
- var SyncAction = {
3109
- DATA_APP_GIT_REPOSITORY: "git-repository",
3110
- GIT_REPOSITORY: "gitRepository",
3111
- ENROLL_MFA: "enrollMFA"
3112
- };
3113
- var Component = {
3114
- DATA_APP: "keboola.data-apps"
3115
- };
3116
- var Author = z5__namespace.object({
3117
- name: z5__namespace.string(),
3118
- email: z5__namespace.email()
3119
- });
3120
- var RepositoryBranch = z5__namespace.object({
3121
- sha: z5__namespace.string(),
3122
- date: z5__namespace.string(),
3123
- comment: z5__namespace.string(),
3124
- branch: z5__namespace.string(),
3125
- author: Author
3126
- });
3127
- var Repository = z5__namespace.object({
3128
- repository: z5__namespace.object({
3129
- url: z5__namespace.string()
3130
- }),
3131
- branches: z5__namespace.array(RepositoryBranch)
3132
- });
3133
-
3134
- // src/clients/syncActions/gitRepository/utils.ts
3135
- var GitRepoConfigDataBuilder = class {
3136
- repositoryUrl;
3137
- config = {};
3138
- constructor(repositoryUrl) {
3139
- this.repositoryUrl = repositoryUrl;
3140
- }
3141
- withCredentials(username, password) {
3142
- this.config.username = username;
3143
- delete this.config["#sshKey"];
3144
- this.config["#password"] = password;
3145
- return this;
3146
- }
3147
- withSshKey(username, sshKey) {
3148
- this.config.username = username;
3149
- delete this.config["#password"];
3150
- this.config["#sshKey"] = sshKey;
3151
- return this;
3152
- }
3153
- build() {
3154
- return {
3155
- parameters: {
3156
- git: {
3157
- repo: this.repositoryUrl,
3158
- ...this.config
3159
- }
3160
- }
3161
- };
3162
- }
3163
- buildForDataApp() {
3164
- return {
3165
- parameters: {
3166
- dataApp: {
3167
- git: {
3168
- repository: this.repositoryUrl,
3169
- ...this.config
3170
- }
3171
- }
3172
- }
3173
- };
3174
- }
3175
- };
3176
- var createGitRepoConfigDataBuilder = (repositoryUrl) => new GitRepoConfigDataBuilder(repositoryUrl);
3177
-
3178
- // src/clients/syncActions/gitRepository/gitRepository.ts
3179
- var createGitRepository = (sendSyncAction) => {
3180
- const getDataAppPublicGitRepository = async ({ repositoryUrl, ...other }, signal) => {
3181
- const data = await sendSyncAction(
3182
- {
3183
- ...other,
3184
- action: SyncAction.DATA_APP_GIT_REPOSITORY,
3185
- componentId: Component.DATA_APP,
3186
- configData: createGitRepoConfigDataBuilder(repositoryUrl).buildForDataApp()
3187
- },
3188
- signal
3189
- );
3190
- return Repository.parse(data);
115
+ const submitToolOutput = async (chatId, body) => {
116
+ await client.post("/api/chat/{id}/ui-tool-result", { path: { id: chatId }, body });
3191
117
  };
3192
- const getDataAppPasswordPrivateGitRepository = async ({ repositoryUrl, username, password, ...other }, signal) => {
3193
- const data = await sendSyncAction(
3194
- {
3195
- ...other,
3196
- action: SyncAction.DATA_APP_GIT_REPOSITORY,
3197
- componentId: Component.DATA_APP,
3198
- configData: createGitRepoConfigDataBuilder(repositoryUrl).withCredentials(username, password).buildForDataApp()
3199
- },
3200
- signal
3201
- );
3202
- return Repository.parse(data);
118
+ const stopChat = async (chatId) => {
119
+ const { data } = await client.post("/api/chat/{id}/stop", { path: { id: chatId } });
120
+ return data;
3203
121
  };
3204
- const getDataAppSSHKeyPrivateGitRepository = async ({ repositoryUrl, username, sshKey, ...other }, signal) => {
3205
- const data = await sendSyncAction(
3206
- {
3207
- ...other,
3208
- action: SyncAction.DATA_APP_GIT_REPOSITORY,
3209
- componentId: Component.DATA_APP,
3210
- configData: createGitRepoConfigDataBuilder(repositoryUrl).withSshKey(username, sshKey).buildForDataApp()
3211
- },
3212
- signal
122
+ const getSuggestions = async (request, signal) => {
123
+ const { data } = await genericClient.post(
124
+ "/api/suggestions",
125
+ { body: request },
126
+ { signal }
3213
127
  );
3214
- return Repository.parse(data);
128
+ const result = chunkU5SE6W5M_cjs.suggestionsApiResponseSchema.safeParse(data);
129
+ if (!result.success) {
130
+ throw new Error("Invalid suggestions response format");
131
+ }
132
+ return result.data;
3215
133
  };
3216
- const getPublicGitRepository = async ({ repositoryUrl, componentId, ...other }, signal) => {
3217
- const data = await sendSyncAction(
3218
- {
3219
- ...other,
3220
- action: SyncAction.GIT_REPOSITORY,
3221
- componentId,
3222
- configData: createGitRepoConfigDataBuilder(repositoryUrl).build()
3223
- },
3224
- signal
3225
- );
3226
- return Repository.parse(data);
134
+ const getAgentSettings = async (signal) => {
135
+ const { data } = await genericClient.get("/api/settings", {}, { signal });
136
+ const result = agentSettingsSchema.safeParse(data);
137
+ if (!result.success) {
138
+ throw new Error("Invalid agent settings response format");
139
+ }
140
+ return result.data;
3227
141
  };
3228
- const getPrivateGitRepository = async ({ repositoryUrl, username, password, componentId, ...other }, signal) => {
3229
- const data = await sendSyncAction(
3230
- {
3231
- ...other,
3232
- action: SyncAction.GIT_REPOSITORY,
3233
- componentId,
3234
- configData: createGitRepoConfigDataBuilder(repositoryUrl).withCredentials(username, password).build()
3235
- },
3236
- signal
142
+ const updateAgentSettings = async (request, signal) => {
143
+ const { data } = await genericClient.patch(
144
+ "/api/settings",
145
+ { body: request },
146
+ { signal }
3237
147
  );
3238
- return Repository.parse(data);
3239
- };
3240
- return {
3241
- getDataAppPublicGitRepository,
3242
- getDataAppPasswordPrivateGitRepository,
3243
- getDataAppSSHKeyPrivateGitRepository,
3244
- getPublicGitRepository,
3245
- getPrivateGitRepository
148
+ const result = agentSettingsSchema.safeParse(data);
149
+ if (!result.success) {
150
+ throw new Error("Invalid agent settings response format");
151
+ }
152
+ return result.data;
3246
153
  };
3247
- };
3248
-
3249
- // src/clients/syncActions/syncActionsClient.ts
3250
- var createSendSyncAction = (client) => {
3251
- return async (body, signal) => {
3252
- const { data } = await client.post(
3253
- "/actions",
3254
- {
3255
- body
3256
- },
154
+ const getUserAgentSettings = async (signal) => {
155
+ const { data } = await genericClient.get(
156
+ "/api/settings/user",
157
+ {},
3257
158
  { signal }
3258
159
  );
3259
- return data;
160
+ const result = userAgentSettingsSchema.safeParse(data);
161
+ if (!result.success) {
162
+ throw new Error("Invalid user agent settings response format");
163
+ }
164
+ return result.data;
3260
165
  };
3261
- };
3262
- var createSyncActionsClient = ({ baseUrl, middlewares }) => {
3263
- const client = createOpenapiFetchClient({
3264
- baseUrl,
3265
- middlewares
3266
- });
3267
- const sendSyncAction = createSendSyncAction(client);
3268
- const enrollMFA = ({ email: email2, ...rest }, signal) => {
3269
- return sendSyncAction(
3270
- {
3271
- ...rest,
3272
- action: SyncAction.ENROLL_MFA,
3273
- configData: {
3274
- parameters: {
3275
- user: {
3276
- email: email2
3277
- }
3278
- }
3279
- }
3280
- },
3281
- signal
166
+ const updateUserAgentSettings = async (request, signal) => {
167
+ const { data } = await genericClient.patch(
168
+ "/api/settings/user",
169
+ { body: request },
170
+ { signal }
3282
171
  );
172
+ const result = userAgentSettingsSchema.safeParse(data);
173
+ if (!result.success) {
174
+ throw new Error("Invalid user agent settings response format");
175
+ }
176
+ return result.data;
3283
177
  };
3284
- return {
3285
- enrollMFA,
3286
- gitRepository: createGitRepository(sendSyncAction)
3287
- };
3288
- };
3289
-
3290
- // src/clients/telemetry/provisioning/provisioning.ts
3291
- var createProvisioning = (client) => {
3292
- const createCredentials = async (body, signal) => {
3293
- const { data } = await client.post(
3294
- "/provisioning/workspace",
3295
- { body },
178
+ const getToolsList = async (signal) => {
179
+ const { data } = await genericClient.get(
180
+ "/api/settings/tools",
181
+ {},
3296
182
  { signal }
3297
183
  );
3298
- return data;
3299
- };
3300
- return {
3301
- createCredentials
3302
- };
3303
- };
3304
-
3305
- // src/clients/telemetry/telemetryClient.ts
3306
- var createTelemetryClient = ({ baseUrl, middlewares }) => {
3307
- const client = createGenericFetchClient({
3308
- baseUrl,
3309
- middlewares
3310
- });
3311
- return {
3312
- provisioning: createProvisioning(client)
184
+ const result = toolsListResponseSchema.safeParse(data);
185
+ if (!result.success) {
186
+ throw new Error("Invalid tools list response format");
187
+ }
188
+ return result.data;
3313
189
  };
3314
- };
3315
-
3316
- // src/clients/vault/vaultClient.ts
3317
- var createVaultClient = ({ baseUrl, middlewares }) => {
3318
- const client = createOpenapiFetchClient({
3319
- baseUrl,
3320
- middlewares
3321
- });
3322
- const getVariables = async (query, signal) => {
3323
- const { data } = await client.get(
3324
- "/variables",
3325
- { query },
3326
- {
3327
- signal
3328
- }
190
+ const listSandboxFiles = async (chatId, path, signal) => {
191
+ const { data } = await genericClient.get(
192
+ `/api/chat/${encodeURIComponent(chatId)}/sandbox/files`,
193
+ { query: path ? { path } : void 0 },
194
+ { signal }
3329
195
  );
3330
- return data;
196
+ const result = sandboxFileListingSchema.safeParse(data);
197
+ if (!result.success) {
198
+ throw new Error("Invalid sandbox files response format");
199
+ }
200
+ return result.data;
3331
201
  };
3332
- const deleteVariable = async (hash, signal) => {
3333
- await client.delete(
3334
- "/variables/{hash}",
3335
- {
3336
- path: { hash }
3337
- },
202
+ const readSandboxFile = async (chatId, path, signal) => {
203
+ const { data } = await genericClient.get(
204
+ `/api/chat/${encodeURIComponent(chatId)}/sandbox/file`,
205
+ { query: { path } },
3338
206
  { signal }
3339
207
  );
3340
- };
3341
- const createVariable = async (body, signal) => {
3342
- if (body.flags.includes("encrypted") && !body.value.startsWith(ENCRYPTED_VALUE_PREFIX)) {
3343
- throw new UserError("Encryption of a value failed. Please contact our support.");
208
+ const result = sandboxFileContentSchema.safeParse(data);
209
+ if (!result.success) {
210
+ throw new Error("Invalid sandbox file response format");
3344
211
  }
3345
- const { data } = await client.post("/variables", { body }, { signal });
3346
- return data;
212
+ return result.data;
3347
213
  };
3348
- const getVariablesByBranchId = async (branchId, signal) => {
3349
- const { data } = await client.get(
3350
- "/variables/scoped/branch/{branchId}",
3351
- {
3352
- path: { branchId }
3353
- },
214
+ const getSandboxGitBranch = async (chatId, signal) => {
215
+ const { data } = await genericClient.get(
216
+ `/api/chat/${encodeURIComponent(chatId)}/sandbox/git-branch`,
217
+ {},
3354
218
  { signal }
3355
219
  );
3356
- return data;
220
+ const result = sandboxGitBranchSchema.safeParse(data);
221
+ if (!result.success) {
222
+ throw new Error("Invalid sandbox git-branch response format");
223
+ }
224
+ return result.data;
3357
225
  };
3358
- const getProjectWideVariables = (signal) => getVariablesByBranchId("null", signal);
226
+ const chatStreamUrl = clientOptions.baseUrl + "/api/chat";
3359
227
  return {
3360
- createVariable,
3361
- deleteVariable,
3362
- getProjectWideVariables,
3363
- getVariables,
3364
- getVariablesByBranchId
228
+ getHistory,
229
+ getChat,
230
+ deleteChat,
231
+ createChat,
232
+ getVotes,
233
+ submitVote,
234
+ getUsage,
235
+ approveToolCall,
236
+ submitToolOutput,
237
+ stopChat,
238
+ getSuggestions,
239
+ getAgentSettings,
240
+ updateAgentSettings,
241
+ getUserAgentSettings,
242
+ updateUserAgentSettings,
243
+ getToolsList,
244
+ listSandboxFiles,
245
+ readSandboxFile,
246
+ getSandboxGitBranch,
247
+ chatStreamUrl
3365
248
  };
3366
249
  };
3367
250
 
3368
- // src/domain/project.ts
3369
- var createProject = ({ sapiToken }) => {
3370
- const { owner, admin } = sapiToken;
3371
- const projectFeatureSet = new Set(owner.features);
3372
- const adminFeatureSet = new Set(admin.features);
3373
- const hasFeature = (...feature) => {
3374
- if (feature.length === 0) return false;
3375
- return feature.every((x) => projectFeatureSet.has(x));
3376
- };
3377
- const hasAdminFeature = (...feature) => {
3378
- if (feature.length === 0) return false;
3379
- return feature.every((x) => adminFeatureSet.has(x));
3380
- };
3381
- const hasBackend = (backend) => {
3382
- if (backend === "bigquery") return owner.hasBigquery;
3383
- if (backend === "snowflake") return owner.hasSnowflake;
3384
- return false;
3385
- };
3386
- return {
3387
- hasFeature,
3388
- hasAdminFeature,
3389
- hasBackend,
3390
- sapiToken
3391
- };
3392
- };
251
+ // src/utils/assert.ts
252
+ function assert(value, message) {
253
+ if (value == null) {
254
+ throw new Error(message);
255
+ }
256
+ }
3393
257
 
3394
258
  // src/domain/stack.ts
3395
259
  var SERVICE_URL_OVERRIDES = {
@@ -3433,189 +297,6 @@ var createStack = ({ stackInfo, clientServiceUrls }) => {
3433
297
  };
3434
298
  };
3435
299
 
3436
- // src/sdks/storage/storageSdk.ts
3437
- var DEFAULT_POLL_INTERVAL = 2e3;
3438
- var JOB_TERMINAL_STATUSES = /* @__PURE__ */ new Set(["success", "warning", "error", "terminated", "cancelled"]);
3439
- var createStorageSdk = ({ storageClient }) => {
3440
- const waitForJob = async (job, options) => {
3441
- const { data } = await poll({
3442
- pollFn: (abortSignal) => storageClient.jobs.getJob(job.id, abortSignal),
3443
- isDone: (j) => JOB_TERMINAL_STATUSES.has(j.status),
3444
- interval: options?.interval ?? DEFAULT_POLL_INTERVAL,
3445
- maxAttempts: options?.maxAttempts,
3446
- abortSignal: options?.abortSignal
3447
- });
3448
- return data;
3449
- };
3450
- const createTable = async (bucketId, body, options) => {
3451
- const job = await storageClient.tables.createTableAsync(bucketId, body, options?.abortSignal);
3452
- return waitForJob(job, options);
3453
- };
3454
- const importFromFile = async (tableId, body, options) => {
3455
- const job = await storageClient.tables.importAsync(tableId, body, options?.abortSignal);
3456
- return waitForJob(job, options);
3457
- };
3458
- const exportToFile = async (tableId, body, options) => {
3459
- const job = await storageClient.tables.exportAsync(tableId, body, options?.abortSignal);
3460
- return waitForJob(job, options);
3461
- };
3462
- return {
3463
- createTable,
3464
- importFromFile,
3465
- exportToFile
3466
- };
3467
- };
3468
-
3469
- // src/sdks/tag/tagSdk.ts
3470
- var ObjectType = {
3471
- TAG: "tag",
3472
- TAG_BINDING: "tag-binding"
3473
- };
3474
- var createTagSdk = ({ metastoreClient }) => {
3475
- const _getTagMetaObjects = async (type, signal) => {
3476
- const response = await metastoreClient.repository.getMetaObjects(
3477
- {
3478
- objectType: type
3479
- },
3480
- signal
3481
- );
3482
- return response.data.map(({ attributes }) => attributes);
3483
- };
3484
- const _getAllTagBindingMapByTagId = async (signal) => {
3485
- const tagBindings = await _getTagMetaObjects(ObjectType.TAG_BINDING, signal);
3486
- return Object.groupBy(tagBindings, (binding) => binding.data.tagUUID);
3487
- };
3488
- const _getTagBindingMapByTagId = async (tagUUIDs, objectId, signal) => {
3489
- const tagBindingMapByTagId = await _getAllTagBindingMapByTagId(signal);
3490
- const objectUID = keboolaUID.serialize(objectId);
3491
- return tagUUIDs.reduce((acc, tagUUID) => {
3492
- if (acc[tagUUID]) return acc;
3493
- const tagBindings = tagBindingMapByTagId[tagUUID] ?? [];
3494
- acc[tagUUID] = tagBindings.find((binding) => binding.data.objectUID === objectUID) ?? null;
3495
- return acc;
3496
- }, {});
3497
- };
3498
- const _deleteTagBindings = async (tagBindings) => {
3499
- await concurrent({
3500
- items: tagBindings,
3501
- process: async (binding) => metastoreClient.repository.deleteMetaObject({
3502
- objectType: ObjectType.TAG_BINDING,
3503
- UUID: binding.uuid
3504
- }),
3505
- concurrency: 5
3506
- });
3507
- };
3508
- const getTags = async (signal) => {
3509
- const [tags, tagBindingMapByTagId] = await Promise.all([
3510
- _getTagMetaObjects(ObjectType.TAG, signal),
3511
- _getAllTagBindingMapByTagId(signal)
3512
- ]);
3513
- return tags.map((tag) => ({
3514
- tag,
3515
- bindings: tagBindingMapByTagId[tag.uuid] ?? []
3516
- }));
3517
- };
3518
- const getTagsByObjectId = async (objectId, signal) => {
3519
- const tags = await getTags(signal);
3520
- const keboolaObjectUID = keboolaUID.serialize(objectId);
3521
- const mapByTagId = tags.reduce((acc, { tag, bindings }) => {
3522
- acc[tag.uuid] = new Set(bindings.map((binding) => binding.data.objectUID));
3523
- return acc;
3524
- }, {});
3525
- return tags.filter(({ tag }) => mapByTagId[tag.uuid]?.has(keboolaObjectUID));
3526
- };
3527
- const createTag = async (data, meta = {}) => {
3528
- const {
3529
- data: { attributes: tag }
3530
- } = await metastoreClient.repository.createMetaObject({
3531
- objectType: ObjectType.TAG,
3532
- data,
3533
- name: generateUUID(),
3534
- ...meta
3535
- });
3536
- return tag;
3537
- };
3538
- const updateTag = async (tagUUID, data, meta = {}) => {
3539
- const {
3540
- data: { attributes: tag }
3541
- } = await metastoreClient.repository.updateMetaObject({
3542
- objectType: ObjectType.TAG,
3543
- UUID: tagUUID,
3544
- data,
3545
- ...meta
3546
- });
3547
- return tag;
3548
- };
3549
- const deleteTag = async (tagUUID) => {
3550
- const allBindings = await _getTagMetaObjects(ObjectType.TAG_BINDING);
3551
- const tagBindings = allBindings.filter(({ data }) => data.tagUUID === tagUUID);
3552
- await Promise.all([
3553
- // delete tag itself
3554
- metastoreClient.repository.deleteMetaObject({
3555
- objectType: ObjectType.TAG,
3556
- UUID: tagUUID
3557
- }),
3558
- // delete all tag associations
3559
- _deleteTagBindings(tagBindings)
3560
- ]);
3561
- };
3562
- const assignTags = async (tagUUIDs, objectId, meta = {}) => {
3563
- const tagBindingMapByTagId = await _getTagBindingMapByTagId(tagUUIDs, objectId);
3564
- const unassignedTagUUIDs = tagUUIDs.filter((tagUUID) => tagBindingMapByTagId[tagUUID] === null);
3565
- await concurrent({
3566
- items: unassignedTagUUIDs,
3567
- process: async (tagUUID) => metastoreClient.repository.createMetaObject({
3568
- objectType: ObjectType.TAG_BINDING,
3569
- data: {
3570
- objectUID: keboolaUID.serialize(objectId),
3571
- tagUUID
3572
- },
3573
- name: generateUUID(),
3574
- ...meta
3575
- }),
3576
- concurrency: 5
3577
- });
3578
- };
3579
- const unassignTags = async (tagUUIDs, objectID) => {
3580
- const tagBindingMapByTagId = await _getTagBindingMapByTagId(tagUUIDs, objectID);
3581
- const assignedTagUUIDs = tagUUIDs.filter((tagUUID) => tagBindingMapByTagId[tagUUID] !== null);
3582
- const tagBindings = assignedTagUUIDs.map((tagUUID) => tagBindingMapByTagId[tagUUID]);
3583
- await concurrent({
3584
- items: tagBindings,
3585
- process: async (tagBinding) => metastoreClient.repository.deleteMetaObject({
3586
- objectType: ObjectType.TAG_BINDING,
3587
- UUID: tagBinding.uuid
3588
- }),
3589
- concurrency: 5
3590
- });
3591
- };
3592
- const unassignAllTags = async (objectID, signal) => {
3593
- const tagBindings = await _getTagMetaObjects(ObjectType.TAG_BINDING, signal);
3594
- const objectsTagBindings = tagBindings.filter(
3595
- ({ data }) => data.objectUID === keboolaUID.serialize(objectID)
3596
- );
3597
- await _deleteTagBindings(objectsTagBindings);
3598
- };
3599
- const createAndAssignTag = async (data, objectId, meta = {}) => {
3600
- const tag = await createTag(data, meta);
3601
- await assignTags([tag.uuid], objectId, meta);
3602
- return tag;
3603
- };
3604
- return {
3605
- // retrievals
3606
- getTags,
3607
- getTagsByObjectId,
3608
- // modifications
3609
- createTag,
3610
- updateTag,
3611
- deleteTag,
3612
- assignTags,
3613
- unassignTags,
3614
- unassignAllTags,
3615
- createAndAssignTag
3616
- };
3617
- };
3618
-
3619
300
  // src/serviceClientRegistry/utils.ts
3620
301
  var isBuiltInProperty = (property) => typeof property === "symbol" || property === "then" || property === "constructor" || property === "toString" || property === "valueOf";
3621
302
  var createDummyClient = ({
@@ -3675,14 +356,14 @@ var createClients = async ({
3675
356
  clientServiceUrls,
3676
357
  storageMiddlewares
3677
358
  }) => {
3678
- const callbackMiddleware = createCallbackMiddleware(callbacks);
3679
- const storageTokenMiddleware = createStorageTokenMiddleware(token.storageApi);
359
+ const callbackMiddleware = chunkHPVTVQBJ_cjs.createCallbackMiddleware(callbacks);
360
+ const storageTokenMiddleware = chunk345V46LR_cjs.createStorageTokenMiddleware(token.storageApi);
3680
361
  const commonMiddlewares = [callbackMiddleware, storageTokenMiddleware];
3681
- const storage = createStorageClient({
362
+ const storage = chunk345V46LR_cjs.createStorageClient({
3682
363
  baseUrl,
3683
364
  middlewares: [...commonMiddlewares, ...storageMiddlewares || []]
3684
365
  });
3685
- const management = createManagementClient({
366
+ const management = chunkJKFIB6SQ_cjs.createManagementClient({
3686
367
  baseUrl,
3687
368
  token: token.managementApi,
3688
369
  callbacks
@@ -3694,7 +375,7 @@ var createClients = async ({
3694
375
  storage.tokens.verify()
3695
376
  ]);
3696
377
  const stack = createStack({ stackInfo, clientServiceUrls });
3697
- const project = createProject({ sapiToken });
378
+ const project = chunkGF4XZK5N_cjs.createProject({ sapiToken });
3698
379
  const { client, meta } = createServiceClientRegistry()({
3699
380
  getServiceBaseUrl: (serviceId) => stack.getServiceUrl(serviceId),
3700
381
  onUnavailable: ({ serviceId, path, clientName }) => {
@@ -3704,47 +385,47 @@ var createClients = async ({
3704
385
  {
3705
386
  serviceId: "vault",
3706
387
  clientName: "vault",
3707
- clientFn: (serviceBaseUrl) => createVaultClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares })
388
+ clientFn: (serviceBaseUrl) => chunkYUEYMIMI_cjs.createVaultClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares })
3708
389
  },
3709
390
  {
3710
391
  serviceId: "data-science",
3711
392
  clientName: "dataScience",
3712
- clientFn: (serviceBaseUrl) => createDataScienceClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares })
393
+ clientFn: (serviceBaseUrl) => chunkHYUGRMCY_cjs.createDataScienceClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares })
3713
394
  },
3714
395
  {
3715
396
  serviceId: "encryption",
3716
397
  clientName: "encryption",
3717
- clientFn: (serviceBaseUrl) => createEncryptionClient({ baseUrl: serviceBaseUrl, middlewares: [callbackMiddleware] })
398
+ clientFn: (serviceBaseUrl) => chunkHCNNMUTR_cjs.createEncryptionClient({ baseUrl: serviceBaseUrl, middlewares: [callbackMiddleware] })
3718
399
  },
3719
400
  {
3720
401
  serviceId: "editor",
3721
402
  clientName: "editor",
3722
- clientFn: (serviceBaseUrl) => createEditorClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares })
403
+ clientFn: (serviceBaseUrl) => chunkTIIRBQUA_cjs.createEditorClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares })
3723
404
  },
3724
405
  {
3725
406
  serviceId: "sync-actions",
3726
407
  clientName: "syncActions",
3727
- clientFn: (serviceBaseUrl) => createSyncActionsClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares })
408
+ clientFn: (serviceBaseUrl) => chunkXUDMML5C_cjs.createSyncActionsClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares })
3728
409
  },
3729
410
  {
3730
411
  serviceId: "telemetry",
3731
412
  clientName: "telemetry",
3732
- clientFn: (serviceBaseUrl) => createTelemetryClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares })
413
+ clientFn: (serviceBaseUrl) => chunkBGLICNTG_cjs.createTelemetryClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares })
3733
414
  },
3734
415
  {
3735
416
  serviceId: "query",
3736
417
  clientName: "queryService",
3737
- clientFn: (serviceBaseUrl) => createQueryServiceClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares })
418
+ clientFn: (serviceBaseUrl) => chunkLZ6A6J2E_cjs.createQueryServiceClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares })
3738
419
  },
3739
420
  {
3740
421
  serviceId: "queue",
3741
422
  clientName: "queue",
3742
- clientFn: (serviceBaseUrl) => createQueueClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares })
423
+ clientFn: (serviceBaseUrl) => chunkYXCVNX2Q_cjs.createQueueClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares })
3743
424
  },
3744
425
  {
3745
426
  serviceId: "kai-assistant",
3746
427
  clientName: "chat",
3747
- clientFn: (serviceBaseUrl) => createChatClient({
428
+ clientFn: (serviceBaseUrl) => chunk6RQDX6JY_cjs.createChatClient({
3748
429
  storageApiUrl: baseUrl,
3749
430
  baseUrl: serviceBaseUrl,
3750
431
  middlewares: commonMiddlewares
@@ -3753,12 +434,12 @@ var createClients = async ({
3753
434
  {
3754
435
  serviceId: "ai",
3755
436
  clientName: "ai",
3756
- clientFn: (serviceBaseUrl) => createAiClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares })
437
+ clientFn: (serviceBaseUrl) => chunkJLNOESHX_cjs.createAiClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares })
3757
438
  },
3758
439
  {
3759
440
  serviceId: "import",
3760
441
  clientName: "import",
3761
- clientFn: (serviceBaseUrl) => createImportClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares })
442
+ clientFn: (serviceBaseUrl) => chunk3T54WH4X_cjs.createImportClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares })
3762
443
  },
3763
444
  {
3764
445
  serviceId: "kai-agent",
@@ -3771,26 +452,26 @@ var createClients = async ({
3771
452
  {
3772
453
  serviceId: "oauth",
3773
454
  clientName: "oauth",
3774
- clientFn: (serviceBaseUrl) => createOauthClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares })
455
+ clientFn: (serviceBaseUrl) => chunk633QJMHH_cjs.createOauthClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares })
3775
456
  }
3776
457
  ]
3777
458
  });
3778
- const metastore = createMetastoreClient({
459
+ const metastore = chunkIY3VNVXD_cjs.createMetastoreClient({
3779
460
  baseUrl: metastoreBaseUrl,
3780
461
  middlewares: commonMiddlewares
3781
462
  });
3782
- const assets = createAssetsClient({
463
+ const assets = chunkEY5LALX2_cjs.createAssetsClient({
3783
464
  baseUrl: assetsBaseUrl,
3784
465
  middlewares: [callbackMiddleware]
3785
466
  });
3786
- const status = createStatusClient({
467
+ const status = chunkYPCD7M2N_cjs.createStatusClient({
3787
468
  baseUrl: statusBaseUrl,
3788
469
  middlewares: [callbackMiddleware]
3789
470
  });
3790
- const tag = createTagSdk({
471
+ const tag = chunkBR3SBEFE_cjs.createTagSdk({
3791
472
  metastoreClient: metastore
3792
473
  });
3793
- const storageSdk = createStorageSdk({
474
+ const storageSdk = chunkDCTDH77P_cjs.createStorageSdk({
3794
475
  storageClient: storage
3795
476
  });
3796
477
  return {
@@ -3831,8 +512,8 @@ var createApiClient = () => {
3831
512
  // src/middlewares/loggingMiddleware.ts
3832
513
  var CORRELATION_ID_HEADER = "X-Correlation-ID";
3833
514
  var ALWAYS_REDACTED_HEADERS = [
3834
- KeboolaHttpHeader.MANAGEMENT_API_TOKEN,
3835
- KeboolaHttpHeader.STORAGE_API_TOKEN
515
+ chunkHPVTVQBJ_cjs.KeboolaHttpHeader.MANAGEMENT_API_TOKEN,
516
+ chunkHPVTVQBJ_cjs.KeboolaHttpHeader.STORAGE_API_TOKEN
3836
517
  ];
3837
518
  var ALWAYS_REDACTED_QUERY_PARAMS = /* @__PURE__ */ new Set([
3838
519
  "token",
@@ -3863,7 +544,7 @@ var getRedactedUrl = (rawUrl) => {
3863
544
  return url.toString();
3864
545
  };
3865
546
  var ensureCorrelationId = (request) => {
3866
- const correlationId = request.headers.get(CORRELATION_ID_HEADER) ?? generateUUID();
547
+ const correlationId = request.headers.get(CORRELATION_ID_HEADER) ?? chunkBR3SBEFE_cjs.generateUUID();
3867
548
  request.headers.set(CORRELATION_ID_HEADER, correlationId);
3868
549
  return correlationId;
3869
550
  };
@@ -3942,13 +623,13 @@ var createLoggingMiddleware = (options = {}) => {
3942
623
  // src/middlewares/retryMiddleware.ts
3943
624
  var DEFAULT_MAX_RETRIES = 5;
3944
625
  var DEFAULT_RETRYABLE_STATUSES = [
3945
- HttpStatus.INTERNAL_SERVER_ERROR,
3946
- HttpStatus.BAD_GATEWAY,
3947
- HttpStatus.SERVICE_UNAVAILABLE,
3948
- HttpStatus.GATEWAY_TIMEOUT
626
+ chunkHPVTVQBJ_cjs.HttpStatus.INTERNAL_SERVER_ERROR,
627
+ chunkHPVTVQBJ_cjs.HttpStatus.BAD_GATEWAY,
628
+ chunkHPVTVQBJ_cjs.HttpStatus.SERVICE_UNAVAILABLE,
629
+ chunkHPVTVQBJ_cjs.HttpStatus.GATEWAY_TIMEOUT
3949
630
  ];
3950
631
  var DEFAULT_BACKOFF_FACTOR = 0.3;
3951
- var defaultShouldRetry = (error) => error instanceof ApiError && DEFAULT_RETRYABLE_STATUSES.includes(error.response.status);
632
+ var defaultShouldRetry = (error) => error instanceof chunkHPVTVQBJ_cjs.ApiError && DEFAULT_RETRYABLE_STATUSES.includes(error.response.status);
3952
633
  var createRetryMiddleware = (options) => {
3953
634
  const {
3954
635
  maxRetries = DEFAULT_MAX_RETRIES,
@@ -3970,7 +651,7 @@ var createRetryMiddleware = (options) => {
3970
651
  throw error;
3971
652
  }
3972
653
  const delayMs = backoffFactor * 1e3 * Math.pow(2, attempt);
3973
- await delay(delayMs, request.request.signal ?? void 0);
654
+ await chunkDCTDH77P_cjs.delay(delayMs, request.request.signal ?? void 0);
3974
655
  }
3975
656
  }
3976
657
  throw new Error("unreachable");
@@ -3979,35 +660,99 @@ var createRetryMiddleware = (options) => {
3979
660
 
3980
661
  // src/devClient.ts
3981
662
  var createDevApiClient = () => ({
3982
- verify: createVerifyClient()
663
+ verify: chunk76AHKXLC_cjs.createVerifyClient()
3983
664
  });
3984
665
 
3985
- exports.ApiError = ApiError;
3986
- exports.HttpContentType = HttpContentType;
3987
- exports.HttpHeader = HttpHeader;
3988
- exports.KeboolaHttpHeader = KeboolaHttpHeader;
3989
- exports.ManagementClientAuthError = ManagementClientAuthError;
3990
- exports.PollException = PollException;
666
+ Object.defineProperty(exports, "generateUUID", {
667
+ enumerable: true,
668
+ get: function () { return chunkBR3SBEFE_cjs.generateUUID; }
669
+ });
670
+ Object.defineProperty(exports, "keboolaUID", {
671
+ enumerable: true,
672
+ get: function () { return chunkBR3SBEFE_cjs.keboolaUID; }
673
+ });
674
+ Object.defineProperty(exports, "PollException", {
675
+ enumerable: true,
676
+ get: function () { return chunkDCTDH77P_cjs.PollException; }
677
+ });
678
+ Object.defineProperty(exports, "createStorageSdk", {
679
+ enumerable: true,
680
+ get: function () { return chunkDCTDH77P_cjs.createStorageSdk; }
681
+ });
682
+ Object.defineProperty(exports, "delay", {
683
+ enumerable: true,
684
+ get: function () { return chunkDCTDH77P_cjs.delay; }
685
+ });
686
+ Object.defineProperty(exports, "poll", {
687
+ enumerable: true,
688
+ get: function () { return chunkDCTDH77P_cjs.poll; }
689
+ });
690
+ Object.defineProperty(exports, "UserError", {
691
+ enumerable: true,
692
+ get: function () { return chunkYUEYMIMI_cjs.UserError; }
693
+ });
694
+ Object.defineProperty(exports, "ManagementClientAuthError", {
695
+ enumerable: true,
696
+ get: function () { return chunkJKFIB6SQ_cjs.ManagementClientAuthError; }
697
+ });
698
+ Object.defineProperty(exports, "isManagementClientAuthError", {
699
+ enumerable: true,
700
+ get: function () { return chunkJKFIB6SQ_cjs.isManagementClientAuthError; }
701
+ });
702
+ Object.defineProperty(exports, "series", {
703
+ enumerable: true,
704
+ get: function () { return chunk345V46LR_cjs.series; }
705
+ });
706
+ Object.defineProperty(exports, "concurrent", {
707
+ enumerable: true,
708
+ get: function () { return chunkCVV4HROS_cjs.concurrent; }
709
+ });
710
+ Object.defineProperty(exports, "parseLogLines", {
711
+ enumerable: true,
712
+ get: function () { return chunkHYUGRMCY_cjs.parseLogLines; }
713
+ });
714
+ Object.defineProperty(exports, "ApiError", {
715
+ enumerable: true,
716
+ get: function () { return chunkHPVTVQBJ_cjs.ApiError; }
717
+ });
718
+ Object.defineProperty(exports, "HttpContentType", {
719
+ enumerable: true,
720
+ get: function () { return chunkHPVTVQBJ_cjs.HttpContentType; }
721
+ });
722
+ Object.defineProperty(exports, "HttpHeader", {
723
+ enumerable: true,
724
+ get: function () { return chunkHPVTVQBJ_cjs.HttpHeader; }
725
+ });
726
+ Object.defineProperty(exports, "KeboolaHttpHeader", {
727
+ enumerable: true,
728
+ get: function () { return chunkHPVTVQBJ_cjs.KeboolaHttpHeader; }
729
+ });
730
+ Object.defineProperty(exports, "createGenericFetchClient", {
731
+ enumerable: true,
732
+ get: function () { return chunkHPVTVQBJ_cjs.createGenericFetchClient; }
733
+ });
734
+ Object.defineProperty(exports, "isAbortError", {
735
+ enumerable: true,
736
+ get: function () { return chunkHPVTVQBJ_cjs.isAbortError; }
737
+ });
738
+ Object.defineProperty(exports, "isApiError", {
739
+ enumerable: true,
740
+ get: function () { return chunkHPVTVQBJ_cjs.isApiError; }
741
+ });
742
+ Object.defineProperty(exports, "isFetchClientError", {
743
+ enumerable: true,
744
+ get: function () { return chunkHPVTVQBJ_cjs.isFetchClientError; }
745
+ });
746
+ Object.defineProperty(exports, "normalizeBaseUrl", {
747
+ enumerable: true,
748
+ get: function () { return chunkHPVTVQBJ_cjs.normalizeBaseUrl; }
749
+ });
3991
750
  exports.ServiceUnavailableError = ServiceUnavailableError;
3992
- exports.UserError = UserError;
3993
751
  exports.assert = assert;
3994
- exports.concurrent = concurrent;
3995
752
  exports.consoleLogger = consoleLogger;
3996
753
  exports.createApiClient = createApiClient;
3997
754
  exports.createDevApiClient = createDevApiClient;
3998
- exports.createGenericFetchClient = createGenericFetchClient;
3999
755
  exports.createLoggingMiddleware = createLoggingMiddleware;
4000
756
  exports.createRetryMiddleware = createRetryMiddleware;
4001
- exports.createStorageSdk = createStorageSdk;
4002
- exports.delay = delay;
4003
- exports.generateUUID = generateUUID;
4004
- exports.isAbortError = isAbortError;
4005
- exports.isApiError = isApiError;
4006
- exports.isFetchClientError = isFetchClientError;
4007
- exports.isManagementClientAuthError = isManagementClientAuthError;
4008
- exports.keboolaUID = keboolaUID;
4009
- exports.parseLogLines = parseLogLines;
4010
- exports.poll = poll;
4011
- exports.series = series;
4012
757
  //# sourceMappingURL=index.cjs.map
4013
758
  //# sourceMappingURL=index.cjs.map