@keboola/api-client 1.0.1 → 3.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 (213) 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.js +3 -422
  12. package/dist/chat/index.js.map +1 -1
  13. package/dist/chat/suggestions.cjs +70 -152
  14. package/dist/chat/suggestions.cjs.map +1 -1
  15. package/dist/chat/suggestions.js +1 -138
  16. package/dist/chat/suggestions.js.map +1 -1
  17. package/dist/chunk-3B7L6MCG.js +189 -0
  18. package/dist/chunk-3B7L6MCG.js.map +1 -0
  19. package/dist/chunk-3T54WH4X.cjs +42 -0
  20. package/dist/chunk-3T54WH4X.cjs.map +1 -0
  21. package/dist/chunk-3Y6NK7TC.js +34 -0
  22. package/dist/chunk-3Y6NK7TC.js.map +1 -0
  23. package/dist/chunk-4RC5E3SL.js +140 -0
  24. package/dist/chunk-4RC5E3SL.js.map +1 -0
  25. package/dist/chunk-633QJMHH.cjs +73 -0
  26. package/dist/chunk-633QJMHH.cjs.map +1 -0
  27. package/dist/chunk-6RQDX6JY.cjs +132 -0
  28. package/dist/chunk-6RQDX6JY.cjs.map +1 -0
  29. package/dist/chunk-76AHKXLC.cjs +29 -0
  30. package/dist/chunk-76AHKXLC.cjs.map +1 -0
  31. package/dist/chunk-7FY6COWG.js +71 -0
  32. package/dist/chunk-7FY6COWG.js.map +1 -0
  33. package/dist/chunk-7J2R6XHB.js +3 -0
  34. package/dist/chunk-7J2R6XHB.js.map +1 -0
  35. package/dist/chunk-BGLICNTG.cjs +33 -0
  36. package/dist/chunk-BGLICNTG.cjs.map +1 -0
  37. package/dist/chunk-BR3SBEFE.cjs +182 -0
  38. package/dist/chunk-BR3SBEFE.cjs.map +1 -0
  39. package/dist/chunk-CVV4HROS.cjs +37 -0
  40. package/dist/chunk-CVV4HROS.cjs.map +1 -0
  41. package/dist/chunk-DCTDH77P.cjs +277 -0
  42. package/dist/chunk-DCTDH77P.cjs.map +1 -0
  43. package/dist/chunk-EBCZUGUX.js +35 -0
  44. package/dist/chunk-EBCZUGUX.js.map +1 -0
  45. package/dist/chunk-EY5LALX2.cjs +26 -0
  46. package/dist/chunk-EY5LALX2.cjs.map +1 -0
  47. package/dist/chunk-FBQHHAL5.js +40 -0
  48. package/dist/chunk-FBQHHAL5.js.map +1 -0
  49. package/dist/chunk-GF4XZK5N.cjs +43 -0
  50. package/dist/chunk-GF4XZK5N.cjs.map +1 -0
  51. package/dist/chunk-GNPQB3MT.js +27 -0
  52. package/dist/chunk-GNPQB3MT.js.map +1 -0
  53. package/dist/chunk-GO6SOMGL.js +181 -0
  54. package/dist/chunk-GO6SOMGL.js.map +1 -0
  55. package/dist/chunk-HCNNMUTR.cjs +36 -0
  56. package/dist/chunk-HCNNMUTR.cjs.map +1 -0
  57. package/dist/chunk-HPVTVQBJ.cjs +238 -0
  58. package/dist/chunk-HPVTVQBJ.cjs.map +1 -0
  59. package/dist/chunk-HYUGRMCY.cjs +247 -0
  60. package/dist/chunk-HYUGRMCY.cjs.map +1 -0
  61. package/dist/chunk-IJMQCOBC.js +34 -0
  62. package/dist/chunk-IJMQCOBC.js.map +1 -0
  63. package/dist/chunk-IY3VNVXD.cjs +183 -0
  64. package/dist/chunk-IY3VNVXD.cjs.map +1 -0
  65. package/dist/chunk-JKFIB6SQ.cjs +685 -0
  66. package/dist/chunk-JKFIB6SQ.cjs.map +1 -0
  67. package/dist/chunk-JLNOESHX.cjs +47 -0
  68. package/dist/chunk-JLNOESHX.cjs.map +1 -0
  69. package/dist/chunk-JURD5MC3.js +178 -0
  70. package/dist/chunk-JURD5MC3.js.map +1 -0
  71. package/dist/chunk-LV3ZWNDC.js +75 -0
  72. package/dist/chunk-LV3ZWNDC.js.map +1 -0
  73. package/dist/chunk-LZ6A6J2E.cjs +77 -0
  74. package/dist/chunk-LZ6A6J2E.cjs.map +1 -0
  75. package/dist/chunk-OKVYLO6C.js +108 -0
  76. package/dist/chunk-OKVYLO6C.js.map +1 -0
  77. package/dist/chunk-PD3LJYS2.js +218 -0
  78. package/dist/chunk-PD3LJYS2.js.map +1 -0
  79. package/dist/chunk-PV4HIVW2.js +130 -0
  80. package/dist/chunk-PV4HIVW2.js.map +1 -0
  81. package/dist/chunk-R7PD3BRA.js +261 -0
  82. package/dist/chunk-R7PD3BRA.js.map +1 -0
  83. package/dist/chunk-SAEG42HW.js +64 -0
  84. package/dist/chunk-SAEG42HW.js.map +1 -0
  85. package/dist/chunk-TIIRBQUA.cjs +110 -0
  86. package/dist/chunk-TIIRBQUA.cjs.map +1 -0
  87. package/dist/chunk-TNJWOHPM.js +948 -0
  88. package/dist/chunk-TNJWOHPM.js.map +1 -0
  89. package/dist/chunk-TXFQ4YIK.js +31 -0
  90. package/dist/chunk-TXFQ4YIK.js.map +1 -0
  91. package/dist/chunk-U5SE6W5M.cjs +158 -0
  92. package/dist/chunk-U5SE6W5M.cjs.map +1 -0
  93. package/dist/chunk-UABYNGBZ.js +39 -0
  94. package/dist/chunk-UABYNGBZ.js.map +1 -0
  95. package/dist/chunk-UXF53ZOV.js +220 -0
  96. package/dist/chunk-UXF53ZOV.js.map +1 -0
  97. package/dist/chunk-VAOCYA6B.js +20 -0
  98. package/dist/chunk-VAOCYA6B.js.map +1 -0
  99. package/dist/chunk-VS5PM7KL.js +45 -0
  100. package/dist/chunk-VS5PM7KL.js.map +1 -0
  101. package/dist/chunk-WQ7EZWBF.js +24 -0
  102. package/dist/chunk-WQ7EZWBF.js.map +1 -0
  103. package/dist/chunk-XFC52BJV.cjs +952 -0
  104. package/dist/chunk-XFC52BJV.cjs.map +1 -0
  105. package/dist/chunk-XPDEQND7.cjs +4 -0
  106. package/dist/chunk-XPDEQND7.cjs.map +1 -0
  107. package/dist/chunk-XUDMML5C.cjs +211 -0
  108. package/dist/chunk-XUDMML5C.cjs.map +1 -0
  109. package/dist/chunk-YPCD7M2N.cjs +22 -0
  110. package/dist/chunk-YPCD7M2N.cjs.map +1 -0
  111. package/dist/chunk-YUEYMIMI.cjs +67 -0
  112. package/dist/chunk-YUEYMIMI.cjs.map +1 -0
  113. package/dist/chunk-YXCVNX2Q.cjs +36 -0
  114. package/dist/chunk-YXCVNX2Q.cjs.map +1 -0
  115. package/dist/chunk-ZEMKE6DI.js +681 -0
  116. package/dist/chunk-ZEMKE6DI.js.map +1 -0
  117. package/dist/dataScience/index.cjs +8 -412
  118. package/dist/dataScience/index.cjs.map +1 -1
  119. package/dist/dataScience/index.js +2 -391
  120. package/dist/dataScience/index.js.map +1 -1
  121. package/dist/domain/permissions/index.cjs +131 -2
  122. package/dist/domain/permissions/index.cjs.map +1 -1
  123. package/dist/domain/permissions/index.d.cts +108 -2
  124. package/dist/domain/permissions/index.d.ts +108 -2
  125. package/dist/domain/permissions/index.js +106 -3
  126. package/dist/domain/permissions/index.js.map +1 -1
  127. package/dist/editor/index.cjs +5 -264
  128. package/dist/editor/index.cjs.map +1 -1
  129. package/dist/editor/index.js +2 -264
  130. package/dist/editor/index.js.map +1 -1
  131. package/dist/encryption/index.cjs +5 -190
  132. package/dist/encryption/index.cjs.map +1 -1
  133. package/dist/encryption/index.js +2 -190
  134. package/dist/encryption/index.js.map +1 -1
  135. package/dist/import/index.cjs +5 -196
  136. package/dist/import/index.cjs.map +1 -1
  137. package/dist/import/index.js +2 -196
  138. package/dist/import/index.js.map +1 -1
  139. package/dist/index.cjs +334 -3752
  140. package/dist/index.cjs.map +1 -1
  141. package/dist/index.d.cts +1814 -104
  142. package/dist/index.d.ts +1814 -104
  143. package/dist/index.js +176 -3627
  144. package/dist/index.js.map +1 -1
  145. package/dist/management/index.cjs +10 -881
  146. package/dist/management/index.cjs.map +1 -1
  147. package/dist/management/index.js +3 -880
  148. package/dist/management/index.js.map +1 -1
  149. package/dist/metastore/index.cjs +5 -337
  150. package/dist/metastore/index.cjs.map +1 -1
  151. package/dist/metastore/index.js +2 -337
  152. package/dist/metastore/index.js.map +1 -1
  153. package/dist/oauth/index.cjs +5 -226
  154. package/dist/oauth/index.cjs.map +1 -1
  155. package/dist/oauth/index.js +2 -226
  156. package/dist/oauth/index.js.map +1 -1
  157. package/dist/project-Bzslbq4u.d.ts +16 -0
  158. package/dist/project-CYhB6rYN.d.cts +16 -0
  159. package/dist/queryService/index.cjs +5 -248
  160. package/dist/queryService/index.cjs.map +1 -1
  161. package/dist/queryService/index.js +2 -248
  162. package/dist/queryService/index.js.map +1 -1
  163. package/dist/queue/index.cjs +5 -190
  164. package/dist/queue/index.cjs.map +1 -1
  165. package/dist/queue/index.js +2 -190
  166. package/dist/queue/index.js.map +1 -1
  167. package/dist/sdk/configurations/index.d.cts +2 -12
  168. package/dist/sdk/configurations/index.d.ts +2 -12
  169. package/dist/sdk/storage/index.cjs +49 -267
  170. package/dist/sdk/storage/index.cjs.map +1 -1
  171. package/dist/sdk/storage/index.d.cts +2 -2
  172. package/dist/sdk/storage/index.d.ts +2 -2
  173. package/dist/sdk/storage/index.js +1 -259
  174. package/dist/sdk/storage/index.js.map +1 -1
  175. package/dist/sdk/tag/index.cjs +6 -203
  176. package/dist/sdk/tag/index.cjs.map +1 -1
  177. package/dist/sdk/tag/index.js +2 -206
  178. package/dist/sdk/tag/index.js.map +1 -1
  179. package/dist/status/index.cjs +6 -176
  180. package/dist/status/index.cjs.map +1 -1
  181. package/dist/status/index.js +3 -176
  182. package/dist/status/index.js.map +1 -1
  183. package/dist/status/types.cjs +2 -0
  184. package/dist/status/types.js +1 -1
  185. package/dist/storage/index.cjs +9 -1110
  186. package/dist/storage/index.cjs.map +1 -1
  187. package/dist/storage/index.d.cts +1 -1
  188. package/dist/storage/index.d.ts +1 -1
  189. package/dist/storage/index.js +3 -1110
  190. package/dist/storage/index.js.map +1 -1
  191. package/dist/storage/types.d.cts +39 -2
  192. package/dist/storage/types.d.ts +39 -2
  193. package/dist/{storageClient-DrYOs4Xm.d.ts → storageClient-BgvUM7gy.d.ts} +4 -1
  194. package/dist/{storageClient-DSLTM3Cr.d.cts → storageClient-CDX-GvNV.d.cts} +4 -1
  195. package/dist/{storageSdk-BBqAo0Vx.d.cts → storageSdk-IOIdwqy-.d.cts} +1 -1
  196. package/dist/{storageSdk-ZVmKQQSl.d.ts → storageSdk-qGaWB1dy.d.ts} +1 -1
  197. package/dist/syncActions/index.cjs +5 -364
  198. package/dist/syncActions/index.cjs.map +1 -1
  199. package/dist/syncActions/index.js +2 -345
  200. package/dist/syncActions/index.js.map +1 -1
  201. package/dist/telemetry/index.cjs +5 -187
  202. package/dist/telemetry/index.cjs.map +1 -1
  203. package/dist/telemetry/index.js +2 -187
  204. package/dist/telemetry/index.js.map +1 -1
  205. package/dist/vault/index.cjs +5 -219
  206. package/dist/vault/index.cjs.map +1 -1
  207. package/dist/vault/index.js +2 -219
  208. package/dist/vault/index.js.map +1 -1
  209. package/dist/verify/index.cjs +5 -184
  210. package/dist/verify/index.cjs.map +1 -1
  211. package/dist/verify/index.js +2 -184
  212. package/dist/verify/index.js.map +1 -1
  213. package/package.json +1 -1
