@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
@@ -1,9 +1,9 @@
1
- import type { CoreSdkError } from "./error.models.js";
2
- import type { PickStringLiteral } from "./utility.models.js";
1
+ import type { ErrorDetailsFor, KontentSdkError } from "./error.models.js";
2
+ import type { LiteralUnion, PickStringLiteral } from "./utility.types.js";
3
3
  /**
4
4
  * SDK info for identification of the SDK
5
5
  */
6
- export type SDKInfo = {
6
+ export type SdkInfo = {
7
7
  /**
8
8
  * The name of the SDK.
9
9
  */
@@ -17,58 +17,51 @@ export type SDKInfo = {
17
17
  */
18
18
  readonly host: LiteralUnion<"npmjs.com">;
19
19
  };
20
- export type CommonHeaderNames = "Retry-After" | "X-KC-SDKID" | "Authorization" | "Content-Type" | "Content-Length" | "X-Continuation";
21
- export type ContinuationHeaderName = PickStringLiteral<CommonHeaderNames, "X-Continuation">;
20
+ export type KnownHeaderName = "Retry-After" | "X-KC-SDKID" | "Authorization" | "Content-Type" | "Content-Length" | "X-Continuation";
21
+ export type ContinuationTokenHeaderName = PickStringLiteral<KnownHeaderName, "X-Continuation">;
22
22
  export type Header = {
23
- readonly name: string;
23
+ readonly name: LiteralUnion<KnownHeaderName>;
24
24
  readonly value: string;
25
25
  };
26
26
  export type HttpMethod = "GET" | "POST" | "PUT" | "DELETE" | "PATCH";
27
- export type KontentValidationError = {
28
- readonly message: string;
29
- readonly path?: string;
30
- readonly line?: number;
31
- readonly position?: number;
32
- };
33
- export type KontentErrorResponseData = {
34
- readonly message: string;
35
- readonly requestId?: string;
36
- readonly error_code?: number;
37
- readonly validation_errors?: readonly KontentValidationError[];
38
- };
39
27
  export type RetryStrategyOptions = {
40
28
  /**
41
29
  * Maximum number of retry attempts.
42
30
  *
43
- * If not provided, the default implementation will be used.
31
+ * If not provided, the default number of retries defined within the SDK will be used.
44
32
  */
45
33
  readonly maxRetries?: number;
46
34
  /**
47
- * Function to determine if the error should be retried.
35
+ * Determines whether an adapter error should be retried.
48
36
  *
49
- * If not provided, the default implementation will be used.
50
- */
51
- readonly canRetryError?: (error: CoreSdkError) => boolean;
52
- /**
53
- * Function to determine the delay between requests in milliseconds.
37
+ * Adapter errors occur when the HTTP adapter fails to execute the request
38
+ * (e.g. network failures, connection timeouts, or other transport-level issues).
39
+ *
40
+ * This callback is evaluated only after SDK-defined retry rules are checked.
41
+ * The SDK handles the following cases directly:
42
+ *
43
+ * - Retried automatically:
44
+ * - HTTP 429 (rate limit exceeded)
45
+ *
46
+ * - Not retried automatically:
47
+ * - Invalid request body (`invalidBody`)
48
+ * - Invalid URL (`invalidUrl`)
49
+ * - 404 Not Found (`notFound`)
50
+ * - 401 Unauthorized (`unauthorized`)
51
+ * - API business/validation error response (`kontentErrorResponse`)
54
52
  *
55
- * If not provided, the default implementation will be used.
56
53
  */
57
- readonly getDelayBetweenRetriesMs?: (error: CoreSdkError) => number;
54
+ readonly canRetryAdapterError?: (error: KontentSdkError<ErrorDetailsFor<"adapterError">>) => boolean;
58
55
  /**
59
- * Whether to log the retry attempt.
56
+ * Controls logging for retry attempts.
60
57
  *
61
- * If false, the retry attempt will not be logged.
62
- * If undefined, the default implementation will be used.
63
- * Otherwise, the function will be called with the retry attempt and url.
58
+ * If undefined, no retry logging occurs (default behavior).
59
+ * If set to `'logToConsole'`, retries are logged to the console.
60
+ * If a function is provided, it is called with the retry attempt and url.
64
61
  */
65
- readonly logRetryAttempt?: false | ((retryAttempt: number, url: string) => void);
62
+ readonly logRetryAttempt?: "logToConsole" | ((retryAttempt: number, url: string) => void);
63
+ };
64
+ export type ResolvedRetryStrategyOptions = Pick<Required<RetryStrategyOptions>, "maxRetries" | "canRetryAdapterError"> & {
65
+ readonly logRetryAttempt: undefined | ((retryAttempt: number, url: string) => void);
66
+ readonly getDelayBetweenRetriesMs: (error: KontentSdkError) => number;
66
67
  };
67
- /**
68
- * Adds intellisense for string union type, but also allows any string
69
- */
70
- export type LiteralUnion<T extends string | undefined> = T | (string & NonNullable<unknown>);
71
- /**
72
- * Adds intellisense for number union type, but also allows any number
73
- */
74
- export type LiteralUnionNumber<T extends number | undefined> = T | (number & NonNullable<unknown>);
@@ -1,30 +1,33 @@
1
- import type { ZodError } from "zod";
2
- import type { AdapterResponse, HttpServiceStatus } from "../http/http.models.js";
3
- import type { SuccessfulHttpResponse } from "../sdk/sdk-models.js";
4
- import type { KontentErrorResponseData, RetryStrategyOptions } from "./core.models.js";
1
+ import * as z from "zod/mini";
2
+ import type { AdapterPayload, AdapterResponse } from "../http/http.models.js";
3
+ import type { ResolvedRetryStrategyOptions } from "./core.models.js";
5
4
  import type { JsonValue } from "./json.models.js";
6
- export type ErrorReason = "invalidResponse" | "invalidUrl" | "unknown" | "invalidBody" | "notFound" | "validationFailed" | "noResponses";
7
- export type CoreSdkErrorDetails<TReason extends ErrorReason = ErrorReason> = (Details<"invalidResponse", {
8
- readonly kontentErrorResponse: KontentErrorResponseData | undefined;
9
- } & Pick<AdapterResponse<HttpServiceStatus>, "isValidResponse" | "responseHeaders" | "status" | "statusText">> | Details<"notFound", {
10
- readonly kontentErrorResponse: KontentErrorResponseData | undefined;
11
- } & Pick<AdapterResponse<404>, "isValidResponse" | "responseHeaders" | "status" | "statusText">> | Details<"invalidBody", {
12
- readonly originalError: unknown;
13
- }> | Details<"invalidUrl", {
14
- readonly originalError: unknown;
15
- }> | Details<"unknown", {
16
- readonly originalError: unknown;
17
- }> | Details<"validationFailed", {
18
- readonly reason: "validationFailed";
19
- readonly zodError: ZodError;
20
- readonly response: SuccessfulHttpResponse<JsonValue, JsonValue>;
21
- readonly url: string;
22
- }> | Details<"noResponses", {
23
- readonly url: string;
24
- }>) & {
25
- readonly reason: TReason;
26
- };
27
- export type CoreSdkError<TReason extends ErrorReason = ErrorReason> = {
5
+ export declare const validationErrorSchema: z.ZodMiniObject<{
6
+ message: z.ZodMiniString<string>;
7
+ path: z.ZodMiniOptional<z.ZodMiniString<string>>;
8
+ line: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
9
+ position: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
10
+ }, z.core.$strip>;
11
+ export type ValidationError = z.infer<typeof validationErrorSchema>;
12
+ export declare const errorResponseDataSchema: z.ZodMiniObject<{
13
+ message: z.ZodMiniString<string>;
14
+ request_id: z.ZodMiniString<string>;
15
+ error_code: z.ZodMiniNumber<number>;
16
+ validation_errors: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
17
+ message: z.ZodMiniString<string>;
18
+ path: z.ZodMiniOptional<z.ZodMiniString<string>>;
19
+ line: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
20
+ position: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
21
+ }, z.core.$strip>>>;
22
+ }, z.core.$strip>;
23
+ export type ErrorResponseData = z.infer<typeof errorResponseDataSchema>;
24
+ export type ErrorReason = ErrorDetails["reason"];
25
+ export type ErrorDetails = ReasonData<"adapterError", ErrorWithOriginalError> | ReasonData<"transformError", ErrorWithOriginalError> | ReasonData<"unauthorized", ErrorWithKontentResponse> | ReasonData<"invalidResponse", ErrorWithKontentResponse> | ReasonData<"parseError", ErrorWithOriginalError> | ReasonData<"notFound", ErrorWithKontentResponse> | ReasonData<"invalidBody", ErrorWithOriginalError> | ReasonData<"invalidUrl", ErrorWithOriginalError> | ReasonData<"aborted", ErrorWithOriginalError> | ReasonData<"parsingFailed", {
26
+ readonly zodError: z.core.$ZodError;
27
+ readonly payload: JsonValue;
28
+ readonly url: URL;
29
+ }>;
30
+ export type BaseErrorData = {
28
31
  /**
29
32
  * The message of the error
30
33
  */
@@ -32,17 +35,60 @@ export type CoreSdkError<TReason extends ErrorReason = ErrorReason> = {
32
35
  /**
33
36
  * The URL of the request.
34
37
  */
35
- readonly url: string;
38
+ readonly url: string | URL;
36
39
  /**
37
40
  * Used retry strategy.
38
41
  */
39
- readonly retryStrategyOptions?: Required<RetryStrategyOptions>;
42
+ readonly retryStrategyOptions: ResolvedRetryStrategyOptions | undefined;
40
43
  /**
41
44
  * The number of times the request has been retried.
42
45
  */
43
- readonly retryAttempt?: number;
44
- } & CoreSdkErrorDetails<TReason>;
45
- type Details<TReason extends ErrorReason, TDetails> = {
46
+ readonly retryAttempt: number | undefined;
47
+ };
48
+ export declare class KontentSdkError<TDetails extends ErrorDetails = ErrorDetails> extends Error implements BaseErrorData {
49
+ readonly details: TDetails;
50
+ readonly url: string | URL;
51
+ readonly retryStrategyOptions: ResolvedRetryStrategyOptions | undefined;
52
+ readonly retryAttempt: number | undefined;
53
+ constructor({ baseErrorData: { message, url, retryStrategyOptions, retryAttempt }, details }: {
54
+ readonly baseErrorData: BaseErrorData;
55
+ readonly details: TDetails;
56
+ });
57
+ }
58
+ /**
59
+ * Http adapter should throw this error when the request is aborted.
60
+ *
61
+ * The error is then handled by the HttpService and converted to a KontentSdkError with the reason "aborted".
62
+ */
63
+ export declare class AdapterAbortError extends Error {
64
+ readonly details: unknown;
65
+ constructor({ message, error }: {
66
+ readonly message: string;
67
+ readonly error?: unknown;
68
+ });
69
+ }
70
+ /**
71
+ * Http adapter should throw this error when the response is not valid JSON or BLOB.
72
+ *
73
+ * The error is then handled by the HttpService and converted to a KontentSdkError with the reason "parseError".
74
+ */
75
+ export declare class AdapterParseError extends Error {
76
+ readonly details: unknown;
77
+ constructor({ message, error }: {
78
+ readonly message: string;
79
+ readonly error?: unknown;
80
+ });
81
+ }
82
+ export type ErrorDetailsFor<TReason extends ErrorReason> = Extract<ErrorDetails, {
83
+ readonly reason: TReason;
84
+ }>;
85
+ type ErrorWithKontentResponse = {
86
+ readonly kontentErrorResponse: ErrorResponseData | undefined;
87
+ } & Pick<AdapterResponse<AdapterPayload>, "responseHeaders" | "status" | "statusText">;
88
+ type ErrorWithOriginalError = {
89
+ readonly originalError: unknown;
90
+ };
91
+ type ReasonData<TReason extends ErrorReason, TData> = {
46
92
  readonly reason: TReason;
47
- } & TDetails;
93
+ } & TData;
48
94
  export {};
@@ -1,2 +1,52 @@
1
- export {};
1
+ import * as z from "zod/mini";
2
+ import { toFriendlyKontentSdkErrorMessage } from "../utils/error.utils.js";
3
+ export const validationErrorSchema = z.object({
4
+ message: z.string(),
5
+ path: z.optional(z.string()),
6
+ line: z.optional(z.number()),
7
+ position: z.optional(z.number()),
8
+ });
9
+ export const errorResponseDataSchema = z.object({
10
+ message: z.string(),
11
+ request_id: z.string(),
12
+ error_code: z.number(),
13
+ validation_errors: z.optional(z.array(validationErrorSchema)),
14
+ });
15
+ export class KontentSdkError extends Error {
16
+ details;
17
+ url;
18
+ retryStrategyOptions;
19
+ retryAttempt;
20
+ constructor({ baseErrorData: { message, url, retryStrategyOptions, retryAttempt }, details, }) {
21
+ super(toFriendlyKontentSdkErrorMessage(message, details));
22
+ this.url = url;
23
+ this.retryStrategyOptions = retryStrategyOptions;
24
+ this.retryAttempt = retryAttempt;
25
+ this.details = details;
26
+ }
27
+ }
28
+ /**
29
+ * Http adapter should throw this error when the request is aborted.
30
+ *
31
+ * The error is then handled by the HttpService and converted to a KontentSdkError with the reason "aborted".
32
+ */
33
+ export class AdapterAbortError extends Error {
34
+ details;
35
+ constructor({ message, error }) {
36
+ super(message, { cause: error });
37
+ this.details = error;
38
+ }
39
+ }
40
+ /**
41
+ * Http adapter should throw this error when the response is not valid JSON or BLOB.
42
+ *
43
+ * The error is then handled by the HttpService and converted to a KontentSdkError with the reason "parseError".
44
+ */
45
+ export class AdapterParseError extends Error {
46
+ details;
47
+ constructor({ message, error }) {
48
+ super(message, { cause: error });
49
+ this.details = error;
50
+ }
51
+ }
2
52
  //# sourceMappingURL=error.models.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"error.models.js","sourceRoot":"","sources":["../../lib/models/error.models.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"error.models.js","sourceRoot":"","sources":["../../lib/models/error.models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAE9B,OAAO,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAC;AAI3E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC5B,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAChC,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,iBAAiB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;CAC7D,CAAC,CAAC;AA+CH,MAAM,OAAO,eAA8D,SAAQ,KAAK;IAC9E,OAAO,CAAW;IAClB,GAAG,CAAe;IAClB,oBAAoB,CAA2C;IAC/D,YAAY,CAAqB;IAE1C,YAAY,EACX,aAAa,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,oBAAoB,EAAE,YAAY,EAAE,EACnE,OAAO,GAIP;QACA,KAAK,CAAC,gCAAgC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAE1D,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,CAAC;CACD;AAED;;;;GAIG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAClC,OAAO,CAAU;IAC1B,YAAY,EAAE,OAAO,EAAE,KAAK,EAA0D;QACrF,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACtB,CAAC;CACD;AAED;;;;GAIG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAClC,OAAO,CAAU;IAE1B,YAAY,EAAE,OAAO,EAAE,KAAK,EAA0D;QACrF,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACtB,CAAC;CACD"}
@@ -1,6 +1,15 @@
1
- import type { EmptyObject } from "./utility.models.js";
2
- export type JsonValue = string | number | null | boolean | JsonObject | JsonArray | EmptyObject;
3
- export interface JsonObject {
1
+ import * as z from "zod/mini";
2
+ export type JsonValue = undefined | string | number | null | boolean | JsonObject | JsonArray;
3
+ export type JsonObject = {
4
4
  readonly [property: string]: JsonValue;
5
- }
5
+ };
6
6
  export type JsonArray = readonly JsonValue[];
7
+ /**
8
+ * Runtime validator for the core SDK `JsonValue` type.
9
+ *
10
+ * Matches:
11
+ * - string | number | boolean | null
12
+ * - readonly JsonValue[]
13
+ * - { readonly [property: string]: JsonValue }
14
+ */
15
+ export declare const jsonValueSchema: z.ZodMiniType<JsonValue>;
@@ -1,2 +1,11 @@
1
- export {};
1
+ import * as z from "zod/mini";
2
+ /**
3
+ * Runtime validator for the core SDK `JsonValue` type.
4
+ *
5
+ * Matches:
6
+ * - string | number | boolean | null
7
+ * - readonly JsonValue[]
8
+ * - { readonly [property: string]: JsonValue }
9
+ */
10
+ export const jsonValueSchema = z.lazy(() => z.union([z.string(), z.number(), z.boolean(), z.null(), z.readonly(z.array(jsonValueSchema)), z.record(z.string(), jsonValueSchema)]));
2
11
  //# sourceMappingURL=json.models.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"json.models.js","sourceRoot":"","sources":["../../lib/models/json.models.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"json.models.js","sourceRoot":"","sources":["../../lib/models/json.models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAU9B;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAA6B,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACpE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC,CACrI,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Represents an empty object type.
3
+ */
4
+ export type EmptyObject = Record<string, never>;
5
+ /**
6
+ * Picks a string literal type from a union type.
7
+ */
8
+ export type PickStringLiteral<T extends string, U extends T> = U;
9
+ /**
10
+ * Adds intellisense for string union type, but also allows any string
11
+ */
12
+ export type LiteralUnion<T extends string | undefined> = T | (string & NonNullable<unknown>);
13
+ /**
14
+ * Adds intellisense for number union type, but also allows any number
15
+ */
16
+ export type LiteralUnionNumber<T extends number | undefined> = T | (number & NonNullable<unknown>);
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=utility.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utility.types.js","sourceRoot":"","sources":["../../lib/models/utility.types.ts"],"names":[],"mappings":""}
@@ -1,13 +1,24 @@
1
+ /** biome-ignore-all lint/performance/noBarrelFile: One barrel for exported API is fine */
1
2
  export { getDefaultHttpAdapter } from "./http/http.adapter.js";
2
- export type { AdapterRequestOptions, AdapterResponse, DefaultHttpServiceConfig, DownloadFileRequestOptions, ExecuteRequestOptions, HttpAdapter, HttpResponse, HttpService, HttpServiceStatus, UploadFileRequestOptions, } from "./http/http.models.js";
3
+ export type { AdapterDownloadOptions, AdapterPayload, AdapterRequestBody, AdapterRequestOptions, AdapterResponse, DefaultHttpServiceOptions, DownloadFileRequestOptions, GetNextPageData, HttpAdapter, HttpRequestBody, HttpResponse, HttpResult, HttpService, HttpServiceRequestOptions, HttpStatusCode, PagingConfig, UploadFileRequestOptions, } from "./http/http.models.js";
3
4
  export { getDefaultHttpService } from "./http/http.service.js";
4
- export type { CommonHeaderNames, ContinuationHeaderName, Header, HttpMethod, RetryStrategyOptions, SDKInfo, } from "./models/core.models.js";
5
- export type { CoreSdkError, CoreSdkErrorDetails, ErrorReason, } from "./models/error.models.js";
6
- export type { JsonArray, JsonObject, JsonValue } from "./models/json.models.js";
7
- export type { EmptyObject, Override, Prettify } from "./models/utility.models.js";
8
- export type { PagingQuery, PagingQueryResult, Query, QueryResult, ResultOfSuccessfulQuery, SdkConfig, SdkResponse, SdkResponseMeta, SuccessfulHttpResponse, } from "./sdk/sdk-models.js";
9
- export { extractContinuationToken, getPagingQuery, getQuery } from "./sdk/sdk-queries.js";
10
- export { isKontent404Error } from "./utils/error.utils.js";
11
- export { getSdkIdHeader } from "./utils/header.utils.js";
12
- export { toRequiredRetryStrategyOptions } from "./utils/retry.utils.js";
13
- export { tryCatch, tryCatchAsync } from "./utils/try.utils.js";
5
+ export type { ContinuationTokenHeaderName, Header, HttpMethod, KnownHeaderName, ResolvedRetryStrategyOptions, RetryStrategyOptions, SdkInfo, } from "./models/core.models.js";
6
+ export { AdapterAbortError, AdapterParseError, type ErrorDetails, type ErrorDetailsFor, type ErrorReason, type ErrorResponseData, KontentSdkError, type ValidationError, } from "./models/error.models.js";
7
+ export { type JsonArray, type JsonObject, type JsonValue, jsonValueSchema } from "./models/json.models.js";
8
+ export type { EmptyObject, PickStringLiteral } from "./models/utility.types.js";
9
+ export { createFetchQuery } from "./sdk/queries/fetch-sdk-query.js";
10
+ export { createMutationQuery } from "./sdk/queries/mutation-sdk-query.js";
11
+ export { createPagedFetchQuery } from "./sdk/queries/paged-fetch-sdk-query.js";
12
+ export { codenameOf, kontentUuidSchema, nilUuid, strictCodenameSchema, } from "./sdk/sdk-config.js";
13
+ export type { BaseUrl, FetchQuery, FetchQueryRequest, MutationQuery, MutationQueryRequest, PagedFetchQuery, PagingQueryResponse, Query, QueryResponse, QueryResponseMeta, SafePagingQueryResult, SafeQueryResult, SdkConfig, SuccessfulHttpResponse, } from "./sdk/sdk-models.js";
14
+ export { isPagingQuery } from "./sdk/sdk-utils.js";
15
+ export { transformFetchQuery } from "./sdk/transform/transform-fetch-query.js";
16
+ export { transformMutationQuery } from "./sdk/transform/transform-mutation-query.js";
17
+ export { transformPagedFetchQuery } from "./sdk/transform/transform-paged-fetch-query.js";
18
+ export { isDefined } from "./utils/core.utils.js";
19
+ export { isKontent404Error, isKontentSdkError } from "./utils/error.utils.js";
20
+ export { createSdkIdHeader, extractContinuationToken } from "./utils/header.utils.js";
21
+ export { resolveDefaultRetryStrategyOptions } from "./utils/retry.utils.js";
22
+ export { resolveSchema, type SchemaInput } from "./utils/schema.utils.js";
23
+ export { tryCatch, tryCatchAsync } from "./utils/try-catch.utils.js";
24
+ export { getEndpointUrl } from "./utils/url.utils.js";
@@ -1,9 +1,21 @@
1
- // biome-ignore lint/performance/noBarrelFile: One barrel for the public API is fine
1
+ /** biome-ignore-all lint/performance/noBarrelFile: One barrel for exported API is fine */
2
2
  export { getDefaultHttpAdapter } from "./http/http.adapter.js";
3
3
  export { getDefaultHttpService } from "./http/http.service.js";
4
- export { extractContinuationToken, getPagingQuery, getQuery } from "./sdk/sdk-queries.js";
5
- export { isKontent404Error } from "./utils/error.utils.js";
6
- export { getSdkIdHeader } from "./utils/header.utils.js";
7
- export { toRequiredRetryStrategyOptions } from "./utils/retry.utils.js";
8
- export { tryCatch, tryCatchAsync } from "./utils/try.utils.js";
4
+ export { AdapterAbortError, AdapterParseError, KontentSdkError, } from "./models/error.models.js";
5
+ export { jsonValueSchema } from "./models/json.models.js";
6
+ export { createFetchQuery } from "./sdk/queries/fetch-sdk-query.js";
7
+ export { createMutationQuery } from "./sdk/queries/mutation-sdk-query.js";
8
+ export { createPagedFetchQuery } from "./sdk/queries/paged-fetch-sdk-query.js";
9
+ export { codenameOf, kontentUuidSchema, nilUuid, strictCodenameSchema, } from "./sdk/sdk-config.js";
10
+ export { isPagingQuery } from "./sdk/sdk-utils.js";
11
+ export { transformFetchQuery } from "./sdk/transform/transform-fetch-query.js";
12
+ export { transformMutationQuery } from "./sdk/transform/transform-mutation-query.js";
13
+ export { transformPagedFetchQuery } from "./sdk/transform/transform-paged-fetch-query.js";
14
+ export { isDefined } from "./utils/core.utils.js";
15
+ export { isKontent404Error, isKontentSdkError } from "./utils/error.utils.js";
16
+ export { createSdkIdHeader, extractContinuationToken } from "./utils/header.utils.js";
17
+ export { resolveDefaultRetryStrategyOptions } from "./utils/retry.utils.js";
18
+ export { resolveSchema } from "./utils/schema.utils.js";
19
+ export { tryCatch, tryCatchAsync } from "./utils/try-catch.utils.js";
20
+ export { getEndpointUrl } from "./utils/url.utils.js";
9
21
  //# sourceMappingURL=public_api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"public_api.js","sourceRoot":"","sources":["../lib/public_api.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAa/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AA2B/D,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
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,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,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,aAAa,EAAoB,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { KontentSdkError } from "../../models/error.models.js";
2
+ import type { JsonValue } from "../../models/json.models.js";
3
+ import type { FetchQuery, FetchQueryRequest } from "../sdk-models.js";
4
+ export declare function createFetchQuery<TPayload extends JsonValue, TError extends KontentSdkError, TMeta, TExtra>(data: FetchQueryRequest<TPayload, TError, TMeta, TExtra>): FetchQuery<TPayload, TError, TMeta, TExtra>;
@@ -0,0 +1,17 @@
1
+ import { inspectQuery, resolveQuery } from "../resolve-query.js";
2
+ export function createFetchQuery(data) {
3
+ const inputData = { ...data, method: "GET", body: null };
4
+ const fetchSafe = async () => await resolveQuery(inputData);
5
+ return {
6
+ inspect: () => inspectQuery(inputData),
7
+ fetchSafe,
8
+ fetch: async () => {
9
+ const { success, response, error } = await fetchSafe();
10
+ if (!success) {
11
+ throw error;
12
+ }
13
+ return response;
14
+ },
15
+ };
16
+ }
17
+ //# sourceMappingURL=fetch-sdk-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-sdk-query.js","sourceRoot":"","sources":["../../../lib/sdk/queries/fetch-sdk-query.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGjE,MAAM,UAAU,gBAAgB,CAC/B,IAAwD;IAExD,MAAM,SAAS,GAA0D,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAChH,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE,CAAC,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC;IAE5D,OAAO;QACN,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC;QACtC,SAAS;QACT,KAAK,EAAE,KAAK,IAAI,EAAE;YACjB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,SAAS,EAAE,CAAC;YACvD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,KAAK,CAAC;YACb,CAAC;YACD,OAAO,QAAQ,CAAC;QACjB,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { HttpRequestBody } from "../../http/http.models.js";
2
+ import type { KontentSdkError } from "../../models/error.models.js";
3
+ import type { JsonValue } from "../../models/json.models.js";
4
+ import type { MutationQuery, MutationQueryRequest } from "../sdk-models.js";
5
+ export declare function createMutationQuery<TPayload extends JsonValue, TBody extends HttpRequestBody, TError extends KontentSdkError, TMeta, TExtra>(data: MutationQueryRequest<TPayload, TBody, TError, TMeta, TExtra>): MutationQuery<TPayload, TError, TMeta, TExtra>;
@@ -0,0 +1,16 @@
1
+ import { inspectQuery, resolveQuery } from "../resolve-query.js";
2
+ export function createMutationQuery(data) {
3
+ const executeSafe = async () => await resolveQuery(data);
4
+ return {
5
+ inspect: () => inspectQuery(data),
6
+ executeSafe,
7
+ execute: async () => {
8
+ const { success, response, error } = await executeSafe();
9
+ if (!success) {
10
+ throw error;
11
+ }
12
+ return response;
13
+ },
14
+ };
15
+ }
16
+ //# sourceMappingURL=mutation-sdk-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutation-sdk-query.js","sourceRoot":"","sources":["../../../lib/sdk/queries/mutation-sdk-query.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGjE,MAAM,UAAU,mBAAmB,CAMjC,IAAkE;IACnE,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IAEzD,OAAO;QACN,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC;QACjC,WAAW;QACX,OAAO,EAAE,KAAK,IAAI,EAAE;YACnB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,WAAW,EAAE,CAAC;YACzD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,KAAK,CAAC;YACb,CAAC;YACD,OAAO,QAAQ,CAAC;QACjB,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { GetNextPageData } from "../../http/http.models.js";
2
+ import type { KontentSdkError } from "../../models/error.models.js";
3
+ import type { JsonValue } from "../../models/json.models.js";
4
+ import type { FetchQueryRequest, PagedFetchQuery, QueryResponse } from "../sdk-models.js";
5
+ export declare function createPagedFetchQuery<TPayload extends JsonValue, TError extends KontentSdkError, TMeta, TExtra, TPagingExtra>(data: FetchQueryRequest<TPayload, TError, TMeta, TExtra> & {
6
+ readonly getNextPageData: GetNextPageData<TPayload, TMeta, TExtra>;
7
+ readonly mapPagingExtraResponseProps: (response: readonly QueryResponse<TPayload, TMeta, TExtra>[]) => TPagingExtra;
8
+ }): PagedFetchQuery<TPayload, TError, TMeta, TExtra, TPagingExtra>;
@@ -0,0 +1,101 @@
1
+ import { match, P } from "ts-pattern";
2
+ import { createFetchQuery } from "./fetch-sdk-query.js";
3
+ export function createPagedFetchQuery(data) {
4
+ const getPagingData = (config) => {
5
+ return {
6
+ ...data,
7
+ method: "GET",
8
+ pageIndex: 0,
9
+ pagingConfig: config ?? {},
10
+ body: null,
11
+ };
12
+ };
13
+ const fetchQuery = createFetchQuery(data);
14
+ return {
15
+ inspect: () => fetchQuery.inspect(),
16
+ fetchPage: async () => await fetchQuery.fetch(),
17
+ fetchPageSafe: async () => await fetchQuery.fetchSafe(),
18
+ fetchAllPages: async (config) => {
19
+ const { success, error, responses } = await fetchAllPages(getPagingData(config));
20
+ if (!success) {
21
+ throw error;
22
+ }
23
+ return {
24
+ ...data.mapPagingExtraResponseProps(responses),
25
+ responses,
26
+ };
27
+ },
28
+ fetchAllPagesSafe: async (config) => await fetchAllPages(getPagingData(config)),
29
+ pagesSafe: (config) => createPagingQueryIterator(getPagingData(config)),
30
+ pages: async function* (config) {
31
+ const iterator = createPagingQueryIterator(getPagingData(config));
32
+ for await (const result of iterator) {
33
+ if (!result.success) {
34
+ throw result.error;
35
+ }
36
+ yield result.response;
37
+ }
38
+ },
39
+ };
40
+ }
41
+ async function* createPagingQueryIterator(data) {
42
+ let nextPageState = { hasNextPage: true, pageSource: "firstRequest" };
43
+ let pageIndex = 0;
44
+ while (isNextPageAvailable(nextPageState)) {
45
+ const urlToUse = nextPageState?.nextPageUrl ?? data.url;
46
+ const fetchResult = await createFetchQuery({
47
+ ...data,
48
+ url: urlToUse,
49
+ continuationToken: nextPageState.continuationToken,
50
+ }).fetchSafe();
51
+ if (!fetchResult.success) {
52
+ yield { success: false, error: fetchResult.error };
53
+ return;
54
+ }
55
+ yield fetchResult;
56
+ pageIndex++;
57
+ nextPageState = resolveNextPageState({
58
+ getNextPageData: data.getNextPageData,
59
+ pagingConfig: data.pagingConfig,
60
+ pageIndex: pageIndex,
61
+ response: fetchResult.response,
62
+ });
63
+ }
64
+ }
65
+ function resolveNextPageState({ pagingConfig, getNextPageData, pageIndex, response, }) {
66
+ const { maxPagesCount } = pagingConfig;
67
+ if (maxPagesCount && maxPagesCount > 0 && maxPagesCount === pageIndex) {
68
+ return { hasNextPage: false };
69
+ }
70
+ return match(getNextPageData(response))
71
+ .returnType()
72
+ .with({ continuationToken: P.string.minLength(1) }, (m) => ({
73
+ hasNextPage: true,
74
+ pageSource: "continuationToken",
75
+ continuationToken: m.continuationToken,
76
+ }))
77
+ .with({ nextPageUrl: P.string.minLength(1) }, (m) => ({
78
+ hasNextPage: true,
79
+ pageSource: "nextPageUrl",
80
+ nextPageUrl: m.nextPageUrl,
81
+ }))
82
+ .otherwise(() => ({ hasNextPage: false }));
83
+ }
84
+ async function fetchAllPages(data) {
85
+ const responses = [];
86
+ for await (const result of createPagingQueryIterator(data)) {
87
+ if (!result.success) {
88
+ return { success: false, error: result.error };
89
+ }
90
+ responses.push(result.response);
91
+ }
92
+ return {
93
+ success: true,
94
+ responses,
95
+ ...data.mapPagingExtraResponseProps(responses),
96
+ };
97
+ }
98
+ function isNextPageAvailable(nextPageState) {
99
+ return nextPageState.hasNextPage;
100
+ }
101
+ //# sourceMappingURL=paged-fetch-sdk-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paged-fetch-sdk-query.js","sourceRoot":"","sources":["../../../lib/sdk/queries/paged-fetch-sdk-query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { HttpRequestBody } from "../http/http.models.js";
2
+ import type { ErrorDetailsFor, KontentSdkError } from "../models/error.models.js";
3
+ import type { JsonValue } from "../models/json.models.js";
4
+ import { type TryCatchResult } from "../utils/try-catch.utils.js";
5
+ import type { BaseUrl, QueryInputData, QueryInspection, QueryResponse, SafeQueryResult } from "./sdk-models.js";
6
+ export declare function inspectQuery<TError>(data: Pick<QueryInputData<JsonValue, HttpRequestBody, unknown, unknown, TError>, "url" | "config" | "requestHeaders" | "continuationToken" | "authorizationApiKey" | "sdkInfo" | "body" | "method" | "mapError">): TryCatchResult<QueryInspection, TError>;
7
+ export declare function resolveQuery<TPayload extends JsonValue, TBody extends HttpRequestBody, TMeta, TExtra, TError>(data: QueryInputData<TPayload, TBody, TMeta, TExtra, TError>): Promise<SafeQueryResult<QueryResponse<TPayload, TMeta, TExtra>, TError>>;
8
+ export declare function resolveUrl<TError>({ url, baseUrl, mapError }: {
9
+ readonly url: string | URL;
10
+ readonly baseUrl: BaseUrl | undefined;
11
+ readonly mapError: (error: KontentSdkError<ErrorDetailsFor<"invalidUrl">>) => TError;
12
+ }): TryCatchResult<URL, TError>;