@keboola/api-client 40.0.0 → 42.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 (322) hide show
  1. package/API-SURFACE.md +47 -3
  2. package/CHANGELOG.md +167 -0
  3. package/README.md +1 -1
  4. package/dist/{ManagementClientAuthError-DE7lNGZQ.cjs → ManagementClientAuthError-BFZOtLgj.cjs} +2 -2
  5. package/dist/{ManagementClientAuthError-DE7lNGZQ.cjs.map → ManagementClientAuthError-BFZOtLgj.cjs.map} +1 -1
  6. package/dist/{ManagementClientAuthError-H30lti_Q.js → ManagementClientAuthError-DUbXlry2.js} +2 -2
  7. package/dist/{ManagementClientAuthError-H30lti_Q.js.map → ManagementClientAuthError-DUbXlry2.js.map} +1 -1
  8. package/dist/ai/index.cjs +2 -2
  9. package/dist/ai/index.js +2 -2
  10. package/dist/{appLogs-BBkkUOW1.js → appLogs-DfkItQCO.js} +2 -2
  11. package/dist/{appLogs-BBkkUOW1.js.map → appLogs-DfkItQCO.js.map} +1 -1
  12. package/dist/{appLogs-B9zFJIuy.cjs → appLogs-oZvt59mk.cjs} +2 -2
  13. package/dist/{appLogs-B9zFJIuy.cjs.map → appLogs-oZvt59mk.cjs.map} +1 -1
  14. package/dist/apps/index.cjs +3 -3
  15. package/dist/apps/index.js +3 -3
  16. package/dist/assets/index.cjs +1 -1
  17. package/dist/assets/index.js +1 -1
  18. package/dist/auth/index.cjs +1 -1
  19. package/dist/auth/index.d.cts +1 -1
  20. package/dist/auth/index.d.ts +1 -1
  21. package/dist/auth/index.js +1 -1
  22. package/dist/auth/types.d.cts +2 -2
  23. package/dist/auth/types.d.ts +2 -2
  24. package/dist/{auth-DworfoPy.js → auth-DUHTJTwS.js} +2 -2
  25. package/dist/{auth-DworfoPy.js.map → auth-DUHTJTwS.js.map} +1 -1
  26. package/dist/{auth-Dm0F2rOh.cjs → auth-zfI04oj7.cjs} +2 -2
  27. package/dist/{auth-Dm0F2rOh.cjs.map → auth-zfI04oj7.cjs.map} +1 -1
  28. package/dist/{authClient-BmuUo0J4.cjs → authClient-BxqRGR5c.cjs} +39 -5
  29. package/dist/authClient-BxqRGR5c.cjs.map +1 -0
  30. package/dist/{authClient-vEt_7_uk.d.cts → authClient-CBVAT3v9.d.cts} +49 -2
  31. package/dist/{authClient-CHXWJ9x3.d.ts → authClient-CRumc934.d.ts} +49 -2
  32. package/dist/{authClient-CgcDGd30.js → authClient-CX4buUMc.js} +39 -5
  33. package/dist/authClient-CX4buUMc.js.map +1 -0
  34. package/dist/billing/index.cjs +2 -2
  35. package/dist/billing/index.js +2 -2
  36. package/dist/businessWorkspaceApi/index.cjs +1 -1
  37. package/dist/businessWorkspaceApi/index.js +1 -1
  38. package/dist/{businessWorkspaceApi-BLUdefRF.js → businessWorkspaceApi-DFky1k61.js} +3 -3
  39. package/dist/{businessWorkspaceApi-BLUdefRF.js.map → businessWorkspaceApi-DFky1k61.js.map} +1 -1
  40. package/dist/{businessWorkspaceApi-6tCDdpnY.cjs → businessWorkspaceApi-Uzqu0PJM.cjs} +3 -3
  41. package/dist/{businessWorkspaceApi-6tCDdpnY.cjs.map → businessWorkspaceApi-Uzqu0PJM.cjs.map} +1 -1
  42. package/dist/chat/index.cjs +3 -3
  43. package/dist/chat/index.js +3 -3
  44. package/dist/{componentId-57vjsa2i.cjs → componentId-D4jp6a13.cjs} +19 -1
  45. package/dist/componentId-D4jp6a13.cjs.map +1 -0
  46. package/dist/{componentId-C6WZa_R1.js → componentId-DmHwHG5V.js} +19 -1
  47. package/dist/componentId-DmHwHG5V.js.map +1 -0
  48. package/dist/{configurations-IYyOvhI3.cjs → configurations-D_Rbs0Wl.cjs} +2 -2
  49. package/dist/{configurations-IYyOvhI3.cjs.map → configurations-D_Rbs0Wl.cjs.map} +1 -1
  50. package/dist/{configurations-BPKGGy-M.js → configurations-DcpUlC8I.js} +2 -2
  51. package/dist/{configurations-BPKGGy-M.js.map → configurations-DcpUlC8I.js.map} +1 -1
  52. package/dist/constants/index.cjs +1 -1
  53. package/dist/constants/index.d.cts +1 -1
  54. package/dist/constants/index.d.ts +1 -1
  55. package/dist/constants/index.js +1 -1
  56. package/dist/{createFetchClient-Cwp8max9.cjs → createFetchClient-BgihytBn.cjs} +2 -1
  57. package/dist/createFetchClient-BgihytBn.cjs.map +1 -0
  58. package/dist/{createFetchClient-DXHQK63w.js → createFetchClient-cgWkwgAQ.js} +2 -1
  59. package/dist/createFetchClient-cgWkwgAQ.js.map +1 -0
  60. package/dist/{createGenericFetchClient-Dl9cqTvR.cjs → createGenericFetchClient-C7Y0YVfc.cjs} +2 -2
  61. package/dist/{createGenericFetchClient-Dl9cqTvR.cjs.map → createGenericFetchClient-C7Y0YVfc.cjs.map} +1 -1
  62. package/dist/{createGenericFetchClient-Dg1rgzmG.js → createGenericFetchClient-CX9Hn3Aq.js} +2 -2
  63. package/dist/{createGenericFetchClient-Dg1rgzmG.js.map → createGenericFetchClient-CX9Hn3Aq.js.map} +1 -1
  64. package/dist/{createOpenapiFetchClient-DZUOVupy.js → createOpenapiFetchClient-BxcLLU_N.js} +2 -2
  65. package/dist/{createOpenapiFetchClient-DZUOVupy.js.map → createOpenapiFetchClient-BxcLLU_N.js.map} +1 -1
  66. package/dist/{createOpenapiFetchClient-BYqW-9tm.cjs → createOpenapiFetchClient-DY5s-aH6.cjs} +2 -2
  67. package/dist/{createOpenapiFetchClient-BYqW-9tm.cjs.map → createOpenapiFetchClient-DY5s-aH6.cjs.map} +1 -1
  68. package/dist/dataScience/index.cjs +2 -2
  69. package/dist/dataScience/index.js +2 -2
  70. package/dist/{dataScience-B5QxZnvW.cjs → dataScience-BoS8Xfvx.cjs} +5 -5
  71. package/dist/{dataScience-B5QxZnvW.cjs.map → dataScience-BoS8Xfvx.cjs.map} +1 -1
  72. package/dist/{dataScience-OXcwdk1p.js → dataScience-BxRoGfnG.js} +5 -5
  73. package/dist/{dataScience-OXcwdk1p.js.map → dataScience-BxRoGfnG.js.map} +1 -1
  74. package/dist/developerPortal/index.cjs +1 -1
  75. package/dist/developerPortal/index.js +1 -1
  76. package/dist/{developerPortalClient-B1QZ1rYi.js → developerPortalClient-C7s0kpjK.js} +3 -3
  77. package/dist/{developerPortalClient-B1QZ1rYi.js.map → developerPortalClient-C7s0kpjK.js.map} +1 -1
  78. package/dist/{developerPortalClient-CLPpBksD.cjs → developerPortalClient-DFHEsrlt.cjs} +3 -3
  79. package/dist/{developerPortalClient-CLPpBksD.cjs.map → developerPortalClient-DFHEsrlt.cjs.map} +1 -1
  80. package/dist/domain/permissions/index.d.cts +2 -2
  81. package/dist/domain/permissions/index.d.ts +2 -2
  82. package/dist/domain/storageTable/index.cjs +7 -1
  83. package/dist/domain/storageTable/index.d.cts +2 -2
  84. package/dist/domain/storageTable/index.d.ts +2 -2
  85. package/dist/domain/storageTable/index.js +2 -2
  86. package/dist/editor/index.cjs +2 -2
  87. package/dist/editor/index.js +2 -2
  88. package/dist/encryption/index.cjs +1 -1
  89. package/dist/encryption/index.d.cts +1 -1
  90. package/dist/encryption/index.d.ts +1 -1
  91. package/dist/encryption/index.js +1 -1
  92. package/dist/encryption/types.d.cts +1 -1
  93. package/dist/encryption/types.d.ts +1 -1
  94. package/dist/import/index.cjs +1 -1
  95. package/dist/import/index.js +1 -1
  96. package/dist/{import-CNk89mqy.cjs → import-BSYvG3Uy.cjs} +3 -3
  97. package/dist/{import-CNk89mqy.cjs.map → import-BSYvG3Uy.cjs.map} +1 -1
  98. package/dist/{import-DiMQCzLa.js → import-CXBcFVbk.js} +3 -3
  99. package/dist/{import-DiMQCzLa.js.map → import-CXBcFVbk.js.map} +1 -1
  100. package/dist/{index-DCRKjihs.d.ts → index-B03vhWSX.d.ts} +117 -90
  101. package/dist/{index-DXYASsPP.d.cts → index-B2-7WJ-E.d.cts} +599 -78
  102. package/dist/{index-BDZvaRud.d.ts → index-B72LTF-k.d.ts} +6 -3
  103. package/dist/{index-DOAZmWvh.d.cts → index-BMiZx-4_.d.cts} +6 -3
  104. package/dist/{index--ZpnE3YT.d.cts → index-BUsLHNOA.d.cts} +2 -2
  105. package/dist/{index-D7-o-oGa.d.ts → index-CBWfpd-0.d.ts} +2 -2
  106. package/dist/index-CGCXR_6Q.d.ts +273 -0
  107. package/dist/{index-Cvbjp3jx.d.cts → index-CKENwClW.d.cts} +4 -4
  108. package/dist/{index-BkqackZf.d.ts → index-CpE_NWuq.d.ts} +599 -78
  109. package/dist/{index-DnQTuc6t.d.ts → index-Cw-d6vV3.d.ts} +4 -4
  110. package/dist/{index-ByRpNVcs.d.cts → index-D3HFMfJJ.d.cts} +117 -90
  111. package/dist/index-DINB7vsV.d.cts +273 -0
  112. package/dist/{index-C8gRRWHL.d.cts → index-DeQDdut6.d.cts} +19 -1
  113. package/dist/{index-C8gRRWHL.d.ts → index-DeQDdut6.d.ts} +19 -1
  114. package/dist/{index-Qb7X6-ph.d.ts → index-DwM1EpnZ.d.ts} +12 -2
  115. package/dist/{index-CXcWpZQ2.d.ts → index-P1vR966i.d.cts} +74 -2
  116. package/dist/{index-CXcWpZQ2.d.cts → index-P1vR966i.d.ts} +74 -2
  117. package/dist/{index-DNThyEej.d.cts → index-VnJCp8IL.d.cts} +12 -2
  118. package/dist/index.cjs +65 -39
  119. package/dist/index.cjs.map +1 -1
  120. package/dist/index.d.cts +3 -3
  121. package/dist/index.d.ts +3 -3
  122. package/dist/index.js +65 -40
  123. package/dist/index.js.map +1 -1
  124. package/dist/{isLoginPageRedirect-XPwAOKK3.js → isLoginPageRedirect-CsjF95_P.js} +2 -2
  125. package/dist/{isLoginPageRedirect-XPwAOKK3.js.map → isLoginPageRedirect-CsjF95_P.js.map} +1 -1
  126. package/dist/{isLoginPageRedirect-jQHiLrG7.cjs → isLoginPageRedirect-c451CoWW.cjs} +2 -2
  127. package/dist/{isLoginPageRedirect-jQHiLrG7.cjs.map → isLoginPageRedirect-c451CoWW.cjs.map} +1 -1
  128. package/dist/kaiAgent/index.cjs +1 -1
  129. package/dist/kaiAgent/index.d.cts +2 -2
  130. package/dist/kaiAgent/index.d.ts +2 -2
  131. package/dist/kaiAgent/index.js +1 -1
  132. package/dist/{kaiAgent-QNoeVKPs.cjs → kaiAgent-ph4DRKlT.cjs} +21 -5
  133. package/dist/kaiAgent-ph4DRKlT.cjs.map +1 -0
  134. package/dist/{kaiAgent-Dp20HLTh.js → kaiAgent-xBpUwLeQ.js} +21 -5
  135. package/dist/kaiAgent-xBpUwLeQ.js.map +1 -0
  136. package/dist/{kaiMemory-D0Y_16U4.js → kaiMemory-BAniZZAN.js} +2 -2
  137. package/dist/{kaiMemory-D0Y_16U4.js.map → kaiMemory-BAniZZAN.js.map} +1 -1
  138. package/dist/{kaiMemory-CClSPInt.cjs → kaiMemory-U0DG-CpY.cjs} +2 -2
  139. package/dist/{kaiMemory-CClSPInt.cjs.map → kaiMemory-U0DG-CpY.cjs.map} +1 -1
  140. package/dist/management/index.cjs +1 -1
  141. package/dist/management/index.d.cts +1 -1
  142. package/dist/management/index.d.ts +1 -1
  143. package/dist/management/index.js +1 -1
  144. package/dist/management/types.d.cts +2 -2
  145. package/dist/management/types.d.ts +2 -2
  146. package/dist/{management-CCY0IYnq.cjs → management-5597SiC7.cjs} +79 -11
  147. package/dist/management-5597SiC7.cjs.map +1 -0
  148. package/dist/{management-DvmPiG64.js → management-D46KlXts.js} +79 -11
  149. package/dist/management-D46KlXts.js.map +1 -0
  150. package/dist/metastore/index.cjs +1 -1
  151. package/dist/metastore/index.d.cts +1 -1
  152. package/dist/metastore/index.d.ts +1 -1
  153. package/dist/metastore/index.js +1 -1
  154. package/dist/metastore/types.d.cts +2 -2
  155. package/dist/metastore/types.d.ts +2 -2
  156. package/dist/{metastore-XtWciCZT.cjs → metastore-DwMFlP2d.cjs} +52 -7
  157. package/dist/metastore-DwMFlP2d.cjs.map +1 -0
  158. package/dist/{metastore-BycJxe7A.js → metastore-_OskcLGz.js} +52 -7
  159. package/dist/metastore-_OskcLGz.js.map +1 -0
  160. package/dist/microsoftGraph/index.cjs +2 -2
  161. package/dist/microsoftGraph/index.js +2 -2
  162. package/dist/{middleware-CBwrtgQd.js → middleware-Drbo_UIZ.js} +2 -2
  163. package/dist/{middleware-CBwrtgQd.js.map → middleware-Drbo_UIZ.js.map} +1 -1
  164. package/dist/{middleware-IjYx3d5u.cjs → middleware-xhg2r2fE.cjs} +2 -2
  165. package/dist/{middleware-IjYx3d5u.cjs.map → middleware-xhg2r2fE.cjs.map} +1 -1
  166. package/dist/notifications/index.cjs +3 -3
  167. package/dist/notifications/index.js +3 -3
  168. package/dist/oauth/index.cjs +1 -1
  169. package/dist/oauth/index.js +1 -1
  170. package/dist/{oauth--2p8jkJf.cjs → oauth-L0Uic3YA.cjs} +5 -5
  171. package/dist/{oauth--2p8jkJf.cjs.map → oauth-L0Uic3YA.cjs.map} +1 -1
  172. package/dist/{oauth-l5zE39cD.js → oauth-TWwAv-va.js} +5 -5
  173. package/dist/{oauth-l5zE39cD.js.map → oauth-TWwAv-va.js.map} +1 -1
  174. package/dist/omnisearch/index.cjs +2 -2
  175. package/dist/omnisearch/index.js +2 -2
  176. package/dist/{project-cHKuGvqJ.d.cts → project-B8wtlstY.d.cts} +2 -2
  177. package/dist/{project-B15gStbM.d.ts → project-BCc3mpAy.d.ts} +2 -2
  178. package/dist/queryService/index.cjs +1 -1
  179. package/dist/queryService/index.d.cts +1 -1
  180. package/dist/queryService/index.d.ts +1 -1
  181. package/dist/queryService/index.js +1 -1
  182. package/dist/{queryService-CCOYbRbw.js → queryService-CdtogGr7.js} +5 -5
  183. package/dist/{queryService-CCOYbRbw.js.map → queryService-CdtogGr7.js.map} +1 -1
  184. package/dist/{queryService-CQzclHdL.cjs → queryService-Dx6AdxOl.cjs} +5 -5
  185. package/dist/{queryService-CQzclHdL.cjs.map → queryService-Dx6AdxOl.cjs.map} +1 -1
  186. package/dist/queue/index.cjs +1 -1
  187. package/dist/queue/index.d.cts +1 -1
  188. package/dist/queue/index.d.ts +1 -1
  189. package/dist/queue/index.js +1 -1
  190. package/dist/{queue-Cowbg6bR.js → queue-f2xsjy0o.js} +4 -4
  191. package/dist/{queue-Cowbg6bR.js.map → queue-f2xsjy0o.js.map} +1 -1
  192. package/dist/{queue-UG_BWKIC.cjs → queue-wIdnMtaZ.cjs} +4 -4
  193. package/dist/{queue-UG_BWKIC.cjs.map → queue-wIdnMtaZ.cjs.map} +1 -1
  194. package/dist/scheduler/index.cjs +3 -3
  195. package/dist/scheduler/index.js +3 -3
  196. package/dist/sdk/configurations/index.cjs +1 -1
  197. package/dist/sdk/configurations/index.d.cts +4 -4
  198. package/dist/sdk/configurations/index.d.ts +4 -4
  199. package/dist/sdk/configurations/index.js +1 -1
  200. package/dist/sdk/developerPortal/index.cjs +3 -3
  201. package/dist/sdk/developerPortal/index.js +3 -3
  202. package/dist/sdk/kaiMemory/index.cjs +1 -1
  203. package/dist/sdk/kaiMemory/index.d.cts +1 -1
  204. package/dist/sdk/kaiMemory/index.d.ts +1 -1
  205. package/dist/sdk/kaiMemory/index.js +1 -1
  206. package/dist/sdk/kaiMemory/types.d.cts +1 -1
  207. package/dist/sdk/kaiMemory/types.d.ts +1 -1
  208. package/dist/sdk/queryService/index.d.cts +1 -1
  209. package/dist/sdk/queryService/index.d.ts +1 -1
  210. package/dist/sdk/semanticLayer/index.cjs +2 -1
  211. package/dist/sdk/semanticLayer/index.d.cts +10 -3
  212. package/dist/sdk/semanticLayer/index.d.ts +10 -3
  213. package/dist/sdk/semanticLayer/index.js +2 -2
  214. package/dist/sdk/semanticLayer/types.d.cts +2 -2
  215. package/dist/sdk/semanticLayer/types.d.ts +2 -2
  216. package/dist/sdk/storage/index.cjs +12 -24
  217. package/dist/sdk/storage/index.cjs.map +1 -1
  218. package/dist/sdk/storage/index.d.cts +1 -1
  219. package/dist/sdk/storage/index.d.ts +1 -1
  220. package/dist/sdk/storage/index.js +12 -24
  221. package/dist/sdk/storage/index.js.map +1 -1
  222. package/dist/sdk/tag/index.d.cts +2 -2
  223. package/dist/sdk/tag/index.d.ts +2 -2
  224. package/dist/sdk/tag/types.d.cts +1 -1
  225. package/dist/sdk/tag/types.d.ts +1 -1
  226. package/dist/sdk/vault/index.d.cts +1 -1
  227. package/dist/sdk/vault/index.d.ts +1 -1
  228. package/dist/{semanticLayer-CKDVkU56.cjs → semanticLayer-D3NDh_QH.cjs} +115 -20
  229. package/dist/semanticLayer-D3NDh_QH.cjs.map +1 -0
  230. package/dist/{semanticLayer-pYy082Ju.js → semanticLayer-Ddg0LSnt.js} +110 -21
  231. package/dist/semanticLayer-Ddg0LSnt.js.map +1 -0
  232. package/dist/status/index.cjs +1 -1
  233. package/dist/status/index.js +1 -1
  234. package/dist/storage/index.cjs +4 -4
  235. package/dist/storage/index.d.cts +2 -2
  236. package/dist/storage/index.d.ts +2 -2
  237. package/dist/storage/index.js +4 -4
  238. package/dist/storage/types.d.cts +3 -3
  239. package/dist/storage/types.d.ts +3 -3
  240. package/dist/{storage-CZQHZcXG.js → storage-BkdjgtCU.js} +272 -134
  241. package/dist/storage-BkdjgtCU.js.map +1 -0
  242. package/dist/{storage-JinL1y1s.cjs → storage-CXQTTVXl.cjs} +272 -134
  243. package/dist/storage-CXQTTVXl.cjs.map +1 -0
  244. package/dist/{storageTable-C9crh4Ef.cjs → storageTable-BNOR2FCh.cjs} +137 -5
  245. package/dist/storageTable-BNOR2FCh.cjs.map +1 -0
  246. package/dist/{storageTable-DslXtqNL.js → storageTable-BldTNyEk.js} +102 -6
  247. package/dist/storageTable-BldTNyEk.js.map +1 -0
  248. package/dist/stream/index.cjs +3 -3
  249. package/dist/stream/index.js +3 -3
  250. package/dist/syncActions/index.cjs +4 -1
  251. package/dist/syncActions/index.d.cts +3 -2
  252. package/dist/syncActions/index.d.ts +3 -2
  253. package/dist/syncActions/index.js +2 -2
  254. package/dist/syncActions/types.d.cts +2 -2
  255. package/dist/syncActions/types.d.ts +2 -2
  256. package/dist/syncActions-BQ8kMgL6.js +1191 -0
  257. package/dist/syncActions-BQ8kMgL6.js.map +1 -0
  258. package/dist/syncActions-DyxNmbUR.cjs +1216 -0
  259. package/dist/syncActions-DyxNmbUR.cjs.map +1 -0
  260. package/dist/telemetry/index.cjs +3 -3
  261. package/dist/telemetry/index.js +3 -3
  262. package/dist/{types-DWiLcrxt.d.cts → types-04GTqleJ.d.cts} +3 -3
  263. package/dist/{types-DRCMBt89.d.ts → types-2Do0DZ60.d.ts} +3 -3
  264. package/dist/{types-Dtuvhm3K.d.cts → types-BWmLo73i.d.cts} +749 -186
  265. package/dist/types-BaSlU0uo.d.ts +1313 -0
  266. package/dist/{types-DEzW1CfI.d.cts → types-BgHtMe8s.d.cts} +3 -3
  267. package/dist/{types-BiMahEK8.d.cts → types-BgVt8SUY.d.cts} +126 -62
  268. package/dist/{types-BS4jwuMi.d.ts → types-BhEx9iRx.d.ts} +3068 -621
  269. package/dist/{types-CMzQSHAQ.d.cts → types-BzPuxmaR.d.cts} +3 -3
  270. package/dist/{types-CKmTZSPG.d.ts → types-C0rVtqz2.d.ts} +126 -62
  271. package/dist/{types-Bl03Cg2n.d.cts → types-CAAgCRmE.d.cts} +31 -5
  272. package/dist/{types-BIECJYun.d.ts → types-CN6huo55.d.ts} +406 -5
  273. package/dist/{types-Cg14ncdV.d.ts → types-CV7jmgtX.d.ts} +3 -3
  274. package/dist/types-CcYxlqtB.d.cts +1313 -0
  275. package/dist/{types-FwRmjsNN.d.ts → types-CigD_EF5.d.ts} +18 -6
  276. package/dist/{types-B_iLJlp4.d.ts → types-CwZgZqrA.d.ts} +31 -5
  277. package/dist/{types-BTK7Bv3n.d.cts → types-DgPt4LY_.d.cts} +406 -5
  278. package/dist/{types-bc-4z_gc.d.cts → types-DyArI_Jq.d.cts} +18 -6
  279. package/dist/{types-DekYAlA-.d.ts → types-QSchmyvO.d.ts} +3 -3
  280. package/dist/{types-DKc1gmd9.d.ts → types-R3AFJD6r.d.ts} +749 -186
  281. package/dist/{types-DDOa07rU.d.cts → types-sV9OaqTI.d.cts} +3068 -621
  282. package/dist/{validateConnectionStatus-BEYkQpu9.cjs → validateConnectionStatus-Ca1uEizv.cjs} +3 -3
  283. package/dist/{validateConnectionStatus-BEYkQpu9.cjs.map → validateConnectionStatus-Ca1uEizv.cjs.map} +1 -1
  284. package/dist/{validateConnectionStatus-BEGu8wXT.js → validateConnectionStatus-gFsBi5FV.js} +3 -3
  285. package/dist/{validateConnectionStatus-BEGu8wXT.js.map → validateConnectionStatus-gFsBi5FV.js.map} +1 -1
  286. package/dist/vault/index.cjs +4 -4
  287. package/dist/vault/index.js +4 -4
  288. package/package.json +7 -7
  289. package/surface/auth.md +7 -0
  290. package/surface/kaiAgent.md +4 -2
  291. package/surface/management.md +28 -13
  292. package/surface/metastore.md +4 -1
  293. package/surface/queue.md +1 -1
  294. package/surface/sdk.md +13 -8
  295. package/surface/storage.md +27 -24
  296. package/surface/syncActions.md +55 -1
  297. package/dist/authClient-BmuUo0J4.cjs.map +0 -1
  298. package/dist/authClient-CgcDGd30.js.map +0 -1
  299. package/dist/componentId-57vjsa2i.cjs.map +0 -1
  300. package/dist/componentId-C6WZa_R1.js.map +0 -1
  301. package/dist/createFetchClient-Cwp8max9.cjs.map +0 -1
  302. package/dist/createFetchClient-DXHQK63w.js.map +0 -1
  303. package/dist/index-CPu4Nezo.d.cts +0 -90
  304. package/dist/index-Dazy-meb.d.ts +0 -90
  305. package/dist/kaiAgent-Dp20HLTh.js.map +0 -1
  306. package/dist/kaiAgent-QNoeVKPs.cjs.map +0 -1
  307. package/dist/management-CCY0IYnq.cjs.map +0 -1
  308. package/dist/management-DvmPiG64.js.map +0 -1
  309. package/dist/metastore-BycJxe7A.js.map +0 -1
  310. package/dist/metastore-XtWciCZT.cjs.map +0 -1
  311. package/dist/semanticLayer-CKDVkU56.cjs.map +0 -1
  312. package/dist/semanticLayer-pYy082Ju.js.map +0 -1
  313. package/dist/storage-CZQHZcXG.js.map +0 -1
  314. package/dist/storage-JinL1y1s.cjs.map +0 -1
  315. package/dist/storageTable-C9crh4Ef.cjs.map +0 -1
  316. package/dist/storageTable-DslXtqNL.js.map +0 -1
  317. package/dist/syncActions-BmmoqZO_.js +0 -516
  318. package/dist/syncActions-BmmoqZO_.js.map +0 -1
  319. package/dist/syncActions-CtcLGQiy.cjs +0 -523
  320. package/dist/syncActions-CtcLGQiy.cjs.map +0 -1
  321. package/dist/types-BYM9Ptz5.d.ts +0 -671
  322. package/dist/types-CFeZCQ9p.d.cts +0 -671
