@keboola/api-client 3.0.0 → 3.0.1
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/README.md +0 -33
- package/dist/ai/index.cjs +3 -3
- package/dist/ai/index.d.cts +1 -1
- package/dist/ai/index.d.ts +1 -1
- package/dist/ai/index.js +2 -2
- package/dist/assets/index.cjs +3 -3
- package/dist/assets/index.d.cts +1 -1
- package/dist/assets/index.d.ts +1 -1
- package/dist/assets/index.js +2 -2
- package/dist/{authMiddleware-BteBe1Bt.d.cts → authMiddleware-CeIxAJQ5.d.cts} +1 -1
- package/dist/{authMiddleware-BTFSCMTE.d.ts → authMiddleware-Dcy9gRT9.d.ts} +1 -1
- package/dist/chat/index.cjs +3 -3
- package/dist/chat/index.d.cts +1 -1
- package/dist/chat/index.d.ts +1 -1
- package/dist/chat/index.js +2 -2
- package/dist/{chunk-R7PD3BRA.js → chunk-2ZMZ4KWJ.js} +3 -23
- package/dist/chunk-2ZMZ4KWJ.js.map +1 -0
- package/dist/{chunk-VS5PM7KL.js → chunk-3DW7RIEB.js} +4 -4
- package/dist/chunk-3DW7RIEB.js.map +1 -0
- package/dist/{chunk-633QJMHH.cjs → chunk-4TENBFWN.cjs} +5 -5
- package/dist/chunk-4TENBFWN.cjs.map +1 -0
- package/dist/{chunk-LZ6A6J2E.cjs → chunk-5DVEQBCD.cjs} +8 -8
- package/dist/chunk-5DVEQBCD.cjs.map +1 -0
- package/dist/{chunk-3Y6NK7TC.js → chunk-5PUNJJAR.js} +4 -4
- package/dist/chunk-5PUNJJAR.js.map +1 -0
- package/dist/{chunk-6RQDX6JY.cjs → chunk-5YN6FED2.cjs} +6 -6
- package/dist/chunk-5YN6FED2.cjs.map +1 -0
- package/dist/{chunk-3T54WH4X.cjs → chunk-6D3MJRXE.cjs} +5 -5
- package/dist/chunk-6D3MJRXE.cjs.map +1 -0
- package/dist/{chunk-76AHKXLC.cjs → chunk-6FW72PC2.cjs} +9 -9
- package/dist/chunk-6FW72PC2.cjs.map +1 -0
- package/dist/{chunk-IY3VNVXD.cjs → chunk-6HBXNLB7.cjs} +5 -5
- package/dist/chunk-6HBXNLB7.cjs.map +1 -0
- package/dist/{chunk-WQ7EZWBF.js → chunk-6TUGEXVX.js} +4 -4
- package/dist/chunk-6TUGEXVX.js.map +1 -0
- package/dist/{chunk-OKVYLO6C.js → chunk-76Q2CTFV.js} +4 -4
- package/dist/chunk-76Q2CTFV.js.map +1 -0
- package/dist/chunk-7ETZQGY7.js +75 -0
- package/dist/chunk-7ETZQGY7.js.map +1 -0
- package/dist/{chunk-EY5LALX2.cjs → chunk-AYXQJONA.cjs} +5 -5
- package/dist/chunk-AYXQJONA.cjs.map +1 -0
- package/dist/{chunk-YPCD7M2N.cjs → chunk-BA2JMZP6.cjs} +5 -5
- package/dist/chunk-BA2JMZP6.cjs.map +1 -0
- package/dist/{chunk-SAEG42HW.js → chunk-CQFZ7PGZ.js} +4 -4
- package/dist/chunk-CQFZ7PGZ.js.map +1 -0
- package/dist/{chunk-JKFIB6SQ.cjs → chunk-D2ZTB5R2.cjs} +33 -35
- package/dist/chunk-D2ZTB5R2.cjs.map +1 -0
- package/dist/{chunk-YXCVNX2Q.cjs → chunk-ECQZAWH3.cjs} +5 -5
- package/dist/chunk-ECQZAWH3.cjs.map +1 -0
- package/dist/{chunk-GO6SOMGL.js → chunk-GLQZHLLN.js} +4 -4
- package/dist/chunk-GLQZHLLN.js.map +1 -0
- package/dist/{chunk-TXFQ4YIK.js → chunk-HLGMFFDF.js} +4 -4
- package/dist/chunk-HLGMFFDF.js.map +1 -0
- package/dist/{chunk-JLNOESHX.cjs → chunk-IL2PAEG3.cjs} +5 -5
- package/dist/chunk-IL2PAEG3.cjs.map +1 -0
- package/dist/chunk-IWIN6HKU.cjs +82 -0
- package/dist/chunk-IWIN6HKU.cjs.map +1 -0
- package/dist/{chunk-HCNNMUTR.cjs → chunk-KOO3ZG5X.cjs} +5 -5
- package/dist/chunk-KOO3ZG5X.cjs.map +1 -0
- package/dist/{chunk-VAOCYA6B.js → chunk-LBVYZLWL.js} +4 -4
- package/dist/chunk-LBVYZLWL.js.map +1 -0
- package/dist/{chunk-BGLICNTG.cjs → chunk-LI3BAYDV.cjs} +5 -5
- package/dist/chunk-LI3BAYDV.cjs.map +1 -0
- package/dist/{chunk-3B7L6MCG.js → chunk-M4PFR3OS.js} +4 -4
- package/dist/chunk-M4PFR3OS.js.map +1 -0
- package/dist/{chunk-HPVTVQBJ.cjs → chunk-MTFRH3R5.cjs} +4 -22
- package/dist/chunk-MTFRH3R5.cjs.map +1 -0
- package/dist/{chunk-GNPQB3MT.js → chunk-OAKTIIG4.js} +3 -3
- package/dist/chunk-OAKTIIG4.js.map +1 -0
- package/dist/{chunk-LV3ZWNDC.js → chunk-PM2FAMWT.js} +4 -4
- package/dist/chunk-PM2FAMWT.js.map +1 -0
- package/dist/{chunk-PV4HIVW2.js → chunk-Q6T6GRDR.js} +4 -4
- package/dist/chunk-Q6T6GRDR.js.map +1 -0
- package/dist/{chunk-PD3LJYS2.js → chunk-QXWPUKK2.js} +5 -22
- package/dist/chunk-QXWPUKK2.js.map +1 -0
- package/dist/{chunk-UXF53ZOV.js → chunk-RBGTWJ7G.js} +4 -4
- package/dist/chunk-RBGTWJ7G.js.map +1 -0
- package/dist/{chunk-ZEMKE6DI.js → chunk-RBW5ABSQ.js} +24 -26
- package/dist/chunk-RBW5ABSQ.js.map +1 -0
- package/dist/{chunk-TIIRBQUA.cjs → chunk-REXMA2IN.cjs} +5 -5
- package/dist/chunk-REXMA2IN.cjs.map +1 -0
- package/dist/{chunk-XFC52BJV.cjs → chunk-ROBQ2CV7.cjs} +99 -81
- package/dist/chunk-ROBQ2CV7.cjs.map +1 -0
- package/dist/{chunk-HYUGRMCY.cjs → chunk-RTD3XWBM.cjs} +8 -8
- package/dist/chunk-RTD3XWBM.cjs.map +1 -0
- package/dist/{chunk-XUDMML5C.cjs → chunk-SDA2UO4X.cjs} +5 -5
- package/dist/chunk-SDA2UO4X.cjs.map +1 -0
- package/dist/{chunk-FBQHHAL5.js → chunk-T23NVI3Q.js} +4 -4
- package/dist/chunk-T23NVI3Q.js.map +1 -0
- package/dist/{chunk-TNJWOHPM.js → chunk-T66CY2YX.js} +95 -77
- package/dist/chunk-T66CY2YX.js.map +1 -0
- package/dist/{chunk-IJMQCOBC.js → chunk-V35JLM5Q.js} +4 -4
- package/dist/chunk-V35JLM5Q.js.map +1 -0
- package/dist/{chunk-DCTDH77P.cjs → chunk-VLSN55I3.cjs} +2 -24
- package/dist/chunk-VLSN55I3.cjs.map +1 -0
- package/dist/{chunk-YUEYMIMI.cjs → chunk-ZIVZF6M2.cjs} +6 -6
- package/dist/chunk-ZIVZF6M2.cjs.map +1 -0
- package/dist/{chunk-7FY6COWG.js → chunk-ZQPET6GI.js} +4 -4
- package/dist/chunk-ZQPET6GI.js.map +1 -0
- package/dist/{createGenericFetchClient-DEakI3F1.d.ts → createGenericFetchClient-Cp2By_KQ.d.ts} +1 -1
- package/dist/{createGenericFetchClient-CLUzu-jY.d.cts → createGenericFetchClient-DuW7iSRy.d.cts} +1 -1
- package/dist/{createOpenapiFetchClient-CpXmAIFB.d.cts → createOpenapiFetchClient-BuKDZcLD.d.cts} +1 -1
- package/dist/{createOpenapiFetchClient-_sm4bchL.d.ts → createOpenapiFetchClient-DhL2gQvd.d.ts} +1 -1
- package/dist/dataScience/index.cjs +4 -4
- package/dist/dataScience/index.d.cts +1 -1
- package/dist/dataScience/index.d.ts +1 -1
- package/dist/dataScience/index.js +2 -2
- package/dist/domain/storageTable/index.cjs +267 -0
- package/dist/domain/storageTable/index.cjs.map +1 -0
- package/dist/domain/storageTable/index.d.cts +131 -0
- package/dist/domain/storageTable/index.d.ts +131 -0
- package/dist/domain/storageTable/index.js +264 -0
- package/dist/domain/storageTable/index.js.map +1 -0
- package/dist/editor/index.cjs +3 -3
- 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/types.d.cts +1 -1
- package/dist/editor/types.d.ts +1 -1
- package/dist/encryption/index.cjs +3 -3
- package/dist/encryption/index.d.cts +1 -1
- package/dist/encryption/index.d.ts +1 -1
- package/dist/encryption/index.js +2 -2
- package/dist/import/index.cjs +3 -3
- package/dist/import/index.d.cts +1 -1
- package/dist/import/index.d.ts +1 -1
- package/dist/import/index.js +2 -2
- package/dist/index.cjs +316 -182
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +111 -27
- package/dist/index.d.ts +111 -27
- package/dist/index.js +287 -150
- package/dist/index.js.map +1 -1
- package/dist/management/index.cjs +5 -5
- package/dist/management/index.d.cts +5 -5
- package/dist/management/index.d.ts +5 -5
- package/dist/management/index.js +3 -3
- package/dist/metastore/index.cjs +3 -3
- package/dist/metastore/index.d.cts +2 -2
- package/dist/metastore/index.d.ts +2 -2
- package/dist/metastore/index.js +2 -2
- package/dist/oauth/index.cjs +3 -3
- package/dist/oauth/index.d.cts +1 -1
- package/dist/oauth/index.d.ts +1 -1
- package/dist/oauth/index.js +2 -2
- package/dist/queryService/index.cjs +3 -3
- package/dist/queryService/index.d.cts +1 -1
- package/dist/queryService/index.d.ts +1 -1
- package/dist/queryService/index.js +2 -2
- package/dist/queue/index.cjs +3 -3
- package/dist/queue/index.d.cts +1 -1
- package/dist/queue/index.d.ts +1 -1
- package/dist/queue/index.js +2 -2
- package/dist/sdk/storage/index.cjs +11 -19
- package/dist/sdk/storage/index.d.cts +6 -17
- package/dist/sdk/storage/index.d.ts +6 -17
- package/dist/sdk/storage/index.js +1 -1
- package/dist/sdk/tag/index.d.cts +2 -2
- package/dist/sdk/tag/index.d.ts +2 -2
- package/dist/sdk/tag/types.d.cts +2 -2
- package/dist/sdk/tag/types.d.ts +2 -2
- package/dist/sdk/vault/index.cjs +33 -0
- package/dist/sdk/vault/index.cjs.map +1 -0
- package/dist/sdk/vault/index.d.cts +70 -0
- package/dist/sdk/vault/index.d.ts +70 -0
- package/dist/sdk/vault/index.js +4 -0
- package/dist/sdk/vault/index.js.map +1 -0
- package/dist/status/index.cjs +3 -3
- package/dist/status/index.d.cts +1 -1
- package/dist/status/index.d.ts +1 -1
- package/dist/status/index.js +2 -2
- package/dist/storage/index.cjs +4 -4
- package/dist/storage/index.d.cts +4 -4
- package/dist/storage/index.d.ts +4 -4
- package/dist/storage/index.js +2 -2
- package/dist/storage/types.d.cts +25 -1
- package/dist/storage/types.d.ts +25 -1
- package/dist/{storageClient-CDX-GvNV.d.cts → storageClient-C5R3H96R.d.cts} +5 -4
- package/dist/{storageClient-BgvUM7gy.d.ts → storageClient-DBiS4voo.d.ts} +5 -4
- package/dist/{storageSdk-IOIdwqy-.d.cts → storageSdk-B7Iq38Vh.d.cts} +1 -1
- package/dist/{storageSdk-qGaWB1dy.d.ts → storageSdk-BnIemr2s.d.ts} +1 -1
- package/dist/syncActions/index.cjs +3 -3
- package/dist/syncActions/index.d.cts +2 -2
- package/dist/syncActions/index.d.ts +2 -2
- package/dist/syncActions/index.js +2 -2
- package/dist/telemetry/index.cjs +3 -3
- package/dist/telemetry/index.d.cts +2 -2
- package/dist/telemetry/index.d.ts +2 -2
- package/dist/telemetry/index.js +2 -2
- package/dist/{types-DgaMV8FF.d.ts → types-Bom8wyth.d.cts} +1 -13
- package/dist/{types-DgaMV8FF.d.cts → types-Bom8wyth.d.ts} +1 -13
- package/dist/types-Brx8PoEB.d.cts +11 -0
- package/dist/{types-B--u7l2H.d.ts → types-CqWXdTMg.d.ts} +0 -19
- package/dist/types-D4CDCW-Y.d.ts +11 -0
- package/dist/{types-C0Owx2P7.d.cts → types-DBVQGCI1.d.cts} +0 -19
- package/dist/vault/index.cjs +3 -3
- package/dist/vault/index.d.cts +1 -1
- package/dist/vault/index.d.ts +1 -1
- package/dist/vault/index.js +2 -2
- package/dist/vault/types.d.cts +3 -2
- package/dist/vault/types.d.ts +3 -2
- package/dist/verify/index.cjs +3 -3
- package/dist/verify/index.js +2 -2
- package/package.json +29 -3
- package/dist/chunk-3B7L6MCG.js.map +0 -1
- package/dist/chunk-3T54WH4X.cjs.map +0 -1
- package/dist/chunk-3Y6NK7TC.js.map +0 -1
- package/dist/chunk-633QJMHH.cjs.map +0 -1
- package/dist/chunk-6RQDX6JY.cjs.map +0 -1
- package/dist/chunk-76AHKXLC.cjs.map +0 -1
- package/dist/chunk-7FY6COWG.js.map +0 -1
- package/dist/chunk-BGLICNTG.cjs.map +0 -1
- package/dist/chunk-DCTDH77P.cjs.map +0 -1
- package/dist/chunk-EY5LALX2.cjs.map +0 -1
- package/dist/chunk-FBQHHAL5.js.map +0 -1
- package/dist/chunk-GNPQB3MT.js.map +0 -1
- package/dist/chunk-GO6SOMGL.js.map +0 -1
- package/dist/chunk-HCNNMUTR.cjs.map +0 -1
- package/dist/chunk-HPVTVQBJ.cjs.map +0 -1
- package/dist/chunk-HYUGRMCY.cjs.map +0 -1
- package/dist/chunk-IJMQCOBC.js.map +0 -1
- package/dist/chunk-IY3VNVXD.cjs.map +0 -1
- package/dist/chunk-JKFIB6SQ.cjs.map +0 -1
- package/dist/chunk-JLNOESHX.cjs.map +0 -1
- package/dist/chunk-LV3ZWNDC.js.map +0 -1
- package/dist/chunk-LZ6A6J2E.cjs.map +0 -1
- package/dist/chunk-OKVYLO6C.js.map +0 -1
- package/dist/chunk-PD3LJYS2.js.map +0 -1
- package/dist/chunk-PV4HIVW2.js.map +0 -1
- package/dist/chunk-R7PD3BRA.js.map +0 -1
- package/dist/chunk-SAEG42HW.js.map +0 -1
- package/dist/chunk-TIIRBQUA.cjs.map +0 -1
- package/dist/chunk-TNJWOHPM.js.map +0 -1
- package/dist/chunk-TXFQ4YIK.js.map +0 -1
- package/dist/chunk-UXF53ZOV.js.map +0 -1
- package/dist/chunk-VAOCYA6B.js.map +0 -1
- package/dist/chunk-VS5PM7KL.js.map +0 -1
- package/dist/chunk-WQ7EZWBF.js.map +0 -1
- package/dist/chunk-XFC52BJV.cjs.map +0 -1
- package/dist/chunk-XUDMML5C.cjs.map +0 -1
- package/dist/chunk-YPCD7M2N.cjs.map +0 -1
- package/dist/chunk-YUEYMIMI.cjs.map +0 -1
- package/dist/chunk-YXCVNX2Q.cjs.map +0 -1
- package/dist/chunk-ZEMKE6DI.js.map +0 -1
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/errors/ServiceUnavailableError.ts","../src/clients/kaiAgent/kaiAgentClient.ts","../src/utils/assert.ts","../src/domain/stack.ts","../src/serviceClientRegistry/utils.ts","../src/serviceClientRegistry/createServiceClientRegistry.ts","../src/client.ts","../src/middlewares/loggingMiddleware.ts","../src/middlewares/retryMiddleware.ts","../src/devClient.ts"],"names":["z","normalizeBaseUrl","createOpenapiFetchClient","createGenericFetchClient","suggestionsApiResponseSchema","createCallbackMiddleware","createStorageTokenMiddleware","createStorageClient","createManagementClient","createProject","createVaultClient","createDataScienceClient","createEncryptionClient","createEditorClient","createSyncActionsClient","createTelemetryClient","createQueryServiceClient","createQueueClient","createChatClient","createAiClient","createImportClient","createOauthClient","createMetastoreClient","createAssetsClient","createStatusClient","createTagSdk","createStorageSdk","KeboolaHttpHeader","generateUUID","HttpStatus","ApiError","delay","createVerifyClient"],"mappings":"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","file":"index.cjs","sourcesContent":["export class ServiceUnavailableError extends Error {\n constructor(serviceId: string, path: string[], clientName: string) {\n super(\n `Service \"${serviceId}\" is not available in this stack. Caused by: ${clientName}.${path.join('.')}()`,\n );\n this.name = 'ServiceUnavailableError';\n Object.setPrototypeOf(this, ServiceUnavailableError.prototype);\n }\n}\n","import { z } from 'zod';\n\nimport { createGenericFetchClient, createOpenapiFetchClient } from '../../fetchClient';\nimport { normalizeBaseUrl } from '../../utils/normalizeBaseUrl';\nimport type { SuggestionsApiResponse, SuggestionsRequestBody } from '../chat/suggestions';\nimport { suggestionsApiResponseSchema } from '../chat/suggestions';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n ApprovalBody,\n ChatRequest,\n GetChatPath,\n GetHistoryQuery,\n GetVotesQuery,\n UsageResponse,\n VoteRequest,\n} from './types';\n\nconst agentSettingsSchema = z.object({\n projectId: z.string(),\n customInstructions: z.string().nullable(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nconst toolPermissionValueSchema = z.enum(['always_allow', 'always_ask', 'blocked']);\n\nconst userAgentSettingsSchema = z.object({\n projectId: z.string(),\n userId: z.string(),\n customInstructions: z.string().nullable(),\n toolPermissions: z.record(z.string(), toolPermissionValueSchema).nullable(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nconst toolInfoSchema = z.object({\n name: z.string(),\n description: z.string(),\n readOnly: z.boolean(),\n});\n\nconst toolsListResponseSchema = z.object({\n tools: z.array(toolInfoSchema),\n});\n\nconst sandboxFileEntrySchema = z.object({\n name: z.string(),\n path: z.string(),\n type: z.enum(['file', 'dir']),\n size: z.number().int().nonnegative().optional(),\n});\n\nconst sandboxFileListingSchema = z.object({\n entries: z.array(sandboxFileEntrySchema),\n});\n\nconst sandboxFileContentSchema = z.object({\n content: z.string(),\n encoding: z.enum(['utf-8', 'binary']),\n truncated: z.boolean(),\n size: z.number().int().nonnegative(),\n});\n\nconst sandboxGitBranchSchema = z.object({\n branch: z.string().nullable(),\n});\n\ntype AgentSettings = z.infer<typeof agentSettingsSchema>;\ntype UserAgentSettings = z.infer<typeof userAgentSettingsSchema>;\ntype ToolsListResponse = z.infer<typeof toolsListResponseSchema>;\ntype SandboxFileListing = z.infer<typeof sandboxFileListingSchema>;\ntype SandboxFileContent = z.infer<typeof sandboxFileContentSchema>;\ntype SandboxGitBranch = z.infer<typeof sandboxGitBranchSchema>;\n\ntype UpdateAgentSettingsRequest = {\n customInstructions?: string | null;\n};\n\ntype UpdateUserAgentSettingsRequest = {\n customInstructions?: string | null;\n toolPermissions?: Record<string, z.infer<typeof toolPermissionValueSchema>> | null;\n};\n\nexport const createKaiAgentClient = ({ baseUrl, middlewares }: ClientInitOptions) => {\n const clientOptions = { baseUrl: normalizeBaseUrl(baseUrl), middlewares };\n\n const client = createOpenapiFetchClient<paths>(clientOptions);\n const genericClient = createGenericFetchClient(clientOptions);\n\n const getHistory = async (params?: GetHistoryQuery) => {\n const { data } = await client.get('/api/history', { query: params });\n return data;\n };\n\n const getChat = async (chatId: GetChatPath['id'], signal?: AbortSignal) => {\n const { data } = await client.get('/api/chat/{id}', { path: { id: chatId } }, { signal });\n return data;\n };\n\n const deleteChat = async (chatId: string) => {\n const { data } = await client.delete('/api/chat', { query: { id: chatId } });\n return data;\n };\n\n const createChat = async (request: ChatRequest) => {\n const { response } = await client.post('/api/chat', { body: request });\n return response;\n };\n\n const getVotes = async (chatId: GetVotesQuery['chatId']) => {\n const { data } = await client.get('/api/vote', { query: { chatId } });\n return data;\n };\n\n const submitVote = async (params: VoteRequest) => {\n await client.patch('/api/vote', { body: params });\n };\n\n const getUsage = async (signal?: AbortSignal): Promise<UsageResponse> => {\n const { data } = await client.get('/api/usage', {}, { signal });\n return data;\n };\n\n const approveToolCall = async (chatId: string, body: ApprovalBody): Promise<void> => {\n await client.post('/api/chat/{id}/approval', { path: { id: chatId }, body });\n };\n\n const submitToolOutput = async (\n chatId: string,\n body: { toolUseId: string; output?: string; errorText?: string },\n ): Promise<void> => {\n await client.post('/api/chat/{id}/ui-tool-result', { path: { id: chatId }, body });\n };\n\n const stopChat = async (chatId: string): Promise<{ stopped: boolean }> => {\n const { data } = await client.post('/api/chat/{id}/stop', { path: { id: chatId } });\n return data;\n };\n\n const getSuggestions = async (\n request: SuggestionsRequestBody,\n signal?: AbortSignal,\n ): Promise<SuggestionsApiResponse> => {\n const { data } = await genericClient.post<SuggestionsApiResponse>(\n '/api/suggestions',\n { body: request },\n { signal },\n );\n\n const result = suggestionsApiResponseSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid suggestions response format');\n }\n\n return result.data;\n };\n\n const getAgentSettings = async (signal?: AbortSignal): Promise<AgentSettings> => {\n const { data } = await genericClient.get<AgentSettings>('/api/settings', {}, { signal });\n const result = agentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid agent settings response format');\n }\n return result.data;\n };\n\n const updateAgentSettings = async (\n request: UpdateAgentSettingsRequest,\n signal?: AbortSignal,\n ): Promise<AgentSettings> => {\n const { data } = await genericClient.patch<AgentSettings>(\n '/api/settings',\n { body: request },\n { signal },\n );\n const result = agentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid agent settings response format');\n }\n return result.data;\n };\n\n const getUserAgentSettings = async (signal?: AbortSignal): Promise<UserAgentSettings> => {\n const { data } = await genericClient.get<UserAgentSettings>(\n '/api/settings/user',\n {},\n { signal },\n );\n const result = userAgentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid user agent settings response format');\n }\n return result.data;\n };\n\n const updateUserAgentSettings = async (\n request: UpdateUserAgentSettingsRequest,\n signal?: AbortSignal,\n ): Promise<UserAgentSettings> => {\n const { data } = await genericClient.patch<UserAgentSettings>(\n '/api/settings/user',\n { body: request },\n { signal },\n );\n const result = userAgentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid user agent settings response format');\n }\n return result.data;\n };\n\n const getToolsList = async (signal?: AbortSignal): Promise<ToolsListResponse> => {\n const { data } = await genericClient.get<ToolsListResponse>(\n '/api/settings/tools',\n {},\n { signal },\n );\n const result = toolsListResponseSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid tools list response format');\n }\n return result.data;\n };\n\n const listSandboxFiles = async (\n chatId: string,\n path?: string,\n signal?: AbortSignal,\n ): Promise<SandboxFileListing> => {\n const { data } = await genericClient.get<SandboxFileListing>(\n `/api/chat/${encodeURIComponent(chatId)}/sandbox/files`,\n { query: path ? { path } : undefined },\n { signal },\n );\n const result = sandboxFileListingSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid sandbox files response format');\n }\n return result.data;\n };\n\n const readSandboxFile = async (\n chatId: string,\n path: string,\n signal?: AbortSignal,\n ): Promise<SandboxFileContent> => {\n const { data } = await genericClient.get<SandboxFileContent>(\n `/api/chat/${encodeURIComponent(chatId)}/sandbox/file`,\n { query: { path } },\n { signal },\n );\n const result = sandboxFileContentSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid sandbox file response format');\n }\n return result.data;\n };\n\n const getSandboxGitBranch = async (\n chatId: string,\n signal?: AbortSignal,\n ): Promise<SandboxGitBranch> => {\n const { data } = await genericClient.get<SandboxGitBranch>(\n `/api/chat/${encodeURIComponent(chatId)}/sandbox/git-branch`,\n {},\n { signal },\n );\n const result = sandboxGitBranchSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid sandbox git-branch response format');\n }\n return result.data;\n };\n\n const chatStreamUrl = clientOptions.baseUrl + '/api/chat';\n\n return {\n getHistory,\n getChat,\n deleteChat,\n createChat,\n getVotes,\n submitVote,\n getUsage,\n approveToolCall,\n submitToolOutput,\n stopChat,\n getSuggestions,\n getAgentSettings,\n updateAgentSettings,\n getUserAgentSettings,\n updateUserAgentSettings,\n getToolsList,\n listSandboxFiles,\n readSandboxFile,\n getSandboxGitBranch,\n chatStreamUrl,\n };\n};\n","export function assert<T>(value: T | undefined | null, message: string): asserts value is T {\n if (value == null) {\n throw new Error(message);\n }\n}\n","import type { ServiceId, StackInfo } from '../clients/storage/types';\n\nexport type ServiceUrls = Partial<Record<ServiceId, (url: string) => string | undefined | null>>;\n\nconst SERVICE_URL_OVERRIDES: ServiceUrls = {\n // The service URL for the Kai Assistant is incomplete; we need to add the `/api` suffix to get the full URL for the API.\n // I assume the service is versioned.\n 'kai-assistant': (url) => `${url}/api`,\n};\n\ntype Options = {\n stackInfo: StackInfo;\n clientServiceUrls?: ServiceUrls;\n};\n\nexport const createStack = ({ stackInfo, clientServiceUrls }: Options) => {\n const { services, components, features, ...infoRest } = stackInfo;\n\n const serviceMap = new Map(\n services.map((service) => {\n const devOverride = clientServiceUrls?.[service.id]?.(service.url);\n const prodOverride = SERVICE_URL_OVERRIDES[service.id]?.(service.url);\n const url = devOverride ?? prodOverride ?? service.url;\n return [service.id, url];\n }),\n );\n\n const componentMap = new Map(components.map((component) => [component.id, component]));\n const featureSet = new Set(features);\n\n const hasFeature = (...feature: string[]) => {\n if (feature.length === 0) return false;\n return feature.every((x) => featureSet.has(x));\n };\n\n const hasComponent = (...componentId: string[]) => {\n if (componentId.length === 0) return false;\n return componentId.every((x) => componentMap.has(x));\n };\n\n const getComponent = (componentId: string) => componentMap.get(componentId) ?? null;\n\n const hasService = (serviceId: ServiceId) => serviceMap.has(serviceId);\n\n const getServiceUrl = (serviceId: ServiceId) => serviceMap.get(serviceId) ?? null;\n\n return {\n ...infoRest,\n services,\n features,\n components,\n hasFeature,\n getServiceUrl,\n hasService,\n getComponent,\n hasComponent,\n };\n};\n","export const isBuiltInProperty = (property: string | symbol) =>\n typeof property === 'symbol' ||\n property === 'then' ||\n property === 'constructor' ||\n property === 'toString' ||\n property === 'valueOf';\n\n/**\n * Creates a dummy client that intercepts method calls and invokes the provided onCall callback.\n */\nexport const createDummyClient = <T extends Record<string, unknown>>({\n onCall,\n}: {\n onCall: (path: string[], args: unknown[]) => void;\n}): T => {\n const createProxy = (path: string[] = []) =>\n new Proxy(() => {}, {\n // Create a new proxy for nested property access\n get: (_target, prop) => {\n // Don't intercept Symbol properties or special methods\n if (isBuiltInProperty(prop)) return undefined;\n return createProxy([...path, prop]);\n },\n // When called as a function, invoke the interceptor\n apply: (_target, _thisArgs, args) => onCall(path, args),\n });\n\n return createProxy() as unknown as T;\n};\n","import { createDummyClient } from './utils';\n\ntype OnUnavailableFn = (info: {\n serviceId: string;\n path: string[];\n args: unknown[];\n clientName: string;\n}) => void;\n\ntype ClientConfig<ServiceId extends string> = {\n serviceId: ServiceId;\n clientName: string;\n clientFn: (serviceUrl: string) => unknown;\n};\n\ntype Options<ServiceId extends string, Configs extends ClientConfig<ServiceId>[]> = {\n getServiceBaseUrl: (serviceId: ServiceId) => string | null;\n onUnavailable?: OnUnavailableFn;\n clients: Configs;\n};\n\nexport const createServiceClientRegistry =\n <ServiceId extends string>() =>\n <const Configs extends ClientConfig<ServiceId>[] = ClientConfig<ServiceId>[]>({\n getServiceBaseUrl,\n onUnavailable,\n clients,\n }: Options<ServiceId, Configs>) => {\n const dummy = (serviceId: string, clientName: string) =>\n createDummyClient({\n onCall: (path, args) => {\n onUnavailable?.({\n serviceId,\n path,\n args,\n clientName,\n });\n },\n });\n\n const clientMap: Record<string, unknown> = {};\n const meta: { clientName: string; serviceId: ServiceId; isAvailable: boolean }[] = [];\n\n clients.forEach(({ serviceId, clientFn, clientName }) => {\n const serviceBaseUrl = getServiceBaseUrl(serviceId);\n\n clientMap[clientName] = serviceBaseUrl\n ? clientFn(serviceBaseUrl)\n : dummy(serviceId, clientName);\n\n meta.push({ clientName, serviceId, isAvailable: !!serviceBaseUrl });\n });\n\n const client = clientMap as {\n [Config in Configs[number] as Config['clientName']]: ReturnType<Config['clientFn']>;\n };\n\n return {\n client,\n meta,\n };\n };\n","/**\n * @module client\n * Main API client factory. Orchestrates all service clients, domain models, and SDKs into a single initialized instance.\n */\nimport { createAiClient } from './clients/ai';\nimport { createAssetsClient } from './clients/assets';\nimport { createChatClient } from './clients/chat';\nimport { createDataScienceClient } from './clients/dataScience';\nimport { createEditorClient } from './clients/editor';\nimport { createEncryptionClient } from './clients/encryption';\nimport { createImportClient } from './clients/import';\nimport { createKaiAgentClient } from './clients/kaiAgent';\nimport { createManagementClient } from './clients/management';\nimport { createMetastoreClient } from './clients/metastore';\nimport { createOauthClient } from './clients/oauth';\nimport { createQueryServiceClient } from './clients/queryService';\nimport { createQueueClient } from './clients/queue';\nimport { createStatusClient } from './clients/status';\nimport { createStorageClient } from './clients/storage';\nimport { createStorageTokenMiddleware } from './clients/storage/storageTokenMiddleware';\nimport type { ServiceId } from './clients/storage/types';\nimport { createSyncActionsClient } from './clients/syncActions';\nimport { createTelemetryClient } from './clients/telemetry';\nimport type { BaseClientOptions } from './clients/types';\nimport { createVaultClient } from './clients/vault';\nimport { createProject } from './domain/project';\nimport { createStack, type ServiceUrls } from './domain/stack';\nimport { createStorageSdk } from './sdks/storage';\nimport { createTagSdk } from './sdks/tag';\nimport { ServiceUnavailableError } from './errors';\nimport { createCallbackMiddleware, type MiddlewareFn } from './fetchClient';\nimport { createServiceClientRegistry, isBuiltInProperty } from './serviceClientRegistry';\nimport { assert } from './utils';\n\nexport type ApiClientOptions = {\n token: {\n storageApi: string;\n managementApi?: string;\n };\n assetsBaseUrl: string;\n statusBaseUrl: string;\n metastoreBaseUrl: string;\n storageMiddlewares?: MiddlewareFn[];\n clientServiceUrls?: ServiceUrls;\n} & BaseClientOptions;\n\nconst createClients = async ({\n baseUrl,\n token,\n callbacks,\n assetsBaseUrl,\n statusBaseUrl,\n metastoreBaseUrl,\n clientServiceUrls,\n storageMiddlewares,\n}: ApiClientOptions) => {\n const callbackMiddleware = createCallbackMiddleware(callbacks);\n const storageTokenMiddleware = createStorageTokenMiddleware(token.storageApi);\n\n const commonMiddlewares = [callbackMiddleware, storageTokenMiddleware];\n\n const storage = createStorageClient({\n baseUrl,\n middlewares: [...commonMiddlewares, ...(storageMiddlewares || [])],\n });\n\n const management = createManagementClient({\n baseUrl,\n token: token.managementApi,\n callbacks,\n });\n\n const [stackInfo, sapiToken] = await Promise.all([\n storage.getStackInfo({\n exclude: 'componentDetails',\n }),\n storage.tokens.verify(),\n ]);\n\n const stack = createStack({ stackInfo, clientServiceUrls });\n const project = createProject({ sapiToken });\n\n const { client, meta } = createServiceClientRegistry<ServiceId>()({\n getServiceBaseUrl: (serviceId) => stack.getServiceUrl(serviceId),\n onUnavailable: ({ serviceId, path, clientName }) => {\n throw new ServiceUnavailableError(serviceId, path, clientName);\n },\n clients: [\n {\n serviceId: 'vault',\n clientName: 'vault',\n clientFn: (serviceBaseUrl) =>\n createVaultClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares }),\n },\n {\n serviceId: 'data-science',\n clientName: 'dataScience',\n clientFn: (serviceBaseUrl) =>\n createDataScienceClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares }),\n },\n {\n serviceId: 'encryption',\n clientName: 'encryption',\n clientFn: (serviceBaseUrl) =>\n createEncryptionClient({ baseUrl: serviceBaseUrl, middlewares: [callbackMiddleware] }),\n },\n {\n serviceId: 'editor',\n clientName: 'editor',\n clientFn: (serviceBaseUrl) =>\n createEditorClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares }),\n },\n {\n serviceId: 'sync-actions',\n clientName: 'syncActions',\n clientFn: (serviceBaseUrl) =>\n createSyncActionsClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares }),\n },\n {\n serviceId: 'telemetry',\n clientName: 'telemetry',\n clientFn: (serviceBaseUrl) =>\n createTelemetryClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares }),\n },\n {\n serviceId: 'query',\n clientName: 'queryService',\n clientFn: (serviceBaseUrl) =>\n createQueryServiceClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares }),\n },\n {\n serviceId: 'queue',\n clientName: 'queue',\n clientFn: (serviceBaseUrl) =>\n createQueueClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares }),\n },\n {\n serviceId: 'kai-assistant',\n clientName: 'chat',\n clientFn: (serviceBaseUrl) =>\n createChatClient({\n storageApiUrl: baseUrl,\n baseUrl: serviceBaseUrl,\n middlewares: commonMiddlewares,\n }),\n },\n {\n serviceId: 'ai',\n clientName: 'ai',\n clientFn: (serviceBaseUrl) =>\n createAiClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares }),\n },\n {\n serviceId: 'import',\n clientName: 'import',\n clientFn: (serviceBaseUrl) =>\n createImportClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares }),\n },\n {\n serviceId: 'kai-agent',\n clientName: 'kaiAgent',\n clientFn: (serviceBaseUrl) =>\n createKaiAgentClient({\n baseUrl: serviceBaseUrl,\n middlewares: commonMiddlewares,\n }),\n },\n {\n serviceId: 'oauth',\n clientName: 'oauth',\n clientFn: (serviceBaseUrl) =>\n createOauthClient({ baseUrl: serviceBaseUrl, middlewares: commonMiddlewares }),\n },\n ],\n });\n\n const metastore = createMetastoreClient({\n baseUrl: metastoreBaseUrl,\n middlewares: commonMiddlewares,\n });\n\n const assets = createAssetsClient({\n baseUrl: assetsBaseUrl,\n middlewares: [callbackMiddleware],\n });\n\n const status = createStatusClient({\n baseUrl: statusBaseUrl,\n middlewares: [callbackMiddleware],\n });\n\n const tag = createTagSdk({\n metastoreClient: metastore,\n });\n\n const storageSdk = createStorageSdk({\n storageClient: storage,\n });\n\n return {\n // info\n stack,\n project,\n serviceMeta: meta,\n\n // clients\n storage,\n assets,\n status,\n management,\n ...client,\n\n sdk: {\n tag,\n storage: storageSdk,\n },\n };\n};\n\ntype Clients = Awaited<ReturnType<typeof createClients>>;\nexport type ApiClient = {\n init: (options: ApiClientOptions) => Promise<void>;\n} & Clients;\n\nexport const createApiClient = (): ApiClient => {\n let clients: Clients | null = null;\n\n const init = async (options: ApiClientOptions) => {\n if (clients) throw new Error('API is already initialized.');\n\n clients = await createClients(options);\n };\n\n const result = { init } as {\n init: typeof init;\n } & Clients;\n\n const handler: ProxyHandler<typeof result> = {\n get(_, property) {\n // Don't intercept Symbol properties or special methods\n if (isBuiltInProperty(property)) return undefined;\n\n if (property === 'init') return init;\n assert(clients, `API is not initialized. Call init() before accessing ${String(property)}`);\n return clients[property as keyof Clients];\n },\n };\n\n return new Proxy(result, handler);\n};\n","import { KeboolaHttpHeader } from '../constants';\nimport type { HttpMethod, MiddlewareFn } from '../fetchClient';\nimport { generateUUID } from '../utils';\n\nconst CORRELATION_ID_HEADER = 'X-Correlation-ID';\n\nconst ALWAYS_REDACTED_HEADERS = [\n KeboolaHttpHeader.MANAGEMENT_API_TOKEN,\n KeboolaHttpHeader.STORAGE_API_TOKEN,\n];\n\nconst ALWAYS_REDACTED_QUERY_PARAMS = new Set([\n 'token',\n 'apikey',\n 'api_key',\n 'access_token',\n 'refresh_token',\n 'code',\n 'state',\n 'signature',\n 'sig',\n 'x-amz-signature',\n 'x-amz-credential',\n 'x-amz-security-token',\n 'password',\n 'secret',\n]);\n\nconst REDACTED = '[REDACTED]';\n\nconst getRedactedUrl = (rawUrl: string): string => {\n const url = new URL(rawUrl);\n if (url.username) url.username = REDACTED;\n if (url.password) url.password = REDACTED;\n\n url.searchParams.forEach((_value, key) => {\n if (ALWAYS_REDACTED_QUERY_PARAMS.has(key.toLowerCase())) {\n url.searchParams.set(key, REDACTED);\n }\n });\n return url.toString();\n};\n\n// Returns the request's correlation ID, generating and attaching one if missing.\n//\n// Forwarded via the X-Correlation-ID header so downstream services log the same ID,\n// letting all log lines for a single user action be stitched together across service\n// boundaries. Reuse when the caller already set one (preserves the chain inside a\n// larger trace); otherwise mint a fresh UUID to start a new trace.\nconst ensureCorrelationId = (request: Request): string => {\n const correlationId = request.headers.get(CORRELATION_ID_HEADER) ?? generateUUID();\n request.headers.set(CORRELATION_ID_HEADER, correlationId);\n return correlationId;\n};\n\nconst getRedactedHeaders = (headers: Headers, redacted: string[]): Record<string, string> => {\n const redactedSet = new Set(\n [...ALWAYS_REDACTED_HEADERS, ...redacted].map((h) => h.toLowerCase()),\n );\n\n const result: Record<string, string> = {};\n headers.forEach((value, name) => {\n result[name] = redactedSet.has(name.toLowerCase()) ? REDACTED : value;\n });\n return result;\n};\n\nexport type RequestLog = {\n url: string;\n headers: Record<string, string>;\n};\n\nexport type ResponseLog = {\n status: number;\n statusText: string;\n headers: Record<string, string>;\n};\n\nexport type Log = {\n correlationId: string;\n method: HttpMethod;\n durationMs: number;\n request: RequestLog;\n response?: ResponseLog;\n error?: Error;\n};\n\nexport type Logger = {\n info: (log: Log) => void;\n error: (log: Log) => void;\n};\n\nexport type LogLevel = 'error-only' | 'all';\n\nexport type LoggingOptions = {\n logger?: Logger;\n level?: LogLevel;\n redactHeaders?: string[];\n};\n\nconst getRequestLog = (request: Request, redactedHeaders: string[]): RequestLog => ({\n url: getRedactedUrl(request.url),\n headers: getRedactedHeaders(request.headers, redactedHeaders),\n});\n\nconst getResponseLog = (response: Response, redactedHeaders: string[]): ResponseLog => ({\n status: response.status,\n statusText: response.statusText,\n headers: getRedactedHeaders(response.headers, redactedHeaders),\n});\n\nconst formatLog = (level: 'info' | 'error', log: Log): string => {\n const parts = [`[${level.toUpperCase()}]`, `${Math.round(log.durationMs)}ms`, log.method];\n parts.push(log.request.url);\n if (log.response) parts.push(String(log.response.status));\n return parts.join(' ');\n};\n\nexport const consoleLogger: Logger = {\n info: (log) => console.info(formatLog('info', log)),\n error: (log) => console.error(formatLog('error', log)),\n};\n\nconst wrapSafe = (logger: Logger, level: LogLevel): Logger => ({\n info: (log) => {\n if (level !== 'all') return;\n try {\n logger.info(log);\n } catch {\n /* never let logging break the request */\n }\n },\n error: (log) => {\n try {\n logger.error(log);\n } catch {\n /* never let logging break the request */\n }\n },\n});\n\nexport const createLoggingMiddleware = (options: LoggingOptions = {}): MiddlewareFn => {\n const safeLogger = wrapSafe(options.logger ?? consoleLogger, options.level ?? 'error-only');\n const redactHeaders = options.redactHeaders ?? [];\n\n return (next) => async (fetchRequest) => {\n const correlationId = ensureCorrelationId(fetchRequest.request);\n const start = performance.now();\n const method = fetchRequest.request.method.toLowerCase() as HttpMethod;\n const requestLog = getRequestLog(fetchRequest.request, redactHeaders);\n\n try {\n const result = await next(fetchRequest);\n safeLogger.info({\n correlationId,\n method,\n durationMs: performance.now() - start,\n request: requestLog,\n response: getResponseLog(result.response, redactHeaders),\n });\n return result;\n } catch (error) {\n const durationMs = performance.now() - start;\n if (error instanceof Error) {\n safeLogger.error({ correlationId, method, durationMs, request: requestLog, error });\n }\n throw error;\n }\n };\n};\n","import { HttpStatus } from '../constants';\nimport { ApiError } from '../errors';\nimport type { MiddlewareFn } from '../fetchClient';\nimport { delay } from '../utils/delay';\n\nconst DEFAULT_MAX_RETRIES = 5;\nconst DEFAULT_RETRYABLE_STATUSES: number[] = [\n HttpStatus.INTERNAL_SERVER_ERROR,\n HttpStatus.BAD_GATEWAY,\n HttpStatus.SERVICE_UNAVAILABLE,\n HttpStatus.GATEWAY_TIMEOUT,\n];\nconst DEFAULT_BACKOFF_FACTOR = 0.3;\n\nexport type RetryOptions = {\n maxRetries?: number;\n backoffFactor?: number;\n shouldRetry?: (error: unknown, attempt: number) => boolean;\n};\n\nconst defaultShouldRetry = (error: unknown): boolean =>\n error instanceof ApiError && DEFAULT_RETRYABLE_STATUSES.includes(error.response.status);\n\nexport const createRetryMiddleware = (options?: RetryOptions): MiddlewareFn => {\n const {\n maxRetries = DEFAULT_MAX_RETRIES,\n backoffFactor = DEFAULT_BACKOFF_FACTOR,\n shouldRetry = defaultShouldRetry,\n } = options ?? {};\n\n if (!Number.isInteger(maxRetries) || maxRetries < 0) {\n throw new RangeError('maxRetries must be a non-negative integer');\n }\n if (!Number.isFinite(backoffFactor) || backoffFactor < 0) {\n throw new RangeError('backoffFactor must be a finite non-negative number');\n }\n\n return (next) => async (request) => {\n for (let attempt = 0; attempt <= maxRetries; attempt++) {\n try {\n return await next({ ...request, request: request.request.clone() });\n } catch (error) {\n if (attempt === maxRetries || !shouldRetry(error, attempt)) {\n throw error;\n }\n\n const delayMs = backoffFactor * 1000 * Math.pow(2, attempt);\n await delay(delayMs, request.request.signal ?? undefined);\n }\n }\n\n throw new Error('unreachable');\n };\n};\n","import { createVerifyClient } from './clients/verify';\n\nexport const createDevApiClient = () => ({\n verify: createVerifyClient(),\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/errors/ServiceUnavailableError.ts","../src/clients/kaiAgent/kaiAgentClient.ts","../src/utils/assert.ts","../src/utils/coalesce.ts","../src/utils/createStore.ts","../src/domain/stack.ts","../src/createMiddlewareFor.ts","../src/serviceClientRegistry/utils.ts","../src/serviceClientRegistry/createServiceClientRegistry.ts","../src/client.ts","../src/middlewares/loggingMiddleware.ts","../src/middlewares/retryMiddleware.ts","../src/devClient.ts"],"names":["z","createOpenapiFetchClient","createGenericFetchClient","suggestionsApiResponseSchema","createStorageTokenMiddleware","createStorageClient","createManagementClient","createProject","createVaultClient","createDataScienceClient","createEncryptionClient","createEditorClient","createSyncActionsClient","createTelemetryClient","createQueryServiceClient","createQueueClient","createChatClient","createAiClient","createImportClient","createOauthClient","createMetastoreClient","createAssetsClient","createStatusClient","createTagSdk","createStorageSdk","createVaultSdk","KeboolaHttpHeader","generateUUID","ApiError","isApiError","HttpStatus","delay","createVerifyClient"],"mappings":"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","file":"index.cjs","sourcesContent":["export class ServiceUnavailableError extends Error {\n constructor(serviceId: string, path: string[], clientName: string) {\n super(\n `Service \"${serviceId}\" is not available in this stack. Caused by: ${clientName}.${path.join('.')}()`,\n );\n this.name = 'ServiceUnavailableError';\n Object.setPrototypeOf(this, ServiceUnavailableError.prototype);\n }\n}\n","import { z } from 'zod';\n\nimport { createGenericFetchClient, createOpenapiFetchClient } from '../../fetchClient';\nimport type { SuggestionsApiResponse, SuggestionsRequestBody } from '../chat/suggestions';\nimport { suggestionsApiResponseSchema } from '../chat/suggestions';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n ApprovalBody,\n ChatRequest,\n GetChatPath,\n GetHistoryQuery,\n GetVotesQuery,\n UsageResponse,\n VoteRequest,\n} from './types';\n\nconst agentSettingsSchema = z.object({\n projectId: z.string(),\n customInstructions: z.string().nullable(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nconst toolPermissionValueSchema = z.enum(['always_allow', 'always_ask', 'blocked']);\n\nconst userAgentSettingsSchema = z.object({\n projectId: z.string(),\n userId: z.string(),\n customInstructions: z.string().nullable(),\n toolPermissions: z.record(z.string(), toolPermissionValueSchema).nullable(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nconst toolInfoSchema = z.object({\n name: z.string(),\n description: z.string(),\n readOnly: z.boolean(),\n});\n\nconst toolsListResponseSchema = z.object({\n tools: z.array(toolInfoSchema),\n});\n\nconst sandboxFileEntrySchema = z.object({\n name: z.string(),\n path: z.string(),\n type: z.enum(['file', 'dir']),\n size: z.number().int().nonnegative().optional(),\n});\n\nconst sandboxFileListingSchema = z.object({\n entries: z.array(sandboxFileEntrySchema),\n});\n\nconst sandboxFileContentSchema = z.object({\n content: z.string(),\n encoding: z.enum(['utf-8', 'binary']),\n truncated: z.boolean(),\n size: z.number().int().nonnegative(),\n});\n\nconst sandboxGitBranchSchema = z.object({\n branch: z.string().nullable(),\n});\n\ntype AgentSettings = z.infer<typeof agentSettingsSchema>;\ntype UserAgentSettings = z.infer<typeof userAgentSettingsSchema>;\ntype ToolsListResponse = z.infer<typeof toolsListResponseSchema>;\ntype SandboxFileListing = z.infer<typeof sandboxFileListingSchema>;\ntype SandboxFileContent = z.infer<typeof sandboxFileContentSchema>;\ntype SandboxGitBranch = z.infer<typeof sandboxGitBranchSchema>;\n\ntype UpdateAgentSettingsRequest = {\n customInstructions?: string | null;\n};\n\ntype UpdateUserAgentSettingsRequest = {\n customInstructions?: string | null;\n toolPermissions?: Record<string, z.infer<typeof toolPermissionValueSchema>> | null;\n};\n\nexport const createKaiAgentClient = ({ baseUrl, middlewares }: ClientInitOptions) => {\n const clientOptions = { baseUrl, middlewares };\n\n const client = createOpenapiFetchClient<paths>(clientOptions);\n const genericClient = createGenericFetchClient(clientOptions);\n\n const getHistory = async (params?: GetHistoryQuery) => {\n const { data } = await client.get('/api/history', { query: params });\n return data;\n };\n\n const getChat = async (chatId: GetChatPath['id'], signal?: AbortSignal) => {\n const { data } = await client.get('/api/chat/{id}', { path: { id: chatId } }, { signal });\n return data;\n };\n\n const deleteChat = async (chatId: string) => {\n const { data } = await client.delete('/api/chat', { query: { id: chatId } });\n return data;\n };\n\n const createChat = async (request: ChatRequest) => {\n const { response } = await client.post('/api/chat', { body: request });\n return response;\n };\n\n const getVotes = async (chatId: GetVotesQuery['chatId']) => {\n const { data } = await client.get('/api/vote', { query: { chatId } });\n return data;\n };\n\n const submitVote = async (params: VoteRequest) => {\n await client.patch('/api/vote', { body: params });\n };\n\n const getUsage = async (signal?: AbortSignal): Promise<UsageResponse> => {\n const { data } = await client.get('/api/usage', {}, { signal });\n return data;\n };\n\n const approveToolCall = async (chatId: string, body: ApprovalBody): Promise<void> => {\n await client.post('/api/chat/{id}/approval', { path: { id: chatId }, body });\n };\n\n const submitToolOutput = async (\n chatId: string,\n body: { toolUseId: string; output?: string; errorText?: string },\n ): Promise<void> => {\n await client.post('/api/chat/{id}/ui-tool-result', { path: { id: chatId }, body });\n };\n\n const stopChat = async (chatId: string): Promise<{ stopped: boolean }> => {\n const { data } = await client.post('/api/chat/{id}/stop', { path: { id: chatId } });\n return data;\n };\n\n const getSuggestions = async (\n request: SuggestionsRequestBody,\n signal?: AbortSignal,\n ): Promise<SuggestionsApiResponse> => {\n const { data } = await genericClient.post<SuggestionsApiResponse>(\n '/api/suggestions',\n { body: request },\n { signal },\n );\n\n const result = suggestionsApiResponseSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid suggestions response format');\n }\n\n return result.data;\n };\n\n const getAgentSettings = async (signal?: AbortSignal): Promise<AgentSettings> => {\n const { data } = await genericClient.get<AgentSettings>('/api/settings', {}, { signal });\n const result = agentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid agent settings response format');\n }\n return result.data;\n };\n\n const updateAgentSettings = async (\n request: UpdateAgentSettingsRequest,\n signal?: AbortSignal,\n ): Promise<AgentSettings> => {\n const { data } = await genericClient.patch<AgentSettings>(\n '/api/settings',\n { body: request },\n { signal },\n );\n const result = agentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid agent settings response format');\n }\n return result.data;\n };\n\n const getUserAgentSettings = async (signal?: AbortSignal): Promise<UserAgentSettings> => {\n const { data } = await genericClient.get<UserAgentSettings>(\n '/api/settings/user',\n {},\n { signal },\n );\n const result = userAgentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid user agent settings response format');\n }\n return result.data;\n };\n\n const updateUserAgentSettings = async (\n request: UpdateUserAgentSettingsRequest,\n signal?: AbortSignal,\n ): Promise<UserAgentSettings> => {\n const { data } = await genericClient.patch<UserAgentSettings>(\n '/api/settings/user',\n { body: request },\n { signal },\n );\n const result = userAgentSettingsSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid user agent settings response format');\n }\n return result.data;\n };\n\n const getToolsList = async (signal?: AbortSignal): Promise<ToolsListResponse> => {\n const { data } = await genericClient.get<ToolsListResponse>(\n '/api/settings/tools',\n {},\n { signal },\n );\n const result = toolsListResponseSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid tools list response format');\n }\n return result.data;\n };\n\n const listSandboxFiles = async (\n chatId: string,\n path?: string,\n signal?: AbortSignal,\n ): Promise<SandboxFileListing> => {\n const { data } = await genericClient.get<SandboxFileListing>(\n `/api/chat/${encodeURIComponent(chatId)}/sandbox/files`,\n { query: path ? { path } : undefined },\n { signal },\n );\n const result = sandboxFileListingSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid sandbox files response format');\n }\n return result.data;\n };\n\n const readSandboxFile = async (\n chatId: string,\n path: string,\n signal?: AbortSignal,\n ): Promise<SandboxFileContent> => {\n const { data } = await genericClient.get<SandboxFileContent>(\n `/api/chat/${encodeURIComponent(chatId)}/sandbox/file`,\n { query: { path } },\n { signal },\n );\n const result = sandboxFileContentSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid sandbox file response format');\n }\n return result.data;\n };\n\n const getSandboxGitBranch = async (\n chatId: string,\n signal?: AbortSignal,\n ): Promise<SandboxGitBranch> => {\n const { data } = await genericClient.get<SandboxGitBranch>(\n `/api/chat/${encodeURIComponent(chatId)}/sandbox/git-branch`,\n {},\n { signal },\n );\n const result = sandboxGitBranchSchema.safeParse(data);\n if (!result.success) {\n throw new Error('Invalid sandbox git-branch response format');\n }\n return result.data;\n };\n\n const chatStreamUrl = clientOptions.baseUrl + '/api/chat';\n\n return {\n getHistory,\n getChat,\n deleteChat,\n createChat,\n getVotes,\n submitVote,\n getUsage,\n approveToolCall,\n submitToolOutput,\n stopChat,\n getSuggestions,\n getAgentSettings,\n updateAgentSettings,\n getUserAgentSettings,\n updateUserAgentSettings,\n getToolsList,\n listSandboxFiles,\n readSandboxFile,\n getSandboxGitBranch,\n chatStreamUrl,\n };\n};\n","export function assert<T>(value: T | undefined | null, message: string): asserts value is T {\n if (value == null) {\n throw new Error(message);\n }\n}\n","/**\n * Request coalescing for a single fire-and-forget task. The first call runs the\n * task immediately. Calls made *while* it runs don't start a second run — they\n * mark a single pending rerun, so once the in-flight run settles the task runs\n * exactly once more (looping until no call arrived mid-run). The returned\n * trigger returns `void`: callers fire it and never await.\n *\n * Unlike a single-flight/dedup helper (where concurrent callers share and await\n * the in-flight promise), `coalesce` guarantees a post-change pass — the final\n * run always reflects the latest trigger. Task rejections and synchronous\n * throws are forwarded to `onError` and never destabilize the coalescer. (An\n * `onError` that itself throws is the caller's responsibility.)\n */\nexport const coalesce = (task: () => unknown, onError?: (error: unknown) => void): (() => void) => {\n let running = false;\n let pending = false;\n\n return () => {\n if (running) {\n pending = true;\n return;\n }\n\n running = true;\n void (async () => {\n try {\n do {\n pending = false;\n try {\n await task();\n } catch (error) {\n onError?.(error);\n }\n } while (pending); // a call arrived mid-run — drain it, then stop\n } finally {\n running = false;\n }\n })();\n };\n};\n","type Listener<T> = (value: T) => void;\n\n/**\n * A minimal subscribable value holder: read the current value, replace it, and\n * be notified when it changes. `set` notifies listeners only when the value\n * actually changes (`Object.is`), and `subscribe` returns an unsubscribe fn.\n */\nexport type Store<T> = {\n get: () => T;\n set: (value: T) => void;\n subscribe: (listener: Listener<T>) => () => void;\n};\n\nexport const createStore = <T>(initial: T): Store<T> => {\n let value = initial;\n const listeners = new Set<Listener<T>>();\n\n return {\n get: () => value,\n set: (next) => {\n if (Object.is(next, value)) return;\n value = next;\n listeners.forEach((listener) => listener(value));\n },\n subscribe: (listener) => {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n },\n };\n};\n","import type { ServiceId, StackInfo } from '../clients/storage/types';\n\nexport type ServiceUrls = Partial<Record<ServiceId, (url: string) => string | undefined | null>>;\n\nconst SERVICE_URL_OVERRIDES: ServiceUrls = {\n // The service URL for the Kai Assistant is incomplete; we need to add the `/api` suffix to get the full URL for the API.\n // I assume the service is versioned.\n 'kai-assistant': (url) => `${url}/api`,\n};\n\ntype Options = {\n stackInfo: StackInfo;\n clientServiceUrls?: ServiceUrls;\n};\n\nexport const createStack = ({ stackInfo, clientServiceUrls }: Options) => {\n const { services, components, features, ...infoRest } = stackInfo;\n\n const serviceMap = new Map(\n services.map((service) => {\n const devOverride = clientServiceUrls?.[service.id]?.(service.url);\n const prodOverride = SERVICE_URL_OVERRIDES[service.id]?.(service.url);\n const url = devOverride ?? prodOverride ?? service.url;\n return [service.id, url];\n }),\n );\n\n const componentMap = new Map(components.map((component) => [component.id, component]));\n const featureSet = new Set(features);\n\n const hasFeature = (...feature: string[]) => {\n if (feature.length === 0) return false;\n return feature.every((x) => featureSet.has(x));\n };\n\n const hasComponent = (...componentId: string[]) => {\n if (componentId.length === 0) return false;\n return componentId.every((x) => componentMap.has(x));\n };\n\n const getComponent = (componentId: string) => componentMap.get(componentId) ?? null;\n\n const hasService = (serviceId: ServiceId) => serviceMap.has(serviceId);\n\n const getServiceUrl = (serviceId: ServiceId) => serviceMap.get(serviceId) ?? null;\n\n return {\n ...infoRest,\n services,\n features,\n components,\n hasFeature,\n getServiceUrl,\n hasService,\n getComponent,\n hasComponent,\n };\n};\n","import type { MiddlewareFn } from './fetchClient';\n\n/**\n * Service clients reached through the registry — the key is the `clientName`\n * the user accesses them by (e.g. `api.dataScience`), not the `serviceId`.\n */\nexport type ServiceClientName =\n | 'vault'\n | 'dataScience'\n | 'encryption'\n | 'editor'\n | 'syncActions'\n | 'telemetry'\n | 'queryService'\n | 'queue'\n | 'chat'\n | 'ai'\n | 'import'\n | 'kaiAgent'\n | 'oauth';\n\n/** Clients instantiated directly (not stack-discovered), keyed by their property name. */\nexport type NonServiceClientName = 'storage' | 'management' | 'assets' | 'status' | 'metastore';\n\nexport type MiddlewareTarget = ServiceClientName | NonServiceClientName;\n\nexport type Middlewares =\n | MiddlewareFn[]\n | ({ all?: MiddlewareFn[] } & Partial<Record<MiddlewareTarget, MiddlewareFn[]>>);\n\nexport const createMiddlewareFor = (middlewares: Middlewares | undefined) => {\n return (target: MiddlewareTarget, baseline: MiddlewareFn[] = []): MiddlewareFn[] => {\n if (Array.isArray(middlewares)) return [...baseline, ...middlewares];\n\n const all = middlewares?.all ?? [];\n const targeted = middlewares?.[target] ?? [];\n return [...baseline, ...all, ...targeted];\n };\n};\n","export const isBuiltInProperty = (property: string | symbol) =>\n typeof property === 'symbol' ||\n property === 'then' ||\n property === 'constructor' ||\n property === 'toString' ||\n property === 'valueOf';\n\n/**\n * Creates a dummy client that intercepts method calls and invokes the provided onCall callback.\n */\nexport const createDummyClient = <T extends Record<string, unknown>>({\n onCall,\n}: {\n onCall: (path: string[], args: unknown[]) => void;\n}): T => {\n const createProxy = (path: string[] = []) =>\n new Proxy(() => {}, {\n // Create a new proxy for nested property access\n get: (_target, prop) => {\n // Don't intercept Symbol properties or special methods\n if (isBuiltInProperty(prop)) return undefined;\n return createProxy([...path, prop]);\n },\n // When called as a function, invoke the interceptor\n apply: (_target, _thisArgs, args) => onCall(path, args),\n });\n\n return createProxy() as unknown as T;\n};\n","import { createDummyClient } from './utils';\n\ntype OnUnavailableFn = (info: {\n serviceId: string;\n path: string[];\n args: unknown[];\n clientName: string;\n}) => void;\n\ntype ClientConfig<ServiceId extends string, ClientName extends string, Meta> = {\n serviceId: ServiceId;\n clientName: ClientName;\n clientFn: (serviceUrl: string, meta: Meta) => unknown;\n};\n\ntype ClientMeta<ServiceId extends string> = {\n clientName: string;\n serviceId: ServiceId;\n isAvailable: boolean;\n};\n\ntype Options<ServiceId extends string, Meta> = {\n getServiceBaseUrl: (serviceId: ServiceId) => string | null;\n onUnavailable?: OnUnavailableFn;\n meta?: Meta;\n};\n\ntype BuildResult<\n ServiceId extends string,\n ClientName extends string,\n Meta,\n Configs extends ClientConfig<ServiceId, ClientName, Meta>[],\n> = {\n client: {\n [Config in Configs[number] as Config['clientName']]: ReturnType<Config['clientFn']>;\n };\n meta: ClientMeta<ServiceId>[];\n};\n\ntype Registry<\n ServiceId extends string,\n ClientName extends string,\n Meta,\n Configs extends ClientConfig<ServiceId, ClientName, Meta>[],\n> = {\n add: <const Config extends ClientConfig<ServiceId, ClientName, Meta>>(\n config: Config,\n ) => Registry<ServiceId, ClientName, Meta, [...Configs, Config]>;\n build: () => BuildResult<ServiceId, ClientName, Meta, Configs>;\n /**\n * Re-creates every client with a new `meta`, mutating the object returned by\n * `build()` in place — holders of that object transparently get the fresh\n * clients. The `meta` is fully replaced (not merged). Throws if called before\n * `build()`.\n */\n rebuild: (meta: Meta) => void;\n};\n\nexport const createServiceClientRegistry =\n <ServiceId extends string, ClientName extends string = string>() =>\n <Meta = {}>({\n getServiceBaseUrl,\n onUnavailable,\n meta,\n }: Options<ServiceId, Meta>): Registry<ServiceId, ClientName, Meta, []> => {\n let metaValue = meta ?? ({} as Meta);\n\n const dummy = (serviceId: string, clientName: string) =>\n createDummyClient({\n onCall: (path, args) => {\n onUnavailable?.({\n serviceId,\n path,\n args,\n clientName,\n });\n },\n });\n\n const configs: ClientConfig<ServiceId, ClientName, Meta>[] = [];\n\n const resolveClient = ({\n serviceId,\n clientFn,\n clientName,\n }: ClientConfig<ServiceId, ClientName, Meta>) => {\n const serviceBaseUrl = getServiceBaseUrl(serviceId);\n return serviceBaseUrl ? clientFn(serviceBaseUrl, metaValue) : dummy(serviceId, clientName);\n };\n\n // The stable object returned by `build()` and mutated in place by `rebuild()`.\n let clientMap: Record<string, unknown> | null = null;\n\n type AnyConfig = ClientConfig<ServiceId, ClientName, Meta>;\n const registry: Registry<ServiceId, ClientName, Meta, AnyConfig[]> = {\n add: (config) => {\n configs.push(config);\n return registry;\n },\n build: () => {\n clientMap = {};\n const clientMeta: ClientMeta<ServiceId>[] = [];\n\n configs.forEach((config) => {\n clientMap![config.clientName] = resolveClient(config);\n clientMeta.push({\n clientName: config.clientName,\n serviceId: config.serviceId,\n isAvailable: !!getServiceBaseUrl(config.serviceId),\n });\n });\n\n // The dynamically-built map can't be statically proven against the\n // per-config mapped type; the public key safety comes from the fluent\n // `add` chain asserted at the bottom of this factory.\n return {\n client: clientMap,\n meta: clientMeta,\n } as BuildResult<ServiceId, ClientName, Meta, AnyConfig[]>;\n },\n rebuild: (nextMeta) => {\n if (!clientMap) {\n throw new Error('Registry must be built before rebuild() is called.');\n }\n\n metaValue = nextMeta;\n configs.forEach((config) => {\n clientMap![config.clientName] = resolveClient(config);\n });\n },\n };\n\n return registry as Registry<ServiceId, ClientName, Meta, []>;\n };\n","import { createAiClient } from './clients/ai';\nimport { createAssetsClient } from './clients/assets';\nimport { createChatClient } from './clients/chat';\nimport { createDataScienceClient } from './clients/dataScience';\nimport { createEditorClient } from './clients/editor';\nimport { createEncryptionClient } from './clients/encryption';\nimport { createImportClient } from './clients/import';\nimport { createKaiAgentClient } from './clients/kaiAgent';\nimport { createManagementClient } from './clients/management';\nimport { createMetastoreClient } from './clients/metastore';\nimport { createOauthClient } from './clients/oauth';\nimport { createQueryServiceClient } from './clients/queryService';\nimport { createQueueClient } from './clients/queue';\nimport { createStatusClient } from './clients/status';\nimport { createStorageClient } from './clients/storage';\nimport { createStorageTokenMiddleware } from './clients/storage/storageTokenMiddleware';\nimport type { ServiceId } from './clients/storage/types';\nimport { createSyncActionsClient } from './clients/syncActions';\nimport { createTelemetryClient } from './clients/telemetry';\nimport type { BaseClientOptions } from './clients/types';\nimport { createVaultClient } from './clients/vault';\nimport { createProject } from './domain/project';\nimport { createStack, type ServiceUrls } from './domain/stack';\nimport { createStorageSdk } from './sdks/storage';\nimport { createTagSdk } from './sdks/tag';\nimport { createVaultSdk } from './sdks/vault';\nimport {\n createMiddlewareFor,\n type Middlewares,\n type ServiceClientName,\n} from './createMiddlewareFor';\nimport { ServiceUnavailableError } from './errors';\nimport { createServiceClientRegistry, isBuiltInProperty } from './serviceClientRegistry';\nimport { assert } from './utils';\n\nexport type ApiClientOptions = {\n token: {\n storageApi: string;\n managementApi?: string;\n };\n assetsBaseUrl: string;\n statusBaseUrl: string;\n metastoreBaseUrl: string;\n middlewares?: Middlewares;\n clientServiceUrls?: ServiceUrls;\n} & BaseClientOptions;\n\nconst createClients = async ({\n baseUrl,\n token,\n assetsBaseUrl,\n statusBaseUrl,\n metastoreBaseUrl,\n clientServiceUrls,\n middlewares,\n}: ApiClientOptions) => {\n const storageTokenMiddleware = createStorageTokenMiddleware(token.storageApi);\n\n const commonMiddlewares = [storageTokenMiddleware];\n\n const middlewareFor = createMiddlewareFor(middlewares);\n\n const storage = createStorageClient({\n baseUrl,\n middlewares: middlewareFor('storage', commonMiddlewares),\n });\n\n const management = createManagementClient({\n baseUrl,\n token: token.managementApi,\n middlewares: middlewareFor('management', []),\n });\n\n const [stackInfo, sapiToken] = await Promise.all([\n storage.getStackInfo({\n exclude: 'componentDetails',\n }),\n storage.tokens.verify(),\n ]);\n\n const stack = createStack({ stackInfo, clientServiceUrls });\n const project = createProject({ sapiToken });\n\n const registry = createServiceClientRegistry<ServiceId, ServiceClientName>()({\n getServiceBaseUrl: (serviceId) => stack.getServiceUrl(serviceId),\n onUnavailable: ({ serviceId, path, clientName }) => {\n throw new ServiceUnavailableError(serviceId, path, clientName);\n },\n })\n .add({\n serviceId: 'vault',\n clientName: 'vault',\n clientFn: (serviceBaseUrl) =>\n createVaultClient({\n baseUrl: serviceBaseUrl,\n middlewares: middlewareFor('vault', commonMiddlewares),\n }),\n })\n .add({\n serviceId: 'data-science',\n clientName: 'dataScience',\n clientFn: (serviceBaseUrl) =>\n createDataScienceClient({\n baseUrl: serviceBaseUrl,\n middlewares: middlewareFor('dataScience', commonMiddlewares),\n }),\n })\n .add({\n serviceId: 'encryption',\n clientName: 'encryption',\n clientFn: (serviceBaseUrl) =>\n createEncryptionClient({\n baseUrl: serviceBaseUrl,\n middlewares: middlewareFor('encryption'),\n }),\n })\n .add({\n serviceId: 'editor',\n clientName: 'editor',\n clientFn: (serviceBaseUrl) =>\n createEditorClient({\n baseUrl: serviceBaseUrl,\n middlewares: middlewareFor('editor', commonMiddlewares),\n }),\n })\n .add({\n serviceId: 'sync-actions',\n clientName: 'syncActions',\n clientFn: (serviceBaseUrl) =>\n createSyncActionsClient({\n baseUrl: serviceBaseUrl,\n middlewares: middlewareFor('syncActions', commonMiddlewares),\n }),\n })\n .add({\n serviceId: 'telemetry',\n clientName: 'telemetry',\n clientFn: (serviceBaseUrl) =>\n createTelemetryClient({\n baseUrl: serviceBaseUrl,\n middlewares: middlewareFor('telemetry', commonMiddlewares),\n }),\n })\n .add({\n serviceId: 'query',\n clientName: 'queryService',\n clientFn: (serviceBaseUrl) =>\n createQueryServiceClient({\n baseUrl: serviceBaseUrl,\n middlewares: middlewareFor('queryService', commonMiddlewares),\n }),\n })\n .add({\n serviceId: 'queue',\n clientName: 'queue',\n clientFn: (serviceBaseUrl) =>\n createQueueClient({\n baseUrl: serviceBaseUrl,\n middlewares: middlewareFor('queue', commonMiddlewares),\n }),\n })\n .add({\n serviceId: 'kai-assistant',\n clientName: 'chat',\n clientFn: (serviceBaseUrl) =>\n createChatClient({\n storageApiUrl: baseUrl,\n baseUrl: serviceBaseUrl,\n middlewares: middlewareFor('chat', commonMiddlewares),\n }),\n })\n .add({\n serviceId: 'ai',\n clientName: 'ai',\n clientFn: (serviceBaseUrl) =>\n createAiClient({\n baseUrl: serviceBaseUrl,\n middlewares: middlewareFor('ai', commonMiddlewares),\n }),\n })\n .add({\n serviceId: 'import',\n clientName: 'import',\n clientFn: (serviceBaseUrl) =>\n createImportClient({\n baseUrl: serviceBaseUrl,\n middlewares: middlewareFor('import', commonMiddlewares),\n }),\n })\n .add({\n serviceId: 'kai-agent',\n clientName: 'kaiAgent',\n clientFn: (serviceBaseUrl) =>\n createKaiAgentClient({\n baseUrl: serviceBaseUrl,\n middlewares: middlewareFor('kaiAgent', commonMiddlewares),\n }),\n })\n .add({\n serviceId: 'oauth',\n clientName: 'oauth',\n clientFn: (serviceBaseUrl) =>\n createOauthClient({\n baseUrl: serviceBaseUrl,\n middlewares: middlewareFor('oauth', commonMiddlewares),\n }),\n });\n\n const { client, meta } = registry.build();\n\n const metastore = createMetastoreClient({\n baseUrl: metastoreBaseUrl,\n middlewares: middlewareFor('metastore', commonMiddlewares),\n });\n\n const assets = createAssetsClient({\n baseUrl: assetsBaseUrl,\n middlewares: middlewareFor('assets'),\n });\n\n const status = createStatusClient({\n baseUrl: statusBaseUrl,\n middlewares: middlewareFor('status'),\n });\n\n const tag = createTagSdk({\n metastoreClient: metastore,\n });\n\n const storageSdk = createStorageSdk({\n storageClient: storage,\n });\n\n const vault = createVaultSdk({\n vaultClient: client.vault,\n encryptionClient: client.encryption,\n });\n\n return {\n // info\n stack,\n project,\n serviceMeta: meta,\n\n // clients\n storage,\n assets,\n status,\n management,\n ...client,\n\n sdk: {\n tag,\n storage: storageSdk,\n vault,\n },\n };\n};\n\ntype Clients = Awaited<ReturnType<typeof createClients>>;\nexport type ApiClient = {\n init: (options: ApiClientOptions) => Promise<void>;\n} & Clients;\n\nexport const createApiClient = (): ApiClient => {\n let clients: Clients | null = null;\n\n const init = async (options: ApiClientOptions) => {\n if (clients) throw new Error('API is already initialized.');\n\n clients = await createClients(options);\n };\n\n const result = { init } as {\n init: typeof init;\n } & Clients;\n\n const handler: ProxyHandler<typeof result> = {\n get(_, property) {\n // Don't intercept Symbol properties or special methods\n if (isBuiltInProperty(property)) return undefined;\n\n if (property === 'init') return init;\n assert(clients, `API is not initialized. Call init() before accessing ${String(property)}`);\n return clients[property as keyof Clients];\n },\n };\n\n return new Proxy(result, handler);\n};\n","import { KeboolaHttpHeader } from '../constants';\nimport { ApiError } from '../errors';\nimport { type HttpMethod, isApiError, type MiddlewareFn } from '../fetchClient';\nimport { generateUUID } from '../utils';\n\nconst CORRELATION_ID_HEADER = 'X-Correlation-ID';\n\nconst ALWAYS_REDACTED_HEADERS = [\n KeboolaHttpHeader.MANAGEMENT_API_TOKEN,\n KeboolaHttpHeader.STORAGE_API_TOKEN,\n 'authorization',\n 'cookie',\n 'set-cookie',\n];\n\nconst ALWAYS_REDACTED_QUERY_PARAMS = new Set([\n 'token',\n 'apikey',\n 'api_key',\n 'access_token',\n 'refresh_token',\n 'code',\n 'state',\n 'signature',\n 'sig',\n 'x-amz-signature',\n 'x-amz-credential',\n 'x-amz-security-token',\n 'password',\n 'secret',\n]);\n\nconst REDACTED = '[REDACTED]';\n\nconst getRedactedUrl = (rawUrl: string): string => {\n const url = new URL(rawUrl);\n if (url.username) url.username = REDACTED;\n if (url.password) url.password = REDACTED;\n\n url.searchParams.forEach((_value, key) => {\n if (ALWAYS_REDACTED_QUERY_PARAMS.has(key.toLowerCase())) {\n url.searchParams.set(key, REDACTED);\n }\n });\n return url.toString();\n};\n\n// Returns the request's correlation ID, generating and attaching one if missing.\n//\n// Forwarded via the X-Correlation-ID header so downstream services log the same ID,\n// letting all log lines for a single user action be stitched together across service\n// boundaries. Reuse when the caller already set one (preserves the chain inside a\n// larger trace); otherwise mint a fresh UUID to start a new trace.\nconst ensureCorrelationId = (request: Request): string => {\n const correlationId = request.headers.get(CORRELATION_ID_HEADER) ?? generateUUID();\n request.headers.set(CORRELATION_ID_HEADER, correlationId);\n return correlationId;\n};\n\nconst getRedactedHeaders = (headers: Headers, redacted: string[]): Record<string, string> => {\n const redactedSet = new Set(\n [...ALWAYS_REDACTED_HEADERS, ...redacted].map((h) => h.toLowerCase()),\n );\n\n const result: Record<string, string> = {};\n headers.forEach((value, name) => {\n result[name] = redactedSet.has(name.toLowerCase()) ? REDACTED : value;\n });\n return result;\n};\n\nexport type RequestLog = {\n url: string;\n headers: Record<string, string>;\n};\n\nexport type ResponseLog = {\n status: number;\n statusText: string;\n headers: Record<string, string>;\n};\n\ntype BaseLog = {\n correlationId: string;\n method: HttpMethod;\n durationMs: number;\n request: RequestLog;\n};\n\ntype SuccessLog = BaseLog & {\n response: ResponseLog;\n};\n\ntype ErrorLog = BaseLog & {\n error: Error;\n};\n\nexport type Log = SuccessLog | ErrorLog;\n\nexport type Logger = {\n info?: (log: SuccessLog) => void;\n error?: (log: ErrorLog) => void;\n};\n\nexport type LogLevel = 'error-only' | 'all';\n\nexport type LoggingOptions = {\n logger?: Logger;\n level?: LogLevel;\n redactHeaders?: string[];\n};\n\nconst getRequestLog = (request: Request, redactedHeaders: string[]): RequestLog => ({\n url: getRedactedUrl(request.url),\n headers: getRedactedHeaders(request.headers, redactedHeaders),\n});\n\nconst getResponseLog = (response: Response, redactedHeaders: string[]): ResponseLog => ({\n status: response.status,\n statusText: response.statusText,\n headers: getRedactedHeaders(response.headers, redactedHeaders),\n});\n\n// On failure the logger receives the thrown error itself, but an ApiError carries the raw\n// fetch Request/Response whose headers were never redacted (only the middleware's own log\n// payload is). Hand the logger a copy with the same redaction applied to its headers and URL;\n// the original error is still thrown untouched so error handlers keep full fidelity.\nconst redactApiError = (error: ApiError, redactedHeaders: string[]): ApiError =>\n new ApiError({\n request: new Request(getRedactedUrl(error.request.url), {\n method: error.request.method,\n headers: getRedactedHeaders(error.request.headers, redactedHeaders),\n }),\n response: new Response(null, {\n status: error.response.status,\n statusText: error.response.statusText,\n headers: getRedactedHeaders(error.response.headers, redactedHeaders),\n }),\n data: error.data,\n });\n\nconst formatLog = (level: 'info' | 'error', log: Log): string => {\n const parts = [`[${level.toUpperCase()}]`, `${Math.round(log.durationMs)}ms`, log.method];\n parts.push(log.request.url);\n if ('response' in log) parts.push(String(log.response.status));\n return parts.join(' ');\n};\n\nconst createSafeLogger = (logger?: Logger, level: LogLevel = 'error-only'): Required<Logger> => {\n return {\n info: (log) => {\n if (level !== 'all') return;\n try {\n if (logger?.info) {\n logger.info(log);\n return;\n }\n\n console.info(formatLog('info', log));\n } catch {\n /* never let logging break the request */\n }\n },\n error: (log) => {\n try {\n if (logger?.error) {\n logger.error(log);\n return;\n }\n\n console.error(formatLog('error', log));\n } catch {\n /* never let logging break the request */\n }\n },\n };\n};\n\nexport const createLoggingMiddleware = (options: LoggingOptions = {}): MiddlewareFn => {\n const safeLogger = createSafeLogger(options.logger, options.level);\n const redactHeaders = options.redactHeaders ?? [];\n\n return (next) => async (fetchRequest) => {\n const correlationId = ensureCorrelationId(fetchRequest.request);\n const start = performance.now();\n const method = fetchRequest.request.method.toLowerCase() as HttpMethod;\n const requestLog = getRequestLog(fetchRequest.request, redactHeaders);\n\n try {\n const result = await next(fetchRequest);\n safeLogger.info({\n correlationId,\n method,\n durationMs: performance.now() - start,\n request: requestLog,\n response: getResponseLog(result.response, redactHeaders),\n });\n return result;\n } catch (error) {\n if (error instanceof Error)\n safeLogger.error({\n correlationId,\n method,\n durationMs: performance.now() - start,\n request: requestLog,\n error: isApiError(error) ? redactApiError(error, redactHeaders) : error,\n });\n\n throw error;\n }\n };\n};\n","import { HttpStatus } from '../constants';\nimport { ApiError } from '../errors';\nimport type { MiddlewareFn } from '../fetchClient';\nimport { delay } from '../utils/delay';\n\nconst DEFAULT_MAX_RETRIES = 5;\nconst DEFAULT_RETRYABLE_STATUSES: number[] = [\n HttpStatus.INTERNAL_SERVER_ERROR,\n HttpStatus.BAD_GATEWAY,\n HttpStatus.SERVICE_UNAVAILABLE,\n HttpStatus.GATEWAY_TIMEOUT,\n];\nconst DEFAULT_BACKOFF_FACTOR = 0.3;\n\nexport type RetryOptions = {\n maxRetries?: number;\n backoffFactor?: number;\n shouldRetry?: (error: unknown, attempt: number) => boolean;\n};\n\nconst defaultShouldRetry = (error: unknown): boolean =>\n error instanceof ApiError && DEFAULT_RETRYABLE_STATUSES.includes(error.response.status);\n\nexport const createRetryMiddleware = (options?: RetryOptions): MiddlewareFn => {\n const {\n maxRetries = DEFAULT_MAX_RETRIES,\n backoffFactor = DEFAULT_BACKOFF_FACTOR,\n shouldRetry = defaultShouldRetry,\n } = options ?? {};\n\n if (!Number.isInteger(maxRetries) || maxRetries < 0) {\n throw new RangeError('maxRetries must be a non-negative integer');\n }\n if (!Number.isFinite(backoffFactor) || backoffFactor < 0) {\n throw new RangeError('backoffFactor must be a finite non-negative number');\n }\n\n return (next) => async (request) => {\n for (let attempt = 0; attempt <= maxRetries; attempt++) {\n try {\n return await next({ ...request, request: request.request.clone() });\n } catch (error) {\n if (attempt === maxRetries || !shouldRetry(error, attempt)) {\n throw error;\n }\n\n const delayMs = backoffFactor * 1000 * Math.pow(2, attempt);\n await delay(delayMs, request.request.signal ?? undefined);\n }\n }\n\n throw new Error('unreachable');\n };\n};\n","import { createVerifyClient } from './clients/verify';\n\nexport const createDevApiClient = () => ({\n verify: createVerifyClient(),\n});\n"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { G as GetAllFeaturesQuery, F as Feature, c as components$5, C as CreateMaintainerBody, U as UpdateMaintainerBody, M as MaintainerUser, A as AddMaintainerUserBody, a as CreateMaintainerInvitationBody, b as CreateMaintainerOrganizationBody, d as MetadataItem, S as SetMaintainerMetadataBody, O as OrganizationDetail, e as UpdateOrganizationBody, f as AddOrganizationUserBody, g as CreateOrganizationInvitationBody, P as Project, h as CreateOrganizationProjectBody, i as SetOrganizationMetadataBody, j as GetProjectPath, k as CreateProjectFeaturePath, l as CreateProjectFeatureBody, R as RemoveProjectFeaturePath, m as User, L as ListProjectUsersPath, n as GetProjectMetadataPath, o as ProjectMetadataItem, p as SetProjectMetadataPath, q as SetProjectMetadataBody, r as GetProjectReviewersPath, s as Reviewer, t as SetProjectReviewersPath, u as SetProjectReviewersBody, v as AddUserFeatureBody, w as AddUserFeaturePath, x as RemoveUserFeaturePath } from './types-BTcT8Q0T.cjs';
|
|
2
|
-
import { M as MiddlewareFn,
|
|
3
|
-
export { c as ApiError, d as CreateCallbackMiddlewareOptions, e as FetchClientError, i as isAbortError, f as isApiError, g as isFetchClientError } from './types-DgaMV8FF.cjs';
|
|
2
|
+
import { b as ApiError, M as MiddlewareFn, c as BaseClientOptions, A as ApiResponse, H as HttpMethod } from './types-Bom8wyth.cjs';
|
|
4
3
|
import { StatusSummary } from './status/types.cjs';
|
|
5
4
|
import { Post } from './assets/types.cjs';
|
|
6
5
|
import { GetCredentialsQuery, Credential, CreateCredentialBody } from './oauth/types.cjs';
|
|
@@ -14,25 +13,28 @@ import { G as GetQueueJobPath, c as components$2, S as SearchJobsQuery } from '.
|
|
|
14
13
|
import { P as PostQueryPath, a as PostQueryBody, b as PostCancelQueryJobPath, G as GetQueryJobPath, c as components$1, d as GetQueryResultsPath, e as GetQueryResutsQuery, f as GetQueriesPath, g as GetQueriesHistoryQuery, h as GetExportResultsQuery, E as ExportResultsResponse } from './types-DJkU9gvB.cjs';
|
|
15
14
|
import { CreateCredentialsBody, WorkspaceData } from './telemetry/types.cjs';
|
|
16
15
|
import { EnrollMFAInput, GetDataAppPublicGitRepositoryInput, GetDataAppPasswordPrivateGitRepositoryInput, GetDataAppSSHKeyPrivateGitRepositoryInput, GetPublicGitRepositoryInput, GetGitPrivateRepositoryInput } from './syncActions/types.cjs';
|
|
17
|
-
import { C as CreateSqlSessionBody, G as GetSqlSessionPath, a as GetSqlSessionsQuery, b as GetSqlSessionSchemaPath, c as GetSqlSessionSchemaQuery, d as components, P as PostSqlRunQueryPath, e as PostSqlRunQueryBody, f as PostSqlTablePreviewPath, g as PostSqlTablePreviewBody, h as GetSqlSessionTableDdlPath, i as GetSqlSessionTableDdlQuery, j as PostSqlSessionLoadPath, k as PostSqlSessionLoadBody, l as PostSqlSessionUnloadPath, m as PostSqlSessionUnloadBody } from './types-
|
|
16
|
+
import { C as CreateSqlSessionBody, G as GetSqlSessionPath, a as GetSqlSessionsQuery, b as GetSqlSessionSchemaPath, c as GetSqlSessionSchemaQuery, d as components, P as PostSqlRunQueryPath, e as PostSqlRunQueryBody, f as PostSqlTablePreviewPath, g as PostSqlTablePreviewBody, h as GetSqlSessionTableDdlPath, i as GetSqlSessionTableDdlQuery, j as PostSqlSessionLoadPath, k as PostSqlSessionLoadBody, l as PostSqlSessionUnloadPath, m as PostSqlSessionUnloadBody } from './types-DBVQGCI1.cjs';
|
|
18
17
|
import { EncryptQuery } from './encryption/types.cjs';
|
|
19
18
|
import { G as GetDataAppRunsPath, a as GetDataAppRunsQuery, b as GetDataAppRunPath, c as GetDataAppLogsDownloadPath, d as GetDataAppLogsTailPath, e as GetDataAppLogsTailQuery, L as LogEntry, f as GetAppsQuery, g as GetDataAppPath, C as CreateDataAppBody, P as PatchDataAppPath, h as PatchDataAppBody, D as DeleteDataAppPath, i as GetDataAppPasswordPath, R as ResetDataAppPasswordPath, j as GetSandboxPath } from './utils-DE09pDTi.cjs';
|
|
20
19
|
export { p as parseLogLines } from './utils-DE09pDTi.cjs';
|
|
21
|
-
import { CreateVariableBody,
|
|
22
|
-
import {
|
|
20
|
+
import { CreateVariableBody, VariableWithHash, DeleteVariablePath, GetVariablesQuery, GetVariablesByBranchId } from './vault/types.cjs';
|
|
21
|
+
import { a as EncryptionCtx } from './types-Brx8PoEB.cjs';
|
|
22
|
+
import { ServiceId, CreateTableAsyncBody, TableCreateJob, TableImportAsyncBody, TableImportJob, TableExportAsyncBody, TableExportJob, BucketListing, CreateBucketListingInput, UpdateBucketListingInput, Service, StackComponent, GetBucketsQuery, Bucket, BucketDetail, CreateBucketBody, UpdateBucketBody, CreateScheduledRefreshPath, CreateScheduledRefreshBody, ScheduledTask, Job, GetEventsQuery, StorageEvent, GetTableEventsQuery, TableEvent, CreateEventBody, File as File$1, GetFilesQuery, DeleteFileTagPath, PrepareFileBody, PreparedFile, GetTablesQuery, Table, TableDetail, GetDataPreview, PrevieData, DeleteTableRows, JobUnion, DevBranch, CreateDevBranchJobBody, DevBranchPath, BranchMetadata, BranchMetadataEntry, WorkspacePath, Workspace, WorkspacesPath, ResetWorkspacePassword, SetWorkspacePublicInput, GetWorkspaceSaml2LoginPath, WorkspaceSaml2Login, WorkspaceObject, DeleteWorkspaceObjectInput, UnloadWorkspaceInput, MergeRequestDetail, MergeRequestDetailWithActivityLog, CreateMergeRequestParams, UpdateMergeRequestParams, JobOperation, GetJobPath, GetJobsQuery, GetComponentPath, Component, GetComponentsPath, GetComponentsQuery, GetSearchComponentConfigurationsPath, SearchComponentConfigurationsQuery, SearchComponentConfiguration, PartialKey, CreateConfigurationInput, BaseComponentConfig, ConfigType, ConfigurationPath, ComponentConfig, ConfigurationDiffPath, ConfigurationDiff, ConfigurationRowDiffPath, ConfigurationRowDiff, GetConfigurationsPath, CreateConfigurationRowInput, Row, CreateConfigurationRowsInput, CreateConfigurationRowBody, DeleteConfigurationRowInput, DeleteConfigurationRowsInput, CreateConfigurationWorkspaceBody, ConfigurationUseCaseType, ConfigurationVersionPath, ConfigurationVersion, ConfigurationVersionDetailPath, ConfigurationVersionDetail, GetStackInfoQuery, StackInfo } from './storage/types.cjs';
|
|
23
23
|
import { M as MetaObject } from './types-C-bd4ArM.cjs';
|
|
24
|
-
import { C as ConcurrentOptions, M as MiddlewareFn$1 } from './storageClient-
|
|
25
|
-
export { a as concurrent } from './storageClient-
|
|
24
|
+
import { C as ConcurrentOptions, M as MiddlewareFn$1 } from './storageClient-C5R3H96R.cjs';
|
|
25
|
+
export { a as concurrent } from './storageClient-C5R3H96R.cjs';
|
|
26
26
|
import { K as KeboolaObjectId } from './keboolaUID-D1DGSbge.cjs';
|
|
27
27
|
export { k as keboolaUID } from './keboolaUID-D1DGSbge.cjs';
|
|
28
28
|
import { TagWithBindings, TagData, CreateMetaObjectMetaDataInput, UpdateMetaObjectMetaDataInput } from './sdk/tag/types.cjs';
|
|
29
29
|
import { B as Backend, S as StorageToken } from './types-DYMMsuU0.cjs';
|
|
30
|
-
export { c as createGenericFetchClient } from './createGenericFetchClient-
|
|
31
|
-
export { M as ManagementClientAuthError, i as isManagementClientAuthError } from './authMiddleware-
|
|
30
|
+
export { c as createGenericFetchClient } from './createGenericFetchClient-DuW7iSRy.cjs';
|
|
31
|
+
export { M as ManagementClientAuthError, i as isManagementClientAuthError } from './authMiddleware-CeIxAJQ5.cjs';
|
|
32
32
|
import { ManagementToken } from './verify/types.cjs';
|
|
33
|
-
export { c as createStorageSdk } from './storageSdk-
|
|
33
|
+
export { c as createStorageSdk } from './storageSdk-B7Iq38Vh.cjs';
|
|
34
34
|
import 'qs';
|
|
35
|
-
import './
|
|
35
|
+
import './encryption/index.cjs';
|
|
36
|
+
import './vault/index.cjs';
|
|
37
|
+
import './createOpenapiFetchClient-BuKDZcLD.cjs';
|
|
36
38
|
import './metastore/index.cjs';
|
|
37
39
|
|
|
38
40
|
declare class UserError extends Error {
|
|
@@ -43,6 +45,11 @@ declare class ServiceUnavailableError extends Error {
|
|
|
43
45
|
constructor(serviceId: string, path: string[], clientName: string);
|
|
44
46
|
}
|
|
45
47
|
|
|
48
|
+
type FetchClientError = TypeError | ApiError | SyntaxError | DOMException;
|
|
49
|
+
declare const isApiError: (error: unknown) => error is ApiError;
|
|
50
|
+
declare const isAbortError: (error: unknown) => error is DOMException;
|
|
51
|
+
declare const isFetchClientError: (error: unknown) => error is FetchClientError;
|
|
52
|
+
|
|
46
53
|
declare const HttpHeader: {
|
|
47
54
|
CONTENT_TYPE: string;
|
|
48
55
|
CONTENT_DISPOSITION: string;
|
|
@@ -3552,6 +3559,21 @@ type UsageResponse = OpenapiReturnType<paths['/api/usage']['get']>;
|
|
|
3552
3559
|
|
|
3553
3560
|
declare function assert<T>(value: T | undefined | null, message: string): asserts value is T;
|
|
3554
3561
|
|
|
3562
|
+
/**
|
|
3563
|
+
* Request coalescing for a single fire-and-forget task. The first call runs the
|
|
3564
|
+
* task immediately. Calls made *while* it runs don't start a second run — they
|
|
3565
|
+
* mark a single pending rerun, so once the in-flight run settles the task runs
|
|
3566
|
+
* exactly once more (looping until no call arrived mid-run). The returned
|
|
3567
|
+
* trigger returns `void`: callers fire it and never await.
|
|
3568
|
+
*
|
|
3569
|
+
* Unlike a single-flight/dedup helper (where concurrent callers share and await
|
|
3570
|
+
* the in-flight promise), `coalesce` guarantees a post-change pass — the final
|
|
3571
|
+
* run always reflects the latest trigger. Task rejections and synchronous
|
|
3572
|
+
* throws are forwarded to `onError` and never destabilize the coalescer. (An
|
|
3573
|
+
* `onError` that itself throws is the caller's responsibility.)
|
|
3574
|
+
*/
|
|
3575
|
+
declare const coalesce: (task: () => unknown, onError?: (error: unknown) => void) => (() => void);
|
|
3576
|
+
|
|
3555
3577
|
declare const delay: (timeout: number, signal?: AbortSignal) => Promise<unknown>;
|
|
3556
3578
|
|
|
3557
3579
|
type PollResult<T> = {
|
|
@@ -3582,18 +3604,33 @@ declare const generateUUID: () => `${string}-${string}-${string}-${string}-${str
|
|
|
3582
3604
|
*/
|
|
3583
3605
|
declare const series: <T, R>(options: Omit<ConcurrentOptions<T, R>, "concurrency">) => Promise<R[]>;
|
|
3584
3606
|
|
|
3607
|
+
type Listener<T> = (value: T) => void;
|
|
3585
3608
|
/**
|
|
3586
|
-
*
|
|
3587
|
-
*
|
|
3588
|
-
*
|
|
3589
|
-
* Without this, callers that pass `https://connection.keboola.com/` end up
|
|
3590
|
-
* issuing requests to `https://connection.keboola.com//v2/storage/...`, which
|
|
3591
|
-
* the Storage API rejects with a 404.
|
|
3609
|
+
* A minimal subscribable value holder: read the current value, replace it, and
|
|
3610
|
+
* be notified when it changes. `set` notifies listeners only when the value
|
|
3611
|
+
* actually changes (`Object.is`), and `subscribe` returns an unsubscribe fn.
|
|
3592
3612
|
*/
|
|
3593
|
-
|
|
3613
|
+
type Store<T> = {
|
|
3614
|
+
get: () => T;
|
|
3615
|
+
set: (value: T) => void;
|
|
3616
|
+
subscribe: (listener: Listener<T>) => () => void;
|
|
3617
|
+
};
|
|
3618
|
+
declare const createStore: <T>(initial: T) => Store<T>;
|
|
3594
3619
|
|
|
3595
3620
|
type ServiceUrls = Partial<Record<ServiceId, (url: string) => string | undefined | null>>;
|
|
3596
3621
|
|
|
3622
|
+
/**
|
|
3623
|
+
* Service clients reached through the registry — the key is the `clientName`
|
|
3624
|
+
* the user accesses them by (e.g. `api.dataScience`), not the `serviceId`.
|
|
3625
|
+
*/
|
|
3626
|
+
type ServiceClientName = 'vault' | 'dataScience' | 'encryption' | 'editor' | 'syncActions' | 'telemetry' | 'queryService' | 'queue' | 'chat' | 'ai' | 'import' | 'kaiAgent' | 'oauth';
|
|
3627
|
+
/** Clients instantiated directly (not stack-discovered), keyed by their property name. */
|
|
3628
|
+
type NonServiceClientName = 'storage' | 'management' | 'assets' | 'status' | 'metastore';
|
|
3629
|
+
type MiddlewareTarget = ServiceClientName | NonServiceClientName;
|
|
3630
|
+
type Middlewares = MiddlewareFn[] | ({
|
|
3631
|
+
all?: MiddlewareFn[];
|
|
3632
|
+
} & Partial<Record<MiddlewareTarget, MiddlewareFn[]>>);
|
|
3633
|
+
|
|
3597
3634
|
type ApiClientOptions = {
|
|
3598
3635
|
token: {
|
|
3599
3636
|
storageApi: string;
|
|
@@ -3602,10 +3639,10 @@ type ApiClientOptions = {
|
|
|
3602
3639
|
assetsBaseUrl: string;
|
|
3603
3640
|
statusBaseUrl: string;
|
|
3604
3641
|
metastoreBaseUrl: string;
|
|
3605
|
-
|
|
3642
|
+
middlewares?: Middlewares;
|
|
3606
3643
|
clientServiceUrls?: ServiceUrls;
|
|
3607
3644
|
} & BaseClientOptions;
|
|
3608
|
-
declare const createClients: ({ baseUrl, token,
|
|
3645
|
+
declare const createClients: ({ baseUrl, token, assetsBaseUrl, statusBaseUrl, metastoreBaseUrl, clientServiceUrls, middlewares, }: ApiClientOptions) => Promise<{
|
|
3609
3646
|
sdk: {
|
|
3610
3647
|
tag: {
|
|
3611
3648
|
getTags: (signal?: AbortSignal) => Promise<TagWithBindings[]>;
|
|
@@ -3772,6 +3809,48 @@ declare const createClients: ({ baseUrl, token, callbacks, assetsBaseUrl, status
|
|
|
3772
3809
|
results: null;
|
|
3773
3810
|
})>;
|
|
3774
3811
|
};
|
|
3812
|
+
vault: {
|
|
3813
|
+
createVariable: (variable: CreateVariableBody, encryption: EncryptionCtx) => Promise<{
|
|
3814
|
+
key: string;
|
|
3815
|
+
value: string;
|
|
3816
|
+
flags: ("encrypted" | "oauthCredentialsId")[];
|
|
3817
|
+
group?: string;
|
|
3818
|
+
attributes: {
|
|
3819
|
+
branchId?: string;
|
|
3820
|
+
} & {
|
|
3821
|
+
[key: string]: string;
|
|
3822
|
+
};
|
|
3823
|
+
} & {
|
|
3824
|
+
hash?: string;
|
|
3825
|
+
}>;
|
|
3826
|
+
deleteVariable: (variable: VariableWithHash, signal?: AbortSignal) => Promise<void>;
|
|
3827
|
+
updateVariable: (variable: VariableWithHash, encryption: EncryptionCtx, signal?: AbortSignal) => Promise<{
|
|
3828
|
+
key: string;
|
|
3829
|
+
value: string;
|
|
3830
|
+
flags: ("encrypted" | "oauthCredentialsId")[];
|
|
3831
|
+
group?: string;
|
|
3832
|
+
attributes: {
|
|
3833
|
+
branchId?: string;
|
|
3834
|
+
} & {
|
|
3835
|
+
[key: string]: string;
|
|
3836
|
+
};
|
|
3837
|
+
} & {
|
|
3838
|
+
hash?: string;
|
|
3839
|
+
}>;
|
|
3840
|
+
setVariablesGroup: (group: string, variables: VariableWithHash[], encryption: EncryptionCtx, signal?: AbortSignal) => Promise<({
|
|
3841
|
+
key: string;
|
|
3842
|
+
value: string;
|
|
3843
|
+
flags: ("encrypted" | "oauthCredentialsId")[];
|
|
3844
|
+
group?: string;
|
|
3845
|
+
attributes: {
|
|
3846
|
+
branchId?: string;
|
|
3847
|
+
} & {
|
|
3848
|
+
[key: string]: string;
|
|
3849
|
+
};
|
|
3850
|
+
} & {
|
|
3851
|
+
hash?: string;
|
|
3852
|
+
})[]>;
|
|
3853
|
+
};
|
|
3775
3854
|
};
|
|
3776
3855
|
vault: {
|
|
3777
3856
|
createVariable: (body: CreateVariableBody, signal?: AbortSignal) => Promise<{
|
|
@@ -4713,6 +4792,7 @@ declare const createClients: ({ baseUrl, token, callbacks, assetsBaseUrl, status
|
|
|
4713
4792
|
events: {
|
|
4714
4793
|
getEvents: (query?: GetEventsQuery, signal?: AbortSignal) => Promise<StorageEvent[]>;
|
|
4715
4794
|
getEvent: (eventId: string | number, signal?: AbortSignal) => Promise<StorageEvent>;
|
|
4795
|
+
getTableEvents: (tableId: string, query?: GetTableEventsQuery, signal?: AbortSignal) => Promise<TableEvent[]>;
|
|
4716
4796
|
createEvent: (body: CreateEventBody, signal?: AbortSignal) => Promise<StorageEvent>;
|
|
4717
4797
|
};
|
|
4718
4798
|
files: {
|
|
@@ -5737,17 +5817,22 @@ type ResponseLog = {
|
|
|
5737
5817
|
statusText: string;
|
|
5738
5818
|
headers: Record<string, string>;
|
|
5739
5819
|
};
|
|
5740
|
-
type
|
|
5820
|
+
type BaseLog = {
|
|
5741
5821
|
correlationId: string;
|
|
5742
5822
|
method: HttpMethod;
|
|
5743
5823
|
durationMs: number;
|
|
5744
5824
|
request: RequestLog;
|
|
5745
|
-
response?: ResponseLog;
|
|
5746
|
-
error?: Error;
|
|
5747
5825
|
};
|
|
5826
|
+
type SuccessLog = BaseLog & {
|
|
5827
|
+
response: ResponseLog;
|
|
5828
|
+
};
|
|
5829
|
+
type ErrorLog = BaseLog & {
|
|
5830
|
+
error: Error;
|
|
5831
|
+
};
|
|
5832
|
+
type Log = SuccessLog | ErrorLog;
|
|
5748
5833
|
type Logger = {
|
|
5749
|
-
info
|
|
5750
|
-
error
|
|
5834
|
+
info?: (log: SuccessLog) => void;
|
|
5835
|
+
error?: (log: ErrorLog) => void;
|
|
5751
5836
|
};
|
|
5752
5837
|
type LogLevel = 'error-only' | 'all';
|
|
5753
5838
|
type LoggingOptions = {
|
|
@@ -5755,7 +5840,6 @@ type LoggingOptions = {
|
|
|
5755
5840
|
level?: LogLevel;
|
|
5756
5841
|
redactHeaders?: string[];
|
|
5757
5842
|
};
|
|
5758
|
-
declare const consoleLogger: Logger;
|
|
5759
5843
|
declare const createLoggingMiddleware: (options?: LoggingOptions) => MiddlewareFn;
|
|
5760
5844
|
|
|
5761
5845
|
type RetryOptions = {
|
|
@@ -5778,4 +5862,4 @@ declare const createDevApiClient: () => {
|
|
|
5778
5862
|
};
|
|
5779
5863
|
};
|
|
5780
5864
|
|
|
5781
|
-
export { type ApiClient, type ApiClientOptions, ConcurrentOptions, HttpContentType, HttpHeader, KeboolaHttpHeader, KeboolaObjectId, type Log, type LogLevel, type Logger, type LoggingOptions, MiddlewareFn, PollException, type RequestLog, type ResponseLog, type RetryOptions, ServiceUnavailableError, UserError, assert,
|
|
5865
|
+
export { type ApiClient, type ApiClientOptions, ApiError, ConcurrentOptions, type FetchClientError, HttpContentType, HttpHeader, KeboolaHttpHeader, KeboolaObjectId, type Log, type LogLevel, type Logger, type LoggingOptions, MiddlewareFn, PollException, type RequestLog, type ResponseLog, type RetryOptions, ServiceUnavailableError, type Store, UserError, assert, coalesce, createApiClient, createDevApiClient, createLoggingMiddleware, createRetryMiddleware, createStore, delay, generateUUID, isAbortError, isApiError, isFetchClientError, poll, series };
|