@keboola/api-client 1.0.1 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/index.cjs +5 -201
- package/dist/ai/index.cjs.map +1 -1
- package/dist/ai/index.js +2 -201
- package/dist/ai/index.js.map +1 -1
- package/dist/assets/index.cjs +5 -180
- package/dist/assets/index.cjs.map +1 -1
- package/dist/assets/index.js +2 -180
- package/dist/assets/index.js.map +1 -1
- package/dist/chat/index.cjs +6 -422
- package/dist/chat/index.cjs.map +1 -1
- package/dist/chat/index.js +3 -422
- package/dist/chat/index.js.map +1 -1
- package/dist/chat/suggestions.cjs +70 -152
- package/dist/chat/suggestions.cjs.map +1 -1
- package/dist/chat/suggestions.js +1 -138
- package/dist/chat/suggestions.js.map +1 -1
- package/dist/chunk-3B7L6MCG.js +189 -0
- package/dist/chunk-3B7L6MCG.js.map +1 -0
- package/dist/chunk-3T54WH4X.cjs +42 -0
- package/dist/chunk-3T54WH4X.cjs.map +1 -0
- package/dist/chunk-3Y6NK7TC.js +34 -0
- package/dist/chunk-3Y6NK7TC.js.map +1 -0
- package/dist/chunk-4RC5E3SL.js +140 -0
- package/dist/chunk-4RC5E3SL.js.map +1 -0
- package/dist/chunk-633QJMHH.cjs +73 -0
- package/dist/chunk-633QJMHH.cjs.map +1 -0
- package/dist/chunk-6RQDX6JY.cjs +132 -0
- package/dist/chunk-6RQDX6JY.cjs.map +1 -0
- package/dist/chunk-76AHKXLC.cjs +29 -0
- package/dist/chunk-76AHKXLC.cjs.map +1 -0
- package/dist/chunk-7FY6COWG.js +71 -0
- package/dist/chunk-7FY6COWG.js.map +1 -0
- package/dist/chunk-7J2R6XHB.js +3 -0
- package/dist/chunk-7J2R6XHB.js.map +1 -0
- package/dist/chunk-BGLICNTG.cjs +33 -0
- package/dist/chunk-BGLICNTG.cjs.map +1 -0
- package/dist/chunk-BR3SBEFE.cjs +182 -0
- package/dist/chunk-BR3SBEFE.cjs.map +1 -0
- package/dist/chunk-CVV4HROS.cjs +37 -0
- package/dist/chunk-CVV4HROS.cjs.map +1 -0
- package/dist/chunk-DCTDH77P.cjs +277 -0
- package/dist/chunk-DCTDH77P.cjs.map +1 -0
- package/dist/chunk-EBCZUGUX.js +35 -0
- package/dist/chunk-EBCZUGUX.js.map +1 -0
- package/dist/chunk-EY5LALX2.cjs +26 -0
- package/dist/chunk-EY5LALX2.cjs.map +1 -0
- package/dist/chunk-FBQHHAL5.js +40 -0
- package/dist/chunk-FBQHHAL5.js.map +1 -0
- package/dist/chunk-GF4XZK5N.cjs +43 -0
- package/dist/chunk-GF4XZK5N.cjs.map +1 -0
- package/dist/chunk-GNPQB3MT.js +27 -0
- package/dist/chunk-GNPQB3MT.js.map +1 -0
- package/dist/chunk-GO6SOMGL.js +181 -0
- package/dist/chunk-GO6SOMGL.js.map +1 -0
- package/dist/chunk-HCNNMUTR.cjs +36 -0
- package/dist/chunk-HCNNMUTR.cjs.map +1 -0
- package/dist/chunk-HPVTVQBJ.cjs +238 -0
- package/dist/chunk-HPVTVQBJ.cjs.map +1 -0
- package/dist/chunk-HYUGRMCY.cjs +247 -0
- package/dist/chunk-HYUGRMCY.cjs.map +1 -0
- package/dist/chunk-IJMQCOBC.js +34 -0
- package/dist/chunk-IJMQCOBC.js.map +1 -0
- package/dist/chunk-IY3VNVXD.cjs +183 -0
- package/dist/chunk-IY3VNVXD.cjs.map +1 -0
- package/dist/chunk-JKFIB6SQ.cjs +685 -0
- package/dist/chunk-JKFIB6SQ.cjs.map +1 -0
- package/dist/chunk-JLNOESHX.cjs +47 -0
- package/dist/chunk-JLNOESHX.cjs.map +1 -0
- package/dist/chunk-JURD5MC3.js +178 -0
- package/dist/chunk-JURD5MC3.js.map +1 -0
- package/dist/chunk-LV3ZWNDC.js +75 -0
- package/dist/chunk-LV3ZWNDC.js.map +1 -0
- package/dist/chunk-LZ6A6J2E.cjs +77 -0
- package/dist/chunk-LZ6A6J2E.cjs.map +1 -0
- package/dist/chunk-OKVYLO6C.js +108 -0
- package/dist/chunk-OKVYLO6C.js.map +1 -0
- package/dist/chunk-PD3LJYS2.js +218 -0
- package/dist/chunk-PD3LJYS2.js.map +1 -0
- package/dist/chunk-PV4HIVW2.js +130 -0
- package/dist/chunk-PV4HIVW2.js.map +1 -0
- package/dist/chunk-R7PD3BRA.js +261 -0
- package/dist/chunk-R7PD3BRA.js.map +1 -0
- package/dist/chunk-SAEG42HW.js +64 -0
- package/dist/chunk-SAEG42HW.js.map +1 -0
- package/dist/chunk-TIIRBQUA.cjs +110 -0
- package/dist/chunk-TIIRBQUA.cjs.map +1 -0
- package/dist/chunk-TNJWOHPM.js +948 -0
- package/dist/chunk-TNJWOHPM.js.map +1 -0
- package/dist/chunk-TXFQ4YIK.js +31 -0
- package/dist/chunk-TXFQ4YIK.js.map +1 -0
- package/dist/chunk-U5SE6W5M.cjs +158 -0
- package/dist/chunk-U5SE6W5M.cjs.map +1 -0
- package/dist/chunk-UABYNGBZ.js +39 -0
- package/dist/chunk-UABYNGBZ.js.map +1 -0
- package/dist/chunk-UXF53ZOV.js +220 -0
- package/dist/chunk-UXF53ZOV.js.map +1 -0
- package/dist/chunk-VAOCYA6B.js +20 -0
- package/dist/chunk-VAOCYA6B.js.map +1 -0
- package/dist/chunk-VS5PM7KL.js +45 -0
- package/dist/chunk-VS5PM7KL.js.map +1 -0
- package/dist/chunk-WQ7EZWBF.js +24 -0
- package/dist/chunk-WQ7EZWBF.js.map +1 -0
- package/dist/chunk-XFC52BJV.cjs +952 -0
- package/dist/chunk-XFC52BJV.cjs.map +1 -0
- package/dist/chunk-XPDEQND7.cjs +4 -0
- package/dist/chunk-XPDEQND7.cjs.map +1 -0
- package/dist/chunk-XUDMML5C.cjs +211 -0
- package/dist/chunk-XUDMML5C.cjs.map +1 -0
- package/dist/chunk-YPCD7M2N.cjs +22 -0
- package/dist/chunk-YPCD7M2N.cjs.map +1 -0
- package/dist/chunk-YUEYMIMI.cjs +67 -0
- package/dist/chunk-YUEYMIMI.cjs.map +1 -0
- package/dist/chunk-YXCVNX2Q.cjs +36 -0
- package/dist/chunk-YXCVNX2Q.cjs.map +1 -0
- package/dist/chunk-ZEMKE6DI.js +681 -0
- package/dist/chunk-ZEMKE6DI.js.map +1 -0
- package/dist/dataScience/index.cjs +8 -412
- package/dist/dataScience/index.cjs.map +1 -1
- package/dist/dataScience/index.js +2 -391
- package/dist/dataScience/index.js.map +1 -1
- package/dist/domain/permissions/index.cjs +131 -2
- package/dist/domain/permissions/index.cjs.map +1 -1
- package/dist/domain/permissions/index.d.cts +108 -2
- package/dist/domain/permissions/index.d.ts +108 -2
- package/dist/domain/permissions/index.js +106 -3
- package/dist/domain/permissions/index.js.map +1 -1
- package/dist/editor/index.cjs +5 -264
- package/dist/editor/index.cjs.map +1 -1
- package/dist/editor/index.js +2 -264
- package/dist/editor/index.js.map +1 -1
- package/dist/encryption/index.cjs +5 -190
- package/dist/encryption/index.cjs.map +1 -1
- package/dist/encryption/index.js +2 -190
- package/dist/encryption/index.js.map +1 -1
- package/dist/import/index.cjs +5 -196
- package/dist/import/index.cjs.map +1 -1
- package/dist/import/index.js +2 -196
- package/dist/import/index.js.map +1 -1
- package/dist/index.cjs +334 -3752
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1814 -104
- package/dist/index.d.ts +1814 -104
- package/dist/index.js +176 -3627
- package/dist/index.js.map +1 -1
- package/dist/management/index.cjs +10 -881
- package/dist/management/index.cjs.map +1 -1
- package/dist/management/index.js +3 -880
- package/dist/management/index.js.map +1 -1
- package/dist/metastore/index.cjs +5 -337
- package/dist/metastore/index.cjs.map +1 -1
- package/dist/metastore/index.js +2 -337
- package/dist/metastore/index.js.map +1 -1
- package/dist/oauth/index.cjs +5 -226
- package/dist/oauth/index.cjs.map +1 -1
- package/dist/oauth/index.js +2 -226
- package/dist/oauth/index.js.map +1 -1
- package/dist/project-Bzslbq4u.d.ts +16 -0
- package/dist/project-CYhB6rYN.d.cts +16 -0
- package/dist/queryService/index.cjs +5 -248
- package/dist/queryService/index.cjs.map +1 -1
- package/dist/queryService/index.js +2 -248
- package/dist/queryService/index.js.map +1 -1
- package/dist/queue/index.cjs +5 -190
- package/dist/queue/index.cjs.map +1 -1
- package/dist/queue/index.js +2 -190
- package/dist/queue/index.js.map +1 -1
- package/dist/sdk/configurations/index.d.cts +2 -12
- package/dist/sdk/configurations/index.d.ts +2 -12
- package/dist/sdk/storage/index.cjs +49 -267
- 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 -259
- package/dist/sdk/storage/index.js.map +1 -1
- package/dist/sdk/tag/index.cjs +6 -203
- package/dist/sdk/tag/index.cjs.map +1 -1
- package/dist/sdk/tag/index.js +2 -206
- package/dist/sdk/tag/index.js.map +1 -1
- package/dist/status/index.cjs +6 -176
- package/dist/status/index.cjs.map +1 -1
- package/dist/status/index.js +3 -176
- package/dist/status/index.js.map +1 -1
- package/dist/status/types.cjs +2 -0
- package/dist/status/types.js +1 -1
- package/dist/storage/index.cjs +9 -1110
- package/dist/storage/index.cjs.map +1 -1
- package/dist/storage/index.d.cts +1 -1
- package/dist/storage/index.d.ts +1 -1
- package/dist/storage/index.js +3 -1110
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/types.d.cts +39 -2
- package/dist/storage/types.d.ts +39 -2
- package/dist/{storageClient-DrYOs4Xm.d.ts → storageClient-BgvUM7gy.d.ts} +4 -1
- package/dist/{storageClient-DSLTM3Cr.d.cts → storageClient-CDX-GvNV.d.cts} +4 -1
- package/dist/{storageSdk-BBqAo0Vx.d.cts → storageSdk-IOIdwqy-.d.cts} +1 -1
- package/dist/{storageSdk-ZVmKQQSl.d.ts → storageSdk-qGaWB1dy.d.ts} +1 -1
- package/dist/syncActions/index.cjs +5 -364
- package/dist/syncActions/index.cjs.map +1 -1
- package/dist/syncActions/index.js +2 -345
- package/dist/syncActions/index.js.map +1 -1
- package/dist/telemetry/index.cjs +5 -187
- package/dist/telemetry/index.cjs.map +1 -1
- package/dist/telemetry/index.js +2 -187
- package/dist/telemetry/index.js.map +1 -1
- package/dist/vault/index.cjs +5 -219
- package/dist/vault/index.cjs.map +1 -1
- package/dist/vault/index.js +2 -219
- package/dist/vault/index.js.map +1 -1
- package/dist/verify/index.cjs +5 -184
- package/dist/verify/index.cjs.map +1 -1
- package/dist/verify/index.js +2 -184
- package/dist/verify/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/errors/ManagementClientAuthError.ts","../src/clients/management/authMiddleware.ts","../src/clients/management/currentUser/currentUser.ts","../src/clients/management/features/features.ts","../src/clients/management/maintainers/maintainers.ts","../src/clients/management/organizations/organizations.ts","../src/clients/management/projects/projects.ts","../src/clients/management/users/users.ts","../src/clients/management/managementClient.ts"],"names":["ApiError","createGenericFetchClient","KeboolaHttpHeader","HttpHeader","HttpContentType","defaultValidateStatus","createVerifyClient","normalizeBaseUrl","createCallbackMiddleware","createOpenapiFetchClient"],"mappings":"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","file":"chunk-JKFIB6SQ.cjs","sourcesContent":["import type { ApiResponse } from '../fetchClient/createFetchClient/types';\n\nimport { ApiError } from './ApiError';\n\nexport class ManagementClientAuthError extends ApiError {\n title: string;\n message: string;\n constructor(title: string, message: string, res: ApiResponse) {\n super(res);\n this.title = title;\n this.message = message;\n }\n}\n","import { KeboolaHttpHeader } from '../../constants';\nimport { ManagementClientAuthError } from '../../errors';\nimport {\n createGenericFetchClient,\n defaultValidateStatus,\n HttpContentType,\n HttpHeader,\n type MiddlewareFn,\n} from '../../fetchClient';\nimport { createVerifyClient } from '../verify';\nimport type { ManagementToken } from '../verify/types';\n\ntype ManagementTokenWithStringToken = { token: string } & ManagementToken;\n\n// Long enough to amortize verify calls over a burst of parallel queries at app\n// startup; short enough that a remotely revoked token is re-checked within a minute.\nconst TOKEN_CACHE_TTL_MS = 60_000;\n\nexport const isManagementClientAuthError = (error: unknown): error is ManagementClientAuthError =>\n error instanceof ManagementClientAuthError;\n\nconst createAuth = (baseUrl: string) => {\n const fetchClient = createGenericFetchClient({ baseUrl });\n\n const createCurrentUserSessionToken = async (accessToken: string) => {\n const headers = new Headers({ [KeboolaHttpHeader.MANAGEMENT_API_TOKEN]: accessToken });\n const { data } = await fetchClient.post<ManagementTokenWithStringToken>(\n '/manage/current-user/session-token',\n {},\n { headers },\n );\n return data.token;\n };\n\n const createAdminAccountSessionToken = async () => {\n const { data } = await fetchClient.post<ManagementTokenWithStringToken>(\n '/admin/account/session-token',\n {},\n {\n // transform valid response, to invalid and throw custom error\n validateStatus: (apiResponse) => {\n const { response } = apiResponse;\n\n // If the response is \"302 Found\", then response type is \"text/html\", because backend detected\n // that session expired and redirected user to login screen\n const isTextContent = response.headers\n .get(HttpHeader.CONTENT_TYPE)\n ?.includes(HttpContentType.TEXT_HTML);\n\n if (isTextContent)\n return new ManagementClientAuthError(\n 'Your session expired',\n 'You will be logged out automatically.',\n apiResponse,\n );\n\n return defaultValidateStatus(apiResponse);\n },\n },\n );\n return data.token;\n };\n\n return {\n createCurrentUserSessionToken,\n createAdminAccountSessionToken,\n };\n};\n\nexport const createAuthMiddleware = ({\n accessToken,\n baseUrl,\n}: {\n baseUrl: string;\n accessToken?: string;\n}): MiddlewareFn => {\n const auth = createAuth(baseUrl);\n const verify = createVerifyClient();\n\n let token: string | undefined = accessToken;\n let tokenValidUntil = 0;\n let inflightAuth: Promise<string> | null = null;\n // oxlint-disable-next-line turbo/no-undeclared-env-vars\n const isDevelopment = process.env.NODE_ENV === 'development';\n\n const ensureValidToken = async (): Promise<string> => {\n if (token && Date.now() < tokenValidUntil) return token;\n\n if (token) {\n const tokenInfo = await verify.managementApiToken(baseUrl, token);\n const isTokenValid = !tokenInfo.isDisabled && !tokenInfo.isExpired;\n if (isTokenValid) {\n tokenValidUntil = Date.now() + TOKEN_CACHE_TTL_MS;\n return token;\n }\n token = isDevelopment\n ? await auth.createCurrentUserSessionToken(token)\n : await auth.createAdminAccountSessionToken();\n tokenValidUntil = Date.now() + TOKEN_CACHE_TTL_MS;\n return token;\n }\n\n token = await auth.createAdminAccountSessionToken();\n tokenValidUntil = Date.now() + TOKEN_CACHE_TTL_MS;\n return token;\n };\n\n return (next) => async (request) => {\n // Deduplicate concurrent auth — all parallel requests share one inflight promise\n if (!inflightAuth) {\n inflightAuth = ensureValidToken().finally(() => {\n inflightAuth = null;\n });\n }\n const validToken = await inflightAuth;\n\n request.request.headers.set(KeboolaHttpHeader.MANAGEMENT_API_TOKEN, validToken);\n return next(request);\n };\n};\n","import type { ManagementOpenApiFetchClient } from '../managementClient';\n\nexport const createCurrentUser = (client: ManagementOpenApiFetchClient) => {\n // --- Maintainer invitations ---\n\n const getMaintainerInvitations = async (signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/current-user/maintainers-invitations',\n {},\n { signal },\n );\n return data;\n };\n\n const getMaintainerInvitation = async (id: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/current-user/maintainers-invitations/{id}',\n { path: { id } },\n { signal },\n );\n return data;\n };\n\n const acceptMaintainerInvitation = async (id: number) => {\n await client.put('/manage/current-user/maintainers-invitations/{id}', { path: { id } });\n };\n\n const rejectMaintainerInvitation = async (id: number) => {\n await client.delete('/manage/current-user/maintainers-invitations/{id}', { path: { id } });\n };\n\n // --- Organization invitations ---\n\n const getOrganizationInvitations = async (signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/current-user/organizations-invitations',\n {},\n { signal },\n );\n return data;\n };\n\n const getOrganizationInvitation = async (id: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/current-user/organizations-invitations/{id}',\n { path: { id } },\n { signal },\n );\n return data;\n };\n\n const acceptOrganizationInvitation = async (id: number) => {\n await client.put('/manage/current-user/organizations-invitations/{id}', { path: { id } });\n };\n\n const rejectOrganizationInvitation = async (id: number) => {\n await client.delete('/manage/current-user/organizations-invitations/{id}', { path: { id } });\n };\n\n // --- Project invitations ---\n\n const getProjectInvitations = async (signal?: AbortSignal) => {\n const { data } = await client.get('/manage/current-user/projects-invitations', {}, { signal });\n return data;\n };\n\n const getProjectInvitation = async (id: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/current-user/projects-invitations/{id}',\n { path: { id } },\n { signal },\n );\n return data;\n };\n\n const acceptProjectInvitation = async (id: number) => {\n await client.put('/manage/current-user/projects-invitations/{id}', { path: { id } });\n };\n\n const rejectProjectInvitation = async (id: number) => {\n await client.delete('/manage/current-user/projects-invitations/{id}', { path: { id } });\n };\n\n // --- Project join requests ---\n\n const getProjectJoinRequests = async (signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/current-user/projects-join-requests',\n {},\n { signal },\n );\n return data;\n };\n\n const deleteProjectJoinRequest = async (id: number) => {\n await client.delete('/manage/current-user/projects-join-requests/{id}', { path: { id } });\n };\n\n return {\n getMaintainerInvitations,\n getMaintainerInvitation,\n acceptMaintainerInvitation,\n rejectMaintainerInvitation,\n getOrganizationInvitations,\n getOrganizationInvitation,\n acceptOrganizationInvitation,\n rejectOrganizationInvitation,\n getProjectInvitations,\n getProjectInvitation,\n acceptProjectInvitation,\n rejectProjectInvitation,\n getProjectJoinRequests,\n deleteProjectJoinRequest,\n };\n};\n","import type { GenericFetchClient } from '../managementClient';\n\nimport type { Feature, GetAllFeaturesQuery } from './types';\n\nexport const createFeatures = (client: GenericFetchClient) => {\n const getAllFeatures = async (query: GetAllFeaturesQuery, signal?: AbortSignal) => {\n const { data } = await client.get<Feature[], void, GetAllFeaturesQuery>(\n '/features',\n { query },\n { signal },\n );\n return data;\n };\n\n return {\n getAllFeatures,\n };\n};\n","import type { ManagementOpenApiFetchClient } from '../managementClient';\n\nimport type {\n AddMaintainerUserBody,\n CreateMaintainerBody,\n CreateMaintainerInvitationBody,\n CreateMaintainerOrganizationBody,\n Maintainer,\n MaintainerUser,\n MetadataItem,\n SetMaintainerMetadataBody,\n UpdateMaintainerBody,\n} from './types';\n\nexport const createMaintainers = (client: ManagementOpenApiFetchClient) => {\n // --- Maintainer CRUD ---\n\n const getMaintainers = async (signal?: AbortSignal) => {\n const { data } = await client.get('/manage/maintainers', {}, { signal });\n // OpenAPI declares response as `Record<string, never>[]`; backend returns MaintainerResponse[].\n return data as unknown as Maintainer[];\n };\n\n const getMaintainer = async (maintainerId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/maintainers/{id}',\n { path: { id: maintainerId } },\n { signal },\n );\n return data;\n };\n\n const createMaintainer = async (body: CreateMaintainerBody) => {\n const { data } = await client.post('/manage/maintainers', { body });\n return data;\n };\n\n const updateMaintainer = async ({\n maintainerId,\n ...body\n }: { maintainerId: number } & UpdateMaintainerBody) => {\n const { data } = await client.patch('/manage/maintainers/{id}', {\n path: { id: maintainerId },\n body,\n });\n return data;\n };\n\n const deleteMaintainer = async (maintainerId: number) => {\n await client.delete('/manage/maintainers/{id}', { path: { id: maintainerId } });\n };\n\n // --- Members (users/admins) ---\n\n const getMaintainerUsers = async (maintainerId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/maintainers/{id}/users',\n { path: { id: maintainerId } },\n { signal },\n );\n // OpenAPI declares response as `Record<string, never>[]`; backend returns user objects.\n return data as unknown as MaintainerUser[];\n };\n\n const addMaintainerUser = async ({\n maintainerId,\n ...body\n }: { maintainerId: number } & AddMaintainerUserBody) => {\n const { data } = await client.post('/manage/maintainers/{id}/users', {\n path: { id: maintainerId },\n body,\n });\n return data;\n };\n\n const removeMaintainerUser = async ({\n maintainerId,\n adminId,\n }: {\n maintainerId: number;\n adminId: number;\n }) => {\n await client.delete('/manage/maintainers/{id}/users/{adminId}', {\n path: { id: maintainerId, adminId },\n });\n };\n\n // --- Invitations ---\n\n const getMaintainerInvitations = async (maintainerId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/maintainers/{id}/invitations',\n { path: { id: maintainerId } },\n { signal },\n );\n return data;\n };\n\n const getMaintainerInvitation = async (\n { maintainerId, invitationId }: { maintainerId: number; invitationId: number },\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/manage/maintainers/{id}/invitations/{invitationId}',\n { path: { id: maintainerId, invitationId } },\n { signal },\n );\n return data;\n };\n\n const createMaintainerInvitation = async ({\n maintainerId,\n ...body\n }: { maintainerId: number } & CreateMaintainerInvitationBody) => {\n const { data } = await client.post('/manage/maintainers/{id}/invitations', {\n path: { id: maintainerId },\n body,\n });\n return data;\n };\n\n const deleteMaintainerInvitation = async ({\n maintainerId,\n invitationId,\n }: {\n maintainerId: number;\n invitationId: number;\n }) => {\n await client.delete('/manage/maintainers/{id}/invitations/{invitationId}', {\n path: { id: maintainerId, invitationId },\n });\n };\n\n // --- Organizations under maintainer ---\n\n const createMaintainerOrganization = async ({\n maintainerId,\n ...body\n }: { maintainerId: number } & CreateMaintainerOrganizationBody) => {\n const { data } = await client.post('/manage/maintainers/{id}/organizations', {\n path: { id: maintainerId },\n body,\n });\n return data;\n };\n\n // --- Metadata ---\n\n const getMaintainerMetadata = async (maintainerId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/maintainers/{id}/metadata',\n { path: { id: maintainerId } },\n { signal },\n );\n // OpenAPI declares response as `Record<string, never>[]`; backend returns MetadataItem[].\n return data as unknown as MetadataItem[];\n };\n\n const setMaintainerMetadata = async ({\n maintainerId,\n ...body\n }: { maintainerId: number } & SetMaintainerMetadataBody) => {\n const { data } = await client.post('/manage/maintainers/{id}/metadata', {\n path: { id: maintainerId },\n body,\n });\n // OpenAPI declares response as `Record<string, never>[]`; backend returns MetadataItem[].\n return data as unknown as MetadataItem[];\n };\n\n const deleteMaintainerMetadata = async ({\n maintainerId,\n metadataId,\n }: {\n maintainerId: number;\n metadataId: number;\n }) => {\n await client.delete('/manage/maintainers/{id}/metadata/{metadataId}', {\n path: { id: maintainerId, metadataId },\n });\n };\n\n return {\n getMaintainers,\n getMaintainer,\n createMaintainer,\n updateMaintainer,\n deleteMaintainer,\n getMaintainerUsers,\n addMaintainerUser,\n removeMaintainerUser,\n getMaintainerInvitations,\n getMaintainerInvitation,\n createMaintainerInvitation,\n deleteMaintainerInvitation,\n createMaintainerOrganization,\n getMaintainerMetadata,\n setMaintainerMetadata,\n deleteMaintainerMetadata,\n };\n};\n","import type { MetadataItem } from '../maintainers/types';\nimport type { ManagementOpenApiFetchClient } from '../managementClient';\nimport type { Project } from '../projects/types';\n\nimport type {\n AddOrganizationUserBody,\n AdminUser,\n CreateOrganizationInvitationBody,\n CreateOrganizationProjectBody,\n OrganizationDetail,\n OrganizationInvitationDetail,\n SetOrganizationMetadataBody,\n UpdateOrganizationBody,\n} from './types';\n\nexport const createOrganizations = (client: ManagementOpenApiFetchClient) => {\n // --- Organization CRUD ---\n\n const getOrganizations = async (signal?: AbortSignal) => {\n const { data } = await client.get('/manage/organizations', {}, { signal });\n return data;\n };\n\n const getOrganization = async (organizationId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/organizations/{id}',\n { path: { id: organizationId } },\n { signal },\n );\n // OpenAPI declares projects/maintainer as `Record<string, never>`; backend returns full shapes.\n return data as unknown as OrganizationDetail;\n };\n\n const updateOrganization = async ({\n organizationId,\n ...body\n }: { organizationId: number } & UpdateOrganizationBody) => {\n const { data } = await client.patch('/manage/organizations/{id}', {\n path: { id: organizationId },\n body,\n });\n return data;\n };\n\n const deleteOrganization = async (organizationId: number) => {\n await client.delete('/manage/organizations/{id}', { path: { id: organizationId } });\n };\n\n const forceMfa = async (organizationId: number) => {\n const { data } = await client.patch('/manage/organizations/{id}/force-mfa', {\n path: { id: organizationId },\n });\n return data;\n };\n\n const joinOrganization = async (organizationId: number) => {\n await client.post('/manage/organizations/{id}/join-organization', {\n path: { id: organizationId },\n });\n };\n\n // --- Members (users/admins) ---\n\n const getOrganizationUsers = async (organizationId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/organizations/{id}/users',\n { path: { id: organizationId } },\n { signal },\n );\n // OpenAPI declares response as `Record<string, never>[]`; backend returns user objects.\n return data as unknown as AdminUser[];\n };\n\n const addOrganizationUser = async ({\n organizationId,\n ...body\n }: { organizationId: number } & AddOrganizationUserBody) => {\n const { data } = await client.post('/manage/organizations/{id}/users', {\n path: { id: organizationId },\n body,\n });\n return data;\n };\n\n const removeOrganizationUser = async ({\n organizationId,\n userId,\n }: {\n organizationId: number;\n userId: number;\n }) => {\n await client.delete('/manage/organizations/{id}/users/{userId}', {\n path: { id: organizationId, userId },\n });\n };\n\n const getOrganizationProjectsUsers = async (organizationId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/organizations/{id}/projects-users',\n { path: { id: organizationId } },\n { signal },\n );\n // OpenAPI declares response as `Record<string, never>[]`; backend returns user objects.\n return data as unknown as AdminUser[];\n };\n\n // --- Invitations ---\n\n const getOrganizationInvitations = async (organizationId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/organizations/{id}/invitations',\n { path: { id: organizationId } },\n { signal },\n );\n // OpenAPI declares response as `Record<string, never>[]`; backend returns invitation objects.\n return data as unknown as OrganizationInvitationDetail[];\n };\n\n const getOrganizationInvitation = async (\n { organizationId, invitationId }: { organizationId: number; invitationId: number },\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/manage/organizations/{id}/invitations/{invitationId}',\n { path: { id: organizationId, invitationId } },\n { signal },\n );\n return data;\n };\n\n const createOrganizationInvitation = async ({\n organizationId,\n ...body\n }: { organizationId: number } & CreateOrganizationInvitationBody) => {\n const { data } = await client.post('/manage/organizations/{id}/invitations', {\n path: { id: organizationId },\n body,\n });\n return data;\n };\n\n const deleteOrganizationInvitation = async ({\n organizationId,\n invitationId,\n }: {\n organizationId: number;\n invitationId: number;\n }) => {\n await client.delete('/manage/organizations/{id}/invitations/{invitationId}', {\n path: { id: organizationId, invitationId },\n });\n };\n\n // --- Projects under organization ---\n\n const getOrganizationProjects = async (organizationId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/organizations/{id}/projects',\n { path: { id: organizationId } },\n { signal },\n );\n // OpenAPI declares response as `Record<string, never>[]`; backend returns project objects.\n return data as unknown as Project[];\n };\n\n const createOrganizationProject = async ({\n organizationId,\n ...body\n }: { organizationId: number } & CreateOrganizationProjectBody) => {\n const { data } = await client.post('/manage/organizations/{id}/projects', {\n path: { id: organizationId },\n body,\n });\n return data;\n };\n\n // --- Metadata ---\n\n const getOrganizationMetadata = async (organizationId: number, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/manage/organizations/{id}/metadata',\n { path: { id: organizationId } },\n { signal },\n );\n // OpenAPI declares response as `Record<string, never>[]`; backend returns metadata items.\n return data as unknown as MetadataItem[];\n };\n\n const setOrganizationMetadata = async ({\n organizationId,\n ...body\n }: { organizationId: number } & SetOrganizationMetadataBody) => {\n const { data } = await client.post('/manage/organizations/{id}/metadata', {\n path: { id: organizationId },\n body,\n });\n // OpenAPI declares response as `Record<string, never>[]`; backend returns metadata items.\n return data as unknown as MetadataItem[];\n };\n\n const deleteOrganizationMetadata = async ({\n organizationId,\n metadataId,\n }: {\n organizationId: number;\n metadataId: number;\n }) => {\n await client.delete('/manage/organizations/{id}/metadata/{metadataId}', {\n path: { id: organizationId, metadataId },\n });\n };\n\n return {\n getOrganizations,\n getOrganization,\n updateOrganization,\n deleteOrganization,\n forceMfa,\n joinOrganization,\n getOrganizationUsers,\n addOrganizationUser,\n removeOrganizationUser,\n getOrganizationProjectsUsers,\n getOrganizationInvitations,\n getOrganizationInvitation,\n createOrganizationInvitation,\n deleteOrganizationInvitation,\n getOrganizationProjects,\n createOrganizationProject,\n getOrganizationMetadata,\n setOrganizationMetadata,\n deleteOrganizationMetadata,\n };\n};\n","import type { GenericFetchClient } from '../managementClient';\nimport type { User } from '../types';\n\nimport type {\n CreateProjectFeatureBody,\n CreateProjectFeaturePath,\n GetProjectMetadataPath,\n GetProjectPath,\n GetProjectReviewersPath,\n ListProjectUsersPath,\n Project,\n ProjectMetadataItem,\n RemoveProjectFeaturePath,\n Reviewer,\n SetProjectMetadataBody,\n SetProjectMetadataPath,\n SetProjectReviewersBody,\n SetProjectReviewersPath,\n} from './types';\n\nexport const createProjects = (client: GenericFetchClient) => {\n const getProject = async (projectId: GetProjectPath['projectId'], signal?: AbortSignal) => {\n const { data } = await client.get<Project, GetProjectPath>(\n '/projects/{projectId}',\n { path: { projectId } },\n { signal },\n );\n return data;\n };\n\n const addProjectFeature = async ({\n projectId,\n feature,\n }: CreateProjectFeaturePath & CreateProjectFeatureBody) => {\n const { data } = await client.post<\n Project,\n CreateProjectFeaturePath,\n void,\n CreateProjectFeatureBody\n >('/projects/{projectId}/features', { path: { projectId }, body: { feature } });\n return data;\n };\n\n const removeProjectFeature = async (path: RemoveProjectFeaturePath) => {\n const { data } = await client.delete<null, RemoveProjectFeaturePath>(\n '/projects/{projectId}/features/{feature}',\n { path },\n );\n return data;\n };\n\n const changeProjectUserRole = async ({\n projectId,\n userId,\n role,\n }: {\n projectId: number;\n userId: number;\n role: User['role'];\n }) => {\n const { data } = await client.patch<\n User,\n { projectId: number; userId: number },\n never,\n { role: User['role'] }\n >('/projects/{projectId}/users/{userId}', {\n path: { projectId, userId },\n body: { role },\n });\n\n return data;\n };\n\n const getProjectUsers = async (\n projectId: ListProjectUsersPath['projectId'],\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get<User[], ListProjectUsersPath>(\n '/projects/{projectId}/users',\n { path: { projectId } },\n { signal },\n );\n return data;\n };\n\n const getProjectMetadata = async (\n projectId: GetProjectMetadataPath['projectId'],\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get<ProjectMetadataItem[], GetProjectMetadataPath>(\n '/projects/{projectId}/metadata',\n { path: { projectId } },\n { signal },\n );\n return data;\n };\n\n const setProjectMetadata = async ({\n projectId,\n provider,\n metadata,\n }: SetProjectMetadataPath & SetProjectMetadataBody) => {\n const { data } = await client.post<\n ProjectMetadataItem[],\n SetProjectMetadataPath,\n void,\n SetProjectMetadataBody\n >('/projects/{projectId}/metadata', {\n path: { projectId },\n body: { provider, metadata },\n });\n return data;\n };\n\n const getProjectReviewers = async (\n projectId: GetProjectReviewersPath['projectId'],\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get<Reviewer[], GetProjectReviewersPath>(\n '/projects/{projectId}/reviewers',\n { path: { projectId } },\n { signal },\n );\n return data;\n };\n\n const setProjectReviewers = async ({\n projectId,\n adminIds,\n }: SetProjectReviewersPath & SetProjectReviewersBody) => {\n const { data } = await client.put<\n void,\n SetProjectReviewersPath,\n never,\n SetProjectReviewersBody\n >('/projects/{projectId}/reviewers', {\n path: { projectId },\n body: { adminIds },\n });\n return data;\n };\n\n return {\n getProject,\n addProjectFeature,\n removeProjectFeature,\n changeProjectUserRole,\n getProjectUsers,\n getProjectMetadata,\n setProjectMetadata,\n getProjectReviewers,\n setProjectReviewers,\n };\n};\n","import type { GenericFetchClient } from '../managementClient';\n\nimport type { AddUserFeatureBody, AddUserFeaturePath, RemoveUserFeaturePath, User } from './types';\n\nexport const createUsers = (client: GenericFetchClient) => {\n const addUserAdminFeature = async (\n { feature, userIdOrMail }: AddUserFeatureBody & AddUserFeaturePath,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.post<User, AddUserFeaturePath, void, AddUserFeatureBody>(\n '/users/{userIdOrMail}/features',\n { path: { userIdOrMail: encodeURIComponent(userIdOrMail) }, body: { feature } },\n { signal },\n );\n return data;\n };\n\n const removeUserAdminFeature = async (\n { userIdOrMail, feature }: RemoveUserFeaturePath,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.delete<User, RemoveUserFeaturePath>(\n '/users/{userIdOrMail}/features/{feature}',\n { path: { userIdOrMail: encodeURIComponent(userIdOrMail), feature } },\n { signal },\n );\n return data;\n };\n\n return {\n addUserAdminFeature,\n removeUserAdminFeature,\n };\n};\n","import {\n createCallbackMiddleware,\n createGenericFetchClient,\n createOpenapiFetchClient,\n} from '../../fetchClient';\nimport { normalizeBaseUrl } from '../../utils/normalizeBaseUrl';\nimport type { BaseClientOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport { createAuthMiddleware } from './authMiddleware';\nimport { createCurrentUser } from './currentUser';\nimport { createFeatures } from './features';\nimport { createMaintainers } from './maintainers';\nimport { createOrganizations } from './organizations';\nimport { createProjects } from './projects';\nimport { createUsers } from './users';\n\nexport type GenericFetchClient = ReturnType<typeof createGenericFetchClient>;\nexport type ManagementOpenApiFetchClient = ReturnType<typeof createOpenapiFetchClient<paths>>;\n\nexport const createManagementClient = ({\n baseUrl,\n callbacks,\n token,\n}: BaseClientOptions & { token?: string }) => {\n const normalizedBaseUrl = normalizeBaseUrl(baseUrl);\n const callbackMiddleware = createCallbackMiddleware(callbacks);\n const authMiddleware = createAuthMiddleware({\n baseUrl: normalizedBaseUrl,\n accessToken: token,\n });\n const middlewares = [\n callbackMiddleware,\n authMiddleware, // 👈 beware order of middlewares always matter\n ];\n\n const client = createGenericFetchClient({\n baseUrl: `${normalizedBaseUrl}/manage`,\n middlewares,\n });\n\n const openApiClient = createOpenapiFetchClient<paths>({\n baseUrl: normalizedBaseUrl,\n middlewares,\n });\n\n const verifyToken = async (signal?: AbortSignal) => {\n const { data } = await openApiClient.get('/manage/tokens/verify', {}, { signal });\n return data;\n };\n\n return {\n currentUser: createCurrentUser(openApiClient),\n features: createFeatures(client),\n maintainers: createMaintainers(openApiClient),\n organizations: createOrganizations(openApiClient),\n projects: createProjects(client),\n users: createUsers(client),\n verifyToken,\n };\n};\n"]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkHPVTVQBJ_cjs = require('./chunk-HPVTVQBJ.cjs');
|
|
4
|
+
|
|
5
|
+
// src/clients/ai/aiClient.ts
|
|
6
|
+
var createAiClient = ({ baseUrl, middlewares }) => {
|
|
7
|
+
const client = chunkHPVTVQBJ_cjs.createOpenapiFetchClient({
|
|
8
|
+
baseUrl: chunkHPVTVQBJ_cjs.normalizeBaseUrl(baseUrl),
|
|
9
|
+
middlewares
|
|
10
|
+
});
|
|
11
|
+
const describeConfigurationVersion = async (body) => {
|
|
12
|
+
const { data } = await client.post("/describe/configuration-version", { body });
|
|
13
|
+
return data;
|
|
14
|
+
};
|
|
15
|
+
const describeConfigurationMerge = async (body) => {
|
|
16
|
+
const { data } = await client.post("/describe/configuration-merge", { body });
|
|
17
|
+
return data;
|
|
18
|
+
};
|
|
19
|
+
const explainError = async (body) => {
|
|
20
|
+
const { data } = await client.post("/explain", { body });
|
|
21
|
+
return data;
|
|
22
|
+
};
|
|
23
|
+
const describeConfiguration = async (body) => {
|
|
24
|
+
const { data } = await client.post("/describe/configuration", { body });
|
|
25
|
+
return data;
|
|
26
|
+
};
|
|
27
|
+
const suggestComponent = async (body) => {
|
|
28
|
+
const { data } = await client.post("/suggest/component", { body });
|
|
29
|
+
return data;
|
|
30
|
+
};
|
|
31
|
+
const feedback = async (body) => {
|
|
32
|
+
const { data } = await client.post("/feedback", { body });
|
|
33
|
+
return data;
|
|
34
|
+
};
|
|
35
|
+
return {
|
|
36
|
+
describeConfigurationVersion,
|
|
37
|
+
describeConfigurationMerge,
|
|
38
|
+
explainError,
|
|
39
|
+
describeConfiguration,
|
|
40
|
+
suggestComponent,
|
|
41
|
+
feedback
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
exports.createAiClient = createAiClient;
|
|
46
|
+
//# sourceMappingURL=chunk-JLNOESHX.cjs.map
|
|
47
|
+
//# sourceMappingURL=chunk-JLNOESHX.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/clients/ai/aiClient.ts"],"names":["createOpenapiFetchClient","normalizeBaseUrl"],"mappings":";;;;;AAcO,IAAM,cAAA,GAAiB,CAAC,EAAE,OAAA,EAAS,aAAY,KAAyB;AAC7E,EAAA,MAAM,SAASA,0CAAA,CAAgC;AAAA,IAC7C,OAAA,EAASC,mCAAiB,OAAO,CAAA;AAAA,IACjC;AAAA,GACD,CAAA;AAED,EAAA,MAAM,4BAAA,GAA+B,OAAO,IAAA,KAA2C;AACrF,IAAA,MAAM,EAAE,MAAK,GAAI,MAAM,OAAO,IAAA,CAAK,iCAAA,EAAmC,EAAE,IAAA,EAAM,CAAA;AAE9E,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,0BAAA,GAA6B,OAAO,IAAA,KAAyC;AACjF,IAAA,MAAM,EAAE,MAAK,GAAI,MAAM,OAAO,IAAA,CAAK,+BAAA,EAAiC,EAAE,IAAA,EAAM,CAAA;AAE5E,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,YAAA,GAAe,OAAO,IAAA,KAA2B;AACrD,IAAA,MAAM,EAAE,MAAK,GAAI,MAAM,OAAO,IAAA,CAAK,UAAA,EAAY,EAAE,IAAA,EAAM,CAAA;AAEvD,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,qBAAA,GAAwB,OAAO,IAAA,KAAoC;AACvE,IAAA,MAAM,EAAE,MAAK,GAAI,MAAM,OAAO,IAAA,CAAK,yBAAA,EAA2B,EAAE,IAAA,EAAM,CAAA;AAEtE,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,gBAAA,GAAmB,OAAO,IAAA,KAA+B;AAC7D,IAAA,MAAM,EAAE,MAAK,GAAI,MAAM,OAAO,IAAA,CAAK,oBAAA,EAAsB,EAAE,IAAA,EAAM,CAAA;AAEjE,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,QAAA,GAAW,OAAO,IAAA,KAAuB;AAC7C,IAAA,MAAM,EAAE,MAAK,GAAI,MAAM,OAAO,IAAA,CAAK,WAAA,EAAa,EAAE,IAAA,EAAM,CAAA;AAExD,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,4BAAA;AAAA,IACA,0BAAA;AAAA,IACA,YAAA;AAAA,IACA,qBAAA;AAAA,IACA,gBAAA;AAAA,IACA;AAAA,GACF;AACF","file":"chunk-JLNOESHX.cjs","sourcesContent":["import { createOpenapiFetchClient } from '../../fetchClient';\nimport { normalizeBaseUrl } from '../../utils/normalizeBaseUrl';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n DescribeConfigurationBody,\n DescribeConfigurationMergeBody,\n DescribeConfigurationVersionBody,\n ExplainErrorBody,\n FeedbackBody,\n SuggestComponentBody,\n} from './types';\n\nexport const createAiClient = ({ baseUrl, middlewares }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl: normalizeBaseUrl(baseUrl),\n middlewares,\n });\n\n const describeConfigurationVersion = async (body: DescribeConfigurationVersionBody) => {\n const { data } = await client.post('/describe/configuration-version', { body });\n\n return data;\n };\n\n const describeConfigurationMerge = async (body: DescribeConfigurationMergeBody) => {\n const { data } = await client.post('/describe/configuration-merge', { body });\n\n return data;\n };\n\n const explainError = async (body: ExplainErrorBody) => {\n const { data } = await client.post('/explain', { body });\n\n return data;\n };\n\n const describeConfiguration = async (body: DescribeConfigurationBody) => {\n const { data } = await client.post('/describe/configuration', { body });\n\n return data;\n };\n\n const suggestComponent = async (body: SuggestComponentBody) => {\n const { data } = await client.post('/suggest/component', { body });\n\n return data;\n };\n\n const feedback = async (body: FeedbackBody) => {\n const { data } = await client.post('/feedback', { body });\n\n return data;\n };\n\n return {\n describeConfigurationVersion,\n describeConfigurationMerge,\n explainError,\n describeConfiguration,\n suggestComponent,\n feedback,\n };\n};\n"]}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { concurrent } from './chunk-EBCZUGUX.js';
|
|
2
|
+
|
|
3
|
+
// src/utils/keboolaUID.ts
|
|
4
|
+
var KEBOOLA_OBJECT_ID_DELIMITER = "--";
|
|
5
|
+
var keboolaUID = {
|
|
6
|
+
serialize: (input) => {
|
|
7
|
+
if (input.uid === "")
|
|
8
|
+
throw new Error("Invalid Keboola Object ID: uid of an object cannot be empty");
|
|
9
|
+
return ["KID", input.projectId, input.type, input.uid].join(KEBOOLA_OBJECT_ID_DELIMITER);
|
|
10
|
+
},
|
|
11
|
+
deserialize: (input) => {
|
|
12
|
+
const [identifier, projectId, type, uid] = input.split(KEBOOLA_OBJECT_ID_DELIMITER);
|
|
13
|
+
if (identifier !== "KID" || !projectId || !type || !uid)
|
|
14
|
+
throw new Error("Invalid Keboola Object ID");
|
|
15
|
+
return {
|
|
16
|
+
projectId: Number(projectId),
|
|
17
|
+
type,
|
|
18
|
+
uid
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
// src/utils/generateUUID.ts
|
|
24
|
+
var generateUUID = () => crypto.randomUUID();
|
|
25
|
+
|
|
26
|
+
// src/sdks/tag/tagSdk.ts
|
|
27
|
+
var ObjectType = {
|
|
28
|
+
TAG: "tag",
|
|
29
|
+
TAG_BINDING: "tag-binding"
|
|
30
|
+
};
|
|
31
|
+
var createTagSdk = ({ metastoreClient }) => {
|
|
32
|
+
const _getTagMetaObjects = async (type, signal) => {
|
|
33
|
+
const response = await metastoreClient.repository.getMetaObjects(
|
|
34
|
+
{
|
|
35
|
+
objectType: type
|
|
36
|
+
},
|
|
37
|
+
signal
|
|
38
|
+
);
|
|
39
|
+
return response.data.map(({ attributes }) => attributes);
|
|
40
|
+
};
|
|
41
|
+
const _getAllTagBindingMapByTagId = async (signal) => {
|
|
42
|
+
const tagBindings = await _getTagMetaObjects(ObjectType.TAG_BINDING, signal);
|
|
43
|
+
return Object.groupBy(tagBindings, (binding) => binding.data.tagUUID);
|
|
44
|
+
};
|
|
45
|
+
const _getTagBindingMapByTagId = async (tagUUIDs, objectId, signal) => {
|
|
46
|
+
const tagBindingMapByTagId = await _getAllTagBindingMapByTagId(signal);
|
|
47
|
+
const objectUID = keboolaUID.serialize(objectId);
|
|
48
|
+
return tagUUIDs.reduce((acc, tagUUID) => {
|
|
49
|
+
if (acc[tagUUID]) return acc;
|
|
50
|
+
const tagBindings = tagBindingMapByTagId[tagUUID] ?? [];
|
|
51
|
+
acc[tagUUID] = tagBindings.find((binding) => binding.data.objectUID === objectUID) ?? null;
|
|
52
|
+
return acc;
|
|
53
|
+
}, {});
|
|
54
|
+
};
|
|
55
|
+
const _deleteTagBindings = async (tagBindings) => {
|
|
56
|
+
await concurrent({
|
|
57
|
+
items: tagBindings,
|
|
58
|
+
process: async (binding) => metastoreClient.repository.deleteMetaObject({
|
|
59
|
+
objectType: ObjectType.TAG_BINDING,
|
|
60
|
+
UUID: binding.uuid
|
|
61
|
+
}),
|
|
62
|
+
concurrency: 5
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
const getTags = async (signal) => {
|
|
66
|
+
const [tags, tagBindingMapByTagId] = await Promise.all([
|
|
67
|
+
_getTagMetaObjects(ObjectType.TAG, signal),
|
|
68
|
+
_getAllTagBindingMapByTagId(signal)
|
|
69
|
+
]);
|
|
70
|
+
return tags.map((tag) => ({
|
|
71
|
+
tag,
|
|
72
|
+
bindings: tagBindingMapByTagId[tag.uuid] ?? []
|
|
73
|
+
}));
|
|
74
|
+
};
|
|
75
|
+
const getTagsByObjectId = async (objectId, signal) => {
|
|
76
|
+
const tags = await getTags(signal);
|
|
77
|
+
const keboolaObjectUID = keboolaUID.serialize(objectId);
|
|
78
|
+
const mapByTagId = tags.reduce((acc, { tag, bindings }) => {
|
|
79
|
+
acc[tag.uuid] = new Set(bindings.map((binding) => binding.data.objectUID));
|
|
80
|
+
return acc;
|
|
81
|
+
}, {});
|
|
82
|
+
return tags.filter(({ tag }) => mapByTagId[tag.uuid]?.has(keboolaObjectUID));
|
|
83
|
+
};
|
|
84
|
+
const createTag = async (data, meta = {}) => {
|
|
85
|
+
const {
|
|
86
|
+
data: { attributes: tag }
|
|
87
|
+
} = await metastoreClient.repository.createMetaObject({
|
|
88
|
+
objectType: ObjectType.TAG,
|
|
89
|
+
data,
|
|
90
|
+
name: generateUUID(),
|
|
91
|
+
...meta
|
|
92
|
+
});
|
|
93
|
+
return tag;
|
|
94
|
+
};
|
|
95
|
+
const updateTag = async (tagUUID, data, meta = {}) => {
|
|
96
|
+
const {
|
|
97
|
+
data: { attributes: tag }
|
|
98
|
+
} = await metastoreClient.repository.updateMetaObject({
|
|
99
|
+
objectType: ObjectType.TAG,
|
|
100
|
+
UUID: tagUUID,
|
|
101
|
+
data,
|
|
102
|
+
...meta
|
|
103
|
+
});
|
|
104
|
+
return tag;
|
|
105
|
+
};
|
|
106
|
+
const deleteTag = async (tagUUID) => {
|
|
107
|
+
const allBindings = await _getTagMetaObjects(ObjectType.TAG_BINDING);
|
|
108
|
+
const tagBindings = allBindings.filter(({ data }) => data.tagUUID === tagUUID);
|
|
109
|
+
await Promise.all([
|
|
110
|
+
// delete tag itself
|
|
111
|
+
metastoreClient.repository.deleteMetaObject({
|
|
112
|
+
objectType: ObjectType.TAG,
|
|
113
|
+
UUID: tagUUID
|
|
114
|
+
}),
|
|
115
|
+
// delete all tag associations
|
|
116
|
+
_deleteTagBindings(tagBindings)
|
|
117
|
+
]);
|
|
118
|
+
};
|
|
119
|
+
const assignTags = async (tagUUIDs, objectId, meta = {}) => {
|
|
120
|
+
const tagBindingMapByTagId = await _getTagBindingMapByTagId(tagUUIDs, objectId);
|
|
121
|
+
const unassignedTagUUIDs = tagUUIDs.filter((tagUUID) => tagBindingMapByTagId[tagUUID] === null);
|
|
122
|
+
await concurrent({
|
|
123
|
+
items: unassignedTagUUIDs,
|
|
124
|
+
process: async (tagUUID) => metastoreClient.repository.createMetaObject({
|
|
125
|
+
objectType: ObjectType.TAG_BINDING,
|
|
126
|
+
data: {
|
|
127
|
+
objectUID: keboolaUID.serialize(objectId),
|
|
128
|
+
tagUUID
|
|
129
|
+
},
|
|
130
|
+
name: generateUUID(),
|
|
131
|
+
...meta
|
|
132
|
+
}),
|
|
133
|
+
concurrency: 5
|
|
134
|
+
});
|
|
135
|
+
};
|
|
136
|
+
const unassignTags = async (tagUUIDs, objectID) => {
|
|
137
|
+
const tagBindingMapByTagId = await _getTagBindingMapByTagId(tagUUIDs, objectID);
|
|
138
|
+
const assignedTagUUIDs = tagUUIDs.filter((tagUUID) => tagBindingMapByTagId[tagUUID] !== null);
|
|
139
|
+
const tagBindings = assignedTagUUIDs.map((tagUUID) => tagBindingMapByTagId[tagUUID]);
|
|
140
|
+
await concurrent({
|
|
141
|
+
items: tagBindings,
|
|
142
|
+
process: async (tagBinding) => metastoreClient.repository.deleteMetaObject({
|
|
143
|
+
objectType: ObjectType.TAG_BINDING,
|
|
144
|
+
UUID: tagBinding.uuid
|
|
145
|
+
}),
|
|
146
|
+
concurrency: 5
|
|
147
|
+
});
|
|
148
|
+
};
|
|
149
|
+
const unassignAllTags = async (objectID, signal) => {
|
|
150
|
+
const tagBindings = await _getTagMetaObjects(ObjectType.TAG_BINDING, signal);
|
|
151
|
+
const objectsTagBindings = tagBindings.filter(
|
|
152
|
+
({ data }) => data.objectUID === keboolaUID.serialize(objectID)
|
|
153
|
+
);
|
|
154
|
+
await _deleteTagBindings(objectsTagBindings);
|
|
155
|
+
};
|
|
156
|
+
const createAndAssignTag = async (data, objectId, meta = {}) => {
|
|
157
|
+
const tag = await createTag(data, meta);
|
|
158
|
+
await assignTags([tag.uuid], objectId, meta);
|
|
159
|
+
return tag;
|
|
160
|
+
};
|
|
161
|
+
return {
|
|
162
|
+
// retrievals
|
|
163
|
+
getTags,
|
|
164
|
+
getTagsByObjectId,
|
|
165
|
+
// modifications
|
|
166
|
+
createTag,
|
|
167
|
+
updateTag,
|
|
168
|
+
deleteTag,
|
|
169
|
+
assignTags,
|
|
170
|
+
unassignTags,
|
|
171
|
+
unassignAllTags,
|
|
172
|
+
createAndAssignTag
|
|
173
|
+
};
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
export { createTagSdk, generateUUID, keboolaUID };
|
|
177
|
+
//# sourceMappingURL=chunk-JURD5MC3.js.map
|
|
178
|
+
//# sourceMappingURL=chunk-JURD5MC3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/keboolaUID.ts","../src/utils/generateUUID.ts","../src/sdks/tag/tagSdk.ts"],"names":[],"mappings":"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","file":"chunk-JURD5MC3.js","sourcesContent":["type KeboolaObjectType =\n | 'data-catalog'\n | 'table'\n | 'bucket'\n | 'flow'\n | 'configuration'\n | 'transformation'\n | 'data-app'\n | 'workspace';\n\nexport type KeboolaObjectId = {\n uid: string;\n type: KeboolaObjectType;\n projectId: number;\n};\n\n//As a delimiter for serialization, we use a double hyphen (--) instead of a single hyphen in type names.\nconst KEBOOLA_OBJECT_ID_DELIMITER = '--';\n\n/**\n * There is a proposal for a string format to identify objects in Keboola.\n *\n * https://keboola.atlassian.net/wiki/spaces/ENGG/pages/3967615431/Keboola+UUID+Format\n * Unfortunately, this format will not pass BE validation as `:` is not allowed in the `uid`, and the length is limited to 50 characters only.\n *\n */\nexport const keboolaUID = {\n serialize: (input: KeboolaObjectId): string => {\n if (input.uid === '')\n throw new Error('Invalid Keboola Object ID: uid of an object cannot be empty');\n\n return ['KID', input.projectId, input.type, input.uid].join(KEBOOLA_OBJECT_ID_DELIMITER);\n },\n\n deserialize: (input: string): KeboolaObjectId => {\n const [identifier, projectId, type, uid] = input.split(KEBOOLA_OBJECT_ID_DELIMITER);\n if (identifier !== 'KID' || !projectId || !type || !uid)\n throw new Error('Invalid Keboola Object ID');\n\n return {\n projectId: Number(projectId),\n type: type as KeboolaObjectType,\n uid,\n };\n },\n};\n","export const generateUUID = () => crypto.randomUUID();\n","import type { MetaObject } from '../../clients/metastore/repository/types';\nimport { concurrent, generateUUID, type KeboolaObjectId, keboolaUID } from '../../utils';\n\nimport type {\n CreateMetaObjectMetaDataInput,\n MetastoreClient,\n TagBindingData,\n TagData,\n TagWithBindings,\n UpdateMetaObjectMetaDataInput,\n} from './types';\n\nconst ObjectType = {\n TAG: 'tag',\n TAG_BINDING: 'tag-binding',\n};\ntype ObjectTypes = (typeof ObjectType)[keyof typeof ObjectType];\n\ntype Options = {\n metastoreClient: MetastoreClient;\n};\n\nexport const createTagSdk = ({ metastoreClient }: Options) => {\n const _getTagMetaObjects = async <T extends Record<string, unknown>>(\n type: ObjectTypes,\n signal?: AbortSignal,\n ) => {\n const response = await metastoreClient.repository.getMetaObjects<T>(\n {\n objectType: type,\n },\n signal,\n );\n return response.data.map(({ attributes }) => attributes);\n };\n\n const _getAllTagBindingMapByTagId = async (signal?: AbortSignal) => {\n const tagBindings = await _getTagMetaObjects<TagBindingData>(ObjectType.TAG_BINDING, signal);\n return Object.groupBy(tagBindings, (binding) => binding.data.tagUUID);\n };\n\n const _getTagBindingMapByTagId = async (\n tagUUIDs: string[],\n objectId: KeboolaObjectId,\n signal?: AbortSignal,\n ) => {\n const tagBindingMapByTagId = await _getAllTagBindingMapByTagId(signal);\n const objectUID = keboolaUID.serialize(objectId);\n return tagUUIDs.reduce<Record<string, MetaObject<TagBindingData> | null>>((acc, tagUUID) => {\n if (acc[tagUUID]) return acc; // filter out duplicated ids\n\n const tagBindings = tagBindingMapByTagId[tagUUID] ?? [];\n acc[tagUUID] = tagBindings.find((binding) => binding.data.objectUID === objectUID) ?? null;\n return acc;\n }, {});\n };\n\n const _deleteTagBindings = async (tagBindings: MetaObject<TagBindingData>[]) => {\n await concurrent({\n items: tagBindings,\n process: async (binding) =>\n metastoreClient.repository.deleteMetaObject({\n objectType: ObjectType.TAG_BINDING,\n UUID: binding.uuid!,\n }),\n concurrency: 5,\n });\n };\n\n const getTags = async (signal?: AbortSignal) => {\n const [tags, tagBindingMapByTagId] = await Promise.all([\n _getTagMetaObjects<TagData>(ObjectType.TAG, signal),\n _getAllTagBindingMapByTagId(signal),\n ]);\n\n return tags.map<TagWithBindings>((tag) => ({\n tag,\n bindings: tagBindingMapByTagId[tag.uuid!] ?? [],\n }));\n };\n\n const getTagsByObjectId = async (objectId: KeboolaObjectId, signal?: AbortSignal) => {\n const tags = await getTags(signal);\n\n const keboolaObjectUID = keboolaUID.serialize(objectId);\n const mapByTagId = tags.reduce<Record<string, Set<string>>>((acc, { tag, bindings }) => {\n acc[tag.uuid!] = new Set(bindings.map((binding) => binding.data.objectUID));\n return acc;\n }, {});\n\n return tags.filter(({ tag }) => mapByTagId[tag.uuid!]?.has(keboolaObjectUID));\n };\n\n const createTag = async (data: TagData, meta: CreateMetaObjectMetaDataInput = {}) => {\n const {\n data: { attributes: tag },\n } = await metastoreClient.repository.createMetaObject({\n objectType: ObjectType.TAG,\n data,\n name: generateUUID(),\n ...meta,\n });\n\n return tag;\n };\n\n const updateTag = async (\n tagUUID: string,\n data: TagData,\n meta: UpdateMetaObjectMetaDataInput = {},\n ) => {\n const {\n data: { attributes: tag },\n } = await metastoreClient.repository.updateMetaObject<TagData>({\n objectType: ObjectType.TAG,\n UUID: tagUUID,\n data,\n ...meta,\n });\n\n return tag;\n };\n\n const deleteTag = async (tagUUID: string) => {\n const allBindings = await _getTagMetaObjects<TagBindingData>(ObjectType.TAG_BINDING);\n const tagBindings = allBindings.filter(({ data }) => data.tagUUID === tagUUID);\n\n await Promise.all([\n // delete tag itself\n metastoreClient.repository.deleteMetaObject({\n objectType: ObjectType.TAG,\n UUID: tagUUID,\n }),\n // delete all tag associations\n _deleteTagBindings(tagBindings),\n ]);\n };\n\n const assignTags = async (\n tagUUIDs: string[],\n objectId: KeboolaObjectId,\n meta: CreateMetaObjectMetaDataInput = {},\n ) => {\n const tagBindingMapByTagId = await _getTagBindingMapByTagId(tagUUIDs, objectId);\n // Assign only the unassigned tag IDs. Ignore the rest.\n const unassignedTagUUIDs = tagUUIDs.filter((tagUUID) => tagBindingMapByTagId[tagUUID] === null);\n\n await concurrent({\n items: unassignedTagUUIDs,\n process: async (tagUUID) =>\n metastoreClient.repository.createMetaObject<TagBindingData>({\n objectType: ObjectType.TAG_BINDING,\n data: {\n objectUID: keboolaUID.serialize(objectId),\n tagUUID: tagUUID,\n },\n name: generateUUID(),\n ...meta,\n }),\n concurrency: 5,\n });\n };\n\n const unassignTags = async (tagUUIDs: string[], objectID: KeboolaObjectId) => {\n const tagBindingMapByTagId = await _getTagBindingMapByTagId(tagUUIDs, objectID);\n const assignedTagUUIDs = tagUUIDs.filter((tagUUID) => tagBindingMapByTagId[tagUUID] !== null);\n\n const tagBindings = assignedTagUUIDs.map((tagUUID) => tagBindingMapByTagId[tagUUID]!);\n\n await concurrent({\n items: tagBindings,\n process: async (tagBinding) =>\n metastoreClient.repository.deleteMetaObject({\n objectType: ObjectType.TAG_BINDING,\n UUID: tagBinding.uuid!,\n }),\n concurrency: 5,\n });\n };\n\n const unassignAllTags = async (objectID: KeboolaObjectId, signal?: AbortSignal) => {\n const tagBindings = await _getTagMetaObjects<TagBindingData>(ObjectType.TAG_BINDING, signal);\n\n const objectsTagBindings = tagBindings.filter(\n ({ data }) => data.objectUID === keboolaUID.serialize(objectID),\n );\n\n await _deleteTagBindings(objectsTagBindings);\n };\n\n const createAndAssignTag = async (\n data: TagData,\n objectId: KeboolaObjectId,\n meta: CreateMetaObjectMetaDataInput = {},\n ) => {\n const tag = await createTag(data, meta);\n await assignTags([tag.uuid!], objectId, meta);\n return tag;\n };\n\n return {\n // retrievals\n getTags,\n getTagsByObjectId,\n\n // modifications\n createTag,\n updateTag,\n deleteTag,\n assignTags,\n unassignTags,\n unassignAllTags,\n createAndAssignTag,\n };\n};\n"]}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { createOpenapiFetchClient, normalizeBaseUrl, HttpHeader, parseContentDispositionHeader } from './chunk-PD3LJYS2.js';
|
|
2
|
+
|
|
3
|
+
// src/clients/queryService/queryServiceClient.ts
|
|
4
|
+
var createQueryServiceClient = ({ baseUrl, middlewares }) => {
|
|
5
|
+
const client = createOpenapiFetchClient({
|
|
6
|
+
baseUrl: normalizeBaseUrl(baseUrl),
|
|
7
|
+
middlewares
|
|
8
|
+
});
|
|
9
|
+
const createQueryJob = async (branchId, workspaceId, body) => {
|
|
10
|
+
const { data } = await client.post(
|
|
11
|
+
"/api/v1/branches/{branchId}/workspaces/{workspaceId}/queries",
|
|
12
|
+
{ path: { branchId, workspaceId }, body }
|
|
13
|
+
);
|
|
14
|
+
return data;
|
|
15
|
+
};
|
|
16
|
+
const cancelQueryJob = async (queryJobId) => {
|
|
17
|
+
const { data } = await client.post("/api/v1/queries/{queryJobId}/cancel", {
|
|
18
|
+
path: { queryJobId },
|
|
19
|
+
body: { reason: "Cancelled by user" }
|
|
20
|
+
});
|
|
21
|
+
return data;
|
|
22
|
+
};
|
|
23
|
+
const getQueryJob = async (queryJobId) => {
|
|
24
|
+
const { data } = await client.get("/api/v1/queries/{queryJobId}", { path: { queryJobId } });
|
|
25
|
+
return data;
|
|
26
|
+
};
|
|
27
|
+
const getQueryResults = async (queryJobId, statementId, query) => {
|
|
28
|
+
const { data } = await client.get("/api/v1/queries/{queryJobId}/{statementId}/results", {
|
|
29
|
+
path: { queryJobId, statementId },
|
|
30
|
+
query
|
|
31
|
+
});
|
|
32
|
+
return data;
|
|
33
|
+
};
|
|
34
|
+
const getQueryHistory = async (branchId, workspaceId, query) => {
|
|
35
|
+
const { data } = await client.get(
|
|
36
|
+
"/api/v1/branches/{branchId}/workspaces/{workspaceId}/queries",
|
|
37
|
+
{
|
|
38
|
+
path: { branchId, workspaceId },
|
|
39
|
+
query
|
|
40
|
+
}
|
|
41
|
+
);
|
|
42
|
+
return data;
|
|
43
|
+
};
|
|
44
|
+
const exportResults = async (queryJobId, statementId, query, signal) => {
|
|
45
|
+
const { data, response } = await client.get(
|
|
46
|
+
"/api/v1/queries/{queryJobId}/{statementId}/export",
|
|
47
|
+
{
|
|
48
|
+
path: { queryJobId, statementId },
|
|
49
|
+
query
|
|
50
|
+
},
|
|
51
|
+
{ signal }
|
|
52
|
+
);
|
|
53
|
+
const mimeType = response.headers.get(HttpHeader.CONTENT_TYPE) ?? "text/csv";
|
|
54
|
+
const contentDisposition = parseContentDispositionHeader(
|
|
55
|
+
response.headers.get(HttpHeader.CONTENT_DISPOSITION)
|
|
56
|
+
);
|
|
57
|
+
return {
|
|
58
|
+
mimeType,
|
|
59
|
+
content: data,
|
|
60
|
+
fileName: contentDisposition?.filename ?? "export.csv"
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
return {
|
|
64
|
+
createQueryJob,
|
|
65
|
+
cancelQueryJob,
|
|
66
|
+
getQueryJob,
|
|
67
|
+
getQueryResults,
|
|
68
|
+
getQueryHistory,
|
|
69
|
+
exportResults
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
export { createQueryServiceClient };
|
|
74
|
+
//# sourceMappingURL=chunk-LV3ZWNDC.js.map
|
|
75
|
+
//# sourceMappingURL=chunk-LV3ZWNDC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/clients/queryService/queryServiceClient.ts"],"names":[],"mappings":";;;AAsBO,IAAM,wBAAA,GAA2B,CAAC,EAAE,OAAA,EAAS,aAAY,KAAyB;AACvF,EAAA,MAAM,SAAS,wBAAA,CAAgC;AAAA,IAC7C,OAAA,EAAS,iBAAiB,OAAO,CAAA;AAAA,IACjC;AAAA,GACD,CAAA;AAED,EAAA,MAAM,cAAA,GAAiB,OACrB,QAAA,EACA,WAAA,EACA,IAAA,KACG;AACH,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,MAAA,CAAO,IAAA;AAAA,MAC5B,8DAAA;AAAA,MACA,EAAE,IAAA,EAAM,EAAE,QAAA,EAAU,WAAA,IAAe,IAAA;AAAK,KAC1C;AAEA,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,OAAO,UAAA,KAAqD;AACjF,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,MAAA,CAAO,KAAK,qCAAA,EAAuC;AAAA,MACxE,IAAA,EAAM,EAAE,UAAA,EAAW;AAAA,MACnB,IAAA,EAAM,EAAE,MAAA,EAAQ,mBAAA;AAAoB,KACrC,CAAA;AAED,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,WAAA,GAAc,OAAO,UAAA,KAA8C;AACvE,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,MAAA,CAAO,GAAA,CAAI,8BAAA,EAAgC,EAAE,IAAA,EAAM,EAAE,UAAA,EAAW,EAAG,CAAA;AAE1F,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,eAAA,GAAkB,OACtB,UAAA,EACA,WAAA,EACA,KAAA,KACG;AACH,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,MAAA,CAAO,IAAI,oDAAA,EAAsD;AAAA,MACtF,IAAA,EAAM,EAAE,UAAA,EAAY,WAAA,EAAY;AAAA,MAChC;AAAA,KACD,CAAA;AAED,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,eAAA,GAAkB,OACtB,QAAA,EACA,WAAA,EACA,KAAA,KACG;AACH,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,MAAA,CAAO,GAAA;AAAA,MAC5B,8DAAA;AAAA,MACA;AAAA,QACE,IAAA,EAAM,EAAE,QAAA,EAAU,WAAA,EAAY;AAAA,QAC9B;AAAA;AACF,KACF;AAEA,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,aAAA,GAAgB,OACpB,UAAA,EACA,WAAA,EACA,OACA,MAAA,KACmC;AACnC,IAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAS,GAAI,MAAM,MAAA,CAAO,GAAA;AAAA,MACtC,mDAAA;AAAA,MACA;AAAA,QACE,IAAA,EAAM,EAAE,UAAA,EAAY,WAAA,EAAY;AAAA,QAChC;AAAA,OACF;AAAA,MACA,EAAE,MAAA;AAAO,KACX;AAEA,IAAA,MAAM,WAAW,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,UAAA,CAAW,YAAY,CAAA,IAAK,UAAA;AAClE,IAAA,MAAM,kBAAA,GAAqB,6BAAA;AAAA,MACzB,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,UAAA,CAAW,mBAAmB;AAAA,KACrD;AAEA,IAAA,OAAO;AAAA,MACL,QAAA;AAAA,MACA,OAAA,EAAS,IAAA;AAAA,MACT,QAAA,EAAU,oBAAoB,QAAA,IAAY;AAAA,KAC5C;AAAA,EACF,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,cAAA;AAAA,IACA,cAAA;AAAA,IACA,WAAA;AAAA,IACA,eAAA;AAAA,IACA,eAAA;AAAA,IACA;AAAA,GACF;AACF","file":"chunk-LV3ZWNDC.js","sourcesContent":["import {\n createOpenapiFetchClient,\n HttpHeader,\n parseContentDispositionHeader,\n} from '../../fetchClient';\nimport { normalizeBaseUrl } from '../../utils/normalizeBaseUrl';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n ExportResultsResponse,\n GetExportResultsQuery,\n GetQueriesHistoryQuery,\n GetQueriesPath,\n GetQueryJobPath,\n GetQueryResultsPath,\n GetQueryResutsQuery,\n PostCancelQueryJobPath,\n PostQueryBody,\n PostQueryPath,\n} from './types';\n\nexport const createQueryServiceClient = ({ baseUrl, middlewares }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl: normalizeBaseUrl(baseUrl),\n middlewares,\n });\n\n const createQueryJob = async (\n branchId: PostQueryPath['branchId'],\n workspaceId: PostQueryPath['workspaceId'],\n body: PostQueryBody,\n ) => {\n const { data } = await client.post(\n '/api/v1/branches/{branchId}/workspaces/{workspaceId}/queries',\n { path: { branchId, workspaceId }, body },\n );\n\n return data;\n };\n\n const cancelQueryJob = async (queryJobId: PostCancelQueryJobPath['queryJobId']) => {\n const { data } = await client.post('/api/v1/queries/{queryJobId}/cancel', {\n path: { queryJobId },\n body: { reason: 'Cancelled by user' },\n });\n\n return data;\n };\n\n const getQueryJob = async (queryJobId: GetQueryJobPath['queryJobId']) => {\n const { data } = await client.get('/api/v1/queries/{queryJobId}', { path: { queryJobId } });\n\n return data;\n };\n\n const getQueryResults = async (\n queryJobId: GetQueryResultsPath['queryJobId'],\n statementId: GetQueryResultsPath['statementId'],\n query?: GetQueryResutsQuery,\n ) => {\n const { data } = await client.get('/api/v1/queries/{queryJobId}/{statementId}/results', {\n path: { queryJobId, statementId },\n query,\n });\n\n return data;\n };\n\n const getQueryHistory = async (\n branchId: GetQueriesPath['branchId'],\n workspaceId: GetQueriesPath['workspaceId'],\n query?: GetQueriesHistoryQuery,\n ) => {\n const { data } = await client.get(\n '/api/v1/branches/{branchId}/workspaces/{workspaceId}/queries',\n {\n path: { branchId, workspaceId },\n query,\n },\n );\n\n return data;\n };\n\n const exportResults = async (\n queryJobId: GetQueryResultsPath['queryJobId'],\n statementId: GetQueryResultsPath['statementId'],\n query: GetExportResultsQuery,\n signal?: AbortSignal,\n ): Promise<ExportResultsResponse> => {\n const { data, response } = await client.get(\n '/api/v1/queries/{queryJobId}/{statementId}/export',\n {\n path: { queryJobId, statementId },\n query,\n },\n { signal },\n );\n\n const mimeType = response.headers.get(HttpHeader.CONTENT_TYPE) ?? 'text/csv';\n const contentDisposition = parseContentDispositionHeader(\n response.headers.get(HttpHeader.CONTENT_DISPOSITION),\n );\n\n return {\n mimeType,\n content: data,\n fileName: contentDisposition?.filename ?? 'export.csv',\n };\n };\n\n return {\n createQueryJob,\n cancelQueryJob,\n getQueryJob,\n getQueryResults,\n getQueryHistory,\n exportResults,\n };\n};\n"]}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkHPVTVQBJ_cjs = require('./chunk-HPVTVQBJ.cjs');
|
|
4
|
+
|
|
5
|
+
// src/clients/queryService/queryServiceClient.ts
|
|
6
|
+
var createQueryServiceClient = ({ baseUrl, middlewares }) => {
|
|
7
|
+
const client = chunkHPVTVQBJ_cjs.createOpenapiFetchClient({
|
|
8
|
+
baseUrl: chunkHPVTVQBJ_cjs.normalizeBaseUrl(baseUrl),
|
|
9
|
+
middlewares
|
|
10
|
+
});
|
|
11
|
+
const createQueryJob = async (branchId, workspaceId, body) => {
|
|
12
|
+
const { data } = await client.post(
|
|
13
|
+
"/api/v1/branches/{branchId}/workspaces/{workspaceId}/queries",
|
|
14
|
+
{ path: { branchId, workspaceId }, body }
|
|
15
|
+
);
|
|
16
|
+
return data;
|
|
17
|
+
};
|
|
18
|
+
const cancelQueryJob = async (queryJobId) => {
|
|
19
|
+
const { data } = await client.post("/api/v1/queries/{queryJobId}/cancel", {
|
|
20
|
+
path: { queryJobId },
|
|
21
|
+
body: { reason: "Cancelled by user" }
|
|
22
|
+
});
|
|
23
|
+
return data;
|
|
24
|
+
};
|
|
25
|
+
const getQueryJob = async (queryJobId) => {
|
|
26
|
+
const { data } = await client.get("/api/v1/queries/{queryJobId}", { path: { queryJobId } });
|
|
27
|
+
return data;
|
|
28
|
+
};
|
|
29
|
+
const getQueryResults = async (queryJobId, statementId, query) => {
|
|
30
|
+
const { data } = await client.get("/api/v1/queries/{queryJobId}/{statementId}/results", {
|
|
31
|
+
path: { queryJobId, statementId },
|
|
32
|
+
query
|
|
33
|
+
});
|
|
34
|
+
return data;
|
|
35
|
+
};
|
|
36
|
+
const getQueryHistory = async (branchId, workspaceId, query) => {
|
|
37
|
+
const { data } = await client.get(
|
|
38
|
+
"/api/v1/branches/{branchId}/workspaces/{workspaceId}/queries",
|
|
39
|
+
{
|
|
40
|
+
path: { branchId, workspaceId },
|
|
41
|
+
query
|
|
42
|
+
}
|
|
43
|
+
);
|
|
44
|
+
return data;
|
|
45
|
+
};
|
|
46
|
+
const exportResults = async (queryJobId, statementId, query, signal) => {
|
|
47
|
+
const { data, response } = await client.get(
|
|
48
|
+
"/api/v1/queries/{queryJobId}/{statementId}/export",
|
|
49
|
+
{
|
|
50
|
+
path: { queryJobId, statementId },
|
|
51
|
+
query
|
|
52
|
+
},
|
|
53
|
+
{ signal }
|
|
54
|
+
);
|
|
55
|
+
const mimeType = response.headers.get(chunkHPVTVQBJ_cjs.HttpHeader.CONTENT_TYPE) ?? "text/csv";
|
|
56
|
+
const contentDisposition = chunkHPVTVQBJ_cjs.parseContentDispositionHeader(
|
|
57
|
+
response.headers.get(chunkHPVTVQBJ_cjs.HttpHeader.CONTENT_DISPOSITION)
|
|
58
|
+
);
|
|
59
|
+
return {
|
|
60
|
+
mimeType,
|
|
61
|
+
content: data,
|
|
62
|
+
fileName: contentDisposition?.filename ?? "export.csv"
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
return {
|
|
66
|
+
createQueryJob,
|
|
67
|
+
cancelQueryJob,
|
|
68
|
+
getQueryJob,
|
|
69
|
+
getQueryResults,
|
|
70
|
+
getQueryHistory,
|
|
71
|
+
exportResults
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
exports.createQueryServiceClient = createQueryServiceClient;
|
|
76
|
+
//# sourceMappingURL=chunk-LZ6A6J2E.cjs.map
|
|
77
|
+
//# sourceMappingURL=chunk-LZ6A6J2E.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/clients/queryService/queryServiceClient.ts"],"names":["createOpenapiFetchClient","normalizeBaseUrl","HttpHeader","parseContentDispositionHeader"],"mappings":";;;;;AAsBO,IAAM,wBAAA,GAA2B,CAAC,EAAE,OAAA,EAAS,aAAY,KAAyB;AACvF,EAAA,MAAM,SAASA,0CAAA,CAAgC;AAAA,IAC7C,OAAA,EAASC,mCAAiB,OAAO,CAAA;AAAA,IACjC;AAAA,GACD,CAAA;AAED,EAAA,MAAM,cAAA,GAAiB,OACrB,QAAA,EACA,WAAA,EACA,IAAA,KACG;AACH,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,MAAA,CAAO,IAAA;AAAA,MAC5B,8DAAA;AAAA,MACA,EAAE,IAAA,EAAM,EAAE,QAAA,EAAU,WAAA,IAAe,IAAA;AAAK,KAC1C;AAEA,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,OAAO,UAAA,KAAqD;AACjF,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,MAAA,CAAO,KAAK,qCAAA,EAAuC;AAAA,MACxE,IAAA,EAAM,EAAE,UAAA,EAAW;AAAA,MACnB,IAAA,EAAM,EAAE,MAAA,EAAQ,mBAAA;AAAoB,KACrC,CAAA;AAED,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,WAAA,GAAc,OAAO,UAAA,KAA8C;AACvE,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,MAAA,CAAO,GAAA,CAAI,8BAAA,EAAgC,EAAE,IAAA,EAAM,EAAE,UAAA,EAAW,EAAG,CAAA;AAE1F,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,eAAA,GAAkB,OACtB,UAAA,EACA,WAAA,EACA,KAAA,KACG;AACH,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,MAAA,CAAO,IAAI,oDAAA,EAAsD;AAAA,MACtF,IAAA,EAAM,EAAE,UAAA,EAAY,WAAA,EAAY;AAAA,MAChC;AAAA,KACD,CAAA;AAED,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,eAAA,GAAkB,OACtB,QAAA,EACA,WAAA,EACA,KAAA,KACG;AACH,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,MAAA,CAAO,GAAA;AAAA,MAC5B,8DAAA;AAAA,MACA;AAAA,QACE,IAAA,EAAM,EAAE,QAAA,EAAU,WAAA,EAAY;AAAA,QAC9B;AAAA;AACF,KACF;AAEA,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,aAAA,GAAgB,OACpB,UAAA,EACA,WAAA,EACA,OACA,MAAA,KACmC;AACnC,IAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAS,GAAI,MAAM,MAAA,CAAO,GAAA;AAAA,MACtC,mDAAA;AAAA,MACA;AAAA,QACE,IAAA,EAAM,EAAE,UAAA,EAAY,WAAA,EAAY;AAAA,QAChC;AAAA,OACF;AAAA,MACA,EAAE,MAAA;AAAO,KACX;AAEA,IAAA,MAAM,WAAW,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAIC,4BAAA,CAAW,YAAY,CAAA,IAAK,UAAA;AAClE,IAAA,MAAM,kBAAA,GAAqBC,+CAAA;AAAA,MACzB,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAID,4BAAA,CAAW,mBAAmB;AAAA,KACrD;AAEA,IAAA,OAAO;AAAA,MACL,QAAA;AAAA,MACA,OAAA,EAAS,IAAA;AAAA,MACT,QAAA,EAAU,oBAAoB,QAAA,IAAY;AAAA,KAC5C;AAAA,EACF,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,cAAA;AAAA,IACA,cAAA;AAAA,IACA,WAAA;AAAA,IACA,eAAA;AAAA,IACA,eAAA;AAAA,IACA;AAAA,GACF;AACF","file":"chunk-LZ6A6J2E.cjs","sourcesContent":["import {\n createOpenapiFetchClient,\n HttpHeader,\n parseContentDispositionHeader,\n} from '../../fetchClient';\nimport { normalizeBaseUrl } from '../../utils/normalizeBaseUrl';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n ExportResultsResponse,\n GetExportResultsQuery,\n GetQueriesHistoryQuery,\n GetQueriesPath,\n GetQueryJobPath,\n GetQueryResultsPath,\n GetQueryResutsQuery,\n PostCancelQueryJobPath,\n PostQueryBody,\n PostQueryPath,\n} from './types';\n\nexport const createQueryServiceClient = ({ baseUrl, middlewares }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl: normalizeBaseUrl(baseUrl),\n middlewares,\n });\n\n const createQueryJob = async (\n branchId: PostQueryPath['branchId'],\n workspaceId: PostQueryPath['workspaceId'],\n body: PostQueryBody,\n ) => {\n const { data } = await client.post(\n '/api/v1/branches/{branchId}/workspaces/{workspaceId}/queries',\n { path: { branchId, workspaceId }, body },\n );\n\n return data;\n };\n\n const cancelQueryJob = async (queryJobId: PostCancelQueryJobPath['queryJobId']) => {\n const { data } = await client.post('/api/v1/queries/{queryJobId}/cancel', {\n path: { queryJobId },\n body: { reason: 'Cancelled by user' },\n });\n\n return data;\n };\n\n const getQueryJob = async (queryJobId: GetQueryJobPath['queryJobId']) => {\n const { data } = await client.get('/api/v1/queries/{queryJobId}', { path: { queryJobId } });\n\n return data;\n };\n\n const getQueryResults = async (\n queryJobId: GetQueryResultsPath['queryJobId'],\n statementId: GetQueryResultsPath['statementId'],\n query?: GetQueryResutsQuery,\n ) => {\n const { data } = await client.get('/api/v1/queries/{queryJobId}/{statementId}/results', {\n path: { queryJobId, statementId },\n query,\n });\n\n return data;\n };\n\n const getQueryHistory = async (\n branchId: GetQueriesPath['branchId'],\n workspaceId: GetQueriesPath['workspaceId'],\n query?: GetQueriesHistoryQuery,\n ) => {\n const { data } = await client.get(\n '/api/v1/branches/{branchId}/workspaces/{workspaceId}/queries',\n {\n path: { branchId, workspaceId },\n query,\n },\n );\n\n return data;\n };\n\n const exportResults = async (\n queryJobId: GetQueryResultsPath['queryJobId'],\n statementId: GetQueryResultsPath['statementId'],\n query: GetExportResultsQuery,\n signal?: AbortSignal,\n ): Promise<ExportResultsResponse> => {\n const { data, response } = await client.get(\n '/api/v1/queries/{queryJobId}/{statementId}/export',\n {\n path: { queryJobId, statementId },\n query,\n },\n { signal },\n );\n\n const mimeType = response.headers.get(HttpHeader.CONTENT_TYPE) ?? 'text/csv';\n const contentDisposition = parseContentDispositionHeader(\n response.headers.get(HttpHeader.CONTENT_DISPOSITION),\n );\n\n return {\n mimeType,\n content: data,\n fileName: contentDisposition?.filename ?? 'export.csv',\n };\n };\n\n return {\n createQueryJob,\n cancelQueryJob,\n getQueryJob,\n getQueryResults,\n getQueryHistory,\n exportResults,\n };\n};\n"]}
|