@kontent-ai/core-sdk 11.0.0-1 → 11.0.0-2

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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Devkit API - used for development purposes in
2
+ * Devkit API - common functions used by dependent packages, not intended for public use
3
3
  */
4
4
  export type { FetchResponse } from './devkit/devkit.models.js';
5
5
  export { deleteFolderRecursive } from './devkit/script.utils.js';
@@ -60,12 +60,12 @@ export type HttpService = {
60
60
  */
61
61
  uploadFileAsync<TResponseData extends JsonValue>(opts: UploadFileRequestOptions): Promise<HttpResponse<TResponseData, Blob>>;
62
62
  };
63
- export type AdapterResponse = {
63
+ export type AdapterResponse<TStatusCode extends HttpServiceStatus = HttpServiceStatus> = {
64
64
  readonly toJsonAsync: () => Promise<JsonValue>;
65
65
  readonly toBlobAsync: () => Promise<Blob>;
66
66
  readonly isValidResponse: boolean;
67
67
  readonly responseHeaders: readonly Header[];
68
- readonly status: HttpServiceStatus;
68
+ readonly status: TStatusCode;
69
69
  readonly statusText: string;
70
70
  };
71
71
  export type AdapterRequestOptions = {
@@ -1,9 +1,9 @@
1
- import type { AdapterResponse } from '../http/http.models.js';
1
+ import type { AdapterResponse, HttpServiceStatus } from '../http/http.models.js';
2
2
  import type { Header, KontentErrorResponseData, RetryStrategyOptions } from './core.models.js';
3
3
  /**
4
4
  * Represent an error that is thrown by the SDK
5
5
  */
6
- export declare class CoreSdkError extends Error {
6
+ export declare class CoreSdkError<TOriginalError extends HttpServiceInvalidResponseError | HttpServiceParsingError | unknown = unknown> extends Error {
7
7
  /**
8
8
  * The message of the error
9
9
  */
@@ -27,7 +27,7 @@ export declare class CoreSdkError extends Error {
27
27
  /**
28
28
  * The original error that caused the request to fail
29
29
  */
30
- readonly originalError: HttpServiceInvalidResponseError | HttpServiceParsingError | unknown;
30
+ readonly originalError: TOriginalError;
31
31
  constructor(
32
32
  /**
33
33
  * The message of the error
@@ -52,7 +52,7 @@ export declare class CoreSdkError extends Error {
52
52
  /**
53
53
  * The original error that caused the request to fail
54
54
  */
55
- originalError: HttpServiceInvalidResponseError | HttpServiceParsingError | unknown);
55
+ originalError: TOriginalError);
56
56
  }
57
57
  /**
58
58
  * Represent an error that is thrown by the HTTP service when parsing the URL or body data failed
@@ -64,11 +64,11 @@ export declare class HttpServiceParsingError extends Error {
64
64
  /**
65
65
  * Represent an error that is thrown by the HTTP service when the response is not valid
66
66
  */
67
- export declare class HttpServiceInvalidResponseError extends Error {
67
+ export declare class HttpServiceInvalidResponseError<TStatusCode extends HttpServiceStatus = HttpServiceStatus> extends Error {
68
68
  readonly kontentErrorResponse: KontentErrorResponseData | undefined;
69
- readonly adapterResponse: AdapterResponse;
69
+ readonly adapterResponse: AdapterResponse<TStatusCode>;
70
70
  constructor(data: {
71
- readonly adapterResponse: AdapterResponse;
71
+ readonly adapterResponse: AdapterResponse<TStatusCode>;
72
72
  readonly kontentErrorData: KontentErrorResponseData | undefined;
73
73
  });
74
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"error.models.js","sourceRoot":"","sources":["../../lib/models/error.models.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IAK5B;IAKA;IAKA;IAKA;IAKA;IAKA;IA7BV;IACC;;OAEG;IACM,OAAe;IAExB;;OAEG;IACM,GAAW;IAEpB;;OAEG;IACM,YAAoB;IAE7B;;OAEG;IACM,oBAAoD;IAE7D;;OAEG;IACM,cAAiC;IAE1C;;OAEG;IACM,aAAkF;QAE3F,KAAK,CAAC,OAAO,CAAC,CAAC;QA3BN,YAAO,GAAP,OAAO,CAAQ;QAKf,QAAG,GAAH,GAAG,CAAQ;QAKX,iBAAY,GAAZ,YAAY,CAAQ;QAKpB,yBAAoB,GAApB,oBAAoB,CAAgC;QAKpD,mBAAc,GAAd,cAAc,CAAmB;QAKjC,kBAAa,GAAb,aAAa,CAAqE;IAG5F,CAAC;CACD;AAED;;GAEG;AACH,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAC5B;IAArB,YAAqB,OAAe;QACnC,KAAK,CAAC,OAAO,CAAC,CAAC;QADK,YAAO,GAAP,OAAO,CAAQ;IAEpC,CAAC;CACD;AAED;;GAEG;AACH,MAAM,OAAO,+BAAgC,SAAQ,KAAK;IAChD,oBAAoB,CAAuC;IAC3D,eAAe,CAAkB;IAE1C,YAAY,IAGX;QACA,KAAK,CAAC,kDAAkD,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;QAE3H,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;IAC7C,CAAC;CACD"}
1
+ {"version":3,"file":"error.models.js","sourceRoot":"","sources":["../../lib/models/error.models.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,OAAO,YAAmH,SAAQ,KAAK;IAKlI;IAKA;IAKA;IAKA;IAKA;IAKA;IA7BV;IACC;;OAEG;IACM,OAAe;IAExB;;OAEG;IACM,GAAW;IAEpB;;OAEG;IACM,YAAoB;IAE7B;;OAEG;IACM,oBAAoD;IAE7D;;OAEG;IACM,cAAiC;IAE1C;;OAEG;IACM,aAA6B;QAEtC,KAAK,CAAC,OAAO,CAAC,CAAC;QA3BN,YAAO,GAAP,OAAO,CAAQ;QAKf,QAAG,GAAH,GAAG,CAAQ;QAKX,iBAAY,GAAZ,YAAY,CAAQ;QAKpB,yBAAoB,GAApB,oBAAoB,CAAgC;QAKpD,mBAAc,GAAd,cAAc,CAAmB;QAKjC,kBAAa,GAAb,aAAa,CAAgB;IAGvC,CAAC;CACD;AAED;;GAEG;AACH,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAC5B;IAArB,YAAqB,OAAe;QACnC,KAAK,CAAC,OAAO,CAAC,CAAC;QADK,YAAO,GAAP,OAAO,CAAQ;IAEpC,CAAC;CACD;AAED;;GAEG;AACH,MAAM,OAAO,+BAA2F,SAAQ,KAAK;IAC3G,oBAAoB,CAAuC;IAC3D,eAAe,CAA+B;IAEvD,YAAY,IAGX;QACA,KAAK,CAAC,kDAAkD,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;QAE3H,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;IAC7C,CAAC;CACD"}
@@ -4,5 +4,6 @@ export { getDefaultHttpService } from './http/http.service.js';
4
4
  export type { Header, HttpMethod, RetryStrategyOptions, SDKInfo, } from './models/core.models.js';
5
5
  export { CoreSdkError, HttpServiceInvalidResponseError, HttpServiceParsingError, } from './models/error.models.js';
6
6
  export type { JsonArray, JsonObject, JsonValue } from './models/json.models.js';
7
+ export { isCoreSdkError, isCoreSdkInvalidResponseError, isCoreSdkParsingError, isKontent404Error } from './utils/error.utils.js';
7
8
  export { getSdkIdHeader } from './utils/header.utils.js';
8
9
  export { toRequiredRetryStrategyOptions } from './utils/retry.utils.js';
@@ -4,6 +4,7 @@
4
4
  export { getDefaultHttpAdapter } from './http/http.adapter.js';
5
5
  export { getDefaultHttpService } from './http/http.service.js';
6
6
  export { CoreSdkError, HttpServiceInvalidResponseError, HttpServiceParsingError, } from './models/error.models.js';
7
+ export { isCoreSdkError, isCoreSdkInvalidResponseError, isCoreSdkParsingError, isKontent404Error } from './utils/error.utils.js';
7
8
  export { getSdkIdHeader } from './utils/header.utils.js';
8
9
  export { toRequiredRetryStrategyOptions } from './utils/retry.utils.js';
9
10
  //# sourceMappingURL=public_api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"public_api.js","sourceRoot":"","sources":["../lib/public_api.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAa/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAO/D,OAAO,EACN,YAAY,EACZ,+BAA+B,EAC/B,uBAAuB,GACvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"public_api.js","sourceRoot":"","sources":["../lib/public_api.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAa/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAO/D,OAAO,EACN,YAAY,EACZ,+BAA+B,EAC/B,uBAAuB,GACvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACjI,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC"}
package/dist/sdk-info.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export const sdkInfo = {
2
2
  host: 'npmjs.com',
3
- version: '11.0.0-1',
3
+ version: '11.0.0-2',
4
4
  name: '@kontent-ai/core-sdk',
5
5
  };
6
6
  //# sourceMappingURL=sdk-info.js.map
@@ -1,7 +1,14 @@
1
1
  import type { HttpMethod } from '../models/core.models.js';
2
+ import { CoreSdkError, HttpServiceInvalidResponseError, HttpServiceParsingError } from '../models/error.models.js';
2
3
  export declare function getDefaultErrorMessage({ method, url, retryAttempts, error, }: {
3
4
  readonly url: string;
4
5
  readonly retryAttempts: number;
5
6
  readonly error: unknown;
6
7
  readonly method: HttpMethod;
7
8
  }): string;
9
+ export declare function isCoreSdkError(error: unknown): error is CoreSdkError;
10
+ export declare function isCoreSdkInvalidResponseError(error: unknown): error is CoreSdkError<HttpServiceInvalidResponseError>;
11
+ export declare function isCoreSdkParsingError(error: unknown): error is CoreSdkError<HttpServiceParsingError>;
12
+ export declare function isKontent404Error(error: unknown): error is CoreSdkError<HttpServiceInvalidResponseError<404>>;
13
+ export declare function isInvalidResponseError(error: unknown): error is HttpServiceInvalidResponseError;
14
+ export declare function isParsingError(error: unknown): error is HttpServiceParsingError;
@@ -1,9 +1,27 @@
1
- import { HttpServiceInvalidResponseError, HttpServiceParsingError } from '../models/error.models.js';
1
+ import { CoreSdkError, HttpServiceInvalidResponseError, HttpServiceParsingError } from '../models/error.models.js';
2
2
  import { isNotUndefined } from './core.utils.js';
3
3
  export function getDefaultErrorMessage({ method, url, retryAttempts, error, }) {
4
4
  const errorMessage = extractMessageFromError(error);
5
5
  return `Failed to execute '${method}' request '${url}' after '${retryAttempts}' attempts.${errorMessage ? ` ${errorMessage}` : ''}`;
6
6
  }
7
+ export function isCoreSdkError(error) {
8
+ return error instanceof CoreSdkError;
9
+ }
10
+ export function isCoreSdkInvalidResponseError(error) {
11
+ return isCoreSdkError(error) && isInvalidResponseError(error.originalError);
12
+ }
13
+ export function isCoreSdkParsingError(error) {
14
+ return isCoreSdkError(error) && isParsingError(error.originalError);
15
+ }
16
+ export function isKontent404Error(error) {
17
+ return isCoreSdkInvalidResponseError(error) && error.originalError.adapterResponse.status === 404;
18
+ }
19
+ export function isInvalidResponseError(error) {
20
+ return error instanceof HttpServiceInvalidResponseError;
21
+ }
22
+ export function isParsingError(error) {
23
+ return error instanceof HttpServiceParsingError;
24
+ }
7
25
  function getValidationErrorMessage(validationErrors) {
8
26
  if (!validationErrors || !validationErrors.length) {
9
27
  return undefined;
@@ -20,10 +38,10 @@ function getValidationErrorMessage(validationErrors) {
20
38
  .join(', ');
21
39
  }
22
40
  function extractMessageFromError(error) {
23
- if (error instanceof HttpServiceParsingError) {
41
+ if (isParsingError(error)) {
24
42
  return error.message;
25
43
  }
26
- if (error instanceof HttpServiceInvalidResponseError) {
44
+ if (isInvalidResponseError(error)) {
27
45
  const validationErrorMessage = getValidationErrorMessage(error.kontentErrorResponse?.validation_errors);
28
46
  return `Response failed with status '${error.adapterResponse.status}' and status text '${error.adapterResponse.statusText}'.${error.kontentErrorResponse ? ` ${error.kontentErrorResponse.message}` : ''}${validationErrorMessage ? ` ${validationErrorMessage}` : ''}`;
29
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"error.utils.js","sourceRoot":"","sources":["../../lib/utils/error.utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,+BAA+B,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACrG,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,UAAU,sBAAsB,CAAC,EACtC,MAAM,EACN,GAAG,EACH,aAAa,EACb,KAAK,GAML;IACA,MAAM,YAAY,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACpD,OAAO,sBAAsB,MAAM,cAAc,GAAG,YAAY,aAAa,cAAc,YAAY,CAAC,CAAC,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACrI,CAAC;AAED,SAAS,yBAAyB,CAAC,gBAAoD;IACtF,IAAI,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;QACnD,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,OAAO,gBAAgB;SACrB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACV,MAAM,OAAO,GAAsB;YAClC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;YACtC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;YACtC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;SAClD,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACzB,OAAO,GAAG,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC1E,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAc;IAC9C,IAAI,KAAK,YAAY,uBAAuB,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,KAAK,YAAY,+BAA+B,EAAE,CAAC;QACtD,MAAM,sBAAsB,GAAG,yBAAyB,CAAC,KAAK,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAC;QACxG,OAAO,gCAAgC,KAAK,CAAC,eAAe,CAAC,MAAM,sBAAsB,KAAK,CAAC,eAAe,CAAC,UAAU,KAAK,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,sBAAsB,CAAC,CAAC,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACzQ,CAAC;IAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"error.utils.js","sourceRoot":"","sources":["../../lib/utils/error.utils.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,17 @@
1
- import { CoreSdkError, HttpServiceInvalidResponseError, HttpServiceParsingError } from '../models/error.models.js';
2
- import { getDefaultErrorMessage } from './error.utils.js';
1
+ import { CoreSdkError } from '../models/error.models.js';
2
+ import { getDefaultErrorMessage, isCoreSdkError, isInvalidResponseError, isParsingError } from './error.utils.js';
3
3
  import { getRetryAfterHeaderValue } from './header.utils.js';
4
4
  const defaultMaxAttempts = 3;
5
5
  const defaultDelayBetweenAttemptsMs = 1000;
6
6
  const defaultCanRetryError = (error) => {
7
- if (error instanceof HttpServiceInvalidResponseError) {
7
+ if (isInvalidResponseError(error)) {
8
8
  if (error.kontentErrorResponse) {
9
9
  // The request is clearly invalid as we got an error response from the API
10
10
  return false;
11
11
  }
12
12
  return error.adapterResponse.status >= 500 || error.adapterResponse.status === 429;
13
13
  }
14
- if (error instanceof HttpServiceParsingError) {
14
+ if (isParsingError(error)) {
15
15
  return false;
16
16
  }
17
17
  return true;
@@ -23,8 +23,8 @@ export async function runWithRetryAsync(data) {
23
23
  catch (error) {
24
24
  const newRetryAttempt = data.retryAttempt + 1;
25
25
  const retryResult = getRetryResult({
26
- error: error instanceof CoreSdkError ? error.originalError : error,
27
- responseHeaders: error instanceof HttpServiceInvalidResponseError ? error.adapterResponse.responseHeaders : [],
26
+ error: isCoreSdkError(error) ? error.originalError : error,
27
+ responseHeaders: isInvalidResponseError(error) ? error.adapterResponse.responseHeaders : [],
28
28
  retryAttempt: data.retryAttempt,
29
29
  options: data.retryStrategyOptions,
30
30
  });
@@ -35,7 +35,7 @@ export async function runWithRetryAsync(data) {
35
35
  error: error,
36
36
  method: data.method,
37
37
  });
38
- throw new CoreSdkError(errorMessage, data.url, data.retryAttempt, data.retryStrategyOptions, data.requestHeaders, error instanceof CoreSdkError ? error.originalError : error);
38
+ throw new CoreSdkError(errorMessage, data.url, data.retryAttempt, data.retryStrategyOptions, data.requestHeaders, isCoreSdkError(error) ? error.originalError : error);
39
39
  }
40
40
  logRetryAttempt(data.retryStrategyOptions, newRetryAttempt, data.url);
41
41
  await waitAsync(retryResult.retryInMs);
@@ -1 +1 @@
1
- {"version":3,"file":"retry.utils.js","sourceRoot":"","sources":["../../lib/utils/retry.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retry.utils.js","sourceRoot":"","sources":["../../lib/utils/retry.utils.ts"],"names":[],"mappings":"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"}
package/lib/devkit_api.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Devkit API - used for development purposes in
2
+ * Devkit API - common functions used by dependent packages, not intended for public use
3
3
  */
4
4
  export type { FetchResponse } from './devkit/devkit.models.js';
5
5
  export { deleteFolderRecursive } from './devkit/script.utils.js';
@@ -74,13 +74,13 @@ export type HttpService = {
74
74
  uploadFileAsync<TResponseData extends JsonValue>(opts: UploadFileRequestOptions): Promise<HttpResponse<TResponseData, Blob>>;
75
75
  };
76
76
 
77
- export type AdapterResponse = {
77
+ export type AdapterResponse<TStatusCode extends HttpServiceStatus = HttpServiceStatus> = {
78
78
  readonly toJsonAsync: () => Promise<JsonValue>;
79
79
  readonly toBlobAsync: () => Promise<Blob>;
80
80
 
81
81
  readonly isValidResponse: boolean;
82
82
  readonly responseHeaders: readonly Header[];
83
- readonly status: HttpServiceStatus;
83
+ readonly status: TStatusCode;
84
84
  readonly statusText: string;
85
85
  };
86
86
 
@@ -1,10 +1,10 @@
1
- import type { AdapterResponse } from '../http/http.models.js';
1
+ import type { AdapterResponse, HttpServiceStatus } from '../http/http.models.js';
2
2
  import type { Header, KontentErrorResponseData, RetryStrategyOptions } from './core.models.js';
3
3
 
4
4
  /**
5
5
  * Represent an error that is thrown by the SDK
6
6
  */
7
- export class CoreSdkError extends Error {
7
+ export class CoreSdkError<TOriginalError extends HttpServiceInvalidResponseError | HttpServiceParsingError | unknown = unknown> extends Error {
8
8
  constructor(
9
9
  /**
10
10
  * The message of the error
@@ -34,7 +34,7 @@ export class CoreSdkError extends Error {
34
34
  /**
35
35
  * The original error that caused the request to fail
36
36
  */
37
- readonly originalError: HttpServiceInvalidResponseError | HttpServiceParsingError | unknown,
37
+ readonly originalError: TOriginalError,
38
38
  ) {
39
39
  super(message);
40
40
  }
@@ -52,12 +52,12 @@ export class HttpServiceParsingError extends Error {
52
52
  /**
53
53
  * Represent an error that is thrown by the HTTP service when the response is not valid
54
54
  */
55
- export class HttpServiceInvalidResponseError extends Error {
55
+ export class HttpServiceInvalidResponseError<TStatusCode extends HttpServiceStatus = HttpServiceStatus> extends Error {
56
56
  readonly kontentErrorResponse: KontentErrorResponseData | undefined;
57
- readonly adapterResponse: AdapterResponse;
57
+ readonly adapterResponse: AdapterResponse<TStatusCode>;
58
58
 
59
59
  constructor(data: {
60
- readonly adapterResponse: AdapterResponse;
60
+ readonly adapterResponse: AdapterResponse<TStatusCode>;
61
61
  readonly kontentErrorData: KontentErrorResponseData | undefined;
62
62
  }) {
63
63
  super(`Invalid response from HTTP service with status ${data.adapterResponse.status}: ${data.adapterResponse.statusText}`);
package/lib/public_api.ts CHANGED
@@ -27,5 +27,6 @@ export {
27
27
  HttpServiceParsingError,
28
28
  } from './models/error.models.js';
29
29
  export type { JsonArray, JsonObject, JsonValue } from './models/json.models.js';
30
+ export { isCoreSdkError, isCoreSdkInvalidResponseError, isCoreSdkParsingError, isKontent404Error } from './utils/error.utils.js';
30
31
  export { getSdkIdHeader } from './utils/header.utils.js';
31
32
  export { toRequiredRetryStrategyOptions } from './utils/retry.utils.js';
@@ -1,5 +1,5 @@
1
1
  import type { HttpMethod, KontentValidationError } from '../models/core.models.js';
2
- import { HttpServiceInvalidResponseError, HttpServiceParsingError } from '../models/error.models.js';
2
+ import { CoreSdkError, HttpServiceInvalidResponseError, HttpServiceParsingError } from '../models/error.models.js';
3
3
  import { isNotUndefined } from './core.utils.js';
4
4
 
5
5
  export function getDefaultErrorMessage({
@@ -17,6 +17,30 @@ export function getDefaultErrorMessage({
17
17
  return `Failed to execute '${method}' request '${url}' after '${retryAttempts}' attempts.${errorMessage ? ` ${errorMessage}` : ''}`;
18
18
  }
19
19
 
20
+ export function isCoreSdkError(error: unknown): error is CoreSdkError {
21
+ return error instanceof CoreSdkError;
22
+ }
23
+
24
+ export function isCoreSdkInvalidResponseError(error: unknown): error is CoreSdkError<HttpServiceInvalidResponseError> {
25
+ return isCoreSdkError(error) && isInvalidResponseError(error.originalError);
26
+ }
27
+
28
+ export function isCoreSdkParsingError(error: unknown): error is CoreSdkError<HttpServiceParsingError> {
29
+ return isCoreSdkError(error) && isParsingError(error.originalError);
30
+ }
31
+
32
+ export function isKontent404Error(error: unknown): error is CoreSdkError<HttpServiceInvalidResponseError<404>> {
33
+ return isCoreSdkInvalidResponseError(error) && error.originalError.adapterResponse.status === 404;
34
+ }
35
+
36
+ export function isInvalidResponseError(error: unknown): error is HttpServiceInvalidResponseError {
37
+ return error instanceof HttpServiceInvalidResponseError;
38
+ }
39
+
40
+ export function isParsingError(error: unknown): error is HttpServiceParsingError {
41
+ return error instanceof HttpServiceParsingError;
42
+ }
43
+
20
44
  function getValidationErrorMessage(validationErrors?: readonly KontentValidationError[]): string | undefined {
21
45
  if (!validationErrors || !validationErrors.length) {
22
46
  return undefined;
@@ -34,11 +58,11 @@ function getValidationErrorMessage(validationErrors?: readonly KontentValidation
34
58
  }
35
59
 
36
60
  function extractMessageFromError(error: unknown): string | undefined {
37
- if (error instanceof HttpServiceParsingError) {
61
+ if (isParsingError(error)) {
38
62
  return error.message;
39
63
  }
40
64
 
41
- if (error instanceof HttpServiceInvalidResponseError) {
65
+ if (isInvalidResponseError(error)) {
42
66
  const validationErrorMessage = getValidationErrorMessage(error.kontentErrorResponse?.validation_errors);
43
67
  return `Response failed with status '${error.adapterResponse.status}' and status text '${error.adapterResponse.statusText}'.${error.kontentErrorResponse ? ` ${error.kontentErrorResponse.message}` : ''}${validationErrorMessage ? ` ${validationErrorMessage}` : ''}`;
44
68
  }
@@ -1,6 +1,6 @@
1
1
  import type { Header, HttpMethod, RetryStrategyOptions } from '../models/core.models.js';
2
- import { CoreSdkError, HttpServiceInvalidResponseError, HttpServiceParsingError } from '../models/error.models.js';
3
- import { getDefaultErrorMessage } from './error.utils.js';
2
+ import { CoreSdkError } from '../models/error.models.js';
3
+ import { getDefaultErrorMessage, isCoreSdkError, isInvalidResponseError, isParsingError } from './error.utils.js';
4
4
  import { getRetryAfterHeaderValue } from './header.utils.js';
5
5
 
6
6
  type RetryResult =
@@ -15,7 +15,7 @@ type RetryResult =
15
15
  const defaultMaxAttempts: NonNullable<RetryStrategyOptions['maxAttempts']> = 3;
16
16
  const defaultDelayBetweenAttemptsMs: NonNullable<RetryStrategyOptions['defaultDelayBetweenRequestsMs']> = 1000;
17
17
  const defaultCanRetryError: NonNullable<RetryStrategyOptions['canRetryError']> = (error) => {
18
- if (error instanceof HttpServiceInvalidResponseError) {
18
+ if (isInvalidResponseError(error)) {
19
19
  if (error.kontentErrorResponse) {
20
20
  // The request is clearly invalid as we got an error response from the API
21
21
  return false;
@@ -24,7 +24,7 @@ const defaultCanRetryError: NonNullable<RetryStrategyOptions['canRetryError']> =
24
24
  return error.adapterResponse.status >= 500 || error.adapterResponse.status === 429;
25
25
  }
26
26
 
27
- if (error instanceof HttpServiceParsingError) {
27
+ if (isParsingError(error)) {
28
28
  return false;
29
29
  }
30
30
 
@@ -45,8 +45,8 @@ export async function runWithRetryAsync<TResult>(data: {
45
45
  const newRetryAttempt = data.retryAttempt + 1;
46
46
 
47
47
  const retryResult = getRetryResult({
48
- error: error instanceof CoreSdkError ? error.originalError : error,
49
- responseHeaders: error instanceof HttpServiceInvalidResponseError ? error.adapterResponse.responseHeaders : [],
48
+ error: isCoreSdkError(error) ? error.originalError : error,
49
+ responseHeaders: isInvalidResponseError(error) ? error.adapterResponse.responseHeaders : [],
50
50
  retryAttempt: data.retryAttempt,
51
51
  options: data.retryStrategyOptions,
52
52
  });
@@ -65,7 +65,7 @@ export async function runWithRetryAsync<TResult>(data: {
65
65
  data.retryAttempt,
66
66
  data.retryStrategyOptions,
67
67
  data.requestHeaders,
68
- error instanceof CoreSdkError ? error.originalError : error,
68
+ isCoreSdkError(error) ? error.originalError : error,
69
69
  );
70
70
  }
71
71
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kontent-ai/core-sdk",
3
- "version": "11.0.0-1",
3
+ "version": "11.0.0-2",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/kontent-ai/kontent-core-js"
@@ -31,8 +31,8 @@
31
31
  "scripts": {
32
32
  "release": "standard-version",
33
33
  "release:major": "standard-version --release-as major",
34
- "prerelease": "standard-version --prerelease",
35
- "prerelease:major": "standard-version --prerelease --release-as major",
34
+ "release:beta": "standard-version --prerelease",
35
+ "release:beta:major": "standard-version --prerelease --release-as major",
36
36
  "prepublishOnly": "npm run build && npm run push:tags",
37
37
  "publish:beta": "npm publish --tag=next",
38
38
  "build": "npm run clean && npm run lint:fix && tsc --p tsconfig.build.json && npm run update:version",
@@ -46,11 +46,11 @@
46
46
  },
47
47
  "devDependencies": {
48
48
  "@biomejs/biome": "1.9.4",
49
- "@types/node": "22.15.24",
49
+ "@types/node": "22.15.29",
50
50
  "chalk": "5.4.1",
51
51
  "standard-version": "9.5.0",
52
52
  "typescript": "5.8.3",
53
- "vitest": "3.1.4",
53
+ "vitest": "3.2.0",
54
54
  "dotenv-cli": "8.0.0",
55
55
  "tsx": "4.19.4"
56
56
  }