@kontent-ai/core-sdk 12.0.0-preview.4 → 12.0.0-preview.40

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.
Files changed (146) hide show
  1. package/.npmignore +1 -5
  2. package/LICENSE.md +1 -1
  3. package/README.md +117 -12
  4. package/dist/core-sdk-info.d.ts +2 -0
  5. package/dist/core-sdk-info.js +6 -0
  6. package/dist/core-sdk-info.js.map +1 -0
  7. package/dist/devkit/console.utils.d.ts +2 -0
  8. package/dist/devkit/console.utils.js +5 -0
  9. package/dist/devkit/console.utils.js.map +1 -0
  10. package/dist/devkit/environment.utils.d.ts +2 -0
  11. package/dist/devkit/environment.utils.js +12 -0
  12. package/dist/devkit/environment.utils.js.map +1 -0
  13. package/dist/devkit/script.utils.js +3 -3
  14. package/dist/devkit/script.utils.js.map +1 -1
  15. package/dist/{utils → devkit}/sdk-version.utils.js +2 -2
  16. package/dist/devkit/sdk-version.utils.js.map +1 -0
  17. package/dist/devkit_api.d.ts +4 -1
  18. package/dist/devkit_api.js +4 -2
  19. package/dist/devkit_api.js.map +1 -1
  20. package/dist/http/http.adapter.d.ts +1 -1
  21. package/dist/http/http.adapter.js +74 -24
  22. package/dist/http/http.adapter.js.map +1 -1
  23. package/dist/http/http.models.d.ts +49 -37
  24. package/dist/http/http.service.d.ts +2 -2
  25. package/dist/http/http.service.js +305 -220
  26. package/dist/http/http.service.js.map +1 -1
  27. package/dist/models/core.models.d.ts +33 -40
  28. package/dist/models/error.models.d.ts +78 -32
  29. package/dist/models/error.models.js +51 -1
  30. package/dist/models/error.models.js.map +1 -1
  31. package/dist/models/json.models.d.ts +13 -4
  32. package/dist/models/json.models.js +10 -1
  33. package/dist/models/json.models.js.map +1 -1
  34. package/dist/models/utility.types.d.ts +16 -0
  35. package/dist/models/utility.types.js +2 -0
  36. package/dist/models/utility.types.js.map +1 -0
  37. package/dist/public_api.d.ts +22 -11
  38. package/dist/public_api.js +18 -6
  39. package/dist/public_api.js.map +1 -1
  40. package/dist/sdk/queries/fetch-sdk-query.d.ts +4 -0
  41. package/dist/sdk/queries/fetch-sdk-query.js +17 -0
  42. package/dist/sdk/queries/fetch-sdk-query.js.map +1 -0
  43. package/dist/sdk/queries/mutation-sdk-query.d.ts +5 -0
  44. package/dist/sdk/queries/mutation-sdk-query.js +16 -0
  45. package/dist/sdk/queries/mutation-sdk-query.js.map +1 -0
  46. package/dist/sdk/queries/paged-fetch-sdk-query.d.ts +8 -0
  47. package/dist/sdk/queries/paged-fetch-sdk-query.js +101 -0
  48. package/dist/sdk/queries/paged-fetch-sdk-query.js.map +1 -0
  49. package/dist/sdk/resolve-query.d.ts +12 -0
  50. package/dist/sdk/resolve-query.js +172 -0
  51. package/dist/sdk/resolve-query.js.map +1 -0
  52. package/dist/sdk/sdk-config.d.ts +24 -0
  53. package/dist/sdk/sdk-config.js +31 -0
  54. package/dist/sdk/sdk-config.js.map +1 -0
  55. package/dist/sdk/sdk-models.d.ts +118 -40
  56. package/dist/sdk/sdk-utils.d.ts +16 -0
  57. package/dist/sdk/sdk-utils.js +36 -0
  58. package/dist/sdk/sdk-utils.js.map +1 -0
  59. package/dist/sdk/transform/transform-fetch-query.d.ts +11 -0
  60. package/dist/sdk/transform/transform-fetch-query.js +15 -0
  61. package/dist/sdk/transform/transform-fetch-query.js.map +1 -0
  62. package/dist/sdk/transform/transform-mutation-query.d.ts +11 -0
  63. package/dist/sdk/transform/transform-mutation-query.js +15 -0
  64. package/dist/sdk/transform/transform-mutation-query.js.map +1 -0
  65. package/dist/sdk/transform/transform-paged-fetch-query.d.ts +11 -0
  66. package/dist/sdk/transform/transform-paged-fetch-query.js +75 -0
  67. package/dist/sdk/transform/transform-paged-fetch-query.js.map +1 -0
  68. package/dist/sdk/transform/transform-utils.d.ts +23 -0
  69. package/dist/sdk/transform/transform-utils.js +86 -0
  70. package/dist/sdk/transform/transform-utils.js.map +1 -0
  71. package/dist/testkit/poll.utils.d.ts +5 -0
  72. package/dist/testkit/poll.utils.js +15 -0
  73. package/dist/testkit/poll.utils.js.map +1 -0
  74. package/dist/testkit/testkit.models.d.ts +2 -2
  75. package/dist/testkit/testkit.utils.d.ts +27 -0
  76. package/dist/testkit/testkit.utils.js +113 -0
  77. package/dist/testkit/testkit.utils.js.map +1 -0
  78. package/dist/testkit_api.d.ts +3 -1
  79. package/dist/testkit_api.js +3 -2
  80. package/dist/testkit_api.js.map +1 -1
  81. package/dist/utils/abort.utils.d.ts +12 -0
  82. package/dist/utils/abort.utils.js +30 -0
  83. package/dist/utils/abort.utils.js.map +1 -0
  84. package/dist/utils/array.utils.d.ts +1 -0
  85. package/dist/utils/array.utils.js +4 -0
  86. package/dist/utils/array.utils.js.map +1 -0
  87. package/dist/utils/core.utils.d.ts +3 -1
  88. package/dist/utils/core.utils.js +18 -2
  89. package/dist/utils/core.utils.js.map +1 -1
  90. package/dist/utils/error.utils.d.ts +24 -8
  91. package/dist/utils/error.utils.js +47 -9
  92. package/dist/utils/error.utils.js.map +1 -1
  93. package/dist/utils/header.utils.d.ts +7 -2
  94. package/dist/utils/header.utils.js +43 -11
  95. package/dist/utils/header.utils.js.map +1 -1
  96. package/dist/utils/retry.utils.d.ts +17 -12
  97. package/dist/utils/retry.utils.js +125 -80
  98. package/dist/utils/retry.utils.js.map +1 -1
  99. package/dist/utils/schema.utils.d.ts +3 -0
  100. package/dist/utils/schema.utils.js +10 -0
  101. package/dist/utils/schema.utils.js.map +1 -0
  102. package/dist/utils/try-catch.utils.d.ts +15 -0
  103. package/dist/utils/{try.utils.js → try-catch.utils.js} +1 -1
  104. package/dist/utils/try-catch.utils.js.map +1 -0
  105. package/dist/utils/url.utils.d.ts +6 -0
  106. package/dist/utils/url.utils.js +10 -0
  107. package/dist/utils/url.utils.js.map +1 -0
  108. package/package.json +64 -64
  109. package/dist/models/utility.models.d.ts +0 -20
  110. package/dist/models/utility.models.js +0 -2
  111. package/dist/models/utility.models.js.map +0 -1
  112. package/dist/sdk/sdk-queries.d.ts +0 -30
  113. package/dist/sdk/sdk-queries.js +0 -152
  114. package/dist/sdk/sdk-queries.js.map +0 -1
  115. package/dist/sdk-info.d.ts +0 -5
  116. package/dist/sdk-info.js +0 -6
  117. package/dist/sdk-info.js.map +0 -1
  118. package/dist/testkit/test.utils.d.ts +0 -15
  119. package/dist/testkit/test.utils.js +0 -42
  120. package/dist/testkit/test.utils.js.map +0 -1
  121. package/dist/utils/sdk-version.utils.js.map +0 -1
  122. package/dist/utils/try.utils.d.ts +0 -14
  123. package/dist/utils/try.utils.js.map +0 -1
  124. package/lib/devkit/script.utils.ts +0 -12
  125. package/lib/devkit_api.ts +0 -3
  126. package/lib/http/http.adapter.ts +0 -38
  127. package/lib/http/http.models.ts +0 -122
  128. package/lib/http/http.service.ts +0 -320
  129. package/lib/models/core.models.ts +0 -89
  130. package/lib/models/error.models.ts +0 -83
  131. package/lib/models/json.models.ts +0 -9
  132. package/lib/models/utility.models.ts +0 -21
  133. package/lib/public_api.ts +0 -46
  134. package/lib/sdk/sdk-models.ts +0 -86
  135. package/lib/sdk/sdk-queries.ts +0 -232
  136. package/lib/sdk-info.ts +0 -5
  137. package/lib/testkit/test.utils.ts +0 -79
  138. package/lib/testkit/testkit.models.ts +0 -7
  139. package/lib/testkit_api.ts +0 -3
  140. package/lib/utils/core.utils.ts +0 -3
  141. package/lib/utils/error.utils.ts +0 -48
  142. package/lib/utils/header.utils.ts +0 -40
  143. package/lib/utils/retry.utils.ts +0 -156
  144. package/lib/utils/sdk-version.utils.ts +0 -16
  145. package/lib/utils/try.utils.ts +0 -30
  146. /package/dist/{utils → devkit}/sdk-version.utils.d.ts +0 -0