@@ -1,516 +0,0 @@
1
- import { c as defaultValidateStatus } from "./createFetchClient-DXHQK63w.js";
2
- import { t as SyncActionError } from "./SyncActionError-CoZFsdUk.js";
3
- import { i as parseOrThrow } from "./ValidationError-DjhtNMfZ.js";
4
- import { t as createGenericFetchClient } from "./createGenericFetchClient-Dg1rgzmG.js";
5
- import { t as createOpenapiFetchClient } from "./createOpenapiFetchClient-DZUOVupy.js";
6
- import { t as createAuthHeaders } from "./auth-DworfoPy.js";
7
- import { t as ComponentId } from "./componentId-C6WZa_R1.js";
8
- import * as z$1 from "zod";
9
- //#region src/clients/syncActions/utils/response.ts
10
- const asErrorBody = (data) => typeof data === "object" && data !== null ? data : null;
11
- const asString = (value) => typeof value === "string" && value ? value : void 0;
12
- const asNumber = (value) => typeof value === "number" ? value : void 0;
13
- /**
14
- * Fails a sync action on a non-2xx, or on a 2xx whose body has `status: 'error'`.
15
- *
16
- * - Throws: `coreFetch` only rethrows a returned `ApiError`.
17
- * - `SyncActionError` is not an `ApiError`, so retry / network-error handling skips it.
18
- */
19
- const syncActionValidateStatus = (apiResponse) => {
20
- const body = asErrorBody(apiResponse.data);
21
- if (body?.status === "error") throw new SyncActionError(asString(body.message) ?? asString(body.error) ?? apiResponse.response.statusText, {
22
- exceptionId: asString(body.exceptionId),
23
- code: asNumber(body.code),
24
- data: apiResponse.data
25
- });
26
- return defaultValidateStatus(apiResponse);
27
- };
28
- //#endregion
29
- //#region src/clients/syncActions/constants.ts
30
- const SyncAction = {
31
- DATA_APP_GIT_REPOSITORY: "git-repository",
32
- DATA_APP_ENTRYPOINTS: "data-app-entrypoints",
33
- DBT_COMPILE: "dbtCompile",
34
- DBT_RUN_RESULTS: "dbtRunResults",
35
- GIT_REPOSITORY: "gitRepository",
36
- ENROLL_MFA: "enrollMFA",
37
- FLOW_MIGRATION_PREVIEW: "preview",
38
- FLOW_MIGRATION_VALIDATE: "validate",
39
- LIST_ACTORS: "listActors",
40
- LIST_TASKS: "listTasks",
41
- TEST_LOOKER_CREDENTIALS: "testLookerCredentials",
42
- SSH_KEYS_GENERATE: "generate"
43
- };
44
- //#endregion
45
- //#region src/clients/syncActions/schemas.ts
46
- /** The Keboola-side context every sync action carries; namespaces extend it with their own fields. */
47
- const syncActionContextSchema = z$1.object({
48
- /** A numeric id or `"default"`; required so requests are self-describing. */
49
- branchId: z$1.string().min(1, "Required"),
50
- /** Leave undefined to run the published version (not Docker `latest`); set only to pin a build. */
51
- tag: z$1.string().optional(),
52
- mode: z$1.enum(["run", "debug"]).optional()
53
- });
54
- /** The `/actions` body; each namespace validates its own `configData` shape. */
55
- const syncActionBodySchema = syncActionContextSchema.extend({
56
- componentId: z$1.string().min(1, "Required"),
57
- action: z$1.string().min(1, "Required"),
58
- configData: z$1.record(z$1.string(), z$1.unknown())
59
- });
60
- //#endregion
61
- //#region src/clients/syncActions/apify/schemas.ts
62
- const apifyObjectsInputSchema = syncActionContextSchema.extend({ "#token": z$1.string().min(1, "Required") });
63
- const apifyObjectsSchema = z$1.array(z$1.object({
64
- id: z$1.string(),
65
- name: z$1.string()
66
- }));
67
- //#endregion
68
- //#region src/clients/syncActions/apify/utils.ts
69
- /**
70
- * A slow Apify account makes the component answer `{ timeout: true }` on a 200 instead of the list —
71
- * a failure only this action knows how to spot, so it is checked before deferring to the shared
72
- * validation.
73
- */
74
- const apifyValidateStatus = (apiResponse) => {
75
- const data = apiResponse.data;
76
- if (typeof data === "object" && data !== null && "timeout" in data && data.timeout) throw new SyncActionError("Timed out while loading data from Apify.", { data });
77
- return syncActionValidateStatus(apiResponse);
78
- };
79
- //#endregion
80
- //#region src/clients/syncActions/apify/apify.ts
81
- const createApify = (sendSyncAction) => {
82
- const _getObjects = async (action, input, signal) => {
83
- const { "#token": token, ...context } = parseOrThrow(apifyObjectsInputSchema, input);
84
- const data = await sendSyncAction({
85
- ...context,
86
- action,
87
- componentId: ComponentId.APIFY,
88
- configData: { parameters: { "#token": token } }
89
- }, {
90
- signal,
91
- validateStatus: apifyValidateStatus
92
- });
93
- return parseOrThrow(apifyObjectsSchema, data);
94
- };
95
- const getActors = (input, signal) => {
96
- return _getObjects(SyncAction.LIST_ACTORS, input, signal);
97
- };
98
- const getTasks = (input, signal) => {
99
- return _getObjects(SyncAction.LIST_TASKS, input, signal);
100
- };
101
- return {
102
- getActors,
103
- getTasks
104
- };
105
- };
106
- //#endregion
107
- //#region src/clients/syncActions/dbt/schemas.ts
108
- /** `componentId` is a plain string: every dbt transformation serves the same actions, so it selects nothing. */
109
- const dbtActionInputSchema = syncActionContextSchema.extend({
110
- componentId: z$1.string().min(1, "Required"),
111
- configId: z$1.string().min(1, "Required"),
112
- artifacts: z$1.record(z$1.string(), z$1.unknown()).optional()
113
- });
114
- /**
115
- * Model file name (`orders.sql`) → compiled SQL, in the component's key order.
116
- *
117
- * - A never-run configuration fails with a `SyncActionError`, not an empty payload.
118
- * - A missing key defaults to empty; a present key of the wrong shape still fails.
119
- */
120
- const dbtCompiledSchema = z$1.object({ compiled: z$1.record(z$1.string(), z$1.string()).default({}) }).transform(({ compiled }) => compiled);
121
- /** `"Thread-1"` → `1`; an unparseable value falls back to `0` rather than failing the timeline. */
122
- const dbtThreadSchema = z$1.string().transform((thread) => Number.parseInt(thread.replace(/^Thread-/, ""), 10)).pipe(z$1.number().int().nonnegative()).catch(0);
123
- /** Omits `status` and `dependsOn`. */
124
- const dbtModelTimingSchema = z$1.object({
125
- id: z$1.string(),
126
- name: z$1.string(),
127
- thread: dbtThreadSchema,
128
- /** ISO timestamps, left unparsed. */
129
- timeStarted: z$1.string(),
130
- timeCompleted: z$1.string()
131
- });
132
- /** A missing key defaults to empty, as in `dbtCompiledSchema`. */
133
- const dbtRunResultsSchema = z$1.object({ modelTiming: z$1.array(dbtModelTimingSchema).default([]) }).transform(({ modelTiming }) => modelTiming);
134
- //#endregion
135
- //#region src/clients/syncActions/dbt/utils.ts
136
- /**
137
- * Both dbt artifact actions read the *stored* configuration — `configId` is what they resolve it by,
138
- * so the payload carries no settings of its own. `artifacts` is the configuration's own artifacts
139
- * section, passed through untouched: it selects which run's artifacts the component picks up, and
140
- * omitting it leaves the component on its default (the latest run).
141
- */
142
- const buildDbtActionConfigData = ({ configId, artifacts }) => ({
143
- parameters: { configId },
144
- ...artifacts && { artifacts }
145
- });
146
- //#endregion
147
- //#region src/clients/syncActions/dbt/dbt.ts
148
- /** The dbt transformations' artifact actions — both read what the *last run* left behind. */
149
- const createDbt = (sendSyncAction) => {
150
- const sendDbtAction = (action, input, signal) => {
151
- const { componentId, configId, artifacts, ...context } = parseOrThrow(dbtActionInputSchema, input);
152
- return sendSyncAction({
153
- ...context,
154
- componentId,
155
- action,
156
- configData: buildDbtActionConfigData({
157
- configId,
158
- artifacts
159
- })
160
- }, { signal });
161
- };
162
- /** The compiled SQL of every model in the configuration. */
163
- const compile = async (input, signal) => {
164
- const data = await sendDbtAction(SyncAction.DBT_COMPILE, input, signal);
165
- return parseOrThrow(dbtCompiledSchema, data);
166
- };
167
- /** When each model of the last run started and finished, and on which worker. */
168
- const runResults = async (input, signal) => {
169
- const data = await sendDbtAction(SyncAction.DBT_RUN_RESULTS, input, signal);
170
- return parseOrThrow(dbtRunResultsSchema, data);
171
- };
172
- return {
173
- compile,
174
- runResults
175
- };
176
- };
177
- //#endregion
178
- //#region src/clients/syncActions/flowMigration/schemas.ts
179
- const flowMigrationInputSchema = syncActionContextSchema.extend({ orchestrationIds: z$1.array(z$1.string().min(1, "Required")) });
180
- const flowMigrationValidationResultSchema = z$1.object({
181
- orchestrationId: z$1.string(),
182
- orchestrationName: z$1.string(),
183
- valid: z$1.boolean(),
184
- issues: z$1.array(z$1.string())
185
- });
186
- /** The orchestration's configuration as the flow it would become; extra keys pass through. */
187
- const flowMigrationMigratedConfigurationSchema = z$1.looseObject({
188
- phases: z$1.array(z$1.unknown()).optional(),
189
- tasks: z$1.array(z$1.unknown()).optional(),
190
- parameters: z$1.unknown().optional()
191
- });
192
- /**
193
- * One orchestration's dry-run outcome.
194
- *
195
- * - `skipped`: it failed validation; `issues` says why.
196
- * - `failed`: building the flow threw; `error` carries the message.
197
- */
198
- const flowMigrationPreviewResultSchema = z$1.object({
199
- orchestrationId: z$1.string(),
200
- orchestrationName: z$1.string(),
201
- status: z$1.enum([
202
- "dry-run",
203
- "skipped",
204
- "failed"
205
- ]),
206
- issues: z$1.array(z$1.string()),
207
- changes: z$1.array(z$1.string()),
208
- error: z$1.string().optional(),
209
- migratedConfiguration: flowMigrationMigratedConfigurationSchema.optional()
210
- });
211
- const flowMigrationValidationResultsSchema = z$1.array(flowMigrationValidationResultSchema);
212
- const flowMigrationPreviewResultsSchema = z$1.array(flowMigrationPreviewResultSchema);
213
- //#endregion
214
- //#region src/clients/syncActions/flowMigration/flowMigration.ts
215
- /** Orchestration → flow migration checks; one result per requested orchestration. */
216
- const createFlowMigration = (sendSyncAction) => {
217
- const validate = async (input, signal) => {
218
- const { orchestrationIds, ...context } = parseOrThrow(flowMigrationInputSchema, input);
219
- const data = await sendSyncAction({
220
- ...context,
221
- action: SyncAction.FLOW_MIGRATION_VALIDATE,
222
- componentId: ComponentId.FLOW_MIGRATION_TOOL,
223
- configData: { parameters: { orchestrationIds } }
224
- }, { signal });
225
- return parseOrThrow(flowMigrationValidationResultsSchema, data);
226
- };
227
- /** A dry run: nothing is written, and invalid orchestrations come back `skipped`. */
228
- const preview = async (input, signal) => {
229
- const { orchestrationIds, ...context } = parseOrThrow(flowMigrationInputSchema, input);
230
- const data = await sendSyncAction({
231
- ...context,
232
- action: SyncAction.FLOW_MIGRATION_PREVIEW,
233
- componentId: ComponentId.FLOW_MIGRATION_TOOL,
234
- configData: { parameters: {
235
- mode: "config",
236
- orchestrationIds
237
- } }
238
- }, { signal });
239
- return parseOrThrow(flowMigrationPreviewResultsSchema, data);
240
- };
241
- return {
242
- validate,
243
- preview
244
- };
245
- };
246
- //#endregion
247
- //#region src/clients/syncActions/git/constants.ts
248
- /**
249
- * Components whose git repository lives under `parameters.dataApp.git.repository` and that answer to
250
- * the `git-repository` action. They are the only ones serving `data-app-entrypoints`, and the only
251
- * ones accepting an SSH key.
252
- */
253
- const DATA_APP_FAMILY = [ComponentId.DATA_APPS, ComponentId.SANDBOXES];
254
- /**
255
- * Components whose git repository lives under `parameters.git.repo` and that answer to the
256
- * `gitRepository` action. They authenticate over HTTPS with a username and password only.
257
- *
258
- * Deliberately a list rather than "everything else": `listBranches` / `list_branches` /
259
- * `checkBranches` also exist on unrelated third-party components (`kds-team.app-custom-python`,
260
- * `keboola.app-transformation-migration`, `kds-team.app-sox-migration-checker`) under a different
261
- * contract. Those stay on the generic `sendSyncAction` escape hatch.
262
- */
263
- const DBT_FAMILY = [
264
- ComponentId.DBT_TEST_CORE_KEY_PAIR,
265
- ComponentId.DBT_TEST_REMOTE_SNOWFLAKE,
266
- ComponentId.DBT_TRANSFORMATION,
267
- ComponentId.DBT_TRANSFORMATION_LOCAL_BIGQUERY,
268
- ComponentId.DBT_TRANSFORMATION_REMOTE_BIGQUERY,
269
- ComponentId.DBT_TRANSFORMATION_REMOTE_MSSQL,
270
- ComponentId.DBT_TRANSFORMATION_REMOTE_POSTGRESQL,
271
- ComponentId.DBT_TRANSFORMATION_REMOTE_REDSHIFT,
272
- ComponentId.DBT_TRANSFORMATION_REMOTE_SNOWFLAKE
273
- ];
274
- const GIT_FAMILY = [...DATA_APP_FAMILY, ...DBT_FAMILY];
275
- const dataAppIds = new Set(DATA_APP_FAMILY);
276
- const isDataAppFamily = (componentId) => dataAppIds.has(componentId);
277
- //#endregion
278
- //#region src/clients/syncActions/git/schemas.ts
279
- const gitAuthSchema = z$1.discriminatedUnion("type", [
280
- z$1.object({ type: z$1.literal("public") }),
281
- z$1.object({
282
- type: z$1.literal("password"),
283
- username: z$1.string().min(1, "Required"),
284
- "#password": z$1.string().min(1, "Required")
285
- }),
286
- z$1.object({
287
- type: z$1.literal("sshKey"),
288
- /** Ignored by the component: over SSH the user is always `git`. */
289
- username: z$1.string().min(1, "Required").optional(),
290
- "#sshKey": z$1.string().min(1, "Required")
291
- })
292
- ]);
293
- const gitInputSchema = syncActionContextSchema.extend({
294
- repositoryUrl: z$1.string().min(1, "Required"),
295
- auth: gitAuthSchema.default({ type: "public" })
296
- });
297
- /**
298
- * **Takes no `branch` — do not add one.** The component clones with `-b <branch>`, so a stale one
299
- * would fail the branch listing. Zod strips it.
300
- */
301
- const getBranchesInputSchema = gitInputSchema.extend({ componentId: z$1.enum(GIT_FAMILY) }).check((ctx) => {
302
- const { componentId, auth } = ctx.value;
303
- if (auth.type !== "sshKey" || isDataAppFamily(componentId)) return;
304
- ctx.issues.push({
305
- code: "custom",
306
- input: auth,
307
- path: ["auth"],
308
- message: `Component "${componentId}" authenticates with a password, not an SSH key.`
309
- });
310
- });
311
- /** Only the data-app family serves `data-app-entrypoints`. */
312
- const getEntrypointsInputSchema = gitInputSchema.extend({
313
- componentId: z$1.enum(DATA_APP_FAMILY),
314
- /** The *git* branch (not `branchId`); omit for the repository default. `""` normalises to omitted. */
315
- branch: z$1.string().optional().transform((branch) => branch || void 0)
316
- });
317
- /** Only `branch` is load-bearing; the rest falls back to `''` so one bad field can't fail the list. */
318
- const gitBranchSchema = z$1.object({
319
- branch: z$1.string(),
320
- sha: z$1.string().catch(""),
321
- date: z$1.string().catch(""),
322
- comment: z$1.string().catch(""),
323
- author: z$1.object({
324
- name: z$1.string().catch(""),
325
- email: z$1.string().catch("")
326
- }).catch({
327
- name: "",
328
- email: ""
329
- })
330
- });
331
- /** An array, or an index-keyed object with gaps (a server-filtered PHP array). */
332
- const gitBranchListSchema = z$1.union([z$1.array(gitBranchSchema), z$1.record(z$1.string(), gitBranchSchema)]).transform((branches) => Array.isArray(branches) ? branches : Object.values(branches));
333
- /**
334
- * - `repository.branches` is confirmed; the top-level position is accepted but unverified.
335
- * - A response with neither list is rejected, not read as no branches.
336
- */
337
- const gitBranchesSchema = z$1.object({
338
- repository: z$1.object({ branches: gitBranchListSchema.optional() }).optional(),
339
- branches: gitBranchListSchema.optional()
340
- }).check((ctx) => {
341
- if (ctx.value.branches ?? ctx.value.repository?.branches) return;
342
- ctx.issues.push({
343
- code: "custom",
344
- input: ctx.value,
345
- message: "The response carried no branch list."
346
- });
347
- }).transform(({ repository, branches }) => branches ?? repository?.branches ?? []);
348
- const gitEntrypointsSchema = z$1.object({ entrypoints: z$1.array(z$1.string()) });
349
- //#endregion
350
- //#region src/clients/syncActions/git/utils.ts
351
- /** Every variant is already the shape the components read, minus the discriminator. */
352
- const toCredentials = (auth) => {
353
- const { type: _type, ...credentials } = auth;
354
- return credentials;
355
- };
356
- const toRevision = (rev) => rev.revision === "branch" ? { branch: rev.branch } : {};
357
- /** Data apps nest their repository a level deeper, and call the URL `repository`. */
358
- const buildDataAppConfigData = ({ repositoryUrl, auth, ...rev }) => ({ parameters: { dataApp: { git: {
359
- repository: repositoryUrl,
360
- ...toCredentials(auth),
361
- ...toRevision(rev)
362
- } } } });
363
- /** dbt transformations keep the same settings at the top of `parameters`, under `repo`. */
364
- const buildDbtConfigData = ({ repositoryUrl, auth, ...rev }) => ({ parameters: { git: {
365
- repo: repositoryUrl,
366
- ...toCredentials(auth),
367
- ...toRevision(rev)
368
- } } });
369
- //#endregion
370
- //#region src/clients/syncActions/git/git.ts
371
- /**
372
- * Git repository actions, across both component families that serve them — the data apps
373
- * (`git-repository`) and the dbt transformations (`gitRepository`). Which action name and which
374
- * `configData` shape a call uses is resolved from `componentId`; see `./constants`.
375
- */
376
- const createGit = (sendSyncAction) => {
377
- const getBranches = async (input, signal) => {
378
- const { componentId, repositoryUrl, auth, ...context } = parseOrThrow(getBranchesInputSchema, input);
379
- const isDataApp = isDataAppFamily(componentId);
380
- const action = isDataApp ? SyncAction.DATA_APP_GIT_REPOSITORY : SyncAction.GIT_REPOSITORY;
381
- const buildConfigData = isDataApp ? buildDataAppConfigData : buildDbtConfigData;
382
- const data = await sendSyncAction({
383
- ...context,
384
- componentId,
385
- action,
386
- configData: buildConfigData({
387
- repositoryUrl,
388
- auth,
389
- revision: "default"
390
- })
391
- }, { signal });
392
- return parseOrThrow(gitBranchesSchema, data);
393
- };
394
- const getEntrypoints = async (input, signal) => {
395
- const { componentId, repositoryUrl, auth, branch, ...context } = parseOrThrow(getEntrypointsInputSchema, input);
396
- const data = await sendSyncAction({
397
- ...context,
398
- componentId,
399
- action: SyncAction.DATA_APP_ENTRYPOINTS,
400
- configData: buildDataAppConfigData({
401
- repositoryUrl,
402
- auth,
403
- ...branch ? {
404
- revision: "branch",
405
- branch
406
- } : { revision: "default" }
407
- })
408
- }, { signal });
409
- return parseOrThrow(gitEntrypointsSchema, data);
410
- };
411
- return {
412
- getBranches,
413
- getEntrypoints
414
- };
415
- };
416
- //#endregion
417
- //#region src/clients/syncActions/looker/schemas.ts
418
- const testLookerCredentialsInputSchema = syncActionContextSchema.extend({
419
- credentialsId: z$1.string().min(1, "Required"),
420
- "#token": z$1.string().min(1, "Required"),
421
- host: z$1.string().min(1, "Required")
422
- });
423
- /** The component answers with a status envelope only — there is no payload to model. */
424
- const lookerCredentialsResultSchema = z$1.object({
425
- status: z$1.string().optional(),
426
- message: z$1.string().optional()
427
- });
428
- //#endregion
429
- //#region src/clients/syncActions/looker/looker.ts
430
- const createLooker = (sendSyncAction) => {
431
- /** Registers the project's Looker credentials; throws `SyncActionError` when Looker rejects them. */
432
- const testCredentials = async (input, signal) => {
433
- const { credentialsId, "#token": token, host, ...context } = parseOrThrow(testLookerCredentialsInputSchema, input);
434
- const data = await sendSyncAction({
435
- ...context,
436
- action: SyncAction.TEST_LOOKER_CREDENTIALS,
437
- componentId: ComponentId.WR_LOOKER_V2,
438
- configData: { parameters: { looker: {
439
- credentialsId,
440
- "#token": token,
441
- host
442
- } } }
443
- }, { signal });
444
- return parseOrThrow(lookerCredentialsResultSchema, data);
445
- };
446
- return { testCredentials };
447
- };
448
- //#endregion
449
- //#region src/clients/syncActions/sshKeys/schemas.ts
450
- const sshKeyPairSchema = z$1.object({
451
- status: z$1.literal("success"),
452
- public: z$1.string(),
453
- private: z$1.string()
454
- });
455
- //#endregion
456
- //#region src/clients/syncActions/sshKeys/sshKeys.ts
457
- const createSshKeys = (sendSyncAction) => {
458
- /** Generates a new 4096-bit RSA key pair; the component keeps no copy. */
459
- const generate = async (input, signal) => {
460
- const data = await sendSyncAction({
461
- ...parseOrThrow(syncActionContextSchema, input),
462
- action: SyncAction.SSH_KEYS_GENERATE,
463
- componentId: ComponentId.SSH_KEYGEN_V2,
464
- configData: {}
465
- }, { signal });
466
- return parseOrThrow(sshKeyPairSchema, data);
467
- };
468
- return { generate };
469
- };
470
- //#endregion
471
- //#region src/clients/syncActions/syncActionsClient.ts
472
- const createSendSyncAction = (client) => {
473
- return async (body, options = {}) => {
474
- const { data } = await client.post("/actions", { body: parseOrThrow(syncActionBodySchema, body) }, options);
475
- return data;
476
- };
477
- };
478
- const createSyncActionsClient = ({ baseUrl, middlewares, auth }) => {
479
- const client = createOpenapiFetchClient({
480
- baseUrl,
481
- middlewares,
482
- headers: createAuthHeaders(auth),
483
- validateStatus: syncActionValidateStatus
484
- });
485
- const genericClient = createGenericFetchClient({
486
- baseUrl,
487
- middlewares
488
- });
489
- const sendSyncAction = createSendSyncAction(client);
490
- const enrollMFA = ({ email, ...rest }, signal) => {
491
- return sendSyncAction({
492
- ...rest,
493
- action: SyncAction.ENROLL_MFA,
494
- configData: { parameters: { user: { email } } }
495
- }, { signal });
496
- };
497
- const healthCheck = async (signal) => {
498
- const { data } = await genericClient.get("/health-check", {}, { signal });
499
- return data;
500
- };
501
- return {
502
- healthCheck,
503
- sendSyncAction,
504
- enrollMFA,
505
- apify: createApify(sendSyncAction),
506
- dbt: createDbt(sendSyncAction),
507
- flowMigration: createFlowMigration(sendSyncAction),
508
- git: createGit(sendSyncAction),
509
- looker: createLooker(sendSyncAction),
510
- sshKeys: createSshKeys(sendSyncAction)
511
- };
512
- };
513
- //#endregion
514
- export { createSyncActionsClient as t };
515
-
516
- //# sourceMappingURL=syncActions-BmmoqZO_.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"syncActions-BmmoqZO_.js","names":["z","z","z","z","z","z","z"],"sources":["../src/clients/syncActions/utils/response.ts","../src/clients/syncActions/constants.ts","../src/clients/syncActions/schemas.ts","../src/clients/syncActions/apify/schemas.ts","../src/clients/syncActions/apify/utils.ts","../src/clients/syncActions/apify/apify.ts","../src/clients/syncActions/dbt/schemas.ts","../src/clients/syncActions/dbt/utils.ts","../src/clients/syncActions/dbt/dbt.ts","../src/clients/syncActions/flowMigration/schemas.ts","../src/clients/syncActions/flowMigration/flowMigration.ts","../src/clients/syncActions/git/constants.ts","../src/clients/syncActions/git/schemas.ts","../src/clients/syncActions/git/utils.ts","../src/clients/syncActions/git/git.ts","../src/clients/syncActions/looker/schemas.ts","../src/clients/syncActions/looker/looker.ts","../src/clients/syncActions/sshKeys/schemas.ts","../src/clients/syncActions/sshKeys/sshKeys.ts","../src/clients/syncActions/syncActionsClient.ts"],"sourcesContent":["import { SyncActionError } from '../../../errors';\nimport type { ValidateStatusFn } from '../../../fetchClient';\nimport { defaultValidateStatus } from '../../../fetchClient';\n\ntype SyncActionErrorBody = {\n status?: unknown;\n message?: unknown;\n error?: unknown;\n exceptionId?: unknown;\n code?: unknown;\n};\n\nconst asErrorBody = (data: unknown): SyncActionErrorBody | null =>\n typeof data === 'object' && data !== null ? (data as SyncActionErrorBody) : null;\n\nconst asString = (value: unknown) => (typeof value === 'string' && value ? value : undefined);\nconst asNumber = (value: unknown) => (typeof value === 'number' ? value : undefined);\n\n/**\n * Fails a sync action on a non-2xx, or on a 2xx whose body has `status: 'error'`.\n *\n * - Throws: `coreFetch` only rethrows a returned `ApiError`.\n * - `SyncActionError` is not an `ApiError`, so retry / network-error handling skips it.\n */\nexport const syncActionValidateStatus: ValidateStatusFn = (apiResponse) => {\n const body = asErrorBody(apiResponse.data);\n\n if (body?.status === 'error') {\n throw new SyncActionError(\n asString(body.message) ?? asString(body.error) ?? apiResponse.response.statusText,\n {\n exceptionId: asString(body.exceptionId),\n code: asNumber(body.code),\n data: apiResponse.data,\n },\n );\n }\n\n return defaultValidateStatus(apiResponse);\n};\n","export const SyncAction = {\n DATA_APP_GIT_REPOSITORY: 'git-repository',\n DATA_APP_ENTRYPOINTS: 'data-app-entrypoints',\n DBT_COMPILE: 'dbtCompile',\n DBT_RUN_RESULTS: 'dbtRunResults',\n GIT_REPOSITORY: 'gitRepository',\n ENROLL_MFA: 'enrollMFA',\n FLOW_MIGRATION_PREVIEW: 'preview',\n FLOW_MIGRATION_VALIDATE: 'validate',\n LIST_ACTORS: 'listActors',\n LIST_TASKS: 'listTasks',\n TEST_LOOKER_CREDENTIALS: 'testLookerCredentials',\n SSH_KEYS_GENERATE: 'generate',\n};\n","import * as z from 'zod';\n\n/** The Keboola-side context every sync action carries; namespaces extend it with their own fields. */\nexport const syncActionContextSchema = z.object({\n /** A numeric id or `\"default\"`; required so requests are self-describing. */\n branchId: z.string().min(1, 'Required'),\n /** Leave undefined to run the published version (not Docker `latest`); set only to pin a build. */\n tag: z.string().optional(),\n mode: z.enum(['run', 'debug']).optional(),\n});\n\n/** The `/actions` body; each namespace validates its own `configData` shape. */\nexport const syncActionBodySchema = syncActionContextSchema.extend({\n componentId: z.string().min(1, 'Required'),\n action: z.string().min(1, 'Required'),\n configData: z.record(z.string(), z.unknown()),\n});\n\nexport type SyncActionContext = z.infer<typeof syncActionContextSchema>;\nexport type SyncActionBody = z.infer<typeof syncActionBodySchema>;\n","import * as z from 'zod';\n\nimport { syncActionContextSchema } from '../schemas';\n\nexport const apifyObjectsInputSchema = syncActionContextSchema.extend({\n '#token': z.string().min(1, 'Required'),\n});\n\nexport const apifyObjectsSchema = z.array(\n z.object({\n id: z.string(),\n name: z.string(),\n }),\n);\n\nexport type ApifyObjectsInput = z.infer<typeof apifyObjectsInputSchema>;\n\nexport type ApifyObject = z.infer<typeof apifyObjectsSchema>[number];\n","import { SyncActionError } from '../../../errors';\nimport type { ValidateStatusFn } from '../../../fetchClient';\nimport { syncActionValidateStatus } from '../utils/response';\n\n/**\n * A slow Apify account makes the component answer `{ timeout: true }` on a 200 instead of the list —\n * a failure only this action knows how to spot, so it is checked before deferring to the shared\n * validation.\n */\nexport const apifyValidateStatus: ValidateStatusFn = (apiResponse) => {\n const data = apiResponse.data;\n\n if (typeof data === 'object' && data !== null && 'timeout' in data && data.timeout)\n throw new SyncActionError('Timed out while loading data from Apify.', { data });\n\n return syncActionValidateStatus(apiResponse);\n};\n","import { ComponentId } from '../../../constants';\nimport { parseOrThrow } from '../../../errors';\nimport { SyncAction } from '../constants';\nimport type { SendSyncAction } from '../syncActionsClient';\n\nimport { type ApifyObjectsInput, apifyObjectsInputSchema, apifyObjectsSchema } from './schemas';\nimport { apifyValidateStatus } from './utils';\n\nexport const createApify = (sendSyncAction: SendSyncAction) => {\n const _getObjects = async (action: string, input: ApifyObjectsInput, signal?: AbortSignal) => {\n const { '#token': token, ...context } = parseOrThrow(apifyObjectsInputSchema, input);\n\n const data = await sendSyncAction(\n {\n ...context,\n action,\n componentId: ComponentId.APIFY,\n configData: { parameters: { '#token': token } },\n },\n { signal, validateStatus: apifyValidateStatus },\n );\n\n return parseOrThrow(apifyObjectsSchema, data);\n };\n\n const getActors = (input: ApifyObjectsInput, signal?: AbortSignal) => {\n return _getObjects(SyncAction.LIST_ACTORS, input, signal);\n };\n\n const getTasks = (input: ApifyObjectsInput, signal?: AbortSignal) => {\n return _getObjects(SyncAction.LIST_TASKS, input, signal);\n };\n\n return { getActors, getTasks };\n};\n","import * as z from 'zod';\n\nimport { syncActionContextSchema } from '../schemas';\n\n/** `componentId` is a plain string: every dbt transformation serves the same actions, so it selects nothing. */\nexport const dbtActionInputSchema = syncActionContextSchema.extend({\n componentId: z.string().min(1, 'Required'),\n configId: z.string().min(1, 'Required'),\n artifacts: z.record(z.string(), z.unknown()).optional(),\n});\n\n/**\n * Model file name (`orders.sql`) → compiled SQL, in the component's key order.\n *\n * - A never-run configuration fails with a `SyncActionError`, not an empty payload.\n * - A missing key defaults to empty; a present key of the wrong shape still fails.\n */\nexport const dbtCompiledSchema = z\n .object({ compiled: z.record(z.string(), z.string()).default({}) })\n .transform(({ compiled }) => compiled);\n\n/** `\"Thread-1\"` → `1`; an unparseable value falls back to `0` rather than failing the timeline. */\nconst dbtThreadSchema = z\n .string()\n .transform((thread) => Number.parseInt(thread.replace(/^Thread-/, ''), 10))\n .pipe(z.number().int().nonnegative())\n .catch(0);\n\n/** Omits `status` and `dependsOn`. */\nexport const dbtModelTimingSchema = z.object({\n id: z.string(),\n name: z.string(),\n thread: dbtThreadSchema,\n /** ISO timestamps, left unparsed. */\n timeStarted: z.string(),\n timeCompleted: z.string(),\n});\n\n/** A missing key defaults to empty, as in `dbtCompiledSchema`. */\nexport const dbtRunResultsSchema = z\n .object({ modelTiming: z.array(dbtModelTimingSchema).default([]) })\n .transform(({ modelTiming }) => modelTiming);\n\nexport type DbtActionInput = z.infer<typeof dbtActionInputSchema>;\nexport type DbtCompiled = z.infer<typeof dbtCompiledSchema>;\nexport type DbtModelTiming = z.infer<typeof dbtModelTimingSchema>;\n","export type DbtActionConfigDataInput = {\n configId: string;\n artifacts?: Record<string, unknown>;\n};\n\n/**\n * Both dbt artifact actions read the *stored* configuration — `configId` is what they resolve it by,\n * so the payload carries no settings of its own. `artifacts` is the configuration's own artifacts\n * section, passed through untouched: it selects which run's artifacts the component picks up, and\n * omitting it leaves the component on its default (the latest run).\n */\nexport const buildDbtActionConfigData = ({ configId, artifacts }: DbtActionConfigDataInput) => ({\n parameters: { configId },\n ...(artifacts && { artifacts }),\n});\n","import { parseOrThrow } from '../../../errors';\nimport { SyncAction } from '../constants';\nimport type { SendSyncAction } from '../syncActionsClient';\n\nimport {\n type DbtActionInput,\n dbtActionInputSchema,\n dbtCompiledSchema,\n dbtRunResultsSchema,\n} from './schemas';\nimport { buildDbtActionConfigData } from './utils';\n\n/** The dbt transformations' artifact actions — both read what the *last run* left behind. */\nexport const createDbt = (sendSyncAction: SendSyncAction) => {\n const sendDbtAction = (action: string, input: DbtActionInput, signal?: AbortSignal) => {\n const { componentId, configId, artifacts, ...context } = parseOrThrow(\n dbtActionInputSchema,\n input,\n );\n\n return sendSyncAction(\n {\n ...context,\n componentId,\n action,\n configData: buildDbtActionConfigData({ configId, artifacts }),\n },\n { signal },\n );\n };\n\n /** The compiled SQL of every model in the configuration. */\n const compile = async (input: DbtActionInput, signal?: AbortSignal) => {\n const data = await sendDbtAction(SyncAction.DBT_COMPILE, input, signal);\n\n return parseOrThrow(dbtCompiledSchema, data);\n };\n\n /** When each model of the last run started and finished, and on which worker. */\n const runResults = async (input: DbtActionInput, signal?: AbortSignal) => {\n const data = await sendDbtAction(SyncAction.DBT_RUN_RESULTS, input, signal);\n\n return parseOrThrow(dbtRunResultsSchema, data);\n };\n\n return { compile, runResults };\n};\n","import * as z from 'zod';\n\nimport { syncActionContextSchema } from '../schemas';\n\nexport const flowMigrationInputSchema = syncActionContextSchema.extend({\n orchestrationIds: z.array(z.string().min(1, 'Required')),\n});\n\nexport const flowMigrationValidationResultSchema = z.object({\n orchestrationId: z.string(),\n orchestrationName: z.string(),\n valid: z.boolean(),\n issues: z.array(z.string()),\n});\n\n/** The orchestration's configuration as the flow it would become; extra keys pass through. */\nconst flowMigrationMigratedConfigurationSchema = z.looseObject({\n phases: z.array(z.unknown()).optional(),\n tasks: z.array(z.unknown()).optional(),\n parameters: z.unknown().optional(),\n});\n\n/**\n * One orchestration's dry-run outcome.\n *\n * - `skipped`: it failed validation; `issues` says why.\n * - `failed`: building the flow threw; `error` carries the message.\n */\nexport const flowMigrationPreviewResultSchema = z.object({\n orchestrationId: z.string(),\n orchestrationName: z.string(),\n status: z.enum(['dry-run', 'skipped', 'failed']),\n issues: z.array(z.string()),\n changes: z.array(z.string()),\n error: z.string().optional(),\n migratedConfiguration: flowMigrationMigratedConfigurationSchema.optional(),\n});\n\nexport const flowMigrationValidationResultsSchema = z.array(flowMigrationValidationResultSchema);\nexport const flowMigrationPreviewResultsSchema = z.array(flowMigrationPreviewResultSchema);\n\nexport type FlowMigrationInput = z.infer<typeof flowMigrationInputSchema>;\nexport type FlowMigrationValidationResult = z.infer<typeof flowMigrationValidationResultSchema>;\nexport type FlowMigrationPreviewResult = z.infer<typeof flowMigrationPreviewResultSchema>;\n","import { ComponentId } from '../../../constants';\nimport { parseOrThrow } from '../../../errors';\nimport { SyncAction } from '../constants';\nimport type { SendSyncAction } from '../syncActionsClient';\n\nimport {\n type FlowMigrationInput,\n flowMigrationInputSchema,\n flowMigrationPreviewResultsSchema,\n flowMigrationValidationResultsSchema,\n} from './schemas';\n\n/** Orchestration → flow migration checks; one result per requested orchestration. */\nexport const createFlowMigration = (sendSyncAction: SendSyncAction) => {\n const validate = async (input: FlowMigrationInput, signal?: AbortSignal) => {\n const { orchestrationIds, ...context } = parseOrThrow(flowMigrationInputSchema, input);\n\n const data = await sendSyncAction(\n {\n ...context,\n action: SyncAction.FLOW_MIGRATION_VALIDATE,\n componentId: ComponentId.FLOW_MIGRATION_TOOL,\n configData: { parameters: { orchestrationIds } },\n },\n { signal },\n );\n\n return parseOrThrow(flowMigrationValidationResultsSchema, data);\n };\n\n /** A dry run: nothing is written, and invalid orchestrations come back `skipped`. */\n const preview = async (input: FlowMigrationInput, signal?: AbortSignal) => {\n const { orchestrationIds, ...context } = parseOrThrow(flowMigrationInputSchema, input);\n\n const data = await sendSyncAction(\n {\n ...context,\n action: SyncAction.FLOW_MIGRATION_PREVIEW,\n componentId: ComponentId.FLOW_MIGRATION_TOOL,\n configData: { parameters: { mode: 'config', orchestrationIds } },\n },\n { signal },\n );\n\n return parseOrThrow(flowMigrationPreviewResultsSchema, data);\n };\n\n return { validate, preview };\n};\n","import { ComponentId } from '../../../constants';\n\n/**\n * Components whose git repository lives under `parameters.dataApp.git.repository` and that answer to\n * the `git-repository` action. They are the only ones serving `data-app-entrypoints`, and the only\n * ones accepting an SSH key.\n */\nexport const DATA_APP_FAMILY = [ComponentId.DATA_APPS, ComponentId.SANDBOXES] as const;\n\n/**\n * Components whose git repository lives under `parameters.git.repo` and that answer to the\n * `gitRepository` action. They authenticate over HTTPS with a username and password only.\n *\n * Deliberately a list rather than \"everything else\": `listBranches` / `list_branches` /\n * `checkBranches` also exist on unrelated third-party components (`kds-team.app-custom-python`,\n * `keboola.app-transformation-migration`, `kds-team.app-sox-migration-checker`) under a different\n * contract. Those stay on the generic `sendSyncAction` escape hatch.\n */\nconst DBT_FAMILY = [\n ComponentId.DBT_TEST_CORE_KEY_PAIR,\n ComponentId.DBT_TEST_REMOTE_SNOWFLAKE,\n ComponentId.DBT_TRANSFORMATION,\n ComponentId.DBT_TRANSFORMATION_LOCAL_BIGQUERY,\n ComponentId.DBT_TRANSFORMATION_REMOTE_BIGQUERY,\n ComponentId.DBT_TRANSFORMATION_REMOTE_MSSQL,\n ComponentId.DBT_TRANSFORMATION_REMOTE_POSTGRESQL,\n ComponentId.DBT_TRANSFORMATION_REMOTE_REDSHIFT,\n ComponentId.DBT_TRANSFORMATION_REMOTE_SNOWFLAKE,\n] as const;\n\nexport const GIT_FAMILY = [...DATA_APP_FAMILY, ...DBT_FAMILY] as const;\n\n/** The ids the git actions accept — anything else has no action name or payload path to resolve. */\nexport type GitComponentId = (typeof GIT_FAMILY)[number];\nexport type DataAppComponentId = (typeof DATA_APP_FAMILY)[number];\n\nconst dataAppIds: ReadonlySet<string> = new Set(DATA_APP_FAMILY);\n\nexport const isDataAppFamily = (componentId: string): componentId is DataAppComponentId =>\n dataAppIds.has(componentId);\n","import * as z from 'zod';\n\nimport { syncActionContextSchema } from '../schemas';\n\nimport { DATA_APP_FAMILY, GIT_FAMILY, isDataAppFamily } from './constants';\n\nexport const gitAuthSchema = z.discriminatedUnion('type', [\n z.object({ type: z.literal('public') }),\n z.object({\n type: z.literal('password'),\n username: z.string().min(1, 'Required'),\n '#password': z.string().min(1, 'Required'),\n }),\n z.object({\n type: z.literal('sshKey'),\n /** Ignored by the component: over SSH the user is always `git`. */\n username: z.string().min(1, 'Required').optional(),\n '#sshKey': z.string().min(1, 'Required'),\n }),\n]);\n\nconst gitInputSchema = syncActionContextSchema.extend({\n repositoryUrl: z.string().min(1, 'Required'),\n auth: gitAuthSchema.default({ type: 'public' }),\n});\n\n/**\n * **Takes no `branch` — do not add one.** The component clones with `-b <branch>`, so a stale one\n * would fail the branch listing. Zod strips it.\n */\nexport const getBranchesInputSchema = gitInputSchema\n .extend({ componentId: z.enum(GIT_FAMILY) })\n .check((ctx) => {\n const { componentId, auth } = ctx.value;\n\n // The types can't vary auth by family: dbt clones over HTTPS with a password, no SSH key.\n if (auth.type !== 'sshKey' || isDataAppFamily(componentId)) return;\n\n ctx.issues.push({\n code: 'custom',\n input: auth,\n path: ['auth'],\n message: `Component \"${componentId}\" authenticates with a password, not an SSH key.`,\n });\n });\n\n/** Only the data-app family serves `data-app-entrypoints`. */\nexport const getEntrypointsInputSchema = gitInputSchema.extend({\n componentId: z.enum(DATA_APP_FAMILY),\n /** The *git* branch (not `branchId`); omit for the repository default. `\"\"` normalises to omitted. */\n branch: z\n .string()\n .optional()\n .transform((branch) => branch || undefined),\n});\n\n/** Only `branch` is load-bearing; the rest falls back to `''` so one bad field can't fail the list. */\nconst gitBranchSchema = z.object({\n branch: z.string(),\n sha: z.string().catch(''),\n date: z.string().catch(''),\n comment: z.string().catch(''),\n author: z\n .object({\n name: z.string().catch(''),\n email: z.string().catch(''),\n })\n .catch({ name: '', email: '' }),\n});\n\n/** An array, or an index-keyed object with gaps (a server-filtered PHP array). */\nconst gitBranchListSchema = z\n .union([z.array(gitBranchSchema), z.record(z.string(), gitBranchSchema)])\n .transform((branches) => (Array.isArray(branches) ? branches : Object.values(branches)));\n\n/**\n * - `repository.branches` is confirmed; the top-level position is accepted but unverified.\n * - A response with neither list is rejected, not read as no branches.\n */\nexport const gitBranchesSchema = z\n .object({\n repository: z.object({ branches: gitBranchListSchema.optional() }).optional(),\n branches: gitBranchListSchema.optional(),\n })\n .check((ctx) => {\n if (ctx.value.branches ?? ctx.value.repository?.branches) return;\n\n ctx.issues.push({\n code: 'custom',\n input: ctx.value,\n message: 'The response carried no branch list.',\n });\n })\n .transform(({ repository, branches }) => branches ?? repository?.branches ?? []);\n\nexport const gitEntrypointsSchema = z.object({\n entrypoints: z.array(z.string()),\n});\n\nexport type GitAuth = z.infer<typeof gitAuthSchema>;\nexport type GetBranchesInput = z.input<typeof getBranchesInputSchema>;\nexport type GetEntrypointsInput = z.input<typeof getEntrypointsInputSchema>;\nexport type GitBranch = z.infer<typeof gitBranchSchema>;\nexport type GitEntrypoints = z.infer<typeof gitEntrypointsSchema>;\n","import type { GitAuth } from './schemas';\n\n/** Every variant is already the shape the components read, minus the discriminator. */\nconst toCredentials = (auth: GitAuth) => {\n const { type: _type, ...credentials } = auth;\n\n return credentials;\n};\n\n/**\n * Which revision the component clones.\n *\n * - `default` — no `-b`; branch listing must use it, as a stale pinned branch fails the listing.\n * - `branch` — `git clone -b <branch>`.\n */\ntype GitRevision = { revision: 'default' } | { revision: 'branch'; branch: string };\n\nconst toRevision = (rev: GitRevision) => (rev.revision === 'branch' ? { branch: rev.branch } : {});\n\nexport type GitConfigDataInput = {\n repositoryUrl: string;\n auth: GitAuth;\n} & GitRevision;\n\n/** Data apps nest their repository a level deeper, and call the URL `repository`. */\nexport const buildDataAppConfigData = ({ repositoryUrl, auth, ...rev }: GitConfigDataInput) => ({\n parameters: {\n dataApp: {\n git: {\n repository: repositoryUrl,\n ...toCredentials(auth),\n ...toRevision(rev),\n },\n },\n },\n});\n\n/** dbt transformations keep the same settings at the top of `parameters`, under `repo`. */\nexport const buildDbtConfigData = ({ repositoryUrl, auth, ...rev }: GitConfigDataInput) => ({\n parameters: {\n git: {\n repo: repositoryUrl,\n ...toCredentials(auth),\n ...toRevision(rev),\n },\n },\n});\n","import { parseOrThrow } from '../../../errors';\nimport { SyncAction } from '../constants';\nimport type { SendSyncAction } from '../syncActionsClient';\n\nimport { isDataAppFamily } from './constants';\nimport {\n type GetBranchesInput,\n getBranchesInputSchema,\n type GetEntrypointsInput,\n getEntrypointsInputSchema,\n gitBranchesSchema,\n gitEntrypointsSchema,\n} from './schemas';\nimport { buildDataAppConfigData, buildDbtConfigData } from './utils';\n\n/**\n * Git repository actions, across both component families that serve them — the data apps\n * (`git-repository`) and the dbt transformations (`gitRepository`). Which action name and which\n * `configData` shape a call uses is resolved from `componentId`; see `./constants`.\n */\nexport const createGit = (sendSyncAction: SendSyncAction) => {\n const getBranches = async (input: GetBranchesInput, signal?: AbortSignal) => {\n const { componentId, repositoryUrl, auth, ...context } = parseOrThrow(\n getBranchesInputSchema,\n input,\n );\n const isDataApp = isDataAppFamily(componentId);\n const action = isDataApp ? SyncAction.DATA_APP_GIT_REPOSITORY : SyncAction.GIT_REPOSITORY;\n const buildConfigData = isDataApp ? buildDataAppConfigData : buildDbtConfigData;\n\n const data = await sendSyncAction(\n {\n ...context,\n componentId,\n action,\n configData: buildConfigData({ repositoryUrl, auth, revision: 'default' }),\n },\n { signal },\n );\n\n return parseOrThrow(gitBranchesSchema, data);\n };\n\n const getEntrypoints = async (input: GetEntrypointsInput, signal?: AbortSignal) => {\n const { componentId, repositoryUrl, auth, branch, ...context } = parseOrThrow(\n getEntrypointsInputSchema,\n input,\n );\n\n const data = await sendSyncAction(\n {\n ...context,\n componentId,\n action: SyncAction.DATA_APP_ENTRYPOINTS,\n // Data-app only — the input schema rejects every other component, so no family branch here.\n configData: buildDataAppConfigData({\n repositoryUrl,\n auth,\n ...(branch ? { revision: 'branch', branch } : { revision: 'default' }),\n }),\n },\n { signal },\n );\n\n return parseOrThrow(gitEntrypointsSchema, data);\n };\n\n return { getBranches, getEntrypoints };\n};\n","import * as z from 'zod';\n\nimport { syncActionContextSchema } from '../schemas';\n\nexport const testLookerCredentialsInputSchema = syncActionContextSchema.extend({\n credentialsId: z.string().min(1, 'Required'),\n '#token': z.string().min(1, 'Required'),\n host: z.string().min(1, 'Required'),\n});\n\n/** The component answers with a status envelope only — there is no payload to model. */\nexport const lookerCredentialsResultSchema = z.object({\n status: z.string().optional(),\n message: z.string().optional(),\n});\n\nexport type TestLookerCredentialsInput = z.infer<typeof testLookerCredentialsInputSchema>;\nexport type LookerCredentialsResult = z.infer<typeof lookerCredentialsResultSchema>;\n","import { ComponentId } from '../../../constants';\nimport { parseOrThrow } from '../../../errors';\nimport { SyncAction } from '../constants';\nimport type { SendSyncAction } from '../syncActionsClient';\n\nimport {\n lookerCredentialsResultSchema,\n type TestLookerCredentialsInput,\n testLookerCredentialsInputSchema,\n} from './schemas';\n\nexport const createLooker = (sendSyncAction: SendSyncAction) => {\n /** Registers the project's Looker credentials; throws `SyncActionError` when Looker rejects them. */\n const testCredentials = async (input: TestLookerCredentialsInput, signal?: AbortSignal) => {\n const {\n credentialsId,\n '#token': token,\n host,\n ...context\n } = parseOrThrow(testLookerCredentialsInputSchema, input);\n\n const data = await sendSyncAction(\n {\n ...context,\n action: SyncAction.TEST_LOOKER_CREDENTIALS,\n componentId: ComponentId.WR_LOOKER_V2,\n configData: { parameters: { looker: { credentialsId, '#token': token, host } } },\n },\n { signal },\n );\n\n return parseOrThrow(lookerCredentialsResultSchema, data);\n };\n\n return { testCredentials };\n};\n","import * as z from 'zod';\n\nexport const sshKeyPairSchema = z.object({\n status: z.literal('success'),\n public: z.string(),\n private: z.string(),\n});\n\nexport type SshKeyPair = z.infer<typeof sshKeyPairSchema>;\n","import { ComponentId } from '../../../constants';\nimport { parseOrThrow } from '../../../errors';\nimport { SyncAction } from '../constants';\nimport { type SyncActionContext, syncActionContextSchema } from '../schemas';\nimport type { SendSyncAction } from '../syncActionsClient';\n\nimport { sshKeyPairSchema } from './schemas';\n\nexport const createSshKeys = (sendSyncAction: SendSyncAction) => {\n /** Generates a new 4096-bit RSA key pair; the component keeps no copy. */\n const generate = async (input: SyncActionContext, signal?: AbortSignal) => {\n const context = parseOrThrow(syncActionContextSchema, input);\n\n const data = await sendSyncAction(\n {\n ...context,\n action: SyncAction.SSH_KEYS_GENERATE,\n componentId: ComponentId.SSH_KEYGEN_V2,\n configData: {},\n },\n { signal },\n );\n\n return parseOrThrow(sshKeyPairSchema, data);\n };\n\n return { generate };\n};\n","import { parseOrThrow } from '../../errors';\nimport type { ValidateStatusFn } from '../../fetchClient';\nimport { createGenericFetchClient, createOpenapiFetchClient } from '../../fetchClient';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport { syncActionValidateStatus } from './utils/response';\nimport { createApify } from './apify';\nimport { SyncAction } from './constants';\nimport { createDbt } from './dbt';\nimport { createFlowMigration } from './flowMigration';\nimport { createGit } from './git';\nimport { createLooker } from './looker';\nimport { type SyncActionBody, syncActionBodySchema } from './schemas';\nimport { createSshKeys } from './sshKeys';\nimport type { EnrollMFAInput, PostActionsBodyRaw } from './types';\n\nexport type SendSyncActionOptions = {\n signal?: AbortSignal;\n /** Replaces `syncActionValidateStatus` for this request; delegate to it for anything else. */\n validateStatus?: ValidateStatusFn;\n};\n\nconst createSendSyncAction = (client: SyncActionClient) => {\n return async (body: SyncActionBody, options: SendSyncActionOptions = {}) => {\n const { data } = await client.post(\n '/actions',\n // Generated `configData: Record<string, never>` is unsatisfiable; the schema is the contract.\n { body: parseOrThrow(syncActionBodySchema, body) as unknown as PostActionsBodyRaw },\n options,\n );\n\n return data;\n };\n};\n\nexport type SendSyncAction = ReturnType<typeof createSendSyncAction>;\ntype SyncActionClient = ReturnType<typeof createOpenapiFetchClient<paths>>;\n\nexport const createSyncActionsClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n validateStatus: syncActionValidateStatus,\n });\n const genericClient = createGenericFetchClient({ baseUrl, middlewares });\n\n const sendSyncAction = createSendSyncAction(client);\n\n const enrollMFA = ({ email, ...rest }: EnrollMFAInput, signal?: AbortSignal) => {\n return sendSyncAction(\n {\n ...rest,\n action: SyncAction.ENROLL_MFA,\n configData: {\n parameters: {\n user: {\n email,\n },\n },\n },\n },\n { signal },\n );\n };\n\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await genericClient.get('/health-check', {}, { signal });\n\n return data;\n };\n\n return {\n healthCheck,\n sendSyncAction,\n enrollMFA,\n apify: createApify(sendSyncAction),\n dbt: createDbt(sendSyncAction),\n flowMigration: createFlowMigration(sendSyncAction),\n git: createGit(sendSyncAction),\n looker: createLooker(sendSyncAction),\n sshKeys: createSshKeys(sendSyncAction),\n };\n};\n"],"mappings":"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"}