@keboola/api-client 39.0.0 → 41.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.
- package/AGENTS.md +121 -100
- package/API-SURFACE.md +27 -2
- package/CHANGELOG.md +129 -0
- package/README.md +3 -3
- package/dist/{ManagementClientAuthError-FcfMJNhr.cjs → ManagementClientAuthError-DE7lNGZQ.cjs} +2 -2
- package/dist/{ManagementClientAuthError-FcfMJNhr.cjs.map → ManagementClientAuthError-DE7lNGZQ.cjs.map} +1 -1
- package/dist/{ManagementClientAuthError-Cr9IOsnJ.js → ManagementClientAuthError-H30lti_Q.js} +2 -2
- package/dist/{ManagementClientAuthError-Cr9IOsnJ.js.map → ManagementClientAuthError-H30lti_Q.js.map} +1 -1
- package/dist/{ValidationError-CLVJCCwH.cjs → ValidationError-D65QU0uq.cjs} +10 -16
- package/dist/ValidationError-D65QU0uq.cjs.map +1 -0
- package/dist/ValidationError-DjhtNMfZ.js +42 -0
- package/dist/ValidationError-DjhtNMfZ.js.map +1 -0
- package/dist/ai/index.cjs +2 -2
- package/dist/ai/index.d.cts +2 -2
- package/dist/ai/index.d.ts +2 -2
- package/dist/ai/index.js +2 -2
- package/dist/ai/types.d.cts +1 -1
- package/dist/ai/types.d.ts +1 -1
- package/dist/{appLogs-C_zP0lpv.cjs → appLogs-B9zFJIuy.cjs} +2 -2
- package/dist/{appLogs-C_zP0lpv.cjs.map → appLogs-B9zFJIuy.cjs.map} +1 -1
- package/dist/{appLogs-Cl7Q_MR9.js → appLogs-BBkkUOW1.js} +2 -2
- package/dist/{appLogs-Cl7Q_MR9.js.map → appLogs-BBkkUOW1.js.map} +1 -1
- package/dist/{appLogs-Ch7DYpzx.d.ts → appLogs-BS6ViVGR.d.ts} +2 -2
- package/dist/{appLogs-D5A13Y0y.d.cts → appLogs-C9YlJ2g8.d.cts} +2 -2
- package/dist/apps/index.cjs +30 -56
- package/dist/apps/index.cjs.map +1 -1
- package/dist/apps/index.d.cts +8 -13
- package/dist/apps/index.d.ts +8 -13
- package/dist/apps/index.js +30 -56
- package/dist/apps/index.js.map +1 -1
- package/dist/apps/types.d.cts +2 -2
- package/dist/apps/types.d.ts +2 -2
- package/dist/assets/index.cjs +1 -1
- package/dist/assets/index.d.cts +1 -1
- package/dist/assets/index.d.ts +1 -1
- package/dist/assets/index.js +1 -1
- package/dist/auth/index.cjs +8 -4
- package/dist/auth/index.d.cts +2 -2
- package/dist/auth/index.d.ts +2 -2
- package/dist/auth/index.js +2 -2
- package/dist/auth/types.d.cts +2 -2
- package/dist/auth/types.d.ts +2 -2
- package/dist/{auth-DLWnl18b.cjs → auth-Dm0F2rOh.cjs} +2 -2
- package/dist/{auth-DLWnl18b.cjs.map → auth-Dm0F2rOh.cjs.map} +1 -1
- package/dist/{auth-BjmkFOgd.js → auth-DworfoPy.js} +2 -2
- package/dist/{auth-BjmkFOgd.js.map → auth-DworfoPy.js.map} +1 -1
- package/dist/{authClient-8yU1last.cjs → authClient-BmuUo0J4.cjs} +141 -48
- package/dist/authClient-BmuUo0J4.cjs.map +1 -0
- package/dist/{authClient-CTHNs6Tq.d.cts → authClient-CHXWJ9x3.d.ts} +109 -76
- package/dist/{authClient-BTo4Afm6.js → authClient-CgcDGd30.js} +108 -39
- package/dist/authClient-CgcDGd30.js.map +1 -0
- package/dist/{authClient-D8i3JTM-.d.ts → authClient-vEt_7_uk.d.cts} +109 -76
- package/dist/billing/index.cjs +2 -2
- package/dist/billing/index.d.cts +1 -1
- package/dist/billing/index.d.ts +1 -1
- package/dist/billing/index.js +2 -2
- package/dist/billing/types.d.cts +1 -1
- package/dist/billing/types.d.ts +1 -1
- package/dist/businessWorkspaceApi/index.cjs +1 -1
- package/dist/businessWorkspaceApi/index.d.cts +1 -1
- package/dist/businessWorkspaceApi/index.d.ts +1 -1
- package/dist/businessWorkspaceApi/index.js +1 -1
- package/dist/businessWorkspaceApi/types.d.cts +1 -1
- package/dist/businessWorkspaceApi/types.d.ts +1 -1
- package/dist/{businessWorkspaceApi-wyBdbpIJ.cjs → businessWorkspaceApi-6tCDdpnY.cjs} +3 -3
- package/dist/{businessWorkspaceApi-wyBdbpIJ.cjs.map → businessWorkspaceApi-6tCDdpnY.cjs.map} +1 -1
- package/dist/{businessWorkspaceApi-BD-iUj07.js → businessWorkspaceApi-BLUdefRF.js} +3 -3
- package/dist/{businessWorkspaceApi-BD-iUj07.js.map → businessWorkspaceApi-BLUdefRF.js.map} +1 -1
- package/dist/{businessWorkspaceApiClient-CRM1U8b-.d.cts → businessWorkspaceApiClient-BHDJlHFo.d.cts} +3 -3
- package/dist/{businessWorkspaceApiClient-C2WyWN3b.d.ts → businessWorkspaceApiClient-DI-z1VIH.d.ts} +3 -3
- package/dist/chat/index.cjs +7 -3
- package/dist/chat/index.cjs.map +1 -1
- package/dist/chat/index.d.cts +2 -2
- package/dist/chat/index.d.ts +2 -2
- package/dist/chat/index.js +7 -3
- package/dist/chat/index.js.map +1 -1
- package/dist/chat/types.cjs +1 -3
- package/dist/chat/types.cjs.map +1 -1
- package/dist/chat/types.d.cts +2 -2
- package/dist/chat/types.d.ts +2 -2
- package/dist/chat/types.js +1 -3
- package/dist/chat/types.js.map +1 -1
- package/dist/{componentId-vJz-kWs6.js → componentId-BJLfnaGc.js} +6 -2
- package/dist/componentId-BJLfnaGc.js.map +1 -0
- package/dist/{componentId-DkyQ8PM0.cjs → componentId-_IKXxICq.cjs} +6 -2
- package/dist/componentId-_IKXxICq.cjs.map +1 -0
- package/dist/{concurrent-CH9fbNr3.js → concurrent-BacWxPwi.js} +5 -7
- package/dist/concurrent-BacWxPwi.js.map +1 -0
- package/dist/{concurrent-tbiIa0UL.cjs → concurrent-CdVfR1N5.cjs} +5 -7
- package/dist/concurrent-CdVfR1N5.cjs.map +1 -0
- package/dist/{configurations-CyFF9Dtu.cjs → configurations-BTRHVSRq.cjs} +20 -53
- package/dist/configurations-BTRHVSRq.cjs.map +1 -0
- package/dist/{configurations-VtNE0nrT.js → configurations-CF3xz7RB.js} +14 -22
- package/dist/configurations-CF3xz7RB.js.map +1 -0
- package/dist/{configurations-BVvcimzo.js → configurations-Chg_JwJ1.js} +20 -53
- package/dist/configurations-Chg_JwJ1.js.map +1 -0
- package/dist/{configurations-zkNjr73Q.cjs → configurations-VlfQ_37Y.cjs} +14 -22
- package/dist/configurations-VlfQ_37Y.cjs.map +1 -0
- package/dist/constants/index.cjs +1 -1
- package/dist/constants/index.d.cts +1 -1
- package/dist/constants/index.d.ts +1 -1
- package/dist/constants/index.js +1 -1
- package/dist/{createFetchClient-BlgPbjFj.cjs → createFetchClient-Cwp8max9.cjs} +11 -4
- package/dist/createFetchClient-Cwp8max9.cjs.map +1 -0
- package/dist/{createFetchClient-C-cadpBx.js → createFetchClient-DXHQK63w.js} +11 -4
- package/dist/createFetchClient-DXHQK63w.js.map +1 -0
- package/dist/{createGenericFetchClient-Bnf1QK9W.js → createGenericFetchClient-Dg1rgzmG.js} +2 -2
- package/dist/{createGenericFetchClient-Bnf1QK9W.js.map → createGenericFetchClient-Dg1rgzmG.js.map} +1 -1
- package/dist/{createGenericFetchClient-lcozzwk2.cjs → createGenericFetchClient-Dl9cqTvR.cjs} +2 -2
- package/dist/{createGenericFetchClient-lcozzwk2.cjs.map → createGenericFetchClient-Dl9cqTvR.cjs.map} +1 -1
- package/dist/{createOpenapiFetchClient-C3UmDXpe.cjs → createOpenapiFetchClient-BYqW-9tm.cjs} +2 -2
- package/dist/{createOpenapiFetchClient-C3UmDXpe.cjs.map → createOpenapiFetchClient-BYqW-9tm.cjs.map} +1 -1
- package/dist/{createOpenapiFetchClient-COaPeeQ0.js → createOpenapiFetchClient-DZUOVupy.js} +2 -2
- package/dist/{createOpenapiFetchClient-COaPeeQ0.js.map → createOpenapiFetchClient-DZUOVupy.js.map} +1 -1
- package/dist/dataScience/index.cjs +2 -2
- package/dist/dataScience/index.d.cts +2 -2
- package/dist/dataScience/index.d.ts +2 -2
- package/dist/dataScience/index.js +2 -2
- package/dist/dataScience/types.d.cts +2 -2
- package/dist/dataScience/types.d.ts +2 -2
- package/dist/{dataScience-D-hyc4GY.cjs → dataScience-B5QxZnvW.cjs} +5 -5
- package/dist/{dataScience-D-hyc4GY.cjs.map → dataScience-B5QxZnvW.cjs.map} +1 -1
- package/dist/{dataScience-B_BmnB1m.js → dataScience-OXcwdk1p.js} +5 -5
- package/dist/{dataScience-B_BmnB1m.js.map → dataScience-OXcwdk1p.js.map} +1 -1
- package/dist/dedupe-Cky1gSUu.js +21 -0
- package/dist/dedupe-Cky1gSUu.js.map +1 -0
- package/dist/dedupe-OSnnst2u.cjs +26 -0
- package/dist/dedupe-OSnnst2u.cjs.map +1 -0
- package/dist/developerPortal/index.cjs +1 -1
- package/dist/developerPortal/index.d.cts +2 -2
- package/dist/developerPortal/index.d.ts +2 -2
- package/dist/developerPortal/index.js +1 -1
- package/dist/developerPortal/types.d.cts +1 -1
- package/dist/developerPortal/types.d.ts +1 -1
- package/dist/{developerPortalClient-yHFTkKPb.js → developerPortalClient-B1QZ1rYi.js} +6 -8
- package/dist/{developerPortalClient-yHFTkKPb.js.map → developerPortalClient-B1QZ1rYi.js.map} +1 -1
- package/dist/{developerPortalClient-CutPqoAa.cjs → developerPortalClient-CLPpBksD.cjs} +6 -8
- package/dist/{developerPortalClient-CutPqoAa.cjs.map → developerPortalClient-CLPpBksD.cjs.map} +1 -1
- package/dist/domain/permissions/index.cjs +9 -30
- package/dist/domain/permissions/index.cjs.map +1 -1
- package/dist/domain/permissions/index.d.cts +29 -102
- package/dist/domain/permissions/index.d.ts +29 -102
- package/dist/domain/permissions/index.js +9 -30
- package/dist/domain/permissions/index.js.map +1 -1
- package/dist/domain/storageTable/index.d.cts +1 -1
- package/dist/domain/storageTable/index.d.ts +1 -1
- package/dist/editor/index.cjs +2 -2
- package/dist/editor/index.cjs.map +1 -1
- package/dist/editor/index.d.cts +2 -2
- package/dist/editor/index.d.ts +2 -2
- package/dist/editor/index.js +2 -2
- package/dist/editor/index.js.map +1 -1
- package/dist/editor/types.d.cts +1 -1
- package/dist/editor/types.d.ts +1 -1
- package/dist/encryption/index.cjs +2 -22
- package/dist/encryption/index.cjs.map +1 -1
- package/dist/encryption/index.d.cts +1 -1
- package/dist/encryption/index.d.ts +1 -1
- package/dist/encryption/index.js +2 -22
- package/dist/encryption/index.js.map +1 -1
- package/dist/encryption/types.d.cts +1 -1
- package/dist/encryption/types.d.ts +1 -1
- package/dist/import/index.cjs +1 -1
- package/dist/import/index.d.cts +3 -3
- package/dist/import/index.d.ts +3 -3
- package/dist/import/index.js +1 -1
- package/dist/{import-7YyyD_U_.cjs → import-CNk89mqy.cjs} +3 -3
- package/dist/{import-7YyyD_U_.cjs.map → import-CNk89mqy.cjs.map} +1 -1
- package/dist/{import-xliONVib.js → import-DiMQCzLa.js} +3 -3
- package/dist/{import-xliONVib.js.map → import-DiMQCzLa.js.map} +1 -1
- package/dist/{index-1r_CskjU.d.ts → index--ZpnE3YT.d.cts} +3 -3
- package/dist/{index-DBklbaTp.d.cts → index-B5w7WlaU.d.cts} +5 -1
- package/dist/{index-DBklbaTp.d.ts → index-B5w7WlaU.d.ts} +5 -1
- package/dist/{index-C77vTm2K.d.ts → index-BDZvaRud.d.ts} +6 -6
- package/dist/{index-KuQ79Mnz.d.ts → index-BVhHt5lx.d.cts} +18 -26
- package/dist/{index-NC1dXRTD.d.ts → index-BfqkgPGI.d.cts} +7 -13
- package/dist/{index-NC1dXRTD.d.cts → index-BfqkgPGI.d.ts} +7 -13
- package/dist/{index-V7XKUQm9.d.cts → index-BgR5zcjJ.d.ts} +18 -26
- package/dist/{index-BK-qHT39.d.ts → index-ByRpNVcs.d.cts} +83 -17
- package/dist/{index-pXN4LWUX.d.ts → index-C11JSxBY.d.ts} +8 -11
- package/dist/{index-GjcJTCbz.d.cts → index-C4TNAA8-.d.cts} +8 -11
- package/dist/{index-BMqLPS6S.d.ts → index-CXcWpZQ2.d.cts} +4 -12
- package/dist/{index-BMqLPS6S.d.cts → index-CXcWpZQ2.d.ts} +4 -12
- package/dist/{index-GfKzh267.d.ts → index-CaaTOANF.d.ts} +395 -297
- package/dist/{index-Dx52hNLP.d.cts → index-CcMHJcuP.d.cts} +3 -3
- package/dist/{index-DVw4Av4b.d.cts → index-Cvbjp3jx.d.cts} +6 -6
- package/dist/{index-DppA4k3b.d.cts → index-Cz0MXhzs.d.cts} +5 -5
- package/dist/{index-6Xe81qN3.d.ts → index-D-VMgpGc.d.ts} +5 -5
- package/dist/{index-DWf6FXOr.d.cts → index-D7-o-oGa.d.ts} +3 -3
- package/dist/{index-CWoEnDJ_.d.cts → index-DCRKjihs.d.ts} +83 -17
- package/dist/{kaiAgentClient-CHpULyeG.d.cts → index-DNThyEej.d.cts} +14 -5
- package/dist/{index-DXSmFkol.d.cts → index-DOAZmWvh.d.cts} +6 -6
- package/dist/{index-BuegqrS1.d.ts → index-D_-4uQF8.d.ts} +3 -3
- package/dist/index-DbLFwXgb.d.cts +116 -0
- package/dist/{index-De5qUWhp.d.ts → index-DnQTuc6t.d.ts} +6 -6
- package/dist/{kaiAgentClient-B5L4gbQ1.d.ts → index-Qb7X6-ph.d.ts} +14 -5
- package/dist/{index-CHXnJQ9s.d.cts → index-cWp_V6K5.d.cts} +395 -297
- package/dist/index-rwK7GcB2.d.ts +116 -0
- package/dist/index.cjs +1498 -901
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +7 -7
- package/dist/index.d.ts +7 -7
- package/dist/index.js +1497 -902
- package/dist/index.js.map +1 -1
- package/dist/isLoginPageRedirect-XPwAOKK3.js +14 -0
- package/dist/isLoginPageRedirect-XPwAOKK3.js.map +1 -0
- package/dist/isLoginPageRedirect-jQHiLrG7.cjs +19 -0
- package/dist/isLoginPageRedirect-jQHiLrG7.cjs.map +1 -0
- package/dist/{jobStatus-0_Y3Sr4i.cjs → jobStatus-BMlsyXWI.cjs} +19 -45
- package/dist/jobStatus-BMlsyXWI.cjs.map +1 -0
- package/dist/{jobStatus-PSZJMTiA.js → jobStatus-CfRtsIpv.js} +19 -45
- package/dist/jobStatus-CfRtsIpv.js.map +1 -0
- package/dist/kaiAgent/index.cjs +1 -1
- package/dist/kaiAgent/index.d.cts +3 -2
- package/dist/kaiAgent/index.d.ts +3 -2
- package/dist/kaiAgent/index.js +1 -1
- package/dist/kaiAgent/types.d.cts +2 -2
- package/dist/kaiAgent/types.d.ts +2 -2
- package/dist/{kaiAgent-CcT2oNip.js → kaiAgent-Dp20HLTh.js} +32 -11
- package/dist/kaiAgent-Dp20HLTh.js.map +1 -0
- package/dist/{kaiAgent-DaB6UCsh.cjs → kaiAgent-QNoeVKPs.cjs} +32 -11
- package/dist/kaiAgent-QNoeVKPs.cjs.map +1 -0
- package/dist/kaiMemory-CClSPInt.cjs +289 -0
- package/dist/kaiMemory-CClSPInt.cjs.map +1 -0
- package/dist/kaiMemory-D0Y_16U4.js +260 -0
- package/dist/kaiMemory-D0Y_16U4.js.map +1 -0
- package/dist/management/index.cjs +1 -1
- package/dist/management/index.d.cts +1 -1
- package/dist/management/index.d.ts +1 -1
- package/dist/management/index.js +1 -1
- package/dist/management/types.d.cts +2 -2
- package/dist/management/types.d.ts +2 -2
- package/dist/{management-DeZiQSlw.cjs → management-CCY0IYnq.cjs} +59 -24
- package/dist/management-CCY0IYnq.cjs.map +1 -0
- package/dist/{management-ckdnu1dA.js → management-DvmPiG64.js} +59 -24
- package/dist/management-DvmPiG64.js.map +1 -0
- package/dist/metastore/index.cjs +1 -1
- package/dist/metastore/index.d.cts +1 -1
- package/dist/metastore/index.d.ts +1 -1
- package/dist/metastore/index.js +1 -1
- package/dist/metastore/types.d.cts +2 -2
- package/dist/metastore/types.d.ts +2 -2
- package/dist/{metastore-B0PolCjQ.js → metastore-BycJxe7A.js} +14 -8
- package/dist/metastore-BycJxe7A.js.map +1 -0
- package/dist/{metastore-9AGrwjmN.cjs → metastore-XtWciCZT.cjs} +14 -8
- package/dist/metastore-XtWciCZT.cjs.map +1 -0
- package/dist/microsoftGraph/index.cjs +2 -2
- package/dist/microsoftGraph/index.d.cts +2 -2
- package/dist/microsoftGraph/index.d.ts +2 -2
- package/dist/microsoftGraph/index.js +2 -2
- package/dist/microsoftGraph/types.d.cts +1 -1
- package/dist/microsoftGraph/types.d.ts +1 -1
- package/dist/middleware-CBwrtgQd.js +34 -0
- package/dist/middleware-CBwrtgQd.js.map +1 -0
- package/dist/middleware-IjYx3d5u.cjs +45 -0
- package/dist/middleware-IjYx3d5u.cjs.map +1 -0
- package/dist/notifications/index.cjs +4 -4
- package/dist/notifications/index.d.cts +2 -2
- package/dist/notifications/index.d.ts +2 -2
- package/dist/notifications/index.js +4 -4
- package/dist/notifications/types.d.cts +1 -1
- package/dist/notifications/types.d.ts +1 -1
- package/dist/oauth/index.cjs +1 -1
- package/dist/oauth/index.d.cts +2 -2
- package/dist/oauth/index.d.ts +2 -2
- package/dist/oauth/index.js +1 -1
- package/dist/oauth/types.d.cts +1 -1
- package/dist/oauth/types.d.ts +1 -1
- package/dist/{oauth-DNtv4Ihb.cjs → oauth--2p8jkJf.cjs} +5 -5
- package/dist/{oauth-DNtv4Ihb.cjs.map → oauth--2p8jkJf.cjs.map} +1 -1
- package/dist/{oauth-BnHVf4cB.js → oauth-l5zE39cD.js} +5 -5
- package/dist/{oauth-BnHVf4cB.js.map → oauth-l5zE39cD.js.map} +1 -1
- package/dist/omnisearch/index.cjs +6 -14
- package/dist/omnisearch/index.cjs.map +1 -1
- package/dist/omnisearch/index.d.cts +6 -14
- package/dist/omnisearch/index.d.ts +6 -14
- package/dist/omnisearch/index.js +6 -14
- package/dist/omnisearch/index.js.map +1 -1
- package/dist/omnisearch/types.d.cts +1 -1
- package/dist/omnisearch/types.d.ts +1 -1
- package/dist/{project-DCHOxRWd.d.ts → project-B15gStbM.d.ts} +2 -2
- package/dist/{project-BRpzv3yE.d.cts → project-cHKuGvqJ.d.cts} +2 -2
- package/dist/queryService/index.cjs +1 -1
- package/dist/queryService/index.d.cts +1 -1
- package/dist/queryService/index.d.ts +1 -1
- package/dist/queryService/index.js +1 -1
- package/dist/queryService/types.d.cts +1 -1
- package/dist/queryService/types.d.ts +1 -1
- package/dist/{queryService-j3XZ2mX6.js → queryService-CCOYbRbw.js} +6 -6
- package/dist/{queryService-j3XZ2mX6.js.map → queryService-CCOYbRbw.js.map} +1 -1
- package/dist/{queryService-BVwD6Vmc.cjs → queryService-CQzclHdL.cjs} +6 -6
- package/dist/{queryService-BVwD6Vmc.cjs.map → queryService-CQzclHdL.cjs.map} +1 -1
- package/dist/queue/index.cjs +1 -1
- package/dist/queue/index.d.cts +3 -3
- package/dist/queue/index.d.ts +3 -3
- package/dist/queue/index.js +1 -1
- package/dist/queue/types.d.cts +1 -1
- package/dist/queue/types.d.ts +1 -1
- package/dist/{queue-Dagl0sdP.js → queue-Cowbg6bR.js} +8 -11
- package/dist/queue-Cowbg6bR.js.map +1 -0
- package/dist/{queue-e3rMWbmK.cjs → queue-UG_BWKIC.cjs} +8 -11
- package/dist/queue-UG_BWKIC.cjs.map +1 -0
- package/dist/scheduler/index.cjs +4 -4
- package/dist/scheduler/index.d.cts +2 -2
- package/dist/scheduler/index.d.ts +2 -2
- package/dist/scheduler/index.js +4 -4
- package/dist/scheduler/types.d.cts +1 -1
- package/dist/scheduler/types.d.ts +1 -1
- package/dist/sdk/configurations/index.cjs +1 -1
- package/dist/sdk/configurations/index.d.cts +11 -11
- package/dist/sdk/configurations/index.d.ts +11 -11
- package/dist/sdk/configurations/index.js +1 -1
- package/dist/sdk/developerPortal/index.cjs +10 -18
- package/dist/sdk/developerPortal/index.cjs.map +1 -1
- package/dist/sdk/developerPortal/index.d.cts +7 -15
- package/dist/sdk/developerPortal/index.d.ts +7 -15
- package/dist/sdk/developerPortal/index.js +7 -15
- package/dist/sdk/developerPortal/index.js.map +1 -1
- package/dist/sdk/kaiMemory/index.cjs +7 -0
- package/dist/sdk/kaiMemory/index.d.cts +41 -0
- package/dist/sdk/kaiMemory/index.d.ts +41 -0
- package/dist/sdk/kaiMemory/index.js +2 -0
- package/dist/sdk/kaiMemory/types.cjs +0 -0
- package/dist/sdk/kaiMemory/types.d.cts +2 -0
- package/dist/sdk/kaiMemory/types.d.ts +2 -0
- package/dist/sdk/kaiMemory/types.js +1 -0
- package/dist/sdk/queryService/index.cjs +2 -2
- package/dist/sdk/queryService/index.d.cts +1 -1
- package/dist/sdk/queryService/index.d.ts +1 -1
- package/dist/sdk/queryService/index.js +2 -2
- package/dist/sdk/semanticLayer/index.cjs +1 -1
- package/dist/sdk/semanticLayer/index.d.cts +16 -40
- package/dist/sdk/semanticLayer/index.d.ts +16 -40
- package/dist/sdk/semanticLayer/index.js +1 -1
- package/dist/sdk/semanticLayer/types.d.cts +1 -1
- package/dist/sdk/semanticLayer/types.d.ts +1 -1
- package/dist/sdk/storage/index.cjs +0 -5
- package/dist/sdk/storage/index.cjs.map +1 -1
- package/dist/sdk/storage/index.d.cts +2 -2
- package/dist/sdk/storage/index.d.ts +2 -2
- package/dist/sdk/storage/index.js +1 -5
- package/dist/sdk/storage/index.js.map +1 -1
- package/dist/sdk/tag/index.cjs +1 -1
- package/dist/sdk/tag/index.d.cts +3 -3
- package/dist/sdk/tag/index.d.ts +3 -3
- package/dist/sdk/tag/index.js +1 -1
- package/dist/sdk/tag/types.d.cts +1 -1
- package/dist/sdk/tag/types.d.ts +1 -1
- package/dist/sdk/vault/index.cjs +1 -1
- package/dist/sdk/vault/index.d.cts +1 -1
- package/dist/sdk/vault/index.d.ts +1 -1
- package/dist/sdk/vault/index.js +1 -1
- package/dist/{semanticLayer-9uTaU7UT.cjs → semanticLayer-CKDVkU56.cjs} +62 -183
- package/dist/semanticLayer-CKDVkU56.cjs.map +1 -0
- package/dist/{semanticLayer-6_gtFxDu.js → semanticLayer-pYy082Ju.js} +62 -183
- package/dist/semanticLayer-pYy082Ju.js.map +1 -0
- package/dist/status/index.cjs +1 -1
- package/dist/status/index.d.cts +1 -1
- package/dist/status/index.d.ts +1 -1
- package/dist/status/index.js +1 -1
- package/dist/storage/index.cjs +5 -5
- package/dist/storage/index.d.cts +2 -2
- package/dist/storage/index.d.ts +2 -2
- package/dist/storage/index.js +5 -5
- package/dist/storage/types.d.cts +2 -2
- package/dist/storage/types.d.ts +2 -2
- package/dist/{storage-Ob1LUIDq.js → storage-CZQHZcXG.js} +109 -302
- package/dist/storage-CZQHZcXG.js.map +1 -0
- package/dist/{storage-HFUdEy7P.cjs → storage-JinL1y1s.cjs} +109 -302
- package/dist/storage-JinL1y1s.cjs.map +1 -0
- package/dist/stream/index.cjs +3 -3
- package/dist/stream/index.d.cts +2 -2
- package/dist/stream/index.d.ts +2 -2
- package/dist/stream/index.js +3 -3
- package/dist/stream/types.d.cts +1 -1
- package/dist/stream/types.d.ts +1 -1
- package/dist/syncActions/index.cjs +1 -1
- package/dist/syncActions/index.d.cts +1 -1
- package/dist/syncActions/index.d.ts +1 -1
- package/dist/syncActions/index.js +1 -1
- package/dist/syncActions/types.d.cts +2 -2
- package/dist/syncActions/types.d.ts +2 -2
- package/dist/{syncActions-B3NS5a0g.js → syncActions-ChNWuhYA.js} +260 -111
- package/dist/syncActions-ChNWuhYA.js.map +1 -0
- package/dist/{syncActions-D2DhY6pP.cjs → syncActions-mFlF16cl.cjs} +260 -111
- package/dist/syncActions-mFlF16cl.cjs.map +1 -0
- package/dist/{tag-CsoOZWB_.cjs → tag-DHS_soa7.cjs} +2 -2
- package/dist/{tag-CsoOZWB_.cjs.map → tag-DHS_soa7.cjs.map} +1 -1
- package/dist/{tag-DCsoewjL.js → tag-hh-1nhNr.js} +2 -2
- package/dist/{tag-DCsoewjL.js.map → tag-hh-1nhNr.js.map} +1 -1
- package/dist/telemetry/index.cjs +7 -11
- package/dist/telemetry/index.cjs.map +1 -1
- package/dist/telemetry/index.d.cts +5 -9
- package/dist/telemetry/index.d.ts +5 -9
- package/dist/telemetry/index.js +7 -11
- package/dist/telemetry/index.js.map +1 -1
- package/dist/telemetry/types.d.cts +1 -1
- package/dist/telemetry/types.d.ts +1 -1
- package/dist/{types-DqxIx9Pi.d.cts → types-6kuMW4JW.d.cts} +2 -2
- package/dist/{types-Ct0YPy2w.d.ts → types-B2w2TtSA.d.ts} +3 -3
- package/dist/{types-M46WuBSm.d.cts → types-B61aCifg.d.cts} +2 -2
- package/dist/{types-COL1kVEB.d.cts → types-B8N_k79M.d.cts} +2 -2
- package/dist/{types-Jw10xuOW.d.cts → types-BIECJYun.d.ts} +171 -44
- package/dist/{types-DZk3XHiN.d.cts → types-BLNB882w.d.cts} +3 -3
- package/dist/{types-BEe50G2r.d.cts → types-BPy5Ozee.d.cts} +2 -2
- package/dist/{types-gi4Eay19.d.ts → types-BS4jwuMi.d.ts} +7 -15
- package/dist/{types-BrYkBQo4.d.ts → types-BTK7Bv3n.d.cts} +171 -44
- package/dist/{types-D6UmMa6E.d.ts → types-BZDV8DZk.d.ts} +3 -3
- package/dist/{types-Cz83RiVu.d.cts → types-B_iLJlp4.d.ts} +255 -12
- package/dist/{types-CmF3pR2n.d.cts → types-BiMahEK8.d.cts} +91 -237
- package/dist/{types-BH5LLeJy.d.ts → types-Bl03Cg2n.d.cts} +255 -12
- package/dist/{types-bGQb4Jtl.d.cts → types-ByLH46Dt.d.cts} +13 -8
- package/dist/{types-g3vU7hcg.d.cts → types-Bydx6ga_.d.cts} +2 -2
- package/dist/{types-B95uNQ9o.d.ts → types-CKmTZSPG.d.ts} +91 -237
- package/dist/{types-D_j2Uq5X.d.cts → types-CMzQSHAQ.d.cts} +3 -3
- package/dist/{types-N3EChotg.d.cts → types-CP_LBmw3.d.cts} +2 -2
- package/dist/{types-CW6lCqrC.d.cts → types-CQFOCQzk.d.ts} +230 -43
- package/dist/{types-zZBxJ0P-.d.ts → types-CWyXTMwy.d.ts} +2 -2
- package/dist/{types-CPB-eF82.d.ts → types-CZJlLCbA.d.ts} +2 -2
- package/dist/{types-l9o4gFsI.d.ts → types-CZXPu3gn.d.ts} +2 -2
- package/dist/{types-BztF4HeB.d.ts → types-CaOtNjSZ.d.ts} +6 -13
- package/dist/{types-BTWIPEiU.d.ts → types-CfwqVkEA.d.ts} +2 -2
- package/dist/types-Cg14ncdV.d.ts +63 -0
- package/dist/{types-BsxLGDoC.d.cts → types-CoJVrRAD.d.ts} +2 -2
- package/dist/{types-DYzJ6K2e.d.ts → types-CqwHP7mN.d.cts} +230 -43
- package/dist/{types-CKiW3n6v.d.ts → types-D3wcs4tp.d.ts} +2 -2
- package/dist/{types-DOyNe7oe.d.cts → types-DDOa07rU.d.cts} +7 -15
- package/dist/{types-BW2BXUB4.d.cts → types-DE9hgr7i.d.cts} +2 -2
- package/dist/{types-BOqD3Hqy.d.cts → types-DEzW1CfI.d.cts} +3 -3
- package/dist/{types-OaD-cbbl.d.ts → types-DIiOMV-t.d.ts} +3 -3
- package/dist/{types-B-P4vQe0.d.cts → types-DKc1gmd9.d.ts} +857 -131
- package/dist/{types-BrPlv-NS.d.ts → types-DRCMBt89.d.ts} +3 -3
- package/dist/{types-BQvv4RaI.d.cts → types-DUMal2E-.d.cts} +5 -8
- package/dist/types-DWiLcrxt.d.cts +63 -0
- package/dist/{types-DNxOHnZI.d.cts → types-Dd31Lw4S.d.cts} +2 -2
- package/dist/{types-Dmu-8g4O.d.ts → types-DekYAlA-.d.ts} +3 -3
- package/dist/{types-B2U9cFcx.d.ts → types-DgJeO9Nd.d.ts} +2 -2
- package/dist/{types-nrviNdzZ.d.ts → types-DicSaNwq.d.ts} +2 -2
- package/dist/{types-Crhy0c9m.d.cts → types-DinIJ1D_.d.cts} +40 -11
- package/dist/{types-DhDNS-5B.d.ts → types-DlQw6FCi.d.ts} +13 -8
- package/dist/{types-_RhBCj4_.d.cts → types-DoZtE9tz.d.cts} +3 -3
- package/dist/{types-Bxhh2SJr.d.ts → types-DrvKfXXd.d.cts} +2 -2
- package/dist/{types-DPl8pZsY.d.ts → types-Dtuvhm3K.d.cts} +857 -131
- package/dist/{types-CcrvrAJX.d.ts → types-DwVSj-Da.d.ts} +5 -8
- package/dist/{types-C2vefB4D.d.ts → types-FwRmjsNN.d.ts} +10 -34
- package/dist/{types-C0_2KZ-A.d.ts → types-RbrfiY8T.d.ts} +2 -2
- package/dist/{types-DfvdbRPL.d.ts → types-WZBztugL.d.ts} +2 -2
- package/dist/{types-52irAt99.d.cts → types-YHUEArkR.d.cts} +2 -2
- package/dist/{types-fX4gbxfV.d.cts → types-bc-4z_gc.d.cts} +10 -34
- package/dist/{types-3eUgOA7I.d.cts → types-ePSqbXRr.d.cts} +6 -13
- package/dist/{types-DrqKICcK.d.ts → types-n4PTnLii.d.ts} +40 -11
- package/dist/{types-DXskkNp8.d.cts → types-pvQzbgNE.d.cts} +3 -3
- package/dist/{types-DajzGOKB.d.ts → types-q-1r_9d1.d.ts} +2 -2
- package/dist/{types-D8Rrz51O.d.cts → types-tKkeLa2B.d.cts} +2 -2
- package/dist/{validateConnectionStatus-828HV8WL.js → validateConnectionStatus-BEGu8wXT.js} +6 -10
- package/dist/validateConnectionStatus-BEGu8wXT.js.map +1 -0
- package/dist/{validateConnectionStatus-CvBKyeDO.cjs → validateConnectionStatus-BEYkQpu9.cjs} +6 -10
- package/dist/validateConnectionStatus-BEYkQpu9.cjs.map +1 -0
- package/dist/vault/index.cjs +4 -4
- package/dist/vault/index.d.cts +1 -1
- package/dist/vault/index.d.ts +1 -1
- package/dist/vault/index.js +4 -4
- package/dist/vault/types.d.cts +1 -1
- package/dist/vault/types.d.ts +1 -1
- package/package.json +32 -4
- package/surface/apps.md +3 -3
- package/surface/auth.md +13 -6
- package/surface/chat.md +6 -6
- package/surface/kaiAgent.md +9 -8
- package/surface/management.md +14 -5
- package/surface/metastore.md +2 -2
- package/surface/queue.md +3 -3
- package/surface/sdk.md +13 -3
- package/surface/storage.md +6 -6
- package/surface/syncActions.md +16 -0
- package/dist/ValidationError-BekhphAq.js +0 -48
- package/dist/ValidationError-BekhphAq.js.map +0 -1
- package/dist/ValidationError-CLVJCCwH.cjs.map +0 -1
- package/dist/authClient-8yU1last.cjs.map +0 -1
- package/dist/authClient-BTo4Afm6.js.map +0 -1
- package/dist/componentId-DkyQ8PM0.cjs.map +0 -1
- package/dist/componentId-vJz-kWs6.js.map +0 -1
- package/dist/concurrent-CH9fbNr3.js.map +0 -1
- package/dist/concurrent-tbiIa0UL.cjs.map +0 -1
- package/dist/configurations-BVvcimzo.js.map +0 -1
- package/dist/configurations-CyFF9Dtu.cjs.map +0 -1
- package/dist/configurations-VtNE0nrT.js.map +0 -1
- package/dist/configurations-zkNjr73Q.cjs.map +0 -1
- package/dist/createFetchClient-BlgPbjFj.cjs.map +0 -1
- package/dist/createFetchClient-C-cadpBx.js.map +0 -1
- package/dist/credential-CAulvfZ-.cjs +0 -47
- package/dist/credential-CAulvfZ-.cjs.map +0 -1
- package/dist/credential-DWXbo4IX.js +0 -36
- package/dist/credential-DWXbo4IX.js.map +0 -1
- package/dist/dedupe-CiskLkGR.cjs +0 -30
- package/dist/dedupe-CiskLkGR.cjs.map +0 -1
- package/dist/dedupe-DYIHgZoG.js +0 -25
- package/dist/dedupe-DYIHgZoG.js.map +0 -1
- package/dist/index-3LUk2rpD.d.ts +0 -65
- package/dist/index-CW3Pj7DY.d.cts +0 -65
- package/dist/isLoginPageRedirect-Cm6Pn8Pj.cjs +0 -25
- package/dist/isLoginPageRedirect-Cm6Pn8Pj.cjs.map +0 -1
- package/dist/isLoginPageRedirect-hyPqyWNX.js +0 -20
- package/dist/isLoginPageRedirect-hyPqyWNX.js.map +0 -1
- package/dist/jobStatus-0_Y3Sr4i.cjs.map +0 -1
- package/dist/jobStatus-PSZJMTiA.js.map +0 -1
- package/dist/kaiAgent-CcT2oNip.js.map +0 -1
- package/dist/kaiAgent-DaB6UCsh.cjs.map +0 -1
- package/dist/management-DeZiQSlw.cjs.map +0 -1
- package/dist/management-ckdnu1dA.js.map +0 -1
- package/dist/metastore-9AGrwjmN.cjs.map +0 -1
- package/dist/metastore-B0PolCjQ.js.map +0 -1
- package/dist/queue-Dagl0sdP.js.map +0 -1
- package/dist/queue-e3rMWbmK.cjs.map +0 -1
- package/dist/semanticLayer-6_gtFxDu.js.map +0 -1
- package/dist/semanticLayer-9uTaU7UT.cjs.map +0 -1
- package/dist/storage-HFUdEy7P.cjs.map +0 -1
- package/dist/storage-Ob1LUIDq.js.map +0 -1
- package/dist/syncActions-B3NS5a0g.js.map +0 -1
- package/dist/syncActions-D2DhY6pP.cjs.map +0 -1
- package/dist/validateConnectionStatus-828HV8WL.js.map +0 -1
- package/dist/validateConnectionStatus-CvBKyeDO.cjs.map +0 -1
|
@@ -1,26 +1,20 @@
|
|
|
1
|
-
import { c as defaultValidateStatus } from "./createFetchClient-
|
|
1
|
+
import { c as defaultValidateStatus } from "./createFetchClient-DXHQK63w.js";
|
|
2
2
|
import { t as SyncActionError } from "./SyncActionError-CoZFsdUk.js";
|
|
3
|
-
import { i as parseOrThrow } from "./ValidationError-
|
|
4
|
-
import { t as createGenericFetchClient } from "./createGenericFetchClient-
|
|
5
|
-
import { t as createOpenapiFetchClient } from "./createOpenapiFetchClient-
|
|
6
|
-
import { t as createAuthHeaders } from "./auth-
|
|
7
|
-
import { t as ComponentId } from "./componentId-
|
|
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-BJLfnaGc.js";
|
|
8
8
|
import * as z$1 from "zod";
|
|
9
9
|
//#region src/clients/syncActions/utils/response.ts
|
|
10
10
|
const asErrorBody = (data) => typeof data === "object" && data !== null ? data : null;
|
|
11
11
|
const asString = (value) => typeof value === "string" && value ? value : void 0;
|
|
12
12
|
const asNumber = (value) => typeof value === "number" ? value : void 0;
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
15
|
-
* `status: 'error'` (the component ran, and said no). Both are recognised here so every sync action
|
|
16
|
-
* fails as one `SyncActionError` — `validateStatus` is the only hook that sees the parsed body of a
|
|
17
|
-
* successful response, which is what the second case needs.
|
|
14
|
+
* Fails a sync action on a non-2xx, or on a 2xx whose body has `status: 'error'`.
|
|
18
15
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* answering `status: 'error'` on a **200** gave a business answer, not a transport failure, so it
|
|
22
|
-
* must not satisfy `isApiError` / `isFetchClientError` — those drive retry and "network problem"
|
|
23
|
-
* handling, and `err.response.status` would read 200 and mislead every status-based branch.
|
|
16
|
+
* - Throws: `coreFetch` only rethrows a returned `ApiError`.
|
|
17
|
+
* - `SyncActionError` is not an `ApiError`, so retry / network-error handling skips it.
|
|
24
18
|
*/
|
|
25
19
|
const syncActionValidateStatus = (apiResponse) => {
|
|
26
20
|
const body = asErrorBody(apiResponse.data);
|
|
@@ -40,39 +34,28 @@ const SyncAction = {
|
|
|
40
34
|
DBT_RUN_RESULTS: "dbtRunResults",
|
|
41
35
|
GIT_REPOSITORY: "gitRepository",
|
|
42
36
|
ENROLL_MFA: "enrollMFA",
|
|
37
|
+
FLOW_MIGRATION_PREVIEW: "preview",
|
|
38
|
+
FLOW_MIGRATION_VALIDATE: "validate",
|
|
43
39
|
LIST_ACTORS: "listActors",
|
|
44
40
|
LIST_TASKS: "listTasks",
|
|
45
|
-
TEST_LOOKER_CREDENTIALS: "testLookerCredentials"
|
|
41
|
+
TEST_LOOKER_CREDENTIALS: "testLookerCredentials",
|
|
42
|
+
SSH_KEYS_GENERATE: "generate",
|
|
43
|
+
ONEDRIVE_SEARCH: "search",
|
|
44
|
+
ONEDRIVE_GET_WORKSHEETS: "getWorksheets",
|
|
45
|
+
ONEDRIVE_CREATE_WORKBOOK: "createWorkbook",
|
|
46
|
+
ONEDRIVE_CREATE_WORKSHEET: "createWorksheet"
|
|
46
47
|
};
|
|
47
48
|
//#endregion
|
|
48
49
|
//#region src/clients/syncActions/schemas.ts
|
|
49
|
-
/**
|
|
50
|
-
* The Keboola-side context every sync action carries, whichever action it is. Namespaces extend it
|
|
51
|
-
* with the fields their own action needs, so a caller never assembles the rest of the body.
|
|
52
|
-
*/
|
|
50
|
+
/** The Keboola-side context every sync action carries; namespaces extend it with their own fields. */
|
|
53
51
|
const syncActionContextSchema = z$1.object({
|
|
54
|
-
/**
|
|
55
|
-
* Required, because omitting it changes nothing: the service normalises a missing, empty or
|
|
56
|
-
* `null` value to `"default"` and resolves that to the default branch's numeric id — the same id,
|
|
57
|
-
* branch type and downstream context an explicit value resolves to, with no extra lookup either
|
|
58
|
-
* way. Requiring it keeps every request self-describing. Both a numeric id and the literal
|
|
59
|
-
* `"default"` are accepted (`keboola/runner-sync-api`: `ExecuteActionRequestProcessor` →
|
|
60
|
-
* `BranchTypeResolver`).
|
|
61
|
-
*/
|
|
52
|
+
/** A numeric id or `"default"`; required so requests are self-describing. */
|
|
62
53
|
branchId: z$1.string().min(1, "Required"),
|
|
63
|
-
/**
|
|
64
|
-
* Leave undefined. The service then runs the component's registered tag from the Developer
|
|
65
|
-
* Portal / Storage component definition — the currently published version, not Docker's
|
|
66
|
-
* `latest`. Set it only to deliberately pin a specific or branch build.
|
|
67
|
-
*/
|
|
54
|
+
/** Leave undefined to run the published version (not Docker `latest`); set only to pin a build. */
|
|
68
55
|
tag: z$1.string().optional(),
|
|
69
56
|
mode: z$1.enum(["run", "debug"]).optional()
|
|
70
57
|
});
|
|
71
|
-
/**
|
|
72
|
-
* The `/actions` request body. `configData` is whatever the component's action expects, so it is
|
|
73
|
-
* only asserted to be an object here — each namespace validates the shape its own action needs
|
|
74
|
-
* before handing it over.
|
|
75
|
-
*/
|
|
58
|
+
/** The `/actions` body; each namespace validates its own `configData` shape. */
|
|
76
59
|
const syncActionBodySchema = syncActionContextSchema.extend({
|
|
77
60
|
componentId: z$1.string().min(1, "Required"),
|
|
78
61
|
action: z$1.string().min(1, "Required"),
|
|
@@ -126,45 +109,31 @@ const createApify = (sendSyncAction) => {
|
|
|
126
109
|
};
|
|
127
110
|
//#endregion
|
|
128
111
|
//#region src/clients/syncActions/dbt/schemas.ts
|
|
129
|
-
/**
|
|
130
|
-
* `componentId` is a plain string here, unlike the git actions' closed enum. Every dbt transformation
|
|
131
|
-
* answers `dbtCompile` and `dbtRunResults` under the same action name and the same payload, so the id
|
|
132
|
-
* selects nothing — it only names the component to run, and rejecting an unlisted one would cost the
|
|
133
|
-
* caller a cast for no guarantee. The component itself refuses an action it does not serve.
|
|
134
|
-
*/
|
|
112
|
+
/** `componentId` is a plain string: every dbt transformation serves the same actions, so it selects nothing. */
|
|
135
113
|
const dbtActionInputSchema = syncActionContextSchema.extend({
|
|
136
114
|
componentId: z$1.string().min(1, "Required"),
|
|
137
115
|
configId: z$1.string().min(1, "Required"),
|
|
138
116
|
artifacts: z$1.record(z$1.string(), z$1.unknown()).optional()
|
|
139
117
|
});
|
|
140
118
|
/**
|
|
141
|
-
*
|
|
142
|
-
* component's own and is preserved, so the caller can render the models in it.
|
|
119
|
+
* Model file name (`orders.sql`) → compiled SQL, in the component's key order.
|
|
143
120
|
*
|
|
144
|
-
* A configuration
|
|
145
|
-
*
|
|
146
|
-
* that sentence. The empty default here is only for a payload that omits the key anyway: rendering
|
|
147
|
-
* "nothing to show" beats failing on a validation error no caller can act on. A key that is
|
|
148
|
-
* *present* with the wrong shape still fails — that is a contract change, and reading it as "no
|
|
149
|
-
* models" would hide it.
|
|
121
|
+
* - A never-run configuration fails with a `SyncActionError`, not an empty payload.
|
|
122
|
+
* - A missing key defaults to empty; a present key of the wrong shape still fails.
|
|
150
123
|
*/
|
|
151
124
|
const dbtCompiledSchema = z$1.object({ compiled: z$1.record(z$1.string(), z$1.string()).default({}) }).transform(({ compiled }) => compiled);
|
|
152
|
-
/**
|
|
153
|
-
* dbt reports the worker as `"Thread-1"`; the number alone is what a consumer positions a row by, so
|
|
154
|
-
* the prefix is stripped here rather than in every consumer. An unparseable value falls back to `0`
|
|
155
|
-
* — one odd worker label must not cost the caller the whole timeline.
|
|
156
|
-
*/
|
|
125
|
+
/** `"Thread-1"` → `1`; an unparseable value falls back to `0` rather than failing the timeline. */
|
|
157
126
|
const dbtThreadSchema = z$1.string().transform((thread) => Number.parseInt(thread.replace(/^Thread-/, ""), 10)).pipe(z$1.number().int().nonnegative()).catch(0);
|
|
158
|
-
/**
|
|
127
|
+
/** Omits `status` and `dependsOn`. */
|
|
159
128
|
const dbtModelTimingSchema = z$1.object({
|
|
160
129
|
id: z$1.string(),
|
|
161
130
|
name: z$1.string(),
|
|
162
131
|
thread: dbtThreadSchema,
|
|
163
|
-
/** ISO timestamps, left
|
|
132
|
+
/** ISO timestamps, left unparsed. */
|
|
164
133
|
timeStarted: z$1.string(),
|
|
165
134
|
timeCompleted: z$1.string()
|
|
166
135
|
});
|
|
167
|
-
/**
|
|
136
|
+
/** A missing key defaults to empty, as in `dbtCompiledSchema`. */
|
|
168
137
|
const dbtRunResultsSchema = z$1.object({ modelTiming: z$1.array(dbtModelTimingSchema).default([]) }).transform(({ modelTiming }) => modelTiming);
|
|
169
138
|
//#endregion
|
|
170
139
|
//#region src/clients/syncActions/dbt/utils.ts
|
|
@@ -210,6 +179,75 @@ const createDbt = (sendSyncAction) => {
|
|
|
210
179
|
};
|
|
211
180
|
};
|
|
212
181
|
//#endregion
|
|
182
|
+
//#region src/clients/syncActions/flowMigration/schemas.ts
|
|
183
|
+
const flowMigrationInputSchema = syncActionContextSchema.extend({ orchestrationIds: z$1.array(z$1.string().min(1, "Required")) });
|
|
184
|
+
const flowMigrationValidationResultSchema = z$1.object({
|
|
185
|
+
orchestrationId: z$1.string(),
|
|
186
|
+
orchestrationName: z$1.string(),
|
|
187
|
+
valid: z$1.boolean(),
|
|
188
|
+
issues: z$1.array(z$1.string())
|
|
189
|
+
});
|
|
190
|
+
/** The orchestration's configuration as the flow it would become; extra keys pass through. */
|
|
191
|
+
const flowMigrationMigratedConfigurationSchema = z$1.looseObject({
|
|
192
|
+
phases: z$1.array(z$1.unknown()).optional(),
|
|
193
|
+
tasks: z$1.array(z$1.unknown()).optional(),
|
|
194
|
+
parameters: z$1.unknown().optional()
|
|
195
|
+
});
|
|
196
|
+
/**
|
|
197
|
+
* One orchestration's dry-run outcome.
|
|
198
|
+
*
|
|
199
|
+
* - `skipped`: it failed validation; `issues` says why.
|
|
200
|
+
* - `failed`: building the flow threw; `error` carries the message.
|
|
201
|
+
*/
|
|
202
|
+
const flowMigrationPreviewResultSchema = z$1.object({
|
|
203
|
+
orchestrationId: z$1.string(),
|
|
204
|
+
orchestrationName: z$1.string(),
|
|
205
|
+
status: z$1.enum([
|
|
206
|
+
"dry-run",
|
|
207
|
+
"skipped",
|
|
208
|
+
"failed"
|
|
209
|
+
]),
|
|
210
|
+
issues: z$1.array(z$1.string()),
|
|
211
|
+
changes: z$1.array(z$1.string()),
|
|
212
|
+
error: z$1.string().optional(),
|
|
213
|
+
migratedConfiguration: flowMigrationMigratedConfigurationSchema.optional()
|
|
214
|
+
});
|
|
215
|
+
const flowMigrationValidationResultsSchema = z$1.array(flowMigrationValidationResultSchema);
|
|
216
|
+
const flowMigrationPreviewResultsSchema = z$1.array(flowMigrationPreviewResultSchema);
|
|
217
|
+
//#endregion
|
|
218
|
+
//#region src/clients/syncActions/flowMigration/flowMigration.ts
|
|
219
|
+
/** Orchestration → flow migration checks; one result per requested orchestration. */
|
|
220
|
+
const createFlowMigration = (sendSyncAction) => {
|
|
221
|
+
const validate = async (input, signal) => {
|
|
222
|
+
const { orchestrationIds, ...context } = parseOrThrow(flowMigrationInputSchema, input);
|
|
223
|
+
const data = await sendSyncAction({
|
|
224
|
+
...context,
|
|
225
|
+
action: SyncAction.FLOW_MIGRATION_VALIDATE,
|
|
226
|
+
componentId: ComponentId.FLOW_MIGRATION_TOOL,
|
|
227
|
+
configData: { parameters: { orchestrationIds } }
|
|
228
|
+
}, { signal });
|
|
229
|
+
return parseOrThrow(flowMigrationValidationResultsSchema, data);
|
|
230
|
+
};
|
|
231
|
+
/** A dry run: nothing is written, and invalid orchestrations come back `skipped`. */
|
|
232
|
+
const preview = async (input, signal) => {
|
|
233
|
+
const { orchestrationIds, ...context } = parseOrThrow(flowMigrationInputSchema, input);
|
|
234
|
+
const data = await sendSyncAction({
|
|
235
|
+
...context,
|
|
236
|
+
action: SyncAction.FLOW_MIGRATION_PREVIEW,
|
|
237
|
+
componentId: ComponentId.FLOW_MIGRATION_TOOL,
|
|
238
|
+
configData: { parameters: {
|
|
239
|
+
mode: "config",
|
|
240
|
+
orchestrationIds
|
|
241
|
+
} }
|
|
242
|
+
}, { signal });
|
|
243
|
+
return parseOrThrow(flowMigrationPreviewResultsSchema, data);
|
|
244
|
+
};
|
|
245
|
+
return {
|
|
246
|
+
validate,
|
|
247
|
+
preview
|
|
248
|
+
};
|
|
249
|
+
};
|
|
250
|
+
//#endregion
|
|
213
251
|
//#region src/clients/syncActions/git/constants.ts
|
|
214
252
|
/**
|
|
215
253
|
* Components whose git repository lives under `parameters.dataApp.git.repository` and that answer to
|
|
@@ -251,14 +289,7 @@ const gitAuthSchema = z$1.discriminatedUnion("type", [
|
|
|
251
289
|
}),
|
|
252
290
|
z$1.object({
|
|
253
291
|
type: z$1.literal("sshKey"),
|
|
254
|
-
/**
|
|
255
|
-
* Optional, unlike the password variant's — the key is the whole credential.
|
|
256
|
-
*
|
|
257
|
-
* - The component rewrites the URL to `git@host:path` and clones over SSH, where the user is
|
|
258
|
-
* always `git` (`keboola/sandboxes`: `GitRepository::resolveRepositoryUrl`).
|
|
259
|
-
* - It never reads `username` on that path, so a deploy key has none to be stored with.
|
|
260
|
-
* - Accept one when the caller has it anyway; it reaches the component and is ignored there.
|
|
261
|
-
*/
|
|
292
|
+
/** Ignored by the component: over SSH the user is always `git`. */
|
|
262
293
|
username: z$1.string().min(1, "Required").optional(),
|
|
263
294
|
"#sshKey": z$1.string().min(1, "Required")
|
|
264
295
|
})
|
|
@@ -268,14 +299,8 @@ const gitInputSchema = syncActionContextSchema.extend({
|
|
|
268
299
|
auth: gitAuthSchema.default({ type: "public" })
|
|
269
300
|
});
|
|
270
301
|
/**
|
|
271
|
-
*
|
|
272
|
-
*
|
|
273
|
-
* enum rejects an unsupported id when parsing, before any request is sent.
|
|
274
|
-
*
|
|
275
|
-
* **Takes no `branch`, deliberately — do not add one.** It is a run-config field the component
|
|
276
|
-
* feeds to `git clone -b <branch>`, so a stale or renamed value fails the clone and breaks the very
|
|
277
|
-
* call you make to find out which branches exist. Accepting it optionally would let a caller
|
|
278
|
-
* reintroduce that by spreading in an existing config; zod strips it instead.
|
|
302
|
+
* **Takes no `branch` — do not add one.** The component clones with `-b <branch>`, so a stale one
|
|
303
|
+
* would fail the branch listing. Zod strips it.
|
|
279
304
|
*/
|
|
280
305
|
const getBranchesInputSchema = gitInputSchema.extend({ componentId: z$1.enum(GIT_FAMILY) }).check((ctx) => {
|
|
281
306
|
const { componentId, auth } = ctx.value;
|
|
@@ -287,26 +312,13 @@ const getBranchesInputSchema = gitInputSchema.extend({ componentId: z$1.enum(GIT
|
|
|
287
312
|
message: `Component "${componentId}" authenticates with a password, not an SSH key.`
|
|
288
313
|
});
|
|
289
314
|
});
|
|
290
|
-
/** Only the data-app family serves `data-app-entrypoints
|
|
315
|
+
/** Only the data-app family serves `data-app-entrypoints`. */
|
|
291
316
|
const getEntrypointsInputSchema = gitInputSchema.extend({
|
|
292
317
|
componentId: z$1.enum(DATA_APP_FAMILY),
|
|
293
|
-
/**
|
|
294
|
-
* Unlike `getBranches`, the branch is a real input here — it selects whose revision's files get
|
|
295
|
-
* enumerated. The *git* branch, not the dev branch (`branchId`) every sync action carries.
|
|
296
|
-
* Omit it for the repository's default branch; don't resolve one client-side.
|
|
297
|
-
*
|
|
298
|
-
* An empty string normalises to omitted rather than being rejected: a config written outside the
|
|
299
|
-
* UI can carry `branch: ""`, and the form this replaces deleted a falsy branch before sending, so
|
|
300
|
-
* refusing it would fail a call that has always meant "the default branch".
|
|
301
|
-
*/
|
|
318
|
+
/** The *git* branch (not `branchId`); omit for the repository default. `""` normalises to omitted. */
|
|
302
319
|
branch: z$1.string().optional().transform((branch) => branch || void 0)
|
|
303
320
|
});
|
|
304
|
-
/**
|
|
305
|
-
* Only `branch` is load-bearing — it is the value the caller selects and stores. The rest is
|
|
306
|
-
* decoration the UI renders beside it, so each field falls back to an empty string rather than
|
|
307
|
-
* failing: one commit with no message must not cost the caller the whole branch list. They stay
|
|
308
|
-
* `string` rather than becoming optional, so a consumer needs no new undefined handling.
|
|
309
|
-
*/
|
|
321
|
+
/** Only `branch` is load-bearing; the rest falls back to `''` so one bad field can't fail the list. */
|
|
310
322
|
const gitBranchSchema = z$1.object({
|
|
311
323
|
branch: z$1.string(),
|
|
312
324
|
sha: z$1.string().catch(""),
|
|
@@ -320,24 +332,12 @@ const gitBranchSchema = z$1.object({
|
|
|
320
332
|
email: ""
|
|
321
333
|
})
|
|
322
334
|
});
|
|
335
|
+
/** An array, or an index-keyed object with gaps (a server-filtered PHP array). */
|
|
336
|
+
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));
|
|
323
337
|
/**
|
|
324
|
-
*
|
|
325
|
-
*
|
|
326
|
-
* nothing ever exercised that schema to settle which is right; the two families are separate
|
|
327
|
-
* implementations, so both may well be real.
|
|
328
|
-
*
|
|
329
|
-
* A list in neither position is a different thing from an empty one, though, and is rejected rather
|
|
330
|
-
* than read as none: an empty array is a real answer (a repository with no branches yet), while an
|
|
331
|
-
* envelope carrying no list at all is one we do not understand, and rendering that as "no branches"
|
|
332
|
-
* would hide the failure behind an ordinary empty state.
|
|
333
|
-
*/
|
|
334
|
-
/**
|
|
335
|
-
* Either a JSON array or an object keyed by stringified indices, gaps included:
|
|
336
|
-
* `{ "0": …, "1": …, "3": … }`. The component filters the list server-side, and a PHP array whose
|
|
337
|
-
* integer keys are no longer contiguous serializes as an object. `Object.values` reads those keys
|
|
338
|
-
* back in ascending numeric order, so the branch order survives either shape.
|
|
338
|
+
* - `repository.branches` is confirmed; the top-level position is accepted but unverified.
|
|
339
|
+
* - A response with neither list is rejected, not read as no branches.
|
|
339
340
|
*/
|
|
340
|
-
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));
|
|
341
341
|
const gitBranchesSchema = z$1.object({
|
|
342
342
|
repository: z$1.object({ branches: gitBranchListSchema.optional() }).optional(),
|
|
343
343
|
branches: gitBranchListSchema.optional()
|
|
@@ -357,7 +357,6 @@ const toCredentials = (auth) => {
|
|
|
357
357
|
const { type: _type, ...credentials } = auth;
|
|
358
358
|
return credentials;
|
|
359
359
|
};
|
|
360
|
-
/** The default is the absence of a branch — the component's own `git clone` decides it. */
|
|
361
360
|
const toRevision = (rev) => rev.revision === "branch" ? { branch: rev.branch } : {};
|
|
362
361
|
/** Data apps nest their repository a level deeper, and call the URL `repository`. */
|
|
363
362
|
const buildDataAppConfigData = ({ repositoryUrl, auth, ...rev }) => ({ parameters: { dataApp: { git: {
|
|
@@ -451,6 +450,153 @@ const createLooker = (sendSyncAction) => {
|
|
|
451
450
|
return { testCredentials };
|
|
452
451
|
};
|
|
453
452
|
//#endregion
|
|
453
|
+
//#region src/clients/syncActions/utils/oauth.ts
|
|
454
|
+
/** The OAuth broker's credentials for one configuration, under the keys the components read. */
|
|
455
|
+
const oauthCredentialsSchema = z$1.object({
|
|
456
|
+
appKey: z$1.string().min(1, "Required"),
|
|
457
|
+
"#data": z$1.string().min(1, "Required"),
|
|
458
|
+
"#appSecret": z$1.string().min(1, "Required")
|
|
459
|
+
});
|
|
460
|
+
/** The `configData.authorization` block every OAuth-backed component expects. */
|
|
461
|
+
const buildOauthAuthorization = (credentials) => ({ oauth_api: { credentials } });
|
|
462
|
+
//#endregion
|
|
463
|
+
//#region src/clients/syncActions/oneDrive/schemas.ts
|
|
464
|
+
const oneDriveInputSchema = syncActionContextSchema.extend({ credentials: oauthCredentialsSchema });
|
|
465
|
+
const oneDriveSearchFilesInputSchema = oneDriveInputSchema.extend({ search: z$1.string().min(1, "Required") });
|
|
466
|
+
const oneDriveGetWorksheetsInputSchema = oneDriveInputSchema.extend({
|
|
467
|
+
componentId: z$1.enum([ComponentId.EX_ONEDRIVE, ComponentId.WR_ONEDRIVE]),
|
|
468
|
+
driveId: z$1.string().min(1, "Required"),
|
|
469
|
+
fileId: z$1.string().min(1, "Required")
|
|
470
|
+
});
|
|
471
|
+
const oneDriveCreateWorkbookInputSchema = oneDriveInputSchema.extend({ path: z$1.string().min(1, "Required") });
|
|
472
|
+
const oneDriveCreateWorksheetInputSchema = oneDriveInputSchema.extend({
|
|
473
|
+
driveId: z$1.string().min(1, "Required"),
|
|
474
|
+
fileId: z$1.string().min(1, "Required"),
|
|
475
|
+
name: z$1.string().min(1, "Required")
|
|
476
|
+
});
|
|
477
|
+
const oneDriveFileSchema = z$1.object({
|
|
478
|
+
driveId: z$1.string(),
|
|
479
|
+
fileId: z$1.string(),
|
|
480
|
+
name: z$1.string(),
|
|
481
|
+
/** `null` when the component resolved no folder for the file. */
|
|
482
|
+
path: z$1.string().nullable()
|
|
483
|
+
});
|
|
484
|
+
const oneDriveWorksheetSchema = z$1.object({
|
|
485
|
+
driveId: z$1.string(),
|
|
486
|
+
fileId: z$1.string(),
|
|
487
|
+
worksheetId: z$1.string(),
|
|
488
|
+
name: z$1.string(),
|
|
489
|
+
/** `name`, suffixed with ` (hidden)` for a hidden worksheet. */
|
|
490
|
+
title: z$1.string(),
|
|
491
|
+
position: z$1.number(),
|
|
492
|
+
visible: z$1.boolean()
|
|
493
|
+
});
|
|
494
|
+
const oneDriveSearchFilesResultSchema = z$1.object({ files: z$1.array(oneDriveFileSchema) });
|
|
495
|
+
const oneDriveGetWorksheetsResultSchema = z$1.object({ worksheets: z$1.array(oneDriveWorksheetSchema) });
|
|
496
|
+
const oneDriveCreateWorkbookResultSchema = z$1.object({ file: z$1.object({
|
|
497
|
+
driveId: z$1.string(),
|
|
498
|
+
fileId: z$1.string()
|
|
499
|
+
}) });
|
|
500
|
+
const oneDriveCreateWorksheetResultSchema = z$1.object({ worksheet: z$1.object({
|
|
501
|
+
driveId: z$1.string(),
|
|
502
|
+
fileId: z$1.string(),
|
|
503
|
+
worksheetId: z$1.string()
|
|
504
|
+
}) });
|
|
505
|
+
//#endregion
|
|
506
|
+
//#region src/clients/syncActions/oneDrive/oneDrive.ts
|
|
507
|
+
const createOneDrive = (sendSyncAction) => {
|
|
508
|
+
const searchFiles = async (input, signal) => {
|
|
509
|
+
const { credentials, search, ...context } = parseOrThrow(oneDriveSearchFilesInputSchema, input);
|
|
510
|
+
const data = await sendSyncAction({
|
|
511
|
+
...context,
|
|
512
|
+
action: SyncAction.ONEDRIVE_SEARCH,
|
|
513
|
+
componentId: ComponentId.EX_ONEDRIVE,
|
|
514
|
+
configData: {
|
|
515
|
+
parameters: { workbook: { search } },
|
|
516
|
+
authorization: buildOauthAuthorization(credentials)
|
|
517
|
+
}
|
|
518
|
+
}, { signal });
|
|
519
|
+
return parseOrThrow(oneDriveSearchFilesResultSchema, data).files;
|
|
520
|
+
};
|
|
521
|
+
const getWorksheets = async (input, signal) => {
|
|
522
|
+
const { credentials, driveId, fileId, ...context } = parseOrThrow(oneDriveGetWorksheetsInputSchema, input);
|
|
523
|
+
const data = await sendSyncAction({
|
|
524
|
+
...context,
|
|
525
|
+
action: SyncAction.ONEDRIVE_GET_WORKSHEETS,
|
|
526
|
+
configData: {
|
|
527
|
+
parameters: { workbook: {
|
|
528
|
+
driveId,
|
|
529
|
+
fileId
|
|
530
|
+
} },
|
|
531
|
+
authorization: buildOauthAuthorization(credentials)
|
|
532
|
+
}
|
|
533
|
+
}, { signal });
|
|
534
|
+
return parseOrThrow(oneDriveGetWorksheetsResultSchema, data).worksheets;
|
|
535
|
+
};
|
|
536
|
+
/** Throws `SyncActionError` when a workbook already exists at `path`. */
|
|
537
|
+
const createWorkbook = async (input, signal) => {
|
|
538
|
+
const { credentials, path, ...context } = parseOrThrow(oneDriveCreateWorkbookInputSchema, input);
|
|
539
|
+
const data = await sendSyncAction({
|
|
540
|
+
...context,
|
|
541
|
+
action: SyncAction.ONEDRIVE_CREATE_WORKBOOK,
|
|
542
|
+
componentId: ComponentId.WR_ONEDRIVE,
|
|
543
|
+
configData: {
|
|
544
|
+
parameters: { workbook: { path } },
|
|
545
|
+
authorization: buildOauthAuthorization(credentials)
|
|
546
|
+
}
|
|
547
|
+
}, { signal });
|
|
548
|
+
return parseOrThrow(oneDriveCreateWorkbookResultSchema, data).file;
|
|
549
|
+
};
|
|
550
|
+
/** Throws `SyncActionError` when the workbook already has a worksheet called `name`. */
|
|
551
|
+
const createWorksheet = async (input, signal) => {
|
|
552
|
+
const { credentials, driveId, fileId, name, ...context } = parseOrThrow(oneDriveCreateWorksheetInputSchema, input);
|
|
553
|
+
const data = await sendSyncAction({
|
|
554
|
+
...context,
|
|
555
|
+
action: SyncAction.ONEDRIVE_CREATE_WORKSHEET,
|
|
556
|
+
componentId: ComponentId.WR_ONEDRIVE,
|
|
557
|
+
configData: {
|
|
558
|
+
parameters: {
|
|
559
|
+
workbook: {
|
|
560
|
+
driveId,
|
|
561
|
+
fileId
|
|
562
|
+
},
|
|
563
|
+
worksheet: { name }
|
|
564
|
+
},
|
|
565
|
+
authorization: buildOauthAuthorization(credentials)
|
|
566
|
+
}
|
|
567
|
+
}, { signal });
|
|
568
|
+
return parseOrThrow(oneDriveCreateWorksheetResultSchema, data).worksheet;
|
|
569
|
+
};
|
|
570
|
+
return {
|
|
571
|
+
searchFiles,
|
|
572
|
+
getWorksheets,
|
|
573
|
+
createWorkbook,
|
|
574
|
+
createWorksheet
|
|
575
|
+
};
|
|
576
|
+
};
|
|
577
|
+
//#endregion
|
|
578
|
+
//#region src/clients/syncActions/sshKeys/schemas.ts
|
|
579
|
+
const sshKeyPairSchema = z$1.object({
|
|
580
|
+
status: z$1.literal("success"),
|
|
581
|
+
public: z$1.string(),
|
|
582
|
+
private: z$1.string()
|
|
583
|
+
});
|
|
584
|
+
//#endregion
|
|
585
|
+
//#region src/clients/syncActions/sshKeys/sshKeys.ts
|
|
586
|
+
const createSshKeys = (sendSyncAction) => {
|
|
587
|
+
/** Generates a new 4096-bit RSA key pair; the component keeps no copy. */
|
|
588
|
+
const generate = async (input, signal) => {
|
|
589
|
+
const data = await sendSyncAction({
|
|
590
|
+
...parseOrThrow(syncActionContextSchema, input),
|
|
591
|
+
action: SyncAction.SSH_KEYS_GENERATE,
|
|
592
|
+
componentId: ComponentId.SSH_KEYGEN_V2,
|
|
593
|
+
configData: {}
|
|
594
|
+
}, { signal });
|
|
595
|
+
return parseOrThrow(sshKeyPairSchema, data);
|
|
596
|
+
};
|
|
597
|
+
return { generate };
|
|
598
|
+
};
|
|
599
|
+
//#endregion
|
|
454
600
|
//#region src/clients/syncActions/syncActionsClient.ts
|
|
455
601
|
const createSendSyncAction = (client) => {
|
|
456
602
|
return async (body, options = {}) => {
|
|
@@ -487,11 +633,14 @@ const createSyncActionsClient = ({ baseUrl, middlewares, auth }) => {
|
|
|
487
633
|
enrollMFA,
|
|
488
634
|
apify: createApify(sendSyncAction),
|
|
489
635
|
dbt: createDbt(sendSyncAction),
|
|
636
|
+
flowMigration: createFlowMigration(sendSyncAction),
|
|
490
637
|
git: createGit(sendSyncAction),
|
|
491
|
-
looker: createLooker(sendSyncAction)
|
|
638
|
+
looker: createLooker(sendSyncAction),
|
|
639
|
+
oneDrive: createOneDrive(sendSyncAction),
|
|
640
|
+
sshKeys: createSshKeys(sendSyncAction)
|
|
492
641
|
};
|
|
493
642
|
};
|
|
494
643
|
//#endregion
|
|
495
644
|
export { createSyncActionsClient as t };
|
|
496
645
|
|
|
497
|
-
//# sourceMappingURL=syncActions-
|
|
646
|
+
//# sourceMappingURL=syncActions-ChNWuhYA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syncActions-ChNWuhYA.js","names":["z","z","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/utils/oauth.ts","../src/clients/syncActions/oneDrive/schemas.ts","../src/clients/syncActions/oneDrive/oneDrive.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 ONEDRIVE_SEARCH: 'search',\n ONEDRIVE_GET_WORKSHEETS: 'getWorksheets',\n ONEDRIVE_CREATE_WORKBOOK: 'createWorkbook',\n ONEDRIVE_CREATE_WORKSHEET: 'createWorksheet',\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\n/** The OAuth broker's credentials for one configuration, under the keys the components read. */\nexport const oauthCredentialsSchema = z.object({\n appKey: z.string().min(1, 'Required'),\n '#data': z.string().min(1, 'Required'),\n '#appSecret': z.string().min(1, 'Required'),\n});\n\nexport type OauthCredentials = z.infer<typeof oauthCredentialsSchema>;\n\n/** The `configData.authorization` block every OAuth-backed component expects. */\nexport const buildOauthAuthorization = (credentials: OauthCredentials) => ({\n oauth_api: { credentials },\n});\n","import * as z from 'zod';\n\nimport { ComponentId } from '../../../constants';\nimport { syncActionContextSchema } from '../schemas';\nimport { oauthCredentialsSchema } from '../utils/oauth';\n\nconst oneDriveInputSchema = syncActionContextSchema.extend({\n credentials: oauthCredentialsSchema,\n});\n\nexport const oneDriveSearchFilesInputSchema = oneDriveInputSchema.extend({\n search: z.string().min(1, 'Required'),\n});\n\nexport const oneDriveGetWorksheetsInputSchema = oneDriveInputSchema.extend({\n componentId: z.enum([ComponentId.EX_ONEDRIVE, ComponentId.WR_ONEDRIVE]),\n driveId: z.string().min(1, 'Required'),\n fileId: z.string().min(1, 'Required'),\n});\n\nexport const oneDriveCreateWorkbookInputSchema = oneDriveInputSchema.extend({\n path: z.string().min(1, 'Required'),\n});\n\nexport const oneDriveCreateWorksheetInputSchema = oneDriveInputSchema.extend({\n driveId: z.string().min(1, 'Required'),\n fileId: z.string().min(1, 'Required'),\n name: z.string().min(1, 'Required'),\n});\n\nconst oneDriveFileSchema = z.object({\n driveId: z.string(),\n fileId: z.string(),\n name: z.string(),\n /** `null` when the component resolved no folder for the file. */\n path: z.string().nullable(),\n});\n\nconst oneDriveWorksheetSchema = z.object({\n driveId: z.string(),\n fileId: z.string(),\n worksheetId: z.string(),\n name: z.string(),\n /** `name`, suffixed with ` (hidden)` for a hidden worksheet. */\n title: z.string(),\n position: z.number(),\n visible: z.boolean(),\n});\n\nexport const oneDriveSearchFilesResultSchema = z.object({\n files: z.array(oneDriveFileSchema),\n});\n\nexport const oneDriveGetWorksheetsResultSchema = z.object({\n worksheets: z.array(oneDriveWorksheetSchema),\n});\n\nexport const oneDriveCreateWorkbookResultSchema = z.object({\n file: z.object({\n driveId: z.string(),\n fileId: z.string(),\n }),\n});\n\nexport const oneDriveCreateWorksheetResultSchema = z.object({\n worksheet: z.object({\n driveId: z.string(),\n fileId: z.string(),\n worksheetId: z.string(),\n }),\n});\n\nexport type OneDriveSearchFilesInput = z.infer<typeof oneDriveSearchFilesInputSchema>;\nexport type OneDriveGetWorksheetsInput = z.infer<typeof oneDriveGetWorksheetsInputSchema>;\nexport type OneDriveCreateWorkbookInput = z.infer<typeof oneDriveCreateWorkbookInputSchema>;\nexport type OneDriveCreateWorksheetInput = z.infer<typeof oneDriveCreateWorksheetInputSchema>;\nexport type OneDriveFile = z.infer<typeof oneDriveFileSchema>;\nexport type OneDriveWorksheet = z.infer<typeof oneDriveWorksheetSchema>;\n","import { ComponentId } from '../../../constants';\nimport { parseOrThrow } from '../../../errors';\nimport { SyncAction } from '../constants';\nimport type { SendSyncAction } from '../syncActionsClient';\nimport { buildOauthAuthorization } from '../utils/oauth';\n\nimport {\n type OneDriveCreateWorkbookInput,\n oneDriveCreateWorkbookInputSchema,\n oneDriveCreateWorkbookResultSchema,\n type OneDriveCreateWorksheetInput,\n oneDriveCreateWorksheetInputSchema,\n oneDriveCreateWorksheetResultSchema,\n type OneDriveGetWorksheetsInput,\n oneDriveGetWorksheetsInputSchema,\n oneDriveGetWorksheetsResultSchema,\n type OneDriveSearchFilesInput,\n oneDriveSearchFilesInputSchema,\n oneDriveSearchFilesResultSchema,\n} from './schemas';\n\nexport const createOneDrive = (sendSyncAction: SendSyncAction) => {\n const searchFiles = async (input: OneDriveSearchFilesInput, signal?: AbortSignal) => {\n const { credentials, search, ...context } = parseOrThrow(oneDriveSearchFilesInputSchema, input);\n\n const data = await sendSyncAction(\n {\n ...context,\n action: SyncAction.ONEDRIVE_SEARCH,\n componentId: ComponentId.EX_ONEDRIVE,\n configData: {\n parameters: { workbook: { search } },\n authorization: buildOauthAuthorization(credentials),\n },\n },\n { signal },\n );\n\n return parseOrThrow(oneDriveSearchFilesResultSchema, data).files;\n };\n\n const getWorksheets = async (input: OneDriveGetWorksheetsInput, signal?: AbortSignal) => {\n const { credentials, driveId, fileId, ...context } = parseOrThrow(\n oneDriveGetWorksheetsInputSchema,\n input,\n );\n\n const data = await sendSyncAction(\n {\n ...context,\n action: SyncAction.ONEDRIVE_GET_WORKSHEETS,\n configData: {\n parameters: { workbook: { driveId, fileId } },\n authorization: buildOauthAuthorization(credentials),\n },\n },\n { signal },\n );\n\n return parseOrThrow(oneDriveGetWorksheetsResultSchema, data).worksheets;\n };\n\n /** Throws `SyncActionError` when a workbook already exists at `path`. */\n const createWorkbook = async (input: OneDriveCreateWorkbookInput, signal?: AbortSignal) => {\n const { credentials, path, ...context } = parseOrThrow(\n oneDriveCreateWorkbookInputSchema,\n input,\n );\n\n const data = await sendSyncAction(\n {\n ...context,\n action: SyncAction.ONEDRIVE_CREATE_WORKBOOK,\n componentId: ComponentId.WR_ONEDRIVE,\n configData: {\n parameters: { workbook: { path } },\n authorization: buildOauthAuthorization(credentials),\n },\n },\n { signal },\n );\n\n return parseOrThrow(oneDriveCreateWorkbookResultSchema, data).file;\n };\n\n /** Throws `SyncActionError` when the workbook already has a worksheet called `name`. */\n const createWorksheet = async (input: OneDriveCreateWorksheetInput, signal?: AbortSignal) => {\n const { credentials, driveId, fileId, name, ...context } = parseOrThrow(\n oneDriveCreateWorksheetInputSchema,\n input,\n );\n\n const data = await sendSyncAction(\n {\n ...context,\n action: SyncAction.ONEDRIVE_CREATE_WORKSHEET,\n componentId: ComponentId.WR_ONEDRIVE,\n configData: {\n parameters: { workbook: { driveId, fileId }, worksheet: { name } },\n authorization: buildOauthAuthorization(credentials),\n },\n },\n { signal },\n );\n\n return parseOrThrow(oneDriveCreateWorksheetResultSchema, data).worksheet;\n };\n\n return { searchFiles, getWorksheets, createWorkbook, createWorksheet };\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 { createOneDrive } from './oneDrive';\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 oneDrive: createOneDrive(sendSyncAction),\n sshKeys: createSshKeys(sendSyncAction),\n };\n};\n"],"mappings":"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"}
|