@@ -0,0 +1,172 @@
1
+ import { getDefaultHttpService } from "../http/http.service.js";
2
+ import { createSdkError } from "../utils/error.utils.js";
3
+ import { createAuthorizationHeader, createContinuationHeader, createSdkIdHeader, extractContinuationToken } from "../utils/header.utils.js";
4
+ import { resolveSchema } from "../utils/schema.utils.js";
5
+ import { tryCatch } from "../utils/try-catch.utils.js";
6
+ import { parseResponse } from "./sdk-utils.js";
7
+ export function inspectQuery(data) {
8
+ const { success, data: resolvedUrl, error } = resolveUrl({ url: data.url, baseUrl: data.config.baseUrl, mapError: data.mapError });
9
+ if (!success) {
10
+ return { success: false, error };
11
+ }
12
+ return {
13
+ success: true,
14
+ data: {
15
+ url: resolvedUrl,
16
+ requestHeaders: getCombinedRequestHeaders({
17
+ requestHeaders: data.requestHeaders ?? [],
18
+ continuationToken: data.continuationToken,
19
+ authorizationApiKey: data.authorizationApiKey,
20
+ sdkInfo: data.sdkInfo,
21
+ }),
22
+ body: data.body,
23
+ method: data.method,
24
+ },
25
+ };
26
+ }
27
+ export async function resolveQuery(data) {
28
+ const { success, data: resolvedQueryData, error } = prepareQueryData(data);
29
+ if (!success) {
30
+ return { success: false, error };
31
+ }
32
+ return await executeQuery(resolvedQueryData);
33
+ }
34
+ function prepareQueryData(data) {
35
+ const { success: inspectionSuccess, data: inspectionData, error: inspectionError } = inspectQuery(data);
36
+ if (!inspectionSuccess) {
37
+ return { success: false, error: inspectionError };
38
+ }
39
+ return {
40
+ success: true,
41
+ data: {
42
+ requestHeaders: inspectionData.requestHeaders,
43
+ url: inspectionData.url,
44
+ httpService: getHttpService(data.config),
45
+ body: data.body,
46
+ method: data.method,
47
+ abortSignal: data.abortSignal,
48
+ schema: data.schema,
49
+ responseValidation: data.config.runtimeValidation,
50
+ mapError: data.mapError,
51
+ mapMetadata: data.mapMetadata,
52
+ mapExtraResponseProps: data.mapExtraResponseProps,
53
+ },
54
+ };
55
+ }
56
+ async function executeQuery({ url, requestHeaders, httpService, body, method, abortSignal, schema, responseValidation, mapError, mapMetadata, mapExtraResponseProps, }) {
57
+ const { success, response, error } = await httpService.request({
58
+ body,
59
+ url,
60
+ method,
61
+ abortSignal,
62
+ requestHeaders,
63
+ });
64
+ if (!success) {
65
+ return { success: false, error: mapError(error) };
66
+ }
67
+ if (responseValidation?.validateResponses) {
68
+ const resolvedSchema = await resolveSchema(schema);
69
+ if (resolvedSchema) {
70
+ const validationError = await parseResponse({
71
+ url: response.adapterResponse.url,
72
+ payload: response.payload,
73
+ schema: resolvedSchema,
74
+ });
75
+ if (validationError) {
76
+ return { success: false, error: mapError(validationError.error) };
77
+ }
78
+ }
79
+ }
80
+ const continuationTokenFromResponse = extractContinuationToken(response.adapterResponse.responseHeaders);
81
+ return {
82
+ success: true,
83
+ response: {
84
+ ...mapExtraResponseProps(response),
85
+ payload: response.payload,
86
+ meta: {
87
+ ...mapMetadata(response, { continuationToken: continuationTokenFromResponse }),
88
+ url: response.adapterResponse.url,
89
+ responseHeaders: response.adapterResponse.responseHeaders,
90
+ status: response.adapterResponse.status,
91
+ continuationToken: continuationTokenFromResponse,
92
+ },
93
+ },
94
+ };
95
+ }
96
+ export function resolveUrl({ url, baseUrl, mapError, }) {
97
+ const returnWithBaseUrl = (parsedUrl) => {
98
+ if (!baseUrl) {
99
+ return {
100
+ success: true,
101
+ data: parsedUrl,
102
+ };
103
+ }
104
+ const { success, data: parsedUrlWithBaseUrl, error } = setBaseUrl(parsedUrl, baseUrl);
105
+ if (!success) {
106
+ return {
107
+ success: false,
108
+ error: mapError(error),
109
+ };
110
+ }
111
+ return {
112
+ success: true,
113
+ data: parsedUrlWithBaseUrl,
114
+ };
115
+ };
116
+ if (typeof url === "string") {
117
+ const { success, data: parsedUrl, error } = tryCatch(() => new URL(url));
118
+ if (!success) {
119
+ return {
120
+ success: false,
121
+ error: mapError(createInvalidUrlError(url, error)),
122
+ };
123
+ }
124
+ return returnWithBaseUrl(parsedUrl);
125
+ }
126
+ return returnWithBaseUrl(url);
127
+ }
128
+ function createInvalidUrlError(invalidUrl, error) {
129
+ return createSdkError({
130
+ baseErrorData: {
131
+ message: `Failed to parse url '${invalidUrl}'`,
132
+ url: invalidUrl,
133
+ retryStrategyOptions: undefined,
134
+ retryAttempt: undefined,
135
+ },
136
+ details: {
137
+ reason: "invalidUrl",
138
+ originalError: error,
139
+ },
140
+ });
141
+ }
142
+ function setBaseUrl(url, baseUrl) {
143
+ const clonedUrl = new URL(url.toString());
144
+ const baseUrlString = `${baseUrl.protocol}://${baseUrl.host}`;
145
+ // Direct host assignment is a silent no-op for invalid values per the URL spec,
146
+ // so validate by constructing a full URL first.
147
+ const { success, data: parsedBaseUrl, error } = tryCatch(() => new URL(baseUrlString));
148
+ if (!success) {
149
+ return {
150
+ success: false,
151
+ error: createInvalidUrlError(baseUrlString, error),
152
+ };
153
+ }
154
+ clonedUrl.protocol = parsedBaseUrl.protocol;
155
+ clonedUrl.host = parsedBaseUrl.host;
156
+ return {
157
+ success: true,
158
+ data: clonedUrl,
159
+ };
160
+ }
161
+ function getHttpService(config) {
162
+ return config.httpService ?? getDefaultHttpService();
163
+ }
164
+ function getCombinedRequestHeaders({ requestHeaders, continuationToken, authorizationApiKey, sdkInfo, }) {
165
+ return [
166
+ createSdkIdHeader(sdkInfo),
167
+ ...requestHeaders.filter((header) => header.name !== "X-KC-SDKID"),
168
+ ...(continuationToken ? [createContinuationHeader(continuationToken)] : []),
169
+ ...(authorizationApiKey ? [createAuthorizationHeader(authorizationApiKey)] : []),
170
+ ];
171
+ }
172
+ //# sourceMappingURL=resolve-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-query.js","sourceRoot":"","sources":["../../lib/sdk/resolve-query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import * as z from "zod/mini";
2
+ export declare const nilUuid = "00000000-0000-0000-0000-000000000000";
3
+ export declare const kontentUuidSchema: z.ZodMiniUnion<readonly [z.ZodMiniUUID, z.ZodMiniLiteral<"00000000-0000-0000-0000-000000000000">]>;
4
+ export declare const strictCodenameSchema: z.ZodMiniString<string>;
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.ZodMiniType<"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.ZodMiniType<TCodenames>;
@@ -0,0 +1,31 @@
1
+ import * as z from "zod/mini";
2
+ export const nilUuid = "00000000-0000-0000-0000-000000000000";
3
+ export const kontentUuidSchema = z.union([z.uuid({ version: "v4" }), z.literal(nilUuid)]);
4
+ export const strictCodenameSchema = z.string().check(z.regex(/^[a-z][a-z0-9_]*$/, {
5
+ error: "Codename must start with a lowercase letter and contain only lowercase letters, digits, and underscores",
6
+ }));
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.ZodMiniType<"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
+ });
30
+ }
31
+ //# sourceMappingURL=sdk-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-config.js","sourceRoot":"","sources":["../../lib/sdk/sdk-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAE9B,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,CACnD,CAAC,CAAC,KAAK,CAAC,mBAAmB,EAAE;IAC5B,KAAK,EAAE,yGAAyG;CAChH,CAAC,CACF,CAAC;AAEF;;;;;;;;;;;;;;;;;;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"}
@@ -2,18 +2,23 @@
2
2
  * Shared query models/types intended to be reused across SDKs (e.g. Sync, Delivery, Management)
