@keboola/api-client 39.0.0 → 40.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 +23 -2
- package/CHANGELOG.md +120 -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-DkyQ8PM0.cjs → componentId-57vjsa2i.cjs} +4 -2
- package/dist/{componentId-DkyQ8PM0.cjs.map → componentId-57vjsa2i.cjs.map} +1 -1
- package/dist/{componentId-vJz-kWs6.js → componentId-C6WZa_R1.js} +4 -2
- package/dist/{componentId-vJz-kWs6.js.map → componentId-C6WZa_R1.js.map} +1 -1
- 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-VtNE0nrT.js → configurations-BPKGGy-M.js} +14 -22
- package/dist/configurations-BPKGGy-M.js.map +1 -0
- package/dist/{configurations-CyFF9Dtu.cjs → configurations-BTRHVSRq.cjs} +20 -53
- package/dist/configurations-BTRHVSRq.cjs.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-IYyOvhI3.cjs} +14 -22
- package/dist/configurations-IYyOvhI3.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-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-GfKzh267.d.ts → index-BkqackZf.d.ts} +369 -297
- 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-DBklbaTp.d.cts → index-C8gRRWHL.d.cts} +3 -1
- package/dist/{index-DBklbaTp.d.ts → index-C8gRRWHL.d.ts} +3 -1
- package/dist/{index-3LUk2rpD.d.ts → index-CPu4Nezo.d.cts} +34 -9
- 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-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-CHXnJQ9s.d.cts → index-DXYASsPP.d.cts} +369 -297
- package/dist/{index-BuegqrS1.d.ts → index-D_-4uQF8.d.ts} +3 -3
- package/dist/{index-CW3Pj7DY.d.cts → index-Dazy-meb.d.ts} +34 -9
- 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.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-BmmoqZO_.js} +130 -111
- package/dist/syncActions-BmmoqZO_.js.map +1 -0
- package/dist/{syncActions-D2DhY6pP.cjs → syncActions-CtcLGQiy.cjs} +130 -111
- package/dist/syncActions-CtcLGQiy.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-DYzJ6K2e.d.ts → types-BYM9Ptz5.d.ts} +93 -43
- 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-CW6lCqrC.d.cts → types-CFeZCQ9p.d.cts} +93 -43
- 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-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-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 +9 -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/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/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,13 +1,9 @@
|
|
|
1
1
|
//#region src/errors/ValidationError.ts
|
|
2
2
|
/**
|
|
3
|
-
* A
|
|
4
|
-
* not match the shape the endpoint is documented to return.
|
|
3
|
+
* A rejected SDK input or a response not matching its documented shape.
|
|
5
4
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* message puts that blob in front of a user. `message` here is a single line built for exactly that
|
|
9
|
-
* rendering, while `issues` keeps the structured detail for anyone inspecting the failure rather
|
|
10
|
-
* than displaying it.
|
|
5
|
+
* - Replaces `ZodError`, whose `message` is a JSON blob; `message` here is one user-facing line.
|
|
6
|
+
* - `issues` keeps the structured detail.
|
|
11
7
|
*/
|
|
12
8
|
var ValidationError = class ValidationError extends Error {
|
|
13
9
|
issues;
|
|
@@ -22,20 +18,18 @@ const isValidationError = (error) => error instanceof ValidationError;
|
|
|
22
18
|
/**
|
|
23
19
|
* One line per issue, prefixed by the field it belongs to.
|
|
24
20
|
*
|
|
25
|
-
* - Not `z.prettifyError
|
|
26
|
-
*
|
|
27
|
-
* -
|
|
28
|
-
* element still owes a reason, and it needs the same one line without a `ValidationError`.
|
|
29
|
-
* - Says which field and what is wrong with it, never the value — so it is safe to log.
|
|
21
|
+
* - Not `z.prettifyError`: its terminal glyphs and newlines collapse in HTML.
|
|
22
|
+
* - Exported for boundaries that drop malformed elements instead of throwing.
|
|
23
|
+
* - Never includes the value, so it is safe to log.
|
|
30
24
|
*/
|
|
31
25
|
const formatValidationIssues = (issues) => issues.map((issue) => {
|
|
32
26
|
const path = issue.path.join(".");
|
|
33
27
|
return path ? `${path}: ${issue.message}` : issue.message;
|
|
34
28
|
}).join("; ");
|
|
35
29
|
/**
|
|
36
|
-
* Parses with `schema`,
|
|
37
|
-
*
|
|
38
|
-
* every response body.
|
|
30
|
+
* Parses with `schema`, throwing a {@link ValidationError} instead of a `ZodError`.
|
|
31
|
+
*
|
|
32
|
+
* - Use instead of `schema.parse()` for every client input and response body.
|
|
39
33
|
*/
|
|
40
34
|
const parseOrThrow = (schema, value) => {
|
|
41
35
|
const result = schema.safeParse(value);
|
|
@@ -68,4 +62,4 @@ Object.defineProperty(exports, "parseOrThrow", {
|
|
|
68
62
|
}
|
|
69
63
|
});
|
|
70
64
|
|
|
71
|
-
//# sourceMappingURL=ValidationError-
|
|
65
|
+
//# sourceMappingURL=ValidationError-D65QU0uq.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ValidationError-D65QU0uq.cjs","names":[],"sources":["../src/errors/ValidationError.ts"],"sourcesContent":["import type * as z from 'zod';\n\n/**\n * A rejected SDK input or a response not matching its documented shape.\n *\n * - Replaces `ZodError`, whose `message` is a JSON blob; `message` here is one user-facing line.\n * - `issues` keeps the structured detail.\n */\nexport class ValidationError extends Error {\n issues: z.core.$ZodIssue[];\n\n constructor(message: string, issues: z.core.$ZodIssue[] = []) {\n super(message);\n this.name = 'ValidationError';\n this.issues = issues;\n Object.setPrototypeOf(this, ValidationError.prototype);\n }\n}\n\nexport const isValidationError = (error: unknown): error is ValidationError =>\n error instanceof ValidationError;\n\n/**\n * One line per issue, prefixed by the field it belongs to.\n *\n * - Not `z.prettifyError`: its terminal glyphs and newlines collapse in HTML.\n * - Exported for boundaries that drop malformed elements instead of throwing.\n * - Never includes the value, so it is safe to log.\n */\nexport const formatValidationIssues = (issues: readonly z.core.$ZodIssue[]) =>\n issues\n .map((issue) => {\n const path = issue.path.join('.');\n\n // A root-level issue's message already names the whole payload.\n return path ? `${path}: ${issue.message}` : issue.message;\n })\n .join('; ');\n\n/**\n * Parses with `schema`, throwing a {@link ValidationError} instead of a `ZodError`.\n *\n * - Use instead of `schema.parse()` for every client input and response body.\n */\nexport const parseOrThrow = <T extends z.ZodType>(schema: T, value: unknown): z.output<T> => {\n const result = schema.safeParse(value);\n\n if (result.success) return result.data;\n\n throw new ValidationError(formatValidationIssues(result.error.issues), result.error.issues);\n};\n"],"mappings":";;;;;;;AAQA,IAAa,kBAAb,MAAa,wBAAwB,MAAM;CACzC;CAEA,YAAY,SAAiB,SAA6B,CAAC,GAAG;EAC5D,MAAM,OAAO;EACb,KAAK,OAAO;EACZ,KAAK,SAAS;EACd,OAAO,eAAe,MAAM,gBAAgB,SAAS;CACvD;AACF;AAEA,MAAa,qBAAqB,UAChC,iBAAiB;;;;;;;;AASnB,MAAa,0BAA0B,WACrC,OACG,KAAK,UAAU;CACd,MAAM,OAAO,MAAM,KAAK,KAAK,GAAG;CAGhC,OAAO,OAAO,GAAG,KAAK,IAAI,MAAM,YAAY,MAAM;AACpD,CAAC,CAAC,CACD,KAAK,IAAI;;;;;;AAOd,MAAa,gBAAqC,QAAW,UAAgC;CAC3F,MAAM,SAAS,OAAO,UAAU,KAAK;CAErC,IAAI,OAAO,SAAS,OAAO,OAAO;CAElC,MAAM,IAAI,gBAAgB,uBAAuB,OAAO,MAAM,MAAM,GAAG,OAAO,MAAM,MAAM;AAC5F"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
//#region src/errors/ValidationError.ts
|
|
2
|
+
/**
|
|
3
|
+
* A rejected SDK input or a response not matching its documented shape.
|
|
4
|
+
*
|
|
5
|
+
* - Replaces `ZodError`, whose `message` is a JSON blob; `message` here is one user-facing line.
|
|
6
|
+
* - `issues` keeps the structured detail.
|
|
7
|
+
*/
|
|
8
|
+
var ValidationError = class ValidationError extends Error {
|
|
9
|
+
issues;
|
|
10
|
+
constructor(message, issues = []) {
|
|
11
|
+
super(message);
|
|
12
|
+
this.name = "ValidationError";
|
|
13
|
+
this.issues = issues;
|
|
14
|
+
Object.setPrototypeOf(this, ValidationError.prototype);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
const isValidationError = (error) => error instanceof ValidationError;
|
|
18
|
+
/**
|
|
19
|
+
* One line per issue, prefixed by the field it belongs to.
|
|
20
|
+
*
|
|
21
|
+
* - Not `z.prettifyError`: its terminal glyphs and newlines collapse in HTML.
|
|
22
|
+
* - Exported for boundaries that drop malformed elements instead of throwing.
|
|
23
|
+
* - Never includes the value, so it is safe to log.
|
|
24
|
+
*/
|
|
25
|
+
const formatValidationIssues = (issues) => issues.map((issue) => {
|
|
26
|
+
const path = issue.path.join(".");
|
|
27
|
+
return path ? `${path}: ${issue.message}` : issue.message;
|
|
28
|
+
}).join("; ");
|
|
29
|
+
/**
|
|
30
|
+
* Parses with `schema`, throwing a {@link ValidationError} instead of a `ZodError`.
|
|
31
|
+
*
|
|
32
|
+
* - Use instead of `schema.parse()` for every client input and response body.
|
|
33
|
+
*/
|
|
34
|
+
const parseOrThrow = (schema, value) => {
|
|
35
|
+
const result = schema.safeParse(value);
|
|
36
|
+
if (result.success) return result.data;
|
|
37
|
+
throw new ValidationError(formatValidationIssues(result.error.issues), result.error.issues);
|
|
38
|
+
};
|
|
39
|
+
//#endregion
|
|
40
|
+
export { parseOrThrow as i, formatValidationIssues as n, isValidationError as r, ValidationError as t };
|
|
41
|
+
|
|
42
|
+
//# sourceMappingURL=ValidationError-DjhtNMfZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ValidationError-DjhtNMfZ.js","names":[],"sources":["../src/errors/ValidationError.ts"],"sourcesContent":["import type * as z from 'zod';\n\n/**\n * A rejected SDK input or a response not matching its documented shape.\n *\n * - Replaces `ZodError`, whose `message` is a JSON blob; `message` here is one user-facing line.\n * - `issues` keeps the structured detail.\n */\nexport class ValidationError extends Error {\n issues: z.core.$ZodIssue[];\n\n constructor(message: string, issues: z.core.$ZodIssue[] = []) {\n super(message);\n this.name = 'ValidationError';\n this.issues = issues;\n Object.setPrototypeOf(this, ValidationError.prototype);\n }\n}\n\nexport const isValidationError = (error: unknown): error is ValidationError =>\n error instanceof ValidationError;\n\n/**\n * One line per issue, prefixed by the field it belongs to.\n *\n * - Not `z.prettifyError`: its terminal glyphs and newlines collapse in HTML.\n * - Exported for boundaries that drop malformed elements instead of throwing.\n * - Never includes the value, so it is safe to log.\n */\nexport const formatValidationIssues = (issues: readonly z.core.$ZodIssue[]) =>\n issues\n .map((issue) => {\n const path = issue.path.join('.');\n\n // A root-level issue's message already names the whole payload.\n return path ? `${path}: ${issue.message}` : issue.message;\n })\n .join('; ');\n\n/**\n * Parses with `schema`, throwing a {@link ValidationError} instead of a `ZodError`.\n *\n * - Use instead of `schema.parse()` for every client input and response body.\n */\nexport const parseOrThrow = <T extends z.ZodType>(schema: T, value: unknown): z.output<T> => {\n const result = schema.safeParse(value);\n\n if (result.success) return result.data;\n\n throw new ValidationError(formatValidationIssues(result.error.issues), result.error.issues);\n};\n"],"mappings":";;;;;;;AAQA,IAAa,kBAAb,MAAa,wBAAwB,MAAM;CACzC;CAEA,YAAY,SAAiB,SAA6B,CAAC,GAAG;EAC5D,MAAM,OAAO;EACb,KAAK,OAAO;EACZ,KAAK,SAAS;EACd,OAAO,eAAe,MAAM,gBAAgB,SAAS;CACvD;AACF;AAEA,MAAa,qBAAqB,UAChC,iBAAiB;;;;;;;;AASnB,MAAa,0BAA0B,WACrC,OACG,KAAK,UAAU;CACd,MAAM,OAAO,MAAM,KAAK,KAAK,GAAG;CAGhC,OAAO,OAAO,GAAG,KAAK,IAAI,MAAM,YAAY,MAAM;AACpD,CAAC,CAAC,CACD,KAAK,IAAI;;;;;;AAOd,MAAa,gBAAqC,QAAW,UAAgC;CAC3F,MAAM,SAAS,OAAO,UAAU,KAAK;CAErC,IAAI,OAAO,SAAS,OAAO,OAAO;CAElC,MAAM,IAAI,gBAAgB,uBAAuB,OAAO,MAAM,MAAM,GAAG,OAAO,MAAM,MAAM;AAC5F"}
|
package/dist/ai/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_createOpenapiFetchClient = require("../createOpenapiFetchClient-
|
|
3
|
-
const require_auth = require("../auth-
|
|
2
|
+
const require_createOpenapiFetchClient = require("../createOpenapiFetchClient-BYqW-9tm.cjs");
|
|
3
|
+
const require_auth = require("../auth-Dm0F2rOh.cjs");
|
|
4
4
|
//#region src/clients/ai/aiClient.ts
|
|
5
5
|
const createAiClient = ({ baseUrl, middlewares, auth }) => {
|
|
6
6
|
const client = require_createOpenapiFetchClient.createOpenapiFetchClient({
|
package/dist/ai/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as DescribeConfigurationVersionBody, f as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, p as components, r as DescribeConfigurationBody, s as DocsQuestionBody, u as FeedbackBody } from "../types-
|
|
2
|
-
import { n as ClientInitOptions } from "../types-
|
|
1
|
+
import { a as DescribeConfigurationVersionBody, f as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, p as components, r as DescribeConfigurationBody, s as DocsQuestionBody, u as FeedbackBody } from "../types-YHUEArkR.cjs";
|
|
2
|
+
import { n as ClientInitOptions } from "../types-DoZtE9tz.cjs";
|
|
3
3
|
//#region src/clients/ai/aiClient.d.ts
|
|
4
4
|
declare const createAiClient: ({ baseUrl, middlewares, auth }: ClientInitOptions) => {
|
|
5
5
|
healthCheck: (signal?: AbortSignal) => Promise<{
|
package/dist/ai/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as DescribeConfigurationVersionBody, f as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, p as components, r as DescribeConfigurationBody, s as DocsQuestionBody, u as FeedbackBody } from "../types-
|
|
2
|
-
import { n as ClientInitOptions } from "../types-
|
|
1
|
+
import { a as DescribeConfigurationVersionBody, f as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, p as components, r as DescribeConfigurationBody, s as DocsQuestionBody, u as FeedbackBody } from "../types-CfwqVkEA.js";
|
|
2
|
+
import { n as ClientInitOptions } from "../types-B2w2TtSA.js";
|
|
3
3
|
//#region src/clients/ai/aiClient.d.ts
|
|
4
4
|
declare const createAiClient: ({ baseUrl, middlewares, auth }: ClientInitOptions) => {
|
|
5
5
|
healthCheck: (signal?: AbortSignal) => Promise<{
|
package/dist/ai/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as createOpenapiFetchClient } from "../createOpenapiFetchClient-
|
|
2
|
-
import { t as createAuthHeaders } from "../auth-
|
|
1
|
+
import { t as createOpenapiFetchClient } from "../createOpenapiFetchClient-DZUOVupy.js";
|
|
2
|
+
import { t as createAuthHeaders } from "../auth-DworfoPy.js";
|
|
3
3
|
//#region src/clients/ai/aiClient.ts
|
|
4
4
|
const createAiClient = ({ baseUrl, middlewares, auth }) => {
|
|
5
5
|
const client = createOpenapiFetchClient({
|
package/dist/ai/types.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as DescribeConfigurationVersionBody, c as ErrorExplanation, d as ObjectDescription, f as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, n as ComponentSuggestion, o as DocsAnswer, r as DescribeConfigurationBody, s as DocsQuestionBody, t as ComponentDocsDetail, u as FeedbackBody } from "../types-
|
|
1
|
+
import { a as DescribeConfigurationVersionBody, c as ErrorExplanation, d as ObjectDescription, f as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, n as ComponentSuggestion, o as DocsAnswer, r as DescribeConfigurationBody, s as DocsQuestionBody, t as ComponentDocsDetail, u as FeedbackBody } from "../types-YHUEArkR.cjs";
|
|
2
2
|
export { ComponentDocsDetail, ComponentSuggestion, DescribeConfigurationBody, DescribeConfigurationMergeBody, DescribeConfigurationVersionBody, DocsAnswer, DocsQuestionBody, ErrorExplanation, ExplainErrorBody, FeedbackBody, ObjectDescription, SuggestComponentBody };
|
package/dist/ai/types.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as DescribeConfigurationVersionBody, c as ErrorExplanation, d as ObjectDescription, f as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, n as ComponentSuggestion, o as DocsAnswer, r as DescribeConfigurationBody, s as DocsQuestionBody, t as ComponentDocsDetail, u as FeedbackBody } from "../types-
|
|
1
|
+
import { a as DescribeConfigurationVersionBody, c as ErrorExplanation, d as ObjectDescription, f as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, n as ComponentSuggestion, o as DocsAnswer, r as DescribeConfigurationBody, s as DocsQuestionBody, t as ComponentDocsDetail, u as FeedbackBody } from "../types-CfwqVkEA.js";
|
|
2
2
|
export { ComponentDocsDetail, ComponentSuggestion, DescribeConfigurationBody, DescribeConfigurationMergeBody, DescribeConfigurationVersionBody, DocsAnswer, DocsQuestionBody, ErrorExplanation, ExplainErrorBody, FeedbackBody, ObjectDescription, SuggestComponentBody };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const require_rolldown_runtime = require("./rolldown-runtime-VH7oDXx4.cjs");
|
|
2
2
|
const require_isPlainObject = require("./isPlainObject-BB3iy87C.cjs");
|
|
3
|
-
const require_createFetchClient = require("./createFetchClient-
|
|
3
|
+
const require_createFetchClient = require("./createFetchClient-Cwp8max9.cjs");
|
|
4
4
|
let zod = require("zod");
|
|
5
5
|
zod = require_rolldown_runtime.__toESM(zod, 1);
|
|
6
6
|
let dayjs = require("dayjs");
|
|
@@ -150,4 +150,4 @@ Object.defineProperty(exports, "readAppLogsTail", {
|
|
|
150
150
|
}
|
|
151
151
|
});
|
|
152
152
|
|
|
153
|
-
//# sourceMappingURL=appLogs-
|
|
153
|
+
//# sourceMappingURL=appLogs-B9zFJIuy.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appLogs-
|
|
1
|
+
{"version":3,"file":"appLogs-B9zFJIuy.cjs","names":["utc","z","record","isPlainObject","isApiError","HttpStatus","parseContentDispositionHeader","HttpHeader"],"sources":["../src/domain/appLogs.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc.js';\nimport * as z from 'zod';\n\nimport {\n type ApiResponse,\n HttpHeader,\n isApiError,\n parseContentDispositionHeader,\n} from '../fetchClient';\nimport { HttpStatus } from '../internal';\nimport { isPlainObject } from '../utils/isPlainObject';\n\n/**\n * Reading a data app's container output. Shared by the two clients wrapping sandboxes-service —\n * `dataScience` (`/v1`) and `apps` (`/v2`) — which serve the same logs under different paths, so the\n * tail contract (how a line is parsed, where the next poll resumes, and that an idle app is not an\n * error) is defined once here rather than per surface.\n */\n\ndayjs.extend(utc);\n\nexport type LogEntry = {\n timestamp: string | null;\n message: string;\n};\n\nconst DEFAULT_LOGS_FILE_NAME = 'logs.txt';\n\nconst ISO_TIMESTAMP_REGEX = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z/;\nconst LEADING_ISO_TIMESTAMP_REGEX = /^(\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z)\\s?/;\n\n/** The error envelope sandboxes-service returns; the tail branches on its `code`. */\nconst TailError = z.object({\n context: z.object({\n code: z.string(),\n }),\n});\n\n/**\n * There is nothing to read right now, reported per scope: an app whose serving member is asleep\n * answers `apps.appNotRunning`, a deployment that isn't running answers `apps.deploymentNotRunning` —\n * the normal state of a staged or retired one, since a deployment only runs while it is production.\n */\nconst NOTHING_RUNNING_CODES = new Set(['apps.appNotRunning', 'apps.deploymentNotRunning']);\n\nconst tryParseJsonl = (line: string): LogEntry | null => {\n if (!line.startsWith('{')) return null;\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(line);\n } catch {\n return null;\n }\n\n if (typeof parsed !== 'object' || parsed === null) return null;\n\n const record = parsed as Record<string, unknown>;\n const { timestamp, message } = record;\n\n if (typeof timestamp !== 'string' || typeof message !== 'string') return null;\n\n return {\n timestamp,\n message,\n };\n};\n\nconst parsePlainTextLine = (line: string): LogEntry => {\n const match = line.match(LEADING_ISO_TIMESTAMP_REGEX);\n if (match) {\n return { timestamp: match[1]!, message: line.slice(match[0].length) };\n }\n return { timestamp: null, message: line };\n};\n\nexport const parseLogLine = (line: string): LogEntry =>\n tryParseJsonl(line) ?? parsePlainTextLine(line);\n\nconst toLogEntryFromObject = (raw: Record<string, unknown>): LogEntry | null => {\n if (typeof raw.message !== 'string') return null;\n return {\n timestamp: typeof raw.timestamp === 'string' ? raw.timestamp : null,\n message: raw.message,\n };\n};\n\nexport const parseLogLines = (raw: unknown): LogEntry[] => {\n if (raw === null || raw === undefined || raw === '') return [];\n\n if (Array.isArray(raw)) {\n return raw.flatMap((item) => {\n if (typeof item === 'string') return item === '' ? [] : [parseLogLine(item)];\n if (isPlainObject(item)) {\n const entry = toLogEntryFromObject(item);\n return entry ? [entry] : [];\n }\n return [];\n });\n }\n\n if (isPlainObject(raw)) {\n const entry = toLogEntryFromObject(raw);\n return entry ? [entry] : [];\n }\n\n if (typeof raw !== 'string') return [];\n\n const lines = raw.split('\\n');\n const entries: LogEntry[] = [];\n for (const line of lines) {\n if (line === '') continue;\n entries.push(parseLogLine(line));\n }\n return entries;\n};\n\nexport const lastLogTimestamp = (entries: LogEntry[]) => {\n for (let i = entries.length - 1; i >= 0; i--) {\n const entry = entries[i];\n if (!entry) continue;\n if (entry.timestamp) return entry.timestamp;\n\n // A plain-text line may carry a timestamp embedded mid-line (legacy format).\n const match = entry.message.match(ISO_TIMESTAMP_REGEX);\n if (match) return match[0];\n }\n return null;\n};\n\nconst calculateNextLogTimestamp = (timestamp: string | null) => {\n if (timestamp === null) return null;\n return dayjs(timestamp).utc().add(1, 'second').utc().format();\n};\n\n/**\n * The tail plus the timestamp a follow-up poll resumes from. A {@link NOTHING_RUNNING_CODES} `400`\n * reads as an empty tail rather than an error — an idle app between visits, or a deployment that is\n * not the one currently serving, has no logs to stream and that is its normal condition.\n */\nexport const readAppLogsTail = async (fetchTail: () => Promise<ApiResponse<string>>) => {\n try {\n const { data } = await fetchTail();\n const entries = parseLogLines(data);\n\n return {\n entries,\n nextLogTimestamp: calculateNextLogTimestamp(lastLogTimestamp(entries)),\n };\n } catch (error) {\n if (isApiError(error) && error.response.status === HttpStatus.BAD_REQUEST) {\n const code = TailError.safeParse(error.data).data?.context?.code;\n if (code !== undefined && NOTHING_RUNNING_CODES.has(code)) {\n return { entries: [], nextLogTimestamp: null };\n }\n }\n throw error;\n }\n};\n\n/** The whole log as a file download, named by the service's `Content-Disposition` where it sets one. */\nexport const readAppLogsDownload = async (fetchLogs: () => Promise<ApiResponse<string>>) => {\n const { data, response } = await fetchLogs();\n const contentDisposition = parseContentDispositionHeader(\n response.headers.get(HttpHeader.CONTENT_DISPOSITION),\n );\n\n return {\n logs: data,\n fileName: contentDisposition.filename ?? DEFAULT_LOGS_FILE_NAME,\n };\n};\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as isPlainObject } from "./isPlainObject-LYW-03uB.js";
|
|
2
|
-
import { f as parseContentDispositionHeader, m as HttpStatus, r as isApiError, s as HttpHeader } from "./createFetchClient-
|
|
2
|
+
import { f as parseContentDispositionHeader, m as HttpStatus, r as isApiError, s as HttpHeader } from "./createFetchClient-DXHQK63w.js";
|
|
3
3
|
import * as z$1 from "zod";
|
|
4
4
|
import dayjs from "dayjs";
|
|
5
5
|
import utc from "dayjs/plugin/utc.js";
|
|
@@ -129,4 +129,4 @@ const readAppLogsDownload = async (fetchLogs) => {
|
|
|
129
129
|
//#endregion
|
|
130
130
|
export { readAppLogsDownload as n, readAppLogsTail as r, parseLogLines as t };
|
|
131
131
|
|
|
132
|
-
//# sourceMappingURL=appLogs-
|
|
132
|
+
//# sourceMappingURL=appLogs-BBkkUOW1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appLogs-
|
|
1
|
+
{"version":3,"file":"appLogs-BBkkUOW1.js","names":["z","record"],"sources":["../src/domain/appLogs.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc.js';\nimport * as z from 'zod';\n\nimport {\n type ApiResponse,\n HttpHeader,\n isApiError,\n parseContentDispositionHeader,\n} from '../fetchClient';\nimport { HttpStatus } from '../internal';\nimport { isPlainObject } from '../utils/isPlainObject';\n\n/**\n * Reading a data app's container output. Shared by the two clients wrapping sandboxes-service —\n * `dataScience` (`/v1`) and `apps` (`/v2`) — which serve the same logs under different paths, so the\n * tail contract (how a line is parsed, where the next poll resumes, and that an idle app is not an\n * error) is defined once here rather than per surface.\n */\n\ndayjs.extend(utc);\n\nexport type LogEntry = {\n timestamp: string | null;\n message: string;\n};\n\nconst DEFAULT_LOGS_FILE_NAME = 'logs.txt';\n\nconst ISO_TIMESTAMP_REGEX = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z/;\nconst LEADING_ISO_TIMESTAMP_REGEX = /^(\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z)\\s?/;\n\n/** The error envelope sandboxes-service returns; the tail branches on its `code`. */\nconst TailError = z.object({\n context: z.object({\n code: z.string(),\n }),\n});\n\n/**\n * There is nothing to read right now, reported per scope: an app whose serving member is asleep\n * answers `apps.appNotRunning`, a deployment that isn't running answers `apps.deploymentNotRunning` —\n * the normal state of a staged or retired one, since a deployment only runs while it is production.\n */\nconst NOTHING_RUNNING_CODES = new Set(['apps.appNotRunning', 'apps.deploymentNotRunning']);\n\nconst tryParseJsonl = (line: string): LogEntry | null => {\n if (!line.startsWith('{')) return null;\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(line);\n } catch {\n return null;\n }\n\n if (typeof parsed !== 'object' || parsed === null) return null;\n\n const record = parsed as Record<string, unknown>;\n const { timestamp, message } = record;\n\n if (typeof timestamp !== 'string' || typeof message !== 'string') return null;\n\n return {\n timestamp,\n message,\n };\n};\n\nconst parsePlainTextLine = (line: string): LogEntry => {\n const match = line.match(LEADING_ISO_TIMESTAMP_REGEX);\n if (match) {\n return { timestamp: match[1]!, message: line.slice(match[0].length) };\n }\n return { timestamp: null, message: line };\n};\n\nexport const parseLogLine = (line: string): LogEntry =>\n tryParseJsonl(line) ?? parsePlainTextLine(line);\n\nconst toLogEntryFromObject = (raw: Record<string, unknown>): LogEntry | null => {\n if (typeof raw.message !== 'string') return null;\n return {\n timestamp: typeof raw.timestamp === 'string' ? raw.timestamp : null,\n message: raw.message,\n };\n};\n\nexport const parseLogLines = (raw: unknown): LogEntry[] => {\n if (raw === null || raw === undefined || raw === '') return [];\n\n if (Array.isArray(raw)) {\n return raw.flatMap((item) => {\n if (typeof item === 'string') return item === '' ? [] : [parseLogLine(item)];\n if (isPlainObject(item)) {\n const entry = toLogEntryFromObject(item);\n return entry ? [entry] : [];\n }\n return [];\n });\n }\n\n if (isPlainObject(raw)) {\n const entry = toLogEntryFromObject(raw);\n return entry ? [entry] : [];\n }\n\n if (typeof raw !== 'string') return [];\n\n const lines = raw.split('\\n');\n const entries: LogEntry[] = [];\n for (const line of lines) {\n if (line === '') continue;\n entries.push(parseLogLine(line));\n }\n return entries;\n};\n\nexport const lastLogTimestamp = (entries: LogEntry[]) => {\n for (let i = entries.length - 1; i >= 0; i--) {\n const entry = entries[i];\n if (!entry) continue;\n if (entry.timestamp) return entry.timestamp;\n\n // A plain-text line may carry a timestamp embedded mid-line (legacy format).\n const match = entry.message.match(ISO_TIMESTAMP_REGEX);\n if (match) return match[0];\n }\n return null;\n};\n\nconst calculateNextLogTimestamp = (timestamp: string | null) => {\n if (timestamp === null) return null;\n return dayjs(timestamp).utc().add(1, 'second').utc().format();\n};\n\n/**\n * The tail plus the timestamp a follow-up poll resumes from. A {@link NOTHING_RUNNING_CODES} `400`\n * reads as an empty tail rather than an error — an idle app between visits, or a deployment that is\n * not the one currently serving, has no logs to stream and that is its normal condition.\n */\nexport const readAppLogsTail = async (fetchTail: () => Promise<ApiResponse<string>>) => {\n try {\n const { data } = await fetchTail();\n const entries = parseLogLines(data);\n\n return {\n entries,\n nextLogTimestamp: calculateNextLogTimestamp(lastLogTimestamp(entries)),\n };\n } catch (error) {\n if (isApiError(error) && error.response.status === HttpStatus.BAD_REQUEST) {\n const code = TailError.safeParse(error.data).data?.context?.code;\n if (code !== undefined && NOTHING_RUNNING_CODES.has(code)) {\n return { entries: [], nextLogTimestamp: null };\n }\n }\n throw error;\n }\n};\n\n/** The whole log as a file download, named by the service's `Content-Disposition` where it sets one. */\nexport const readAppLogsDownload = async (fetchLogs: () => Promise<ApiResponse<string>>) => {\n const { data, response } = await fetchLogs();\n const contentDisposition = parseContentDispositionHeader(\n response.headers.get(HttpHeader.CONTENT_DISPOSITION),\n );\n\n return {\n logs: data,\n fileName: contentDisposition.filename ?? DEFAULT_LOGS_FILE_NAME,\n };\n};\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "./index-
|
|
1
|
+
import "./index-BgR5zcjJ.js";
|
|
2
2
|
//#region src/domain/appLogs.d.ts
|
|
3
3
|
type LogEntry = {
|
|
4
4
|
timestamp: string | null;
|
|
@@ -7,4 +7,4 @@ type LogEntry = {
|
|
|
7
7
|
declare const parseLogLines: (raw: unknown) => LogEntry[];
|
|
8
8
|
//#endregion
|
|
9
9
|
export { parseLogLines as n, LogEntry as t };
|
|
10
|
-
//# sourceMappingURL=appLogs-
|
|
10
|
+
//# sourceMappingURL=appLogs-BS6ViVGR.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "./index-
|
|
1
|
+
import "./index-BVhHt5lx.cjs";
|
|
2
2
|
//#region src/domain/appLogs.d.ts
|
|
3
3
|
type LogEntry = {
|
|
4
4
|
timestamp: string | null;
|
|
@@ -7,4 +7,4 @@ type LogEntry = {
|
|
|
7
7
|
declare const parseLogLines: (raw: unknown) => LogEntry[];
|
|
8
8
|
//#endregion
|
|
9
9
|
export { parseLogLines as n, LogEntry as t };
|
|
10
|
-
//# sourceMappingURL=appLogs-
|
|
10
|
+
//# sourceMappingURL=appLogs-C9YlJ2g8.d.cts.map
|
package/dist/apps/index.cjs
CHANGED
|
@@ -1,18 +1,14 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_createOpenapiFetchClient = require("../createOpenapiFetchClient-
|
|
3
|
-
const require_auth = require("../auth-
|
|
4
|
-
const require_appLogs = require("../appLogs-
|
|
2
|
+
const require_createOpenapiFetchClient = require("../createOpenapiFetchClient-BYqW-9tm.cjs");
|
|
3
|
+
const require_auth = require("../auth-Dm0F2rOh.cjs");
|
|
4
|
+
const require_appLogs = require("../appLogs-B9zFJIuy.cjs");
|
|
5
5
|
//#region src/clients/apps/appsClient.ts
|
|
6
6
|
/**
|
|
7
|
-
* `/v2` App Deployments — data apps
|
|
8
|
-
* the `dataScience` client, which wraps the same service's `/v1` surface.
|
|
7
|
+
* `/v2` App Deployments — data apps and their immutable deployment history.
|
|
9
8
|
*
|
|
10
|
-
* `
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* One documented endpoint is deliberately absent: `POST /apps/{appId}/activity` is apps-proxy's
|
|
14
|
-
* heartbeat, authenticated by a Manage API token with the `apps:proxy` scope that this
|
|
15
|
-
* storage-token client cannot supply.
|
|
9
|
+
* - `/v1` of the same service is the `dataScience` client.
|
|
10
|
+
* - `baseUrl` must already end in `/v2`; `createServiceClients` composes it.
|
|
11
|
+
* - `POST /apps/{appId}/activity` is absent: it needs a Manage token with `apps:proxy` scope.
|
|
16
12
|
*/
|
|
17
13
|
const createAppsClient = ({ baseUrl, middlewares, auth }) => {
|
|
18
14
|
const client = require_createOpenapiFetchClient.createOpenapiFetchClient({
|
|
@@ -21,7 +17,7 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
|
|
|
21
17
|
headers: require_auth.createAuthHeaders(auth)
|
|
22
18
|
});
|
|
23
19
|
const writeOptions = ({ signal }) => ({ signal });
|
|
24
|
-
/** Service metadata
|
|
20
|
+
/** Service metadata — the `/v2` surface has no `/health-check`. */
|
|
25
21
|
const healthCheck = async (signal) => {
|
|
26
22
|
const { data } = await client.get("/", {}, { signal });
|
|
27
23
|
return data;
|
|
@@ -35,9 +31,9 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
|
|
|
35
31
|
return data;
|
|
36
32
|
};
|
|
37
33
|
/**
|
|
38
|
-
* Reserves the app and its Storage configuration only.
|
|
39
|
-
*
|
|
40
|
-
*
|
|
34
|
+
* Reserves the app and its Storage configuration only.
|
|
35
|
+
*
|
|
36
|
+
* - `parameters` and `authorization.app_proxy` are written afterwards via the Storage API.
|
|
41
37
|
*/
|
|
42
38
|
const createApp = async (body, options = {}) => {
|
|
43
39
|
const { data } = await client.post("/apps", { body }, writeOptions(options));
|
|
@@ -46,44 +42,32 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
|
|
|
46
42
|
const deleteApp = async (appId, signal) => {
|
|
47
43
|
await client.delete("/apps/{appId}", { path: { appId } }, { signal });
|
|
48
44
|
};
|
|
49
|
-
/**
|
|
50
|
-
* Drops production routing — the app's URL 404s afterwards. A no-op (already unpublished, or
|
|
51
|
-
* never deployed) returns the app unchanged rather than failing.
|
|
52
|
-
*/
|
|
45
|
+
/** Drops production routing (URL 404s). A no-op returns the app unchanged, not an error. */
|
|
53
46
|
const unpublishApp = async (appId, signal) => {
|
|
54
47
|
const { data } = await client.post("/apps/{appId}/unpublish", { path: { appId } }, { signal });
|
|
55
48
|
return data;
|
|
56
49
|
};
|
|
57
|
-
/**
|
|
58
|
-
* Sleeps the app now instead of waiting for the idle timer, and disarms wake-on-request: a
|
|
59
|
-
* visitor gets a `503` until an explicit {@link resumeApp}. A no-op on an already suspended app.
|
|
60
|
-
*/
|
|
50
|
+
/** Sleeps the app and disarms wake-on-request: visitors get `503` until {@link resumeApp}. */
|
|
61
51
|
const suspendApp = async (appId, signal) => {
|
|
62
52
|
const { data } = await client.post("/apps/{appId}/suspend", { path: { appId } }, { signal });
|
|
63
53
|
return data;
|
|
64
54
|
};
|
|
65
|
-
/**
|
|
66
|
-
* Wakes the app now and re-arms wake-on-request. A no-op on an already running app.
|
|
67
|
-
* The returned app reports `starting` — the operator has not confirmed it serving yet.
|
|
68
|
-
*/
|
|
55
|
+
/** Wakes the app and re-arms wake-on-request. The returned app still reports `starting`. */
|
|
69
56
|
const resumeApp = async (appId, signal) => {
|
|
70
57
|
const { data } = await client.post("/apps/{appId}/resume", { path: { appId } }, { signal });
|
|
71
58
|
return data;
|
|
72
59
|
};
|
|
73
|
-
/** `
|
|
60
|
+
/** `null` until the first deployment or {@link resetAppPassword} mints one. */
|
|
74
61
|
const getAppPassword = async (appId, signal) => {
|
|
75
62
|
const { data } = await client.get("/apps/{appId}/password", { path: { appId } }, { signal });
|
|
76
63
|
return data;
|
|
77
64
|
};
|
|
78
|
-
/**
|
|
65
|
+
/** Replaces any existing password. Read it back with {@link getAppPassword}. */
|
|
79
66
|
const resetAppPassword = async (appId, signal) => {
|
|
80
67
|
const { data } = await client.post("/apps/{appId}/password/reset", { path: { appId } }, { signal });
|
|
81
68
|
return data;
|
|
82
69
|
};
|
|
83
|
-
/**
|
|
84
|
-
* Runs of the app, newest first — app-wide, so this is where a failed deployment's cause lives
|
|
85
|
-
* (`failureReason`, `startupLogs`). Narrow to one deployment with `query.deploymentId`.
|
|
86
|
-
*/
|
|
70
|
+
/** App-wide runs, newest first — where a failed deployment's `failureReason` lives. */
|
|
87
71
|
const getAppRuns = async (appId, query = {}, signal) => {
|
|
88
72
|
const { data } = await client.get("/apps/{appId}/runs", {
|
|
89
73
|
path: { appId },
|
|
@@ -99,9 +83,10 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
|
|
|
99
83
|
return data;
|
|
100
84
|
};
|
|
101
85
|
/**
|
|
102
|
-
* Deploys the
|
|
103
|
-
*
|
|
104
|
-
*
|
|
86
|
+
* Deploys the current config version as a new immutable deployment.
|
|
87
|
+
*
|
|
88
|
+
* - Promotes it unless `body.promote` is `false`; a staged release never runs until promoted.
|
|
89
|
+
* - Returns synchronously; readiness does not.
|
|
105
90
|
*/
|
|
106
91
|
const createDeployment = async (appId, body, options = {}) => {
|
|
107
92
|
const { data } = await client.post("/apps/{appId}/deployments", {
|
|
@@ -110,12 +95,7 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
|
|
|
110
95
|
}, writeOptions(options));
|
|
111
96
|
return data;
|
|
112
97
|
};
|
|
113
|
-
/**
|
|
114
|
-
* Deployment history, newest page first.
|
|
115
|
-
*
|
|
116
|
-
* - `query.archived` filters on whether the deployment was deleted; omitting it returns both.
|
|
117
|
-
* - A deleted deployment keeps its row — history outlives the workload.
|
|
118
|
-
*/
|
|
98
|
+
/** Deployment history, newest first. Omitting `query.archived` returns deleted ones too. */
|
|
119
99
|
const getDeployments = async (appId, query = {}, signal) => {
|
|
120
100
|
const { data } = await client.get("/apps/{appId}/deployments", {
|
|
121
101
|
path: { appId },
|
|
@@ -130,10 +110,7 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
|
|
|
130
110
|
} }, { signal });
|
|
131
111
|
return data;
|
|
132
112
|
};
|
|
133
|
-
/**
|
|
134
|
-
* Deletes the deployment: its running resources and credentials go, the row stays in history as
|
|
135
|
-
* `archived`. Rejected with a `409` while the app's `production` still names it.
|
|
136
|
-
*/
|
|
113
|
+
/** Deletes the deployment, keeping its row as `archived`. `409` while it is production. */
|
|
137
114
|
const deleteDeployment = async (appId, deploymentId, signal) => {
|
|
138
115
|
await client.delete("/apps/{appId}/deployments/{deploymentId}", { path: {
|
|
139
116
|
appId,
|
|
@@ -141,9 +118,9 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
|
|
|
141
118
|
} }, { signal });
|
|
142
119
|
};
|
|
143
120
|
/**
|
|
144
|
-
* Makes this deployment production
|
|
145
|
-
*
|
|
146
|
-
*
|
|
121
|
+
* Makes this deployment production; also the rollback.
|
|
122
|
+
*
|
|
123
|
+
* - Routing switches once it serves; `desired`/`actualDeploymentId` differ until then.
|
|
147
124
|
*/
|
|
148
125
|
const promoteDeployment = async (appId, deploymentId, signal) => {
|
|
149
126
|
const { data } = await client.post("/apps/{appId}/deployments/{deploymentId}/promote", { path: {
|
|
@@ -152,10 +129,7 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
|
|
|
152
129
|
} }, { signal });
|
|
153
130
|
return data;
|
|
154
131
|
};
|
|
155
|
-
/**
|
|
156
|
-
* Container output of the app's currently serving member. `query.since` and `query.lines` are
|
|
157
|
-
* mutually exclusive; passing neither returns the log from its start.
|
|
158
|
-
*/
|
|
132
|
+
/** Serving container's log. `query.since` and `query.lines` are mutually exclusive. */
|
|
159
133
|
const getAppLogsTail = (appId, { query, signal } = {}) => require_appLogs.readAppLogsTail(() => client.get("/apps/{appId}/logs/tail", {
|
|
160
134
|
path: { appId },
|
|
161
135
|
query
|
|
@@ -172,12 +146,12 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
|
|
|
172
146
|
appId,
|
|
173
147
|
deploymentId
|
|
174
148
|
} }, { signal }));
|
|
175
|
-
/**
|
|
149
|
+
/** `409` when the app has no Git repository configured. */
|
|
176
150
|
const getAppGitRepo = async (appId, signal) => {
|
|
177
151
|
const { data } = await client.get("/apps/{appId}/git-repo", { path: { appId } }, { signal });
|
|
178
152
|
return data;
|
|
179
153
|
};
|
|
180
|
-
/**
|
|
154
|
+
/** Per app, not per deployment. */
|
|
181
155
|
const getAppGitRepoCredentials = async (appId, signal) => {
|
|
182
156
|
const { data } = await client.get("/apps/{appId}/git-repo/credentials", { path: { appId } }, { signal });
|
|
183
157
|
return data;
|
|
@@ -189,7 +163,7 @@ const createAppsClient = ({ baseUrl, middlewares, auth }) => {
|
|
|
189
163
|
} }, { signal });
|
|
190
164
|
return data;
|
|
191
165
|
};
|
|
192
|
-
/** An `http_token` credential
|
|
166
|
+
/** An `http_token` credential's `secret` is returned only here. */
|
|
193
167
|
const createAppGitRepoCredential = async (appId, body, options = {}) => {
|
|
194
168
|
const { data } = await client.post("/apps/{appId}/git-repo/credentials", {
|
|
195
169
|
path: { appId },
|
package/dist/apps/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["createOpenapiFetchClient","createAuthHeaders","readAppLogsTail","readAppLogsDownload"],"sources":["../../src/clients/apps/appsClient.ts"],"sourcesContent":["import { readAppLogsDownload, readAppLogsTail } from '../../domain/appLogs';\nimport { createOpenapiFetchClient } from '../../fetchClient';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n App,\n AppId,\n CreateAppBody,\n CreateCredentialBody,\n CreateDeploymentBody,\n CredentialId,\n DeploymentId,\n GetAppRunsQuery,\n GetAppsQuery,\n GetDeploymentsQuery,\n GetLogsTailQuery,\n RunId,\n} from './types';\n\n/**\n * Options every write takes.\n *\n * - No `idempotencyKey`: the service accepts no `Idempotency-Key`, so every create here is a\n * genuine create and a caller that retries one owns the duplicate it may produce.\n */\ntype WriteOptions = {\n signal?: AbortSignal;\n};\n\ntype LogsTailOptions = {\n query?: GetLogsTailQuery;\n signal?: AbortSignal;\n};\n\n/**\n * `/v2` App Deployments — data apps plus the immutable deployment history behind them. Sibling of\n * the `dataScience` client, which wraps the same service's `/v1` surface.\n *\n * `baseUrl` must already point past the `/v2` prefix (`https://<data-science-host>/v2`); the\n * registry composes it — see `createServiceClients`.\n *\n * One documented endpoint is deliberately absent: `POST /apps/{appId}/activity` is apps-proxy's\n * heartbeat, authenticated by a Manage API token with the `apps:proxy` scope that this\n * storage-token client cannot supply.\n */\nexport const createAppsClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n });\n\n const writeOptions = ({ signal }: WriteOptions) => ({ signal });\n\n /** Service metadata (`appName`, `appVersion`, `apiDocs`) — the `/v2` surface has no `/health-check`. */\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await client.get('/', {}, { signal });\n\n return data;\n };\n\n const getApps = async (query: GetAppsQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/apps', { query }, { signal });\n\n return data;\n };\n\n const getApp = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}', { path: { appId } }, { signal });\n\n return data;\n };\n\n /**\n * Reserves the app and its Storage configuration only. Content (`parameters`) and auth\n * (`authorization.app_proxy`) are written afterwards through the Storage API, on the config named\n * by the response's `componentId`/`branchId`/`configId`.\n */\n const createApp = async (body: CreateAppBody, options: WriteOptions = {}) => {\n const { data } = await client.post('/apps', { body }, writeOptions(options));\n\n return data;\n };\n\n const deleteApp = async (appId: AppId, signal?: AbortSignal) => {\n await client.delete('/apps/{appId}', { path: { appId } }, { signal });\n };\n\n /**\n * Drops production routing — the app's URL 404s afterwards. A no-op (already unpublished, or\n * never deployed) returns the app unchanged rather than failing.\n */\n const unpublishApp = async (appId: AppId, signal?: AbortSignal): Promise<App> => {\n const { data } = await client.post('/apps/{appId}/unpublish', { path: { appId } }, { signal });\n\n return data;\n };\n\n /**\n * Sleeps the app now instead of waiting for the idle timer, and disarms wake-on-request: a\n * visitor gets a `503` until an explicit {@link resumeApp}. A no-op on an already suspended app.\n */\n const suspendApp = async (appId: AppId, signal?: AbortSignal): Promise<App> => {\n const { data } = await client.post('/apps/{appId}/suspend', { path: { appId } }, { signal });\n\n return data;\n };\n\n /**\n * Wakes the app now and re-arms wake-on-request. A no-op on an already running app.\n * The returned app reports `starting` — the operator has not confirmed it serving yet.\n */\n const resumeApp = async (appId: AppId, signal?: AbortSignal): Promise<App> => {\n const { data } = await client.post('/apps/{appId}/resume', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** `password` is `null` until one is minted — by the app's first deployment or {@link resetAppPassword}. */\n const getAppPassword = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/password', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Mints a fresh password, replacing any existing one. Read it back with {@link getAppPassword}. */\n const resetAppPassword = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.post(\n '/apps/{appId}/password/reset',\n { path: { appId } },\n { signal },\n );\n\n return data;\n };\n\n /**\n * Runs of the app, newest first — app-wide, so this is where a failed deployment's cause lives\n * (`failureReason`, `startupLogs`). Narrow to one deployment with `query.deploymentId`.\n */\n const getAppRuns = async (appId: AppId, query: GetAppRunsQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/runs', { path: { appId }, query }, { signal });\n\n return data;\n };\n\n const getAppRun = async (appId: AppId, runId: RunId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/runs/{runId}',\n { path: { appId, runId } },\n { signal },\n );\n\n return data;\n };\n\n /**\n * Deploys the app's current config version as a new immutable deployment, promoting it unless\n * `body.promote` is `false` (a staged release never runs until promoted). Pin an older config\n * version with `body.configVersion`. The deployment comes back synchronously; readiness does not.\n */\n const createDeployment = async (\n appId: AppId,\n body?: CreateDeploymentBody,\n options: WriteOptions = {},\n ) => {\n const { data } = await client.post(\n '/apps/{appId}/deployments',\n { path: { appId }, body },\n writeOptions(options),\n );\n\n return data;\n };\n\n /**\n * Deployment history, newest page first.\n *\n * - `query.archived` filters on whether the deployment was deleted; omitting it returns both.\n * - A deleted deployment keeps its row — history outlives the workload.\n */\n const getDeployments = async (\n appId: AppId,\n query: GetDeploymentsQuery = {},\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/apps/{appId}/deployments',\n { path: { appId }, query },\n { signal },\n );\n\n return data;\n };\n\n const getDeployment = async (appId: AppId, deploymentId: DeploymentId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/deployments/{deploymentId}',\n { path: { appId, deploymentId } },\n { signal },\n );\n\n return data;\n };\n\n /**\n * Deletes the deployment: its running resources and credentials go, the row stays in history as\n * `archived`. Rejected with a `409` while the app's `production` still names it.\n */\n const deleteDeployment = async (\n appId: AppId,\n deploymentId: DeploymentId,\n signal?: AbortSignal,\n ) => {\n await client.delete(\n '/apps/{appId}/deployments/{deploymentId}',\n { path: { appId, deploymentId } },\n { signal },\n );\n };\n\n /**\n * Makes this deployment production — the same call rolls back, applied to an older one. The route\n * switches only once the target serves, so the returned app's `production.desiredDeploymentId`\n * and `.actualDeploymentId` differ until it converges.\n */\n const promoteDeployment = async (\n appId: AppId,\n deploymentId: DeploymentId,\n signal?: AbortSignal,\n ): Promise<App> => {\n const { data } = await client.post(\n '/apps/{appId}/deployments/{deploymentId}/promote',\n { path: { appId, deploymentId } },\n { signal },\n );\n\n return data;\n };\n\n /**\n * Container output of the app's currently serving member. `query.since` and `query.lines` are\n * mutually exclusive; passing neither returns the log from its start.\n */\n const getAppLogsTail = (appId: AppId, { query, signal }: LogsTailOptions = {}) =>\n readAppLogsTail(() =>\n client.get('/apps/{appId}/logs/tail', { path: { appId }, query }, { signal }),\n );\n\n const getAppLogsDownload = (appId: AppId, signal?: AbortSignal) =>\n readAppLogsDownload(() =>\n client.get('/apps/{appId}/logs/download', { path: { appId } }, { signal }),\n );\n\n const getDeploymentLogsTail = (\n appId: AppId,\n deploymentId: DeploymentId,\n { query, signal }: LogsTailOptions = {},\n ) =>\n readAppLogsTail(() =>\n client.get(\n '/apps/{appId}/deployments/{deploymentId}/logs/tail',\n { path: { appId, deploymentId }, query },\n { signal },\n ),\n );\n\n const getDeploymentLogsDownload = (\n appId: AppId,\n deploymentId: DeploymentId,\n signal?: AbortSignal,\n ) =>\n readAppLogsDownload(() =>\n client.get(\n '/apps/{appId}/deployments/{deploymentId}/logs/download',\n { path: { appId, deploymentId } },\n { signal },\n ),\n );\n\n /** The app's Git repository — managed or external. `409` when it has none configured. */\n const getAppGitRepo = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/git-repo', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Credentials of the app's managed repository, per app rather than per deployment. */\n const getAppGitRepoCredentials = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/git-repo/credentials',\n { path: { appId } },\n { signal },\n );\n\n return data;\n };\n\n const getAppGitRepoCredential = async (\n appId: AppId,\n credentialId: CredentialId,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/apps/{appId}/git-repo/credentials/{credentialId}',\n { path: { appId, credentialId } },\n { signal },\n );\n\n return data;\n };\n\n /** An `http_token` credential returns its `secret` here and nowhere else — store it now or lose it. */\n const createAppGitRepoCredential = async (\n appId: AppId,\n body: CreateCredentialBody,\n options: WriteOptions = {},\n ) => {\n const { data } = await client.post(\n '/apps/{appId}/git-repo/credentials',\n { path: { appId }, body },\n writeOptions(options),\n );\n\n return data;\n };\n\n const deleteAppGitRepoCredential = async (\n appId: AppId,\n credentialId: CredentialId,\n signal?: AbortSignal,\n ) => {\n await client.delete(\n '/apps/{appId}/git-repo/credentials/{credentialId}',\n { path: { appId, credentialId } },\n { signal },\n );\n };\n\n return {\n healthCheck,\n getApps,\n getApp,\n createApp,\n deleteApp,\n unpublishApp,\n suspendApp,\n resumeApp,\n getAppPassword,\n resetAppPassword,\n getAppRuns,\n getAppRun,\n createDeployment,\n getDeployments,\n getDeployment,\n deleteDeployment,\n promoteDeployment,\n getAppLogsTail,\n getAppLogsDownload,\n getDeploymentLogsTail,\n getDeploymentLogsDownload,\n getAppGitRepo,\n getAppGitRepoCredentials,\n getAppGitRepoCredential,\n createAppGitRepoCredential,\n deleteAppGitRepoCredential,\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["createOpenapiFetchClient","createAuthHeaders","readAppLogsTail","readAppLogsDownload"],"sources":["../../src/clients/apps/appsClient.ts"],"sourcesContent":["import { readAppLogsDownload, readAppLogsTail } from '../../domain/appLogs';\nimport { createOpenapiFetchClient } from '../../fetchClient';\nimport { createAuthHeaders } from '../auth';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n App,\n AppId,\n CreateAppBody,\n CreateCredentialBody,\n CreateDeploymentBody,\n CredentialId,\n DeploymentId,\n GetAppRunsQuery,\n GetAppsQuery,\n GetDeploymentsQuery,\n GetLogsTailQuery,\n RunId,\n} from './types';\n\n/**\n * Options every write takes.\n *\n * - No `idempotencyKey`: the service ignores it, so a retried create may duplicate.\n */\ntype WriteOptions = {\n signal?: AbortSignal;\n};\n\ntype LogsTailOptions = {\n query?: GetLogsTailQuery;\n signal?: AbortSignal;\n};\n\n/**\n * `/v2` App Deployments — data apps and their immutable deployment history.\n *\n * - `/v1` of the same service is the `dataScience` client.\n * - `baseUrl` must already end in `/v2`; `createServiceClients` composes it.\n * - `POST /apps/{appId}/activity` is absent: it needs a Manage token with `apps:proxy` scope.\n */\nexport const createAppsClient = ({ baseUrl, middlewares, auth }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n headers: createAuthHeaders(auth),\n });\n\n const writeOptions = ({ signal }: WriteOptions) => ({ signal });\n\n /** Service metadata — the `/v2` surface has no `/health-check`. */\n const healthCheck = async (signal?: AbortSignal) => {\n const { data } = await client.get('/', {}, { signal });\n\n return data;\n };\n\n const getApps = async (query: GetAppsQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/apps', { query }, { signal });\n\n return data;\n };\n\n const getApp = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}', { path: { appId } }, { signal });\n\n return data;\n };\n\n /**\n * Reserves the app and its Storage configuration only.\n *\n * - `parameters` and `authorization.app_proxy` are written afterwards via the Storage API.\n */\n const createApp = async (body: CreateAppBody, options: WriteOptions = {}) => {\n const { data } = await client.post('/apps', { body }, writeOptions(options));\n\n return data;\n };\n\n const deleteApp = async (appId: AppId, signal?: AbortSignal) => {\n await client.delete('/apps/{appId}', { path: { appId } }, { signal });\n };\n\n /** Drops production routing (URL 404s). A no-op returns the app unchanged, not an error. */\n const unpublishApp = async (appId: AppId, signal?: AbortSignal): Promise<App> => {\n const { data } = await client.post('/apps/{appId}/unpublish', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Sleeps the app and disarms wake-on-request: visitors get `503` until {@link resumeApp}. */\n const suspendApp = async (appId: AppId, signal?: AbortSignal): Promise<App> => {\n const { data } = await client.post('/apps/{appId}/suspend', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Wakes the app and re-arms wake-on-request. The returned app still reports `starting`. */\n const resumeApp = async (appId: AppId, signal?: AbortSignal): Promise<App> => {\n const { data } = await client.post('/apps/{appId}/resume', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** `null` until the first deployment or {@link resetAppPassword} mints one. */\n const getAppPassword = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/password', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Replaces any existing password. Read it back with {@link getAppPassword}. */\n const resetAppPassword = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.post(\n '/apps/{appId}/password/reset',\n { path: { appId } },\n { signal },\n );\n\n return data;\n };\n\n /** App-wide runs, newest first — where a failed deployment's `failureReason` lives. */\n const getAppRuns = async (appId: AppId, query: GetAppRunsQuery = {}, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/runs', { path: { appId }, query }, { signal });\n\n return data;\n };\n\n const getAppRun = async (appId: AppId, runId: RunId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/runs/{runId}',\n { path: { appId, runId } },\n { signal },\n );\n\n return data;\n };\n\n /**\n * Deploys the current config version as a new immutable deployment.\n *\n * - Promotes it unless `body.promote` is `false`; a staged release never runs until promoted.\n * - Returns synchronously; readiness does not.\n */\n const createDeployment = async (\n appId: AppId,\n body?: CreateDeploymentBody,\n options: WriteOptions = {},\n ) => {\n const { data } = await client.post(\n '/apps/{appId}/deployments',\n { path: { appId }, body },\n writeOptions(options),\n );\n\n return data;\n };\n\n /** Deployment history, newest first. Omitting `query.archived` returns deleted ones too. */\n const getDeployments = async (\n appId: AppId,\n query: GetDeploymentsQuery = {},\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/apps/{appId}/deployments',\n { path: { appId }, query },\n { signal },\n );\n\n return data;\n };\n\n const getDeployment = async (appId: AppId, deploymentId: DeploymentId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/deployments/{deploymentId}',\n { path: { appId, deploymentId } },\n { signal },\n );\n\n return data;\n };\n\n /** Deletes the deployment, keeping its row as `archived`. `409` while it is production. */\n const deleteDeployment = async (\n appId: AppId,\n deploymentId: DeploymentId,\n signal?: AbortSignal,\n ) => {\n await client.delete(\n '/apps/{appId}/deployments/{deploymentId}',\n { path: { appId, deploymentId } },\n { signal },\n );\n };\n\n /**\n * Makes this deployment production; also the rollback.\n *\n * - Routing switches once it serves; `desired`/`actualDeploymentId` differ until then.\n */\n const promoteDeployment = async (\n appId: AppId,\n deploymentId: DeploymentId,\n signal?: AbortSignal,\n ): Promise<App> => {\n const { data } = await client.post(\n '/apps/{appId}/deployments/{deploymentId}/promote',\n { path: { appId, deploymentId } },\n { signal },\n );\n\n return data;\n };\n\n /** Serving container's log. `query.since` and `query.lines` are mutually exclusive. */\n const getAppLogsTail = (appId: AppId, { query, signal }: LogsTailOptions = {}) =>\n readAppLogsTail(() =>\n client.get('/apps/{appId}/logs/tail', { path: { appId }, query }, { signal }),\n );\n\n const getAppLogsDownload = (appId: AppId, signal?: AbortSignal) =>\n readAppLogsDownload(() =>\n client.get('/apps/{appId}/logs/download', { path: { appId } }, { signal }),\n );\n\n const getDeploymentLogsTail = (\n appId: AppId,\n deploymentId: DeploymentId,\n { query, signal }: LogsTailOptions = {},\n ) =>\n readAppLogsTail(() =>\n client.get(\n '/apps/{appId}/deployments/{deploymentId}/logs/tail',\n { path: { appId, deploymentId }, query },\n { signal },\n ),\n );\n\n const getDeploymentLogsDownload = (\n appId: AppId,\n deploymentId: DeploymentId,\n signal?: AbortSignal,\n ) =>\n readAppLogsDownload(() =>\n client.get(\n '/apps/{appId}/deployments/{deploymentId}/logs/download',\n { path: { appId, deploymentId } },\n { signal },\n ),\n );\n\n /** `409` when the app has no Git repository configured. */\n const getAppGitRepo = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get('/apps/{appId}/git-repo', { path: { appId } }, { signal });\n\n return data;\n };\n\n /** Per app, not per deployment. */\n const getAppGitRepoCredentials = async (appId: AppId, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/apps/{appId}/git-repo/credentials',\n { path: { appId } },\n { signal },\n );\n\n return data;\n };\n\n const getAppGitRepoCredential = async (\n appId: AppId,\n credentialId: CredentialId,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/apps/{appId}/git-repo/credentials/{credentialId}',\n { path: { appId, credentialId } },\n { signal },\n );\n\n return data;\n };\n\n /** An `http_token` credential's `secret` is returned only here. */\n const createAppGitRepoCredential = async (\n appId: AppId,\n body: CreateCredentialBody,\n options: WriteOptions = {},\n ) => {\n const { data } = await client.post(\n '/apps/{appId}/git-repo/credentials',\n { path: { appId }, body },\n writeOptions(options),\n );\n\n return data;\n };\n\n const deleteAppGitRepoCredential = async (\n appId: AppId,\n credentialId: CredentialId,\n signal?: AbortSignal,\n ) => {\n await client.delete(\n '/apps/{appId}/git-repo/credentials/{credentialId}',\n { path: { appId, credentialId } },\n { signal },\n );\n };\n\n return {\n healthCheck,\n getApps,\n getApp,\n createApp,\n deleteApp,\n unpublishApp,\n suspendApp,\n resumeApp,\n getAppPassword,\n resetAppPassword,\n getAppRuns,\n getAppRun,\n createDeployment,\n getDeployments,\n getDeployment,\n deleteDeployment,\n promoteDeployment,\n getAppLogsTail,\n getAppLogsDownload,\n getDeploymentLogsTail,\n getDeploymentLogsDownload,\n getAppGitRepo,\n getAppGitRepoCredentials,\n getAppGitRepoCredential,\n createAppGitRepoCredential,\n deleteAppGitRepoCredential,\n };\n};\n"],"mappings":"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"}
|
package/dist/apps/index.d.cts
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { n as ClientInitOptions } from "../types-
|
|
2
|
-
import { C as components, S as RunId, b as GetDeploymentsQuery, c as CreateCredentialBody, f as CredentialId, g as DeploymentId, l as CreateDeploymentBody, r as AppId, s as CreateAppBody, t as App, v as GetAppRunsQuery, x as GetLogsTailQuery, y as GetAppsQuery } from "../types-
|
|
3
|
-
import { t as LogEntry } from "../appLogs-
|
|
1
|
+
import { n as ClientInitOptions } from "../types-DoZtE9tz.cjs";
|
|
2
|
+
import { C as components, S as RunId, b as GetDeploymentsQuery, c as CreateCredentialBody, f as CredentialId, g as DeploymentId, l as CreateDeploymentBody, r as AppId, s as CreateAppBody, t as App, v as GetAppRunsQuery, x as GetLogsTailQuery, y as GetAppsQuery } from "../types-pvQzbgNE.cjs";
|
|
3
|
+
import { t as LogEntry } from "../appLogs-C9YlJ2g8.cjs";
|
|
4
4
|
//#region src/clients/apps/appsClient.d.ts
|
|
5
5
|
/**
|
|
6
6
|
* Options every write takes.
|
|
7
7
|
*
|
|
8
|
-
* - No `idempotencyKey`: the service
|
|
9
|
-
* genuine create and a caller that retries one owns the duplicate it may produce.
|
|
8
|
+
* - No `idempotencyKey`: the service ignores it, so a retried create may duplicate.
|
|
10
9
|
*/
|
|
11
10
|
type WriteOptions = {
|
|
12
11
|
signal?: AbortSignal;
|
|
@@ -16,15 +15,11 @@ type LogsTailOptions = {
|
|
|
16
15
|
signal?: AbortSignal;
|
|
17
16
|
};
|
|
18
17
|
/**
|
|
19
|
-
* `/v2` App Deployments — data apps
|
|
20
|
-
* the `dataScience` client, which wraps the same service's `/v1` surface.
|
|
18
|
+
* `/v2` App Deployments — data apps and their immutable deployment history.
|
|
21
19
|
*
|
|
22
|
-
* `
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* One documented endpoint is deliberately absent: `POST /apps/{appId}/activity` is apps-proxy's
|
|
26
|
-
* heartbeat, authenticated by a Manage API token with the `apps:proxy` scope that this
|
|
27
|
-
* storage-token client cannot supply.
|
|
20
|
+
* - `/v1` of the same service is the `dataScience` client.
|
|
21
|
+
* - `baseUrl` must already end in `/v2`; `createServiceClients` composes it.
|
|
22
|
+
* - `POST /apps/{appId}/activity` is absent: it needs a Manage token with `apps:proxy` scope.
|
|
28
23
|
*/
|
|
29
24
|
declare const createAppsClient: ({ baseUrl, middlewares, auth }: ClientInitOptions) => {
|
|
30
25
|
healthCheck: (signal?: AbortSignal) => Promise<{
|