@kontent-ai/core-sdk 12.0.0-preview.33 → 12.0.0-preview.35
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 +1 -1
- package/dist/core-sdk-info.js +1 -1
- package/dist/public_api.d.ts +1 -1
- package/dist/public_api.js +1 -1
- package/dist/public_api.js.map +1 -1
- package/dist/sdk/resolve-query.js +14 -11
- package/dist/sdk/resolve-query.js.map +1 -1
- package/dist/sdk/sdk-config.d.ts +21 -3
- package/dist/sdk/sdk-config.js +24 -6
- package/dist/sdk/sdk-config.js.map +1 -1
- package/dist/sdk/sdk-models.d.ts +13 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -127,7 +127,7 @@ if (!success) {
|
|
|
127
127
|
console.error("Invalid body:", error.details.originalError);
|
|
128
128
|
break;
|
|
129
129
|
case "parsingFailed":
|
|
130
|
-
// Zod schema
|
|
130
|
+
// Zod schema parsing fails
|
|
131
131
|
console.error("Unexpected response shape for", error.details.url, error.details.zodError);
|
|
132
132
|
break;
|
|
133
133
|
case "aborted":
|
package/dist/core-sdk-info.js
CHANGED
package/dist/public_api.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export type { EmptyObject, PickStringLiteral } from "./models/utility.types.js";
|
|
|
9
9
|
export { createFetchQuery } from "./sdk/queries/fetch-sdk-query.js";
|
|
10
10
|
export { createMutationQuery } from "./sdk/queries/mutation-sdk-query.js";
|
|
11
11
|
export { createPagedFetchQuery } from "./sdk/queries/paged-fetch-sdk-query.js";
|
|
12
|
-
export { codenameOf,
|
|
12
|
+
export { codenameOf, kontentUuidSchema, nilUuid, strictCodenameSchema, } from "./sdk/sdk-config.js";
|
|
13
13
|
export type { BaseUrl, FetchQuery, FetchQueryRequest, MutationQuery, MutationQueryRequest, PagedFetchQuery, PagingQueryResponse, Query, QueryResponse, QueryResponseMeta, SafePagingQueryResult, SafeQueryResult, SdkConfig, SuccessfulHttpResponse, } from "./sdk/sdk-models.js";
|
|
14
14
|
export { isPagingQuery } from "./sdk/sdk-utils.js";
|
|
15
15
|
export { isDefined } from "./utils/core.utils.js";
|
package/dist/public_api.js
CHANGED
|
@@ -6,7 +6,7 @@ export { jsonValueSchema } from "./models/json.models.js";
|
|
|
6
6
|
export { createFetchQuery } from "./sdk/queries/fetch-sdk-query.js";
|
|
7
7
|
export { createMutationQuery } from "./sdk/queries/mutation-sdk-query.js";
|
|
8
8
|
export { createPagedFetchQuery } from "./sdk/queries/paged-fetch-sdk-query.js";
|
|
9
|
-
export { codenameOf,
|
|
9
|
+
export { codenameOf, kontentUuidSchema, nilUuid, strictCodenameSchema, } from "./sdk/sdk-config.js";
|
|
10
10
|
export { isPagingQuery } from "./sdk/sdk-utils.js";
|
|
11
11
|
export { isDefined } from "./utils/core.utils.js";
|
|
12
12
|
export { isKontent404Error, isKontentSdkError } from "./utils/error.utils.js";
|
package/dist/public_api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_api.js","sourceRoot":"","sources":["../lib/public_api.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAoB/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAU/D,OAAO,EACN,iBAAiB,EACjB,iBAAiB,EAKjB,eAAe,GAEf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAmD,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE3G,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,
|
|
1
|
+
{"version":3,"file":"public_api.js","sourceRoot":"","sources":["../lib/public_api.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAoB/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAU/D,OAAO,EACN,iBAAiB,EACjB,iBAAiB,EAKjB,eAAe,GAEf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAmD,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE3G,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EACN,UAAU,EACV,iBAAiB,EACjB,OAAO,EACP,oBAAoB,GACpB,MAAM,qBAAqB,CAAC;AAiB7B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,kCAAkC,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -44,33 +44,36 @@ function prepareQueryData(data) {
|
|
|
44
44
|
method: data.method,
|
|
45
45
|
abortSignal: data.abortSignal,
|
|
46
46
|
zodSchema: data.zodSchema,
|
|
47
|
+
responseValidation: data.config.runtimeValidation,
|
|
47
48
|
mapError: data.mapError,
|
|
48
49
|
mapMetadata: data.mapMetadata,
|
|
49
50
|
mapExtraResponseProps: data.mapExtraResponseProps,
|
|
50
51
|
},
|
|
51
52
|
};
|
|
52
53
|
}
|
|
53
|
-
async function executeQuery({ url, requestHeaders, httpService, body, method, abortSignal, zodSchema, mapError, mapMetadata, mapExtraResponseProps, }) {
|
|
54
|
-
const { success
|
|
54
|
+
async function executeQuery({ url, requestHeaders, httpService, body, method, abortSignal, zodSchema, responseValidation, mapError, mapMetadata, mapExtraResponseProps, }) {
|
|
55
|
+
const { success, response, error } = await httpService.request({
|
|
55
56
|
body,
|
|
56
57
|
url,
|
|
57
58
|
method,
|
|
58
59
|
abortSignal,
|
|
59
60
|
requestHeaders,
|
|
60
61
|
});
|
|
61
|
-
if (!
|
|
62
|
-
return { success: false, error: mapError(
|
|
62
|
+
if (!success) {
|
|
63
|
+
return { success: false, error: mapError(error) };
|
|
63
64
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
if (responseValidation?.validateResponses) {
|
|
66
|
+
const validationError = await parseResponse({ url: response.adapterResponse.url, response, zodSchema });
|
|
67
|
+
if (validationError) {
|
|
68
|
+
return { success: false, error: mapError(validationError.error) };
|
|
69
|
+
}
|
|
67
70
|
}
|
|
68
71
|
const continuationTokenFromResponse = extractContinuationToken(response.adapterResponse.responseHeaders);
|
|
69
72
|
return {
|
|
70
73
|
success: true,
|
|
71
74
|
response: {
|
|
72
75
|
...mapExtraResponseProps(response),
|
|
73
|
-
payload:
|
|
76
|
+
payload: response.payload,
|
|
74
77
|
meta: {
|
|
75
78
|
...mapMetadata(response, { continuationToken: continuationTokenFromResponse }),
|
|
76
79
|
url: response.adapterResponse.url,
|
|
@@ -147,13 +150,13 @@ function setBaseUrl(url, baseUrl) {
|
|
|
147
150
|
};
|
|
148
151
|
}
|
|
149
152
|
async function parseResponse({ url, response, zodSchema, }) {
|
|
150
|
-
const { success, error
|
|
153
|
+
const { success, error } = await zodSchema.safeParseAsync(response.payload);
|
|
151
154
|
if (!success) {
|
|
152
155
|
return {
|
|
153
156
|
success: false,
|
|
154
157
|
error: createSdkError({
|
|
155
158
|
baseErrorData: {
|
|
156
|
-
message: `Failed to parse response
|
|
159
|
+
message: `Failed to parse response payload for '${url.toString()}'`,
|
|
157
160
|
url,
|
|
158
161
|
retryStrategyOptions: undefined,
|
|
159
162
|
retryAttempt: undefined,
|
|
@@ -167,7 +170,7 @@ async function parseResponse({ url, response, zodSchema, }) {
|
|
|
167
170
|
}),
|
|
168
171
|
};
|
|
169
172
|
}
|
|
170
|
-
return
|
|
173
|
+
return undefined;
|
|
171
174
|
}
|
|
172
175
|
function getHttpService(config) {
|
|
173
176
|
return config.httpService ?? getDefaultHttpService();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-query.js","sourceRoot":"","sources":["../../lib/sdk/resolve-query.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAIhE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAC5I,OAAO,
|
|
1
|
+
{"version":3,"file":"resolve-query.js","sourceRoot":"","sources":["../../lib/sdk/resolve-query.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk/sdk-config.d.ts
CHANGED
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
import z from "zod";
|
|
2
2
|
export declare const nilUuid = "00000000-0000-0000-0000-000000000000";
|
|
3
3
|
export declare const kontentUuidSchema: z.ZodUnion<readonly [z.ZodUUID, z.ZodLiteral<"00000000-0000-0000-0000-000000000000">]>;
|
|
4
|
-
export declare const
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
export declare const strictCodenameSchema: z.ZodString;
|
|
5
|
+
/**
|
|
6
|
+
* Builds a Zod schema for a codename field.
|
|
7
|
+
*
|
|
8
|
+
* The generic type parameter `TCodenames` is a **TypeScript-only hint** - it
|
|
9
|
+
* narrows the schema's output type for consumers (e.g.
|
|
10
|
+
* `codenameOf<"article" | "product">()` returns `z.ZodType<"article" | "product">`
|
|
11
|
+
* for autocomplete and downstream type inference) but is not enforced at runtime.
|
|
12
|
+
*
|
|
13
|
+
* At runtime the schema only checks that the value is a string. Two reasons:
|
|
14
|
+
*
|
|
15
|
+
* 1. Codenames are not a closed set - editors can add a new content type,
|
|
16
|
+
* taxonomy term, language, etc. at any time. A `z.literal(codenames)` schema
|
|
17
|
+
* would reject newly-added codenames once they appear in API responses, even
|
|
18
|
+
* though those values are perfectly valid.
|
|
19
|
+
* 2. Format-checking every codename on every response is unnecessary cost - the
|
|
20
|
+
* Kontent.ai API contract guarantees the format, so the SDK trusts it.
|
|
21
|
+
*
|
|
22
|
+
* If you need strict format validation (e.g. for inputs in Management SDK), use `strictCodenameSchema` schema instead.
|
|
23
|
+
*/
|
|
24
|
+
export declare function codenameOf<TCodenames extends string = string>(): z.ZodType<TCodenames>;
|
package/dist/sdk/sdk-config.js
CHANGED
|
@@ -1,13 +1,31 @@
|
|
|
1
1
|
import z from "zod";
|
|
2
2
|
export const nilUuid = "00000000-0000-0000-0000-000000000000";
|
|
3
3
|
export const kontentUuidSchema = z.union([z.uuid({ version: "v4" }), z.literal(nilUuid)]);
|
|
4
|
-
export const
|
|
4
|
+
export const strictCodenameSchema = z.string().regex(/^[a-z][a-z0-9_]*$/, {
|
|
5
5
|
message: "Codename must start with a lowercase letter and contain only lowercase letters, digits, and underscores",
|
|
6
6
|
});
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Builds a Zod schema for a codename field.
|
|
9
|
+
*
|
|
10
|
+
* The generic type parameter `TCodenames` is a **TypeScript-only hint** - it
|
|
11
|
+
* narrows the schema's output type for consumers (e.g.
|
|
12
|
+
* `codenameOf<"article" | "product">()` returns `z.ZodType<"article" | "product">`
|
|
13
|
+
* for autocomplete and downstream type inference) but is not enforced at runtime.
|
|
14
|
+
*
|
|
15
|
+
* At runtime the schema only checks that the value is a string. Two reasons:
|
|
16
|
+
*
|
|
17
|
+
* 1. Codenames are not a closed set - editors can add a new content type,
|
|
18
|
+
* taxonomy term, language, etc. at any time. A `z.literal(codenames)` schema
|
|
19
|
+
* would reject newly-added codenames once they appear in API responses, even
|
|
20
|
+
* though those values are perfectly valid.
|
|
21
|
+
* 2. Format-checking every codename on every response is unnecessary cost - the
|
|
22
|
+
* Kontent.ai API contract guarantees the format, so the SDK trusts it.
|
|
23
|
+
*
|
|
24
|
+
* If you need strict format validation (e.g. for inputs in Management SDK), use `strictCodenameSchema` schema instead.
|
|
25
|
+
*/
|
|
26
|
+
export function codenameOf() {
|
|
27
|
+
return z.custom((value) => typeof value === "string", {
|
|
28
|
+
error: "Invalid codename",
|
|
29
|
+
});
|
|
12
30
|
}
|
|
13
31
|
//# sourceMappingURL=sdk-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-config.js","sourceRoot":"","sources":["../../lib/sdk/sdk-config.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,CAAC,MAAM,OAAO,GAAG,sCAAsC,CAAC;AAE9D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAE1F,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"sdk-config.js","sourceRoot":"","sources":["../../lib/sdk/sdk-config.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,CAAC,MAAM,OAAO,GAAG,sCAAsC,CAAC;AAE9D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAE1F,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,EAAE;IACzE,OAAO,EAAE,yGAAyG;CAClH,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,UAAU;IACzB,OAAO,CAAC,CAAC,MAAM,CAAa,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,EAAE;QACjE,KAAK,EAAE,kBAAkB;KACzB,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/sdk/sdk-models.d.ts
CHANGED
|
@@ -34,6 +34,18 @@ export type SdkConfig<TExtendedConfig = unknown> = {
|
|
|
34
34
|
* If provided, it will override the default base URL based on selected API mode.
|
|
35
35
|
*/
|
|
36
36
|
readonly baseUrl?: BaseUrl;
|
|
37
|
+
/**
|
|
38
|
+
* Configuration for runtime validation against expected schema.
|
|
39
|
+
*/
|
|
40
|
+
readonly runtimeValidation?: {
|
|
41
|
+
/**
|
|
42
|
+
* When enabled, the response data will be validated against the expected Zod schema from which the types
|
|
43
|
+
* this library are based on. This ensures that you are working with the correct data types.
|
|
44
|
+
*
|
|
45
|
+
* @default false
|
|
46
|
+
*/
|
|
47
|
+
readonly validateResponses: boolean;
|
|
48
|
+
};
|
|
37
49
|
} & TExtendedConfig;
|
|
38
50
|
export type Query<TPayload extends JsonValue, TError = KontentSdkError> = {
|
|
39
51
|
readonly schema: z.ZodType<TPayload>;
|
|
@@ -125,6 +137,7 @@ export type ResolvedQueryData<TPayload extends JsonValue, TBody extends HttpRequ
|
|
|
125
137
|
readonly method: HttpMethod;
|
|
126
138
|
readonly abortSignal?: AbortSignal | undefined;
|
|
127
139
|
readonly zodSchema: ZodType<TPayload>;
|
|
140
|
+
readonly responseValidation: SdkConfig["runtimeValidation"];
|
|
128
141
|
} & MetadataMapperConfig<TPayload, TBody, TMeta> & ExtraResponsePropsMapper<TPayload, TBody, TExtra> & ErrorMapper<TError>;
|
|
129
142
|
type MetadataMapperConfig<TPayload extends JsonValue, TBody extends HttpRequestBody, TMeta> = {
|
|
130
143
|
readonly mapMetadata: MetadataMapper<TPayload, TBody, TMeta>;
|