@@ -1,221 +1,4 @@
1
- import qs from 'qs';
2
-
3
- // src/constants.ts
4
- var HttpStatus = {
5
- NO_CONTENT: 204};
6
- var ENCRYPTED_VALUE_PREFIX = "KBC::";
7
-
8
- // src/errors/UserError.ts
9
- var UserError = class extends Error {
10
- constructor(message) {
11
- super(message);
12
- }
13
- };
14
-
15
- // src/errors/ApiError.ts
16
- var ApiError = class extends Error {
17
- response;
18
- request;
19
- data;
20
- constructor({ response, request, data }) {
21
- super(response.statusText);
22
- this.response = response;
23
- this.request = request;
24
- this.data = data;
25
- }
26
- };
27
- var HttpHeader = {
28
- CONTENT_TYPE: "content-type"};
29
- var HttpContentType = {
30
- JSON: "application/json"};
31
- var defaultValidateStatus = ({ response }) => response.status >= 200 && response.status <= 299;
32
- function removeUndefined(obj) {
33
- const objCopy = { ...obj };
34
- for (const [key, value] of Object.entries(objCopy)) {
35
- if (value == null) delete objCopy[key];
36
- }
37
- return objCopy;
38
- }
39
- var parseData = async (response) => {
40
- if (response.status === HttpStatus.NO_CONTENT) return null;
41
- const contentType = response.headers.get(HttpHeader.CONTENT_TYPE);
42
- if (contentType && contentType == HttpContentType.JSON) {
43
- return response.json();
44
- }
45
- const text = await response.text();
46
- try {
47
- return JSON.parse(text);
48
- } catch {
49
- return text;
50
- }
51
- };
52
- var cleanHeadersInit = (headersInit) => {
53
- if (Array.isArray(headersInit)) return headersInit;
54
- if (headersInit instanceof Headers) return headersInit;
55
- if (headersInit == null) return headersInit;
56
- return removeUndefined(headersInit);
57
- };
58
- var createHeaders = (headersInitA, headersInitB) => {
59
- const headersA = new Headers(cleanHeadersInit(headersInitA));
60
- const headersB = new Headers(cleanHeadersInit(headersInitB));
61
- headersB.forEach((value, key) => {
62
- headersA.set(key, value);
63
- });
64
- return headersA;
65
- };
66
- var createPath = (path, pathParam = {}) => path.replace(/\{([^}]+)}/g, (_, key) => {
67
- if (!(key in pathParam))
68
- throw new Error(`Path parameter "${key}" is missing in the path "${path}"`);
69
- return encodeURIComponent(pathParam[key]);
70
- });
71
- var createSearch = (query, options = {}) => {
72
- return qs.stringify(query, {
73
- encodeValuesOnly: true,
74
- skipNulls: true,
75
- ...options
76
- });
77
- };
78
- var createBody = (body, headers) => {
79
- if (body == null) return null;
80
- if (body instanceof FormData) return body;
81
- if (typeof body === "string") return body;
82
- const stringifyBody = JSON.stringify(body);
83
- const stringBody = stringifyBody === "{}" ? null : stringifyBody;
84
- if (stringBody) headers.set(HttpHeader.CONTENT_TYPE, HttpContentType.JSON);
85
- return stringBody;
86
- };
87
- var createFetchRequest = ({
88
- url,
89
- method,
90
- params,
91
- options = {},
92
- defaultOptions
93
- }) => {
94
- const {
95
- baseUrl,
96
- validateStatus: defValidateStatus = defaultValidateStatus,
97
- headers: defaultHeaders,
98
- ...restDefaultOptions
99
- } = defaultOptions;
100
- const { validateStatus, queryArrayFormat, headers: endpointHeaders, ...restOptions } = options;
101
- const headers = createHeaders(defaultHeaders, endpointHeaders);
102
- const path = createPath(url, params.path);
103
- const search = createSearch(params.query ?? {}, { arrayFormat: queryArrayFormat });
104
- const body = createBody(params.body, headers);
105
- const urlInstance = new URL(baseUrl + path);
106
- urlInstance.search = search;
107
- const request = new Request(urlInstance, {
108
- ...restDefaultOptions,
109
- ...restOptions,
110
- headers,
111
- method: method.toUpperCase(),
112
- body
113
- });
114
- return { request, validateStatus: validateStatus ?? defValidateStatus };
115
- };
116
-
117
- // src/fetchClient/createFetchClient/createFetchClient.ts
118
- var isApiError = (error) => error instanceof ApiError;
119
- var createCoreFetch = (fetchFn) => async ({ request, validateStatus }) => {
120
- const response = await fetchFn(request);
121
- const data = await parseData(response);
122
- const apiResponse = {
123
- request,
124
- response,
125
- data
126
- };
127
- const boolOrError = validateStatus(apiResponse);
128
- if (isApiError(boolOrError)) throw boolOrError;
129
- if (!boolOrError) throw new ApiError(apiResponse);
130
- return apiResponse;
131
- };
132
- var createFetchClient = ({
133
- middlewares = [],
134
- ...defaultOptions
135
- }) => {
136
- const coreFetch = createCoreFetch(defaultOptions.fetchFn ?? fetch);
137
- const fetchWithMiddlewares = middlewares.reduceRight(
138
- (next, middleware) => middleware(next),
139
- coreFetch
140
- );
141
- const createFetchMethod = (method) => async (url, params, options = {}) => {
142
- const request = createFetchRequest({
143
- url,
144
- method,
145
- params,
146
- defaultOptions,
147
- options
148
- });
149
- const methodMiddlewares = options?.middlewares ?? [];
150
- return methodMiddlewares.reduceRight(
151
- (next, middleware) => middleware(next),
152
- fetchWithMiddlewares
153
- )(request);
154
- };
155
- return {
156
- get: createFetchMethod("get"),
157
- post: createFetchMethod("post"),
158
- put: createFetchMethod("put"),
159
- patch: createFetchMethod("patch"),
160
- delete: createFetchMethod("delete")
161
- };
162
- };
163
-
164
- // src/fetchClient/createOpenapiFetchClient.ts
165
- var createOpenapiFetchClient = (defaultOptions) => createFetchClient(defaultOptions);
166
-
167
- // src/clients/vault/vaultClient.ts
168
- var createVaultClient = ({ baseUrl, middlewares }) => {
169
- const client = createOpenapiFetchClient({
170
- baseUrl,
171
- middlewares
172
- });
173
- const getVariables = async (query, signal) => {
174
- const { data } = await client.get(
175
- "/variables",
176
- { query },
177
- {
178
- signal
179
- }
180
- );
181
- return data;
182
- };
183
- const deleteVariable = async (hash, signal) => {
184
- await client.delete(
185
- "/variables/{hash}",
186
- {
187
- path: { hash }
188
- },
189
- { signal }
190
- );
191
- };
192
- const createVariable = async (body, signal) => {
193
- if (body.flags.includes("encrypted") && !body.value.startsWith(ENCRYPTED_VALUE_PREFIX)) {
194
- throw new UserError("Encryption of a value failed. Please contact our support.");
195
- }
196
- const { data } = await client.post("/variables", { body }, { signal });
197
- return data;
198
- };
199
- const getVariablesByBranchId = async (branchId, signal) => {
200
- const { data } = await client.get(
201
- "/variables/scoped/branch/{branchId}",
202
- {
203
- path: { branchId }
204
- },
205
- { signal }
206
- );
207
- return data;
208
- };
209
- const getProjectWideVariables = (signal) => getVariablesByBranchId("null", signal);
210
- return {
211
- createVariable,
212
- deleteVariable,
213
- getProjectWideVariables,
214
- getVariables,
215
- getVariablesByBranchId
216
- };
217
- };
218
-
219
- export { createVaultClient };
1
+ export { createVaultClient } from '../chunk-SAEG42HW.js';
2
+ import '../chunk-PD3LJYS2.js';
220
3
  //# sourceMappingURL=index.js.map
