@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
@@ -0,0 +1,71 @@
1
+ import { createGenericFetchClient, normalizeBaseUrl, isApiError, HttpStatus } from './chunk-PD3LJYS2.js';
2
+
3
+ // src/clients/oauth/oauthClient.ts
4
+ var createOauthClient = ({ baseUrl, middlewares }) => {
5
+ const client = createGenericFetchClient({ baseUrl: normalizeBaseUrl(baseUrl), middlewares });
6
+ const getCredentials = async (query, signal) => {
7
+ const { data } = await client.get(
8
+ "/credentials",
9
+ { query },
10
+ { signal }
11
+ );
12
+ return data;
13
+ };
14
+ const getCredential = async (componentId, id, signal) => {
15
+ const { data } = await client.get(
16
+ "/credentials/{componentId}/{id}",
17
+ { path: { componentId, id } },
18
+ { signal }
19
+ );
20
+ return data;
21
+ };
22
+ const _createCredentials = async (componentId, body, signal) => {
23
+ const { data } = await client.post(
24
+ "/credentials/{componentId}",
25
+ { path: { componentId }, body },
26
+ { signal }
27
+ );
28
+ return data;
29
+ };
30
+ const _createLegacyCredentials = async (componentId, { data: credentialsData, ...rest }, signal) => {
31
+ const { data } = await client.post(
32
+ "/credentials/{componentId}",
33
+ {
34
+ path: { componentId },
35
+ body: {
36
+ ...rest,
37
+ "#data": JSON.stringify(credentialsData)
38
+ }
39
+ },
40
+ { signal }
41
+ );
42
+ return data;
43
+ };
44
+ const createCredential = async (componentId, body, signal) => {
45
+ try {
46
+ return await _createCredentials(componentId, body, signal);
47
+ } catch (error) {
48
+ if (isApiError(error) && error.response.status === HttpStatus.UNPROCESSABLE_ENTITY) {
49
+ return _createLegacyCredentials(componentId, body, signal);
50
+ }
51
+ throw error;
52
+ }
53
+ };
54
+ const deleteCredential = async (componentId, id, signal) => {
55
+ await client.delete(
56
+ "/credentials/{componentId}/{id}",
57
+ { path: { componentId, id } },
58
+ { signal }
59
+ );
60
+ };
61
+ return {
62
+ getCredentials,
63
+ getCredential,
64
+ createCredential,
65
+ deleteCredential
66
+ };
67
+ };
68
+
69
+ export { createOauthClient };
70
+ //# sourceMappingURL=chunk-7FY6COWG.js.map
71
+ //# sourceMappingURL=chunk-7FY6COWG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/clients/oauth/oauthClient.ts"],"names":[],"mappings":";;;AAcO,IAAM,iBAAA,GAAoB,CAAC,EAAE,OAAA,EAAS,aAAY,KAAyB;AAChF,EAAA,MAAM,MAAA,GAAS,yBAAyB,EAAE,OAAA,EAAS,iBAAiB,OAAO,CAAA,EAAG,aAAa,CAAA;AAE3F,EAAA,MAAM,cAAA,GAAiB,OAAO,KAAA,EAA6B,MAAA,KAAyB;AAClF,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,MAAA,CAAO,GAAA;AAAA,MAC5B,cAAA;AAAA,MACA,EAAE,KAAA,EAAM;AAAA,MACR,EAAE,MAAA;AAAO,KACX;AACA,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,aAAA,GAAgB,OAAO,WAAA,EAAqB,EAAA,EAAY,MAAA,KAAyB;AACrF,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,MAAA,CAAO,GAAA;AAAA,MAC5B,iCAAA;AAAA,MACA,EAAE,IAAA,EAAM,EAAE,WAAA,EAAa,IAAG,EAAE;AAAA,MAC5B,EAAE,MAAA;AAAO,KACX;AACA,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,kBAAA,GAAqB,OACzB,WAAA,EACA,IAAA,EACA,MAAA,KACwB;AACxB,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,MAAA,CAAO,IAAA;AAAA,MAC5B,4BAAA;AAAA,MACA,EAAE,IAAA,EAAM,EAAE,WAAA,IAAe,IAAA,EAAK;AAAA,MAC9B,EAAE,MAAA;AAAO,KACX;AACA,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAIA,EAAA,MAAM,wBAAA,GAA2B,OAC/B,WAAA,EACA,EAAE,MAAM,eAAA,EAAiB,GAAG,IAAA,EAAK,EACjC,MAAA,KACwB;AACxB,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,MAAA,CAAO,IAAA;AAAA,MAC5B,4BAAA;AAAA,MACA;AAAA,QACE,IAAA,EAAM,EAAE,WAAA,EAAY;AAAA,QACpB,IAAA,EAAM;AAAA,UACJ,GAAG,IAAA;AAAA,UACH,OAAA,EAAS,IAAA,CAAK,SAAA,CAAU,eAAe;AAAA;AACzC,OACF;AAAA,MACA,EAAE,MAAA;AAAO,KACX;AAEA,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,gBAAA,GAAmB,OACvB,WAAA,EACA,IAAA,EACA,MAAA,KACwB;AACxB,IAAA,IAAI;AACF,MAAA,OAAO,MAAM,kBAAA,CAAmB,WAAA,EAAa,IAAA,EAAM,MAAM,CAAA;AAAA,IAC3D,SAAS,KAAA,EAAO;AACd,MAAA,IAAI,WAAW,KAAK,CAAA,IAAK,MAAM,QAAA,CAAS,MAAA,KAAW,WAAW,oBAAA,EAAsB;AAClF,QAAA,OAAO,wBAAA,CAAyB,WAAA,EAAa,IAAA,EAAM,MAAM,CAAA;AAAA,MAC3D;AACA,MAAA,MAAM,KAAA;AAAA,IACR;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,gBAAA,GAAmB,OACvB,WAAA,EACA,EAAA,EACA,MAAA,KACkB;AAClB,IAAA,MAAM,MAAA,CAAO,MAAA;AAAA,MACX,iCAAA;AAAA,MACA,EAAE,IAAA,EAAM,EAAE,WAAA,EAAa,IAAG,EAAE;AAAA,MAC5B,EAAE,MAAA;AAAO,KACX;AAAA,EACF,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,cAAA;AAAA,IACA,aAAA;AAAA,IACA,gBAAA;AAAA,IACA;AAAA,GACF;AACF","file":"chunk-7FY6COWG.js","sourcesContent":["import { HttpStatus } from '../../constants';\nimport { createGenericFetchClient, isApiError } from '../../fetchClient';\nimport { normalizeBaseUrl } from '../../utils/normalizeBaseUrl';\nimport type { ClientInitOptions } from '../types';\n\nimport type {\n ComponentPath,\n CreateCredentialBody,\n Credential,\n CredentialPath,\n GetCredentialsQuery,\n LegacyCreateBody,\n} from './types';\n\nexport const createOauthClient = ({ baseUrl, middlewares }: ClientInitOptions) => {\n const client = createGenericFetchClient({ baseUrl: normalizeBaseUrl(baseUrl), middlewares });\n\n const getCredentials = async (query?: GetCredentialsQuery, signal?: AbortSignal) => {\n const { data } = await client.get<Credential[], void, GetCredentialsQuery>(\n '/credentials',\n { query },\n { signal },\n );\n return data;\n };\n\n const getCredential = async (componentId: string, id: string, signal?: AbortSignal) => {\n const { data } = await client.get<Credential, CredentialPath>(\n '/credentials/{componentId}/{id}',\n { path: { componentId, id } },\n { signal },\n );\n return data;\n };\n\n const _createCredentials = async (\n componentId: string,\n body: CreateCredentialBody,\n signal?: AbortSignal,\n ): Promise<Credential> => {\n const { data } = await client.post<Credential, ComponentPath, void, CreateCredentialBody>(\n '/credentials/{componentId}',\n { path: { componentId }, body },\n { signal },\n );\n return data;\n };\n\n // Legacy OAuth service rejects `data` and requires `#data` as a JSON string.\n // Retry with the legacy shape on 422; modern stacks accept the first call.\n const _createLegacyCredentials = async (\n componentId: string,\n { data: credentialsData, ...rest }: CreateCredentialBody,\n signal?: AbortSignal,\n ): Promise<Credential> => {\n const { data } = await client.post<Credential, ComponentPath, void, LegacyCreateBody>(\n '/credentials/{componentId}',\n {\n path: { componentId },\n body: {\n ...rest,\n '#data': JSON.stringify(credentialsData),\n },\n },\n { signal },\n );\n\n return data;\n };\n\n const createCredential = async (\n componentId: string,\n body: CreateCredentialBody,\n signal?: AbortSignal,\n ): Promise<Credential> => {\n try {\n return await _createCredentials(componentId, body, signal);\n } catch (error) {\n if (isApiError(error) && error.response.status === HttpStatus.UNPROCESSABLE_ENTITY) {\n return _createLegacyCredentials(componentId, body, signal);\n }\n throw error;\n }\n };\n\n const deleteCredential = async (\n componentId: string,\n id: string,\n signal?: AbortSignal,\n ): Promise<void> => {\n await client.delete<void, CredentialPath>(\n '/credentials/{componentId}/{id}',\n { path: { componentId, id } },\n { signal },\n );\n };\n\n return {\n getCredentials,\n getCredential,\n createCredential,\n deleteCredential,\n };\n};\n"]}
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=chunk-7J2R6XHB.js.map
3
+ //# sourceMappingURL=chunk-7J2R6XHB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-7J2R6XHB.js"}
@@ -0,0 +1,33 @@
1
+ 'use strict';
2
+
3
+ var chunkHPVTVQBJ_cjs = require('./chunk-HPVTVQBJ.cjs');
4
+
5
+ // src/clients/telemetry/provisioning/provisioning.ts
6
+ var createProvisioning = (client) => {
7
+ const createCredentials = async (body, signal) => {
8
+ const { data } = await client.post(
9
+ "/provisioning/workspace",
10
+ { body },
11
+ { signal }
12
+ );
13
+ return data;
14
+ };
15
+ return {
16
+ createCredentials
17
+ };
18
+ };
19
+
20
+ // src/clients/telemetry/telemetryClient.ts
21
+ var createTelemetryClient = ({ baseUrl, middlewares }) => {
22
+ const client = chunkHPVTVQBJ_cjs.createGenericFetchClient({
23
+ baseUrl: chunkHPVTVQBJ_cjs.normalizeBaseUrl(baseUrl),
24
+ middlewares
25
+ });
26
+ return {
27
+ provisioning: createProvisioning(client)
28
+ };
29
+ };
30
+
31
+ exports.createTelemetryClient = createTelemetryClient;
32
+ //# sourceMappingURL=chunk-BGLICNTG.cjs.map
33
+ //# sourceMappingURL=chunk-BGLICNTG.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/clients/telemetry/provisioning/provisioning.ts","../src/clients/telemetry/telemetryClient.ts"],"names":["createGenericFetchClient","normalizeBaseUrl"],"mappings":";;;;;AAIO,IAAM,kBAAA,GAAqB,CAAC,MAAA,KAA+B;AAChE,EAAA,MAAM,iBAAA,GAAoB,OAAO,IAAA,EAA6B,MAAA,KAAyB;AACrF,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,MAAA,CAAO,IAAA;AAAA,MAC5B,yBAAA;AAAA,MACA,EAAE,IAAA,EAAK;AAAA,MACP,EAAE,MAAA;AAAO,KACX;AAEA,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,OAAO;AAAA,IACL;AAAA,GACF;AACF,CAAA;;;ACVO,IAAM,qBAAA,GAAwB,CAAC,EAAE,OAAA,EAAS,aAAY,KAAyB;AACpF,EAAA,MAAM,SAASA,0CAAA,CAAyB;AAAA,IACtC,OAAA,EAASC,mCAAiB,OAAO,CAAA;AAAA,IACjC;AAAA,GACD,CAAA;AAED,EAAA,OAAO;AAAA,IACL,YAAA,EAAc,mBAAmB,MAAM;AAAA,GACzC;AACF","file":"chunk-BGLICNTG.cjs","sourcesContent":["import type { GenericFetchClient } from '../telemetryClient';\n\nimport type { CreateCredentialsBody, WorkspaceData } from './types';\n\nexport const createProvisioning = (client: GenericFetchClient) => {\n const createCredentials = async (body: CreateCredentialsBody, signal?: AbortSignal) => {\n const { data } = await client.post<WorkspaceData, void, void, CreateCredentialsBody>(\n '/provisioning/workspace',\n { body },\n { signal },\n );\n\n return data;\n };\n\n return {\n createCredentials,\n };\n};\n","import { createGenericFetchClient } from '../../fetchClient';\nimport { normalizeBaseUrl } from '../../utils/normalizeBaseUrl';\nimport type { ClientInitOptions } from '../types';\n\nimport { createProvisioning } from './provisioning/provisioning';\n\nexport type GenericFetchClient = ReturnType<typeof createGenericFetchClient>;\n\nexport const createTelemetryClient = ({ baseUrl, middlewares }: ClientInitOptions) => {\n const client = createGenericFetchClient({\n baseUrl: normalizeBaseUrl(baseUrl),\n middlewares,\n });\n\n return {\n provisioning: createProvisioning(client),\n };\n};\n"]}
@@ -0,0 +1,182 @@
1
+ 'use strict';
2
+
3
+ var chunkCVV4HROS_cjs = require('./chunk-CVV4HROS.cjs');
4
+
5
+ // src/utils/keboolaUID.ts
6
+ var KEBOOLA_OBJECT_ID_DELIMITER = "--";
7
+ var keboolaUID = {
8
+ serialize: (input) => {
9
+ if (input.uid === "")
10
+ throw new Error("Invalid Keboola Object ID: uid of an object cannot be empty");
11
+ return ["KID", input.projectId, input.type, input.uid].join(KEBOOLA_OBJECT_ID_DELIMITER);
12
+ },
13
+ deserialize: (input) => {
14
+ const [identifier, projectId, type, uid] = input.split(KEBOOLA_OBJECT_ID_DELIMITER);
15
+ if (identifier !== "KID" || !projectId || !type || !uid)
16
+ throw new Error("Invalid Keboola Object ID");
17
+ return {
18
+ projectId: Number(projectId),
19
+ type,
20
+ uid
21
+ };
22
+ }
23
+ };
24
+
25
+ // src/utils/generateUUID.ts
26
+ var generateUUID = () => crypto.randomUUID();
27
+
28
+ // src/sdks/tag/tagSdk.ts
29
+ var ObjectType = {
30
+ TAG: "tag",
31
+ TAG_BINDING: "tag-binding"
32
+ };
33
+ var createTagSdk = ({ metastoreClient }) => {
34
+ const _getTagMetaObjects = async (type, signal) => {
35
+ const response = await metastoreClient.repository.getMetaObjects(
36
+ {
37
+ objectType: type
38
+ },
39
+ signal
40
+ );
41
+ return response.data.map(({ attributes }) => attributes);
42
+ };
43
+ const _getAllTagBindingMapByTagId = async (signal) => {
44
+ const tagBindings = await _getTagMetaObjects(ObjectType.TAG_BINDING, signal);
45
+ return Object.groupBy(tagBindings, (binding) => binding.data.tagUUID);
46
+ };
47
+ const _getTagBindingMapByTagId = async (tagUUIDs, objectId, signal) => {
48
+ const tagBindingMapByTagId = await _getAllTagBindingMapByTagId(signal);
49
+ const objectUID = keboolaUID.serialize(objectId);
50
+ return tagUUIDs.reduce((acc, tagUUID) => {
51
+ if (acc[tagUUID]) return acc;
52
+ const tagBindings = tagBindingMapByTagId[tagUUID] ?? [];
53
+ acc[tagUUID] = tagBindings.find((binding) => binding.data.objectUID === objectUID) ?? null;
54
+ return acc;
55
+ }, {});
56
+ };
57
+ const _deleteTagBindings = async (tagBindings) => {
58
+ await chunkCVV4HROS_cjs.concurrent({
59
+ items: tagBindings,
60
+ process: async (binding) => metastoreClient.repository.deleteMetaObject({
61
+ objectType: ObjectType.TAG_BINDING,
62
+ UUID: binding.uuid
63
+ }),
64
+ concurrency: 5
65
+ });
66
+ };
67
+ const getTags = async (signal) => {
68
+ const [tags, tagBindingMapByTagId] = await Promise.all([
69
+ _getTagMetaObjects(ObjectType.TAG, signal),
70
+ _getAllTagBindingMapByTagId(signal)
71
+ ]);
72
+ return tags.map((tag) => ({
73
+ tag,
74
+ bindings: tagBindingMapByTagId[tag.uuid] ?? []
75
+ }));
76
+ };
77
+ const getTagsByObjectId = async (objectId, signal) => {
78
+ const tags = await getTags(signal);
79
+ const keboolaObjectUID = keboolaUID.serialize(objectId);
80
+ const mapByTagId = tags.reduce((acc, { tag, bindings }) => {
81
+ acc[tag.uuid] = new Set(bindings.map((binding) => binding.data.objectUID));
82
+ return acc;
83
+ }, {});
84
+ return tags.filter(({ tag }) => mapByTagId[tag.uuid]?.has(keboolaObjectUID));
85
+ };
86
+ const createTag = async (data, meta = {}) => {
87
+ const {
88
+ data: { attributes: tag }
89
+ } = await metastoreClient.repository.createMetaObject({
90
+ objectType: ObjectType.TAG,
91
+ data,
92
+ name: generateUUID(),
93
+ ...meta
94
+ });
95
+ return tag;
96
+ };
97
+ const updateTag = async (tagUUID, data, meta = {}) => {
98
+ const {
99
+ data: { attributes: tag }
100
+ } = await metastoreClient.repository.updateMetaObject({
101
+ objectType: ObjectType.TAG,
102
+ UUID: tagUUID,
103
+ data,
104
+ ...meta
105
+ });
106
+ return tag;
107
+ };
108
+ const deleteTag = async (tagUUID) => {
109
+ const allBindings = await _getTagMetaObjects(ObjectType.TAG_BINDING);
110
+ const tagBindings = allBindings.filter(({ data }) => data.tagUUID === tagUUID);
111
+ await Promise.all([
112
+ // delete tag itself
113
+ metastoreClient.repository.deleteMetaObject({
114
+ objectType: ObjectType.TAG,
115
+ UUID: tagUUID
116
+ }),
117
+ // delete all tag associations
118
+ _deleteTagBindings(tagBindings)
119
+ ]);
120
+ };
121
+ const assignTags = async (tagUUIDs, objectId, meta = {}) => {
122
+ const tagBindingMapByTagId = await _getTagBindingMapByTagId(tagUUIDs, objectId);
123
+ const unassignedTagUUIDs = tagUUIDs.filter((tagUUID) => tagBindingMapByTagId[tagUUID] === null);
124
+ await chunkCVV4HROS_cjs.concurrent({
125
+ items: unassignedTagUUIDs,
126
+ process: async (tagUUID) => metastoreClient.repository.createMetaObject({
127
+ objectType: ObjectType.TAG_BINDING,
128
+ data: {
129
+ objectUID: keboolaUID.serialize(objectId),
130
+ tagUUID
131
+ },
132
+ name: generateUUID(),
133
+ ...meta
134
+ }),
135
+ concurrency: 5
136
+ });
137
+ };
138
+ const unassignTags = async (tagUUIDs, objectID) => {
139
+ const tagBindingMapByTagId = await _getTagBindingMapByTagId(tagUUIDs, objectID);
140
+ const assignedTagUUIDs = tagUUIDs.filter((tagUUID) => tagBindingMapByTagId[tagUUID] !== null);
141
+ const tagBindings = assignedTagUUIDs.map((tagUUID) => tagBindingMapByTagId[tagUUID]);
142
+ await chunkCVV4HROS_cjs.concurrent({
143
+ items: tagBindings,
144
+ process: async (tagBinding) => metastoreClient.repository.deleteMetaObject({
145
+ objectType: ObjectType.TAG_BINDING,
146
+ UUID: tagBinding.uuid
147
+ }),
148
+ concurrency: 5
149
+ });
150
+ };
151
+ const unassignAllTags = async (objectID, signal) => {
152
+ const tagBindings = await _getTagMetaObjects(ObjectType.TAG_BINDING, signal);
153
+ const objectsTagBindings = tagBindings.filter(
154
+ ({ data }) => data.objectUID === keboolaUID.serialize(objectID)
155
+ );
156
+ await _deleteTagBindings(objectsTagBindings);
157
+ };
158
+ const createAndAssignTag = async (data, objectId, meta = {}) => {
159
+ const tag = await createTag(data, meta);
160
+ await assignTags([tag.uuid], objectId, meta);
161
+ return tag;
162
+ };
163
+ return {
164
+ // retrievals
165
+ getTags,
166
+ getTagsByObjectId,
167
+ // modifications
168
+ createTag,
169
+ updateTag,
170
+ deleteTag,
171
+ assignTags,
172
+ unassignTags,
173
+ unassignAllTags,
174
+ createAndAssignTag
175
+ };
176
+ };
177
+
178
+ exports.createTagSdk = createTagSdk;
179
+ exports.generateUUID = generateUUID;
180
+ exports.keboolaUID = keboolaUID;
181
+ //# sourceMappingURL=chunk-BR3SBEFE.cjs.map
182
+ //# sourceMappingURL=chunk-BR3SBEFE.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/keboolaUID.ts","../src/utils/generateUUID.ts","../src/sdks/tag/tagSdk.ts"],"names":["concurrent"],"mappings":";;;;;AAiBA,IAAM,2BAAA,GAA8B,IAAA;AAS7B,IAAM,UAAA,GAAa;AAAA,EACxB,SAAA,EAAW,CAAC,KAAA,KAAmC;AAC7C,IAAA,IAAI,MAAM,GAAA,KAAQ,EAAA;AAChB,MAAA,MAAM,IAAI,MAAM,6DAA6D,CAAA;AAE/E,IAAA,OAAO,CAAC,KAAA,EAAO,KAAA,CAAM,SAAA,EAAW,KAAA,CAAM,MAAM,KAAA,CAAM,GAAG,CAAA,CAAE,IAAA,CAAK,2BAA2B,CAAA;AAAA,EACzF,CAAA;AAAA,EAEA,WAAA,EAAa,CAAC,KAAA,KAAmC;AAC/C,IAAA,MAAM,CAAC,YAAY,SAAA,EAAW,IAAA,EAAM,GAAG,CAAA,GAAI,KAAA,CAAM,MAAM,2BAA2B,CAAA;AAClF,IAAA,IAAI,eAAe,KAAA,IAAS,CAAC,SAAA,IAAa,CAAC,QAAQ,CAAC,GAAA;AAClD,MAAA,MAAM,IAAI,MAAM,2BAA2B,CAAA;AAE7C,IAAA,OAAO;AAAA,MACL,SAAA,EAAW,OAAO,SAAS,CAAA;AAAA,MAC3B,IAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACF;;;AC7CO,IAAM,YAAA,GAAe,MAAM,MAAA,CAAO,UAAA;;;ACYzC,IAAM,UAAA,GAAa;AAAA,EACjB,GAAA,EAAK,KAAA;AAAA,EACL,WAAA,EAAa;AACf,CAAA;AAOO,IAAM,YAAA,GAAe,CAAC,EAAE,eAAA,EAAgB,KAAe;AAC5D,EAAA,MAAM,kBAAA,GAAqB,OACzB,IAAA,EACA,MAAA,KACG;AACH,IAAA,MAAM,QAAA,GAAW,MAAM,eAAA,CAAgB,UAAA,CAAW,cAAA;AAAA,MAChD;AAAA,QACE,UAAA,EAAY;AAAA,OACd;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAO,SAAS,IAAA,CAAK,GAAA,CAAI,CAAC,EAAE,UAAA,OAAiB,UAAU,CAAA;AAAA,EACzD,CAAA;AAEA,EAAA,MAAM,2BAAA,GAA8B,OAAO,MAAA,KAAyB;AAClE,IAAA,MAAM,WAAA,GAAc,MAAM,kBAAA,CAAmC,UAAA,CAAW,aAAa,MAAM,CAAA;AAC3F,IAAA,OAAO,OAAO,OAAA,CAAQ,WAAA,EAAa,CAAC,OAAA,KAAY,OAAA,CAAQ,KAAK,OAAO,CAAA;AAAA,EACtE,CAAA;AAEA,EAAA,MAAM,wBAAA,GAA2B,OAC/B,QAAA,EACA,QAAA,EACA,MAAA,KACG;AACH,IAAA,MAAM,oBAAA,GAAuB,MAAM,2BAAA,CAA4B,MAAM,CAAA;AACrE,IAAA,MAAM,SAAA,GAAY,UAAA,CAAW,SAAA,CAAU,QAAQ,CAAA;AAC/C,IAAA,OAAO,QAAA,CAAS,MAAA,CAA0D,CAAC,GAAA,EAAK,OAAA,KAAY;AAC1F,MAAA,IAAI,GAAA,CAAI,OAAO,CAAA,EAAG,OAAO,GAAA;AAEzB,MAAA,MAAM,WAAA,GAAc,oBAAA,CAAqB,OAAO,CAAA,IAAK,EAAC;AACtD,MAAA,GAAA,CAAI,OAAO,CAAA,GAAI,WAAA,CAAY,IAAA,CAAK,CAAC,YAAY,OAAA,CAAQ,IAAA,CAAK,SAAA,KAAc,SAAS,CAAA,IAAK,IAAA;AACtF,MAAA,OAAO,GAAA;AAAA,IACT,CAAA,EAAG,EAAE,CAAA;AAAA,EACP,CAAA;AAEA,EAAA,MAAM,kBAAA,GAAqB,OAAO,WAAA,KAA8C;AAC9E,IAAA,MAAMA,4BAAA,CAAW;AAAA,MACf,KAAA,EAAO,WAAA;AAAA,MACP,OAAA,EAAS,OAAO,OAAA,KACd,eAAA,CAAgB,WAAW,gBAAA,CAAiB;AAAA,QAC1C,YAAY,UAAA,CAAW,WAAA;AAAA,QACvB,MAAM,OAAA,CAAQ;AAAA,OACf,CAAA;AAAA,MACH,WAAA,EAAa;AAAA,KACd,CAAA;AAAA,EACH,CAAA;AAEA,EAAA,MAAM,OAAA,GAAU,OAAO,MAAA,KAAyB;AAC9C,IAAA,MAAM,CAAC,IAAA,EAAM,oBAAoB,CAAA,GAAI,MAAM,QAAQ,GAAA,CAAI;AAAA,MACrD,kBAAA,CAA4B,UAAA,CAAW,GAAA,EAAK,MAAM,CAAA;AAAA,MAClD,4BAA4B,MAAM;AAAA,KACnC,CAAA;AAED,IAAA,OAAO,IAAA,CAAK,GAAA,CAAqB,CAAC,GAAA,MAAS;AAAA,MACzC,GAAA;AAAA,MACA,QAAA,EAAU,oBAAA,CAAqB,GAAA,CAAI,IAAK,KAAK;AAAC,KAChD,CAAE,CAAA;AAAA,EACJ,CAAA;AAEA,EAAA,MAAM,iBAAA,GAAoB,OAAO,QAAA,EAA2B,MAAA,KAAyB;AACnF,IAAA,MAAM,IAAA,GAAO,MAAM,OAAA,CAAQ,MAAM,CAAA;AAEjC,IAAA,MAAM,gBAAA,GAAmB,UAAA,CAAW,SAAA,CAAU,QAAQ,CAAA;AACtD,IAAA,MAAM,UAAA,GAAa,KAAK,MAAA,CAAoC,CAAC,KAAK,EAAE,GAAA,EAAK,UAAS,KAAM;AACtF,MAAA,GAAA,CAAI,GAAA,CAAI,IAAK,CAAA,GAAI,IAAI,GAAA,CAAI,QAAA,CAAS,GAAA,CAAI,CAAC,OAAA,KAAY,OAAA,CAAQ,IAAA,CAAK,SAAS,CAAC,CAAA;AAC1E,MAAA,OAAO,GAAA;AAAA,IACT,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,CAAC,EAAE,GAAA,EAAI,KAAM,UAAA,CAAW,GAAA,CAAI,IAAK,CAAA,EAAG,GAAA,CAAI,gBAAgB,CAAC,CAAA;AAAA,EAC9E,CAAA;AAEA,EAAA,MAAM,SAAA,GAAY,OAAO,IAAA,EAAe,IAAA,GAAsC,EAAC,KAAM;AACnF,IAAA,MAAM;AAAA,MACJ,IAAA,EAAM,EAAE,UAAA,EAAY,GAAA;AAAI,KAC1B,GAAI,MAAM,eAAA,CAAgB,UAAA,CAAW,gBAAA,CAAiB;AAAA,MACpD,YAAY,UAAA,CAAW,GAAA;AAAA,MACvB,IAAA;AAAA,MACA,MAAM,YAAA,EAAa;AAAA,MACnB,GAAG;AAAA,KACJ,CAAA;AAED,IAAA,OAAO,GAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,YAAY,OAChB,OAAA,EACA,IAAA,EACA,IAAA,GAAsC,EAAC,KACpC;AACH,IAAA,MAAM;AAAA,MACJ,IAAA,EAAM,EAAE,UAAA,EAAY,GAAA;AAAI,KAC1B,GAAI,MAAM,eAAA,CAAgB,UAAA,CAAW,gBAAA,CAA0B;AAAA,MAC7D,YAAY,UAAA,CAAW,GAAA;AAAA,MACvB,IAAA,EAAM,OAAA;AAAA,MACN,IAAA;AAAA,MACA,GAAG;AAAA,KACJ,CAAA;AAED,IAAA,OAAO,GAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,SAAA,GAAY,OAAO,OAAA,KAAoB;AAC3C,IAAA,MAAM,WAAA,GAAc,MAAM,kBAAA,CAAmC,UAAA,CAAW,WAAW,CAAA;AACnF,IAAA,MAAM,WAAA,GAAc,YAAY,MAAA,CAAO,CAAC,EAAE,IAAA,EAAK,KAAM,IAAA,CAAK,OAAA,KAAY,OAAO,CAAA;AAE7E,IAAA,MAAM,QAAQ,GAAA,CAAI;AAAA;AAAA,MAEhB,eAAA,CAAgB,WAAW,gBAAA,CAAiB;AAAA,QAC1C,YAAY,UAAA,CAAW,GAAA;AAAA,QACvB,IAAA,EAAM;AAAA,OACP,CAAA;AAAA;AAAA,MAED,mBAAmB,WAAW;AAAA,KAC/B,CAAA;AAAA,EACH,CAAA;AAEA,EAAA,MAAM,aAAa,OACjB,QAAA,EACA,QAAA,EACA,IAAA,GAAsC,EAAC,KACpC;AACH,IAAA,MAAM,oBAAA,GAAuB,MAAM,wBAAA,CAAyB,QAAA,EAAU,QAAQ,CAAA;AAE9E,IAAA,MAAM,kBAAA,GAAqB,SAAS,MAAA,CAAO,CAAC,YAAY,oBAAA,CAAqB,OAAO,MAAM,IAAI,CAAA;AAE9F,IAAA,MAAMA,4BAAA,CAAW;AAAA,MACf,KAAA,EAAO,kBAAA;AAAA,MACP,OAAA,EAAS,OAAO,OAAA,KACd,eAAA,CAAgB,WAAW,gBAAA,CAAiC;AAAA,QAC1D,YAAY,UAAA,CAAW,WAAA;AAAA,QACvB,IAAA,EAAM;AAAA,UACJ,SAAA,EAAW,UAAA,CAAW,SAAA,CAAU,QAAQ,CAAA;AAAA,UACxC;AAAA,SACF;AAAA,QACA,MAAM,YAAA,EAAa;AAAA,QACnB,GAAG;AAAA,OACJ,CAAA;AAAA,MACH,WAAA,EAAa;AAAA,KACd,CAAA;AAAA,EACH,CAAA;AAEA,EAAA,MAAM,YAAA,GAAe,OAAO,QAAA,EAAoB,QAAA,KAA8B;AAC5E,IAAA,MAAM,oBAAA,GAAuB,MAAM,wBAAA,CAAyB,QAAA,EAAU,QAAQ,CAAA;AAC9E,IAAA,MAAM,gBAAA,GAAmB,SAAS,MAAA,CAAO,CAAC,YAAY,oBAAA,CAAqB,OAAO,MAAM,IAAI,CAAA;AAE5F,IAAA,MAAM,cAAc,gBAAA,CAAiB,GAAA,CAAI,CAAC,OAAA,KAAY,oBAAA,CAAqB,OAAO,CAAE,CAAA;AAEpF,IAAA,MAAMA,4BAAA,CAAW;AAAA,MACf,KAAA,EAAO,WAAA;AAAA,MACP,OAAA,EAAS,OAAO,UAAA,KACd,eAAA,CAAgB,WAAW,gBAAA,CAAiB;AAAA,QAC1C,YAAY,UAAA,CAAW,WAAA;AAAA,QACvB,MAAM,UAAA,CAAW;AAAA,OAClB,CAAA;AAAA,MACH,WAAA,EAAa;AAAA,KACd,CAAA;AAAA,EACH,CAAA;AAEA,EAAA,MAAM,eAAA,GAAkB,OAAO,QAAA,EAA2B,MAAA,KAAyB;AACjF,IAAA,MAAM,WAAA,GAAc,MAAM,kBAAA,CAAmC,UAAA,CAAW,aAAa,MAAM,CAAA;AAE3F,IAAA,MAAM,qBAAqB,WAAA,CAAY,MAAA;AAAA,MACrC,CAAC,EAAE,IAAA,EAAK,KAAM,KAAK,SAAA,KAAc,UAAA,CAAW,UAAU,QAAQ;AAAA,KAChE;AAEA,IAAA,MAAM,mBAAmB,kBAAkB,CAAA;AAAA,EAC7C,CAAA;AAEA,EAAA,MAAM,qBAAqB,OACzB,IAAA,EACA,QAAA,EACA,IAAA,GAAsC,EAAC,KACpC;AACH,IAAA,MAAM,GAAA,GAAM,MAAM,SAAA,CAAU,IAAA,EAAM,IAAI,CAAA;AACtC,IAAA,MAAM,WAAW,CAAC,GAAA,CAAI,IAAK,CAAA,EAAG,UAAU,IAAI,CAAA;AAC5C,IAAA,OAAO,GAAA;AAAA,EACT,CAAA;AAEA,EAAA,OAAO;AAAA;AAAA,IAEL,OAAA;AAAA,IACA,iBAAA;AAAA;AAAA,IAGA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA,eAAA;AAAA,IACA;AAAA,GACF;AACF","file":"chunk-BR3SBEFE.cjs","sourcesContent":["type KeboolaObjectType =\n | 'data-catalog'\n | 'table'\n | 'bucket'\n | 'flow'\n | 'configuration'\n | 'transformation'\n | 'data-app'\n | 'workspace';\n\nexport type KeboolaObjectId = {\n uid: string;\n type: KeboolaObjectType;\n projectId: number;\n};\n\n//As a delimiter for serialization, we use a double hyphen (--) instead of a single hyphen in type names.\nconst KEBOOLA_OBJECT_ID_DELIMITER = '--';\n\n/**\n * There is a proposal for a string format to identify objects in Keboola.\n *\n * https://keboola.atlassian.net/wiki/spaces/ENGG/pages/3967615431/Keboola+UUID+Format\n * Unfortunately, this format will not pass BE validation as `:` is not allowed in the `uid`, and the length is limited to 50 characters only.\n *\n */\nexport const keboolaUID = {\n serialize: (input: KeboolaObjectId): string => {\n if (input.uid === '')\n throw new Error('Invalid Keboola Object ID: uid of an object cannot be empty');\n\n return ['KID', input.projectId, input.type, input.uid].join(KEBOOLA_OBJECT_ID_DELIMITER);\n },\n\n deserialize: (input: string): KeboolaObjectId => {\n const [identifier, projectId, type, uid] = input.split(KEBOOLA_OBJECT_ID_DELIMITER);\n if (identifier !== 'KID' || !projectId || !type || !uid)\n throw new Error('Invalid Keboola Object ID');\n\n return {\n projectId: Number(projectId),\n type: type as KeboolaObjectType,\n uid,\n };\n },\n};\n","export const generateUUID = () => crypto.randomUUID();\n","import type { MetaObject } from '../../clients/metastore/repository/types';\nimport { concurrent, generateUUID, type KeboolaObjectId, keboolaUID } from '../../utils';\n\nimport type {\n CreateMetaObjectMetaDataInput,\n MetastoreClient,\n TagBindingData,\n TagData,\n TagWithBindings,\n UpdateMetaObjectMetaDataInput,\n} from './types';\n\nconst ObjectType = {\n TAG: 'tag',\n TAG_BINDING: 'tag-binding',\n};\ntype ObjectTypes = (typeof ObjectType)[keyof typeof ObjectType];\n\ntype Options = {\n metastoreClient: MetastoreClient;\n};\n\nexport const createTagSdk = ({ metastoreClient }: Options) => {\n const _getTagMetaObjects = async <T extends Record<string, unknown>>(\n type: ObjectTypes,\n signal?: AbortSignal,\n ) => {\n const response = await metastoreClient.repository.getMetaObjects<T>(\n {\n objectType: type,\n },\n signal,\n );\n return response.data.map(({ attributes }) => attributes);\n };\n\n const _getAllTagBindingMapByTagId = async (signal?: AbortSignal) => {\n const tagBindings = await _getTagMetaObjects<TagBindingData>(ObjectType.TAG_BINDING, signal);\n return Object.groupBy(tagBindings, (binding) => binding.data.tagUUID);\n };\n\n const _getTagBindingMapByTagId = async (\n tagUUIDs: string[],\n objectId: KeboolaObjectId,\n signal?: AbortSignal,\n ) => {\n const tagBindingMapByTagId = await _getAllTagBindingMapByTagId(signal);\n const objectUID = keboolaUID.serialize(objectId);\n return tagUUIDs.reduce<Record<string, MetaObject<TagBindingData> | null>>((acc, tagUUID) => {\n if (acc[tagUUID]) return acc; // filter out duplicated ids\n\n const tagBindings = tagBindingMapByTagId[tagUUID] ?? [];\n acc[tagUUID] = tagBindings.find((binding) => binding.data.objectUID === objectUID) ?? null;\n return acc;\n }, {});\n };\n\n const _deleteTagBindings = async (tagBindings: MetaObject<TagBindingData>[]) => {\n await concurrent({\n items: tagBindings,\n process: async (binding) =>\n metastoreClient.repository.deleteMetaObject({\n objectType: ObjectType.TAG_BINDING,\n UUID: binding.uuid!,\n }),\n concurrency: 5,\n });\n };\n\n const getTags = async (signal?: AbortSignal) => {\n const [tags, tagBindingMapByTagId] = await Promise.all([\n _getTagMetaObjects<TagData>(ObjectType.TAG, signal),\n _getAllTagBindingMapByTagId(signal),\n ]);\n\n return tags.map<TagWithBindings>((tag) => ({\n tag,\n bindings: tagBindingMapByTagId[tag.uuid!] ?? [],\n }));\n };\n\n const getTagsByObjectId = async (objectId: KeboolaObjectId, signal?: AbortSignal) => {\n const tags = await getTags(signal);\n\n const keboolaObjectUID = keboolaUID.serialize(objectId);\n const mapByTagId = tags.reduce<Record<string, Set<string>>>((acc, { tag, bindings }) => {\n acc[tag.uuid!] = new Set(bindings.map((binding) => binding.data.objectUID));\n return acc;\n }, {});\n\n return tags.filter(({ tag }) => mapByTagId[tag.uuid!]?.has(keboolaObjectUID));\n };\n\n const createTag = async (data: TagData, meta: CreateMetaObjectMetaDataInput = {}) => {\n const {\n data: { attributes: tag },\n } = await metastoreClient.repository.createMetaObject({\n objectType: ObjectType.TAG,\n data,\n name: generateUUID(),\n ...meta,\n });\n\n return tag;\n };\n\n const updateTag = async (\n tagUUID: string,\n data: TagData,\n meta: UpdateMetaObjectMetaDataInput = {},\n ) => {\n const {\n data: { attributes: tag },\n } = await metastoreClient.repository.updateMetaObject<TagData>({\n objectType: ObjectType.TAG,\n UUID: tagUUID,\n data,\n ...meta,\n });\n\n return tag;\n };\n\n const deleteTag = async (tagUUID: string) => {\n const allBindings = await _getTagMetaObjects<TagBindingData>(ObjectType.TAG_BINDING);\n const tagBindings = allBindings.filter(({ data }) => data.tagUUID === tagUUID);\n\n await Promise.all([\n // delete tag itself\n metastoreClient.repository.deleteMetaObject({\n objectType: ObjectType.TAG,\n UUID: tagUUID,\n }),\n // delete all tag associations\n _deleteTagBindings(tagBindings),\n ]);\n };\n\n const assignTags = async (\n tagUUIDs: string[],\n objectId: KeboolaObjectId,\n meta: CreateMetaObjectMetaDataInput = {},\n ) => {\n const tagBindingMapByTagId = await _getTagBindingMapByTagId(tagUUIDs, objectId);\n // Assign only the unassigned tag IDs. Ignore the rest.\n const unassignedTagUUIDs = tagUUIDs.filter((tagUUID) => tagBindingMapByTagId[tagUUID] === null);\n\n await concurrent({\n items: unassignedTagUUIDs,\n process: async (tagUUID) =>\n metastoreClient.repository.createMetaObject<TagBindingData>({\n objectType: ObjectType.TAG_BINDING,\n data: {\n objectUID: keboolaUID.serialize(objectId),\n tagUUID: tagUUID,\n },\n name: generateUUID(),\n ...meta,\n }),\n concurrency: 5,\n });\n };\n\n const unassignTags = async (tagUUIDs: string[], objectID: KeboolaObjectId) => {\n const tagBindingMapByTagId = await _getTagBindingMapByTagId(tagUUIDs, objectID);\n const assignedTagUUIDs = tagUUIDs.filter((tagUUID) => tagBindingMapByTagId[tagUUID] !== null);\n\n const tagBindings = assignedTagUUIDs.map((tagUUID) => tagBindingMapByTagId[tagUUID]!);\n\n await concurrent({\n items: tagBindings,\n process: async (tagBinding) =>\n metastoreClient.repository.deleteMetaObject({\n objectType: ObjectType.TAG_BINDING,\n UUID: tagBinding.uuid!,\n }),\n concurrency: 5,\n });\n };\n\n const unassignAllTags = async (objectID: KeboolaObjectId, signal?: AbortSignal) => {\n const tagBindings = await _getTagMetaObjects<TagBindingData>(ObjectType.TAG_BINDING, signal);\n\n const objectsTagBindings = tagBindings.filter(\n ({ data }) => data.objectUID === keboolaUID.serialize(objectID),\n );\n\n await _deleteTagBindings(objectsTagBindings);\n };\n\n const createAndAssignTag = async (\n data: TagData,\n objectId: KeboolaObjectId,\n meta: CreateMetaObjectMetaDataInput = {},\n ) => {\n const tag = await createTag(data, meta);\n await assignTags([tag.uuid!], objectId, meta);\n return tag;\n };\n\n return {\n // retrievals\n getTags,\n getTagsByObjectId,\n\n // modifications\n createTag,\n updateTag,\n deleteTag,\n assignTags,\n unassignTags,\n unassignAllTags,\n createAndAssignTag,\n };\n};\n"]}
@@ -0,0 +1,37 @@
1
+ 'use strict';
2
+
3
+ // src/utils/concurrent.ts
4
+ var concurrent = async ({
5
+ items,
6
+ process,
7
+ concurrency = 2,
8
+ middlewares = []
9
+ }) => {
10
+ if (concurrency < 1) throw new Error("Concurrency must be greater than 0");
11
+ if (items.length === 0) return [];
12
+ if (concurrency === Infinity)
13
+ return Promise.all(items.map((item, index) => process(item, index, items.length)));
14
+ const n = items.length;
15
+ const results = new Array(n);
16
+ const processWithMiddlewares = middlewares.reduceRight(
17
+ (next, middleware) => middleware(next),
18
+ process
19
+ );
20
+ const queue = items.map((item, index) => async () => {
21
+ results[index] = await processWithMiddlewares(item, index, items.length);
22
+ });
23
+ const workers = Array.from(
24
+ { length: Math.min(concurrency, items.length) },
25
+ async function processQueue() {
26
+ while (queue.length) {
27
+ await queue.shift()?.();
28
+ }
29
+ }
30
+ );
31
+ await Promise.all(workers);
32
+ return results;
33
+ };
34
+
35
+ exports.concurrent = concurrent;
36
+ //# sourceMappingURL=chunk-CVV4HROS.cjs.map
37
+ //# sourceMappingURL=chunk-CVV4HROS.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/concurrent.ts"],"names":[],"mappings":";;;AAgBO,IAAM,aAAa,OAAa;AAAA,EACrC,KAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA,GAAc,CAAA;AAAA,EACd,cAAc;AAChB,CAAA,KAA6C;AAC3C,EAAA,IAAI,WAAA,GAAc,CAAA,EAAG,MAAM,IAAI,MAAM,oCAAoC,CAAA;AACzE,EAAA,IAAI,KAAA,CAAM,MAAA,KAAW,CAAA,EAAG,OAAO,EAAC;AAChC,EAAA,IAAI,WAAA,KAAgB,QAAA;AAClB,IAAA,OAAO,OAAA,CAAQ,GAAA,CAAI,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,KAAU,OAAA,CAAQ,IAAA,EAAM,KAAA,EAAO,KAAA,CAAM,MAAM,CAAC,CAAC,CAAA;AAEnF,EAAA,MAAM,IAAI,KAAA,CAAM,MAAA;AAChB,EAAA,MAAM,OAAA,GAAe,IAAI,KAAA,CAAM,CAAC,CAAA;AAEhC,EAAA,MAAM,yBAAyB,WAAA,CAAY,WAAA;AAAA,IACzC,CAAC,IAAA,EAAM,UAAA,KAAe,UAAA,CAAW,IAAI,CAAA;AAAA,IACrC;AAAA,GACF;AAEA,EAAA,MAAM,QAAQ,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,UAAU,YAAY;AACnD,IAAA,OAAA,CAAQ,KAAK,CAAA,GAAI,MAAM,uBAAuB,IAAA,EAAM,KAAA,EAAO,MAAM,MAAM,CAAA;AAAA,EACzE,CAAC,CAAA;AAED,EAAA,MAAM,UAAU,KAAA,CAAM,IAAA;AAAA,IACpB,EAAE,MAAA,EAAQ,IAAA,CAAK,IAAI,WAAA,EAAa,KAAA,CAAM,MAAM,CAAA,EAAE;AAAA,IAC9C,eAAe,YAAA,GAAe;AAC5B,MAAA,OAAO,MAAM,MAAA,EAAQ;AACnB,QAAA,MAAM,KAAA,CAAM,OAAM,IAAI;AAAA,MACxB;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAM,OAAA,CAAQ,IAAI,OAAO,CAAA;AACzB,EAAA,OAAO,OAAA;AACT","file":"chunk-CVV4HROS.cjs","sourcesContent":["type ProcessFn<T, R> = (item: T, index: number, arrayLength: number) => Promise<R>;\nexport type MiddlewareFn<T, R> = (next: ProcessFn<T, R>) => ProcessFn<T, R>;\n\nexport type ConcurrentOptions<T, R> = {\n items: T[];\n process: ProcessFn<T, R>;\n concurrency?: number;\n middlewares?: MiddlewareFn<T, R>[];\n};\n\n/**\n * Executes an asynchronous callback function on an array of items, processing multiple items concurrently with a specified concurrency limit.\n * It behaves similarly to Promise.all(), failing on the first rejected promise.\n * The order of the results matches the order of the promises.\n * The API is the same as Bluebird.map().\n */\nexport const concurrent = async <T, R>({\n items,\n process,\n concurrency = 2,\n middlewares = [],\n}: ConcurrentOptions<T, R>): Promise<R[]> => {\n if (concurrency < 1) throw new Error('Concurrency must be greater than 0');\n if (items.length === 0) return [];\n if (concurrency === Infinity)\n return Promise.all(items.map((item, index) => process(item, index, items.length)));\n\n const n = items.length;\n const results: R[] = new Array(n);\n\n const processWithMiddlewares = middlewares.reduceRight(\n (next, middleware) => middleware(next),\n process,\n );\n\n const queue = items.map((item, index) => async () => {\n results[index] = await processWithMiddlewares(item, index, items.length);\n });\n\n const workers = Array.from(\n { length: Math.min(concurrency, items.length) },\n async function processQueue() {\n while (queue.length) {\n await queue.shift()?.();\n }\n },\n );\n\n await Promise.all(workers);\n return results;\n};\n"]}
@@ -0,0 +1,277 @@
1
+ 'use strict';
2
+
3
+ // src/utils/createAbortError.ts
4
+ var createAbortError = (reason) => new DOMException(reason, "AbortError");
5
+
6
+ // src/utils/delay.ts
7
+ var delay = (timeout, signal) => new Promise((resolve, reject) => {
8
+ if (signal?.aborted) return reject(createAbortError(signal.reason));
9
+ const timeoutId = setTimeout(resolve, timeout);
10
+ signal?.addEventListener(
11
+ "abort",
12
+ () => {
13
+ clearTimeout(timeoutId);
14
+ reject(createAbortError(signal.reason));
15
+ },
16
+ { once: true }
17
+ );
18
+ });
19
+
20
+ // src/utils/poll.ts
21
+ var message = {
22
+ PollPredicateError: "Poll predicate failed",
23
+ PollTimeoutError: "Poll timeout exceeded",
24
+ PollPollTimeoutError: "Poll data failed condition"
25
+ };
26
+ var PollException = class extends Error {
27
+ result;
28
+ constructor(type, result) {
29
+ super(type, { cause: message[type] });
30
+ this.result = result;
31
+ }
32
+ };
33
+ var poll = async ({
34
+ pollFn,
35
+ interval,
36
+ isDone,
37
+ isFailed,
38
+ abortSignal,
39
+ maxAttempts = Infinity
40
+ }) => {
41
+ if (abortSignal?.aborted) throw createAbortError(abortSignal.reason);
42
+ if (interval < 1) throw new Error("Invalid poll interval");
43
+ if (maxAttempts < 1) throw new Error("Invalid poll maxAttempts");
44
+ let callCount = 0;
45
+ while (true) {
46
+ callCount++;
47
+ const data = await pollFn(abortSignal);
48
+ const result = { data, callCount };
49
+ try {
50
+ if (isDone(data)) return result;
51
+ if (isFailed?.(data) ?? false) throw new PollException("PollPollTimeoutError", result);
52
+ } catch (error) {
53
+ if (error instanceof PollException) throw error;
54
+ throw new PollException("PollPredicateError", result);
55
+ }
56
+ if (callCount >= maxAttempts) throw new PollException("PollTimeoutError", result);
57
+ await delay(interval, abortSignal);
58
+ }
59
+ };
60
+
61
+ // src/sdks/storage/storageSdk.ts
62
+ var DEFAULT_POLL_INTERVAL = 2e3;
63
+ var JOB_TERMINAL_STATUSES = /* @__PURE__ */ new Set(["success", "warning", "error", "terminated", "cancelled"]);
64
+ var createStorageSdk = ({ storageClient }) => {
65
+ const waitForJob = async (job, options) => {
66
+ const { data } = await poll({
67
+ pollFn: (abortSignal) => storageClient.jobs.getJob(job.id, abortSignal),
68
+ isDone: (j) => JOB_TERMINAL_STATUSES.has(j.status),
69
+ interval: options?.interval ?? DEFAULT_POLL_INTERVAL,
70
+ maxAttempts: options?.maxAttempts,
71
+ abortSignal: options?.abortSignal
72
+ });
73
+ return data;
74
+ };
75
+ const createTable = async (bucketId, body, options) => {
76
+ const job = await storageClient.tables.createTableAsync(bucketId, body, options?.abortSignal);
77
+ return waitForJob(job, options);
78
+ };
79
+ const importFromFile = async (tableId, body, options) => {
80
+ const job = await storageClient.tables.importAsync(tableId, body, options?.abortSignal);
81
+ return waitForJob(job, options);
82
+ };
83
+ const exportToFile = async (tableId, body, options) => {
84
+ const job = await storageClient.tables.exportAsync(tableId, body, options?.abortSignal);
85
+ return waitForJob(job, options);
86
+ };
87
+ const getBucketListing = async (bucketId, signal) => storageClient.buckets.getListing(bucketId, signal);
88
+ const listBucketListings = async (signal) => storageClient.buckets.listListings(signal);
89
+ const createBucketListing = async (bucketId, input, options) => {
90
+ const job = await storageClient.buckets.createListing(bucketId, input, options?.abortSignal);
91
+ return waitForJob(job, options);
92
+ };
93
+ const updateBucketListing = async (bucketId, input, options) => {
94
+ const job = await storageClient.buckets.updateListing(bucketId, input, options?.abortSignal);
95
+ return waitForJob(job, options);
96
+ };
97
+ const deleteBucketListing = async (bucketId, options) => {
98
+ const job = await storageClient.buckets.deleteListing(bucketId, options?.abortSignal);
99
+ return waitForJob(job, options);
100
+ };
101
+ return {
102
+ createTable,
103
+ importFromFile,
104
+ exportToFile,
105
+ getBucketListing,
106
+ listBucketListings,
107
+ createBucketListing,
108
+ updateBucketListing,
109
+ deleteBucketListing
110
+ };
111
+ };
112
+
113
+ // src/sdks/storage/tableIdParser.ts
114
+ function parseTableId(tableId, defaultStage, defaultBucket) {
115
+ const parts = tableId.match(/^(in|out)?\.(.+)?\.(.+)?$/);
116
+ return {
117
+ stage: parts ? parts[1] || defaultStage : defaultStage,
118
+ bucket: parts ? parts[2] || defaultBucket : defaultBucket,
119
+ table: parts ? parts[3] || "" : ""
120
+ };
121
+ }
122
+ function parse(tableId, options = {}) {
123
+ const parts = parseTableId(
124
+ tableId || "",
125
+ options.defaultStage || "",
126
+ options.defaultBucket || ""
127
+ );
128
+ const { stage, bucket, table } = parts;
129
+ return {
130
+ tableId: `${stage}.${bucket}.${table}`,
131
+ parts,
132
+ setPart: (partNameToSet, value) => {
133
+ const result = ["stage", "bucket", "table"].reduce(
134
+ (memo, partName) => partName === partNameToSet ? `${memo}.${value}` : `${memo}.${parts[partName]}`,
135
+ ""
136
+ ).slice(1);
137
+ return parse(result);
138
+ }
139
+ };
140
+ }
141
+ var tableIdParser = { parse };
142
+
143
+ // src/sdks/storage/tableName.ts
144
+ var stripLegacyBucketPrefix = (bucketName) => {
145
+ if (!bucketName.includes("c-")) {
146
+ return bucketName;
147
+ }
148
+ return bucketName.substring(bucketName.indexOf("c-") + "c-".length);
149
+ };
150
+ var getBucketDisplayNameFromName = (bucketName, options = {}) => {
151
+ if (!bucketName) return "";
152
+ return options.disableLegacyBucketPrefix ? bucketName : stripLegacyBucketPrefix(bucketName);
153
+ };
154
+ var tableNameParsed = (tableId, options = {}) => {
155
+ const { stage, bucket, table } = tableIdParser.parse(tableId).parts;
156
+ const bucketName = options.storageBucket?.displayName ?? getBucketDisplayNameFromName(bucket, options);
157
+ if (stage && bucketName && table) {
158
+ return `${bucketName} / ${table}`;
159
+ }
160
+ return tableId;
161
+ };
162
+
163
+ // src/sdks/storage/fqid.ts
164
+ var FQID_TYPES = {
165
+ organization: "ORG",
166
+ maintainer: "MTR",
167
+ project: "PRJ",
168
+ bucket: "BCT",
169
+ table: "TBL",
170
+ column: "COL",
171
+ config: "CFG",
172
+ component: "CMP",
173
+ externalTable: "EX_TBL",
174
+ externalColumn: "EX_COL"
175
+ };
176
+ var isFQIDType = (value) => {
177
+ return Object.values(FQID_TYPES).includes(value);
178
+ };
179
+ var parseFQID = (fqid) => {
180
+ if (!fqid?.trim()) return {};
181
+ const firstSegment = fqid.split(" ")[0] ?? "";
182
+ const [type, ...rest] = firstSegment.split("/");
183
+ if (!type || !isFQIDType(type)) return {};
184
+ switch (type) {
185
+ case "ORG":
186
+ return { type, organizationId: rest[0] };
187
+ case "MTR":
188
+ return { type, maintainerId: rest[0] };
189
+ case "PRJ":
190
+ return { type, projectId: rest[0] };
191
+ case "BCT":
192
+ return { type, projectId: rest[0], bucketId: rest[1] };
193
+ case "TBL":
194
+ return { type, projectId: rest[0], tableId: rest[1] };
195
+ case "COL":
196
+ return { type, projectId: rest[0], tableId: rest[1], column: rest[2] };
197
+ case "CMP":
198
+ return { type, projectId: rest[0], componentId: rest[1] };
199
+ case "CFG":
200
+ return { type, projectId: rest[0], componentId: rest[1], configId: rest[2] };
201
+ default:
202
+ return {};
203
+ }
204
+ };
205
+ var constructFQID = ({ type, data }) => {
206
+ switch (type) {
207
+ case FQID_TYPES.organization:
208
+ return `ORG/${data.organizationId}`;
209
+ case FQID_TYPES.maintainer:
210
+ return `MTR/${data.maintainerId}`;
211
+ case FQID_TYPES.project:
212
+ return `PRJ/${data.projectId}`;
213
+ case FQID_TYPES.bucket:
214
+ return `BCT/${data.projectId}/${data.bucketId}`;
215
+ case FQID_TYPES.table:
216
+ return `TBL/${data.projectId}/${data.tableId}`;
217
+ case FQID_TYPES.column:
218
+ return `COL/${data.projectId}/${data.tableId}/${data.column}`;
219
+ case FQID_TYPES.component:
220
+ return `CMP/${data.projectId}/${data.componentId}`;
221
+ case FQID_TYPES.config:
222
+ return `CFG/${data.projectId}/${data.componentId}/${data.configId}`;
223
+ }
224
+ };
225
+
226
+ // src/sdks/storage/devBranch.ts
227
+ var parseDevBranchId = (path) => {
228
+ const pathParts = path.split("/");
229
+ const branchKeywordIndex = pathParts.findIndex((pathPart) => pathPart === "branch");
230
+ if (branchKeywordIndex === -1) {
231
+ return null;
232
+ }
233
+ const branchId = pathParts[branchKeywordIndex + 1];
234
+ if (!branchId) {
235
+ return null;
236
+ }
237
+ const branchIdInt = parseInt(branchId, 10);
238
+ if (/^\d+$/.test(branchId) && branchIdInt > 0) {
239
+ return branchIdInt;
240
+ }
241
+ return null;
242
+ };
243
+ var parseCurrentDevBranchIdFromUrl = () => {
244
+ if (typeof location === "undefined") {
245
+ return null;
246
+ }
247
+ return parseDevBranchId(location.pathname);
248
+ };
249
+ var prefixTagsWithDevBranchId = (tags, branchId = null, options = {}) => {
250
+ if (!branchId || options.hasStorageBranches) {
251
+ return tags;
252
+ }
253
+ return tags.map((tag) => `${branchId}-${tag}`);
254
+ };
255
+ var removeBranchFromUrl = (url) => {
256
+ const partToRemove = "branch/\\d+/";
257
+ const regex = new RegExp(partToRemove, "g");
258
+ return url.replace(regex, "");
259
+ };
260
+
261
+ exports.FQID_TYPES = FQID_TYPES;
262
+ exports.PollException = PollException;
263
+ exports.constructFQID = constructFQID;
264
+ exports.createStorageSdk = createStorageSdk;
265
+ exports.delay = delay;
266
+ exports.getBucketDisplayNameFromName = getBucketDisplayNameFromName;
267
+ exports.parse = parse;
268
+ exports.parseCurrentDevBranchIdFromUrl = parseCurrentDevBranchIdFromUrl;
269
+ exports.parseDevBranchId = parseDevBranchId;
270
+ exports.parseFQID = parseFQID;
271
+ exports.poll = poll;
272
+ exports.prefixTagsWithDevBranchId = prefixTagsWithDevBranchId;
273
+ exports.removeBranchFromUrl = removeBranchFromUrl;
274
+ exports.tableIdParser = tableIdParser;
275
+ exports.tableNameParsed = tableNameParsed;
276
+ //# sourceMappingURL=chunk-DCTDH77P.cjs.map
277
+ //# sourceMappingURL=chunk-DCTDH77P.cjs.map