3
3
  * to keep common code and behavior consistent.
4
4
  */
5
- import type { AdapterResponse, HttpResponse, HttpService } from "../http/http.models.js";
6
- import type { CoreSdkError } from "../models/error.models.js";
5
+ import type { AdapterPayload, AdapterResponse, HttpRequestBody, HttpResponse, HttpService, PagingConfig } from "../http/http.models.js";
6
+ import type { Header, HttpMethod, SdkInfo } from "../models/core.models.js";
7
+ import type { KontentSdkError } from "../models/error.models.js";
7
8
  import type { JsonValue } from "../models/json.models.js";
8
- import type { Prettify } from "../models/utility.models.js";
9
- export type SdkResponseMeta<TExtraMetadata = unknown> = Pick<AdapterResponse, "status" | "responseHeaders"> & {
10
- readonly continuationToken?: string;
11
- } & TExtraMetadata;
12
- export type SdkResponse<TPayload, TExtraMetadata = unknown> = {
9
+ import type { PickStringLiteral } from "../models/utility.types.js";
10
+ import type { SchemaInput } from "../utils/schema.utils.js";
11
+ import type { Failure, Success, TryCatchResult } from "../utils/try-catch.utils.js";
12
+ export type QueryResponseMeta<TMeta> = Pick<AdapterResponse<AdapterPayload>, "status" | "responseHeaders" | "url"> & TMeta;
13
+ export type QueryResponse<TPayload extends JsonValue, TMeta = unknown, TExtra = unknown> = {
13
14
  readonly payload: TPayload;
14
- readonly meta: SdkResponseMeta<TExtraMetadata>;
15
+ readonly meta: QueryResponseMeta<TMeta>;
16
+ } & TExtra;
17
+ export type BaseUrl = {
18
+ readonly protocol: "https" | "http";
19
+ readonly host: string;
15
20
  };
16
- export type SdkConfig = {
21
+ export type SdkConfig<TExtendedConfig = unknown> = {
17
22
  /**
18
23
  * The HTTP service to use for the request. If not provided, the default HTTP service will be used.
19
24
  *
@@ -27,56 +32,129 @@ export type SdkConfig = {
27
32
  *
28
33
  * If provided, it will override the default base URL based on selected API mode.
29
34
  */
30
- readonly baseUrl?: string;
35
+ readonly baseUrl?: BaseUrl;
31
36
  /**
32
- * Configuration for response validation.
37
+ * Configuration for runtime validation against expected schema.
33
38
  */
34
- readonly responseValidation?: {
39
+ readonly runtimeValidation?: {
35
40
  /**
36
- * When enabled, the response payload will be validated against the expected Zod schema from which the types
41
+ * When enabled, the response data will be validated against the expected Zod schema from which the types
37
42
  * this library are based on. This ensures that you are working with the correct data types.
38
43
  *
39
44
  * @default false
40
45
  */
41
- readonly enable: boolean;
46
+ readonly validateResponses: boolean;
42
47
  };
48
+ } & TExtendedConfig;
49
+ export type Query<TError = KontentSdkError> = {
50
+ readonly inspect: () => TryCatchResult<QueryInspection, TError>;
43
51
  };
44
- export type Query<TPayload, TExtraData = unknown> = {
45
- toUrl(): string;
46
- toPromise(): Promise<QueryResult<SdkResponse<TPayload, TExtraData>>>;
52
+ export type FetchQuery<TPayload extends JsonValue, TError = KontentSdkError, TMeta = unknown, TExtra = unknown> = Query<TError> & {
53
+ fetchSafe(): Promise<SafeQueryResult<QueryResponse<TPayload, TMeta, TExtra>, TError>>;
54
+ fetch(): Promise<QueryResponse<TPayload, TMeta, TExtra>>;
47
55
  };
48
- export type PagingQuery<TPayload, TExtraData = unknown> = Query<TPayload, TExtraData> & {
49
- toAllPromise(): Promise<PagingQueryResult<SdkResponse<TPayload, TExtraData>>>;
56
+ export type PagedFetchQuery<TPayload extends JsonValue, TError = KontentSdkError, TMeta = unknown, TExtra = unknown, TPagingExtra = unknown> = Query<TError> & {
57
+ fetchPageSafe(): Promise<SafeQueryResult<QueryResponse<TPayload, TMeta, TExtra>, TError>>;
58
+ fetchPage(): Promise<QueryResponse<TPayload, TMeta, TExtra>>;
59
+ fetchAllPagesSafe(config?: PagingConfig): Promise<SafePagingQueryResult<QueryResponse<TPayload, TMeta, TExtra>, TError, TPagingExtra>>;
60
+ fetchAllPages(config?: PagingConfig): Promise<PagingQueryResponse<QueryResponse<TPayload, TMeta, TExtra>, TPagingExtra>>;
61
+ pagesSafe(config?: PagingConfig): AsyncGenerator<SafeQueryResult<QueryResponse<TPayload, TMeta, TExtra>, TError>>;
62
+ pages(config?: PagingConfig): AsyncGenerator<QueryResponse<TPayload, TMeta, TExtra>>;
50
63
  };
51
- export type SuccessfulHttpResponse<TPayload extends JsonValue, TBodyData extends JsonValue> = Prettify<Extract<HttpResponse<TPayload, TBodyData>, {
52
- readonly success: true;
53
- }>["response"]>;
54
- export type ResultOfSuccessfulQuery<TQuery extends Query<unknown>> = Extract<Awaited<ReturnType<TQuery["toPromise"]>>, {
64
+ export type MutationQuery<TPayload extends JsonValue, TError = KontentSdkError, TMeta = unknown, TExtra = unknown> = Query<TError> & {
65
+ executeSafe(): Promise<SafeQueryResult<QueryResponse<TPayload, TMeta, TExtra>, TError>>;
66
+ execute(): Promise<QueryResponse<TPayload, TMeta, TExtra>>;
67
+ };
68
+ export type PendingNextPageState = {
69
+ readonly pageSource: "continuationToken";
70
+ readonly hasNextPage: true;
71
+ readonly continuationToken: string;
72
+ readonly nextPageUrl?: never;
73
+ } | {
74
+ readonly pageSource: "nextPageUrl";
75
+ readonly hasNextPage: true;
76
+ readonly continuationToken?: never;
77
+ readonly nextPageUrl: string;
78
+ } | {
79
+ readonly pageSource: "firstRequest";
80
+ readonly hasNextPage: true;
81
+ readonly continuationToken?: never;
82
+ readonly nextPageUrl?: never;
83
+ };
84
+ export type SuccessfulHttpResponse<TPayload extends AdapterPayload, TBody extends HttpRequestBody> = Extract<HttpResponse<TPayload, TBody>, {
55
85
  readonly success: true;
56
86
  }>["response"];
57
87
  /**
58
- * A nomadic result type that represents a success or failure of an operation.
88
+ * Result type that represents a success or failure of an operation.
59
89
  *
60
90
  * Ensures that consumers of this library handle both success and failure cases.
61
91
  */
62
- export type QueryResult<TResponse> = (Success & {
63
- readonly response: TResponse;
64
- }) | (Failure & {
92
+ export type SafeQueryResult<TPayload, TError = KontentSdkError> = Success<{
93
+ readonly response: TPayload;
94
+ }> | Failure<{
65
95
  readonly response?: never;
66
- });
67
- export type PagingQueryResult<TResponse> = (Success & {
68
- readonly responses: TResponse[];
69
- readonly lastContinuationToken: string;
70
- }) | (Failure & {
96
+ }, TError>;
97
+ export type SafePagingQueryResult<TPayload, TError = KontentSdkError, TExtra = unknown> = Success<{
98
+ readonly responses: readonly TPayload[];
99
+ } & TExtra> | Failure<{
71
100
  readonly responses?: never;
72
- readonly lastContinuationToken?: never;
73
- });
74
- type Success = {
75
- readonly success: true;
76
- readonly error?: never;
101
+ } & {
102
+ [K in keyof TExtra]: never;
103
+ }, TError>;
104
+ export type PagingQueryResponse<TPayload, TExtra = unknown> = {
105
+ readonly responses: readonly TPayload[];
106
+ } & TExtra;
107
+ export type ResolveQueryResult<TPayload extends JsonValue, TError = KontentSdkError, TMeta = unknown, TExtra = unknown> = Promise<SafeQueryResult<QueryResponse<TPayload, TMeta, TExtra>, TError>>;
108
+ export type FetchQueryRequest<TPayload extends JsonValue, TError = KontentSdkError, TMeta = unknown, TExtra = unknown> = Pick<QueryInputData<TPayload, null, TMeta, TExtra, TError>, "config" | "schema" | "sdkInfo" | "mapMetadata" | "abortSignal" | "mapError" | "mapExtraResponseProps"> & RequestDataWithoutBody;
109
+ export type MutationQueryRequest<TPayload extends JsonValue, TBody extends HttpRequestBody, TError = KontentSdkError, TMeta = unknown, TExtra = unknown> = Pick<QueryInputData<TPayload, TBody, TMeta, TExtra, TError>, "config" | "schema" | "sdkInfo" | "mapMetadata" | "abortSignal" | "mapError" | "mapExtraResponseProps"> & {
110
+ readonly method: MutationHttpMethod;
111
+ } & RequestData<TBody>;
112
+ export type QueryInputData<TPayload extends JsonValue, TBody extends HttpRequestBody, TMeta, TExtra, TError> = {
113
+ readonly method: HttpMethod;
114
+ readonly config: SdkConfig;
115
+ readonly schema: SchemaInput<TPayload>;
116
+ readonly sdkInfo: SdkInfo;
117
+ readonly abortSignal?: AbortSignal | undefined;
118
+ readonly url: string | URL;
119
+ readonly body: TBody;
120
+ readonly requestHeaders?: readonly Header[];
121
+ readonly continuationToken?: string | undefined;
122
+ readonly authorizationApiKey?: string | undefined;
123
+ } & MetadataMapperConfig<TPayload, TBody, TMeta> & ExtraResponsePropsMapper<TPayload, TBody, TExtra> & ErrorMapper<TError>;
124
+ export type PagingQueryInputData<TPayload extends JsonValue, TBody extends HttpRequestBody, TMeta, TExtra, TPagingExtra, TError> = QueryInputData<TPayload, TBody, TMeta, TExtra, TError> & {
125
+ readonly mapPagingExtraResponseProps: (responses: readonly QueryResponse<TPayload, TMeta, TExtra>[]) => TPagingExtra;
126
+ };
127
+ export type QueryInspection = Pick<ResolvedQueryData<JsonValue, HttpRequestBody, unknown, unknown, unknown>, "url" | "requestHeaders" | "body" | "method">;
128
+ export type ResolvedQueryData<TPayload extends JsonValue, TBody extends HttpRequestBody, TMeta, TExtra, TError> = {
129
+ readonly url: URL;
130
+ readonly requestHeaders: readonly Header[];
131
+ readonly httpService: HttpService;
132
+ readonly body: TBody;
133
+ readonly method: HttpMethod;
134
+ readonly abortSignal?: AbortSignal | undefined;
135
+ readonly schema: SchemaInput<TPayload>;
136
+ readonly responseValidation: SdkConfig["runtimeValidation"];
137
+ } & MetadataMapperConfig<TPayload, TBody, TMeta> & ExtraResponsePropsMapper<TPayload, TBody, TExtra> & ErrorMapper<TError>;
138
+ type MetadataMapperConfig<TPayload extends JsonValue, TBody extends HttpRequestBody, TMeta> = {
139
+ readonly mapMetadata: MetadataMapper<TPayload, TBody, TMeta>;
140
+ };
141
+ type ExtraResponsePropsMapper<TPayload extends JsonValue, TBody extends HttpRequestBody, TExtra> = {
142
+ readonly mapExtraResponseProps: (response: HttpResponse<TPayload, TBody>["response"]) => TExtra;
143
+ };
144
+ type ErrorMapper<TError> = {
145
+ readonly mapError: (error: KontentSdkError) => TError;
146
+ };
147
+ type MetadataMapper<TPayload extends JsonValue, TBody extends HttpRequestBody, TMeta> = (response: SuccessfulHttpResponse<TPayload, TBody>, data: MetadataContext) => TMeta;
148
+ type MetadataContext = {
149
+ readonly continuationToken: string | undefined;
77
150
  };
78
- type Failure = {
79
- readonly success: false;
80
- readonly error: CoreSdkError;
151
+ type RequestData<TBody extends HttpRequestBody> = {
152
+ readonly url: string | URL;
153
+ readonly body: TBody;
154
+ readonly requestHeaders?: readonly Header[];
155
+ readonly continuationToken?: string | undefined;
156
+ readonly authorizationApiKey?: string | undefined;
81
157
  };
158
+ type MutationHttpMethod = PickStringLiteral<HttpMethod, "POST" | "PUT" | "PATCH" | "DELETE">;
159
+ type RequestDataWithoutBody = Omit<RequestData<null>, "body">;
82
160
  export {};
@@ -0,0 +1,16 @@
1
+ import type { ZodMiniType } from "zod/mini";
2
+ import type { KontentSdkError } from "../models/error.models.js";
3
+ import type { JsonValue } from "../models/json.models.js";
4
+ import type { Failure } from "../utils/try-catch.utils.js";
5
+ import type { PagedFetchQuery, Query } from "./sdk-models.js";
6
+ /**
7
+ * Checks if a query is a paging query.
8
+ */
9
+ export declare function isPagingQuery<TPayload extends JsonValue, TError, TMeta>(query: Query<TError> | PagedFetchQuery<TPayload, TError, TMeta>): query is PagedFetchQuery<TPayload, TError, TMeta>;
10
+ export declare function parseResponse<TPayload extends JsonValue>({ url, payload, schema }: {
11
+ readonly url: URL;
12
+ readonly payload: TPayload;
13
+ readonly schema: ZodMiniType<TPayload>;
14
+ }): Promise<Failure<{
15
+ readonly response?: never;
16
+ }, KontentSdkError> | undefined>;
@@ -0,0 +1,36 @@
1
+ import { createSdkError } from "../utils/error.utils.js";
2
+ /**
3
+ * Checks if a query is a paging query.
4
+ */
5
+ export function isPagingQuery(query) {
6
+ return ("fetchPage" in query &&
7
+ "fetchPageSafe" in query &&
8
+ "fetchAllPages" in query &&
9
+ "fetchAllPagesSafe" in query &&
10
+ "pages" in query &&
11
+ "pagesSafe" in query);
12
+ }
13
+ export async function parseResponse({ url, payload, schema, }) {
14
+ const { success, error } = await schema.safeParseAsync(payload);
15
+ if (!success) {
16
+ return {
17
+ success: false,
18
+ error: createSdkError({
19
+ baseErrorData: {
20
+ message: `Failed to parse response payload for '${url.toString()}'`,
21
+ url,
22
+ retryStrategyOptions: undefined,
23
+ retryAttempt: undefined,
24
+ },
25
+ details: {
26
+ reason: "parsingFailed",
27
+ zodError: error,
28
+ payload,
29
+ url,
30
+ },
31
+ }),
32
+ };
33
+ }
34
+ return undefined;
35
+ }
36
+ //# sourceMappingURL=sdk-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-utils.js","sourceRoot":"","sources":["../../lib/sdk/sdk-utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAIzD;;GAEG;AACH,MAAM,UAAU,aAAa,CAC5B,KAA+D;IAE/D,OAAO,CACN,WAAW,IAAI,KAAK;QACpB,eAAe,IAAI,KAAK;QACxB,eAAe,IAAI,KAAK;QACxB,mBAAmB,IAAI,KAAK;QAC5B,OAAO,IAAI,KAAK;QAChB,WAAW,IAAI,KAAK,CACpB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAA6B,EAC/D,GAAG,EACH,OAAO,EACP,MAAM,GAKN;IACA,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAEhE,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO;YACN,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,cAAc,CAAC;gBACrB,aAAa,EAAE;oBACd,OAAO,EAAE,yCAAyC,GAAG,CAAC,QAAQ,EAAE,GAAG;oBACnE,GAAG;oBACH,oBAAoB,EAAE,SAAS;oBAC/B,YAAY,EAAE,SAAS;iBACvB;gBACD,OAAO,EAAE;oBACR,MAAM,EAAE,eAAe;oBACvB,QAAQ,EAAE,KAAK;oBACf,OAAO;oBACP,GAAG;iBACH;aACD,CAAC;SACF,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { KontentSdkError } from "../../models/error.models.js";
2
+ import type { JsonValue } from "../../models/json.models.js";
3
+ import type { SchemaInput } from "../../utils/schema.utils.js";
4
+ import type { FetchQuery, QueryResponse, SdkConfig } from "../sdk-models.js";
5
+ export declare function transformFetchQuery<TPayload extends JsonValue, TTransformedPayload extends TPayload, TError extends KontentSdkError, TMeta, TExtra>({ query, transform, transformSchema, mapError, config }: {
6
+ readonly config: Pick<SdkConfig, "runtimeValidation">;
7
+ readonly query: FetchQuery<TPayload, TError, TMeta, TExtra>;
8
+ readonly transform: (response: QueryResponse<TPayload, TMeta, TExtra>) => QueryResponse<TTransformedPayload, TMeta, TExtra>;
9
+ readonly transformSchema: SchemaInput<TTransformedPayload>;
10
+ readonly mapError: (error: KontentSdkError) => TError;
11
+ }): FetchQuery<TTransformedPayload, TError, TMeta, TExtra>;
@@ -0,0 +1,15 @@
1
+ import { applyTransformOrThrow, applyTransformSafely, createTransformResponse } from "./transform-utils.js";
2
+ export function transformFetchQuery({ query, transform, transformSchema, mapError, config, }) {
3
+ const transformResponse = createTransformResponse({
4
+ config,
5
+ transform,
6
+ transformSchema,
7
+ mapError,
8
+ });
9
+ return {
10
+ fetch: async () => applyTransformOrThrow(await query.fetch(), transformResponse),
11
+ fetchSafe: async () => applyTransformSafely(await query.fetchSafe(), transformResponse),
12
+ inspect: query.inspect,
13
+ };
14
+ }
15
+ //# sourceMappingURL=transform-fetch-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform-fetch-query.js","sourceRoot":"","sources":["../../../lib/sdk/transform/transform-fetch-query.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE5G,MAAM,UAAU,mBAAmB,CAMjC,EACD,KAAK,EACL,SAAS,EACT,eAAe,EACf,QAAQ,EACR,MAAM,GAON;IACA,MAAM,iBAAiB,GAAG,uBAAuB,CAAuD;QACvG,MAAM;QACN,SAAS;QACT,eAAe;QACf,QAAQ;KACR,CAAC,CAAC;IAEH,OAAO;QACN,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC,MAAM,KAAK,CAAC,KAAK,EAAE,EAAE,iBAAiB,CAAC;QAChF,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,iBAAiB,CAAC;QACvF,OAAO,EAAE,KAAK,CAAC,OAAO;KACtB,CAAC;AACH,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { KontentSdkError } from "../../models/error.models.js";
2
+ import type { JsonValue } from "../../models/json.models.js";
3
+ import type { SchemaInput } from "../../utils/schema.utils.js";
4
+ import type { MutationQuery, QueryResponse, SdkConfig } from "../sdk-models.js";
5
+ export declare function transformMutationQuery<TPayload extends JsonValue, TTransformedPayload extends TPayload, TError extends KontentSdkError, TMeta, TExtra>({ query, transform, transformSchema, mapError, config }: {
6
+ readonly config: Pick<SdkConfig, "runtimeValidation">;
7
+ readonly query: MutationQuery<TPayload, TError, TMeta, TExtra>;
8
+ readonly transform: (response: QueryResponse<TPayload, TMeta, TExtra>) => QueryResponse<TTransformedPayload, TMeta, TExtra>;
9
+ readonly transformSchema: SchemaInput<TTransformedPayload>;
10
+ readonly mapError: (error: KontentSdkError) => TError;
11
+ }): MutationQuery<TTransformedPayload, TError, TMeta, TExtra>;
@@ -0,0 +1,15 @@
1
+ import { applyTransformOrThrow, applyTransformSafely, createTransformResponse } from "./transform-utils.js";
2
+ export function transformMutationQuery({ query, transform, transformSchema, mapError, config, }) {
3
+ const transformResponse = createTransformResponse({
4
+ config,
5
+ transform,
6
+ transformSchema,
7
+ mapError,
8
+ });
9
+ return {
10
+ execute: async () => applyTransformOrThrow(await query.execute(), transformResponse),
11
+ executeSafe: async () => applyTransformSafely(await query.executeSafe(), transformResponse),
12
+ inspect: query.inspect,
13
+ };
14
+ }
15
+ //# sourceMappingURL=transform-mutation-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform-mutation-query.js","sourceRoot":"","sources":["../../../lib/sdk/transform/transform-mutation-query.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE5G,MAAM,UAAU,sBAAsB,CAMpC,EACD,KAAK,EACL,SAAS,EACT,eAAe,EACf,QAAQ,EACR,MAAM,GAON;IACA,MAAM,iBAAiB,GAAG,uBAAuB,CAAuD;QACvG,MAAM;QACN,SAAS;QACT,eAAe;QACf,QAAQ;KACR,CAAC,CAAC;IAEH,OAAO;QACN,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,iBAAiB,CAAC;QACpF,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,EAAE,iBAAiB,CAAC;QAC3F,OAAO,EAAE,KAAK,CAAC,OAAO;KACtB,CAAC;AACH,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { KontentSdkError } from "../../models/error.models.js";
2
+ import type { JsonValue } from "../../models/json.models.js";
3
+ import type { SchemaInput } from "../../utils/schema.utils.js";
4
+ import type { PagedFetchQuery, QueryResponse, SdkConfig } from "../sdk-models.js";
5
+ export declare function transformPagedFetchQuery<TPayload extends JsonValue, TTransformedPayload extends TPayload, TError extends KontentSdkError, TMeta, TExtra, TPagingExtra>({ query, transform, transformSchema, mapError, config }: {
6
+ readonly config: Pick<SdkConfig, "runtimeValidation">;
7
+ readonly query: PagedFetchQuery<TPayload, TError, TMeta, TExtra, TPagingExtra>;
8
+ readonly transform: (responses: readonly QueryResponse<TPayload, TMeta, TExtra>[]) => readonly QueryResponse<TTransformedPayload, TMeta, TExtra>[];
9
+ readonly transformSchema: SchemaInput<TTransformedPayload>;
10
+ readonly mapError: (error: KontentSdkError) => TError;
11
+ }): PagedFetchQuery<TTransformedPayload, TError, TMeta, TExtra, TPagingExtra>;