221
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/constants.ts","../../src/errors/UserError.ts","../../src/errors/ApiError.ts","../../src/fetchClient/createFetchClient/utils.ts","../../src/fetchClient/createFetchClient/createFetchClient.ts","../../src/fetchClient/createOpenapiFetchClient.ts","../../src/clients/vault/vaultClient.ts"],"names":[],"mappings":";;;AAMO,IAAM,UAAA,GAAa;AAAA,EACxB,UAAA,EAAY,GAOd,CAAA;AAEO,IAAM,sBAAA,GAAyB,OAAA;;;AChB/B,IAAM,SAAA,GAAN,cAAwB,KAAA,CAAM;AAAA,EACnC,YAAY,OAAA,EAAiB;AAC3B,IAAA,KAAA,CAAM,OAAO,CAAA;AAAA,EACf;AACF,CAAA;;;ACFO,IAAM,QAAA,GAAN,cAAuB,KAAA,CAAM;AAAA,EAClC,QAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EAEA,WAAA,CAAY,EAAE,QAAA,EAAU,OAAA,EAAS,MAAK,EAAgB;AACpD,IAAA,KAAA,CAAM,SAAS,UAAU,CAAA;AACzB,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAChB,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AACf,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AAAA,EACd;AACF,CAAA;ACNO,IAAM,UAAA,GAAa;AAAA,EACxB,YAAA,EAAc,cAEhB,CAAA;AAEO,IAAM,eAAA,GAAkB;AAAA,EAC7B,IAAA,EAAM,kBAIR,CAAA;AAEO,IAAM,qBAAA,GAA0C,CAAC,EAAE,QAAA,OACxD,QAAA,CAAS,MAAA,IAAU,GAAA,IAAO,QAAA,CAAS,MAAA,IAAU,GAAA;AAE/C,SAAS,gBAAgB,GAAA,EAA6B;AACpD,EAAA,MAAM,OAAA,GAAU,EAAE,GAAG,GAAA,EAAI;AACzB,EAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,OAAO,CAAA,EAAG;AAClD,IAAA,IAAI,KAAA,IAAS,IAAA,EAAM,OAAO,OAAA,CAAQ,GAAG,CAAA;AAAA,EACvC;AACA,EAAA,OAAO,OAAA;AACT;AAEO,IAAM,SAAA,GAAY,OAAO,QAAA,KAAuB;AACrD,EAAA,IAAI,QAAA,CAAS,MAAA,KAAW,UAAA,CAAW,UAAA,EAAY,OAAO,IAAA;AAGtD,EAAA,MAAM,WAAA,GAAc,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,WAAW,YAAY,CAAA;AAChE,EAAA,IAAI,WAAA,IAAe,WAAA,IAAe,eAAA,CAAgB,IAAA,EAAM;AACtD,IAAA,OAAO,SAAS,IAAA,EAAK;AAAA,EACvB;AAIA,EAAA,MAAM,IAAA,GAAO,MAAM,QAAA,CAAS,IAAA,EAAK;AACjC,EAAA,IAAI;AACF,IAAA,OAAO,IAAA,CAAK,MAAM,IAAI,CAAA;AAAA,EACxB,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,IAAA;AAAA,EACT;AACF,CAAA;AAGA,IAAM,gBAAA,GAAmB,CAAC,WAAA,KAAyC;AACjE,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,WAAW,CAAA,EAAG,OAAO,WAAA;AACvC,EAAA,IAAI,WAAA,YAAuB,SAAS,OAAO,WAAA;AAC3C,EAAA,IAAI,WAAA,IAAe,MAAM,OAAO,WAAA;AAEhC,EAAA,OAAO,gBAAgB,WAAW,CAAA;AACpC,CAAA;AAEA,IAAM,aAAA,GAAgB,CACpB,YAAA,EACA,YAAA,KACG;AACH,EAAA,MAAM,QAAA,GAAW,IAAI,OAAA,CAAQ,gBAAA,CAAiB,YAAY,CAAC,CAAA;AAC3D,EAAA,MAAM,QAAA,GAAW,IAAI,OAAA,CAAQ,gBAAA,CAAiB,YAAY,CAAC,CAAA;AAE3D,EAAA,QAAA,CAAS,OAAA,CAAQ,CAAC,KAAA,EAAO,GAAA,KAAQ;AAC/B,IAAA,QAAA,CAAS,GAAA,CAAI,KAAK,KAAK,CAAA;AAAA,EACzB,CAAC,CAAA;AAED,EAAA,OAAO,QAAA;AACT,CAAA;AAEO,IAAM,UAAA,GAAa,CAAC,IAAA,EAAc,SAAA,GAAuB,EAAC,KAC/D,IAAA,CAAK,OAAA,CAAQ,aAAA,EAAe,CAAC,CAAA,EAAG,GAAA,KAAQ;AACtC,EAAA,IAAI,EAAE,GAAA,IAAO,SAAA,CAAA;AACX,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,gBAAA,EAAmB,GAAG,CAAA,0BAAA,EAA6B,IAAI,CAAA,CAAA,CAAG,CAAA;AAE5E,EAAA,OAAO,kBAAA,CAAmB,SAAA,CAAU,GAAG,CAAE,CAAA;AAC3C,CAAC,CAAA;AAEI,IAAM,YAAA,GAAe,CAC1B,KAAA,EACA,OAAA,GAAkD,EAAC,KAChD;AACH,EAAA,OAAO,EAAA,CAAG,UAAU,KAAA,EAAO;AAAA,IACzB,gBAAA,EAAkB,IAAA;AAAA,IAClB,SAAA,EAAW,IAAA;AAAA,IACX,GAAG;AAAA,GACJ,CAAA;AACH,CAAA;AAEO,IAAM,UAAA,GAAa,CAAC,IAAA,EAAiB,OAAA,KAAqB;AAC/D,EAAA,IAAI,IAAA,IAAQ,MAAM,OAAO,IAAA;AACzB,EAAA,IAAI,IAAA,YAAgB,UAAU,OAAO,IAAA;AACrC,EAAA,IAAI,OAAO,IAAA,KAAS,QAAA,EAAU,OAAO,IAAA;AAErC,EAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,SAAA,CAAU,IAAI,CAAA;AACzC,EAAA,MAAM,UAAA,GAAa,aAAA,KAAkB,IAAA,GAAO,IAAA,GAAO,aAAA;AACnD,EAAA,IAAI,YAAY,OAAA,CAAQ,GAAA,CAAI,UAAA,CAAW,YAAA,EAAc,gBAAgB,IAAI,CAAA;AAEzE,EAAA,OAAO,UAAA;AACT,CAAA;AA2BO,IAAM,qBAA2C,CAAC;AAAA,EACvD,GAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA,UAAU,EAAC;AAAA,EACX;AACF,CAAA,KAAM;AACJ,EAAA,MAAM;AAAA,IACJ,OAAA;AAAA,IACA,gBAAgB,iBAAA,GAAoB,qBAAA;AAAA,IACpC,OAAA,EAAS,cAAA;AAAA,IACT,GAAG;AAAA,GACL,GAAI,cAAA;AACJ,EAAA,MAAM,EAAE,cAAA,EAAgB,gBAAA,EAAkB,SAAS,eAAA,EAAiB,GAAG,aAAY,GAAI,OAAA;AAEvF,EAAA,MAAM,OAAA,GAAU,aAAA,CAAc,cAAA,EAAgB,eAAe,CAAA;AAC7D,EAAA,MAAM,IAAA,GAAO,UAAA,CAAW,GAAA,EAAK,MAAA,CAAO,IAAI,CAAA;AACxC,EAAA,MAAM,MAAA,GAAS,aAAa,MAAA,CAAO,KAAA,IAAS,EAAC,EAAG,EAAE,WAAA,EAAa,gBAAA,EAAkB,CAAA;AACjF,EAAA,MAAM,IAAA,GAAO,UAAA,CAAW,MAAA,CAAO,IAAA,EAAM,OAAO,CAAA;AAE5C,EAAA,MAAM,WAAA,GAAc,IAAI,GAAA,CAAI,OAAA,GAAU,IAAI,CAAA;AAC1C,EAAA,WAAA,CAAY,MAAA,GAAS,MAAA;AAErB,EAAA,MAAM,OAAA,GAAU,IAAI,OAAA,CAAQ,WAAA,EAAa;AAAA,IACvC,GAAG,kBAAA;AAAA,IACH,GAAG,WAAA;AAAA,IACH,OAAA;AAAA,IACA,MAAA,EAAQ,OAAO,WAAA,EAAY;AAAA,IAC3B;AAAA,GACD,CAAA;AAED,EAAA,OAAO,EAAE,OAAA,EAAS,cAAA,EAAgB,cAAA,IAAkB,iBAAA,EAAkB;AACxE,CAAA;;;AClJO,IAAM,UAAA,GAAa,CAAC,KAAA,KAAsC,KAAA,YAAiB,QAAA;AAQlF,IAAM,kBACJ,CAAC,OAAA,KACD,OAAO,EAAE,OAAA,EAAS,gBAAe,KAAM;AACrC,EAAA,MAAM,QAAA,GAAW,MAAM,OAAA,CAAQ,OAAO,CAAA;AACtC,EAAA,MAAM,IAAA,GAAO,MAAM,SAAA,CAAU,QAAQ,CAAA;AAErC,EAAA,MAAM,WAAA,GAAc;AAAA,IAClB,OAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,MAAM,WAAA,GAAc,eAAe,WAAW,CAAA;AAC9C,EAAA,IAAI,UAAA,CAAW,WAAW,CAAA,EAAG,MAAM,WAAA;AACnC,EAAA,IAAI,CAAC,WAAA,EAAa,MAAM,IAAI,SAAS,WAAW,CAAA;AAEhD,EAAA,OAAO,WAAA;AACT,CAAA;AAEK,IAAM,oBAAoB,CAAC;AAAA,EAChC,cAAc,EAAC;AAAA,EACf,GAAG;AACL,CAAA,KAAgC;AAC9B,EAAA,MAAM,SAAA,GAAY,eAAA,CAAgB,cAAA,CAAe,OAAA,IAAW,KAAK,CAAA;AACjE,EAAA,MAAM,uBAAuB,WAAA,CAAY,WAAA;AAAA,IACvC,CAAC,IAAA,EAAM,UAAA,KAAe,UAAA,CAAW,IAAI,CAAA;AAAA,IACrC;AAAA,GACF;AAEA,EAAA,MAAM,iBAAA,GACJ,CAAC,MAAA,KACD,OAAO,KAAa,MAAA,EAAyB,OAAA,GAA8B,EAAC,KAAM;AAChF,IAAA,MAAM,UAAU,kBAAA,CAAmB;AAAA,MACjC,GAAA;AAAA,MACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,cAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAA,MAAM,iBAAA,GAAoB,OAAA,EAAS,WAAA,IAAe,EAAC;AAEnD,IAAA,OAAO,iBAAA,CAAkB,WAAA;AAAA,MACvB,CAAC,IAAA,EAAM,UAAA,KAAe,UAAA,CAAW,IAAI,CAAA;AAAA,MACrC;AAAA,MACA,OAAO,CAAA;AAAA,EACX,CAAA;AAEF,EAAA,OAAO;AAAA,IACL,GAAA,EAAK,kBAAkB,KAAK,CAAA;AAAA,IAC5B,IAAA,EAAM,kBAAkB,MAAM,CAAA;AAAA,IAC9B,GAAA,EAAK,kBAAkB,KAAK,CAAA;AAAA,IAC5B,KAAA,EAAO,kBAAkB,OAAO,CAAA;AAAA,IAChC,MAAA,EAAQ,kBAAkB,QAAQ;AAAA,GACpC;AACF,CAAA;;;ACtCO,IAAM,wBAAA,GAA2B,CACtC,cAAA,KACG,iBAAA,CAAkB,cAAc,CAAA;;;AC3B9B,IAAM,iBAAA,GAAoB,CAAC,EAAE,OAAA,EAAS,aAAY,KAAyB;AAChF,EAAA,MAAM,SAAS,wBAAA,CAAgC;AAAA,IAC7C,OAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,MAAM,YAAA,GAAe,OAAO,KAAA,EAA0B,MAAA,KAAyB;AAC7E,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,MAAA,CAAO,GAAA;AAAA,MAC5B,YAAA;AAAA,MACA,EAAE,KAAA,EAAM;AAAA,MACR;AAAA,QACE;AAAA;AACF,KACF;AAEA,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,OAAO,IAAA,EAAkC,MAAA,KAAyB;AACvF,IAAA,MAAM,MAAA,CAAO,MAAA;AAAA,MACX,mBAAA;AAAA,MACA;AAAA,QACE,IAAA,EAAM,EAAE,IAAA;AAAK,OACf;AAAA,MACA,EAAE,MAAA;AAAO,KACX;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,OAAO,IAAA,EAA0B,MAAA,KAAyB;AAC/E,IAAA,IAAI,IAAA,CAAK,KAAA,CAAM,QAAA,CAAS,WAAW,CAAA,IAAK,CAAC,IAAA,CAAK,KAAA,CAAM,UAAA,CAAW,sBAAsB,CAAA,EAAG;AACtF,MAAA,MAAM,IAAI,UAAU,2DAA2D,CAAA;AAAA,IACjF;AACA,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,MAAA,CAAO,IAAA,CAAK,YAAA,EAAc,EAAE,IAAA,EAAK,EAAG,EAAE,MAAA,EAAQ,CAAA;AACrE,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,sBAAA,GAAyB,OAC7B,QAAA,EACA,MAAA,KACG;AACH,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,MAAA,CAAO,GAAA;AAAA,MAC5B,qCAAA;AAAA,MACA;AAAA,QACE,IAAA,EAAM,EAAE,QAAA;AAAS,OACnB;AAAA,MACA,EAAE,MAAA;AAAO,KACX;AACA,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,uBAAA,GAA0B,CAAC,MAAA,KAAyB,sBAAA,CAAuB,QAAQ,MAAM,CAAA;AAE/F,EAAA,OAAO;AAAA,IACL,cAAA;AAAA,IACA,cAAA;AAAA,IACA,uBAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACF;AACF","file":"index.js","sourcesContent":["export const KeboolaHttpHeader = {\n STORAGE_API_TOKEN: 'X-StorageApi-Token',\n MANAGEMENT_API_TOKEN: 'X-Kbc-Manageapitoken',\n STORAGE_API_URL: 'x-storageapi-url',\n};\n\nexport const HttpStatus = {\n NO_CONTENT: 204,\n BAD_REQUEST: 400,\n UNPROCESSABLE_ENTITY: 422,\n INTERNAL_SERVER_ERROR: 500,\n BAD_GATEWAY: 502,\n SERVICE_UNAVAILABLE: 503,\n GATEWAY_TIMEOUT: 504,\n} as const;\n\nexport const ENCRYPTED_VALUE_PREFIX = 'KBC::';\n","export class UserError extends Error {\n constructor(message: string) {\n super(message);\n }\n}\n","import type { ApiResponse } from '../fetchClient/createFetchClient/types';\n\nexport class ApiError extends Error {\n response: Response;\n request: Request;\n data: unknown;\n\n constructor({ response, request, data }: ApiResponse) {\n super(response.statusText);\n this.response = response;\n this.request = request;\n this.data = data;\n }\n}\n","import type { IStringifyOptions } from 'qs';\nimport qs from 'qs';\n\nimport { HttpStatus } from '../../constants';\n\nimport type { BodyParam, CreateFetchRequestFn, PathParam, ValidateStatusFn } from './types';\n\nexport const HttpHeader = {\n CONTENT_TYPE: 'content-type',\n CONTENT_DISPOSITION: 'content-disposition',\n};\n\nexport const HttpContentType = {\n JSON: 'application/json',\n TEXT_PLAIN: 'text/plain',\n FORM_DATA: 'multipart/form-data',\n TEXT_HTML: 'text/html',\n};\n\nexport const defaultValidateStatus: ValidateStatusFn = ({ response }) =>\n response.status >= 200 && response.status <= 299;\n\nfunction removeUndefined(obj: Record<string, string>) {\n const objCopy = { ...obj };\n for (const [key, value] of Object.entries(objCopy)) {\n if (value == null) delete objCopy[key];\n }\n return objCopy;\n}\n\nexport const parseData = async (response: Response) => {\n if (response.status === HttpStatus.NO_CONTENT) return null;\n\n // headers indicates that the content is JSON, so parse it.\n const contentType = response.headers.get(HttpHeader.CONTENT_TYPE);\n if (contentType && contentType == HttpContentType.JSON) {\n return response.json();\n }\n\n // try JSON parsing on the text\n // If it fails, return the string. The headers does not have a content type.\n const text = await response.text();\n try {\n return JSON.parse(text);\n } catch {\n return text;\n }\n};\n\n// Header instance serialize undefined value as `undefined`, we do not want that\nconst cleanHeadersInit = (headersInit: HeadersInit | undefined) => {\n if (Array.isArray(headersInit)) return headersInit;\n if (headersInit instanceof Headers) return headersInit;\n if (headersInit == null) return headersInit;\n\n return removeUndefined(headersInit);\n};\n\nconst createHeaders = (\n headersInitA: HeadersInit | undefined,\n headersInitB: HeadersInit | undefined,\n) => {\n const headersA = new Headers(cleanHeadersInit(headersInitA));\n const headersB = new Headers(cleanHeadersInit(headersInitB));\n\n headersB.forEach((value, key) => {\n headersA.set(key, value);\n });\n\n return headersA;\n};\n\nexport const createPath = (path: string, pathParam: PathParam = {}) =>\n path.replace(/\\{([^}]+)}/g, (_, key) => {\n if (!(key in pathParam))\n throw new Error(`Path parameter \"${key}\" is missing in the path \"${path}\"`);\n\n return encodeURIComponent(pathParam[key]!);\n });\n\nexport const createSearch = (\n query: Record<string, unknown>,\n options: Pick<IStringifyOptions, 'arrayFormat'> = {},\n) => {\n return qs.stringify(query, {\n encodeValuesOnly: true,\n skipNulls: true,\n ...options,\n });\n};\n\nexport const createBody = (body: BodyParam, headers: Headers) => {\n if (body == null) return null;\n if (body instanceof FormData) return body; // fetch automatically sets content-type header\n if (typeof body === 'string') return body; // fetch automatically sets content-type header\n\n const stringifyBody = JSON.stringify(body);\n const stringBody = stringifyBody === '{}' ? null : stringifyBody;\n if (stringBody) headers.set(HttpHeader.CONTENT_TYPE, HttpContentType.JSON);\n\n return stringBody;\n};\n\nexport const parseContentDispositionHeader = (contentDisposition?: string | null) => {\n // extract the type ('inline' or 'attachment'), default the type to 'unknown'\n const type = (() => {\n const typeMatch = contentDisposition?.match(/^\\s*(inline|attachment)\\s*;/i);\n return (typeMatch?.[1]?.toLowerCase() ?? 'unknown') as 'inline' | 'attachment' | 'unknown';\n })();\n\n // extract the filename, default the type to null\n const filename = (() => {\n const filenameMatch = contentDisposition?.match(/filename=\"([^\"]+)\"/i);\n if (filenameMatch) return filenameMatch[1];\n\n // If no filename=\"...\", check for encoded filename*=UTF-8''\n const encodedFilenameMatch = contentDisposition?.match(/filename\\*=(?:UTF-8'')?([^;]+)/i);\n if (encodedFilenameMatch?.[1]) return decodeURIComponent(encodedFilenameMatch[1]);\n\n // Check for unquoted filenames (rare but possible)\n const unquotedFilenameMatch = contentDisposition?.match(/filename=([^;]+)/i);\n return unquotedFilenameMatch?.[1] ?? null;\n })();\n\n // Return the parsed result\n return { type, filename };\n};\n\nexport const createFetchRequest: CreateFetchRequestFn = ({\n url,\n method,\n params,\n options = {},\n defaultOptions,\n}) => {\n const {\n baseUrl,\n validateStatus: defValidateStatus = defaultValidateStatus,\n headers: defaultHeaders,\n ...restDefaultOptions\n } = defaultOptions;\n const { validateStatus, queryArrayFormat, headers: endpointHeaders, ...restOptions } = options;\n\n const headers = createHeaders(defaultHeaders, endpointHeaders);\n const path = createPath(url, params.path);\n const search = createSearch(params.query ?? {}, { arrayFormat: queryArrayFormat });\n const body = createBody(params.body, headers);\n\n const urlInstance = new URL(baseUrl + path);\n urlInstance.search = search;\n\n const request = new Request(urlInstance, {\n ...restDefaultOptions,\n ...restOptions,\n headers,\n method: method.toUpperCase(),\n body,\n });\n\n return { request, validateStatus: validateStatus ?? defValidateStatus };\n};\n","import { ApiError } from '../../errors';\n\nimport type {\n BaseFetchParams,\n CoreFetchFn,\n CreateFetchClientOptions,\n FetchClientOptions,\n FetchFn,\n HttpMethod,\n} from './types';\nimport { createFetchRequest, parseData } from './utils';\n\nexport type FetchClientError = TypeError | ApiError | SyntaxError | DOMException;\n\nexport const isApiError = (error: unknown): error is ApiError => error instanceof ApiError;\n\nexport const isAbortError = (error: unknown): error is DOMException =>\n error instanceof DOMException && error.name === 'AbortError';\n\nexport const isFetchClientError = (error: unknown): error is FetchClientError =>\n error instanceof TypeError || error instanceof SyntaxError || isApiError(error);\n\nconst createCoreFetch =\n (fetchFn: FetchFn): CoreFetchFn =>\n async ({ request, validateStatus }) => {\n const response = await fetchFn(request);\n const data = await parseData(response);\n\n const apiResponse = {\n request,\n response,\n data,\n };\n\n const boolOrError = validateStatus(apiResponse);\n if (isApiError(boolOrError)) throw boolOrError;\n if (!boolOrError) throw new ApiError(apiResponse);\n\n return apiResponse;\n };\n\nexport const createFetchClient = ({\n middlewares = [],\n ...defaultOptions\n}: CreateFetchClientOptions) => {\n const coreFetch = createCoreFetch(defaultOptions.fetchFn ?? fetch);\n const fetchWithMiddlewares = middlewares.reduceRight(\n (next, middleware) => middleware(next),\n coreFetch,\n );\n\n const createFetchMethod =\n (method: HttpMethod) =>\n async (url: string, params: BaseFetchParams, options: FetchClientOptions = {}) => {\n const request = createFetchRequest({\n url,\n method,\n params,\n defaultOptions,\n options,\n });\n\n const methodMiddlewares = options?.middlewares ?? [];\n\n return methodMiddlewares.reduceRight(\n (next, middleware) => middleware(next),\n fetchWithMiddlewares,\n )(request);\n };\n\n return {\n get: createFetchMethod('get'),\n post: createFetchMethod('post'),\n put: createFetchMethod('put'),\n patch: createFetchMethod('patch'),\n delete: createFetchMethod('delete'),\n };\n};\n","import {\n type ApiResponse,\n createFetchClient,\n type CreateFetchClientOptions,\n type FetchClientOptions,\n type HttpMethod,\n} from './createFetchClient';\nimport type { OpenapiParametersType, OpenapiReturnType } from './types';\n\ntype OpenapiPaths<Paths> = {\n [P in keyof Paths]: {\n [M in HttpMethod]?: unknown;\n };\n};\n\ntype PathsWithMethod<Paths extends OpenapiPaths<Paths>, PathnameMethod extends HttpMethod> = {\n [Pathname in keyof Paths]: Paths[Pathname] extends {\n [K in PathnameMethod]: any;\n }\n ? Pathname\n : never;\n}[keyof Paths];\n\ntype FetchMethod<Paths extends OpenapiPaths<Paths>, Method extends HttpMethod> = <\n Path extends PathsWithMethod<Paths, Method>,\n>(\n url: Path,\n params: OpenapiParametersType<Paths[Path][Method]>,\n options?: FetchClientOptions,\n) => Promise<ApiResponse<OpenapiReturnType<Paths[Path][Method]>>>;\n\ntype FetchClient<Paths extends OpenapiPaths<Paths>> = {\n get: FetchMethod<Paths, 'get'>;\n post: FetchMethod<Paths, 'post'>;\n put: FetchMethod<Paths, 'put'>;\n patch: FetchMethod<Paths, 'patch'>;\n delete: FetchMethod<Paths, 'delete'>;\n};\n\nexport const createOpenapiFetchClient = <Paths extends OpenapiPaths<Paths>>(\n defaultOptions: CreateFetchClientOptions,\n) => createFetchClient(defaultOptions) as FetchClient<Paths>;\n","import { ENCRYPTED_VALUE_PREFIX } from '../../constants';\nimport { UserError } from '../../errors';\nimport { createOpenapiFetchClient } from '../../fetchClient';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n CreateVariableBody,\n DeleteVariablePath,\n GetVariablesByBranchId,\n GetVariablesQuery,\n VariableWithHash,\n} from './types';\n\nexport const createVaultClient = ({ baseUrl, middlewares }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n });\n\n const getVariables = async (query: GetVariablesQuery, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/variables',\n { query },\n {\n signal,\n },\n );\n\n return data as VariableWithHash[];\n };\n\n const deleteVariable = async (hash: DeleteVariablePath['hash'], signal?: AbortSignal) => {\n await client.delete(\n '/variables/{hash}',\n {\n path: { hash },\n },\n { signal },\n );\n };\n\n const createVariable = async (body: CreateVariableBody, signal?: AbortSignal) => {\n if (body.flags.includes('encrypted') && !body.value.startsWith(ENCRYPTED_VALUE_PREFIX)) {\n throw new UserError('Encryption of a value failed. Please contact our support.');\n }\n const { data } = await client.post('/variables', { body }, { signal });\n return data;\n };\n\n const getVariablesByBranchId = async (\n branchId: GetVariablesByBranchId['branchId'],\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/variables/scoped/branch/{branchId}',\n {\n path: { branchId },\n },\n { signal },\n );\n return data as VariableWithHash[];\n };\n\n const getProjectWideVariables = (signal?: AbortSignal) => getVariablesByBranchId('null', signal);\n\n return {\n createVariable,\n deleteVariable,\n getProjectWideVariables,\n getVariables,\n getVariablesByBranchId,\n };\n};\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -1,192 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var qs = require('qs');
3
+ var chunk76AHKXLC_cjs = require('../chunk-76AHKXLC.cjs');
4
+ require('../chunk-HPVTVQBJ.cjs');
4
5
 
5
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
6
6
 
7
- var qs__default = /*#__PURE__*/_interopDefault(qs);
8
7
 
9
- // src/constants.ts
10
- var KeboolaHttpHeader = {
11
- STORAGE_API_TOKEN: "X-StorageApi-Token",
12
- MANAGEMENT_API_TOKEN: "X-Kbc-Manageapitoken"};
13
- var HttpStatus = {
14
- NO_CONTENT: 204};
15
-
16
- // src/errors/ApiError.ts
17
- var ApiError = class extends Error {
18
- response;
19
- request;
20
- data;
21
- constructor({ response, request, data }) {
22
- super(response.statusText);
23
- this.response = response;
24
- this.request = request;
25
- this.data = data;
26
- }
27
- };
28
- var HttpHeader = {
29
- CONTENT_TYPE: "content-type"};
30
- var HttpContentType = {
31
- JSON: "application/json"};
32
- var defaultValidateStatus = ({ response }) => response.status >= 200 && response.status <= 299;
33
- function removeUndefined(obj) {
34
- const objCopy = { ...obj };
35
- for (const [key, value] of Object.entries(objCopy)) {
36
- if (value == null) delete objCopy[key];
37
- }
38
- return objCopy;
39
- }
40
- var parseData = async (response) => {
41
- if (response.status === HttpStatus.NO_CONTENT) return null;
42
- const contentType = response.headers.get(HttpHeader.CONTENT_TYPE);
43
- if (contentType && contentType == HttpContentType.JSON) {
44
- return response.json();
45
- }
46
- const text = await response.text();
47
- try {
48
- return JSON.parse(text);
49
- } catch {
50
- return text;
51
- }
52
- };
53
- var cleanHeadersInit = (headersInit) => {
54
- if (Array.isArray(headersInit)) return headersInit;
55
- if (headersInit instanceof Headers) return headersInit;
56
- if (headersInit == null) return headersInit;
57
- return removeUndefined(headersInit);
58
- };
59
- var createHeaders = (headersInitA, headersInitB) => {
60
- const headersA = new Headers(cleanHeadersInit(headersInitA));
61
- const headersB = new Headers(cleanHeadersInit(headersInitB));
62
- headersB.forEach((value, key) => {
63
- headersA.set(key, value);
64
- });
65
- return headersA;
66
- };
67
- var createPath = (path, pathParam = {}) => path.replace(/\{([^}]+)}/g, (_, key) => {
68
- if (!(key in pathParam))
69
- throw new Error(`Path parameter "${key}" is missing in the path "${path}"`);
70
- return encodeURIComponent(pathParam[key]);
8
+ Object.defineProperty(exports, "createVerifyClient", {
9
+ enumerable: true,
10
+ get: function () { return chunk76AHKXLC_cjs.createVerifyClient; }
71
11
  });
72
- var createSearch = (query, options = {}) => {
73
- return qs__default.default.stringify(query, {
74
- encodeValuesOnly: true,
75
- skipNulls: true,
76
- ...options
77
- });
78
- };
79
- var createBody = (body, headers) => {
80
- if (body == null) return null;
81
- if (body instanceof FormData) return body;
82
- if (typeof body === "string") return body;
83
- const stringifyBody = JSON.stringify(body);
84
- const stringBody = stringifyBody === "{}" ? null : stringifyBody;
85
- if (stringBody) headers.set(HttpHeader.CONTENT_TYPE, HttpContentType.JSON);
86
- return stringBody;
87
- };
88
- var createFetchRequest = ({
89
- url,
90
- method,
91
- params,
92
- options = {},
93
- defaultOptions
94
- }) => {
95
- const {
96
- baseUrl,
97
- validateStatus: defValidateStatus = defaultValidateStatus,
98
- headers: defaultHeaders,
99
- ...restDefaultOptions
100
- } = defaultOptions;
101
- const { validateStatus, queryArrayFormat, headers: endpointHeaders, ...restOptions } = options;
102
- const headers = createHeaders(defaultHeaders, endpointHeaders);
103
- const path = createPath(url, params.path);
104
- const search = createSearch(params.query ?? {}, { arrayFormat: queryArrayFormat });
105
- const body = createBody(params.body, headers);
106
- const urlInstance = new URL(baseUrl + path);
107
- urlInstance.search = search;
108
- const request = new Request(urlInstance, {
109
- ...restDefaultOptions,
110
- ...restOptions,
111
- headers,
112
- method: method.toUpperCase(),
113
- body
114
- });
115
- return { request, validateStatus: validateStatus ?? defValidateStatus };
116
- };
117
-
118
- // src/fetchClient/createFetchClient/createFetchClient.ts
119
- var isApiError = (error) => error instanceof ApiError;
120
- var createCoreFetch = (fetchFn) => async ({ request, validateStatus }) => {
121
- const response = await fetchFn(request);
122
- const data = await parseData(response);
123
- const apiResponse = {
124
- request,
125
- response,
126
- data
127
- };
128
- const boolOrError = validateStatus(apiResponse);
129
- if (isApiError(boolOrError)) throw boolOrError;
130
- if (!boolOrError) throw new ApiError(apiResponse);
131
- return apiResponse;
132
- };
133
- var createFetchClient = ({
134
- middlewares = [],
135
- ...defaultOptions
136
- }) => {
137
- const coreFetch = createCoreFetch(defaultOptions.fetchFn ?? fetch);
138
- const fetchWithMiddlewares = middlewares.reduceRight(
139
- (next, middleware) => middleware(next),
140
- coreFetch
141
- );
142
- const createFetchMethod = (method) => async (url, params, options = {}) => {
143
- const request = createFetchRequest({
144
- url,
145
- method,
146
- params,
147
- defaultOptions,
148
- options
149
- });
150
- const methodMiddlewares = options?.middlewares ?? [];
151
- return methodMiddlewares.reduceRight(
152
- (next, middleware) => middleware(next),
153
- fetchWithMiddlewares
154
- )(request);
155
- };
156
- return {
157
- get: createFetchMethod("get"),
158
- post: createFetchMethod("post"),
159
- put: createFetchMethod("put"),
160
- patch: createFetchMethod("patch"),
161
- delete: createFetchMethod("delete")
162
- };
163
- };
164
-
165
- // src/fetchClient/createGenericFetchClient.ts
166
- var createGenericFetchClient = (defaultOptions) => createFetchClient(defaultOptions);
167
-
168
- // src/clients/verify/createVerifyClient.ts
169
- var createVerifyClient = () => {
170
- const storageApiToken = async (host, token, signal) => {
171
- const { data } = await createGenericFetchClient({
172
- baseUrl: `${host}/v2/storage`,
173
- headers: new Headers({ [KeboolaHttpHeader.STORAGE_API_TOKEN]: token })
174
- }).get("/tokens/verify", {}, { signal });
175
- return data;
176
- };
177
- const managementApiToken = async (host, token, signal) => {
178
- const { data } = await createGenericFetchClient({
179
- baseUrl: host,
180
- headers: new Headers({ [KeboolaHttpHeader.MANAGEMENT_API_TOKEN]: token })
181
- }).get("/manage/tokens/verify", {}, { signal });
182
- return data;
183
- };
184
- return {
185
- storageApiToken,
186
- managementApiToken
187
- };
188
- };
189
-
190
- exports.createVerifyClient = createVerifyClient;
191
12
  //# sourceMappingURL=index.cjs.map
192
13
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/constants.ts","../../src/errors/ApiError.ts","../../src/fetchClient/createFetchClient/utils.ts","../../src/fetchClient/createFetchClient/createFetchClient.ts","../../src/fetchClient/createGenericFetchClient.ts","../../src/clients/verify/createVerifyClient.ts"],"names":["qs"],"mappings":"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","file":"index.cjs","sourcesContent":["export const KeboolaHttpHeader = {\n STORAGE_API_TOKEN: 'X-StorageApi-Token',\n MANAGEMENT_API_TOKEN: 'X-Kbc-Manageapitoken',\n STORAGE_API_URL: 'x-storageapi-url',\n};\n\nexport const HttpStatus = {\n NO_CONTENT: 204,\n BAD_REQUEST: 400,\n UNPROCESSABLE_ENTITY: 422,\n INTERNAL_SERVER_ERROR: 500,\n BAD_GATEWAY: 502,\n SERVICE_UNAVAILABLE: 503,\n GATEWAY_TIMEOUT: 504,\n} as const;\n\nexport const ENCRYPTED_VALUE_PREFIX = 'KBC::';\n","import type { ApiResponse } from '../fetchClient/createFetchClient/types';\n\nexport class ApiError extends Error {\n response: Response;\n request: Request;\n data: unknown;\n\n constructor({ response, request, data }: ApiResponse) {\n super(response.statusText);\n this.response = response;\n this.request = request;\n this.data = data;\n }\n}\n","import type { IStringifyOptions } from 'qs';\nimport qs from 'qs';\n\nimport { HttpStatus } from '../../constants';\n\nimport type { BodyParam, CreateFetchRequestFn, PathParam, ValidateStatusFn } from './types';\n\nexport const HttpHeader = {\n CONTENT_TYPE: 'content-type',\n CONTENT_DISPOSITION: 'content-disposition',\n};\n\nexport const HttpContentType = {\n JSON: 'application/json',\n TEXT_PLAIN: 'text/plain',\n FORM_DATA: 'multipart/form-data',\n TEXT_HTML: 'text/html',\n};\n\nexport const defaultValidateStatus: ValidateStatusFn = ({ response }) =>\n response.status >= 200 && response.status <= 299;\n\nfunction removeUndefined(obj: Record<string, string>) {\n const objCopy = { ...obj };\n for (const [key, value] of Object.entries(objCopy)) {\n if (value == null) delete objCopy[key];\n }\n return objCopy;\n}\n\nexport const parseData = async (response: Response) => {\n if (response.status === HttpStatus.NO_CONTENT) return null;\n\n // headers indicates that the content is JSON, so parse it.\n const contentType = response.headers.get(HttpHeader.CONTENT_TYPE);\n if (contentType && contentType == HttpContentType.JSON) {\n return response.json();\n }\n\n // try JSON parsing on the text\n // If it fails, return the string. The headers does not have a content type.\n const text = await response.text();\n try {\n return JSON.parse(text);\n } catch {\n return text;\n }\n};\n\n// Header instance serialize undefined value as `undefined`, we do not want that\nconst cleanHeadersInit = (headersInit: HeadersInit | undefined) => {\n if (Array.isArray(headersInit)) return headersInit;\n if (headersInit instanceof Headers) return headersInit;\n if (headersInit == null) return headersInit;\n\n return removeUndefined(headersInit);\n};\n\nconst createHeaders = (\n headersInitA: HeadersInit | undefined,\n headersInitB: HeadersInit | undefined,\n) => {\n const headersA = new Headers(cleanHeadersInit(headersInitA));\n const headersB = new Headers(cleanHeadersInit(headersInitB));\n\n headersB.forEach((value, key) => {\n headersA.set(key, value);\n });\n\n return headersA;\n};\n\nexport const createPath = (path: string, pathParam: PathParam = {}) =>\n path.replace(/\\{([^}]+)}/g, (_, key) => {\n if (!(key in pathParam))\n throw new Error(`Path parameter \"${key}\" is missing in the path \"${path}\"`);\n\n return encodeURIComponent(pathParam[key]!);\n });\n\nexport const createSearch = (\n query: Record<string, unknown>,\n options: Pick<IStringifyOptions, 'arrayFormat'> = {},\n) => {\n return qs.stringify(query, {\n encodeValuesOnly: true,\n skipNulls: true,\n ...options,\n });\n};\n\nexport const createBody = (body: BodyParam, headers: Headers) => {\n if (body == null) return null;\n if (body instanceof FormData) return body; // fetch automatically sets content-type header\n if (typeof body === 'string') return body; // fetch automatically sets content-type header\n\n const stringifyBody = JSON.stringify(body);\n const stringBody = stringifyBody === '{}' ? null : stringifyBody;\n if (stringBody) headers.set(HttpHeader.CONTENT_TYPE, HttpContentType.JSON);\n\n return stringBody;\n};\n\nexport const parseContentDispositionHeader = (contentDisposition?: string | null) => {\n // extract the type ('inline' or 'attachment'), default the type to 'unknown'\n const type = (() => {\n const typeMatch = contentDisposition?.match(/^\\s*(inline|attachment)\\s*;/i);\n return (typeMatch?.[1]?.toLowerCase() ?? 'unknown') as 'inline' | 'attachment' | 'unknown';\n })();\n\n // extract the filename, default the type to null\n const filename = (() => {\n const filenameMatch = contentDisposition?.match(/filename=\"([^\"]+)\"/i);\n if (filenameMatch) return filenameMatch[1];\n\n // If no filename=\"...\", check for encoded filename*=UTF-8''\n const encodedFilenameMatch = contentDisposition?.match(/filename\\*=(?:UTF-8'')?([^;]+)/i);\n if (encodedFilenameMatch?.[1]) return decodeURIComponent(encodedFilenameMatch[1]);\n\n // Check for unquoted filenames (rare but possible)\n const unquotedFilenameMatch = contentDisposition?.match(/filename=([^;]+)/i);\n return unquotedFilenameMatch?.[1] ?? null;\n })();\n\n // Return the parsed result\n return { type, filename };\n};\n\nexport const createFetchRequest: CreateFetchRequestFn = ({\n url,\n method,\n params,\n options = {},\n defaultOptions,\n}) => {\n const {\n baseUrl,\n validateStatus: defValidateStatus = defaultValidateStatus,\n headers: defaultHeaders,\n ...restDefaultOptions\n } = defaultOptions;\n const { validateStatus, queryArrayFormat, headers: endpointHeaders, ...restOptions } = options;\n\n const headers = createHeaders(defaultHeaders, endpointHeaders);\n const path = createPath(url, params.path);\n const search = createSearch(params.query ?? {}, { arrayFormat: queryArrayFormat });\n const body = createBody(params.body, headers);\n\n const urlInstance = new URL(baseUrl + path);\n urlInstance.search = search;\n\n const request = new Request(urlInstance, {\n ...restDefaultOptions,\n ...restOptions,\n headers,\n method: method.toUpperCase(),\n body,\n });\n\n return { request, validateStatus: validateStatus ?? defValidateStatus };\n};\n","import { ApiError } from '../../errors';\n\nimport type {\n BaseFetchParams,\n CoreFetchFn,\n CreateFetchClientOptions,\n FetchClientOptions,\n FetchFn,\n HttpMethod,\n} from './types';\nimport { createFetchRequest, parseData } from './utils';\n\nexport type FetchClientError = TypeError | ApiError | SyntaxError | DOMException;\n\nexport const isApiError = (error: unknown): error is ApiError => error instanceof ApiError;\n\nexport const isAbortError = (error: unknown): error is DOMException =>\n error instanceof DOMException && error.name === 'AbortError';\n\nexport const isFetchClientError = (error: unknown): error is FetchClientError =>\n error instanceof TypeError || error instanceof SyntaxError || isApiError(error);\n\nconst createCoreFetch =\n (fetchFn: FetchFn): CoreFetchFn =>\n async ({ request, validateStatus }) => {\n const response = await fetchFn(request);\n const data = await parseData(response);\n\n const apiResponse = {\n request,\n response,\n data,\n };\n\n const boolOrError = validateStatus(apiResponse);\n if (isApiError(boolOrError)) throw boolOrError;\n if (!boolOrError) throw new ApiError(apiResponse);\n\n return apiResponse;\n };\n\nexport const createFetchClient = ({\n middlewares = [],\n ...defaultOptions\n}: CreateFetchClientOptions) => {\n const coreFetch = createCoreFetch(defaultOptions.fetchFn ?? fetch);\n const fetchWithMiddlewares = middlewares.reduceRight(\n (next, middleware) => middleware(next),\n coreFetch,\n );\n\n const createFetchMethod =\n (method: HttpMethod) =>\n async (url: string, params: BaseFetchParams, options: FetchClientOptions = {}) => {\n const request = createFetchRequest({\n url,\n method,\n params,\n defaultOptions,\n options,\n });\n\n const methodMiddlewares = options?.middlewares ?? [];\n\n return methodMiddlewares.reduceRight(\n (next, middleware) => middleware(next),\n fetchWithMiddlewares,\n )(request);\n };\n\n return {\n get: createFetchMethod('get'),\n post: createFetchMethod('post'),\n put: createFetchMethod('put'),\n patch: createFetchMethod('patch'),\n delete: createFetchMethod('delete'),\n };\n};\n","import type {\n ApiResponse,\n BodyParam,\n CreateFetchClientOptions,\n FetchClientOptions,\n PathParam,\n QueryParam,\n} from './createFetchClient';\nimport { createFetchClient } from './createFetchClient';\n\ntype FetchParams<Path = PathParam, Query = QueryParam, Body = BodyParam> = {\n path?: Path;\n query?: Query;\n body?: Body;\n};\n\ntype FetchMethod = <Data, Path = PathParam, Query = QueryParam, Body = BodyParam>(\n url: string,\n params: FetchParams<Path, Query, Body>,\n options?: FetchClientOptions,\n) => Promise<ApiResponse<Data>>;\n\ntype FetchClient = {\n get: FetchMethod;\n post: FetchMethod;\n put: FetchMethod;\n patch: FetchMethod;\n delete: FetchMethod;\n};\n\nexport const createGenericFetchClient = (defaultOptions: CreateFetchClientOptions) =>\n createFetchClient(defaultOptions) as FetchClient;\n","import { KeboolaHttpHeader } from '../../constants';\nimport { createGenericFetchClient } from '../../fetchClient';\nimport type { StorageToken } from '../storage/tokens/types';\n\nimport type { ManagementToken } from './types';\n\nexport const createVerifyClient = () => {\n const storageApiToken = async (host: string, token: string, signal?: AbortSignal) => {\n const { data } = await createGenericFetchClient({\n baseUrl: `${host}/v2/storage`,\n headers: new Headers({ [KeboolaHttpHeader.STORAGE_API_TOKEN]: token }),\n }).get<StorageToken, void, void, void>('/tokens/verify', {}, { signal });\n\n return data;\n };\n\n const managementApiToken = async (host: string, token: string, signal?: AbortSignal) => {\n const { data } = await createGenericFetchClient({\n baseUrl: host,\n headers: new Headers({ [KeboolaHttpHeader.MANAGEMENT_API_TOKEN]: token }),\n }).get<ManagementToken, void, void, void>('/manage/tokens/verify', {}, { signal });\n\n return data;\n };\n\n return {\n storageApiToken,\n managementApiToken,\n };\n};\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs"}