@keboola/api-client 1.0.1 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/index.cjs +5 -201
- package/dist/ai/index.cjs.map +1 -1
- package/dist/ai/index.js +2 -201
- package/dist/ai/index.js.map +1 -1
- package/dist/assets/index.cjs +5 -180
- package/dist/assets/index.cjs.map +1 -1
- package/dist/assets/index.js +2 -180
- package/dist/assets/index.js.map +1 -1
- package/dist/chat/index.cjs +6 -422
- package/dist/chat/index.cjs.map +1 -1
- package/dist/chat/index.js +3 -422
- package/dist/chat/index.js.map +1 -1
- package/dist/chat/suggestions.cjs +70 -152
- package/dist/chat/suggestions.cjs.map +1 -1
- package/dist/chat/suggestions.js +1 -138
- package/dist/chat/suggestions.js.map +1 -1
- package/dist/chunk-3B7L6MCG.js +189 -0
- package/dist/chunk-3B7L6MCG.js.map +1 -0
- package/dist/chunk-3T54WH4X.cjs +42 -0
- package/dist/chunk-3T54WH4X.cjs.map +1 -0
- package/dist/chunk-3Y6NK7TC.js +34 -0
- package/dist/chunk-3Y6NK7TC.js.map +1 -0
- package/dist/chunk-4RC5E3SL.js +140 -0
- package/dist/chunk-4RC5E3SL.js.map +1 -0
- package/dist/chunk-633QJMHH.cjs +73 -0
- package/dist/chunk-633QJMHH.cjs.map +1 -0
- package/dist/chunk-6RQDX6JY.cjs +132 -0
- package/dist/chunk-6RQDX6JY.cjs.map +1 -0
- package/dist/chunk-76AHKXLC.cjs +29 -0
- package/dist/chunk-76AHKXLC.cjs.map +1 -0
- package/dist/chunk-7FY6COWG.js +71 -0
- package/dist/chunk-7FY6COWG.js.map +1 -0
- package/dist/chunk-7J2R6XHB.js +3 -0
- package/dist/chunk-7J2R6XHB.js.map +1 -0
- package/dist/chunk-BGLICNTG.cjs +33 -0
- package/dist/chunk-BGLICNTG.cjs.map +1 -0
- package/dist/chunk-BR3SBEFE.cjs +182 -0
- package/dist/chunk-BR3SBEFE.cjs.map +1 -0
- package/dist/chunk-CVV4HROS.cjs +37 -0
- package/dist/chunk-CVV4HROS.cjs.map +1 -0
- package/dist/chunk-DCTDH77P.cjs +277 -0
- package/dist/chunk-DCTDH77P.cjs.map +1 -0
- package/dist/chunk-EBCZUGUX.js +35 -0
- package/dist/chunk-EBCZUGUX.js.map +1 -0
- package/dist/chunk-EY5LALX2.cjs +26 -0
- package/dist/chunk-EY5LALX2.cjs.map +1 -0
- package/dist/chunk-FBQHHAL5.js +40 -0
- package/dist/chunk-FBQHHAL5.js.map +1 -0
- package/dist/chunk-GF4XZK5N.cjs +43 -0
- package/dist/chunk-GF4XZK5N.cjs.map +1 -0
- package/dist/chunk-GNPQB3MT.js +27 -0
- package/dist/chunk-GNPQB3MT.js.map +1 -0
- package/dist/chunk-GO6SOMGL.js +181 -0
- package/dist/chunk-GO6SOMGL.js.map +1 -0
- package/dist/chunk-HCNNMUTR.cjs +36 -0
- package/dist/chunk-HCNNMUTR.cjs.map +1 -0
- package/dist/chunk-HPVTVQBJ.cjs +238 -0
- package/dist/chunk-HPVTVQBJ.cjs.map +1 -0
- package/dist/chunk-HYUGRMCY.cjs +247 -0
- package/dist/chunk-HYUGRMCY.cjs.map +1 -0
- package/dist/chunk-IJMQCOBC.js +34 -0
- package/dist/chunk-IJMQCOBC.js.map +1 -0
- package/dist/chunk-IY3VNVXD.cjs +183 -0
- package/dist/chunk-IY3VNVXD.cjs.map +1 -0
- package/dist/chunk-JKFIB6SQ.cjs +685 -0
- package/dist/chunk-JKFIB6SQ.cjs.map +1 -0
- package/dist/chunk-JLNOESHX.cjs +47 -0
- package/dist/chunk-JLNOESHX.cjs.map +1 -0
- package/dist/chunk-JURD5MC3.js +178 -0
- package/dist/chunk-JURD5MC3.js.map +1 -0
- package/dist/chunk-LV3ZWNDC.js +75 -0
- package/dist/chunk-LV3ZWNDC.js.map +1 -0
- package/dist/chunk-LZ6A6J2E.cjs +77 -0
- package/dist/chunk-LZ6A6J2E.cjs.map +1 -0
- package/dist/chunk-OKVYLO6C.js +108 -0
- package/dist/chunk-OKVYLO6C.js.map +1 -0
- package/dist/chunk-PD3LJYS2.js +218 -0
- package/dist/chunk-PD3LJYS2.js.map +1 -0
- package/dist/chunk-PV4HIVW2.js +130 -0
- package/dist/chunk-PV4HIVW2.js.map +1 -0
- package/dist/chunk-R7PD3BRA.js +261 -0
- package/dist/chunk-R7PD3BRA.js.map +1 -0
- package/dist/chunk-SAEG42HW.js +64 -0
- package/dist/chunk-SAEG42HW.js.map +1 -0
- package/dist/chunk-TIIRBQUA.cjs +110 -0
- package/dist/chunk-TIIRBQUA.cjs.map +1 -0
- package/dist/chunk-TNJWOHPM.js +948 -0
- package/dist/chunk-TNJWOHPM.js.map +1 -0
- package/dist/chunk-TXFQ4YIK.js +31 -0
- package/dist/chunk-TXFQ4YIK.js.map +1 -0
- package/dist/chunk-U5SE6W5M.cjs +158 -0
- package/dist/chunk-U5SE6W5M.cjs.map +1 -0
- package/dist/chunk-UABYNGBZ.js +39 -0
- package/dist/chunk-UABYNGBZ.js.map +1 -0
- package/dist/chunk-UXF53ZOV.js +220 -0
- package/dist/chunk-UXF53ZOV.js.map +1 -0
- package/dist/chunk-VAOCYA6B.js +20 -0
- package/dist/chunk-VAOCYA6B.js.map +1 -0
- package/dist/chunk-VS5PM7KL.js +45 -0
- package/dist/chunk-VS5PM7KL.js.map +1 -0
- package/dist/chunk-WQ7EZWBF.js +24 -0
- package/dist/chunk-WQ7EZWBF.js.map +1 -0
- package/dist/chunk-XFC52BJV.cjs +952 -0
- package/dist/chunk-XFC52BJV.cjs.map +1 -0
- package/dist/chunk-XPDEQND7.cjs +4 -0
- package/dist/chunk-XPDEQND7.cjs.map +1 -0
- package/dist/chunk-XUDMML5C.cjs +211 -0
- package/dist/chunk-XUDMML5C.cjs.map +1 -0
- package/dist/chunk-YPCD7M2N.cjs +22 -0
- package/dist/chunk-YPCD7M2N.cjs.map +1 -0
- package/dist/chunk-YUEYMIMI.cjs +67 -0
- package/dist/chunk-YUEYMIMI.cjs.map +1 -0
- package/dist/chunk-YXCVNX2Q.cjs +36 -0
- package/dist/chunk-YXCVNX2Q.cjs.map +1 -0
- package/dist/chunk-ZEMKE6DI.js +681 -0
- package/dist/chunk-ZEMKE6DI.js.map +1 -0
- package/dist/dataScience/index.cjs +8 -412
- package/dist/dataScience/index.cjs.map +1 -1
- package/dist/dataScience/index.js +2 -391
- package/dist/dataScience/index.js.map +1 -1
- package/dist/domain/permissions/index.cjs +131 -2
- package/dist/domain/permissions/index.cjs.map +1 -1
- package/dist/domain/permissions/index.d.cts +108 -2
- package/dist/domain/permissions/index.d.ts +108 -2
- package/dist/domain/permissions/index.js +106 -3
- package/dist/domain/permissions/index.js.map +1 -1
- package/dist/editor/index.cjs +5 -264
- package/dist/editor/index.cjs.map +1 -1
- package/dist/editor/index.js +2 -264
- package/dist/editor/index.js.map +1 -1
- package/dist/encryption/index.cjs +5 -190
- package/dist/encryption/index.cjs.map +1 -1
- package/dist/encryption/index.js +2 -190
- package/dist/encryption/index.js.map +1 -1
- package/dist/import/index.cjs +5 -196
- package/dist/import/index.cjs.map +1 -1
- package/dist/import/index.js +2 -196
- package/dist/import/index.js.map +1 -1
- package/dist/index.cjs +334 -3752
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1814 -104
- package/dist/index.d.ts +1814 -104
- package/dist/index.js +176 -3627
- package/dist/index.js.map +1 -1
- package/dist/management/index.cjs +10 -881
- package/dist/management/index.cjs.map +1 -1
- package/dist/management/index.js +3 -880
- package/dist/management/index.js.map +1 -1
- package/dist/metastore/index.cjs +5 -337
- package/dist/metastore/index.cjs.map +1 -1
- package/dist/metastore/index.js +2 -337
- package/dist/metastore/index.js.map +1 -1
- package/dist/oauth/index.cjs +5 -226
- package/dist/oauth/index.cjs.map +1 -1
- package/dist/oauth/index.js +2 -226
- package/dist/oauth/index.js.map +1 -1
- package/dist/project-Bzslbq4u.d.ts +16 -0
- package/dist/project-CYhB6rYN.d.cts +16 -0
- package/dist/queryService/index.cjs +5 -248
- package/dist/queryService/index.cjs.map +1 -1
- package/dist/queryService/index.js +2 -248
- package/dist/queryService/index.js.map +1 -1
- package/dist/queue/index.cjs +5 -190
- package/dist/queue/index.cjs.map +1 -1
- package/dist/queue/index.js +2 -190
- package/dist/queue/index.js.map +1 -1
- package/dist/sdk/configurations/index.d.cts +2 -12
- package/dist/sdk/configurations/index.d.ts +2 -12
- package/dist/sdk/storage/index.cjs +49 -267
- package/dist/sdk/storage/index.cjs.map +1 -1
- package/dist/sdk/storage/index.d.cts +2 -2
- package/dist/sdk/storage/index.d.ts +2 -2
- package/dist/sdk/storage/index.js +1 -259
- package/dist/sdk/storage/index.js.map +1 -1
- package/dist/sdk/tag/index.cjs +6 -203
- package/dist/sdk/tag/index.cjs.map +1 -1
- package/dist/sdk/tag/index.js +2 -206
- package/dist/sdk/tag/index.js.map +1 -1
- package/dist/status/index.cjs +6 -176
- package/dist/status/index.cjs.map +1 -1
- package/dist/status/index.js +3 -176
- package/dist/status/index.js.map +1 -1
- package/dist/status/types.cjs +2 -0
- package/dist/status/types.js +1 -1
- package/dist/storage/index.cjs +9 -1110
- package/dist/storage/index.cjs.map +1 -1
- package/dist/storage/index.d.cts +1 -1
- package/dist/storage/index.d.ts +1 -1
- package/dist/storage/index.js +3 -1110
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/types.d.cts +39 -2
- package/dist/storage/types.d.ts +39 -2
- package/dist/{storageClient-DrYOs4Xm.d.ts → storageClient-BgvUM7gy.d.ts} +4 -1
- package/dist/{storageClient-DSLTM3Cr.d.cts → storageClient-CDX-GvNV.d.cts} +4 -1
- package/dist/{storageSdk-BBqAo0Vx.d.cts → storageSdk-IOIdwqy-.d.cts} +1 -1
- package/dist/{storageSdk-ZVmKQQSl.d.ts → storageSdk-qGaWB1dy.d.ts} +1 -1
- package/dist/syncActions/index.cjs +5 -364
- package/dist/syncActions/index.cjs.map +1 -1
- package/dist/syncActions/index.js +2 -345
- package/dist/syncActions/index.js.map +1 -1
- package/dist/telemetry/index.cjs +5 -187
- package/dist/telemetry/index.cjs.map +1 -1
- package/dist/telemetry/index.js +2 -187
- package/dist/telemetry/index.js.map +1 -1
- package/dist/vault/index.cjs +5 -219
- package/dist/vault/index.cjs.map +1 -1
- package/dist/vault/index.js +2 -219
- package/dist/vault/index.js.map +1 -1
- package/dist/verify/index.cjs +5 -184
- package/dist/verify/index.cjs.map +1 -1
- package/dist/verify/index.js +2 -184
- package/dist/verify/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { createOpenapiFetchClient, normalizeBaseUrl } from './chunk-PD3LJYS2.js';
|
|
2
|
+
|
|
3
|
+
// src/clients/editor/editorClient.ts
|
|
4
|
+
var createEditorClient = ({ baseUrl, middlewares }) => {
|
|
5
|
+
const client = createOpenapiFetchClient({
|
|
6
|
+
baseUrl: normalizeBaseUrl(baseUrl),
|
|
7
|
+
middlewares
|
|
8
|
+
});
|
|
9
|
+
const createSession = async (body) => {
|
|
10
|
+
const { data } = await client.post("/sql/sessions", {
|
|
11
|
+
body
|
|
12
|
+
});
|
|
13
|
+
return data;
|
|
14
|
+
};
|
|
15
|
+
const getSession = async ({ id }, signal) => {
|
|
16
|
+
const { data } = await client.get(`/sql/sessions/{id}`, { path: { id } }, { signal });
|
|
17
|
+
return data;
|
|
18
|
+
};
|
|
19
|
+
const getSessions = async (query, signal) => {
|
|
20
|
+
const { data } = await client.get(`/sql/sessions`, { query }, { signal });
|
|
21
|
+
return data;
|
|
22
|
+
};
|
|
23
|
+
const getSessionSchema = async ({
|
|
24
|
+
id,
|
|
25
|
+
onlyWorkspaceSchema = "1",
|
|
26
|
+
loadTables = "1"
|
|
27
|
+
}, signal) => {
|
|
28
|
+
const { data } = await client.get(
|
|
29
|
+
`/sql/sessions/{id}/schema`,
|
|
30
|
+
{
|
|
31
|
+
path: { id },
|
|
32
|
+
query: { onlyWorkspaceSchema, loadTables }
|
|
33
|
+
},
|
|
34
|
+
{ signal }
|
|
35
|
+
);
|
|
36
|
+
return data;
|
|
37
|
+
};
|
|
38
|
+
const createQueryJob = async ({ id }, body) => {
|
|
39
|
+
const { data } = await client.post(`/sql/sessions/{id}/run-query`, {
|
|
40
|
+
path: { id },
|
|
41
|
+
body
|
|
42
|
+
});
|
|
43
|
+
return data;
|
|
44
|
+
};
|
|
45
|
+
const tablePreview = async ({ id }, body) => {
|
|
46
|
+
const { data } = await client.post(`/sql/sessions/{id}/table-preview`, {
|
|
47
|
+
path: { id },
|
|
48
|
+
body
|
|
49
|
+
});
|
|
50
|
+
return data;
|
|
51
|
+
};
|
|
52
|
+
const tableDefinition = async ({ id, ...query }, signal) => {
|
|
53
|
+
const { data } = await client.get(
|
|
54
|
+
`/sql/sessions/{id}/table-ddl`,
|
|
55
|
+
{ path: { id }, query },
|
|
56
|
+
{ signal }
|
|
57
|
+
);
|
|
58
|
+
return data;
|
|
59
|
+
};
|
|
60
|
+
const load = async ({ id }, body) => {
|
|
61
|
+
const { data } = await client.post(`/sql/sessions/{id}/load`, {
|
|
62
|
+
path: { id },
|
|
63
|
+
body
|
|
64
|
+
});
|
|
65
|
+
return data;
|
|
66
|
+
};
|
|
67
|
+
const unload = async ({ id }, body) => {
|
|
68
|
+
const { data } = await client.post(`/sql/sessions/{id}/unload`, {
|
|
69
|
+
path: { id },
|
|
70
|
+
// BE error: The body is optional; however, without it, the request will fail with the message "Request content type must be application/json."
|
|
71
|
+
// This is expected, as our client cannot correctly determine the content type without the body.
|
|
72
|
+
// This issue should be addressed to indicate that the body is required in their Swagger schema.
|
|
73
|
+
body: body ?? { tableId: null }
|
|
74
|
+
});
|
|
75
|
+
return data;
|
|
76
|
+
};
|
|
77
|
+
const resetWorkspacePassword = async (id) => {
|
|
78
|
+
const { data } = await client.post(`/sql/sessions/{id}/reset-password`, {
|
|
79
|
+
path: { id }
|
|
80
|
+
});
|
|
81
|
+
return data;
|
|
82
|
+
};
|
|
83
|
+
const getSessionCredentials = async (id, signal) => {
|
|
84
|
+
const { data } = await client.get(
|
|
85
|
+
`/sql/sessions/{id}/credentials`,
|
|
86
|
+
{ path: { id } },
|
|
87
|
+
{ signal }
|
|
88
|
+
);
|
|
89
|
+
return data;
|
|
90
|
+
};
|
|
91
|
+
return {
|
|
92
|
+
createSession,
|
|
93
|
+
getSession,
|
|
94
|
+
getSessions,
|
|
95
|
+
getSessionSchema,
|
|
96
|
+
createQueryJob,
|
|
97
|
+
tablePreview,
|
|
98
|
+
tableDefinition,
|
|
99
|
+
load,
|
|
100
|
+
unload,
|
|
101
|
+
resetWorkspacePassword,
|
|
102
|
+
getSessionCredentials
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
export { createEditorClient };
|
|
107
|
+
//# sourceMappingURL=chunk-OKVYLO6C.js.map
|
|
108
|
+
//# sourceMappingURL=chunk-OKVYLO6C.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/clients/editor/editorClient.ts"],"names":[],"mappings":"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","file":"chunk-OKVYLO6C.js","sourcesContent":["import { createOpenapiFetchClient } from '../../fetchClient';\nimport { normalizeBaseUrl } from '../../utils/normalizeBaseUrl';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n CreateSqlSessionBody,\n GetSqlSessionPath,\n GetSqlSessionSchemaPath,\n GetSqlSessionSchemaQuery,\n GetSqlSessionsQuery,\n GetSqlSessionTableDdlPath,\n GetSqlSessionTableDdlQuery,\n PostSqlRunQueryBody,\n PostSqlRunQueryPath,\n PostSqlSessionLoadBody,\n PostSqlSessionLoadPath,\n PostSqlSessionUnloadBody,\n PostSqlSessionUnloadPath,\n PostSqlTablePreviewBody,\n PostSqlTablePreviewPath,\n} from './types';\n\nexport const createEditorClient = ({ baseUrl, middlewares }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl: normalizeBaseUrl(baseUrl),\n middlewares,\n });\n\n const createSession = async (body: CreateSqlSessionBody) => {\n const { data } = await client.post('/sql/sessions', {\n body,\n });\n return data;\n };\n\n const getSession = async ({ id }: GetSqlSessionPath, signal?: AbortSignal) => {\n const { data } = await client.get(`/sql/sessions/{id}`, { path: { id } }, { signal });\n return data;\n };\n\n const getSessions = async (query: GetSqlSessionsQuery, signal?: AbortSignal) => {\n const { data } = await client.get(`/sql/sessions`, { query }, { signal });\n\n return data;\n };\n\n const getSessionSchema = async (\n {\n id,\n onlyWorkspaceSchema = '1',\n loadTables = '1',\n }: GetSqlSessionSchemaPath & GetSqlSessionSchemaQuery,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n `/sql/sessions/{id}/schema`,\n {\n path: { id },\n query: { onlyWorkspaceSchema, loadTables },\n },\n { signal },\n );\n return data;\n };\n\n const createQueryJob = async ({ id }: PostSqlRunQueryPath, body: PostSqlRunQueryBody) => {\n const { data } = await client.post(`/sql/sessions/{id}/run-query`, {\n path: { id },\n body,\n });\n return data;\n };\n\n const tablePreview = async ({ id }: PostSqlTablePreviewPath, body: PostSqlTablePreviewBody) => {\n const { data } = await client.post(`/sql/sessions/{id}/table-preview`, {\n path: { id },\n body,\n });\n\n return data;\n };\n\n const tableDefinition = async (\n { id, ...query }: GetSqlSessionTableDdlPath & GetSqlSessionTableDdlQuery,\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n `/sql/sessions/{id}/table-ddl`,\n { path: { id }, query },\n { signal },\n );\n return data;\n };\n\n const load = async ({ id }: PostSqlSessionLoadPath, body: PostSqlSessionLoadBody) => {\n const { data } = await client.post(`/sql/sessions/{id}/load`, {\n path: { id },\n body,\n });\n\n return data;\n };\n\n const unload = async ({ id }: PostSqlSessionUnloadPath, body?: PostSqlSessionUnloadBody) => {\n const { data } = await client.post(`/sql/sessions/{id}/unload`, {\n path: { id },\n // BE error: The body is optional; however, without it, the request will fail with the message \"Request content type must be application/json.\"\n // This is expected, as our client cannot correctly determine the content type without the body.\n // This issue should be addressed to indicate that the body is required in their Swagger schema.\n body: body ?? { tableId: null },\n });\n\n return data;\n };\n\n const resetWorkspacePassword = async (id: string) => {\n const { data } = await client.post(`/sql/sessions/{id}/reset-password`, {\n path: { id },\n });\n\n return data;\n };\n\n const getSessionCredentials = async (id: string, signal?: AbortSignal) => {\n const { data } = await client.get(\n `/sql/sessions/{id}/credentials`,\n { path: { id } },\n { signal },\n );\n\n return data;\n };\n\n return {\n createSession,\n getSession,\n getSessions,\n getSessionSchema,\n createQueryJob,\n tablePreview,\n tableDefinition,\n load,\n unload,\n resetWorkspacePassword,\n getSessionCredentials,\n };\n};\n"]}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import qs from 'qs';
|
|
2
|
+
|
|
3
|
+
// src/errors/ApiError.ts
|
|
4
|
+
var ApiError = class extends Error {
|
|
5
|
+
response;
|
|
6
|
+
request;
|
|
7
|
+
data;
|
|
8
|
+
constructor({ response, request, data }) {
|
|
9
|
+
super(response.statusText);
|
|
10
|
+
this.response = response;
|
|
11
|
+
this.request = request;
|
|
12
|
+
this.data = data;
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
// src/constants.ts
|
|
17
|
+
var KeboolaHttpHeader = {
|
|
18
|
+
STORAGE_API_TOKEN: "X-StorageApi-Token",
|
|
19
|
+
MANAGEMENT_API_TOKEN: "X-Kbc-Manageapitoken",
|
|
20
|
+
STORAGE_API_URL: "x-storageapi-url"
|
|
21
|
+
};
|
|
22
|
+
var HttpStatus = {
|
|
23
|
+
NO_CONTENT: 204,
|
|
24
|
+
BAD_REQUEST: 400,
|
|
25
|
+
UNPROCESSABLE_ENTITY: 422,
|
|
26
|
+
INTERNAL_SERVER_ERROR: 500,
|
|
27
|
+
BAD_GATEWAY: 502,
|
|
28
|
+
SERVICE_UNAVAILABLE: 503,
|
|
29
|
+
GATEWAY_TIMEOUT: 504
|
|
30
|
+
};
|
|
31
|
+
var ENCRYPTED_VALUE_PREFIX = "KBC::";
|
|
32
|
+
var HttpHeader = {
|
|
33
|
+
CONTENT_TYPE: "content-type",
|
|
34
|
+
CONTENT_DISPOSITION: "content-disposition"
|
|
35
|
+
};
|
|
36
|
+
var HttpContentType = {
|
|
37
|
+
JSON: "application/json",
|
|
38
|
+
TEXT_PLAIN: "text/plain",
|
|
39
|
+
FORM_DATA: "multipart/form-data",
|
|
40
|
+
TEXT_HTML: "text/html"
|
|
41
|
+
};
|
|
42
|
+
var defaultValidateStatus = ({ response }) => response.status >= 200 && response.status <= 299;
|
|
43
|
+
function removeUndefined(obj) {
|
|
44
|
+
const objCopy = { ...obj };
|
|
45
|
+
for (const [key, value] of Object.entries(objCopy)) {
|
|
46
|
+
if (value == null) delete objCopy[key];
|
|
47
|
+
}
|
|
48
|
+
return objCopy;
|
|
49
|
+
}
|
|
50
|
+
var parseData = async (response) => {
|
|
51
|
+
if (response.status === HttpStatus.NO_CONTENT) return null;
|
|
52
|
+
const contentType = response.headers.get(HttpHeader.CONTENT_TYPE);
|
|
53
|
+
if (contentType && contentType == HttpContentType.JSON) {
|
|
54
|
+
return response.json();
|
|
55
|
+
}
|
|
56
|
+
const text = await response.text();
|
|
57
|
+
try {
|
|
58
|
+
return JSON.parse(text);
|
|
59
|
+
} catch {
|
|
60
|
+
return text;
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
var cleanHeadersInit = (headersInit) => {
|
|
64
|
+
if (Array.isArray(headersInit)) return headersInit;
|
|
65
|
+
if (headersInit instanceof Headers) return headersInit;
|
|
66
|
+
if (headersInit == null) return headersInit;
|
|
67
|
+
return removeUndefined(headersInit);
|
|
68
|
+
};
|
|
69
|
+
var createHeaders = (headersInitA, headersInitB) => {
|
|
70
|
+
const headersA = new Headers(cleanHeadersInit(headersInitA));
|
|
71
|
+
const headersB = new Headers(cleanHeadersInit(headersInitB));
|
|
72
|
+
headersB.forEach((value, key) => {
|
|
73
|
+
headersA.set(key, value);
|
|
74
|
+
});
|
|
75
|
+
return headersA;
|
|
76
|
+
};
|
|
77
|
+
var createPath = (path, pathParam = {}) => path.replace(/\{([^}]+)}/g, (_, key) => {
|
|
78
|
+
if (!(key in pathParam))
|
|
79
|
+
throw new Error(`Path parameter "${key}" is missing in the path "${path}"`);
|
|
80
|
+
return encodeURIComponent(pathParam[key]);
|
|
81
|
+
});
|
|
82
|
+
var createSearch = (query, options = {}) => {
|
|
83
|
+
return qs.stringify(query, {
|
|
84
|
+
encodeValuesOnly: true,
|
|
85
|
+
skipNulls: true,
|
|
86
|
+
...options
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
var createBody = (body, headers) => {
|
|
90
|
+
if (body == null) return null;
|
|
91
|
+
if (body instanceof FormData) return body;
|
|
92
|
+
if (typeof body === "string") return body;
|
|
93
|
+
const stringifyBody = JSON.stringify(body);
|
|
94
|
+
const stringBody = stringifyBody === "{}" ? null : stringifyBody;
|
|
95
|
+
if (stringBody) headers.set(HttpHeader.CONTENT_TYPE, HttpContentType.JSON);
|
|
96
|
+
return stringBody;
|
|
97
|
+
};
|
|
98
|
+
var parseContentDispositionHeader = (contentDisposition) => {
|
|
99
|
+
const type = (() => {
|
|
100
|
+
const typeMatch = contentDisposition?.match(/^\s*(inline|attachment)\s*;/i);
|
|
101
|
+
return typeMatch?.[1]?.toLowerCase() ?? "unknown";
|
|
102
|
+
})();
|
|
103
|
+
const filename = (() => {
|
|
104
|
+
const filenameMatch = contentDisposition?.match(/filename="([^"]+)"/i);
|
|
105
|
+
if (filenameMatch) return filenameMatch[1];
|
|
106
|
+
const encodedFilenameMatch = contentDisposition?.match(/filename\*=(?:UTF-8'')?([^;]+)/i);
|
|
107
|
+
if (encodedFilenameMatch?.[1]) return decodeURIComponent(encodedFilenameMatch[1]);
|
|
108
|
+
const unquotedFilenameMatch = contentDisposition?.match(/filename=([^;]+)/i);
|
|
109
|
+
return unquotedFilenameMatch?.[1] ?? null;
|
|
110
|
+
})();
|
|
111
|
+
return { type, filename };
|
|
112
|
+
};
|
|
113
|
+
var createFetchRequest = ({
|
|
114
|
+
url,
|
|
115
|
+
method,
|
|
116
|
+
params,
|
|
117
|
+
options = {},
|
|
118
|
+
defaultOptions
|
|
119
|
+
}) => {
|
|
120
|
+
const {
|
|
121
|
+
baseUrl,
|
|
122
|
+
validateStatus: defValidateStatus = defaultValidateStatus,
|
|
123
|
+
headers: defaultHeaders,
|
|
124
|
+
...restDefaultOptions
|
|
125
|
+
} = defaultOptions;
|
|
126
|
+
const { validateStatus, queryArrayFormat, headers: endpointHeaders, ...restOptions } = options;
|
|
127
|
+
const headers = createHeaders(defaultHeaders, endpointHeaders);
|
|
128
|
+
const path = createPath(url, params.path);
|
|
129
|
+
const search = createSearch(params.query ?? {}, { arrayFormat: queryArrayFormat });
|
|
130
|
+
const body = createBody(params.body, headers);
|
|
131
|
+
const urlInstance = new URL(baseUrl + path);
|
|
132
|
+
urlInstance.search = search;
|
|
133
|
+
const request = new Request(urlInstance, {
|
|
134
|
+
...restDefaultOptions,
|
|
135
|
+
...restOptions,
|
|
136
|
+
headers,
|
|
137
|
+
method: method.toUpperCase(),
|
|
138
|
+
body
|
|
139
|
+
});
|
|
140
|
+
return { request, validateStatus: validateStatus ?? defValidateStatus };
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
// src/fetchClient/createFetchClient/createFetchClient.ts
|
|
144
|
+
var isApiError = (error) => error instanceof ApiError;
|
|
145
|
+
var isAbortError = (error) => error instanceof DOMException && error.name === "AbortError";
|
|
146
|
+
var isFetchClientError = (error) => error instanceof TypeError || error instanceof SyntaxError || isApiError(error);
|
|
147
|
+
var createCoreFetch = (fetchFn) => async ({ request, validateStatus }) => {
|
|
148
|
+
const response = await fetchFn(request);
|
|
149
|
+
const data = await parseData(response);
|
|
150
|
+
const apiResponse = {
|
|
151
|
+
request,
|
|
152
|
+
response,
|
|
153
|
+
data
|
|
154
|
+
};
|
|
155
|
+
const boolOrError = validateStatus(apiResponse);
|
|
156
|
+
if (isApiError(boolOrError)) throw boolOrError;
|
|
157
|
+
if (!boolOrError) throw new ApiError(apiResponse);
|
|
158
|
+
return apiResponse;
|
|
159
|
+
};
|
|
160
|
+
var createFetchClient = ({
|
|
161
|
+
middlewares = [],
|
|
162
|
+
...defaultOptions
|
|
163
|
+
}) => {
|
|
164
|
+
const coreFetch = createCoreFetch(defaultOptions.fetchFn ?? fetch);
|
|
165
|
+
const fetchWithMiddlewares = middlewares.reduceRight(
|
|
166
|
+
(next, middleware) => middleware(next),
|
|
167
|
+
coreFetch
|
|
168
|
+
);
|
|
169
|
+
const createFetchMethod = (method) => async (url, params, options = {}) => {
|
|
170
|
+
const request = createFetchRequest({
|
|
171
|
+
url,
|
|
172
|
+
method,
|
|
173
|
+
params,
|
|
174
|
+
defaultOptions,
|
|
175
|
+
options
|
|
176
|
+
});
|
|
177
|
+
const methodMiddlewares = options?.middlewares ?? [];
|
|
178
|
+
return methodMiddlewares.reduceRight(
|
|
179
|
+
(next, middleware) => middleware(next),
|
|
180
|
+
fetchWithMiddlewares
|
|
181
|
+
)(request);
|
|
182
|
+
};
|
|
183
|
+
return {
|
|
184
|
+
get: createFetchMethod("get"),
|
|
185
|
+
post: createFetchMethod("post"),
|
|
186
|
+
put: createFetchMethod("put"),
|
|
187
|
+
patch: createFetchMethod("patch"),
|
|
188
|
+
delete: createFetchMethod("delete")
|
|
189
|
+
};
|
|
190
|
+
};
|
|
191
|
+
|
|
192
|
+
// src/fetchClient/createFetchClient/middlewares.ts
|
|
193
|
+
var createCallbackMiddleware = ({ onError, onSettled, onSuccess } = {}) => (next) => async (request) => {
|
|
194
|
+
let response;
|
|
195
|
+
try {
|
|
196
|
+
response = await next(request);
|
|
197
|
+
onSuccess?.();
|
|
198
|
+
} catch (error) {
|
|
199
|
+
onError?.(error);
|
|
200
|
+
throw error;
|
|
201
|
+
} finally {
|
|
202
|
+
onSettled?.();
|
|
203
|
+
}
|
|
204
|
+
return response;
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
// src/fetchClient/createGenericFetchClient.ts
|
|
208
|
+
var createGenericFetchClient = (defaultOptions) => createFetchClient(defaultOptions);
|
|
209
|
+
|
|
210
|
+
// src/fetchClient/createOpenapiFetchClient.ts
|
|
211
|
+
var createOpenapiFetchClient = (defaultOptions) => createFetchClient(defaultOptions);
|
|
212
|
+
|
|
213
|
+
// src/utils/normalizeBaseUrl.ts
|
|
214
|
+
var normalizeBaseUrl = (baseUrl) => baseUrl.replace(/\/+$/, "");
|
|
215
|
+
|
|
216
|
+
export { ApiError, ENCRYPTED_VALUE_PREFIX, HttpContentType, HttpHeader, HttpStatus, KeboolaHttpHeader, createCallbackMiddleware, createGenericFetchClient, createOpenapiFetchClient, defaultValidateStatus, isAbortError, isApiError, isFetchClientError, normalizeBaseUrl, parseContentDispositionHeader };
|
|
217
|
+
//# sourceMappingURL=chunk-PD3LJYS2.js.map
|
|
218
|
+
//# sourceMappingURL=chunk-PD3LJYS2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/errors/ApiError.ts","../src/constants.ts","../src/fetchClient/createFetchClient/utils.ts","../src/fetchClient/createFetchClient/createFetchClient.ts","../src/fetchClient/createFetchClient/middlewares.ts","../src/fetchClient/createGenericFetchClient.ts","../src/fetchClient/createOpenapiFetchClient.ts","../src/utils/normalizeBaseUrl.ts"],"names":[],"mappings":"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","file":"chunk-PD3LJYS2.js","sourcesContent":["import type { ApiResponse } from '../fetchClient/createFetchClient/types';\n\nexport class ApiError extends Error {\n response: Response;\n request: Request;\n data: unknown;\n\n constructor({ response, request, data }: ApiResponse) {\n super(response.statusText);\n this.response = response;\n this.request = request;\n this.data = data;\n }\n}\n","export const KeboolaHttpHeader = {\n STORAGE_API_TOKEN: 'X-StorageApi-Token',\n MANAGEMENT_API_TOKEN: 'X-Kbc-Manageapitoken',\n STORAGE_API_URL: 'x-storageapi-url',\n};\n\nexport const HttpStatus = {\n NO_CONTENT: 204,\n BAD_REQUEST: 400,\n UNPROCESSABLE_ENTITY: 422,\n INTERNAL_SERVER_ERROR: 500,\n BAD_GATEWAY: 502,\n SERVICE_UNAVAILABLE: 503,\n GATEWAY_TIMEOUT: 504,\n} as const;\n\nexport const ENCRYPTED_VALUE_PREFIX = 'KBC::';\n","import type { IStringifyOptions } from 'qs';\nimport qs from 'qs';\n\nimport { HttpStatus } from '../../constants';\n\nimport type { BodyParam, CreateFetchRequestFn, PathParam, ValidateStatusFn } from './types';\n\nexport const HttpHeader = {\n CONTENT_TYPE: 'content-type',\n CONTENT_DISPOSITION: 'content-disposition',\n};\n\nexport const HttpContentType = {\n JSON: 'application/json',\n TEXT_PLAIN: 'text/plain',\n FORM_DATA: 'multipart/form-data',\n TEXT_HTML: 'text/html',\n};\n\nexport const defaultValidateStatus: ValidateStatusFn = ({ response }) =>\n response.status >= 200 && response.status <= 299;\n\nfunction removeUndefined(obj: Record<string, string>) {\n const objCopy = { ...obj };\n for (const [key, value] of Object.entries(objCopy)) {\n if (value == null) delete objCopy[key];\n }\n return objCopy;\n}\n\nexport const parseData = async (response: Response) => {\n if (response.status === HttpStatus.NO_CONTENT) return null;\n\n // headers indicates that the content is JSON, so parse it.\n const contentType = response.headers.get(HttpHeader.CONTENT_TYPE);\n if (contentType && contentType == HttpContentType.JSON) {\n return response.json();\n }\n\n // try JSON parsing on the text\n // If it fails, return the string. The headers does not have a content type.\n const text = await response.text();\n try {\n return JSON.parse(text);\n } catch {\n return text;\n }\n};\n\n// Header instance serialize undefined value as `undefined`, we do not want that\nconst cleanHeadersInit = (headersInit: HeadersInit | undefined) => {\n if (Array.isArray(headersInit)) return headersInit;\n if (headersInit instanceof Headers) return headersInit;\n if (headersInit == null) return headersInit;\n\n return removeUndefined(headersInit);\n};\n\nconst createHeaders = (\n headersInitA: HeadersInit | undefined,\n headersInitB: HeadersInit | undefined,\n) => {\n const headersA = new Headers(cleanHeadersInit(headersInitA));\n const headersB = new Headers(cleanHeadersInit(headersInitB));\n\n headersB.forEach((value, key) => {\n headersA.set(key, value);\n });\n\n return headersA;\n};\n\nexport const createPath = (path: string, pathParam: PathParam = {}) =>\n path.replace(/\\{([^}]+)}/g, (_, key) => {\n if (!(key in pathParam))\n throw new Error(`Path parameter \"${key}\" is missing in the path \"${path}\"`);\n\n return encodeURIComponent(pathParam[key]!);\n });\n\nexport const createSearch = (\n query: Record<string, unknown>,\n options: Pick<IStringifyOptions, 'arrayFormat'> = {},\n) => {\n return qs.stringify(query, {\n encodeValuesOnly: true,\n skipNulls: true,\n ...options,\n });\n};\n\nexport const createBody = (body: BodyParam, headers: Headers) => {\n if (body == null) return null;\n if (body instanceof FormData) return body; // fetch automatically sets content-type header\n if (typeof body === 'string') return body; // fetch automatically sets content-type header\n\n const stringifyBody = JSON.stringify(body);\n const stringBody = stringifyBody === '{}' ? null : stringifyBody;\n if (stringBody) headers.set(HttpHeader.CONTENT_TYPE, HttpContentType.JSON);\n\n return stringBody;\n};\n\nexport const parseContentDispositionHeader = (contentDisposition?: string | null) => {\n // extract the type ('inline' or 'attachment'), default the type to 'unknown'\n const type = (() => {\n const typeMatch = contentDisposition?.match(/^\\s*(inline|attachment)\\s*;/i);\n return (typeMatch?.[1]?.toLowerCase() ?? 'unknown') as 'inline' | 'attachment' | 'unknown';\n })();\n\n // extract the filename, default the type to null\n const filename = (() => {\n const filenameMatch = contentDisposition?.match(/filename=\"([^\"]+)\"/i);\n if (filenameMatch) return filenameMatch[1];\n\n // If no filename=\"...\", check for encoded filename*=UTF-8''\n const encodedFilenameMatch = contentDisposition?.match(/filename\\*=(?:UTF-8'')?([^;]+)/i);\n if (encodedFilenameMatch?.[1]) return decodeURIComponent(encodedFilenameMatch[1]);\n\n // Check for unquoted filenames (rare but possible)\n const unquotedFilenameMatch = contentDisposition?.match(/filename=([^;]+)/i);\n return unquotedFilenameMatch?.[1] ?? null;\n })();\n\n // Return the parsed result\n return { type, filename };\n};\n\nexport const createFetchRequest: CreateFetchRequestFn = ({\n url,\n method,\n params,\n options = {},\n defaultOptions,\n}) => {\n const {\n baseUrl,\n validateStatus: defValidateStatus = defaultValidateStatus,\n headers: defaultHeaders,\n ...restDefaultOptions\n } = defaultOptions;\n const { validateStatus, queryArrayFormat, headers: endpointHeaders, ...restOptions } = options;\n\n const headers = createHeaders(defaultHeaders, endpointHeaders);\n const path = createPath(url, params.path);\n const search = createSearch(params.query ?? {}, { arrayFormat: queryArrayFormat });\n const body = createBody(params.body, headers);\n\n const urlInstance = new URL(baseUrl + path);\n urlInstance.search = search;\n\n const request = new Request(urlInstance, {\n ...restDefaultOptions,\n ...restOptions,\n headers,\n method: method.toUpperCase(),\n body,\n });\n\n return { request, validateStatus: validateStatus ?? defValidateStatus };\n};\n","import { ApiError } from '../../errors';\n\nimport type {\n BaseFetchParams,\n CoreFetchFn,\n CreateFetchClientOptions,\n FetchClientOptions,\n FetchFn,\n HttpMethod,\n} from './types';\nimport { createFetchRequest, parseData } from './utils';\n\nexport type FetchClientError = TypeError | ApiError | SyntaxError | DOMException;\n\nexport const isApiError = (error: unknown): error is ApiError => error instanceof ApiError;\n\nexport const isAbortError = (error: unknown): error is DOMException =>\n error instanceof DOMException && error.name === 'AbortError';\n\nexport const isFetchClientError = (error: unknown): error is FetchClientError =>\n error instanceof TypeError || error instanceof SyntaxError || isApiError(error);\n\nconst createCoreFetch =\n (fetchFn: FetchFn): CoreFetchFn =>\n async ({ request, validateStatus }) => {\n const response = await fetchFn(request);\n const data = await parseData(response);\n\n const apiResponse = {\n request,\n response,\n data,\n };\n\n const boolOrError = validateStatus(apiResponse);\n if (isApiError(boolOrError)) throw boolOrError;\n if (!boolOrError) throw new ApiError(apiResponse);\n\n return apiResponse;\n };\n\nexport const createFetchClient = ({\n middlewares = [],\n ...defaultOptions\n}: CreateFetchClientOptions) => {\n const coreFetch = createCoreFetch(defaultOptions.fetchFn ?? fetch);\n const fetchWithMiddlewares = middlewares.reduceRight(\n (next, middleware) => middleware(next),\n coreFetch,\n );\n\n const createFetchMethod =\n (method: HttpMethod) =>\n async (url: string, params: BaseFetchParams, options: FetchClientOptions = {}) => {\n const request = createFetchRequest({\n url,\n method,\n params,\n defaultOptions,\n options,\n });\n\n const methodMiddlewares = options?.middlewares ?? [];\n\n return methodMiddlewares.reduceRight(\n (next, middleware) => middleware(next),\n fetchWithMiddlewares,\n )(request);\n };\n\n return {\n get: createFetchMethod('get'),\n post: createFetchMethod('post'),\n put: createFetchMethod('put'),\n patch: createFetchMethod('patch'),\n delete: createFetchMethod('delete'),\n };\n};\n","import type { FetchClientError } from './createFetchClient';\nimport type { ApiResponse, MiddlewareFn } from './types';\n\nexport type CreateCallbackMiddlewareOptions = {\n onError?: (error: FetchClientError) => void;\n onSuccess?: () => void;\n onSettled?: () => void;\n};\n\nexport const createCallbackMiddleware =\n ({ onError, onSettled, onSuccess }: CreateCallbackMiddlewareOptions = {}): MiddlewareFn =>\n (next) =>\n async (request) => {\n let response: ApiResponse;\n try {\n response = await next(request);\n onSuccess?.();\n } catch (error) {\n onError?.(error as FetchClientError);\n throw error;\n } finally {\n onSettled?.();\n }\n return response;\n };\n","import type {\n ApiResponse,\n BodyParam,\n CreateFetchClientOptions,\n FetchClientOptions,\n PathParam,\n QueryParam,\n} from './createFetchClient';\nimport { createFetchClient } from './createFetchClient';\n\ntype FetchParams<Path = PathParam, Query = QueryParam, Body = BodyParam> = {\n path?: Path;\n query?: Query;\n body?: Body;\n};\n\ntype FetchMethod = <Data, Path = PathParam, Query = QueryParam, Body = BodyParam>(\n url: string,\n params: FetchParams<Path, Query, Body>,\n options?: FetchClientOptions,\n) => Promise<ApiResponse<Data>>;\n\ntype FetchClient = {\n get: FetchMethod;\n post: FetchMethod;\n put: FetchMethod;\n patch: FetchMethod;\n delete: FetchMethod;\n};\n\nexport const createGenericFetchClient = (defaultOptions: CreateFetchClientOptions) =>\n createFetchClient(defaultOptions) as FetchClient;\n","import {\n type ApiResponse,\n createFetchClient,\n type CreateFetchClientOptions,\n type FetchClientOptions,\n type HttpMethod,\n} from './createFetchClient';\nimport type { OpenapiParametersType, OpenapiReturnType } from './types';\n\ntype OpenapiPaths<Paths> = {\n [P in keyof Paths]: {\n [M in HttpMethod]?: unknown;\n };\n};\n\ntype PathsWithMethod<Paths extends OpenapiPaths<Paths>, PathnameMethod extends HttpMethod> = {\n [Pathname in keyof Paths]: Paths[Pathname] extends {\n [K in PathnameMethod]: any;\n }\n ? Pathname\n : never;\n}[keyof Paths];\n\ntype FetchMethod<Paths extends OpenapiPaths<Paths>, Method extends HttpMethod> = <\n Path extends PathsWithMethod<Paths, Method>,\n>(\n url: Path,\n params: OpenapiParametersType<Paths[Path][Method]>,\n options?: FetchClientOptions,\n) => Promise<ApiResponse<OpenapiReturnType<Paths[Path][Method]>>>;\n\ntype FetchClient<Paths extends OpenapiPaths<Paths>> = {\n get: FetchMethod<Paths, 'get'>;\n post: FetchMethod<Paths, 'post'>;\n put: FetchMethod<Paths, 'put'>;\n patch: FetchMethod<Paths, 'patch'>;\n delete: FetchMethod<Paths, 'delete'>;\n};\n\nexport const createOpenapiFetchClient = <Paths extends OpenapiPaths<Paths>>(\n defaultOptions: CreateFetchClientOptions,\n) => createFetchClient(defaultOptions) as FetchClient<Paths>;\n","/**\n * Strips trailing slashes from a base URL so concatenating a leading-slash\n * path (e.g. `/v2/storage`) never produces a double slash.\n *\n * Without this, callers that pass `https://connection.keboola.com/` end up\n * issuing requests to `https://connection.keboola.com//v2/storage/...`, which\n * the Storage API rejects with a 404.\n */\nexport const normalizeBaseUrl = (baseUrl: string): string => baseUrl.replace(/\\/+$/, '');\n"]}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { suggestionsApiResponseSchema } from './chunk-4RC5E3SL.js';
|
|
2
|
+
import { createOpenapiFetchClient, KeboolaHttpHeader, normalizeBaseUrl } from './chunk-PD3LJYS2.js';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
|
|
5
|
+
var agentSettingsSchema = z.object({
|
|
6
|
+
projectId: z.string(),
|
|
7
|
+
customInstructions: z.string().nullable(),
|
|
8
|
+
createdAt: z.string(),
|
|
9
|
+
updatedAt: z.string()
|
|
10
|
+
});
|
|
11
|
+
var toolPermissionValueSchema = z.enum(["always_allow", "always_ask", "blocked"]);
|
|
12
|
+
var userAgentSettingsSchema = z.object({
|
|
13
|
+
projectId: z.string(),
|
|
14
|
+
userId: z.string(),
|
|
15
|
+
customInstructions: z.string().nullable(),
|
|
16
|
+
toolPermissions: z.record(z.string(), toolPermissionValueSchema).nullable(),
|
|
17
|
+
createdAt: z.string(),
|
|
18
|
+
updatedAt: z.string()
|
|
19
|
+
});
|
|
20
|
+
var toolInfoSchema = z.object({
|
|
21
|
+
name: z.string(),
|
|
22
|
+
description: z.string(),
|
|
23
|
+
readOnly: z.boolean()
|
|
24
|
+
});
|
|
25
|
+
var toolsListResponseSchema = z.object({
|
|
26
|
+
tools: z.array(toolInfoSchema)
|
|
27
|
+
});
|
|
28
|
+
var createChatClient = ({ baseUrl, middlewares, storageApiUrl }) => {
|
|
29
|
+
const client = createOpenapiFetchClient({
|
|
30
|
+
baseUrl: normalizeBaseUrl(baseUrl),
|
|
31
|
+
headers: new Headers({
|
|
32
|
+
[KeboolaHttpHeader.STORAGE_API_URL]: storageApiUrl
|
|
33
|
+
}),
|
|
34
|
+
middlewares
|
|
35
|
+
});
|
|
36
|
+
const getHistory = async (params) => {
|
|
37
|
+
const { data } = await client.get("/history", { query: params });
|
|
38
|
+
return data;
|
|
39
|
+
};
|
|
40
|
+
const getChat = async (chatId, signal) => {
|
|
41
|
+
const { data } = await client.get("/chat/{id}", { path: { id: chatId } }, { signal });
|
|
42
|
+
return data;
|
|
43
|
+
};
|
|
44
|
+
const deleteChat = async (chatId) => {
|
|
45
|
+
const { data } = await client.delete("/chat", { query: { id: chatId } });
|
|
46
|
+
return data;
|
|
47
|
+
};
|
|
48
|
+
const getVotes = async (chatId) => {
|
|
49
|
+
const { data } = await client.get("/vote", { query: { chatId } });
|
|
50
|
+
return data;
|
|
51
|
+
};
|
|
52
|
+
const submitVote = async (params) => {
|
|
53
|
+
await client.patch("/vote", { body: params });
|
|
54
|
+
};
|
|
55
|
+
const createChat = async (request) => {
|
|
56
|
+
const { response } = await client.post("/chat", { body: request });
|
|
57
|
+
return response;
|
|
58
|
+
};
|
|
59
|
+
const getUsage = async (signal) => {
|
|
60
|
+
const { data } = await client.get("/usage", {}, { signal });
|
|
61
|
+
return data;
|
|
62
|
+
};
|
|
63
|
+
const getSuggestions = async (request, signal) => {
|
|
64
|
+
const { data } = await client.post("/suggestions", { body: request }, { signal });
|
|
65
|
+
const result = suggestionsApiResponseSchema.safeParse(data);
|
|
66
|
+
if (!result.success) {
|
|
67
|
+
throw new Error("Invalid suggestions response format");
|
|
68
|
+
}
|
|
69
|
+
return result.data;
|
|
70
|
+
};
|
|
71
|
+
const getAgentSettings = async (signal) => {
|
|
72
|
+
const { data } = await client.get("/settings", {}, { signal });
|
|
73
|
+
const result = agentSettingsSchema.safeParse(data);
|
|
74
|
+
if (!result.success) {
|
|
75
|
+
throw new Error("Invalid agent settings response format");
|
|
76
|
+
}
|
|
77
|
+
return result.data;
|
|
78
|
+
};
|
|
79
|
+
const updateAgentSettings = async (request, signal) => {
|
|
80
|
+
const { data } = await client.patch("/settings", { body: request }, { signal });
|
|
81
|
+
const result = agentSettingsSchema.safeParse(data);
|
|
82
|
+
if (!result.success) {
|
|
83
|
+
throw new Error("Invalid agent settings response format");
|
|
84
|
+
}
|
|
85
|
+
return result.data;
|
|
86
|
+
};
|
|
87
|
+
const getUserAgentSettings = async (signal) => {
|
|
88
|
+
const { data } = await client.get("/settings/user", {}, { signal });
|
|
89
|
+
const result = userAgentSettingsSchema.safeParse(data);
|
|
90
|
+
if (!result.success) {
|
|
91
|
+
throw new Error("Invalid user agent settings response format");
|
|
92
|
+
}
|
|
93
|
+
return result.data;
|
|
94
|
+
};
|
|
95
|
+
const updateUserAgentSettings = async (request, signal) => {
|
|
96
|
+
const { data } = await client.patch("/settings/user", { body: request }, { signal });
|
|
97
|
+
const result = userAgentSettingsSchema.safeParse(data);
|
|
98
|
+
if (!result.success) {
|
|
99
|
+
throw new Error("Invalid user agent settings response format");
|
|
100
|
+
}
|
|
101
|
+
return result.data;
|
|
102
|
+
};
|
|
103
|
+
const getToolsList = async (signal) => {
|
|
104
|
+
const { data } = await client.get("/settings/tools", {}, { signal });
|
|
105
|
+
const result = toolsListResponseSchema.safeParse(data);
|
|
106
|
+
if (!result.success) {
|
|
107
|
+
throw new Error("Invalid tools list response format");
|
|
108
|
+
}
|
|
109
|
+
return result.data;
|
|
110
|
+
};
|
|
111
|
+
return {
|
|
112
|
+
getHistory,
|
|
113
|
+
getChat,
|
|
114
|
+
deleteChat,
|
|
115
|
+
createChat,
|
|
116
|
+
getVotes,
|
|
117
|
+
submitVote,
|
|
118
|
+
getUsage,
|
|
119
|
+
getSuggestions,
|
|
120
|
+
getAgentSettings,
|
|
121
|
+
updateAgentSettings,
|
|
122
|
+
getUserAgentSettings,
|
|
123
|
+
updateUserAgentSettings,
|
|
124
|
+
getToolsList
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
export { createChatClient };
|
|
129
|
+
//# sourceMappingURL=chunk-PV4HIVW2.js.map
|
|
130
|
+
//# sourceMappingURL=chunk-PV4HIVW2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/clients/chat/chatClient.ts"],"names":[],"mappings":"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","file":"chunk-PV4HIVW2.js","sourcesContent":["import { z } from 'zod';\n\nimport { KeboolaHttpHeader } from '../../constants';\nimport { createOpenapiFetchClient } from '../../fetchClient';\nimport { normalizeBaseUrl } from '../../utils/normalizeBaseUrl';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type { SuggestionsApiResponse, SuggestionsRequestBody } from './suggestions';\nimport { suggestionsApiResponseSchema } from './suggestions';\nimport type {\n AgentSettings,\n ChatRequest,\n GetChatPath,\n GetHistoryQuery,\n GetVotesQuery,\n ToolsListResponse,\n UpdateAgentSettingsRequest,\n UpdateUserAgentSettingsRequest,\n UsageResponse,\n UserAgentSettings,\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\ntype ChatClientOptions = ClientInitOptions & {\n storageApiUrl: string;\n};\n\nexport const createChatClient = ({ baseUrl, middlewares, storageApiUrl }: ChatClientOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl: normalizeBaseUrl(baseUrl),\n headers: new Headers({\n [KeboolaHttpHeader.STORAGE_API_URL]: storageApiUrl,\n }),\n middlewares,\n });\n\n const getHistory = async (params?: GetHistoryQuery) => {\n const { data } = await client.get('/history', { query: params });\n return data;\n };\n\n const getChat = async (chatId: GetChatPath['id'], signal?: AbortSignal) => {\n const { data } = await client.get('/chat/{id}', { path: { id: chatId } }, { signal });\n return data;\n };\n\n const deleteChat = async (chatId: string) => {\n const { data } = await client.delete('/chat', { query: { id: chatId } });\n return data;\n };\n\n const getVotes = async (chatId: GetVotesQuery['chatId']) => {\n const { data } = await client.get('/vote', { query: { chatId } });\n return data;\n };\n\n const submitVote = async (params: VoteRequest) => {\n await client.patch('/vote', { body: params });\n };\n\n const createChat = async (request: ChatRequest) => {\n const { response } = await client.post('/chat', { body: request });\n return response;\n };\n\n const getUsage = async (signal?: AbortSignal): Promise<UsageResponse> => {\n const { data } = await client.get('/usage', {}, { signal });\n return data;\n };\n\n const getSuggestions = async (\n request: SuggestionsRequestBody,\n signal?: AbortSignal,\n ): Promise<SuggestionsApiResponse> => {\n const { data } = await client.post('/suggestions', { body: request }, { signal });\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 client.get('/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 client.patch('/settings', { body: request }, { 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 getUserAgentSettings = async (signal?: AbortSignal): Promise<UserAgentSettings> => {\n const { data } = await client.get('/settings/user', {}, { signal });\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 client.patch('/settings/user', { body: request }, { signal });\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 client.get('/settings/tools', {}, { signal });\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 return {\n getHistory,\n getChat,\n deleteChat,\n createChat,\n getVotes,\n submitVote,\n getUsage,\n getSuggestions,\n getAgentSettings,\n updateAgentSettings,\n getUserAgentSettings,\n updateUserAgentSettings,\n getToolsList,\n };\n};\n"]}
|