@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.
- package/.npmignore +1 -5
- package/LICENSE.md +1 -1
- package/README.md +117 -12
- package/dist/core-sdk-info.d.ts +2 -0
- package/dist/core-sdk-info.js +6 -0
- package/dist/core-sdk-info.js.map +1 -0
- package/dist/devkit/console.utils.d.ts +2 -0
- package/dist/devkit/console.utils.js +5 -0
- package/dist/devkit/console.utils.js.map +1 -0
- package/dist/devkit/environment.utils.d.ts +2 -0
- package/dist/devkit/environment.utils.js +12 -0
- package/dist/devkit/environment.utils.js.map +1 -0
- package/dist/devkit/script.utils.js +3 -3
- package/dist/devkit/script.utils.js.map +1 -1
- package/dist/{utils → devkit}/sdk-version.utils.js +2 -2
- package/dist/devkit/sdk-version.utils.js.map +1 -0
- package/dist/devkit_api.d.ts +4 -1
- package/dist/devkit_api.js +4 -2
- package/dist/devkit_api.js.map +1 -1
- package/dist/http/http.adapter.d.ts +1 -1
- package/dist/http/http.adapter.js +74 -24
- package/dist/http/http.adapter.js.map +1 -1
- package/dist/http/http.models.d.ts +49 -37
- package/dist/http/http.service.d.ts +2 -2
- package/dist/http/http.service.js +305 -220
- package/dist/http/http.service.js.map +1 -1
- package/dist/models/core.models.d.ts +33 -40
- package/dist/models/error.models.d.ts +78 -32
- package/dist/models/error.models.js +51 -1
- package/dist/models/error.models.js.map +1 -1
- package/dist/models/json.models.d.ts +13 -4
- package/dist/models/json.models.js +10 -1
- package/dist/models/json.models.js.map +1 -1
- package/dist/models/utility.types.d.ts +16 -0
- package/dist/models/utility.types.js +2 -0
- package/dist/models/utility.types.js.map +1 -0
- package/dist/public_api.d.ts +22 -11
- package/dist/public_api.js +18 -6
- package/dist/public_api.js.map +1 -1
- package/dist/sdk/queries/fetch-sdk-query.d.ts +4 -0
- package/dist/sdk/queries/fetch-sdk-query.js +17 -0
- package/dist/sdk/queries/fetch-sdk-query.js.map +1 -0
- package/dist/sdk/queries/mutation-sdk-query.d.ts +5 -0
- package/dist/sdk/queries/mutation-sdk-query.js +16 -0
- package/dist/sdk/queries/mutation-sdk-query.js.map +1 -0
- package/dist/sdk/queries/paged-fetch-sdk-query.d.ts +8 -0
- package/dist/sdk/queries/paged-fetch-sdk-query.js +101 -0
- package/dist/sdk/queries/paged-fetch-sdk-query.js.map +1 -0
- package/dist/sdk/resolve-query.d.ts +12 -0
- package/dist/sdk/resolve-query.js +172 -0
- package/dist/sdk/resolve-query.js.map +1 -0
- package/dist/sdk/sdk-config.d.ts +24 -0
- package/dist/sdk/sdk-config.js +31 -0
- package/dist/sdk/sdk-config.js.map +1 -0
- package/dist/sdk/sdk-models.d.ts +118 -40
- package/dist/sdk/sdk-utils.d.ts +16 -0
- package/dist/sdk/sdk-utils.js +36 -0
- package/dist/sdk/sdk-utils.js.map +1 -0
- package/dist/sdk/transform/transform-fetch-query.d.ts +11 -0
- package/dist/sdk/transform/transform-fetch-query.js +15 -0
- package/dist/sdk/transform/transform-fetch-query.js.map +1 -0
- package/dist/sdk/transform/transform-mutation-query.d.ts +11 -0
- package/dist/sdk/transform/transform-mutation-query.js +15 -0
- package/dist/sdk/transform/transform-mutation-query.js.map +1 -0
- package/dist/sdk/transform/transform-paged-fetch-query.d.ts +11 -0
- package/dist/sdk/transform/transform-paged-fetch-query.js +75 -0
- package/dist/sdk/transform/transform-paged-fetch-query.js.map +1 -0
- package/dist/sdk/transform/transform-utils.d.ts +23 -0
- package/dist/sdk/transform/transform-utils.js +86 -0
- package/dist/sdk/transform/transform-utils.js.map +1 -0
- package/dist/testkit/poll.utils.d.ts +5 -0
- package/dist/testkit/poll.utils.js +15 -0
- package/dist/testkit/poll.utils.js.map +1 -0
- package/dist/testkit/testkit.models.d.ts +2 -2
- package/dist/testkit/testkit.utils.d.ts +27 -0
- package/dist/testkit/testkit.utils.js +113 -0
- package/dist/testkit/testkit.utils.js.map +1 -0
- package/dist/testkit_api.d.ts +3 -1
- package/dist/testkit_api.js +3 -2
- package/dist/testkit_api.js.map +1 -1
- package/dist/utils/abort.utils.d.ts +12 -0
- package/dist/utils/abort.utils.js +30 -0
- package/dist/utils/abort.utils.js.map +1 -0
- package/dist/utils/array.utils.d.ts +1 -0
- package/dist/utils/array.utils.js +4 -0
- package/dist/utils/array.utils.js.map +1 -0
- package/dist/utils/core.utils.d.ts +3 -1
- package/dist/utils/core.utils.js +18 -2
- package/dist/utils/core.utils.js.map +1 -1
- package/dist/utils/error.utils.d.ts +24 -8
- package/dist/utils/error.utils.js +47 -9
- package/dist/utils/error.utils.js.map +1 -1
- package/dist/utils/header.utils.d.ts +7 -2
- package/dist/utils/header.utils.js +43 -11
- package/dist/utils/header.utils.js.map +1 -1
- package/dist/utils/retry.utils.d.ts +17 -12
- package/dist/utils/retry.utils.js +125 -80
- package/dist/utils/retry.utils.js.map +1 -1
- package/dist/utils/schema.utils.d.ts +3 -0
- package/dist/utils/schema.utils.js +10 -0
- package/dist/utils/schema.utils.js.map +1 -0
- package/dist/utils/try-catch.utils.d.ts +15 -0
- package/dist/utils/{try.utils.js → try-catch.utils.js} +1 -1
- package/dist/utils/try-catch.utils.js.map +1 -0
- package/dist/utils/url.utils.d.ts +6 -0
- package/dist/utils/url.utils.js +10 -0
- package/dist/utils/url.utils.js.map +1 -0
- package/package.json +64 -64
- package/dist/models/utility.models.d.ts +0 -20
- package/dist/models/utility.models.js +0 -2
- package/dist/models/utility.models.js.map +0 -1
- package/dist/sdk/sdk-queries.d.ts +0 -30
- package/dist/sdk/sdk-queries.js +0 -152
- package/dist/sdk/sdk-queries.js.map +0 -1
- package/dist/sdk-info.d.ts +0 -5
- package/dist/sdk-info.js +0 -6
- package/dist/sdk-info.js.map +0 -1
- package/dist/testkit/test.utils.d.ts +0 -15
- package/dist/testkit/test.utils.js +0 -42
- package/dist/testkit/test.utils.js.map +0 -1
- package/dist/utils/sdk-version.utils.js.map +0 -1
- package/dist/utils/try.utils.d.ts +0 -14
- package/dist/utils/try.utils.js.map +0 -1
- package/lib/devkit/script.utils.ts +0 -12
- package/lib/devkit_api.ts +0 -3
- package/lib/http/http.adapter.ts +0 -38
- package/lib/http/http.models.ts +0 -122
- package/lib/http/http.service.ts +0 -320
- package/lib/models/core.models.ts +0 -89
- package/lib/models/error.models.ts +0 -83
- package/lib/models/json.models.ts +0 -9
- package/lib/models/utility.models.ts +0 -21
- package/lib/public_api.ts +0 -46
- package/lib/sdk/sdk-models.ts +0 -86
- package/lib/sdk/sdk-queries.ts +0 -232
- package/lib/sdk-info.ts +0 -5
- package/lib/testkit/test.utils.ts +0 -79
- package/lib/testkit/testkit.models.ts +0 -7
- package/lib/testkit_api.ts +0 -3
- package/lib/utils/core.utils.ts +0 -3
- package/lib/utils/error.utils.ts +0 -48
- package/lib/utils/header.utils.ts +0 -40
- package/lib/utils/retry.utils.ts +0 -156
- package/lib/utils/sdk-version.utils.ts +0 -16
- package/lib/utils/try.utils.ts +0 -30
- /package/dist/{utils → devkit}/sdk-version.utils.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.utils.js","sourceRoot":"","sources":["../../lib/utils/error.utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"error.utils.js","sourceRoot":"","sources":["../../lib/utils/error.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
import type { Header,
|
|
2
|
-
export declare function
|
|
1
|
+
import type { Header, KnownHeaderName, SdkInfo } from "../models/core.models.js";
|
|
2
|
+
export declare function createSdkIdHeader(info: SdkInfo): Header;
|
|
3
|
+
export declare function createContinuationHeader(token: string): Header;
|
|
4
|
+
export declare function createAuthorizationHeader(apiKey: string): Header;
|
|
5
|
+
export declare function findHeaderByName(headers: readonly Header[], name: KnownHeaderName): Header | undefined;
|
|
3
6
|
export declare function getRetryAfterHeaderValue(headers: readonly Header[]): number | undefined;
|
|
4
7
|
export declare function toSdkHeaders(headers: Headers): readonly Header[];
|
|
5
8
|
export declare function toFetchHeaders(headers: readonly Header[]): Headers;
|
|
9
|
+
export declare function isApplicationJsonResponseType(headers: readonly Header[]): boolean;
|
|
10
|
+
export declare function extractContinuationToken(responseHeaders: readonly Header[]): string | undefined;
|
|
@@ -1,19 +1,31 @@
|
|
|
1
|
-
export function
|
|
1
|
+
export function createSdkIdHeader(info) {
|
|
2
2
|
return {
|
|
3
3
|
name: "X-KC-SDKID",
|
|
4
4
|
value: `${info.host};${info.name};${info.version}`,
|
|
5
5
|
};
|
|
6
6
|
}
|
|
7
|
+
export function createContinuationHeader(token) {
|
|
8
|
+
return {
|
|
9
|
+
name: "X-Continuation",
|
|
10
|
+
value: token,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export function createAuthorizationHeader(apiKey) {
|
|
14
|
+
return {
|
|
15
|
+
name: "Authorization",
|
|
16
|
+
value: `Bearer ${apiKey}`,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export function findHeaderByName(headers, name) {
|
|
20
|
+
const normalizedName = name.toLowerCase();
|
|
21
|
+
return headers.find((header) => header.name.toLowerCase() === normalizedName);
|
|
22
|
+
}
|
|
7
23
|
export function getRetryAfterHeaderValue(headers) {
|
|
8
|
-
const retryAfterHeader = headers
|
|
24
|
+
const retryAfterHeader = findHeaderByName(headers, "Retry-After");
|
|
9
25
|
if (!retryAfterHeader) {
|
|
10
26
|
return undefined;
|
|
11
27
|
}
|
|
12
|
-
|
|
13
|
-
if (!Number.isSafeInteger(numberValue)) {
|
|
14
|
-
return undefined;
|
|
15
|
-
}
|
|
16
|
-
return numberValue;
|
|
28
|
+
return getNumericRetryAfterHeaderValue(retryAfterHeader.value) ?? getDateRetryAfterHeaderValue(retryAfterHeader.value);
|
|
17
29
|
}
|
|
18
30
|
export function toSdkHeaders(headers) {
|
|
19
31
|
return Array.from(headers.entries()).map(([key, value]) => ({
|
|
@@ -22,9 +34,29 @@ export function toSdkHeaders(headers) {
|
|
|
22
34
|
}));
|
|
23
35
|
}
|
|
24
36
|
export function toFetchHeaders(headers) {
|
|
25
|
-
return headers.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
37
|
+
return new Headers(headers.map((header) => [header.name, header.value]));
|
|
38
|
+
}
|
|
39
|
+
export function isApplicationJsonResponseType(headers) {
|
|
40
|
+
return findHeaderByName(headers, "Content-Type")?.value.toLowerCase().includes("application/json") ?? false;
|
|
41
|
+
}
|
|
42
|
+
export function extractContinuationToken(responseHeaders) {
|
|
43
|
+
return findHeaderByName(responseHeaders, "X-Continuation")?.value;
|
|
44
|
+
}
|
|
45
|
+
function getNumericRetryAfterHeaderValue(retryAfterValue) {
|
|
46
|
+
if (!retryAfterValue.trim()) {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
const parsedNumber = Number(retryAfterValue);
|
|
50
|
+
if (!Number.isNaN(parsedNumber)) {
|
|
51
|
+
return parsedNumber;
|
|
52
|
+
}
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
function getDateRetryAfterHeaderValue(retryAfterValue) {
|
|
56
|
+
const retryAfterDate = Date.parse(retryAfterValue);
|
|
57
|
+
if (Number.isNaN(retryAfterDate)) {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
return Math.max(0, Math.ceil((retryAfterDate - Date.now()) / 1000));
|
|
29
61
|
}
|
|
30
62
|
//# sourceMappingURL=header.utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header.utils.js","sourceRoot":"","sources":["../../lib/utils/header.utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"header.utils.js","sourceRoot":"","sources":["../../lib/utils/header.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
import type { HttpResponse } from "../http/http.models.js";
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import type { AdapterPayload, HttpRequestBody, HttpResponse } from "../http/http.models.js";
|
|
2
|
+
import type { ResolvedRetryStrategyOptions, RetryStrategyOptions } from "../models/core.models.js";
|
|
3
|
+
type WaitResult = {
|
|
4
|
+
readonly isAborted: boolean;
|
|
5
|
+
};
|
|
6
|
+
export declare function runWithRetry<TPayload extends AdapterPayload, TBody extends HttpRequestBody>(data: {
|
|
7
|
+
readonly func: (retryAttempt: number) => Promise<HttpResponse<TPayload, TBody>>;
|
|
8
|
+
readonly retryStrategyOptions: ResolvedRetryStrategyOptions;
|
|
7
9
|
readonly retryAttempt: number;
|
|
8
|
-
readonly url:
|
|
9
|
-
readonly
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
export declare function
|
|
13
|
-
|
|
10
|
+
readonly url: URL;
|
|
11
|
+
readonly abortSignal: AbortSignal | undefined;
|
|
12
|
+
}): Promise<HttpResponse<TPayload, TBody>>;
|
|
13
|
+
export declare function resolveDefaultRetryStrategyOptions(options?: RetryStrategyOptions): ResolvedRetryStrategyOptions;
|
|
14
|
+
export declare function waitBeforeNextRetry({ retryInMs, abortSignal }: {
|
|
15
|
+
readonly retryInMs: number;
|
|
16
|
+
readonly abortSignal?: AbortSignal | undefined;
|
|
17
|
+
}): Promise<WaitResult>;
|
|
18
|
+
export {};
|
|
@@ -1,106 +1,151 @@
|
|
|
1
|
+
import { match, P } from "ts-pattern";
|
|
2
|
+
import { runWithAbortSignal } from "./abort.utils.js";
|
|
3
|
+
import { sleep } from "./core.utils.js";
|
|
4
|
+
import { createSdkError } from "./error.utils.js";
|
|
1
5
|
import { getRetryAfterHeaderValue } from "./header.utils.js";
|
|
2
6
|
const defaultMaxRetries = 3;
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
return getRetryFromHeaderMs({ error });
|
|
6
|
-
}
|
|
7
|
-
return 0;
|
|
7
|
+
const defaultCanRetryAdapterError = (_error) => {
|
|
8
|
+
return false;
|
|
8
9
|
};
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
export async function runWithRetry(data) {
|
|
11
|
+
let retryAttempt = data.retryAttempt;
|
|
12
|
+
let retryResult = { canRetry: true, retryInMs: 0 };
|
|
13
|
+
while (retryResult.canRetry) {
|
|
14
|
+
const { success, response, error } = await data.func(retryAttempt);
|
|
15
|
+
if (success) {
|
|
16
|
+
return { success: true, response: response };
|
|
17
|
+
}
|
|
18
|
+
retryResult = getRetryResult({ error, retryAttempt, retryStrategyOptions: data.retryStrategyOptions });
|
|
19
|
+
if (retryResult.canRetry) {
|
|
20
|
+
// wait before the next retry or if the abort signal is aborted, return the error
|
|
21
|
+
const { isAborted } = await waitBeforeNextRetry({ retryInMs: retryResult.retryInMs, abortSignal: data.abortSignal });
|
|
22
|
+
if (isAborted) {
|
|
23
|
+
return {
|
|
24
|
+
success: false,
|
|
25
|
+
error: createAbortError({ url: data.url, retryStrategyOptions: data.retryStrategyOptions, retryAttempt }),
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
retryAttempt += 1;
|
|
29
|
+
// log retry attempt when available
|
|
30
|
+
data.retryStrategyOptions.logRetryAttempt?.(retryAttempt, data.url.toString());
|
|
14
31
|
}
|
|
15
|
-
return error.status >= 500 || error.status === 429;
|
|
16
32
|
}
|
|
17
|
-
return
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
33
|
+
return {
|
|
34
|
+
success: false,
|
|
35
|
+
error: retryResult.error,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export function resolveDefaultRetryStrategyOptions(options) {
|
|
39
|
+
const maxRetries = options?.maxRetries ?? defaultMaxRetries;
|
|
40
|
+
const resolvedOptions = {
|
|
41
|
+
maxRetries: maxRetries,
|
|
42
|
+
getDelayBetweenRetriesMs: (error) => getRetryMsFromHeaders({ error }),
|
|
43
|
+
canRetryAdapterError: options?.canRetryAdapterError ?? defaultCanRetryAdapterError,
|
|
44
|
+
logRetryAttempt: match(options?.logRetryAttempt)
|
|
45
|
+
.returnType()
|
|
46
|
+
.with("logToConsole", () => (retryAttempt, url) => {
|
|
47
|
+
console.warn(getDefaultRetryAttemptLogMessage(retryAttempt, maxRetries, url));
|
|
48
|
+
})
|
|
49
|
+
.otherwise((m) => m),
|
|
50
|
+
};
|
|
51
|
+
return resolvedOptions;
|
|
52
|
+
}
|
|
53
|
+
export async function waitBeforeNextRetry({ retryInMs, abortSignal, }) {
|
|
54
|
+
if (abortSignal) {
|
|
55
|
+
return await waitBeforeNextRetryWithAbortSignal({ retryInMs, abortSignal });
|
|
26
56
|
}
|
|
27
|
-
|
|
28
|
-
const retryResult = getRetryResult({
|
|
29
|
-
error,
|
|
30
|
-
retryAttempt: data.retryAttempt,
|
|
31
|
-
options: data.retryStrategyOptions,
|
|
32
|
-
});
|
|
33
|
-
if (!retryResult.canRetry) {
|
|
57
|
+
if (retryInMs <= 0) {
|
|
34
58
|
return {
|
|
35
|
-
|
|
36
|
-
error: {
|
|
37
|
-
...error,
|
|
38
|
-
retryAttempt: data.retryAttempt,
|
|
39
|
-
retryStrategyOptions: data.retryStrategyOptions,
|
|
40
|
-
},
|
|
59
|
+
isAborted: false,
|
|
41
60
|
};
|
|
42
61
|
}
|
|
43
|
-
|
|
44
|
-
await waitAsync(retryResult.retryInMs);
|
|
45
|
-
return await runWithRetryAsync({
|
|
46
|
-
funcAsync: data.funcAsync,
|
|
47
|
-
retryStrategyOptions: data.retryStrategyOptions,
|
|
48
|
-
retryAttempt: newRetryAttempt,
|
|
49
|
-
url: data.url,
|
|
50
|
-
requestHeaders: data.requestHeaders,
|
|
51
|
-
method: data.method,
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
export function toRequiredRetryStrategyOptions(options) {
|
|
55
|
-
const maxRetries = options?.maxRetries ?? defaultMaxRetries;
|
|
62
|
+
await sleep(retryInMs);
|
|
56
63
|
return {
|
|
57
|
-
|
|
58
|
-
canRetryError: options?.canRetryError ?? defaultCanRetryError,
|
|
59
|
-
getDelayBetweenRetriesMs: options?.getDelayBetweenRetriesMs ?? getDefaultDelayBetweenRetriesMs,
|
|
60
|
-
logRetryAttempt: options?.logRetryAttempt === false
|
|
61
|
-
? false
|
|
62
|
-
: (attempt, url) => {
|
|
63
|
-
if (options?.logRetryAttempt) {
|
|
64
|
-
options.logRetryAttempt(attempt, url);
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
console.warn(getDefaultRetryAttemptLogMessage(attempt, maxRetries, url));
|
|
68
|
-
}
|
|
69
|
-
},
|
|
64
|
+
isAborted: false,
|
|
70
65
|
};
|
|
71
66
|
}
|
|
72
|
-
|
|
73
|
-
return
|
|
67
|
+
function createAbortError({ url, retryStrategyOptions, retryAttempt, }) {
|
|
68
|
+
return createSdkError({
|
|
69
|
+
baseErrorData: {
|
|
70
|
+
message: "The request was aborted while waiting before the next retry attempt.",
|
|
71
|
+
url: url.toString(),
|
|
72
|
+
retryStrategyOptions,
|
|
73
|
+
retryAttempt,
|
|
74
|
+
},
|
|
75
|
+
details: { reason: "aborted", originalError: undefined },
|
|
76
|
+
});
|
|
74
77
|
}
|
|
75
|
-
function
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
78
|
+
async function waitBeforeNextRetryWithAbortSignal({ retryInMs, abortSignal, }) {
|
|
79
|
+
return await runWithAbortSignal({
|
|
80
|
+
func: async () => {
|
|
81
|
+
return await sleep(retryInMs);
|
|
82
|
+
},
|
|
83
|
+
abortSignal,
|
|
84
|
+
});
|
|
79
85
|
}
|
|
80
|
-
function
|
|
81
|
-
return
|
|
86
|
+
function getDefaultRetryAttemptLogMessage(retryAttempt, maxRetries, url) {
|
|
87
|
+
return `Retry attempt '${retryAttempt}' from a maximum of '${maxRetries}' retries. Requested url: '${url}'`;
|
|
82
88
|
}
|
|
83
|
-
function getRetryResult({
|
|
84
|
-
if (
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
89
|
+
function getRetryResult({ retryStrategyOptions, error, retryAttempt, }) {
|
|
90
|
+
if (!canRetryError({
|
|
91
|
+
retryAttempt,
|
|
92
|
+
error,
|
|
93
|
+
maxRetries: retryStrategyOptions.maxRetries,
|
|
94
|
+
canRetryAdapterError: retryStrategyOptions.canRetryAdapterError,
|
|
95
|
+
})) {
|
|
90
96
|
return {
|
|
91
97
|
canRetry: false,
|
|
98
|
+
error,
|
|
92
99
|
};
|
|
93
100
|
}
|
|
94
101
|
return {
|
|
95
102
|
canRetry: true,
|
|
96
|
-
retryInMs:
|
|
103
|
+
retryInMs: retryStrategyOptions.getDelayBetweenRetriesMs(error),
|
|
97
104
|
};
|
|
98
105
|
}
|
|
99
|
-
function
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
106
|
+
function canRetryError({ retryAttempt, error, maxRetries, canRetryAdapterError, }) {
|
|
107
|
+
if (hasExceededMaxRetries({ retryAttempt, maxRetries })) {
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
if (isRateLimitError({ error })) {
|
|
111
|
+
return true;
|
|
103
112
|
}
|
|
104
|
-
return
|
|
113
|
+
return match(error)
|
|
114
|
+
.returnType()
|
|
115
|
+
.with({ details: { kontentErrorResponse: P.nonNullable } }, () => {
|
|
116
|
+
// The request is clearly invalid as we got an error response from the API
|
|
117
|
+
// and we should not retry such requests
|
|
118
|
+
return false;
|
|
119
|
+
})
|
|
120
|
+
.with({
|
|
121
|
+
details: {
|
|
122
|
+
reason: P.union("invalidBody", "invalidResponse", "invalidUrl", "transformError", "notFound", "unauthorized", "parsingFailed", "aborted", "parseError"),
|
|
123
|
+
},
|
|
124
|
+
}, () => false)
|
|
125
|
+
.with({ details: { reason: "adapterError" } }, (m) => {
|
|
126
|
+
return canRetryAdapterError(m);
|
|
127
|
+
})
|
|
128
|
+
.exhaustive();
|
|
129
|
+
}
|
|
130
|
+
function isRateLimitError({ error }) {
|
|
131
|
+
return match(error)
|
|
132
|
+
.returnType()
|
|
133
|
+
.with({ details: { status: 429 } }, () => true)
|
|
134
|
+
.otherwise(() => false);
|
|
135
|
+
}
|
|
136
|
+
function hasExceededMaxRetries({ retryAttempt, maxRetries }) {
|
|
137
|
+
return retryAttempt >= maxRetries;
|
|
138
|
+
}
|
|
139
|
+
function getRetryMsFromHeaders({ error }) {
|
|
140
|
+
return match(error)
|
|
141
|
+
.returnType()
|
|
142
|
+
.with({ details: { responseHeaders: P.nonNullable } }, (m) => {
|
|
143
|
+
const retryAfterHeaderValue = getRetryAfterHeaderValue(m.details.responseHeaders);
|
|
144
|
+
if (retryAfterHeaderValue) {
|
|
145
|
+
return retryAfterHeaderValue * 1000;
|
|
146
|
+
}
|
|
147
|
+
return 0;
|
|
148
|
+
})
|
|
149
|
+
.otherwise(() => 0);
|
|
105
150
|
}
|
|
106
151
|
//# sourceMappingURL=retry.utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.utils.js","sourceRoot":"","sources":["../../lib/utils/retry.utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"retry.utils.js","sourceRoot":"","sources":["../../lib/utils/retry.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.utils.js","sourceRoot":"","sources":["../../lib/utils/schema.utils.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,KAAK,UAAU,aAAa,CAAI,KAAqB;IAC3D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO,MAAM,KAAK,EAAE,CAAC;IACtB,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type Success<TData> = {
|
|
2
|
+
readonly success: true;
|
|
3
|
+
readonly error?: never;
|
|
4
|
+
} & TData;
|
|
5
|
+
export type Failure<TData, TError = unknown> = {
|
|
6
|
+
readonly success: false;
|
|
7
|
+
readonly error: TError;
|
|
8
|
+
} & TData;
|
|
9
|
+
export type TryCatchResult<TData, TError = unknown> = Success<{
|
|
10
|
+
readonly data: TData;
|
|
11
|
+
}> | Failure<{
|
|
12
|
+
readonly data?: never;
|
|
13
|
+
}, TError>;
|
|
14
|
+
export declare function tryCatchAsync<T>(fn: () => Promise<T>): Promise<TryCatchResult<T>>;
|
|
15
|
+
export declare function tryCatch<T>(fn: () => T): TryCatchResult<T>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"try-catch.utils.js","sourceRoot":"","sources":["../../lib/utils/try-catch.utils.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,KAAK,UAAU,aAAa,CAAI,EAAoB;IAC1D,IAAI,CAAC;QACJ,MAAM,IAAI,GAAG,MAAM,EAAE,EAAE,CAAC;QACxB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;AACF,CAAC;AAED,MAAM,UAAU,QAAQ,CAAI,EAAW;IACtC,IAAI,CAAC;QACJ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function getEndpointUrl({ environmentId, path, baseUrl, }) {
|
|
2
|
+
return `${baseUrl.protocol}://${removeTrailingSlashes(baseUrl.host)}${removeDuplicateSlashes(`/${environmentId}/${path}`)}`;
|
|
3
|
+
}
|
|
4
|
+
function removeDuplicateSlashes(path) {
|
|
5
|
+
return path.replace(/\/+/g, "/");
|
|
6
|
+
}
|
|
7
|
+
function removeTrailingSlashes(path) {
|
|
8
|
+
return path.replace(/\/+$/, "");
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=url.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.utils.js","sourceRoot":"","sources":["../../lib/utils/url.utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc,CAAC,EAC9B,aAAa,EACb,IAAI,EACJ,OAAO,GAKP;IACA,OAAO,GAAG,OAAO,CAAC,QAAQ,MAAM,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;AAC7H,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY;IAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY;IAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,65 +1,65 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
2
|
+
"name": "@kontent-ai/core-sdk",
|
|
3
|
+
"version": "12.0.0-preview.40",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "https://github.com/kontent-ai/core-sdk-js"
|
|
7
|
+
},
|
|
8
|
+
"private": false,
|
|
9
|
+
"author": "richard sustek",
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"description": "Core package with shared / common functionality for Kontent.ai SDKs",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"Kontent.ai",
|
|
14
|
+
"Kontent AI",
|
|
15
|
+
"Kontent SDK Core"
|
|
16
|
+
],
|
|
17
|
+
"engines": {
|
|
18
|
+
"node": ">=22"
|
|
19
|
+
},
|
|
20
|
+
"exports": {
|
|
21
|
+
".": {
|
|
22
|
+
"types": "./dist/public_api.d.ts",
|
|
23
|
+
"default": "./dist/public_api.js"
|
|
24
|
+
},
|
|
25
|
+
"./devkit": {
|
|
26
|
+
"types": "./dist/devkit_api.d.ts",
|
|
27
|
+
"default": "./dist/devkit_api.js"
|
|
28
|
+
},
|
|
29
|
+
"./testkit": {
|
|
30
|
+
"types": "./dist/testkit_api.d.ts",
|
|
31
|
+
"default": "./dist/testkit_api.js"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"type": "module",
|
|
35
|
+
"sideEffects": false,
|
|
36
|
+
"peerDependencies": {
|
|
37
|
+
"ts-pattern": "^5",
|
|
38
|
+
"zod": "^4"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"@biomejs/biome": "2.4.13",
|
|
42
|
+
"@kontent-ai/biome-config": "0.7.0",
|
|
43
|
+
"@kontent-ai/eslint-config": "2.4.1",
|
|
44
|
+
"@types/node": "25.6.0",
|
|
45
|
+
"@vitest/coverage-v8": "4.1.5",
|
|
46
|
+
"eslint": "10.2.1",
|
|
47
|
+
"tsx": "4.21.0",
|
|
48
|
+
"vitest": "4.1.5",
|
|
49
|
+
"@typescript/native-preview": "7.0.0-dev.20260428.1"
|
|
50
|
+
},
|
|
51
|
+
"scripts": {
|
|
52
|
+
"build": "pnpm run lint && pnpm run clean && pnpm run build:ts && pnpm run update:version",
|
|
53
|
+
"build:ts": "tsgo -p tsconfig.build.json",
|
|
54
|
+
"test": "vitest run --config=vitest.config.ts --coverage",
|
|
55
|
+
"test:unit": "vitest run --config=vitest-unit.config.ts",
|
|
56
|
+
"test:integration": "vitest run --config=vitest-integration.config.ts",
|
|
57
|
+
"lint": "pnpm run biome:check && pnpm run eslint",
|
|
58
|
+
"eslint": "eslint lib tests scripts",
|
|
59
|
+
"biome:check": "biome check",
|
|
60
|
+
"biome:fix": "biome check --write",
|
|
61
|
+
"biome:fix:unsafe": "biome check --write --unsafe",
|
|
62
|
+
"clean": "tsx ./scripts/clean.ts",
|
|
63
|
+
"update:version": "tsx ./scripts/update-version.ts"
|
|
64
|
+
}
|
|
65
|
+
}
|